summaryrefslogtreecommitdiff
path: root/ecos/packages/language
diff options
context:
space:
mode:
authorMichael Gielda <mgielda@antmicro.com>2014-04-03 14:53:04 +0200
committerMichael Gielda <mgielda@antmicro.com>2014-04-03 14:53:04 +0200
commitae1e4e08a1005a0c487f03ba189d7536e7fdcba6 (patch)
treef1c296f8a966a9a39876b0e98e16d9c5da1776dd /ecos/packages/language
parentf157da5337118d3c5cd464266796de4262ac9dbd (diff)
Added the OS files
Diffstat (limited to 'ecos/packages/language')
-rw-r--r--ecos/packages/language/c/libc/common/current/ChangeLog35
-rw-r--r--ecos/packages/language/c/libc/common/current/ChangeLog.libc2735
-rw-r--r--ecos/packages/language/c/libc/common/current/cdl/libc.cdl62
-rw-r--r--ecos/packages/language/c/libc/common/current/doc/libc.sgml559
-rw-r--r--ecos/packages/language/c/libc/i18n/current/ChangeLog134
-rw-r--r--ecos/packages/language/c/libc/i18n/current/ChangeLog.libc2735
-rw-r--r--ecos/packages/language/c/libc/i18n/current/cdl/i18n.cdl240
-rw-r--r--ecos/packages/language/c/libc/i18n/current/include/ctype.inl188
-rw-r--r--ecos/packages/language/c/libc/i18n/current/include/mb.h66
-rw-r--r--ecos/packages/language/c/libc/i18n/current/include/newlibctype.h127
-rw-r--r--ecos/packages/language/c/libc/i18n/current/src/ctype.cxx69
-rw-r--r--ecos/packages/language/c/libc/i18n/current/src/internal.h94
-rw-r--r--ecos/packages/language/c/libc/i18n/current/src/locale.cxx443
-rw-r--r--ecos/packages/language/c/libc/i18n/current/src/mblen.cxx209
-rw-r--r--ecos/packages/language/c/libc/i18n/current/src/mbstowcs.cxx209
-rw-r--r--ecos/packages/language/c/libc/i18n/current/src/mbtowc.cxx224
-rw-r--r--ecos/packages/language/c/libc/i18n/current/src/mbtowc_c.cxx119
-rw-r--r--ecos/packages/language/c/libc/i18n/current/src/mbtowc_jp.cxx330
-rw-r--r--ecos/packages/language/c/libc/i18n/current/src/newlibctype.cxx231
-rw-r--r--ecos/packages/language/c/libc/i18n/current/src/wcstombs.cxx216
-rw-r--r--ecos/packages/language/c/libc/i18n/current/src/wctomb.cxx212
-rw-r--r--ecos/packages/language/c/libc/i18n/current/src/wctomb_jp.cxx232
-rw-r--r--ecos/packages/language/c/libc/i18n/current/tests/ctype.c224
-rw-r--r--ecos/packages/language/c/libc/i18n/current/tests/i18nmb.c673
-rw-r--r--ecos/packages/language/c/libc/i18n/current/tests/setlocale.c131
-rw-r--r--ecos/packages/language/c/libc/setjmp/current/ChangeLog48
-rw-r--r--ecos/packages/language/c/libc/setjmp/current/ChangeLog.libc2735
-rw-r--r--ecos/packages/language/c/libc/setjmp/current/cdl/setjmp.cdl114
-rw-r--r--ecos/packages/language/c/libc/setjmp/current/include/setjmp.h91
-rw-r--r--ecos/packages/language/c/libc/setjmp/current/src/longjmp.cxx101
-rw-r--r--ecos/packages/language/c/libc/setjmp/current/tests/setjmp.c236
-rw-r--r--ecos/packages/language/c/libc/signals/current/ChangeLog119
-rw-r--r--ecos/packages/language/c/libc/signals/current/ChangeLog.libc2735
-rw-r--r--ecos/packages/language/c/libc/signals/current/cdl/signals.cdl279
-rw-r--r--ecos/packages/language/c/libc/signals/current/include/signal.h151
-rw-r--r--ecos/packages/language/c/libc/signals/current/include/signal.inl269
-rw-r--r--ecos/packages/language/c/libc/signals/current/src/raise.cxx77
-rw-r--r--ecos/packages/language/c/libc/signals/current/src/siginit.cxx438
-rw-r--r--ecos/packages/language/c/libc/signals/current/src/signal.cxx70
-rw-r--r--ecos/packages/language/c/libc/signals/current/tests/signal1.c220
-rw-r--r--ecos/packages/language/c/libc/signals/current/tests/signal2.c302
-rw-r--r--ecos/packages/language/c/libc/startup/current/ChangeLog120
-rw-r--r--ecos/packages/language/c/libc/startup/current/ChangeLog.libc2735
-rw-r--r--ecos/packages/language/c/libc/startup/current/cdl/startup.cdl361
-rw-r--r--ecos/packages/language/c/libc/startup/current/src/_exit.cxx110
-rw-r--r--ecos/packages/language/c/libc/startup/current/src/abort.cxx97
-rw-r--r--ecos/packages/language/c/libc/startup/current/src/atexit.cxx136
-rw-r--r--ecos/packages/language/c/libc/startup/current/src/cstartup.cxx144
-rw-r--r--ecos/packages/language/c/libc/startup/current/src/environ.cxx70
-rw-r--r--ecos/packages/language/c/libc/startup/current/src/exit.cxx106
-rw-r--r--ecos/packages/language/c/libc/startup/current/src/invokemain.cxx130
-rw-r--r--ecos/packages/language/c/libc/startup/current/src/main.cxx121
-rw-r--r--ecos/packages/language/c/libc/startup/current/src/mainthread.cxx134
-rw-r--r--ecos/packages/language/c/libc/startup/current/tests/atexit.c137
-rw-r--r--ecos/packages/language/c/libc/stdio/current/ChangeLog601
-rw-r--r--ecos/packages/language/c/libc/stdio/current/ChangeLog.libc2735
-rw-r--r--ecos/packages/language/c/libc/stdio/current/cdl/stdio.cdl461
-rw-r--r--ecos/packages/language/c/libc/stdio/current/include/io.hxx89
-rw-r--r--ecos/packages/language/c/libc/stdio/current/include/io.inl257
-rw-r--r--ecos/packages/language/c/libc/stdio/current/include/stdio.h334
-rw-r--r--ecos/packages/language/c/libc/stdio/current/include/stdio.inl158
-rw-r--r--ecos/packages/language/c/libc/stdio/current/include/stdiofiles.hxx116
-rw-r--r--ecos/packages/language/c/libc/stdio/current/include/stdiofiles.inl125
-rw-r--r--ecos/packages/language/c/libc/stdio/current/include/stdiosupp.hxx82
-rw-r--r--ecos/packages/language/c/libc/stdio/current/include/stream.hxx338
-rw-r--r--ecos/packages/language/c/libc/stdio/current/include/stream.inl487
-rw-r--r--ecos/packages/language/c/libc/stdio/current/include/streambuf.hxx163
-rw-r--r--ecos/packages/language/c/libc/stdio/current/include/streambuf.inl185
-rw-r--r--ecos/packages/language/c/libc/stdio/current/src/common/fclose.cxx126
-rw-r--r--ecos/packages/language/c/libc/stdio/current/src/common/feof.cxx91
-rw-r--r--ecos/packages/language/c/libc/stdio/current/src/common/fflush.cxx158
-rw-r--r--ecos/packages/language/c/libc/stdio/current/src/common/fileops.cxx253
-rw-r--r--ecos/packages/language/c/libc/stdio/current/src/common/fopen.cxx270
-rw-r--r--ecos/packages/language/c/libc/stdio/current/src/common/freopen.cxx78
-rw-r--r--ecos/packages/language/c/libc/stdio/current/src/common/fseek.cxx166
-rw-r--r--ecos/packages/language/c/libc/stdio/current/src/common/setvbuf.cxx128
-rw-r--r--ecos/packages/language/c/libc/stdio/current/src/common/snprintf.cxx80
-rw-r--r--ecos/packages/language/c/libc/stdio/current/src/common/sprintf.cxx81
-rw-r--r--ecos/packages/language/c/libc/stdio/current/src/common/sscanf.cxx80
-rw-r--r--ecos/packages/language/c/libc/stdio/current/src/common/stderr.cxx109
-rw-r--r--ecos/packages/language/c/libc/stdio/current/src/common/stdin.cxx109
-rw-r--r--ecos/packages/language/c/libc/stdio/current/src/common/stdiofiles.cxx81
-rw-r--r--ecos/packages/language/c/libc/stdio/current/src/common/stdioinlines.cxx163
-rw-r--r--ecos/packages/language/c/libc/stdio/current/src/common/stdiosupp.cxx82
-rw-r--r--ecos/packages/language/c/libc/stdio/current/src/common/stdout.cxx109
-rw-r--r--ecos/packages/language/c/libc/stdio/current/src/common/stream.cxx745
-rw-r--r--ecos/packages/language/c/libc/stdio/current/src/common/streambuf.cxx140
-rw-r--r--ecos/packages/language/c/libc/stdio/current/src/common/ungetc.cxx93
-rw-r--r--ecos/packages/language/c/libc/stdio/current/src/common/vsnprintf.cxx126
-rw-r--r--ecos/packages/language/c/libc/stdio/current/src/common/vsscanf.cxx154
-rw-r--r--ecos/packages/language/c/libc/stdio/current/src/input/fgetc.cxx130
-rw-r--r--ecos/packages/language/c/libc/stdio/current/src/input/fgets.cxx125
-rw-r--r--ecos/packages/language/c/libc/stdio/current/src/input/fread.cxx124
-rw-r--r--ecos/packages/language/c/libc/stdio/current/src/input/fscanf.cxx81
-rw-r--r--ecos/packages/language/c/libc/stdio/current/src/input/gets.cxx123
-rw-r--r--ecos/packages/language/c/libc/stdio/current/src/input/scanf.cxx81
-rw-r--r--ecos/packages/language/c/libc/stdio/current/src/input/vfscanf.cxx1058
-rw-r--r--ecos/packages/language/c/libc/stdio/current/src/output/fnprintf.cxx80
-rw-r--r--ecos/packages/language/c/libc/stdio/current/src/output/fprintf.cxx81
-rw-r--r--ecos/packages/language/c/libc/stdio/current/src/output/fputc.cxx115
-rw-r--r--ecos/packages/language/c/libc/stdio/current/src/output/fputs.cxx89
-rw-r--r--ecos/packages/language/c/libc/stdio/current/src/output/fwrite.cxx102
-rw-r--r--ecos/packages/language/c/libc/stdio/current/src/output/printf.cxx81
-rw-r--r--ecos/packages/language/c/libc/stdio/current/src/output/vfnprintf.cxx994
-rw-r--r--ecos/packages/language/c/libc/stdio/current/tests/fileio.c206
-rw-r--r--ecos/packages/language/c/libc/stdio/current/tests/snprintf.c131
-rw-r--r--ecos/packages/language/c/libc/stdio/current/tests/sprintf1.c592
-rw-r--r--ecos/packages/language/c/libc/stdio/current/tests/sprintf2.c207
-rw-r--r--ecos/packages/language/c/libc/stdio/current/tests/sscanf.c315
-rw-r--r--ecos/packages/language/c/libc/stdio/current/tests/stdiooutput.c207
-rw-r--r--ecos/packages/language/c/libc/stdlib/current/ChangeLog122
-rw-r--r--ecos/packages/language/c/libc/stdlib/current/ChangeLog.libc2735
-rw-r--r--ecos/packages/language/c/libc/stdlib/current/cdl/stdlib.cdl296
-rw-r--r--ecos/packages/language/c/libc/stdlib/current/include/abs.inl113
-rw-r--r--ecos/packages/language/c/libc/stdlib/current/include/atox.inl192
-rw-r--r--ecos/packages/language/c/libc/stdlib/current/include/div.inl217
-rw-r--r--ecos/packages/language/c/libc/stdlib/current/src/abs.cxx63
-rw-r--r--ecos/packages/language/c/libc/stdlib/current/src/atox.cxx63
-rw-r--r--ecos/packages/language/c/libc/stdlib/current/src/bsearch.cxx131
-rw-r--r--ecos/packages/language/c/libc/stdlib/current/src/div.cxx64
-rw-r--r--ecos/packages/language/c/libc/stdlib/current/src/getenv.cxx135
-rw-r--r--ecos/packages/language/c/libc/stdlib/current/src/qsort.cxx283
-rw-r--r--ecos/packages/language/c/libc/stdlib/current/src/rand.cxx251
-rw-r--r--ecos/packages/language/c/libc/stdlib/current/src/strtod.cxx262
-rw-r--r--ecos/packages/language/c/libc/stdlib/current/src/strtol.cxx202
-rw-r--r--ecos/packages/language/c/libc/stdlib/current/src/strtoll.cxx201
-rw-r--r--ecos/packages/language/c/libc/stdlib/current/src/strtoul.cxx178
-rw-r--r--ecos/packages/language/c/libc/stdlib/current/src/strtoull.cxx177
-rw-r--r--ecos/packages/language/c/libc/stdlib/current/src/system.cxx68
-rw-r--r--ecos/packages/language/c/libc/stdlib/current/tests/abs.c105
-rw-r--r--ecos/packages/language/c/libc/stdlib/current/tests/atoi.c115
-rw-r--r--ecos/packages/language/c/libc/stdlib/current/tests/atol.c112
-rw-r--r--ecos/packages/language/c/libc/stdlib/current/tests/bsearch.c135
-rw-r--r--ecos/packages/language/c/libc/stdlib/current/tests/div.c122
-rw-r--r--ecos/packages/language/c/libc/stdlib/current/tests/getenv.c164
-rw-r--r--ecos/packages/language/c/libc/stdlib/current/tests/labs.c102
-rw-r--r--ecos/packages/language/c/libc/stdlib/current/tests/ldiv.c133
-rw-r--r--ecos/packages/language/c/libc/stdlib/current/tests/qsort.c109
-rw-r--r--ecos/packages/language/c/libc/stdlib/current/tests/rand1.c104
-rw-r--r--ecos/packages/language/c/libc/stdlib/current/tests/rand2.c111
-rw-r--r--ecos/packages/language/c/libc/stdlib/current/tests/rand3.c151
-rw-r--r--ecos/packages/language/c/libc/stdlib/current/tests/rand4.c124
-rw-r--r--ecos/packages/language/c/libc/stdlib/current/tests/srand.c134
-rw-r--r--ecos/packages/language/c/libc/stdlib/current/tests/strtol.c187
-rw-r--r--ecos/packages/language/c/libc/stdlib/current/tests/strtoul.c183
-rw-r--r--ecos/packages/language/c/libc/string/current/ChangeLog125
-rw-r--r--ecos/packages/language/c/libc/string/current/ChangeLog.libc2735
-rw-r--r--ecos/packages/language/c/libc/string/current/cdl/string.cdl225
-rw-r--r--ecos/packages/language/c/libc/string/current/include/bsdstring.h108
-rw-r--r--ecos/packages/language/c/libc/string/current/include/string.h178
-rw-r--r--ecos/packages/language/c/libc/string/current/include/string.inl71
-rw-r--r--ecos/packages/language/c/libc/string/current/include/stringsupp.hxx225
-rw-r--r--ecos/packages/language/c/libc/string/current/src/bsdstring.cxx234
-rw-r--r--ecos/packages/language/c/libc/string/current/src/memchr.cxx180
-rw-r--r--ecos/packages/language/c/libc/string/current/src/memcmp.cxx187
-rw-r--r--ecos/packages/language/c/libc/string/current/src/memmove.cxx113
-rw-r--r--ecos/packages/language/c/libc/string/current/src/strcat.cxx128
-rw-r--r--ecos/packages/language/c/libc/string/current/src/strchr.cxx147
-rw-r--r--ecos/packages/language/c/libc/string/current/src/strcmp.cxx156
-rw-r--r--ecos/packages/language/c/libc/string/current/src/strcoll.cxx95
-rw-r--r--ecos/packages/language/c/libc/string/current/src/strcpy.cxx132
-rw-r--r--ecos/packages/language/c/libc/string/current/src/strcspn.cxx106
-rw-r--r--ecos/packages/language/c/libc/string/current/src/strdup.cxx98
-rw-r--r--ecos/packages/language/c/libc/string/current/src/strlen.cxx133
-rw-r--r--ecos/packages/language/c/libc/string/current/src/strncat.cxx137
-rw-r--r--ecos/packages/language/c/libc/string/current/src/strncmp.cxx175
-rw-r--r--ecos/packages/language/c/libc/string/current/src/strncpy.cxx148
-rw-r--r--ecos/packages/language/c/libc/string/current/src/strnlen.cxx134
-rw-r--r--ecos/packages/language/c/libc/string/current/src/strpbrk.cxx112
-rw-r--r--ecos/packages/language/c/libc/string/current/src/strrchr.cxx104
-rw-r--r--ecos/packages/language/c/libc/string/current/src/strspn.cxx106
-rw-r--r--ecos/packages/language/c/libc/string/current/src/strstr.cxx122
-rw-r--r--ecos/packages/language/c/libc/string/current/src/strsuppt.cxx69
-rw-r--r--ecos/packages/language/c/libc/string/current/src/strtok.cxx241
-rw-r--r--ecos/packages/language/c/libc/string/current/src/strxfrm.cxx111
-rw-r--r--ecos/packages/language/c/libc/string/current/tests/memchr.c117
-rw-r--r--ecos/packages/language/c/libc/string/current/tests/memcmp1.c146
-rw-r--r--ecos/packages/language/c/libc/string/current/tests/memcmp2.c134
-rw-r--r--ecos/packages/language/c/libc/string/current/tests/memcpy1.c154
-rw-r--r--ecos/packages/language/c/libc/string/current/tests/memcpy2.c142
-rw-r--r--ecos/packages/language/c/libc/string/current/tests/memmove1.c175
-rw-r--r--ecos/packages/language/c/libc/string/current/tests/memmove2.c141
-rw-r--r--ecos/packages/language/c/libc/string/current/tests/memset.c122
-rw-r--r--ecos/packages/language/c/libc/string/current/tests/strcat1.c144
-rw-r--r--ecos/packages/language/c/libc/string/current/tests/strcat2.c132
-rw-r--r--ecos/packages/language/c/libc/string/current/tests/strchr.c113
-rw-r--r--ecos/packages/language/c/libc/string/current/tests/strcmp1.c134
-rw-r--r--ecos/packages/language/c/libc/string/current/tests/strcmp2.c121
-rw-r--r--ecos/packages/language/c/libc/string/current/tests/strcoll1.c136
-rw-r--r--ecos/packages/language/c/libc/string/current/tests/strcoll2.c119
-rw-r--r--ecos/packages/language/c/libc/string/current/tests/strcpy1.c123
-rw-r--r--ecos/packages/language/c/libc/string/current/tests/strcpy2.c127
-rw-r--r--ecos/packages/language/c/libc/string/current/tests/strcspn.c145
-rw-r--r--ecos/packages/language/c/libc/string/current/tests/strlen.c89
-rw-r--r--ecos/packages/language/c/libc/string/current/tests/strncat1.c173
-rw-r--r--ecos/packages/language/c/libc/string/current/tests/strncat2.c145
-rw-r--r--ecos/packages/language/c/libc/string/current/tests/strncpy1.c166
-rw-r--r--ecos/packages/language/c/libc/string/current/tests/strncpy2.c137
-rw-r--r--ecos/packages/language/c/libc/string/current/tests/strnlen.c133
-rw-r--r--ecos/packages/language/c/libc/string/current/tests/strpbrk.c125
-rw-r--r--ecos/packages/language/c/libc/string/current/tests/strrchr.c120
-rw-r--r--ecos/packages/language/c/libc/string/current/tests/strspn.c132
-rw-r--r--ecos/packages/language/c/libc/string/current/tests/strstr.c128
-rw-r--r--ecos/packages/language/c/libc/string/current/tests/strtok.c167
-rw-r--r--ecos/packages/language/c/libc/string/current/tests/strxfrm1.c155
-rw-r--r--ecos/packages/language/c/libc/string/current/tests/strxfrm2.c142
-rw-r--r--ecos/packages/language/c/libc/time/current/ChangeLog217
-rw-r--r--ecos/packages/language/c/libc/time/current/ChangeLog.libc2735
-rw-r--r--ecos/packages/language/c/libc/time/current/cdl/time.cdl341
-rw-r--r--ecos/packages/language/c/libc/time/current/include/time.h319
-rw-r--r--ecos/packages/language/c/libc/time/current/include/time.inl819
-rw-r--r--ecos/packages/language/c/libc/time/current/include/timeutil.h110
-rw-r--r--ecos/packages/language/c/libc/time/current/src/asctime.cxx76
-rw-r--r--ecos/packages/language/c/libc/time/current/src/asctime_r.cxx70
-rw-r--r--ecos/packages/language/c/libc/time/current/src/clock.cxx134
-rw-r--r--ecos/packages/language/c/libc/time/current/src/ctime.cxx66
-rw-r--r--ecos/packages/language/c/libc/time/current/src/ctime_r.cxx66
-rw-r--r--ecos/packages/language/c/libc/time/current/src/difftime.cxx66
-rw-r--r--ecos/packages/language/c/libc/time/current/src/gmtime.cxx74
-rw-r--r--ecos/packages/language/c/libc/time/current/src/gmtime_r.cxx66
-rw-r--r--ecos/packages/language/c/libc/time/current/src/localtime.cxx70
-rw-r--r--ecos/packages/language/c/libc/time/current/src/localtime_r.cxx67
-rw-r--r--ecos/packages/language/c/libc/time/current/src/mktime.cxx66
-rw-r--r--ecos/packages/language/c/libc/time/current/src/settime.cxx96
-rw-r--r--ecos/packages/language/c/libc/time/current/src/strftime.cxx360
-rw-r--r--ecos/packages/language/c/libc/time/current/src/strptime.cxx425
-rw-r--r--ecos/packages/language/c/libc/time/current/src/time.cxx104
-rw-r--r--ecos/packages/language/c/libc/time/current/src/timeutil.cxx294
-rw-r--r--ecos/packages/language/c/libc/time/current/tests/asctime.c204
-rw-r--r--ecos/packages/language/c/libc/time/current/tests/clock.c248
-rw-r--r--ecos/packages/language/c/libc/time/current/tests/ctime.c140
-rw-r--r--ecos/packages/language/c/libc/time/current/tests/gmtime.c204
-rw-r--r--ecos/packages/language/c/libc/time/current/tests/localtime.c174
-rw-r--r--ecos/packages/language/c/libc/time/current/tests/mktime.c176
-rw-r--r--ecos/packages/language/c/libc/time/current/tests/strftime.c194
-rw-r--r--ecos/packages/language/c/libc/time/current/tests/strptime.c132
-rw-r--r--ecos/packages/language/c/libc/time/current/tests/time.c122
-rw-r--r--ecos/packages/language/c/libm/current/ChangeLog960
-rw-r--r--ecos/packages/language/c/libm/current/cdl/compat.cdl164
-rw-r--r--ecos/packages/language/c/libm/current/cdl/libm.cdl365
-rw-r--r--ecos/packages/language/c/libm/current/include/complex.h202
-rw-r--r--ecos/packages/language/c/libm/current/include/math.h627
-rw-r--r--ecos/packages/language/c/libm/current/include/sys/ieeefp.h234
-rw-r--r--ecos/packages/language/c/libm/current/src/complex/cabs.c53
-rw-r--r--ecos/packages/language/c/libm/current/src/complex/cabsf.c19
-rw-r--r--ecos/packages/language/c/libm/current/src/complex/cacos.c99
-rw-r--r--ecos/packages/language/c/libm/current/src/complex/cacosf.c46
-rw-r--r--ecos/packages/language/c/libm/current/src/complex/cacosh.c93
-rw-r--r--ecos/packages/language/c/libm/current/src/complex/cacoshf.c48
-rw-r--r--ecos/packages/language/c/libm/current/src/complex/carg.c59
-rw-r--r--ecos/packages/language/c/libm/current/src/complex/cargf.c19
-rw-r--r--ecos/packages/language/c/libm/current/src/complex/casin.c165
-rw-r--r--ecos/packages/language/c/libm/current/src/complex/casinf.c122
-rw-r--r--ecos/packages/language/c/libm/current/src/complex/casinh.c97
-rw-r--r--ecos/packages/language/c/libm/current/src/complex/casinhf.c44
-rw-r--r--ecos/packages/language/c/libm/current/src/complex/catan.c130
-rw-r--r--ecos/packages/language/c/libm/current/src/complex/catanf.c79
-rw-r--r--ecos/packages/language/c/libm/current/src/complex/catanh.c90
-rw-r--r--ecos/packages/language/c/libm/current/src/complex/catanhf.c44
-rw-r--r--ecos/packages/language/c/libm/current/src/complex/ccos.c81
-rw-r--r--ecos/packages/language/c/libm/current/src/complex/ccosf.c48
-rw-r--r--ecos/packages/language/c/libm/current/src/complex/ccosh.c81
-rw-r--r--ecos/packages/language/c/libm/current/src/complex/ccoshf.c48
-rw-r--r--ecos/packages/language/c/libm/current/src/complex/cephes_subr.c126
-rw-r--r--ecos/packages/language/c/libm/current/src/complex/cephes_subr.h5
-rw-r--r--ecos/packages/language/c/libm/current/src/complex/cephes_subrf.c125
-rw-r--r--ecos/packages/language/c/libm/current/src/complex/cephes_subrf.h5
-rw-r--r--ecos/packages/language/c/libm/current/src/complex/cexp.c82
-rw-r--r--ecos/packages/language/c/libm/current/src/complex/cexpf.c49
-rw-r--r--ecos/packages/language/c/libm/current/src/complex/cimag.c61
-rw-r--r--ecos/packages/language/c/libm/current/src/complex/cimagf.c61
-rw-r--r--ecos/packages/language/c/libm/current/src/complex/clog.c91
-rw-r--r--ecos/packages/language/c/libm/current/src/complex/clogf.c49
-rw-r--r--ecos/packages/language/c/libm/current/src/complex/complex.tex55
-rw-r--r--ecos/packages/language/c/libm/current/src/complex/conj.c61
-rw-r--r--ecos/packages/language/c/libm/current/src/complex/conjf.c61
-rw-r--r--ecos/packages/language/c/libm/current/src/complex/cpow.c101
-rw-r--r--ecos/packages/language/c/libm/current/src/complex/cpowf.c59
-rw-r--r--ecos/packages/language/c/libm/current/src/complex/cproj.c106
-rw-r--r--ecos/packages/language/c/libm/current/src/complex/cprojf.c67
-rw-r--r--ecos/packages/language/c/libm/current/src/complex/creal.c61
-rw-r--r--ecos/packages/language/c/libm/current/src/complex/crealf.c61
-rw-r--r--ecos/packages/language/c/libm/current/src/complex/csin.c81
-rw-r--r--ecos/packages/language/c/libm/current/src/complex/csinf.c48
-rw-r--r--ecos/packages/language/c/libm/current/src/complex/csinh.c80
-rw-r--r--ecos/packages/language/c/libm/current/src/complex/csinhf.c48
-rw-r--r--ecos/packages/language/c/libm/current/src/complex/csqrt.c137
-rw-r--r--ecos/packages/language/c/libm/current/src/complex/csqrtf.c102
-rw-r--r--ecos/packages/language/c/libm/current/src/complex/ctan.c91
-rw-r--r--ecos/packages/language/c/libm/current/src/complex/ctanf.c58
-rw-r--r--ecos/packages/language/c/libm/current/src/complex/ctanh.c83
-rw-r--r--ecos/packages/language/c/libm/current/src/complex/ctanhf.c50
-rw-r--r--ecos/packages/language/c/libm/current/src/double/ieee754-api/w_acos.c99
-rw-r--r--ecos/packages/language/c/libm/current/src/double/ieee754-api/w_acosh.c99
-rw-r--r--ecos/packages/language/c/libm/current/src/double/ieee754-api/w_asin.c101
-rw-r--r--ecos/packages/language/c/libm/current/src/double/ieee754-api/w_atan2.c100
-rw-r--r--ecos/packages/language/c/libm/current/src/double/ieee754-api/w_atanh.c102
-rw-r--r--ecos/packages/language/c/libm/current/src/double/ieee754-api/w_cosh.c98
-rw-r--r--ecos/packages/language/c/libm/current/src/double/ieee754-api/w_exp.c105
-rw-r--r--ecos/packages/language/c/libm/current/src/double/ieee754-api/w_fmod.c99
-rw-r--r--ecos/packages/language/c/libm/current/src/double/ieee754-api/w_gamma.c107
-rw-r--r--ecos/packages/language/c/libm/current/src/double/ieee754-api/w_gamma_r.c102
-rw-r--r--ecos/packages/language/c/libm/current/src/double/ieee754-api/w_hypot.c99
-rw-r--r--ecos/packages/language/c/libm/current/src/double/ieee754-api/w_j0.c120
-rw-r--r--ecos/packages/language/c/libm/current/src/double/ieee754-api/w_j1.c121
-rw-r--r--ecos/packages/language/c/libm/current/src/double/ieee754-api/w_jn.c143
-rw-r--r--ecos/packages/language/c/libm/current/src/double/ieee754-api/w_lgamma.c107
-rw-r--r--ecos/packages/language/c/libm/current/src/double/ieee754-api/w_lgamma_r.c102
-rw-r--r--ecos/packages/language/c/libm/current/src/double/ieee754-api/w_log.c99
-rw-r--r--ecos/packages/language/c/libm/current/src/double/ieee754-api/w_log10.c102
-rw-r--r--ecos/packages/language/c/libm/current/src/double/ieee754-api/w_pow.c122
-rw-r--r--ecos/packages/language/c/libm/current/src/double/ieee754-api/w_remainder.c98
-rw-r--r--ecos/packages/language/c/libm/current/src/double/ieee754-api/w_scalb.c114
-rw-r--r--ecos/packages/language/c/libm/current/src/double/ieee754-api/w_sinh.c98
-rw-r--r--ecos/packages/language/c/libm/current/src/double/ieee754-api/w_sqrt.c98
-rw-r--r--ecos/packages/language/c/libm/current/src/double/ieee754-core/e_acos.c161
-rw-r--r--ecos/packages/language/c/libm/current/src/double/ieee754-core/e_acosh.c121
-rw-r--r--ecos/packages/language/c/libm/current/src/double/ieee754-core/e_asin.c172
-rw-r--r--ecos/packages/language/c/libm/current/src/double/ieee754-core/e_atan2.c179
-rw-r--r--ecos/packages/language/c/libm/current/src/double/ieee754-core/e_atanh.c124
-rw-r--r--ecos/packages/language/c/libm/current/src/double/ieee754-core/e_cosh.c145
-rw-r--r--ecos/packages/language/c/libm/current/src/double/ieee754-core/e_exp.c217
-rw-r--r--ecos/packages/language/c/libm/current/src/double/ieee754-core/e_fmod.c196
-rw-r--r--ecos/packages/language/c/libm/current/src/double/ieee754-core/e_gamma.c93
-rw-r--r--ecos/packages/language/c/libm/current/src/double/ieee754-core/e_gamma_r.c92
-rw-r--r--ecos/packages/language/c/libm/current/src/double/ieee754-core/e_hypot.c175
-rw-r--r--ecos/packages/language/c/libm/current/src/double/ieee754-core/e_j0.c439
-rw-r--r--ecos/packages/language/c/libm/current/src/double/ieee754-core/e_j1.c434
-rw-r--r--ecos/packages/language/c/libm/current/src/double/ieee754-core/e_jn.c327
-rw-r--r--ecos/packages/language/c/libm/current/src/double/ieee754-core/e_lgamma.c93
-rw-r--r--ecos/packages/language/c/libm/current/src/double/ieee754-core/e_lgamma_r.c356
-rw-r--r--ecos/packages/language/c/libm/current/src/double/ieee754-core/e_log.c203
-rw-r--r--ecos/packages/language/c/libm/current/src/double/ieee754-core/e_log10.c147
-rw-r--r--ecos/packages/language/c/libm/current/src/double/ieee754-core/e_pow.c370
-rw-r--r--ecos/packages/language/c/libm/current/src/double/ieee754-core/e_rem_pio2.c223
-rw-r--r--ecos/packages/language/c/libm/current/src/double/ieee754-core/e_remainder.c133
-rw-r--r--ecos/packages/language/c/libm/current/src/double/ieee754-core/e_scalb.c106
-rw-r--r--ecos/packages/language/c/libm/current/src/double/ieee754-core/e_sinh.c138
-rw-r--r--ecos/packages/language/c/libm/current/src/double/ieee754-core/e_sqrt.c506
-rw-r--r--ecos/packages/language/c/libm/current/src/double/internal/k_cos.c148
-rw-r--r--ecos/packages/language/c/libm/current/src/double/internal/k_rem_pio2.c364
-rw-r--r--ecos/packages/language/c/libm/current/src/double/internal/k_sin.c130
-rw-r--r--ecos/packages/language/c/libm/current/src/double/internal/k_tan.c181
-rw-r--r--ecos/packages/language/c/libm/current/src/double/portable-api/s_asinh.c117
-rw-r--r--ecos/packages/language/c/libm/current/src/double/portable-api/s_atan.c178
-rw-r--r--ecos/packages/language/c/libm/current/src/double/portable-api/s_cbrt.c139
-rw-r--r--ecos/packages/language/c/libm/current/src/double/portable-api/s_ceil.c134
-rw-r--r--ecos/packages/language/c/libm/current/src/double/portable-api/s_copysign.c91
-rw-r--r--ecos/packages/language/c/libm/current/src/double/portable-api/s_cos.c138
-rw-r--r--ecos/packages/language/c/libm/current/src/double/portable-api/s_erf.c361
-rw-r--r--ecos/packages/language/c/libm/current/src/double/portable-api/s_expm1.c330
-rw-r--r--ecos/packages/language/c/libm/current/src/double/portable-api/s_fabs.c89
-rw-r--r--ecos/packages/language/c/libm/current/src/double/portable-api/s_finite.c91
-rw-r--r--ecos/packages/language/c/libm/current/src/double/portable-api/s_floor.c135
-rw-r--r--ecos/packages/language/c/libm/current/src/double/portable-api/s_frexp.c112
-rw-r--r--ecos/packages/language/c/libm/current/src/double/portable-api/s_ilogb.c106
-rw-r--r--ecos/packages/language/c/libm/current/src/double/portable-api/s_isnan.c94
-rw-r--r--ecos/packages/language/c/libm/current/src/double/portable-api/s_ldexp.c99
-rw-r--r--ecos/packages/language/c/libm/current/src/double/portable-api/s_log1p.c226
-rw-r--r--ecos/packages/language/c/libm/current/src/double/portable-api/s_logb.c98
-rw-r--r--ecos/packages/language/c/libm/current/src/double/portable-api/s_modf.c136
-rw-r--r--ecos/packages/language/c/libm/current/src/double/portable-api/s_nextafter.c138
-rw-r--r--ecos/packages/language/c/libm/current/src/double/portable-api/s_rint.c140
-rw-r--r--ecos/packages/language/c/libm/current/src/double/portable-api/s_scalbn.c120
-rw-r--r--ecos/packages/language/c/libm/current/src/double/portable-api/s_significand.c90
-rw-r--r--ecos/packages/language/c/libm/current/src/double/portable-api/s_sin.c138
-rw-r--r--ecos/packages/language/c/libm/current/src/double/portable-api/s_tan.c132
-rw-r--r--ecos/packages/language/c/libm/current/src/double/portable-api/s_tanh.c138
-rw-r--r--ecos/packages/language/c/libm/current/src/float/ieee754-api/wf_acos.c103
-rw-r--r--ecos/packages/language/c/libm/current/src/float/ieee754-api/wf_acosh.c103
-rw-r--r--ecos/packages/language/c/libm/current/src/float/ieee754-api/wf_asin.c104
-rw-r--r--ecos/packages/language/c/libm/current/src/float/ieee754-api/wf_atan2.c93
-rw-r--r--ecos/packages/language/c/libm/current/src/float/ieee754-api/wf_atanh.c105
-rw-r--r--ecos/packages/language/c/libm/current/src/float/ieee754-api/wf_cosh.c102
-rw-r--r--ecos/packages/language/c/libm/current/src/float/ieee754-api/wf_exp.c114
-rw-r--r--ecos/packages/language/c/libm/current/src/float/ieee754-api/wf_fmod.c102
-rw-r--r--ecos/packages/language/c/libm/current/src/float/ieee754-api/wf_gamma.c103
-rw-r--r--ecos/packages/language/c/libm/current/src/float/ieee754-api/wf_gamma_r.c106
-rw-r--r--ecos/packages/language/c/libm/current/src/float/ieee754-api/wf_hypot.c102
-rw-r--r--ecos/packages/language/c/libm/current/src/float/ieee754-api/wf_j0.c129
-rw-r--r--ecos/packages/language/c/libm/current/src/float/ieee754-api/wf_j1.c130
-rw-r--r--ecos/packages/language/c/libm/current/src/float/ieee754-api/wf_jn.c117
-rw-r--r--ecos/packages/language/c/libm/current/src/float/ieee754-api/wf_lgamma.c103
-rw-r--r--ecos/packages/language/c/libm/current/src/float/ieee754-api/wf_lgamma_r.c105
-rw-r--r--ecos/packages/language/c/libm/current/src/float/ieee754-api/wf_log.c102
-rw-r--r--ecos/packages/language/c/libm/current/src/float/ieee754-api/wf_log10.c111
-rw-r--r--ecos/packages/language/c/libm/current/src/float/ieee754-api/wf_pow.c119
-rw-r--r--ecos/packages/language/c/libm/current/src/float/ieee754-api/wf_remainder.c103
-rw-r--r--ecos/packages/language/c/libm/current/src/float/ieee754-api/wf_scalb.c124
-rw-r--r--ecos/packages/language/c/libm/current/src/float/ieee754-api/wf_sinh.c104
-rw-r--r--ecos/packages/language/c/libm/current/src/float/ieee754-api/wf_sqrt.c98
-rw-r--r--ecos/packages/language/c/libm/current/src/float/ieee754-core/ef_acos.c151
-rw-r--r--ecos/packages/language/c/libm/current/src/float/ieee754-core/ef_acosh.c120
-rw-r--r--ecos/packages/language/c/libm/current/src/float/ieee754-core/ef_asin.c151
-rw-r--r--ecos/packages/language/c/libm/current/src/float/ieee754-core/ef_atan2.c167
-rw-r--r--ecos/packages/language/c/libm/current/src/float/ieee754-core/ef_atanh.c121
-rw-r--r--ecos/packages/language/c/libm/current/src/float/ieee754-core/ef_cosh.c134
-rw-r--r--ecos/packages/language/c/libm/current/src/float/ieee754-core/ef_exp.c165
-rw-r--r--ecos/packages/language/c/libm/current/src/float/ieee754-core/ef_fmod.c180
-rw-r--r--ecos/packages/language/c/libm/current/src/float/ieee754-core/ef_gamma.c93
-rw-r--r--ecos/packages/language/c/libm/current/src/float/ieee754-core/ef_gamma_r.c106
-rw-r--r--ecos/packages/language/c/libm/current/src/float/ieee754-core/ef_hypot.c149
-rw-r--r--ecos/packages/language/c/libm/current/src/float/ieee754-core/ef_j0.c506
-rw-r--r--ecos/packages/language/c/libm/current/src/float/ieee754-core/ef_j1.c506
-rw-r--r--ecos/packages/language/c/libm/current/src/float/ieee754-core/ef_jn.c274
-rw-r--r--ecos/packages/language/c/libm/current/src/float/ieee754-core/ef_lgamma.c93
-rw-r--r--ecos/packages/language/c/libm/current/src/float/ieee754-core/ef_lgamma_r.c316
-rw-r--r--ecos/packages/language/c/libm/current/src/float/ieee754-core/ef_log.c159
-rw-r--r--ecos/packages/language/c/libm/current/src/float/ieee754-core/ef_log10.c129
-rw-r--r--ecos/packages/language/c/libm/current/src/float/ieee754-core/ef_pow.c325
-rw-r--r--ecos/packages/language/c/libm/current/src/float/ieee754-core/ef_rem_pio2.c260
-rw-r--r--ecos/packages/language/c/libm/current/src/float/ieee754-core/ef_remainder.c135
-rw-r--r--ecos/packages/language/c/libm/current/src/float/ieee754-core/ef_scalb.c118
-rw-r--r--ecos/packages/language/c/libm/current/src/float/ieee754-core/ef_sinh.c130
-rw-r--r--ecos/packages/language/c/libm/current/src/float/ieee754-core/ef_sqrt.c148
-rw-r--r--ecos/packages/language/c/libm/current/src/float/internal/kf_cos.c126
-rw-r--r--ecos/packages/language/c/libm/current/src/float/internal/kf_rem_pio2.c275
-rw-r--r--ecos/packages/language/c/libm/current/src/float/internal/kf_sin.c116
-rw-r--r--ecos/packages/language/c/libm/current/src/float/internal/kf_tan.c163
-rw-r--r--ecos/packages/language/c/libm/current/src/float/portable-api/sf_asinh.c118
-rw-r--r--ecos/packages/language/c/libm/current/src/float/portable-api/sf_atan.c183
-rw-r--r--ecos/packages/language/c/libm/current/src/float/portable-api/sf_cbrt.c147
-rw-r--r--ecos/packages/language/c/libm/current/src/float/portable-api/sf_ceil.c124
-rw-r--r--ecos/packages/language/c/libm/current/src/float/portable-api/sf_copysign.c103
-rw-r--r--ecos/packages/language/c/libm/current/src/float/portable-api/sf_cos.c120
-rw-r--r--ecos/packages/language/c/libm/current/src/float/portable-api/sf_erf.c285
-rw-r--r--ecos/packages/language/c/libm/current/src/float/portable-api/sf_expm1.c186
-rw-r--r--ecos/packages/language/c/libm/current/src/float/portable-api/sf_fabs.c100
-rw-r--r--ecos/packages/language/c/libm/current/src/float/portable-api/sf_finite.c101
-rw-r--r--ecos/packages/language/c/libm/current/src/float/portable-api/sf_floor.c133
-rw-r--r--ecos/packages/language/c/libm/current/src/float/portable-api/sf_frexp.c113
-rw-r--r--ecos/packages/language/c/libm/current/src/float/portable-api/sf_ilogb.c109
-rw-r--r--ecos/packages/language/c/libm/current/src/float/portable-api/sf_isnan.c99
-rw-r--r--ecos/packages/language/c/libm/current/src/float/portable-api/sf_ldexp.c109
-rw-r--r--ecos/packages/language/c/libm/current/src/float/portable-api/sf_log1p.c174
-rw-r--r--ecos/packages/language/c/libm/current/src/float/portable-api/sf_logb.c114
-rw-r--r--ecos/packages/language/c/libm/current/src/float/portable-api/sf_modf.c126
-rw-r--r--ecos/packages/language/c/libm/current/src/float/portable-api/sf_nextafter.c132
-rw-r--r--ecos/packages/language/c/libm/current/src/float/portable-api/sf_rint.c137
-rw-r--r--ecos/packages/language/c/libm/current/src/float/portable-api/sf_scalbn.c136
-rw-r--r--ecos/packages/language/c/libm/current/src/float/portable-api/sf_significand.c93
-rw-r--r--ecos/packages/language/c/libm/current/src/float/portable-api/sf_sin.c115
-rw-r--r--ecos/packages/language/c/libm/current/src/float/portable-api/sf_tan.c110
-rw-r--r--ecos/packages/language/c/libm/current/src/float/portable-api/sf_tanh.c126
-rw-r--r--ecos/packages/language/c/libm/current/src/mathincl/fdlibm.h508
-rw-r--r--ecos/packages/language/c/libm/current/src/misc/compatmode.cxx214
-rw-r--r--ecos/packages/language/c/libm/current/src/misc/infconst.c83
-rw-r--r--ecos/packages/language/c/libm/current/src/misc/matherr.c102
-rw-r--r--ecos/packages/language/c/libm/current/src/misc/signgam.cxx146
-rw-r--r--ecos/packages/language/c/libm/current/src/misc/standard.c59
-rw-r--r--ecos/packages/language/c/libm/current/src/misc/standard.inl860
-rw-r--r--ecos/packages/language/c/libm/current/src/misc/standard_float.c60
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/acos.c115
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/acos.h1079
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/acosf.c115
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/acosf.h901
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/acoshf.c115
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/acoshf.h360
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/asin.c115
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/asin.h1079
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/asinf.c115
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/asinf.h820
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/asinhf.c115
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/asinhf.h364
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/atan.c115
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/atan.h1079
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/atan2.c115
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/atan2.h1079
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/atan2f.c115
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/atan2f.h2294
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/atanf.c115
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/atanf.h1235
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/atanhf.c115
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/atanhf.h361
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/cbrtf.c115
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/cbrtf.h363
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/ceil.c115
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/ceil.h1079
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/ceilf.c115
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/ceilf.h1048
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/copysignf.c115
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/copysignf.h2551
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/cos.c115
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/cos.h1079
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/cosf.c115
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/cosf.h1234
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/cosh.c115
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/cosh.h1079
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/coshf.c115
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/coshf.h517
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/erfcf.c115
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/erfcf.h361
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/erff.c115
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/erff.h361
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/exp.c115
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/exp.h1079
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/expf.c115
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/expf.h647
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/expm1f.c115
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/expm1f.h2551
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/fabs.c115
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/fabs.h1079
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/fabsf.c115
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/fabsf.h1235
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/finitef.c115
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/finitef.h1362
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/floor.c115
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/floor.h1079
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/floorf.c115
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/floorf.h1235
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/fmod.c115
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/fmod.h1079
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/fmodf.c115
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/fmodf.h629
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/frexp.c115
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/frexp.h1079
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/frexpf.c115
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/frexpf.h528
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/gammaf.c115
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/gammaf.h363
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/hypotf.c58
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/hypotf.h310
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/ilogbf.c115
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/ilogbf.h1361
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/isnanf.c115
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/isnanf.h1401
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/j0f.c115
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/j0f.h362
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/j1f.c115
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/j1f.h362
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/jnf.c115
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/jnf.h279
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/ldexp.c115
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/ldexp.h1079
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/ldexpf.c115
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/ldexpf.h887
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/log.c115
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/log.h1079
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/log10.c115
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/log10.h1079
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/log10f.c115
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/log10f.h875
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/log1pf.c115
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/log1pf.h1360
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/logbf.c115
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/logbf.h1360
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/logf.c115
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/logf.h874
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/modf.c115
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/modf.h1079
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/modff.c115
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/modff.h777
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/nextafterf.c115
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/nextafterf.h1126
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/pow.c114
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/pow.h1079
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/powf.c114
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/powf.h215
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/remainderf.c115
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/remainderf.h2441
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/rintf.c115
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/rintf.h1004
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/scalbf.c115
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/scalbf.h221
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/scalbnf.c115
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/scalbnf.h667
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/significandf.c115
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/significandf.h2441
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/sin.c115
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/sin.h1079
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/sinf.c115
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/sinf.h1231
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/sinh.c115
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/sinh.h1079
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/sinhf.c115
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/sinhf.h363
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/sqrt.c115
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/sqrt.h1079
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/sqrtf.c127
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/sqrtf.h362
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/tan.c115
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/tan.h1079
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/tanf.c115
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/tanf.h1232
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/tanh.c115
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/tanh.h1079
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/tanhf.c115
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/tanhf.h1234
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/vector_support.h499
-rw-r--r--ecos/packages/language/c/libm/current/tests/vectors/vector_support_float.h550
-rw-r--r--ecos/packages/language/cxx/ustl/current/ChangeLog88
-rw-r--r--ecos/packages/language/cxx/ustl/current/HISTORY376
-rw-r--r--ecos/packages/language/cxx/ustl/current/LICENSE22
-rw-r--r--ecos/packages/language/cxx/ustl/current/cdl/ustl.cdl249
-rw-r--r--ecos/packages/language/cxx/ustl/current/doc/ustl.sgml153
-rw-r--r--ecos/packages/language/cxx/ustl/current/include/stdint.h569
-rw-r--r--ecos/packages/language/cxx/ustl/current/include/ustl.h193
-rw-r--r--ecos/packages/language/cxx/ustl/current/include/ustl/bktrace.h50
-rw-r--r--ecos/packages/language/cxx/ustl/current/include/ustl/cmemlink.h103
-rw-r--r--ecos/packages/language/cxx/ustl/current/include/ustl/config.h389
-rw-r--r--ecos/packages/language/cxx/ustl/current/include/ustl/fstream.h77
-rw-r--r--ecos/packages/language/cxx/ustl/current/include/ustl/memblock.h64
-rw-r--r--ecos/packages/language/cxx/ustl/current/include/ustl/memlink.h99
-rw-r--r--ecos/packages/language/cxx/ustl/current/include/ustl/metamac.h92
-rw-r--r--ecos/packages/language/cxx/ustl/current/include/ustl/mistream.h325
-rw-r--r--ecos/packages/language/cxx/ustl/current/include/ustl/mostream.h294
-rw-r--r--ecos/packages/language/cxx/ustl/current/include/ustl/ofstream.h81
-rw-r--r--ecos/packages/language/cxx/ustl/current/include/ustl/simd.h466
-rw-r--r--ecos/packages/language/cxx/ustl/current/include/ustl/sistream.h153
-rw-r--r--ecos/packages/language/cxx/ustl/current/include/ustl/sostream.h161
-rw-r--r--ecos/packages/language/cxx/ustl/current/include/ustl/strmsize.h96
-rw-r--r--ecos/packages/language/cxx/ustl/current/include/ustl/traits.h251
-rw-r--r--ecos/packages/language/cxx/ustl/current/include/ustl/typeinfo.h40
-rw-r--r--ecos/packages/language/cxx/ustl/current/include/ustl/typelist.h223
-rw-r--r--ecos/packages/language/cxx/ustl/current/include/ustl/typet.h99
-rw-r--r--ecos/packages/language/cxx/ustl/current/include/ustl/ualgo.h666
-rw-r--r--ecos/packages/language/cxx/ustl/current/include/ustl/ualgobase.h321
-rw-r--r--ecos/packages/language/cxx/ustl/current/include/ustl/ubitset.h130
-rw-r--r--ecos/packages/language/cxx/ustl/current/include/ustl/uctralgo.h470
-rw-r--r--ecos/packages/language/cxx/ustl/current/include/ustl/uctrstrm.h181
-rw-r--r--ecos/packages/language/cxx/ustl/current/include/ustl/uexception.h192
-rw-r--r--ecos/packages/language/cxx/ustl/current/include/ustl/ufunction.h465
-rw-r--r--ecos/packages/language/cxx/ustl/current/include/ustl/uheap.h142
-rw-r--r--ecos/packages/language/cxx/ustl/current/include/ustl/uios.h103
-rw-r--r--ecos/packages/language/cxx/ustl/current/include/ustl/uiosfunc.h96
-rw-r--r--ecos/packages/language/cxx/ustl/current/include/ustl/uiterator.h266
-rw-r--r--ecos/packages/language/cxx/ustl/current/include/ustl/ulaalgo.h220
-rw-r--r--ecos/packages/language/cxx/ustl/current/include/ustl/ulimits.h90
-rw-r--r--ecos/packages/language/cxx/ustl/current/include/ustl/ulist.h73
-rw-r--r--ecos/packages/language/cxx/ustl/current/include/ustl/umap.h181
-rw-r--r--ecos/packages/language/cxx/ustl/current/include/ustl/umatrix.h121
-rw-r--r--ecos/packages/language/cxx/ustl/current/include/ustl/umemory.h195
-rw-r--r--ecos/packages/language/cxx/ustl/current/include/ustl/umultimap.h120
-rw-r--r--ecos/packages/language/cxx/ustl/current/include/ustl/umultiset.h93
-rw-r--r--ecos/packages/language/cxx/ustl/current/include/ustl/unew.h47
-rw-r--r--ecos/packages/language/cxx/ustl/current/include/ustl/unumeric.h154
-rw-r--r--ecos/packages/language/cxx/ustl/current/include/ustl/upair.h59
-rw-r--r--ecos/packages/language/cxx/ustl/current/include/ustl/upredalgo.h589
-rw-r--r--ecos/packages/language/cxx/ustl/current/include/ustl/uqueue.h69
-rw-r--r--ecos/packages/language/cxx/ustl/current/include/ustl/uset.h84
-rw-r--r--ecos/packages/language/cxx/ustl/current/include/ustl/uspecial.h263
-rw-r--r--ecos/packages/language/cxx/ustl/current/include/ustl/ustack.h44
-rw-r--r--ecos/packages/language/cxx/ustl/current/include/ustl/ustdxept.h140
-rw-r--r--ecos/packages/language/cxx/ustl/current/include/ustl/ustlecos.h78
-rw-r--r--ecos/packages/language/cxx/ustl/current/include/ustl/ustring.h267
-rw-r--r--ecos/packages/language/cxx/ustl/current/include/ustl/utf8.h215
-rw-r--r--ecos/packages/language/cxx/ustl/current/include/ustl/utuple.h332
-rw-r--r--ecos/packages/language/cxx/ustl/current/include/ustl/utypes.h67
-rw-r--r--ecos/packages/language/cxx/ustl/current/include/ustl/uutility.h444
-rw-r--r--ecos/packages/language/cxx/ustl/current/include/ustl/uvector.h273
-rw-r--r--ecos/packages/language/cxx/ustl/current/src/bktrace.cpp141
-rw-r--r--ecos/packages/language/cxx/ustl/current/src/cmemlink.cpp78
-rw-r--r--ecos/packages/language/cxx/ustl/current/src/fstream.cpp268
-rw-r--r--ecos/packages/language/cxx/ustl/current/src/memblock.cpp155
-rw-r--r--ecos/packages/language/cxx/ustl/current/src/memlink.cpp42
-rw-r--r--ecos/packages/language/cxx/ustl/current/src/mistream.cpp121
-rw-r--r--ecos/packages/language/cxx/ustl/current/src/ofstream.cpp169
-rw-r--r--ecos/packages/language/cxx/ustl/current/src/sistream.cpp216
-rw-r--r--ecos/packages/language/cxx/ustl/current/src/sostream.cpp168
-rw-r--r--ecos/packages/language/cxx/ustl/current/src/ualgobase.cpp284
-rw-r--r--ecos/packages/language/cxx/ustl/current/src/ubitset.cpp34
-rw-r--r--ecos/packages/language/cxx/ustl/current/src/uexception.cpp277
-rw-r--r--ecos/packages/language/cxx/ustl/current/src/unew.cpp14
-rw-r--r--ecos/packages/language/cxx/ustl/current/src/ustdxept.cpp57
-rw-r--r--ecos/packages/language/cxx/ustl/current/src/ustlecos.cpp115
-rw-r--r--ecos/packages/language/cxx/ustl/current/src/ustring.cpp395
-rw-r--r--ecos/packages/language/cxx/ustl/current/tests/README1
-rw-r--r--ecos/packages/language/cxx/ustl/current/tests/bvt00.cpp46
-rw-r--r--ecos/packages/language/cxx/ustl/current/tests/bvt00.std3
-rw-r--r--ecos/packages/language/cxx/ustl/current/tests/bvt01.cpp60
-rw-r--r--ecos/packages/language/cxx/ustl/current/tests/bvt01.std7
-rw-r--r--ecos/packages/language/cxx/ustl/current/tests/bvt02.cpp72
-rw-r--r--ecos/packages/language/cxx/ustl/current/tests/bvt02.std9
-rw-r--r--ecos/packages/language/cxx/ustl/current/tests/bvt03.cpp117
-rw-r--r--ecos/packages/language/cxx/ustl/current/tests/bvt03.std13
-rw-r--r--ecos/packages/language/cxx/ustl/current/tests/bvt04.cpp68
-rw-r--r--ecos/packages/language/cxx/ustl/current/tests/bvt04.std25
-rw-r--r--ecos/packages/language/cxx/ustl/current/tests/bvt05.cpp399
-rw-r--r--ecos/packages/language/cxx/ustl/current/tests/bvt05.std132
-rw-r--r--ecos/packages/language/cxx/ustl/current/tests/bvt06.cpp59
-rw-r--r--ecos/packages/language/cxx/ustl/current/tests/bvt06.std29
-rw-r--r--ecos/packages/language/cxx/ustl/current/tests/bvt07.cpp135
-rw-r--r--ecos/packages/language/cxx/ustl/current/tests/bvt07.std32
-rw-r--r--ecos/packages/language/cxx/ustl/current/tests/bvt08.cpp57
-rw-r--r--ecos/packages/language/cxx/ustl/current/tests/bvt08.std30
-rw-r--r--ecos/packages/language/cxx/ustl/current/tests/bvt09.cpp84
-rw-r--r--ecos/packages/language/cxx/ustl/current/tests/bvt09.std28
-rw-r--r--ecos/packages/language/cxx/ustl/current/tests/bvt10.cpp171
-rw-r--r--ecos/packages/language/cxx/ustl/current/tests/bvt10.std27
-rw-r--r--ecos/packages/language/cxx/ustl/current/tests/bvt11.cpp36
-rw-r--r--ecos/packages/language/cxx/ustl/current/tests/bvt11.std7
-rw-r--r--ecos/packages/language/cxx/ustl/current/tests/bvt12.cpp81
-rw-r--r--ecos/packages/language/cxx/ustl/current/tests/bvt12.std12
-rw-r--r--ecos/packages/language/cxx/ustl/current/tests/bvt13.cpp36
-rw-r--r--ecos/packages/language/cxx/ustl/current/tests/bvt13.std7
-rw-r--r--ecos/packages/language/cxx/ustl/current/tests/bvt14.cpp59
-rw-r--r--ecos/packages/language/cxx/ustl/current/tests/bvt14.std23
-rw-r--r--ecos/packages/language/cxx/ustl/current/tests/bvt15.cpp57
-rw-r--r--ecos/packages/language/cxx/ustl/current/tests/bvt15.std30
-rw-r--r--ecos/packages/language/cxx/ustl/current/tests/bvt16.cpp86
-rw-r--r--ecos/packages/language/cxx/ustl/current/tests/bvt16.std11
-rw-r--r--ecos/packages/language/cxx/ustl/current/tests/bvt17.cpp98
-rw-r--r--ecos/packages/language/cxx/ustl/current/tests/bvt17.std33
-rw-r--r--ecos/packages/language/cxx/ustl/current/tests/bvt18.cpp77
-rw-r--r--ecos/packages/language/cxx/ustl/current/tests/bvt18.std184
-rw-r--r--ecos/packages/language/cxx/ustl/current/tests/bvt19.cpp33
-rw-r--r--ecos/packages/language/cxx/ustl/current/tests/bvt19.std3
-rw-r--r--ecos/packages/language/cxx/ustl/current/tests/bvt20.cpp33
-rw-r--r--ecos/packages/language/cxx/ustl/current/tests/bvt20.std2
-rw-r--r--ecos/packages/language/cxx/ustl/current/tests/bvt21.cpp108
-rw-r--r--ecos/packages/language/cxx/ustl/current/tests/bvt21.std68
-rw-r--r--ecos/packages/language/cxx/ustl/current/tests/bvt22.cpp71
-rw-r--r--ecos/packages/language/cxx/ustl/current/tests/bvt22.std58
-rw-r--r--ecos/packages/language/cxx/ustl/current/tests/bvt23.cpp121
-rw-r--r--ecos/packages/language/cxx/ustl/current/tests/bvt23.std218
-rw-r--r--ecos/packages/language/cxx/ustl/current/tests/bvt24.cpp100
-rw-r--r--ecos/packages/language/cxx/ustl/current/tests/bvt24.std180
-rw-r--r--ecos/packages/language/cxx/ustl/current/tests/bvt25.cpp32
-rw-r--r--ecos/packages/language/cxx/ustl/current/tests/bvt25.std5
-rw-r--r--ecos/packages/language/cxx/ustl/current/tests/bvt26.cpp19
-rw-r--r--ecos/packages/language/cxx/ustl/current/tests/bvt26.std10
-rw-r--r--ecos/packages/language/cxx/ustl/current/tests/bvt27.cpp57
-rw-r--r--ecos/packages/language/cxx/ustl/current/tests/bvt27.std25
-rw-r--r--ecos/packages/language/cxx/ustl/current/tests/stdtest.h106
724 files changed, 190503 insertions, 0 deletions
diff --git a/ecos/packages/language/c/libc/common/current/ChangeLog b/ecos/packages/language/c/libc/common/current/ChangeLog
new file mode 100644
index 0000000..4ec1e7c
--- /dev/null
+++ b/ecos/packages/language/c/libc/common/current/ChangeLog
@@ -0,0 +1,35 @@
+2003-02-24 Jonathan Larmour <jifl@eCosCentric.com>
+
+ * cdl/libc.cdl: Fix doc link.
+
+2000-05-02 Jonathan Larmour <jlarmour@redhat.co.uk>
+
+ * New package
+ Separated original libc out into separate packages on functional
+ boundaries.
+ Header files are now managed by isoinfra package
+ Plenty of cleanups done, but no major functionality changes
+
+//===========================================================================
+// ####GPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 or (at your option) any
+// later version.
+//
+// This program 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
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the
+// Free Software Foundation, Inc., 51 Franklin Street,
+// Fifth Floor, Boston, MA 02110-1301, USA.
+// -------------------------------------------
+// ####GPLCOPYRIGHTEND####
+//===========================================================================
diff --git a/ecos/packages/language/c/libc/common/current/ChangeLog.libc b/ecos/packages/language/c/libc/common/current/ChangeLog.libc
new file mode 100644
index 0000000..8809e93
--- /dev/null
+++ b/ecos/packages/language/c/libc/common/current/ChangeLog.libc
@@ -0,0 +1,2735 @@
+This ChangeLog file is now obsolete. This is the original ChangeLog from when
+libc was one large package, before being separated. It is included for
+historical reasons.
+
+2000-04-05 Jesper Skov <jskov@redhat.com>
+
+ * src/time/settime.cxx:
+ * src/time/time.cxx:
+ Wallclock moved to io/.
+
+2000-03-28 John Dallaway <jld@cygnus.co.uk>
+
+ * cdl/string.cdl,
+ cdl/stdlib.cdl,
+ cdl/stdio.cdl,
+ cdl/libc.cdl:
+
+ Adjust documentation URLs.
+
+2000-03-27 Jesper Skov <jskov@redhat.com>
+
+ * src/clibincl/stream.inl (check_this): Use cyb_bool instead of bool.
+
+2000-03-06 Jesper Skov <jskov@redhat.com>
+
+ * tests/time/strftime.c (test): Adjust test to match below change.
+
+2000-03-02 Jonathan Larmour <jlarmour@redhat.co.uk>
+
+ * src/time/strftime.cxx (do_format): Make sure %m counts from
+ 1..12 rather than 0..11. Fix for case 103300
+
+2000-02-29 Jonathan Larmour <jlarmour@redhat.co.uk>
+
+ * src/stdio/output/vfnprintf.cxx: Correctly use 'n' parameter to
+ restrict length. Credit due to Andrew Lunn here as well.
+ Resolves 103057-CR-1
+
+ * tests/stdio/sprintf2.c (test):
+ Add snprintf tests to verify the correct behaviour of restricting
+ output length
+
+2000-02-10 Jesper Skov <jskov@redhat.com>
+
+ * tests/signal/signal2.c (main):
+ Also reclaim DATA_TLB_MISS vector if available.
+
+2000-01-31 Simon FitzMaurice <sdf@cygnus.co.uk>
+ * cdl/*.cdl:
+
+ Adjust help URLs in line with new doc layout.
+
+2000-01-28 Simon FitzMaurice <sdf@cygnus.co.uk>
+ * cdl/*.cdl:
+
+ Adjust help URLs in line with new doc layout.
+
+2000-01-19 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * cdl/*.cdl: Add descriptions to a number of options &c which were
+ lacking same, also tidied up other typos as noticed en passant.
+
+1999-11-11 Bart Veer <bartv@cygnus.co.uk>
+
+ * cdl/string.cdl:
+ Switch to a single boolean configuration option for code size vs.
+ speed optimization.
+
+1999-11-03 John Dallaway <jld@cygnus.co.uk>
+
+ * cdl/libc.cdl: Define tests.
+
+1999-10-19 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/output/vfnprintf.cxx: We can now remove Berkeley
+ advertising clause
+ * src/stdlib/div.cxx: ditto
+ * src/stdlib/ldiv.cxx: ditto
+ * src/stdlib/strtol.cxx: ditto
+ * src/stdlib/strtoul.cxx: ditto
+ * src/string/strtok.cxx: ditto
+
+1999-10-19 John Dallaway <jld@cygnus.co.uk>
+
+ * cdl/libc.cdl:
+
+ Define CDL options for package-specific CFLAGS.
+
+1999-10-08 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h (CYGNUM_LIBC_MAIN_THREAD_PRIORITY): Change
+ default to 10 to keep test farm happy
+ * cdl/startup.cdl: Likewise
+
+1999-10-07 John Dallaway <jld@cygnus.co.uk>
+
+ * cdl/stdlib.cdl, cdl/string.cdl:
+
+ Specify radio buttons using CDL interfaces.
+
+1999-10-06 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * cdl/stdio.cdl: Change default to /dev/ttydiag as per 1999-10-01
+ change below
+ * cdl/startup.cdl: Add new form CDL for the startup changes as
+ per 1999-10-05
+
+1999-10-05 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/libc.h: Add CYGSEM_LIBC_MAIN_STACK_FROM_SYSTEM to allow
+ the user to supply their own stack.
+ Rename CYGNUM_LIBC_MAIN_STACK_SIZE to
+ CYGNUM_LIBC_MAIN_DEFAULT_STACK_SIZE and reparent under
+ CYGSEM_LIBC_MAIN_STACK_FROM_SYSTEM
+ Add CYGNUM_LIBC_MAIN_THREAD_PRIORITY to provide main() thread
+ priority
+
+ * src/support/mainthread.cxx: Add support for user-supplied stack
+ Allow user to specify thread priority
+
+ These changes fix CR 101069
+
+1999-10-01 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h (CYGDAT_LIBC_STDIO_DEFAULT_CONSOLE): Change
+ default to /dev/ttydiag to get correct console-like behaviour
+ Also don't preclude use if haldiag package isn't included
+ (case 102065)
+
+1999-09-15 Jesper Skov <jskov@cygnus.co.uk>
+
+ * tests/signal/signal2.c (cause_fpe): Try both float and integer
+ division by zero.
+
+1999-09-10 Jesper Skov <jskov@cygnus.co.uk>
+
+ * src/stdlib/malloc.cxx (cyg_libc_get_malloc_pool): Added for
+ stress_threads test.
+
+1999-09-07 Jesper Skov <jskov@cygnus.co.uk>
+ PRs 20243, 20433
+ * tests/signal/signal2.c: Disabled test3 on ARM.
+
+1999-09-02 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * include/assert.h: Make the sense of NDEBUG correct; it is "set"
+ when NOT debugging. Fix for CR 101983-CR-1
+ See Stroustrup, "The C++ Programming Language."
+
+1999-08-18 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/fopen.cxx (_fopen): Set buffer size 0 when not
+ buffering
+ Fix for case 101868
+
+1999-08-17 John Dallaway <jld@cygnus.co.uk>
+
+ * cdl/stdlib.cdl, cdl/string.cdl:
+
+ Implement radio buttons using "FIXME radio" hack in
+ description field for now.
+
+1999-08-12 John Dallaway <jld@cygnus.co.uk>
+
+ * cdl/stdlib.cdl:
+ Take advantage of MACRONAME_ENUMVAL macros output by CDL.
+
+1999-08-06 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdio/sprintf2.c (test): Don't rely on 2.345 being exactly
+ representable in binary as a difference of 1 ulp will make it round
+ the wrong way.
+
+1999-07-16 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/input/fgetc.cxx:
+ Include outline versions of getc() (actually just a symbol alias for
+ fgetc() ) and getchar()
+ Some minor clean-ups
+ Add tracing/assertions
+
+ * src/stdio/input/fputc.cxx:
+ Likewise (except applied to putc() and putchar())
+
+ * src/stdio/common/stdioinlines.cxx (_puts):
+ Call fputc() not _fputc()
+
+ * src/clibincl/stdiosupp.hxx:
+ Remove now obsolete prototypes for _fgetc() and _fputc()
+
+ * include/stdio.h:
+ Don't bother with getc()/putc() macros any more, just call
+ them as functions
+ Include protos for getc(), putc(), getchar() and putchar() functions
+
+1999-06-21 Jesper Skov <jskov@cygnus.co.uk>
+
+ * tests/signal/signal2.c: Disabled test 3 for SH EDK7708.
+
+1999-06-11 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/stdio.h: Make FILEs array types so they won't be
+ given $gp relocations on MIPS targets
+
+1999-05-27 Jesper Skov <jskov@cygnus.co.uk>
+
+ * tests/time/ctime.c: Fixed compiler warning.
+
+1999-05-25 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/signal/signal2.c (main):
+ Update CYGPKG_HAL_TX39 -> CYGPKG_HAL_MIPS_TX39 due to recent MIPS
+ HAL changes
+ Fix for PR 20116
+
+1999-04-30 Jesper Skov <jskov@lassi.cygnus.co.uk>
+ PR 19945/19946 workaround
+ * tests/signal/signal2.c: Disabled test 3 for PowerPC sim.
+
+1999-04-19 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/time.inl:
+ Ensure all calls to cyg_libc_time_year_is_leap() are with the full
+ year, and not the direct contents of a struct tm, which are (year-1900)
+
+1999-04-19 Jesper Skov <jskov@cygnus.co.uk>
+ PR 19308, 19410, 19528
+ * tests/time/clock.c (test): Also disable data cache which may
+ affect timing when tracing/assertions are enabled.
+
+1999-04-15 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/stdiosupp.hxx:
+ Add prototype for new cyg_libc_stdio_flush_all_but() function
+
+ * src/clibincl/stream.hxx:
+ Don't include stdiosupp.hxx any more to prevent circular dependency,
+ therefore manually provide _setvbuf prototype
+ Make sure pkgconf/kernel.h is included before mutex.hxx
+
+ * src/clibincl/stream.inl (Cyg_StdioStream::set_error()):
+ Add missing unlock_me()
+
+ * src/stdio/common/fflush.cxx:
+ Separate most of code for fflush(NULL) into separate
+ cyg_libc_stdio_flush_all_but() function, which has the extra
+ capability of omitting one stream
+
+ * src/stdio/common/stderr.cxx:
+ * src/stdio/common/stdin.cxx:
+ * src/stdio/common/stdout.cxx:
+ * src/stdio/common/vsnprintf.cxx:
+ * src/stdio/common/vsscanf.cxx:
+ Add missing clibincl/stdiosupp.hxx include
+
+ * src/stdio/common/stream.cxx (Cyg_StdioStream::read()):
+ When reading, ensure we flush all output streams
+
+ * src/stdio/common/stream.cxx (Cyg_StdioStream::flush_output_unlocked):
+ Flush the device as well
+
+1999-04-15 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/streambuf.cxx (set_buffer):
+ * src/stdio/common/stdioinlines.cxx (_setbuf):
+ * src/clibincl/streambuf.inl:
+ * src/clibincl/streambuf.hxx:
+ * src/clibincl/stream.hxx (class Cyg_StdioStream):
+ * include/pkgconf/libc.h:
+ * include/stdio.inl (setbuf):
+ Fix dumb typo: BUFSIZE -> BUFSIZ
+ This fixes PR19837
+
+1999-04-15 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/stdioinlines.cxx (_setbuf):
+ * include/stdio.inl (setbuf):
+ Use _IONBF when buf==NULL, and _IOLBF otherwise.
+ Fix for PR 19836
+
+1999-04-15 John Dallaway <jld@cygnus.co.uk>
+
+ * include/pkgconf/libc.h: Tidy display string capitalization.
+
+1999-04-12 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Clarify CDL description of CYGNUM_LIBC_MALLOC_MEMPOOL_SIZE
+
+ * tests/signal/signal2.c: Try harder to generate an exception by
+ accessing a misaligned address
+ Don't handle SIGTRAP any more
+ Part of fix for PRs 19731/19607
+
+1999-04-07 Jesper Skov <jskov@cygnus.co.uk>
+ PR 19667
+ * src/support/mainthread.cxx:
+ Changed to use the new Cyg_Thread constructor.
+
+1999-04-07 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * tests/signal/signal2.c (main): Use new macro
+ HAL_VSR_SET_TO_ECOS_HANDLER if defined, to wrest control from
+ CygMon, for example, by reinstalling eCos' default VSRs for
+ exceptions that we are provoking.
+
+1999-03-29 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/signal/siginit.cxx: Include stdlib.h for exit()
+ Fix for PR 19720
+
+1999-03-29 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/time/clock.c (test): Disable instruction cache
+ Hopefully fixes PR 19308
+
+1999-03-29 Jesper Skov <jskov@cygnus.co.uk>
+
+ * tests/signal/signal2.c: Disabled test 3 for PPC as it cannot
+ trap division by zero.
+
+1999-03-26 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/support/main.cxx (main): Invoke cyg_user_start() if no kernel
+ Only sensible thing to do in our default main in a non-kernel config
+
+1999-03-25 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/time/time.c:
+ Increase MAX_TIMEOUT since the sparclite gets very close to overrunning
+ it even when working.
+ Should return -1 iff CYGSEM_LIBC_TIME_TIME_WORKING isn't defined
+ Cosmetic changes
+
+1999-03-25 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * tests/time/time.c (test): Take into account setting of
+ CYGSEM_LIBC_TIME_SETTIME_WORKING ie. does cyg_libc_time_settime()
+ work? If not, check that it returns an error.
+ This was exposed by the random combo in PR#19479.
+
+1999-03-23 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Rename CYGSEM_LIBC_RAND_SIMPLEST and CYGSEM_LIBC_RAND_KNUTH1 to
+ CYGIMP_...
+
+ Add another rand implementation CYGIMP_LIBC_RAND_SIMPLE1 which is
+ the default
+
+ Part of fix for PR 19562
+
+ * include/sys/cstartup.h:
+ Tidy and remove unnecessary dependencies
+
+ * src/stdlib/rand.cxx:
+ Rename algorithms from CYGSEM_... to CYGIMP_...
+ Add new "simple1" algorithm
+
+ * tests/ctype/ctype.c:
+ Tidy
+
+ * tests/stdlib/rand3.c:
+ Fix so that 0..RAND_MAX is split evenly over buckets, which it wasn't
+ before
+ Deal with case of RAND_MAX not being divisible by NUM_BUCKETS
+ exactly
+ Increase TEST_LENGTH to 200000 to provide more representative sample
+ Add CYG_TEST_INFO output to help ensure it doesn't time out
+ Tidy
+
+ * tests/stdlib/rand4.c:
+ Only fail if more than _two_ thirds (rather than one third) match.
+ This is because half would match for a perfectly random distribution
+ This is the rest of the fix for PR 19562
+ Cosmetic changes
+
+1999-03-22 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * src/support/mainthread.cxx (CYGNUM_LIBC_MAIN_STACK_SIZE):
+ Use CYGNUM_HAL_STACK_SIZE_TYPICAL for the stack size instead of
+ CYGNUM_HAL_MINIMUM_STACK_SIZE.
+
+1999-03-22 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/PKGconf.mak: Add -Wno-format when building strftime otherwise
+ it generates warnings for things that we do want to test (null
+ string, and %y format)
+
+1999-03-19 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h (CYGNUM_LIBC_TIME_DST_DEFAULT_STATE):
+ Put brackets back round negative number since sdf says the config
+ tool is fixed now (PR 19537)
+
+ Add new CYGSEM_LIBC_RAND_SIMPLEST and CYGSEM_LIBC_RAND_KNUTH1
+ options for different rand() algorithms in a so far failed attempt
+ to fix PR 19562
+
+ * src/stdlib/rand.cxx:
+ Add new optional algorithm from Knuth vol.2
+
+ * tests/stdlib/rand4.c:
+ Some tidies
+ Don't run test when using simplest algorithm
+
+ * tests/signal/signal2.c (main):
+ Don't try to make an FPE on tx39 - its possible to detect but requires
+ too much HAL work to be sensible
+
+1999-03-18 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/signal/siginit.cxx (cyg_libc_signals_hwexcept_handler):
+ Use HAL_ENABLE_INTERRUPTS() rather than kernel to enable interrupts
+
+1999-03-18 Mark Galassi <rosalia@cygnus.com>
+
+ * tests/PKGconf.mak (TESTS): added rand4 compilation.
+
+ * tests/stdlib/rand4.c: added this test for periodicity in the
+ least significant bit of rand().
+
+1999-03-18 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h: Remove CYGFUN_LIBC_TIME_POSIX dependency
+ on CYGPKG_LIBC_STDIO
+
+ * src/stdlib/itoa.cxx:
+ New file to convert integers to ascii
+
+ * include/stdlib.h:
+ Add proto for new cyg_libc_itoa() function
+
+ * include/time.inl:
+ Rework __asctime_r() to use memcpy() and cyg_libc_itoa() rather than
+ sprintf()
+
+ * src/PKGconf.mak:
+ Build stdlib/itoa.cxx
+
+ The above changes fix PR 19448
+
+1999-03-17 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/time.h: Add #define of __time_t_defined to placate newlib
+ if it is used by accident. This is just a temporary workaround though.
+
+1999-03-16 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * src/PKGconf.mak: Add compile option to step around ARM compiler bug.
+
+1999-03-16 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h (CYGNUM_LIBC_TIME_DST_DEFAULT_STATE):
+ Don't use parentheses for now
+
+ * src/stdio/common/stream.cxx (refill_read_buffer):
+ Silence bogus compiler warning
+
+1999-03-16 Jesper Skov <jskov@cygnus.co.uk>
+
+ * tests/signal/signal2.c (main): Enable SIGSEGV test for
+ i386/Linux.
+
+
+1999-03-15 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/signal/siginit.cxx (cyg_libc_signals_hwexcept_handler):
+ Only enable interrupts if they were disabled
+
+ * include/sys/timeutil.h:
+ * src/time/timeutil.cxx:
+ Add FIX ME line as a reminder that the workaround there can go away
+ in future
+
+ * include/pkgconf/libc.h:
+ Add proper define for CYGSEM_LIBC_EXIT_CALLS_FFLUSH
+ Put brackets round negative CYGNUM_LIBC_TIME_DST_DEFAULT_STATE define
+ Fix run time typo
+
+ * include/time.inl (__localtime_r):
+ Include sys/timeutil.h before this to get
+ cyg_libc_time_normalize_structtm()
+
+1999-03-12 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * include/sys/timeutil.h:
+ * src/time/timeutil.cxx: Remove 'const' from char arrays since
+ this fails [silently] on ARM when -fwritable-strings (PR19440)
+
+1999-03-12 Jesper Skov <jskov@cygnus.co.uk>
+
+ * tests/signal/signal2.c (main): Compiler warnings fix was
+ slightly broken.
+
+1999-03-12 Jesper Skov <jskov@cygnus.co.uk>
+ PR 19473
+ * tests/signal/signal2.c (main):
+ Disabling SIGTRAP handling on i386/Linux is not a good idea.
+1999-03-11 Jesper Skov <jskov@cygnus.co.uk>
+ PR 19473
+ * tests/signal/signal2.c:
+ Added compiler warnings fix.
+ Added N/A handling for i386/Linux.
+
+1999-03-10 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * include/pkgconf/libc.h: Force "haldiag" device to be present.
+ 'asctime' and friends need 'stdio' as well.
+
+ * include/time.inl: Fix syntax error on difftime() declaration.
+
+1999-03-08 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * src/clibincl/stream.hxx: <cyg/infra/cyg_ass.h> needed for this file.
+
+ * src/stdio/common/vsscanf.cxx (str_read): Fix problem with string
+ pointer [created by merge with new I/O package].
+
+1999-03-05 John Dallaway <jld@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Add legal values for CYGNUM_LIBC_TIME_STD_DEFAULT_OFFSET
+ and CYGNUM_LIBC_TIME_DST_DEFAULT_OFFSET.
+
+1999-03-05 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/time.inl (cyg_libc_time_year_is_leap):
+ Fix bug with modulo year 400
+ Fix typo in asctime_r macro
+ Fix gmtime_r, and mktime as a result of testing
+
+ * tests/time/asctime.c, tests/time/ctime.c, tests/time/gmtime.c,
+ tests/time/gmtime.c, tests/time/localtime.c, tests/time/mktime.c,
+ tests/time/strftime.c, tests/time/time.c:
+ New tests
+
+ * tests/PKGconf.mak:
+ Build above new tests
+
+ * include/pkgconf/libc.h:
+ Add reminder FIX ME about extra config option
+
+ * src/time/strftime.cxx:
+ Fix %w and %Y parameters as a result of testing
+
+ * src/time/timeutil.cxx:
+ Fix cyg_libc_time_normalize_structtm() as a result of testing
+ of mktime()
+
+ * tests/time/clock.c:
+ Reformat, remove obsolete bits and tidy
+
+ * include/time.h:
+ Add Cyg_libc_time_dst type and new functions
+ cyg_libc_time_setzoneoffsets(), cyg_libc_time_setdst(),
+ cyg_libc_time_getzoneoffsets(), cyg_libc_time_settime()
+
+ * include/time.inl:
+ Implement the above functions. This allows us to adjust for timezone
+ diffences and set the time.
+ Change localtime() to adjust for STD/DST
+ Change mktime() to adjust for STD/DST
+
+ * include/libc.h:
+ Add new config options CYGSEM_LIBC_TIME_SETTIME_WORKING
+ and component CYGPKG_LIBC_TIME_ZONES containing options
+ CYGNUM_LIBC_TIME_DST_DEFAULT_STATE,
+ CYGNUM_LIBC_TIME_STD_DEFAULT_OFFSET,
+ CYGNUM_LIBC_TIME_DST_DEFAULT_OFFSET
+
+ * src/strftime.cxx:
+ Adjust handling of %Z to _not_ deal with STD/DST
+
+ * src/time/settime.cxx:
+ New file to implement cyg_libc_time_settime()
+
+ * src/PKGconf.mak:
+ Build settime.cxx
+
+ * src/time/timeutil.cxx:
+ Supply outline versions of cyg_libc_time_setzoneoffsets(),
+ cyg_libc_time_setdst(), and cyg_libc_time_getzoneoffsets()
+ Add variables for STD/DST state
+ Some minor comment changes
+
+ * include/errno.h:
+ Use CYGBLD_ATTRIB_CONST instead of __attribute__((const)) directly
+
+ * include/signal.h:
+ Change format of function comment headers
+
+ * include/signal.inl:
+ Restrict errno.h inclusion to when its actually used
+ Fix a spelling typo
+
+ * include/stdlib.h:
+ Add CYGBLD_ATTRIB_CONST to abs, div, labs, ldiv
+
+ * include/stdlib.inl:
+ Reformat and tidy
+ Include new versions of div and ldiv which are more portable and
+ are cleanly rewritten so aren't covered by the BSD licence, which
+ is now removed
+
+ * src/stdlib/div.cxx, src/stdlib/ldiv.cxx:
+ Non-inline, non-BSD and portable versions of the new versions of div
+ and ldiv from stdlib.inl
+
+ * include/time.h:
+ Much reformatting, tidying and improving comments
+ Change CLOCKS_PER_SEC from 1000 to 1000000
+ Add new functions asctime_r, ctime_r, gmtime_r, localtime_r, clock,
+ difftime, mktime, time, asctime, ctime, gmtime, localtime, strftime
+ Include new time.inl file
+
+ * include/pkgconf/libc.h:
+ Add new options CYGSEM_LIBC_TIME_CLOCK_WORKING,
+ CYGSEM_LIBC_TIME_TIME_WORKING, CYGFUN_LIBC_TIME_POSIX,
+ CYGNUM_LIBC_TIME_CLOCK_TRACE_LEVEL, CYGIMP_LIBC_TIME_ASCTIME_INLINE,
+ CYGIMP_LIBC_TIME_CTIME_INLINE, CYGIMP_LIBC_TIME_DIFFTIME_INLINE,
+ CYGIMP_LIBC_TIME_GMTIME_INLINE, CYGIMP_LIBC_TIME_LOCALTIME_INLINE,
+ CYGIMP_LIBC_TIME_MKTIME_INLINE, CYGIMP_LIBC_TIME_ASCTIME_R_INLINE,
+ CYGIMP_LIBC_TIME_CTIME_R_INLINE, CYGIMP_LIBC_TIME_GMTIME_R_INLINE,
+ and CYGIMP_LIBC_TIME_LOCALTIME_R_INLINE
+
+ * time/asctime.cxx, time/asctime_r.cxx, time/clock.cxx, time/ctime.cxx,
+ time/ctime_r.cxx, time/difftime.cxx, time/gmtime.cxx,
+ time/gmtime_r.cxx, time/localtime.cxx, time/localtime_r.cxx,
+ time/mktime.cxx, time/strftime.cxx, time/time.cxx, time/timeutil.cxx,
+ include/time.inl:
+ New files to implement the new time functions. Many of them simply
+ provide the outline definitions, but the real body of the function
+ comes from time.inl
+
+ * src/PKGconf.mak:
+ Build new .cxx files
+
+ * src/clibincl/stdlibsupp.hxx:
+ Remove _div and _ldiv prototypes since they're no longer needed
+
+ * src/clibincl/timesupp.hxx:
+ Delete as its now obsolete
+
+ * src/time/clock.cxx:
+ Use new CYGSEM_LIBC_TIME_CLOCK_WORKING option to control whether it
+ just returns (clock_t)-1 or not.
+ Much reformatting and tidying
+ Change real imlpementation from _clock to __clock
+ Use CYGBLD_ATTRIB_WEAK_ALIAS now
+
+ * tests/stdlib/div.c, tests/stdlib/ldiv.c:
+ Add some extra tests for handling of negative numbers
+ Reformat and tidy a bit, including removing the test for CYGPKG_LIBC
+ since its now always defined if the test is to be compiled
+
+ * tests/time/clock.c:
+ Remove duplication CYG_TEST_INFO line
+ Check if unimplemented using "(clock_t)-1" and not just "-1"
+
+1999-03-04 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdlib/system.cxx:
+ Make sure system() is a weak alias for __system()
+
+ * include/pkgconf/libc.h: Rework CDL description for
+ CYGDAT_LIBC_STDIO_DEFAULT_CONSOLE and change its default to
+ "/dev/haldiag"
+
+ * src/stdio/common/stream.cxx:
+ Check that dev is valid when passed to stream constructor
+
+ * src/stdio/common/stdiosupp.cxx:
+ Tidy
+
+ * src/support/mainthread.cxx: Make this depend on
+ CYGSEM_LIBC_STARTUP_MAIN_THREAD rather than just CYGPKG_KERNEL
+
+1999-03-04 Gary Thomas <gthomas@cygnus.co.uk>
+
+ Merged in changes from 'ecos-new_devs-19990216-branch'
+
+ (1999-02-24 Jonathan Larmour <jlarmour@cygnus.co.uk>)
+
+ * src/stdio/common/stream.cxx:
+ Add "fix me" comments and remove a couple of commented out lines
+
+ * src/stdio/common/vsnprintf.cxx:
+ * src/stdio/common/vsscanf.cxx:
+ Revert to using pointer to string for private data, not just string.
+ This preserves the state across multiple calls
+
+ (1999-02-24 Gary Thomas <gthomas@cygnus.co.uk>)
+
+ * src/stdio/common/vsscanf.cxx:
+ * src/stdio/common/vsnprintf.cxx:
+ * src/stdio/common/stream.cxx:
+ * src/stdio/common/stdiosupp.cxx:
+ * src/stdio/common/fopen.cxx:
+ * src/clibincl/stream.inl:
+ * src/clibincl/stream.hxx:
+ * src/clibincl/stdiosupp.hxx:
+ * include/pkgconf/libc.h: Changes for new I/O system.
+
+1999-03-03 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdlib/atexit.c: Forgot to config atexit test for
+ CYGFUN_LIBC_ATEXIT option
+
+ * include/pkgconf/libc.h:
+ Require CYGVAR_KERNEL_THREADS_DATA for CYGSEM_LIBC_PER_THREAD_STRTOK
+ This fixes PR 19362
+ Require CYGPKG_KERNEL for thread safe streams
+ Also don't need "requires CYGPKG_KERNEL" for per-thread rand and errno
+ if we already require a finer granularity kernel option
+
+1999-02-25 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h: Fix CYGNUM_LIBC_MAIN_STACK_SIZE by changing
+ CYGPKG_LIBC_STARTUP_MAIN_THREAD -> CYGSEM_LIBC_STARTUP_MAIN_THREAD
+ Fix for PR 19304
+
+1999-02-23 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdlib/system.cxx: Add to implement trivial system() call
+ * include/stdlib.h: Add system() prototype
+ * src/PKGconf.mak: Build system.cxx
+
+ * tests/ctype/ctype.c, tests/i18n/setlocale.c, tests/setjmp/setjmp.c,
+ tests/signal/signal1.c, tests/signal/signal2.c,
+ tests/stdio/sprintf1.c, tests/stdio/sprintf2.c, tests/stdio/sscanf.c,
+ tests/stdio/stdiooutput.c, tests/stdlib/atexit.c,
+ tests/stdlib/atoi.c, tests/stdlib/atol.c, tests/stdlib/bsearch.c,
+ tests/stdlib/div.c, tests/stdlib/getenv.c, tests/stdlib/labs.c,
+ tests/stdlib/ldiv.c, tests/stdlib/malloc1.c, tests/stdlib/malloc2.c,
+ tests/stdlib/malloc3.c, tests/stdlib/qsort.c, tests/stdlib/rand1.c,
+ tests/stdlib/rand2.c, tests/stdlib/rand3.c, tests/stdlib/realloc.c,
+ tests/stdlib/srand.c, tests/stdlib/strtol.c, tests/stdlib/strtoul.c,
+ tests/string/memchr.c, tests/string/memcmp1.c,
+ tests/string/memcmp2.c, tests/string/memcpy1.c,
+ tests/string/memcpy2.c, tests/string/memmove1.c,
+ tests/string/memmove2.c, tests/string/memset.c,
+ tests/string/strcat1.c, tests/string/strcat2.c,
+ tests/string/strchr.c, tests/string/strcmp1.c,
+ tests/string/strcmp2.c, tests/string/strcoll1.c,
+ tests/string/strcpy1.c, tests/string/strcpy2.c,
+ tests/string/strcspn.c, tests/string/strlen.c,
+ tests/string/strncat1.c, tests/string/strncat2.c,
+ tests/string/strncpy1.c, tests/string/strncpy2.c,
+ tests/string/strpbrk.c, tests/string/strrchr.c,
+ tests/string/strspn.c, tests/string/strstr.c, tests/string/strtok.c,
+ tests/string/strxfrm1.c, tests/string/strxfrm2.c, tests/time/clock.c:
+ Use CYG_TEST_NA() macro for non-applicable test configurations
+
+1999-02-20 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/signal.h:
+ * include/signal.inl:
+ * src/signal/raise.cxx:
+ * src/signal/siginit.cxx:
+ * src/signal/signal.cxx:
+ * tests/signal/signal1.c
+ * tests/signal/signal2.c:
+ New files to implement ISO standard signals
+
+ * src/PKGconf.mak (TESTS):
+ * tests/PKGconf.mak (TESTS):
+ Update to build new files above
+
+ * include/stdlib.h:
+ * src/clibincl/stdlibsupp.hxx:
+ Comment and QA changes (including giving better names to some types)
+
+ * include/libc.h:
+ Add new configuration options for signals
+ Add new CYGSEM_LIBC_STARTUP_MAIN_THREAD option
+ Add a note to CYGNUM_LIBC_MAIN_STACK_SIZE option that it may be
+ overriden by HAL
+ Add new CYGFUN_LIBC_ATEXIT option and move ...ATEXIT_HANDLERS under
+ it
+ Add new CYGSEM_LIBC_EXIT_CALLS_FFLUSH option
+ Require CYGSEM_LIBC_STARTUP_MAIN_THREAD for "Invoke default static
+ constructors" option
+
+ * src/stdlib/atexit.cxx:
+ Support above CYGFUN_LIBC_ATEXIT and QA changes
+
+ * src/stdlib/exit.cxx:
+ Support for above new libc.h options, and some QA changes
+
+ * src/support/cstartup.cxx:
+ Add support for new CYGSEM_LIBC_STARTUP_MAIN_THREAD option
+
+ * src/support/mainthread.cxx:
+ Override main stack size if the HAL has a minimum
+
+ * src/string/strncpy.cxx:
+ Use improved algorithm for aligned copies - imported from newlib
+ QA changes
+
+ * src/stdlib/abort.cxx:
+ Support raise(SIGABRT), and some QA
+
+ * include/errno.h:
+ Add const attribute
+
+ * tests/stdlib/abs.c:
+ QA improvements
+
+1999-02-04 Jesper Skov <jskov@cygnus.co.uk>
+
+ * src/support/cstartup.cxx: Only define cyg_libc_main_thread when
+ the kernel is around.
+
+1999-02-01 Jesper Skov <jskov@cygnus.co.uk>
+
+ * tests/time/clock.c: Joined the two test/NOP checks into
+ one.
+ Increased tolerance in attempt to fix PRs 18737,18787,18846.
+ Fixed typo.
+
+1999-01-28 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/string/strtok.cxx:
+ * src/stdlib/rand.cxx:
+ Include <pkgconf/kernel.h> if we use kernel header files
+
+1999-01-25 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdio/sscanf.c (test):
+ CYGSEM_LIBC_STDIO_PRINTF_FLOATING_POINT should be
+ CYGSEM_LIBC_STDIO_SCANF_FLOATING_POINT
+ Fix for PR 18786
+
+ * src/string/strtok.cxx:
+ * src/stdio/common/stdiofiles.cxx:
+ * src/errno/errno.cxx:
+ * src/stdlib/rand.cxx:
+ Give mutex protection objects a libc constructor priority
+
+ * src/support/invokemain.cxx:
+ Add prototype for cyg_hal_invoke_constructors()
+
+ * src/support/mainthread.cxx:
+ Give cyg_libc_dummy_constructor_obj a libc constructor priority,
+ and make its class have a public constructor
+
+ * src/stdio/common/stderr.cxx:
+ * src/stdio/common/stdout.cxx:
+ * src/stdio/common/stdin.cxx:
+ Give cyg_libc_stdio_stdin/out/err static objects a libc constructor
+ priority
+
+ * src/clibincl/streambuf.hxx (class Cyg_StdioStreamBuffer):
+ * src/clibincl/stream.hxx (class Cyg_StdioStream):
+ Remove private copy constructor. Needed to make prioritised
+ static constructors work. Fix for PR 18898
+
+1999-01-22 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/errno/errno.cxx:
+ Include pkgconf/kernel.h otherwise it fails with per-thread errno
+ enabled
+
+ * include/pkgconf/libc.h:
+ Enable per-thread errno by default since that is what POSIX would
+ want
+
+ * tests/time/clock.c (test):
+ Placate compiler by initializing clock_first/second/third anyway,
+ even though they won't be in practice. This is only a test program
+ so adding an extra instruction doesn't matter.
+
+ * src/i18n/locale.cxx (_setlocale):
+ Placate compiler, since it is dumb, by nesting, not serializing, if's
+ This is an idempotent change, but screws up the formatting :-(.
+
+ * src/string/strpbrk.cxx (_strpbrk):
+ Change while loop to do loop to placate compiler. It'll even save an
+ instruction too (wow!)
+
+1999-01-22 John Dallaway <jld@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Add closing curly brace to CYGPKG_LIBC_STRING_STRTOK definition
+
+1999-01-21 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/errno.h:
+ Tidy up and add to header description
+ Change cyg_get_errno_p() to cyg_libc_get_errno_p()
+ Remove ifdef CYGPKG_LIBC
+
+ * include/sys/file_if.h:
+ Remove - move contents to stdio.h
+
+ * include/stdio.h:
+ Tidy up header description
+ Move FILE typedef here from sys/file_if.h
+ SEEK_SET, SEEK_CUR, SEEK_END defined to 0, 1, 2 respectively
+ for backwards compatibility with old UNIX
+ Change definitions of stdin/out/err to be addresses of FILE
+ globals - even though they're actually Cyg_StdioStream it'll work
+
+ * include/pkgconf/libc.h:
+ Make CYGPRI_LIBC_WEAK et al macros depend on new ones in infra
+ Reorganise trace options under the individual components they are
+ associated with.
+ Reorganise thread-safety options under the individual components
+ they are associated with.
+ Add new CYGSEM_LIBC_INVOKE_DEFAULT_STATIC_CONSTRUCTORS option
+ Misc. reformatting
+ Remove dependency on pkgconf/kernel.h - Configuration Tool will
+ generate check macros anyway.
+ Remove CYGPKG_LIBC_TRACE, CYGFUN_LIBC_strtok, CYGPKG_LIBC_RAND
+ options
+ Tidy up description header
+
+ * src/clibincl/clibdata.hxx:
+ * src/clibincl/clibdata.inl:
+ * src/support/clibdata.cxx:
+ Remove and instead rely on each component to initialise its own data
+
+ * src/clibincl/stdiofiles.hxx, src/clibincl/stdiofiles.inl:
+ New files to contain global file list and lock (if applicable).
+ Implemented as class with member access functions
+
+ * src/errno/errno.cxx:
+ Reorganise with self-contained per-thread data, if applicable
+ Remove ifdef CYGPKG_LIBC
+ Tidy up description header
+ Rename cyg_get_errno_p() to cyg_libc_get_errno_p()
+
+ * src/stdio/common/fclose.cxx:
+ * src/stdio/common/fflush.cxx:
+ * src/stdio/common/fopen.cxx:
+ * src/stdio/common/freopen.cxx:
+ Remove ifdef CYGPKG_LIBC
+ Use new global file access method from stdiofiles.hxx
+ Tidy up description header
+ Use new CYGBLD_ATTRIB_WEAK_ALIAS
+ Access errno "normally" rather than clibdata way
+
+ * src/stdio/common/stdin.cxx:
+ * src/stdio/common/stdout.cxx
+ * src/stdio/common/stderr.cxx:
+ New files. Implement Cyg_StdioStream objects for each stream. In
+ separate self-contained files so using one doesn't bring in the
+ others
+
+ * src/stdio/common/stdiofiles.cxx:
+ New file. Implements global files array and lock
+
+ * src/stdlib/_exit.cxx:
+ Tidy up description header
+ Remove ifdef CYGPKG_LIBC
+ Use infra CYGBLD* macros
+
+ * src/stdlib/malloc.cxx:
+ Tidy up description header
+ Remove ifdef CYGPKG_LIBC
+ Add pkgconf/kernel.h now that pkgconf/libc.h doesn't have it
+ Use infra CYGBLD* macros
+ Make pool visible externally with weak attribute and new name
+ cyg_libc_malloc_memorypool
+
+ * src/stdlib/rand.cxx:
+ * src/stdlib/strtok.cxx:
+ Reorganise with self-contained per-thread data, if applicable
+ Remove ifdef CYGPKG_LIBC
+ Tidy up description header
+ Use infra CYGBLD* macros
+
+ * src/support/cstartup.cxx:
+ Split into smaller files to make selective linking work better,
+ fix i386 port problem and make GDB happy
+
+ * src/support/environ.cxx:
+ * src/support/invokemain.cxx:
+ * src/support/main.cxx:
+ * src/support/mainthread.cxx:
+ New files from bits of the old cstartup.cxx
+ Add support for CYGSEM_HAL_STOP_CONSTRUCTORS_ON_FLAG
+
+ * src/PKGconf.mak:
+ Update to reflect file additions/deletion
+
+ * tests/stdlib/rand1.c:
+ * tests/stdlib/rand2.c:
+ * tests/stdlib/rand3.c:
+ * tests/stdlib/srand.c:
+ Make conform to coding standards
+ Remove ifdef CYGPKG_LIBC_RAND
+ Tidy up description header
+
+ * tests/string/strtok.c:
+ Make conform to coding standards
+ Remove ifdef CYGFUN_LIBC_strtok
+ Tidy up description header
+
+1999-01-15 Mark Galassi <rosalia@cygnus.com>
+
+ * tests/stdlib/getenv.c (main): added tests for the case in which
+ the user does not supply environ and in which the user supplies a
+ NULL environ.
+
+1999-01-15 Jesper Skov <jskov@cygnus.co.uk>
+
+ * src/support/cstartup.cxx: Added workaround for weak aliasing
+ problem in i386 gcc.
+
+
+1999-01-15 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * include/pkgconf/libc.h (CYGNUM_LIBC_MAIN_STACK_SIZE):
+ (CYGNUM_LIBC_MALLOC_MEMPOOL_SIZE): Change defaults to be
+ more reasonable on small systems.
+
+1999-01-04 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/support/clibdata.cxx:
+ Minor bug with environ not being initialised correctly by
+ default
+
+1998-12-24 Bart Veer <bartv@cygnus.co.uk>
+
+ * src/clibincl/stream.inl (Cyg_StdioStream):
+ check_this() member functions should now be const
+
+1998-12-22 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/string/memchr.cxx (_memchr):
+ treat search value parameter to memchr as an unsigned byte,
+ not a signed int - copied fix from newlib PR 18471
+
+1998-12-21 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdlib/realloc.c:
+ * tests/stdlib/malloc3.c:
+ * tests/stdlib/malloc2.c:
+ Warning cleanup
+
+1998-12-14 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdlib/malloc2.c, tests/stdlib/malloc3.c,
+ tests/stdlib/realloc.c:
+ Only run these tests when we have a coalescing memory allocator
+
+1998-12-14 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/stream.cxx:
+ Only check buffer init success if buffering
+
+ * src/stdio/common/streambuf.cxx (set_buffer):
+ Check for diff of requested size against buffer_size, not
+ get_buffer_size(), since this may return -1, which won't be
+ equal to size, and will cause malloc to be called
+
+1998-12-01 Jesper Skov <jskov@cygnus.co.uk>
+
+ * tests/stdlib/getenv.c (main): Don't declare variables when they
+ are not used.
+
+Thu Nov 26 17:59:12 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/string/strncpy1.c:
+ Fix off-by-one error since it called my_strcmp() and not
+ my_strncmp(), which meant in included the trailing NULL when it
+ shouldn't have.
+
+1998-11-26 Jesper Skov <jskov@cygnus.co.uk>
+
+ * src/stdlib/qsort.cxx (_qsort):
+ * src/stdlib/rand.cxx (_srand):
+ Changed CYG_REPORT_FUNCNAMETYPE to CYG_REPORT_FUNCNAME in void
+ functions.
+
+Mon Oct 26 18:49:00 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/support/cstartup.cxx (cyg_libc_dummy_main):
+ Silence compiler warning with cast of char * to CYG_ADDRWORD
+
+Wed Oct 28 17:31:21 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/time/clock.cxx (_clock):
+ Reorder scaling expression as it was both incorrect and risked
+ overflow.
+ Fix for PR 18076
+
+Mon Oct 19 14:40:06 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/stdio.h (EOF):
+ Change from -64 to (-1), to allow broken code to work :-/
+ Also change other negative defines to be within parentheses
+
+1998-10-19 Mark Galassi <rosalia@cygnus.com>
+
+ * include/pkgconf/libc.h: updated the doc URL
+
+Thu Oct 15 21:33:44 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/clibdata.hxx:
+ Only include kernel thread headers when we're in thread-safe mode
+
+ * src/time/clock.cxx:
+ Only include kernel clock headers if there's a kernel with the
+ right functionality available
+
+ * tests/time/clock.c:
+ Remove unnecessary inclusion of <pkgconf/kernel.h>
+
+ Above changes are required for PR 17229
+
+Wed Oct 14 16:38:55 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/clibdata.hxx, src/clibincl/clibdata.inl:
+ Conditionalise inclusion of clibincl/stdiosupp.hxx and
+ clibincl/stream.hxx. Tidying up PR 17502
+
+Wed Oct 14 14:08:56 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Rename CYGPKG_LIBC_STRING_OPTIMISATIONS to
+ CYGPKG_LIBC_STRING_OPTIMIZATIONS to make it truely merkin.
+
+Tue Oct 13 19:34:41 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h (CYGDAT_LIBC_ARGUMENTS):
+ Add a default argv[0] of "" as many programs assume argc>0
+ The standard allows argv[0] to be "" if the program name
+ is not available
+
+1998-09-26 Bart Veer <bartv@cygnus.co.uk>
+
+ * src/clibincl/stdiosupp.hxx:
+ PR 17502: this header file now does nothing if the stdio option
+ is disabled completely. This is the same behaviour is
+ clibincl/stream.hxx, although arguably the #ifdef protection
+ should happen wherever the header file is #include'd rather than
+ in the header file itself.
+
+ * src/clibincl/clibdata.hxx:
+ PR 17502: this header file still #include's internal stdio-related
+ header files and references the FILE structure, even if stdio is
+ disabled. There were some #ifdef's for CYGPKG_LIBC_STDIO already.
+ One more has been added for _fopen() and _fclose().
+
+1998-09-25 Bart Veer <bartv@cygnus.co.uk>
+
+ * src/clibincl/streambuf.inl (Cyg_StdioStreamBuffer):
+ PR 17487: Reorder the calls to initialize member fields, to
+ eliminate a compiler warning.
+
+Fri Sep 25 19:04:29 1998 Jonathan Larmour <jlarmour@peshwari.cygnus.co.uk>
+
+ * src/errno/errno.cxx, src/stdlib/bsearch.cxx,
+ src/stdlib/qsort.cxx, src/stdlib/rand.cxx, src/string/strtok.cxx,
+ src/time/clock.cxx:
+ Only define tracing variable and tracing level macro when
+ the relevant tracing level config options are set. Otherwise
+ keep the tracing level fixed at 0
+ Fix for PR 17476
+
+ * include/pkgconf/libc.h:
+ Define trace levels only if parent CYGPKG_LIBC_TRACE is defined
+ for consistency with Configuration Tool
+
+
+Fri Sep 25 17:24:45 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/stdioinlines.cxx:
+ Make definition of vscanf() dependent on CYGFUN_LIBC_STDIO_ungetc
+ otherwise _vfscanf() won't be compiled. This therefore would
+ cause a link fail iff selective linking is not enabled.
+ Fix for PR 17455
+
+Fri Sep 25 17:23:17 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdlib/rand.cxx:
+ Make compilation dependent on CYGPKG_LIBC_RAND
+ Fix for PR 17473
+
+ * tests/stdlib/srand.c:
+ Make definition of dummy test pass conditional on CYGPKG_LIBC_RAND
+ not being defined, as well as CYGPKG_LIBC
+ Caused compilation failure when testing PR 17473 fix
+
+Mon Sep 21 17:11:04 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdio/sscanf.c:
+ Make sscanf test conditional on CYGFUN_LIBC_STDIO_ungetc since
+ _vfscanf() only gets compiled if this is defined
+ Fix for PR 17346
+
+1998-09-20 Mark Galassi <rosalia@cygnus.com>
+
+ * include/pkgconf/libc.h: updated CDL doc strings.
+
+Fri Sep 18 22:18:47 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/clibdata.inl (get_errno_p):
+ Rather than this function only being available in thread-safe mode,
+ instead make what it returns be either the per-thread errno, or
+ global errno depending on the configuration.
+ Include <errno.h> (conditionally) to support this change
+
+Wed Sep 16 11:20:31 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Remove "fix me" comment which I forgot to remove before
+
+Tue Sep 15 19:27:57 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Updated descriptions and a few other minor things after review.
+ Notably though, the NDEBUG config option has been removed
+
+1998-09-15 Bart Veer <bartv@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ PR 17201: removed dependency on CYGPKG_KERNEL in the option
+ CYGNUM_LIBC_MAIN_STACK_SIZE, since the actual dependencies cannot
+ be expressed sensibly in the current system.
+
+1998-09-11 Bart Veer <bartv@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Sorting out dependencies for error package.
+
+1998-09-10 Mark Galassi <rosalia@cygnus.com>
+
+ * include/pkgconf/libc.h: started adding doc fields to the
+ cdl_package data, as a pilot for now.
+
+Wed Sep 9 17:41:23 1998 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Add option CYGIMP_LIBC_MALLOC_CXX_DELETE_CALLS_FREE to explicitly
+ control whether the empty delete functions (currently) in
+ kernel/.../common/delete.cxx are enabled; controls code bloat, see
+ the comments in delete.cxx.
+
+Fri Sep 4 16:43:38 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdio/stdiooutput.c:
+ Add a default CYG_TEST_PASS() to make sure the test infra doesn't
+ complain.
+ Also remove the unused string functionsa
+
+Fri Sep 4 15:43:48 1998 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * src/stdlib/exit.cxx (__libc_exit):
+ * src/stdlib/_exit.cxx (__libc__exit):
+ * src/stdlib/malloc.cxx (_free):
+ * src/stdlib/abort.cxx (abort):
+ * src/support/cstartup.cxx (invoke_main):
+ Tracing system asserted cos it was being called incorrectly; these
+ are void functions so you shouldn't give a type to the function
+ reporting call.
+
+Fri Sep 4 15:03:10 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Fix CYGDAT_LIBC_STDIO_DEFAULT_CONSOLE description to refer to
+ the table.cxx file, not table.h
+
+Fri Sep 4 14:38:52 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Add description for CYGDAT_LIBC_STDIO_DEFAULT_CONSOLE since
+ Proven won't be making any changes to the device driver
+ implementation after all.
+ Fix for PR 17148
+
+ * src/clibincl/stream.inl (set_position):
+ Remove "fix me" line. It is obvious that this will have to change
+ with a filesystem interface
+ Fix for PR 17147
+
+ * src/stdio/common/freopen.cxx:
+ Remove "fix me" - I know about this issue
+ Fix for PR 17145
+
+ * src/stdio/common/stream.cxx (read):
+ Remove "fix me" and change to use memcpy
+ Fix for PR 17144
+
+Fri Sep 4 14:36:47 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdio/stdiooutput.c:
+ Actually add it this time!
+
+Fri Sep 4 13:48:13 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdio/stdiooutput.c:
+ Add new tests for misc stdio output functions
+
+ * tests/PKGconf.mak:
+ Build stdiooutput.c test
+
+Fri Sep 4 12:52:10 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/stream.inl (write_byte):
+ Remove bogus assert
+
+ * tests/stdlib/getenv.c (main):
+ Check whether str is NULL before doing a strcmp()
+
+ * tests/stdio/sprintf2.c (main):
+ Reformat to 76 columns
+
+Fri Sep 4 02:10:54 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/stream.hxx, src/stdio/common/stream.cxx:
+ Add new peek_byte method to Cyg_StdioStream
+
+ * src/stdio/input/vfscanf.cxx (_vfscanf):
+ Fix up buffer access to work with new peek_byte method above
+ Fix for PR 16954
+
+Thu Sep 3 19:40:11 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdlib/rand1.c, tests/stdlib/rand2.c,
+ tests/stdlib/rand3.c:
+ Add extra check for CYGPKG_LIBC_RAND to decide whether the test
+ is applicable or not
+
+ * tests/stdlib/rand2.c (test):
+ Use CYGNUM_LIBC_RAND_SEED for default seed, not 1
+
+ * tests/string/strtok.c:
+ Add extra check for CYGFUN_LIBC_strtok to decide whether the
+ test is applicable or not
+
+Wed Sep 2 19:11:40 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/input/fread.cxx, src/stdio/output/fwrite.cxx:
+ Add fread() and fwrite() functions
+
+ * src/PKGconf.mak:
+ Build fread.cxx and fwrite.cxx from above
+
+ * src/stdio/common/stream.cxx:
+ Reformat to 76 columns
+ In write(), move initialisation of *bytes_written to start
+ In read(), move initialisation of *bytes_read to start
+
+ * include/stdio.h:
+ Reformat to 76 columns
+
+ Replace all references to the ANSI
+ standard to instead by the ISO C standard
+
+ Add commented argument names for "documentation"
+
+ Add fread() and fwrite() prototypes
+
+ * src/clibincl/stdiosupp.hxx:
+ Copy the above changes from stdio.h, and add _fread() and _fwrite()
+ prototypes
+
+ * src/stdio/output/fputs.cxx, src/stdio/input/fgets.cxx:
+ Reformat to 76 columns
+
+Wed Sep 2 15:41:15 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/input/vfscanf.cxx:
+ Reformat to 76 columns
+
+Wed Sep 2 14:46:18 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/fflush.cxx:
+ Use trylock_me() instead of lock_me(), and loop to prevent
+ deadlocks
+
+ * src/clibincl/stream.hxx, src/clibincl/stream.inl:
+ Add trylock_me() method
+
+ * src/clibincl/stream.hxx, src/clibincl/stream.inl,
+ src/stdio/common/fflush.cxx:
+ Reformat to 76 columns
+
+Wed Sep 2 12:24:27 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Change 0x7fff to 0x7fffffff. Oops!
+ give main stack size option a legal_values field
+ Undefine tracing by default
+ Add some more description in the header
+
+Tue Sep 1 20:02:07 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/i18n/setlocale.c (cyg_package_start):
+ Fix typo - extra "x" for no reason at all! :-)
+
+Tue Sep 1 19:44:58 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/i18n/locale.cxx:
+ Fix bug in find_locale_data() that miscalculated size of
+ all_locales
+
+ Make find_locale_data() match the locale "" and add some
+ other things in _setlocale() to ensure that "C" gets returned
+ when the default locale "" is passed.
+
+ Only check the locale pointer when it is non-NULL
+
+ * tests/i18n/setlocale.c:
+ New tests for setlocale()
+
+ * tests/PKGconf.mak:
+ Update to build setlocale.c test
+
+ * src/support/cstartup.cxx:
+ Don't actually call system default main() "main" otherwise GDB
+ gets confused and thinks its the entry point. Instead make a weak
+ alias and call the real function something different.
+
+Tue Sep 1 18:31:42 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/i18n/locale.cxx (_setlocale):
+ Fix tracing macro name and remove "str maybe used before
+ initialised" warning
+
+ * tests/stdlib/qsort.c:
+ Correct file description header
+
+Tue Sep 1 17:04:32 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/locale.h, src/clibincl/i18nsupp.hxx, src/i18n/locale.cxx:
+ New files to add support for locales as defined by the ISO C
+ standard. i.e. setlocale() and localeconv() functions and some
+ other bits
+
+ * include/pkgconf/libc.h:
+ Add CYGNUM_LIBC_MAX_LOCALE_NAME_SIZE config option for locale
+ support
+
+ * src/PKGconf.mak:
+ build locale.cxx
+
+ * include/errno.h, src/clibincl/ctypesupp.hxx:
+ Tidy up to 76 columns
+
+Tue Sep 1 00:24:22 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Move environment-related options from stdlib into new
+ CYGPKG_LIBC_STARTUP component. Also add options for main()'s
+ arguments (CYGPKG_LIBC_ARGUMENTS), main()'s default stack size
+ (CYGNUM_LIBC_MAIN_STACK_SIZE), number of atexit handlers
+ (CYGNUM_LIBC_ATEXIT_HANDLERS), and whether _exit() stops the
+ system (CYGSEM_LIBC_EXIT_STOPS_SYSTEM).
+
+ * src/clibincl/stdlibsupp.hxx:
+ Fix a few comment bugs, and add new
+ cyg_libc_invoke_atexit_handlers() function prototype
+
+ * src/stdlib/_exit.cxx, src/stdlib/atexit.cxx, src/stdlib/exit.cxx:
+ Implement exit(), atexit() and _exit() correctly now. Also
+ includes cyg_libc_invoke_atexit_handlers() in atexit.cxx. Now
+ we get the correct behaviour of atexit(), and exit() invokes the
+ atexit handlers and fflushs all the stdio streams. Add plenty of
+ tracing of asserts too.
+
+ * src/support/cstartup.cxx:
+ Make main_thread object an exported global. Allow user-settable
+ arguments. Add MUCH more tracing and asserts. Improve comments.
+ Tidy up to 76 columns
+
+ * tests/stdlib/atexit.c:
+ Add simple test for atexit() and it calling registered functions
+
+ * tests/PKGconf.mak:
+ Build atexit.c test
+
+Mon Aug 31 18:54:48 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdlib/getenv.cxx, tests/stdlib/getenv.c:
+ Add support for getenv(), and some tests to ensure it works
+
+ * src/PKGconf.mak, tests/PKGconf.mak:
+ Update to include getenv.cxx and getenv.c test
+
+ * src/clibincl/clibdata.hxx:
+ remove prototype for environ - we expect files needing it to
+ define it themselves
+
+ * src/support/clibdata.cxx:
+ Tidy up to 76 columns and add definition of char **environ, but
+ with a configurable initialiser (see libc.h below)
+
+ * tests/stdlib/abs.c (main):
+ Tidy up to 76 columns
+
+ * src/stdlib/malloc.cxx:
+ Tidy up to 76 columns and remove warning for undefined _memcpy()
+ by changing to memcpy(), and casting away signedness
+
+ * include/pkgconf/libc.h:
+ Add CYGPKG_LIBC_ENVIRONMENT and CYGDAT_LIBC_DEFAULT_ENVIRONMENT
+ configuration options
+
+ * include/pkgconf/libc.h, src/clibincl/clibdata.hxx:
+ Tidy up to 76 columns
+
+ * include/stdlib.h:
+ Add getenv() prototype and tidy up to 76 columns
+
+ * src/clibincl/stdlibsupp.hxx:
+ Add _getenv() prototype
+
+Mon Aug 31 13:37:08 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdlib/malloc.cxx:
+ Add realloc()
+
+ * tests/stdlib/realloc.c:
+ Add this file to test new realloc() functionality
+
+ * tests/PKGconf.mak:
+ Build realloc test
+
+ * tests/stdlib/malloc3.c (main), tests/stdlib/malloc2.c (main),
+ tests/stdlib/malloc1.c (main):
+ Conditionalise local vars to prevent warnings
+
+ * tests/stdlib/malloc3.c (fill_with_data):
+ Move '{' into "verb" line
+
+ * include/pkgconf/libc.h:
+ Require infra tracing support to allow tracing
+
+ * include/stdlib.h:
+ Add realloc()
+
+ * src/clibincl/stdlibsupp.hxx:
+ Update the commented argument names from stdlib.h, including realloc()
+
+1998-08-28 Bart Veer <bartv@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ * src/clibincl/clibdata.hxx, src/time/clock.cxx:
+
+ Updated for new kernel configuration option symbol names
+
+Fri Aug 28 19:18:25 1998 Hugo Tyson <hmt@cygnus.co.uk>
+
+ Changed the entry below to sat "tx39" instead of "mn10300".
+ It's been a long week.
+
+Fri Aug 28 18:59:20 1998 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * src/support/cstartup.cxx: Add a weakly named main to allow the
+ default configuration to link on the tx39 which has no
+ scalextric linking yet. The static Cyg_Thread main_thread object
+ below continues to exist, though unreferenced, so all its
+ descendants must exist too.
+
+Fri Aug 28 08:54:29 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/stdlib.h:
+ Add commented argument names Add exit(), and atexit(). And move
+ these along with abort() and _exit() to a new section.
+
+ * src/stdlib/atexit.cxx, src/stdlib/exit.cxx:
+ Add trivial versions of atexit() and exit()
+
+ * include/pkgconf/libc.h:
+ Add CYGNUM_LIBC_MAIN_STACK_SIZE config option
+
+ * include/sys/cstartup.h, src/support/cstartup.cxx, src/PKGconf.mak:
+ New files to provide a new function cyg_iso_c_support(), which
+ invokes main "correctly".
+
+ * tests/ctype/ctype.c, tests/setjmp/setjmp.c, tests/stdio/sprintf1.c,
+ tests/stdio/sprintf2.c, tests/stdio/sscanf.c, tests/stdlib/abs.c,
+ tests/stdlib/atoi.c, tests/stdlib/atol.c, tests/stdlib/bsearch.c,
+ tests/stdlib/div.c, tests/stdlib/labs.c, tests/stdlib/ldiv.c,
+ tests/stdlib/malloc1.c, tests/stdlib/malloc2.c,
+ tests/stdlib/malloc3.c, tests/stdlib/qsort.c, tests/stdlib/rand1.c,
+ tests/stdlib/rand2.c, tests/stdlib/rand3.c, tests/stdlib/srand.c,
+ tests/stdlib/strtol.c, tests/stdlib/strtoul.c,
+ tests/string/memchr.c, tests/string/memcmp1.c,
+ tests/string/memcmp2.c, tests/string/memcpy1.c,
+ tests/string/memcpy2.c, tests/string/memmove1.c,
+ tests/string/memmove2.c, tests/string/memset.c,
+ tests/string/strcat1.c, tests/string/strcat2.c,
+ tests/string/strchr.c, tests/string/strcmp1.c,
+ tests/string/strcmp2.c, tests/string/strcoll1.c,
+ tests/string/strcoll2.c, tests/string/strcpy1.c,
+ tests/string/strcpy2.c, tests/string/strcspn.c,
+ tests/string/strlen.c, tests/string/strncat1.c,
+ tests/string/strncat2.c, tests/string/strncpy1.c,
+ tests/string/strncpy2.c, tests/string/strpbrk.c,
+ tests/string/strrchr.c, tests/string/strspn.c,
+ tests/string/strstr.c, tests/string/strtok.c,
+ tests/string/strxfrm1.c, tests/string/strxfrm2.c,
+ tests/time/clock.c:
+
+ Modify all tests to use new startup mechanism, and cyg_iso_c_start()
+
+Fri Aug 28 00:29:38 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/stream.cxx:
+ Add #ifdef CYGSEM_LIBC_STDIO_WANT_BUFFERED_IO around all accesses to
+ flags.last_buffer_op_was_read. Fix for PR 16997
+
+Thu Aug 27 01:12:42 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/sys/file_if.h:
+ Fix comments and remove cyg_get_file_star()
+
+Wed Aug 26 20:24:32 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Remove #define CYGPKG_LIBC is that is meant to live in
+ <pkgconf/system.h> after all
+
+Wed Aug 26 19:39:23 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ More fixes to CDL stuff to make it work better, and look better on
+ the screen
+
+Tue Aug 25 20:21:41 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Make some fixes after running the ConfigTool
+
+Tue Aug 25 16:46:28 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h (CYGNUM_LIBC_STDIO_BUFSIZE):
+ Fix typo of CYGNUM_LIBC_STDIO_BUFSIZE
+
+Tue Aug 25 15:10:57 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Tidy up CDL stuff a bit more, prior to checking it actually works.
+
+Tue Aug 25 11:38:52 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdlib/malloc2.c (main):
+ Prevent calls to CYG_TEST_STILL_ALIVE for now
+
+Tue Aug 25 05:39:28 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Change cosmetic paragraph alignment.
+
+Tue Aug 25 03:11:34 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/support/clibdata.cxx:
+ Make stderr initialise with buffer size 0.
+ For PR 16955
+
+Mon Aug 24 17:38:46 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ First pass at CDL-ifying the C library configuration. Currently
+ deliberately disabled as there a few outstanding issues.
+
+Mon Aug 24 16:14:22 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/output/vfnprintf.cxx (_vfnprintf):
+ clear up warning for unused argument
+
+ * tests/stdlib/malloc2.c (NUM_ITERATIONS):
+ Lower to 100 from 50000 so it won't take too long under the simulator
+
+Thu Aug 20 17:48:43 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdlib/malloc.cxx:
+ Remove now unnecessary inclusion of kernel/ktypes.h
+
+Wed Aug 19 19:19:14 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdio/sprintf1.c, tests/stdio/sprintf2.c,
+ tests/stdio/sscanf.c, tests/stdlib/atoi.c, tests/stdlib/atol.c,
+ tests/stdlib/rand1.c, tests/stdlib/rand2.c, tests/stdlib/rand3.c,
+ tests/stdlib/srand.c, tests/stdlib/strtol.c,
+ tests/stdlib/strtoul.c, tests/string/strtok.c,
+ tests/time/clock.c:
+ Add parameters to "main()" to silence warnings
+
+Wed Aug 19 18:52:59 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/stream.cxx (refill_read_buffer):
+ Put conditional error check into same #ifdef and if as what was being
+ checked in the first place!
+
+Wed Aug 19 18:49:19 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/stream.inl:
+ Reorder Cyg_StdioStream::check_this() to be first to silence
+ warnings
+
+Tue Aug 18 16:10:03 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * ecc/language/c/libc/current/src/clibincl/clibdata.hxx,
+ ecc/language/c/libc/current/src/errno/errno.cxx,
+ ecc/language/c/libc/current/src/stdio/common/fopen.cxx,
+ ecc/language/c/libc/current/src/stdlib/rand.cxx,
+ ecc/language/c/libc/current/src/string/strtok.cxx:
+ Rename CYGIMP_LIBC_INTERNAL_DATA_PREAMBLE,
+ CYGIMP_LIBC_INTERNAL_DATA_ALLOC_CHECK_PREAMBLE,
+ CYGVAR_LIBC_INTERNAL_DATA, and
+ CYGIMP_LIBC_INTERNAL_DATA_CHECK to all have CYGPRI_ prefix instead
+ as recommended by the config name rules
+
+
+Tue Aug 18 14:31:19 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/setvbuf.cxx (_setvbuf):
+ Rename variable names in assert line, otherwise doesn't build
+ with asserts on!
+
+Sun Aug 16 18:15:12 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/input/vfscanf.cxx (_vfscanf):
+ Fix some bugs, although there are some left to fix still. Unrelated
+ to the rest of the checkins, so I will check the partial fix in now.
+
+ * src/clibincl/stream.hxx, src/clibincl/stream.inl,
+ src/stdio/common/stream.cxx:
+ Add parameters to constructor to allow more things to be done at
+ construction time.
+
+ Now we have "new", remove separate "construct" method
+
+ Add more documentation on constructor
+
+ As requested by code review, where possible, move boolean flags
+ into separate packed bitfield structure for space efficiency
+
+ Make readbuf_char be usable all the time rather than when configured
+ not to be buffering, as it is also needed for non-buffered mode i.e.
+ _IONBF
+
+ * src/stdio/common/fopen.cxx:
+ Change to use new method of construction from above, using new
+
+ Use thread-specific data, rather than global. And so change errnos
+ to access errno entry specifically
+
+ Make process_mode() check for append mode too
+
+ Reformat for coding standards to have { in same line as "verb"
+
+ * src/stdio/common/setvbuf.cxx:
+
+ Change to cope with different way of dealing with buffering policy
+ flags etc. in Cyg_StdioStream
+
+ * src/stdio/common/vsnprintf.cxx, src/stdio/common/vsscanf.cxx,
+ src/support/clibdata.cxx:
+ Change construction of streams to use new parameters added above,
+ and change to use _IONBF mode for string stdio functions,
+ otherwise its a waste of memory. And use _IONBF for stderr as the
+ ISO standard tells us to!
+
+ Reformat for coding standards to have { in same line as "verb"
+
+ * src/clibincl/streambuf.hxx, src/clibincl/streambuf.inl:
+ Change constructor so that it can be set with default size and
+ dynamic buffer (if applicable)
+
+ Fix minor bug in destructor - should only call free when allocated
+ dynamically
+
+ Change get_buffer_size to return -1 if the buffer was not allowed
+ to be set up
+
+ * src/stdio/common/streambuf.cxx:
+ Remove unnecessary stdio.h include and add extra comment to whether
+ to free bit in set_buffer()
+
+ * src/stdio/common/freopen.cxx:
+ Change @@@ to standard fix me string
+
+ * src/stdio/output/fputc.cxx:
+ Remove unnecessary "written" variable
+
+Thu Aug 13 15:37:28 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdlib/_exit.cxx:
+ Included use of "fix me" line to ensure this is discussed before
+ release
+
+ * include/stdlib.h, src/stdlib/abort.cxx, src/PKGconf.mak:
+ Add abort.cxx to implement abort(), albeit naively
+
+Thu Jul 30 18:03:09 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/vsscanf.cxx (_vsscanf),
+ src/stdio/common/vsnprintf.cxx (_vsnprintf):
+ Fix initialiser of pseudo string device table that didn't get updated
+ when the table changed (Bad proven, no biscuit).
+
+ * src/clibincl/stream.inl (~Cyg_StdioStream):
+ Move invalidation of magic_validity_word to after unlock_me(),
+ otherwise it always fails!
+
+Tue Jul 28 21:29:53 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/clibdata.hxx:
+ Shorten over-long lines
+
+Tue Jul 28 20:28:23 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/stream.hxx (class Cyg_StdioStream),
+ src/clibincl/stream.inl, src/stdio/common/stream.cxx:
+ Clarify some comments and get the CYGDBG_DEFINE_CHECK_THIS and
+ CYG_ASSERTCLASS stuff going
+
+ * src/clibincl/stream.inl:
+ Put '{'s on same line as "action" as per coding standards
+ Shorten over-long lines
+
+Tue Jul 28 15:31:06 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/streambuf.inl, src/stdio/common/streambuf.cxx:
+ Move set_buffer() from streambuf.inl to new file streambuf.cxx
+
+ * src/PKGconf.mak (COMPILE):
+ Build new file streambuf.cxx
+
+ * src/clibincl/streambuf.hxx (class Cyg_StdioStreamBuffer):
+ Add METHODS comment
+
+ * src/stdio/common/stream.cxx:
+ Put '{'s on same line as "action" as per coding standards
+ Shorten over-long lines
+
+Tue Jul 28 00:26:36 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/stdlib.inl, src/stdio/input/vfscanf.cxx,
+ src/stdio/output/vfnprintf.cxx, src/stdlib/div.cxx,
+ src/stdlib/ldiv.cxx, src/stdlib/qsort.cxx, src/stdlib/strtol.cxx,
+ src/stdlib/strtoul.cxx, src/string/strtok.cxx:
+
+ Include proper Berkeley license inline in the file, rather than
+ referring to an external file
+
+ * doc/COPYING.UCB:
+ Remove, now that it isn't referred to any more
+
+Mon Jul 27 23:34:26 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/ctype.h, include/ctype.inl, include/errno.h,
+ include/stdio.h, include/stdio.inl, include/stdlib.h,
+ include/stdlib.inl, include/string.h, include/string.inl,
+ include/time.h, include/sys/file_if.h, src/PKGconf.mak,
+ src/clibincl/clibdata.hxx, src/clibincl/clibdata.inl,
+ src/clibincl/ctypesupp.hxx, src/clibincl/stdiosupp.hxx,
+ src/clibincl/stream.hxx, src/clibincl/streambuf.hxx,
+ src/clibincl/streambuf.inl, src/clibincl/stringsupp.hxx,
+ src/clibincl/timesupp.hxx, src/ctype/isalnum.cxx,
+ src/ctype/isalpha.cxx, src/ctype/iscntrl.cxx,
+ src/ctype/isdigit.cxx, src/ctype/isgraph.cxx,
+ src/ctype/islower.cxx, src/ctype/isprint.cxx,
+ src/ctype/ispunct.cxx, src/ctype/isspace.cxx,
+ src/ctype/isupper.cxx, src/ctype/isxdigit.cxx,
+ src/ctype/tolower.cxx, src/ctype/toupper.cxx,
+ src/errno/errno.cxx, src/stdio/common/snprintf.cxx,
+ src/stdio/common/sprintf.cxx, src/stdio/common/sscanf.cxx,
+ src/stdio/common/stdioinlines.cxx, src/stdio/common/stream.cxx,
+ src/stdio/common/ungetc.cxx, src/stdio/common/vsnprintf.cxx,
+ src/stdio/common/vsscanf.cxx, src/stdio/input/fgetc.cxx,
+ src/stdio/input/fgets.cxx, src/stdio/input/fscanf.cxx,
+ src/stdio/input/gets.cxx, src/stdio/input/scanf.cxx,
+ src/stdio/output/fnprintf.cxx, src/stdio/output/fprintf.cxx,
+ src/stdio/output/fputc.cxx, src/stdio/output/fputs.cxx,
+ src/stdio/output/printf.cxx, src/stdlib/_exit.cxx,
+ src/stdlib/abs.cxx, src/stdlib/atof.cxx, src/stdlib/atoi.cxx,
+ src/stdlib/atol.cxx, src/stdlib/div.cxx, src/stdlib/labs.cxx,
+ src/stdlib/ldiv.cxx, src/stdlib/rand.cxx, src/stdlib/strtod.cxx,
+ src/string/memchr.cxx, src/string/memcmp.cxx,
+ src/string/memmove.cxx, src/string/strcat.cxx,
+ src/string/strchr.cxx, src/string/strcmp.cxx,
+ src/string/strcoll.cxx, src/string/strcpy.cxx,
+ src/string/strcspn.cxx, src/string/strlen.cxx,
+ src/string/strncat.cxx, src/string/strncmp.cxx,
+ src/string/strncpy.cxx, src/string/strpbrk.cxx,
+ src/string/strrchr.cxx, src/string/strspn.cxx,
+ src/string/strstr.cxx, src/string/strsuppt.cxx,
+ src/string/strtok.cxx, src/string/strxfrm.cxx,
+ src/support/clibdata.cxx, src/time/clock.cxx:
+ Untabify
+
+Mon Jul 27 23:14:18 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/errno/errno.cxx, src/stdio/input/vfscanf.cxx,
+ src/stdio/output/vfnprintf.cxx, src/stdlib/strtol.cxx,
+ src/stdlib/strtoul.cxx, src/stdlib/malloc.cxx, src/stdlib/qsort.cxx,
+ tests/ctype/ctype.c, tests/stdlib/rand3.c, tests/stdlib/malloc3.c:
+ Remove all mentions of "register" in variable declarations. Also
+ untabify where needed
+
+ * src/stdlib/bsearch.cxx:
+ Untabify this too
+
+
+Mon Jul 27 22:18:51 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/output/fputc.cxx (_fputc):
+ Replace call to stream write() with call to write_byte()
+
+ * src/clibincl/stream.inl (write_byte):
+ Add asserts for stream write() returning odd values for how much has
+ been written
+
+ (bytes_available_to_read):
+ Remove "register" def for variable declaration
+
+Mon Jul 27 22:06:22 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/stdiosupp.cxx:
+ Remove #if 0'd cyg_get_file_star() and unnecessary pseudo string
+ device definition
+
+Mon Jul 27 21:57:25 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h, src/support/clibdata.cxx:
+ Change CYGXXX_LIBC_STDIO_DEFAULT_CONSOLE to
+ CYGDAT_LIBC_STDIO_DEFAULT_CONSOLE
+
+Mon Jul 27 21:49:23 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/clibdata.hxx, src/clibincl/clibdata.inl,
+ src/clibincl/ctypesupp.hxx, src/clibincl/setjmpsupp.hxx,
+ src/clibincl/stdiosupp.hxx, src/clibincl/stdlibsupp.hxx,
+ src/clibincl/stream.hxx, src/clibincl/stream.inl,
+ src/clibincl/streambuf.hxx, src/clibincl/streambuf.inl,
+ src/clibincl/stringsupp.hxx, src/clibincl/timesupp.hxx:
+
+ Change CYGONCE_LIBC_*_{HXX,INL} to CYGONCE_LIBC_CLIBINCL_*_{HXX,INL}
+
+Mon Jul 27 21:34:05 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Change #define XXXXX 1 to #define XXXXX where applicable as per code
+ review
+
+ Also remove obsolete CYGIMP_LIBC_THREAD_START_SUSPENDS_SELF
+
+Mon Jul 27 19:42:27 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/fopen.cxx (_fopen):
+ Use #ifdef, not #if for config options
+
+Mon Jul 27 15:01:51 BST 1998 Chris Provenzano <proven@cygnus.com>
+
+ * src/stdio/common/stream.cxx, src/stdio/common/vsnprintf.cxx
+ * src/stdio/common/vsscanf.cxx:
+ Fixes to compile with the new Cyg_IORB field names.
+
+Thu Jul 9 03:40:21 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdlib/atoi.c, tests/stdlib/atol.c,
+ tests/stdlib/strtol.c, tests/stdlib/strtoul.c:
+ Adjust starting of tests to possibly start scheduler since
+ strtol/stroul rely on errno, which may be a per-thread variable
+
+Thu Jul 9 03:06:25 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/stream.hxx, src/clibincl/stream.inl,
+ src/stdio/common/stream.cxx, src/stdio/common/setvbuf.cxx:
+ Consolidate read and write buffers into single buffer, as it should
+ have been all along
+
+ * src/clibincl/streambuf.hxx, src/clibincl/streambuf.inl:
+ Add drain_buffer() method to speed up the case when we want the
+ buffer completely emptied
+
+Tue Jul 7 21:26:33 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdio/sprintf1.c:
+ Add a couple of new tests that check that very long strings work too
+
+Wed Jul 1 19:52:39 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/stream.hxx, src/clibincl/streambuf.hxx:
+ Do not permit copy constructors
+
+ * src/clibincl/stream.inl, src/stdio/common/fclose.cxx:
+ Make sure we use #ifdef and not #if
+
+ * src/clibincl/streambuf.inl:
+ Use member initialisation list rather than explicit initialisation to
+ reduce warnings
+
+Wed Jul 1 19:17:55 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h and all files using config options:
+ Rename configuration defines to make them more standard
+
+Thu Jun 25 20:09:30 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/string/strcat.cxx:
+ Add parentheses on check to silence warning
+ (Verified by proven)
+
+Thu Jun 25 19:30:01 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdlib/malloc.cxx:
+ Make sure that the malloc pool is initialised before other things
+ can use it. This is done with the hot new constructor ordering
+ feature.
+
+Thu Jun 25 18:27:03 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/input/vfscanf.cxx:
+ Remove bogus ifdef if floating point is _not_ wanted
+
+Thu Jun 25 17:31:42 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/string/strtok.cxx:
+ Fix argument checking to allow first argument of NULL
+
+Thu Jun 25 04:18:50 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/clibdata.inl (get_strtok_last_p):
+ Remove bogus assertion
+
+ * src/stdlib/malloc.cxx:
+ Got sense of alignment check assertion the wrong way round, so negate
+ it
+
+Thu Jun 25 03:56:35 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/string/strxfrm.cxx:
+ Fix argument checking assertions with legitimate nulls here too
+
+Thu Jun 25 03:46:32 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdlib/strtoul.cxx, src/stdlib/strtol.cxx:
+ Fix argument checking assertions to cope with legitimate nulls
+
+Wed Jun 24 09:01:45 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdio/sprintf1.c:
+ Remove extraneous info messages
+
+Wed Jun 24 05:59:17 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdio/sprintf1.c, tests/stdio/sprintf2.c, tests/stdio/sscanf.c,
+ tests/stdlib/rand1.c, tests/stdlib/rand2.c, tests/stdlib/rand3.c,
+ tests/stdlib/srand.c:
+
+ Change large automatic arrays to static arrays to prevent overuse
+ of a potentially small stack
+
+Wed Jun 24 05:45:28 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdio/sprintf1.c, tests/stdio/sprintf2.c, tests/stdio/sscanf.c,
+ tests/stdlib/rand1.c, tests/stdlib/rand2.c, tests/stdlib/rand3.c,
+ tests/stdlib/srand.c, tests/string/strtok.c, tests/time/clock.c:
+
+ Increase thread stack size from 4K to 32K as in some cases it was
+ too small.
+
+
+Tue Jun 23 20:12:31 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdio/sscanf.c:
+ Add extra tests, including floating point conversion testing
+
+Tue Jun 23 17:01:06 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/string/strtok.cxx:
+ Make sure this is only compiled if CYGFUN_LIBC_strtok is defined
+
+Tue Jun 23 06:10:13 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ add some comments - that's all
+
+ * src/stdio/common/stream.cxx:
+ fix case in refill_read_buffer() for what to do when there's nothing
+ left. Now return EAGAIN
+
+ * src/stdio/common/vsscanf.cxx, src/stdio/input/vfscanf.cxx:
+ Get sscanf working properly and passing tests. Also make sure it
+ ignores FP when its not configured
+
+ * src/stdlib/atof.cxx:
+ Only compile at all if strtod() is present
+
+
+Mon Jun 22 19:13:42 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/clibdata.hxx, src/clibincl/clibdata.inl:
+ Conditionalise strtok_last and rand_seed better
+
+Mon Jun 22 14:14:12 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdlib/malloc3.c:
+ Add test for checking that mallocing and freeing repeatedly works
+
+ * tests/PKGconf.mak:
+ Update to reflect addition of the above
+
+Mon Jun 22 13:09:33 BST 1998 Chris Provenzano <proven@cygnus.com>
+
+ * src/stdio/common/fopen.cxx
+ * src/stdio/common/stream.cxx
+ * src/stdio/common/vsnprintf.cxx
+ * src/stdio/common/vsscanf.cxx
+ Include cyg/devs/common/iorb.h instead of iorb.hxx
+
+ * src/stdio/common/stream.cxx
+ Use read_blocking and write_blocking instead of just read and
+ write when accessing devices through the virtual device table.
+
+Sun Jun 21 18:19:13 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/stdioinlines.cxx:
+ Propagate change of return code handling for puts from stdio.inl
+ into here
+
+ * src/stdio/output/fputc.cxx:
+ make sure the right type is used for output - byte not int
+
+ * src/support/clibdata.cxx:
+ Fix #define config mistook. #endif was in wrong place
+
+Sun Jun 21 16:11:04 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/clibdata.hxx, src/clibincl/clibdata.inl:
+ Allow explicit construction to get around a bug when
+ dynamically allocating per-thread structure
+
+Sun Jun 21 16:02:51 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/ctype/ctype.c, tests/setjmp/setjmp.c, tests/stdio/sprintf1.c,
+ tests/stdio/sprintf2.c, tests/stdio/sscanf.c, tests/stdlib/abs.c,
+ tests/stdlib/atoi.c, tests/stdlib/atol.c, tests/stdlib/bsearch.c,
+ tests/stdlib/div.c, tests/stdlib/labs.c, tests/stdlib/ldiv.c,
+ tests/stdlib/malloc1.c, tests/stdlib/malloc2.c, tests/stdlib/qsort.c,
+ tests/stdlib/rand1.c, tests/stdlib/rand2.c, tests/stdlib/rand3.c,
+ tests/stdlib/srand.c, tests/stdlib/strtol.c, tests/stdlib/strtoul.c,
+ tests/string/memchr.c, tests/string/memcmp1.c,
+ tests/string/memcmp2.c, tests/string/memcpy1.c,
+ tests/string/memcpy2.c, tests/string/memmove1.c,
+ tests/string/memmove2.c, tests/string/memset.c,
+ tests/string/strcat1.c, tests/string/strcat2.c,
+ tests/string/strchr.c, tests/string/strcmp1.c,
+ tests/string/strcmp2.c, tests/string/strcoll1.c,
+ tests/string/strcpy1.c, tests/string/strcpy2.c,
+ tests/string/strcspn.c, tests/string/strlen.c,
+ tests/string/strncat1.c, tests/string/strncat2.c,
+ tests/string/strncpy1.c, tests/string/strncpy2.c,
+ tests/string/strpbrk.c, tests/string/strrchr.c,
+ tests/string/strspn.c, tests/string/strstr.c, tests/string/strtok.c,
+ tests/string/strxfrm1.c, tests/string/strxfrm2.c, tests/time/clock.c:
+
+ Update tests to "do the right thing" with all configuration settings
+
+
+Sun Jun 21 04:54:14 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/setjmp/setjmp.c:
+ I have to be careful not to use setjmp() in a way not exactly
+ defined by the standard, so make sure I do, and add a comment
+ documenting these ways.
+
+ Also ensure this test does the right thing in all configurations
+
+Sun Jun 21 04:38:15 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Add extra checks for invalid configurations
+ Also make default for thread safety OFF
+
+ * src/clibincl/clibdata.inl:
+ Adjust indentation
+
+ * src/stdio/output/vfnprintf.cxx:
+ Make printf of -0.0 floating point do the right thing
+
+Sun Jun 21 04:28:00 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/snprintf.cxx, src/stdio/common/sprintf.cxx,
+ src/stdio/common/sscanf.cxx, src/stdio/input/fscanf.cxx,
+ src/stdio/input/scanf.cxx, src/stdio/output/fnprintf.cxx,
+ src/stdio/output/fprintf.cxx, src/stdio/output/printf.cxx:
+
+ Had to remove inline functions with varargs. Which means separating
+ out each function from stdioinlines.cxx into a separate file, as they
+ no longer belong there. So all the above files were created.
+
+ * include/stdio.inl, src/PKGconf.mak,
+ src/stdio/common/stdioinlines.cxx:
+ Changed to take account of the above
+
+
+Sun Jun 21 03:58:42 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdio/sprintf1.c, tests/stdio/sprintf2.c:
+ Update with floating-point tests. Also make sure they DTRT in all
+ configurations
+
+Fri Jun 19 19:33:06 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/support/clibdata.cxx:
+ accidentally initialised stdin/out/err twice
+
+Fri Jun 19 19:09:29 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/support/clibdata.cxx:
+ Another typo
+
+Fri Jun 19 18:59:07 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/support/clibdata.cxx:
+ Missing #endif typo
+
+Fri Jun 19 18:51:42 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/support/clibdata.cxx:
+ Fix initialisation of static data members. Unsure how it worked at
+ all before!
+
+Fri Jun 19 18:01:01 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/stdio.inl:
+ puts should check whether fputs returns non-negative, rather than
+ non-zero
+
+Fri Jun 19 17:22:52 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/clibdata.inl:
+ Make inclusion of get_errno_p conditional on thread-safety
+
+Wed Jun 17 10:55:32 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/input/vfscanf.cxx:
+ Add weak alias of vfscanf() to _vfscanf()
+
+Wed Jun 17 09:10:41 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/fflush.cxx:
+ Initialise err to silence compiler warning
+
+Wed Jun 17 08:59:20 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * Most important is the addition of floating point support in
+ src/stdio/output/vfnprintf.cxx and src/stdio/input/vfscanf.cxx. This
+ also required the addition of atof() and strtod() in stdlib which is
+ definitely no bad thing! Other than that...
+
+ * Fix a whole bunch of stuff I messed up first time round. Also the
+ sprintf and sscanf tests are included again.
+
+Tue Jun 16 16:38:02 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/PKGconf.mak:
+ Typo with not putting comment character at the beginning. Sigh.
+
+Tue Jun 16 14:53:09 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/PKGconf.mak:
+ Forgot to (temporarily) remove fputs test for now
+
+Mon Jun 15 20:40:03 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ Everything to do with stdio has almost completely changed, so there's
+ not much point documenting individual changes.
+
+Mon Jun 15 18:36:01 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdlib/malloc2.c:
+ Stop it moaning quite as much when it fails by making it exit sooner
+
+ * tests/time/clock.c :
+ This isn't a compound testcase
+
+Thu Jun 11 17:59:13 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/assert.h
+ Reverse sense of NDEBUG ifdef, that was left in accidentally due
+ to testing
+
+Thu Jun 11 04:58:08 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/errno.h, include/string.h, src/clibincl/stringsupp.hxx:
+ Modify as I've now added an "error" package which defines the error
+ codes and strerror()
+
+ * src/errno/strerror.cxx:
+ Moved to new error package and thus deleted
+
+Wed Jun 10 18:37:37 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/assert.h:
+ create this header and add assert() function
+
+Wed Jun 10 16:23:57 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/stdlib.h, src/clibincl/stdlibsupp.hxx, src/stdlib/malloc.cxx:
+ Add malloc(), calloc() and free() functions
+
+ * include/pkgconf/libc.h:
+ Add malloc memory pool size option
+
+ * tests/stdlib/malloc1.c, tests/stdlib/malloc2.c:
+ new tests for malloc
+
+ * src/PKGconf.mak, tests/PKGconf.mak:
+ Update for new files
+
+Wed Jun 10 15:06:16 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/setjmp/setjmp.c:
+ Add another test
+
+Tue Jun 9 18:20:31 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Add some setjmp config's and a macro for the noreturn attribute
+
+ * include/setjmp.h, include/setjmp.inl, src/clibincl/setjmpsupp.hxx,
+ src/setjmp/longjmp.cxx, tests/setjmp/setjmp.c:
+ Added to implement and test setjmp() and longjmp()
+
+ * src/PKGconf.mak, tests/PKGconf.mak:
+ Update for newly added files
+
+Thu Jun 4 01:29:18 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/string/memchr.cxx, src/string/memcmp.cxx, src/string/strcat.cxx,
+ src/string/strchr.cxx, src/string/strcmp.cxx, src/string/strcpy.cxx,
+ src/string/strlen.cxx, src/string/strncat.cxx,
+ src/string/strncmp.cxx, src/string/strncpy.cxx:
+ Rename CYGIMP_LIBC_PREFER_SMALL_TO_FAST to
+ CYGIMP_LIBC_STRING_PREFER_SMALL_TO_FAST
+
+ Also use slower but smaller version when __OPTIMIZE_SIZE__ is
+ defined (which comes from using gcc -Os)
+
+Fri May 29 16:15:04 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/ctype.inl, src/ctype/isxdigit.cxx:
+ Fix bug that numerals aren't considered hex digits
+
+ * include/time.h:
+ Change clock_t and time_t to be signed so that they can accept -1, as
+ required by other libc functions
+
+ * src/clibincl/clibdata.hxx:
+ Fix typo that CYGIMP_LIBC_THREAD_SUPPORT should be ..._SAFETY
+ Also fix macro to allocate thread-specific data to not set variables
+ in a different stack-frame
+
+ * tests/ctype/ctype.c:
+ Fix some misunderstandings in tests, and add a few new ones
+
+ * tests/stdlib/qsort.c:
+ make ctr unsigned to prevent warnings
+
+ * tests/stdlib/strtol.c, tests/stdlib/strtoul.c:
+ Fix some misunderstandings in tests, and add a few new ones
+
+ * tests/string/strrchr.c:
+ Fix off by one error
+
+ * tests/string/strspn.c:
+ Fix case-sensitivity problem, and off-by-one error
+
+ * tests/string/strxfrm1.c:
+ Remove bogus bit of test that doesn't apply to strxfrm, and fix typo
+
+
+Fri May 22 16:33:04 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/PKGconf.mak
+ Remove CXXFLAGS line now that its redundant
+
+ * tests/everything!
+ Do a blitz change of all tests - break some of them down into
+ different files, add new tests, standardize format, fix bugs,
+ update for recent header file changes and much more!
+
+Wed May 20 17:50:04 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/PKGconf.mak:
+ interim checkin for different dir structure for Bart
+
+Fri May 15 20:30:46 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * Tidy up some loose ends I forgot: rename src/include directory to
+ src/clibincl. And add clibdata.inl and timesupp.hxx in there.
+
+Thu May 14 19:56:32 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * Basically everything has changed in the C library. Files have
+ been moved, renamed, deleted and reworked. This is a major
+ revision, and now starts from this new baseline rather than doing
+ incremental changes.
+
+Fri Apr 17 18:43:02 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/ECCconf.mak:
+ added for new build system (actually Bart did this, but didn't
+ update this ChangeLog)
+
+Fri Apr 17 15:03:25 1998 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * src/stdio/device/sim.cxx:
+ Make it build with CYG_EMPTY_STATEMENT; the unadorned one is being
+ removed.
+
+Thu Apr 16 00:24:24 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * All source files:
+ replace ECCIMP_LIBC_* conditional ifdef with CYGIMP_LIBC_*
+
+ * include/eccconf/libc.h:
+ improve comments and reorder a bit
+
+Wed Apr 8 14:35:20 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * Makefile.am, src/Makefile.am, tests/Makefile.am, configure.in:
+ many changes to integrate build structure from release tree
+
+ * src/ctype/Makefile.am, src/ctype/Makefile.in, src/errno/Makefile.am,
+ src/errno/Makefile.in, src/stdio/Makefile.am, src/stdio/Makefile.in,
+ src/stdio/common/Makefile.am, src/stdio/common/Makefile.in,
+ src/stdio/device/Makefile.am, src/stdio/device/Makefile.in,
+ src/stdio/output/Makefile.am, src/stdio/output/Makefile.in,
+ src/stdio/input/Makefile.am, src/stdio/input/Makefile.in,
+ src/stdlib/Makefile.am, src/stdlib/Makefile.in,
+ src/string/Makefile.am, src/string/Makefile.in,
+ src/support/Makefile.am, src/support/Makefile.in,
+ src/time/Makefile.am, src/time/Makefile.in:
+ Remove as they are now redundant with above changes
+
+ * include/Makefile.am:
+ Add to support above changes
+
+ * include/eccconf/libc.h:
+ Change include file for configuration from kernel to system
+
+ * src/include/kerndiag.hxx, src/stdio/device/kerndiag.cxx,
+ src/time/clockfn.cxx:
+ Change kernel include file to eccconf/kernel.h
+
+ * src/include/strngdev.h:
+ remove unnecessary kernel include
+
+ * Makefile.in, aclocal.m4, configure, src/Makefile.in,
+ tests/Makefile.in, include/Makefile.in:
+ regenerate
+
+Mon Apr 6 20:55:07 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdlib/abs.cxx, src/stdlib/atoi.cxx, src/stdlib/atol.cxx,
+ src/stdlib/div.cxx, src/stdlib/labs.cxx, src/stdlib/ldiv.cxx:
+ Separated out functions from stdlib.cxx into separate files
+
+ * src/stdlib/stdlib.cxx:
+ removed to be replaced by above files
+
+ * Makefile.am, src/stdlib/Makefile.am:
+ modified to support building above and not building stdlib.cxx
+
+ * src/support/tsd.cxx:
+ Remove unnecessary header file includes
+
+ * Makefile.in, src/stdlib/Makefile.in:
+ regenerated
+
+Mon Apr 6 19:19:42 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/support/tsd.cxx, include/eccconf/libc.h:
+ remove lame hack for tx39 compiler now that its fixed
+
+ * src/include/sim.hxx:
+ define constants as static to placate compiler
+
+Thu Apr 2 21:01:21 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/ctype/ctype.cxx:
+ deleted and separated out into below files
+
+ * src/ctype/isalnum.cxx, src/ctype/isalpha.cxx, src/ctype/iscntrl.cxx,
+ src/ctype/isdigit.cxx, src/ctype/isgraph.cxx, src/ctype/islower.cxx,
+ src/ctype/isprint.cxx, src/ctype/ispunct.cxx, src/ctype/isspace.cxx,
+ src/ctype/isupper.cxx, src/ctype/isxdigit.cxx, src/ctype/tolower.cxx,
+ src/ctype/toupper.cxx:
+ Separated out individual ctype functions from ctype.cxx into separate
+ files
+
+ * Makefile.am, src/ctype/Makefile.am:
+ modified to reflect above deletion/additions
+
+ * Makefile.in, src/ctype/Makefile.in:
+ regenerated
+
+Thu Apr 2 19:08:26 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/string/strxfrm.cxx: optimise using prefix increments
+
+Thu Apr 2 15:18:15 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/string/strchr.cxx: optimise setting of mask a little
+
+Thu Mar 26 14:07:01 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/support/tsd.cxx: fixed some typos
+
+Thu Mar 26 11:58:47 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/eccconf/libc.h, src/support/tsd.cxx:
+ Implement workaround for tx39 compiler bug.
+
+ * src/include/strsuppt.hxx:
+ remove prototypes for _memcpy() and _memset() as they are now in the
+ kernel
+
+Wed Mar 25 18:31:53 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * Makefile.am, src/string/Makefile.am: memcpy() and memset() are
+ now in the kernel so remove them from build
+ * include/string.h: add a comment to say as much
+ * Makefile.in, src/string/Makefile.in: regenerate
+
+Wed Mar 25 15:30:42 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdlib/_exit.cxx, src/include/file_if.inl:
+ Change _exit workaround to not cause a compiler optimisation
+ problem. Now just references _exit rather than calls it.
+
+Wed Mar 25 14:59:49 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/string/strxfrm.cxx: Fix bug causing tests to fail completely
+ for this function
+
+Wed Mar 25 12:55:53 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/include/sim.hxx: add types to constants (oops!)
+ * Makefile.am: link src/stdio/device/sim.cxx
+ * Makefile.in: regenerated
+
+Wed Mar 25 04:14:30 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/include/file_if.hxx, src/include/file_if.inl,
+ src/include/kerndiag.hxx, src/include/sim.hxx,
+ src/include/stdio_if.hxx, src/include/strngdev.hxx,
+ src/include/tsd.hxx, src/stdio/common/clearerr.cxx,
+ src/stdio/common/clearerr.cxx, src/stdio/common/feof.cxx,
+ src/stdio/common/ferror.cxx, src/stdio/common/file_if.cxx,
+ src/stdio/common/vsprintf.cxx,
+ src/stdio/device/kerndiag.cxx, src/stdio/device/sim.cxx,
+ src/stdio/device/strngdev.cxx, src/stdio/output/fputc.cxx,
+ src/stdio/output/fputs.cxx, src/stdio/output/puts.cxx,
+ src/stdio/output/vfnprintf.cxx, src/support/tsd.cxx:
+ Modified to support buffered reads including renaming
+ _EccInternalFileStruct to __EccStdioStream which is what affects
+ most of these files
+ * src/include/file_if.inl, src/stdio/common/file_if.cxx: added for
+ the above reason
+ * src/stdio/common/sscanf.cxx, src/stdio/input/vfscanf.cxx,
+ src/stdio/input/Makefile.am: added to provide sscanf() functionality
+ * include/ctype.h, include/stdio.h, include/stdlib.h,
+ include/string.h, include/eccconf/libc.h, src/ctype/ctype.cxx,
+ src/stdlib/stdlib.cxx, src/string/strcoll.cxx,
+ src/stdio/common/stdio.cxx:
+ rename *_INLINES macros with prefix CYG rather than ECC
+ * include/errno.h, src/errno/errno.cxx, src/errno/strerror.cxx:
+ rename ErrNo to _ErrNo and add EAGAIN and EWOULDBLOCK error codes
+ * configure.in, Makefile.am, src/stdio/Makefile.am,
+ src/stdio/input/Makefile.am: add support for building
+ file_if.cxx sscanf.cxx and vfscanf.cxx
+ * src/stdio/Makefile.in, src/stdio/common/Makefile.in,
+ src/stdio/input/Makefile.in, configure, Makefile.in: regenerated
+
+Tue Mar 24 19:51:40 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/time/clockfn.cxx, src/time/clock.cxx:
+ Renamed clock.cxx to clockfn.cxx (preserving CVS history)
+ * Makefile.am, src/time/Makefile.am: updated to reflect name change
+ * Makefile.in, src/time/Makefile.in: regenerated
+
+Tue Mar 24 16:28:06 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/ctype.inl: Swap around definitions to get right order so
+ inlining works
+
+Tue Mar 24 14:43:05 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/ctype.h, include/stdio.h, include/stdlib.h, include/string.h:
+ modify to only conditionally include inlines
+ * src/ctype/ctype.cxx, src/stdio/common/stdio.cxx,
+ src/stdlib/stdlib.cxx, src/string/strcoll.cxx,
+ src/ctype/Makefile.am: Add to provide real linkable alternatives
+ to inline functions
+ * Makefile.am, configure.in, src/Makefile.am,
+ src/stdio/common/Makefile.am, src/stdlib/Makefile.am,
+ src/string/Makefile.am: modified to support previous additions
+ * include/eccconf/libc.h: redefine inline macro to add extern inline,
+ and add conditional defines for inline functions. Also rename
+ space vs. speed macro to have CYG instead of ECC prefix
+ * include/stdio.inl: fix comment typo
+ * src/stdlib/qsort.cxx: fix to define inline functions properly
+ * src/string/memchr.cxx, src/string/memcmp.cxx, src/string/memcpy.cxx,
+ src/string/memset.cxx, src/string/strcat.cxx, src/string/strchr.cxx,
+ src/string/strcmp.cxx, src/string/strcpy.cxx, src/string/strlen.cxx,
+ src/string/strncat.cxx, src/string/strncmp.cxx,
+ src/string/strncpy.cxx
+ * Makefile.in, configure, src/Makefile.in, src/ctype/Makefile.in,
+ src/stdio/common/Makefile.in, src/stdlib/Makefile.in,
+ src/string/Makefile.in: regenerate
+
+
+Mon Mar 23 19:19:49 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdlib/_exit.cxx: added to support temporary _exit
+ * include/stdlib.h, include/stdlib.inl: added support for _exit and
+ added abs(), labs(), div() and ldiv() functions
+ * src/include/file_if.hxx: added support for _exit kludge
+ * src/stdlib/qsort.cxx: Added Berkeley copyright message
+ * src/time/clock.cxx: Include correct kernel config header as
+ CYG_CONFIGURATION rather than <config.h>
+ * Makefile.am src/stdlib/Makefile.am: added support for _exit
+ * Makefile.in, src/stdlib/Makefile.in: regenerated
+
+Mon Mar 23 14:41:07 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * Replace ECCPKG_ANSI_LIBC with CYGPKG_ANSI_LIBC in all source files
+
+Mon Mar 23 14:28:44 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/string.inl: add file to provide strcoll()
+ * include/string.h: include string.inl
+ * ctype.h: include ctype.inl (oops!)
+ * include/stdlib.h: include stdlib.inl (oops!)
+
+Mon Mar 23 13:30:38 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/ctype.h, include/ctype.inl: added to provide ANSI ctype
+ functionality
+ * include/stdlib.h, include/stdlib.inl, src/include/stdlibbsp.hxx,
+ src/stdlib/Makefile.am, src/stdlib/bsearch.cxx,
+ src/stdlib/qsort.cxx, src/stdlib/rand.cxx, src/stdlib/srand.cxx,
+ src/stdlib/strtol.cxx, src/stdlib/strtoul.cxx: Added to provide
+ many stdlib functions
+ * src/include/tsd.hxx: modified to support rand() random number
+ seed, and added some comments
+ * configure.in, Makefile.am, src/Makefile.am: modified to support
+ addition of above new sources
+ * include/eccconf/libc.h: Add extra helpful comments, and #include
+ kernel config file
+ * src/time/clock.cxx: #include clock.inl and fix to call
+ get_resolution() properly now
+ * Makefile.in, configure, src/Makefile.in, src/errno/Makefile.in,
+ src/stdio/Makefile.in, src/stdio/common/Makefile.in,
+ src/stdio/device/Makefile.in, src/stdio/output/Makefile.in,
+ src/stdlib/Makefile.in, src/strings/Makefile.in,
+ src/support/Makefile.in, src/time/Makefile.in,
+ tests/Makefile.in: regenerated
+
+
+Sun Mar 22 21:29:25 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/time.h, src/include/timesupp.hxx, src/time/clock.cxx,
+ src/time/Makefile.am: added to provide clock() function
+ * src/Makefile.am: modified to try to build in src/time directory
+ * include/eccconf/libc.h: added and is now the main configuration
+ file for this package
+ * acconfig.h, include/libcconf.h.in, include/stamp-h.in: removed
+ due to usage of libc.h above instead
+ * Almost all *.h, *.hxx and *.cxx: replaced LIBC_CONFIG_HEADER
+ defined include with simple <pkgconf/libc.h>
+ * configure.in: remove AM_CONFIG_HEADER of libcconf.h and
+ LIBC_CONFIG_HEADER definition. Also remove usage of builtin
+ memcpy() etc. from gcc, and generate src/time/Makefile
+ * Makefile.am: link in src/time/clock.o
+ * src/include/file_if.hxx, src/include/sim.hxx: use config header
+ to decide whether C library is to be used
+ * Makefile.in, aclocal.m4, configure, src/Makefile.in: regenerated
+
+Fri Mar 20 18:08:10 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/string/strxfrm.cxx: Fixed bug with ignoring terminating NULL
+
+1998-03-20 Chris Tarpy <ctarpy@bhaji.cygnus.co.uk>
+
+ * configure: - regenerated
+ * Makefile.am: - Support added for libc testcases
+ * Makefile.in: regenerated
+ * configure.in: set c compiler, descend test dir
+ * tests/Makefile.in: added
+ * tests/Makefile.am: added
+ * tests/tcdiag.cxx : added
+
+
+Thu Mar 19 11:41:56 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * Initial check-in of everything
+
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
diff --git a/ecos/packages/language/c/libc/common/current/cdl/libc.cdl b/ecos/packages/language/c/libc/common/current/cdl/libc.cdl
new file mode 100644
index 0000000..ec20a9e
--- /dev/null
+++ b/ecos/packages/language/c/libc/common/current/cdl/libc.cdl
@@ -0,0 +1,62 @@
+# ====================================================================
+#
+# libc.cdl
+#
+# C library common package configuration data
+#
+# ====================================================================
+## ####ECOSGPLCOPYRIGHTBEGIN####
+## -------------------------------------------
+## This file is part of eCos, the Embedded Configurable Operating System.
+## Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+##
+## eCos is free software; you can redistribute it and/or modify it under
+## the terms of the GNU General Public License as published by the Free
+## Software Foundation; either version 2 or (at your option) any later
+## version.
+##
+## eCos 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 General Public License
+## for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with eCos; if not, write to the Free Software Foundation, Inc.,
+## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+##
+## As a special exception, if other files instantiate templates or use
+## macros or inline functions from this file, or you compile this file
+## and link it with other works to produce a work based on this file,
+## this file does not by itself cause the resulting work to be covered by
+## the GNU General Public License. However the source code for this file
+## must still be made available in accordance with section (3) of the GNU
+## General Public License v2.
+##
+## This exception does not invalidate any other reasons why a work based
+## on this file might be covered by the GNU General Public License.
+## -------------------------------------------
+## ####ECOSGPLCOPYRIGHTEND####
+# ====================================================================
+######DESCRIPTIONBEGIN####
+#
+# Author(s): jlarmour
+# Contributors:
+# Date: 2000-04-14
+#
+#####DESCRIPTIONEND####
+#
+# ====================================================================
+
+cdl_package CYGPKG_LIBC {
+ display "ISO C library"
+ description "
+The packages under this package enable compatibility with the ISO C
+standard - ISO/IEC 9899:1990. This allows the user application to use
+well known standard C library functions, and in eCos starts a thread
+to invoke the user function main(). This package is a top-level placeholder
+to contain the implementations."
+ doc ref/libc.html
+}
+
+# ====================================================================
+# EOF libc.cdl
diff --git a/ecos/packages/language/c/libc/common/current/doc/libc.sgml b/ecos/packages/language/c/libc/common/current/doc/libc.sgml
new file mode 100644
index 0000000..85b021a
--- /dev/null
+++ b/ecos/packages/language/c/libc/common/current/doc/libc.sgml
@@ -0,0 +1,559 @@
+<!-- {{{ Banner -->
+
+<!-- =============================================================== -->
+<!-- -->
+<!-- libc.sgml -->
+<!-- -->
+<!-- eCos C Library -->
+<!-- -->
+<!-- =============================================================== -->
+<!-- ####ECOSDOCCOPYRIGHTBEGIN#### -->
+<!-- =============================================================== -->
+<!-- Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc. -->
+<!-- This material may be distributed only subject to the terms -->
+<!-- and conditions set forth in the Open Publication License, v1.0 -->
+<!-- or later (the latest version is presently available at -->
+<!-- http://www.opencontent.org/openpub/) -->
+<!-- Distribution of the work or derivative of the work in any -->
+<!-- standard (paper) book form is prohibited unless prior -->
+<!-- permission obtained from the copyright holder -->
+<!-- =============================================================== -->
+<!-- ####ECOSDOCCOPYRIGHTEND#### -->
+<!-- =============================================================== -->
+<!-- #####DESCRIPTIONBEGIN#### -->
+<!-- -->
+<!-- ####DESCRIPTIONEND#### -->
+<!-- =============================================================== -->
+
+<!-- }}} -->
+
+<PART id="libc">
+<TITLE>The ISO Standard C and Math Libraries</TITLE>
+<CHAPTER id="c-and-math-library-overview">
+<TITLE><!-- <xref> -->C and math library overview</TITLE>
+<anchor id="iso-c-and-math-libraries">
+<PARA><EMPHASIS>eCos</EMPHASIS> provides compatibility with the
+ ISO 9899:1990 specification for the standard C library, which
+ is essentially the same as the better-known ANSI C3.159-1989
+ specification (C-89).</PARA>
+<PARA>There are three aspects of this compatibility supplied by <EMPHASIS>eCos</EMPHASIS>.
+First there is a <!-- <index></index> --><firstterm>C library</firstterm> which
+implements the functions defined by the ISO standard, except for the
+mathematical functions. This is provided by the eCos C library
+packages. </PARA>
+<PARA>Then <EMPHASIS>eCos</EMPHASIS> provides a <!-- <index></index> -->math
+library, which implements the mathematical functions from the ISO
+C library. This distinction between C and math libraries is frequently
+drawn &mdash; most standard C library implementations provide
+separate linkable files for the two, and the math library contains
+all the functions from the <filename>math.h</filename> header
+file.</PARA>
+<PARA>There is a third element to the ISO C library, which is the
+environment in which applications run when they use the standard
+C library. This environment is set up by the C library startup procedure
+(<xref linkend="c-library-startup">)
+and it provides (among other things) a <FUNCTION>main()</FUNCTION> entry
+point function, an <FUNCTION>exit()</FUNCTION> function that
+does the cleanup required by the standard (including handlers registered
+using the <FUNCTION>atexit()</FUNCTION> function), and an environment
+that can be read with <FUNCTION>getenv()</FUNCTION>. </PARA>
+<PARA>The description in this manual focuses on the <EMPHASIS>eCos</EMPHASIS>-specific
+aspects of the C library (mostly related to <EMPHASIS>eCos</EMPHASIS>'s
+configurability) as well as mentioning the omissions from the standard
+in this release. We do not attempt to define the semantics of each
+function, since that information can be found in the ISO, ANSI,
+POSIX and IEEE standards, and the many good books that have been
+written about the standard C library, that cover usage of these
+functions in a more general and useful way.</PARA>
+<SECT1 id="include-non-iso-functions">
+<TITLE>Included non-ISO functions</TITLE>
+<PARA>The following functions from the <!-- <index></index> -->POSIX specification
+are included for convenience: </PARA>
+<PARA> <literal>extern char **</literal><EMPHASIS>environ</EMPHASIS> variable
+(for setting up the environment for use with <FUNCTION>getenv()</FUNCTION>)</PARA>
+<PARA> <FUNCTION>_exit()</FUNCTION> </PARA>
+<PARA> <FUNCTION>strtok_r()</FUNCTION> </PARA>
+<PARA> <FUNCTION>rand_r()</FUNCTION> </PARA>
+<PARA> <FUNCTION>asctime_r()</FUNCTION> </PARA>
+<PARA> <FUNCTION>ctime_r()</FUNCTION> </PARA>
+<PARA> <FUNCTION>localtime_r()</FUNCTION> </PARA>
+<PARA> <FUNCTION>gmtime_r()</FUNCTION> </PARA>
+<PARA><EMPHASIS>eCos</EMPHASIS> provides the following additional
+implementation-specific functions within the standard C library
+to adjust the date and time settings:</PARA>
+<PROGRAMLISTING>void <FUNCTION>cyg_libc_time_setdst</FUNCTION>(
+ cyg_libc_time_dst state
+);</PROGRAMLISTING>
+<PARA>This function sets the state of Daylight Savings Time. The
+values for state are:</PARA>
+<PROGRAMLISTING>CYG_LIBC_TIME_DSTNA unknown
+CYG_LIBC_TIME_DSTOFF off
+CYG_LIBC_TIME_DSTON on</PROGRAMLISTING>
+
+<PROGRAMLISTING>void <FUNCTION>cyg_libc_time_setzoneoffsets</FUNCTION>(
+ time_t stdoffset, time_t dstoffset
+);</PROGRAMLISTING>
+<PARA>This function sets the offsets from UTC used when Daylight
+Savings Time is enabled or disabled. The offsets are in time_t&rsquo;s,
+which are seconds in the current inplementation.</PARA>
+<PROGRAMLISTING><FUNCTION>Cyg_libc_time_dst cyg_libc_time_getzoneoffsets</FUNCTION>(
+ time_t *stdoffset, time_t *dstoffset
+);</PROGRAMLISTING>
+<PARA>This function retrieves the current setting for Daylight Savings
+Time along with the offsets used for both STD and DST. The offsets
+are both in time_t&rsquo;s, which are seconds in the
+current implementation.</PARA>
+<PROGRAMLISTING><FUNCTION>cyg_bool cyg_libc_time_settime</FUNCTION>(
+ time_t utctime
+);</PROGRAMLISTING>
+<PARA>This function sets the current time for the system The time
+is specified as a <type>time_t</type> in UTC.
+It returns non-zero on error.</PARA>
+</SECT1>
+<SECT1 id="math-library-compatibility-modes">
+<TITLE>Math library compatibility modes</TITLE>
+<PARA>This math library is capable of being operated in several
+different compatibility modes. These options deal solely with how
+errors are handled. </PARA>
+<PARA>There are 4 compatibility modes: ANSI/POSIX 1003.1;
+IEEE-754; X/Open Portability Guide issue 3 (XPG3); and
+System V Interface Definition Edition 3. </PARA>
+<PARA>In <!-- <index></index> -->IEEE mode, the <function>matherr()</function> function
+(see below) is never called, no warning messages are printed on
+the stderr output stream, and errno is never set. </PARA>
+<PARA>In <!-- <index></index> -->ANSI/POSIX mode, errno is set correctly,
+but <function>matherr()</function> is never called and no warning messages
+are printed on the stderr output stream. </PARA>
+<PARA>In <!-- <index></index> -->X/Open mode, errno is set correctly,
+<function>matherr()</function> is called, but no warning messages are printed
+on the stderr output stream. </PARA>
+<PARA>In <!-- <index></index> -->SVID mode, functions which overflow return
+a value HUGE (defined in <filename>math.h</filename>), which is the maximum
+single precision floating point value (as opposed to
+HUGE_VAL which is meant to stand for infinity). errno is
+set correctly and <function>matherr()</function> is called. If
+<function>matherr()</function> returns 0, warning messages are printed on
+the stderr output stream for some errors. </PARA>
+<PARA>The mode can be compiled-in as IEEE-only, or any one of the
+above methods settable at run-time. </PARA>
+<NOTE>
+<PARA>This math library assumes that the hardware (or software floating
+point emulation) supports IEEE-754 style arithmetic, 32-bit 2's
+complement integer arithmetic, doubles are in 64-bit IEEE-754 format.</PARA>
+</NOTE>
+<SECT2>
+<TITLE><!-- <index></index> --> matherr()</TITLE>
+<PARA>As mentioned above, in X/Open or SVID modes, the user
+ can supply a function <FUNCTION>matherr()</FUNCTION> of
+ the form:</PARA>
+<PROGRAMLISTING>int <FUNCTION>matherr</FUNCTION>( struct exception *e )
+</PROGRAMLISTING>
+<PARA>where struct exception is defined as:</PARA>
+<PROGRAMLISTING>struct exception {
+ int type;
+ char *name;
+ double arg1, arg2, retval;
+}; </PROGRAMLISTING>
+<PARA>type is the exception type and is one of:</PARA>
+<VARIABLELIST>
+<VARLISTENTRY>
+<TERM>DOMAIN </TERM>
+<LISTITEM>
+
+<PARA>argument domain exception</PARA>
+</LISTITEM>
+</VARLISTENTRY>
+<VARLISTENTRY>
+<TERM>SING </TERM>
+<LISTITEM>
+
+<PARA>argument singularity</PARA>
+</LISTITEM>
+</VARLISTENTRY>
+<VARLISTENTRY>
+<TERM>OVERFLOW </TERM>
+<LISTITEM>
+
+<PARA>overflow range exception</PARA>
+</LISTITEM>
+</VARLISTENTRY>
+<VARLISTENTRY>
+<TERM>UNDERFLOW </TERM>
+<LISTITEM>
+
+<PARA>underflow range exception</PARA>
+</LISTITEM>
+</VARLISTENTRY>
+<VARLISTENTRY>
+<TERM>TLOSS </TERM>
+<LISTITEM>
+
+<PARA>total loss of significance</PARA>
+</LISTITEM>
+</VARLISTENTRY>
+<VARLISTENTRY>
+<TERM>PLOSS </TERM>
+<LISTITEM>
+
+<PARA>partial loss of significance</PARA>
+</LISTITEM>
+</VARLISTENTRY>
+</VARIABLELIST>
+<PARA><parameter>name</parameter> is a string containing the name of the
+function</PARA>
+<PARA><parameter>arg1</parameter> and <parameter>arg2</parameter> are the
+arguments passed to the function</PARA>
+<PARA><parameter>retval</parameter> is the default value that will be returned
+by the function, and can be changed by <FUNCTION>matherr()</FUNCTION></PARA>
+<NOTE>
+<PARA>matherr must have &ldquo;C&rdquo; linkage, not &ldquo;C&plus;&plus;&rdquo; linkage.</PARA>
+</NOTE>
+<PARA>If matherr returns zero, or the user doesn't supply
+their own matherr, then the following <EMPHASIS>usually</EMPHASIS> happens
+in SVID mode:</PARA><!-- FIXME: must convert this table -->
+ <table>
+<title>Behavior of math exception handling</title>
+<tgroup cols="2">
+<thead>
+<row>
+ <entry>Type</entry>
+ <entry>Behavior</entry
+</row>
+</thead>
+<tbody>
+<row>
+<entry>DOMAIN</entry><entry>0.0 returned,
+errno=EDOM, and a message printed on stderr</entry></row>
+<row>
+<entry>SING</entry><entry>HUGE of appropriate
+sign is returned, errno=EDOM, and a message is printed
+on stderr</entry></row>
+<row>
+<entry>OVERFLOW</entry><entry>HUGE of
+appropriate sign is returned, and errno=ERANGE</entry></row>
+<row>
+<entry>UNDERFLOW</entry><entry>0.0 is
+returned and errno=ERANGE</entry></row>
+<row>
+<entry>TLOSS</entry><entry>0.0 is returned,
+errno=ERANGE, and a message is printed on stderr</entry></row>
+<row>
+<entry>PLOSS</entry><entry>The current
+implementation doesn't return this type</entry></row>
+</tbody>
+</tgroup>
+</table>
+<!-- -->
+<PARA>X/Open mode is similar except that the message is
+not printed on stderr and HUGE_VAL is used in place of
+HUGE</PARA>
+</SECT2>
+<SECT2>
+<TITLE>Thread-safety and re-entrancy</TITLE>
+<PARA>With the appropriate configuration options set below, the
+math library is fully thread-safe if:</PARA>
+<ITEMIZEDLIST>
+<LISTITEM>
+<PARA>Depending on the compatibility mode, the
+ setting of the errno variable from the C library is
+ thread-safe</PARA>
+</LISTITEM>
+<LISTITEM>
+<PARA>Depending on the compatibility mode, sending error messages
+to the stderr output stream using the C library
+<FUNCTION>fputs()</FUNCTION>
+ function is thread-safe </PARA>
+</LISTITEM>
+<LISTITEM>
+<PARA>Depending on the compatibility mode, the user-supplied
+<FUNCTION>matherr()</FUNCTION>
+ function and anything it depends on are thread-safe </PARA>
+</LISTITEM>
+</ITEMIZEDLIST>
+<PARA>In addition, with the exception of the <FUNCTION>gamma*()</FUNCTION> and <FUNCTION>lgamma*()</FUNCTION> functions,
+the math library is reentrant (and thus safe to use from interrupt handlers)
+if the Math library is always in IEEE mode.</PARA>
+</SECT2>
+</SECT1>
+<SECT1 id="libc-implementation-details">
+<TITLE>Some implementation details</TITLE>
+<PARA>Here are some details about the <!-- <index></index> -->implementation
+which might be interesting, although they do not affect the ISO-defined
+semantics of the library. </PARA>
+<ITEMIZEDLIST>
+<LISTITEM>
+<PARA>It is possible to configure
+<EMPHASIS>eCos</EMPHASIS>
+ to have the standard C library without the kernel. You might want
+to do this to use less memory. But if you disable the kernel, you
+will be unable to use memory allocation, thread-safety and certain
+stdio functions such as input. Other C library functionality is
+unaffected.</PARA>
+</LISTITEM>
+<LISTITEM>
+<PARA>The opaque type returned by
+<FUNCTION>clock()</FUNCTION>
+ is called clock_t, and is implemented as a 64 bit integer.
+The value returned by
+<FUNCTION>clock()</FUNCTION>
+ is only correct if the kernel is configured with real-time clock
+support, as determined by the CYGVAR_KERNEL_COUNTERS_CLOCK
+configuration option in
+<FILENAME>kernel.h</FILENAME>
+.</PARA>
+</LISTITEM>
+<LISTITEM>
+<PARA>The FILE type is not implemented as a structure, but rather
+as a CYG_ADDRESS. </PARA>
+</LISTITEM>
+<LISTITEM>
+<PARA>The GNU C compiler will place its own <EMPHASIS>built-in</EMPHASIS> implementations
+instead of some C library functions. This can be turned off with
+the <EMPHASIS>-fno-builtin</EMPHASIS> option. The functions affected
+by this are
+<FUNCTION>abs()</FUNCTION>
+,
+<FUNCTION>cos()</FUNCTION>
+,
+<FUNCTION>fabs()</FUNCTION>
+,
+<FUNCTION>labs()</FUNCTION>
+,
+<FUNCTION>memcmp()</FUNCTION>
+,
+<FUNCTION>memcpy()</FUNCTION>
+,
+<FUNCTION>sin()</FUNCTION>
+,
+<FUNCTION>sqrt()</FUNCTION>
+,
+<FUNCTION>strcmp()</FUNCTION>
+,
+<FUNCTION>strcpy()</FUNCTION>
+, and
+<FUNCTION>strlen()</FUNCTION>
+.</PARA>
+</LISTITEM>
+<LISTITEM>
+<PARA>For faster execution speed you should avoid this option
+and let the compiler use its built-ins. This can be turned off by
+invoking
+<EMPHASIS>GCC</EMPHASIS>
+ with the <EMPHASIS>-fno-builtin</EMPHASIS> option. </PARA>
+</LISTITEM>
+<LISTITEM>
+<PARA><FUNCTION>memcpy()</FUNCTION>
+ and
+<FUNCTION>memset()</FUNCTION>
+ are located in the infrastructure package, not in the C library
+package. This is because the compiler calls these functions, and
+the kernel needs to resolve them even if the C library is not configured. </PARA>
+</LISTITEM>
+<LISTITEM>
+<PARA>Error codes such as EDOM and ERANGE, as well as
+<FUNCTION>strerror()</FUNCTION>
+, are implemented in the <EMPHASIS>error</EMPHASIS> package. The
+error package is separate from the rest of the C and math libraries
+so that the rest of
+<EMPHASIS>eCos</EMPHASIS>
+ can use these error handling facilities even if the C library is
+not configured. </PARA>
+</LISTITEM>
+<LISTITEM>
+<PARA>When
+<FUNCTION>free()</FUNCTION>
+ is invoked, heap memory will normally be coalesced. If the CYGSEM_KERNEL_MEMORY_COALESCE
+configuration parameter is not set, memory will not be coalesced,
+which might cause programs to fail. </PARA>
+</LISTITEM>
+<LISTITEM>
+<PARA>Signals, as implemented by
+<filename>&lt;signal.h&gt;</filename>, are guaranteed to work
+correctly if raised using the
+<FUNCTION>raise()</FUNCTION>
+ function from a normal working program context. Using signals from
+within an ISR or DSR context is not expected to work. Also, it is
+not guaranteed that if CYGSEM_LIBC_SIGNALS_HWEXCEPTIONS
+is set, that handling a signal using
+<FUNCTION>signal()</FUNCTION>
+ will necessarily catch that form of exception. For example, it
+may be expected that a divide-by-zero error would be caught by handling
+<varname>SIGFPE</varname>. However it depends on the underlying HAL implementation to implement
+the required hardware exception. And indeed the hardware itself
+may not be capable of detecting these exceptions so it may not be
+possible for the HAL implementer to do this in any case. Despite
+this lack of guarantees in this respect, the signals implementation
+is still ISO C compliant since ISO C does not offer any such guarantees
+either. </PARA>
+</LISTITEM>
+<LISTITEM>
+<PARA>The
+<FUNCTION>getenv()</FUNCTION>
+ function is implemented (unless the CYGPKG_LIBC_ENVIRONMENT configuration
+option is turned off), but there is no shell or
+<FUNCTION>putenv()</FUNCTION>
+ function to set the environment dynamically. The environment is
+set in a global variable environ, declared as:</PARA>
+<PROGRAMLISTING>extern char **environ; // Standard environment definition</PROGRAMLISTING>
+<PARA>The environment can be statically initialized at startup time
+using the CYGDAT_LIBC_DEFAULT_ENVIRONMENT
+option. If so, remember that the final entry of the array initializer
+must be NULL. </PARA>
+</LISTITEM>
+</ITEMIZEDLIST>
+<PARA>Here is a minimal <EMPHASIS>eCos</EMPHASIS> program which
+demonstrates the use of environments (see also the test case in <filename>language/c/libc/current/tests/stdlib/getenv.c</filename>): </PARA>
+<PROGRAMLISTING>#include &lt;stdio.h&gt;
+#include &lt;stdlib.h&gt; // Main header for stdlib functions
+
+extern char **environ; // Standard environment definition
+
+int
+main( int argc, char *argv[] )
+{
+ char *str;
+ char *env[] = { "PATH=/usr/local/bin:/usr/bin",
+ "HOME=/home/fred",
+ "TEST=1234=5678",
+ "home=hatstand",
+ NULL };
+
+ printf("Display the current PATH environment variable\n");
+
+ environ = (char **)&amp;env;
+
+ str = getenv("PATH");
+
+ if (str==NULL) {
+ printf("The current PATH is unset\n");
+ } else {
+ printf("The current PATH is \"%s\"\n", str);
+ }
+ return 0;
+} </PROGRAMLISTING>
+</SECT1>
+<SECT1 id="libc-thread-safety">
+<TITLE><!-- <index></index> -->Thread safety</TITLE>
+<PARA>The ISO C library has configuration options that control thread
+safety, i.e. working behavior if multiple threads call the same
+function at the same time.</PARA>
+<PARA>The following functionality has to be configured correctly,
+or used carefully in a multi-threaded environment:</PARA>
+<ITEMIZEDLIST>
+<LISTITEM>
+<PARA><function>mblen()</function></para>
+</listitem>
+<listitem>
+<para><function>mbtowc()</function></para>
+</listitem>
+<listitem>
+<para><function>wctomb()</function></para>
+</listitem>
+<listitem>
+<para>
+<FUNCTION>printf()</FUNCTION>
+ (and all standard I/O functions except for
+<FUNCTION>sprintf()</FUNCTION>
+ and
+<FUNCTION>sscanf()</FUNCTION></PARA>
+</LISTITEM>
+<LISTITEM>
+<PARA><FUNCTION>strtok()</FUNCTION></PARA>
+</LISTITEM>
+<LISTITEM>
+<PARA><FUNCTION>rand()</FUNCTION>
+ and
+<FUNCTION>srand()</FUNCTION></PARA>
+</LISTITEM>
+<LISTITEM>
+<PARA><FUNCTION>signal()</FUNCTION>
+ and
+<FUNCTION>raise()</FUNCTION></PARA>
+</LISTITEM>
+<LISTITEM>
+<PARA><FUNCTION>asctime()</FUNCTION>
+,
+<FUNCTION>ctime()</FUNCTION>
+,
+<FUNCTION>gmtime()</FUNCTION>
+, and
+<FUNCTION>localtime()</FUNCTION></PARA>
+</LISTITEM>
+<LISTITEM>
+<PARA>the
+<FUNCTION>errno</FUNCTION>
+ variable</PARA>
+</LISTITEM>
+<LISTITEM>
+<PARA>the
+<FUNCTION>environ</FUNCTION>
+ variable</PARA>
+</LISTITEM>
+<LISTITEM>
+<PARA>date and time settings</PARA>
+</LISTITEM>
+</ITEMIZEDLIST>
+<PARA>In some cases, to make <EMPHASIS>eCos</EMPHASIS> development
+easier, functions are provided (as specified by POSIX 1003.1) that define
+re-entrant alternatives, i.e. <FUNCTION>rand_r()</FUNCTION>, <FUNCTION>strtok_r()</FUNCTION>, <FUNCTION>asctime_r()</FUNCTION>, <FUNCTION>ctime_r()</FUNCTION>, <FUNCTION>gmtime_r()</FUNCTION>,
+and <FUNCTION>localtime_r()</FUNCTION>. In other cases,
+configuration options are provided that control either locking of functions
+or their shared data, such as with standard I/O streams,
+or by using per-thread data, such as with the <FUNCTION>errno</FUNCTION> variable.</PARA>
+<PARA>In some other cases, like the setting of date and time, no
+re-entrant or thread-safe alternative or configuration is provided
+as it is simply not a worthwhile addition (date and time should
+rarely need to be set.)</PARA>
+</SECT1>
+<SECT1 id="c-library-startup">
+<TITLE><!-- <index></index> --><!-- <xref> -->C library startup</TITLE>
+<PARA>The C library includes a function declared as:</PARA>
+<PROGRAMLISTING>void <FUNCTION>cyg_iso_c_start</FUNCTION>( void )</PROGRAMLISTING>
+<PARA>This function is used to start an environment in which an
+ISO C style program can run in the most compatible way.</PARA>
+<PARA>What this function does is to create a thread which will invoke <FUNCTION>main()</FUNCTION> &mdash; normally
+considered a program's entry point. In particular, it can
+supply arguments to <FUNCTION>main()</FUNCTION> using the CYGDAT_LIBC_ARGUMENTS
+configuration option, and when returning from <FUNCTION>main()</FUNCTION>,
+or calling <FUNCTION>exit()</FUNCTION>, pending stdio file output
+is flushed and any functions registered with <FUNCTION>atexit()</FUNCTION> are
+invoked. This is all compliant with the ISO C standard in this respect. </PARA>
+<PARA>This thread starts execution when the <EMPHASIS>eCos</EMPHASIS> scheduler
+is started. If the <EMPHASIS>eCos</EMPHASIS> kernel package is not
+available (and hence there is no scheduler), then <FUNCTION>cyg_iso_c_start()</FUNCTION> will
+invoke the <FUNCTION>main()</FUNCTION> function directly, i.e.
+it will not return until the <FUNCTION>main()</FUNCTION> function
+returns. </PARA>
+<PARA>The <FUNCTION>main()</FUNCTION> function should be defined
+as the following, and if defined in a C&plus;&plus; file,
+should have &ldquo;C&rdquo; linkage: </PARA>
+<PROGRAMLISTING>extern int <FUNCTION>main</FUNCTION>(
+ int <EMPHASIS>argc,</EMPHASIS>
+ char *<EMPHASIS>argv[] </EMPHASIS>)</PROGRAMLISTING>
+<PARA>The thread that is started by <FUNCTION>cyg_iso_c_start()</FUNCTION> can
+be manipulated directly, if you wish. For example you can suspend
+it. The kernel C API needs a handle to do this, which is available
+by including the following in your source code.</PARA>
+<PROGRAMLISTING>extern cyg_handle_t cyg_libc_main_thread;</PROGRAMLISTING>
+<PARA>Then for example, you can suspend the thread with the line:</PARA>
+<PROGRAMLISTING>cyg_thread_suspend( cyg_libc_main_thread );</PROGRAMLISTING>
+<PARA>If you call <FUNCTION>cyg_iso_c_start()</FUNCTION> and
+do not provide your own <FUNCTION>main()</FUNCTION> function,
+the system will provide a <FUNCTION>main()</FUNCTION> for you
+which will simply return immediately.</PARA>
+<PARA>In the default configuration, <FUNCTION>cyg_iso_c_start()</FUNCTION> is
+invoked automatically by the <FUNCTION>cyg_package_start()</FUNCTION> function
+in the infrastructure configuration. This means that in the simplest
+case, your program can indeed consist of simply:</PARA>
+<PROGRAMLISTING>int main( int argc, char *argv[] )
+{
+ printf("Hello eCos\n");
+}</PROGRAMLISTING>
+<PARA>If you override <FUNCTION>cyg_package_start()</FUNCTION> or <FUNCTION>cyg_start()</FUNCTION>,
+or disable the infrastructure configuration option CYGSEM_START_ISO_C_COMPATIBILITY
+then you must ensure that you call <FUNCTION>cyg_iso_c_start()</FUNCTION> yourself
+if you want to be able to have your program start at the entry point
+of <FUNCTION>main()</FUNCTION> automatically.</PARA>
+</SECT1>
+</CHAPTER>
+</PART>
diff --git a/ecos/packages/language/c/libc/i18n/current/ChangeLog b/ecos/packages/language/c/libc/i18n/current/ChangeLog
new file mode 100644
index 0000000..14c6259
--- /dev/null
+++ b/ecos/packages/language/c/libc/i18n/current/ChangeLog
@@ -0,0 +1,134 @@
+2012-03-19 Sergei Gavrikov <sergei.gavrikov@gmail.com>
+ Jonathan Larmour <jifl@eCosCentric.com>
+
+ * tests/i18nmb.c (main): Fix compiler warnings about variables are
+ set but not used. Enter CYGBLD_ATTRIB_UNUSED.
+
+2009-01-26 Jonathan Larmour <jifl@eCosCentric.com>
+
+ * tests/ctype.c: Allow to run if CYGPKG_LIBC_STARTUP isn't there.
+ * tests/i18nmb.c: Ditto.
+ * tests/setlocale.c: Ditto.
+
+2007-07-02 Gary Thomas <gary@mlbassoc.com>
+
+ * src/locale.cxx: Add (char *) casts to make GCC/4.2.x happy.
+
+2006-08-28 Sergei Gavrikov <w3sg@SoftHome.net>
+
+ * src/wcstombs.cxx (wcstombs): unused variable removed.
+
+2006-08-11 Jonathan Larmour <jifl@eCosCentric.com>
+
+ * src/wcstombs.cxx (wcstombs): Previous change should have
+ disregarded 'n'. Now fixed. Thanks to Klaas Gadeyne.
+
+2006-08-10 Jonathan Larmour <jifl@eCosCentric.com>
+
+ * src/wcstombs.cxx (wcstombs): Follow Single Unix Spec
+ and if string is NULL, return chars that would have been
+ returned.
+
+2005-07-30 Andrew Lunn <andrew.lunn@ascom.ch>
+
+ * tests/i18nmb.c (main): Really silence the warnings.
+
+2004-02-17 Jonathan Larmour <jifl@eCosCentric.com>
+
+ * cdl/i18n.cdl: Add newlib style ctype implementation.
+ CYGSEM_LIBC_I18N_PER_THREAD_MB can be inactive when no kernel.
+ * include/newlibctype.h: New file.
+ * src/newlibctype.cxx: New file.
+ * src/ctype.cxx: Don't define functions if newlib style ctype
+ chosen instead.
+
+ * src/wctomb.cxx (wctomb): Use correct thread data type.
+ * src/mbtowc.cxx (mbtowc): Ditto.
+ * src/mblen.cxx (mblen): Ditto.
+
+2003-02-24 Jonathan Larmour <jifl@eCosCentric.com>
+
+ * cdl/i18n.cdl: Fix doc link.
+
+2001-06-28 Jesper Skov <jskov@redhat.com>
+
+ * tests/i18nmb.c: fix warning.
+
+2001-06-08 Jonathan Larmour <jlarmour@redhat.com>
+
+ * src/mbtowc_jp.cxx (__mbtowc_jp): Fix nasty bug for mblen(NULL, x);
+
+ Some other cleanups across the board to the below changes before
+ checking in.
+
+2001-06-08 Jeff Johnston <jjohnstn@redhat.com>
+
+ * cdl/i18n.cdl: Added implements CYGINT_ISO_STDLIB_MULTIBYTE.
+ (CYGPKG_LIBC_I18N_LOCALES): New component
+ encompassing supported locales.
+ (CYGFUN_LIBC_I18N_LOCALE_C_JIS): New configuration
+ item to support the new "C-JIS" C/Japanese locale. Option defines
+ CYGINT_LIBC_I18N_MB_REQUIRED.
+ (CYGFUN_LIBC_I18N_LOCALE_C_SJIS): Similar except it is "C-SJIS" locale.
+ (CYGFUN_LIBC_I18N_LOCALE_C_EUCJP): Ditto except it is "C-EUCJP" locale.
+ (CYGSEM_LIBC_I18N_PER_THREAD_MB): New option that determines
+ if multibyte functions will keep state data per thread or not.
+ (CYGNUM_LIBC_I18N_MAX_LOCALE_NAME_SIZE): Changed legal_values and
+ default_value to be dependent on whether the Japanese locales
+ were supported or not.
+ (CYGPKG_LIBC_I18N_TESTS): Add multibyte test.
+ * src/locale.cxx: Moved Cyg_libc_locale_t to internal.h.
+ Changed current ctype locale to be externally accessible variable.
+ Added MB_CUR_MAX value into locale as well as pointers to mbtowc
+ and wctomb functions.
+ [CYGINT_LIBC_I18N_MB_REQUIRED]: Added __mb_cur_max external variable.
+ (all_locales)[CYGFUN_LIBC_I18N_LOCALE_C_JIS]: New "C-JIS" locale
+ added to list.
+ (all_locales)[CYGFUN_LIBC_I18N_LOCALE_C_SJIS]: New "C-SJIS"
+ locale.
+ (all_locales)[CYGFUN_LIBC_I18N_LOCALE_C_EUCJP]: New "C-EUCJP"
+ locale.
+ (setlocale)[CYGINT_LIBC_I18N_MB_REQUIRED]: Added setting of __mb_cur_max
+ when locale changes ctype category.
+ (__get_current_locale_mbtowc_fn): New function.
+ * src/mblen.cxx: New file.
+ * src/mbtowc.cxx: Ditto.
+ * src/mbstowcs.cxx: Ditto.
+ * src/wctomb.cxx: Ditto.
+ * src/wcstombs.cxx: Ditto.
+ * src/mbtowc_jp.cxx: Ditto.
+ * src/mbtowc_c.cxx: Ditto.
+ * src/internal.h: New internal header file.
+ * tests/i18nmb.c: New test case for multibyte functionality.
+
+2000-05-02 Jonathan Larmour <jlarmour@redhat.co.uk>
+
+ * New package
+ Separated original libc out into separate packages on functional
+ boundaries.
+ Header files are now managed by isoinfra package
+ Plenty of cleanups done, but no major functionality changes
+
+//===========================================================================
+// ####GPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 or (at your option) any
+// later version.
+//
+// This program 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
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the
+// Free Software Foundation, Inc., 51 Franklin Street,
+// Fifth Floor, Boston, MA 02110-1301, USA.
+// -------------------------------------------
+// ####GPLCOPYRIGHTEND####
+//===========================================================================
diff --git a/ecos/packages/language/c/libc/i18n/current/ChangeLog.libc b/ecos/packages/language/c/libc/i18n/current/ChangeLog.libc
new file mode 100644
index 0000000..8809e93
--- /dev/null
+++ b/ecos/packages/language/c/libc/i18n/current/ChangeLog.libc
@@ -0,0 +1,2735 @@
+This ChangeLog file is now obsolete. This is the original ChangeLog from when
+libc was one large package, before being separated. It is included for
+historical reasons.
+
+2000-04-05 Jesper Skov <jskov@redhat.com>
+
+ * src/time/settime.cxx:
+ * src/time/time.cxx:
+ Wallclock moved to io/.
+
+2000-03-28 John Dallaway <jld@cygnus.co.uk>
+
+ * cdl/string.cdl,
+ cdl/stdlib.cdl,
+ cdl/stdio.cdl,
+ cdl/libc.cdl:
+
+ Adjust documentation URLs.
+
+2000-03-27 Jesper Skov <jskov@redhat.com>
+
+ * src/clibincl/stream.inl (check_this): Use cyb_bool instead of bool.
+
+2000-03-06 Jesper Skov <jskov@redhat.com>
+
+ * tests/time/strftime.c (test): Adjust test to match below change.
+
+2000-03-02 Jonathan Larmour <jlarmour@redhat.co.uk>
+
+ * src/time/strftime.cxx (do_format): Make sure %m counts from
+ 1..12 rather than 0..11. Fix for case 103300
+
+2000-02-29 Jonathan Larmour <jlarmour@redhat.co.uk>
+
+ * src/stdio/output/vfnprintf.cxx: Correctly use 'n' parameter to
+ restrict length. Credit due to Andrew Lunn here as well.
+ Resolves 103057-CR-1
+
+ * tests/stdio/sprintf2.c (test):
+ Add snprintf tests to verify the correct behaviour of restricting
+ output length
+
+2000-02-10 Jesper Skov <jskov@redhat.com>
+
+ * tests/signal/signal2.c (main):
+ Also reclaim DATA_TLB_MISS vector if available.
+
+2000-01-31 Simon FitzMaurice <sdf@cygnus.co.uk>
+ * cdl/*.cdl:
+
+ Adjust help URLs in line with new doc layout.
+
+2000-01-28 Simon FitzMaurice <sdf@cygnus.co.uk>
+ * cdl/*.cdl:
+
+ Adjust help URLs in line with new doc layout.
+
+2000-01-19 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * cdl/*.cdl: Add descriptions to a number of options &c which were
+ lacking same, also tidied up other typos as noticed en passant.
+
+1999-11-11 Bart Veer <bartv@cygnus.co.uk>
+
+ * cdl/string.cdl:
+ Switch to a single boolean configuration option for code size vs.
+ speed optimization.
+
+1999-11-03 John Dallaway <jld@cygnus.co.uk>
+
+ * cdl/libc.cdl: Define tests.
+
+1999-10-19 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/output/vfnprintf.cxx: We can now remove Berkeley
+ advertising clause
+ * src/stdlib/div.cxx: ditto
+ * src/stdlib/ldiv.cxx: ditto
+ * src/stdlib/strtol.cxx: ditto
+ * src/stdlib/strtoul.cxx: ditto
+ * src/string/strtok.cxx: ditto
+
+1999-10-19 John Dallaway <jld@cygnus.co.uk>
+
+ * cdl/libc.cdl:
+
+ Define CDL options for package-specific CFLAGS.
+
+1999-10-08 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h (CYGNUM_LIBC_MAIN_THREAD_PRIORITY): Change
+ default to 10 to keep test farm happy
+ * cdl/startup.cdl: Likewise
+
+1999-10-07 John Dallaway <jld@cygnus.co.uk>
+
+ * cdl/stdlib.cdl, cdl/string.cdl:
+
+ Specify radio buttons using CDL interfaces.
+
+1999-10-06 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * cdl/stdio.cdl: Change default to /dev/ttydiag as per 1999-10-01
+ change below
+ * cdl/startup.cdl: Add new form CDL for the startup changes as
+ per 1999-10-05
+
+1999-10-05 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/libc.h: Add CYGSEM_LIBC_MAIN_STACK_FROM_SYSTEM to allow
+ the user to supply their own stack.
+ Rename CYGNUM_LIBC_MAIN_STACK_SIZE to
+ CYGNUM_LIBC_MAIN_DEFAULT_STACK_SIZE and reparent under
+ CYGSEM_LIBC_MAIN_STACK_FROM_SYSTEM
+ Add CYGNUM_LIBC_MAIN_THREAD_PRIORITY to provide main() thread
+ priority
+
+ * src/support/mainthread.cxx: Add support for user-supplied stack
+ Allow user to specify thread priority
+
+ These changes fix CR 101069
+
+1999-10-01 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h (CYGDAT_LIBC_STDIO_DEFAULT_CONSOLE): Change
+ default to /dev/ttydiag to get correct console-like behaviour
+ Also don't preclude use if haldiag package isn't included
+ (case 102065)
+
+1999-09-15 Jesper Skov <jskov@cygnus.co.uk>
+
+ * tests/signal/signal2.c (cause_fpe): Try both float and integer
+ division by zero.
+
+1999-09-10 Jesper Skov <jskov@cygnus.co.uk>
+
+ * src/stdlib/malloc.cxx (cyg_libc_get_malloc_pool): Added for
+ stress_threads test.
+
+1999-09-07 Jesper Skov <jskov@cygnus.co.uk>
+ PRs 20243, 20433
+ * tests/signal/signal2.c: Disabled test3 on ARM.
+
+1999-09-02 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * include/assert.h: Make the sense of NDEBUG correct; it is "set"
+ when NOT debugging. Fix for CR 101983-CR-1
+ See Stroustrup, "The C++ Programming Language."
+
+1999-08-18 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/fopen.cxx (_fopen): Set buffer size 0 when not
+ buffering
+ Fix for case 101868
+
+1999-08-17 John Dallaway <jld@cygnus.co.uk>
+
+ * cdl/stdlib.cdl, cdl/string.cdl:
+
+ Implement radio buttons using "FIXME radio" hack in
+ description field for now.
+
+1999-08-12 John Dallaway <jld@cygnus.co.uk>
+
+ * cdl/stdlib.cdl:
+ Take advantage of MACRONAME_ENUMVAL macros output by CDL.
+
+1999-08-06 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdio/sprintf2.c (test): Don't rely on 2.345 being exactly
+ representable in binary as a difference of 1 ulp will make it round
+ the wrong way.
+
+1999-07-16 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/input/fgetc.cxx:
+ Include outline versions of getc() (actually just a symbol alias for
+ fgetc() ) and getchar()
+ Some minor clean-ups
+ Add tracing/assertions
+
+ * src/stdio/input/fputc.cxx:
+ Likewise (except applied to putc() and putchar())
+
+ * src/stdio/common/stdioinlines.cxx (_puts):
+ Call fputc() not _fputc()
+
+ * src/clibincl/stdiosupp.hxx:
+ Remove now obsolete prototypes for _fgetc() and _fputc()
+
+ * include/stdio.h:
+ Don't bother with getc()/putc() macros any more, just call
+ them as functions
+ Include protos for getc(), putc(), getchar() and putchar() functions
+
+1999-06-21 Jesper Skov <jskov@cygnus.co.uk>
+
+ * tests/signal/signal2.c: Disabled test 3 for SH EDK7708.
+
+1999-06-11 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/stdio.h: Make FILEs array types so they won't be
+ given $gp relocations on MIPS targets
+
+1999-05-27 Jesper Skov <jskov@cygnus.co.uk>
+
+ * tests/time/ctime.c: Fixed compiler warning.
+
+1999-05-25 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/signal/signal2.c (main):
+ Update CYGPKG_HAL_TX39 -> CYGPKG_HAL_MIPS_TX39 due to recent MIPS
+ HAL changes
+ Fix for PR 20116
+
+1999-04-30 Jesper Skov <jskov@lassi.cygnus.co.uk>
+ PR 19945/19946 workaround
+ * tests/signal/signal2.c: Disabled test 3 for PowerPC sim.
+
+1999-04-19 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/time.inl:
+ Ensure all calls to cyg_libc_time_year_is_leap() are with the full
+ year, and not the direct contents of a struct tm, which are (year-1900)
+
+1999-04-19 Jesper Skov <jskov@cygnus.co.uk>
+ PR 19308, 19410, 19528
+ * tests/time/clock.c (test): Also disable data cache which may
+ affect timing when tracing/assertions are enabled.
+
+1999-04-15 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/stdiosupp.hxx:
+ Add prototype for new cyg_libc_stdio_flush_all_but() function
+
+ * src/clibincl/stream.hxx:
+ Don't include stdiosupp.hxx any more to prevent circular dependency,
+ therefore manually provide _setvbuf prototype
+ Make sure pkgconf/kernel.h is included before mutex.hxx
+
+ * src/clibincl/stream.inl (Cyg_StdioStream::set_error()):
+ Add missing unlock_me()
+
+ * src/stdio/common/fflush.cxx:
+ Separate most of code for fflush(NULL) into separate
+ cyg_libc_stdio_flush_all_but() function, which has the extra
+ capability of omitting one stream
+
+ * src/stdio/common/stderr.cxx:
+ * src/stdio/common/stdin.cxx:
+ * src/stdio/common/stdout.cxx:
+ * src/stdio/common/vsnprintf.cxx:
+ * src/stdio/common/vsscanf.cxx:
+ Add missing clibincl/stdiosupp.hxx include
+
+ * src/stdio/common/stream.cxx (Cyg_StdioStream::read()):
+ When reading, ensure we flush all output streams
+
+ * src/stdio/common/stream.cxx (Cyg_StdioStream::flush_output_unlocked):
+ Flush the device as well
+
+1999-04-15 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/streambuf.cxx (set_buffer):
+ * src/stdio/common/stdioinlines.cxx (_setbuf):
+ * src/clibincl/streambuf.inl:
+ * src/clibincl/streambuf.hxx:
+ * src/clibincl/stream.hxx (class Cyg_StdioStream):
+ * include/pkgconf/libc.h:
+ * include/stdio.inl (setbuf):
+ Fix dumb typo: BUFSIZE -> BUFSIZ
+ This fixes PR19837
+
+1999-04-15 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/stdioinlines.cxx (_setbuf):
+ * include/stdio.inl (setbuf):
+ Use _IONBF when buf==NULL, and _IOLBF otherwise.
+ Fix for PR 19836
+
+1999-04-15 John Dallaway <jld@cygnus.co.uk>
+
+ * include/pkgconf/libc.h: Tidy display string capitalization.
+
+1999-04-12 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Clarify CDL description of CYGNUM_LIBC_MALLOC_MEMPOOL_SIZE
+
+ * tests/signal/signal2.c: Try harder to generate an exception by
+ accessing a misaligned address
+ Don't handle SIGTRAP any more
+ Part of fix for PRs 19731/19607
+
+1999-04-07 Jesper Skov <jskov@cygnus.co.uk>
+ PR 19667
+ * src/support/mainthread.cxx:
+ Changed to use the new Cyg_Thread constructor.
+
+1999-04-07 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * tests/signal/signal2.c (main): Use new macro
+ HAL_VSR_SET_TO_ECOS_HANDLER if defined, to wrest control from
+ CygMon, for example, by reinstalling eCos' default VSRs for
+ exceptions that we are provoking.
+
+1999-03-29 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/signal/siginit.cxx: Include stdlib.h for exit()
+ Fix for PR 19720
+
+1999-03-29 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/time/clock.c (test): Disable instruction cache
+ Hopefully fixes PR 19308
+
+1999-03-29 Jesper Skov <jskov@cygnus.co.uk>
+
+ * tests/signal/signal2.c: Disabled test 3 for PPC as it cannot
+ trap division by zero.
+
+1999-03-26 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/support/main.cxx (main): Invoke cyg_user_start() if no kernel
+ Only sensible thing to do in our default main in a non-kernel config
+
+1999-03-25 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/time/time.c:
+ Increase MAX_TIMEOUT since the sparclite gets very close to overrunning
+ it even when working.
+ Should return -1 iff CYGSEM_LIBC_TIME_TIME_WORKING isn't defined
+ Cosmetic changes
+
+1999-03-25 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * tests/time/time.c (test): Take into account setting of
+ CYGSEM_LIBC_TIME_SETTIME_WORKING ie. does cyg_libc_time_settime()
+ work? If not, check that it returns an error.
+ This was exposed by the random combo in PR#19479.
+
+1999-03-23 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Rename CYGSEM_LIBC_RAND_SIMPLEST and CYGSEM_LIBC_RAND_KNUTH1 to
+ CYGIMP_...
+
+ Add another rand implementation CYGIMP_LIBC_RAND_SIMPLE1 which is
+ the default
+
+ Part of fix for PR 19562
+
+ * include/sys/cstartup.h:
+ Tidy and remove unnecessary dependencies
+
+ * src/stdlib/rand.cxx:
+ Rename algorithms from CYGSEM_... to CYGIMP_...
+ Add new "simple1" algorithm
+
+ * tests/ctype/ctype.c:
+ Tidy
+
+ * tests/stdlib/rand3.c:
+ Fix so that 0..RAND_MAX is split evenly over buckets, which it wasn't
+ before
+ Deal with case of RAND_MAX not being divisible by NUM_BUCKETS
+ exactly
+ Increase TEST_LENGTH to 200000 to provide more representative sample
+ Add CYG_TEST_INFO output to help ensure it doesn't time out
+ Tidy
+
+ * tests/stdlib/rand4.c:
+ Only fail if more than _two_ thirds (rather than one third) match.
+ This is because half would match for a perfectly random distribution
+ This is the rest of the fix for PR 19562
+ Cosmetic changes
+
+1999-03-22 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * src/support/mainthread.cxx (CYGNUM_LIBC_MAIN_STACK_SIZE):
+ Use CYGNUM_HAL_STACK_SIZE_TYPICAL for the stack size instead of
+ CYGNUM_HAL_MINIMUM_STACK_SIZE.
+
+1999-03-22 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/PKGconf.mak: Add -Wno-format when building strftime otherwise
+ it generates warnings for things that we do want to test (null
+ string, and %y format)
+
+1999-03-19 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h (CYGNUM_LIBC_TIME_DST_DEFAULT_STATE):
+ Put brackets back round negative number since sdf says the config
+ tool is fixed now (PR 19537)
+
+ Add new CYGSEM_LIBC_RAND_SIMPLEST and CYGSEM_LIBC_RAND_KNUTH1
+ options for different rand() algorithms in a so far failed attempt
+ to fix PR 19562
+
+ * src/stdlib/rand.cxx:
+ Add new optional algorithm from Knuth vol.2
+
+ * tests/stdlib/rand4.c:
+ Some tidies
+ Don't run test when using simplest algorithm
+
+ * tests/signal/signal2.c (main):
+ Don't try to make an FPE on tx39 - its possible to detect but requires
+ too much HAL work to be sensible
+
+1999-03-18 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/signal/siginit.cxx (cyg_libc_signals_hwexcept_handler):
+ Use HAL_ENABLE_INTERRUPTS() rather than kernel to enable interrupts
+
+1999-03-18 Mark Galassi <rosalia@cygnus.com>
+
+ * tests/PKGconf.mak (TESTS): added rand4 compilation.
+
+ * tests/stdlib/rand4.c: added this test for periodicity in the
+ least significant bit of rand().
+
+1999-03-18 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h: Remove CYGFUN_LIBC_TIME_POSIX dependency
+ on CYGPKG_LIBC_STDIO
+
+ * src/stdlib/itoa.cxx:
+ New file to convert integers to ascii
+
+ * include/stdlib.h:
+ Add proto for new cyg_libc_itoa() function
+
+ * include/time.inl:
+ Rework __asctime_r() to use memcpy() and cyg_libc_itoa() rather than
+ sprintf()
+
+ * src/PKGconf.mak:
+ Build stdlib/itoa.cxx
+
+ The above changes fix PR 19448
+
+1999-03-17 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/time.h: Add #define of __time_t_defined to placate newlib
+ if it is used by accident. This is just a temporary workaround though.
+
+1999-03-16 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * src/PKGconf.mak: Add compile option to step around ARM compiler bug.
+
+1999-03-16 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h (CYGNUM_LIBC_TIME_DST_DEFAULT_STATE):
+ Don't use parentheses for now
+
+ * src/stdio/common/stream.cxx (refill_read_buffer):
+ Silence bogus compiler warning
+
+1999-03-16 Jesper Skov <jskov@cygnus.co.uk>
+
+ * tests/signal/signal2.c (main): Enable SIGSEGV test for
+ i386/Linux.
+
+
+1999-03-15 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/signal/siginit.cxx (cyg_libc_signals_hwexcept_handler):
+ Only enable interrupts if they were disabled
+
+ * include/sys/timeutil.h:
+ * src/time/timeutil.cxx:
+ Add FIX ME line as a reminder that the workaround there can go away
+ in future
+
+ * include/pkgconf/libc.h:
+ Add proper define for CYGSEM_LIBC_EXIT_CALLS_FFLUSH
+ Put brackets round negative CYGNUM_LIBC_TIME_DST_DEFAULT_STATE define
+ Fix run time typo
+
+ * include/time.inl (__localtime_r):
+ Include sys/timeutil.h before this to get
+ cyg_libc_time_normalize_structtm()
+
+1999-03-12 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * include/sys/timeutil.h:
+ * src/time/timeutil.cxx: Remove 'const' from char arrays since
+ this fails [silently] on ARM when -fwritable-strings (PR19440)
+
+1999-03-12 Jesper Skov <jskov@cygnus.co.uk>
+
+ * tests/signal/signal2.c (main): Compiler warnings fix was
+ slightly broken.
+
+1999-03-12 Jesper Skov <jskov@cygnus.co.uk>
+ PR 19473
+ * tests/signal/signal2.c (main):
+ Disabling SIGTRAP handling on i386/Linux is not a good idea.
+1999-03-11 Jesper Skov <jskov@cygnus.co.uk>
+ PR 19473
+ * tests/signal/signal2.c:
+ Added compiler warnings fix.
+ Added N/A handling for i386/Linux.
+
+1999-03-10 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * include/pkgconf/libc.h: Force "haldiag" device to be present.
+ 'asctime' and friends need 'stdio' as well.
+
+ * include/time.inl: Fix syntax error on difftime() declaration.
+
+1999-03-08 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * src/clibincl/stream.hxx: <cyg/infra/cyg_ass.h> needed for this file.
+
+ * src/stdio/common/vsscanf.cxx (str_read): Fix problem with string
+ pointer [created by merge with new I/O package].
+
+1999-03-05 John Dallaway <jld@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Add legal values for CYGNUM_LIBC_TIME_STD_DEFAULT_OFFSET
+ and CYGNUM_LIBC_TIME_DST_DEFAULT_OFFSET.
+
+1999-03-05 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/time.inl (cyg_libc_time_year_is_leap):
+ Fix bug with modulo year 400
+ Fix typo in asctime_r macro
+ Fix gmtime_r, and mktime as a result of testing
+
+ * tests/time/asctime.c, tests/time/ctime.c, tests/time/gmtime.c,
+ tests/time/gmtime.c, tests/time/localtime.c, tests/time/mktime.c,
+ tests/time/strftime.c, tests/time/time.c:
+ New tests
+
+ * tests/PKGconf.mak:
+ Build above new tests
+
+ * include/pkgconf/libc.h:
+ Add reminder FIX ME about extra config option
+
+ * src/time/strftime.cxx:
+ Fix %w and %Y parameters as a result of testing
+
+ * src/time/timeutil.cxx:
+ Fix cyg_libc_time_normalize_structtm() as a result of testing
+ of mktime()
+
+ * tests/time/clock.c:
+ Reformat, remove obsolete bits and tidy
+
+ * include/time.h:
+ Add Cyg_libc_time_dst type and new functions
+ cyg_libc_time_setzoneoffsets(), cyg_libc_time_setdst(),
+ cyg_libc_time_getzoneoffsets(), cyg_libc_time_settime()
+
+ * include/time.inl:
+ Implement the above functions. This allows us to adjust for timezone
+ diffences and set the time.
+ Change localtime() to adjust for STD/DST
+ Change mktime() to adjust for STD/DST
+
+ * include/libc.h:
+ Add new config options CYGSEM_LIBC_TIME_SETTIME_WORKING
+ and component CYGPKG_LIBC_TIME_ZONES containing options
+ CYGNUM_LIBC_TIME_DST_DEFAULT_STATE,
+ CYGNUM_LIBC_TIME_STD_DEFAULT_OFFSET,
+ CYGNUM_LIBC_TIME_DST_DEFAULT_OFFSET
+
+ * src/strftime.cxx:
+ Adjust handling of %Z to _not_ deal with STD/DST
+
+ * src/time/settime.cxx:
+ New file to implement cyg_libc_time_settime()
+
+ * src/PKGconf.mak:
+ Build settime.cxx
+
+ * src/time/timeutil.cxx:
+ Supply outline versions of cyg_libc_time_setzoneoffsets(),
+ cyg_libc_time_setdst(), and cyg_libc_time_getzoneoffsets()
+ Add variables for STD/DST state
+ Some minor comment changes
+
+ * include/errno.h:
+ Use CYGBLD_ATTRIB_CONST instead of __attribute__((const)) directly
+
+ * include/signal.h:
+ Change format of function comment headers
+
+ * include/signal.inl:
+ Restrict errno.h inclusion to when its actually used
+ Fix a spelling typo
+
+ * include/stdlib.h:
+ Add CYGBLD_ATTRIB_CONST to abs, div, labs, ldiv
+
+ * include/stdlib.inl:
+ Reformat and tidy
+ Include new versions of div and ldiv which are more portable and
+ are cleanly rewritten so aren't covered by the BSD licence, which
+ is now removed
+
+ * src/stdlib/div.cxx, src/stdlib/ldiv.cxx:
+ Non-inline, non-BSD and portable versions of the new versions of div
+ and ldiv from stdlib.inl
+
+ * include/time.h:
+ Much reformatting, tidying and improving comments
+ Change CLOCKS_PER_SEC from 1000 to 1000000
+ Add new functions asctime_r, ctime_r, gmtime_r, localtime_r, clock,
+ difftime, mktime, time, asctime, ctime, gmtime, localtime, strftime
+ Include new time.inl file
+
+ * include/pkgconf/libc.h:
+ Add new options CYGSEM_LIBC_TIME_CLOCK_WORKING,
+ CYGSEM_LIBC_TIME_TIME_WORKING, CYGFUN_LIBC_TIME_POSIX,
+ CYGNUM_LIBC_TIME_CLOCK_TRACE_LEVEL, CYGIMP_LIBC_TIME_ASCTIME_INLINE,
+ CYGIMP_LIBC_TIME_CTIME_INLINE, CYGIMP_LIBC_TIME_DIFFTIME_INLINE,
+ CYGIMP_LIBC_TIME_GMTIME_INLINE, CYGIMP_LIBC_TIME_LOCALTIME_INLINE,
+ CYGIMP_LIBC_TIME_MKTIME_INLINE, CYGIMP_LIBC_TIME_ASCTIME_R_INLINE,
+ CYGIMP_LIBC_TIME_CTIME_R_INLINE, CYGIMP_LIBC_TIME_GMTIME_R_INLINE,
+ and CYGIMP_LIBC_TIME_LOCALTIME_R_INLINE
+
+ * time/asctime.cxx, time/asctime_r.cxx, time/clock.cxx, time/ctime.cxx,
+ time/ctime_r.cxx, time/difftime.cxx, time/gmtime.cxx,
+ time/gmtime_r.cxx, time/localtime.cxx, time/localtime_r.cxx,
+ time/mktime.cxx, time/strftime.cxx, time/time.cxx, time/timeutil.cxx,
+ include/time.inl:
+ New files to implement the new time functions. Many of them simply
+ provide the outline definitions, but the real body of the function
+ comes from time.inl
+
+ * src/PKGconf.mak:
+ Build new .cxx files
+
+ * src/clibincl/stdlibsupp.hxx:
+ Remove _div and _ldiv prototypes since they're no longer needed
+
+ * src/clibincl/timesupp.hxx:
+ Delete as its now obsolete
+
+ * src/time/clock.cxx:
+ Use new CYGSEM_LIBC_TIME_CLOCK_WORKING option to control whether it
+ just returns (clock_t)-1 or not.
+ Much reformatting and tidying
+ Change real imlpementation from _clock to __clock
+ Use CYGBLD_ATTRIB_WEAK_ALIAS now
+
+ * tests/stdlib/div.c, tests/stdlib/ldiv.c:
+ Add some extra tests for handling of negative numbers
+ Reformat and tidy a bit, including removing the test for CYGPKG_LIBC
+ since its now always defined if the test is to be compiled
+
+ * tests/time/clock.c:
+ Remove duplication CYG_TEST_INFO line
+ Check if unimplemented using "(clock_t)-1" and not just "-1"
+
+1999-03-04 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdlib/system.cxx:
+ Make sure system() is a weak alias for __system()
+
+ * include/pkgconf/libc.h: Rework CDL description for
+ CYGDAT_LIBC_STDIO_DEFAULT_CONSOLE and change its default to
+ "/dev/haldiag"
+
+ * src/stdio/common/stream.cxx:
+ Check that dev is valid when passed to stream constructor
+
+ * src/stdio/common/stdiosupp.cxx:
+ Tidy
+
+ * src/support/mainthread.cxx: Make this depend on
+ CYGSEM_LIBC_STARTUP_MAIN_THREAD rather than just CYGPKG_KERNEL
+
+1999-03-04 Gary Thomas <gthomas@cygnus.co.uk>
+
+ Merged in changes from 'ecos-new_devs-19990216-branch'
+
+ (1999-02-24 Jonathan Larmour <jlarmour@cygnus.co.uk>)
+
+ * src/stdio/common/stream.cxx:
+ Add "fix me" comments and remove a couple of commented out lines
+
+ * src/stdio/common/vsnprintf.cxx:
+ * src/stdio/common/vsscanf.cxx:
+ Revert to using pointer to string for private data, not just string.
+ This preserves the state across multiple calls
+
+ (1999-02-24 Gary Thomas <gthomas@cygnus.co.uk>)
+
+ * src/stdio/common/vsscanf.cxx:
+ * src/stdio/common/vsnprintf.cxx:
+ * src/stdio/common/stream.cxx:
+ * src/stdio/common/stdiosupp.cxx:
+ * src/stdio/common/fopen.cxx:
+ * src/clibincl/stream.inl:
+ * src/clibincl/stream.hxx:
+ * src/clibincl/stdiosupp.hxx:
+ * include/pkgconf/libc.h: Changes for new I/O system.
+
+1999-03-03 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdlib/atexit.c: Forgot to config atexit test for
+ CYGFUN_LIBC_ATEXIT option
+
+ * include/pkgconf/libc.h:
+ Require CYGVAR_KERNEL_THREADS_DATA for CYGSEM_LIBC_PER_THREAD_STRTOK
+ This fixes PR 19362
+ Require CYGPKG_KERNEL for thread safe streams
+ Also don't need "requires CYGPKG_KERNEL" for per-thread rand and errno
+ if we already require a finer granularity kernel option
+
+1999-02-25 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h: Fix CYGNUM_LIBC_MAIN_STACK_SIZE by changing
+ CYGPKG_LIBC_STARTUP_MAIN_THREAD -> CYGSEM_LIBC_STARTUP_MAIN_THREAD
+ Fix for PR 19304
+
+1999-02-23 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdlib/system.cxx: Add to implement trivial system() call
+ * include/stdlib.h: Add system() prototype
+ * src/PKGconf.mak: Build system.cxx
+
+ * tests/ctype/ctype.c, tests/i18n/setlocale.c, tests/setjmp/setjmp.c,
+ tests/signal/signal1.c, tests/signal/signal2.c,
+ tests/stdio/sprintf1.c, tests/stdio/sprintf2.c, tests/stdio/sscanf.c,
+ tests/stdio/stdiooutput.c, tests/stdlib/atexit.c,
+ tests/stdlib/atoi.c, tests/stdlib/atol.c, tests/stdlib/bsearch.c,
+ tests/stdlib/div.c, tests/stdlib/getenv.c, tests/stdlib/labs.c,
+ tests/stdlib/ldiv.c, tests/stdlib/malloc1.c, tests/stdlib/malloc2.c,
+ tests/stdlib/malloc3.c, tests/stdlib/qsort.c, tests/stdlib/rand1.c,
+ tests/stdlib/rand2.c, tests/stdlib/rand3.c, tests/stdlib/realloc.c,
+ tests/stdlib/srand.c, tests/stdlib/strtol.c, tests/stdlib/strtoul.c,
+ tests/string/memchr.c, tests/string/memcmp1.c,
+ tests/string/memcmp2.c, tests/string/memcpy1.c,
+ tests/string/memcpy2.c, tests/string/memmove1.c,
+ tests/string/memmove2.c, tests/string/memset.c,
+ tests/string/strcat1.c, tests/string/strcat2.c,
+ tests/string/strchr.c, tests/string/strcmp1.c,
+ tests/string/strcmp2.c, tests/string/strcoll1.c,
+ tests/string/strcpy1.c, tests/string/strcpy2.c,
+ tests/string/strcspn.c, tests/string/strlen.c,
+ tests/string/strncat1.c, tests/string/strncat2.c,
+ tests/string/strncpy1.c, tests/string/strncpy2.c,
+ tests/string/strpbrk.c, tests/string/strrchr.c,
+ tests/string/strspn.c, tests/string/strstr.c, tests/string/strtok.c,
+ tests/string/strxfrm1.c, tests/string/strxfrm2.c, tests/time/clock.c:
+ Use CYG_TEST_NA() macro for non-applicable test configurations
+
+1999-02-20 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/signal.h:
+ * include/signal.inl:
+ * src/signal/raise.cxx:
+ * src/signal/siginit.cxx:
+ * src/signal/signal.cxx:
+ * tests/signal/signal1.c
+ * tests/signal/signal2.c:
+ New files to implement ISO standard signals
+
+ * src/PKGconf.mak (TESTS):
+ * tests/PKGconf.mak (TESTS):
+ Update to build new files above
+
+ * include/stdlib.h:
+ * src/clibincl/stdlibsupp.hxx:
+ Comment and QA changes (including giving better names to some types)
+
+ * include/libc.h:
+ Add new configuration options for signals
+ Add new CYGSEM_LIBC_STARTUP_MAIN_THREAD option
+ Add a note to CYGNUM_LIBC_MAIN_STACK_SIZE option that it may be
+ overriden by HAL
+ Add new CYGFUN_LIBC_ATEXIT option and move ...ATEXIT_HANDLERS under
+ it
+ Add new CYGSEM_LIBC_EXIT_CALLS_FFLUSH option
+ Require CYGSEM_LIBC_STARTUP_MAIN_THREAD for "Invoke default static
+ constructors" option
+
+ * src/stdlib/atexit.cxx:
+ Support above CYGFUN_LIBC_ATEXIT and QA changes
+
+ * src/stdlib/exit.cxx:
+ Support for above new libc.h options, and some QA changes
+
+ * src/support/cstartup.cxx:
+ Add support for new CYGSEM_LIBC_STARTUP_MAIN_THREAD option
+
+ * src/support/mainthread.cxx:
+ Override main stack size if the HAL has a minimum
+
+ * src/string/strncpy.cxx:
+ Use improved algorithm for aligned copies - imported from newlib
+ QA changes
+
+ * src/stdlib/abort.cxx:
+ Support raise(SIGABRT), and some QA
+
+ * include/errno.h:
+ Add const attribute
+
+ * tests/stdlib/abs.c:
+ QA improvements
+
+1999-02-04 Jesper Skov <jskov@cygnus.co.uk>
+
+ * src/support/cstartup.cxx: Only define cyg_libc_main_thread when
+ the kernel is around.
+
+1999-02-01 Jesper Skov <jskov@cygnus.co.uk>
+
+ * tests/time/clock.c: Joined the two test/NOP checks into
+ one.
+ Increased tolerance in attempt to fix PRs 18737,18787,18846.
+ Fixed typo.
+
+1999-01-28 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/string/strtok.cxx:
+ * src/stdlib/rand.cxx:
+ Include <pkgconf/kernel.h> if we use kernel header files
+
+1999-01-25 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdio/sscanf.c (test):
+ CYGSEM_LIBC_STDIO_PRINTF_FLOATING_POINT should be
+ CYGSEM_LIBC_STDIO_SCANF_FLOATING_POINT
+ Fix for PR 18786
+
+ * src/string/strtok.cxx:
+ * src/stdio/common/stdiofiles.cxx:
+ * src/errno/errno.cxx:
+ * src/stdlib/rand.cxx:
+ Give mutex protection objects a libc constructor priority
+
+ * src/support/invokemain.cxx:
+ Add prototype for cyg_hal_invoke_constructors()
+
+ * src/support/mainthread.cxx:
+ Give cyg_libc_dummy_constructor_obj a libc constructor priority,
+ and make its class have a public constructor
+
+ * src/stdio/common/stderr.cxx:
+ * src/stdio/common/stdout.cxx:
+ * src/stdio/common/stdin.cxx:
+ Give cyg_libc_stdio_stdin/out/err static objects a libc constructor
+ priority
+
+ * src/clibincl/streambuf.hxx (class Cyg_StdioStreamBuffer):
+ * src/clibincl/stream.hxx (class Cyg_StdioStream):
+ Remove private copy constructor. Needed to make prioritised
+ static constructors work. Fix for PR 18898
+
+1999-01-22 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/errno/errno.cxx:
+ Include pkgconf/kernel.h otherwise it fails with per-thread errno
+ enabled
+
+ * include/pkgconf/libc.h:
+ Enable per-thread errno by default since that is what POSIX would
+ want
+
+ * tests/time/clock.c (test):
+ Placate compiler by initializing clock_first/second/third anyway,
+ even though they won't be in practice. This is only a test program
+ so adding an extra instruction doesn't matter.
+
+ * src/i18n/locale.cxx (_setlocale):
+ Placate compiler, since it is dumb, by nesting, not serializing, if's
+ This is an idempotent change, but screws up the formatting :-(.
+
+ * src/string/strpbrk.cxx (_strpbrk):
+ Change while loop to do loop to placate compiler. It'll even save an
+ instruction too (wow!)
+
+1999-01-22 John Dallaway <jld@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Add closing curly brace to CYGPKG_LIBC_STRING_STRTOK definition
+
+1999-01-21 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/errno.h:
+ Tidy up and add to header description
+ Change cyg_get_errno_p() to cyg_libc_get_errno_p()
+ Remove ifdef CYGPKG_LIBC
+
+ * include/sys/file_if.h:
+ Remove - move contents to stdio.h
+
+ * include/stdio.h:
+ Tidy up header description
+ Move FILE typedef here from sys/file_if.h
+ SEEK_SET, SEEK_CUR, SEEK_END defined to 0, 1, 2 respectively
+ for backwards compatibility with old UNIX
+ Change definitions of stdin/out/err to be addresses of FILE
+ globals - even though they're actually Cyg_StdioStream it'll work
+
+ * include/pkgconf/libc.h:
+ Make CYGPRI_LIBC_WEAK et al macros depend on new ones in infra
+ Reorganise trace options under the individual components they are
+ associated with.
+ Reorganise thread-safety options under the individual components
+ they are associated with.
+ Add new CYGSEM_LIBC_INVOKE_DEFAULT_STATIC_CONSTRUCTORS option
+ Misc. reformatting
+ Remove dependency on pkgconf/kernel.h - Configuration Tool will
+ generate check macros anyway.
+ Remove CYGPKG_LIBC_TRACE, CYGFUN_LIBC_strtok, CYGPKG_LIBC_RAND
+ options
+ Tidy up description header
+
+ * src/clibincl/clibdata.hxx:
+ * src/clibincl/clibdata.inl:
+ * src/support/clibdata.cxx:
+ Remove and instead rely on each component to initialise its own data
+
+ * src/clibincl/stdiofiles.hxx, src/clibincl/stdiofiles.inl:
+ New files to contain global file list and lock (if applicable).
+ Implemented as class with member access functions
+
+ * src/errno/errno.cxx:
+ Reorganise with self-contained per-thread data, if applicable
+ Remove ifdef CYGPKG_LIBC
+ Tidy up description header
+ Rename cyg_get_errno_p() to cyg_libc_get_errno_p()
+
+ * src/stdio/common/fclose.cxx:
+ * src/stdio/common/fflush.cxx:
+ * src/stdio/common/fopen.cxx:
+ * src/stdio/common/freopen.cxx:
+ Remove ifdef CYGPKG_LIBC
+ Use new global file access method from stdiofiles.hxx
+ Tidy up description header
+ Use new CYGBLD_ATTRIB_WEAK_ALIAS
+ Access errno "normally" rather than clibdata way
+
+ * src/stdio/common/stdin.cxx:
+ * src/stdio/common/stdout.cxx
+ * src/stdio/common/stderr.cxx:
+ New files. Implement Cyg_StdioStream objects for each stream. In
+ separate self-contained files so using one doesn't bring in the
+ others
+
+ * src/stdio/common/stdiofiles.cxx:
+ New file. Implements global files array and lock
+
+ * src/stdlib/_exit.cxx:
+ Tidy up description header
+ Remove ifdef CYGPKG_LIBC
+ Use infra CYGBLD* macros
+
+ * src/stdlib/malloc.cxx:
+ Tidy up description header
+ Remove ifdef CYGPKG_LIBC
+ Add pkgconf/kernel.h now that pkgconf/libc.h doesn't have it
+ Use infra CYGBLD* macros
+ Make pool visible externally with weak attribute and new name
+ cyg_libc_malloc_memorypool
+
+ * src/stdlib/rand.cxx:
+ * src/stdlib/strtok.cxx:
+ Reorganise with self-contained per-thread data, if applicable
+ Remove ifdef CYGPKG_LIBC
+ Tidy up description header
+ Use infra CYGBLD* macros
+
+ * src/support/cstartup.cxx:
+ Split into smaller files to make selective linking work better,
+ fix i386 port problem and make GDB happy
+
+ * src/support/environ.cxx:
+ * src/support/invokemain.cxx:
+ * src/support/main.cxx:
+ * src/support/mainthread.cxx:
+ New files from bits of the old cstartup.cxx
+ Add support for CYGSEM_HAL_STOP_CONSTRUCTORS_ON_FLAG
+
+ * src/PKGconf.mak:
+ Update to reflect file additions/deletion
+
+ * tests/stdlib/rand1.c:
+ * tests/stdlib/rand2.c:
+ * tests/stdlib/rand3.c:
+ * tests/stdlib/srand.c:
+ Make conform to coding standards
+ Remove ifdef CYGPKG_LIBC_RAND
+ Tidy up description header
+
+ * tests/string/strtok.c:
+ Make conform to coding standards
+ Remove ifdef CYGFUN_LIBC_strtok
+ Tidy up description header
+
+1999-01-15 Mark Galassi <rosalia@cygnus.com>
+
+ * tests/stdlib/getenv.c (main): added tests for the case in which
+ the user does not supply environ and in which the user supplies a
+ NULL environ.
+
+1999-01-15 Jesper Skov <jskov@cygnus.co.uk>
+
+ * src/support/cstartup.cxx: Added workaround for weak aliasing
+ problem in i386 gcc.
+
+
+1999-01-15 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * include/pkgconf/libc.h (CYGNUM_LIBC_MAIN_STACK_SIZE):
+ (CYGNUM_LIBC_MALLOC_MEMPOOL_SIZE): Change defaults to be
+ more reasonable on small systems.
+
+1999-01-04 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/support/clibdata.cxx:
+ Minor bug with environ not being initialised correctly by
+ default
+
+1998-12-24 Bart Veer <bartv@cygnus.co.uk>
+
+ * src/clibincl/stream.inl (Cyg_StdioStream):
+ check_this() member functions should now be const
+
+1998-12-22 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/string/memchr.cxx (_memchr):
+ treat search value parameter to memchr as an unsigned byte,
+ not a signed int - copied fix from newlib PR 18471
+
+1998-12-21 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdlib/realloc.c:
+ * tests/stdlib/malloc3.c:
+ * tests/stdlib/malloc2.c:
+ Warning cleanup
+
+1998-12-14 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdlib/malloc2.c, tests/stdlib/malloc3.c,
+ tests/stdlib/realloc.c:
+ Only run these tests when we have a coalescing memory allocator
+
+1998-12-14 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/stream.cxx:
+ Only check buffer init success if buffering
+
+ * src/stdio/common/streambuf.cxx (set_buffer):
+ Check for diff of requested size against buffer_size, not
+ get_buffer_size(), since this may return -1, which won't be
+ equal to size, and will cause malloc to be called
+
+1998-12-01 Jesper Skov <jskov@cygnus.co.uk>
+
+ * tests/stdlib/getenv.c (main): Don't declare variables when they
+ are not used.
+
+Thu Nov 26 17:59:12 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/string/strncpy1.c:
+ Fix off-by-one error since it called my_strcmp() and not
+ my_strncmp(), which meant in included the trailing NULL when it
+ shouldn't have.
+
+1998-11-26 Jesper Skov <jskov@cygnus.co.uk>
+
+ * src/stdlib/qsort.cxx (_qsort):
+ * src/stdlib/rand.cxx (_srand):
+ Changed CYG_REPORT_FUNCNAMETYPE to CYG_REPORT_FUNCNAME in void
+ functions.
+
+Mon Oct 26 18:49:00 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/support/cstartup.cxx (cyg_libc_dummy_main):
+ Silence compiler warning with cast of char * to CYG_ADDRWORD
+
+Wed Oct 28 17:31:21 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/time/clock.cxx (_clock):
+ Reorder scaling expression as it was both incorrect and risked
+ overflow.
+ Fix for PR 18076
+
+Mon Oct 19 14:40:06 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/stdio.h (EOF):
+ Change from -64 to (-1), to allow broken code to work :-/
+ Also change other negative defines to be within parentheses
+
+1998-10-19 Mark Galassi <rosalia@cygnus.com>
+
+ * include/pkgconf/libc.h: updated the doc URL
+
+Thu Oct 15 21:33:44 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/clibdata.hxx:
+ Only include kernel thread headers when we're in thread-safe mode
+
+ * src/time/clock.cxx:
+ Only include kernel clock headers if there's a kernel with the
+ right functionality available
+
+ * tests/time/clock.c:
+ Remove unnecessary inclusion of <pkgconf/kernel.h>
+
+ Above changes are required for PR 17229
+
+Wed Oct 14 16:38:55 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/clibdata.hxx, src/clibincl/clibdata.inl:
+ Conditionalise inclusion of clibincl/stdiosupp.hxx and
+ clibincl/stream.hxx. Tidying up PR 17502
+
+Wed Oct 14 14:08:56 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Rename CYGPKG_LIBC_STRING_OPTIMISATIONS to
+ CYGPKG_LIBC_STRING_OPTIMIZATIONS to make it truely merkin.
+
+Tue Oct 13 19:34:41 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h (CYGDAT_LIBC_ARGUMENTS):
+ Add a default argv[0] of "" as many programs assume argc>0
+ The standard allows argv[0] to be "" if the program name
+ is not available
+
+1998-09-26 Bart Veer <bartv@cygnus.co.uk>
+
+ * src/clibincl/stdiosupp.hxx:
+ PR 17502: this header file now does nothing if the stdio option
+ is disabled completely. This is the same behaviour is
+ clibincl/stream.hxx, although arguably the #ifdef protection
+ should happen wherever the header file is #include'd rather than
+ in the header file itself.
+
+ * src/clibincl/clibdata.hxx:
+ PR 17502: this header file still #include's internal stdio-related
+ header files and references the FILE structure, even if stdio is
+ disabled. There were some #ifdef's for CYGPKG_LIBC_STDIO already.
+ One more has been added for _fopen() and _fclose().
+
+1998-09-25 Bart Veer <bartv@cygnus.co.uk>
+
+ * src/clibincl/streambuf.inl (Cyg_StdioStreamBuffer):
+ PR 17487: Reorder the calls to initialize member fields, to
+ eliminate a compiler warning.
+
+Fri Sep 25 19:04:29 1998 Jonathan Larmour <jlarmour@peshwari.cygnus.co.uk>
+
+ * src/errno/errno.cxx, src/stdlib/bsearch.cxx,
+ src/stdlib/qsort.cxx, src/stdlib/rand.cxx, src/string/strtok.cxx,
+ src/time/clock.cxx:
+ Only define tracing variable and tracing level macro when
+ the relevant tracing level config options are set. Otherwise
+ keep the tracing level fixed at 0
+ Fix for PR 17476
+
+ * include/pkgconf/libc.h:
+ Define trace levels only if parent CYGPKG_LIBC_TRACE is defined
+ for consistency with Configuration Tool
+
+
+Fri Sep 25 17:24:45 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/stdioinlines.cxx:
+ Make definition of vscanf() dependent on CYGFUN_LIBC_STDIO_ungetc
+ otherwise _vfscanf() won't be compiled. This therefore would
+ cause a link fail iff selective linking is not enabled.
+ Fix for PR 17455
+
+Fri Sep 25 17:23:17 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdlib/rand.cxx:
+ Make compilation dependent on CYGPKG_LIBC_RAND
+ Fix for PR 17473
+
+ * tests/stdlib/srand.c:
+ Make definition of dummy test pass conditional on CYGPKG_LIBC_RAND
+ not being defined, as well as CYGPKG_LIBC
+ Caused compilation failure when testing PR 17473 fix
+
+Mon Sep 21 17:11:04 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdio/sscanf.c:
+ Make sscanf test conditional on CYGFUN_LIBC_STDIO_ungetc since
+ _vfscanf() only gets compiled if this is defined
+ Fix for PR 17346
+
+1998-09-20 Mark Galassi <rosalia@cygnus.com>
+
+ * include/pkgconf/libc.h: updated CDL doc strings.
+
+Fri Sep 18 22:18:47 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/clibdata.inl (get_errno_p):
+ Rather than this function only being available in thread-safe mode,
+ instead make what it returns be either the per-thread errno, or
+ global errno depending on the configuration.
+ Include <errno.h> (conditionally) to support this change
+
+Wed Sep 16 11:20:31 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Remove "fix me" comment which I forgot to remove before
+
+Tue Sep 15 19:27:57 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Updated descriptions and a few other minor things after review.
+ Notably though, the NDEBUG config option has been removed
+
+1998-09-15 Bart Veer <bartv@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ PR 17201: removed dependency on CYGPKG_KERNEL in the option
+ CYGNUM_LIBC_MAIN_STACK_SIZE, since the actual dependencies cannot
+ be expressed sensibly in the current system.
+
+1998-09-11 Bart Veer <bartv@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Sorting out dependencies for error package.
+
+1998-09-10 Mark Galassi <rosalia@cygnus.com>
+
+ * include/pkgconf/libc.h: started adding doc fields to the
+ cdl_package data, as a pilot for now.
+
+Wed Sep 9 17:41:23 1998 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Add option CYGIMP_LIBC_MALLOC_CXX_DELETE_CALLS_FREE to explicitly
+ control whether the empty delete functions (currently) in
+ kernel/.../common/delete.cxx are enabled; controls code bloat, see
+ the comments in delete.cxx.
+
+Fri Sep 4 16:43:38 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdio/stdiooutput.c:
+ Add a default CYG_TEST_PASS() to make sure the test infra doesn't
+ complain.
+ Also remove the unused string functionsa
+
+Fri Sep 4 15:43:48 1998 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * src/stdlib/exit.cxx (__libc_exit):
+ * src/stdlib/_exit.cxx (__libc__exit):
+ * src/stdlib/malloc.cxx (_free):
+ * src/stdlib/abort.cxx (abort):
+ * src/support/cstartup.cxx (invoke_main):
+ Tracing system asserted cos it was being called incorrectly; these
+ are void functions so you shouldn't give a type to the function
+ reporting call.
+
+Fri Sep 4 15:03:10 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Fix CYGDAT_LIBC_STDIO_DEFAULT_CONSOLE description to refer to
+ the table.cxx file, not table.h
+
+Fri Sep 4 14:38:52 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Add description for CYGDAT_LIBC_STDIO_DEFAULT_CONSOLE since
+ Proven won't be making any changes to the device driver
+ implementation after all.
+ Fix for PR 17148
+
+ * src/clibincl/stream.inl (set_position):
+ Remove "fix me" line. It is obvious that this will have to change
+ with a filesystem interface
+ Fix for PR 17147
+
+ * src/stdio/common/freopen.cxx:
+ Remove "fix me" - I know about this issue
+ Fix for PR 17145
+
+ * src/stdio/common/stream.cxx (read):
+ Remove "fix me" and change to use memcpy
+ Fix for PR 17144
+
+Fri Sep 4 14:36:47 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdio/stdiooutput.c:
+ Actually add it this time!
+
+Fri Sep 4 13:48:13 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdio/stdiooutput.c:
+ Add new tests for misc stdio output functions
+
+ * tests/PKGconf.mak:
+ Build stdiooutput.c test
+
+Fri Sep 4 12:52:10 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/stream.inl (write_byte):
+ Remove bogus assert
+
+ * tests/stdlib/getenv.c (main):
+ Check whether str is NULL before doing a strcmp()
+
+ * tests/stdio/sprintf2.c (main):
+ Reformat to 76 columns
+
+Fri Sep 4 02:10:54 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/stream.hxx, src/stdio/common/stream.cxx:
+ Add new peek_byte method to Cyg_StdioStream
+
+ * src/stdio/input/vfscanf.cxx (_vfscanf):
+ Fix up buffer access to work with new peek_byte method above
+ Fix for PR 16954
+
+Thu Sep 3 19:40:11 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdlib/rand1.c, tests/stdlib/rand2.c,
+ tests/stdlib/rand3.c:
+ Add extra check for CYGPKG_LIBC_RAND to decide whether the test
+ is applicable or not
+
+ * tests/stdlib/rand2.c (test):
+ Use CYGNUM_LIBC_RAND_SEED for default seed, not 1
+
+ * tests/string/strtok.c:
+ Add extra check for CYGFUN_LIBC_strtok to decide whether the
+ test is applicable or not
+
+Wed Sep 2 19:11:40 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/input/fread.cxx, src/stdio/output/fwrite.cxx:
+ Add fread() and fwrite() functions
+
+ * src/PKGconf.mak:
+ Build fread.cxx and fwrite.cxx from above
+
+ * src/stdio/common/stream.cxx:
+ Reformat to 76 columns
+ In write(), move initialisation of *bytes_written to start
+ In read(), move initialisation of *bytes_read to start
+
+ * include/stdio.h:
+ Reformat to 76 columns
+
+ Replace all references to the ANSI
+ standard to instead by the ISO C standard
+
+ Add commented argument names for "documentation"
+
+ Add fread() and fwrite() prototypes
+
+ * src/clibincl/stdiosupp.hxx:
+ Copy the above changes from stdio.h, and add _fread() and _fwrite()
+ prototypes
+
+ * src/stdio/output/fputs.cxx, src/stdio/input/fgets.cxx:
+ Reformat to 76 columns
+
+Wed Sep 2 15:41:15 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/input/vfscanf.cxx:
+ Reformat to 76 columns
+
+Wed Sep 2 14:46:18 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/fflush.cxx:
+ Use trylock_me() instead of lock_me(), and loop to prevent
+ deadlocks
+
+ * src/clibincl/stream.hxx, src/clibincl/stream.inl:
+ Add trylock_me() method
+
+ * src/clibincl/stream.hxx, src/clibincl/stream.inl,
+ src/stdio/common/fflush.cxx:
+ Reformat to 76 columns
+
+Wed Sep 2 12:24:27 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Change 0x7fff to 0x7fffffff. Oops!
+ give main stack size option a legal_values field
+ Undefine tracing by default
+ Add some more description in the header
+
+Tue Sep 1 20:02:07 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/i18n/setlocale.c (cyg_package_start):
+ Fix typo - extra "x" for no reason at all! :-)
+
+Tue Sep 1 19:44:58 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/i18n/locale.cxx:
+ Fix bug in find_locale_data() that miscalculated size of
+ all_locales
+
+ Make find_locale_data() match the locale "" and add some
+ other things in _setlocale() to ensure that "C" gets returned
+ when the default locale "" is passed.
+
+ Only check the locale pointer when it is non-NULL
+
+ * tests/i18n/setlocale.c:
+ New tests for setlocale()
+
+ * tests/PKGconf.mak:
+ Update to build setlocale.c test
+
+ * src/support/cstartup.cxx:
+ Don't actually call system default main() "main" otherwise GDB
+ gets confused and thinks its the entry point. Instead make a weak
+ alias and call the real function something different.
+
+Tue Sep 1 18:31:42 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/i18n/locale.cxx (_setlocale):
+ Fix tracing macro name and remove "str maybe used before
+ initialised" warning
+
+ * tests/stdlib/qsort.c:
+ Correct file description header
+
+Tue Sep 1 17:04:32 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/locale.h, src/clibincl/i18nsupp.hxx, src/i18n/locale.cxx:
+ New files to add support for locales as defined by the ISO C
+ standard. i.e. setlocale() and localeconv() functions and some
+ other bits
+
+ * include/pkgconf/libc.h:
+ Add CYGNUM_LIBC_MAX_LOCALE_NAME_SIZE config option for locale
+ support
+
+ * src/PKGconf.mak:
+ build locale.cxx
+
+ * include/errno.h, src/clibincl/ctypesupp.hxx:
+ Tidy up to 76 columns
+
+Tue Sep 1 00:24:22 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Move environment-related options from stdlib into new
+ CYGPKG_LIBC_STARTUP component. Also add options for main()'s
+ arguments (CYGPKG_LIBC_ARGUMENTS), main()'s default stack size
+ (CYGNUM_LIBC_MAIN_STACK_SIZE), number of atexit handlers
+ (CYGNUM_LIBC_ATEXIT_HANDLERS), and whether _exit() stops the
+ system (CYGSEM_LIBC_EXIT_STOPS_SYSTEM).
+
+ * src/clibincl/stdlibsupp.hxx:
+ Fix a few comment bugs, and add new
+ cyg_libc_invoke_atexit_handlers() function prototype
+
+ * src/stdlib/_exit.cxx, src/stdlib/atexit.cxx, src/stdlib/exit.cxx:
+ Implement exit(), atexit() and _exit() correctly now. Also
+ includes cyg_libc_invoke_atexit_handlers() in atexit.cxx. Now
+ we get the correct behaviour of atexit(), and exit() invokes the
+ atexit handlers and fflushs all the stdio streams. Add plenty of
+ tracing of asserts too.
+
+ * src/support/cstartup.cxx:
+ Make main_thread object an exported global. Allow user-settable
+ arguments. Add MUCH more tracing and asserts. Improve comments.
+ Tidy up to 76 columns
+
+ * tests/stdlib/atexit.c:
+ Add simple test for atexit() and it calling registered functions
+
+ * tests/PKGconf.mak:
+ Build atexit.c test
+
+Mon Aug 31 18:54:48 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdlib/getenv.cxx, tests/stdlib/getenv.c:
+ Add support for getenv(), and some tests to ensure it works
+
+ * src/PKGconf.mak, tests/PKGconf.mak:
+ Update to include getenv.cxx and getenv.c test
+
+ * src/clibincl/clibdata.hxx:
+ remove prototype for environ - we expect files needing it to
+ define it themselves
+
+ * src/support/clibdata.cxx:
+ Tidy up to 76 columns and add definition of char **environ, but
+ with a configurable initialiser (see libc.h below)
+
+ * tests/stdlib/abs.c (main):
+ Tidy up to 76 columns
+
+ * src/stdlib/malloc.cxx:
+ Tidy up to 76 columns and remove warning for undefined _memcpy()
+ by changing to memcpy(), and casting away signedness
+
+ * include/pkgconf/libc.h:
+ Add CYGPKG_LIBC_ENVIRONMENT and CYGDAT_LIBC_DEFAULT_ENVIRONMENT
+ configuration options
+
+ * include/pkgconf/libc.h, src/clibincl/clibdata.hxx:
+ Tidy up to 76 columns
+
+ * include/stdlib.h:
+ Add getenv() prototype and tidy up to 76 columns
+
+ * src/clibincl/stdlibsupp.hxx:
+ Add _getenv() prototype
+
+Mon Aug 31 13:37:08 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdlib/malloc.cxx:
+ Add realloc()
+
+ * tests/stdlib/realloc.c:
+ Add this file to test new realloc() functionality
+
+ * tests/PKGconf.mak:
+ Build realloc test
+
+ * tests/stdlib/malloc3.c (main), tests/stdlib/malloc2.c (main),
+ tests/stdlib/malloc1.c (main):
+ Conditionalise local vars to prevent warnings
+
+ * tests/stdlib/malloc3.c (fill_with_data):
+ Move '{' into "verb" line
+
+ * include/pkgconf/libc.h:
+ Require infra tracing support to allow tracing
+
+ * include/stdlib.h:
+ Add realloc()
+
+ * src/clibincl/stdlibsupp.hxx:
+ Update the commented argument names from stdlib.h, including realloc()
+
+1998-08-28 Bart Veer <bartv@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ * src/clibincl/clibdata.hxx, src/time/clock.cxx:
+
+ Updated for new kernel configuration option symbol names
+
+Fri Aug 28 19:18:25 1998 Hugo Tyson <hmt@cygnus.co.uk>
+
+ Changed the entry below to sat "tx39" instead of "mn10300".
+ It's been a long week.
+
+Fri Aug 28 18:59:20 1998 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * src/support/cstartup.cxx: Add a weakly named main to allow the
+ default configuration to link on the tx39 which has no
+ scalextric linking yet. The static Cyg_Thread main_thread object
+ below continues to exist, though unreferenced, so all its
+ descendants must exist too.
+
+Fri Aug 28 08:54:29 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/stdlib.h:
+ Add commented argument names Add exit(), and atexit(). And move
+ these along with abort() and _exit() to a new section.
+
+ * src/stdlib/atexit.cxx, src/stdlib/exit.cxx:
+ Add trivial versions of atexit() and exit()
+
+ * include/pkgconf/libc.h:
+ Add CYGNUM_LIBC_MAIN_STACK_SIZE config option
+
+ * include/sys/cstartup.h, src/support/cstartup.cxx, src/PKGconf.mak:
+ New files to provide a new function cyg_iso_c_support(), which
+ invokes main "correctly".
+
+ * tests/ctype/ctype.c, tests/setjmp/setjmp.c, tests/stdio/sprintf1.c,
+ tests/stdio/sprintf2.c, tests/stdio/sscanf.c, tests/stdlib/abs.c,
+ tests/stdlib/atoi.c, tests/stdlib/atol.c, tests/stdlib/bsearch.c,
+ tests/stdlib/div.c, tests/stdlib/labs.c, tests/stdlib/ldiv.c,
+ tests/stdlib/malloc1.c, tests/stdlib/malloc2.c,
+ tests/stdlib/malloc3.c, tests/stdlib/qsort.c, tests/stdlib/rand1.c,
+ tests/stdlib/rand2.c, tests/stdlib/rand3.c, tests/stdlib/srand.c,
+ tests/stdlib/strtol.c, tests/stdlib/strtoul.c,
+ tests/string/memchr.c, tests/string/memcmp1.c,
+ tests/string/memcmp2.c, tests/string/memcpy1.c,
+ tests/string/memcpy2.c, tests/string/memmove1.c,
+ tests/string/memmove2.c, tests/string/memset.c,
+ tests/string/strcat1.c, tests/string/strcat2.c,
+ tests/string/strchr.c, tests/string/strcmp1.c,
+ tests/string/strcmp2.c, tests/string/strcoll1.c,
+ tests/string/strcoll2.c, tests/string/strcpy1.c,
+ tests/string/strcpy2.c, tests/string/strcspn.c,
+ tests/string/strlen.c, tests/string/strncat1.c,
+ tests/string/strncat2.c, tests/string/strncpy1.c,
+ tests/string/strncpy2.c, tests/string/strpbrk.c,
+ tests/string/strrchr.c, tests/string/strspn.c,
+ tests/string/strstr.c, tests/string/strtok.c,
+ tests/string/strxfrm1.c, tests/string/strxfrm2.c,
+ tests/time/clock.c:
+
+ Modify all tests to use new startup mechanism, and cyg_iso_c_start()
+
+Fri Aug 28 00:29:38 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/stream.cxx:
+ Add #ifdef CYGSEM_LIBC_STDIO_WANT_BUFFERED_IO around all accesses to
+ flags.last_buffer_op_was_read. Fix for PR 16997
+
+Thu Aug 27 01:12:42 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/sys/file_if.h:
+ Fix comments and remove cyg_get_file_star()
+
+Wed Aug 26 20:24:32 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Remove #define CYGPKG_LIBC is that is meant to live in
+ <pkgconf/system.h> after all
+
+Wed Aug 26 19:39:23 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ More fixes to CDL stuff to make it work better, and look better on
+ the screen
+
+Tue Aug 25 20:21:41 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Make some fixes after running the ConfigTool
+
+Tue Aug 25 16:46:28 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h (CYGNUM_LIBC_STDIO_BUFSIZE):
+ Fix typo of CYGNUM_LIBC_STDIO_BUFSIZE
+
+Tue Aug 25 15:10:57 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Tidy up CDL stuff a bit more, prior to checking it actually works.
+
+Tue Aug 25 11:38:52 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdlib/malloc2.c (main):
+ Prevent calls to CYG_TEST_STILL_ALIVE for now
+
+Tue Aug 25 05:39:28 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Change cosmetic paragraph alignment.
+
+Tue Aug 25 03:11:34 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/support/clibdata.cxx:
+ Make stderr initialise with buffer size 0.
+ For PR 16955
+
+Mon Aug 24 17:38:46 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ First pass at CDL-ifying the C library configuration. Currently
+ deliberately disabled as there a few outstanding issues.
+
+Mon Aug 24 16:14:22 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/output/vfnprintf.cxx (_vfnprintf):
+ clear up warning for unused argument
+
+ * tests/stdlib/malloc2.c (NUM_ITERATIONS):
+ Lower to 100 from 50000 so it won't take too long under the simulator
+
+Thu Aug 20 17:48:43 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdlib/malloc.cxx:
+ Remove now unnecessary inclusion of kernel/ktypes.h
+
+Wed Aug 19 19:19:14 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdio/sprintf1.c, tests/stdio/sprintf2.c,
+ tests/stdio/sscanf.c, tests/stdlib/atoi.c, tests/stdlib/atol.c,
+ tests/stdlib/rand1.c, tests/stdlib/rand2.c, tests/stdlib/rand3.c,
+ tests/stdlib/srand.c, tests/stdlib/strtol.c,
+ tests/stdlib/strtoul.c, tests/string/strtok.c,
+ tests/time/clock.c:
+ Add parameters to "main()" to silence warnings
+
+Wed Aug 19 18:52:59 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/stream.cxx (refill_read_buffer):
+ Put conditional error check into same #ifdef and if as what was being
+ checked in the first place!
+
+Wed Aug 19 18:49:19 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/stream.inl:
+ Reorder Cyg_StdioStream::check_this() to be first to silence
+ warnings
+
+Tue Aug 18 16:10:03 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * ecc/language/c/libc/current/src/clibincl/clibdata.hxx,
+ ecc/language/c/libc/current/src/errno/errno.cxx,
+ ecc/language/c/libc/current/src/stdio/common/fopen.cxx,
+ ecc/language/c/libc/current/src/stdlib/rand.cxx,
+ ecc/language/c/libc/current/src/string/strtok.cxx:
+ Rename CYGIMP_LIBC_INTERNAL_DATA_PREAMBLE,
+ CYGIMP_LIBC_INTERNAL_DATA_ALLOC_CHECK_PREAMBLE,
+ CYGVAR_LIBC_INTERNAL_DATA, and
+ CYGIMP_LIBC_INTERNAL_DATA_CHECK to all have CYGPRI_ prefix instead
+ as recommended by the config name rules
+
+
+Tue Aug 18 14:31:19 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/setvbuf.cxx (_setvbuf):
+ Rename variable names in assert line, otherwise doesn't build
+ with asserts on!
+
+Sun Aug 16 18:15:12 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/input/vfscanf.cxx (_vfscanf):
+ Fix some bugs, although there are some left to fix still. Unrelated
+ to the rest of the checkins, so I will check the partial fix in now.
+
+ * src/clibincl/stream.hxx, src/clibincl/stream.inl,
+ src/stdio/common/stream.cxx:
+ Add parameters to constructor to allow more things to be done at
+ construction time.
+
+ Now we have "new", remove separate "construct" method
+
+ Add more documentation on constructor
+
+ As requested by code review, where possible, move boolean flags
+ into separate packed bitfield structure for space efficiency
+
+ Make readbuf_char be usable all the time rather than when configured
+ not to be buffering, as it is also needed for non-buffered mode i.e.
+ _IONBF
+
+ * src/stdio/common/fopen.cxx:
+ Change to use new method of construction from above, using new
+
+ Use thread-specific data, rather than global. And so change errnos
+ to access errno entry specifically
+
+ Make process_mode() check for append mode too
+
+ Reformat for coding standards to have { in same line as "verb"
+
+ * src/stdio/common/setvbuf.cxx:
+
+ Change to cope with different way of dealing with buffering policy
+ flags etc. in Cyg_StdioStream
+
+ * src/stdio/common/vsnprintf.cxx, src/stdio/common/vsscanf.cxx,
+ src/support/clibdata.cxx:
+ Change construction of streams to use new parameters added above,
+ and change to use _IONBF mode for string stdio functions,
+ otherwise its a waste of memory. And use _IONBF for stderr as the
+ ISO standard tells us to!
+
+ Reformat for coding standards to have { in same line as "verb"
+
+ * src/clibincl/streambuf.hxx, src/clibincl/streambuf.inl:
+ Change constructor so that it can be set with default size and
+ dynamic buffer (if applicable)
+
+ Fix minor bug in destructor - should only call free when allocated
+ dynamically
+
+ Change get_buffer_size to return -1 if the buffer was not allowed
+ to be set up
+
+ * src/stdio/common/streambuf.cxx:
+ Remove unnecessary stdio.h include and add extra comment to whether
+ to free bit in set_buffer()
+
+ * src/stdio/common/freopen.cxx:
+ Change @@@ to standard fix me string
+
+ * src/stdio/output/fputc.cxx:
+ Remove unnecessary "written" variable
+
+Thu Aug 13 15:37:28 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdlib/_exit.cxx:
+ Included use of "fix me" line to ensure this is discussed before
+ release
+
+ * include/stdlib.h, src/stdlib/abort.cxx, src/PKGconf.mak:
+ Add abort.cxx to implement abort(), albeit naively
+
+Thu Jul 30 18:03:09 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/vsscanf.cxx (_vsscanf),
+ src/stdio/common/vsnprintf.cxx (_vsnprintf):
+ Fix initialiser of pseudo string device table that didn't get updated
+ when the table changed (Bad proven, no biscuit).
+
+ * src/clibincl/stream.inl (~Cyg_StdioStream):
+ Move invalidation of magic_validity_word to after unlock_me(),
+ otherwise it always fails!
+
+Tue Jul 28 21:29:53 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/clibdata.hxx:
+ Shorten over-long lines
+
+Tue Jul 28 20:28:23 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/stream.hxx (class Cyg_StdioStream),
+ src/clibincl/stream.inl, src/stdio/common/stream.cxx:
+ Clarify some comments and get the CYGDBG_DEFINE_CHECK_THIS and
+ CYG_ASSERTCLASS stuff going
+
+ * src/clibincl/stream.inl:
+ Put '{'s on same line as "action" as per coding standards
+ Shorten over-long lines
+
+Tue Jul 28 15:31:06 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/streambuf.inl, src/stdio/common/streambuf.cxx:
+ Move set_buffer() from streambuf.inl to new file streambuf.cxx
+
+ * src/PKGconf.mak (COMPILE):
+ Build new file streambuf.cxx
+
+ * src/clibincl/streambuf.hxx (class Cyg_StdioStreamBuffer):
+ Add METHODS comment
+
+ * src/stdio/common/stream.cxx:
+ Put '{'s on same line as "action" as per coding standards
+ Shorten over-long lines
+
+Tue Jul 28 00:26:36 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/stdlib.inl, src/stdio/input/vfscanf.cxx,
+ src/stdio/output/vfnprintf.cxx, src/stdlib/div.cxx,
+ src/stdlib/ldiv.cxx, src/stdlib/qsort.cxx, src/stdlib/strtol.cxx,
+ src/stdlib/strtoul.cxx, src/string/strtok.cxx:
+
+ Include proper Berkeley license inline in the file, rather than
+ referring to an external file
+
+ * doc/COPYING.UCB:
+ Remove, now that it isn't referred to any more
+
+Mon Jul 27 23:34:26 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/ctype.h, include/ctype.inl, include/errno.h,
+ include/stdio.h, include/stdio.inl, include/stdlib.h,
+ include/stdlib.inl, include/string.h, include/string.inl,
+ include/time.h, include/sys/file_if.h, src/PKGconf.mak,
+ src/clibincl/clibdata.hxx, src/clibincl/clibdata.inl,
+ src/clibincl/ctypesupp.hxx, src/clibincl/stdiosupp.hxx,
+ src/clibincl/stream.hxx, src/clibincl/streambuf.hxx,
+ src/clibincl/streambuf.inl, src/clibincl/stringsupp.hxx,
+ src/clibincl/timesupp.hxx, src/ctype/isalnum.cxx,
+ src/ctype/isalpha.cxx, src/ctype/iscntrl.cxx,
+ src/ctype/isdigit.cxx, src/ctype/isgraph.cxx,
+ src/ctype/islower.cxx, src/ctype/isprint.cxx,
+ src/ctype/ispunct.cxx, src/ctype/isspace.cxx,
+ src/ctype/isupper.cxx, src/ctype/isxdigit.cxx,
+ src/ctype/tolower.cxx, src/ctype/toupper.cxx,
+ src/errno/errno.cxx, src/stdio/common/snprintf.cxx,
+ src/stdio/common/sprintf.cxx, src/stdio/common/sscanf.cxx,
+ src/stdio/common/stdioinlines.cxx, src/stdio/common/stream.cxx,
+ src/stdio/common/ungetc.cxx, src/stdio/common/vsnprintf.cxx,
+ src/stdio/common/vsscanf.cxx, src/stdio/input/fgetc.cxx,
+ src/stdio/input/fgets.cxx, src/stdio/input/fscanf.cxx,
+ src/stdio/input/gets.cxx, src/stdio/input/scanf.cxx,
+ src/stdio/output/fnprintf.cxx, src/stdio/output/fprintf.cxx,
+ src/stdio/output/fputc.cxx, src/stdio/output/fputs.cxx,
+ src/stdio/output/printf.cxx, src/stdlib/_exit.cxx,
+ src/stdlib/abs.cxx, src/stdlib/atof.cxx, src/stdlib/atoi.cxx,
+ src/stdlib/atol.cxx, src/stdlib/div.cxx, src/stdlib/labs.cxx,
+ src/stdlib/ldiv.cxx, src/stdlib/rand.cxx, src/stdlib/strtod.cxx,
+ src/string/memchr.cxx, src/string/memcmp.cxx,
+ src/string/memmove.cxx, src/string/strcat.cxx,
+ src/string/strchr.cxx, src/string/strcmp.cxx,
+ src/string/strcoll.cxx, src/string/strcpy.cxx,
+ src/string/strcspn.cxx, src/string/strlen.cxx,
+ src/string/strncat.cxx, src/string/strncmp.cxx,
+ src/string/strncpy.cxx, src/string/strpbrk.cxx,
+ src/string/strrchr.cxx, src/string/strspn.cxx,
+ src/string/strstr.cxx, src/string/strsuppt.cxx,
+ src/string/strtok.cxx, src/string/strxfrm.cxx,
+ src/support/clibdata.cxx, src/time/clock.cxx:
+ Untabify
+
+Mon Jul 27 23:14:18 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/errno/errno.cxx, src/stdio/input/vfscanf.cxx,
+ src/stdio/output/vfnprintf.cxx, src/stdlib/strtol.cxx,
+ src/stdlib/strtoul.cxx, src/stdlib/malloc.cxx, src/stdlib/qsort.cxx,
+ tests/ctype/ctype.c, tests/stdlib/rand3.c, tests/stdlib/malloc3.c:
+ Remove all mentions of "register" in variable declarations. Also
+ untabify where needed
+
+ * src/stdlib/bsearch.cxx:
+ Untabify this too
+
+
+Mon Jul 27 22:18:51 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/output/fputc.cxx (_fputc):
+ Replace call to stream write() with call to write_byte()
+
+ * src/clibincl/stream.inl (write_byte):
+ Add asserts for stream write() returning odd values for how much has
+ been written
+
+ (bytes_available_to_read):
+ Remove "register" def for variable declaration
+
+Mon Jul 27 22:06:22 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/stdiosupp.cxx:
+ Remove #if 0'd cyg_get_file_star() and unnecessary pseudo string
+ device definition
+
+Mon Jul 27 21:57:25 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h, src/support/clibdata.cxx:
+ Change CYGXXX_LIBC_STDIO_DEFAULT_CONSOLE to
+ CYGDAT_LIBC_STDIO_DEFAULT_CONSOLE
+
+Mon Jul 27 21:49:23 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/clibdata.hxx, src/clibincl/clibdata.inl,
+ src/clibincl/ctypesupp.hxx, src/clibincl/setjmpsupp.hxx,
+ src/clibincl/stdiosupp.hxx, src/clibincl/stdlibsupp.hxx,
+ src/clibincl/stream.hxx, src/clibincl/stream.inl,
+ src/clibincl/streambuf.hxx, src/clibincl/streambuf.inl,
+ src/clibincl/stringsupp.hxx, src/clibincl/timesupp.hxx:
+
+ Change CYGONCE_LIBC_*_{HXX,INL} to CYGONCE_LIBC_CLIBINCL_*_{HXX,INL}
+
+Mon Jul 27 21:34:05 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Change #define XXXXX 1 to #define XXXXX where applicable as per code
+ review
+
+ Also remove obsolete CYGIMP_LIBC_THREAD_START_SUSPENDS_SELF
+
+Mon Jul 27 19:42:27 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/fopen.cxx (_fopen):
+ Use #ifdef, not #if for config options
+
+Mon Jul 27 15:01:51 BST 1998 Chris Provenzano <proven@cygnus.com>
+
+ * src/stdio/common/stream.cxx, src/stdio/common/vsnprintf.cxx
+ * src/stdio/common/vsscanf.cxx:
+ Fixes to compile with the new Cyg_IORB field names.
+
+Thu Jul 9 03:40:21 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdlib/atoi.c, tests/stdlib/atol.c,
+ tests/stdlib/strtol.c, tests/stdlib/strtoul.c:
+ Adjust starting of tests to possibly start scheduler since
+ strtol/stroul rely on errno, which may be a per-thread variable
+
+Thu Jul 9 03:06:25 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/stream.hxx, src/clibincl/stream.inl,
+ src/stdio/common/stream.cxx, src/stdio/common/setvbuf.cxx:
+ Consolidate read and write buffers into single buffer, as it should
+ have been all along
+
+ * src/clibincl/streambuf.hxx, src/clibincl/streambuf.inl:
+ Add drain_buffer() method to speed up the case when we want the
+ buffer completely emptied
+
+Tue Jul 7 21:26:33 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdio/sprintf1.c:
+ Add a couple of new tests that check that very long strings work too
+
+Wed Jul 1 19:52:39 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/stream.hxx, src/clibincl/streambuf.hxx:
+ Do not permit copy constructors
+
+ * src/clibincl/stream.inl, src/stdio/common/fclose.cxx:
+ Make sure we use #ifdef and not #if
+
+ * src/clibincl/streambuf.inl:
+ Use member initialisation list rather than explicit initialisation to
+ reduce warnings
+
+Wed Jul 1 19:17:55 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h and all files using config options:
+ Rename configuration defines to make them more standard
+
+Thu Jun 25 20:09:30 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/string/strcat.cxx:
+ Add parentheses on check to silence warning
+ (Verified by proven)
+
+Thu Jun 25 19:30:01 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdlib/malloc.cxx:
+ Make sure that the malloc pool is initialised before other things
+ can use it. This is done with the hot new constructor ordering
+ feature.
+
+Thu Jun 25 18:27:03 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/input/vfscanf.cxx:
+ Remove bogus ifdef if floating point is _not_ wanted
+
+Thu Jun 25 17:31:42 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/string/strtok.cxx:
+ Fix argument checking to allow first argument of NULL
+
+Thu Jun 25 04:18:50 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/clibdata.inl (get_strtok_last_p):
+ Remove bogus assertion
+
+ * src/stdlib/malloc.cxx:
+ Got sense of alignment check assertion the wrong way round, so negate
+ it
+
+Thu Jun 25 03:56:35 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/string/strxfrm.cxx:
+ Fix argument checking assertions with legitimate nulls here too
+
+Thu Jun 25 03:46:32 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdlib/strtoul.cxx, src/stdlib/strtol.cxx:
+ Fix argument checking assertions to cope with legitimate nulls
+
+Wed Jun 24 09:01:45 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdio/sprintf1.c:
+ Remove extraneous info messages
+
+Wed Jun 24 05:59:17 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdio/sprintf1.c, tests/stdio/sprintf2.c, tests/stdio/sscanf.c,
+ tests/stdlib/rand1.c, tests/stdlib/rand2.c, tests/stdlib/rand3.c,
+ tests/stdlib/srand.c:
+
+ Change large automatic arrays to static arrays to prevent overuse
+ of a potentially small stack
+
+Wed Jun 24 05:45:28 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdio/sprintf1.c, tests/stdio/sprintf2.c, tests/stdio/sscanf.c,
+ tests/stdlib/rand1.c, tests/stdlib/rand2.c, tests/stdlib/rand3.c,
+ tests/stdlib/srand.c, tests/string/strtok.c, tests/time/clock.c:
+
+ Increase thread stack size from 4K to 32K as in some cases it was
+ too small.
+
+
+Tue Jun 23 20:12:31 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdio/sscanf.c:
+ Add extra tests, including floating point conversion testing
+
+Tue Jun 23 17:01:06 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/string/strtok.cxx:
+ Make sure this is only compiled if CYGFUN_LIBC_strtok is defined
+
+Tue Jun 23 06:10:13 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ add some comments - that's all
+
+ * src/stdio/common/stream.cxx:
+ fix case in refill_read_buffer() for what to do when there's nothing
+ left. Now return EAGAIN
+
+ * src/stdio/common/vsscanf.cxx, src/stdio/input/vfscanf.cxx:
+ Get sscanf working properly and passing tests. Also make sure it
+ ignores FP when its not configured
+
+ * src/stdlib/atof.cxx:
+ Only compile at all if strtod() is present
+
+
+Mon Jun 22 19:13:42 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/clibdata.hxx, src/clibincl/clibdata.inl:
+ Conditionalise strtok_last and rand_seed better
+
+Mon Jun 22 14:14:12 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdlib/malloc3.c:
+ Add test for checking that mallocing and freeing repeatedly works
+
+ * tests/PKGconf.mak:
+ Update to reflect addition of the above
+
+Mon Jun 22 13:09:33 BST 1998 Chris Provenzano <proven@cygnus.com>
+
+ * src/stdio/common/fopen.cxx
+ * src/stdio/common/stream.cxx
+ * src/stdio/common/vsnprintf.cxx
+ * src/stdio/common/vsscanf.cxx
+ Include cyg/devs/common/iorb.h instead of iorb.hxx
+
+ * src/stdio/common/stream.cxx
+ Use read_blocking and write_blocking instead of just read and
+ write when accessing devices through the virtual device table.
+
+Sun Jun 21 18:19:13 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/stdioinlines.cxx:
+ Propagate change of return code handling for puts from stdio.inl
+ into here
+
+ * src/stdio/output/fputc.cxx:
+ make sure the right type is used for output - byte not int
+
+ * src/support/clibdata.cxx:
+ Fix #define config mistook. #endif was in wrong place
+
+Sun Jun 21 16:11:04 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/clibdata.hxx, src/clibincl/clibdata.inl:
+ Allow explicit construction to get around a bug when
+ dynamically allocating per-thread structure
+
+Sun Jun 21 16:02:51 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/ctype/ctype.c, tests/setjmp/setjmp.c, tests/stdio/sprintf1.c,
+ tests/stdio/sprintf2.c, tests/stdio/sscanf.c, tests/stdlib/abs.c,
+ tests/stdlib/atoi.c, tests/stdlib/atol.c, tests/stdlib/bsearch.c,
+ tests/stdlib/div.c, tests/stdlib/labs.c, tests/stdlib/ldiv.c,
+ tests/stdlib/malloc1.c, tests/stdlib/malloc2.c, tests/stdlib/qsort.c,
+ tests/stdlib/rand1.c, tests/stdlib/rand2.c, tests/stdlib/rand3.c,
+ tests/stdlib/srand.c, tests/stdlib/strtol.c, tests/stdlib/strtoul.c,
+ tests/string/memchr.c, tests/string/memcmp1.c,
+ tests/string/memcmp2.c, tests/string/memcpy1.c,
+ tests/string/memcpy2.c, tests/string/memmove1.c,
+ tests/string/memmove2.c, tests/string/memset.c,
+ tests/string/strcat1.c, tests/string/strcat2.c,
+ tests/string/strchr.c, tests/string/strcmp1.c,
+ tests/string/strcmp2.c, tests/string/strcoll1.c,
+ tests/string/strcpy1.c, tests/string/strcpy2.c,
+ tests/string/strcspn.c, tests/string/strlen.c,
+ tests/string/strncat1.c, tests/string/strncat2.c,
+ tests/string/strncpy1.c, tests/string/strncpy2.c,
+ tests/string/strpbrk.c, tests/string/strrchr.c,
+ tests/string/strspn.c, tests/string/strstr.c, tests/string/strtok.c,
+ tests/string/strxfrm1.c, tests/string/strxfrm2.c, tests/time/clock.c:
+
+ Update tests to "do the right thing" with all configuration settings
+
+
+Sun Jun 21 04:54:14 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/setjmp/setjmp.c:
+ I have to be careful not to use setjmp() in a way not exactly
+ defined by the standard, so make sure I do, and add a comment
+ documenting these ways.
+
+ Also ensure this test does the right thing in all configurations
+
+Sun Jun 21 04:38:15 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Add extra checks for invalid configurations
+ Also make default for thread safety OFF
+
+ * src/clibincl/clibdata.inl:
+ Adjust indentation
+
+ * src/stdio/output/vfnprintf.cxx:
+ Make printf of -0.0 floating point do the right thing
+
+Sun Jun 21 04:28:00 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/snprintf.cxx, src/stdio/common/sprintf.cxx,
+ src/stdio/common/sscanf.cxx, src/stdio/input/fscanf.cxx,
+ src/stdio/input/scanf.cxx, src/stdio/output/fnprintf.cxx,
+ src/stdio/output/fprintf.cxx, src/stdio/output/printf.cxx:
+
+ Had to remove inline functions with varargs. Which means separating
+ out each function from stdioinlines.cxx into a separate file, as they
+ no longer belong there. So all the above files were created.
+
+ * include/stdio.inl, src/PKGconf.mak,
+ src/stdio/common/stdioinlines.cxx:
+ Changed to take account of the above
+
+
+Sun Jun 21 03:58:42 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdio/sprintf1.c, tests/stdio/sprintf2.c:
+ Update with floating-point tests. Also make sure they DTRT in all
+ configurations
+
+Fri Jun 19 19:33:06 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/support/clibdata.cxx:
+ accidentally initialised stdin/out/err twice
+
+Fri Jun 19 19:09:29 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/support/clibdata.cxx:
+ Another typo
+
+Fri Jun 19 18:59:07 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/support/clibdata.cxx:
+ Missing #endif typo
+
+Fri Jun 19 18:51:42 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/support/clibdata.cxx:
+ Fix initialisation of static data members. Unsure how it worked at
+ all before!
+
+Fri Jun 19 18:01:01 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/stdio.inl:
+ puts should check whether fputs returns non-negative, rather than
+ non-zero
+
+Fri Jun 19 17:22:52 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/clibdata.inl:
+ Make inclusion of get_errno_p conditional on thread-safety
+
+Wed Jun 17 10:55:32 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/input/vfscanf.cxx:
+ Add weak alias of vfscanf() to _vfscanf()
+
+Wed Jun 17 09:10:41 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/fflush.cxx:
+ Initialise err to silence compiler warning
+
+Wed Jun 17 08:59:20 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * Most important is the addition of floating point support in
+ src/stdio/output/vfnprintf.cxx and src/stdio/input/vfscanf.cxx. This
+ also required the addition of atof() and strtod() in stdlib which is
+ definitely no bad thing! Other than that...
+
+ * Fix a whole bunch of stuff I messed up first time round. Also the
+ sprintf and sscanf tests are included again.
+
+Tue Jun 16 16:38:02 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/PKGconf.mak:
+ Typo with not putting comment character at the beginning. Sigh.
+
+Tue Jun 16 14:53:09 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/PKGconf.mak:
+ Forgot to (temporarily) remove fputs test for now
+
+Mon Jun 15 20:40:03 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ Everything to do with stdio has almost completely changed, so there's
+ not much point documenting individual changes.
+
+Mon Jun 15 18:36:01 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdlib/malloc2.c:
+ Stop it moaning quite as much when it fails by making it exit sooner
+
+ * tests/time/clock.c :
+ This isn't a compound testcase
+
+Thu Jun 11 17:59:13 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/assert.h
+ Reverse sense of NDEBUG ifdef, that was left in accidentally due
+ to testing
+
+Thu Jun 11 04:58:08 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/errno.h, include/string.h, src/clibincl/stringsupp.hxx:
+ Modify as I've now added an "error" package which defines the error
+ codes and strerror()
+
+ * src/errno/strerror.cxx:
+ Moved to new error package and thus deleted
+
+Wed Jun 10 18:37:37 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/assert.h:
+ create this header and add assert() function
+
+Wed Jun 10 16:23:57 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/stdlib.h, src/clibincl/stdlibsupp.hxx, src/stdlib/malloc.cxx:
+ Add malloc(), calloc() and free() functions
+
+ * include/pkgconf/libc.h:
+ Add malloc memory pool size option
+
+ * tests/stdlib/malloc1.c, tests/stdlib/malloc2.c:
+ new tests for malloc
+
+ * src/PKGconf.mak, tests/PKGconf.mak:
+ Update for new files
+
+Wed Jun 10 15:06:16 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/setjmp/setjmp.c:
+ Add another test
+
+Tue Jun 9 18:20:31 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Add some setjmp config's and a macro for the noreturn attribute
+
+ * include/setjmp.h, include/setjmp.inl, src/clibincl/setjmpsupp.hxx,
+ src/setjmp/longjmp.cxx, tests/setjmp/setjmp.c:
+ Added to implement and test setjmp() and longjmp()
+
+ * src/PKGconf.mak, tests/PKGconf.mak:
+ Update for newly added files
+
+Thu Jun 4 01:29:18 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/string/memchr.cxx, src/string/memcmp.cxx, src/string/strcat.cxx,
+ src/string/strchr.cxx, src/string/strcmp.cxx, src/string/strcpy.cxx,
+ src/string/strlen.cxx, src/string/strncat.cxx,
+ src/string/strncmp.cxx, src/string/strncpy.cxx:
+ Rename CYGIMP_LIBC_PREFER_SMALL_TO_FAST to
+ CYGIMP_LIBC_STRING_PREFER_SMALL_TO_FAST
+
+ Also use slower but smaller version when __OPTIMIZE_SIZE__ is
+ defined (which comes from using gcc -Os)
+
+Fri May 29 16:15:04 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/ctype.inl, src/ctype/isxdigit.cxx:
+ Fix bug that numerals aren't considered hex digits
+
+ * include/time.h:
+ Change clock_t and time_t to be signed so that they can accept -1, as
+ required by other libc functions
+
+ * src/clibincl/clibdata.hxx:
+ Fix typo that CYGIMP_LIBC_THREAD_SUPPORT should be ..._SAFETY
+ Also fix macro to allocate thread-specific data to not set variables
+ in a different stack-frame
+
+ * tests/ctype/ctype.c:
+ Fix some misunderstandings in tests, and add a few new ones
+
+ * tests/stdlib/qsort.c:
+ make ctr unsigned to prevent warnings
+
+ * tests/stdlib/strtol.c, tests/stdlib/strtoul.c:
+ Fix some misunderstandings in tests, and add a few new ones
+
+ * tests/string/strrchr.c:
+ Fix off by one error
+
+ * tests/string/strspn.c:
+ Fix case-sensitivity problem, and off-by-one error
+
+ * tests/string/strxfrm1.c:
+ Remove bogus bit of test that doesn't apply to strxfrm, and fix typo
+
+
+Fri May 22 16:33:04 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/PKGconf.mak
+ Remove CXXFLAGS line now that its redundant
+
+ * tests/everything!
+ Do a blitz change of all tests - break some of them down into
+ different files, add new tests, standardize format, fix bugs,
+ update for recent header file changes and much more!
+
+Wed May 20 17:50:04 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/PKGconf.mak:
+ interim checkin for different dir structure for Bart
+
+Fri May 15 20:30:46 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * Tidy up some loose ends I forgot: rename src/include directory to
+ src/clibincl. And add clibdata.inl and timesupp.hxx in there.
+
+Thu May 14 19:56:32 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * Basically everything has changed in the C library. Files have
+ been moved, renamed, deleted and reworked. This is a major
+ revision, and now starts from this new baseline rather than doing
+ incremental changes.
+
+Fri Apr 17 18:43:02 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/ECCconf.mak:
+ added for new build system (actually Bart did this, but didn't
+ update this ChangeLog)
+
+Fri Apr 17 15:03:25 1998 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * src/stdio/device/sim.cxx:
+ Make it build with CYG_EMPTY_STATEMENT; the unadorned one is being
+ removed.
+
+Thu Apr 16 00:24:24 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * All source files:
+ replace ECCIMP_LIBC_* conditional ifdef with CYGIMP_LIBC_*
+
+ * include/eccconf/libc.h:
+ improve comments and reorder a bit
+
+Wed Apr 8 14:35:20 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * Makefile.am, src/Makefile.am, tests/Makefile.am, configure.in:
+ many changes to integrate build structure from release tree
+
+ * src/ctype/Makefile.am, src/ctype/Makefile.in, src/errno/Makefile.am,
+ src/errno/Makefile.in, src/stdio/Makefile.am, src/stdio/Makefile.in,
+ src/stdio/common/Makefile.am, src/stdio/common/Makefile.in,
+ src/stdio/device/Makefile.am, src/stdio/device/Makefile.in,
+ src/stdio/output/Makefile.am, src/stdio/output/Makefile.in,
+ src/stdio/input/Makefile.am, src/stdio/input/Makefile.in,
+ src/stdlib/Makefile.am, src/stdlib/Makefile.in,
+ src/string/Makefile.am, src/string/Makefile.in,
+ src/support/Makefile.am, src/support/Makefile.in,
+ src/time/Makefile.am, src/time/Makefile.in:
+ Remove as they are now redundant with above changes
+
+ * include/Makefile.am:
+ Add to support above changes
+
+ * include/eccconf/libc.h:
+ Change include file for configuration from kernel to system
+
+ * src/include/kerndiag.hxx, src/stdio/device/kerndiag.cxx,
+ src/time/clockfn.cxx:
+ Change kernel include file to eccconf/kernel.h
+
+ * src/include/strngdev.h:
+ remove unnecessary kernel include
+
+ * Makefile.in, aclocal.m4, configure, src/Makefile.in,
+ tests/Makefile.in, include/Makefile.in:
+ regenerate
+
+Mon Apr 6 20:55:07 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdlib/abs.cxx, src/stdlib/atoi.cxx, src/stdlib/atol.cxx,
+ src/stdlib/div.cxx, src/stdlib/labs.cxx, src/stdlib/ldiv.cxx:
+ Separated out functions from stdlib.cxx into separate files
+
+ * src/stdlib/stdlib.cxx:
+ removed to be replaced by above files
+
+ * Makefile.am, src/stdlib/Makefile.am:
+ modified to support building above and not building stdlib.cxx
+
+ * src/support/tsd.cxx:
+ Remove unnecessary header file includes
+
+ * Makefile.in, src/stdlib/Makefile.in:
+ regenerated
+
+Mon Apr 6 19:19:42 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/support/tsd.cxx, include/eccconf/libc.h:
+ remove lame hack for tx39 compiler now that its fixed
+
+ * src/include/sim.hxx:
+ define constants as static to placate compiler
+
+Thu Apr 2 21:01:21 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/ctype/ctype.cxx:
+ deleted and separated out into below files
+
+ * src/ctype/isalnum.cxx, src/ctype/isalpha.cxx, src/ctype/iscntrl.cxx,
+ src/ctype/isdigit.cxx, src/ctype/isgraph.cxx, src/ctype/islower.cxx,
+ src/ctype/isprint.cxx, src/ctype/ispunct.cxx, src/ctype/isspace.cxx,
+ src/ctype/isupper.cxx, src/ctype/isxdigit.cxx, src/ctype/tolower.cxx,
+ src/ctype/toupper.cxx:
+ Separated out individual ctype functions from ctype.cxx into separate
+ files
+
+ * Makefile.am, src/ctype/Makefile.am:
+ modified to reflect above deletion/additions
+
+ * Makefile.in, src/ctype/Makefile.in:
+ regenerated
+
+Thu Apr 2 19:08:26 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/string/strxfrm.cxx: optimise using prefix increments
+
+Thu Apr 2 15:18:15 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/string/strchr.cxx: optimise setting of mask a little
+
+Thu Mar 26 14:07:01 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/support/tsd.cxx: fixed some typos
+
+Thu Mar 26 11:58:47 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/eccconf/libc.h, src/support/tsd.cxx:
+ Implement workaround for tx39 compiler bug.
+
+ * src/include/strsuppt.hxx:
+ remove prototypes for _memcpy() and _memset() as they are now in the
+ kernel
+
+Wed Mar 25 18:31:53 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * Makefile.am, src/string/Makefile.am: memcpy() and memset() are
+ now in the kernel so remove them from build
+ * include/string.h: add a comment to say as much
+ * Makefile.in, src/string/Makefile.in: regenerate
+
+Wed Mar 25 15:30:42 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdlib/_exit.cxx, src/include/file_if.inl:
+ Change _exit workaround to not cause a compiler optimisation
+ problem. Now just references _exit rather than calls it.
+
+Wed Mar 25 14:59:49 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/string/strxfrm.cxx: Fix bug causing tests to fail completely
+ for this function
+
+Wed Mar 25 12:55:53 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/include/sim.hxx: add types to constants (oops!)
+ * Makefile.am: link src/stdio/device/sim.cxx
+ * Makefile.in: regenerated
+
+Wed Mar 25 04:14:30 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/include/file_if.hxx, src/include/file_if.inl,
+ src/include/kerndiag.hxx, src/include/sim.hxx,
+ src/include/stdio_if.hxx, src/include/strngdev.hxx,
+ src/include/tsd.hxx, src/stdio/common/clearerr.cxx,
+ src/stdio/common/clearerr.cxx, src/stdio/common/feof.cxx,
+ src/stdio/common/ferror.cxx, src/stdio/common/file_if.cxx,
+ src/stdio/common/vsprintf.cxx,
+ src/stdio/device/kerndiag.cxx, src/stdio/device/sim.cxx,
+ src/stdio/device/strngdev.cxx, src/stdio/output/fputc.cxx,
+ src/stdio/output/fputs.cxx, src/stdio/output/puts.cxx,
+ src/stdio/output/vfnprintf.cxx, src/support/tsd.cxx:
+ Modified to support buffered reads including renaming
+ _EccInternalFileStruct to __EccStdioStream which is what affects
+ most of these files
+ * src/include/file_if.inl, src/stdio/common/file_if.cxx: added for
+ the above reason
+ * src/stdio/common/sscanf.cxx, src/stdio/input/vfscanf.cxx,
+ src/stdio/input/Makefile.am: added to provide sscanf() functionality
+ * include/ctype.h, include/stdio.h, include/stdlib.h,
+ include/string.h, include/eccconf/libc.h, src/ctype/ctype.cxx,
+ src/stdlib/stdlib.cxx, src/string/strcoll.cxx,
+ src/stdio/common/stdio.cxx:
+ rename *_INLINES macros with prefix CYG rather than ECC
+ * include/errno.h, src/errno/errno.cxx, src/errno/strerror.cxx:
+ rename ErrNo to _ErrNo and add EAGAIN and EWOULDBLOCK error codes
+ * configure.in, Makefile.am, src/stdio/Makefile.am,
+ src/stdio/input/Makefile.am: add support for building
+ file_if.cxx sscanf.cxx and vfscanf.cxx
+ * src/stdio/Makefile.in, src/stdio/common/Makefile.in,
+ src/stdio/input/Makefile.in, configure, Makefile.in: regenerated
+
+Tue Mar 24 19:51:40 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/time/clockfn.cxx, src/time/clock.cxx:
+ Renamed clock.cxx to clockfn.cxx (preserving CVS history)
+ * Makefile.am, src/time/Makefile.am: updated to reflect name change
+ * Makefile.in, src/time/Makefile.in: regenerated
+
+Tue Mar 24 16:28:06 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/ctype.inl: Swap around definitions to get right order so
+ inlining works
+
+Tue Mar 24 14:43:05 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/ctype.h, include/stdio.h, include/stdlib.h, include/string.h:
+ modify to only conditionally include inlines
+ * src/ctype/ctype.cxx, src/stdio/common/stdio.cxx,
+ src/stdlib/stdlib.cxx, src/string/strcoll.cxx,
+ src/ctype/Makefile.am: Add to provide real linkable alternatives
+ to inline functions
+ * Makefile.am, configure.in, src/Makefile.am,
+ src/stdio/common/Makefile.am, src/stdlib/Makefile.am,
+ src/string/Makefile.am: modified to support previous additions
+ * include/eccconf/libc.h: redefine inline macro to add extern inline,
+ and add conditional defines for inline functions. Also rename
+ space vs. speed macro to have CYG instead of ECC prefix
+ * include/stdio.inl: fix comment typo
+ * src/stdlib/qsort.cxx: fix to define inline functions properly
+ * src/string/memchr.cxx, src/string/memcmp.cxx, src/string/memcpy.cxx,
+ src/string/memset.cxx, src/string/strcat.cxx, src/string/strchr.cxx,
+ src/string/strcmp.cxx, src/string/strcpy.cxx, src/string/strlen.cxx,
+ src/string/strncat.cxx, src/string/strncmp.cxx,
+ src/string/strncpy.cxx
+ * Makefile.in, configure, src/Makefile.in, src/ctype/Makefile.in,
+ src/stdio/common/Makefile.in, src/stdlib/Makefile.in,
+ src/string/Makefile.in: regenerate
+
+
+Mon Mar 23 19:19:49 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdlib/_exit.cxx: added to support temporary _exit
+ * include/stdlib.h, include/stdlib.inl: added support for _exit and
+ added abs(), labs(), div() and ldiv() functions
+ * src/include/file_if.hxx: added support for _exit kludge
+ * src/stdlib/qsort.cxx: Added Berkeley copyright message
+ * src/time/clock.cxx: Include correct kernel config header as
+ CYG_CONFIGURATION rather than <config.h>
+ * Makefile.am src/stdlib/Makefile.am: added support for _exit
+ * Makefile.in, src/stdlib/Makefile.in: regenerated
+
+Mon Mar 23 14:41:07 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * Replace ECCPKG_ANSI_LIBC with CYGPKG_ANSI_LIBC in all source files
+
+Mon Mar 23 14:28:44 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/string.inl: add file to provide strcoll()
+ * include/string.h: include string.inl
+ * ctype.h: include ctype.inl (oops!)
+ * include/stdlib.h: include stdlib.inl (oops!)
+
+Mon Mar 23 13:30:38 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/ctype.h, include/ctype.inl: added to provide ANSI ctype
+ functionality
+ * include/stdlib.h, include/stdlib.inl, src/include/stdlibbsp.hxx,
+ src/stdlib/Makefile.am, src/stdlib/bsearch.cxx,
+ src/stdlib/qsort.cxx, src/stdlib/rand.cxx, src/stdlib/srand.cxx,
+ src/stdlib/strtol.cxx, src/stdlib/strtoul.cxx: Added to provide
+ many stdlib functions
+ * src/include/tsd.hxx: modified to support rand() random number
+ seed, and added some comments
+ * configure.in, Makefile.am, src/Makefile.am: modified to support
+ addition of above new sources
+ * include/eccconf/libc.h: Add extra helpful comments, and #include
+ kernel config file
+ * src/time/clock.cxx: #include clock.inl and fix to call
+ get_resolution() properly now
+ * Makefile.in, configure, src/Makefile.in, src/errno/Makefile.in,
+ src/stdio/Makefile.in, src/stdio/common/Makefile.in,
+ src/stdio/device/Makefile.in, src/stdio/output/Makefile.in,
+ src/stdlib/Makefile.in, src/strings/Makefile.in,
+ src/support/Makefile.in, src/time/Makefile.in,
+ tests/Makefile.in: regenerated
+
+
+Sun Mar 22 21:29:25 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/time.h, src/include/timesupp.hxx, src/time/clock.cxx,
+ src/time/Makefile.am: added to provide clock() function
+ * src/Makefile.am: modified to try to build in src/time directory
+ * include/eccconf/libc.h: added and is now the main configuration
+ file for this package
+ * acconfig.h, include/libcconf.h.in, include/stamp-h.in: removed
+ due to usage of libc.h above instead
+ * Almost all *.h, *.hxx and *.cxx: replaced LIBC_CONFIG_HEADER
+ defined include with simple <pkgconf/libc.h>
+ * configure.in: remove AM_CONFIG_HEADER of libcconf.h and
+ LIBC_CONFIG_HEADER definition. Also remove usage of builtin
+ memcpy() etc. from gcc, and generate src/time/Makefile
+ * Makefile.am: link in src/time/clock.o
+ * src/include/file_if.hxx, src/include/sim.hxx: use config header
+ to decide whether C library is to be used
+ * Makefile.in, aclocal.m4, configure, src/Makefile.in: regenerated
+
+Fri Mar 20 18:08:10 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/string/strxfrm.cxx: Fixed bug with ignoring terminating NULL
+
+1998-03-20 Chris Tarpy <ctarpy@bhaji.cygnus.co.uk>
+
+ * configure: - regenerated
+ * Makefile.am: - Support added for libc testcases
+ * Makefile.in: regenerated
+ * configure.in: set c compiler, descend test dir
+ * tests/Makefile.in: added
+ * tests/Makefile.am: added
+ * tests/tcdiag.cxx : added
+
+
+Thu Mar 19 11:41:56 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * Initial check-in of everything
+
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
diff --git a/ecos/packages/language/c/libc/i18n/current/cdl/i18n.cdl b/ecos/packages/language/c/libc/i18n/current/cdl/i18n.cdl
new file mode 100644
index 0000000..d7fb085
--- /dev/null
+++ b/ecos/packages/language/c/libc/i18n/current/cdl/i18n.cdl
@@ -0,0 +1,240 @@
+# ====================================================================
+#
+# i18n.cdl
+#
+# C library internationalization (i18n) related configuration data
+#
+# ====================================================================
+## ####ECOSGPLCOPYRIGHTBEGIN####
+## -------------------------------------------
+## This file is part of eCos, the Embedded Configurable Operating System.
+## Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+##
+## eCos is free software; you can redistribute it and/or modify it under
+## the terms of the GNU General Public License as published by the Free
+## Software Foundation; either version 2 or (at your option) any later
+## version.
+##
+## eCos 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 General Public License
+## for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with eCos; if not, write to the Free Software Foundation, Inc.,
+## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+##
+## As a special exception, if other files instantiate templates or use
+## macros or inline functions from this file, or you compile this file
+## and link it with other works to produce a work based on this file,
+## this file does not by itself cause the resulting work to be covered by
+## the GNU General Public License. However the source code for this file
+## must still be made available in accordance with section (3) of the GNU
+## General Public License v2.
+##
+## This exception does not invalidate any other reasons why a work based
+## on this file might be covered by the GNU General Public License.
+## -------------------------------------------
+## ####ECOSGPLCOPYRIGHTEND####
+# ====================================================================
+######DESCRIPTIONBEGIN####
+#
+# Author(s): jlarmour
+# Contributors: jjohnstn
+# Date: 2000-04-14
+#
+#####DESCRIPTIONEND####
+#
+# ====================================================================
+
+cdl_package CYGPKG_LIBC_I18N {
+ display "ISO C library internationalization functions"
+ description "
+ This package provides internationalization functions specified by the
+ ISO C standard - ISO/IEC 9899:1990. These include locale-related
+ functionality and <ctype.h> functionality."
+ doc ref/libc.html
+ include_dir cyg/libc/i18n
+ parent CYGPKG_LIBC
+ implements CYGINT_ISO_LOCALE
+ implements CYGINT_ISO_CTYPE
+ implements CYGINT_ISO_STDLIB_MULTIBYTE
+ requires CYGPKG_ISOINFRA
+ compile ctype.cxx locale.cxx mblen.cxx mbtowc.cxx mbstowcs.cxx \
+ wctomb.cxx wcstombs.cxx mbtowc_jp.cxx wctomb_jp.cxx mbtowc_c.cxx
+
+# ====================================================================
+
+ cdl_component CYGPKG_LIBC_I18N_LOCALES {
+ display "Supported locales"
+ flavor none
+ description "
+ These options determine which locales other than the \"C\" locale
+ are supported and hence contribute to the size of the executable."
+
+ cdl_interface CYGINT_LIBC_I18N_MB_REQUIRED {
+ display "Support for multiple locales required"
+ flavor booldata
+ requires { CYGBLD_ISO_STDLIB_MB_CUR_MAX_HEADER == \
+ "<cyg/libc/i18n/mb.h>" }
+ }
+
+ cdl_option CYGFUN_LIBC_I18N_LOCALE_C_SJIS {
+ display "C-SJIS locale support"
+ default_value 0
+ implements CYGINT_LIBC_I18N_MB_REQUIRED
+ description "
+ This option controls if the \"C-SJIS\" locale will be
+ supported by setlocale(). The locale is a hybrid locale
+ that is mostly the \"C\" locale with Japanese SJIS multibyte
+ support added."
+ }
+
+ cdl_option CYGFUN_LIBC_I18N_LOCALE_C_JIS {
+ display "C-JIS locale support"
+ default_value 0
+ implements CYGINT_LIBC_I18N_MB_REQUIRED
+ description "
+ This option controls if the \"C-JIS\" locale will be
+ supported by setlocale(). The locale is a hybrid locale
+ that is mostly the \"C\" locale with Japanese JIS multibyte
+ support added."
+ }
+
+ cdl_option CYGFUN_LIBC_I18N_LOCALE_C_EUCJP {
+ display "C-EUCJP locale support"
+ default_value 0
+ implements CYGINT_LIBC_I18N_MB_REQUIRED
+ description "
+ This option controls if the \"C-EUCJP\" locale will be
+ supported by setlocale(). The locale is a hybrid locale
+ that is mostly the \"C\" locale with Japanese EUCJP multibyte
+ support added."
+ }
+ }
+
+# ====================================================================
+
+ cdl_option CYGPKG_LIBC_I18N_NEWLIB_CTYPE {
+ display "Newlib's ctype implementation"
+ default_value 0
+ requires { CYGBLD_ISO_CTYPE_HEADER == \
+ "<cyg/libc/i18n/newlibctype.h>" }
+ description "
+ This option enables the implementation of the ctype functions
+ that comes with newlib. It is table driven and therefore
+ exhibits different performance characteristics. It also offers
+ a limited amount of binary compatibility
+ with newlib so that programs linked against newlib ctype/locale
+ do not need to be recompiled when linked with eCos."
+ compile newlibctype.cxx
+ }
+
+ cdl_option CYGSEM_LIBC_I18N_PER_THREAD_MB {
+ display "Per-thread multibyte state"
+ active_if CYGPKG_KERNEL
+ requires CYGVAR_KERNEL_THREADS_DATA
+ default_value { CYGVAR_KERNEL_THREADS_DATA != 0 }
+ description "
+ This option controls whether the multibyte character
+ handling functions mblen(), mbtowc(), and wctomb(),
+ have their state recorded on a per-thread
+ basis rather than global. If this option is
+ disabled, some per-thread space can be saved.
+ Enabling this option will use three slots
+ of kernel per-thread data. You should ensure you
+ have enough slots configured for all your
+ per-thread data."
+ }
+
+# ====================================================================
+
+ cdl_option CYGNUM_LIBC_I18N_MAX_LOCALE_NAME_SIZE {
+ display "Size of locale name strings"
+ flavor data
+ legal_values { (CYGFUN_LIBC_I18N_LOCALE_C_EUCJP ? 8 : \
+ (CYGFUN_LIBC_I18N_LOCALE_C_SJIS ? 7 : \
+ (CYGFUN_LIBC_I18N_LOCALE_C_JIS ? 6 : 2))) to 0x7fffffff }
+ default_value { (CYGFUN_LIBC_I18N_LOCALE_C_EUCJP ? 8 : \
+ (CYGFUN_LIBC_I18N_LOCALE_C_SJIS ? 7 : \
+ (CYGFUN_LIBC_I18N_LOCALE_C_JIS ? 6 : 2))) }
+ description "
+ This option controls the maximum size of
+ locale names and is used, among other things
+ to instantiate a static string used
+ as a return value from the
+ setlocale() function. When requesting the
+ current locale settings with LC_ALL, a string
+ must be constructed to contain this data, rather
+ than just returning a constant string. This
+ string data is stored in the static string.
+ This depends on the length of locale names,
+ hence this option. If just the C locale is
+ present, this option can be set as low as 2."
+ }
+
+# ====================================================================
+
+ cdl_option CYGIMP_LIBC_I18N_CTYPE_INLINES {
+ display "Inline versions of <ctype.h> functions"
+ default_value 1
+ requires { CYGBLD_ISO_CTYPE_HEADER == \
+ "<cyg/libc/i18n/ctype.inl>" }
+ description "
+ This option chooses whether the simple character
+ classification and conversion functions (e.g.
+ isupper(), isalpha(), toupper(), etc.)
+ from <ctype.h> are available as inline
+ functions. This may improve performance and as
+ the functions are small, may even improve code
+ size."
+ }
+
+# ====================================================================
+
+ cdl_component CYGPKG_LIBC_I18N_OPTIONS {
+ display "C library i18n functions build options"
+ flavor none
+ no_define
+ description "
+ Package specific build options including control over
+ compiler flags used only in building this package,
+ and details of which tests are built."
+
+
+ cdl_option CYGPKG_LIBC_I18N_CFLAGS_ADD {
+ display "Additional compiler flags"
+ flavor data
+ no_define
+ default_value { "" }
+ description "
+ This option modifies the set of compiler flags for
+ building the C library. These flags are used in addition
+ to the set of global flags."
+ }
+
+ cdl_option CYGPKG_LIBC_I18N_CFLAGS_REMOVE {
+ display "Suppressed compiler flags"
+ flavor data
+ no_define
+ default_value { "" }
+ description "
+ This option modifies the set of compiler flags for
+ building the C library. These flags are removed from
+ the set of global flags if present."
+ }
+
+ cdl_option CYGPKG_LIBC_I18N_TESTS {
+ display "C library i18n function tests"
+ flavor data
+ no_define
+ calculated { "tests/ctype tests/setlocale tests/i18nmb" }
+ description "
+ This option specifies the set of tests for the C library
+ i18n functions."
+ }
+ }
+}
+
+# ====================================================================
+# EOF i18n.cdl
diff --git a/ecos/packages/language/c/libc/i18n/current/include/ctype.inl b/ecos/packages/language/c/libc/i18n/current/include/ctype.inl
new file mode 100644
index 0000000..d7da3f4
--- /dev/null
+++ b/ecos/packages/language/c/libc/i18n/current/include/ctype.inl
@@ -0,0 +1,188 @@
+#ifndef CYGONCE_LIBC_CTYPE_INL
+#define CYGONCE_LIBC_CTYPE_INL
+/*===========================================================================
+//
+// ctype.inl
+//
+// Inline implementations of ISO standard ctype routines defined in
+// section 7.3 of the standard
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors:
+// Date: 2000-04-14
+// Purpose:
+// Description:
+// Usage: Do not include this file directly - use #include <ctype.h>
+//
+//####DESCRIPTIONEND####
+//
+//=========================================================================*/
+
+/* CONFIGURATION */
+
+#include <pkgconf/libc_i18n.h> /* Configuration header */
+
+/* The outline implementation will override this to prevent inlining */
+#ifndef CYGPRI_LIBC_I18N_CTYPE_INLINE
+# define CYGPRI_LIBC_I18N_CTYPE_INLINE extern __inline__
+#endif
+
+/* FUNCTIONS */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*=========================================================================*/
+
+/* 7.3.1 Character testing functions */
+
+
+CYGPRI_LIBC_I18N_CTYPE_INLINE int
+isupper( int c )
+{
+ return (('A' <= c) && (c <= 'Z'));
+} /* isupper() */
+
+
+CYGPRI_LIBC_I18N_CTYPE_INLINE int
+islower( int c )
+{
+ return (('a' <= c) && (c <= 'z'));
+} /* islower() */
+
+
+CYGPRI_LIBC_I18N_CTYPE_INLINE int
+isalpha( int c )
+{
+ return ( islower(c) || isupper(c) );
+} /* isalpha() */
+
+
+CYGPRI_LIBC_I18N_CTYPE_INLINE int
+isdigit( int c )
+{
+ return ( ('0' <= c) && (c <= '9') );
+} /* isdigit() */
+
+
+CYGPRI_LIBC_I18N_CTYPE_INLINE int
+isalnum( int c )
+{
+ return ( isalpha(c) || isdigit(c) );
+} /* isalnum() */
+
+
+CYGPRI_LIBC_I18N_CTYPE_INLINE int
+iscntrl( int c )
+{
+ /* Simple standard 7-bit ASCII map is assumed */
+ return ( ((0 <= c) && (c <= 0x1F)) ||
+ (c == 0x7F) );
+} /* iscntrl() */
+
+
+CYGPRI_LIBC_I18N_CTYPE_INLINE int
+isgraph( int c )
+{
+ // Simple standard 7-bit ASCII map is assumed
+ return ( ('!' <= c) && (c <= '~') );
+} /* isgraph() */
+
+
+CYGPRI_LIBC_I18N_CTYPE_INLINE int
+isprint( int c )
+{
+ /* Simple standard 7-bit ASCII map is assumed */
+ return ( (' ' <= c) && (c <= '~') );
+} /* isprint() */
+
+
+CYGPRI_LIBC_I18N_CTYPE_INLINE int
+ispunct( int c )
+{
+ /* Simple standard 7-bit ASCII map is assumed */
+ return ( (('!' <= c) && (c <= '/')) || // ASCII 0x21 - 0x2F
+ ((':' <= c) && (c <= '@')) || // ASCII 0x3A - 0x40
+ (('[' <= c) && (c <= '`')) || // ASCII 0x5B - 0x60
+ (('{' <= c) && (c <= '~')) ); // ASCII 0x7B - 0x7E
+
+} /* ispunct() */
+
+
+CYGPRI_LIBC_I18N_CTYPE_INLINE int
+isspace( int c )
+{
+ return ( (c == ' ') || (c == '\f') || (c == '\n') || (c == '\r') ||
+ (c == '\t') || (c == '\v') );
+} /* isspace() */
+
+
+CYGPRI_LIBC_I18N_CTYPE_INLINE int
+isxdigit( int c )
+{
+ return ( isdigit(c) ||
+ (('a' <= c) && (c <= 'f')) ||
+ (('A' <= c) && (c <= 'F')) );
+} /* isxdigit() */
+
+/*========================================================================*/
+
+/* 7.3.2 Character case mapping functions */
+
+
+CYGPRI_LIBC_I18N_CTYPE_INLINE int
+tolower( int c )
+{
+ return isupper(c) ? c - 'A' + 'a' : c;
+} /* tolower() */
+
+
+CYGPRI_LIBC_I18N_CTYPE_INLINE int
+toupper( int c )
+{
+ return islower(c) ? c - 'a' + 'A' : c;
+} /* toupper() */
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* CYGONCE_LIBC_CTYPE_INL multiple inclusion protection */
+
+/* EOF ctype.inl */
diff --git a/ecos/packages/language/c/libc/i18n/current/include/mb.h b/ecos/packages/language/c/libc/i18n/current/include/mb.h
new file mode 100644
index 0000000..3530571
--- /dev/null
+++ b/ecos/packages/language/c/libc/i18n/current/include/mb.h
@@ -0,0 +1,66 @@
+#ifndef CYGONCE_LIBC_I18N_MB_H
+#define CYGONCE_LIBC_I18N_MB_H
+/*===========================================================================
+//
+// mb.h
+//
+// Definition of MB_CUR_MAX when using multiple locales
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors:
+// Date: 2001-06-08
+// Purpose:
+// Description:
+// Usage: Do not include this file directly - use #include <ctype.h>
+//
+//####DESCRIPTIONEND####
+//
+//=========================================================================*/
+
+/* CONFIGURATION */
+
+#include <pkgconf/libc_i18n.h> /* Configuration header */
+
+#ifdef CYGINT_LIBC_I18N_MB_REQUIRED
+extern int __mb_cur_max;
+# define MB_CUR_MAX (__mb_cur_max)
+#endif
+
+#endif /* CYGONCE_LIBC_I18N_MB_H multiple inclusion protection */
+
+/* EOF mb.h */
diff --git a/ecos/packages/language/c/libc/i18n/current/include/newlibctype.h b/ecos/packages/language/c/libc/i18n/current/include/newlibctype.h
new file mode 100644
index 0000000..8cc07e6
--- /dev/null
+++ b/ecos/packages/language/c/libc/i18n/current/include/newlibctype.h
@@ -0,0 +1,127 @@
+#ifndef CYGONCE_LIBC_I18N_NEWLIBCTYPE_H
+#define CYGONCE_LIBC_I18N_NEWLIBCTYPE_H
+/*===========================================================================
+//
+// newlibctype.h
+//
+// newlib's implementation of the ctype functions
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2004 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors:
+// Date: 2004-02-16
+// Purpose:
+// Description:
+// Usage: Do not include this file directly - use #include <ctype.h>
+//
+//####DESCRIPTIONEND####
+//
+//=========================================================================*/
+
+/* CONFIGURATION */
+
+#include <pkgconf/libc_i18n.h> /* Configuration header */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+extern int isalnum(int __c);
+extern int isalpha(int __c);
+extern int iscntrl(int __c);
+extern int isdigit(int __c);
+extern int isgraph(int __c);
+extern int islower(int __c);
+extern int isprint(int __c);
+extern int ispunct(int __c);
+extern int isspace(int __c);
+extern int isupper(int __c);
+extern int isxdigit(int __c);
+extern int tolower(int __c);
+extern int toupper(int __c);
+
+#ifndef __STRICT_ANSI__
+int isascii(int __c);
+int toascii(int __c);
+int _tolower(int __c);
+int _toupper(int __c);
+#endif
+
+#define _U 01
+#define _L 02
+#define _N 04
+#define _S 010
+#define _P 020
+#define _C 040
+#define _X 0100
+#define _B 0200
+
+extern const char _ctype_[];
+
+#ifndef __cplusplus
+#define isalpha(c) ((_ctype_+1)[(unsigned)(c)]&(_U|_L))
+#define isupper(c) ((_ctype_+1)[(unsigned)(c)]&_U)
+#define islower(c) ((_ctype_+1)[(unsigned)(c)]&_L)
+#define isdigit(c) ((_ctype_+1)[(unsigned)(c)]&_N)
+#define isxdigit(c) ((_ctype_+1)[(unsigned)(c)]&(_X|_N))
+#define isspace(c) ((_ctype_+1)[(unsigned)(c)]&_S)
+#define ispunct(c) ((_ctype_+1)[(unsigned)(c)]&_P)
+#define isalnum(c) ((_ctype_+1)[(unsigned)(c)]&(_U|_L|_N))
+#define isprint(c) ((_ctype_+1)[(unsigned)(c)]&(_P|_U|_L|_N|_B))
+#define isgraph(c) ((_ctype_+1)[(unsigned)(c)]&(_P|_U|_L|_N))
+#define iscntrl(c) ((_ctype_+1)[(unsigned)(c)]&_C)
+/* Non-gcc versions will get the library versions, and will be
+ slightly slower */
+#ifdef __GNUC__
+# define toupper(c) \
+ __extension__ ({ int __x = (c); islower(__x) ? (__x - 'a' + 'A') : __x;})
+# define tolower(c) \
+ __extension__ ({ int __x = (c); isupper(__x) ? (__x - 'A' + 'a') : __x;})
+#endif
+#endif /* !__cplusplus */
+
+#ifndef __STRICT_ANSI__
+#define isascii(c) ((unsigned)(c)<=0177)
+#define toascii(c) ((c)&0177)
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+#endif /* CYGONCE_LIBC_I18N_NEWLIBCTYPE_H multiple inclusion protection */
+
+/* EOF newlibctype.h */
diff --git a/ecos/packages/language/c/libc/i18n/current/src/ctype.cxx b/ecos/packages/language/c/libc/i18n/current/src/ctype.cxx
new file mode 100644
index 0000000..e884636
--- /dev/null
+++ b/ecos/packages/language/c/libc/i18n/current/src/ctype.cxx
@@ -0,0 +1,69 @@
+/*===========================================================================
+//
+// ctype.cxx
+//
+// ISO C standard ctype functions
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors:
+// Date: 2000-04-28
+// Purpose:
+// Description: Real alternative for inline implementation of the ISO
+// standard ctype functions defined in section 7.3 of
+// the standard
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//=========================================================================*/
+
+/* CONFIGURATION */
+
+#include <pkgconf/libc_i18n.h> /* Configuration header */
+
+/* We don't want the inline versions of the ctype functions defined here */
+
+#define CYGPRI_LIBC_I18N_CTYPE_INLINE
+
+/* This means that including ctype.inl will make the outline functions */
+
+#ifndef CYGPKG_LIBC_I18N_NEWLIB_CTYPE
+# include <cyg/libc/i18n/ctype.inl>
+#endif
+
+/* EOF ctype.cxx */
diff --git a/ecos/packages/language/c/libc/i18n/current/src/internal.h b/ecos/packages/language/c/libc/i18n/current/src/internal.h
new file mode 100644
index 0000000..abaf402
--- /dev/null
+++ b/ecos/packages/language/c/libc/i18n/current/src/internal.h
@@ -0,0 +1,94 @@
+#ifndef CYGONCE_LIBC_I18N_INTERNAL_H
+#define CYGONCE_LIBC_I18N_INTERNAL_H
+
+/*===========================================================================
+//
+// internal.h
+//
+// Internal header file to support the i18n locale functions.
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jjohnstn
+// Contributors:
+// Date: 2000-11-16
+// Purpose:
+// Description:
+// Usage: This file is used internally by i18n functions.
+//
+//####DESCRIPTIONEND####
+//
+//=========================================================================*/
+
+
+/* escape character used for JIS encoding */
+#define ESC_CHAR 0x1b
+
+/* PROTOTYPES */
+
+typedef int (*mbtowc_fn_type)(wchar_t *pwc, const char *s, size_t n, int *state);
+typedef int (*wctomb_fn_type)(char *s, wchar_t wchar, int *state );
+
+extern int __mbtowc_jp ( wchar_t *__pwc, const char *__s, size_t __n, int *__state );
+extern int __mbtowc_c ( wchar_t *__pwc, const char *__s, size_t __n, int *__state );
+extern int __wctomb_jp ( char *__s, wchar_t __wchar, int *__state );
+
+/* MACROS used to support SHIFT_JIS, EUC-JP, and JIS multibyte encodings */
+
+#define _issjis1(c) (((c) >= 0x81 && (c) <= 0x9f) || ((c) >= 0xe0 && (c) <= 0xef))
+#define _issjis2(c) (((c) >= 0x40 && (c) <= 0x7e) || ((c) >= 0x80 && (c) <= 0xfc))
+#define _iseucjp(c) ((c) >= 0xa1 && (c) <= 0xfe)
+#define _isjis(c) ((c) >= 0x21 && (c) <= 0x7e)
+
+// TYPE DEFINITIONS
+
+// define a type to encapsulate the locale. In time this will get much
+// richer and complete
+
+typedef struct {
+ const char *name;
+ struct lconv numdata;
+ int mb_cur_max;
+ /* if next two fields are NULL, it implies the default "C" single-byte handling. */
+ mbtowc_fn_type mbtowc_fn;
+ wctomb_fn_type wctomb_fn;
+} Cyg_libc_locale_t;
+
+// ctype locale pointer shared between setlocale and mb routines
+extern const Cyg_libc_locale_t *__current_ctype_locale;
+
+#endif /* CYGONCE_LIBC_I18N_INTERNAL_H */
+
diff --git a/ecos/packages/language/c/libc/i18n/current/src/locale.cxx b/ecos/packages/language/c/libc/i18n/current/src/locale.cxx
new file mode 100644
index 0000000..d8fe7b8
--- /dev/null
+++ b/ecos/packages/language/c/libc/i18n/current/src/locale.cxx
@@ -0,0 +1,443 @@
+//========================================================================
+//
+// locale.cxx
+//
+// Implementation of ISO C internationalisation (i18n) locales
+//
+//========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jjohnstn
+// Date: 2000-04-18
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libc_i18n.h> // Configuration header
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include <cyg/infra/cyg_trac.h> // Common tracing support
+#include <cyg/infra/cyg_ass.h> // Common assertion support
+#include <locale.h> // struct lconv
+#include <string.h> // several string functions
+#include <limits.h> // CHAR_MAX
+#include "internal.h" // locale type definitions
+
+// CONSTANTS
+
+// define the "C" locale
+static const Cyg_libc_locale_t
+C_locale = {
+ (char *)"C",
+ { (char *)".", (char *)"", (char *)"", (char *)"", (char *)"", (char *)"", (char *)"", (char *)"", (char *)"", (char *)"",
+ CHAR_MAX, CHAR_MAX, CHAR_MAX, CHAR_MAX, CHAR_MAX, CHAR_MAX,
+ CHAR_MAX, CHAR_MAX
+ },
+ 1,
+ NULL,
+ NULL,
+};
+
+// define the "C-EUCJP" locale (C locale with Japanese EUCJP mb support)
+#ifdef CYGFUN_LIBC_I18N_LOCALE_C_EUCJP
+static const Cyg_libc_locale_t
+C_EUCJP_locale = {
+ "C-EUCJP",
+ { ".", "", "", "", "", "", "", "", "", "",
+ CHAR_MAX, CHAR_MAX, CHAR_MAX, CHAR_MAX, CHAR_MAX, CHAR_MAX,
+ CHAR_MAX, CHAR_MAX
+ },
+ 2,
+ &__mbtowc_jp,
+ &__wctomb_jp,
+};
+#endif
+
+// define the "C-SJIS" locale (C locale with Japanese SJIS mb support)
+#ifdef CYGFUN_LIBC_I18N_LOCALE_C_SJIS
+static const Cyg_libc_locale_t
+C_SJIS_locale = {
+ "C-SJIS",
+ { ".", "", "", "", "", "", "", "", "", "",
+ CHAR_MAX, CHAR_MAX, CHAR_MAX, CHAR_MAX, CHAR_MAX, CHAR_MAX,
+ CHAR_MAX, CHAR_MAX
+ },
+ 2,
+ &__mbtowc_jp,
+ &__wctomb_jp,
+};
+#endif
+
+// define the "C-JIS" locale (C locale with Japanese JIS mb support)
+#ifdef CYGFUN_LIBC_I18N_LOCALE_C_JIS
+static const Cyg_libc_locale_t
+C_JIS_locale = {
+ "C-JIS",
+ { ".", "", "", "", "", "", "", "", "", "",
+ CHAR_MAX, CHAR_MAX, CHAR_MAX, CHAR_MAX, CHAR_MAX, CHAR_MAX,
+ CHAR_MAX, CHAR_MAX
+ },
+ 8,
+ &__mbtowc_jp,
+ &__wctomb_jp,
+};
+#endif
+
+// only one locale now, but leave room for expansion
+static const Cyg_libc_locale_t *all_locales[] = { &C_locale,
+#ifdef CYGFUN_LIBC_I18N_LOCALE_C_EUCJP
+ &C_EUCJP_locale,
+#endif
+#ifdef CYGFUN_LIBC_I18N_LOCALE_C_SJIS
+ &C_SJIS_locale,
+#endif
+#ifdef CYGFUN_LIBC_I18N_LOCALE_C_JIS
+ &C_JIS_locale,
+#endif
+};
+
+// GLOBALS
+
+// the maximum size of a multibyte character including state info
+#ifdef CYGINT_LIBC_I18N_MB_REQUIRED
+int __mb_cur_max = 1;
+#endif
+
+// the current locales. Our default is the C locale
+static const Cyg_libc_locale_t *current_collate_locale = &C_locale;
+const Cyg_libc_locale_t *__current_ctype_locale = &C_locale;
+static const Cyg_libc_locale_t *current_monetary_locale = &C_locale;
+static const Cyg_libc_locale_t *current_numeric_locale = &C_locale;
+static const Cyg_libc_locale_t *current_time_locale = &C_locale;
+
+// FUNCTIONS
+
+static const Cyg_libc_locale_t *
+find_locale_data( const char *locale_str, cyg_ucount32 checklen )
+{
+ CYG_REPORT_FUNCNAMETYPE( "find_locale_data", "returning %08x" );
+ CYG_REPORT_FUNCARG1( "locale_str=%s", locale_str );
+
+ const Cyg_libc_locale_t *temp_locale, *curr_locale=NULL;
+ cyg_ucount32 i;
+
+ // is it "" i.e. use the default?
+ if (*locale_str=='\0') {
+ curr_locale = &C_locale;
+ CYG_REPORT_RETVAL( curr_locale );
+ return curr_locale;
+ } // if
+
+ for (i=0; i<sizeof(all_locales)/sizeof(Cyg_libc_locale_t *); i++ ) {
+
+ temp_locale = all_locales[i];
+
+ if ( !strncmp(temp_locale->name, locale_str, checklen) )
+ curr_locale = temp_locale;
+ } // for
+
+ CYG_REPORT_RETVAL( curr_locale );
+ return curr_locale;
+} // find_locale_data()
+
+typedef int (*mbtowc_fn_type)(wchar_t *, const char *, size_t, int *);
+// routine used to export mbtowc function to I/O routines
+externC mbtowc_fn_type
+__get_current_locale_mbtowc_fn ()
+{
+ if (__current_ctype_locale->mbtowc_fn)
+ return __current_ctype_locale->mbtowc_fn;
+ return &__mbtowc_c;
+}
+
+externC char *
+setlocale( int category, const char *locale )
+{
+ CYG_REPORT_FUNCNAMETYPE("setlocale", "returning %08x");
+ CYG_REPORT_FUNCARG2( "category=%d, locale=%s", category, locale );
+
+ if (locale != NULL)
+ CYG_CHECK_DATA_PTR( locale, "locale pointer is invalid!" );
+
+ const char *str;
+
+ // special case if locale==NULL, return current locale name
+ if (locale==NULL) {
+
+ CYG_TRACE0( true, "Getting current locale value" );
+
+ switch (category) {
+
+ case LC_COLLATE:
+ str = current_collate_locale->name;
+ break;
+ case LC_CTYPE:
+ str = __current_ctype_locale->name;
+ break;
+ case LC_MONETARY:
+ str = current_monetary_locale->name;
+ break;
+ case LC_NUMERIC:
+ str = current_numeric_locale->name;
+ break;
+ case LC_TIME:
+ str = current_time_locale->name;
+ break;
+ case LC_ALL:
+
+ // create static string to give a constructed string back
+ // to the user. The size is the number of categories other
+ // than LC_ALL times the maximum name size, and add a constant
+ // for the delimiting octothorpes
+ static char my_str[ CYGNUM_LIBC_I18N_MAX_LOCALE_NAME_SIZE*5+10 ];
+
+ strcpy( my_str, "#" );
+ strcat( my_str, current_collate_locale->name );
+ strcat( my_str, "#" );
+ strcat( my_str, __current_ctype_locale->name );
+ strcat( my_str, "#" );
+ strcat( my_str, current_monetary_locale->name );
+ strcat( my_str, "#" );
+ strcat( my_str, current_numeric_locale->name );
+ strcat( my_str, "#" );
+ strcat( my_str, current_time_locale->name );
+ strcat( my_str, "#" );
+
+ str = &my_str[0];
+ break;
+ default:
+ str=NULL;
+ CYG_FAIL("setlocale() passed bad category!" );
+ break;
+
+ } // switch
+
+ CYG_REPORT_RETVAL( (char *)str);
+ return (char *)str;
+ } // if
+
+ // we only get here if locale is non-NULL, i.e. we want to set it
+
+ const Cyg_libc_locale_t *loc;
+ cyg_bool default_locale = (*locale=='\0');
+
+ CYG_TRACE0( true, "Setting current locale value" );
+
+ switch( category ) {
+ case LC_COLLATE:
+ loc = find_locale_data( locale, CYGNUM_LIBC_I18N_MAX_LOCALE_NAME_SIZE );
+ if (loc != NULL) // found it
+ current_collate_locale=loc;
+ break;
+
+ case LC_CTYPE:
+ loc = find_locale_data( locale, CYGNUM_LIBC_I18N_MAX_LOCALE_NAME_SIZE );
+ if (loc != NULL) // found it
+ {
+ __current_ctype_locale=loc;
+#ifdef CYGINT_LIBC_I18N_MB_REQUIRED
+ __mb_cur_max = loc->mb_cur_max;
+#endif
+ }
+ break;
+
+ case LC_MONETARY:
+ loc = find_locale_data( locale, CYGNUM_LIBC_I18N_MAX_LOCALE_NAME_SIZE );
+ if (loc != NULL) // found it
+ current_monetary_locale=loc;
+ break;
+
+ case LC_NUMERIC:
+ loc = find_locale_data( locale, CYGNUM_LIBC_I18N_MAX_LOCALE_NAME_SIZE );
+ if (loc != NULL) // found it
+ current_numeric_locale=loc;
+ break;
+
+ case LC_TIME:
+ loc = find_locale_data( locale, CYGNUM_LIBC_I18N_MAX_LOCALE_NAME_SIZE );
+ if (loc != NULL) // found it
+ current_time_locale=loc;
+ break;
+
+ case LC_ALL:
+ // first try and match it exactly
+ loc = find_locale_data( locale, CYGNUM_LIBC_I18N_MAX_LOCALE_NAME_SIZE );
+ if (loc != NULL) { // found it
+
+ CYG_TRACE0(true, "Matched locale string exactly");
+ current_collate_locale = __current_ctype_locale = loc;
+ current_monetary_locale = current_numeric_locale = loc;
+ current_time_locale = loc;
+#ifdef CYGINT_LIBC_I18N_MB_REQUIRED
+ __mb_cur_max = loc->mb_cur_max;
+#endif
+ } // if
+ else {
+ CYG_TRACE0( true, "Attempting to parse string previously "
+ "returned from setlocale()" );
+ // now try and see if it is a compound string returned
+ // earlier by setlocale( LC_ALL, NULL );
+
+ // Note we don't do much checking here. This could be
+ // much more rigorous (but at the expense of speed/size?)
+
+ const Cyg_libc_locale_t *temp_collate_locale,
+ *temp_ctype_locale, *temp_monetary_locale,
+ *temp_numeric_locale, *temp_time_locale;
+
+ cyg_ucount32 token_len;
+
+ str = &locale[0];
+ if ( *str=='#' ) {
+ ++str;
+ token_len = strcspn( str, "#" );
+ loc = find_locale_data( str, token_len );
+
+ if (loc!=NULL) {
+ temp_collate_locale=loc;
+ str += token_len+1;
+ token_len = strcspn( str, "#" );
+ loc = find_locale_data( str, token_len );
+
+ if (loc!=NULL) {
+ temp_ctype_locale=loc;
+ str += token_len+1;
+ token_len = strcspn( str, "#" );
+ loc = find_locale_data( str, token_len );
+
+ if (loc!=NULL) {
+ temp_monetary_locale=loc;
+ str += token_len+1;
+ token_len = strcspn( str, "#" );
+ loc = find_locale_data( str, token_len );
+
+ if (loc!=NULL) {
+ temp_numeric_locale=loc;
+ str += token_len+1;
+ token_len = strcspn( str, "#" );
+ loc = find_locale_data( str, token_len );
+
+ if (loc!=NULL) {
+ temp_time_locale=loc;
+ str += token_len+1;
+ token_len = strcspn( str, "#" );
+ loc = find_locale_data( str, token_len );
+
+ if (loc!=NULL) {
+ // if we've got this far and loc still isn't NULL,
+ // then everything's fine, and we've matched everything
+
+ current_collate_locale = temp_collate_locale;
+ __current_ctype_locale = temp_ctype_locale;
+#ifdef CYGINT_LIBC_I18N_MB_REQUIRED
+ __mb_cur_max = temp_ctype_locale->mb_cur_max;
+#endif
+ current_monetary_locale = temp_monetary_locale;
+ current_numeric_locale = temp_numeric_locale;
+ current_time_locale = temp_time_locale;
+
+ } // if
+ } // if
+ } // if
+ } // if
+ } // if
+ } // if
+ } // if
+
+ } // else
+ break; // case LC_ALL
+
+ default:
+ CYG_FAIL("setlocale() passed bad category!" );
+ loc=NULL;
+ break;
+ } // switch
+
+ if (loc==NULL) {
+ CYG_REPORT_RETVAL( NULL );
+ return NULL;
+ } // if
+ else if (default_locale==true) {
+ CYG_REPORT_RETVAL(C_locale.name);
+ return (char *)C_locale.name;
+ } // else if
+ else {
+ CYG_REPORT_RETVAL(locale);
+ return (char *)locale;
+ } // else
+} // setlocale()
+
+externC struct lconv *
+localeconv( void )
+{
+ CYG_REPORT_FUNCNAMETYPE( "localeconv", "returning %08x" );
+ CYG_REPORT_FUNCARGVOID();
+
+ static struct lconv static_lconv;
+
+ static_lconv.decimal_point =
+ current_numeric_locale->numdata.decimal_point;
+
+ static_lconv.thousands_sep =
+ current_numeric_locale->numdata.thousands_sep;
+
+ static_lconv.grouping =
+ current_numeric_locale->numdata.grouping;
+
+ // we cheat a bit, but it should be worth it - a lot of these are
+ // constants which optimise nicely
+ cyg_ucount32 size_used;
+ size_used = (char *)&static_lconv.int_curr_symbol -
+ (char *)&static_lconv;
+
+ memcpy( &(static_lconv.int_curr_symbol),
+ &(current_monetary_locale->numdata.int_curr_symbol),
+ sizeof(struct lconv) - size_used );
+
+
+ CYG_REPORT_RETVAL( &static_lconv );
+ return &static_lconv;
+} // localeconv()
+
+// EOF locale.cxx
diff --git a/ecos/packages/language/c/libc/i18n/current/src/mblen.cxx b/ecos/packages/language/c/libc/i18n/current/src/mblen.cxx
new file mode 100644
index 0000000..21b889c
--- /dev/null
+++ b/ecos/packages/language/c/libc/i18n/current/src/mblen.cxx
@@ -0,0 +1,209 @@
+//===========================================================================
+//
+// mblen.cxx
+//
+// ISO standard mblen() routine
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jjohnstn
+// Contributors: jjohnstn
+// Date: 2000-11-01
+// Purpose: Provide ISO C mblen()
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+//
+// This code was based on newlib/libc/stdlib/mblen.c
+// The following is modified from the original newlib description:
+//
+/*
+FUNCTION
+<<mblen>>---multibyte length function
+
+INDEX
+ mblen
+
+ANSI_SYNOPSIS
+ #include <stdlib.h>
+ int mblen(const char *<[s]>, size_t <[n]>);
+
+TRAD_SYNOPSIS
+ #include <stdlib.h>
+ int mblen(<[s]>, <[n]>)
+ const char *<[s]>;
+ size_t <[n]>;
+
+DESCRIPTION
+When CYGINT_LIBC_I18N_MB_REQUIRED is not defined, this is a minimal ANSI-conforming
+implementation of <<mblen>>. In this case, the
+only ``multi-byte character sequences'' recognized are single bytes,
+and thus <<1>> is returned unless <[s]> is the null pointer or
+has a length of 0 or is the empty string.
+
+When CYGINT_LIBC_I18N_MB_REQUIRED is defined, this routine calls the locale's LC_CTYPE mbtowc_fn to perform
+the conversion, passing a state variable to allow state dependent
+decoding. The result is based on the locale setting which may
+be restricted to a defined set of locales.
+
+RETURNS
+This implementation of <<mblen>> returns <<0>> if
+<[s]> is <<NULL>> or the empty string; it returns <<1>> if not CYGINT_LIBC_I18N_MB_REQUIRED or
+the character is a single-byte character; it returns <<-1>>
+if the multi-byte character is invalid; otherwise it returns
+the number of bytes in the multibyte character.
+
+PORTABILITY
+<<mblen>> is required in the ANSI C standard. However, the precise
+effects vary with the locale.
+
+<<mblen>> requires no supporting OS subroutines.
+*/
+
+// CONFIGURATION
+
+#include <pkgconf/libc_i18n.h> // Configuration header
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions
+#include <cyg/infra/cyg_trac.h> // Tracing support
+#include <cyg/infra/cyg_ass.h> // Assertion support
+#include <locale.h>
+#include <stdlib.h> // Header for this file
+#include <string.h> // strcmp definition
+#include <stddef.h> // size_t definition
+#include "internal.h" // __current_ctype_locale definition
+
+#ifdef CYGSEM_LIBC_I18N_PER_THREAD_MB
+# include <pkgconf/kernel.h> // kernel configuration
+# include <cyg/kernel/thread.hxx> // per-thread data
+# include <cyg/kernel/thread.inl> // per-thread data
+# include <cyg/kernel/mutex.hxx> // mutexes
+#endif /* CYGSEM_LIBC_I18N_PER_THREAD_MB */
+
+// TRACE
+
+#if defined(CYGDBG_USE_TRACING) && defined(CYGNUM_LIBC_I18N_MBLEN_TRACE_LEVEL)
+static int mblen_trace = CYGNUM_LIBC_I18N_MBLEN_TRACE_LEVEL;
+# define TL1 (0 < mblen_trace)
+#else
+# define TL1 (0)
+#endif
+
+// STATICS
+
+#ifdef CYGINT_LIBC_I18N_MB_REQUIRED
+# ifdef CYGSEM_LIBC_I18N_PER_THREAD_MB
+static volatile Cyg_Thread::cyg_data_index
+mblen_data_index=CYGNUM_KERNEL_THREADS_DATA_MAX;
+
+static Cyg_Mutex mblen_data_mutex CYG_INIT_PRIORITY(LIBC);
+# else
+static int cyg_libc_mblen_last;
+# endif
+#endif
+
+// FUNCTIONS
+
+int
+mblen ( const char *s, size_t n )
+{
+#ifdef CYGINT_LIBC_I18N_MB_REQUIRED
+ int *state;
+#endif
+ int retval;
+
+ CYG_REPORT_FUNCNAMETYPE( "mblen", "returning %d" );
+ CYG_REPORT_FUNCARG2( "s=%08x, n=%ud", s, n );
+
+ if (s != NULL)
+ CYG_CHECK_DATA_PTR( s, "s is not a valid pointer!" );
+
+#ifdef CYGINT_LIBC_I18N_MB_REQUIRED
+
+#ifdef CYGSEM_LIBC_I18N_PER_THREAD_MB
+ Cyg_Thread *self = Cyg_Thread::self();
+
+ // Get a per-thread data slot if we haven't got one already
+ // Do a simple test before locking and retrying test, as this is a
+ // rare situation
+ if (CYGNUM_KERNEL_THREADS_DATA_MAX==mblen_data_index) {
+ mblen_data_mutex.lock();
+ if (CYGNUM_KERNEL_THREADS_DATA_MAX==mblen_data_index) {
+
+ // FIXME: Should use real CDL to pre-allocate a slot at compile
+ // time to ensure there are enough slots
+ mblen_data_index = self->new_data_index();
+
+ CYG_ASSERT(mblen_data_index >= 0, "failed to allocate data index" );
+ }
+ mblen_data_mutex.unlock();
+ } // if
+
+ // we have a valid index now
+
+ state = (int *)self->get_data_ptr(mblen_data_index);
+#else /* not CYGSEM_LIBC_I18N_PER_THREAD_MB */
+ state = &cyg_libc_mblen_last;
+#endif /* not CYGSEM_LIBC_I18N_PER_THREAD_MB */
+
+ CYG_TRACE2( TL1, "Retrieved mblen_last address %08x containing %d",
+ state, *state );
+
+ if (__current_ctype_locale->mbtowc_fn)
+ {
+ retval = __current_ctype_locale->mbtowc_fn (NULL, s, n, state);
+ CYG_REPORT_RETVAL( retval );
+ return retval;
+ }
+#endif /* CYGINT_LIBC_I18N_MB_REQUIRED */
+
+ if (s == NULL || *s == '\0')
+ retval = 0;
+ else if (n == 0)
+ retval = -1;
+ else
+ retval = 1;
+
+ CYG_REPORT_RETVAL( retval );
+ return retval;
+} // mblen()
+
+// EOF mblen.cxx
diff --git a/ecos/packages/language/c/libc/i18n/current/src/mbstowcs.cxx b/ecos/packages/language/c/libc/i18n/current/src/mbstowcs.cxx
new file mode 100644
index 0000000..fb2b8c6
--- /dev/null
+++ b/ecos/packages/language/c/libc/i18n/current/src/mbstowcs.cxx
@@ -0,0 +1,209 @@
+//===========================================================================
+//
+// mbstowcs.cxx
+//
+// ISO standard mbstowcs() routine
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jjohnstn
+// Contributors: jjohnstn
+// Date: 2000-11-01
+// Purpose: Provide ISO C mbstowcs()
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+//
+// This code was based on newlib/libc/stdlib/mbstowcs.c and newlib/libc/stdlib/mbstowcs_r.c
+// The following is the modified from the original newlib description:
+//
+/*
+FUNCTION
+<<mbstowcs>>---multibyte string to wide char converter
+
+INDEX
+ mbstowcs
+
+ANSI_SYNOPSIS
+ #include <stdlib.h>
+ int mbstowcs(wchar_t *<[pwc]>, const char *<[s]>, size_t <[n]>);
+
+TRAD_SYNOPSIS
+ #include <stdlib.h>
+ int mbstowcs(<[pwc]>, <[s]>, <[n]>)
+ wchar_t *<[pwc]>;
+ const char *<[s]>;
+ size_t <[n]>;
+
+DESCRIPTION
+When CYGINT_LIBC_I18N_MB_REQUIRED is not defined, this is a minimal ANSI-conforming
+implementation of <<mbstowcs>>. In this case, the
+only ``multi-byte character sequences'' recognized are single bytes,
+and they are ``converted'' to wide-char versions simply by byte
+extension.
+
+When CYGINT_LIBC_I18N_MB_REQUIRED is defined, this routine calls the LC_CTYPE locale mbtowc_fn
+repeatedly to perform the conversion, passing a state variable to allow state dependent
+decoding. The result is based on the locale setting which may
+be restricted to a defined set of locales.
+
+RETURNS
+This implementation of <<mbstowcs>> returns <<0>> if
+<[s]> is <<NULL>> or is the empty string;
+it returns <<-1>> if CYGINT_LIBC_I18N_MB_REQUIRED and one of the
+multi-byte characters is invalid or incomplete;
+otherwise it returns the minimum of: <<n>> or the
+number of multi-byte characters in <<s>> plus 1 (to
+compensate for the nul character).
+If the return value is -1, the state of the <<pwc>> string is
+indeterminate. If the input has a length of 0, the output
+string will be modified to contain a wchar_t nul terminator.
+
+PORTABILITY
+<<mbstowcs>> is required in the ANSI C standard. However, the precise
+effects vary with the locale.
+
+<<mbstowcs>> requires no supporting OS subroutines.
+*/
+
+// CONFIGURATION
+
+#include <pkgconf/libc_i18n.h> // Configuration header
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions
+#include <cyg/infra/cyg_trac.h> // Tracing support
+#include <cyg/infra/cyg_ass.h> // Assertion support
+#include <locale.h>
+#include <stdlib.h> // Header for this file
+#include <string.h> // strcmp definition
+#include <stddef.h> // size_t definition
+#include "internal.h" // __current_ctype_locale
+
+#ifdef CYGSEM_LIBC_I18N_PER_THREAD_MBSTOWCS
+# include <pkgconf/kernel.h> // kernel configuration
+# include <cyg/kernel/thread.hxx> // per-thread data
+# include <cyg/kernel/thread.inl> // per-thread data
+# include <cyg/kernel/mutex.hxx> // mutexes
+#endif
+
+// TRACE
+
+#if defined(CYGDBG_USE_TRACING) && defined(CYGNUM_LIBC_I18N_MBSTOWCS_TRACE_LEVEL)
+static int mbstowcs_trace = CYGNUM_LIBC_I18N_MBSTOWCS_TRACE_LEVEL;
+# define TL1 (0 < mbstowcs_trace)
+#else
+# define TL1 (0)
+#endif
+
+// STATICS
+
+// FUNCTIONS
+
+size_t
+mbstowcs ( wchar_t *pwcs, const char *s, size_t n )
+{
+ size_t retval;
+
+ CYG_REPORT_FUNCNAMETYPE( "mbstowcs", "returning %ud" );
+ CYG_REPORT_FUNCARG3( "pwcs=%08x, s=%08x, n=%ud", pwcs, s, n );
+
+ if (pwcs != NULL)
+ CYG_CHECK_DATA_PTR( pwcs, "pwcs is not a valid pointer!" );
+ if (s != NULL)
+ CYG_CHECK_DATA_PTR( s, "s is not a valid pointer!" );
+
+#ifdef CYGINT_LIBC_I18N_MB_REQUIRED
+
+ CYG_TRACE2( TL1, "Retrieved mbstowcs_last address %08x containing %d",
+ state, *state );
+
+ wchar_t *ptr = pwcs;
+ size_t max = n;
+ int state = 0;
+ char *t = (char *)s;
+ int bytes;
+ int (*mbtowc_fn)(wchar_t *, const char *, size_t, int *) = __current_ctype_locale->mbtowc_fn;
+
+ if (mbtowc_fn)
+ {
+ while (n > 0)
+ {
+ bytes = mbtowc_fn (ptr, t, MB_CUR_MAX, &state);
+ if (bytes == -1)
+ {
+ retval = (size_t)-1;
+ CYG_REPORT_RETVAL( retval );
+ return retval;
+ }
+ else if (bytes == 0)
+ {
+ retval = ptr - pwcs;
+ CYG_REPORT_RETVAL( retval );
+ return retval;
+ }
+ t += bytes;
+ ++ptr;
+ --n;
+ }
+
+ retval = max;
+ CYG_REPORT_RETVAL( retval );
+ return retval;
+ }
+
+#endif /* CYGINT_LIBC_I18N_MB_REQUIRED */
+
+ int count = 0;
+
+ if (n != 0) {
+ do {
+ if ((*pwcs++ = (wchar_t) *s++) == 0)
+ break;
+ count++;
+ } while (--n != 0);
+ }
+
+ retval = count;
+ CYG_REPORT_RETVAL( retval );
+ return retval;
+} // mbstowcs()
+
+// EOF mbstowcs.cxx
diff --git a/ecos/packages/language/c/libc/i18n/current/src/mbtowc.cxx b/ecos/packages/language/c/libc/i18n/current/src/mbtowc.cxx
new file mode 100644
index 0000000..412b1bc
--- /dev/null
+++ b/ecos/packages/language/c/libc/i18n/current/src/mbtowc.cxx
@@ -0,0 +1,224 @@
+//===========================================================================
+//
+// mbtowc.cxx
+//
+// ISO standard mbtowc() routine
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jjohnstn
+// Contributors: jjohnstn
+// Date: 2000-11-01
+// Purpose: Provide ISO C mbtowc() routine
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+//
+// This code was based upon newlib/libc/stdlib/mbtowc.c
+// The following is modified from the original newlib description:
+//
+/*
+FUNCTION
+<<mbtowc>>---multibyte to wide char converter
+
+INDEX
+ mbtowc
+
+ANSI_SYNOPSIS
+ #include <stdlib.h>
+ int mbtowc(wchar_t *<[pwc]>, const char *<[s]>, size_t <[n]>);
+
+TRAD_SYNOPSIS
+ #include <stdlib.h>
+ int mbtowc(<[pwc]>, <[s]>, <[n]>)
+ wchar_t *<[pwc]>;
+ const char *<[s]>;
+ size_t <[n]>;
+
+DESCRIPTION
+When CYGINT_LIBC_I18N_MB_REQUIRED is not defined, this is a minimal ANSI-conforming
+implementation of <<mbtowc>>. In this case,
+only ``multi-byte character sequences'' recognized are single bytes,
+and they are ``converted'' to themselves.
+Each call to <<mbtowc>> copies one character from <<*<[s]>>> to
+<<*<[pwc]>>>, unless <[s]> is a null pointer. The argument n
+is ignored.
+
+When CYGINT_LIBC_I18N_MB_REQUIRED is defined, this routine calls the LC_CTYPE locale mbtowc_fn to perform
+the conversion, passing a state variable to allow state dependent
+decoding. The result is based on the locale setting which may
+be restricted to a defined set of locales.
+
+RETURNS
+This implementation of <<mbtowc>> returns <<0>> if
+<[s]> is <<NULL>> or is the empty string;
+it returns <<1>> if not CYGINT_LIBC_I18N_MB_REQUIRED or
+the character is a single-byte character; it returns <<-1>>
+if n is <<0>> or the multi-byte character is invalid;
+otherwise it returns the number of bytes in the multibyte character.
+If the return value is -1, no changes are made to the <<pwc>>
+output string. If the input is the empty string, a wchar_t nul
+is placed in the output string and 0 is returned. If the input
+has a length of 0, no changes are made to the <<pwc>> output string.
+
+PORTABILITY
+<<mbtowc>> is required in the ANSI C standard. However, the precise
+effects vary with the locale.
+
+<<mbtowc>> requires no supporting OS subroutines.
+*/
+
+
+// CONFIGURATION
+
+#include <pkgconf/libc_i18n.h> // Configuration header
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions
+#include <cyg/infra/cyg_trac.h> // Tracing support
+#include <cyg/infra/cyg_ass.h> // Assertion support
+#include <locale.h>
+#include <stdlib.h> // Header for this file
+#include <string.h> // strcmp definition
+#include <stddef.h> // size_t definition
+#include "internal.h" // __current_ctype_locale
+
+#ifdef CYGSEM_LIBC_I18N_PER_THREAD_MB
+# include <pkgconf/kernel.h> // kernel configuration
+# include <cyg/kernel/thread.hxx> // per-thread data
+# include <cyg/kernel/thread.inl> // per-thread data
+# include <cyg/kernel/mutex.hxx> // mutexes
+#endif /* CYGSEM_LIBC_I18N_PER_THREAD_MB */
+
+// TRACE
+
+#if defined(CYGDBG_USE_TRACING) && defined(CYGNUM_LIBC_I18N_MBTOWC_TRACE_LEVEL)
+static int mbtowc_trace = CYGNUM_LIBC_I18N_MBTOWC_TRACE_LEVEL;
+# define TL1 (0 < mbtowc_trace)
+#else
+# define TL1 (0)
+#endif
+
+// STATICS
+
+#ifdef CYGINT_LIBC_I18N_MB_REQUIRED
+# ifdef CYGSEM_LIBC_I18N_PER_THREAD_MB
+static volatile Cyg_Thread::cyg_data_index
+mbtowc_data_index=CYGNUM_KERNEL_THREADS_DATA_MAX;
+
+static Cyg_Mutex mbtowc_data_mutex CYG_INIT_PRIORITY(LIBC);
+# else
+static int cyg_libc_mbtowc_last;
+# endif
+#endif
+
+// FUNCTIONS
+
+int
+mbtowc ( wchar_t *pwc, const char *s, size_t n )
+{
+#ifdef CYGINT_LIBC_I18N_MB_REQUIRED
+ int *state;
+#endif
+ int retval;
+
+ CYG_REPORT_FUNCNAMETYPE( "mbtowc", "returning %d" );
+ CYG_REPORT_FUNCARG3( "pwc=%08x, s=%08x, n=%ud", pwc, s, n );
+
+ if (pwc != NULL)
+ CYG_CHECK_DATA_PTR( pwc, "pwc is not a valid pointer!" );
+ if (s != NULL)
+ CYG_CHECK_DATA_PTR( s, "s is not a valid pointer!" );
+
+#ifdef CYGINT_LIBC_I18N_MB_REQUIRED
+
+#ifdef CYGSEM_LIBC_I18N_PER_THREAD_MB
+ Cyg_Thread *self = Cyg_Thread::self();
+
+ // Get a per-thread data slot if we haven't got one already
+ // Do a simple test before locking and retrying test, as this is a
+ // rare situation
+ if (CYGNUM_KERNEL_THREADS_DATA_MAX==mbtowc_data_index) {
+ mbtowc_data_mutex.lock();
+ if (CYGNUM_KERNEL_THREADS_DATA_MAX==mbtowc_data_index) {
+
+ // FIXME: Should use real CDL to pre-allocate a slot at compile
+ // time to ensure there are enough slots
+ mbtowc_data_index = self->new_data_index();
+
+ CYG_ASSERT(mbtowc_data_index >= 0, "failed to allocate data index" );
+ }
+ mbtowc_data_mutex.unlock();
+ } // if
+
+ // we have a valid index now
+
+ state = (int *)self->get_data_ptr(mbtowc_data_index);
+#else
+ state = &cyg_libc_mbtowc_last;
+#endif
+
+ CYG_TRACE2( TL1, "Retrieved mbtowc_last address %08x containing %d",
+ state, *state );
+
+ if (__current_ctype_locale->mbtowc_fn)
+ {
+ retval = __current_ctype_locale->mbtowc_fn (pwc, s, n, state);
+ CYG_REPORT_RETVAL( retval );
+ return retval;
+ }
+#endif /* CYGINT_LIBC_I18N_MB_REQUIRED */
+
+ if (s == NULL)
+ retval = 0;
+ else if (n == 0)
+ retval = -1;
+ else
+ {
+ if (pwc)
+ *pwc = (wchar_t) *s;
+ retval = (*s != '\0');
+ }
+
+ CYG_REPORT_RETVAL( retval );
+ return retval;
+} // mbtowc()
+
+// EOF mbtowc.cxx
diff --git a/ecos/packages/language/c/libc/i18n/current/src/mbtowc_c.cxx b/ecos/packages/language/c/libc/i18n/current/src/mbtowc_c.cxx
new file mode 100644
index 0000000..5af7da8
--- /dev/null
+++ b/ecos/packages/language/c/libc/i18n/current/src/mbtowc_c.cxx
@@ -0,0 +1,119 @@
+//===========================================================================
+//
+// mbtowc_c.cxx
+//
+// Internal __mbtowc_c() routine
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jjohnstn
+// Contributors: jjohnstn
+// Date: 2000-11-24
+// Purpose: Provide internal use __mbtowc_c() routine
+// Description: C locale version of mbtowc()
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+//
+
+// CONFIGURATION
+
+#include <pkgconf/libc_i18n.h> // Configuration header
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions
+#include <cyg/infra/cyg_trac.h> // Tracing support
+#include <cyg/infra/cyg_ass.h> // Assertion support
+#include <locale.h>
+#include <stdlib.h> // Header for this file
+#include <string.h> // strcmp definition
+#include <stddef.h> // size_t definition
+#include "internal.h" // internal __isxxxx macros
+
+// TRACE
+
+#if defined(CYGDBG_USE_TRACING) && defined(CYGNUM_LIBC_STDLIB_MBTOWC_TRACE_LEVEL)
+static int mbtowc_trace = CYGNUM_LIBC_STDLIB_MBTOWC_TRACE_LEVEL;
+# define TL1 (0 < mbtowc_trace)
+#else
+# define TL1 (0)
+#endif
+
+// STATICS
+
+// FUNCTIONS
+
+int
+__mbtowc_c ( wchar_t *pwc, const char *s, size_t n, int *state )
+{
+ wchar_t dummy;
+ unsigned char *t = (unsigned char *)s;
+ int retval;
+
+ CYG_REPORT_FUNCNAMETYPE( "__mbtowc_c", "returning %d" );
+ CYG_REPORT_FUNCARG4( "pwc=%08x, s=%08x, n=%ud, state=%08x", pwc, s, n, state );
+
+ if (pwc != NULL)
+ CYG_CHECK_DATA_PTR( pwc, "pwc is not a valid pointer!" );
+ if (s != NULL)
+ CYG_CHECK_DATA_PTR( s, "s is not a valid pointer!" );
+
+ if (pwc == NULL)
+ pwc = &dummy;
+
+ if (s != NULL && n == 0)
+ {
+ retval = -1;
+ CYG_REPORT_RETVAL (retval);
+ return retval;
+ }
+
+ if (s == NULL)
+ retval = 0; /* not state-dependent */
+ else
+ {
+ if (pwc)
+ *pwc = (wchar_t)*t;
+ retval = (*t != '\0');
+ }
+ CYG_REPORT_RETVAL (retval);
+ return retval;
+} // __mbtowc_c()
+
+// EOF mbtowc_c.cxx
diff --git a/ecos/packages/language/c/libc/i18n/current/src/mbtowc_jp.cxx b/ecos/packages/language/c/libc/i18n/current/src/mbtowc_jp.cxx
new file mode 100644
index 0000000..b9e17d7
--- /dev/null
+++ b/ecos/packages/language/c/libc/i18n/current/src/mbtowc_jp.cxx
@@ -0,0 +1,330 @@
+//===========================================================================
+//
+// mbtowc_jp.cxx
+//
+// Internal __mbtowc_jp() routine
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jjohnstn
+// Contributors: jjohnstn
+// Date: 2000-11-16
+// Purpose: Provide internal use __mbtowc_jp() routine
+// Description: Japanese locale version of mbtowc()
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+//
+// This code was taken from newlib/libc/stdlib/mbtowc_r.c
+
+
+// CONFIGURATION
+
+#include <pkgconf/libc_i18n.h> // Configuration header
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions
+#include <cyg/infra/cyg_trac.h> // Tracing support
+#include <cyg/infra/cyg_ass.h> // Assertion support
+#include <locale.h>
+#include <stdlib.h> // Header for this file
+#include <string.h> // strcmp definition
+#include <stddef.h> // size_t definition
+#include "internal.h" // internal __isxxxx macros
+
+// TRACE
+
+#if defined(CYGDBG_USE_TRACING) && defined(CYGNUM_LIBC_STDLIB_MBTOWC_TRACE_LEVEL)
+static int mbtowc_trace = CYGNUM_LIBC_STDLIB_MBTOWC_TRACE_LEVEL;
+# define TL1 (0 < mbtowc_trace)
+#else
+# define TL1 (0)
+#endif
+
+// STATICS
+
+
+#ifdef CYGFUN_LIBC_I18N_LOCALE_C_JIS
+typedef enum { ESCAPE, DOLLAR, BRACKET, AT, B, J,
+ NUL, JIS_CHAR, OTHER, JIS_C_NUM } JIS_CHAR_TYPE;
+typedef enum { ASCII, A_ESC, A_ESC_DL, JIS, JIS_1, JIS_2, J_ESC, J_ESC_BR,
+ J2_ESC, J2_ESC_BR, DONE, INV, JIS_S_NUM } JIS_STATE;
+typedef enum { COPY_A, COPY_J, COPY_J2, MAKE_A, MAKE_J, NOOP, EMPTY, ERROR } JIS_ACTION;
+
+/**************************************************************************************
+ * state/action tables for processing JIS encoding
+ * Where possible, switches to JIS are grouped with proceding JIS characters and switches
+ * to ASCII are grouped with preceding JIS characters. Thus, maximum returned length
+ * is 2 (switch to JIS) + 2 (JIS characters) + 2 (switch back to ASCII) = 6.
+ *************************************************************************************/
+
+static JIS_STATE JIS_state_table[JIS_S_NUM][JIS_C_NUM] = {
+/* ESCAPE DOLLAR BRACKET AT B J NUL JIS_CHAR OTHER */
+/* ASCII */ { A_ESC, DONE, DONE, DONE, DONE, DONE, DONE, DONE, DONE },
+/* A_ESC */ { DONE, A_ESC_DL, DONE, DONE, DONE, DONE, DONE, DONE, DONE },
+/* A_ESC_DL */{ DONE, DONE, DONE, JIS, JIS, DONE, DONE, DONE, DONE },
+/* JIS */ { J_ESC, JIS_1, JIS_1, JIS_1, JIS_1, JIS_1, INV, JIS_1, INV },
+/* JIS_1 */ { INV, JIS_2, JIS_2, JIS_2, JIS_2, JIS_2, INV, JIS_2, INV },
+/* JIS_2 */ { J2_ESC, DONE, DONE, DONE, DONE, DONE, INV, DONE, DONE },
+/* J_ESC */ { INV, INV, J_ESC_BR, INV, INV, INV, INV, INV, INV },
+/* J_ESC_BR */{ INV, INV, INV, INV, ASCII, ASCII, INV, INV, INV },
+/* J2_ESC */ { INV, INV, J2_ESC_BR,INV, INV, INV, INV, INV, INV },
+/* J2_ESC_BR*/{ INV, INV, INV, INV, DONE, DONE, INV, INV, INV },
+};
+
+static JIS_ACTION JIS_action_table[JIS_S_NUM][JIS_C_NUM] = {
+/* ESCAPE DOLLAR BRACKET AT B J NUL JIS_CHAR OTHER */
+/* ASCII */ { NOOP, COPY_A, COPY_A, COPY_A, COPY_A, COPY_A, EMPTY, COPY_A, COPY_A},
+/* A_ESC */ { COPY_A, NOOP, COPY_A, COPY_A, COPY_A, COPY_A, COPY_A, COPY_A, COPY_A},
+/* A_ESC_DL */{ COPY_A, COPY_A, COPY_A, MAKE_J, MAKE_J, COPY_A, COPY_A, COPY_A, COPY_A},
+/* JIS */ { NOOP, NOOP, NOOP, NOOP, NOOP, NOOP, ERROR, NOOP, ERROR },
+/* JIS_1 */ { ERROR, NOOP, NOOP, NOOP, NOOP, NOOP, ERROR, NOOP, ERROR },
+/* JIS_2 */ { NOOP, COPY_J2, COPY_J2, COPY_J2, COPY_J2, COPY_J2, ERROR, COPY_J2, COPY_J2},
+/* J_ESC */ { ERROR, ERROR, NOOP, ERROR, ERROR, ERROR, ERROR, ERROR, ERROR },
+/* J_ESC_BR */{ ERROR, ERROR, ERROR, ERROR, NOOP, NOOP, ERROR, ERROR, ERROR },
+/* J2_ESC */ { ERROR, ERROR, NOOP, ERROR, ERROR, ERROR, ERROR, ERROR, ERROR },
+/* J2_ESC_BR*/{ ERROR, ERROR, ERROR, ERROR, COPY_J, COPY_J, ERROR, ERROR, ERROR },
+};
+#endif // CYGFUN_LIBC_I18N_LOCALE_C_JIS
+
+// FUNCTIONS
+
+int
+__mbtowc_jp ( wchar_t *pwc, const char *s, size_t n, int *state )
+{
+ wchar_t dummy;
+ unsigned char *t = (unsigned char *)s;
+ int retval;
+ const char *cur_locale = __current_ctype_locale->name;
+
+ CYG_REPORT_FUNCNAMETYPE( "__mbtowc_jp", "returning %d" );
+ CYG_REPORT_FUNCARG4( "pwc=%08x, s=%08x, n=%ud, state=%08x", pwc, s, n, state );
+
+ if (pwc != NULL)
+ CYG_CHECK_DATA_PTR( pwc, "pwc is not a valid pointer!" );
+ if (s != NULL)
+ CYG_CHECK_DATA_PTR( s, "s is not a valid pointer!" );
+ CYG_CHECK_DATA_PTR( state, "state is not a valid pointer!" );
+
+ if (pwc == NULL)
+ pwc = &dummy;
+
+ if (s != NULL && n == 0)
+ {
+ retval = -1;
+ CYG_REPORT_RETVAL (retval);
+ return retval;
+ }
+
+ if (cur_locale == NULL ||
+ (strlen (cur_locale) <= 1))
+ { /* fall-through */ }
+#ifdef CYGFUN_LIBC_I18N_LOCALE_C_SJIS
+ else if (!strcmp (cur_locale, "C-SJIS"))
+ {
+ int char1;
+ if (s == NULL)
+ {
+ retval = 0;
+ CYG_REPORT_RETVAL (retval);
+ return retval; /* not state-dependent */
+ }
+ char1 = *t;
+ if (_issjis1 (char1))
+ {
+ int char2 = t[1];
+ if (n <= 1)
+ retval = -1;
+ else if (_issjis2 (char2))
+ {
+ *pwc = (((wchar_t)*t) << 8) + (wchar_t)(*(t+1));
+ retval = 2;
+ }
+ else
+ retval = -1;
+ CYG_REPORT_RETVAL (retval);
+ return retval;
+ }
+ }
+#endif /* CYGFUN_LIBC_I18N_LOCALE_C_SJIS */
+#ifdef CYGFUN_LIBC_I18N_LOCALE_C_EUCJP
+ else if (!strcmp (cur_locale, "C-EUCJP"))
+ {
+ int char1;
+ if (s == NULL)
+ {
+ retval = 0; /* not state-dependent */
+ CYG_REPORT_RETVAL (retval);
+ return retval; /* not state-dependent */
+ }
+ char1 = *t;
+ if (_iseucjp (char1))
+ {
+ int char2 = t[1];
+ if (n <= 1)
+ retval = -1;
+ if (_iseucjp (char2))
+ {
+ *pwc = (((wchar_t)*t) << 8) + (wchar_t)(*(t+1));
+ retval = 2;
+ }
+ else
+ retval = -1;
+ CYG_REPORT_RETVAL (retval);
+ return retval;
+ }
+ }
+#endif /* CYGFUN_LIBC_I18N_LOCALE_C_EUCJP */
+#ifdef CYGFUN_LIBC_I18N_LOCALE_C_JIS
+ else if (!strcmp (cur_locale, "C-JIS"))
+ {
+ JIS_STATE curr_state;
+ JIS_ACTION action;
+ JIS_CHAR_TYPE ch;
+ unsigned char *ptr;
+ int i, curr_ch;
+
+ if (s == NULL)
+ {
+ *state = 0;
+ retval = 1;
+ CYG_REPORT_RETVAL (retval);
+ return retval; /* state-dependent */
+ }
+
+ curr_state = (*state == 0 ? ASCII : JIS);
+ ptr = t;
+
+ for (i = 0; i < (int)n; ++i)
+ {
+ curr_ch = t[i];
+ switch (curr_ch)
+ {
+ case ESC_CHAR:
+ ch = ESCAPE;
+ break;
+ case '$':
+ ch = DOLLAR;
+ break;
+ case '@':
+ ch = AT;
+ break;
+ case '(':
+ ch = BRACKET;
+ break;
+ case 'B':
+ ch = B;
+ break;
+ case 'J':
+ ch = J;
+ break;
+ case '\0':
+ ch = NUL;
+ break;
+ default:
+ if (_isjis (curr_ch))
+ ch = JIS_CHAR;
+ else
+ ch = OTHER;
+ }
+
+ action = JIS_action_table[curr_state][ch];
+ curr_state = JIS_state_table[curr_state][ch];
+
+ switch (action)
+ {
+ case NOOP:
+ break;
+ case EMPTY:
+ *state = 0;
+ *pwc = (wchar_t)0;
+ retval = i;
+ CYG_REPORT_RETVAL (retval);
+ return retval;
+ case COPY_A:
+ *state = 0;
+ *pwc = (wchar_t)*ptr;
+ retval = i + 1;
+ CYG_REPORT_RETVAL (retval);
+ return retval;
+ case COPY_J:
+ *state = 0;
+ *pwc = (((wchar_t)*ptr) << 8) + (wchar_t)(*(ptr+1));
+ retval = i + 1;
+ CYG_REPORT_RETVAL (retval);
+ return retval;
+ case COPY_J2:
+ *state = 1;
+ *pwc = (((wchar_t)*ptr) << 8) + (wchar_t)(*(ptr+1));
+ retval = (ptr - t) + 2;
+ CYG_REPORT_RETVAL (retval);
+ return retval;
+ case MAKE_A:
+ case MAKE_J:
+ ptr = (unsigned char *)(t + i + 1);
+ break;
+ case ERROR:
+ default:
+ retval = -1;
+ CYG_REPORT_RETVAL (retval);
+ return retval;
+ }
+
+ }
+
+ retval = -1; /* n < bytes needed */
+ CYG_REPORT_RETVAL (retval);
+ return retval;
+ }
+#endif /* CYGFUN_LIBC_I18N_LOCALE_C_JIS */
+
+ /* otherwise this must be the "C" locale or unknown locale */
+ if (s == NULL)
+ retval = 0; /* not state-dependent */
+ else
+ {
+ if (pwc)
+ *pwc = (wchar_t)*t;
+ retval = (*t != '\0');
+ }
+ CYG_REPORT_RETVAL (retval);
+ return retval;
+} // __mbtowc_jp()
+
+// EOF mbtowc_jp.cxx
diff --git a/ecos/packages/language/c/libc/i18n/current/src/newlibctype.cxx b/ecos/packages/language/c/libc/i18n/current/src/newlibctype.cxx
new file mode 100644
index 0000000..b89b325
--- /dev/null
+++ b/ecos/packages/language/c/libc/i18n/current/src/newlibctype.cxx
@@ -0,0 +1,231 @@
+/*===========================================================================
+//
+// newlibctype.cxx
+//
+// newlib's implementation of the ctype functions
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2004 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors:
+// Date: 2004-02-16
+// Purpose: Provides newlib's implementation of the ctype functions.
+// Description: Also provides a degree of binary compatibility with newlib
+// ctype functions, primarily for the benefit of libstdc++.
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//=========================================================================*/
+
+/* CONFIGURATION */
+
+#include <pkgconf/libc_i18n.h> // Configuration header
+
+#ifdef CYGPKG_LIBC_I18N_NEWLIB_CTYPE
+
+#include <cyg/infra/cyg_type.h>
+#include <cyg/libc/i18n/newlibctype.h>
+
+#define _CONST const // just for compatibility
+
+#define _CTYPE_DATA_0_127 \
+ _C, _C, _C, _C, _C, _C, _C, _C, \
+ _C, _C|_S, _C|_S, _C|_S, _C|_S, _C|_S, _C, _C, \
+ _C, _C, _C, _C, _C, _C, _C, _C, \
+ _C, _C, _C, _C, _C, _C, _C, _C, \
+ _S|_B, _P, _P, _P, _P, _P, _P, _P, \
+ _P, _P, _P, _P, _P, _P, _P, _P, \
+ _N, _N, _N, _N, _N, _N, _N, _N, \
+ _N, _N, _P, _P, _P, _P, _P, _P, \
+ _P, _U|_X, _U|_X, _U|_X, _U|_X, _U|_X, _U|_X, _U, \
+ _U, _U, _U, _U, _U, _U, _U, _U, \
+ _U, _U, _U, _U, _U, _U, _U, _U, \
+ _U, _U, _U, _P, _P, _P, _P, _P, \
+ _P, _L|_X, _L|_X, _L|_X, _L|_X, _L|_X, _L|_X, _L, \
+ _L, _L, _L, _L, _L, _L, _L, _L, \
+ _L, _L, _L, _L, _L, _L, _L, _L, \
+ _L, _L, _L, _P, _P, _P, _P, _C
+
+#define _CTYPE_DATA_128_256 \
+ 0, 0, 0, 0, 0, 0, 0, 0, \
+ 0, 0, 0, 0, 0, 0, 0, 0, \
+ 0, 0, 0, 0, 0, 0, 0, 0, \
+ 0, 0, 0, 0, 0, 0, 0, 0, \
+ 0, 0, 0, 0, 0, 0, 0, 0, \
+ 0, 0, 0, 0, 0, 0, 0, 0, \
+ 0, 0, 0, 0, 0, 0, 0, 0, \
+ 0, 0, 0, 0, 0, 0, 0, 0, \
+ 0, 0, 0, 0, 0, 0, 0, 0, \
+ 0, 0, 0, 0, 0, 0, 0, 0, \
+ 0, 0, 0, 0, 0, 0, 0, 0, \
+ 0, 0, 0, 0, 0, 0, 0, 0, \
+ 0, 0, 0, 0, 0, 0, 0, 0, \
+ 0, 0, 0, 0, 0, 0, 0, 0, \
+ 0, 0, 0, 0, 0, 0, 0, 0, \
+ 0, 0, 0, 0, 0, 0, 0, 0
+
+_CONST char _ctype_[1 + 256] = {
+ 0,
+ _CTYPE_DATA_0_127,
+ _CTYPE_DATA_128_256
+};
+_CONST char *__ctype_ptr = _ctype_ + 1;
+
+#undef _tolower
+#undef tolower
+#undef _toupper
+#undef toupper
+
+int
+_tolower(int c)
+{
+ return isupper(c) ? (c) - 'A' + 'a' : c;
+}
+
+int
+tolower(int c)
+{
+ return isupper(c) ? (c) - 'A' + 'a' : c;
+}
+
+int
+_toupper(int c)
+{
+ return islower(c) ? c - 'a' + 'A' : c;
+}
+
+int
+toupper(int c)
+{
+ return islower(c) ? c - 'a' + 'A' : c;
+}
+
+#undef isalnum
+#undef isalpha
+#undef isascii
+#undef iscntrl
+#undef isdigit
+#undef islower
+#undef isgraph
+#undef isprint
+#undef ispunct
+#undef isspace
+#undef isupper
+#undef isxdigit
+#undef toascii
+
+int
+isalnum(int c)
+{
+ return((_ctype_ + 1)[c] & (_U|_L|_N));
+}
+
+int
+isalpha(int c)
+{
+ return((_ctype_ + 1)[c] & (_U|_L));
+}
+
+int
+isascii(int c)
+{
+ return c >= 0 && c< 128;
+}
+
+int
+iscntrl(int c)
+{
+ return((_ctype_ + 1)[c] & _C);
+}
+
+int
+isdigit(int c)
+{
+ return((_ctype_ + 1)[c] & _N);
+}
+
+int
+islower(int c)
+{
+ return((_ctype_ + 1)[c] & _L);
+}
+
+int
+isgraph(int c)
+{
+ return((_ctype_ + 1)[c] & (_P|_U|_L|_N));
+}
+
+int
+isprint(int c)
+{
+ return((_ctype_ + 1)[c] & (_P|_U|_L|_N|_B));
+}
+
+int
+ispunct(int c)
+{
+ return((_ctype_ + 1)[c] & _P);
+}
+
+int
+isspace(int c)
+{
+ return((_ctype_ + 1)[c] & _S);
+}
+
+int
+isupper(int c)
+{
+ return((_ctype_ + 1)[c] & _U);
+}
+
+int
+isxdigit(int c)
+{
+ return((_ctype_ + 1)[c] & ((_X)|(_N)));
+}
+
+int
+toascii(int c)
+{
+ return (c)&0177;
+}
+
+#endif // ifdef CYGPKG_LIBC_I18N_NEWLIB_CTYPE
+
+/* EOF newlibctype.cxx */
diff --git a/ecos/packages/language/c/libc/i18n/current/src/wcstombs.cxx b/ecos/packages/language/c/libc/i18n/current/src/wcstombs.cxx
new file mode 100644
index 0000000..94adf61
--- /dev/null
+++ b/ecos/packages/language/c/libc/i18n/current/src/wcstombs.cxx
@@ -0,0 +1,216 @@
+//===========================================================================
+//
+// wcstombs.cxx
+//
+// ISO standard wcstombs() routine
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jjohnstn
+// Contributors: jjohnstn
+// Date: 2000-11-02
+// Purpose: Provide ISO C wcstombs()
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+//
+// This code was based on newlib/libc/stdlib/wcstombs.c and newlib/libc/stdlib/wcstombs_r.c
+// The following is modified from the original newlib description:
+//
+/*
+FUNCTION
+<<wcstombs>>---wide char string to multibyte string converter
+
+INDEX
+ wcstombs
+
+ANSI_SYNOPSIS
+ #include <stdlib.h>
+ int wcstombs(const char *<[s]>, wchar_t *<[pwc]>, size_t <[n]>);
+
+TRAD_SYNOPSIS
+ #include <stdlib.h>
+ int wcstombs(<[s]>, <[pwc]>, <[n]>)
+ const char *<[s]>;
+ wchar_t *<[pwc]>;
+ size_t <[n]>;
+
+DESCRIPTION
+When CYGINT_LIBC_I18N_MB_REQUIRED is not defined, this is a minimal ANSI-conforming
+implementation of <<wcstombs>>. In this case,
+all wide-characters are expected to represent single bytes and so
+are converted simply by casting to char.
+
+When CYGINT_LIBC_I18N_MB_REQUIRED is defined, this routine calls the LC_CTYPE locale wcstomb_fn
+repeatedly to perform the conversion, passing a state variable to allow state dependent
+decoding. The result is based on the locale setting which may
+be restricted to a defined set of locales.
+
+RETURNS
+This implementation of <<wcstombs>> returns <<0>> if
+<[s]> is the empty string;
+it returns <<-1>> if CYGINT_LIBC_I18N_MB_REQUIRED and one of the
+wide-char characters does not represent a valid multi-byte character;
+otherwise it returns the minimum of: <<n>> or the
+number of bytes that are transferred to <<s>>, not including the
+nul terminator. If <[s]> is <<NULL>> it returns the number of
+bytes that would have been transferred, regardless of <<[n]>>.
+
+If the return value is -1, the state of the <<pwc>> string is
+indeterminate. If the input has a length of 0, the output
+string will be modified to contain a wchar_t nul terminator if
+<<n>> > 0.
+
+PORTABILITY
+<<wcstombs>> is required in the ANSI C standard. However, the precise
+effects vary with the locale.
+
+<<wcstombs>> requires no supporting OS subroutines.
+*/
+
+// CONFIGURATION
+
+#include <pkgconf/libc_i18n.h> // Configuration header
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions
+#include <cyg/infra/cyg_trac.h> // Tracing support
+#include <cyg/infra/cyg_ass.h> // Assertion support
+#include <locale.h>
+#include <stdlib.h> // Header for this file
+#include <string.h> // strcmp definition
+#include <stddef.h> // size_t definition
+#include "internal.h" // __current_ctype_locale
+
+#ifdef CYGSEM_LIBC_I18N_PER_THREAD_WCSTOMBS
+# include <pkgconf/kernel.h> // kernel configuration
+# include <cyg/kernel/thread.hxx> // per-thread data
+# include <cyg/kernel/thread.inl> // per-thread data
+# include <cyg/kernel/mutex.hxx> // mutexes
+#endif
+
+// TRACE
+
+#if defined(CYGDBG_USE_TRACING) && defined(CYGNUM_LIBC_I18N_WCSTOMBS_TRACE_LEVEL)
+static int wcstombs_trace = CYGNUM_LIBC_I18N_WCSTOMBS_TRACE_LEVEL;
+# define TL1 (0 < wcstombs_trace)
+#else
+# define TL1 (0)
+#endif
+
+// STATICS
+
+// FUNCTIONS
+
+size_t
+wcstombs ( char *s, const wchar_t *pwcs, size_t n )
+{
+ size_t retval;
+
+ CYG_REPORT_FUNCNAMETYPE( "wcstombs", "returning %ud" );
+ CYG_REPORT_FUNCARG3( "s=%08x, pwcs=%08x, n=%ud", s, pwcs, n );
+
+ if (s != NULL)
+ CYG_CHECK_DATA_PTR( s, "s is not a valid pointer!" );
+ if (pwcs != NULL)
+ CYG_CHECK_DATA_PTR( pwcs, "pwcs is not a valid pointer!" );
+
+#ifdef CYGINT_LIBC_I18N_MB_REQUIRED
+
+ char *ptr = s;
+ size_t max = n;
+ int state = 0;
+ char buff[8];
+ int i, num_to_copy;
+ int (*wctomb_fn)(char *, wchar_t, int *) = __current_ctype_locale->wctomb_fn;
+
+ if (wctomb_fn)
+ {
+ while (n > 0)
+ {
+ int bytes = (size_t)(wctomb_fn (buff, *pwcs, &state));
+ if (bytes == -1)
+ {
+ retval = (size_t)-1;
+ CYG_REPORT_RETVAL( retval );
+ return retval;
+ }
+ num_to_copy = ((int)n > bytes ? bytes : (int)n);
+ for (i = 0; i < num_to_copy; ++i)
+ *ptr++ = buff[i];
+
+ if (*pwcs == 0x00)
+ {
+ retval = ptr - s - ((int)n >= bytes);
+ CYG_REPORT_RETVAL( retval );
+ return retval;
+ }
+ ++pwcs;
+ n -= num_to_copy;
+ }
+
+ retval = max;
+ CYG_REPORT_RETVAL( retval );
+ return retval;
+ }
+#endif /* CYGINT_LIBC_I18N_MB_REQUIRED */
+
+ int count = 0;
+
+ if (s == NULL) {
+ while (*pwcs++ != 0) {
+ count++;
+ }
+ } else {
+ if (n != 0) {
+ do {
+ if ((*s++ = (char) *pwcs++) == 0)
+ break;
+ count++;
+ } while (--n != 0);
+ }
+ }
+
+ retval = count;
+ CYG_REPORT_RETVAL( retval );
+ return retval;
+} // wcstombs()
+
+// EOF wcstombs.cxx
diff --git a/ecos/packages/language/c/libc/i18n/current/src/wctomb.cxx b/ecos/packages/language/c/libc/i18n/current/src/wctomb.cxx
new file mode 100644
index 0000000..9c47226
--- /dev/null
+++ b/ecos/packages/language/c/libc/i18n/current/src/wctomb.cxx
@@ -0,0 +1,212 @@
+//===========================================================================
+//
+// wctomb.cxx
+//
+// ISO standard wctomb() routine
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jjohnstn
+// Contributors: jjohnstn
+// Date: 2000-11-02
+// Purpose: Provide ISO C wctomb() routine
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+//
+// This code was based on newlib/libc/stdlib/wctomb.c
+// The following is modified from the original newlib description:
+//
+/*
+FUNCTION
+<<wctomb>>---wide char to multibyte converter
+
+INDEX
+ wctomb
+
+ANSI_SYNOPSIS
+ #include <stdlib.h>
+ int wctomb(char *<[s]>, wchar_t <[wchar]>);
+
+TRAD_SYNOPSIS
+ #include <stdlib.h>
+ int wctomb(<[s]>, <[wchar]>)
+ char *<[s]>;
+ wchar_t <[wchar]>;
+
+DESCRIPTION
+When CYG_LIBC_MB_CAPABLE is not defined, this is a minimal ANSI-conforming
+implementation of <<wctomb>>. The
+only ``wide characters'' recognized are single bytes,
+and they are ``converted'' to themselves.
+
+When CYG_LIBC_MB_CAPABLE is defined, this routine calls the LC_CTYPE locale wctomb_fn to perform
+the conversion, passing a state variable to allow state dependent
+decoding. The result is based on the locale setting which may
+be restricted to a defined set of locales.
+
+Each call to <<wctomb>> modifies <<*<[s]>>> unless <[s]> is a null
+pointer or CYG_LIBC_MB_CAPABLE is defined and <[wchar]> is invalid.
+
+RETURNS
+This implementation of <<wctomb>> returns <<0>> if
+<[s]> is <<NULL>>; it returns <<-1>> if CYG_LIBC_MB_CAPABLE is enabled
+and the wchar is not a valid multi-byte character, it returns <<1>>
+if CYG_LIBC_MB_CAPABLE is not defined or the wchar is in reality a single
+byte character, otherwise it returns the number of bytes in the
+multi-byte character.
+
+PORTABILITY
+<<wctomb>> is required in the ANSI C standard. However, the precise
+effects vary with the locale.
+
+<<wctomb>> requires no supporting OS subroutines.
+*/
+
+
+// CONFIGURATION
+
+#include <pkgconf/libc_i18n.h> // Configuration header
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions
+#include <cyg/infra/cyg_trac.h> // Tracing support
+#include <cyg/infra/cyg_ass.h> // Assertion support
+#include <locale.h>
+#include <stdlib.h> // Header for this file
+#include <string.h> // strcmp definition
+#include <stddef.h> // size_t definition
+#include "internal.h" // __current_ctype_locale definition
+
+#ifdef CYGSEM_LIBC_I18N_PER_THREAD_MB
+# include <pkgconf/kernel.h> // kernel configuration
+# include <cyg/kernel/thread.hxx> // per-thread data
+# include <cyg/kernel/thread.inl> // per-thread data
+# include <cyg/kernel/mutex.hxx> // mutexes
+#endif /* CYGSEM_LIBC_I18N_PER_THREAD_MB */
+
+// TRACE
+
+#if defined(CYGDBG_USE_TRACING) && defined(CYGNUM_LIBC_I18N_WCTOMB_TRACE_LEVEL)
+static int wctomb_trace = CYGNUM_LIBC_I18N_WCTOMB_TRACE_LEVEL;
+# define TL1 (0 < wctomb_trace)
+#else
+# define TL1 (0)
+#endif
+
+// STATICS
+
+#ifdef CYGINT_LIBC_I18N_MB_REQUIRED
+# ifdef CYGSEM_LIBC_I18N_PER_THREAD_MB
+static volatile Cyg_Thread::cyg_data_index
+wctomb_data_index=CYGNUM_KERNEL_THREADS_DATA_MAX;
+static Cyg_Mutex wctomb_data_mutex CYG_INIT_PRIORITY(LIBC);
+# else
+static int cyg_libc_wctomb_last;
+# endif
+#endif
+
+int
+wctomb ( char *s, const wchar_t wchar )
+{
+#ifdef CYGINT_LIBC_I18N_MB_REQUIRED
+ int *state;
+#endif
+ int retval;
+
+ CYG_REPORT_FUNCNAMETYPE( "wctomb", "returning %d" );
+ CYG_REPORT_FUNCARG2( "s=%08x, wchar=%08x", s, wchar );
+
+ if (s != NULL)
+ CYG_CHECK_DATA_PTR( s, "s is not a valid pointer!" );
+
+#ifdef CYGINT_LIBC_I18N_MB_REQUIRED
+
+#ifdef CYGSEM_LIBC_I18N_PER_THREAD_MB
+ Cyg_Thread *self = Cyg_Thread::self();
+
+ // Get a per-thread data slot if we haven't got one already
+ // Do a simple test before locking and retrying test, as this is a
+ // rare situation
+ if (CYGNUM_KERNEL_THREADS_DATA_MAX==wctomb_data_index) {
+ wctomb_data_mutex.lock();
+ if (CYGNUM_KERNEL_THREADS_DATA_MAX==wctomb_data_index) {
+
+ // FIXME: Should use real CDL to pre-allocate a slot at compile
+ // time to ensure there are enough slots
+ wctomb_data_index = self->new_data_index();
+
+ CYG_ASSERT(wctomb_data_index >= 0, "failed to allocate data index" );
+ }
+ wctomb_data_mutex.unlock();
+ } // if
+
+ // we have a valid index now
+
+ state = (int *)self->get_data_ptr(wctomb_data_index);
+#else /* not CYGSEM_LIBC_I18N_PER_THREAD_MB */
+ state = &cyg_libc_wctomb_last;
+#endif /* not CYGSEM_LIBC_I18N_PER_THREAD_MB */
+
+ CYG_TRACE2( TL1, "Retrieved wctomb_last address %08x containing %d",
+ state, *state );
+
+ if (__current_ctype_locale->wctomb_fn)
+ {
+ retval = __current_ctype_locale->wctomb_fn (s, wchar, state);
+ CYG_REPORT_RETVAL( retval );
+ return retval;
+ }
+#endif /* CYGINT_LIBC_I18N_MB_REQUIRED */
+
+ if (s == NULL)
+ retval = 0;
+ else
+ {
+ *s = (char) wchar;
+ retval = 1;
+ }
+
+ CYG_REPORT_RETVAL( retval );
+ return retval;
+
+} // wctomb()
+
+// EOF wctomb.cxx
diff --git a/ecos/packages/language/c/libc/i18n/current/src/wctomb_jp.cxx b/ecos/packages/language/c/libc/i18n/current/src/wctomb_jp.cxx
new file mode 100644
index 0000000..eb67662
--- /dev/null
+++ b/ecos/packages/language/c/libc/i18n/current/src/wctomb_jp.cxx
@@ -0,0 +1,232 @@
+//===========================================================================
+//
+// wctomb_jp.cxx
+//
+// Internal __wctombc_jp() routine
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jjohnstn
+// Contributors: jjohnstn
+// Date: 2000-11-16
+// Purpose: Provide internal use __wctomb_jp() routine
+// Description: Japanese locale version of wctomb()
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+//
+// This code was taken from newlib/libc/stdlib/wctomb_r.c
+//
+
+// CONFIGURATION
+
+#include <pkgconf/libc_i18n.h> // Configuration header
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions
+#include <cyg/infra/cyg_trac.h> // Tracing support
+#include <cyg/infra/cyg_ass.h> // Assertion support
+#include <locale.h>
+#include <stdlib.h> // Header for this file
+#include <string.h> // strcmp definition
+#include <stddef.h> // size_t definition
+#include "internal.h" // internal _isxxxx macros
+
+#ifdef CYGSEM_LIBC_STDLIB_PER_THREAD_WCTOMB
+# include <pkgconf/kernel.h> // kernel configuration
+# include <cyg/kernel/thread.hxx> // per-thread data
+# include <cyg/kernel/thread.inl> // per-thread data
+# include <cyg/kernel/mutex.hxx> // mutexes
+#endif
+
+// TRACE
+
+#if defined(CYGDBG_USE_TRACING) && defined(CYGNUM_LIBC_STDLIB_WCTOMB_TRACE_LEVEL)
+static int wctomb_trace = CYGNUM_LIBC_STDLIB_WCTOMB_TRACE_LEVEL;
+# define TL1 (0 < wctomb_trace)
+#else
+# define TL1 (0)
+#endif
+
+// FUNCTIONS
+
+int
+__wctomb_jp ( char *s, wchar_t wchar, int *state )
+{
+ const char *cur_locale = __current_ctype_locale->name;
+ int retval;
+
+ CYG_REPORT_FUNCNAMETYPE( "__wctomb_jp", "returning %d" );
+ CYG_REPORT_FUNCARG3( "s=%08x, wchar=%08x, state=%08x", s, wchar, state );
+
+ if (s != NULL)
+ CYG_CHECK_DATA_PTR( s, "s is not a valid pointer!" );
+ CYG_CHECK_DATA_PTR( state, "state is not a valid pointer!" );
+
+ if (strlen (cur_locale) <= 1)
+ { /* fall-through */ }
+#ifdef CYGFUN_LIBC_I18N_LOCALE_C_SJIS
+ else if (!strcmp (cur_locale, "C-SJIS"))
+ {
+ unsigned char char2 = (unsigned char)wchar;
+ unsigned char char1 = (unsigned char)(wchar >> 8);
+
+ if (s == NULL)
+ {
+ retval = 0; /* not state-dependent */
+ CYG_REPORT_RETVAL( retval );
+ return retval;
+ }
+
+ if (char1 != 0x00)
+ {
+ /* first byte is non-zero..validate multi-byte char */
+ if (_issjis1(char1) && _issjis2(char2))
+ {
+ *s++ = (char)char1;
+ *s = (char)char2;
+ retval = 2;
+ }
+ else
+ retval = -1;
+
+ CYG_REPORT_RETVAL( retval );
+ return retval;
+ }
+ }
+#endif /* CYGFUN_LIBC_I18N_LOCALE_C_SJIS */
+#ifdef CYGFUN_LIBC_I18N_LOCALE_C_EUCJP
+ else if (!strcmp (cur_locale, "C-EUCJP"))
+ {
+ unsigned char char2 = (unsigned char)wchar;
+ unsigned char char1 = (unsigned char)(wchar >> 8);
+
+ if (s == NULL)
+ {
+ retval = 0; /* not state-dependent */
+ CYG_REPORT_RETVAL( retval );
+ return retval;
+ }
+
+ if (char1 != 0x00)
+ {
+ /* first byte is non-zero..validate multi-byte char */
+ if (_iseucjp (char1) && _iseucjp (char2))
+ {
+ *s++ = (char)char1;
+ *s = (char)char2;
+ retval = 2;
+ }
+ else
+ retval = -1;
+
+ CYG_REPORT_RETVAL( retval );
+ return retval;
+ }
+ }
+#endif /* CYGFUN_LIBC_I18N_LOCALE_C_EUCJP */
+#ifdef CYGFUN_LIBC_I18N_LOCALE_C_JIS
+ else if (!strcmp (cur_locale, "C-JIS"))
+ {
+ int cnt = 0;
+ unsigned char char2 = (unsigned char)wchar;
+ unsigned char char1 = (unsigned char)(wchar >> 8);
+
+ if (s == NULL)
+ {
+ retval = 1; /* state-dependent */
+ CYG_REPORT_RETVAL( retval );
+ return retval;
+ }
+
+ if (char1 != 0x00)
+ {
+ /* first byte is non-zero..validate multi-byte char */
+ if (_isjis (char1) && _isjis (char2))
+ {
+ if (*state == 0)
+ {
+ /* must switch from ASCII to JIS state */
+ *state = 1;
+ *s++ = ESC_CHAR;
+ *s++ = '$';
+ *s++ = 'B';
+ cnt = 3;
+ }
+ *s++ = (char)char1;
+ *s = (char)char2;
+ retval = cnt + 2;
+ }
+ else
+ retval = -1;
+ }
+ else
+ {
+ if (*state != 0)
+ {
+ /* must switch from JIS to ASCII state */
+ *state = 0;
+ *s++ = ESC_CHAR;
+ *s++ = '(';
+ *s++ = 'B';
+ cnt = 3;
+ }
+ *s = (char)char2;
+ retval = cnt + 1;
+ }
+
+ CYG_REPORT_RETVAL( retval );
+ return retval;
+ }
+#endif /* CYGFUN_LIBC_I18N_LOCALE_C_JIS */
+
+ if (s == NULL)
+ retval = 0;
+ else
+ {
+ *s = (char) wchar;
+ retval = 1;
+ }
+
+ CYG_REPORT_RETVAL( retval );
+ return retval;
+
+} // __wctomb_jp()
+
+// EOF wctomb_jp.cxx
diff --git a/ecos/packages/language/c/libc/i18n/current/tests/ctype.c b/ecos/packages/language/c/libc/i18n/current/tests/ctype.c
new file mode 100644
index 0000000..69b3ed3
--- /dev/null
+++ b/ecos/packages/language/c/libc/i18n/current/tests/ctype.c
@@ -0,0 +1,224 @@
+//=================================================================
+//
+// ctype.c
+//
+// General testcase for C library ctype functions
+//
+//=================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): ctarpy, jlarmour
+// Contributors:
+// Date: 2000-04-14
+// Description: Contains general testcode for C library ctype functions
+//
+//
+//####DESCRIPTIONEND####
+
+// INCLUDES
+
+#include <pkgconf/system.h>
+#include <stdlib.h>
+#include <ctype.h>
+#include <cyg/infra/testcase.h>
+
+
+// FUNCTIONS
+
+#ifndef CYGPKG_LIBC_STARTUP
+void cyg_user_start(void)
+#else
+int
+main( int argc, char *argv[] )
+#endif
+{
+ int c; // character we use as a parameter
+
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO( "Starting tests from testcase " __FILE__ " for C library "
+ "<ctype.h> functions" );
+
+ // Check isalnum
+ c = 't';
+ CYG_TEST_PASS_FAIL( isalnum(c), "isalnum('t')");
+ c = '2';
+ CYG_TEST_PASS_FAIL( isalnum(c), "isalnum('2')");
+ c = 2;
+ CYG_TEST_PASS_FAIL( !isalnum(c), "!isalnum(2)");
+ c = 127;
+ CYG_TEST_PASS_FAIL( !isalnum(c), "!isalnum(127)");
+
+ // Check isalpha
+ c = 'A';
+ CYG_TEST_PASS_FAIL( isalpha(c), "isalpha('A')");
+ c = 'a';
+ CYG_TEST_PASS_FAIL( isalpha(c), "isalpha('a')");
+ c = '2';
+ CYG_TEST_PASS_FAIL( !isalpha(c), "!isalpha('2')");
+ c = '\n';
+ CYG_TEST_PASS_FAIL( !isalpha(c), "!isalpha('newline')");
+
+ // Check iscntrl
+ c = 'a';
+ CYG_TEST_PASS_FAIL( !iscntrl(c), "!iscntrl('a')");
+ c = 7;
+ CYG_TEST_PASS_FAIL( iscntrl(c), "iscntrl('7')");
+ c = '\n';
+ CYG_TEST_PASS_FAIL( iscntrl(c), "iscntrl(newline)");
+ c = 0x7F;
+ CYG_TEST_PASS_FAIL( iscntrl(c), "iscntrl(0x7F)");
+
+ // Check isdigit
+ c = '2';
+ CYG_TEST_PASS_FAIL( isdigit(c), "isdigit('2')");
+ c = '0';
+ CYG_TEST_PASS_FAIL( isdigit(c), "isdigit('0')");
+ c = 't';
+ CYG_TEST_PASS_FAIL( !isdigit(c), "!isdigit('t')");
+
+ // Check isgraph
+ c = ')';
+ CYG_TEST_PASS_FAIL( isgraph(c), "isgraph(')')");
+ c = '~';
+ CYG_TEST_PASS_FAIL( isgraph(c), "isgraph('~')");
+ c = '9';
+ CYG_TEST_PASS_FAIL( isgraph(c), "isgraph('9')");
+ c = 9;
+ CYG_TEST_PASS_FAIL( !isgraph(c), "!isgraph(9)");
+ c = ' ';
+ CYG_TEST_PASS_FAIL( !isgraph(c), "!isgraph(' ')");
+ c = '\t';
+ CYG_TEST_PASS_FAIL( !isgraph(c), "!isgraph(tab)");
+ c = '\n';
+ CYG_TEST_PASS_FAIL( !isgraph(c), "!isgraph(newline)");
+ c = 0x7F;
+ CYG_TEST_PASS_FAIL( !isgraph(c), "!isgraph(DEL)");
+ c = 200;
+ CYG_TEST_PASS_FAIL( !isgraph(c), "!isgraph(200)");
+ c = '\0';
+ CYG_TEST_PASS_FAIL( !isgraph(c), "!isgraph(NUL)");
+
+ // Check islower
+ c = 'J';
+ CYG_TEST_PASS_FAIL( !islower(c), "islower('J')");
+ c = 'j';
+ CYG_TEST_PASS_FAIL( islower(c), "islower('j')");
+ c = '5';
+ CYG_TEST_PASS_FAIL( !islower(c), "!islower(5)");
+
+ // Check isprint
+ c = ' ';
+ CYG_TEST_PASS_FAIL( isprint(c), "isprint(' ')");
+ c = 'x';
+ CYG_TEST_PASS_FAIL( isprint(c), "isprint('x')");
+ c = '\b';
+ CYG_TEST_PASS_FAIL( !isprint(c), "!isprint(backspace)");
+
+ // Check ispunct
+ c = '.';
+ CYG_TEST_PASS_FAIL( ispunct(c), "ispunct('.')");
+ c = '#';
+ CYG_TEST_PASS_FAIL( ispunct(c), "ispunct('#')");
+ c = '@';
+ CYG_TEST_PASS_FAIL( ispunct(c), "ispunct('@')");
+ c = 'f';
+ CYG_TEST_PASS_FAIL( !ispunct(c), "!ispunct('f')");
+ c = '7';
+ CYG_TEST_PASS_FAIL( !ispunct(c), "!ispunct('7')");
+ c = '\n';
+ CYG_TEST_PASS_FAIL( !ispunct(c), "!ispunct('newline')");
+
+ // Check isspace
+ c = ' ';
+ CYG_TEST_PASS_FAIL( isspace(c), "isspace(' ')");
+ c = '\t';
+ CYG_TEST_PASS_FAIL( isspace(c), "isspace(tab)");
+ c = '\r';
+ CYG_TEST_PASS_FAIL( isspace(c), "isspace(return)");
+ c = '\v';
+ CYG_TEST_PASS_FAIL( isspace(c), "isspace(vertical tab)");
+ c = '\n';
+ CYG_TEST_PASS_FAIL( isspace(c), "isspace(newline)");
+ c = 'd';
+ CYG_TEST_PASS_FAIL( !isspace(c), "!isspace('d')");
+ c = ',';
+ CYG_TEST_PASS_FAIL( !isspace(c), "!isspace(',')");
+
+ // Check isupper
+ c = 'A';
+ CYG_TEST_PASS_FAIL( isupper(c), "isupper('A')");
+ c = 'a';
+ CYG_TEST_PASS_FAIL( !isupper(c), "!isupper('a')");
+ c = '2';
+ CYG_TEST_PASS_FAIL( !isupper(c), "!isupper('2')");
+ c = '\b';
+ CYG_TEST_PASS_FAIL( !isupper(c), "!isupper(backspace)");
+
+ // Check isxdigit
+ c = 'f';
+ CYG_TEST_PASS_FAIL( isxdigit(c), "isxdigit('f')");
+ c = 'D';
+ CYG_TEST_PASS_FAIL( isxdigit(c), "isxdigit('D')");
+ c = '1';
+ CYG_TEST_PASS_FAIL( isxdigit(c), "isxdigit('1')");
+ c = '0';
+ CYG_TEST_PASS_FAIL( isxdigit(c), "isxdigit('0')");
+ c = 'g';
+ CYG_TEST_PASS_FAIL( !isxdigit(c), "!isxdigit('g')");
+ c = 'x';
+ CYG_TEST_PASS_FAIL( !isxdigit(c), "!isxdigit('x')");
+
+ // Check tolower
+ c = 'F';
+ CYG_TEST_PASS_FAIL( tolower(c) == 'f', "tolower('F')");
+ c = 'g';
+ CYG_TEST_PASS_FAIL( tolower(c) == 'g', "tolower('g')");
+ c = '3';
+ CYG_TEST_PASS_FAIL( tolower(c) == '3', "tolower('3')");
+
+ // Check toupper
+ c = 'f';
+ CYG_TEST_PASS_FAIL( toupper(c) == 'F', "toupper('f')");
+ c = 'G';
+ CYG_TEST_PASS_FAIL( toupper(c) == 'G', "toupper('G')");
+ c = ',';
+ CYG_TEST_PASS_FAIL( toupper(c) == ',', "toupper(',')");
+
+ CYG_TEST_FINISH( "Finished tests from testcase " __FILE__ " for C library "
+ "<ctype.h> functions" );
+} // main()
+
+// EOF ctype.c
diff --git a/ecos/packages/language/c/libc/i18n/current/tests/i18nmb.c b/ecos/packages/language/c/libc/i18n/current/tests/i18nmb.c
new file mode 100644
index 0000000..13dfade
--- /dev/null
+++ b/ecos/packages/language/c/libc/i18n/current/tests/i18nmb.c
@@ -0,0 +1,673 @@
+//=================================================================
+//
+// i18nmb.c
+//
+// General testcase for C library multibyte functions
+//
+//=================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jjohnstn
+// Contributors:
+// Date: 2000-11-24
+// Description: Contains general testcode for C library multibyte character functions
+//
+//
+//####DESCRIPTIONEND####
+
+// INCLUDES
+
+#include <pkgconf/system.h>
+#include <pkgconf/libc_i18n.h> // Configuration header
+#include <stdlib.h>
+#include <locale.h>
+#include <stdio.h>
+#include <cyg/infra/testcase.h>
+#include <string.h>
+
+// FUNCTIONS
+
+#ifndef CYGPKG_LIBC_STARTUP
+void cyg_user_start(void)
+#else
+int
+main( int argc, char *argv[] )
+#endif
+{
+
+#ifdef CYGFUN_LIBC_I18N_LOCALE_C_JIS
+ unsigned char in_jis[] =
+ "abcd\x1b$B\x23\x25\x45\x46\x1b(B23";
+ unsigned char fmt_jis[] =
+ "abcd\x1b$B\x23\x25\x45\x46\x1b(B%d";
+
+ unsigned char * testjis[] = {
+ "abcd\x1b$B\x23\x25\x45\x46\x1b(B",
+ "abcd\x1b$B\x23\x25\x1b(Befg",
+ "\x1b$B\x23\x7f\x1b(B",
+ "\x1b$B\x44\x45\x46\x1b(B",
+ "\x1b$B",
+ "\x1b$B\x1b(B",
+ "\x1b$B\x44\x45",
+ };
+
+ int mblenjis0[] = { 1, 1, 1, 1, 5, 5, 0};
+ int mblenjis1[] = { 1, 1, 1, 1, 8, 1, 1, 1, 0 };
+ int mblenjis2[] = { -1 };
+ int mblenjis3[] = { 5, -1 };
+ int mblenjis4[] = { -1 };
+ int mblenjis5[] = { -1 };
+ int mblenjis6[] = { -1 };
+
+ int *mblenjis[] = {
+ mblenjis0,
+ mblenjis1,
+ mblenjis2,
+ mblenjis3,
+ mblenjis4,
+ mblenjis5,
+ mblenjis6,
+ };
+
+ wchar_t mbtowcjis0[] = {
+ (wchar_t)'a',
+ (wchar_t)'b',
+ (wchar_t)'c',
+ (wchar_t)'d',
+ (wchar_t)0x2325,
+ (wchar_t)0x4546,
+ (wchar_t)0
+ };
+#endif /* CYGFUN_LIBC_I18N_LOCALE_C_JIS */
+
+#ifdef CYGFUN_LIBC_I18N_LOCALE_C_SJIS
+ unsigned char in_sjis[] =
+ "ab\x81\x40\x9f\x7e\xe0\x80\xef\xfcgh23";
+ unsigned char fmt_sjis[] =
+ "ab\x81\x40\x9f\x7e\xe0\x80\xef\xfcgh%d";
+
+ unsigned char * testsjis[] = {
+ "ab\x81\x40\x9f\x7e\xe0\x80\xef\xfcgh",
+ "\x80\x40",
+ "\xa0\x40",
+ "\xdf\x40",
+ "\xf0\x40",
+ "\x84\x3f",
+ "\x85\x7f",
+ "\x86\xfd",
+ "\x81",
+ };
+
+ int mblensjis0[] = { 1, 1, 2, 2, 2, 2, 1, 1, 0};
+ int mblensjis1[] = { 1, 1, 0 };
+ int mblensjis2[] = { 1, 1, 0 };
+ int mblensjis3[] = { 1, 1, 0 };
+ int mblensjis4[] = { 1, 1, 0 };
+ int mblensjis5[] = { -1 };
+ int mblensjis6[] = { -1 };
+ int mblensjis7[] = { -1 };
+ int mblensjis8[] = { -1 };
+
+ int *mblensjis[] = {
+ mblensjis0,
+ mblensjis1,
+ mblensjis2,
+ mblensjis3,
+ mblensjis4,
+ mblensjis5,
+ mblensjis6,
+ mblensjis7,
+ mblensjis8,
+ };
+
+ wchar_t mbtowcsjis0[] = {
+ (wchar_t)'a',
+ (wchar_t)'b',
+ (wchar_t)0x8140,
+ (wchar_t)0x9f7e,
+ (wchar_t)0xe080,
+ (wchar_t)0xeffc,
+ (wchar_t)'g',
+ (wchar_t)'h',
+ (wchar_t)0
+ };
+#endif /* CYGFUN_LIBC_I18N_LOCALE_C_SJIS */
+
+#ifdef CYGFUN_LIBC_I18N_LOCALE_C_EUCJP
+ unsigned char in_eucjp[] =
+ "ab\xa1\xa1\xa2\xfe\xe0\xfd\xef\xfcgh23";
+ unsigned char fmt_eucjp[] =
+ "ab\xa1\xa1\xa2\xfe\xe0\xfd\xef\xfcgh%d";
+
+ unsigned char * testeucjp[] = {
+ "ab\xa1\xa1\xa2\xfe\xe0\xfd\xef\xfcgh",
+ "\x80\xa1",
+ "\xa0\xa1",
+ "\xff\xa1",
+ "\x40\xa1",
+ "\xa3\x3f",
+ "\xa4\x7f",
+ "\xa5\xff",
+ "\xb1",
+ };
+
+ int mbleneucjp0[] = { 1, 1, 2, 2, 2, 2, 1, 1, 0};
+ int mbleneucjp1[] = { 1, -1 };
+ int mbleneucjp2[] = { 1, -1 };
+ int mbleneucjp3[] = { 1, -1 };
+ int mbleneucjp4[] = { 1, -1 };
+ int mbleneucjp5[] = { -1 };
+ int mbleneucjp6[] = { -1 };
+ int mbleneucjp7[] = { -1 };
+ int mbleneucjp8[] = { -1 };
+
+ int *mbleneucjp[] = {
+ mbleneucjp0,
+ mbleneucjp1,
+ mbleneucjp2,
+ mbleneucjp3,
+ mbleneucjp4,
+ mbleneucjp5,
+ mbleneucjp6,
+ mbleneucjp7,
+ mbleneucjp8,
+ };
+
+ wchar_t mbtowceucjp0[] = {
+ (wchar_t)'a',
+ (wchar_t)'b',
+ (wchar_t)0xa1a1,
+ (wchar_t)0xa2fe,
+ (wchar_t)0xe0fd,
+ (wchar_t)0xeffc,
+ (wchar_t)'g',
+ (wchar_t)'h',
+ (wchar_t)0
+ };
+#endif /* CYGFUN_LIBC_I18N_LOCALE_C_EUCJP */
+
+ wchar_t wcbuff[100];
+ char buff[100];
+
+ char *ptr, *locale CYGBLD_ATTRIB_UNUSED;
+ int result, i, j, k CYGBLD_ATTRIB_UNUSED;
+ wchar_t *wcptr;
+
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO( "Starting tests from testcase " __FILE__ " for C library "
+ "<stdlib.h> multi-byte character functions" );
+
+ setlocale (LC_ALL, "C");
+
+ CYG_TEST_PASS_FAIL( MB_CUR_MAX == 1, "MB_CUR_MAX");
+
+ CYG_TEST_PASS_FAIL( mblen(NULL, 0) == 0, "mblen(NULL, 0)");
+
+ CYG_TEST_PASS_FAIL( mbtowc(NULL, NULL, 0) == 0, "mbtowc(NULL, NULL, 0)");
+
+ CYG_TEST_PASS_FAIL( wctomb(NULL, 0) == 0, "wctomb(NULL, 0)");
+
+ ptr = "abcdefghijklmnop";
+ result = 1;
+ j = 0;
+ while (result > 0)
+ {
+ result = mblen (ptr, MB_CUR_MAX);
+ ptr += result;
+ ++j;
+ }
+
+ CYG_TEST_PASS_FAIL( result == 0, "mblen (ptr, MB_CUR_MAX)");
+ CYG_TEST_PASS_FAIL( j == strlen("abcdefghijklmnop") + 1, "j");
+
+ ptr = "1234567890";
+ wcptr = wcbuff;
+ memset(wcbuff, 'K', 40);
+ result = 1;
+ while (result > 0)
+ {
+ result = mbtowc (wcptr, ptr, MB_CUR_MAX);
+ CYG_TEST_PASS_FAIL( *wcptr == (wchar_t)*ptr, "*wcptr");
+ ptr += result;
+ wcptr++;
+ ++j;
+ }
+
+ CYG_TEST_PASS_FAIL( wcptr - wcbuff == 11, "wcptr - wcbuff");
+ CYG_TEST_PASS_FAIL( wcbuff[10] == 0, "wcbuff[10]");
+
+ memset (buff, 'K', 40);
+ ptr = buff;
+ wcptr = wcbuff;
+ result = 1;
+
+ for (i = 0; i < 11; ++i)
+ {
+ result = wctomb (ptr, *wcptr);
+ ptr += result;
+ wcptr++;
+ }
+
+ CYG_TEST_PASS_FAIL( strcmp("1234567890", buff) == 0, "strcmp(\"1234567890\", buff");
+
+ memset (wcbuff, 'K', 40);
+ result = mbstowcs (wcbuff, "abcdef", 7);
+ CYG_TEST_PASS_FAIL( result == 6, "mbstowcs (wcbuff, \"abcdef\", 7)");
+ CYG_TEST_PASS_FAIL(*((char *)(&wcbuff[7])) == 'K', "*((char *)(&wcbuff[7]))");
+ CYG_TEST_PASS_FAIL( wcbuff[6] == 0, "wcbuff[6]");
+
+ memset(buff, 'K', 20);
+ result = wcstombs (buff, wcbuff, 20);
+ CYG_TEST_PASS_FAIL( result == 6, "wcstombs (buff, wcbuff, 20)");
+ CYG_TEST_PASS_FAIL( strcmp(buff, "abcdef") == 0, "strcmp(buff, \"abcdef\")");
+
+#ifdef CYGFUN_LIBC_I18N_LOCALE_C_JIS
+
+ CYG_TEST_INFO( "Testing C-JIS locale" );
+
+ locale = setlocale (LC_CTYPE, "C-JIS");
+ CYG_TEST_PASS_FAIL( locale != NULL, "setlocale (LC_CTYPE, \"C-JIS\")");
+
+ CYG_TEST_PASS_FAIL( strcmp(locale, "C-JIS") == 0, "strcmp(locale, \"C-JIS\")");
+
+ locale = setlocale (LC_CTYPE, NULL);
+ CYG_TEST_PASS_FAIL( strcmp(locale, "C-JIS") == 0, "setlocale(LC_CTYPE, NULL)");
+
+ CYG_TEST_PASS_FAIL( MB_CUR_MAX == 8, "MB_CUR_MAX");
+
+ CYG_TEST_PASS_FAIL( mblen(NULL, 0) != 0, "mblen(NULL, 0)");
+
+ CYG_TEST_PASS_FAIL( mbtowc(NULL, NULL, 0) != 0, "mbtowc(NULL, NULL, 0)");
+
+ CYG_TEST_PASS_FAIL( wctomb(NULL, 0) != 0, "wctomb(NULL, 0)");
+
+ for (i = 0; i < sizeof(testjis) / sizeof(char *); ++i)
+ {
+ ptr = testjis[i];
+ result = 1;
+ j = 0;
+ while (result > 0)
+ {
+ result = mblen (ptr, MB_CUR_MAX);
+ CYG_TEST_PASS_FAIL( result == mblenjis[i][j], "mblen (ptr, MB_CUR_MAX)");
+ ptr += result;
+ ++j;
+ }
+ }
+
+ ptr = testjis[0];
+ wcptr = wcbuff;
+ memset(wcbuff, 'K', 40);
+ result = 1;
+ j = 0;
+ while (result > 0)
+ {
+ result = mbtowc (wcptr, ptr, MB_CUR_MAX);
+ CYG_TEST_PASS_FAIL( result == mblenjis0[j], "mbtowc (wcptr, ptr, MB_CUR_MAX)");
+ CYG_TEST_PASS_FAIL( *wcptr == mbtowcjis0[j], "*wcptr");
+ ptr += result;
+ wcptr++;
+ ++j;
+ }
+
+ CYG_TEST_PASS_FAIL( wcptr - wcbuff == 7, "wcptr - wcbuff");
+ CYG_TEST_PASS_FAIL( wcbuff[6] == 0, "wcbuff[6]");
+
+ memset (buff, 'K', 40);
+ ptr = buff;
+ wcptr = wcbuff;
+ result = 1;
+
+ for (i = 0; i < 7; ++i)
+ {
+ result = wctomb (ptr, *wcptr);
+ ptr += result;
+ wcptr++;
+ }
+
+ CYG_TEST_PASS_FAIL( strcmp(testjis[0], buff) == 0, "strcmp(testjis[0], buff");
+
+ result = wctomb (buff, (wchar_t)0x1111);
+ CYG_TEST_PASS_FAIL( result == -1, "wctomb(buff, (wchar_t)0x1111)");
+
+ result = mbstowcs (wcbuff, testjis[3], 8);
+ CYG_TEST_PASS_FAIL( result == -1, "mbstowcs(wcbuff, testjis[3], 8)");
+
+ memset (wcbuff, 'K', 40);
+ result = mbstowcs (wcbuff, testjis[0], 8);
+ CYG_TEST_PASS_FAIL( result == 6, "mbstowcs(wcbuff, testjis[0], 8)");
+ CYG_TEST_PASS_FAIL( *((char *)(&wcbuff[7])) == 'K', "*((char *)(&wcbuff[7]))");
+ CYG_TEST_PASS_FAIL( wcbuff[6] == 0, "wcbuff[6]");
+
+ memset (wcbuff, 'K', 40);
+ result = mbstowcs (wcbuff, testjis[0], 6);
+ CYG_TEST_PASS_FAIL( result == 6, "mbstowcs (wcbuff, testjis[0], 6)");
+ CYG_TEST_PASS_FAIL( *((char *)(&wcbuff[6])) == 'K', "*((char *)(&wcbuff[6]))");
+
+ memset (wcbuff, 'K', 40);
+ result = mbstowcs (wcbuff, testjis[0], 7);
+ CYG_TEST_PASS_FAIL( result == 6, "mbstowcs (wcbuff, testjis[0], 7)");
+ CYG_TEST_PASS_FAIL(*((char *)(&wcbuff[7])) == 'K', "*((char *)(&wcbuff[7]))");
+ CYG_TEST_PASS_FAIL( wcbuff[6] == 0, "wcbuff[6]");
+
+ memset(buff, 'K', 20);
+ result = wcstombs (buff, wcbuff, 20);
+ CYG_TEST_PASS_FAIL( result == 14, "wcstombs (buff, wcbuff, 20)");
+ CYG_TEST_PASS_FAIL( strcmp(buff, testjis[0]) == 0, "strcmp(buff, testjis[0])");
+
+ memset (buff, 'K', 20);
+ result = wcstombs (buff, wcbuff, 14);
+ CYG_TEST_PASS_FAIL( result == 14, "wcstombs (buff, wcbuff, 14)");
+ CYG_TEST_PASS_FAIL( memcmp (buff, testjis[0], 14) == 0, "memcmp (buff, testjis[0], 14)");
+ CYG_TEST_PASS_FAIL( buff[14] == 'K', "buff[14]");
+
+ memset (buff, 'K', 20);
+ result = wcstombs (buff, wcbuff, 15);
+ CYG_TEST_PASS_FAIL( result == 14, "wcstombs (buff, wcbuff, 15)");
+ CYG_TEST_PASS_FAIL( memcmp (buff, testjis[0], 14) == 0, "memcmp (buff, testjis[0], 14)");
+ CYG_TEST_PASS_FAIL( buff[14] == '\0', "buff[14]");
+
+ result = wcstombs (buff, (wchar_t *)"\x23\x10", 2);
+ CYG_TEST_PASS_FAIL( result == -1, "wcstombs (buff, (wchar_t *)\"\x23\x10\", 2)");
+
+ result = sscanf (in_jis, fmt_jis, &k);
+ CYG_TEST_PASS_FAIL( result == 1, "sscanf (in_jis, fmt_jis, &k)");
+ CYG_TEST_PASS_FAIL( k == 23, "k");
+
+ sprintf (buff, fmt_jis, 23);
+ CYG_TEST_PASS_FAIL( strcmp(buff, in_jis) == 0, "sprintf(buff, fmt_jis, 23)");
+
+ locale = setlocale(LC_ALL, "C");
+ locale = setlocale(LC_CTYPE, NULL);
+
+ CYG_TEST_PASS_FAIL( strcmp(locale, "C") == 0, "previous locale");
+ CYG_TEST_PASS_FAIL( MB_CUR_MAX == 1, "MB_CUR_MAX");
+
+#endif /* CYGFUN_LIBC_I18N_LOCALE_C_JIS */
+
+#ifdef CYGFUN_LIBC_I18N_LOCALE_C_SJIS
+
+ CYG_TEST_INFO( "Testing C-SJIS locale" );
+
+ locale = setlocale (LC_CTYPE, "C-SJIS");
+ CYG_TEST_PASS_FAIL( locale != NULL, "setlocale (LC_CTYPE, \"C-SJIS\")");
+
+ CYG_TEST_PASS_FAIL( strcmp(locale, "C-SJIS") == 0, "setlocale(LC_CTYPE, \"C-SJIS\")");
+
+ locale = setlocale (LC_CTYPE, NULL);
+ CYG_TEST_PASS_FAIL( strcmp(locale, "C-SJIS") == 0, "setlocale(LC_CTYPE, NULL)");
+
+ CYG_TEST_PASS_FAIL( MB_CUR_MAX == 2, "MB_CUR_MAX");
+
+ CYG_TEST_PASS_FAIL( mblen(NULL, 0) == 0, "mblen(NULL, 0)");
+
+ CYG_TEST_PASS_FAIL( mbtowc(NULL, NULL, 0) == 0, "mbtowc(NULL, NULL, 0)");
+
+ CYG_TEST_PASS_FAIL( wctomb(NULL, 0) == 0, "wctomb(NULL, 0)");
+
+ for (i = 0; i < sizeof(testsjis) / sizeof(char *); ++i)
+ {
+ ptr = testsjis[i];
+ result = 1;
+ j = 0;
+ while (result > 0)
+ {
+ result = mblen (ptr, MB_CUR_MAX);
+ CYG_TEST_PASS_FAIL( result == mblensjis[i][j], "mblen (ptr, MB_CUR_MAX)");
+ ptr += result;
+ ++j;
+ }
+ }
+
+ ptr = testsjis[0];
+ wcptr = wcbuff;
+ memset(wcbuff, 'K', 40);
+ result = 1;
+ j = 0;
+ while (result > 0)
+ {
+ result = mbtowc (wcptr, ptr, MB_CUR_MAX);
+ CYG_TEST_PASS_FAIL( result == mblensjis0[j], "mbtowc (wcptr, ptr, MB_CUR_MAX)");
+ CYG_TEST_PASS_FAIL( *wcptr == mbtowcsjis0[j], "*wcptr");
+ ptr += result;
+ wcptr++;
+ ++j;
+ }
+
+ CYG_TEST_PASS_FAIL( wcptr - wcbuff == 9, "wcptr - wcbuff");
+ CYG_TEST_PASS_FAIL( wcbuff[8] == 0, "wcbuff[8]");
+
+ memset (buff, 'K', 40);
+ ptr = buff;
+ wcptr = wcbuff;
+ result = 1;
+
+ for (i = 0; i < 9; ++i)
+ {
+ result = wctomb (ptr, *wcptr);
+ ptr += result;
+ wcptr++;
+ }
+
+ CYG_TEST_PASS_FAIL( strcmp(testsjis[0], buff) == 0, "strcmp(testsjis[0], buff");
+
+ result = wctomb (buff, (wchar_t)0x1111);
+ CYG_TEST_PASS_FAIL( result == -1, "wctomb(buff, (wchar_t)0x1111)");
+
+ result = mbstowcs (wcbuff, testsjis[5], 8);
+ CYG_TEST_PASS_FAIL( result == -1, "mbstowcs(wcbuff, testjis[3], 8)");
+
+ memset (wcbuff, 'K', 40);
+ result = mbstowcs (wcbuff, testsjis[0], 20);
+ CYG_TEST_PASS_FAIL( result == 8, "mbstowcs(wcbuff, testsjis[0], 20)");
+ CYG_TEST_PASS_FAIL( *((char *)(&wcbuff[9])) == 'K', "*((char *)(&wcbuff[9]))");
+ CYG_TEST_PASS_FAIL( wcbuff[8] == 0, "wcbuff[8]");
+
+ memset (wcbuff, 'K', 40);
+ result = mbstowcs (wcbuff, testsjis[0], 8);
+ CYG_TEST_PASS_FAIL( result == 8, "mbstowcs (wcbuff, testsjis[0], 8)");
+ CYG_TEST_PASS_FAIL( *((char *)(&wcbuff[8])) == 'K', "*((char *)(&wcbuff[8]))");
+
+ memset (wcbuff, 'K', 40);
+ result = mbstowcs (wcbuff, testsjis[0], 9);
+ CYG_TEST_PASS_FAIL( result == 8, "mbstowcs (wcbuff, testsjis[0], 9)");
+ CYG_TEST_PASS_FAIL(*((char *)(&wcbuff[9])) == 'K', "*((char *)(&wcbuff[9]))");
+ CYG_TEST_PASS_FAIL( wcbuff[8] == 0, "wcbuff[8]");
+
+ memset(buff, 'K', 20);
+ result = wcstombs (buff, wcbuff, 20);
+ CYG_TEST_PASS_FAIL( result == 12, "wcstombs (buff, wcbuff, 20)");
+ CYG_TEST_PASS_FAIL( strcmp(buff, testsjis[0]) == 0, "strcmp(buff, testjis[0])");
+
+ memset (buff, 'K', 20);
+ result = wcstombs (buff, wcbuff, 12);
+ CYG_TEST_PASS_FAIL( result == 12, "wcstombs (buff, wcbuff, 12)");
+ CYG_TEST_PASS_FAIL( memcmp (buff, testsjis[0], 12) == 0, "memcmp (buff, testsjis[0], 12)");
+ CYG_TEST_PASS_FAIL( buff[12] == 'K', "buff[12]");
+
+ memset (buff, 'K', 20);
+ result = wcstombs (buff, wcbuff, 13);
+ CYG_TEST_PASS_FAIL( result == 12, "wcstombs (buff, wcbuff, 12)");
+ CYG_TEST_PASS_FAIL( memcmp (buff, testsjis[0], 13) == 0, "memcmp (buff, testsjis[0], 13)");
+ CYG_TEST_PASS_FAIL( buff[12] == '\0', "buff[12]");
+
+ result = wcstombs (buff, (wchar_t *)"\x23\x10", 2);
+ CYG_TEST_PASS_FAIL( result == -1, "wcstombs (buff, (wchar_t *)\"\x23\x10\", 2)");
+
+ result = sscanf (in_sjis, fmt_sjis, &k);
+ CYG_TEST_PASS_FAIL( result == 1, "sscanf (in_sjis, fmt_sjis, &k)");
+ CYG_TEST_PASS_FAIL( k == 23, "k");
+
+ sprintf (buff, fmt_sjis, 23);
+ CYG_TEST_PASS_FAIL( strcmp(buff, in_sjis) == 0, "sprintf(buff, fmt_sjis, 23)");
+
+ locale = setlocale(LC_ALL, "C");
+ locale = setlocale(LC_CTYPE, NULL);
+
+ CYG_TEST_PASS_FAIL( strcmp(locale, "C") == 0, "previous locale");
+ CYG_TEST_PASS_FAIL( MB_CUR_MAX == 1, "MB_CUR_MAX");
+
+#endif /* CYGFUN_LIBC_I18N_LOCALE_C_SJIS */
+
+#ifdef CYGFUN_LIBC_I18N_LOCALE_C_EUCJP
+
+ CYG_TEST_INFO( "Testing C-EUCJP locale" );
+
+ locale = setlocale (LC_CTYPE, "C-EUCJP");
+ CYG_TEST_PASS_FAIL( locale != NULL, "setlocale (LC_CTYPE, \"C-EUCJP\")");
+
+ CYG_TEST_PASS_FAIL( strcmp(locale, "C-EUCJP") == 0, "setlocale(LC_CTYPE, \"C-EUCJP\")");
+
+ locale = setlocale (LC_CTYPE, NULL);
+ CYG_TEST_PASS_FAIL( strcmp(locale, "C-EUCJP") == 0, "current locale");
+
+ CYG_TEST_PASS_FAIL( MB_CUR_MAX == 2, "MB_CUR_MAX");
+
+ CYG_TEST_PASS_FAIL( mblen(NULL, 0) == 0, "mblen(NULL, 0)");
+
+ CYG_TEST_PASS_FAIL( mbtowc(NULL, NULL, 0) == 0, "mbtowc(NULL, NULL, 0)");
+
+ CYG_TEST_PASS_FAIL( wctomb(NULL, 0) == 0, "wctomb(NULL, 0)");
+
+ for (i = 0; i < sizeof(testeucjp) / sizeof(char *); ++i)
+ {
+ ptr = testeucjp[i];
+ result = 1;
+ j = 0;
+ while (result > 0)
+ {
+ result = mblen (ptr, MB_CUR_MAX);
+ CYG_TEST_PASS_FAIL( result == mbleneucjp[i][j], "mblen (ptr, MB_CUR_MAX)");
+ ptr += result;
+ ++j;
+ }
+ }
+
+ ptr = testeucjp[0];
+ wcptr = wcbuff;
+ memset(wcbuff, 'K', 40);
+ result = 1;
+ j = 0;
+ while (result > 0)
+ {
+ result = mbtowc (wcptr, ptr, MB_CUR_MAX);
+ CYG_TEST_PASS_FAIL( result == mbleneucjp0[j], "mbtowc (wcptr, ptr, MB_CUR_MAX)");
+ CYG_TEST_PASS_FAIL( *wcptr == mbtowceucjp0[j], "*wcptr");
+ ptr += result;
+ wcptr++;
+ ++j;
+ }
+
+ CYG_TEST_PASS_FAIL( wcptr - wcbuff == 9, "wcptr - wcbuff");
+ CYG_TEST_PASS_FAIL( wcbuff[8] == 0, "wcbuff[8]");
+
+ memset (buff, 'K', 40);
+ ptr = buff;
+ wcptr = wcbuff;
+ result = 1;
+
+ for (i = 0; i < 9; ++i)
+ {
+ result = wctomb (ptr, *wcptr);
+ ptr += result;
+ wcptr++;
+ }
+
+ CYG_TEST_PASS_FAIL( strcmp(testeucjp[0], buff) == 0, "strcmp(testeucjp[0], buff");
+
+ result = wctomb (buff, (wchar_t)0x1111);
+ CYG_TEST_PASS_FAIL( result == -1, "wctomb(buff, (wchar_t)0x1111)");
+
+ result = mbstowcs (wcbuff, testeucjp[5], 8);
+ CYG_TEST_PASS_FAIL( result == -1, "mbstowcs(wcbuff, testjis[3], 8)");
+
+ memset (wcbuff, 'K', 40);
+ result = mbstowcs (wcbuff, testeucjp[0], 20);
+ CYG_TEST_PASS_FAIL( result == 8, "mbstowcs(wcbuff, testeucjp[0], 20)");
+ CYG_TEST_PASS_FAIL( *((char *)(&wcbuff[9])) == 'K', "*((char *)(&wcbuff[9]))");
+ CYG_TEST_PASS_FAIL( wcbuff[8] == 0, "wcbuff[8]");
+
+ memset (wcbuff, 'K', 40);
+ result = mbstowcs (wcbuff, testeucjp[0], 8);
+ CYG_TEST_PASS_FAIL( result == 8, "mbstowcs (wcbuff, testeucjp[0], 8)");
+ CYG_TEST_PASS_FAIL( *((char *)(&wcbuff[8])) == 'K', "*((char *)(&wcbuff[8]))");
+
+ memset (wcbuff, 'K', 40);
+ result = mbstowcs (wcbuff, testeucjp[0], 9);
+ CYG_TEST_PASS_FAIL( result == 8, "mbstowcs (wcbuff, testeucjp[0], 9)");
+ CYG_TEST_PASS_FAIL(*((char *)(&wcbuff[9])) == 'K', "*((char *)(&wcbuff[9]))");
+ CYG_TEST_PASS_FAIL( wcbuff[8] == 0, "wcbuff[8]");
+
+ memset(buff, 'K', 20);
+ result = wcstombs (buff, wcbuff, 20);
+ CYG_TEST_PASS_FAIL( result == 12, "wcstombs (buff, wcbuff, 20)");
+ CYG_TEST_PASS_FAIL( strcmp(buff, testeucjp[0]) == 0, "strcmp(buff, testjis[0])");
+
+ memset (buff, 'K', 20);
+ result = wcstombs (buff, wcbuff, 12);
+ CYG_TEST_PASS_FAIL( result == 12, "wcstombs (buff, wcbuff, 12)");
+ CYG_TEST_PASS_FAIL( memcmp (buff, testeucjp[0], 12) == 0, "memcmp (buff, testeucjp[0], 12)");
+ CYG_TEST_PASS_FAIL( buff[12] == 'K', "buff[12]");
+
+ memset (buff, 'K', 20);
+ result = wcstombs (buff, wcbuff, 13);
+ CYG_TEST_PASS_FAIL( result == 12, "wcstombs (buff, wcbuff, 12)");
+ CYG_TEST_PASS_FAIL( memcmp (buff, testeucjp[0], 13) == 0, "memcmp (buff, testeucjp[0], 13)");
+ CYG_TEST_PASS_FAIL( buff[12] == '\0', "buff[12]");
+
+ result = wcstombs (buff, (wchar_t *)"\x23\x10", 2);
+ CYG_TEST_PASS_FAIL( result == -1, "wcstombs (buff, (wchar_t *)\"\x23\x10\", 2)");
+
+ result = sscanf (in_eucjp, fmt_eucjp, &k);
+ CYG_TEST_PASS_FAIL( result == 1, "sscanf (in_eucjp, fmt_eucjp, &k)");
+ CYG_TEST_PASS_FAIL( k == 23, "k");
+
+ sprintf (buff, fmt_eucjp, 23);
+ CYG_TEST_PASS_FAIL( strcmp(buff, in_eucjp) == 0, "sprintf(buff, fmt_eucjp, 23)");
+
+ locale = setlocale(LC_ALL, "C");
+ locale = setlocale(LC_CTYPE, NULL);
+
+ CYG_TEST_PASS_FAIL( strcmp(locale, "C") == 0, "previous locale");
+ CYG_TEST_PASS_FAIL( MB_CUR_MAX == 1, "MB_CUR_MAX");
+
+#endif /* CYGFUN_LIBC_I18N_LOCALE_C_EUCJP */
+
+
+ CYG_TEST_FINISH( "Finished tests from testcase " __FILE__ " for C library "
+ "<stdlib.h> multibyte character functions" );
+
+}
diff --git a/ecos/packages/language/c/libc/i18n/current/tests/setlocale.c b/ecos/packages/language/c/libc/i18n/current/tests/setlocale.c
new file mode 100644
index 0000000..6d7a30e
--- /dev/null
+++ b/ecos/packages/language/c/libc/i18n/current/tests/setlocale.c
@@ -0,0 +1,131 @@
+//=================================================================
+//
+// setlocale.c
+//
+// Testcase for C library setlocale() function
+//
+//=================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors:
+// Date: 2000-04-18
+// Description: Contains testcode for C library setlocale() function
+//
+//
+//####DESCRIPTIONEND####
+
+// INCLUDES
+
+#include <pkgconf/system.h>
+#include <locale.h> // header for functions to test
+#include <cyg/infra/testcase.h> // Testcase API
+
+
+// FUNCTIONS
+
+static int
+my_strcmp(const char *s1, const char *s2)
+{
+ for ( ; *s1 == *s2 ; s1++,s2++ )
+ {
+ if ( *s1 == '\0' )
+ break;
+ } // for
+
+ return (*s1 - *s2);
+} // my_strcmp()
+
+#ifndef CYGPKG_LIBC_STARTUP
+void cyg_user_start(void)
+#else
+int
+main( int argc, char *argv[] )
+#endif
+{
+ char *str;
+
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for C "
+ "library setlocale() function");
+
+ // Check 1
+ str = setlocale(LC_CTYPE, NULL);
+ CYG_TEST_PASS_FAIL( !my_strcmp(str, "C" ),
+ "Initial locale for LC_CTYPE is \"C\"" );
+
+ // Check 2
+ str = setlocale(LC_ALL, NULL);
+ CYG_TEST_PASS_FAIL( !my_strcmp(str, "#C#C#C#C#C#" ),
+ "Initial locale for LC_ALL is correct" );
+
+ // Check 3
+ str = setlocale(LC_COLLATE, "C");
+ CYG_TEST_PASS_FAIL( !my_strcmp(str, "C" ),
+ "Set locale for LC_COLLATE to \"C\"" );
+
+ // Check 4
+ str = setlocale(LC_MONETARY, "");
+ CYG_TEST_PASS_FAIL( !my_strcmp(str, "C" ),
+ "Set default locale for LC_MONETARY" );
+ str = setlocale(LC_MONETARY, NULL);
+ CYG_TEST_PASS_FAIL( !my_strcmp(str, "C" ),
+ "Stored default locale for LC_MONETARY" );
+
+ // Check 5
+ str = setlocale(LC_ALL, "C");
+ CYG_TEST_PASS_FAIL( !my_strcmp(str, "C" ),
+ "Set locale for LC_COLLATE to \"C\"" );
+
+ // Check 6
+ str = setlocale(LC_ALL, "");
+ CYG_TEST_PASS_FAIL( !my_strcmp(str, "C" ),
+ "Set locale for LC_COLLATE to default" );
+
+ // Check 7
+ str = setlocale(LC_ALL, NULL);
+ CYG_TEST_PASS_FAIL( !my_strcmp(str, "#C#C#C#C#C#" ),
+ "Get locale for LC_ALL" );
+ str = setlocale(LC_ALL, str);
+ CYG_TEST_PASS_FAIL( !my_strcmp(str, "#C#C#C#C#C#" ),
+ "Set locale for LC_ALL from retrieved locale" );
+
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for C "
+ "library setlocale() function");
+} // main()
+
+// EOF setlocale.c
diff --git a/ecos/packages/language/c/libc/setjmp/current/ChangeLog b/ecos/packages/language/c/libc/setjmp/current/ChangeLog
new file mode 100644
index 0000000..783d085
--- /dev/null
+++ b/ecos/packages/language/c/libc/setjmp/current/ChangeLog
@@ -0,0 +1,48 @@
+2009-01-28 Bart Veer <bartv@ecoscentric.com>
+
+ * tests/setjmp.c: allow to run if CYGPKG_LIBC_STARTUP is absent.
+
+2003-02-24 Jonathan Larmour <jifl@eCosCentric.com>
+
+ * cdl/setjmp.cdl: Fix doc link.
+
+2002-04-09 Jonathan Larmour <jlarmour@redhat.com>
+
+ * include/setjmp.h: Use NORET attributes from cyg_type.h.
+
+2000-05-16 Nick Garnett <nickg@cygnus.co.uk>
+
+ * src/longjmp.cxx: Was still including pkgconf/libc.h rather that
+ pkgconf/libc_setjmp.h.
+
+2000-05-02 Jonathan Larmour <jlarmour@redhat.co.uk>
+
+ * New package
+ Separated original libc out into separate packages on functional
+ boundaries.
+ Header files are now managed by isoinfra package
+ Plenty of cleanups done, but no major functionality changes
+
+//===========================================================================
+// ####GPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 or (at your option) any
+// later version.
+//
+// This program 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
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the
+// Free Software Foundation, Inc., 51 Franklin Street,
+// Fifth Floor, Boston, MA 02110-1301, USA.
+// -------------------------------------------
+// ####GPLCOPYRIGHTEND####
+//===========================================================================
diff --git a/ecos/packages/language/c/libc/setjmp/current/ChangeLog.libc b/ecos/packages/language/c/libc/setjmp/current/ChangeLog.libc
new file mode 100644
index 0000000..8809e93
--- /dev/null
+++ b/ecos/packages/language/c/libc/setjmp/current/ChangeLog.libc
@@ -0,0 +1,2735 @@
+This ChangeLog file is now obsolete. This is the original ChangeLog from when
+libc was one large package, before being separated. It is included for
+historical reasons.
+
+2000-04-05 Jesper Skov <jskov@redhat.com>
+
+ * src/time/settime.cxx:
+ * src/time/time.cxx:
+ Wallclock moved to io/.
+
+2000-03-28 John Dallaway <jld@cygnus.co.uk>
+
+ * cdl/string.cdl,
+ cdl/stdlib.cdl,
+ cdl/stdio.cdl,
+ cdl/libc.cdl:
+
+ Adjust documentation URLs.
+
+2000-03-27 Jesper Skov <jskov@redhat.com>
+
+ * src/clibincl/stream.inl (check_this): Use cyb_bool instead of bool.
+
+2000-03-06 Jesper Skov <jskov@redhat.com>
+
+ * tests/time/strftime.c (test): Adjust test to match below change.
+
+2000-03-02 Jonathan Larmour <jlarmour@redhat.co.uk>
+
+ * src/time/strftime.cxx (do_format): Make sure %m counts from
+ 1..12 rather than 0..11. Fix for case 103300
+
+2000-02-29 Jonathan Larmour <jlarmour@redhat.co.uk>
+
+ * src/stdio/output/vfnprintf.cxx: Correctly use 'n' parameter to
+ restrict length. Credit due to Andrew Lunn here as well.
+ Resolves 103057-CR-1
+
+ * tests/stdio/sprintf2.c (test):
+ Add snprintf tests to verify the correct behaviour of restricting
+ output length
+
+2000-02-10 Jesper Skov <jskov@redhat.com>
+
+ * tests/signal/signal2.c (main):
+ Also reclaim DATA_TLB_MISS vector if available.
+
+2000-01-31 Simon FitzMaurice <sdf@cygnus.co.uk>
+ * cdl/*.cdl:
+
+ Adjust help URLs in line with new doc layout.
+
+2000-01-28 Simon FitzMaurice <sdf@cygnus.co.uk>
+ * cdl/*.cdl:
+
+ Adjust help URLs in line with new doc layout.
+
+2000-01-19 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * cdl/*.cdl: Add descriptions to a number of options &c which were
+ lacking same, also tidied up other typos as noticed en passant.
+
+1999-11-11 Bart Veer <bartv@cygnus.co.uk>
+
+ * cdl/string.cdl:
+ Switch to a single boolean configuration option for code size vs.
+ speed optimization.
+
+1999-11-03 John Dallaway <jld@cygnus.co.uk>
+
+ * cdl/libc.cdl: Define tests.
+
+1999-10-19 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/output/vfnprintf.cxx: We can now remove Berkeley
+ advertising clause
+ * src/stdlib/div.cxx: ditto
+ * src/stdlib/ldiv.cxx: ditto
+ * src/stdlib/strtol.cxx: ditto
+ * src/stdlib/strtoul.cxx: ditto
+ * src/string/strtok.cxx: ditto
+
+1999-10-19 John Dallaway <jld@cygnus.co.uk>
+
+ * cdl/libc.cdl:
+
+ Define CDL options for package-specific CFLAGS.
+
+1999-10-08 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h (CYGNUM_LIBC_MAIN_THREAD_PRIORITY): Change
+ default to 10 to keep test farm happy
+ * cdl/startup.cdl: Likewise
+
+1999-10-07 John Dallaway <jld@cygnus.co.uk>
+
+ * cdl/stdlib.cdl, cdl/string.cdl:
+
+ Specify radio buttons using CDL interfaces.
+
+1999-10-06 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * cdl/stdio.cdl: Change default to /dev/ttydiag as per 1999-10-01
+ change below
+ * cdl/startup.cdl: Add new form CDL for the startup changes as
+ per 1999-10-05
+
+1999-10-05 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/libc.h: Add CYGSEM_LIBC_MAIN_STACK_FROM_SYSTEM to allow
+ the user to supply their own stack.
+ Rename CYGNUM_LIBC_MAIN_STACK_SIZE to
+ CYGNUM_LIBC_MAIN_DEFAULT_STACK_SIZE and reparent under
+ CYGSEM_LIBC_MAIN_STACK_FROM_SYSTEM
+ Add CYGNUM_LIBC_MAIN_THREAD_PRIORITY to provide main() thread
+ priority
+
+ * src/support/mainthread.cxx: Add support for user-supplied stack
+ Allow user to specify thread priority
+
+ These changes fix CR 101069
+
+1999-10-01 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h (CYGDAT_LIBC_STDIO_DEFAULT_CONSOLE): Change
+ default to /dev/ttydiag to get correct console-like behaviour
+ Also don't preclude use if haldiag package isn't included
+ (case 102065)
+
+1999-09-15 Jesper Skov <jskov@cygnus.co.uk>
+
+ * tests/signal/signal2.c (cause_fpe): Try both float and integer
+ division by zero.
+
+1999-09-10 Jesper Skov <jskov@cygnus.co.uk>
+
+ * src/stdlib/malloc.cxx (cyg_libc_get_malloc_pool): Added for
+ stress_threads test.
+
+1999-09-07 Jesper Skov <jskov@cygnus.co.uk>
+ PRs 20243, 20433
+ * tests/signal/signal2.c: Disabled test3 on ARM.
+
+1999-09-02 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * include/assert.h: Make the sense of NDEBUG correct; it is "set"
+ when NOT debugging. Fix for CR 101983-CR-1
+ See Stroustrup, "The C++ Programming Language."
+
+1999-08-18 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/fopen.cxx (_fopen): Set buffer size 0 when not
+ buffering
+ Fix for case 101868
+
+1999-08-17 John Dallaway <jld@cygnus.co.uk>
+
+ * cdl/stdlib.cdl, cdl/string.cdl:
+
+ Implement radio buttons using "FIXME radio" hack in
+ description field for now.
+
+1999-08-12 John Dallaway <jld@cygnus.co.uk>
+
+ * cdl/stdlib.cdl:
+ Take advantage of MACRONAME_ENUMVAL macros output by CDL.
+
+1999-08-06 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdio/sprintf2.c (test): Don't rely on 2.345 being exactly
+ representable in binary as a difference of 1 ulp will make it round
+ the wrong way.
+
+1999-07-16 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/input/fgetc.cxx:
+ Include outline versions of getc() (actually just a symbol alias for
+ fgetc() ) and getchar()
+ Some minor clean-ups
+ Add tracing/assertions
+
+ * src/stdio/input/fputc.cxx:
+ Likewise (except applied to putc() and putchar())
+
+ * src/stdio/common/stdioinlines.cxx (_puts):
+ Call fputc() not _fputc()
+
+ * src/clibincl/stdiosupp.hxx:
+ Remove now obsolete prototypes for _fgetc() and _fputc()
+
+ * include/stdio.h:
+ Don't bother with getc()/putc() macros any more, just call
+ them as functions
+ Include protos for getc(), putc(), getchar() and putchar() functions
+
+1999-06-21 Jesper Skov <jskov@cygnus.co.uk>
+
+ * tests/signal/signal2.c: Disabled test 3 for SH EDK7708.
+
+1999-06-11 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/stdio.h: Make FILEs array types so they won't be
+ given $gp relocations on MIPS targets
+
+1999-05-27 Jesper Skov <jskov@cygnus.co.uk>
+
+ * tests/time/ctime.c: Fixed compiler warning.
+
+1999-05-25 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/signal/signal2.c (main):
+ Update CYGPKG_HAL_TX39 -> CYGPKG_HAL_MIPS_TX39 due to recent MIPS
+ HAL changes
+ Fix for PR 20116
+
+1999-04-30 Jesper Skov <jskov@lassi.cygnus.co.uk>
+ PR 19945/19946 workaround
+ * tests/signal/signal2.c: Disabled test 3 for PowerPC sim.
+
+1999-04-19 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/time.inl:
+ Ensure all calls to cyg_libc_time_year_is_leap() are with the full
+ year, and not the direct contents of a struct tm, which are (year-1900)
+
+1999-04-19 Jesper Skov <jskov@cygnus.co.uk>
+ PR 19308, 19410, 19528
+ * tests/time/clock.c (test): Also disable data cache which may
+ affect timing when tracing/assertions are enabled.
+
+1999-04-15 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/stdiosupp.hxx:
+ Add prototype for new cyg_libc_stdio_flush_all_but() function
+
+ * src/clibincl/stream.hxx:
+ Don't include stdiosupp.hxx any more to prevent circular dependency,
+ therefore manually provide _setvbuf prototype
+ Make sure pkgconf/kernel.h is included before mutex.hxx
+
+ * src/clibincl/stream.inl (Cyg_StdioStream::set_error()):
+ Add missing unlock_me()
+
+ * src/stdio/common/fflush.cxx:
+ Separate most of code for fflush(NULL) into separate
+ cyg_libc_stdio_flush_all_but() function, which has the extra
+ capability of omitting one stream
+
+ * src/stdio/common/stderr.cxx:
+ * src/stdio/common/stdin.cxx:
+ * src/stdio/common/stdout.cxx:
+ * src/stdio/common/vsnprintf.cxx:
+ * src/stdio/common/vsscanf.cxx:
+ Add missing clibincl/stdiosupp.hxx include
+
+ * src/stdio/common/stream.cxx (Cyg_StdioStream::read()):
+ When reading, ensure we flush all output streams
+
+ * src/stdio/common/stream.cxx (Cyg_StdioStream::flush_output_unlocked):
+ Flush the device as well
+
+1999-04-15 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/streambuf.cxx (set_buffer):
+ * src/stdio/common/stdioinlines.cxx (_setbuf):
+ * src/clibincl/streambuf.inl:
+ * src/clibincl/streambuf.hxx:
+ * src/clibincl/stream.hxx (class Cyg_StdioStream):
+ * include/pkgconf/libc.h:
+ * include/stdio.inl (setbuf):
+ Fix dumb typo: BUFSIZE -> BUFSIZ
+ This fixes PR19837
+
+1999-04-15 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/stdioinlines.cxx (_setbuf):
+ * include/stdio.inl (setbuf):
+ Use _IONBF when buf==NULL, and _IOLBF otherwise.
+ Fix for PR 19836
+
+1999-04-15 John Dallaway <jld@cygnus.co.uk>
+
+ * include/pkgconf/libc.h: Tidy display string capitalization.
+
+1999-04-12 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Clarify CDL description of CYGNUM_LIBC_MALLOC_MEMPOOL_SIZE
+
+ * tests/signal/signal2.c: Try harder to generate an exception by
+ accessing a misaligned address
+ Don't handle SIGTRAP any more
+ Part of fix for PRs 19731/19607
+
+1999-04-07 Jesper Skov <jskov@cygnus.co.uk>
+ PR 19667
+ * src/support/mainthread.cxx:
+ Changed to use the new Cyg_Thread constructor.
+
+1999-04-07 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * tests/signal/signal2.c (main): Use new macro
+ HAL_VSR_SET_TO_ECOS_HANDLER if defined, to wrest control from
+ CygMon, for example, by reinstalling eCos' default VSRs for
+ exceptions that we are provoking.
+
+1999-03-29 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/signal/siginit.cxx: Include stdlib.h for exit()
+ Fix for PR 19720
+
+1999-03-29 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/time/clock.c (test): Disable instruction cache
+ Hopefully fixes PR 19308
+
+1999-03-29 Jesper Skov <jskov@cygnus.co.uk>
+
+ * tests/signal/signal2.c: Disabled test 3 for PPC as it cannot
+ trap division by zero.
+
+1999-03-26 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/support/main.cxx (main): Invoke cyg_user_start() if no kernel
+ Only sensible thing to do in our default main in a non-kernel config
+
+1999-03-25 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/time/time.c:
+ Increase MAX_TIMEOUT since the sparclite gets very close to overrunning
+ it even when working.
+ Should return -1 iff CYGSEM_LIBC_TIME_TIME_WORKING isn't defined
+ Cosmetic changes
+
+1999-03-25 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * tests/time/time.c (test): Take into account setting of
+ CYGSEM_LIBC_TIME_SETTIME_WORKING ie. does cyg_libc_time_settime()
+ work? If not, check that it returns an error.
+ This was exposed by the random combo in PR#19479.
+
+1999-03-23 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Rename CYGSEM_LIBC_RAND_SIMPLEST and CYGSEM_LIBC_RAND_KNUTH1 to
+ CYGIMP_...
+
+ Add another rand implementation CYGIMP_LIBC_RAND_SIMPLE1 which is
+ the default
+
+ Part of fix for PR 19562
+
+ * include/sys/cstartup.h:
+ Tidy and remove unnecessary dependencies
+
+ * src/stdlib/rand.cxx:
+ Rename algorithms from CYGSEM_... to CYGIMP_...
+ Add new "simple1" algorithm
+
+ * tests/ctype/ctype.c:
+ Tidy
+
+ * tests/stdlib/rand3.c:
+ Fix so that 0..RAND_MAX is split evenly over buckets, which it wasn't
+ before
+ Deal with case of RAND_MAX not being divisible by NUM_BUCKETS
+ exactly
+ Increase TEST_LENGTH to 200000 to provide more representative sample
+ Add CYG_TEST_INFO output to help ensure it doesn't time out
+ Tidy
+
+ * tests/stdlib/rand4.c:
+ Only fail if more than _two_ thirds (rather than one third) match.
+ This is because half would match for a perfectly random distribution
+ This is the rest of the fix for PR 19562
+ Cosmetic changes
+
+1999-03-22 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * src/support/mainthread.cxx (CYGNUM_LIBC_MAIN_STACK_SIZE):
+ Use CYGNUM_HAL_STACK_SIZE_TYPICAL for the stack size instead of
+ CYGNUM_HAL_MINIMUM_STACK_SIZE.
+
+1999-03-22 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/PKGconf.mak: Add -Wno-format when building strftime otherwise
+ it generates warnings for things that we do want to test (null
+ string, and %y format)
+
+1999-03-19 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h (CYGNUM_LIBC_TIME_DST_DEFAULT_STATE):
+ Put brackets back round negative number since sdf says the config
+ tool is fixed now (PR 19537)
+
+ Add new CYGSEM_LIBC_RAND_SIMPLEST and CYGSEM_LIBC_RAND_KNUTH1
+ options for different rand() algorithms in a so far failed attempt
+ to fix PR 19562
+
+ * src/stdlib/rand.cxx:
+ Add new optional algorithm from Knuth vol.2
+
+ * tests/stdlib/rand4.c:
+ Some tidies
+ Don't run test when using simplest algorithm
+
+ * tests/signal/signal2.c (main):
+ Don't try to make an FPE on tx39 - its possible to detect but requires
+ too much HAL work to be sensible
+
+1999-03-18 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/signal/siginit.cxx (cyg_libc_signals_hwexcept_handler):
+ Use HAL_ENABLE_INTERRUPTS() rather than kernel to enable interrupts
+
+1999-03-18 Mark Galassi <rosalia@cygnus.com>
+
+ * tests/PKGconf.mak (TESTS): added rand4 compilation.
+
+ * tests/stdlib/rand4.c: added this test for periodicity in the
+ least significant bit of rand().
+
+1999-03-18 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h: Remove CYGFUN_LIBC_TIME_POSIX dependency
+ on CYGPKG_LIBC_STDIO
+
+ * src/stdlib/itoa.cxx:
+ New file to convert integers to ascii
+
+ * include/stdlib.h:
+ Add proto for new cyg_libc_itoa() function
+
+ * include/time.inl:
+ Rework __asctime_r() to use memcpy() and cyg_libc_itoa() rather than
+ sprintf()
+
+ * src/PKGconf.mak:
+ Build stdlib/itoa.cxx
+
+ The above changes fix PR 19448
+
+1999-03-17 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/time.h: Add #define of __time_t_defined to placate newlib
+ if it is used by accident. This is just a temporary workaround though.
+
+1999-03-16 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * src/PKGconf.mak: Add compile option to step around ARM compiler bug.
+
+1999-03-16 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h (CYGNUM_LIBC_TIME_DST_DEFAULT_STATE):
+ Don't use parentheses for now
+
+ * src/stdio/common/stream.cxx (refill_read_buffer):
+ Silence bogus compiler warning
+
+1999-03-16 Jesper Skov <jskov@cygnus.co.uk>
+
+ * tests/signal/signal2.c (main): Enable SIGSEGV test for
+ i386/Linux.
+
+
+1999-03-15 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/signal/siginit.cxx (cyg_libc_signals_hwexcept_handler):
+ Only enable interrupts if they were disabled
+
+ * include/sys/timeutil.h:
+ * src/time/timeutil.cxx:
+ Add FIX ME line as a reminder that the workaround there can go away
+ in future
+
+ * include/pkgconf/libc.h:
+ Add proper define for CYGSEM_LIBC_EXIT_CALLS_FFLUSH
+ Put brackets round negative CYGNUM_LIBC_TIME_DST_DEFAULT_STATE define
+ Fix run time typo
+
+ * include/time.inl (__localtime_r):
+ Include sys/timeutil.h before this to get
+ cyg_libc_time_normalize_structtm()
+
+1999-03-12 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * include/sys/timeutil.h:
+ * src/time/timeutil.cxx: Remove 'const' from char arrays since
+ this fails [silently] on ARM when -fwritable-strings (PR19440)
+
+1999-03-12 Jesper Skov <jskov@cygnus.co.uk>
+
+ * tests/signal/signal2.c (main): Compiler warnings fix was
+ slightly broken.
+
+1999-03-12 Jesper Skov <jskov@cygnus.co.uk>
+ PR 19473
+ * tests/signal/signal2.c (main):
+ Disabling SIGTRAP handling on i386/Linux is not a good idea.
+1999-03-11 Jesper Skov <jskov@cygnus.co.uk>
+ PR 19473
+ * tests/signal/signal2.c:
+ Added compiler warnings fix.
+ Added N/A handling for i386/Linux.
+
+1999-03-10 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * include/pkgconf/libc.h: Force "haldiag" device to be present.
+ 'asctime' and friends need 'stdio' as well.
+
+ * include/time.inl: Fix syntax error on difftime() declaration.
+
+1999-03-08 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * src/clibincl/stream.hxx: <cyg/infra/cyg_ass.h> needed for this file.
+
+ * src/stdio/common/vsscanf.cxx (str_read): Fix problem with string
+ pointer [created by merge with new I/O package].
+
+1999-03-05 John Dallaway <jld@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Add legal values for CYGNUM_LIBC_TIME_STD_DEFAULT_OFFSET
+ and CYGNUM_LIBC_TIME_DST_DEFAULT_OFFSET.
+
+1999-03-05 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/time.inl (cyg_libc_time_year_is_leap):
+ Fix bug with modulo year 400
+ Fix typo in asctime_r macro
+ Fix gmtime_r, and mktime as a result of testing
+
+ * tests/time/asctime.c, tests/time/ctime.c, tests/time/gmtime.c,
+ tests/time/gmtime.c, tests/time/localtime.c, tests/time/mktime.c,
+ tests/time/strftime.c, tests/time/time.c:
+ New tests
+
+ * tests/PKGconf.mak:
+ Build above new tests
+
+ * include/pkgconf/libc.h:
+ Add reminder FIX ME about extra config option
+
+ * src/time/strftime.cxx:
+ Fix %w and %Y parameters as a result of testing
+
+ * src/time/timeutil.cxx:
+ Fix cyg_libc_time_normalize_structtm() as a result of testing
+ of mktime()
+
+ * tests/time/clock.c:
+ Reformat, remove obsolete bits and tidy
+
+ * include/time.h:
+ Add Cyg_libc_time_dst type and new functions
+ cyg_libc_time_setzoneoffsets(), cyg_libc_time_setdst(),
+ cyg_libc_time_getzoneoffsets(), cyg_libc_time_settime()
+
+ * include/time.inl:
+ Implement the above functions. This allows us to adjust for timezone
+ diffences and set the time.
+ Change localtime() to adjust for STD/DST
+ Change mktime() to adjust for STD/DST
+
+ * include/libc.h:
+ Add new config options CYGSEM_LIBC_TIME_SETTIME_WORKING
+ and component CYGPKG_LIBC_TIME_ZONES containing options
+ CYGNUM_LIBC_TIME_DST_DEFAULT_STATE,
+ CYGNUM_LIBC_TIME_STD_DEFAULT_OFFSET,
+ CYGNUM_LIBC_TIME_DST_DEFAULT_OFFSET
+
+ * src/strftime.cxx:
+ Adjust handling of %Z to _not_ deal with STD/DST
+
+ * src/time/settime.cxx:
+ New file to implement cyg_libc_time_settime()
+
+ * src/PKGconf.mak:
+ Build settime.cxx
+
+ * src/time/timeutil.cxx:
+ Supply outline versions of cyg_libc_time_setzoneoffsets(),
+ cyg_libc_time_setdst(), and cyg_libc_time_getzoneoffsets()
+ Add variables for STD/DST state
+ Some minor comment changes
+
+ * include/errno.h:
+ Use CYGBLD_ATTRIB_CONST instead of __attribute__((const)) directly
+
+ * include/signal.h:
+ Change format of function comment headers
+
+ * include/signal.inl:
+ Restrict errno.h inclusion to when its actually used
+ Fix a spelling typo
+
+ * include/stdlib.h:
+ Add CYGBLD_ATTRIB_CONST to abs, div, labs, ldiv
+
+ * include/stdlib.inl:
+ Reformat and tidy
+ Include new versions of div and ldiv which are more portable and
+ are cleanly rewritten so aren't covered by the BSD licence, which
+ is now removed
+
+ * src/stdlib/div.cxx, src/stdlib/ldiv.cxx:
+ Non-inline, non-BSD and portable versions of the new versions of div
+ and ldiv from stdlib.inl
+
+ * include/time.h:
+ Much reformatting, tidying and improving comments
+ Change CLOCKS_PER_SEC from 1000 to 1000000
+ Add new functions asctime_r, ctime_r, gmtime_r, localtime_r, clock,
+ difftime, mktime, time, asctime, ctime, gmtime, localtime, strftime
+ Include new time.inl file
+
+ * include/pkgconf/libc.h:
+ Add new options CYGSEM_LIBC_TIME_CLOCK_WORKING,
+ CYGSEM_LIBC_TIME_TIME_WORKING, CYGFUN_LIBC_TIME_POSIX,
+ CYGNUM_LIBC_TIME_CLOCK_TRACE_LEVEL, CYGIMP_LIBC_TIME_ASCTIME_INLINE,
+ CYGIMP_LIBC_TIME_CTIME_INLINE, CYGIMP_LIBC_TIME_DIFFTIME_INLINE,
+ CYGIMP_LIBC_TIME_GMTIME_INLINE, CYGIMP_LIBC_TIME_LOCALTIME_INLINE,
+ CYGIMP_LIBC_TIME_MKTIME_INLINE, CYGIMP_LIBC_TIME_ASCTIME_R_INLINE,
+ CYGIMP_LIBC_TIME_CTIME_R_INLINE, CYGIMP_LIBC_TIME_GMTIME_R_INLINE,
+ and CYGIMP_LIBC_TIME_LOCALTIME_R_INLINE
+
+ * time/asctime.cxx, time/asctime_r.cxx, time/clock.cxx, time/ctime.cxx,
+ time/ctime_r.cxx, time/difftime.cxx, time/gmtime.cxx,
+ time/gmtime_r.cxx, time/localtime.cxx, time/localtime_r.cxx,
+ time/mktime.cxx, time/strftime.cxx, time/time.cxx, time/timeutil.cxx,
+ include/time.inl:
+ New files to implement the new time functions. Many of them simply
+ provide the outline definitions, but the real body of the function
+ comes from time.inl
+
+ * src/PKGconf.mak:
+ Build new .cxx files
+
+ * src/clibincl/stdlibsupp.hxx:
+ Remove _div and _ldiv prototypes since they're no longer needed
+
+ * src/clibincl/timesupp.hxx:
+ Delete as its now obsolete
+
+ * src/time/clock.cxx:
+ Use new CYGSEM_LIBC_TIME_CLOCK_WORKING option to control whether it
+ just returns (clock_t)-1 or not.
+ Much reformatting and tidying
+ Change real imlpementation from _clock to __clock
+ Use CYGBLD_ATTRIB_WEAK_ALIAS now
+
+ * tests/stdlib/div.c, tests/stdlib/ldiv.c:
+ Add some extra tests for handling of negative numbers
+ Reformat and tidy a bit, including removing the test for CYGPKG_LIBC
+ since its now always defined if the test is to be compiled
+
+ * tests/time/clock.c:
+ Remove duplication CYG_TEST_INFO line
+ Check if unimplemented using "(clock_t)-1" and not just "-1"
+
+1999-03-04 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdlib/system.cxx:
+ Make sure system() is a weak alias for __system()
+
+ * include/pkgconf/libc.h: Rework CDL description for
+ CYGDAT_LIBC_STDIO_DEFAULT_CONSOLE and change its default to
+ "/dev/haldiag"
+
+ * src/stdio/common/stream.cxx:
+ Check that dev is valid when passed to stream constructor
+
+ * src/stdio/common/stdiosupp.cxx:
+ Tidy
+
+ * src/support/mainthread.cxx: Make this depend on
+ CYGSEM_LIBC_STARTUP_MAIN_THREAD rather than just CYGPKG_KERNEL
+
+1999-03-04 Gary Thomas <gthomas@cygnus.co.uk>
+
+ Merged in changes from 'ecos-new_devs-19990216-branch'
+
+ (1999-02-24 Jonathan Larmour <jlarmour@cygnus.co.uk>)
+
+ * src/stdio/common/stream.cxx:
+ Add "fix me" comments and remove a couple of commented out lines
+
+ * src/stdio/common/vsnprintf.cxx:
+ * src/stdio/common/vsscanf.cxx:
+ Revert to using pointer to string for private data, not just string.
+ This preserves the state across multiple calls
+
+ (1999-02-24 Gary Thomas <gthomas@cygnus.co.uk>)
+
+ * src/stdio/common/vsscanf.cxx:
+ * src/stdio/common/vsnprintf.cxx:
+ * src/stdio/common/stream.cxx:
+ * src/stdio/common/stdiosupp.cxx:
+ * src/stdio/common/fopen.cxx:
+ * src/clibincl/stream.inl:
+ * src/clibincl/stream.hxx:
+ * src/clibincl/stdiosupp.hxx:
+ * include/pkgconf/libc.h: Changes for new I/O system.
+
+1999-03-03 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdlib/atexit.c: Forgot to config atexit test for
+ CYGFUN_LIBC_ATEXIT option
+
+ * include/pkgconf/libc.h:
+ Require CYGVAR_KERNEL_THREADS_DATA for CYGSEM_LIBC_PER_THREAD_STRTOK
+ This fixes PR 19362
+ Require CYGPKG_KERNEL for thread safe streams
+ Also don't need "requires CYGPKG_KERNEL" for per-thread rand and errno
+ if we already require a finer granularity kernel option
+
+1999-02-25 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h: Fix CYGNUM_LIBC_MAIN_STACK_SIZE by changing
+ CYGPKG_LIBC_STARTUP_MAIN_THREAD -> CYGSEM_LIBC_STARTUP_MAIN_THREAD
+ Fix for PR 19304
+
+1999-02-23 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdlib/system.cxx: Add to implement trivial system() call
+ * include/stdlib.h: Add system() prototype
+ * src/PKGconf.mak: Build system.cxx
+
+ * tests/ctype/ctype.c, tests/i18n/setlocale.c, tests/setjmp/setjmp.c,
+ tests/signal/signal1.c, tests/signal/signal2.c,
+ tests/stdio/sprintf1.c, tests/stdio/sprintf2.c, tests/stdio/sscanf.c,
+ tests/stdio/stdiooutput.c, tests/stdlib/atexit.c,
+ tests/stdlib/atoi.c, tests/stdlib/atol.c, tests/stdlib/bsearch.c,
+ tests/stdlib/div.c, tests/stdlib/getenv.c, tests/stdlib/labs.c,
+ tests/stdlib/ldiv.c, tests/stdlib/malloc1.c, tests/stdlib/malloc2.c,
+ tests/stdlib/malloc3.c, tests/stdlib/qsort.c, tests/stdlib/rand1.c,
+ tests/stdlib/rand2.c, tests/stdlib/rand3.c, tests/stdlib/realloc.c,
+ tests/stdlib/srand.c, tests/stdlib/strtol.c, tests/stdlib/strtoul.c,
+ tests/string/memchr.c, tests/string/memcmp1.c,
+ tests/string/memcmp2.c, tests/string/memcpy1.c,
+ tests/string/memcpy2.c, tests/string/memmove1.c,
+ tests/string/memmove2.c, tests/string/memset.c,
+ tests/string/strcat1.c, tests/string/strcat2.c,
+ tests/string/strchr.c, tests/string/strcmp1.c,
+ tests/string/strcmp2.c, tests/string/strcoll1.c,
+ tests/string/strcpy1.c, tests/string/strcpy2.c,
+ tests/string/strcspn.c, tests/string/strlen.c,
+ tests/string/strncat1.c, tests/string/strncat2.c,
+ tests/string/strncpy1.c, tests/string/strncpy2.c,
+ tests/string/strpbrk.c, tests/string/strrchr.c,
+ tests/string/strspn.c, tests/string/strstr.c, tests/string/strtok.c,
+ tests/string/strxfrm1.c, tests/string/strxfrm2.c, tests/time/clock.c:
+ Use CYG_TEST_NA() macro for non-applicable test configurations
+
+1999-02-20 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/signal.h:
+ * include/signal.inl:
+ * src/signal/raise.cxx:
+ * src/signal/siginit.cxx:
+ * src/signal/signal.cxx:
+ * tests/signal/signal1.c
+ * tests/signal/signal2.c:
+ New files to implement ISO standard signals
+
+ * src/PKGconf.mak (TESTS):
+ * tests/PKGconf.mak (TESTS):
+ Update to build new files above
+
+ * include/stdlib.h:
+ * src/clibincl/stdlibsupp.hxx:
+ Comment and QA changes (including giving better names to some types)
+
+ * include/libc.h:
+ Add new configuration options for signals
+ Add new CYGSEM_LIBC_STARTUP_MAIN_THREAD option
+ Add a note to CYGNUM_LIBC_MAIN_STACK_SIZE option that it may be
+ overriden by HAL
+ Add new CYGFUN_LIBC_ATEXIT option and move ...ATEXIT_HANDLERS under
+ it
+ Add new CYGSEM_LIBC_EXIT_CALLS_FFLUSH option
+ Require CYGSEM_LIBC_STARTUP_MAIN_THREAD for "Invoke default static
+ constructors" option
+
+ * src/stdlib/atexit.cxx:
+ Support above CYGFUN_LIBC_ATEXIT and QA changes
+
+ * src/stdlib/exit.cxx:
+ Support for above new libc.h options, and some QA changes
+
+ * src/support/cstartup.cxx:
+ Add support for new CYGSEM_LIBC_STARTUP_MAIN_THREAD option
+
+ * src/support/mainthread.cxx:
+ Override main stack size if the HAL has a minimum
+
+ * src/string/strncpy.cxx:
+ Use improved algorithm for aligned copies - imported from newlib
+ QA changes
+
+ * src/stdlib/abort.cxx:
+ Support raise(SIGABRT), and some QA
+
+ * include/errno.h:
+ Add const attribute
+
+ * tests/stdlib/abs.c:
+ QA improvements
+
+1999-02-04 Jesper Skov <jskov@cygnus.co.uk>
+
+ * src/support/cstartup.cxx: Only define cyg_libc_main_thread when
+ the kernel is around.
+
+1999-02-01 Jesper Skov <jskov@cygnus.co.uk>
+
+ * tests/time/clock.c: Joined the two test/NOP checks into
+ one.
+ Increased tolerance in attempt to fix PRs 18737,18787,18846.
+ Fixed typo.
+
+1999-01-28 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/string/strtok.cxx:
+ * src/stdlib/rand.cxx:
+ Include <pkgconf/kernel.h> if we use kernel header files
+
+1999-01-25 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdio/sscanf.c (test):
+ CYGSEM_LIBC_STDIO_PRINTF_FLOATING_POINT should be
+ CYGSEM_LIBC_STDIO_SCANF_FLOATING_POINT
+ Fix for PR 18786
+
+ * src/string/strtok.cxx:
+ * src/stdio/common/stdiofiles.cxx:
+ * src/errno/errno.cxx:
+ * src/stdlib/rand.cxx:
+ Give mutex protection objects a libc constructor priority
+
+ * src/support/invokemain.cxx:
+ Add prototype for cyg_hal_invoke_constructors()
+
+ * src/support/mainthread.cxx:
+ Give cyg_libc_dummy_constructor_obj a libc constructor priority,
+ and make its class have a public constructor
+
+ * src/stdio/common/stderr.cxx:
+ * src/stdio/common/stdout.cxx:
+ * src/stdio/common/stdin.cxx:
+ Give cyg_libc_stdio_stdin/out/err static objects a libc constructor
+ priority
+
+ * src/clibincl/streambuf.hxx (class Cyg_StdioStreamBuffer):
+ * src/clibincl/stream.hxx (class Cyg_StdioStream):
+ Remove private copy constructor. Needed to make prioritised
+ static constructors work. Fix for PR 18898
+
+1999-01-22 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/errno/errno.cxx:
+ Include pkgconf/kernel.h otherwise it fails with per-thread errno
+ enabled
+
+ * include/pkgconf/libc.h:
+ Enable per-thread errno by default since that is what POSIX would
+ want
+
+ * tests/time/clock.c (test):
+ Placate compiler by initializing clock_first/second/third anyway,
+ even though they won't be in practice. This is only a test program
+ so adding an extra instruction doesn't matter.
+
+ * src/i18n/locale.cxx (_setlocale):
+ Placate compiler, since it is dumb, by nesting, not serializing, if's
+ This is an idempotent change, but screws up the formatting :-(.
+
+ * src/string/strpbrk.cxx (_strpbrk):
+ Change while loop to do loop to placate compiler. It'll even save an
+ instruction too (wow!)
+
+1999-01-22 John Dallaway <jld@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Add closing curly brace to CYGPKG_LIBC_STRING_STRTOK definition
+
+1999-01-21 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/errno.h:
+ Tidy up and add to header description
+ Change cyg_get_errno_p() to cyg_libc_get_errno_p()
+ Remove ifdef CYGPKG_LIBC
+
+ * include/sys/file_if.h:
+ Remove - move contents to stdio.h
+
+ * include/stdio.h:
+ Tidy up header description
+ Move FILE typedef here from sys/file_if.h
+ SEEK_SET, SEEK_CUR, SEEK_END defined to 0, 1, 2 respectively
+ for backwards compatibility with old UNIX
+ Change definitions of stdin/out/err to be addresses of FILE
+ globals - even though they're actually Cyg_StdioStream it'll work
+
+ * include/pkgconf/libc.h:
+ Make CYGPRI_LIBC_WEAK et al macros depend on new ones in infra
+ Reorganise trace options under the individual components they are
+ associated with.
+ Reorganise thread-safety options under the individual components
+ they are associated with.
+ Add new CYGSEM_LIBC_INVOKE_DEFAULT_STATIC_CONSTRUCTORS option
+ Misc. reformatting
+ Remove dependency on pkgconf/kernel.h - Configuration Tool will
+ generate check macros anyway.
+ Remove CYGPKG_LIBC_TRACE, CYGFUN_LIBC_strtok, CYGPKG_LIBC_RAND
+ options
+ Tidy up description header
+
+ * src/clibincl/clibdata.hxx:
+ * src/clibincl/clibdata.inl:
+ * src/support/clibdata.cxx:
+ Remove and instead rely on each component to initialise its own data
+
+ * src/clibincl/stdiofiles.hxx, src/clibincl/stdiofiles.inl:
+ New files to contain global file list and lock (if applicable).
+ Implemented as class with member access functions
+
+ * src/errno/errno.cxx:
+ Reorganise with self-contained per-thread data, if applicable
+ Remove ifdef CYGPKG_LIBC
+ Tidy up description header
+ Rename cyg_get_errno_p() to cyg_libc_get_errno_p()
+
+ * src/stdio/common/fclose.cxx:
+ * src/stdio/common/fflush.cxx:
+ * src/stdio/common/fopen.cxx:
+ * src/stdio/common/freopen.cxx:
+ Remove ifdef CYGPKG_LIBC
+ Use new global file access method from stdiofiles.hxx
+ Tidy up description header
+ Use new CYGBLD_ATTRIB_WEAK_ALIAS
+ Access errno "normally" rather than clibdata way
+
+ * src/stdio/common/stdin.cxx:
+ * src/stdio/common/stdout.cxx
+ * src/stdio/common/stderr.cxx:
+ New files. Implement Cyg_StdioStream objects for each stream. In
+ separate self-contained files so using one doesn't bring in the
+ others
+
+ * src/stdio/common/stdiofiles.cxx:
+ New file. Implements global files array and lock
+
+ * src/stdlib/_exit.cxx:
+ Tidy up description header
+ Remove ifdef CYGPKG_LIBC
+ Use infra CYGBLD* macros
+
+ * src/stdlib/malloc.cxx:
+ Tidy up description header
+ Remove ifdef CYGPKG_LIBC
+ Add pkgconf/kernel.h now that pkgconf/libc.h doesn't have it
+ Use infra CYGBLD* macros
+ Make pool visible externally with weak attribute and new name
+ cyg_libc_malloc_memorypool
+
+ * src/stdlib/rand.cxx:
+ * src/stdlib/strtok.cxx:
+ Reorganise with self-contained per-thread data, if applicable
+ Remove ifdef CYGPKG_LIBC
+ Tidy up description header
+ Use infra CYGBLD* macros
+
+ * src/support/cstartup.cxx:
+ Split into smaller files to make selective linking work better,
+ fix i386 port problem and make GDB happy
+
+ * src/support/environ.cxx:
+ * src/support/invokemain.cxx:
+ * src/support/main.cxx:
+ * src/support/mainthread.cxx:
+ New files from bits of the old cstartup.cxx
+ Add support for CYGSEM_HAL_STOP_CONSTRUCTORS_ON_FLAG
+
+ * src/PKGconf.mak:
+ Update to reflect file additions/deletion
+
+ * tests/stdlib/rand1.c:
+ * tests/stdlib/rand2.c:
+ * tests/stdlib/rand3.c:
+ * tests/stdlib/srand.c:
+ Make conform to coding standards
+ Remove ifdef CYGPKG_LIBC_RAND
+ Tidy up description header
+
+ * tests/string/strtok.c:
+ Make conform to coding standards
+ Remove ifdef CYGFUN_LIBC_strtok
+ Tidy up description header
+
+1999-01-15 Mark Galassi <rosalia@cygnus.com>
+
+ * tests/stdlib/getenv.c (main): added tests for the case in which
+ the user does not supply environ and in which the user supplies a
+ NULL environ.
+
+1999-01-15 Jesper Skov <jskov@cygnus.co.uk>
+
+ * src/support/cstartup.cxx: Added workaround for weak aliasing
+ problem in i386 gcc.
+
+
+1999-01-15 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * include/pkgconf/libc.h (CYGNUM_LIBC_MAIN_STACK_SIZE):
+ (CYGNUM_LIBC_MALLOC_MEMPOOL_SIZE): Change defaults to be
+ more reasonable on small systems.
+
+1999-01-04 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/support/clibdata.cxx:
+ Minor bug with environ not being initialised correctly by
+ default
+
+1998-12-24 Bart Veer <bartv@cygnus.co.uk>
+
+ * src/clibincl/stream.inl (Cyg_StdioStream):
+ check_this() member functions should now be const
+
+1998-12-22 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/string/memchr.cxx (_memchr):
+ treat search value parameter to memchr as an unsigned byte,
+ not a signed int - copied fix from newlib PR 18471
+
+1998-12-21 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdlib/realloc.c:
+ * tests/stdlib/malloc3.c:
+ * tests/stdlib/malloc2.c:
+ Warning cleanup
+
+1998-12-14 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdlib/malloc2.c, tests/stdlib/malloc3.c,
+ tests/stdlib/realloc.c:
+ Only run these tests when we have a coalescing memory allocator
+
+1998-12-14 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/stream.cxx:
+ Only check buffer init success if buffering
+
+ * src/stdio/common/streambuf.cxx (set_buffer):
+ Check for diff of requested size against buffer_size, not
+ get_buffer_size(), since this may return -1, which won't be
+ equal to size, and will cause malloc to be called
+
+1998-12-01 Jesper Skov <jskov@cygnus.co.uk>
+
+ * tests/stdlib/getenv.c (main): Don't declare variables when they
+ are not used.
+
+Thu Nov 26 17:59:12 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/string/strncpy1.c:
+ Fix off-by-one error since it called my_strcmp() and not
+ my_strncmp(), which meant in included the trailing NULL when it
+ shouldn't have.
+
+1998-11-26 Jesper Skov <jskov@cygnus.co.uk>
+
+ * src/stdlib/qsort.cxx (_qsort):
+ * src/stdlib/rand.cxx (_srand):
+ Changed CYG_REPORT_FUNCNAMETYPE to CYG_REPORT_FUNCNAME in void
+ functions.
+
+Mon Oct 26 18:49:00 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/support/cstartup.cxx (cyg_libc_dummy_main):
+ Silence compiler warning with cast of char * to CYG_ADDRWORD
+
+Wed Oct 28 17:31:21 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/time/clock.cxx (_clock):
+ Reorder scaling expression as it was both incorrect and risked
+ overflow.
+ Fix for PR 18076
+
+Mon Oct 19 14:40:06 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/stdio.h (EOF):
+ Change from -64 to (-1), to allow broken code to work :-/
+ Also change other negative defines to be within parentheses
+
+1998-10-19 Mark Galassi <rosalia@cygnus.com>
+
+ * include/pkgconf/libc.h: updated the doc URL
+
+Thu Oct 15 21:33:44 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/clibdata.hxx:
+ Only include kernel thread headers when we're in thread-safe mode
+
+ * src/time/clock.cxx:
+ Only include kernel clock headers if there's a kernel with the
+ right functionality available
+
+ * tests/time/clock.c:
+ Remove unnecessary inclusion of <pkgconf/kernel.h>
+
+ Above changes are required for PR 17229
+
+Wed Oct 14 16:38:55 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/clibdata.hxx, src/clibincl/clibdata.inl:
+ Conditionalise inclusion of clibincl/stdiosupp.hxx and
+ clibincl/stream.hxx. Tidying up PR 17502
+
+Wed Oct 14 14:08:56 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Rename CYGPKG_LIBC_STRING_OPTIMISATIONS to
+ CYGPKG_LIBC_STRING_OPTIMIZATIONS to make it truely merkin.
+
+Tue Oct 13 19:34:41 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h (CYGDAT_LIBC_ARGUMENTS):
+ Add a default argv[0] of "" as many programs assume argc>0
+ The standard allows argv[0] to be "" if the program name
+ is not available
+
+1998-09-26 Bart Veer <bartv@cygnus.co.uk>
+
+ * src/clibincl/stdiosupp.hxx:
+ PR 17502: this header file now does nothing if the stdio option
+ is disabled completely. This is the same behaviour is
+ clibincl/stream.hxx, although arguably the #ifdef protection
+ should happen wherever the header file is #include'd rather than
+ in the header file itself.
+
+ * src/clibincl/clibdata.hxx:
+ PR 17502: this header file still #include's internal stdio-related
+ header files and references the FILE structure, even if stdio is
+ disabled. There were some #ifdef's for CYGPKG_LIBC_STDIO already.
+ One more has been added for _fopen() and _fclose().
+
+1998-09-25 Bart Veer <bartv@cygnus.co.uk>
+
+ * src/clibincl/streambuf.inl (Cyg_StdioStreamBuffer):
+ PR 17487: Reorder the calls to initialize member fields, to
+ eliminate a compiler warning.
+
+Fri Sep 25 19:04:29 1998 Jonathan Larmour <jlarmour@peshwari.cygnus.co.uk>
+
+ * src/errno/errno.cxx, src/stdlib/bsearch.cxx,
+ src/stdlib/qsort.cxx, src/stdlib/rand.cxx, src/string/strtok.cxx,
+ src/time/clock.cxx:
+ Only define tracing variable and tracing level macro when
+ the relevant tracing level config options are set. Otherwise
+ keep the tracing level fixed at 0
+ Fix for PR 17476
+
+ * include/pkgconf/libc.h:
+ Define trace levels only if parent CYGPKG_LIBC_TRACE is defined
+ for consistency with Configuration Tool
+
+
+Fri Sep 25 17:24:45 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/stdioinlines.cxx:
+ Make definition of vscanf() dependent on CYGFUN_LIBC_STDIO_ungetc
+ otherwise _vfscanf() won't be compiled. This therefore would
+ cause a link fail iff selective linking is not enabled.
+ Fix for PR 17455
+
+Fri Sep 25 17:23:17 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdlib/rand.cxx:
+ Make compilation dependent on CYGPKG_LIBC_RAND
+ Fix for PR 17473
+
+ * tests/stdlib/srand.c:
+ Make definition of dummy test pass conditional on CYGPKG_LIBC_RAND
+ not being defined, as well as CYGPKG_LIBC
+ Caused compilation failure when testing PR 17473 fix
+
+Mon Sep 21 17:11:04 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdio/sscanf.c:
+ Make sscanf test conditional on CYGFUN_LIBC_STDIO_ungetc since
+ _vfscanf() only gets compiled if this is defined
+ Fix for PR 17346
+
+1998-09-20 Mark Galassi <rosalia@cygnus.com>
+
+ * include/pkgconf/libc.h: updated CDL doc strings.
+
+Fri Sep 18 22:18:47 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/clibdata.inl (get_errno_p):
+ Rather than this function only being available in thread-safe mode,
+ instead make what it returns be either the per-thread errno, or
+ global errno depending on the configuration.
+ Include <errno.h> (conditionally) to support this change
+
+Wed Sep 16 11:20:31 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Remove "fix me" comment which I forgot to remove before
+
+Tue Sep 15 19:27:57 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Updated descriptions and a few other minor things after review.
+ Notably though, the NDEBUG config option has been removed
+
+1998-09-15 Bart Veer <bartv@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ PR 17201: removed dependency on CYGPKG_KERNEL in the option
+ CYGNUM_LIBC_MAIN_STACK_SIZE, since the actual dependencies cannot
+ be expressed sensibly in the current system.
+
+1998-09-11 Bart Veer <bartv@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Sorting out dependencies for error package.
+
+1998-09-10 Mark Galassi <rosalia@cygnus.com>
+
+ * include/pkgconf/libc.h: started adding doc fields to the
+ cdl_package data, as a pilot for now.
+
+Wed Sep 9 17:41:23 1998 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Add option CYGIMP_LIBC_MALLOC_CXX_DELETE_CALLS_FREE to explicitly
+ control whether the empty delete functions (currently) in
+ kernel/.../common/delete.cxx are enabled; controls code bloat, see
+ the comments in delete.cxx.
+
+Fri Sep 4 16:43:38 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdio/stdiooutput.c:
+ Add a default CYG_TEST_PASS() to make sure the test infra doesn't
+ complain.
+ Also remove the unused string functionsa
+
+Fri Sep 4 15:43:48 1998 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * src/stdlib/exit.cxx (__libc_exit):
+ * src/stdlib/_exit.cxx (__libc__exit):
+ * src/stdlib/malloc.cxx (_free):
+ * src/stdlib/abort.cxx (abort):
+ * src/support/cstartup.cxx (invoke_main):
+ Tracing system asserted cos it was being called incorrectly; these
+ are void functions so you shouldn't give a type to the function
+ reporting call.
+
+Fri Sep 4 15:03:10 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Fix CYGDAT_LIBC_STDIO_DEFAULT_CONSOLE description to refer to
+ the table.cxx file, not table.h
+
+Fri Sep 4 14:38:52 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Add description for CYGDAT_LIBC_STDIO_DEFAULT_CONSOLE since
+ Proven won't be making any changes to the device driver
+ implementation after all.
+ Fix for PR 17148
+
+ * src/clibincl/stream.inl (set_position):
+ Remove "fix me" line. It is obvious that this will have to change
+ with a filesystem interface
+ Fix for PR 17147
+
+ * src/stdio/common/freopen.cxx:
+ Remove "fix me" - I know about this issue
+ Fix for PR 17145
+
+ * src/stdio/common/stream.cxx (read):
+ Remove "fix me" and change to use memcpy
+ Fix for PR 17144
+
+Fri Sep 4 14:36:47 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdio/stdiooutput.c:
+ Actually add it this time!
+
+Fri Sep 4 13:48:13 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdio/stdiooutput.c:
+ Add new tests for misc stdio output functions
+
+ * tests/PKGconf.mak:
+ Build stdiooutput.c test
+
+Fri Sep 4 12:52:10 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/stream.inl (write_byte):
+ Remove bogus assert
+
+ * tests/stdlib/getenv.c (main):
+ Check whether str is NULL before doing a strcmp()
+
+ * tests/stdio/sprintf2.c (main):
+ Reformat to 76 columns
+
+Fri Sep 4 02:10:54 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/stream.hxx, src/stdio/common/stream.cxx:
+ Add new peek_byte method to Cyg_StdioStream
+
+ * src/stdio/input/vfscanf.cxx (_vfscanf):
+ Fix up buffer access to work with new peek_byte method above
+ Fix for PR 16954
+
+Thu Sep 3 19:40:11 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdlib/rand1.c, tests/stdlib/rand2.c,
+ tests/stdlib/rand3.c:
+ Add extra check for CYGPKG_LIBC_RAND to decide whether the test
+ is applicable or not
+
+ * tests/stdlib/rand2.c (test):
+ Use CYGNUM_LIBC_RAND_SEED for default seed, not 1
+
+ * tests/string/strtok.c:
+ Add extra check for CYGFUN_LIBC_strtok to decide whether the
+ test is applicable or not
+
+Wed Sep 2 19:11:40 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/input/fread.cxx, src/stdio/output/fwrite.cxx:
+ Add fread() and fwrite() functions
+
+ * src/PKGconf.mak:
+ Build fread.cxx and fwrite.cxx from above
+
+ * src/stdio/common/stream.cxx:
+ Reformat to 76 columns
+ In write(), move initialisation of *bytes_written to start
+ In read(), move initialisation of *bytes_read to start
+
+ * include/stdio.h:
+ Reformat to 76 columns
+
+ Replace all references to the ANSI
+ standard to instead by the ISO C standard
+
+ Add commented argument names for "documentation"
+
+ Add fread() and fwrite() prototypes
+
+ * src/clibincl/stdiosupp.hxx:
+ Copy the above changes from stdio.h, and add _fread() and _fwrite()
+ prototypes
+
+ * src/stdio/output/fputs.cxx, src/stdio/input/fgets.cxx:
+ Reformat to 76 columns
+
+Wed Sep 2 15:41:15 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/input/vfscanf.cxx:
+ Reformat to 76 columns
+
+Wed Sep 2 14:46:18 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/fflush.cxx:
+ Use trylock_me() instead of lock_me(), and loop to prevent
+ deadlocks
+
+ * src/clibincl/stream.hxx, src/clibincl/stream.inl:
+ Add trylock_me() method
+
+ * src/clibincl/stream.hxx, src/clibincl/stream.inl,
+ src/stdio/common/fflush.cxx:
+ Reformat to 76 columns
+
+Wed Sep 2 12:24:27 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Change 0x7fff to 0x7fffffff. Oops!
+ give main stack size option a legal_values field
+ Undefine tracing by default
+ Add some more description in the header
+
+Tue Sep 1 20:02:07 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/i18n/setlocale.c (cyg_package_start):
+ Fix typo - extra "x" for no reason at all! :-)
+
+Tue Sep 1 19:44:58 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/i18n/locale.cxx:
+ Fix bug in find_locale_data() that miscalculated size of
+ all_locales
+
+ Make find_locale_data() match the locale "" and add some
+ other things in _setlocale() to ensure that "C" gets returned
+ when the default locale "" is passed.
+
+ Only check the locale pointer when it is non-NULL
+
+ * tests/i18n/setlocale.c:
+ New tests for setlocale()
+
+ * tests/PKGconf.mak:
+ Update to build setlocale.c test
+
+ * src/support/cstartup.cxx:
+ Don't actually call system default main() "main" otherwise GDB
+ gets confused and thinks its the entry point. Instead make a weak
+ alias and call the real function something different.
+
+Tue Sep 1 18:31:42 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/i18n/locale.cxx (_setlocale):
+ Fix tracing macro name and remove "str maybe used before
+ initialised" warning
+
+ * tests/stdlib/qsort.c:
+ Correct file description header
+
+Tue Sep 1 17:04:32 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/locale.h, src/clibincl/i18nsupp.hxx, src/i18n/locale.cxx:
+ New files to add support for locales as defined by the ISO C
+ standard. i.e. setlocale() and localeconv() functions and some
+ other bits
+
+ * include/pkgconf/libc.h:
+ Add CYGNUM_LIBC_MAX_LOCALE_NAME_SIZE config option for locale
+ support
+
+ * src/PKGconf.mak:
+ build locale.cxx
+
+ * include/errno.h, src/clibincl/ctypesupp.hxx:
+ Tidy up to 76 columns
+
+Tue Sep 1 00:24:22 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Move environment-related options from stdlib into new
+ CYGPKG_LIBC_STARTUP component. Also add options for main()'s
+ arguments (CYGPKG_LIBC_ARGUMENTS), main()'s default stack size
+ (CYGNUM_LIBC_MAIN_STACK_SIZE), number of atexit handlers
+ (CYGNUM_LIBC_ATEXIT_HANDLERS), and whether _exit() stops the
+ system (CYGSEM_LIBC_EXIT_STOPS_SYSTEM).
+
+ * src/clibincl/stdlibsupp.hxx:
+ Fix a few comment bugs, and add new
+ cyg_libc_invoke_atexit_handlers() function prototype
+
+ * src/stdlib/_exit.cxx, src/stdlib/atexit.cxx, src/stdlib/exit.cxx:
+ Implement exit(), atexit() and _exit() correctly now. Also
+ includes cyg_libc_invoke_atexit_handlers() in atexit.cxx. Now
+ we get the correct behaviour of atexit(), and exit() invokes the
+ atexit handlers and fflushs all the stdio streams. Add plenty of
+ tracing of asserts too.
+
+ * src/support/cstartup.cxx:
+ Make main_thread object an exported global. Allow user-settable
+ arguments. Add MUCH more tracing and asserts. Improve comments.
+ Tidy up to 76 columns
+
+ * tests/stdlib/atexit.c:
+ Add simple test for atexit() and it calling registered functions
+
+ * tests/PKGconf.mak:
+ Build atexit.c test
+
+Mon Aug 31 18:54:48 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdlib/getenv.cxx, tests/stdlib/getenv.c:
+ Add support for getenv(), and some tests to ensure it works
+
+ * src/PKGconf.mak, tests/PKGconf.mak:
+ Update to include getenv.cxx and getenv.c test
+
+ * src/clibincl/clibdata.hxx:
+ remove prototype for environ - we expect files needing it to
+ define it themselves
+
+ * src/support/clibdata.cxx:
+ Tidy up to 76 columns and add definition of char **environ, but
+ with a configurable initialiser (see libc.h below)
+
+ * tests/stdlib/abs.c (main):
+ Tidy up to 76 columns
+
+ * src/stdlib/malloc.cxx:
+ Tidy up to 76 columns and remove warning for undefined _memcpy()
+ by changing to memcpy(), and casting away signedness
+
+ * include/pkgconf/libc.h:
+ Add CYGPKG_LIBC_ENVIRONMENT and CYGDAT_LIBC_DEFAULT_ENVIRONMENT
+ configuration options
+
+ * include/pkgconf/libc.h, src/clibincl/clibdata.hxx:
+ Tidy up to 76 columns
+
+ * include/stdlib.h:
+ Add getenv() prototype and tidy up to 76 columns
+
+ * src/clibincl/stdlibsupp.hxx:
+ Add _getenv() prototype
+
+Mon Aug 31 13:37:08 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdlib/malloc.cxx:
+ Add realloc()
+
+ * tests/stdlib/realloc.c:
+ Add this file to test new realloc() functionality
+
+ * tests/PKGconf.mak:
+ Build realloc test
+
+ * tests/stdlib/malloc3.c (main), tests/stdlib/malloc2.c (main),
+ tests/stdlib/malloc1.c (main):
+ Conditionalise local vars to prevent warnings
+
+ * tests/stdlib/malloc3.c (fill_with_data):
+ Move '{' into "verb" line
+
+ * include/pkgconf/libc.h:
+ Require infra tracing support to allow tracing
+
+ * include/stdlib.h:
+ Add realloc()
+
+ * src/clibincl/stdlibsupp.hxx:
+ Update the commented argument names from stdlib.h, including realloc()
+
+1998-08-28 Bart Veer <bartv@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ * src/clibincl/clibdata.hxx, src/time/clock.cxx:
+
+ Updated for new kernel configuration option symbol names
+
+Fri Aug 28 19:18:25 1998 Hugo Tyson <hmt@cygnus.co.uk>
+
+ Changed the entry below to sat "tx39" instead of "mn10300".
+ It's been a long week.
+
+Fri Aug 28 18:59:20 1998 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * src/support/cstartup.cxx: Add a weakly named main to allow the
+ default configuration to link on the tx39 which has no
+ scalextric linking yet. The static Cyg_Thread main_thread object
+ below continues to exist, though unreferenced, so all its
+ descendants must exist too.
+
+Fri Aug 28 08:54:29 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/stdlib.h:
+ Add commented argument names Add exit(), and atexit(). And move
+ these along with abort() and _exit() to a new section.
+
+ * src/stdlib/atexit.cxx, src/stdlib/exit.cxx:
+ Add trivial versions of atexit() and exit()
+
+ * include/pkgconf/libc.h:
+ Add CYGNUM_LIBC_MAIN_STACK_SIZE config option
+
+ * include/sys/cstartup.h, src/support/cstartup.cxx, src/PKGconf.mak:
+ New files to provide a new function cyg_iso_c_support(), which
+ invokes main "correctly".
+
+ * tests/ctype/ctype.c, tests/setjmp/setjmp.c, tests/stdio/sprintf1.c,
+ tests/stdio/sprintf2.c, tests/stdio/sscanf.c, tests/stdlib/abs.c,
+ tests/stdlib/atoi.c, tests/stdlib/atol.c, tests/stdlib/bsearch.c,
+ tests/stdlib/div.c, tests/stdlib/labs.c, tests/stdlib/ldiv.c,
+ tests/stdlib/malloc1.c, tests/stdlib/malloc2.c,
+ tests/stdlib/malloc3.c, tests/stdlib/qsort.c, tests/stdlib/rand1.c,
+ tests/stdlib/rand2.c, tests/stdlib/rand3.c, tests/stdlib/srand.c,
+ tests/stdlib/strtol.c, tests/stdlib/strtoul.c,
+ tests/string/memchr.c, tests/string/memcmp1.c,
+ tests/string/memcmp2.c, tests/string/memcpy1.c,
+ tests/string/memcpy2.c, tests/string/memmove1.c,
+ tests/string/memmove2.c, tests/string/memset.c,
+ tests/string/strcat1.c, tests/string/strcat2.c,
+ tests/string/strchr.c, tests/string/strcmp1.c,
+ tests/string/strcmp2.c, tests/string/strcoll1.c,
+ tests/string/strcoll2.c, tests/string/strcpy1.c,
+ tests/string/strcpy2.c, tests/string/strcspn.c,
+ tests/string/strlen.c, tests/string/strncat1.c,
+ tests/string/strncat2.c, tests/string/strncpy1.c,
+ tests/string/strncpy2.c, tests/string/strpbrk.c,
+ tests/string/strrchr.c, tests/string/strspn.c,
+ tests/string/strstr.c, tests/string/strtok.c,
+ tests/string/strxfrm1.c, tests/string/strxfrm2.c,
+ tests/time/clock.c:
+
+ Modify all tests to use new startup mechanism, and cyg_iso_c_start()
+
+Fri Aug 28 00:29:38 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/stream.cxx:
+ Add #ifdef CYGSEM_LIBC_STDIO_WANT_BUFFERED_IO around all accesses to
+ flags.last_buffer_op_was_read. Fix for PR 16997
+
+Thu Aug 27 01:12:42 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/sys/file_if.h:
+ Fix comments and remove cyg_get_file_star()
+
+Wed Aug 26 20:24:32 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Remove #define CYGPKG_LIBC is that is meant to live in
+ <pkgconf/system.h> after all
+
+Wed Aug 26 19:39:23 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ More fixes to CDL stuff to make it work better, and look better on
+ the screen
+
+Tue Aug 25 20:21:41 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Make some fixes after running the ConfigTool
+
+Tue Aug 25 16:46:28 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h (CYGNUM_LIBC_STDIO_BUFSIZE):
+ Fix typo of CYGNUM_LIBC_STDIO_BUFSIZE
+
+Tue Aug 25 15:10:57 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Tidy up CDL stuff a bit more, prior to checking it actually works.
+
+Tue Aug 25 11:38:52 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdlib/malloc2.c (main):
+ Prevent calls to CYG_TEST_STILL_ALIVE for now
+
+Tue Aug 25 05:39:28 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Change cosmetic paragraph alignment.
+
+Tue Aug 25 03:11:34 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/support/clibdata.cxx:
+ Make stderr initialise with buffer size 0.
+ For PR 16955
+
+Mon Aug 24 17:38:46 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ First pass at CDL-ifying the C library configuration. Currently
+ deliberately disabled as there a few outstanding issues.
+
+Mon Aug 24 16:14:22 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/output/vfnprintf.cxx (_vfnprintf):
+ clear up warning for unused argument
+
+ * tests/stdlib/malloc2.c (NUM_ITERATIONS):
+ Lower to 100 from 50000 so it won't take too long under the simulator
+
+Thu Aug 20 17:48:43 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdlib/malloc.cxx:
+ Remove now unnecessary inclusion of kernel/ktypes.h
+
+Wed Aug 19 19:19:14 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdio/sprintf1.c, tests/stdio/sprintf2.c,
+ tests/stdio/sscanf.c, tests/stdlib/atoi.c, tests/stdlib/atol.c,
+ tests/stdlib/rand1.c, tests/stdlib/rand2.c, tests/stdlib/rand3.c,
+ tests/stdlib/srand.c, tests/stdlib/strtol.c,
+ tests/stdlib/strtoul.c, tests/string/strtok.c,
+ tests/time/clock.c:
+ Add parameters to "main()" to silence warnings
+
+Wed Aug 19 18:52:59 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/stream.cxx (refill_read_buffer):
+ Put conditional error check into same #ifdef and if as what was being
+ checked in the first place!
+
+Wed Aug 19 18:49:19 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/stream.inl:
+ Reorder Cyg_StdioStream::check_this() to be first to silence
+ warnings
+
+Tue Aug 18 16:10:03 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * ecc/language/c/libc/current/src/clibincl/clibdata.hxx,
+ ecc/language/c/libc/current/src/errno/errno.cxx,
+ ecc/language/c/libc/current/src/stdio/common/fopen.cxx,
+ ecc/language/c/libc/current/src/stdlib/rand.cxx,
+ ecc/language/c/libc/current/src/string/strtok.cxx:
+ Rename CYGIMP_LIBC_INTERNAL_DATA_PREAMBLE,
+ CYGIMP_LIBC_INTERNAL_DATA_ALLOC_CHECK_PREAMBLE,
+ CYGVAR_LIBC_INTERNAL_DATA, and
+ CYGIMP_LIBC_INTERNAL_DATA_CHECK to all have CYGPRI_ prefix instead
+ as recommended by the config name rules
+
+
+Tue Aug 18 14:31:19 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/setvbuf.cxx (_setvbuf):
+ Rename variable names in assert line, otherwise doesn't build
+ with asserts on!
+
+Sun Aug 16 18:15:12 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/input/vfscanf.cxx (_vfscanf):
+ Fix some bugs, although there are some left to fix still. Unrelated
+ to the rest of the checkins, so I will check the partial fix in now.
+
+ * src/clibincl/stream.hxx, src/clibincl/stream.inl,
+ src/stdio/common/stream.cxx:
+ Add parameters to constructor to allow more things to be done at
+ construction time.
+
+ Now we have "new", remove separate "construct" method
+
+ Add more documentation on constructor
+
+ As requested by code review, where possible, move boolean flags
+ into separate packed bitfield structure for space efficiency
+
+ Make readbuf_char be usable all the time rather than when configured
+ not to be buffering, as it is also needed for non-buffered mode i.e.
+ _IONBF
+
+ * src/stdio/common/fopen.cxx:
+ Change to use new method of construction from above, using new
+
+ Use thread-specific data, rather than global. And so change errnos
+ to access errno entry specifically
+
+ Make process_mode() check for append mode too
+
+ Reformat for coding standards to have { in same line as "verb"
+
+ * src/stdio/common/setvbuf.cxx:
+
+ Change to cope with different way of dealing with buffering policy
+ flags etc. in Cyg_StdioStream
+
+ * src/stdio/common/vsnprintf.cxx, src/stdio/common/vsscanf.cxx,
+ src/support/clibdata.cxx:
+ Change construction of streams to use new parameters added above,
+ and change to use _IONBF mode for string stdio functions,
+ otherwise its a waste of memory. And use _IONBF for stderr as the
+ ISO standard tells us to!
+
+ Reformat for coding standards to have { in same line as "verb"
+
+ * src/clibincl/streambuf.hxx, src/clibincl/streambuf.inl:
+ Change constructor so that it can be set with default size and
+ dynamic buffer (if applicable)
+
+ Fix minor bug in destructor - should only call free when allocated
+ dynamically
+
+ Change get_buffer_size to return -1 if the buffer was not allowed
+ to be set up
+
+ * src/stdio/common/streambuf.cxx:
+ Remove unnecessary stdio.h include and add extra comment to whether
+ to free bit in set_buffer()
+
+ * src/stdio/common/freopen.cxx:
+ Change @@@ to standard fix me string
+
+ * src/stdio/output/fputc.cxx:
+ Remove unnecessary "written" variable
+
+Thu Aug 13 15:37:28 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdlib/_exit.cxx:
+ Included use of "fix me" line to ensure this is discussed before
+ release
+
+ * include/stdlib.h, src/stdlib/abort.cxx, src/PKGconf.mak:
+ Add abort.cxx to implement abort(), albeit naively
+
+Thu Jul 30 18:03:09 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/vsscanf.cxx (_vsscanf),
+ src/stdio/common/vsnprintf.cxx (_vsnprintf):
+ Fix initialiser of pseudo string device table that didn't get updated
+ when the table changed (Bad proven, no biscuit).
+
+ * src/clibincl/stream.inl (~Cyg_StdioStream):
+ Move invalidation of magic_validity_word to after unlock_me(),
+ otherwise it always fails!
+
+Tue Jul 28 21:29:53 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/clibdata.hxx:
+ Shorten over-long lines
+
+Tue Jul 28 20:28:23 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/stream.hxx (class Cyg_StdioStream),
+ src/clibincl/stream.inl, src/stdio/common/stream.cxx:
+ Clarify some comments and get the CYGDBG_DEFINE_CHECK_THIS and
+ CYG_ASSERTCLASS stuff going
+
+ * src/clibincl/stream.inl:
+ Put '{'s on same line as "action" as per coding standards
+ Shorten over-long lines
+
+Tue Jul 28 15:31:06 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/streambuf.inl, src/stdio/common/streambuf.cxx:
+ Move set_buffer() from streambuf.inl to new file streambuf.cxx
+
+ * src/PKGconf.mak (COMPILE):
+ Build new file streambuf.cxx
+
+ * src/clibincl/streambuf.hxx (class Cyg_StdioStreamBuffer):
+ Add METHODS comment
+
+ * src/stdio/common/stream.cxx:
+ Put '{'s on same line as "action" as per coding standards
+ Shorten over-long lines
+
+Tue Jul 28 00:26:36 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/stdlib.inl, src/stdio/input/vfscanf.cxx,
+ src/stdio/output/vfnprintf.cxx, src/stdlib/div.cxx,
+ src/stdlib/ldiv.cxx, src/stdlib/qsort.cxx, src/stdlib/strtol.cxx,
+ src/stdlib/strtoul.cxx, src/string/strtok.cxx:
+
+ Include proper Berkeley license inline in the file, rather than
+ referring to an external file
+
+ * doc/COPYING.UCB:
+ Remove, now that it isn't referred to any more
+
+Mon Jul 27 23:34:26 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/ctype.h, include/ctype.inl, include/errno.h,
+ include/stdio.h, include/stdio.inl, include/stdlib.h,
+ include/stdlib.inl, include/string.h, include/string.inl,
+ include/time.h, include/sys/file_if.h, src/PKGconf.mak,
+ src/clibincl/clibdata.hxx, src/clibincl/clibdata.inl,
+ src/clibincl/ctypesupp.hxx, src/clibincl/stdiosupp.hxx,
+ src/clibincl/stream.hxx, src/clibincl/streambuf.hxx,
+ src/clibincl/streambuf.inl, src/clibincl/stringsupp.hxx,
+ src/clibincl/timesupp.hxx, src/ctype/isalnum.cxx,
+ src/ctype/isalpha.cxx, src/ctype/iscntrl.cxx,
+ src/ctype/isdigit.cxx, src/ctype/isgraph.cxx,
+ src/ctype/islower.cxx, src/ctype/isprint.cxx,
+ src/ctype/ispunct.cxx, src/ctype/isspace.cxx,
+ src/ctype/isupper.cxx, src/ctype/isxdigit.cxx,
+ src/ctype/tolower.cxx, src/ctype/toupper.cxx,
+ src/errno/errno.cxx, src/stdio/common/snprintf.cxx,
+ src/stdio/common/sprintf.cxx, src/stdio/common/sscanf.cxx,
+ src/stdio/common/stdioinlines.cxx, src/stdio/common/stream.cxx,
+ src/stdio/common/ungetc.cxx, src/stdio/common/vsnprintf.cxx,
+ src/stdio/common/vsscanf.cxx, src/stdio/input/fgetc.cxx,
+ src/stdio/input/fgets.cxx, src/stdio/input/fscanf.cxx,
+ src/stdio/input/gets.cxx, src/stdio/input/scanf.cxx,
+ src/stdio/output/fnprintf.cxx, src/stdio/output/fprintf.cxx,
+ src/stdio/output/fputc.cxx, src/stdio/output/fputs.cxx,
+ src/stdio/output/printf.cxx, src/stdlib/_exit.cxx,
+ src/stdlib/abs.cxx, src/stdlib/atof.cxx, src/stdlib/atoi.cxx,
+ src/stdlib/atol.cxx, src/stdlib/div.cxx, src/stdlib/labs.cxx,
+ src/stdlib/ldiv.cxx, src/stdlib/rand.cxx, src/stdlib/strtod.cxx,
+ src/string/memchr.cxx, src/string/memcmp.cxx,
+ src/string/memmove.cxx, src/string/strcat.cxx,
+ src/string/strchr.cxx, src/string/strcmp.cxx,
+ src/string/strcoll.cxx, src/string/strcpy.cxx,
+ src/string/strcspn.cxx, src/string/strlen.cxx,
+ src/string/strncat.cxx, src/string/strncmp.cxx,
+ src/string/strncpy.cxx, src/string/strpbrk.cxx,
+ src/string/strrchr.cxx, src/string/strspn.cxx,
+ src/string/strstr.cxx, src/string/strsuppt.cxx,
+ src/string/strtok.cxx, src/string/strxfrm.cxx,
+ src/support/clibdata.cxx, src/time/clock.cxx:
+ Untabify
+
+Mon Jul 27 23:14:18 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/errno/errno.cxx, src/stdio/input/vfscanf.cxx,
+ src/stdio/output/vfnprintf.cxx, src/stdlib/strtol.cxx,
+ src/stdlib/strtoul.cxx, src/stdlib/malloc.cxx, src/stdlib/qsort.cxx,
+ tests/ctype/ctype.c, tests/stdlib/rand3.c, tests/stdlib/malloc3.c:
+ Remove all mentions of "register" in variable declarations. Also
+ untabify where needed
+
+ * src/stdlib/bsearch.cxx:
+ Untabify this too
+
+
+Mon Jul 27 22:18:51 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/output/fputc.cxx (_fputc):
+ Replace call to stream write() with call to write_byte()
+
+ * src/clibincl/stream.inl (write_byte):
+ Add asserts for stream write() returning odd values for how much has
+ been written
+
+ (bytes_available_to_read):
+ Remove "register" def for variable declaration
+
+Mon Jul 27 22:06:22 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/stdiosupp.cxx:
+ Remove #if 0'd cyg_get_file_star() and unnecessary pseudo string
+ device definition
+
+Mon Jul 27 21:57:25 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h, src/support/clibdata.cxx:
+ Change CYGXXX_LIBC_STDIO_DEFAULT_CONSOLE to
+ CYGDAT_LIBC_STDIO_DEFAULT_CONSOLE
+
+Mon Jul 27 21:49:23 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/clibdata.hxx, src/clibincl/clibdata.inl,
+ src/clibincl/ctypesupp.hxx, src/clibincl/setjmpsupp.hxx,
+ src/clibincl/stdiosupp.hxx, src/clibincl/stdlibsupp.hxx,
+ src/clibincl/stream.hxx, src/clibincl/stream.inl,
+ src/clibincl/streambuf.hxx, src/clibincl/streambuf.inl,
+ src/clibincl/stringsupp.hxx, src/clibincl/timesupp.hxx:
+
+ Change CYGONCE_LIBC_*_{HXX,INL} to CYGONCE_LIBC_CLIBINCL_*_{HXX,INL}
+
+Mon Jul 27 21:34:05 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Change #define XXXXX 1 to #define XXXXX where applicable as per code
+ review
+
+ Also remove obsolete CYGIMP_LIBC_THREAD_START_SUSPENDS_SELF
+
+Mon Jul 27 19:42:27 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/fopen.cxx (_fopen):
+ Use #ifdef, not #if for config options
+
+Mon Jul 27 15:01:51 BST 1998 Chris Provenzano <proven@cygnus.com>
+
+ * src/stdio/common/stream.cxx, src/stdio/common/vsnprintf.cxx
+ * src/stdio/common/vsscanf.cxx:
+ Fixes to compile with the new Cyg_IORB field names.
+
+Thu Jul 9 03:40:21 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdlib/atoi.c, tests/stdlib/atol.c,
+ tests/stdlib/strtol.c, tests/stdlib/strtoul.c:
+ Adjust starting of tests to possibly start scheduler since
+ strtol/stroul rely on errno, which may be a per-thread variable
+
+Thu Jul 9 03:06:25 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/stream.hxx, src/clibincl/stream.inl,
+ src/stdio/common/stream.cxx, src/stdio/common/setvbuf.cxx:
+ Consolidate read and write buffers into single buffer, as it should
+ have been all along
+
+ * src/clibincl/streambuf.hxx, src/clibincl/streambuf.inl:
+ Add drain_buffer() method to speed up the case when we want the
+ buffer completely emptied
+
+Tue Jul 7 21:26:33 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdio/sprintf1.c:
+ Add a couple of new tests that check that very long strings work too
+
+Wed Jul 1 19:52:39 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/stream.hxx, src/clibincl/streambuf.hxx:
+ Do not permit copy constructors
+
+ * src/clibincl/stream.inl, src/stdio/common/fclose.cxx:
+ Make sure we use #ifdef and not #if
+
+ * src/clibincl/streambuf.inl:
+ Use member initialisation list rather than explicit initialisation to
+ reduce warnings
+
+Wed Jul 1 19:17:55 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h and all files using config options:
+ Rename configuration defines to make them more standard
+
+Thu Jun 25 20:09:30 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/string/strcat.cxx:
+ Add parentheses on check to silence warning
+ (Verified by proven)
+
+Thu Jun 25 19:30:01 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdlib/malloc.cxx:
+ Make sure that the malloc pool is initialised before other things
+ can use it. This is done with the hot new constructor ordering
+ feature.
+
+Thu Jun 25 18:27:03 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/input/vfscanf.cxx:
+ Remove bogus ifdef if floating point is _not_ wanted
+
+Thu Jun 25 17:31:42 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/string/strtok.cxx:
+ Fix argument checking to allow first argument of NULL
+
+Thu Jun 25 04:18:50 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/clibdata.inl (get_strtok_last_p):
+ Remove bogus assertion
+
+ * src/stdlib/malloc.cxx:
+ Got sense of alignment check assertion the wrong way round, so negate
+ it
+
+Thu Jun 25 03:56:35 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/string/strxfrm.cxx:
+ Fix argument checking assertions with legitimate nulls here too
+
+Thu Jun 25 03:46:32 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdlib/strtoul.cxx, src/stdlib/strtol.cxx:
+ Fix argument checking assertions to cope with legitimate nulls
+
+Wed Jun 24 09:01:45 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdio/sprintf1.c:
+ Remove extraneous info messages
+
+Wed Jun 24 05:59:17 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdio/sprintf1.c, tests/stdio/sprintf2.c, tests/stdio/sscanf.c,
+ tests/stdlib/rand1.c, tests/stdlib/rand2.c, tests/stdlib/rand3.c,
+ tests/stdlib/srand.c:
+
+ Change large automatic arrays to static arrays to prevent overuse
+ of a potentially small stack
+
+Wed Jun 24 05:45:28 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdio/sprintf1.c, tests/stdio/sprintf2.c, tests/stdio/sscanf.c,
+ tests/stdlib/rand1.c, tests/stdlib/rand2.c, tests/stdlib/rand3.c,
+ tests/stdlib/srand.c, tests/string/strtok.c, tests/time/clock.c:
+
+ Increase thread stack size from 4K to 32K as in some cases it was
+ too small.
+
+
+Tue Jun 23 20:12:31 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdio/sscanf.c:
+ Add extra tests, including floating point conversion testing
+
+Tue Jun 23 17:01:06 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/string/strtok.cxx:
+ Make sure this is only compiled if CYGFUN_LIBC_strtok is defined
+
+Tue Jun 23 06:10:13 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ add some comments - that's all
+
+ * src/stdio/common/stream.cxx:
+ fix case in refill_read_buffer() for what to do when there's nothing
+ left. Now return EAGAIN
+
+ * src/stdio/common/vsscanf.cxx, src/stdio/input/vfscanf.cxx:
+ Get sscanf working properly and passing tests. Also make sure it
+ ignores FP when its not configured
+
+ * src/stdlib/atof.cxx:
+ Only compile at all if strtod() is present
+
+
+Mon Jun 22 19:13:42 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/clibdata.hxx, src/clibincl/clibdata.inl:
+ Conditionalise strtok_last and rand_seed better
+
+Mon Jun 22 14:14:12 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdlib/malloc3.c:
+ Add test for checking that mallocing and freeing repeatedly works
+
+ * tests/PKGconf.mak:
+ Update to reflect addition of the above
+
+Mon Jun 22 13:09:33 BST 1998 Chris Provenzano <proven@cygnus.com>
+
+ * src/stdio/common/fopen.cxx
+ * src/stdio/common/stream.cxx
+ * src/stdio/common/vsnprintf.cxx
+ * src/stdio/common/vsscanf.cxx
+ Include cyg/devs/common/iorb.h instead of iorb.hxx
+
+ * src/stdio/common/stream.cxx
+ Use read_blocking and write_blocking instead of just read and
+ write when accessing devices through the virtual device table.
+
+Sun Jun 21 18:19:13 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/stdioinlines.cxx:
+ Propagate change of return code handling for puts from stdio.inl
+ into here
+
+ * src/stdio/output/fputc.cxx:
+ make sure the right type is used for output - byte not int
+
+ * src/support/clibdata.cxx:
+ Fix #define config mistook. #endif was in wrong place
+
+Sun Jun 21 16:11:04 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/clibdata.hxx, src/clibincl/clibdata.inl:
+ Allow explicit construction to get around a bug when
+ dynamically allocating per-thread structure
+
+Sun Jun 21 16:02:51 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/ctype/ctype.c, tests/setjmp/setjmp.c, tests/stdio/sprintf1.c,
+ tests/stdio/sprintf2.c, tests/stdio/sscanf.c, tests/stdlib/abs.c,
+ tests/stdlib/atoi.c, tests/stdlib/atol.c, tests/stdlib/bsearch.c,
+ tests/stdlib/div.c, tests/stdlib/labs.c, tests/stdlib/ldiv.c,
+ tests/stdlib/malloc1.c, tests/stdlib/malloc2.c, tests/stdlib/qsort.c,
+ tests/stdlib/rand1.c, tests/stdlib/rand2.c, tests/stdlib/rand3.c,
+ tests/stdlib/srand.c, tests/stdlib/strtol.c, tests/stdlib/strtoul.c,
+ tests/string/memchr.c, tests/string/memcmp1.c,
+ tests/string/memcmp2.c, tests/string/memcpy1.c,
+ tests/string/memcpy2.c, tests/string/memmove1.c,
+ tests/string/memmove2.c, tests/string/memset.c,
+ tests/string/strcat1.c, tests/string/strcat2.c,
+ tests/string/strchr.c, tests/string/strcmp1.c,
+ tests/string/strcmp2.c, tests/string/strcoll1.c,
+ tests/string/strcpy1.c, tests/string/strcpy2.c,
+ tests/string/strcspn.c, tests/string/strlen.c,
+ tests/string/strncat1.c, tests/string/strncat2.c,
+ tests/string/strncpy1.c, tests/string/strncpy2.c,
+ tests/string/strpbrk.c, tests/string/strrchr.c,
+ tests/string/strspn.c, tests/string/strstr.c, tests/string/strtok.c,
+ tests/string/strxfrm1.c, tests/string/strxfrm2.c, tests/time/clock.c:
+
+ Update tests to "do the right thing" with all configuration settings
+
+
+Sun Jun 21 04:54:14 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/setjmp/setjmp.c:
+ I have to be careful not to use setjmp() in a way not exactly
+ defined by the standard, so make sure I do, and add a comment
+ documenting these ways.
+
+ Also ensure this test does the right thing in all configurations
+
+Sun Jun 21 04:38:15 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Add extra checks for invalid configurations
+ Also make default for thread safety OFF
+
+ * src/clibincl/clibdata.inl:
+ Adjust indentation
+
+ * src/stdio/output/vfnprintf.cxx:
+ Make printf of -0.0 floating point do the right thing
+
+Sun Jun 21 04:28:00 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/snprintf.cxx, src/stdio/common/sprintf.cxx,
+ src/stdio/common/sscanf.cxx, src/stdio/input/fscanf.cxx,
+ src/stdio/input/scanf.cxx, src/stdio/output/fnprintf.cxx,
+ src/stdio/output/fprintf.cxx, src/stdio/output/printf.cxx:
+
+ Had to remove inline functions with varargs. Which means separating
+ out each function from stdioinlines.cxx into a separate file, as they
+ no longer belong there. So all the above files were created.
+
+ * include/stdio.inl, src/PKGconf.mak,
+ src/stdio/common/stdioinlines.cxx:
+ Changed to take account of the above
+
+
+Sun Jun 21 03:58:42 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdio/sprintf1.c, tests/stdio/sprintf2.c:
+ Update with floating-point tests. Also make sure they DTRT in all
+ configurations
+
+Fri Jun 19 19:33:06 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/support/clibdata.cxx:
+ accidentally initialised stdin/out/err twice
+
+Fri Jun 19 19:09:29 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/support/clibdata.cxx:
+ Another typo
+
+Fri Jun 19 18:59:07 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/support/clibdata.cxx:
+ Missing #endif typo
+
+Fri Jun 19 18:51:42 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/support/clibdata.cxx:
+ Fix initialisation of static data members. Unsure how it worked at
+ all before!
+
+Fri Jun 19 18:01:01 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/stdio.inl:
+ puts should check whether fputs returns non-negative, rather than
+ non-zero
+
+Fri Jun 19 17:22:52 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/clibdata.inl:
+ Make inclusion of get_errno_p conditional on thread-safety
+
+Wed Jun 17 10:55:32 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/input/vfscanf.cxx:
+ Add weak alias of vfscanf() to _vfscanf()
+
+Wed Jun 17 09:10:41 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/fflush.cxx:
+ Initialise err to silence compiler warning
+
+Wed Jun 17 08:59:20 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * Most important is the addition of floating point support in
+ src/stdio/output/vfnprintf.cxx and src/stdio/input/vfscanf.cxx. This
+ also required the addition of atof() and strtod() in stdlib which is
+ definitely no bad thing! Other than that...
+
+ * Fix a whole bunch of stuff I messed up first time round. Also the
+ sprintf and sscanf tests are included again.
+
+Tue Jun 16 16:38:02 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/PKGconf.mak:
+ Typo with not putting comment character at the beginning. Sigh.
+
+Tue Jun 16 14:53:09 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/PKGconf.mak:
+ Forgot to (temporarily) remove fputs test for now
+
+Mon Jun 15 20:40:03 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ Everything to do with stdio has almost completely changed, so there's
+ not much point documenting individual changes.
+
+Mon Jun 15 18:36:01 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdlib/malloc2.c:
+ Stop it moaning quite as much when it fails by making it exit sooner
+
+ * tests/time/clock.c :
+ This isn't a compound testcase
+
+Thu Jun 11 17:59:13 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/assert.h
+ Reverse sense of NDEBUG ifdef, that was left in accidentally due
+ to testing
+
+Thu Jun 11 04:58:08 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/errno.h, include/string.h, src/clibincl/stringsupp.hxx:
+ Modify as I've now added an "error" package which defines the error
+ codes and strerror()
+
+ * src/errno/strerror.cxx:
+ Moved to new error package and thus deleted
+
+Wed Jun 10 18:37:37 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/assert.h:
+ create this header and add assert() function
+
+Wed Jun 10 16:23:57 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/stdlib.h, src/clibincl/stdlibsupp.hxx, src/stdlib/malloc.cxx:
+ Add malloc(), calloc() and free() functions
+
+ * include/pkgconf/libc.h:
+ Add malloc memory pool size option
+
+ * tests/stdlib/malloc1.c, tests/stdlib/malloc2.c:
+ new tests for malloc
+
+ * src/PKGconf.mak, tests/PKGconf.mak:
+ Update for new files
+
+Wed Jun 10 15:06:16 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/setjmp/setjmp.c:
+ Add another test
+
+Tue Jun 9 18:20:31 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Add some setjmp config's and a macro for the noreturn attribute
+
+ * include/setjmp.h, include/setjmp.inl, src/clibincl/setjmpsupp.hxx,
+ src/setjmp/longjmp.cxx, tests/setjmp/setjmp.c:
+ Added to implement and test setjmp() and longjmp()
+
+ * src/PKGconf.mak, tests/PKGconf.mak:
+ Update for newly added files
+
+Thu Jun 4 01:29:18 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/string/memchr.cxx, src/string/memcmp.cxx, src/string/strcat.cxx,
+ src/string/strchr.cxx, src/string/strcmp.cxx, src/string/strcpy.cxx,
+ src/string/strlen.cxx, src/string/strncat.cxx,
+ src/string/strncmp.cxx, src/string/strncpy.cxx:
+ Rename CYGIMP_LIBC_PREFER_SMALL_TO_FAST to
+ CYGIMP_LIBC_STRING_PREFER_SMALL_TO_FAST
+
+ Also use slower but smaller version when __OPTIMIZE_SIZE__ is
+ defined (which comes from using gcc -Os)
+
+Fri May 29 16:15:04 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/ctype.inl, src/ctype/isxdigit.cxx:
+ Fix bug that numerals aren't considered hex digits
+
+ * include/time.h:
+ Change clock_t and time_t to be signed so that they can accept -1, as
+ required by other libc functions
+
+ * src/clibincl/clibdata.hxx:
+ Fix typo that CYGIMP_LIBC_THREAD_SUPPORT should be ..._SAFETY
+ Also fix macro to allocate thread-specific data to not set variables
+ in a different stack-frame
+
+ * tests/ctype/ctype.c:
+ Fix some misunderstandings in tests, and add a few new ones
+
+ * tests/stdlib/qsort.c:
+ make ctr unsigned to prevent warnings
+
+ * tests/stdlib/strtol.c, tests/stdlib/strtoul.c:
+ Fix some misunderstandings in tests, and add a few new ones
+
+ * tests/string/strrchr.c:
+ Fix off by one error
+
+ * tests/string/strspn.c:
+ Fix case-sensitivity problem, and off-by-one error
+
+ * tests/string/strxfrm1.c:
+ Remove bogus bit of test that doesn't apply to strxfrm, and fix typo
+
+
+Fri May 22 16:33:04 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/PKGconf.mak
+ Remove CXXFLAGS line now that its redundant
+
+ * tests/everything!
+ Do a blitz change of all tests - break some of them down into
+ different files, add new tests, standardize format, fix bugs,
+ update for recent header file changes and much more!
+
+Wed May 20 17:50:04 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/PKGconf.mak:
+ interim checkin for different dir structure for Bart
+
+Fri May 15 20:30:46 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * Tidy up some loose ends I forgot: rename src/include directory to
+ src/clibincl. And add clibdata.inl and timesupp.hxx in there.
+
+Thu May 14 19:56:32 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * Basically everything has changed in the C library. Files have
+ been moved, renamed, deleted and reworked. This is a major
+ revision, and now starts from this new baseline rather than doing
+ incremental changes.
+
+Fri Apr 17 18:43:02 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/ECCconf.mak:
+ added for new build system (actually Bart did this, but didn't
+ update this ChangeLog)
+
+Fri Apr 17 15:03:25 1998 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * src/stdio/device/sim.cxx:
+ Make it build with CYG_EMPTY_STATEMENT; the unadorned one is being
+ removed.
+
+Thu Apr 16 00:24:24 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * All source files:
+ replace ECCIMP_LIBC_* conditional ifdef with CYGIMP_LIBC_*
+
+ * include/eccconf/libc.h:
+ improve comments and reorder a bit
+
+Wed Apr 8 14:35:20 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * Makefile.am, src/Makefile.am, tests/Makefile.am, configure.in:
+ many changes to integrate build structure from release tree
+
+ * src/ctype/Makefile.am, src/ctype/Makefile.in, src/errno/Makefile.am,
+ src/errno/Makefile.in, src/stdio/Makefile.am, src/stdio/Makefile.in,
+ src/stdio/common/Makefile.am, src/stdio/common/Makefile.in,
+ src/stdio/device/Makefile.am, src/stdio/device/Makefile.in,
+ src/stdio/output/Makefile.am, src/stdio/output/Makefile.in,
+ src/stdio/input/Makefile.am, src/stdio/input/Makefile.in,
+ src/stdlib/Makefile.am, src/stdlib/Makefile.in,
+ src/string/Makefile.am, src/string/Makefile.in,
+ src/support/Makefile.am, src/support/Makefile.in,
+ src/time/Makefile.am, src/time/Makefile.in:
+ Remove as they are now redundant with above changes
+
+ * include/Makefile.am:
+ Add to support above changes
+
+ * include/eccconf/libc.h:
+ Change include file for configuration from kernel to system
+
+ * src/include/kerndiag.hxx, src/stdio/device/kerndiag.cxx,
+ src/time/clockfn.cxx:
+ Change kernel include file to eccconf/kernel.h
+
+ * src/include/strngdev.h:
+ remove unnecessary kernel include
+
+ * Makefile.in, aclocal.m4, configure, src/Makefile.in,
+ tests/Makefile.in, include/Makefile.in:
+ regenerate
+
+Mon Apr 6 20:55:07 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdlib/abs.cxx, src/stdlib/atoi.cxx, src/stdlib/atol.cxx,
+ src/stdlib/div.cxx, src/stdlib/labs.cxx, src/stdlib/ldiv.cxx:
+ Separated out functions from stdlib.cxx into separate files
+
+ * src/stdlib/stdlib.cxx:
+ removed to be replaced by above files
+
+ * Makefile.am, src/stdlib/Makefile.am:
+ modified to support building above and not building stdlib.cxx
+
+ * src/support/tsd.cxx:
+ Remove unnecessary header file includes
+
+ * Makefile.in, src/stdlib/Makefile.in:
+ regenerated
+
+Mon Apr 6 19:19:42 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/support/tsd.cxx, include/eccconf/libc.h:
+ remove lame hack for tx39 compiler now that its fixed
+
+ * src/include/sim.hxx:
+ define constants as static to placate compiler
+
+Thu Apr 2 21:01:21 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/ctype/ctype.cxx:
+ deleted and separated out into below files
+
+ * src/ctype/isalnum.cxx, src/ctype/isalpha.cxx, src/ctype/iscntrl.cxx,
+ src/ctype/isdigit.cxx, src/ctype/isgraph.cxx, src/ctype/islower.cxx,
+ src/ctype/isprint.cxx, src/ctype/ispunct.cxx, src/ctype/isspace.cxx,
+ src/ctype/isupper.cxx, src/ctype/isxdigit.cxx, src/ctype/tolower.cxx,
+ src/ctype/toupper.cxx:
+ Separated out individual ctype functions from ctype.cxx into separate
+ files
+
+ * Makefile.am, src/ctype/Makefile.am:
+ modified to reflect above deletion/additions
+
+ * Makefile.in, src/ctype/Makefile.in:
+ regenerated
+
+Thu Apr 2 19:08:26 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/string/strxfrm.cxx: optimise using prefix increments
+
+Thu Apr 2 15:18:15 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/string/strchr.cxx: optimise setting of mask a little
+
+Thu Mar 26 14:07:01 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/support/tsd.cxx: fixed some typos
+
+Thu Mar 26 11:58:47 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/eccconf/libc.h, src/support/tsd.cxx:
+ Implement workaround for tx39 compiler bug.
+
+ * src/include/strsuppt.hxx:
+ remove prototypes for _memcpy() and _memset() as they are now in the
+ kernel
+
+Wed Mar 25 18:31:53 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * Makefile.am, src/string/Makefile.am: memcpy() and memset() are
+ now in the kernel so remove them from build
+ * include/string.h: add a comment to say as much
+ * Makefile.in, src/string/Makefile.in: regenerate
+
+Wed Mar 25 15:30:42 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdlib/_exit.cxx, src/include/file_if.inl:
+ Change _exit workaround to not cause a compiler optimisation
+ problem. Now just references _exit rather than calls it.
+
+Wed Mar 25 14:59:49 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/string/strxfrm.cxx: Fix bug causing tests to fail completely
+ for this function
+
+Wed Mar 25 12:55:53 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/include/sim.hxx: add types to constants (oops!)
+ * Makefile.am: link src/stdio/device/sim.cxx
+ * Makefile.in: regenerated
+
+Wed Mar 25 04:14:30 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/include/file_if.hxx, src/include/file_if.inl,
+ src/include/kerndiag.hxx, src/include/sim.hxx,
+ src/include/stdio_if.hxx, src/include/strngdev.hxx,
+ src/include/tsd.hxx, src/stdio/common/clearerr.cxx,
+ src/stdio/common/clearerr.cxx, src/stdio/common/feof.cxx,
+ src/stdio/common/ferror.cxx, src/stdio/common/file_if.cxx,
+ src/stdio/common/vsprintf.cxx,
+ src/stdio/device/kerndiag.cxx, src/stdio/device/sim.cxx,
+ src/stdio/device/strngdev.cxx, src/stdio/output/fputc.cxx,
+ src/stdio/output/fputs.cxx, src/stdio/output/puts.cxx,
+ src/stdio/output/vfnprintf.cxx, src/support/tsd.cxx:
+ Modified to support buffered reads including renaming
+ _EccInternalFileStruct to __EccStdioStream which is what affects
+ most of these files
+ * src/include/file_if.inl, src/stdio/common/file_if.cxx: added for
+ the above reason
+ * src/stdio/common/sscanf.cxx, src/stdio/input/vfscanf.cxx,
+ src/stdio/input/Makefile.am: added to provide sscanf() functionality
+ * include/ctype.h, include/stdio.h, include/stdlib.h,
+ include/string.h, include/eccconf/libc.h, src/ctype/ctype.cxx,
+ src/stdlib/stdlib.cxx, src/string/strcoll.cxx,
+ src/stdio/common/stdio.cxx:
+ rename *_INLINES macros with prefix CYG rather than ECC
+ * include/errno.h, src/errno/errno.cxx, src/errno/strerror.cxx:
+ rename ErrNo to _ErrNo and add EAGAIN and EWOULDBLOCK error codes
+ * configure.in, Makefile.am, src/stdio/Makefile.am,
+ src/stdio/input/Makefile.am: add support for building
+ file_if.cxx sscanf.cxx and vfscanf.cxx
+ * src/stdio/Makefile.in, src/stdio/common/Makefile.in,
+ src/stdio/input/Makefile.in, configure, Makefile.in: regenerated
+
+Tue Mar 24 19:51:40 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/time/clockfn.cxx, src/time/clock.cxx:
+ Renamed clock.cxx to clockfn.cxx (preserving CVS history)
+ * Makefile.am, src/time/Makefile.am: updated to reflect name change
+ * Makefile.in, src/time/Makefile.in: regenerated
+
+Tue Mar 24 16:28:06 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/ctype.inl: Swap around definitions to get right order so
+ inlining works
+
+Tue Mar 24 14:43:05 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/ctype.h, include/stdio.h, include/stdlib.h, include/string.h:
+ modify to only conditionally include inlines
+ * src/ctype/ctype.cxx, src/stdio/common/stdio.cxx,
+ src/stdlib/stdlib.cxx, src/string/strcoll.cxx,
+ src/ctype/Makefile.am: Add to provide real linkable alternatives
+ to inline functions
+ * Makefile.am, configure.in, src/Makefile.am,
+ src/stdio/common/Makefile.am, src/stdlib/Makefile.am,
+ src/string/Makefile.am: modified to support previous additions
+ * include/eccconf/libc.h: redefine inline macro to add extern inline,
+ and add conditional defines for inline functions. Also rename
+ space vs. speed macro to have CYG instead of ECC prefix
+ * include/stdio.inl: fix comment typo
+ * src/stdlib/qsort.cxx: fix to define inline functions properly
+ * src/string/memchr.cxx, src/string/memcmp.cxx, src/string/memcpy.cxx,
+ src/string/memset.cxx, src/string/strcat.cxx, src/string/strchr.cxx,
+ src/string/strcmp.cxx, src/string/strcpy.cxx, src/string/strlen.cxx,
+ src/string/strncat.cxx, src/string/strncmp.cxx,
+ src/string/strncpy.cxx
+ * Makefile.in, configure, src/Makefile.in, src/ctype/Makefile.in,
+ src/stdio/common/Makefile.in, src/stdlib/Makefile.in,
+ src/string/Makefile.in: regenerate
+
+
+Mon Mar 23 19:19:49 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdlib/_exit.cxx: added to support temporary _exit
+ * include/stdlib.h, include/stdlib.inl: added support for _exit and
+ added abs(), labs(), div() and ldiv() functions
+ * src/include/file_if.hxx: added support for _exit kludge
+ * src/stdlib/qsort.cxx: Added Berkeley copyright message
+ * src/time/clock.cxx: Include correct kernel config header as
+ CYG_CONFIGURATION rather than <config.h>
+ * Makefile.am src/stdlib/Makefile.am: added support for _exit
+ * Makefile.in, src/stdlib/Makefile.in: regenerated
+
+Mon Mar 23 14:41:07 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * Replace ECCPKG_ANSI_LIBC with CYGPKG_ANSI_LIBC in all source files
+
+Mon Mar 23 14:28:44 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/string.inl: add file to provide strcoll()
+ * include/string.h: include string.inl
+ * ctype.h: include ctype.inl (oops!)
+ * include/stdlib.h: include stdlib.inl (oops!)
+
+Mon Mar 23 13:30:38 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/ctype.h, include/ctype.inl: added to provide ANSI ctype
+ functionality
+ * include/stdlib.h, include/stdlib.inl, src/include/stdlibbsp.hxx,
+ src/stdlib/Makefile.am, src/stdlib/bsearch.cxx,
+ src/stdlib/qsort.cxx, src/stdlib/rand.cxx, src/stdlib/srand.cxx,
+ src/stdlib/strtol.cxx, src/stdlib/strtoul.cxx: Added to provide
+ many stdlib functions
+ * src/include/tsd.hxx: modified to support rand() random number
+ seed, and added some comments
+ * configure.in, Makefile.am, src/Makefile.am: modified to support
+ addition of above new sources
+ * include/eccconf/libc.h: Add extra helpful comments, and #include
+ kernel config file
+ * src/time/clock.cxx: #include clock.inl and fix to call
+ get_resolution() properly now
+ * Makefile.in, configure, src/Makefile.in, src/errno/Makefile.in,
+ src/stdio/Makefile.in, src/stdio/common/Makefile.in,
+ src/stdio/device/Makefile.in, src/stdio/output/Makefile.in,
+ src/stdlib/Makefile.in, src/strings/Makefile.in,
+ src/support/Makefile.in, src/time/Makefile.in,
+ tests/Makefile.in: regenerated
+
+
+Sun Mar 22 21:29:25 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/time.h, src/include/timesupp.hxx, src/time/clock.cxx,
+ src/time/Makefile.am: added to provide clock() function
+ * src/Makefile.am: modified to try to build in src/time directory
+ * include/eccconf/libc.h: added and is now the main configuration
+ file for this package
+ * acconfig.h, include/libcconf.h.in, include/stamp-h.in: removed
+ due to usage of libc.h above instead
+ * Almost all *.h, *.hxx and *.cxx: replaced LIBC_CONFIG_HEADER
+ defined include with simple <pkgconf/libc.h>
+ * configure.in: remove AM_CONFIG_HEADER of libcconf.h and
+ LIBC_CONFIG_HEADER definition. Also remove usage of builtin
+ memcpy() etc. from gcc, and generate src/time/Makefile
+ * Makefile.am: link in src/time/clock.o
+ * src/include/file_if.hxx, src/include/sim.hxx: use config header
+ to decide whether C library is to be used
+ * Makefile.in, aclocal.m4, configure, src/Makefile.in: regenerated
+
+Fri Mar 20 18:08:10 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/string/strxfrm.cxx: Fixed bug with ignoring terminating NULL
+
+1998-03-20 Chris Tarpy <ctarpy@bhaji.cygnus.co.uk>
+
+ * configure: - regenerated
+ * Makefile.am: - Support added for libc testcases
+ * Makefile.in: regenerated
+ * configure.in: set c compiler, descend test dir
+ * tests/Makefile.in: added
+ * tests/Makefile.am: added
+ * tests/tcdiag.cxx : added
+
+
+Thu Mar 19 11:41:56 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * Initial check-in of everything
+
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
diff --git a/ecos/packages/language/c/libc/setjmp/current/cdl/setjmp.cdl b/ecos/packages/language/c/libc/setjmp/current/cdl/setjmp.cdl
new file mode 100644
index 0000000..ab17905
--- /dev/null
+++ b/ecos/packages/language/c/libc/setjmp/current/cdl/setjmp.cdl
@@ -0,0 +1,114 @@
+# ====================================================================
+#
+# setjmp.cdl
+#
+# C library setjmp/longjmp related configuration data
+#
+# ====================================================================
+## ####ECOSGPLCOPYRIGHTBEGIN####
+## -------------------------------------------
+## This file is part of eCos, the Embedded Configurable Operating System.
+## Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+##
+## eCos is free software; you can redistribute it and/or modify it under
+## the terms of the GNU General Public License as published by the Free
+## Software Foundation; either version 2 or (at your option) any later
+## version.
+##
+## eCos 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 General Public License
+## for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with eCos; if not, write to the Free Software Foundation, Inc.,
+## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+##
+## As a special exception, if other files instantiate templates or use
+## macros or inline functions from this file, or you compile this file
+## and link it with other works to produce a work based on this file,
+## this file does not by itself cause the resulting work to be covered by
+## the GNU General Public License. However the source code for this file
+## must still be made available in accordance with section (3) of the GNU
+## General Public License v2.
+##
+## This exception does not invalidate any other reasons why a work based
+## on this file might be covered by the GNU General Public License.
+## -------------------------------------------
+## ####ECOSGPLCOPYRIGHTEND####
+# ====================================================================
+######DESCRIPTIONBEGIN####
+#
+# Author(s): jlarmour
+# Contributors:
+# Date: 2000-04-14
+#
+#####DESCRIPTIONEND####
+#
+# ====================================================================
+
+cdl_package CYGPKG_LIBC_SETJMP {
+ display "ISO C library setjmp/longjmp functions"
+ description "
+ This package provides non-local jumps based on setjmp() and
+ longjmp() in <setjmp.h> as specified by the ISO C
+ standard - ISO/IEC 9899:1990."
+ doc ref/libc.html
+ include_dir cyg/libc/setjmp
+ parent CYGPKG_LIBC
+ requires CYGPKG_ISOINFRA
+ implements CYGINT_ISO_SETJMP
+ requires { CYGBLD_ISO_SETJMP_HEADER == "<cyg/libc/setjmp/setjmp.h>" }
+
+ compile longjmp.cxx
+
+# ====================================================================
+
+
+# ====================================================================
+
+ cdl_component CYGPKG_LIBC_SETJMP_OPTIONS {
+ display "C library setjmp build options"
+ flavor none
+ no_define
+ description "
+ Package specific build options including control over
+ compiler flags used only in building this package,
+ and details of which tests are built."
+
+
+ cdl_option CYGPKG_LIBC_SETJMP_CFLAGS_ADD {
+ display "Additional compiler flags"
+ flavor data
+ no_define
+ default_value { "" }
+ description "
+ This option modifies the set of compiler flags for
+ building this package. These flags are used in addition
+ to the set of global flags."
+ }
+
+ cdl_option CYGPKG_LIBC_SETJMP_CFLAGS_REMOVE {
+ display "Suppressed compiler flags"
+ flavor data
+ no_define
+ default_value { "" }
+ description "
+ This option modifies the set of compiler flags for
+ building this package. These flags are removed from
+ the set of global flags if present."
+ }
+
+ cdl_option CYGPKG_LIBC_SETJMP_TESTS {
+ display "C library setjmp tests"
+ flavor data
+ no_define
+ calculated { "tests/setjmp" }
+ description "
+ This option specifies the set of tests for this package."
+ }
+ }
+}
+
+# ====================================================================
+# EOF setjmp.cdl
diff --git a/ecos/packages/language/c/libc/setjmp/current/include/setjmp.h b/ecos/packages/language/c/libc/setjmp/current/include/setjmp.h
new file mode 100644
index 0000000..7244601
--- /dev/null
+++ b/ecos/packages/language/c/libc/setjmp/current/include/setjmp.h
@@ -0,0 +1,91 @@
+#ifndef CYGONCE_LIBC_SETJMP_H
+#define CYGONCE_LIBC_SETJMP_H
+/*===========================================================================
+//
+// setjmp.h
+//
+// ISO C standard non-local jumps
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors:
+// Date: 2000-04-30
+// Purpose:
+// Description: Header file to implement ISO C standard non-local jumps as
+// per ISO C para 7.6
+// Usage: #include <setjmp.h>
+//
+//####DESCRIPTIONEND####
+//
+//=========================================================================*/
+
+/* CONFIGURATION */
+
+#include <pkgconf/libc_setjmp.h> /* Configuration header */
+
+/* INCLUDES */
+
+#include <cyg/hal/hal_arch.h> /* HAL architecture specific implementation */
+
+/* TYPE DEFINITIONS */
+
+/* jmp_buf as per ANSI 7.6. This is simply the underlying HAL buffer */
+
+typedef hal_jmp_buf jmp_buf;
+
+/* MACROS */
+
+/* setjmp() function, as described in ANSI para 7.6.1.1 */
+#define setjmp( __env__ ) hal_setjmp( __env__ )
+
+/* FUNCTION PROTOTYPES */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* longjmp() function, as described in ANSI para 7.6.2.1 */
+extern void
+longjmp( jmp_buf, int ) CYGBLD_ATTRIB_NORET;
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* CYGONCE_LIBC_SETJMP_H multiple inclusion protection */
+
+/* EOF setjmp.h */
diff --git a/ecos/packages/language/c/libc/setjmp/current/src/longjmp.cxx b/ecos/packages/language/c/libc/setjmp/current/src/longjmp.cxx
new file mode 100644
index 0000000..82e4190
--- /dev/null
+++ b/ecos/packages/language/c/libc/setjmp/current/src/longjmp.cxx
@@ -0,0 +1,101 @@
+//===========================================================================
+//
+// longjmp.cxx
+//
+// ISO C standard longjmp() function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors:
+// Date: 2000-04-30
+// Purpose:
+// Description: Implements ISO standard non-local jump function longjmp()
+// per ISO C para 7.6.2.1. This is the "real" alternative to
+// the inline version of longjmp()
+//
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libc_setjmp.h> // Configuration header
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include <cyg/infra/cyg_trac.h> // Common tracing code
+#include <cyg/infra/cyg_ass.h> // Common assertion code
+#include <cyg/hal/hal_arch.h> // HAL architecture specific implementation
+
+// We don't want the inline version of longjmp() defined here
+#ifdef CYGIMP_LIBC_SETJMP_INLINES
+# undef CYGIMP_LIBC_SETJMP_INLINES
+#endif
+
+#include <setjmp.h> // Header for setjmp/longjmp
+
+
+// FUNCTIONS
+
+void
+longjmp( jmp_buf cyg_buf, int cyg_val)
+{
+ CYG_REPORT_FUNCNAME( "longjmp" );
+ CYG_REPORT_FUNCARG2( "&cyg_buf=%08x, cyg_val=%d", &cyg_buf, cyg_val );
+
+ // ANSI says that if we are passed cyg_val==0, then we change it to 1
+ if (cyg_val == 0)
+ ++cyg_val;
+
+ // we let the HAL do the work
+
+ HAL_REORDER_BARRIER(); // prevent any chance of optimisation re-ordering
+ hal_longjmp( cyg_buf, cyg_val );
+ HAL_REORDER_BARRIER(); // prevent any chance of optimisation re-ordering
+
+#ifdef CYGDBG_USE_ASSERTS
+ CYG_ASSERT( 0, "longjmp should not have reached this point!" );
+#else
+ for (;;)
+ CYG_EMPTY_STATEMENT;
+#endif
+} // longjmp()
+
+// EOF longjmp.cxx
diff --git a/ecos/packages/language/c/libc/setjmp/current/tests/setjmp.c b/ecos/packages/language/c/libc/setjmp/current/tests/setjmp.c
new file mode 100644
index 0000000..968cdc8
--- /dev/null
+++ b/ecos/packages/language/c/libc/setjmp/current/tests/setjmp.c
@@ -0,0 +1,236 @@
+//===========================================================================
+//
+// setjmp.c
+//
+// Tests for ANSI standard setjmp() and longjmp() functions
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors:
+// Date: 2000-04-30
+// Purpose:
+// Description: Contains test code for C library setjmp() and longjmp()
+// functions
+// The ANSI standard allows setjmp calls to be used ONLY in the
+// forms:
+// while (setjmp (jumpbuf))
+// while (setjmp (jumpbuf) < 42)
+// while (!setjmp (jumpbuf))
+// setjmp (jumpbuf);
+// result = setjmp(jumpbuf);
+//
+// Or "while" can also be "if" or "switch" or the implicit
+// while of "for".
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// INCLUDES
+
+#include <pkgconf/system.h>
+#include <cyg/infra/testcase.h> // Test infrastructure header
+#include <setjmp.h> // Header for what we're testing
+
+// GLOBALS
+
+static jmp_buf jbuf, jbuf2, jbuf3;
+
+
+// FUNCTIONS
+
+static int
+test_fun( void )
+{
+ volatile int i=0; // add something to the stack to confuse things
+
+ longjmp( jbuf, 5 );
+ i+=5;
+
+ return i;
+} // test_fun();
+
+
+#ifndef CYGPKG_LIBC_STARTUP
+void cyg_user_start(void)
+#else
+int
+main( int argc, char *argv[] )
+#endif
+{
+ static int static_i=0; // temporary variable
+ int j=0; // ditto
+ volatile int vol_k=0, vol_l=0; // ditto
+
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for C library "
+ "setjmp()/longjmp() functions");
+
+ // Test 1
+ if ( setjmp(jbuf) == 0 )
+ {
+ static_i=1;
+ longjmp(jbuf, 1);
+ static_i=2;
+ } // if
+
+ CYG_TEST_PASS_FAIL( static_i==1, "Simple test 1" );
+
+ // Test 2
+ j=2;
+
+ if ( !setjmp(jbuf) )
+ {
+ static_i=3;
+ longjmp(jbuf, 1);
+ static_i=4;
+ j=3;
+ } // if
+
+ CYG_TEST_PASS_FAIL( (static_i==3) && (j==2), "Simple test 2" );
+
+ // Test 3
+
+ static_i=0;
+ switch (setjmp(jbuf))
+ {
+ case 0:
+ static_i++;
+ if (static_i!=1)
+ CYG_TEST_FAIL("Test of value passed to longjmp()");
+ else
+ longjmp(jbuf, 5);
+ break;
+ case 5:
+ static_i++;
+ CYG_TEST_PASS_FAIL( (static_i==2),"Test of value passed to longjmp()");
+ break;
+ default:
+ CYG_TEST_FAIL( "Test of value passed to longjmp()");
+ break;
+ } // switch
+
+ // Test 3
+
+ static_i=0;
+ switch (setjmp(jbuf))
+ {
+ case 0:
+ static_i++;
+ if (static_i!=1)
+ CYG_TEST_FAIL("Test of value passed to longjmp() being 0");
+ else
+ longjmp(jbuf, 0);
+ break;
+ case 1:
+ static_i++;
+ CYG_TEST_PASS_FAIL( (static_i==2),
+ "Test of value passed to longjmp() being 0");
+ break;
+ default:
+ CYG_TEST_FAIL( "Test of value passed to longjmp() being 0");
+ break;
+ } // switch
+
+
+ // Test 4
+
+ vol_k=0;
+ static_i=0;
+ setjmp( jbuf );
+
+ static_i++;
+ setjmp( jbuf2 );
+
+ static_i++;
+ setjmp( jbuf3 );
+
+ if (vol_k==0)
+ {
+ vol_k++;
+ longjmp( jbuf2, 1 );
+ }
+ else
+ {
+ CYG_TEST_PASS_FAIL( (vol_k==1) && (static_i==3), "Multiple setjmp's" );
+ }
+
+ // Test 5
+
+ vol_k=3;
+ if ( (j=setjmp(jbuf)) == 0 )
+ {
+ volatile int l; // put something extra on the stack to confuse things
+
+ vol_k++;
+ l=test_fun();
+ l++;
+ vol_k=l;
+ } // if
+
+ CYG_TEST_PASS_FAIL( (j==5) && (vol_k==4), "longjmp from a function" );
+
+ // Test 6
+
+ vol_k=0;
+
+ vol_l=setjmp(jbuf);
+
+ vol_k += 3;
+
+ if (!vol_l)
+ test_fun();
+
+ vol_l=setjmp(jbuf);
+
+ vol_k += 7;
+
+ if (!vol_l)
+ test_fun();
+
+ CYG_TEST_PASS_FAIL ( (vol_k == 20), "Repeated longjmps from a function" );
+
+// CYG_TEST_NA("Testing is not applicable to this configuration");
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for C library "
+ "setjmp()/longjmp() functions");
+
+} // main()
+
+// EOF setjmp.c
diff --git a/ecos/packages/language/c/libc/signals/current/ChangeLog b/ecos/packages/language/c/libc/signals/current/ChangeLog
new file mode 100644
index 0000000..5d98592
--- /dev/null
+++ b/ecos/packages/language/c/libc/signals/current/ChangeLog
@@ -0,0 +1,119 @@
+2009-03-25 Bart Veer <bartv@ecoscentric.com>
+
+ * include/signal.inl: add extern to the cyg_libc_signals_lock()
+ and _unlock() inlining, to prevent multiple definitions.
+
+2009-01-28 Bart Veer <bartv@ecoscentric.com>
+
+ * tests/signal1.c: skip the abort() test if there is no proper
+ implementation.
+
+ * tests/signal1.c, tests/signal2.c: allow to run if
+ CYGPKG_LIBC_STARTUP is absent.
+
+2008-12-24 Andrew Lunn <andrew.lunn@ascom.ch>
+
+ * include/signal.inl: (cyg_libc_signals_[un]lock): remove the
+ static from these inline functions which are used by the none
+ static inline signal() and raise().
+
+2007-09-27 Jonathan Larmour <jifl@eCosCentric.com>
+
+ * src/siginit.cxx (cyg_libc_signals_default_handler): Handle case where
+ CYGINT_ISO_EXIT not available.
+
+2003-06-26 Jonathan Larmour <jifl@eCosCentric.com>
+
+ * include/signal.h: Remove unused definitions that had been used
+ for embryonic POSIX signals support.
+
+2003-02-24 Jonathan Larmour <jifl@eCosCentric.com>
+
+ * cdl/signals.cdl: Fix doc link.
+
+2003-02-13 Jonathan Larmour <jifl@eCosCentric.com>
+
+ * include/signal.inl (raise): Use if/else rather than switch to
+ avoid GCC 3.2 bug.
+
+2002-05-23 Jesper Skov <jskov@redhat.com>
+
+ * cdl/signals.cdl: Don't build signal2 test when it'll N/A
+ anyway.
+
+2002-04-30 Jesper Skov <jskov@redhat.com>
+
+ * cdl/signals.cdl: Added
+ CYGPKG_LIBC_SIGNALS_TESTS_SIGNAL2_TEST3_SKIP.
+ Removed again.
+
+ * tests/signal2.c: Instead check for
+ CYGNUM_HAL_EXCEPTION_FPU_DIV_BY_ZERO to decide if test3 is
+ appropriate.
+
+2001-05-02 Nick Garnett <nickg@cygnus.co.uk>
+
+ [x86 branch]
+ * tests/signal2.c (cause_memerror): Added code for I386
+ architecture to provoke General Protection Fault.
+
+2001-04-27 Bart Veer <bartv@redhat.com>
+
+ * tests/signal2.c (main):
+ The FPE test is applicable to the updated synthetic target.
+
+2001-04-17 Bart Veer <bartv@redhat.com>
+
+ * cdl/signals.cdl:
+ Synthetic target now supports exceptions
+
+2000-09-14 Jesper Skov <jskov@redhat.com>
+
+ * tests/signal/signal2.c: Prevent that GCC optimizes away the
+ cause_fpe call.
+
+2000-09-07 Jesper Skov <jskov@redhat.com>
+
+ * tests/signal2.c: Fix compiler warning. Also reset FPU exception
+ vectors. Check for SH7708, not EDK7708 in test3 skip code.
+ * tests/signal1.c: Fix compiler warning.
+
+2000-05-16 Jesper Skov <jskov@redhat.com>
+
+ * tests/signal2.c: Also reset DIV_BY_ZERO vector.
+
+2000-05-08 Jesper Skov <jskov@redhat.com>
+
+ * tests/signal2.c: Skip test3 on SH7709A.
+
+2000-05-02 Jonathan Larmour <jlarmour@redhat.co.uk>
+
+ * New package
+ Separated original libc out into separate packages on functional
+ boundaries.
+ Header files are now managed by isoinfra package
+ Plenty of cleanups done, but no major functionality changes
+
+//===========================================================================
+// ####GPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 or (at your option) any
+// later version.
+//
+// This program 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
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the
+// Free Software Foundation, Inc., 51 Franklin Street,
+// Fifth Floor, Boston, MA 02110-1301, USA.
+// -------------------------------------------
+// ####GPLCOPYRIGHTEND####
+//===========================================================================
diff --git a/ecos/packages/language/c/libc/signals/current/ChangeLog.libc b/ecos/packages/language/c/libc/signals/current/ChangeLog.libc
new file mode 100644
index 0000000..8809e93
--- /dev/null
+++ b/ecos/packages/language/c/libc/signals/current/ChangeLog.libc
@@ -0,0 +1,2735 @@
+This ChangeLog file is now obsolete. This is the original ChangeLog from when
+libc was one large package, before being separated. It is included for
+historical reasons.
+
+2000-04-05 Jesper Skov <jskov@redhat.com>
+
+ * src/time/settime.cxx:
+ * src/time/time.cxx:
+ Wallclock moved to io/.
+
+2000-03-28 John Dallaway <jld@cygnus.co.uk>
+
+ * cdl/string.cdl,
+ cdl/stdlib.cdl,
+ cdl/stdio.cdl,
+ cdl/libc.cdl:
+
+ Adjust documentation URLs.
+
+2000-03-27 Jesper Skov <jskov@redhat.com>
+
+ * src/clibincl/stream.inl (check_this): Use cyb_bool instead of bool.
+
+2000-03-06 Jesper Skov <jskov@redhat.com>
+
+ * tests/time/strftime.c (test): Adjust test to match below change.
+
+2000-03-02 Jonathan Larmour <jlarmour@redhat.co.uk>
+
+ * src/time/strftime.cxx (do_format): Make sure %m counts from
+ 1..12 rather than 0..11. Fix for case 103300
+
+2000-02-29 Jonathan Larmour <jlarmour@redhat.co.uk>
+
+ * src/stdio/output/vfnprintf.cxx: Correctly use 'n' parameter to
+ restrict length. Credit due to Andrew Lunn here as well.
+ Resolves 103057-CR-1
+
+ * tests/stdio/sprintf2.c (test):
+ Add snprintf tests to verify the correct behaviour of restricting
+ output length
+
+2000-02-10 Jesper Skov <jskov@redhat.com>
+
+ * tests/signal/signal2.c (main):
+ Also reclaim DATA_TLB_MISS vector if available.
+
+2000-01-31 Simon FitzMaurice <sdf@cygnus.co.uk>
+ * cdl/*.cdl:
+
+ Adjust help URLs in line with new doc layout.
+
+2000-01-28 Simon FitzMaurice <sdf@cygnus.co.uk>
+ * cdl/*.cdl:
+
+ Adjust help URLs in line with new doc layout.
+
+2000-01-19 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * cdl/*.cdl: Add descriptions to a number of options &c which were
+ lacking same, also tidied up other typos as noticed en passant.
+
+1999-11-11 Bart Veer <bartv@cygnus.co.uk>
+
+ * cdl/string.cdl:
+ Switch to a single boolean configuration option for code size vs.
+ speed optimization.
+
+1999-11-03 John Dallaway <jld@cygnus.co.uk>
+
+ * cdl/libc.cdl: Define tests.
+
+1999-10-19 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/output/vfnprintf.cxx: We can now remove Berkeley
+ advertising clause
+ * src/stdlib/div.cxx: ditto
+ * src/stdlib/ldiv.cxx: ditto
+ * src/stdlib/strtol.cxx: ditto
+ * src/stdlib/strtoul.cxx: ditto
+ * src/string/strtok.cxx: ditto
+
+1999-10-19 John Dallaway <jld@cygnus.co.uk>
+
+ * cdl/libc.cdl:
+
+ Define CDL options for package-specific CFLAGS.
+
+1999-10-08 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h (CYGNUM_LIBC_MAIN_THREAD_PRIORITY): Change
+ default to 10 to keep test farm happy
+ * cdl/startup.cdl: Likewise
+
+1999-10-07 John Dallaway <jld@cygnus.co.uk>
+
+ * cdl/stdlib.cdl, cdl/string.cdl:
+
+ Specify radio buttons using CDL interfaces.
+
+1999-10-06 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * cdl/stdio.cdl: Change default to /dev/ttydiag as per 1999-10-01
+ change below
+ * cdl/startup.cdl: Add new form CDL for the startup changes as
+ per 1999-10-05
+
+1999-10-05 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/libc.h: Add CYGSEM_LIBC_MAIN_STACK_FROM_SYSTEM to allow
+ the user to supply their own stack.
+ Rename CYGNUM_LIBC_MAIN_STACK_SIZE to
+ CYGNUM_LIBC_MAIN_DEFAULT_STACK_SIZE and reparent under
+ CYGSEM_LIBC_MAIN_STACK_FROM_SYSTEM
+ Add CYGNUM_LIBC_MAIN_THREAD_PRIORITY to provide main() thread
+ priority
+
+ * src/support/mainthread.cxx: Add support for user-supplied stack
+ Allow user to specify thread priority
+
+ These changes fix CR 101069
+
+1999-10-01 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h (CYGDAT_LIBC_STDIO_DEFAULT_CONSOLE): Change
+ default to /dev/ttydiag to get correct console-like behaviour
+ Also don't preclude use if haldiag package isn't included
+ (case 102065)
+
+1999-09-15 Jesper Skov <jskov@cygnus.co.uk>
+
+ * tests/signal/signal2.c (cause_fpe): Try both float and integer
+ division by zero.
+
+1999-09-10 Jesper Skov <jskov@cygnus.co.uk>
+
+ * src/stdlib/malloc.cxx (cyg_libc_get_malloc_pool): Added for
+ stress_threads test.
+
+1999-09-07 Jesper Skov <jskov@cygnus.co.uk>
+ PRs 20243, 20433
+ * tests/signal/signal2.c: Disabled test3 on ARM.
+
+1999-09-02 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * include/assert.h: Make the sense of NDEBUG correct; it is "set"
+ when NOT debugging. Fix for CR 101983-CR-1
+ See Stroustrup, "The C++ Programming Language."
+
+1999-08-18 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/fopen.cxx (_fopen): Set buffer size 0 when not
+ buffering
+ Fix for case 101868
+
+1999-08-17 John Dallaway <jld@cygnus.co.uk>
+
+ * cdl/stdlib.cdl, cdl/string.cdl:
+
+ Implement radio buttons using "FIXME radio" hack in
+ description field for now.
+
+1999-08-12 John Dallaway <jld@cygnus.co.uk>
+
+ * cdl/stdlib.cdl:
+ Take advantage of MACRONAME_ENUMVAL macros output by CDL.
+
+1999-08-06 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdio/sprintf2.c (test): Don't rely on 2.345 being exactly
+ representable in binary as a difference of 1 ulp will make it round
+ the wrong way.
+
+1999-07-16 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/input/fgetc.cxx:
+ Include outline versions of getc() (actually just a symbol alias for
+ fgetc() ) and getchar()
+ Some minor clean-ups
+ Add tracing/assertions
+
+ * src/stdio/input/fputc.cxx:
+ Likewise (except applied to putc() and putchar())
+
+ * src/stdio/common/stdioinlines.cxx (_puts):
+ Call fputc() not _fputc()
+
+ * src/clibincl/stdiosupp.hxx:
+ Remove now obsolete prototypes for _fgetc() and _fputc()
+
+ * include/stdio.h:
+ Don't bother with getc()/putc() macros any more, just call
+ them as functions
+ Include protos for getc(), putc(), getchar() and putchar() functions
+
+1999-06-21 Jesper Skov <jskov@cygnus.co.uk>
+
+ * tests/signal/signal2.c: Disabled test 3 for SH EDK7708.
+
+1999-06-11 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/stdio.h: Make FILEs array types so they won't be
+ given $gp relocations on MIPS targets
+
+1999-05-27 Jesper Skov <jskov@cygnus.co.uk>
+
+ * tests/time/ctime.c: Fixed compiler warning.
+
+1999-05-25 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/signal/signal2.c (main):
+ Update CYGPKG_HAL_TX39 -> CYGPKG_HAL_MIPS_TX39 due to recent MIPS
+ HAL changes
+ Fix for PR 20116
+
+1999-04-30 Jesper Skov <jskov@lassi.cygnus.co.uk>
+ PR 19945/19946 workaround
+ * tests/signal/signal2.c: Disabled test 3 for PowerPC sim.
+
+1999-04-19 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/time.inl:
+ Ensure all calls to cyg_libc_time_year_is_leap() are with the full
+ year, and not the direct contents of a struct tm, which are (year-1900)
+
+1999-04-19 Jesper Skov <jskov@cygnus.co.uk>
+ PR 19308, 19410, 19528
+ * tests/time/clock.c (test): Also disable data cache which may
+ affect timing when tracing/assertions are enabled.
+
+1999-04-15 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/stdiosupp.hxx:
+ Add prototype for new cyg_libc_stdio_flush_all_but() function
+
+ * src/clibincl/stream.hxx:
+ Don't include stdiosupp.hxx any more to prevent circular dependency,
+ therefore manually provide _setvbuf prototype
+ Make sure pkgconf/kernel.h is included before mutex.hxx
+
+ * src/clibincl/stream.inl (Cyg_StdioStream::set_error()):
+ Add missing unlock_me()
+
+ * src/stdio/common/fflush.cxx:
+ Separate most of code for fflush(NULL) into separate
+ cyg_libc_stdio_flush_all_but() function, which has the extra
+ capability of omitting one stream
+
+ * src/stdio/common/stderr.cxx:
+ * src/stdio/common/stdin.cxx:
+ * src/stdio/common/stdout.cxx:
+ * src/stdio/common/vsnprintf.cxx:
+ * src/stdio/common/vsscanf.cxx:
+ Add missing clibincl/stdiosupp.hxx include
+
+ * src/stdio/common/stream.cxx (Cyg_StdioStream::read()):
+ When reading, ensure we flush all output streams
+
+ * src/stdio/common/stream.cxx (Cyg_StdioStream::flush_output_unlocked):
+ Flush the device as well
+
+1999-04-15 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/streambuf.cxx (set_buffer):
+ * src/stdio/common/stdioinlines.cxx (_setbuf):
+ * src/clibincl/streambuf.inl:
+ * src/clibincl/streambuf.hxx:
+ * src/clibincl/stream.hxx (class Cyg_StdioStream):
+ * include/pkgconf/libc.h:
+ * include/stdio.inl (setbuf):
+ Fix dumb typo: BUFSIZE -> BUFSIZ
+ This fixes PR19837
+
+1999-04-15 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/stdioinlines.cxx (_setbuf):
+ * include/stdio.inl (setbuf):
+ Use _IONBF when buf==NULL, and _IOLBF otherwise.
+ Fix for PR 19836
+
+1999-04-15 John Dallaway <jld@cygnus.co.uk>
+
+ * include/pkgconf/libc.h: Tidy display string capitalization.
+
+1999-04-12 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Clarify CDL description of CYGNUM_LIBC_MALLOC_MEMPOOL_SIZE
+
+ * tests/signal/signal2.c: Try harder to generate an exception by
+ accessing a misaligned address
+ Don't handle SIGTRAP any more
+ Part of fix for PRs 19731/19607
+
+1999-04-07 Jesper Skov <jskov@cygnus.co.uk>
+ PR 19667
+ * src/support/mainthread.cxx:
+ Changed to use the new Cyg_Thread constructor.
+
+1999-04-07 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * tests/signal/signal2.c (main): Use new macro
+ HAL_VSR_SET_TO_ECOS_HANDLER if defined, to wrest control from
+ CygMon, for example, by reinstalling eCos' default VSRs for
+ exceptions that we are provoking.
+
+1999-03-29 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/signal/siginit.cxx: Include stdlib.h for exit()
+ Fix for PR 19720
+
+1999-03-29 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/time/clock.c (test): Disable instruction cache
+ Hopefully fixes PR 19308
+
+1999-03-29 Jesper Skov <jskov@cygnus.co.uk>
+
+ * tests/signal/signal2.c: Disabled test 3 for PPC as it cannot
+ trap division by zero.
+
+1999-03-26 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/support/main.cxx (main): Invoke cyg_user_start() if no kernel
+ Only sensible thing to do in our default main in a non-kernel config
+
+1999-03-25 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/time/time.c:
+ Increase MAX_TIMEOUT since the sparclite gets very close to overrunning
+ it even when working.
+ Should return -1 iff CYGSEM_LIBC_TIME_TIME_WORKING isn't defined
+ Cosmetic changes
+
+1999-03-25 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * tests/time/time.c (test): Take into account setting of
+ CYGSEM_LIBC_TIME_SETTIME_WORKING ie. does cyg_libc_time_settime()
+ work? If not, check that it returns an error.
+ This was exposed by the random combo in PR#19479.
+
+1999-03-23 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Rename CYGSEM_LIBC_RAND_SIMPLEST and CYGSEM_LIBC_RAND_KNUTH1 to
+ CYGIMP_...
+
+ Add another rand implementation CYGIMP_LIBC_RAND_SIMPLE1 which is
+ the default
+
+ Part of fix for PR 19562
+
+ * include/sys/cstartup.h:
+ Tidy and remove unnecessary dependencies
+
+ * src/stdlib/rand.cxx:
+ Rename algorithms from CYGSEM_... to CYGIMP_...
+ Add new "simple1" algorithm
+
+ * tests/ctype/ctype.c:
+ Tidy
+
+ * tests/stdlib/rand3.c:
+ Fix so that 0..RAND_MAX is split evenly over buckets, which it wasn't
+ before
+ Deal with case of RAND_MAX not being divisible by NUM_BUCKETS
+ exactly
+ Increase TEST_LENGTH to 200000 to provide more representative sample
+ Add CYG_TEST_INFO output to help ensure it doesn't time out
+ Tidy
+
+ * tests/stdlib/rand4.c:
+ Only fail if more than _two_ thirds (rather than one third) match.
+ This is because half would match for a perfectly random distribution
+ This is the rest of the fix for PR 19562
+ Cosmetic changes
+
+1999-03-22 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * src/support/mainthread.cxx (CYGNUM_LIBC_MAIN_STACK_SIZE):
+ Use CYGNUM_HAL_STACK_SIZE_TYPICAL for the stack size instead of
+ CYGNUM_HAL_MINIMUM_STACK_SIZE.
+
+1999-03-22 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/PKGconf.mak: Add -Wno-format when building strftime otherwise
+ it generates warnings for things that we do want to test (null
+ string, and %y format)
+
+1999-03-19 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h (CYGNUM_LIBC_TIME_DST_DEFAULT_STATE):
+ Put brackets back round negative number since sdf says the config
+ tool is fixed now (PR 19537)
+
+ Add new CYGSEM_LIBC_RAND_SIMPLEST and CYGSEM_LIBC_RAND_KNUTH1
+ options for different rand() algorithms in a so far failed attempt
+ to fix PR 19562
+
+ * src/stdlib/rand.cxx:
+ Add new optional algorithm from Knuth vol.2
+
+ * tests/stdlib/rand4.c:
+ Some tidies
+ Don't run test when using simplest algorithm
+
+ * tests/signal/signal2.c (main):
+ Don't try to make an FPE on tx39 - its possible to detect but requires
+ too much HAL work to be sensible
+
+1999-03-18 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/signal/siginit.cxx (cyg_libc_signals_hwexcept_handler):
+ Use HAL_ENABLE_INTERRUPTS() rather than kernel to enable interrupts
+
+1999-03-18 Mark Galassi <rosalia@cygnus.com>
+
+ * tests/PKGconf.mak (TESTS): added rand4 compilation.
+
+ * tests/stdlib/rand4.c: added this test for periodicity in the
+ least significant bit of rand().
+
+1999-03-18 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h: Remove CYGFUN_LIBC_TIME_POSIX dependency
+ on CYGPKG_LIBC_STDIO
+
+ * src/stdlib/itoa.cxx:
+ New file to convert integers to ascii
+
+ * include/stdlib.h:
+ Add proto for new cyg_libc_itoa() function
+
+ * include/time.inl:
+ Rework __asctime_r() to use memcpy() and cyg_libc_itoa() rather than
+ sprintf()
+
+ * src/PKGconf.mak:
+ Build stdlib/itoa.cxx
+
+ The above changes fix PR 19448
+
+1999-03-17 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/time.h: Add #define of __time_t_defined to placate newlib
+ if it is used by accident. This is just a temporary workaround though.
+
+1999-03-16 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * src/PKGconf.mak: Add compile option to step around ARM compiler bug.
+
+1999-03-16 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h (CYGNUM_LIBC_TIME_DST_DEFAULT_STATE):
+ Don't use parentheses for now
+
+ * src/stdio/common/stream.cxx (refill_read_buffer):
+ Silence bogus compiler warning
+
+1999-03-16 Jesper Skov <jskov@cygnus.co.uk>
+
+ * tests/signal/signal2.c (main): Enable SIGSEGV test for
+ i386/Linux.
+
+
+1999-03-15 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/signal/siginit.cxx (cyg_libc_signals_hwexcept_handler):
+ Only enable interrupts if they were disabled
+
+ * include/sys/timeutil.h:
+ * src/time/timeutil.cxx:
+ Add FIX ME line as a reminder that the workaround there can go away
+ in future
+
+ * include/pkgconf/libc.h:
+ Add proper define for CYGSEM_LIBC_EXIT_CALLS_FFLUSH
+ Put brackets round negative CYGNUM_LIBC_TIME_DST_DEFAULT_STATE define
+ Fix run time typo
+
+ * include/time.inl (__localtime_r):
+ Include sys/timeutil.h before this to get
+ cyg_libc_time_normalize_structtm()
+
+1999-03-12 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * include/sys/timeutil.h:
+ * src/time/timeutil.cxx: Remove 'const' from char arrays since
+ this fails [silently] on ARM when -fwritable-strings (PR19440)
+
+1999-03-12 Jesper Skov <jskov@cygnus.co.uk>
+
+ * tests/signal/signal2.c (main): Compiler warnings fix was
+ slightly broken.
+
+1999-03-12 Jesper Skov <jskov@cygnus.co.uk>
+ PR 19473
+ * tests/signal/signal2.c (main):
+ Disabling SIGTRAP handling on i386/Linux is not a good idea.
+1999-03-11 Jesper Skov <jskov@cygnus.co.uk>
+ PR 19473
+ * tests/signal/signal2.c:
+ Added compiler warnings fix.
+ Added N/A handling for i386/Linux.
+
+1999-03-10 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * include/pkgconf/libc.h: Force "haldiag" device to be present.
+ 'asctime' and friends need 'stdio' as well.
+
+ * include/time.inl: Fix syntax error on difftime() declaration.
+
+1999-03-08 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * src/clibincl/stream.hxx: <cyg/infra/cyg_ass.h> needed for this file.
+
+ * src/stdio/common/vsscanf.cxx (str_read): Fix problem with string
+ pointer [created by merge with new I/O package].
+
+1999-03-05 John Dallaway <jld@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Add legal values for CYGNUM_LIBC_TIME_STD_DEFAULT_OFFSET
+ and CYGNUM_LIBC_TIME_DST_DEFAULT_OFFSET.
+
+1999-03-05 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/time.inl (cyg_libc_time_year_is_leap):
+ Fix bug with modulo year 400
+ Fix typo in asctime_r macro
+ Fix gmtime_r, and mktime as a result of testing
+
+ * tests/time/asctime.c, tests/time/ctime.c, tests/time/gmtime.c,
+ tests/time/gmtime.c, tests/time/localtime.c, tests/time/mktime.c,
+ tests/time/strftime.c, tests/time/time.c:
+ New tests
+
+ * tests/PKGconf.mak:
+ Build above new tests
+
+ * include/pkgconf/libc.h:
+ Add reminder FIX ME about extra config option
+
+ * src/time/strftime.cxx:
+ Fix %w and %Y parameters as a result of testing
+
+ * src/time/timeutil.cxx:
+ Fix cyg_libc_time_normalize_structtm() as a result of testing
+ of mktime()
+
+ * tests/time/clock.c:
+ Reformat, remove obsolete bits and tidy
+
+ * include/time.h:
+ Add Cyg_libc_time_dst type and new functions
+ cyg_libc_time_setzoneoffsets(), cyg_libc_time_setdst(),
+ cyg_libc_time_getzoneoffsets(), cyg_libc_time_settime()
+
+ * include/time.inl:
+ Implement the above functions. This allows us to adjust for timezone
+ diffences and set the time.
+ Change localtime() to adjust for STD/DST
+ Change mktime() to adjust for STD/DST
+
+ * include/libc.h:
+ Add new config options CYGSEM_LIBC_TIME_SETTIME_WORKING
+ and component CYGPKG_LIBC_TIME_ZONES containing options
+ CYGNUM_LIBC_TIME_DST_DEFAULT_STATE,
+ CYGNUM_LIBC_TIME_STD_DEFAULT_OFFSET,
+ CYGNUM_LIBC_TIME_DST_DEFAULT_OFFSET
+
+ * src/strftime.cxx:
+ Adjust handling of %Z to _not_ deal with STD/DST
+
+ * src/time/settime.cxx:
+ New file to implement cyg_libc_time_settime()
+
+ * src/PKGconf.mak:
+ Build settime.cxx
+
+ * src/time/timeutil.cxx:
+ Supply outline versions of cyg_libc_time_setzoneoffsets(),
+ cyg_libc_time_setdst(), and cyg_libc_time_getzoneoffsets()
+ Add variables for STD/DST state
+ Some minor comment changes
+
+ * include/errno.h:
+ Use CYGBLD_ATTRIB_CONST instead of __attribute__((const)) directly
+
+ * include/signal.h:
+ Change format of function comment headers
+
+ * include/signal.inl:
+ Restrict errno.h inclusion to when its actually used
+ Fix a spelling typo
+
+ * include/stdlib.h:
+ Add CYGBLD_ATTRIB_CONST to abs, div, labs, ldiv
+
+ * include/stdlib.inl:
+ Reformat and tidy
+ Include new versions of div and ldiv which are more portable and
+ are cleanly rewritten so aren't covered by the BSD licence, which
+ is now removed
+
+ * src/stdlib/div.cxx, src/stdlib/ldiv.cxx:
+ Non-inline, non-BSD and portable versions of the new versions of div
+ and ldiv from stdlib.inl
+
+ * include/time.h:
+ Much reformatting, tidying and improving comments
+ Change CLOCKS_PER_SEC from 1000 to 1000000
+ Add new functions asctime_r, ctime_r, gmtime_r, localtime_r, clock,
+ difftime, mktime, time, asctime, ctime, gmtime, localtime, strftime
+ Include new time.inl file
+
+ * include/pkgconf/libc.h:
+ Add new options CYGSEM_LIBC_TIME_CLOCK_WORKING,
+ CYGSEM_LIBC_TIME_TIME_WORKING, CYGFUN_LIBC_TIME_POSIX,
+ CYGNUM_LIBC_TIME_CLOCK_TRACE_LEVEL, CYGIMP_LIBC_TIME_ASCTIME_INLINE,
+ CYGIMP_LIBC_TIME_CTIME_INLINE, CYGIMP_LIBC_TIME_DIFFTIME_INLINE,
+ CYGIMP_LIBC_TIME_GMTIME_INLINE, CYGIMP_LIBC_TIME_LOCALTIME_INLINE,
+ CYGIMP_LIBC_TIME_MKTIME_INLINE, CYGIMP_LIBC_TIME_ASCTIME_R_INLINE,
+ CYGIMP_LIBC_TIME_CTIME_R_INLINE, CYGIMP_LIBC_TIME_GMTIME_R_INLINE,
+ and CYGIMP_LIBC_TIME_LOCALTIME_R_INLINE
+
+ * time/asctime.cxx, time/asctime_r.cxx, time/clock.cxx, time/ctime.cxx,
+ time/ctime_r.cxx, time/difftime.cxx, time/gmtime.cxx,
+ time/gmtime_r.cxx, time/localtime.cxx, time/localtime_r.cxx,
+ time/mktime.cxx, time/strftime.cxx, time/time.cxx, time/timeutil.cxx,
+ include/time.inl:
+ New files to implement the new time functions. Many of them simply
+ provide the outline definitions, but the real body of the function
+ comes from time.inl
+
+ * src/PKGconf.mak:
+ Build new .cxx files
+
+ * src/clibincl/stdlibsupp.hxx:
+ Remove _div and _ldiv prototypes since they're no longer needed
+
+ * src/clibincl/timesupp.hxx:
+ Delete as its now obsolete
+
+ * src/time/clock.cxx:
+ Use new CYGSEM_LIBC_TIME_CLOCK_WORKING option to control whether it
+ just returns (clock_t)-1 or not.
+ Much reformatting and tidying
+ Change real imlpementation from _clock to __clock
+ Use CYGBLD_ATTRIB_WEAK_ALIAS now
+
+ * tests/stdlib/div.c, tests/stdlib/ldiv.c:
+ Add some extra tests for handling of negative numbers
+ Reformat and tidy a bit, including removing the test for CYGPKG_LIBC
+ since its now always defined if the test is to be compiled
+
+ * tests/time/clock.c:
+ Remove duplication CYG_TEST_INFO line
+ Check if unimplemented using "(clock_t)-1" and not just "-1"
+
+1999-03-04 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdlib/system.cxx:
+ Make sure system() is a weak alias for __system()
+
+ * include/pkgconf/libc.h: Rework CDL description for
+ CYGDAT_LIBC_STDIO_DEFAULT_CONSOLE and change its default to
+ "/dev/haldiag"
+
+ * src/stdio/common/stream.cxx:
+ Check that dev is valid when passed to stream constructor
+
+ * src/stdio/common/stdiosupp.cxx:
+ Tidy
+
+ * src/support/mainthread.cxx: Make this depend on
+ CYGSEM_LIBC_STARTUP_MAIN_THREAD rather than just CYGPKG_KERNEL
+
+1999-03-04 Gary Thomas <gthomas@cygnus.co.uk>
+
+ Merged in changes from 'ecos-new_devs-19990216-branch'
+
+ (1999-02-24 Jonathan Larmour <jlarmour@cygnus.co.uk>)
+
+ * src/stdio/common/stream.cxx:
+ Add "fix me" comments and remove a couple of commented out lines
+
+ * src/stdio/common/vsnprintf.cxx:
+ * src/stdio/common/vsscanf.cxx:
+ Revert to using pointer to string for private data, not just string.
+ This preserves the state across multiple calls
+
+ (1999-02-24 Gary Thomas <gthomas@cygnus.co.uk>)
+
+ * src/stdio/common/vsscanf.cxx:
+ * src/stdio/common/vsnprintf.cxx:
+ * src/stdio/common/stream.cxx:
+ * src/stdio/common/stdiosupp.cxx:
+ * src/stdio/common/fopen.cxx:
+ * src/clibincl/stream.inl:
+ * src/clibincl/stream.hxx:
+ * src/clibincl/stdiosupp.hxx:
+ * include/pkgconf/libc.h: Changes for new I/O system.
+
+1999-03-03 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdlib/atexit.c: Forgot to config atexit test for
+ CYGFUN_LIBC_ATEXIT option
+
+ * include/pkgconf/libc.h:
+ Require CYGVAR_KERNEL_THREADS_DATA for CYGSEM_LIBC_PER_THREAD_STRTOK
+ This fixes PR 19362
+ Require CYGPKG_KERNEL for thread safe streams
+ Also don't need "requires CYGPKG_KERNEL" for per-thread rand and errno
+ if we already require a finer granularity kernel option
+
+1999-02-25 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h: Fix CYGNUM_LIBC_MAIN_STACK_SIZE by changing
+ CYGPKG_LIBC_STARTUP_MAIN_THREAD -> CYGSEM_LIBC_STARTUP_MAIN_THREAD
+ Fix for PR 19304
+
+1999-02-23 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdlib/system.cxx: Add to implement trivial system() call
+ * include/stdlib.h: Add system() prototype
+ * src/PKGconf.mak: Build system.cxx
+
+ * tests/ctype/ctype.c, tests/i18n/setlocale.c, tests/setjmp/setjmp.c,
+ tests/signal/signal1.c, tests/signal/signal2.c,
+ tests/stdio/sprintf1.c, tests/stdio/sprintf2.c, tests/stdio/sscanf.c,
+ tests/stdio/stdiooutput.c, tests/stdlib/atexit.c,
+ tests/stdlib/atoi.c, tests/stdlib/atol.c, tests/stdlib/bsearch.c,
+ tests/stdlib/div.c, tests/stdlib/getenv.c, tests/stdlib/labs.c,
+ tests/stdlib/ldiv.c, tests/stdlib/malloc1.c, tests/stdlib/malloc2.c,
+ tests/stdlib/malloc3.c, tests/stdlib/qsort.c, tests/stdlib/rand1.c,
+ tests/stdlib/rand2.c, tests/stdlib/rand3.c, tests/stdlib/realloc.c,
+ tests/stdlib/srand.c, tests/stdlib/strtol.c, tests/stdlib/strtoul.c,
+ tests/string/memchr.c, tests/string/memcmp1.c,
+ tests/string/memcmp2.c, tests/string/memcpy1.c,
+ tests/string/memcpy2.c, tests/string/memmove1.c,
+ tests/string/memmove2.c, tests/string/memset.c,
+ tests/string/strcat1.c, tests/string/strcat2.c,
+ tests/string/strchr.c, tests/string/strcmp1.c,
+ tests/string/strcmp2.c, tests/string/strcoll1.c,
+ tests/string/strcpy1.c, tests/string/strcpy2.c,
+ tests/string/strcspn.c, tests/string/strlen.c,
+ tests/string/strncat1.c, tests/string/strncat2.c,
+ tests/string/strncpy1.c, tests/string/strncpy2.c,
+ tests/string/strpbrk.c, tests/string/strrchr.c,
+ tests/string/strspn.c, tests/string/strstr.c, tests/string/strtok.c,
+ tests/string/strxfrm1.c, tests/string/strxfrm2.c, tests/time/clock.c:
+ Use CYG_TEST_NA() macro for non-applicable test configurations
+
+1999-02-20 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/signal.h:
+ * include/signal.inl:
+ * src/signal/raise.cxx:
+ * src/signal/siginit.cxx:
+ * src/signal/signal.cxx:
+ * tests/signal/signal1.c
+ * tests/signal/signal2.c:
+ New files to implement ISO standard signals
+
+ * src/PKGconf.mak (TESTS):
+ * tests/PKGconf.mak (TESTS):
+ Update to build new files above
+
+ * include/stdlib.h:
+ * src/clibincl/stdlibsupp.hxx:
+ Comment and QA changes (including giving better names to some types)
+
+ * include/libc.h:
+ Add new configuration options for signals
+ Add new CYGSEM_LIBC_STARTUP_MAIN_THREAD option
+ Add a note to CYGNUM_LIBC_MAIN_STACK_SIZE option that it may be
+ overriden by HAL
+ Add new CYGFUN_LIBC_ATEXIT option and move ...ATEXIT_HANDLERS under
+ it
+ Add new CYGSEM_LIBC_EXIT_CALLS_FFLUSH option
+ Require CYGSEM_LIBC_STARTUP_MAIN_THREAD for "Invoke default static
+ constructors" option
+
+ * src/stdlib/atexit.cxx:
+ Support above CYGFUN_LIBC_ATEXIT and QA changes
+
+ * src/stdlib/exit.cxx:
+ Support for above new libc.h options, and some QA changes
+
+ * src/support/cstartup.cxx:
+ Add support for new CYGSEM_LIBC_STARTUP_MAIN_THREAD option
+
+ * src/support/mainthread.cxx:
+ Override main stack size if the HAL has a minimum
+
+ * src/string/strncpy.cxx:
+ Use improved algorithm for aligned copies - imported from newlib
+ QA changes
+
+ * src/stdlib/abort.cxx:
+ Support raise(SIGABRT), and some QA
+
+ * include/errno.h:
+ Add const attribute
+
+ * tests/stdlib/abs.c:
+ QA improvements
+
+1999-02-04 Jesper Skov <jskov@cygnus.co.uk>
+
+ * src/support/cstartup.cxx: Only define cyg_libc_main_thread when
+ the kernel is around.
+
+1999-02-01 Jesper Skov <jskov@cygnus.co.uk>
+
+ * tests/time/clock.c: Joined the two test/NOP checks into
+ one.
+ Increased tolerance in attempt to fix PRs 18737,18787,18846.
+ Fixed typo.
+
+1999-01-28 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/string/strtok.cxx:
+ * src/stdlib/rand.cxx:
+ Include <pkgconf/kernel.h> if we use kernel header files
+
+1999-01-25 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdio/sscanf.c (test):
+ CYGSEM_LIBC_STDIO_PRINTF_FLOATING_POINT should be
+ CYGSEM_LIBC_STDIO_SCANF_FLOATING_POINT
+ Fix for PR 18786
+
+ * src/string/strtok.cxx:
+ * src/stdio/common/stdiofiles.cxx:
+ * src/errno/errno.cxx:
+ * src/stdlib/rand.cxx:
+ Give mutex protection objects a libc constructor priority
+
+ * src/support/invokemain.cxx:
+ Add prototype for cyg_hal_invoke_constructors()
+
+ * src/support/mainthread.cxx:
+ Give cyg_libc_dummy_constructor_obj a libc constructor priority,
+ and make its class have a public constructor
+
+ * src/stdio/common/stderr.cxx:
+ * src/stdio/common/stdout.cxx:
+ * src/stdio/common/stdin.cxx:
+ Give cyg_libc_stdio_stdin/out/err static objects a libc constructor
+ priority
+
+ * src/clibincl/streambuf.hxx (class Cyg_StdioStreamBuffer):
+ * src/clibincl/stream.hxx (class Cyg_StdioStream):
+ Remove private copy constructor. Needed to make prioritised
+ static constructors work. Fix for PR 18898
+
+1999-01-22 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/errno/errno.cxx:
+ Include pkgconf/kernel.h otherwise it fails with per-thread errno
+ enabled
+
+ * include/pkgconf/libc.h:
+ Enable per-thread errno by default since that is what POSIX would
+ want
+
+ * tests/time/clock.c (test):
+ Placate compiler by initializing clock_first/second/third anyway,
+ even though they won't be in practice. This is only a test program
+ so adding an extra instruction doesn't matter.
+
+ * src/i18n/locale.cxx (_setlocale):
+ Placate compiler, since it is dumb, by nesting, not serializing, if's
+ This is an idempotent change, but screws up the formatting :-(.
+
+ * src/string/strpbrk.cxx (_strpbrk):
+ Change while loop to do loop to placate compiler. It'll even save an
+ instruction too (wow!)
+
+1999-01-22 John Dallaway <jld@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Add closing curly brace to CYGPKG_LIBC_STRING_STRTOK definition
+
+1999-01-21 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/errno.h:
+ Tidy up and add to header description
+ Change cyg_get_errno_p() to cyg_libc_get_errno_p()
+ Remove ifdef CYGPKG_LIBC
+
+ * include/sys/file_if.h:
+ Remove - move contents to stdio.h
+
+ * include/stdio.h:
+ Tidy up header description
+ Move FILE typedef here from sys/file_if.h
+ SEEK_SET, SEEK_CUR, SEEK_END defined to 0, 1, 2 respectively
+ for backwards compatibility with old UNIX
+ Change definitions of stdin/out/err to be addresses of FILE
+ globals - even though they're actually Cyg_StdioStream it'll work
+
+ * include/pkgconf/libc.h:
+ Make CYGPRI_LIBC_WEAK et al macros depend on new ones in infra
+ Reorganise trace options under the individual components they are
+ associated with.
+ Reorganise thread-safety options under the individual components
+ they are associated with.
+ Add new CYGSEM_LIBC_INVOKE_DEFAULT_STATIC_CONSTRUCTORS option
+ Misc. reformatting
+ Remove dependency on pkgconf/kernel.h - Configuration Tool will
+ generate check macros anyway.
+ Remove CYGPKG_LIBC_TRACE, CYGFUN_LIBC_strtok, CYGPKG_LIBC_RAND
+ options
+ Tidy up description header
+
+ * src/clibincl/clibdata.hxx:
+ * src/clibincl/clibdata.inl:
+ * src/support/clibdata.cxx:
+ Remove and instead rely on each component to initialise its own data
+
+ * src/clibincl/stdiofiles.hxx, src/clibincl/stdiofiles.inl:
+ New files to contain global file list and lock (if applicable).
+ Implemented as class with member access functions
+
+ * src/errno/errno.cxx:
+ Reorganise with self-contained per-thread data, if applicable
+ Remove ifdef CYGPKG_LIBC
+ Tidy up description header
+ Rename cyg_get_errno_p() to cyg_libc_get_errno_p()
+
+ * src/stdio/common/fclose.cxx:
+ * src/stdio/common/fflush.cxx:
+ * src/stdio/common/fopen.cxx:
+ * src/stdio/common/freopen.cxx:
+ Remove ifdef CYGPKG_LIBC
+ Use new global file access method from stdiofiles.hxx
+ Tidy up description header
+ Use new CYGBLD_ATTRIB_WEAK_ALIAS
+ Access errno "normally" rather than clibdata way
+
+ * src/stdio/common/stdin.cxx:
+ * src/stdio/common/stdout.cxx
+ * src/stdio/common/stderr.cxx:
+ New files. Implement Cyg_StdioStream objects for each stream. In
+ separate self-contained files so using one doesn't bring in the
+ others
+
+ * src/stdio/common/stdiofiles.cxx:
+ New file. Implements global files array and lock
+
+ * src/stdlib/_exit.cxx:
+ Tidy up description header
+ Remove ifdef CYGPKG_LIBC
+ Use infra CYGBLD* macros
+
+ * src/stdlib/malloc.cxx:
+ Tidy up description header
+ Remove ifdef CYGPKG_LIBC
+ Add pkgconf/kernel.h now that pkgconf/libc.h doesn't have it
+ Use infra CYGBLD* macros
+ Make pool visible externally with weak attribute and new name
+ cyg_libc_malloc_memorypool
+
+ * src/stdlib/rand.cxx:
+ * src/stdlib/strtok.cxx:
+ Reorganise with self-contained per-thread data, if applicable
+ Remove ifdef CYGPKG_LIBC
+ Tidy up description header
+ Use infra CYGBLD* macros
+
+ * src/support/cstartup.cxx:
+ Split into smaller files to make selective linking work better,
+ fix i386 port problem and make GDB happy
+
+ * src/support/environ.cxx:
+ * src/support/invokemain.cxx:
+ * src/support/main.cxx:
+ * src/support/mainthread.cxx:
+ New files from bits of the old cstartup.cxx
+ Add support for CYGSEM_HAL_STOP_CONSTRUCTORS_ON_FLAG
+
+ * src/PKGconf.mak:
+ Update to reflect file additions/deletion
+
+ * tests/stdlib/rand1.c:
+ * tests/stdlib/rand2.c:
+ * tests/stdlib/rand3.c:
+ * tests/stdlib/srand.c:
+ Make conform to coding standards
+ Remove ifdef CYGPKG_LIBC_RAND
+ Tidy up description header
+
+ * tests/string/strtok.c:
+ Make conform to coding standards
+ Remove ifdef CYGFUN_LIBC_strtok
+ Tidy up description header
+
+1999-01-15 Mark Galassi <rosalia@cygnus.com>
+
+ * tests/stdlib/getenv.c (main): added tests for the case in which
+ the user does not supply environ and in which the user supplies a
+ NULL environ.
+
+1999-01-15 Jesper Skov <jskov@cygnus.co.uk>
+
+ * src/support/cstartup.cxx: Added workaround for weak aliasing
+ problem in i386 gcc.
+
+
+1999-01-15 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * include/pkgconf/libc.h (CYGNUM_LIBC_MAIN_STACK_SIZE):
+ (CYGNUM_LIBC_MALLOC_MEMPOOL_SIZE): Change defaults to be
+ more reasonable on small systems.
+
+1999-01-04 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/support/clibdata.cxx:
+ Minor bug with environ not being initialised correctly by
+ default
+
+1998-12-24 Bart Veer <bartv@cygnus.co.uk>
+
+ * src/clibincl/stream.inl (Cyg_StdioStream):
+ check_this() member functions should now be const
+
+1998-12-22 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/string/memchr.cxx (_memchr):
+ treat search value parameter to memchr as an unsigned byte,
+ not a signed int - copied fix from newlib PR 18471
+
+1998-12-21 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdlib/realloc.c:
+ * tests/stdlib/malloc3.c:
+ * tests/stdlib/malloc2.c:
+ Warning cleanup
+
+1998-12-14 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdlib/malloc2.c, tests/stdlib/malloc3.c,
+ tests/stdlib/realloc.c:
+ Only run these tests when we have a coalescing memory allocator
+
+1998-12-14 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/stream.cxx:
+ Only check buffer init success if buffering
+
+ * src/stdio/common/streambuf.cxx (set_buffer):
+ Check for diff of requested size against buffer_size, not
+ get_buffer_size(), since this may return -1, which won't be
+ equal to size, and will cause malloc to be called
+
+1998-12-01 Jesper Skov <jskov@cygnus.co.uk>
+
+ * tests/stdlib/getenv.c (main): Don't declare variables when they
+ are not used.
+
+Thu Nov 26 17:59:12 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/string/strncpy1.c:
+ Fix off-by-one error since it called my_strcmp() and not
+ my_strncmp(), which meant in included the trailing NULL when it
+ shouldn't have.
+
+1998-11-26 Jesper Skov <jskov@cygnus.co.uk>
+
+ * src/stdlib/qsort.cxx (_qsort):
+ * src/stdlib/rand.cxx (_srand):
+ Changed CYG_REPORT_FUNCNAMETYPE to CYG_REPORT_FUNCNAME in void
+ functions.
+
+Mon Oct 26 18:49:00 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/support/cstartup.cxx (cyg_libc_dummy_main):
+ Silence compiler warning with cast of char * to CYG_ADDRWORD
+
+Wed Oct 28 17:31:21 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/time/clock.cxx (_clock):
+ Reorder scaling expression as it was both incorrect and risked
+ overflow.
+ Fix for PR 18076
+
+Mon Oct 19 14:40:06 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/stdio.h (EOF):
+ Change from -64 to (-1), to allow broken code to work :-/
+ Also change other negative defines to be within parentheses
+
+1998-10-19 Mark Galassi <rosalia@cygnus.com>
+
+ * include/pkgconf/libc.h: updated the doc URL
+
+Thu Oct 15 21:33:44 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/clibdata.hxx:
+ Only include kernel thread headers when we're in thread-safe mode
+
+ * src/time/clock.cxx:
+ Only include kernel clock headers if there's a kernel with the
+ right functionality available
+
+ * tests/time/clock.c:
+ Remove unnecessary inclusion of <pkgconf/kernel.h>
+
+ Above changes are required for PR 17229
+
+Wed Oct 14 16:38:55 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/clibdata.hxx, src/clibincl/clibdata.inl:
+ Conditionalise inclusion of clibincl/stdiosupp.hxx and
+ clibincl/stream.hxx. Tidying up PR 17502
+
+Wed Oct 14 14:08:56 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Rename CYGPKG_LIBC_STRING_OPTIMISATIONS to
+ CYGPKG_LIBC_STRING_OPTIMIZATIONS to make it truely merkin.
+
+Tue Oct 13 19:34:41 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h (CYGDAT_LIBC_ARGUMENTS):
+ Add a default argv[0] of "" as many programs assume argc>0
+ The standard allows argv[0] to be "" if the program name
+ is not available
+
+1998-09-26 Bart Veer <bartv@cygnus.co.uk>
+
+ * src/clibincl/stdiosupp.hxx:
+ PR 17502: this header file now does nothing if the stdio option
+ is disabled completely. This is the same behaviour is
+ clibincl/stream.hxx, although arguably the #ifdef protection
+ should happen wherever the header file is #include'd rather than
+ in the header file itself.
+
+ * src/clibincl/clibdata.hxx:
+ PR 17502: this header file still #include's internal stdio-related
+ header files and references the FILE structure, even if stdio is
+ disabled. There were some #ifdef's for CYGPKG_LIBC_STDIO already.
+ One more has been added for _fopen() and _fclose().
+
+1998-09-25 Bart Veer <bartv@cygnus.co.uk>
+
+ * src/clibincl/streambuf.inl (Cyg_StdioStreamBuffer):
+ PR 17487: Reorder the calls to initialize member fields, to
+ eliminate a compiler warning.
+
+Fri Sep 25 19:04:29 1998 Jonathan Larmour <jlarmour@peshwari.cygnus.co.uk>
+
+ * src/errno/errno.cxx, src/stdlib/bsearch.cxx,
+ src/stdlib/qsort.cxx, src/stdlib/rand.cxx, src/string/strtok.cxx,
+ src/time/clock.cxx:
+ Only define tracing variable and tracing level macro when
+ the relevant tracing level config options are set. Otherwise
+ keep the tracing level fixed at 0
+ Fix for PR 17476
+
+ * include/pkgconf/libc.h:
+ Define trace levels only if parent CYGPKG_LIBC_TRACE is defined
+ for consistency with Configuration Tool
+
+
+Fri Sep 25 17:24:45 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/stdioinlines.cxx:
+ Make definition of vscanf() dependent on CYGFUN_LIBC_STDIO_ungetc
+ otherwise _vfscanf() won't be compiled. This therefore would
+ cause a link fail iff selective linking is not enabled.
+ Fix for PR 17455
+
+Fri Sep 25 17:23:17 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdlib/rand.cxx:
+ Make compilation dependent on CYGPKG_LIBC_RAND
+ Fix for PR 17473
+
+ * tests/stdlib/srand.c:
+ Make definition of dummy test pass conditional on CYGPKG_LIBC_RAND
+ not being defined, as well as CYGPKG_LIBC
+ Caused compilation failure when testing PR 17473 fix
+
+Mon Sep 21 17:11:04 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdio/sscanf.c:
+ Make sscanf test conditional on CYGFUN_LIBC_STDIO_ungetc since
+ _vfscanf() only gets compiled if this is defined
+ Fix for PR 17346
+
+1998-09-20 Mark Galassi <rosalia@cygnus.com>
+
+ * include/pkgconf/libc.h: updated CDL doc strings.
+
+Fri Sep 18 22:18:47 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/clibdata.inl (get_errno_p):
+ Rather than this function only being available in thread-safe mode,
+ instead make what it returns be either the per-thread errno, or
+ global errno depending on the configuration.
+ Include <errno.h> (conditionally) to support this change
+
+Wed Sep 16 11:20:31 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Remove "fix me" comment which I forgot to remove before
+
+Tue Sep 15 19:27:57 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Updated descriptions and a few other minor things after review.
+ Notably though, the NDEBUG config option has been removed
+
+1998-09-15 Bart Veer <bartv@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ PR 17201: removed dependency on CYGPKG_KERNEL in the option
+ CYGNUM_LIBC_MAIN_STACK_SIZE, since the actual dependencies cannot
+ be expressed sensibly in the current system.
+
+1998-09-11 Bart Veer <bartv@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Sorting out dependencies for error package.
+
+1998-09-10 Mark Galassi <rosalia@cygnus.com>
+
+ * include/pkgconf/libc.h: started adding doc fields to the
+ cdl_package data, as a pilot for now.
+
+Wed Sep 9 17:41:23 1998 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Add option CYGIMP_LIBC_MALLOC_CXX_DELETE_CALLS_FREE to explicitly
+ control whether the empty delete functions (currently) in
+ kernel/.../common/delete.cxx are enabled; controls code bloat, see
+ the comments in delete.cxx.
+
+Fri Sep 4 16:43:38 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdio/stdiooutput.c:
+ Add a default CYG_TEST_PASS() to make sure the test infra doesn't
+ complain.
+ Also remove the unused string functionsa
+
+Fri Sep 4 15:43:48 1998 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * src/stdlib/exit.cxx (__libc_exit):
+ * src/stdlib/_exit.cxx (__libc__exit):
+ * src/stdlib/malloc.cxx (_free):
+ * src/stdlib/abort.cxx (abort):
+ * src/support/cstartup.cxx (invoke_main):
+ Tracing system asserted cos it was being called incorrectly; these
+ are void functions so you shouldn't give a type to the function
+ reporting call.
+
+Fri Sep 4 15:03:10 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Fix CYGDAT_LIBC_STDIO_DEFAULT_CONSOLE description to refer to
+ the table.cxx file, not table.h
+
+Fri Sep 4 14:38:52 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Add description for CYGDAT_LIBC_STDIO_DEFAULT_CONSOLE since
+ Proven won't be making any changes to the device driver
+ implementation after all.
+ Fix for PR 17148
+
+ * src/clibincl/stream.inl (set_position):
+ Remove "fix me" line. It is obvious that this will have to change
+ with a filesystem interface
+ Fix for PR 17147
+
+ * src/stdio/common/freopen.cxx:
+ Remove "fix me" - I know about this issue
+ Fix for PR 17145
+
+ * src/stdio/common/stream.cxx (read):
+ Remove "fix me" and change to use memcpy
+ Fix for PR 17144
+
+Fri Sep 4 14:36:47 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdio/stdiooutput.c:
+ Actually add it this time!
+
+Fri Sep 4 13:48:13 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdio/stdiooutput.c:
+ Add new tests for misc stdio output functions
+
+ * tests/PKGconf.mak:
+ Build stdiooutput.c test
+
+Fri Sep 4 12:52:10 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/stream.inl (write_byte):
+ Remove bogus assert
+
+ * tests/stdlib/getenv.c (main):
+ Check whether str is NULL before doing a strcmp()
+
+ * tests/stdio/sprintf2.c (main):
+ Reformat to 76 columns
+
+Fri Sep 4 02:10:54 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/stream.hxx, src/stdio/common/stream.cxx:
+ Add new peek_byte method to Cyg_StdioStream
+
+ * src/stdio/input/vfscanf.cxx (_vfscanf):
+ Fix up buffer access to work with new peek_byte method above
+ Fix for PR 16954
+
+Thu Sep 3 19:40:11 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdlib/rand1.c, tests/stdlib/rand2.c,
+ tests/stdlib/rand3.c:
+ Add extra check for CYGPKG_LIBC_RAND to decide whether the test
+ is applicable or not
+
+ * tests/stdlib/rand2.c (test):
+ Use CYGNUM_LIBC_RAND_SEED for default seed, not 1
+
+ * tests/string/strtok.c:
+ Add extra check for CYGFUN_LIBC_strtok to decide whether the
+ test is applicable or not
+
+Wed Sep 2 19:11:40 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/input/fread.cxx, src/stdio/output/fwrite.cxx:
+ Add fread() and fwrite() functions
+
+ * src/PKGconf.mak:
+ Build fread.cxx and fwrite.cxx from above
+
+ * src/stdio/common/stream.cxx:
+ Reformat to 76 columns
+ In write(), move initialisation of *bytes_written to start
+ In read(), move initialisation of *bytes_read to start
+
+ * include/stdio.h:
+ Reformat to 76 columns
+
+ Replace all references to the ANSI
+ standard to instead by the ISO C standard
+
+ Add commented argument names for "documentation"
+
+ Add fread() and fwrite() prototypes
+
+ * src/clibincl/stdiosupp.hxx:
+ Copy the above changes from stdio.h, and add _fread() and _fwrite()
+ prototypes
+
+ * src/stdio/output/fputs.cxx, src/stdio/input/fgets.cxx:
+ Reformat to 76 columns
+
+Wed Sep 2 15:41:15 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/input/vfscanf.cxx:
+ Reformat to 76 columns
+
+Wed Sep 2 14:46:18 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/fflush.cxx:
+ Use trylock_me() instead of lock_me(), and loop to prevent
+ deadlocks
+
+ * src/clibincl/stream.hxx, src/clibincl/stream.inl:
+ Add trylock_me() method
+
+ * src/clibincl/stream.hxx, src/clibincl/stream.inl,
+ src/stdio/common/fflush.cxx:
+ Reformat to 76 columns
+
+Wed Sep 2 12:24:27 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Change 0x7fff to 0x7fffffff. Oops!
+ give main stack size option a legal_values field
+ Undefine tracing by default
+ Add some more description in the header
+
+Tue Sep 1 20:02:07 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/i18n/setlocale.c (cyg_package_start):
+ Fix typo - extra "x" for no reason at all! :-)
+
+Tue Sep 1 19:44:58 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/i18n/locale.cxx:
+ Fix bug in find_locale_data() that miscalculated size of
+ all_locales
+
+ Make find_locale_data() match the locale "" and add some
+ other things in _setlocale() to ensure that "C" gets returned
+ when the default locale "" is passed.
+
+ Only check the locale pointer when it is non-NULL
+
+ * tests/i18n/setlocale.c:
+ New tests for setlocale()
+
+ * tests/PKGconf.mak:
+ Update to build setlocale.c test
+
+ * src/support/cstartup.cxx:
+ Don't actually call system default main() "main" otherwise GDB
+ gets confused and thinks its the entry point. Instead make a weak
+ alias and call the real function something different.
+
+Tue Sep 1 18:31:42 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/i18n/locale.cxx (_setlocale):
+ Fix tracing macro name and remove "str maybe used before
+ initialised" warning
+
+ * tests/stdlib/qsort.c:
+ Correct file description header
+
+Tue Sep 1 17:04:32 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/locale.h, src/clibincl/i18nsupp.hxx, src/i18n/locale.cxx:
+ New files to add support for locales as defined by the ISO C
+ standard. i.e. setlocale() and localeconv() functions and some
+ other bits
+
+ * include/pkgconf/libc.h:
+ Add CYGNUM_LIBC_MAX_LOCALE_NAME_SIZE config option for locale
+ support
+
+ * src/PKGconf.mak:
+ build locale.cxx
+
+ * include/errno.h, src/clibincl/ctypesupp.hxx:
+ Tidy up to 76 columns
+
+Tue Sep 1 00:24:22 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Move environment-related options from stdlib into new
+ CYGPKG_LIBC_STARTUP component. Also add options for main()'s
+ arguments (CYGPKG_LIBC_ARGUMENTS), main()'s default stack size
+ (CYGNUM_LIBC_MAIN_STACK_SIZE), number of atexit handlers
+ (CYGNUM_LIBC_ATEXIT_HANDLERS), and whether _exit() stops the
+ system (CYGSEM_LIBC_EXIT_STOPS_SYSTEM).
+
+ * src/clibincl/stdlibsupp.hxx:
+ Fix a few comment bugs, and add new
+ cyg_libc_invoke_atexit_handlers() function prototype
+
+ * src/stdlib/_exit.cxx, src/stdlib/atexit.cxx, src/stdlib/exit.cxx:
+ Implement exit(), atexit() and _exit() correctly now. Also
+ includes cyg_libc_invoke_atexit_handlers() in atexit.cxx. Now
+ we get the correct behaviour of atexit(), and exit() invokes the
+ atexit handlers and fflushs all the stdio streams. Add plenty of
+ tracing of asserts too.
+
+ * src/support/cstartup.cxx:
+ Make main_thread object an exported global. Allow user-settable
+ arguments. Add MUCH more tracing and asserts. Improve comments.
+ Tidy up to 76 columns
+
+ * tests/stdlib/atexit.c:
+ Add simple test for atexit() and it calling registered functions
+
+ * tests/PKGconf.mak:
+ Build atexit.c test
+
+Mon Aug 31 18:54:48 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdlib/getenv.cxx, tests/stdlib/getenv.c:
+ Add support for getenv(), and some tests to ensure it works
+
+ * src/PKGconf.mak, tests/PKGconf.mak:
+ Update to include getenv.cxx and getenv.c test
+
+ * src/clibincl/clibdata.hxx:
+ remove prototype for environ - we expect files needing it to
+ define it themselves
+
+ * src/support/clibdata.cxx:
+ Tidy up to 76 columns and add definition of char **environ, but
+ with a configurable initialiser (see libc.h below)
+
+ * tests/stdlib/abs.c (main):
+ Tidy up to 76 columns
+
+ * src/stdlib/malloc.cxx:
+ Tidy up to 76 columns and remove warning for undefined _memcpy()
+ by changing to memcpy(), and casting away signedness
+
+ * include/pkgconf/libc.h:
+ Add CYGPKG_LIBC_ENVIRONMENT and CYGDAT_LIBC_DEFAULT_ENVIRONMENT
+ configuration options
+
+ * include/pkgconf/libc.h, src/clibincl/clibdata.hxx:
+ Tidy up to 76 columns
+
+ * include/stdlib.h:
+ Add getenv() prototype and tidy up to 76 columns
+
+ * src/clibincl/stdlibsupp.hxx:
+ Add _getenv() prototype
+
+Mon Aug 31 13:37:08 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdlib/malloc.cxx:
+ Add realloc()
+
+ * tests/stdlib/realloc.c:
+ Add this file to test new realloc() functionality
+
+ * tests/PKGconf.mak:
+ Build realloc test
+
+ * tests/stdlib/malloc3.c (main), tests/stdlib/malloc2.c (main),
+ tests/stdlib/malloc1.c (main):
+ Conditionalise local vars to prevent warnings
+
+ * tests/stdlib/malloc3.c (fill_with_data):
+ Move '{' into "verb" line
+
+ * include/pkgconf/libc.h:
+ Require infra tracing support to allow tracing
+
+ * include/stdlib.h:
+ Add realloc()
+
+ * src/clibincl/stdlibsupp.hxx:
+ Update the commented argument names from stdlib.h, including realloc()
+
+1998-08-28 Bart Veer <bartv@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ * src/clibincl/clibdata.hxx, src/time/clock.cxx:
+
+ Updated for new kernel configuration option symbol names
+
+Fri Aug 28 19:18:25 1998 Hugo Tyson <hmt@cygnus.co.uk>
+
+ Changed the entry below to sat "tx39" instead of "mn10300".
+ It's been a long week.
+
+Fri Aug 28 18:59:20 1998 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * src/support/cstartup.cxx: Add a weakly named main to allow the
+ default configuration to link on the tx39 which has no
+ scalextric linking yet. The static Cyg_Thread main_thread object
+ below continues to exist, though unreferenced, so all its
+ descendants must exist too.
+
+Fri Aug 28 08:54:29 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/stdlib.h:
+ Add commented argument names Add exit(), and atexit(). And move
+ these along with abort() and _exit() to a new section.
+
+ * src/stdlib/atexit.cxx, src/stdlib/exit.cxx:
+ Add trivial versions of atexit() and exit()
+
+ * include/pkgconf/libc.h:
+ Add CYGNUM_LIBC_MAIN_STACK_SIZE config option
+
+ * include/sys/cstartup.h, src/support/cstartup.cxx, src/PKGconf.mak:
+ New files to provide a new function cyg_iso_c_support(), which
+ invokes main "correctly".
+
+ * tests/ctype/ctype.c, tests/setjmp/setjmp.c, tests/stdio/sprintf1.c,
+ tests/stdio/sprintf2.c, tests/stdio/sscanf.c, tests/stdlib/abs.c,
+ tests/stdlib/atoi.c, tests/stdlib/atol.c, tests/stdlib/bsearch.c,
+ tests/stdlib/div.c, tests/stdlib/labs.c, tests/stdlib/ldiv.c,
+ tests/stdlib/malloc1.c, tests/stdlib/malloc2.c,
+ tests/stdlib/malloc3.c, tests/stdlib/qsort.c, tests/stdlib/rand1.c,
+ tests/stdlib/rand2.c, tests/stdlib/rand3.c, tests/stdlib/srand.c,
+ tests/stdlib/strtol.c, tests/stdlib/strtoul.c,
+ tests/string/memchr.c, tests/string/memcmp1.c,
+ tests/string/memcmp2.c, tests/string/memcpy1.c,
+ tests/string/memcpy2.c, tests/string/memmove1.c,
+ tests/string/memmove2.c, tests/string/memset.c,
+ tests/string/strcat1.c, tests/string/strcat2.c,
+ tests/string/strchr.c, tests/string/strcmp1.c,
+ tests/string/strcmp2.c, tests/string/strcoll1.c,
+ tests/string/strcoll2.c, tests/string/strcpy1.c,
+ tests/string/strcpy2.c, tests/string/strcspn.c,
+ tests/string/strlen.c, tests/string/strncat1.c,
+ tests/string/strncat2.c, tests/string/strncpy1.c,
+ tests/string/strncpy2.c, tests/string/strpbrk.c,
+ tests/string/strrchr.c, tests/string/strspn.c,
+ tests/string/strstr.c, tests/string/strtok.c,
+ tests/string/strxfrm1.c, tests/string/strxfrm2.c,
+ tests/time/clock.c:
+
+ Modify all tests to use new startup mechanism, and cyg_iso_c_start()
+
+Fri Aug 28 00:29:38 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/stream.cxx:
+ Add #ifdef CYGSEM_LIBC_STDIO_WANT_BUFFERED_IO around all accesses to
+ flags.last_buffer_op_was_read. Fix for PR 16997
+
+Thu Aug 27 01:12:42 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/sys/file_if.h:
+ Fix comments and remove cyg_get_file_star()
+
+Wed Aug 26 20:24:32 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Remove #define CYGPKG_LIBC is that is meant to live in
+ <pkgconf/system.h> after all
+
+Wed Aug 26 19:39:23 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ More fixes to CDL stuff to make it work better, and look better on
+ the screen
+
+Tue Aug 25 20:21:41 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Make some fixes after running the ConfigTool
+
+Tue Aug 25 16:46:28 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h (CYGNUM_LIBC_STDIO_BUFSIZE):
+ Fix typo of CYGNUM_LIBC_STDIO_BUFSIZE
+
+Tue Aug 25 15:10:57 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Tidy up CDL stuff a bit more, prior to checking it actually works.
+
+Tue Aug 25 11:38:52 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdlib/malloc2.c (main):
+ Prevent calls to CYG_TEST_STILL_ALIVE for now
+
+Tue Aug 25 05:39:28 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Change cosmetic paragraph alignment.
+
+Tue Aug 25 03:11:34 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/support/clibdata.cxx:
+ Make stderr initialise with buffer size 0.
+ For PR 16955
+
+Mon Aug 24 17:38:46 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ First pass at CDL-ifying the C library configuration. Currently
+ deliberately disabled as there a few outstanding issues.
+
+Mon Aug 24 16:14:22 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/output/vfnprintf.cxx (_vfnprintf):
+ clear up warning for unused argument
+
+ * tests/stdlib/malloc2.c (NUM_ITERATIONS):
+ Lower to 100 from 50000 so it won't take too long under the simulator
+
+Thu Aug 20 17:48:43 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdlib/malloc.cxx:
+ Remove now unnecessary inclusion of kernel/ktypes.h
+
+Wed Aug 19 19:19:14 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdio/sprintf1.c, tests/stdio/sprintf2.c,
+ tests/stdio/sscanf.c, tests/stdlib/atoi.c, tests/stdlib/atol.c,
+ tests/stdlib/rand1.c, tests/stdlib/rand2.c, tests/stdlib/rand3.c,
+ tests/stdlib/srand.c, tests/stdlib/strtol.c,
+ tests/stdlib/strtoul.c, tests/string/strtok.c,
+ tests/time/clock.c:
+ Add parameters to "main()" to silence warnings
+
+Wed Aug 19 18:52:59 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/stream.cxx (refill_read_buffer):
+ Put conditional error check into same #ifdef and if as what was being
+ checked in the first place!
+
+Wed Aug 19 18:49:19 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/stream.inl:
+ Reorder Cyg_StdioStream::check_this() to be first to silence
+ warnings
+
+Tue Aug 18 16:10:03 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * ecc/language/c/libc/current/src/clibincl/clibdata.hxx,
+ ecc/language/c/libc/current/src/errno/errno.cxx,
+ ecc/language/c/libc/current/src/stdio/common/fopen.cxx,
+ ecc/language/c/libc/current/src/stdlib/rand.cxx,
+ ecc/language/c/libc/current/src/string/strtok.cxx:
+ Rename CYGIMP_LIBC_INTERNAL_DATA_PREAMBLE,
+ CYGIMP_LIBC_INTERNAL_DATA_ALLOC_CHECK_PREAMBLE,
+ CYGVAR_LIBC_INTERNAL_DATA, and
+ CYGIMP_LIBC_INTERNAL_DATA_CHECK to all have CYGPRI_ prefix instead
+ as recommended by the config name rules
+
+
+Tue Aug 18 14:31:19 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/setvbuf.cxx (_setvbuf):
+ Rename variable names in assert line, otherwise doesn't build
+ with asserts on!
+
+Sun Aug 16 18:15:12 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/input/vfscanf.cxx (_vfscanf):
+ Fix some bugs, although there are some left to fix still. Unrelated
+ to the rest of the checkins, so I will check the partial fix in now.
+
+ * src/clibincl/stream.hxx, src/clibincl/stream.inl,
+ src/stdio/common/stream.cxx:
+ Add parameters to constructor to allow more things to be done at
+ construction time.
+
+ Now we have "new", remove separate "construct" method
+
+ Add more documentation on constructor
+
+ As requested by code review, where possible, move boolean flags
+ into separate packed bitfield structure for space efficiency
+
+ Make readbuf_char be usable all the time rather than when configured
+ not to be buffering, as it is also needed for non-buffered mode i.e.
+ _IONBF
+
+ * src/stdio/common/fopen.cxx:
+ Change to use new method of construction from above, using new
+
+ Use thread-specific data, rather than global. And so change errnos
+ to access errno entry specifically
+
+ Make process_mode() check for append mode too
+
+ Reformat for coding standards to have { in same line as "verb"
+
+ * src/stdio/common/setvbuf.cxx:
+
+ Change to cope with different way of dealing with buffering policy
+ flags etc. in Cyg_StdioStream
+
+ * src/stdio/common/vsnprintf.cxx, src/stdio/common/vsscanf.cxx,
+ src/support/clibdata.cxx:
+ Change construction of streams to use new parameters added above,
+ and change to use _IONBF mode for string stdio functions,
+ otherwise its a waste of memory. And use _IONBF for stderr as the
+ ISO standard tells us to!
+
+ Reformat for coding standards to have { in same line as "verb"
+
+ * src/clibincl/streambuf.hxx, src/clibincl/streambuf.inl:
+ Change constructor so that it can be set with default size and
+ dynamic buffer (if applicable)
+
+ Fix minor bug in destructor - should only call free when allocated
+ dynamically
+
+ Change get_buffer_size to return -1 if the buffer was not allowed
+ to be set up
+
+ * src/stdio/common/streambuf.cxx:
+ Remove unnecessary stdio.h include and add extra comment to whether
+ to free bit in set_buffer()
+
+ * src/stdio/common/freopen.cxx:
+ Change @@@ to standard fix me string
+
+ * src/stdio/output/fputc.cxx:
+ Remove unnecessary "written" variable
+
+Thu Aug 13 15:37:28 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdlib/_exit.cxx:
+ Included use of "fix me" line to ensure this is discussed before
+ release
+
+ * include/stdlib.h, src/stdlib/abort.cxx, src/PKGconf.mak:
+ Add abort.cxx to implement abort(), albeit naively
+
+Thu Jul 30 18:03:09 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/vsscanf.cxx (_vsscanf),
+ src/stdio/common/vsnprintf.cxx (_vsnprintf):
+ Fix initialiser of pseudo string device table that didn't get updated
+ when the table changed (Bad proven, no biscuit).
+
+ * src/clibincl/stream.inl (~Cyg_StdioStream):
+ Move invalidation of magic_validity_word to after unlock_me(),
+ otherwise it always fails!
+
+Tue Jul 28 21:29:53 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/clibdata.hxx:
+ Shorten over-long lines
+
+Tue Jul 28 20:28:23 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/stream.hxx (class Cyg_StdioStream),
+ src/clibincl/stream.inl, src/stdio/common/stream.cxx:
+ Clarify some comments and get the CYGDBG_DEFINE_CHECK_THIS and
+ CYG_ASSERTCLASS stuff going
+
+ * src/clibincl/stream.inl:
+ Put '{'s on same line as "action" as per coding standards
+ Shorten over-long lines
+
+Tue Jul 28 15:31:06 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/streambuf.inl, src/stdio/common/streambuf.cxx:
+ Move set_buffer() from streambuf.inl to new file streambuf.cxx
+
+ * src/PKGconf.mak (COMPILE):
+ Build new file streambuf.cxx
+
+ * src/clibincl/streambuf.hxx (class Cyg_StdioStreamBuffer):
+ Add METHODS comment
+
+ * src/stdio/common/stream.cxx:
+ Put '{'s on same line as "action" as per coding standards
+ Shorten over-long lines
+
+Tue Jul 28 00:26:36 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/stdlib.inl, src/stdio/input/vfscanf.cxx,
+ src/stdio/output/vfnprintf.cxx, src/stdlib/div.cxx,
+ src/stdlib/ldiv.cxx, src/stdlib/qsort.cxx, src/stdlib/strtol.cxx,
+ src/stdlib/strtoul.cxx, src/string/strtok.cxx:
+
+ Include proper Berkeley license inline in the file, rather than
+ referring to an external file
+
+ * doc/COPYING.UCB:
+ Remove, now that it isn't referred to any more
+
+Mon Jul 27 23:34:26 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/ctype.h, include/ctype.inl, include/errno.h,
+ include/stdio.h, include/stdio.inl, include/stdlib.h,
+ include/stdlib.inl, include/string.h, include/string.inl,
+ include/time.h, include/sys/file_if.h, src/PKGconf.mak,
+ src/clibincl/clibdata.hxx, src/clibincl/clibdata.inl,
+ src/clibincl/ctypesupp.hxx, src/clibincl/stdiosupp.hxx,
+ src/clibincl/stream.hxx, src/clibincl/streambuf.hxx,
+ src/clibincl/streambuf.inl, src/clibincl/stringsupp.hxx,
+ src/clibincl/timesupp.hxx, src/ctype/isalnum.cxx,
+ src/ctype/isalpha.cxx, src/ctype/iscntrl.cxx,
+ src/ctype/isdigit.cxx, src/ctype/isgraph.cxx,
+ src/ctype/islower.cxx, src/ctype/isprint.cxx,
+ src/ctype/ispunct.cxx, src/ctype/isspace.cxx,
+ src/ctype/isupper.cxx, src/ctype/isxdigit.cxx,
+ src/ctype/tolower.cxx, src/ctype/toupper.cxx,
+ src/errno/errno.cxx, src/stdio/common/snprintf.cxx,
+ src/stdio/common/sprintf.cxx, src/stdio/common/sscanf.cxx,
+ src/stdio/common/stdioinlines.cxx, src/stdio/common/stream.cxx,
+ src/stdio/common/ungetc.cxx, src/stdio/common/vsnprintf.cxx,
+ src/stdio/common/vsscanf.cxx, src/stdio/input/fgetc.cxx,
+ src/stdio/input/fgets.cxx, src/stdio/input/fscanf.cxx,
+ src/stdio/input/gets.cxx, src/stdio/input/scanf.cxx,
+ src/stdio/output/fnprintf.cxx, src/stdio/output/fprintf.cxx,
+ src/stdio/output/fputc.cxx, src/stdio/output/fputs.cxx,
+ src/stdio/output/printf.cxx, src/stdlib/_exit.cxx,
+ src/stdlib/abs.cxx, src/stdlib/atof.cxx, src/stdlib/atoi.cxx,
+ src/stdlib/atol.cxx, src/stdlib/div.cxx, src/stdlib/labs.cxx,
+ src/stdlib/ldiv.cxx, src/stdlib/rand.cxx, src/stdlib/strtod.cxx,
+ src/string/memchr.cxx, src/string/memcmp.cxx,
+ src/string/memmove.cxx, src/string/strcat.cxx,
+ src/string/strchr.cxx, src/string/strcmp.cxx,
+ src/string/strcoll.cxx, src/string/strcpy.cxx,
+ src/string/strcspn.cxx, src/string/strlen.cxx,
+ src/string/strncat.cxx, src/string/strncmp.cxx,
+ src/string/strncpy.cxx, src/string/strpbrk.cxx,
+ src/string/strrchr.cxx, src/string/strspn.cxx,
+ src/string/strstr.cxx, src/string/strsuppt.cxx,
+ src/string/strtok.cxx, src/string/strxfrm.cxx,
+ src/support/clibdata.cxx, src/time/clock.cxx:
+ Untabify
+
+Mon Jul 27 23:14:18 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/errno/errno.cxx, src/stdio/input/vfscanf.cxx,
+ src/stdio/output/vfnprintf.cxx, src/stdlib/strtol.cxx,
+ src/stdlib/strtoul.cxx, src/stdlib/malloc.cxx, src/stdlib/qsort.cxx,
+ tests/ctype/ctype.c, tests/stdlib/rand3.c, tests/stdlib/malloc3.c:
+ Remove all mentions of "register" in variable declarations. Also
+ untabify where needed
+
+ * src/stdlib/bsearch.cxx:
+ Untabify this too
+
+
+Mon Jul 27 22:18:51 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/output/fputc.cxx (_fputc):
+ Replace call to stream write() with call to write_byte()
+
+ * src/clibincl/stream.inl (write_byte):
+ Add asserts for stream write() returning odd values for how much has
+ been written
+
+ (bytes_available_to_read):
+ Remove "register" def for variable declaration
+
+Mon Jul 27 22:06:22 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/stdiosupp.cxx:
+ Remove #if 0'd cyg_get_file_star() and unnecessary pseudo string
+ device definition
+
+Mon Jul 27 21:57:25 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h, src/support/clibdata.cxx:
+ Change CYGXXX_LIBC_STDIO_DEFAULT_CONSOLE to
+ CYGDAT_LIBC_STDIO_DEFAULT_CONSOLE
+
+Mon Jul 27 21:49:23 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/clibdata.hxx, src/clibincl/clibdata.inl,
+ src/clibincl/ctypesupp.hxx, src/clibincl/setjmpsupp.hxx,
+ src/clibincl/stdiosupp.hxx, src/clibincl/stdlibsupp.hxx,
+ src/clibincl/stream.hxx, src/clibincl/stream.inl,
+ src/clibincl/streambuf.hxx, src/clibincl/streambuf.inl,
+ src/clibincl/stringsupp.hxx, src/clibincl/timesupp.hxx:
+
+ Change CYGONCE_LIBC_*_{HXX,INL} to CYGONCE_LIBC_CLIBINCL_*_{HXX,INL}
+
+Mon Jul 27 21:34:05 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Change #define XXXXX 1 to #define XXXXX where applicable as per code
+ review
+
+ Also remove obsolete CYGIMP_LIBC_THREAD_START_SUSPENDS_SELF
+
+Mon Jul 27 19:42:27 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/fopen.cxx (_fopen):
+ Use #ifdef, not #if for config options
+
+Mon Jul 27 15:01:51 BST 1998 Chris Provenzano <proven@cygnus.com>
+
+ * src/stdio/common/stream.cxx, src/stdio/common/vsnprintf.cxx
+ * src/stdio/common/vsscanf.cxx:
+ Fixes to compile with the new Cyg_IORB field names.
+
+Thu Jul 9 03:40:21 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdlib/atoi.c, tests/stdlib/atol.c,
+ tests/stdlib/strtol.c, tests/stdlib/strtoul.c:
+ Adjust starting of tests to possibly start scheduler since
+ strtol/stroul rely on errno, which may be a per-thread variable
+
+Thu Jul 9 03:06:25 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/stream.hxx, src/clibincl/stream.inl,
+ src/stdio/common/stream.cxx, src/stdio/common/setvbuf.cxx:
+ Consolidate read and write buffers into single buffer, as it should
+ have been all along
+
+ * src/clibincl/streambuf.hxx, src/clibincl/streambuf.inl:
+ Add drain_buffer() method to speed up the case when we want the
+ buffer completely emptied
+
+Tue Jul 7 21:26:33 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdio/sprintf1.c:
+ Add a couple of new tests that check that very long strings work too
+
+Wed Jul 1 19:52:39 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/stream.hxx, src/clibincl/streambuf.hxx:
+ Do not permit copy constructors
+
+ * src/clibincl/stream.inl, src/stdio/common/fclose.cxx:
+ Make sure we use #ifdef and not #if
+
+ * src/clibincl/streambuf.inl:
+ Use member initialisation list rather than explicit initialisation to
+ reduce warnings
+
+Wed Jul 1 19:17:55 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h and all files using config options:
+ Rename configuration defines to make them more standard
+
+Thu Jun 25 20:09:30 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/string/strcat.cxx:
+ Add parentheses on check to silence warning
+ (Verified by proven)
+
+Thu Jun 25 19:30:01 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdlib/malloc.cxx:
+ Make sure that the malloc pool is initialised before other things
+ can use it. This is done with the hot new constructor ordering
+ feature.
+
+Thu Jun 25 18:27:03 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/input/vfscanf.cxx:
+ Remove bogus ifdef if floating point is _not_ wanted
+
+Thu Jun 25 17:31:42 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/string/strtok.cxx:
+ Fix argument checking to allow first argument of NULL
+
+Thu Jun 25 04:18:50 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/clibdata.inl (get_strtok_last_p):
+ Remove bogus assertion
+
+ * src/stdlib/malloc.cxx:
+ Got sense of alignment check assertion the wrong way round, so negate
+ it
+
+Thu Jun 25 03:56:35 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/string/strxfrm.cxx:
+ Fix argument checking assertions with legitimate nulls here too
+
+Thu Jun 25 03:46:32 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdlib/strtoul.cxx, src/stdlib/strtol.cxx:
+ Fix argument checking assertions to cope with legitimate nulls
+
+Wed Jun 24 09:01:45 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdio/sprintf1.c:
+ Remove extraneous info messages
+
+Wed Jun 24 05:59:17 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdio/sprintf1.c, tests/stdio/sprintf2.c, tests/stdio/sscanf.c,
+ tests/stdlib/rand1.c, tests/stdlib/rand2.c, tests/stdlib/rand3.c,
+ tests/stdlib/srand.c:
+
+ Change large automatic arrays to static arrays to prevent overuse
+ of a potentially small stack
+
+Wed Jun 24 05:45:28 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdio/sprintf1.c, tests/stdio/sprintf2.c, tests/stdio/sscanf.c,
+ tests/stdlib/rand1.c, tests/stdlib/rand2.c, tests/stdlib/rand3.c,
+ tests/stdlib/srand.c, tests/string/strtok.c, tests/time/clock.c:
+
+ Increase thread stack size from 4K to 32K as in some cases it was
+ too small.
+
+
+Tue Jun 23 20:12:31 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdio/sscanf.c:
+ Add extra tests, including floating point conversion testing
+
+Tue Jun 23 17:01:06 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/string/strtok.cxx:
+ Make sure this is only compiled if CYGFUN_LIBC_strtok is defined
+
+Tue Jun 23 06:10:13 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ add some comments - that's all
+
+ * src/stdio/common/stream.cxx:
+ fix case in refill_read_buffer() for what to do when there's nothing
+ left. Now return EAGAIN
+
+ * src/stdio/common/vsscanf.cxx, src/stdio/input/vfscanf.cxx:
+ Get sscanf working properly and passing tests. Also make sure it
+ ignores FP when its not configured
+
+ * src/stdlib/atof.cxx:
+ Only compile at all if strtod() is present
+
+
+Mon Jun 22 19:13:42 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/clibdata.hxx, src/clibincl/clibdata.inl:
+ Conditionalise strtok_last and rand_seed better
+
+Mon Jun 22 14:14:12 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdlib/malloc3.c:
+ Add test for checking that mallocing and freeing repeatedly works
+
+ * tests/PKGconf.mak:
+ Update to reflect addition of the above
+
+Mon Jun 22 13:09:33 BST 1998 Chris Provenzano <proven@cygnus.com>
+
+ * src/stdio/common/fopen.cxx
+ * src/stdio/common/stream.cxx
+ * src/stdio/common/vsnprintf.cxx
+ * src/stdio/common/vsscanf.cxx
+ Include cyg/devs/common/iorb.h instead of iorb.hxx
+
+ * src/stdio/common/stream.cxx
+ Use read_blocking and write_blocking instead of just read and
+ write when accessing devices through the virtual device table.
+
+Sun Jun 21 18:19:13 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/stdioinlines.cxx:
+ Propagate change of return code handling for puts from stdio.inl
+ into here
+
+ * src/stdio/output/fputc.cxx:
+ make sure the right type is used for output - byte not int
+
+ * src/support/clibdata.cxx:
+ Fix #define config mistook. #endif was in wrong place
+
+Sun Jun 21 16:11:04 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/clibdata.hxx, src/clibincl/clibdata.inl:
+ Allow explicit construction to get around a bug when
+ dynamically allocating per-thread structure
+
+Sun Jun 21 16:02:51 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/ctype/ctype.c, tests/setjmp/setjmp.c, tests/stdio/sprintf1.c,
+ tests/stdio/sprintf2.c, tests/stdio/sscanf.c, tests/stdlib/abs.c,
+ tests/stdlib/atoi.c, tests/stdlib/atol.c, tests/stdlib/bsearch.c,
+ tests/stdlib/div.c, tests/stdlib/labs.c, tests/stdlib/ldiv.c,
+ tests/stdlib/malloc1.c, tests/stdlib/malloc2.c, tests/stdlib/qsort.c,
+ tests/stdlib/rand1.c, tests/stdlib/rand2.c, tests/stdlib/rand3.c,
+ tests/stdlib/srand.c, tests/stdlib/strtol.c, tests/stdlib/strtoul.c,
+ tests/string/memchr.c, tests/string/memcmp1.c,
+ tests/string/memcmp2.c, tests/string/memcpy1.c,
+ tests/string/memcpy2.c, tests/string/memmove1.c,
+ tests/string/memmove2.c, tests/string/memset.c,
+ tests/string/strcat1.c, tests/string/strcat2.c,
+ tests/string/strchr.c, tests/string/strcmp1.c,
+ tests/string/strcmp2.c, tests/string/strcoll1.c,
+ tests/string/strcpy1.c, tests/string/strcpy2.c,
+ tests/string/strcspn.c, tests/string/strlen.c,
+ tests/string/strncat1.c, tests/string/strncat2.c,
+ tests/string/strncpy1.c, tests/string/strncpy2.c,
+ tests/string/strpbrk.c, tests/string/strrchr.c,
+ tests/string/strspn.c, tests/string/strstr.c, tests/string/strtok.c,
+ tests/string/strxfrm1.c, tests/string/strxfrm2.c, tests/time/clock.c:
+
+ Update tests to "do the right thing" with all configuration settings
+
+
+Sun Jun 21 04:54:14 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/setjmp/setjmp.c:
+ I have to be careful not to use setjmp() in a way not exactly
+ defined by the standard, so make sure I do, and add a comment
+ documenting these ways.
+
+ Also ensure this test does the right thing in all configurations
+
+Sun Jun 21 04:38:15 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Add extra checks for invalid configurations
+ Also make default for thread safety OFF
+
+ * src/clibincl/clibdata.inl:
+ Adjust indentation
+
+ * src/stdio/output/vfnprintf.cxx:
+ Make printf of -0.0 floating point do the right thing
+
+Sun Jun 21 04:28:00 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/snprintf.cxx, src/stdio/common/sprintf.cxx,
+ src/stdio/common/sscanf.cxx, src/stdio/input/fscanf.cxx,
+ src/stdio/input/scanf.cxx, src/stdio/output/fnprintf.cxx,
+ src/stdio/output/fprintf.cxx, src/stdio/output/printf.cxx:
+
+ Had to remove inline functions with varargs. Which means separating
+ out each function from stdioinlines.cxx into a separate file, as they
+ no longer belong there. So all the above files were created.
+
+ * include/stdio.inl, src/PKGconf.mak,
+ src/stdio/common/stdioinlines.cxx:
+ Changed to take account of the above
+
+
+Sun Jun 21 03:58:42 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdio/sprintf1.c, tests/stdio/sprintf2.c:
+ Update with floating-point tests. Also make sure they DTRT in all
+ configurations
+
+Fri Jun 19 19:33:06 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/support/clibdata.cxx:
+ accidentally initialised stdin/out/err twice
+
+Fri Jun 19 19:09:29 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/support/clibdata.cxx:
+ Another typo
+
+Fri Jun 19 18:59:07 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/support/clibdata.cxx:
+ Missing #endif typo
+
+Fri Jun 19 18:51:42 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/support/clibdata.cxx:
+ Fix initialisation of static data members. Unsure how it worked at
+ all before!
+
+Fri Jun 19 18:01:01 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/stdio.inl:
+ puts should check whether fputs returns non-negative, rather than
+ non-zero
+
+Fri Jun 19 17:22:52 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/clibdata.inl:
+ Make inclusion of get_errno_p conditional on thread-safety
+
+Wed Jun 17 10:55:32 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/input/vfscanf.cxx:
+ Add weak alias of vfscanf() to _vfscanf()
+
+Wed Jun 17 09:10:41 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/fflush.cxx:
+ Initialise err to silence compiler warning
+
+Wed Jun 17 08:59:20 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * Most important is the addition of floating point support in
+ src/stdio/output/vfnprintf.cxx and src/stdio/input/vfscanf.cxx. This
+ also required the addition of atof() and strtod() in stdlib which is
+ definitely no bad thing! Other than that...
+
+ * Fix a whole bunch of stuff I messed up first time round. Also the
+ sprintf and sscanf tests are included again.
+
+Tue Jun 16 16:38:02 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/PKGconf.mak:
+ Typo with not putting comment character at the beginning. Sigh.
+
+Tue Jun 16 14:53:09 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/PKGconf.mak:
+ Forgot to (temporarily) remove fputs test for now
+
+Mon Jun 15 20:40:03 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ Everything to do with stdio has almost completely changed, so there's
+ not much point documenting individual changes.
+
+Mon Jun 15 18:36:01 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdlib/malloc2.c:
+ Stop it moaning quite as much when it fails by making it exit sooner
+
+ * tests/time/clock.c :
+ This isn't a compound testcase
+
+Thu Jun 11 17:59:13 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/assert.h
+ Reverse sense of NDEBUG ifdef, that was left in accidentally due
+ to testing
+
+Thu Jun 11 04:58:08 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/errno.h, include/string.h, src/clibincl/stringsupp.hxx:
+ Modify as I've now added an "error" package which defines the error
+ codes and strerror()
+
+ * src/errno/strerror.cxx:
+ Moved to new error package and thus deleted
+
+Wed Jun 10 18:37:37 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/assert.h:
+ create this header and add assert() function
+
+Wed Jun 10 16:23:57 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/stdlib.h, src/clibincl/stdlibsupp.hxx, src/stdlib/malloc.cxx:
+ Add malloc(), calloc() and free() functions
+
+ * include/pkgconf/libc.h:
+ Add malloc memory pool size option
+
+ * tests/stdlib/malloc1.c, tests/stdlib/malloc2.c:
+ new tests for malloc
+
+ * src/PKGconf.mak, tests/PKGconf.mak:
+ Update for new files
+
+Wed Jun 10 15:06:16 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/setjmp/setjmp.c:
+ Add another test
+
+Tue Jun 9 18:20:31 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Add some setjmp config's and a macro for the noreturn attribute
+
+ * include/setjmp.h, include/setjmp.inl, src/clibincl/setjmpsupp.hxx,
+ src/setjmp/longjmp.cxx, tests/setjmp/setjmp.c:
+ Added to implement and test setjmp() and longjmp()
+
+ * src/PKGconf.mak, tests/PKGconf.mak:
+ Update for newly added files
+
+Thu Jun 4 01:29:18 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/string/memchr.cxx, src/string/memcmp.cxx, src/string/strcat.cxx,
+ src/string/strchr.cxx, src/string/strcmp.cxx, src/string/strcpy.cxx,
+ src/string/strlen.cxx, src/string/strncat.cxx,
+ src/string/strncmp.cxx, src/string/strncpy.cxx:
+ Rename CYGIMP_LIBC_PREFER_SMALL_TO_FAST to
+ CYGIMP_LIBC_STRING_PREFER_SMALL_TO_FAST
+
+ Also use slower but smaller version when __OPTIMIZE_SIZE__ is
+ defined (which comes from using gcc -Os)
+
+Fri May 29 16:15:04 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/ctype.inl, src/ctype/isxdigit.cxx:
+ Fix bug that numerals aren't considered hex digits
+
+ * include/time.h:
+ Change clock_t and time_t to be signed so that they can accept -1, as
+ required by other libc functions
+
+ * src/clibincl/clibdata.hxx:
+ Fix typo that CYGIMP_LIBC_THREAD_SUPPORT should be ..._SAFETY
+ Also fix macro to allocate thread-specific data to not set variables
+ in a different stack-frame
+
+ * tests/ctype/ctype.c:
+ Fix some misunderstandings in tests, and add a few new ones
+
+ * tests/stdlib/qsort.c:
+ make ctr unsigned to prevent warnings
+
+ * tests/stdlib/strtol.c, tests/stdlib/strtoul.c:
+ Fix some misunderstandings in tests, and add a few new ones
+
+ * tests/string/strrchr.c:
+ Fix off by one error
+
+ * tests/string/strspn.c:
+ Fix case-sensitivity problem, and off-by-one error
+
+ * tests/string/strxfrm1.c:
+ Remove bogus bit of test that doesn't apply to strxfrm, and fix typo
+
+
+Fri May 22 16:33:04 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/PKGconf.mak
+ Remove CXXFLAGS line now that its redundant
+
+ * tests/everything!
+ Do a blitz change of all tests - break some of them down into
+ different files, add new tests, standardize format, fix bugs,
+ update for recent header file changes and much more!
+
+Wed May 20 17:50:04 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/PKGconf.mak:
+ interim checkin for different dir structure for Bart
+
+Fri May 15 20:30:46 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * Tidy up some loose ends I forgot: rename src/include directory to
+ src/clibincl. And add clibdata.inl and timesupp.hxx in there.
+
+Thu May 14 19:56:32 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * Basically everything has changed in the C library. Files have
+ been moved, renamed, deleted and reworked. This is a major
+ revision, and now starts from this new baseline rather than doing
+ incremental changes.
+
+Fri Apr 17 18:43:02 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/ECCconf.mak:
+ added for new build system (actually Bart did this, but didn't
+ update this ChangeLog)
+
+Fri Apr 17 15:03:25 1998 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * src/stdio/device/sim.cxx:
+ Make it build with CYG_EMPTY_STATEMENT; the unadorned one is being
+ removed.
+
+Thu Apr 16 00:24:24 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * All source files:
+ replace ECCIMP_LIBC_* conditional ifdef with CYGIMP_LIBC_*
+
+ * include/eccconf/libc.h:
+ improve comments and reorder a bit
+
+Wed Apr 8 14:35:20 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * Makefile.am, src/Makefile.am, tests/Makefile.am, configure.in:
+ many changes to integrate build structure from release tree
+
+ * src/ctype/Makefile.am, src/ctype/Makefile.in, src/errno/Makefile.am,
+ src/errno/Makefile.in, src/stdio/Makefile.am, src/stdio/Makefile.in,
+ src/stdio/common/Makefile.am, src/stdio/common/Makefile.in,
+ src/stdio/device/Makefile.am, src/stdio/device/Makefile.in,
+ src/stdio/output/Makefile.am, src/stdio/output/Makefile.in,
+ src/stdio/input/Makefile.am, src/stdio/input/Makefile.in,
+ src/stdlib/Makefile.am, src/stdlib/Makefile.in,
+ src/string/Makefile.am, src/string/Makefile.in,
+ src/support/Makefile.am, src/support/Makefile.in,
+ src/time/Makefile.am, src/time/Makefile.in:
+ Remove as they are now redundant with above changes
+
+ * include/Makefile.am:
+ Add to support above changes
+
+ * include/eccconf/libc.h:
+ Change include file for configuration from kernel to system
+
+ * src/include/kerndiag.hxx, src/stdio/device/kerndiag.cxx,
+ src/time/clockfn.cxx:
+ Change kernel include file to eccconf/kernel.h
+
+ * src/include/strngdev.h:
+ remove unnecessary kernel include
+
+ * Makefile.in, aclocal.m4, configure, src/Makefile.in,
+ tests/Makefile.in, include/Makefile.in:
+ regenerate
+
+Mon Apr 6 20:55:07 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdlib/abs.cxx, src/stdlib/atoi.cxx, src/stdlib/atol.cxx,
+ src/stdlib/div.cxx, src/stdlib/labs.cxx, src/stdlib/ldiv.cxx:
+ Separated out functions from stdlib.cxx into separate files
+
+ * src/stdlib/stdlib.cxx:
+ removed to be replaced by above files
+
+ * Makefile.am, src/stdlib/Makefile.am:
+ modified to support building above and not building stdlib.cxx
+
+ * src/support/tsd.cxx:
+ Remove unnecessary header file includes
+
+ * Makefile.in, src/stdlib/Makefile.in:
+ regenerated
+
+Mon Apr 6 19:19:42 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/support/tsd.cxx, include/eccconf/libc.h:
+ remove lame hack for tx39 compiler now that its fixed
+
+ * src/include/sim.hxx:
+ define constants as static to placate compiler
+
+Thu Apr 2 21:01:21 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/ctype/ctype.cxx:
+ deleted and separated out into below files
+
+ * src/ctype/isalnum.cxx, src/ctype/isalpha.cxx, src/ctype/iscntrl.cxx,
+ src/ctype/isdigit.cxx, src/ctype/isgraph.cxx, src/ctype/islower.cxx,
+ src/ctype/isprint.cxx, src/ctype/ispunct.cxx, src/ctype/isspace.cxx,
+ src/ctype/isupper.cxx, src/ctype/isxdigit.cxx, src/ctype/tolower.cxx,
+ src/ctype/toupper.cxx:
+ Separated out individual ctype functions from ctype.cxx into separate
+ files
+
+ * Makefile.am, src/ctype/Makefile.am:
+ modified to reflect above deletion/additions
+
+ * Makefile.in, src/ctype/Makefile.in:
+ regenerated
+
+Thu Apr 2 19:08:26 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/string/strxfrm.cxx: optimise using prefix increments
+
+Thu Apr 2 15:18:15 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/string/strchr.cxx: optimise setting of mask a little
+
+Thu Mar 26 14:07:01 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/support/tsd.cxx: fixed some typos
+
+Thu Mar 26 11:58:47 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/eccconf/libc.h, src/support/tsd.cxx:
+ Implement workaround for tx39 compiler bug.
+
+ * src/include/strsuppt.hxx:
+ remove prototypes for _memcpy() and _memset() as they are now in the
+ kernel
+
+Wed Mar 25 18:31:53 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * Makefile.am, src/string/Makefile.am: memcpy() and memset() are
+ now in the kernel so remove them from build
+ * include/string.h: add a comment to say as much
+ * Makefile.in, src/string/Makefile.in: regenerate
+
+Wed Mar 25 15:30:42 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdlib/_exit.cxx, src/include/file_if.inl:
+ Change _exit workaround to not cause a compiler optimisation
+ problem. Now just references _exit rather than calls it.
+
+Wed Mar 25 14:59:49 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/string/strxfrm.cxx: Fix bug causing tests to fail completely
+ for this function
+
+Wed Mar 25 12:55:53 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/include/sim.hxx: add types to constants (oops!)
+ * Makefile.am: link src/stdio/device/sim.cxx
+ * Makefile.in: regenerated
+
+Wed Mar 25 04:14:30 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/include/file_if.hxx, src/include/file_if.inl,
+ src/include/kerndiag.hxx, src/include/sim.hxx,
+ src/include/stdio_if.hxx, src/include/strngdev.hxx,
+ src/include/tsd.hxx, src/stdio/common/clearerr.cxx,
+ src/stdio/common/clearerr.cxx, src/stdio/common/feof.cxx,
+ src/stdio/common/ferror.cxx, src/stdio/common/file_if.cxx,
+ src/stdio/common/vsprintf.cxx,
+ src/stdio/device/kerndiag.cxx, src/stdio/device/sim.cxx,
+ src/stdio/device/strngdev.cxx, src/stdio/output/fputc.cxx,
+ src/stdio/output/fputs.cxx, src/stdio/output/puts.cxx,
+ src/stdio/output/vfnprintf.cxx, src/support/tsd.cxx:
+ Modified to support buffered reads including renaming
+ _EccInternalFileStruct to __EccStdioStream which is what affects
+ most of these files
+ * src/include/file_if.inl, src/stdio/common/file_if.cxx: added for
+ the above reason
+ * src/stdio/common/sscanf.cxx, src/stdio/input/vfscanf.cxx,
+ src/stdio/input/Makefile.am: added to provide sscanf() functionality
+ * include/ctype.h, include/stdio.h, include/stdlib.h,
+ include/string.h, include/eccconf/libc.h, src/ctype/ctype.cxx,
+ src/stdlib/stdlib.cxx, src/string/strcoll.cxx,
+ src/stdio/common/stdio.cxx:
+ rename *_INLINES macros with prefix CYG rather than ECC
+ * include/errno.h, src/errno/errno.cxx, src/errno/strerror.cxx:
+ rename ErrNo to _ErrNo and add EAGAIN and EWOULDBLOCK error codes
+ * configure.in, Makefile.am, src/stdio/Makefile.am,
+ src/stdio/input/Makefile.am: add support for building
+ file_if.cxx sscanf.cxx and vfscanf.cxx
+ * src/stdio/Makefile.in, src/stdio/common/Makefile.in,
+ src/stdio/input/Makefile.in, configure, Makefile.in: regenerated
+
+Tue Mar 24 19:51:40 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/time/clockfn.cxx, src/time/clock.cxx:
+ Renamed clock.cxx to clockfn.cxx (preserving CVS history)
+ * Makefile.am, src/time/Makefile.am: updated to reflect name change
+ * Makefile.in, src/time/Makefile.in: regenerated
+
+Tue Mar 24 16:28:06 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/ctype.inl: Swap around definitions to get right order so
+ inlining works
+
+Tue Mar 24 14:43:05 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/ctype.h, include/stdio.h, include/stdlib.h, include/string.h:
+ modify to only conditionally include inlines
+ * src/ctype/ctype.cxx, src/stdio/common/stdio.cxx,
+ src/stdlib/stdlib.cxx, src/string/strcoll.cxx,
+ src/ctype/Makefile.am: Add to provide real linkable alternatives
+ to inline functions
+ * Makefile.am, configure.in, src/Makefile.am,
+ src/stdio/common/Makefile.am, src/stdlib/Makefile.am,
+ src/string/Makefile.am: modified to support previous additions
+ * include/eccconf/libc.h: redefine inline macro to add extern inline,
+ and add conditional defines for inline functions. Also rename
+ space vs. speed macro to have CYG instead of ECC prefix
+ * include/stdio.inl: fix comment typo
+ * src/stdlib/qsort.cxx: fix to define inline functions properly
+ * src/string/memchr.cxx, src/string/memcmp.cxx, src/string/memcpy.cxx,
+ src/string/memset.cxx, src/string/strcat.cxx, src/string/strchr.cxx,
+ src/string/strcmp.cxx, src/string/strcpy.cxx, src/string/strlen.cxx,
+ src/string/strncat.cxx, src/string/strncmp.cxx,
+ src/string/strncpy.cxx
+ * Makefile.in, configure, src/Makefile.in, src/ctype/Makefile.in,
+ src/stdio/common/Makefile.in, src/stdlib/Makefile.in,
+ src/string/Makefile.in: regenerate
+
+
+Mon Mar 23 19:19:49 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdlib/_exit.cxx: added to support temporary _exit
+ * include/stdlib.h, include/stdlib.inl: added support for _exit and
+ added abs(), labs(), div() and ldiv() functions
+ * src/include/file_if.hxx: added support for _exit kludge
+ * src/stdlib/qsort.cxx: Added Berkeley copyright message
+ * src/time/clock.cxx: Include correct kernel config header as
+ CYG_CONFIGURATION rather than <config.h>
+ * Makefile.am src/stdlib/Makefile.am: added support for _exit
+ * Makefile.in, src/stdlib/Makefile.in: regenerated
+
+Mon Mar 23 14:41:07 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * Replace ECCPKG_ANSI_LIBC with CYGPKG_ANSI_LIBC in all source files
+
+Mon Mar 23 14:28:44 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/string.inl: add file to provide strcoll()
+ * include/string.h: include string.inl
+ * ctype.h: include ctype.inl (oops!)
+ * include/stdlib.h: include stdlib.inl (oops!)
+
+Mon Mar 23 13:30:38 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/ctype.h, include/ctype.inl: added to provide ANSI ctype
+ functionality
+ * include/stdlib.h, include/stdlib.inl, src/include/stdlibbsp.hxx,
+ src/stdlib/Makefile.am, src/stdlib/bsearch.cxx,
+ src/stdlib/qsort.cxx, src/stdlib/rand.cxx, src/stdlib/srand.cxx,
+ src/stdlib/strtol.cxx, src/stdlib/strtoul.cxx: Added to provide
+ many stdlib functions
+ * src/include/tsd.hxx: modified to support rand() random number
+ seed, and added some comments
+ * configure.in, Makefile.am, src/Makefile.am: modified to support
+ addition of above new sources
+ * include/eccconf/libc.h: Add extra helpful comments, and #include
+ kernel config file
+ * src/time/clock.cxx: #include clock.inl and fix to call
+ get_resolution() properly now
+ * Makefile.in, configure, src/Makefile.in, src/errno/Makefile.in,
+ src/stdio/Makefile.in, src/stdio/common/Makefile.in,
+ src/stdio/device/Makefile.in, src/stdio/output/Makefile.in,
+ src/stdlib/Makefile.in, src/strings/Makefile.in,
+ src/support/Makefile.in, src/time/Makefile.in,
+ tests/Makefile.in: regenerated
+
+
+Sun Mar 22 21:29:25 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/time.h, src/include/timesupp.hxx, src/time/clock.cxx,
+ src/time/Makefile.am: added to provide clock() function
+ * src/Makefile.am: modified to try to build in src/time directory
+ * include/eccconf/libc.h: added and is now the main configuration
+ file for this package
+ * acconfig.h, include/libcconf.h.in, include/stamp-h.in: removed
+ due to usage of libc.h above instead
+ * Almost all *.h, *.hxx and *.cxx: replaced LIBC_CONFIG_HEADER
+ defined include with simple <pkgconf/libc.h>
+ * configure.in: remove AM_CONFIG_HEADER of libcconf.h and
+ LIBC_CONFIG_HEADER definition. Also remove usage of builtin
+ memcpy() etc. from gcc, and generate src/time/Makefile
+ * Makefile.am: link in src/time/clock.o
+ * src/include/file_if.hxx, src/include/sim.hxx: use config header
+ to decide whether C library is to be used
+ * Makefile.in, aclocal.m4, configure, src/Makefile.in: regenerated
+
+Fri Mar 20 18:08:10 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/string/strxfrm.cxx: Fixed bug with ignoring terminating NULL
+
+1998-03-20 Chris Tarpy <ctarpy@bhaji.cygnus.co.uk>
+
+ * configure: - regenerated
+ * Makefile.am: - Support added for libc testcases
+ * Makefile.in: regenerated
+ * configure.in: set c compiler, descend test dir
+ * tests/Makefile.in: added
+ * tests/Makefile.am: added
+ * tests/tcdiag.cxx : added
+
+
+Thu Mar 19 11:41:56 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * Initial check-in of everything
+
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
diff --git a/ecos/packages/language/c/libc/signals/current/cdl/signals.cdl b/ecos/packages/language/c/libc/signals/current/cdl/signals.cdl
new file mode 100644
index 0000000..85e05ae
--- /dev/null
+++ b/ecos/packages/language/c/libc/signals/current/cdl/signals.cdl
@@ -0,0 +1,279 @@
+# ====================================================================
+#
+# signals.cdl
+#
+# C library signal related configuration data
+#
+# ====================================================================
+## ####ECOSGPLCOPYRIGHTBEGIN####
+## -------------------------------------------
+## This file is part of eCos, the Embedded Configurable Operating System.
+## Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+##
+## eCos is free software; you can redistribute it and/or modify it under
+## the terms of the GNU General Public License as published by the Free
+## Software Foundation; either version 2 or (at your option) any later
+## version.
+##
+## eCos 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 General Public License
+## for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with eCos; if not, write to the Free Software Foundation, Inc.,
+## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+##
+## As a special exception, if other files instantiate templates or use
+## macros or inline functions from this file, or you compile this file
+## and link it with other works to produce a work based on this file,
+## this file does not by itself cause the resulting work to be covered by
+## the GNU General Public License. However the source code for this file
+## must still be made available in accordance with section (3) of the GNU
+## General Public License v2.
+##
+## This exception does not invalidate any other reasons why a work based
+## on this file might be covered by the GNU General Public License.
+## -------------------------------------------
+## ####ECOSGPLCOPYRIGHTEND####
+# ====================================================================
+######DESCRIPTIONBEGIN####
+#
+# Author(s): jlarmour
+# Contributors:
+# Date: 2000-04-14
+#
+#####DESCRIPTIONEND####
+#
+# ====================================================================
+
+cdl_package CYGPKG_LIBC_SIGNALS {
+ display "ISO C library signal functions"
+ description "
+ This component controls signal functionality,
+ as implemented in ISO/IEC 9899:1990 chapter 7.7 with
+ the signal() and raise() functions. As well as
+ allowing a program to send itself signals, it is
+ also possible to cause hardware exceptions to
+ be signalled to the program in a similar way."
+ doc ref/libc.html
+ include_dir cyg/libc/signals
+ parent CYGPKG_LIBC
+ implements CYGINT_ISO_SIGNAL_NUMBERS
+ implements CYGINT_ISO_SIGNAL_IMPL
+ requires { CYGBLD_ISO_SIGNAL_NUMBERS_HEADER == \
+ "<cyg/libc/signals/signal.h>" }
+ requires { CYGBLD_ISO_SIGNAL_IMPL_HEADER == \
+ "<cyg/libc/signals/signal.h>" }
+ requires CYGPKG_ISOINFRA
+ compile raise.cxx siginit.cxx signal.cxx
+
+# ====================================================================
+
+ cdl_option CYGSEM_LIBC_SIGNALS_THREAD_SAFE {
+ display "Thread safe signals"
+ requires CYGPKG_KERNEL
+ default_value 1
+ description "
+ Because signal handlers are global, and not
+ thread-specific (as mandated by POSIX 1003.1)
+ it is possible for multiple threads to clash
+ and corrupt data if setting the same signal
+ handler at the same time. With this option
+ enabled, a kernel mutex will be used to protect
+ the shared data."
+ }
+
+ cdl_component CYGSEM_LIBC_SIGNALS_HWEXCEPTIONS {
+ display "Hardware exceptions cause signals"
+ flavor bool
+ requires CYGSEM_KERNEL_EXCEPTIONS_GLOBAL
+ requires CYGSEM_KERNEL_EXCEPTIONS_DECODE
+ default_value 0
+ description "
+ This causes hardware exceptions like
+ arithmetic exceptions (e.g. divide by zero)
+ or bad memory accesses to be passed through as
+ signals. It is thus possible for a program to
+ handle these exceptions in a generic way using
+ the appropriate signal handlers. The details of
+ exactly which exceptions are passed through
+ under what circumstances depend on the
+ underlying HAL implementation. Consequently it
+ must be remembered that signal handlers cannot
+ be guaranteed to be invoked in the expected
+ circumstances if you do not know about the
+ underlying HAL implementation - it is possible
+ that the architecture is unable to detect that
+ exception."
+
+ cdl_option CYGSEM_LIBC_SIGNALS_CHAIN_HWEXCEPTIONS {
+ display "Chain old exception handlers"
+ default_value 1
+ description "
+ When hardware exceptions are generated, it
+ is possible to chain into the old kernel exception
+ handler before calling any registered signal
+ handler. If this is not required, disable this
+ option and only the signal handler will be
+ called when this exception occurs. Disabling
+ this option will also save some space and code
+ usage."
+ }
+ }
+
+ cdl_component CYGPKG_LIBC_SIGNALS_INLINE {
+ display "Inline versions of functions"
+ flavor none
+ description "
+ Some functions can be made inline instead of
+ being function calls. These can be set here."
+
+ cdl_option CYGIMP_LIBC_SIGNALS_RAISE_INLINE {
+ display "raise()"
+ default_value 1
+ description "
+ Enabling this option makes raise() an inline function."
+ }
+
+ cdl_option CYGIMP_LIBC_SIGNALS_SIGNAL_INLINE {
+ display "signal()"
+ default_value 1
+ description "
+ Enabling this option makes signal() an inline function."
+ }
+ }
+
+ cdl_component CYGPKG_LIBC_SIGNALS_ERROR_HANDLING {
+ display "Error handling"
+ flavor none
+ description "
+ You may or may not want errno to be set by
+ certain functions. Not using errno could save
+ both space, code, and avoid worrying about
+ interactions between multiple threads when
+ setting it."
+
+ cdl_option CYGSEM_LIBC_SIGNALS_BAD_SIGNAL_FATAL {
+ display "Bad signal fatal"
+ requires CYGDBG_USE_ASSERTS
+ default_value 0
+ description "
+ Enabling this option will cause an assertion
+ failure if the signal handling code is
+ passed a bad signal. Otherwise an error will
+ be returned, or in the case of a
+ hardware-generated exception it will be silently
+ ignored."
+ }
+
+ cdl_option CYGSEM_LIBC_SIGNALS_RAISE_SETS_ERRNO {
+ display "raise() sets errno"
+ requires CYGINT_ISO_ERRNO
+ requires CYGINT_ISO_ERRNO_CODES
+ default_value 1
+ description "
+ You may or may not want errno to be set by
+ raise() on error conditions. Not using errno
+ could save both space, code, and avoid worrying
+ about interactions between multiple threads when
+ setting it. Strictly ISO C does not mandate
+ that errno be set by raise()."
+ }
+
+ cdl_option CYGSEM_LIBC_SIGNALS_SIGNAL_SETS_ERRNO {
+ display "signal() sets errno"
+ requires CYGINT_ISO_ERRNO
+ requires CYGINT_ISO_ERRNO_CODES
+ default_value 1
+ description "
+ You may or may not want errno to be set by
+ signal() on error conditions. Not using errno
+ could save both space, code, and avoid worrying
+ about interactions between multiple threads when
+ setting it. Strictly ISO C mandates
+ that errno be set by signal()."
+ }
+ }
+
+ cdl_component CYGPKG_LIBC_SIGNALS_TRACING {
+ display "Tracing"
+ flavor none
+ description "
+ These options control the trace output for the C
+ library internal signal implementation."
+
+ cdl_option CYGNUM_LIBC_SIGNALS_RAISE_TRACE_LEVEL {
+ display "Default trace level for raise()"
+ flavor data
+ legal_values 0 to 1
+ default_value 0
+ description "
+ This gives the default tracing level for the
+ raise() function. Higher numbers are more
+ verbose."
+ }
+
+ cdl_option CYGNUM_LIBC_SIGNALS_HWHANDLER_TRACE_LEVEL {
+ display "Default hardware exception handler trace level"
+ flavor data
+ legal_values 0 to 1
+ default_value 0
+ description "
+ This gives the default tracing level for the
+ hardware exception handler function (if enabled).
+ Higher numbers are more verbose."
+ }
+ }
+
+# ====================================================================
+
+ cdl_component CYGPKG_LIBC_SIGNALS_OPTIONS {
+ display "C library signal functions build options"
+ flavor none
+ no_define
+ description "
+ Package specific build options including control over
+ compiler flags used only in building this package,
+ and details of which tests are built."
+
+
+ cdl_option CYGPKG_LIBC_SIGNALS_CFLAGS_ADD {
+ display "Additional compiler flags"
+ flavor data
+ no_define
+ default_value { "" }
+ description "
+ This option modifies the set of compiler flags for
+ building the C library. These flags are used in addition
+ to the set of global flags."
+ }
+
+ cdl_option CYGPKG_LIBC_SIGNALS_CFLAGS_REMOVE {
+ display "Suppressed compiler flags"
+ flavor data
+ no_define
+ default_value { "" }
+ description "
+ This option modifies the set of compiler flags for
+ building the C library. These flags are removed from
+ the set of global flags if present."
+ }
+
+ cdl_option CYGPKG_LIBC_SIGNALS_TESTS {
+ display "C library signal function tests"
+ flavor data
+ no_define
+ calculated {
+ "tests/signal1"
+ . ((CYGSEM_LIBC_SIGNALS_HWEXCEPTIONS) ? " tests/signal2" : "")
+ }
+ description "
+ This option specifies the set of tests for the C library
+ signal functions."
+ }
+ }
+}
+
+# ====================================================================
+# EOF signals.cdl
diff --git a/ecos/packages/language/c/libc/signals/current/include/signal.h b/ecos/packages/language/c/libc/signals/current/include/signal.h
new file mode 100644
index 0000000..e04b450
--- /dev/null
+++ b/ecos/packages/language/c/libc/signals/current/include/signal.h
@@ -0,0 +1,151 @@
+#ifndef CYGONCE_LIBC_SIGNALS_SIGNAL_H
+#define CYGONCE_LIBC_SIGNALS_SIGNAL_H
+//========================================================================
+//
+// signal.h
+//
+// Definitions for ISO C and POSIX 1003.1 signals
+//
+//========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors:
+// Date: 2000-04-18
+// Purpose: Provides description of interface to ISO C and POSIX 1003.1
+// signal functionality
+// Description:
+// Usage: Do not include this file directly - use #include <signal.h>
+//
+//####DESCRIPTIONEND####
+//
+//========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libc_signals.h> // libc signals configuration
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+
+
+// TYPE DEFINITIONS
+
+// Integral type that can be accessed atomically - from ISO C 7.7
+typedef cyg_atomic sig_atomic_t;
+
+// Type of signal handler functions
+typedef void (*__sighandler_t)(int);
+
+
+
+// CONSTANTS
+
+// Signal handlers for use with signal(). We avoid 0 because in an embedded
+// system this may be e.g. start of ROM and thus a possible function pointer
+// for reset!
+
+#define SIG_DFL ((__sighandler_t) 1) // Default action
+#define SIG_IGN ((__sighandler_t) 2) // Ignore action
+#define SIG_ERR ((__sighandler_t)-1) // Error return
+
+// NB. We do not need to restrict SIG* definitions (e.g. by eliminating
+// POSIX signals) when using strict ISO C (permitted in 7.7)
+
+#define SIGNULL 0 // Reserved signal - do not use (POSIX 3.3.1.1)
+#define SIGHUP 1 // Hangup on controlling terminal (POSIX)
+#define SIGINT 2 // Interactive attention (ISO C)
+#define SIGQUIT 3 // Interactive termination (POSIX)
+#define SIGILL 4 // Illegal instruction (not reset when caught) (ISO C)
+#define SIGTRAP 5 // Trace trap (not reset when caught)
+#define SIGIOT 6 // IOT instruction
+#define SIGABRT 6 // Abnormal termination - used by abort() (ISO C)
+#define SIGEMT 7 // EMT instruction
+#define SIGFPE 8 // Floating Point Exception e.g. div by 0 (ISO C)
+#define SIGKILL 9 // Kill (cannot be caught or ignored) (POSIX)
+#define SIGBUS 10 // Bus error (POSIX)
+#define SIGSEGV 11 // Invalid memory reference (ISO C)
+#define SIGSYS 12 // Bad argument to system call (used by anything?)
+#define SIGPIPE 13 // Write on a pipe with no one to read it (POSIX)
+#define SIGALRM 14 // Alarm timeout (POSIX)
+#define SIGTERM 15 // Software termination request (ISO C)
+#define SIGUSR1 16 // Application-defined signal 1 (POSIX)
+#define SIGUSR2 17 // Application-defined signal 2 (POSIX)
+
+#define CYGNUM_LIBC_SIGNALS 18 // Maximum signal number + 1
+
+// FUNCTION PROTOTYPES
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+//===========================================================================
+
+// ISO C functions
+
+//////////////////////////////
+// signal() - ISO C 7.7.1 //
+//////////////////////////////
+//
+// Installs a new signal handler for the specified signal, and returns
+// the old handler
+//
+
+extern __sighandler_t
+signal(int __sig, __sighandler_t __handler);
+
+///////////////////////////
+// raise() - ISO C 7.7.2 //
+///////////////////////////
+//
+// Raises the signal, which will cause the current signal handler for
+// that signal to be called
+//
+
+extern int
+raise(int __sig);
+
+
+#ifdef __cplusplus
+} // extern "C"
+#endif
+
+#include <cyg/libc/signals/signal.inl>
+
+#endif // CYGONCE_LIBC_SIGNALS_SIGNAL_H multiple inclusion protection
+
+// EOF signal.h
diff --git a/ecos/packages/language/c/libc/signals/current/include/signal.inl b/ecos/packages/language/c/libc/signals/current/include/signal.inl
new file mode 100644
index 0000000..87e4eb8
--- /dev/null
+++ b/ecos/packages/language/c/libc/signals/current/include/signal.inl
@@ -0,0 +1,269 @@
+#ifndef CYGONCE_LIBC_SIGNALS_SIGNAL_INL
+#define CYGONCE_LIBC_SIGNALS_SIGNAL_INL
+//========================================================================
+//
+// signal.inl
+//
+// Inline functions for implementation of ISO C and POSIX signals
+//
+//========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2009 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors:
+// Date: 2000-04-18
+// Purpose: Implements required inline functions of ISO C and
+// POSIX 1003.1 signals
+// Description:
+// Usage: Do not include this file directly, instead use <signal.h>
+//
+//####DESCRIPTIONEND####
+//
+//========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libc_signals.h> // libc signals configuration
+
+// INCLUDES
+
+#include <signal.h> // Header for this file, just in case
+#include <cyg/infra/cyg_ass.h> // Assertion infrastructure
+#include <cyg/infra/cyg_trac.h> // Tracing infrastructure
+
+// GLOBALS
+
+extern __sighandler_t cyg_libc_signal_handlers[];
+#ifdef CYGDBG_USE_TRACING
+extern cyg_uint8 cyg_libc_signals_raise_trace_level;
+#endif
+
+// DEFINES
+
+// The following are overriden by the libc implementation to get a non-inline
+// version to prevent duplication of code
+#ifndef CYGPRI_LIBC_SIGNALS_RAISE_INLINE
+# define CYGPRI_LIBC_SIGNALS_RAISE_INLINE extern __inline__
+#endif
+
+#ifndef CYGPRI_LIBC_SIGNALS_SIGNAL_INLINE
+# define CYGPRI_LIBC_SIGNALS_SIGNAL_INLINE extern __inline__
+#endif
+
+// FUNCTION PROTOTYPES
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+// Default signal handler - SIG_DFL
+extern void cyg_libc_signals_default_handler(int __sig);
+
+#ifdef CYGSEM_LIBC_SIGNALS_THREAD_SAFE
+extern cyg_bool cyg_libc_signals_lock_do_lock(void);
+extern void cyg_libc_signals_lock_do_unlock(void);
+#endif
+
+// INLINE FUNCTIONS
+
+/////////////////////////////
+// cyg_libc_signals_lock() //
+/////////////////////////////
+
+extern __inline__ cyg_bool
+cyg_libc_signals_lock(void)
+{
+#ifdef CYGSEM_LIBC_SIGNALS_THREAD_SAFE
+ return cyg_libc_signals_lock_do_lock();
+#else
+ return true;
+#endif
+} // cyg_libc_signals_lock()
+
+///////////////////////////////
+// cyg_libc_signals_unlock() //
+///////////////////////////////
+
+extern __inline__ void
+cyg_libc_signals_unlock(void)
+{
+#ifdef CYGSEM_LIBC_SIGNALS_THREAD_SAFE
+ cyg_libc_signals_lock_do_unlock();
+#else
+ return;
+#endif
+} // cyg_libc_signals_unlock()
+
+// ISO C functions
+
+//////////////////////////////
+// signal() - ISO C 7.7.1 //
+//////////////////////////////
+
+
+#ifdef CYGIMP_LIBC_SIGNALS_SIGNAL_INLINE
+
+#ifdef CYGSEM_LIBC_SIGNALS_SIGNAL_SETS_ERRNO
+# include <errno.h> // errno
+#endif
+
+CYGPRI_LIBC_SIGNALS_SIGNAL_INLINE __sighandler_t
+signal(int __sig, __sighandler_t __handler)
+{
+ __sighandler_t __old_handler;
+ CYG_REPORT_FUNCNAMETYPE( "__signal", "returning %08x" );
+
+ CYG_REPORT_FUNCARG2( "signal number = %d, requested handler is at %08x",
+ __sig, __handler );
+
+ // check valid signal - raise should not raise the null signal either
+ if ( (__sig >= CYGNUM_LIBC_SIGNALS) || (__sig <= 0) ) {
+
+#ifdef CYGSEM_LIBC_SIGNALS_BAD_SIGNAL_FATAL
+ CYG_FAIL("__signal() passed bad signal number");
+#else
+# ifdef CYGSEM_LIBC_SIGNALS_SIGNAL_SETS_ERRNO
+ errno = EINVAL;
+# endif
+ return SIG_ERR;
+#endif
+ }
+
+ // paranoia
+ CYG_CHECK_DATA_PTR( cyg_libc_signal_handlers,
+ "signal handler array is invalid!" );
+ if ( (__handler != SIG_IGN) && (__handler != SIG_DFL) )
+ CYG_CHECK_FUNC_PTR( __handler, "__signal() passed invalid handler");
+
+ if (!cyg_libc_signals_lock()) {
+#ifdef CYGSEM_LIBC_SIGNALS_SIGNAL_SETS_ERRNO
+ errno = EINTR;
+#endif
+ return SIG_ERR;
+ } // if
+
+ __old_handler = cyg_libc_signal_handlers[__sig];
+ cyg_libc_signal_handlers[__sig] = __handler;
+
+ cyg_libc_signals_unlock();
+
+ CYG_REPORT_RETVAL( __old_handler );
+
+ return __old_handler;
+} // signal()
+#endif // ifdef CYGIMP_LIBC_SIGNALS_SIGNAL_INLINE
+
+
+///////////////////////////
+// raise() - ISO C 7.7.2 //
+///////////////////////////
+
+#ifdef CYGIMP_LIBC_SIGNALS_RAISE_INLINE
+
+#ifdef CYGSEM_LIBC_SIGNALS_RAISE_SETS_ERRNO
+# include <errno.h> // errno
+#endif
+
+CYGPRI_LIBC_SIGNALS_RAISE_INLINE int
+raise(int __sig)
+{
+ int __ret=0;
+ __sighandler_t __sigfun;
+
+ CYG_REPORT_FUNCNAMETYPE( "__raise", "returning %d" );
+
+ CYG_REPORT_FUNCARG1( "signal number = %d", __sig );
+
+ // check valid signal - raise should not raise the null signal either
+ if ( (__sig >= CYGNUM_LIBC_SIGNALS) || (__sig <= 0) ) {
+
+#ifdef CYGSEM_LIBC_SIGNALS_BAD_SIGNAL_FATAL
+ CYG_FAIL("__raise() passed bad signal number");
+#else
+# ifdef CYGSEM_LIBC_SIGNALS_RAISE_SETS_ERRNO
+ errno = EINVAL;
+# endif
+ return -1;
+#endif
+ }
+
+ // paranoia
+ CYG_CHECK_DATA_PTR( cyg_libc_signal_handlers,
+ "signal handler array is invalid!" );
+
+ if (!cyg_libc_signals_lock()) {
+#ifdef CYGSEM_LIBC_SIGNALS_RAISE_SETS_ERRNO
+ errno = EINTR;
+#endif
+ return -1;
+ } // if
+
+ __sigfun = cyg_libc_signal_handlers[__sig];
+
+ if ( __sigfun == SIG_DFL ) {
+ CYG_TRACE0(cyg_libc_signals_raise_trace_level,
+ "signal handler returned is SIG_DFL");
+ cyg_libc_signals_unlock();
+ cyg_libc_signals_default_handler(__sig);
+ } else if ( __sigfun == SIG_IGN ) {
+ CYG_TRACE0(cyg_libc_signals_raise_trace_level,
+ "signal handler returned is SIG_IGN");
+ cyg_libc_signals_unlock();
+ } else {
+ CYG_TRACE1(cyg_libc_signals_raise_trace_level,
+ "signal handler returned is at %08x", __sigfun);
+ // call the signal handler directly
+ cyg_libc_signal_handlers[__sig] = SIG_DFL;
+
+ cyg_libc_signals_unlock();
+ CYG_CHECK_FUNC_PTR( __sigfun, "returned signal handler invalid!");
+
+ (*__sigfun)(__sig);
+ }
+
+ CYG_REPORT_RETVAL( __ret );
+
+ return __ret;
+} // raise()
+#endif // ifdef CYGIMP_LIBC_SIGNALS_RAISE_INLINE
+
+
+#ifdef __cplusplus
+} // extern "C"
+#endif
+
+#endif // CYGONCE_LIBC_SIGNALS_SIGNAL_INL multiple inclusion protection
+
+// EOF signal.inl
diff --git a/ecos/packages/language/c/libc/signals/current/src/raise.cxx b/ecos/packages/language/c/libc/signals/current/src/raise.cxx
new file mode 100644
index 0000000..2d643cd
--- /dev/null
+++ b/ecos/packages/language/c/libc/signals/current/src/raise.cxx
@@ -0,0 +1,77 @@
+//========================================================================
+//
+// raise.cxx
+//
+// ISO C and POSIX 1003.1 signals implementation for raise()
+//
+//========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors:
+// Date: 2000-04-18
+// Purpose: Provide implementation of ISO C and POSIX 1003.1 raise()
+// Description: This file provides the linkable symbol version of raise()
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libc_signals.h> // libc signals configuration
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+
+// The following lines allow __raise() to be included non-inline which
+// actually defines it as a function here
+#define CYGPRI_LIBC_SIGNALS_RAISE_INLINE
+#ifndef CYGIMP_LIBC_SIGNALS_RAISE_INLINE
+# define CYGIMP_LIBC_SIGNALS_RAISE_INLINE
+#endif
+
+#include <signal.h> // Main signals definitions
+
+// GLOBALS
+
+#ifdef CYGDBG_USE_TRACING
+cyg_uint8
+cyg_libc_signals_raise_trace_level = CYGNUM_LIBC_SIGNALS_RAISE_TRACE_LEVEL;
+#endif
+
+// EOF raise.cxx
diff --git a/ecos/packages/language/c/libc/signals/current/src/siginit.cxx b/ecos/packages/language/c/libc/signals/current/src/siginit.cxx
new file mode 100644
index 0000000..6a7b47a
--- /dev/null
+++ b/ecos/packages/language/c/libc/signals/current/src/siginit.cxx
@@ -0,0 +1,438 @@
+//========================================================================
+//
+// siginit.cxx
+//
+// ISO C and POSIX 1003.1 signals implementation
+//
+//========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors:
+// Date: 2000-04-18
+// Purpose: Provide implementation of ISO C and POSIX 1003.1 signals
+// Description: This file initializes all hardware exceptions,
+// initializes the signal handler table and provides the
+// default action function for signals
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libc_signals.h> // libc signals configuration
+#include <pkgconf/isoinfra.h> // isoinfra defs, including CYGINT_ISO_EXIT
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include <signal.h> // Main signals definitions
+#include <cyg/infra/cyg_ass.h> // Assertion infrastructure
+#include <cyg/infra/cyg_trac.h> // Tracing infrastructure
+#include <stdlib.h> // exit()
+
+#ifdef CYGSEM_LIBC_SIGNALS_HWEXCEPTIONS
+# include <pkgconf/kernel.h> // required for kernel includes
+# include <cyg/kernel/except.hxx> // Kernel exception API
+# include <cyg/kernel/thread.hxx> // Cyg_Thread::self()
+# include <cyg/kernel/thread.inl> // inline definitions for above
+# include <cyg/kernel/intr.hxx> // Interrupt enable
+# include <cyg/hal/hal_intr.h> // HAL interrupt control
+#endif
+
+#ifdef CYGSEM_LIBC_SIGNALS_THREAD_SAFE
+# include <pkgconf/kernel.h> // required for kernel includes
+# include <cyg/kernel/mutex.hxx>
+#endif
+
+// TYPE DEFINITIONS
+
+// define dummy class to allow initialization of cyg_libc_signal_handlers
+
+class Cyg_libc_signals_dummy_init_class {
+public:
+ Cyg_libc_signals_dummy_init_class();
+};
+
+#ifdef CYGSEM_LIBC_SIGNALS_HWEXCEPTIONS
+
+struct exception_signal_mapping_t {
+ cyg_code exception;
+ int signal;
+};
+
+// EXTERNS
+
+extern cyg_exception_handler cyg_null_exception_handler;
+
+#endif // ifdef CYGSEM_LIBC_SIGNALS_HWEXCEPTIONS
+
+// GLOBALS
+
+// main signal handlers
+__sighandler_t cyg_libc_signal_handlers[CYGNUM_LIBC_SIGNALS];
+
+#ifdef CYGSEM_LIBC_SIGNALS_THREAD_SAFE
+Cyg_Mutex cyg_libc_signal_handlers_mutex CYG_INIT_PRIORITY(LIBC);
+#endif
+
+// STATICS
+
+// dummy object to invoke constructor
+static Cyg_libc_signals_dummy_init_class
+cyg_libc_signals_dummy_init_obj CYG_INIT_PRIORITY(LIBC);
+
+#ifdef CYGSEM_LIBC_SIGNALS_HWEXCEPTIONS
+
+# ifdef CYGDBG_USE_TRACING
+static cyg_uint8 cyg_libc_signals_hwhandler_trace_level =
+ CYGNUM_LIBC_SIGNALS_HWHANDLER_TRACE_LEVEL;
+# define TL1 (0 < cyg_libc_signals_hwhandler_trace_level)
+# endif
+
+# ifdef CYGSEM_LIBC_SIGNALS_CHAIN_HWEXCEPTIONS
+// old exception info so we can chain
+// FIXME: consider malloced linked list config option
+static struct {
+ cyg_exception_handler *old_handler;
+ CYG_ADDRWORD old_data;
+} exception_chain_data[CYGNUM_HAL_EXCEPTION_COUNT];
+# endif
+
+// struct that maps exceptions to signals
+static const struct exception_signal_mapping_t
+exception_signal_mapping[] = {
+
+#ifdef CYGNUM_HAL_EXCEPTION_DATA_ACCESS
+ {CYGNUM_HAL_EXCEPTION_DATA_ACCESS, SIGBUS},
+#endif
+#ifdef CYGNUM_HAL_EXCEPTION_DATA_WRITE
+ {CYGNUM_HAL_EXCEPTION_DATA_WRITE, SIGBUS},
+#endif
+#ifdef CYGNUM_HAL_EXCEPTION_CODE_ACCESS
+ {CYGNUM_HAL_EXCEPTION_CODE_ACCESS, SIGBUS},
+#endif
+#ifdef CYGNUM_HAL_EXCEPTION_CODE_WRITE
+ {CYGNUM_HAL_EXCEPTION_CODE_WRITE, SIGBUS},
+#endif
+#ifdef CYGNUM_HAL_EXCEPTION_CODE_EXECUTE
+ {CYGNUM_HAL_EXCEPTION_CODE_EXECUTE, SIGBUS},
+#endif
+#ifdef CYGNUM_HAL_EXCEPTION_IO_ACCESS
+ {CYGNUM_HAL_EXCEPTION_IO_ACCESS, SIGBUS},
+#endif
+#ifdef CYGNUM_HAL_EXCEPTION_IO_WRITE
+ {CYGNUM_HAL_EXCEPTION_IO_ACCESS, SIGBUS},
+#endif
+#ifdef CYGNUM_HAL_EXCEPTION_DATA_TLBMISS_ACCESS
+ {CYGNUM_HAL_EXCEPTION_DATA_TLBMISS_ACCESS, SIGSEGV},
+#endif
+#ifdef CYGNUM_HAL_EXCEPTION_DATA_TLBMISS_WRITE
+ {CYGNUM_HAL_EXCEPTION_DATA_TLBMISS_WRITE, SIGSEGV},
+#endif
+#ifdef CYGNUM_HAL_EXCEPTION_CODE_TLBMISS_ACCESS
+ {CYGNUM_HAL_EXCEPTION_CODE_TLBMISS_ACCESS, SIGSEGV},
+#endif
+#ifdef CYGNUM_HAL_EXCEPTION_CODE_TLBMISS_WRITE
+ {CYGNUM_HAL_EXCEPTION_CODE_TLBMISS_WRITE, SIGSEGV},
+#endif
+#ifdef CYGNUM_HAL_EXCEPTION_DATA_TLBERROR_ACCESS
+ {CYGNUM_HAL_EXCEPTION_DATA_TLBERROR_ACCESS, SIGSEGV},
+#endif
+#ifdef CYGNUM_HAL_EXCEPTION_DATA_TLBERROR_WRITE
+ {CYGNUM_HAL_EXCEPTION_DATA_TLBERROR_WRITE, SIGSEGV},
+#endif
+#ifdef CYGNUM_HAL_EXCEPTION_CODE_TLBERROR_ACCESS
+ {CYGNUM_HAL_EXCEPTION_CODE_TLBERROR_ACCESS, SIGSEGV},
+#endif
+#ifdef CYGNUM_HAL_EXCEPTION_CODE_TLBERROR_WRITE
+ {CYGNUM_HAL_EXCEPTION_CODE_TLBERROR_WRITE, SIGSEGV},
+#endif
+#ifdef CYGNUM_HAL_EXCEPTION_DATA_UNALIGNED_ACCESS
+ {CYGNUM_HAL_EXCEPTION_DATA_UNALIGNED_ACCESS, SIGBUS},
+#endif
+#ifdef CYGNUM_HAL_EXCEPTION_DATA_UNALIGNED_WRITE
+ {CYGNUM_HAL_EXCEPTION_DATA_UNALIGNED_WRITE, SIGBUS},
+#endif
+#ifdef CYGNUM_HAL_EXCEPTION_IO_UNALIGNED_ACCESS
+ {CYGNUM_HAL_EXCEPTION_IO_UNALIGNED_ACCESS, SIGBUS},
+#endif
+#ifdef CYGNUM_HAL_EXCEPTION_IO_UNALIGNED_WRITE
+ {CYGNUM_HAL_EXCEPTION_IO_UNALIGNED_WRITE, SIGBUS},
+#endif
+#ifdef CYGNUM_HAL_EXCEPTION_ILLEGAL_INSTRUCTION
+ {CYGNUM_HAL_EXCEPTION_ILLEGAL_INSTRUCTION, SIGILL},
+#endif
+#ifdef CYGNUM_HAL_EXCEPTION_INTERRUPT
+ {CYGNUM_HAL_EXCEPTION_INTERRUPT, SIGINT},
+#endif
+#ifdef CYGNUM_HAL_EXCEPTION_TRAP
+ {CYGNUM_HAL_EXCEPTION_TRAP, SIGTRAP},
+#endif
+#ifdef CYGNUM_HAL_EXCEPTION_DIV_BY_ZERO
+ {CYGNUM_HAL_EXCEPTION_DIV_BY_ZERO, SIGFPE},
+#endif
+#ifdef CYGNUM_HAL_EXCEPTION_OVERFLOW
+ {CYGNUM_HAL_EXCEPTION_OVERFLOW, SIGFPE},
+#endif
+#ifdef CYGNUM_HAL_EXCEPTION_BOUNDS
+ {CYGNUM_HAL_EXCEPTION_BOUNDS, SIGSEGV},
+#endif
+#ifdef CYGNUM_HAL_EXCEPTION_SINGLE_STEP
+ {CYGNUM_HAL_EXCEPTION_SINGLE_STEP, SIGTRAP},
+#endif
+#ifdef CYGNUM_HAL_EXCEPTION_INSTRUCTION_BP
+ {CYGNUM_HAL_EXCEPTION_INSTRUCTION_BP, SIGTRAP},
+#endif
+#ifdef CYGNUM_HAL_EXCEPTION_PERIPHERAL_BP
+ {CYGNUM_HAL_EXCEPTION_PERIPHERAL_BP, SIGTRAP},
+#endif
+#ifdef CYGNUM_HAL_EXCEPTION_DATA_BP
+ {CYGNUM_HAL_EXCEPTION_DATA_BP, SIGTRAP},
+#endif
+#ifdef CYGNUM_HAL_EXCEPTION_DEVELOPMENT_BP
+ {CYGNUM_HAL_EXCEPTION_DEVELOPMENT_BP, SIGTRAP},
+#endif
+#ifdef CYGNUM_HAL_EXCEPTION_STACK_OVERFLOW
+ {CYGNUM_HAL_EXCEPTION_STACK_OVERFLOW, SIGSEGV},
+#endif
+#ifdef CYGNUM_HAL_EXCEPTION_STACK_FAULT
+ {CYGNUM_HAL_EXCEPTION_STACK_FAULT, SIGSEGV},
+#endif
+#ifdef CYGNUM_HAL_EXCEPTION_PARITY
+ {CYGNUM_HAL_EXCEPTION_PARITY, SIGBUS},
+#endif
+#ifdef CYGNUM_HAL_EXCEPTION_FPU
+ {CYGNUM_HAL_EXCEPTION_FPU, SIGFPE},
+#endif
+#ifdef CYGNUM_HAL_EXCEPTION_FPU_NOT_AVAIL
+ {CYGNUM_HAL_EXCEPTION_FPU_NOT_AVAIL, SIGFPE},
+#endif
+#ifdef CYGNUM_HAL_EXCEPTION_FPU_OVERFLOW
+ {CYGNUM_HAL_EXCEPTION_FPU_OVERFLOW, SIGFPE},
+#endif
+#ifdef CYGNUM_HAL_EXCEPTION_FPU_UNDERFLOW
+ {CYGNUM_HAL_EXCEPTION_FPU_UNDERFLOW, SIGFPE},
+#endif
+#ifdef CYGNUM_HAL_EXCEPTION_FPU_DIV_BY_ZERO
+ {CYGNUM_HAL_EXCEPTION_FPU_DIV_BY_ZERO, SIGFPE},
+#endif
+#ifdef CYGNUM_HAL_EXCEPTION_SYSTEM_CALL
+ {CYGNUM_HAL_EXCEPTION_SYSTEM_CALL, SIGSYS},
+#endif
+ {0, 0} // dummy value to ensure compiler is happy
+};
+
+
+// FUNCTIONS
+
+/////////////////////////////////////////
+// cyg_libc_signals_hwexcept_handler() //
+/////////////////////////////////////////
+
+// FIXME: should be able to get this work with
+// CYGSEM_KERNEL_EXCEPTIONS_DECODE disabled as well as enabled
+static void
+cyg_libc_signals_hwexcept_handler( CYG_ADDRWORD data, cyg_code exception,
+ CYG_ADDRWORD info)
+{
+ int signal = (int)data;
+ int ret;
+
+ CYG_REPORT_FUNCNAME("cyg_libc_signals_hwexcept_handler");
+
+ CYG_REPORT_FUNCARG3( "data = %08x, exception = %d, info = %08x",
+ data, exception, info );
+
+#ifdef CYGSEM_LIBC_SIGNALS_BAD_SIGNAL_FATAL
+ CYG_PRECONDITION((signal > 0) && (signal < CYGNUM_LIBC_SIGNALS),
+ "Signal number not valid!");
+#endif
+
+// chain first as it may be more useful more low-level stuff needed
+#ifdef CYGSEM_LIBC_SIGNALS_CHAIN_HWEXCEPTIONS
+ // map exception to 0..CYGNUM_HAL_EXCEPTION_COUNT
+ exception -= CYGNUM_HAL_EXCEPTION_MIN;
+
+ // special case for null handler since it is only for uncaught exceptions
+
+ if (exception_chain_data[exception].old_handler !=
+ cyg_null_exception_handler) {
+ (*exception_chain_data[exception].old_handler)(
+ exception_chain_data[exception].old_data, exception, info);
+ CYG_TRACE0(TL1, "Chained exception handler returned");
+ } // if
+#endif
+
+#ifndef CYGSEM_LIBC_SIGNALS_BAD_SIGNAL_FATAL
+ // if not fatal, silently return
+ if ((signal <= 0) || (signal >= CYGNUM_LIBC_SIGNALS)) {
+ CYG_REPORT_RETURN();
+ return;
+ }
+#endif
+
+ CYG_TRACE0(TL1, "Enabling interrupts");
+ HAL_ENABLE_INTERRUPTS();
+
+ CYG_TRACE0(TL1, "Raising signal");
+ ret = raise(signal);
+
+ if (ret) {
+ CYG_TRACE1(TL1, "raise() returned non-zero value %d!!!", ret);
+ } // if
+
+ CYG_REPORT_RETURN();
+} // cyg_libc_signals_hwexcept_handler()
+
+
+//////////////////
+// reg_except() //
+//////////////////
+
+static void inline
+reg_except( cyg_code exception, int signal )
+{
+ Cyg_Thread::self()->register_exception(
+ exception, &cyg_libc_signals_hwexcept_handler, (CYG_ADDRWORD)signal,
+#ifdef CYGSEM_LIBC_SIGNALS_CHAIN_HWEXCEPTIONS
+ &exception_chain_data[exception -
+ CYGNUM_HAL_EXCEPTION_MIN].old_handler,
+ &exception_chain_data[exception - CYGNUM_HAL_EXCEPTION_MIN].old_data
+#else
+ NULL, NULL
+#endif
+ );
+
+} // reg_except();
+
+#endif // ifdef CYGSEM_LIBC_SIGNALS_HWEXCEPTIONS
+
+///////////////////////////////////////////////////
+// Cyg_libc_signals_dummy_init_class constructor //
+///////////////////////////////////////////////////
+
+Cyg_libc_signals_dummy_init_class::Cyg_libc_signals_dummy_init_class()
+{
+ cyg_ucount8 i;
+
+ CYG_REPORT_FUNCNAME("Cyg_libc_signals_dummy_init_class constructor");
+
+ // FIXME: some should be SIG_IGN?
+ for (i=0; i<CYGNUM_LIBC_SIGNALS; i++)
+ cyg_libc_signal_handlers[i] = SIG_DFL;
+
+#ifdef CYGSEM_LIBC_SIGNALS_HWEXCEPTIONS
+ // go through the entire array of exceptions, _but_ subtract 1 for
+ // the dummy at the end
+ for (i=0; i < (sizeof(exception_signal_mapping) /
+ sizeof(exception_signal_mapping_t) - 1); i++) {
+ CYG_ASSERT( (exception_signal_mapping[i].exception <=
+ CYGNUM_HAL_EXCEPTION_MAX) &&
+ (exception_signal_mapping[i].exception >=
+ CYGNUM_HAL_EXCEPTION_MIN),
+ "Asked to register bad exception");
+
+ CYG_ASSERT( (exception_signal_mapping[i].signal > 0) &&
+ (exception_signal_mapping[i].signal <
+ CYGNUM_LIBC_SIGNALS), "Asked to register bad signal" );
+
+ reg_except( exception_signal_mapping[i].exception,
+ exception_signal_mapping[i].signal);
+ }
+#endif
+
+ CYG_REPORT_RETURN();
+} // Cyg_libc_signals_dummy_init_class() constructor
+
+
+////////////////////////////////////////
+// cyg_libc_signals_default_handler() //
+////////////////////////////////////////
+
+// Default signal handler - SIG_DFL
+externC void
+cyg_libc_signals_default_handler(int sig)
+{
+ CYG_REPORT_FUNCNAME( "cyg_libc_signals_default_handler" );
+
+ CYG_REPORT_FUNCARG1( "signal number = %d", sig );
+
+#if CYGINT_ISO_EXIT
+ exit(1000 + sig); // FIXME
+#else
+ CYG_FAIL("Default signal handler called - no exit available");
+#endif
+
+ CYG_REPORT_RETURN();
+} // cyg_libc_signals_default_handler()
+
+#ifdef CYGSEM_LIBC_SIGNALS_THREAD_SAFE
+/////////////////////////////////////
+// cyg_libc_signals_lock_do_lock() //
+/////////////////////////////////////
+
+externC cyg_bool
+cyg_libc_signals_lock_do_lock(void)
+{
+ cyg_bool ret;
+ CYG_REPORT_FUNCNAMETYPE("cyg_libc_signals_lock_do_lock", "returning %d");
+
+ ret = cyg_libc_signal_handlers_mutex.lock();
+
+ CYG_REPORT_RETVAL(ret);
+
+ return ret;
+} // cyg_libc_signals_lock_do_lock()
+
+///////////////////////////////////////
+// cyg_libc_signals_lock_do_unlock() //
+///////////////////////////////////////
+
+externC void
+cyg_libc_signals_lock_do_unlock(void)
+{
+ CYG_REPORT_FUNCNAME("cyg_libc_signals_lock_do_unlock");
+
+ cyg_libc_signal_handlers_mutex.unlock();
+
+ CYG_REPORT_RETURN();
+} // cyg_libc_signals_lock_do_unlock()
+
+#endif // ifdef CYGSEM_LIBC_SIGNALS_THREAD_SAFE
+
+// EOF siginit.cxx
diff --git a/ecos/packages/language/c/libc/signals/current/src/signal.cxx b/ecos/packages/language/c/libc/signals/current/src/signal.cxx
new file mode 100644
index 0000000..7e3793e
--- /dev/null
+++ b/ecos/packages/language/c/libc/signals/current/src/signal.cxx
@@ -0,0 +1,70 @@
+//========================================================================
+//
+// signal.cxx
+//
+// ISO C and POSIX 1003.1 signals implementation
+//
+//========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors:
+// Date: 2000-04-18
+// Purpose: Provide implementation of ISO C and POSIX 1003.1 signals
+// Description: This file provides the linkable symbol version of raise()
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libc_signals.h> // libc signals configuration
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+
+// The following lines allow __raise() to be included non-inline which
+// actually defines it as a function here
+#define CYGPRI_LIBC_SIGNALS_SIGNAL_INLINE
+#ifndef CYGIMP_LIBC_SIGNALS_SIGNAL_INLINE
+# define CYGIMP_LIBC_SIGNALS_SIGNAL_INLINE
+#endif
+
+#include <signal.h> // Main signals definitions
+
+// EOF signal.cxx
diff --git a/ecos/packages/language/c/libc/signals/current/tests/signal1.c b/ecos/packages/language/c/libc/signals/current/tests/signal1.c
new file mode 100644
index 0000000..43f04e4
--- /dev/null
+++ b/ecos/packages/language/c/libc/signals/current/tests/signal1.c
@@ -0,0 +1,220 @@
+//========================================================================
+//
+// signal1.c
+//
+// ISO C signal handling test
+//
+//========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors:
+// Date: 2000-04-18
+// Purpose: Test signal functionality
+// Description: This file contains a number of tests for ISO C signal
+// handling
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libc_signals.h> // libc signals configuration
+
+// INCLUDES
+
+#include <pkgconf/system.h>
+#ifdef CYGPKG_ISOINFRA
+# include <pkgconf/isoinfra.h>
+#endif
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include <cyg/infra/testcase.h> // Test infrastructure
+#include <signal.h> // Signal functions
+#include <setjmp.h> // setjmp(), longjmp()
+#include <stdlib.h> // abort()
+
+// STATICS
+
+static int state;
+static jmp_buf jbuf;
+
+// FUNCTIONS
+
+static void
+myhandler1(int signal)
+{
+ CYG_TEST_INFO("myhandler1 called");
+ ++state;
+} // myhandler1()
+
+static void
+myhandler2(int signal)
+{
+ CYG_TEST_INFO("myhandler2 called");
+ ++state;
+ longjmp(jbuf, 1);
+} // myhandler2()
+
+#ifndef CYGPKG_LIBC_STARTUP
+void cyg_user_start(void)
+#else
+int
+main( int argc, char *argv[] )
+#endif
+{
+ __sighandler_t handler1;
+ int rc;
+
+ // special callout to request GDB to alter its handling of signals
+ CYG_TEST_GDBCMD("handle SIGTERM nostop");
+ CYG_TEST_GDBCMD("handle SIGABRT nostop");
+
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for C "
+ "library signal functions");
+
+ // Test 1
+
+ CYG_TEST_INFO("Test 1");
+ state = 1;
+ handler1 = signal(SIGTERM, &myhandler1);
+
+ CYG_TEST_PASS_FAIL(handler1 == SIG_DFL,
+ "SIGTERM handler initialized to default");
+
+ rc = raise(SIGTERM);
+
+ CYG_TEST_PASS_FAIL(0==rc, "raise(SIGTERM) did not return error");
+
+ CYG_TEST_PASS_FAIL(2==state, "SIGTERM handler returned correctly");
+
+ // Test 2
+
+ CYG_TEST_INFO("Test 2");
+
+ state = 2;
+ handler1 = signal(SIGTERM, &myhandler2);
+
+ CYG_TEST_PASS_FAIL(handler1 == SIG_DFL,
+ "SIGTERM handler reset to default after test 1");
+
+ handler1 = signal(SIGTERM, &myhandler1);
+
+ CYG_TEST_PASS_FAIL(handler1 == &myhandler2,
+ "SIGTERM handler was set correctly");
+
+ rc = raise(SIGTERM);
+
+ CYG_TEST_PASS_FAIL(0==rc, "raise(SIGTERM) did not return error");
+
+ CYG_TEST_PASS_FAIL(3==state, "SIGTERM handler returned correctly");
+
+ // Test 3
+
+ CYG_TEST_INFO("Test 3");
+
+ handler1 = signal(SIGTERM, &myhandler2);
+
+ CYG_TEST_PASS_FAIL(handler1 == SIG_DFL,
+ "SIGTERM handler reset to default after test 2");
+
+ handler1 = signal(SIGTERM, SIG_DFL);
+
+ CYG_TEST_PASS_FAIL(handler1 == &myhandler2,
+ "SIGTERM handler was set correctly");
+
+ // Test 4
+
+ CYG_TEST_INFO("Test 4");
+
+ state = 4;
+ handler1 = signal(SIGTERM, SIG_IGN);
+
+ CYG_TEST_PASS_FAIL(handler1 == SIG_DFL,
+ "SIGTERM handler was set correctly after test 3");
+ rc = raise(SIGTERM);
+
+ CYG_TEST_PASS_FAIL(0==rc, "raise(SIGTERM) did not return error");
+
+ CYG_TEST_PASS_FAIL(4==state, "SIGTERM ignored");
+
+ // Test 5
+
+ CYG_TEST_INFO("Test 5");
+
+ state = 5;
+ handler1 = signal(SIGTERM, &myhandler2);
+
+ // SIG_IGN doesn't reset back to SIG_DFL after a raise()
+ CYG_TEST_PASS_FAIL(handler1 == SIG_IGN,
+ "SIGTERM handler was set correctly after test 4");
+
+ if (0==setjmp(jbuf)) {
+ raise(SIGTERM);
+ CYG_TEST_FAIL("raise returned");
+ }
+
+ CYG_TEST_PASS_FAIL(6==state, "SIGTERM handler returned correctly");
+
+#if defined(CYGINT_ISO_ENVIRON) && (CYGINT_ISO_ENVIRON > 0)
+ // Test 6
+
+ CYG_TEST_INFO("Test 6");
+
+ state = 6;
+ handler1 = signal(SIGABRT, &myhandler2);
+
+ CYG_TEST_PASS_FAIL(handler1 == SIG_DFL,
+ "SIGABRT handler initialized to default");
+
+ if (0==setjmp(jbuf)) {
+ abort();
+ CYG_TEST_FAIL("abort returned");
+ }
+
+ CYG_TEST_PASS_FAIL(7==state, "SIGABRT handler returned correctly");
+#else
+ CYG_TEST_INFO("skipping abort() test, function not implemented");
+#endif
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for C "
+ "library signal functions");
+
+} // main()
+
+// EOF signal1.c
diff --git a/ecos/packages/language/c/libc/signals/current/tests/signal2.c b/ecos/packages/language/c/libc/signals/current/tests/signal2.c
new file mode 100644
index 0000000..c935dd4
--- /dev/null
+++ b/ecos/packages/language/c/libc/signals/current/tests/signal2.c
@@ -0,0 +1,302 @@
+//========================================================================
+//
+// signal2.c
+//
+// ISO C signal handling test
+//
+//========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors:
+// Date: 2000-04-18
+// Purpose: Test hardware signal functionality
+// Description: This file contains a number of tests for ISO C signal
+// handling when used with hardware exceptions
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/system.h>
+#include <pkgconf/libc_signals.h> // C library signals configuration
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include <cyg/infra/testcase.h> // Test infrastructure
+
+#ifdef CYGSEM_LIBC_SIGNALS_HWEXCEPTIONS
+
+#include <cyg/hal/hal_intr.h> // exception ranges &
+ // HAL_VSR_SET_TO_ECOS_HANDLER
+
+#include <signal.h> // Signal functions
+#include <setjmp.h> // setjmp(), longjmp()
+
+// STATICS
+
+static int state;
+static jmp_buf jbuf;
+#endif
+
+// FUNCTIONS
+
+#ifdef CYGSEM_LIBC_SIGNALS_HWEXCEPTIONS
+
+static void
+myhandler(int sig)
+{
+ __sighandler_t handler1;
+
+ CYG_TEST_INFO("myhandler() called");
+ ++state;
+
+ handler1 = signal(sig, &myhandler);
+
+ CYG_TEST_PASS_FAIL(handler1 == SIG_DFL,
+ "handler reset itself to default");
+
+ longjmp(jbuf, 1);
+} // myhandler()
+
+static void
+cause_memerror(void)
+{
+#ifdef CYGPKG_HAL_I386
+
+ // In the x86 architecture, although we have the DATA_ACCESS
+ // exception available, it is not possible to provoke it using the
+ // normal code of this test. This is because the normal segments we
+ // have installed in the segment registers cover all of memory. Instead we
+ // set GS to a descriptor that does not cover 0xF0000000-0xFFFFFFFF and
+ // poke at that.
+
+ __asm__ ( "movw $0x20,%%ax\n"
+ "movw %%ax,%%gs\n"
+ "movl %%gs:0xF0000000,%%eax\n"
+ :
+ :
+ : "eax"
+ );
+
+#else
+ volatile int x;
+ volatile CYG_ADDRESS p=(CYG_ADDRESS) &state;
+
+ do {
+ // do a read which prevents us accidentally writing over something
+ // important. Make it misaligned to increase the chances of an
+ // exception happening
+ x = *(volatile int *)(p+1);
+ p += (CYG_ADDRESS)0x100000;
+ } while(p != 0);
+#endif
+} // cause_memerror()
+
+// num must always be 0 - do it this way in case the optimizer tries to
+// get smart
+static int
+cause_fpe(int num)
+{
+ double a;
+
+ a = 1.0/num; // Depending on FPU emulation and/or
+ // the FPU architecture, this may
+ // cause an exception.
+ // (float division by zero)
+
+ return ((int)a)/num; // This may cause an exception if
+ // the architecture supports it.
+ // (integer division by zero).
+} // cause_fpe()
+
+volatile int tmp;
+
+#endif
+
+
+#ifndef CYGPKG_LIBC_STARTUP
+void cyg_user_start(void)
+#else
+int
+main( int argc, char *argv[] )
+#endif
+{
+#ifdef CYGSEM_LIBC_SIGNALS_HWEXCEPTIONS
+ __sighandler_t handler1;
+
+ // special callout to request GDB to alter its handling of signals
+ CYG_TEST_GDBCMD("handle SIGBUS nostop");
+ CYG_TEST_GDBCMD("handle SIGSEGV nostop");
+ CYG_TEST_GDBCMD("handle SIGILL nostop");
+ CYG_TEST_GDBCMD("handle SIGFPE nostop");
+ CYG_TEST_GDBCMD("handle SIGSYS nostop");
+#endif // ifdef CYGSEM_LIBC_SIGNALS_HWEXCEPTIONS
+
+ CYG_TEST_INIT();
+
+#ifdef CYGSEM_LIBC_SIGNALS_HWEXCEPTIONS
+ // Avoid compiler warnings if tests are not applicable.
+ if (0) cause_memerror();
+ if (0) cause_fpe(0);
+#endif
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for C "
+ "library signal functions");
+
+// Now reset the exception handlers various to eCos handlers so that we
+// have control; this is the target side equivalent of the CYG_TEST_GDBCMD
+// lines above:
+#ifdef HAL_VSR_SET_TO_ECOS_HANDLER
+ // Reclaim the VSR off CygMon possibly
+#ifdef CYGNUM_HAL_EXCEPTION_DATA_ACCESS
+ HAL_VSR_SET_TO_ECOS_HANDLER( CYGNUM_HAL_EXCEPTION_DATA_ACCESS, NULL );
+#endif
+#ifdef CYGNUM_HAL_EXCEPTION_DATA_TLBMISS_ACCESS
+ HAL_VSR_SET_TO_ECOS_HANDLER( CYGNUM_HAL_EXCEPTION_DATA_TLBMISS_ACCESS, NULL );
+#endif
+#ifdef CYGNUM_HAL_EXCEPTION_DATA_UNALIGNED_ACCESS
+ HAL_VSR_SET_TO_ECOS_HANDLER( CYGNUM_HAL_EXCEPTION_DATA_UNALIGNED_ACCESS, NULL );
+#endif
+#ifdef CYGNUM_HAL_EXCEPTION_ILLEGAL_INSTRUCTION
+ HAL_VSR_SET_TO_ECOS_HANDLER( CYGNUM_HAL_EXCEPTION_ILLEGAL_INSTRUCTION, NULL );
+#endif
+#ifdef CYGNUM_HAL_EXCEPTION_DIV_BY_ZERO
+ HAL_VSR_SET_TO_ECOS_HANDLER( CYGNUM_HAL_EXCEPTION_DIV_BY_ZERO, NULL );
+#endif
+#ifdef CYGNUM_HAL_EXCEPTION_FPU
+ HAL_VSR_SET_TO_ECOS_HANDLER( CYGNUM_HAL_EXCEPTION_FPU, NULL );
+#endif
+#ifdef CYGNUM_HAL_EXCEPTION_FPU_DIV_BY_ZERO
+ HAL_VSR_SET_TO_ECOS_HANDLER( CYGNUM_HAL_EXCEPTION_FPU_DIV_BY_ZERO, NULL );
+#endif
+#endif
+
+#ifdef CYGSEM_LIBC_SIGNALS_HWEXCEPTIONS
+
+
+ // Test 1
+
+ CYG_TEST_INFO("Test 1");
+
+ handler1 = signal(SIGSEGV, &myhandler);
+
+ CYG_TEST_PASS_FAIL(handler1 == SIG_DFL,
+ "SIGSEGV handler initialized to default");
+
+
+ handler1 = signal(SIGBUS, &myhandler);
+
+ CYG_TEST_PASS_FAIL(handler1 == SIG_DFL,
+ "SIGBUS handler initialized to default");
+
+
+ handler1 = signal(SIGILL, &myhandler);
+
+ CYG_TEST_PASS_FAIL(handler1 == SIG_DFL,
+ "SIGILL handler initialized to default");
+
+ handler1 = signal(SIGSYS, &myhandler);
+
+ CYG_TEST_PASS_FAIL(handler1 == SIG_DFL,
+ "SIGSYS handler initialized to default");
+
+ handler1 = signal(SIGTRAP, &myhandler);
+
+ CYG_TEST_PASS_FAIL(handler1 == SIG_DFL,
+ "SIGTRAP handler initialized to default");
+
+ handler1 = signal(SIGFPE, &myhandler);
+
+ CYG_TEST_PASS_FAIL(handler1 == SIG_DFL,
+ "SIGFPE handler initialized to default");
+
+ // Test 2
+
+ CYG_TEST_INFO("Test 2");
+
+ state = 2;
+
+#if defined(CYGPKG_HAL_POWERPC_SIM)
+ // The exception generated by the SIM is not recognized by GDB.
+ // PR 19945 workaround.
+ CYG_TEST_PASS("Test 2 not applicable to PowerPC SIM");
+#else
+ if (0==setjmp(jbuf)) {
+ cause_memerror();
+ CYG_TEST_FAIL("Didn't cause exception");
+ }
+
+ CYG_TEST_PASS_FAIL(3==state, "handler returned correctly");
+#endif
+
+ // Test 3
+
+ CYG_TEST_INFO("Test 3");
+
+ state = 3;
+
+#ifdef CYGNUM_HAL_EXCEPTION_FPU_DIV_BY_ZERO
+
+ if (0==setjmp(jbuf)) {
+ // It is necessary to save the return value in a volatile
+ // variable, or GCC will get rid of the call.
+ tmp = cause_fpe(0);
+ CYG_TEST_FAIL("Didn't cause exception");
+ }
+
+ CYG_TEST_PASS_FAIL(4==state, "handler returned correctly");
+
+#else
+
+ CYG_TEST_INFO("Test 3 - provoke FP error - not supported");
+
+#endif
+
+#else
+ CYG_TEST_NA("Testing not applicable to this configuration");
+#endif
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for C "
+ "library signal functions");
+
+ return 0;
+} // main()
+
+// EOF signal2.c
diff --git a/ecos/packages/language/c/libc/startup/current/ChangeLog b/ecos/packages/language/c/libc/startup/current/ChangeLog
new file mode 100644
index 0000000..92863fd
--- /dev/null
+++ b/ecos/packages/language/c/libc/startup/current/ChangeLog
@@ -0,0 +1,120 @@
+2012-03-06 Grant Edwards <grant.b.edwards@gmail.com>
+
+ * src/abort.cxx (abort):
+ * src/exit.cxx (exit): Fix compiler warnings about unused 'rc'
+ variables. [ Bugzilla 1001506 ]
+
+2007-10-05 Jonathan Larmour <jifl@eCosCentric.com>
+
+ * src/main.cxx (main): Suspend main thread, rather than exit.
+ Thanks to Sergei Organov for the idea.
+
+2007-09-11 Andrew Lunn <andrew.lunn@ascom.ch>
+
+ * src/cstartup.cxx: Change the INIT priority of
+ cyg_libc_startup_obj so that it is always called after the thread
+ has been constructed. Reported by taiyun@sunnorth.com.cn
+
+2007-07-02 Gary Thomas <gary@mlbassoc.com>
+
+ * cdl/startup.cdl: Add (char *) casts to make GCC/4.2.x happy.
+
+2003-03-07 Jonathan Larmour <jifl@eCosCentric.com>
+
+ * src/mainthread.cxx: Align stack to relevant architecture alignment.
+
+2003-02-24 Jonathan Larmour <jifl@eCosCentric.com>
+
+ * cdl/startup.cdl: Fix doc link.
+
+2002-04-09 Jonathan Larmour <jlarmour@redhat.com>
+
+ * src/_exit.cxx (_exit): Assert on non-zero error.
+
+2001-10-09 Jonathan Larmour <jlarmour@redhat.com>
+
+ * src/invokemain.cxx (cyg_libc_invoke_main): CYGINT_ISO_PTHREAD_IMPL
+ needs #ifdef not #if now.
+
+2000-12-22 Jonathan Larmour <jlarmour@redhat.com>
+
+ * cdl/startup.cdl: Allow others to say whether main() can be invoked
+ elsewhere.
+ Use defaults for startup context implementor using above interface
+ rather than POSIX pthread package.
+ Allow main() stack to be visible for other implementors, except
+ when called from the init context since the stack size isn't used
+ there, or when the implementation says it doesn't use it.
+ Define an interface to express that the stack size option
+ isn't used in such cases.
+
+2000-10-12 Jonathan Larmour <jlarmour@redhat.com>
+
+ * cdl/startup.cdl (CYGSEM_LIBC_INVOKE_DEFAULT_STATIC_CONSTRUCTORS):
+ Special case for POSIX package startup since we know it calls
+ cyg_libc_invoke_main() rather than main directly.
+
+2000-08-07 Jonathan Larmour <jlarmour@redhat.co.uk>
+
+ * src/invokemain.cxx: Declare cyg_hal_stop_constructors
+
+2000-07-31 Jonathan Larmour <jlarmour@redhat.co.uk>
+
+ * src/cstartup.cxx: Fix typo
+
+2000-07-19 Jonathan Larmour <jlarmour@redhat.co.uk>
+
+ * cdl/startup.cdl:
+ Make a "radio button" choice between how main() gets invoked (eCos
+ thread vs. cyg_user_start vs. someone else doing it)
+
+ * src/mainthread.cxx: Move cyg_libc_dummy_constructor_class to
+ src/invokemain.cxx
+
+ * src/invokemain.cxx: Invoke pthread_exit() instead of exit() if
+ relevant
+
+ * src/cstartup.cxx:
+ Only fiddle with cyg_user_start() if
+ CYGSEM_LIBC_STARTUP_MAIN_INITCONTEXT defined
+
+2000-07-04 Jonathan Larmour <jlarmour@redhat.co.uk>
+
+ * src/abort.cxx: Fix configuration dependency on CYGINT_ISO_SIGNAL_IMPL
+
+2000-05-20 Jonathan Larmour <jlarmour@redhat.co.uk>
+
+ * cdl/startup.cdl (CYGSEM_LIBC_EXIT_STOPS_SYSTEM):
+ default to 0 always
+
+2000-05-02 Jonathan Larmour <jlarmour@redhat.co.uk>
+
+ * New package
+ Separated original libc out into separate packages on functional
+ boundaries.
+ Header files are now managed by isoinfra package
+ Plenty of cleanups done, but no major functionality changes
+
+//===========================================================================
+// ####GPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 or (at your option) any
+// later version.
+//
+// This program 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
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the
+// Free Software Foundation, Inc., 51 Franklin Street,
+// Fifth Floor, Boston, MA 02110-1301, USA.
+// -------------------------------------------
+// ####GPLCOPYRIGHTEND####
+//===========================================================================
diff --git a/ecos/packages/language/c/libc/startup/current/ChangeLog.libc b/ecos/packages/language/c/libc/startup/current/ChangeLog.libc
new file mode 100644
index 0000000..8809e93
--- /dev/null
+++ b/ecos/packages/language/c/libc/startup/current/ChangeLog.libc
@@ -0,0 +1,2735 @@
+This ChangeLog file is now obsolete. This is the original ChangeLog from when
+libc was one large package, before being separated. It is included for
+historical reasons.
+
+2000-04-05 Jesper Skov <jskov@redhat.com>
+
+ * src/time/settime.cxx:
+ * src/time/time.cxx:
+ Wallclock moved to io/.
+
+2000-03-28 John Dallaway <jld@cygnus.co.uk>
+
+ * cdl/string.cdl,
+ cdl/stdlib.cdl,
+ cdl/stdio.cdl,
+ cdl/libc.cdl:
+
+ Adjust documentation URLs.
+
+2000-03-27 Jesper Skov <jskov@redhat.com>
+
+ * src/clibincl/stream.inl (check_this): Use cyb_bool instead of bool.
+
+2000-03-06 Jesper Skov <jskov@redhat.com>
+
+ * tests/time/strftime.c (test): Adjust test to match below change.
+
+2000-03-02 Jonathan Larmour <jlarmour@redhat.co.uk>
+
+ * src/time/strftime.cxx (do_format): Make sure %m counts from
+ 1..12 rather than 0..11. Fix for case 103300
+
+2000-02-29 Jonathan Larmour <jlarmour@redhat.co.uk>
+
+ * src/stdio/output/vfnprintf.cxx: Correctly use 'n' parameter to
+ restrict length. Credit due to Andrew Lunn here as well.
+ Resolves 103057-CR-1
+
+ * tests/stdio/sprintf2.c (test):
+ Add snprintf tests to verify the correct behaviour of restricting
+ output length
+
+2000-02-10 Jesper Skov <jskov@redhat.com>
+
+ * tests/signal/signal2.c (main):
+ Also reclaim DATA_TLB_MISS vector if available.
+
+2000-01-31 Simon FitzMaurice <sdf@cygnus.co.uk>
+ * cdl/*.cdl:
+
+ Adjust help URLs in line with new doc layout.
+
+2000-01-28 Simon FitzMaurice <sdf@cygnus.co.uk>
+ * cdl/*.cdl:
+
+ Adjust help URLs in line with new doc layout.
+
+2000-01-19 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * cdl/*.cdl: Add descriptions to a number of options &c which were
+ lacking same, also tidied up other typos as noticed en passant.
+
+1999-11-11 Bart Veer <bartv@cygnus.co.uk>
+
+ * cdl/string.cdl:
+ Switch to a single boolean configuration option for code size vs.
+ speed optimization.
+
+1999-11-03 John Dallaway <jld@cygnus.co.uk>
+
+ * cdl/libc.cdl: Define tests.
+
+1999-10-19 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/output/vfnprintf.cxx: We can now remove Berkeley
+ advertising clause
+ * src/stdlib/div.cxx: ditto
+ * src/stdlib/ldiv.cxx: ditto
+ * src/stdlib/strtol.cxx: ditto
+ * src/stdlib/strtoul.cxx: ditto
+ * src/string/strtok.cxx: ditto
+
+1999-10-19 John Dallaway <jld@cygnus.co.uk>
+
+ * cdl/libc.cdl:
+
+ Define CDL options for package-specific CFLAGS.
+
+1999-10-08 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h (CYGNUM_LIBC_MAIN_THREAD_PRIORITY): Change
+ default to 10 to keep test farm happy
+ * cdl/startup.cdl: Likewise
+
+1999-10-07 John Dallaway <jld@cygnus.co.uk>
+
+ * cdl/stdlib.cdl, cdl/string.cdl:
+
+ Specify radio buttons using CDL interfaces.
+
+1999-10-06 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * cdl/stdio.cdl: Change default to /dev/ttydiag as per 1999-10-01
+ change below
+ * cdl/startup.cdl: Add new form CDL for the startup changes as
+ per 1999-10-05
+
+1999-10-05 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/libc.h: Add CYGSEM_LIBC_MAIN_STACK_FROM_SYSTEM to allow
+ the user to supply their own stack.
+ Rename CYGNUM_LIBC_MAIN_STACK_SIZE to
+ CYGNUM_LIBC_MAIN_DEFAULT_STACK_SIZE and reparent under
+ CYGSEM_LIBC_MAIN_STACK_FROM_SYSTEM
+ Add CYGNUM_LIBC_MAIN_THREAD_PRIORITY to provide main() thread
+ priority
+
+ * src/support/mainthread.cxx: Add support for user-supplied stack
+ Allow user to specify thread priority
+
+ These changes fix CR 101069
+
+1999-10-01 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h (CYGDAT_LIBC_STDIO_DEFAULT_CONSOLE): Change
+ default to /dev/ttydiag to get correct console-like behaviour
+ Also don't preclude use if haldiag package isn't included
+ (case 102065)
+
+1999-09-15 Jesper Skov <jskov@cygnus.co.uk>
+
+ * tests/signal/signal2.c (cause_fpe): Try both float and integer
+ division by zero.
+
+1999-09-10 Jesper Skov <jskov@cygnus.co.uk>
+
+ * src/stdlib/malloc.cxx (cyg_libc_get_malloc_pool): Added for
+ stress_threads test.
+
+1999-09-07 Jesper Skov <jskov@cygnus.co.uk>
+ PRs 20243, 20433
+ * tests/signal/signal2.c: Disabled test3 on ARM.
+
+1999-09-02 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * include/assert.h: Make the sense of NDEBUG correct; it is "set"
+ when NOT debugging. Fix for CR 101983-CR-1
+ See Stroustrup, "The C++ Programming Language."
+
+1999-08-18 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/fopen.cxx (_fopen): Set buffer size 0 when not
+ buffering
+ Fix for case 101868
+
+1999-08-17 John Dallaway <jld@cygnus.co.uk>
+
+ * cdl/stdlib.cdl, cdl/string.cdl:
+
+ Implement radio buttons using "FIXME radio" hack in
+ description field for now.
+
+1999-08-12 John Dallaway <jld@cygnus.co.uk>
+
+ * cdl/stdlib.cdl:
+ Take advantage of MACRONAME_ENUMVAL macros output by CDL.
+
+1999-08-06 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdio/sprintf2.c (test): Don't rely on 2.345 being exactly
+ representable in binary as a difference of 1 ulp will make it round
+ the wrong way.
+
+1999-07-16 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/input/fgetc.cxx:
+ Include outline versions of getc() (actually just a symbol alias for
+ fgetc() ) and getchar()
+ Some minor clean-ups
+ Add tracing/assertions
+
+ * src/stdio/input/fputc.cxx:
+ Likewise (except applied to putc() and putchar())
+
+ * src/stdio/common/stdioinlines.cxx (_puts):
+ Call fputc() not _fputc()
+
+ * src/clibincl/stdiosupp.hxx:
+ Remove now obsolete prototypes for _fgetc() and _fputc()
+
+ * include/stdio.h:
+ Don't bother with getc()/putc() macros any more, just call
+ them as functions
+ Include protos for getc(), putc(), getchar() and putchar() functions
+
+1999-06-21 Jesper Skov <jskov@cygnus.co.uk>
+
+ * tests/signal/signal2.c: Disabled test 3 for SH EDK7708.
+
+1999-06-11 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/stdio.h: Make FILEs array types so they won't be
+ given $gp relocations on MIPS targets
+
+1999-05-27 Jesper Skov <jskov@cygnus.co.uk>
+
+ * tests/time/ctime.c: Fixed compiler warning.
+
+1999-05-25 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/signal/signal2.c (main):
+ Update CYGPKG_HAL_TX39 -> CYGPKG_HAL_MIPS_TX39 due to recent MIPS
+ HAL changes
+ Fix for PR 20116
+
+1999-04-30 Jesper Skov <jskov@lassi.cygnus.co.uk>
+ PR 19945/19946 workaround
+ * tests/signal/signal2.c: Disabled test 3 for PowerPC sim.
+
+1999-04-19 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/time.inl:
+ Ensure all calls to cyg_libc_time_year_is_leap() are with the full
+ year, and not the direct contents of a struct tm, which are (year-1900)
+
+1999-04-19 Jesper Skov <jskov@cygnus.co.uk>
+ PR 19308, 19410, 19528
+ * tests/time/clock.c (test): Also disable data cache which may
+ affect timing when tracing/assertions are enabled.
+
+1999-04-15 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/stdiosupp.hxx:
+ Add prototype for new cyg_libc_stdio_flush_all_but() function
+
+ * src/clibincl/stream.hxx:
+ Don't include stdiosupp.hxx any more to prevent circular dependency,
+ therefore manually provide _setvbuf prototype
+ Make sure pkgconf/kernel.h is included before mutex.hxx
+
+ * src/clibincl/stream.inl (Cyg_StdioStream::set_error()):
+ Add missing unlock_me()
+
+ * src/stdio/common/fflush.cxx:
+ Separate most of code for fflush(NULL) into separate
+ cyg_libc_stdio_flush_all_but() function, which has the extra
+ capability of omitting one stream
+
+ * src/stdio/common/stderr.cxx:
+ * src/stdio/common/stdin.cxx:
+ * src/stdio/common/stdout.cxx:
+ * src/stdio/common/vsnprintf.cxx:
+ * src/stdio/common/vsscanf.cxx:
+ Add missing clibincl/stdiosupp.hxx include
+
+ * src/stdio/common/stream.cxx (Cyg_StdioStream::read()):
+ When reading, ensure we flush all output streams
+
+ * src/stdio/common/stream.cxx (Cyg_StdioStream::flush_output_unlocked):
+ Flush the device as well
+
+1999-04-15 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/streambuf.cxx (set_buffer):
+ * src/stdio/common/stdioinlines.cxx (_setbuf):
+ * src/clibincl/streambuf.inl:
+ * src/clibincl/streambuf.hxx:
+ * src/clibincl/stream.hxx (class Cyg_StdioStream):
+ * include/pkgconf/libc.h:
+ * include/stdio.inl (setbuf):
+ Fix dumb typo: BUFSIZE -> BUFSIZ
+ This fixes PR19837
+
+1999-04-15 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/stdioinlines.cxx (_setbuf):
+ * include/stdio.inl (setbuf):
+ Use _IONBF when buf==NULL, and _IOLBF otherwise.
+ Fix for PR 19836
+
+1999-04-15 John Dallaway <jld@cygnus.co.uk>
+
+ * include/pkgconf/libc.h: Tidy display string capitalization.
+
+1999-04-12 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Clarify CDL description of CYGNUM_LIBC_MALLOC_MEMPOOL_SIZE
+
+ * tests/signal/signal2.c: Try harder to generate an exception by
+ accessing a misaligned address
+ Don't handle SIGTRAP any more
+ Part of fix for PRs 19731/19607
+
+1999-04-07 Jesper Skov <jskov@cygnus.co.uk>
+ PR 19667
+ * src/support/mainthread.cxx:
+ Changed to use the new Cyg_Thread constructor.
+
+1999-04-07 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * tests/signal/signal2.c (main): Use new macro
+ HAL_VSR_SET_TO_ECOS_HANDLER if defined, to wrest control from
+ CygMon, for example, by reinstalling eCos' default VSRs for
+ exceptions that we are provoking.
+
+1999-03-29 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/signal/siginit.cxx: Include stdlib.h for exit()
+ Fix for PR 19720
+
+1999-03-29 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/time/clock.c (test): Disable instruction cache
+ Hopefully fixes PR 19308
+
+1999-03-29 Jesper Skov <jskov@cygnus.co.uk>
+
+ * tests/signal/signal2.c: Disabled test 3 for PPC as it cannot
+ trap division by zero.
+
+1999-03-26 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/support/main.cxx (main): Invoke cyg_user_start() if no kernel
+ Only sensible thing to do in our default main in a non-kernel config
+
+1999-03-25 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/time/time.c:
+ Increase MAX_TIMEOUT since the sparclite gets very close to overrunning
+ it even when working.
+ Should return -1 iff CYGSEM_LIBC_TIME_TIME_WORKING isn't defined
+ Cosmetic changes
+
+1999-03-25 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * tests/time/time.c (test): Take into account setting of
+ CYGSEM_LIBC_TIME_SETTIME_WORKING ie. does cyg_libc_time_settime()
+ work? If not, check that it returns an error.
+ This was exposed by the random combo in PR#19479.
+
+1999-03-23 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Rename CYGSEM_LIBC_RAND_SIMPLEST and CYGSEM_LIBC_RAND_KNUTH1 to
+ CYGIMP_...
+
+ Add another rand implementation CYGIMP_LIBC_RAND_SIMPLE1 which is
+ the default
+
+ Part of fix for PR 19562
+
+ * include/sys/cstartup.h:
+ Tidy and remove unnecessary dependencies
+
+ * src/stdlib/rand.cxx:
+ Rename algorithms from CYGSEM_... to CYGIMP_...
+ Add new "simple1" algorithm
+
+ * tests/ctype/ctype.c:
+ Tidy
+
+ * tests/stdlib/rand3.c:
+ Fix so that 0..RAND_MAX is split evenly over buckets, which it wasn't
+ before
+ Deal with case of RAND_MAX not being divisible by NUM_BUCKETS
+ exactly
+ Increase TEST_LENGTH to 200000 to provide more representative sample
+ Add CYG_TEST_INFO output to help ensure it doesn't time out
+ Tidy
+
+ * tests/stdlib/rand4.c:
+ Only fail if more than _two_ thirds (rather than one third) match.
+ This is because half would match for a perfectly random distribution
+ This is the rest of the fix for PR 19562
+ Cosmetic changes
+
+1999-03-22 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * src/support/mainthread.cxx (CYGNUM_LIBC_MAIN_STACK_SIZE):
+ Use CYGNUM_HAL_STACK_SIZE_TYPICAL for the stack size instead of
+ CYGNUM_HAL_MINIMUM_STACK_SIZE.
+
+1999-03-22 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/PKGconf.mak: Add -Wno-format when building strftime otherwise
+ it generates warnings for things that we do want to test (null
+ string, and %y format)
+
+1999-03-19 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h (CYGNUM_LIBC_TIME_DST_DEFAULT_STATE):
+ Put brackets back round negative number since sdf says the config
+ tool is fixed now (PR 19537)
+
+ Add new CYGSEM_LIBC_RAND_SIMPLEST and CYGSEM_LIBC_RAND_KNUTH1
+ options for different rand() algorithms in a so far failed attempt
+ to fix PR 19562
+
+ * src/stdlib/rand.cxx:
+ Add new optional algorithm from Knuth vol.2
+
+ * tests/stdlib/rand4.c:
+ Some tidies
+ Don't run test when using simplest algorithm
+
+ * tests/signal/signal2.c (main):
+ Don't try to make an FPE on tx39 - its possible to detect but requires
+ too much HAL work to be sensible
+
+1999-03-18 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/signal/siginit.cxx (cyg_libc_signals_hwexcept_handler):
+ Use HAL_ENABLE_INTERRUPTS() rather than kernel to enable interrupts
+
+1999-03-18 Mark Galassi <rosalia@cygnus.com>
+
+ * tests/PKGconf.mak (TESTS): added rand4 compilation.
+
+ * tests/stdlib/rand4.c: added this test for periodicity in the
+ least significant bit of rand().
+
+1999-03-18 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h: Remove CYGFUN_LIBC_TIME_POSIX dependency
+ on CYGPKG_LIBC_STDIO
+
+ * src/stdlib/itoa.cxx:
+ New file to convert integers to ascii
+
+ * include/stdlib.h:
+ Add proto for new cyg_libc_itoa() function
+
+ * include/time.inl:
+ Rework __asctime_r() to use memcpy() and cyg_libc_itoa() rather than
+ sprintf()
+
+ * src/PKGconf.mak:
+ Build stdlib/itoa.cxx
+
+ The above changes fix PR 19448
+
+1999-03-17 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/time.h: Add #define of __time_t_defined to placate newlib
+ if it is used by accident. This is just a temporary workaround though.
+
+1999-03-16 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * src/PKGconf.mak: Add compile option to step around ARM compiler bug.
+
+1999-03-16 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h (CYGNUM_LIBC_TIME_DST_DEFAULT_STATE):
+ Don't use parentheses for now
+
+ * src/stdio/common/stream.cxx (refill_read_buffer):
+ Silence bogus compiler warning
+
+1999-03-16 Jesper Skov <jskov@cygnus.co.uk>
+
+ * tests/signal/signal2.c (main): Enable SIGSEGV test for
+ i386/Linux.
+
+
+1999-03-15 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/signal/siginit.cxx (cyg_libc_signals_hwexcept_handler):
+ Only enable interrupts if they were disabled
+
+ * include/sys/timeutil.h:
+ * src/time/timeutil.cxx:
+ Add FIX ME line as a reminder that the workaround there can go away
+ in future
+
+ * include/pkgconf/libc.h:
+ Add proper define for CYGSEM_LIBC_EXIT_CALLS_FFLUSH
+ Put brackets round negative CYGNUM_LIBC_TIME_DST_DEFAULT_STATE define
+ Fix run time typo
+
+ * include/time.inl (__localtime_r):
+ Include sys/timeutil.h before this to get
+ cyg_libc_time_normalize_structtm()
+
+1999-03-12 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * include/sys/timeutil.h:
+ * src/time/timeutil.cxx: Remove 'const' from char arrays since
+ this fails [silently] on ARM when -fwritable-strings (PR19440)
+
+1999-03-12 Jesper Skov <jskov@cygnus.co.uk>
+
+ * tests/signal/signal2.c (main): Compiler warnings fix was
+ slightly broken.
+
+1999-03-12 Jesper Skov <jskov@cygnus.co.uk>
+ PR 19473
+ * tests/signal/signal2.c (main):
+ Disabling SIGTRAP handling on i386/Linux is not a good idea.
+1999-03-11 Jesper Skov <jskov@cygnus.co.uk>
+ PR 19473
+ * tests/signal/signal2.c:
+ Added compiler warnings fix.
+ Added N/A handling for i386/Linux.
+
+1999-03-10 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * include/pkgconf/libc.h: Force "haldiag" device to be present.
+ 'asctime' and friends need 'stdio' as well.
+
+ * include/time.inl: Fix syntax error on difftime() declaration.
+
+1999-03-08 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * src/clibincl/stream.hxx: <cyg/infra/cyg_ass.h> needed for this file.
+
+ * src/stdio/common/vsscanf.cxx (str_read): Fix problem with string
+ pointer [created by merge with new I/O package].
+
+1999-03-05 John Dallaway <jld@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Add legal values for CYGNUM_LIBC_TIME_STD_DEFAULT_OFFSET
+ and CYGNUM_LIBC_TIME_DST_DEFAULT_OFFSET.
+
+1999-03-05 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/time.inl (cyg_libc_time_year_is_leap):
+ Fix bug with modulo year 400
+ Fix typo in asctime_r macro
+ Fix gmtime_r, and mktime as a result of testing
+
+ * tests/time/asctime.c, tests/time/ctime.c, tests/time/gmtime.c,
+ tests/time/gmtime.c, tests/time/localtime.c, tests/time/mktime.c,
+ tests/time/strftime.c, tests/time/time.c:
+ New tests
+
+ * tests/PKGconf.mak:
+ Build above new tests
+
+ * include/pkgconf/libc.h:
+ Add reminder FIX ME about extra config option
+
+ * src/time/strftime.cxx:
+ Fix %w and %Y parameters as a result of testing
+
+ * src/time/timeutil.cxx:
+ Fix cyg_libc_time_normalize_structtm() as a result of testing
+ of mktime()
+
+ * tests/time/clock.c:
+ Reformat, remove obsolete bits and tidy
+
+ * include/time.h:
+ Add Cyg_libc_time_dst type and new functions
+ cyg_libc_time_setzoneoffsets(), cyg_libc_time_setdst(),
+ cyg_libc_time_getzoneoffsets(), cyg_libc_time_settime()
+
+ * include/time.inl:
+ Implement the above functions. This allows us to adjust for timezone
+ diffences and set the time.
+ Change localtime() to adjust for STD/DST
+ Change mktime() to adjust for STD/DST
+
+ * include/libc.h:
+ Add new config options CYGSEM_LIBC_TIME_SETTIME_WORKING
+ and component CYGPKG_LIBC_TIME_ZONES containing options
+ CYGNUM_LIBC_TIME_DST_DEFAULT_STATE,
+ CYGNUM_LIBC_TIME_STD_DEFAULT_OFFSET,
+ CYGNUM_LIBC_TIME_DST_DEFAULT_OFFSET
+
+ * src/strftime.cxx:
+ Adjust handling of %Z to _not_ deal with STD/DST
+
+ * src/time/settime.cxx:
+ New file to implement cyg_libc_time_settime()
+
+ * src/PKGconf.mak:
+ Build settime.cxx
+
+ * src/time/timeutil.cxx:
+ Supply outline versions of cyg_libc_time_setzoneoffsets(),
+ cyg_libc_time_setdst(), and cyg_libc_time_getzoneoffsets()
+ Add variables for STD/DST state
+ Some minor comment changes
+
+ * include/errno.h:
+ Use CYGBLD_ATTRIB_CONST instead of __attribute__((const)) directly
+
+ * include/signal.h:
+ Change format of function comment headers
+
+ * include/signal.inl:
+ Restrict errno.h inclusion to when its actually used
+ Fix a spelling typo
+
+ * include/stdlib.h:
+ Add CYGBLD_ATTRIB_CONST to abs, div, labs, ldiv
+
+ * include/stdlib.inl:
+ Reformat and tidy
+ Include new versions of div and ldiv which are more portable and
+ are cleanly rewritten so aren't covered by the BSD licence, which
+ is now removed
+
+ * src/stdlib/div.cxx, src/stdlib/ldiv.cxx:
+ Non-inline, non-BSD and portable versions of the new versions of div
+ and ldiv from stdlib.inl
+
+ * include/time.h:
+ Much reformatting, tidying and improving comments
+ Change CLOCKS_PER_SEC from 1000 to 1000000
+ Add new functions asctime_r, ctime_r, gmtime_r, localtime_r, clock,
+ difftime, mktime, time, asctime, ctime, gmtime, localtime, strftime
+ Include new time.inl file
+
+ * include/pkgconf/libc.h:
+ Add new options CYGSEM_LIBC_TIME_CLOCK_WORKING,
+ CYGSEM_LIBC_TIME_TIME_WORKING, CYGFUN_LIBC_TIME_POSIX,
+ CYGNUM_LIBC_TIME_CLOCK_TRACE_LEVEL, CYGIMP_LIBC_TIME_ASCTIME_INLINE,
+ CYGIMP_LIBC_TIME_CTIME_INLINE, CYGIMP_LIBC_TIME_DIFFTIME_INLINE,
+ CYGIMP_LIBC_TIME_GMTIME_INLINE, CYGIMP_LIBC_TIME_LOCALTIME_INLINE,
+ CYGIMP_LIBC_TIME_MKTIME_INLINE, CYGIMP_LIBC_TIME_ASCTIME_R_INLINE,
+ CYGIMP_LIBC_TIME_CTIME_R_INLINE, CYGIMP_LIBC_TIME_GMTIME_R_INLINE,
+ and CYGIMP_LIBC_TIME_LOCALTIME_R_INLINE
+
+ * time/asctime.cxx, time/asctime_r.cxx, time/clock.cxx, time/ctime.cxx,
+ time/ctime_r.cxx, time/difftime.cxx, time/gmtime.cxx,
+ time/gmtime_r.cxx, time/localtime.cxx, time/localtime_r.cxx,
+ time/mktime.cxx, time/strftime.cxx, time/time.cxx, time/timeutil.cxx,
+ include/time.inl:
+ New files to implement the new time functions. Many of them simply
+ provide the outline definitions, but the real body of the function
+ comes from time.inl
+
+ * src/PKGconf.mak:
+ Build new .cxx files
+
+ * src/clibincl/stdlibsupp.hxx:
+ Remove _div and _ldiv prototypes since they're no longer needed
+
+ * src/clibincl/timesupp.hxx:
+ Delete as its now obsolete
+
+ * src/time/clock.cxx:
+ Use new CYGSEM_LIBC_TIME_CLOCK_WORKING option to control whether it
+ just returns (clock_t)-1 or not.
+ Much reformatting and tidying
+ Change real imlpementation from _clock to __clock
+ Use CYGBLD_ATTRIB_WEAK_ALIAS now
+
+ * tests/stdlib/div.c, tests/stdlib/ldiv.c:
+ Add some extra tests for handling of negative numbers
+ Reformat and tidy a bit, including removing the test for CYGPKG_LIBC
+ since its now always defined if the test is to be compiled
+
+ * tests/time/clock.c:
+ Remove duplication CYG_TEST_INFO line
+ Check if unimplemented using "(clock_t)-1" and not just "-1"
+
+1999-03-04 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdlib/system.cxx:
+ Make sure system() is a weak alias for __system()
+
+ * include/pkgconf/libc.h: Rework CDL description for
+ CYGDAT_LIBC_STDIO_DEFAULT_CONSOLE and change its default to
+ "/dev/haldiag"
+
+ * src/stdio/common/stream.cxx:
+ Check that dev is valid when passed to stream constructor
+
+ * src/stdio/common/stdiosupp.cxx:
+ Tidy
+
+ * src/support/mainthread.cxx: Make this depend on
+ CYGSEM_LIBC_STARTUP_MAIN_THREAD rather than just CYGPKG_KERNEL
+
+1999-03-04 Gary Thomas <gthomas@cygnus.co.uk>
+
+ Merged in changes from 'ecos-new_devs-19990216-branch'
+
+ (1999-02-24 Jonathan Larmour <jlarmour@cygnus.co.uk>)
+
+ * src/stdio/common/stream.cxx:
+ Add "fix me" comments and remove a couple of commented out lines
+
+ * src/stdio/common/vsnprintf.cxx:
+ * src/stdio/common/vsscanf.cxx:
+ Revert to using pointer to string for private data, not just string.
+ This preserves the state across multiple calls
+
+ (1999-02-24 Gary Thomas <gthomas@cygnus.co.uk>)
+
+ * src/stdio/common/vsscanf.cxx:
+ * src/stdio/common/vsnprintf.cxx:
+ * src/stdio/common/stream.cxx:
+ * src/stdio/common/stdiosupp.cxx:
+ * src/stdio/common/fopen.cxx:
+ * src/clibincl/stream.inl:
+ * src/clibincl/stream.hxx:
+ * src/clibincl/stdiosupp.hxx:
+ * include/pkgconf/libc.h: Changes for new I/O system.
+
+1999-03-03 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdlib/atexit.c: Forgot to config atexit test for
+ CYGFUN_LIBC_ATEXIT option
+
+ * include/pkgconf/libc.h:
+ Require CYGVAR_KERNEL_THREADS_DATA for CYGSEM_LIBC_PER_THREAD_STRTOK
+ This fixes PR 19362
+ Require CYGPKG_KERNEL for thread safe streams
+ Also don't need "requires CYGPKG_KERNEL" for per-thread rand and errno
+ if we already require a finer granularity kernel option
+
+1999-02-25 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h: Fix CYGNUM_LIBC_MAIN_STACK_SIZE by changing
+ CYGPKG_LIBC_STARTUP_MAIN_THREAD -> CYGSEM_LIBC_STARTUP_MAIN_THREAD
+ Fix for PR 19304
+
+1999-02-23 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdlib/system.cxx: Add to implement trivial system() call
+ * include/stdlib.h: Add system() prototype
+ * src/PKGconf.mak: Build system.cxx
+
+ * tests/ctype/ctype.c, tests/i18n/setlocale.c, tests/setjmp/setjmp.c,
+ tests/signal/signal1.c, tests/signal/signal2.c,
+ tests/stdio/sprintf1.c, tests/stdio/sprintf2.c, tests/stdio/sscanf.c,
+ tests/stdio/stdiooutput.c, tests/stdlib/atexit.c,
+ tests/stdlib/atoi.c, tests/stdlib/atol.c, tests/stdlib/bsearch.c,
+ tests/stdlib/div.c, tests/stdlib/getenv.c, tests/stdlib/labs.c,
+ tests/stdlib/ldiv.c, tests/stdlib/malloc1.c, tests/stdlib/malloc2.c,
+ tests/stdlib/malloc3.c, tests/stdlib/qsort.c, tests/stdlib/rand1.c,
+ tests/stdlib/rand2.c, tests/stdlib/rand3.c, tests/stdlib/realloc.c,
+ tests/stdlib/srand.c, tests/stdlib/strtol.c, tests/stdlib/strtoul.c,
+ tests/string/memchr.c, tests/string/memcmp1.c,
+ tests/string/memcmp2.c, tests/string/memcpy1.c,
+ tests/string/memcpy2.c, tests/string/memmove1.c,
+ tests/string/memmove2.c, tests/string/memset.c,
+ tests/string/strcat1.c, tests/string/strcat2.c,
+ tests/string/strchr.c, tests/string/strcmp1.c,
+ tests/string/strcmp2.c, tests/string/strcoll1.c,
+ tests/string/strcpy1.c, tests/string/strcpy2.c,
+ tests/string/strcspn.c, tests/string/strlen.c,
+ tests/string/strncat1.c, tests/string/strncat2.c,
+ tests/string/strncpy1.c, tests/string/strncpy2.c,
+ tests/string/strpbrk.c, tests/string/strrchr.c,
+ tests/string/strspn.c, tests/string/strstr.c, tests/string/strtok.c,
+ tests/string/strxfrm1.c, tests/string/strxfrm2.c, tests/time/clock.c:
+ Use CYG_TEST_NA() macro for non-applicable test configurations
+
+1999-02-20 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/signal.h:
+ * include/signal.inl:
+ * src/signal/raise.cxx:
+ * src/signal/siginit.cxx:
+ * src/signal/signal.cxx:
+ * tests/signal/signal1.c
+ * tests/signal/signal2.c:
+ New files to implement ISO standard signals
+
+ * src/PKGconf.mak (TESTS):
+ * tests/PKGconf.mak (TESTS):
+ Update to build new files above
+
+ * include/stdlib.h:
+ * src/clibincl/stdlibsupp.hxx:
+ Comment and QA changes (including giving better names to some types)
+
+ * include/libc.h:
+ Add new configuration options for signals
+ Add new CYGSEM_LIBC_STARTUP_MAIN_THREAD option
+ Add a note to CYGNUM_LIBC_MAIN_STACK_SIZE option that it may be
+ overriden by HAL
+ Add new CYGFUN_LIBC_ATEXIT option and move ...ATEXIT_HANDLERS under
+ it
+ Add new CYGSEM_LIBC_EXIT_CALLS_FFLUSH option
+ Require CYGSEM_LIBC_STARTUP_MAIN_THREAD for "Invoke default static
+ constructors" option
+
+ * src/stdlib/atexit.cxx:
+ Support above CYGFUN_LIBC_ATEXIT and QA changes
+
+ * src/stdlib/exit.cxx:
+ Support for above new libc.h options, and some QA changes
+
+ * src/support/cstartup.cxx:
+ Add support for new CYGSEM_LIBC_STARTUP_MAIN_THREAD option
+
+ * src/support/mainthread.cxx:
+ Override main stack size if the HAL has a minimum
+
+ * src/string/strncpy.cxx:
+ Use improved algorithm for aligned copies - imported from newlib
+ QA changes
+
+ * src/stdlib/abort.cxx:
+ Support raise(SIGABRT), and some QA
+
+ * include/errno.h:
+ Add const attribute
+
+ * tests/stdlib/abs.c:
+ QA improvements
+
+1999-02-04 Jesper Skov <jskov@cygnus.co.uk>
+
+ * src/support/cstartup.cxx: Only define cyg_libc_main_thread when
+ the kernel is around.
+
+1999-02-01 Jesper Skov <jskov@cygnus.co.uk>
+
+ * tests/time/clock.c: Joined the two test/NOP checks into
+ one.
+ Increased tolerance in attempt to fix PRs 18737,18787,18846.
+ Fixed typo.
+
+1999-01-28 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/string/strtok.cxx:
+ * src/stdlib/rand.cxx:
+ Include <pkgconf/kernel.h> if we use kernel header files
+
+1999-01-25 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdio/sscanf.c (test):
+ CYGSEM_LIBC_STDIO_PRINTF_FLOATING_POINT should be
+ CYGSEM_LIBC_STDIO_SCANF_FLOATING_POINT
+ Fix for PR 18786
+
+ * src/string/strtok.cxx:
+ * src/stdio/common/stdiofiles.cxx:
+ * src/errno/errno.cxx:
+ * src/stdlib/rand.cxx:
+ Give mutex protection objects a libc constructor priority
+
+ * src/support/invokemain.cxx:
+ Add prototype for cyg_hal_invoke_constructors()
+
+ * src/support/mainthread.cxx:
+ Give cyg_libc_dummy_constructor_obj a libc constructor priority,
+ and make its class have a public constructor
+
+ * src/stdio/common/stderr.cxx:
+ * src/stdio/common/stdout.cxx:
+ * src/stdio/common/stdin.cxx:
+ Give cyg_libc_stdio_stdin/out/err static objects a libc constructor
+ priority
+
+ * src/clibincl/streambuf.hxx (class Cyg_StdioStreamBuffer):
+ * src/clibincl/stream.hxx (class Cyg_StdioStream):
+ Remove private copy constructor. Needed to make prioritised
+ static constructors work. Fix for PR 18898
+
+1999-01-22 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/errno/errno.cxx:
+ Include pkgconf/kernel.h otherwise it fails with per-thread errno
+ enabled
+
+ * include/pkgconf/libc.h:
+ Enable per-thread errno by default since that is what POSIX would
+ want
+
+ * tests/time/clock.c (test):
+ Placate compiler by initializing clock_first/second/third anyway,
+ even though they won't be in practice. This is only a test program
+ so adding an extra instruction doesn't matter.
+
+ * src/i18n/locale.cxx (_setlocale):
+ Placate compiler, since it is dumb, by nesting, not serializing, if's
+ This is an idempotent change, but screws up the formatting :-(.
+
+ * src/string/strpbrk.cxx (_strpbrk):
+ Change while loop to do loop to placate compiler. It'll even save an
+ instruction too (wow!)
+
+1999-01-22 John Dallaway <jld@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Add closing curly brace to CYGPKG_LIBC_STRING_STRTOK definition
+
+1999-01-21 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/errno.h:
+ Tidy up and add to header description
+ Change cyg_get_errno_p() to cyg_libc_get_errno_p()
+ Remove ifdef CYGPKG_LIBC
+
+ * include/sys/file_if.h:
+ Remove - move contents to stdio.h
+
+ * include/stdio.h:
+ Tidy up header description
+ Move FILE typedef here from sys/file_if.h
+ SEEK_SET, SEEK_CUR, SEEK_END defined to 0, 1, 2 respectively
+ for backwards compatibility with old UNIX
+ Change definitions of stdin/out/err to be addresses of FILE
+ globals - even though they're actually Cyg_StdioStream it'll work
+
+ * include/pkgconf/libc.h:
+ Make CYGPRI_LIBC_WEAK et al macros depend on new ones in infra
+ Reorganise trace options under the individual components they are
+ associated with.
+ Reorganise thread-safety options under the individual components
+ they are associated with.
+ Add new CYGSEM_LIBC_INVOKE_DEFAULT_STATIC_CONSTRUCTORS option
+ Misc. reformatting
+ Remove dependency on pkgconf/kernel.h - Configuration Tool will
+ generate check macros anyway.
+ Remove CYGPKG_LIBC_TRACE, CYGFUN_LIBC_strtok, CYGPKG_LIBC_RAND
+ options
+ Tidy up description header
+
+ * src/clibincl/clibdata.hxx:
+ * src/clibincl/clibdata.inl:
+ * src/support/clibdata.cxx:
+ Remove and instead rely on each component to initialise its own data
+
+ * src/clibincl/stdiofiles.hxx, src/clibincl/stdiofiles.inl:
+ New files to contain global file list and lock (if applicable).
+ Implemented as class with member access functions
+
+ * src/errno/errno.cxx:
+ Reorganise with self-contained per-thread data, if applicable
+ Remove ifdef CYGPKG_LIBC
+ Tidy up description header
+ Rename cyg_get_errno_p() to cyg_libc_get_errno_p()
+
+ * src/stdio/common/fclose.cxx:
+ * src/stdio/common/fflush.cxx:
+ * src/stdio/common/fopen.cxx:
+ * src/stdio/common/freopen.cxx:
+ Remove ifdef CYGPKG_LIBC
+ Use new global file access method from stdiofiles.hxx
+ Tidy up description header
+ Use new CYGBLD_ATTRIB_WEAK_ALIAS
+ Access errno "normally" rather than clibdata way
+
+ * src/stdio/common/stdin.cxx:
+ * src/stdio/common/stdout.cxx
+ * src/stdio/common/stderr.cxx:
+ New files. Implement Cyg_StdioStream objects for each stream. In
+ separate self-contained files so using one doesn't bring in the
+ others
+
+ * src/stdio/common/stdiofiles.cxx:
+ New file. Implements global files array and lock
+
+ * src/stdlib/_exit.cxx:
+ Tidy up description header
+ Remove ifdef CYGPKG_LIBC
+ Use infra CYGBLD* macros
+
+ * src/stdlib/malloc.cxx:
+ Tidy up description header
+ Remove ifdef CYGPKG_LIBC
+ Add pkgconf/kernel.h now that pkgconf/libc.h doesn't have it
+ Use infra CYGBLD* macros
+ Make pool visible externally with weak attribute and new name
+ cyg_libc_malloc_memorypool
+
+ * src/stdlib/rand.cxx:
+ * src/stdlib/strtok.cxx:
+ Reorganise with self-contained per-thread data, if applicable
+ Remove ifdef CYGPKG_LIBC
+ Tidy up description header
+ Use infra CYGBLD* macros
+
+ * src/support/cstartup.cxx:
+ Split into smaller files to make selective linking work better,
+ fix i386 port problem and make GDB happy
+
+ * src/support/environ.cxx:
+ * src/support/invokemain.cxx:
+ * src/support/main.cxx:
+ * src/support/mainthread.cxx:
+ New files from bits of the old cstartup.cxx
+ Add support for CYGSEM_HAL_STOP_CONSTRUCTORS_ON_FLAG
+
+ * src/PKGconf.mak:
+ Update to reflect file additions/deletion
+
+ * tests/stdlib/rand1.c:
+ * tests/stdlib/rand2.c:
+ * tests/stdlib/rand3.c:
+ * tests/stdlib/srand.c:
+ Make conform to coding standards
+ Remove ifdef CYGPKG_LIBC_RAND
+ Tidy up description header
+
+ * tests/string/strtok.c:
+ Make conform to coding standards
+ Remove ifdef CYGFUN_LIBC_strtok
+ Tidy up description header
+
+1999-01-15 Mark Galassi <rosalia@cygnus.com>
+
+ * tests/stdlib/getenv.c (main): added tests for the case in which
+ the user does not supply environ and in which the user supplies a
+ NULL environ.
+
+1999-01-15 Jesper Skov <jskov@cygnus.co.uk>
+
+ * src/support/cstartup.cxx: Added workaround for weak aliasing
+ problem in i386 gcc.
+
+
+1999-01-15 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * include/pkgconf/libc.h (CYGNUM_LIBC_MAIN_STACK_SIZE):
+ (CYGNUM_LIBC_MALLOC_MEMPOOL_SIZE): Change defaults to be
+ more reasonable on small systems.
+
+1999-01-04 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/support/clibdata.cxx:
+ Minor bug with environ not being initialised correctly by
+ default
+
+1998-12-24 Bart Veer <bartv@cygnus.co.uk>
+
+ * src/clibincl/stream.inl (Cyg_StdioStream):
+ check_this() member functions should now be const
+
+1998-12-22 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/string/memchr.cxx (_memchr):
+ treat search value parameter to memchr as an unsigned byte,
+ not a signed int - copied fix from newlib PR 18471
+
+1998-12-21 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdlib/realloc.c:
+ * tests/stdlib/malloc3.c:
+ * tests/stdlib/malloc2.c:
+ Warning cleanup
+
+1998-12-14 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdlib/malloc2.c, tests/stdlib/malloc3.c,
+ tests/stdlib/realloc.c:
+ Only run these tests when we have a coalescing memory allocator
+
+1998-12-14 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/stream.cxx:
+ Only check buffer init success if buffering
+
+ * src/stdio/common/streambuf.cxx (set_buffer):
+ Check for diff of requested size against buffer_size, not
+ get_buffer_size(), since this may return -1, which won't be
+ equal to size, and will cause malloc to be called
+
+1998-12-01 Jesper Skov <jskov@cygnus.co.uk>
+
+ * tests/stdlib/getenv.c (main): Don't declare variables when they
+ are not used.
+
+Thu Nov 26 17:59:12 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/string/strncpy1.c:
+ Fix off-by-one error since it called my_strcmp() and not
+ my_strncmp(), which meant in included the trailing NULL when it
+ shouldn't have.
+
+1998-11-26 Jesper Skov <jskov@cygnus.co.uk>
+
+ * src/stdlib/qsort.cxx (_qsort):
+ * src/stdlib/rand.cxx (_srand):
+ Changed CYG_REPORT_FUNCNAMETYPE to CYG_REPORT_FUNCNAME in void
+ functions.
+
+Mon Oct 26 18:49:00 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/support/cstartup.cxx (cyg_libc_dummy_main):
+ Silence compiler warning with cast of char * to CYG_ADDRWORD
+
+Wed Oct 28 17:31:21 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/time/clock.cxx (_clock):
+ Reorder scaling expression as it was both incorrect and risked
+ overflow.
+ Fix for PR 18076
+
+Mon Oct 19 14:40:06 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/stdio.h (EOF):
+ Change from -64 to (-1), to allow broken code to work :-/
+ Also change other negative defines to be within parentheses
+
+1998-10-19 Mark Galassi <rosalia@cygnus.com>
+
+ * include/pkgconf/libc.h: updated the doc URL
+
+Thu Oct 15 21:33:44 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/clibdata.hxx:
+ Only include kernel thread headers when we're in thread-safe mode
+
+ * src/time/clock.cxx:
+ Only include kernel clock headers if there's a kernel with the
+ right functionality available
+
+ * tests/time/clock.c:
+ Remove unnecessary inclusion of <pkgconf/kernel.h>
+
+ Above changes are required for PR 17229
+
+Wed Oct 14 16:38:55 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/clibdata.hxx, src/clibincl/clibdata.inl:
+ Conditionalise inclusion of clibincl/stdiosupp.hxx and
+ clibincl/stream.hxx. Tidying up PR 17502
+
+Wed Oct 14 14:08:56 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Rename CYGPKG_LIBC_STRING_OPTIMISATIONS to
+ CYGPKG_LIBC_STRING_OPTIMIZATIONS to make it truely merkin.
+
+Tue Oct 13 19:34:41 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h (CYGDAT_LIBC_ARGUMENTS):
+ Add a default argv[0] of "" as many programs assume argc>0
+ The standard allows argv[0] to be "" if the program name
+ is not available
+
+1998-09-26 Bart Veer <bartv@cygnus.co.uk>
+
+ * src/clibincl/stdiosupp.hxx:
+ PR 17502: this header file now does nothing if the stdio option
+ is disabled completely. This is the same behaviour is
+ clibincl/stream.hxx, although arguably the #ifdef protection
+ should happen wherever the header file is #include'd rather than
+ in the header file itself.
+
+ * src/clibincl/clibdata.hxx:
+ PR 17502: this header file still #include's internal stdio-related
+ header files and references the FILE structure, even if stdio is
+ disabled. There were some #ifdef's for CYGPKG_LIBC_STDIO already.
+ One more has been added for _fopen() and _fclose().
+
+1998-09-25 Bart Veer <bartv@cygnus.co.uk>
+
+ * src/clibincl/streambuf.inl (Cyg_StdioStreamBuffer):
+ PR 17487: Reorder the calls to initialize member fields, to
+ eliminate a compiler warning.
+
+Fri Sep 25 19:04:29 1998 Jonathan Larmour <jlarmour@peshwari.cygnus.co.uk>
+
+ * src/errno/errno.cxx, src/stdlib/bsearch.cxx,
+ src/stdlib/qsort.cxx, src/stdlib/rand.cxx, src/string/strtok.cxx,
+ src/time/clock.cxx:
+ Only define tracing variable and tracing level macro when
+ the relevant tracing level config options are set. Otherwise
+ keep the tracing level fixed at 0
+ Fix for PR 17476
+
+ * include/pkgconf/libc.h:
+ Define trace levels only if parent CYGPKG_LIBC_TRACE is defined
+ for consistency with Configuration Tool
+
+
+Fri Sep 25 17:24:45 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/stdioinlines.cxx:
+ Make definition of vscanf() dependent on CYGFUN_LIBC_STDIO_ungetc
+ otherwise _vfscanf() won't be compiled. This therefore would
+ cause a link fail iff selective linking is not enabled.
+ Fix for PR 17455
+
+Fri Sep 25 17:23:17 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdlib/rand.cxx:
+ Make compilation dependent on CYGPKG_LIBC_RAND
+ Fix for PR 17473
+
+ * tests/stdlib/srand.c:
+ Make definition of dummy test pass conditional on CYGPKG_LIBC_RAND
+ not being defined, as well as CYGPKG_LIBC
+ Caused compilation failure when testing PR 17473 fix
+
+Mon Sep 21 17:11:04 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdio/sscanf.c:
+ Make sscanf test conditional on CYGFUN_LIBC_STDIO_ungetc since
+ _vfscanf() only gets compiled if this is defined
+ Fix for PR 17346
+
+1998-09-20 Mark Galassi <rosalia@cygnus.com>
+
+ * include/pkgconf/libc.h: updated CDL doc strings.
+
+Fri Sep 18 22:18:47 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/clibdata.inl (get_errno_p):
+ Rather than this function only being available in thread-safe mode,
+ instead make what it returns be either the per-thread errno, or
+ global errno depending on the configuration.
+ Include <errno.h> (conditionally) to support this change
+
+Wed Sep 16 11:20:31 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Remove "fix me" comment which I forgot to remove before
+
+Tue Sep 15 19:27:57 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Updated descriptions and a few other minor things after review.
+ Notably though, the NDEBUG config option has been removed
+
+1998-09-15 Bart Veer <bartv@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ PR 17201: removed dependency on CYGPKG_KERNEL in the option
+ CYGNUM_LIBC_MAIN_STACK_SIZE, since the actual dependencies cannot
+ be expressed sensibly in the current system.
+
+1998-09-11 Bart Veer <bartv@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Sorting out dependencies for error package.
+
+1998-09-10 Mark Galassi <rosalia@cygnus.com>
+
+ * include/pkgconf/libc.h: started adding doc fields to the
+ cdl_package data, as a pilot for now.
+
+Wed Sep 9 17:41:23 1998 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Add option CYGIMP_LIBC_MALLOC_CXX_DELETE_CALLS_FREE to explicitly
+ control whether the empty delete functions (currently) in
+ kernel/.../common/delete.cxx are enabled; controls code bloat, see
+ the comments in delete.cxx.
+
+Fri Sep 4 16:43:38 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdio/stdiooutput.c:
+ Add a default CYG_TEST_PASS() to make sure the test infra doesn't
+ complain.
+ Also remove the unused string functionsa
+
+Fri Sep 4 15:43:48 1998 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * src/stdlib/exit.cxx (__libc_exit):
+ * src/stdlib/_exit.cxx (__libc__exit):
+ * src/stdlib/malloc.cxx (_free):
+ * src/stdlib/abort.cxx (abort):
+ * src/support/cstartup.cxx (invoke_main):
+ Tracing system asserted cos it was being called incorrectly; these
+ are void functions so you shouldn't give a type to the function
+ reporting call.
+
+Fri Sep 4 15:03:10 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Fix CYGDAT_LIBC_STDIO_DEFAULT_CONSOLE description to refer to
+ the table.cxx file, not table.h
+
+Fri Sep 4 14:38:52 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Add description for CYGDAT_LIBC_STDIO_DEFAULT_CONSOLE since
+ Proven won't be making any changes to the device driver
+ implementation after all.
+ Fix for PR 17148
+
+ * src/clibincl/stream.inl (set_position):
+ Remove "fix me" line. It is obvious that this will have to change
+ with a filesystem interface
+ Fix for PR 17147
+
+ * src/stdio/common/freopen.cxx:
+ Remove "fix me" - I know about this issue
+ Fix for PR 17145
+
+ * src/stdio/common/stream.cxx (read):
+ Remove "fix me" and change to use memcpy
+ Fix for PR 17144
+
+Fri Sep 4 14:36:47 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdio/stdiooutput.c:
+ Actually add it this time!
+
+Fri Sep 4 13:48:13 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdio/stdiooutput.c:
+ Add new tests for misc stdio output functions
+
+ * tests/PKGconf.mak:
+ Build stdiooutput.c test
+
+Fri Sep 4 12:52:10 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/stream.inl (write_byte):
+ Remove bogus assert
+
+ * tests/stdlib/getenv.c (main):
+ Check whether str is NULL before doing a strcmp()
+
+ * tests/stdio/sprintf2.c (main):
+ Reformat to 76 columns
+
+Fri Sep 4 02:10:54 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/stream.hxx, src/stdio/common/stream.cxx:
+ Add new peek_byte method to Cyg_StdioStream
+
+ * src/stdio/input/vfscanf.cxx (_vfscanf):
+ Fix up buffer access to work with new peek_byte method above
+ Fix for PR 16954
+
+Thu Sep 3 19:40:11 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdlib/rand1.c, tests/stdlib/rand2.c,
+ tests/stdlib/rand3.c:
+ Add extra check for CYGPKG_LIBC_RAND to decide whether the test
+ is applicable or not
+
+ * tests/stdlib/rand2.c (test):
+ Use CYGNUM_LIBC_RAND_SEED for default seed, not 1
+
+ * tests/string/strtok.c:
+ Add extra check for CYGFUN_LIBC_strtok to decide whether the
+ test is applicable or not
+
+Wed Sep 2 19:11:40 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/input/fread.cxx, src/stdio/output/fwrite.cxx:
+ Add fread() and fwrite() functions
+
+ * src/PKGconf.mak:
+ Build fread.cxx and fwrite.cxx from above
+
+ * src/stdio/common/stream.cxx:
+ Reformat to 76 columns
+ In write(), move initialisation of *bytes_written to start
+ In read(), move initialisation of *bytes_read to start
+
+ * include/stdio.h:
+ Reformat to 76 columns
+
+ Replace all references to the ANSI
+ standard to instead by the ISO C standard
+
+ Add commented argument names for "documentation"
+
+ Add fread() and fwrite() prototypes
+
+ * src/clibincl/stdiosupp.hxx:
+ Copy the above changes from stdio.h, and add _fread() and _fwrite()
+ prototypes
+
+ * src/stdio/output/fputs.cxx, src/stdio/input/fgets.cxx:
+ Reformat to 76 columns
+
+Wed Sep 2 15:41:15 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/input/vfscanf.cxx:
+ Reformat to 76 columns
+
+Wed Sep 2 14:46:18 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/fflush.cxx:
+ Use trylock_me() instead of lock_me(), and loop to prevent
+ deadlocks
+
+ * src/clibincl/stream.hxx, src/clibincl/stream.inl:
+ Add trylock_me() method
+
+ * src/clibincl/stream.hxx, src/clibincl/stream.inl,
+ src/stdio/common/fflush.cxx:
+ Reformat to 76 columns
+
+Wed Sep 2 12:24:27 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Change 0x7fff to 0x7fffffff. Oops!
+ give main stack size option a legal_values field
+ Undefine tracing by default
+ Add some more description in the header
+
+Tue Sep 1 20:02:07 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/i18n/setlocale.c (cyg_package_start):
+ Fix typo - extra "x" for no reason at all! :-)
+
+Tue Sep 1 19:44:58 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/i18n/locale.cxx:
+ Fix bug in find_locale_data() that miscalculated size of
+ all_locales
+
+ Make find_locale_data() match the locale "" and add some
+ other things in _setlocale() to ensure that "C" gets returned
+ when the default locale "" is passed.
+
+ Only check the locale pointer when it is non-NULL
+
+ * tests/i18n/setlocale.c:
+ New tests for setlocale()
+
+ * tests/PKGconf.mak:
+ Update to build setlocale.c test
+
+ * src/support/cstartup.cxx:
+ Don't actually call system default main() "main" otherwise GDB
+ gets confused and thinks its the entry point. Instead make a weak
+ alias and call the real function something different.
+
+Tue Sep 1 18:31:42 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/i18n/locale.cxx (_setlocale):
+ Fix tracing macro name and remove "str maybe used before
+ initialised" warning
+
+ * tests/stdlib/qsort.c:
+ Correct file description header
+
+Tue Sep 1 17:04:32 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/locale.h, src/clibincl/i18nsupp.hxx, src/i18n/locale.cxx:
+ New files to add support for locales as defined by the ISO C
+ standard. i.e. setlocale() and localeconv() functions and some
+ other bits
+
+ * include/pkgconf/libc.h:
+ Add CYGNUM_LIBC_MAX_LOCALE_NAME_SIZE config option for locale
+ support
+
+ * src/PKGconf.mak:
+ build locale.cxx
+
+ * include/errno.h, src/clibincl/ctypesupp.hxx:
+ Tidy up to 76 columns
+
+Tue Sep 1 00:24:22 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Move environment-related options from stdlib into new
+ CYGPKG_LIBC_STARTUP component. Also add options for main()'s
+ arguments (CYGPKG_LIBC_ARGUMENTS), main()'s default stack size
+ (CYGNUM_LIBC_MAIN_STACK_SIZE), number of atexit handlers
+ (CYGNUM_LIBC_ATEXIT_HANDLERS), and whether _exit() stops the
+ system (CYGSEM_LIBC_EXIT_STOPS_SYSTEM).
+
+ * src/clibincl/stdlibsupp.hxx:
+ Fix a few comment bugs, and add new
+ cyg_libc_invoke_atexit_handlers() function prototype
+
+ * src/stdlib/_exit.cxx, src/stdlib/atexit.cxx, src/stdlib/exit.cxx:
+ Implement exit(), atexit() and _exit() correctly now. Also
+ includes cyg_libc_invoke_atexit_handlers() in atexit.cxx. Now
+ we get the correct behaviour of atexit(), and exit() invokes the
+ atexit handlers and fflushs all the stdio streams. Add plenty of
+ tracing of asserts too.
+
+ * src/support/cstartup.cxx:
+ Make main_thread object an exported global. Allow user-settable
+ arguments. Add MUCH more tracing and asserts. Improve comments.
+ Tidy up to 76 columns
+
+ * tests/stdlib/atexit.c:
+ Add simple test for atexit() and it calling registered functions
+
+ * tests/PKGconf.mak:
+ Build atexit.c test
+
+Mon Aug 31 18:54:48 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdlib/getenv.cxx, tests/stdlib/getenv.c:
+ Add support for getenv(), and some tests to ensure it works
+
+ * src/PKGconf.mak, tests/PKGconf.mak:
+ Update to include getenv.cxx and getenv.c test
+
+ * src/clibincl/clibdata.hxx:
+ remove prototype for environ - we expect files needing it to
+ define it themselves
+
+ * src/support/clibdata.cxx:
+ Tidy up to 76 columns and add definition of char **environ, but
+ with a configurable initialiser (see libc.h below)
+
+ * tests/stdlib/abs.c (main):
+ Tidy up to 76 columns
+
+ * src/stdlib/malloc.cxx:
+ Tidy up to 76 columns and remove warning for undefined _memcpy()
+ by changing to memcpy(), and casting away signedness
+
+ * include/pkgconf/libc.h:
+ Add CYGPKG_LIBC_ENVIRONMENT and CYGDAT_LIBC_DEFAULT_ENVIRONMENT
+ configuration options
+
+ * include/pkgconf/libc.h, src/clibincl/clibdata.hxx:
+ Tidy up to 76 columns
+
+ * include/stdlib.h:
+ Add getenv() prototype and tidy up to 76 columns
+
+ * src/clibincl/stdlibsupp.hxx:
+ Add _getenv() prototype
+
+Mon Aug 31 13:37:08 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdlib/malloc.cxx:
+ Add realloc()
+
+ * tests/stdlib/realloc.c:
+ Add this file to test new realloc() functionality
+
+ * tests/PKGconf.mak:
+ Build realloc test
+
+ * tests/stdlib/malloc3.c (main), tests/stdlib/malloc2.c (main),
+ tests/stdlib/malloc1.c (main):
+ Conditionalise local vars to prevent warnings
+
+ * tests/stdlib/malloc3.c (fill_with_data):
+ Move '{' into "verb" line
+
+ * include/pkgconf/libc.h:
+ Require infra tracing support to allow tracing
+
+ * include/stdlib.h:
+ Add realloc()
+
+ * src/clibincl/stdlibsupp.hxx:
+ Update the commented argument names from stdlib.h, including realloc()
+
+1998-08-28 Bart Veer <bartv@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ * src/clibincl/clibdata.hxx, src/time/clock.cxx:
+
+ Updated for new kernel configuration option symbol names
+
+Fri Aug 28 19:18:25 1998 Hugo Tyson <hmt@cygnus.co.uk>
+
+ Changed the entry below to sat "tx39" instead of "mn10300".
+ It's been a long week.
+
+Fri Aug 28 18:59:20 1998 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * src/support/cstartup.cxx: Add a weakly named main to allow the
+ default configuration to link on the tx39 which has no
+ scalextric linking yet. The static Cyg_Thread main_thread object
+ below continues to exist, though unreferenced, so all its
+ descendants must exist too.
+
+Fri Aug 28 08:54:29 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/stdlib.h:
+ Add commented argument names Add exit(), and atexit(). And move
+ these along with abort() and _exit() to a new section.
+
+ * src/stdlib/atexit.cxx, src/stdlib/exit.cxx:
+ Add trivial versions of atexit() and exit()
+
+ * include/pkgconf/libc.h:
+ Add CYGNUM_LIBC_MAIN_STACK_SIZE config option
+
+ * include/sys/cstartup.h, src/support/cstartup.cxx, src/PKGconf.mak:
+ New files to provide a new function cyg_iso_c_support(), which
+ invokes main "correctly".
+
+ * tests/ctype/ctype.c, tests/setjmp/setjmp.c, tests/stdio/sprintf1.c,
+ tests/stdio/sprintf2.c, tests/stdio/sscanf.c, tests/stdlib/abs.c,
+ tests/stdlib/atoi.c, tests/stdlib/atol.c, tests/stdlib/bsearch.c,
+ tests/stdlib/div.c, tests/stdlib/labs.c, tests/stdlib/ldiv.c,
+ tests/stdlib/malloc1.c, tests/stdlib/malloc2.c,
+ tests/stdlib/malloc3.c, tests/stdlib/qsort.c, tests/stdlib/rand1.c,
+ tests/stdlib/rand2.c, tests/stdlib/rand3.c, tests/stdlib/srand.c,
+ tests/stdlib/strtol.c, tests/stdlib/strtoul.c,
+ tests/string/memchr.c, tests/string/memcmp1.c,
+ tests/string/memcmp2.c, tests/string/memcpy1.c,
+ tests/string/memcpy2.c, tests/string/memmove1.c,
+ tests/string/memmove2.c, tests/string/memset.c,
+ tests/string/strcat1.c, tests/string/strcat2.c,
+ tests/string/strchr.c, tests/string/strcmp1.c,
+ tests/string/strcmp2.c, tests/string/strcoll1.c,
+ tests/string/strcoll2.c, tests/string/strcpy1.c,
+ tests/string/strcpy2.c, tests/string/strcspn.c,
+ tests/string/strlen.c, tests/string/strncat1.c,
+ tests/string/strncat2.c, tests/string/strncpy1.c,
+ tests/string/strncpy2.c, tests/string/strpbrk.c,
+ tests/string/strrchr.c, tests/string/strspn.c,
+ tests/string/strstr.c, tests/string/strtok.c,
+ tests/string/strxfrm1.c, tests/string/strxfrm2.c,
+ tests/time/clock.c:
+
+ Modify all tests to use new startup mechanism, and cyg_iso_c_start()
+
+Fri Aug 28 00:29:38 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/stream.cxx:
+ Add #ifdef CYGSEM_LIBC_STDIO_WANT_BUFFERED_IO around all accesses to
+ flags.last_buffer_op_was_read. Fix for PR 16997
+
+Thu Aug 27 01:12:42 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/sys/file_if.h:
+ Fix comments and remove cyg_get_file_star()
+
+Wed Aug 26 20:24:32 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Remove #define CYGPKG_LIBC is that is meant to live in
+ <pkgconf/system.h> after all
+
+Wed Aug 26 19:39:23 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ More fixes to CDL stuff to make it work better, and look better on
+ the screen
+
+Tue Aug 25 20:21:41 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Make some fixes after running the ConfigTool
+
+Tue Aug 25 16:46:28 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h (CYGNUM_LIBC_STDIO_BUFSIZE):
+ Fix typo of CYGNUM_LIBC_STDIO_BUFSIZE
+
+Tue Aug 25 15:10:57 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Tidy up CDL stuff a bit more, prior to checking it actually works.
+
+Tue Aug 25 11:38:52 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdlib/malloc2.c (main):
+ Prevent calls to CYG_TEST_STILL_ALIVE for now
+
+Tue Aug 25 05:39:28 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Change cosmetic paragraph alignment.
+
+Tue Aug 25 03:11:34 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/support/clibdata.cxx:
+ Make stderr initialise with buffer size 0.
+ For PR 16955
+
+Mon Aug 24 17:38:46 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ First pass at CDL-ifying the C library configuration. Currently
+ deliberately disabled as there a few outstanding issues.
+
+Mon Aug 24 16:14:22 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/output/vfnprintf.cxx (_vfnprintf):
+ clear up warning for unused argument
+
+ * tests/stdlib/malloc2.c (NUM_ITERATIONS):
+ Lower to 100 from 50000 so it won't take too long under the simulator
+
+Thu Aug 20 17:48:43 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdlib/malloc.cxx:
+ Remove now unnecessary inclusion of kernel/ktypes.h
+
+Wed Aug 19 19:19:14 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdio/sprintf1.c, tests/stdio/sprintf2.c,
+ tests/stdio/sscanf.c, tests/stdlib/atoi.c, tests/stdlib/atol.c,
+ tests/stdlib/rand1.c, tests/stdlib/rand2.c, tests/stdlib/rand3.c,
+ tests/stdlib/srand.c, tests/stdlib/strtol.c,
+ tests/stdlib/strtoul.c, tests/string/strtok.c,
+ tests/time/clock.c:
+ Add parameters to "main()" to silence warnings
+
+Wed Aug 19 18:52:59 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/stream.cxx (refill_read_buffer):
+ Put conditional error check into same #ifdef and if as what was being
+ checked in the first place!
+
+Wed Aug 19 18:49:19 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/stream.inl:
+ Reorder Cyg_StdioStream::check_this() to be first to silence
+ warnings
+
+Tue Aug 18 16:10:03 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * ecc/language/c/libc/current/src/clibincl/clibdata.hxx,
+ ecc/language/c/libc/current/src/errno/errno.cxx,
+ ecc/language/c/libc/current/src/stdio/common/fopen.cxx,
+ ecc/language/c/libc/current/src/stdlib/rand.cxx,
+ ecc/language/c/libc/current/src/string/strtok.cxx:
+ Rename CYGIMP_LIBC_INTERNAL_DATA_PREAMBLE,
+ CYGIMP_LIBC_INTERNAL_DATA_ALLOC_CHECK_PREAMBLE,
+ CYGVAR_LIBC_INTERNAL_DATA, and
+ CYGIMP_LIBC_INTERNAL_DATA_CHECK to all have CYGPRI_ prefix instead
+ as recommended by the config name rules
+
+
+Tue Aug 18 14:31:19 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/setvbuf.cxx (_setvbuf):
+ Rename variable names in assert line, otherwise doesn't build
+ with asserts on!
+
+Sun Aug 16 18:15:12 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/input/vfscanf.cxx (_vfscanf):
+ Fix some bugs, although there are some left to fix still. Unrelated
+ to the rest of the checkins, so I will check the partial fix in now.
+
+ * src/clibincl/stream.hxx, src/clibincl/stream.inl,
+ src/stdio/common/stream.cxx:
+ Add parameters to constructor to allow more things to be done at
+ construction time.
+
+ Now we have "new", remove separate "construct" method
+
+ Add more documentation on constructor
+
+ As requested by code review, where possible, move boolean flags
+ into separate packed bitfield structure for space efficiency
+
+ Make readbuf_char be usable all the time rather than when configured
+ not to be buffering, as it is also needed for non-buffered mode i.e.
+ _IONBF
+
+ * src/stdio/common/fopen.cxx:
+ Change to use new method of construction from above, using new
+
+ Use thread-specific data, rather than global. And so change errnos
+ to access errno entry specifically
+
+ Make process_mode() check for append mode too
+
+ Reformat for coding standards to have { in same line as "verb"
+
+ * src/stdio/common/setvbuf.cxx:
+
+ Change to cope with different way of dealing with buffering policy
+ flags etc. in Cyg_StdioStream
+
+ * src/stdio/common/vsnprintf.cxx, src/stdio/common/vsscanf.cxx,
+ src/support/clibdata.cxx:
+ Change construction of streams to use new parameters added above,
+ and change to use _IONBF mode for string stdio functions,
+ otherwise its a waste of memory. And use _IONBF for stderr as the
+ ISO standard tells us to!
+
+ Reformat for coding standards to have { in same line as "verb"
+
+ * src/clibincl/streambuf.hxx, src/clibincl/streambuf.inl:
+ Change constructor so that it can be set with default size and
+ dynamic buffer (if applicable)
+
+ Fix minor bug in destructor - should only call free when allocated
+ dynamically
+
+ Change get_buffer_size to return -1 if the buffer was not allowed
+ to be set up
+
+ * src/stdio/common/streambuf.cxx:
+ Remove unnecessary stdio.h include and add extra comment to whether
+ to free bit in set_buffer()
+
+ * src/stdio/common/freopen.cxx:
+ Change @@@ to standard fix me string
+
+ * src/stdio/output/fputc.cxx:
+ Remove unnecessary "written" variable
+
+Thu Aug 13 15:37:28 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdlib/_exit.cxx:
+ Included use of "fix me" line to ensure this is discussed before
+ release
+
+ * include/stdlib.h, src/stdlib/abort.cxx, src/PKGconf.mak:
+ Add abort.cxx to implement abort(), albeit naively
+
+Thu Jul 30 18:03:09 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/vsscanf.cxx (_vsscanf),
+ src/stdio/common/vsnprintf.cxx (_vsnprintf):
+ Fix initialiser of pseudo string device table that didn't get updated
+ when the table changed (Bad proven, no biscuit).
+
+ * src/clibincl/stream.inl (~Cyg_StdioStream):
+ Move invalidation of magic_validity_word to after unlock_me(),
+ otherwise it always fails!
+
+Tue Jul 28 21:29:53 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/clibdata.hxx:
+ Shorten over-long lines
+
+Tue Jul 28 20:28:23 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/stream.hxx (class Cyg_StdioStream),
+ src/clibincl/stream.inl, src/stdio/common/stream.cxx:
+ Clarify some comments and get the CYGDBG_DEFINE_CHECK_THIS and
+ CYG_ASSERTCLASS stuff going
+
+ * src/clibincl/stream.inl:
+ Put '{'s on same line as "action" as per coding standards
+ Shorten over-long lines
+
+Tue Jul 28 15:31:06 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/streambuf.inl, src/stdio/common/streambuf.cxx:
+ Move set_buffer() from streambuf.inl to new file streambuf.cxx
+
+ * src/PKGconf.mak (COMPILE):
+ Build new file streambuf.cxx
+
+ * src/clibincl/streambuf.hxx (class Cyg_StdioStreamBuffer):
+ Add METHODS comment
+
+ * src/stdio/common/stream.cxx:
+ Put '{'s on same line as "action" as per coding standards
+ Shorten over-long lines
+
+Tue Jul 28 00:26:36 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/stdlib.inl, src/stdio/input/vfscanf.cxx,
+ src/stdio/output/vfnprintf.cxx, src/stdlib/div.cxx,
+ src/stdlib/ldiv.cxx, src/stdlib/qsort.cxx, src/stdlib/strtol.cxx,
+ src/stdlib/strtoul.cxx, src/string/strtok.cxx:
+
+ Include proper Berkeley license inline in the file, rather than
+ referring to an external file
+
+ * doc/COPYING.UCB:
+ Remove, now that it isn't referred to any more
+
+Mon Jul 27 23:34:26 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/ctype.h, include/ctype.inl, include/errno.h,
+ include/stdio.h, include/stdio.inl, include/stdlib.h,
+ include/stdlib.inl, include/string.h, include/string.inl,
+ include/time.h, include/sys/file_if.h, src/PKGconf.mak,
+ src/clibincl/clibdata.hxx, src/clibincl/clibdata.inl,
+ src/clibincl/ctypesupp.hxx, src/clibincl/stdiosupp.hxx,
+ src/clibincl/stream.hxx, src/clibincl/streambuf.hxx,
+ src/clibincl/streambuf.inl, src/clibincl/stringsupp.hxx,
+ src/clibincl/timesupp.hxx, src/ctype/isalnum.cxx,
+ src/ctype/isalpha.cxx, src/ctype/iscntrl.cxx,
+ src/ctype/isdigit.cxx, src/ctype/isgraph.cxx,
+ src/ctype/islower.cxx, src/ctype/isprint.cxx,
+ src/ctype/ispunct.cxx, src/ctype/isspace.cxx,
+ src/ctype/isupper.cxx, src/ctype/isxdigit.cxx,
+ src/ctype/tolower.cxx, src/ctype/toupper.cxx,
+ src/errno/errno.cxx, src/stdio/common/snprintf.cxx,
+ src/stdio/common/sprintf.cxx, src/stdio/common/sscanf.cxx,
+ src/stdio/common/stdioinlines.cxx, src/stdio/common/stream.cxx,
+ src/stdio/common/ungetc.cxx, src/stdio/common/vsnprintf.cxx,
+ src/stdio/common/vsscanf.cxx, src/stdio/input/fgetc.cxx,
+ src/stdio/input/fgets.cxx, src/stdio/input/fscanf.cxx,
+ src/stdio/input/gets.cxx, src/stdio/input/scanf.cxx,
+ src/stdio/output/fnprintf.cxx, src/stdio/output/fprintf.cxx,
+ src/stdio/output/fputc.cxx, src/stdio/output/fputs.cxx,
+ src/stdio/output/printf.cxx, src/stdlib/_exit.cxx,
+ src/stdlib/abs.cxx, src/stdlib/atof.cxx, src/stdlib/atoi.cxx,
+ src/stdlib/atol.cxx, src/stdlib/div.cxx, src/stdlib/labs.cxx,
+ src/stdlib/ldiv.cxx, src/stdlib/rand.cxx, src/stdlib/strtod.cxx,
+ src/string/memchr.cxx, src/string/memcmp.cxx,
+ src/string/memmove.cxx, src/string/strcat.cxx,
+ src/string/strchr.cxx, src/string/strcmp.cxx,
+ src/string/strcoll.cxx, src/string/strcpy.cxx,
+ src/string/strcspn.cxx, src/string/strlen.cxx,
+ src/string/strncat.cxx, src/string/strncmp.cxx,
+ src/string/strncpy.cxx, src/string/strpbrk.cxx,
+ src/string/strrchr.cxx, src/string/strspn.cxx,
+ src/string/strstr.cxx, src/string/strsuppt.cxx,
+ src/string/strtok.cxx, src/string/strxfrm.cxx,
+ src/support/clibdata.cxx, src/time/clock.cxx:
+ Untabify
+
+Mon Jul 27 23:14:18 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/errno/errno.cxx, src/stdio/input/vfscanf.cxx,
+ src/stdio/output/vfnprintf.cxx, src/stdlib/strtol.cxx,
+ src/stdlib/strtoul.cxx, src/stdlib/malloc.cxx, src/stdlib/qsort.cxx,
+ tests/ctype/ctype.c, tests/stdlib/rand3.c, tests/stdlib/malloc3.c:
+ Remove all mentions of "register" in variable declarations. Also
+ untabify where needed
+
+ * src/stdlib/bsearch.cxx:
+ Untabify this too
+
+
+Mon Jul 27 22:18:51 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/output/fputc.cxx (_fputc):
+ Replace call to stream write() with call to write_byte()
+
+ * src/clibincl/stream.inl (write_byte):
+ Add asserts for stream write() returning odd values for how much has
+ been written
+
+ (bytes_available_to_read):
+ Remove "register" def for variable declaration
+
+Mon Jul 27 22:06:22 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/stdiosupp.cxx:
+ Remove #if 0'd cyg_get_file_star() and unnecessary pseudo string
+ device definition
+
+Mon Jul 27 21:57:25 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h, src/support/clibdata.cxx:
+ Change CYGXXX_LIBC_STDIO_DEFAULT_CONSOLE to
+ CYGDAT_LIBC_STDIO_DEFAULT_CONSOLE
+
+Mon Jul 27 21:49:23 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/clibdata.hxx, src/clibincl/clibdata.inl,
+ src/clibincl/ctypesupp.hxx, src/clibincl/setjmpsupp.hxx,
+ src/clibincl/stdiosupp.hxx, src/clibincl/stdlibsupp.hxx,
+ src/clibincl/stream.hxx, src/clibincl/stream.inl,
+ src/clibincl/streambuf.hxx, src/clibincl/streambuf.inl,
+ src/clibincl/stringsupp.hxx, src/clibincl/timesupp.hxx:
+
+ Change CYGONCE_LIBC_*_{HXX,INL} to CYGONCE_LIBC_CLIBINCL_*_{HXX,INL}
+
+Mon Jul 27 21:34:05 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Change #define XXXXX 1 to #define XXXXX where applicable as per code
+ review
+
+ Also remove obsolete CYGIMP_LIBC_THREAD_START_SUSPENDS_SELF
+
+Mon Jul 27 19:42:27 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/fopen.cxx (_fopen):
+ Use #ifdef, not #if for config options
+
+Mon Jul 27 15:01:51 BST 1998 Chris Provenzano <proven@cygnus.com>
+
+ * src/stdio/common/stream.cxx, src/stdio/common/vsnprintf.cxx
+ * src/stdio/common/vsscanf.cxx:
+ Fixes to compile with the new Cyg_IORB field names.
+
+Thu Jul 9 03:40:21 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdlib/atoi.c, tests/stdlib/atol.c,
+ tests/stdlib/strtol.c, tests/stdlib/strtoul.c:
+ Adjust starting of tests to possibly start scheduler since
+ strtol/stroul rely on errno, which may be a per-thread variable
+
+Thu Jul 9 03:06:25 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/stream.hxx, src/clibincl/stream.inl,
+ src/stdio/common/stream.cxx, src/stdio/common/setvbuf.cxx:
+ Consolidate read and write buffers into single buffer, as it should
+ have been all along
+
+ * src/clibincl/streambuf.hxx, src/clibincl/streambuf.inl:
+ Add drain_buffer() method to speed up the case when we want the
+ buffer completely emptied
+
+Tue Jul 7 21:26:33 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdio/sprintf1.c:
+ Add a couple of new tests that check that very long strings work too
+
+Wed Jul 1 19:52:39 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/stream.hxx, src/clibincl/streambuf.hxx:
+ Do not permit copy constructors
+
+ * src/clibincl/stream.inl, src/stdio/common/fclose.cxx:
+ Make sure we use #ifdef and not #if
+
+ * src/clibincl/streambuf.inl:
+ Use member initialisation list rather than explicit initialisation to
+ reduce warnings
+
+Wed Jul 1 19:17:55 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h and all files using config options:
+ Rename configuration defines to make them more standard
+
+Thu Jun 25 20:09:30 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/string/strcat.cxx:
+ Add parentheses on check to silence warning
+ (Verified by proven)
+
+Thu Jun 25 19:30:01 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdlib/malloc.cxx:
+ Make sure that the malloc pool is initialised before other things
+ can use it. This is done with the hot new constructor ordering
+ feature.
+
+Thu Jun 25 18:27:03 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/input/vfscanf.cxx:
+ Remove bogus ifdef if floating point is _not_ wanted
+
+Thu Jun 25 17:31:42 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/string/strtok.cxx:
+ Fix argument checking to allow first argument of NULL
+
+Thu Jun 25 04:18:50 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/clibdata.inl (get_strtok_last_p):
+ Remove bogus assertion
+
+ * src/stdlib/malloc.cxx:
+ Got sense of alignment check assertion the wrong way round, so negate
+ it
+
+Thu Jun 25 03:56:35 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/string/strxfrm.cxx:
+ Fix argument checking assertions with legitimate nulls here too
+
+Thu Jun 25 03:46:32 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdlib/strtoul.cxx, src/stdlib/strtol.cxx:
+ Fix argument checking assertions to cope with legitimate nulls
+
+Wed Jun 24 09:01:45 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdio/sprintf1.c:
+ Remove extraneous info messages
+
+Wed Jun 24 05:59:17 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdio/sprintf1.c, tests/stdio/sprintf2.c, tests/stdio/sscanf.c,
+ tests/stdlib/rand1.c, tests/stdlib/rand2.c, tests/stdlib/rand3.c,
+ tests/stdlib/srand.c:
+
+ Change large automatic arrays to static arrays to prevent overuse
+ of a potentially small stack
+
+Wed Jun 24 05:45:28 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdio/sprintf1.c, tests/stdio/sprintf2.c, tests/stdio/sscanf.c,
+ tests/stdlib/rand1.c, tests/stdlib/rand2.c, tests/stdlib/rand3.c,
+ tests/stdlib/srand.c, tests/string/strtok.c, tests/time/clock.c:
+
+ Increase thread stack size from 4K to 32K as in some cases it was
+ too small.
+
+
+Tue Jun 23 20:12:31 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdio/sscanf.c:
+ Add extra tests, including floating point conversion testing
+
+Tue Jun 23 17:01:06 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/string/strtok.cxx:
+ Make sure this is only compiled if CYGFUN_LIBC_strtok is defined
+
+Tue Jun 23 06:10:13 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ add some comments - that's all
+
+ * src/stdio/common/stream.cxx:
+ fix case in refill_read_buffer() for what to do when there's nothing
+ left. Now return EAGAIN
+
+ * src/stdio/common/vsscanf.cxx, src/stdio/input/vfscanf.cxx:
+ Get sscanf working properly and passing tests. Also make sure it
+ ignores FP when its not configured
+
+ * src/stdlib/atof.cxx:
+ Only compile at all if strtod() is present
+
+
+Mon Jun 22 19:13:42 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/clibdata.hxx, src/clibincl/clibdata.inl:
+ Conditionalise strtok_last and rand_seed better
+
+Mon Jun 22 14:14:12 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdlib/malloc3.c:
+ Add test for checking that mallocing and freeing repeatedly works
+
+ * tests/PKGconf.mak:
+ Update to reflect addition of the above
+
+Mon Jun 22 13:09:33 BST 1998 Chris Provenzano <proven@cygnus.com>
+
+ * src/stdio/common/fopen.cxx
+ * src/stdio/common/stream.cxx
+ * src/stdio/common/vsnprintf.cxx
+ * src/stdio/common/vsscanf.cxx
+ Include cyg/devs/common/iorb.h instead of iorb.hxx
+
+ * src/stdio/common/stream.cxx
+ Use read_blocking and write_blocking instead of just read and
+ write when accessing devices through the virtual device table.
+
+Sun Jun 21 18:19:13 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/stdioinlines.cxx:
+ Propagate change of return code handling for puts from stdio.inl
+ into here
+
+ * src/stdio/output/fputc.cxx:
+ make sure the right type is used for output - byte not int
+
+ * src/support/clibdata.cxx:
+ Fix #define config mistook. #endif was in wrong place
+
+Sun Jun 21 16:11:04 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/clibdata.hxx, src/clibincl/clibdata.inl:
+ Allow explicit construction to get around a bug when
+ dynamically allocating per-thread structure
+
+Sun Jun 21 16:02:51 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/ctype/ctype.c, tests/setjmp/setjmp.c, tests/stdio/sprintf1.c,
+ tests/stdio/sprintf2.c, tests/stdio/sscanf.c, tests/stdlib/abs.c,
+ tests/stdlib/atoi.c, tests/stdlib/atol.c, tests/stdlib/bsearch.c,
+ tests/stdlib/div.c, tests/stdlib/labs.c, tests/stdlib/ldiv.c,
+ tests/stdlib/malloc1.c, tests/stdlib/malloc2.c, tests/stdlib/qsort.c,
+ tests/stdlib/rand1.c, tests/stdlib/rand2.c, tests/stdlib/rand3.c,
+ tests/stdlib/srand.c, tests/stdlib/strtol.c, tests/stdlib/strtoul.c,
+ tests/string/memchr.c, tests/string/memcmp1.c,
+ tests/string/memcmp2.c, tests/string/memcpy1.c,
+ tests/string/memcpy2.c, tests/string/memmove1.c,
+ tests/string/memmove2.c, tests/string/memset.c,
+ tests/string/strcat1.c, tests/string/strcat2.c,
+ tests/string/strchr.c, tests/string/strcmp1.c,
+ tests/string/strcmp2.c, tests/string/strcoll1.c,
+ tests/string/strcpy1.c, tests/string/strcpy2.c,
+ tests/string/strcspn.c, tests/string/strlen.c,
+ tests/string/strncat1.c, tests/string/strncat2.c,
+ tests/string/strncpy1.c, tests/string/strncpy2.c,
+ tests/string/strpbrk.c, tests/string/strrchr.c,
+ tests/string/strspn.c, tests/string/strstr.c, tests/string/strtok.c,
+ tests/string/strxfrm1.c, tests/string/strxfrm2.c, tests/time/clock.c:
+
+ Update tests to "do the right thing" with all configuration settings
+
+
+Sun Jun 21 04:54:14 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/setjmp/setjmp.c:
+ I have to be careful not to use setjmp() in a way not exactly
+ defined by the standard, so make sure I do, and add a comment
+ documenting these ways.
+
+ Also ensure this test does the right thing in all configurations
+
+Sun Jun 21 04:38:15 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Add extra checks for invalid configurations
+ Also make default for thread safety OFF
+
+ * src/clibincl/clibdata.inl:
+ Adjust indentation
+
+ * src/stdio/output/vfnprintf.cxx:
+ Make printf of -0.0 floating point do the right thing
+
+Sun Jun 21 04:28:00 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/snprintf.cxx, src/stdio/common/sprintf.cxx,
+ src/stdio/common/sscanf.cxx, src/stdio/input/fscanf.cxx,
+ src/stdio/input/scanf.cxx, src/stdio/output/fnprintf.cxx,
+ src/stdio/output/fprintf.cxx, src/stdio/output/printf.cxx:
+
+ Had to remove inline functions with varargs. Which means separating
+ out each function from stdioinlines.cxx into a separate file, as they
+ no longer belong there. So all the above files were created.
+
+ * include/stdio.inl, src/PKGconf.mak,
+ src/stdio/common/stdioinlines.cxx:
+ Changed to take account of the above
+
+
+Sun Jun 21 03:58:42 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdio/sprintf1.c, tests/stdio/sprintf2.c:
+ Update with floating-point tests. Also make sure they DTRT in all
+ configurations
+
+Fri Jun 19 19:33:06 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/support/clibdata.cxx:
+ accidentally initialised stdin/out/err twice
+
+Fri Jun 19 19:09:29 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/support/clibdata.cxx:
+ Another typo
+
+Fri Jun 19 18:59:07 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/support/clibdata.cxx:
+ Missing #endif typo
+
+Fri Jun 19 18:51:42 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/support/clibdata.cxx:
+ Fix initialisation of static data members. Unsure how it worked at
+ all before!
+
+Fri Jun 19 18:01:01 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/stdio.inl:
+ puts should check whether fputs returns non-negative, rather than
+ non-zero
+
+Fri Jun 19 17:22:52 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/clibdata.inl:
+ Make inclusion of get_errno_p conditional on thread-safety
+
+Wed Jun 17 10:55:32 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/input/vfscanf.cxx:
+ Add weak alias of vfscanf() to _vfscanf()
+
+Wed Jun 17 09:10:41 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/fflush.cxx:
+ Initialise err to silence compiler warning
+
+Wed Jun 17 08:59:20 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * Most important is the addition of floating point support in
+ src/stdio/output/vfnprintf.cxx and src/stdio/input/vfscanf.cxx. This
+ also required the addition of atof() and strtod() in stdlib which is
+ definitely no bad thing! Other than that...
+
+ * Fix a whole bunch of stuff I messed up first time round. Also the
+ sprintf and sscanf tests are included again.
+
+Tue Jun 16 16:38:02 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/PKGconf.mak:
+ Typo with not putting comment character at the beginning. Sigh.
+
+Tue Jun 16 14:53:09 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/PKGconf.mak:
+ Forgot to (temporarily) remove fputs test for now
+
+Mon Jun 15 20:40:03 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ Everything to do with stdio has almost completely changed, so there's
+ not much point documenting individual changes.
+
+Mon Jun 15 18:36:01 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdlib/malloc2.c:
+ Stop it moaning quite as much when it fails by making it exit sooner
+
+ * tests/time/clock.c :
+ This isn't a compound testcase
+
+Thu Jun 11 17:59:13 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/assert.h
+ Reverse sense of NDEBUG ifdef, that was left in accidentally due
+ to testing
+
+Thu Jun 11 04:58:08 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/errno.h, include/string.h, src/clibincl/stringsupp.hxx:
+ Modify as I've now added an "error" package which defines the error
+ codes and strerror()
+
+ * src/errno/strerror.cxx:
+ Moved to new error package and thus deleted
+
+Wed Jun 10 18:37:37 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/assert.h:
+ create this header and add assert() function
+
+Wed Jun 10 16:23:57 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/stdlib.h, src/clibincl/stdlibsupp.hxx, src/stdlib/malloc.cxx:
+ Add malloc(), calloc() and free() functions
+
+ * include/pkgconf/libc.h:
+ Add malloc memory pool size option
+
+ * tests/stdlib/malloc1.c, tests/stdlib/malloc2.c:
+ new tests for malloc
+
+ * src/PKGconf.mak, tests/PKGconf.mak:
+ Update for new files
+
+Wed Jun 10 15:06:16 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/setjmp/setjmp.c:
+ Add another test
+
+Tue Jun 9 18:20:31 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Add some setjmp config's and a macro for the noreturn attribute
+
+ * include/setjmp.h, include/setjmp.inl, src/clibincl/setjmpsupp.hxx,
+ src/setjmp/longjmp.cxx, tests/setjmp/setjmp.c:
+ Added to implement and test setjmp() and longjmp()
+
+ * src/PKGconf.mak, tests/PKGconf.mak:
+ Update for newly added files
+
+Thu Jun 4 01:29:18 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/string/memchr.cxx, src/string/memcmp.cxx, src/string/strcat.cxx,
+ src/string/strchr.cxx, src/string/strcmp.cxx, src/string/strcpy.cxx,
+ src/string/strlen.cxx, src/string/strncat.cxx,
+ src/string/strncmp.cxx, src/string/strncpy.cxx:
+ Rename CYGIMP_LIBC_PREFER_SMALL_TO_FAST to
+ CYGIMP_LIBC_STRING_PREFER_SMALL_TO_FAST
+
+ Also use slower but smaller version when __OPTIMIZE_SIZE__ is
+ defined (which comes from using gcc -Os)
+
+Fri May 29 16:15:04 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/ctype.inl, src/ctype/isxdigit.cxx:
+ Fix bug that numerals aren't considered hex digits
+
+ * include/time.h:
+ Change clock_t and time_t to be signed so that they can accept -1, as
+ required by other libc functions
+
+ * src/clibincl/clibdata.hxx:
+ Fix typo that CYGIMP_LIBC_THREAD_SUPPORT should be ..._SAFETY
+ Also fix macro to allocate thread-specific data to not set variables
+ in a different stack-frame
+
+ * tests/ctype/ctype.c:
+ Fix some misunderstandings in tests, and add a few new ones
+
+ * tests/stdlib/qsort.c:
+ make ctr unsigned to prevent warnings
+
+ * tests/stdlib/strtol.c, tests/stdlib/strtoul.c:
+ Fix some misunderstandings in tests, and add a few new ones
+
+ * tests/string/strrchr.c:
+ Fix off by one error
+
+ * tests/string/strspn.c:
+ Fix case-sensitivity problem, and off-by-one error
+
+ * tests/string/strxfrm1.c:
+ Remove bogus bit of test that doesn't apply to strxfrm, and fix typo
+
+
+Fri May 22 16:33:04 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/PKGconf.mak
+ Remove CXXFLAGS line now that its redundant
+
+ * tests/everything!
+ Do a blitz change of all tests - break some of them down into
+ different files, add new tests, standardize format, fix bugs,
+ update for recent header file changes and much more!
+
+Wed May 20 17:50:04 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/PKGconf.mak:
+ interim checkin for different dir structure for Bart
+
+Fri May 15 20:30:46 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * Tidy up some loose ends I forgot: rename src/include directory to
+ src/clibincl. And add clibdata.inl and timesupp.hxx in there.
+
+Thu May 14 19:56:32 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * Basically everything has changed in the C library. Files have
+ been moved, renamed, deleted and reworked. This is a major
+ revision, and now starts from this new baseline rather than doing
+ incremental changes.
+
+Fri Apr 17 18:43:02 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/ECCconf.mak:
+ added for new build system (actually Bart did this, but didn't
+ update this ChangeLog)
+
+Fri Apr 17 15:03:25 1998 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * src/stdio/device/sim.cxx:
+ Make it build with CYG_EMPTY_STATEMENT; the unadorned one is being
+ removed.
+
+Thu Apr 16 00:24:24 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * All source files:
+ replace ECCIMP_LIBC_* conditional ifdef with CYGIMP_LIBC_*
+
+ * include/eccconf/libc.h:
+ improve comments and reorder a bit
+
+Wed Apr 8 14:35:20 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * Makefile.am, src/Makefile.am, tests/Makefile.am, configure.in:
+ many changes to integrate build structure from release tree
+
+ * src/ctype/Makefile.am, src/ctype/Makefile.in, src/errno/Makefile.am,
+ src/errno/Makefile.in, src/stdio/Makefile.am, src/stdio/Makefile.in,
+ src/stdio/common/Makefile.am, src/stdio/common/Makefile.in,
+ src/stdio/device/Makefile.am, src/stdio/device/Makefile.in,
+ src/stdio/output/Makefile.am, src/stdio/output/Makefile.in,
+ src/stdio/input/Makefile.am, src/stdio/input/Makefile.in,
+ src/stdlib/Makefile.am, src/stdlib/Makefile.in,
+ src/string/Makefile.am, src/string/Makefile.in,
+ src/support/Makefile.am, src/support/Makefile.in,
+ src/time/Makefile.am, src/time/Makefile.in:
+ Remove as they are now redundant with above changes
+
+ * include/Makefile.am:
+ Add to support above changes
+
+ * include/eccconf/libc.h:
+ Change include file for configuration from kernel to system
+
+ * src/include/kerndiag.hxx, src/stdio/device/kerndiag.cxx,
+ src/time/clockfn.cxx:
+ Change kernel include file to eccconf/kernel.h
+
+ * src/include/strngdev.h:
+ remove unnecessary kernel include
+
+ * Makefile.in, aclocal.m4, configure, src/Makefile.in,
+ tests/Makefile.in, include/Makefile.in:
+ regenerate
+
+Mon Apr 6 20:55:07 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdlib/abs.cxx, src/stdlib/atoi.cxx, src/stdlib/atol.cxx,
+ src/stdlib/div.cxx, src/stdlib/labs.cxx, src/stdlib/ldiv.cxx:
+ Separated out functions from stdlib.cxx into separate files
+
+ * src/stdlib/stdlib.cxx:
+ removed to be replaced by above files
+
+ * Makefile.am, src/stdlib/Makefile.am:
+ modified to support building above and not building stdlib.cxx
+
+ * src/support/tsd.cxx:
+ Remove unnecessary header file includes
+
+ * Makefile.in, src/stdlib/Makefile.in:
+ regenerated
+
+Mon Apr 6 19:19:42 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/support/tsd.cxx, include/eccconf/libc.h:
+ remove lame hack for tx39 compiler now that its fixed
+
+ * src/include/sim.hxx:
+ define constants as static to placate compiler
+
+Thu Apr 2 21:01:21 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/ctype/ctype.cxx:
+ deleted and separated out into below files
+
+ * src/ctype/isalnum.cxx, src/ctype/isalpha.cxx, src/ctype/iscntrl.cxx,
+ src/ctype/isdigit.cxx, src/ctype/isgraph.cxx, src/ctype/islower.cxx,
+ src/ctype/isprint.cxx, src/ctype/ispunct.cxx, src/ctype/isspace.cxx,
+ src/ctype/isupper.cxx, src/ctype/isxdigit.cxx, src/ctype/tolower.cxx,
+ src/ctype/toupper.cxx:
+ Separated out individual ctype functions from ctype.cxx into separate
+ files
+
+ * Makefile.am, src/ctype/Makefile.am:
+ modified to reflect above deletion/additions
+
+ * Makefile.in, src/ctype/Makefile.in:
+ regenerated
+
+Thu Apr 2 19:08:26 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/string/strxfrm.cxx: optimise using prefix increments
+
+Thu Apr 2 15:18:15 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/string/strchr.cxx: optimise setting of mask a little
+
+Thu Mar 26 14:07:01 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/support/tsd.cxx: fixed some typos
+
+Thu Mar 26 11:58:47 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/eccconf/libc.h, src/support/tsd.cxx:
+ Implement workaround for tx39 compiler bug.
+
+ * src/include/strsuppt.hxx:
+ remove prototypes for _memcpy() and _memset() as they are now in the
+ kernel
+
+Wed Mar 25 18:31:53 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * Makefile.am, src/string/Makefile.am: memcpy() and memset() are
+ now in the kernel so remove them from build
+ * include/string.h: add a comment to say as much
+ * Makefile.in, src/string/Makefile.in: regenerate
+
+Wed Mar 25 15:30:42 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdlib/_exit.cxx, src/include/file_if.inl:
+ Change _exit workaround to not cause a compiler optimisation
+ problem. Now just references _exit rather than calls it.
+
+Wed Mar 25 14:59:49 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/string/strxfrm.cxx: Fix bug causing tests to fail completely
+ for this function
+
+Wed Mar 25 12:55:53 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/include/sim.hxx: add types to constants (oops!)
+ * Makefile.am: link src/stdio/device/sim.cxx
+ * Makefile.in: regenerated
+
+Wed Mar 25 04:14:30 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/include/file_if.hxx, src/include/file_if.inl,
+ src/include/kerndiag.hxx, src/include/sim.hxx,
+ src/include/stdio_if.hxx, src/include/strngdev.hxx,
+ src/include/tsd.hxx, src/stdio/common/clearerr.cxx,
+ src/stdio/common/clearerr.cxx, src/stdio/common/feof.cxx,
+ src/stdio/common/ferror.cxx, src/stdio/common/file_if.cxx,
+ src/stdio/common/vsprintf.cxx,
+ src/stdio/device/kerndiag.cxx, src/stdio/device/sim.cxx,
+ src/stdio/device/strngdev.cxx, src/stdio/output/fputc.cxx,
+ src/stdio/output/fputs.cxx, src/stdio/output/puts.cxx,
+ src/stdio/output/vfnprintf.cxx, src/support/tsd.cxx:
+ Modified to support buffered reads including renaming
+ _EccInternalFileStruct to __EccStdioStream which is what affects
+ most of these files
+ * src/include/file_if.inl, src/stdio/common/file_if.cxx: added for
+ the above reason
+ * src/stdio/common/sscanf.cxx, src/stdio/input/vfscanf.cxx,
+ src/stdio/input/Makefile.am: added to provide sscanf() functionality
+ * include/ctype.h, include/stdio.h, include/stdlib.h,
+ include/string.h, include/eccconf/libc.h, src/ctype/ctype.cxx,
+ src/stdlib/stdlib.cxx, src/string/strcoll.cxx,
+ src/stdio/common/stdio.cxx:
+ rename *_INLINES macros with prefix CYG rather than ECC
+ * include/errno.h, src/errno/errno.cxx, src/errno/strerror.cxx:
+ rename ErrNo to _ErrNo and add EAGAIN and EWOULDBLOCK error codes
+ * configure.in, Makefile.am, src/stdio/Makefile.am,
+ src/stdio/input/Makefile.am: add support for building
+ file_if.cxx sscanf.cxx and vfscanf.cxx
+ * src/stdio/Makefile.in, src/stdio/common/Makefile.in,
+ src/stdio/input/Makefile.in, configure, Makefile.in: regenerated
+
+Tue Mar 24 19:51:40 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/time/clockfn.cxx, src/time/clock.cxx:
+ Renamed clock.cxx to clockfn.cxx (preserving CVS history)
+ * Makefile.am, src/time/Makefile.am: updated to reflect name change
+ * Makefile.in, src/time/Makefile.in: regenerated
+
+Tue Mar 24 16:28:06 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/ctype.inl: Swap around definitions to get right order so
+ inlining works
+
+Tue Mar 24 14:43:05 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/ctype.h, include/stdio.h, include/stdlib.h, include/string.h:
+ modify to only conditionally include inlines
+ * src/ctype/ctype.cxx, src/stdio/common/stdio.cxx,
+ src/stdlib/stdlib.cxx, src/string/strcoll.cxx,
+ src/ctype/Makefile.am: Add to provide real linkable alternatives
+ to inline functions
+ * Makefile.am, configure.in, src/Makefile.am,
+ src/stdio/common/Makefile.am, src/stdlib/Makefile.am,
+ src/string/Makefile.am: modified to support previous additions
+ * include/eccconf/libc.h: redefine inline macro to add extern inline,
+ and add conditional defines for inline functions. Also rename
+ space vs. speed macro to have CYG instead of ECC prefix
+ * include/stdio.inl: fix comment typo
+ * src/stdlib/qsort.cxx: fix to define inline functions properly
+ * src/string/memchr.cxx, src/string/memcmp.cxx, src/string/memcpy.cxx,
+ src/string/memset.cxx, src/string/strcat.cxx, src/string/strchr.cxx,
+ src/string/strcmp.cxx, src/string/strcpy.cxx, src/string/strlen.cxx,
+ src/string/strncat.cxx, src/string/strncmp.cxx,
+ src/string/strncpy.cxx
+ * Makefile.in, configure, src/Makefile.in, src/ctype/Makefile.in,
+ src/stdio/common/Makefile.in, src/stdlib/Makefile.in,
+ src/string/Makefile.in: regenerate
+
+
+Mon Mar 23 19:19:49 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdlib/_exit.cxx: added to support temporary _exit
+ * include/stdlib.h, include/stdlib.inl: added support for _exit and
+ added abs(), labs(), div() and ldiv() functions
+ * src/include/file_if.hxx: added support for _exit kludge
+ * src/stdlib/qsort.cxx: Added Berkeley copyright message
+ * src/time/clock.cxx: Include correct kernel config header as
+ CYG_CONFIGURATION rather than <config.h>
+ * Makefile.am src/stdlib/Makefile.am: added support for _exit
+ * Makefile.in, src/stdlib/Makefile.in: regenerated
+
+Mon Mar 23 14:41:07 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * Replace ECCPKG_ANSI_LIBC with CYGPKG_ANSI_LIBC in all source files
+
+Mon Mar 23 14:28:44 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/string.inl: add file to provide strcoll()
+ * include/string.h: include string.inl
+ * ctype.h: include ctype.inl (oops!)
+ * include/stdlib.h: include stdlib.inl (oops!)
+
+Mon Mar 23 13:30:38 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/ctype.h, include/ctype.inl: added to provide ANSI ctype
+ functionality
+ * include/stdlib.h, include/stdlib.inl, src/include/stdlibbsp.hxx,
+ src/stdlib/Makefile.am, src/stdlib/bsearch.cxx,
+ src/stdlib/qsort.cxx, src/stdlib/rand.cxx, src/stdlib/srand.cxx,
+ src/stdlib/strtol.cxx, src/stdlib/strtoul.cxx: Added to provide
+ many stdlib functions
+ * src/include/tsd.hxx: modified to support rand() random number
+ seed, and added some comments
+ * configure.in, Makefile.am, src/Makefile.am: modified to support
+ addition of above new sources
+ * include/eccconf/libc.h: Add extra helpful comments, and #include
+ kernel config file
+ * src/time/clock.cxx: #include clock.inl and fix to call
+ get_resolution() properly now
+ * Makefile.in, configure, src/Makefile.in, src/errno/Makefile.in,
+ src/stdio/Makefile.in, src/stdio/common/Makefile.in,
+ src/stdio/device/Makefile.in, src/stdio/output/Makefile.in,
+ src/stdlib/Makefile.in, src/strings/Makefile.in,
+ src/support/Makefile.in, src/time/Makefile.in,
+ tests/Makefile.in: regenerated
+
+
+Sun Mar 22 21:29:25 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/time.h, src/include/timesupp.hxx, src/time/clock.cxx,
+ src/time/Makefile.am: added to provide clock() function
+ * src/Makefile.am: modified to try to build in src/time directory
+ * include/eccconf/libc.h: added and is now the main configuration
+ file for this package
+ * acconfig.h, include/libcconf.h.in, include/stamp-h.in: removed
+ due to usage of libc.h above instead
+ * Almost all *.h, *.hxx and *.cxx: replaced LIBC_CONFIG_HEADER
+ defined include with simple <pkgconf/libc.h>
+ * configure.in: remove AM_CONFIG_HEADER of libcconf.h and
+ LIBC_CONFIG_HEADER definition. Also remove usage of builtin
+ memcpy() etc. from gcc, and generate src/time/Makefile
+ * Makefile.am: link in src/time/clock.o
+ * src/include/file_if.hxx, src/include/sim.hxx: use config header
+ to decide whether C library is to be used
+ * Makefile.in, aclocal.m4, configure, src/Makefile.in: regenerated
+
+Fri Mar 20 18:08:10 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/string/strxfrm.cxx: Fixed bug with ignoring terminating NULL
+
+1998-03-20 Chris Tarpy <ctarpy@bhaji.cygnus.co.uk>
+
+ * configure: - regenerated
+ * Makefile.am: - Support added for libc testcases
+ * Makefile.in: regenerated
+ * configure.in: set c compiler, descend test dir
+ * tests/Makefile.in: added
+ * tests/Makefile.am: added
+ * tests/tcdiag.cxx : added
+
+
+Thu Mar 19 11:41:56 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * Initial check-in of everything
+
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
diff --git a/ecos/packages/language/c/libc/startup/current/cdl/startup.cdl b/ecos/packages/language/c/libc/startup/current/cdl/startup.cdl
new file mode 100644
index 0000000..3ce60d1
--- /dev/null
+++ b/ecos/packages/language/c/libc/startup/current/cdl/startup.cdl
@@ -0,0 +1,361 @@
+# ====================================================================
+#
+# startup.cdl
+#
+# ISO environment startup/termination related configuration data
+#
+# ====================================================================
+## ####ECOSGPLCOPYRIGHTBEGIN####
+## -------------------------------------------
+## This file is part of eCos, the Embedded Configurable Operating System.
+## Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+##
+## eCos is free software; you can redistribute it and/or modify it under
+## the terms of the GNU General Public License as published by the Free
+## Software Foundation; either version 2 or (at your option) any later
+## version.
+##
+## eCos 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 General Public License
+## for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with eCos; if not, write to the Free Software Foundation, Inc.,
+## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+##
+## As a special exception, if other files instantiate templates or use
+## macros or inline functions from this file, or you compile this file
+## and link it with other works to produce a work based on this file,
+## this file does not by itself cause the resulting work to be covered by
+## the GNU General Public License. However the source code for this file
+## must still be made available in accordance with section (3) of the GNU
+## General Public License v2.
+##
+## This exception does not invalidate any other reasons why a work based
+## on this file might be covered by the GNU General Public License.
+## -------------------------------------------
+## ####ECOSGPLCOPYRIGHTEND####
+# ====================================================================
+######DESCRIPTIONBEGIN####
+#
+# Author(s): jlarmour
+# Contributors:
+# Date: 2000-04-14
+#
+#####DESCRIPTIONEND####
+#
+# ====================================================================
+
+cdl_package CYGPKG_LIBC_STARTUP {
+ display "ISO environment startup/termination"
+ description "
+ This package manages the control of the
+ environment (in the general sense) that an
+ application would require for full ISO C / POSIX
+ compatibility, including a main() entry point
+ supplied with arguments and an environment
+ (as retrievable by the getenv() function).
+ It also includes at the other end of things,
+ what happens when main() returns or exit() is
+ called."
+ doc ref/c-library-startup.html
+ include_dir cyg/libc/startup
+ parent CYGPKG_LIBC
+ requires CYGPKG_ISOINFRA
+ requires { CYGINT_LIBC_STARTUP_CONTEXT == 1 }
+ implements CYGINT_ISO_EXIT
+ implements CYGINT_ISO_MAIN_STARTUP
+ implements CYGINT_ISO_ENVIRON
+
+ compile _exit.cxx abort.cxx atexit.cxx \
+ environ.cxx exit.cxx invokemain.cxx \
+ main.cxx mainthread.cxx
+
+ compile -library=libextras.a cstartup.cxx
+
+# ====================================================================
+
+ cdl_interface CYGINT_LIBC_STARTUP_EXTERNAL_INVOKE_MAIN_POSSIBLE {
+ display "main() can be invoked elsewhere"
+ description "Implementors of this interface show that they
+ allow main() to be invoked elsewhere."
+ flavor bool
+ no_define
+ }
+
+ cdl_option CYGDAT_LIBC_ARGUMENTS {
+ display "Arguments to main()"
+ flavor data
+ default_value {"{(char *)\"\", (char *)NULL}"}
+ description "
+ This option allows the setting of the arguments
+ to the main function. This only has any effect
+ when cyg_iso_c_start() is used to start the
+ ISO C compatibility. This will automatically
+ invoke main() in an ISO C compatible fashion.
+ This option is in fact used as argv, and so is
+ an n-tuple of string constants. The final
+ entry must be NULL. Conventionally if argv\[0\]
+ is supplied, it is used to inform the program
+ of its name."
+ }
+
+
+ cdl_component CYGPKG_LIBC_STARTUP_CONTEXT {
+ display "Startup context for main()"
+ flavor none
+ no_define
+ description "This component describes the options available for
+ what context main() is invoked in, such as in a thread
+ etc."
+
+ cdl_interface CYGINT_LIBC_STARTUP_CONTEXT {
+ display "Startup context implementors"
+ no_define
+ }
+
+
+ cdl_option CYGSEM_LIBC_STARTUP_MAIN_INITCONTEXT {
+ display "Invoked from initialization context"
+ description "With this option selected, main() will be
+ called via cyg_user_start() (unless the program
+ overrides the default cyg_user_start()). This
+ means it is run in the context of the system
+ initialization code, without the eCos kernel
+ scheduler running, and using the startup stack.
+ This means that any functions that may require
+ interactions with a running kernel will not
+ work (including libc functions, if configured
+ to be thread safe for example), so you should
+ restrict yourself to only calling fully
+ re-entrant functions from within main() in
+ this case."
+ flavor bool
+ default_value { 0 == CYGPKG_KERNEL && 0 ==
+ CYGINT_LIBC_STARTUP_EXTERNAL_INVOKE_MAIN_POSSIBLE }
+ implements CYGINT_LIBC_STARTUP_CONTEXT
+ implements CYGINT_LIBC_STARTUP_MAIN_NO_STACK_SIZE
+ }
+
+ cdl_component CYGSEM_LIBC_STARTUP_MAIN_THREAD {
+ display "Invoked as eCos thread"
+ requires CYGPKG_KERNEL
+ flavor bool
+ default_value { 0 != CYGPKG_KERNEL && 0 == \
+ CYGINT_LIBC_STARTUP_EXTERNAL_INVOKE_MAIN_POSSIBLE }
+ implements CYGINT_LIBC_STARTUP_CONTEXT
+ description "
+ With this option selected, main() is invoked from an eCos
+ thread."
+
+ cdl_option CYGSEM_LIBC_MAIN_STACK_FROM_SYSTEM {
+ display "System provides stack for main()'s thread"
+ description "
+ This option controls whether the stack of
+ main()'s thread is provided by the application or
+ provided by the system. When disabled, the
+ application must declare a pointer variable
+ cyg_libc_main_stack which is a pointer to an
+ appropriately aligned region of memory. The
+ application must also declare a variable of
+ type `int' called cyg_libc_main_stack_size
+ which contains the size of the stack in bytes.
+ This must be a multiple of 8."
+ flavor bool
+ default_value 1
+ }
+
+ cdl_option CYGNUM_LIBC_MAIN_THREAD_PRIORITY {
+ display "Priority of main()'s thread"
+ description "
+ This option is used to provide the thread
+ priority which main()'s thread runs at. Be
+ sure to check that this number is appropriate
+ for the kernel scheduler chosen. Different
+ kernel schedulers impose different restrictions
+ on the usable priorities."
+ flavor data
+ legal_values 0 to 0x7fffffff
+ default_value 10
+ }
+ }
+
+ cdl_option CYGSEM_LIBC_STARTUP_MAIN_OTHER {
+ display "Invoked elsewhere"
+ description "With this option selected, main() must be
+ invoked by a separate package, or by the user."
+ flavor bool
+ default_value { 0 != \
+ CYGINT_LIBC_STARTUP_EXTERNAL_INVOKE_MAIN_POSSIBLE }
+ requires CYGINT_LIBC_STARTUP_EXTERNAL_INVOKE_MAIN_POSSIBLE
+ implements CYGINT_LIBC_STARTUP_CONTEXT
+ }
+ }
+
+ cdl_interface CYGINT_LIBC_STARTUP_MAIN_NO_STACK_SIZE {
+ display "Don't allow main()'s stack size to be set"
+ description "This interface describes whether the stack size
+ value set in this package is supported by the
+ implementation that invokes main. If not, that
+ option is disabled."
+ flavor bool
+ no_define
+ }
+
+ cdl_option CYGNUM_LIBC_MAIN_DEFAULT_STACK_SIZE {
+ display "main()'s default thread stack size"
+ flavor data
+ legal_values 16 to 0x7fffffff
+ default_value 8192
+ active_if !CYGINT_LIBC_STARTUP_MAIN_NO_STACK_SIZE
+ description "
+ This option sets the size of the stack used
+ in the context that invokes main(). For example,
+ with an eCos kernel, when the cyg_iso_c_start()
+ function is used to invoke the user-supplied
+ main() function in an ISO C compatible fashion,
+ a separate thread is created to call main().
+ This option controls the size of that thread's
+ stack, which is allocated in the BSS. It
+ must be a multiple of 8. Note, a low number
+ here may be overriden by the HAL if there is
+ a minimum requirement to process interrupts
+ etc. This option cannot be set if the implementation
+ that invokes main() does not use it."
+ }
+
+ cdl_component CYGFUN_LIBC_ATEXIT {
+ display "Include atexit() function"
+ flavor bool
+ default_value 1
+ description "
+ This option enables the use of the atexit()
+ function, and ensure that the atexit handlers
+ are invoked from within exit() as defined in
+ the ISO C standard."
+
+ cdl_option CYGNUM_LIBC_ATEXIT_HANDLERS {
+ display "Number of functions atexit() supports"
+ flavor data
+ legal_values 1 to 0x7fffffff
+ default_value 32
+ description "
+ This option sets the number of functions
+ that atexit() has room for. In other words,
+ the number of separate atexit() calls that
+ can be made before calling exit() or returning
+ from main() ( in an environment controlled by
+ cyg_iso_c_start() ). For strict compliance
+ with the ISO C standard this should be at
+ least 32."
+ }
+ }
+
+ cdl_option CYGSEM_LIBC_EXIT_CALLS_FFLUSH {
+ display "Make exit() call fflush()"
+ requires CYGINT_ISO_STDIO_FILEACCESS
+ default_value { 0 != CYGINT_ISO_STDIO_FILEACCESS }
+ description "
+ This option will ensure that all output
+ streams are flushed when exitting using
+ exit() as prescribed by the ISO C standard."
+ }
+
+ cdl_option CYGSEM_LIBC_EXIT_STOPS_SYSTEM {
+ display "_exit() stops all threads"
+ requires CYGPKG_KERNEL
+ default_value 0
+ description "
+ If this option is enabled then _exit(),
+ which is called from exit() which itself is
+ called on return from main(), stops the eCos
+ scheduler. For strict POSIX 1003.1
+ compatibility this would be the normal
+ behaviour. To allow the thread to simply
+ exit, without affecting other threads, simply
+ leave this option disabled. If there is no eCos
+ scheduler, then _exit() simply loops
+ irrespective of the setting of this option."
+ }
+
+ cdl_option CYGDAT_LIBC_DEFAULT_ENVIRONMENT {
+ display "Default environment"
+ flavor data
+ default_value {"{ NULL }"}
+ description "
+ This option allows the setting of the default
+ contents of the environment. This is in fact
+ the contents of the global environment pointer
+ char **environ defined by POSIX 1003.1. Strings
+ must be of the form NAME=VALUE, and the final
+ entry must be NULL."
+ }
+
+ cdl_option CYGSEM_LIBC_INVOKE_DEFAULT_STATIC_CONSTRUCTORS {
+ display "Invoke default static constructors"
+ requires CYGSEM_HAL_STOP_CONSTRUCTORS_ON_FLAG
+ requires { CYGSEM_LIBC_STARTUP_MAIN_THREAD || \
+ (CYGSEM_LIBC_STARTUP_MAIN_OTHER && CYGPKG_POSIX_PTHREAD) }
+ default_value 0
+ description "
+ This option causes the C library to call
+ static constructors with default priority
+ from within the context of the main() thread,
+ working with the co-operation of the HAL.
+ This may be needed for environments that
+ expect static constructors to be run in a
+ thread context. Note that this uses an object
+ with priority 65534. Therefore do not use
+ priority 65534 for any other static objects
+ with this option enabled."
+ }
+
+
+# ====================================================================
+
+ cdl_component CYGPKG_LIBC_STARTUP_OPTIONS {
+ display "ISO environment startup/termination build options"
+ flavor none
+ no_define
+ description "
+ Package specific build options including control over
+ compiler flags used only in building this package,
+ and details of which tests are built."
+
+
+ cdl_option CYGPKG_LIBC_STARTUP_CFLAGS_ADD {
+ display "Additional compiler flags"
+ flavor data
+ no_define
+ default_value { "" }
+ description "
+ This option modifies the set of compiler flags for
+ building this package. These flags are used in addition
+ to the set of global flags."
+ }
+
+ cdl_option CYGPKG_LIBC_STARTUP_CFLAGS_REMOVE {
+ display "Suppressed compiler flags"
+ flavor data
+ no_define
+ default_value { "" }
+ description "
+ This option modifies the set of compiler flags for
+ building this package. These flags are removed from
+ the set of global flags if present."
+ }
+
+ cdl_option CYGPKG_LIBC_STARTUP_TESTS {
+ display "ISO environment startup/termination tests"
+ flavor data
+ no_define
+ calculated { "tests/atexit" }
+ description "
+ This option specifies the set of tests for this package."
+ }
+ }
+}
+
+# ====================================================================
+# EOF startup.cdl
diff --git a/ecos/packages/language/c/libc/startup/current/src/_exit.cxx b/ecos/packages/language/c/libc/startup/current/src/_exit.cxx
new file mode 100644
index 0000000..c26eaaa
--- /dev/null
+++ b/ecos/packages/language/c/libc/startup/current/src/_exit.cxx
@@ -0,0 +1,110 @@
+//========================================================================
+//
+// _exit.cxx
+//
+// _exit() as from POSIX 1003.1 section 3.2.2 "Terminate a process"
+//
+//========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors:
+// Date: 2000-04-28
+// Purpose: Provides POSIX 1003.1 _exit() function
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libc_startup.h> // Configuration header
+#include <pkgconf/system.h>
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include <cyg/infra/cyg_trac.h> // Common tracing support
+#include <cyg/infra/cyg_ass.h> // Common assertion support
+#include <stdlib.h> // Header for all stdlib functions
+ // (like this one)
+#ifdef CYGPKG_KERNEL
+# include <pkgconf/kernel.h> // kernel configuration
+# include <cyg/kernel/thread.hxx> // eCos kernel for thread termination
+# include <cyg/kernel/thread.inl> // and
+# include <cyg/kernel/sched.hxx> // for stopping the scheduler
+# include <cyg/kernel/sched.inl>
+#endif
+
+
+// FUNCTIONS
+
+externC void
+_exit( int status )
+{
+ CYG_REPORT_FUNCTION(); // shouldn't return, but CYG_FAIL will catch it
+ CYG_REPORT_FUNCARG1DV( status );
+
+ CYG_ASSERT( status == 0, "Program _exiting with non-zero error status");
+
+#ifdef CYGPKG_KERNEL
+
+# ifdef CYGSEM_LIBC_EXIT_STOPS_SYSTEM
+
+ Cyg_Scheduler::lock(); // prevent rescheduling
+
+ for (;;)
+ CYG_EMPTY_STATEMENT;
+
+# else
+
+ Cyg_Thread::exit();
+
+# endif
+#endif
+
+ // loop forever
+ for (;;)
+ CYG_EMPTY_STATEMENT;
+
+ CYG_FAIL( "_exit() returning!!!" );
+
+ CYG_REPORT_RETURN();
+} // _exit()
+
+
+// EOF _exit.cxx
diff --git a/ecos/packages/language/c/libc/startup/current/src/abort.cxx b/ecos/packages/language/c/libc/startup/current/src/abort.cxx
new file mode 100644
index 0000000..d7cbeb9
--- /dev/null
+++ b/ecos/packages/language/c/libc/startup/current/src/abort.cxx
@@ -0,0 +1,97 @@
+//===========================================================================
+//
+// abort.cxx
+//
+// Implementation of the abort() function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors:
+// Date: 2000-04-28
+// Purpose: Implement the ISO C abort() function from 7.10.4.1
+// Description: This implements abort() simply by raising SIGABRT as
+// required by ISO C
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libc_startup.h> // Configuration header
+#include <pkgconf/isoinfra.h> // CYGINT_ISO_SIGNAL_IMPL
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include <cyg/infra/cyg_trac.h> // Tracing support
+
+#include <stdlib.h> // Header for all stdlib functions
+ // (like this one)
+#if CYGINT_ISO_SIGNAL_IMPL > 0
+# include <signal.h>
+#endif
+
+// FUNCTIONS
+
+externC void
+abort( void )
+{
+ CYG_REPORT_FUNCNAME( "abort" );
+
+#if CYGINT_ISO_SIGNAL_IMPL > 0
+ int rc CYGBLD_ATTRIB_UNUSED;
+
+ rc = raise(SIGABRT);
+
+ CYG_TRACE1(1, "raise(SIGABRT) returned!!! rc=%d", rc);
+
+ CYG_FAIL("raise(SIGABRT) returned");
+
+#endif
+
+ // ISO C clearly says that abort() cannot return to its caller
+
+ // loop forever
+ for (;;)
+ CYG_EMPTY_STATEMENT;
+
+ CYG_REPORT_RETURN();
+} // abort()
+
+// EOF abort.cxx
diff --git a/ecos/packages/language/c/libc/startup/current/src/atexit.cxx b/ecos/packages/language/c/libc/startup/current/src/atexit.cxx
new file mode 100644
index 0000000..ab19fca
--- /dev/null
+++ b/ecos/packages/language/c/libc/startup/current/src/atexit.cxx
@@ -0,0 +1,136 @@
+//========================================================================
+//
+// atexit.cxx
+//
+// Implementation of the atexit() function
+//
+//========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors:
+// Date: 2000-04-30
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libc_startup.h> // Configuration header
+
+// Include atexit() ?
+#ifdef CYGFUN_LIBC_ATEXIT
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include <cyg/infra/cyg_trac.h> // Common tracing support
+#include <cyg/infra/cyg_ass.h> // Common assertion support
+#include <stdlib.h> // Header for all stdlib functions
+ // (like this one)
+
+// STATICS
+
+// cyg_libc_atexit_handlers contains the functions to call.
+// cyg_libc_atexit_handlers_count contains the number of valid handlers
+// or you can consider the next free handler slot in
+// cyg_libc_atexit_handlers.
+
+static __atexit_fn_t
+cyg_libc_atexit_handlers[ CYGNUM_LIBC_ATEXIT_HANDLERS ];
+
+static cyg_ucount32 cyg_libc_atexit_handlers_count;
+
+
+// FUNCTIONS
+
+externC void
+cyg_libc_invoke_atexit_handlers( void )
+{
+ CYG_REPORT_FUNCNAME( "cyg_libc_invoke_atexit_handlers");
+ CYG_REPORT_FUNCARGVOID();
+
+ cyg_ucount32 i;
+
+ for (i=cyg_libc_atexit_handlers_count; i>0; --i) {
+
+ CYG_TRACE1( true,
+ "Calling function registered with atexit at addr %08x",
+ cyg_libc_atexit_handlers[i-1] );
+ CYG_CHECK_FUNC_PTR( cyg_libc_atexit_handlers[i-1],
+ "Function to call in atexit handler list "
+ "isn't valid! Even though it was when "
+ "entered!" );
+
+ (*cyg_libc_atexit_handlers[i-1])();
+
+ } // for
+
+ CYG_REPORT_RETURN();
+} // cyg_libc_invoke_atexit_handlers()
+
+
+externC int
+atexit( __atexit_fn_t func_to_register )
+{
+ CYG_REPORT_FUNCNAMETYPE( "atexit", "returning %d" );
+ CYG_REPORT_FUNCARG1XV( func_to_register );
+
+ CYG_CHECK_FUNC_PTR( func_to_register,
+ "atexit() not passed a valid function argument!" );
+
+ // have we any slots left?
+ if (cyg_libc_atexit_handlers_count >=
+ sizeof(cyg_libc_atexit_handlers)/sizeof(__atexit_fn_t) ) {
+
+ CYG_REPORT_RETVAL( 1 );
+ return 1; // failure
+ } // if
+
+ cyg_libc_atexit_handlers[cyg_libc_atexit_handlers_count++] =
+ func_to_register;
+
+ CYG_REPORT_RETVAL(0);
+ return 0;
+} // atexit()
+
+
+#endif // ifdef CYGFUN_LIBC_ATEXIT
+
+// EOF atexit.cxx
diff --git a/ecos/packages/language/c/libc/startup/current/src/cstartup.cxx b/ecos/packages/language/c/libc/startup/current/src/cstartup.cxx
new file mode 100644
index 0000000..0069d30
--- /dev/null
+++ b/ecos/packages/language/c/libc/startup/current/src/cstartup.cxx
@@ -0,0 +1,144 @@
+//=======================================================================
+//
+// cstartup.cxx
+//
+// Support for startup of ISO C environment
+//
+//========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors:
+// Date: 2000-04-30
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/system.h> // CYGPKG_KERNEL
+#include <pkgconf/libc_startup.h> // Configuration header
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include <cyg/infra/cyg_trac.h> // Common tracing support
+
+#ifdef CYGPKG_KERNEL
+# include <pkgconf/kernel.h> // eCos kernel configuration
+# include <cyg/kernel/thread.hxx> // eCos thread support
+# include <cyg/kernel/thread.inl>
+#endif
+
+
+// FUNCTION PROTOTYPES
+
+externC void
+cyg_libc_invoke_main( CYG_ADDRWORD );
+
+// EXTERNS
+
+#ifdef CYGSEM_LIBC_STARTUP_MAIN_THREAD
+extern Cyg_Thread cyg_libc_main_thread;
+
+// FUNCTIONS
+
+externC void
+cyg_iso_c_start( void )
+{
+ static int initialized=0;
+
+ CYG_REPORT_FUNCNAME( "cyg_iso_c_start" );
+ CYG_REPORT_FUNCARGVOID();
+
+ if (initialized++ == 0) {
+ CYG_TRACE0( true, "Resuming cyg_libc_main_thread" );
+ cyg_libc_main_thread.resume();
+ }
+ CYG_REPORT_RETURN();
+
+} // cyg_iso_c_start()
+
+// define an object that will automatically call cyg_iso_c_start()
+
+class cyg_libc_startup_dummy_constructor_class {
+public:
+ cyg_libc_startup_dummy_constructor_class() { cyg_iso_c_start(); }
+};
+
+static cyg_libc_startup_dummy_constructor_class cyg_libc_startup_obj
+ CYGBLD_ATTRIB_INIT_AFTER(CYG_INIT_LIBC);
+
+#elif defined( CYGSEM_LIBC_STARTUP_MAIN_INITCONTEXT )
+
+// otherwise replace the default cyg_user_start(), but of course keep
+// it a weak symbol in case the user wants to override
+
+externC void
+cyg_user_start(void) CYGBLD_ATTRIB_WEAK;
+
+externC void
+cyg_user_start(void)
+{
+ cyg_libc_invoke_main(0);
+}
+
+externC void
+cyg_iso_c_start( void )
+{
+ static int initialized=0;
+
+ CYG_REPORT_FUNCNAME( "cyg_iso_c_start" );
+ CYG_REPORT_FUNCARGVOID();
+
+ // In case they want to explicitly invoke the C library from
+ // cyg_user_start() themselves
+ if (initialized++ == 0) {
+ cyg_libc_invoke_main(0);
+ }
+ CYG_REPORT_RETURN();
+}
+#else
+
+externC void
+cyg_iso_c_start( void ) {}
+
+#endif
+
+// EOF cstartup.cxx
diff --git a/ecos/packages/language/c/libc/startup/current/src/environ.cxx b/ecos/packages/language/c/libc/startup/current/src/environ.cxx
new file mode 100644
index 0000000..d6efc48
--- /dev/null
+++ b/ecos/packages/language/c/libc/startup/current/src/environ.cxx
@@ -0,0 +1,70 @@
+//========================================================================
+//
+// environ.cxx
+//
+// C library definition and allocation of POSIX 1003.1 environ
+//
+//========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors:
+// Date: 2000-04-30
+// Purpose: Provide extern char **environ as required by POSIX 1003.1
+// Description: C library definition and allocation of POSIX 1003.1 environ
+// Usage: You can override environ at startup if you wish simply
+// by redefining yourself. Setting the libc.h configuration
+// option is the intended method though.
+//
+//####DESCRIPTIONEND####
+//
+//========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libc_startup.h> // Configuration header
+#include <stddef.h> // NULL
+
+// GLOBALS
+
+// The global environment. The default can be configured in
+// <pkgconf/libc_startup.h>
+
+static char * const
+cyg_libc_default_environ[] = CYGDAT_LIBC_DEFAULT_ENVIRONMENT;
+
+char **environ __attribute__((weak)) = (char **)cyg_libc_default_environ;
+
+// EOF environ.cxx
diff --git a/ecos/packages/language/c/libc/startup/current/src/exit.cxx b/ecos/packages/language/c/libc/startup/current/src/exit.cxx
new file mode 100644
index 0000000..fcc4dc8
--- /dev/null
+++ b/ecos/packages/language/c/libc/startup/current/src/exit.cxx
@@ -0,0 +1,106 @@
+//=========================================================================
+//
+// exit.cxx
+//
+// Implementation of the exit() function
+//
+//=========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors:
+// Date: 2000-04-30
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//=========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libc_startup.h> // Configuration header
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include <cyg/infra/cyg_trac.h> // Common tracing support
+#include <cyg/infra/cyg_ass.h> // Common assertion support
+#include <stdio.h> // fflush()
+#include <errno.h> // errno
+#include <stdlib.h> // Header for all stdlib functions
+ // (like this one)
+// EXTERNAL PROTOTYPES
+
+externC void
+cyg_libc_invoke_atexit_handlers( void );
+
+// FUNCTIONS
+
+externC void
+exit( int status )
+{
+ CYG_REPORT_FUNCTION(); // shouldn't return, but CYG_FAIL will catch it
+ CYG_REPORT_FUNCARG1DV( status );
+
+ // Strictly the only thing exit() does is invoke the atexit handlers
+ // and flush stdio buffers. Anything else is for _exit()
+ // within the implementation)
+
+#ifdef CYGFUN_LIBC_ATEXIT
+ // we start with the atexit handlers
+ cyg_libc_invoke_atexit_handlers();
+#endif
+
+#ifdef CYGSEM_LIBC_EXIT_CALLS_FFLUSH
+
+ int rc CYGBLD_ATTRIB_UNUSED;
+
+ CYG_TRACE0( true, "Calling fflush( NULL )" );
+ rc = fflush( NULL );
+
+ CYG_TRACE2( rc != 0, "fflush() returned non-zero. It returned %d and "
+ "errno indicates the error: %s", rc, strerror(errno) );
+#endif
+
+ _exit( status );
+
+ CYG_FAIL( "__libc_exit() returning!!!" );
+
+ CYG_REPORT_RETURN();
+} // __libc_exit()
+
+// EOF exit.cxx
diff --git a/ecos/packages/language/c/libc/startup/current/src/invokemain.cxx b/ecos/packages/language/c/libc/startup/current/src/invokemain.cxx
new file mode 100644
index 0000000..3e8865f
--- /dev/null
+++ b/ecos/packages/language/c/libc/startup/current/src/invokemain.cxx
@@ -0,0 +1,130 @@
+//=======================================================================
+//
+// invokemain.cxx
+//
+// Support for startup of ISO C environment
+//
+//========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors:
+// Date: 2000-04-30
+// Purpose: Provide entry point for thread which then calls main()
+// Description: cyg_libc_invoke_main() is used as the entry point for
+// the thread object that is created to call the
+// user-supplied main() function. It sets up the arguments
+// (if any) and invokes exit() if main() returns
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libc_startup.h> // Configuration header
+#include <pkgconf/isoinfra.h>
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include <cyg/infra/cyg_trac.h> // Common tracing support
+#include <cyg/infra/cyg_ass.h> // Common assertion support
+#include <stdlib.h> // exit()
+
+// EXTERNS
+
+externC cyg_bool cyg_hal_stop_constructors;
+
+// FUNCTION PROTOTYPES
+
+externC int
+main( int argc, char *argv[] );
+
+externC void
+cyg_hal_invoke_constructors(void);
+
+externC void
+pthread_exit( void *value_ptr );
+
+// STATICS
+
+#ifdef CYGSEM_LIBC_INVOKE_DEFAULT_STATIC_CONSTRUCTORS
+class cyg_libc_dummy_constructor_class {
+public:
+ cyg_libc_dummy_constructor_class(void) { ++cyg_hal_stop_constructors; }
+};
+
+static cyg_libc_dummy_constructor_class cyg_libc_dummy_constructor_obj
+ CYGBLD_ATTRIB_INIT_PRI(CYG_INIT_PREDEFAULT);
+#endif
+
+// FUNCTIONS
+
+externC void
+cyg_libc_invoke_main( CYG_ADDRWORD )
+{
+ CYG_REPORT_FUNCNAME( "cyg_libc_invoke_main" );
+ CYG_REPORT_FUNCARG1( "argument is %s", "ignored" );
+
+#ifdef CYGSEM_LIBC_INVOKE_DEFAULT_STATIC_CONSTRUCTORS
+ // finish invoking constructors that weren't called by default
+ cyg_hal_invoke_constructors();
+#endif
+
+ // argv[argc] must be NULL according to the ISO C standard 5.1.2.2.1
+ char *temp_argv[] = CYGDAT_LIBC_ARGUMENTS ;
+ int rc;
+
+ rc = main( (sizeof(temp_argv)/sizeof(char *)) - 1, &temp_argv[0] );
+
+ CYG_TRACE1( true, "main() has returned with code %d. Calling exit()",
+ rc );
+
+#ifdef CYGINT_ISO_PTHREAD_IMPL
+ // It is up to pthread_exit() to call exit() if needed
+ pthread_exit( (void *)rc );
+ CYG_FAIL( "pthread_exit() returned!!!" );
+#else
+ exit(rc);
+ CYG_FAIL( "exit() returned!!!" );
+#endif
+
+ CYG_REPORT_RETURN();
+
+} // cyg_libc_invoke_main()
+
+// EOF invokemain.cxx
diff --git a/ecos/packages/language/c/libc/startup/current/src/main.cxx b/ecos/packages/language/c/libc/startup/current/src/main.cxx
new file mode 100644
index 0000000..ab6113f
--- /dev/null
+++ b/ecos/packages/language/c/libc/startup/current/src/main.cxx
@@ -0,0 +1,121 @@
+//=======================================================================
+//
+// main.cxx
+//
+// Default main() function
+//
+//========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors:
+// Date: 2000-04-30
+// Purpose: Provide a default empty main() function
+// Description: This file provides a default empty main() function so
+// that things don't fall apart if the user starts the
+// ISO C environment (the default setting) but doesn't
+// provide their own main(). This is taken advantage of
+// in some tests (for example)
+// Usage: Obviously simply override main() in your own program to
+// prevent the use of the one below
+//
+//####DESCRIPTIONEND####
+//
+//========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/system.h> // for CYGPKG_KERNEL
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include <cyg/infra/cyg_trac.h> // Common tracing support
+#include <cyg/infra/cyg_ass.h> // Common assertion support
+
+#ifdef CYGPKG_KERNEL
+# include <pkgconf/kernel.h> // kernel configuration
+# include <cyg/kernel/thread.hxx> // For thread suspend
+# include <cyg/kernel/thread.inl>
+#endif
+
+// FUNCTION PROTOTYPES
+
+// We provide a weakly named main to allow this to link if the user
+// doesn't provide their own main. This isn't strictly good behaviour,
+// but if the user wants good performance then of _course_ they should
+// play with the config options and this won't be called. Or it might
+// be "giving them enough rope" etc. :-)
+
+externC int
+main( int argc, char *argv[] ) __attribute__((weak));
+
+externC void
+cyg_user_start(void);
+
+// FUNCTIONS
+
+externC int
+main( int argc, char *argv[] )
+{
+ CYG_REPORT_FUNCNAMETYPE("main", "returning %d" );
+
+ // try to be helpful by diagnosing malformed arguments
+ CYG_PRECONDITION( argv != NULL, "argv is NULL!" );
+ CYG_PRECONDITION( argv[argc] == NULL, "argv[argc] isn't NULL!" );
+
+ CYG_REPORT_FUNCARG2("argc=%d, argv[0]=%s", argc,
+ (CYG_ADDRWORD)((argv[0]==NULL) ? "NULL" : argv[0]) );
+
+ CYG_TRACE0( true, "This is the system-supplied default main()" );
+
+ // If the kernel isn't present then cyg_libc_invoke_main() will have assumed
+ // main() is present and will call it. But if we're here, then
+ // evidently the user didn't supply one - which can't be right. So we
+ // assume that they have useful code to run in cyg_user_start() instead.
+ // Its better than just exiting
+#ifndef CYGPKG_KERNEL
+ cyg_user_start();
+#else
+ // Otherwise we suspend ourselves. This prevents problems caused by
+ // running atexit() handlers.
+ Cyg_Thread::self()->suspend();
+#endif
+
+ CYG_REPORT_RETVAL(0);
+ return 0; // some CPUs have 0 hard-wired - faster than a reg
+} // main()
+
+// EOF main.cxx
diff --git a/ecos/packages/language/c/libc/startup/current/src/mainthread.cxx b/ecos/packages/language/c/libc/startup/current/src/mainthread.cxx
new file mode 100644
index 0000000..45dfa83
--- /dev/null
+++ b/ecos/packages/language/c/libc/startup/current/src/mainthread.cxx
@@ -0,0 +1,134 @@
+//=======================================================================
+//
+// mainthread.cxx
+//
+// Support for startup of ISO C environment
+//
+//========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors:
+// Date: 2000-04-30
+// Purpose: Provides a thread object to call into a user-supplied
+// main()
+// Description: Here we define the thread object that calls
+// cyg_libc_invoke_main() which in turn will invoke
+// the user-supplied main() entry point function (or
+// alternatively the dummy empty one supplied by eCos)
+// Usage: Both the stack (cyg_libc_main_stack) and the thread
+// (cyg_libc_main_thread) can be overriden if you provide
+// your own symbols with those names. In the case of the
+// stack obviously you need to ensure
+// CYGNUM_LIBC_MAIN_STACK_SIZE corresponds to your own
+// stack.
+// The thread object is also available externally if you
+// want to control it (suspend/resume/etc.) either by
+// extern Cyg_Thread cyg_libc_main_thread; from C++, using
+// the kernel C++ API, or
+// extern cyg_handle_t cyg_libc_main_thread; from C using
+// the kernel C API.
+//
+//####DESCRIPTIONEND####
+//
+//========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libc_startup.h> // C library configuration
+
+#ifdef CYGSEM_LIBC_STARTUP_MAIN_THREAD
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include <pkgconf/kernel.h> // eCos kernel configuration
+#include <cyg/kernel/thread.hxx> // eCos thread support
+#include <cyg/kernel/thread.inl>
+#include <cyg/hal/hal_arch.h> // for CYGNUM_HAL_STACK_SIZE_TYPICAL
+
+
+// EXTERNS
+
+#ifdef CYGSEM_LIBC_INVOKE_DEFAULT_STATIC_CONSTRUCTORS
+extern cyg_bool cyg_hal_stop_constructors;
+#endif
+
+// FUNCTION PROTOTYPES
+
+externC void
+cyg_libc_invoke_main( CYG_ADDRWORD );
+
+// STATICS
+
+#ifdef CYGSEM_LIBC_MAIN_STACK_FROM_SYSTEM
+
+// override stack size on some platforms
+#ifdef CYGNUM_HAL_STACK_SIZE_TYPICAL
+# if CYGNUM_LIBC_MAIN_DEFAULT_STACK_SIZE < CYGNUM_HAL_STACK_SIZE_TYPICAL
+# undef CYGNUM_LIBC_MAIN_DEFAULT_STACK_SIZE
+# define CYGNUM_LIBC_MAIN_DEFAULT_STACK_SIZE CYGNUM_HAL_STACK_SIZE_TYPICAL
+# endif
+#endif
+
+static cyg_uint8 cyg_libc_main_stack[ CYGNUM_LIBC_MAIN_DEFAULT_STACK_SIZE ]
+ CYGBLD_ATTRIB_ALIGN(CYGARC_ALIGNMENT);
+
+#else // !ifdef CYGSEM_LIBC_MAIN_STACK_FROM_SYSTEM
+
+extern char *cyg_libc_main_stack;
+extern int cyg_libc_main_stack_size;
+
+#endif // !ifdef CYGSEM_LIBC_MAIN_STACK_FROM_SYSTEM
+
+// GLOBALS
+
+// let the main thread be global so people can play with it (e.g. suspend
+// or resume etc.) if that's what they want to do
+Cyg_Thread cyg_libc_main_thread CYGBLD_ATTRIB_INIT_PRI(CYG_INIT_LIBC) =
+ Cyg_Thread(CYGNUM_LIBC_MAIN_THREAD_PRIORITY,
+ &cyg_libc_invoke_main, (CYG_ADDRWORD) 0,
+ "main",
+ (CYG_ADDRESS) &cyg_libc_main_stack[0],
+#ifdef CYGSEM_LIBC_MAIN_STACK_FROM_SYSTEM
+ CYGNUM_LIBC_MAIN_DEFAULT_STACK_SIZE
+#else
+ cyg_libc_main_stack_size
+#endif
+ );
+
+#endif // ifdef CYGSEM_LIBC_STARTUP_MAIN_THREAD
+
+// EOF mainthread.cxx
diff --git a/ecos/packages/language/c/libc/startup/current/tests/atexit.c b/ecos/packages/language/c/libc/startup/current/tests/atexit.c
new file mode 100644
index 0000000..403fced
--- /dev/null
+++ b/ecos/packages/language/c/libc/startup/current/tests/atexit.c
@@ -0,0 +1,137 @@
+//=================================================================
+//
+// atexit.c
+//
+// Testcase for C library atexit()
+//
+//=================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors:
+// Date: 2000-04-30
+// Description: Contains testcode for C library atexit() function
+//
+//
+//####DESCRIPTIONEND####
+
+// CONFIGURATION
+
+#include <pkgconf/libc_startup.h> // Configuration header
+
+// INCLUDES
+
+#include <stdlib.h> // Main header for stdlib functions
+#include <cyg/infra/testcase.h> // Testcase API
+
+
+// STATICS
+
+static int stage;
+static int failed;
+
+// FUNCTIONS
+
+#if defined(CYGFUN_LIBC_ATEXIT)
+
+static void
+myfun1( void )
+{
+ if (!failed)
+ {
+ CYG_TEST_PASS_FAIL( stage==0, "first function called correctly" );
+ stage=1;
+ } // if
+} // myfun1()
+
+static void
+myfun2( void )
+{
+ if (!failed)
+ {
+ CYG_TEST_PASS_FAIL( stage==1, "Second function called correctly" );
+ stage=2;
+ } // if
+} // myfun2()
+
+static void
+myfun3( void )
+{
+ if (!failed)
+ {
+ CYG_TEST_PASS_FAIL( stage==2, "Second function called correctly" );
+ stage=3;
+ } // if
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for C "
+ "library atexit() function");
+
+} // myfun3()
+
+#endif // if defined(CYGFUN_LIBC_ATEXIT)
+
+int
+main( int argc, char *argv[] )
+{
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for C "
+ "library atexit() function");
+
+#if defined(CYGFUN_LIBC_ATEXIT)
+
+ // we only have one test in us! We can only exit once :-)
+
+ CYG_TEST_PASS_FAIL( atexit(&myfun3)==0,
+ "Simple registration of first atexit() function" );
+
+ CYG_TEST_PASS_FAIL( atexit(&myfun2)==0,
+ "Simple registration of second atexit() function" );
+
+ CYG_TEST_PASS_FAIL( atexit(&myfun1)==0,
+ "Simple registration of third atexit() function" );
+
+ return 0;
+#else
+ CYG_TEST_NA("Testing is not applicable to this configuration");
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for C "
+ "library atexit() function");
+
+#endif // if defined(CYGFUN_LIBC_ATEXIT)
+
+} // main()
+
+// EOF atexit.c
diff --git a/ecos/packages/language/c/libc/stdio/current/ChangeLog b/ecos/packages/language/c/libc/stdio/current/ChangeLog
new file mode 100644
index 0000000..237c114
--- /dev/null
+++ b/ecos/packages/language/c/libc/stdio/current/ChangeLog
@@ -0,0 +1,601 @@
+2012-02-19 Sergei Gavrikov <sergei.gavrikov@gmail.com>
+
+ * src/common/vsnprintf.c: If string truncated (C99 case), apply the
+ null termination in correct place.
+ * tests/sprintf2.c: Fix checks for return values if C99 implementation
+ snprintf() used.
+
+2009-08-20 Uwe Kindler <uwe_kindler@web.de>
+
+ * cdl/stdio.cdl Added option CYGIMP_LIBC_STDIO_C99_SNPRINTF
+ for activation of C99 compliant snprintf() return value.
+ * src/output/vfnprintf.cxx: Added optional C99 compliant return
+ value calculation.
+ * tests/snprintf.c: New test for snprintf including C99
+ implementation.
+
+2009-08-07 Jonathan Larmour <jifl@eCosCentric.com>
+
+ * src/common/vsnprintf.cxx (class Cyg_VsnprintfStream):
+ Remove destructor.
+ (vsnprintf): Apply null terminator correctly when truncated.
+
+2009-02-16 Lars Povlsen <lpovlsen@vitesse.com>
+
+ * include/stdio.h: Removed extra semicolon after scanf()
+ prototype.
+
+2009-01-18 Jonathan Larmour <jifl@eCosCentric.com>
+
+ * src/common/fflush.cxx (cyg_libc_stdio_flush_all_but): Fix silly
+ typo in last change.
+
+2009-01-15 Jonathan Larmour <jifl@eCosCentric.com>
+
+ * src/common/fflush.cxx (cyg_libc_stdio_flush_all_but): Ensure the
+ files table can't change. Thanks to Xiaochen Zhou for the detective
+ work.
+
+2008-07-21 Guenter Ebermann <guenter.ebermann@gmx.at>
+
+ * src/common/fclose.cxx (fclose): Replace config-dependent use of
+ delete with free(), as the memory had been allocated with malloc.
+
+2007-07-02 Gary Thomas <gary@mlbassoc.com>
+
+ * src/output/vfnprintf.cxx: Add (char *) casts to make GCC/4.2.x happy.
+
+2007-02-05 Sergei Organov <osv@javad.com>
+
+ * src/output/vfnprintf.cxx (vfnprintf): while formatting integers
+ in decimal, convert the value to unsigned long from unsigned long
+ long before processing, unless we actually print long long
+ argument. This tremendously speeds-up the formatting.
+
+2007-01-16 Sergei Organov <osv@javad.com>
+
+ Speed-up [v]s[n]printf() functions by a factor of about 2+. In
+ particular, sprintf(s, "%s", "") becomes faster 2.8 times,
+ printing of every character -- 1.7 times, and, as a result, e.g.,
+ printing of a string of length 50 -- 2.2 times.
+
+ * include/stream.hxx (class Cyg_OutputStream): New ABC.
+ (class Cyg_StdioStream): inherit from Cyg_OutputStream; make
+ the destructor, write(), and get_error() virtual.
+
+ * src/output/vfnprintf.cxx (vfnprintf): Use ABC Cyg_OutputStream
+ instead of Cyg_StdioStream.
+
+ * src/common/vsnprintf.cxx (class Cyg_VsnprintfStream): New class
+ that specializes Cyg_OutputStream for output to a string.
+ (vsnprintf): Use Cyg_VsnprintfStream for printing to a string.
+
+2006-12-22 Sergei Organov <osv@javad.com>
+
+ * src/output/vfnprintf.cxx (vfnprintf): Speed-up formatting of
+ decimal integers by replacing modulo operation with multiply and
+ subtract.
+
+2006-09-27 Jonathan Larmour <jifl@eCosCentric.com>
+
+ * include/stdio.h: Make fpos_t be signed to allow negative
+ SEEK_CUR offsets to fseek().
+ * include/stream.inl (set_position): If SEEK_CUR, then if
+ having to reconcile difference between position and underlying
+ file position, then requested seek position needs adjusting
+ for buffer size.
+ Both above reported and analysed by Ivan Djelic.
+
+2006-09-26 Jonathan Larmour <jifl@eCosCentric.com>
+
+ * src/common/stream.cxx (read): Only update position after direct
+ reads from I/O system so it's updated by the correct number of
+ bytes.
+ (write): Reset underlying file position if there had been
+ stuff read from the file left in the buffer so the file positions
+ are inconsistent.
+
+2005-07-22 Andrew Lunn <andrew.lunn@ascom.ch>
+
+ * src/common/fopen.cxx (fopen): Default the open mode to Read
+ until we have process the flags. Initialize the dev handle. These
+ keep the compiler happy.
+
+2005-04-11 Jonathan Larmour <jifl@eCosCentric.com>
+
+ * src/common/stream.cxx (read): don't reference flags.buffering
+ when configured by CDL to be unbuffered.
+
+2005-03-27 Andrew Lunn <andrew.lunn@ascom.ch>
+
+ * include/stdio.h: Added CYGBLD_ATTRIB_{PRINTF|SCANF}_FORMAT where
+ appropriate so the compiler does more checking.
+
+2004-12-08 Daniel Neri <daniel.neri@sigicom.se>
+
+ * cdl/stdio.cdl (CYGPKG_LIBC_STDIO_FILEIO): The FILEIO variant of
+ vsnprintf breaks if CYGSEM_LIBC_STDIO_DYNAMIC_SETVBUF is disabled.
+
+2004-09-27 Jonathan Larmour <jifl@eCosCentric.com>
+
+ * cdl/stdio.cdl (CYGFUN_LIBC_STDIO_OPEN_POSIX_FDFUNCS): New option,
+ to control whether or not fdopen()/fileno() are implemented.
+ Only build fopen/fclose if CYGPKG_LIBC_STDIO_OPEN.
+
+ * src/common/fclose.cxx: Can remove ifdef CYGPKG_LIBC_STDIO_OPEN since
+ file now isn't even built if not.
+ * src/common/fopen.cxx: Ditto. Also condition on
+ CYGFUN_LIBC_STDIO_OPEN_POSIX_FDFUNCS so decision is centralised in CDL.
+
+2004-08-18 Jonathan Larmour <jifl@eCosCentric.com>
+
+ * cdl/stdio.cdl (CYGDAT_LIBC_STDIO_DEFAULT_CONSOLE): Only use
+ CYGDAT_IO_SERIAL_TTY_CONSOLE if set.
+
+2004-08-18 Fredrik Hederstierna <fredrik@wespot.com>
+2004-08-18 Jonathan Larmour <jifl@eCosCentric.com>
+
+ * src/input/vfscanf.cxx (vfscanf): Add long long and long double
+ support.
+ * cdl/stdio.cdl (CYGFUN_LIBC_STDIO_LONGLONG): Make it a new option.
+
+2004-08-16 Oyvind Harboe <oyvind.harboe@zylin.com>
+
+ * src/common/stream.cxx (read): fixed performance problem with
+ unbuffered reads. Long unbuffered i/o read requests would cause
+ one roundtrip to the underlying file system for each byte, instead
+ of a single trip as intended.
+
+2004-03-29 Kelvin Lawson <klawson@ad-holdings.co.uk>
+
+ * src/common/fopen.cxx:
+ * src/common/stream.cxx:
+ * include/io.inl:
+ * include/stream.hxx:
+ Split CYGSTREAM_READWRITE into CYGSTREAM_READWRITE_CREATE and
+ CYGSTREAM_READWRITE_NOCREATE. This fixes fopen() with mode 'w+'
+ which previously did not allow file creation.
+
+2004-03-27 Andrew Lunn <andrew.lunn@ascom.ch>
+
+ * include/stream.inl (set_position): Flush the output buffer
+ before seeking the underlying file otherwise the writes ends up in
+ the wrong location in the file.
+
+2004-03-15 Jonathan Larmour <jifl@eCosCentric.com>
+
+ * src/common/fileops.cxx (tmpnam): Only close if open() succeded.
+
+2004-03-12 Jonathan Larmour <jifl@eCosCentric.com>
+
+ * src/input/vfscanf.cxx (vfscanf): Silence warning.
+
+ * include/stdio.h:
+ Add file operation functions which weren't here before!
+ While I'm here, add __THROW everywhere and use __externC not externC.
+
+ * cdl/stdio.cdl: We implement stdio fileops in isoinfra now.
+ Also set header for that.
+ Build fileops.cxx.
+ L_tmpnam must be at least 4.
+ TMP_MAX must be at least 1, and ISO C says it should be >=25.
+ Add description for CYGPKG_LIBC_STDIO_FILEIO and move up from
+ bottom so it goes with others.
+
+ * src/common/fileops.cxx: New file. Implements rename(), remove(),
+ tmpnam() and tmpfile().
+
+ * src/common/fclose.cxx: Add throw specifiers to match stdio.h.
+ * src/common/feof.cxx: Ditto.
+ * src/common/fflush.cxx: Ditto.
+ * src/common/fopen.cxx: Ditto.
+ * src/common/freopen.cxx: Ditto.
+ * src/common/fseek.cxx: Ditto.
+ * src/common/setvbuf.cxx: Ditto.
+ * src/common/snprintf.cxx: Ditto.
+ * src/common/sprintf.cxx: Ditto.
+ * src/common/sscanf.cxx: Ditto.
+ * src/common/stdioinlines.cxx: Ditto.
+ * src/common/ungetc.cxx: Ditto.
+ * src/common/vsnprintf.cxx: Ditto.
+ * src/common/vsscanf.cxx: Ditto.
+ * src/input/fgetc.cxx: Ditto.
+ * src/input/fgets.cxx: Ditto.
+ * src/input/fread.cxx: Ditto.
+ * src/input/fscanf.cxx: Ditto.
+ * src/input/gets.cxx: Ditto.
+ * src/input/scanf.cxx: Ditto.
+ * src/input/vfscanf.cxx: Ditto.
+ * src/output/fnprintf.cxx: Ditto.
+ * src/output/fprintf.cxx: Ditto.
+ * src/output/fputc.cxx: Ditto.
+ * src/output/fputs.cxx: Ditto.
+ * src/output/fwrite.cxx: Ditto.
+ * src/output/printf.cxx: Ditto.
+ * src/output/vfnprintf.cxx: Ditto.
+
+2004-02-17 Jonathan Larmour <jifl@eCosCentric.com>
+
+ * cdl/stdio.cdl (CYGSEM_LIBC_STDIO_THREAD_SAFE_STREAMS): Can
+ be inactive when no kernel.
+ * cdl/stdio.cdl: Implements file positioning functions in isoinfra.
+
+2003-09-03 Thomas Koeller <thomas.koeller@baslerweb.com>
+
+ * cdl/stdio.cdl: only require "/dev/haldiag" if actually using it.
+
+2003-08-12 Scott Wilkinson <scott@alliantnetworks.com>
+
+ * src/common/fclose.cxx (fclose): fclose would seg-fault if passed
+ NULL FILE pointer. Now returns error. Also cleaned up some exit
+ paths to call Cyg_libc_stdio_files::unlock()
+
+ * src/common/fopen.cxx (fopen): Cleaned up some exit paths to call
+ Cyg_libc_stdio_files::unlock()
+
+2003-06-10 Andrew Lunn <andrew.lunn@ascom.ch>
+ Knud Wöhler <woehler@ossi.fho-emden.de>
+
+ * src/output/vfnprintf.cxx (SARG): Cast size_t to long. This seems
+ to stop gcc from producing wrong code for the plain int clause. The
+ wrong code causes negative numbers to be printed as positive because
+ the sign extend from 32 bits to 64 bits is wrong.
+
+2003-03-06 Gary Thomas <gary@mlbassoc.com>
+
+ * src/input/fread.cxx (fread): Simple EOF should not set error.
+
+ * tests/fileio.c: New file.
+ * cdl/stdio.cdl: Add new file I/O tests.
+
+2003-02-24 Jonathan Larmour <jifl@eCosCentric.com>
+
+ * cdl/stdio.cdl: Fix doc link.
+
+2003-02-15 Fabrice Gautier <Fabrice_Gautier@sdesigns.com>
+
+ * include/stdio.inl (setbuf): Don't supply size with _IONBF.
+ * src/common/stdioinlines.cxx (setbuf): Ditto.
+
+2003-01-29 Jonathan Larmour <jifl@eCosCentric.com>
+
+ * src/output/vfnprintf.cxx: Add support for C99 'z' flag (size_t).
+
+2002-09-02 Andrew Lunn <andrew.lunn@ascom.ch>
+
+ * include/stream.inl (set_position): Fixed typo in none buffered
+ case. Seek pos bytes, not whence bytes.
+
+2002-05-17 Martin Buck <martin.buck@ascom.ch>
+
+ * include/stdio.h (fnprintf): Added printf-format-checking using
+ CYGBLD_ATTRIB_PRINTF_FORMAT, since gcc does it automatically only for
+ ISO C90 functions.
+ (snprintf) Likewise.
+
+2002-04-24 Yoshinori Sato <qzb04471@nifty.ne.jp>
+
+ * include/streambuf.inl (Cyg_StdioStreamBuffer constructor):
+ Don't set default args in func definition.
+ (set_buffer): Ditto.
+
+2002-04-05 Jonathan Larmour <jlarmour@redhat.com>
+
+ * src/input/fgetc.cxx (fgetc): Silence conversion warning.
+
+2002-04-04 Jonathan Larmour <jlarmour@redhat.com>
+
+ * src/common/fopen.cxx (fopen_inner): Allocate memory using malloc and
+ placement new, not default new.
+
+ * src/input/fgetc.cxx (fgetc): Don't set error on true EOF.
+
+2002-04-04 Jurica Baricevic <jura@INTESIS.hr>
+
+ * src/common/fclose.cxx (fclose): Use delete if we can.
+
+2002-02-06 Jonathan Larmour <jlarmour@redhat.com>
+
+ * src/input/fread.cxx (fread): when looping read into ptrc, not ptr!
+
+2002-01-25 Jonathan Larmour <jlarmour@redhat.com>
+
+ * include/stream.inl (set_position): Fix the seek backwards case again.
+ Doh!
+
+2002-01-24 Jonathan Larmour <jlarmour@redhat.com>
+
+ * include/stream.inl (set_position): Fix the posdiff == 0 case.
+
+2002-01-24 Jesper Skov <jskov@redhat.com>
+
+ * include/stream.inl (set_position): Check that posdiff is >0
+ before taking the code path that assumes so.
+
+2002-01-17 Jonathan Larmour <jlarmour@redhat.com>
+
+ * include/stream.inl (set_position): Use an off_t for bytesavail to
+ prevent warnings.
+
+2001-12-05 Jonathan Larmour <jlarmour@redhat.com>
+
+ * src/common/fflush.cxx (cyg_libc_stdio_flush_all_but): Fix starvation
+ problem when waiting for threads to unlock of lower priority.
+ Fix for bug #57014.
+
+2001-11-23 Jonathan Larmour <jlarmour@redhat.com>
+
+ * cdl/stdio.cdl: Add dependency on stdlib string conversion functions
+ for *scanf.
+
+2001-08-10 Robin Farine <robin.farine@terminus.org>
+
+ * src/output/vfnprintf.cxx (cvt): Handles the cases of finite,
+ NaN and infinite numbers separately.
+
+ * src/common/stream.cxx (read): Read correct number of bytes when
+ a character has been "ungot".
+
+2001-08-03 Jonathan Larmour <jlarmour@redhat.com>
+
+ * include/streambuf.inl (~Cyg_StdioStreamBuffer): use correct configury
+ to decide when to call free.
+
+2001-07-27 Jesper Skov <jskov@redhat.com>
+
+ * src/common/fflush.cxx (cyg_libc_stdio_flush_all_but): The check
+ for last operation being a read is only valid in buffered IO mode.
+
+2001-07-20 Jonathan Larmour <jlarmour@redhat.com>
+
+ * include/stream.inl (set_position): Take read buffer into account
+ when seeking. Thanks to jjtsai <jjtsai@itri.org.tw> for the
+ help.
+
+2001-07-12 Jonathan Larmour <jlarmour@redhat.com>
+
+ * src/common/fflush.cxx (cyg_libc_stdio_flush_all_but): Don't
+ flush a stream that was last used for reading - it doesn't need it.
+ * include/stream.hxx: cyg_libc_stdio_flush_all_but needs to be a
+ friend of class Cyg_StdioStream to do the above.
+
+2001-06-18 Jonathan Larmour <jlarmour@redhat.com>
+
+ * src/input/fread.cxx (fread): Fix compilation problem with below
+ change.
+
+2001-06-15 Rob Jansen <rwjansen@planet.nl>
+
+ * src/input/fread.cxx (fread): Changed to read the requested amount
+ of data items instead of stopping on CYG_LIBC_STDIO_BUFSIZE boundaries.
+
+2001-06-08 Jeff Johnston <jjohnstn@redhat.com>
+
+ * src/input/vfscanf.cxx (vfscanf)[CYGINT_LIBC_I18N_MB_REQUIRED]: Added
+ call to mbtowc_fn for current locale to process format string.
+ Also added variable definitions needed in this circumstance.
+ * src/output/vfnprintf.cxx (vfnprintf)[CYGINT_LIBC_I18N_MB_REQUIRED]: Ditto.
+ (vfnprintf): Changed non-multibyte path to simply use the current
+ character rather than call the C mbtowc function since only
+ single byte characters would be possible.
+
+2001-03-19 Jonathan Larmour <jlarmour@redhat.com>
+
+ * src/common/stream.cxx (refill_read_buffer): Flush all streams here...
+ (read): ...rather than here, or...
+ (read_byte): ...here.
+ This means less flushing, which improves performance.
+
+ * src/input/fgets.cxx: Add a reminder comment to improve this later.
+ * src/input/gets.cxx: Ditto.
+
+
+2001-03-16 Jonathan Larmour <jlarmour@redhat.com>
+
+ * include/stream.hxx (class Cyg_StdioStream): Improve member visibility.
+
+ * src/common/stream.cxx (refill_read_buffer): Ensure eof is set.
+ * src/common/feof.cxx: New file. Implements the long lost
+ feof(), ferror() and clearerr() functions which were MIA for
+ no good reason.
+ * cdl/stdio.cdl: Build it.
+
+2001-03-15 Jonathan Larmour <jlarmour@redhat.com>
+
+ * cdl/stdio.cdl (CYGDAT_LIBC_STDIO_DEFAULT_CONSOLE): Default to
+ tty default console.
+
+ * src/input/fgets.cxx (fgets): Reimplement to work with EOF properly.
+ Add tracing.
+ * src/input/gets.cxx (gets): Ditto.
+
+ * include/io.hxx, include/io.inl, include/stream.hxx,
+ include/stream.inl, include/streambuf.hxx, include/streambuf.inl:
+ Silence warnings from recent compilers.
+
+2001-02-01 Jonathan Larmour <jlarmour@redhat.com>
+
+ * cdl/stdio.cdl (CYGPKG_LIBC_STDIO_OPEN): Implements
+ CYGINT_ISO_STDIO_POSIX_FDFUNCS ( fileno() and fdopen() ).
+
+2000-11-01 Jonathan Larmour <jlarmour@redhat.com>
+
+ * include/stdio.h: Make FILE array type larger to be more resistant
+ against small data sections.
+ Lose the cyg_libc_stdio_stdin/out/err definitions with macros for
+ stdin/stdout/err since it can cause problems with libgcc exception
+ code. Instead just make these extern FILE *s.
+ * src/common/stderr.cxx:
+ * src/common/stdin.cxx:
+ * src/common/stdout.cxx:
+ Define objects with init priority corresponding to order the fd's
+ should be allocated where applicable.
+ Define actual stdin, stdout, stderr externally visible constants to
+ point to the streams.
+
+ * cdl/stdio.cdl: Support CYGINT_ISO_STDIO_STREAMS interface
+
+ * src/common/fopen.cxx (fdopen): return f as intended
+
+2000-10-23 Jesper Skov <jskov@redhat.com>
+
+ * include/streambuf.inl: Adjust assertions to cope with buffers
+ generated by sprintf and similar non-bound-buffer calls.
+
+2000-08-09 Jonathan Larmour <jlarmour@redhat.co.uk>
+
+ * include/io.inl: No need to include string.h
+
+ * cdl/stdio.cdl: Add some more requires statements
+
+2000-08-07 Jonathan Larmour <jlarmour@redhat.co.uk>
+
+ * src/common/stream.cxx (Cyg_StdioStream::Cyg_StdioStream):
+ Only call io_buf members conditionally.
+
+2000-08-03 Jonathan Larmour <jlarmour@redhat.co.uk>
+
+ * src/common/fseek.cxx: Include assertion and tracing support since
+ they are used.
+
+2000-07-20 Nick Garnett <nickg@cygnus.co.uk>
+
+ * include/stream.hxx (class Cyg_StdioStream): Added get_dev()
+ accessor member function to return underlying device handle.
+
+ * src/common/fopen.cxx: Added fdopen() and fileno(). Reorganized
+ fopen() so that code common with fdopen() is now in a separate
+ function.
+
+ * src/common/stdiosupp.cxx (Cyg_libc_stdio_find_filename): Removed
+ compiler warning.
+
+2000-07-13 Nick Garnett <nickg@cygnus.co.uk>
+
+ * cdl/stdio.cdl: Added common/fseek.cxx to compile list.
+ Reorganized options for stream buffering:
+ CYGSEM_LIBC_STDIO_DYNAMIC_SETVBUF now controls whether the user
+ can attach their own buffer to the stream.
+ CYGSEM_LIBC_STDIO_SETVBUF_MALLOC controls whether buffers can be
+ malloced or only statically defined.
+ Added CYGPKG_LIBC_STDIO_FILEIO option to control whether the STDIO
+ package uses the FILEIO package for all IO, or goes directly to
+ the device drivers as before.
+
+ * include/stdio.h: Added file positioning calls defined in section
+ 7.9.9 of the standard.
+
+ * include/io.hxx:
+ * include/io.inl:
+ Added these files to define an abstraction layer for access to the
+ real device underlying an IO stream. Depending on
+ CYGPKG_LIBC_STDIO_FILEIO this either goes to the FILEIO package or
+ directly to the device drivers.
+
+ * include/stream.hxx:
+ Modifications to use io.hxx abstractions.
+ Added second constructor for creating a buffer-only stream.
+ Added initialize() function which contains most of the common
+ stream initialization code.
+ Added a close() member function.
+
+ * include/stream.inl:
+ Modifications to use io.hxx abstractions.
+ Moved most of the work of the destructor into close() member.
+ Added FILEIO version of set_position() member function.
+
+ * include/streambuf.hxx:
+ * include/streambuf.inl:
+ * src/common/streambuf.cxx:
+ Rearranged to match new buffering configuration options.
+
+ * src/common/stream.cxx:
+ Modifications to use io.hxx abstractions.
+ Added second constructor, and moved common initialization code to
+ initialize() member function.
+ Added code to make position member correctly track current file
+ position.
+
+ * src/common/fopen.cxx:
+ Fixed handling of write/append in process_mode().
+ Moved call of process_mode() to before call to cyg_stdio_open() so
+ that stream modes may be passed in.
+ Added code to detect an interactive stream and choose non-buffered
+ mode - fully buffered is now the default.
+ Added calls to cyg_stdio_close() where appropriate.
+
+ * src/output/vfnprintf.cxx: Removed FLUSH() macro and its
+ uses. Deciding to flush should be in the hands of the buffer code,
+ or the user calling fflush().
+
+ * src/common/vsscanf.cxx:
+ Added FILEIO variant of vsscanf(). This uses a precharged stream
+ object to emulate input.
+
+ * src/common/vsnprintf.cxx:
+ Added FILEIO variant of vsnprintf(). This uses the standard stream
+ object to print into the supplied buffer.
+
+ * src/common/fseek.cxx:
+ Added this file to implement file positioning functions.
+
+ * src/common/fclose.cxx (fclose):
+ Added call to Cyg_StdioStream::close().
+
+ * include/stdiosupp.hxx:
+ * src/common/stdiosupp.cxx:
+ Modified Cyg_libc_stdio_find_filename() to take mode, binary and
+ append arguments.
+
+ * src/common/stdin.cxx:
+ * src/common/stdout.cxx:
+ * src/common/stderr.cxx:
+ Modified calls to Cyg_libc_stdio_find_filename() to pass
+ appropriate values for mode, binary and append arguments.
+
+2000-06-18 Jonathan Larmour <jlarmour@redhat.co.uk>
+
+ * src/common/vsscanf.cxx: Add NULL select entry to DEVIO_TABLE
+ * src/common/vsnprintf.cxx: Likewise
+
+2000-05-25 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * include/stream.inl (set_error): If the error is EEOF, set
+ the EOF flag (flags.at_eof) so that clients know.
+
+ * src/input/fgetc.cxx (__fgetc):
+ * src/input/fgets.cxx (_fgets):
+ * src/input/fread.cxx (_fread): Correctly handle an error,
+ or EOF indication, from real_stream->refill_read_buffer().
+
+2000-05-02 Jonathan Larmour <jlarmour@redhat.co.uk>
+
+ * New package
+ Separated original libc out into separate packages on functional
+ boundaries.
+ Header files are now managed by isoinfra package
+ Plenty of cleanups done, but no major functionality changes
+
+//===========================================================================
+// ####GPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004, 2006, 2009 Free Software Foundation, Inc.
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 or (at your option) any
+// later version.
+//
+// This program 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
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the
+// Free Software Foundation, Inc., 51 Franklin Street,
+// Fifth Floor, Boston, MA 02110-1301, USA.
+// -------------------------------------------
+// ####GPLCOPYRIGHTEND####
+//===========================================================================
diff --git a/ecos/packages/language/c/libc/stdio/current/ChangeLog.libc b/ecos/packages/language/c/libc/stdio/current/ChangeLog.libc
new file mode 100644
index 0000000..8809e93
--- /dev/null
+++ b/ecos/packages/language/c/libc/stdio/current/ChangeLog.libc
@@ -0,0 +1,2735 @@
+This ChangeLog file is now obsolete. This is the original ChangeLog from when
+libc was one large package, before being separated. It is included for
+historical reasons.
+
+2000-04-05 Jesper Skov <jskov@redhat.com>
+
+ * src/time/settime.cxx:
+ * src/time/time.cxx:
+ Wallclock moved to io/.
+
+2000-03-28 John Dallaway <jld@cygnus.co.uk>
+
+ * cdl/string.cdl,
+ cdl/stdlib.cdl,
+ cdl/stdio.cdl,
+ cdl/libc.cdl:
+
+ Adjust documentation URLs.
+
+2000-03-27 Jesper Skov <jskov@redhat.com>
+
+ * src/clibincl/stream.inl (check_this): Use cyb_bool instead of bool.
+
+2000-03-06 Jesper Skov <jskov@redhat.com>
+
+ * tests/time/strftime.c (test): Adjust test to match below change.
+
+2000-03-02 Jonathan Larmour <jlarmour@redhat.co.uk>
+
+ * src/time/strftime.cxx (do_format): Make sure %m counts from
+ 1..12 rather than 0..11. Fix for case 103300
+
+2000-02-29 Jonathan Larmour <jlarmour@redhat.co.uk>
+
+ * src/stdio/output/vfnprintf.cxx: Correctly use 'n' parameter to
+ restrict length. Credit due to Andrew Lunn here as well.
+ Resolves 103057-CR-1
+
+ * tests/stdio/sprintf2.c (test):
+ Add snprintf tests to verify the correct behaviour of restricting
+ output length
+
+2000-02-10 Jesper Skov <jskov@redhat.com>
+
+ * tests/signal/signal2.c (main):
+ Also reclaim DATA_TLB_MISS vector if available.
+
+2000-01-31 Simon FitzMaurice <sdf@cygnus.co.uk>
+ * cdl/*.cdl:
+
+ Adjust help URLs in line with new doc layout.
+
+2000-01-28 Simon FitzMaurice <sdf@cygnus.co.uk>
+ * cdl/*.cdl:
+
+ Adjust help URLs in line with new doc layout.
+
+2000-01-19 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * cdl/*.cdl: Add descriptions to a number of options &c which were
+ lacking same, also tidied up other typos as noticed en passant.
+
+1999-11-11 Bart Veer <bartv@cygnus.co.uk>
+
+ * cdl/string.cdl:
+ Switch to a single boolean configuration option for code size vs.
+ speed optimization.
+
+1999-11-03 John Dallaway <jld@cygnus.co.uk>
+
+ * cdl/libc.cdl: Define tests.
+
+1999-10-19 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/output/vfnprintf.cxx: We can now remove Berkeley
+ advertising clause
+ * src/stdlib/div.cxx: ditto
+ * src/stdlib/ldiv.cxx: ditto
+ * src/stdlib/strtol.cxx: ditto
+ * src/stdlib/strtoul.cxx: ditto
+ * src/string/strtok.cxx: ditto
+
+1999-10-19 John Dallaway <jld@cygnus.co.uk>
+
+ * cdl/libc.cdl:
+
+ Define CDL options for package-specific CFLAGS.
+
+1999-10-08 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h (CYGNUM_LIBC_MAIN_THREAD_PRIORITY): Change
+ default to 10 to keep test farm happy
+ * cdl/startup.cdl: Likewise
+
+1999-10-07 John Dallaway <jld@cygnus.co.uk>
+
+ * cdl/stdlib.cdl, cdl/string.cdl:
+
+ Specify radio buttons using CDL interfaces.
+
+1999-10-06 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * cdl/stdio.cdl: Change default to /dev/ttydiag as per 1999-10-01
+ change below
+ * cdl/startup.cdl: Add new form CDL for the startup changes as
+ per 1999-10-05
+
+1999-10-05 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/libc.h: Add CYGSEM_LIBC_MAIN_STACK_FROM_SYSTEM to allow
+ the user to supply their own stack.
+ Rename CYGNUM_LIBC_MAIN_STACK_SIZE to
+ CYGNUM_LIBC_MAIN_DEFAULT_STACK_SIZE and reparent under
+ CYGSEM_LIBC_MAIN_STACK_FROM_SYSTEM
+ Add CYGNUM_LIBC_MAIN_THREAD_PRIORITY to provide main() thread
+ priority
+
+ * src/support/mainthread.cxx: Add support for user-supplied stack
+ Allow user to specify thread priority
+
+ These changes fix CR 101069
+
+1999-10-01 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h (CYGDAT_LIBC_STDIO_DEFAULT_CONSOLE): Change
+ default to /dev/ttydiag to get correct console-like behaviour
+ Also don't preclude use if haldiag package isn't included
+ (case 102065)
+
+1999-09-15 Jesper Skov <jskov@cygnus.co.uk>
+
+ * tests/signal/signal2.c (cause_fpe): Try both float and integer
+ division by zero.
+
+1999-09-10 Jesper Skov <jskov@cygnus.co.uk>
+
+ * src/stdlib/malloc.cxx (cyg_libc_get_malloc_pool): Added for
+ stress_threads test.
+
+1999-09-07 Jesper Skov <jskov@cygnus.co.uk>
+ PRs 20243, 20433
+ * tests/signal/signal2.c: Disabled test3 on ARM.
+
+1999-09-02 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * include/assert.h: Make the sense of NDEBUG correct; it is "set"
+ when NOT debugging. Fix for CR 101983-CR-1
+ See Stroustrup, "The C++ Programming Language."
+
+1999-08-18 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/fopen.cxx (_fopen): Set buffer size 0 when not
+ buffering
+ Fix for case 101868
+
+1999-08-17 John Dallaway <jld@cygnus.co.uk>
+
+ * cdl/stdlib.cdl, cdl/string.cdl:
+
+ Implement radio buttons using "FIXME radio" hack in
+ description field for now.
+
+1999-08-12 John Dallaway <jld@cygnus.co.uk>
+
+ * cdl/stdlib.cdl:
+ Take advantage of MACRONAME_ENUMVAL macros output by CDL.
+
+1999-08-06 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdio/sprintf2.c (test): Don't rely on 2.345 being exactly
+ representable in binary as a difference of 1 ulp will make it round
+ the wrong way.
+
+1999-07-16 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/input/fgetc.cxx:
+ Include outline versions of getc() (actually just a symbol alias for
+ fgetc() ) and getchar()
+ Some minor clean-ups
+ Add tracing/assertions
+
+ * src/stdio/input/fputc.cxx:
+ Likewise (except applied to putc() and putchar())
+
+ * src/stdio/common/stdioinlines.cxx (_puts):
+ Call fputc() not _fputc()
+
+ * src/clibincl/stdiosupp.hxx:
+ Remove now obsolete prototypes for _fgetc() and _fputc()
+
+ * include/stdio.h:
+ Don't bother with getc()/putc() macros any more, just call
+ them as functions
+ Include protos for getc(), putc(), getchar() and putchar() functions
+
+1999-06-21 Jesper Skov <jskov@cygnus.co.uk>
+
+ * tests/signal/signal2.c: Disabled test 3 for SH EDK7708.
+
+1999-06-11 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/stdio.h: Make FILEs array types so they won't be
+ given $gp relocations on MIPS targets
+
+1999-05-27 Jesper Skov <jskov@cygnus.co.uk>
+
+ * tests/time/ctime.c: Fixed compiler warning.
+
+1999-05-25 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/signal/signal2.c (main):
+ Update CYGPKG_HAL_TX39 -> CYGPKG_HAL_MIPS_TX39 due to recent MIPS
+ HAL changes
+ Fix for PR 20116
+
+1999-04-30 Jesper Skov <jskov@lassi.cygnus.co.uk>
+ PR 19945/19946 workaround
+ * tests/signal/signal2.c: Disabled test 3 for PowerPC sim.
+
+1999-04-19 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/time.inl:
+ Ensure all calls to cyg_libc_time_year_is_leap() are with the full
+ year, and not the direct contents of a struct tm, which are (year-1900)
+
+1999-04-19 Jesper Skov <jskov@cygnus.co.uk>
+ PR 19308, 19410, 19528
+ * tests/time/clock.c (test): Also disable data cache which may
+ affect timing when tracing/assertions are enabled.
+
+1999-04-15 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/stdiosupp.hxx:
+ Add prototype for new cyg_libc_stdio_flush_all_but() function
+
+ * src/clibincl/stream.hxx:
+ Don't include stdiosupp.hxx any more to prevent circular dependency,
+ therefore manually provide _setvbuf prototype
+ Make sure pkgconf/kernel.h is included before mutex.hxx
+
+ * src/clibincl/stream.inl (Cyg_StdioStream::set_error()):
+ Add missing unlock_me()
+
+ * src/stdio/common/fflush.cxx:
+ Separate most of code for fflush(NULL) into separate
+ cyg_libc_stdio_flush_all_but() function, which has the extra
+ capability of omitting one stream
+
+ * src/stdio/common/stderr.cxx:
+ * src/stdio/common/stdin.cxx:
+ * src/stdio/common/stdout.cxx:
+ * src/stdio/common/vsnprintf.cxx:
+ * src/stdio/common/vsscanf.cxx:
+ Add missing clibincl/stdiosupp.hxx include
+
+ * src/stdio/common/stream.cxx (Cyg_StdioStream::read()):
+ When reading, ensure we flush all output streams
+
+ * src/stdio/common/stream.cxx (Cyg_StdioStream::flush_output_unlocked):
+ Flush the device as well
+
+1999-04-15 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/streambuf.cxx (set_buffer):
+ * src/stdio/common/stdioinlines.cxx (_setbuf):
+ * src/clibincl/streambuf.inl:
+ * src/clibincl/streambuf.hxx:
+ * src/clibincl/stream.hxx (class Cyg_StdioStream):
+ * include/pkgconf/libc.h:
+ * include/stdio.inl (setbuf):
+ Fix dumb typo: BUFSIZE -> BUFSIZ
+ This fixes PR19837
+
+1999-04-15 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/stdioinlines.cxx (_setbuf):
+ * include/stdio.inl (setbuf):
+ Use _IONBF when buf==NULL, and _IOLBF otherwise.
+ Fix for PR 19836
+
+1999-04-15 John Dallaway <jld@cygnus.co.uk>
+
+ * include/pkgconf/libc.h: Tidy display string capitalization.
+
+1999-04-12 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Clarify CDL description of CYGNUM_LIBC_MALLOC_MEMPOOL_SIZE
+
+ * tests/signal/signal2.c: Try harder to generate an exception by
+ accessing a misaligned address
+ Don't handle SIGTRAP any more
+ Part of fix for PRs 19731/19607
+
+1999-04-07 Jesper Skov <jskov@cygnus.co.uk>
+ PR 19667
+ * src/support/mainthread.cxx:
+ Changed to use the new Cyg_Thread constructor.
+
+1999-04-07 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * tests/signal/signal2.c (main): Use new macro
+ HAL_VSR_SET_TO_ECOS_HANDLER if defined, to wrest control from
+ CygMon, for example, by reinstalling eCos' default VSRs for
+ exceptions that we are provoking.
+
+1999-03-29 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/signal/siginit.cxx: Include stdlib.h for exit()
+ Fix for PR 19720
+
+1999-03-29 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/time/clock.c (test): Disable instruction cache
+ Hopefully fixes PR 19308
+
+1999-03-29 Jesper Skov <jskov@cygnus.co.uk>
+
+ * tests/signal/signal2.c: Disabled test 3 for PPC as it cannot
+ trap division by zero.
+
+1999-03-26 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/support/main.cxx (main): Invoke cyg_user_start() if no kernel
+ Only sensible thing to do in our default main in a non-kernel config
+
+1999-03-25 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/time/time.c:
+ Increase MAX_TIMEOUT since the sparclite gets very close to overrunning
+ it even when working.
+ Should return -1 iff CYGSEM_LIBC_TIME_TIME_WORKING isn't defined
+ Cosmetic changes
+
+1999-03-25 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * tests/time/time.c (test): Take into account setting of
+ CYGSEM_LIBC_TIME_SETTIME_WORKING ie. does cyg_libc_time_settime()
+ work? If not, check that it returns an error.
+ This was exposed by the random combo in PR#19479.
+
+1999-03-23 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Rename CYGSEM_LIBC_RAND_SIMPLEST and CYGSEM_LIBC_RAND_KNUTH1 to
+ CYGIMP_...
+
+ Add another rand implementation CYGIMP_LIBC_RAND_SIMPLE1 which is
+ the default
+
+ Part of fix for PR 19562
+
+ * include/sys/cstartup.h:
+ Tidy and remove unnecessary dependencies
+
+ * src/stdlib/rand.cxx:
+ Rename algorithms from CYGSEM_... to CYGIMP_...
+ Add new "simple1" algorithm
+
+ * tests/ctype/ctype.c:
+ Tidy
+
+ * tests/stdlib/rand3.c:
+ Fix so that 0..RAND_MAX is split evenly over buckets, which it wasn't
+ before
+ Deal with case of RAND_MAX not being divisible by NUM_BUCKETS
+ exactly
+ Increase TEST_LENGTH to 200000 to provide more representative sample
+ Add CYG_TEST_INFO output to help ensure it doesn't time out
+ Tidy
+
+ * tests/stdlib/rand4.c:
+ Only fail if more than _two_ thirds (rather than one third) match.
+ This is because half would match for a perfectly random distribution
+ This is the rest of the fix for PR 19562
+ Cosmetic changes
+
+1999-03-22 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * src/support/mainthread.cxx (CYGNUM_LIBC_MAIN_STACK_SIZE):
+ Use CYGNUM_HAL_STACK_SIZE_TYPICAL for the stack size instead of
+ CYGNUM_HAL_MINIMUM_STACK_SIZE.
+
+1999-03-22 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/PKGconf.mak: Add -Wno-format when building strftime otherwise
+ it generates warnings for things that we do want to test (null
+ string, and %y format)
+
+1999-03-19 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h (CYGNUM_LIBC_TIME_DST_DEFAULT_STATE):
+ Put brackets back round negative number since sdf says the config
+ tool is fixed now (PR 19537)
+
+ Add new CYGSEM_LIBC_RAND_SIMPLEST and CYGSEM_LIBC_RAND_KNUTH1
+ options for different rand() algorithms in a so far failed attempt
+ to fix PR 19562
+
+ * src/stdlib/rand.cxx:
+ Add new optional algorithm from Knuth vol.2
+
+ * tests/stdlib/rand4.c:
+ Some tidies
+ Don't run test when using simplest algorithm
+
+ * tests/signal/signal2.c (main):
+ Don't try to make an FPE on tx39 - its possible to detect but requires
+ too much HAL work to be sensible
+
+1999-03-18 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/signal/siginit.cxx (cyg_libc_signals_hwexcept_handler):
+ Use HAL_ENABLE_INTERRUPTS() rather than kernel to enable interrupts
+
+1999-03-18 Mark Galassi <rosalia@cygnus.com>
+
+ * tests/PKGconf.mak (TESTS): added rand4 compilation.
+
+ * tests/stdlib/rand4.c: added this test for periodicity in the
+ least significant bit of rand().
+
+1999-03-18 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h: Remove CYGFUN_LIBC_TIME_POSIX dependency
+ on CYGPKG_LIBC_STDIO
+
+ * src/stdlib/itoa.cxx:
+ New file to convert integers to ascii
+
+ * include/stdlib.h:
+ Add proto for new cyg_libc_itoa() function
+
+ * include/time.inl:
+ Rework __asctime_r() to use memcpy() and cyg_libc_itoa() rather than
+ sprintf()
+
+ * src/PKGconf.mak:
+ Build stdlib/itoa.cxx
+
+ The above changes fix PR 19448
+
+1999-03-17 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/time.h: Add #define of __time_t_defined to placate newlib
+ if it is used by accident. This is just a temporary workaround though.
+
+1999-03-16 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * src/PKGconf.mak: Add compile option to step around ARM compiler bug.
+
+1999-03-16 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h (CYGNUM_LIBC_TIME_DST_DEFAULT_STATE):
+ Don't use parentheses for now
+
+ * src/stdio/common/stream.cxx (refill_read_buffer):
+ Silence bogus compiler warning
+
+1999-03-16 Jesper Skov <jskov@cygnus.co.uk>
+
+ * tests/signal/signal2.c (main): Enable SIGSEGV test for
+ i386/Linux.
+
+
+1999-03-15 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/signal/siginit.cxx (cyg_libc_signals_hwexcept_handler):
+ Only enable interrupts if they were disabled
+
+ * include/sys/timeutil.h:
+ * src/time/timeutil.cxx:
+ Add FIX ME line as a reminder that the workaround there can go away
+ in future
+
+ * include/pkgconf/libc.h:
+ Add proper define for CYGSEM_LIBC_EXIT_CALLS_FFLUSH
+ Put brackets round negative CYGNUM_LIBC_TIME_DST_DEFAULT_STATE define
+ Fix run time typo
+
+ * include/time.inl (__localtime_r):
+ Include sys/timeutil.h before this to get
+ cyg_libc_time_normalize_structtm()
+
+1999-03-12 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * include/sys/timeutil.h:
+ * src/time/timeutil.cxx: Remove 'const' from char arrays since
+ this fails [silently] on ARM when -fwritable-strings (PR19440)
+
+1999-03-12 Jesper Skov <jskov@cygnus.co.uk>
+
+ * tests/signal/signal2.c (main): Compiler warnings fix was
+ slightly broken.
+
+1999-03-12 Jesper Skov <jskov@cygnus.co.uk>
+ PR 19473
+ * tests/signal/signal2.c (main):
+ Disabling SIGTRAP handling on i386/Linux is not a good idea.
+1999-03-11 Jesper Skov <jskov@cygnus.co.uk>
+ PR 19473
+ * tests/signal/signal2.c:
+ Added compiler warnings fix.
+ Added N/A handling for i386/Linux.
+
+1999-03-10 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * include/pkgconf/libc.h: Force "haldiag" device to be present.
+ 'asctime' and friends need 'stdio' as well.
+
+ * include/time.inl: Fix syntax error on difftime() declaration.
+
+1999-03-08 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * src/clibincl/stream.hxx: <cyg/infra/cyg_ass.h> needed for this file.
+
+ * src/stdio/common/vsscanf.cxx (str_read): Fix problem with string
+ pointer [created by merge with new I/O package].
+
+1999-03-05 John Dallaway <jld@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Add legal values for CYGNUM_LIBC_TIME_STD_DEFAULT_OFFSET
+ and CYGNUM_LIBC_TIME_DST_DEFAULT_OFFSET.
+
+1999-03-05 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/time.inl (cyg_libc_time_year_is_leap):
+ Fix bug with modulo year 400
+ Fix typo in asctime_r macro
+ Fix gmtime_r, and mktime as a result of testing
+
+ * tests/time/asctime.c, tests/time/ctime.c, tests/time/gmtime.c,
+ tests/time/gmtime.c, tests/time/localtime.c, tests/time/mktime.c,
+ tests/time/strftime.c, tests/time/time.c:
+ New tests
+
+ * tests/PKGconf.mak:
+ Build above new tests
+
+ * include/pkgconf/libc.h:
+ Add reminder FIX ME about extra config option
+
+ * src/time/strftime.cxx:
+ Fix %w and %Y parameters as a result of testing
+
+ * src/time/timeutil.cxx:
+ Fix cyg_libc_time_normalize_structtm() as a result of testing
+ of mktime()
+
+ * tests/time/clock.c:
+ Reformat, remove obsolete bits and tidy
+
+ * include/time.h:
+ Add Cyg_libc_time_dst type and new functions
+ cyg_libc_time_setzoneoffsets(), cyg_libc_time_setdst(),
+ cyg_libc_time_getzoneoffsets(), cyg_libc_time_settime()
+
+ * include/time.inl:
+ Implement the above functions. This allows us to adjust for timezone
+ diffences and set the time.
+ Change localtime() to adjust for STD/DST
+ Change mktime() to adjust for STD/DST
+
+ * include/libc.h:
+ Add new config options CYGSEM_LIBC_TIME_SETTIME_WORKING
+ and component CYGPKG_LIBC_TIME_ZONES containing options
+ CYGNUM_LIBC_TIME_DST_DEFAULT_STATE,
+ CYGNUM_LIBC_TIME_STD_DEFAULT_OFFSET,
+ CYGNUM_LIBC_TIME_DST_DEFAULT_OFFSET
+
+ * src/strftime.cxx:
+ Adjust handling of %Z to _not_ deal with STD/DST
+
+ * src/time/settime.cxx:
+ New file to implement cyg_libc_time_settime()
+
+ * src/PKGconf.mak:
+ Build settime.cxx
+
+ * src/time/timeutil.cxx:
+ Supply outline versions of cyg_libc_time_setzoneoffsets(),
+ cyg_libc_time_setdst(), and cyg_libc_time_getzoneoffsets()
+ Add variables for STD/DST state
+ Some minor comment changes
+
+ * include/errno.h:
+ Use CYGBLD_ATTRIB_CONST instead of __attribute__((const)) directly
+
+ * include/signal.h:
+ Change format of function comment headers
+
+ * include/signal.inl:
+ Restrict errno.h inclusion to when its actually used
+ Fix a spelling typo
+
+ * include/stdlib.h:
+ Add CYGBLD_ATTRIB_CONST to abs, div, labs, ldiv
+
+ * include/stdlib.inl:
+ Reformat and tidy
+ Include new versions of div and ldiv which are more portable and
+ are cleanly rewritten so aren't covered by the BSD licence, which
+ is now removed
+
+ * src/stdlib/div.cxx, src/stdlib/ldiv.cxx:
+ Non-inline, non-BSD and portable versions of the new versions of div
+ and ldiv from stdlib.inl
+
+ * include/time.h:
+ Much reformatting, tidying and improving comments
+ Change CLOCKS_PER_SEC from 1000 to 1000000
+ Add new functions asctime_r, ctime_r, gmtime_r, localtime_r, clock,
+ difftime, mktime, time, asctime, ctime, gmtime, localtime, strftime
+ Include new time.inl file
+
+ * include/pkgconf/libc.h:
+ Add new options CYGSEM_LIBC_TIME_CLOCK_WORKING,
+ CYGSEM_LIBC_TIME_TIME_WORKING, CYGFUN_LIBC_TIME_POSIX,
+ CYGNUM_LIBC_TIME_CLOCK_TRACE_LEVEL, CYGIMP_LIBC_TIME_ASCTIME_INLINE,
+ CYGIMP_LIBC_TIME_CTIME_INLINE, CYGIMP_LIBC_TIME_DIFFTIME_INLINE,
+ CYGIMP_LIBC_TIME_GMTIME_INLINE, CYGIMP_LIBC_TIME_LOCALTIME_INLINE,
+ CYGIMP_LIBC_TIME_MKTIME_INLINE, CYGIMP_LIBC_TIME_ASCTIME_R_INLINE,
+ CYGIMP_LIBC_TIME_CTIME_R_INLINE, CYGIMP_LIBC_TIME_GMTIME_R_INLINE,
+ and CYGIMP_LIBC_TIME_LOCALTIME_R_INLINE
+
+ * time/asctime.cxx, time/asctime_r.cxx, time/clock.cxx, time/ctime.cxx,
+ time/ctime_r.cxx, time/difftime.cxx, time/gmtime.cxx,
+ time/gmtime_r.cxx, time/localtime.cxx, time/localtime_r.cxx,
+ time/mktime.cxx, time/strftime.cxx, time/time.cxx, time/timeutil.cxx,
+ include/time.inl:
+ New files to implement the new time functions. Many of them simply
+ provide the outline definitions, but the real body of the function
+ comes from time.inl
+
+ * src/PKGconf.mak:
+ Build new .cxx files
+
+ * src/clibincl/stdlibsupp.hxx:
+ Remove _div and _ldiv prototypes since they're no longer needed
+
+ * src/clibincl/timesupp.hxx:
+ Delete as its now obsolete
+
+ * src/time/clock.cxx:
+ Use new CYGSEM_LIBC_TIME_CLOCK_WORKING option to control whether it
+ just returns (clock_t)-1 or not.
+ Much reformatting and tidying
+ Change real imlpementation from _clock to __clock
+ Use CYGBLD_ATTRIB_WEAK_ALIAS now
+
+ * tests/stdlib/div.c, tests/stdlib/ldiv.c:
+ Add some extra tests for handling of negative numbers
+ Reformat and tidy a bit, including removing the test for CYGPKG_LIBC
+ since its now always defined if the test is to be compiled
+
+ * tests/time/clock.c:
+ Remove duplication CYG_TEST_INFO line
+ Check if unimplemented using "(clock_t)-1" and not just "-1"
+
+1999-03-04 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdlib/system.cxx:
+ Make sure system() is a weak alias for __system()
+
+ * include/pkgconf/libc.h: Rework CDL description for
+ CYGDAT_LIBC_STDIO_DEFAULT_CONSOLE and change its default to
+ "/dev/haldiag"
+
+ * src/stdio/common/stream.cxx:
+ Check that dev is valid when passed to stream constructor
+
+ * src/stdio/common/stdiosupp.cxx:
+ Tidy
+
+ * src/support/mainthread.cxx: Make this depend on
+ CYGSEM_LIBC_STARTUP_MAIN_THREAD rather than just CYGPKG_KERNEL
+
+1999-03-04 Gary Thomas <gthomas@cygnus.co.uk>
+
+ Merged in changes from 'ecos-new_devs-19990216-branch'
+
+ (1999-02-24 Jonathan Larmour <jlarmour@cygnus.co.uk>)
+
+ * src/stdio/common/stream.cxx:
+ Add "fix me" comments and remove a couple of commented out lines
+
+ * src/stdio/common/vsnprintf.cxx:
+ * src/stdio/common/vsscanf.cxx:
+ Revert to using pointer to string for private data, not just string.
+ This preserves the state across multiple calls
+
+ (1999-02-24 Gary Thomas <gthomas@cygnus.co.uk>)
+
+ * src/stdio/common/vsscanf.cxx:
+ * src/stdio/common/vsnprintf.cxx:
+ * src/stdio/common/stream.cxx:
+ * src/stdio/common/stdiosupp.cxx:
+ * src/stdio/common/fopen.cxx:
+ * src/clibincl/stream.inl:
+ * src/clibincl/stream.hxx:
+ * src/clibincl/stdiosupp.hxx:
+ * include/pkgconf/libc.h: Changes for new I/O system.
+
+1999-03-03 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdlib/atexit.c: Forgot to config atexit test for
+ CYGFUN_LIBC_ATEXIT option
+
+ * include/pkgconf/libc.h:
+ Require CYGVAR_KERNEL_THREADS_DATA for CYGSEM_LIBC_PER_THREAD_STRTOK
+ This fixes PR 19362
+ Require CYGPKG_KERNEL for thread safe streams
+ Also don't need "requires CYGPKG_KERNEL" for per-thread rand and errno
+ if we already require a finer granularity kernel option
+
+1999-02-25 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h: Fix CYGNUM_LIBC_MAIN_STACK_SIZE by changing
+ CYGPKG_LIBC_STARTUP_MAIN_THREAD -> CYGSEM_LIBC_STARTUP_MAIN_THREAD
+ Fix for PR 19304
+
+1999-02-23 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdlib/system.cxx: Add to implement trivial system() call
+ * include/stdlib.h: Add system() prototype
+ * src/PKGconf.mak: Build system.cxx
+
+ * tests/ctype/ctype.c, tests/i18n/setlocale.c, tests/setjmp/setjmp.c,
+ tests/signal/signal1.c, tests/signal/signal2.c,
+ tests/stdio/sprintf1.c, tests/stdio/sprintf2.c, tests/stdio/sscanf.c,
+ tests/stdio/stdiooutput.c, tests/stdlib/atexit.c,
+ tests/stdlib/atoi.c, tests/stdlib/atol.c, tests/stdlib/bsearch.c,
+ tests/stdlib/div.c, tests/stdlib/getenv.c, tests/stdlib/labs.c,
+ tests/stdlib/ldiv.c, tests/stdlib/malloc1.c, tests/stdlib/malloc2.c,
+ tests/stdlib/malloc3.c, tests/stdlib/qsort.c, tests/stdlib/rand1.c,
+ tests/stdlib/rand2.c, tests/stdlib/rand3.c, tests/stdlib/realloc.c,
+ tests/stdlib/srand.c, tests/stdlib/strtol.c, tests/stdlib/strtoul.c,
+ tests/string/memchr.c, tests/string/memcmp1.c,
+ tests/string/memcmp2.c, tests/string/memcpy1.c,
+ tests/string/memcpy2.c, tests/string/memmove1.c,
+ tests/string/memmove2.c, tests/string/memset.c,
+ tests/string/strcat1.c, tests/string/strcat2.c,
+ tests/string/strchr.c, tests/string/strcmp1.c,
+ tests/string/strcmp2.c, tests/string/strcoll1.c,
+ tests/string/strcpy1.c, tests/string/strcpy2.c,
+ tests/string/strcspn.c, tests/string/strlen.c,
+ tests/string/strncat1.c, tests/string/strncat2.c,
+ tests/string/strncpy1.c, tests/string/strncpy2.c,
+ tests/string/strpbrk.c, tests/string/strrchr.c,
+ tests/string/strspn.c, tests/string/strstr.c, tests/string/strtok.c,
+ tests/string/strxfrm1.c, tests/string/strxfrm2.c, tests/time/clock.c:
+ Use CYG_TEST_NA() macro for non-applicable test configurations
+
+1999-02-20 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/signal.h:
+ * include/signal.inl:
+ * src/signal/raise.cxx:
+ * src/signal/siginit.cxx:
+ * src/signal/signal.cxx:
+ * tests/signal/signal1.c
+ * tests/signal/signal2.c:
+ New files to implement ISO standard signals
+
+ * src/PKGconf.mak (TESTS):
+ * tests/PKGconf.mak (TESTS):
+ Update to build new files above
+
+ * include/stdlib.h:
+ * src/clibincl/stdlibsupp.hxx:
+ Comment and QA changes (including giving better names to some types)
+
+ * include/libc.h:
+ Add new configuration options for signals
+ Add new CYGSEM_LIBC_STARTUP_MAIN_THREAD option
+ Add a note to CYGNUM_LIBC_MAIN_STACK_SIZE option that it may be
+ overriden by HAL
+ Add new CYGFUN_LIBC_ATEXIT option and move ...ATEXIT_HANDLERS under
+ it
+ Add new CYGSEM_LIBC_EXIT_CALLS_FFLUSH option
+ Require CYGSEM_LIBC_STARTUP_MAIN_THREAD for "Invoke default static
+ constructors" option
+
+ * src/stdlib/atexit.cxx:
+ Support above CYGFUN_LIBC_ATEXIT and QA changes
+
+ * src/stdlib/exit.cxx:
+ Support for above new libc.h options, and some QA changes
+
+ * src/support/cstartup.cxx:
+ Add support for new CYGSEM_LIBC_STARTUP_MAIN_THREAD option
+
+ * src/support/mainthread.cxx:
+ Override main stack size if the HAL has a minimum
+
+ * src/string/strncpy.cxx:
+ Use improved algorithm for aligned copies - imported from newlib
+ QA changes
+
+ * src/stdlib/abort.cxx:
+ Support raise(SIGABRT), and some QA
+
+ * include/errno.h:
+ Add const attribute
+
+ * tests/stdlib/abs.c:
+ QA improvements
+
+1999-02-04 Jesper Skov <jskov@cygnus.co.uk>
+
+ * src/support/cstartup.cxx: Only define cyg_libc_main_thread when
+ the kernel is around.
+
+1999-02-01 Jesper Skov <jskov@cygnus.co.uk>
+
+ * tests/time/clock.c: Joined the two test/NOP checks into
+ one.
+ Increased tolerance in attempt to fix PRs 18737,18787,18846.
+ Fixed typo.
+
+1999-01-28 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/string/strtok.cxx:
+ * src/stdlib/rand.cxx:
+ Include <pkgconf/kernel.h> if we use kernel header files
+
+1999-01-25 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdio/sscanf.c (test):
+ CYGSEM_LIBC_STDIO_PRINTF_FLOATING_POINT should be
+ CYGSEM_LIBC_STDIO_SCANF_FLOATING_POINT
+ Fix for PR 18786
+
+ * src/string/strtok.cxx:
+ * src/stdio/common/stdiofiles.cxx:
+ * src/errno/errno.cxx:
+ * src/stdlib/rand.cxx:
+ Give mutex protection objects a libc constructor priority
+
+ * src/support/invokemain.cxx:
+ Add prototype for cyg_hal_invoke_constructors()
+
+ * src/support/mainthread.cxx:
+ Give cyg_libc_dummy_constructor_obj a libc constructor priority,
+ and make its class have a public constructor
+
+ * src/stdio/common/stderr.cxx:
+ * src/stdio/common/stdout.cxx:
+ * src/stdio/common/stdin.cxx:
+ Give cyg_libc_stdio_stdin/out/err static objects a libc constructor
+ priority
+
+ * src/clibincl/streambuf.hxx (class Cyg_StdioStreamBuffer):
+ * src/clibincl/stream.hxx (class Cyg_StdioStream):
+ Remove private copy constructor. Needed to make prioritised
+ static constructors work. Fix for PR 18898
+
+1999-01-22 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/errno/errno.cxx:
+ Include pkgconf/kernel.h otherwise it fails with per-thread errno
+ enabled
+
+ * include/pkgconf/libc.h:
+ Enable per-thread errno by default since that is what POSIX would
+ want
+
+ * tests/time/clock.c (test):
+ Placate compiler by initializing clock_first/second/third anyway,
+ even though they won't be in practice. This is only a test program
+ so adding an extra instruction doesn't matter.
+
+ * src/i18n/locale.cxx (_setlocale):
+ Placate compiler, since it is dumb, by nesting, not serializing, if's
+ This is an idempotent change, but screws up the formatting :-(.
+
+ * src/string/strpbrk.cxx (_strpbrk):
+ Change while loop to do loop to placate compiler. It'll even save an
+ instruction too (wow!)
+
+1999-01-22 John Dallaway <jld@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Add closing curly brace to CYGPKG_LIBC_STRING_STRTOK definition
+
+1999-01-21 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/errno.h:
+ Tidy up and add to header description
+ Change cyg_get_errno_p() to cyg_libc_get_errno_p()
+ Remove ifdef CYGPKG_LIBC
+
+ * include/sys/file_if.h:
+ Remove - move contents to stdio.h
+
+ * include/stdio.h:
+ Tidy up header description
+ Move FILE typedef here from sys/file_if.h
+ SEEK_SET, SEEK_CUR, SEEK_END defined to 0, 1, 2 respectively
+ for backwards compatibility with old UNIX
+ Change definitions of stdin/out/err to be addresses of FILE
+ globals - even though they're actually Cyg_StdioStream it'll work
+
+ * include/pkgconf/libc.h:
+ Make CYGPRI_LIBC_WEAK et al macros depend on new ones in infra
+ Reorganise trace options under the individual components they are
+ associated with.
+ Reorganise thread-safety options under the individual components
+ they are associated with.
+ Add new CYGSEM_LIBC_INVOKE_DEFAULT_STATIC_CONSTRUCTORS option
+ Misc. reformatting
+ Remove dependency on pkgconf/kernel.h - Configuration Tool will
+ generate check macros anyway.
+ Remove CYGPKG_LIBC_TRACE, CYGFUN_LIBC_strtok, CYGPKG_LIBC_RAND
+ options
+ Tidy up description header
+
+ * src/clibincl/clibdata.hxx:
+ * src/clibincl/clibdata.inl:
+ * src/support/clibdata.cxx:
+ Remove and instead rely on each component to initialise its own data
+
+ * src/clibincl/stdiofiles.hxx, src/clibincl/stdiofiles.inl:
+ New files to contain global file list and lock (if applicable).
+ Implemented as class with member access functions
+
+ * src/errno/errno.cxx:
+ Reorganise with self-contained per-thread data, if applicable
+ Remove ifdef CYGPKG_LIBC
+ Tidy up description header
+ Rename cyg_get_errno_p() to cyg_libc_get_errno_p()
+
+ * src/stdio/common/fclose.cxx:
+ * src/stdio/common/fflush.cxx:
+ * src/stdio/common/fopen.cxx:
+ * src/stdio/common/freopen.cxx:
+ Remove ifdef CYGPKG_LIBC
+ Use new global file access method from stdiofiles.hxx
+ Tidy up description header
+ Use new CYGBLD_ATTRIB_WEAK_ALIAS
+ Access errno "normally" rather than clibdata way
+
+ * src/stdio/common/stdin.cxx:
+ * src/stdio/common/stdout.cxx
+ * src/stdio/common/stderr.cxx:
+ New files. Implement Cyg_StdioStream objects for each stream. In
+ separate self-contained files so using one doesn't bring in the
+ others
+
+ * src/stdio/common/stdiofiles.cxx:
+ New file. Implements global files array and lock
+
+ * src/stdlib/_exit.cxx:
+ Tidy up description header
+ Remove ifdef CYGPKG_LIBC
+ Use infra CYGBLD* macros
+
+ * src/stdlib/malloc.cxx:
+ Tidy up description header
+ Remove ifdef CYGPKG_LIBC
+ Add pkgconf/kernel.h now that pkgconf/libc.h doesn't have it
+ Use infra CYGBLD* macros
+ Make pool visible externally with weak attribute and new name
+ cyg_libc_malloc_memorypool
+
+ * src/stdlib/rand.cxx:
+ * src/stdlib/strtok.cxx:
+ Reorganise with self-contained per-thread data, if applicable
+ Remove ifdef CYGPKG_LIBC
+ Tidy up description header
+ Use infra CYGBLD* macros
+
+ * src/support/cstartup.cxx:
+ Split into smaller files to make selective linking work better,
+ fix i386 port problem and make GDB happy
+
+ * src/support/environ.cxx:
+ * src/support/invokemain.cxx:
+ * src/support/main.cxx:
+ * src/support/mainthread.cxx:
+ New files from bits of the old cstartup.cxx
+ Add support for CYGSEM_HAL_STOP_CONSTRUCTORS_ON_FLAG
+
+ * src/PKGconf.mak:
+ Update to reflect file additions/deletion
+
+ * tests/stdlib/rand1.c:
+ * tests/stdlib/rand2.c:
+ * tests/stdlib/rand3.c:
+ * tests/stdlib/srand.c:
+ Make conform to coding standards
+ Remove ifdef CYGPKG_LIBC_RAND
+ Tidy up description header
+
+ * tests/string/strtok.c:
+ Make conform to coding standards
+ Remove ifdef CYGFUN_LIBC_strtok
+ Tidy up description header
+
+1999-01-15 Mark Galassi <rosalia@cygnus.com>
+
+ * tests/stdlib/getenv.c (main): added tests for the case in which
+ the user does not supply environ and in which the user supplies a
+ NULL environ.
+
+1999-01-15 Jesper Skov <jskov@cygnus.co.uk>
+
+ * src/support/cstartup.cxx: Added workaround for weak aliasing
+ problem in i386 gcc.
+
+
+1999-01-15 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * include/pkgconf/libc.h (CYGNUM_LIBC_MAIN_STACK_SIZE):
+ (CYGNUM_LIBC_MALLOC_MEMPOOL_SIZE): Change defaults to be
+ more reasonable on small systems.
+
+1999-01-04 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/support/clibdata.cxx:
+ Minor bug with environ not being initialised correctly by
+ default
+
+1998-12-24 Bart Veer <bartv@cygnus.co.uk>
+
+ * src/clibincl/stream.inl (Cyg_StdioStream):
+ check_this() member functions should now be const
+
+1998-12-22 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/string/memchr.cxx (_memchr):
+ treat search value parameter to memchr as an unsigned byte,
+ not a signed int - copied fix from newlib PR 18471
+
+1998-12-21 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdlib/realloc.c:
+ * tests/stdlib/malloc3.c:
+ * tests/stdlib/malloc2.c:
+ Warning cleanup
+
+1998-12-14 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdlib/malloc2.c, tests/stdlib/malloc3.c,
+ tests/stdlib/realloc.c:
+ Only run these tests when we have a coalescing memory allocator
+
+1998-12-14 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/stream.cxx:
+ Only check buffer init success if buffering
+
+ * src/stdio/common/streambuf.cxx (set_buffer):
+ Check for diff of requested size against buffer_size, not
+ get_buffer_size(), since this may return -1, which won't be
+ equal to size, and will cause malloc to be called
+
+1998-12-01 Jesper Skov <jskov@cygnus.co.uk>
+
+ * tests/stdlib/getenv.c (main): Don't declare variables when they
+ are not used.
+
+Thu Nov 26 17:59:12 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/string/strncpy1.c:
+ Fix off-by-one error since it called my_strcmp() and not
+ my_strncmp(), which meant in included the trailing NULL when it
+ shouldn't have.
+
+1998-11-26 Jesper Skov <jskov@cygnus.co.uk>
+
+ * src/stdlib/qsort.cxx (_qsort):
+ * src/stdlib/rand.cxx (_srand):
+ Changed CYG_REPORT_FUNCNAMETYPE to CYG_REPORT_FUNCNAME in void
+ functions.
+
+Mon Oct 26 18:49:00 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/support/cstartup.cxx (cyg_libc_dummy_main):
+ Silence compiler warning with cast of char * to CYG_ADDRWORD
+
+Wed Oct 28 17:31:21 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/time/clock.cxx (_clock):
+ Reorder scaling expression as it was both incorrect and risked
+ overflow.
+ Fix for PR 18076
+
+Mon Oct 19 14:40:06 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/stdio.h (EOF):
+ Change from -64 to (-1), to allow broken code to work :-/
+ Also change other negative defines to be within parentheses
+
+1998-10-19 Mark Galassi <rosalia@cygnus.com>
+
+ * include/pkgconf/libc.h: updated the doc URL
+
+Thu Oct 15 21:33:44 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/clibdata.hxx:
+ Only include kernel thread headers when we're in thread-safe mode
+
+ * src/time/clock.cxx:
+ Only include kernel clock headers if there's a kernel with the
+ right functionality available
+
+ * tests/time/clock.c:
+ Remove unnecessary inclusion of <pkgconf/kernel.h>
+
+ Above changes are required for PR 17229
+
+Wed Oct 14 16:38:55 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/clibdata.hxx, src/clibincl/clibdata.inl:
+ Conditionalise inclusion of clibincl/stdiosupp.hxx and
+ clibincl/stream.hxx. Tidying up PR 17502
+
+Wed Oct 14 14:08:56 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Rename CYGPKG_LIBC_STRING_OPTIMISATIONS to
+ CYGPKG_LIBC_STRING_OPTIMIZATIONS to make it truely merkin.
+
+Tue Oct 13 19:34:41 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h (CYGDAT_LIBC_ARGUMENTS):
+ Add a default argv[0] of "" as many programs assume argc>0
+ The standard allows argv[0] to be "" if the program name
+ is not available
+
+1998-09-26 Bart Veer <bartv@cygnus.co.uk>
+
+ * src/clibincl/stdiosupp.hxx:
+ PR 17502: this header file now does nothing if the stdio option
+ is disabled completely. This is the same behaviour is
+ clibincl/stream.hxx, although arguably the #ifdef protection
+ should happen wherever the header file is #include'd rather than
+ in the header file itself.
+
+ * src/clibincl/clibdata.hxx:
+ PR 17502: this header file still #include's internal stdio-related
+ header files and references the FILE structure, even if stdio is
+ disabled. There were some #ifdef's for CYGPKG_LIBC_STDIO already.
+ One more has been added for _fopen() and _fclose().
+
+1998-09-25 Bart Veer <bartv@cygnus.co.uk>
+
+ * src/clibincl/streambuf.inl (Cyg_StdioStreamBuffer):
+ PR 17487: Reorder the calls to initialize member fields, to
+ eliminate a compiler warning.
+
+Fri Sep 25 19:04:29 1998 Jonathan Larmour <jlarmour@peshwari.cygnus.co.uk>
+
+ * src/errno/errno.cxx, src/stdlib/bsearch.cxx,
+ src/stdlib/qsort.cxx, src/stdlib/rand.cxx, src/string/strtok.cxx,
+ src/time/clock.cxx:
+ Only define tracing variable and tracing level macro when
+ the relevant tracing level config options are set. Otherwise
+ keep the tracing level fixed at 0
+ Fix for PR 17476
+
+ * include/pkgconf/libc.h:
+ Define trace levels only if parent CYGPKG_LIBC_TRACE is defined
+ for consistency with Configuration Tool
+
+
+Fri Sep 25 17:24:45 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/stdioinlines.cxx:
+ Make definition of vscanf() dependent on CYGFUN_LIBC_STDIO_ungetc
+ otherwise _vfscanf() won't be compiled. This therefore would
+ cause a link fail iff selective linking is not enabled.
+ Fix for PR 17455
+
+Fri Sep 25 17:23:17 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdlib/rand.cxx:
+ Make compilation dependent on CYGPKG_LIBC_RAND
+ Fix for PR 17473
+
+ * tests/stdlib/srand.c:
+ Make definition of dummy test pass conditional on CYGPKG_LIBC_RAND
+ not being defined, as well as CYGPKG_LIBC
+ Caused compilation failure when testing PR 17473 fix
+
+Mon Sep 21 17:11:04 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdio/sscanf.c:
+ Make sscanf test conditional on CYGFUN_LIBC_STDIO_ungetc since
+ _vfscanf() only gets compiled if this is defined
+ Fix for PR 17346
+
+1998-09-20 Mark Galassi <rosalia@cygnus.com>
+
+ * include/pkgconf/libc.h: updated CDL doc strings.
+
+Fri Sep 18 22:18:47 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/clibdata.inl (get_errno_p):
+ Rather than this function only being available in thread-safe mode,
+ instead make what it returns be either the per-thread errno, or
+ global errno depending on the configuration.
+ Include <errno.h> (conditionally) to support this change
+
+Wed Sep 16 11:20:31 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Remove "fix me" comment which I forgot to remove before
+
+Tue Sep 15 19:27:57 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Updated descriptions and a few other minor things after review.
+ Notably though, the NDEBUG config option has been removed
+
+1998-09-15 Bart Veer <bartv@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ PR 17201: removed dependency on CYGPKG_KERNEL in the option
+ CYGNUM_LIBC_MAIN_STACK_SIZE, since the actual dependencies cannot
+ be expressed sensibly in the current system.
+
+1998-09-11 Bart Veer <bartv@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Sorting out dependencies for error package.
+
+1998-09-10 Mark Galassi <rosalia@cygnus.com>
+
+ * include/pkgconf/libc.h: started adding doc fields to the
+ cdl_package data, as a pilot for now.
+
+Wed Sep 9 17:41:23 1998 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Add option CYGIMP_LIBC_MALLOC_CXX_DELETE_CALLS_FREE to explicitly
+ control whether the empty delete functions (currently) in
+ kernel/.../common/delete.cxx are enabled; controls code bloat, see
+ the comments in delete.cxx.
+
+Fri Sep 4 16:43:38 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdio/stdiooutput.c:
+ Add a default CYG_TEST_PASS() to make sure the test infra doesn't
+ complain.
+ Also remove the unused string functionsa
+
+Fri Sep 4 15:43:48 1998 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * src/stdlib/exit.cxx (__libc_exit):
+ * src/stdlib/_exit.cxx (__libc__exit):
+ * src/stdlib/malloc.cxx (_free):
+ * src/stdlib/abort.cxx (abort):
+ * src/support/cstartup.cxx (invoke_main):
+ Tracing system asserted cos it was being called incorrectly; these
+ are void functions so you shouldn't give a type to the function
+ reporting call.
+
+Fri Sep 4 15:03:10 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Fix CYGDAT_LIBC_STDIO_DEFAULT_CONSOLE description to refer to
+ the table.cxx file, not table.h
+
+Fri Sep 4 14:38:52 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Add description for CYGDAT_LIBC_STDIO_DEFAULT_CONSOLE since
+ Proven won't be making any changes to the device driver
+ implementation after all.
+ Fix for PR 17148
+
+ * src/clibincl/stream.inl (set_position):
+ Remove "fix me" line. It is obvious that this will have to change
+ with a filesystem interface
+ Fix for PR 17147
+
+ * src/stdio/common/freopen.cxx:
+ Remove "fix me" - I know about this issue
+ Fix for PR 17145
+
+ * src/stdio/common/stream.cxx (read):
+ Remove "fix me" and change to use memcpy
+ Fix for PR 17144
+
+Fri Sep 4 14:36:47 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdio/stdiooutput.c:
+ Actually add it this time!
+
+Fri Sep 4 13:48:13 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdio/stdiooutput.c:
+ Add new tests for misc stdio output functions
+
+ * tests/PKGconf.mak:
+ Build stdiooutput.c test
+
+Fri Sep 4 12:52:10 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/stream.inl (write_byte):
+ Remove bogus assert
+
+ * tests/stdlib/getenv.c (main):
+ Check whether str is NULL before doing a strcmp()
+
+ * tests/stdio/sprintf2.c (main):
+ Reformat to 76 columns
+
+Fri Sep 4 02:10:54 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/stream.hxx, src/stdio/common/stream.cxx:
+ Add new peek_byte method to Cyg_StdioStream
+
+ * src/stdio/input/vfscanf.cxx (_vfscanf):
+ Fix up buffer access to work with new peek_byte method above
+ Fix for PR 16954
+
+Thu Sep 3 19:40:11 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdlib/rand1.c, tests/stdlib/rand2.c,
+ tests/stdlib/rand3.c:
+ Add extra check for CYGPKG_LIBC_RAND to decide whether the test
+ is applicable or not
+
+ * tests/stdlib/rand2.c (test):
+ Use CYGNUM_LIBC_RAND_SEED for default seed, not 1
+
+ * tests/string/strtok.c:
+ Add extra check for CYGFUN_LIBC_strtok to decide whether the
+ test is applicable or not
+
+Wed Sep 2 19:11:40 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/input/fread.cxx, src/stdio/output/fwrite.cxx:
+ Add fread() and fwrite() functions
+
+ * src/PKGconf.mak:
+ Build fread.cxx and fwrite.cxx from above
+
+ * src/stdio/common/stream.cxx:
+ Reformat to 76 columns
+ In write(), move initialisation of *bytes_written to start
+ In read(), move initialisation of *bytes_read to start
+
+ * include/stdio.h:
+ Reformat to 76 columns
+
+ Replace all references to the ANSI
+ standard to instead by the ISO C standard
+
+ Add commented argument names for "documentation"
+
+ Add fread() and fwrite() prototypes
+
+ * src/clibincl/stdiosupp.hxx:
+ Copy the above changes from stdio.h, and add _fread() and _fwrite()
+ prototypes
+
+ * src/stdio/output/fputs.cxx, src/stdio/input/fgets.cxx:
+ Reformat to 76 columns
+
+Wed Sep 2 15:41:15 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/input/vfscanf.cxx:
+ Reformat to 76 columns
+
+Wed Sep 2 14:46:18 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/fflush.cxx:
+ Use trylock_me() instead of lock_me(), and loop to prevent
+ deadlocks
+
+ * src/clibincl/stream.hxx, src/clibincl/stream.inl:
+ Add trylock_me() method
+
+ * src/clibincl/stream.hxx, src/clibincl/stream.inl,
+ src/stdio/common/fflush.cxx:
+ Reformat to 76 columns
+
+Wed Sep 2 12:24:27 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Change 0x7fff to 0x7fffffff. Oops!
+ give main stack size option a legal_values field
+ Undefine tracing by default
+ Add some more description in the header
+
+Tue Sep 1 20:02:07 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/i18n/setlocale.c (cyg_package_start):
+ Fix typo - extra "x" for no reason at all! :-)
+
+Tue Sep 1 19:44:58 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/i18n/locale.cxx:
+ Fix bug in find_locale_data() that miscalculated size of
+ all_locales
+
+ Make find_locale_data() match the locale "" and add some
+ other things in _setlocale() to ensure that "C" gets returned
+ when the default locale "" is passed.
+
+ Only check the locale pointer when it is non-NULL
+
+ * tests/i18n/setlocale.c:
+ New tests for setlocale()
+
+ * tests/PKGconf.mak:
+ Update to build setlocale.c test
+
+ * src/support/cstartup.cxx:
+ Don't actually call system default main() "main" otherwise GDB
+ gets confused and thinks its the entry point. Instead make a weak
+ alias and call the real function something different.
+
+Tue Sep 1 18:31:42 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/i18n/locale.cxx (_setlocale):
+ Fix tracing macro name and remove "str maybe used before
+ initialised" warning
+
+ * tests/stdlib/qsort.c:
+ Correct file description header
+
+Tue Sep 1 17:04:32 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/locale.h, src/clibincl/i18nsupp.hxx, src/i18n/locale.cxx:
+ New files to add support for locales as defined by the ISO C
+ standard. i.e. setlocale() and localeconv() functions and some
+ other bits
+
+ * include/pkgconf/libc.h:
+ Add CYGNUM_LIBC_MAX_LOCALE_NAME_SIZE config option for locale
+ support
+
+ * src/PKGconf.mak:
+ build locale.cxx
+
+ * include/errno.h, src/clibincl/ctypesupp.hxx:
+ Tidy up to 76 columns
+
+Tue Sep 1 00:24:22 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Move environment-related options from stdlib into new
+ CYGPKG_LIBC_STARTUP component. Also add options for main()'s
+ arguments (CYGPKG_LIBC_ARGUMENTS), main()'s default stack size
+ (CYGNUM_LIBC_MAIN_STACK_SIZE), number of atexit handlers
+ (CYGNUM_LIBC_ATEXIT_HANDLERS), and whether _exit() stops the
+ system (CYGSEM_LIBC_EXIT_STOPS_SYSTEM).
+
+ * src/clibincl/stdlibsupp.hxx:
+ Fix a few comment bugs, and add new
+ cyg_libc_invoke_atexit_handlers() function prototype
+
+ * src/stdlib/_exit.cxx, src/stdlib/atexit.cxx, src/stdlib/exit.cxx:
+ Implement exit(), atexit() and _exit() correctly now. Also
+ includes cyg_libc_invoke_atexit_handlers() in atexit.cxx. Now
+ we get the correct behaviour of atexit(), and exit() invokes the
+ atexit handlers and fflushs all the stdio streams. Add plenty of
+ tracing of asserts too.
+
+ * src/support/cstartup.cxx:
+ Make main_thread object an exported global. Allow user-settable
+ arguments. Add MUCH more tracing and asserts. Improve comments.
+ Tidy up to 76 columns
+
+ * tests/stdlib/atexit.c:
+ Add simple test for atexit() and it calling registered functions
+
+ * tests/PKGconf.mak:
+ Build atexit.c test
+
+Mon Aug 31 18:54:48 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdlib/getenv.cxx, tests/stdlib/getenv.c:
+ Add support for getenv(), and some tests to ensure it works
+
+ * src/PKGconf.mak, tests/PKGconf.mak:
+ Update to include getenv.cxx and getenv.c test
+
+ * src/clibincl/clibdata.hxx:
+ remove prototype for environ - we expect files needing it to
+ define it themselves
+
+ * src/support/clibdata.cxx:
+ Tidy up to 76 columns and add definition of char **environ, but
+ with a configurable initialiser (see libc.h below)
+
+ * tests/stdlib/abs.c (main):
+ Tidy up to 76 columns
+
+ * src/stdlib/malloc.cxx:
+ Tidy up to 76 columns and remove warning for undefined _memcpy()
+ by changing to memcpy(), and casting away signedness
+
+ * include/pkgconf/libc.h:
+ Add CYGPKG_LIBC_ENVIRONMENT and CYGDAT_LIBC_DEFAULT_ENVIRONMENT
+ configuration options
+
+ * include/pkgconf/libc.h, src/clibincl/clibdata.hxx:
+ Tidy up to 76 columns
+
+ * include/stdlib.h:
+ Add getenv() prototype and tidy up to 76 columns
+
+ * src/clibincl/stdlibsupp.hxx:
+ Add _getenv() prototype
+
+Mon Aug 31 13:37:08 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdlib/malloc.cxx:
+ Add realloc()
+
+ * tests/stdlib/realloc.c:
+ Add this file to test new realloc() functionality
+
+ * tests/PKGconf.mak:
+ Build realloc test
+
+ * tests/stdlib/malloc3.c (main), tests/stdlib/malloc2.c (main),
+ tests/stdlib/malloc1.c (main):
+ Conditionalise local vars to prevent warnings
+
+ * tests/stdlib/malloc3.c (fill_with_data):
+ Move '{' into "verb" line
+
+ * include/pkgconf/libc.h:
+ Require infra tracing support to allow tracing
+
+ * include/stdlib.h:
+ Add realloc()
+
+ * src/clibincl/stdlibsupp.hxx:
+ Update the commented argument names from stdlib.h, including realloc()
+
+1998-08-28 Bart Veer <bartv@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ * src/clibincl/clibdata.hxx, src/time/clock.cxx:
+
+ Updated for new kernel configuration option symbol names
+
+Fri Aug 28 19:18:25 1998 Hugo Tyson <hmt@cygnus.co.uk>
+
+ Changed the entry below to sat "tx39" instead of "mn10300".
+ It's been a long week.
+
+Fri Aug 28 18:59:20 1998 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * src/support/cstartup.cxx: Add a weakly named main to allow the
+ default configuration to link on the tx39 which has no
+ scalextric linking yet. The static Cyg_Thread main_thread object
+ below continues to exist, though unreferenced, so all its
+ descendants must exist too.
+
+Fri Aug 28 08:54:29 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/stdlib.h:
+ Add commented argument names Add exit(), and atexit(). And move
+ these along with abort() and _exit() to a new section.
+
+ * src/stdlib/atexit.cxx, src/stdlib/exit.cxx:
+ Add trivial versions of atexit() and exit()
+
+ * include/pkgconf/libc.h:
+ Add CYGNUM_LIBC_MAIN_STACK_SIZE config option
+
+ * include/sys/cstartup.h, src/support/cstartup.cxx, src/PKGconf.mak:
+ New files to provide a new function cyg_iso_c_support(), which
+ invokes main "correctly".
+
+ * tests/ctype/ctype.c, tests/setjmp/setjmp.c, tests/stdio/sprintf1.c,
+ tests/stdio/sprintf2.c, tests/stdio/sscanf.c, tests/stdlib/abs.c,
+ tests/stdlib/atoi.c, tests/stdlib/atol.c, tests/stdlib/bsearch.c,
+ tests/stdlib/div.c, tests/stdlib/labs.c, tests/stdlib/ldiv.c,
+ tests/stdlib/malloc1.c, tests/stdlib/malloc2.c,
+ tests/stdlib/malloc3.c, tests/stdlib/qsort.c, tests/stdlib/rand1.c,
+ tests/stdlib/rand2.c, tests/stdlib/rand3.c, tests/stdlib/srand.c,
+ tests/stdlib/strtol.c, tests/stdlib/strtoul.c,
+ tests/string/memchr.c, tests/string/memcmp1.c,
+ tests/string/memcmp2.c, tests/string/memcpy1.c,
+ tests/string/memcpy2.c, tests/string/memmove1.c,
+ tests/string/memmove2.c, tests/string/memset.c,
+ tests/string/strcat1.c, tests/string/strcat2.c,
+ tests/string/strchr.c, tests/string/strcmp1.c,
+ tests/string/strcmp2.c, tests/string/strcoll1.c,
+ tests/string/strcoll2.c, tests/string/strcpy1.c,
+ tests/string/strcpy2.c, tests/string/strcspn.c,
+ tests/string/strlen.c, tests/string/strncat1.c,
+ tests/string/strncat2.c, tests/string/strncpy1.c,
+ tests/string/strncpy2.c, tests/string/strpbrk.c,
+ tests/string/strrchr.c, tests/string/strspn.c,
+ tests/string/strstr.c, tests/string/strtok.c,
+ tests/string/strxfrm1.c, tests/string/strxfrm2.c,
+ tests/time/clock.c:
+
+ Modify all tests to use new startup mechanism, and cyg_iso_c_start()
+
+Fri Aug 28 00:29:38 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/stream.cxx:
+ Add #ifdef CYGSEM_LIBC_STDIO_WANT_BUFFERED_IO around all accesses to
+ flags.last_buffer_op_was_read. Fix for PR 16997
+
+Thu Aug 27 01:12:42 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/sys/file_if.h:
+ Fix comments and remove cyg_get_file_star()
+
+Wed Aug 26 20:24:32 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Remove #define CYGPKG_LIBC is that is meant to live in
+ <pkgconf/system.h> after all
+
+Wed Aug 26 19:39:23 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ More fixes to CDL stuff to make it work better, and look better on
+ the screen
+
+Tue Aug 25 20:21:41 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Make some fixes after running the ConfigTool
+
+Tue Aug 25 16:46:28 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h (CYGNUM_LIBC_STDIO_BUFSIZE):
+ Fix typo of CYGNUM_LIBC_STDIO_BUFSIZE
+
+Tue Aug 25 15:10:57 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Tidy up CDL stuff a bit more, prior to checking it actually works.
+
+Tue Aug 25 11:38:52 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdlib/malloc2.c (main):
+ Prevent calls to CYG_TEST_STILL_ALIVE for now
+
+Tue Aug 25 05:39:28 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Change cosmetic paragraph alignment.
+
+Tue Aug 25 03:11:34 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/support/clibdata.cxx:
+ Make stderr initialise with buffer size 0.
+ For PR 16955
+
+Mon Aug 24 17:38:46 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ First pass at CDL-ifying the C library configuration. Currently
+ deliberately disabled as there a few outstanding issues.
+
+Mon Aug 24 16:14:22 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/output/vfnprintf.cxx (_vfnprintf):
+ clear up warning for unused argument
+
+ * tests/stdlib/malloc2.c (NUM_ITERATIONS):
+ Lower to 100 from 50000 so it won't take too long under the simulator
+
+Thu Aug 20 17:48:43 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdlib/malloc.cxx:
+ Remove now unnecessary inclusion of kernel/ktypes.h
+
+Wed Aug 19 19:19:14 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdio/sprintf1.c, tests/stdio/sprintf2.c,
+ tests/stdio/sscanf.c, tests/stdlib/atoi.c, tests/stdlib/atol.c,
+ tests/stdlib/rand1.c, tests/stdlib/rand2.c, tests/stdlib/rand3.c,
+ tests/stdlib/srand.c, tests/stdlib/strtol.c,
+ tests/stdlib/strtoul.c, tests/string/strtok.c,
+ tests/time/clock.c:
+ Add parameters to "main()" to silence warnings
+
+Wed Aug 19 18:52:59 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/stream.cxx (refill_read_buffer):
+ Put conditional error check into same #ifdef and if as what was being
+ checked in the first place!
+
+Wed Aug 19 18:49:19 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/stream.inl:
+ Reorder Cyg_StdioStream::check_this() to be first to silence
+ warnings
+
+Tue Aug 18 16:10:03 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * ecc/language/c/libc/current/src/clibincl/clibdata.hxx,
+ ecc/language/c/libc/current/src/errno/errno.cxx,
+ ecc/language/c/libc/current/src/stdio/common/fopen.cxx,
+ ecc/language/c/libc/current/src/stdlib/rand.cxx,
+ ecc/language/c/libc/current/src/string/strtok.cxx:
+ Rename CYGIMP_LIBC_INTERNAL_DATA_PREAMBLE,
+ CYGIMP_LIBC_INTERNAL_DATA_ALLOC_CHECK_PREAMBLE,
+ CYGVAR_LIBC_INTERNAL_DATA, and
+ CYGIMP_LIBC_INTERNAL_DATA_CHECK to all have CYGPRI_ prefix instead
+ as recommended by the config name rules
+
+
+Tue Aug 18 14:31:19 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/setvbuf.cxx (_setvbuf):
+ Rename variable names in assert line, otherwise doesn't build
+ with asserts on!
+
+Sun Aug 16 18:15:12 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/input/vfscanf.cxx (_vfscanf):
+ Fix some bugs, although there are some left to fix still. Unrelated
+ to the rest of the checkins, so I will check the partial fix in now.
+
+ * src/clibincl/stream.hxx, src/clibincl/stream.inl,
+ src/stdio/common/stream.cxx:
+ Add parameters to constructor to allow more things to be done at
+ construction time.
+
+ Now we have "new", remove separate "construct" method
+
+ Add more documentation on constructor
+
+ As requested by code review, where possible, move boolean flags
+ into separate packed bitfield structure for space efficiency
+
+ Make readbuf_char be usable all the time rather than when configured
+ not to be buffering, as it is also needed for non-buffered mode i.e.
+ _IONBF
+
+ * src/stdio/common/fopen.cxx:
+ Change to use new method of construction from above, using new
+
+ Use thread-specific data, rather than global. And so change errnos
+ to access errno entry specifically
+
+ Make process_mode() check for append mode too
+
+ Reformat for coding standards to have { in same line as "verb"
+
+ * src/stdio/common/setvbuf.cxx:
+
+ Change to cope with different way of dealing with buffering policy
+ flags etc. in Cyg_StdioStream
+
+ * src/stdio/common/vsnprintf.cxx, src/stdio/common/vsscanf.cxx,
+ src/support/clibdata.cxx:
+ Change construction of streams to use new parameters added above,
+ and change to use _IONBF mode for string stdio functions,
+ otherwise its a waste of memory. And use _IONBF for stderr as the
+ ISO standard tells us to!
+
+ Reformat for coding standards to have { in same line as "verb"
+
+ * src/clibincl/streambuf.hxx, src/clibincl/streambuf.inl:
+ Change constructor so that it can be set with default size and
+ dynamic buffer (if applicable)
+
+ Fix minor bug in destructor - should only call free when allocated
+ dynamically
+
+ Change get_buffer_size to return -1 if the buffer was not allowed
+ to be set up
+
+ * src/stdio/common/streambuf.cxx:
+ Remove unnecessary stdio.h include and add extra comment to whether
+ to free bit in set_buffer()
+
+ * src/stdio/common/freopen.cxx:
+ Change @@@ to standard fix me string
+
+ * src/stdio/output/fputc.cxx:
+ Remove unnecessary "written" variable
+
+Thu Aug 13 15:37:28 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdlib/_exit.cxx:
+ Included use of "fix me" line to ensure this is discussed before
+ release
+
+ * include/stdlib.h, src/stdlib/abort.cxx, src/PKGconf.mak:
+ Add abort.cxx to implement abort(), albeit naively
+
+Thu Jul 30 18:03:09 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/vsscanf.cxx (_vsscanf),
+ src/stdio/common/vsnprintf.cxx (_vsnprintf):
+ Fix initialiser of pseudo string device table that didn't get updated
+ when the table changed (Bad proven, no biscuit).
+
+ * src/clibincl/stream.inl (~Cyg_StdioStream):
+ Move invalidation of magic_validity_word to after unlock_me(),
+ otherwise it always fails!
+
+Tue Jul 28 21:29:53 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/clibdata.hxx:
+ Shorten over-long lines
+
+Tue Jul 28 20:28:23 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/stream.hxx (class Cyg_StdioStream),
+ src/clibincl/stream.inl, src/stdio/common/stream.cxx:
+ Clarify some comments and get the CYGDBG_DEFINE_CHECK_THIS and
+ CYG_ASSERTCLASS stuff going
+
+ * src/clibincl/stream.inl:
+ Put '{'s on same line as "action" as per coding standards
+ Shorten over-long lines
+
+Tue Jul 28 15:31:06 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/streambuf.inl, src/stdio/common/streambuf.cxx:
+ Move set_buffer() from streambuf.inl to new file streambuf.cxx
+
+ * src/PKGconf.mak (COMPILE):
+ Build new file streambuf.cxx
+
+ * src/clibincl/streambuf.hxx (class Cyg_StdioStreamBuffer):
+ Add METHODS comment
+
+ * src/stdio/common/stream.cxx:
+ Put '{'s on same line as "action" as per coding standards
+ Shorten over-long lines
+
+Tue Jul 28 00:26:36 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/stdlib.inl, src/stdio/input/vfscanf.cxx,
+ src/stdio/output/vfnprintf.cxx, src/stdlib/div.cxx,
+ src/stdlib/ldiv.cxx, src/stdlib/qsort.cxx, src/stdlib/strtol.cxx,
+ src/stdlib/strtoul.cxx, src/string/strtok.cxx:
+
+ Include proper Berkeley license inline in the file, rather than
+ referring to an external file
+
+ * doc/COPYING.UCB:
+ Remove, now that it isn't referred to any more
+
+Mon Jul 27 23:34:26 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/ctype.h, include/ctype.inl, include/errno.h,
+ include/stdio.h, include/stdio.inl, include/stdlib.h,
+ include/stdlib.inl, include/string.h, include/string.inl,
+ include/time.h, include/sys/file_if.h, src/PKGconf.mak,
+ src/clibincl/clibdata.hxx, src/clibincl/clibdata.inl,
+ src/clibincl/ctypesupp.hxx, src/clibincl/stdiosupp.hxx,
+ src/clibincl/stream.hxx, src/clibincl/streambuf.hxx,
+ src/clibincl/streambuf.inl, src/clibincl/stringsupp.hxx,
+ src/clibincl/timesupp.hxx, src/ctype/isalnum.cxx,
+ src/ctype/isalpha.cxx, src/ctype/iscntrl.cxx,
+ src/ctype/isdigit.cxx, src/ctype/isgraph.cxx,
+ src/ctype/islower.cxx, src/ctype/isprint.cxx,
+ src/ctype/ispunct.cxx, src/ctype/isspace.cxx,
+ src/ctype/isupper.cxx, src/ctype/isxdigit.cxx,
+ src/ctype/tolower.cxx, src/ctype/toupper.cxx,
+ src/errno/errno.cxx, src/stdio/common/snprintf.cxx,
+ src/stdio/common/sprintf.cxx, src/stdio/common/sscanf.cxx,
+ src/stdio/common/stdioinlines.cxx, src/stdio/common/stream.cxx,
+ src/stdio/common/ungetc.cxx, src/stdio/common/vsnprintf.cxx,
+ src/stdio/common/vsscanf.cxx, src/stdio/input/fgetc.cxx,
+ src/stdio/input/fgets.cxx, src/stdio/input/fscanf.cxx,
+ src/stdio/input/gets.cxx, src/stdio/input/scanf.cxx,
+ src/stdio/output/fnprintf.cxx, src/stdio/output/fprintf.cxx,
+ src/stdio/output/fputc.cxx, src/stdio/output/fputs.cxx,
+ src/stdio/output/printf.cxx, src/stdlib/_exit.cxx,
+ src/stdlib/abs.cxx, src/stdlib/atof.cxx, src/stdlib/atoi.cxx,
+ src/stdlib/atol.cxx, src/stdlib/div.cxx, src/stdlib/labs.cxx,
+ src/stdlib/ldiv.cxx, src/stdlib/rand.cxx, src/stdlib/strtod.cxx,
+ src/string/memchr.cxx, src/string/memcmp.cxx,
+ src/string/memmove.cxx, src/string/strcat.cxx,
+ src/string/strchr.cxx, src/string/strcmp.cxx,
+ src/string/strcoll.cxx, src/string/strcpy.cxx,
+ src/string/strcspn.cxx, src/string/strlen.cxx,
+ src/string/strncat.cxx, src/string/strncmp.cxx,
+ src/string/strncpy.cxx, src/string/strpbrk.cxx,
+ src/string/strrchr.cxx, src/string/strspn.cxx,
+ src/string/strstr.cxx, src/string/strsuppt.cxx,
+ src/string/strtok.cxx, src/string/strxfrm.cxx,
+ src/support/clibdata.cxx, src/time/clock.cxx:
+ Untabify
+
+Mon Jul 27 23:14:18 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/errno/errno.cxx, src/stdio/input/vfscanf.cxx,
+ src/stdio/output/vfnprintf.cxx, src/stdlib/strtol.cxx,
+ src/stdlib/strtoul.cxx, src/stdlib/malloc.cxx, src/stdlib/qsort.cxx,
+ tests/ctype/ctype.c, tests/stdlib/rand3.c, tests/stdlib/malloc3.c:
+ Remove all mentions of "register" in variable declarations. Also
+ untabify where needed
+
+ * src/stdlib/bsearch.cxx:
+ Untabify this too
+
+
+Mon Jul 27 22:18:51 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/output/fputc.cxx (_fputc):
+ Replace call to stream write() with call to write_byte()
+
+ * src/clibincl/stream.inl (write_byte):
+ Add asserts for stream write() returning odd values for how much has
+ been written
+
+ (bytes_available_to_read):
+ Remove "register" def for variable declaration
+
+Mon Jul 27 22:06:22 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/stdiosupp.cxx:
+ Remove #if 0'd cyg_get_file_star() and unnecessary pseudo string
+ device definition
+
+Mon Jul 27 21:57:25 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h, src/support/clibdata.cxx:
+ Change CYGXXX_LIBC_STDIO_DEFAULT_CONSOLE to
+ CYGDAT_LIBC_STDIO_DEFAULT_CONSOLE
+
+Mon Jul 27 21:49:23 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/clibdata.hxx, src/clibincl/clibdata.inl,
+ src/clibincl/ctypesupp.hxx, src/clibincl/setjmpsupp.hxx,
+ src/clibincl/stdiosupp.hxx, src/clibincl/stdlibsupp.hxx,
+ src/clibincl/stream.hxx, src/clibincl/stream.inl,
+ src/clibincl/streambuf.hxx, src/clibincl/streambuf.inl,
+ src/clibincl/stringsupp.hxx, src/clibincl/timesupp.hxx:
+
+ Change CYGONCE_LIBC_*_{HXX,INL} to CYGONCE_LIBC_CLIBINCL_*_{HXX,INL}
+
+Mon Jul 27 21:34:05 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Change #define XXXXX 1 to #define XXXXX where applicable as per code
+ review
+
+ Also remove obsolete CYGIMP_LIBC_THREAD_START_SUSPENDS_SELF
+
+Mon Jul 27 19:42:27 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/fopen.cxx (_fopen):
+ Use #ifdef, not #if for config options
+
+Mon Jul 27 15:01:51 BST 1998 Chris Provenzano <proven@cygnus.com>
+
+ * src/stdio/common/stream.cxx, src/stdio/common/vsnprintf.cxx
+ * src/stdio/common/vsscanf.cxx:
+ Fixes to compile with the new Cyg_IORB field names.
+
+Thu Jul 9 03:40:21 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdlib/atoi.c, tests/stdlib/atol.c,
+ tests/stdlib/strtol.c, tests/stdlib/strtoul.c:
+ Adjust starting of tests to possibly start scheduler since
+ strtol/stroul rely on errno, which may be a per-thread variable
+
+Thu Jul 9 03:06:25 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/stream.hxx, src/clibincl/stream.inl,
+ src/stdio/common/stream.cxx, src/stdio/common/setvbuf.cxx:
+ Consolidate read and write buffers into single buffer, as it should
+ have been all along
+
+ * src/clibincl/streambuf.hxx, src/clibincl/streambuf.inl:
+ Add drain_buffer() method to speed up the case when we want the
+ buffer completely emptied
+
+Tue Jul 7 21:26:33 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdio/sprintf1.c:
+ Add a couple of new tests that check that very long strings work too
+
+Wed Jul 1 19:52:39 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/stream.hxx, src/clibincl/streambuf.hxx:
+ Do not permit copy constructors
+
+ * src/clibincl/stream.inl, src/stdio/common/fclose.cxx:
+ Make sure we use #ifdef and not #if
+
+ * src/clibincl/streambuf.inl:
+ Use member initialisation list rather than explicit initialisation to
+ reduce warnings
+
+Wed Jul 1 19:17:55 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h and all files using config options:
+ Rename configuration defines to make them more standard
+
+Thu Jun 25 20:09:30 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/string/strcat.cxx:
+ Add parentheses on check to silence warning
+ (Verified by proven)
+
+Thu Jun 25 19:30:01 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdlib/malloc.cxx:
+ Make sure that the malloc pool is initialised before other things
+ can use it. This is done with the hot new constructor ordering
+ feature.
+
+Thu Jun 25 18:27:03 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/input/vfscanf.cxx:
+ Remove bogus ifdef if floating point is _not_ wanted
+
+Thu Jun 25 17:31:42 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/string/strtok.cxx:
+ Fix argument checking to allow first argument of NULL
+
+Thu Jun 25 04:18:50 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/clibdata.inl (get_strtok_last_p):
+ Remove bogus assertion
+
+ * src/stdlib/malloc.cxx:
+ Got sense of alignment check assertion the wrong way round, so negate
+ it
+
+Thu Jun 25 03:56:35 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/string/strxfrm.cxx:
+ Fix argument checking assertions with legitimate nulls here too
+
+Thu Jun 25 03:46:32 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdlib/strtoul.cxx, src/stdlib/strtol.cxx:
+ Fix argument checking assertions to cope with legitimate nulls
+
+Wed Jun 24 09:01:45 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdio/sprintf1.c:
+ Remove extraneous info messages
+
+Wed Jun 24 05:59:17 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdio/sprintf1.c, tests/stdio/sprintf2.c, tests/stdio/sscanf.c,
+ tests/stdlib/rand1.c, tests/stdlib/rand2.c, tests/stdlib/rand3.c,
+ tests/stdlib/srand.c:
+
+ Change large automatic arrays to static arrays to prevent overuse
+ of a potentially small stack
+
+Wed Jun 24 05:45:28 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdio/sprintf1.c, tests/stdio/sprintf2.c, tests/stdio/sscanf.c,
+ tests/stdlib/rand1.c, tests/stdlib/rand2.c, tests/stdlib/rand3.c,
+ tests/stdlib/srand.c, tests/string/strtok.c, tests/time/clock.c:
+
+ Increase thread stack size from 4K to 32K as in some cases it was
+ too small.
+
+
+Tue Jun 23 20:12:31 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdio/sscanf.c:
+ Add extra tests, including floating point conversion testing
+
+Tue Jun 23 17:01:06 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/string/strtok.cxx:
+ Make sure this is only compiled if CYGFUN_LIBC_strtok is defined
+
+Tue Jun 23 06:10:13 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ add some comments - that's all
+
+ * src/stdio/common/stream.cxx:
+ fix case in refill_read_buffer() for what to do when there's nothing
+ left. Now return EAGAIN
+
+ * src/stdio/common/vsscanf.cxx, src/stdio/input/vfscanf.cxx:
+ Get sscanf working properly and passing tests. Also make sure it
+ ignores FP when its not configured
+
+ * src/stdlib/atof.cxx:
+ Only compile at all if strtod() is present
+
+
+Mon Jun 22 19:13:42 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/clibdata.hxx, src/clibincl/clibdata.inl:
+ Conditionalise strtok_last and rand_seed better
+
+Mon Jun 22 14:14:12 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdlib/malloc3.c:
+ Add test for checking that mallocing and freeing repeatedly works
+
+ * tests/PKGconf.mak:
+ Update to reflect addition of the above
+
+Mon Jun 22 13:09:33 BST 1998 Chris Provenzano <proven@cygnus.com>
+
+ * src/stdio/common/fopen.cxx
+ * src/stdio/common/stream.cxx
+ * src/stdio/common/vsnprintf.cxx
+ * src/stdio/common/vsscanf.cxx
+ Include cyg/devs/common/iorb.h instead of iorb.hxx
+
+ * src/stdio/common/stream.cxx
+ Use read_blocking and write_blocking instead of just read and
+ write when accessing devices through the virtual device table.
+
+Sun Jun 21 18:19:13 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/stdioinlines.cxx:
+ Propagate change of return code handling for puts from stdio.inl
+ into here
+
+ * src/stdio/output/fputc.cxx:
+ make sure the right type is used for output - byte not int
+
+ * src/support/clibdata.cxx:
+ Fix #define config mistook. #endif was in wrong place
+
+Sun Jun 21 16:11:04 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/clibdata.hxx, src/clibincl/clibdata.inl:
+ Allow explicit construction to get around a bug when
+ dynamically allocating per-thread structure
+
+Sun Jun 21 16:02:51 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/ctype/ctype.c, tests/setjmp/setjmp.c, tests/stdio/sprintf1.c,
+ tests/stdio/sprintf2.c, tests/stdio/sscanf.c, tests/stdlib/abs.c,
+ tests/stdlib/atoi.c, tests/stdlib/atol.c, tests/stdlib/bsearch.c,
+ tests/stdlib/div.c, tests/stdlib/labs.c, tests/stdlib/ldiv.c,
+ tests/stdlib/malloc1.c, tests/stdlib/malloc2.c, tests/stdlib/qsort.c,
+ tests/stdlib/rand1.c, tests/stdlib/rand2.c, tests/stdlib/rand3.c,
+ tests/stdlib/srand.c, tests/stdlib/strtol.c, tests/stdlib/strtoul.c,
+ tests/string/memchr.c, tests/string/memcmp1.c,
+ tests/string/memcmp2.c, tests/string/memcpy1.c,
+ tests/string/memcpy2.c, tests/string/memmove1.c,
+ tests/string/memmove2.c, tests/string/memset.c,
+ tests/string/strcat1.c, tests/string/strcat2.c,
+ tests/string/strchr.c, tests/string/strcmp1.c,
+ tests/string/strcmp2.c, tests/string/strcoll1.c,
+ tests/string/strcpy1.c, tests/string/strcpy2.c,
+ tests/string/strcspn.c, tests/string/strlen.c,
+ tests/string/strncat1.c, tests/string/strncat2.c,
+ tests/string/strncpy1.c, tests/string/strncpy2.c,
+ tests/string/strpbrk.c, tests/string/strrchr.c,
+ tests/string/strspn.c, tests/string/strstr.c, tests/string/strtok.c,
+ tests/string/strxfrm1.c, tests/string/strxfrm2.c, tests/time/clock.c:
+
+ Update tests to "do the right thing" with all configuration settings
+
+
+Sun Jun 21 04:54:14 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/setjmp/setjmp.c:
+ I have to be careful not to use setjmp() in a way not exactly
+ defined by the standard, so make sure I do, and add a comment
+ documenting these ways.
+
+ Also ensure this test does the right thing in all configurations
+
+Sun Jun 21 04:38:15 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Add extra checks for invalid configurations
+ Also make default for thread safety OFF
+
+ * src/clibincl/clibdata.inl:
+ Adjust indentation
+
+ * src/stdio/output/vfnprintf.cxx:
+ Make printf of -0.0 floating point do the right thing
+
+Sun Jun 21 04:28:00 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/snprintf.cxx, src/stdio/common/sprintf.cxx,
+ src/stdio/common/sscanf.cxx, src/stdio/input/fscanf.cxx,
+ src/stdio/input/scanf.cxx, src/stdio/output/fnprintf.cxx,
+ src/stdio/output/fprintf.cxx, src/stdio/output/printf.cxx:
+
+ Had to remove inline functions with varargs. Which means separating
+ out each function from stdioinlines.cxx into a separate file, as they
+ no longer belong there. So all the above files were created.
+
+ * include/stdio.inl, src/PKGconf.mak,
+ src/stdio/common/stdioinlines.cxx:
+ Changed to take account of the above
+
+
+Sun Jun 21 03:58:42 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdio/sprintf1.c, tests/stdio/sprintf2.c:
+ Update with floating-point tests. Also make sure they DTRT in all
+ configurations
+
+Fri Jun 19 19:33:06 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/support/clibdata.cxx:
+ accidentally initialised stdin/out/err twice
+
+Fri Jun 19 19:09:29 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/support/clibdata.cxx:
+ Another typo
+
+Fri Jun 19 18:59:07 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/support/clibdata.cxx:
+ Missing #endif typo
+
+Fri Jun 19 18:51:42 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/support/clibdata.cxx:
+ Fix initialisation of static data members. Unsure how it worked at
+ all before!
+
+Fri Jun 19 18:01:01 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/stdio.inl:
+ puts should check whether fputs returns non-negative, rather than
+ non-zero
+
+Fri Jun 19 17:22:52 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/clibdata.inl:
+ Make inclusion of get_errno_p conditional on thread-safety
+
+Wed Jun 17 10:55:32 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/input/vfscanf.cxx:
+ Add weak alias of vfscanf() to _vfscanf()
+
+Wed Jun 17 09:10:41 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/fflush.cxx:
+ Initialise err to silence compiler warning
+
+Wed Jun 17 08:59:20 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * Most important is the addition of floating point support in
+ src/stdio/output/vfnprintf.cxx and src/stdio/input/vfscanf.cxx. This
+ also required the addition of atof() and strtod() in stdlib which is
+ definitely no bad thing! Other than that...
+
+ * Fix a whole bunch of stuff I messed up first time round. Also the
+ sprintf and sscanf tests are included again.
+
+Tue Jun 16 16:38:02 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/PKGconf.mak:
+ Typo with not putting comment character at the beginning. Sigh.
+
+Tue Jun 16 14:53:09 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/PKGconf.mak:
+ Forgot to (temporarily) remove fputs test for now
+
+Mon Jun 15 20:40:03 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ Everything to do with stdio has almost completely changed, so there's
+ not much point documenting individual changes.
+
+Mon Jun 15 18:36:01 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdlib/malloc2.c:
+ Stop it moaning quite as much when it fails by making it exit sooner
+
+ * tests/time/clock.c :
+ This isn't a compound testcase
+
+Thu Jun 11 17:59:13 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/assert.h
+ Reverse sense of NDEBUG ifdef, that was left in accidentally due
+ to testing
+
+Thu Jun 11 04:58:08 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/errno.h, include/string.h, src/clibincl/stringsupp.hxx:
+ Modify as I've now added an "error" package which defines the error
+ codes and strerror()
+
+ * src/errno/strerror.cxx:
+ Moved to new error package and thus deleted
+
+Wed Jun 10 18:37:37 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/assert.h:
+ create this header and add assert() function
+
+Wed Jun 10 16:23:57 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/stdlib.h, src/clibincl/stdlibsupp.hxx, src/stdlib/malloc.cxx:
+ Add malloc(), calloc() and free() functions
+
+ * include/pkgconf/libc.h:
+ Add malloc memory pool size option
+
+ * tests/stdlib/malloc1.c, tests/stdlib/malloc2.c:
+ new tests for malloc
+
+ * src/PKGconf.mak, tests/PKGconf.mak:
+ Update for new files
+
+Wed Jun 10 15:06:16 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/setjmp/setjmp.c:
+ Add another test
+
+Tue Jun 9 18:20:31 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Add some setjmp config's and a macro for the noreturn attribute
+
+ * include/setjmp.h, include/setjmp.inl, src/clibincl/setjmpsupp.hxx,
+ src/setjmp/longjmp.cxx, tests/setjmp/setjmp.c:
+ Added to implement and test setjmp() and longjmp()
+
+ * src/PKGconf.mak, tests/PKGconf.mak:
+ Update for newly added files
+
+Thu Jun 4 01:29:18 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/string/memchr.cxx, src/string/memcmp.cxx, src/string/strcat.cxx,
+ src/string/strchr.cxx, src/string/strcmp.cxx, src/string/strcpy.cxx,
+ src/string/strlen.cxx, src/string/strncat.cxx,
+ src/string/strncmp.cxx, src/string/strncpy.cxx:
+ Rename CYGIMP_LIBC_PREFER_SMALL_TO_FAST to
+ CYGIMP_LIBC_STRING_PREFER_SMALL_TO_FAST
+
+ Also use slower but smaller version when __OPTIMIZE_SIZE__ is
+ defined (which comes from using gcc -Os)
+
+Fri May 29 16:15:04 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/ctype.inl, src/ctype/isxdigit.cxx:
+ Fix bug that numerals aren't considered hex digits
+
+ * include/time.h:
+ Change clock_t and time_t to be signed so that they can accept -1, as
+ required by other libc functions
+
+ * src/clibincl/clibdata.hxx:
+ Fix typo that CYGIMP_LIBC_THREAD_SUPPORT should be ..._SAFETY
+ Also fix macro to allocate thread-specific data to not set variables
+ in a different stack-frame
+
+ * tests/ctype/ctype.c:
+ Fix some misunderstandings in tests, and add a few new ones
+
+ * tests/stdlib/qsort.c:
+ make ctr unsigned to prevent warnings
+
+ * tests/stdlib/strtol.c, tests/stdlib/strtoul.c:
+ Fix some misunderstandings in tests, and add a few new ones
+
+ * tests/string/strrchr.c:
+ Fix off by one error
+
+ * tests/string/strspn.c:
+ Fix case-sensitivity problem, and off-by-one error
+
+ * tests/string/strxfrm1.c:
+ Remove bogus bit of test that doesn't apply to strxfrm, and fix typo
+
+
+Fri May 22 16:33:04 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/PKGconf.mak
+ Remove CXXFLAGS line now that its redundant
+
+ * tests/everything!
+ Do a blitz change of all tests - break some of them down into
+ different files, add new tests, standardize format, fix bugs,
+ update for recent header file changes and much more!
+
+Wed May 20 17:50:04 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/PKGconf.mak:
+ interim checkin for different dir structure for Bart
+
+Fri May 15 20:30:46 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * Tidy up some loose ends I forgot: rename src/include directory to
+ src/clibincl. And add clibdata.inl and timesupp.hxx in there.
+
+Thu May 14 19:56:32 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * Basically everything has changed in the C library. Files have
+ been moved, renamed, deleted and reworked. This is a major
+ revision, and now starts from this new baseline rather than doing
+ incremental changes.
+
+Fri Apr 17 18:43:02 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/ECCconf.mak:
+ added for new build system (actually Bart did this, but didn't
+ update this ChangeLog)
+
+Fri Apr 17 15:03:25 1998 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * src/stdio/device/sim.cxx:
+ Make it build with CYG_EMPTY_STATEMENT; the unadorned one is being
+ removed.
+
+Thu Apr 16 00:24:24 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * All source files:
+ replace ECCIMP_LIBC_* conditional ifdef with CYGIMP_LIBC_*
+
+ * include/eccconf/libc.h:
+ improve comments and reorder a bit
+
+Wed Apr 8 14:35:20 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * Makefile.am, src/Makefile.am, tests/Makefile.am, configure.in:
+ many changes to integrate build structure from release tree
+
+ * src/ctype/Makefile.am, src/ctype/Makefile.in, src/errno/Makefile.am,
+ src/errno/Makefile.in, src/stdio/Makefile.am, src/stdio/Makefile.in,
+ src/stdio/common/Makefile.am, src/stdio/common/Makefile.in,
+ src/stdio/device/Makefile.am, src/stdio/device/Makefile.in,
+ src/stdio/output/Makefile.am, src/stdio/output/Makefile.in,
+ src/stdio/input/Makefile.am, src/stdio/input/Makefile.in,
+ src/stdlib/Makefile.am, src/stdlib/Makefile.in,
+ src/string/Makefile.am, src/string/Makefile.in,
+ src/support/Makefile.am, src/support/Makefile.in,
+ src/time/Makefile.am, src/time/Makefile.in:
+ Remove as they are now redundant with above changes
+
+ * include/Makefile.am:
+ Add to support above changes
+
+ * include/eccconf/libc.h:
+ Change include file for configuration from kernel to system
+
+ * src/include/kerndiag.hxx, src/stdio/device/kerndiag.cxx,
+ src/time/clockfn.cxx:
+ Change kernel include file to eccconf/kernel.h
+
+ * src/include/strngdev.h:
+ remove unnecessary kernel include
+
+ * Makefile.in, aclocal.m4, configure, src/Makefile.in,
+ tests/Makefile.in, include/Makefile.in:
+ regenerate
+
+Mon Apr 6 20:55:07 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdlib/abs.cxx, src/stdlib/atoi.cxx, src/stdlib/atol.cxx,
+ src/stdlib/div.cxx, src/stdlib/labs.cxx, src/stdlib/ldiv.cxx:
+ Separated out functions from stdlib.cxx into separate files
+
+ * src/stdlib/stdlib.cxx:
+ removed to be replaced by above files
+
+ * Makefile.am, src/stdlib/Makefile.am:
+ modified to support building above and not building stdlib.cxx
+
+ * src/support/tsd.cxx:
+ Remove unnecessary header file includes
+
+ * Makefile.in, src/stdlib/Makefile.in:
+ regenerated
+
+Mon Apr 6 19:19:42 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/support/tsd.cxx, include/eccconf/libc.h:
+ remove lame hack for tx39 compiler now that its fixed
+
+ * src/include/sim.hxx:
+ define constants as static to placate compiler
+
+Thu Apr 2 21:01:21 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/ctype/ctype.cxx:
+ deleted and separated out into below files
+
+ * src/ctype/isalnum.cxx, src/ctype/isalpha.cxx, src/ctype/iscntrl.cxx,
+ src/ctype/isdigit.cxx, src/ctype/isgraph.cxx, src/ctype/islower.cxx,
+ src/ctype/isprint.cxx, src/ctype/ispunct.cxx, src/ctype/isspace.cxx,
+ src/ctype/isupper.cxx, src/ctype/isxdigit.cxx, src/ctype/tolower.cxx,
+ src/ctype/toupper.cxx:
+ Separated out individual ctype functions from ctype.cxx into separate
+ files
+
+ * Makefile.am, src/ctype/Makefile.am:
+ modified to reflect above deletion/additions
+
+ * Makefile.in, src/ctype/Makefile.in:
+ regenerated
+
+Thu Apr 2 19:08:26 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/string/strxfrm.cxx: optimise using prefix increments
+
+Thu Apr 2 15:18:15 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/string/strchr.cxx: optimise setting of mask a little
+
+Thu Mar 26 14:07:01 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/support/tsd.cxx: fixed some typos
+
+Thu Mar 26 11:58:47 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/eccconf/libc.h, src/support/tsd.cxx:
+ Implement workaround for tx39 compiler bug.
+
+ * src/include/strsuppt.hxx:
+ remove prototypes for _memcpy() and _memset() as they are now in the
+ kernel
+
+Wed Mar 25 18:31:53 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * Makefile.am, src/string/Makefile.am: memcpy() and memset() are
+ now in the kernel so remove them from build
+ * include/string.h: add a comment to say as much
+ * Makefile.in, src/string/Makefile.in: regenerate
+
+Wed Mar 25 15:30:42 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdlib/_exit.cxx, src/include/file_if.inl:
+ Change _exit workaround to not cause a compiler optimisation
+ problem. Now just references _exit rather than calls it.
+
+Wed Mar 25 14:59:49 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/string/strxfrm.cxx: Fix bug causing tests to fail completely
+ for this function
+
+Wed Mar 25 12:55:53 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/include/sim.hxx: add types to constants (oops!)
+ * Makefile.am: link src/stdio/device/sim.cxx
+ * Makefile.in: regenerated
+
+Wed Mar 25 04:14:30 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/include/file_if.hxx, src/include/file_if.inl,
+ src/include/kerndiag.hxx, src/include/sim.hxx,
+ src/include/stdio_if.hxx, src/include/strngdev.hxx,
+ src/include/tsd.hxx, src/stdio/common/clearerr.cxx,
+ src/stdio/common/clearerr.cxx, src/stdio/common/feof.cxx,
+ src/stdio/common/ferror.cxx, src/stdio/common/file_if.cxx,
+ src/stdio/common/vsprintf.cxx,
+ src/stdio/device/kerndiag.cxx, src/stdio/device/sim.cxx,
+ src/stdio/device/strngdev.cxx, src/stdio/output/fputc.cxx,
+ src/stdio/output/fputs.cxx, src/stdio/output/puts.cxx,
+ src/stdio/output/vfnprintf.cxx, src/support/tsd.cxx:
+ Modified to support buffered reads including renaming
+ _EccInternalFileStruct to __EccStdioStream which is what affects
+ most of these files
+ * src/include/file_if.inl, src/stdio/common/file_if.cxx: added for
+ the above reason
+ * src/stdio/common/sscanf.cxx, src/stdio/input/vfscanf.cxx,
+ src/stdio/input/Makefile.am: added to provide sscanf() functionality
+ * include/ctype.h, include/stdio.h, include/stdlib.h,
+ include/string.h, include/eccconf/libc.h, src/ctype/ctype.cxx,
+ src/stdlib/stdlib.cxx, src/string/strcoll.cxx,
+ src/stdio/common/stdio.cxx:
+ rename *_INLINES macros with prefix CYG rather than ECC
+ * include/errno.h, src/errno/errno.cxx, src/errno/strerror.cxx:
+ rename ErrNo to _ErrNo and add EAGAIN and EWOULDBLOCK error codes
+ * configure.in, Makefile.am, src/stdio/Makefile.am,
+ src/stdio/input/Makefile.am: add support for building
+ file_if.cxx sscanf.cxx and vfscanf.cxx
+ * src/stdio/Makefile.in, src/stdio/common/Makefile.in,
+ src/stdio/input/Makefile.in, configure, Makefile.in: regenerated
+
+Tue Mar 24 19:51:40 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/time/clockfn.cxx, src/time/clock.cxx:
+ Renamed clock.cxx to clockfn.cxx (preserving CVS history)
+ * Makefile.am, src/time/Makefile.am: updated to reflect name change
+ * Makefile.in, src/time/Makefile.in: regenerated
+
+Tue Mar 24 16:28:06 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/ctype.inl: Swap around definitions to get right order so
+ inlining works
+
+Tue Mar 24 14:43:05 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/ctype.h, include/stdio.h, include/stdlib.h, include/string.h:
+ modify to only conditionally include inlines
+ * src/ctype/ctype.cxx, src/stdio/common/stdio.cxx,
+ src/stdlib/stdlib.cxx, src/string/strcoll.cxx,
+ src/ctype/Makefile.am: Add to provide real linkable alternatives
+ to inline functions
+ * Makefile.am, configure.in, src/Makefile.am,
+ src/stdio/common/Makefile.am, src/stdlib/Makefile.am,
+ src/string/Makefile.am: modified to support previous additions
+ * include/eccconf/libc.h: redefine inline macro to add extern inline,
+ and add conditional defines for inline functions. Also rename
+ space vs. speed macro to have CYG instead of ECC prefix
+ * include/stdio.inl: fix comment typo
+ * src/stdlib/qsort.cxx: fix to define inline functions properly
+ * src/string/memchr.cxx, src/string/memcmp.cxx, src/string/memcpy.cxx,
+ src/string/memset.cxx, src/string/strcat.cxx, src/string/strchr.cxx,
+ src/string/strcmp.cxx, src/string/strcpy.cxx, src/string/strlen.cxx,
+ src/string/strncat.cxx, src/string/strncmp.cxx,
+ src/string/strncpy.cxx
+ * Makefile.in, configure, src/Makefile.in, src/ctype/Makefile.in,
+ src/stdio/common/Makefile.in, src/stdlib/Makefile.in,
+ src/string/Makefile.in: regenerate
+
+
+Mon Mar 23 19:19:49 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdlib/_exit.cxx: added to support temporary _exit
+ * include/stdlib.h, include/stdlib.inl: added support for _exit and
+ added abs(), labs(), div() and ldiv() functions
+ * src/include/file_if.hxx: added support for _exit kludge
+ * src/stdlib/qsort.cxx: Added Berkeley copyright message
+ * src/time/clock.cxx: Include correct kernel config header as
+ CYG_CONFIGURATION rather than <config.h>
+ * Makefile.am src/stdlib/Makefile.am: added support for _exit
+ * Makefile.in, src/stdlib/Makefile.in: regenerated
+
+Mon Mar 23 14:41:07 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * Replace ECCPKG_ANSI_LIBC with CYGPKG_ANSI_LIBC in all source files
+
+Mon Mar 23 14:28:44 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/string.inl: add file to provide strcoll()
+ * include/string.h: include string.inl
+ * ctype.h: include ctype.inl (oops!)
+ * include/stdlib.h: include stdlib.inl (oops!)
+
+Mon Mar 23 13:30:38 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/ctype.h, include/ctype.inl: added to provide ANSI ctype
+ functionality
+ * include/stdlib.h, include/stdlib.inl, src/include/stdlibbsp.hxx,
+ src/stdlib/Makefile.am, src/stdlib/bsearch.cxx,
+ src/stdlib/qsort.cxx, src/stdlib/rand.cxx, src/stdlib/srand.cxx,
+ src/stdlib/strtol.cxx, src/stdlib/strtoul.cxx: Added to provide
+ many stdlib functions
+ * src/include/tsd.hxx: modified to support rand() random number
+ seed, and added some comments
+ * configure.in, Makefile.am, src/Makefile.am: modified to support
+ addition of above new sources
+ * include/eccconf/libc.h: Add extra helpful comments, and #include
+ kernel config file
+ * src/time/clock.cxx: #include clock.inl and fix to call
+ get_resolution() properly now
+ * Makefile.in, configure, src/Makefile.in, src/errno/Makefile.in,
+ src/stdio/Makefile.in, src/stdio/common/Makefile.in,
+ src/stdio/device/Makefile.in, src/stdio/output/Makefile.in,
+ src/stdlib/Makefile.in, src/strings/Makefile.in,
+ src/support/Makefile.in, src/time/Makefile.in,
+ tests/Makefile.in: regenerated
+
+
+Sun Mar 22 21:29:25 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/time.h, src/include/timesupp.hxx, src/time/clock.cxx,
+ src/time/Makefile.am: added to provide clock() function
+ * src/Makefile.am: modified to try to build in src/time directory
+ * include/eccconf/libc.h: added and is now the main configuration
+ file for this package
+ * acconfig.h, include/libcconf.h.in, include/stamp-h.in: removed
+ due to usage of libc.h above instead
+ * Almost all *.h, *.hxx and *.cxx: replaced LIBC_CONFIG_HEADER
+ defined include with simple <pkgconf/libc.h>
+ * configure.in: remove AM_CONFIG_HEADER of libcconf.h and
+ LIBC_CONFIG_HEADER definition. Also remove usage of builtin
+ memcpy() etc. from gcc, and generate src/time/Makefile
+ * Makefile.am: link in src/time/clock.o
+ * src/include/file_if.hxx, src/include/sim.hxx: use config header
+ to decide whether C library is to be used
+ * Makefile.in, aclocal.m4, configure, src/Makefile.in: regenerated
+
+Fri Mar 20 18:08:10 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/string/strxfrm.cxx: Fixed bug with ignoring terminating NULL
+
+1998-03-20 Chris Tarpy <ctarpy@bhaji.cygnus.co.uk>
+
+ * configure: - regenerated
+ * Makefile.am: - Support added for libc testcases
+ * Makefile.in: regenerated
+ * configure.in: set c compiler, descend test dir
+ * tests/Makefile.in: added
+ * tests/Makefile.am: added
+ * tests/tcdiag.cxx : added
+
+
+Thu Mar 19 11:41:56 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * Initial check-in of everything
+
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
diff --git a/ecos/packages/language/c/libc/stdio/current/cdl/stdio.cdl b/ecos/packages/language/c/libc/stdio/current/cdl/stdio.cdl
new file mode 100644
index 0000000..a299afc
--- /dev/null
+++ b/ecos/packages/language/c/libc/stdio/current/cdl/stdio.cdl
@@ -0,0 +1,461 @@
+# ====================================================================
+#
+# stdio.cdl
+#
+# C library stdio related configuration data
+#
+# ====================================================================
+## ####ECOSGPLCOPYRIGHTBEGIN####
+## -------------------------------------------
+## This file is part of eCos, the Embedded Configurable Operating System.
+## Copyright (C) 1998, 1999, 2000, 2001, 2002, 2009 Free Software Foundation, Inc.
+##
+## eCos is free software; you can redistribute it and/or modify it under
+## the terms of the GNU General Public License as published by the Free
+## Software Foundation; either version 2 or (at your option) any later
+## version.
+##
+## eCos 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 General Public License
+## for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with eCos; if not, write to the Free Software Foundation, Inc.,
+## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+##
+## As a special exception, if other files instantiate templates or use
+## macros or inline functions from this file, or you compile this file
+## and link it with other works to produce a work based on this file,
+## this file does not by itself cause the resulting work to be covered by
+## the GNU General Public License. However the source code for this file
+## must still be made available in accordance with section (3) of the GNU
+## General Public License v2.
+##
+## This exception does not invalidate any other reasons why a work based
+## on this file might be covered by the GNU General Public License.
+## -------------------------------------------
+## ####ECOSGPLCOPYRIGHTEND####
+# ====================================================================
+######DESCRIPTIONBEGIN####
+#
+# Author(s): jlarmour
+# Contributors:
+# Date: 2000-04-14
+#
+#####DESCRIPTIONEND####
+#
+# ====================================================================
+
+cdl_package CYGPKG_LIBC_STDIO {
+ display "ISO C library standard input/output functions"
+ description "
+ This package provides standard input/output functions associated
+ with the header file <stdio.h> as specified by the
+ ISO C standard - ISO/IEC 9899:1990."
+ doc ref/libc.html
+ include_dir cyg/libc/stdio
+ parent CYGPKG_LIBC
+ requires CYGPKG_IO
+ requires CYGPKG_LIBC_I18N
+ implements CYGINT_ISO_STDIO_FILETYPES
+ implements CYGINT_ISO_STDIO_FILEACCESS
+ implements CYGINT_ISO_STDIO_FILEPOS
+ implements CYGINT_ISO_STDIO_FILEOPS
+ implements CYGINT_ISO_STDIO_FORMATTED_IO
+ implements CYGINT_ISO_STDIO_CHAR_IO
+ implements CYGINT_ISO_STDIO_DIRECT_IO
+ implements CYGINT_ISO_STDIO_ERROR
+ implements CYGINT_ISO_STDIO_STREAMS
+ requires { (CYGDAT_LIBC_STDIO_DEFAULT_CONSOLE == "\"/dev/ttydiag\"" ? \
+ CYGPKG_IO_SERIAL_HALDIAG : 1) }
+ requires { CYGBLD_ISO_STDIO_FILETYPES_HEADER == \
+ "<cyg/libc/stdio/stdio.h>" }
+ requires { CYGBLD_ISO_STDIO_FILEACCESS_HEADER == \
+ "<cyg/libc/stdio/stdio.h>" }
+ requires { CYGBLD_ISO_STDIO_FILEPOS_HEADER == \
+ "<cyg/libc/stdio/stdio.h>" }
+ requires { CYGBLD_ISO_STDIO_FILEOPS_HEADER == \
+ "<cyg/libc/stdio/stdio.h>" }
+ requires { CYGBLD_ISO_STDIO_FORMATTED_IO_HEADER == \
+ "<cyg/libc/stdio/stdio.h>" }
+ requires { CYGBLD_ISO_STDIO_CHAR_IO_HEADER == \
+ "<cyg/libc/stdio/stdio.h>" }
+ requires { CYGBLD_ISO_STDIO_DIRECT_IO_HEADER == \
+ "<cyg/libc/stdio/stdio.h>" }
+ requires { CYGBLD_ISO_STDIO_ERROR_HEADER == \
+ "<cyg/libc/stdio/stdio.h>" }
+ requires { CYGBLD_ISO_STDIO_STREAMS_HEADER == \
+ "<cyg/libc/stdio/stdio.h>" }
+ requires CYGPKG_ISOINFRA
+ requires CYGINT_ISO_ERRNO_CODES
+ requires CYGINT_ISO_ERRNO
+ requires CYGINT_ISO_STRERROR
+ requires CYGINT_ISO_STRING_STRFUNCS
+ requires CYGINT_ISO_STRING_MEMFUNCS
+ # The following is for scanf only. We could express this better,
+ # particularly since scanf is also dependent on the optional ungetc.
+ requires CYGINT_ISO_STDLIB_STRCONV
+
+ compile common/fflush.cxx common/feof.cxx \
+ common/freopen.cxx common/setvbuf.cxx \
+ common/snprintf.cxx common/sprintf.cxx \
+ common/sscanf.cxx common/stderr.cxx \
+ common/stdin.cxx common/stdiofiles.cxx \
+ common/fseek.cxx common/stdioinlines.cxx\
+ common/stdiosupp.cxx common/stdout.cxx \
+ common/stream.cxx common/streambuf.cxx \
+ common/ungetc.cxx common/vsnprintf.cxx \
+ common/vsscanf.cxx common/fileops.cxx \
+ \
+ input/fgetc.cxx input/fgets.cxx \
+ input/fread.cxx input/fscanf.cxx \
+ input/gets.cxx input/scanf.cxx \
+ input/vfscanf.cxx \
+ \
+ output/fnprintf.cxx output/fprintf.cxx \
+ output/fputc.cxx output/fputs.cxx \
+ output/fwrite.cxx output/printf.cxx \
+ output/vfnprintf.cxx
+
+# ====================================================================
+
+ cdl_option CYGIMP_LIBC_STDIO_INLINES {
+ display "Inline versions of <stdio.h> functions"
+ default_value 1
+ description "
+ This option chooses whether some of the
+ particularly simple functions from
+ <stdio.h> are available as inline
+ functions. This may improve performance, and as
+ the functions are small, may even improve code
+ size."
+ }
+
+ cdl_option FOPEN_MAX {
+ display "Permitted number of open files"
+ flavor data
+ legal_values 3 to 0x7fffffff
+ default_value 8
+ description "
+ This option controls the guaranteed minimum
+ number of simultaneously open files. The ISO
+ C standard requires it to be defined (para
+ 7.9.1), and if strictly compliant, it must be
+ at least 8 (para 7.9.3). In practice it can be
+ as low as 3 - for stdin, stdout and stderr."
+ }
+
+ cdl_option FILENAME_MAX {
+ display "Maximum length of filename"
+ flavor data
+ legal_values 1 to 0x7fffffff
+ default_value 16
+ description "
+ This option defines the maximum allowed size of
+ a filename in characters. The ISO C standard
+ requires it to be defined (para 7.9.1)."
+ }
+
+ cdl_option L_tmpnam {
+ display "Maximum length of filenames for temporary files"
+ flavor data
+ legal_values 4 to 0x7fffffff
+ default_value 16
+ description "
+ This option defines the maximum allowed size of
+ filenames for temporary files as generated by
+ tmpnam(). It is measured in characters, and the
+ ISO C standard requires it to be defined (para
+ 7.9.1)."
+ }
+
+ cdl_option TMP_MAX {
+ display "Unique file names generated by tmpnam()"
+ flavor data
+ legal_values 1 to 0x7fffffff
+ default_value 25
+ description "
+ This option defines the minimum number of
+ unique file names generated by tmpnam(). The
+ ISO C standard requires it to be defined (para
+ 7.9.1) and for ISO compliance it should be at least
+ 25. Note that TMP_MAX names may not be generated
+ if L_tmpnam is too small."
+ }
+
+ cdl_component CYGSEM_LIBC_STDIO_WANT_BUFFERED_IO {
+ display "Buffered I/O"
+ flavor bool
+ default_value 1
+ description "
+ This option controls whether input/output
+ through the <stdio.h> functions is buffered.
+ This may save some memory per file. It
+ is equivalent to putting every file into
+ non-buffered mode (_IONBF) through setvbuf(),
+ except now it can never be altered back to
+ buffered mode. Disabling buffering is strictly
+ non-compliant with the ISO C standard."
+
+ cdl_option CYGNUM_LIBC_STDIO_BUFSIZE {
+ display "Default buffer size"
+ flavor data
+ legal_values 1 to 0x7fffffff
+ default_value 256
+ description "
+ This option defines the default size of buffer
+ used with calls to setbuf(), and is the default
+ size for buffered streams that have not had
+ either setbuf() or setvbuf() invoked on them.
+ It is exactly equivalent to the standard
+ constant BUFSIZ, except that it is 0 if
+ CYGSEM_LIBC_STDIO_WANT_BUFFERED_IO is disabled.
+ The ISO C standard requires this to be defined
+ (para 7.9.1), and says it must be at least 256
+ (para 7.9.2)."
+ }
+
+ cdl_option CYGSEM_LIBC_STDIO_DYNAMIC_SETVBUF {
+ display "setbuf()/setvbuf() allows dynamic setting"
+ default_value 1
+ description "
+ This option controls whether I/O buffers are
+ implemented dynamically within the stdio
+ implementation. Otherwise they will be static,
+ and cannot be changed by setbuf()/setvbuf(). If
+ they are static (i.e. this option is disabled),
+ any attempt to use an arbitrary buffer size, or
+ to pass a user-supplied buffer to setbuf() or
+ setvbuf() will fail - the buffer is implemented
+ internally as a static array taking the size
+ of the configuration option BUFSIZ. The only
+ exception is if a user buffer is not supplied,
+ and the buffer size requested is less than
+ BUFSIZ. In this case, the buffer will
+ be configured to only use that amount of
+ buffering. However the unused memory left over
+ will NOT be freed. If this option is enabled,
+ then setvbuf() can be used to assign a user supplied
+ buffer to the stream.
+ Either setting can be considered to
+ be compliant with the ISO C standard."
+ }
+
+ cdl_option CYGSEM_LIBC_STDIO_SETVBUF_MALLOC {
+ display "setbuf()/setvbuf() uses malloc()"
+ requires CYGINT_ISO_MALLOC
+ requires CYGSEM_LIBC_STDIO_DYNAMIC_SETVBUF
+ default_value { 0 != CYGINT_ISO_MALLOC }
+ description "
+ This option controls whether buffers set by setbuf() and
+ setvbuf() may be allocated using malloc()."
+ }
+
+ }
+ # Define BUFSIZ with same value as ..._BUFSIZE or 0
+ cdl_option BUFSIZ {
+ display "Default buffer size (BUFSIZ)"
+ flavor data
+ calculated CYGSEM_LIBC_STDIO_WANT_BUFFERED_IO \
+ ? "CYGNUM_LIBC_STDIO_BUFSIZE" : 0
+ }
+
+ cdl_option CYGFUN_LIBC_STDIO_ungetc {
+ display "Support for ungetc()"
+ default_value 1
+ description "
+ This option controls whether ungetc() is
+ supported. If not, then some space can be
+ saved, and speed is improved. Note that you
+ MUST have this defined if you want to use the
+ scanf() family of functions."
+ }
+
+ cdl_component CYGPKG_LIBC_STDIO_OPEN {
+ display "Dynamic opening/closing of files"
+ requires CYGINT_ISO_MALLOC
+ default_value { 0 != CYGINT_ISO_MALLOC }
+ compile common/fopen.cxx common/fclose.cxx
+ description "
+ fopen() and fclose() use dynamic memory
+ allocation routines to allocate memory for
+ new FILE structure pointers. If a malloc
+ implementation is available, this option
+ may be enabled to use
+ fopen() and fclose(). If disabled, only the
+ default console streams - stdin, stdout and
+ stderr - will be available."
+
+ cdl_option CYGFUN_LIBC_STDIO_OPEN_POSIX_FDFUNCS {
+ display "POSIX fdopen/fileno functions"
+ active_if CYGPKG_LIBC_STDIO_FILEIO
+ implements CYGINT_ISO_STDIO_POSIX_FDFUNCS
+ calculated 1
+ description "This identifies to the rest of the system
+ whether the POSIX fdopen() and
+ fileno() functions are implemented."
+ }
+ }
+
+ cdl_option CYGDAT_LIBC_STDIO_DEFAULT_CONSOLE {
+ display "Default console device"
+ flavor data
+ default_value { CYGDAT_IO_SERIAL_TTY_CONSOLE ? CYGDAT_IO_SERIAL_TTY_CONSOLE : "\"/dev/null\"" }
+ description "
+ This option allows you to choose the
+ default console device. In the current
+ implementation, all these devices begin
+ with the prefix /dev/ and are followed by
+ the name of a device. The name of the device
+ depends on the device drivers you have
+ configured in your system. For example,
+ /dev/ttydiag could be the HAL diagnostic output
+ pseudo-device, or /dev/tty0 could be your
+ first serial driver, depending on your
+ configuration."
+ }
+
+ cdl_component CYGPKG_LIBC_STDIO_FLOATING_POINT {
+ display "Floating point support"
+ flavor none
+ description "
+ This component allows floating point support
+ to be enabled in certain standard I/O
+ functions."
+
+ cdl_option CYGSEM_LIBC_STDIO_PRINTF_FLOATING_POINT {
+ display "printf() family"
+ requires CYGPKG_LIBM
+ default_value { 0 != CYGPKG_LIBM }
+ description "
+ This option enables the use of floating point
+ number output in the printf() family (i.e.
+ printf(), sprintf(), vprintf(), etc.) of
+ functions. A substantial amount of code space
+ can be saved if this option is disabled. If it
+ is disabled then floating point specifiers
+ (%e, %f, %g) are ignored, and nothing is
+ output."
+ }
+
+ cdl_option CYGSEM_LIBC_STDIO_SCANF_FLOATING_POINT {
+ display "scanf() family"
+ requires CYGPKG_LIBM
+ requires CYGINT_ISO_STDLIB_STRCONV_FLOAT
+ default_value { 0 != CYGPKG_LIBM &&
+ 0 != CYGINT_ISO_STDLIB_STRCONV_FLOAT }
+ description "
+ This option enables the use of floating point
+ number conversion in the scanf() family (i.e.
+ scanf(), sscanf(), vscanf(), etc.) of
+ functions. A substantial amount of code space
+ can be saved if this option is disabled. If it
+ is disabled then floating point specifiers
+ (%e, %f, %g) are ignored, and nothing is
+ converted."
+ }
+ }
+
+ cdl_option CYGFUN_LIBC_STDIO_LONGLONG {
+ display "Long long support"
+ requires CYGFUN_LIBC_STDLIB_CONV_LONGLONG
+ default_value 1
+ description "
+ This option allows various functions in the C Standard I/O
+ library to support the 'long long' datatype. Doing so
+ will come with a noticeable code size penalty however."
+ }
+
+ cdl_option CYGSEM_LIBC_STDIO_THREAD_SAFE_STREAMS {
+ display "Thread safe I/O streams"
+ doc ref/libc-thread-safety.html
+ active_if CYGPKG_KERNEL
+ default_value 1
+ description "
+ This option controls whether standard I/O streams
+ are thread-safe. Having this option set allows
+ the streams to be locked when accessed by
+ multiple threads simultaneously."
+ }
+
+ cdl_option CYGIMP_LIBC_STDIO_C99_SNPRINTF {
+ display "C99 compliant snprintf() family"
+ default_value 0
+ description "
+ This option allows C99 compliant implementation of
+ snprintf() family (i.e. snprintf(), vsnprintf())
+ of functions. C99 compliant snprintf() functions
+ return the number of characters that would have been written
+ to a sufficiently sized buffer (excluding the '\\0').
+ If this option is disabled, the functions simply return
+ the number of bytes that have been written to the buffer."
+ }
+
+
+# ====================================================================
+
+ cdl_option CYGPKG_LIBC_STDIO_FILEIO {
+ display "Enable use of FILEIO package for IO operations."
+ active_if CYGPKG_IO_FILEIO
+ requires CYGSEM_LIBC_STDIO_WANT_BUFFERED_IO
+ requires CYGSEM_LIBC_STDIO_DYNAMIC_SETVBUF
+ calculated 1
+ description "
+ This CDL exists to control how the standard I/O functions
+ interface to the underlying I/O system. Either using the
+ File I/O package, or the generic I/O package which is used
+ by fewer devices."
+ }
+}
+
+# ====================================================================
+
+ cdl_component CYGPKG_LIBC_STDIO_OPTIONS {
+ display "C library stdio functions build options"
+ flavor none
+ no_define
+ description "
+ Package specific build options including control over
+ compiler flags used only in building this package,
+ and details of which tests are built."
+
+
+ cdl_option CYGPKG_LIBC_STDIO_CFLAGS_ADD {
+ display "Additional compiler flags"
+ flavor data
+ no_define
+ default_value { "" }
+ description "
+ This option modifies the set of compiler flags for
+ building the C library. These flags are used in addition
+ to the set of global flags."
+ }
+
+ cdl_option CYGPKG_LIBC_STDIO_CFLAGS_REMOVE {
+ display "Suppressed compiler flags"
+ flavor data
+ no_define
+ default_value { "" }
+ description "
+ This option modifies the set of compiler flags for
+ building the C library. These flags are removed from
+ the set of global flags if present."
+ }
+
+ cdl_option CYGPKG_LIBC_STDIO_TESTS {
+ display "C library stdio function tests"
+ flavor data
+ no_define
+ calculated {
+ "tests/sprintf1 tests/sprintf2 tests/snprintf tests/sscanf tests/stdiooutput "
+ . ((CYGPKG_IO_FILEIO && CYGPKG_FS_RAM) ? "tests/fileio " : "")
+ }
+ description "
+ This option specifies the set of tests for the C library
+ stdio functions."
+ }
+ }
+
+# ====================================================================
+# EOF stdio.cdl
diff --git a/ecos/packages/language/c/libc/stdio/current/include/io.hxx b/ecos/packages/language/c/libc/stdio/current/include/io.hxx
new file mode 100644
index 0000000..4e63512
--- /dev/null
+++ b/ecos/packages/language/c/libc/stdio/current/include/io.hxx
@@ -0,0 +1,89 @@
+#ifndef CYGONCE_LIBC_STDIO_IO_HXX
+#define CYGONCE_LIBC_STDIO_IO_HXX
+//========================================================================
+//
+// io.hxx
+//
+// Internal C library stdio io interface definitions
+//
+//========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): nickg
+// Contributors:
+// Date: 2000-06-30
+// Purpose:
+// Description:
+// Usage: #include <cyg/libc/stdio/io.hxx>
+//
+//####DESCRIPTIONEND####
+//
+//========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libc_stdio.h> // Configuration header
+
+//========================================================================
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common project-wide type definitions
+#include <cyg/infra/cyg_ass.h> // Get assertion macros, as appropriate
+#include <errno.h> // Cyg_ErrNo
+
+#ifdef CYGPKG_LIBC_STDIO_FILEIO
+#include <unistd.h>
+#include <fcntl.h>
+#include <sys/stat.h>
+#include <errno.h>
+#else
+#include <cyg/io/io.h> // Device I/O support
+#include <cyg/io/config_keys.h> // CYG_IO_GET_CONFIG_SERIAL_OUTPUT_DRAIN
+#endif
+
+//========================================================================
+// Stream handle type
+
+#ifdef CYGPKG_LIBC_STDIO_FILEIO
+typedef int cyg_stdio_handle_t;
+#define CYG_STDIO_HANDLE_NULL -1
+#else
+typedef cyg_io_handle_t cyg_stdio_handle_t;
+#define CYG_STDIO_HANDLE_NULL 0
+#endif
+
+//========================================================================
+#endif // CYGONCE_LIBC_STDIO_IO_HXX multiple inclusion protection
+// EOF io.hxx
diff --git a/ecos/packages/language/c/libc/stdio/current/include/io.inl b/ecos/packages/language/c/libc/stdio/current/include/io.inl
new file mode 100644
index 0000000..2b513d6
--- /dev/null
+++ b/ecos/packages/language/c/libc/stdio/current/include/io.inl
@@ -0,0 +1,257 @@
+#ifndef CYGONCE_LIBC_STDIO_IO_INL
+#define CYGONCE_LIBC_STDIO_IO_INL
+//========================================================================
+//
+// io.inl
+//
+// Internal C library stdio io interface inlines
+//
+//========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): nickg
+// Contributors:
+// Date: 2000-06-30
+// Purpose:
+// Description:
+// Usage: #include <cyg/libc/stdio/io.hxx>
+//
+//####DESCRIPTIONEND####
+//
+//========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libc_stdio.h> // Configuration header
+
+//========================================================================
+// INCLUDES
+
+#include <cyg/libc/stdio/io.hxx>
+
+//========================================================================
+// FileIO versions of IO functions
+
+#ifdef CYGPKG_LIBC_STDIO_FILEIO
+
+inline Cyg_ErrNo cyg_stdio_open( const char *filename,
+ const Cyg_StdioStream::OpenMode rw,
+ const cyg_bool binary,
+ const cyg_bool append,
+ cyg_stdio_handle_t *dev)
+{
+ mode_t mode = 0;
+ int fd;
+
+ switch( rw )
+ {
+ case Cyg_StdioStream::CYG_STREAM_WRITE:
+ mode = O_WRONLY|O_CREAT|O_TRUNC;
+ break;
+ case Cyg_StdioStream::CYG_STREAM_READ:
+ mode = O_RDONLY;
+ break;
+ case Cyg_StdioStream::CYG_STREAM_READWRITE_NOCREATE:
+ mode = O_RDWR;
+ break;
+ case Cyg_StdioStream::CYG_STREAM_READWRITE_CREATE:
+ mode = O_RDWR|O_CREAT|O_TRUNC;
+ break;
+ }
+
+ if( append )
+ {
+ mode |= O_APPEND;
+ mode &= ~O_TRUNC;
+ }
+
+ fd = open( filename, mode );
+
+ if( fd < 0 )
+ return errno;
+
+ *dev = fd;
+ return ENOERR;
+}
+
+inline Cyg_ErrNo cyg_stdio_close( cyg_stdio_handle_t dev )
+{
+ if( close( dev ) != ENOERR )
+ return errno;
+ return ENOERR;
+}
+
+inline Cyg_ErrNo cyg_stdio_read( cyg_stdio_handle_t dev,
+ void *buffer, cyg_uint32 *len )
+{
+ if( dev != CYG_STDIO_HANDLE_NULL )
+ {
+ ssize_t done = read( dev, buffer, *len );
+
+ if( done < 0 )
+ {
+ *len = 0;
+ return errno;
+ }
+
+ *len = done;
+ }
+ // If the device is NULL, just return EOF indication
+ else *len = 0;
+
+ return ENOERR;
+}
+
+inline Cyg_ErrNo cyg_stdio_write( cyg_stdio_handle_t dev,
+ const void *buffer, cyg_uint32 *len )
+{
+ if( dev != CYG_STDIO_HANDLE_NULL )
+ {
+ ssize_t done = write( dev, buffer, *len );
+
+ if( done < 0 )
+ {
+ *len = 0;
+ return errno;
+ }
+
+ *len = done;
+ }
+ // if the device is NULL, just absorb all writes.
+
+ return ENOERR;
+}
+
+inline Cyg_ErrNo cyg_stdio_lseek( cyg_stdio_handle_t dev,
+ off_t *pos, int whence )
+{
+ off_t newpos = lseek( dev, *pos, whence );
+
+ if( newpos < 0 )
+ return errno;
+
+ *pos = newpos;
+
+ return ENOERR;
+}
+
+inline Cyg_ErrNo cyg_stdio_flush( cyg_stdio_handle_t dev )
+{
+ int err = fsync( dev );
+
+ if( err < 0 )
+ return errno;
+
+ return ENOERR;
+}
+
+inline cyg_bool cyg_stdio_interactive( cyg_stdio_handle_t dev )
+{
+ struct stat buf;
+ int err;
+
+ err = fstat( dev, &buf );
+
+ // If we get an error, assume interactive.
+ if( err < 0 )
+ return true;
+
+ if( S_ISCHR(buf.st_mode) )
+ return true;
+
+ return false;
+}
+
+
+#endif // CYGPKG_LIBC_STDIO_FILEIO
+
+//========================================================================
+// Direct IO versions of IO functions
+
+#ifndef CYGPKG_LIBC_STDIO_FILEIO
+
+inline Cyg_ErrNo cyg_stdio_open( const char *filename,
+ const Cyg_StdioStream::OpenMode rw,
+ const cyg_bool binary,
+ const cyg_bool append,
+ cyg_stdio_handle_t *dev)
+{
+ return cyg_io_lookup( filename, dev );
+}
+
+inline Cyg_ErrNo cyg_stdio_close( cyg_stdio_handle_t dev )
+{
+ // Devices do not get closed
+ return ENOERR;
+}
+
+inline Cyg_ErrNo cyg_stdio_read( cyg_stdio_handle_t dev,
+ void *buffer, cyg_uint32 *len )
+{
+ return cyg_io_read( dev, buffer, len );
+}
+
+inline Cyg_ErrNo cyg_stdio_write( cyg_stdio_handle_t dev,
+ const void *buffer, cyg_uint32 *len )
+{
+ return cyg_io_write( dev, buffer, len );
+}
+
+inline cyg_uint32 cyg_stdio_lseek( cyg_stdio_handle_t dev,
+ cyg_uint32 *pos, int whence )
+{
+ // No seeking in raw devices, just return fake success
+ return ENOERR;
+}
+
+inline Cyg_ErrNo cyg_stdio_flush( cyg_stdio_handle_t dev )
+{
+ return cyg_io_get_config(dev,
+ CYG_IO_GET_CONFIG_SERIAL_OUTPUT_DRAIN,
+ NULL, NULL);
+}
+
+inline cyg_bool cyg_stdio_interactive( cyg_stdio_handle_t dev )
+{
+ return true;
+}
+
+
+#endif // !CYGPKG_LIBC_STDIO_FILEIO
+
+//========================================================================
+#endif // CYGONCE_LIBC_STDIO_IO_INL multiple inclusion protection
+// EOF io.inl
+
diff --git a/ecos/packages/language/c/libc/stdio/current/include/stdio.h b/ecos/packages/language/c/libc/stdio/current/include/stdio.h
new file mode 100644
index 0000000..2b57b6a
--- /dev/null
+++ b/ecos/packages/language/c/libc/stdio/current/include/stdio.h
@@ -0,0 +1,334 @@
+#ifndef CYGONCE_LIBC_STDIO_STDIO_H
+#define CYGONCE_LIBC_STDIO_STDIO_H
+//========================================================================
+//
+// stdio.h
+//
+// ISO C standard I/O routines - with some POSIX 1003.1 extensions
+//
+//========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors:
+// Date: 2000-04-19
+// Purpose: ISO C standard I/O routines
+// Description:
+// Usage: Do not include this file directly - use #include <stdio.h>
+//
+//####DESCRIPTIONEND####
+//
+//========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libc_stdio.h> // Configuration header
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // common type definitions and support
+#include <stdarg.h> // va_list from compiler
+
+// CONSTANTS
+
+// Some of these values are odd to ensure that asserts have better effect
+// should spurious values be passed to functions expecting these constants.
+
+// _IOFBF, _IOLBF, and _IONBF specify full, line or no buffering when used
+// with setvbuf() - ISO C standard chap 7.9.1
+
+#define _IOFBF (-2)
+#define _IOLBF (-4)
+#define _IONBF (-8)
+
+// EOF is a macro defined to any negative integer constant - ISO C standard
+// chap. 7.9.1
+#define EOF (-1)
+
+// SEEK_CUR, SEEK_END and SEEK_SET are used with fseek() as position
+// anchors - ISO C standard chap. 7.9.1
+#define SEEK_SET 0
+#define SEEK_CUR 1
+#define SEEK_END 2
+
+
+// TYPE DEFINITIONS
+
+// A type capable of specifying uniquely every file position - ISO C
+// standard chap 7.9.1
+typedef cyg_count32 fpos_t;
+
+
+// FILE is just cast to an address here. It is uncast internally to the
+// C library in stream.hxx as the C++ Cyg_StdioStream class.
+// Optional run-time checking can be enabled to ensure that the cast is
+// valid, using the standard assertion functionality.
+//
+// The array size is irrelevant other than being more than 8, and is present
+// to stop references to FILEs being marked as able to be put in the small
+// data section. We can't just mark it as in the ".data" section as on some
+// targets it may actually be ".common".
+typedef CYG_ADDRESS FILE[9999];
+
+// EXTERNAL VARIABLES
+
+// Default file streams for input/output. These only need to be
+// expressions, not l-values - ISO C standard chap. 7.9.1
+//
+// CYGPRI_LIBC_STDIO_NO_DEFAULT_STREAMS is used when initializing
+// stdin/out/err privately inside the C library
+
+#ifndef CYGPRI_LIBC_STDIO_NO_DEFAULT_STREAMS
+__externC FILE *stdin, *stdout, *stderr;
+#endif
+
+// FUNCTION PROTOTYPES
+
+//========================================================================
+
+// ISO C89 7.9.4 Functions for operations on files
+
+__externC int
+remove( const char * /* pathname */ ) __THROW;
+
+__externC int
+rename( const char * /* oldpath */, const char * /* newpath */ ) __THROW;
+
+__externC FILE *
+tmpfile( void ) __THROW;
+
+__externC char *
+tmpnam(char * /* s */ ) __THROW;
+
+//========================================================================
+
+// ISO C89 7.9.5 File access functions
+
+__externC int
+fclose( FILE * /* stream */ ) __THROW;
+
+__externC int
+fflush( FILE * /* stream */ ) __THROW;
+
+__externC FILE *
+fopen( const char * /* filename */, const char * /* mode */ ) __THROW;
+
+__externC FILE *
+freopen( const char * /* filename */, const char * /* mode */,
+ FILE * /* stream */ ) __THROW;
+
+__externC void
+setbuf( FILE * /* stream */, char * /* buffer */ ) __THROW;
+
+__externC int
+setvbuf( FILE * /* stream */, char * /* buffer */, int /* mode */,
+ size_t /* size */ ) __THROW;
+
+//========================================================================
+
+// ISO C89 7.9.6 Formatted input/output functions
+
+__externC int
+fprintf( FILE * /* stream */, const char * /* format */, ... ) __THROW
+ CYGBLD_ATTRIB_PRINTF_FORMAT(2, 3);
+
+__externC int
+fscanf( FILE * /* stream */, const char * /* format */, ... ) __THROW
+ CYGBLD_ATTRIB_SCANF_FORMAT(2, 3);
+
+__externC int
+printf( const char * /* format */, ... ) __THROW
+ CYGBLD_ATTRIB_PRINTF_FORMAT(1, 2);
+
+__externC int
+scanf( const char * /* format */, ... ) __THROW
+ CYGBLD_ATTRIB_SCANF_FORMAT(1, 2);
+
+__externC int
+sprintf( char * /* str */, const char * /* format */, ... ) __THROW
+ CYGBLD_ATTRIB_PRINTF_FORMAT(2, 3);
+
+__externC int
+sscanf( const char * /* str */, const char * /* format */, ... ) __THROW
+ CYGBLD_ATTRIB_SCANF_FORMAT(2, 3);
+
+__externC int
+vfprintf( FILE * /* stream */, const char * /* format */,
+ va_list /* args */ ) __THROW CYGBLD_ATTRIB_PRINTF_FORMAT(2, 0);
+
+__externC int
+vprintf( const char * /* format */, va_list /* args */ ) __THROW
+ CYGBLD_ATTRIB_PRINTF_FORMAT(1, 0);
+
+__externC int
+vsprintf( char * /* str */, const char * /* format */,
+ va_list /* args */ ) __THROW CYGBLD_ATTRIB_PRINTF_FORMAT(2, 0);
+
+//========================================================================
+
+// ISO C89 7.9.7 Character input/output functions
+
+__externC int
+fgetc( FILE * /* stream */ ) __THROW;
+
+__externC char *
+fgets( char * /* str */, int /* length */, FILE * /* stream */ ) __THROW;
+
+__externC int
+fputc( int /* c */, FILE * /* stream */ ) __THROW;
+
+__externC int
+putc( int /* c */, FILE * /* stream */ ) __THROW;
+
+__externC int
+putchar( int /* c */ ) __THROW;
+
+__externC int
+fputs( const char * /* str */, FILE * /* stream */ ) __THROW;
+
+__externC char *
+gets( char * ) __THROW;
+
+__externC int
+getc( FILE * /* stream */ ) __THROW;
+
+__externC int
+getchar( void ) __THROW;
+
+__externC int
+puts( const char * /* str */ ) __THROW;
+
+__externC int
+ungetc( int /* c */, FILE * /* stream */ ) __THROW;
+
+// no function equivalent is required for getchar() or putchar(), so we can
+// just #define them
+
+#define getchar() fgetc( stdin )
+
+#define putchar(__c) fputc(__c, stdout)
+
+//========================================================================
+
+// ISO C89 7.9.8 Direct input/output functions
+
+__externC size_t
+fread( void * /* ptr */, size_t /* object_size */,
+ size_t /* num_objects */, FILE * /* stream */ ) __THROW;
+
+__externC size_t
+fwrite( const void * /* ptr */, size_t /* object_size */,
+ size_t /* num_objects */, FILE * /* stream */ ) __THROW;
+
+//========================================================================
+
+// ISO C89 7.9.9 File positioning functions
+
+__externC int
+fgetpos( FILE * /* stream */, fpos_t * /* pos */ ) __THROW;
+
+__externC int
+fseek( FILE * /* stream */, long int /* offset */, int /* whence */ ) __THROW;
+
+__externC int
+fsetpos( FILE * /* stream */, const fpos_t * /* pos */ ) __THROW;
+
+__externC long int
+ftell( FILE * /* stream */ ) __THROW;
+
+__externC void
+rewind( FILE * /* stream */ ) __THROW;
+
+//========================================================================
+
+// ISO C89 7.9.10 Error-handling functions
+
+__externC void
+clearerr( FILE * /* stream */ ) __THROW;
+
+__externC int
+feof( FILE * /* stream */ ) __THROW;
+
+__externC int
+ferror( FILE * /* stream */ ) __THROW;
+
+__externC void
+perror( const char * /* prefix_str */ ) __THROW;
+
+//========================================================================
+
+// Other non-ISO C functions
+
+__externC int
+fnprintf( FILE * /* stream */, size_t /* length */,
+ const char * /* format */, ... ) __THROW
+ CYGBLD_ATTRIB_PRINTF_FORMAT(3, 4);
+
+__externC int
+snprintf( char * /* str */, size_t /* length */, const char * /* format */,
+ ... ) __THROW CYGBLD_ATTRIB_PRINTF_FORMAT(3, 4);
+
+__externC int
+vfnprintf( FILE * /* stream */, size_t /* length */,
+ const char * /* format */, va_list /* args */ ) __THROW
+ CYGBLD_ATTRIB_PRINTF_FORMAT(3, 0);
+
+__externC int
+vsnprintf( char * /* str */, size_t /* length */,
+ const char * /* format */, va_list /* args */ ) __THROW
+ CYGBLD_ATTRIB_PRINTF_FORMAT(3, 0);
+
+__externC int
+vscanf( const char * /* format */, va_list /* args */ ) __THROW
+ CYGBLD_ATTRIB_SCANF_FORMAT(1, 0);
+
+__externC int
+vsscanf( const char * /* str */, const char * /* format */,
+ va_list /* args */ ) __THROW CYGBLD_ATTRIB_SCANF_FORMAT(2, 0);
+
+__externC int
+vfscanf( FILE * /* stream */, const char * /* format */,
+ va_list /* args */ ) __THROW CYGBLD_ATTRIB_PRINTF_FORMAT(2, 0);
+
+
+// INLINE FUNCTIONS
+
+#ifdef CYGIMP_LIBC_STDIO_INLINES
+# include <cyg/libc/stdio/stdio.inl>
+#endif
+
+#endif // CYGONCE_LIBC_STDIO_STDIO_H multiple inclusion protection
+
+// EOF stdio.h
diff --git a/ecos/packages/language/c/libc/stdio/current/include/stdio.inl b/ecos/packages/language/c/libc/stdio/current/include/stdio.inl
new file mode 100644
index 0000000..0efbf52
--- /dev/null
+++ b/ecos/packages/language/c/libc/stdio/current/include/stdio.inl
@@ -0,0 +1,158 @@
+#ifndef CYGONCE_LIBC_STDIO_STDIO_INL
+#define CYGONCE_LIBC_STDIO_STDIO_INL
+//===========================================================================
+//
+// stdio.inl
+//
+// ANSI standard I/O routines - inlined functions
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors:
+// Date: 2000-04-19
+// Purpose:
+// Description:
+// Usage: Do not include this file directly - use #include <stdio.h>
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libc_stdio.h> // Configuration header
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include <stddef.h> // NULL and size_t from compiler
+#include <stdarg.h> // va_list
+#include <stdio.h> // Just be sure it has been included
+#include <errno.h> // Definition of error codes and errno
+#include <string.h> // Definition of strerror() for perror()
+#include <limits.h> // INT_MAX
+
+// INLINE FUNCTION DEFINITIONS
+
+//===========================================================================
+
+// 7.9.5 File access functions
+
+extern __inline__ void
+setbuf( FILE *stream, char *buf ) __THROW
+{
+ if (buf == NULL)
+ setvbuf( stream, NULL, _IONBF, 0 );
+ else
+ // NB: Should use full buffering by default ordinarily, but in
+ // the current system we're always connected to an interactive
+ // terminal, so use line buffering
+ setvbuf( stream, buf, _IOLBF, BUFSIZ );
+
+} // setbuf()
+
+//===========================================================================
+
+// 7.9.6 Formatted input/output functions
+
+extern __inline__ int
+vfprintf( FILE *stream, const char *format, va_list arg ) __THROW
+{
+ return vfnprintf(stream, INT_MAX, format, arg);
+} // vfprintf()
+
+
+extern __inline__ int
+vprintf( const char *format, va_list arg ) __THROW
+{
+ return vfnprintf(stdout, INT_MAX, format, arg);
+} // vprintf()
+
+
+extern __inline__ int
+vsprintf( char *s, const char *format, va_list arg ) __THROW
+{
+ return vsnprintf(s, INT_MAX, format, arg);
+} // vsprintf()
+
+
+//===========================================================================
+
+// 7.9.7 Character input/output functions
+
+extern __inline__ int
+puts( const char *s ) __THROW
+{
+ int rc;
+
+ rc = fputs( s, stdout );
+
+ if (rc >= 0)
+ rc = fputc('\n', stdout );
+
+ return rc;
+} // puts()
+
+
+//===========================================================================
+
+// 7.9.10 Error-handling functions
+
+extern __inline__ void
+perror( const char *s ) __THROW
+{
+ if (s && *s)
+ fprintf( stderr, "%s: %s\n", s, strerror(errno) );
+ else
+ fputs( strerror(errno), stderr );
+
+} // perror()
+
+//===========================================================================
+
+// Other non-ANSI functions
+
+extern __inline__ int
+vscanf( const char *format, va_list arg ) __THROW
+{
+ return vfscanf( stdin, format, arg );
+} // vscanf()
+
+
+#endif // CYGONCE_LIBC_STDIO_STDIO_INL multiple inclusion protection
+
+// EOF stdio.inl
diff --git a/ecos/packages/language/c/libc/stdio/current/include/stdiofiles.hxx b/ecos/packages/language/c/libc/stdio/current/include/stdiofiles.hxx
new file mode 100644
index 0000000..fd6ae9a
--- /dev/null
+++ b/ecos/packages/language/c/libc/stdio/current/include/stdiofiles.hxx
@@ -0,0 +1,116 @@
+#ifndef CYGONCE_LIBC_STDIO_STDIOFILES_HXX
+#define CYGONCE_LIBC_STDIO_STDIOFILES_HXX
+//========================================================================
+//
+// stdiofiles.hxx
+//
+// ISO C library stdio central file access
+//
+//========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors:
+// Date: 2000-04-19
+// Purpose:
+// Description:
+// Usage: #include <cyg/libc/stdio/stdiosupp.hxx>
+//
+//####DESCRIPTIONEND####
+//
+//========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libc_stdio.h> // libc stdio configuration
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // cyg_bool, cyg_ucount8, cyg_ucount16
+#include <cyg/libc/stdio/stream.hxx> // Cyg_StdioStream
+
+#ifdef CYGSEM_LIBC_STDIO_THREAD_SAFE_STREAMS
+# include <cyg/kernel/mutex.hxx> // mutexes
+#endif
+
+// CLASSES
+
+class Cyg_libc_stdio_files
+{
+ // List of open files - global for now
+ static
+ Cyg_StdioStream *files[FOPEN_MAX];
+
+# ifdef CYGSEM_LIBC_STDIO_THREAD_SAFE_STREAMS
+ // lock for the above
+ static
+ Cyg_Mutex files_lock;
+# endif
+
+public:
+
+# if FOPEN_MAX < 256
+ typedef cyg_ucount8 fd_t;
+# else
+ typedef cyg_ucount16 fd_t;
+# endif
+
+ static Cyg_StdioStream *
+ get_file_stream( fd_t fd );
+
+ static void
+ set_file_stream( fd_t fd, Cyg_StdioStream *stream );
+
+
+ // the following functions lock(), trylock() and unlock() do nothing
+ // if we haven't got thread-safe streams
+ static cyg_bool
+ lock(void);
+
+ static cyg_bool
+ trylock(void);
+
+ static void
+ unlock(void);
+
+}; // class Cyg_libc_stdio_files
+
+
+// Inline functions for this class
+#include <cyg/libc/stdio/stdiofiles.inl>
+
+#endif // CYGONCE_LIBC_STDIO_STDIOFILES_HXX multiple inclusion protection
+
+// EOF stdiofiles.hxx
diff --git a/ecos/packages/language/c/libc/stdio/current/include/stdiofiles.inl b/ecos/packages/language/c/libc/stdio/current/include/stdiofiles.inl
new file mode 100644
index 0000000..f77378c
--- /dev/null
+++ b/ecos/packages/language/c/libc/stdio/current/include/stdiofiles.inl
@@ -0,0 +1,125 @@
+#ifndef CYGONCE_LIBC_STDIO_STDIOFILES_INL
+#define CYGONCE_LIBC_STDIO_STDIOFILES_INL
+//========================================================================
+//
+// stdiofiles.inl
+//
+// ISO C library stdio central file inlines
+//
+//========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors:
+// Date: 2000-04-19
+// Purpose:
+// Description:
+// Usage: Do not include this file directly. Instead use:
+// #include <cyg/libc/stdio/stdiofiles.hxx>
+//
+//####DESCRIPTIONEND####
+//
+//========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libc_stdio.h> // libc stdio configuration
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // cyg_bool
+#include <cyg/infra/cyg_ass.h> // Assert interface
+#include <cyg/libc/stdio/stdiofiles.hxx> // header for this file
+#include <cyg/libc/stdio/stream.hxx> // Cyg_StdioStream
+
+#ifdef CYGSEM_LIBC_STDIO_THREAD_SAFE_STREAMS
+# include <cyg/kernel/mutex.hxx> // mutexes
+#endif
+
+// INLINE METHODS
+
+inline Cyg_StdioStream *
+Cyg_libc_stdio_files::get_file_stream( fd_t fd )
+{
+ CYG_PRECONDITION( (fd < FOPEN_MAX),
+ "Attempt to open larger file descriptor than FOPEN_MAX!" );
+
+ return files[fd];
+
+} // Cyg_libc_stdio_files::get_file_stream()
+
+inline void
+Cyg_libc_stdio_files::set_file_stream( fd_t fd, Cyg_StdioStream *stream )
+{
+ CYG_PRECONDITION( (fd < FOPEN_MAX),
+ "Attempt to set larger file descriptor than FOPEN_MAX!" );
+
+ files[fd] = stream;
+
+} // Cyg_libc_stdio_files::set_file_stream()
+
+
+inline cyg_bool
+Cyg_libc_stdio_files::lock(void)
+{
+# ifdef CYGSEM_LIBC_STDIO_THREAD_SAFE_STREAMS
+ return files_lock.lock();
+# else
+ return true;
+# endif
+} // Cyg_libc_stdio_files::lock()
+
+inline cyg_bool
+Cyg_libc_stdio_files::trylock(void)
+{
+# ifdef CYGSEM_LIBC_STDIO_THREAD_SAFE_STREAMS
+ return files_lock.trylock();
+# else
+ return true;
+# endif
+} // Cyg_libc_stdio_files::trylock()
+
+inline void
+Cyg_libc_stdio_files::unlock(void)
+{
+# ifdef CYGSEM_LIBC_STDIO_THREAD_SAFE_STREAMS
+ files_lock.unlock();
+# endif
+} // Cyg_libc_stdio_files::unlock()
+
+
+#endif // CYGONCE_LIBC_STDIO_STDIOFILES_INL multiple inclusion protection
+
+// EOF stdiofiles.inl
diff --git a/ecos/packages/language/c/libc/stdio/current/include/stdiosupp.hxx b/ecos/packages/language/c/libc/stdio/current/include/stdiosupp.hxx
new file mode 100644
index 0000000..6ae7151
--- /dev/null
+++ b/ecos/packages/language/c/libc/stdio/current/include/stdiosupp.hxx
@@ -0,0 +1,82 @@
+#ifndef CYGONCE_LIBC_STDIO_STDIOSUPP_HXX
+#define CYGONCE_LIBC_STDIO_STDIOSUPP_HXX
+//========================================================================
+//
+// stdiosupp.hxx
+//
+// Support for C library standard I/O routines
+//
+//========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors:
+// Date: 2000-04-19
+// Purpose:
+// Description:
+// Usage: #include <cyg/libc/stdio/stdiosupp.hxx>
+//
+//####DESCRIPTIONEND####
+//
+//========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libc_stdio.h> // Configuration header
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // common type definitions and support
+#include <stdio.h> // Main standard I/O header
+#include <cyg/libc/stdio/stream.hxx>// Cyg_StdioStream
+
+// FUNCTION PROTOTYPES
+
+//========================================================================
+
+// Miscellaneous support functions
+
+externC cyg_stdio_handle_t
+Cyg_libc_stdio_find_filename( const char *filename,
+ const Cyg_StdioStream::OpenMode rw,
+ const cyg_bool binary,
+ const cyg_bool append );
+
+externC Cyg_ErrNo
+cyg_libc_stdio_flush_all_but( Cyg_StdioStream *not_this_stream );
+
+#endif // CYGONCE_LIBC_STDIOL_STDIOSUPP_HXX multiple inclusion protection
+
+// EOF stdiosupp.hxx
diff --git a/ecos/packages/language/c/libc/stdio/current/include/stream.hxx b/ecos/packages/language/c/libc/stdio/current/include/stream.hxx
new file mode 100644
index 0000000..7c7d434
--- /dev/null
+++ b/ecos/packages/language/c/libc/stdio/current/include/stream.hxx
@@ -0,0 +1,338 @@
+#ifndef CYGONCE_LIBC_STDIO_STREAM_HXX
+#define CYGONCE_LIBC_STDIO_STREAM_HXX
+//========================================================================
+//
+// stream.hxx
+//
+// Internal C library stdio stream interface definitions
+//
+//========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors:
+// Date: 2001-03-16
+// Purpose:
+// Description:
+// Usage: #include <cyg/libc/stdio/stream.hxx>
+//
+//####DESCRIPTIONEND####
+//
+//========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libc_stdio.h> // Configuration header
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common project-wide type definitions
+#include <cyg/infra/cyg_ass.h> // Get assertion macros, as appropriate
+#include <errno.h> // Cyg_ErrNo
+#include <stdio.h> // fpos_t and IOBUF defines
+#include <cyg/libc/stdio/io.hxx> // Physical IO support
+#include <cyg/libc/stdio/streambuf.hxx> // Stdio stream file buffers
+
+#ifdef CYGSEM_LIBC_STDIO_THREAD_SAFE_STREAMS
+#include <pkgconf/kernel.h>
+#include <cyg/kernel/mutex.hxx> // Cyg_Mutex
+#endif
+
+// TYPE DEFINITIONS
+
+class Cyg_OutputStream
+{
+public:
+
+ // Provide empty virtual destructor
+ virtual ~Cyg_OutputStream() {}
+
+ // The following two functions aren't made pure virtual not to bring
+ // dependency on C++ runtime to every application.
+
+ virtual Cyg_ErrNo write( const cyg_uint8 *buffer, cyg_ucount32 buffer_length,
+ cyg_ucount32 *bytes_written );
+
+ virtual Cyg_ErrNo get_error( void );
+
+};
+
+class Cyg_StdioStream;
+__externC Cyg_ErrNo
+cyg_libc_stdio_flush_all_but( Cyg_StdioStream * );
+
+class Cyg_StdioStream: public Cyg_OutputStream
+{
+ friend int setvbuf( FILE *, char *, int, size_t ) __THROW;
+ friend Cyg_ErrNo
+ cyg_libc_stdio_flush_all_but( Cyg_StdioStream * );
+
+private:
+
+ // error status for this file
+ Cyg_ErrNo error;
+
+
+ cyg_stdio_handle_t my_device;
+
+#ifdef CYGFUN_LIBC_STDIO_ungetc
+ cyg_uint8 unread_char_buf;
+#endif
+
+#ifdef CYGSEM_LIBC_STDIO_WANT_BUFFERED_IO
+ Cyg_StdioStreamBuffer io_buf; // read/write buffer
+#endif
+ cyg_uint8 readbuf_char; // a one character emergency "buffer"
+ // only used when configured to not buffer
+ // (i.e. !CYGSEM_LIBC_STDIO_WANT_BUFFERED_IO)
+ // or set at runtime to not buffer (i.e.
+ // buffering mode is _IONBF)
+
+ // some flags indicating the state of the file. Some of it is internal
+ // state, which should not be public. Use bitfields to save
+ // space, which means using "unsigned int" rather than cyg_uintX
+ struct {
+ unsigned int at_eof : 1; // Have we reached eof?
+
+ unsigned int opened_for_read : 1; // opened_for_read and
+
+ unsigned int opened_for_write : 1; // opened_for_write can
+ // be set simultaneously
+
+ unsigned int binary : 1; // opened for binary or
+ // text mode?
+
+#ifdef CYGFUN_LIBC_STDIO_ungetc
+ unsigned int unread_char_buf_in_use : 1; // unget buf in use?
+#endif
+
+#ifdef CYGSEM_LIBC_STDIO_WANT_BUFFERED_IO
+ unsigned int buffering : 1; // Is this file buffered?
+
+ unsigned int line_buffering : 1; // If so, is it line
+ // buffered? If it is
+ // buffered, but NOT line
+ // buffered, it must be
+ // fully buffered
+
+ unsigned int last_buffer_op_was_read : 1; // did we last read from
+ // the buffer. If not we
+ // must have written
+#endif
+ unsigned int readbuf_char_in_use : 1; // is the above
+ // readbuf_char in use?
+
+ } flags;
+
+ // current position for reading/writing
+ fpos_t position;
+
+#ifdef CYGSEM_LIBC_STDIO_THREAD_SAFE_STREAMS
+ Cyg_Mutex stream_lock; // used for locking this stream
+#endif // ifdef CYGSEM_LIBC_STDIO_THREAD_SAFE_STREAMS
+
+#ifdef CYGDBG_USE_ASSERTS
+ // a value to check that this class is hopefully valid
+ cyg_ucount32 magic_validity_word;
+#endif
+
+public:
+ // different modes when constructing (i.e. opening).
+ typedef enum {
+ CYG_STREAM_READ,
+ CYG_STREAM_WRITE,
+ CYG_STREAM_READWRITE_NOCREATE,
+ CYG_STREAM_READWRITE_CREATE
+ } OpenMode;
+
+ // CONSTRUCTORS
+
+ // This constructs the stream - effectively opens the file. This is
+ // used for static initialisation, and actually calls construct below
+ //
+ // dev is a valid Cyg_Device_Table_t, although it does not have to
+ // be a member of the device table object itself
+ //
+ // open_mode is one of CYG_STREAM_READ, CYG_STREAM_WRITE,
+ // CYG_STREAM_READWRITE_NOCREATE or CYG_STREAM_READWRITE_CREATE
+ //
+ // append is true if the file position should be set at EOF on opening
+ //
+ // binary is true if this is a binary stream. Otherwise it is a text
+ // stream and character conversions (especially newline) may occur
+ //
+ // buffer_mode is one of _IONBF, _IOLBF, _IOFBF (from <stdio.h>)
+ // If buffer_mode is _IONBF, buffer_size should still be set to 0
+ // and buffer_addr to NULL. If buffering is not configured, none
+ // of buffer_mode, buffer_size and buffer_addr have any effect
+ //
+ // buffer_size is the size of buffer to use
+ //
+ // buffer_addr is the address of a user supplied buffer. By default
+ // (when NULL) a system one is provided.
+ //
+ // The "return code" is set by assignment to the error member of this
+ // stream - use the get_error() method to check
+
+ Cyg_StdioStream( cyg_stdio_handle_t dev, OpenMode open_mode,
+ cyg_bool append, cyg_bool binary, int buffer_mode,
+ cyg_ucount32 buffer_size=BUFSIZ,
+ cyg_uint8 *buffer_addr=NULL );
+
+ Cyg_StdioStream( OpenMode open_mode,
+ cyg_ucount32 buffer_size=BUFSIZ,
+ cyg_uint8 *buffer_addr=NULL );
+
+private:
+ void initialize( cyg_stdio_handle_t dev, OpenMode open_mode,
+ cyg_bool append, cyg_bool binary, int buffer_mode,
+ cyg_ucount32 buffer_size=BUFSIZ,
+ cyg_uint8 *buffer_addr=NULL );
+public:
+
+ // DESTRUCTOR
+ virtual
+ ~Cyg_StdioStream();
+
+
+ // MEMBER FUNCTIONS
+
+ // Close the stream. This should be called before the destructor,
+ // so we can see and report any errors produced.
+ Cyg_ErrNo close();
+
+ // Refill read buffer from the stream - note this blocks until
+ // something arrives on the stream
+ Cyg_ErrNo
+ refill_read_buffer( void );
+
+
+ // Read not more than buffer_length bytes from the read buffer into the
+ // user buffer.
+ // The number of bytes put into the user buffer is written
+ // into *bytes_read
+ Cyg_ErrNo
+ read( cyg_uint8 *user_buffer, cyg_ucount32 buffer_length,
+ cyg_ucount32 *bytes_read );
+
+
+ // Read a single byte from the stream. Returns EAGAIN if no character
+ // available or EEOF if end of file (as well as setting the EOF state)
+ Cyg_ErrNo
+ read_byte( cyg_uint8 *c );
+
+ // Read a single byte from the stream, but don't remove it. Returns
+ // EAGAIN if no character available or EEOF if end of file (as well
+ // as setting the EOF state)
+ Cyg_ErrNo
+ peek_byte( cyg_uint8 *c );
+
+
+ // Return a byte into the stream - basically the same as ungetc()
+ Cyg_ErrNo
+ unread_byte( cyg_uint8 c );
+
+ // the number of bytes available to read without needing to refill the
+ // buffer
+ cyg_ucount32
+ bytes_available_to_read( void );
+
+ virtual Cyg_ErrNo
+ write( const cyg_uint8 *buffer, cyg_ucount32 buffer_length,
+ cyg_ucount32 *bytes_written );
+
+ Cyg_ErrNo
+ write_byte( cyg_uint8 c );
+
+
+ Cyg_ErrNo
+ flush_output( void );
+
+ Cyg_ErrNo
+ flush_output_unlocked( void );
+
+ // prevent multiple access in thread safe mode
+
+ // lock_me() returns false if it couldn't be locked, which could
+ // happen if the file descriptor is bad
+
+ cyg_bool
+ lock_me( void );
+
+ // trylock_me() returns false if it couldn't be locked, probably
+ // because it is already locked
+ cyg_bool
+ trylock_me( void );
+
+ void
+ unlock_me( void );
+
+ // get error status for this file
+ virtual Cyg_ErrNo
+ get_error( void );
+
+ // set error status for this file.
+ void
+ set_error( Cyg_ErrNo errno_to_set );
+
+ // are we at EOF? true means we are, false means no
+ cyg_bool
+ get_eof_state( void );
+
+ // Set whether we are at EOF.
+ void
+ set_eof_state( cyg_bool eof_to_set );
+
+ // retrieve position
+ Cyg_ErrNo
+ get_position( fpos_t *pos );
+
+ // set absolute position. whence is SEEK_SET, SEEK_CUR, or SEEK_END
+ Cyg_ErrNo
+ set_position( fpos_t pos, int whence );
+
+ // Return my_device
+ cyg_stdio_handle_t get_dev() { return my_device; };
+
+ CYGDBG_DEFINE_CHECK_THIS
+};
+
+// INLINE FUNCTIONS
+
+#include <cyg/libc/stdio/stream.inl>
+
+#endif // CYGONCE_LIBC_STDIO_STREAM_HXX multiple inclusion protection
+
+// EOF stream.hxx
diff --git a/ecos/packages/language/c/libc/stdio/current/include/stream.inl b/ecos/packages/language/c/libc/stdio/current/include/stream.inl
new file mode 100644
index 0000000..1f5d881
--- /dev/null
+++ b/ecos/packages/language/c/libc/stdio/current/include/stream.inl
@@ -0,0 +1,487 @@
+#ifndef CYGONCE_LIBC_STDIO_STREAM_INL
+#define CYGONCE_LIBC_STDIO_STREAM_INL
+//========================================================================
+//
+// stream.inl
+//
+// Inline functions for internal C library stdio stream interface
+//
+//========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors:
+// Date: 2000-04-19
+// Purpose:
+// Description:
+// Usage: Do not include this file -
+// #include <cyg/libc/stdio/stream.hxx> instead.
+//
+//####DESCRIPTIONEND####
+//
+//========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libc_stdio.h> // Configuration header
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common project-wide type definitions
+#include <stddef.h> // NULL and size_t from compiler
+#include <errno.h> // Error codes
+#include <cyg/libc/stdio/stream.hxx> // Just be sure that this really is
+ // included
+
+#include <cyg/libc/stdio/io.inl> // I/O system inlines
+
+// FUNCTIONS
+
+#ifdef CYGDBG_USE_ASSERTS
+inline cyg_bool
+Cyg_StdioStream::check_this( cyg_assert_class_zeal zeal ) const
+{
+ // check that it has the magic word set meaning it is valid.
+ if ( magic_validity_word != 0x7b4321ce )
+ return false;
+ return true;
+} // check_this()
+
+#endif // ifdef CYGDBG_USE_ASSERTS
+
+
+
+// LOCKING FUNCTIONS
+
+// returns true on success
+inline cyg_bool
+Cyg_StdioStream::lock_me( void )
+{
+ CYG_ASSERTCLASS( this, "Stream object is not a valid stream!" );
+
+#ifdef CYGSEM_LIBC_STDIO_THREAD_SAFE_STREAMS
+ return stream_lock.lock();
+#else
+ // otherwise it "worked"
+ return true;
+#endif
+
+} // lock_me()
+
+
+// returns true on success
+inline cyg_bool
+Cyg_StdioStream::trylock_me( void )
+{
+ CYG_ASSERTCLASS( this, "Stream object is not a valid stream!" );
+
+#ifdef CYGSEM_LIBC_STDIO_THREAD_SAFE_STREAMS
+ return stream_lock.trylock();
+#else
+ // otherwise it "worked"
+ return true;
+#endif
+
+} // lock_me()
+
+
+inline void
+Cyg_StdioStream::unlock_me( void )
+{
+ CYG_ASSERTCLASS( this, "Stream object is not a valid stream!" );
+
+#ifdef CYGSEM_LIBC_STDIO_THREAD_SAFE_STREAMS
+ stream_lock.unlock();
+#endif
+} // unlock_me()
+
+
+// DESTRUCTOR
+
+inline Cyg_ErrNo
+Cyg_StdioStream::close()
+{
+ Cyg_ErrNo err = ENOERR;
+
+ if (!lock_me())
+ return EBADF;
+
+ if( my_device != CYG_STDIO_HANDLE_NULL )
+ {
+ flush_output_unlocked();
+
+ err = cyg_stdio_close( my_device );
+
+ if( err == ENOERR )
+ my_device = CYG_STDIO_HANDLE_NULL;
+ }
+
+ unlock_me();
+
+ return err;
+} // close()
+
+inline
+Cyg_StdioStream::~Cyg_StdioStream()
+{
+ CYG_ASSERTCLASS( this, "Stream object is not a valid stream!" );
+
+ // Close the device if it has not already been closed.
+ if( my_device != CYG_STDIO_HANDLE_NULL )
+ close();
+
+#ifdef CYGDBG_USE_ASSERTS
+ magic_validity_word = 0xbadbad;
+#endif
+} // Cyg_StdioStream destructor
+
+
+// MEMBER FUNCTIONS
+
+
+// this is currently just a wrapper around write, but having this interface
+// leaves scope for optimisations in future
+inline Cyg_ErrNo
+Cyg_StdioStream::write_byte( cyg_uint8 c )
+{
+ cyg_ucount32 dummy_bytes_written;
+ Cyg_ErrNo err;
+
+ CYG_ASSERTCLASS( this, "Stream object is not a valid stream!" );
+
+ err = write( &c, 1, &dummy_bytes_written );
+
+ CYG_ASSERT( (err!=ENOERR) || (dummy_bytes_written==1),
+ "Single byte not written, but no error returned!" );
+
+ return err;
+} // write_byte()
+
+
+inline Cyg_ErrNo
+Cyg_StdioStream::unread_byte( cyg_uint8 c )
+{
+ CYG_ASSERTCLASS( this, "Stream object is not a valid stream!" );
+
+#ifdef CYGFUN_LIBC_STDIO_ungetc
+ if (!lock_me())
+ return EBADF; // assume file is now invalid
+
+ if (flags.unread_char_buf_in_use) {
+ unlock_me();
+ return ENOMEM;
+ } // if
+
+ flags.unread_char_buf_in_use = true;
+ unread_char_buf = c;
+
+ // can't be at EOF any more
+ flags.at_eof = false;
+
+ if (position) // position is always 0 for certain devices
+ --position;
+
+ unlock_me();
+
+ return ENOERR;
+
+#else // ifdef CYGFUN_LIBC_STDIO_ungetc
+
+ return ENOSYS;
+#endif // ifdef CYGFUN_LIBC_STDIO_ungetc
+} // unread_byte()
+
+
+inline cyg_ucount32
+Cyg_StdioStream::bytes_available_to_read( void )
+{
+ cyg_ucount32 bytes=0;
+
+ CYG_ASSERTCLASS( this, "Stream object is not a valid stream!" );
+
+#ifdef CYGFUN_LIBC_STDIO_ungetc
+ if (flags.unread_char_buf_in_use)
+ ++bytes;
+#endif
+
+#ifdef CYGSEM_LIBC_STDIO_WANT_BUFFERED_IO
+
+ // either the last operation was a read, which attempted to read bytes
+ // into the buffer, or there are no bytes in the buffer
+
+ if (flags.buffering) {
+ if (flags.last_buffer_op_was_read == true)
+ bytes += io_buf.get_buffer_space_used();
+ }
+ else
+
+#endif
+
+ if (flags.readbuf_char_in_use)
+ ++bytes;
+
+ return bytes;
+} // bytes_available_to_read()
+
+
+
+inline Cyg_ErrNo
+Cyg_StdioStream::flush_output( void )
+{
+ Cyg_ErrNo err;
+
+ CYG_ASSERTCLASS( this, "Stream object is not a valid stream!" );
+
+ if (!lock_me())
+ return EBADF; // assume file is now invalid
+
+ err = flush_output_unlocked();
+
+ unlock_me();
+
+ return err;
+} // flush_output()
+
+
+// get error status for this file
+inline Cyg_ErrNo
+Cyg_StdioStream::get_error( void )
+{
+ Cyg_ErrNo err_temp;
+
+ CYG_ASSERTCLASS( this, "Stream object is not a valid stream!" );
+
+ if (!lock_me())
+ return EBADF; // well, we've certainly got an error now!
+
+ err_temp = error;
+
+ unlock_me();
+
+ return err_temp;
+} // get_error()
+
+
+// set error status for this file
+inline void
+Cyg_StdioStream::set_error( Cyg_ErrNo errno_to_set )
+{
+ CYG_ASSERTCLASS( this, "Stream object is not a valid stream!" );
+
+ if (!lock_me())
+ {
+ errno = EBADF; // best we can do - we can't trust error to be there
+ return;
+ } // if
+
+ errno = error = errno_to_set;
+
+ if ( EEOF == error )
+ flags.at_eof = 1;
+
+ unlock_me();
+} // set_error()
+
+
+// are we at EOF? true means we are, false means no
+inline cyg_bool
+Cyg_StdioStream::get_eof_state( void )
+{
+ cyg_bool eof_temp;
+
+ CYG_ASSERTCLASS( this, "Stream object is not a valid stream!" );
+
+ if (!lock_me())
+ return false; // not much we can do here
+
+ eof_temp = flags.at_eof;
+
+ unlock_me();
+
+ return eof_temp;
+} // get_eof_state()
+
+
+// Set whether we are at EOF.
+inline void
+Cyg_StdioStream::set_eof_state( cyg_bool eof_to_set )
+{
+ CYG_ASSERTCLASS( this, "Stream object is not a valid stream!" );
+
+ if (!lock_me())
+ return; // not much we can do here
+
+ flags.at_eof = eof_to_set;
+
+ unlock_me();
+} // set_eof_state()
+
+
+// retrieve position
+inline Cyg_ErrNo
+Cyg_StdioStream::get_position( fpos_t *pos )
+{
+ CYG_ASSERTCLASS( this, "Stream object is not a valid stream!" );
+
+ if (!lock_me())
+ return EBADF; // assume file is now invalid
+
+ *pos = position;
+
+ unlock_me();
+
+ return ENOERR;
+
+} // get_position()
+
+
+// set absolute position
+inline Cyg_ErrNo
+Cyg_StdioStream::set_position( fpos_t pos, int whence )
+{
+ CYG_ASSERTCLASS( this, "Stream object is not a valid stream!" );
+
+#ifndef CYGPKG_LIBC_STDIO_FILEIO
+ // this is currently a workaround until we have real files
+ // this will be corrected when we decide the true filesystem interface
+
+ Cyg_ErrNo err;
+ cyg_uint8 c;
+
+ if ((whence != SEEK_CUR) || pos < 0)
+ return ENOSYS;
+
+ if (!lock_me())
+ return EBADF; // assume file is now invalid
+
+ // Drain read buffer
+
+ for ( ; pos > 0 ; pos-- ) {
+ err = read_byte( &c );
+ if (err == EAGAIN)
+ err=refill_read_buffer();
+
+ // if read_byte retured error, or refill_read_buffer returned error
+ if (err) {
+ unlock_me();
+ return err;
+ } // if
+ } // for
+
+ unlock_me();
+
+ return ENOERR;
+
+#else
+
+ if (!lock_me())
+ return EBADF; // assume file is now invalid
+
+ if ( whence != SEEK_END ) {
+ off_t bytesavail = (off_t)bytes_available_to_read();
+ off_t abspos = (whence == SEEK_CUR) ? position + pos : pos;
+ off_t posdiff = abspos - position;
+
+ if ( posdiff >= 0 && bytesavail > posdiff ) {
+ // can just "seek" within the existing buffer
+#ifdef CYGFUN_LIBC_STDIO_ungetc
+ if (posdiff>0 && flags.unread_char_buf_in_use) {
+ flags.unread_char_buf_in_use = false;
+ posdiff--;
+ }
+#endif
+#ifdef CYGSEM_LIBC_STDIO_WANT_BUFFERED_IO
+ if (posdiff>0 && flags.buffering) {
+ io_buf.set_bytes_read(posdiff);
+ posdiff=0;
+ } else
+#endif
+ if (posdiff>0 && flags.readbuf_char_in_use) {
+ flags.readbuf_char_in_use = false;
+ posdiff--;
+ }
+ CYG_ASSERT(posdiff==0, "Failed to seek within buffer correctly");
+
+ position = abspos;
+ unlock_me();
+ return ENOERR;
+ } // endif (bytesavail > posdiff)
+
+ if (whence == SEEK_CUR) {
+ position += bytesavail;
+ pos -= bytesavail;
+ }
+ } //endif (whence != SEEK_END)
+
+ Cyg_ErrNo err;
+
+ // Flush output if any present.
+ err = flush_output_unlocked();
+
+ if( err == ENOERR )
+ {
+ off_t newpos=pos;
+
+ // Clear any input out of input buffer and any ungot chars
+ // from unread buffer.
+ io_buf.drain_buffer();
+
+#ifdef CYGFUN_LIBC_STDIO_ungetc
+ flags.unread_char_buf_in_use = false;
+#endif
+
+ // Clear EOF indicator.
+ flags.at_eof = false;
+
+ // Seek the file to the correct place
+ err = cyg_stdio_lseek( my_device, &newpos, whence );
+
+ if ( err == ENOERR) {
+ // update stream pos
+ position = newpos;
+ }
+ }
+
+ unlock_me();
+
+ return err;
+#endif
+
+} // set_position()
+
+
+#endif // CYGONCE_LIBC_STDIO_STREAM_INL multiple inclusion protection
+
+// EOF stream.inl
diff --git a/ecos/packages/language/c/libc/stdio/current/include/streambuf.hxx b/ecos/packages/language/c/libc/stdio/current/include/streambuf.hxx
new file mode 100644
index 0000000..6c06372
--- /dev/null
+++ b/ecos/packages/language/c/libc/stdio/current/include/streambuf.hxx
@@ -0,0 +1,163 @@
+#ifndef CYGONCE_LIBC_STDIO_STREAMBUF_HXX
+#define CYGONCE_LIBC_STDIO_STREAMBUF_HXX
+//===========================================================================
+//
+// streambuf.hxx
+//
+// Internal C library stdio stream buffer interface definitions
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors:
+// Date: 2000-04-19
+// Purpose:
+// Description: This file implements the buffer class used by Cyg_StdioStream
+// for file buffers. It is simple, and not thread-safe - that
+// is better done at a higher level for our purposes.
+// Usage: #include <cyg/libc/stdio/streambuf.hxx>
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libc_stdio.h> // Configuration header
+
+// Include buffered I/O?
+#if defined(CYGSEM_LIBC_STDIO_WANT_BUFFERED_IO)
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common project-wide type definitions
+#include <errno.h> // Cyg_ErrNo
+
+
+// TYPE DEFINITIONS
+
+
+class Cyg_StdioStreamBuffer
+{
+private:
+ // Buffering data
+
+#if defined(CYGSEM_LIBC_STDIO_SETVBUF_MALLOC)
+ cyg_bool call_free; // should we free the old buffer if set_buffer is
+ // called?
+#else
+ cyg_uint8 static_buffer[BUFSIZ]; // Static buffer used when we cannot
+ // use malloc()/free().
+#endif
+
+ cyg_uint8 *buffer_bottom;
+
+ cyg_ucount32 buffer_size;
+
+ cyg_uint8 *buffer_top;
+
+ cyg_uint8 *current_buffer_position;
+
+public:
+
+ // CONSTRUCTORS
+
+ // You can change the size, or even supply your own buffer, although
+ // this only has an effect with dynamic buffers. Otherwise it is
+ // silently ignored
+ Cyg_StdioStreamBuffer( cyg_ucount32 size=BUFSIZ,
+ cyg_uint8 *new_buffer=NULL );
+
+
+ // DESTRUCTORS
+
+ ~Cyg_StdioStreamBuffer();
+
+ // METHODS
+
+ // Set up the buffer. As with the constructor, supplying a new_buffer
+ // only has an effect with dynamic buffers, although EINVAL is returned
+ // in that case. ENOMEM may also be returned
+ Cyg_ErrNo
+ set_buffer( cyg_ucount32 size=BUFSIZ, cyg_uint8 *new_buffer=NULL );
+
+ // Find out how much buffer space is in use
+ cyg_ucount32
+ get_buffer_space_used( void );
+
+
+ // What total size is the current buffer set to be. Can be -1 if the
+ // the buffer is invalid
+ cyg_count32
+ get_buffer_size( void );
+
+
+ // get buffer address to read from, and return the number of bytes
+ // available to read
+ cyg_ucount32
+ get_buffer_addr_to_read( cyg_uint8 **buffer );
+
+ // when finished reading from said space, tell the buffer how much was
+ // actually read
+ void
+ set_bytes_read( cyg_ucount32 bytes );
+
+ // return address of buffer that can be used to write into, and its
+ // available capacity
+ cyg_ucount32
+ get_buffer_addr_to_write( cyg_uint8 **buffer );
+
+ // when finished writing into said space, tell the buffer how much was
+ // actually written
+ void
+ set_bytes_written( cyg_ucount32 bytes );
+
+ // just empty the whole buffer contents
+ void
+ drain_buffer( void );
+}; // class Cyg_StdioStreamBuffer
+
+// INLINE FUNCTIONS
+
+#include <cyg/libc/stdio/streambuf.inl>
+
+
+#endif // if defined(CYGSEM_LIBC_STDIO_WANT_BUFFERED_IO)
+
+#endif // CYGONCE_LIBC_STDIO_STREAMBUF_HXX multiple inclusion protection
+
+// EOF streambuf.hxx
diff --git a/ecos/packages/language/c/libc/stdio/current/include/streambuf.inl b/ecos/packages/language/c/libc/stdio/current/include/streambuf.inl
new file mode 100644
index 0000000..a46317c
--- /dev/null
+++ b/ecos/packages/language/c/libc/stdio/current/include/streambuf.inl
@@ -0,0 +1,185 @@
+#ifndef CYGONCE_LIBC_STDIO_STREAMBUF_INL
+#define CYGONCE_LIBC_STDIO_STREAMBUF_INL
+//===========================================================================
+//
+// streambuf.inl
+//
+// Internal C library stdio stream buffer inline functions
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors:
+// Date: 2000-04-19
+// Purpose:
+// Description:
+// Usage: Do not include this file directly, instead
+// #include <cyg/libc/stdio/streambuf.hxx>
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libc_stdio.h> // Configuration header
+
+// Include buffered I/O?
+#if defined(CYGSEM_LIBC_STDIO_WANT_BUFFERED_IO)
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common project-wide type definitions
+#include <cyg/infra/cyg_ass.h> // Assertion support
+#include <errno.h> // Cyg_ErrNo
+#include <stdio.h> // fpos_t and iobuf defines
+#include <stdlib.h> // free()
+#include <cyg/libc/stdio/streambuf.hxx> // header for this file, just in case
+#include <limits.h> // INT_MAX
+
+// FUNCTIONS
+
+inline
+Cyg_StdioStreamBuffer::Cyg_StdioStreamBuffer( cyg_ucount32 size,
+ cyg_uint8 *new_buffer ) :
+#if defined(CYGSEM_LIBC_STDIO_SETVBUF_MALLOC)
+ call_free(false),
+ buffer_bottom( NULL ),
+ buffer_size(0),
+#else
+ buffer_bottom( static_buffer ),
+ buffer_size(sizeof(static_buffer)),
+#endif
+ buffer_top(NULL),
+ current_buffer_position(NULL)
+{
+ // NB Many of the above members in the initialisation list may seem
+ // unnecessary, but it is to ensure a defined state if e.g. the malloc
+ // in set_buffer() should fail
+
+ (void)set_buffer(size, new_buffer);
+} // Cyg_StdioStreamBuffer constructor
+
+
+inline
+Cyg_StdioStreamBuffer::~Cyg_StdioStreamBuffer()
+{
+#ifdef CYGSEM_LIBC_STDIO_SETVBUF_MALLOC
+ if ((buffer_bottom != NULL) && call_free)
+ free( buffer_bottom );
+#endif
+} // Cyg_StdioStreamBuffer destructor
+
+
+inline cyg_ucount32
+Cyg_StdioStreamBuffer::get_buffer_space_used( void )
+{
+ return (buffer_top - current_buffer_position);
+} // get_buffer_space_used()
+
+
+inline cyg_count32
+Cyg_StdioStreamBuffer::get_buffer_size( void )
+{
+#ifdef CYGSEM_LIBC_STDIO_DYNAMIC_SETVBUF
+ if (buffer_bottom==NULL)
+ return -1;
+#endif
+ return buffer_size;
+} // get_buffer_size()
+
+
+inline cyg_ucount32
+Cyg_StdioStreamBuffer::get_buffer_addr_to_read( cyg_uint8 **buffer )
+{
+ *buffer = current_buffer_position;
+
+ return (buffer_top - current_buffer_position);
+} // get_buffer_addr_to_read()
+
+inline void
+Cyg_StdioStreamBuffer::set_bytes_read( cyg_ucount32 bytes )
+{
+ cyg_uint8 *buffer_max = &buffer_bottom[ get_buffer_size() ];
+
+ current_buffer_position += bytes;
+
+ // INT_MAX is used by some callers to mean infinite.
+ CYG_ASSERT( (current_buffer_position <= buffer_top)
+ || (get_buffer_size() == INT_MAX),
+ "read too many bytes from buffer" );
+
+ if (current_buffer_position == buffer_max)
+ current_buffer_position = buffer_top = &buffer_bottom[0];
+
+} // set_bytes_read()
+
+
+inline cyg_ucount32
+Cyg_StdioStreamBuffer::get_buffer_addr_to_write( cyg_uint8 **buffer )
+{
+ cyg_uint8 *buffer_max = &buffer_bottom[ get_buffer_size() ];
+
+ *buffer = buffer_top;
+
+ return (buffer_max - buffer_top);
+} // get_buffer_addr_to_write()
+
+
+inline void
+Cyg_StdioStreamBuffer::set_bytes_written( cyg_ucount32 bytes )
+{
+ buffer_top += bytes;
+
+ // INT_MAX is used by some callers to mean infinite.
+ CYG_ASSERT( (buffer_top <= &buffer_bottom[ get_buffer_size() ])
+ || (get_buffer_size() == INT_MAX),
+ "wrote too many bytes into buffer" );
+} // set_bytes_written()
+
+
+inline void
+Cyg_StdioStreamBuffer::drain_buffer( void )
+{
+ buffer_top = current_buffer_position = &buffer_bottom[0];
+} // drain_buffer()
+
+#endif // if defined(CYGSEM_LIBC_STDIO_WANT_BUFFERED_IO)
+
+#endif // CYGONCE_LIBC_STDIO_STREAMBUF_INL multiple inclusion protection
+
+// EOF streambuf.inl
diff --git a/ecos/packages/language/c/libc/stdio/current/src/common/fclose.cxx b/ecos/packages/language/c/libc/stdio/current/src/common/fclose.cxx
new file mode 100644
index 0000000..f7e765b
--- /dev/null
+++ b/ecos/packages/language/c/libc/stdio/current/src/common/fclose.cxx
@@ -0,0 +1,126 @@
+//===========================================================================
+//
+// fclose.cxx
+//
+// Implementation of C library file close function as per ANSI 7.9.5.1
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors:
+// Date: 2000-04-20
+// Purpose: Implements ISO C fclose() function
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libc_stdio.h> // Configuration header
+#include <pkgconf/infra.h>
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common project-wide type definitions
+#include <stddef.h> // NULL and size_t from compiler
+#include <errno.h> // Error codes
+#include <stdio.h> // header for fclose()
+#include <stdlib.h> // free()
+#include <cyg/libc/stdio/stdiofiles.hxx> // C library files
+#include <cyg/libc/stdio/stream.hxx> // C library streams
+
+#include <cyg/libc/stdio/io.inl> // I/O system inlines
+
+// FUNCTIONS
+
+
+externC int
+fclose( FILE *stream ) __THROW
+{
+ Cyg_StdioStream *real_stream = (Cyg_StdioStream *)stream;
+ int i;
+ Cyg_ErrNo err;
+
+ if (NULL == real_stream)
+ {
+ errno = EBADF;
+ return EOF;
+ }
+
+ Cyg_libc_stdio_files::lock();
+
+ // find the stream in the table
+ for (i=0; i < FOPEN_MAX; i++)
+ {
+ if (real_stream == Cyg_libc_stdio_files::get_file_stream(i))
+ break;
+ } // for
+
+ if (i == FOPEN_MAX) // didn't find it
+ {
+ Cyg_libc_stdio_files::unlock();
+ errno = EBADF;
+ return EOF;
+ } // if
+
+ err = real_stream->close();
+
+ if( err != ENOERR )
+ {
+ Cyg_libc_stdio_files::unlock();
+ errno = err;
+ return EOF;
+ }
+
+ // Explicitly call destructor - this flushes the output too
+ real_stream->~Cyg_StdioStream();
+
+ // and free it
+ free(real_stream);
+
+ // and mark the stream available for use
+ Cyg_libc_stdio_files::set_file_stream(i, NULL);
+
+ Cyg_libc_stdio_files::unlock();
+
+ return 0;
+
+} // fclose()
+
+// EOF fclose.cxx
diff --git a/ecos/packages/language/c/libc/stdio/current/src/common/feof.cxx b/ecos/packages/language/c/libc/stdio/current/src/common/feof.cxx
new file mode 100644
index 0000000..2fb41e7
--- /dev/null
+++ b/ecos/packages/language/c/libc/stdio/current/src/common/feof.cxx
@@ -0,0 +1,91 @@
+//========================================================================
+//
+// feof.cxx
+//
+// Implementations of ISO C feof(), ferror(), clearerr() functions
+//
+//========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors:
+// Date: 2001-03-16
+// Purpose: Implementations of ISO C feof(), ferror(), clearerr()
+// functions
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libc_stdio.h> // Configuration header
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include <stdio.h> // Header for this file
+#include <cyg/libc/stdio/stream.hxx> // Cyg_StdioStream class
+
+externC int
+feof( FILE *stream ) __THROW
+{
+ Cyg_StdioStream *real_stream = (Cyg_StdioStream *)stream;
+
+ return (real_stream->get_eof_state() != 0);
+} // feof()
+
+externC int
+ferror( FILE *stream ) __THROW
+{
+ Cyg_StdioStream *real_stream = (Cyg_StdioStream *)stream;
+
+ return (real_stream->get_error() != 0);
+} // ferror()
+
+externC void
+clearerr( FILE *stream ) __THROW
+{
+ Cyg_StdioStream *real_stream = (Cyg_StdioStream *)stream;
+
+ real_stream->set_error(0);
+ real_stream->set_eof_state(false);
+} // clearerr()
+
+
+
+// EOF feof.cxx
diff --git a/ecos/packages/language/c/libc/stdio/current/src/common/fflush.cxx b/ecos/packages/language/c/libc/stdio/current/src/common/fflush.cxx
new file mode 100644
index 0000000..a17d0ae
--- /dev/null
+++ b/ecos/packages/language/c/libc/stdio/current/src/common/fflush.cxx
@@ -0,0 +1,158 @@
+//========================================================================
+//
+// fflush.cxx
+//
+// Implementation of C library file flush function as per ANSI 7.9.5.2
+//
+//========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors:
+// Date: 2000-04-20
+// Purpose: Provides ISO C fflush() function
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libc_stdio.h> // Configuration header
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common project-wide type definitions
+#include <stddef.h> // NULL and size_t from compiler
+#include <errno.h> // Error codes
+#include <stdio.h> // header for fflush()
+#include <cyg/libc/stdio/stream.hxx>// C library streams
+#include <cyg/libc/stdio/stdiofiles.hxx> // C library files
+#include <cyg/libc/stdio/stdiosupp.hxx> // support for stdio
+
+// FUNCTIONS
+
+// flush all but one stream
+externC Cyg_ErrNo
+cyg_libc_stdio_flush_all_but( Cyg_StdioStream *not_this_stream )
+{
+ cyg_bool files_flushed[FOPEN_MAX] = { false }; // sets all to 0
+ cyg_bool loop_again, looped = false;
+ cyg_ucount32 i;
+ Cyg_ErrNo err=ENOERR;
+ Cyg_StdioStream *stream;
+
+ do {
+ loop_again = false;
+
+ for (i=0; (i<FOPEN_MAX) && !err; i++) {
+ if (files_flushed[i] == false) {
+ // Don't let the files table change e.g. by closing the file.
+ if ( !Cyg_libc_stdio_files::lock() ) {
+ err = EINTR;
+ break;
+ }
+ stream = Cyg_libc_stdio_files::get_file_stream(i);
+
+ if ((stream == NULL) || (stream == not_this_stream)) {
+ // if it isn't a valid stream, set its entry in the
+ // list of files flushed since we don't want to
+ // flush it
+ // Ditto if its the one we're meant to miss
+
+ files_flushed[i] = true;
+ } // if
+ else {
+ // valid stream
+#ifdef CYGSEM_LIBC_STDIO_WANT_BUFFERED_IO
+ // only buffers which we've written to need flushing
+ if ( !stream->flags.last_buffer_op_was_read)
+#endif
+ {
+ // we try to flush the first time through so that
+ // everything is flushed that can be flushed.
+ // The second time through we should just wait
+ // in case some other lowerpri thread has locked the
+ // stream, otherwise we will spin needlessly and
+ // never let the lower pri thread run!
+ if ( (looped && stream->lock_me()) ||
+ stream->trylock_me() ) {
+ err = stream->flush_output_unlocked();
+ stream->unlock_me();
+ files_flushed[i] = true;
+ } // if
+ else {
+ loop_again = true;
+ looped = true;
+ }
+ }
+ } // else
+ // We can unlock and relock every loop as we only care
+ // about flushing streams that were open prior to this
+ // call. Any new streams can be ignored.
+ Cyg_libc_stdio_files::unlock();
+ } // if
+ } // for
+ } // do
+ while(loop_again && !err);
+
+ return err;
+} // cyg_libc_stdio_flush_all_but()
+
+externC int
+fflush( FILE *stream ) __THROW
+{
+ Cyg_StdioStream *real_stream = (Cyg_StdioStream *)stream;
+ Cyg_ErrNo err;
+
+ if (stream == NULL) { // tells us to flush ALL streams
+ err = cyg_libc_stdio_flush_all_but(NULL);
+ } // if
+ else {
+ err = real_stream->flush_output();
+ } // else
+
+ if (err) {
+ errno = err;
+ return EOF;
+ } // if
+
+ return 0;
+
+} // fflush()
+
+// EOF fflush.cxx
diff --git a/ecos/packages/language/c/libc/stdio/current/src/common/fileops.cxx b/ecos/packages/language/c/libc/stdio/current/src/common/fileops.cxx
new file mode 100644
index 0000000..ed69812
--- /dev/null
+++ b/ecos/packages/language/c/libc/stdio/current/src/common/fileops.cxx
@@ -0,0 +1,253 @@
+/*========================================================================
+//
+// fileops.cxx
+//
+// Implementation of ISO C rename(),remove(),tmpnam(),tmpfile() functions
+//
+//========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2004 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors:
+// Date: 2004-02-30
+// Purpose: Implementation of ISO C rename(),remove(),tmpnam(),tmpfile()
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//======================================================================*/
+
+// CONFIGURATION
+
+#include <pkgconf/system.h>
+#include <pkgconf/isoinfra.h>
+#include <pkgconf/libc_stdio.h> // Configuration header
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include <cyg/infra/cyg_ass.h> // Common assertion functions
+#include <cyg/infra/cyg_trac.h> // Common tracing functions
+#include <stdio.h> // Header for this file
+#include <errno.h> // errno
+#ifdef CYGPKG_LIBC_STDIO_FILEIO // unix-y functions, e.g. stat,rmdir,unlink,...
+# include <unistd.h>
+# include <fcntl.h>
+# include <sys/stat.h>
+#endif
+#include <cyg/libc/stdio/io.hxx> // I/O definitions
+#ifdef CYGPKG_POSIX
+# include <pkgconf/posix.h>
+# include <cyg/posix/export.h>
+#endif
+
+#if defined(CYGINT_ISO_EXIT) && (CYGINT_ISO_EXIT+0)
+# include <stdlib.h> // used by tmpfile() for atexit()
+#endif
+
+// DEFINES
+
+#ifdef CYGPKG_POSIX
+# define CYG_STDIO_FUNCTION_START() CYG_POSIX_FUNCTION_START()
+# define CYG_STDIO_FUNCTION_FINISH() CYG_POSIX_FUNCTION_FINISH()
+#else
+# define CYG_STDIO_FUNCTION_START() CYG_EMPTY_STATEMENT
+# define CYG_STDIO_FUNCTION_FINISH() CYG_EMPTY_STATEMENT
+#endif
+
+// Handle entry
+#define STDIO_ENTRY() \
+ CYG_REPORT_FUNCTYPE( "returning %d" ); \
+ CYG_STDIO_FUNCTION_START(); \
+
+#define STDIO_RETURN(err) \
+CYG_MACRO_START \
+ int __retval = 0; \
+ CYG_STDIO_FUNCTION_FINISH(); \
+ if( err != 0 ) __retval = -1, errno = err; \
+ CYG_REPORT_RETVAL( __retval ); \
+ return __retval; \
+CYG_MACRO_END
+
+#define STDIO_RETURN_VALUE(val) \
+CYG_MACRO_START \
+ CYG_STDIO_FUNCTION_FINISH(); \
+ CYG_REPORT_RETVAL( val ); \
+ return val; \
+CYG_MACRO_END
+
+// FUNCTIONS
+
+///////////////////////////////////////////////////////////////////////////
+// remove()
+
+__externC int remove( const char *path ) __THROW
+{
+ int ret;
+ STDIO_ENTRY();
+ CYG_CHECK_DATA_PTR( path, "path pointer invalid" );
+
+#ifdef CYGPKG_LIBC_STDIO_FILEIO
+ struct stat sbuf;
+ ret = stat( path, &sbuf );
+
+ if (0 == ret)
+ {
+ if ( S_ISDIR(sbuf.st_mode) )
+ {
+ ret = rmdir( path );
+ } else {
+ ret = unlink( path );
+ }
+ }
+#else // !defined(CYGPKG_LIBC_STDIO_FILEIO)
+ ret = ENOSYS;
+#endif
+ STDIO_RETURN(ret);
+} // remove()
+
+///////////////////////////////////////////////////////////////////////////
+// rename()
+//
+// The File I/O package supplies its own complete version of this, so we
+// only implement a dummy here.
+
+#ifndef CYGPKG_LIBC_STDIO_FILEIO
+__externC int rename( const char *oldname, const char *newname ) __THROW
+{
+ STDIO_ENTRY();
+ CYG_CHECK_DATA_PTR(oldname, "oldname pointer invalid");
+ CYG_CHECK_DATA_PTR(newname, "newname pointer invalid");
+ STDIO_RETURN(ENOSYS);
+}
+#endif // ifndef CYGPKG_LIBC_STDIO_FILEIO
+
+///////////////////////////////////////////////////////////////////////////
+// tmpnam()
+
+__externC char *tmpnam( char *s ) __THROW
+{
+ STDIO_ENTRY();
+ static char staticbuf[ L_tmpnam ];
+#if (TMP_MAX < 256)
+ typedef cyg_uint8 counttype;
+#elif (TMP_MAX < 65536)
+ typedef cyg_uint16 counttype;
+#else
+ typedef cyg_ucount32 counttype;
+#endif
+ static counttype count;
+ counttype totaliters=0;
+ int i;
+
+ if ( NULL != s )
+ CYG_CHECK_DATA_PTR( s, "supplied string pointer invalid" );
+ else
+ s = staticbuf;
+
+ // start off by making it "tmp00000" etc. so we can fill backwards
+ // from end without spaces
+ s[0] = 't'; s[1] = 'm'; s[2] = 'p';
+
+ while (totaliters < TMP_MAX)
+ {
+ for (i=3; i < (L_tmpnam-1); i++)
+ {
+ s[i] = '0';
+ }
+ s[i] = '\0';
+
+ counttype counttmp = count;
+ for (i=(L_tmpnam-1); i>2; i--)
+ {
+ const char tohex[] = "0123456789abcdef";
+ s[i] = tohex[counttmp & 0xf];
+ counttmp = counttmp >> 4;
+ }
+ count++;
+ count %= TMP_MAX; // cycle round
+ totaliters++;
+
+ // s now points to a name candidate
+#ifdef CYGPKG_LIBC_STDIO_FILEIO
+ int fd = open( s, O_RDONLY );
+ if (fd >= 0)
+ close(fd);
+ else if ( ENOENT == errno ) // we have a winner
+ break;
+#else
+ break; // no real filesystem, so just go with what we've come up with
+#endif
+ }
+
+ if ( totaliters == TMP_MAX ) // oops, looped right the way round
+ s = NULL;
+
+ STDIO_RETURN_VALUE( s );
+} // tmpnam()
+
+///////////////////////////////////////////////////////////////////////////
+// tmpfile()
+
+__externC FILE *tmpfile( void ) __THROW
+{
+ FILE *f;
+ char fname[L_tmpnam];
+ char *s;
+
+ STDIO_ENTRY();
+
+ s = tmpnam( fname );
+ if ( s == NULL)
+ f = NULL;
+ else
+ {
+ // fname is now a valid name to use
+ f = fopen( fname, "wb+" );
+#ifdef CYGPKG_LIBC_STDIO_FILEIO
+ // We can use remove which should mean the file is removed on program
+ // exit.We ignore the return code though - the standard seems to
+ // indicate that the return status from this function is solely
+ // dictated by whether the file could be created.
+ if (f)
+ remove( fname );
+#endif
+ }
+
+ STDIO_RETURN_VALUE( f );
+} // tmpfile()
+
+///////////////////////////////////////////////////////////////////////////
+// EOF fileops.cxx
diff --git a/ecos/packages/language/c/libc/stdio/current/src/common/fopen.cxx b/ecos/packages/language/c/libc/stdio/current/src/common/fopen.cxx
new file mode 100644
index 0000000..c2ef760
--- /dev/null
+++ b/ecos/packages/language/c/libc/stdio/current/src/common/fopen.cxx
@@ -0,0 +1,270 @@
+//===========================================================================
+//
+// fopen.cxx
+//
+// Implementation of C library file open function as per ANSI 7.9.5.3
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors:
+// Date: 2000-04-20
+// Purpose: Implements ISO C fopen() function
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libc_stdio.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common project-wide type definitions
+#include <stddef.h> // NULL and size_t from compiler
+#include <errno.h> // Error codes
+#include <stdio.h> // header for fopen()
+#include <stdlib.h> // malloc()
+#include <string.h> // strncmp() and strcmp()
+#include <cyg/libc/stdio/stdiofiles.hxx> // C library files
+#include <cyg/libc/stdio/stream.hxx> // C library streams
+
+#include <cyg/libc/stdio/io.inl> // I/O system inlines
+
+// FUNCTIONS
+
+// placement new
+inline void *operator new(size_t size, void *ptr)
+{
+ CYG_CHECK_DATA_PTR( ptr, "Bad pointer" );
+ return ptr;
+}
+
+// process the mode string. Return true on error
+static cyg_bool
+process_mode( const char *mode, Cyg_StdioStream::OpenMode *rw,
+ cyg_bool *binary, cyg_bool *append )
+{
+ *binary = *append = false; // default
+
+ switch (mode[0]) {
+ case 'r':
+ *rw = Cyg_StdioStream::CYG_STREAM_READ;
+ break;
+
+ case 'a':
+ *append = true;
+ /* DROPTHROUGH */
+ case 'w':
+ *rw = Cyg_StdioStream::CYG_STREAM_WRITE;
+ break;
+
+ default:
+ return true;
+ } // switch
+
+ // ANSI says additional characters may follow the sequences, that we
+ // don't necessarily recognise so we just ignore them, and pretend that
+ // its the end of the string
+
+ switch (mode[1]) {
+ case 'b':
+ *binary = true;
+ break;
+ case '+':
+ if (mode[0] == 'r')
+ *rw = Cyg_StdioStream::CYG_STREAM_READWRITE_NOCREATE;
+ else
+ *rw = Cyg_StdioStream::CYG_STREAM_READWRITE_CREATE;
+ break;
+ default:
+ return false;
+ } // switch
+
+ switch (mode[2]) {
+ case 'b':
+ *binary = true;
+ break;
+ case '+':
+ if (mode[0] == 'r')
+ *rw = Cyg_StdioStream::CYG_STREAM_READWRITE_NOCREATE;
+ else
+ *rw = Cyg_StdioStream::CYG_STREAM_READWRITE_CREATE;
+ break;
+ default:
+ return false;
+ } // switch
+
+ return false;
+} // process_mode()
+
+
+static FILE *fopen_inner( cyg_stdio_handle_t dev,
+ Cyg_StdioStream::OpenMode open_mode,
+ cyg_bool binary,
+ cyg_bool append)
+{
+ Cyg_StdioStream *curr_stream;
+ int i;
+ Cyg_ErrNo err;
+ int bufmode = _IOFBF;
+ cyg_ucount32 bufsize = BUFSIZ;
+
+ Cyg_libc_stdio_files::lock();
+
+ // find an empty slot
+ for (i=0; i < FOPEN_MAX; i++) {
+ curr_stream = Cyg_libc_stdio_files::get_file_stream(i);
+ if (curr_stream == NULL)
+ break;
+ } // for
+
+ if (i == FOPEN_MAX) { // didn't find an empty slot
+ errno = EMFILE;
+ cyg_stdio_close( dev );
+ Cyg_libc_stdio_files::unlock();
+ return NULL;
+ } // if
+
+ // Decide the buffering mode. The default is fully buffered, but if
+ // this is an interactive stream then set it to non buffered.
+ if( (dev != CYG_STDIO_HANDLE_NULL) &&
+ cyg_stdio_interactive( dev ) )
+ bufmode = _IONBF, bufsize = 0;
+
+ // Allocate it some memory and construct it.
+ curr_stream = (Cyg_StdioStream *)malloc(sizeof(*curr_stream));
+ if (curr_stream == NULL) {
+ cyg_stdio_close( dev );
+ Cyg_libc_stdio_files::unlock();
+ errno = ENOMEM;
+ return NULL;
+ } // if
+
+ curr_stream = new ((void *)curr_stream) Cyg_StdioStream( dev, open_mode,
+ append, binary,
+ bufmode, bufsize );
+ // it puts any error in its own error flag
+ if (( err=curr_stream->get_error() )) {
+
+ Cyg_libc_stdio_files::unlock();
+
+ free( curr_stream );
+
+ cyg_stdio_close( dev );
+
+ errno = err;
+
+ return NULL;
+
+ } // if
+
+ Cyg_libc_stdio_files::set_file_stream(i, curr_stream);
+
+ Cyg_libc_stdio_files::unlock();
+
+ return (FILE *)(curr_stream);
+
+} // fopen_inner()
+
+externC FILE *
+fopen( const char *filename, const char *mode ) __THROW
+{
+ cyg_stdio_handle_t dev = 0;
+ Cyg_ErrNo err;
+ Cyg_StdioStream::OpenMode open_mode = Cyg_StdioStream::CYG_STREAM_READ;
+ cyg_bool binary, append;
+
+ // process_mode returns true on error
+ if (process_mode( mode, &open_mode, &binary, &append )) {
+ errno = EINVAL;
+ return NULL;
+ } // if
+
+ err = cyg_stdio_open( filename, open_mode, binary, append, &dev );
+
+ // if not found
+ if (err != ENOERR) {
+ errno = ENOENT;
+ return NULL;
+ } // if
+
+ return fopen_inner( dev, open_mode, binary, append );
+
+} // fopen()
+
+
+#ifdef CYGFUN_LIBC_STDIO_OPEN_POSIX_FDFUNCS
+
+externC int fileno( FILE *stream ) __THROW
+{
+ Cyg_StdioStream *real_stream = (Cyg_StdioStream *)stream;
+
+ return real_stream->get_dev();
+}
+
+externC FILE *fdopen( int fd, const char *mode ) __THROW
+{
+ Cyg_StdioStream::OpenMode open_mode;
+ cyg_bool binary, append;
+ FILE *f;
+
+ // process_mode returns true on error
+ if (process_mode( mode, &open_mode, &binary, &append )) {
+ errno = EINVAL;
+ return NULL;
+ } // if
+
+ f = fopen_inner( (cyg_stdio_handle_t)fd, open_mode, binary, append );
+
+ if( f == NULL )
+ return f;
+
+ // Do a null seek to initialize the file position.
+ Cyg_StdioStream *real_stream = (Cyg_StdioStream *)f;
+ fpos_t pos = 0;
+ real_stream->set_position( pos, SEEK_CUR );
+ return f;
+}
+
+#endif // def CYGFUN_LIBC_STDIO_OPEN_POSIX_FDFUNCS
+
+
+// EOF fopen.cxx
diff --git a/ecos/packages/language/c/libc/stdio/current/src/common/freopen.cxx b/ecos/packages/language/c/libc/stdio/current/src/common/freopen.cxx
new file mode 100644
index 0000000..06d337c
--- /dev/null
+++ b/ecos/packages/language/c/libc/stdio/current/src/common/freopen.cxx
@@ -0,0 +1,78 @@
+//========================================================================
+//
+// freopen.cxx
+//
+// Implementation of C library freopen() function
+//
+//========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors:
+// Date: 2000-04-20
+// Purpose: Provides ISO C freopen() function
+// Description: Implementation of C library freopen() function as per
+// ISO C standard chap. 7.9.5.4
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libc_stdio.h> // Configuration header
+
+// We only want freopen() if we have fopen()
+#if defined(CYGPKG_LIBC_STDIO_OPEN)
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common project-wide type definitions
+#include <stddef.h> // NULL and size_t from compiler
+#include <stdio.h> // header for freopen()
+
+// FUNCTIONS
+
+
+externC FILE *
+freopen( const char *, const char *, FILE * ) __THROW
+{
+ return NULL; // Returning NULL is valid! FIXME
+} // freopen()
+
+#endif // defined(CYGPKG_LIBC_STDIO_OPEN)
+
+// EOF freopen.cxx
diff --git a/ecos/packages/language/c/libc/stdio/current/src/common/fseek.cxx b/ecos/packages/language/c/libc/stdio/current/src/common/fseek.cxx
new file mode 100644
index 0000000..4ec6d0b
--- /dev/null
+++ b/ecos/packages/language/c/libc/stdio/current/src/common/fseek.cxx
@@ -0,0 +1,166 @@
+//===========================================================================
+//
+// fseek.cxx
+//
+// Implementation of C library file positioning functions as per ANSI 7.9.9
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): nickg
+// Contributors:
+// Date: 2000-07-12
+// Purpose: Implements ISO C file positioning functions
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libc_stdio.h> // Configuration header
+
+#include <cyg/infra/cyg_type.h> // Common project-wide type definitions
+#include <cyg/infra/cyg_ass.h> // Assertion support
+#include <cyg/infra/cyg_trac.h> // Tracing support
+#include <stddef.h> // NULL and size_t from compiler
+#include <errno.h> // Error codes
+#include <stdio.h> // header for fseek() etc.
+#include <cyg/libc/stdio/stdiofiles.hxx> // C library files
+#include <cyg/libc/stdio/stream.hxx> // C library streams
+
+//========================================================================
+
+// ISO C 7.9.9 File positioning functions
+
+externC int
+fgetpos( FILE * stream , fpos_t *pos ) __THROW
+{
+ Cyg_StdioStream *real_stream = (Cyg_StdioStream *)stream;
+ Cyg_ErrNo err;
+ int ret = 0;
+
+ CYG_REPORT_FUNCNAME( "fgetpos" );
+
+ err = real_stream->get_position( pos );
+
+ if( err != ENOERR )
+ {
+ errno = err;
+ ret = -1;
+ }
+
+ CYG_REPORT_RETVAL( ret );
+ return ret;
+}
+
+externC int
+fseek( FILE * stream , long int offset , int whence ) __THROW
+{
+ Cyg_StdioStream *real_stream = (Cyg_StdioStream *)stream;
+ Cyg_ErrNo err;
+ int ret = 0;
+
+ CYG_REPORT_FUNCNAME( "fgetpos" );
+
+ err = real_stream->set_position( (fpos_t)offset, whence );
+
+ if( err != ENOERR )
+ {
+ errno = err;
+ ret = -1;
+ }
+
+ CYG_REPORT_RETVAL( ret );
+ return ret;
+}
+
+externC int
+fsetpos( FILE * stream , const fpos_t * pos ) __THROW
+{
+ Cyg_StdioStream *real_stream = (Cyg_StdioStream *)stream;
+ Cyg_ErrNo err;
+ int ret = 0;
+
+ CYG_REPORT_FUNCNAME( "fgetpos" );
+
+ err = real_stream->set_position( *pos, SEEK_SET );
+
+ if( err != ENOERR )
+ {
+ errno = err;
+ ret = -1;
+ }
+
+ CYG_REPORT_RETVAL( ret );
+ return ret;
+}
+
+externC long int
+ftell( FILE * stream ) __THROW
+{
+ Cyg_StdioStream *real_stream = (Cyg_StdioStream *)stream;
+ Cyg_ErrNo err;
+ long int ret = 0;
+ fpos_t pos;
+
+ CYG_REPORT_FUNCNAME( "ftell" );
+
+ err = real_stream->get_position( &pos );
+
+ if( err != ENOERR )
+ {
+ errno = err;
+ ret = -1;
+ }
+ else ret = pos;
+
+ CYG_REPORT_RETVAL( ret );
+ return ret;
+}
+
+externC void
+rewind( FILE * stream ) __THROW
+{
+ Cyg_StdioStream *real_stream = (Cyg_StdioStream *)stream;
+ (void)fseek( stream, 0L, SEEK_SET );
+
+ real_stream->set_error( ENOERR );
+}
+
+
+// EOF fseek.cxx
diff --git a/ecos/packages/language/c/libc/stdio/current/src/common/setvbuf.cxx b/ecos/packages/language/c/libc/stdio/current/src/common/setvbuf.cxx
new file mode 100644
index 0000000..05aafc9
--- /dev/null
+++ b/ecos/packages/language/c/libc/stdio/current/src/common/setvbuf.cxx
@@ -0,0 +1,128 @@
+//===========================================================================
+//
+// setvbuf.cxx
+//
+// Implementation of C library buffering setup as per ANSI 7.9.5.6
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors:
+// Date: 2000-04-20
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libc_stdio.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common project-wide type definitions
+#include <stddef.h> // NULL and size_t from compiler
+#include <errno.h> // Error codes
+#include <stdio.h> // header for setvbuf()
+#include <cyg/libc/stdio/stream.hxx>// C libray streams
+
+// FUNCTIONS
+
+
+externC int
+setvbuf( FILE *stream, char *buf, int mode, size_t size ) __THROW
+{
+#ifdef CYGSEM_LIBC_STDIO_WANT_BUFFERED_IO
+
+ Cyg_StdioStream *real_stream = (Cyg_StdioStream *)stream;
+ Cyg_ErrNo err;
+
+#ifdef CYGSEM_LIBC_STDIO_THREAD_SAFE_STREAMS
+ if ( !real_stream->lock_me() ) {
+ errno = EBADF;
+ return EBADF;
+ } // if
+#endif
+
+ err = real_stream->io_buf.set_buffer( (cyg_ucount32) size,
+ (cyg_uint8 *) buf );
+ if (!err) {
+ switch (mode) {
+ case _IONBF:
+ CYG_ASSERT( (size == 0) && (buf == NULL),
+ "No buffering wanted but size/address specified!" );
+ real_stream->flags.buffering = false;
+ real_stream->flags.line_buffering = false;
+ break;
+ case _IOLBF:
+ real_stream->flags.buffering = true;
+ real_stream->flags.line_buffering = true;
+ break;
+ case _IOFBF:
+ real_stream->flags.buffering = true;
+ real_stream->flags.line_buffering = false;
+ break;
+ default:
+ err = EINVAL;
+ break;
+ } // switch
+ } // if
+
+#ifdef CYGSEM_LIBC_STDIO_THREAD_SAFE_STREAMS
+ real_stream->unlock_me();
+#endif
+
+ if (err) {
+ errno = err;
+ return err;
+ } // if
+
+ return 0;
+
+#else // ifdef CYGSEM_LIBC_STDIO_WANT_BUFFERED_IO
+
+ errno = ENOSUPP;
+ return ENOSUPP;
+
+#endif // ifdef CYGSEM_LIBC_STDIO_WANT_BUFFERED_IO
+
+} // setvbuf()
+
+// EOF setvbuf.cxx
diff --git a/ecos/packages/language/c/libc/stdio/current/src/common/snprintf.cxx b/ecos/packages/language/c/libc/stdio/current/src/common/snprintf.cxx
new file mode 100644
index 0000000..4512a4a
--- /dev/null
+++ b/ecos/packages/language/c/libc/stdio/current/src/common/snprintf.cxx
@@ -0,0 +1,80 @@
+//===========================================================================
+//
+// snprintf.cxx
+//
+// ANSI Stdio snprintf() function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors:
+// Date: 2000-04-20
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libc_stdio.h> // Configuration header
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common project-wide type definitions
+#include <stddef.h> // NULL and size_t from compiler
+#include <stdio.h> // header for this file
+
+// FUNCTIONS
+
+externC int
+snprintf( char *s, size_t size, const char *format, ... ) __THROW
+{
+ int rc; // return code
+ va_list ap; // for variable args
+
+ va_start(ap, format); // init specifying last non-var arg
+
+ rc = vsnprintf(s, size, format, ap);
+
+ va_end(ap); // end var args
+
+ return rc;
+} // snprintf()
+
+// EOF snprintf.cxx
diff --git a/ecos/packages/language/c/libc/stdio/current/src/common/sprintf.cxx b/ecos/packages/language/c/libc/stdio/current/src/common/sprintf.cxx
new file mode 100644
index 0000000..4fc3e43
--- /dev/null
+++ b/ecos/packages/language/c/libc/stdio/current/src/common/sprintf.cxx
@@ -0,0 +1,81 @@
+//===========================================================================
+//
+// sprintf.cxx
+//
+// ANSI Stdio sprintf() function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors:
+// Date: 2000-04-20
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libc_stdio.h> // Configuration header
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common project-wide type definitions
+#include <stddef.h> // NULL and size_t from compiler
+#include <stdio.h> // header for this file
+#include <limits.h> // INT_MAX
+
+// FUNCTIONS
+
+externC int
+sprintf( char *s, const char *format, ... ) __THROW
+{
+ int rc; // return code
+ va_list ap; // for variable args
+
+ va_start(ap, format); // init specifying last non-var arg
+
+ rc = vsnprintf(s, INT_MAX, format, ap);
+
+ va_end(ap); // end var args
+
+ return rc;
+} // sprintf()
+
+// EOF sprintf.cxx
diff --git a/ecos/packages/language/c/libc/stdio/current/src/common/sscanf.cxx b/ecos/packages/language/c/libc/stdio/current/src/common/sscanf.cxx
new file mode 100644
index 0000000..e50eff2
--- /dev/null
+++ b/ecos/packages/language/c/libc/stdio/current/src/common/sscanf.cxx
@@ -0,0 +1,80 @@
+//===========================================================================
+//
+// sscanf.cxx
+//
+// ANSI Stdio sscanf() function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors:
+// Date: 2000-04-20
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libc_stdio.h> // Configuration header
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common project-wide type definitions
+#include <stddef.h> // NULL and size_t from compiler
+#include <stdio.h> // header for this file
+
+// FUNCTIONS
+
+externC int
+sscanf( const char *s, const char *format, ... ) __THROW
+{
+ int rc; // return code
+ va_list ap; // for variable args
+
+ va_start(ap, format); // init specifying last non-var arg
+
+ rc = vsscanf(s, format, ap);
+
+ va_end(ap); // end var args
+
+ return rc;
+} // sscanf()
+
+// EOF sscanf.cxx
diff --git a/ecos/packages/language/c/libc/stdio/current/src/common/stderr.cxx b/ecos/packages/language/c/libc/stdio/current/src/common/stderr.cxx
new file mode 100644
index 0000000..b3900ee
--- /dev/null
+++ b/ecos/packages/language/c/libc/stdio/current/src/common/stderr.cxx
@@ -0,0 +1,109 @@
+//========================================================================
+//
+// stderr.cxx
+//
+// Initialization of stderr stream for ISO C library
+//
+//========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors:
+// Date: 2000-04-20
+// Purpose: Initialization of stderr stream for ISO C library
+// Description: We put all this in a separate file in the hope that if
+// no-one uses stderr, then it is not included in the image
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libc_stdio.h> // Configuration header
+
+// Don't let us get the stream definitions of stdin/out/err from stdio.h
+// since we are going to break the type safety :-(
+#define CYGPRI_LIBC_STDIO_NO_DEFAULT_STREAMS
+
+// And we don't need the stdio inlines, which will otherwise complain if
+// stdin/out/err are not available
+#ifdef CYGIMP_LIBC_STDIO_INLINES
+# undef CYGIMP_LIBC_STDIO_INLINES
+#endif
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include <cyg/libc/stdio/stream.hxx> // Cyg_StdioStream class
+#include <cyg/libc/stdio/stdiofiles.hxx> // C library files
+#include <cyg/libc/stdio/stdiosupp.hxx> // Cyg_libc_stdio_find_filename()
+
+// CONSTANTS
+
+// add 2 to the priority to allow it to be the fd 2 if necessary
+#define PRIO (CYG_INIT_LIBC+2)
+
+// STATICS
+
+Cyg_StdioStream
+cyg_libc_stdio_stderr CYGBLD_ATTRIB_INIT_PRI(PRIO) = Cyg_StdioStream(
+ Cyg_libc_stdio_find_filename(CYGDAT_LIBC_STDIO_DEFAULT_CONSOLE,
+ Cyg_StdioStream::CYG_STREAM_WRITE,
+ false, false),
+ Cyg_StdioStream::CYG_STREAM_WRITE, false, false, _IONBF, 0, NULL );
+
+// CLASSES
+
+// This is a dummy class just so we can execute arbitrary code when
+// stderr is requested
+
+class cyg_libc_dummy_stderr_init_class {
+public:
+ cyg_libc_dummy_stderr_init_class(void) {
+ Cyg_libc_stdio_files::set_file_stream(2, &cyg_libc_stdio_stderr);
+ }
+};
+
+// And here's an instance of the class just to make the code run
+static cyg_libc_dummy_stderr_init_class cyg_libc_dummy_stderr_init
+ CYGBLD_ATTRIB_INIT_PRI(PRIO);
+
+// and finally stderr itself
+__externC Cyg_StdioStream * const stderr;
+Cyg_StdioStream * const stderr=&cyg_libc_stdio_stderr;
+
+// EOF stderr.cxx
diff --git a/ecos/packages/language/c/libc/stdio/current/src/common/stdin.cxx b/ecos/packages/language/c/libc/stdio/current/src/common/stdin.cxx
new file mode 100644
index 0000000..af0b057
--- /dev/null
+++ b/ecos/packages/language/c/libc/stdio/current/src/common/stdin.cxx
@@ -0,0 +1,109 @@
+//========================================================================
+//
+// stdin.cxx
+//
+// Initialization of stdin stream for ISO C library
+//
+//========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors:
+// Date: 2000-04-20
+// Purpose: Initialization of stdin stream for ISO C library
+// Description: We put all this in a separate file in the hope that if
+// no-one uses stdin, then it is not included in the image
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libc_stdio.h> // Configuration header
+
+// Don't let us get the stream definitions of stdin/out/err from stdio.h
+// since we are going to break the type safety :-(
+#define CYGPRI_LIBC_STDIO_NO_DEFAULT_STREAMS
+
+// And we don't need the stdio inlines, which will otherwise complain if
+// stdin/out/err are not available
+#ifdef CYGIMP_LIBC_STDIO_INLINES
+# undef CYGIMP_LIBC_STDIO_INLINES
+#endif
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include <cyg/libc/stdio/stream.hxx> // Cyg_StdioStream class
+#include <cyg/libc/stdio/stdiofiles.hxx> // C library files
+#include <cyg/libc/stdio/stdiosupp.hxx> // Cyg_libc_stdio_find_filename()
+
+// CONSTANTS
+
+// Use default libc priority to allow it to be the fd 0 if necessary
+#define PRIO (CYG_INIT_LIBC)
+
+// STATICS
+
+Cyg_StdioStream
+cyg_libc_stdio_stdin CYGBLD_ATTRIB_INIT_PRI(PRIO) = Cyg_StdioStream(
+ Cyg_libc_stdio_find_filename(CYGDAT_LIBC_STDIO_DEFAULT_CONSOLE,
+ Cyg_StdioStream::CYG_STREAM_READ, false, false),
+ Cyg_StdioStream::CYG_STREAM_READ, false, false, _IOLBF );
+
+
+// CLASSES
+
+// This is a dummy class just so we can execute arbitrary code when
+// stdin is requested
+
+class cyg_libc_dummy_stdin_init_class {
+public:
+ cyg_libc_dummy_stdin_init_class(void) {
+ Cyg_libc_stdio_files::set_file_stream(0, &cyg_libc_stdio_stdin);
+ }
+};
+
+// And here's an instance of the class just to make the code run
+static cyg_libc_dummy_stdin_init_class cyg_libc_dummy_stdin_init
+ CYGBLD_ATTRIB_INIT_PRI(PRIO);
+
+// and finally stdin itself
+__externC Cyg_StdioStream * const stdin;
+Cyg_StdioStream * const stdin=&cyg_libc_stdio_stdin;
+
+// EOF stdin.cxx
diff --git a/ecos/packages/language/c/libc/stdio/current/src/common/stdiofiles.cxx b/ecos/packages/language/c/libc/stdio/current/src/common/stdiofiles.cxx
new file mode 100644
index 0000000..4038a20
--- /dev/null
+++ b/ecos/packages/language/c/libc/stdio/current/src/common/stdiofiles.cxx
@@ -0,0 +1,81 @@
+//========================================================================
+//
+// stdiofiles.cxx
+//
+// ISO C library stdio central file data
+//
+//========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors:
+// Date: 2000-04-20
+// Purpose: Allocate storage for central file data object
+// Description: This file allocates the actual objects used by the
+// Cyg_libc_stdio_files class defined in
+// <cyg/libc/stdio/stdiofiles.hxx>
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//=========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libc_stdio.h> // C library configuration
+
+// INCLUDES
+
+#include <stddef.h> // NULL
+#include <cyg/libc/stdio/stream.hxx> // Cyg_StdioStream
+#include <cyg/libc/stdio/stdiofiles.hxx> // Class definition for
+ // Cyg_libc_stdio_files
+
+#ifdef CYGSEM_LIBC_STDIO_THREAD_SAFE_STREAMS
+# include <cyg/infra/cyg_type.h> // CYGBLD_ATTRIB_INIT_PRI
+# include <cyg/kernel/mutex.hxx> // mutexes
+#endif
+
+
+// GLOBAL VARIABLES
+
+Cyg_StdioStream *Cyg_libc_stdio_files::files[FOPEN_MAX] = { NULL };
+
+# ifdef CYGSEM_LIBC_STDIO_THREAD_SAFE_STREAMS
+Cyg_Mutex Cyg_libc_stdio_files::files_lock
+ CYGBLD_ATTRIB_INIT_PRI(CYG_INIT_LIBC);
+# endif
+
+// EOF stdiofiles.cxx
diff --git a/ecos/packages/language/c/libc/stdio/current/src/common/stdioinlines.cxx b/ecos/packages/language/c/libc/stdio/current/src/common/stdioinlines.cxx
new file mode 100644
index 0000000..b6d01c1
--- /dev/null
+++ b/ecos/packages/language/c/libc/stdio/current/src/common/stdioinlines.cxx
@@ -0,0 +1,163 @@
+//===========================================================================
+//
+// stdioinlines.cxx
+//
+// ANSI standard I/O routines - real alternatives for inlined functions
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors:
+// Date: 2000-04-20
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libc_stdio.h> // Configuration header
+
+// INCLUDES
+
+// We don't want the inline versions of stdio functions defined here
+
+#ifdef CYGIMP_LIBC_STDIO_INLINES
+#undef CYGIMP_LIBC_STDIO_INLINES
+#endif
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include <stddef.h> // NULL and size_t from compiler
+#include <stdarg.h> // va_list
+#include <stdio.h> // Header for this file
+#include <errno.h> // Definition of error codes and errno
+#include <string.h> // Definition of strerror() for perror()
+#include <limits.h> // INT_MAX
+
+
+// FUNCTIONS
+
+//===========================================================================
+
+// 7.9.5 File access functions
+
+externC void
+setbuf( FILE *stream, char *buf ) __THROW
+{
+ if (buf == NULL)
+ setvbuf( stream, NULL, _IONBF, 0 );
+ else
+ // NB: Should use full buffering by default ordinarily, but in
+ // the current system we're always connected to an interactive
+ // terminal, so use line buffering
+ setvbuf( stream, buf, _IOLBF, BUFSIZ );
+
+} // setbuf()
+
+//===========================================================================
+
+// 7.9.6 Formatted input/output functions
+
+
+externC int
+vfprintf( FILE *stream, const char *format, va_list arg ) __THROW
+{
+ return vfnprintf(stream, INT_MAX, format, arg);
+} // vfprintf()
+
+
+externC int
+vprintf( const char *format, va_list arg) __THROW
+{
+ return vfnprintf( stdout, INT_MAX, format, arg );
+} // vprintf()
+
+
+externC int
+vsprintf( char *s, const char *format, va_list arg ) __THROW
+{
+ return vsnprintf(s, INT_MAX, format, arg);
+} // vsprintf()
+
+
+//===========================================================================
+
+// 7.9.7 Character input/output functions
+
+externC int
+puts( const char *s ) __THROW
+{
+ int rc;
+
+ rc = fputs( s, stdout );
+
+ if (rc >= 0)
+ rc = fputc('\n', stdout );
+
+ return rc;
+} // puts()
+
+
+//===========================================================================
+
+// 7.9.10 Error-handling functions
+
+externC void
+perror( const char *s ) __THROW
+{
+ if (s && *s)
+ fprintf( stderr, "%s: %s\n", s, strerror(errno) );
+ else
+ fputs( strerror(errno), stderr );
+
+} // perror()
+
+//===========================================================================
+
+// Other non-ANSI functions
+
+#ifdef CYGFUN_LIBC_STDIO_ungetc
+externC int
+vscanf( const char *format, va_list arg ) __THROW
+{
+ return vfscanf( stdin, format, arg );
+} // vscanf()
+#endif
+
+// EOF stdioinlines.cxx
diff --git a/ecos/packages/language/c/libc/stdio/current/src/common/stdiosupp.cxx b/ecos/packages/language/c/libc/stdio/current/src/common/stdiosupp.cxx
new file mode 100644
index 0000000..ce8706b
--- /dev/null
+++ b/ecos/packages/language/c/libc/stdio/current/src/common/stdiosupp.cxx
@@ -0,0 +1,82 @@
+//===========================================================================
+//
+// stdiosupp.cxx
+//
+// Helper C library functions for standard I/O
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors:
+// Date: 2000-04-20
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libc_stdio.h> // Configuration header
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common project-wide type definitions
+#include <stddef.h> // NULL and size_t from compiler
+#include <cyg/libc/stdio/io.hxx> // I/O system
+#include <cyg/libc/stdio/stdiosupp.hxx> // Header for this file
+
+#include <cyg/libc/stdio/io.inl> // I/O system inlines
+
+//externC void cyg_io_init(void);
+
+cyg_stdio_handle_t
+Cyg_libc_stdio_find_filename( const char *filename,
+ const Cyg_StdioStream::OpenMode rw,
+ const cyg_bool binary,
+ const cyg_bool append )
+{
+ cyg_stdio_handle_t dev = CYG_STDIO_HANDLE_NULL;
+
+ cyg_stdio_open(filename, rw, binary, append, &dev);
+
+ return dev;
+} // Cyg_libc_stdio_find_filename()
+
+
+// EOF stdiosupp.cxx
diff --git a/ecos/packages/language/c/libc/stdio/current/src/common/stdout.cxx b/ecos/packages/language/c/libc/stdio/current/src/common/stdout.cxx
new file mode 100644
index 0000000..9e307e8
--- /dev/null
+++ b/ecos/packages/language/c/libc/stdio/current/src/common/stdout.cxx
@@ -0,0 +1,109 @@
+//========================================================================
+//
+// stdout.cxx
+//
+// Initialization of stdout stream for ISO C library
+//
+//========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors:
+// Date: 2000-04-20
+// Purpose: Initialization of stdout stream for ISO C library
+// Description: We put all this in a separate file in the hope that if
+// no-one uses stdout, then it is not included in the image
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libc_stdio.h> // Configuration header
+
+// Don't let us get the stream definitions of stdin/out/err from stdio.h
+// since we are going to break the type safety :-(
+#define CYGPRI_LIBC_STDIO_NO_DEFAULT_STREAMS
+
+// And we don't need the stdio inlines, which will otherwise complain if
+// stdin/out/err are not available
+#ifdef CYGIMP_LIBC_STDIO_INLINES
+# undef CYGIMP_LIBC_STDIO_INLINES
+#endif
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include <cyg/libc/stdio/stream.hxx> // Cyg_StdioStream class
+#include <cyg/libc/stdio/stdiofiles.hxx> // C library files
+#include <cyg/libc/stdio/stdiosupp.hxx> // Cyg_libc_stdio_find_filename()
+
+// CONSTANTS
+
+// add 1 to the priority to allow it to be the fd 1 if necessary
+#define PRIO (CYG_INIT_LIBC+1)
+
+// STATICS
+
+Cyg_StdioStream
+cyg_libc_stdio_stdout CYGBLD_ATTRIB_INIT_PRI(PRIO) = Cyg_StdioStream(
+ Cyg_libc_stdio_find_filename(CYGDAT_LIBC_STDIO_DEFAULT_CONSOLE,
+ Cyg_StdioStream::CYG_STREAM_WRITE,
+ false, false),
+ Cyg_StdioStream::CYG_STREAM_WRITE, false, false, _IOLBF );
+
+// CLASSES
+
+// This is a dummy class just so we can execute arbitrary code when
+// stdout is requested
+
+class cyg_libc_dummy_stdout_init_class {
+public:
+ cyg_libc_dummy_stdout_init_class(void) {
+ Cyg_libc_stdio_files::set_file_stream(1, &cyg_libc_stdio_stdout);
+ }
+};
+
+// And here's an instance of the class just to make the code run
+static cyg_libc_dummy_stdout_init_class cyg_libc_dummy_stdout_init
+ CYGBLD_ATTRIB_INIT_PRI(PRIO);
+
+// and finally stdout itself
+__externC Cyg_StdioStream * const stdout;
+Cyg_StdioStream * const stdout=&cyg_libc_stdio_stdout;
+
+// EOF stdout.cxx
diff --git a/ecos/packages/language/c/libc/stdio/current/src/common/stream.cxx b/ecos/packages/language/c/libc/stdio/current/src/common/stream.cxx
new file mode 100644
index 0000000..f25e79b
--- /dev/null
+++ b/ecos/packages/language/c/libc/stdio/current/src/common/stream.cxx
@@ -0,0 +1,745 @@
+//========================================================================
+//
+// stream.cxx
+//
+// Implementations of internal C library stdio stream functions
+//
+//========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2006 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors:
+// Date: 2000-04-20
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libc_stdio.h> // Configuration header
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common project-wide type definitions
+#include <cyg/infra/cyg_ass.h> // Assertion infrastructure
+#include <stddef.h> // NULL and size_t from compiler
+#include <errno.h> // Error codes
+#include <string.h> // memcpy() and memset()
+#include <cyg/libc/stdio/stream.hxx> // Header for this file
+#include <cyg/libc/stdio/stdiosupp.hxx> // Stdio support functions
+
+
+#include <cyg/libc/stdio/io.inl> // I/O system inlines
+
+
+// FUNCTIONS
+
+Cyg_StdioStream::Cyg_StdioStream(cyg_stdio_handle_t dev,
+ OpenMode open_mode,
+ cyg_bool append, cyg_bool binary,
+ int buffer_mode, cyg_ucount32 buffer_size,
+ cyg_uint8 *buffer_addr )
+#ifdef CYGSEM_LIBC_STDIO_WANT_BUFFERED_IO
+ : io_buf( buffer_size, buffer_addr )
+#endif
+{
+ initialize( dev, open_mode, append, binary, buffer_mode,
+ buffer_size, buffer_addr);
+}
+
+void Cyg_StdioStream::initialize(cyg_stdio_handle_t dev,
+ OpenMode open_mode,
+ cyg_bool append, cyg_bool binary,
+ int buffer_mode, cyg_ucount32 buffer_size,
+ cyg_uint8 *buffer_addr )
+{
+
+#ifdef CYGDBG_USE_ASSERTS
+ magic_validity_word = 0xbadbad;
+#endif
+
+ my_device = dev;
+
+ // Clear all flags
+ memset( &flags, 0, sizeof(flags) );
+
+ switch (open_mode) {
+ case CYG_STREAM_READ:
+ flags.opened_for_read = true;
+ break;
+ case CYG_STREAM_WRITE:
+ flags.opened_for_write = true;
+ break;
+ case CYG_STREAM_READWRITE_NOCREATE:
+ case CYG_STREAM_READWRITE_CREATE:
+ flags.opened_for_read = true;
+ flags.opened_for_write = true;
+ break;
+ default:
+ error=EINVAL;
+ return;
+ } // switch
+
+
+ if (flags.opened_for_write) {
+#if 0
+ // FIXME: need some replacement for this
+ if (!my_device->write_blocking) {
+ error = EDEVNOSUPP;
+ return;
+ } // if
+#endif
+#ifdef CYGSEM_LIBC_STDIO_WANT_BUFFERED_IO
+ flags.last_buffer_op_was_read = false;
+#endif
+ } // if
+
+
+ if (flags.opened_for_read) {
+#if 0
+ // FIXME: need some replacement for this
+ if (!my_device->read_blocking) {
+ error = EDEVNOSUPP;
+ return;
+ } // if
+#endif
+
+ // NB also if opened for read AND write, then say last op was read
+#ifdef CYGSEM_LIBC_STDIO_WANT_BUFFERED_IO
+ flags.last_buffer_op_was_read = true;
+#endif
+ } // if
+
+ flags.binary = binary ? 1 : 0;
+
+ error = ENOERR;
+
+ // in due course we would do an equivalent to fseek(...,0, SEEK_END);
+ // when appending. for now, there's nothing, except set eof
+
+ flags.at_eof = append ? 1 : 0;
+
+ position = 0;
+
+#ifdef CYGSEM_LIBC_STDIO_WANT_BUFFERED_IO
+
+ switch (buffer_mode) {
+ case _IONBF:
+ CYG_ASSERT( (buffer_size == 0) && (buffer_addr == NULL),
+ "No buffering wanted but size/address specified!" );
+ flags.buffering = flags.line_buffering = false;
+ break;
+ case _IOLBF:
+ flags.buffering = true;
+ flags.line_buffering = true;
+ break;
+ case _IOFBF:
+ flags.buffering = true;
+ flags.line_buffering = false;
+ break;
+ default:
+ error = EINVAL;
+ return;
+ } // switch
+
+ // one way of checking the buffer was set up correctly
+ if (flags.buffering && io_buf.get_buffer_size()==-1) {
+ error = ENOMEM;
+ return;
+ }
+
+#endif
+
+#if 0 // FIXME - Need to set binary mode.
+ if (my_device->open) {
+ error = (*my_device->open)( my_device->cookie,
+ binary ? CYG_DEVICE_OPEN_MODE_RAW
+ : CYG_DEVICE_OPEN_MODE_TEXT );
+ if (error != ENOERR)
+ return; // keep error code the same
+ } // if
+
+#endif
+
+#ifdef CYGDBG_USE_ASSERTS
+ magic_validity_word = 0x7b4321ce;
+#endif
+
+} // Cyg_StdioStream constructor
+
+
+Cyg_StdioStream::Cyg_StdioStream( OpenMode open_mode,
+ cyg_ucount32 buffer_size,
+ cyg_uint8 *buffer_addr )
+#ifdef CYGSEM_LIBC_STDIO_WANT_BUFFERED_IO
+ : io_buf( buffer_size, buffer_addr )
+#endif
+{
+ initialize( CYG_STDIO_HANDLE_NULL, open_mode, false, false, _IOFBF,
+ buffer_size, buffer_addr );
+
+ if( error != ENOERR )
+ return;
+
+ switch( open_mode )
+ {
+ case CYG_STREAM_READ:
+ // Fix up the stream so it looks like the buffer contents has just
+ // been read in.
+#ifdef CYGSEM_LIBC_STDIO_WANT_BUFFERED_IO
+ io_buf.set_bytes_written( buffer_size );
+#endif
+ break;
+
+ case CYG_STREAM_WRITE:
+ // Fix up the stream so it looks like the buffer is ready to accept
+ // new data.
+ break;
+
+ default:
+ error = EINVAL;
+ return;
+ }
+}
+
+
+Cyg_ErrNo
+Cyg_StdioStream::refill_read_buffer( void )
+{
+ Cyg_ErrNo read_err;
+ cyg_uint8 *buffer;
+ cyg_uint32 len;
+
+ CYG_ASSERTCLASS( this, "Stream object is not a valid stream!" );
+
+ if (!lock_me())
+ return EBADF; // assume file is now invalid
+
+ // first just check that we _can_ read this device!
+ if (!flags.opened_for_read) {
+ unlock_me();
+ return EINVAL;
+ }
+
+#ifdef CYGSEM_LIBC_STDIO_WANT_BUFFERED_IO
+ // If there is pending output to write, then this will check and
+ // write it
+ if (flags.buffering) {
+ read_err = flush_output_unlocked();
+
+ // we're now reading
+ flags.last_buffer_op_was_read = true;
+
+ // flush ALL streams
+ if (read_err == ENOERR)
+ read_err = cyg_libc_stdio_flush_all_but(this);
+
+ if (read_err != ENOERR) {
+ unlock_me();
+ return read_err;
+ } // if
+
+ len = io_buf.get_buffer_addr_to_write( (cyg_uint8**)&buffer );
+ if (!len) { // no buffer space available
+ unlock_me();
+ return ENOERR; // isn't an error, just needs user to read out data
+ } // if
+ }
+ else
+#endif
+
+ if (!flags.readbuf_char_in_use) {
+ len = 1;
+ buffer = &readbuf_char;
+ }
+ else {
+ // no buffer space available
+ unlock_me();
+ return ENOERR; // isn't an error, just needs user to read out data
+ } // else
+
+ read_err = cyg_stdio_read(my_device, buffer, &len);
+
+
+#ifdef CYGSEM_LIBC_STDIO_WANT_BUFFERED_IO
+ if (flags.buffering)
+ io_buf.set_bytes_written( len );
+ else
+#endif
+ flags.readbuf_char_in_use = len ? 1 : 0;
+
+ unlock_me();
+
+ if (read_err == ENOERR) {
+ if (len == 0) {
+ read_err = EAGAIN;
+ flags.at_eof = true;
+ }
+ else
+ flags.at_eof = false;
+ } // if
+
+ return read_err;
+} // refill_read_buffer()
+
+
+Cyg_ErrNo
+Cyg_StdioStream::read( cyg_uint8 *user_buffer, cyg_ucount32 buffer_length,
+ cyg_ucount32 *bytes_read )
+{
+ Cyg_ErrNo read_err=ENOERR;
+ CYG_ASSERTCLASS( this, "Stream object is not a valid stream!" );
+
+ *bytes_read = 0;
+
+ if (!lock_me())
+ return EBADF; // assume file is now invalid
+
+ if (!flags.opened_for_read) {
+ unlock_me();
+ return EINVAL;
+ }
+
+#ifdef CYGFUN_LIBC_STDIO_ungetc
+ if (flags.unread_char_buf_in_use && buffer_length) {
+ *user_buffer++ = unread_char_buf;
+ ++*bytes_read;
+ flags.unread_char_buf_in_use = false;
+ --buffer_length;
+ } // if
+
+#endif // ifdef CYGFUN_LIBC_STDIO_ungetc
+
+#ifdef CYGSEM_LIBC_STDIO_WANT_BUFFERED_IO
+ if (flags.buffering) {
+
+ // need to flush output if we were writing before
+ if (!flags.last_buffer_op_was_read) {
+ Cyg_ErrNo err = flush_output_unlocked();
+
+ if (ENOERR != err) {
+ unlock_me();
+ return err;
+ }
+ }
+
+ cyg_uint8 *buff_to_read_from;
+ cyg_ucount32 bytes_available;
+
+ bytes_available = io_buf.get_buffer_addr_to_read(
+ (cyg_uint8 **)&buff_to_read_from );
+
+ cyg_ucount32 count =
+ (bytes_available < buffer_length) ? bytes_available : buffer_length;
+
+ if (count) {
+ memcpy( user_buffer, buff_to_read_from, count );
+ io_buf.set_bytes_read( count );
+ *bytes_read += count;
+ } // if
+
+ } // if
+ else
+
+#endif
+
+ if (flags.readbuf_char_in_use && buffer_length) {
+ *user_buffer = readbuf_char;
+ *bytes_read = 1;
+ flags.readbuf_char_in_use = false;
+ }
+
+
+ // if we are unbuffered, we read as much as we can directly from the
+ // file system at this point.
+ //
+ // unless we do this, we could end up reading byte-by-byte from the filing system
+ // due to the readbuf_char scheme.
+ if (
+#ifdef CYGSEM_LIBC_STDIO_WANT_BUFFERED_IO
+ !flags.buffering &&
+#endif
+ (*bytes_read<buffer_length)) {
+ cyg_uint32 len;
+ len=buffer_length-*bytes_read;
+ read_err = cyg_stdio_read(my_device, user_buffer + *bytes_read, &len);
+ *bytes_read+=len;
+ }
+
+ position += *bytes_read;
+
+ unlock_me();
+
+ return read_err;
+} // read()
+
+
+Cyg_ErrNo
+Cyg_StdioStream::read_byte( cyg_uint8 *c )
+{
+ Cyg_ErrNo err=ENOERR;
+
+ CYG_ASSERTCLASS( this, "Stream object is not a valid stream!" );
+
+ if (!lock_me())
+ return EBADF; // assume file is now invalid
+
+ if (!flags.opened_for_read) {
+ unlock_me();
+ return EINVAL;
+ }
+
+# ifdef CYGFUN_LIBC_STDIO_ungetc
+ if (flags.unread_char_buf_in_use) {
+ *c = unread_char_buf;
+ flags.unread_char_buf_in_use = false;
+ position++;
+ unlock_me();
+ return ENOERR;
+ } // if
+# endif // ifdef CYGFUN_LIBC_STDIO_ungetc
+
+#ifdef CYGSEM_LIBC_STDIO_WANT_BUFFERED_IO
+ if (flags.buffering) {
+ // need to flush output if we were writing before
+ if (!flags.last_buffer_op_was_read)
+ err = flush_output_unlocked();
+
+ if (ENOERR != err) {
+ unlock_me();
+ return err;
+ }
+
+ cyg_uint8 *buff_to_read_from;
+ cyg_ucount32 bytes_available;
+
+ bytes_available=io_buf.get_buffer_addr_to_read(&buff_to_read_from);
+
+ if (bytes_available) {
+ *c = *buff_to_read_from;
+ io_buf.set_bytes_read(1);
+ position++;
+ }
+ else
+ err = EAGAIN;
+ } // if
+ else
+
+#endif
+
+
+ if (flags.readbuf_char_in_use) {
+ *c = readbuf_char;
+ flags.readbuf_char_in_use = false;
+ position++;
+ }
+ else
+ err = EAGAIN;
+
+ unlock_me();
+
+ return err;
+} // read_byte()
+
+
+Cyg_ErrNo
+Cyg_StdioStream::peek_byte( cyg_uint8 *c )
+{
+ Cyg_ErrNo err=ENOERR;
+
+ CYG_ASSERTCLASS( this, "Stream object is not a valid stream!" );
+
+ if (!lock_me())
+ return EBADF; // assume file is now invalid
+
+ if (!flags.opened_for_read) {
+ unlock_me();
+ return EINVAL;
+ }
+
+ // this should really only be called after refill_read_buffer, but just
+ // in case
+#ifdef CYGSEM_LIBC_STDIO_WANT_BUFFERED_IO
+ if (flags.buffering)
+ err = flush_output_unlocked();
+
+ if (err != ENOERR)
+ return err;
+
+ // we're now reading
+ flags.last_buffer_op_was_read = true;
+#endif
+
+# ifdef CYGFUN_LIBC_STDIO_ungetc
+ if (flags.unread_char_buf_in_use) {
+ *c = unread_char_buf;
+ unlock_me();
+ return ENOERR;
+ } // if
+# endif // ifdef CYGFUN_LIBC_STDIO_ungetc
+
+#ifdef CYGSEM_LIBC_STDIO_WANT_BUFFERED_IO
+ if (flags.buffering) {
+ cyg_uint8 *buff_to_read_from;
+ cyg_ucount32 bytes_available;
+
+ bytes_available=io_buf.get_buffer_addr_to_read(&buff_to_read_from);
+
+ if (bytes_available) {
+ *c = *buff_to_read_from;
+ }
+ else
+ err = EAGAIN;
+ } // if
+ else
+
+#endif
+
+
+ if (flags.readbuf_char_in_use) {
+ *c = readbuf_char;
+ }
+ else
+ err = EAGAIN;
+
+ unlock_me();
+
+ return err;
+} // peek_byte()
+
+
+Cyg_ErrNo
+Cyg_StdioStream::flush_output_unlocked( void )
+{
+#ifdef CYGSEM_LIBC_STDIO_WANT_BUFFERED_IO
+ Cyg_ErrNo write_err=ENOERR;
+ cyg_uint8 *buffer;
+ cyg_uint32 len;
+
+ CYG_ASSERTCLASS( this, "Stream object is not a valid stream!" );
+
+ if ( flags.last_buffer_op_was_read )
+ return ENOERR;
+
+ // first just check that we _can_ write to the device!
+ if ( !flags.opened_for_write )
+ return EINVAL;
+
+ // shortcut if nothing to do
+ if (io_buf.get_buffer_space_used() == 0)
+ return ENOERR;
+
+ len = io_buf.get_buffer_addr_to_read( (cyg_uint8 **)&buffer );
+
+ CYG_ASSERT( len > 0,
+ "There should be data to read but there isn't!");
+
+ write_err = cyg_stdio_write(my_device, buffer, &len);
+
+ // since we're doing a concerted flush, we tell the I/O layer to
+ // flush too, otherwise output may just sit there forever
+ if (!write_err)
+ cyg_stdio_flush( my_device );
+
+ // we've just read it all, so just wipe it out
+ io_buf.drain_buffer();
+
+ return write_err;
+
+#else // ifdef CYGSEM_LIBC_STDIO_WANT_BUFFERED_IO
+
+ CYG_ASSERTCLASS( this, "Stream object is not a valid stream!" );
+
+ return ENOERR;
+
+#endif // ifdef CYGSEM_LIBC_STDIO_WANT_BUFFERED_IO
+} // flush_output_unlocked()
+
+
+
+Cyg_ErrNo
+Cyg_StdioStream::write( const cyg_uint8 *buffer,
+ cyg_ucount32 buffer_length,
+ cyg_ucount32 *bytes_written )
+{
+ Cyg_ErrNo write_err = ENOERR;
+
+ CYG_ASSERTCLASS( this, "Stream object is not a valid stream!" );
+
+ *bytes_written = 0;
+
+ if (!lock_me())
+ return EBADF; // assume file is now invalid
+
+ // first just check that we _can_ write to the device!
+ if ( !flags.opened_for_write ) {
+ unlock_me();
+ return EINVAL;
+ }
+
+#ifdef CYGSEM_LIBC_STDIO_WANT_BUFFERED_IO
+ if (flags.last_buffer_op_was_read == true) {
+#ifdef CYGPKG_LIBC_STDIO_FILEIO
+ if ( 0 != io_buf.get_buffer_space_used() )
+ {
+ off_t newpos = position;
+ io_buf.drain_buffer(); // nuke input bytes to prevent confusion
+ Cyg_ErrNo err = cyg_stdio_lseek( my_device, &newpos, SEEK_SET );
+ if (err) {
+ unlock_me();
+ return err;
+ }
+ }
+#else
+ io_buf.drain_buffer(); // nuke input bytes to prevent confusion
+#endif
+ }
+
+ flags.last_buffer_op_was_read = false;
+
+ if (!flags.buffering) {
+#endif
+ cyg_uint32 len = buffer_length;
+
+ write_err = cyg_stdio_write(my_device, buffer, &len);
+
+ *bytes_written = len;
+
+#ifdef CYGSEM_LIBC_STDIO_WANT_BUFFERED_IO
+ } // if
+ else {
+ cyg_ucount32 bytes_available;
+ cyg_ucount32 bytes_to_write;
+ cyg_ucount32 newline_pos;
+ cyg_uint8 *write_addr;
+ cyg_bool must_flush = false;
+
+ while ( buffer_length > 0 ) {
+ bytes_available =
+ io_buf.get_buffer_addr_to_write( &write_addr );
+
+ // we need to flush if we've no room or the buffer has an up
+ // and coming newline
+ if ( !bytes_available || must_flush ) {
+ write_err = flush_output_unlocked();
+
+ // harmless even if there was an error
+ bytes_available =
+ io_buf.get_buffer_addr_to_write( &write_addr );
+
+ CYG_ASSERT( bytes_available > 0,
+ "Help! still no bytes available in "
+ "write buffer" );
+ } // if
+
+ if (write_err) {
+ unlock_me();
+ return write_err;
+ } // if
+
+ // choose the lower of the buffer available and the length
+ // to write
+ bytes_to_write=(bytes_available < buffer_length)
+ ? bytes_available
+ : buffer_length;
+
+ // if we're line buffered, we may want want to flush if there's
+ // a newline character, so lets find out
+
+ if (flags.line_buffering) {
+ for (newline_pos=0;
+ newline_pos<bytes_to_write;
+ newline_pos++) {
+ if (buffer[newline_pos] == '\n') {
+ break;
+ } // if
+ } // for
+ // if we didn't reach the end
+ if (newline_pos != bytes_to_write) {
+ // shrink bytes_to_write down to the bit we need to
+ // flush including the newline itself
+ bytes_to_write = newline_pos + 1;
+ must_flush = true;
+ } // if
+ } // if
+
+ memcpy( write_addr, buffer, bytes_to_write );
+
+ *bytes_written += bytes_to_write;
+ buffer += bytes_to_write;
+ buffer_length -= bytes_to_write;
+ io_buf.set_bytes_written( bytes_to_write );
+
+ position += bytes_to_write;
+
+ } // while
+
+ if ( must_flush ) {
+ write_err = flush_output_unlocked();
+ } // if
+ } // else
+#endif // ifdef CYGSEM_LIBC_STDIO_WANT_BUFFERED_IO
+
+ unlock_me();
+
+ return write_err;
+} // write()
+
+//
+// class Cyg_OutputStream
+//
+
+Cyg_ErrNo
+Cyg_OutputStream::write( const cyg_uint8 *buffer, cyg_ucount32 buffer_length,
+ cyg_ucount32 *bytes_written )
+{
+ CYG_FAIL("Cyg_OutputStream::write(): pure virtual called");
+ return ENOSYS;
+}
+
+Cyg_ErrNo
+Cyg_OutputStream::get_error( void )
+{
+ CYG_FAIL("Cyg_OutputStream::get_error(): pure virtual called");
+ return ENOSYS;
+}
+
+
+
+// EOF stream.cxx
diff --git a/ecos/packages/language/c/libc/stdio/current/src/common/streambuf.cxx b/ecos/packages/language/c/libc/stdio/current/src/common/streambuf.cxx
new file mode 100644
index 0000000..86aff8b
--- /dev/null
+++ b/ecos/packages/language/c/libc/stdio/current/src/common/streambuf.cxx
@@ -0,0 +1,140 @@
+//===========================================================================
+//
+// streambuf.cxx
+//
+// C library stdio stream buffer functions
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors:
+// Date: 2000-04-20
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libc_stdio.h> // Configuration header
+
+// Include buffered I/O?
+#if defined(CYGSEM_LIBC_STDIO_WANT_BUFFERED_IO)
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common project-wide type definitions
+#include <cyg/infra/cyg_ass.h> // Assertion support
+#include <errno.h> // Cyg_ErrNo
+#include <stdlib.h> // malloc() and free()
+#include <cyg/libc/stdio/streambuf.hxx> // header for this file, just in case
+
+// FUNCTIONS
+
+Cyg_ErrNo
+Cyg_StdioStreamBuffer::set_buffer( cyg_ucount32 size,
+ cyg_uint8 *new_buffer )
+{
+
+#ifdef CYGSEM_LIBC_STDIO_DYNAMIC_SETVBUF
+
+ // user-supplied buffer?
+ if (new_buffer != NULL) {
+ CYG_CHECK_DATA_PTR(new_buffer, "new_buffer not valid");
+#ifdef CYGSEM_LIBC_STDIO_SETVBUF_MALLOC
+ // first check if we were responsible for the old buffer
+ if (call_free) {
+ free(buffer_bottom);
+ call_free = false;
+ }
+#endif
+ buffer_bottom = new_buffer;
+ }
+#ifdef CYGSEM_LIBC_STDIO_SETVBUF_MALLOC
+ else if ( size != buffer_size ) { // as long as its different from
+ // what we've got now
+ cyg_uint8 *malloced_buf;
+
+ malloced_buf = (cyg_uint8 * )malloc( size );
+ if (malloced_buf == NULL)
+ return ENOMEM;
+
+ // should the old buffer be freed? This waits till after we know
+ // whether the malloc succeeded
+ if (call_free)
+ free( buffer_bottom );
+
+ buffer_bottom = malloced_buf;
+
+ call_free=true;
+
+ } // else if
+#else
+ // Here we have not been given a new buffer, but have been given
+ // a new buffer size. If possible, we just shrink what we already
+ // have.
+ else if( size > buffer_size )
+ return EINVAL;
+#endif
+
+#else // ifdef CYGSEM_LIBC_STDIO_DYNAMIC_SETVBUF
+
+ // In this config we can't use a different buffer, or set a
+ // size greater than now. We can pretend to shrink it though
+
+ // Note on the next line we compare it with the size of static_buffer
+ // and not the current size, as that's what is the limiting factor
+ if ( (new_buffer != NULL) || (size > sizeof(static_buffer)) )
+ return EINVAL;
+
+#endif // ifdef CYGSEM_LIBC_STDIO_DYNAMIC_SETVBUF
+
+ buffer_top = current_buffer_position = &buffer_bottom[0];
+ buffer_size = size;
+
+ return ENOERR;
+
+} // set_buffer()
+
+
+#endif // if defined(CYGSEM_LIBC_STDIO_WANT_BUFFERED_IO)
+
+
+// EOF streambuf.cxx
diff --git a/ecos/packages/language/c/libc/stdio/current/src/common/ungetc.cxx b/ecos/packages/language/c/libc/stdio/current/src/common/ungetc.cxx
new file mode 100644
index 0000000..cddca24
--- /dev/null
+++ b/ecos/packages/language/c/libc/stdio/current/src/common/ungetc.cxx
@@ -0,0 +1,93 @@
+//===========================================================================
+//
+// ungetc.cxx
+//
+// ANSI Stdio ungetc() function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors:
+// Date: 2000-04-20
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libc_stdio.h> // Configuration header
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common project-wide type definitions
+#include <stddef.h> // NULL and size_t from compiler
+#include <stdio.h> // header for this file
+#include <errno.h> // error codes
+#include <cyg/libc/stdio/stream.hxx> // Cyg_StdioStream
+
+
+// FUNCTIONS
+
+externC int
+ungetc( int c, FILE *stream ) __THROW
+{
+ Cyg_StdioStream *real_stream = (Cyg_StdioStream *)stream;
+ Cyg_ErrNo err;
+ cyg_uint8 real_c;
+
+ if (c == EOF)
+ return EOF;
+
+ real_c = (cyg_uint8) c;
+
+ err = real_stream->unread_byte( real_c );
+
+ if (err)
+ {
+ errno = err;
+ return EOF;
+ } // if
+
+
+ return (int)real_c;
+
+} // ungetc()
+
+// EOF ungetc.cxx
diff --git a/ecos/packages/language/c/libc/stdio/current/src/common/vsnprintf.cxx b/ecos/packages/language/c/libc/stdio/current/src/common/vsnprintf.cxx
new file mode 100644
index 0000000..d7e4c67
--- /dev/null
+++ b/ecos/packages/language/c/libc/stdio/current/src/common/vsnprintf.cxx
@@ -0,0 +1,126 @@
+//===========================================================================
+//
+// vsnprintf.cxx
+//
+// ANSI Stdio vsnprintf() function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2009 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libc_stdio.h> // Configuration header
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common project-wide type definitions
+#include <stddef.h> // NULL and size_t from compiler
+#include <stdio.h> // header for this file
+#include <errno.h> // error codes
+#include <cyg/libc/stdio/stream.hxx>// Cyg_StdioStream
+
+#include <cyg/libc/stdio/io.inl> // I/O system inlines
+
+// FUNCTIONS
+
+class Cyg_VsnprintfStream: public Cyg_OutputStream
+{
+public:
+ Cyg_VsnprintfStream(char* s): s_(s) {}
+
+ virtual Cyg_ErrNo write( const cyg_uint8 *buffer,
+ cyg_ucount32 buffer_length, cyg_ucount32 *bytes_written );
+
+ virtual Cyg_ErrNo get_error( void ) { return ENOERR; }
+
+private:
+ char* s_;
+};
+
+Cyg_ErrNo
+Cyg_VsnprintfStream::write(
+ const cyg_uint8 *buffer,
+ cyg_ucount32 buffer_length,
+ cyg_ucount32 *bytes_written )
+{
+#ifdef WHEN_MEMCPY_OPTIMISED_IN_ECOS_EVENTUALLY
+ memcpy(s_, buffer, buffer_length);
+ s_ += buffer_length;
+ *bytes_written = buffer_length;
+#else
+ char *dest = s_;
+ char const *src = (char const *)buffer;
+ char const *end = src + buffer_length;
+ while(src < end)
+ *dest++ = *src++;
+ s_ = dest;
+ *bytes_written = buffer_length;
+#endif
+ return ENOERR;
+}
+
+externC int
+vsnprintf( char *s, size_t size, const char *format, va_list arg ) __THROW
+{
+ int ret;
+ Cyg_VsnprintfStream stream(s);
+ ret = vfnprintf( (FILE *)(void *)&stream, size, format, arg );
+ /* If no error, and string not truncated, then apply null termination in
+ * correct place
+ */
+ if ( (ret >= 0) && ((size_t)ret < size) )
+ s[ret] = '\0';
+#ifdef CYGIMP_LIBC_STDIO_C99_SNPRINTF
+ /* C99 case. If no error, and string truncated, apply null termination
+ * in correct place
+ */
+ if ( (ret >= 0) && ((size_t)ret >= size) && (size > 0) )
+ s[size-1] = '\0';
+#endif
+ return ret;
+} // vsnprintf()
+
+// EOF vsnprintf.cxx
diff --git a/ecos/packages/language/c/libc/stdio/current/src/common/vsscanf.cxx b/ecos/packages/language/c/libc/stdio/current/src/common/vsscanf.cxx
new file mode 100644
index 0000000..1ed7cb8
--- /dev/null
+++ b/ecos/packages/language/c/libc/stdio/current/src/common/vsscanf.cxx
@@ -0,0 +1,154 @@
+//===========================================================================
+//
+// vsscanf.cxx
+//
+// ANSI Stdio vsscanf() function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors:
+// Date: 2000-04-20
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libc_stdio.h> // Configuration header
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common project-wide type definitions
+#include <stddef.h> // NULL and size_t from compiler
+#include <stdio.h> // header for this file
+#include <errno.h> // error codes
+#include <cyg/io/devtab.h> // Device table
+#include <cyg/libc/stdio/stream.hxx>// Cyg_StdioStream
+
+#include <cyg/libc/stdio/io.inl> // I/O system inlines
+
+#ifndef CYGPKG_LIBC_STDIO_FILEIO
+
+// FUNCTIONS
+
+static Cyg_ErrNo
+str_read(cyg_stdio_handle_t handle, void *buf, cyg_uint32 *len)
+{
+ cyg_devtab_entry_t *dev = (cyg_devtab_entry_t *)handle;
+ cyg_uint8 *str_p = (cyg_uint8 *)dev->priv;
+ cyg_ucount32 i;
+
+ // we set str_p to NULL further down when the string has finished being
+ // read
+ if (str_p == NULL)
+ {
+ *len = 0;
+ return ENOERR;
+ } // if
+
+ // I suspect most strings passed to sprintf will be relatively short,
+ // so we just take the simple approach rather than have the overhead
+ // of calling memcpy etc.
+
+ // copy string until run out of user space, or we reach its end
+ for (i = 0; i < *len ; ++i)
+ {
+ *((cyg_uint8 *)buf + i) = *str_p;
+
+ if (*str_p++ == '\0')
+ {
+ str_p = NULL;
+ ++i;
+ break;
+ } // if
+
+ } // for
+
+ *len = i;
+ dev->priv = (void *)str_p;
+
+ return ENOERR;
+
+} // str_read()
+
+static DEVIO_TABLE(devio_table,
+ NULL, // write
+ str_read, // read
+ NULL, // select
+ NULL, // get_config
+ NULL); // set_config
+
+
+externC int
+vsscanf( const char *s, const char *format, va_list arg ) __THROW
+{
+ // construct a fake device with the address of the string we've
+ // been passed as its private data. This way we can use the data
+ // directly
+ DEVTAB_ENTRY_NO_INIT(strdev,
+ "strdev", // Name
+ NULL, // Dependent name (layered device)
+ &devio_table, // I/O function table
+ NULL, // Init
+ NULL, // Lookup
+ (void *)s); // private
+ Cyg_StdioStream my_stream( &strdev, Cyg_StdioStream::CYG_STREAM_READ,
+ false, false, _IONBF, 0, NULL );
+
+ return vfscanf( (FILE *)&my_stream, format, arg );
+
+} // vsscanf()
+
+#else
+
+externC int
+vsscanf( const char *s, const char *format, va_list arg ) __THROW
+{
+ Cyg_StdioStream my_stream( Cyg_StdioStream::CYG_STREAM_READ,
+ strlen(s), (cyg_uint8 *)s );
+
+ return vfscanf( (FILE *)&my_stream, format, arg );
+
+} // vsscanf()
+
+#endif
+
+// EOF vsscanf.cxx
diff --git a/ecos/packages/language/c/libc/stdio/current/src/input/fgetc.cxx b/ecos/packages/language/c/libc/stdio/current/src/input/fgetc.cxx
new file mode 100644
index 0000000..4c529c3
--- /dev/null
+++ b/ecos/packages/language/c/libc/stdio/current/src/input/fgetc.cxx
@@ -0,0 +1,130 @@
+//===========================================================================
+//
+// fgetc.cxx
+//
+// ISO C standard I/O get character functions
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors:
+// Date: 2000-04-20
+// Purpose: Provide the fgetc() function. Also provides the function
+// version of getc() and getchar()
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libc_stdio.h> // Configuration header
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common project-wide type definitions
+#include <cyg/infra/cyg_ass.h> // Standard eCos assertion support
+#include <cyg/infra/cyg_trac.h> // Standard eCos tracing support
+#include <stddef.h> // NULL and size_t from compiler
+#include <stdio.h> // header for this file
+#include <errno.h> // error codes
+#include <cyg/libc/stdio/stream.hxx>// Cyg_StdioStream
+
+// FUNCTIONS
+
+externC int
+fgetc( FILE *stream ) __THROW
+{
+ Cyg_StdioStream *real_stream = (Cyg_StdioStream *)stream;
+ cyg_ucount32 bytes_read;
+ Cyg_ErrNo err;
+ cyg_uint8 c;
+
+ CYG_REPORT_FUNCNAMETYPE("fgetc", "returning char %d");
+ CYG_REPORT_FUNCARG1XV( stream );
+
+ CYG_CHECK_DATA_PTR( stream, "stream is not a valid pointer" );
+
+ err = real_stream->read( &c, 1, &bytes_read );
+
+ // Why do we need this? Because the buffer might be empty.
+ if (!err && !bytes_read) { // if no err, but nothing to read, try again
+ err = real_stream->refill_read_buffer();
+ if ( !err )
+ err = real_stream->read( &c, 1, &bytes_read );
+ } // if
+
+ CYG_ASSERT( (ENOERR != err) || (1 == bytes_read), "Didn't read 1 byte!" );
+
+ if (err)
+ {
+ if ( EAGAIN != err ) {
+ real_stream->set_error( err );
+ errno = err;
+ }
+ CYG_REPORT_RETVAL(EOF);
+ return EOF;
+ } // if
+
+ CYG_REPORT_RETVAL((int)c);
+ return (int)c;
+
+} // fgetc()
+
+
+// Also define getc() even though it can be a macro.
+// Undefine it first though
+#undef getchar
+
+externC int
+getchar( void ) __THROW
+{
+ return fgetc( stdin );
+} // getchar()
+
+
+// EXPORTED SYMBOLS
+
+// Also define getc() even though it can be a macro.
+// Undefine it first though
+#undef getc
+
+externC int
+getc( FILE * ) __THROW CYGBLD_ATTRIB_WEAK_ALIAS(fgetc);
+
+// EOF fgetc.cxx
diff --git a/ecos/packages/language/c/libc/stdio/current/src/input/fgets.cxx b/ecos/packages/language/c/libc/stdio/current/src/input/fgets.cxx
new file mode 100644
index 0000000..ad15ec7
--- /dev/null
+++ b/ecos/packages/language/c/libc/stdio/current/src/input/fgets.cxx
@@ -0,0 +1,125 @@
+//========================================================================
+//
+// fgets.cxx
+//
+// ISO C standard I/O fgets() function
+//
+//========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors:
+// Date: 2001-03-14
+// Purpose: Implementation of ISO C standard I/O fgets() function
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//=======================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libc_stdio.h> // Configuration header
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions
+#include <cyg/infra/cyg_ass.h> // Assertion support
+#include <cyg/infra/cyg_trac.h> // Tracing support
+#include <stddef.h> // NULL and size_t from compiler
+#include <stdio.h> // header for this file
+#include <errno.h> // error codes
+#include <cyg/libc/stdio/stream.hxx>// Cyg_StdioStream
+
+// FUNCTIONS
+
+// FIXME: should be reworked to read buffer at a time, and scan that
+// for newlines, rather than reading byte at a time.
+
+externC char *
+fgets( char *s, int n, FILE *stream ) __THROW
+{
+ Cyg_StdioStream *real_stream = (Cyg_StdioStream *)stream;
+ Cyg_ErrNo err=ENOERR;
+ cyg_uint8 c;
+ cyg_uint8 *str=(cyg_uint8 *)s;
+ int nch;
+
+ CYG_CHECK_DATA_PTRC( s );
+ CYG_CHECK_DATA_PTRC( stream );
+ CYG_PRECONDITION( n > 0, "requested 0 or negative chars");
+
+ CYG_REPORT_FUNCTYPE( "returning string %08x");
+ CYG_REPORT_FUNCARG3( "s=%08x, n=%d, stream=%08x", s, n, stream );
+
+ for (nch=1; nch < n; nch++) {
+ err = real_stream->read_byte( &c );
+
+ // if nothing to read, try again ONCE after refilling buffer
+ if (EAGAIN == err) {
+ err = real_stream->refill_read_buffer();
+ if ( !err )
+ err = real_stream->read_byte( &c );
+
+ if (EAGAIN == err) {
+ if (1 == nch) { // indicates EOF at start
+ CYG_REPORT_RETVAL( NULL );
+ return NULL;
+ } else
+ break; // EOF
+ } // if
+ } // if
+
+ *str++ = c;
+ if ('\n' == c)
+ break;
+ } // while
+
+ *str = '\0'; // NULL terminate it
+
+ if (err && EAGAIN != err) {
+ real_stream->set_error( err );
+ errno = err;
+ CYG_REPORT_RETVAL( NULL );
+ return NULL;
+ } // if
+
+ CYG_REPORT_RETVAL( s );
+ return s;
+
+} // fgets()
+
+// EOF fgets.cxx
diff --git a/ecos/packages/language/c/libc/stdio/current/src/input/fread.cxx b/ecos/packages/language/c/libc/stdio/current/src/input/fread.cxx
new file mode 100644
index 0000000..eaa66d8
--- /dev/null
+++ b/ecos/packages/language/c/libc/stdio/current/src/input/fread.cxx
@@ -0,0 +1,124 @@
+//========================================================================
+//
+// fread.cxx
+//
+// ANSI Stdio fread() function
+//
+//========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors:
+// Date: 2000-04-20
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//=======================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libc_stdio.h> // Configuration header
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common project-wide type definitions
+#include <cyg/infra/cyg_ass.h> // Assertion support
+#include <cyg/infra/cyg_trac.h> // Tracing support
+#include <stddef.h> // NULL and size_t from compiler
+#include <stdio.h> // header for this file
+#include <errno.h> // error codes
+#include <cyg/libc/stdio/stream.hxx>// Cyg_StdioStream
+
+// FUNCTIONS
+
+externC size_t
+fread( void *ptr, size_t object_size, size_t num_objects, FILE *stream ) __THROW
+{
+ Cyg_StdioStream *real_stream = (Cyg_StdioStream *)stream;
+ cyg_ucount32 bytes_read;
+ cyg_ucount32 bytes_to_read;
+ cyg_ucount32 total_read;
+ Cyg_ErrNo err;
+ cyg_uint8 *ptrc = (cyg_uint8 *)ptr;
+
+
+ CYG_REPORT_FUNCNAMETYPE( "fread", "read %d objects" );
+ CYG_REPORT_FUNCARG4( "ptr=%08x, object_size=%d, num_objects=%d, "
+ "stream=%08x", ptr, object_size, num_objects,
+ stream );
+
+ bytes_to_read = object_size*num_objects;
+ total_read = 0;
+
+ if ( !bytes_to_read ) {
+ CYG_REPORT_RETVAL(0);
+ return 0;
+ } // if
+
+ err = real_stream->read( (cyg_uint8 *)ptr, bytes_to_read,
+ &bytes_read );
+ bytes_to_read -= bytes_read;
+ total_read += bytes_read;
+ ptrc += bytes_read;
+
+ while (!err && bytes_to_read) { // if no err, but not finished - get next
+ err = real_stream->refill_read_buffer();
+ if ( !err ) {
+ err = real_stream->read( (cyg_uint8 *)ptrc, bytes_to_read,
+ &bytes_read );
+ bytes_to_read -= bytes_read;
+ total_read += bytes_read;
+ ptrc += bytes_read;
+ } // if
+ } // while
+
+ if (err) {
+ if (err != EAGAIN) {
+ real_stream->set_error( err );
+ errno = err;
+ }
+ } // if
+
+ // we return the number of _objects_ read. Simple division is
+ // sufficient as this returns the quotient rather than rounding
+ CYG_REPORT_RETVAL( bytes_read/object_size );
+ return total_read/object_size;
+
+} // fread()
+
+// EOF fread.cxx
diff --git a/ecos/packages/language/c/libc/stdio/current/src/input/fscanf.cxx b/ecos/packages/language/c/libc/stdio/current/src/input/fscanf.cxx
new file mode 100644
index 0000000..4ac3617
--- /dev/null
+++ b/ecos/packages/language/c/libc/stdio/current/src/input/fscanf.cxx
@@ -0,0 +1,81 @@
+//===========================================================================
+//
+// fscanf.cxx
+//
+// ANSI Stdio fscanf() function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors:
+// Date: 2000-04-20
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libc_stdio.h> // Configuration header
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common project-wide type definitions
+#include <stddef.h> // NULL and size_t from compiler
+#include <stdio.h> // header for this file
+#include <limits.h> // INT_MAX
+
+// FUNCTIONS
+
+externC int
+fscanf( FILE *stream, const char *format, ... ) __THROW
+{
+ int rc; // return code
+ va_list ap; // for variable args
+
+ va_start(ap, format); // init specifying last non-var arg
+
+ rc = vfscanf( stream, format, ap );
+
+ va_end(ap); // end var args
+
+ return rc;
+} // fscanf()
+
+// EOF fscanf.cxx
diff --git a/ecos/packages/language/c/libc/stdio/current/src/input/gets.cxx b/ecos/packages/language/c/libc/stdio/current/src/input/gets.cxx
new file mode 100644
index 0000000..870bfa7
--- /dev/null
+++ b/ecos/packages/language/c/libc/stdio/current/src/input/gets.cxx
@@ -0,0 +1,123 @@
+//===========================================================================
+//
+// gets.cxx
+//
+// ISO C standard I/O gets() function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors:
+// Date: 2001-03-15
+// Purpose: Implementation of ISO C standard I/O gets() function
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libc_stdio.h> // Configuration header
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions
+#include <cyg/infra/cyg_ass.h> // Assertion support
+#include <cyg/infra/cyg_trac.h> // Tracing support
+#include <stddef.h> // NULL and size_t from compiler
+#include <stdio.h> // header for this file
+#include <errno.h> // error codes
+#include <cyg/libc/stdio/stream.hxx>// Cyg_StdioStream
+
+// FUNCTIONS
+
+// FIXME: should be reworked to read buffer at a time, and scan that
+// for newlines, rather than reading byte at a time.
+
+externC char *
+gets( char *s ) __THROW
+{
+ Cyg_StdioStream *real_stream = (Cyg_StdioStream *)stdin;
+ Cyg_ErrNo err=ENOERR;
+ cyg_uint8 c;
+ cyg_uint8 *str=(cyg_uint8 *)s;
+ int nch;
+
+ CYG_CHECK_DATA_PTRC( s );
+ CYG_CHECK_DATA_PTRC( real_stream );
+
+ CYG_REPORT_FUNCTYPE( "returning string %08x");
+ CYG_REPORT_FUNCARG1( "s=%08x", s );
+
+ for (nch=1;; nch++) {
+ err = real_stream->read_byte( &c );
+
+ // if nothing to read, try again ONCE after refilling buffer
+ if (EAGAIN == err) {
+ err = real_stream->refill_read_buffer();
+ if ( !err )
+ err = real_stream->read_byte( &c );
+
+ if (EAGAIN == err) {
+ if (1 == nch) { // indicates EOF at start
+ CYG_REPORT_RETVAL( NULL );
+ return NULL;
+ } else
+ break; // EOF
+ } // if
+ } // if
+
+ if ('\n' == c) // discard newlines
+ break;
+ *str++ = c;
+ } // while
+
+ *str = '\0'; // NULL terminate it
+
+ if (err && EAGAIN != err) {
+ real_stream->set_error( err );
+ errno = err;
+ CYG_REPORT_RETVAL( NULL );
+ return NULL;
+ } // if
+
+ CYG_REPORT_RETVAL( s );
+ return s;
+} // gets()
+
+// EOF gets.cxx
diff --git a/ecos/packages/language/c/libc/stdio/current/src/input/scanf.cxx b/ecos/packages/language/c/libc/stdio/current/src/input/scanf.cxx
new file mode 100644
index 0000000..b0fac6a
--- /dev/null
+++ b/ecos/packages/language/c/libc/stdio/current/src/input/scanf.cxx
@@ -0,0 +1,81 @@
+//===========================================================================
+//
+// scanf.cxx
+//
+// ANSI Stdio scanf() function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors:
+// Date: 2000-04-20
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libc_stdio.h> // Configuration header
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common project-wide type definitions
+#include <stddef.h> // NULL and size_t from compiler
+#include <stdio.h> // header for this file
+
+// FUNCTIONS
+
+
+externC int
+scanf( const char *format, ... ) __THROW
+{
+ int rc; // return code
+ va_list ap; // for variable args
+
+ va_start(ap, format); // init specifying last non-var arg
+
+ rc = vfscanf( stdin, format, ap );
+
+ va_end(ap); // end var args
+
+ return rc;
+} // scanf()
+
+// EOF scanf.cxx
diff --git a/ecos/packages/language/c/libc/stdio/current/src/input/vfscanf.cxx b/ecos/packages/language/c/libc/stdio/current/src/input/vfscanf.cxx
new file mode 100644
index 0000000..3a2b650
--- /dev/null
+++ b/ecos/packages/language/c/libc/stdio/current/src/input/vfscanf.cxx
@@ -0,0 +1,1058 @@
+//========================================================================
+//
+// vfscanf.cxx
+//
+// I/O routines for vfscanf() for use with ANSI C library
+//
+//========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors:
+// Date: 2000-04-20
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//========================================================================
+//
+// This code is based on original code with the following copyright:
+//
+/*
+ * Copyright (c) 1990 The Regents of the University of California.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms are permitted
+ * provided that the above copyright notice and this paragraph are
+ * duplicated in all such forms and that any documentation,
+ * advertising materials, and other materials related to such
+ * distribution and use acknowledge that the software was developed
+ * by the University of California, Berkeley. The name of the
+ * University may not be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+ */
+
+
+// CONFIGURATION
+
+#include <pkgconf/libc_stdio.h> // Configuration header
+#include <pkgconf/libc_i18n.h> // Configuration header for mb support
+
+// We have to have ungetc for this to work
+#if defined(CYGFUN_LIBC_STDIO_ungetc)
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include <stdarg.h> // Variable argument definitions
+#include <stdio.h> // Standard header for all stdio files
+#include <ctype.h> // isspace() and isupper()
+#include <stdlib.h> // standard utility functions e.g. strtol
+#include <cyg/libc/stdio/stream.hxx> // C library streams
+
+#ifdef CYGSEM_LIBC_STDIO_SCANF_FLOATING_POINT
+
+#include <float.h>
+
+# define MAXFRACT DBL_DIG
+# define MAXEXP DBL_MAX_10_EXP
+
+# define BUF (MAXEXP+MAXFRACT+3) /* 3 = sign + decimal point + NUL */
+
+#else // ifdef CYGSEM_LIBC_STDIO_PRINTF_FLOATING_POINT
+
+# define BUF 40
+
+#endif // ifdef CYGSEM_LIBC_STDIO_PRINTF_FLOATING_POINT
+
+/*
+ * Flags used during conversion.
+ */
+
+#define LONG 0x01 /* l: long or double */
+#define LONGDBL 0x02 /* L: long double */
+#define SHORT 0x04 /* h: short */
+#define SUPPRESS 0x08 /* suppress assignment */
+#define POINTER 0x10 /* weird %p pointer (`fake hex') */
+#define NOSKIP 0x20 /* do not skip blanks */
+
+/*
+ * The following are used in numeric conversions only:
+ * SIGNOK, NDIGITS, DPTOK, and EXPOK are for floating point;
+ * SIGNOK, NDIGITS, PFXOK, and NZDIGITS are for integral.
+ */
+
+#define SIGNOK 0x40 /* +/- is (still) legal */
+#define NDIGITS 0x80 /* no digits detected */
+
+#define DPTOK 0x100 /* (float) decimal point is still legal */
+#define EXPOK 0x200 /* (float) exponent (e+3, etc) still
+ legal */
+
+#define PFXOK 0x100 /* 0x prefix is (still) legal */
+#define NZDIGITS 0x200 /* no zero digits detected */
+
+/*
+ * Conversion types.
+ */
+
+#define CT_CHAR 0 /* %c conversion */
+#define CT_CCL 1 /* %[...] conversion */
+#define CT_STRING 2 /* %s conversion */
+#define CT_INT 3 /* integer, i.e., strtol or strtoul */
+#define CT_FLOAT 4 /* floating, i.e., strtod */
+
+#if 0
+#define u_char unsigned char
+#endif
+#define u_char char
+#define u_long unsigned long
+#define u_long_long unsigned long long
+
+typedef unsigned long (*strtoul_t)(const char *, char **endptr, int base);
+typedef unsigned long long (*strtoull_t)(const char *, char **endptr, int base);
+
+static u_char *
+__sccl (char *tab, u_char *fmt);
+
+
+/*
+ * vfscanf
+ */
+
+#define _CAST_VOID
+
+#define CURR_POS (file->peek_byte( (cyg_uint8 *)&curr_byte),&curr_byte )
+
+#define INC_CURR_POS ( file->read_byte( (cyg_uint8 *)&curr_byte ) )
+
+#define MOVE_CURR_POS(x) (file->set_position( (x), SEEK_CUR ))
+
+#define SPACE_LEFT (file->bytes_available_to_read())
+
+#define REFILL (file->refill_read_buffer())
+
+#define BufferEmpty ( !SPACE_LEFT && \
+ (REFILL, (!SPACE_LEFT)) )
+
+#ifdef CYGINT_LIBC_I18N_MB_REQUIRED
+typedef int (*mbtowc_fn_type)(wchar_t *, const char *, size_t, int *);
+externC mbtowc_fn_type __get_current_locale_mbtowc_fn();
+#endif
+
+externC int
+vfscanf (FILE *fp, const char *fmt0, va_list ap) __THROW
+{
+ u_char *fmt = (u_char *) fmt0;
+ int c; /* character from format, or conversion */
+ wchar_t wc; /* wide character from format */
+ size_t width; /* field width, or 0 */
+ char *p; /* points into all kinds of strings */
+ int n; /* handy integer */
+ int flags; /* flags as defined above */
+ char *p0; /* saves original value of p when necessary */
+ char *lptr; /* literal pointer */
+ int nassigned; /* number of fields assigned */
+ int nread; /* number of characters consumed from fp */
+ int base = 0; /* base argument to strtol/strtoul */
+ int nbytes = 1; /* number of bytes processed */
+
+#ifdef CYGINT_LIBC_I18N_MB_REQUIRED
+ mbtowc_fn_type mbtowc_fn;
+ int state = 0; /* used for mbtowc_fn */
+#endif
+
+ strtoul_t ccfn = NULL; /* conversion function (strtol/strtoul) */
+#ifdef CYGFUN_LIBC_STDIO_LONGLONG
+ strtoull_t ccfnL = NULL; /* conversion function (strtoll/strtoull) */
+ long long *ll;
+#endif
+ char ccltab[256]; /* character class table for %[...] */
+ char buf[BUF]; /* buffer for numeric conversions */
+
+ Cyg_StdioStream *file = (Cyg_StdioStream *)fp;
+ char curr_byte;
+
+ short *sp;
+ int *ip;
+ float *flp;
+ long double *ldp;
+ double *dp;
+ long *lp;
+
+ /* `basefix' is used to avoid `if' tests in the integer scanner */
+ static const short basefix[17] =
+ {10, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
+
+#ifdef CYGINT_LIBC_I18N_MB_REQUIRED
+ mbtowc_fn = __get_current_locale_mbtowc_fn();
+#endif
+
+ nassigned = 0;
+ nread = 0;
+ for (;;)
+ {
+#ifndef CYGINT_LIBC_I18N_MB_REQUIRED
+ wc = *fmt;
+#else
+ nbytes = mbtowc_fn (&wc, fmt, MB_CUR_MAX, &state);
+#endif
+ fmt += nbytes;
+
+ if (wc == 0)
+ return nassigned;
+ if (nbytes == 1 && isspace (wc))
+ {
+ for (;;)
+ {
+ if (BufferEmpty)
+ return nassigned;
+ if (!isspace (*CURR_POS))
+ break;
+ nread++, INC_CURR_POS;
+ }
+ continue;
+ }
+ if (wc != '%')
+ goto literal;
+ width = 0;
+ flags = 0;
+
+ /*
+ * switch on the format. continue if done; break once format
+ * type is derived.
+ */
+
+again:
+ c = *fmt++;
+
+ switch (c)
+ {
+ case '%':
+literal:
+ lptr = fmt - nbytes;
+ for (n = 0; n < nbytes; ++n)
+ {
+ if (BufferEmpty)
+ goto input_failure;
+ if (*CURR_POS != *lptr)
+ goto match_failure;
+ INC_CURR_POS;
+ nread++;
+ ++lptr;
+ }
+ continue;
+
+ case '*':
+ flags |= SUPPRESS;
+ goto again;
+ case 'l':
+#ifdef CYGFUN_LIBC_STDIO_LONGLONG
+ // check if we are using long long 'll'
+ if (flags & LONG) {
+ // change to long long
+ flags &= ~LONG;
+ flags |= LONGDBL;
+ }
+ else
+#endif
+ flags |= LONG;
+
+ goto again;
+#ifdef CYGFUN_LIBC_STDIO_LONGLONG
+ case 'L':
+ flags |= LONGDBL;
+ goto again;
+#endif
+ case 'h':
+ flags |= SHORT;
+ goto again;
+
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9':
+ width = width * 10 + c - '0';
+ goto again;
+
+ /*
+ * Conversions. Those marked `compat' are for
+ * 4.[123]BSD compatibility.
+ *
+ * (According to ANSI, E and X formats are supposed to
+ * the same as e and x. Sorry about that.)
+ */
+
+ case 'D': /* compat */
+ flags |= LONG;
+ /* FALLTHROUGH */
+ case 'd':
+ c = CT_INT;
+ ccfn = (strtoul_t)strtol;
+#ifdef CYGFUN_LIBC_STDIO_LONGLONG
+ if (flags & LONGDBL)
+ ccfnL = (strtoull_t)strtoll;
+#endif
+ base = 10;
+ break;
+
+ case 'i':
+ c = CT_INT;
+ ccfn = (strtoul_t)strtol;
+#ifdef CYGFUN_LIBC_STDIO_LONGLONG
+ if (flags & LONGDBL)
+ ccfnL = (strtoull_t)strtoll;
+#endif
+ base = 0;
+ break;
+
+ case 'O': /* compat */
+ flags |= LONG;
+ /* FALLTHROUGH */
+ case 'o':
+ c = CT_INT;
+ ccfn = strtoul;
+#ifdef CYGFUN_LIBC_STDIO_LONGLONG
+ if (flags & LONGDBL)
+ ccfnL = strtoull;
+#endif
+ base = 8;
+ break;
+
+ case 'u':
+ c = CT_INT;
+ ccfn = strtoul;
+#ifdef CYGFUN_LIBC_STDIO_LONGLONG
+ if (flags & LONGDBL)
+ ccfnL = strtoull;
+#endif
+ base = 10;
+ break;
+
+ case 'X': /* compat XXX */
+ case 'x':
+ flags |= PFXOK; /* enable 0x prefixing */
+ c = CT_INT;
+ ccfn = strtoul;
+#ifdef CYGFUN_LIBC_STDIO_LONGLONG
+ if (flags & LONGDBL)
+ ccfnL = strtoull;
+#endif
+ base = 16;
+ break;
+
+ case 'E': /* compat XXX */
+ case 'G': /* compat XXX */
+/* ANSI says that E,G and X behave the same way as e,g,x */
+ /* FALLTHROUGH */
+ case 'e':
+ case 'f':
+ case 'g':
+ c = CT_FLOAT;
+ break;
+
+ case 's':
+ c = CT_STRING;
+ break;
+
+ case '[':
+ fmt = __sccl (ccltab, fmt);
+ flags |= NOSKIP;
+ c = CT_CCL;
+ break;
+
+ case 'c':
+ flags |= NOSKIP;
+ c = CT_CHAR;
+ break;
+
+ case 'p': /* pointer format is like hex */
+ flags |= POINTER | PFXOK;
+ c = CT_INT;
+ ccfn = strtoul;
+ base = 16;
+ break;
+
+ case 'n':
+ if (flags & SUPPRESS) /* ??? */
+ continue;
+ if (flags & SHORT)
+ {
+ sp = va_arg (ap, short *);
+ *sp = nread;
+ }
+ else if (flags & LONG)
+ {
+ lp = va_arg (ap, long *);
+ *lp = nread;
+ }
+ else
+ {
+ ip = va_arg (ap, int *);
+ *ip = nread;
+ }
+ continue;
+
+ /*
+ * Disgusting backwards compatibility hacks. XXX
+ */
+ case '\0': /* compat */
+ return EOF;
+
+ default: /* compat */
+ if (isupper (c))
+ flags |= LONG;
+ c = CT_INT;
+ ccfn = (strtoul_t)strtol;
+ base = 10;
+ break;
+ }
+
+ /*
+ * We have a conversion that requires input.
+ */
+ if (BufferEmpty)
+ goto input_failure;
+
+ /*
+ * Consume leading white space, except for formats that
+ * suppress this.
+ */
+ if ((flags & NOSKIP) == 0)
+ {
+ while (isspace (*CURR_POS))
+ {
+ nread++;
+ INC_CURR_POS;
+ if (SPACE_LEFT == 0)
+#ifndef REDHAT_NEC
+ if (REFILL)
+#endif
+ goto input_failure;
+ }
+ /*
+ * Note that there is at least one character in the
+ * buffer, so conversions that do not set NOSKIP ca
+ * no longer result in an input failure.
+ */
+ }
+
+ /*
+ * Do the conversion.
+ */
+ switch (c)
+ {
+
+ case CT_CHAR:
+ /* scan arbitrary characters (sets NOSKIP) */
+ if (width == 0)
+ width = 1;
+ if (flags & SUPPRESS)
+ {
+ size_t sum = 0;
+
+ for (;;)
+ {
+ if ((n = SPACE_LEFT) < (signed)width)
+ {
+ sum += n;
+ width -= n;
+ MOVE_CURR_POS(n-1);
+ INC_CURR_POS;
+#ifndef REDHAT_NEC
+ if (REFILL)
+ {
+#endif
+ if (sum == 0)
+ goto input_failure;
+ break;
+#ifndef REDHAT_NEC
+ }
+#endif
+ }
+ else
+ {
+ sum += width;
+ MOVE_CURR_POS(width - 1);
+ INC_CURR_POS;
+ break;
+ }
+ }
+ nread += sum;
+ }
+ else
+ {
+ /* Kludge city for the moment */
+ char *dest = va_arg (ap, char *);
+ int n = width;
+ if (SPACE_LEFT == 0)
+#ifndef REDHAT_NEC
+ if (REFILL)
+#endif
+ goto input_failure;
+
+ while (n && !BufferEmpty)
+ {
+ *dest++ = *CURR_POS;
+ INC_CURR_POS;
+ n--;
+ nread++;
+ }
+ nassigned++;
+ }
+ break;
+
+ case CT_CCL:
+ /* scan a (nonempty) character class (sets NOSKIP) */
+ if (width == 0)
+ width = ~0; /* `infinity' */
+ /* take only those things in the class */
+ if (flags & SUPPRESS)
+ {
+ n = 0;
+ while (ccltab[(int)*CURR_POS])
+ {
+ n++, INC_CURR_POS;
+ if (--width == 0)
+ break;
+ if (BufferEmpty)
+ {
+ if (n == 0)
+ goto input_failure;
+ break;
+ }
+ }
+ if (n == 0)
+ goto match_failure;
+ }
+ else
+ {
+ p0 = p = va_arg (ap, char *);
+ while (ccltab[(int)*CURR_POS])
+ {
+ *p++ = *CURR_POS;
+ INC_CURR_POS;
+ if (--width == 0)
+ break;
+ if (BufferEmpty)
+ {
+ if (p == p0)
+ goto input_failure;
+ break;
+ }
+ }
+ n = p - p0;
+ if (n == 0)
+ goto match_failure;
+ *p = 0;
+ nassigned++;
+ }
+ nread += n;
+ break;
+
+ case CT_STRING:
+ /* like CCL, but zero-length string OK, & no NOSKIP */
+ if (width == 0)
+ width = ~0;
+ if (flags & SUPPRESS)
+ {
+ n = 0;
+ while (!isspace (*CURR_POS))
+ {
+ n++, INC_CURR_POS;
+ if (--width == 0)
+ break;
+ if (BufferEmpty)
+ break;
+ }
+ nread += n;
+ }
+ else
+ {
+ p0 = p = va_arg (ap, char *);
+ while (!isspace (*CURR_POS))
+ {
+ *p++ = *CURR_POS;
+ INC_CURR_POS;
+ if (--width == 0)
+ break;
+ if (BufferEmpty)
+ break;
+ }
+ *p = 0;
+ nread += p - p0;
+ nassigned++;
+ }
+ continue;
+
+ case CT_INT:
+ /* scan an integer as if by strtol/strtoul */
+#ifdef hardway
+ if (width == 0 || width > sizeof (buf) - 1)
+ width = sizeof (buf) - 1;
+#else
+ /* size_t is unsigned, hence this optimisation */
+ if (--width > sizeof (buf) - 2)
+ width = sizeof (buf) - 2;
+ width++;
+#endif
+ flags |= SIGNOK | NDIGITS | NZDIGITS;
+ for (p = buf; width; width--)
+ {
+ c = *CURR_POS;
+ /*
+ * Switch on the character; `goto ok' if we
+ * accept it as a part of number.
+ */
+ switch (c)
+ {
+ /*
+ * The digit 0 is always legal, but is special.
+ * For %i conversions, if no digits (zero or nonzero)
+ * have been scanned (only signs), we will have base==0
+ * In that case, we should set it to 8 and enable 0x
+ * prefixing. Also, if we have not scanned zero digits
+ * before this, do not turn off prefixing (someone else
+ * will turn it off if we have scanned any nonzero
+ * digits).
+ */
+ case '0':
+ if (base == 0)
+ {
+ base = 8;
+ flags |= PFXOK;
+ }
+ if (flags & NZDIGITS)
+ flags &= ~(SIGNOK | NZDIGITS | NDIGITS);
+ else
+ flags &= ~(SIGNOK | PFXOK | NDIGITS);
+ goto ok;
+
+ /* 1 through 7 always legal */
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ base = basefix[base];
+ flags &= ~(SIGNOK | PFXOK | NDIGITS);
+ goto ok;
+
+ /* digits 8 and 9 ok iff decimal or hex */
+ case '8':
+ case '9':
+ base = basefix[base];
+ if (base <= 8)
+ break; /* not legal here */
+ flags &= ~(SIGNOK | PFXOK | NDIGITS);
+ goto ok;
+
+ /* letters ok iff hex */
+ case 'A':
+ case 'B':
+ case 'C':
+ case 'D':
+ case 'E':
+ case 'F':
+ case 'a':
+ case 'b':
+ case 'c':
+ case 'd':
+ case 'e':
+ case 'f':
+ /* no need to fix base here */
+ if (base <= 10)
+ break; /* not legal here */
+ flags &= ~(SIGNOK | PFXOK | NDIGITS);
+ goto ok;
+
+ /* sign ok only as first character */
+ case '+':
+ case '-':
+ if (flags & SIGNOK)
+ {
+ flags &= ~SIGNOK;
+ goto ok;
+ }
+ break;
+
+ /* x ok iff flag still set & 2nd char */
+ case 'x':
+ case 'X':
+ if (flags & PFXOK && p == buf + 1)
+ {
+ base = 16;/* if %i */
+ flags &= ~PFXOK;
+ goto ok;
+ }
+ break;
+ }
+
+ /*
+ * If we got here, c is not a legal character
+ * for a number. Stop accumulating digits.
+ */
+ break;
+ ok:
+ /*
+ * c is legal: store it and look at the next.
+ */
+ *p++ = c;
+ INC_CURR_POS;
+ if (SPACE_LEFT == 0)
+#ifndef REDHAT_NEC
+ if (REFILL)
+#endif
+ break; /* EOF */
+ }
+ /*
+ * If we had only a sign, it is no good; push back the sign.
+ * If the number ends in `x', it was [sign] '0' 'x', so push
+ * back the x and treat it as [sign] '0'.
+ */
+ if (flags & NDIGITS)
+ {
+ if (p > buf)
+ _CAST_VOID ungetc (*(u_char *)-- p, fp);
+ goto match_failure;
+ }
+ c = ((u_char *) p)[-1];
+ if (c == 'x' || c == 'X')
+ {
+ --p;
+ /*(void)*/ ungetc (c, fp);
+ }
+ if ((flags & SUPPRESS) == 0)
+ {
+#ifdef CYGFUN_LIBC_STDIO_LONGLONG
+ u_long_long res;
+#else
+ u_long res;
+#endif
+
+ *p = 0;
+
+#ifdef CYGFUN_LIBC_STDIO_LONGLONG
+ if (flags & LONGDBL)
+ res = (*ccfnL) (buf, (char **) NULL, base);
+ else
+#endif
+ res = (*ccfn) (buf, (char **) NULL, base);
+
+ if (flags & POINTER)
+ *(va_arg (ap, char **)) = (char *) (CYG_ADDRESS) res;
+ else if (flags & SHORT)
+ {
+ sp = va_arg (ap, short *);
+ *sp = res;
+ }
+ else if (flags & LONG)
+ {
+ lp = va_arg (ap, long *);
+ *lp = res;
+ }
+#ifdef CYGFUN_LIBC_STDIO_LONGLONG
+ else if (flags & LONGDBL)
+ {
+ ll = va_arg (ap, long long *);
+ *ll = res;
+ }
+#endif
+ else
+ {
+ ip = va_arg (ap, int *);
+ *ip = res;
+ }
+ nassigned++;
+ }
+ nread += p - buf;
+ break;
+
+ case CT_FLOAT:
+ /* scan a floating point number as if by strtod */
+
+#ifdef hardway
+ if (width == 0 || width > sizeof (buf) - 1)
+ width = sizeof (buf) - 1;
+#else
+ /* size_t is unsigned, hence this optimisation */
+ if (--width > sizeof (buf) - 2)
+ width = sizeof (buf) - 2;
+ width++;
+#endif // ifdef hardway
+
+ flags |= SIGNOK | NDIGITS | DPTOK | EXPOK;
+ for (p = buf; width; width--)
+ {
+ c = *CURR_POS;
+ /*
+ * This code mimicks the integer conversion
+ * code, but is much simpler.
+ */
+ switch (c)
+ {
+
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9':
+ flags &= ~(SIGNOK | NDIGITS);
+ goto fok;
+
+ case '+':
+ case '-':
+ if (flags & SIGNOK)
+ {
+ flags &= ~SIGNOK;
+ goto fok;
+ }
+ break;
+ case '.':
+ if (flags & DPTOK)
+ {
+ flags &= ~(SIGNOK | DPTOK);
+ goto fok;
+ }
+ break;
+ case 'e':
+ case 'E':
+ /* no exponent without some digits */
+ if ((flags & (NDIGITS | EXPOK)) == EXPOK)
+ {
+ flags =
+ (flags & ~(EXPOK | DPTOK)) |
+ SIGNOK | NDIGITS;
+ goto fok;
+ }
+ break;
+ }
+ break;
+ fok:
+ *p++ = c;
+ INC_CURR_POS;
+ if (SPACE_LEFT == 0)
+#ifndef REDHAT_NEC
+ if (REFILL)
+#endif
+ break; /* EOF */
+ }
+ /*
+ * If no digits, might be missing exponent digits
+ * (just give back the exponent) or might be missing
+ * regular digits, but had sign and/or decimal point.
+ */
+ if (flags & NDIGITS)
+ {
+ if (flags & EXPOK)
+ {
+ /* no digits at all */
+ while (p > buf)
+ ungetc (*(u_char *)-- p, fp);
+ goto match_failure;
+ }
+ /* just a bad exponent (e and maybe sign) */
+ c = *(u_char *)-- p;
+ if (c != 'e' && c != 'E')
+ {
+ _CAST_VOID ungetc (c, fp); /* sign */
+ c = *(u_char *)-- p;
+ }
+ _CAST_VOID ungetc (c, fp);
+ }
+ if ((flags & SUPPRESS) == 0)
+ {
+ double res;
+ *p = 0;
+#ifdef CYGSEM_LIBC_STDIO_SCANF_FLOATING_POINT
+ res = strtod( buf, NULL );
+#else
+ res = 0.0;
+#endif
+ if (flags & LONG)
+ {
+ dp = va_arg (ap, double *);
+ *dp = res;
+ }
+#ifdef CYGFUN_LIBC_STDIO_LONGLONG
+ else if (flags & LONGDBL)
+ {
+ ldp = va_arg (ap, long double *);
+ *ldp = res;
+ }
+#endif
+ else
+ {
+ flp = va_arg (ap, float *);
+ *flp = res;
+ }
+ nassigned++;
+ }
+ nread += p - buf;
+ break;
+ }
+ }
+
+input_failure:
+ return nassigned ? nassigned : -1;
+match_failure:
+ return nassigned;
+} // vfscanf()
+
+/*
+ * Fill in the given table from the scanset at the given format
+ * (just after `['). Return a pointer to the character past the
+ * closing `]'. The table has a 1 wherever characters should be
+ * considered part of the scanset.
+ */
+
+/*static*/
+u_char *
+__sccl (char *tab, u_char *fmt)
+{
+ int c, n, v;
+
+ /* first `clear' the whole table */
+ c = *fmt++; /* first char hat => negated scanset */
+ if (c == '^')
+ {
+ v = 1; /* default => accept */
+ c = *fmt++; /* get new first char */
+ }
+ else
+ v = 0; /* default => reject */
+ /* should probably use memset here */
+ for (n = 0; n < 256; n++)
+ tab[n] = v;
+ if (c == 0)
+ return fmt - 1; /* format ended before closing ] */
+
+ /*
+ * Now set the entries corresponding to the actual scanset to the
+ * opposite of the above.
+ *
+ * The first character may be ']' (or '-') without being special; the
+ * last character may be '-'.
+ */
+
+ v = 1 - v;
+ for (;;)
+ {
+ tab[c] = v; /* take character c */
+ doswitch:
+ n = *fmt++; /* and examine the next */
+ switch (n)
+ {
+
+ case 0: /* format ended too soon */
+ return fmt - 1;
+
+ case '-':
+ /*
+ * A scanset of the form [01+-] is defined as `the digit 0, the
+ * digit 1, the character +, the character -', but the effect
+ * of a scanset such as [a-zA-Z0-9] is implementation defined.
+ * The V7 Unix scanf treats `a-z' as `the letters a through z',
+ * but treats `a-a' as `the letter a, the character -, and the
+ * letter a'.
+ *
+ * For compatibility, the `-' is not considerd to define a
+ * range if the character following it is either a close
+ * bracket (required by ANSI) or is not numerically greater
+ * than the character we just stored in the table (c).
+ */
+ n = *fmt;
+ if (n == ']' || n < c)
+ {
+ c = '-';
+ break; /* resume the for(;;) */
+ }
+ fmt++;
+ do
+ { /* fill in the range */
+ tab[++c] = v;
+ }
+ while (c < n);
+#if 1 /* XXX another disgusting compatibility hack */
+ /*
+ * Alas, the V7 Unix scanf also treats formats such
+ * as [a-c-e] as `the letters a through e'. This too
+ * is permitted by the standard....
+ */
+ goto doswitch;
+#else
+ c = *fmt++;
+ if (c == 0)
+ return fmt - 1;
+ if (c == ']')
+ return fmt;
+#endif
+
+ break;
+
+
+ case ']': /* end of scanset */
+ return fmt;
+
+ default: /* just another character */
+ c = n;
+ break;
+ }
+ }
+ /* NOTREACHED */
+} // __sccl()
+
+#endif // if defined(CYGFUN_LIBC_STDIO_ungetc)
+
+// EOF vfscanf.cxx
diff --git a/ecos/packages/language/c/libc/stdio/current/src/output/fnprintf.cxx b/ecos/packages/language/c/libc/stdio/current/src/output/fnprintf.cxx
new file mode 100644
index 0000000..705d6c5
--- /dev/null
+++ b/ecos/packages/language/c/libc/stdio/current/src/output/fnprintf.cxx
@@ -0,0 +1,80 @@
+//===========================================================================
+//
+// fnprintf.cxx
+//
+// ANSI Stdio fnprintf() function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors:
+// Date: 2000-04-20
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libc_stdio.h> // Configuration header
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common project-wide type definitions
+#include <stddef.h> // NULL and size_t from compiler
+#include <stdio.h> // header for this file
+
+// FUNCTIONS
+
+externC int
+fnprintf( FILE *stream, size_t size, const char *format, ... ) __THROW
+{
+ int rc; // return code
+ va_list ap; // for variable args
+
+ va_start(ap, format); // init specifying last non-var arg
+
+ rc = vfnprintf(stream, size, format, ap);
+
+ va_end(ap); // end var args
+
+ return rc;
+} // fnprintf()
+
+// EOF fnprintf.cxx
diff --git a/ecos/packages/language/c/libc/stdio/current/src/output/fprintf.cxx b/ecos/packages/language/c/libc/stdio/current/src/output/fprintf.cxx
new file mode 100644
index 0000000..90d66cc
--- /dev/null
+++ b/ecos/packages/language/c/libc/stdio/current/src/output/fprintf.cxx
@@ -0,0 +1,81 @@
+//===========================================================================
+//
+// fprintf.cxx
+//
+// ANSI Stdio fprintf() function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors:
+// Date: 2000-04-20
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libc_stdio.h> // Configuration header
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common project-wide type definitions
+#include <stddef.h> // NULL and size_t from compiler
+#include <stdio.h> // header for this file
+#include <limits.h> // INT_MAX
+
+// FUNCTIONS
+
+externC int
+fprintf( FILE *stream, const char *format, ... ) __THROW
+{
+ int rc; // return code
+ va_list ap; // for variable args
+
+ va_start(ap, format); // init specifying last non-var arg
+
+ rc = vfnprintf(stream, INT_MAX, format, ap);
+
+ va_end(ap); // end var args
+
+ return rc;
+} // fprintf()
+
+// EOF fprintf.cxx
diff --git a/ecos/packages/language/c/libc/stdio/current/src/output/fputc.cxx b/ecos/packages/language/c/libc/stdio/current/src/output/fputc.cxx
new file mode 100644
index 0000000..9c79f6f
--- /dev/null
+++ b/ecos/packages/language/c/libc/stdio/current/src/output/fputc.cxx
@@ -0,0 +1,115 @@
+//===========================================================================
+//
+// fputc.cxx
+//
+// ISO Standard I/O character output functions
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors:
+// Date: 2000-04-20
+// Purpose: Provide the fputc() function. Also provides the function
+// versions of putc() and putchar()
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libc_stdio.h> // Configuration header
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common project-wide type definitions
+#include <cyg/infra/cyg_ass.h> // Standard eCos assertion support
+#include <cyg/infra/cyg_trac.h> // Standard eCos tracing support
+#include <stddef.h> // NULL and size_t from compiler
+#include <stdio.h> // header for this file
+#include <errno.h> // error codes
+#include <cyg/libc/stdio/stream.hxx>// Cyg_StdioStream
+
+// FUNCTIONS
+
+externC int
+fputc( int c, FILE *stream ) __THROW
+{
+ Cyg_StdioStream *real_stream = (Cyg_StdioStream *)stream;
+ Cyg_ErrNo err;
+ cyg_uint8 real_c = (cyg_uint8) c;
+
+ CYG_REPORT_FUNCNAMETYPE("fputc", "wrote char %d");
+ CYG_REPORT_FUNCARG2( "c = %d, stream=%08x", c, stream );
+
+ CYG_CHECK_DATA_PTR( stream, "stream is not a valid pointer" );
+
+ err = real_stream->write_byte( real_c );
+
+ if (err)
+ {
+ real_stream->set_error( err );
+ errno = err;
+ CYG_REPORT_RETVAL(EOF);
+ return EOF;
+ } // if
+
+ CYG_REPORT_RETVAL((int)real_c);
+ return (int)real_c;
+
+} // fputc()
+
+
+// Also define putchar() even though it can be a macro.
+// Undefine the macro first though
+#undef putchar
+
+externC int
+putchar( int c ) __THROW
+{
+ return fputc( c, stdout );
+} // putchar()
+
+// Also define putc() even though it can be a macro.
+// Undefine the macro first though
+#undef putc
+
+externC int
+putc( int, FILE * ) __THROW CYGBLD_ATTRIB_WEAK_ALIAS(fputc);
+
+// EOF fputc.cxx
diff --git a/ecos/packages/language/c/libc/stdio/current/src/output/fputs.cxx b/ecos/packages/language/c/libc/stdio/current/src/output/fputs.cxx
new file mode 100644
index 0000000..cff9fea
--- /dev/null
+++ b/ecos/packages/language/c/libc/stdio/current/src/output/fputs.cxx
@@ -0,0 +1,89 @@
+//========================================================================
+//
+// fputs.cxx
+//
+// ANSI Stdio fputs() function
+//
+//========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors:
+// Date: 2000-04-20
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libc_stdio.h> // Configuration header
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common project-wide type definitions
+#include <stddef.h> // NULL and size_t from compiler
+#include <stdio.h> // header for this file
+#include <errno.h> // error codes
+#include <cyg/libc/stdio/stream.hxx>// Cyg_StdioStream
+#include <string.h> // strlen()
+
+// FUNCTIONS
+
+externC int
+fputs( const char *s, FILE *stream ) __THROW
+{
+ Cyg_StdioStream *real_stream = (Cyg_StdioStream *)stream;
+ cyg_ucount32 size = strlen(s);
+ cyg_ucount32 written;
+ Cyg_ErrNo err;
+
+ err = real_stream->write( (cyg_uint8 *)s, size, &written );
+
+ if (err) {
+ real_stream->set_error( err );
+ errno = err;
+ return EOF;
+ } // if
+
+
+ return written;
+
+} // fputs()
+
+// EOF fputs.cxx
diff --git a/ecos/packages/language/c/libc/stdio/current/src/output/fwrite.cxx b/ecos/packages/language/c/libc/stdio/current/src/output/fwrite.cxx
new file mode 100644
index 0000000..f426a08
--- /dev/null
+++ b/ecos/packages/language/c/libc/stdio/current/src/output/fwrite.cxx
@@ -0,0 +1,102 @@
+//========================================================================
+//
+// fwrite.cxx
+//
+// ANSI Stdio fwrite() function
+//
+//========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors:
+// Date: 2000-04-20
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libc_stdio.h> // Configuration header
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common project-wide type definitions
+#include <cyg/infra/cyg_ass.h> // Assertion support
+#include <cyg/infra/cyg_trac.h> // Tracing support
+#include <stddef.h> // NULL and size_t from compiler
+#include <stdio.h> // header for this file
+#include <errno.h> // error codes
+#include <cyg/libc/stdio/stream.hxx>// Cyg_StdioStream
+
+// FUNCTIONS
+
+externC size_t
+fwrite( const void *ptr, size_t object_size, size_t num_objects,
+ FILE *stream ) __THROW
+{
+ Cyg_StdioStream *real_stream = (Cyg_StdioStream *)stream;
+ cyg_ucount32 written;
+ Cyg_ErrNo err;
+
+ CYG_REPORT_FUNCNAMETYPE( "fwrite", "wrote %d objects" );
+ CYG_REPORT_FUNCARG4( "ptr=%08x, object_size=%d, num_objects=%d, "
+ "stream=%08x", ptr, object_size, num_objects,
+ stream );
+
+ if ( (object_size==0) || (num_objects==0) ) {
+ CYG_REPORT_RETVAL(0);
+ return 0;
+ } // if
+
+ err = real_stream->write( (cyg_uint8 *)ptr, num_objects*object_size,
+ &written );
+
+ if (err) {
+ real_stream->set_error( err );
+ errno = err;
+ } // if
+
+ // we return the number of _objects_ written. Simple division is
+ // sufficient as this returns the quotient rather than rounding
+
+ CYG_REPORT_RETVAL( written/object_size );
+ return written/object_size;
+} // fwrite()
+
+// EOF fwrite.cxx
diff --git a/ecos/packages/language/c/libc/stdio/current/src/output/printf.cxx b/ecos/packages/language/c/libc/stdio/current/src/output/printf.cxx
new file mode 100644
index 0000000..5a72e04
--- /dev/null
+++ b/ecos/packages/language/c/libc/stdio/current/src/output/printf.cxx
@@ -0,0 +1,81 @@
+//===========================================================================
+//
+// printf.cxx
+//
+// ANSI Stdio printf() function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors:
+// Date: 2000-04-20
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libc_stdio.h> // Configuration header
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common project-wide type definitions
+#include <stddef.h> // NULL and size_t from compiler
+#include <stdio.h> // header for this file
+#include <limits.h> // INT_MAX
+
+// FUNCTIONS
+
+externC int
+printf( const char *format, ... ) __THROW
+{
+ int rc; // return code
+ va_list ap; // for variable args
+
+ va_start(ap, format); // init specifying last non-var arg
+
+ rc = vfnprintf(stdout, INT_MAX, format, ap);
+
+ va_end(ap); // end var args
+
+ return rc;
+} // printf()
+
+// EOF printf.cxx
diff --git a/ecos/packages/language/c/libc/stdio/current/src/output/vfnprintf.cxx b/ecos/packages/language/c/libc/stdio/current/src/output/vfnprintf.cxx
new file mode 100644
index 0000000..12af5a8
--- /dev/null
+++ b/ecos/packages/language/c/libc/stdio/current/src/output/vfnprintf.cxx
@@ -0,0 +1,994 @@
+//===========================================================================
+//
+// vfnprintf.c
+//
+// I/O routines for vfnprintf() for use with ANSI C library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2009 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors:
+// Date: 2000-04-20
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+//
+// This code is based on original code with the following copyright:
+//
+/*-
+ * Copyright (c) 1990 The Regents of the University of California.
+ * All rights reserved.
+ *
+ * This code is derived from software contributed to Berkeley by
+ * Chris Torek.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the University nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+
+// CONFIGURATION
+
+#include <pkgconf/libc_stdio.h> // Configuration header
+#include <pkgconf/libc_i18n.h> // Configuration header for mb support
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include <stdarg.h> // Variable argument definitions
+#include <stdio.h> // Standard header for all stdio files
+#include <string.h> // memchr() and strlen() functions
+#include <cyg/libc/stdio/stream.hxx> // C library streams
+
+#ifdef CYGSEM_LIBC_STDIO_PRINTF_FLOATING_POINT
+
+# include <float.h> // for DBL_DIG etc. below
+# include <math.h> // for modf()
+# include <sys/ieeefp.h> // Cyg_libm_ieee_double_shape_type
+
+# define MAXFRACT DBL_DIG
+# define MAXEXP DBL_MAX_10_EXP
+
+# define BUF (MAXEXP+MAXFRACT+1) /* + decimal point */
+# define DEFPREC 6
+
+static int
+cvt( double, int, int, char *, int, char *, char * );
+
+#else // ifdef CYGSEM_LIBC_STDIO_PRINTF_FLOATING_POINT
+
+# define BUF 40
+
+#endif // ifdef CYGSEM_LIBC_STDIO_PRINTF_FLOATING_POINT
+
+/*
+ * Actual printf innards.
+ *
+ * This code is large and complicated...
+ */
+
+#ifdef CYGINT_LIBC_I18N_MB_REQUIRED
+typedef int (*mbtowc_fn_type)(wchar_t *, const char *, size_t, int *);
+externC mbtowc_fn_type __get_current_locale_mbtowc_fn();
+#endif
+
+/*
+ * Macros for converting digits to letters and vice versa
+ */
+#define to_digit(c) ((c) - '0')
+#define is_digit(c) ((unsigned)to_digit(c) <= 9)
+#define to_char(n) ((n) + '0')
+
+/*
+ * Flags used during conversion.
+ */
+#define ALT 0x001 /* alternate form */
+#define HEXPREFIX 0x002 /* add 0x or 0X prefix */
+#define LADJUST 0x004 /* left adjustment */
+#define LONGDBL 0x008 /* long double; unimplemented */
+#define LONGINT 0x010 /* long integer */
+#define QUADINT 0x020 /* quad integer */
+#define SHORTINT 0x040 /* short integer */
+#define ZEROPAD 0x080 /* zero (as opposed to blank) pad */
+#define FPT 0x100 /* Floating point number */
+#define SIZET 0x200 /* size_t */
+
+externC int
+vfnprintf ( FILE *stream, size_t n, const char *format, va_list arg) __THROW
+{
+ char *fmt; /* format string */
+ int ch; /* character from fmt */
+ int x, y; /* handy integers (short term usage) */
+ char *cp; /* handy char pointer (short term usage) */
+ int flags; /* flags as above */
+
+#ifdef CYGINT_LIBC_I18N_MB_REQUIRED
+ int state = 0; /* state for mbtowc conversion */
+ mbtowc_fn_type mbtowc_fn;
+#endif
+
+ int ret; /* return value accumulator */
+ int width; /* width from format (%8d), or 0 */
+ int prec; /* precision from format (%.3d), or -1 */
+ char sign; /* sign prefix (' ', '+', '-', or \0) */
+ wchar_t wc;
+
+#define quad_t long long
+#define u_quad_t unsigned long long
+
+ u_quad_t _uquad; /* integer arguments %[diouxX] */
+ enum { OCT, DEC, HEX } base;/* base for [diouxX] conversion */
+ int dprec; /* a copy of prec if [diouxX], 0 otherwise */
+ int fieldsz; /* field size expanded by sign, etc */
+ int realsz; /* field size expanded by dprec */
+ int size; /* size of converted field or string */
+ char *xdigs; /* digits for [xX] conversion */
+#define NIOV 8
+ char buf[BUF]; /* space for %c, %[diouxX], %[eEfgG] */
+ char ox[2]; /* space for 0x hex-prefix */
+#ifdef CYGSEM_LIBC_STDIO_PRINTF_FLOATING_POINT
+ char softsign; /* temporary negative sign for floats */
+ double _double; /* double precision arguments %[eEfgG] */
+ int fpprec; /* `extra' floating precision in [eEfgG] */
+#endif
+
+ /*
+ * Choose PADSIZE to trade efficiency vs. size. If larger printf
+ * fields occur frequently, increase PADSIZE and make the initialisers
+ * below longer.
+ */
+#define PADSIZE 16 /* pad chunk size */
+ static char blanks[PADSIZE] =
+ {' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '};
+ static char zeroes[PADSIZE] =
+ {'0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'};
+
+#define MIN(a, b) ((a) < (b) ? (a) : (b))
+
+ /*
+ * BEWARE, these `goto error' on error, and PAD uses `n'.
+ */
+#ifdef CYGIMP_LIBC_STDIO_C99_SNPRINTF
+#define PRINT(ptr, len) \
+CYG_MACRO_START \
+ if ((size_t)(ret + 1) < n) { \
+ cyg_ucount32 length = MIN( (cyg_ucount32) len, n - ret - 1); \
+ if (((Cyg_OutputStream *)stream)->write( (const cyg_uint8 *)ptr, \
+ length, &length )) \
+ goto error; \
+ } \
+CYG_MACRO_END
+#else
+#define PRINT(ptr, len) \
+CYG_MACRO_START \
+ cyg_ucount32 length = MIN( (cyg_ucount32) len, n - ret - 1); \
+ if (((Cyg_OutputStream *)stream)->write( (const cyg_uint8 *)ptr, \
+ length, &length )) \
+ goto error; \
+ if (length < (cyg_ucount32)len) { \
+ ret += length; \
+ goto done; \
+ } \
+CYG_MACRO_END
+#endif // CYGIMP_LIBC_STDIO_C99_SNPRINTF
+
+#define PAD(howmany, with) \
+CYG_MACRO_START \
+ if ((x = (howmany)) > 0) { \
+ while (x > PADSIZE) { \
+ PRINT(with, PADSIZE); \
+ x -= PADSIZE; \
+ } \
+ PRINT(with, x); \
+ } \
+CYG_MACRO_END
+
+ /*
+ * To extend shorts properly, we need both signed and unsigned
+ * argument extraction methods.
+ */
+
+#define SARG() \
+ (flags&QUADINT ? va_arg(arg, cyg_int64) : \
+ flags&LONGINT ? va_arg(arg, long) : \
+ flags&SHORTINT ? (long)(short)va_arg(arg, int) : \
+ flags&SIZET ? (long)va_arg(arg, size_t) : \
+ (long)va_arg(arg, int))
+#define UARG() \
+ (flags&QUADINT ? va_arg(arg, cyg_uint64) : \
+ flags&LONGINT ? va_arg(arg, unsigned long) : \
+ flags&SHORTINT ? (unsigned long)(unsigned short)va_arg(arg, int) : \
+ flags&SIZET ? va_arg(arg, size_t) : \
+ (unsigned long)va_arg(arg, unsigned int))
+
+
+ xdigs = NULL; // stop compiler whinging
+ fmt = (char *)format;
+ ret = 0;
+#ifdef CYGINT_LIBC_I18N_MB_REQUIRED
+ mbtowc_fn = __get_current_locale_mbtowc_fn();
+#endif
+
+ /*
+ * Scan the format for conversions (`%' character).
+ */
+ for (;;) {
+ cp = (char *)fmt;
+#ifndef CYGINT_LIBC_I18N_MB_REQUIRED
+ while ((x = ((wc = *fmt) != 0))) {
+#else
+ while ((x = mbtowc_fn (&wc, fmt, MB_CUR_MAX, &state)) > 0) {
+#endif
+ fmt += x;
+ if (wc == '%') {
+ fmt--;
+ break;
+ }
+ }
+ if ((y = fmt - cp) != 0) {
+ PRINT(cp, y);
+ ret += y;
+ }
+#ifdef CYGIMP_LIBC_STDIO_C99_SNPRINTF
+ if (x <= 0)
+#else
+ if ((x <= 0) || (ret >= (int)n)) // @@@ this check with n isn't good enough
+#endif
+ goto done;
+ fmt++; /* skip over '%' */
+
+ flags = 0;
+ dprec = 0;
+#ifdef CYGSEM_LIBC_STDIO_PRINTF_FLOATING_POINT
+ fpprec = 0;
+#endif
+ width = 0;
+ prec = -1;
+ sign = '\0';
+
+rflag: ch = *fmt++;
+reswitch: switch (ch) {
+ case ' ':
+ /*
+ * ``If the space and + flags both appear, the space
+ * flag will be ignored.''
+ * -- ANSI X3J11
+ */
+ if (!sign)
+ sign = ' ';
+ goto rflag;
+ case '#':
+ flags |= ALT;
+ goto rflag;
+ case '*':
+ /*
+ * ``A negative field width argument is taken as a
+ * - flag followed by a positive field width.''
+ * -- ANSI X3J11
+ * They don't exclude field widths read from args.
+ */
+ if ((width = va_arg(arg, int)) >= 0)
+ goto rflag;
+ width = -width;
+ /* FALLTHROUGH */
+ case '-':
+ flags |= LADJUST;
+ goto rflag;
+ case '+':
+ sign = '+';
+ goto rflag;
+ case '.':
+ if ((ch = *fmt++) == '*') {
+ x = va_arg(arg, int);
+ prec = x < 0 ? -1 : x;
+ goto rflag;
+ }
+ x = 0;
+ while (is_digit(ch)) {
+ x = 10 * x + to_digit(ch);
+ ch = *fmt++;
+ }
+ prec = x < 0 ? -1 : x;
+ goto reswitch;
+ case '0':
+ /*
+ * ``Note that 0 is taken as a flag, not as the
+ * beginning of a field width.''
+ * -- ANSI X3J11
+ */
+ flags |= ZEROPAD;
+ goto rflag;
+ case '1': case '2': case '3': case '4':
+ case '5': case '6': case '7': case '8': case '9':
+ x = 0;
+ do {
+ x = 10 * x + to_digit(ch);
+ ch = *fmt++;
+ } while (is_digit(ch));
+ width = x;
+ goto reswitch;
+#ifdef CYGSEM_LIBC_STDIO_PRINTF_FLOATING_POINT
+ case 'L':
+ flags |= LONGDBL;
+ goto rflag;
+#endif
+ case 'h':
+ flags |= SHORTINT;
+ goto rflag;
+ case 'l':
+ if (*fmt == 'l') {
+ fmt++;
+ flags |= QUADINT;
+ } else {
+ flags |= LONGINT;
+ }
+ goto rflag;
+ case 'q':
+ flags |= QUADINT;
+ goto rflag;
+ case 'c':
+ *(cp = buf) = va_arg(arg, int);
+ size = 1;
+ sign = '\0';
+ break;
+ case 'D':
+ flags |= LONGINT;
+ /*FALLTHROUGH*/
+ case 'd':
+ case 'i':
+ _uquad = SARG();
+#ifndef _NO_LONGLONG
+ if ((quad_t)_uquad < 0)
+#else
+ if ((long) _uquad < 0)
+#endif
+ {
+
+ _uquad = -_uquad;
+ sign = '-';
+ }
+ base = DEC;
+ goto number;
+
+#ifdef CYGSEM_LIBC_STDIO_PRINTF_FLOATING_POINT
+ case 'e':
+ case 'E':
+ case 'f':
+ case 'g':
+ case 'G':
+ _double = va_arg(arg, double);
+ /*
+ * don't do unrealistic precision; just pad it with
+ * zeroes later, so buffer size stays rational.
+ */
+ if (prec > MAXFRACT) {
+ if ((ch != 'g' && ch != 'G') || (flags&ALT))
+ fpprec = prec - MAXFRACT;
+ prec = MAXFRACT;
+ } else if (prec == -1)
+ prec = DEFPREC;
+ /*
+ * cvt may have to round up before the "start" of
+ * its buffer, i.e. ``intf("%.2f", (double)9.999);'';
+ * if the first character is still NUL, it did.
+ * softsign avoids negative 0 if _double < 0 but
+ * no significant digits will be shown.
+ */
+ cp = buf;
+ *cp = '\0';
+ size = cvt(_double, prec, flags, &softsign, ch,
+ cp, buf + sizeof(buf));
+ if (softsign)
+ sign = '-';
+ if (*cp == '\0')
+ cp++;
+ break;
+#else
+ case 'e':
+ case 'E':
+ case 'f':
+ case 'g':
+ case 'G':
+ // Output nothing at all
+ (void) va_arg(arg, double); // take off arg anyway
+ cp = "";
+ size = 0;
+ sign = '\0';
+ break;
+
+
+#endif // ifdef CYGSEM_LIBC_STDIO_PRINTF_FLOATING_POINT
+
+ case 'n':
+#ifndef _NO_LONGLONG
+ if (flags & QUADINT)
+ *va_arg(arg, quad_t *) = ret;
+ else
+#endif
+ if (flags & LONGINT)
+ *va_arg(arg, long *) = ret;
+ else if (flags & SHORTINT)
+ *va_arg(arg, short *) = ret;
+ else if (flags & SIZET)
+ *va_arg(arg, size_t *) = ret;
+ else
+ *va_arg(arg, int *) = ret;
+ continue; /* no output */
+ case 'O':
+ flags |= LONGINT;
+ /*FALLTHROUGH*/
+ case 'o':
+ _uquad = UARG();
+ base = OCT;
+ goto nosign;
+ case 'p':
+ /*
+ * ``The argument shall be a pointer to void. The
+ * value of the pointer is converted to a sequence
+ * of printable characters, in an implementation-
+ * defined manner.''
+ * -- ANSI X3J11
+ */
+ /* NOSTRICT */
+ _uquad = (unsigned long)va_arg(arg, void *);
+ base = HEX;
+ xdigs = (char *)"0123456789abcdef";
+ flags |= HEXPREFIX;
+ ch = 'x';
+ goto nosign;
+ case 's':
+ if ((cp = va_arg(arg, char *)) == NULL)
+ cp = (char *)"(null)";
+ if (prec >= 0) {
+ /*
+ * can't use strlen; can only look for the
+ * NUL in the first `prec' characters, and
+ * strlen() will go further.
+ */
+ char *p = (char *)memchr(cp, 0, prec);
+
+ if (p != NULL) {
+ size = p - cp;
+ if (size > prec)
+ size = prec;
+ } else
+ size = prec;
+ } else
+ size = strlen(cp);
+ sign = '\0';
+ break;
+ case 'U':
+ flags |= LONGINT;
+ /*FALLTHROUGH*/
+ case 'u':
+ _uquad = UARG();
+ base = DEC;
+ goto nosign;
+ case 'X':
+ xdigs = (char *)"0123456789ABCDEF";
+ goto hex;
+ case 'x':
+ xdigs = (char *)"0123456789abcdef";
+hex: _uquad = UARG();
+ base = HEX;
+ /* leading 0x/X only if non-zero */
+ if (flags & ALT && _uquad != 0)
+ flags |= HEXPREFIX;
+
+ /* unsigned conversions */
+nosign: sign = '\0';
+ /*
+ * ``... diouXx conversions ... if a precision is
+ * specified, the 0 flag will be ignored.''
+ * -- ANSI X3J11
+ */
+number: if ((dprec = prec) >= 0)
+ flags &= ~ZEROPAD;
+
+ /*
+ * ``The result of converting a zero value with an
+ * explicit precision of zero is no characters.''
+ * -- ANSI X3J11
+ */
+ cp = buf + BUF;
+ if (_uquad != 0 || prec != 0) {
+ /*
+ * Unsigned mod is hard, and unsigned mod
+ * by a constant is easier than that by
+ * a variable; hence this switch.
+ */
+ switch (base) {
+ case OCT:
+ do {
+ *--cp = to_char(_uquad & 7);
+ _uquad >>= 3;
+ } while (_uquad);
+ /* handle octal leading 0 */
+ if (flags & ALT && *cp != '0')
+ *--cp = '0';
+ break;
+
+ case DEC:
+ if (!(flags & QUADINT)) {
+ /* many numbers are 1 digit */
+ unsigned long v = (unsigned long)_uquad;
+ while (v >= 10) {
+ /* The following is usually faster than using a modulo */
+ unsigned long next = v / 10;
+ *--cp = to_char(v - (next * 10));
+ v = next;
+ }
+ *--cp = to_char(v);
+ }
+ else {
+ while (_uquad >= 10) {
+ /* The following is usually faster than using a modulo */
+ u_quad_t next = _uquad / 10;
+ *--cp = to_char(_uquad - (next * 10));
+ _uquad = next;
+ }
+ *--cp = to_char(_uquad);
+ }
+ break;
+
+ case HEX:
+ do {
+ *--cp = xdigs[_uquad & 15];
+ _uquad >>= 4;
+ } while (_uquad);
+ break;
+
+ default:
+ cp = (char *)"bug in vfprintf: bad base";
+ size = strlen(cp);
+ goto skipsize;
+ }
+ }
+ size = buf + BUF - cp;
+ skipsize:
+ break;
+ case 'z':
+ flags |= SIZET;
+ goto rflag;
+ default: /* "%?" prints ?, unless ? is NUL */
+ if (ch == '\0')
+ goto done;
+ /* pretend it was %c with argument ch */
+ cp = buf;
+ *cp = ch;
+ size = 1;
+ sign = '\0';
+ break;
+ }
+
+ /*
+ * All reasonable formats wind up here. At this point, `cp'
+ * points to a string which (if not flags&LADJUST) should be
+ * padded out to `width' places. If flags&ZEROPAD, it should
+ * first be prefixed by any sign or other prefix; otherwise,
+ * it should be blank padded before the prefix is emitted.
+ * After any left-hand padding and prefixing, emit zeroes
+ * required by a decimal [diouxX] precision, then print the
+ * string proper, then emit zeroes required by any leftover
+ * floating precision; finally, if LADJUST, pad with blanks.
+ *
+ * Compute actual size, so we know how much to pad.
+ * fieldsz excludes decimal prec; realsz includes it.
+ */
+#ifdef CYGSEM_LIBC_STDIO_PRINTF_FLOATING_POINT
+ fieldsz = size + fpprec;
+#else
+ fieldsz = size;
+#endif
+ if (sign)
+ fieldsz++;
+ else if (flags & HEXPREFIX)
+ fieldsz+= 2;
+ realsz = dprec > fieldsz ? dprec : fieldsz;
+
+ /* right-adjusting blank padding */
+ if ((flags & (LADJUST|ZEROPAD)) == 0) {
+ if (width - realsz > 0) {
+ PAD(width - realsz, blanks);
+ ret += width - realsz;
+ }
+ }
+
+ /* prefix */
+ if (sign) {
+ PRINT(&sign, 1);
+ ret++;
+ } else if (flags & HEXPREFIX) {
+ ox[0] = '0';
+ ox[1] = ch;
+ PRINT(ox, 2);
+ ret += 2;
+ }
+
+ /* right-adjusting zero padding */
+ if ((flags & (LADJUST|ZEROPAD)) == ZEROPAD) {
+ if (width - realsz > 0) {
+ PAD(width - realsz, zeroes);
+ ret += width - realsz;
+ }
+ }
+
+ if (dprec - fieldsz > 0) {
+ /* leading zeroes from decimal precision */
+ PAD(dprec - fieldsz, zeroes);
+ ret += dprec - fieldsz;
+ }
+
+ /* the string or number proper */
+ PRINT(cp, size);
+ ret += size;
+
+#ifdef CYGSEM_LIBC_STDIO_PRINTF_FLOATING_POINT
+ /* trailing f.p. zeroes */
+ PAD(fpprec, zeroes);
+ ret += fpprec;
+#endif
+
+ /* left-adjusting padding (always blank) */
+ if (flags & LADJUST) {
+ if (width - realsz > 0) {
+ PAD(width - realsz, blanks);
+ ret += width - realsz;
+ }
+ }
+
+ }
+done:
+error:
+ return (((Cyg_OutputStream *) stream)->get_error() ? EOF : ret);
+ /* NOTREACHED */
+}
+
+
+#ifdef CYGSEM_LIBC_STDIO_PRINTF_FLOATING_POINT
+
+static char *
+round(double fract, int *exp, char *start, char *end, char ch, char *signp)
+{
+ double tmp;
+
+ if (fract)
+ (void)modf(fract * 10, &tmp);
+ else
+ tmp = to_digit(ch);
+ if (tmp > 4)
+ for (;; --end) {
+ if (*end == '.')
+ --end;
+ if (++*end <= '9')
+ break;
+ *end = '0';
+ if (end == start) {
+ if (exp) { /* e/E; increment exponent */
+ *end = '1';
+ ++*exp;
+ }
+ else { /* f; add extra digit */
+ *--end = '1';
+ --start;
+ }
+ break;
+ }
+ }
+ /* ``"%.3f", (double)-0.0004'' gives you a negative 0. */
+ else if (*signp == '-')
+ for (;; --end) {
+ if (*end == '.')
+ --end;
+ if (*end != '0')
+ break;
+ if (end == start)
+ *signp = 0;
+ }
+ return (start);
+} // round()
+
+
+static char *
+exponent(char *p, int exp, int fmtch)
+{
+ char *t;
+ char expbuf[MAXEXP];
+
+ *p++ = fmtch;
+ if (exp < 0) {
+ exp = -exp;
+ *p++ = '-';
+ }
+ else
+ *p++ = '+';
+ t = expbuf + MAXEXP;
+ if (exp > 9) {
+ do {
+ *--t = to_char(exp % 10);
+ } while ((exp /= 10) > 9);
+ *--t = to_char(exp);
+ for (; t < expbuf + MAXEXP; *p++ = *t++);
+ }
+ else {
+ *p++ = '0';
+ *p++ = to_char(exp);
+ }
+ return (p);
+} // exponent()
+
+
+static int
+cvt(double number, int prec, int flags, char *signp, int fmtch, char *startp,
+ char *endp)
+{
+ Cyg_libm_ieee_double_shape_type ieeefp;
+ char *t = startp;
+
+ ieeefp.value = number;
+ *signp = 0;
+ if ( ieeefp.number.sign ){ // this checks for <0.0 and -0.0
+ number = -number;
+ *signp = '-';
+ }
+
+ if (finite(number)) {
+ char *p;
+ double fract;
+ int dotrim, expcnt, gformat;
+ double integer, tmp;
+
+ dotrim = expcnt = gformat = 0;
+ fract = modf(number, &integer);
+
+ /* get an extra slot for rounding. */
+ t = ++startp;
+
+ /*
+ * get integer portion of number; put into the end of the buffer; the
+ * .01 is added for modf(356.0 / 10, &integer) returning .59999999...
+ */
+ for (p = endp - 1; integer; ++expcnt) {
+ tmp = modf(integer / 10, &integer);
+ *p-- = to_char((int)((tmp + .01) * 10));
+ }
+ switch (fmtch) {
+ case 'f':
+ /* reverse integer into beginning of buffer */
+ if (expcnt)
+ for (; ++p < endp; *t++ = *p);
+ else
+ *t++ = '0';
+ /*
+ * if precision required or alternate flag set, add in a
+ * decimal point.
+ */
+ if (prec || flags&ALT)
+ *t++ = '.';
+ /* if requires more precision and some fraction left */
+ if (fract) {
+ if (prec)
+ do {
+ fract = modf(fract * 10, &tmp);
+ *t++ = to_char((int)tmp);
+ } while (--prec && fract);
+ if (fract)
+ startp = round(fract, (int *)NULL, startp,
+ t - 1, (char)0, signp);
+ }
+ for (; prec--; *t++ = '0');
+ break;
+ case 'e':
+ case 'E':
+eformat: if (expcnt) {
+ *t++ = *++p;
+ if (prec || flags&ALT)
+ *t++ = '.';
+ /* if requires more precision and some integer left */
+ for (; prec && ++p < endp; --prec)
+ *t++ = *p;
+ /*
+ * if done precision and more of the integer component,
+ * round using it; adjust fract so we don't re-round
+ * later.
+ */
+ if (!prec && ++p < endp) {
+ fract = 0;
+ startp = round((double)0, &expcnt, startp,
+ t - 1, *p, signp);
+ }
+ /* adjust expcnt for digit in front of decimal */
+ --expcnt;
+ }
+ /* until first fractional digit, decrement exponent */
+ else if (fract) {
+ /* adjust expcnt for digit in front of decimal */
+ for (expcnt = -1;; --expcnt) {
+ fract = modf(fract * 10, &tmp);
+ if (tmp)
+ break;
+ }
+ *t++ = to_char((int)tmp);
+ if (prec || flags&ALT)
+ *t++ = '.';
+ }
+ else {
+ *t++ = '0';
+ if (prec || flags&ALT)
+ *t++ = '.';
+ }
+ /* if requires more precision and some fraction left */
+ if (fract) {
+ if (prec)
+ do {
+ fract = modf(fract * 10, &tmp);
+ *t++ = to_char((int)tmp);
+ } while (--prec && fract);
+ if (fract)
+ startp = round(fract, &expcnt, startp,
+ t - 1, (char)0, signp);
+ }
+ /* if requires more precision */
+ for (; prec--; *t++ = '0');
+
+ /* unless alternate flag, trim any g/G format trailing 0's */
+ if (gformat && !(flags&ALT)) {
+ while (t > startp && *--t == '0');
+ if (*t == '.')
+ --t;
+ ++t;
+ }
+ t = exponent(t, expcnt, fmtch);
+ break;
+ case 'g':
+ case 'G':
+ /* a precision of 0 is treated as a precision of 1. */
+ if (!prec)
+ ++prec;
+ /*
+ * ``The style used depends on the value converted; style e
+ * will be used only if the exponent resulting from the
+ * conversion is less than -4 or greater than the precision.''
+ * -- ANSI X3J11
+ */
+ if (expcnt > prec || (!expcnt && fract && fract < .0001)) {
+ /*
+ * g/G format counts "significant digits, not digits of
+ * precision; for the e/E format, this just causes an
+ * off-by-one problem, i.e. g/G considers the digit
+ * before the decimal point significant and e/E doesn't
+ * count it as precision.
+ */
+ --prec;
+ fmtch -= 2; /* G->E, g->e */
+ gformat = 1;
+ goto eformat;
+ }
+ /*
+ * reverse integer into beginning of buffer,
+ * note, decrement precision
+ */
+ if (expcnt)
+ for (; ++p < endp; *t++ = *p, --prec);
+ else
+ *t++ = '0';
+ /*
+ * if precision required or alternate flag set, add in a
+ * decimal point. If no digits yet, add in leading 0.
+ */
+ if (prec || flags&ALT) {
+ dotrim = 1;
+ *t++ = '.';
+ }
+ else
+ dotrim = 0;
+ /* if requires more precision and some fraction left */
+ if (fract) {
+ if (prec) {
+ do {
+ fract = modf(fract * 10, &tmp);
+ *t++ = to_char((int)tmp);
+ } while(!tmp);
+ while (--prec && fract) {
+ fract = modf(fract * 10, &tmp);
+ *t++ = to_char((int)tmp);
+ }
+ }
+ if (fract)
+ startp = round(fract, (int *)NULL, startp,
+ t - 1, (char)0, signp);
+ }
+ /* alternate format, adds 0's for precision, else trim 0's */
+ if (flags&ALT)
+ for (; prec--; *t++ = '0');
+ else if (dotrim) {
+ while (t > startp && *--t == '0');
+ if (*t != '.')
+ ++t;
+ }
+ }
+ } else {
+ unsigned case_adj;
+ switch (fmtch) {
+ case 'f':
+ case 'g':
+ case 'e':
+ case_adj = 'a' - 'A';
+ break;
+ default:
+ case_adj = 0;
+ }
+ if (isnan(number)) {
+ *t++ = 'N' + case_adj;
+ *t++ = 'A' + case_adj;
+ *t++ = 'N' + case_adj;
+ } else { // infinite
+ *t++ = 'I' + case_adj;
+ *t++ = 'N' + case_adj;
+ *t++ = 'F' + case_adj;
+ }
+ }
+ return (t - startp);
+} // cvt()
+
+#endif // ifdef CYGSEM_LIBC_STDIO_PRINTF_FLOATING_POINT
+
+// EOF vfnprintf.cxx
diff --git a/ecos/packages/language/c/libc/stdio/current/tests/fileio.c b/ecos/packages/language/c/libc/stdio/current/tests/fileio.c
new file mode 100644
index 0000000..6a1c1ea
--- /dev/null
+++ b/ecos/packages/language/c/libc/stdio/current/tests/fileio.c
@@ -0,0 +1,206 @@
+//=================================================================
+//
+// fileio.c
+//
+// Testcase for C library file I/O functions
+//
+//=================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2003 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): Gary Thomas
+// Contributors:
+// Date: 2003-03-06
+// Description: Contains testcode for C library file I/O functions
+//
+//
+//####DESCRIPTIONEND####
+
+// CONFIGURATION
+
+#include <pkgconf/libc_stdio.h> // Configuration header
+
+// INCLUDES
+
+#include <stdio.h> // All the stdio functions
+#include <errno.h> // errno
+#include <cyg/infra/testcase.h> // Testcase API
+#include <unistd.h>
+#include <cyg/fileio/fileio.h>
+
+#define NUM_TEST_LINES 100
+#define TEST_DIR "/"
+#define TEST_FILE "test.file"
+
+static char errmsg[256];
+
+// FUNCTIONS
+
+static void
+test( CYG_ADDRWORD data )
+{
+ int err, i, lines, len, total_len, expected_len;
+ FILE *fp;
+ char buf[512], *cp;
+
+ err = mount("", TEST_DIR, "ramfs");
+ if (err < 0) {
+ CYG_TEST_FAIL_FINISH("Can't mount '/' file system");
+ }
+
+ err = chdir(TEST_DIR);
+ if (err < 0) {
+ CYG_TEST_FAIL_FINISH("Can't chdir('/')");
+ }
+
+ fp = fopen(TEST_FILE, "w");
+ if (fp == (FILE *)NULL) {
+ CYG_TEST_FAIL_FINISH("Can't create test file");
+ }
+
+ for (i = 0; i < NUM_TEST_LINES; i++) {
+ len = fprintf(fp, "This is line: %4d\n", i+1);
+ if (len != 19) {
+ sprintf(errmsg, "Error writing data - line: %d, len: %d\n", i+1, len);
+ CYG_TEST_FAIL_FINISH(errmsg);
+ }
+ }
+
+ err = fclose(fp);
+ if (err) {
+ CYG_TEST_FAIL_FINISH("Error closingfile");
+ }
+
+ fp = fopen(TEST_FILE, "r");
+ if (fp == (FILE *)NULL) {
+ CYG_TEST_FAIL_FINISH("Can't open test file");
+ }
+
+ lines = 0;
+ total_len = 0;
+ while ((cp = fgets(buf, sizeof(buf), fp)) != NULL) {
+ lines++;
+ total_len += strlen(buf);
+ }
+ sprintf(errmsg, "Read %d lines, %d bytes", lines, total_len);
+ CYG_TEST_INFO(errmsg);
+ expected_len = total_len;
+
+ if (lines != NUM_TEST_LINES) {
+ sprintf(errmsg, "Read %d lines, not %d", lines, NUM_TEST_LINES);
+ CYG_TEST_FAIL_FINISH(errmsg);
+ }
+
+ if (ferror(fp)) {
+ CYG_TEST_FAIL_FINISH("ferror() set");
+ }
+
+ if (!feof(fp)) {
+ CYG_TEST_FAIL_FINISH("feof() not set");
+ }
+
+ err = fclose(fp);
+ if (err) {
+ CYG_TEST_FAIL_FINISH("Error closingfile");
+ }
+
+ fp = fopen(TEST_FILE, "r");
+ if (fp == (FILE *)NULL) {
+ CYG_TEST_FAIL_FINISH("Can't open test file");
+ }
+
+ // This tests whether or not it is possible to detect EOF separate
+ // from an error and recover from it. The buffer size is [probably]
+ // such that fread() will not be able to read the entire file in
+ // 512 byte chunks.
+ lines = 0;
+ total_len = 0;
+ while ((len = fread(buf, sizeof(buf), 1, fp)) == 1) {
+ lines++;
+ total_len += sizeof(buf);
+ }
+ sprintf(errmsg, "Read %d chunks, %d bytes, err: %d, eof: %d",
+ lines, total_len, ferror(fp), feof(fp));
+ CYG_TEST_INFO(errmsg);
+
+ if (ferror(fp)) {
+ CYG_TEST_FAIL_FINISH("ferror() set");
+ }
+
+ if (!feof(fp)) {
+ CYG_TEST_FAIL_FINISH("feof() not set");
+ }
+
+ if (expected_len != total_len) {
+ if (total_len > expected_len) {
+ CYG_TEST_FAIL_FINISH("Too many characters read");
+ }
+ // There should still be more characters left to read,
+ // but less than sizeof(buf)
+ clearerr(fp);
+ rewind(fp);
+ fseek(fp, total_len, SEEK_SET);
+ len = fread(buf, 1, sizeof(buf), fp);
+ if (len != (expected_len - total_len)) {
+ sprintf(errmsg, "Wrong number of residual bytes - read %d, should be %d",
+ len, expected_len-total_len);
+ CYG_TEST_FAIL_FINISH(errmsg);
+ }
+ }
+
+ err = fclose(fp);
+ if (err) {
+ CYG_TEST_FAIL_FINISH("Error closingfile");
+ }
+
+ CYG_TEST_PASS("Stdio file I/O tests completed");
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__
+ " for C library stdio file I/O functions");
+} // test()
+
+int
+main(int argc, char *argv[])
+{
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for C "
+ "library stdio file I/O functions");
+
+ test(0);
+
+ return 0;
+
+} // main()
+
+// EOF fileio.c
diff --git a/ecos/packages/language/c/libc/stdio/current/tests/snprintf.c b/ecos/packages/language/c/libc/stdio/current/tests/snprintf.c
new file mode 100644
index 0000000..e18bbf6
--- /dev/null
+++ b/ecos/packages/language/c/libc/stdio/current/tests/snprintf.c
@@ -0,0 +1,131 @@
+//=================================================================
+//
+// snprintf.c
+//
+// Testcase for C library snprintf() implementation
+//
+//=================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2009 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): Uwe Kindler
+// Contributors:
+// Date: 2009-08-05
+// Description: Contains testcode for C library snprintf() function
+//
+//
+//####DESCRIPTIONEND####
+
+// CONFIGURATION
+
+#include <pkgconf/libc_stdio.h> // Configuration header
+
+// INCLUDES
+
+#include <stdio.h>
+#include <cyg/infra/testcase.h>
+
+static int my_strnlen(const char *s, size_t maxlen)
+{
+ const char *ptr;
+ const char *endptr;
+
+ ptr = s;
+ endptr = s + maxlen;
+ while ((*ptr != '\0') && (ptr != endptr))
+ {
+ ptr++;
+ }
+
+ return (int)(ptr-s);
+} // my_strlen()
+
+static void
+test( CYG_ADDRWORD data )
+{
+ static char x[32];
+ static char y[4];
+ int xret;
+ int yret;
+ int xstrlen;
+ int ystrlen;
+
+ // fill buffer to ensure that there are no zeros in the buffers
+ memset(x, 0xFF, sizeof(x));
+ memset(y, 0xFF, sizeof(y));
+
+ // print into a buffer with sufficient size
+ xret = snprintf(x, sizeof(x), "%d:%d:%d:%d", 1, 2, 3, 4);
+ xstrlen = my_strnlen(x, sizeof(x));
+
+ // print into a buffer that is too small
+ yret = snprintf(y, sizeof(y), "%d:%d:%d:%d", 1, 2, 3, 4);
+ ystrlen = my_strnlen(y, sizeof(y));
+
+ CYG_TEST_PASS_FAIL(xret == xstrlen, "[buffer > strlen] return code");
+
+#ifdef CYGIMP_LIBC_STDIO_C99_SNPRINTF
+ // C99 compliant implementation returns the number of characters that
+ // would have been written had size been sufficiently large,
+ // not counting the terminating nul character
+ CYG_TEST_PASS_FAIL(xret == yret, "[buffer < strlen] return code");
+ CYG_TEST_INFO("C99 compliant implementation of snprintf()");
+#else
+ // default eCos implementation returns number of bytes written into
+ // the buffer without terminating nul character
+ CYG_TEST_PASS_FAIL(yret == ystrlen, "[buffer < strlen] return code");
+ CYG_TEST_INFO("Default implementation of snprintf() (no C99 compliance)");
+#endif
+
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__
+ " for C library snprintf() function return values");
+
+} // test()
+
+int
+main(int argc, char *argv[])
+{
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for C "
+ "library snprintf() function return values");
+ CYG_TEST_INFO("These test return values of snprinf() family of functions");
+
+ test(0);
+
+ return 0;
+} // main()
+
+// EOF snprintf.c
diff --git a/ecos/packages/language/c/libc/stdio/current/tests/sprintf1.c b/ecos/packages/language/c/libc/stdio/current/tests/sprintf1.c
new file mode 100644
index 0000000..ac6ac60
--- /dev/null
+++ b/ecos/packages/language/c/libc/stdio/current/tests/sprintf1.c
@@ -0,0 +1,592 @@
+//=================================================================
+//
+// sprintf1.c
+//
+// Testcase for C library sprintf()
+//
+//=================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): ctarpy, jlarmour
+// Contributors:
+// Date: 2000-04-20
+// Description: Contains testcode for C library sprintf() function
+//
+//
+//####DESCRIPTIONEND####
+
+
+// CONFIGURATION
+
+#include <pkgconf/libc_stdio.h> // Configuration header
+
+
+// INCLUDES
+
+#include <stdio.h>
+#include <cyg/infra/testcase.h>
+
+// FUNCTIONS
+
+// Functions to avoid having to use libc strings
+
+static int my_strlen(const char *s)
+{
+ const char *ptr;
+
+ ptr = s;
+ for ( ptr=s ; *ptr != '\0' ; ptr++ )
+ ;
+
+ return (int)(ptr-s);
+} // my_strlen()
+
+
+static int my_strcmp(const char *s1, const char *s2)
+{
+ for ( ; *s1 == *s2 ; s1++,s2++ )
+ {
+ if ( *s1 == '\0' )
+ break;
+ } // for
+
+ return (*s1 - *s2);
+} // my_strcmp()
+
+
+static char *my_strcpy(char *s1, const char *s2)
+{
+ while (*s2 != '\0') {
+ *(s1++) = *(s2++);
+ }
+ *s1 = '\0';
+
+ return s1;
+} // my_strcpy()
+
+
+
+static void test(CYG_ADDRWORD data)
+{
+ static char x[500];
+ static char y[500];
+ int ret;
+ int tmp;
+ int *ptr;
+
+
+ // Check 1
+ ret = sprintf(x, "%d", 20);
+ CYG_TEST_PASS_FAIL(my_strcmp(x, "20")==0, "%d test");
+ CYG_TEST_PASS_FAIL(ret==my_strlen(x), "%d test return code");
+
+ // Check 2
+ my_strcpy(y, "Pigs noses. Get 'em while there 'ot");
+ ret = sprintf(x, "%s", y);
+ CYG_TEST_PASS_FAIL(my_strcmp(x, y)==0, "%s test");
+ CYG_TEST_PASS_FAIL(ret==my_strlen(x), "%s test return code");
+
+ // Check 3
+ ret = sprintf(x, "||%7d||", 2378);
+ CYG_TEST_PASS_FAIL(my_strcmp(x, "|| 2378||")==0, "padding test");
+ CYG_TEST_PASS_FAIL(ret==my_strlen(x), "padding test return code");
+
+ // Check 4
+ ret = sprintf(x, "%x", 3573);
+ CYG_TEST_PASS_FAIL(my_strcmp(x, "df5")==0, "hex conversion (lowercase)");
+ CYG_TEST_PASS_FAIL(ret==my_strlen(x), "hex conv (lowercase) return code");
+
+ // Check 5
+ ret = sprintf(x, "%X", 3573);
+ CYG_TEST_PASS_FAIL(my_strcmp(x, "DF5")==0, "hex conversion (uppercase)");
+ CYG_TEST_PASS_FAIL(ret==my_strlen(x), "hex conv (upperbase ) return code");
+
+ // Check 6
+ ret = sprintf(x, "%c", 65);
+ CYG_TEST_PASS_FAIL(my_strcmp(x, "A")==0, "%c test");
+ CYG_TEST_PASS_FAIL(ret==my_strlen(x), "%c test return code");
+
+ // Check 7
+ ret = sprintf(x, "%o",4628);
+ CYG_TEST_PASS_FAIL(my_strcmp(x, "11024")==0, "octal conversion");
+ CYG_TEST_PASS_FAIL(ret==my_strlen(x), "octal conversion return code");
+
+ // Check 8
+ ret = sprintf(x, "%u", (unsigned int) 4738);
+ CYG_TEST_PASS_FAIL(my_strcmp(x, "4738")==0, "%u test");
+ CYG_TEST_PASS_FAIL(ret==my_strlen(x), "%u test return code");
+
+ // Check 9
+ ptr = &tmp;
+ ret = sprintf(x, "1234567x%n||", ptr);
+ CYG_TEST_PASS_FAIL(tmp==8, "%n test");
+ CYG_TEST_PASS_FAIL(ret==10, "%n test return code");
+
+ // Check 10
+ ret = sprintf(x, "%%");
+ CYG_TEST_PASS_FAIL(my_strcmp(x, "%")==0, "%% test");
+ CYG_TEST_PASS_FAIL(ret==my_strlen(x), "%% test return code");
+
+ // Check 11
+ ret = sprintf(x, "%ld", (long)1<<30);
+ CYG_TEST_PASS_FAIL(my_strcmp(x, "1073741824")==0, "%ld test");
+ CYG_TEST_PASS_FAIL(ret==my_strlen(x), "%ld test return code");
+
+ // Check 12
+ ret = sprintf(x, "%lu", (unsigned long)(1<<31) + 100);
+ CYG_TEST_PASS_FAIL(my_strcmp(x, "2147483748")==0, "%lu test");
+ CYG_TEST_PASS_FAIL(ret==my_strlen(x), "%lu test return code");
+
+ // Check 13
+ ret = sprintf(x, "%x", 0x789a);
+ CYG_TEST_PASS_FAIL(my_strcmp(x, "789a")==0, "%x test");
+ CYG_TEST_PASS_FAIL(ret==my_strlen(x), "%x test return code");
+
+ // Check 14
+ ret = sprintf(x, "%X", 0x789ab2);
+ CYG_TEST_PASS_FAIL(my_strcmp(x, "789AB2")==0, "%X test");
+ CYG_TEST_PASS_FAIL(ret==my_strlen(x), "%x test return code");
+
+ // Check 15
+ ret = sprintf(x, "%08x", 0xdea2f2);
+ CYG_TEST_PASS_FAIL(my_strcmp(x, "00dea2f2")==0, "%0x test");
+ CYG_TEST_PASS_FAIL(ret==my_strlen(x), "%0x test return code");
+
+ // Check 16
+ ret = sprintf(x, "%09X", 0x12fa1c);
+ CYG_TEST_PASS_FAIL(my_strcmp(x, "00012FA1C")==0, "%0X test");
+ CYG_TEST_PASS_FAIL(ret==my_strlen(x), "%0X test return code");
+
+ // Check 17
+ ptr=&tmp;
+ ret = sprintf(x, "%p", (void *)ptr);
+ // just check _something_ was returned
+ CYG_TEST_PASS_FAIL((ret==my_strlen(x)) && (ret > 0),
+ "%p test return code");
+
+#ifdef CYGSEM_LIBC_STDIO_PRINTF_FLOATING_POINT
+
+ CYG_TEST_INFO("Starting floating point specific tests");
+
+ // Check 18
+ ret = sprintf(x, "%f", 2.5);
+ my_strcpy( y, "2.500000" );
+ CYG_TEST_PASS_FAIL(my_strcmp(x, y)==0, "simple %f test #1");
+ CYG_TEST_PASS_FAIL(ret == my_strlen(y), "simple %f test #1 return code");
+
+ // Check 19
+ ret = sprintf(x, "hello %f world", 1.234);
+ my_strcpy( y, "hello 1.234000 world");
+ CYG_TEST_PASS_FAIL(my_strcmp(x, y)==0, "simple %f test #2");
+ CYG_TEST_PASS_FAIL(ret == my_strlen(y), "simple %f test #2 return code");
+
+ // Check 20
+ ret = sprintf(x, "hello%fworld", 2.3456781);
+ my_strcpy( y, "hello2.345678world");
+ CYG_TEST_PASS_FAIL(my_strcmp(x, y)==0, "simple %f test #3");
+ CYG_TEST_PASS_FAIL(ret == my_strlen(y), "simple %f test #3 return code");
+
+ // Check 21
+ ret = sprintf(x, "%s%f%d%s", "testing", -0.591, 3, "123");
+ my_strcpy( y, "testing-0.5910003123");
+ CYG_TEST_PASS_FAIL(my_strcmp(x, y)==0, "%f mixed with others");
+ CYG_TEST_PASS_FAIL(ret == my_strlen(y),"%f mixed with others return code");
+
+ // Check 22
+ ret = sprintf(x, "%s%f%d%s", "testing", -0.591, 3, "123");
+ my_strcpy( y, "testing-0.5910003123");
+ CYG_TEST_PASS_FAIL(my_strcmp(x, y)==0, "%f mixed with others");
+ CYG_TEST_PASS_FAIL(ret == my_strlen(y),"%f mixed with others return code");
+
+ // Check 23
+ ret = sprintf(x, "hello%fworld", 2.3456786);
+ my_strcpy( y, "hello2.345679world");
+ CYG_TEST_PASS_FAIL(my_strcmp(x, y)==0, "rounding test #1");
+ CYG_TEST_PASS_FAIL(ret == my_strlen(y), "rounding test #1 return code");
+
+ // Check 24
+ ret = sprintf(x, "hello%fworld", -2.3456786);
+ my_strcpy( y, "hello-2.345679world");
+ CYG_TEST_PASS_FAIL(my_strcmp(x, y)==0, "rounding test #2");
+ CYG_TEST_PASS_FAIL(ret == my_strlen(y), "rounding test #2 return code");
+
+ // Check 25
+ ret = sprintf(x, "hello%+fworld", -6.54321);
+ my_strcpy( y, "hello-6.543210world");
+ CYG_TEST_PASS_FAIL(my_strcmp(x, y)==0, "+ modifier #1");
+ CYG_TEST_PASS_FAIL(ret == my_strlen(y), "+ modifier #1 return code");
+
+ // Check 26
+ ret = sprintf(x, "hello%+fworld", 6.54321);
+ my_strcpy( y, "hello+6.543210world");
+ CYG_TEST_PASS_FAIL(my_strcmp(x, y)==0, "+ modifier #2");
+ CYG_TEST_PASS_FAIL(ret == my_strlen(y), "+ modifier #2 return code");
+
+ // Check 27
+ ret = sprintf(x, "hello%5fworld", 6.5);
+ my_strcpy( y, "hello6.500000world");
+ CYG_TEST_PASS_FAIL(my_strcmp(x, y)==0, "width modifier #1");
+ CYG_TEST_PASS_FAIL(ret == my_strlen(y), "width modifier #1 return code");
+
+ // Check 28
+ ret = sprintf(x, "hello%2fworld", 4.3);
+ my_strcpy( y, "hello4.300000world");
+ CYG_TEST_PASS_FAIL(my_strcmp(x, y)==0, "width modifier #2");
+ CYG_TEST_PASS_FAIL(ret == my_strlen(y), "width modifier #2 return code");
+
+ // Check 29
+ ret = sprintf(x, "hello%2.1fworld", 5.6);
+ my_strcpy( y, "hello5.6world");
+ CYG_TEST_PASS_FAIL(my_strcmp(x, y)==0, "width and precision modifier #1");
+ CYG_TEST_PASS_FAIL(ret == my_strlen(y),
+ "width and precision modifier #1 return code");
+
+ // Check 30
+ ret = sprintf(x, "hello%5.1fworld", 6.7);
+ my_strcpy( y, "hello 6.7world");
+ CYG_TEST_PASS_FAIL(my_strcmp(x, y)==0, "width and precision modifier #2");
+ CYG_TEST_PASS_FAIL(ret == my_strlen(y),
+ "width and precision modifier #2 return code");
+
+ // Check 31
+ ret = sprintf(x, "hello%3.1fworld", 7.8);
+ my_strcpy( y, "hello7.8world");
+ CYG_TEST_PASS_FAIL(my_strcmp(x, y)==0, "width and precision modifier #3");
+ CYG_TEST_PASS_FAIL(ret == my_strlen(y),
+ "width and precision modifier #3 return code");
+
+ // Check 32
+ ret = sprintf(x, "hello%3.2fworld", 7.8);
+ my_strcpy( y, "hello7.80world");
+ CYG_TEST_PASS_FAIL(my_strcmp(x, y)==0, "width and precision modifier #4");
+ CYG_TEST_PASS_FAIL(ret == my_strlen(y),
+ "width and precision modifier #4 return code");
+
+ // Check 33
+ ret = sprintf(x, "hello%05.1fworld", 6.5);
+ my_strcpy( y, "hello006.5world");
+ CYG_TEST_PASS_FAIL(my_strcmp(x, y)==0, "0 modifier #1");
+ CYG_TEST_PASS_FAIL(ret == my_strlen(y), "0 modifier #1 return code");
+
+ // Check 34
+ ret = sprintf(x, "hello%03.0fworld", 6.2);
+ my_strcpy( y, "hello006world");
+ CYG_TEST_PASS_FAIL(my_strcmp(x, y)==0, "0 modifier #2");
+ CYG_TEST_PASS_FAIL(ret == my_strlen(y), "0 modifier #2 return code");
+
+ // Check 35
+ ret = sprintf(x, "hello%05.*fworld",2, 7.5);
+ my_strcpy( y, "hello07.50world");
+ CYG_TEST_PASS_FAIL(my_strcmp(x, y)==0, "0 modifier plus *");
+ CYG_TEST_PASS_FAIL(ret == my_strlen(y),
+ "0 modifier plus * return code");
+
+ // Check 36
+ ret = sprintf(x, "hello%03.1fworld",-1.232);
+ my_strcpy( y, "hello-1.2world");
+ CYG_TEST_PASS_FAIL(my_strcmp(x, y)==0, "-ve number with 0 modifier #1");
+ CYG_TEST_PASS_FAIL(ret == my_strlen(y),
+ "-ve number with 0 modifier #1 return code");
+
+ // Check 37
+ ret = sprintf(x, "hello%04.1fworld",-1.232);
+ my_strcpy( y, "hello-1.2world");
+ CYG_TEST_PASS_FAIL(my_strcmp(x, y)==0, "-ve number with 0 modifier #2");
+ CYG_TEST_PASS_FAIL(ret == my_strlen(y),
+ "-ve number with 0 modifier #2 return code");
+
+ // Check 38
+ ret = sprintf(x, "hello%05.1fworld",-1.232);
+ my_strcpy( y, "hello-01.2world");
+ CYG_TEST_PASS_FAIL(my_strcmp(x, y)==0, "-ve number with 0 modifier #3");
+ CYG_TEST_PASS_FAIL(ret == my_strlen(y),
+ "-ve number with 0 modifier #3 return code");
+
+ // Check 39
+ ret = sprintf(x, "hello%fworld",0.0);
+ my_strcpy( y, "hello0.000000world");
+ CYG_TEST_PASS_FAIL(my_strcmp(x, y)==0, "0.0 test #1");
+ CYG_TEST_PASS_FAIL(ret == my_strlen(y), "0.0 test #1 return code");
+
+ // Check 40
+ ret = sprintf(x, "hello%1.0fworld",0.0);
+ my_strcpy( y, "hello0world");
+ CYG_TEST_PASS_FAIL(my_strcmp(x, y)==0, "0.0 test #2");
+ CYG_TEST_PASS_FAIL(ret == my_strlen(y), "0.0 test #2 return code");
+
+ // Check 41
+ ret = sprintf(x, "hello%1.1fworld",0.0);
+ my_strcpy( y, "hello0.0world");
+ CYG_TEST_PASS_FAIL(my_strcmp(x, y)==0, "0.0 test #3");
+ CYG_TEST_PASS_FAIL(ret == my_strlen(y), "0.0 test #3 return code");
+
+ // Check 42
+ ret = sprintf(x, "hello%5.1fworld",0.0);
+ my_strcpy( y, "hello 0.0world");
+ CYG_TEST_PASS_FAIL(my_strcmp(x, y)==0, "0.0 test #4");
+ CYG_TEST_PASS_FAIL(ret == my_strlen(y), "0.0 test #4 return code");
+
+ // Check 43
+ ret = sprintf(x, "hello%fworld",-0.0);
+ my_strcpy( y, "hello-0.000000world");
+ CYG_TEST_PASS_FAIL(my_strcmp(x, y)==0, "-0.0 test #1");
+ CYG_TEST_PASS_FAIL(ret == my_strlen(y), "-0.0 test #1 return code");
+
+ // Check 44
+ ret = sprintf(x, "hello%fworld",0.234);
+ my_strcpy( y, "hello0.234000world");
+ CYG_TEST_PASS_FAIL(my_strcmp(x, y)==0, "number less than 1 #1");
+ CYG_TEST_PASS_FAIL(ret == my_strlen(y),
+ "number less than 1 #1 return code");
+
+ // Check 45
+ ret = sprintf(x, "hello%02fworld",-0.234);
+ my_strcpy( y, "hello-0.234000world");
+ CYG_TEST_PASS_FAIL(my_strcmp(x, y)==0, "number less than 1 #2");
+ CYG_TEST_PASS_FAIL(ret == my_strlen(y),
+ "number less than 1 #2 return code");
+
+ // Check 46
+ ret = sprintf(x, "hello%02.2fworld",-0.234);
+ my_strcpy( y, "hello-0.23world");
+ CYG_TEST_PASS_FAIL(my_strcmp(x, y)==0, "number less than 1 #3");
+ CYG_TEST_PASS_FAIL(ret == my_strlen(y),
+ "number less than 1 #3 return code");
+
+ // Check 47
+ ret = sprintf(x, "hello%06.2fworld",-0.234);
+ my_strcpy( y, "hello-00.23world");
+ CYG_TEST_PASS_FAIL(my_strcmp(x, y)==0, "number less than 1 #4");
+ CYG_TEST_PASS_FAIL(ret == my_strlen(y),
+ "number less than 1 #4 return code");
+
+ // Check 48
+ ret = sprintf(x, "hello%-6.2fworld",2.345);
+ my_strcpy( y, "hello2.35 world");
+ CYG_TEST_PASS_FAIL(my_strcmp(x, y)==0, "left justification #1");
+ CYG_TEST_PASS_FAIL(ret == my_strlen(y),
+ "left justification #1 return code");
+
+ // Check 49
+ ret = sprintf(x, "hello%-6.2fworld",2.345);
+ my_strcpy( y, "hello2.35 world");
+ CYG_TEST_PASS_FAIL(my_strcmp(x, y)==0, "left justification #2");
+ CYG_TEST_PASS_FAIL(ret == my_strlen(y),
+ "left justification #2 return code");
+
+ // Check 50
+ ret = sprintf(x, "hello%-3.2fworld",2.345);
+ my_strcpy( y, "hello2.35world");
+ CYG_TEST_PASS_FAIL(my_strcmp(x, y)==0, "left justification #3");
+ CYG_TEST_PASS_FAIL(ret == my_strlen(y),
+ "left justification #3 return code");
+
+ // Check 51
+ ret = sprintf(x, "hello%#1.0fworld",2.12);
+ my_strcpy( y, "hello2.world");
+ CYG_TEST_PASS_FAIL(my_strcmp(x, y)==0, "# modifier #1");
+ CYG_TEST_PASS_FAIL(ret == my_strlen(y), "# modifier #1 return code");
+
+ // Check 52
+ ret = sprintf(x, "hello%#1.2fworld",2.0);
+ my_strcpy( y, "hello2.00world");
+ CYG_TEST_PASS_FAIL(my_strcmp(x, y)==0, "# modifier #2");
+ CYG_TEST_PASS_FAIL(ret == my_strlen(y), "# modifier #2 return code");
+
+ // Check 53
+ ret = sprintf(x, "hello%eworld",2.3456);
+ my_strcpy( y, "hello2.345600e+00world");
+ CYG_TEST_PASS_FAIL(my_strcmp(x, y)==0, "%e #1");
+ CYG_TEST_PASS_FAIL(ret == my_strlen(y), "%e #1 return code");
+
+ // Check 54
+ ret = sprintf(x, "hello%4.3eworld",-2.3456e-1);
+ my_strcpy( y, "hello-2.346e-01world");
+ CYG_TEST_PASS_FAIL(my_strcmp(x, y)==0, "%e #2");
+ CYG_TEST_PASS_FAIL(ret == my_strlen(y), "%e #2 return code");
+
+ // Check 55
+ ret = sprintf(x, "hello%4.2eworld",2.56e2);
+ my_strcpy( y, "hello2.56e+02world");
+ CYG_TEST_PASS_FAIL(my_strcmp(x, y)==0, "%e #3");
+ CYG_TEST_PASS_FAIL(ret == my_strlen(y), "%e #3 return code");
+
+ // Check 56
+ ret = sprintf(x, "hello%09.2eworld",2.56e2);
+ my_strcpy( y, "hello02.56e+02world");
+ CYG_TEST_PASS_FAIL(my_strcmp(x, y)==0, "%e #4");
+ CYG_TEST_PASS_FAIL(ret == my_strlen(y), "%e #4 return code");
+
+ // Check 57
+ ret = sprintf(x, "hello%09.2Eworld",4.23e19);
+ my_strcpy( y, "hello04.23E+19world");
+ CYG_TEST_PASS_FAIL(my_strcmp(x, y)==0, "%e #5");
+ CYG_TEST_PASS_FAIL(ret == my_strlen(y), "%e #5 return code");
+
+ // Check 58
+ ret = sprintf(x, "hello%gworld",4.0);
+ my_strcpy( y, "hello4world");
+ CYG_TEST_PASS_FAIL(my_strcmp(x, y)==0, "%g #1");
+ CYG_TEST_PASS_FAIL(ret == my_strlen(y), "%g #1 return code");
+
+ // Check 59
+ ret = sprintf(x, "hello%gworld",4.56);
+ my_strcpy( y, "hello4.56world");
+ CYG_TEST_PASS_FAIL(my_strcmp(x, y)==0, "%g #2");
+ CYG_TEST_PASS_FAIL(ret == my_strlen(y), "%g #2 return code");
+
+ // Check 60
+ ret = sprintf(x, "hello%5.2gworld",4.56);
+ my_strcpy( y, "hello 4.6world");
+ CYG_TEST_PASS_FAIL(my_strcmp(x, y)==0, "%g #3");
+ CYG_TEST_PASS_FAIL(ret == my_strlen(y), "%g #3 return code");
+
+ // Check 61
+ ret = sprintf(x, "hello%gworld",0.002);
+ my_strcpy( y, "hello0.002world");
+ CYG_TEST_PASS_FAIL(my_strcmp(x, y)==0, "%g #4");
+ CYG_TEST_PASS_FAIL(ret == my_strlen(y), "%g #4 return code");
+
+ // Check 62
+ ret = sprintf(x, "hello%06.1gworld",0.0026);
+ my_strcpy( y, "hello00.003world");
+ CYG_TEST_PASS_FAIL(my_strcmp(x, y)==0, "%g #5");
+ CYG_TEST_PASS_FAIL(ret == my_strlen(y), "%g #5 return code");
+
+ // Check 63
+ ret = sprintf(x, "hello%06gworld",0.000026);
+ my_strcpy( y, "hello2.6e-05world");
+ CYG_TEST_PASS_FAIL(my_strcmp(x, y)==0, "%g #5");
+ CYG_TEST_PASS_FAIL(ret == my_strlen(y), "%g #5 return code");
+
+ // Check 64
+ ret = sprintf(x, "hello%06Gworld",0.000037);
+ my_strcpy( y, "hello3.7E-05world");
+ CYG_TEST_PASS_FAIL(my_strcmp(x, y)==0, "%g #6");
+ CYG_TEST_PASS_FAIL(ret == my_strlen(y), "%g #6 return code");
+
+ // Check 65
+ ret = sprintf(x, "hello%08Gworld",-123456.0);
+ my_strcpy( y, "hello-0123456world");
+ CYG_TEST_PASS_FAIL(my_strcmp(x, y)==0, "%g #7");
+ CYG_TEST_PASS_FAIL(ret == my_strlen(y), "%g #7 return code");
+
+ // Check 66
+ ret = sprintf(x, "hello%07gworld",-1234567.0);
+ my_strcpy( y, "hello-1.23457e+06world");
+ CYG_TEST_PASS_FAIL(my_strcmp(x, y)==0, "%g #8");
+ CYG_TEST_PASS_FAIL(ret == my_strlen(y), "%g #8 return code");
+
+ // Check 67
+ ret = sprintf(x, "hello%013Gworld",-1234567.0);
+ my_strcpy( y, "hello-01.23457E+06world");
+ CYG_TEST_PASS_FAIL(my_strcmp(x, y)==0, "%g #9");
+ CYG_TEST_PASS_FAIL(ret == my_strlen(y), "%g #9 return code");
+
+
+#else
+ CYG_TEST_PASS("Floating point tests skipped - not configured");
+#endif // ifdef CYGSEM_LIBC_STDIO_PRINTF_FLOATING_POINT
+
+ // Long string tests
+ ret = sprintf(x, "This is a very long string so I hope this works as "
+ "otherwise I would be very, very, sad. The cat sat on the "
+ "hat, and the mat sat on the rat. Quick brown fax, etc.etc. "
+ "blah, blah and all that jazz. Isn't he finished yet? My "
+ "old man's a dustman, why do I have to think up this "
+ "drivel, isn't that what summer students are for, if "
+ "anything that seems thinking up mindless drivel seems to "
+ "be their occupation in life. Yoof of today, eh? What, "
+ "what? %s So there.",
+ "And this is a middly bit.");
+ my_strcpy(y, "This is a very long string so I hope this works as "
+ "otherwise I would be very, very, sad. The cat sat on the "
+ "hat, and the mat sat on the rat. Quick brown fax, etc.etc. "
+ "blah, blah and all that jazz. Isn't he finished yet? My "
+ "old man's a dustman, why do I have to think up this "
+ "drivel, isn't that what summer students are for, if "
+ "anything that seems thinking up mindless drivel seems to "
+ "be their occupation in life. Yoof of today, eh? What, "
+ "what? And this is a middly bit. So there.");
+ CYG_TEST_PASS_FAIL(my_strcmp(x, y)==0, "long (480 char) string output #1");
+ CYG_TEST_PASS_FAIL(ret == my_strlen(y),
+ "long (480 char) string output #1 return code");
+
+ ret = sprintf(x, "Boo! This %s So there.",
+ "is a very long string so I hope this works as "
+ "otherwise I would be very, very, sad. The cat sat on the "
+ "hat, and the mat sat on the rat. Quick brown fax, etc.etc. "
+ "blah, blah and all that jazz. Isn't he finished yet? My "
+ "old man's a dustman, why do I have to think up this "
+ "drivel, isn't that what summer students are for, if "
+ "anything that seems thinking up mindless drivel seems to "
+ "be their occupation in life. Yoof of today, eh? What, "
+ "what? And this is a middly bit.");
+ my_strcpy(y, "Boo! This is a very long string so I hope this works as "
+ "otherwise I would be very, very, sad. The cat sat on the "
+ "hat, and the mat sat on the rat. Quick brown fax, etc.etc. "
+ "blah, blah and all that jazz. Isn't he finished yet? My "
+ "old man's a dustman, why do I have to think up this "
+ "drivel, isn't that what summer students are for, if "
+ "anything that seems thinking up mindless drivel seems to "
+ "be their occupation in life. Yoof of today, eh? What, "
+ "what? And this is a middly bit. So there.");
+ CYG_TEST_PASS_FAIL(my_strcmp(x, y)==0, "long (485 char) string output #2");
+ CYG_TEST_PASS_FAIL(ret == my_strlen(y),
+ "long (485 char) string output #2 return code");
+
+
+
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for C library "
+ "sprintf() function");
+
+} // test()
+
+int
+main(int argc, char *argv[])
+{
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for C library "
+ "sprintf() function");
+ CYG_TEST_INFO("These test individual features separately");
+
+ test(0);
+
+ return 0;
+} // main()
+
+// EOF sprintf1.c
diff --git a/ecos/packages/language/c/libc/stdio/current/tests/sprintf2.c b/ecos/packages/language/c/libc/stdio/current/tests/sprintf2.c
new file mode 100644
index 0000000..b1cfdf8
--- /dev/null
+++ b/ecos/packages/language/c/libc/stdio/current/tests/sprintf2.c
@@ -0,0 +1,207 @@
+//=================================================================
+//
+// sprintf2.c
+//
+// Testcase for C library sprintf()
+//
+//=================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): ctarpy, jlarmour
+// Contributors:
+// Date: 2000-04-20
+// Description: Contains testcode for C library sprintf() function
+//
+//
+//####DESCRIPTIONEND####
+
+// CONFIGURATION
+
+#include <pkgconf/libc_stdio.h> // Configuration header
+
+// INCLUDES
+
+#include <stdio.h>
+#include <cyg/infra/testcase.h>
+
+// FUNCTIONS
+
+// Functions to avoid having to use libc strings
+
+static int
+my_strlen(const char *s)
+{
+ const char *ptr;
+
+ ptr = s;
+ for ( ptr=s ; *ptr != '\0' ; ptr++ )
+ ;
+
+ return (int)(ptr-s);
+} // my_strlen()
+
+
+static int
+my_strcmp(const char *s1, const char *s2)
+{
+ for ( ; *s1 == *s2 ; s1++,s2++ )
+ {
+ if ( *s1 == '\0' )
+ break;
+ } // for
+
+ return (*s1 - *s2);
+} // my_strcmp()
+
+
+static char *
+my_strcpy(char *s1, const char *s2)
+{
+ while (*s2 != '\0') {
+ *(s1++) = *(s2++);
+ }
+ *s1 = '\0';
+
+ return s1;
+} // my_strcpy()
+
+
+
+static void
+test( CYG_ADDRWORD data )
+{
+ static char x[200];
+ static char y[200];
+ static char z[200];
+ int ret;
+ int tmp;
+ int *ptr;
+
+ // Check 1
+ my_strcpy(x, "I'm afraid the shield generator");
+ ptr = &tmp;
+ ret = sprintf(y, "%s%n will be quite operational - %5d%%%c%05X", x,
+ ptr, 13, '5', 0x89ab);
+ my_strcpy( z, "I'm afraid the shield generator will be "
+ "quite operational - 13%5089AB" );
+ CYG_TEST_PASS_FAIL(my_strcmp(y,z) == 0, "%s%n%d%%%c%0X test");
+
+ CYG_TEST_PASS_FAIL(ret == my_strlen(z),
+ "%s%n%d%%%c%0X test return code" );
+
+ CYG_TEST_PASS_FAIL(tmp==31, "%n test");
+
+ // Check 2
+ ret = sprintf(y, "|%5d|%10s|%03d|%c|%o|", 2, "times", 6, '=', 10 );
+ my_strcpy(z, "| 2| times|006|=|12|");
+
+ CYG_TEST_PASS_FAIL(my_strcmp(y,z) == 0, "|%5d|%10s|%03d|%c|%o| test");
+
+ CYG_TEST_PASS_FAIL(ret == my_strlen(z),
+ "|%5d|%10s|%03d|%c|%o| test return code" );
+
+ // Check 3
+ ret = snprintf(y, 19, "print up to here >< and not this bit" );
+ my_strcpy(z, "print up to here >");
+ CYG_TEST_PASS_FAIL(my_strcmp(y,z) == 0, "simple snprintf test #1");
+#ifdef CYGIMP_LIBC_STDIO_C99_SNPRINTF
+ CYG_TEST_PASS_FAIL(ret > my_strlen(z),
+#else
+ CYG_TEST_PASS_FAIL(ret == my_strlen(z),
+#endif
+ "simple snprintf test #1 return code" );
+
+ // Check 4
+ ret = snprintf(y, 31, "print a bit of this number: %05d nyer", 1234);
+ my_strcpy(z, "print a bit of this number: 01");
+ CYG_TEST_PASS_FAIL(my_strcmp(y,z) == 0, "simple snprintf test #2");
+#ifdef CYGIMP_LIBC_STDIO_C99_SNPRINTF
+ CYG_TEST_PASS_FAIL(ret > my_strlen(z),
+#else
+ CYG_TEST_PASS_FAIL(ret == my_strlen(z),
+#endif
+ "simple snprintf test #2 return code" );
+
+#ifdef CYGSEM_LIBC_STDIO_PRINTF_FLOATING_POINT
+
+ CYG_TEST_INFO("Starting floating point specific tests");
+
+ // Check 5
+ ret = sprintf(y, "|%5f|%10s|%03d|%c|%+-5.2G|%010.3G|",
+ 2.0, "times", 6, '=', 12.0, -2.3451e-6 );
+ my_strcpy(z, "|2.000000| times|006|=|+12 |-02.35E-06|");
+
+ CYG_TEST_PASS_FAIL(my_strcmp(y,z) == 0,
+ "|%5f|%10s|%03d|%c|%+-5.2G|%010.3G| test");
+
+ CYG_TEST_PASS_FAIL(ret == my_strlen(z),
+ "|%5f|%10s|%03d|%c|%+-5.2G|%010.3G| test "
+ "return code" );
+
+ // Check 6
+ ret = snprintf(y, 20, "bit of this: %g double", 6.431e8);
+ my_strcpy(z, "bit of this: 6.431e");
+ CYG_TEST_PASS_FAIL(my_strcmp(y,z) == 0,
+ "snprintf double test #1");
+
+#ifdef CYGIMP_LIBC_STDIO_C99_SNPRINTF
+ CYG_TEST_PASS_FAIL(ret > my_strlen(z),
+#else
+ CYG_TEST_PASS_FAIL(ret == my_strlen(z),
+#endif
+ "snprintf double test #1 return code");
+
+#endif // ifdef CYGSEM_LIBC_STDIO_PRINTF_FLOATING_POINT
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__
+ " for C library sprintf() function");
+
+} // test()
+
+int
+main(int argc, char *argv[])
+{
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for C "
+ "library sprintf() function");
+ CYG_TEST_INFO("These test combinations of sprintf() features");
+
+ test(0);
+
+ return 0;
+} // main()
+
+// EOF sprintf2.c
diff --git a/ecos/packages/language/c/libc/stdio/current/tests/sscanf.c b/ecos/packages/language/c/libc/stdio/current/tests/sscanf.c
new file mode 100644
index 0000000..773a322
--- /dev/null
+++ b/ecos/packages/language/c/libc/stdio/current/tests/sscanf.c
@@ -0,0 +1,315 @@
+//=================================================================
+//
+// sscanf.c
+//
+// Testcase for C library sscanf()
+//
+//=================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): ctarpy, jlarmour
+// Contributors:
+// Date: 2000-04-20
+// Description: Contains testcode for C library sscanf() function
+//
+//
+//####DESCRIPTIONEND####
+
+// CONFIGURATION
+
+#include <pkgconf/libc_stdio.h> // Configuration header
+
+// INCLUDES
+
+#include <stdio.h>
+#include <cyg/infra/testcase.h>
+
+// HOW TO START TESTS
+
+#if defined(CYGFUN_LIBC_STDIO_ungetc)
+
+# define START_TEST( test ) test(0)
+
+#else
+
+# define START_TEST( test ) CYG_EMPTY_STATEMENT
+
+#endif
+
+
+// FUNCTIONS
+
+#if defined(CYGFUN_LIBC_STDIO_ungetc)
+
+// Functions to avoid having to use libc strings
+
+static int
+my_strcmp(const char *s1, const char *s2)
+{
+ for ( ; *s1 == *s2 ; s1++,s2++ )
+ {
+ if ( *s1 == '\0')
+ break;
+ } // for
+
+ return (*s1 - *s2);
+} // my_strcmp()
+
+
+static char *
+my_strcpy(char *s1, const char *s2)
+{
+ while (*s2 != '\0') {
+ *(s1++) = *(s2++);
+ }
+ *s1 = '\0';
+
+ return s1;
+} // my_strcpy()
+
+
+static void
+test( CYG_ADDRWORD data )
+{
+ static char x[300];
+ static char y[300];
+ char z[20];
+ int ret;
+ int int_test, int_test2, int_test3, int_test4;
+
+ // Check 1
+ my_strcpy(x, "20");
+ ret = sscanf(x, "%d", &int_test);
+ CYG_TEST_PASS_FAIL(int_test==20, "%d test");
+ CYG_TEST_PASS_FAIL(ret == 1, "%d test return code");
+
+ // Check 2
+ my_strcpy(y, "PigsNoses");
+ ret = sscanf(y, "%s", x);
+ CYG_TEST_PASS_FAIL(my_strcmp(x, y)==0, "%s test");
+ CYG_TEST_PASS_FAIL(ret == 1, "%s test return code");
+
+ // Check 3
+ my_strcpy(x, "FE8C");
+ ret = sscanf(x, "%X", &int_test);
+ CYG_TEST_PASS_FAIL(int_test == 65164, "hex read leading zeroes");
+ CYG_TEST_PASS_FAIL(ret == 1, "hex read leading zeroes return code");
+
+ // Check 4
+ my_strcpy(x, "000053Ba");
+ ret = sscanf(x, "%x", &int_test);
+ CYG_TEST_PASS_FAIL(int_test == 21434, "hex read leading zeroes");
+ CYG_TEST_PASS_FAIL(ret == 1, "hex read leading zeros return code");
+
+ // Check 5
+ my_strcpy(x, "53Ba");
+ ret = sscanf(x, "%3x", &int_test);
+ CYG_TEST_PASS_FAIL(int_test == 1339, "hex read constrained width");
+ CYG_TEST_PASS_FAIL(ret == 1, "hex read constrained width return code");
+
+ // Check 6
+ my_strcpy(x, "get the first char test");
+ ret = sscanf(x, "%c", &y[0]);
+ CYG_TEST_PASS_FAIL(y[0] == 'g', "%c test");
+ CYG_TEST_PASS_FAIL(ret == 1, "%c test return code");
+
+ // Check 7
+ my_strcpy(x, "-5");
+ ret = sscanf(x, "%d", &int_test);
+ CYG_TEST_PASS_FAIL(int_test == -5, "negative integer");
+ CYG_TEST_PASS_FAIL(ret == 1, "negative integer return code");
+
+ // Check 8
+ my_strcpy(x, "53");
+ ret = sscanf(x, "%o", &int_test);
+ CYG_TEST_PASS_FAIL(int_test == 43, "%o test");
+ CYG_TEST_PASS_FAIL(ret == 1, "%o test return code");
+
+ // Check 9
+ int_test=10;
+ my_strcpy(x, "-5 0");
+ ret = sscanf(x, "%*d %d", &int_test);
+ CYG_TEST_PASS_FAIL(int_test == 0, "assignment suppression");
+ CYG_TEST_PASS_FAIL(ret == 1, "assignment suppression return code");
+
+ // Check 10
+ int_test=0;
+ my_strcpy(x, "052");
+ ret = sscanf(x, "%i", &int_test);
+ CYG_TEST_PASS_FAIL(int_test == 42, "octal with %i");
+ CYG_TEST_PASS_FAIL(ret == 1, "octal with %i return code");
+
+ // Check 10
+ int_test=0;
+ my_strcpy(x, "0x05f");
+ ret = sscanf(x, "%i", &int_test);
+ CYG_TEST_PASS_FAIL(int_test == 95, "hex with %i");
+ CYG_TEST_PASS_FAIL(ret == 1, "hex with %i return code");
+
+ // Check 11
+ int_test=0;
+ my_strcpy(x, "+023456");
+ ret = sscanf(x, "%u", &int_test);
+ CYG_TEST_PASS_FAIL(int_test == 23456, "unsigned int with %u");
+ CYG_TEST_PASS_FAIL(ret == 1, "unsigned int with %u return code");
+
+ // Check 12
+ my_strcpy(x, "aString 2747 D");
+ ret = sscanf(x, "%s %d %c", y, &int_test, z);
+ CYG_TEST_PASS_FAIL( (my_strcmp(y, "aString")==0) &&
+ (int_test == 2747) &&
+ (z[0] == 'D'), "A few combinations #1");
+ CYG_TEST_PASS_FAIL(ret == 3, "Combinations #1 return code");
+
+
+ // Check 13
+ my_strcpy(x, "-6 52 awurble 2747 xxx");
+ ret = sscanf(x, "%d %u %s %2d %n %c",
+ &int_test, &int_test2, y, &int_test3, &int_test4, z);
+ CYG_TEST_PASS_FAIL( (int_test == -6) && (int_test2 == 52) &&
+ (my_strcmp(y, "awurble")==0) &&
+ (int_test3 == 27) &&
+ (int_test4 == 16) &&
+ (z[0] == '4'), "A few combinations #2");
+ CYG_TEST_PASS_FAIL(ret == 5, "Combinations #2 return code");
+
+
+#ifdef CYGSEM_LIBC_STDIO_SCANF_FLOATING_POINT
+
+// How much _relative_ error do we allow?
+#define FLT_TOLERANCE 1.0e-3
+
+#define MY_FABS(x) ((x) < 0.0 ? -(x) : (x))
+
+ CYG_TEST_INFO("Starting floating point specific tests");
+
+ {
+ float flt_test, wanted;
+
+ // Check 14
+ my_strcpy(x, "2.5");
+ wanted = 2.5;
+ ret = sscanf(x, "%f", &flt_test);
+ CYG_TEST_PASS_FAIL( MY_FABS(flt_test - wanted) <
+ MY_FABS(wanted * FLT_TOLERANCE),
+ "Simple %f test #1" );
+ CYG_TEST_PASS_FAIL( ret == 1, "Simple %f test #1 return code" );
+
+
+ // Check 15
+ my_strcpy(x, "-23.472345");
+ wanted = -23.472345;
+ ret = sscanf(x, "%f", &flt_test);
+ CYG_TEST_PASS_FAIL( MY_FABS(flt_test - wanted) <
+ MY_FABS(wanted * FLT_TOLERANCE),
+ "Simple %f test #2" );
+ CYG_TEST_PASS_FAIL( ret == 1, "Simple %f test #2 return code" );
+
+ // Check 16
+ my_strcpy(x, "0.0");
+ ret = sscanf(x, "%f", &flt_test);
+ CYG_TEST_PASS_FAIL( flt_test==0.0, "Simple %f test 0.0" );
+ CYG_TEST_PASS_FAIL( ret == 1, "Simple %f test 0.0 return code" );
+
+
+ // Check 17
+ my_strcpy(x, "-2.6334e00");
+ wanted = -2.6334;
+ ret = sscanf(x, "%e", &flt_test);
+ CYG_TEST_PASS_FAIL( MY_FABS(flt_test - wanted) <
+ MY_FABS(wanted * FLT_TOLERANCE),
+ "Simple %e test #1" );
+ CYG_TEST_PASS_FAIL( ret == 1, "Simple %e test #1 return code" );
+
+
+ // Check 18
+ my_strcpy(x, "-2.56789e-06");
+ wanted = -2.56789e-06;
+ ret = sscanf(x, "%e", &flt_test);
+ CYG_TEST_PASS_FAIL( MY_FABS(flt_test-wanted) <
+ MY_FABS(wanted * FLT_TOLERANCE),
+ "Simple %e test #2" );
+ CYG_TEST_PASS_FAIL( ret == 1, "Simple %e test #2 return code" );
+
+
+ // Check 19
+ my_strcpy(x, "-2.12389e-06");
+ wanted = -2.12389e-06;
+ ret = sscanf(x, "%g", &flt_test);
+ CYG_TEST_PASS_FAIL( MY_FABS(flt_test-wanted) <
+ MY_FABS(wanted * FLT_TOLERANCE),
+ "Simple %g test #1" );
+ CYG_TEST_PASS_FAIL( ret == 1, "Simple %g test #1 return code" );
+
+ // Check 20
+ my_strcpy(x, "1.3423345");
+ wanted = 1.342335;
+ ret = sscanf(x, "%g", &flt_test);
+ CYG_TEST_PASS_FAIL( MY_FABS(flt_test-wanted) <
+ MY_FABS(wanted * FLT_TOLERANCE),
+ "Simple %g test #2" );
+ CYG_TEST_PASS_FAIL( ret == 1, "Simple %g test #2 return code" );
+
+
+ } // compound
+
+#else
+ CYG_TEST_PASS("Floating point tests skipped - not configured");
+#endif // ifdef CYGSEM_LIBC_STDIO_SCANF_FLOATING_POINT
+
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for C library "
+ "sscanf() function");
+
+} // test()
+
+#endif // defined(CYGFUN_LIBC_STDIO_ungetc)
+
+
+int
+main(int argc, char *argv[])
+{
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for C library "
+ "sscanf() function");
+
+ START_TEST( test );
+
+ CYG_TEST_NA("Testing is not applicable to this configuration");
+} // main()
+
+
+// EOF sscanf.c
diff --git a/ecos/packages/language/c/libc/stdio/current/tests/stdiooutput.c b/ecos/packages/language/c/libc/stdio/current/tests/stdiooutput.c
new file mode 100644
index 0000000..e63b94c
--- /dev/null
+++ b/ecos/packages/language/c/libc/stdio/current/tests/stdiooutput.c
@@ -0,0 +1,207 @@
+//=================================================================
+//
+// stdiooutput.c
+//
+// Testcase for miscellaneous C library output functions
+//
+//=================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors:
+// Date: 2000-04-20
+// Description: Contains testcode for C library stdio output
+// functions
+//
+//
+//####DESCRIPTIONEND####
+
+// CONFIGURATION
+
+#include <pkgconf/libc_stdio.h> // Configuration header
+
+// INCLUDES
+
+#include <stdio.h> // All the stdio functions
+#include <errno.h> // errno
+#include <cyg/infra/testcase.h> // Testcase API
+
+// FUNCTIONS
+
+static void
+test( CYG_ADDRWORD data )
+{
+ int i;
+
+
+ // Check 1
+ CYG_TEST_INFO("Expect: Hello printf world 42!");
+ printf("Hello printf %s %d!\n", "world", 42);
+
+ // Check 2
+ CYG_TEST_INFO("Expect: This is fprintf 0x07f!");
+ fprintf(stdout, "This is fprintf 0x%03x!\n", 0x7f);
+
+ // Check 3
+ CYG_TEST_INFO("Expect: char tests");
+ fputc( 'c', stderr );
+ putc( 'h', stdout );
+ putchar( 'a' );
+ fputc( 'r', stdout );
+ putchar( ' ' );
+ fflush(stdout);
+ putc( 't', stderr );
+ fputc( 'e', stdout );
+ putchar( 's' );
+ fflush( NULL );
+ putc( 't', stderr );
+ fputc( 's', stderr );
+ putchar( '\n' );
+
+ // Check 4
+ CYG_TEST_INFO("Expect: puts test");
+ puts("puts test");
+
+ // Check 5
+ CYG_TEST_INFO("Expect: fputs test");
+ fputs( "fputs test\n", stdout );
+
+ // Check 6
+ CYG_TEST_INFO("Expect: fwrite test");
+ fwrite( "fwrite test\n", 6, 2, stderr );
+
+ // Check 7
+ CYG_TEST_INFO("Expect: wibble: No error");
+ errno = ENOERR;
+ perror( "wibble" );
+
+ // Check 8
+ CYG_TEST_INFO("Expect: Long string test!\nSitting on the side of the "
+ "highway waiting to catch speeding drivers, a State "
+ "Police Officer sees a car puttering along at 22 MPH. "
+ "He thinks to himself, \"This driver is just as "
+ "dangerous as a speeder!\" So he turns on his lights "
+ "and pulls the driver over. Approaching the car, "
+ "he notices that there are five old ladies-two in "
+ "the front seat and three in the back-wide eyed and "
+ "white as ghosts. The driver, obviously confused, says "
+ "to him, \"Officer, I don't understand, I was doing "
+ "exactly the speed limit! What seems to be the "
+ "problem?\" \"Ma'am,\" the officer replies, \"you "
+ "weren't speeding, but you should know that driving "
+ "slower than the speed limit can also be a danger to "
+ "other drivers.\" \"Slower than the speed limit? No "
+ "sir, I was doing the speed limit exactly...Twenty-two "
+ "miles an hour!\" the old woman says a bit proudly. "
+ "The State Police officer, trying to contain a "
+ "chuckle explains to her that \"22\" was the route "
+ "number, not the speed limit. A bit embarrassed, the "
+ "woman grinned and thanked the officer for pointing "
+ "out her error. \"But before I let you go, Ma'am, I "
+ "have to ask... Is everyone in this car OK? These "
+ "women seem awfully shaken and they haven't muttered a "
+ "single peep this whole time,\" the officer asks. \"Oh, "
+ "they'll be all right in a minute officer. We just got "
+ "off Route 119\".");
+
+ printf("Long string test!\nSitting on the side of the "
+ "highway waiting to catch speeding drivers, a State "
+ "Police Officer sees a car puttering along at %d MPH. "
+ "He thinks to himself, \"This driver is just as "
+ "dangerous as a speeder!\" So he turns on his lights "
+ "and pulls the driver over. Approaching the car, "
+ "he notices that there are five old ladies-two in "
+ "the front seat and three in the back-wide eyed and "
+ "white as ghosts. The driver, obviously confused, says "
+ "to him, \"Officer, I don't understand, I was doing "
+ "exactly the speed limit! What seems to be the "
+ "problem?\" \"Ma'am,\" the officer replies, \"you "
+ "weren't speeding, but you should know that driving "
+ "slower than the speed limit can also be a danger to "
+ "other drivers.\" \"Slower than the speed limit? No "
+ "sir, I was doing the speed limit exactly...Twenty-two "
+ "miles an hour!\" the old woman says a bit proudly. "
+ "The State Police officer, trying to contain a "
+ "chuckle explains to her that \"%d\" was the route "
+ "number, not the speed limit. A bit embarrassed, the "
+ "%coman grinned and thanked the officer for pointing "
+ "out her error. \"But before I let you go, Ma'am, I "
+ "have to ask... Is everyone in this car OK? These "
+ "women seem awfully shaken and they haven't muttered a "
+ "single peep this whole time,\" the officer asks. \"Oh, "
+ "they'll be all right in a minute officer. We just got "
+ "off Route %d\".\n", 22, 22, 'w', 119);
+
+ // Check 9
+ CYG_TEST_INFO("Expect: Another puts test, just for fun");
+ puts("Another puts test, just for fun");
+
+ // Check 10
+ CYG_TEST_INFO("Expect: more fputs testing");
+ fputs( "more fputs testing\n", stderr );
+
+ // Check 11
+ CYG_TEST_INFO("Expect all the numbers from 1 to 100 in 5 columns");
+ for (i=1; i<101; ++i) {
+
+ printf("%5d ", i);
+ if (i%5 == 0)
+ fputc( '\n', stdout);
+
+ } // for
+
+ CYG_TEST_PASS("Stdio output tests completed");
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__
+ " for C library stdio output functions");
+
+} // test()
+
+int
+main(int argc, char *argv[])
+{
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for C "
+ "library stdio output functions");
+ CYG_TEST_INFO("The output of these tests needs to be manually "
+ "verified.");
+
+ test(0);
+
+ return 0;
+
+} // main()
+
+// EOF stdiooutput.c
diff --git a/ecos/packages/language/c/libc/stdlib/current/ChangeLog b/ecos/packages/language/c/libc/stdlib/current/ChangeLog
new file mode 100644
index 0000000..2138b9b
--- /dev/null
+++ b/ecos/packages/language/c/libc/stdlib/current/ChangeLog
@@ -0,0 +1,122 @@
+2009-01-28 Bart Veer <bartv@ecoscentric.com>
+
+ * tests/getenv.c: N/A in configurations which do not provide
+ environ.
+
+2009-01-26 Jonathan Larmour <jifl@eCosCentric.com>
+
+ * tests/abs.c: Allow to run if CYGPKG_LIBC_STARTUP isn't there.
+ * tests/atoi.c: Ditto.
+ * tests/atol.c: Ditto.
+ * tests/bsearch.c: Ditto.
+ * tests/div.c: Ditto.
+ * tests/getenv.c: Ditto.
+ * tests/labs.c: Ditto.
+ * tests/ldiv.c: Ditto.
+ * tests/qsort.c: Ditto.
+ * tests/rand1.c: Ditto.
+ * tests/rand2.c: Ditto.
+ * tests/rand3.c: Ditto.
+ * tests/rand4.c: Ditto.
+ * tests/srand.c: Ditto.
+ * tests/strtol.c: Ditto.
+ * tests/strtoul.c: Ditto.
+
+2008-12-23 Andrew Lunn <andrew.lunn@ascom.ch>
+
+ * src/strtoull.cxx, src/strtoll.cxx, src/strtoul.cxx, src/strtoul.cxx:
+ lisp'ify to avoid compiler warnings.
+
+2005-12-27 Sergei Organov <osv@javad.com>
+
+ * src/strtod.cxx (Ise): 'd' and 'D' aren't allowed in floating
+ formats.
+
+2004-08-18 Fredrik Hederstierna <fredrik@wespot.com>
+2004-08-18 Jonathan Larmour <jifl@eCosCentric.com>
+
+ * src/strtoll.cxx, src/strtoull.cxx: New files. Support for long long
+ string conversion.
+ * cdl/stdlib.cdl (CYGFUN_LIBC_STDLIB_CONV_LONGLONG): New option
+ to build above new files configurably.
+ * include/atox.inl: Prototype new functions from above. Add atoll()
+ inline.
+
+2004-02-17 Jonathan Larmour <jifl@eCosCentric.com>
+
+ * src/rand.cxx (srand): Use correct thread data type.
+ (rand): Ditto.
+
+2003-02-24 Jonathan Larmour <jifl@eCosCentric.com>
+
+ * cdl/stdlib.cdl: Fix doc link.
+
+2001-06-28 Jesper Skov <jskov@redhat.com>
+
+ * tests/atoi.c (main): Fix warning.
+
+2001-06-18 Jonathan Larmour <jlarmour@redhat.com>
+
+ * cdl/stdlib.cdl: requires string functions, so say so.
+
+2001-02-14 Jonathan Larmour <jlarmour@redhat.com>
+
+ * src/rand.cxx: Fix typo
+
+2000-08-03 Jonathan Larmour <jlarmour@redhat.co.uk>
+
+ * src/getenv.cxx: Revert nickg's change of 2000-06-07. environ is
+ meant to be determined by the startup environment (normally in
+ CYGPKG_LIBC_STARTUP), not getenv.
+
+2000-07-27 Jonathan Larmour <jlarmour@redhat.co.uk>
+
+ * cdl/stdlib.cdl: Require CYGINT_ISO_CTYPE because we need the iswhite()
+ etc. funs
+
+2000-07-04 Jonathan Larmour <jlarmour@redhat.co.uk>
+
+ * cdl/stdlib.cdl: Remove all parts of malloc implementation and
+ move to new separate package CYGPKG_MEMALLOC
+
+ * src/malloc.cxx, tests/malloc1.c, tests/malloc2.c, tests/malloc3.c,
+ tests/realloc.c: remove - moved to CYGPKG_MEMALLOC
+
+2000-06-07 Nick Garnett <nickg@cygnus.co.uk>
+
+ * tests/realloc.c: Include correct pkgconf file.
+
+ * src/getenv.cxx: Removed externC from definition of environ, so
+ that is actually gets defined.
+
+2000-05-02 Jonathan Larmour <jlarmour@redhat.co.uk>
+
+ * New package
+ Separated original libc out into separate packages on functional
+ boundaries.
+ Header files are now managed by isoinfra package
+ Plenty of cleanups done, but no major functionality changes
+
+//===========================================================================
+// ####GPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 or (at your option) any
+// later version.
+//
+// This program 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
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the
+// Free Software Foundation, Inc., 51 Franklin Street,
+// Fifth Floor, Boston, MA 02110-1301, USA.
+// -------------------------------------------
+// ####GPLCOPYRIGHTEND####
+//===========================================================================
diff --git a/ecos/packages/language/c/libc/stdlib/current/ChangeLog.libc b/ecos/packages/language/c/libc/stdlib/current/ChangeLog.libc
new file mode 100644
index 0000000..8809e93
--- /dev/null
+++ b/ecos/packages/language/c/libc/stdlib/current/ChangeLog.libc
@@ -0,0 +1,2735 @@
+This ChangeLog file is now obsolete. This is the original ChangeLog from when
+libc was one large package, before being separated. It is included for
+historical reasons.
+
+2000-04-05 Jesper Skov <jskov@redhat.com>
+
+ * src/time/settime.cxx:
+ * src/time/time.cxx:
+ Wallclock moved to io/.
+
+2000-03-28 John Dallaway <jld@cygnus.co.uk>
+
+ * cdl/string.cdl,
+ cdl/stdlib.cdl,
+ cdl/stdio.cdl,
+ cdl/libc.cdl:
+
+ Adjust documentation URLs.
+
+2000-03-27 Jesper Skov <jskov@redhat.com>
+
+ * src/clibincl/stream.inl (check_this): Use cyb_bool instead of bool.
+
+2000-03-06 Jesper Skov <jskov@redhat.com>
+
+ * tests/time/strftime.c (test): Adjust test to match below change.
+
+2000-03-02 Jonathan Larmour <jlarmour@redhat.co.uk>
+
+ * src/time/strftime.cxx (do_format): Make sure %m counts from
+ 1..12 rather than 0..11. Fix for case 103300
+
+2000-02-29 Jonathan Larmour <jlarmour@redhat.co.uk>
+
+ * src/stdio/output/vfnprintf.cxx: Correctly use 'n' parameter to
+ restrict length. Credit due to Andrew Lunn here as well.
+ Resolves 103057-CR-1
+
+ * tests/stdio/sprintf2.c (test):
+ Add snprintf tests to verify the correct behaviour of restricting
+ output length
+
+2000-02-10 Jesper Skov <jskov@redhat.com>
+
+ * tests/signal/signal2.c (main):
+ Also reclaim DATA_TLB_MISS vector if available.
+
+2000-01-31 Simon FitzMaurice <sdf@cygnus.co.uk>
+ * cdl/*.cdl:
+
+ Adjust help URLs in line with new doc layout.
+
+2000-01-28 Simon FitzMaurice <sdf@cygnus.co.uk>
+ * cdl/*.cdl:
+
+ Adjust help URLs in line with new doc layout.
+
+2000-01-19 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * cdl/*.cdl: Add descriptions to a number of options &c which were
+ lacking same, also tidied up other typos as noticed en passant.
+
+1999-11-11 Bart Veer <bartv@cygnus.co.uk>
+
+ * cdl/string.cdl:
+ Switch to a single boolean configuration option for code size vs.
+ speed optimization.
+
+1999-11-03 John Dallaway <jld@cygnus.co.uk>
+
+ * cdl/libc.cdl: Define tests.
+
+1999-10-19 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/output/vfnprintf.cxx: We can now remove Berkeley
+ advertising clause
+ * src/stdlib/div.cxx: ditto
+ * src/stdlib/ldiv.cxx: ditto
+ * src/stdlib/strtol.cxx: ditto
+ * src/stdlib/strtoul.cxx: ditto
+ * src/string/strtok.cxx: ditto
+
+1999-10-19 John Dallaway <jld@cygnus.co.uk>
+
+ * cdl/libc.cdl:
+
+ Define CDL options for package-specific CFLAGS.
+
+1999-10-08 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h (CYGNUM_LIBC_MAIN_THREAD_PRIORITY): Change
+ default to 10 to keep test farm happy
+ * cdl/startup.cdl: Likewise
+
+1999-10-07 John Dallaway <jld@cygnus.co.uk>
+
+ * cdl/stdlib.cdl, cdl/string.cdl:
+
+ Specify radio buttons using CDL interfaces.
+
+1999-10-06 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * cdl/stdio.cdl: Change default to /dev/ttydiag as per 1999-10-01
+ change below
+ * cdl/startup.cdl: Add new form CDL for the startup changes as
+ per 1999-10-05
+
+1999-10-05 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/libc.h: Add CYGSEM_LIBC_MAIN_STACK_FROM_SYSTEM to allow
+ the user to supply their own stack.
+ Rename CYGNUM_LIBC_MAIN_STACK_SIZE to
+ CYGNUM_LIBC_MAIN_DEFAULT_STACK_SIZE and reparent under
+ CYGSEM_LIBC_MAIN_STACK_FROM_SYSTEM
+ Add CYGNUM_LIBC_MAIN_THREAD_PRIORITY to provide main() thread
+ priority
+
+ * src/support/mainthread.cxx: Add support for user-supplied stack
+ Allow user to specify thread priority
+
+ These changes fix CR 101069
+
+1999-10-01 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h (CYGDAT_LIBC_STDIO_DEFAULT_CONSOLE): Change
+ default to /dev/ttydiag to get correct console-like behaviour
+ Also don't preclude use if haldiag package isn't included
+ (case 102065)
+
+1999-09-15 Jesper Skov <jskov@cygnus.co.uk>
+
+ * tests/signal/signal2.c (cause_fpe): Try both float and integer
+ division by zero.
+
+1999-09-10 Jesper Skov <jskov@cygnus.co.uk>
+
+ * src/stdlib/malloc.cxx (cyg_libc_get_malloc_pool): Added for
+ stress_threads test.
+
+1999-09-07 Jesper Skov <jskov@cygnus.co.uk>
+ PRs 20243, 20433
+ * tests/signal/signal2.c: Disabled test3 on ARM.
+
+1999-09-02 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * include/assert.h: Make the sense of NDEBUG correct; it is "set"
+ when NOT debugging. Fix for CR 101983-CR-1
+ See Stroustrup, "The C++ Programming Language."
+
+1999-08-18 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/fopen.cxx (_fopen): Set buffer size 0 when not
+ buffering
+ Fix for case 101868
+
+1999-08-17 John Dallaway <jld@cygnus.co.uk>
+
+ * cdl/stdlib.cdl, cdl/string.cdl:
+
+ Implement radio buttons using "FIXME radio" hack in
+ description field for now.
+
+1999-08-12 John Dallaway <jld@cygnus.co.uk>
+
+ * cdl/stdlib.cdl:
+ Take advantage of MACRONAME_ENUMVAL macros output by CDL.
+
+1999-08-06 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdio/sprintf2.c (test): Don't rely on 2.345 being exactly
+ representable in binary as a difference of 1 ulp will make it round
+ the wrong way.
+
+1999-07-16 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/input/fgetc.cxx:
+ Include outline versions of getc() (actually just a symbol alias for
+ fgetc() ) and getchar()
+ Some minor clean-ups
+ Add tracing/assertions
+
+ * src/stdio/input/fputc.cxx:
+ Likewise (except applied to putc() and putchar())
+
+ * src/stdio/common/stdioinlines.cxx (_puts):
+ Call fputc() not _fputc()
+
+ * src/clibincl/stdiosupp.hxx:
+ Remove now obsolete prototypes for _fgetc() and _fputc()
+
+ * include/stdio.h:
+ Don't bother with getc()/putc() macros any more, just call
+ them as functions
+ Include protos for getc(), putc(), getchar() and putchar() functions
+
+1999-06-21 Jesper Skov <jskov@cygnus.co.uk>
+
+ * tests/signal/signal2.c: Disabled test 3 for SH EDK7708.
+
+1999-06-11 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/stdio.h: Make FILEs array types so they won't be
+ given $gp relocations on MIPS targets
+
+1999-05-27 Jesper Skov <jskov@cygnus.co.uk>
+
+ * tests/time/ctime.c: Fixed compiler warning.
+
+1999-05-25 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/signal/signal2.c (main):
+ Update CYGPKG_HAL_TX39 -> CYGPKG_HAL_MIPS_TX39 due to recent MIPS
+ HAL changes
+ Fix for PR 20116
+
+1999-04-30 Jesper Skov <jskov@lassi.cygnus.co.uk>
+ PR 19945/19946 workaround
+ * tests/signal/signal2.c: Disabled test 3 for PowerPC sim.
+
+1999-04-19 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/time.inl:
+ Ensure all calls to cyg_libc_time_year_is_leap() are with the full
+ year, and not the direct contents of a struct tm, which are (year-1900)
+
+1999-04-19 Jesper Skov <jskov@cygnus.co.uk>
+ PR 19308, 19410, 19528
+ * tests/time/clock.c (test): Also disable data cache which may
+ affect timing when tracing/assertions are enabled.
+
+1999-04-15 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/stdiosupp.hxx:
+ Add prototype for new cyg_libc_stdio_flush_all_but() function
+
+ * src/clibincl/stream.hxx:
+ Don't include stdiosupp.hxx any more to prevent circular dependency,
+ therefore manually provide _setvbuf prototype
+ Make sure pkgconf/kernel.h is included before mutex.hxx
+
+ * src/clibincl/stream.inl (Cyg_StdioStream::set_error()):
+ Add missing unlock_me()
+
+ * src/stdio/common/fflush.cxx:
+ Separate most of code for fflush(NULL) into separate
+ cyg_libc_stdio_flush_all_but() function, which has the extra
+ capability of omitting one stream
+
+ * src/stdio/common/stderr.cxx:
+ * src/stdio/common/stdin.cxx:
+ * src/stdio/common/stdout.cxx:
+ * src/stdio/common/vsnprintf.cxx:
+ * src/stdio/common/vsscanf.cxx:
+ Add missing clibincl/stdiosupp.hxx include
+
+ * src/stdio/common/stream.cxx (Cyg_StdioStream::read()):
+ When reading, ensure we flush all output streams
+
+ * src/stdio/common/stream.cxx (Cyg_StdioStream::flush_output_unlocked):
+ Flush the device as well
+
+1999-04-15 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/streambuf.cxx (set_buffer):
+ * src/stdio/common/stdioinlines.cxx (_setbuf):
+ * src/clibincl/streambuf.inl:
+ * src/clibincl/streambuf.hxx:
+ * src/clibincl/stream.hxx (class Cyg_StdioStream):
+ * include/pkgconf/libc.h:
+ * include/stdio.inl (setbuf):
+ Fix dumb typo: BUFSIZE -> BUFSIZ
+ This fixes PR19837
+
+1999-04-15 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/stdioinlines.cxx (_setbuf):
+ * include/stdio.inl (setbuf):
+ Use _IONBF when buf==NULL, and _IOLBF otherwise.
+ Fix for PR 19836
+
+1999-04-15 John Dallaway <jld@cygnus.co.uk>
+
+ * include/pkgconf/libc.h: Tidy display string capitalization.
+
+1999-04-12 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Clarify CDL description of CYGNUM_LIBC_MALLOC_MEMPOOL_SIZE
+
+ * tests/signal/signal2.c: Try harder to generate an exception by
+ accessing a misaligned address
+ Don't handle SIGTRAP any more
+ Part of fix for PRs 19731/19607
+
+1999-04-07 Jesper Skov <jskov@cygnus.co.uk>
+ PR 19667
+ * src/support/mainthread.cxx:
+ Changed to use the new Cyg_Thread constructor.
+
+1999-04-07 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * tests/signal/signal2.c (main): Use new macro
+ HAL_VSR_SET_TO_ECOS_HANDLER if defined, to wrest control from
+ CygMon, for example, by reinstalling eCos' default VSRs for
+ exceptions that we are provoking.
+
+1999-03-29 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/signal/siginit.cxx: Include stdlib.h for exit()
+ Fix for PR 19720
+
+1999-03-29 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/time/clock.c (test): Disable instruction cache
+ Hopefully fixes PR 19308
+
+1999-03-29 Jesper Skov <jskov@cygnus.co.uk>
+
+ * tests/signal/signal2.c: Disabled test 3 for PPC as it cannot
+ trap division by zero.
+
+1999-03-26 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/support/main.cxx (main): Invoke cyg_user_start() if no kernel
+ Only sensible thing to do in our default main in a non-kernel config
+
+1999-03-25 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/time/time.c:
+ Increase MAX_TIMEOUT since the sparclite gets very close to overrunning
+ it even when working.
+ Should return -1 iff CYGSEM_LIBC_TIME_TIME_WORKING isn't defined
+ Cosmetic changes
+
+1999-03-25 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * tests/time/time.c (test): Take into account setting of
+ CYGSEM_LIBC_TIME_SETTIME_WORKING ie. does cyg_libc_time_settime()
+ work? If not, check that it returns an error.
+ This was exposed by the random combo in PR#19479.
+
+1999-03-23 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Rename CYGSEM_LIBC_RAND_SIMPLEST and CYGSEM_LIBC_RAND_KNUTH1 to
+ CYGIMP_...
+
+ Add another rand implementation CYGIMP_LIBC_RAND_SIMPLE1 which is
+ the default
+
+ Part of fix for PR 19562
+
+ * include/sys/cstartup.h:
+ Tidy and remove unnecessary dependencies
+
+ * src/stdlib/rand.cxx:
+ Rename algorithms from CYGSEM_... to CYGIMP_...
+ Add new "simple1" algorithm
+
+ * tests/ctype/ctype.c:
+ Tidy
+
+ * tests/stdlib/rand3.c:
+ Fix so that 0..RAND_MAX is split evenly over buckets, which it wasn't
+ before
+ Deal with case of RAND_MAX not being divisible by NUM_BUCKETS
+ exactly
+ Increase TEST_LENGTH to 200000 to provide more representative sample
+ Add CYG_TEST_INFO output to help ensure it doesn't time out
+ Tidy
+
+ * tests/stdlib/rand4.c:
+ Only fail if more than _two_ thirds (rather than one third) match.
+ This is because half would match for a perfectly random distribution
+ This is the rest of the fix for PR 19562
+ Cosmetic changes
+
+1999-03-22 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * src/support/mainthread.cxx (CYGNUM_LIBC_MAIN_STACK_SIZE):
+ Use CYGNUM_HAL_STACK_SIZE_TYPICAL for the stack size instead of
+ CYGNUM_HAL_MINIMUM_STACK_SIZE.
+
+1999-03-22 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/PKGconf.mak: Add -Wno-format when building strftime otherwise
+ it generates warnings for things that we do want to test (null
+ string, and %y format)
+
+1999-03-19 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h (CYGNUM_LIBC_TIME_DST_DEFAULT_STATE):
+ Put brackets back round negative number since sdf says the config
+ tool is fixed now (PR 19537)
+
+ Add new CYGSEM_LIBC_RAND_SIMPLEST and CYGSEM_LIBC_RAND_KNUTH1
+ options for different rand() algorithms in a so far failed attempt
+ to fix PR 19562
+
+ * src/stdlib/rand.cxx:
+ Add new optional algorithm from Knuth vol.2
+
+ * tests/stdlib/rand4.c:
+ Some tidies
+ Don't run test when using simplest algorithm
+
+ * tests/signal/signal2.c (main):
+ Don't try to make an FPE on tx39 - its possible to detect but requires
+ too much HAL work to be sensible
+
+1999-03-18 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/signal/siginit.cxx (cyg_libc_signals_hwexcept_handler):
+ Use HAL_ENABLE_INTERRUPTS() rather than kernel to enable interrupts
+
+1999-03-18 Mark Galassi <rosalia@cygnus.com>
+
+ * tests/PKGconf.mak (TESTS): added rand4 compilation.
+
+ * tests/stdlib/rand4.c: added this test for periodicity in the
+ least significant bit of rand().
+
+1999-03-18 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h: Remove CYGFUN_LIBC_TIME_POSIX dependency
+ on CYGPKG_LIBC_STDIO
+
+ * src/stdlib/itoa.cxx:
+ New file to convert integers to ascii
+
+ * include/stdlib.h:
+ Add proto for new cyg_libc_itoa() function
+
+ * include/time.inl:
+ Rework __asctime_r() to use memcpy() and cyg_libc_itoa() rather than
+ sprintf()
+
+ * src/PKGconf.mak:
+ Build stdlib/itoa.cxx
+
+ The above changes fix PR 19448
+
+1999-03-17 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/time.h: Add #define of __time_t_defined to placate newlib
+ if it is used by accident. This is just a temporary workaround though.
+
+1999-03-16 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * src/PKGconf.mak: Add compile option to step around ARM compiler bug.
+
+1999-03-16 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h (CYGNUM_LIBC_TIME_DST_DEFAULT_STATE):
+ Don't use parentheses for now
+
+ * src/stdio/common/stream.cxx (refill_read_buffer):
+ Silence bogus compiler warning
+
+1999-03-16 Jesper Skov <jskov@cygnus.co.uk>
+
+ * tests/signal/signal2.c (main): Enable SIGSEGV test for
+ i386/Linux.
+
+
+1999-03-15 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/signal/siginit.cxx (cyg_libc_signals_hwexcept_handler):
+ Only enable interrupts if they were disabled
+
+ * include/sys/timeutil.h:
+ * src/time/timeutil.cxx:
+ Add FIX ME line as a reminder that the workaround there can go away
+ in future
+
+ * include/pkgconf/libc.h:
+ Add proper define for CYGSEM_LIBC_EXIT_CALLS_FFLUSH
+ Put brackets round negative CYGNUM_LIBC_TIME_DST_DEFAULT_STATE define
+ Fix run time typo
+
+ * include/time.inl (__localtime_r):
+ Include sys/timeutil.h before this to get
+ cyg_libc_time_normalize_structtm()
+
+1999-03-12 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * include/sys/timeutil.h:
+ * src/time/timeutil.cxx: Remove 'const' from char arrays since
+ this fails [silently] on ARM when -fwritable-strings (PR19440)
+
+1999-03-12 Jesper Skov <jskov@cygnus.co.uk>
+
+ * tests/signal/signal2.c (main): Compiler warnings fix was
+ slightly broken.
+
+1999-03-12 Jesper Skov <jskov@cygnus.co.uk>
+ PR 19473
+ * tests/signal/signal2.c (main):
+ Disabling SIGTRAP handling on i386/Linux is not a good idea.
+1999-03-11 Jesper Skov <jskov@cygnus.co.uk>
+ PR 19473
+ * tests/signal/signal2.c:
+ Added compiler warnings fix.
+ Added N/A handling for i386/Linux.
+
+1999-03-10 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * include/pkgconf/libc.h: Force "haldiag" device to be present.
+ 'asctime' and friends need 'stdio' as well.
+
+ * include/time.inl: Fix syntax error on difftime() declaration.
+
+1999-03-08 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * src/clibincl/stream.hxx: <cyg/infra/cyg_ass.h> needed for this file.
+
+ * src/stdio/common/vsscanf.cxx (str_read): Fix problem with string
+ pointer [created by merge with new I/O package].
+
+1999-03-05 John Dallaway <jld@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Add legal values for CYGNUM_LIBC_TIME_STD_DEFAULT_OFFSET
+ and CYGNUM_LIBC_TIME_DST_DEFAULT_OFFSET.
+
+1999-03-05 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/time.inl (cyg_libc_time_year_is_leap):
+ Fix bug with modulo year 400
+ Fix typo in asctime_r macro
+ Fix gmtime_r, and mktime as a result of testing
+
+ * tests/time/asctime.c, tests/time/ctime.c, tests/time/gmtime.c,
+ tests/time/gmtime.c, tests/time/localtime.c, tests/time/mktime.c,
+ tests/time/strftime.c, tests/time/time.c:
+ New tests
+
+ * tests/PKGconf.mak:
+ Build above new tests
+
+ * include/pkgconf/libc.h:
+ Add reminder FIX ME about extra config option
+
+ * src/time/strftime.cxx:
+ Fix %w and %Y parameters as a result of testing
+
+ * src/time/timeutil.cxx:
+ Fix cyg_libc_time_normalize_structtm() as a result of testing
+ of mktime()
+
+ * tests/time/clock.c:
+ Reformat, remove obsolete bits and tidy
+
+ * include/time.h:
+ Add Cyg_libc_time_dst type and new functions
+ cyg_libc_time_setzoneoffsets(), cyg_libc_time_setdst(),
+ cyg_libc_time_getzoneoffsets(), cyg_libc_time_settime()
+
+ * include/time.inl:
+ Implement the above functions. This allows us to adjust for timezone
+ diffences and set the time.
+ Change localtime() to adjust for STD/DST
+ Change mktime() to adjust for STD/DST
+
+ * include/libc.h:
+ Add new config options CYGSEM_LIBC_TIME_SETTIME_WORKING
+ and component CYGPKG_LIBC_TIME_ZONES containing options
+ CYGNUM_LIBC_TIME_DST_DEFAULT_STATE,
+ CYGNUM_LIBC_TIME_STD_DEFAULT_OFFSET,
+ CYGNUM_LIBC_TIME_DST_DEFAULT_OFFSET
+
+ * src/strftime.cxx:
+ Adjust handling of %Z to _not_ deal with STD/DST
+
+ * src/time/settime.cxx:
+ New file to implement cyg_libc_time_settime()
+
+ * src/PKGconf.mak:
+ Build settime.cxx
+
+ * src/time/timeutil.cxx:
+ Supply outline versions of cyg_libc_time_setzoneoffsets(),
+ cyg_libc_time_setdst(), and cyg_libc_time_getzoneoffsets()
+ Add variables for STD/DST state
+ Some minor comment changes
+
+ * include/errno.h:
+ Use CYGBLD_ATTRIB_CONST instead of __attribute__((const)) directly
+
+ * include/signal.h:
+ Change format of function comment headers
+
+ * include/signal.inl:
+ Restrict errno.h inclusion to when its actually used
+ Fix a spelling typo
+
+ * include/stdlib.h:
+ Add CYGBLD_ATTRIB_CONST to abs, div, labs, ldiv
+
+ * include/stdlib.inl:
+ Reformat and tidy
+ Include new versions of div and ldiv which are more portable and
+ are cleanly rewritten so aren't covered by the BSD licence, which
+ is now removed
+
+ * src/stdlib/div.cxx, src/stdlib/ldiv.cxx:
+ Non-inline, non-BSD and portable versions of the new versions of div
+ and ldiv from stdlib.inl
+
+ * include/time.h:
+ Much reformatting, tidying and improving comments
+ Change CLOCKS_PER_SEC from 1000 to 1000000
+ Add new functions asctime_r, ctime_r, gmtime_r, localtime_r, clock,
+ difftime, mktime, time, asctime, ctime, gmtime, localtime, strftime
+ Include new time.inl file
+
+ * include/pkgconf/libc.h:
+ Add new options CYGSEM_LIBC_TIME_CLOCK_WORKING,
+ CYGSEM_LIBC_TIME_TIME_WORKING, CYGFUN_LIBC_TIME_POSIX,
+ CYGNUM_LIBC_TIME_CLOCK_TRACE_LEVEL, CYGIMP_LIBC_TIME_ASCTIME_INLINE,
+ CYGIMP_LIBC_TIME_CTIME_INLINE, CYGIMP_LIBC_TIME_DIFFTIME_INLINE,
+ CYGIMP_LIBC_TIME_GMTIME_INLINE, CYGIMP_LIBC_TIME_LOCALTIME_INLINE,
+ CYGIMP_LIBC_TIME_MKTIME_INLINE, CYGIMP_LIBC_TIME_ASCTIME_R_INLINE,
+ CYGIMP_LIBC_TIME_CTIME_R_INLINE, CYGIMP_LIBC_TIME_GMTIME_R_INLINE,
+ and CYGIMP_LIBC_TIME_LOCALTIME_R_INLINE
+
+ * time/asctime.cxx, time/asctime_r.cxx, time/clock.cxx, time/ctime.cxx,
+ time/ctime_r.cxx, time/difftime.cxx, time/gmtime.cxx,
+ time/gmtime_r.cxx, time/localtime.cxx, time/localtime_r.cxx,
+ time/mktime.cxx, time/strftime.cxx, time/time.cxx, time/timeutil.cxx,
+ include/time.inl:
+ New files to implement the new time functions. Many of them simply
+ provide the outline definitions, but the real body of the function
+ comes from time.inl
+
+ * src/PKGconf.mak:
+ Build new .cxx files
+
+ * src/clibincl/stdlibsupp.hxx:
+ Remove _div and _ldiv prototypes since they're no longer needed
+
+ * src/clibincl/timesupp.hxx:
+ Delete as its now obsolete
+
+ * src/time/clock.cxx:
+ Use new CYGSEM_LIBC_TIME_CLOCK_WORKING option to control whether it
+ just returns (clock_t)-1 or not.
+ Much reformatting and tidying
+ Change real imlpementation from _clock to __clock
+ Use CYGBLD_ATTRIB_WEAK_ALIAS now
+
+ * tests/stdlib/div.c, tests/stdlib/ldiv.c:
+ Add some extra tests for handling of negative numbers
+ Reformat and tidy a bit, including removing the test for CYGPKG_LIBC
+ since its now always defined if the test is to be compiled
+
+ * tests/time/clock.c:
+ Remove duplication CYG_TEST_INFO line
+ Check if unimplemented using "(clock_t)-1" and not just "-1"
+
+1999-03-04 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdlib/system.cxx:
+ Make sure system() is a weak alias for __system()
+
+ * include/pkgconf/libc.h: Rework CDL description for
+ CYGDAT_LIBC_STDIO_DEFAULT_CONSOLE and change its default to
+ "/dev/haldiag"
+
+ * src/stdio/common/stream.cxx:
+ Check that dev is valid when passed to stream constructor
+
+ * src/stdio/common/stdiosupp.cxx:
+ Tidy
+
+ * src/support/mainthread.cxx: Make this depend on
+ CYGSEM_LIBC_STARTUP_MAIN_THREAD rather than just CYGPKG_KERNEL
+
+1999-03-04 Gary Thomas <gthomas@cygnus.co.uk>
+
+ Merged in changes from 'ecos-new_devs-19990216-branch'
+
+ (1999-02-24 Jonathan Larmour <jlarmour@cygnus.co.uk>)
+
+ * src/stdio/common/stream.cxx:
+ Add "fix me" comments and remove a couple of commented out lines
+
+ * src/stdio/common/vsnprintf.cxx:
+ * src/stdio/common/vsscanf.cxx:
+ Revert to using pointer to string for private data, not just string.
+ This preserves the state across multiple calls
+
+ (1999-02-24 Gary Thomas <gthomas@cygnus.co.uk>)
+
+ * src/stdio/common/vsscanf.cxx:
+ * src/stdio/common/vsnprintf.cxx:
+ * src/stdio/common/stream.cxx:
+ * src/stdio/common/stdiosupp.cxx:
+ * src/stdio/common/fopen.cxx:
+ * src/clibincl/stream.inl:
+ * src/clibincl/stream.hxx:
+ * src/clibincl/stdiosupp.hxx:
+ * include/pkgconf/libc.h: Changes for new I/O system.
+
+1999-03-03 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdlib/atexit.c: Forgot to config atexit test for
+ CYGFUN_LIBC_ATEXIT option
+
+ * include/pkgconf/libc.h:
+ Require CYGVAR_KERNEL_THREADS_DATA for CYGSEM_LIBC_PER_THREAD_STRTOK
+ This fixes PR 19362
+ Require CYGPKG_KERNEL for thread safe streams
+ Also don't need "requires CYGPKG_KERNEL" for per-thread rand and errno
+ if we already require a finer granularity kernel option
+
+1999-02-25 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h: Fix CYGNUM_LIBC_MAIN_STACK_SIZE by changing
+ CYGPKG_LIBC_STARTUP_MAIN_THREAD -> CYGSEM_LIBC_STARTUP_MAIN_THREAD
+ Fix for PR 19304
+
+1999-02-23 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdlib/system.cxx: Add to implement trivial system() call
+ * include/stdlib.h: Add system() prototype
+ * src/PKGconf.mak: Build system.cxx
+
+ * tests/ctype/ctype.c, tests/i18n/setlocale.c, tests/setjmp/setjmp.c,
+ tests/signal/signal1.c, tests/signal/signal2.c,
+ tests/stdio/sprintf1.c, tests/stdio/sprintf2.c, tests/stdio/sscanf.c,
+ tests/stdio/stdiooutput.c, tests/stdlib/atexit.c,
+ tests/stdlib/atoi.c, tests/stdlib/atol.c, tests/stdlib/bsearch.c,
+ tests/stdlib/div.c, tests/stdlib/getenv.c, tests/stdlib/labs.c,
+ tests/stdlib/ldiv.c, tests/stdlib/malloc1.c, tests/stdlib/malloc2.c,
+ tests/stdlib/malloc3.c, tests/stdlib/qsort.c, tests/stdlib/rand1.c,
+ tests/stdlib/rand2.c, tests/stdlib/rand3.c, tests/stdlib/realloc.c,
+ tests/stdlib/srand.c, tests/stdlib/strtol.c, tests/stdlib/strtoul.c,
+ tests/string/memchr.c, tests/string/memcmp1.c,
+ tests/string/memcmp2.c, tests/string/memcpy1.c,
+ tests/string/memcpy2.c, tests/string/memmove1.c,
+ tests/string/memmove2.c, tests/string/memset.c,
+ tests/string/strcat1.c, tests/string/strcat2.c,
+ tests/string/strchr.c, tests/string/strcmp1.c,
+ tests/string/strcmp2.c, tests/string/strcoll1.c,
+ tests/string/strcpy1.c, tests/string/strcpy2.c,
+ tests/string/strcspn.c, tests/string/strlen.c,
+ tests/string/strncat1.c, tests/string/strncat2.c,
+ tests/string/strncpy1.c, tests/string/strncpy2.c,
+ tests/string/strpbrk.c, tests/string/strrchr.c,
+ tests/string/strspn.c, tests/string/strstr.c, tests/string/strtok.c,
+ tests/string/strxfrm1.c, tests/string/strxfrm2.c, tests/time/clock.c:
+ Use CYG_TEST_NA() macro for non-applicable test configurations
+
+1999-02-20 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/signal.h:
+ * include/signal.inl:
+ * src/signal/raise.cxx:
+ * src/signal/siginit.cxx:
+ * src/signal/signal.cxx:
+ * tests/signal/signal1.c
+ * tests/signal/signal2.c:
+ New files to implement ISO standard signals
+
+ * src/PKGconf.mak (TESTS):
+ * tests/PKGconf.mak (TESTS):
+ Update to build new files above
+
+ * include/stdlib.h:
+ * src/clibincl/stdlibsupp.hxx:
+ Comment and QA changes (including giving better names to some types)
+
+ * include/libc.h:
+ Add new configuration options for signals
+ Add new CYGSEM_LIBC_STARTUP_MAIN_THREAD option
+ Add a note to CYGNUM_LIBC_MAIN_STACK_SIZE option that it may be
+ overriden by HAL
+ Add new CYGFUN_LIBC_ATEXIT option and move ...ATEXIT_HANDLERS under
+ it
+ Add new CYGSEM_LIBC_EXIT_CALLS_FFLUSH option
+ Require CYGSEM_LIBC_STARTUP_MAIN_THREAD for "Invoke default static
+ constructors" option
+
+ * src/stdlib/atexit.cxx:
+ Support above CYGFUN_LIBC_ATEXIT and QA changes
+
+ * src/stdlib/exit.cxx:
+ Support for above new libc.h options, and some QA changes
+
+ * src/support/cstartup.cxx:
+ Add support for new CYGSEM_LIBC_STARTUP_MAIN_THREAD option
+
+ * src/support/mainthread.cxx:
+ Override main stack size if the HAL has a minimum
+
+ * src/string/strncpy.cxx:
+ Use improved algorithm for aligned copies - imported from newlib
+ QA changes
+
+ * src/stdlib/abort.cxx:
+ Support raise(SIGABRT), and some QA
+
+ * include/errno.h:
+ Add const attribute
+
+ * tests/stdlib/abs.c:
+ QA improvements
+
+1999-02-04 Jesper Skov <jskov@cygnus.co.uk>
+
+ * src/support/cstartup.cxx: Only define cyg_libc_main_thread when
+ the kernel is around.
+
+1999-02-01 Jesper Skov <jskov@cygnus.co.uk>
+
+ * tests/time/clock.c: Joined the two test/NOP checks into
+ one.
+ Increased tolerance in attempt to fix PRs 18737,18787,18846.
+ Fixed typo.
+
+1999-01-28 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/string/strtok.cxx:
+ * src/stdlib/rand.cxx:
+ Include <pkgconf/kernel.h> if we use kernel header files
+
+1999-01-25 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdio/sscanf.c (test):
+ CYGSEM_LIBC_STDIO_PRINTF_FLOATING_POINT should be
+ CYGSEM_LIBC_STDIO_SCANF_FLOATING_POINT
+ Fix for PR 18786
+
+ * src/string/strtok.cxx:
+ * src/stdio/common/stdiofiles.cxx:
+ * src/errno/errno.cxx:
+ * src/stdlib/rand.cxx:
+ Give mutex protection objects a libc constructor priority
+
+ * src/support/invokemain.cxx:
+ Add prototype for cyg_hal_invoke_constructors()
+
+ * src/support/mainthread.cxx:
+ Give cyg_libc_dummy_constructor_obj a libc constructor priority,
+ and make its class have a public constructor
+
+ * src/stdio/common/stderr.cxx:
+ * src/stdio/common/stdout.cxx:
+ * src/stdio/common/stdin.cxx:
+ Give cyg_libc_stdio_stdin/out/err static objects a libc constructor
+ priority
+
+ * src/clibincl/streambuf.hxx (class Cyg_StdioStreamBuffer):
+ * src/clibincl/stream.hxx (class Cyg_StdioStream):
+ Remove private copy constructor. Needed to make prioritised
+ static constructors work. Fix for PR 18898
+
+1999-01-22 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/errno/errno.cxx:
+ Include pkgconf/kernel.h otherwise it fails with per-thread errno
+ enabled
+
+ * include/pkgconf/libc.h:
+ Enable per-thread errno by default since that is what POSIX would
+ want
+
+ * tests/time/clock.c (test):
+ Placate compiler by initializing clock_first/second/third anyway,
+ even though they won't be in practice. This is only a test program
+ so adding an extra instruction doesn't matter.
+
+ * src/i18n/locale.cxx (_setlocale):
+ Placate compiler, since it is dumb, by nesting, not serializing, if's
+ This is an idempotent change, but screws up the formatting :-(.
+
+ * src/string/strpbrk.cxx (_strpbrk):
+ Change while loop to do loop to placate compiler. It'll even save an
+ instruction too (wow!)
+
+1999-01-22 John Dallaway <jld@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Add closing curly brace to CYGPKG_LIBC_STRING_STRTOK definition
+
+1999-01-21 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/errno.h:
+ Tidy up and add to header description
+ Change cyg_get_errno_p() to cyg_libc_get_errno_p()
+ Remove ifdef CYGPKG_LIBC
+
+ * include/sys/file_if.h:
+ Remove - move contents to stdio.h
+
+ * include/stdio.h:
+ Tidy up header description
+ Move FILE typedef here from sys/file_if.h
+ SEEK_SET, SEEK_CUR, SEEK_END defined to 0, 1, 2 respectively
+ for backwards compatibility with old UNIX
+ Change definitions of stdin/out/err to be addresses of FILE
+ globals - even though they're actually Cyg_StdioStream it'll work
+
+ * include/pkgconf/libc.h:
+ Make CYGPRI_LIBC_WEAK et al macros depend on new ones in infra
+ Reorganise trace options under the individual components they are
+ associated with.
+ Reorganise thread-safety options under the individual components
+ they are associated with.
+ Add new CYGSEM_LIBC_INVOKE_DEFAULT_STATIC_CONSTRUCTORS option
+ Misc. reformatting
+ Remove dependency on pkgconf/kernel.h - Configuration Tool will
+ generate check macros anyway.
+ Remove CYGPKG_LIBC_TRACE, CYGFUN_LIBC_strtok, CYGPKG_LIBC_RAND
+ options
+ Tidy up description header
+
+ * src/clibincl/clibdata.hxx:
+ * src/clibincl/clibdata.inl:
+ * src/support/clibdata.cxx:
+ Remove and instead rely on each component to initialise its own data
+
+ * src/clibincl/stdiofiles.hxx, src/clibincl/stdiofiles.inl:
+ New files to contain global file list and lock (if applicable).
+ Implemented as class with member access functions
+
+ * src/errno/errno.cxx:
+ Reorganise with self-contained per-thread data, if applicable
+ Remove ifdef CYGPKG_LIBC
+ Tidy up description header
+ Rename cyg_get_errno_p() to cyg_libc_get_errno_p()
+
+ * src/stdio/common/fclose.cxx:
+ * src/stdio/common/fflush.cxx:
+ * src/stdio/common/fopen.cxx:
+ * src/stdio/common/freopen.cxx:
+ Remove ifdef CYGPKG_LIBC
+ Use new global file access method from stdiofiles.hxx
+ Tidy up description header
+ Use new CYGBLD_ATTRIB_WEAK_ALIAS
+ Access errno "normally" rather than clibdata way
+
+ * src/stdio/common/stdin.cxx:
+ * src/stdio/common/stdout.cxx
+ * src/stdio/common/stderr.cxx:
+ New files. Implement Cyg_StdioStream objects for each stream. In
+ separate self-contained files so using one doesn't bring in the
+ others
+
+ * src/stdio/common/stdiofiles.cxx:
+ New file. Implements global files array and lock
+
+ * src/stdlib/_exit.cxx:
+ Tidy up description header
+ Remove ifdef CYGPKG_LIBC
+ Use infra CYGBLD* macros
+
+ * src/stdlib/malloc.cxx:
+ Tidy up description header
+ Remove ifdef CYGPKG_LIBC
+ Add pkgconf/kernel.h now that pkgconf/libc.h doesn't have it
+ Use infra CYGBLD* macros
+ Make pool visible externally with weak attribute and new name
+ cyg_libc_malloc_memorypool
+
+ * src/stdlib/rand.cxx:
+ * src/stdlib/strtok.cxx:
+ Reorganise with self-contained per-thread data, if applicable
+ Remove ifdef CYGPKG_LIBC
+ Tidy up description header
+ Use infra CYGBLD* macros
+
+ * src/support/cstartup.cxx:
+ Split into smaller files to make selective linking work better,
+ fix i386 port problem and make GDB happy
+
+ * src/support/environ.cxx:
+ * src/support/invokemain.cxx:
+ * src/support/main.cxx:
+ * src/support/mainthread.cxx:
+ New files from bits of the old cstartup.cxx
+ Add support for CYGSEM_HAL_STOP_CONSTRUCTORS_ON_FLAG
+
+ * src/PKGconf.mak:
+ Update to reflect file additions/deletion
+
+ * tests/stdlib/rand1.c:
+ * tests/stdlib/rand2.c:
+ * tests/stdlib/rand3.c:
+ * tests/stdlib/srand.c:
+ Make conform to coding standards
+ Remove ifdef CYGPKG_LIBC_RAND
+ Tidy up description header
+
+ * tests/string/strtok.c:
+ Make conform to coding standards
+ Remove ifdef CYGFUN_LIBC_strtok
+ Tidy up description header
+
+1999-01-15 Mark Galassi <rosalia@cygnus.com>
+
+ * tests/stdlib/getenv.c (main): added tests for the case in which
+ the user does not supply environ and in which the user supplies a
+ NULL environ.
+
+1999-01-15 Jesper Skov <jskov@cygnus.co.uk>
+
+ * src/support/cstartup.cxx: Added workaround for weak aliasing
+ problem in i386 gcc.
+
+
+1999-01-15 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * include/pkgconf/libc.h (CYGNUM_LIBC_MAIN_STACK_SIZE):
+ (CYGNUM_LIBC_MALLOC_MEMPOOL_SIZE): Change defaults to be
+ more reasonable on small systems.
+
+1999-01-04 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/support/clibdata.cxx:
+ Minor bug with environ not being initialised correctly by
+ default
+
+1998-12-24 Bart Veer <bartv@cygnus.co.uk>
+
+ * src/clibincl/stream.inl (Cyg_StdioStream):
+ check_this() member functions should now be const
+
+1998-12-22 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/string/memchr.cxx (_memchr):
+ treat search value parameter to memchr as an unsigned byte,
+ not a signed int - copied fix from newlib PR 18471
+
+1998-12-21 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdlib/realloc.c:
+ * tests/stdlib/malloc3.c:
+ * tests/stdlib/malloc2.c:
+ Warning cleanup
+
+1998-12-14 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdlib/malloc2.c, tests/stdlib/malloc3.c,
+ tests/stdlib/realloc.c:
+ Only run these tests when we have a coalescing memory allocator
+
+1998-12-14 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/stream.cxx:
+ Only check buffer init success if buffering
+
+ * src/stdio/common/streambuf.cxx (set_buffer):
+ Check for diff of requested size against buffer_size, not
+ get_buffer_size(), since this may return -1, which won't be
+ equal to size, and will cause malloc to be called
+
+1998-12-01 Jesper Skov <jskov@cygnus.co.uk>
+
+ * tests/stdlib/getenv.c (main): Don't declare variables when they
+ are not used.
+
+Thu Nov 26 17:59:12 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/string/strncpy1.c:
+ Fix off-by-one error since it called my_strcmp() and not
+ my_strncmp(), which meant in included the trailing NULL when it
+ shouldn't have.
+
+1998-11-26 Jesper Skov <jskov@cygnus.co.uk>
+
+ * src/stdlib/qsort.cxx (_qsort):
+ * src/stdlib/rand.cxx (_srand):
+ Changed CYG_REPORT_FUNCNAMETYPE to CYG_REPORT_FUNCNAME in void
+ functions.
+
+Mon Oct 26 18:49:00 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/support/cstartup.cxx (cyg_libc_dummy_main):
+ Silence compiler warning with cast of char * to CYG_ADDRWORD
+
+Wed Oct 28 17:31:21 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/time/clock.cxx (_clock):
+ Reorder scaling expression as it was both incorrect and risked
+ overflow.
+ Fix for PR 18076
+
+Mon Oct 19 14:40:06 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/stdio.h (EOF):
+ Change from -64 to (-1), to allow broken code to work :-/
+ Also change other negative defines to be within parentheses
+
+1998-10-19 Mark Galassi <rosalia@cygnus.com>
+
+ * include/pkgconf/libc.h: updated the doc URL
+
+Thu Oct 15 21:33:44 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/clibdata.hxx:
+ Only include kernel thread headers when we're in thread-safe mode
+
+ * src/time/clock.cxx:
+ Only include kernel clock headers if there's a kernel with the
+ right functionality available
+
+ * tests/time/clock.c:
+ Remove unnecessary inclusion of <pkgconf/kernel.h>
+
+ Above changes are required for PR 17229
+
+Wed Oct 14 16:38:55 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/clibdata.hxx, src/clibincl/clibdata.inl:
+ Conditionalise inclusion of clibincl/stdiosupp.hxx and
+ clibincl/stream.hxx. Tidying up PR 17502
+
+Wed Oct 14 14:08:56 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Rename CYGPKG_LIBC_STRING_OPTIMISATIONS to
+ CYGPKG_LIBC_STRING_OPTIMIZATIONS to make it truely merkin.
+
+Tue Oct 13 19:34:41 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h (CYGDAT_LIBC_ARGUMENTS):
+ Add a default argv[0] of "" as many programs assume argc>0
+ The standard allows argv[0] to be "" if the program name
+ is not available
+
+1998-09-26 Bart Veer <bartv@cygnus.co.uk>
+
+ * src/clibincl/stdiosupp.hxx:
+ PR 17502: this header file now does nothing if the stdio option
+ is disabled completely. This is the same behaviour is
+ clibincl/stream.hxx, although arguably the #ifdef protection
+ should happen wherever the header file is #include'd rather than
+ in the header file itself.
+
+ * src/clibincl/clibdata.hxx:
+ PR 17502: this header file still #include's internal stdio-related
+ header files and references the FILE structure, even if stdio is
+ disabled. There were some #ifdef's for CYGPKG_LIBC_STDIO already.
+ One more has been added for _fopen() and _fclose().
+
+1998-09-25 Bart Veer <bartv@cygnus.co.uk>
+
+ * src/clibincl/streambuf.inl (Cyg_StdioStreamBuffer):
+ PR 17487: Reorder the calls to initialize member fields, to
+ eliminate a compiler warning.
+
+Fri Sep 25 19:04:29 1998 Jonathan Larmour <jlarmour@peshwari.cygnus.co.uk>
+
+ * src/errno/errno.cxx, src/stdlib/bsearch.cxx,
+ src/stdlib/qsort.cxx, src/stdlib/rand.cxx, src/string/strtok.cxx,
+ src/time/clock.cxx:
+ Only define tracing variable and tracing level macro when
+ the relevant tracing level config options are set. Otherwise
+ keep the tracing level fixed at 0
+ Fix for PR 17476
+
+ * include/pkgconf/libc.h:
+ Define trace levels only if parent CYGPKG_LIBC_TRACE is defined
+ for consistency with Configuration Tool
+
+
+Fri Sep 25 17:24:45 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/stdioinlines.cxx:
+ Make definition of vscanf() dependent on CYGFUN_LIBC_STDIO_ungetc
+ otherwise _vfscanf() won't be compiled. This therefore would
+ cause a link fail iff selective linking is not enabled.
+ Fix for PR 17455
+
+Fri Sep 25 17:23:17 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdlib/rand.cxx:
+ Make compilation dependent on CYGPKG_LIBC_RAND
+ Fix for PR 17473
+
+ * tests/stdlib/srand.c:
+ Make definition of dummy test pass conditional on CYGPKG_LIBC_RAND
+ not being defined, as well as CYGPKG_LIBC
+ Caused compilation failure when testing PR 17473 fix
+
+Mon Sep 21 17:11:04 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdio/sscanf.c:
+ Make sscanf test conditional on CYGFUN_LIBC_STDIO_ungetc since
+ _vfscanf() only gets compiled if this is defined
+ Fix for PR 17346
+
+1998-09-20 Mark Galassi <rosalia@cygnus.com>
+
+ * include/pkgconf/libc.h: updated CDL doc strings.
+
+Fri Sep 18 22:18:47 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/clibdata.inl (get_errno_p):
+ Rather than this function only being available in thread-safe mode,
+ instead make what it returns be either the per-thread errno, or
+ global errno depending on the configuration.
+ Include <errno.h> (conditionally) to support this change
+
+Wed Sep 16 11:20:31 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Remove "fix me" comment which I forgot to remove before
+
+Tue Sep 15 19:27:57 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Updated descriptions and a few other minor things after review.
+ Notably though, the NDEBUG config option has been removed
+
+1998-09-15 Bart Veer <bartv@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ PR 17201: removed dependency on CYGPKG_KERNEL in the option
+ CYGNUM_LIBC_MAIN_STACK_SIZE, since the actual dependencies cannot
+ be expressed sensibly in the current system.
+
+1998-09-11 Bart Veer <bartv@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Sorting out dependencies for error package.
+
+1998-09-10 Mark Galassi <rosalia@cygnus.com>
+
+ * include/pkgconf/libc.h: started adding doc fields to the
+ cdl_package data, as a pilot for now.
+
+Wed Sep 9 17:41:23 1998 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Add option CYGIMP_LIBC_MALLOC_CXX_DELETE_CALLS_FREE to explicitly
+ control whether the empty delete functions (currently) in
+ kernel/.../common/delete.cxx are enabled; controls code bloat, see
+ the comments in delete.cxx.
+
+Fri Sep 4 16:43:38 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdio/stdiooutput.c:
+ Add a default CYG_TEST_PASS() to make sure the test infra doesn't
+ complain.
+ Also remove the unused string functionsa
+
+Fri Sep 4 15:43:48 1998 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * src/stdlib/exit.cxx (__libc_exit):
+ * src/stdlib/_exit.cxx (__libc__exit):
+ * src/stdlib/malloc.cxx (_free):
+ * src/stdlib/abort.cxx (abort):
+ * src/support/cstartup.cxx (invoke_main):
+ Tracing system asserted cos it was being called incorrectly; these
+ are void functions so you shouldn't give a type to the function
+ reporting call.
+
+Fri Sep 4 15:03:10 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Fix CYGDAT_LIBC_STDIO_DEFAULT_CONSOLE description to refer to
+ the table.cxx file, not table.h
+
+Fri Sep 4 14:38:52 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Add description for CYGDAT_LIBC_STDIO_DEFAULT_CONSOLE since
+ Proven won't be making any changes to the device driver
+ implementation after all.
+ Fix for PR 17148
+
+ * src/clibincl/stream.inl (set_position):
+ Remove "fix me" line. It is obvious that this will have to change
+ with a filesystem interface
+ Fix for PR 17147
+
+ * src/stdio/common/freopen.cxx:
+ Remove "fix me" - I know about this issue
+ Fix for PR 17145
+
+ * src/stdio/common/stream.cxx (read):
+ Remove "fix me" and change to use memcpy
+ Fix for PR 17144
+
+Fri Sep 4 14:36:47 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdio/stdiooutput.c:
+ Actually add it this time!
+
+Fri Sep 4 13:48:13 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdio/stdiooutput.c:
+ Add new tests for misc stdio output functions
+
+ * tests/PKGconf.mak:
+ Build stdiooutput.c test
+
+Fri Sep 4 12:52:10 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/stream.inl (write_byte):
+ Remove bogus assert
+
+ * tests/stdlib/getenv.c (main):
+ Check whether str is NULL before doing a strcmp()
+
+ * tests/stdio/sprintf2.c (main):
+ Reformat to 76 columns
+
+Fri Sep 4 02:10:54 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/stream.hxx, src/stdio/common/stream.cxx:
+ Add new peek_byte method to Cyg_StdioStream
+
+ * src/stdio/input/vfscanf.cxx (_vfscanf):
+ Fix up buffer access to work with new peek_byte method above
+ Fix for PR 16954
+
+Thu Sep 3 19:40:11 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdlib/rand1.c, tests/stdlib/rand2.c,
+ tests/stdlib/rand3.c:
+ Add extra check for CYGPKG_LIBC_RAND to decide whether the test
+ is applicable or not
+
+ * tests/stdlib/rand2.c (test):
+ Use CYGNUM_LIBC_RAND_SEED for default seed, not 1
+
+ * tests/string/strtok.c:
+ Add extra check for CYGFUN_LIBC_strtok to decide whether the
+ test is applicable or not
+
+Wed Sep 2 19:11:40 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/input/fread.cxx, src/stdio/output/fwrite.cxx:
+ Add fread() and fwrite() functions
+
+ * src/PKGconf.mak:
+ Build fread.cxx and fwrite.cxx from above
+
+ * src/stdio/common/stream.cxx:
+ Reformat to 76 columns
+ In write(), move initialisation of *bytes_written to start
+ In read(), move initialisation of *bytes_read to start
+
+ * include/stdio.h:
+ Reformat to 76 columns
+
+ Replace all references to the ANSI
+ standard to instead by the ISO C standard
+
+ Add commented argument names for "documentation"
+
+ Add fread() and fwrite() prototypes
+
+ * src/clibincl/stdiosupp.hxx:
+ Copy the above changes from stdio.h, and add _fread() and _fwrite()
+ prototypes
+
+ * src/stdio/output/fputs.cxx, src/stdio/input/fgets.cxx:
+ Reformat to 76 columns
+
+Wed Sep 2 15:41:15 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/input/vfscanf.cxx:
+ Reformat to 76 columns
+
+Wed Sep 2 14:46:18 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/fflush.cxx:
+ Use trylock_me() instead of lock_me(), and loop to prevent
+ deadlocks
+
+ * src/clibincl/stream.hxx, src/clibincl/stream.inl:
+ Add trylock_me() method
+
+ * src/clibincl/stream.hxx, src/clibincl/stream.inl,
+ src/stdio/common/fflush.cxx:
+ Reformat to 76 columns
+
+Wed Sep 2 12:24:27 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Change 0x7fff to 0x7fffffff. Oops!
+ give main stack size option a legal_values field
+ Undefine tracing by default
+ Add some more description in the header
+
+Tue Sep 1 20:02:07 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/i18n/setlocale.c (cyg_package_start):
+ Fix typo - extra "x" for no reason at all! :-)
+
+Tue Sep 1 19:44:58 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/i18n/locale.cxx:
+ Fix bug in find_locale_data() that miscalculated size of
+ all_locales
+
+ Make find_locale_data() match the locale "" and add some
+ other things in _setlocale() to ensure that "C" gets returned
+ when the default locale "" is passed.
+
+ Only check the locale pointer when it is non-NULL
+
+ * tests/i18n/setlocale.c:
+ New tests for setlocale()
+
+ * tests/PKGconf.mak:
+ Update to build setlocale.c test
+
+ * src/support/cstartup.cxx:
+ Don't actually call system default main() "main" otherwise GDB
+ gets confused and thinks its the entry point. Instead make a weak
+ alias and call the real function something different.
+
+Tue Sep 1 18:31:42 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/i18n/locale.cxx (_setlocale):
+ Fix tracing macro name and remove "str maybe used before
+ initialised" warning
+
+ * tests/stdlib/qsort.c:
+ Correct file description header
+
+Tue Sep 1 17:04:32 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/locale.h, src/clibincl/i18nsupp.hxx, src/i18n/locale.cxx:
+ New files to add support for locales as defined by the ISO C
+ standard. i.e. setlocale() and localeconv() functions and some
+ other bits
+
+ * include/pkgconf/libc.h:
+ Add CYGNUM_LIBC_MAX_LOCALE_NAME_SIZE config option for locale
+ support
+
+ * src/PKGconf.mak:
+ build locale.cxx
+
+ * include/errno.h, src/clibincl/ctypesupp.hxx:
+ Tidy up to 76 columns
+
+Tue Sep 1 00:24:22 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Move environment-related options from stdlib into new
+ CYGPKG_LIBC_STARTUP component. Also add options for main()'s
+ arguments (CYGPKG_LIBC_ARGUMENTS), main()'s default stack size
+ (CYGNUM_LIBC_MAIN_STACK_SIZE), number of atexit handlers
+ (CYGNUM_LIBC_ATEXIT_HANDLERS), and whether _exit() stops the
+ system (CYGSEM_LIBC_EXIT_STOPS_SYSTEM).
+
+ * src/clibincl/stdlibsupp.hxx:
+ Fix a few comment bugs, and add new
+ cyg_libc_invoke_atexit_handlers() function prototype
+
+ * src/stdlib/_exit.cxx, src/stdlib/atexit.cxx, src/stdlib/exit.cxx:
+ Implement exit(), atexit() and _exit() correctly now. Also
+ includes cyg_libc_invoke_atexit_handlers() in atexit.cxx. Now
+ we get the correct behaviour of atexit(), and exit() invokes the
+ atexit handlers and fflushs all the stdio streams. Add plenty of
+ tracing of asserts too.
+
+ * src/support/cstartup.cxx:
+ Make main_thread object an exported global. Allow user-settable
+ arguments. Add MUCH more tracing and asserts. Improve comments.
+ Tidy up to 76 columns
+
+ * tests/stdlib/atexit.c:
+ Add simple test for atexit() and it calling registered functions
+
+ * tests/PKGconf.mak:
+ Build atexit.c test
+
+Mon Aug 31 18:54:48 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdlib/getenv.cxx, tests/stdlib/getenv.c:
+ Add support for getenv(), and some tests to ensure it works
+
+ * src/PKGconf.mak, tests/PKGconf.mak:
+ Update to include getenv.cxx and getenv.c test
+
+ * src/clibincl/clibdata.hxx:
+ remove prototype for environ - we expect files needing it to
+ define it themselves
+
+ * src/support/clibdata.cxx:
+ Tidy up to 76 columns and add definition of char **environ, but
+ with a configurable initialiser (see libc.h below)
+
+ * tests/stdlib/abs.c (main):
+ Tidy up to 76 columns
+
+ * src/stdlib/malloc.cxx:
+ Tidy up to 76 columns and remove warning for undefined _memcpy()
+ by changing to memcpy(), and casting away signedness
+
+ * include/pkgconf/libc.h:
+ Add CYGPKG_LIBC_ENVIRONMENT and CYGDAT_LIBC_DEFAULT_ENVIRONMENT
+ configuration options
+
+ * include/pkgconf/libc.h, src/clibincl/clibdata.hxx:
+ Tidy up to 76 columns
+
+ * include/stdlib.h:
+ Add getenv() prototype and tidy up to 76 columns
+
+ * src/clibincl/stdlibsupp.hxx:
+ Add _getenv() prototype
+
+Mon Aug 31 13:37:08 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdlib/malloc.cxx:
+ Add realloc()
+
+ * tests/stdlib/realloc.c:
+ Add this file to test new realloc() functionality
+
+ * tests/PKGconf.mak:
+ Build realloc test
+
+ * tests/stdlib/malloc3.c (main), tests/stdlib/malloc2.c (main),
+ tests/stdlib/malloc1.c (main):
+ Conditionalise local vars to prevent warnings
+
+ * tests/stdlib/malloc3.c (fill_with_data):
+ Move '{' into "verb" line
+
+ * include/pkgconf/libc.h:
+ Require infra tracing support to allow tracing
+
+ * include/stdlib.h:
+ Add realloc()
+
+ * src/clibincl/stdlibsupp.hxx:
+ Update the commented argument names from stdlib.h, including realloc()
+
+1998-08-28 Bart Veer <bartv@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ * src/clibincl/clibdata.hxx, src/time/clock.cxx:
+
+ Updated for new kernel configuration option symbol names
+
+Fri Aug 28 19:18:25 1998 Hugo Tyson <hmt@cygnus.co.uk>
+
+ Changed the entry below to sat "tx39" instead of "mn10300".
+ It's been a long week.
+
+Fri Aug 28 18:59:20 1998 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * src/support/cstartup.cxx: Add a weakly named main to allow the
+ default configuration to link on the tx39 which has no
+ scalextric linking yet. The static Cyg_Thread main_thread object
+ below continues to exist, though unreferenced, so all its
+ descendants must exist too.
+
+Fri Aug 28 08:54:29 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/stdlib.h:
+ Add commented argument names Add exit(), and atexit(). And move
+ these along with abort() and _exit() to a new section.
+
+ * src/stdlib/atexit.cxx, src/stdlib/exit.cxx:
+ Add trivial versions of atexit() and exit()
+
+ * include/pkgconf/libc.h:
+ Add CYGNUM_LIBC_MAIN_STACK_SIZE config option
+
+ * include/sys/cstartup.h, src/support/cstartup.cxx, src/PKGconf.mak:
+ New files to provide a new function cyg_iso_c_support(), which
+ invokes main "correctly".
+
+ * tests/ctype/ctype.c, tests/setjmp/setjmp.c, tests/stdio/sprintf1.c,
+ tests/stdio/sprintf2.c, tests/stdio/sscanf.c, tests/stdlib/abs.c,
+ tests/stdlib/atoi.c, tests/stdlib/atol.c, tests/stdlib/bsearch.c,
+ tests/stdlib/div.c, tests/stdlib/labs.c, tests/stdlib/ldiv.c,
+ tests/stdlib/malloc1.c, tests/stdlib/malloc2.c,
+ tests/stdlib/malloc3.c, tests/stdlib/qsort.c, tests/stdlib/rand1.c,
+ tests/stdlib/rand2.c, tests/stdlib/rand3.c, tests/stdlib/srand.c,
+ tests/stdlib/strtol.c, tests/stdlib/strtoul.c,
+ tests/string/memchr.c, tests/string/memcmp1.c,
+ tests/string/memcmp2.c, tests/string/memcpy1.c,
+ tests/string/memcpy2.c, tests/string/memmove1.c,
+ tests/string/memmove2.c, tests/string/memset.c,
+ tests/string/strcat1.c, tests/string/strcat2.c,
+ tests/string/strchr.c, tests/string/strcmp1.c,
+ tests/string/strcmp2.c, tests/string/strcoll1.c,
+ tests/string/strcoll2.c, tests/string/strcpy1.c,
+ tests/string/strcpy2.c, tests/string/strcspn.c,
+ tests/string/strlen.c, tests/string/strncat1.c,
+ tests/string/strncat2.c, tests/string/strncpy1.c,
+ tests/string/strncpy2.c, tests/string/strpbrk.c,
+ tests/string/strrchr.c, tests/string/strspn.c,
+ tests/string/strstr.c, tests/string/strtok.c,
+ tests/string/strxfrm1.c, tests/string/strxfrm2.c,
+ tests/time/clock.c:
+
+ Modify all tests to use new startup mechanism, and cyg_iso_c_start()
+
+Fri Aug 28 00:29:38 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/stream.cxx:
+ Add #ifdef CYGSEM_LIBC_STDIO_WANT_BUFFERED_IO around all accesses to
+ flags.last_buffer_op_was_read. Fix for PR 16997
+
+Thu Aug 27 01:12:42 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/sys/file_if.h:
+ Fix comments and remove cyg_get_file_star()
+
+Wed Aug 26 20:24:32 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Remove #define CYGPKG_LIBC is that is meant to live in
+ <pkgconf/system.h> after all
+
+Wed Aug 26 19:39:23 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ More fixes to CDL stuff to make it work better, and look better on
+ the screen
+
+Tue Aug 25 20:21:41 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Make some fixes after running the ConfigTool
+
+Tue Aug 25 16:46:28 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h (CYGNUM_LIBC_STDIO_BUFSIZE):
+ Fix typo of CYGNUM_LIBC_STDIO_BUFSIZE
+
+Tue Aug 25 15:10:57 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Tidy up CDL stuff a bit more, prior to checking it actually works.
+
+Tue Aug 25 11:38:52 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdlib/malloc2.c (main):
+ Prevent calls to CYG_TEST_STILL_ALIVE for now
+
+Tue Aug 25 05:39:28 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Change cosmetic paragraph alignment.
+
+Tue Aug 25 03:11:34 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/support/clibdata.cxx:
+ Make stderr initialise with buffer size 0.
+ For PR 16955
+
+Mon Aug 24 17:38:46 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ First pass at CDL-ifying the C library configuration. Currently
+ deliberately disabled as there a few outstanding issues.
+
+Mon Aug 24 16:14:22 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/output/vfnprintf.cxx (_vfnprintf):
+ clear up warning for unused argument
+
+ * tests/stdlib/malloc2.c (NUM_ITERATIONS):
+ Lower to 100 from 50000 so it won't take too long under the simulator
+
+Thu Aug 20 17:48:43 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdlib/malloc.cxx:
+ Remove now unnecessary inclusion of kernel/ktypes.h
+
+Wed Aug 19 19:19:14 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdio/sprintf1.c, tests/stdio/sprintf2.c,
+ tests/stdio/sscanf.c, tests/stdlib/atoi.c, tests/stdlib/atol.c,
+ tests/stdlib/rand1.c, tests/stdlib/rand2.c, tests/stdlib/rand3.c,
+ tests/stdlib/srand.c, tests/stdlib/strtol.c,
+ tests/stdlib/strtoul.c, tests/string/strtok.c,
+ tests/time/clock.c:
+ Add parameters to "main()" to silence warnings
+
+Wed Aug 19 18:52:59 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/stream.cxx (refill_read_buffer):
+ Put conditional error check into same #ifdef and if as what was being
+ checked in the first place!
+
+Wed Aug 19 18:49:19 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/stream.inl:
+ Reorder Cyg_StdioStream::check_this() to be first to silence
+ warnings
+
+Tue Aug 18 16:10:03 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * ecc/language/c/libc/current/src/clibincl/clibdata.hxx,
+ ecc/language/c/libc/current/src/errno/errno.cxx,
+ ecc/language/c/libc/current/src/stdio/common/fopen.cxx,
+ ecc/language/c/libc/current/src/stdlib/rand.cxx,
+ ecc/language/c/libc/current/src/string/strtok.cxx:
+ Rename CYGIMP_LIBC_INTERNAL_DATA_PREAMBLE,
+ CYGIMP_LIBC_INTERNAL_DATA_ALLOC_CHECK_PREAMBLE,
+ CYGVAR_LIBC_INTERNAL_DATA, and
+ CYGIMP_LIBC_INTERNAL_DATA_CHECK to all have CYGPRI_ prefix instead
+ as recommended by the config name rules
+
+
+Tue Aug 18 14:31:19 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/setvbuf.cxx (_setvbuf):
+ Rename variable names in assert line, otherwise doesn't build
+ with asserts on!
+
+Sun Aug 16 18:15:12 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/input/vfscanf.cxx (_vfscanf):
+ Fix some bugs, although there are some left to fix still. Unrelated
+ to the rest of the checkins, so I will check the partial fix in now.
+
+ * src/clibincl/stream.hxx, src/clibincl/stream.inl,
+ src/stdio/common/stream.cxx:
+ Add parameters to constructor to allow more things to be done at
+ construction time.
+
+ Now we have "new", remove separate "construct" method
+
+ Add more documentation on constructor
+
+ As requested by code review, where possible, move boolean flags
+ into separate packed bitfield structure for space efficiency
+
+ Make readbuf_char be usable all the time rather than when configured
+ not to be buffering, as it is also needed for non-buffered mode i.e.
+ _IONBF
+
+ * src/stdio/common/fopen.cxx:
+ Change to use new method of construction from above, using new
+
+ Use thread-specific data, rather than global. And so change errnos
+ to access errno entry specifically
+
+ Make process_mode() check for append mode too
+
+ Reformat for coding standards to have { in same line as "verb"
+
+ * src/stdio/common/setvbuf.cxx:
+
+ Change to cope with different way of dealing with buffering policy
+ flags etc. in Cyg_StdioStream
+
+ * src/stdio/common/vsnprintf.cxx, src/stdio/common/vsscanf.cxx,
+ src/support/clibdata.cxx:
+ Change construction of streams to use new parameters added above,
+ and change to use _IONBF mode for string stdio functions,
+ otherwise its a waste of memory. And use _IONBF for stderr as the
+ ISO standard tells us to!
+
+ Reformat for coding standards to have { in same line as "verb"
+
+ * src/clibincl/streambuf.hxx, src/clibincl/streambuf.inl:
+ Change constructor so that it can be set with default size and
+ dynamic buffer (if applicable)
+
+ Fix minor bug in destructor - should only call free when allocated
+ dynamically
+
+ Change get_buffer_size to return -1 if the buffer was not allowed
+ to be set up
+
+ * src/stdio/common/streambuf.cxx:
+ Remove unnecessary stdio.h include and add extra comment to whether
+ to free bit in set_buffer()
+
+ * src/stdio/common/freopen.cxx:
+ Change @@@ to standard fix me string
+
+ * src/stdio/output/fputc.cxx:
+ Remove unnecessary "written" variable
+
+Thu Aug 13 15:37:28 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdlib/_exit.cxx:
+ Included use of "fix me" line to ensure this is discussed before
+ release
+
+ * include/stdlib.h, src/stdlib/abort.cxx, src/PKGconf.mak:
+ Add abort.cxx to implement abort(), albeit naively
+
+Thu Jul 30 18:03:09 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/vsscanf.cxx (_vsscanf),
+ src/stdio/common/vsnprintf.cxx (_vsnprintf):
+ Fix initialiser of pseudo string device table that didn't get updated
+ when the table changed (Bad proven, no biscuit).
+
+ * src/clibincl/stream.inl (~Cyg_StdioStream):
+ Move invalidation of magic_validity_word to after unlock_me(),
+ otherwise it always fails!
+
+Tue Jul 28 21:29:53 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/clibdata.hxx:
+ Shorten over-long lines
+
+Tue Jul 28 20:28:23 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/stream.hxx (class Cyg_StdioStream),
+ src/clibincl/stream.inl, src/stdio/common/stream.cxx:
+ Clarify some comments and get the CYGDBG_DEFINE_CHECK_THIS and
+ CYG_ASSERTCLASS stuff going
+
+ * src/clibincl/stream.inl:
+ Put '{'s on same line as "action" as per coding standards
+ Shorten over-long lines
+
+Tue Jul 28 15:31:06 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/streambuf.inl, src/stdio/common/streambuf.cxx:
+ Move set_buffer() from streambuf.inl to new file streambuf.cxx
+
+ * src/PKGconf.mak (COMPILE):
+ Build new file streambuf.cxx
+
+ * src/clibincl/streambuf.hxx (class Cyg_StdioStreamBuffer):
+ Add METHODS comment
+
+ * src/stdio/common/stream.cxx:
+ Put '{'s on same line as "action" as per coding standards
+ Shorten over-long lines
+
+Tue Jul 28 00:26:36 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/stdlib.inl, src/stdio/input/vfscanf.cxx,
+ src/stdio/output/vfnprintf.cxx, src/stdlib/div.cxx,
+ src/stdlib/ldiv.cxx, src/stdlib/qsort.cxx, src/stdlib/strtol.cxx,
+ src/stdlib/strtoul.cxx, src/string/strtok.cxx:
+
+ Include proper Berkeley license inline in the file, rather than
+ referring to an external file
+
+ * doc/COPYING.UCB:
+ Remove, now that it isn't referred to any more
+
+Mon Jul 27 23:34:26 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/ctype.h, include/ctype.inl, include/errno.h,
+ include/stdio.h, include/stdio.inl, include/stdlib.h,
+ include/stdlib.inl, include/string.h, include/string.inl,
+ include/time.h, include/sys/file_if.h, src/PKGconf.mak,
+ src/clibincl/clibdata.hxx, src/clibincl/clibdata.inl,
+ src/clibincl/ctypesupp.hxx, src/clibincl/stdiosupp.hxx,
+ src/clibincl/stream.hxx, src/clibincl/streambuf.hxx,
+ src/clibincl/streambuf.inl, src/clibincl/stringsupp.hxx,
+ src/clibincl/timesupp.hxx, src/ctype/isalnum.cxx,
+ src/ctype/isalpha.cxx, src/ctype/iscntrl.cxx,
+ src/ctype/isdigit.cxx, src/ctype/isgraph.cxx,
+ src/ctype/islower.cxx, src/ctype/isprint.cxx,
+ src/ctype/ispunct.cxx, src/ctype/isspace.cxx,
+ src/ctype/isupper.cxx, src/ctype/isxdigit.cxx,
+ src/ctype/tolower.cxx, src/ctype/toupper.cxx,
+ src/errno/errno.cxx, src/stdio/common/snprintf.cxx,
+ src/stdio/common/sprintf.cxx, src/stdio/common/sscanf.cxx,
+ src/stdio/common/stdioinlines.cxx, src/stdio/common/stream.cxx,
+ src/stdio/common/ungetc.cxx, src/stdio/common/vsnprintf.cxx,
+ src/stdio/common/vsscanf.cxx, src/stdio/input/fgetc.cxx,
+ src/stdio/input/fgets.cxx, src/stdio/input/fscanf.cxx,
+ src/stdio/input/gets.cxx, src/stdio/input/scanf.cxx,
+ src/stdio/output/fnprintf.cxx, src/stdio/output/fprintf.cxx,
+ src/stdio/output/fputc.cxx, src/stdio/output/fputs.cxx,
+ src/stdio/output/printf.cxx, src/stdlib/_exit.cxx,
+ src/stdlib/abs.cxx, src/stdlib/atof.cxx, src/stdlib/atoi.cxx,
+ src/stdlib/atol.cxx, src/stdlib/div.cxx, src/stdlib/labs.cxx,
+ src/stdlib/ldiv.cxx, src/stdlib/rand.cxx, src/stdlib/strtod.cxx,
+ src/string/memchr.cxx, src/string/memcmp.cxx,
+ src/string/memmove.cxx, src/string/strcat.cxx,
+ src/string/strchr.cxx, src/string/strcmp.cxx,
+ src/string/strcoll.cxx, src/string/strcpy.cxx,
+ src/string/strcspn.cxx, src/string/strlen.cxx,
+ src/string/strncat.cxx, src/string/strncmp.cxx,
+ src/string/strncpy.cxx, src/string/strpbrk.cxx,
+ src/string/strrchr.cxx, src/string/strspn.cxx,
+ src/string/strstr.cxx, src/string/strsuppt.cxx,
+ src/string/strtok.cxx, src/string/strxfrm.cxx,
+ src/support/clibdata.cxx, src/time/clock.cxx:
+ Untabify
+
+Mon Jul 27 23:14:18 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/errno/errno.cxx, src/stdio/input/vfscanf.cxx,
+ src/stdio/output/vfnprintf.cxx, src/stdlib/strtol.cxx,
+ src/stdlib/strtoul.cxx, src/stdlib/malloc.cxx, src/stdlib/qsort.cxx,
+ tests/ctype/ctype.c, tests/stdlib/rand3.c, tests/stdlib/malloc3.c:
+ Remove all mentions of "register" in variable declarations. Also
+ untabify where needed
+
+ * src/stdlib/bsearch.cxx:
+ Untabify this too
+
+
+Mon Jul 27 22:18:51 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/output/fputc.cxx (_fputc):
+ Replace call to stream write() with call to write_byte()
+
+ * src/clibincl/stream.inl (write_byte):
+ Add asserts for stream write() returning odd values for how much has
+ been written
+
+ (bytes_available_to_read):
+ Remove "register" def for variable declaration
+
+Mon Jul 27 22:06:22 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/stdiosupp.cxx:
+ Remove #if 0'd cyg_get_file_star() and unnecessary pseudo string
+ device definition
+
+Mon Jul 27 21:57:25 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h, src/support/clibdata.cxx:
+ Change CYGXXX_LIBC_STDIO_DEFAULT_CONSOLE to
+ CYGDAT_LIBC_STDIO_DEFAULT_CONSOLE
+
+Mon Jul 27 21:49:23 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/clibdata.hxx, src/clibincl/clibdata.inl,
+ src/clibincl/ctypesupp.hxx, src/clibincl/setjmpsupp.hxx,
+ src/clibincl/stdiosupp.hxx, src/clibincl/stdlibsupp.hxx,
+ src/clibincl/stream.hxx, src/clibincl/stream.inl,
+ src/clibincl/streambuf.hxx, src/clibincl/streambuf.inl,
+ src/clibincl/stringsupp.hxx, src/clibincl/timesupp.hxx:
+
+ Change CYGONCE_LIBC_*_{HXX,INL} to CYGONCE_LIBC_CLIBINCL_*_{HXX,INL}
+
+Mon Jul 27 21:34:05 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Change #define XXXXX 1 to #define XXXXX where applicable as per code
+ review
+
+ Also remove obsolete CYGIMP_LIBC_THREAD_START_SUSPENDS_SELF
+
+Mon Jul 27 19:42:27 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/fopen.cxx (_fopen):
+ Use #ifdef, not #if for config options
+
+Mon Jul 27 15:01:51 BST 1998 Chris Provenzano <proven@cygnus.com>
+
+ * src/stdio/common/stream.cxx, src/stdio/common/vsnprintf.cxx
+ * src/stdio/common/vsscanf.cxx:
+ Fixes to compile with the new Cyg_IORB field names.
+
+Thu Jul 9 03:40:21 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdlib/atoi.c, tests/stdlib/atol.c,
+ tests/stdlib/strtol.c, tests/stdlib/strtoul.c:
+ Adjust starting of tests to possibly start scheduler since
+ strtol/stroul rely on errno, which may be a per-thread variable
+
+Thu Jul 9 03:06:25 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/stream.hxx, src/clibincl/stream.inl,
+ src/stdio/common/stream.cxx, src/stdio/common/setvbuf.cxx:
+ Consolidate read and write buffers into single buffer, as it should
+ have been all along
+
+ * src/clibincl/streambuf.hxx, src/clibincl/streambuf.inl:
+ Add drain_buffer() method to speed up the case when we want the
+ buffer completely emptied
+
+Tue Jul 7 21:26:33 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdio/sprintf1.c:
+ Add a couple of new tests that check that very long strings work too
+
+Wed Jul 1 19:52:39 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/stream.hxx, src/clibincl/streambuf.hxx:
+ Do not permit copy constructors
+
+ * src/clibincl/stream.inl, src/stdio/common/fclose.cxx:
+ Make sure we use #ifdef and not #if
+
+ * src/clibincl/streambuf.inl:
+ Use member initialisation list rather than explicit initialisation to
+ reduce warnings
+
+Wed Jul 1 19:17:55 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h and all files using config options:
+ Rename configuration defines to make them more standard
+
+Thu Jun 25 20:09:30 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/string/strcat.cxx:
+ Add parentheses on check to silence warning
+ (Verified by proven)
+
+Thu Jun 25 19:30:01 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdlib/malloc.cxx:
+ Make sure that the malloc pool is initialised before other things
+ can use it. This is done with the hot new constructor ordering
+ feature.
+
+Thu Jun 25 18:27:03 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/input/vfscanf.cxx:
+ Remove bogus ifdef if floating point is _not_ wanted
+
+Thu Jun 25 17:31:42 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/string/strtok.cxx:
+ Fix argument checking to allow first argument of NULL
+
+Thu Jun 25 04:18:50 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/clibdata.inl (get_strtok_last_p):
+ Remove bogus assertion
+
+ * src/stdlib/malloc.cxx:
+ Got sense of alignment check assertion the wrong way round, so negate
+ it
+
+Thu Jun 25 03:56:35 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/string/strxfrm.cxx:
+ Fix argument checking assertions with legitimate nulls here too
+
+Thu Jun 25 03:46:32 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdlib/strtoul.cxx, src/stdlib/strtol.cxx:
+ Fix argument checking assertions to cope with legitimate nulls
+
+Wed Jun 24 09:01:45 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdio/sprintf1.c:
+ Remove extraneous info messages
+
+Wed Jun 24 05:59:17 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdio/sprintf1.c, tests/stdio/sprintf2.c, tests/stdio/sscanf.c,
+ tests/stdlib/rand1.c, tests/stdlib/rand2.c, tests/stdlib/rand3.c,
+ tests/stdlib/srand.c:
+
+ Change large automatic arrays to static arrays to prevent overuse
+ of a potentially small stack
+
+Wed Jun 24 05:45:28 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdio/sprintf1.c, tests/stdio/sprintf2.c, tests/stdio/sscanf.c,
+ tests/stdlib/rand1.c, tests/stdlib/rand2.c, tests/stdlib/rand3.c,
+ tests/stdlib/srand.c, tests/string/strtok.c, tests/time/clock.c:
+
+ Increase thread stack size from 4K to 32K as in some cases it was
+ too small.
+
+
+Tue Jun 23 20:12:31 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdio/sscanf.c:
+ Add extra tests, including floating point conversion testing
+
+Tue Jun 23 17:01:06 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/string/strtok.cxx:
+ Make sure this is only compiled if CYGFUN_LIBC_strtok is defined
+
+Tue Jun 23 06:10:13 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ add some comments - that's all
+
+ * src/stdio/common/stream.cxx:
+ fix case in refill_read_buffer() for what to do when there's nothing
+ left. Now return EAGAIN
+
+ * src/stdio/common/vsscanf.cxx, src/stdio/input/vfscanf.cxx:
+ Get sscanf working properly and passing tests. Also make sure it
+ ignores FP when its not configured
+
+ * src/stdlib/atof.cxx:
+ Only compile at all if strtod() is present
+
+
+Mon Jun 22 19:13:42 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/clibdata.hxx, src/clibincl/clibdata.inl:
+ Conditionalise strtok_last and rand_seed better
+
+Mon Jun 22 14:14:12 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdlib/malloc3.c:
+ Add test for checking that mallocing and freeing repeatedly works
+
+ * tests/PKGconf.mak:
+ Update to reflect addition of the above
+
+Mon Jun 22 13:09:33 BST 1998 Chris Provenzano <proven@cygnus.com>
+
+ * src/stdio/common/fopen.cxx
+ * src/stdio/common/stream.cxx
+ * src/stdio/common/vsnprintf.cxx
+ * src/stdio/common/vsscanf.cxx
+ Include cyg/devs/common/iorb.h instead of iorb.hxx
+
+ * src/stdio/common/stream.cxx
+ Use read_blocking and write_blocking instead of just read and
+ write when accessing devices through the virtual device table.
+
+Sun Jun 21 18:19:13 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/stdioinlines.cxx:
+ Propagate change of return code handling for puts from stdio.inl
+ into here
+
+ * src/stdio/output/fputc.cxx:
+ make sure the right type is used for output - byte not int
+
+ * src/support/clibdata.cxx:
+ Fix #define config mistook. #endif was in wrong place
+
+Sun Jun 21 16:11:04 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/clibdata.hxx, src/clibincl/clibdata.inl:
+ Allow explicit construction to get around a bug when
+ dynamically allocating per-thread structure
+
+Sun Jun 21 16:02:51 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/ctype/ctype.c, tests/setjmp/setjmp.c, tests/stdio/sprintf1.c,
+ tests/stdio/sprintf2.c, tests/stdio/sscanf.c, tests/stdlib/abs.c,
+ tests/stdlib/atoi.c, tests/stdlib/atol.c, tests/stdlib/bsearch.c,
+ tests/stdlib/div.c, tests/stdlib/labs.c, tests/stdlib/ldiv.c,
+ tests/stdlib/malloc1.c, tests/stdlib/malloc2.c, tests/stdlib/qsort.c,
+ tests/stdlib/rand1.c, tests/stdlib/rand2.c, tests/stdlib/rand3.c,
+ tests/stdlib/srand.c, tests/stdlib/strtol.c, tests/stdlib/strtoul.c,
+ tests/string/memchr.c, tests/string/memcmp1.c,
+ tests/string/memcmp2.c, tests/string/memcpy1.c,
+ tests/string/memcpy2.c, tests/string/memmove1.c,
+ tests/string/memmove2.c, tests/string/memset.c,
+ tests/string/strcat1.c, tests/string/strcat2.c,
+ tests/string/strchr.c, tests/string/strcmp1.c,
+ tests/string/strcmp2.c, tests/string/strcoll1.c,
+ tests/string/strcpy1.c, tests/string/strcpy2.c,
+ tests/string/strcspn.c, tests/string/strlen.c,
+ tests/string/strncat1.c, tests/string/strncat2.c,
+ tests/string/strncpy1.c, tests/string/strncpy2.c,
+ tests/string/strpbrk.c, tests/string/strrchr.c,
+ tests/string/strspn.c, tests/string/strstr.c, tests/string/strtok.c,
+ tests/string/strxfrm1.c, tests/string/strxfrm2.c, tests/time/clock.c:
+
+ Update tests to "do the right thing" with all configuration settings
+
+
+Sun Jun 21 04:54:14 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/setjmp/setjmp.c:
+ I have to be careful not to use setjmp() in a way not exactly
+ defined by the standard, so make sure I do, and add a comment
+ documenting these ways.
+
+ Also ensure this test does the right thing in all configurations
+
+Sun Jun 21 04:38:15 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Add extra checks for invalid configurations
+ Also make default for thread safety OFF
+
+ * src/clibincl/clibdata.inl:
+ Adjust indentation
+
+ * src/stdio/output/vfnprintf.cxx:
+ Make printf of -0.0 floating point do the right thing
+
+Sun Jun 21 04:28:00 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/snprintf.cxx, src/stdio/common/sprintf.cxx,
+ src/stdio/common/sscanf.cxx, src/stdio/input/fscanf.cxx,
+ src/stdio/input/scanf.cxx, src/stdio/output/fnprintf.cxx,
+ src/stdio/output/fprintf.cxx, src/stdio/output/printf.cxx:
+
+ Had to remove inline functions with varargs. Which means separating
+ out each function from stdioinlines.cxx into a separate file, as they
+ no longer belong there. So all the above files were created.
+
+ * include/stdio.inl, src/PKGconf.mak,
+ src/stdio/common/stdioinlines.cxx:
+ Changed to take account of the above
+
+
+Sun Jun 21 03:58:42 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdio/sprintf1.c, tests/stdio/sprintf2.c:
+ Update with floating-point tests. Also make sure they DTRT in all
+ configurations
+
+Fri Jun 19 19:33:06 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/support/clibdata.cxx:
+ accidentally initialised stdin/out/err twice
+
+Fri Jun 19 19:09:29 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/support/clibdata.cxx:
+ Another typo
+
+Fri Jun 19 18:59:07 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/support/clibdata.cxx:
+ Missing #endif typo
+
+Fri Jun 19 18:51:42 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/support/clibdata.cxx:
+ Fix initialisation of static data members. Unsure how it worked at
+ all before!
+
+Fri Jun 19 18:01:01 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/stdio.inl:
+ puts should check whether fputs returns non-negative, rather than
+ non-zero
+
+Fri Jun 19 17:22:52 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/clibdata.inl:
+ Make inclusion of get_errno_p conditional on thread-safety
+
+Wed Jun 17 10:55:32 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/input/vfscanf.cxx:
+ Add weak alias of vfscanf() to _vfscanf()
+
+Wed Jun 17 09:10:41 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/fflush.cxx:
+ Initialise err to silence compiler warning
+
+Wed Jun 17 08:59:20 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * Most important is the addition of floating point support in
+ src/stdio/output/vfnprintf.cxx and src/stdio/input/vfscanf.cxx. This
+ also required the addition of atof() and strtod() in stdlib which is
+ definitely no bad thing! Other than that...
+
+ * Fix a whole bunch of stuff I messed up first time round. Also the
+ sprintf and sscanf tests are included again.
+
+Tue Jun 16 16:38:02 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/PKGconf.mak:
+ Typo with not putting comment character at the beginning. Sigh.
+
+Tue Jun 16 14:53:09 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/PKGconf.mak:
+ Forgot to (temporarily) remove fputs test for now
+
+Mon Jun 15 20:40:03 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ Everything to do with stdio has almost completely changed, so there's
+ not much point documenting individual changes.
+
+Mon Jun 15 18:36:01 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdlib/malloc2.c:
+ Stop it moaning quite as much when it fails by making it exit sooner
+
+ * tests/time/clock.c :
+ This isn't a compound testcase
+
+Thu Jun 11 17:59:13 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/assert.h
+ Reverse sense of NDEBUG ifdef, that was left in accidentally due
+ to testing
+
+Thu Jun 11 04:58:08 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/errno.h, include/string.h, src/clibincl/stringsupp.hxx:
+ Modify as I've now added an "error" package which defines the error
+ codes and strerror()
+
+ * src/errno/strerror.cxx:
+ Moved to new error package and thus deleted
+
+Wed Jun 10 18:37:37 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/assert.h:
+ create this header and add assert() function
+
+Wed Jun 10 16:23:57 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/stdlib.h, src/clibincl/stdlibsupp.hxx, src/stdlib/malloc.cxx:
+ Add malloc(), calloc() and free() functions
+
+ * include/pkgconf/libc.h:
+ Add malloc memory pool size option
+
+ * tests/stdlib/malloc1.c, tests/stdlib/malloc2.c:
+ new tests for malloc
+
+ * src/PKGconf.mak, tests/PKGconf.mak:
+ Update for new files
+
+Wed Jun 10 15:06:16 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/setjmp/setjmp.c:
+ Add another test
+
+Tue Jun 9 18:20:31 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Add some setjmp config's and a macro for the noreturn attribute
+
+ * include/setjmp.h, include/setjmp.inl, src/clibincl/setjmpsupp.hxx,
+ src/setjmp/longjmp.cxx, tests/setjmp/setjmp.c:
+ Added to implement and test setjmp() and longjmp()
+
+ * src/PKGconf.mak, tests/PKGconf.mak:
+ Update for newly added files
+
+Thu Jun 4 01:29:18 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/string/memchr.cxx, src/string/memcmp.cxx, src/string/strcat.cxx,
+ src/string/strchr.cxx, src/string/strcmp.cxx, src/string/strcpy.cxx,
+ src/string/strlen.cxx, src/string/strncat.cxx,
+ src/string/strncmp.cxx, src/string/strncpy.cxx:
+ Rename CYGIMP_LIBC_PREFER_SMALL_TO_FAST to
+ CYGIMP_LIBC_STRING_PREFER_SMALL_TO_FAST
+
+ Also use slower but smaller version when __OPTIMIZE_SIZE__ is
+ defined (which comes from using gcc -Os)
+
+Fri May 29 16:15:04 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/ctype.inl, src/ctype/isxdigit.cxx:
+ Fix bug that numerals aren't considered hex digits
+
+ * include/time.h:
+ Change clock_t and time_t to be signed so that they can accept -1, as
+ required by other libc functions
+
+ * src/clibincl/clibdata.hxx:
+ Fix typo that CYGIMP_LIBC_THREAD_SUPPORT should be ..._SAFETY
+ Also fix macro to allocate thread-specific data to not set variables
+ in a different stack-frame
+
+ * tests/ctype/ctype.c:
+ Fix some misunderstandings in tests, and add a few new ones
+
+ * tests/stdlib/qsort.c:
+ make ctr unsigned to prevent warnings
+
+ * tests/stdlib/strtol.c, tests/stdlib/strtoul.c:
+ Fix some misunderstandings in tests, and add a few new ones
+
+ * tests/string/strrchr.c:
+ Fix off by one error
+
+ * tests/string/strspn.c:
+ Fix case-sensitivity problem, and off-by-one error
+
+ * tests/string/strxfrm1.c:
+ Remove bogus bit of test that doesn't apply to strxfrm, and fix typo
+
+
+Fri May 22 16:33:04 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/PKGconf.mak
+ Remove CXXFLAGS line now that its redundant
+
+ * tests/everything!
+ Do a blitz change of all tests - break some of them down into
+ different files, add new tests, standardize format, fix bugs,
+ update for recent header file changes and much more!
+
+Wed May 20 17:50:04 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/PKGconf.mak:
+ interim checkin for different dir structure for Bart
+
+Fri May 15 20:30:46 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * Tidy up some loose ends I forgot: rename src/include directory to
+ src/clibincl. And add clibdata.inl and timesupp.hxx in there.
+
+Thu May 14 19:56:32 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * Basically everything has changed in the C library. Files have
+ been moved, renamed, deleted and reworked. This is a major
+ revision, and now starts from this new baseline rather than doing
+ incremental changes.
+
+Fri Apr 17 18:43:02 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/ECCconf.mak:
+ added for new build system (actually Bart did this, but didn't
+ update this ChangeLog)
+
+Fri Apr 17 15:03:25 1998 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * src/stdio/device/sim.cxx:
+ Make it build with CYG_EMPTY_STATEMENT; the unadorned one is being
+ removed.
+
+Thu Apr 16 00:24:24 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * All source files:
+ replace ECCIMP_LIBC_* conditional ifdef with CYGIMP_LIBC_*
+
+ * include/eccconf/libc.h:
+ improve comments and reorder a bit
+
+Wed Apr 8 14:35:20 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * Makefile.am, src/Makefile.am, tests/Makefile.am, configure.in:
+ many changes to integrate build structure from release tree
+
+ * src/ctype/Makefile.am, src/ctype/Makefile.in, src/errno/Makefile.am,
+ src/errno/Makefile.in, src/stdio/Makefile.am, src/stdio/Makefile.in,
+ src/stdio/common/Makefile.am, src/stdio/common/Makefile.in,
+ src/stdio/device/Makefile.am, src/stdio/device/Makefile.in,
+ src/stdio/output/Makefile.am, src/stdio/output/Makefile.in,
+ src/stdio/input/Makefile.am, src/stdio/input/Makefile.in,
+ src/stdlib/Makefile.am, src/stdlib/Makefile.in,
+ src/string/Makefile.am, src/string/Makefile.in,
+ src/support/Makefile.am, src/support/Makefile.in,
+ src/time/Makefile.am, src/time/Makefile.in:
+ Remove as they are now redundant with above changes
+
+ * include/Makefile.am:
+ Add to support above changes
+
+ * include/eccconf/libc.h:
+ Change include file for configuration from kernel to system
+
+ * src/include/kerndiag.hxx, src/stdio/device/kerndiag.cxx,
+ src/time/clockfn.cxx:
+ Change kernel include file to eccconf/kernel.h
+
+ * src/include/strngdev.h:
+ remove unnecessary kernel include
+
+ * Makefile.in, aclocal.m4, configure, src/Makefile.in,
+ tests/Makefile.in, include/Makefile.in:
+ regenerate
+
+Mon Apr 6 20:55:07 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdlib/abs.cxx, src/stdlib/atoi.cxx, src/stdlib/atol.cxx,
+ src/stdlib/div.cxx, src/stdlib/labs.cxx, src/stdlib/ldiv.cxx:
+ Separated out functions from stdlib.cxx into separate files
+
+ * src/stdlib/stdlib.cxx:
+ removed to be replaced by above files
+
+ * Makefile.am, src/stdlib/Makefile.am:
+ modified to support building above and not building stdlib.cxx
+
+ * src/support/tsd.cxx:
+ Remove unnecessary header file includes
+
+ * Makefile.in, src/stdlib/Makefile.in:
+ regenerated
+
+Mon Apr 6 19:19:42 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/support/tsd.cxx, include/eccconf/libc.h:
+ remove lame hack for tx39 compiler now that its fixed
+
+ * src/include/sim.hxx:
+ define constants as static to placate compiler
+
+Thu Apr 2 21:01:21 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/ctype/ctype.cxx:
+ deleted and separated out into below files
+
+ * src/ctype/isalnum.cxx, src/ctype/isalpha.cxx, src/ctype/iscntrl.cxx,
+ src/ctype/isdigit.cxx, src/ctype/isgraph.cxx, src/ctype/islower.cxx,
+ src/ctype/isprint.cxx, src/ctype/ispunct.cxx, src/ctype/isspace.cxx,
+ src/ctype/isupper.cxx, src/ctype/isxdigit.cxx, src/ctype/tolower.cxx,
+ src/ctype/toupper.cxx:
+ Separated out individual ctype functions from ctype.cxx into separate
+ files
+
+ * Makefile.am, src/ctype/Makefile.am:
+ modified to reflect above deletion/additions
+
+ * Makefile.in, src/ctype/Makefile.in:
+ regenerated
+
+Thu Apr 2 19:08:26 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/string/strxfrm.cxx: optimise using prefix increments
+
+Thu Apr 2 15:18:15 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/string/strchr.cxx: optimise setting of mask a little
+
+Thu Mar 26 14:07:01 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/support/tsd.cxx: fixed some typos
+
+Thu Mar 26 11:58:47 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/eccconf/libc.h, src/support/tsd.cxx:
+ Implement workaround for tx39 compiler bug.
+
+ * src/include/strsuppt.hxx:
+ remove prototypes for _memcpy() and _memset() as they are now in the
+ kernel
+
+Wed Mar 25 18:31:53 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * Makefile.am, src/string/Makefile.am: memcpy() and memset() are
+ now in the kernel so remove them from build
+ * include/string.h: add a comment to say as much
+ * Makefile.in, src/string/Makefile.in: regenerate
+
+Wed Mar 25 15:30:42 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdlib/_exit.cxx, src/include/file_if.inl:
+ Change _exit workaround to not cause a compiler optimisation
+ problem. Now just references _exit rather than calls it.
+
+Wed Mar 25 14:59:49 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/string/strxfrm.cxx: Fix bug causing tests to fail completely
+ for this function
+
+Wed Mar 25 12:55:53 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/include/sim.hxx: add types to constants (oops!)
+ * Makefile.am: link src/stdio/device/sim.cxx
+ * Makefile.in: regenerated
+
+Wed Mar 25 04:14:30 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/include/file_if.hxx, src/include/file_if.inl,
+ src/include/kerndiag.hxx, src/include/sim.hxx,
+ src/include/stdio_if.hxx, src/include/strngdev.hxx,
+ src/include/tsd.hxx, src/stdio/common/clearerr.cxx,
+ src/stdio/common/clearerr.cxx, src/stdio/common/feof.cxx,
+ src/stdio/common/ferror.cxx, src/stdio/common/file_if.cxx,
+ src/stdio/common/vsprintf.cxx,
+ src/stdio/device/kerndiag.cxx, src/stdio/device/sim.cxx,
+ src/stdio/device/strngdev.cxx, src/stdio/output/fputc.cxx,
+ src/stdio/output/fputs.cxx, src/stdio/output/puts.cxx,
+ src/stdio/output/vfnprintf.cxx, src/support/tsd.cxx:
+ Modified to support buffered reads including renaming
+ _EccInternalFileStruct to __EccStdioStream which is what affects
+ most of these files
+ * src/include/file_if.inl, src/stdio/common/file_if.cxx: added for
+ the above reason
+ * src/stdio/common/sscanf.cxx, src/stdio/input/vfscanf.cxx,
+ src/stdio/input/Makefile.am: added to provide sscanf() functionality
+ * include/ctype.h, include/stdio.h, include/stdlib.h,
+ include/string.h, include/eccconf/libc.h, src/ctype/ctype.cxx,
+ src/stdlib/stdlib.cxx, src/string/strcoll.cxx,
+ src/stdio/common/stdio.cxx:
+ rename *_INLINES macros with prefix CYG rather than ECC
+ * include/errno.h, src/errno/errno.cxx, src/errno/strerror.cxx:
+ rename ErrNo to _ErrNo and add EAGAIN and EWOULDBLOCK error codes
+ * configure.in, Makefile.am, src/stdio/Makefile.am,
+ src/stdio/input/Makefile.am: add support for building
+ file_if.cxx sscanf.cxx and vfscanf.cxx
+ * src/stdio/Makefile.in, src/stdio/common/Makefile.in,
+ src/stdio/input/Makefile.in, configure, Makefile.in: regenerated
+
+Tue Mar 24 19:51:40 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/time/clockfn.cxx, src/time/clock.cxx:
+ Renamed clock.cxx to clockfn.cxx (preserving CVS history)
+ * Makefile.am, src/time/Makefile.am: updated to reflect name change
+ * Makefile.in, src/time/Makefile.in: regenerated
+
+Tue Mar 24 16:28:06 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/ctype.inl: Swap around definitions to get right order so
+ inlining works
+
+Tue Mar 24 14:43:05 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/ctype.h, include/stdio.h, include/stdlib.h, include/string.h:
+ modify to only conditionally include inlines
+ * src/ctype/ctype.cxx, src/stdio/common/stdio.cxx,
+ src/stdlib/stdlib.cxx, src/string/strcoll.cxx,
+ src/ctype/Makefile.am: Add to provide real linkable alternatives
+ to inline functions
+ * Makefile.am, configure.in, src/Makefile.am,
+ src/stdio/common/Makefile.am, src/stdlib/Makefile.am,
+ src/string/Makefile.am: modified to support previous additions
+ * include/eccconf/libc.h: redefine inline macro to add extern inline,
+ and add conditional defines for inline functions. Also rename
+ space vs. speed macro to have CYG instead of ECC prefix
+ * include/stdio.inl: fix comment typo
+ * src/stdlib/qsort.cxx: fix to define inline functions properly
+ * src/string/memchr.cxx, src/string/memcmp.cxx, src/string/memcpy.cxx,
+ src/string/memset.cxx, src/string/strcat.cxx, src/string/strchr.cxx,
+ src/string/strcmp.cxx, src/string/strcpy.cxx, src/string/strlen.cxx,
+ src/string/strncat.cxx, src/string/strncmp.cxx,
+ src/string/strncpy.cxx
+ * Makefile.in, configure, src/Makefile.in, src/ctype/Makefile.in,
+ src/stdio/common/Makefile.in, src/stdlib/Makefile.in,
+ src/string/Makefile.in: regenerate
+
+
+Mon Mar 23 19:19:49 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdlib/_exit.cxx: added to support temporary _exit
+ * include/stdlib.h, include/stdlib.inl: added support for _exit and
+ added abs(), labs(), div() and ldiv() functions
+ * src/include/file_if.hxx: added support for _exit kludge
+ * src/stdlib/qsort.cxx: Added Berkeley copyright message
+ * src/time/clock.cxx: Include correct kernel config header as
+ CYG_CONFIGURATION rather than <config.h>
+ * Makefile.am src/stdlib/Makefile.am: added support for _exit
+ * Makefile.in, src/stdlib/Makefile.in: regenerated
+
+Mon Mar 23 14:41:07 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * Replace ECCPKG_ANSI_LIBC with CYGPKG_ANSI_LIBC in all source files
+
+Mon Mar 23 14:28:44 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/string.inl: add file to provide strcoll()
+ * include/string.h: include string.inl
+ * ctype.h: include ctype.inl (oops!)
+ * include/stdlib.h: include stdlib.inl (oops!)
+
+Mon Mar 23 13:30:38 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/ctype.h, include/ctype.inl: added to provide ANSI ctype
+ functionality
+ * include/stdlib.h, include/stdlib.inl, src/include/stdlibbsp.hxx,
+ src/stdlib/Makefile.am, src/stdlib/bsearch.cxx,
+ src/stdlib/qsort.cxx, src/stdlib/rand.cxx, src/stdlib/srand.cxx,
+ src/stdlib/strtol.cxx, src/stdlib/strtoul.cxx: Added to provide
+ many stdlib functions
+ * src/include/tsd.hxx: modified to support rand() random number
+ seed, and added some comments
+ * configure.in, Makefile.am, src/Makefile.am: modified to support
+ addition of above new sources
+ * include/eccconf/libc.h: Add extra helpful comments, and #include
+ kernel config file
+ * src/time/clock.cxx: #include clock.inl and fix to call
+ get_resolution() properly now
+ * Makefile.in, configure, src/Makefile.in, src/errno/Makefile.in,
+ src/stdio/Makefile.in, src/stdio/common/Makefile.in,
+ src/stdio/device/Makefile.in, src/stdio/output/Makefile.in,
+ src/stdlib/Makefile.in, src/strings/Makefile.in,
+ src/support/Makefile.in, src/time/Makefile.in,
+ tests/Makefile.in: regenerated
+
+
+Sun Mar 22 21:29:25 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/time.h, src/include/timesupp.hxx, src/time/clock.cxx,
+ src/time/Makefile.am: added to provide clock() function
+ * src/Makefile.am: modified to try to build in src/time directory
+ * include/eccconf/libc.h: added and is now the main configuration
+ file for this package
+ * acconfig.h, include/libcconf.h.in, include/stamp-h.in: removed
+ due to usage of libc.h above instead
+ * Almost all *.h, *.hxx and *.cxx: replaced LIBC_CONFIG_HEADER
+ defined include with simple <pkgconf/libc.h>
+ * configure.in: remove AM_CONFIG_HEADER of libcconf.h and
+ LIBC_CONFIG_HEADER definition. Also remove usage of builtin
+ memcpy() etc. from gcc, and generate src/time/Makefile
+ * Makefile.am: link in src/time/clock.o
+ * src/include/file_if.hxx, src/include/sim.hxx: use config header
+ to decide whether C library is to be used
+ * Makefile.in, aclocal.m4, configure, src/Makefile.in: regenerated
+
+Fri Mar 20 18:08:10 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/string/strxfrm.cxx: Fixed bug with ignoring terminating NULL
+
+1998-03-20 Chris Tarpy <ctarpy@bhaji.cygnus.co.uk>
+
+ * configure: - regenerated
+ * Makefile.am: - Support added for libc testcases
+ * Makefile.in: regenerated
+ * configure.in: set c compiler, descend test dir
+ * tests/Makefile.in: added
+ * tests/Makefile.am: added
+ * tests/tcdiag.cxx : added
+
+
+Thu Mar 19 11:41:56 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * Initial check-in of everything
+
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
diff --git a/ecos/packages/language/c/libc/stdlib/current/cdl/stdlib.cdl b/ecos/packages/language/c/libc/stdlib/current/cdl/stdlib.cdl
new file mode 100644
index 0000000..0f8468f
--- /dev/null
+++ b/ecos/packages/language/c/libc/stdlib/current/cdl/stdlib.cdl
@@ -0,0 +1,296 @@
+# ====================================================================
+#
+# stdlib.cdl
+#
+# C library stdlib related configuration data
+#
+# ====================================================================
+## ####ECOSGPLCOPYRIGHTBEGIN####
+## -------------------------------------------
+## This file is part of eCos, the Embedded Configurable Operating System.
+## Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+##
+## eCos is free software; you can redistribute it and/or modify it under
+## the terms of the GNU General Public License as published by the Free
+## Software Foundation; either version 2 or (at your option) any later
+## version.
+##
+## eCos 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 General Public License
+## for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with eCos; if not, write to the Free Software Foundation, Inc.,
+## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+##
+## As a special exception, if other files instantiate templates or use
+## macros or inline functions from this file, or you compile this file
+## and link it with other works to produce a work based on this file,
+## this file does not by itself cause the resulting work to be covered by
+## the GNU General Public License. However the source code for this file
+## must still be made available in accordance with section (3) of the GNU
+## General Public License v2.
+##
+## This exception does not invalidate any other reasons why a work based
+## on this file might be covered by the GNU General Public License.
+## -------------------------------------------
+## ####ECOSGPLCOPYRIGHTEND####
+# ====================================================================
+######DESCRIPTIONBEGIN####
+#
+# Author(s): jlarmour
+# Contributors:
+# Date: 2000-04-14
+#
+#####DESCRIPTIONEND####
+#
+# ====================================================================
+
+cdl_package CYGPKG_LIBC_STDLIB {
+ display "ISO C library general utility functions"
+ description "
+ This package provides general utility functions in <stdlib.h>
+ as specified by the ISO C standard - ISO/IEC 9899:1990."
+ doc ref/libc.html
+ include_dir cyg/libc/stdlib
+ parent CYGPKG_LIBC
+ requires CYGPKG_ISOINFRA
+ implements CYGINT_ISO_STDLIB_STRCONV
+ implements CYGINT_ISO_STDLIB_ENVIRON
+ implements CYGINT_ISO_STDLIB_SYSTEM
+ implements CYGINT_ISO_BSEARCH
+ implements CYGINT_ISO_QSORT
+ implements CYGINT_ISO_ABS
+ implements CYGINT_ISO_DIV
+ requires CYGINT_ISO_CTYPE
+ requires CYGINT_ISO_STRING_STRFUNCS
+
+ compile abs.cxx atox.cxx bsearch.cxx \
+ div.cxx getenv.cxx qsort.cxx \
+ rand.cxx strtod.cxx strtol.cxx \
+ strtoul.cxx system.cxx
+
+# ====================================================================
+
+ cdl_component CYGIMP_LIBC_STDLIB_INLINES {
+ display "Inline versions of <stdlib.h> functions"
+ flavor none
+ no_define
+ description "
+ This option chooses whether some of the
+ particularly simple standard utility functions
+ from <stdlib.h> are available as inline
+ functions. This may improve performance, and as
+ the functions are small, may even improve code
+ size."
+
+ cdl_option CYGIMP_LIBC_STDLIB_INLINE_ABS {
+ display "abs() / labs()"
+ default_value 1
+ no_define
+ requires { CYGBLD_ISO_STDLIB_ABS_HEADER == \
+ "<cyg/libc/stdlib/abs.inl>" }
+ }
+
+ cdl_option CYGIMP_LIBC_STDLIB_INLINE_DIV {
+ display "div() / ldiv()"
+ default_value 1
+ no_define
+ requires { CYGBLD_ISO_STDLIB_DIV_HEADER == \
+ "<cyg/libc/stdlib/div.inl>" }
+ }
+
+ cdl_option CYGIMP_LIBC_STDLIB_INLINE_ATOX {
+ display "atof() / atoi() / atol()"
+ default_value 1
+ no_define
+ requires { CYGBLD_ISO_STDLIB_STRCONV_HEADER == \
+ "<cyg/libc/stdlib/atox.inl>" }
+ }
+ }
+
+ cdl_component CYGPKG_LIBC_RAND {
+ display "Random number generation"
+ flavor none
+ description "
+ These options control the behaviour of the
+ functions rand(), srand() and rand_r()"
+
+ cdl_option CYGSEM_LIBC_PER_THREAD_RAND {
+ display "Per-thread random seed"
+ doc ref/libc-thread-safety.html
+ requires CYGVAR_KERNEL_THREADS_DATA
+ default_value 0
+ description "
+ This option controls whether the pseudo-random
+ number generation functions rand() and srand()
+ have their state recorded on a per-thread
+ basis rather than global. If this option is
+ disabled, some per-thread space can be saved.
+ Note there is also a POSIX-standard rand_r()
+ function to achieve a similar effect with user
+ support. Enabling this option will use one slot
+ of kernel per-thread data. You should ensure you
+ have enough slots configured for all your
+ per-thread data."
+ }
+
+ cdl_option CYGNUM_LIBC_RAND_SEED {
+ display "Random number seed"
+ flavor data
+ legal_values 0 to 0x7fffffff
+ default_value 1
+ description "
+ This selects the initial random number seed for
+ rand()'s pseudo-random number generator. For
+ strict ISO standard compliance, this should be 1,
+ as per section 7.10.2.2 of the standard."
+ }
+
+ cdl_option CYGNUM_LIBC_RAND_TRACE_LEVEL {
+ display "Tracing level"
+ flavor data
+ legal_values 0 to 1
+ default_value 0
+ description "
+ Trace verbosity level for debugging the rand(),
+ srand() and rand_r() functions. Increase this
+ value to get additional trace output."
+ }
+
+ cdl_option CYGIMP_LIBC_RAND_SIMPLEST {
+ display "Simplest implementation"
+ flavor bool
+ default_value 0
+ implements CYGINT_ISO_RAND
+ description "
+ This provides a very simple implementation of rand()
+ that does not perform well with randomness in the
+ lower significant bits. However it is exceptionally
+ fast. It uses the sample algorithm from the ISO C
+ standard itself."
+ }
+
+ cdl_option CYGIMP_LIBC_RAND_SIMPLE1 {
+ display "Simple implementation #1"
+ flavor bool
+ default_value 1
+ implements CYGINT_ISO_RAND
+ description "
+ This provides a very simple implementation of rand()
+ based on the simplest implementation above. However
+ it does try to work around the lack of randomness
+ in the lower significant bits, at the expense of a
+ little speed."
+ }
+
+ cdl_option CYGIMP_LIBC_RAND_KNUTH1 {
+ display "Knuth implementation #1"
+ flavor bool
+ default_value 0
+ implements CYGINT_ISO_RAND
+ description "
+ This implements a slightly more complex algorithm
+ published in Donald E. Knuth's Art of Computer
+ Programming Vol.2 section 3.6 (p.185 in the 3rd ed.).
+ This produces better random numbers than the
+ simplest approach but is slower."
+ }
+ }
+
+ cdl_option CYGFUN_LIBC_strtod {
+ display "Provides strtod()"
+ requires CYGPKG_LIBM
+ default_value { 0 != CYGPKG_LIBM }
+ implements CYGINT_ISO_STDLIB_STRCONV_FLOAT
+ description "
+ This option allows use of the utility function
+ strtod() (and consequently atof()) to convert
+ from string to double precision floating point
+ numbers. Disabling this option removes the
+ dependency on the math library package."
+ }
+
+ cdl_option CYGFUN_LIBC_STDLIB_CONV_LONGLONG {
+ display "Provides long long conversion functions"
+ default_value 1
+ compile strtoll.cxx strtoull.cxx
+ description "
+ Enabling this option will provide support for the strtoll(),
+ strtoull() and atoll() conversion functions, which are
+ the long long variants of the standard versions of these
+ functions. Supporting this requires extra code and compile
+ time."
+ }
+
+ cdl_option CYGNUM_LIBC_BSEARCH_TRACE_LEVEL {
+ display "bsearch() tracing level"
+ flavor data
+ legal_values 0 to 1
+ default_value 0
+ description "
+ Trace verbosity level for debugging the <stdlib.h>
+ binary search function bsearch(). Increase this
+ value to get additional trace output."
+ }
+
+ cdl_option CYGNUM_LIBC_QSORT_TRACE_LEVEL {
+ display "qsort() tracing level"
+ flavor data
+ legal_values 0 to 1
+ default_value 0
+ description "
+ Trace verbosity level for debugging the <stdlib.h>
+ quicksort function qsort(). Increase this value
+ to get additional trace output."
+ }
+
+
+# ====================================================================
+
+ cdl_component CYGPKG_LIBC_STDLIB_OPTIONS {
+ display "C library stdlib build options"
+ flavor none
+ no_define
+ description "
+ Package specific build options including control over
+ compiler flags used only in building this package,
+ and details of which tests are built."
+
+
+ cdl_option CYGPKG_LIBC_STDLIB_CFLAGS_ADD {
+ display "Additional compiler flags"
+ flavor data
+ no_define
+ default_value { "" }
+ description "
+ This option modifies the set of compiler flags for
+ building this package. These flags are used in addition
+ to the set of global flags."
+ }
+
+ cdl_option CYGPKG_LIBC_STDLIB_CFLAGS_REMOVE {
+ display "Suppressed compiler flags"
+ flavor data
+ no_define
+ default_value { "" }
+ description "
+ This option modifies the set of compiler flags for
+ building this package. These flags are removed from
+ the set of global flags if present."
+ }
+
+ cdl_option CYGPKG_LIBC_STDLIB_TESTS {
+ display "C library stdlib tests"
+ flavor data
+ no_define
+ calculated { "tests/abs tests/atoi tests/atol tests/bsearch tests/div tests/getenv tests/labs tests/ldiv tests/qsort tests/rand1 tests/rand2 tests/rand3 tests/rand4 tests/srand tests/strtol tests/strtoul" }
+ description "
+ This option specifies the set of tests for this package."
+ }
+ }
+}
+
+# ====================================================================
+# EOF stdlib.cdl
diff --git a/ecos/packages/language/c/libc/stdlib/current/include/abs.inl b/ecos/packages/language/c/libc/stdlib/current/include/abs.inl
new file mode 100644
index 0000000..3bbaae7
--- /dev/null
+++ b/ecos/packages/language/c/libc/stdlib/current/include/abs.inl
@@ -0,0 +1,113 @@
+#ifndef CYGONCE_LIBC_STDLIB_ABS_INL
+#define CYGONCE_LIBC_STDLIB_ABS_INL
+/*===========================================================================
+//
+// abs.inl
+//
+// Inline implementations for the ISO standard utility functions
+// abs() and labs() defined in section 7.10 of the standard
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors:
+// Date: 2000-04-28
+// Purpose:
+// Description:
+// Usage: Do not include this file directly - include <stdlib.h> instead
+//
+//####DESCRIPTIONEND####
+//
+//=========================================================================*/
+
+/* INCLUDES */
+
+#include <cyg/infra/cyg_trac.h> /* Tracing support */
+
+/* FUNCTION PROTOTYPES */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+extern int
+abs( int /* val */ ) __attribute__((__const__));
+
+extern long
+labs( long /* val */ ) __attribute__((__const__));
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+/* INLINE FUNCTIONS */
+
+#ifndef CYGPRI_LIBC_STDLIB_ABS_INLINE
+# define CYGPRI_LIBC_STDLIB_ABS_INLINE extern __inline__
+#endif
+
+CYGPRI_LIBC_STDLIB_ABS_INLINE int
+abs( int __j )
+{
+ int __retval;
+
+ CYG_REPORT_FUNCNAMETYPE( "abs", "returning %d" );
+
+ __retval = (__j<0) ? -__j : __j;
+
+ CYG_REPORT_RETVAL( __retval );
+
+ return __retval;
+} /* abs() */
+
+CYGPRI_LIBC_STDLIB_ABS_INLINE long
+labs( long __j )
+{
+ long __retval;
+
+ CYG_REPORT_FUNCNAMETYPE( "abs", "returning %ld" );
+
+ __retval = (__j<0) ? -__j : __j;
+
+ CYG_REPORT_RETVAL( __retval );
+
+ return __retval;
+} /* labs() */
+
+
+#endif /* CYGONCE_LIBC_STDLIB_ABS_INL multiple inclusion protection */
+
+/* EOF abs.inl */
diff --git a/ecos/packages/language/c/libc/stdlib/current/include/atox.inl b/ecos/packages/language/c/libc/stdlib/current/include/atox.inl
new file mode 100644
index 0000000..6db9e92
--- /dev/null
+++ b/ecos/packages/language/c/libc/stdlib/current/include/atox.inl
@@ -0,0 +1,192 @@
+#ifndef CYGONCE_LIBC_STDLIB_ATOX_INL
+#define CYGONCE_LIBC_STDLIB_ATOX_INL
+/*===========================================================================
+//
+// atox.inl
+//
+// Inline implementations for the ISO standard utility functions
+// atoi(), atol() and atof() defined in section 7.10 of the standard
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors:
+// Date: 2000-04-28
+// Purpose:
+// Description:
+// Usage: Do not include this file directly - include <stdlib.h> instead
+//
+//####DESCRIPTIONEND####
+//
+//=========================================================================*/
+
+/* CONFIGURATION */
+
+#include <pkgconf/libc_stdlib.h> /* Configuration header */
+
+/* INCLUDES */
+
+#include <stddef.h> /* NULL */
+#include <cyg/infra/cyg_trac.h> /* Tracing support */
+
+/* FUNCTION PROTOTYPES */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifdef CYGFUN_LIBC_strtod
+extern double
+atof( const char * /* double_str */ );
+#endif
+
+extern int
+atoi( const char * /* int_str */ );
+
+extern long
+atol( const char * /* long_str */ );
+
+extern long long
+atoll( const char * /* long_long_str */ );
+
+#ifdef CYGFUN_LIBC_strtod
+extern double
+strtod( const char * /* double_str */, char ** /* endptr */ );
+#endif
+
+extern long
+strtol( const char * /* long_str */, char ** /* endptr */,
+ int /* base */ );
+
+extern unsigned long
+strtoul( const char * /* ulong_str */, char ** /* endptr */,
+ int /* base */ );
+
+#ifdef CYGFUN_LIBC_STDLIB_CONV_LONGLONG
+extern long long
+strtoll( const char * /* long_long_str */, char ** /* endptr */,
+ int /* base */ );
+
+extern unsigned long long
+strtoull( const char * /* ulong_long_str */, char ** /* endptr */,
+ int /* base */ );
+#endif
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+/* INLINE FUNCTIONS */
+
+/* 7.10.1 String conversion functions */
+
+#ifndef CYGPRI_LIBC_STDLIB_ATOX_INLINE
+# define CYGPRI_LIBC_STDLIB_ATOX_INLINE extern __inline__
+#endif
+
+
+#ifdef CYGFUN_LIBC_strtod
+CYGPRI_LIBC_STDLIB_ATOX_INLINE double
+atof( const char *__nptr )
+{
+ double __retval;
+
+ CYG_REPORT_FUNCNAMETYPE( "atof", "returning %f" );
+
+ CYG_CHECK_DATA_PTR( __nptr, "__nptr is an invalid pointer!" );
+
+ __retval = strtod( __nptr, (char **)NULL );
+
+ CYG_REPORT_RETVAL( __retval );
+
+ return __retval;
+} /* atof() */
+#endif
+
+CYGPRI_LIBC_STDLIB_ATOX_INLINE int
+atoi( const char *__nptr )
+{
+ int __retval;
+
+ CYG_REPORT_FUNCNAMETYPE( "atoi", "returning %d" );
+
+ CYG_CHECK_DATA_PTR( __nptr, "__nptr is an invalid pointer!" );
+
+ __retval = (int)strtol( __nptr, (char **)NULL, 10 );
+
+ CYG_REPORT_RETVAL( __retval );
+
+ return __retval;
+} /* atoi() */
+
+
+CYGPRI_LIBC_STDLIB_ATOX_INLINE long
+atol( const char *__nptr )
+{
+ long __retval;
+
+ CYG_REPORT_FUNCNAMETYPE( "atol", "returning %ld" );
+
+ CYG_CHECK_DATA_PTR( __nptr, "__nptr is an invalid pointer!" );
+
+ __retval = strtol( __nptr, (char **)NULL, 10 );
+
+ CYG_REPORT_RETVAL( __retval );
+
+ return __retval;
+} /* atol() */
+
+#ifdef CYGFUN_LIBC_STDLIB_CONV_LONGLONG
+CYGPRI_LIBC_STDLIB_ATOX_INLINE long long
+atoll( const char *__nptr )
+{
+ long long __retval;
+
+ CYG_REPORT_FUNCNAMETYPE( "atoll", "returning %lld" );
+
+ CYG_CHECK_DATA_PTR( __nptr, "__nptr is an invalid pointer!" );
+
+ __retval = strtoll( __nptr, (char **)NULL, 10 );
+
+ CYG_REPORT_RETVAL( __retval );
+
+ return __retval;
+} /* atoll() */
+#endif
+
+#endif /* CYGONCE_LIBC_STDLIB_ATOX_INL multiple inclusion protection */
+
+/* EOF atox.inl */
diff --git a/ecos/packages/language/c/libc/stdlib/current/include/div.inl b/ecos/packages/language/c/libc/stdlib/current/include/div.inl
new file mode 100644
index 0000000..9b5d254
--- /dev/null
+++ b/ecos/packages/language/c/libc/stdlib/current/include/div.inl
@@ -0,0 +1,217 @@
+#ifndef CYGONCE_LIBC_STDLIB_DIV_INL
+#define CYGONCE_LIBC_STDLIB_DIV_INL
+/*===========================================================================
+//
+// div.inl
+//
+// Inline implementations for the ISO standard utility functions
+// div() and ldiv()
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors:
+// Date: 2000-04-28
+// Purpose:
+// Description:
+// Usage: Do not include this file directly - include <stdlib.h> instead
+//
+//####DESCRIPTIONEND####
+//
+//=========================================================================*/
+
+// CONFIGURATION
+
+#include <pkgconf/libc_stdlib.h> // Configuration header
+
+// INCLUDES
+
+#include <cyg/infra/cyg_ass.h> // Assertion support
+#include <cyg/infra/cyg_trac.h> // Tracing support
+
+/* TYPE DEFINITIONS */
+
+/* return type of the div() function */
+
+typedef struct {
+ int quot; /* quotient */
+ int rem; /* remainder */
+} div_t;
+
+
+/* return type of the ldiv() function */
+
+typedef struct {
+ long quot; /* quotient */
+ long rem; /* remainder */
+} ldiv_t;
+
+/* FUNCTION PROTOTYPES */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+extern div_t
+div( int /* numerator */, int /* denominator */ ) __attribute__((__const__));
+
+extern ldiv_t
+ldiv( long /* numerator */, long /* denominator */ ) __attribute__((__const__));
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+/* FUNCTIONS */
+
+#ifndef CYGPRI_LIBC_STDLIB_DIV_INLINE
+# define CYGPRI_LIBC_STDLIB_DIV_INLINE extern __inline__
+#endif
+
+CYGPRI_LIBC_STDLIB_DIV_INLINE div_t
+div( int __numer, int __denom )
+{
+ div_t __ret;
+
+ CYG_REPORT_FUNCNAMETYPE( "div", "quotient: %d");
+ CYG_REPORT_FUNCARG2DV( __numer, __denom );
+ // FIXME: what if they want it handled with SIGFPE? Should have option
+ CYG_PRECONDITION(__denom != 0, "division by zero attempted!");
+
+ __ret.quot = __numer / __denom;
+ __ret.rem = __numer % __denom;
+
+ // But the modulo is implementation-defined for -ve numbers (ISO C 6.3.5)
+ // and we are required to "round" to zero (ISO C 7.10.6.2)
+ //
+ // The cases we have to deal with are inexact division of:
+ // a) + div +
+ // b) + div -
+ // c) - div +
+ // d) - div -
+ //
+ // a) can never go wrong and the quotient and remainder are always positive
+ // b) only goes wrong if the negative quotient has been "rounded" to
+ // -infinity - if so then the remainder will be negative when it
+ // should be positive or zero
+ // c) only goes wrong if the negative quotient has been "rounded" to
+ // -infinity - if so then the remainder will be positive when it
+ // should be negative or zero
+ // d) only goes wrong if the positive quotient has been rounded to
+ // +infinity - if so then the remainder will be positive when it
+ // should be negative or zero
+ //
+ // So the correct sign of the remainder corresponds to the sign of the
+ // numerator. Which means we can say that the result needs adjusting
+ // iff the sign of the numerator is different from the sign of the
+ // remainder.
+ //
+ // You may be interested to know that the Berkeley version of div()
+ // would get this wrong for e.g. (c) and (d) on some targets.
+ // e.g. for (-5)/4 it could leave the result as -2R3
+
+ if ((__ret.rem < 0) && (__numer > 0)) {
+ ++__ret.quot;
+ __ret.rem -= __denom;
+ } else if ((__ret.rem > 0) && (__numer < 0)) {
+ --__ret.quot;
+ __ret.rem += __denom;
+ } // else
+
+ CYG_REPORT_RETVAL( __ret.quot );
+
+ return __ret;
+} // div()
+
+CYGPRI_LIBC_STDLIB_DIV_INLINE ldiv_t
+ldiv( long __numer, long __denom )
+{
+ ldiv_t __ret;
+
+ CYG_REPORT_FUNCNAMETYPE( "ldiv", "quotient: %d");
+ CYG_REPORT_FUNCARG2DV( __numer, __denom );
+ // FIXME: what if they want it handled with SIGFPE? Should have option
+ CYG_PRECONDITION(__denom != 0, "division by zero attempted!");
+
+ __ret.quot = __numer / __denom;
+ __ret.rem = __numer % __denom;
+
+ // But the modulo is implementation-defined for -ve numbers (ISO C 6.3.5)
+ // and we are required to "round" to zero (ISO C 7.10.6.2)
+ //
+ // The cases we have to deal with are inexact division of:
+ // a) + div +
+ // b) + div -
+ // c) - div +
+ // d) - div -
+ //
+ // a) can never go wrong and the quotient and remainder are always positive
+ // b) only goes wrong if the negative quotient has been "rounded" to
+ // -infinity - if so then the remainder will be negative when it
+ // should be positive or zero
+ // c) only goes wrong if the negative quotient has been "rounded" to
+ // -infinity - if so then the remainder will be positive when it
+ // should be negative or zero
+ // d) only goes wrong if the positive quotient has been rounded to
+ // +infinity - if so then the remainder will be positive when it
+ // should be negative or zero
+ //
+ // So the correct sign of the remainder corresponds to the sign of the
+ // numerator. Which means we can say that the result needs adjusting
+ // iff the sign of the numerator is different from the sign of the
+ // remainder.
+ //
+ // You may be interested to know that the Berkeley version of ldiv()
+ // would get this wrong for e.g. (c) and (d) on some targets.
+ // e.g. for (-5)/4 it could leave the result as -2R3
+
+ if ((__ret.rem < 0) && (__numer > 0)) {
+ ++__ret.quot;
+ __ret.rem -= __denom;
+ } else if ((__ret.rem > 0) && (__numer < 0)) {
+ --__ret.quot;
+ __ret.rem += __denom;
+ } // else
+
+ CYG_REPORT_RETVAL( __ret.quot );
+
+ return __ret;
+} // ldiv()
+
+
+#endif // CYGONCE_LIBC_STDLIB_DIV_INL multiple inclusion protection
+
+// EOF div.inl
diff --git a/ecos/packages/language/c/libc/stdlib/current/src/abs.cxx b/ecos/packages/language/c/libc/stdlib/current/src/abs.cxx
new file mode 100644
index 0000000..35f135c
--- /dev/null
+++ b/ecos/packages/language/c/libc/stdlib/current/src/abs.cxx
@@ -0,0 +1,63 @@
+//===========================================================================
+//
+// abs.cxx
+//
+// ISO C standard abs()/labs() utility functions
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors:
+// Date: 2000-04-28
+// Purpose:
+// Description: Real alternative for inline implementation of the ISO
+// standard abs()/labs() utility functions defined in
+// section 7.10.6.1 of the standard
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// We don't want the inline versions of abs/labs defined here
+
+#define CYGPRI_LIBC_STDLIB_ABS_INLINE
+
+/* This means that including abs.inl will make the outline functions */
+
+#include <cyg/libc/stdlib/abs.inl>
+
+// EOF abs.cxx
diff --git a/ecos/packages/language/c/libc/stdlib/current/src/atox.cxx b/ecos/packages/language/c/libc/stdlib/current/src/atox.cxx
new file mode 100644
index 0000000..9b6afc8
--- /dev/null
+++ b/ecos/packages/language/c/libc/stdlib/current/src/atox.cxx
@@ -0,0 +1,63 @@
+//===========================================================================
+//
+// atox.cxx
+//
+// ISO C standard atoi(), atol() and atof() utility functions
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors:
+// Date: 2000-04-28
+// Purpose:
+// Description: Real alternative for inline implementation of the ISO
+// standard atoi(), atol() and atof() utility functions defined
+// in sections 7.10.1.1, 7.10.1.2 and 7.10.1.3 of the standard
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// We don't want the inline versions of atoi(), atol() and atof() defined here
+
+#define CYGPRI_LIBC_STDLIB_ATOX_INLINE
+
+/* This means that including atox.inl will make the outline functions */
+
+#include <cyg/libc/stdlib/atox.inl>
+
+// EOF atox.cxx
diff --git a/ecos/packages/language/c/libc/stdlib/current/src/bsearch.cxx b/ecos/packages/language/c/libc/stdlib/current/src/bsearch.cxx
new file mode 100644
index 0000000..8664098
--- /dev/null
+++ b/ecos/packages/language/c/libc/stdlib/current/src/bsearch.cxx
@@ -0,0 +1,131 @@
+//===========================================================================
+//
+// bsearch.cxx
+//
+// ANSI standard binary search function defined in section 7.10.5.1
+// of the standard
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors:
+// Date: 2000-04-30
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libc_stdlib.h> // Configuration header
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include <cyg/infra/cyg_trac.h> // Tracing support
+#include <cyg/infra/cyg_ass.h> // Assertion support
+#include <stdlib.h> // Header for all stdlib functions
+ // (like this one)
+
+// TRACING
+
+# if defined(CYGDBG_USE_TRACING) && \
+ defined(CYGNUM_LIBC_BSEARCH_TRACE_LEVEL)
+static int bsearch_trace = CYGNUM_LIBC_BSEARCH_TRACE_LEVEL;
+# define TL1 (0 < bsearch_trace)
+# else
+# define TL1 (0)
+# endif
+
+
+// FUNCTIONS
+
+externC void *
+bsearch( const void *key, const void *base, size_t nmemb, size_t size,
+ __bsearch_comparison_fn_t compar )
+{
+ CYG_REPORT_FUNCNAMETYPE( "bsearch", "returning %08x" );
+
+ CYG_REPORT_FUNCARG5( "key=%08x, base=%08x, nmemb=%d, size=%d, "
+ "compar=%08x", key, base, nmemb, size, compar );
+
+ CYG_CHECK_DATA_PTR( key, "key is not a valid pointer!" );
+ CYG_CHECK_DATA_PTR( base, "base is not a valid pointer!" );
+ CYG_CHECK_FUNC_PTR( compar, "compar is not a valid function pointer!" );
+
+ CYG_ADDRESS current;
+ size_t lower = 0;
+ size_t upper = nmemb;
+ size_t index;
+ int result;
+
+ if (nmemb == 0 || size == 0)
+ {
+ CYG_TRACE2( TL1, "Warning! either nmemb (%d) or size (%d) is 0",
+ nmemb, size );
+ CYG_REPORT_RETVAL( NULL );
+ return NULL;
+ } // if
+
+ while (lower < upper)
+ {
+ index = (lower + upper) / 2;
+ current = (CYG_ADDRESS) (((char *) base) + (index * size));
+
+ CYG_TRACE2( TL1, "About to call comparison function with "
+ "key=%08x, current=%08x", key, current );
+ result = compar (key, (void *) current);
+ CYG_TRACE1( TL1, "Comparison function returned %d", result );
+
+ if (result < 0)
+ upper = index;
+ else if (result > 0)
+ lower = index + 1;
+ else
+ {
+ CYG_REPORT_RETVAL( current );
+ return (void *)current;
+ } // else
+ } // while
+
+ CYG_REPORT_RETVAL( NULL );
+ return NULL;
+} // bsearch()
+
+// EOF bsearch.cxx
diff --git a/ecos/packages/language/c/libc/stdlib/current/src/div.cxx b/ecos/packages/language/c/libc/stdlib/current/src/div.cxx
new file mode 100644
index 0000000..34592a4
--- /dev/null
+++ b/ecos/packages/language/c/libc/stdlib/current/src/div.cxx
@@ -0,0 +1,64 @@
+//===========================================================================
+//
+// div.cxx
+//
+// ISO C implementation for div()/ldiv() utility functions
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors:
+// Date: 2000-04-28
+// Description: Real alternative for inline implementation of the ISO
+// standard div()/ldiv() utility functions defined in
+// section 7.10.6.2 of the standard
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+//
+
+// We don't want the inline versions of div/ldiv defined here
+
+#define CYGPRI_LIBC_STDLIB_DIV_INLINE
+
+/* This means that including div.inl will make the outline functions */
+
+#include <cyg/libc/stdlib/div.inl>
+
+// EOF div.cxx
diff --git a/ecos/packages/language/c/libc/stdlib/current/src/getenv.cxx b/ecos/packages/language/c/libc/stdlib/current/src/getenv.cxx
new file mode 100644
index 0000000..4734bb1
--- /dev/null
+++ b/ecos/packages/language/c/libc/stdlib/current/src/getenv.cxx
@@ -0,0 +1,135 @@
+//========================================================================
+//
+// getenv.cxx
+//
+// Implementation of the ISO C standard getenv() function
+//
+//========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors:
+// Date: 2000-04-30
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libc_stdlib.h> // Configuration header
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include <cyg/infra/cyg_ass.h> // Tracing support
+#include <cyg/infra/cyg_trac.h> // Tracing support
+#include <stdlib.h> // Main header for stdlib functions
+#include <string.h> // strchr(), strlen() and strncmp()
+
+
+// VARIABLES
+
+externC char **environ; // standard definition of environ
+
+// FUNCTIONS
+
+extern char *
+getenv( const char *name )
+{
+ // This function assumes the POSIX 1003.1 layout of the environment
+ // in the environ variable, i.e. extern char **environ is a pointer
+ // to an array of character pointers to the environment strings
+ // (POSIX 3.1.2.2 and 2.6).
+ //
+ // getenv() searches the environment list for a string of the form
+ // "name=value" (POSIX 4.6.1). The strings must have this form
+ // (POSIX 2.6)
+
+ CYG_REPORT_FUNCNAMETYPE( "getenv", "returning %08x" );
+
+ CYG_PRECONDITION( name != NULL, "getenv() called with NULL string!" );
+
+ CYG_REPORT_FUNCARG1( "name=%s", name );
+
+ CYG_PRECONDITION( environ != NULL,
+ "environ not set i.e. environ == NULL" );
+
+ CYG_CHECK_DATA_PTR( environ, "environ isn't a valid pointer!" );
+
+ CYG_CHECK_DATA_PTR( name, "name isn't a valid pointer!" );
+
+ // check name doesn't contain '='
+ CYG_PRECONDITION( strchr(name, '=') == NULL,
+ "name contains '='!" );
+
+ char **env_str_p;
+ cyg_ucount32 len = strlen( name );
+
+ for (env_str_p = environ; *env_str_p != NULL; ++env_str_p ) {
+
+ CYG_CHECK_DATA_PTR( env_str_p,
+ "current environment string isn't valid!" );
+
+ CYG_CHECK_DATA_PTR( *env_str_p,
+ "current environment string isn't valid!" );
+
+ // do we have a match?
+ if ( !strncmp(*env_str_p, name, len) ) {
+ // but it could be just a prefix i.e. we could have
+ // matched MYNAMEFRED when we're looking for just MYNAME, so:
+
+ if ( (*env_str_p)[len] == '=' ) {
+ // we got a match
+ CYG_REPORT_RETVAL( *env_str_p + len + 1 );
+
+ return (*env_str_p + len + 1);
+ } // if
+ } // if
+
+ // check the next pointer isn't NULL, as we're about to dereference
+ // it
+ CYG_ASSERT( env_str_p+1 != NULL,
+ "environment contains a NULL pointer!" );
+ } // for
+
+ CYG_REPORT_RETVAL( NULL );
+ return NULL;
+} // getenv()
+
+// EOF getenv.cxx
diff --git a/ecos/packages/language/c/libc/stdlib/current/src/qsort.cxx b/ecos/packages/language/c/libc/stdlib/current/src/qsort.cxx
new file mode 100644
index 0000000..b20f86f
--- /dev/null
+++ b/ecos/packages/language/c/libc/stdlib/current/src/qsort.cxx
@@ -0,0 +1,283 @@
+//===========================================================================
+//
+// qsort.cxx
+//
+// ANSI standard sorting function defined in section 7.10.5.2
+// of the standard
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors:
+// Date: 2000-04-30
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+//
+// This code is based on original code with the following copyright:
+//
+/*-
+ * Copyright (c) 1992, 1993
+ * The Regents of the University of California. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the University nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+
+
+// CONFIGURATION
+
+#include <pkgconf/libc_stdlib.h> // Configuration header
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include <cyg/infra/cyg_trac.h> // Tracing support
+#include <cyg/infra/cyg_ass.h> // Assertion support
+#include <stdlib.h> // Header for all stdlib functions
+ // (like this one)
+
+// TRACING
+
+# if defined(CYGDBG_USE_TRACING) && defined(CYGNUM_LIBC_QSORT_TRACE_LEVEL)
+static int qsort_trace = CYGNUM_LIBC_QSORT_TRACE_LEVEL;
+# define TL1 (0 < qsort_trace)
+# else
+# define TL1 (0)
+# endif
+
+
+// FUNCTION PROTOTYPES
+
+static __inline__ char *med3(char *, char *, char *, __qsort_comparison_fn_t);
+static __inline__ void swapfunc(char *, char *, int, int);
+
+
+// MACRO FUNCTIONS
+
+#define min(a, b) ((a) < (b) ? (a) : (b))
+
+//
+// Qsort routine from Bentley & McIlroy's "Engineering a Sort Function".
+//
+
+#define swapcode(TYPE, parmi, parmj, n) do { \
+ long i = (n) / sizeof (TYPE); \
+ TYPE *pi = (TYPE *) (parmi); \
+ TYPE *pj = (TYPE *) (parmj); \
+ do { \
+ TYPE t = *pi; \
+ *pi++ = *pj; \
+ *pj++ = t; \
+ } while (--i > 0); \
+} while (0)
+
+#define SWAPINIT(a, es) swaptype = ((char *)a - (char *)0) % sizeof(long) || \
+ es % sizeof(long) ? 2 : es == sizeof(long)? 0 : 1;
+
+
+#define swap(a, b) \
+ if (swaptype == 0) { \
+ long t = *(long *)(a); \
+ *(long *)(a) = *(long *)(b); \
+ *(long *)(b) = t; \
+ } else \
+ swapfunc(a, b, size, swaptype)
+
+#define vecswap(a, b, n) if ((n) > 0) swapfunc(a, b, n, swaptype)
+
+
+// FUNCTIONS
+
+// Debug wrapper for comparison function
+static __inline__ int
+cmp_wrapper( __qsort_comparison_fn_t cmp, void *x, void *y )
+{
+ int retval;
+ CYG_TRACE3( TL1, "Calling comparison function address %08x with args "
+ "( %08x, %08x )", cmp, x, y );
+ retval = cmp(x, y);
+
+ CYG_TRACE1( TL1, "Comparison function returned %d", retval );
+
+ return retval;
+} // cmp_wrapper()
+
+static __inline__ void
+swapfunc( char *a, char *b, int n, int swaptype)
+{
+ if(swaptype <= 1)
+ swapcode(long, a, b, n);
+ else
+ swapcode(char, a, b, n);
+} // swapfunc()
+
+
+static __inline__ char *
+med3( char *a, char *b, char *c, __qsort_comparison_fn_t cmp )
+{
+ return cmp_wrapper(cmp, a, b) < 0 ?
+ (cmp_wrapper(cmp, b, c) < 0 ? b : (cmp_wrapper(cmp, a, c) < 0 ? c : a ))
+ :(cmp_wrapper(cmp, b, c) > 0 ? b : (cmp_wrapper(cmp, a, c) < 0 ? a : c ));
+} // med3()
+
+
+void
+qsort( void *base, size_t nmemb, size_t size, __qsort_comparison_fn_t compar )
+{
+ char *pa, *pb, *pc, *pd, *pl, *pm, *pn;
+ int d, r, swaptype, swap_cnt;
+
+ CYG_REPORT_FUNCNAME( "qsort" );
+ CYG_REPORT_FUNCARG4( "base=%08x, nmemb=%d, size=%d, compar=%08x",
+ base, nmemb, size, compar );
+
+ CYG_CHECK_DATA_PTR( base, "base is not a valid pointer!" );
+ CYG_CHECK_FUNC_PTR( compar, "compar is not a valid function pointer!" );
+
+loop:
+ SWAPINIT(base, size);
+ swap_cnt = 0;
+ if (nmemb < 7) {
+ for (pm = (char *) base + size;
+ pm < (char *) base + nmemb * size;
+ pm += size)
+ for (pl = pm; pl > (char *) base && cmp_wrapper( compar, pl - size, pl) > 0;
+ pl -= size)
+ swap(pl, pl - size);
+ {
+ CYG_REPORT_RETURN();
+ return;
+ } // for
+ } // if
+ pm = (char *) base + (nmemb / 2) * size;
+ if (nmemb > 7) {
+ pl = (char *) base;
+ pn = (char *) base + (nmemb - 1) * size;
+ if (nmemb > 40) {
+ d = (nmemb / 8) * size;
+ pl = med3(pl, pl + d, pl + 2 * d, compar);
+ pm = med3(pm - d, pm, pm + d, compar);
+ pn = med3(pn - 2 * d, pn - d, pn, compar);
+ } // if
+ pm = med3(pl, pm, pn, compar);
+ } // if
+ swap( (char *)base, pm );
+ pa = pb = (char *) base + size;
+
+ pc = pd = (char *) base + (nmemb - 1) * size;
+ for (;;) {
+ while (pb <= pc && (r = cmp_wrapper( compar, pb, base)) <= 0) {
+ if (r == 0) {
+ swap_cnt = 1;
+ swap(pa, pb);
+ pa += size;
+ } // if
+ pb += size;
+ } // while
+ while (pb <= pc && (r = cmp_wrapper( compar, pc, base)) >= 0) {
+ if (r == 0) {
+ swap_cnt = 1;
+ swap(pc, pd);
+ pd -= size;
+ } // if
+ pc -= size;
+ } // while
+ if (pb > pc)
+ break;
+ swap(pb, pc);
+ swap_cnt = 1;
+ pb += size;
+ pc -= size;
+ } // for
+ if (swap_cnt == 0) { // Switch to insertion sort
+ for (pm = (char *) base + size;
+ pm < (char *) base + nmemb * size;
+ pm += size)
+ for (pl = pm; pl > (char *) base && cmp_wrapper( compar, pl - size, pl) > 0;
+ pl -= size)
+ swap(pl, pl - size);
+ {
+ CYG_REPORT_RETURN();
+ return;
+ } // for
+ } //if
+
+ pn = (char *) base + nmemb * size;
+ r = min(pa - (char *)base, pb - pa);
+ vecswap((char *)base, pb - r, r);
+ r = min( (unsigned)(pd - pc), pn - pd - size );
+ vecswap(pb, pn - r, r);
+ if ((unsigned)(r = pb - pa) > size)
+ qsort(base, r / size, size, compar);
+ if ((unsigned)(r = pd - pc) > size) {
+ // Iterate rather than recurse to save stack space
+ base = pn - r;
+ nmemb = r / size;
+ goto loop;
+ } // if
+/* qsort(pn - r, r / size, size, compar);*/
+
+ CYG_REPORT_RETURN();
+} // qsort()
+
+// EOF qsort.cxx
diff --git a/ecos/packages/language/c/libc/stdlib/current/src/rand.cxx b/ecos/packages/language/c/libc/stdlib/current/src/rand.cxx
new file mode 100644
index 0000000..47db321
--- /dev/null
+++ b/ecos/packages/language/c/libc/stdlib/current/src/rand.cxx
@@ -0,0 +1,251 @@
+//===========================================================================
+//
+// rand.cxx
+//
+// ISO and POSIX 1003.1 standard random number generation functions
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors:
+// Date: 2000-04-30
+// Purpose: Provides ISO C rand() and srand() functions, along with
+// POSIX 1003.1 rand_r() function
+// Description: This implements rand() and srand() of section 7.10.2.1 of
+// the ISO C standard. Also rand_r() defined in section 8.3.8
+// of the POSIX 1003.1 standard
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libc_stdlib.h> // Configuration header
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include <cyg/infra/cyg_trac.h> // Tracing support
+#include <cyg/infra/cyg_ass.h> // Assertion support
+#include <stdlib.h> // Header for all stdlib functions
+ // (like this one)
+
+#ifdef CYGSEM_LIBC_PER_THREAD_RAND
+# include <pkgconf/kernel.h> // kernel configuration
+# include <cyg/kernel/thread.hxx> // per-thread data
+# include <cyg/kernel/thread.inl> // per-thread data
+# include <cyg/kernel/mutex.hxx> // mutexes
+#endif
+
+// TRACE
+
+#if defined(CYGDBG_USE_TRACING) && defined(CYGNUM_LIBC_RAND_TRACE_LEVEL)
+static int rand_trace = CYGNUM_LIBC_RAND_TRACE_LEVEL;
+# define TL1 (0 < rand_trace)
+#else
+# define TL1 (0)
+#endif
+
+
+// STATICS
+
+#ifdef CYGSEM_LIBC_PER_THREAD_RAND
+static Cyg_Thread::cyg_data_index
+rand_data_index=CYGNUM_KERNEL_THREADS_DATA_MAX;
+
+static Cyg_Mutex rand_data_mutex CYGBLD_ATTRIB_INIT_PRI(CYG_INIT_LIBC);
+#else
+static unsigned int cyg_libc_rand_seed = CYGNUM_LIBC_RAND_SEED;
+#endif
+
+// FUNCTIONS
+
+int
+rand( void )
+{
+ unsigned int *seed_p;
+ int retval;
+
+ CYG_REPORT_FUNCNAMETYPE( "rand", "returning %d" );
+
+ // get seed for this thread (if relevant )
+#ifdef CYGSEM_LIBC_PER_THREAD_RAND
+ Cyg_Thread *self = Cyg_Thread::self();
+
+ // Get a per-thread data slot if we haven't got one already
+ // Do a simple test before locking and retrying test, as this is a
+ // rare situation
+ if (CYGNUM_KERNEL_THREADS_DATA_MAX==rand_data_index) {
+ rand_data_mutex.lock();
+ if (CYGNUM_KERNEL_THREADS_DATA_MAX==rand_data_index) {
+
+ // FIXME: Should use real CDL to pre-allocate a slot at compile
+ // time to ensure there are enough slots
+ rand_data_index = self->new_data_index();
+ CYG_ASSERT(rand_data_index >= 0, "failed to allocate data index" );
+
+ // Initialize seed
+ self->set_data(rand_data_index, CYGNUM_LIBC_RAND_SEED);
+ }
+ rand_data_mutex.unlock();
+ } // if
+
+ // we have a valid index now
+
+ seed_p = (unsigned int *)self->get_data_ptr(rand_data_index);
+#else
+ seed_p = &cyg_libc_rand_seed;
+#endif
+
+ CYG_TRACE2( TL1, "Retrieved seed address %08x containing %d",
+ seed_p, *seed_p );
+ CYG_CHECK_DATA_PTR( seed_p, "Help! Returned address of seed is invalid!" );
+
+ retval = rand_r( seed_p );
+
+ CYG_REPORT_RETVAL( retval );
+
+ return retval;
+
+} // rand()
+
+
+int
+rand_r( unsigned int *seed )
+{
+ int retval;
+
+ CYG_REPORT_FUNCNAMETYPE( "rand_r", "returning %d" );
+
+ CYG_CHECK_DATA_PTR( seed, "pointer to seed invalid!" );
+
+#if defined(CYGIMP_LIBC_RAND_SIMPLEST)
+
+ // This algorithm sucks in the lower bits
+
+ *seed = (*seed * 1103515245) + 12345; // permutate seed
+
+ retval = (int)( *seed & RAND_MAX );
+
+#elif defined(CYGIMP_LIBC_RAND_SIMPLE1)
+
+ // The above algorithm sucks in the lower bits, so we shave them off
+ // and repeat a couple of times to make it up
+
+ unsigned int s=*seed;
+ unsigned int uret;
+
+ s = (s * 1103515245) + 12345; // permutate seed
+ // Only use top 11 bits
+ uret = s & 0xffe00000;
+
+ s = (s * 1103515245) + 12345; // permutate seed
+ // Only use top 14 bits
+ uret += (s & 0xfffc0000) >> 11;
+
+ s = (s * 1103515245) + 12345; // permutate seed
+ // Only use top 7 bits
+ uret += (s & 0xfe000000) >> (11+14);
+
+ retval = (int)(uret & RAND_MAX);
+ *seed = s;
+
+#elif defined(CYGIMP_LIBC_RAND_KNUTH1)
+
+// This is the code supplied in Knuth Vol 2 section 3.6 p.185 bottom
+
+#define MM 2147483647 // a Mersenne prime
+#define AA 48271 // this does well in the spectral test
+#define QQ 44488 // (long)(MM/AA)
+#define RR 3399 // MM % AA; it is important that RR<QQ
+
+ *seed = AA*(*seed % QQ) - RR*(unsigned int)(*seed/QQ);
+ if (*seed < 0)
+ *seed += MM;
+
+ retval = (int)( *seed & RAND_MAX );
+
+#else
+# error No valid implementation for rand()!
+#endif
+
+ CYG_REPORT_RETVAL( retval );
+
+ return retval;
+
+} // rand_r()
+
+
+void
+srand( unsigned int seed )
+{
+ CYG_REPORT_FUNCNAME( "srand" );
+
+ CYG_REPORT_FUNCARG1DV( (int)seed );
+
+ // get seed for this thread ( if relevant )
+#ifdef CYGSEM_LIBC_PER_THREAD_RAND
+ Cyg_Thread *self = Cyg_Thread::self();
+
+ // Get a per-thread data slot if we haven't got one already
+ // Do a simple test before locking and retrying test, as this is a
+ // rare situation
+ if (CYGNUM_KERNEL_THREADS_DATA_MAX==rand_data_index) {
+ rand_data_mutex.lock();
+ if (CYGNUM_KERNEL_THREADS_DATA_MAX==rand_data_index) {
+
+ // FIXME: Should use real CDL to pre-allocate a slot at compile
+ // time to ensure there are enough slots
+ rand_data_index = self->new_data_index();
+ CYG_ASSERT(rand_data_index >= 0, "failed to allocate data index" );
+ }
+ rand_data_mutex.unlock();
+ } // if
+
+ // we have a valid index now
+
+ self->set_data(rand_data_index, (CYG_ADDRWORD) seed);
+#else
+ cyg_libc_rand_seed = seed;
+#endif
+
+ CYG_REPORT_RETURN();
+
+} // srand()
+
+// EOF rand.cxx
diff --git a/ecos/packages/language/c/libc/stdlib/current/src/strtod.cxx b/ecos/packages/language/c/libc/stdlib/current/src/strtod.cxx
new file mode 100644
index 0000000..424567e
--- /dev/null
+++ b/ecos/packages/language/c/libc/stdlib/current/src/strtod.cxx
@@ -0,0 +1,262 @@
+//===========================================================================
+//
+// strtod.cxx
+//
+// ISO String to double-precision floating point conversion
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors:
+// Date: 2000-04-30
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libc_stdlib.h> // Configuration header
+
+// Include strtod()?
+#if defined(CYGFUN_LIBC_strtod)
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include <cyg/infra/cyg_trac.h> // Tracing support
+#include <cyg/infra/cyg_ass.h> // Assertion support
+#include <stddef.h> // NULL, wchar_t and size_t from compiler
+#include <stdlib.h> // Main header for stdlib functions
+#include <ctype.h> // isspace() and isdigit()
+#include <float.h> // DBL_MIN_10_EXP and DBL_MAX_10_EXP
+#include <math.h> // HUGE_VAL
+#include <errno.h> // errno
+
+// CONSTANTS
+
+#define MAXE (DBL_MAX_10_EXP)
+#define MINE (DBL_MIN_10_EXP)
+
+// flags
+#define SIGN 0x01
+#define ESIGN 0x02
+#define DECP 0x04
+
+
+// MACROS
+
+#define Ise(c) ((c == 'e') || (c == 'E'))
+#define Issign(c) ((c == '-') || (c == '+'))
+#define Val(c) ((c - '0'))
+
+
+// FUNCTIONS
+
+/*
+ * [atw] multiply 64 bit accumulator by 10 and add digit.
+ * The KA/CA way to do this should be to use
+ * a 64-bit integer internally and use "adjust" to
+ * convert it to float at the end of processing.
+ */
+static int
+ten_mul(double *acc, int digit)
+{
+ /* [atw] Crude, but effective (at least on a KB)...
+ */
+ *acc *= 10;
+ *acc += digit;
+
+ return 0; /* no overflow */
+} // ten_mul()
+
+
+/*
+ * compute 10**x by successive squaring.
+ */
+
+static const double
+exp10(unsigned x)
+{
+ static double powtab[] = {1.0,
+ 10.0,
+ 100.0,
+ 1000.0,
+ 10000.0};
+
+ if (x < (sizeof(powtab)/sizeof(double)))
+ return powtab[x];
+ else if (x & 1)
+ return 10.0 * exp10(x-1);
+ else
+ return exp10(x/2) * exp10(x/2);
+} // exp10()
+
+
+/*
+ * return (*acc) scaled by 10**dexp.
+ */
+
+static double
+adjust(double *acc, int dexp, int sign)
+ /* *acc the 64 bit accumulator */
+ /* dexp decimal exponent */
+ /* sign sign flag */
+{
+ double r;
+
+ if (dexp > MAXE)
+ {
+ errno = ERANGE;
+ return (sign) ? -HUGE_VAL : HUGE_VAL;
+ }
+ else if (dexp < MINE)
+ {
+ errno = ERANGE;
+ return 0.0;
+ }
+
+ r = *acc;
+ if (sign)
+ r = -r;
+ if (dexp==0)
+ return r;
+
+ if (dexp < 0)
+ return r / exp10(abs(dexp));
+ else
+ return r * exp10(dexp);
+} // adjust()
+
+
+externC double
+strtod( const char *nptr, char **endptr )
+{
+ const char *start=nptr;
+ double accum = 0.0;
+ int flags = 0;
+ int texp = 0;
+ int e = 0;
+ int conv_done = 0;
+
+ double retval;
+
+ CYG_REPORT_FUNCNAMETYPE( "strtod", "returning %f" );
+
+ CYG_CHECK_DATA_PTR( nptr, "nptr is an invalid pointer!" );
+
+ // endptr is allowed to be NULL, but if it isn't, we check it
+ if (endptr != NULL)
+ CYG_CHECK_DATA_PTR( endptr, "endptr is an invalid pointer!" );
+
+ while(isspace(*nptr)) nptr++;
+ if(*nptr == '\0')
+ { /* just leading spaces */
+ if(endptr != NULL) *endptr = (char *)start;
+ return 0.0;
+ }
+
+
+ if(Issign(*nptr))
+ {
+ if(*nptr == '-') flags = SIGN;
+ if(*++nptr == '\0')
+ { /* "+|-" : should be an error ? */
+ if(endptr != NULL) *endptr = (char *)start;
+ return 0.0;
+ }
+ }
+
+ for(; (isdigit(*nptr) || (*nptr == '.')); nptr++)
+ {
+ conv_done = 1;
+ if(*nptr == '.')
+ flags |= DECP;
+ else
+ {
+ if( ten_mul(&accum, Val(*nptr)) ) texp++;
+ if(flags & DECP) texp--;
+ }
+ }
+
+ if(Ise(*nptr))
+ {
+ conv_done = 1;
+ if(*++nptr != '\0') /* skip e|E */
+ { /* ! ([nptr]xxx[.[yyy]]e) */
+
+ while(isspace(*nptr)) nptr++; /* Ansi allows spaces after e */
+ if(*nptr != '\0')
+ { /* ! ([nptr]xxx[.[yyy]]e[space]) */
+
+ if(Issign(*nptr))
+ if(*nptr++ == '-') flags |= ESIGN;
+
+ if(*nptr != '\0')
+ { /* ! ([nptr]xxx[.[yyy]]e[nptr]) -- error?? */
+
+ for(; isdigit(*nptr); nptr++)
+ if (e < MAXE) /* prevent from grossly overflowing */
+ e = e*10 + Val(*nptr);
+
+ /* dont care what comes after this */
+ if(flags & ESIGN)
+ texp -= e;
+ else
+ texp += e;
+ }
+ }
+ }
+ }
+
+ if(endptr != NULL)
+ *endptr = (char *)((conv_done) ? nptr : start);
+
+ retval = adjust(&accum, (int)texp, (int)(flags & SIGN));
+
+
+ CYG_REPORT_RETVAL( retval );
+
+ return retval;
+} // strtod()
+
+
+#endif // if defined(CYGFUN_LIBC_strtod)
+
+// EOF strtod.cxx
diff --git a/ecos/packages/language/c/libc/stdlib/current/src/strtol.cxx b/ecos/packages/language/c/libc/stdlib/current/src/strtol.cxx
new file mode 100644
index 0000000..35e07d3
--- /dev/null
+++ b/ecos/packages/language/c/libc/stdlib/current/src/strtol.cxx
@@ -0,0 +1,202 @@
+//===========================================================================
+//
+// strtol.cxx
+//
+// ISO standard string to long int conversion function defined in
+// section 7.10.1.5 of the standard
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors:
+// Date: 2000-04-30
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+//
+// This code is based on original code with the following copyright:
+//
+/*-
+ * Copyright (c) 1990 The Regents of the University of California.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the University nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+
+// CONFIGURATION
+
+#include <pkgconf/libc_stdlib.h> // Configuration header
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include <cyg/infra/cyg_trac.h> // Tracing support
+#include <cyg/infra/cyg_ass.h> // Assertion support
+#include <limits.h> // Definition of LONG_MIN and LONG_MAX
+#include <ctype.h> // Definition of many ctype functions
+#include <errno.h> // Error code definitions
+#include <stdlib.h> // Header for all stdlib functions
+ // (like this one)
+
+
+// FUNCTIONS
+
+//
+// Convert a string to a long integer.
+//
+// Ignores `locale' stuff. Assumes that the upper and lower case
+// alphabets and digits are each contiguous.
+//
+
+long
+strtol( const char *nptr, char **endptr, int base )
+{
+ const char *s = nptr;
+ unsigned long acc;
+ int c;
+ unsigned long cutoff;
+ int neg = 0, any, cutlim;
+
+ CYG_REPORT_FUNCNAMETYPE( "strtol", "returning long %d" );
+ CYG_REPORT_FUNCARG3( "nptr=%08x, endptr=%08x, base=%d",
+ nptr, endptr, base );
+ CYG_CHECK_DATA_PTR( nptr, "nptr is not a valid pointer!" );
+
+ if (endptr != NULL)
+ CYG_CHECK_DATA_PTR( endptr, "endptr is not a valid pointer!" );
+
+ //
+ // Skip white space and pick up leading +/- sign if any.
+ // If base is 0, allow 0x for hex and 0 for octal, else
+ // assume decimal; if base is already 16, allow 0x.
+ //
+
+ do {
+ c = *s++;
+ } while (isspace(c));
+ if (c == '-') {
+ neg = 1;
+ c = *s++;
+ } else if (c == '+')
+ c = *s++;
+ if ((base == 0 || base == 16) &&
+ c == '0' && (*s == 'x' || *s == 'X')) {
+ c = s[1];
+ s += 2;
+ base = 16;
+ }
+ if (base == 0)
+ base = c == '0' ? 8 : 10;
+
+ //
+ // Compute the cutoff value between legal numbers and illegal
+ // numbers. That is the largest legal value, divided by the
+ // base. An input number that is greater than this value, if
+ // followed by a legal input character, is too big. One that
+ // is equal to this value may be valid or not; the limit
+ // between valid and invalid numbers is then based on the last
+ // digit. For instance, if the range for longs is
+ // [-2147483648..2147483647] and the input base is 10,
+ // cutoff will be set to 214748364 and cutlim to either
+ // 7 (neg==0) or 8 (neg==1), meaning that if we have accumulated
+ // a value > 214748364, or equal but the next digit is > 7 (or 8),
+ // the number is too big, and we will return a range error.
+ //
+ // Set any if any `digits' consumed; make it negative to indicate
+ // overflow.
+ //
+
+ cutoff = neg ? -(unsigned long)LONG_MIN : LONG_MAX;
+ cutlim = cutoff % (unsigned long)base;
+ cutoff /= (unsigned long)base;
+ for (acc = 0, any = 0;; c = *s++) {
+ if (isdigit(c))
+ c -= '0';
+ else if (isalpha(c))
+ c -= isupper(c) ? 'A' - 10 : 'a' - 10;
+ else
+ break;
+ if (c >= base)
+ break;
+ if ((any < 0) || (acc > cutoff) || ((acc == cutoff) && (c > cutlim)))
+ any = -1;
+ else {
+ any = 1;
+ acc *= base;
+ acc += c;
+ }
+ }
+ if (any < 0) {
+ acc = neg ? LONG_MIN : LONG_MAX;
+ errno = ERANGE;
+ } else if (neg)
+ acc = -acc;
+ if (endptr != 0)
+ *endptr = (char *) (any ? s - 1 : nptr);
+
+ CYG_REPORT_RETVAL ( acc );
+
+ return acc;
+} // strtol()
+
+// EOF strtol.cxx
diff --git a/ecos/packages/language/c/libc/stdlib/current/src/strtoll.cxx b/ecos/packages/language/c/libc/stdlib/current/src/strtoll.cxx
new file mode 100644
index 0000000..014109e
--- /dev/null
+++ b/ecos/packages/language/c/libc/stdlib/current/src/strtoll.cxx
@@ -0,0 +1,201 @@
+//===========================================================================
+//
+// strtoll.cxx
+//
+// String to long long int conversion function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: Fredrik Hederstierna, converted file from long to long long.
+// Date: 2000-04-30, 2004-02-19
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+//
+// This code is based on original code with the following copyright:
+//
+/*-
+ * Copyright (c) 1990 The Regents of the University of California.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the University nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+
+// CONFIGURATION
+
+#include <pkgconf/libc_stdlib.h> // Configuration header
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include <cyg/infra/cyg_trac.h> // Tracing support
+#include <cyg/infra/cyg_ass.h> // Assertion support
+#include <limits.h> // Definition of LONG_LONG_MIN and LONG_LONG_MAX
+#include <ctype.h> // Definition of many ctype functions
+#include <errno.h> // Error code definitions
+#include <stdlib.h> // Header for all stdlib functions
+ // (like this one)
+
+
+// FUNCTIONS
+
+//
+// Convert a string to a long long integer.
+//
+// Ignores `locale' stuff. Assumes that the upper and lower case
+// alphabets and digits are each contiguous.
+//
+
+long long
+strtoll( const char *nptr, char **endptr, int base )
+{
+ const char *s = nptr;
+ unsigned long long acc;
+ int c;
+ unsigned long long cutoff;
+ int neg = 0, any, cutlim;
+
+ CYG_REPORT_FUNCNAMETYPE( "strtoll", "returning long long %lld" );
+ CYG_REPORT_FUNCARG3( "nptr=%08x, endptr=%08x, base=%d",
+ nptr, endptr, base );
+ CYG_CHECK_DATA_PTR( nptr, "nptr is not a valid pointer!" );
+
+ if (endptr != NULL)
+ CYG_CHECK_DATA_PTR( endptr, "endptr is not a valid pointer!" );
+
+ //
+ // Skip white space and pick up leading +/- sign if any.
+ // If base is 0, allow 0x for hex and 0 for octal, else
+ // assume decimal; if base is already 16, allow 0x.
+ //
+
+ do {
+ c = *s++;
+ } while (isspace(c));
+ if (c == '-') {
+ neg = 1;
+ c = *s++;
+ } else if (c == '+')
+ c = *s++;
+ if ((base == 0 || base == 16) &&
+ c == '0' && (*s == 'x' || *s == 'X')) {
+ c = s[1];
+ s += 2;
+ base = 16;
+ }
+ if (base == 0)
+ base = c == '0' ? 8 : 10;
+
+ //
+ // Compute the cutoff value between legal numbers and illegal
+ // numbers. That is the largest legal value, divided by the
+ // base. An input number that is greater than this value, if
+ // followed by a legal input character, is too big. One that
+ // is equal to this value may be valid or not; the limit
+ // between valid and invalid numbers is then based on the last
+ // digit. For instance, if the range for long longs is
+ // [-2147483648..2147483647] and the input base is 10,
+ // cutoff will be set to 214748364 and cutlim to either
+ // 7 (neg==0) or 8 (neg==1), meaning that if we have accumulated
+ // a value > 214748364, or equal but the next digit is > 7 (or 8),
+ // the number is too big, and we will return a range error.
+ //
+ // Set any if any `digits' consumed; make it negative to indicate
+ // overflow.
+ //
+
+ cutoff = neg ? -(unsigned long long)LONG_LONG_MIN : LONG_LONG_MAX;
+ cutlim = cutoff % (unsigned long long)base;
+ cutoff /= (unsigned long long)base;
+ for (acc = 0, any = 0;; c = *s++) {
+ if (isdigit(c))
+ c -= '0';
+ else if (isalpha(c))
+ c -= isupper(c) ? 'A' - 10 : 'a' - 10;
+ else
+ break;
+ if (c >= base)
+ break;
+ if ((any < 0) || (acc > cutoff) || ((acc == cutoff) && (c > cutlim)))
+ any = -1;
+ else {
+ any = 1;
+ acc *= base;
+ acc += c;
+ }
+ }
+ if (any < 0) {
+ acc = neg ? LONG_LONG_MIN : LONG_LONG_MAX;
+ errno = ERANGE;
+ } else if (neg)
+ acc = -acc;
+ if (endptr != 0)
+ *endptr = (char *) (any ? s - 1 : nptr);
+
+ CYG_REPORT_RETVAL ( acc );
+
+ return acc;
+} // strtoll()
+
+// EOF strtoll.cxx
diff --git a/ecos/packages/language/c/libc/stdlib/current/src/strtoul.cxx b/ecos/packages/language/c/libc/stdlib/current/src/strtoul.cxx
new file mode 100644
index 0000000..3de3092
--- /dev/null
+++ b/ecos/packages/language/c/libc/stdlib/current/src/strtoul.cxx
@@ -0,0 +1,178 @@
+//===========================================================================
+//
+// strtoul.cxx
+//
+// ISO standard string to long int conversion function defined in
+// section 7.10.1.6 of the standard
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors:
+// Date: 2000-04-30
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+//
+// This code is based on original code with the following copyright:
+//
+/*
+ * Copyright (c) 1990 Regents of the University of California.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the University nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+
+// CONFIGURATION
+
+#include <pkgconf/libc_stdlib.h> // Configuration header
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include <cyg/infra/cyg_trac.h> // Tracing support
+#include <cyg/infra/cyg_ass.h> // Assertion support
+#include <limits.h> // Definition of ULONG_MAX
+#include <ctype.h> // Definition of many ctype functions
+#include <errno.h> // Error code definitions
+#include <stdlib.h> // Header for all stdlib functions
+ // (like this one)
+
+
+// FUNCTIONS
+
+//
+// Convert a string to an unsigned long integer.
+//
+// Ignores `locale' stuff. Assumes that the upper and lower case
+// alphabets and digits are each contiguous.
+//
+
+unsigned long
+strtoul( const char *nptr, char **endptr, int base )
+{
+ const char *s = nptr;
+ unsigned long acc;
+ int c;
+ unsigned long cutoff;
+ int neg = 0, any, cutlim;
+
+ CYG_REPORT_FUNCNAMETYPE( "strtoul", "returning long %d" );
+ CYG_REPORT_FUNCARG3( "nptr=%08x, endptr=%08x, base=%d",
+ nptr, endptr, base );
+ CYG_CHECK_DATA_PTR( nptr, "nptr is not a valid pointer!" );
+
+ if (endptr != NULL)
+ CYG_CHECK_DATA_PTR( endptr, "endptr is not a valid pointer!" );
+ //
+ // See strtol for comments as to the logic used.
+ //
+ do {
+ c = *s++;
+ } while (isspace(c));
+ if (c == '-') {
+ neg = 1;
+ c = *s++;
+ } else if (c == '+')
+ c = *s++;
+ if ((base == 0 || base == 16) &&
+ c == '0' && (*s == 'x' || *s == 'X')) {
+ c = s[1];
+ s += 2;
+ base = 16;
+ }
+ if (base == 0)
+ base = c == '0' ? 8 : 10;
+ cutoff = (unsigned long)ULONG_MAX / (unsigned long)base;
+ cutlim = (unsigned long)ULONG_MAX % (unsigned long)base;
+ for (acc = 0, any = 0;; c = *s++) {
+ if (isdigit(c))
+ c -= '0';
+ else if (isalpha(c))
+ c -= isupper(c) ? 'A' - 10 : 'a' - 10;
+ else
+ break;
+ if (c >= base)
+ break;
+ if ((any < 0) || (acc > cutoff) || ((acc == cutoff) && (c > cutlim)))
+ any = -1;
+ else {
+ any = 1;
+ acc *= base;
+ acc += c;
+ }
+ }
+ if (any < 0) {
+ acc = ULONG_MAX;
+ errno = ERANGE;
+ } else if (neg)
+ acc = -acc;
+ if (endptr != 0)
+ *endptr = (char *) (any ? s - 1 : nptr);
+
+ CYG_REPORT_RETVAL( acc );
+
+ return acc;
+} // strtoul()
+
+// EOF strtoul.cxx
diff --git a/ecos/packages/language/c/libc/stdlib/current/src/strtoull.cxx b/ecos/packages/language/c/libc/stdlib/current/src/strtoull.cxx
new file mode 100644
index 0000000..47829eb
--- /dev/null
+++ b/ecos/packages/language/c/libc/stdlib/current/src/strtoull.cxx
@@ -0,0 +1,177 @@
+//===========================================================================
+//
+// strtoull.cxx
+//
+// String to unsigned long long int conversion function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: Fredrik Hederstierna, converted file from long to long long.
+// Date: 2000-04-30, 2004-02-19
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+//
+// This code is based on original code with the following copyright:
+//
+/*
+ * Copyright (c) 1990 Regents of the University of California.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the University nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+
+// CONFIGURATION
+
+#include <pkgconf/libc_stdlib.h> // Configuration header
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include <cyg/infra/cyg_trac.h> // Tracing support
+#include <cyg/infra/cyg_ass.h> // Assertion support
+#include <limits.h> // Definition of ULONG_LONG_MAX
+#include <ctype.h> // Definition of many ctype functions
+#include <errno.h> // Error code definitions
+#include <stdlib.h> // Header for all stdlib functions
+ // (like this one)
+
+
+// FUNCTIONS
+
+//
+// Convert a string to an unsigned long long integer.
+//
+// Ignores `locale' stuff. Assumes that the upper and lower case
+// alphabets and digits are each contiguous.
+//
+
+unsigned long long
+strtoull( const char *nptr, char **endptr, int base )
+{
+ const char *s = nptr;
+ unsigned long long acc;
+ int c;
+ unsigned long long cutoff;
+ int neg = 0, any, cutlim;
+
+ CYG_REPORT_FUNCNAMETYPE( "strtoull", "returning long long %lld" );
+ CYG_REPORT_FUNCARG3( "nptr=%08x, endptr=%08x, base=%d",
+ nptr, endptr, base );
+ CYG_CHECK_DATA_PTR( nptr, "nptr is not a valid pointer!" );
+
+ if (endptr != NULL)
+ CYG_CHECK_DATA_PTR( endptr, "endptr is not a valid pointer!" );
+ //
+ // See strtoll for comments as to the logic used.
+ //
+ do {
+ c = *s++;
+ } while (isspace(c));
+ if (c == '-') {
+ neg = 1;
+ c = *s++;
+ } else if (c == '+')
+ c = *s++;
+ if ((base == 0 || base == 16) &&
+ c == '0' && (*s == 'x' || *s == 'X')) {
+ c = s[1];
+ s += 2;
+ base = 16;
+ }
+ if (base == 0)
+ base = c == '0' ? 8 : 10;
+ cutoff = (unsigned long long)ULONG_LONG_MAX / (unsigned long long)base;
+ cutlim = (unsigned long long)ULONG_LONG_MAX % (unsigned long long)base;
+ for (acc = 0, any = 0;; c = *s++) {
+ if (isdigit(c))
+ c -= '0';
+ else if (isalpha(c))
+ c -= isupper(c) ? 'A' - 10 : 'a' - 10;
+ else
+ break;
+ if (c >= base)
+ break;
+ if ((any < 0) || (acc > cutoff) || ((acc == cutoff) && (c > cutlim)))
+ any = -1;
+ else {
+ any = 1;
+ acc *= base;
+ acc += c;
+ }
+ }
+ if (any < 0) {
+ acc = ULONG_LONG_MAX;
+ errno = ERANGE;
+ } else if (neg)
+ acc = -acc;
+ if (endptr != 0)
+ *endptr = (char *) (any ? s - 1 : nptr);
+
+ CYG_REPORT_RETVAL( acc );
+
+ return acc;
+} // strtoull()
+
+// EOF strtoull.cxx
diff --git a/ecos/packages/language/c/libc/stdlib/current/src/system.cxx b/ecos/packages/language/c/libc/stdlib/current/src/system.cxx
new file mode 100644
index 0000000..b5f884c
--- /dev/null
+++ b/ecos/packages/language/c/libc/stdlib/current/src/system.cxx
@@ -0,0 +1,68 @@
+//========================================================================
+//
+// system.cxx
+//
+// Implementation of ISO C system() function from section 7.10.4.5
+//
+//========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors:
+// Date: 2000-04-30
+// Purpose: This file implements the ISO C system() function
+// Description: This file provides a trivial implementation of the
+// system() function from ISO C section 7.10.4.5. It
+// simply exists to show that a command processor is
+// not available
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//========================================================================
+
+// INCLUDES
+
+#include <stdlib.h> // Header for this file
+
+// FUNCTIONS
+
+extern "C" int
+system( const char * )
+{
+ return 0;
+} // system()
+
+// EOF system.cxx
diff --git a/ecos/packages/language/c/libc/stdlib/current/tests/abs.c b/ecos/packages/language/c/libc/stdlib/current/tests/abs.c
new file mode 100644
index 0000000..e7a961e
--- /dev/null
+++ b/ecos/packages/language/c/libc/stdlib/current/tests/abs.c
@@ -0,0 +1,105 @@
+//=================================================================
+//
+// abs.c
+//
+// Testcase for C library abs()
+//
+//=================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): ctarpy, jlarmour
+// Contributors:
+// Date: 2000-04-30
+// Description: Contains testcode for C library abs() function
+//
+//
+//####DESCRIPTIONEND####
+
+// INCLUDES
+#include <pkgconf/system.h>
+#include <stdlib.h>
+#include <limits.h>
+#include <cyg/infra/testcase.h>
+
+// FUNCTIONS
+
+#ifndef CYGPKG_LIBC_STARTUP
+void cyg_user_start(void)
+#else
+int
+main( int argc, char *argv[] )
+#endif
+{
+ int x;
+
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for C "
+ "library abs() function");
+
+ // Check 1
+ x = 5;
+ CYG_TEST_PASS_FAIL( abs(x) == 5, "abs(5)");
+
+ // Check 2
+ x = -5;
+ CYG_TEST_PASS_FAIL( abs(x) == 5, "abs(-5)");
+
+ // Check 3
+ x = 12345;
+ CYG_TEST_PASS_FAIL( abs(x) == 12345, "abs(12345)");
+
+ // Check 4
+ x = -23456;
+ CYG_TEST_PASS_FAIL( abs(x) == 23456, "abs(-23456");
+
+ // Check 5
+ x = 0;
+ CYG_TEST_PASS_FAIL( abs(x) == 0, "abs(0)");
+
+ // Check 6
+ x = INT_MAX;
+ CYG_TEST_PASS_FAIL( abs(x) == INT_MAX, "abs(INT_MAX)");
+
+ // Check 7
+ x = -INT_MAX;
+ CYG_TEST_PASS_FAIL( abs(x) == INT_MAX, "abs(-INT_MAX)");
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for C "
+ "library abs() function");
+
+} // main()
+
+// EOF abs.c
diff --git a/ecos/packages/language/c/libc/stdlib/current/tests/atoi.c b/ecos/packages/language/c/libc/stdlib/current/tests/atoi.c
new file mode 100644
index 0000000..0e45f3b
--- /dev/null
+++ b/ecos/packages/language/c/libc/stdlib/current/tests/atoi.c
@@ -0,0 +1,115 @@
+//=================================================================
+//
+// atoi.c
+//
+// Testcase for C library atoi()
+//
+//=================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors:
+// Date: 2000-04-30
+// Description: Contains testcode for C library atoi() function
+//
+//
+//####DESCRIPTIONEND####
+
+// INCLUDES
+
+#include <pkgconf/system.h>
+#include <stdlib.h>
+#include <cyg/infra/testcase.h>
+
+// FUNCTIONS
+
+static char *
+my_strcpy(char *s1, const char *s2)
+{
+ while (*s2 != '\0') {
+ *(s1++) = *(s2++);
+ }
+ *s1 = '\0';
+
+ return s1;
+} // my_strcpy()
+
+
+static void
+test( CYG_ADDRWORD data )
+{
+ char x[30];
+
+ // Check 1
+ my_strcpy(x, "20");
+ CYG_TEST_PASS_FAIL( atoi(x) == 20, "atoi(20)");
+
+ // Check 2
+ my_strcpy(x, "1972");
+ CYG_TEST_PASS_FAIL( atoi(x) == 1972, "atoi(1972)");
+
+ // Check 3
+ my_strcpy(x, "-9876");
+ CYG_TEST_PASS_FAIL( atoi(x) == -9876, "atoi(-9876)");
+
+ // Check 4
+ my_strcpy(x, " -9876xxx");
+ CYG_TEST_PASS_FAIL( atoi(x) == -9876, "atoi( -9876xxx)");
+
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for C library "
+ "atoi() function");
+} // test()
+
+
+#ifndef CYGPKG_LIBC_STARTUP
+void cyg_user_start(void)
+#else
+int
+main( int argc, char *argv[] )
+#endif
+{
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for C library "
+ "atoi() function");
+
+ test(0);
+
+ CYG_TEST_FAIL_FINISH("Not reached");
+
+} // main()
+
+// EOF atoi.c
diff --git a/ecos/packages/language/c/libc/stdlib/current/tests/atol.c b/ecos/packages/language/c/libc/stdlib/current/tests/atol.c
new file mode 100644
index 0000000..da3b6d1
--- /dev/null
+++ b/ecos/packages/language/c/libc/stdlib/current/tests/atol.c
@@ -0,0 +1,112 @@
+//=================================================================
+//
+// atol.c
+//
+// Testcase for C library atol()
+//
+//=================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): ctarpy, jlarmour
+// Contributors:
+// Date: 2000-04-30
+// Description: Contains testcode for C library atol() function
+//
+//
+//####DESCRIPTIONEND####
+
+// INCLUDES
+
+#include <pkgconf/system.h>
+#include <stdlib.h>
+#include <cyg/infra/testcase.h>
+
+// FUNCTIONS
+
+static char *
+my_strcpy(char *s1, const char *s2)
+{
+ while (*s2 != '\0') {
+ *(s1++) = *(s2++);
+ }
+ *s1 = '\0';
+
+ return s1;
+} // my_strcpy()
+
+
+static void
+test( CYG_ADDRWORD data )
+{
+ char x[30];
+
+ // Check 1
+ my_strcpy(x, "20");
+ CYG_TEST_PASS_FAIL( atol(x) == 20, "atol(20)");
+
+ // Check 2
+ my_strcpy(x, "1972");
+ CYG_TEST_PASS_FAIL( atol(x) == 1972, "atol(1972)");
+
+ // Check 3
+ my_strcpy(x, "-98765");
+ CYG_TEST_PASS_FAIL( atol(x) == -98765, "atol(-98765)");
+
+ // Check 4
+ my_strcpy(x, " -98765xxx");
+ CYG_TEST_PASS_FAIL( atol(x) == -98765, "atol( -98765xxx)");
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for C library "
+ "atol() function");
+} // test()
+
+#ifndef CYGPKG_LIBC_STARTUP
+void cyg_user_start(void)
+#else
+int
+main( int argc, char *argv[] )
+#endif
+{
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for C library "
+ "atol() function");
+
+ test(0);
+
+ CYG_TEST_NA("Testing is not applicable to this configuration");
+} // main()
+
+// EOF atol.c
diff --git a/ecos/packages/language/c/libc/stdlib/current/tests/bsearch.c b/ecos/packages/language/c/libc/stdlib/current/tests/bsearch.c
new file mode 100644
index 0000000..2056d50
--- /dev/null
+++ b/ecos/packages/language/c/libc/stdlib/current/tests/bsearch.c
@@ -0,0 +1,135 @@
+//=================================================================
+//
+// bsearch.c
+//
+// Testcase for C library bsearch()
+//
+//=================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): ctarpy, jlarmour
+// Contributors:
+// Date: 2000-04-30
+// Description: Contains testcode for C library bsearch() function
+//
+//
+//####DESCRIPTIONEND####
+
+// INCLUDES
+
+#include <pkgconf/system.h>
+#include <stdlib.h>
+#include <cyg/infra/testcase.h>
+
+
+// FUNCTIONS
+
+static int
+Compar( const void *int1, const void *int2 )
+{
+ if ( *(int*)int1 < *(int*)int2 )
+ return -1;
+ else if ( *(int*)int1 == *(int*)int2 )
+ return 0;
+ else
+ return 1;
+} // Compar()
+
+#ifndef CYGPKG_LIBC_STARTUP
+void cyg_user_start(void)
+#else
+int
+main( int argc, char *argv[] )
+#endif
+{
+ int key;
+ int *result;
+ int i_array[] = {1, 5, 8, 35, 84, 258, 1022, 1022, 5300, 7372, 9029};
+
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for C library "
+ "bsearch() function");
+
+ // Test 1
+ key = 8;
+ result = bsearch(&key, i_array, sizeof(i_array)/sizeof(i_array[0]),
+ sizeof(i_array[0]), &Compar);
+ CYG_TEST_PASS_FAIL( (result!=NULL) && (*result == 8),
+ "bsearch() something in the middle");
+
+ // Test 2
+ key = 5300;
+ result = bsearch(&key, i_array, sizeof(i_array)/sizeof(i_array[0]),
+ sizeof(i_array[0]), &Compar);
+ CYG_TEST_PASS_FAIL( (result!=NULL) && (*result == 5300),
+ "bsearch() something else in the middle");
+
+ // Test 3
+ key = 1;
+ result = bsearch(&key, i_array, sizeof(i_array)/sizeof(i_array[0]),
+ sizeof(i_array[0]), &Compar);
+ CYG_TEST_PASS_FAIL( (result!=NULL) && (*result == 1),
+ "bsearch() first element");
+
+ // Test 4
+ key = 9029;
+ result = bsearch(&key, i_array, sizeof(i_array)/sizeof(i_array[0]),
+ sizeof(i_array[0]), &Compar);
+ CYG_TEST_PASS_FAIL( (result!=NULL) && (*result == 9029),
+ "bsearch() last element");
+
+ // Test 5
+ key = 1022;
+ result = bsearch(&key, i_array, sizeof(i_array)/sizeof(i_array[0]),
+ sizeof(i_array[0]), &Compar);
+ CYG_TEST_PASS_FAIL( (result!=NULL) && (*result == 1022),
+ "bsearch() duplicate element");
+
+ // Test 6
+ key = 2;
+ result = bsearch(&key, i_array, sizeof(i_array)/sizeof(i_array[0]),
+ sizeof(i_array[0]), &Compar);
+ CYG_TEST_PASS_FAIL( result==NULL, "bsearch() nonexistent element");
+
+// CYG_TEST_NA("Testing is not applicable to this configuration");
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for C library "
+ "bsearch() function");
+
+} // main()
+
+
+// EOF bsearch.c
diff --git a/ecos/packages/language/c/libc/stdlib/current/tests/div.c b/ecos/packages/language/c/libc/stdlib/current/tests/div.c
new file mode 100644
index 0000000..cc1096b
--- /dev/null
+++ b/ecos/packages/language/c/libc/stdlib/current/tests/div.c
@@ -0,0 +1,122 @@
+//=================================================================
+//
+// div.c
+//
+// Testcase for C library div()
+//
+//=================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): ctarpy, jlarmour
+// Contributors:
+// Date: 2000-04-30
+// Description: Contains testcode for C library div() function
+//
+//
+//####DESCRIPTIONEND####
+
+// INCLUDES
+
+#include <pkgconf/system.h>
+#include <stdlib.h>
+#include <cyg/infra/testcase.h>
+
+// FUNCTIONS
+
+#ifndef CYGPKG_LIBC_STARTUP
+void cyg_user_start(void)
+#else
+int
+main( int argc, char *argv[] )
+#endif
+{
+ int num, denom;
+ div_t result;
+
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for C library "
+ "div() function");
+
+ num = 10232;
+ denom = 43;
+ result = div(num, denom);
+ CYG_TEST_PASS_FAIL( (result.quot==237) && (result.rem==41),
+ "div( 10232, 43 )");
+
+ num = 4232;
+ denom = 2000;
+ result = div(num, denom);
+ CYG_TEST_PASS_FAIL( (result.quot==2) && (result.rem==232),
+ "div( 4232, 2000 )");
+
+
+ num = 20;
+ denom = 20;
+ result = div(num, denom);
+ CYG_TEST_PASS_FAIL( (result.quot==1) && (result.rem==0),
+ "div( 20, 20 )");
+
+ num = -5;
+ denom = 4;
+ result = div(num, denom);
+ CYG_TEST_PASS_FAIL( (result.quot==-1) && (result.rem==-1),
+ "div( -5, 4 )");
+
+ num = 5;
+ denom = -4;
+ result = div(num, denom);
+ CYG_TEST_PASS_FAIL( (result.quot==-1) && (result.rem==1),
+ "div( 5, -4 )");
+
+ num = -5;
+ denom = -3;
+ result = div(num, denom);
+ CYG_TEST_PASS_FAIL( (result.quot==1) && (result.rem==-2),
+ "div( -5, -3 )");
+
+ num = -7;
+ denom = -7;
+ result = div(num, denom);
+ CYG_TEST_PASS_FAIL( (result.quot==1) && (result.rem==0),
+ "div( -7, -7 )");
+
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for C library "
+ "div() function");
+
+} // main()
+
+// EOF div.c
diff --git a/ecos/packages/language/c/libc/stdlib/current/tests/getenv.c b/ecos/packages/language/c/libc/stdlib/current/tests/getenv.c
new file mode 100644
index 0000000..6545bd2
--- /dev/null
+++ b/ecos/packages/language/c/libc/stdlib/current/tests/getenv.c
@@ -0,0 +1,164 @@
+//=================================================================
+//
+// getenv.c
+//
+// Testcase for C library getenv()
+//
+//=================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors:
+// Date: 2000-04-30
+// Description: Contains testcode for C library getenv() function
+//
+//
+//####DESCRIPTIONEND####
+
+// INCLUDES
+
+#include <pkgconf/system.h>
+#include <stdlib.h> // Main header for stdlib functions
+#include <cyg/infra/testcase.h> // Testcase API
+
+#ifdef CYGPKG_ISOINFRA
+# include <pkgconf/isoinfra.h>
+#endif
+#if !defined(CYGINT_ISO_ENVIRON) || (CYGINT_ISO_ENVIRON == 0)
+# define N_A_MSG "There is no implementation of the environ variable"
+#endif
+
+#ifndef N_A_MSG
+// GLOBALS
+
+extern char **environ; // Standard environment definition
+
+// FUNCTIONS
+
+static int
+my_strcmp(const char *s1, const char *s2)
+{
+ for ( ; *s1 == *s2 ; s1++,s2++ )
+ {
+ if ( *s1 == '\0' )
+ break;
+ } // for
+
+ return (*s1 - *s2);
+} // my_strcmp()
+
+#ifndef CYGPKG_LIBC_STARTUP
+void cyg_user_start(void)
+#else
+int
+main( int argc, char *argv[] )
+#endif
+{
+ char *str;
+
+ char *env1[] = { NULL };
+ char *env2[] = { "WIBBLE=fred", NULL };
+ char *env3[] = { "PATH=/usr/local/bin:/usr/bin",
+ "HOME=/home/fred",
+ "TEST=1234=5678",
+ "home=hatstand",
+ NULL };
+
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for C "
+ "library getenv() function");
+
+
+ // Check 1
+ str = getenv("ThisIsAVeryUnlikelyName");
+ CYG_TEST_PASS_FAIL( str==NULL, "Simple getenv() default environ" );
+
+ // Check 2
+ environ = (char **)&env1;
+ str = getenv("wibble");
+ CYG_TEST_PASS_FAIL( str==NULL, "Simple getenv() with empty environ" );
+
+ // Check 3
+ environ = (char **)&env2;
+ str = getenv("WIBBLE");
+ CYG_TEST_PASS_FAIL( (str != NULL) && !my_strcmp(str, "fred"),
+ "Simple getenv()" );
+
+ // Check 4
+ str = getenv("wibble");
+ CYG_TEST_PASS_FAIL( str==NULL,
+ "Simple getenv() for something not in the "
+ "environment" );
+
+ // Check 5
+ environ = (char **)&env3;
+ str = getenv("PATH");
+ CYG_TEST_PASS_FAIL( (str!= NULL) &&
+ !my_strcmp(str,"/usr/local/bin:/usr/bin"),
+ "Multiple string environment" );
+
+ // Check 6
+ str = getenv("PATh");
+ CYG_TEST_PASS_FAIL( str==NULL, "getenv() for something not in the "
+ "environment for multiple string environment" );
+
+ // Check 7
+ str = getenv("home");
+ CYG_TEST_PASS_FAIL( (str != NULL) && !my_strcmp(str, "hatstand"),
+ "Case-sensitive environment names" );
+
+ // Check 8
+ str = getenv("TEST");
+ CYG_TEST_PASS_FAIL( (str != NULL) && !my_strcmp(str, "1234=5678"),
+ "environment value containing '='" );
+
+// CYG_TEST_NA("Testing is not applicable to this configuration");
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for C "
+ "library getenv() function");
+
+} // main()
+
+#else // N_A_MSG
+externC void
+cyg_start( void )
+{
+ CYG_TEST_INIT();
+ CYG_TEST_NA( N_A_MSG);
+}
+#endif
+
+// EOF getenv.c
diff --git a/ecos/packages/language/c/libc/stdlib/current/tests/labs.c b/ecos/packages/language/c/libc/stdlib/current/tests/labs.c
new file mode 100644
index 0000000..7b5d407
--- /dev/null
+++ b/ecos/packages/language/c/libc/stdlib/current/tests/labs.c
@@ -0,0 +1,102 @@
+//=================================================================
+//
+// labs.c
+//
+// Testcase for C library labs()
+//
+//=================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): ctarpy, jlarmour
+// Contributors:
+// Date: 2000-04-30
+// Description: Contains testcode for C library labs() function
+//
+//
+//####DESCRIPTIONEND####
+
+// INCLUDES
+
+#include <pkgconf/system.h>
+#include <stdlib.h>
+#include <cyg/infra/testcase.h>
+
+// FUNCTIONS
+
+#ifndef CYGPKG_LIBC_STARTUP
+void cyg_user_start(void)
+#else
+int
+main( int argc, char *argv[] )
+#endif
+{
+ int x;
+
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for C library "
+ "labs() function");
+
+ // Check 1
+ x = 5;
+ CYG_TEST_PASS_FAIL( labs(x) == 5, "labs(5)");
+
+ // Check 2
+ x = -5;
+ CYG_TEST_PASS_FAIL( labs(x) == 5, "labs(-5)");
+
+ // Check 3
+ x = 12345;
+ CYG_TEST_PASS_FAIL( labs(x) == 12345, "labs(12345)");
+
+ // Check 4
+ x = -23456;
+ CYG_TEST_PASS_FAIL( labs(x) == 23456, "labs(-23456");
+
+ // Check 5
+ x = 3456789;
+ CYG_TEST_PASS_FAIL( labs(x) == 3456789, "labs(3456789");
+
+ // Check 6
+ x = -23456789;
+ CYG_TEST_PASS_FAIL( labs(x) == 23456789, "labs(-23456789");
+
+// CYG_TEST_NA("Testing is not applicable to this configuration");
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for C library "
+ "labs() function");
+} // main()
+
+// EOF labs.c
diff --git a/ecos/packages/language/c/libc/stdlib/current/tests/ldiv.c b/ecos/packages/language/c/libc/stdlib/current/tests/ldiv.c
new file mode 100644
index 0000000..bc2be35
--- /dev/null
+++ b/ecos/packages/language/c/libc/stdlib/current/tests/ldiv.c
@@ -0,0 +1,133 @@
+//=================================================================
+//
+// ldiv.c
+//
+// Testcase for C library ldiv()
+//
+//=================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): ctarpy, jlarmour
+// Contributors:
+// Date: 2000-04-30
+// Description: Contains testcode for C library ldiv() function
+//
+//
+//####DESCRIPTIONEND####
+
+// INCLUDES
+
+#include <pkgconf/system.h>
+#include <stdlib.h>
+#include <cyg/infra/testcase.h>
+
+
+// FUNCTIONS
+
+#ifndef CYGPKG_LIBC_STARTUP
+void cyg_user_start(void)
+#else
+int
+main( int argc, char *argv[] )
+#endif
+{
+ long num, denom;
+ ldiv_t result;
+
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for C library "
+ "ldiv() function");
+
+ num = 10232;
+ denom = 43;
+ result = ldiv(num, denom);
+ CYG_TEST_PASS_FAIL( (result.quot==237) && (result.rem==41),
+ "ldiv( 10232, 43 )");
+
+ num = 4232;
+ denom = 2000;
+ result = ldiv(num, denom);
+ CYG_TEST_PASS_FAIL( (result.quot==2) && (result.rem==232),
+ "ldiv( 4232, 2000 )");
+
+ num = 20;
+ denom = 20;
+ result = ldiv(num, denom);
+ CYG_TEST_PASS_FAIL( (result.quot==1) && (result.rem==0),
+ "ldiv( 20, 20 )");
+
+ num = -5;
+ denom = 4;
+ result = ldiv(num, denom);
+ CYG_TEST_PASS_FAIL( (result.quot==-1) && (result.rem==-1),
+ "ldiv( -5, 4 )");
+
+ num = 5;
+ denom = -4;
+ result = ldiv(num, denom);
+ CYG_TEST_PASS_FAIL( (result.quot==-1) && (result.rem==1),
+ "ldiv( 5, -4 )");
+
+ num = -5;
+ denom = -3;
+ result = ldiv(num, denom);
+ CYG_TEST_PASS_FAIL( (result.quot==1) && (result.rem==-2),
+ "ldiv( -5, -3 )");
+
+ num = -7;
+ denom = -7;
+ result = ldiv(num, denom);
+ CYG_TEST_PASS_FAIL( (result.quot==1) && (result.rem==0),
+ "ldiv( -7, -7 )");
+
+ num = 90123456;
+ denom = 12345678;
+ result = ldiv(num, denom);
+ CYG_TEST_PASS_FAIL( (result.quot==7) && (result.rem==3703710),
+ "ldiv( 90123456, 12345678 )");
+
+ num = 90123456;
+ denom = 123;
+ result = ldiv(num, denom);
+ CYG_TEST_PASS_FAIL( (result.quot==732711) && (result.rem==3),
+ "ldiv( 90123456, 123 )");
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for C library "
+ "ldiv() function");
+
+} // main()
+
+// EOF ldiv.c
diff --git a/ecos/packages/language/c/libc/stdlib/current/tests/qsort.c b/ecos/packages/language/c/libc/stdlib/current/tests/qsort.c
new file mode 100644
index 0000000..4cb083a
--- /dev/null
+++ b/ecos/packages/language/c/libc/stdlib/current/tests/qsort.c
@@ -0,0 +1,109 @@
+//=================================================================
+//
+// qsort.c
+//
+// Testcase for C library qsort()
+//
+//=================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors:
+// Date: 2000-04-30
+// Description: Contains testcode for C library qsort() function
+//
+//
+//####DESCRIPTIONEND####
+
+// INCLUDES
+
+#include <pkgconf/system.h>
+#include <stdlib.h>
+#include <cyg/infra/testcase.h>
+
+
+// FUNCTIONS
+
+
+static int
+Compar( const void *int1, const void *int2 )
+{
+ if ( *(int*)int1 < *(int*)int2 )
+ return -1;
+ else if ( *(int*)int1 == *(int*)int2 )
+ return 0;
+ else
+ return 1;
+} // Compar()
+
+#ifndef CYGPKG_LIBC_STARTUP
+void cyg_user_start(void)
+#else
+int
+main( int argc, char *argv[] )
+#endif
+{
+ unsigned int ctr;
+ int fail=0;
+ int i_array_sorted[] = {1, 5, 8, 35, 84, 258, 1022, 5300, 7372, 9029};
+ int i_array_unsorted[] = {258, 8, 7372, 1, 5, 9029, 1022, 35, 5300, 84};
+
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for C library "
+ "qsort() function");
+
+ qsort(i_array_unsorted,
+ sizeof(i_array_unsorted) / sizeof(i_array_unsorted[0]),
+ sizeof(int), &Compar);
+
+ for (ctr = 0;
+ ctr < (sizeof(i_array_unsorted) / sizeof(i_array_unsorted[0]));
+ ++ctr)
+ {
+ if (i_array_sorted[ctr] != i_array_unsorted[ctr])
+ ++fail;
+ } // for
+
+ CYG_TEST_PASS_FAIL( fail == 0, "qsort() sorts correctly" );
+
+// CYG_TEST_NA("Testing is not applicable to this configuration");
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for C library "
+ "qsort() function");
+
+} // main()
+
+// EOF qsort.c
diff --git a/ecos/packages/language/c/libc/stdlib/current/tests/rand1.c b/ecos/packages/language/c/libc/stdlib/current/tests/rand1.c
new file mode 100644
index 0000000..bc13588
--- /dev/null
+++ b/ecos/packages/language/c/libc/stdlib/current/tests/rand1.c
@@ -0,0 +1,104 @@
+//=================================================================
+//
+// rand1.c
+//
+// Testcase for C library rand()
+//
+//=================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): ctarpy, jlarmour
+// Contributors:
+// Date: 2000-04-30
+// Description: Contains testcode for C library rand() function
+//
+//
+//####DESCRIPTIONEND####
+
+// INCLUDES
+
+#include <pkgconf/system.h>
+#include <stdlib.h>
+#include <cyg/infra/testcase.h>
+
+// CONSTANTS
+
+// This is the max allowable hits, where a hit is an element
+// of a random array being the same as index+1 or index+2
+#define TOLERANCE 2
+
+// FUNCTIONS
+
+static void
+test( CYG_ADDRWORD data )
+{
+ int ctr;
+ static int array[1024];
+ int hits=0;
+
+ for (ctr=0; ctr<1024; ctr++)
+ array[ctr] = rand();
+
+ for (ctr=0; ctr< 1021; ctr++)
+ if ((array[ctr]==array[ctr+1]) ||
+ (array[ctr]==array[ctr+2]) ||
+ (array[ctr]==array[ctr+3]))
+ hits++;
+
+ CYG_TEST_PASS_FAIL(hits <= TOLERANCE,
+ "Simple test for rand() repetition");
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for "
+ "C library rand() function");
+} // test()
+
+#ifndef CYGPKG_LIBC_STARTUP
+void cyg_user_start(void)
+#else
+int
+main( int argc, char *argv[] )
+#endif
+{
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for C library "
+ "rand() function");
+
+ test(0);
+
+ CYG_TEST_NA("Testing is not applicable to this configuration");
+} // main()
+
+// EOF rand1.c
diff --git a/ecos/packages/language/c/libc/stdlib/current/tests/rand2.c b/ecos/packages/language/c/libc/stdlib/current/tests/rand2.c
new file mode 100644
index 0000000..1a4d893
--- /dev/null
+++ b/ecos/packages/language/c/libc/stdlib/current/tests/rand2.c
@@ -0,0 +1,111 @@
+//=================================================================
+//
+// rand2.c
+//
+// Testcase for C library rand()
+//
+//=================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): ctarpy, jlarmour
+// Contributors:
+// Date: 2000-04-30
+// Description: Contains testcode for C library rand() function
+//
+//
+//####DESCRIPTIONEND####
+
+// INCLUDES
+
+#include <pkgconf/system.h>
+#include <pkgconf/libc_stdlib.h> // CYGNUM_LIBC_RAND_SEED
+#include <stdlib.h>
+#include <cyg/infra/testcase.h>
+
+
+// FUNCTIONS
+
+static void
+test( CYG_ADDRWORD data )
+{
+ static int rand_data1[100];
+ static int rand_data2[100];
+ int count;
+ int fail=0;
+
+ // Test that rand starts with the seed as CYGNUM_LIBC_RAND_SEED
+
+ for ( count=0; count < 100; ++count ) {
+ rand_data1[count] = rand();
+ } // for
+
+ // set seed to CYGNUM_LIBC_RAND_SEED
+ srand(CYGNUM_LIBC_RAND_SEED);
+
+ for ( count=0; count < 100; ++count ) {
+ rand_data2[count] = rand();
+ } // for
+
+ for ( count=0; count < 100; ++count ) {
+ if (rand_data1[count] != rand_data2[count])
+ ++fail;
+ } // for
+
+ CYG_TEST_PASS_FAIL(fail==0, "rand() has seed initialised to "
+ "CYGNUM_LIBC_RAND_SEED");
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for C "
+ "library rand() function");
+} // test()
+
+#ifndef CYGPKG_LIBC_STARTUP
+void cyg_user_start(void)
+#else
+int
+main( int argc, char *argv[] )
+#endif
+{
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for C "
+ "library rand() function");
+
+ test(0);
+
+ CYG_TEST_NA("Testing is not applicable to this configuration");
+} // main()
+
+
+// EOF rand2.c
diff --git a/ecos/packages/language/c/libc/stdlib/current/tests/rand3.c b/ecos/packages/language/c/libc/stdlib/current/tests/rand3.c
new file mode 100644
index 0000000..5d5a08f
--- /dev/null
+++ b/ecos/packages/language/c/libc/stdlib/current/tests/rand3.c
@@ -0,0 +1,151 @@
+//=================================================================
+//
+// rand3.c
+//
+// Testcase for C library rand()
+//
+//=================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors:
+// Date: 2000-04-30
+// Description: Contains testcode for C library rand() function. This tests
+// that random numbers are distributed well between 0 and
+// RAND_MAX
+//
+//
+//####DESCRIPTIONEND####
+
+// INCLUDES
+
+#include <pkgconf/system.h>
+#include <stdlib.h>
+#include <cyg/infra/testcase.h>
+
+
+// CONSTANTS
+
+#define NUM_BUCKETS 1000 // how many categories to define
+#define TEST_LENGTH 200000 // how many samples to take - careful
+ // when reducing this since it also reduces
+ // BUCKET_DIFF_TOLERANCE below. If you reduce
+ // it too low, BUCKET_DIFF_TOLERANCE will need
+ // a fudge factor
+
+#define BUCKET_SIZE (RAND_MAX / NUM_BUCKETS) // number space allocated
+ // to bucket from 0..RAND_MAX
+#define NUM_PER_BUCKET (TEST_LENGTH/NUM_BUCKETS) // Expected number that went
+ // into each bucket at end
+
+// how much the buckets can vary at the end.
+#define BUCKET_DIFF_TOLERANCE (NUM_PER_BUCKET/4) // allowed to vary 25%
+
+
+
+// FUNCTIONS
+
+static __inline__ int
+my_abs(int i)
+{
+ return (i < 0) ? -i : i;
+} // my_abs()
+
+#ifndef CYGPKG_LIBC_STARTUP
+void cyg_user_start(void)
+#else
+int
+main( int argc, char *argv[] )
+#endif
+{
+ // divide the space from 0..RAND_MAX into NUM_BUCKETS categories *BUT*
+ // RAND_MAX / NUM_BUCKETS may not divide exactly so we leave space for
+ // the bits left over, in case there are any! So we add 1.
+
+ static cyg_uint8 rand_bucket[NUM_BUCKETS+1];
+ cyg_ucount32 count; // loop variable
+ int r; // temp for rand() variable
+
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for C library "
+ "rand() function");
+
+ CYG_TEST_INFO("This test tests the distribution of random numbers and");
+ CYG_TEST_INFO("may take some time");
+
+ for ( count=0; count < TEST_LENGTH; ++count ) {
+ r = rand();
+ ++rand_bucket[ r / BUCKET_SIZE ];
+ if ((count%10000)==0)
+ CYG_TEST_STILL_ALIVE(count, "Still testing...");
+ } // for
+
+ for ( count=0; count < NUM_BUCKETS; ++count ) {
+ cyg_ucount32 diff;
+
+ diff = my_abs( rand_bucket[count] - NUM_PER_BUCKET );
+ if ( diff > BUCKET_DIFF_TOLERANCE )
+ break;
+ } // for
+
+ // if the previous loop completed, we may want to check the "extra"
+ // bucket (see the comment at the top) that may have some bits in if
+ // RAND_MAX doesn't split into NUM_BUCKETS evenly. The number of random
+ // digits that fell into that bucket would be expected to be proportional
+ // to the ratio of the remainder of (RAND_MAX % NUM_BUCKETS) to
+ // NUM_BUCKETS.
+ if (count == NUM_BUCKETS) {
+ cyg_ucount32 rem;
+ cyg_ucount32 last_bucket_expected;
+ cyg_ucount32 diff;
+
+ rem = RAND_MAX % NUM_BUCKETS;
+
+ last_bucket_expected = (rem * NUM_PER_BUCKET) / BUCKET_SIZE;
+
+ diff = my_abs(last_bucket_expected - rand_bucket[count]);
+ CYG_TEST_PASS_FAIL(diff <= BUCKET_DIFF_TOLERANCE,
+ "Upper bound fencepost test");
+ }
+ CYG_TEST_PASS_FAIL( (count >= NUM_BUCKETS),
+ "even distribution of rand()");
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for "
+ "C library rand() function");
+} // main()
+
+
+// EOF rand3.c
diff --git a/ecos/packages/language/c/libc/stdlib/current/tests/rand4.c b/ecos/packages/language/c/libc/stdlib/current/tests/rand4.c
new file mode 100644
index 0000000..a731acc
--- /dev/null
+++ b/ecos/packages/language/c/libc/stdlib/current/tests/rand4.c
@@ -0,0 +1,124 @@
+//=================================================================
+//
+// rand4.c
+//
+// Testcase for C library rand()
+//
+//=================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): rosalia
+// Contributors: jlarmour
+// Date: 2000-04-30
+// Description: Contains testcode for C library rand() function. This tests
+// that random numbers do not have periodicity in the lower
+// bit
+//
+//
+//####DESCRIPTIONEND####
+
+// CONFIGURATION
+
+#include <pkgconf/system.h>
+#include <pkgconf/libc_stdlib.h> // Configuration header
+
+// INCLUDES
+
+#include <stdlib.h>
+#include <cyg/infra/testcase.h>
+
+// CONSTANTS
+
+#define TEST_LENGTH 100000 // how many samples to take
+
+// DEFINES
+
+#define TEST_VALID (!defined(CYGIMP_LIBC_RAND_SIMPLEST))
+
+// FUNCTIONS
+
+#ifndef CYGPKG_LIBC_STARTUP
+void cyg_user_start(void)
+#else
+int
+main( int argc, char *argv[] )
+#endif
+{
+#if TEST_VALID
+ int i;
+ int r, prev, prevprev;
+ int how_many_periodics = 0;
+#endif
+
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for C library "
+ "rand() function");
+
+ CYG_TEST_INFO("This test tests the distribution of random numbers and");
+ CYG_TEST_INFO("may take some time");
+
+#if TEST_VALID
+ r = rand() % 2;
+ prev = r;
+ r = rand() % 2;
+ for (i = 0; i < TEST_LENGTH; ++i) {
+ prevprev = prev;
+ prev = r;
+ r = rand() % 2;
+ if (r == prevprev) {
+ ++how_many_periodics;
+ }
+ if (how_many_periodics > (2*TEST_LENGTH)/3) {
+ break;
+ }
+ }
+
+ CYG_TEST_PASS_FAIL( (how_many_periodics <= (2*TEST_LENGTH)/3),
+ "periodicity of rand() in lowest bit");
+
+#else
+
+ // TODO: should be an _expected_ fail i.e. XFAIL
+ CYG_TEST_NA("Chosen rand algorithm is known to fail this test");
+
+#endif
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for "
+ "C library rand() function");
+} // main()
+
+
+// EOF rand4.c
diff --git a/ecos/packages/language/c/libc/stdlib/current/tests/srand.c b/ecos/packages/language/c/libc/stdlib/current/tests/srand.c
new file mode 100644
index 0000000..6cccfe2
--- /dev/null
+++ b/ecos/packages/language/c/libc/stdlib/current/tests/srand.c
@@ -0,0 +1,134 @@
+//=================================================================
+//
+// srand.c
+//
+// Testcase for C library srand()
+//
+//=================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): ctarpy, jlarmour
+// Contributors:
+// Date: 2000-04-30
+// Description: Contains testcode for C library srand() function
+//
+//
+//####DESCRIPTIONEND####
+
+// INCLUDES
+
+#include <pkgconf/system.h>
+#include <stdlib.h>
+#include <cyg/infra/testcase.h>
+
+
+// CONSTANTS
+
+// Max cross correlation value of two sequences of
+// different seed
+#define X_CORREL 10
+
+// size of arrays to use for testing
+#define TEST_SIZE 1024
+
+
+// FUNCTIONS
+
+static void
+test( CYG_ADDRWORD data )
+{
+ int ctr;
+ static int array_1[TEST_SIZE];
+ static int array_2[TEST_SIZE];
+ static int array_3[TEST_SIZE];
+ int hits;
+ int fail;
+
+
+ srand(3);
+ for (ctr=0; ctr<TEST_SIZE; ++ctr)
+ array_1[ctr] = rand();
+
+ srand(9);
+ for (ctr=0; ctr<TEST_SIZE; ++ctr)
+ array_2[ctr] = rand();
+
+ srand(3);
+ for (ctr=0; ctr<TEST_SIZE; ++ctr)
+ array_3[ctr] = rand();
+
+ // Make sure arrays 1 and 3 are the same
+ fail = 0;
+ for (ctr=0; ctr<TEST_SIZE; ++ctr) {
+ if (array_1[ctr] != array_3[ctr])
+ ++fail;
+ } // for
+
+ CYG_TEST_PASS_FAIL( fail == 0, "resetting the seed to the same value");
+
+ // Check sequences of different seeds are different
+ hits = 0;
+ for (ctr=0; ctr<TEST_SIZE; ++ctr) {
+ if (array_1[ctr] == array_2[ctr])
+ ++hits;
+ } // for
+
+ CYG_TEST_PASS_FAIL(hits < X_CORREL,
+ "random sequence for different seeds is different");
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for "
+ "C library srand() function");
+} // test()
+
+#ifndef CYGPKG_LIBC_STARTUP
+void cyg_user_start(void)
+#else
+int
+main( int argc, char *argv[] )
+#endif
+{
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for C library "
+ "srand() function");
+
+ test(0);
+
+ CYG_TEST_NA("Testing is not applicable to this configuration");
+} // main()
+
+
+
+// EOF srand.c
diff --git a/ecos/packages/language/c/libc/stdlib/current/tests/strtol.c b/ecos/packages/language/c/libc/stdlib/current/tests/strtol.c
new file mode 100644
index 0000000..063d54e
--- /dev/null
+++ b/ecos/packages/language/c/libc/stdlib/current/tests/strtol.c
@@ -0,0 +1,187 @@
+//=================================================================
+//
+// strtol.c
+//
+// Testcase for C library strtol()
+//
+//=================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): ctarpy, jlarmour
+// Contributors:
+// Date: 2000-04-30
+// Description: Contains testcode for C library strtol() function
+//
+//
+//####DESCRIPTIONEND####
+
+// INCLUDES
+
+#include <pkgconf/system.h>
+#include <stdlib.h>
+#include <errno.h>
+#include <limits.h>
+#include <cyg/infra/testcase.h>
+
+
+// FUNCTIONS
+
+static char *
+my_strcpy(char *s1, const char *s2)
+{
+ while (*s2 != '\0') {
+ *(s1++) = *(s2++);
+ }
+ *s1 = '\0';
+
+ return s1;
+} // my_strcpy()
+
+
+static void
+test( CYG_ADDRWORD data )
+{
+ char x[30];
+ long z;
+ char *endptr;
+
+ my_strcpy(x, "20");
+ CYG_TEST_PASS_FAIL( strtol(x, (char**)NULL, 10) == 20,
+ "Simple strtol(20 ,...)" );
+
+ my_strcpy(x, "1972100");
+ CYG_TEST_PASS_FAIL( strtol(x, (char**)NULL, 10) == 1972100,
+ "Simple strtol(1972100, ..." );
+
+ my_strcpy(x, "0xFFEE");
+ z = strtol(x, (char**)NULL, 16);
+ CYG_TEST_PASS_FAIL(z == 65518, "Hex base strtol()");
+
+ my_strcpy(x, "100111011");
+ z = strtol(x, (char**)NULL, 2);
+ CYG_TEST_PASS_FAIL(z == 315, "Binary base strtol()");
+
+ my_strcpy(x, "10372");
+ z = strtol(x, (char**)NULL, 8);
+ CYG_TEST_PASS_FAIL(z == 4346, "Octal base strtol()" );
+
+ my_strcpy(x, "317823");
+ z = strtol(x, (char**)NULL, 8);
+ CYG_TEST_PASS_FAIL(z == 207, "Partial string" );
+
+ my_strcpy(x, " 53ab823");
+ z = strtol(x, &endptr, 10);
+ CYG_TEST_PASS_FAIL((z == 53) && (endptr==&x[3]), "Correct end pointer" );
+
+ my_strcpy(x, "-479");
+ z = strtol(x, (char**)NULL, 10);
+ CYG_TEST_PASS_FAIL(z == -479, "Negative string");
+
+ my_strcpy(x, "+4796");
+ z = strtol(x, (char**)NULL, 10);
+ CYG_TEST_PASS_FAIL(z == 4796, "Positive string");
+
+ my_strcpy(x, "");
+ z = strtol(x, (char**)NULL, 10);
+ CYG_TEST_PASS_FAIL(z == 0, "Empty string");
+
+ my_strcpy(x, "");
+ z = strtol(x, &endptr, 10);
+ CYG_TEST_PASS_FAIL((z == 0) && (endptr==x),
+ "Empty string sets endptr correctly");
+
+ my_strcpy(x, " ");
+ z = strtol(x, &endptr, 10);
+ CYG_TEST_PASS_FAIL((z == 0) && (endptr==x),
+ "White space only string sets endptr correctly");
+
+ my_strcpy(x, "0XFFEE");
+ z = strtol(x, (char**)NULL, 0);
+ CYG_TEST_PASS_FAIL(z == 65518, "Base 0 but hex");
+
+ my_strcpy(x, "\t 0629");
+ z = strtol(x, (char**)NULL, 0);
+ CYG_TEST_PASS_FAIL(z == 50, "Base 0 but octal");
+
+ my_strcpy(x, "42");
+ z = strtol(x, (char**)NULL, 0);
+ CYG_TEST_PASS_FAIL(z == 42, "Base 0 but decimal");
+
+ my_strcpy(x, "hello");
+ z = strtol(x, &endptr, 0);
+ CYG_TEST_PASS_FAIL((z == 0) && (endptr==x),
+ "endptr set correctly on conversion failure");
+
+ my_strcpy(x, "z2f");
+ z = strtol(x, (char**)NULL, 36);
+ CYG_TEST_PASS_FAIL(z == 45447, "Base==36");
+
+ my_strcpy(x, "h547324");
+ z = strtol(x, (char**)NULL, 10);
+ CYG_TEST_PASS_FAIL(z == 0, "No valid number string");
+
+ my_strcpy(x, "545425876654547324");
+ z = strtol(x, (char**)NULL, 10);
+ CYG_TEST_PASS_FAIL( (z == LONG_MAX) && (errno == ERANGE),
+ "Number out of range");
+
+ my_strcpy(x, "-545425876654547324");
+ z = strtol(x, (char**)NULL, 10);
+ CYG_TEST_PASS_FAIL( (z == LONG_MIN) && (errno == ERANGE),
+ "Number out of range");
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for C library "
+ "strtol() function");
+} // test()
+
+#ifndef CYGPKG_LIBC_STARTUP
+void cyg_user_start(void)
+#else
+int
+main( int argc, char *argv[] )
+#endif
+{
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for C library "
+ "strtol() function");
+ CYG_TEST_INFO("This testcase provides simple basic tests");
+
+ test(0);
+
+ CYG_TEST_NA("Testing is not applicable to this configuration");
+} // main()
+
+// EOF strtol.c
diff --git a/ecos/packages/language/c/libc/stdlib/current/tests/strtoul.c b/ecos/packages/language/c/libc/stdlib/current/tests/strtoul.c
new file mode 100644
index 0000000..e8267e1
--- /dev/null
+++ b/ecos/packages/language/c/libc/stdlib/current/tests/strtoul.c
@@ -0,0 +1,183 @@
+//=================================================================
+//
+// strtoul.c
+//
+// Testcase for C library strtoul()
+//
+//=================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): ctarpy, jlarmour
+// Contributors:
+// Date: 2000-04-30
+// Description: Contains testcode for C library strtoul() function
+//
+//
+//####DESCRIPTIONEND####
+
+// INCLUDES
+
+#include <pkgconf/system.h>
+#include <stdlib.h>
+#include <errno.h>
+#include <limits.h>
+#include <cyg/infra/testcase.h>
+
+
+// FUNCTIONS
+
+static char *
+my_strcpy(char *s1, const char *s2)
+{
+ while (*s2 != '\0') {
+ *(s1++) = *(s2++);
+ }
+ *s1 = '\0';
+
+ return s1;
+} // my_strcpy()
+
+
+static void
+test( CYG_ADDRWORD data )
+{
+ char x[30];
+ unsigned long z;
+ char *endptr;
+
+ my_strcpy(x, "20");
+ CYG_TEST_PASS_FAIL( strtoul(x, (char**)NULL, 10) == 20,
+ "Simple strtoul(20 ,...)" );
+
+ my_strcpy(x, "1972100");
+ CYG_TEST_PASS_FAIL( strtoul(x, (char**)NULL, 10) == 1972100,
+ "Simple strtoul(1972100, ..." );
+
+ my_strcpy(x, "0xFFEE");
+ z = strtoul(x, (char**)NULL, 16);
+ CYG_TEST_PASS_FAIL(z == 65518, "Hex base strtoul()");
+
+ my_strcpy(x, "100111011");
+ z = strtoul(x, (char**)NULL, 2);
+ CYG_TEST_PASS_FAIL(z == 315, "Binary base strtoul()");
+
+ my_strcpy(x, "10372");
+ z = strtoul(x, (char**)NULL, 8);
+ CYG_TEST_PASS_FAIL(z == 4346, "Octal base strtoul()" );
+
+ my_strcpy(x, "317823");
+ z = strtoul(x, (char**)NULL, 8);
+ CYG_TEST_PASS_FAIL(z == 207, "Partial string" );
+
+ my_strcpy(x, " 53ab823");
+ z = strtoul(x, &endptr, 10);
+ CYG_TEST_PASS_FAIL( (z == 53) && (endptr==&x[3]), "Correct end pointer" );
+
+ my_strcpy(x, "-479");
+ z = strtoul(x, (char**)NULL, 0);
+ CYG_TEST_PASS_FAIL( (z == (unsigned long) -479),
+ "Negative string");
+
+ my_strcpy(x, "+4796");
+ z = strtoul(x, (char**)NULL, 10);
+ CYG_TEST_PASS_FAIL(z == 4796, "Positive string");
+
+ my_strcpy(x, "");
+ z = strtoul(x, (char**)NULL, 10);
+ CYG_TEST_PASS_FAIL(z == 0, "Empty string");
+
+ my_strcpy(x, "");
+ z = strtoul(x, &endptr, 10);
+ CYG_TEST_PASS_FAIL( (z == 0) && (endptr==x),
+ "Empty string sets endptr correctly");
+
+ my_strcpy(x, " ");
+ z = strtoul(x, &endptr, 10);
+ CYG_TEST_PASS_FAIL( (z == 0) && (endptr==x),
+ "White space only string sets endptr correctly");
+
+ my_strcpy(x, "0XFFEE");
+ z = strtoul(x, (char**)NULL, 0);
+ CYG_TEST_PASS_FAIL(z == 65518, "Base 0 but hex");
+
+ my_strcpy(x, "\t 0629");
+ z = strtoul(x, (char**)NULL, 0);
+ CYG_TEST_PASS_FAIL(z == 50, "Base 0 but octal");
+
+ my_strcpy(x, "42");
+ z = strtoul(x, (char**)NULL, 0);
+ CYG_TEST_PASS_FAIL(z == 42, "Base 0 but decimal");
+
+ my_strcpy(x, "hello");
+ z = strtoul(x, &endptr, 0);
+ CYG_TEST_PASS_FAIL((z == 0) && (endptr==x),
+ "endptr set correctly on conversion failure");
+
+ my_strcpy(x, "z2f");
+ z = strtoul(x, (char**)NULL, 36);
+ CYG_TEST_PASS_FAIL(z == 45447, "Base==36");
+
+ my_strcpy(x, "h547324");
+ z = strtoul(x, (char**)NULL, 10);
+ CYG_TEST_PASS_FAIL(z == 0, "No valid number string");
+
+ my_strcpy(x, "545425876654547324");
+ z = strtoul(x, (char**)NULL, 10);
+ CYG_TEST_PASS_FAIL( (z == ULONG_MAX) && (errno == ERANGE),
+ "Number out of range");
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for C library "
+ "strtoul() function");
+} // test()
+
+#ifndef CYGPKG_LIBC_STARTUP
+void cyg_user_start(void)
+#else
+int
+main( int argc, char *argv[] )
+#endif
+{
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for C library "
+ "strtoul() function");
+ CYG_TEST_INFO("This testcase provides simple basic tests");
+
+ test(0);
+
+ CYG_TEST_NA("Testing is not applicable to this configuration");
+} // main()
+
+// EOF strtoul.c
diff --git a/ecos/packages/language/c/libc/string/current/ChangeLog b/ecos/packages/language/c/libc/string/current/ChangeLog
new file mode 100644
index 0000000..d1847c4
--- /dev/null
+++ b/ecos/packages/language/c/libc/string/current/ChangeLog
@@ -0,0 +1,125 @@
+2013-06-13 Ilija Kocho <ilijak@siva.com.mk>
+
+ * tests/memchr.c: Fix compiler warnings for discrediting const pointer.
+ [ Bugzilla 1001865 ]
+
+2010-05-10 Ross Younger <wry@ecoscentric.com>
+
+ * include/string.h: Declare strnlen.
+ * include/stringsupp.hxx: Declare __strnlen.
+ * src/strnlen.cxx, tests/strnlen.c: Created.
+ * cdl/string.cdl (CYGFUN_LIBC_STRING_GNU_STRNLEN): New option,
+ compiles strnlen.cxx.
+ (CYGPKG_LIBC_STRING_TESTS): Add strnlen test.
+
+2009-01-26 Jonathan Larmour <jifl@eCosCentric.com>
+
+ * tests/memchr.c (main): Rename to cyg_user_start if main isn't
+ going to be called.
+ * tests/memcmp1.c (main): Ditto.
+ * tests/memcmp2.c (main): Ditto.
+ * tests/memcpy1.c (main): Ditto.
+ * tests/memcpy2.c (main): Ditto.
+ * tests/memmove1.c (main): Ditto.
+ * tests/memmove2.c (main): Ditto.
+ * tests/memset.c (main): Ditto.
+ * tests/strcat1.c (main): Ditto.
+ * tests/strcat2.c (main): Ditto.
+ * tests/strchr.c (main): Ditto.
+ * tests/strcmp1.c (main): Ditto.
+ * tests/strcmp2.c (main): Ditto.
+ * tests/strcoll1.c (main): Ditto.
+ * tests/strcoll2.c (main): Ditto.
+ * tests/strcpy1.c (main): Ditto.
+ * tests/strcpy2.c (main): Ditto.
+ * tests/strcspn.c (main): Ditto.
+ * tests/strlen.c (main): Ditto.
+ * tests/strncat1.c (main): Ditto.
+ * tests/strncat2.c (main): Ditto.
+ * tests/strncpy1.c (main): Ditto.
+ * tests/strncpy2.c (main): Ditto.
+ * tests/strpbrk.c (main): Ditto.
+ * tests/strrchr.c (main): Ditto.
+ * tests/strspn.c (main): Ditto.
+ * tests/strstr.c (main): Ditto.
+ * tests/strtok.c (main): Ditto.
+ * tests/strxfrm1.c (main): Ditto.
+ * tests/strxfrm2.c (main): Ditto.
+
+2005-07-22 Andrew Lunn <andrew.lunn@ascom.ch>
+
+ * src/strcmp.cxx (__strcmp): Set retval to zero to avoid compiler
+ warnings.
+
+2004-02-20 Jonathan Larmour <jifl@eCosCentric.com>
+
+ * include/string.h: Prototype strdup().
+ * include/stringsupp.hxx: Prototype __strdup().
+ externC -> __externC while I'm here.
+ * src/strdup.cxx: New file implementing strdup()/__strdup().
+ * cdl/string.cdl: Build strdup.cxx if CYGINT_ISO_MALLOC.
+
+ * src/strtok.cxx (strtok): Use correct thread data type.
+
+2003-02-24 Jonathan Larmour <jifl@eCosCentric.com>
+
+ * cdl/string.cdl: Fix doc link.
+
+2001-11-27 Jonathan Larmour <jlarmour@redhat.com>
+
+ * cdl/string.cdl (CYGFUN_LIBC_STRING_BSD_FUNCS): New option to indicate
+ provision of BSD-ish string functions.
+ * include/bsdstring.h: New header to export BSD string func prototypes.
+ * src/bsdstring.cxx: New file.
+
+2001-08-21 Jonathan Larmour <jlarmour@redhat.com>
+
+ * cdl/string.cdl (CYGSEM_LIBC_STRING_PER_THREAD_STRTOK): Improve
+ dependencies.
+
+2001-08-10 Robin Farine <acnrf@dial.eunet.ch>
+
+ * src/memchr.cxx (__memchr): Don't check string validity if number
+ of bytes to operate on is 0.
+ * src/memcmp.cxx (__memcmp): Ditto.
+ * src/memmove.cxx (__memmove): Ditto.
+ * src/strncat.cxx (__strncat): Ditto.
+ * src/strncmp.cxx (__strncmp): Ditto.
+ * src/strncpy.cxx (__strncpy): Ditto.
+ * src/strxfrm.cxx (__strxfrm): Ditto.
+
+2000-05-20 Jonathan Larmour <jlarmour@redhat.co.uk>
+
+ * src/strtok.cxx: Remove aliases
+
+2000-05-02 Jonathan Larmour <jlarmour@redhat.co.uk>
+
+ * New package
+ Separated original libc out into separate packages on functional
+ boundaries.
+ Header files are now managed by isoinfra package
+ Plenty of cleanups done, but no major functionality changes
+
+//===========================================================================
+// ####GPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 or (at your option) any
+// later version.
+//
+// This program 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
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the
+// Free Software Foundation, Inc., 51 Franklin Street,
+// Fifth Floor, Boston, MA 02110-1301, USA.
+// -------------------------------------------
+// ####GPLCOPYRIGHTEND####
+//===========================================================================
diff --git a/ecos/packages/language/c/libc/string/current/ChangeLog.libc b/ecos/packages/language/c/libc/string/current/ChangeLog.libc
new file mode 100644
index 0000000..8809e93
--- /dev/null
+++ b/ecos/packages/language/c/libc/string/current/ChangeLog.libc
@@ -0,0 +1,2735 @@
+This ChangeLog file is now obsolete. This is the original ChangeLog from when
+libc was one large package, before being separated. It is included for
+historical reasons.
+
+2000-04-05 Jesper Skov <jskov@redhat.com>
+
+ * src/time/settime.cxx:
+ * src/time/time.cxx:
+ Wallclock moved to io/.
+
+2000-03-28 John Dallaway <jld@cygnus.co.uk>
+
+ * cdl/string.cdl,
+ cdl/stdlib.cdl,
+ cdl/stdio.cdl,
+ cdl/libc.cdl:
+
+ Adjust documentation URLs.
+
+2000-03-27 Jesper Skov <jskov@redhat.com>
+
+ * src/clibincl/stream.inl (check_this): Use cyb_bool instead of bool.
+
+2000-03-06 Jesper Skov <jskov@redhat.com>
+
+ * tests/time/strftime.c (test): Adjust test to match below change.
+
+2000-03-02 Jonathan Larmour <jlarmour@redhat.co.uk>
+
+ * src/time/strftime.cxx (do_format): Make sure %m counts from
+ 1..12 rather than 0..11. Fix for case 103300
+
+2000-02-29 Jonathan Larmour <jlarmour@redhat.co.uk>
+
+ * src/stdio/output/vfnprintf.cxx: Correctly use 'n' parameter to
+ restrict length. Credit due to Andrew Lunn here as well.
+ Resolves 103057-CR-1
+
+ * tests/stdio/sprintf2.c (test):
+ Add snprintf tests to verify the correct behaviour of restricting
+ output length
+
+2000-02-10 Jesper Skov <jskov@redhat.com>
+
+ * tests/signal/signal2.c (main):
+ Also reclaim DATA_TLB_MISS vector if available.
+
+2000-01-31 Simon FitzMaurice <sdf@cygnus.co.uk>
+ * cdl/*.cdl:
+
+ Adjust help URLs in line with new doc layout.
+
+2000-01-28 Simon FitzMaurice <sdf@cygnus.co.uk>
+ * cdl/*.cdl:
+
+ Adjust help URLs in line with new doc layout.
+
+2000-01-19 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * cdl/*.cdl: Add descriptions to a number of options &c which were
+ lacking same, also tidied up other typos as noticed en passant.
+
+1999-11-11 Bart Veer <bartv@cygnus.co.uk>
+
+ * cdl/string.cdl:
+ Switch to a single boolean configuration option for code size vs.
+ speed optimization.
+
+1999-11-03 John Dallaway <jld@cygnus.co.uk>
+
+ * cdl/libc.cdl: Define tests.
+
+1999-10-19 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/output/vfnprintf.cxx: We can now remove Berkeley
+ advertising clause
+ * src/stdlib/div.cxx: ditto
+ * src/stdlib/ldiv.cxx: ditto
+ * src/stdlib/strtol.cxx: ditto
+ * src/stdlib/strtoul.cxx: ditto
+ * src/string/strtok.cxx: ditto
+
+1999-10-19 John Dallaway <jld@cygnus.co.uk>
+
+ * cdl/libc.cdl:
+
+ Define CDL options for package-specific CFLAGS.
+
+1999-10-08 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h (CYGNUM_LIBC_MAIN_THREAD_PRIORITY): Change
+ default to 10 to keep test farm happy
+ * cdl/startup.cdl: Likewise
+
+1999-10-07 John Dallaway <jld@cygnus.co.uk>
+
+ * cdl/stdlib.cdl, cdl/string.cdl:
+
+ Specify radio buttons using CDL interfaces.
+
+1999-10-06 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * cdl/stdio.cdl: Change default to /dev/ttydiag as per 1999-10-01
+ change below
+ * cdl/startup.cdl: Add new form CDL for the startup changes as
+ per 1999-10-05
+
+1999-10-05 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/libc.h: Add CYGSEM_LIBC_MAIN_STACK_FROM_SYSTEM to allow
+ the user to supply their own stack.
+ Rename CYGNUM_LIBC_MAIN_STACK_SIZE to
+ CYGNUM_LIBC_MAIN_DEFAULT_STACK_SIZE and reparent under
+ CYGSEM_LIBC_MAIN_STACK_FROM_SYSTEM
+ Add CYGNUM_LIBC_MAIN_THREAD_PRIORITY to provide main() thread
+ priority
+
+ * src/support/mainthread.cxx: Add support for user-supplied stack
+ Allow user to specify thread priority
+
+ These changes fix CR 101069
+
+1999-10-01 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h (CYGDAT_LIBC_STDIO_DEFAULT_CONSOLE): Change
+ default to /dev/ttydiag to get correct console-like behaviour
+ Also don't preclude use if haldiag package isn't included
+ (case 102065)
+
+1999-09-15 Jesper Skov <jskov@cygnus.co.uk>
+
+ * tests/signal/signal2.c (cause_fpe): Try both float and integer
+ division by zero.
+
+1999-09-10 Jesper Skov <jskov@cygnus.co.uk>
+
+ * src/stdlib/malloc.cxx (cyg_libc_get_malloc_pool): Added for
+ stress_threads test.
+
+1999-09-07 Jesper Skov <jskov@cygnus.co.uk>
+ PRs 20243, 20433
+ * tests/signal/signal2.c: Disabled test3 on ARM.
+
+1999-09-02 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * include/assert.h: Make the sense of NDEBUG correct; it is "set"
+ when NOT debugging. Fix for CR 101983-CR-1
+ See Stroustrup, "The C++ Programming Language."
+
+1999-08-18 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/fopen.cxx (_fopen): Set buffer size 0 when not
+ buffering
+ Fix for case 101868
+
+1999-08-17 John Dallaway <jld@cygnus.co.uk>
+
+ * cdl/stdlib.cdl, cdl/string.cdl:
+
+ Implement radio buttons using "FIXME radio" hack in
+ description field for now.
+
+1999-08-12 John Dallaway <jld@cygnus.co.uk>
+
+ * cdl/stdlib.cdl:
+ Take advantage of MACRONAME_ENUMVAL macros output by CDL.
+
+1999-08-06 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdio/sprintf2.c (test): Don't rely on 2.345 being exactly
+ representable in binary as a difference of 1 ulp will make it round
+ the wrong way.
+
+1999-07-16 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/input/fgetc.cxx:
+ Include outline versions of getc() (actually just a symbol alias for
+ fgetc() ) and getchar()
+ Some minor clean-ups
+ Add tracing/assertions
+
+ * src/stdio/input/fputc.cxx:
+ Likewise (except applied to putc() and putchar())
+
+ * src/stdio/common/stdioinlines.cxx (_puts):
+ Call fputc() not _fputc()
+
+ * src/clibincl/stdiosupp.hxx:
+ Remove now obsolete prototypes for _fgetc() and _fputc()
+
+ * include/stdio.h:
+ Don't bother with getc()/putc() macros any more, just call
+ them as functions
+ Include protos for getc(), putc(), getchar() and putchar() functions
+
+1999-06-21 Jesper Skov <jskov@cygnus.co.uk>
+
+ * tests/signal/signal2.c: Disabled test 3 for SH EDK7708.
+
+1999-06-11 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/stdio.h: Make FILEs array types so they won't be
+ given $gp relocations on MIPS targets
+
+1999-05-27 Jesper Skov <jskov@cygnus.co.uk>
+
+ * tests/time/ctime.c: Fixed compiler warning.
+
+1999-05-25 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/signal/signal2.c (main):
+ Update CYGPKG_HAL_TX39 -> CYGPKG_HAL_MIPS_TX39 due to recent MIPS
+ HAL changes
+ Fix for PR 20116
+
+1999-04-30 Jesper Skov <jskov@lassi.cygnus.co.uk>
+ PR 19945/19946 workaround
+ * tests/signal/signal2.c: Disabled test 3 for PowerPC sim.
+
+1999-04-19 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/time.inl:
+ Ensure all calls to cyg_libc_time_year_is_leap() are with the full
+ year, and not the direct contents of a struct tm, which are (year-1900)
+
+1999-04-19 Jesper Skov <jskov@cygnus.co.uk>
+ PR 19308, 19410, 19528
+ * tests/time/clock.c (test): Also disable data cache which may
+ affect timing when tracing/assertions are enabled.
+
+1999-04-15 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/stdiosupp.hxx:
+ Add prototype for new cyg_libc_stdio_flush_all_but() function
+
+ * src/clibincl/stream.hxx:
+ Don't include stdiosupp.hxx any more to prevent circular dependency,
+ therefore manually provide _setvbuf prototype
+ Make sure pkgconf/kernel.h is included before mutex.hxx
+
+ * src/clibincl/stream.inl (Cyg_StdioStream::set_error()):
+ Add missing unlock_me()
+
+ * src/stdio/common/fflush.cxx:
+ Separate most of code for fflush(NULL) into separate
+ cyg_libc_stdio_flush_all_but() function, which has the extra
+ capability of omitting one stream
+
+ * src/stdio/common/stderr.cxx:
+ * src/stdio/common/stdin.cxx:
+ * src/stdio/common/stdout.cxx:
+ * src/stdio/common/vsnprintf.cxx:
+ * src/stdio/common/vsscanf.cxx:
+ Add missing clibincl/stdiosupp.hxx include
+
+ * src/stdio/common/stream.cxx (Cyg_StdioStream::read()):
+ When reading, ensure we flush all output streams
+
+ * src/stdio/common/stream.cxx (Cyg_StdioStream::flush_output_unlocked):
+ Flush the device as well
+
+1999-04-15 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/streambuf.cxx (set_buffer):
+ * src/stdio/common/stdioinlines.cxx (_setbuf):
+ * src/clibincl/streambuf.inl:
+ * src/clibincl/streambuf.hxx:
+ * src/clibincl/stream.hxx (class Cyg_StdioStream):
+ * include/pkgconf/libc.h:
+ * include/stdio.inl (setbuf):
+ Fix dumb typo: BUFSIZE -> BUFSIZ
+ This fixes PR19837
+
+1999-04-15 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/stdioinlines.cxx (_setbuf):
+ * include/stdio.inl (setbuf):
+ Use _IONBF when buf==NULL, and _IOLBF otherwise.
+ Fix for PR 19836
+
+1999-04-15 John Dallaway <jld@cygnus.co.uk>
+
+ * include/pkgconf/libc.h: Tidy display string capitalization.
+
+1999-04-12 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Clarify CDL description of CYGNUM_LIBC_MALLOC_MEMPOOL_SIZE
+
+ * tests/signal/signal2.c: Try harder to generate an exception by
+ accessing a misaligned address
+ Don't handle SIGTRAP any more
+ Part of fix for PRs 19731/19607
+
+1999-04-07 Jesper Skov <jskov@cygnus.co.uk>
+ PR 19667
+ * src/support/mainthread.cxx:
+ Changed to use the new Cyg_Thread constructor.
+
+1999-04-07 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * tests/signal/signal2.c (main): Use new macro
+ HAL_VSR_SET_TO_ECOS_HANDLER if defined, to wrest control from
+ CygMon, for example, by reinstalling eCos' default VSRs for
+ exceptions that we are provoking.
+
+1999-03-29 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/signal/siginit.cxx: Include stdlib.h for exit()
+ Fix for PR 19720
+
+1999-03-29 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/time/clock.c (test): Disable instruction cache
+ Hopefully fixes PR 19308
+
+1999-03-29 Jesper Skov <jskov@cygnus.co.uk>
+
+ * tests/signal/signal2.c: Disabled test 3 for PPC as it cannot
+ trap division by zero.
+
+1999-03-26 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/support/main.cxx (main): Invoke cyg_user_start() if no kernel
+ Only sensible thing to do in our default main in a non-kernel config
+
+1999-03-25 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/time/time.c:
+ Increase MAX_TIMEOUT since the sparclite gets very close to overrunning
+ it even when working.
+ Should return -1 iff CYGSEM_LIBC_TIME_TIME_WORKING isn't defined
+ Cosmetic changes
+
+1999-03-25 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * tests/time/time.c (test): Take into account setting of
+ CYGSEM_LIBC_TIME_SETTIME_WORKING ie. does cyg_libc_time_settime()
+ work? If not, check that it returns an error.
+ This was exposed by the random combo in PR#19479.
+
+1999-03-23 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Rename CYGSEM_LIBC_RAND_SIMPLEST and CYGSEM_LIBC_RAND_KNUTH1 to
+ CYGIMP_...
+
+ Add another rand implementation CYGIMP_LIBC_RAND_SIMPLE1 which is
+ the default
+
+ Part of fix for PR 19562
+
+ * include/sys/cstartup.h:
+ Tidy and remove unnecessary dependencies
+
+ * src/stdlib/rand.cxx:
+ Rename algorithms from CYGSEM_... to CYGIMP_...
+ Add new "simple1" algorithm
+
+ * tests/ctype/ctype.c:
+ Tidy
+
+ * tests/stdlib/rand3.c:
+ Fix so that 0..RAND_MAX is split evenly over buckets, which it wasn't
+ before
+ Deal with case of RAND_MAX not being divisible by NUM_BUCKETS
+ exactly
+ Increase TEST_LENGTH to 200000 to provide more representative sample
+ Add CYG_TEST_INFO output to help ensure it doesn't time out
+ Tidy
+
+ * tests/stdlib/rand4.c:
+ Only fail if more than _two_ thirds (rather than one third) match.
+ This is because half would match for a perfectly random distribution
+ This is the rest of the fix for PR 19562
+ Cosmetic changes
+
+1999-03-22 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * src/support/mainthread.cxx (CYGNUM_LIBC_MAIN_STACK_SIZE):
+ Use CYGNUM_HAL_STACK_SIZE_TYPICAL for the stack size instead of
+ CYGNUM_HAL_MINIMUM_STACK_SIZE.
+
+1999-03-22 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/PKGconf.mak: Add -Wno-format when building strftime otherwise
+ it generates warnings for things that we do want to test (null
+ string, and %y format)
+
+1999-03-19 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h (CYGNUM_LIBC_TIME_DST_DEFAULT_STATE):
+ Put brackets back round negative number since sdf says the config
+ tool is fixed now (PR 19537)
+
+ Add new CYGSEM_LIBC_RAND_SIMPLEST and CYGSEM_LIBC_RAND_KNUTH1
+ options for different rand() algorithms in a so far failed attempt
+ to fix PR 19562
+
+ * src/stdlib/rand.cxx:
+ Add new optional algorithm from Knuth vol.2
+
+ * tests/stdlib/rand4.c:
+ Some tidies
+ Don't run test when using simplest algorithm
+
+ * tests/signal/signal2.c (main):
+ Don't try to make an FPE on tx39 - its possible to detect but requires
+ too much HAL work to be sensible
+
+1999-03-18 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/signal/siginit.cxx (cyg_libc_signals_hwexcept_handler):
+ Use HAL_ENABLE_INTERRUPTS() rather than kernel to enable interrupts
+
+1999-03-18 Mark Galassi <rosalia@cygnus.com>
+
+ * tests/PKGconf.mak (TESTS): added rand4 compilation.
+
+ * tests/stdlib/rand4.c: added this test for periodicity in the
+ least significant bit of rand().
+
+1999-03-18 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h: Remove CYGFUN_LIBC_TIME_POSIX dependency
+ on CYGPKG_LIBC_STDIO
+
+ * src/stdlib/itoa.cxx:
+ New file to convert integers to ascii
+
+ * include/stdlib.h:
+ Add proto for new cyg_libc_itoa() function
+
+ * include/time.inl:
+ Rework __asctime_r() to use memcpy() and cyg_libc_itoa() rather than
+ sprintf()
+
+ * src/PKGconf.mak:
+ Build stdlib/itoa.cxx
+
+ The above changes fix PR 19448
+
+1999-03-17 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/time.h: Add #define of __time_t_defined to placate newlib
+ if it is used by accident. This is just a temporary workaround though.
+
+1999-03-16 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * src/PKGconf.mak: Add compile option to step around ARM compiler bug.
+
+1999-03-16 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h (CYGNUM_LIBC_TIME_DST_DEFAULT_STATE):
+ Don't use parentheses for now
+
+ * src/stdio/common/stream.cxx (refill_read_buffer):
+ Silence bogus compiler warning
+
+1999-03-16 Jesper Skov <jskov@cygnus.co.uk>
+
+ * tests/signal/signal2.c (main): Enable SIGSEGV test for
+ i386/Linux.
+
+
+1999-03-15 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/signal/siginit.cxx (cyg_libc_signals_hwexcept_handler):
+ Only enable interrupts if they were disabled
+
+ * include/sys/timeutil.h:
+ * src/time/timeutil.cxx:
+ Add FIX ME line as a reminder that the workaround there can go away
+ in future
+
+ * include/pkgconf/libc.h:
+ Add proper define for CYGSEM_LIBC_EXIT_CALLS_FFLUSH
+ Put brackets round negative CYGNUM_LIBC_TIME_DST_DEFAULT_STATE define
+ Fix run time typo
+
+ * include/time.inl (__localtime_r):
+ Include sys/timeutil.h before this to get
+ cyg_libc_time_normalize_structtm()
+
+1999-03-12 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * include/sys/timeutil.h:
+ * src/time/timeutil.cxx: Remove 'const' from char arrays since
+ this fails [silently] on ARM when -fwritable-strings (PR19440)
+
+1999-03-12 Jesper Skov <jskov@cygnus.co.uk>
+
+ * tests/signal/signal2.c (main): Compiler warnings fix was
+ slightly broken.
+
+1999-03-12 Jesper Skov <jskov@cygnus.co.uk>
+ PR 19473
+ * tests/signal/signal2.c (main):
+ Disabling SIGTRAP handling on i386/Linux is not a good idea.
+1999-03-11 Jesper Skov <jskov@cygnus.co.uk>
+ PR 19473
+ * tests/signal/signal2.c:
+ Added compiler warnings fix.
+ Added N/A handling for i386/Linux.
+
+1999-03-10 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * include/pkgconf/libc.h: Force "haldiag" device to be present.
+ 'asctime' and friends need 'stdio' as well.
+
+ * include/time.inl: Fix syntax error on difftime() declaration.
+
+1999-03-08 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * src/clibincl/stream.hxx: <cyg/infra/cyg_ass.h> needed for this file.
+
+ * src/stdio/common/vsscanf.cxx (str_read): Fix problem with string
+ pointer [created by merge with new I/O package].
+
+1999-03-05 John Dallaway <jld@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Add legal values for CYGNUM_LIBC_TIME_STD_DEFAULT_OFFSET
+ and CYGNUM_LIBC_TIME_DST_DEFAULT_OFFSET.
+
+1999-03-05 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/time.inl (cyg_libc_time_year_is_leap):
+ Fix bug with modulo year 400
+ Fix typo in asctime_r macro
+ Fix gmtime_r, and mktime as a result of testing
+
+ * tests/time/asctime.c, tests/time/ctime.c, tests/time/gmtime.c,
+ tests/time/gmtime.c, tests/time/localtime.c, tests/time/mktime.c,
+ tests/time/strftime.c, tests/time/time.c:
+ New tests
+
+ * tests/PKGconf.mak:
+ Build above new tests
+
+ * include/pkgconf/libc.h:
+ Add reminder FIX ME about extra config option
+
+ * src/time/strftime.cxx:
+ Fix %w and %Y parameters as a result of testing
+
+ * src/time/timeutil.cxx:
+ Fix cyg_libc_time_normalize_structtm() as a result of testing
+ of mktime()
+
+ * tests/time/clock.c:
+ Reformat, remove obsolete bits and tidy
+
+ * include/time.h:
+ Add Cyg_libc_time_dst type and new functions
+ cyg_libc_time_setzoneoffsets(), cyg_libc_time_setdst(),
+ cyg_libc_time_getzoneoffsets(), cyg_libc_time_settime()
+
+ * include/time.inl:
+ Implement the above functions. This allows us to adjust for timezone
+ diffences and set the time.
+ Change localtime() to adjust for STD/DST
+ Change mktime() to adjust for STD/DST
+
+ * include/libc.h:
+ Add new config options CYGSEM_LIBC_TIME_SETTIME_WORKING
+ and component CYGPKG_LIBC_TIME_ZONES containing options
+ CYGNUM_LIBC_TIME_DST_DEFAULT_STATE,
+ CYGNUM_LIBC_TIME_STD_DEFAULT_OFFSET,
+ CYGNUM_LIBC_TIME_DST_DEFAULT_OFFSET
+
+ * src/strftime.cxx:
+ Adjust handling of %Z to _not_ deal with STD/DST
+
+ * src/time/settime.cxx:
+ New file to implement cyg_libc_time_settime()
+
+ * src/PKGconf.mak:
+ Build settime.cxx
+
+ * src/time/timeutil.cxx:
+ Supply outline versions of cyg_libc_time_setzoneoffsets(),
+ cyg_libc_time_setdst(), and cyg_libc_time_getzoneoffsets()
+ Add variables for STD/DST state
+ Some minor comment changes
+
+ * include/errno.h:
+ Use CYGBLD_ATTRIB_CONST instead of __attribute__((const)) directly
+
+ * include/signal.h:
+ Change format of function comment headers
+
+ * include/signal.inl:
+ Restrict errno.h inclusion to when its actually used
+ Fix a spelling typo
+
+ * include/stdlib.h:
+ Add CYGBLD_ATTRIB_CONST to abs, div, labs, ldiv
+
+ * include/stdlib.inl:
+ Reformat and tidy
+ Include new versions of div and ldiv which are more portable and
+ are cleanly rewritten so aren't covered by the BSD licence, which
+ is now removed
+
+ * src/stdlib/div.cxx, src/stdlib/ldiv.cxx:
+ Non-inline, non-BSD and portable versions of the new versions of div
+ and ldiv from stdlib.inl
+
+ * include/time.h:
+ Much reformatting, tidying and improving comments
+ Change CLOCKS_PER_SEC from 1000 to 1000000
+ Add new functions asctime_r, ctime_r, gmtime_r, localtime_r, clock,
+ difftime, mktime, time, asctime, ctime, gmtime, localtime, strftime
+ Include new time.inl file
+
+ * include/pkgconf/libc.h:
+ Add new options CYGSEM_LIBC_TIME_CLOCK_WORKING,
+ CYGSEM_LIBC_TIME_TIME_WORKING, CYGFUN_LIBC_TIME_POSIX,
+ CYGNUM_LIBC_TIME_CLOCK_TRACE_LEVEL, CYGIMP_LIBC_TIME_ASCTIME_INLINE,
+ CYGIMP_LIBC_TIME_CTIME_INLINE, CYGIMP_LIBC_TIME_DIFFTIME_INLINE,
+ CYGIMP_LIBC_TIME_GMTIME_INLINE, CYGIMP_LIBC_TIME_LOCALTIME_INLINE,
+ CYGIMP_LIBC_TIME_MKTIME_INLINE, CYGIMP_LIBC_TIME_ASCTIME_R_INLINE,
+ CYGIMP_LIBC_TIME_CTIME_R_INLINE, CYGIMP_LIBC_TIME_GMTIME_R_INLINE,
+ and CYGIMP_LIBC_TIME_LOCALTIME_R_INLINE
+
+ * time/asctime.cxx, time/asctime_r.cxx, time/clock.cxx, time/ctime.cxx,
+ time/ctime_r.cxx, time/difftime.cxx, time/gmtime.cxx,
+ time/gmtime_r.cxx, time/localtime.cxx, time/localtime_r.cxx,
+ time/mktime.cxx, time/strftime.cxx, time/time.cxx, time/timeutil.cxx,
+ include/time.inl:
+ New files to implement the new time functions. Many of them simply
+ provide the outline definitions, but the real body of the function
+ comes from time.inl
+
+ * src/PKGconf.mak:
+ Build new .cxx files
+
+ * src/clibincl/stdlibsupp.hxx:
+ Remove _div and _ldiv prototypes since they're no longer needed
+
+ * src/clibincl/timesupp.hxx:
+ Delete as its now obsolete
+
+ * src/time/clock.cxx:
+ Use new CYGSEM_LIBC_TIME_CLOCK_WORKING option to control whether it
+ just returns (clock_t)-1 or not.
+ Much reformatting and tidying
+ Change real imlpementation from _clock to __clock
+ Use CYGBLD_ATTRIB_WEAK_ALIAS now
+
+ * tests/stdlib/div.c, tests/stdlib/ldiv.c:
+ Add some extra tests for handling of negative numbers
+ Reformat and tidy a bit, including removing the test for CYGPKG_LIBC
+ since its now always defined if the test is to be compiled
+
+ * tests/time/clock.c:
+ Remove duplication CYG_TEST_INFO line
+ Check if unimplemented using "(clock_t)-1" and not just "-1"
+
+1999-03-04 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdlib/system.cxx:
+ Make sure system() is a weak alias for __system()
+
+ * include/pkgconf/libc.h: Rework CDL description for
+ CYGDAT_LIBC_STDIO_DEFAULT_CONSOLE and change its default to
+ "/dev/haldiag"
+
+ * src/stdio/common/stream.cxx:
+ Check that dev is valid when passed to stream constructor
+
+ * src/stdio/common/stdiosupp.cxx:
+ Tidy
+
+ * src/support/mainthread.cxx: Make this depend on
+ CYGSEM_LIBC_STARTUP_MAIN_THREAD rather than just CYGPKG_KERNEL
+
+1999-03-04 Gary Thomas <gthomas@cygnus.co.uk>
+
+ Merged in changes from 'ecos-new_devs-19990216-branch'
+
+ (1999-02-24 Jonathan Larmour <jlarmour@cygnus.co.uk>)
+
+ * src/stdio/common/stream.cxx:
+ Add "fix me" comments and remove a couple of commented out lines
+
+ * src/stdio/common/vsnprintf.cxx:
+ * src/stdio/common/vsscanf.cxx:
+ Revert to using pointer to string for private data, not just string.
+ This preserves the state across multiple calls
+
+ (1999-02-24 Gary Thomas <gthomas@cygnus.co.uk>)
+
+ * src/stdio/common/vsscanf.cxx:
+ * src/stdio/common/vsnprintf.cxx:
+ * src/stdio/common/stream.cxx:
+ * src/stdio/common/stdiosupp.cxx:
+ * src/stdio/common/fopen.cxx:
+ * src/clibincl/stream.inl:
+ * src/clibincl/stream.hxx:
+ * src/clibincl/stdiosupp.hxx:
+ * include/pkgconf/libc.h: Changes for new I/O system.
+
+1999-03-03 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdlib/atexit.c: Forgot to config atexit test for
+ CYGFUN_LIBC_ATEXIT option
+
+ * include/pkgconf/libc.h:
+ Require CYGVAR_KERNEL_THREADS_DATA for CYGSEM_LIBC_PER_THREAD_STRTOK
+ This fixes PR 19362
+ Require CYGPKG_KERNEL for thread safe streams
+ Also don't need "requires CYGPKG_KERNEL" for per-thread rand and errno
+ if we already require a finer granularity kernel option
+
+1999-02-25 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h: Fix CYGNUM_LIBC_MAIN_STACK_SIZE by changing
+ CYGPKG_LIBC_STARTUP_MAIN_THREAD -> CYGSEM_LIBC_STARTUP_MAIN_THREAD
+ Fix for PR 19304
+
+1999-02-23 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdlib/system.cxx: Add to implement trivial system() call
+ * include/stdlib.h: Add system() prototype
+ * src/PKGconf.mak: Build system.cxx
+
+ * tests/ctype/ctype.c, tests/i18n/setlocale.c, tests/setjmp/setjmp.c,
+ tests/signal/signal1.c, tests/signal/signal2.c,
+ tests/stdio/sprintf1.c, tests/stdio/sprintf2.c, tests/stdio/sscanf.c,
+ tests/stdio/stdiooutput.c, tests/stdlib/atexit.c,
+ tests/stdlib/atoi.c, tests/stdlib/atol.c, tests/stdlib/bsearch.c,
+ tests/stdlib/div.c, tests/stdlib/getenv.c, tests/stdlib/labs.c,
+ tests/stdlib/ldiv.c, tests/stdlib/malloc1.c, tests/stdlib/malloc2.c,
+ tests/stdlib/malloc3.c, tests/stdlib/qsort.c, tests/stdlib/rand1.c,
+ tests/stdlib/rand2.c, tests/stdlib/rand3.c, tests/stdlib/realloc.c,
+ tests/stdlib/srand.c, tests/stdlib/strtol.c, tests/stdlib/strtoul.c,
+ tests/string/memchr.c, tests/string/memcmp1.c,
+ tests/string/memcmp2.c, tests/string/memcpy1.c,
+ tests/string/memcpy2.c, tests/string/memmove1.c,
+ tests/string/memmove2.c, tests/string/memset.c,
+ tests/string/strcat1.c, tests/string/strcat2.c,
+ tests/string/strchr.c, tests/string/strcmp1.c,
+ tests/string/strcmp2.c, tests/string/strcoll1.c,
+ tests/string/strcpy1.c, tests/string/strcpy2.c,
+ tests/string/strcspn.c, tests/string/strlen.c,
+ tests/string/strncat1.c, tests/string/strncat2.c,
+ tests/string/strncpy1.c, tests/string/strncpy2.c,
+ tests/string/strpbrk.c, tests/string/strrchr.c,
+ tests/string/strspn.c, tests/string/strstr.c, tests/string/strtok.c,
+ tests/string/strxfrm1.c, tests/string/strxfrm2.c, tests/time/clock.c:
+ Use CYG_TEST_NA() macro for non-applicable test configurations
+
+1999-02-20 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/signal.h:
+ * include/signal.inl:
+ * src/signal/raise.cxx:
+ * src/signal/siginit.cxx:
+ * src/signal/signal.cxx:
+ * tests/signal/signal1.c
+ * tests/signal/signal2.c:
+ New files to implement ISO standard signals
+
+ * src/PKGconf.mak (TESTS):
+ * tests/PKGconf.mak (TESTS):
+ Update to build new files above
+
+ * include/stdlib.h:
+ * src/clibincl/stdlibsupp.hxx:
+ Comment and QA changes (including giving better names to some types)
+
+ * include/libc.h:
+ Add new configuration options for signals
+ Add new CYGSEM_LIBC_STARTUP_MAIN_THREAD option
+ Add a note to CYGNUM_LIBC_MAIN_STACK_SIZE option that it may be
+ overriden by HAL
+ Add new CYGFUN_LIBC_ATEXIT option and move ...ATEXIT_HANDLERS under
+ it
+ Add new CYGSEM_LIBC_EXIT_CALLS_FFLUSH option
+ Require CYGSEM_LIBC_STARTUP_MAIN_THREAD for "Invoke default static
+ constructors" option
+
+ * src/stdlib/atexit.cxx:
+ Support above CYGFUN_LIBC_ATEXIT and QA changes
+
+ * src/stdlib/exit.cxx:
+ Support for above new libc.h options, and some QA changes
+
+ * src/support/cstartup.cxx:
+ Add support for new CYGSEM_LIBC_STARTUP_MAIN_THREAD option
+
+ * src/support/mainthread.cxx:
+ Override main stack size if the HAL has a minimum
+
+ * src/string/strncpy.cxx:
+ Use improved algorithm for aligned copies - imported from newlib
+ QA changes
+
+ * src/stdlib/abort.cxx:
+ Support raise(SIGABRT), and some QA
+
+ * include/errno.h:
+ Add const attribute
+
+ * tests/stdlib/abs.c:
+ QA improvements
+
+1999-02-04 Jesper Skov <jskov@cygnus.co.uk>
+
+ * src/support/cstartup.cxx: Only define cyg_libc_main_thread when
+ the kernel is around.
+
+1999-02-01 Jesper Skov <jskov@cygnus.co.uk>
+
+ * tests/time/clock.c: Joined the two test/NOP checks into
+ one.
+ Increased tolerance in attempt to fix PRs 18737,18787,18846.
+ Fixed typo.
+
+1999-01-28 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/string/strtok.cxx:
+ * src/stdlib/rand.cxx:
+ Include <pkgconf/kernel.h> if we use kernel header files
+
+1999-01-25 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdio/sscanf.c (test):
+ CYGSEM_LIBC_STDIO_PRINTF_FLOATING_POINT should be
+ CYGSEM_LIBC_STDIO_SCANF_FLOATING_POINT
+ Fix for PR 18786
+
+ * src/string/strtok.cxx:
+ * src/stdio/common/stdiofiles.cxx:
+ * src/errno/errno.cxx:
+ * src/stdlib/rand.cxx:
+ Give mutex protection objects a libc constructor priority
+
+ * src/support/invokemain.cxx:
+ Add prototype for cyg_hal_invoke_constructors()
+
+ * src/support/mainthread.cxx:
+ Give cyg_libc_dummy_constructor_obj a libc constructor priority,
+ and make its class have a public constructor
+
+ * src/stdio/common/stderr.cxx:
+ * src/stdio/common/stdout.cxx:
+ * src/stdio/common/stdin.cxx:
+ Give cyg_libc_stdio_stdin/out/err static objects a libc constructor
+ priority
+
+ * src/clibincl/streambuf.hxx (class Cyg_StdioStreamBuffer):
+ * src/clibincl/stream.hxx (class Cyg_StdioStream):
+ Remove private copy constructor. Needed to make prioritised
+ static constructors work. Fix for PR 18898
+
+1999-01-22 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/errno/errno.cxx:
+ Include pkgconf/kernel.h otherwise it fails with per-thread errno
+ enabled
+
+ * include/pkgconf/libc.h:
+ Enable per-thread errno by default since that is what POSIX would
+ want
+
+ * tests/time/clock.c (test):
+ Placate compiler by initializing clock_first/second/third anyway,
+ even though they won't be in practice. This is only a test program
+ so adding an extra instruction doesn't matter.
+
+ * src/i18n/locale.cxx (_setlocale):
+ Placate compiler, since it is dumb, by nesting, not serializing, if's
+ This is an idempotent change, but screws up the formatting :-(.
+
+ * src/string/strpbrk.cxx (_strpbrk):
+ Change while loop to do loop to placate compiler. It'll even save an
+ instruction too (wow!)
+
+1999-01-22 John Dallaway <jld@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Add closing curly brace to CYGPKG_LIBC_STRING_STRTOK definition
+
+1999-01-21 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/errno.h:
+ Tidy up and add to header description
+ Change cyg_get_errno_p() to cyg_libc_get_errno_p()
+ Remove ifdef CYGPKG_LIBC
+
+ * include/sys/file_if.h:
+ Remove - move contents to stdio.h
+
+ * include/stdio.h:
+ Tidy up header description
+ Move FILE typedef here from sys/file_if.h
+ SEEK_SET, SEEK_CUR, SEEK_END defined to 0, 1, 2 respectively
+ for backwards compatibility with old UNIX
+ Change definitions of stdin/out/err to be addresses of FILE
+ globals - even though they're actually Cyg_StdioStream it'll work
+
+ * include/pkgconf/libc.h:
+ Make CYGPRI_LIBC_WEAK et al macros depend on new ones in infra
+ Reorganise trace options under the individual components they are
+ associated with.
+ Reorganise thread-safety options under the individual components
+ they are associated with.
+ Add new CYGSEM_LIBC_INVOKE_DEFAULT_STATIC_CONSTRUCTORS option
+ Misc. reformatting
+ Remove dependency on pkgconf/kernel.h - Configuration Tool will
+ generate check macros anyway.
+ Remove CYGPKG_LIBC_TRACE, CYGFUN_LIBC_strtok, CYGPKG_LIBC_RAND
+ options
+ Tidy up description header
+
+ * src/clibincl/clibdata.hxx:
+ * src/clibincl/clibdata.inl:
+ * src/support/clibdata.cxx:
+ Remove and instead rely on each component to initialise its own data
+
+ * src/clibincl/stdiofiles.hxx, src/clibincl/stdiofiles.inl:
+ New files to contain global file list and lock (if applicable).
+ Implemented as class with member access functions
+
+ * src/errno/errno.cxx:
+ Reorganise with self-contained per-thread data, if applicable
+ Remove ifdef CYGPKG_LIBC
+ Tidy up description header
+ Rename cyg_get_errno_p() to cyg_libc_get_errno_p()
+
+ * src/stdio/common/fclose.cxx:
+ * src/stdio/common/fflush.cxx:
+ * src/stdio/common/fopen.cxx:
+ * src/stdio/common/freopen.cxx:
+ Remove ifdef CYGPKG_LIBC
+ Use new global file access method from stdiofiles.hxx
+ Tidy up description header
+ Use new CYGBLD_ATTRIB_WEAK_ALIAS
+ Access errno "normally" rather than clibdata way
+
+ * src/stdio/common/stdin.cxx:
+ * src/stdio/common/stdout.cxx
+ * src/stdio/common/stderr.cxx:
+ New files. Implement Cyg_StdioStream objects for each stream. In
+ separate self-contained files so using one doesn't bring in the
+ others
+
+ * src/stdio/common/stdiofiles.cxx:
+ New file. Implements global files array and lock
+
+ * src/stdlib/_exit.cxx:
+ Tidy up description header
+ Remove ifdef CYGPKG_LIBC
+ Use infra CYGBLD* macros
+
+ * src/stdlib/malloc.cxx:
+ Tidy up description header
+ Remove ifdef CYGPKG_LIBC
+ Add pkgconf/kernel.h now that pkgconf/libc.h doesn't have it
+ Use infra CYGBLD* macros
+ Make pool visible externally with weak attribute and new name
+ cyg_libc_malloc_memorypool
+
+ * src/stdlib/rand.cxx:
+ * src/stdlib/strtok.cxx:
+ Reorganise with self-contained per-thread data, if applicable
+ Remove ifdef CYGPKG_LIBC
+ Tidy up description header
+ Use infra CYGBLD* macros
+
+ * src/support/cstartup.cxx:
+ Split into smaller files to make selective linking work better,
+ fix i386 port problem and make GDB happy
+
+ * src/support/environ.cxx:
+ * src/support/invokemain.cxx:
+ * src/support/main.cxx:
+ * src/support/mainthread.cxx:
+ New files from bits of the old cstartup.cxx
+ Add support for CYGSEM_HAL_STOP_CONSTRUCTORS_ON_FLAG
+
+ * src/PKGconf.mak:
+ Update to reflect file additions/deletion
+
+ * tests/stdlib/rand1.c:
+ * tests/stdlib/rand2.c:
+ * tests/stdlib/rand3.c:
+ * tests/stdlib/srand.c:
+ Make conform to coding standards
+ Remove ifdef CYGPKG_LIBC_RAND
+ Tidy up description header
+
+ * tests/string/strtok.c:
+ Make conform to coding standards
+ Remove ifdef CYGFUN_LIBC_strtok
+ Tidy up description header
+
+1999-01-15 Mark Galassi <rosalia@cygnus.com>
+
+ * tests/stdlib/getenv.c (main): added tests for the case in which
+ the user does not supply environ and in which the user supplies a
+ NULL environ.
+
+1999-01-15 Jesper Skov <jskov@cygnus.co.uk>
+
+ * src/support/cstartup.cxx: Added workaround for weak aliasing
+ problem in i386 gcc.
+
+
+1999-01-15 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * include/pkgconf/libc.h (CYGNUM_LIBC_MAIN_STACK_SIZE):
+ (CYGNUM_LIBC_MALLOC_MEMPOOL_SIZE): Change defaults to be
+ more reasonable on small systems.
+
+1999-01-04 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/support/clibdata.cxx:
+ Minor bug with environ not being initialised correctly by
+ default
+
+1998-12-24 Bart Veer <bartv@cygnus.co.uk>
+
+ * src/clibincl/stream.inl (Cyg_StdioStream):
+ check_this() member functions should now be const
+
+1998-12-22 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/string/memchr.cxx (_memchr):
+ treat search value parameter to memchr as an unsigned byte,
+ not a signed int - copied fix from newlib PR 18471
+
+1998-12-21 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdlib/realloc.c:
+ * tests/stdlib/malloc3.c:
+ * tests/stdlib/malloc2.c:
+ Warning cleanup
+
+1998-12-14 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdlib/malloc2.c, tests/stdlib/malloc3.c,
+ tests/stdlib/realloc.c:
+ Only run these tests when we have a coalescing memory allocator
+
+1998-12-14 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/stream.cxx:
+ Only check buffer init success if buffering
+
+ * src/stdio/common/streambuf.cxx (set_buffer):
+ Check for diff of requested size against buffer_size, not
+ get_buffer_size(), since this may return -1, which won't be
+ equal to size, and will cause malloc to be called
+
+1998-12-01 Jesper Skov <jskov@cygnus.co.uk>
+
+ * tests/stdlib/getenv.c (main): Don't declare variables when they
+ are not used.
+
+Thu Nov 26 17:59:12 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/string/strncpy1.c:
+ Fix off-by-one error since it called my_strcmp() and not
+ my_strncmp(), which meant in included the trailing NULL when it
+ shouldn't have.
+
+1998-11-26 Jesper Skov <jskov@cygnus.co.uk>
+
+ * src/stdlib/qsort.cxx (_qsort):
+ * src/stdlib/rand.cxx (_srand):
+ Changed CYG_REPORT_FUNCNAMETYPE to CYG_REPORT_FUNCNAME in void
+ functions.
+
+Mon Oct 26 18:49:00 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/support/cstartup.cxx (cyg_libc_dummy_main):
+ Silence compiler warning with cast of char * to CYG_ADDRWORD
+
+Wed Oct 28 17:31:21 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/time/clock.cxx (_clock):
+ Reorder scaling expression as it was both incorrect and risked
+ overflow.
+ Fix for PR 18076
+
+Mon Oct 19 14:40:06 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/stdio.h (EOF):
+ Change from -64 to (-1), to allow broken code to work :-/
+ Also change other negative defines to be within parentheses
+
+1998-10-19 Mark Galassi <rosalia@cygnus.com>
+
+ * include/pkgconf/libc.h: updated the doc URL
+
+Thu Oct 15 21:33:44 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/clibdata.hxx:
+ Only include kernel thread headers when we're in thread-safe mode
+
+ * src/time/clock.cxx:
+ Only include kernel clock headers if there's a kernel with the
+ right functionality available
+
+ * tests/time/clock.c:
+ Remove unnecessary inclusion of <pkgconf/kernel.h>
+
+ Above changes are required for PR 17229
+
+Wed Oct 14 16:38:55 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/clibdata.hxx, src/clibincl/clibdata.inl:
+ Conditionalise inclusion of clibincl/stdiosupp.hxx and
+ clibincl/stream.hxx. Tidying up PR 17502
+
+Wed Oct 14 14:08:56 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Rename CYGPKG_LIBC_STRING_OPTIMISATIONS to
+ CYGPKG_LIBC_STRING_OPTIMIZATIONS to make it truely merkin.
+
+Tue Oct 13 19:34:41 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h (CYGDAT_LIBC_ARGUMENTS):
+ Add a default argv[0] of "" as many programs assume argc>0
+ The standard allows argv[0] to be "" if the program name
+ is not available
+
+1998-09-26 Bart Veer <bartv@cygnus.co.uk>
+
+ * src/clibincl/stdiosupp.hxx:
+ PR 17502: this header file now does nothing if the stdio option
+ is disabled completely. This is the same behaviour is
+ clibincl/stream.hxx, although arguably the #ifdef protection
+ should happen wherever the header file is #include'd rather than
+ in the header file itself.
+
+ * src/clibincl/clibdata.hxx:
+ PR 17502: this header file still #include's internal stdio-related
+ header files and references the FILE structure, even if stdio is
+ disabled. There were some #ifdef's for CYGPKG_LIBC_STDIO already.
+ One more has been added for _fopen() and _fclose().
+
+1998-09-25 Bart Veer <bartv@cygnus.co.uk>
+
+ * src/clibincl/streambuf.inl (Cyg_StdioStreamBuffer):
+ PR 17487: Reorder the calls to initialize member fields, to
+ eliminate a compiler warning.
+
+Fri Sep 25 19:04:29 1998 Jonathan Larmour <jlarmour@peshwari.cygnus.co.uk>
+
+ * src/errno/errno.cxx, src/stdlib/bsearch.cxx,
+ src/stdlib/qsort.cxx, src/stdlib/rand.cxx, src/string/strtok.cxx,
+ src/time/clock.cxx:
+ Only define tracing variable and tracing level macro when
+ the relevant tracing level config options are set. Otherwise
+ keep the tracing level fixed at 0
+ Fix for PR 17476
+
+ * include/pkgconf/libc.h:
+ Define trace levels only if parent CYGPKG_LIBC_TRACE is defined
+ for consistency with Configuration Tool
+
+
+Fri Sep 25 17:24:45 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/stdioinlines.cxx:
+ Make definition of vscanf() dependent on CYGFUN_LIBC_STDIO_ungetc
+ otherwise _vfscanf() won't be compiled. This therefore would
+ cause a link fail iff selective linking is not enabled.
+ Fix for PR 17455
+
+Fri Sep 25 17:23:17 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdlib/rand.cxx:
+ Make compilation dependent on CYGPKG_LIBC_RAND
+ Fix for PR 17473
+
+ * tests/stdlib/srand.c:
+ Make definition of dummy test pass conditional on CYGPKG_LIBC_RAND
+ not being defined, as well as CYGPKG_LIBC
+ Caused compilation failure when testing PR 17473 fix
+
+Mon Sep 21 17:11:04 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdio/sscanf.c:
+ Make sscanf test conditional on CYGFUN_LIBC_STDIO_ungetc since
+ _vfscanf() only gets compiled if this is defined
+ Fix for PR 17346
+
+1998-09-20 Mark Galassi <rosalia@cygnus.com>
+
+ * include/pkgconf/libc.h: updated CDL doc strings.
+
+Fri Sep 18 22:18:47 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/clibdata.inl (get_errno_p):
+ Rather than this function only being available in thread-safe mode,
+ instead make what it returns be either the per-thread errno, or
+ global errno depending on the configuration.
+ Include <errno.h> (conditionally) to support this change
+
+Wed Sep 16 11:20:31 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Remove "fix me" comment which I forgot to remove before
+
+Tue Sep 15 19:27:57 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Updated descriptions and a few other minor things after review.
+ Notably though, the NDEBUG config option has been removed
+
+1998-09-15 Bart Veer <bartv@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ PR 17201: removed dependency on CYGPKG_KERNEL in the option
+ CYGNUM_LIBC_MAIN_STACK_SIZE, since the actual dependencies cannot
+ be expressed sensibly in the current system.
+
+1998-09-11 Bart Veer <bartv@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Sorting out dependencies for error package.
+
+1998-09-10 Mark Galassi <rosalia@cygnus.com>
+
+ * include/pkgconf/libc.h: started adding doc fields to the
+ cdl_package data, as a pilot for now.
+
+Wed Sep 9 17:41:23 1998 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Add option CYGIMP_LIBC_MALLOC_CXX_DELETE_CALLS_FREE to explicitly
+ control whether the empty delete functions (currently) in
+ kernel/.../common/delete.cxx are enabled; controls code bloat, see
+ the comments in delete.cxx.
+
+Fri Sep 4 16:43:38 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdio/stdiooutput.c:
+ Add a default CYG_TEST_PASS() to make sure the test infra doesn't
+ complain.
+ Also remove the unused string functionsa
+
+Fri Sep 4 15:43:48 1998 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * src/stdlib/exit.cxx (__libc_exit):
+ * src/stdlib/_exit.cxx (__libc__exit):
+ * src/stdlib/malloc.cxx (_free):
+ * src/stdlib/abort.cxx (abort):
+ * src/support/cstartup.cxx (invoke_main):
+ Tracing system asserted cos it was being called incorrectly; these
+ are void functions so you shouldn't give a type to the function
+ reporting call.
+
+Fri Sep 4 15:03:10 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Fix CYGDAT_LIBC_STDIO_DEFAULT_CONSOLE description to refer to
+ the table.cxx file, not table.h
+
+Fri Sep 4 14:38:52 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Add description for CYGDAT_LIBC_STDIO_DEFAULT_CONSOLE since
+ Proven won't be making any changes to the device driver
+ implementation after all.
+ Fix for PR 17148
+
+ * src/clibincl/stream.inl (set_position):
+ Remove "fix me" line. It is obvious that this will have to change
+ with a filesystem interface
+ Fix for PR 17147
+
+ * src/stdio/common/freopen.cxx:
+ Remove "fix me" - I know about this issue
+ Fix for PR 17145
+
+ * src/stdio/common/stream.cxx (read):
+ Remove "fix me" and change to use memcpy
+ Fix for PR 17144
+
+Fri Sep 4 14:36:47 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdio/stdiooutput.c:
+ Actually add it this time!
+
+Fri Sep 4 13:48:13 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdio/stdiooutput.c:
+ Add new tests for misc stdio output functions
+
+ * tests/PKGconf.mak:
+ Build stdiooutput.c test
+
+Fri Sep 4 12:52:10 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/stream.inl (write_byte):
+ Remove bogus assert
+
+ * tests/stdlib/getenv.c (main):
+ Check whether str is NULL before doing a strcmp()
+
+ * tests/stdio/sprintf2.c (main):
+ Reformat to 76 columns
+
+Fri Sep 4 02:10:54 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/stream.hxx, src/stdio/common/stream.cxx:
+ Add new peek_byte method to Cyg_StdioStream
+
+ * src/stdio/input/vfscanf.cxx (_vfscanf):
+ Fix up buffer access to work with new peek_byte method above
+ Fix for PR 16954
+
+Thu Sep 3 19:40:11 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdlib/rand1.c, tests/stdlib/rand2.c,
+ tests/stdlib/rand3.c:
+ Add extra check for CYGPKG_LIBC_RAND to decide whether the test
+ is applicable or not
+
+ * tests/stdlib/rand2.c (test):
+ Use CYGNUM_LIBC_RAND_SEED for default seed, not 1
+
+ * tests/string/strtok.c:
+ Add extra check for CYGFUN_LIBC_strtok to decide whether the
+ test is applicable or not
+
+Wed Sep 2 19:11:40 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/input/fread.cxx, src/stdio/output/fwrite.cxx:
+ Add fread() and fwrite() functions
+
+ * src/PKGconf.mak:
+ Build fread.cxx and fwrite.cxx from above
+
+ * src/stdio/common/stream.cxx:
+ Reformat to 76 columns
+ In write(), move initialisation of *bytes_written to start
+ In read(), move initialisation of *bytes_read to start
+
+ * include/stdio.h:
+ Reformat to 76 columns
+
+ Replace all references to the ANSI
+ standard to instead by the ISO C standard
+
+ Add commented argument names for "documentation"
+
+ Add fread() and fwrite() prototypes
+
+ * src/clibincl/stdiosupp.hxx:
+ Copy the above changes from stdio.h, and add _fread() and _fwrite()
+ prototypes
+
+ * src/stdio/output/fputs.cxx, src/stdio/input/fgets.cxx:
+ Reformat to 76 columns
+
+Wed Sep 2 15:41:15 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/input/vfscanf.cxx:
+ Reformat to 76 columns
+
+Wed Sep 2 14:46:18 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/fflush.cxx:
+ Use trylock_me() instead of lock_me(), and loop to prevent
+ deadlocks
+
+ * src/clibincl/stream.hxx, src/clibincl/stream.inl:
+ Add trylock_me() method
+
+ * src/clibincl/stream.hxx, src/clibincl/stream.inl,
+ src/stdio/common/fflush.cxx:
+ Reformat to 76 columns
+
+Wed Sep 2 12:24:27 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Change 0x7fff to 0x7fffffff. Oops!
+ give main stack size option a legal_values field
+ Undefine tracing by default
+ Add some more description in the header
+
+Tue Sep 1 20:02:07 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/i18n/setlocale.c (cyg_package_start):
+ Fix typo - extra "x" for no reason at all! :-)
+
+Tue Sep 1 19:44:58 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/i18n/locale.cxx:
+ Fix bug in find_locale_data() that miscalculated size of
+ all_locales
+
+ Make find_locale_data() match the locale "" and add some
+ other things in _setlocale() to ensure that "C" gets returned
+ when the default locale "" is passed.
+
+ Only check the locale pointer when it is non-NULL
+
+ * tests/i18n/setlocale.c:
+ New tests for setlocale()
+
+ * tests/PKGconf.mak:
+ Update to build setlocale.c test
+
+ * src/support/cstartup.cxx:
+ Don't actually call system default main() "main" otherwise GDB
+ gets confused and thinks its the entry point. Instead make a weak
+ alias and call the real function something different.
+
+Tue Sep 1 18:31:42 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/i18n/locale.cxx (_setlocale):
+ Fix tracing macro name and remove "str maybe used before
+ initialised" warning
+
+ * tests/stdlib/qsort.c:
+ Correct file description header
+
+Tue Sep 1 17:04:32 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/locale.h, src/clibincl/i18nsupp.hxx, src/i18n/locale.cxx:
+ New files to add support for locales as defined by the ISO C
+ standard. i.e. setlocale() and localeconv() functions and some
+ other bits
+
+ * include/pkgconf/libc.h:
+ Add CYGNUM_LIBC_MAX_LOCALE_NAME_SIZE config option for locale
+ support
+
+ * src/PKGconf.mak:
+ build locale.cxx
+
+ * include/errno.h, src/clibincl/ctypesupp.hxx:
+ Tidy up to 76 columns
+
+Tue Sep 1 00:24:22 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Move environment-related options from stdlib into new
+ CYGPKG_LIBC_STARTUP component. Also add options for main()'s
+ arguments (CYGPKG_LIBC_ARGUMENTS), main()'s default stack size
+ (CYGNUM_LIBC_MAIN_STACK_SIZE), number of atexit handlers
+ (CYGNUM_LIBC_ATEXIT_HANDLERS), and whether _exit() stops the
+ system (CYGSEM_LIBC_EXIT_STOPS_SYSTEM).
+
+ * src/clibincl/stdlibsupp.hxx:
+ Fix a few comment bugs, and add new
+ cyg_libc_invoke_atexit_handlers() function prototype
+
+ * src/stdlib/_exit.cxx, src/stdlib/atexit.cxx, src/stdlib/exit.cxx:
+ Implement exit(), atexit() and _exit() correctly now. Also
+ includes cyg_libc_invoke_atexit_handlers() in atexit.cxx. Now
+ we get the correct behaviour of atexit(), and exit() invokes the
+ atexit handlers and fflushs all the stdio streams. Add plenty of
+ tracing of asserts too.
+
+ * src/support/cstartup.cxx:
+ Make main_thread object an exported global. Allow user-settable
+ arguments. Add MUCH more tracing and asserts. Improve comments.
+ Tidy up to 76 columns
+
+ * tests/stdlib/atexit.c:
+ Add simple test for atexit() and it calling registered functions
+
+ * tests/PKGconf.mak:
+ Build atexit.c test
+
+Mon Aug 31 18:54:48 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdlib/getenv.cxx, tests/stdlib/getenv.c:
+ Add support for getenv(), and some tests to ensure it works
+
+ * src/PKGconf.mak, tests/PKGconf.mak:
+ Update to include getenv.cxx and getenv.c test
+
+ * src/clibincl/clibdata.hxx:
+ remove prototype for environ - we expect files needing it to
+ define it themselves
+
+ * src/support/clibdata.cxx:
+ Tidy up to 76 columns and add definition of char **environ, but
+ with a configurable initialiser (see libc.h below)
+
+ * tests/stdlib/abs.c (main):
+ Tidy up to 76 columns
+
+ * src/stdlib/malloc.cxx:
+ Tidy up to 76 columns and remove warning for undefined _memcpy()
+ by changing to memcpy(), and casting away signedness
+
+ * include/pkgconf/libc.h:
+ Add CYGPKG_LIBC_ENVIRONMENT and CYGDAT_LIBC_DEFAULT_ENVIRONMENT
+ configuration options
+
+ * include/pkgconf/libc.h, src/clibincl/clibdata.hxx:
+ Tidy up to 76 columns
+
+ * include/stdlib.h:
+ Add getenv() prototype and tidy up to 76 columns
+
+ * src/clibincl/stdlibsupp.hxx:
+ Add _getenv() prototype
+
+Mon Aug 31 13:37:08 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdlib/malloc.cxx:
+ Add realloc()
+
+ * tests/stdlib/realloc.c:
+ Add this file to test new realloc() functionality
+
+ * tests/PKGconf.mak:
+ Build realloc test
+
+ * tests/stdlib/malloc3.c (main), tests/stdlib/malloc2.c (main),
+ tests/stdlib/malloc1.c (main):
+ Conditionalise local vars to prevent warnings
+
+ * tests/stdlib/malloc3.c (fill_with_data):
+ Move '{' into "verb" line
+
+ * include/pkgconf/libc.h:
+ Require infra tracing support to allow tracing
+
+ * include/stdlib.h:
+ Add realloc()
+
+ * src/clibincl/stdlibsupp.hxx:
+ Update the commented argument names from stdlib.h, including realloc()
+
+1998-08-28 Bart Veer <bartv@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ * src/clibincl/clibdata.hxx, src/time/clock.cxx:
+
+ Updated for new kernel configuration option symbol names
+
+Fri Aug 28 19:18:25 1998 Hugo Tyson <hmt@cygnus.co.uk>
+
+ Changed the entry below to sat "tx39" instead of "mn10300".
+ It's been a long week.
+
+Fri Aug 28 18:59:20 1998 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * src/support/cstartup.cxx: Add a weakly named main to allow the
+ default configuration to link on the tx39 which has no
+ scalextric linking yet. The static Cyg_Thread main_thread object
+ below continues to exist, though unreferenced, so all its
+ descendants must exist too.
+
+Fri Aug 28 08:54:29 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/stdlib.h:
+ Add commented argument names Add exit(), and atexit(). And move
+ these along with abort() and _exit() to a new section.
+
+ * src/stdlib/atexit.cxx, src/stdlib/exit.cxx:
+ Add trivial versions of atexit() and exit()
+
+ * include/pkgconf/libc.h:
+ Add CYGNUM_LIBC_MAIN_STACK_SIZE config option
+
+ * include/sys/cstartup.h, src/support/cstartup.cxx, src/PKGconf.mak:
+ New files to provide a new function cyg_iso_c_support(), which
+ invokes main "correctly".
+
+ * tests/ctype/ctype.c, tests/setjmp/setjmp.c, tests/stdio/sprintf1.c,
+ tests/stdio/sprintf2.c, tests/stdio/sscanf.c, tests/stdlib/abs.c,
+ tests/stdlib/atoi.c, tests/stdlib/atol.c, tests/stdlib/bsearch.c,
+ tests/stdlib/div.c, tests/stdlib/labs.c, tests/stdlib/ldiv.c,
+ tests/stdlib/malloc1.c, tests/stdlib/malloc2.c,
+ tests/stdlib/malloc3.c, tests/stdlib/qsort.c, tests/stdlib/rand1.c,
+ tests/stdlib/rand2.c, tests/stdlib/rand3.c, tests/stdlib/srand.c,
+ tests/stdlib/strtol.c, tests/stdlib/strtoul.c,
+ tests/string/memchr.c, tests/string/memcmp1.c,
+ tests/string/memcmp2.c, tests/string/memcpy1.c,
+ tests/string/memcpy2.c, tests/string/memmove1.c,
+ tests/string/memmove2.c, tests/string/memset.c,
+ tests/string/strcat1.c, tests/string/strcat2.c,
+ tests/string/strchr.c, tests/string/strcmp1.c,
+ tests/string/strcmp2.c, tests/string/strcoll1.c,
+ tests/string/strcoll2.c, tests/string/strcpy1.c,
+ tests/string/strcpy2.c, tests/string/strcspn.c,
+ tests/string/strlen.c, tests/string/strncat1.c,
+ tests/string/strncat2.c, tests/string/strncpy1.c,
+ tests/string/strncpy2.c, tests/string/strpbrk.c,
+ tests/string/strrchr.c, tests/string/strspn.c,
+ tests/string/strstr.c, tests/string/strtok.c,
+ tests/string/strxfrm1.c, tests/string/strxfrm2.c,
+ tests/time/clock.c:
+
+ Modify all tests to use new startup mechanism, and cyg_iso_c_start()
+
+Fri Aug 28 00:29:38 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/stream.cxx:
+ Add #ifdef CYGSEM_LIBC_STDIO_WANT_BUFFERED_IO around all accesses to
+ flags.last_buffer_op_was_read. Fix for PR 16997
+
+Thu Aug 27 01:12:42 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/sys/file_if.h:
+ Fix comments and remove cyg_get_file_star()
+
+Wed Aug 26 20:24:32 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Remove #define CYGPKG_LIBC is that is meant to live in
+ <pkgconf/system.h> after all
+
+Wed Aug 26 19:39:23 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ More fixes to CDL stuff to make it work better, and look better on
+ the screen
+
+Tue Aug 25 20:21:41 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Make some fixes after running the ConfigTool
+
+Tue Aug 25 16:46:28 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h (CYGNUM_LIBC_STDIO_BUFSIZE):
+ Fix typo of CYGNUM_LIBC_STDIO_BUFSIZE
+
+Tue Aug 25 15:10:57 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Tidy up CDL stuff a bit more, prior to checking it actually works.
+
+Tue Aug 25 11:38:52 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdlib/malloc2.c (main):
+ Prevent calls to CYG_TEST_STILL_ALIVE for now
+
+Tue Aug 25 05:39:28 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Change cosmetic paragraph alignment.
+
+Tue Aug 25 03:11:34 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/support/clibdata.cxx:
+ Make stderr initialise with buffer size 0.
+ For PR 16955
+
+Mon Aug 24 17:38:46 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ First pass at CDL-ifying the C library configuration. Currently
+ deliberately disabled as there a few outstanding issues.
+
+Mon Aug 24 16:14:22 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/output/vfnprintf.cxx (_vfnprintf):
+ clear up warning for unused argument
+
+ * tests/stdlib/malloc2.c (NUM_ITERATIONS):
+ Lower to 100 from 50000 so it won't take too long under the simulator
+
+Thu Aug 20 17:48:43 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdlib/malloc.cxx:
+ Remove now unnecessary inclusion of kernel/ktypes.h
+
+Wed Aug 19 19:19:14 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdio/sprintf1.c, tests/stdio/sprintf2.c,
+ tests/stdio/sscanf.c, tests/stdlib/atoi.c, tests/stdlib/atol.c,
+ tests/stdlib/rand1.c, tests/stdlib/rand2.c, tests/stdlib/rand3.c,
+ tests/stdlib/srand.c, tests/stdlib/strtol.c,
+ tests/stdlib/strtoul.c, tests/string/strtok.c,
+ tests/time/clock.c:
+ Add parameters to "main()" to silence warnings
+
+Wed Aug 19 18:52:59 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/stream.cxx (refill_read_buffer):
+ Put conditional error check into same #ifdef and if as what was being
+ checked in the first place!
+
+Wed Aug 19 18:49:19 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/stream.inl:
+ Reorder Cyg_StdioStream::check_this() to be first to silence
+ warnings
+
+Tue Aug 18 16:10:03 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * ecc/language/c/libc/current/src/clibincl/clibdata.hxx,
+ ecc/language/c/libc/current/src/errno/errno.cxx,
+ ecc/language/c/libc/current/src/stdio/common/fopen.cxx,
+ ecc/language/c/libc/current/src/stdlib/rand.cxx,
+ ecc/language/c/libc/current/src/string/strtok.cxx:
+ Rename CYGIMP_LIBC_INTERNAL_DATA_PREAMBLE,
+ CYGIMP_LIBC_INTERNAL_DATA_ALLOC_CHECK_PREAMBLE,
+ CYGVAR_LIBC_INTERNAL_DATA, and
+ CYGIMP_LIBC_INTERNAL_DATA_CHECK to all have CYGPRI_ prefix instead
+ as recommended by the config name rules
+
+
+Tue Aug 18 14:31:19 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/setvbuf.cxx (_setvbuf):
+ Rename variable names in assert line, otherwise doesn't build
+ with asserts on!
+
+Sun Aug 16 18:15:12 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/input/vfscanf.cxx (_vfscanf):
+ Fix some bugs, although there are some left to fix still. Unrelated
+ to the rest of the checkins, so I will check the partial fix in now.
+
+ * src/clibincl/stream.hxx, src/clibincl/stream.inl,
+ src/stdio/common/stream.cxx:
+ Add parameters to constructor to allow more things to be done at
+ construction time.
+
+ Now we have "new", remove separate "construct" method
+
+ Add more documentation on constructor
+
+ As requested by code review, where possible, move boolean flags
+ into separate packed bitfield structure for space efficiency
+
+ Make readbuf_char be usable all the time rather than when configured
+ not to be buffering, as it is also needed for non-buffered mode i.e.
+ _IONBF
+
+ * src/stdio/common/fopen.cxx:
+ Change to use new method of construction from above, using new
+
+ Use thread-specific data, rather than global. And so change errnos
+ to access errno entry specifically
+
+ Make process_mode() check for append mode too
+
+ Reformat for coding standards to have { in same line as "verb"
+
+ * src/stdio/common/setvbuf.cxx:
+
+ Change to cope with different way of dealing with buffering policy
+ flags etc. in Cyg_StdioStream
+
+ * src/stdio/common/vsnprintf.cxx, src/stdio/common/vsscanf.cxx,
+ src/support/clibdata.cxx:
+ Change construction of streams to use new parameters added above,
+ and change to use _IONBF mode for string stdio functions,
+ otherwise its a waste of memory. And use _IONBF for stderr as the
+ ISO standard tells us to!
+
+ Reformat for coding standards to have { in same line as "verb"
+
+ * src/clibincl/streambuf.hxx, src/clibincl/streambuf.inl:
+ Change constructor so that it can be set with default size and
+ dynamic buffer (if applicable)
+
+ Fix minor bug in destructor - should only call free when allocated
+ dynamically
+
+ Change get_buffer_size to return -1 if the buffer was not allowed
+ to be set up
+
+ * src/stdio/common/streambuf.cxx:
+ Remove unnecessary stdio.h include and add extra comment to whether
+ to free bit in set_buffer()
+
+ * src/stdio/common/freopen.cxx:
+ Change @@@ to standard fix me string
+
+ * src/stdio/output/fputc.cxx:
+ Remove unnecessary "written" variable
+
+Thu Aug 13 15:37:28 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdlib/_exit.cxx:
+ Included use of "fix me" line to ensure this is discussed before
+ release
+
+ * include/stdlib.h, src/stdlib/abort.cxx, src/PKGconf.mak:
+ Add abort.cxx to implement abort(), albeit naively
+
+Thu Jul 30 18:03:09 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/vsscanf.cxx (_vsscanf),
+ src/stdio/common/vsnprintf.cxx (_vsnprintf):
+ Fix initialiser of pseudo string device table that didn't get updated
+ when the table changed (Bad proven, no biscuit).
+
+ * src/clibincl/stream.inl (~Cyg_StdioStream):
+ Move invalidation of magic_validity_word to after unlock_me(),
+ otherwise it always fails!
+
+Tue Jul 28 21:29:53 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/clibdata.hxx:
+ Shorten over-long lines
+
+Tue Jul 28 20:28:23 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/stream.hxx (class Cyg_StdioStream),
+ src/clibincl/stream.inl, src/stdio/common/stream.cxx:
+ Clarify some comments and get the CYGDBG_DEFINE_CHECK_THIS and
+ CYG_ASSERTCLASS stuff going
+
+ * src/clibincl/stream.inl:
+ Put '{'s on same line as "action" as per coding standards
+ Shorten over-long lines
+
+Tue Jul 28 15:31:06 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/streambuf.inl, src/stdio/common/streambuf.cxx:
+ Move set_buffer() from streambuf.inl to new file streambuf.cxx
+
+ * src/PKGconf.mak (COMPILE):
+ Build new file streambuf.cxx
+
+ * src/clibincl/streambuf.hxx (class Cyg_StdioStreamBuffer):
+ Add METHODS comment
+
+ * src/stdio/common/stream.cxx:
+ Put '{'s on same line as "action" as per coding standards
+ Shorten over-long lines
+
+Tue Jul 28 00:26:36 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/stdlib.inl, src/stdio/input/vfscanf.cxx,
+ src/stdio/output/vfnprintf.cxx, src/stdlib/div.cxx,
+ src/stdlib/ldiv.cxx, src/stdlib/qsort.cxx, src/stdlib/strtol.cxx,
+ src/stdlib/strtoul.cxx, src/string/strtok.cxx:
+
+ Include proper Berkeley license inline in the file, rather than
+ referring to an external file
+
+ * doc/COPYING.UCB:
+ Remove, now that it isn't referred to any more
+
+Mon Jul 27 23:34:26 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/ctype.h, include/ctype.inl, include/errno.h,
+ include/stdio.h, include/stdio.inl, include/stdlib.h,
+ include/stdlib.inl, include/string.h, include/string.inl,
+ include/time.h, include/sys/file_if.h, src/PKGconf.mak,
+ src/clibincl/clibdata.hxx, src/clibincl/clibdata.inl,
+ src/clibincl/ctypesupp.hxx, src/clibincl/stdiosupp.hxx,
+ src/clibincl/stream.hxx, src/clibincl/streambuf.hxx,
+ src/clibincl/streambuf.inl, src/clibincl/stringsupp.hxx,
+ src/clibincl/timesupp.hxx, src/ctype/isalnum.cxx,
+ src/ctype/isalpha.cxx, src/ctype/iscntrl.cxx,
+ src/ctype/isdigit.cxx, src/ctype/isgraph.cxx,
+ src/ctype/islower.cxx, src/ctype/isprint.cxx,
+ src/ctype/ispunct.cxx, src/ctype/isspace.cxx,
+ src/ctype/isupper.cxx, src/ctype/isxdigit.cxx,
+ src/ctype/tolower.cxx, src/ctype/toupper.cxx,
+ src/errno/errno.cxx, src/stdio/common/snprintf.cxx,
+ src/stdio/common/sprintf.cxx, src/stdio/common/sscanf.cxx,
+ src/stdio/common/stdioinlines.cxx, src/stdio/common/stream.cxx,
+ src/stdio/common/ungetc.cxx, src/stdio/common/vsnprintf.cxx,
+ src/stdio/common/vsscanf.cxx, src/stdio/input/fgetc.cxx,
+ src/stdio/input/fgets.cxx, src/stdio/input/fscanf.cxx,
+ src/stdio/input/gets.cxx, src/stdio/input/scanf.cxx,
+ src/stdio/output/fnprintf.cxx, src/stdio/output/fprintf.cxx,
+ src/stdio/output/fputc.cxx, src/stdio/output/fputs.cxx,
+ src/stdio/output/printf.cxx, src/stdlib/_exit.cxx,
+ src/stdlib/abs.cxx, src/stdlib/atof.cxx, src/stdlib/atoi.cxx,
+ src/stdlib/atol.cxx, src/stdlib/div.cxx, src/stdlib/labs.cxx,
+ src/stdlib/ldiv.cxx, src/stdlib/rand.cxx, src/stdlib/strtod.cxx,
+ src/string/memchr.cxx, src/string/memcmp.cxx,
+ src/string/memmove.cxx, src/string/strcat.cxx,
+ src/string/strchr.cxx, src/string/strcmp.cxx,
+ src/string/strcoll.cxx, src/string/strcpy.cxx,
+ src/string/strcspn.cxx, src/string/strlen.cxx,
+ src/string/strncat.cxx, src/string/strncmp.cxx,
+ src/string/strncpy.cxx, src/string/strpbrk.cxx,
+ src/string/strrchr.cxx, src/string/strspn.cxx,
+ src/string/strstr.cxx, src/string/strsuppt.cxx,
+ src/string/strtok.cxx, src/string/strxfrm.cxx,
+ src/support/clibdata.cxx, src/time/clock.cxx:
+ Untabify
+
+Mon Jul 27 23:14:18 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/errno/errno.cxx, src/stdio/input/vfscanf.cxx,
+ src/stdio/output/vfnprintf.cxx, src/stdlib/strtol.cxx,
+ src/stdlib/strtoul.cxx, src/stdlib/malloc.cxx, src/stdlib/qsort.cxx,
+ tests/ctype/ctype.c, tests/stdlib/rand3.c, tests/stdlib/malloc3.c:
+ Remove all mentions of "register" in variable declarations. Also
+ untabify where needed
+
+ * src/stdlib/bsearch.cxx:
+ Untabify this too
+
+
+Mon Jul 27 22:18:51 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/output/fputc.cxx (_fputc):
+ Replace call to stream write() with call to write_byte()
+
+ * src/clibincl/stream.inl (write_byte):
+ Add asserts for stream write() returning odd values for how much has
+ been written
+
+ (bytes_available_to_read):
+ Remove "register" def for variable declaration
+
+Mon Jul 27 22:06:22 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/stdiosupp.cxx:
+ Remove #if 0'd cyg_get_file_star() and unnecessary pseudo string
+ device definition
+
+Mon Jul 27 21:57:25 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h, src/support/clibdata.cxx:
+ Change CYGXXX_LIBC_STDIO_DEFAULT_CONSOLE to
+ CYGDAT_LIBC_STDIO_DEFAULT_CONSOLE
+
+Mon Jul 27 21:49:23 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/clibdata.hxx, src/clibincl/clibdata.inl,
+ src/clibincl/ctypesupp.hxx, src/clibincl/setjmpsupp.hxx,
+ src/clibincl/stdiosupp.hxx, src/clibincl/stdlibsupp.hxx,
+ src/clibincl/stream.hxx, src/clibincl/stream.inl,
+ src/clibincl/streambuf.hxx, src/clibincl/streambuf.inl,
+ src/clibincl/stringsupp.hxx, src/clibincl/timesupp.hxx:
+
+ Change CYGONCE_LIBC_*_{HXX,INL} to CYGONCE_LIBC_CLIBINCL_*_{HXX,INL}
+
+Mon Jul 27 21:34:05 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Change #define XXXXX 1 to #define XXXXX where applicable as per code
+ review
+
+ Also remove obsolete CYGIMP_LIBC_THREAD_START_SUSPENDS_SELF
+
+Mon Jul 27 19:42:27 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/fopen.cxx (_fopen):
+ Use #ifdef, not #if for config options
+
+Mon Jul 27 15:01:51 BST 1998 Chris Provenzano <proven@cygnus.com>
+
+ * src/stdio/common/stream.cxx, src/stdio/common/vsnprintf.cxx
+ * src/stdio/common/vsscanf.cxx:
+ Fixes to compile with the new Cyg_IORB field names.
+
+Thu Jul 9 03:40:21 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdlib/atoi.c, tests/stdlib/atol.c,
+ tests/stdlib/strtol.c, tests/stdlib/strtoul.c:
+ Adjust starting of tests to possibly start scheduler since
+ strtol/stroul rely on errno, which may be a per-thread variable
+
+Thu Jul 9 03:06:25 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/stream.hxx, src/clibincl/stream.inl,
+ src/stdio/common/stream.cxx, src/stdio/common/setvbuf.cxx:
+ Consolidate read and write buffers into single buffer, as it should
+ have been all along
+
+ * src/clibincl/streambuf.hxx, src/clibincl/streambuf.inl:
+ Add drain_buffer() method to speed up the case when we want the
+ buffer completely emptied
+
+Tue Jul 7 21:26:33 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdio/sprintf1.c:
+ Add a couple of new tests that check that very long strings work too
+
+Wed Jul 1 19:52:39 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/stream.hxx, src/clibincl/streambuf.hxx:
+ Do not permit copy constructors
+
+ * src/clibincl/stream.inl, src/stdio/common/fclose.cxx:
+ Make sure we use #ifdef and not #if
+
+ * src/clibincl/streambuf.inl:
+ Use member initialisation list rather than explicit initialisation to
+ reduce warnings
+
+Wed Jul 1 19:17:55 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h and all files using config options:
+ Rename configuration defines to make them more standard
+
+Thu Jun 25 20:09:30 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/string/strcat.cxx:
+ Add parentheses on check to silence warning
+ (Verified by proven)
+
+Thu Jun 25 19:30:01 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdlib/malloc.cxx:
+ Make sure that the malloc pool is initialised before other things
+ can use it. This is done with the hot new constructor ordering
+ feature.
+
+Thu Jun 25 18:27:03 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/input/vfscanf.cxx:
+ Remove bogus ifdef if floating point is _not_ wanted
+
+Thu Jun 25 17:31:42 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/string/strtok.cxx:
+ Fix argument checking to allow first argument of NULL
+
+Thu Jun 25 04:18:50 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/clibdata.inl (get_strtok_last_p):
+ Remove bogus assertion
+
+ * src/stdlib/malloc.cxx:
+ Got sense of alignment check assertion the wrong way round, so negate
+ it
+
+Thu Jun 25 03:56:35 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/string/strxfrm.cxx:
+ Fix argument checking assertions with legitimate nulls here too
+
+Thu Jun 25 03:46:32 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdlib/strtoul.cxx, src/stdlib/strtol.cxx:
+ Fix argument checking assertions to cope with legitimate nulls
+
+Wed Jun 24 09:01:45 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdio/sprintf1.c:
+ Remove extraneous info messages
+
+Wed Jun 24 05:59:17 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdio/sprintf1.c, tests/stdio/sprintf2.c, tests/stdio/sscanf.c,
+ tests/stdlib/rand1.c, tests/stdlib/rand2.c, tests/stdlib/rand3.c,
+ tests/stdlib/srand.c:
+
+ Change large automatic arrays to static arrays to prevent overuse
+ of a potentially small stack
+
+Wed Jun 24 05:45:28 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdio/sprintf1.c, tests/stdio/sprintf2.c, tests/stdio/sscanf.c,
+ tests/stdlib/rand1.c, tests/stdlib/rand2.c, tests/stdlib/rand3.c,
+ tests/stdlib/srand.c, tests/string/strtok.c, tests/time/clock.c:
+
+ Increase thread stack size from 4K to 32K as in some cases it was
+ too small.
+
+
+Tue Jun 23 20:12:31 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdio/sscanf.c:
+ Add extra tests, including floating point conversion testing
+
+Tue Jun 23 17:01:06 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/string/strtok.cxx:
+ Make sure this is only compiled if CYGFUN_LIBC_strtok is defined
+
+Tue Jun 23 06:10:13 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ add some comments - that's all
+
+ * src/stdio/common/stream.cxx:
+ fix case in refill_read_buffer() for what to do when there's nothing
+ left. Now return EAGAIN
+
+ * src/stdio/common/vsscanf.cxx, src/stdio/input/vfscanf.cxx:
+ Get sscanf working properly and passing tests. Also make sure it
+ ignores FP when its not configured
+
+ * src/stdlib/atof.cxx:
+ Only compile at all if strtod() is present
+
+
+Mon Jun 22 19:13:42 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/clibdata.hxx, src/clibincl/clibdata.inl:
+ Conditionalise strtok_last and rand_seed better
+
+Mon Jun 22 14:14:12 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdlib/malloc3.c:
+ Add test for checking that mallocing and freeing repeatedly works
+
+ * tests/PKGconf.mak:
+ Update to reflect addition of the above
+
+Mon Jun 22 13:09:33 BST 1998 Chris Provenzano <proven@cygnus.com>
+
+ * src/stdio/common/fopen.cxx
+ * src/stdio/common/stream.cxx
+ * src/stdio/common/vsnprintf.cxx
+ * src/stdio/common/vsscanf.cxx
+ Include cyg/devs/common/iorb.h instead of iorb.hxx
+
+ * src/stdio/common/stream.cxx
+ Use read_blocking and write_blocking instead of just read and
+ write when accessing devices through the virtual device table.
+
+Sun Jun 21 18:19:13 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/stdioinlines.cxx:
+ Propagate change of return code handling for puts from stdio.inl
+ into here
+
+ * src/stdio/output/fputc.cxx:
+ make sure the right type is used for output - byte not int
+
+ * src/support/clibdata.cxx:
+ Fix #define config mistook. #endif was in wrong place
+
+Sun Jun 21 16:11:04 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/clibdata.hxx, src/clibincl/clibdata.inl:
+ Allow explicit construction to get around a bug when
+ dynamically allocating per-thread structure
+
+Sun Jun 21 16:02:51 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/ctype/ctype.c, tests/setjmp/setjmp.c, tests/stdio/sprintf1.c,
+ tests/stdio/sprintf2.c, tests/stdio/sscanf.c, tests/stdlib/abs.c,
+ tests/stdlib/atoi.c, tests/stdlib/atol.c, tests/stdlib/bsearch.c,
+ tests/stdlib/div.c, tests/stdlib/labs.c, tests/stdlib/ldiv.c,
+ tests/stdlib/malloc1.c, tests/stdlib/malloc2.c, tests/stdlib/qsort.c,
+ tests/stdlib/rand1.c, tests/stdlib/rand2.c, tests/stdlib/rand3.c,
+ tests/stdlib/srand.c, tests/stdlib/strtol.c, tests/stdlib/strtoul.c,
+ tests/string/memchr.c, tests/string/memcmp1.c,
+ tests/string/memcmp2.c, tests/string/memcpy1.c,
+ tests/string/memcpy2.c, tests/string/memmove1.c,
+ tests/string/memmove2.c, tests/string/memset.c,
+ tests/string/strcat1.c, tests/string/strcat2.c,
+ tests/string/strchr.c, tests/string/strcmp1.c,
+ tests/string/strcmp2.c, tests/string/strcoll1.c,
+ tests/string/strcpy1.c, tests/string/strcpy2.c,
+ tests/string/strcspn.c, tests/string/strlen.c,
+ tests/string/strncat1.c, tests/string/strncat2.c,
+ tests/string/strncpy1.c, tests/string/strncpy2.c,
+ tests/string/strpbrk.c, tests/string/strrchr.c,
+ tests/string/strspn.c, tests/string/strstr.c, tests/string/strtok.c,
+ tests/string/strxfrm1.c, tests/string/strxfrm2.c, tests/time/clock.c:
+
+ Update tests to "do the right thing" with all configuration settings
+
+
+Sun Jun 21 04:54:14 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/setjmp/setjmp.c:
+ I have to be careful not to use setjmp() in a way not exactly
+ defined by the standard, so make sure I do, and add a comment
+ documenting these ways.
+
+ Also ensure this test does the right thing in all configurations
+
+Sun Jun 21 04:38:15 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Add extra checks for invalid configurations
+ Also make default for thread safety OFF
+
+ * src/clibincl/clibdata.inl:
+ Adjust indentation
+
+ * src/stdio/output/vfnprintf.cxx:
+ Make printf of -0.0 floating point do the right thing
+
+Sun Jun 21 04:28:00 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/snprintf.cxx, src/stdio/common/sprintf.cxx,
+ src/stdio/common/sscanf.cxx, src/stdio/input/fscanf.cxx,
+ src/stdio/input/scanf.cxx, src/stdio/output/fnprintf.cxx,
+ src/stdio/output/fprintf.cxx, src/stdio/output/printf.cxx:
+
+ Had to remove inline functions with varargs. Which means separating
+ out each function from stdioinlines.cxx into a separate file, as they
+ no longer belong there. So all the above files were created.
+
+ * include/stdio.inl, src/PKGconf.mak,
+ src/stdio/common/stdioinlines.cxx:
+ Changed to take account of the above
+
+
+Sun Jun 21 03:58:42 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdio/sprintf1.c, tests/stdio/sprintf2.c:
+ Update with floating-point tests. Also make sure they DTRT in all
+ configurations
+
+Fri Jun 19 19:33:06 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/support/clibdata.cxx:
+ accidentally initialised stdin/out/err twice
+
+Fri Jun 19 19:09:29 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/support/clibdata.cxx:
+ Another typo
+
+Fri Jun 19 18:59:07 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/support/clibdata.cxx:
+ Missing #endif typo
+
+Fri Jun 19 18:51:42 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/support/clibdata.cxx:
+ Fix initialisation of static data members. Unsure how it worked at
+ all before!
+
+Fri Jun 19 18:01:01 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/stdio.inl:
+ puts should check whether fputs returns non-negative, rather than
+ non-zero
+
+Fri Jun 19 17:22:52 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/clibdata.inl:
+ Make inclusion of get_errno_p conditional on thread-safety
+
+Wed Jun 17 10:55:32 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/input/vfscanf.cxx:
+ Add weak alias of vfscanf() to _vfscanf()
+
+Wed Jun 17 09:10:41 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/fflush.cxx:
+ Initialise err to silence compiler warning
+
+Wed Jun 17 08:59:20 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * Most important is the addition of floating point support in
+ src/stdio/output/vfnprintf.cxx and src/stdio/input/vfscanf.cxx. This
+ also required the addition of atof() and strtod() in stdlib which is
+ definitely no bad thing! Other than that...
+
+ * Fix a whole bunch of stuff I messed up first time round. Also the
+ sprintf and sscanf tests are included again.
+
+Tue Jun 16 16:38:02 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/PKGconf.mak:
+ Typo with not putting comment character at the beginning. Sigh.
+
+Tue Jun 16 14:53:09 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/PKGconf.mak:
+ Forgot to (temporarily) remove fputs test for now
+
+Mon Jun 15 20:40:03 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ Everything to do with stdio has almost completely changed, so there's
+ not much point documenting individual changes.
+
+Mon Jun 15 18:36:01 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdlib/malloc2.c:
+ Stop it moaning quite as much when it fails by making it exit sooner
+
+ * tests/time/clock.c :
+ This isn't a compound testcase
+
+Thu Jun 11 17:59:13 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/assert.h
+ Reverse sense of NDEBUG ifdef, that was left in accidentally due
+ to testing
+
+Thu Jun 11 04:58:08 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/errno.h, include/string.h, src/clibincl/stringsupp.hxx:
+ Modify as I've now added an "error" package which defines the error
+ codes and strerror()
+
+ * src/errno/strerror.cxx:
+ Moved to new error package and thus deleted
+
+Wed Jun 10 18:37:37 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/assert.h:
+ create this header and add assert() function
+
+Wed Jun 10 16:23:57 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/stdlib.h, src/clibincl/stdlibsupp.hxx, src/stdlib/malloc.cxx:
+ Add malloc(), calloc() and free() functions
+
+ * include/pkgconf/libc.h:
+ Add malloc memory pool size option
+
+ * tests/stdlib/malloc1.c, tests/stdlib/malloc2.c:
+ new tests for malloc
+
+ * src/PKGconf.mak, tests/PKGconf.mak:
+ Update for new files
+
+Wed Jun 10 15:06:16 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/setjmp/setjmp.c:
+ Add another test
+
+Tue Jun 9 18:20:31 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Add some setjmp config's and a macro for the noreturn attribute
+
+ * include/setjmp.h, include/setjmp.inl, src/clibincl/setjmpsupp.hxx,
+ src/setjmp/longjmp.cxx, tests/setjmp/setjmp.c:
+ Added to implement and test setjmp() and longjmp()
+
+ * src/PKGconf.mak, tests/PKGconf.mak:
+ Update for newly added files
+
+Thu Jun 4 01:29:18 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/string/memchr.cxx, src/string/memcmp.cxx, src/string/strcat.cxx,
+ src/string/strchr.cxx, src/string/strcmp.cxx, src/string/strcpy.cxx,
+ src/string/strlen.cxx, src/string/strncat.cxx,
+ src/string/strncmp.cxx, src/string/strncpy.cxx:
+ Rename CYGIMP_LIBC_PREFER_SMALL_TO_FAST to
+ CYGIMP_LIBC_STRING_PREFER_SMALL_TO_FAST
+
+ Also use slower but smaller version when __OPTIMIZE_SIZE__ is
+ defined (which comes from using gcc -Os)
+
+Fri May 29 16:15:04 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/ctype.inl, src/ctype/isxdigit.cxx:
+ Fix bug that numerals aren't considered hex digits
+
+ * include/time.h:
+ Change clock_t and time_t to be signed so that they can accept -1, as
+ required by other libc functions
+
+ * src/clibincl/clibdata.hxx:
+ Fix typo that CYGIMP_LIBC_THREAD_SUPPORT should be ..._SAFETY
+ Also fix macro to allocate thread-specific data to not set variables
+ in a different stack-frame
+
+ * tests/ctype/ctype.c:
+ Fix some misunderstandings in tests, and add a few new ones
+
+ * tests/stdlib/qsort.c:
+ make ctr unsigned to prevent warnings
+
+ * tests/stdlib/strtol.c, tests/stdlib/strtoul.c:
+ Fix some misunderstandings in tests, and add a few new ones
+
+ * tests/string/strrchr.c:
+ Fix off by one error
+
+ * tests/string/strspn.c:
+ Fix case-sensitivity problem, and off-by-one error
+
+ * tests/string/strxfrm1.c:
+ Remove bogus bit of test that doesn't apply to strxfrm, and fix typo
+
+
+Fri May 22 16:33:04 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/PKGconf.mak
+ Remove CXXFLAGS line now that its redundant
+
+ * tests/everything!
+ Do a blitz change of all tests - break some of them down into
+ different files, add new tests, standardize format, fix bugs,
+ update for recent header file changes and much more!
+
+Wed May 20 17:50:04 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/PKGconf.mak:
+ interim checkin for different dir structure for Bart
+
+Fri May 15 20:30:46 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * Tidy up some loose ends I forgot: rename src/include directory to
+ src/clibincl. And add clibdata.inl and timesupp.hxx in there.
+
+Thu May 14 19:56:32 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * Basically everything has changed in the C library. Files have
+ been moved, renamed, deleted and reworked. This is a major
+ revision, and now starts from this new baseline rather than doing
+ incremental changes.
+
+Fri Apr 17 18:43:02 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/ECCconf.mak:
+ added for new build system (actually Bart did this, but didn't
+ update this ChangeLog)
+
+Fri Apr 17 15:03:25 1998 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * src/stdio/device/sim.cxx:
+ Make it build with CYG_EMPTY_STATEMENT; the unadorned one is being
+ removed.
+
+Thu Apr 16 00:24:24 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * All source files:
+ replace ECCIMP_LIBC_* conditional ifdef with CYGIMP_LIBC_*
+
+ * include/eccconf/libc.h:
+ improve comments and reorder a bit
+
+Wed Apr 8 14:35:20 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * Makefile.am, src/Makefile.am, tests/Makefile.am, configure.in:
+ many changes to integrate build structure from release tree
+
+ * src/ctype/Makefile.am, src/ctype/Makefile.in, src/errno/Makefile.am,
+ src/errno/Makefile.in, src/stdio/Makefile.am, src/stdio/Makefile.in,
+ src/stdio/common/Makefile.am, src/stdio/common/Makefile.in,
+ src/stdio/device/Makefile.am, src/stdio/device/Makefile.in,
+ src/stdio/output/Makefile.am, src/stdio/output/Makefile.in,
+ src/stdio/input/Makefile.am, src/stdio/input/Makefile.in,
+ src/stdlib/Makefile.am, src/stdlib/Makefile.in,
+ src/string/Makefile.am, src/string/Makefile.in,
+ src/support/Makefile.am, src/support/Makefile.in,
+ src/time/Makefile.am, src/time/Makefile.in:
+ Remove as they are now redundant with above changes
+
+ * include/Makefile.am:
+ Add to support above changes
+
+ * include/eccconf/libc.h:
+ Change include file for configuration from kernel to system
+
+ * src/include/kerndiag.hxx, src/stdio/device/kerndiag.cxx,
+ src/time/clockfn.cxx:
+ Change kernel include file to eccconf/kernel.h
+
+ * src/include/strngdev.h:
+ remove unnecessary kernel include
+
+ * Makefile.in, aclocal.m4, configure, src/Makefile.in,
+ tests/Makefile.in, include/Makefile.in:
+ regenerate
+
+Mon Apr 6 20:55:07 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdlib/abs.cxx, src/stdlib/atoi.cxx, src/stdlib/atol.cxx,
+ src/stdlib/div.cxx, src/stdlib/labs.cxx, src/stdlib/ldiv.cxx:
+ Separated out functions from stdlib.cxx into separate files
+
+ * src/stdlib/stdlib.cxx:
+ removed to be replaced by above files
+
+ * Makefile.am, src/stdlib/Makefile.am:
+ modified to support building above and not building stdlib.cxx
+
+ * src/support/tsd.cxx:
+ Remove unnecessary header file includes
+
+ * Makefile.in, src/stdlib/Makefile.in:
+ regenerated
+
+Mon Apr 6 19:19:42 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/support/tsd.cxx, include/eccconf/libc.h:
+ remove lame hack for tx39 compiler now that its fixed
+
+ * src/include/sim.hxx:
+ define constants as static to placate compiler
+
+Thu Apr 2 21:01:21 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/ctype/ctype.cxx:
+ deleted and separated out into below files
+
+ * src/ctype/isalnum.cxx, src/ctype/isalpha.cxx, src/ctype/iscntrl.cxx,
+ src/ctype/isdigit.cxx, src/ctype/isgraph.cxx, src/ctype/islower.cxx,
+ src/ctype/isprint.cxx, src/ctype/ispunct.cxx, src/ctype/isspace.cxx,
+ src/ctype/isupper.cxx, src/ctype/isxdigit.cxx, src/ctype/tolower.cxx,
+ src/ctype/toupper.cxx:
+ Separated out individual ctype functions from ctype.cxx into separate
+ files
+
+ * Makefile.am, src/ctype/Makefile.am:
+ modified to reflect above deletion/additions
+
+ * Makefile.in, src/ctype/Makefile.in:
+ regenerated
+
+Thu Apr 2 19:08:26 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/string/strxfrm.cxx: optimise using prefix increments
+
+Thu Apr 2 15:18:15 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/string/strchr.cxx: optimise setting of mask a little
+
+Thu Mar 26 14:07:01 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/support/tsd.cxx: fixed some typos
+
+Thu Mar 26 11:58:47 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/eccconf/libc.h, src/support/tsd.cxx:
+ Implement workaround for tx39 compiler bug.
+
+ * src/include/strsuppt.hxx:
+ remove prototypes for _memcpy() and _memset() as they are now in the
+ kernel
+
+Wed Mar 25 18:31:53 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * Makefile.am, src/string/Makefile.am: memcpy() and memset() are
+ now in the kernel so remove them from build
+ * include/string.h: add a comment to say as much
+ * Makefile.in, src/string/Makefile.in: regenerate
+
+Wed Mar 25 15:30:42 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdlib/_exit.cxx, src/include/file_if.inl:
+ Change _exit workaround to not cause a compiler optimisation
+ problem. Now just references _exit rather than calls it.
+
+Wed Mar 25 14:59:49 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/string/strxfrm.cxx: Fix bug causing tests to fail completely
+ for this function
+
+Wed Mar 25 12:55:53 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/include/sim.hxx: add types to constants (oops!)
+ * Makefile.am: link src/stdio/device/sim.cxx
+ * Makefile.in: regenerated
+
+Wed Mar 25 04:14:30 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/include/file_if.hxx, src/include/file_if.inl,
+ src/include/kerndiag.hxx, src/include/sim.hxx,
+ src/include/stdio_if.hxx, src/include/strngdev.hxx,
+ src/include/tsd.hxx, src/stdio/common/clearerr.cxx,
+ src/stdio/common/clearerr.cxx, src/stdio/common/feof.cxx,
+ src/stdio/common/ferror.cxx, src/stdio/common/file_if.cxx,
+ src/stdio/common/vsprintf.cxx,
+ src/stdio/device/kerndiag.cxx, src/stdio/device/sim.cxx,
+ src/stdio/device/strngdev.cxx, src/stdio/output/fputc.cxx,
+ src/stdio/output/fputs.cxx, src/stdio/output/puts.cxx,
+ src/stdio/output/vfnprintf.cxx, src/support/tsd.cxx:
+ Modified to support buffered reads including renaming
+ _EccInternalFileStruct to __EccStdioStream which is what affects
+ most of these files
+ * src/include/file_if.inl, src/stdio/common/file_if.cxx: added for
+ the above reason
+ * src/stdio/common/sscanf.cxx, src/stdio/input/vfscanf.cxx,
+ src/stdio/input/Makefile.am: added to provide sscanf() functionality
+ * include/ctype.h, include/stdio.h, include/stdlib.h,
+ include/string.h, include/eccconf/libc.h, src/ctype/ctype.cxx,
+ src/stdlib/stdlib.cxx, src/string/strcoll.cxx,
+ src/stdio/common/stdio.cxx:
+ rename *_INLINES macros with prefix CYG rather than ECC
+ * include/errno.h, src/errno/errno.cxx, src/errno/strerror.cxx:
+ rename ErrNo to _ErrNo and add EAGAIN and EWOULDBLOCK error codes
+ * configure.in, Makefile.am, src/stdio/Makefile.am,
+ src/stdio/input/Makefile.am: add support for building
+ file_if.cxx sscanf.cxx and vfscanf.cxx
+ * src/stdio/Makefile.in, src/stdio/common/Makefile.in,
+ src/stdio/input/Makefile.in, configure, Makefile.in: regenerated
+
+Tue Mar 24 19:51:40 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/time/clockfn.cxx, src/time/clock.cxx:
+ Renamed clock.cxx to clockfn.cxx (preserving CVS history)
+ * Makefile.am, src/time/Makefile.am: updated to reflect name change
+ * Makefile.in, src/time/Makefile.in: regenerated
+
+Tue Mar 24 16:28:06 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/ctype.inl: Swap around definitions to get right order so
+ inlining works
+
+Tue Mar 24 14:43:05 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/ctype.h, include/stdio.h, include/stdlib.h, include/string.h:
+ modify to only conditionally include inlines
+ * src/ctype/ctype.cxx, src/stdio/common/stdio.cxx,
+ src/stdlib/stdlib.cxx, src/string/strcoll.cxx,
+ src/ctype/Makefile.am: Add to provide real linkable alternatives
+ to inline functions
+ * Makefile.am, configure.in, src/Makefile.am,
+ src/stdio/common/Makefile.am, src/stdlib/Makefile.am,
+ src/string/Makefile.am: modified to support previous additions
+ * include/eccconf/libc.h: redefine inline macro to add extern inline,
+ and add conditional defines for inline functions. Also rename
+ space vs. speed macro to have CYG instead of ECC prefix
+ * include/stdio.inl: fix comment typo
+ * src/stdlib/qsort.cxx: fix to define inline functions properly
+ * src/string/memchr.cxx, src/string/memcmp.cxx, src/string/memcpy.cxx,
+ src/string/memset.cxx, src/string/strcat.cxx, src/string/strchr.cxx,
+ src/string/strcmp.cxx, src/string/strcpy.cxx, src/string/strlen.cxx,
+ src/string/strncat.cxx, src/string/strncmp.cxx,
+ src/string/strncpy.cxx
+ * Makefile.in, configure, src/Makefile.in, src/ctype/Makefile.in,
+ src/stdio/common/Makefile.in, src/stdlib/Makefile.in,
+ src/string/Makefile.in: regenerate
+
+
+Mon Mar 23 19:19:49 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdlib/_exit.cxx: added to support temporary _exit
+ * include/stdlib.h, include/stdlib.inl: added support for _exit and
+ added abs(), labs(), div() and ldiv() functions
+ * src/include/file_if.hxx: added support for _exit kludge
+ * src/stdlib/qsort.cxx: Added Berkeley copyright message
+ * src/time/clock.cxx: Include correct kernel config header as
+ CYG_CONFIGURATION rather than <config.h>
+ * Makefile.am src/stdlib/Makefile.am: added support for _exit
+ * Makefile.in, src/stdlib/Makefile.in: regenerated
+
+Mon Mar 23 14:41:07 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * Replace ECCPKG_ANSI_LIBC with CYGPKG_ANSI_LIBC in all source files
+
+Mon Mar 23 14:28:44 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/string.inl: add file to provide strcoll()
+ * include/string.h: include string.inl
+ * ctype.h: include ctype.inl (oops!)
+ * include/stdlib.h: include stdlib.inl (oops!)
+
+Mon Mar 23 13:30:38 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/ctype.h, include/ctype.inl: added to provide ANSI ctype
+ functionality
+ * include/stdlib.h, include/stdlib.inl, src/include/stdlibbsp.hxx,
+ src/stdlib/Makefile.am, src/stdlib/bsearch.cxx,
+ src/stdlib/qsort.cxx, src/stdlib/rand.cxx, src/stdlib/srand.cxx,
+ src/stdlib/strtol.cxx, src/stdlib/strtoul.cxx: Added to provide
+ many stdlib functions
+ * src/include/tsd.hxx: modified to support rand() random number
+ seed, and added some comments
+ * configure.in, Makefile.am, src/Makefile.am: modified to support
+ addition of above new sources
+ * include/eccconf/libc.h: Add extra helpful comments, and #include
+ kernel config file
+ * src/time/clock.cxx: #include clock.inl and fix to call
+ get_resolution() properly now
+ * Makefile.in, configure, src/Makefile.in, src/errno/Makefile.in,
+ src/stdio/Makefile.in, src/stdio/common/Makefile.in,
+ src/stdio/device/Makefile.in, src/stdio/output/Makefile.in,
+ src/stdlib/Makefile.in, src/strings/Makefile.in,
+ src/support/Makefile.in, src/time/Makefile.in,
+ tests/Makefile.in: regenerated
+
+
+Sun Mar 22 21:29:25 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/time.h, src/include/timesupp.hxx, src/time/clock.cxx,
+ src/time/Makefile.am: added to provide clock() function
+ * src/Makefile.am: modified to try to build in src/time directory
+ * include/eccconf/libc.h: added and is now the main configuration
+ file for this package
+ * acconfig.h, include/libcconf.h.in, include/stamp-h.in: removed
+ due to usage of libc.h above instead
+ * Almost all *.h, *.hxx and *.cxx: replaced LIBC_CONFIG_HEADER
+ defined include with simple <pkgconf/libc.h>
+ * configure.in: remove AM_CONFIG_HEADER of libcconf.h and
+ LIBC_CONFIG_HEADER definition. Also remove usage of builtin
+ memcpy() etc. from gcc, and generate src/time/Makefile
+ * Makefile.am: link in src/time/clock.o
+ * src/include/file_if.hxx, src/include/sim.hxx: use config header
+ to decide whether C library is to be used
+ * Makefile.in, aclocal.m4, configure, src/Makefile.in: regenerated
+
+Fri Mar 20 18:08:10 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/string/strxfrm.cxx: Fixed bug with ignoring terminating NULL
+
+1998-03-20 Chris Tarpy <ctarpy@bhaji.cygnus.co.uk>
+
+ * configure: - regenerated
+ * Makefile.am: - Support added for libc testcases
+ * Makefile.in: regenerated
+ * configure.in: set c compiler, descend test dir
+ * tests/Makefile.in: added
+ * tests/Makefile.am: added
+ * tests/tcdiag.cxx : added
+
+
+Thu Mar 19 11:41:56 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * Initial check-in of everything
+
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
diff --git a/ecos/packages/language/c/libc/string/current/cdl/string.cdl b/ecos/packages/language/c/libc/string/current/cdl/string.cdl
new file mode 100644
index 0000000..5cbf849
--- /dev/null
+++ b/ecos/packages/language/c/libc/string/current/cdl/string.cdl
@@ -0,0 +1,225 @@
+# ====================================================================
+#
+# string.cdl
+#
+# C library string related configuration data
+#
+# ====================================================================
+## ####ECOSGPLCOPYRIGHTBEGIN####
+## -------------------------------------------
+## This file is part of eCos, the Embedded Configurable Operating System.
+## Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+##
+## eCos is free software; you can redistribute it and/or modify it under
+## the terms of the GNU General Public License as published by the Free
+## Software Foundation; either version 2 or (at your option) any later
+## version.
+##
+## eCos 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 General Public License
+## for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with eCos; if not, write to the Free Software Foundation, Inc.,
+## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+##
+## As a special exception, if other files instantiate templates or use
+## macros or inline functions from this file, or you compile this file
+## and link it with other works to produce a work based on this file,
+## this file does not by itself cause the resulting work to be covered by
+## the GNU General Public License. However the source code for this file
+## must still be made available in accordance with section (3) of the GNU
+## General Public License v2.
+##
+## This exception does not invalidate any other reasons why a work based
+## on this file might be covered by the GNU General Public License.
+## -------------------------------------------
+## ####ECOSGPLCOPYRIGHTEND####
+# ====================================================================
+######DESCRIPTIONBEGIN####
+#
+# Author(s): jlarmour
+# Contributors:
+# Date: 2000-04-14
+#
+#####DESCRIPTIONEND####
+#
+# ====================================================================
+
+cdl_package CYGPKG_LIBC_STRING {
+ display "ISO C library string functions"
+ description "
+ This package provides string functions specified by the
+ ISO C standard - ISO/IEC 9899:1990."
+ doc ref/libc.html
+ include_dir cyg/libc/string
+ parent CYGPKG_LIBC
+ implements CYGINT_ISO_STRTOK_R
+ implements CYGINT_ISO_STRING_LOCALE_FUNCS
+ implements CYGINT_ISO_STRING_MEMFUNCS
+ implements CYGINT_ISO_STRING_STRFUNCS
+ requires { CYGBLD_ISO_STRING_LOCALE_FUNCS_HEADER == \
+ "<cyg/libc/string/string.h>" }
+ requires { CYGBLD_ISO_STRING_MEMFUNCS_HEADER == \
+ "<cyg/libc/string/string.h>" }
+ requires { CYGBLD_ISO_STRING_STRFUNCS_HEADER == \
+ "<cyg/libc/string/string.h>" }
+ requires { CYGBLD_ISO_STRTOK_R_HEADER == \
+ "<cyg/libc/string/string.h>" }
+ requires CYGPKG_ISOINFRA
+
+ compile memchr.cxx memcmp.cxx memmove.cxx \
+ strcat.cxx strchr.cxx strcmp.cxx \
+ strcoll.cxx strcpy.cxx strcspn.cxx \
+ strlen.cxx strncat.cxx strncmp.cxx \
+ strncpy.cxx strpbrk.cxx strrchr.cxx \
+ strspn.cxx strstr.cxx strsuppt.cxx \
+ strtok.cxx strxfrm.cxx
+
+
+# ====================================================================
+
+ cdl_option CYGIMP_LIBC_STRING_INLINES {
+ display "Inline versions of <string.h> functions"
+ default_value 1
+ description "
+ This option chooses whether some of the
+ particularly simple string functions from
+ <string.h> are available as inline
+ functions. This may improve performance, and as
+ the functions are small, may even improve code
+ size."
+ }
+
+ cdl_option CYGIMP_LIBC_STRING_PREFER_SMALL_TO_FAST {
+ display "Optimize string functions for code size"
+ flavor bool
+ default_value 0
+ description "
+ This option tries to reduce string function
+ code size at the expense of execution speed. The
+ same effect can be produced if the code is
+ compiled with the -Os option to the compiler."
+ }
+
+ cdl_option CYGFUN_LIBC_STRING_BSD_FUNCS {
+ display "Provide BSD compatibility functions"
+ flavor bool
+ default_value 1
+ implements CYGINT_ISO_STRING_BSD_FUNCS
+ requires { CYGBLD_ISO_STRING_BSD_FUNCS_HEADER == \
+ "<cyg/libc/string/bsdstring.h>" }
+ requires CYGINT_ISO_CTYPE
+ compile bsdstring.cxx
+ description "
+ Enabling this option causes various compatibility functions
+ commonly found in the BSD UNIX operating system to be included.
+ These are functions such as bzero, bcmp, bcopy, bzero, strcasecmp,
+ strncasecmp, index, rindex and swab."
+ }
+
+ cdl_component CYGPKG_LIBC_STRING_STRTOK {
+ display "strtok"
+ flavor none
+ description "
+ These options control the behaviour of the
+ strtok() and strtok_r() string tokenization
+ functions."
+
+ cdl_option CYGSEM_LIBC_STRING_PER_THREAD_STRTOK {
+ display "Per-thread strtok()"
+ active_if CYGPKG_KERNEL
+ requires CYGVAR_KERNEL_THREADS_DATA
+ default_value CYGVAR_KERNEL_THREADS_DATA
+ description "
+ This option controls whether the string function
+ strtok() has its state recorded on a per-thread
+ basis rather than global. If this option is
+ disabled, some per-thread space can be saved.
+ Note there is also a POSIX-standard strtok_r()
+ function to achieve a similar effect with user
+ support. Enabling this option will use one slot
+ of kernel per-thread data. You should ensure you
+ have enough slots configured for all your
+ per-thread data."
+ }
+
+ cdl_option CYGNUM_LIBC_STRING_STRTOK_TRACE_LEVEL {
+ display "Tracing level"
+ flavor data
+ legal_values 0 to 1
+ default_value 0
+ description "
+ Trace verbosity level for debugging the <string.h>
+ functions strtok() and strtok_r(). Increase this
+ value to get additional trace output."
+ }
+ }
+
+ cdl_option CYGFUN_LIBC_STRING_STRDUP {
+ display "strdup"
+ active_if CYGINT_ISO_MALLOC
+ calculated 1
+ compile strdup.cxx
+ description "
+ This option indicates whether strdup() is to be supported."
+ }
+
+ cdl_option CYGFUN_LIBC_STRING_GNU_STRNLEN {
+ display "Provide strnlen() GNU extension"
+ flavor bool
+ default_value 1
+ compile strnlen.cxx
+ description "
+ This option controls support for the strnlen() function.
+ (This is a GNU extension, not part of ANSI C.)"
+ }
+
+ cdl_component CYGPKG_LIBC_STRING_OPTIONS {
+ display "C library string functions build options"
+ flavor none
+ no_define
+ description "
+ Package specific build options including control over
+ compiler flags used only in building this package,
+ and details of which tests are built."
+
+
+ cdl_option CYGPKG_LIBC_STRING_CFLAGS_ADD {
+ display "Additional compiler flags"
+ flavor data
+ no_define
+ default_value { "" }
+ description "
+ This option modifies the set of compiler flags for
+ building the C library. These flags are used in addition
+ to the set of global flags."
+ }
+
+ cdl_option CYGPKG_LIBC_STRING_CFLAGS_REMOVE {
+ display "Suppressed compiler flags"
+ flavor data
+ no_define
+ default_value { "" }
+ description "
+ This option modifies the set of compiler flags for
+ building the C library. These flags are removed from
+ the set of global flags if present."
+ }
+
+ cdl_option CYGPKG_LIBC_STRING_TESTS {
+ display "C library string function tests"
+ flavor data
+ no_define
+ calculated { "tests/memchr tests/memcmp1 tests/memcmp2 tests/memcpy1 tests/memcpy2 tests/memmove1 tests/memmove2 tests/memset tests/strcat1 tests/strcat2 tests/strchr tests/strcmp1 tests/strcmp2 tests/strcoll1 tests/strcoll2 tests/strcpy1 tests/strcpy2 tests/strcspn tests/strcspn tests/strlen tests/strncat1 tests/strncat2 tests/strncpy1 tests/strncpy2 tests/strpbrk tests/strrchr tests/strspn tests/strstr tests/strtok tests/strxfrm1 tests/strxfrm2 tests/strnlen" }
+ description "
+ This option specifies the set of tests for the C library
+ string functions."
+ }
+ }
+}
+
+# ====================================================================
+# EOF string.cdl
+
diff --git a/ecos/packages/language/c/libc/string/current/include/bsdstring.h b/ecos/packages/language/c/libc/string/current/include/bsdstring.h
new file mode 100644
index 0000000..9e71076
--- /dev/null
+++ b/ecos/packages/language/c/libc/string/current/include/bsdstring.h
@@ -0,0 +1,108 @@
+#ifndef CYGONCE_LIBC_BSDSTRING_H
+#define CYGONCE_LIBC_BSDSTRING_H
+/*===========================================================================
+//
+// bsdstring.h
+//
+// BSD standard string and memory area manipulation routines
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors:
+// Date: 2001-11-27
+// Purpose: This file provides various string functions normally
+// provided in the BSD UNIX operating system.
+// Description:
+// Usage: Do not include this file directly - use #include <string.h>
+//
+//####DESCRIPTIONEND####
+//
+//=========================================================================*/
+
+/* CONFIGURATION */
+
+#include <pkgconf/libc_string.h> /* Configuration header */
+
+#ifdef CYGFUN_LIBC_STRING_BSD_FUNCS
+
+#define __need_size_t
+#include <stddef.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*=========================================================================*/
+
+/* FUNCTION PROTOTYPES */
+
+
+extern int
+strcasecmp( const char * /* s1 */, const char * /* s2 */ );
+
+extern int
+strncasecmp( const char * /* s1 */, const char * /* s2 */, size_t /* n */ );
+
+extern int
+bcmp( const void * /* s1 */, const void * /* s2 */, size_t /* n */ );
+
+extern void
+bcopy( const void * /* src */, void * /* dest */, size_t /* n */ );
+
+extern void
+bzero( void * /* s */, size_t /* n */ );
+
+extern char *
+index( const char * /* s */, int /* c */ );
+
+extern char *
+rindex( const char * /* s */, int /* c */ );
+
+extern void
+swab( const void * /* from */, void * /* to */, size_t /* n */ );
+
+/*=========================================================================*/
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* ifdef CYGFUN_LIBC_STRING_BSD_FUNCS */
+
+#endif /* CYGONCE_LIBC_BSDSTRING_H multiple inclusion protection */
+
+/* EOF bsdstring.h */
diff --git a/ecos/packages/language/c/libc/string/current/include/string.h b/ecos/packages/language/c/libc/string/current/include/string.h
new file mode 100644
index 0000000..3546b65
--- /dev/null
+++ b/ecos/packages/language/c/libc/string/current/include/string.h
@@ -0,0 +1,178 @@
+#ifndef CYGONCE_LIBC_STRING_H
+#define CYGONCE_LIBC_STRING_H
+/*===========================================================================
+//
+// string.h
+//
+// ANSI standard string and memory area manipulation routines
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors:
+// Date: 2000-04-14
+// Purpose: This file provides various string functions required by
+// ISO C 9899:1990
+// Description: The real contents of this file get filled in from the
+// configuration set by the implementation
+// Usage: Do not include this file directly - use #include <string.h>
+//
+//####DESCRIPTIONEND####
+//
+//=========================================================================*/
+
+/* CONFIGURATION */
+
+#include <pkgconf/libc_string.h> /* Configuration header */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* FUNCTION PROTOTYPES */
+
+/*=========================================================================*/
+
+/* 7.11.2 Copying functions */
+
+extern void *
+memmove( void *, const void *, size_t );
+
+extern char *
+strcpy( char *, const char * );
+
+extern char *
+strncpy( char *, const char *, size_t );
+
+/*=========================================================================*/
+
+/* 7.11.3 Concatenation functions */
+
+extern char *
+strcat( char *, const char * );
+
+extern char *
+strncat( char *, const char *, size_t );
+
+
+/*=========================================================================*/
+
+/* 7.11.4 Comparison functions */
+
+extern int
+memcmp( const void *, const void *, size_t );
+
+extern int
+strcmp( const char *, const char * );
+
+extern int
+strcoll( const char *, const char * );
+
+extern int
+strncmp( const char *, const char *, size_t );
+
+extern size_t
+strxfrm( char *, const char *, size_t );
+
+
+/*=========================================================================*/
+
+/* 7.11.5 Search functions */
+
+extern void *
+memchr( const void *, int, size_t );
+
+extern char *
+strchr( const char *, int );
+
+extern size_t
+strcspn( const char *, const char * );
+
+extern char *
+strpbrk( const char *, const char * );
+
+extern char *
+strrchr( const char *, int );
+
+extern size_t
+strspn( const char *, const char * );
+
+extern char *
+strstr( const char *, const char * );
+
+extern char *
+strtok( char *, const char * );
+
+/* POSIX 1003.1 section 8.3.3 strtok_r() */
+
+extern char *
+strtok_r( char *, const char *, char ** );
+
+
+/*=========================================================================*/
+
+/* 7.11.6 Miscellaneous functions */
+
+extern size_t
+strlen( const char * );
+
+// NB This is a BSD function
+#ifndef __STRICT_ANSI__
+extern char *
+strdup( const char * );
+#endif
+
+// This is a GNU extension
+#ifndef __STRICT_ANSI__
+# ifdef CYGFUN_LIBC_STRING_GNU_STRNLEN
+extern size_t
+strnlen( const char *, size_t );
+# endif
+#endif
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+/* INLINE FUNCTIONS */
+
+#ifdef CYGIMP_LIBC_STRING_INLINES
+#include <cyg/libc/string/string.inl>
+#endif
+
+#endif /* CYGONCE_LIBC_STRING_H multiple inclusion protection */
+
+/* EOF string.h */
diff --git a/ecos/packages/language/c/libc/string/current/include/string.inl b/ecos/packages/language/c/libc/string/current/include/string.inl
new file mode 100644
index 0000000..017594d
--- /dev/null
+++ b/ecos/packages/language/c/libc/string/current/include/string.inl
@@ -0,0 +1,71 @@
+#ifndef CYGONCE_LIBC_STRING_STRING_INL
+#define CYGONCE_LIBC_STRING_STRING_INL
+//===========================================================================
+//
+// string.inl
+//
+// Inline functions for ANSI standard string and memory area
+// manipulation routines described in ANSI para 7.11
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors:
+// Date: 2000-04-14
+// Purpose:
+// Description:
+// Usage: #include <string.h> - do not include this file directly
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libc_string.h> // Configuration header
+
+// FUNCTIONS
+
+extern __inline__ int
+strcoll( const char *s1, const char *s2 )
+{
+ return strcmp(s1, s2);
+} // strcoll()
+
+
+#endif // CYGONCE_LIBC_STRING_STRING_INL multiple inclusion protection
+
+// EOF string.inl
diff --git a/ecos/packages/language/c/libc/string/current/include/stringsupp.hxx b/ecos/packages/language/c/libc/string/current/include/stringsupp.hxx
new file mode 100644
index 0000000..8312491
--- /dev/null
+++ b/ecos/packages/language/c/libc/string/current/include/stringsupp.hxx
@@ -0,0 +1,225 @@
+#ifndef CYGONCE_LIBC_STRING_STRINGSUPP_HXX
+#define CYGONCE_LIBC_STRING_STRINGSUPP_HXX
+//===========================================================================
+//
+// stringsupp.hxx
+//
+// Support for the ANSI standard string functions
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 2000-04-14
+// Purpose: Internal support for the libc string function implementations
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libc_string.h> // Configuration header
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions
+#include <stddef.h> // Compiler definitions such as
+ // size_t, NULL etc.
+
+// CONSTANTS
+
+#ifndef CYGIMP_LIBC_STRING_PREFER_SMALL_TO_FAST
+
+// Masks for CYG_LIBC_STR_DETECTNULL below
+__externC const cyg_uint64 Cyg_libc_str_null_mask_1;
+__externC const cyg_uint64 Cyg_libc_str_null_mask_2;
+
+#endif
+
+// MACROS
+
+// Nonzero if X is not aligned on a word boundary.
+#define CYG_LIBC_STR_UNALIGNED(X) ((CYG_WORD)(X) & (sizeof (CYG_WORD) - 1))
+
+// Nonzero if either X or Y is not aligned on a word boundary.
+#define CYG_LIBC_STR_UNALIGNED2(X , Y) \
+ (((CYG_WORD)(X) & (sizeof (CYG_WORD) - 1)) | \
+ ((CYG_WORD)(Y) & (sizeof (CYG_WORD) - 1)))
+
+// Nonzero if any byte of X contains a NULL.
+#define CYG_LIBC_STR_DETECTNULL(X) \
+ (((X) - (CYG_WORD)Cyg_libc_str_null_mask_1) & \
+ ~(X) & (CYG_WORD)Cyg_libc_str_null_mask_2)
+
+// How many bytes are copied each iteration of the 4X unrolled loop in the
+// optimised string implementations
+#define CYG_LIBC_STR_OPT_BIGBLOCKSIZE (sizeof(CYG_WORD) << 2)
+
+// How many bytes are copied each iteration of the word copy loop in the
+// optimised string implementations
+#define CYG_LIBC_STR_OPT_LITTLEBLOCKSIZE (sizeof (CYG_WORD))
+
+// Threshold for punting to the byte copier in the optimised string
+// implementations
+#define CYG_LIBC_STR_OPT_TOO_SMALL(LEN) \
+ ((LEN) < CYG_LIBC_STR_OPT_LITTLEBLOCKSIZE)
+
+
+// FUNCTION PROTOTYPES
+
+// These are function prototypes for the aliased functions that actually
+// implement the string functions
+
+//===========================================================================
+
+// 7.11.2 Copying functions
+
+__externC void *
+__memmove( void *, const void *, size_t );
+
+
+__externC char *
+__strcpy( char *, const char * );
+
+
+__externC char *
+__strncpy( char *, const char *, size_t );
+
+
+//===========================================================================
+
+// 7.11.3 Concatenation functions
+
+
+__externC char *
+__strcat( char *, const char * );
+
+
+__externC char *
+__strncat( char *, const char *, size_t );
+
+
+//===========================================================================
+
+// 7.11.4 Comparison functions
+
+__externC int
+__memcmp( const void *, const void *, size_t );
+
+
+__externC int
+__strcmp( const char *, const char * );
+
+
+__externC int
+__strcoll( const char *, const char * );
+
+
+__externC int
+__strncmp( const char *, const char *, size_t );
+
+
+__externC size_t
+__strxfrm( char *, const char *, size_t );
+
+
+//===========================================================================
+
+// 7.11.5 Search functions
+
+
+__externC void *
+__memchr( const void *, int , size_t );
+
+
+__externC char *
+__strchr( const char *, int );
+
+
+__externC size_t
+__strcspn( const char *, const char * );
+
+
+__externC char *
+__strpbrk( const char *, const char * );
+
+
+__externC char *
+__strrchr( const char *, int );
+
+
+__externC size_t
+__strspn( const char *, const char * );
+
+
+__externC char *
+__strstr( const char *, const char * );
+
+
+__externC char *
+__strtok( char *, const char * );
+
+// For POSIX 1003.1 section 8.3.3 strtok_r()
+
+__externC char *
+__strtok_r( char *, const char *, char ** );
+
+
+//===========================================================================
+
+// 7.11.6 Miscellaneous functions
+
+__externC size_t
+__strlen( const char * );
+
+// NB This is a BSD function
+__externC char *
+__strdup( const char * );
+
+// NB This is a GNU extension
+#ifndef __STRICT_ANSI__
+# ifdef CYGFUN_LIBC_STRING_GNU_STRNLEN
+__externC size_t
+__strnlen( const char *, size_t );
+# endif
+#endif
+
+#endif // CYGONCE_LIBC_STRING_STRINGSUPP_HXX multiple inclusion protection
+
+// EOF stringsupp.hxx
diff --git a/ecos/packages/language/c/libc/string/current/src/bsdstring.cxx b/ecos/packages/language/c/libc/string/current/src/bsdstring.cxx
new file mode 100644
index 0000000..f90489f
--- /dev/null
+++ b/ecos/packages/language/c/libc/string/current/src/bsdstring.cxx
@@ -0,0 +1,234 @@
+//===========================================================================
+//
+// bsdstring.cxx
+//
+// BSD string routines
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors:
+// Date: 2001-11-27
+// Purpose: Provide string functions derived from BSD
+// Description:
+// Usage: #include <string.h>
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libc_string.h> // Configuration header
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions
+#include <cyg/infra/cyg_trac.h> // Tracing support
+#include <cyg/infra/cyg_ass.h> // Assertion support
+#include <string.h> // Header for this file
+#include <stddef.h> // size_t, NULL etc.
+#include <ctype.h> // toupper/tolower
+
+// FUNCTIONS
+
+/*---------------------------------------------------------------------*/
+/* strcasecmp */
+
+__externC int
+__strcasecmp( const char *s1, const char *s2 )
+{
+ CYG_REPORT_FUNCNAMETYPE( "strcasecmp", "returning %d" );
+ CYG_REPORT_FUNCARG2( "s1=%08x, s2=%08x", s1, s2 );
+
+ CYG_CHECK_DATA_PTR( s1, "s1 is not a valid pointer!" );
+ CYG_CHECK_DATA_PTR( s2, "s2 is not a valid pointer!" );
+
+ while (*s1 != '\0' && tolower(*s1) == tolower(*s2))
+ {
+ s1++;
+ s2++;
+ }
+
+ int ret = tolower(*(unsigned char *) s1) - tolower(*(unsigned char *) s2);
+ CYG_REPORT_RETVAL( ret );
+ return ret;
+}
+
+__externC int
+strcasecmp( const char *s1, const char *s2 ) \
+ CYGBLD_ATTRIB_WEAK_ALIAS(__strcasecmp);
+
+
+/*---------------------------------------------------------------------*/
+/* strncasecmp */
+
+__externC int
+__strncasecmp( const char *s1, const char *s2, size_t n )
+{
+ CYG_REPORT_FUNCNAMETYPE( "strncasecmp", "returning %d" );
+ CYG_REPORT_FUNCARG3( "s1=%08x, s2=%08x, n=%d", s1, s2, n );
+
+ if (n == 0)
+ {
+ CYG_REPORT_RETVAL(0);
+ return 0;
+ }
+
+ CYG_CHECK_DATA_PTR( s1, "s1 is not a valid pointer!" );
+ CYG_CHECK_DATA_PTR( s2, "s2 is not a valid pointer!" );
+
+ while (n-- != 0 && tolower(*s1) == tolower(*s2))
+ {
+ if (n == 0 || *s1 == '\0' || *s2 == '\0')
+ break;
+ s1++;
+ s2++;
+ }
+
+ int ret = tolower(*(unsigned char *) s1) - tolower(*(unsigned char *) s2);
+ CYG_REPORT_RETVAL( ret );
+ return ret;
+}
+
+__externC int
+strncasecmp( const char *s1, const char *s2, size_t n ) \
+ CYGBLD_ATTRIB_WEAK_ALIAS(__strncasecmp);
+
+/*---------------------------------------------------------------------*/
+/* bcmp */
+
+__externC int
+__bcmp( const void *s1, const void *s2, size_t n )
+{
+ // Don't bother tracing - memcmp can do that
+ return memcmp (s1, s2, n);
+}
+
+__externC int
+bcmp( const void *s1, const void *s2, size_t n ) \
+ CYGBLD_ATTRIB_WEAK_ALIAS(__bcmp);
+
+/*---------------------------------------------------------------------*/
+/* bcopy */
+
+__externC void
+__bcopy( const void *src, void *dest, size_t n )
+{
+ // Don't bother tracing - memmove can do that
+ memmove (dest, src, n);
+}
+
+__externC void
+bcopy( const void *src, void *dest, size_t n ) \
+ CYGBLD_ATTRIB_WEAK_ALIAS(__bcopy);
+
+/*---------------------------------------------------------------------*/
+/* bzero */
+
+__externC void
+__bzero( void *s, size_t n )
+{
+ // Don't bother tracing - memset can do that
+ memset( s, 0, n );
+}
+
+__externC void
+bzero( void *s, size_t n ) CYGBLD_ATTRIB_WEAK_ALIAS(__bzero);
+
+/*---------------------------------------------------------------------*/
+/* index */
+
+__externC char *
+__index( const char *s, int c )
+{
+ // Don't bother tracing - strchr can do that
+ return strchr(s, c);
+}
+
+__externC char *
+index( const char *s, int c ) CYGBLD_ATTRIB_WEAK_ALIAS(__index);
+
+/*---------------------------------------------------------------------*/
+/* rindex */
+
+__externC char *
+__rindex( const char *s, int c )
+{
+ // Don't bother tracing - strrchr can do that
+ return strrchr(s, c);
+}
+
+__externC char *
+rindex( const char *s, int c ) CYGBLD_ATTRIB_WEAK_ALIAS(__rindex);
+
+/*---------------------------------------------------------------------*/
+/* swab */
+
+__externC void
+__swab( const void *from, void *to, size_t n )
+{
+ const char *f = (const char *)from;
+ char *t = (char *)to;
+ size_t ptr;
+
+ CYG_REPORT_FUNCNAME( "swab" );
+ CYG_REPORT_FUNCARG3( "from=%08x, to=%08x, n=%d", from, to, n );
+
+ if (n) {
+ CYG_CHECK_DATA_PTR( from, "from is not a valid pointer!" );
+ CYG_CHECK_DATA_PTR( to, "to is not a valid pointer!" );
+ }
+
+ for (ptr = 1; ptr < n; ptr += 2)
+ {
+ char p = f[ptr];
+ char q = f[ptr-1];
+ t[ptr-1] = p;
+ t[ptr ] = q;
+ }
+ if (ptr == n) /* I.e., if n is odd, */
+ t[ptr-1] = '\0'; /* then pad with a NUL. */
+
+ CYG_REPORT_RETURN();
+}
+
+__externC void
+swab( const void *from, void *to, size_t n ) \
+ CYGBLD_ATTRIB_WEAK_ALIAS(__swab);
+
+/*---------------------------------------------------------------------*/
+// EOF bsdstring.cxx
diff --git a/ecos/packages/language/c/libc/string/current/src/memchr.cxx b/ecos/packages/language/c/libc/string/current/src/memchr.cxx
new file mode 100644
index 0000000..5f53a34
--- /dev/null
+++ b/ecos/packages/language/c/libc/string/current/src/memchr.cxx
@@ -0,0 +1,180 @@
+//===========================================================================
+//
+// memchr.cxx
+//
+// ANSI standard memchr() routine
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors:
+// Date: 2000-04-14
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libc_string.h> // Configuration header
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions
+#include <cyg/infra/cyg_trac.h> // Tracing support
+#include <cyg/infra/cyg_ass.h> // Assertion support
+#include <string.h> // Header for this file
+#include <stddef.h> // Compiler definitions such as size_t, NULL etc.
+#include <cyg/libc/string/stringsupp.hxx> // Useful string function support and
+ // prototypes
+
+// EXPORTED SYMBOLS
+
+externC void *
+memchr( const void *s, int c, size_t n ) CYGBLD_ATTRIB_WEAK_ALIAS(__memchr);
+
+// FUNCTIONS
+
+void *
+__memchr( const void *s, int c, size_t n )
+{
+ CYG_REPORT_FUNCNAMETYPE( "__memchr", "returning addr %08x" );
+ CYG_REPORT_FUNCARG3( "s=%08x, c=%d, n=%d", s, c, n );
+
+ if (n)
+ {
+ CYG_CHECK_DATA_PTR( s, "s is not a valid pointer!" );
+ }
+
+#if defined(CYGIMP_LIBC_STRING_PREFER_SMALL_TO_FAST) || defined(__OPTIMIZE_SIZE__)
+ const unsigned char *src = (const unsigned char *) s;
+
+ c &= 0xff;
+
+ while (n--)
+ {
+ if (*src == c)
+ {
+ CYG_REPORT_RETVAL( src );
+ return (void *) src;
+ } // if
+ src++;
+ }
+ CYG_REPORT_RETVAL( NULL );
+ return NULL;
+#else
+ const unsigned char *src = (const unsigned char *) s;
+ CYG_WORD *aligned_src;
+ CYG_WORD buffer;
+ CYG_WORD mask;
+ cyg_ucount8 i;
+
+ c &= 0xff;
+
+ // If the size is small, or src is unaligned, then
+ // use the bytewise loop. We can hope this is rare.
+ if (CYG_LIBC_STR_OPT_TOO_SMALL (n) || CYG_LIBC_STR_UNALIGNED (src))
+ {
+ while (n--)
+ {
+ if (*src == c)
+ {
+ CYG_REPORT_RETVAL( src );
+ return (void *) src;
+ } // if
+ src++;
+ }
+ CYG_REPORT_RETVAL( NULL );
+ return NULL;
+ }
+
+ // The fast code reads the ASCII one word at a time and only
+ // performs the bytewise search on word-sized segments if they
+ // contain the search character, which is detected by XORing
+ // the word-sized segment with a word-sized block of the search
+ // character and then detecting for the presence of NULL in the
+ // result.
+
+ aligned_src = (CYG_WORD *) src;
+ mask = 0;
+ for (i = 0; i < CYG_LIBC_STR_OPT_LITTLEBLOCKSIZE; i++)
+ mask = (mask << 8) + c;
+
+ while (n > CYG_LIBC_STR_OPT_LITTLEBLOCKSIZE)
+ {
+ buffer = *aligned_src;
+ buffer ^= mask;
+ if (CYG_LIBC_STR_DETECTNULL (buffer))
+ {
+ src = (unsigned char*) aligned_src;
+ for ( i = 0; i < CYG_LIBC_STR_OPT_LITTLEBLOCKSIZE; i++ )
+ {
+ if (*src == c)
+ {
+ CYG_REPORT_RETVAL( src );
+ return (void *) src;
+ } // if
+ src++;
+ }
+ }
+ n -= CYG_LIBC_STR_OPT_LITTLEBLOCKSIZE;
+ aligned_src++;
+ }
+
+ // If there are fewer than CYG_LIBC_STR_OPT_LITTLEBLOCKSIZE characters
+ // left, then we resort to the bytewise loop.
+
+ src = (const unsigned char *) aligned_src;
+ while (n--)
+ {
+ if (*src == c)
+ {
+ CYG_REPORT_RETVAL( src );
+ return (void *) src;
+ } // if
+ src++;
+ }
+
+ CYG_REPORT_RETVAL( NULL );
+ return NULL;
+#endif // not defined(CYGIMP_LIBC_STRING_PREFER_SMALL_TO_FAST) ||
+ // defined(__OPTIMIZE_SIZE__)
+} // __memchr()
+
+// EOF memchr.cxx
diff --git a/ecos/packages/language/c/libc/string/current/src/memcmp.cxx b/ecos/packages/language/c/libc/string/current/src/memcmp.cxx
new file mode 100644
index 0000000..7a07326
--- /dev/null
+++ b/ecos/packages/language/c/libc/string/current/src/memcmp.cxx
@@ -0,0 +1,187 @@
+//===========================================================================
+//
+// memcmp.cxx
+//
+// ANSI standard memcmp() routine
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors:
+// Date: 2000-04-14
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libc_string.h> // Configuration header
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions
+#include <cyg/infra/cyg_trac.h> // Tracing support
+#include <cyg/infra/cyg_ass.h> // Assertion support
+#include <string.h> // Header for this file
+#include <stddef.h> // Compiler definitions such as size_t, NULL etc.
+#include <cyg/libc/string/stringsupp.hxx> // Useful string function support and
+ // prototypes
+
+
+// EXPORTED SYMBOLS
+
+externC int
+memcmp( const void *s1, const void *s2, size_t n ) \
+ CYGBLD_ATTRIB_WEAK_ALIAS(__memcmp);
+
+// FUNCTIONS
+
+int
+__memcmp( const void *s1, const void *s2, size_t n )
+{
+ int retval;
+
+ CYG_REPORT_FUNCNAMETYPE( "__memcmp", "returning %d" );
+ CYG_REPORT_FUNCARG3( "s1=%08x, s2=%08x, n=%d", s1, s2, n );
+
+ if (n)
+ {
+ CYG_CHECK_DATA_PTR( s1, "s1 is not a valid pointer!" );
+ CYG_CHECK_DATA_PTR( s2, "s2 is not a valid pointer!" );
+ }
+
+#if defined(CYGIMP_LIBC_STRING_PREFER_SMALL_TO_FAST) || defined(__OPTIMIZE_SIZE__)
+ const unsigned char *m1 = (const unsigned char *) s1;
+ const unsigned char *m2 = (const unsigned char *) s2;
+
+ while (n--)
+ {
+ if (*m1 != *m2)
+ {
+ retval = *m1 - *m2;
+ CYG_REPORT_RETVAL( retval );
+ return retval;
+ }
+ m1++;
+ m2++;
+ }
+ CYG_REPORT_RETVAL( 0 );
+ return 0;
+#else
+ const unsigned char *m1 = (const unsigned char *) s1;
+ const unsigned char *m2 = (const unsigned char *) s2;
+ const CYG_WORD *aligned_m1;
+ const CYG_WORD *aligned_m2;
+
+ // If the size is too small, or either pointer is unaligned,
+ // then we punt to the byte compare loop. Hopefully this will
+ // not turn up in inner loops.
+ if (CYG_LIBC_STR_OPT_TOO_SMALL(n) || CYG_LIBC_STR_UNALIGNED2(m1,m2))
+ {
+ while (n--)
+ {
+ if (*m1 != *m2)
+ {
+ retval = *m1 - *m2;
+ CYG_REPORT_RETVAL( retval );
+ return retval;
+ }
+ m1++;
+ m2++;
+ }
+ CYG_REPORT_RETVAL( 0 );
+ return 0;
+ }
+
+ // Otherwise, load and compare the blocks of memory one
+ // word at a time.
+ aligned_m1 = (const CYG_WORD *) m1;
+ aligned_m2 = (const CYG_WORD *) m2;
+ while (n > CYG_LIBC_STR_OPT_LITTLEBLOCKSIZE)
+ {
+ if (*aligned_m1 != *aligned_m2)
+ {
+ // This block of characters has a mismatch, somewhere.
+ // xoring them together and then testing for null would
+ // be fastest, but this is clearer code.
+ m1 = (const unsigned char *)aligned_m1;
+ m2 = (const unsigned char *)aligned_m2;
+ while (n--)
+ {
+ if (*m1 != *m2)
+ {
+ retval = *m1 - *m2;
+ CYG_REPORT_RETVAL( retval );
+ return retval;
+ }
+ m1++;
+ m2++;
+ }
+ // NOT REACHED
+ }
+ aligned_m1++;
+ aligned_m2++;
+ n -= CYG_LIBC_STR_OPT_LITTLEBLOCKSIZE;
+ }
+
+ // checking the last few characters
+
+ m1 = (const unsigned char *)aligned_m1;
+ m2 = (const unsigned char *)aligned_m2;
+
+ while (n--)
+ {
+ if (*m1 != *m2)
+ {
+ retval = *m1 - *m2;
+ CYG_REPORT_RETVAL( retval );
+ return retval;
+ }
+ m1++;
+ m2++;
+ }
+
+ CYG_REPORT_RETVAL( 0 );
+ return 0;
+#endif // not defined(CYGIMP_LIBC_STRING_PREFER_SMALL_TO_FAST) ||
+ // defined(__OPTIMIZE_SIZE__)
+} // __memcmp()
+
+// EOF memcmp.cxx
diff --git a/ecos/packages/language/c/libc/string/current/src/memmove.cxx b/ecos/packages/language/c/libc/string/current/src/memmove.cxx
new file mode 100644
index 0000000..0c47e96
--- /dev/null
+++ b/ecos/packages/language/c/libc/string/current/src/memmove.cxx
@@ -0,0 +1,113 @@
+//===========================================================================
+//
+// memmove.cxx
+//
+// ANSI standard memmove() routine
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors:
+// Date: 2000-04-14
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libc_string.h> // Configuration header
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions
+#include <cyg/infra/cyg_trac.h> // Tracing support
+#include <cyg/infra/cyg_ass.h> // Assertion support
+#include <string.h> // Header for this file
+#include <stddef.h> // Compiler definitions such as size_t, NULL etc.
+#include <cyg/libc/string/stringsupp.hxx> // Useful string function support and
+ // prototypes
+
+// EXPORTED SYMBOLS
+
+externC void *
+memmove( void *s1, const void *s2, size_t n ) \
+ CYGBLD_ATTRIB_WEAK_ALIAS(__memmove);
+
+// FUNCTIONS
+
+void *
+__memmove( void *s1, const void *s2, size_t n )
+{
+ char *dst = (char *)s1;
+ const char *src = (const char *)s2;
+
+ CYG_REPORT_FUNCNAMETYPE( "__memmove", "returning %08x" );
+ CYG_REPORT_FUNCARG3( "s1=%08x, s2=%08x, n=%d", s1, s2, n );
+
+ if (n)
+ {
+ CYG_CHECK_DATA_PTR( s1, "s1 is not a valid pointer!" );
+ CYG_CHECK_DATA_PTR( s2, "s2 is not a valid pointer!" );
+ }
+
+ if ((src < dst) && (dst < (src + n)))
+ {
+ // Have to copy backwards
+ src += n;
+ dst += n;
+ while (n--)
+ {
+ *--dst = *--src;
+ }
+ }
+ else
+ {
+ while (n--)
+ {
+ *dst++ = *src++;
+ }
+ }
+
+ CYG_REPORT_RETVAL( s1 );
+
+ return s1;
+} // __memmove()
+
+// EOF memmove.cxx
diff --git a/ecos/packages/language/c/libc/string/current/src/strcat.cxx b/ecos/packages/language/c/libc/string/current/src/strcat.cxx
new file mode 100644
index 0000000..65e7ee4
--- /dev/null
+++ b/ecos/packages/language/c/libc/string/current/src/strcat.cxx
@@ -0,0 +1,128 @@
+//===========================================================================
+//
+// strcat.cxx
+//
+// ANSI standard strcat() routine
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors:
+// Date: 2000-04-14
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libc_string.h> // Configuration header
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions
+#include <cyg/infra/cyg_trac.h> // Tracing support
+#include <cyg/infra/cyg_ass.h> // Assertion support
+#include <string.h> // Header for this file
+#include <stddef.h> // Compiler definitions such as size_t, NULL etc.
+#include <cyg/libc/string/stringsupp.hxx> // Useful string function support and
+ // prototypes
+
+// EXPORTED SYMBOLS
+
+externC char *
+strcat( char *s1, const char *s2 ) CYGBLD_ATTRIB_WEAK_ALIAS(__strcat);
+
+// FUNCTIONS
+
+char *
+__strcat( char *s1, const char *s2 )
+{
+ CYG_REPORT_FUNCNAMETYPE( "__strcat", "returning %08x" );
+ CYG_REPORT_FUNCARG2( "s1=%08x, s2=%08x", s1, s2 );
+
+ CYG_CHECK_DATA_PTR( s1, "s1 is not a valid pointer!" );
+ CYG_CHECK_DATA_PTR( s2, "s2 is not a valid pointer!" );
+
+#if defined(CYGIMP_LIBC_STRING_PREFER_SMALL_TO_FAST) || defined(__OPTIMIZE_SIZE__)
+ char *s = s1;
+
+ while (*s1)
+ s1++;
+
+ while ((*s1++ = *s2++))
+ ;
+
+ CYG_REPORT_RETVAL( s );
+
+ return s;
+#else
+ char *s = s1;
+
+
+ // Skip over the data in s1 as quickly as possible.
+ if (!CYG_LIBC_STR_UNALIGNED (s1))
+ {
+ CYG_WORD *aligned_s1 = (CYG_WORD *)s1;
+ while (!CYG_LIBC_STR_DETECTNULL (*aligned_s1))
+ aligned_s1++;
+
+ s1 = (char *)aligned_s1;
+ }
+
+ while (*s1)
+ s1++;
+
+ // s1 now points to the its trailing null character, we can
+ // just use strcpy to do the work for us now.
+ //
+ // ?!? We might want to just include strcpy here.
+ // Also, this will cause many more unaligned string copies because
+ // s1 is much less likely to be aligned. I don't know if its worth
+ // tweaking strcpy to handle this better.
+ strcpy (s1, s2);
+
+ CYG_REPORT_RETVAL( s );
+
+ return s;
+#endif // not defined(CYGIMP_LIBC_STRING_PREFER_SMALL_TO_FAST) ||
+ // defined(__OPTIMIZE_SIZE__)
+} // __strcat()
+
+// EOF strcat.cxx
diff --git a/ecos/packages/language/c/libc/string/current/src/strchr.cxx b/ecos/packages/language/c/libc/string/current/src/strchr.cxx
new file mode 100644
index 0000000..ac27118
--- /dev/null
+++ b/ecos/packages/language/c/libc/string/current/src/strchr.cxx
@@ -0,0 +1,147 @@
+//===========================================================================
+//
+// strchr.cxx
+//
+// ANSI standard strchr() routine
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors:
+// Date: 2000-04-14
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libc_string.h> // Configuration header
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions
+#include <cyg/infra/cyg_trac.h> // Tracing support
+#include <cyg/infra/cyg_ass.h> // Assertion support
+#include <string.h> // Header for this file
+#include <stddef.h> // Compiler definitions such as size_t, NULL etc.
+#include <cyg/libc/string/stringsupp.hxx> // Useful string function support and
+ // prototypes
+
+// EXPORTED SYMBOLS
+
+externC char *
+strchr( const char *s, int c ) CYGBLD_ATTRIB_WEAK_ALIAS(__strchr);
+
+// MACROS
+
+// DETECTCHAR returns nonzero if X contains the byte used
+// to fill MASK.
+#define DETECTCHAR(X,MASK) (CYG_LIBC_STR_DETECTNULL( (X) ^ (MASK) ))
+
+// FUNCTIONS
+
+char *
+__strchr( const char *s, int c )
+{
+ CYG_REPORT_FUNCNAMETYPE( "__strchr", "returning %08x" );
+ CYG_REPORT_FUNCARG2( "s=%08x, c=%d", s, c );
+
+ CYG_CHECK_DATA_PTR( s, "s is not a valid pointer!" );
+
+#if defined(CYGIMP_LIBC_STRING_PREFER_SMALL_TO_FAST) || defined(__OPTIMIZE_SIZE__)
+ char charc = c;
+
+ while (*s && *s != charc)
+ {
+ s++;
+ }
+
+ if (*s != charc)
+ {
+ s = NULL;
+ }
+
+ CYG_REPORT_RETVAL( s );
+
+ return (char *) s;
+#else
+ char charc = c;
+ CYG_WORD mask;
+ CYG_WORD j;
+ CYG_WORD *aligned_addr;
+
+ if (CYG_LIBC_STR_UNALIGNED (s))
+ {
+ while (*s && *s != charc)
+ s++;
+ if (*s != charc)
+ s = NULL;
+
+ CYG_REPORT_RETVAL( s );
+
+ return (char *) s;
+ }
+
+ for (j = 0, mask = 0; j < sizeof(mask); j++)
+ mask = (mask << 8) + charc;
+
+ aligned_addr = (CYG_WORD *)s;
+ while (!CYG_LIBC_STR_DETECTNULL (*aligned_addr) &&
+ !DETECTCHAR (*aligned_addr, mask))
+ aligned_addr++;
+
+ // The block of bytes currently pointed to by aligned_addr
+ // contains either a null or the target char, or both. We
+ // catch it using the bytewise search.
+
+ s = (char *)aligned_addr;
+ while (*s && *s != charc)
+ s++;
+ if (*s != charc)
+ s = NULL;
+
+ CYG_REPORT_RETVAL( s );
+
+ return (char *)s;
+#endif // not defined(CYGIMP_LIBC_STRING_PREFER_SMALL_TO_FAST) ||
+ // defined(__OPTIMIZE_SIZE__)
+} // __strchr()
+
+// EOF strchr.cxx
diff --git a/ecos/packages/language/c/libc/string/current/src/strcmp.cxx b/ecos/packages/language/c/libc/string/current/src/strcmp.cxx
new file mode 100644
index 0000000..59a2f8b
--- /dev/null
+++ b/ecos/packages/language/c/libc/string/current/src/strcmp.cxx
@@ -0,0 +1,156 @@
+//===========================================================================
+//
+// strcmp.cxx
+//
+// ANSI standard strcmp() routine
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors:
+// Date: 2000-04-14
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libc_string.h> // Configuration header
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions
+#include <cyg/infra/cyg_trac.h> // Tracing support
+#include <cyg/infra/cyg_ass.h> // Assertion support
+#include <string.h> // Header for this file
+#include <stddef.h> // Compiler definitions such as size_t, NULL etc.
+#include <cyg/libc/string/stringsupp.hxx> // Useful string function support and
+ // prototypes
+
+// EXPORTED SYMBOLS
+
+externC int
+strcmp( const char *s1, const char *s2 ) CYGBLD_ATTRIB_WEAK_ALIAS(__strcmp);
+
+// FUNCTIONS
+
+int
+__strcmp( const char *s1, const char *s2 )
+{
+ CYG_REPORT_FUNCNAMETYPE( "__strcmp", "returning %d" );
+ CYG_REPORT_FUNCARG2( "s1=%08x, s2=%08x", s1, s2 );
+
+ CYG_CHECK_DATA_PTR( s1, "s1 is not a valid pointer!" );
+ CYG_CHECK_DATA_PTR( s2, "s2 is not a valid pointer!" );
+
+ int retval = 0;
+
+ CYG_UNUSED_PARAM( int, retval ); // in case tracing is off
+
+#if defined(CYGIMP_LIBC_STRING_PREFER_SMALL_TO_FAST) || defined(__OPTIMIZE_SIZE__)
+ while (*s1 != '\0' && *s1 == *s2)
+ {
+ s1++;
+ s2++;
+ }
+
+ retval = (*(unsigned char *) s1) - (*(unsigned char *) s2);
+
+ CYG_REPORT_RETVAL( retval );
+
+ return retval;
+#else
+ const CYG_WORD *aligned_s1;
+ const CYG_WORD *aligned_s2;
+
+ // If s1 or s2 are unaligned, then compare bytes.
+ if (CYG_LIBC_STR_UNALIGNED2 (s1, s2))
+ {
+ while (*s1 != '\0' && *s1 == *s2)
+ {
+ s1++;
+ s2++;
+ }
+ retval = (*(unsigned char *) s1) - (*(unsigned char *) s2);
+
+ CYG_REPORT_RETVAL( retval );
+
+ return retval;
+ }
+
+ // If s1 and s2 are word-aligned, compare them a word at a time.
+ aligned_s1 = (const CYG_WORD *)s1;
+ aligned_s2 = (const CYG_WORD *)s2;
+ while (*aligned_s1 == *aligned_s2)
+ {
+ // To get here, *aligned_s1 == *aligned_s2, thus if we find a
+ // null in *aligned_s1, then the strings must be equal, so return
+ // zero.
+ if (CYG_LIBC_STR_DETECTNULL (*aligned_s1))
+ {
+ CYG_REPORT_RETVAL( 0 );
+ return 0;
+ } // if
+
+ aligned_s1++;
+ aligned_s2++;
+ }
+
+ // A difference was detected in last few bytes of s1, so search bytewise
+ s1 = (const char *)aligned_s1;
+ s2 = (const char *)aligned_s2;
+
+ while (*s1 != '\0' && *s1 == *s2)
+ {
+ s1++;
+ s2++;
+ }
+
+ retval = (*(unsigned char *) s1) - (*(unsigned char *) s2);
+
+ CYG_REPORT_RETVAL( retval );
+
+ return retval;
+
+#endif // not defined(CYGIMP_LIBC_STRING_PREFER_SMALL_TO_FAST) ||
+ // defined(__OPTIMIZE_SIZE__)
+} // __strcmp()
+
+// EOF strcmp.cxx
diff --git a/ecos/packages/language/c/libc/string/current/src/strcoll.cxx b/ecos/packages/language/c/libc/string/current/src/strcoll.cxx
new file mode 100644
index 0000000..309d2ff
--- /dev/null
+++ b/ecos/packages/language/c/libc/string/current/src/strcoll.cxx
@@ -0,0 +1,95 @@
+//===========================================================================
+//
+// strcoll.cxx
+//
+// Real function definition for ANSI string strcoll() function - not
+// that there is an inline alternative
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors:
+// Date: 2000-04-14
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libc_string.h> // Configuration header
+
+// INCLUDES
+
+// We don't want the inline versions of string functions defined here
+
+#ifdef CYGIMP_LIBC_STRING_INLINES
+#undef CYGIMP_LIBC_STRING_INLINES
+#endif
+
+#include <cyg/infra/cyg_type.h> // Common type definitions
+#include <cyg/infra/cyg_trac.h> // Tracing support
+#include <cyg/infra/cyg_ass.h> // Assertion support
+#include <string.h> // Header for this file
+#include <cyg/libc/string/stringsupp.hxx> // Useful string function support and
+ // prototypes
+// EXPORTED SYMBOLS
+
+externC int
+strcoll( const char *s1, const char *s2 ) CYGBLD_ATTRIB_WEAK_ALIAS(__strcoll);
+
+
+int
+__strcoll( const char *s1, const char *s2 )
+{
+ int retval;
+
+ CYG_REPORT_FUNCNAMETYPE( "__strcoll", "returning %d" );
+ CYG_REPORT_FUNCARG2( "s1=%08x, s2=%d", s1, s2 );
+
+ CYG_CHECK_DATA_PTR( s1, "s1 is not a valid pointer!" );
+ CYG_CHECK_DATA_PTR( s2, "s2 is not a valid pointer!" );
+
+ retval = strcmp(s1, s2);
+
+ return retval;
+} // __strcoll()
+
+
+// EOF strcoll.cxx
diff --git a/ecos/packages/language/c/libc/string/current/src/strcpy.cxx b/ecos/packages/language/c/libc/string/current/src/strcpy.cxx
new file mode 100644
index 0000000..4a02bed
--- /dev/null
+++ b/ecos/packages/language/c/libc/string/current/src/strcpy.cxx
@@ -0,0 +1,132 @@
+//===========================================================================
+//
+// strcpy.cxx
+//
+// ANSI standard strcpy() routine
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors:
+// Date: 2000-04-14
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libc_string.h> // Configuration header
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions
+#include <cyg/infra/cyg_trac.h> // Tracing support
+#include <cyg/infra/cyg_ass.h> // Assertion support
+#include <string.h> // Header for this file
+#include <stddef.h> // Compiler definitions such as size_t, NULL etc.
+#include <cyg/libc/string/stringsupp.hxx> // Useful string function support and
+ // prototypes
+
+// EXPORTED SYMBOLS
+
+externC char *
+strcpy( char *s1, const char *s2 ) CYGBLD_ATTRIB_WEAK_ALIAS(__strcpy);
+
+// FUNCTIONS
+
+char *
+__strcpy( char *s1, const char *s2 )
+{
+ CYG_REPORT_FUNCNAMETYPE( "__strcpy", "returning addr %08x" );
+ CYG_REPORT_FUNCARG2( "s1=%08x, s2=%08x", s1, s2 );
+
+ CYG_CHECK_DATA_PTR( s1, "s1 is not a valid pointer!" );
+ CYG_CHECK_DATA_PTR( s2, "s2 is not a valid pointer!" );
+
+#if defined(CYGIMP_LIBC_STRING_PREFER_SMALL_TO_FAST) || defined(__OPTIMIZE_SIZE__)
+ char *s = s1;
+
+ while ((*s1++ = *s2++) != '\0')
+ ;
+
+ CYG_REPORT_RETVAL( s );
+
+ return s;
+#else
+ char *dst = s1;
+ const char *src = s2;
+ CYG_WORD *aligned_dst;
+ const CYG_WORD *aligned_src;
+
+ // If SRC or DEST is unaligned, then copy bytes.
+ if (CYG_LIBC_STR_UNALIGNED2 (src, dst))
+ {
+ while ((*dst++ = *src++) != '\0')
+ ;
+
+ CYG_REPORT_RETVAL( s1 );
+
+ return s1;
+ }
+
+ aligned_dst = (CYG_WORD *)dst;
+ aligned_src = (const CYG_WORD *)src;
+
+ // SRC and DEST are both "CYG_WORD" aligned, try to do "CYG_WORD"
+ // sized copies.
+ while (!CYG_LIBC_STR_DETECTNULL(*aligned_src))
+ {
+ *aligned_dst++ = *aligned_src++;
+ }
+
+ dst = (char*)aligned_dst;
+ src = (char*)aligned_src;
+
+ while ((*dst++ = *src++) != '\0')
+ ;
+
+ CYG_REPORT_RETVAL( s1 );
+
+ return s1;
+#endif // not defined(CYGIMP_LIBC_STRING_PREFER_SMALL_TO_FAST) ||
+ // defined(__OPTIMIZE_SIZE__)
+} // __strcpy()
+
+// EOF strcpy.cxx
diff --git a/ecos/packages/language/c/libc/string/current/src/strcspn.cxx b/ecos/packages/language/c/libc/string/current/src/strcspn.cxx
new file mode 100644
index 0000000..a509115
--- /dev/null
+++ b/ecos/packages/language/c/libc/string/current/src/strcspn.cxx
@@ -0,0 +1,106 @@
+//===========================================================================
+//
+// strcspn.cxx
+//
+// ANSI standard strcspn() routine
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors:
+// Date: 2000-04-14
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libc_string.h> // Configuration header
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions
+#include <cyg/infra/cyg_trac.h> // Tracing support
+#include <cyg/infra/cyg_ass.h> // Assertion support
+#include <string.h> // Header for this file
+#include <stddef.h> // Compiler definitions such as size_t, NULL etc.
+#include <cyg/libc/string/stringsupp.hxx> // Useful string function support and
+ // prototypes
+
+// EXPORTED SYMBOLS
+
+externC size_t
+strcspn( const char *s1, const char *s2 ) CYGBLD_ATTRIB_WEAK_ALIAS(__strcspn);
+
+// FUNCTIONS
+
+size_t
+__strcspn( const char *s1, const char *s2 )
+{
+ const char *s = s1;
+ const char *c;
+ size_t retval;
+
+ CYG_REPORT_FUNCNAMETYPE( "__strcspn", "returning size %d" );
+ CYG_REPORT_FUNCARG2( "s1=%08x, s2=%08x", s1, s2 );
+
+ CYG_CHECK_DATA_PTR( s1, "s1 is not a valid pointer!" );
+ CYG_CHECK_DATA_PTR( s2, "s2 is not a valid pointer!" );
+
+ while (*s1)
+ {
+ for (c = s2; *c; c++)
+ {
+ if (*s1 == *c)
+ break;
+ }
+ if (*c)
+ break;
+ s1++;
+ }
+
+ retval = s1 - s;
+
+ CYG_REPORT_RETVAL( retval );
+
+ return retval;
+} // __strcspn()
+
+// EOF strcspn.cxx
diff --git a/ecos/packages/language/c/libc/string/current/src/strdup.cxx b/ecos/packages/language/c/libc/string/current/src/strdup.cxx
new file mode 100644
index 0000000..af46df6
--- /dev/null
+++ b/ecos/packages/language/c/libc/string/current/src/strdup.cxx
@@ -0,0 +1,98 @@
+//===========================================================================
+//
+// strdup.cxx
+//
+// BSD strdup() routine
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2004 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors:
+// Date: 2004-02-17
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libc_string.h> // Configuration header
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions
+#include <cyg/infra/cyg_trac.h> // Tracing support
+#include <cyg/infra/cyg_ass.h> // Assertion support
+#include <string.h> // Header for this file
+#include <stddef.h> // Compiler definitions such as size_t, NULL etc.
+#include <stdlib.h> // malloc()
+#include <cyg/libc/string/stringsupp.hxx> // Useful string function support and
+ // prototypes
+
+// EXPORTED SYMBOLS
+
+__externC char *
+strdup( const char * ) CYGBLD_ATTRIB_WEAK_ALIAS(__strdup);
+
+// FUNCTIONS
+
+char *
+__strdup( const char *s1 )
+{
+ char *newstring;
+ size_t len;
+
+ CYG_REPORT_FUNCNAMETYPE( "__strdup", "returning addr %08x" );
+ CYG_REPORT_FUNCARG1( "s1=%08x", s1 );
+
+ CYG_CHECK_DATA_PTR( s1, "s1 is not a valid pointer!" );
+
+ len = strlen( s1 ) + 1;
+ newstring = (char *)malloc( len );
+ if ( newstring )
+ {
+ memcpy( newstring, s1, len );
+ } // if
+
+ CYG_REPORT_RETVAL( newstring );
+
+ return newstring;
+} // __strdup()
+
+// EOF strdup.cxx
diff --git a/ecos/packages/language/c/libc/string/current/src/strlen.cxx b/ecos/packages/language/c/libc/string/current/src/strlen.cxx
new file mode 100644
index 0000000..e2fe1a3
--- /dev/null
+++ b/ecos/packages/language/c/libc/string/current/src/strlen.cxx
@@ -0,0 +1,133 @@
+//===========================================================================
+//
+// strlen.cxx
+//
+// ANSI standard strlen() routine
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors:
+// Date: 2000-04-14
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libc_string.h> // Configuration header
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions
+#include <cyg/infra/cyg_trac.h> // Tracing support
+#include <cyg/infra/cyg_ass.h> // Assertion support
+#include <string.h> // Header for this file
+#include <stddef.h> // Compiler definitions such as size_t, NULL etc.
+#include <cyg/libc/string/stringsupp.hxx> // Useful string function support and
+ // prototypes
+
+// EXPORTED SYMBOLS
+
+externC size_t
+strlen( const char *s ) CYGBLD_ATTRIB_WEAK_ALIAS(__strlen);
+
+// FUNCTIONS
+
+size_t
+__strlen( const char *s )
+{
+ int retval;
+
+ CYG_REPORT_FUNCNAMETYPE( "__strlen", "returning length %d" );
+ CYG_REPORT_FUNCARG1( "s=%08x", s );
+
+ CYG_CHECK_DATA_PTR( s, "s is not a valid pointer!" );
+
+#if defined(CYGIMP_LIBC_STRING_PREFER_SMALL_TO_FAST) || defined(__OPTIMIZE_SIZE__)
+ const char *start = s;
+
+ while (*s)
+ s++;
+
+ retval = s - start;
+
+ CYG_REPORT_RETVAL( retval );
+
+ return retval;
+
+#else
+
+ const char *start = s;
+ CYG_WORD *aligned_addr;
+
+ if (CYG_LIBC_STR_UNALIGNED (s))
+ {
+ while (*s)
+ s++;
+ retval = s - start;
+
+ CYG_REPORT_RETVAL( retval );
+
+ return retval;
+ }
+
+ // If the string is word-aligned, we can check for the presence of
+ // a null in each word-sized block.
+
+ aligned_addr = (CYG_WORD *)s;
+ while (!CYG_LIBC_STR_DETECTNULL (*aligned_addr))
+ aligned_addr++;
+
+ // Once a null is detected, we check each byte in that block for a
+ // precise position of the null.
+ s = (char*)aligned_addr;
+ while (*s)
+ s++;
+ retval = s - start;
+
+ CYG_REPORT_RETVAL( retval );
+
+ return retval;
+#endif // not defined(CYGIMP_LIBC_STRING_PREFER_SMALL_TO_FAST) ||
+ // defined(__OPTIMIZE_SIZE__)
+} // __strlen()
+
+// EOF strlen.cxx
diff --git a/ecos/packages/language/c/libc/string/current/src/strncat.cxx b/ecos/packages/language/c/libc/string/current/src/strncat.cxx
new file mode 100644
index 0000000..840266b
--- /dev/null
+++ b/ecos/packages/language/c/libc/string/current/src/strncat.cxx
@@ -0,0 +1,137 @@
+//===========================================================================
+//
+// strncat.cxx
+//
+// ANSI standard strncat() routine
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors:
+// Date: 2000-04-14
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libc_string.h> // Configuration header
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions
+#include <cyg/infra/cyg_trac.h> // Tracing support
+#include <cyg/infra/cyg_ass.h> // Assertion support
+#include <string.h> // Header for this file
+#include <stddef.h> // Compiler definitions such as size_t, NULL etc.
+#include <cyg/libc/string/stringsupp.hxx> // Useful string function support and
+ // prototypes
+
+// EXPORTED SYMBOLS
+
+externC char *
+strncat( char *s1, const char *s2, size_t n ) \
+ CYGBLD_ATTRIB_WEAK_ALIAS(__strncat);
+
+// FUNCTIONS
+
+char *
+__strncat( char *s1, const char *s2, size_t n)
+{
+ CYG_REPORT_FUNCNAMETYPE( "__strncat", "returning %08x" );
+ CYG_REPORT_FUNCARG3( "s1=%08x, s2=%08x, n=%d", s1, s2, n );
+
+ if (n)
+ {
+ CYG_CHECK_DATA_PTR( s1, "s1 is not a valid pointer!" );
+ CYG_CHECK_DATA_PTR( s2, "s2 is not a valid pointer!" );
+ }
+
+#if defined(CYGIMP_LIBC_STRING_PREFER_SMALL_TO_FAST) || defined(__OPTIMIZE_SIZE__)
+ char *s = s1;
+
+ while (*s1)
+ s1++;
+ while (n-- != 0 && (*s1++ = *s2++))
+ {
+ if (n == 0)
+ *s1 = '\0';
+ }
+
+ CYG_REPORT_RETVAL( s );
+
+ return s;
+#else
+ char *s = s1;
+
+ // Skip over the data in s1 as quickly as possible.
+ if (!CYG_LIBC_STR_UNALIGNED (s1))
+ {
+ CYG_WORD *aligned_s1 = (CYG_WORD *)s1;
+ while (!CYG_LIBC_STR_DETECTNULL (*aligned_s1))
+ aligned_s1++;
+
+ s1 = (char *)aligned_s1;
+ }
+
+ while (*s1)
+ s1++;
+
+ // s1 now points to the its trailing null character, now copy
+ // up to N bytes from S2 into S1 stopping if a NULL is encountered
+ // in S2.
+ //
+ // It is not safe to use strncpy here since it copies EXACTLY N
+ // characters, NULL padding if necessary.
+
+ while (n-- != 0 && (*s1++ = *s2++))
+ {
+ if (n == 0)
+ *s1 = '\0';
+ }
+
+ CYG_REPORT_RETVAL( s );
+
+ return s;
+#endif // not defined(CYGIMP_LIBC_STRING_PREFER_SMALL_TO_FAST) ||
+ // defined(__OPTIMIZE_SIZE__)
+} // __strncat()
+
+// EOF strncat.cxx
diff --git a/ecos/packages/language/c/libc/string/current/src/strncmp.cxx b/ecos/packages/language/c/libc/string/current/src/strncmp.cxx
new file mode 100644
index 0000000..9009ee8
--- /dev/null
+++ b/ecos/packages/language/c/libc/string/current/src/strncmp.cxx
@@ -0,0 +1,175 @@
+//===========================================================================
+//
+// strncmp.cxx
+//
+// ANSI standard strncmp() routine
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors:
+// Date: 2000-04-14
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libc_string.h> // Configuration header
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions
+#include <cyg/infra/cyg_trac.h> // Tracing support
+#include <cyg/infra/cyg_ass.h> // Assertion support
+#include <string.h> // Header for this file
+#include <stddef.h> // Compiler definitions such as size_t, NULL etc.
+#include <cyg/libc/string/stringsupp.hxx> // Useful string function support and
+ // prototypes
+
+// EXPORTED SYMBOLS
+
+externC int
+strncmp( const char *s1, const char *s2, size_t n ) \
+ CYGBLD_ATTRIB_WEAK_ALIAS(__strncmp);
+
+// FUNCTIONS
+
+int
+__strncmp( const char *s1, const char *s2, size_t n )
+{
+ int retval;
+
+ CYG_REPORT_FUNCNAMETYPE( "__strncmp", "returning %d" );
+ CYG_REPORT_FUNCARG3( "s1=%08x, s2=%08x, n=%d", s1, s2, n );
+
+ if (n == 0)
+ {
+ CYG_REPORT_RETVAL( 0 );
+ return 0;
+ }
+
+ CYG_CHECK_DATA_PTR( s1, "s1 is not a valid pointer!" );
+ CYG_CHECK_DATA_PTR( s2, "s2 is not a valid pointer!" );
+
+#if defined(CYGIMP_LIBC_STRING_PREFER_SMALL_TO_FAST) || defined(__OPTIMIZE_SIZE__)
+ while (n-- != 0 && *s1 == *s2)
+ {
+ if (n == 0 || *s1 == '\0' || *s2 == '\0')
+ break;
+ s1++;
+ s2++;
+ }
+
+ retval = (*(unsigned char *) s1) - (*(unsigned char *) s2);
+
+ CYG_REPORT_RETVAL( retval );
+
+ return retval;
+#else
+ const CYG_WORD *aligned_s1;
+ const CYG_WORD *aligned_s2;
+
+ // If s1 or s2 are unaligned, then compare bytes.
+ if (CYG_LIBC_STR_UNALIGNED2 (s1, s2))
+ {
+ while (n-- != 0 && *s1 == *s2)
+ {
+ // If we've run out of bytes or hit a null, return zero
+ // since we already know *s1 == *s2.
+ if (n == 0 || *s1 == '\0')
+ return 0;
+ s1++;
+ s2++;
+ }
+ retval = (*(unsigned char *) s1) - (*(unsigned char *) s2);
+
+ CYG_REPORT_RETVAL( retval );
+
+ return retval;
+ } //if
+
+ // If s1 and s2 are word-aligned, compare them a word at a time.
+ aligned_s1 = (const CYG_WORD *)s1;
+ aligned_s2 = (const CYG_WORD *)s2;
+ while (n >= sizeof(CYG_WORD) && *aligned_s1 == *aligned_s2)
+ {
+ n -= sizeof (CYG_WORD);
+
+ // If we've run out of bytes or hit a null, return zero
+ // since we already know *aligned_s1 == *aligned_s2.
+ if (n == 0 || CYG_LIBC_STR_DETECTNULL (*aligned_s1))
+ {
+ CYG_REPORT_RETVAL( 0 );
+ return 0;
+ } // if
+
+ aligned_s1++;
+ aligned_s2++;
+ } // while
+
+ // A difference was detected in last few bytes of s1, so search bytewise
+ s1 = (const char *)aligned_s1;
+ s2 = (const char *)aligned_s2;
+
+ while (n-- > 0 && *s1 == *s2)
+ {
+ // If we've run out of bytes or hit a null, return zero
+ // since we already know *s1 == *s2.
+ if (n == 0 || *s1 == '\0')
+ {
+ CYG_REPORT_RETVAL( 0 );
+ return 0;
+ } // if
+ s1++;
+ s2++;
+ } // while
+
+ retval = (*(unsigned char *) s1) - (*(unsigned char *) s2);
+
+ CYG_REPORT_RETVAL( retval );
+
+ return retval;
+
+#endif // not defined(CYGIMP_LIBC_STRING_PREFER_SMALL_TO_FAST) ||
+ // defined(__OPTIMIZE_SIZE__)
+} // __strncmp()
+
+// EOF strncmp.cxx
diff --git a/ecos/packages/language/c/libc/string/current/src/strncpy.cxx b/ecos/packages/language/c/libc/string/current/src/strncpy.cxx
new file mode 100644
index 0000000..e7c9d5f
--- /dev/null
+++ b/ecos/packages/language/c/libc/string/current/src/strncpy.cxx
@@ -0,0 +1,148 @@
+//===========================================================================
+//
+// strncpy.cxx
+//
+// ISO C standard strncpy() routine
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors:
+// Date: 2000-04-14
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libc_string.h> // Configuration header
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions
+#include <cyg/infra/cyg_trac.h> // Tracing support
+#include <cyg/infra/cyg_ass.h> // Assertion support
+#include <string.h> // Header for this file
+#include <stddef.h> // Compiler definitions such as size_t, NULL etc.
+#include <cyg/libc/string/stringsupp.hxx> // Useful string function support and
+ // prototypes
+
+// EXPORTED SYMBOLS
+
+externC char *
+strncpy( char *s1, const char *s2, size_t n ) \
+ CYGBLD_ATTRIB_WEAK_ALIAS(__strncpy);
+
+// FUNCTIONS
+
+char *
+__strncpy( char *s1, const char *s2, size_t n)
+{
+ CYG_REPORT_FUNCNAMETYPE( "__strncpy", "returning %08x" );
+ CYG_REPORT_FUNCARG3( "s1=%08x, s2=%08x, n=%d", s1, s2, n );
+
+ if (n)
+ {
+ CYG_CHECK_DATA_PTR( s1, "s1 is not a valid pointer!" );
+ CYG_CHECK_DATA_PTR( s2, "s2 is not a valid pointer!" );
+ }
+
+#if defined(CYGIMP_LIBC_STRING_PREFER_SMALL_TO_FAST) || defined(__OPTIMIZE_SIZE__)
+ char *dscan;
+ const char *sscan;
+
+ dscan = s1;
+ sscan = s2;
+ while (n > 0)
+ {
+ --n;
+ if ((*dscan++ = *sscan++) == '\0')
+ break;
+ }
+ while (n-- > 0)
+ *dscan++ = '\0';
+
+ CYG_REPORT_RETVAL( s1 );
+
+ return s1;
+#else
+ char *dst = s1;
+ const char *src = s2;
+ CYG_WORD *aligned_dst;
+ const CYG_WORD *aligned_src;
+
+ // If SRC and DEST is aligned and count large enough, then copy words.
+ if (!CYG_LIBC_STR_UNALIGNED2 (src, dst) &&
+ !CYG_LIBC_STR_OPT_TOO_SMALL (n)) {
+
+ aligned_dst = (CYG_WORD *)dst;
+ aligned_src = (CYG_WORD *)src;
+
+ // SRC and DEST are both "CYG_WORD" aligned, try to do "CYG_WORD"
+ // sized copies.
+ while (n >= sizeof (CYG_WORD) &&
+ !CYG_LIBC_STR_DETECTNULL(*aligned_src)) {
+
+ n -= sizeof (CYG_WORD);
+ *aligned_dst++ = *aligned_src++;
+ }
+
+ dst = (char *)aligned_dst;
+ src = (const char *)aligned_src;
+ } // if
+
+ while (n > 0)
+ {
+ --n;
+ if ((*dst++ = *src++) == '\0')
+ break;
+ }
+
+ while (n-- > 0)
+ *dst++ = '\0';
+
+ CYG_REPORT_RETVAL( s1 );
+
+ return s1;
+#endif // not defined(CYGIMP_LIBC_STRING_PREFER_SMALL_TO_FAST) ||
+ // defined(__OPTIMIZE_SIZE__)
+} // __strncpy()
+
+// EOF strncpy.cxx
diff --git a/ecos/packages/language/c/libc/string/current/src/strnlen.cxx b/ecos/packages/language/c/libc/string/current/src/strnlen.cxx
new file mode 100644
index 0000000..f64a700
--- /dev/null
+++ b/ecos/packages/language/c/libc/string/current/src/strnlen.cxx
@@ -0,0 +1,134 @@
+//===========================================================================
+//
+// strnlen.cxx
+//
+// GNU extension strnlen() routine
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998-2010 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour, wry
+// Contributors:
+// Date: 2010-05-10
+// Purpose:
+// Description:
+// Usage:
+// Note: Derivative work of strlen.cxx.
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libc_string.h> // Configuration header
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions
+#include <cyg/infra/cyg_trac.h> // Tracing support
+#include <cyg/infra/cyg_ass.h> // Assertion support
+#include <string.h> // Header for this file
+#include <stddef.h> // Compiler definitions such as size_t, NULL etc.
+#include <cyg/libc/string/stringsupp.hxx> // Useful string function support and
+ // prototypes
+
+// EXPORTED SYMBOLS
+
+externC size_t
+strnlen( const char *s , size_t maxlen ) CYGBLD_ATTRIB_WEAK_ALIAS(__strnlen);
+
+// FUNCTIONS
+
+size_t
+__strnlen( const char *s , size_t maxlen )
+{
+ int retval;
+
+ CYG_REPORT_FUNCNAMETYPE( "__strnlen", "returning length %d" );
+ CYG_REPORT_FUNCARG1( "s=%08x", s );
+
+ CYG_CHECK_DATA_PTR( s, "s is not a valid pointer!" );
+
+#if defined(CYGIMP_LIBC_STRING_PREFER_SMALL_TO_FAST) || defined(__OPTIMIZE_SIZE__)
+ const char *start = s;
+
+ while (*s && maxlen)
+ s++, maxlen--;
+
+ retval = s - start;
+
+ CYG_REPORT_RETVAL( retval );
+
+ return retval;
+
+#else
+
+ const char *start = s;
+ CYG_WORD *aligned_addr;
+
+ if (CYG_LIBC_STR_UNALIGNED (s))
+ {
+ while (*s && maxlen)
+ s++, maxlen--;
+ retval = s - start;
+
+ CYG_REPORT_RETVAL( retval );
+
+ return retval;
+ }
+
+ // If the string is word-aligned, we can check for the presence of
+ // a null in each word-sized block.
+
+ aligned_addr = (CYG_WORD *)s;
+ while (!CYG_LIBC_STR_DETECTNULL (*aligned_addr) && (maxlen>= sizeof(CYG_WORD)))
+ aligned_addr++, maxlen -= sizeof(CYG_WORD);
+
+ // Once a null is detected, we check each byte in that block for a
+ // precise position of the null.
+ s = (char*)aligned_addr;
+ while (*s && maxlen)
+ s++, maxlen--;
+ retval = s - start;
+
+ CYG_REPORT_RETVAL( retval );
+
+ return retval;
+#endif // not defined(CYGIMP_LIBC_STRING_PREFER_SMALL_TO_FAST) ||
+ // defined(__OPTIMIZE_SIZE__)
+} // __strnlen()
+
+// EOF strnlen.cxx
diff --git a/ecos/packages/language/c/libc/string/current/src/strpbrk.cxx b/ecos/packages/language/c/libc/string/current/src/strpbrk.cxx
new file mode 100644
index 0000000..62ca12f
--- /dev/null
+++ b/ecos/packages/language/c/libc/string/current/src/strpbrk.cxx
@@ -0,0 +1,112 @@
+//===========================================================================
+//
+// strpbrk.cxx
+//
+// ANSI standard strpbrk() routine
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors:
+// Date: 2000-04-14
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libc_string.h> // Configuration header
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions
+#include <cyg/infra/cyg_trac.h> // Tracing support
+#include <cyg/infra/cyg_ass.h> // Assertion support
+#include <string.h> // Header for this file
+#include <stddef.h> // Compiler definitions such as size_t, NULL etc.
+#include <cyg/libc/string/stringsupp.hxx> // Useful string function support and
+ // prototypes
+
+// EXPORTED SYMBOLS
+
+externC char *
+strpbrk( const char *s1, const char *s2 ) CYGBLD_ATTRIB_WEAK_ALIAS(__strpbrk);
+
+// FUNCTIONS
+
+char *
+__strpbrk( const char *s1, const char *s2 )
+{
+ const char *c;
+
+ CYG_REPORT_FUNCNAMETYPE( "__strpbrk", "returning %08x" );
+ CYG_REPORT_FUNCARG2( "s1=%08x, s2=%08x", s1, s2 );
+
+ CYG_CHECK_DATA_PTR( s1, "s1 is not a valid pointer!" );
+ CYG_CHECK_DATA_PTR( s2, "s2 is not a valid pointer!" );
+
+ if (!*s1)
+ {
+ CYG_REPORT_RETVAL( NULL );
+ return (char *) NULL;
+ } // if
+
+ do
+ {
+ for (c = s2; *c; c++)
+ {
+ if (*s1 == *c)
+ break;
+ }
+ if (*c)
+ break;
+ s1++;
+ }
+ while (*s1);
+
+ if (*c == '\0')
+ s1 = NULL;
+
+ CYG_REPORT_RETVAL( s1 );
+
+ return (char *) s1;
+} // __strpbrk()
+
+// EOF strpbrk.cxx
diff --git a/ecos/packages/language/c/libc/string/current/src/strrchr.cxx b/ecos/packages/language/c/libc/string/current/src/strrchr.cxx
new file mode 100644
index 0000000..deec308
--- /dev/null
+++ b/ecos/packages/language/c/libc/string/current/src/strrchr.cxx
@@ -0,0 +1,104 @@
+//===========================================================================
+//
+// strrchr.cxx
+//
+// ANSI standard strrchr() routine
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 2000-04-14
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libc_string.h> // Configuration header
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions
+#include <cyg/infra/cyg_trac.h> // Tracing support
+#include <cyg/infra/cyg_ass.h> // Assertion support
+#include <string.h> // Header for this file
+#include <stddef.h> // Compiler definitions such as size_t, NULL etc.
+#include <cyg/libc/string/stringsupp.hxx> // Useful string function support and
+ // prototypes
+
+// EXPORTED SYMBOLS
+
+externC char *
+strrchr( const char *s, int c ) CYGBLD_ATTRIB_WEAK_ALIAS(__strrchr);
+
+// FUNCTIONS
+
+char *
+__strrchr( const char *s, int c )
+{
+ const char *last = NULL;
+ const char charc = c;
+
+ CYG_REPORT_FUNCNAMETYPE( "__strrchr", "returning %08x" );
+ CYG_REPORT_FUNCARG2( "s=%08x, c=%d", s, c );
+
+ CYG_CHECK_DATA_PTR( s, "s is not a valid pointer!" );
+
+ while (*s)
+ {
+ if (*s == charc)
+ {
+ last = s;
+ }
+ s++;
+ }
+
+ if (*s == charc)
+ {
+ last = s;
+ }
+
+ CYG_REPORT_RETVAL( last );
+
+ return (char *) last;
+} // __strrchr()
+
+// EOF strrchr.cxx
diff --git a/ecos/packages/language/c/libc/string/current/src/strspn.cxx b/ecos/packages/language/c/libc/string/current/src/strspn.cxx
new file mode 100644
index 0000000..488ca1c
--- /dev/null
+++ b/ecos/packages/language/c/libc/string/current/src/strspn.cxx
@@ -0,0 +1,106 @@
+//===========================================================================
+//
+// strspn.cxx
+//
+// ANSI standard strspn() routine
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors:
+// Date: 2000-04-14
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libc_string.h> // Configuration header
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions
+#include <cyg/infra/cyg_trac.h> // Tracing support
+#include <cyg/infra/cyg_ass.h> // Assertion support
+#include <string.h> // Header for this file
+#include <stddef.h> // Compiler definitions such as size_t, NULL etc.
+#include <cyg/libc/string/stringsupp.hxx> // Useful string function support and
+ // prototypes
+
+// EXPORTED SYMBOLS
+
+externC size_t
+strspn( const char *s1, const char *s2 ) CYGBLD_ATTRIB_WEAK_ALIAS(__strspn);
+
+// FUNCTIONS
+
+size_t
+__strspn( const char *s1, const char *s2 )
+{
+ const char *s = s1;
+ const char *c;
+ size_t retval;
+
+ CYG_REPORT_FUNCNAMETYPE( "__strspn", "returning size %d" );
+ CYG_REPORT_FUNCARG2( "s1=%08x, s2=%08x", s1, s2 );
+
+ CYG_CHECK_DATA_PTR( s1, "s1 is not a valid pointer!" );
+ CYG_CHECK_DATA_PTR( s2, "s2 is not a valid pointer!" );
+
+ while (*s1)
+ {
+ for (c = s2; *c; c++)
+ {
+ if (*s1 == *c)
+ break;
+ }
+ if (*c == '\0')
+ break;
+ s1++;
+ }
+
+ retval = s1 - s;
+
+ CYG_REPORT_RETVAL( retval );
+
+ return retval;
+} // __strspn()
+
+// EOF strspn.cxx
diff --git a/ecos/packages/language/c/libc/string/current/src/strstr.cxx b/ecos/packages/language/c/libc/string/current/src/strstr.cxx
new file mode 100644
index 0000000..e95d98b
--- /dev/null
+++ b/ecos/packages/language/c/libc/string/current/src/strstr.cxx
@@ -0,0 +1,122 @@
+//===========================================================================
+//
+// strstr.cxx
+//
+// ANSI standard strstr() routine
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors:
+// Date: 2000-04-14
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libc_string.h> // Configuration header
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions
+#include <cyg/infra/cyg_trac.h> // Tracing support
+#include <cyg/infra/cyg_ass.h> // Assertion support
+#include <string.h> // Header for this file
+#include <stddef.h> // Compiler definitions such as size_t, NULL etc.
+#include <cyg/libc/string/stringsupp.hxx> // Useful string function support and
+ // prototypes
+
+// EXPORTED SYMBOLS
+
+externC char *
+strstr( const char *s1, const char *s2 ) CYGBLD_ATTRIB_WEAK_ALIAS(__strstr);
+
+// FUNCTIONS
+
+char *
+__strstr( const char *s1, const char *s2 )
+{
+ CYG_REPORT_FUNCNAMETYPE( "__strstr", "returning %08x" );
+ CYG_REPORT_FUNCARG2( "s1=%08x, s2=%08x", s1, s2 );
+
+ CYG_CHECK_DATA_PTR( s1, "s1 is not a valid pointer!" );
+ CYG_CHECK_DATA_PTR( s2, "s2 is not a valid pointer!" );
+
+ if (*s1 == '\0')
+ {
+ if (*s2)
+ {
+ CYG_REPORT_RETVAL( NULL );
+ return (char *) NULL;
+ } // if
+ else
+ {
+ CYG_REPORT_RETVAL( s1 );
+ return (char *) s1;
+ } // else
+ } // if
+
+ while (*s1)
+ {
+ cyg_ucount32 i;
+
+ for (i=0 ; ; i++)
+ {
+ if (s2[i] == '\0')
+ {
+ CYG_REPORT_RETVAL( s1 );
+ return (char *) s1;
+ } // if
+
+ if (s2[i] != s1[i])
+ {
+ break;
+ } // if
+ } // for
+ s1++;
+ } // while
+
+ CYG_REPORT_RETVAL( NULL );
+
+ return (char *) NULL;
+} // __strstr()
+
+// EOF strstr.cxx
diff --git a/ecos/packages/language/c/libc/string/current/src/strsuppt.cxx b/ecos/packages/language/c/libc/string/current/src/strsuppt.cxx
new file mode 100644
index 0000000..7055f6b
--- /dev/null
+++ b/ecos/packages/language/c/libc/string/current/src/strsuppt.cxx
@@ -0,0 +1,69 @@
+//===========================================================================
+//
+// strsuppt.cxx
+//
+// Support for the ANSI standard string functions
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors:
+// Date: 2000-04-14
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libc_string.h> // Configuration header
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions
+#include <cyg/libc/string/stringsupp.hxx> // Header for this file
+
+// CONSTANTS
+
+// Masks for CYG_LIBC_DETECTNULL macro so they are only defined once in
+// the library
+const cyg_uint64 Cyg_libc_str_null_mask_1 = 0x0101010101010101LL;
+const cyg_uint64 Cyg_libc_str_null_mask_2 = 0x8080808080808080LL;
+
+// EOF strsuppt.cxx
diff --git a/ecos/packages/language/c/libc/string/current/src/strtok.cxx b/ecos/packages/language/c/libc/string/current/src/strtok.cxx
new file mode 100644
index 0000000..fcf2f25
--- /dev/null
+++ b/ecos/packages/language/c/libc/string/current/src/strtok.cxx
@@ -0,0 +1,241 @@
+//===========================================================================
+//
+// strtok.cxx
+//
+// ISO standard strtok() routine
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 2000-04-14
+// Purpose: Provide ISO C strtok() and POSIX strtok_r() routines
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+//
+// This code is based on original code with the following copyright:
+//
+/*
+ * Copyright (c) 1988 Regents of the University of California.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the University nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+
+// CONFIGURATION
+
+#include <pkgconf/libc_string.h> // Configuration header
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions
+#include <cyg/infra/cyg_trac.h> // Tracing support
+#include <cyg/infra/cyg_ass.h> // Assertion support
+#include <string.h> // Header for this file
+#include <stddef.h> // Compiler definitions such as size_t, NULL etc.
+#include <cyg/libc/string/stringsupp.hxx> // Useful string function support and
+ // prototypes
+
+#ifdef CYGSEM_LIBC_STRING_PER_THREAD_STRTOK
+# include <pkgconf/kernel.h> // kernel configuration
+# include <cyg/kernel/thread.hxx> // per-thread data
+# include <cyg/kernel/thread.inl> // per-thread data
+# include <cyg/kernel/mutex.hxx> // mutexes
+#endif
+
+// TRACE
+
+#if defined(CYGDBG_USE_TRACING) && defined(CYGNUM_LIBC_STRING_STRTOK_TRACE_LEVEL)
+static int strtok_trace = CYGNUM_LIBC_STRING_STRTOK_TRACE_LEVEL;
+# define TL1 (0 < strtok_trace)
+#else
+# define TL1 (0)
+#endif
+
+// STATICS
+
+#ifdef CYGSEM_LIBC_STRING_PER_THREAD_STRTOK
+static Cyg_Thread::cyg_data_index
+strtok_data_index=CYGNUM_KERNEL_THREADS_DATA_MAX;
+
+static Cyg_Mutex strtok_data_mutex CYG_INIT_PRIORITY(LIBC);
+#else
+static char *cyg_libc_strtok_last;
+#endif
+
+// FUNCTIONS
+
+char *
+strtok( char *s1, const char *s2 )
+{
+ char **lasts;
+ char *retval;
+
+ CYG_REPORT_FUNCNAMETYPE( "strtok", "returning %08x" );
+ CYG_REPORT_FUNCARG2( "s1=%08x, s2=%08x", s1, s2 );
+
+ if (s1 != NULL)
+ CYG_CHECK_DATA_PTR( s1, "s1 is not a valid pointer!" );
+ CYG_CHECK_DATA_PTR( s2, "s2 is not a valid pointer!" );
+
+#ifdef CYGSEM_LIBC_STRING_PER_THREAD_STRTOK
+ Cyg_Thread *self = Cyg_Thread::self();
+
+ // Get a per-thread data slot if we haven't got one already
+ // Do a simple test before locking and retrying test, as this is a
+ // rare situation
+ if (CYGNUM_KERNEL_THREADS_DATA_MAX==strtok_data_index) {
+ strtok_data_mutex.lock();
+ if (CYGNUM_KERNEL_THREADS_DATA_MAX==strtok_data_index) {
+
+ // FIXME: Should use real CDL to pre-allocate a slot at compile
+ // time to ensure there are enough slots
+ strtok_data_index = self->new_data_index();
+ CYG_ASSERT(strtok_data_index >= 0,
+ "failed to allocate data index" );
+ }
+ strtok_data_mutex.unlock();
+ } // if
+
+ // we have a valid index now
+
+ lasts = (char **)self->get_data_ptr(strtok_data_index);
+#else
+ lasts = &cyg_libc_strtok_last;
+#endif
+
+ CYG_TRACE2( TL1, "Retrieved strtok_last address %08x containing %s",
+ lasts, *lasts );
+
+ retval = strtok_r( s1, s2, lasts );
+
+ CYG_REPORT_RETVAL( retval );
+
+ return retval;
+} // strtok()
+
+char *
+strtok_r( char *s1, const char *s2, char **lasts )
+{
+ char *spanp;
+ int c, sc;
+ char *tok;
+
+ CYG_REPORT_FUNCNAMETYPE( "strtok_r", "returning %08x" );
+ CYG_REPORT_FUNCARG3( "s1=%08x, s2=%08x, lasts=%08x", s1, s2, lasts );
+
+ if (s1 != NULL)
+ CYG_CHECK_DATA_PTR( s1, "s1 is not a valid pointer!" );
+ CYG_CHECK_DATA_PTR( s2, "s2 is not a valid pointer!" );
+ CYG_CHECK_DATA_PTR( lasts, "lasts is not a valid pointer!" );
+
+
+ if (s1 == NULL && (s1 = *lasts) == NULL)
+ {
+ CYG_REPORT_RETVAL( NULL );
+ return NULL;
+ } // if
+
+ //
+ // Skip (span) leading delimiters (s += strspn(s, delim), sort of).
+ //
+cont:
+ c = *s1++;
+ for (spanp = (char *)s2; (sc = *spanp++) != 0;) {
+ if (c == sc)
+ goto cont;
+ } // for
+
+ if (c == 0) { // no non-delimiter characters
+ *lasts = NULL;
+
+ CYG_REPORT_RETVAL( NULL );
+ return NULL;
+ } // if
+ tok = s1 - 1;
+
+ //
+ // Scan token (scan for delimiters: s += strcspn(s, delim), sort of).
+ // Note that delim must have one NUL; we stop if we see that, too.
+ //
+ for (;;) {
+ c = *s1++;
+ spanp = (char *)s2;
+ do {
+ if ((sc = *spanp++) == c) {
+ if (c == 0)
+ s1 = NULL;
+ else
+ s1[-1] = 0;
+ *lasts = s1;
+
+ CYG_REPORT_RETVAL( tok );
+
+ return (tok);
+ } // if
+ } while (sc != 0);
+ } // for
+ // NOTREACHED
+} // strtok_r()
+
+// EOF strtok.cxx
diff --git a/ecos/packages/language/c/libc/string/current/src/strxfrm.cxx b/ecos/packages/language/c/libc/string/current/src/strxfrm.cxx
new file mode 100644
index 0000000..3b2c9cf
--- /dev/null
+++ b/ecos/packages/language/c/libc/string/current/src/strxfrm.cxx
@@ -0,0 +1,111 @@
+//===========================================================================
+//
+// strxfrm.cxx
+//
+// ANSI standard strxfrm() routine
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors:
+// Date: 2000-04-14
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libc_string.h> // Configuration header
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions
+#include <cyg/infra/cyg_trac.h> // Tracing support
+#include <cyg/infra/cyg_ass.h> // Assertion support
+#include <string.h> // Header for this file
+#include <stddef.h> // Compiler definitions such as size_t, NULL etc.
+#include <cyg/libc/string/stringsupp.hxx> // Useful string function support and
+ // prototypes
+
+// EXPORTED SYMBOLS
+
+externC size_t
+strxfrm( char *s1, const char *s2, size_t n ) \
+ CYGBLD_ATTRIB_WEAK_ALIAS(__strxfrm);
+
+// FUNCTIONS
+
+size_t
+__strxfrm( char *s1, const char *s2, size_t n )
+{
+ size_t res = 0;
+
+ CYG_REPORT_FUNCNAMETYPE( "__strxfrm", "returning size %d" );
+ CYG_REPORT_FUNCARG3( "s1=%08x, s2=%08x, n=%d", s1, s2, n );
+
+ if (n)
+ {
+ CYG_CHECK_DATA_PTR( s1, "s1 is not a valid pointer!" );
+ }
+ CYG_CHECK_DATA_PTR( s2, "s2 is not a valid pointer!" );
+
+ while (n-- > 0)
+ {
+ if ((*s1++ = *s2++) != '\0')
+ ++res;
+ else
+ {
+ CYG_REPORT_RETVAL( res );
+ return res;
+ } // else
+ } // while
+
+ while (*s2)
+ {
+ ++s2;
+ ++res;
+ } // while
+
+ CYG_REPORT_RETVAL( res );
+
+ return res;
+} // __strxfrm()
+
+// EOF strxfrm.cxx
diff --git a/ecos/packages/language/c/libc/string/current/tests/memchr.c b/ecos/packages/language/c/libc/string/current/tests/memchr.c
new file mode 100644
index 0000000..2bb497e
--- /dev/null
+++ b/ecos/packages/language/c/libc/string/current/tests/memchr.c
@@ -0,0 +1,117 @@
+//=================================================================
+//
+// memchr.c
+//
+// Testcase for C library memchr()
+//
+//=================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): ctarpy, jlarmour
+// Contributors:
+// Date: 2000-04-30
+// Description: Contains testcode for C library memchr() function
+//
+//
+//####DESCRIPTIONEND####
+
+// INCLUDES
+
+#include <pkgconf/isoinfra.h>
+#include <string.h>
+#include <cyg/infra/testcase.h>
+
+// FUNCTIONS
+
+// Functions to avoid having to use libc strings
+
+static int my_strcmp(const char *s1, const char *s2)
+{
+ for ( ; *s1 == *s2 ; s1++,s2++ )
+ {
+ if ( *s1 == '\0' )
+ break;
+ } // for
+
+ return (*s1 - *s2);
+} // my_strcmp()
+
+#if CYGINT_ISO_MAIN_STARTUP
+int main( int argc, char *argv[] )
+#else
+void cyg_user_start(void)
+#endif
+{
+ char x[] = "Your feeble skills are no match for the power of "
+ "the dark side!";
+ char x0[] = "";
+ void *ret;
+
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for C library "
+ "memchr() function");
+
+ // Check 1
+ ret = memchr(x, (int)'k', sizeof(x));
+ CYG_TEST_PASS_FAIL( (my_strcmp(ret, x+13) == 0), "Simple test 1" );
+
+ // Check 2
+ ret = memchr(x, (int)'p', sizeof(x));
+ CYG_TEST_PASS_FAIL( (my_strcmp(ret, x+40) == 0), "Simple test 2" );
+
+ // Check 3
+ ret = memchr(x, (int)'z', sizeof(x));
+ CYG_TEST_PASS_FAIL( (ret == NULL), "Simple test 3" );
+
+ // Check 4 (boundary condition)
+ ret = memchr(x, (int)'\0', sizeof(x));
+ CYG_TEST_PASS_FAIL( ret == (x+sizeof(x)-1), "Boundary test 1" );
+
+ // Check 5 (boundary condition)
+ ret = memchr(x, (int)'\0', sizeof(x)-1);
+ CYG_TEST_PASS_FAIL( ret == NULL, "Boundary test 2" );
+
+ // Check 6 (boundary condition)
+ ret = memchr(x0, (int)'\0', 0 );
+ CYG_TEST_PASS_FAIL( ret == NULL, "Boundary test 3" );
+
+// CYG_TEST_NA("Testing is not applicable to this configuration");
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for C library "
+ "memchr() function");
+} // main()
+
+// EOF memchr.c
diff --git a/ecos/packages/language/c/libc/string/current/tests/memcmp1.c b/ecos/packages/language/c/libc/string/current/tests/memcmp1.c
new file mode 100644
index 0000000..bd8d56a
--- /dev/null
+++ b/ecos/packages/language/c/libc/string/current/tests/memcmp1.c
@@ -0,0 +1,146 @@
+//=================================================================
+//
+// memcmp1.c
+//
+// Testcase for C library memcmp()
+//
+//=================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): ctarpy, jlarmour
+// Contributors:
+// Date: 2000-04-30
+// Description: Contains testcode for C library memcmp() function
+//
+//
+//####DESCRIPTIONEND####
+
+// INCLUDES
+
+#include <pkgconf/isoinfra.h>
+#include <string.h>
+#include <cyg/infra/testcase.h>
+
+// FUNCTIONS
+
+// Functions to avoid having to use libc strings
+
+static int my_strlen(const char *s)
+{
+ const char *ptr;
+
+ ptr = s;
+ for ( ptr=s ; *ptr != '\0' ; ptr++ )
+ ;
+
+ return (int)(ptr-s);
+} // my_strlen()
+
+
+static char *my_strcpy(char *s1, const char *s2)
+{
+ while (*s2 != '\0') {
+ *(s1++) = *(s2++);
+ }
+ *s1 = '\0';
+
+ return s1;
+} // my_strcpy()
+
+
+#if CYGINT_ISO_MAIN_STARTUP
+int main( int argc, char *argv[] )
+#else
+void cyg_user_start(void)
+#endif
+{
+ char x[300];
+ char y[300];
+
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for C library "
+ "memcmp() function");
+ CYG_TEST_INFO("This testcase provides simple basic tests");
+
+ // Check 1
+ my_strcpy(x, "I have become, comfortably numb");
+ my_strcpy(y, "I have become, comfortably numb");
+ CYG_TEST_PASS_FAIL( (memcmp(x, y, my_strlen(x)) == 0), "Simple compare");
+
+
+ // Check 2
+ my_strcpy(x, "");
+ my_strcpy(y, "");
+ CYG_TEST_PASS_FAIL( (memcmp(x, y, 0) == 0), "Simple empty string compare");
+
+
+ // Check 3
+ my_strcpy(x, "..shall snuff it. And the Lord did grin");
+ my_strcpy(y, "..shall snuff it. And the Lord did grio");
+ CYG_TEST_PASS_FAIL( (memcmp(x, y, my_strlen(x)) < 0),
+ "Memory less than #1" );
+
+
+ // Check 4
+ my_strcpy(x, "A reading from the Book of Armaments, Chapter 4, "
+ "Verses 16 to 20:");
+ my_strcpy(y, "Bless this, O Lord, that with it thou mayst blow thine "
+ "enemies to tiny bits, in thy mercy.");
+ CYG_TEST_PASS_FAIL( (memcmp(x, y, my_strlen(x)) < 0),
+ "Memory less than #2");
+
+ // Check 5
+ my_strcpy(x, "Lobeth this thy holy hand grenade at thy foe");
+ my_strcpy(y, "Lobeth this thy holy hand grenade at thy fod");
+ CYG_TEST_PASS_FAIL( (memcmp(x, y, my_strlen(x)) > 0),
+ "Memory greater than #1" );
+
+
+ // Check 6
+ my_strcpy(y, "Three shall be the number of the counting and the");
+ my_strcpy(x, "number of the counting shall be three");
+ CYG_TEST_PASS_FAIL( (memcmp(x, y, my_strlen(x)) > 0),
+ "Memory greater than #2" );
+
+// CYG_TEST_NA("Testing is not applicable to this configuration");
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for C library "
+ "memcmp() function");
+} // main()
+
+
+
+// EOF memcmp1.c
diff --git a/ecos/packages/language/c/libc/string/current/tests/memcmp2.c b/ecos/packages/language/c/libc/string/current/tests/memcmp2.c
new file mode 100644
index 0000000..8b38f3d
--- /dev/null
+++ b/ecos/packages/language/c/libc/string/current/tests/memcmp2.c
@@ -0,0 +1,134 @@
+//=================================================================
+//
+// memcmp2.c
+//
+// Testcase for C library memcmp()
+//
+//=================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): ctarpy, jlarmour
+// Contributors:
+// Date: 2000-04-30
+// Description: Contains testcode for C library memcmp() function
+//
+//
+//####DESCRIPTIONEND####
+
+// INCLUDES
+
+#include <pkgconf/isoinfra.h>
+#include <string.h>
+#include <cyg/infra/testcase.h>
+
+// CONSTANTS
+
+#define NUM_ROBUSTNESS_RUNS 300
+
+// FUNCTIONS
+
+// Functions to avoid having to use libc strings
+
+static int my_strlen(const char *s)
+{
+ const char *ptr;
+
+ ptr = s;
+ for ( ptr=s ; *ptr != '\0' ; ptr++ )
+ ;
+
+ return (int)(ptr-s);
+} // my_strlen()
+
+
+static char *my_strcpy(char *s1, const char *s2)
+{
+ while (*s2 != '\0') {
+ *(s1++) = *(s2++);
+ }
+ *s1 = '\0';
+
+ return s1;
+} // my_strcpy()
+
+
+#if CYGINT_ISO_MAIN_STARTUP
+int main( int argc, char *argv[] )
+#else
+void cyg_user_start(void)
+#endif
+{
+ char x[300];
+ char y[300];
+ char z[300];
+ int ctr;
+ int fail;
+
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for C library "
+ "memcmp() function");
+ CYG_TEST_INFO("This testcase tests robustness, and may take some time");
+
+
+ fail = 0;
+ for (ctr = 0; ctr < NUM_ROBUSTNESS_RUNS; ctr++)
+ {
+ my_strcpy(x, "Spare a talent for an old ex-leper");
+ my_strcpy(y, "Spare a talent for an old ex-leper");
+ my_strcpy(z, "I was hopping along, when suddenly he");
+
+ if (memcmp(x, y,my_strlen(x)) != 0)
+ {
+ fail = 1;
+ break;
+ }
+ if (memcmp(x, z, my_strlen(z)) == 0)
+ {
+ fail = 1;
+ break;
+ } // if
+ } // for
+
+ CYG_TEST_PASS_FAIL( (fail==0), "Robustness test");
+
+// CYG_TEST_NA("Testing is not applicable to this configuration");
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for C library "
+ "memcmp() function");
+} // main()
+
+
+// EOF memcmp2.c
diff --git a/ecos/packages/language/c/libc/string/current/tests/memcpy1.c b/ecos/packages/language/c/libc/string/current/tests/memcpy1.c
new file mode 100644
index 0000000..93b6856
--- /dev/null
+++ b/ecos/packages/language/c/libc/string/current/tests/memcpy1.c
@@ -0,0 +1,154 @@
+//=================================================================
+//
+// memcpy1.c
+//
+// Testcase for C library memcpy()
+//
+//=================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): ctarpy, jlarmour
+// Contributors:
+// Date: 2000-04-30
+// Description: Contains testcode for C library memcpy() function
+//
+//
+//####DESCRIPTIONEND####
+
+// INCLUDES
+
+#include <pkgconf/isoinfra.h>
+#include <string.h>
+#include <cyg/infra/testcase.h>
+
+// FUNCTIONS
+
+// Functions to avoid having to use libc strings
+
+static int my_strlen(const char *s)
+{
+ const char *ptr;
+
+ ptr = s;
+ for ( ptr=s ; *ptr != '\0' ; ptr++ )
+ ;
+
+ return (int)(ptr-s);
+} // my_strlen()
+
+
+static int my_strcmp(const char *s1, const char *s2)
+{
+ for ( ; *s1 == *s2 ; s1++,s2++ )
+ {
+ if ( *s1 == '\0' )
+ break;
+ } // for
+
+ return (*s1 - *s2);
+} // my_strcmp()
+
+
+static char *my_strcpy(char *s1, const char *s2)
+{
+ while (*s2 != '\0') {
+ *(s1++) = *(s2++);
+ }
+ *s1 = '\0';
+
+ return s1;
+} // my_strcpy()
+
+
+#if CYGINT_ISO_MAIN_STARTUP
+int main( int argc, char *argv[] )
+#else
+void cyg_user_start(void)
+#endif
+{
+ char x[300];
+ char y[300];
+ void *ret, *ptr1, *ptr2;
+ char *c_ret;
+
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for C library "
+ "memcpy() function");
+ CYG_TEST_INFO("This testcase provides simple basic tests");
+
+ // Check 1
+ ptr1 = x;
+ ptr2 = y;
+ my_strcpy(x, "Great shot kid! That was one in a million!");
+ ret = memcpy(ptr2, ptr1, my_strlen(x) + 1);
+ CYG_TEST_PASS_FAIL( (my_strcmp(x, ptr2)==0), "Simple copy" );
+
+ // Check return value
+ CYG_TEST_PASS_FAIL( (my_strcmp(ret, ptr2)==0), "Simple copy return value");
+
+
+ // Check 2
+ ptr1 = x;
+ ptr2 = y;
+ my_strcpy(x, "");
+ my_strcpy(y, "xxxx"); // Bogus val to get overwritten
+ ret = memcpy(ptr2, ptr1, 1);
+ c_ret = ret;
+ if ((*c_ret == '\0') && (y[0] == '\0') && (y[1] == 'x'))
+ CYG_TEST_PASS("Simple copy with boundary check worked");
+ else
+ CYG_TEST_FAIL("Simple copy with boundary check failed");
+
+ // Check 3
+ ptr1 = x;
+ ptr2 = y;
+ my_strcpy(x, "xxxx");
+ my_strcpy(y, "yyyy");
+ ret = memcpy(ptr1, ptr2, 0);
+ c_ret = ret;
+ if ((*c_ret =='x') && (x[0] == 'x'))
+ CYG_TEST_PASS("Simple copy with size=0 worked");
+ else
+ CYG_TEST_FAIL("Simple copy with size=0 failed");
+
+// CYG_TEST_NA("Testing is not applicable to this configuration");
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for C library "
+ "memcpy() function");
+} // main()
+
+
+// EOF memcpy1.c
diff --git a/ecos/packages/language/c/libc/string/current/tests/memcpy2.c b/ecos/packages/language/c/libc/string/current/tests/memcpy2.c
new file mode 100644
index 0000000..ab9f2ab
--- /dev/null
+++ b/ecos/packages/language/c/libc/string/current/tests/memcpy2.c
@@ -0,0 +1,142 @@
+//=================================================================
+//
+// memcpy2.c
+//
+// Testcase for C library memcpy()
+//
+//=================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): ctarpy, jlarmour
+// Contributors:
+// Date: 2000-04-30
+// Description: Contains testcode for C library memcpy() function
+//
+//
+//####DESCRIPTIONEND####
+
+// INCLUDES
+
+#include <pkgconf/isoinfra.h>
+#include <string.h>
+#include <cyg/infra/testcase.h>
+
+// CONSTANTS
+
+#define NUM_ROBUSTNESS_RUNS 300
+
+// FUNCTIONS
+
+// Functions to avoid having to use libc strings
+
+static int my_strlen(const char *s)
+{
+ const char *ptr;
+
+ ptr = s;
+ for ( ptr=s ; *ptr != '\0' ; ptr++ )
+ ;
+
+ return (int)(ptr-s);
+} // my_strlen()
+
+
+static int my_strcmp(const char *s1, const char *s2)
+{
+ for ( ; *s1 == *s2 ; s1++,s2++ )
+ {
+ if ( *s1 == '\0' )
+ break;
+ } // for
+
+ return (*s1 - *s2);
+} // my_strcmp()
+
+
+static char *my_strcpy(char *s1, const char *s2)
+{
+ while (*s2 != '\0') {
+ *(s1++) = *(s2++);
+ }
+ *s1 = '\0';
+
+ return s1;
+} // my_strcpy()
+
+
+#if CYGINT_ISO_MAIN_STARTUP
+int main( int argc, char *argv[] )
+#else
+void cyg_user_start(void)
+#endif
+{
+ char x[300];
+ char y[300];
+ void *ret, *ptr1, *ptr2;
+ char *c_ret;
+ int ctr;
+ int fail;
+
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for C library "
+ "memcpy() function");
+ CYG_TEST_INFO("This testcase tests robustness, and may take some time");
+
+
+ fail = 0;
+ for (ctr = 0; ctr < NUM_ROBUSTNESS_RUNS; ctr++) {
+ my_strcpy(x, "in the land of Mordor");
+ my_strcpy(y, " ");
+ ptr1 = x;
+ ptr2 = y;
+ ret = memcpy(ptr2, ptr1, my_strlen(x) + 1);
+ c_ret = ret;
+ if ((my_strcmp(y, x) != 0) || (my_strcmp(c_ret, x)!=0)) {
+ fail = 1;
+ break;
+ }
+ }
+
+ CYG_TEST_PASS_FAIL( (fail == 0), "Robustness test");
+
+// CYG_TEST_NA("Testing is not applicable to this configuration");
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for C library "
+ "memcpy() function");
+} // main()
+
+
+// EOF memcpy2.c
diff --git a/ecos/packages/language/c/libc/string/current/tests/memmove1.c b/ecos/packages/language/c/libc/string/current/tests/memmove1.c
new file mode 100644
index 0000000..5ce32f8
--- /dev/null
+++ b/ecos/packages/language/c/libc/string/current/tests/memmove1.c
@@ -0,0 +1,175 @@
+//=================================================================
+//
+// memmove1.c
+//
+// Testcase for C library memmove()
+//
+//=================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): ctarpy, jlarmour
+// Contributors:
+// Date: 2000-04-30
+// Description: Contains testcode for C library memmove() function
+//
+//
+//####DESCRIPTIONEND####
+
+// INCLUDES
+
+#include <pkgconf/isoinfra.h>
+#include <string.h>
+#include <cyg/infra/testcase.h>
+
+// FUNCTIONS
+
+// Functions to avoid having to use libc strings
+
+static int my_strlen(const char *s)
+{
+ const char *ptr;
+
+ ptr = s;
+ for ( ptr=s ; *ptr != '\0' ; ptr++ )
+ ;
+
+ return (int)(ptr-s);
+} // my_strlen()
+
+
+static int my_strcmp(const char *s1, const char *s2)
+{
+ for ( ; *s1 == *s2 ; s1++,s2++ )
+ {
+ if ( *s1 == '\0' )
+ break;
+ } // for
+
+ return (*s1 - *s2);
+} // my_strcmp()
+
+
+static char *my_strcpy(char *s1, const char *s2)
+{
+ while (*s2 != '\0') {
+ *(s1++) = *(s2++);
+ }
+ *s1 = '\0';
+
+ return s1;
+} // my_strcpy()
+
+#if CYGINT_ISO_MAIN_STARTUP
+int main( int argc, char *argv[] )
+#else
+void cyg_user_start(void)
+#endif
+{
+ char x[300];
+ char y[300];
+ void *ret, *ptr1, *ptr2;
+ char *c_ret;
+
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for C library "
+ "memmove() function");
+ CYG_TEST_INFO("This testcase provides simple basic tests");
+
+ // Check 1
+ ptr1 = x;
+ ptr2 = y;
+ my_strcpy(x, "Great shot kid! That was one in a million!");
+ ret = memmove(ptr2, ptr1, my_strlen(x) + 1);
+ CYG_TEST_PASS_FAIL( (my_strcmp(x, ptr2)==0), "Simple copy" );
+
+ // Check return value
+ CYG_TEST_PASS_FAIL( (my_strcmp(ret, ptr2)==0), "Simple copy return value");
+
+
+ // Check 2
+ ptr1 = x;
+ ptr2 = y;
+ my_strcpy(x, "");
+ my_strcpy(y, "xxxx"); // Bogus val to get overwritten
+ ret = memmove(ptr2, ptr1, 1);
+ c_ret = ret;
+ if ((*c_ret == '\0') && (y[0] == '\0') && (y[1] == 'x'))
+ CYG_TEST_PASS("Simple copy with boundary check worked");
+ else
+ CYG_TEST_FAIL("Simple copy with boundary check failed");
+
+ // Check 3
+ ptr1 = x;
+ ptr2 = y;
+ my_strcpy(x, "xxxx");
+ my_strcpy(y, "yyyy");
+ ret = memmove(ptr1, ptr2, 0);
+ c_ret = ret;
+ if ((*c_ret =='x') && (x[0] == 'x'))
+ CYG_TEST_PASS("Simple copy with size=0 worked");
+ else
+ CYG_TEST_FAIL("Simple copy with size=0 failed");
+
+ // Check 4
+ ptr1 = &x[0];
+ ptr2 = &x[1];
+ my_strcpy(x, "abcd");
+ ret = memmove(ptr1, ptr2, 4);
+ c_ret = ret;
+ if ( (c_ret==x) && (my_strcmp(x, "bcd")==0) )
+ CYG_TEST_PASS("Overlapping copy #1 worked");
+ else
+ CYG_TEST_FAIL("Overlapping copy #1 worked");
+
+ // Check 5
+ ptr1 = &x[0];
+ ptr2 = &x[4];
+ my_strcpy(x, "abcdefghijk");
+ ret = memmove(ptr1, ptr2, 6);
+ c_ret = ret;
+ if ( (c_ret==x) && (my_strcmp(x, "efghijghijk")==0) )
+ CYG_TEST_PASS("Overlapping copy #2 worked");
+ else
+ CYG_TEST_FAIL("Overlapping copy #2 worked");
+
+// CYG_TEST_NA("Testing is not applicable to this configuration");
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for C library "
+ "memmove() function");
+} // main()
+
+
+// EOF memmove1.c
diff --git a/ecos/packages/language/c/libc/string/current/tests/memmove2.c b/ecos/packages/language/c/libc/string/current/tests/memmove2.c
new file mode 100644
index 0000000..5e01bdd
--- /dev/null
+++ b/ecos/packages/language/c/libc/string/current/tests/memmove2.c
@@ -0,0 +1,141 @@
+//=================================================================
+//
+// memmove2.c
+//
+// Testcase for C library memmove()
+//
+//=================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): ctarpy, jlarmour
+// Contributors:
+// Date: 2000-04-30
+// Description: Contains testcode for C library memmove() function
+//
+//
+//####DESCRIPTIONEND####
+
+// INCLUDES
+
+#include <pkgconf/isoinfra.h>
+#include <string.h>
+#include <cyg/infra/testcase.h>
+
+// CONSTANTS
+
+#define NUM_ROBUSTNESS_RUNS 300
+
+// FUNCTIONS
+
+// Functions to avoid having to use libc strings
+
+static int my_strlen(const char *s)
+{
+ const char *ptr;
+
+ ptr = s;
+ for ( ptr=s ; *ptr != '\0' ; ptr++ )
+ ;
+
+ return (int)(ptr-s);
+} // my_strlen()
+
+
+static int my_strcmp(const char *s1, const char *s2)
+{
+ for ( ; *s1 == *s2 ; s1++,s2++ )
+ {
+ if ( *s1 == '\0' )
+ break;
+ } // for
+
+ return (*s1 - *s2);
+} // my_strcmp()
+
+
+static char *my_strcpy(char *s1, const char *s2)
+{
+ while (*s2 != '\0') {
+ *(s1++) = *(s2++);
+ }
+ *s1 = '\0';
+
+ return s1;
+} // my_strcpy()
+
+
+#if CYGINT_ISO_MAIN_STARTUP
+int main( int argc, char *argv[] )
+#else
+void cyg_user_start(void)
+#endif
+{
+ char x[300];
+ char y[300];
+ void *ret, *ptr1, *ptr2;
+ char *c_ret;
+ int ctr;
+ int fail;
+
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for C library "
+ "memmove() function");
+ CYG_TEST_INFO("This testcase tests robustness, and may take some time");
+
+ fail = 0;
+ for (ctr = 0; ctr < NUM_ROBUSTNESS_RUNS; ctr++) {
+ my_strcpy(x, "in the land of Mordor");
+ my_strcpy(y, " ");
+ ptr1 = x;
+ ptr2 = y;
+ ret = memmove(ptr2, ptr1, my_strlen(x) + 1);
+ c_ret = ret;
+ if ((my_strcmp(y, x) != 0) || (my_strcmp(c_ret, x)!=0)) {
+ fail = 1;
+ break;
+ }
+ }
+
+ CYG_TEST_PASS_FAIL( (fail == 0), "Robustness test");
+
+// CYG_TEST_NA("Testing is not applicable to this configuration");
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for C library "
+ "memmove() function");
+} // main()
+
+
+// EOF memmove2.c
diff --git a/ecos/packages/language/c/libc/string/current/tests/memset.c b/ecos/packages/language/c/libc/string/current/tests/memset.c
new file mode 100644
index 0000000..13f5065
--- /dev/null
+++ b/ecos/packages/language/c/libc/string/current/tests/memset.c
@@ -0,0 +1,122 @@
+//=================================================================
+//
+// memset.c
+//
+// Testcase for C library memset() function
+//
+//=================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): ctarpy, jlarmour
+// Contributors:
+// Date: 2000-04-30
+// Description: Contains testcode for C library memset() function
+//
+//
+//####DESCRIPTIONEND####
+
+// INCLUDES
+
+#include <pkgconf/isoinfra.h>
+#include <string.h>
+#include <cyg/infra/testcase.h>
+
+
+// FUNCTIONS
+
+// Functions to avoid having to use libc strings
+
+static int my_strcmp(const char *s1, const char *s2)
+{
+ for ( ; *s1 == *s2 ; s1++,s2++ )
+ {
+ if ( *s1 == '\0' )
+ break;
+ } // for
+
+ return (*s1 - *s2);
+} // my_strcmp()
+
+
+static char *my_strcpy(char *s1, const char *s2)
+{
+ while (*s2 != '\0') {
+ *(s1++) = *(s2++);
+ }
+ *s1 = '\0';
+
+ return s1;
+} // my_strcpy()
+
+
+#if CYGINT_ISO_MAIN_STARTUP
+int main( int argc, char *argv[] )
+#else
+void cyg_user_start(void)
+#endif
+{
+ char x[300];
+ char *ret;
+
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for C library "
+ "memset() function");
+ CYG_TEST_INFO("This testcase provides simple basic tests");
+
+ // Check 1
+ my_strcpy(x, " ");
+ ret = memset(x, 'X', 5);
+ if ((my_strcmp(x, "XXXXX ") == 0) && (ret == x))
+ CYG_TEST_PASS("Simple memset");
+ else
+ CYG_TEST_FAIL("Simple memset");
+
+ // Check 2
+ my_strcpy(x, "XXXXX ");
+ ret = memset(x, 'Y', 0);
+ if ((my_strcmp(x, "XXXXX ") == 0) && (ret == x))
+ CYG_TEST_PASS("Boundary case of 0 bytes");
+ else
+ CYG_TEST_FAIL("Boundary case of 0 bytes");
+
+// CYG_TEST_NA("Testing is not applicable to this configuration");
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for C library "
+ "memset() function");
+
+} // main()
+
+// EOF memset.c
diff --git a/ecos/packages/language/c/libc/string/current/tests/strcat1.c b/ecos/packages/language/c/libc/string/current/tests/strcat1.c
new file mode 100644
index 0000000..335528f
--- /dev/null
+++ b/ecos/packages/language/c/libc/string/current/tests/strcat1.c
@@ -0,0 +1,144 @@
+//=================================================================
+//
+// strcat1.c
+//
+// Testcase for C library strcat()
+//
+//=================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): ctarpy, jlarmour
+// Contributors:
+// Date: 2000-04-30
+// Description: Contains testcode for C library strcat() function
+//
+//
+//####DESCRIPTIONEND####
+
+// INCLUDES
+
+#include <pkgconf/isoinfra.h>
+#include <string.h>
+#include <cyg/infra/testcase.h>
+
+
+// FUNCTIONS
+
+// Functions to avoid having to use libc strings
+
+static int my_strcmp(const char *s1, const char *s2)
+{
+ for ( ; *s1 == *s2 ; s1++,s2++ )
+ {
+ if ( *s1 == '\0' )
+ break;
+ } // for
+
+ return (*s1 - *s2);
+} // my_strcmp()
+
+
+static char *my_strcpy(char *s1, const char *s2)
+{
+ while (*s2 != '\0') {
+ *(s1++) = *(s2++);
+ }
+ *s1 = '\0';
+
+ return s1;
+} // my_strcpy()
+
+
+#if CYGINT_ISO_MAIN_STARTUP
+int main( int argc, char *argv[] )
+#else
+void cyg_user_start(void)
+#endif
+{
+ char x[300];
+ char y[300];
+ char *ret;
+
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for C library "
+ "strcat() function");
+ CYG_TEST_INFO("This testcase provides simple basic tests");
+
+ // Check 1
+ my_strcpy(x, "One ring to rule them all.");
+ my_strcpy(y, "One ring to find them.");
+ ret = strcat(x, y);
+ if ( my_strcmp(x, "One ring to rule them all.One ring to find them.")==0 )
+ CYG_TEST_PASS("Simple concatenation");
+ else
+ CYG_TEST_FAIL("Simple concatenation");
+ // Check return val
+ CYG_TEST_PASS_FAIL( ( ret == x ), "Simple concatenation return value" );
+
+
+ // Check 2
+ my_strcpy(x, "One ring to bring them all,");
+ my_strcpy(y, "");
+ ret = strcat(x, y);
+ if ( my_strcmp(x, "One ring to bring them all,")==0 )
+ CYG_TEST_PASS("Concatenation of empty string");
+ else
+ CYG_TEST_FAIL("Concatenation of empty string");
+ // Check return val
+ CYG_TEST_PASS_FAIL( ( ret == x ),
+ "Concatenation of empty string return value" );
+
+
+ // Check 3
+ my_strcpy(x, "and in the darkness bind them");
+ my_strcpy(y, "");
+ ret = strcat(y, x);
+ if ( my_strcmp(x, "and in the darkness bind them")==0 )
+ CYG_TEST_PASS("Concatenation to empty string");
+ else
+ CYG_TEST_FAIL("Concatenation to empty string");
+ // Check return val
+ CYG_TEST_PASS_FAIL( ( ret == y ),
+ "Concatenation to empty string return value" );
+
+// CYG_TEST_NA("Testing is not applicable to this configuration");
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for C library "
+ "strcat() function");
+} // main()
+
+
+// EOF strcat1.c
diff --git a/ecos/packages/language/c/libc/string/current/tests/strcat2.c b/ecos/packages/language/c/libc/string/current/tests/strcat2.c
new file mode 100644
index 0000000..b553cd8
--- /dev/null
+++ b/ecos/packages/language/c/libc/string/current/tests/strcat2.c
@@ -0,0 +1,132 @@
+//=================================================================
+//
+// strcat2.c
+//
+// Testcase for C library strcat()
+//
+//=================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): ctarpy, jlarmour
+// Contributors:
+// Date: 2000-04-30
+// Description: Contains testcode for C library strcat() function
+//
+//
+//####DESCRIPTIONEND####
+
+// INCLUDES
+
+#include <pkgconf/isoinfra.h>
+#include <string.h>
+#include <cyg/infra/testcase.h>
+
+// CONSTANTS
+
+#define NUM_ROBUSTNESS_RUNS 300
+
+// FUNCTIONS
+
+// Functions to avoid having to use libc strings
+
+static int my_strcmp(const char *s1, const char *s2)
+{
+ for ( ; *s1 == *s2 ; s1++,s2++ )
+ {
+ if ( *s1 == '\0' )
+ break;
+ } // for
+
+ return (*s1 - *s2);
+} // my_strcmp()
+
+
+static char *my_strcpy(char *s1, const char *s2)
+{
+ while (*s2 != '\0') {
+ *(s1++) = *(s2++);
+ }
+ *s1 = '\0';
+
+ return s1;
+} // my_strcpy()
+
+
+#if CYGINT_ISO_MAIN_STARTUP
+int main( int argc, char *argv[] )
+#else
+void cyg_user_start(void)
+#endif
+{
+ char x[300];
+ char y[300];
+ char *ret;
+ int ctr;
+ int fail;
+
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for C library "
+ "strcat() function");
+ CYG_TEST_INFO("This testcase tests robustness, and may take some time");
+
+ fail = 0;
+ for (ctr = 0; ctr < NUM_ROBUSTNESS_RUNS; ctr++)
+ {
+ my_strcpy(x, "in the land of Mordor, ");
+ my_strcpy(y, "where the shadows lie.");
+ ret = strcat(x, y);
+ if ((my_strcmp(x, "in the land of Mordor, where the shadows lie.")!=0))
+ {
+ fail = 1;
+ break;
+ } // if
+ if (ret != x)
+ {
+ fail = 1;
+ break;
+ } // if
+ }
+ CYG_TEST_PASS_FAIL( (fail == 0), "Robustness test passed" );
+
+// CYG_TEST_NA("Testing is not applicable to this configuration");
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for C library "
+ "strcat() function");
+
+} // main()
+
+
+// EOF strcat2.c
diff --git a/ecos/packages/language/c/libc/string/current/tests/strchr.c b/ecos/packages/language/c/libc/string/current/tests/strchr.c
new file mode 100644
index 0000000..123609e
--- /dev/null
+++ b/ecos/packages/language/c/libc/string/current/tests/strchr.c
@@ -0,0 +1,113 @@
+//=================================================================
+//
+// strchr.c
+//
+// Testcase for C library strchr()
+//
+//=================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): ctarpy, jlarmour
+// Contributors:
+// Date: 2000-04-30
+// Description: Contains testcode for C library strchr() function
+//
+//
+//####DESCRIPTIONEND####
+
+// INCLUDES
+
+#include <pkgconf/isoinfra.h>
+#include <string.h>
+#include <cyg/infra/testcase.h>
+
+
+// FUNCTIONS
+
+// Functions to avoid having to use libc strings
+
+static int my_strcmp(const char *s1, const char *s2)
+{
+ for ( ; *s1 == *s2 ; s1++,s2++ )
+ {
+ if ( *s1 == '\0' )
+ break;
+ } // for
+
+ return (*s1 - *s2);
+} // my_strcmp()
+
+
+#if CYGINT_ISO_MAIN_STARTUP
+int main( int argc, char *argv[] )
+#else
+void cyg_user_start(void)
+#endif
+{
+ char x[] = "Your feeble skills are no match for the power of "
+ "the dark side!";
+ char empty_str[] = "";
+ char *ret;
+
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for C library "
+ "strchr() function");
+
+ // Check 1
+ ret = strchr(x, (int)'k');
+ CYG_TEST_PASS_FAIL( (my_strcmp(ret, x+13) == 0), "Simple test 1" );
+
+ // Check 2
+ ret = strchr(x, (int)'p');
+ CYG_TEST_PASS_FAIL( (my_strcmp(ret, x+40) == 0), "Simple test 2" );
+
+ // Check 3
+ ret = strchr(x, (int)'z');
+ CYG_TEST_PASS_FAIL( (ret == NULL), "Simple test 3" );
+
+ // Check 4 (boundary condition)
+ ret = strchr(x, (int)'\0');
+ CYG_TEST_PASS_FAIL( ret == (x+sizeof(x)-1), "Boundary test 1" );
+
+ // Check 5 (boundary condition)
+ ret = strchr( empty_str, (int)'\0' );
+ CYG_TEST_PASS_FAIL( ret == empty_str, "Boundary test 2" );
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for C library "
+ "strchr() function");
+} // main()
+
+// EOF strchr.c
diff --git a/ecos/packages/language/c/libc/string/current/tests/strcmp1.c b/ecos/packages/language/c/libc/string/current/tests/strcmp1.c
new file mode 100644
index 0000000..1a303ea
--- /dev/null
+++ b/ecos/packages/language/c/libc/string/current/tests/strcmp1.c
@@ -0,0 +1,134 @@
+//=================================================================
+//
+// strcmp1.c
+//
+// Testcase for C library strcmp()
+//
+//=================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): ctarpy, jlarmour
+// Contributors:
+// Date: 2000-04-30
+// Description: Contains testcode for C library strcmp() function
+//
+//
+//####DESCRIPTIONEND####
+
+// INCLUDES
+
+#include <pkgconf/isoinfra.h>
+#include <string.h>
+#include <cyg/infra/testcase.h>
+
+// FUNCTIONS
+
+// Functions to avoid having to use libc strings
+
+
+static char *my_strcpy(char *s1, const char *s2)
+{
+ while (*s2 != '\0') {
+ *(s1++) = *(s2++);
+ }
+ *s1 = '\0';
+
+ return s1;
+} // my_strcpy()
+
+#if CYGINT_ISO_MAIN_STARTUP
+int main( int argc, char *argv[] )
+#else
+void cyg_user_start(void)
+#endif
+{
+ char x[300];
+ char y[300];
+
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for C library "
+ "strcmp() function");
+ CYG_TEST_INFO("This testcase provides simple basic tests");
+
+ // Check 1
+ my_strcpy(x, "I have become, comfortably numb");
+ my_strcpy(y, "I have become, comfortably numb");
+ CYG_TEST_PASS_FAIL( (strcmp(x, y) == 0), "Simple compare");
+
+
+ // Check 2
+ my_strcpy(x, "");
+ my_strcpy(y, "");
+ CYG_TEST_PASS_FAIL( (strcmp(x, y) == 0), "Simple empty string compare");
+
+
+ // Check 3
+ my_strcpy(x, "..shall snuff it. And the Lord did grin");
+ my_strcpy(y, "..shall snuff it. And the Lord did grio");
+ CYG_TEST_PASS_FAIL( (strcmp(x, y) < 0),
+ "Memory less than #1" );
+
+
+ // Check 4
+ my_strcpy(x, "A reading from the Book of Armaments, Chapter 4, "
+ "Verses 16 to 20:");
+ my_strcpy(y, "Bless this, O Lord, that with it thou mayst blow thine "
+ "enemies to tiny bits, in thy mercy.");
+ CYG_TEST_PASS_FAIL( (strcmp(x, y) < 0),
+ "Memory less than #2");
+
+ // Check 5
+ my_strcpy(x, "Lobeth this thy holy hand grenade at thy foe");
+ my_strcpy(y, "Lobeth this thy holy hand grenade at thy fod");
+ CYG_TEST_PASS_FAIL( (strcmp(x, y) > 0),
+ "Memory greater than #1" );
+
+
+ // Check 6
+ my_strcpy(y, "Three shall be the number of the counting and the");
+ my_strcpy(x, "number of the counting shall be three");
+ CYG_TEST_PASS_FAIL( (strcmp(x, y) > 0),
+ "Memory greater than #2" );
+
+// CYG_TEST_NA("Testing is not applicable to this configuration");
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for C library "
+ "strcmp() function");
+} // main()
+
+
+
+// EOF strcmp1.c
diff --git a/ecos/packages/language/c/libc/string/current/tests/strcmp2.c b/ecos/packages/language/c/libc/string/current/tests/strcmp2.c
new file mode 100644
index 0000000..2944068
--- /dev/null
+++ b/ecos/packages/language/c/libc/string/current/tests/strcmp2.c
@@ -0,0 +1,121 @@
+//=================================================================
+//
+// strcmp2.c
+//
+// Testcase for C library strcmp()
+//
+//=================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): ctarpy, jlarmour
+// Contributors:
+// Date: 2000-04-30
+// Description: Contains testcode for C library strcmp() function
+//
+//
+//####DESCRIPTIONEND####
+
+// INCLUDES
+
+#include <pkgconf/isoinfra.h>
+#include <string.h>
+#include <cyg/infra/testcase.h>
+
+// CONSTANTS
+
+#define NUM_ROBUSTNESS_RUNS 300
+
+// FUNCTIONS
+
+// Functions to avoid having to use libc strings
+
+static char *my_strcpy(char *s1, const char *s2)
+{
+ while (*s2 != '\0') {
+ *(s1++) = *(s2++);
+ }
+ *s1 = '\0';
+
+ return s1;
+} // my_strcpy()
+
+
+#if CYGINT_ISO_MAIN_STARTUP
+int main( int argc, char *argv[] )
+#else
+void cyg_user_start(void)
+#endif
+{
+ char x[300];
+ char y[300];
+ char z[300];
+ int ctr;
+ int fail;
+
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for C library "
+ "strcmp() function");
+ CYG_TEST_INFO("This testcase tests robustness, and may take some time");
+
+ fail = 0;
+ for (ctr = 0; ctr < NUM_ROBUSTNESS_RUNS; ctr++)
+ {
+ my_strcpy(x, "Spare a talent for an old ex-leper");
+ my_strcpy(y, "Spare a talent for an old ex-leper");
+ my_strcpy(z, "I was hopping along, when suddenly he");
+
+ if (strcmp(x, y) != 0)
+ {
+ fail = 1;
+ break;
+ }
+ if (strcmp(x, z) == 0)
+ {
+ fail = 1;
+ break;
+ } // if
+ } // for
+
+ CYG_TEST_PASS_FAIL( (fail==0), "Robustness test");
+
+// CYG_TEST_NA("Testing is not applicable to this configuration");
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for C library "
+ "strcmp() function");
+} // main()
+
+
+// EOF strcmp2.c
diff --git a/ecos/packages/language/c/libc/string/current/tests/strcoll1.c b/ecos/packages/language/c/libc/string/current/tests/strcoll1.c
new file mode 100644
index 0000000..1767a67
--- /dev/null
+++ b/ecos/packages/language/c/libc/string/current/tests/strcoll1.c
@@ -0,0 +1,136 @@
+//=================================================================
+//
+// strcoll1.c
+//
+// Testcase for C library strcoll()
+//
+//=================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): ctarpy, jlarmour
+// Contributors:
+// Date: 2000-04-30
+// Description: Contains testcode for C library strcoll() function
+//
+//
+//####DESCRIPTIONEND####
+
+// INCLUDES
+
+#include <pkgconf/isoinfra.h>
+#include <string.h>
+#include <cyg/infra/testcase.h>
+
+
+// FUNCTIONS
+
+// Functions to avoid having to use libc strings
+
+
+static char *my_strcpy(char *s1, const char *s2)
+{
+ while (*s2 != '\0') {
+ *(s1++) = *(s2++);
+ }
+ *s1 = '\0';
+
+ return s1;
+} // my_strcpy()
+
+
+#if CYGINT_ISO_MAIN_STARTUP
+int main( int argc, char *argv[] )
+#else
+void cyg_user_start(void)
+#endif
+{
+ char x[300];
+ char y[300];
+
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for C library "
+ "strcoll() function");
+ CYG_TEST_INFO("This testcase provides simple basic tests");
+
+ // Check 1
+ my_strcpy(x, "I have become, comfortably numb");
+ my_strcpy(y, "I have become, comfortably numb");
+ CYG_TEST_PASS_FAIL( (strcoll(x, y) == 0), "Simple compare");
+
+
+ // Check 2
+ my_strcpy(x, "");
+ my_strcpy(y, "");
+ CYG_TEST_PASS_FAIL( (strcoll(x, y) == 0), "Simple empty string compare");
+
+
+ // Check 3
+ my_strcpy(x, "..shall snuff it. And the Lord did grin");
+ my_strcpy(y, "..shall snuff it. And the Lord did grio");
+ CYG_TEST_PASS_FAIL( (strcoll(x, y) < 0),
+ "Memory less than #1" );
+
+
+ // Check 4
+ my_strcpy(x, "A reading from the Book of Armaments, Chapter 4, "
+ "Verses 16 to 20:");
+ my_strcpy(y, "Bless this, O Lord, that with it thou mayst blow thine "
+ "enemies to tiny bits, in thy mercy.");
+ CYG_TEST_PASS_FAIL( (strcoll(x, y) < 0),
+ "Memory less than #2");
+
+ // Check 5
+ my_strcpy(x, "Lobeth this thy holy hand grenade at thy foe");
+ my_strcpy(y, "Lobeth this thy holy hand grenade at thy fod");
+ CYG_TEST_PASS_FAIL( (strcoll(x, y) > 0),
+ "Memory greater than #1" );
+
+
+ // Check 6
+ my_strcpy(y, "Three shall be the number of the counting and the");
+ my_strcpy(x, "number of the counting shall be three");
+ CYG_TEST_PASS_FAIL( (strcoll(x, y) > 0),
+ "Memory greater than #2" );
+
+// CYG_TEST_NA("Testing is not applicable to this configuration");
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for C library "
+ "strcoll() function");
+} // main()
+
+
+
+// EOF strcoll1.c
diff --git a/ecos/packages/language/c/libc/string/current/tests/strcoll2.c b/ecos/packages/language/c/libc/string/current/tests/strcoll2.c
new file mode 100644
index 0000000..96c11d8
--- /dev/null
+++ b/ecos/packages/language/c/libc/string/current/tests/strcoll2.c
@@ -0,0 +1,119 @@
+//=================================================================
+//
+// strcoll2.c
+//
+// Testcase for C library strcoll()
+//
+//=================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): ctarpy, jlarmour
+// Contributors:
+// Date: 2000-04-30
+// Description: Contains testcode for C library strcoll() function
+//
+//
+//####DESCRIPTIONEND####
+
+// INCLUDES
+
+#include <pkgconf/isoinfra.h>
+#include <string.h>
+#include <cyg/infra/testcase.h>
+
+// CONSTANTS
+
+#define NUM_ROBUSTNESS_RUNS 300
+
+// FUNCTIONS
+
+// Functions to avoid having to use libc strings
+
+static char *my_strcpy(char *s1, const char *s2)
+{
+ while (*s2 != '\0') {
+ *(s1++) = *(s2++);
+ }
+ *s1 = '\0';
+
+ return s1;
+} // my_strcpy()
+
+
+#if CYGINT_ISO_MAIN_STARTUP
+int main( int argc, char *argv[] )
+#else
+void cyg_user_start(void)
+#endif
+{
+ char x[300];
+ char y[300];
+ char z[300];
+ int ctr;
+ int fail;
+
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for C library "
+ "strcoll() function");
+ CYG_TEST_INFO("This testcase tests robustness, and may take some time");
+
+ fail = 0;
+ for (ctr = 0; ctr < NUM_ROBUSTNESS_RUNS; ctr++)
+ {
+ my_strcpy(x, "Spare a talent for an old ex-leper");
+ my_strcpy(y, "Spare a talent for an old ex-leper");
+ my_strcpy(z, "I was hopping along, when suddenly he");
+
+ if (strcoll(x, y) != 0)
+ {
+ fail = 1;
+ break;
+ }
+ if (strcoll(x, z) == 0)
+ {
+ fail = 1;
+ break;
+ } // if
+ } // for
+
+ CYG_TEST_PASS_FAIL( (fail==0), "Robustness test");
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for C library "
+ "strcoll() function");
+} // main()
+
+
+// EOF strcoll2.c
diff --git a/ecos/packages/language/c/libc/string/current/tests/strcpy1.c b/ecos/packages/language/c/libc/string/current/tests/strcpy1.c
new file mode 100644
index 0000000..766900e
--- /dev/null
+++ b/ecos/packages/language/c/libc/string/current/tests/strcpy1.c
@@ -0,0 +1,123 @@
+//=================================================================
+//
+// strcpy1.c
+//
+// Testcase for C library strcpy()
+//
+//=================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): ctarpy, jlarmour
+// Contributors:
+// Date: 2000-04-30
+// Description: Contains testcode for C library strcpy() function
+//
+//
+//####DESCRIPTIONEND####
+
+// INCLUDES
+
+#include <pkgconf/isoinfra.h>
+#include <string.h>
+#include <cyg/infra/testcase.h>
+
+
+// FUNCTIONS
+
+// Functions to avoid having to use libc strings
+
+static int my_strcmp(const char *s1, const char *s2)
+{
+ for ( ; *s1 == *s2 ; s1++,s2++ )
+ {
+ if ( *s1 == '\0' )
+ break;
+ } // for
+
+ return (*s1 - *s2);
+} // my_strcmp()
+
+
+static char *my_strcpy(char *s1, const char *s2)
+{
+ while (*s2 != '\0') {
+ *(s1++) = *(s2++);
+ }
+ *s1 = '\0';
+
+ return s1;
+} // my_strcpy()
+
+
+#if CYGINT_ISO_MAIN_STARTUP
+int main( int argc, char *argv[] )
+#else
+void cyg_user_start(void)
+#endif
+{
+ char x[300];
+ char y[300];
+ char *ret;
+
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for C library "
+ "strcpy() function");
+ CYG_TEST_INFO("This testcase provides simple basic tests");
+
+ // Check 1
+ my_strcpy(x, "Nine rings for men doomed to die");
+ ret = strcpy(y, "Nine rings for men doomed to die");
+ CYG_TEST_PASS_FAIL( (my_strcmp(x, y) == 0), "Simple copy" );
+ // Check return value
+ CYG_TEST_PASS_FAIL( (y == ret), "Simple copy return value" );
+
+
+ // Check 2
+ my_strcpy(x, "");
+ my_strcpy(y, "Seven rings for the dwarves in their halls of stone");
+ ret = strcpy(y, x);
+ CYG_TEST_PASS_FAIL( (my_strcmp(y, "") == 0), "Copy empty string" );
+ // Check return value
+ CYG_TEST_PASS_FAIL( (y == ret), "Copy empty string return value" );
+
+// CYG_TEST_NA("Testing is not applicable to this configuration");
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for C library "
+ "strcpy() function");
+
+} // main()
+
+// EOF strcpy1.c
diff --git a/ecos/packages/language/c/libc/string/current/tests/strcpy2.c b/ecos/packages/language/c/libc/string/current/tests/strcpy2.c
new file mode 100644
index 0000000..dc91b6b
--- /dev/null
+++ b/ecos/packages/language/c/libc/string/current/tests/strcpy2.c
@@ -0,0 +1,127 @@
+//=================================================================
+//
+// strcpy2.c
+//
+// Testcase for C library strcpy()
+//
+//=================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): ctarpy, jlarmour
+// Contributors:
+// Date: 2000-04-30
+// Description: Contains testcode for C library strcpy() function
+//
+//
+//####DESCRIPTIONEND####
+
+// INCLUDES
+
+#include <pkgconf/isoinfra.h>
+#include <string.h>
+#include <cyg/infra/testcase.h>
+
+// CONSTANTS
+
+#define NUM_ROBUSTNESS_RUNS 300
+
+// FUNCTIONS
+
+
+// Functions to avoid having to use libc strings
+
+static char *my_strcpy(char *s1, const char *s2)
+{
+ while (*s2 != '\0') {
+ *(s1++) = *(s2++);
+ }
+ *s1 = '\0';
+
+ return s1;
+} // my_strcpy()
+
+
+static int my_strcmp(const char *s1, const char *s2)
+{
+ for ( ; *s1 == *s2 ; s1++,s2++ )
+ {
+ if ( *s1 == '\0' )
+ break;
+ } // for
+
+ return (*s1 - *s2);
+} // my_strcmp()
+
+
+#if CYGINT_ISO_MAIN_STARTUP
+int main( int argc, char *argv[] )
+#else
+void cyg_user_start(void)
+#endif
+{
+ char x[300];
+ char y[300];
+ char *ret;
+ int ctr;
+ int fail;
+
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for C library "
+ "strcpy() function");
+ CYG_TEST_INFO("This testcase tests robustness, and may take some time");
+
+ fail = 0;
+ for (ctr = 0; ctr < NUM_ROBUSTNESS_RUNS; ctr++) {
+ my_strcpy(x, "Green plastic watering can, ");
+ my_strcpy(y, "for her fake Chineese rubber plant");
+ ret = strcpy(x, y);
+ if ( (my_strcmp(x, "for her fake Chineese rubber plant") != 0) ||
+ ( ret != x ) )
+ {
+ fail = 1;
+ break;
+ } // if
+ } // for
+ CYG_TEST_PASS_FAIL( (fail == 0), "Robustness test" );
+
+// CYG_TEST_NA("Testing is not applicable to this configuration");
+
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for C library "
+ "strcpy() function");
+} // main()
+
+// EOF strcpy2.c
diff --git a/ecos/packages/language/c/libc/string/current/tests/strcspn.c b/ecos/packages/language/c/libc/string/current/tests/strcspn.c
new file mode 100644
index 0000000..0454ad6
--- /dev/null
+++ b/ecos/packages/language/c/libc/string/current/tests/strcspn.c
@@ -0,0 +1,145 @@
+//=================================================================
+//
+// strcspn.c
+//
+// Testcase for C library strcspn()
+//
+//=================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): ctarpy, jlarmour
+// Contributors:
+// Date: 2000-04-30
+// Description: Contains testcode for C library strcspn() function
+//
+//
+//####DESCRIPTIONEND####
+
+// INCLUDES
+
+#include <pkgconf/isoinfra.h>
+#include <string.h>
+#include <cyg/infra/testcase.h>
+
+
+// FUNCTIONS
+
+// Functions to avoid having to use libc strings
+
+static int my_strlen(const char *s)
+{
+ const char *ptr;
+
+ ptr = s;
+ for ( ptr=s ; *ptr != '\0' ; ptr++ )
+ ;
+
+ return (int)(ptr-s);
+} // my_strlen()
+
+
+static char *my_strcpy(char *s1, const char *s2)
+{
+ while (*s2 != '\0') {
+ *(s1++) = *(s2++);
+ }
+ *s1 = '\0';
+
+ return s1;
+} // my_strcpy()
+
+
+#if CYGINT_ISO_MAIN_STARTUP
+int main( int argc, char *argv[] )
+#else
+void cyg_user_start(void)
+#endif
+{
+ char x[300];
+ char y[300];
+ int ret;
+
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for C library "
+ "strcspn() function");
+ CYG_TEST_INFO("This testcase provides simple basic tests");
+
+ // Check 1
+ my_strcpy(x, "ah blow my nose at you, so-called Arthur king!");
+ my_strcpy(y, "A");
+ ret = strcspn(x, y);
+ CYG_TEST_PASS_FAIL( (ret == 34), "Simple strcspn() for one char" );
+
+
+ // Check 2
+ my_strcpy(x, "Not bad for a little fur ball. You! Stay here.");
+ my_strcpy(y, "fd");
+ ret = strcspn(x, y);
+ CYG_TEST_PASS_FAIL( (ret == 6), "Simple strcspn() for two chars" );
+
+ // Check 3 (boundary condition)
+ my_strcpy(x, "");
+ my_strcpy(y, "zx");
+ ret = strcspn(x, y);
+ CYG_TEST_PASS_FAIL( (ret == 0), "Empty string to search");
+
+
+ // Check 4 (boundary condition)
+ my_strcpy(x, "So, if she weighs the same as a duck, she's made of wood!");
+ my_strcpy(y, "zx");
+ ret = strcspn(x, y);
+ CYG_TEST_PASS_FAIL( (ret == my_strlen(x)), "Characters not in string" );
+
+ // Check 5 (boundary condition)
+ my_strcpy(x, "So, if she weighs the same as a duck, she's made of wood!");
+ my_strcpy(y, "S");
+ ret = strcspn(x, y);
+ CYG_TEST_PASS_FAIL( (ret == 0), "First character of string" );
+
+ // Check 6 (boundary condition)
+ my_strcpy(x, "So, if she weighs the same as a duck, she's made of wood!");
+ my_strcpy(y, "!");
+ ret = strcspn(x, y);
+ CYG_TEST_PASS_FAIL( (ret == (my_strlen(x) - 1)),
+ "Penultimate character of string" );
+
+// CYG_TEST_NA("Testing is not applicable to this configuration");
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for C library "
+ "strcspn() function");
+} // main()
+
+// EOF strcspn.c
diff --git a/ecos/packages/language/c/libc/string/current/tests/strlen.c b/ecos/packages/language/c/libc/string/current/tests/strlen.c
new file mode 100644
index 0000000..d4d672f
--- /dev/null
+++ b/ecos/packages/language/c/libc/string/current/tests/strlen.c
@@ -0,0 +1,89 @@
+//=================================================================
+//
+// strlen.c
+//
+// Testcase for C library strlen()
+//
+//=================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): ctarpy, jlarmour
+// Contributors:
+// Date: 2000-04-30
+// Description: Contains testcode for C library strlen() function
+//
+//
+//####DESCRIPTIONEND####
+
+// INCLUDES
+
+#include <pkgconf/isoinfra.h>
+#include <string.h>
+#include <cyg/infra/testcase.h>
+
+
+// FUNCTIONS
+
+#if CYGINT_ISO_MAIN_STARTUP
+int main( int argc, char *argv[] )
+#else
+void cyg_user_start(void)
+#endif
+{
+ char x[]="";
+ char y[]="The force is strong in this one";
+ char z[]="I told you. We're an anarcho-cynicalist commune";
+
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for C library "
+ "strlen() function");
+ CYG_TEST_INFO("This testcase provides simple basic tests");
+
+ CYG_TEST_PASS_FAIL( (strlen(x) == 0), "strlen(\"\")" );
+
+ CYG_TEST_PASS_FAIL( (strlen(y) == 31), "Simple length check #1" );
+
+ CYG_TEST_PASS_FAIL( (strlen(z) == 47), "Simple length check #2" );
+
+
+// CYG_TEST_NA("Testing is not applicable to this configuration");
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for C library "
+ "strlen() function");
+} // main()
+
+
+// EOF strlen.c
diff --git a/ecos/packages/language/c/libc/string/current/tests/strncat1.c b/ecos/packages/language/c/libc/string/current/tests/strncat1.c
new file mode 100644
index 0000000..1809918
--- /dev/null
+++ b/ecos/packages/language/c/libc/string/current/tests/strncat1.c
@@ -0,0 +1,173 @@
+//=================================================================
+//
+// strncat1.c
+//
+// Testcase for C library strncat()
+//
+//=================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): ctarpy, jlarmour
+// Contributors:
+// Date: 2000-04-30
+// Description: Contains testcode for C library strncat() function
+//
+//
+//####DESCRIPTIONEND####
+
+// CONFIGURATION
+
+#include <pkgconf/system.h>
+#include <pkgconf/libc_string.h> // Configuration header
+
+// INCLUDES
+
+#include <pkgconf/isoinfra.h>
+#include <string.h>
+#include <cyg/infra/testcase.h>
+
+
+// FUNCTIONS
+
+// Functions to avoid having to use libc strings
+
+static int my_strlen(const char *s)
+{
+ const char *ptr;
+
+ ptr = s;
+ for ( ptr=s ; *ptr != '\0' ; ptr++ )
+ ;
+
+ return (int)(ptr-s);
+} // my_strlen()
+
+
+static int my_strcmp(const char *s1, const char *s2)
+{
+ for ( ; *s1 == *s2 ; s1++,s2++ )
+ {
+ if ( *s1 == '\0' )
+ break;
+ } // for
+
+ return (*s1 - *s2);
+} // my_strcmp()
+
+
+static char *my_strcpy(char *s1, const char *s2)
+{
+ while (*s2 != '\0') {
+ *(s1++) = *(s2++);
+ }
+ *s1 = '\0';
+
+ return s1;
+} // my_strcpy()
+
+
+#if CYGINT_ISO_MAIN_STARTUP
+int main( int argc, char *argv[] )
+#else
+void cyg_user_start(void)
+#endif
+{
+ char x[300];
+ char y[300];
+ char *ret;
+
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for C library "
+ "memmove() function");
+ CYG_TEST_INFO("This testcase provides simple basic tests");
+
+ // Check 1
+ my_strcpy(x, "One ring to rule them all.");
+ my_strcpy(y, "One ring to find them.");
+ ret = strncat(x, y, my_strlen(y)+1);
+ if ( my_strcmp(x, "One ring to rule them all.One ring to find them.")==0 )
+ CYG_TEST_PASS("Simple concatenation");
+ else
+ CYG_TEST_FAIL("Simple concatenation");
+ // Check return val
+ CYG_TEST_PASS_FAIL( ( ret == x ), "Simple concatenation return value" );
+
+
+ // Check 2
+ my_strcpy(x, "One ring to bring them all,");
+ my_strcpy(y, "");
+ ret = strncat(x, y, my_strlen(y)+1);
+ if ( my_strcmp(x, "One ring to bring them all,")==0 )
+ CYG_TEST_PASS("Concatenation of empty string");
+ else
+ CYG_TEST_FAIL("Concatenation of empty string");
+ // Check return val
+ CYG_TEST_PASS_FAIL( ( ret == x ),
+ "Concatenation of empty string return value" );
+
+
+ // Check 3
+ my_strcpy(x, "and in the darkness bind them");
+ my_strcpy(y, "");
+ ret = strncat(y, x, my_strlen(x)+1 );
+ if ( my_strcmp(x, "and in the darkness bind them")==0 )
+ CYG_TEST_PASS("Concatenation to empty string");
+ else
+ CYG_TEST_FAIL("Concatenation to empty string");
+ // Check return val
+ CYG_TEST_PASS_FAIL( ( ret == y ),
+ "Concatenation to empty string return value" );
+
+ // Check 4
+ my_strcpy(x, "in the land of ");
+ my_strcpy(y, "Mordor, where the shadows lie");
+ ret = strncat(x, y, 6 );
+ if ( my_strcmp(x, "in the land of Mordor")==0 )
+ CYG_TEST_PASS("Concatenation of partial string string");
+ else
+ CYG_TEST_FAIL("Concatenation of partial string");
+ // Check return val
+ CYG_TEST_PASS_FAIL( ( ret == x ),
+ "Concatenation to empty string return value" );
+
+// CYG_TEST_NA("Testing is not applicable to this configuration");
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for C library "
+ "strncat() function");
+} // main()
+
+
+// EOF strncat1.c
diff --git a/ecos/packages/language/c/libc/string/current/tests/strncat2.c b/ecos/packages/language/c/libc/string/current/tests/strncat2.c
new file mode 100644
index 0000000..6eb0f0c
--- /dev/null
+++ b/ecos/packages/language/c/libc/string/current/tests/strncat2.c
@@ -0,0 +1,145 @@
+//=================================================================
+//
+// strncat2.c
+//
+// Testcase for C library strncat()
+//
+//=================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): ctarpy, jlarmour
+// Contributors:
+// Date: 2000-04-30
+// Description: Contains testcode for C library strncat() function
+//
+//
+//####DESCRIPTIONEND####
+
+// INCLUDES
+
+#include <pkgconf/isoinfra.h>
+#include <string.h>
+#include <cyg/infra/testcase.h>
+
+// CONSTANTS
+
+#define NUM_ROBUSTNESS_RUNS 300
+
+// FUNCTIONS
+
+
+// Functions to avoid having to use libc strings
+
+static int my_strlen(const char *s)
+{
+ const char *ptr;
+
+ ptr = s;
+ for ( ptr=s ; *ptr != '\0' ; ptr++ )
+ ;
+
+ return (int)(ptr-s);
+} // my_strlen()
+
+
+static int my_strcmp(const char *s1, const char *s2)
+{
+ for ( ; *s1 == *s2 ; s1++,s2++ )
+ {
+ if ( *s1 == '\0' )
+ break;
+ } // for
+
+ return (*s1 - *s2);
+} // my_strcmp()
+
+
+static char *my_strcpy(char *s1, const char *s2)
+{
+ while (*s2 != '\0') {
+ *(s1++) = *(s2++);
+ }
+ *s1 = '\0';
+
+ return s1;
+} // my_strcpy()
+
+
+#if CYGINT_ISO_MAIN_STARTUP
+int main( int argc, char *argv[] )
+#else
+void cyg_user_start(void)
+#endif
+{
+ char x[300];
+ char y[300];
+ char *ret;
+ int ctr;
+ int fail;
+
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for C library "
+ "strncat() function");
+ CYG_TEST_INFO("This testcase tests robustness, and may take some time");
+
+ fail = 0;
+ for (ctr = 0; ctr < NUM_ROBUSTNESS_RUNS; ctr++)
+ {
+ my_strcpy(x, "in the land of Mordor, ");
+ my_strcpy(y, "where the shadows lie.");
+ ret = strncat(x, y, my_strlen(y)+1 );
+ if ((my_strcmp(x, "in the land of Mordor, where the shadows lie.")!=0))
+ {
+ fail = 1;
+ break;
+ } // if
+ if (ret != x)
+ {
+ fail = 1;
+ break;
+ } // if
+ }
+ CYG_TEST_PASS_FAIL( (fail == 0), "Robustness test passed" );
+
+// CYG_TEST_NA("Testing is not applicable to this configuration");
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for C library "
+ "strncat() function");
+
+} // main()
+
+
+// EOF strncat2.c
diff --git a/ecos/packages/language/c/libc/string/current/tests/strncpy1.c b/ecos/packages/language/c/libc/string/current/tests/strncpy1.c
new file mode 100644
index 0000000..bec9fcd
--- /dev/null
+++ b/ecos/packages/language/c/libc/string/current/tests/strncpy1.c
@@ -0,0 +1,166 @@
+//=================================================================
+//
+// strncpy1.c
+//
+// Testcase for C library strncpy()
+//
+//=================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2006 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): ctarpy, jlarmour
+// Contributors:
+// Date: 2000-04-30
+// Description: Contains testcode for C library strncpy() function
+//
+//
+//####DESCRIPTIONEND####
+
+// INCLUDES
+
+#include <pkgconf/isoinfra.h>
+#include <string.h>
+#include <cyg/infra/testcase.h>
+
+
+// FUNCTIONS
+
+// Functions to avoid having to use libc strings
+
+static int my_strlen(const char *s)
+{
+ const char *ptr;
+
+ ptr = s;
+ for ( ptr=s ; *ptr != '\0' ; ptr++ )
+ ;
+
+ return (int)(ptr-s);
+} // my_strlen()
+
+
+static int my_strncmp(const char *s1, const char *s2, size_t n)
+{
+ if (n==0)
+ return 0;
+
+ while (n-- != 0 && *s1 == *s2)
+ {
+ if (n == 0 || *s1 == '\0' || *s2 == '\0')
+ break;
+ s1++;
+ s2++;
+ }
+
+ return (*s1 - *s2);
+} // my_strncmp()
+
+
+static int my_strcmp(const char *s1, const char *s2)
+{
+ for ( ; *s1 == *s2 ; s1++,s2++ )
+ {
+ if ( *s1 == '\0' )
+ break;
+ } // for
+
+ return (*s1 - *s2);
+} // my_strcmp()
+
+
+static char *my_strcpy(char *s1, const char *s2)
+{
+ while (*s2 != '\0') {
+ *(s1++) = *(s2++);
+ }
+ *s1 = '\0';
+
+ return s1;
+} // my_strcpy()
+
+
+#if CYGINT_ISO_MAIN_STARTUP
+int
+main( int argc, char *argv[] )
+#else
+void cyg_user_start(void)
+#endif
+{
+ char x[300];
+ char y[300];
+ char *ret;
+
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for C library "
+ "strncpy() function");
+ CYG_TEST_INFO("This testcase provides simple basic tests");
+
+ // Check 1
+ my_strcpy(x, "Nine rings for men doomed to die");
+ ret = strncpy(y, "Nine rings for men doomed to die", my_strlen(x));
+ CYG_TEST_PASS_FAIL( (my_strncmp(x, y, my_strlen(x)) == 0),
+ "Simple copy" );
+ // Check return value
+ CYG_TEST_PASS_FAIL( (y == ret), "Simple copy return value" );
+
+
+ // Check 2
+ my_strcpy(x, "");
+ my_strcpy(y, "Seven rings for the dwarves in their halls of stone");
+ ret = strncpy(y, x, 1);
+ CYG_TEST_PASS_FAIL( (my_strcmp(y, "") == 0), "Copy empty string" );
+ // Check return value
+ CYG_TEST_PASS_FAIL( (y == ret), "Copy empty string return value" );
+
+ // Check 3
+ my_strcpy(x, "");
+ my_strcpy(y, "Seven rings for the dwarves in their halls of stone");
+ ret = strncpy(y, x, 0);
+ if (my_strcmp(y, "Seven rings for the dwarves "
+ "in their halls of stone") == 0)
+ CYG_TEST_PASS("Copy 0 characters");
+ else
+ CYG_TEST_FAIL("Copy 0 characters");
+ // Check return value
+ CYG_TEST_PASS_FAIL( (y == ret), "Copy empty string return value" );
+
+// CYG_TEST_NA("Testing is not applicable to this configuration");
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for C library "
+ "strncpy() function");
+
+} // main()
+
+// EOF strncpy1.c
diff --git a/ecos/packages/language/c/libc/string/current/tests/strncpy2.c b/ecos/packages/language/c/libc/string/current/tests/strncpy2.c
new file mode 100644
index 0000000..092ce04
--- /dev/null
+++ b/ecos/packages/language/c/libc/string/current/tests/strncpy2.c
@@ -0,0 +1,137 @@
+//=================================================================
+//
+// strncpy2.c
+//
+// Testcase for C library strncpy()
+//
+//=================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): ctarpy, jlarmour
+// Contributors:
+// Date: 2000-04-30
+// Description: Contains testcode for C library strncpy() function
+//
+//
+//####DESCRIPTIONEND####
+
+// INCLUDES
+
+#include <pkgconf/isoinfra.h>
+#include <string.h>
+#include <cyg/infra/testcase.h>
+
+// CONSTANTS
+
+#define NUM_ROBUSTNESS_RUNS 300
+
+// FUNCTIONS
+
+// Functions to avoid having to use libc strings
+
+static int my_strlen(const char *s)
+{
+ const char *ptr;
+
+ ptr = s;
+ for ( ptr=s ; *ptr != '\0' ; ptr++ )
+ ;
+
+ return (int)(ptr-s);
+} // my_strlen()
+
+
+static int my_strcmp(const char *s1, const char *s2)
+{
+ for ( ; *s1 == *s2 ; s1++,s2++ )
+ {
+ if ( *s1 == '\0' )
+ break;
+ } // for
+
+ return (*s1 - *s2);
+} // my_strcmp()
+
+
+static char *my_strcpy(char *s1, const char *s2)
+{
+ while (*s2 != '\0') {
+ *(s1++) = *(s2++);
+ }
+ *s1 = '\0';
+
+ return s1;
+} // my_strcpy()
+
+
+#if CYGINT_ISO_MAIN_STARTUP
+int main( int argc, char *argv[] )
+#else
+void cyg_user_start(void)
+#endif
+{
+ char x[300];
+ char y[300];
+ char *ret;
+ int ctr;
+ int fail;
+
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for C library "
+ "strncpy() function");
+ CYG_TEST_INFO("This testcase tests robustness, and may take some time");
+
+ fail = 0;
+ for (ctr = 0; ctr < NUM_ROBUSTNESS_RUNS; ctr++) {
+ my_strcpy(x, "Green plastic watering can, ");
+ my_strcpy(y, "for her fake Chineese rubber plant");
+ ret = strncpy(x, y, my_strlen(y)+1);
+ if ( (my_strcmp(x, "for her fake Chineese rubber plant") != 0) ||
+ ( ret != x ) )
+ {
+ fail = 1;
+ break;
+ } // if
+ } // for
+ CYG_TEST_PASS_FAIL( (fail == 0), "Robustness test" );
+
+// CYG_TEST_NA("Testing is not applicable to this configuration");
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for C library "
+ "strncpy() function");
+} // main()
+
+// EOF strncpy2.c
diff --git a/ecos/packages/language/c/libc/string/current/tests/strnlen.c b/ecos/packages/language/c/libc/string/current/tests/strnlen.c
new file mode 100644
index 0000000..802d77c
--- /dev/null
+++ b/ecos/packages/language/c/libc/string/current/tests/strnlen.c
@@ -0,0 +1,133 @@
+//=================================================================
+//
+// strnlen.c
+//
+// Testcase for C library strnlen()
+//
+//=================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2010 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): wry
+// Contributors:
+// Date: 2010-05-10
+// Description: Testing for C library strnlen() function
+//
+//
+//####DESCRIPTIONEND####
+
+// INCLUDES
+
+#include <pkgconf/isoinfra.h>
+#include <string.h>
+#include <stdarg.h>
+#include <cyg/infra/testcase.h>
+#include <cyg/infra/diag.h>
+#include <cyg/infra/cyg_ass.h>
+#include <cyg/libc/string/stringsupp.hxx>
+
+
+// FUNCTIONS
+
+void test_guts(char *buf, size_t real_len, size_t arg, size_t expected, int *nfails, int *ncases)
+{
+#if 0
+ // printf takes too much memory on some boards.
+ //diag_printf("testcase: buf `%s', len %u, n %u, expect %u\n", buf, real_len, arg, expected);
+#endif
+ size_t rv = strnlen(buf, arg);
+ if (rv != expected) {
+ CYG_TEST_FAIL("incorrect answer from strnlen case");
+#if 0
+ diag_printf("incorrect answer %u from case %u:%u (expected %u)", rv, real_len, arg, expected);
+#endif
+ ++*nfails;
+ }
+ ++*ncases;
+}
+
+void test(size_t strsize, int * nfails, int * ncases)
+{
+ int j;
+ char testbuf[1024];
+
+ CYG_ASSERTC(strsize <= sizeof(testbuf));
+ // Insist on checking the aligned-path code.
+ CYG_ASSERTC(!(CYG_LIBC_STR_UNALIGNED(testbuf)));
+
+ memset(testbuf, 'A', strsize);
+ testbuf[strsize] = 0;
+
+ for (j=1; j<(1+4*sizeof(CYG_WORD)) && j<=strsize; j++) {
+ // condition `j<=strsize' prevents underflow.
+ test_guts(testbuf, strsize, strsize-j, strsize-j, nfails, ncases);
+ }
+ for (j=0; j<(1+4*sizeof(CYG_WORD)); j++) {
+ test_guts(testbuf, strsize, strsize+j, strsize, nfails, ncases);
+ }
+}
+
+
+#if CYGINT_ISO_MAIN_STARTUP
+int main( int argc, char *argv[] )
+#else
+void cyg_user_start(void)
+#endif
+{
+#ifndef CYGFUN_LIBC_STRING_GNU_STRNLEN
+ CYG_TEST_NA("strnlen / CYGFUN_LIBC_STRING_GNU_STRNLEN disabled");
+#else
+
+ CYG_TEST_INIT();
+ CYG_TEST_INFO("strnlen exhaustive testing");
+#if defined(CYGIMP_LIBC_STRING_PREFER_SMALL_TO_FAST)
+ CYG_TEST_INFO("strnlen: NOTE: CYGIMP_LIBC_STRING_PREFER_SMALL_TO_FAST is defined");
+#endif
+
+ int t, nfails=0, ncases=0;
+
+#define DO(x) do { test(x, &nfails, &ncases); } while(0)
+ for (t=0; t<40; t++) DO(t);
+
+#if 0
+ diag_printf("strnlen: %u/%u cases passed", (ncases-nfails), ncases);
+#endif
+ if (!nfails) CYG_TEST_PASS("strnlen");
+ CYG_TEST_FINISH("strnlen");
+
+#endif
+} // main()
+
+
+// EOF strlen.c
diff --git a/ecos/packages/language/c/libc/string/current/tests/strpbrk.c b/ecos/packages/language/c/libc/string/current/tests/strpbrk.c
new file mode 100644
index 0000000..0e67b2b
--- /dev/null
+++ b/ecos/packages/language/c/libc/string/current/tests/strpbrk.c
@@ -0,0 +1,125 @@
+//=================================================================
+//
+// strpbrk.c
+//
+// Testcase for C library strpbrk()
+//
+//=================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): ctarpy, jlarmour
+// Contributors:
+// Date: 2000-04-30
+// Description: Contains testcode for C library strpbrk() function
+//
+//
+//####DESCRIPTIONEND####
+
+// INCLUDES
+
+#include <pkgconf/isoinfra.h>
+#include <string.h>
+#include <cyg/infra/testcase.h>
+
+
+// FUNCTIONS
+
+// Functions to avoid having to use libc strings
+
+static char *my_strcpy(char *s1, const char *s2)
+{
+ while (*s2 != '\0') {
+ *(s1++) = *(s2++);
+ }
+ *s1 = '\0';
+
+ return s1;
+} // my_strcpy()
+
+
+#if CYGINT_ISO_MAIN_STARTUP
+int main( int argc, char *argv[] )
+#else
+void cyg_user_start(void)
+#endif
+{
+ char x[300];
+ char y[300];
+ char *ret;
+
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for C library "
+ "strpbrk() function");
+ CYG_TEST_INFO("This testcase provides simple basic tests");
+
+ // Check 1
+ my_strcpy(x, "I will not have my fwends widiculed by the common soldiewy");
+ my_strcpy(y, "zpm1"); // Finds the 'm'
+ ret = strpbrk(x, y);
+ CYG_TEST_PASS_FAIL( (ret == &x[16]), "Simple strpbrk()" );
+
+ // Check 2
+ my_strcpy(x, "Not bad for a little fur ball. You! Stay here.");
+ my_strcpy(y, "zx");
+ ret = strpbrk(x, y);
+ CYG_TEST_PASS_FAIL( (ret == NULL), "Letters not found");
+
+ // Check 3 (boundary condition)
+ my_strcpy(x, "");
+ my_strcpy(y, "zx");
+ ret = strpbrk(x, y);
+ CYG_TEST_PASS_FAIL( (ret == NULL), "String to search empty" );
+
+ // Check 4 (boundary condition)
+ my_strcpy(x, "zx");
+ my_strcpy(y, "");
+ ret = strpbrk(x, y);
+ CYG_TEST_PASS_FAIL( (ret == NULL), "Empty search string" );
+
+ // Check 5 (boundary condition)
+ my_strcpy(x, "");
+ my_strcpy(y, "");
+ ret = strpbrk(x, y);
+ CYG_TEST_PASS_FAIL( (ret == NULL), "Both strings empty" );
+
+// CYG_TEST_NA("Testing is not applicable to this configuration");
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for C library "
+ "strpbrk() function");
+
+} // main()
+
+// EOF strpbrk.c
diff --git a/ecos/packages/language/c/libc/string/current/tests/strrchr.c b/ecos/packages/language/c/libc/string/current/tests/strrchr.c
new file mode 100644
index 0000000..b27bc74
--- /dev/null
+++ b/ecos/packages/language/c/libc/string/current/tests/strrchr.c
@@ -0,0 +1,120 @@
+//=================================================================
+//
+// strrchr.c
+//
+// Testcase for C library strrchr()
+//
+//=================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): ctarpy, jlarmour
+// Contributors:
+// Date: 2000-04-30
+// Description: Contains testcode for C library strrchr() function
+//
+//
+//####DESCRIPTIONEND####
+
+// INCLUDES
+
+#include <pkgconf/isoinfra.h>
+#include <string.h>
+#include <cyg/infra/testcase.h>
+
+
+// FUNCTIONS
+
+// Functions to avoid having to use libc strings
+
+static char *my_strcpy(char *s1, const char *s2)
+{
+ while (*s2 != '\0') {
+ *(s1++) = *(s2++);
+ }
+ *s1 = '\0';
+
+ return s1;
+} // my_strcpy()
+
+
+#if CYGINT_ISO_MAIN_STARTUP
+int main( int argc, char *argv[] )
+#else
+void cyg_user_start(void)
+#endif
+{
+ char x[300];
+ char *ret;
+
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for C library "
+ "strrchr() function");
+ CYG_TEST_INFO("This testcase provides simple basic tests");
+
+ // Check 1
+ my_strcpy(x, "I will not have my fwends widiculed by the common soldiewy");
+ ret = strrchr(x, (int) 'c');
+ CYG_TEST_PASS_FAIL( (ret == &x[43]), "Simple strrchr()" );
+
+ // Check 2
+ my_strcpy(x, "Not bad for a little fur ball. You! Stay here.");
+ ret = strrchr(x, (int) 'z');
+ CYG_TEST_PASS_FAIL( (ret == NULL), "Character not found");
+
+ // Check 3 (boundary condition)
+ my_strcpy(x, "");
+ ret = strrchr(x, (int) 'c');
+ CYG_TEST_PASS_FAIL( (ret == NULL), "String to search empty" );
+
+ // Check 4 (boundary condition)
+ my_strcpy(x, "zx");
+ ret = strrchr(x, '\0');
+ CYG_TEST_PASS_FAIL( (ret == &x[2]), "Null search character" );
+
+ // Check 5 (boundary condition)
+ my_strcpy(x, "");
+ ret = strrchr(x, '\0');
+ CYG_TEST_PASS_FAIL( (ret == x), "String empty and null search char" );
+
+
+// CYG_TEST_NA("Testing is not applicable to this configuration");
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for C library "
+ "strrchr() function");
+
+} // main()
+
+// EOF strrchr.c
diff --git a/ecos/packages/language/c/libc/string/current/tests/strspn.c b/ecos/packages/language/c/libc/string/current/tests/strspn.c
new file mode 100644
index 0000000..faab67f
--- /dev/null
+++ b/ecos/packages/language/c/libc/string/current/tests/strspn.c
@@ -0,0 +1,132 @@
+//=================================================================
+//
+// strspn.c
+//
+// Testcase for C library strspn()
+//
+//=================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): ctarpy, jlarmour
+// Contributors:
+// Date: 2000-04-30
+// Description: Contains testcode for C library strspn() function
+//
+//
+//####DESCRIPTIONEND####
+
+// INCLUDES
+
+#include <pkgconf/isoinfra.h>
+#include <string.h>
+#include <cyg/infra/testcase.h>
+
+
+// FUNCTIONS
+
+
+// Functions to avoid having to use libc strings
+
+static char *my_strcpy(char *s1, const char *s2)
+{
+ while (*s2 != '\0') {
+ *(s1++) = *(s2++);
+ }
+ *s1 = '\0';
+
+ return s1;
+} // my_strcpy()
+
+
+#if CYGINT_ISO_MAIN_STARTUP
+int main( int argc, char *argv[] )
+#else
+void cyg_user_start(void)
+#endif
+{
+ char x[300];
+ char y[300];
+ int ret;
+
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for C library "
+ "strspn() function");
+ CYG_TEST_INFO("This testcase provides simple basic tests");
+
+ // Check 1
+ my_strcpy(x, "ah blow my nose at you, so-called Arthur king!");
+ my_strcpy(y, "wolbah ");
+ ret = strspn(x, y);
+ CYG_TEST_PASS_FAIL( (ret == 8), "Simple strspn() #1" );
+
+
+ // Check 2
+ my_strcpy(x, "Not bad for a little fur ball. You! Stay here.");
+ my_strcpy(y, "litea rofdbN");
+ ret = strspn(x, y);
+ CYG_TEST_PASS_FAIL( (ret == 22), "Simple strspn() #2" );
+
+ // Check 3
+ my_strcpy(x, "Not bad for a little fur ball. You! Stay here.");
+ my_strcpy(y, "litearofdbN");
+ ret = strspn(x, y);
+ CYG_TEST_PASS_FAIL( (ret == 3), "Simple strspn() #3");
+
+ // Check 4 (boundary condition)
+ my_strcpy(x, "Not bad for a little fur ball. You! Stay here.");
+ my_strcpy(y, "litearofdb");
+ ret = strspn(x, y);
+ CYG_TEST_PASS_FAIL( (ret == 0), "First character not in string");
+
+
+ // Check 5 (boundary condition)
+ my_strcpy(x, "So, if she weighs the same as a duck, she's made of wood!");
+ my_strcpy(y, "zx");
+ ret = strspn(x, y);
+ CYG_TEST_PASS_FAIL( (ret == 0), "No characters in string" );
+
+ // Check 6 (boundary condition)
+ my_strcpy(x, "");
+ my_strcpy(y, "qwerty");
+ ret = strspn(x, y);
+ CYG_TEST_PASS_FAIL( (ret == 0), "Empty search string" );
+
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for C library "
+ "strspn() function");
+} // main()
+
+// EOF strspn.c
diff --git a/ecos/packages/language/c/libc/string/current/tests/strstr.c b/ecos/packages/language/c/libc/string/current/tests/strstr.c
new file mode 100644
index 0000000..32c3443
--- /dev/null
+++ b/ecos/packages/language/c/libc/string/current/tests/strstr.c
@@ -0,0 +1,128 @@
+//=================================================================
+//
+// strstr.c
+//
+// Testcase for C library strstr()
+//
+//=================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): ctarpy, jlarmour
+// Contributors:
+// Date: 2000-04-30
+// Description: Contains testcode for C library strstr() function
+//
+//
+//####DESCRIPTIONEND####
+
+// INCLUDES
+
+#include <pkgconf/isoinfra.h>
+#include <string.h>
+#include <cyg/infra/testcase.h>
+
+// FUNCTIONS
+
+// Functions to avoid having to use libc strings
+
+
+static char *my_strcpy(char *s1, const char *s2)
+{
+ while (*s2 != '\0') {
+ *(s1++) = *(s2++);
+ }
+ *s1 = '\0';
+
+ return s1;
+} // my_strcpy()
+
+
+#if CYGINT_ISO_MAIN_STARTUP
+int main( int argc, char *argv[] )
+#else
+void cyg_user_start(void)
+#endif
+{
+ char x[300];
+ char y[300];
+ char *ret;
+
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for C library "
+ "strstr() function");
+ CYG_TEST_INFO("This testcase provides simple basic tests");
+
+ // Check 1
+ my_strcpy(x, "I will not have my fwends widiculed by the common soldiewy");
+ my_strcpy(y, "fwends");
+ ret = strstr(x, y);
+ CYG_TEST_PASS_FAIL( (ret == &x[19]), "Simple strstr()" );
+
+
+ // Check 2 (boundary condition)
+ my_strcpy(x, "Not bad for a little fur ball. You! Stay here.");
+ my_strcpy(y, "ball ");
+ ret = strstr(x, y);
+ CYG_TEST_PASS_FAIL( (ret == NULL), "String to search for not present" );
+
+
+ // Check 3 (boundary condition)
+ my_strcpy(x, "");
+ my_strcpy(y, "zx");
+ ret = strstr(x, y);
+ CYG_TEST_PASS_FAIL( (ret == NULL), "Empty string to search" );
+
+
+ // Check 4 (boundary condition)
+ my_strcpy(x, "fdafdafdfahjgf");
+ my_strcpy(y, "");
+ ret = strstr(x, y);
+ CYG_TEST_PASS_FAIL( (ret == x), "Empty search string" );
+
+ // Check 5 (boundary condition)
+ my_strcpy(x, "");
+ my_strcpy(y, "");
+ ret = strstr(x, y);
+ CYG_TEST_PASS_FAIL( (ret == x), "Both strings empty" );
+
+// CYG_TEST_NA("Testing is not applicable to this configuration");
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for C library "
+ "strstr() function");
+
+} // main()
+
+// EOF strstr.c
diff --git a/ecos/packages/language/c/libc/string/current/tests/strtok.c b/ecos/packages/language/c/libc/string/current/tests/strtok.c
new file mode 100644
index 0000000..1d5e4d2
--- /dev/null
+++ b/ecos/packages/language/c/libc/string/current/tests/strtok.c
@@ -0,0 +1,167 @@
+//=================================================================
+//
+// strtok.c
+//
+// Testcase for C library strtok()
+//
+//=================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): ctarpy, jlarmour
+// Contributors:
+// Date: 1999-01-20
+// Description: Contains testcode for C library strtok() function
+//
+//
+//####DESCRIPTIONEND####
+
+// CONFIGURATION
+
+#include <pkgconf/system.h>
+#include <pkgconf/libc_string.h> // Configuration header
+
+// INCLUDES
+
+#include <pkgconf/isoinfra.h>
+#include <string.h>
+#include <cyg/infra/testcase.h>
+
+// FUNCTIONS
+
+// Functions to avoid having to use libc strings
+
+
+static int
+my_strcmp(const char *s1, const char *s2)
+{
+ for ( ; *s1 == *s2 ; s1++,s2++ ) {
+ if ( *s1 == '\0' )
+ break;
+ } // for
+
+ return (*s1 - *s2);
+} // my_strcmp()
+
+
+static char *
+my_strcpy(char *s1, const char *s2)
+{
+ while (*s2 != '\0') {
+ *(s1++) = *(s2++);
+ }
+ *s1 = '\0';
+
+ return s1;
+} // my_strcpy()
+
+
+static void
+test( CYG_ADDRWORD data )
+{
+ char x[300];
+
+ // Check 1
+ my_strcpy(x, "tok1 tok2 3kot");
+ if (( my_strcmp("tok1", strtok(x, " ")) == 0 ) &&
+ ( my_strcmp("tok2", strtok(NULL, " ")) == 0 ) &&
+ ( my_strcmp("3kot", strtok(NULL, " ")) == 0 ))
+
+ CYG_TEST_PASS("Simple strtok() #1");
+ else
+ CYG_TEST_FAIL("Simple strtok() #1");
+
+ // Check 2
+ my_strcpy(x, "Hitteth@ye *not, the vicar");
+ if (( my_strcmp("Hitteth", strtok(x, "@,*")) == 0 ) &&
+ ( my_strcmp("ye ", strtok(NULL, ",@*")) == 0 ) &&
+ ( my_strcmp("not", strtok(NULL, "*@,")) == 0 ) &&
+ ( my_strcmp(" the vicar", strtok(NULL, "*@,")) == 0 ) )
+
+ CYG_TEST_PASS("Simple strtok() #2");
+ else
+ CYG_TEST_FAIL("Simple strtok() #2");
+
+ // Check 3
+ my_strcpy(x, "on his bonce, with thine football");
+ if ( my_strcmp(strtok(x, "@*"), x) == 0 )
+ CYG_TEST_PASS("strtok() with token delimiters not found");
+ else
+ CYG_TEST_FAIL("strtok() with token delimiters not found");
+
+ // Check 4
+ my_strcpy(x, "@@@,,,...@,.,.@");
+ if (strtok(x, "@,.") == NULL)
+ CYG_TEST_PASS("All characters of string are token delimiters");
+ else
+ CYG_TEST_FAIL("All characters of string are token delimiters");
+
+ // Check 5
+ my_strcpy(x, "");
+ if (strtok(x, "@,.") == NULL)
+ CYG_TEST_PASS("String to tokenize empty");
+ else
+ CYG_TEST_FAIL("String to tokenize empty");
+
+ // Check 6
+ my_strcpy(x, "fdafda");
+ if (strtok(x, "") == x)
+ CYG_TEST_PASS("String to tokenize empty");
+ else
+ CYG_TEST_FAIL("String to tokenize empty");
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for C library "
+ "strtok() function");
+
+} // test()
+
+#if CYGINT_ISO_MAIN_STARTUP
+int main( int argc, char *argv[] )
+#else
+void cyg_user_start(void)
+#endif
+{
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for C library "
+ "strtok() function");
+ CYG_TEST_INFO("This testcase provides simple basic tests");
+
+ test(0);
+
+ CYG_TEST_NA("Testing is not applicable to this configuration");
+} // main()
+
+
+// EOF strtok.c
diff --git a/ecos/packages/language/c/libc/string/current/tests/strxfrm1.c b/ecos/packages/language/c/libc/string/current/tests/strxfrm1.c
new file mode 100644
index 0000000..81260c6
--- /dev/null
+++ b/ecos/packages/language/c/libc/string/current/tests/strxfrm1.c
@@ -0,0 +1,155 @@
+//=================================================================
+//
+// strxfrm1.c
+//
+// Testcase for C library strxfrm()
+//
+//=================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): ctarpy, jlarmour
+// Contributors:
+// Date: 2000-04-30
+// Description: Contains testcode for C library strxfrm() function
+//
+//
+//####DESCRIPTIONEND####
+
+// CONFIGURATION
+
+#include <pkgconf/system.h>
+#include <pkgconf/libc_string.h> // Configuration header
+
+// INCLUDES
+
+#include <pkgconf/isoinfra.h>
+#include <string.h>
+#include <cyg/infra/testcase.h>
+
+// FUNCTIONS
+
+
+// Functions to avoid having to use libc strings
+
+static int my_strlen(const char *s)
+{
+ const char *ptr;
+
+ ptr = s;
+ for ( ptr=s ; *ptr != '\0' ; ptr++ )
+ ;
+
+ return (int)(ptr-s);
+} // my_strlen()
+
+
+static int my_strcmp(const char *s1, const char *s2)
+{
+ for ( ; *s1 == *s2 ; s1++,s2++ )
+ {
+ if ( *s1 == '\0' )
+ break;
+ } // for
+
+ return (*s1 - *s2);
+} // my_strcmp()
+
+
+static char *my_strcpy(char *s1, const char *s2)
+{
+ while (*s2 != '\0') {
+ *(s1++) = *(s2++);
+ }
+ *s1 = '\0';
+
+ return s1;
+} // my_strcpy()
+
+
+#if CYGINT_ISO_MAIN_STARTUP
+int main( int argc, char *argv[] )
+#else
+void cyg_user_start(void)
+#endif
+{
+ char x[300];
+ char y[300];
+ int ret;
+
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for C library "
+ "strxfrm() function");
+ CYG_TEST_INFO("This testcase provides simple basic tests");
+
+ // Check 1
+ my_strcpy(x, "Nine rings for men doomed to die");
+ ret = strxfrm(y, x, my_strlen(x)+1);
+ if (my_strcmp(x, y) == 0)
+ CYG_TEST_PASS("Simple strxfrm()");
+ else
+ CYG_TEST_FAIL("Simple strxfrm()");
+ // Check return value
+ CYG_TEST_PASS_FAIL( (my_strlen(x) == ret),
+ "Simple strxfrm() return value");
+
+ // Check 2
+ x[0] = '\0';
+ my_strcpy(y, "Seven rings for the dwarves in their halls of stone");
+ ret = strxfrm(y, x, my_strlen(x)+1);
+ if (my_strcmp(y, "") == 0)
+ CYG_TEST_PASS("strxfrm() of empty string");
+ else
+ CYG_TEST_FAIL("strxfrm() of empty string");
+ // Check return value
+ CYG_TEST_PASS_FAIL( (my_strlen(x) == ret),
+ "strxfrm() of empty string return value");
+
+ // Check 3
+ my_strcpy(y, "Seven rings for the dwarves in their halls of stone");
+ ret = strxfrm(NULL, y, 0);
+
+ // Check return value
+ CYG_TEST_PASS_FAIL( (my_strlen(y) == ret),
+ "strxfrm() of NULL string for 0 bytes return value");
+
+// CYG_TEST_NA("Testing is not applicable to this configuration");
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for C library "
+ "strxfrm() function");
+} // main()
+
+
+// EOF strxfrm1.c
diff --git a/ecos/packages/language/c/libc/string/current/tests/strxfrm2.c b/ecos/packages/language/c/libc/string/current/tests/strxfrm2.c
new file mode 100644
index 0000000..1651aa6
--- /dev/null
+++ b/ecos/packages/language/c/libc/string/current/tests/strxfrm2.c
@@ -0,0 +1,142 @@
+//=================================================================
+//
+// strxfrm2.c
+//
+// Testcase for C library strxfrm()
+//
+//=================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): ctarpy, jlarmour
+// Contributors:
+// Date: 2000-04-30
+// Description: Contains testcode for C library strxfrm() function
+//
+//
+//####DESCRIPTIONEND####
+
+// CONFIGURATION
+
+#include <pkgconf/system.h>
+#include <pkgconf/libc_string.h> // Configuration header
+
+// INCLUDES
+
+#include <pkgconf/isoinfra.h>
+#include <string.h>
+#include <cyg/infra/testcase.h>
+
+// CONSTANTS
+
+#define NUM_ROBUSTNESS_RUNS 300
+
+
+// FUNCTIONS
+
+// Functions to avoid having to use libc strings
+
+static int my_strlen(const char *s)
+{
+ const char *ptr;
+
+ ptr = s;
+ for ( ptr=s ; *ptr != '\0' ; ptr++ )
+ ;
+
+ return (int)(ptr-s);
+} // my_strlen()
+
+
+static int my_strcmp(const char *s1, const char *s2)
+{
+ for ( ; *s1 == *s2 ; s1++,s2++ )
+ {
+ if ( *s1 == '\0' )
+ break;
+ } // for
+
+ return (*s1 - *s2);
+} // my_strcmp()
+
+
+static char *my_strcpy(char *s1, const char *s2)
+{
+ while (*s2 != '\0') {
+ *(s1++) = *(s2++);
+ }
+ *s1 = '\0';
+
+ return s1;
+} // my_strcpy()
+
+#if CYGINT_ISO_MAIN_STARTUP
+int main( int argc, char *argv[] )
+#else
+void cyg_user_start(void)
+#endif
+{
+ char x[300];
+ char y[300];
+ int ret;
+ int ctr;
+ int fail;
+
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for C library "
+ "strxfrm() function");
+ CYG_TEST_INFO("This testcase tests robustness, and may take some time");
+
+ fail = 0;
+ for (ctr = 0; ctr < NUM_ROBUSTNESS_RUNS; ctr++) {
+ my_strcpy(x, "Green plastic watering can, ");
+ my_strcpy(y, "for her fake Chineese rubber plant");
+ ret = strxfrm(x, y, my_strlen(y)+1);
+ if ( (my_strcmp(x, "for her fake Chineese rubber plant") != 0) ||
+ (my_strlen(y) != ret) ) {
+ fail = 1;
+ break;
+ }
+ }
+ CYG_TEST_PASS_FAIL( (fail == 0), "Robustness test" );
+
+
+// CYG_TEST_NA("Testing is not applicable to this configuration");
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for C library "
+ "strxfrm() function");
+} // main()
+
+// EOF strxfrm2.c
diff --git a/ecos/packages/language/c/libc/time/current/ChangeLog b/ecos/packages/language/c/libc/time/current/ChangeLog
new file mode 100644
index 0000000..ad36184
--- /dev/null
+++ b/ecos/packages/language/c/libc/time/current/ChangeLog
@@ -0,0 +1,217 @@
+2007-09-15 Andrew Lunn <andrew.lunn@ascom.ch>
+
+ * tests/strptime.c (test): Extend the test so that it triggers the
+ previous bug and shows that the fix works.
+
+2007-08-18 Hans Rosenfeld <rosenfeld@grumpf.hope-2000.org>
+
+ * src/strftime.cxx: Moved CYG_PRECONDITIONs to do_format() to
+ make strftime() only complain about illegal struct tm contents if
+ these are actually used. Fixes a bug with tests/strptime which
+ would fail because tm->tm_yday was uninitialized.
+
+2006-10-02 Jonathan Larmour <jifl@eCosCentric.com>
+
+ * tests/strftime.c (test): Fix %I test.
+
+2006-08-31 Jonathan Larmour <jifl@eCosCentric.com>
+
+ * cdl/time.cdl: Don't bother inlining mktime() or
+ gmtime_r() by default - they're too big to be worth it.
+
+2006-08-24 Alexander Neundorf <alexander.neundorf@jenoptik.com>
+
+ * src/strftime.cxx: Fixed "%I" (Time in 12 hour modus was 1 hour off)
+
+2006-06-16 Andrew Lunn <andrew.lunn@ascom.ch>
+
+ * tests/strptime.c: Add a testcase for the previous fix.
+
+2006-06-13 Dan Jakubiec <dan.jakubiec@systech.com>
+
+ * src/strptime.cxx: Removed the initialization of the struct tm fields
+ to prevent clobbering of time values when using the following format
+ specifiers: %D, %r, %R, %T, %X, %x.
+
+2005-03-27 Andrew Lunn <andrew.lunn@ascom.ch>
+
+ * include/time.h: Added CYGBLD_ATTRIB_STRFTIME_FORMAT where
+ appropriate so the compiler does more checking.
+
+2004-08-08 Bart Veer <bartv@ecoscentric.com>
+
+ * src/strptime.cxx: fix spelling
+
+2003-08-18 Andrew Lunn <andrew.lunn@ascom.ch>
+
+ * src/strptime.cxx: Added string.h to fix compile warnings.
+ * cdl/time.cdl: Updated the requires statement for BSD string
+ functions to use the interface rather than the option name.
+
+2003-06-26 Brij Bihari Pandey <fuzzhead012@yahoo.com>
+2003-06-26 Jonathan Larmour <jifl@eCosCentric.com>
+
+ * tests/clock.c (main): Add a fudge factor in case the absolute values
+ from clock() are small, in which case the percentage variation
+ would be large.
+
+2003-06-13 Jonathan Larmour <jifl@eCosCentric.com>
+
+ * tests/clock.c (main): Avoid div-by-zero if mean==0.
+
+ * cdl/time.cdl: build all POSIX files all the time because they
+ are used internally by the standard ISO C functions even if not
+ exported.
+ [Bug 1000001]
+
+2003-04-24 Robert Cragie <rcc@jennic.com>
+
+ * include/time.inl:
+ * include/timeutil.h:
+ * src/timeutil.cxx:
+ Change return type of cyg_libc_time_itoa() to cyg_ucount8.
+ * src/strftime.cxx:
+ Change return type of do_format() to cyg_count8.
+ These benign changes get around a compiler bug using or32-elf-gcc
+
+2003-03-18 Gary Thomas <gary@mlbassoc.com>
+
+ * src/strptime.cxx: Initialize time structure to a well known, valid,
+ time/date so even if there is an error, it still makes [some] sense.
+
+2003-02-24 Jonathan Larmour <jifl@eCosCentric.com>
+
+ * cdl/time.cdl: Fix doc link.
+
+2003-01-28 Jonathan Larmour <jifl@eCosCentric.com>
+
+ * cdl/time.cdl: Correct reference to
+ CYGSEM_LIBC_TIME_POSIX_TIME_ROUTINES in CYGPKG_LIBC_TIME_TESTS to
+ CYGFUN_LIBC_TIME_POSIX.
+
+2003-01-27 Gary Thomas <gary@mlbassoc.com>
+
+ * tests/strptime.c:
+ * src/strptime.cxx:
+ * include/time.h:
+ * cdl/time.cdl: Add support for strptime().
+
+2002-05-14 Jesper Skov <jskov@redhat.com>
+
+ * cdl/time.cdl: Added -Wno-format to the compiler flags. This is
+ to avoid warnings about Y2K problems with the format specifiers
+ used in the strftime test.
+
+2002-01-09 Nick Garnett <nickg@redhat.com>
+
+ * tests/clock.c (cyg_start): Added CYG_TEST_INIT() to
+ NOTAPPLICABLE version of cyg_start() so that the breakpoints are
+ correctly sequenced in the testfarm and it does not think that
+ this is a failure.
+
+2001-06-22 Jesper Skov <jskov@redhat.com>
+
+ * cdl/time.cdl (CYGFUN_LIBC_TIME_SUS_EXTNS): Added.
+ * src/strftime.cxx (do_format): Added some Single UNIX
+ extensions.
+
+2001-04-25 Bart Veer <bartv@redhat.com>
+
+ * tests/time.c (MAX_TIMEOUT):
+ Increase timeout to cope with fast architectures such as the
+ synthetic target.
+
+2001-04-17 Bart Veer <bartv@redhat.com>
+
+ * tests/clock.c:
+ Cope with synthetic target reorg
+
+2000-11-29 Jonathan Larmour <jlarmour@redhat.com>
+
+ * tests/clock.c: Some targets are quite inconsistent, so skip
+ 6 samples now, and increase the tolerance to 40%.
+ Also NA if tracing enabled.
+ Also output the mean and maximum error reached, even when passing.
+
+2000-11-27 Jesper Skov <jskov@redhat.com>
+
+ * tests/clock.c: Skip fourth sample too.
+
+2000-11-14 Jesper Skov <jskov@redhat.com>
+
+ * tests/clock.c: Skip first three samples.
+
+2000-10-30 Jonathan Larmour <jlarmour@redhat.com>
+
+ * include/time.inl: Ensure POSIX *_r functions can be accessed by
+ non-POSIX implementation even when CYGFUN_LIBC_TIME_POSIX is off.
+
+ * src/asctime_r.cxx: No need to make conditional on posix CDL option -
+ we may want to define an internal-only function.
+ * src/ctime_r.cxx: Ditto
+ * src/gmtime_r.cxx: Ditto
+ * src/localtime_r.cxx: Ditto
+
+ * cdl/time.cdl: abs() is also a requirement
+
+ * src/clock.cxx (clock): Always use unsigned long longs for temp
+ variables (and make sure it's used), rather than making
+ assumptions about clock_t.
+
+ * tests/clock.c: Rewrite
+
+2000-07-26 Jonathan Larmour <jlarmour@redhat.co.uk>
+
+ * cdl/time.cdl: Add CYGINT_ISO_DIV dependency
+
+2000-07-24 Jonathan Larmour <jlarmour@redhat.co.uk>
+
+ * src/time.cxx:
+ * src/settime.cxx:
+ Wallclock moved to io/
+
+2000-06-20 Jonathan Larmour <jlarmour@redhat.co.uk>
+
+ * include/time.inl (__gmtime_r): Don't save leap year status when
+ calculating tm_wday
+
+2000-06-17 Jonathan Larmour <jlarmour@redhat.co.uk>
+
+ * include/time.inl (gmtime_r): Deal with boundary case correctly
+
+ * tests/gmtime.c (test): Add a couple more test cases
+
+2000-05-02 Jonathan Larmour <jlarmour@redhat.co.uk>
+
+ * include/time.h: Just use the defaults for time_t, clock_t and
+ CLOCKS_PER_SEC in isoinfra
+
+ * New package
+ Separated original libc out into separate packages on functional
+ boundaries.
+ Header files are now managed by isoinfra package
+ Plenty of cleanups done, but no major functionality changes
+
+//===========================================================================
+// ####GPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2006 Free Software Foundation, Inc.
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 or (at your option) any
+// later version.
+//
+// This program 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
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the
+// Free Software Foundation, Inc., 51 Franklin Street,
+// Fifth Floor, Boston, MA 02110-1301, USA.
+// -------------------------------------------
+// ####GPLCOPYRIGHTEND####
+//===========================================================================
diff --git a/ecos/packages/language/c/libc/time/current/ChangeLog.libc b/ecos/packages/language/c/libc/time/current/ChangeLog.libc
new file mode 100644
index 0000000..8809e93
--- /dev/null
+++ b/ecos/packages/language/c/libc/time/current/ChangeLog.libc
@@ -0,0 +1,2735 @@
+This ChangeLog file is now obsolete. This is the original ChangeLog from when
+libc was one large package, before being separated. It is included for
+historical reasons.
+
+2000-04-05 Jesper Skov <jskov@redhat.com>
+
+ * src/time/settime.cxx:
+ * src/time/time.cxx:
+ Wallclock moved to io/.
+
+2000-03-28 John Dallaway <jld@cygnus.co.uk>
+
+ * cdl/string.cdl,
+ cdl/stdlib.cdl,
+ cdl/stdio.cdl,
+ cdl/libc.cdl:
+
+ Adjust documentation URLs.
+
+2000-03-27 Jesper Skov <jskov@redhat.com>
+
+ * src/clibincl/stream.inl (check_this): Use cyb_bool instead of bool.
+
+2000-03-06 Jesper Skov <jskov@redhat.com>
+
+ * tests/time/strftime.c (test): Adjust test to match below change.
+
+2000-03-02 Jonathan Larmour <jlarmour@redhat.co.uk>
+
+ * src/time/strftime.cxx (do_format): Make sure %m counts from
+ 1..12 rather than 0..11. Fix for case 103300
+
+2000-02-29 Jonathan Larmour <jlarmour@redhat.co.uk>
+
+ * src/stdio/output/vfnprintf.cxx: Correctly use 'n' parameter to
+ restrict length. Credit due to Andrew Lunn here as well.
+ Resolves 103057-CR-1
+
+ * tests/stdio/sprintf2.c (test):
+ Add snprintf tests to verify the correct behaviour of restricting
+ output length
+
+2000-02-10 Jesper Skov <jskov@redhat.com>
+
+ * tests/signal/signal2.c (main):
+ Also reclaim DATA_TLB_MISS vector if available.
+
+2000-01-31 Simon FitzMaurice <sdf@cygnus.co.uk>
+ * cdl/*.cdl:
+
+ Adjust help URLs in line with new doc layout.
+
+2000-01-28 Simon FitzMaurice <sdf@cygnus.co.uk>
+ * cdl/*.cdl:
+
+ Adjust help URLs in line with new doc layout.
+
+2000-01-19 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * cdl/*.cdl: Add descriptions to a number of options &c which were
+ lacking same, also tidied up other typos as noticed en passant.
+
+1999-11-11 Bart Veer <bartv@cygnus.co.uk>
+
+ * cdl/string.cdl:
+ Switch to a single boolean configuration option for code size vs.
+ speed optimization.
+
+1999-11-03 John Dallaway <jld@cygnus.co.uk>
+
+ * cdl/libc.cdl: Define tests.
+
+1999-10-19 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/output/vfnprintf.cxx: We can now remove Berkeley
+ advertising clause
+ * src/stdlib/div.cxx: ditto
+ * src/stdlib/ldiv.cxx: ditto
+ * src/stdlib/strtol.cxx: ditto
+ * src/stdlib/strtoul.cxx: ditto
+ * src/string/strtok.cxx: ditto
+
+1999-10-19 John Dallaway <jld@cygnus.co.uk>
+
+ * cdl/libc.cdl:
+
+ Define CDL options for package-specific CFLAGS.
+
+1999-10-08 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h (CYGNUM_LIBC_MAIN_THREAD_PRIORITY): Change
+ default to 10 to keep test farm happy
+ * cdl/startup.cdl: Likewise
+
+1999-10-07 John Dallaway <jld@cygnus.co.uk>
+
+ * cdl/stdlib.cdl, cdl/string.cdl:
+
+ Specify radio buttons using CDL interfaces.
+
+1999-10-06 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * cdl/stdio.cdl: Change default to /dev/ttydiag as per 1999-10-01
+ change below
+ * cdl/startup.cdl: Add new form CDL for the startup changes as
+ per 1999-10-05
+
+1999-10-05 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/libc.h: Add CYGSEM_LIBC_MAIN_STACK_FROM_SYSTEM to allow
+ the user to supply their own stack.
+ Rename CYGNUM_LIBC_MAIN_STACK_SIZE to
+ CYGNUM_LIBC_MAIN_DEFAULT_STACK_SIZE and reparent under
+ CYGSEM_LIBC_MAIN_STACK_FROM_SYSTEM
+ Add CYGNUM_LIBC_MAIN_THREAD_PRIORITY to provide main() thread
+ priority
+
+ * src/support/mainthread.cxx: Add support for user-supplied stack
+ Allow user to specify thread priority
+
+ These changes fix CR 101069
+
+1999-10-01 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h (CYGDAT_LIBC_STDIO_DEFAULT_CONSOLE): Change
+ default to /dev/ttydiag to get correct console-like behaviour
+ Also don't preclude use if haldiag package isn't included
+ (case 102065)
+
+1999-09-15 Jesper Skov <jskov@cygnus.co.uk>
+
+ * tests/signal/signal2.c (cause_fpe): Try both float and integer
+ division by zero.
+
+1999-09-10 Jesper Skov <jskov@cygnus.co.uk>
+
+ * src/stdlib/malloc.cxx (cyg_libc_get_malloc_pool): Added for
+ stress_threads test.
+
+1999-09-07 Jesper Skov <jskov@cygnus.co.uk>
+ PRs 20243, 20433
+ * tests/signal/signal2.c: Disabled test3 on ARM.
+
+1999-09-02 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * include/assert.h: Make the sense of NDEBUG correct; it is "set"
+ when NOT debugging. Fix for CR 101983-CR-1
+ See Stroustrup, "The C++ Programming Language."
+
+1999-08-18 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/fopen.cxx (_fopen): Set buffer size 0 when not
+ buffering
+ Fix for case 101868
+
+1999-08-17 John Dallaway <jld@cygnus.co.uk>
+
+ * cdl/stdlib.cdl, cdl/string.cdl:
+
+ Implement radio buttons using "FIXME radio" hack in
+ description field for now.
+
+1999-08-12 John Dallaway <jld@cygnus.co.uk>
+
+ * cdl/stdlib.cdl:
+ Take advantage of MACRONAME_ENUMVAL macros output by CDL.
+
+1999-08-06 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdio/sprintf2.c (test): Don't rely on 2.345 being exactly
+ representable in binary as a difference of 1 ulp will make it round
+ the wrong way.
+
+1999-07-16 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/input/fgetc.cxx:
+ Include outline versions of getc() (actually just a symbol alias for
+ fgetc() ) and getchar()
+ Some minor clean-ups
+ Add tracing/assertions
+
+ * src/stdio/input/fputc.cxx:
+ Likewise (except applied to putc() and putchar())
+
+ * src/stdio/common/stdioinlines.cxx (_puts):
+ Call fputc() not _fputc()
+
+ * src/clibincl/stdiosupp.hxx:
+ Remove now obsolete prototypes for _fgetc() and _fputc()
+
+ * include/stdio.h:
+ Don't bother with getc()/putc() macros any more, just call
+ them as functions
+ Include protos for getc(), putc(), getchar() and putchar() functions
+
+1999-06-21 Jesper Skov <jskov@cygnus.co.uk>
+
+ * tests/signal/signal2.c: Disabled test 3 for SH EDK7708.
+
+1999-06-11 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/stdio.h: Make FILEs array types so they won't be
+ given $gp relocations on MIPS targets
+
+1999-05-27 Jesper Skov <jskov@cygnus.co.uk>
+
+ * tests/time/ctime.c: Fixed compiler warning.
+
+1999-05-25 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/signal/signal2.c (main):
+ Update CYGPKG_HAL_TX39 -> CYGPKG_HAL_MIPS_TX39 due to recent MIPS
+ HAL changes
+ Fix for PR 20116
+
+1999-04-30 Jesper Skov <jskov@lassi.cygnus.co.uk>
+ PR 19945/19946 workaround
+ * tests/signal/signal2.c: Disabled test 3 for PowerPC sim.
+
+1999-04-19 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/time.inl:
+ Ensure all calls to cyg_libc_time_year_is_leap() are with the full
+ year, and not the direct contents of a struct tm, which are (year-1900)
+
+1999-04-19 Jesper Skov <jskov@cygnus.co.uk>
+ PR 19308, 19410, 19528
+ * tests/time/clock.c (test): Also disable data cache which may
+ affect timing when tracing/assertions are enabled.
+
+1999-04-15 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/stdiosupp.hxx:
+ Add prototype for new cyg_libc_stdio_flush_all_but() function
+
+ * src/clibincl/stream.hxx:
+ Don't include stdiosupp.hxx any more to prevent circular dependency,
+ therefore manually provide _setvbuf prototype
+ Make sure pkgconf/kernel.h is included before mutex.hxx
+
+ * src/clibincl/stream.inl (Cyg_StdioStream::set_error()):
+ Add missing unlock_me()
+
+ * src/stdio/common/fflush.cxx:
+ Separate most of code for fflush(NULL) into separate
+ cyg_libc_stdio_flush_all_but() function, which has the extra
+ capability of omitting one stream
+
+ * src/stdio/common/stderr.cxx:
+ * src/stdio/common/stdin.cxx:
+ * src/stdio/common/stdout.cxx:
+ * src/stdio/common/vsnprintf.cxx:
+ * src/stdio/common/vsscanf.cxx:
+ Add missing clibincl/stdiosupp.hxx include
+
+ * src/stdio/common/stream.cxx (Cyg_StdioStream::read()):
+ When reading, ensure we flush all output streams
+
+ * src/stdio/common/stream.cxx (Cyg_StdioStream::flush_output_unlocked):
+ Flush the device as well
+
+1999-04-15 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/streambuf.cxx (set_buffer):
+ * src/stdio/common/stdioinlines.cxx (_setbuf):
+ * src/clibincl/streambuf.inl:
+ * src/clibincl/streambuf.hxx:
+ * src/clibincl/stream.hxx (class Cyg_StdioStream):
+ * include/pkgconf/libc.h:
+ * include/stdio.inl (setbuf):
+ Fix dumb typo: BUFSIZE -> BUFSIZ
+ This fixes PR19837
+
+1999-04-15 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/stdioinlines.cxx (_setbuf):
+ * include/stdio.inl (setbuf):
+ Use _IONBF when buf==NULL, and _IOLBF otherwise.
+ Fix for PR 19836
+
+1999-04-15 John Dallaway <jld@cygnus.co.uk>
+
+ * include/pkgconf/libc.h: Tidy display string capitalization.
+
+1999-04-12 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Clarify CDL description of CYGNUM_LIBC_MALLOC_MEMPOOL_SIZE
+
+ * tests/signal/signal2.c: Try harder to generate an exception by
+ accessing a misaligned address
+ Don't handle SIGTRAP any more
+ Part of fix for PRs 19731/19607
+
+1999-04-07 Jesper Skov <jskov@cygnus.co.uk>
+ PR 19667
+ * src/support/mainthread.cxx:
+ Changed to use the new Cyg_Thread constructor.
+
+1999-04-07 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * tests/signal/signal2.c (main): Use new macro
+ HAL_VSR_SET_TO_ECOS_HANDLER if defined, to wrest control from
+ CygMon, for example, by reinstalling eCos' default VSRs for
+ exceptions that we are provoking.
+
+1999-03-29 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/signal/siginit.cxx: Include stdlib.h for exit()
+ Fix for PR 19720
+
+1999-03-29 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/time/clock.c (test): Disable instruction cache
+ Hopefully fixes PR 19308
+
+1999-03-29 Jesper Skov <jskov@cygnus.co.uk>
+
+ * tests/signal/signal2.c: Disabled test 3 for PPC as it cannot
+ trap division by zero.
+
+1999-03-26 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/support/main.cxx (main): Invoke cyg_user_start() if no kernel
+ Only sensible thing to do in our default main in a non-kernel config
+
+1999-03-25 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/time/time.c:
+ Increase MAX_TIMEOUT since the sparclite gets very close to overrunning
+ it even when working.
+ Should return -1 iff CYGSEM_LIBC_TIME_TIME_WORKING isn't defined
+ Cosmetic changes
+
+1999-03-25 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * tests/time/time.c (test): Take into account setting of
+ CYGSEM_LIBC_TIME_SETTIME_WORKING ie. does cyg_libc_time_settime()
+ work? If not, check that it returns an error.
+ This was exposed by the random combo in PR#19479.
+
+1999-03-23 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Rename CYGSEM_LIBC_RAND_SIMPLEST and CYGSEM_LIBC_RAND_KNUTH1 to
+ CYGIMP_...
+
+ Add another rand implementation CYGIMP_LIBC_RAND_SIMPLE1 which is
+ the default
+
+ Part of fix for PR 19562
+
+ * include/sys/cstartup.h:
+ Tidy and remove unnecessary dependencies
+
+ * src/stdlib/rand.cxx:
+ Rename algorithms from CYGSEM_... to CYGIMP_...
+ Add new "simple1" algorithm
+
+ * tests/ctype/ctype.c:
+ Tidy
+
+ * tests/stdlib/rand3.c:
+ Fix so that 0..RAND_MAX is split evenly over buckets, which it wasn't
+ before
+ Deal with case of RAND_MAX not being divisible by NUM_BUCKETS
+ exactly
+ Increase TEST_LENGTH to 200000 to provide more representative sample
+ Add CYG_TEST_INFO output to help ensure it doesn't time out
+ Tidy
+
+ * tests/stdlib/rand4.c:
+ Only fail if more than _two_ thirds (rather than one third) match.
+ This is because half would match for a perfectly random distribution
+ This is the rest of the fix for PR 19562
+ Cosmetic changes
+
+1999-03-22 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * src/support/mainthread.cxx (CYGNUM_LIBC_MAIN_STACK_SIZE):
+ Use CYGNUM_HAL_STACK_SIZE_TYPICAL for the stack size instead of
+ CYGNUM_HAL_MINIMUM_STACK_SIZE.
+
+1999-03-22 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/PKGconf.mak: Add -Wno-format when building strftime otherwise
+ it generates warnings for things that we do want to test (null
+ string, and %y format)
+
+1999-03-19 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h (CYGNUM_LIBC_TIME_DST_DEFAULT_STATE):
+ Put brackets back round negative number since sdf says the config
+ tool is fixed now (PR 19537)
+
+ Add new CYGSEM_LIBC_RAND_SIMPLEST and CYGSEM_LIBC_RAND_KNUTH1
+ options for different rand() algorithms in a so far failed attempt
+ to fix PR 19562
+
+ * src/stdlib/rand.cxx:
+ Add new optional algorithm from Knuth vol.2
+
+ * tests/stdlib/rand4.c:
+ Some tidies
+ Don't run test when using simplest algorithm
+
+ * tests/signal/signal2.c (main):
+ Don't try to make an FPE on tx39 - its possible to detect but requires
+ too much HAL work to be sensible
+
+1999-03-18 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/signal/siginit.cxx (cyg_libc_signals_hwexcept_handler):
+ Use HAL_ENABLE_INTERRUPTS() rather than kernel to enable interrupts
+
+1999-03-18 Mark Galassi <rosalia@cygnus.com>
+
+ * tests/PKGconf.mak (TESTS): added rand4 compilation.
+
+ * tests/stdlib/rand4.c: added this test for periodicity in the
+ least significant bit of rand().
+
+1999-03-18 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h: Remove CYGFUN_LIBC_TIME_POSIX dependency
+ on CYGPKG_LIBC_STDIO
+
+ * src/stdlib/itoa.cxx:
+ New file to convert integers to ascii
+
+ * include/stdlib.h:
+ Add proto for new cyg_libc_itoa() function
+
+ * include/time.inl:
+ Rework __asctime_r() to use memcpy() and cyg_libc_itoa() rather than
+ sprintf()
+
+ * src/PKGconf.mak:
+ Build stdlib/itoa.cxx
+
+ The above changes fix PR 19448
+
+1999-03-17 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/time.h: Add #define of __time_t_defined to placate newlib
+ if it is used by accident. This is just a temporary workaround though.
+
+1999-03-16 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * src/PKGconf.mak: Add compile option to step around ARM compiler bug.
+
+1999-03-16 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h (CYGNUM_LIBC_TIME_DST_DEFAULT_STATE):
+ Don't use parentheses for now
+
+ * src/stdio/common/stream.cxx (refill_read_buffer):
+ Silence bogus compiler warning
+
+1999-03-16 Jesper Skov <jskov@cygnus.co.uk>
+
+ * tests/signal/signal2.c (main): Enable SIGSEGV test for
+ i386/Linux.
+
+
+1999-03-15 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/signal/siginit.cxx (cyg_libc_signals_hwexcept_handler):
+ Only enable interrupts if they were disabled
+
+ * include/sys/timeutil.h:
+ * src/time/timeutil.cxx:
+ Add FIX ME line as a reminder that the workaround there can go away
+ in future
+
+ * include/pkgconf/libc.h:
+ Add proper define for CYGSEM_LIBC_EXIT_CALLS_FFLUSH
+ Put brackets round negative CYGNUM_LIBC_TIME_DST_DEFAULT_STATE define
+ Fix run time typo
+
+ * include/time.inl (__localtime_r):
+ Include sys/timeutil.h before this to get
+ cyg_libc_time_normalize_structtm()
+
+1999-03-12 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * include/sys/timeutil.h:
+ * src/time/timeutil.cxx: Remove 'const' from char arrays since
+ this fails [silently] on ARM when -fwritable-strings (PR19440)
+
+1999-03-12 Jesper Skov <jskov@cygnus.co.uk>
+
+ * tests/signal/signal2.c (main): Compiler warnings fix was
+ slightly broken.
+
+1999-03-12 Jesper Skov <jskov@cygnus.co.uk>
+ PR 19473
+ * tests/signal/signal2.c (main):
+ Disabling SIGTRAP handling on i386/Linux is not a good idea.
+1999-03-11 Jesper Skov <jskov@cygnus.co.uk>
+ PR 19473
+ * tests/signal/signal2.c:
+ Added compiler warnings fix.
+ Added N/A handling for i386/Linux.
+
+1999-03-10 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * include/pkgconf/libc.h: Force "haldiag" device to be present.
+ 'asctime' and friends need 'stdio' as well.
+
+ * include/time.inl: Fix syntax error on difftime() declaration.
+
+1999-03-08 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * src/clibincl/stream.hxx: <cyg/infra/cyg_ass.h> needed for this file.
+
+ * src/stdio/common/vsscanf.cxx (str_read): Fix problem with string
+ pointer [created by merge with new I/O package].
+
+1999-03-05 John Dallaway <jld@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Add legal values for CYGNUM_LIBC_TIME_STD_DEFAULT_OFFSET
+ and CYGNUM_LIBC_TIME_DST_DEFAULT_OFFSET.
+
+1999-03-05 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/time.inl (cyg_libc_time_year_is_leap):
+ Fix bug with modulo year 400
+ Fix typo in asctime_r macro
+ Fix gmtime_r, and mktime as a result of testing
+
+ * tests/time/asctime.c, tests/time/ctime.c, tests/time/gmtime.c,
+ tests/time/gmtime.c, tests/time/localtime.c, tests/time/mktime.c,
+ tests/time/strftime.c, tests/time/time.c:
+ New tests
+
+ * tests/PKGconf.mak:
+ Build above new tests
+
+ * include/pkgconf/libc.h:
+ Add reminder FIX ME about extra config option
+
+ * src/time/strftime.cxx:
+ Fix %w and %Y parameters as a result of testing
+
+ * src/time/timeutil.cxx:
+ Fix cyg_libc_time_normalize_structtm() as a result of testing
+ of mktime()
+
+ * tests/time/clock.c:
+ Reformat, remove obsolete bits and tidy
+
+ * include/time.h:
+ Add Cyg_libc_time_dst type and new functions
+ cyg_libc_time_setzoneoffsets(), cyg_libc_time_setdst(),
+ cyg_libc_time_getzoneoffsets(), cyg_libc_time_settime()
+
+ * include/time.inl:
+ Implement the above functions. This allows us to adjust for timezone
+ diffences and set the time.
+ Change localtime() to adjust for STD/DST
+ Change mktime() to adjust for STD/DST
+
+ * include/libc.h:
+ Add new config options CYGSEM_LIBC_TIME_SETTIME_WORKING
+ and component CYGPKG_LIBC_TIME_ZONES containing options
+ CYGNUM_LIBC_TIME_DST_DEFAULT_STATE,
+ CYGNUM_LIBC_TIME_STD_DEFAULT_OFFSET,
+ CYGNUM_LIBC_TIME_DST_DEFAULT_OFFSET
+
+ * src/strftime.cxx:
+ Adjust handling of %Z to _not_ deal with STD/DST
+
+ * src/time/settime.cxx:
+ New file to implement cyg_libc_time_settime()
+
+ * src/PKGconf.mak:
+ Build settime.cxx
+
+ * src/time/timeutil.cxx:
+ Supply outline versions of cyg_libc_time_setzoneoffsets(),
+ cyg_libc_time_setdst(), and cyg_libc_time_getzoneoffsets()
+ Add variables for STD/DST state
+ Some minor comment changes
+
+ * include/errno.h:
+ Use CYGBLD_ATTRIB_CONST instead of __attribute__((const)) directly
+
+ * include/signal.h:
+ Change format of function comment headers
+
+ * include/signal.inl:
+ Restrict errno.h inclusion to when its actually used
+ Fix a spelling typo
+
+ * include/stdlib.h:
+ Add CYGBLD_ATTRIB_CONST to abs, div, labs, ldiv
+
+ * include/stdlib.inl:
+ Reformat and tidy
+ Include new versions of div and ldiv which are more portable and
+ are cleanly rewritten so aren't covered by the BSD licence, which
+ is now removed
+
+ * src/stdlib/div.cxx, src/stdlib/ldiv.cxx:
+ Non-inline, non-BSD and portable versions of the new versions of div
+ and ldiv from stdlib.inl
+
+ * include/time.h:
+ Much reformatting, tidying and improving comments
+ Change CLOCKS_PER_SEC from 1000 to 1000000
+ Add new functions asctime_r, ctime_r, gmtime_r, localtime_r, clock,
+ difftime, mktime, time, asctime, ctime, gmtime, localtime, strftime
+ Include new time.inl file
+
+ * include/pkgconf/libc.h:
+ Add new options CYGSEM_LIBC_TIME_CLOCK_WORKING,
+ CYGSEM_LIBC_TIME_TIME_WORKING, CYGFUN_LIBC_TIME_POSIX,
+ CYGNUM_LIBC_TIME_CLOCK_TRACE_LEVEL, CYGIMP_LIBC_TIME_ASCTIME_INLINE,
+ CYGIMP_LIBC_TIME_CTIME_INLINE, CYGIMP_LIBC_TIME_DIFFTIME_INLINE,
+ CYGIMP_LIBC_TIME_GMTIME_INLINE, CYGIMP_LIBC_TIME_LOCALTIME_INLINE,
+ CYGIMP_LIBC_TIME_MKTIME_INLINE, CYGIMP_LIBC_TIME_ASCTIME_R_INLINE,
+ CYGIMP_LIBC_TIME_CTIME_R_INLINE, CYGIMP_LIBC_TIME_GMTIME_R_INLINE,
+ and CYGIMP_LIBC_TIME_LOCALTIME_R_INLINE
+
+ * time/asctime.cxx, time/asctime_r.cxx, time/clock.cxx, time/ctime.cxx,
+ time/ctime_r.cxx, time/difftime.cxx, time/gmtime.cxx,
+ time/gmtime_r.cxx, time/localtime.cxx, time/localtime_r.cxx,
+ time/mktime.cxx, time/strftime.cxx, time/time.cxx, time/timeutil.cxx,
+ include/time.inl:
+ New files to implement the new time functions. Many of them simply
+ provide the outline definitions, but the real body of the function
+ comes from time.inl
+
+ * src/PKGconf.mak:
+ Build new .cxx files
+
+ * src/clibincl/stdlibsupp.hxx:
+ Remove _div and _ldiv prototypes since they're no longer needed
+
+ * src/clibincl/timesupp.hxx:
+ Delete as its now obsolete
+
+ * src/time/clock.cxx:
+ Use new CYGSEM_LIBC_TIME_CLOCK_WORKING option to control whether it
+ just returns (clock_t)-1 or not.
+ Much reformatting and tidying
+ Change real imlpementation from _clock to __clock
+ Use CYGBLD_ATTRIB_WEAK_ALIAS now
+
+ * tests/stdlib/div.c, tests/stdlib/ldiv.c:
+ Add some extra tests for handling of negative numbers
+ Reformat and tidy a bit, including removing the test for CYGPKG_LIBC
+ since its now always defined if the test is to be compiled
+
+ * tests/time/clock.c:
+ Remove duplication CYG_TEST_INFO line
+ Check if unimplemented using "(clock_t)-1" and not just "-1"
+
+1999-03-04 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdlib/system.cxx:
+ Make sure system() is a weak alias for __system()
+
+ * include/pkgconf/libc.h: Rework CDL description for
+ CYGDAT_LIBC_STDIO_DEFAULT_CONSOLE and change its default to
+ "/dev/haldiag"
+
+ * src/stdio/common/stream.cxx:
+ Check that dev is valid when passed to stream constructor
+
+ * src/stdio/common/stdiosupp.cxx:
+ Tidy
+
+ * src/support/mainthread.cxx: Make this depend on
+ CYGSEM_LIBC_STARTUP_MAIN_THREAD rather than just CYGPKG_KERNEL
+
+1999-03-04 Gary Thomas <gthomas@cygnus.co.uk>
+
+ Merged in changes from 'ecos-new_devs-19990216-branch'
+
+ (1999-02-24 Jonathan Larmour <jlarmour@cygnus.co.uk>)
+
+ * src/stdio/common/stream.cxx:
+ Add "fix me" comments and remove a couple of commented out lines
+
+ * src/stdio/common/vsnprintf.cxx:
+ * src/stdio/common/vsscanf.cxx:
+ Revert to using pointer to string for private data, not just string.
+ This preserves the state across multiple calls
+
+ (1999-02-24 Gary Thomas <gthomas@cygnus.co.uk>)
+
+ * src/stdio/common/vsscanf.cxx:
+ * src/stdio/common/vsnprintf.cxx:
+ * src/stdio/common/stream.cxx:
+ * src/stdio/common/stdiosupp.cxx:
+ * src/stdio/common/fopen.cxx:
+ * src/clibincl/stream.inl:
+ * src/clibincl/stream.hxx:
+ * src/clibincl/stdiosupp.hxx:
+ * include/pkgconf/libc.h: Changes for new I/O system.
+
+1999-03-03 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdlib/atexit.c: Forgot to config atexit test for
+ CYGFUN_LIBC_ATEXIT option
+
+ * include/pkgconf/libc.h:
+ Require CYGVAR_KERNEL_THREADS_DATA for CYGSEM_LIBC_PER_THREAD_STRTOK
+ This fixes PR 19362
+ Require CYGPKG_KERNEL for thread safe streams
+ Also don't need "requires CYGPKG_KERNEL" for per-thread rand and errno
+ if we already require a finer granularity kernel option
+
+1999-02-25 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h: Fix CYGNUM_LIBC_MAIN_STACK_SIZE by changing
+ CYGPKG_LIBC_STARTUP_MAIN_THREAD -> CYGSEM_LIBC_STARTUP_MAIN_THREAD
+ Fix for PR 19304
+
+1999-02-23 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdlib/system.cxx: Add to implement trivial system() call
+ * include/stdlib.h: Add system() prototype
+ * src/PKGconf.mak: Build system.cxx
+
+ * tests/ctype/ctype.c, tests/i18n/setlocale.c, tests/setjmp/setjmp.c,
+ tests/signal/signal1.c, tests/signal/signal2.c,
+ tests/stdio/sprintf1.c, tests/stdio/sprintf2.c, tests/stdio/sscanf.c,
+ tests/stdio/stdiooutput.c, tests/stdlib/atexit.c,
+ tests/stdlib/atoi.c, tests/stdlib/atol.c, tests/stdlib/bsearch.c,
+ tests/stdlib/div.c, tests/stdlib/getenv.c, tests/stdlib/labs.c,
+ tests/stdlib/ldiv.c, tests/stdlib/malloc1.c, tests/stdlib/malloc2.c,
+ tests/stdlib/malloc3.c, tests/stdlib/qsort.c, tests/stdlib/rand1.c,
+ tests/stdlib/rand2.c, tests/stdlib/rand3.c, tests/stdlib/realloc.c,
+ tests/stdlib/srand.c, tests/stdlib/strtol.c, tests/stdlib/strtoul.c,
+ tests/string/memchr.c, tests/string/memcmp1.c,
+ tests/string/memcmp2.c, tests/string/memcpy1.c,
+ tests/string/memcpy2.c, tests/string/memmove1.c,
+ tests/string/memmove2.c, tests/string/memset.c,
+ tests/string/strcat1.c, tests/string/strcat2.c,
+ tests/string/strchr.c, tests/string/strcmp1.c,
+ tests/string/strcmp2.c, tests/string/strcoll1.c,
+ tests/string/strcpy1.c, tests/string/strcpy2.c,
+ tests/string/strcspn.c, tests/string/strlen.c,
+ tests/string/strncat1.c, tests/string/strncat2.c,
+ tests/string/strncpy1.c, tests/string/strncpy2.c,
+ tests/string/strpbrk.c, tests/string/strrchr.c,
+ tests/string/strspn.c, tests/string/strstr.c, tests/string/strtok.c,
+ tests/string/strxfrm1.c, tests/string/strxfrm2.c, tests/time/clock.c:
+ Use CYG_TEST_NA() macro for non-applicable test configurations
+
+1999-02-20 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/signal.h:
+ * include/signal.inl:
+ * src/signal/raise.cxx:
+ * src/signal/siginit.cxx:
+ * src/signal/signal.cxx:
+ * tests/signal/signal1.c
+ * tests/signal/signal2.c:
+ New files to implement ISO standard signals
+
+ * src/PKGconf.mak (TESTS):
+ * tests/PKGconf.mak (TESTS):
+ Update to build new files above
+
+ * include/stdlib.h:
+ * src/clibincl/stdlibsupp.hxx:
+ Comment and QA changes (including giving better names to some types)
+
+ * include/libc.h:
+ Add new configuration options for signals
+ Add new CYGSEM_LIBC_STARTUP_MAIN_THREAD option
+ Add a note to CYGNUM_LIBC_MAIN_STACK_SIZE option that it may be
+ overriden by HAL
+ Add new CYGFUN_LIBC_ATEXIT option and move ...ATEXIT_HANDLERS under
+ it
+ Add new CYGSEM_LIBC_EXIT_CALLS_FFLUSH option
+ Require CYGSEM_LIBC_STARTUP_MAIN_THREAD for "Invoke default static
+ constructors" option
+
+ * src/stdlib/atexit.cxx:
+ Support above CYGFUN_LIBC_ATEXIT and QA changes
+
+ * src/stdlib/exit.cxx:
+ Support for above new libc.h options, and some QA changes
+
+ * src/support/cstartup.cxx:
+ Add support for new CYGSEM_LIBC_STARTUP_MAIN_THREAD option
+
+ * src/support/mainthread.cxx:
+ Override main stack size if the HAL has a minimum
+
+ * src/string/strncpy.cxx:
+ Use improved algorithm for aligned copies - imported from newlib
+ QA changes
+
+ * src/stdlib/abort.cxx:
+ Support raise(SIGABRT), and some QA
+
+ * include/errno.h:
+ Add const attribute
+
+ * tests/stdlib/abs.c:
+ QA improvements
+
+1999-02-04 Jesper Skov <jskov@cygnus.co.uk>
+
+ * src/support/cstartup.cxx: Only define cyg_libc_main_thread when
+ the kernel is around.
+
+1999-02-01 Jesper Skov <jskov@cygnus.co.uk>
+
+ * tests/time/clock.c: Joined the two test/NOP checks into
+ one.
+ Increased tolerance in attempt to fix PRs 18737,18787,18846.
+ Fixed typo.
+
+1999-01-28 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/string/strtok.cxx:
+ * src/stdlib/rand.cxx:
+ Include <pkgconf/kernel.h> if we use kernel header files
+
+1999-01-25 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdio/sscanf.c (test):
+ CYGSEM_LIBC_STDIO_PRINTF_FLOATING_POINT should be
+ CYGSEM_LIBC_STDIO_SCANF_FLOATING_POINT
+ Fix for PR 18786
+
+ * src/string/strtok.cxx:
+ * src/stdio/common/stdiofiles.cxx:
+ * src/errno/errno.cxx:
+ * src/stdlib/rand.cxx:
+ Give mutex protection objects a libc constructor priority
+
+ * src/support/invokemain.cxx:
+ Add prototype for cyg_hal_invoke_constructors()
+
+ * src/support/mainthread.cxx:
+ Give cyg_libc_dummy_constructor_obj a libc constructor priority,
+ and make its class have a public constructor
+
+ * src/stdio/common/stderr.cxx:
+ * src/stdio/common/stdout.cxx:
+ * src/stdio/common/stdin.cxx:
+ Give cyg_libc_stdio_stdin/out/err static objects a libc constructor
+ priority
+
+ * src/clibincl/streambuf.hxx (class Cyg_StdioStreamBuffer):
+ * src/clibincl/stream.hxx (class Cyg_StdioStream):
+ Remove private copy constructor. Needed to make prioritised
+ static constructors work. Fix for PR 18898
+
+1999-01-22 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/errno/errno.cxx:
+ Include pkgconf/kernel.h otherwise it fails with per-thread errno
+ enabled
+
+ * include/pkgconf/libc.h:
+ Enable per-thread errno by default since that is what POSIX would
+ want
+
+ * tests/time/clock.c (test):
+ Placate compiler by initializing clock_first/second/third anyway,
+ even though they won't be in practice. This is only a test program
+ so adding an extra instruction doesn't matter.
+
+ * src/i18n/locale.cxx (_setlocale):
+ Placate compiler, since it is dumb, by nesting, not serializing, if's
+ This is an idempotent change, but screws up the formatting :-(.
+
+ * src/string/strpbrk.cxx (_strpbrk):
+ Change while loop to do loop to placate compiler. It'll even save an
+ instruction too (wow!)
+
+1999-01-22 John Dallaway <jld@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Add closing curly brace to CYGPKG_LIBC_STRING_STRTOK definition
+
+1999-01-21 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/errno.h:
+ Tidy up and add to header description
+ Change cyg_get_errno_p() to cyg_libc_get_errno_p()
+ Remove ifdef CYGPKG_LIBC
+
+ * include/sys/file_if.h:
+ Remove - move contents to stdio.h
+
+ * include/stdio.h:
+ Tidy up header description
+ Move FILE typedef here from sys/file_if.h
+ SEEK_SET, SEEK_CUR, SEEK_END defined to 0, 1, 2 respectively
+ for backwards compatibility with old UNIX
+ Change definitions of stdin/out/err to be addresses of FILE
+ globals - even though they're actually Cyg_StdioStream it'll work
+
+ * include/pkgconf/libc.h:
+ Make CYGPRI_LIBC_WEAK et al macros depend on new ones in infra
+ Reorganise trace options under the individual components they are
+ associated with.
+ Reorganise thread-safety options under the individual components
+ they are associated with.
+ Add new CYGSEM_LIBC_INVOKE_DEFAULT_STATIC_CONSTRUCTORS option
+ Misc. reformatting
+ Remove dependency on pkgconf/kernel.h - Configuration Tool will
+ generate check macros anyway.
+ Remove CYGPKG_LIBC_TRACE, CYGFUN_LIBC_strtok, CYGPKG_LIBC_RAND
+ options
+ Tidy up description header
+
+ * src/clibincl/clibdata.hxx:
+ * src/clibincl/clibdata.inl:
+ * src/support/clibdata.cxx:
+ Remove and instead rely on each component to initialise its own data
+
+ * src/clibincl/stdiofiles.hxx, src/clibincl/stdiofiles.inl:
+ New files to contain global file list and lock (if applicable).
+ Implemented as class with member access functions
+
+ * src/errno/errno.cxx:
+ Reorganise with self-contained per-thread data, if applicable
+ Remove ifdef CYGPKG_LIBC
+ Tidy up description header
+ Rename cyg_get_errno_p() to cyg_libc_get_errno_p()
+
+ * src/stdio/common/fclose.cxx:
+ * src/stdio/common/fflush.cxx:
+ * src/stdio/common/fopen.cxx:
+ * src/stdio/common/freopen.cxx:
+ Remove ifdef CYGPKG_LIBC
+ Use new global file access method from stdiofiles.hxx
+ Tidy up description header
+ Use new CYGBLD_ATTRIB_WEAK_ALIAS
+ Access errno "normally" rather than clibdata way
+
+ * src/stdio/common/stdin.cxx:
+ * src/stdio/common/stdout.cxx
+ * src/stdio/common/stderr.cxx:
+ New files. Implement Cyg_StdioStream objects for each stream. In
+ separate self-contained files so using one doesn't bring in the
+ others
+
+ * src/stdio/common/stdiofiles.cxx:
+ New file. Implements global files array and lock
+
+ * src/stdlib/_exit.cxx:
+ Tidy up description header
+ Remove ifdef CYGPKG_LIBC
+ Use infra CYGBLD* macros
+
+ * src/stdlib/malloc.cxx:
+ Tidy up description header
+ Remove ifdef CYGPKG_LIBC
+ Add pkgconf/kernel.h now that pkgconf/libc.h doesn't have it
+ Use infra CYGBLD* macros
+ Make pool visible externally with weak attribute and new name
+ cyg_libc_malloc_memorypool
+
+ * src/stdlib/rand.cxx:
+ * src/stdlib/strtok.cxx:
+ Reorganise with self-contained per-thread data, if applicable
+ Remove ifdef CYGPKG_LIBC
+ Tidy up description header
+ Use infra CYGBLD* macros
+
+ * src/support/cstartup.cxx:
+ Split into smaller files to make selective linking work better,
+ fix i386 port problem and make GDB happy
+
+ * src/support/environ.cxx:
+ * src/support/invokemain.cxx:
+ * src/support/main.cxx:
+ * src/support/mainthread.cxx:
+ New files from bits of the old cstartup.cxx
+ Add support for CYGSEM_HAL_STOP_CONSTRUCTORS_ON_FLAG
+
+ * src/PKGconf.mak:
+ Update to reflect file additions/deletion
+
+ * tests/stdlib/rand1.c:
+ * tests/stdlib/rand2.c:
+ * tests/stdlib/rand3.c:
+ * tests/stdlib/srand.c:
+ Make conform to coding standards
+ Remove ifdef CYGPKG_LIBC_RAND
+ Tidy up description header
+
+ * tests/string/strtok.c:
+ Make conform to coding standards
+ Remove ifdef CYGFUN_LIBC_strtok
+ Tidy up description header
+
+1999-01-15 Mark Galassi <rosalia@cygnus.com>
+
+ * tests/stdlib/getenv.c (main): added tests for the case in which
+ the user does not supply environ and in which the user supplies a
+ NULL environ.
+
+1999-01-15 Jesper Skov <jskov@cygnus.co.uk>
+
+ * src/support/cstartup.cxx: Added workaround for weak aliasing
+ problem in i386 gcc.
+
+
+1999-01-15 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * include/pkgconf/libc.h (CYGNUM_LIBC_MAIN_STACK_SIZE):
+ (CYGNUM_LIBC_MALLOC_MEMPOOL_SIZE): Change defaults to be
+ more reasonable on small systems.
+
+1999-01-04 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/support/clibdata.cxx:
+ Minor bug with environ not being initialised correctly by
+ default
+
+1998-12-24 Bart Veer <bartv@cygnus.co.uk>
+
+ * src/clibincl/stream.inl (Cyg_StdioStream):
+ check_this() member functions should now be const
+
+1998-12-22 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/string/memchr.cxx (_memchr):
+ treat search value parameter to memchr as an unsigned byte,
+ not a signed int - copied fix from newlib PR 18471
+
+1998-12-21 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdlib/realloc.c:
+ * tests/stdlib/malloc3.c:
+ * tests/stdlib/malloc2.c:
+ Warning cleanup
+
+1998-12-14 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdlib/malloc2.c, tests/stdlib/malloc3.c,
+ tests/stdlib/realloc.c:
+ Only run these tests when we have a coalescing memory allocator
+
+1998-12-14 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/stream.cxx:
+ Only check buffer init success if buffering
+
+ * src/stdio/common/streambuf.cxx (set_buffer):
+ Check for diff of requested size against buffer_size, not
+ get_buffer_size(), since this may return -1, which won't be
+ equal to size, and will cause malloc to be called
+
+1998-12-01 Jesper Skov <jskov@cygnus.co.uk>
+
+ * tests/stdlib/getenv.c (main): Don't declare variables when they
+ are not used.
+
+Thu Nov 26 17:59:12 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/string/strncpy1.c:
+ Fix off-by-one error since it called my_strcmp() and not
+ my_strncmp(), which meant in included the trailing NULL when it
+ shouldn't have.
+
+1998-11-26 Jesper Skov <jskov@cygnus.co.uk>
+
+ * src/stdlib/qsort.cxx (_qsort):
+ * src/stdlib/rand.cxx (_srand):
+ Changed CYG_REPORT_FUNCNAMETYPE to CYG_REPORT_FUNCNAME in void
+ functions.
+
+Mon Oct 26 18:49:00 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/support/cstartup.cxx (cyg_libc_dummy_main):
+ Silence compiler warning with cast of char * to CYG_ADDRWORD
+
+Wed Oct 28 17:31:21 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/time/clock.cxx (_clock):
+ Reorder scaling expression as it was both incorrect and risked
+ overflow.
+ Fix for PR 18076
+
+Mon Oct 19 14:40:06 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/stdio.h (EOF):
+ Change from -64 to (-1), to allow broken code to work :-/
+ Also change other negative defines to be within parentheses
+
+1998-10-19 Mark Galassi <rosalia@cygnus.com>
+
+ * include/pkgconf/libc.h: updated the doc URL
+
+Thu Oct 15 21:33:44 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/clibdata.hxx:
+ Only include kernel thread headers when we're in thread-safe mode
+
+ * src/time/clock.cxx:
+ Only include kernel clock headers if there's a kernel with the
+ right functionality available
+
+ * tests/time/clock.c:
+ Remove unnecessary inclusion of <pkgconf/kernel.h>
+
+ Above changes are required for PR 17229
+
+Wed Oct 14 16:38:55 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/clibdata.hxx, src/clibincl/clibdata.inl:
+ Conditionalise inclusion of clibincl/stdiosupp.hxx and
+ clibincl/stream.hxx. Tidying up PR 17502
+
+Wed Oct 14 14:08:56 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Rename CYGPKG_LIBC_STRING_OPTIMISATIONS to
+ CYGPKG_LIBC_STRING_OPTIMIZATIONS to make it truely merkin.
+
+Tue Oct 13 19:34:41 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h (CYGDAT_LIBC_ARGUMENTS):
+ Add a default argv[0] of "" as many programs assume argc>0
+ The standard allows argv[0] to be "" if the program name
+ is not available
+
+1998-09-26 Bart Veer <bartv@cygnus.co.uk>
+
+ * src/clibincl/stdiosupp.hxx:
+ PR 17502: this header file now does nothing if the stdio option
+ is disabled completely. This is the same behaviour is
+ clibincl/stream.hxx, although arguably the #ifdef protection
+ should happen wherever the header file is #include'd rather than
+ in the header file itself.
+
+ * src/clibincl/clibdata.hxx:
+ PR 17502: this header file still #include's internal stdio-related
+ header files and references the FILE structure, even if stdio is
+ disabled. There were some #ifdef's for CYGPKG_LIBC_STDIO already.
+ One more has been added for _fopen() and _fclose().
+
+1998-09-25 Bart Veer <bartv@cygnus.co.uk>
+
+ * src/clibincl/streambuf.inl (Cyg_StdioStreamBuffer):
+ PR 17487: Reorder the calls to initialize member fields, to
+ eliminate a compiler warning.
+
+Fri Sep 25 19:04:29 1998 Jonathan Larmour <jlarmour@peshwari.cygnus.co.uk>
+
+ * src/errno/errno.cxx, src/stdlib/bsearch.cxx,
+ src/stdlib/qsort.cxx, src/stdlib/rand.cxx, src/string/strtok.cxx,
+ src/time/clock.cxx:
+ Only define tracing variable and tracing level macro when
+ the relevant tracing level config options are set. Otherwise
+ keep the tracing level fixed at 0
+ Fix for PR 17476
+
+ * include/pkgconf/libc.h:
+ Define trace levels only if parent CYGPKG_LIBC_TRACE is defined
+ for consistency with Configuration Tool
+
+
+Fri Sep 25 17:24:45 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/stdioinlines.cxx:
+ Make definition of vscanf() dependent on CYGFUN_LIBC_STDIO_ungetc
+ otherwise _vfscanf() won't be compiled. This therefore would
+ cause a link fail iff selective linking is not enabled.
+ Fix for PR 17455
+
+Fri Sep 25 17:23:17 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdlib/rand.cxx:
+ Make compilation dependent on CYGPKG_LIBC_RAND
+ Fix for PR 17473
+
+ * tests/stdlib/srand.c:
+ Make definition of dummy test pass conditional on CYGPKG_LIBC_RAND
+ not being defined, as well as CYGPKG_LIBC
+ Caused compilation failure when testing PR 17473 fix
+
+Mon Sep 21 17:11:04 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdio/sscanf.c:
+ Make sscanf test conditional on CYGFUN_LIBC_STDIO_ungetc since
+ _vfscanf() only gets compiled if this is defined
+ Fix for PR 17346
+
+1998-09-20 Mark Galassi <rosalia@cygnus.com>
+
+ * include/pkgconf/libc.h: updated CDL doc strings.
+
+Fri Sep 18 22:18:47 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/clibdata.inl (get_errno_p):
+ Rather than this function only being available in thread-safe mode,
+ instead make what it returns be either the per-thread errno, or
+ global errno depending on the configuration.
+ Include <errno.h> (conditionally) to support this change
+
+Wed Sep 16 11:20:31 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Remove "fix me" comment which I forgot to remove before
+
+Tue Sep 15 19:27:57 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Updated descriptions and a few other minor things after review.
+ Notably though, the NDEBUG config option has been removed
+
+1998-09-15 Bart Veer <bartv@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ PR 17201: removed dependency on CYGPKG_KERNEL in the option
+ CYGNUM_LIBC_MAIN_STACK_SIZE, since the actual dependencies cannot
+ be expressed sensibly in the current system.
+
+1998-09-11 Bart Veer <bartv@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Sorting out dependencies for error package.
+
+1998-09-10 Mark Galassi <rosalia@cygnus.com>
+
+ * include/pkgconf/libc.h: started adding doc fields to the
+ cdl_package data, as a pilot for now.
+
+Wed Sep 9 17:41:23 1998 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Add option CYGIMP_LIBC_MALLOC_CXX_DELETE_CALLS_FREE to explicitly
+ control whether the empty delete functions (currently) in
+ kernel/.../common/delete.cxx are enabled; controls code bloat, see
+ the comments in delete.cxx.
+
+Fri Sep 4 16:43:38 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdio/stdiooutput.c:
+ Add a default CYG_TEST_PASS() to make sure the test infra doesn't
+ complain.
+ Also remove the unused string functionsa
+
+Fri Sep 4 15:43:48 1998 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * src/stdlib/exit.cxx (__libc_exit):
+ * src/stdlib/_exit.cxx (__libc__exit):
+ * src/stdlib/malloc.cxx (_free):
+ * src/stdlib/abort.cxx (abort):
+ * src/support/cstartup.cxx (invoke_main):
+ Tracing system asserted cos it was being called incorrectly; these
+ are void functions so you shouldn't give a type to the function
+ reporting call.
+
+Fri Sep 4 15:03:10 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Fix CYGDAT_LIBC_STDIO_DEFAULT_CONSOLE description to refer to
+ the table.cxx file, not table.h
+
+Fri Sep 4 14:38:52 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Add description for CYGDAT_LIBC_STDIO_DEFAULT_CONSOLE since
+ Proven won't be making any changes to the device driver
+ implementation after all.
+ Fix for PR 17148
+
+ * src/clibincl/stream.inl (set_position):
+ Remove "fix me" line. It is obvious that this will have to change
+ with a filesystem interface
+ Fix for PR 17147
+
+ * src/stdio/common/freopen.cxx:
+ Remove "fix me" - I know about this issue
+ Fix for PR 17145
+
+ * src/stdio/common/stream.cxx (read):
+ Remove "fix me" and change to use memcpy
+ Fix for PR 17144
+
+Fri Sep 4 14:36:47 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdio/stdiooutput.c:
+ Actually add it this time!
+
+Fri Sep 4 13:48:13 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdio/stdiooutput.c:
+ Add new tests for misc stdio output functions
+
+ * tests/PKGconf.mak:
+ Build stdiooutput.c test
+
+Fri Sep 4 12:52:10 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/stream.inl (write_byte):
+ Remove bogus assert
+
+ * tests/stdlib/getenv.c (main):
+ Check whether str is NULL before doing a strcmp()
+
+ * tests/stdio/sprintf2.c (main):
+ Reformat to 76 columns
+
+Fri Sep 4 02:10:54 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/stream.hxx, src/stdio/common/stream.cxx:
+ Add new peek_byte method to Cyg_StdioStream
+
+ * src/stdio/input/vfscanf.cxx (_vfscanf):
+ Fix up buffer access to work with new peek_byte method above
+ Fix for PR 16954
+
+Thu Sep 3 19:40:11 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdlib/rand1.c, tests/stdlib/rand2.c,
+ tests/stdlib/rand3.c:
+ Add extra check for CYGPKG_LIBC_RAND to decide whether the test
+ is applicable or not
+
+ * tests/stdlib/rand2.c (test):
+ Use CYGNUM_LIBC_RAND_SEED for default seed, not 1
+
+ * tests/string/strtok.c:
+ Add extra check for CYGFUN_LIBC_strtok to decide whether the
+ test is applicable or not
+
+Wed Sep 2 19:11:40 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/input/fread.cxx, src/stdio/output/fwrite.cxx:
+ Add fread() and fwrite() functions
+
+ * src/PKGconf.mak:
+ Build fread.cxx and fwrite.cxx from above
+
+ * src/stdio/common/stream.cxx:
+ Reformat to 76 columns
+ In write(), move initialisation of *bytes_written to start
+ In read(), move initialisation of *bytes_read to start
+
+ * include/stdio.h:
+ Reformat to 76 columns
+
+ Replace all references to the ANSI
+ standard to instead by the ISO C standard
+
+ Add commented argument names for "documentation"
+
+ Add fread() and fwrite() prototypes
+
+ * src/clibincl/stdiosupp.hxx:
+ Copy the above changes from stdio.h, and add _fread() and _fwrite()
+ prototypes
+
+ * src/stdio/output/fputs.cxx, src/stdio/input/fgets.cxx:
+ Reformat to 76 columns
+
+Wed Sep 2 15:41:15 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/input/vfscanf.cxx:
+ Reformat to 76 columns
+
+Wed Sep 2 14:46:18 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/fflush.cxx:
+ Use trylock_me() instead of lock_me(), and loop to prevent
+ deadlocks
+
+ * src/clibincl/stream.hxx, src/clibincl/stream.inl:
+ Add trylock_me() method
+
+ * src/clibincl/stream.hxx, src/clibincl/stream.inl,
+ src/stdio/common/fflush.cxx:
+ Reformat to 76 columns
+
+Wed Sep 2 12:24:27 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Change 0x7fff to 0x7fffffff. Oops!
+ give main stack size option a legal_values field
+ Undefine tracing by default
+ Add some more description in the header
+
+Tue Sep 1 20:02:07 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/i18n/setlocale.c (cyg_package_start):
+ Fix typo - extra "x" for no reason at all! :-)
+
+Tue Sep 1 19:44:58 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/i18n/locale.cxx:
+ Fix bug in find_locale_data() that miscalculated size of
+ all_locales
+
+ Make find_locale_data() match the locale "" and add some
+ other things in _setlocale() to ensure that "C" gets returned
+ when the default locale "" is passed.
+
+ Only check the locale pointer when it is non-NULL
+
+ * tests/i18n/setlocale.c:
+ New tests for setlocale()
+
+ * tests/PKGconf.mak:
+ Update to build setlocale.c test
+
+ * src/support/cstartup.cxx:
+ Don't actually call system default main() "main" otherwise GDB
+ gets confused and thinks its the entry point. Instead make a weak
+ alias and call the real function something different.
+
+Tue Sep 1 18:31:42 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/i18n/locale.cxx (_setlocale):
+ Fix tracing macro name and remove "str maybe used before
+ initialised" warning
+
+ * tests/stdlib/qsort.c:
+ Correct file description header
+
+Tue Sep 1 17:04:32 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/locale.h, src/clibincl/i18nsupp.hxx, src/i18n/locale.cxx:
+ New files to add support for locales as defined by the ISO C
+ standard. i.e. setlocale() and localeconv() functions and some
+ other bits
+
+ * include/pkgconf/libc.h:
+ Add CYGNUM_LIBC_MAX_LOCALE_NAME_SIZE config option for locale
+ support
+
+ * src/PKGconf.mak:
+ build locale.cxx
+
+ * include/errno.h, src/clibincl/ctypesupp.hxx:
+ Tidy up to 76 columns
+
+Tue Sep 1 00:24:22 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Move environment-related options from stdlib into new
+ CYGPKG_LIBC_STARTUP component. Also add options for main()'s
+ arguments (CYGPKG_LIBC_ARGUMENTS), main()'s default stack size
+ (CYGNUM_LIBC_MAIN_STACK_SIZE), number of atexit handlers
+ (CYGNUM_LIBC_ATEXIT_HANDLERS), and whether _exit() stops the
+ system (CYGSEM_LIBC_EXIT_STOPS_SYSTEM).
+
+ * src/clibincl/stdlibsupp.hxx:
+ Fix a few comment bugs, and add new
+ cyg_libc_invoke_atexit_handlers() function prototype
+
+ * src/stdlib/_exit.cxx, src/stdlib/atexit.cxx, src/stdlib/exit.cxx:
+ Implement exit(), atexit() and _exit() correctly now. Also
+ includes cyg_libc_invoke_atexit_handlers() in atexit.cxx. Now
+ we get the correct behaviour of atexit(), and exit() invokes the
+ atexit handlers and fflushs all the stdio streams. Add plenty of
+ tracing of asserts too.
+
+ * src/support/cstartup.cxx:
+ Make main_thread object an exported global. Allow user-settable
+ arguments. Add MUCH more tracing and asserts. Improve comments.
+ Tidy up to 76 columns
+
+ * tests/stdlib/atexit.c:
+ Add simple test for atexit() and it calling registered functions
+
+ * tests/PKGconf.mak:
+ Build atexit.c test
+
+Mon Aug 31 18:54:48 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdlib/getenv.cxx, tests/stdlib/getenv.c:
+ Add support for getenv(), and some tests to ensure it works
+
+ * src/PKGconf.mak, tests/PKGconf.mak:
+ Update to include getenv.cxx and getenv.c test
+
+ * src/clibincl/clibdata.hxx:
+ remove prototype for environ - we expect files needing it to
+ define it themselves
+
+ * src/support/clibdata.cxx:
+ Tidy up to 76 columns and add definition of char **environ, but
+ with a configurable initialiser (see libc.h below)
+
+ * tests/stdlib/abs.c (main):
+ Tidy up to 76 columns
+
+ * src/stdlib/malloc.cxx:
+ Tidy up to 76 columns and remove warning for undefined _memcpy()
+ by changing to memcpy(), and casting away signedness
+
+ * include/pkgconf/libc.h:
+ Add CYGPKG_LIBC_ENVIRONMENT and CYGDAT_LIBC_DEFAULT_ENVIRONMENT
+ configuration options
+
+ * include/pkgconf/libc.h, src/clibincl/clibdata.hxx:
+ Tidy up to 76 columns
+
+ * include/stdlib.h:
+ Add getenv() prototype and tidy up to 76 columns
+
+ * src/clibincl/stdlibsupp.hxx:
+ Add _getenv() prototype
+
+Mon Aug 31 13:37:08 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdlib/malloc.cxx:
+ Add realloc()
+
+ * tests/stdlib/realloc.c:
+ Add this file to test new realloc() functionality
+
+ * tests/PKGconf.mak:
+ Build realloc test
+
+ * tests/stdlib/malloc3.c (main), tests/stdlib/malloc2.c (main),
+ tests/stdlib/malloc1.c (main):
+ Conditionalise local vars to prevent warnings
+
+ * tests/stdlib/malloc3.c (fill_with_data):
+ Move '{' into "verb" line
+
+ * include/pkgconf/libc.h:
+ Require infra tracing support to allow tracing
+
+ * include/stdlib.h:
+ Add realloc()
+
+ * src/clibincl/stdlibsupp.hxx:
+ Update the commented argument names from stdlib.h, including realloc()
+
+1998-08-28 Bart Veer <bartv@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ * src/clibincl/clibdata.hxx, src/time/clock.cxx:
+
+ Updated for new kernel configuration option symbol names
+
+Fri Aug 28 19:18:25 1998 Hugo Tyson <hmt@cygnus.co.uk>
+
+ Changed the entry below to sat "tx39" instead of "mn10300".
+ It's been a long week.
+
+Fri Aug 28 18:59:20 1998 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * src/support/cstartup.cxx: Add a weakly named main to allow the
+ default configuration to link on the tx39 which has no
+ scalextric linking yet. The static Cyg_Thread main_thread object
+ below continues to exist, though unreferenced, so all its
+ descendants must exist too.
+
+Fri Aug 28 08:54:29 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/stdlib.h:
+ Add commented argument names Add exit(), and atexit(). And move
+ these along with abort() and _exit() to a new section.
+
+ * src/stdlib/atexit.cxx, src/stdlib/exit.cxx:
+ Add trivial versions of atexit() and exit()
+
+ * include/pkgconf/libc.h:
+ Add CYGNUM_LIBC_MAIN_STACK_SIZE config option
+
+ * include/sys/cstartup.h, src/support/cstartup.cxx, src/PKGconf.mak:
+ New files to provide a new function cyg_iso_c_support(), which
+ invokes main "correctly".
+
+ * tests/ctype/ctype.c, tests/setjmp/setjmp.c, tests/stdio/sprintf1.c,
+ tests/stdio/sprintf2.c, tests/stdio/sscanf.c, tests/stdlib/abs.c,
+ tests/stdlib/atoi.c, tests/stdlib/atol.c, tests/stdlib/bsearch.c,
+ tests/stdlib/div.c, tests/stdlib/labs.c, tests/stdlib/ldiv.c,
+ tests/stdlib/malloc1.c, tests/stdlib/malloc2.c,
+ tests/stdlib/malloc3.c, tests/stdlib/qsort.c, tests/stdlib/rand1.c,
+ tests/stdlib/rand2.c, tests/stdlib/rand3.c, tests/stdlib/srand.c,
+ tests/stdlib/strtol.c, tests/stdlib/strtoul.c,
+ tests/string/memchr.c, tests/string/memcmp1.c,
+ tests/string/memcmp2.c, tests/string/memcpy1.c,
+ tests/string/memcpy2.c, tests/string/memmove1.c,
+ tests/string/memmove2.c, tests/string/memset.c,
+ tests/string/strcat1.c, tests/string/strcat2.c,
+ tests/string/strchr.c, tests/string/strcmp1.c,
+ tests/string/strcmp2.c, tests/string/strcoll1.c,
+ tests/string/strcoll2.c, tests/string/strcpy1.c,
+ tests/string/strcpy2.c, tests/string/strcspn.c,
+ tests/string/strlen.c, tests/string/strncat1.c,
+ tests/string/strncat2.c, tests/string/strncpy1.c,
+ tests/string/strncpy2.c, tests/string/strpbrk.c,
+ tests/string/strrchr.c, tests/string/strspn.c,
+ tests/string/strstr.c, tests/string/strtok.c,
+ tests/string/strxfrm1.c, tests/string/strxfrm2.c,
+ tests/time/clock.c:
+
+ Modify all tests to use new startup mechanism, and cyg_iso_c_start()
+
+Fri Aug 28 00:29:38 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/stream.cxx:
+ Add #ifdef CYGSEM_LIBC_STDIO_WANT_BUFFERED_IO around all accesses to
+ flags.last_buffer_op_was_read. Fix for PR 16997
+
+Thu Aug 27 01:12:42 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/sys/file_if.h:
+ Fix comments and remove cyg_get_file_star()
+
+Wed Aug 26 20:24:32 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Remove #define CYGPKG_LIBC is that is meant to live in
+ <pkgconf/system.h> after all
+
+Wed Aug 26 19:39:23 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ More fixes to CDL stuff to make it work better, and look better on
+ the screen
+
+Tue Aug 25 20:21:41 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Make some fixes after running the ConfigTool
+
+Tue Aug 25 16:46:28 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h (CYGNUM_LIBC_STDIO_BUFSIZE):
+ Fix typo of CYGNUM_LIBC_STDIO_BUFSIZE
+
+Tue Aug 25 15:10:57 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Tidy up CDL stuff a bit more, prior to checking it actually works.
+
+Tue Aug 25 11:38:52 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdlib/malloc2.c (main):
+ Prevent calls to CYG_TEST_STILL_ALIVE for now
+
+Tue Aug 25 05:39:28 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Change cosmetic paragraph alignment.
+
+Tue Aug 25 03:11:34 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/support/clibdata.cxx:
+ Make stderr initialise with buffer size 0.
+ For PR 16955
+
+Mon Aug 24 17:38:46 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ First pass at CDL-ifying the C library configuration. Currently
+ deliberately disabled as there a few outstanding issues.
+
+Mon Aug 24 16:14:22 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/output/vfnprintf.cxx (_vfnprintf):
+ clear up warning for unused argument
+
+ * tests/stdlib/malloc2.c (NUM_ITERATIONS):
+ Lower to 100 from 50000 so it won't take too long under the simulator
+
+Thu Aug 20 17:48:43 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdlib/malloc.cxx:
+ Remove now unnecessary inclusion of kernel/ktypes.h
+
+Wed Aug 19 19:19:14 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdio/sprintf1.c, tests/stdio/sprintf2.c,
+ tests/stdio/sscanf.c, tests/stdlib/atoi.c, tests/stdlib/atol.c,
+ tests/stdlib/rand1.c, tests/stdlib/rand2.c, tests/stdlib/rand3.c,
+ tests/stdlib/srand.c, tests/stdlib/strtol.c,
+ tests/stdlib/strtoul.c, tests/string/strtok.c,
+ tests/time/clock.c:
+ Add parameters to "main()" to silence warnings
+
+Wed Aug 19 18:52:59 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/stream.cxx (refill_read_buffer):
+ Put conditional error check into same #ifdef and if as what was being
+ checked in the first place!
+
+Wed Aug 19 18:49:19 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/stream.inl:
+ Reorder Cyg_StdioStream::check_this() to be first to silence
+ warnings
+
+Tue Aug 18 16:10:03 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * ecc/language/c/libc/current/src/clibincl/clibdata.hxx,
+ ecc/language/c/libc/current/src/errno/errno.cxx,
+ ecc/language/c/libc/current/src/stdio/common/fopen.cxx,
+ ecc/language/c/libc/current/src/stdlib/rand.cxx,
+ ecc/language/c/libc/current/src/string/strtok.cxx:
+ Rename CYGIMP_LIBC_INTERNAL_DATA_PREAMBLE,
+ CYGIMP_LIBC_INTERNAL_DATA_ALLOC_CHECK_PREAMBLE,
+ CYGVAR_LIBC_INTERNAL_DATA, and
+ CYGIMP_LIBC_INTERNAL_DATA_CHECK to all have CYGPRI_ prefix instead
+ as recommended by the config name rules
+
+
+Tue Aug 18 14:31:19 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/setvbuf.cxx (_setvbuf):
+ Rename variable names in assert line, otherwise doesn't build
+ with asserts on!
+
+Sun Aug 16 18:15:12 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/input/vfscanf.cxx (_vfscanf):
+ Fix some bugs, although there are some left to fix still. Unrelated
+ to the rest of the checkins, so I will check the partial fix in now.
+
+ * src/clibincl/stream.hxx, src/clibincl/stream.inl,
+ src/stdio/common/stream.cxx:
+ Add parameters to constructor to allow more things to be done at
+ construction time.
+
+ Now we have "new", remove separate "construct" method
+
+ Add more documentation on constructor
+
+ As requested by code review, where possible, move boolean flags
+ into separate packed bitfield structure for space efficiency
+
+ Make readbuf_char be usable all the time rather than when configured
+ not to be buffering, as it is also needed for non-buffered mode i.e.
+ _IONBF
+
+ * src/stdio/common/fopen.cxx:
+ Change to use new method of construction from above, using new
+
+ Use thread-specific data, rather than global. And so change errnos
+ to access errno entry specifically
+
+ Make process_mode() check for append mode too
+
+ Reformat for coding standards to have { in same line as "verb"
+
+ * src/stdio/common/setvbuf.cxx:
+
+ Change to cope with different way of dealing with buffering policy
+ flags etc. in Cyg_StdioStream
+
+ * src/stdio/common/vsnprintf.cxx, src/stdio/common/vsscanf.cxx,
+ src/support/clibdata.cxx:
+ Change construction of streams to use new parameters added above,
+ and change to use _IONBF mode for string stdio functions,
+ otherwise its a waste of memory. And use _IONBF for stderr as the
+ ISO standard tells us to!
+
+ Reformat for coding standards to have { in same line as "verb"
+
+ * src/clibincl/streambuf.hxx, src/clibincl/streambuf.inl:
+ Change constructor so that it can be set with default size and
+ dynamic buffer (if applicable)
+
+ Fix minor bug in destructor - should only call free when allocated
+ dynamically
+
+ Change get_buffer_size to return -1 if the buffer was not allowed
+ to be set up
+
+ * src/stdio/common/streambuf.cxx:
+ Remove unnecessary stdio.h include and add extra comment to whether
+ to free bit in set_buffer()
+
+ * src/stdio/common/freopen.cxx:
+ Change @@@ to standard fix me string
+
+ * src/stdio/output/fputc.cxx:
+ Remove unnecessary "written" variable
+
+Thu Aug 13 15:37:28 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdlib/_exit.cxx:
+ Included use of "fix me" line to ensure this is discussed before
+ release
+
+ * include/stdlib.h, src/stdlib/abort.cxx, src/PKGconf.mak:
+ Add abort.cxx to implement abort(), albeit naively
+
+Thu Jul 30 18:03:09 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/vsscanf.cxx (_vsscanf),
+ src/stdio/common/vsnprintf.cxx (_vsnprintf):
+ Fix initialiser of pseudo string device table that didn't get updated
+ when the table changed (Bad proven, no biscuit).
+
+ * src/clibincl/stream.inl (~Cyg_StdioStream):
+ Move invalidation of magic_validity_word to after unlock_me(),
+ otherwise it always fails!
+
+Tue Jul 28 21:29:53 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/clibdata.hxx:
+ Shorten over-long lines
+
+Tue Jul 28 20:28:23 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/stream.hxx (class Cyg_StdioStream),
+ src/clibincl/stream.inl, src/stdio/common/stream.cxx:
+ Clarify some comments and get the CYGDBG_DEFINE_CHECK_THIS and
+ CYG_ASSERTCLASS stuff going
+
+ * src/clibincl/stream.inl:
+ Put '{'s on same line as "action" as per coding standards
+ Shorten over-long lines
+
+Tue Jul 28 15:31:06 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/streambuf.inl, src/stdio/common/streambuf.cxx:
+ Move set_buffer() from streambuf.inl to new file streambuf.cxx
+
+ * src/PKGconf.mak (COMPILE):
+ Build new file streambuf.cxx
+
+ * src/clibincl/streambuf.hxx (class Cyg_StdioStreamBuffer):
+ Add METHODS comment
+
+ * src/stdio/common/stream.cxx:
+ Put '{'s on same line as "action" as per coding standards
+ Shorten over-long lines
+
+Tue Jul 28 00:26:36 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/stdlib.inl, src/stdio/input/vfscanf.cxx,
+ src/stdio/output/vfnprintf.cxx, src/stdlib/div.cxx,
+ src/stdlib/ldiv.cxx, src/stdlib/qsort.cxx, src/stdlib/strtol.cxx,
+ src/stdlib/strtoul.cxx, src/string/strtok.cxx:
+
+ Include proper Berkeley license inline in the file, rather than
+ referring to an external file
+
+ * doc/COPYING.UCB:
+ Remove, now that it isn't referred to any more
+
+Mon Jul 27 23:34:26 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/ctype.h, include/ctype.inl, include/errno.h,
+ include/stdio.h, include/stdio.inl, include/stdlib.h,
+ include/stdlib.inl, include/string.h, include/string.inl,
+ include/time.h, include/sys/file_if.h, src/PKGconf.mak,
+ src/clibincl/clibdata.hxx, src/clibincl/clibdata.inl,
+ src/clibincl/ctypesupp.hxx, src/clibincl/stdiosupp.hxx,
+ src/clibincl/stream.hxx, src/clibincl/streambuf.hxx,
+ src/clibincl/streambuf.inl, src/clibincl/stringsupp.hxx,
+ src/clibincl/timesupp.hxx, src/ctype/isalnum.cxx,
+ src/ctype/isalpha.cxx, src/ctype/iscntrl.cxx,
+ src/ctype/isdigit.cxx, src/ctype/isgraph.cxx,
+ src/ctype/islower.cxx, src/ctype/isprint.cxx,
+ src/ctype/ispunct.cxx, src/ctype/isspace.cxx,
+ src/ctype/isupper.cxx, src/ctype/isxdigit.cxx,
+ src/ctype/tolower.cxx, src/ctype/toupper.cxx,
+ src/errno/errno.cxx, src/stdio/common/snprintf.cxx,
+ src/stdio/common/sprintf.cxx, src/stdio/common/sscanf.cxx,
+ src/stdio/common/stdioinlines.cxx, src/stdio/common/stream.cxx,
+ src/stdio/common/ungetc.cxx, src/stdio/common/vsnprintf.cxx,
+ src/stdio/common/vsscanf.cxx, src/stdio/input/fgetc.cxx,
+ src/stdio/input/fgets.cxx, src/stdio/input/fscanf.cxx,
+ src/stdio/input/gets.cxx, src/stdio/input/scanf.cxx,
+ src/stdio/output/fnprintf.cxx, src/stdio/output/fprintf.cxx,
+ src/stdio/output/fputc.cxx, src/stdio/output/fputs.cxx,
+ src/stdio/output/printf.cxx, src/stdlib/_exit.cxx,
+ src/stdlib/abs.cxx, src/stdlib/atof.cxx, src/stdlib/atoi.cxx,
+ src/stdlib/atol.cxx, src/stdlib/div.cxx, src/stdlib/labs.cxx,
+ src/stdlib/ldiv.cxx, src/stdlib/rand.cxx, src/stdlib/strtod.cxx,
+ src/string/memchr.cxx, src/string/memcmp.cxx,
+ src/string/memmove.cxx, src/string/strcat.cxx,
+ src/string/strchr.cxx, src/string/strcmp.cxx,
+ src/string/strcoll.cxx, src/string/strcpy.cxx,
+ src/string/strcspn.cxx, src/string/strlen.cxx,
+ src/string/strncat.cxx, src/string/strncmp.cxx,
+ src/string/strncpy.cxx, src/string/strpbrk.cxx,
+ src/string/strrchr.cxx, src/string/strspn.cxx,
+ src/string/strstr.cxx, src/string/strsuppt.cxx,
+ src/string/strtok.cxx, src/string/strxfrm.cxx,
+ src/support/clibdata.cxx, src/time/clock.cxx:
+ Untabify
+
+Mon Jul 27 23:14:18 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/errno/errno.cxx, src/stdio/input/vfscanf.cxx,
+ src/stdio/output/vfnprintf.cxx, src/stdlib/strtol.cxx,
+ src/stdlib/strtoul.cxx, src/stdlib/malloc.cxx, src/stdlib/qsort.cxx,
+ tests/ctype/ctype.c, tests/stdlib/rand3.c, tests/stdlib/malloc3.c:
+ Remove all mentions of "register" in variable declarations. Also
+ untabify where needed
+
+ * src/stdlib/bsearch.cxx:
+ Untabify this too
+
+
+Mon Jul 27 22:18:51 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/output/fputc.cxx (_fputc):
+ Replace call to stream write() with call to write_byte()
+
+ * src/clibincl/stream.inl (write_byte):
+ Add asserts for stream write() returning odd values for how much has
+ been written
+
+ (bytes_available_to_read):
+ Remove "register" def for variable declaration
+
+Mon Jul 27 22:06:22 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/stdiosupp.cxx:
+ Remove #if 0'd cyg_get_file_star() and unnecessary pseudo string
+ device definition
+
+Mon Jul 27 21:57:25 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h, src/support/clibdata.cxx:
+ Change CYGXXX_LIBC_STDIO_DEFAULT_CONSOLE to
+ CYGDAT_LIBC_STDIO_DEFAULT_CONSOLE
+
+Mon Jul 27 21:49:23 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/clibdata.hxx, src/clibincl/clibdata.inl,
+ src/clibincl/ctypesupp.hxx, src/clibincl/setjmpsupp.hxx,
+ src/clibincl/stdiosupp.hxx, src/clibincl/stdlibsupp.hxx,
+ src/clibincl/stream.hxx, src/clibincl/stream.inl,
+ src/clibincl/streambuf.hxx, src/clibincl/streambuf.inl,
+ src/clibincl/stringsupp.hxx, src/clibincl/timesupp.hxx:
+
+ Change CYGONCE_LIBC_*_{HXX,INL} to CYGONCE_LIBC_CLIBINCL_*_{HXX,INL}
+
+Mon Jul 27 21:34:05 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Change #define XXXXX 1 to #define XXXXX where applicable as per code
+ review
+
+ Also remove obsolete CYGIMP_LIBC_THREAD_START_SUSPENDS_SELF
+
+Mon Jul 27 19:42:27 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/fopen.cxx (_fopen):
+ Use #ifdef, not #if for config options
+
+Mon Jul 27 15:01:51 BST 1998 Chris Provenzano <proven@cygnus.com>
+
+ * src/stdio/common/stream.cxx, src/stdio/common/vsnprintf.cxx
+ * src/stdio/common/vsscanf.cxx:
+ Fixes to compile with the new Cyg_IORB field names.
+
+Thu Jul 9 03:40:21 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdlib/atoi.c, tests/stdlib/atol.c,
+ tests/stdlib/strtol.c, tests/stdlib/strtoul.c:
+ Adjust starting of tests to possibly start scheduler since
+ strtol/stroul rely on errno, which may be a per-thread variable
+
+Thu Jul 9 03:06:25 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/stream.hxx, src/clibincl/stream.inl,
+ src/stdio/common/stream.cxx, src/stdio/common/setvbuf.cxx:
+ Consolidate read and write buffers into single buffer, as it should
+ have been all along
+
+ * src/clibincl/streambuf.hxx, src/clibincl/streambuf.inl:
+ Add drain_buffer() method to speed up the case when we want the
+ buffer completely emptied
+
+Tue Jul 7 21:26:33 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdio/sprintf1.c:
+ Add a couple of new tests that check that very long strings work too
+
+Wed Jul 1 19:52:39 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/stream.hxx, src/clibincl/streambuf.hxx:
+ Do not permit copy constructors
+
+ * src/clibincl/stream.inl, src/stdio/common/fclose.cxx:
+ Make sure we use #ifdef and not #if
+
+ * src/clibincl/streambuf.inl:
+ Use member initialisation list rather than explicit initialisation to
+ reduce warnings
+
+Wed Jul 1 19:17:55 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h and all files using config options:
+ Rename configuration defines to make them more standard
+
+Thu Jun 25 20:09:30 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/string/strcat.cxx:
+ Add parentheses on check to silence warning
+ (Verified by proven)
+
+Thu Jun 25 19:30:01 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdlib/malloc.cxx:
+ Make sure that the malloc pool is initialised before other things
+ can use it. This is done with the hot new constructor ordering
+ feature.
+
+Thu Jun 25 18:27:03 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/input/vfscanf.cxx:
+ Remove bogus ifdef if floating point is _not_ wanted
+
+Thu Jun 25 17:31:42 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/string/strtok.cxx:
+ Fix argument checking to allow first argument of NULL
+
+Thu Jun 25 04:18:50 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/clibdata.inl (get_strtok_last_p):
+ Remove bogus assertion
+
+ * src/stdlib/malloc.cxx:
+ Got sense of alignment check assertion the wrong way round, so negate
+ it
+
+Thu Jun 25 03:56:35 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/string/strxfrm.cxx:
+ Fix argument checking assertions with legitimate nulls here too
+
+Thu Jun 25 03:46:32 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdlib/strtoul.cxx, src/stdlib/strtol.cxx:
+ Fix argument checking assertions to cope with legitimate nulls
+
+Wed Jun 24 09:01:45 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdio/sprintf1.c:
+ Remove extraneous info messages
+
+Wed Jun 24 05:59:17 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdio/sprintf1.c, tests/stdio/sprintf2.c, tests/stdio/sscanf.c,
+ tests/stdlib/rand1.c, tests/stdlib/rand2.c, tests/stdlib/rand3.c,
+ tests/stdlib/srand.c:
+
+ Change large automatic arrays to static arrays to prevent overuse
+ of a potentially small stack
+
+Wed Jun 24 05:45:28 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdio/sprintf1.c, tests/stdio/sprintf2.c, tests/stdio/sscanf.c,
+ tests/stdlib/rand1.c, tests/stdlib/rand2.c, tests/stdlib/rand3.c,
+ tests/stdlib/srand.c, tests/string/strtok.c, tests/time/clock.c:
+
+ Increase thread stack size from 4K to 32K as in some cases it was
+ too small.
+
+
+Tue Jun 23 20:12:31 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdio/sscanf.c:
+ Add extra tests, including floating point conversion testing
+
+Tue Jun 23 17:01:06 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/string/strtok.cxx:
+ Make sure this is only compiled if CYGFUN_LIBC_strtok is defined
+
+Tue Jun 23 06:10:13 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ add some comments - that's all
+
+ * src/stdio/common/stream.cxx:
+ fix case in refill_read_buffer() for what to do when there's nothing
+ left. Now return EAGAIN
+
+ * src/stdio/common/vsscanf.cxx, src/stdio/input/vfscanf.cxx:
+ Get sscanf working properly and passing tests. Also make sure it
+ ignores FP when its not configured
+
+ * src/stdlib/atof.cxx:
+ Only compile at all if strtod() is present
+
+
+Mon Jun 22 19:13:42 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/clibdata.hxx, src/clibincl/clibdata.inl:
+ Conditionalise strtok_last and rand_seed better
+
+Mon Jun 22 14:14:12 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdlib/malloc3.c:
+ Add test for checking that mallocing and freeing repeatedly works
+
+ * tests/PKGconf.mak:
+ Update to reflect addition of the above
+
+Mon Jun 22 13:09:33 BST 1998 Chris Provenzano <proven@cygnus.com>
+
+ * src/stdio/common/fopen.cxx
+ * src/stdio/common/stream.cxx
+ * src/stdio/common/vsnprintf.cxx
+ * src/stdio/common/vsscanf.cxx
+ Include cyg/devs/common/iorb.h instead of iorb.hxx
+
+ * src/stdio/common/stream.cxx
+ Use read_blocking and write_blocking instead of just read and
+ write when accessing devices through the virtual device table.
+
+Sun Jun 21 18:19:13 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/stdioinlines.cxx:
+ Propagate change of return code handling for puts from stdio.inl
+ into here
+
+ * src/stdio/output/fputc.cxx:
+ make sure the right type is used for output - byte not int
+
+ * src/support/clibdata.cxx:
+ Fix #define config mistook. #endif was in wrong place
+
+Sun Jun 21 16:11:04 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/clibdata.hxx, src/clibincl/clibdata.inl:
+ Allow explicit construction to get around a bug when
+ dynamically allocating per-thread structure
+
+Sun Jun 21 16:02:51 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/ctype/ctype.c, tests/setjmp/setjmp.c, tests/stdio/sprintf1.c,
+ tests/stdio/sprintf2.c, tests/stdio/sscanf.c, tests/stdlib/abs.c,
+ tests/stdlib/atoi.c, tests/stdlib/atol.c, tests/stdlib/bsearch.c,
+ tests/stdlib/div.c, tests/stdlib/labs.c, tests/stdlib/ldiv.c,
+ tests/stdlib/malloc1.c, tests/stdlib/malloc2.c, tests/stdlib/qsort.c,
+ tests/stdlib/rand1.c, tests/stdlib/rand2.c, tests/stdlib/rand3.c,
+ tests/stdlib/srand.c, tests/stdlib/strtol.c, tests/stdlib/strtoul.c,
+ tests/string/memchr.c, tests/string/memcmp1.c,
+ tests/string/memcmp2.c, tests/string/memcpy1.c,
+ tests/string/memcpy2.c, tests/string/memmove1.c,
+ tests/string/memmove2.c, tests/string/memset.c,
+ tests/string/strcat1.c, tests/string/strcat2.c,
+ tests/string/strchr.c, tests/string/strcmp1.c,
+ tests/string/strcmp2.c, tests/string/strcoll1.c,
+ tests/string/strcpy1.c, tests/string/strcpy2.c,
+ tests/string/strcspn.c, tests/string/strlen.c,
+ tests/string/strncat1.c, tests/string/strncat2.c,
+ tests/string/strncpy1.c, tests/string/strncpy2.c,
+ tests/string/strpbrk.c, tests/string/strrchr.c,
+ tests/string/strspn.c, tests/string/strstr.c, tests/string/strtok.c,
+ tests/string/strxfrm1.c, tests/string/strxfrm2.c, tests/time/clock.c:
+
+ Update tests to "do the right thing" with all configuration settings
+
+
+Sun Jun 21 04:54:14 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/setjmp/setjmp.c:
+ I have to be careful not to use setjmp() in a way not exactly
+ defined by the standard, so make sure I do, and add a comment
+ documenting these ways.
+
+ Also ensure this test does the right thing in all configurations
+
+Sun Jun 21 04:38:15 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Add extra checks for invalid configurations
+ Also make default for thread safety OFF
+
+ * src/clibincl/clibdata.inl:
+ Adjust indentation
+
+ * src/stdio/output/vfnprintf.cxx:
+ Make printf of -0.0 floating point do the right thing
+
+Sun Jun 21 04:28:00 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/snprintf.cxx, src/stdio/common/sprintf.cxx,
+ src/stdio/common/sscanf.cxx, src/stdio/input/fscanf.cxx,
+ src/stdio/input/scanf.cxx, src/stdio/output/fnprintf.cxx,
+ src/stdio/output/fprintf.cxx, src/stdio/output/printf.cxx:
+
+ Had to remove inline functions with varargs. Which means separating
+ out each function from stdioinlines.cxx into a separate file, as they
+ no longer belong there. So all the above files were created.
+
+ * include/stdio.inl, src/PKGconf.mak,
+ src/stdio/common/stdioinlines.cxx:
+ Changed to take account of the above
+
+
+Sun Jun 21 03:58:42 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdio/sprintf1.c, tests/stdio/sprintf2.c:
+ Update with floating-point tests. Also make sure they DTRT in all
+ configurations
+
+Fri Jun 19 19:33:06 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/support/clibdata.cxx:
+ accidentally initialised stdin/out/err twice
+
+Fri Jun 19 19:09:29 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/support/clibdata.cxx:
+ Another typo
+
+Fri Jun 19 18:59:07 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/support/clibdata.cxx:
+ Missing #endif typo
+
+Fri Jun 19 18:51:42 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/support/clibdata.cxx:
+ Fix initialisation of static data members. Unsure how it worked at
+ all before!
+
+Fri Jun 19 18:01:01 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/stdio.inl:
+ puts should check whether fputs returns non-negative, rather than
+ non-zero
+
+Fri Jun 19 17:22:52 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/clibincl/clibdata.inl:
+ Make inclusion of get_errno_p conditional on thread-safety
+
+Wed Jun 17 10:55:32 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/input/vfscanf.cxx:
+ Add weak alias of vfscanf() to _vfscanf()
+
+Wed Jun 17 09:10:41 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdio/common/fflush.cxx:
+ Initialise err to silence compiler warning
+
+Wed Jun 17 08:59:20 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * Most important is the addition of floating point support in
+ src/stdio/output/vfnprintf.cxx and src/stdio/input/vfscanf.cxx. This
+ also required the addition of atof() and strtod() in stdlib which is
+ definitely no bad thing! Other than that...
+
+ * Fix a whole bunch of stuff I messed up first time round. Also the
+ sprintf and sscanf tests are included again.
+
+Tue Jun 16 16:38:02 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/PKGconf.mak:
+ Typo with not putting comment character at the beginning. Sigh.
+
+Tue Jun 16 14:53:09 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/PKGconf.mak:
+ Forgot to (temporarily) remove fputs test for now
+
+Mon Jun 15 20:40:03 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ Everything to do with stdio has almost completely changed, so there's
+ not much point documenting individual changes.
+
+Mon Jun 15 18:36:01 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/stdlib/malloc2.c:
+ Stop it moaning quite as much when it fails by making it exit sooner
+
+ * tests/time/clock.c :
+ This isn't a compound testcase
+
+Thu Jun 11 17:59:13 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/assert.h
+ Reverse sense of NDEBUG ifdef, that was left in accidentally due
+ to testing
+
+Thu Jun 11 04:58:08 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/errno.h, include/string.h, src/clibincl/stringsupp.hxx:
+ Modify as I've now added an "error" package which defines the error
+ codes and strerror()
+
+ * src/errno/strerror.cxx:
+ Moved to new error package and thus deleted
+
+Wed Jun 10 18:37:37 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/assert.h:
+ create this header and add assert() function
+
+Wed Jun 10 16:23:57 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/stdlib.h, src/clibincl/stdlibsupp.hxx, src/stdlib/malloc.cxx:
+ Add malloc(), calloc() and free() functions
+
+ * include/pkgconf/libc.h:
+ Add malloc memory pool size option
+
+ * tests/stdlib/malloc1.c, tests/stdlib/malloc2.c:
+ new tests for malloc
+
+ * src/PKGconf.mak, tests/PKGconf.mak:
+ Update for new files
+
+Wed Jun 10 15:06:16 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/setjmp/setjmp.c:
+ Add another test
+
+Tue Jun 9 18:20:31 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libc.h:
+ Add some setjmp config's and a macro for the noreturn attribute
+
+ * include/setjmp.h, include/setjmp.inl, src/clibincl/setjmpsupp.hxx,
+ src/setjmp/longjmp.cxx, tests/setjmp/setjmp.c:
+ Added to implement and test setjmp() and longjmp()
+
+ * src/PKGconf.mak, tests/PKGconf.mak:
+ Update for newly added files
+
+Thu Jun 4 01:29:18 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/string/memchr.cxx, src/string/memcmp.cxx, src/string/strcat.cxx,
+ src/string/strchr.cxx, src/string/strcmp.cxx, src/string/strcpy.cxx,
+ src/string/strlen.cxx, src/string/strncat.cxx,
+ src/string/strncmp.cxx, src/string/strncpy.cxx:
+ Rename CYGIMP_LIBC_PREFER_SMALL_TO_FAST to
+ CYGIMP_LIBC_STRING_PREFER_SMALL_TO_FAST
+
+ Also use slower but smaller version when __OPTIMIZE_SIZE__ is
+ defined (which comes from using gcc -Os)
+
+Fri May 29 16:15:04 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/ctype.inl, src/ctype/isxdigit.cxx:
+ Fix bug that numerals aren't considered hex digits
+
+ * include/time.h:
+ Change clock_t and time_t to be signed so that they can accept -1, as
+ required by other libc functions
+
+ * src/clibincl/clibdata.hxx:
+ Fix typo that CYGIMP_LIBC_THREAD_SUPPORT should be ..._SAFETY
+ Also fix macro to allocate thread-specific data to not set variables
+ in a different stack-frame
+
+ * tests/ctype/ctype.c:
+ Fix some misunderstandings in tests, and add a few new ones
+
+ * tests/stdlib/qsort.c:
+ make ctr unsigned to prevent warnings
+
+ * tests/stdlib/strtol.c, tests/stdlib/strtoul.c:
+ Fix some misunderstandings in tests, and add a few new ones
+
+ * tests/string/strrchr.c:
+ Fix off by one error
+
+ * tests/string/strspn.c:
+ Fix case-sensitivity problem, and off-by-one error
+
+ * tests/string/strxfrm1.c:
+ Remove bogus bit of test that doesn't apply to strxfrm, and fix typo
+
+
+Fri May 22 16:33:04 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/PKGconf.mak
+ Remove CXXFLAGS line now that its redundant
+
+ * tests/everything!
+ Do a blitz change of all tests - break some of them down into
+ different files, add new tests, standardize format, fix bugs,
+ update for recent header file changes and much more!
+
+Wed May 20 17:50:04 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/PKGconf.mak:
+ interim checkin for different dir structure for Bart
+
+Fri May 15 20:30:46 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * Tidy up some loose ends I forgot: rename src/include directory to
+ src/clibincl. And add clibdata.inl and timesupp.hxx in there.
+
+Thu May 14 19:56:32 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * Basically everything has changed in the C library. Files have
+ been moved, renamed, deleted and reworked. This is a major
+ revision, and now starts from this new baseline rather than doing
+ incremental changes.
+
+Fri Apr 17 18:43:02 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/ECCconf.mak:
+ added for new build system (actually Bart did this, but didn't
+ update this ChangeLog)
+
+Fri Apr 17 15:03:25 1998 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * src/stdio/device/sim.cxx:
+ Make it build with CYG_EMPTY_STATEMENT; the unadorned one is being
+ removed.
+
+Thu Apr 16 00:24:24 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * All source files:
+ replace ECCIMP_LIBC_* conditional ifdef with CYGIMP_LIBC_*
+
+ * include/eccconf/libc.h:
+ improve comments and reorder a bit
+
+Wed Apr 8 14:35:20 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * Makefile.am, src/Makefile.am, tests/Makefile.am, configure.in:
+ many changes to integrate build structure from release tree
+
+ * src/ctype/Makefile.am, src/ctype/Makefile.in, src/errno/Makefile.am,
+ src/errno/Makefile.in, src/stdio/Makefile.am, src/stdio/Makefile.in,
+ src/stdio/common/Makefile.am, src/stdio/common/Makefile.in,
+ src/stdio/device/Makefile.am, src/stdio/device/Makefile.in,
+ src/stdio/output/Makefile.am, src/stdio/output/Makefile.in,
+ src/stdio/input/Makefile.am, src/stdio/input/Makefile.in,
+ src/stdlib/Makefile.am, src/stdlib/Makefile.in,
+ src/string/Makefile.am, src/string/Makefile.in,
+ src/support/Makefile.am, src/support/Makefile.in,
+ src/time/Makefile.am, src/time/Makefile.in:
+ Remove as they are now redundant with above changes
+
+ * include/Makefile.am:
+ Add to support above changes
+
+ * include/eccconf/libc.h:
+ Change include file for configuration from kernel to system
+
+ * src/include/kerndiag.hxx, src/stdio/device/kerndiag.cxx,
+ src/time/clockfn.cxx:
+ Change kernel include file to eccconf/kernel.h
+
+ * src/include/strngdev.h:
+ remove unnecessary kernel include
+
+ * Makefile.in, aclocal.m4, configure, src/Makefile.in,
+ tests/Makefile.in, include/Makefile.in:
+ regenerate
+
+Mon Apr 6 20:55:07 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdlib/abs.cxx, src/stdlib/atoi.cxx, src/stdlib/atol.cxx,
+ src/stdlib/div.cxx, src/stdlib/labs.cxx, src/stdlib/ldiv.cxx:
+ Separated out functions from stdlib.cxx into separate files
+
+ * src/stdlib/stdlib.cxx:
+ removed to be replaced by above files
+
+ * Makefile.am, src/stdlib/Makefile.am:
+ modified to support building above and not building stdlib.cxx
+
+ * src/support/tsd.cxx:
+ Remove unnecessary header file includes
+
+ * Makefile.in, src/stdlib/Makefile.in:
+ regenerated
+
+Mon Apr 6 19:19:42 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/support/tsd.cxx, include/eccconf/libc.h:
+ remove lame hack for tx39 compiler now that its fixed
+
+ * src/include/sim.hxx:
+ define constants as static to placate compiler
+
+Thu Apr 2 21:01:21 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/ctype/ctype.cxx:
+ deleted and separated out into below files
+
+ * src/ctype/isalnum.cxx, src/ctype/isalpha.cxx, src/ctype/iscntrl.cxx,
+ src/ctype/isdigit.cxx, src/ctype/isgraph.cxx, src/ctype/islower.cxx,
+ src/ctype/isprint.cxx, src/ctype/ispunct.cxx, src/ctype/isspace.cxx,
+ src/ctype/isupper.cxx, src/ctype/isxdigit.cxx, src/ctype/tolower.cxx,
+ src/ctype/toupper.cxx:
+ Separated out individual ctype functions from ctype.cxx into separate
+ files
+
+ * Makefile.am, src/ctype/Makefile.am:
+ modified to reflect above deletion/additions
+
+ * Makefile.in, src/ctype/Makefile.in:
+ regenerated
+
+Thu Apr 2 19:08:26 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/string/strxfrm.cxx: optimise using prefix increments
+
+Thu Apr 2 15:18:15 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/string/strchr.cxx: optimise setting of mask a little
+
+Thu Mar 26 14:07:01 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/support/tsd.cxx: fixed some typos
+
+Thu Mar 26 11:58:47 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/eccconf/libc.h, src/support/tsd.cxx:
+ Implement workaround for tx39 compiler bug.
+
+ * src/include/strsuppt.hxx:
+ remove prototypes for _memcpy() and _memset() as they are now in the
+ kernel
+
+Wed Mar 25 18:31:53 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * Makefile.am, src/string/Makefile.am: memcpy() and memset() are
+ now in the kernel so remove them from build
+ * include/string.h: add a comment to say as much
+ * Makefile.in, src/string/Makefile.in: regenerate
+
+Wed Mar 25 15:30:42 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdlib/_exit.cxx, src/include/file_if.inl:
+ Change _exit workaround to not cause a compiler optimisation
+ problem. Now just references _exit rather than calls it.
+
+Wed Mar 25 14:59:49 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/string/strxfrm.cxx: Fix bug causing tests to fail completely
+ for this function
+
+Wed Mar 25 12:55:53 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/include/sim.hxx: add types to constants (oops!)
+ * Makefile.am: link src/stdio/device/sim.cxx
+ * Makefile.in: regenerated
+
+Wed Mar 25 04:14:30 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/include/file_if.hxx, src/include/file_if.inl,
+ src/include/kerndiag.hxx, src/include/sim.hxx,
+ src/include/stdio_if.hxx, src/include/strngdev.hxx,
+ src/include/tsd.hxx, src/stdio/common/clearerr.cxx,
+ src/stdio/common/clearerr.cxx, src/stdio/common/feof.cxx,
+ src/stdio/common/ferror.cxx, src/stdio/common/file_if.cxx,
+ src/stdio/common/vsprintf.cxx,
+ src/stdio/device/kerndiag.cxx, src/stdio/device/sim.cxx,
+ src/stdio/device/strngdev.cxx, src/stdio/output/fputc.cxx,
+ src/stdio/output/fputs.cxx, src/stdio/output/puts.cxx,
+ src/stdio/output/vfnprintf.cxx, src/support/tsd.cxx:
+ Modified to support buffered reads including renaming
+ _EccInternalFileStruct to __EccStdioStream which is what affects
+ most of these files
+ * src/include/file_if.inl, src/stdio/common/file_if.cxx: added for
+ the above reason
+ * src/stdio/common/sscanf.cxx, src/stdio/input/vfscanf.cxx,
+ src/stdio/input/Makefile.am: added to provide sscanf() functionality
+ * include/ctype.h, include/stdio.h, include/stdlib.h,
+ include/string.h, include/eccconf/libc.h, src/ctype/ctype.cxx,
+ src/stdlib/stdlib.cxx, src/string/strcoll.cxx,
+ src/stdio/common/stdio.cxx:
+ rename *_INLINES macros with prefix CYG rather than ECC
+ * include/errno.h, src/errno/errno.cxx, src/errno/strerror.cxx:
+ rename ErrNo to _ErrNo and add EAGAIN and EWOULDBLOCK error codes
+ * configure.in, Makefile.am, src/stdio/Makefile.am,
+ src/stdio/input/Makefile.am: add support for building
+ file_if.cxx sscanf.cxx and vfscanf.cxx
+ * src/stdio/Makefile.in, src/stdio/common/Makefile.in,
+ src/stdio/input/Makefile.in, configure, Makefile.in: regenerated
+
+Tue Mar 24 19:51:40 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/time/clockfn.cxx, src/time/clock.cxx:
+ Renamed clock.cxx to clockfn.cxx (preserving CVS history)
+ * Makefile.am, src/time/Makefile.am: updated to reflect name change
+ * Makefile.in, src/time/Makefile.in: regenerated
+
+Tue Mar 24 16:28:06 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/ctype.inl: Swap around definitions to get right order so
+ inlining works
+
+Tue Mar 24 14:43:05 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/ctype.h, include/stdio.h, include/stdlib.h, include/string.h:
+ modify to only conditionally include inlines
+ * src/ctype/ctype.cxx, src/stdio/common/stdio.cxx,
+ src/stdlib/stdlib.cxx, src/string/strcoll.cxx,
+ src/ctype/Makefile.am: Add to provide real linkable alternatives
+ to inline functions
+ * Makefile.am, configure.in, src/Makefile.am,
+ src/stdio/common/Makefile.am, src/stdlib/Makefile.am,
+ src/string/Makefile.am: modified to support previous additions
+ * include/eccconf/libc.h: redefine inline macro to add extern inline,
+ and add conditional defines for inline functions. Also rename
+ space vs. speed macro to have CYG instead of ECC prefix
+ * include/stdio.inl: fix comment typo
+ * src/stdlib/qsort.cxx: fix to define inline functions properly
+ * src/string/memchr.cxx, src/string/memcmp.cxx, src/string/memcpy.cxx,
+ src/string/memset.cxx, src/string/strcat.cxx, src/string/strchr.cxx,
+ src/string/strcmp.cxx, src/string/strcpy.cxx, src/string/strlen.cxx,
+ src/string/strncat.cxx, src/string/strncmp.cxx,
+ src/string/strncpy.cxx
+ * Makefile.in, configure, src/Makefile.in, src/ctype/Makefile.in,
+ src/stdio/common/Makefile.in, src/stdlib/Makefile.in,
+ src/string/Makefile.in: regenerate
+
+
+Mon Mar 23 19:19:49 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/stdlib/_exit.cxx: added to support temporary _exit
+ * include/stdlib.h, include/stdlib.inl: added support for _exit and
+ added abs(), labs(), div() and ldiv() functions
+ * src/include/file_if.hxx: added support for _exit kludge
+ * src/stdlib/qsort.cxx: Added Berkeley copyright message
+ * src/time/clock.cxx: Include correct kernel config header as
+ CYG_CONFIGURATION rather than <config.h>
+ * Makefile.am src/stdlib/Makefile.am: added support for _exit
+ * Makefile.in, src/stdlib/Makefile.in: regenerated
+
+Mon Mar 23 14:41:07 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * Replace ECCPKG_ANSI_LIBC with CYGPKG_ANSI_LIBC in all source files
+
+Mon Mar 23 14:28:44 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/string.inl: add file to provide strcoll()
+ * include/string.h: include string.inl
+ * ctype.h: include ctype.inl (oops!)
+ * include/stdlib.h: include stdlib.inl (oops!)
+
+Mon Mar 23 13:30:38 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/ctype.h, include/ctype.inl: added to provide ANSI ctype
+ functionality
+ * include/stdlib.h, include/stdlib.inl, src/include/stdlibbsp.hxx,
+ src/stdlib/Makefile.am, src/stdlib/bsearch.cxx,
+ src/stdlib/qsort.cxx, src/stdlib/rand.cxx, src/stdlib/srand.cxx,
+ src/stdlib/strtol.cxx, src/stdlib/strtoul.cxx: Added to provide
+ many stdlib functions
+ * src/include/tsd.hxx: modified to support rand() random number
+ seed, and added some comments
+ * configure.in, Makefile.am, src/Makefile.am: modified to support
+ addition of above new sources
+ * include/eccconf/libc.h: Add extra helpful comments, and #include
+ kernel config file
+ * src/time/clock.cxx: #include clock.inl and fix to call
+ get_resolution() properly now
+ * Makefile.in, configure, src/Makefile.in, src/errno/Makefile.in,
+ src/stdio/Makefile.in, src/stdio/common/Makefile.in,
+ src/stdio/device/Makefile.in, src/stdio/output/Makefile.in,
+ src/stdlib/Makefile.in, src/strings/Makefile.in,
+ src/support/Makefile.in, src/time/Makefile.in,
+ tests/Makefile.in: regenerated
+
+
+Sun Mar 22 21:29:25 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/time.h, src/include/timesupp.hxx, src/time/clock.cxx,
+ src/time/Makefile.am: added to provide clock() function
+ * src/Makefile.am: modified to try to build in src/time directory
+ * include/eccconf/libc.h: added and is now the main configuration
+ file for this package
+ * acconfig.h, include/libcconf.h.in, include/stamp-h.in: removed
+ due to usage of libc.h above instead
+ * Almost all *.h, *.hxx and *.cxx: replaced LIBC_CONFIG_HEADER
+ defined include with simple <pkgconf/libc.h>
+ * configure.in: remove AM_CONFIG_HEADER of libcconf.h and
+ LIBC_CONFIG_HEADER definition. Also remove usage of builtin
+ memcpy() etc. from gcc, and generate src/time/Makefile
+ * Makefile.am: link in src/time/clock.o
+ * src/include/file_if.hxx, src/include/sim.hxx: use config header
+ to decide whether C library is to be used
+ * Makefile.in, aclocal.m4, configure, src/Makefile.in: regenerated
+
+Fri Mar 20 18:08:10 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/string/strxfrm.cxx: Fixed bug with ignoring terminating NULL
+
+1998-03-20 Chris Tarpy <ctarpy@bhaji.cygnus.co.uk>
+
+ * configure: - regenerated
+ * Makefile.am: - Support added for libc testcases
+ * Makefile.in: regenerated
+ * configure.in: set c compiler, descend test dir
+ * tests/Makefile.in: added
+ * tests/Makefile.am: added
+ * tests/tcdiag.cxx : added
+
+
+Thu Mar 19 11:41:56 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * Initial check-in of everything
+
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
diff --git a/ecos/packages/language/c/libc/time/current/cdl/time.cdl b/ecos/packages/language/c/libc/time/current/cdl/time.cdl
new file mode 100644
index 0000000..8240a00
--- /dev/null
+++ b/ecos/packages/language/c/libc/time/current/cdl/time.cdl
@@ -0,0 +1,341 @@
+# ====================================================================
+#
+# time.cdl
+#
+# C library time related configuration data
+#
+# ====================================================================
+## ####ECOSGPLCOPYRIGHTBEGIN####
+## -------------------------------------------
+## This file is part of eCos, the Embedded Configurable Operating System.
+## Copyright (C) 1998, 1999, 2000, 2001, 2002, 2006 Free Software Foundation, Inc.
+##
+## eCos is free software; you can redistribute it and/or modify it under
+## the terms of the GNU General Public License as published by the Free
+## Software Foundation; either version 2 or (at your option) any later
+## version.
+##
+## eCos 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 General Public License
+## for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with eCos; if not, write to the Free Software Foundation, Inc.,
+## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+##
+## As a special exception, if other files instantiate templates or use
+## macros or inline functions from this file, or you compile this file
+## and link it with other works to produce a work based on this file,
+## this file does not by itself cause the resulting work to be covered by
+## the GNU General Public License. However the source code for this file
+## must still be made available in accordance with section (3) of the GNU
+## General Public License v2.
+##
+## This exception does not invalidate any other reasons why a work based
+## on this file might be covered by the GNU General Public License.
+## -------------------------------------------
+## ####ECOSGPLCOPYRIGHTEND####
+# ====================================================================
+######DESCRIPTIONBEGIN####
+#
+# Author(s): jlarmour
+# Contributors:
+# Date: 2000-04-14
+#
+#####DESCRIPTIONEND####
+#
+# ====================================================================
+
+cdl_package CYGPKG_LIBC_TIME {
+ display "ISO C library date and time functions"
+ description "
+ This package provides time functions specified by the
+ ISO C standard - ISO/IEC 9899:1990."
+ doc ref/libc.html
+ include_dir cyg/libc/time
+ parent CYGPKG_LIBC
+ implements CYGINT_ISO_C_TIME_TYPES
+ implements CYGINT_ISO_C_CLOCK_FUNCS
+ requires { CYGBLD_ISO_C_TIME_TYPES_HEADER == "<cyg/libc/time/time.h>" }
+ requires { CYGBLD_ISO_C_CLOCK_FUNCS_HEADER == \
+ "<cyg/libc/time/time.h>" }
+ requires CYGPKG_ISOINFRA
+ requires CYGINT_ISO_DIV
+ requires CYGINT_ISO_ABS
+
+ # Note: the POSIX files asctime_r,ctime_r,gmtime_r and
+ # localtime_r should be built all the time, not just in
+ # CYGFUN_LIBC_TIME_POSIX because the internal definitions
+ # are used by the ISO C functions regardless. Otherwise we
+ # get problems with certain inlining combinations. [Bug 1000001]
+
+ compile asctime.cxx clock.cxx \
+ ctime.cxx difftime.cxx \
+ gmtime.cxx localtime.cxx \
+ mktime.cxx settime.cxx \
+ strftime.cxx time.cxx \
+ timeutil.cxx asctime_r.cxx \
+ ctime_r.cxx gmtime_r.cxx \
+ localtime_r.cxx
+
+
+# ====================================================================
+
+ cdl_option CYGSEM_LIBC_TIME_CLOCK_WORKING {
+ display "Working clock() function"
+ requires CYGFUN_KERNEL_THREADS_TIMER
+ requires CYGVAR_KERNEL_COUNTERS_CLOCK
+ default_value 1
+ description "
+ This option controls whether clock() will
+ actually try and determine the process time
+ usage. With this option disabled, clock() does
+ not disappear, but will permanently return
+ (clock_t)-1 as mandated by the ISO C standard."
+ }
+
+ cdl_option CYGSEM_LIBC_TIME_TIME_WORKING {
+ display "Working time() function"
+ requires CYGPKG_IO_WALLCLOCK
+ default_value 1
+ description "
+ This option controls whether time() will
+ actually try and determine the current calendar
+ time. With this option disabled, time() does
+ not disappear, but will permanently return
+ (time_t)-1 as mandated by the ISO C standard."
+ }
+
+ cdl_option CYGSEM_LIBC_TIME_SETTIME_WORKING {
+ display "Working cyg_libc_time_settime() function"
+ requires CYGPKG_IO_WALLCLOCK
+ default_value 1
+ description "
+ This option controls whether cyg_libc_time_settime()
+ will actually try and set the current calendar
+ time. With this option disabled,
+ cyg_libc_time_settime() does not disappear, but
+ will permanently return an error."
+ }
+
+ cdl_option CYGFUN_LIBC_TIME_POSIX {
+ display "POSIX time functions"
+ default_value 1
+ requires CYGINT_ISO_STRING_BSD_FUNCS
+ compile strptime.cxx
+ description "
+ Enabling this option allows the use of the
+ following functions defined in POSIX 1003.1:
+ asctime_r(), ctime_r(), gmtime_r(), strptime(), and
+ localtime_r()."
+ }
+
+ cdl_option CYGFUN_LIBC_TIME_SUS_EXTNS {
+ display "Single UNIX extensions"
+ default_value 0
+ description "
+ Enabling this option allows the use of
+ certain additional conversion specifiers
+ in the strftime function."
+ }
+
+ cdl_component CYGPKG_LIBC_TIME_ZONES {
+ display "Time zone offsets"
+ flavor none
+ description "
+ These options control the default STandarD (STD)
+ and Daylight Savings Time (DST)
+ time offsets so that dates can be set correctly
+ for the local environment."
+
+ cdl_option CYGNUM_LIBC_TIME_DST_DEFAULT_STATE {
+ display "Default Daylight Savings Time state"
+ flavor data
+ legal_values -- -1 to 1
+ default_value -- -1
+ description "
+ This option controls whether the initial
+ time environment is set up as STD, DST or
+ unknown. Use the value 1 for DST, 0 for STD,
+ and (-1) for unknown. This can also be set at
+ runtime using the cyg_libc_time_setdst()
+ function."
+ }
+
+ cdl_option CYGNUM_LIBC_TIME_STD_DEFAULT_OFFSET {
+ display "Default Standard Time offset"
+ flavor data
+ legal_values -- -90000 to 90000
+ default_value -- 0
+ description "
+ This option controls the offset from UTC in
+ seconds when in local Standard Time. This
+ value can be positive or negative. It
+ can also be set at run time using the
+ cyg_libc_time_setzoneoffsets() function."
+ }
+
+ cdl_option CYGNUM_LIBC_TIME_DST_DEFAULT_OFFSET {
+ display "Default Daylight Savings Time offset"
+ flavor data
+ legal_values -- -90000 to 90000
+ default_value -- 3600
+ description "
+ This option controls the offset from UTC in
+ seconds when in local Daylight Savings Time. This
+ value can be positive or negative. It
+ can also be set at run time using the
+ cyg_libc_time_setzoneoffsets() function."
+ }
+ }
+
+ cdl_component CYGPKG_LIBC_TIME_INLINES {
+ display "Inline functions"
+ flavor none
+ description "
+ These options control whether certain functions
+ are available in inline form. This may lead to
+ faster code at the expense of code space. But for
+ some functions, or some functions with constant
+ arguments, it may in fact lead to smaller code."
+
+ cdl_option CYGIMP_LIBC_TIME_ASCTIME_INLINE {
+ display "asctime()"
+ default_value 1
+ description "
+ Allow the asctime() function to be inlined"
+ }
+
+ cdl_option CYGIMP_LIBC_TIME_CTIME_INLINE {
+ display "ctime()"
+ default_value 1
+ description "
+ Allow the ctime() function to be inlined"
+ }
+
+ cdl_option CYGIMP_LIBC_TIME_DIFFTIME_INLINE {
+ display "difftime()"
+ default_value 1
+ description "
+ Allow the difftime() function to be inlined"
+ }
+
+ cdl_option CYGIMP_LIBC_TIME_GMTIME_INLINE {
+ display "gmtime()"
+ default_value 1
+ description "
+ Allow the gmtime() function to be inlined"
+ }
+
+ cdl_option CYGIMP_LIBC_TIME_LOCALTIME_INLINE {
+ display "localtime()"
+ default_value 1
+ description "
+ Allow the localtime() function to be inlined"
+ }
+
+ cdl_option CYGIMP_LIBC_TIME_MKTIME_INLINE {
+ display "mktime()"
+ default_value 0
+ description "
+ Allow the mktime() function to be inlined"
+ }
+
+ cdl_option CYGIMP_LIBC_TIME_ASCTIME_R_INLINE {
+ display "asctime_r()"
+ requires CYGFUN_LIBC_TIME_POSIX
+ default_value 1
+ description "
+ Allow the asctime_r() function to be inlined"
+ }
+
+ cdl_option CYGIMP_LIBC_TIME_CTIME_R_INLINE {
+ display "ctime_r()"
+ requires CYGFUN_LIBC_TIME_POSIX
+ default_value 1
+ description "
+ Allow the ctime_r() function to be inlined"
+ }
+
+ cdl_option CYGIMP_LIBC_TIME_GMTIME_R_INLINE {
+ display "gmtime_r()"
+ requires CYGFUN_LIBC_TIME_POSIX
+ default_value 0
+ description "
+ Allow the gmtime_r() function to be inlined"
+ }
+
+ cdl_option CYGIMP_LIBC_TIME_LOCALTIME_R_INLINE {
+ display "localtime_r()"
+ requires CYGFUN_LIBC_TIME_POSIX
+ default_value 1
+ description "
+ Allow the localtime_r() function to be inlined"
+ }
+ }
+# FIXME: Also want "inline all" and "don't inline any" options which requires
+# (or not) all the above, but
+# if we do that then we will require the ones that also depend on
+# CYGFUN_LIBC_TIME_POSIX :-( Wait for full CDL to fix this
+
+ cdl_option CYGNUM_LIBC_TIME_CLOCK_TRACE_LEVEL {
+ display "clock() tracing level"
+ flavor data
+ legal_values 0 to 1
+ default_value 0
+ description "
+ Trace verbosity level for debugging the clock()
+ function. Increase this value to get
+ additional trace output when tracing is enabled."
+ }
+
+ cdl_component CYGPKG_LIBC_TIME_OPTIONS {
+ display "C library time functions build options"
+ flavor none
+ no_define
+ description "
+ Package specific build options including control over
+ compiler flags used only in building this package,
+ and details of which tests are built."
+
+
+ cdl_option CYGPKG_LIBC_TIME_CFLAGS_ADD {
+ display "Additional compiler flags"
+ flavor data
+ no_define
+ default_value { "-Wno-format" }
+ description "
+ This option modifies the set of compiler flags for
+ building the C library. These flags are used in addition
+ to the set of global flags."
+ }
+
+ cdl_option CYGPKG_LIBC_TIME_CFLAGS_REMOVE {
+ display "Suppressed compiler flags"
+ flavor data
+ no_define
+ default_value { "" }
+ description "
+ This option modifies the set of compiler flags for
+ building the C library. These flags are removed from
+ the set of global flags if present."
+ }
+
+ cdl_option CYGPKG_LIBC_TIME_TESTS {
+ display "C library time and date function tests"
+ flavor data
+ no_define
+ calculated {
+ "tests/asctime tests/clock tests/ctime tests/gmtime tests/localtime tests/mktime tests/strftime tests/time "
+ . (CYGFUN_LIBC_TIME_POSIX ? "tests/strptime" : "")
+ }
+ description "
+ This option specifies the set of tests for the C library
+ time and date functions."
+ }
+ }
+}
+
+# ====================================================================
+# EOF time.cdl
diff --git a/ecos/packages/language/c/libc/time/current/include/time.h b/ecos/packages/language/c/libc/time/current/include/time.h
new file mode 100644
index 0000000..b151fab
--- /dev/null
+++ b/ecos/packages/language/c/libc/time/current/include/time.h
@@ -0,0 +1,319 @@
+#ifndef CYGONCE_LIBC_TIME_TIME_H
+#define CYGONCE_LIBC_TIME_TIME_H
+/*===========================================================================
+//
+// time.h
+//
+// Date and time routines from ISO C section 7.12 and POSIX 1003.1
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors:
+// Date: 2000-04-14
+// Purpose: Provide definitions required by ISO C section 7.12 and
+// POSIX 1003.1 8.3.4-8.3.7
+// Description:
+// Usage: Do not include this file directly - use #include <time.h>
+//
+//####DESCRIPTIONEND####
+//
+//=========================================================================*/
+
+// CONFIGURATION
+
+#include <pkgconf/libc_time.h> // C library configuration
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+
+// TYPE DEFINITIONS
+
+// Define struct tm as per ISO C para 7.12.1
+struct tm {
+ int tm_sec; // seconds after the minute - [0..61]
+ // (note 61 allows for two leap seconds)
+ int tm_min; // minutes after the hour - [0..59]
+ int tm_hour; // hours since midnight - [0..23]
+ int tm_mday; // days of the month - [1..31]
+ int tm_mon; // months since January - [0..11]
+ int tm_year; // years since 1900
+ int tm_wday; // days since Sunday - [0..6]
+ int tm_yday; // days since January 1 - [0..365]
+ int tm_isdst; // Daylight Saving Time flag - positive if DST is in
+ // effect, 0 if not in effect, and negative if the info
+ // is not available
+};
+
+// The following struct is used by the implementation-defined functions
+// to manipulate the Daylight Savings Time state
+typedef enum {
+ CYG_LIBC_TIME_DSTNA = -1,
+ CYG_LIBC_TIME_DSTOFF = 0,
+ CYG_LIBC_TIME_DSTON = 1
+} Cyg_libc_time_dst;
+
+// FUNCTION PROTOTYPES
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+//===========================================================================
+//
+// POSIX 1003.1 functions
+
+#ifdef CYGFUN_LIBC_TIME_POSIX
+
+/////////////////////////////////
+// asctime_r() - POSIX.1 8.3.4 //
+/////////////////////////////////
+//
+// This returns a textual representation of a struct tm, and writes
+// the string to return into __buf
+//
+
+extern char *
+asctime_r( const struct tm *__timeptr, char *__buf );
+
+///////////////////////////////
+// ctime_r() - POSIX.1 8.3.5 //
+///////////////////////////////
+//
+// This returns the equivalent of ctime() but writes to __buf
+// to store the returned string
+//
+
+extern char *
+ctime_r( const time_t *__timer, char *__buf );
+
+////////////////////////////////
+// gmtime_r() - POSIX.1 8.3.6 //
+////////////////////////////////
+//
+// This converts a time_t into a struct tm expressed in UTC, and stores
+// the result in the space occupied by __result
+//
+
+extern struct tm *
+gmtime_r( const time_t *__timer, struct tm *__result );
+
+///////////////////////////////////
+// localtime_r() - POSIX.1 8.3.7 //
+///////////////////////////////////
+//
+// This converts a time_t into a struct tm expressed in local time, and
+// stores the result in the space occupied by __result
+//
+
+extern struct tm *
+localtime_r( const time_t *__timer, struct tm *__result );
+
+/////////////////////////////////////////////////////////
+// strptime() -
+/////////////////////////////////////////////////////////
+//
+// Parse a time string into a struct tm
+//
+
+extern char *
+strptime( const char *__s, const char *__format,
+ struct tm *__timeptr) CYGBLD_ATTRIB_STRFTIME_FORMAT(2,0);
+
+
+#endif // ifdef CYGFUN_LIBC_TIME_POSIX
+
+//===========================================================================
+
+// ISO C functions
+
+// Time manipulation functions - ISO C 7.12.2
+
+//////////////////////////////
+// clock() - ISO C 7.12.2.1 //
+//////////////////////////////
+//
+// Returns processor time used in "clock"s. For a single process,
+// multi-threaded system this will just be the time since booting
+//
+
+extern clock_t
+clock( void );
+
+/////////////////////////////////
+// difftime() - ISO C 7.12.2.2 //
+/////////////////////////////////
+//
+// This returns (__time1 - __time0) in seconds
+//
+
+extern double
+difftime( time_t __time1, time_t __time0 );
+
+///////////////////////////////
+// mktime() - ISO C 7.12.2.3 //
+///////////////////////////////
+//
+// This converts a "struct tm" to a "time_t"
+//
+
+extern time_t
+mktime( struct tm *__timeptr );
+
+/////////////////////////////
+// time() - ISO C 7.12.2.4 //
+/////////////////////////////
+//
+// This returns calendar time as a time_t
+//
+
+extern time_t
+time( time_t *__timer );
+
+// Time conversion functions - ISO C 7.12.3
+
+////////////////////////////////
+// asctime() - ISO C 7.12.3.1 //
+////////////////////////////////
+//
+// This returns a textual representation of a struct tm
+//
+
+extern char *
+asctime( const struct tm *__timeptr );
+
+//////////////////////////////
+// ctime() - ISO C 7.12.3.2 //
+//////////////////////////////
+//
+// This returns asctime(localtime(__timeptr))
+//
+
+extern char *
+ctime( const time_t *__timer );
+
+///////////////////////////////
+// gmtime() - ISO C 7.12.3.3 //
+///////////////////////////////
+//
+// This converts a time_t into a struct tm expressed in UTC
+//
+
+extern struct tm *
+gmtime( const time_t *__timer );
+
+//////////////////////////////////
+// localtime() - ISO C 7.12.3.4 //
+//////////////////////////////////
+//
+// This converts a time_t into a struct tm expressed in local time
+//
+
+extern struct tm *
+localtime( const time_t *__timer );
+
+/////////////////////////////////
+// strftime() - ISO C 7.12.3.5 //
+/////////////////////////////////
+//
+// This converts a string using format specifiers that signify various
+// time-related quantities
+//
+
+extern size_t
+strftime( char *__s, size_t __maxsize, const char *__format,
+ const struct tm *__timeptr) CYGBLD_ATTRIB_STRFTIME_FORMAT(3,0);
+
+//===========================================================================
+
+// Implementation-specific functions
+
+////////////////////////////////////
+// cyg_libc_time_setzoneoffsets() //
+////////////////////////////////////
+//
+// This function sets the offsets used when Daylight Savings Time is enabled
+// or disabled. The offsets are in time_t's
+//
+
+extern void
+cyg_libc_time_setzoneoffsets( time_t __stdoffset, time_t __dstoffset );
+
+////////////////////////////
+// cyg_libc_time_setdst() //
+////////////////////////////
+//
+// This function sets the state of Daylight Savings Time: on, off, or unknown
+//
+
+extern void
+cyg_libc_time_setdst( Cyg_libc_time_dst __state );
+
+
+////////////////////////////////////
+// cyg_libc_time_getzoneoffsets() //
+////////////////////////////////////
+//
+// This function retrieves the current state of the Daylight Savings Time
+// and the offsets of both STD and DST
+// The offsets are both in time_t's
+//
+
+extern Cyg_libc_time_dst
+cyg_libc_time_getzoneoffsets( time_t *__stdoffset, time_t *__dstoffset );
+
+/////////////////////////////
+// cyg_libc_time_settime() //
+/////////////////////////////
+//
+// This function sets the current time for the system. The time is
+// specified as a time_t in UTC. It returns non-zero on error.
+//
+
+extern cyg_bool
+cyg_libc_time_settime( time_t __utctime );
+
+
+#ifdef __cplusplus
+} // extern "C"
+#endif
+
+#include <cyg/libc/time/time.inl>
+
+#endif // CYGONCE_LIBC_TIME_TIME_H multiple inclusion protection
+
+// EOF time.h
diff --git a/ecos/packages/language/c/libc/time/current/include/time.inl b/ecos/packages/language/c/libc/time/current/include/time.inl
new file mode 100644
index 0000000..5078c29
--- /dev/null
+++ b/ecos/packages/language/c/libc/time/current/include/time.inl
@@ -0,0 +1,819 @@
+#ifndef CYGONCE_LIBC_TIME_INL
+#define CYGONCE_LIBC_TIME_INL
+//===========================================================================
+//
+// time.inl
+//
+// Inline implementations of date and time routines from <time.h>
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors:
+// Date: 1999-02-25
+// Purpose: Provide inline implementations for some of the date and time
+// routines declared in <time.h> for ISO C section 7.12 and
+// POSIX 1003.1 8.3.4-8.3.7
+// Description:
+// Usage: Do not include this file directly. Instead include <time.h>
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libc_time.h> // C library configuration
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include <time.h> // Header for this file
+#include <cyg/infra/cyg_ass.h> // Assertion infrastructure
+#include <cyg/infra/cyg_trac.h> // Tracing infrastructure
+
+// DEFINES
+
+// The following are overriden by the libc implementation to get a non-inline
+// version to prevent duplication of code
+
+#ifndef CYGPRI_LIBC_TIME_ASCTIME_R_INLINE
+# define CYGPRI_LIBC_TIME_ASCTIME_R_INLINE extern __inline__
+#endif
+
+#ifndef CYGPRI_LIBC_TIME_CTIME_R_INLINE
+# define CYGPRI_LIBC_TIME_CTIME_R_INLINE extern __inline__
+#endif
+
+#ifndef CYGPRI_LIBC_TIME_GMTIME_R_INLINE
+# define CYGPRI_LIBC_TIME_GMTIME_R_INLINE extern __inline__
+#endif
+
+#ifndef CYGPRI_LIBC_TIME_LOCALTIME_R_INLINE
+# define CYGPRI_LIBC_TIME_LOCALTIME_R_INLINE extern __inline__
+#endif
+
+#ifndef CYGPRI_LIBC_TIME_DIFFTIME_INLINE
+# define CYGPRI_LIBC_TIME_DIFFTIME_INLINE extern __inline__
+#endif
+
+#ifndef CYGPRI_LIBC_TIME_MKTIME_INLINE
+# define CYGPRI_LIBC_TIME_MKTIME_INLINE extern __inline__
+#endif
+
+#ifndef CYGPRI_LIBC_TIME_ASCTIME_INLINE
+# define CYGPRI_LIBC_TIME_ASCTIME_INLINE extern __inline__
+#endif
+
+#ifndef CYGPRI_LIBC_TIME_CTIME_INLINE
+# define CYGPRI_LIBC_TIME_CTIME_INLINE extern __inline__
+#endif
+
+#ifndef CYGPRI_LIBC_TIME_GMTIME_INLINE
+# define CYGPRI_LIBC_TIME_GMTIME_INLINE extern __inline__
+#endif
+
+#ifndef CYGPRI_LIBC_TIME_LOCALTIME_INLINE
+# define CYGPRI_LIBC_TIME_LOCALTIME_INLINE extern __inline__
+#endif
+
+#ifndef CYGPRI_LIBC_TIME_GETZONEOFFSETS_INLINE
+# define CYGPRI_LIBC_TIME_GETZONEOFFSETS_INLINE extern __inline__
+#endif
+
+#ifndef CYGPRI_LIBC_TIME_SETZONEOFFSETS_INLINE
+# define CYGPRI_LIBC_TIME_SETZONEOFFSETS_INLINE extern __inline__
+#endif
+
+#ifndef CYGPRI_LIBC_TIME_SETDST_INLINE
+# define CYGPRI_LIBC_TIME_SETDST_INLINE extern __inline__
+#endif
+
+#define CYGNUM_LIBC_TIME_EPOCH_WDAY 4 // Jan 1st 1970 was a Thursday
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+// EXTERNS
+
+// These are used in the dst access functions below. Do not access these
+// directly - use the functions declared in time.h instead
+
+extern Cyg_libc_time_dst cyg_libc_time_current_dst_stat;
+extern time_t cyg_libc_time_current_std_offset;
+extern time_t cyg_libc_time_current_dst_offset;
+
+// INLINE FUNCTIONS
+
+//===========================================================================
+//
+// Utility functions
+
+//////////////////////////////////
+// cyg_libc_time_year_is_leap() //
+//////////////////////////////////
+//
+// This returns true if the year is a leap year.
+// The argument is of type int in line with struct tm
+//
+
+static __inline__ cyg_bool
+cyg_libc_time_year_is_leap( int __year )
+{
+ cyg_bool _leap=false;
+
+ if (!(__year % 400))
+ _leap = true;
+ else if (!(__year % 4) && (__year % 100))
+ _leap = true;
+ return _leap;
+} // cyg_libc_time_year_is_leap()
+
+
+////////////////////////////////////
+// cyg_libc_time_getzoneoffsets() //
+////////////////////////////////////
+//
+// This function retrieves the current state of the Daylight Savings Time
+// and the offsets of both STD and DST
+// The offsets are both in time_t's i.e. seconds
+//
+
+CYGPRI_LIBC_TIME_GETZONEOFFSETS_INLINE Cyg_libc_time_dst
+cyg_libc_time_getzoneoffsets( time_t *__stdoffset, time_t *__dstoffset )
+{
+ CYG_REPORT_FUNCNAMETYPE("cyg_libc_time_getzoneoffsets",
+ "returning DST state %d");
+ CYG_REPORT_FUNCARG2("__stdoffset is at address %08x, "
+ "__dstoffset is at %08x", __stdoffset, __dstoffset);
+
+ CYG_CHECK_DATA_PTR(__stdoffset, "__stdoffset is not a valid pointer!");
+ CYG_CHECK_DATA_PTR(__dstoffset, "__dstoffset is not a valid pointer!");
+
+ *__stdoffset = cyg_libc_time_current_std_offset;
+ *__dstoffset = cyg_libc_time_current_dst_offset;
+
+ CYG_REPORT_RETVAL(cyg_libc_time_current_dst_stat);
+
+ return cyg_libc_time_current_dst_stat;
+} // cyg_libc_time_getzoneoffsets()
+
+
+////////////////////////////////////
+// cyg_libc_time_setzoneoffsets() //
+////////////////////////////////////
+//
+// This function sets the offsets used when Daylight Savings Time is enabled
+// or disabled. The offsets are in time_t's i.e. seconds
+//
+
+CYGPRI_LIBC_TIME_SETZONEOFFSETS_INLINE void
+cyg_libc_time_setzoneoffsets( time_t __stdoffset, time_t __dstoffset )
+{
+ CYG_REPORT_FUNCNAME("cyg_libc_time_setzoneoffsets");
+ CYG_REPORT_FUNCARG2DV(__stdoffset, __dstoffset);
+
+ cyg_libc_time_current_std_offset = __stdoffset;
+ cyg_libc_time_current_dst_offset = __dstoffset;
+
+ CYG_REPORT_RETURN();
+} // cyg_libc_time_setzoneoffsets()
+
+
+////////////////////////////
+// cyg_libc_time_setdst() //
+////////////////////////////
+//
+// This function sets the state of Daylight Savings Time: on, off, or unknown
+//
+
+CYGPRI_LIBC_TIME_SETDST_INLINE void
+cyg_libc_time_setdst( Cyg_libc_time_dst __state )
+{
+ CYG_REPORT_FUNCNAME("cyg_libc_time_setdst");
+ CYG_REPORT_FUNCARG1("__state=%d", __state);
+
+ cyg_libc_time_current_dst_stat = __state;
+
+ CYG_REPORT_RETURN();
+} // cyg_libc_time_setdst()
+
+
+
+//===========================================================================
+//
+// POSIX 1003.1 functions
+
+/////////////////////////////////
+// asctime_r() - POSIX.1 8.3.4 //
+/////////////////////////////////
+//
+// This returns a textual representation of a struct tm, and writes
+// the string to return into __buf
+//
+
+#ifdef CYGFUN_LIBC_TIME_POSIX
+# define __asctime_r asctime_r
+#else
+// prototype internal function
+__externC char *
+__asctime_r( const struct tm *__timeptr, char *__buf );
+#endif
+
+#ifdef CYGIMP_LIBC_TIME_ASCTIME_R_INLINE
+
+#include <cyg/libc/time/timeutil.h> // for cyg_libc_time_{day,month}_name
+ // and cyg_libc_time_itoa()
+#include <string.h> // for memcpy()
+
+CYGPRI_LIBC_TIME_ASCTIME_R_INLINE char *
+__asctime_r( const struct tm *__timeptr, char *__buf )
+{
+ cyg_ucount8 __i;
+
+ // These initializers are [4] since C++ dictates you _must_ leave space
+ // for the trailing '\0', even though ISO C says you don't need to!
+
+ CYG_REPORT_FUNCNAMETYPE("asctime_r", "returning \"%s\"");
+ CYG_REPORT_FUNCARG2("__timeptr = %08x, __buf = %08x", __timeptr, __buf);
+
+ // paranoia - most of these aren't required but could be helpful to
+ // a programmer debugging their own app.
+ CYG_CHECK_DATA_PTR(__timeptr, "__timeptr is not a valid pointer!");
+ CYG_CHECK_DATA_PTR(__buf, "__buf is not a valid pointer!");
+
+ CYG_PRECONDITION((__timeptr->tm_sec >= 0) && (__timeptr->tm_sec < 62),
+ "__timeptr->tm_sec out of range!");
+ CYG_PRECONDITION((__timeptr->tm_min >= 0) && (__timeptr->tm_min < 60),
+ "__timeptr->tm_min out of range!");
+ CYG_PRECONDITION((__timeptr->tm_hour >= 0) && (__timeptr->tm_hour < 24),
+ "__timeptr->tm_hour out of range!");
+ // Currently I don't check _actual_ numbers of days in each month here
+ // FIXME: No reason why not though
+ CYG_PRECONDITION((__timeptr->tm_mday >= 1) && (__timeptr->tm_mday < 32),
+ "__timeptr->tm_mday out of range!");
+ CYG_PRECONDITION((__timeptr->tm_mon >= 0) && (__timeptr->tm_mon < 12),
+ "__timeptr->tm_mon out of range!");
+ CYG_PRECONDITION((__timeptr->tm_wday >= 0) && (__timeptr->tm_wday < 7),
+ "__timeptr->tm_wday out of range!");
+ CYG_PRECONDITION((__timeptr->tm_yday >= 0) && (__timeptr->tm_yday < 366),
+ "__timeptr->tm_yday out of range!");
+ CYG_PRECONDITION((__timeptr->tm_year > -1900) &&
+ (__timeptr->tm_year < 8100),
+ "__timeptr->tm_year out of range!");
+
+ // we can't use strftime because ISO C is stupid enough not to allow
+ // the strings in asctime() to be localized. Duh.
+
+ // day of the week
+ memcpy(&__buf[0], cyg_libc_time_day_name[__timeptr->tm_wday], 3);
+ __buf[3] = ' ';
+
+ // month
+ memcpy(&__buf[4], cyg_libc_time_month_name[__timeptr->tm_mon], 3);
+ __buf[7] = ' ';
+
+ __i = 8;
+
+ // day of the month
+ __i += cyg_libc_time_itoa( (cyg_uint8 *)&__buf[__i], __timeptr->tm_mday, 2,
+ true);
+ __buf[__i++] = ' ';
+
+ // hour
+ __i += cyg_libc_time_itoa( (cyg_uint8 *)&__buf[__i], __timeptr->tm_hour, 2,
+ true);
+ __buf[__i++] = ':';
+
+ // minute
+ __i += cyg_libc_time_itoa( (cyg_uint8 *)&__buf[__i], __timeptr->tm_min, 2,
+ true);
+ __buf[__i++] = ':';
+
+ // second
+ __i += cyg_libc_time_itoa((cyg_uint8 *) &__buf[__i], __timeptr->tm_sec, 2,
+ true);
+ __buf[__i++] = ' ';
+
+ // year
+ __i += cyg_libc_time_itoa( (cyg_uint8 *)&__buf[__i],
+ 1900+__timeptr->tm_year, 0, true);
+
+ __buf[__i++] = '\n';
+ __buf[__i++] = '\0';
+
+ CYG_REPORT_RETVAL(__buf);
+ return __buf;
+} // asctime_r()
+
+#endif // ifdef CYGIMP_LIBC_TIME_ASCTIME_R_INLINE
+
+////////////////////////////////
+// gmtime_r() - POSIX.1 8.3.6 //
+////////////////////////////////
+//
+// This converts a time_t into a struct tm expressed in UTC, and stores
+// the result in the space occupied by __result
+//
+
+#ifdef CYGFUN_LIBC_TIME_POSIX
+# define __gmtime_r gmtime_r
+#else
+// prototype internal function
+__externC struct tm *
+__gmtime_r( const time_t *__timer, struct tm *__result );
+#endif
+
+#ifdef CYGIMP_LIBC_TIME_GMTIME_R_INLINE
+
+#include <cyg/libc/time/timeutil.h> // for cyg_libc_time_month_lengths
+
+CYGPRI_LIBC_TIME_GMTIME_R_INLINE struct tm *
+__gmtime_r( const time_t *__timer, struct tm *__result )
+{
+ time_t _tim;
+ const cyg_uint8 *_months_p;
+
+ CYG_REPORT_FUNCNAMETYPE("gmtime_r", "returning %08x");
+ CYG_CHECK_DATA_PTR(__timer, "__timer is not a valid pointer!");
+ CYG_CHECK_DATA_PTR(__result, "__result is not a valid pointer!");
+ CYG_REPORT_FUNCARG2("*__timer=%d, __result is at %08x",
+ *__timer, __result);
+
+#define CYGNUM_LIBC_TIME_SECSPERDAY (60*60*24)
+#define CYGNUM_LIBC_TIME_SECSPERYEAR (CYGNUM_LIBC_TIME_SECSPERDAY * 365)
+#define CYGNUM_LIBC_TIME_SECSPERLEAPYEAR (CYGNUM_LIBC_TIME_SECSPERDAY * 366)
+
+ _tim = *__timer;
+
+ // First, work out year. Start off with 1970 and work forwards or backwards
+ // depending on the sign of _tim
+ __result->tm_year = 70;
+
+ // we also work out the day of the week of the start of the year as we
+ // go along
+ __result->tm_wday = CYGNUM_LIBC_TIME_EPOCH_WDAY;
+
+ while (_tim < 0) {
+ // Work backwards
+
+ --__result->tm_year;
+
+ // Check for a leap year.
+ if (cyg_libc_time_year_is_leap(1900 + __result->tm_year)) {
+ _tim += CYGNUM_LIBC_TIME_SECSPERLEAPYEAR;
+ __result->tm_wday -= 366;
+ } // if
+ else {
+ _tim += CYGNUM_LIBC_TIME_SECSPERYEAR;
+ __result->tm_wday -= 365;
+ } // else
+
+ } // while
+
+ while (_tim >= CYGNUM_LIBC_TIME_SECSPERYEAR) {
+ // Work forwards
+
+ if (cyg_libc_time_year_is_leap(1900 + __result->tm_year)) {
+
+ // But if this is a leap year, its possible that we are in the
+ // middle of the last "extra" day
+ if (_tim < CYGNUM_LIBC_TIME_SECSPERLEAPYEAR)
+ break;
+
+ _tim -= CYGNUM_LIBC_TIME_SECSPERLEAPYEAR;
+ __result->tm_wday += 366;
+ } // if
+ else {
+ _tim -= CYGNUM_LIBC_TIME_SECSPERYEAR;
+ __result->tm_wday += 365;
+ }
+ ++__result->tm_year;
+ } // while
+
+ // Day of the year. We know _tim is +ve now
+ CYG_ASSERT(_tim >= 0,
+ "Number of seconds since start of year is negative!");
+ __result->tm_yday = _tim / CYGNUM_LIBC_TIME_SECSPERDAY;
+
+ // Day of the week. Normalize to be 0..6, and note that it might
+ // be negative, so we have to deal with the modulus being
+ // implementation-defined for -ve numbers (ISO C 6.3.5)
+ __result->tm_wday = (((__result->tm_wday + __result->tm_yday)%7)+7)%7;
+
+ // Month and Day of the month
+
+ _months_p = cyg_libc_time_month_lengths[
+ cyg_libc_time_year_is_leap(1900 + __result->tm_year) ? 1 : 0 ];
+
+ __result->tm_mday = __result->tm_yday+1;
+
+ for (__result->tm_mon = 0;
+ __result->tm_mday > _months_p[__result->tm_mon];
+ ++__result->tm_mon) {
+
+ __result->tm_mday -= _months_p[__result->tm_mon];
+
+ } // for
+
+ _tim -= __result->tm_yday*CYGNUM_LIBC_TIME_SECSPERDAY;
+
+ // hours, mins secs
+ __result->tm_hour = (int) (_tim / 3600);
+ _tim %= 3600;
+ __result->tm_min = (int) (_tim / 60);
+ __result->tm_sec = (int) (_tim % 60);
+
+ __result->tm_isdst = 0; // gmtime always returns non-DST
+
+ CYG_REPORT_RETVAL(__result);
+
+ return __result;
+} // gmtime_r()
+
+#endif // ifdef CYGIMP_LIBC_TIME_GMTIME_R_INLINE
+
+///////////////////////////////////
+// localtime_r() - POSIX.1 8.3.7 //
+///////////////////////////////////
+//
+// This converts a time_t into a struct tm expressed in local time, and
+// stores the result in the space occupied by __result
+//
+
+#ifdef CYGFUN_LIBC_TIME_POSIX
+# define __localtime_r localtime_r
+#else
+// prototype internal function
+__externC struct tm *
+__localtime_r( const time_t *__timer, struct tm *__result );
+#endif
+
+#ifdef CYGIMP_LIBC_TIME_LOCALTIME_R_INLINE
+
+#include <cyg/libc/time/timeutil.h> // for cyg_libc_time_normalize_structtm()
+
+CYGPRI_LIBC_TIME_LOCALTIME_R_INLINE struct tm *
+__localtime_r( const time_t *__timer, struct tm *__result )
+{
+ time_t __stdoffset, __dstoffset;
+ CYG_REPORT_FUNCNAMETYPE("localtime_r", "returning %08x");
+ CYG_CHECK_DATA_PTR(__timer, "__timer is not a valid pointer!");
+ CYG_CHECK_DATA_PTR(__result, "__result is not a valid pointer!");
+ CYG_REPORT_FUNCARG2("*__timer=%d, __result is at %08x",
+ *__timer, __result);
+
+ __gmtime_r(__timer, __result);
+
+ // Adjust for STD/DST
+ __result->tm_isdst = cyg_libc_time_getzoneoffsets(&__stdoffset,
+ &__dstoffset);
+
+ if (__result->tm_isdst == 0) { // STD
+ __result->tm_sec += __stdoffset;
+ cyg_libc_time_normalize_structtm( __result );
+ } // if
+ else if (__result->tm_isdst > 0) { // DST
+ __result->tm_sec += __dstoffset;
+ cyg_libc_time_normalize_structtm( __result );
+ } // if
+ // Don't do anything for tm_isdst == -1
+
+ CYG_REPORT_RETVAL(__result);
+
+ return __result;
+} // localtime_r()
+
+#endif // ifdef CYGIMP_LIBC_TIME_LOCALTIME_R_INLINE
+
+
+///////////////////////////////
+// ctime_r() - POSIX.1 8.3.5 //
+///////////////////////////////
+//
+// This returns the equivalent of ctime() but writes to __buf
+// to store the returned string
+//
+
+#ifdef CYGFUN_LIBC_TIME_POSIX
+# define __ctime_r ctime_r
+#else
+// prototype internal function
+__externC char *
+__ctime_r( const time_t *__timer, char *__buf );
+#endif
+
+#ifdef CYGIMP_LIBC_TIME_CTIME_R_INLINE
+
+CYGPRI_LIBC_TIME_CTIME_R_INLINE char *
+__ctime_r( const time_t *__timer, char *__buf )
+{
+ struct tm _mytm;
+
+ CYG_REPORT_FUNCNAMETYPE("ctime_r", "returning \"%s\"");
+
+ CYG_CHECK_DATA_PTR(__timer, "__timer is not a valid pointer!");
+ CYG_CHECK_DATA_PTR(__buf, "__buf is not a valid pointer!");
+
+ CYG_REPORT_FUNCARG2("*__timer = %d, __buf=%08x", *__timer, __buf);
+
+ __localtime_r( __timer, &_mytm );
+
+ __asctime_r(&_mytm, __buf);
+
+ CYG_REPORT_RETVAL(__buf);
+
+ return __buf;
+} // ctime_r()
+
+#endif // ifdef CYGIMP_LIBC_TIME_CTIME_R_INLINE
+
+
+//===========================================================================
+//
+// ISO C functions
+
+// Time manipulation functions - ISO C 7.12.2
+
+/////////////////////////////////
+// difftime() - ISO C 7.12.2.2 //
+/////////////////////////////////
+//
+// This returns (__time1 - __time0) in seconds
+//
+
+#ifdef CYGIMP_LIBC_TIME_DIFFTIME_INLINE
+
+CYGPRI_LIBC_TIME_DIFFTIME_INLINE double
+difftime( time_t __time1, time_t __time0 )
+{
+ double _ret;
+
+ CYG_REPORT_FUNCNAMETYPE("difftime", "returning %f");
+ CYG_REPORT_FUNCARG2("__time1=%d, __time0=%d", __time1, __time0);
+
+ _ret = (double)(__time1 - __time0);
+
+ CYG_REPORT_RETVAL(_ret);
+
+ return _ret;
+} // difftime()
+
+#endif // ifdef CYGIMP_LIBC_TIME_DIFFTIME_INLINE
+
+///////////////////////////////
+// mktime() - ISO C 7.12.2.3 //
+///////////////////////////////
+//
+// This converts a "struct tm" to a "time_t"
+//
+
+#ifdef CYGIMP_LIBC_TIME_MKTIME_INLINE
+
+#include <cyg/libc/time/timeutil.h> // for cyg_libc_time_normalize_structtm()
+ // and cyg_libc_time_month_lengths
+
+CYGPRI_LIBC_TIME_MKTIME_INLINE time_t
+mktime( struct tm *__timeptr )
+{
+ time_t _ret;
+ cyg_count16 _i;
+ cyg_count32 _daycount;
+ cyg_bool _leap;
+
+ CYG_REPORT_FUNCNAMETYPE("mktime", "returning %d");
+ CYG_REPORT_FUNCARG1( "__timeptr is at address %08x", __timeptr);
+
+ CYG_CHECK_DATA_PTR(__timeptr, "__timeptr is not a valid pointer!");
+
+ // First deal with STD/DST. If tm_isdst==-1 (the "autodetect" value)
+ // we assume its already in UTC. FIXME: is this correct behaviour? Hmm....
+
+#if 0
+// FIXME: This doesn't seem to be the way to go
+ if (__timeptr->tm_isdst == 0) { // STD
+ // take _off_ the std offset to get us back to UTC from localtime
+ __timeptr->tm_sec -= (int)cyg_libc_time_current_std_offset;
+ } // if
+ else if (__timeptr->tm_isdst > 0) { // DST
+ // take _off_ the dst offset to get us back to UTC from localtime
+ __timeptr->tm_sec -= (int)cyg_libc_time_current_dst_offset;
+ } // if
+#endif
+
+ cyg_libc_time_normalize_structtm(__timeptr);
+
+ // check if a time_t can hold the year. FIXME: we assume it is
+ // 32 bits which gives the year range 1902 - 2038
+ if ( (__timeptr->tm_year <= 2) || (__timeptr->tm_year >= 138) ) {
+ CYG_REPORT_RETVAL(-1);
+ return (time_t)-1;
+ }
+
+ // fill in the rest of the struct tm i.e. tm_wday and tm_yday
+
+ _leap = cyg_libc_time_year_is_leap(1900 + __timeptr->tm_year);
+
+ for (_i=0, _daycount=0; _i<12; ++_i) {
+ if (_i == __timeptr->tm_mon) {
+ _daycount += __timeptr->tm_mday - 1;
+ break;
+ } // if
+ else {
+ _daycount += cyg_libc_time_month_lengths[_leap][_i];
+ } // else
+ } // for
+
+ CYG_ASSERT(_i<12, "Reached end of year. __timeptr->tm_mon must be bad");
+
+ __timeptr->tm_yday = _daycount;
+
+ // now tm_wday
+
+ if (__timeptr->tm_year > 70) {
+ for (_i=70; _i < __timeptr->tm_year; ++_i)
+ _daycount += (cyg_libc_time_year_is_leap(1900 + _i) ? 366 : 365);
+ } // if
+ else if (__timeptr->tm_year < 70) {
+ for (_i=70; _i > __timeptr->tm_year; --_i)
+ _daycount -= (cyg_libc_time_year_is_leap(1900 + _i-1) ? 366 : 365);
+ } // else if
+
+ __timeptr->tm_wday = (_daycount + CYGNUM_LIBC_TIME_EPOCH_WDAY) % 7;
+
+ // if _daycount was negative, on some targets the modulo operator will
+ // return negative, so we adjust for that
+
+ if (__timeptr->tm_wday < 0)
+ __timeptr->tm_wday += 7;
+
+ // now finally work out return value
+
+ _ret = __timeptr->tm_sec + 60*__timeptr->tm_min + 60*60*__timeptr->tm_hour;
+ _ret += _daycount*24*60*60;
+
+ CYG_REPORT_RETVAL(_ret);
+
+ return _ret;
+} // mktime()
+
+#endif // ifdef CYGIMP_LIBC_TIME_MKTIME_INLINE
+
+
+// Time conversion functions - ISO C 7.12.3
+
+////////////////////////////////
+// asctime() - ISO C 7.12.3.1 //
+////////////////////////////////
+//
+// This returns a textual representation of a struct tm
+//
+
+#ifdef CYGIMP_LIBC_TIME_ASCTIME_INLINE
+
+extern char cyg_libc_time_asctime_buf[];
+
+CYGPRI_LIBC_TIME_ASCTIME_INLINE char *
+asctime( const struct tm *__timeptr )
+{
+ CYG_REPORT_FUNCNAMETYPE("__asctime", "returning \"%s\"");
+ CYG_REPORT_FUNCARG1("__timeptr = %08x", __timeptr);
+
+ // paranoia
+ CYG_CHECK_DATA_PTR(__timeptr, "__timeptr is not a valid pointer!");
+
+ (void)__asctime_r( __timeptr, cyg_libc_time_asctime_buf );
+
+ CYG_REPORT_RETVAL(cyg_libc_time_asctime_buf);
+
+ return cyg_libc_time_asctime_buf;
+} // asctime()
+
+#endif // ifdef CYGIMP_LIBC_TIME_ASCTIME_INLINE
+
+
+///////////////////////////////
+// gmtime() - ISO C 7.12.3.3 //
+///////////////////////////////
+//
+// This converts a time_t into a struct tm expressed in UTC
+//
+
+#ifdef CYGIMP_LIBC_TIME_GMTIME_INLINE
+
+extern struct tm cyg_libc_time_gmtime_buf;
+
+CYGPRI_LIBC_TIME_GMTIME_INLINE struct tm *
+gmtime( const time_t *__timer )
+{
+ CYG_REPORT_FUNCNAMETYPE("gmtime", "returning %08x");
+ CYG_CHECK_DATA_PTR(__timer, "__timer is not a valid pointer!");
+ CYG_REPORT_FUNCARG1("*__timer=%d", *__timer);
+
+ __gmtime_r(__timer, &cyg_libc_time_gmtime_buf);
+
+ CYG_REPORT_RETVAL(&cyg_libc_time_gmtime_buf);
+
+ return &cyg_libc_time_gmtime_buf;
+} // gmtime()
+
+#endif // ifdef CYGIMP_LIBC_TIME_GMTIME_INLINE
+
+
+//////////////////////////////////
+// localtime() - ISO C 7.12.3.4 //
+//////////////////////////////////
+//
+// This converts a time_t into a struct tm expressed in local time
+//
+
+#ifdef CYGIMP_LIBC_TIME_LOCALTIME_INLINE
+
+extern struct tm cyg_libc_time_localtime_buf;
+
+CYGPRI_LIBC_TIME_LOCALTIME_INLINE struct tm *
+localtime( const time_t *__timer )
+{
+ CYG_REPORT_FUNCNAMETYPE("localtime", "returning %08x");
+ CYG_CHECK_DATA_PTR(__timer, "__timer is not a valid pointer!");
+ CYG_REPORT_FUNCARG1("*__timer=%d", *__timer);
+
+ __localtime_r(__timer, &cyg_libc_time_localtime_buf);
+
+ CYG_REPORT_RETVAL(&cyg_libc_time_localtime_buf);
+
+ return &cyg_libc_time_localtime_buf;
+} // localtime()
+
+#endif // ifdef CYGIMP_LIBC_TIME_LOCALTIME_INLINE
+
+
+//////////////////////////////
+// ctime() - ISO C 7.12.3.2 //
+//////////////////////////////
+//
+// This returns asctime(localtime(__timeptr))
+//
+
+#ifdef CYGIMP_LIBC_TIME_CTIME_INLINE
+
+CYGPRI_LIBC_TIME_CTIME_INLINE char *
+ctime( const time_t *__timer )
+{
+ char *_str;
+
+ CYG_REPORT_FUNCNAMETYPE("ctime", "returning \"%s\"");
+ CYG_CHECK_DATA_PTR( __timer, "__timer is not a valid pointer!");
+ CYG_REPORT_FUNCARG1("*__timer = %d", *__timer);
+
+ _str = asctime(localtime(__timer));
+
+ CYG_REPORT_RETVAL(_str);
+
+ return _str;
+} // ctime()
+
+#endif // ifdef CYGIMP_LIBC_TIME_CTIME_INLINE
+
+
+#ifdef __cplusplus
+} // extern "C"
+#endif
+
+#endif // CYGONCE_LIBC_TIME_INL multiple inclusion protection
+
+// EOF time.inl
diff --git a/ecos/packages/language/c/libc/time/current/include/timeutil.h b/ecos/packages/language/c/libc/time/current/include/timeutil.h
new file mode 100644
index 0000000..89b3f38
--- /dev/null
+++ b/ecos/packages/language/c/libc/time/current/include/timeutil.h
@@ -0,0 +1,110 @@
+#ifndef CYGONCE_LIBC_TIME_TIMEUTIL_H
+#define CYGONCE_LIBC_TIME_TIMEUTIL_H
+//========================================================================
+//
+// timeutil.h
+//
+// ISO C date and time implementation support functions
+//
+//========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1999-03-03
+// Purpose: Provide declarations for support functions used by the
+// ISO C date and time implementation
+// Description:
+// Usage: #include <cyg/libc/time/timeutil.h>
+//
+//####DESCRIPTIONEND####
+//
+//========================================================================
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+// GLOBALS
+
+// Strings of the days and month names
+// FIXME: should comment out "const" in multi-dimensional arrays until
+// PR 19440 is fixed
+extern const char cyg_libc_time_day_name[7][10];
+extern const cyg_uint8 cyg_libc_time_day_name_len[7];
+extern const char cyg_libc_time_month_name[12][10];
+extern const cyg_uint8 cyg_libc_time_month_name_len[12];
+
+// number of days in each month, defined for normal and leap years
+extern const cyg_uint8 cyg_libc_time_month_lengths[2][12];
+
+
+// FUNCTION PROTOTYPES
+
+////////////////////////////////////////
+// cyg_libc_time_normalize_structtm() //
+////////////////////////////////////////
+//
+// cyg_libc_time_normalize_structtm() will adjust the fields of a struct tm
+// so that they are within the normal ranges expected.
+// tm_wday, tm_yday, and tm_isdst are ignored
+
+extern void
+cyg_libc_time_normalize_structtm( struct tm *__timeptr );
+
+//////////////////////////
+// cyg_libc_time_itoa() //
+//////////////////////////
+//
+// This converts num to a string and puts it into s padding with
+// "0"'s if padzero is set, or spaces otherwise if necessary.
+// The number of chars written to s is returned
+//
+
+extern cyg_ucount8
+cyg_libc_time_itoa( cyg_uint8 *__s, cyg_int32 __num, cyg_uint8 __width,
+ cyg_bool __padzero );
+
+#ifdef __cplusplus
+} // extern "C"
+#endif
+
+#endif // CYGONCE_LIBC_TIME_TIMEUTIL_H multiple inclusion protection
+
+// EOF timeutil.h
diff --git a/ecos/packages/language/c/libc/time/current/src/asctime.cxx b/ecos/packages/language/c/libc/time/current/src/asctime.cxx
new file mode 100644
index 0000000..b26fffe
--- /dev/null
+++ b/ecos/packages/language/c/libc/time/current/src/asctime.cxx
@@ -0,0 +1,76 @@
+//========================================================================
+//
+// asctime.cxx
+//
+// ISO C date and time implementation for asctime()
+//
+//========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1999-02-26
+// Purpose: Provide implementation of ISO C asctime()
+// Description: This file provides the linkable symbol version of asctime()
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libc_time.h> // C library configuration
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+
+// The following lines allow asctime() to be included non-inline which
+// actually defines it as a function here
+#define CYGPRI_LIBC_TIME_ASCTIME_INLINE
+#ifndef CYGIMP_LIBC_TIME_ASCTIME_INLINE
+# define CYGIMP_LIBC_TIME_ASCTIME_INLINE
+#endif
+
+#include <time.h> // Main date and time definitions
+
+// GLOBALS
+
+// 26 isn't such a magic value if you work out what asctime is returning
+// It should do until 23:59:59 31st Dec 9999 anyway :-)
+char cyg_libc_time_asctime_buf[26];
+
+// EOF asctime.cxx
diff --git a/ecos/packages/language/c/libc/time/current/src/asctime_r.cxx b/ecos/packages/language/c/libc/time/current/src/asctime_r.cxx
new file mode 100644
index 0000000..5098da9
--- /dev/null
+++ b/ecos/packages/language/c/libc/time/current/src/asctime_r.cxx
@@ -0,0 +1,70 @@
+//========================================================================
+//
+// asctime_r.cxx
+//
+// POSIX 1003.1 date and time implementation for asctime_r()
+//
+//========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1999-02-26
+// Purpose: Provide implementation of POSIX 1003.1 asctime()
+// Description: This file provides the linkable symbol version of asctime_r()
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libc_time.h> // C library configuration
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+
+// The following lines allow asctime_r() to be included non-inline which
+// actually defines it as a function here
+#define CYGPRI_LIBC_TIME_ASCTIME_R_INLINE
+#ifndef CYGIMP_LIBC_TIME_ASCTIME_R_INLINE
+# define CYGIMP_LIBC_TIME_ASCTIME_R_INLINE
+#endif
+
+#include <time.h> // Main date and time definitions
+
+// EOF asctime_r.cxx
diff --git a/ecos/packages/language/c/libc/time/current/src/clock.cxx b/ecos/packages/language/c/libc/time/current/src/clock.cxx
new file mode 100644
index 0000000..0dbe249
--- /dev/null
+++ b/ecos/packages/language/c/libc/time/current/src/clock.cxx
@@ -0,0 +1,134 @@
+//===========================================================================
+//
+// clock.cxx
+//
+// ISO C date and time implementation for clock()
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1999-03-05
+// Purpose: Provides an implementation of the ISO C function clock()
+// from ISO C section 7.12.2.1
+// Description: This file uses the kernel real time clock to determine
+// the complete running time of the system - since we only
+// have one task, even though there are perhaps multiple threads
+// that is still the running time of the "program"
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libc_time.h> // Configuration header
+
+#ifdef CYGSEM_LIBC_TIME_CLOCK_WORKING
+# include <pkgconf/kernel.h> // Kernel config header
+#endif
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include <cyg/infra/cyg_ass.h> // Assertion infrastructure
+#include <cyg/infra/cyg_trac.h> // Tracing infrastructure
+
+#include <time.h> // Header for all time-related functions
+
+#ifdef CYGSEM_LIBC_TIME_CLOCK_WORKING
+# include <cyg/kernel/clock.hxx> // Kernel clock definitions
+# include <cyg/kernel/clock.inl> // Kernel clock inline functions
+#endif
+
+
+// TRACE
+
+# if defined(CYGDBG_USE_TRACING) && defined(CYGNUM_LIBC_TIME_CLOCK_TRACE_LEVEL)
+static int clock_trace = CYGNUM_LIBC_TIME_CLOCK_TRACE_LEVEL;
+# define TL1 (0 < clock_trace)
+# else
+# define TL1 (0)
+# endif
+
+// FUNCTIONS
+
+externC clock_t
+clock( void )
+{
+ CYG_REPORT_FUNCNAMETYPE( "clock", "returning clock tick %d" );
+ CYG_REPORT_FUNCARGVOID();
+
+#ifdef CYGSEM_LIBC_TIME_CLOCK_WORKING
+ cyg_tick_count curr_clock; // kernel clock value
+ Cyg_Clock::cyg_resolution resolution; // kernel clock resolution
+ clock_t clocks;
+ unsigned long long temp;
+
+ CYG_TRACE0( TL1, "getting clock resolution" );
+
+ // get the resolution
+ resolution = Cyg_Clock::real_time_clock->get_resolution();
+
+ CYG_TRACE2( TL1, "got resolution dividend %d divisor %d. Getting "
+ "clock value", resolution.dividend, resolution.divisor );
+
+ // get the value
+ curr_clock = Cyg_Clock::real_time_clock->current_value();
+
+ CYG_TRACE1( TL1, "got clock value %d", curr_clock );
+
+ // scale the value so that clock()/CLOCKS_PER_SEC works
+ // We use an unsigned long long to avoid overflow as the dividend
+ // and divisors tend to be huge
+ temp = (1000000000 / CLOCKS_PER_SEC);
+ temp *= resolution.divisor;
+ temp = (unsigned long long)curr_clock * resolution.dividend / temp;
+ clocks = (clock_t)temp;
+
+ CYG_REPORT_RETVAL( clocks );
+ return clocks;
+
+#else // i.e. ifndef CYGSEM_LIBC_TIME_CLOCK_WORKING
+ CYG_REPORT_RETVAL( -1 );
+ return (clock_t) -1;
+#endif
+
+} // clock()
+
+
+// EOF clock.cxx
diff --git a/ecos/packages/language/c/libc/time/current/src/ctime.cxx b/ecos/packages/language/c/libc/time/current/src/ctime.cxx
new file mode 100644
index 0000000..e95a8d4
--- /dev/null
+++ b/ecos/packages/language/c/libc/time/current/src/ctime.cxx
@@ -0,0 +1,66 @@
+//========================================================================
+//
+// ctime.cxx
+//
+// ISO C date and time implementation for ctime()
+//
+//========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1999-02-26
+// Purpose: Provide implementation of ISO C ctime()
+// Description: This file provides the linkable symbol version of ctime()
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libc_time.h> // C library configuration
+
+// The following lines allow ctime() to be included non-inline which
+// actually defines it as a function here
+#define CYGPRI_LIBC_TIME_CTIME_INLINE
+#ifndef CYGIMP_LIBC_TIME_CTIME_INLINE
+# define CYGIMP_LIBC_TIME_CTIME_INLINE
+#endif
+
+#include <time.h> // Main date and time definitions
+
+// EOF ctime.cxx
diff --git a/ecos/packages/language/c/libc/time/current/src/ctime_r.cxx b/ecos/packages/language/c/libc/time/current/src/ctime_r.cxx
new file mode 100644
index 0000000..239768e
--- /dev/null
+++ b/ecos/packages/language/c/libc/time/current/src/ctime_r.cxx
@@ -0,0 +1,66 @@
+//========================================================================
+//
+// ctime_r.cxx
+//
+// POSIX 1003.1 date and time implementation for ctime_r()
+//
+//========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1999-02-26
+// Purpose: Provide implementation of POSIX 1003.1 ctime()
+// Description: This file provides the linkable symbol version of ctime_r()
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libc_time.h> // C library configuration
+
+// The following lines allow ctime_r() to be included non-inline which
+// actually defines it as a function here
+#define CYGPRI_LIBC_TIME_CTIME_R_INLINE
+#ifndef CYGIMP_LIBC_TIME_CTIME_R_INLINE
+# define CYGIMP_LIBC_TIME_CTIME_R_INLINE
+#endif
+
+#include <time.h> // Main date and time definitions
+
+// EOF ctime_r.cxx
diff --git a/ecos/packages/language/c/libc/time/current/src/difftime.cxx b/ecos/packages/language/c/libc/time/current/src/difftime.cxx
new file mode 100644
index 0000000..367ff1b
--- /dev/null
+++ b/ecos/packages/language/c/libc/time/current/src/difftime.cxx
@@ -0,0 +1,66 @@
+//========================================================================
+//
+// difftime.cxx
+//
+// ISO C date and time implementation for difftime()
+//
+//========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1999-02-26
+// Purpose: Provide implementation of ISO C difftime()
+// Description: This file provides the linkable symbol version of difftime()
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libc_time.h> // C library configuration
+
+// The following lines allow difftime() to be included non-inline which
+// actually defines it as a function here
+#define CYGPRI_LIBC_TIME_DIFFTIME_INLINE
+#ifndef CYGIMP_LIBC_TIME_DIFFTIME_INLINE
+# define CYGIMP_LIBC_TIME_DIFFTIME_INLINE
+#endif
+
+#include <time.h> // Main date and time definitions
+
+// EOF difftime.cxx
diff --git a/ecos/packages/language/c/libc/time/current/src/gmtime.cxx b/ecos/packages/language/c/libc/time/current/src/gmtime.cxx
new file mode 100644
index 0000000..46cf44d
--- /dev/null
+++ b/ecos/packages/language/c/libc/time/current/src/gmtime.cxx
@@ -0,0 +1,74 @@
+//========================================================================
+//
+// gmtime.cxx
+//
+// ISO C date and time implementation for gmtime()
+//
+//========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1999-02-26
+// Purpose: Provide implementation of ISO C gmtime()
+// Description: This file provides the linkable symbol version of gmtime()
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libc_time.h> // C library configuration
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+
+// The following lines allow gmtime() to be included non-inline which
+// actually defines it as a function here
+#define CYGPRI_LIBC_TIME_GMTIME_INLINE
+#ifndef CYGIMP_LIBC_TIME_GMTIME_INLINE
+# define CYGIMP_LIBC_TIME_GMTIME_INLINE
+#endif
+
+#include <time.h> // Main date and time definitions
+
+// GLOBALS
+
+struct tm cyg_libc_time_gmtime_buf;
+
+// EOF gmtime.cxx
diff --git a/ecos/packages/language/c/libc/time/current/src/gmtime_r.cxx b/ecos/packages/language/c/libc/time/current/src/gmtime_r.cxx
new file mode 100644
index 0000000..70e6702
--- /dev/null
+++ b/ecos/packages/language/c/libc/time/current/src/gmtime_r.cxx
@@ -0,0 +1,66 @@
+//========================================================================
+//
+// gmtime_r.cxx
+//
+// POSIX 1003.1 date and time implementation for gmtime_r()
+//
+//========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1999-02-26
+// Purpose: Provide implementation of POSIX 1003.1 gmtime()
+// Description: This file provides the linkable symbol version of gmtime_r()
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libc_time.h> // C library configuration
+
+// The following lines allow gmtime_r() to be included non-inline which
+// actually defines it as a function here
+#define CYGPRI_LIBC_TIME_GMTIME_R_INLINE
+#ifndef CYGIMP_LIBC_TIME_GMTIME_R_INLINE
+# define CYGIMP_LIBC_TIME_GMTIME_R_INLINE
+#endif
+
+#include <time.h> // Main date and time definitions
+
+// EOF gmtime_r.cxx
diff --git a/ecos/packages/language/c/libc/time/current/src/localtime.cxx b/ecos/packages/language/c/libc/time/current/src/localtime.cxx
new file mode 100644
index 0000000..b340972
--- /dev/null
+++ b/ecos/packages/language/c/libc/time/current/src/localtime.cxx
@@ -0,0 +1,70 @@
+//========================================================================
+//
+// localtime.cxx
+//
+// ISO C date and time implementation for localtime()
+//
+//========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1999-02-26
+// Purpose: Provide implementation of ISO C localtime()
+// Description: This file provides the linkable symbol version of localtime()
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libc_time.h> // C library configuration
+
+// The following lines allow localtime() to be included non-inline which
+// actually defines it as a function here
+#define CYGPRI_LIBC_TIME_LOCALTIME_INLINE
+#ifndef CYGIMP_LIBC_TIME_LOCALTIME_INLINE
+# define CYGIMP_LIBC_TIME_LOCALTIME_INLINE
+#endif
+
+#include <time.h> // Main date and time definitions
+
+// GLOBALS
+
+struct tm cyg_libc_time_localtime_buf;
+
+// EOF localtime.cxx
diff --git a/ecos/packages/language/c/libc/time/current/src/localtime_r.cxx b/ecos/packages/language/c/libc/time/current/src/localtime_r.cxx
new file mode 100644
index 0000000..442cb2e
--- /dev/null
+++ b/ecos/packages/language/c/libc/time/current/src/localtime_r.cxx
@@ -0,0 +1,67 @@
+//========================================================================
+//
+// localtime_r.cxx
+//
+// POSIX 1003.1 date and time implementation for localtime_r()
+//
+//========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1999-02-26
+// Purpose: Provide implementation of POSIX 1003.1 localtime()
+// Description: This file provides the linkable symbol version of
+// localtime_r()
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libc_time.h> // C library configuration
+
+// The following lines allow localtime_r() to be included non-inline which
+// actually defines it as a function here
+#define CYGPRI_LIBC_TIME_LOCALTIME_R_INLINE
+#ifndef CYGIMP_LIBC_TIME_LOCALTIME_R_INLINE
+# define CYGIMP_LIBC_TIME_LOCALTIME_R_INLINE
+#endif
+
+#include <time.h> // Main date and time definitions
+
+// EOF localtime_r.cxx
diff --git a/ecos/packages/language/c/libc/time/current/src/mktime.cxx b/ecos/packages/language/c/libc/time/current/src/mktime.cxx
new file mode 100644
index 0000000..817feb3
--- /dev/null
+++ b/ecos/packages/language/c/libc/time/current/src/mktime.cxx
@@ -0,0 +1,66 @@
+//========================================================================
+//
+// mktime.cxx
+//
+// ISO C date and time implementation for mktime()
+//
+//========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1999-02-26
+// Purpose: Provide implementation of ISO C mktime()
+// Description: This file provides the linkable symbol version of mktime()
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libc_time.h> // C library configuration
+
+// The following lines allow mktime() to be included non-inline which
+// actually defines it as a function here
+#define CYGPRI_LIBC_TIME_MKTIME_INLINE
+#ifndef CYGIMP_LIBC_TIME_MKTIME_INLINE
+# define CYGIMP_LIBC_TIME_MKTIME_INLINE
+#endif
+
+#include <time.h> // Main date and time definitions
+
+// EOF mktime.cxx
diff --git a/ecos/packages/language/c/libc/time/current/src/settime.cxx b/ecos/packages/language/c/libc/time/current/src/settime.cxx
new file mode 100644
index 0000000..2af0bef
--- /dev/null
+++ b/ecos/packages/language/c/libc/time/current/src/settime.cxx
@@ -0,0 +1,96 @@
+//========================================================================
+//
+// settime.cxx
+//
+// Date and time support function to set time
+//
+//========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1999-02-26
+// Purpose: Provide support function to set the time
+// Description: The wallclock device is used to store the time in UTC
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libc_time.h> // C library configuration
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include <time.h> // Main date and time definitions
+#include <cyg/infra/cyg_ass.h> // Assertion infrastructure
+#include <cyg/infra/cyg_trac.h> // Tracing infrastructure
+#ifdef CYGSEM_LIBC_TIME_SETTIME_WORKING
+# include <cyg/io/wallclock.hxx> // Wallclock class definitions
+#endif
+
+// FUNCTIONS
+
+/////////////////////////////
+// cyg_libc_time_settime() //
+/////////////////////////////
+//
+// This function sets the current time for the system. The time is
+// specified as a time_t in UTC. It returns non-zero on error.
+//
+
+externC cyg_bool
+cyg_libc_time_settime( time_t utctime )
+{
+ CYG_REPORT_FUNCNAMETYPE("cyg_libc_time_settime", "returning status %d");
+ CYG_REPORT_FUNCARG1DV(utctime);
+
+#ifdef CYGSEM_LIBC_TIME_SETTIME_WORKING
+
+ Cyg_WallClock::wallclock->set_current_time((cyg_uint32) utctime);
+
+ CYG_REPORT_RETVAL(false);
+ return false;
+#else
+ CYG_REPORT_RETVAL(true);
+ return true;
+#endif
+
+} // cyg_libc_time_settime()
+
+// EOF settime.cxx
diff --git a/ecos/packages/language/c/libc/time/current/src/strftime.cxx b/ecos/packages/language/c/libc/time/current/src/strftime.cxx
new file mode 100644
index 0000000..3240d1b
--- /dev/null
+++ b/ecos/packages/language/c/libc/time/current/src/strftime.cxx
@@ -0,0 +1,360 @@
+//========================================================================
+//
+// strftime.cxx
+//
+// ISO C date and time implementation for strftime()
+//
+//========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1999-02-26
+// Purpose: Provide implementation of the ISO C function strftime()
+// from ISO C section 7.12.3.5
+// Description: This file provides the implementation of strftime()
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libc_time.h> // C library configuration
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include <cyg/infra/cyg_ass.h> // Assertion infrastructure
+#include <cyg/infra/cyg_trac.h> // Tracing infrastructure
+#include <time.h> // Main date and time definitions
+#include <cyg/libc/time/timeutil.h>// For cyg_libc_time_{day,month}_name{,_len}
+
+// FUNCTION PROTOTYPES
+
+// FIXME: This all needs to be internationalized and localized, both in
+// terms of reading and writing multibyte characters, and that it should
+// refer to the settings of LC_TIME
+
+// FUNCTIONS
+
+// This helper function actually processes the format. Which format to insert
+// is indicated by fmtchar, sizeleft is the maximum space allowed to be used
+// in buf. The number of bytes written is returned, or -1 if there was no
+// space
+
+static cyg_count8
+do_format(cyg_uint8 fmtchar, cyg_ucount32 sizeleft, char *buf,
+ const struct tm *timeptr)
+{
+ cyg_count8 i;
+
+ switch (fmtchar) {
+ case 'a':
+ CYG_PRECONDITION((timeptr->tm_wday >= 0) && (timeptr->tm_wday < 7),
+ "timeptr->tm_wday out of range!");
+ if (sizeleft<3)
+ return -1;
+ buf[0] = cyg_libc_time_day_name[timeptr->tm_wday][0];
+ buf[1] = cyg_libc_time_day_name[timeptr->tm_wday][1];
+ buf[2] = cyg_libc_time_day_name[timeptr->tm_wday][2];
+ return 3;
+ case 'A':
+ CYG_PRECONDITION((timeptr->tm_wday >= 0) && (timeptr->tm_wday < 7),
+ "timeptr->tm_wday out of range!");
+ if (sizeleft < cyg_libc_time_day_name_len[timeptr->tm_wday])
+ return -1;
+ for (i=0; i<cyg_libc_time_day_name_len[timeptr->tm_wday]; ++i)
+ buf[i] = cyg_libc_time_day_name[timeptr->tm_wday][i];
+ return i;
+#ifdef CYGFUN_LIBC_TIME_SUS_EXTNS
+ case 'h':
+ // ** fall through **
+#endif
+ case 'b':
+ CYG_PRECONDITION((timeptr->tm_mon >= 0) && (timeptr->tm_mon < 12),
+ "timeptr->tm_mon out of range!");
+ if (sizeleft<3)
+ return -1;
+ buf[0] = cyg_libc_time_month_name[timeptr->tm_mon][0];
+ buf[1] = cyg_libc_time_month_name[timeptr->tm_mon][1];
+ buf[2] = cyg_libc_time_month_name[timeptr->tm_mon][2];
+ return 3;
+ case 'B':
+ CYG_PRECONDITION((timeptr->tm_mon >= 0) && (timeptr->tm_mon < 12),
+ "timeptr->tm_mon out of range!");
+ if (sizeleft < cyg_libc_time_month_name_len[timeptr->tm_mon])
+ return -1;
+ for (i=0; i<cyg_libc_time_month_name_len[timeptr->tm_mon]; ++i)
+ buf[i] = cyg_libc_time_month_name[timeptr->tm_mon][i];
+ return i;
+ case 'c':
+ if (sizeleft < 26)
+ return -1;
+
+ // Recurse! Note that we know that we will have left room for the
+ // trailing NULL in the strftime body
+
+ i = strftime( buf, sizeleft+1, "%a %b %d %I:%M:%S%p %Y", timeptr);
+
+ return ((0==i) ? -1 : i);
+ case 'd':
+ // Currently I don't check _actual_ numbers of days in each month here
+ // FIXME: No reason why not though
+ CYG_PRECONDITION((timeptr->tm_mday >= 1) && (timeptr->tm_mday < 32),
+ "timeptr->tm_mday out of range!");
+
+ if (sizeleft < 2)
+ return -1;
+ buf[0] = (timeptr->tm_mday / 10) + '0';
+ buf[1] = (timeptr->tm_mday % 10) + '0';
+ return 2;
+#ifdef CYGFUN_LIBC_TIME_SUS_EXTNS
+ case 'e':
+ // Currently I don't check _actual_ numbers of days in each month here
+ // FIXME: No reason why not though
+ CYG_PRECONDITION((timeptr->tm_mday >= 1) && (timeptr->tm_mday < 32),
+ "timeptr->tm_mday out of range!");
+ if (sizeleft < 2)
+ return -1;
+ i = (timeptr->tm_mday / 10);
+ buf[0] = (0 == i) ? ' ' : i + '0';
+ buf[1] = (timeptr->tm_mday % 10) + '0';
+ return 2;
+#endif
+ case 'H':
+ CYG_PRECONDITION((timeptr->tm_hour >= 0) && (timeptr->tm_hour < 24),
+ "timeptr->tm_hour out of range!");
+ if (sizeleft < 2)
+ return -1;
+ buf[0] = (timeptr->tm_hour / 10) + '0';
+ buf[1] = (timeptr->tm_hour % 10) + '0';
+ return 2;
+ case 'I':
+ CYG_PRECONDITION((timeptr->tm_hour >= 0) && (timeptr->tm_hour < 24),
+ "timeptr->tm_hour out of range!");
+ if (sizeleft < 2)
+ return -1;
+ buf[0] = (((timeptr->tm_hour%12) ? (timeptr->tm_hour%12) : 12) / 10) + '0';
+ buf[1] = (((timeptr->tm_hour%12) ? (timeptr->tm_hour%12) : 12) % 10) + '0';
+ return 2;
+ case 'j':
+ CYG_PRECONDITION((timeptr->tm_yday >= 0) && (timeptr->tm_yday < 366),
+ "timeptr->tm_yday out of range!");
+ if (sizeleft < 3)
+ return -1;
+ buf[0] = (timeptr->tm_yday / 100) + '0';
+ buf[1] = ((timeptr->tm_yday % 100) / 10) + '0';
+ buf[2] = (timeptr->tm_yday % 10) + '0';
+ return 3;
+ case 'm':
+ CYG_PRECONDITION((timeptr->tm_mon >= 0) && (timeptr->tm_mon < 12),
+ "timeptr->tm_mon out of range!");
+ if (sizeleft < 2)
+ return -1;
+ buf[0] = ((timeptr->tm_mon+1) / 10) + '0';
+ buf[1] = ((timeptr->tm_mon+1) % 10) + '0';
+ return 2;
+ case 'M':
+ CYG_PRECONDITION((timeptr->tm_min >= 0) && (timeptr->tm_min < 60),
+ "timeptr->tm_min out of range!");
+ if (sizeleft < 2)
+ return -1;
+ buf[0] = (timeptr->tm_min / 10) + '0';
+ buf[1] = (timeptr->tm_min % 10) + '0';
+ return 2;
+ case 'p':
+ CYG_PRECONDITION((timeptr->tm_hour >= 0) && (timeptr->tm_hour < 24),
+ "timeptr->tm_hour out of range!");
+ if (sizeleft < 2)
+ return -1;
+ buf[0] = (timeptr->tm_hour > 11) ? 'p' : 'a';
+ buf[1] = 'm';
+ return 2;
+ case 'S':
+ CYG_PRECONDITION((timeptr->tm_sec >= 0) && (timeptr->tm_sec < 62),
+ "timeptr->tm_sec out of range!");
+ if (sizeleft < 2)
+ return -1;
+ buf[0] = (timeptr->tm_sec / 10) + '0';
+ buf[1] = (timeptr->tm_sec % 10) + '0';
+ return 2;
+#ifdef CYGFUN_LIBC_TIME_SUS_EXTNS
+ case 'T':
+ if (sizeleft < 8)
+ return -1;
+
+ // Recurse! Note that we know that we will have left room for the
+ // trailing NULL in the strftime body
+
+ i = strftime( buf, sizeleft+1, "%H:%M:%S", timeptr);
+
+ return ((0==i) ? -1 : i);
+#endif
+ case 'U':
+ CYG_PRECONDITION((timeptr->tm_wday >= 0) && (timeptr->tm_wday < 7),
+ "timeptr->tm_wday out of range!");
+ CYG_PRECONDITION((timeptr->tm_yday >= 0) && (timeptr->tm_yday < 366),
+ "timeptr->tm_yday out of range!");
+ if (sizeleft < 2)
+ return -1;
+ i = (timeptr->tm_yday - timeptr->tm_wday + 7) / 7;
+ buf[0] = (i / 10) + '0';
+ buf[1] = (i % 10) + '0';
+ return 2;
+ case 'w':
+ CYG_PRECONDITION((timeptr->tm_wday >= 0) && (timeptr->tm_wday < 7),
+ "timeptr->tm_wday out of range!");
+ // Don't need to check size - we'll always be called with sizeleft > 0
+ buf[0] = timeptr->tm_wday + '0';
+ return 1;
+ case 'W':
+ CYG_PRECONDITION((timeptr->tm_wday >= 0) && (timeptr->tm_wday < 7),
+ "timeptr->tm_wday out of range!");
+ CYG_PRECONDITION((timeptr->tm_yday >= 0) && (timeptr->tm_yday < 366),
+ "timeptr->tm_yday out of range!");
+ if (sizeleft < 2)
+ return -1;
+ i = (timeptr->tm_yday + ((8-timeptr->tm_wday) % 7)) / 7;
+ buf[0] = (i / 10) + '0';
+ buf[1] = (i % 10) + '0';
+ return 2;
+ case 'x':
+ if (sizeleft < 15)
+ return -1;
+
+ // Recurse! Note that we know that we will have left room for the
+ // trailing NULL in the strftime body
+
+ i = strftime( buf, sizeleft+1, "%a %b %d %Y", timeptr);
+
+ return (0==i) ? -1 : i;
+ case 'X':
+ if (sizeleft < 10)
+ return -1;
+
+ // Recurse! Note that we know that we will have left room for the
+ // trailing NULL in the strftime body
+
+ i = strftime( buf, sizeleft+1, "%I:%M:%S%p", timeptr);
+
+ return (0==i) ? -1 : i;
+ case 'y':
+ CYG_PRECONDITION((timeptr->tm_year > -1900) &&
+ (timeptr->tm_year < 8100),
+ "timeptr->tm_year out of range!");
+ if (sizeleft < 2)
+ return -1;
+ buf[0] = ((timeptr->tm_year % 100) / 10) + '0';
+ buf[1] = ((timeptr->tm_year % 100) % 10) + '0';
+ return 2;
+ case 'Y':
+ CYG_PRECONDITION((timeptr->tm_year > -1900) &&
+ (timeptr->tm_year < 8100),
+ "timeptr->tm_year out of range!");
+ if (sizeleft < 4)
+ return -1;
+ buf[0] = ((1900+timeptr->tm_year) / 1000) + '0';
+ buf[1] = (((1900+timeptr->tm_year) % 1000) / 100) + '0';
+ buf[2] = ((timeptr->tm_year % 100) / 10) + '0';
+ buf[3] = (timeptr->tm_year % 10) + '0';
+ return 4;
+ case 'Z':
+ // FIXME: Should store zone in timeptr->tm_zone, or failing that
+ // read TZ env variable using tzset()
+ return 0;
+ case '%':
+ // Don't need to check size - we'll always be called with sizeleft > 0
+ buf[0] = '%';
+ return 1;
+ default:
+ CYG_FAIL("invalid format character!");
+ return -1;
+ } // switch
+
+} // do_format()
+
+externC size_t
+strftime( char *s, size_t maxsize, const char *format,
+ const struct tm *timeptr)
+{
+ CYG_REPORT_FUNCNAMETYPE("strftime", "returning string length %d");
+ CYG_CHECK_DATA_PTR(s, "string s is not a valid address!");
+ CYG_CHECK_DATA_PTR(format, "format string is not at a valid address!");
+ CYG_CHECK_DATA_PTR(timeptr,
+ "struct tm argument is not at a valid address!");
+ CYG_REPORT_FUNCARG4("s is at address %08x, maxsize=%d, format=\"%s\", "
+ "timeptr is at address %08x",
+ s, maxsize, format, timeptr);
+
+ if (!maxsize) {
+ CYG_REPORT_RETVAL(0);
+ return 0;
+ } // if
+
+ // lets leave the room for the trailing null up front
+ --maxsize;
+
+ cyg_ucount32 i, spos;
+ cyg_count8 dof_ret;
+
+ for (i=0, spos=0; (spos<maxsize) && (format[i] != '\0'); ++i) {
+ if (format[i] == '%') {
+ if (format[++i] == '\0')
+ break;
+ dof_ret = do_format(format[i], maxsize - spos, &s[spos], timeptr);
+ // was there room to write _anything_?
+ if (dof_ret < 0) {
+ spos=0; // ISO says we must return 0 and the contents of s
+ // are indeterminate
+ break;
+ }
+ spos += dof_ret;
+ }
+ else {
+ s[spos++] = format[i];
+ } // else
+ } // for
+
+ s[spos] = '\0';
+
+ CYG_REPORT_RETVAL(spos);
+ return spos;
+
+} // strftime()
+
+
+// EOF strftime.cxx
diff --git a/ecos/packages/language/c/libc/time/current/src/strptime.cxx b/ecos/packages/language/c/libc/time/current/src/strptime.cxx
new file mode 100644
index 0000000..3a646dd
--- /dev/null
+++ b/ecos/packages/language/c/libc/time/current/src/strptime.cxx
@@ -0,0 +1,425 @@
+//
+// Adapted for use in eCos by Gary Thomas
+// Copyright (C) 2003 Gary Thomas
+//
+
+/*
+ * Copyright (c) 1999 Kungliga Tekniska Högskolan
+ * (Royal Institute of Technology, Stockholm, Sweden).
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * 3. Neither the name of KTH nor the names of its contributors may be
+ * used to endorse or promote products derived from this software without
+ * specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY KTH AND ITS CONTRIBUTORS ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL KTH OR ITS CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+ * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
+
+#include <stddef.h>
+#include <stdlib.h>
+#include <ctype.h>
+#include <string.h>
+#include <time.h>
+
+static const char *weekdays[] = {
+ "Sunday",
+ "Monday",
+ "Tuesday",
+ "Wednesday",
+ "Thursday",
+ "Friday",
+ "Saturday",
+ NULL
+};
+
+static const char *month[] = {
+ "January",
+ "February",
+ "March",
+ "April",
+ "May",
+ "June",
+ "July",
+ "August",
+ "September",
+ "October",
+ "November",
+ "December",
+ NULL,
+};
+
+static const char *ampm[] = {
+ "am",
+ "pm",
+ NULL
+};
+
+/*
+ * Try to match `*buf' to one of the strings in `strs'. Return the
+ * index of the matching string (or -1 if none). Also advance buf.
+ */
+
+static int
+match_string (const char **buf, const char **strs, int ablen)
+{
+ int i = 0;
+
+ for (i = 0; strs[i] != NULL; ++i) {
+ int len = ablen > 0 ? ablen : strlen (strs[i]);
+
+ if (strncasecmp (*buf, strs[i], len) == 0) {
+ *buf += len;
+ return i;
+ }
+ }
+ return -1;
+}
+
+/*
+ * tm_year is relative this year
+ */
+
+const int tm_year_base = 1900;
+
+/*
+ * Return TRUE iff `year' was a leap year.
+ */
+
+static int
+is_leap_year (int year)
+{
+ return (year % 4) == 0 && ((year % 100) != 0 || (year % 400) == 0);
+}
+
+/*
+ * Return the weekday [0,6] (0 = Sunday) of the first day of `year'
+ */
+
+static int
+first_day (int year)
+{
+ int ret = 4; // Jan 1, 1970 was on Thursday
+
+ for (; year > 1970; --year)
+ ret = (ret + 365 + is_leap_year (year) ? 1 : 0) % 7;
+ return ret;
+}
+
+/*
+ * Set `timeptr' given `wnum' (week number [0, 53])
+ */
+
+static void
+set_week_number_sun (struct tm *timeptr, int wnum)
+{
+ int fday = first_day (timeptr->tm_year + tm_year_base);
+
+ timeptr->tm_yday = wnum * 7 + timeptr->tm_wday - fday;
+ if (timeptr->tm_yday < 0) {
+ timeptr->tm_wday = fday;
+ timeptr->tm_yday = 0;
+ }
+}
+
+/*
+ * Set `timeptr' given `wnum' (week number [0, 53])
+ */
+
+static void
+set_week_number_mon (struct tm *timeptr, int wnum)
+{
+ int fday = (first_day (timeptr->tm_year + tm_year_base) + 6) % 7;
+
+ timeptr->tm_yday = wnum * 7 + (timeptr->tm_wday + 6) % 7 - fday;
+ if (timeptr->tm_yday < 0) {
+ timeptr->tm_wday = (fday + 1) % 7;
+ timeptr->tm_yday = 0;
+ }
+}
+
+/*
+ * Set `timeptr' given `wnum' (week number [0, 53])
+ */
+
+static void
+set_week_number_mon4 (struct tm *timeptr, int wnum)
+{
+ int fday = (first_day (timeptr->tm_year + tm_year_base) + 6) % 7;
+ int offset = 0;
+
+ if (fday < 4)
+ offset += 7;
+
+ timeptr->tm_yday = offset + (wnum - 1) * 7 + timeptr->tm_wday - fday;
+ if (timeptr->tm_yday < 0) {
+ timeptr->tm_wday = fday;
+ timeptr->tm_yday = 0;
+ }
+}
+
+/*
+ *
+ */
+
+char *
+strptime (const char *buf, const char *format, struct tm *timeptr)
+{
+ char c;
+
+ for (; (c = *format) != '\0'; ++format) {
+ char *s;
+ int ret;
+
+ if (isspace (c)) {
+ while (isspace (*buf))
+ ++buf;
+ } else if (c == '%' && format[1] != '\0') {
+ c = *++format;
+ if (c == 'E' || c == 'O')
+ c = *++format;
+ switch (c) {
+ case 'A' :
+ ret = match_string (&buf, weekdays, 0);
+ if (ret < 0)
+ return NULL;
+ timeptr->tm_wday = ret;
+ break;
+ case 'a' :
+ ret = match_string (&buf, weekdays, 3);
+ if (ret < 0)
+ return NULL;
+ timeptr->tm_wday = ret;
+ break;
+ case 'B' :
+ ret = match_string (&buf, month, 0);
+ if (ret < 0)
+ return NULL;
+ timeptr->tm_mon = ret;
+ break;
+ case 'b' :
+ case 'h' :
+ ret = match_string (&buf, month, 3);
+ if (ret < 0)
+ return NULL;
+ timeptr->tm_mon = ret;
+ break;
+ case 'C' :
+ ret = strtol (buf, &s, 10);
+ if (s == buf)
+ return NULL;
+ timeptr->tm_year = (ret * 100) - tm_year_base;
+ buf = s;
+ break;
+ case 'c' :
+ // Date and Time in the current locale - unsupported
+ return NULL;
+ case 'D' : /* %m/%d/%y */
+ s = strptime (buf, "%m/%d/%y", timeptr);
+ if (s == NULL)
+ return NULL;
+ buf = s;
+ break;
+ case 'd' :
+ case 'e' :
+ ret = strtol (buf, &s, 10);
+ if (s == buf)
+ return NULL;
+ timeptr->tm_mday = ret;
+ buf = s;
+ break;
+ case 'H' :
+ case 'k' :
+ ret = strtol (buf, &s, 10);
+ if (s == buf)
+ return NULL;
+ timeptr->tm_hour = ret;
+ buf = s;
+ break;
+ case 'I' :
+ case 'l' :
+ ret = strtol (buf, &s, 10);
+ if (s == buf)
+ return NULL;
+ if (ret == 12)
+ timeptr->tm_hour = 0;
+ else
+ timeptr->tm_hour = ret;
+ buf = s;
+ break;
+ case 'j' :
+ ret = strtol (buf, &s, 10);
+ if (s == buf)
+ return NULL;
+ timeptr->tm_yday = ret - 1;
+ buf = s;
+ break;
+ case 'm' :
+ ret = strtol (buf, &s, 10);
+ if (s == buf)
+ return NULL;
+ timeptr->tm_mon = ret - 1;
+ buf = s;
+ break;
+ case 'M' :
+ ret = strtol (buf, &s, 10);
+ if (s == buf)
+ return NULL;
+ timeptr->tm_min = ret;
+ buf = s;
+ break;
+ case 'n' :
+ if (*buf == '\n')
+ ++buf;
+ else
+ return NULL;
+ break;
+ case 'p' :
+ ret = match_string (&buf, ampm, 0);
+ if (ret < 0)
+ return NULL;
+ if (timeptr->tm_hour == 0) {
+ if (ret == 1)
+ timeptr->tm_hour = 12;
+ } else
+ timeptr->tm_hour += 12;
+ break;
+ case 'r' : /* %I:%M:%S %p */
+ s = strptime (buf, "%I:%M:%S %p", timeptr);
+ if (s == NULL)
+ return NULL;
+ buf = s;
+ break;
+ case 'R' : /* %H:%M */
+ s = strptime (buf, "%H:%M", timeptr);
+ if (s == NULL)
+ return NULL;
+ buf = s;
+ break;
+ case 'S' :
+ ret = strtol (buf, &s, 10);
+ if (s == buf)
+ return NULL;
+ timeptr->tm_sec = ret;
+ buf = s;
+ break;
+ case 't' :
+ if (*buf == '\t')
+ ++buf;
+ else
+ return NULL;
+ break;
+ case 'T' : /* %H:%M:%S */
+ case 'X' :
+ s = strptime (buf, "%H:%M:%S", timeptr);
+ if (s == NULL)
+ return NULL;
+ buf = s;
+ break;
+ case 'u' :
+ ret = strtol (buf, &s, 10);
+ if (s == buf)
+ return NULL;
+ timeptr->tm_wday = ret - 1;
+ buf = s;
+ break;
+ case 'w' :
+ ret = strtol (buf, &s, 10);
+ if (s == buf)
+ return NULL;
+ timeptr->tm_wday = ret;
+ buf = s;
+ break;
+ case 'U' :
+ ret = strtol (buf, &s, 10);
+ if (s == buf)
+ return NULL;
+ set_week_number_sun (timeptr, ret);
+ buf = s;
+ break;
+ case 'V' :
+ ret = strtol (buf, &s, 10);
+ if (s == buf)
+ return NULL;
+ set_week_number_mon4 (timeptr, ret);
+ buf = s;
+ break;
+ case 'W' :
+ ret = strtol (buf, &s, 10);
+ if (s == buf)
+ return NULL;
+ set_week_number_mon (timeptr, ret);
+ buf = s;
+ break;
+ case 'x' :
+ s = strptime (buf, "%Y:%m:%d", timeptr);
+ if (s == NULL)
+ return NULL;
+ buf = s;
+ break;
+ case 'y' :
+ ret = strtol (buf, &s, 10);
+ if (s == buf)
+ return NULL;
+ if (ret < 70)
+ timeptr->tm_year = 100 + ret;
+ else
+ timeptr->tm_year = ret;
+ buf = s;
+ break;
+ case 'Y' :
+ ret = strtol (buf, &s, 10);
+ if (s == buf)
+ return NULL;
+ timeptr->tm_year = ret - tm_year_base;
+ buf = s;
+ break;
+ case 'Z' :
+ // Timezone spec not handled
+ return NULL;
+ case '\0' :
+ --format;
+ /* FALLTHROUGH */
+ case '%' :
+ if (*buf == '%')
+ ++buf;
+ else
+ return NULL;
+ break;
+ default :
+ if (*buf == '%' || *++buf == c)
+ ++buf;
+ else
+ return NULL;
+ break;
+ }
+ } else {
+ if (*buf == c)
+ ++buf;
+ else
+ return NULL;
+ }
+ }
+ return (char *)buf;
+}
+
+// strptime.cxx
diff --git a/ecos/packages/language/c/libc/time/current/src/time.cxx b/ecos/packages/language/c/libc/time/current/src/time.cxx
new file mode 100644
index 0000000..dce7434
--- /dev/null
+++ b/ecos/packages/language/c/libc/time/current/src/time.cxx
@@ -0,0 +1,104 @@
+//========================================================================
+//
+// time.cxx
+//
+// ISO C date and time implementation for time()
+//
+//========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1999-03-04
+// Purpose: Provide implementation of ISO C time() as defined in
+// ISO C section 7.12.2.4
+// Description: This file provides an implementation of time() using
+// the "wallclock" device
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libc_time.h> // C library configuration
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include <cyg/infra/cyg_ass.h> // Assertion infrastructure
+#include <cyg/infra/cyg_trac.h> // Tracing infrastructure
+#include <time.h> // Main date and time definitions
+
+#ifdef CYGSEM_LIBC_TIME_TIME_WORKING
+# include <cyg/io/wallclock.hxx> // Wallclock class definitions
+#endif
+
+// FUNCTIONS
+
+externC time_t
+time( time_t *timer )
+{
+ CYG_REPORT_FUNCNAMETYPE("time", "returning %d");
+ if (timer) // its allowed to be NULL
+ CYG_CHECK_DATA_PTR( timer, "timer is not a valid pointer!");
+ CYG_REPORT_FUNCARG1("timer = %08x", timer);
+
+#ifdef CYGSEM_LIBC_TIME_TIME_WORKING
+ time_t ret;
+
+ ret = (time_t) Cyg_WallClock::wallclock->get_current_time();
+
+ if (timer)
+ *timer = ret;
+
+ CYG_REPORT_RETVAL(ret);
+
+ return ret;
+
+#else // i.e. ifndef CYGSEM_LIBC_TIME_TIME_WORKING
+
+ if (timer)
+ *timer = (time_t)-1;
+ CYG_REPORT_RETVAL(-1);
+ return (time_t)-1;
+
+#endif
+
+} // time()
+
+
+// EOF time.cxx
diff --git a/ecos/packages/language/c/libc/time/current/src/timeutil.cxx b/ecos/packages/language/c/libc/time/current/src/timeutil.cxx
new file mode 100644
index 0000000..e6446e7
--- /dev/null
+++ b/ecos/packages/language/c/libc/time/current/src/timeutil.cxx
@@ -0,0 +1,294 @@
+//========================================================================
+//
+// timeutil.cxx
+//
+// ISO C date and time implementation support functions
+//
+//========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors:
+// Date: 2000-04-28
+// Purpose: Provide support functions used by the ISO C date and time
+// implementation
+// Description: This file provides the functions:
+// cyg_libc_time_normalize_structtm()
+// cyg_libc_time_getzoneoffsets()
+// cyg_libc_time_setzoneoffsets()
+// cyg_libc_time_setdst()
+// cyg_libc_time_itoa()
+// and the globals:
+// cyg_libc_time_day_name
+// cyg_libc_time_day_name_len
+// cyg_libc_time_month_name
+// cyg_libc_time_month_name_len
+// cyg_libc_time_month_lengths
+// cyg_libc_time_current_dst_stat
+// cyg_libc_time_current_std_offset
+// cyg_libc_time_current_dst_offset
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libc_time.h> // C library configuration
+
+// INCLUDES
+
+// define these functions as outline, not inline, functions in this file
+#define CYGPRI_LIBC_TIME_GETZONEOFFSETS_INLINE extern "C"
+#define CYGPRI_LIBC_TIME_SETZONEOFFSETS_INLINE extern "C"
+#define CYGPRI_LIBC_TIME_SETDST_INLINE extern "C"
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include <cyg/libc/time/timeutil.h>// Header for this file
+#include <time.h> // Main date and time definitions
+#include <stdlib.h> // for div() and abs()
+
+
+// GLOBALS
+
+// FIXME: PR19440 - const char & -fwritable-strings don't mix
+const char cyg_libc_time_day_name[7][10] = {
+ "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday",
+ "Saturday"
+};
+const cyg_uint8 cyg_libc_time_day_name_len[7] = { 6, 6, 7, 9, 8, 6, 8 };
+
+// FIXME: PR19440 - const char & -fwritable-strings don't mix
+const char cyg_libc_time_month_name[12][10] = {
+ "January", "February", "March", "April", "May", "June",
+ "July", "August", "September", "October", "November", "December"
+};
+const cyg_uint8 cyg_libc_time_month_name_len[12] = { 7, 8, 5, 5, 3, 4,
+ 4, 6, 9, 7, 8, 8 };
+
+const cyg_uint8 cyg_libc_time_month_lengths[2][12] = {
+ {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31},
+ {31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}
+};
+
+Cyg_libc_time_dst cyg_libc_time_current_dst_stat =
+ (Cyg_libc_time_dst)CYGNUM_LIBC_TIME_DST_DEFAULT_STATE;
+time_t cyg_libc_time_current_std_offset =
+ (time_t)CYGNUM_LIBC_TIME_STD_DEFAULT_OFFSET;
+time_t cyg_libc_time_current_dst_offset =
+ (time_t)CYGNUM_LIBC_TIME_DST_DEFAULT_OFFSET;
+
+
+// FUNCTIONS
+
+////////////////////////////////////////
+// cyg_libc_time_normalize_structtm() //
+////////////////////////////////////////
+//
+// cyg_libc_time_normalize_structtm() will adjust the fields of a struct tm
+// so that they are within the normal ranges expected.
+// tm_wday, tm_yday and tm_isdst are ignored
+
+externC void
+cyg_libc_time_normalize_structtm( struct tm *timeptr )
+{
+ div_t t;
+
+ CYG_REPORT_FUNCNAME("cyg_libc_time_normalize_structtm");
+ CYG_REPORT_FUNCARG1("timeptr is at address %08x", timeptr);
+
+ // normalize seconds to 0..59
+ if ((timeptr->tm_sec < 0) || (timeptr->tm_sec > 59)) {
+ t = div(timeptr->tm_sec, 60);
+ while (t.rem < 0) {
+ t.rem += 60;
+ --t.quot;
+ }
+ timeptr->tm_min += t.quot;
+ timeptr->tm_sec = t.rem;
+ } // if
+
+ // normalize minutes to 0..59
+ if ((timeptr->tm_min < 0) || (timeptr->tm_min > 59)) {
+ t = div(timeptr->tm_min, 60);
+ while (t.rem < 0) {
+ t.rem += 60;
+ --t.quot;
+ }
+ timeptr->tm_hour += t.quot;
+ timeptr->tm_min = t.rem;
+ } // if
+
+ // normalize hours to 0..23
+ if ((timeptr->tm_hour < 0) || (timeptr->tm_hour > 23)) {
+ t = div(timeptr->tm_hour, 24);
+ while (t.rem < 0) {
+ t.rem += 24;
+ --t.quot;
+ }
+ timeptr->tm_mday += t.quot;
+ timeptr->tm_hour = t.rem;
+ } // if
+
+ // we wait before normalizing tm_mday as per ISO C 7.12.2.3 (although
+ // actually it only makes sense if you think about it
+
+ // normalize months to 0..11
+ if ((timeptr->tm_mon < 0) || (timeptr->tm_mon > 11)) {
+ t = div(timeptr->tm_mon, 12);
+ while (t.rem < 0) {
+ t.rem += 12;
+ --t.quot;
+ }
+ timeptr->tm_year += t.quot;
+ timeptr->tm_mon = t.rem;
+ } // if
+
+ // now tm_mday which needs to go to 1..31
+ cyg_bool leap = cyg_libc_time_year_is_leap(timeptr->tm_year);
+
+ while (timeptr->tm_mday < 1) {
+ // move back a month
+
+ if (--timeptr->tm_mon < 0) {
+ --timeptr->tm_year;
+ timeptr->tm_mon = 11;
+ leap = cyg_libc_time_year_is_leap(timeptr->tm_year);
+ } // if
+
+ // we move backward the number of days in the _new_ current month
+ timeptr->tm_mday += cyg_libc_time_month_lengths[leap][timeptr->tm_mon];
+
+ } // while
+
+ while (timeptr->tm_mday >
+ cyg_libc_time_month_lengths[leap][timeptr->tm_mon]) {
+
+ // move forward a month
+
+ // we move forward the number of days in the _old_ current month
+ timeptr->tm_mday -= cyg_libc_time_month_lengths[leap][timeptr->tm_mon];
+
+ if (++timeptr->tm_mon > 11) {
+ ++timeptr->tm_year;
+ timeptr->tm_mon = 0;
+ leap = cyg_libc_time_year_is_leap(timeptr->tm_year);
+ } // if
+
+ } // while
+
+ CYG_REPORT_RETURN();
+
+} // cyg_libc_time_normalize_structtm()
+
+
+//////////////////////////
+// cyg_libc_time_itoa() //
+//////////////////////////
+//
+// This converts num to a string and puts it into s padding with
+// "0"'s if padzero is set, or spaces otherwise if necessary.
+// The number of chars written to s is returned
+//
+
+// This implementation is probably suboptimal in terms of performance
+// but there wouldn't be much in it with only 11 chars max to convert :-/.
+// Actually FIXME: what if someone passes a width >11
+
+externC cyg_ucount8
+cyg_libc_time_itoa( cyg_uint8 *s, cyg_int32 num, cyg_uint8 width,
+ cyg_bool padzero )
+{
+ CYG_REPORT_FUNCNAMETYPE("cyg_libc_time_itoa", "returning %d");
+ CYG_REPORT_FUNCARG4( "s=%08x, num=%d, width=%d, padzero=%d",
+ s, num, width, padzero );
+
+ CYG_CHECK_DATA_PTR(s, "input string not a valid pointer");
+
+ // special case for zero otherwise we'd have to treat it specially later
+ // on anyway
+
+ if (num==0) {
+ cyg_ucount8 i;
+
+ for (i=0; i<width; ++i)
+ s[i] = padzero ? '0' : ' ';
+ CYG_REPORT_RETVAL(i);
+ return i;
+ }
+
+ // return value
+ cyg_ucount8 ret=0;
+
+ // Pre-fiddle for negative numbers
+ if ((num < 0) && (width > 0)) {
+ *s++ = '-';
+ --width;
+ num = abs(num);
+ ++ret;
+ }
+
+ cyg_ucount32 i;
+ cyg_bool reachednum = false;
+ cyg_uint8 c, j;
+
+ // i starts off with factor of 10 digits - which is the string length
+ // of a positive 32-bit number
+ for (i=1000000000, j=10; i>0; i/=10, --j) {
+ c = (num / i);
+
+ if (!reachednum && c==0) {
+ if (j <= width) {
+ *s++ = padzero ? '0' : ' ';
+ ++ret;
+ }
+ } // if
+ else {
+ *s++ = c + '0';
+ ++ret;
+ reachednum = true;
+ }
+ num %= i;
+ } // for
+
+ CYG_POSTCONDITION(ret >= width, "Didn't output enough chars!");
+
+ CYG_REPORT_RETVAL(ret);
+ return ret;
+} // cyg_libc_time_itoa()
+
+
+// EOF timeutil.cxx
diff --git a/ecos/packages/language/c/libc/time/current/tests/asctime.c b/ecos/packages/language/c/libc/time/current/tests/asctime.c
new file mode 100644
index 0000000..e371ea2
--- /dev/null
+++ b/ecos/packages/language/c/libc/time/current/tests/asctime.c
@@ -0,0 +1,204 @@
+//=================================================================
+//
+// asctime.c
+//
+// Testcase for C library asctime() function
+//
+//=================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors:
+// Date: 1999-03-05
+// Description: Contains testcode for C library asctime() function
+//
+//
+//####DESCRIPTIONEND####
+
+// CONFIGURATION
+
+#include <pkgconf/libc_time.h> // C library configuration
+
+// INCLUDES
+
+#include <time.h>
+#include <cyg/infra/testcase.h>
+
+// HOW TO START TESTS
+
+# define START_TEST( test ) test(0)
+
+// FUNCTIONS
+
+
+static int my_strcmp(const char *s1, const char *s2)
+{
+ for ( ; *s1 == *s2 ; s1++,s2++ )
+ {
+ if ( *s1 == '\0' )
+ break;
+ } // for
+
+ return (*s1 - *s2);
+} // my_strcmp()
+
+
+static void
+test( CYG_ADDRWORD data )
+{
+ struct tm tm1;
+ char *ret;
+
+ tm1.tm_sec = 4;
+ tm1.tm_min = 23;
+ tm1.tm_hour = 20;
+ tm1.tm_mday = 21;
+ tm1.tm_mon = 1;
+ tm1.tm_year = 74;
+ tm1.tm_wday = 4;
+ tm1.tm_yday = 51;
+ tm1.tm_isdst = 0;
+
+ ret = asctime(&tm1);
+
+ CYG_TEST_PASS_FAIL(!my_strcmp(ret, "Thu Feb 21 20:23:04 1974\n"),
+ "asctime test #1");
+ tm1.tm_sec = 3;
+ tm1.tm_min = 51;
+ tm1.tm_hour = 5;
+ tm1.tm_mday = 2;
+ tm1.tm_mon = 11;
+ tm1.tm_year = 68;
+ tm1.tm_wday = 1;
+ tm1.tm_yday = 336;
+ tm1.tm_isdst = 0;
+
+ ret = asctime(&tm1);
+
+ CYG_TEST_PASS_FAIL(!my_strcmp(ret, "Mon Dec 02 05:51:03 1968\n"),
+ "asctime test #2");
+
+ // make this predictable - independent of the user option
+ cyg_libc_time_setzoneoffsets(0, 3600);
+
+ tm1.tm_sec = 3;
+ tm1.tm_min = 51;
+ tm1.tm_hour = 5;
+ tm1.tm_mday = 2;
+ tm1.tm_mon = 6;
+ tm1.tm_year = 68;
+ tm1.tm_wday = 2;
+ tm1.tm_yday = 183;
+ tm1.tm_isdst = 1;
+
+ ret = asctime(&tm1);
+
+ CYG_TEST_PASS_FAIL(!my_strcmp(ret, "Tue Jul 02 05:51:03 1968\n"),
+ "asctime test #3");
+
+ tm1.tm_sec = 0;
+ tm1.tm_min = 0;
+ tm1.tm_hour = 0;
+ tm1.tm_mday = 1;
+ tm1.tm_mon = 0;
+ tm1.tm_year = 0;
+ tm1.tm_wday = 1;
+ tm1.tm_yday = 0;
+ tm1.tm_isdst = 0;
+
+ ret = asctime(&tm1);
+
+ CYG_TEST_PASS_FAIL(!my_strcmp(ret, "Mon Jan 01 00:00:00 1900\n"),
+ "asctime test #4");
+
+ tm1.tm_sec = 0;
+ tm1.tm_min = 0;
+ tm1.tm_hour = 0;
+ tm1.tm_mday = 1;
+ tm1.tm_mon = 0;
+ tm1.tm_year = 100;
+ tm1.tm_wday = 6;
+ tm1.tm_yday = 0;
+ tm1.tm_isdst = 0;
+
+ ret = asctime(&tm1);
+
+ CYG_TEST_PASS_FAIL(!my_strcmp(ret, "Sat Jan 01 00:00:00 2000\n"),
+ "asctime Y2K test #5");
+
+#ifdef CYGFUN_LIBC_TIME_POSIX
+ {
+ char ret2[100];
+
+ tm1.tm_sec = 3;
+ tm1.tm_min = 51;
+ tm1.tm_hour = 5;
+ tm1.tm_mday = 2;
+ tm1.tm_mon = 11;
+ tm1.tm_year = 68;
+ tm1.tm_wday = 1;
+ tm1.tm_yday = 336;
+ tm1.tm_isdst = 0;
+
+ ret = asctime_r(&tm1, ret2);
+
+ CYG_TEST_PASS_FAIL((ret==ret2) &&
+ !my_strcmp(ret, "Mon Dec 02 05:51:03 1968\n"),
+ "asctime_r test #1");
+
+ }
+#endif
+
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for C library "
+ "asctime() function");
+} // test()
+
+
+int
+main(int argc, char *argv[])
+{
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for C library "
+ "asctime() function");
+
+ START_TEST( test );
+
+ CYG_TEST_NA("Testing is not applicable to this configuration");
+
+} // main()
+
+// EOF asctime.c
diff --git a/ecos/packages/language/c/libc/time/current/tests/clock.c b/ecos/packages/language/c/libc/time/current/tests/clock.c
new file mode 100644
index 0000000..7f87fd3
--- /dev/null
+++ b/ecos/packages/language/c/libc/time/current/tests/clock.c
@@ -0,0 +1,248 @@
+//=================================================================
+//
+// clock.c
+//
+// Testcase for C library clock()
+//
+//=================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): ctarpy, jlarmour
+// Contributors:
+// Date: 1999-03-05
+// Description: Contains testcode for C library clock() function
+//
+//
+//####DESCRIPTIONEND####
+
+// CONFIGURATION
+
+#include <pkgconf/libc_time.h> // Configuration header
+#include <pkgconf/system.h>
+#include <pkgconf/isoinfra.h>
+#include <pkgconf/infra.h>
+
+#include <cyg/infra/testcase.h>
+
+// This test is bound to fail often on the synthetic target -- we
+// don't have exclusive access to the CPU.
+
+#if defined(CYGPKG_HAL_SYNTH)
+# define NA_MSG "Timing accuracy not guaranteed on synthetic target"
+#elif !defined(CYGINT_ISO_MAIN_STARTUP)
+# define NA_MSG "Requires main() startup"
+#elif defined(CYGDBG_USE_TRACING)
+# define NA_MSG "Cannot give an accurate test when tracing is enabled"
+#endif
+
+#ifdef NA_MSG
+void
+cyg_start(void)
+{
+ CYG_TEST_INIT();
+ CYG_TEST_NA( NA_MSG );
+}
+
+#else
+
+
+// INCLUDES
+
+#include <time.h>
+#include <cyg/infra/diag.h>
+#include <cyg/hal/hal_cache.h>
+#include <cyg/hal/hal_intr.h>
+
+
+// CONSTANTS
+
+// This defines how many loops before we decide that
+// the clock doesnt work
+#define MAX_TIMEOUT 100000
+
+// Percentage error before we declare fail: range 0 - 100
+#define TOLERANCE 40
+
+// Permissible absolute deviation from mean value to take care of incorrect
+// failure conclusions in case of small mean values (if absolute values of
+// clock() are small, percentage variation can be large)
+#define FUDGE_FACTOR 6
+
+// Number of samples to take
+#define SAMPLES 30
+
+// We ignore ctrs[0] because it's always 0
+// We ignore ctrs[1] because it will always be odd since it was
+// the first measurement taken at the start of the looping, and
+// the initial clock measurement (in clocks[0]) was not treated as
+// part of the loop and therefore can't be considered to take the same
+// time.
+// We ignore ctrs[2] because it always seems to be substantially faster
+// that the other samples. Probably due to cache/timing effect after the
+// previous loop.
+// Finally, ctrs[3] is skipped because it's also very fast on ARM targets.
+
+#define SKIPPED_SAMPLES 6
+
+
+// FUNCTIONS
+
+static int
+my_abs(int i)
+{
+ return (i < 0) ? -i : i;
+} // my_abs()
+
+
+// Clock measurement is done in a separate function so that alignment
+// constraints are deterministic - some processors may perform better
+// in loops that are better aligned, so by making it always the same
+// function, this is prevented.
+// FIXME: how do we guarantee the compiler won't inline this on -O3?
+static unsigned long
+clock_loop( const int timeout, clock_t prevclock, clock_t *newclock )
+{
+ clock_t c=0;
+ long i;
+
+ for (i=0; i<timeout; i++) {
+ c = clock();
+ if ( c != prevclock )
+ break; // Hit the next clock pulse
+ }
+
+ if (i==timeout)
+ CYG_TEST_FAIL_FINISH("No change in clock state!");
+
+ // it should not overflow in the lifetime of this test
+ if (c < prevclock)
+ CYG_TEST_FAIL_FINISH("Clock decremented!");
+
+ *newclock = c;
+
+ return i;
+} // clock_loop()
+
+// both of these get zeroed out
+static unsigned long ctrs[SAMPLES];
+static clock_t clocks[SAMPLES];
+
+int
+main(int argc, char *argv[])
+{
+ unsigned long mean=0, sum=0, maxerr=0;
+ int i;
+ unsigned int absdev;
+
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for C library "
+ "clock() function");
+
+ // First disable the caches - they may affect the timing loops
+ // below - causing the elapsed time during the clock() call to vary.
+ {
+ register CYG_INTERRUPT_STATE oldints;
+
+ HAL_DISABLE_INTERRUPTS(oldints);
+ HAL_DCACHE_SYNC();
+ HAL_ICACHE_DISABLE();
+ HAL_DCACHE_DISABLE();
+ HAL_DCACHE_SYNC();
+ HAL_ICACHE_INVALIDATE_ALL();
+ HAL_DCACHE_INVALIDATE_ALL();
+ HAL_RESTORE_INTERRUPTS(oldints);
+ }
+
+ // This waits for a clock tick, to ensure that we are at the
+ // start of a clock period. Then sit in a tight loop to get
+ // the clock period. Repeat this, and make sure that it the
+ // two timed periods are acceptably close.
+
+ clocks[0] = clock();
+
+ if (clocks[0] == (clock_t)-1) // unimplemented is potentially valid.
+ {
+#ifdef CYGSEM_LIBC_TIME_CLOCK_WORKING
+ CYG_TEST_FAIL_FINISH( "clock() returns -1, meaning unimplemented");
+#else
+ CYG_TEST_PASS_FINISH( "clock() returns -1, meaning unimplemented");
+#endif
+ } // if
+
+ // record clocks in a tight consistent loop to avoid random variations
+ for (i=1; i<SAMPLES; i++) {
+ ctrs[i] = clock_loop( MAX_TIMEOUT, clocks[i-1], &clocks[i] );
+ }
+
+ for (i=0;i<SAMPLES;i++) {
+ // output what we got - useful for diagnostics of occasional
+ // test failures
+ diag_printf("clocks[%d] = %d, ctrs[%d] = %d\n", i, clocks[i],
+ i, ctrs[i]);
+
+ // Now we work out the error etc.
+ if (i>=SKIPPED_SAMPLES) {
+ sum += ctrs[i];
+ }
+ }
+
+ // deduce out the average
+ mean = sum / (SAMPLES-SKIPPED_SAMPLES);
+
+ // now go through valid results and compare against average
+ for (i=SKIPPED_SAMPLES;i<SAMPLES;i++) {
+ unsigned long err;
+
+ absdev = my_abs(ctrs[i]-mean);
+ // use mean+1 as divisor to avoid div-by-zero
+ err = (100 * absdev) / (mean+1);
+ if (err > TOLERANCE && absdev > FUDGE_FACTOR) {
+ diag_printf("mean=%d, ctrs[%d]=%d, err=%d\n", mean, i, ctrs[i],
+ err);
+ CYG_TEST_FAIL_FINISH("clock() within tolerance");
+ }
+ if (err > maxerr)
+ maxerr=err;
+ }
+
+ diag_printf("mean=%d, maxerr=%d\n", mean, maxerr);
+ CYG_TEST_PASS_FINISH("clock() stable");
+
+} // main()
+
+#endif // ifndef NA_MSG
+
+// EOF clock.c
diff --git a/ecos/packages/language/c/libc/time/current/tests/ctime.c b/ecos/packages/language/c/libc/time/current/tests/ctime.c
new file mode 100644
index 0000000..e970550
--- /dev/null
+++ b/ecos/packages/language/c/libc/time/current/tests/ctime.c
@@ -0,0 +1,140 @@
+//=================================================================
+//
+// ctime.c
+//
+// Testcase for C library ctime() function
+//
+//=================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1999-03-05
+// Description: Contains testcode for C library ctime() function
+//
+//
+//####DESCRIPTIONEND####
+
+// CONFIGURATION
+
+#include <pkgconf/libc_time.h> // C library configuration
+
+// INCLUDES
+
+#include <time.h>
+#include <cyg/infra/testcase.h>
+
+// HOW TO START TESTS
+
+# define START_TEST( test ) test(0)
+
+// FUNCTIONS
+
+static int my_strcmp(const char *s1, const char *s2)
+{
+ for ( ; *s1 == *s2 ; s1++,s2++ )
+ {
+ if ( *s1 == '\0' )
+ break;
+ } // for
+
+ return (*s1 - *s2);
+} // my_strcmp()
+
+
+static void
+test( CYG_ADDRWORD data )
+{
+ time_t t;
+ char *ret;
+
+ // make this predictable - independent of the user option
+ cyg_libc_time_setzoneoffsets(0, 3600);
+ cyg_libc_time_setdst( CYG_LIBC_TIME_DSTOFF );
+
+ t = (time_t)130710184;
+
+ ret = ctime(&t);
+ CYG_TEST_PASS_FAIL(!my_strcmp(ret, "Thu Feb 21 20:23:04 1974\n"),
+ "ctime test #1");
+
+ t = (time_t)946689894;
+
+ ret = ctime(&t);
+ CYG_TEST_PASS_FAIL(!my_strcmp(ret, "Sat Jan 01 01:24:54 2000\n"),
+ "ctime Y2K test #2");
+
+ cyg_libc_time_setdst( CYG_LIBC_TIME_DSTON );
+
+ t = (time_t)-113186106;
+
+ ret = ctime(&t);
+ CYG_TEST_PASS_FAIL(!my_strcmp(ret, "Tue Jun 01 00:24:54 1966\n"),
+ "ctime test #3");
+
+#ifdef CYGFUN_LIBC_TIME_POSIX
+ cyg_libc_time_setdst( CYG_LIBC_TIME_DSTOFF );
+
+ t = (time_t)915510061;
+
+ {
+ char ret2[26];
+
+ ret = ctime_r(&t, ret2);
+ CYG_TEST_PASS_FAIL(!my_strcmp(ret2, "Tue Jan 05 04:21:01 1999\n"),
+ "ctime_r test #1");
+ }
+#endif
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for C library "
+ "ctime() function");
+} // test()
+
+
+int
+main(int argc, char *argv[])
+{
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for C library "
+ "ctime() function");
+
+ START_TEST( test );
+
+ CYG_TEST_NA("Testing is not applicable to this configuration");
+
+} // main()
+
+// EOF ctime.c
diff --git a/ecos/packages/language/c/libc/time/current/tests/gmtime.c b/ecos/packages/language/c/libc/time/current/tests/gmtime.c
new file mode 100644
index 0000000..b2f7231
--- /dev/null
+++ b/ecos/packages/language/c/libc/time/current/tests/gmtime.c
@@ -0,0 +1,204 @@
+//=================================================================
+//
+// gmtime.c
+//
+// Testcase for C library gmtime() function
+//
+//=================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors:
+// Date: 1999-03-05
+// Description: Contains testcode for C library gmtime() function
+//
+//
+//####DESCRIPTIONEND####
+
+// CONFIGURATION
+
+#include <pkgconf/libc_time.h> // C library configuration
+
+// INCLUDES
+
+#include <time.h>
+#include <cyg/infra/testcase.h>
+
+// HOW TO START TESTS
+
+# define START_TEST( test ) test(0)
+
+// FUNCTIONS
+
+static int
+cmp_structtm(struct tm *tm1, struct tm *tm2)
+{
+ if ((tm1->tm_sec != tm2->tm_sec) ||
+ (tm1->tm_min != tm2->tm_min) ||
+ (tm1->tm_hour != tm2->tm_hour) ||
+ (tm1->tm_mday != tm2->tm_mday) ||
+ (tm1->tm_mon != tm2->tm_mon) ||
+ (tm1->tm_year != tm2->tm_year) ||
+ (tm1->tm_wday != tm2->tm_wday) ||
+ (tm1->tm_yday != tm2->tm_yday) ||
+ (tm1->tm_isdst != tm2->tm_isdst))
+ return 1;
+ else
+ return 0;
+}
+
+static void
+test( CYG_ADDRWORD data )
+{
+ struct tm tm1, *tm2;
+ time_t t;
+
+ // make this predictable - independent of the user option
+ cyg_libc_time_setzoneoffsets(0, 3600);
+ cyg_libc_time_setdst( CYG_LIBC_TIME_DSTOFF );
+
+ tm1.tm_sec = 4;
+ tm1.tm_min = 23;
+ tm1.tm_hour = 20;
+ tm1.tm_mday = 21;
+ tm1.tm_mon = 1;
+ tm1.tm_year = 74;
+ tm1.tm_wday = 4;
+ tm1.tm_yday = 51;
+ tm1.tm_isdst = 0;
+
+ t = (time_t)130710184;
+
+ tm2 = gmtime(&t);
+ CYG_TEST_PASS_FAIL(!cmp_structtm(&tm1, tm2), "gmtime test #1");
+
+
+ tm1.tm_sec = 1;
+ tm1.tm_min = 21;
+ tm1.tm_hour = 4;
+ tm1.tm_mday = 5;
+ tm1.tm_mon = 0;
+ tm1.tm_wday = 2;
+ tm1.tm_yday = 4;
+ tm1.tm_year = 99;
+ tm1.tm_isdst = 0;
+
+ t = (time_t)915510061;
+
+ tm2 = gmtime(&t);
+ CYG_TEST_PASS_FAIL(!cmp_structtm(&tm1, tm2), "gmtime test #2");
+
+ tm1.tm_sec = 54;
+ tm1.tm_min = 24;
+ tm1.tm_hour = 1;
+ tm1.tm_mday = 1;
+ tm1.tm_mon = 0;
+ tm1.tm_year = 100;
+ tm1.tm_wday = 6;
+ tm1.tm_yday = 0;
+ tm1.tm_isdst = 0;
+
+ t = (time_t)946689894;
+
+ tm2 = gmtime(&t);
+ CYG_TEST_PASS_FAIL(!cmp_structtm(&tm1, tm2), "gmtime Y2K test #3");
+
+ cyg_libc_time_setdst( CYG_LIBC_TIME_DSTON );
+
+ tm1.tm_sec = 54;
+ tm1.tm_min = 24;
+ tm1.tm_hour = 23;
+ tm1.tm_mday = 31;
+ tm1.tm_mon = 4;
+ tm1.tm_wday = 2;
+ tm1.tm_yday = 150;
+ tm1.tm_year = 66;
+ tm1.tm_isdst = 0;
+
+ t = (time_t)-113186106;
+
+ tm2 = gmtime(&t);
+ CYG_TEST_PASS_FAIL(!cmp_structtm(&tm1, tm2), "gmtime test #4");
+
+ tm1.tm_sec = 59;
+ tm1.tm_min = 59;
+ tm1.tm_hour = 23;
+ tm1.tm_mday = 31;
+ tm1.tm_mon = 4;
+ tm1.tm_wday = 3;
+ tm1.tm_yday = 151;
+ tm1.tm_year = 100;
+ tm1.tm_isdst = 0;
+
+ t = (time_t)959817599;
+
+ tm2 = gmtime(&t);
+ CYG_TEST_PASS_FAIL(!cmp_structtm(&tm1, tm2), "gmtime test #5");
+
+ tm1.tm_sec = 0;
+ tm1.tm_min = 0;
+ tm1.tm_hour = 0;
+ tm1.tm_mday = 1;
+ tm1.tm_mon = 5;
+ tm1.tm_wday = 4;
+ tm1.tm_yday = 152;
+ tm1.tm_year = 100;
+ tm1.tm_isdst = 0;
+
+ t = (time_t)959817600;
+
+ tm2 = gmtime(&t);
+ CYG_TEST_PASS_FAIL(!cmp_structtm(&tm1, tm2), "gmtime test #6");
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for C library "
+ "gmtime() function");
+} // test()
+
+
+int
+main(int argc, char *argv[])
+{
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for C library "
+ "gmtime() function");
+
+ START_TEST( test );
+
+ CYG_TEST_NA("Testing is not applicable to this configuration");
+
+} // main()
+
+// EOF gmtime.c
diff --git a/ecos/packages/language/c/libc/time/current/tests/localtime.c b/ecos/packages/language/c/libc/time/current/tests/localtime.c
new file mode 100644
index 0000000..b6d8a03
--- /dev/null
+++ b/ecos/packages/language/c/libc/time/current/tests/localtime.c
@@ -0,0 +1,174 @@
+//=================================================================
+//
+// localtime.c
+//
+// Testcase for C library localtime() function
+//
+//=================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1999-03-05
+// Description: Contains testcode for C library localtime() function
+//
+//
+//####DESCRIPTIONEND####
+
+// CONFIGURATION
+
+#include <pkgconf/libc_time.h> // C library configuration
+
+// INCLUDES
+
+#include <time.h>
+#include <cyg/infra/testcase.h>
+
+// HOW TO START TESTS
+
+# define START_TEST( test ) test(0)
+
+// FUNCTIONS
+
+static int
+cmp_structtm(struct tm *tm1, struct tm *tm2)
+{
+ if ((tm1->tm_sec != tm2->tm_sec) ||
+ (tm1->tm_min != tm2->tm_min) ||
+ (tm1->tm_hour != tm2->tm_hour) ||
+ (tm1->tm_mday != tm2->tm_mday) ||
+ (tm1->tm_mon != tm2->tm_mon) ||
+ (tm1->tm_year != tm2->tm_year) ||
+ (tm1->tm_wday != tm2->tm_wday) ||
+ (tm1->tm_yday != tm2->tm_yday) ||
+ (tm1->tm_isdst != tm2->tm_isdst))
+ return 1;
+ else
+ return 0;
+}
+
+static void
+test( CYG_ADDRWORD data )
+{
+ struct tm tm1, *tm2;
+ time_t t;
+
+ // make this predictable - independent of the user option
+ cyg_libc_time_setzoneoffsets(0, 3600);
+ cyg_libc_time_setdst( CYG_LIBC_TIME_DSTOFF );
+
+ tm1.tm_sec = 4;
+ tm1.tm_min = 23;
+ tm1.tm_hour = 20;
+ tm1.tm_mday = 21;
+ tm1.tm_mon = 1;
+ tm1.tm_year = 74;
+ tm1.tm_wday = 4;
+ tm1.tm_yday = 51;
+ tm1.tm_isdst = 0;
+
+ t = (time_t)130710184;
+
+ tm2 = localtime(&t);
+ CYG_TEST_PASS_FAIL(!cmp_structtm(&tm1, tm2), "localtime test #1");
+
+
+ tm1.tm_sec = 1;
+ tm1.tm_min = 21;
+ tm1.tm_hour = 4;
+ tm1.tm_mday = 5;
+ tm1.tm_mon = 0;
+ tm1.tm_wday = 2;
+ tm1.tm_yday = 4;
+ tm1.tm_year = 99;
+ tm1.tm_isdst = 0;
+
+ t = (time_t)915510061;
+
+ tm2 = localtime(&t);
+ CYG_TEST_PASS_FAIL(!cmp_structtm(&tm1, tm2), "localtime test #2");
+
+ tm1.tm_sec = 54;
+ tm1.tm_min = 24;
+ tm1.tm_hour = 1;
+ tm1.tm_mday = 1;
+ tm1.tm_mon = 0;
+ tm1.tm_year = 100;
+ tm1.tm_wday = 6;
+ tm1.tm_yday = 0;
+ tm1.tm_isdst = 0;
+
+ t = (time_t)946689894;
+
+ tm2 = localtime(&t);
+ CYG_TEST_PASS_FAIL(!cmp_structtm(&tm1, tm2), "localtime Y2K test #3");
+
+ cyg_libc_time_setdst( CYG_LIBC_TIME_DSTON );
+
+ tm1.tm_sec = 54;
+ tm1.tm_min = 24;
+ tm1.tm_hour = 0;
+ tm1.tm_mday = 1;
+ tm1.tm_mon = 5;
+ tm1.tm_wday = 2;
+ tm1.tm_yday = 150;
+ tm1.tm_year = 66;
+ tm1.tm_isdst = 1;
+
+ t = (time_t)-113186106;
+
+ tm2 = localtime(&t);
+ CYG_TEST_PASS_FAIL(!cmp_structtm(&tm1, tm2), "localtime test #4");
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for C library "
+ "localtime() function");
+} // test()
+
+
+int
+main(int argc, char *argv[])
+{
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for C library "
+ "localtime() function");
+
+ START_TEST( test );
+
+ CYG_TEST_NA("Testing is not applicable to this configuration");
+
+} // main()
+
+// EOF localtime.c
diff --git a/ecos/packages/language/c/libc/time/current/tests/mktime.c b/ecos/packages/language/c/libc/time/current/tests/mktime.c
new file mode 100644
index 0000000..803ca05
--- /dev/null
+++ b/ecos/packages/language/c/libc/time/current/tests/mktime.c
@@ -0,0 +1,176 @@
+//=================================================================
+//
+// mktime.c
+//
+// Testcase for C library mktime() function
+//
+//=================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1999-03-05
+// Description: Contains testcode for C library mktime() function
+//
+//
+//####DESCRIPTIONEND####
+
+// CONFIGURATION
+
+#include <pkgconf/libc_time.h> // C library configuration
+
+// INCLUDES
+
+#include <time.h>
+#include <cyg/infra/testcase.h>
+
+// HOW TO START TESTS
+
+# define START_TEST( test ) test(0)
+
+// FUNCTIONS
+
+static int
+cmp_structtm(struct tm *tm1, struct tm *tm2)
+{
+ if ((tm1->tm_sec != tm2->tm_sec) ||
+ (tm1->tm_min != tm2->tm_min) ||
+ (tm1->tm_hour != tm2->tm_hour) ||
+ (tm1->tm_mday != tm2->tm_mday) ||
+ (tm1->tm_mon != tm2->tm_mon) ||
+ (tm1->tm_year != tm2->tm_year) ||
+ (tm1->tm_wday != tm2->tm_wday) ||
+ (tm1->tm_yday != tm2->tm_yday) ||
+ (tm1->tm_isdst != tm2->tm_isdst))
+ return 1;
+ else
+ return 0;
+}
+
+static void
+test( CYG_ADDRWORD data )
+{
+ struct tm tm1, tm2;
+ time_t t;
+
+ // make this predictable - independent of the user option
+ cyg_libc_time_setzoneoffsets(0, 3600);
+
+ tm1.tm_sec = 4;
+ tm1.tm_min = 23;
+ tm1.tm_hour = 20;
+ tm1.tm_mday = 21;
+ tm1.tm_mon = 1;
+ tm1.tm_year = 74;
+ tm1.tm_isdst = 0;
+
+ tm2 = tm1;
+ tm2.tm_wday = 4;
+ tm2.tm_yday = 51;
+
+ t = mktime(&tm1);
+ CYG_TEST_PASS_FAIL(!cmp_structtm(&tm1, &tm2), "mktime test #1");
+ CYG_TEST_PASS_FAIL(t == 130710184, "mktime return test #1");
+
+ tm1.tm_sec = 61;
+ tm1.tm_min = 20;
+ tm1.tm_hour = 4;
+ tm1.tm_mday = 5;
+ tm1.tm_mon = 0;
+ tm1.tm_year = 99;
+ tm1.tm_isdst = 0;
+
+ tm2 = tm1;
+ tm2.tm_sec=1;
+ tm2.tm_min = 21;
+ tm2.tm_wday = 2;
+ tm2.tm_yday = 4;
+
+ t = mktime(&tm1);
+ CYG_TEST_PASS_FAIL(!cmp_structtm(&tm1, &tm2), "mktime test #2");
+ CYG_TEST_PASS_FAIL(t == 915510061, "mktime return test #2");
+
+ tm1.tm_sec = 54;
+ tm1.tm_min = 24;
+ tm1.tm_hour = 1;
+ tm1.tm_mday = 1;
+ tm1.tm_mon = 0;
+ tm1.tm_year = 100;
+ tm1.tm_isdst = 0;
+
+ tm2 = tm1;
+ tm2.tm_wday = 6;
+ tm2.tm_yday = 0;
+
+ t = mktime(&tm1);
+ CYG_TEST_PASS_FAIL(!cmp_structtm(&tm1, &tm2), "mktime Y2K test #3");
+ CYG_TEST_PASS_FAIL(t == 946689894, "mktime Y2K return test #3");
+
+ tm1.tm_sec = 54;
+ tm1.tm_min = 24;
+ tm1.tm_hour = 23;
+ tm1.tm_mday = 31;
+ tm1.tm_mon = 4;
+ tm1.tm_year = 66;
+ tm1.tm_isdst = 1;
+
+ tm2 = tm1;
+ tm2.tm_wday = 2;
+ tm2.tm_yday = 150;
+
+ t = mktime(&tm1);
+ CYG_TEST_PASS_FAIL(!cmp_structtm(&tm1, &tm2), "mktime test #4");
+ CYG_TEST_PASS_FAIL(t == -113186106, "mktime return test #4");
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for C library "
+ "mktime() function");
+} // test()
+
+
+int
+main(int argc, char *argv[])
+{
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for C library "
+ "mktime() function");
+
+ START_TEST( test );
+
+ CYG_TEST_NA("Testing is not applicable to this configuration");
+
+} // main()
+
+// EOF mktime.c
diff --git a/ecos/packages/language/c/libc/time/current/tests/strftime.c b/ecos/packages/language/c/libc/time/current/tests/strftime.c
new file mode 100644
index 0000000..073e44a
--- /dev/null
+++ b/ecos/packages/language/c/libc/time/current/tests/strftime.c
@@ -0,0 +1,194 @@
+//=================================================================
+//
+// strftime.c
+//
+// Testcase for C library strftime() function
+//
+//=================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors:
+// Date: 1999-03-05
+// Description: Contains testcode for C library strftime() function
+//
+//
+//####DESCRIPTIONEND####
+
+// CONFIGURATION
+
+#include <pkgconf/libc_time.h> // C library configuration
+
+// INCLUDES
+
+#include <time.h>
+#include <cyg/infra/testcase.h>
+
+// HOW TO START TESTS
+
+# define START_TEST( test ) test(0)
+
+// FUNCTIONS
+
+static int my_strcmp(const char *s1, const char *s2)
+{
+ for ( ; *s1 == *s2 ; s1++,s2++ )
+ {
+ if ( *s1 == '\0' )
+ break;
+ } // for
+
+ return (*s1 - *s2);
+} // my_strcmp()
+
+static void
+test( CYG_ADDRWORD data )
+{
+ struct tm tm1;
+ char s[1000];
+ size_t size;
+
+ tm1.tm_sec = 4;
+ tm1.tm_min = 23;
+ tm1.tm_hour = 20;
+ tm1.tm_mday = 21;
+ tm1.tm_mon = 1;
+ tm1.tm_year = 74;
+ tm1.tm_wday = 4;
+ tm1.tm_yday = 51;
+ tm1.tm_isdst = 0;
+
+ size = strftime(s, 1000, "", &tm1);
+ CYG_TEST_PASS_FAIL((size==0) && (*s=='\0'), "strftime test #1");
+
+ size = strftime(s, 1000, "%a", &tm1);
+ CYG_TEST_PASS_FAIL((size==3) && !my_strcmp(s, "Thu"), "strftime test #2");
+
+ size = strftime(s, 1000, "%A", &tm1);
+ CYG_TEST_PASS_FAIL((size==8) && !my_strcmp(s, "Thursday"),
+ "strftime test #3");
+
+ size = strftime(s, 1000, "%b", &tm1);
+ CYG_TEST_PASS_FAIL((size==3) && !my_strcmp(s, "Feb"),
+ "strftime test #4");
+
+ size = strftime(s, 1000, "%B", &tm1);
+ CYG_TEST_PASS_FAIL((size==8) && !my_strcmp(s, "February"),
+ "strftime test #5");
+
+ size = strftime(s, 1000, "%d", &tm1);
+ CYG_TEST_PASS_FAIL((size==2) && !my_strcmp(s, "21"),
+ "strftime test #6");
+
+ size = strftime(s, 1000, "%H", &tm1);
+ CYG_TEST_PASS_FAIL((size==2) && !my_strcmp(s, "20"),
+ "strftime test #7");
+
+ size = strftime(s, 1000, "%I", &tm1);
+ CYG_TEST_PASS_FAIL((size==2) && !my_strcmp(s, "08"),
+ "strftime test #8");
+
+ size = strftime(s, 1000, "%j", &tm1);
+ CYG_TEST_PASS_FAIL((size==3) && !my_strcmp(s, "051"),
+ "strftime test #9");
+
+ size = strftime(s, 1000, "%m", &tm1);
+ CYG_TEST_PASS_FAIL((size==2) && !my_strcmp(s, "02"),
+ "strftime test #10");
+
+ size = strftime(s, 1000, "%M", &tm1);
+ CYG_TEST_PASS_FAIL((size==2) && !my_strcmp(s, "23"),
+ "strftime test #11");
+
+ size = strftime(s, 1000, "%p", &tm1);
+ CYG_TEST_PASS_FAIL((size==2) && !my_strcmp(s, "pm"),
+ "strftime test #12");
+
+ size = strftime(s, 1000, "%S", &tm1);
+ CYG_TEST_PASS_FAIL((size==2) && !my_strcmp(s, "04"),
+ "strftime test #13");
+
+ size = strftime(s, 1000, "%U", &tm1);
+ CYG_TEST_PASS_FAIL((size==2) && !my_strcmp(s, "07"),
+ "strftime test #14");
+
+ size = strftime(s, 1000, "%w", &tm1);
+ CYG_TEST_PASS_FAIL((size==1) && !my_strcmp(s, "4"),
+ "strftime test #15");
+
+ size = strftime(s, 1000, "%W", &tm1);
+ CYG_TEST_PASS_FAIL((size==2) && !my_strcmp(s, "07"),
+ "strftime test #16");
+
+ size = strftime(s, 1000, "%y", &tm1);
+ CYG_TEST_PASS_FAIL((size==2) && !my_strcmp(s, "74"),
+ "strftime test #17");
+
+ size = strftime(s, 1000, "%Y", &tm1);
+ CYG_TEST_PASS_FAIL((size==4) && !my_strcmp(s, "1974"),
+ "strftime test #18");
+
+ size = strftime(s, 1000, "%%", &tm1);
+ CYG_TEST_PASS_FAIL((size==1) && !my_strcmp(s, "%"),
+ "strftime test #19");
+
+ size = strftime(s, 5, "%Y", &tm1);
+ CYG_TEST_PASS_FAIL((size==4) && !my_strcmp(s, "1974"),
+ "strftime test #20");
+
+ size = strftime(s, 4, "%Y", &tm1);
+ CYG_TEST_PASS_FAIL((size==0), "strftime test #21");
+
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for C library "
+ "strftime() function");
+} // test()
+
+
+int
+main(int argc, char *argv[])
+{
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for C library "
+ "strftime() function");
+
+ START_TEST( test );
+
+ CYG_TEST_NA("Testing is not applicable to this configuration");
+
+} // main()
+
+// EOF strftime.c
diff --git a/ecos/packages/language/c/libc/time/current/tests/strptime.c b/ecos/packages/language/c/libc/time/current/tests/strptime.c
new file mode 100644
index 0000000..438e592
--- /dev/null
+++ b/ecos/packages/language/c/libc/time/current/tests/strptime.c
@@ -0,0 +1,132 @@
+//=================================================================
+//
+// strptime.c
+//
+// Testcase for C library strptime() function
+//
+//=================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: gthomas
+// Date: 1999-03-05
+// Description: Contains testcode for C library strptime() function
+//
+//
+//####DESCRIPTIONEND####
+
+// CONFIGURATION
+
+#include <pkgconf/libc_time.h> // C library configuration
+
+// INCLUDES
+
+#include <time.h>
+#include <cyg/infra/testcase.h>
+#include <string.h> // strlen()
+// HOW TO START TESTS
+
+# define START_TEST( test ) test(0)
+
+// FUNCTIONS
+
+static int my_strcmp(const char *s1, const char *s2)
+{
+ for ( ; *s1 == *s2 ; s1++,s2++ )
+ {
+ if ( *s1 == '\0' )
+ break;
+ } // for
+
+ return (*s1 - *s2);
+} // my_strcmp()
+
+static void
+test( CYG_ADDRWORD data )
+{
+ struct tm tm1;
+ char s[1000], *sp, *dp, *fp;
+ size_t size;
+
+ dp = "Fri Jan 24 08:33:14 2003";
+ fp = "%a %b %d %H:%M:%S %Y";
+ sp = strptime(dp, fp, &tm1);
+
+ // Set an invalid year day. The following converters don't use
+ // this, so it should not cause a problem.
+ tm1.tm_yday = 1000;
+
+ CYG_TEST_PASS_FAIL(((sp!=NULL) && (*sp=='\0')), "strptime test #1");
+ size = strftime(s, sizeof(s), fp, &tm1);
+ CYG_TEST_PASS_FAIL(((size==strlen(dp)) && (my_strcmp(s, dp) == 0)), "strptime test #2");
+
+ dp = "Friday January 24 08:33:14 2003";
+ fp = "%A %B %d %H:%M:%S %Y";
+ sp = strptime(dp, fp, &tm1);
+ CYG_TEST_PASS_FAIL(((sp!=NULL) && (*sp=='\0')), "strptime test #3");
+ size = strftime(s, sizeof(s), fp, &tm1);
+ CYG_TEST_PASS_FAIL(((size==strlen(dp)) && (my_strcmp(s, dp) == 0)), "strptime test #4");
+
+ dp = "2006:06:13 12:22:01";
+ fp = "%x %X";
+ sp = strptime(dp, fp, &tm1);
+ CYG_TEST_PASS_FAIL(((sp!=NULL) && (*sp=='\0')), "strptime test #5");
+ CYG_TEST_PASS_FAIL((tm1.tm_sec == 01) &&
+ (tm1.tm_min == 22) &&
+ (tm1.tm_hour == 12) &&
+ (tm1.tm_mday == 13) &&
+ (tm1.tm_mon == (06 - 1)) &&
+ (tm1.tm_year == (2006 - 1900)), "strptime test #6");
+ size = strftime(s, sizeof(s), fp, &tm1);
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for C library "
+ "strptime() function");
+} // test()
+
+
+int
+main(int argc, char *argv[])
+{
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for C library "
+ "strptime() function");
+
+ START_TEST( test );
+
+ CYG_TEST_NA("Testing is not applicable to this configuration");
+
+} // main()
+
+// EOF strptime.c
diff --git a/ecos/packages/language/c/libc/time/current/tests/time.c b/ecos/packages/language/c/libc/time/current/tests/time.c
new file mode 100644
index 0000000..05d56c0
--- /dev/null
+++ b/ecos/packages/language/c/libc/time/current/tests/time.c
@@ -0,0 +1,122 @@
+//=================================================================
+//
+// time.c
+//
+// Testcase for C library time()
+//
+//=================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//=================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1999-03-05
+// Description: Contains testcode for C library time() function
+//
+//
+//####DESCRIPTIONEND####
+
+// CONFIGURATION
+
+#include <pkgconf/libc_time.h> // Configuration header
+
+// INCLUDES
+
+#include <time.h>
+#include <cyg/infra/testcase.h>
+
+// CONSTANTS
+
+// This defines how many loops before we decide that
+// time() doesn't work
+#define MAX_TIMEOUT 50000000
+
+
+// FUNCTIONS
+
+int
+main(int argc, char *argv[])
+{
+ time_t t1, t2;
+ unsigned long ctr;
+
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for C library "
+ "time() function");
+
+ t1 = time(&t2);
+
+ CYG_TEST_PASS_FAIL(t1==t2, "time() return value == argument");
+
+ if (t1 == (time_t)-1) // unimplemented is just as valid
+ {
+#ifndef CYGSEM_LIBC_TIME_TIME_WORKING
+ CYG_TEST_PASS_FINISH( "time() returns -1, meaning unimplemented");
+#else
+ CYG_TEST_FAIL("time() returned -1 unnecessarily");
+#endif
+ } // if
+
+ // First wait for a clock tick
+
+ for (ctr = 0; ctr<MAX_TIMEOUT; ctr++) {
+ if ((t2=time(NULL)) > t1)
+ break; // Hit the next time pulse
+ }
+ CYG_TEST_PASS_FAIL( ctr< MAX_TIMEOUT, "time()'s state changes");
+
+#ifdef CYGSEM_LIBC_TIME_SETTIME_WORKING
+ CYG_TEST_PASS_FAIL(cyg_libc_time_settime(0)==0, "Set time to 0");
+
+ t1 = time(NULL);
+
+ // give it a small amount of tolerance
+ CYG_TEST_PASS_FAIL(t1 < 3, "t1 remembered setting");
+
+ CYG_TEST_PASS_FAIL(cyg_libc_time_settime(1000)==0, "Set time to 1000");
+
+ // give it a small amount of tolerance
+ CYG_TEST_PASS_FAIL(t1 < 1003, "t1 remembered setting");
+
+#else // ! CYGSEM_LIBC_TIME_SETTIME_WORKING
+ CYG_TEST_PASS_FAIL(cyg_libc_time_settime(0)!=0,
+ "Set time expected fail");
+#endif // CYGSEM_LIBC_TIME_SETTIME_WORKING
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for C library "
+ "time() function");
+} // main()
+
+// EOF time.c
diff --git a/ecos/packages/language/c/libm/current/ChangeLog b/ecos/packages/language/c/libm/current/ChangeLog
new file mode 100644
index 0000000..4891be8
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/ChangeLog
@@ -0,0 +1,960 @@
+2013-08-25 Ilija Kocho <ilijak@siva.com.mk>
+
+ * src/complex/cabs.c, src/complex/casinf.c, src/complex/ccosh.c, src/complex/cimagf.c,
+ * src/complex/cprojf.c, src/complex/ctan.c, src/complex/cabsf.c, src/complex/casinh.c,
+ * src/complex/ccoshf.c, src/complex/clog.c, src/complex/creal.c, src/complex/ctanf.c,
+ * src/complex/cacos.c, src/complex/casinhf.c, src/complex/cephes_subr.c,
+ * src/complex/clogf.c, src/complex/crealf.c, src/complex/ctanh.c, src/complex/cacosf.c,
+ * src/complex/catan.c, src/complex/cephes_subrf.c, src/complex/src/complex.tex,
+ * src/complex/csin.c, src/complex/ctanhf.c, src/complex/cacosh.c, src/complex/catanf.c,
+ * src/complex/cephes_subrf.h src/complex/conj.c, src/complex/csinf.c,
+ * src/complex/cacoshf.c, src/complex/catanh.c, src/complex/cephes_subr.h
+ * src/complex/conjf.c, src/complex/csinh.c, src/complex/carg.c, src/complex/catanhf.c,
+ * src/complex/cexp.c, src/complex/cpow.c, src/complex/csinhf.c, src/complex/cargf.c,
+ * src/complex/ccos.c, src/complex/cexpf.c, src/complex/cpowf.c, src/complex/csqrt.c,
+ * src/complex/casin.c, src/complex/ccosf.c, src/complex/cimag.c, src/complex/cproj.c,
+ * src/complex/csqrtf.c,
+ * include/src/complex.h:
+
+ Add: Complex number header and library (single and double precision floating point),
+ port from Newlib. [ Bugzilla 1001539 ]
+
+2013-08-25 Visar Zejnullahu <visar.siva.mk>
+ Ilija Kocho <ilijak@siva.com.mk>
+
+ * cdl/compat.cdl, cdl/libm.cdl, include/complex.h, include/math.h,
+ * src/float/ieee754-api/wf_acos.c, src/float/ieee754-api/wf_acosh.c,
+ * src/float/ieee754-api/wf_asin.c, src/float/ieee754-api/wf_atan2.c,
+ * src/float/ieee754-api/wf_atanh.c, src/float/ieee754-api/wf_cosh.c,
+ * src/float/ieee754-api/wf_exp.c, src/float/ieee754-api/wf_fmod.c,
+ * src/float/ieee754-api/wf_gamma.c, src/float/ieee754-api/wf_gamma_r.c,
+ * src/float/ieee754-api/wf_hypot.c, src/float/ieee754-api/wf_j0.c,
+ * src/float/ieee754-api/wf_j1.c, src/float/ieee754-api/wf_jn.c,
+ * src/float/ieee754-api/wf_lgamma.c, src/float/ieee754-api/wf_lgamma_r.c,
+ * src/float/ieee754-api/wf_log10.c, src/float/ieee754-api/wf_log.c,
+ * src/float/ieee754-api/wf_pow.c, src/float/ieee754-api/wf_remainder.c,
+ * src/float/ieee754-api/wf_scalb.c, src/float/ieee754-api/wf_sinh.c,
+ * src/float/ieee754-api/wf_sqrt.c,
+ * src/float/ieee754-core/ef_acos.c, src/float/ieee754-core/ef_acosh.c,
+ * src/float/ieee754-core/ef_asin.c, src/float/ieee754-core/ef_atan2.c,
+ * src/float/ieee754-core/ef_atanh.c, src/float/ieee754-core/ef_cosh.c,
+ * src/float/ieee754-core/ef_exp.c, src/float/ieee754-core/ef_fmod.c,
+ * src/float/ieee754-core/ef_gamma.c, src/float/ieee754-core/ef_gamma_r.c,
+ * src/float/ieee754-core/ef_hypot.c, src/float/ieee754-core/ef_j0.c,
+ * src/float/ieee754-core/ef_j1.c, src/float/ieee754-core/ef_jn.c,
+ * src/float/ieee754-core/ef_lgamma.c, src/float/ieee754-core/ef_lgamma_r.c,
+ * src/float/ieee754-core/ef_log10.c, src/float/ieee754-core/ef_log.c,
+ * src/float/ieee754-core/ef_pow.c, src/float/ieee754-core/ef_remainder.c,
+ * src/float/ieee754-core/ef_rem_pio2.c, src/float/ieee754-core/ef_scalb.c,
+ * src/float/ieee754-core/ef_sinh.c, src/float/ieee754-core/ef_sqrt.c,
+ * src/float/internal/kf_cos.c, src/float/internal/kf_rem_pio2.c,
+ * src/float/internal/kf_sin.c, src/float/internal/kf_tan.c,
+ * src/float/portable-api/sf_asinh.c, src/float/portable-api/sf_atan.c,
+ * src/float/portable-api/sf_cbrt.c, src/float/portable-api/sf_ceil.c,
+ * src/float/portable-api/sf_copysign.c, src/float/portable-api/sf_cos.c,
+ * src/float/portable-api/sf_erf.c, src/float/portable-api/sf_expm1.c,
+ * src/float/portable-api/sf_fabs.c, src/float/portable-api/sf_finite.c,
+ * src/float/portable-api/sf_floor.c, src/float/portable-api/sf_frexp.c,
+ * src/float/portable-api/sf_ilogb.c, src/float/portable-api/sf_isnan.c,
+ * src/float/portable-api/sf_ldexp.c, src/float/portable-api/sf_log1p.c,
+ * src/float/portable-api/sf_logb.c, src/float/portable-api/sf_modf.c,
+ * src/float/portable-api/sf_nextafter.c, src/float/portable-api/sf_rint.c,
+ * src/float/portable-api/sf_scalbn.c, src/float/portable-api/sf_significand.c,
+ * src/float/portable-api/sf_sin.c, src/float/portable-api/sf_tan.c,
+ * src/float/portable-api/sf_tanh.c,
+ * src/mathincl/fdlibm.h,
+ * tests/vector_support.h,
+ * tests/vectors/acosf.c, tests/vectors/atan2.h,
+ * tests/vectors/copysignf.h, tests/vectors/expf.h,
+ * tests/vectors/fmodf.c, tests/vectors/ilogbf.h,
+ * tests/vectors/log10f.c, tests/vectors/modff.h, tests/vectors/scalbf.h,
+ * tests/vectors/sqrtf.h, tests/vectors/acosf.h, tests/vectors/atanf.c,
+ * tests/vectors/cosf.c, tests/vectors/exp.h, tests/vectors/fmodf.h,
+ * tests/vectors/isnanf.c, tests/vectors/log10f.h, tests/vectors/modf.h,
+ * tests/vectors/scalbnf.c, tests/vectors/sqrt.h, tests/vectors/acos.h,
+ * tests/vectors/atanf.h, tests/vectors/cosf.h, tests/vectors/expm1f.c,
+ * tests/vectors/fmod.h, tests/vectors/isnanf.h, tests/vectors/log10.h,
+ * tests/vectors/nextafterf.c, tests/vectors/scalbnf.h, tests/vectors/tanf.c,
+ * tests/vectors/acoshf.c, tests/vectors/atan.h, tests/vectors/cos.h,
+ * tests/vectors/expm1f.h, tests/vectors/frexpf.c, tests/vectors/j0f.c,
+ * tests/vectors/log1pf.c, tests/vectors/nextafterf.h,
+ * tests/vectors/significandf.c, tests/vectors/tanf.h,
+ * tests/vectors/acoshf.h, tests/vectors/atanhf.c, tests/vectors/coshf.c,
+ * tests/vectors/fabsf.c, tests/vectors/frexpf.h, tests/vectors/j0f.h,
+ * tests/vectors/log1pf.h, tests/vectors/powf.c, tests/vectors/significandf.h,
+ * tests/vectors/tan.h, tests/vectors/asinf.c, tests/vectors/atanhf.h,
+ * tests/vectors/coshf.h, tests/vectors/fabsf.h,
+ * tests/vectors/frexpf_visar.h, tests/vectors/j1f.c,
+ * tests/vectors/logbf.c, tests/vectors/powf.h,
+ * tests/vectors/sinf.c, tests/vectors/tanhf.c,
+ * tests/vectors/asinf.h, tests/vectors/cbrtf.c, tests/vectors/cosh.h,
+ * tests/vectors/fabs.h, tests/vectors/frexp.h, tests/vectors/j1f.h,
+ * tests/vectors/logbf.h, tests/vectors/pow.h, tests/vectors/sinf.h,
+ * tests/vectors/tanhf.h, tests/vectors/asin.h, tests/vectors/cbrtf.h,
+ * tests/vectors/erfcf.c, tests/vectors/finitef.c,
+ * tests/vectors/gammaf.c, tests/vectors/jnf.c, tests/vectors/logf.c,
+ * tests/vectors/remainderf.c, tests/vectors/sin.h,
+ * tests/vectors/tanh.h, tests/vectors/asinhf.c, tests/vectors/ceilf.c,
+ * tests/vectors/erfcf.h, tests/vectors/finitef.h,
+ * tests/vectors/gammaf.h, tests/vectors/jnf.h,
+ * tests/vectors/logf.h, tests/vectors/remainderf.h,
+ * tests/vectors/sinhf.c, tests/vectors/vector_support_float.h,
+ * tests/vectors/asinhf.h, tests/vectors/ceilf.h, tests/vectors/erff.c,
+ * tests/vectors/floorf.c, tests/vectors/hypotf.c, tests/vectors/ldexpf.c,
+ * tests/vectors/log.h, tests/vectors/rintf.c, tests/vectors/sinhf.h,
+ * tests/vectors/vector_support.h, tests/vectors/atan2f.c,
+ * tests/vectors/ceil.h, tests/vectors/erff.h, tests/vectors/floorf.h,
+ * tests/vectors/hypotf.h, tests/vectors/ldexpf.h,
+ * tests/vectors/modf.c, tests/vectors/rintf.h, tests/vectors/sinh.h,
+ * tests/vectors/atan2f.h, tests/vectors/copysignf.c, tests/vectors/expf.c,
+ * tests/vectors/floor.h, tests/vectors/ilogbf.c, tests/vectors/ldexp.h,
+ * tests/vectors/modff.c, tests/vectors/scalbf.c, tests/vectors/sqrtf.c:
+
+ Add: Single precision floating point library, port from Newlib.
+ [ Bugzilla 1001539 ]
+
+2010-11-11 Sergei Gavrikov <sergei.gavrikov@gmail.com>
+
+ * cdl/libm.cdl (CYGPKG_LIBM_CFLAGS_ADD): Add a set of parentheses
+ around 'if-then-else' expression, simplified evaluated expression.
+
+2010-05-15 Jonathan Larmour <jifl@jifvik.org>
+
+ * cdl/libm.cdl (CYGPKG_LIBM_CFLAGS_ADD): Compile with
+ -fno-strict-aliasing to avoid miscompilation. Workaround for a more
+ fundamental problem with CYG_LIBM_HI/LO.
+
+2008-11-20 Jonathan Larmour <jifl@eCosCentric.com>
+
+ * cdl/libm.cdl: Rename X_TLOSS CDL option to match normal convention.
+
+2007-09-04 Stephen Finney <shf@pfinc.com>
+2007-09-04 Jonathan Larmour <jifl@eCosCentric.com>
+
+ * src/misc/infconst.c: Declare infinity byte order as dependent on
+ double byte order, not integer.
+ Fixes bug #1000448.
+
+2004-04-14 Andrew Lunn <andrew.lunn@ascom.ch>
+
+ * src/double/ieee754-core/e_cosh.c (__ieee754_cosh):
+ * src/double/ieee754-core/e_sinh.c (__ieee754_sinh): Make use of
+ the CYG_LIBM_LO() macro which does not generate a compiler warning.
+
+2003-02-24 Jonathan Larmour <jifl@eCosCentric.com>
+
+ * cdl/libm.cdl: Fix doc link.
+
+2001-09-28 Jesper Skov <jskov@redhat.com>
+
+ * src/double/portable-api/s_expm1.c (expm1): Init c before it's used.
+
+2001-07-20 Jonathan Larmour <jlarmour@redhat.com>
+
+ * src/double/portable-api/s_expm1.c: Reimport from newlib
+ * src/double/ieee754-core/e_pow.c: Ditto.
+ * src/mathincl/fdlibm.h: Define macros and types required for
+ newlib versions of libm files.
+
+2001-04-25 Bart Veer <bartv@redhat.com>
+
+ * cdl/libm.cdl:
+ Ensure -ffloat-store is also used for the updated synthetic target
+ when running on x86 hardware.
+
+2000-09-11 Jonathan Larmour <jlarmour@redhat.com>
+
+ * src/misc/infconst.c: Revert below two changes - the gcc problem
+ that provoked it is now fixed.
+
+2000-09-01 Jonathan Larmour <jlarmour@redhat.com>
+
+ * src/misc/infconst.c: Silence warning about number of brackets
+
+2000-08-31 Jonathan Larmour <jlarmour@redhat.com>
+
+ * include/math.h: Declare cyg_libm_infinity as an array type for correct
+ relocations
+ * src/misc/infconst.c: Define it likewise
+
+2000-05-30 Jesper Skov <jskov@redhat.com>
+
+ * include/sys/ieeefp.h: Undo below change.
+
+2000-05-26 Jesper Skov <jskov@redhat.com>
+
+ * include/sys/ieeefp.h: Support FPU double-LE layout in BE mode.
+ Fix paste bug.
+
+2000-05-02 Jonathan Larmour <jlarmour@redhat.co.uk>
+
+ * tests/vectors/vector_support.h:
+ Update startup configury to reflect changes in libc startup.
+ Use default stacksize of CYGNUM_HAL_STACK_SIZE_TYPICAL rather than 32K
+
+2000-03-28 John Dallaway <jld@cygnus.co.uk>
+
+ * cdl/libm.cdl:
+
+ Adjust documentation URLs.
+
+2000-03-16 Jonathan Larmour <jlarmour@redhat.co.uk>
+
+ * cdl/libm.cdl (CYGPKG_LIBM_CFLAGS_ADD): Add -ffloat-store for i386
+ targets. The math library implementation relies on accurate IEEE FP.
+
+2000-01-31 Simon FitzMaurice <sdf@cygnus.co.uk>
+ * cdl/*.cdl:
+
+ Adjust help URLs in line with new doc layout.
+
+2000-01-28 Simon FitzMaurice <sdf@cygnus.co.uk>
+ * cdl/*.cdl:
+
+ Adjust help URLs in line with new doc layout.
+
+2000-01-28 Jonathan Larmour <jlarmour@redhat.co.uk>
+
+ * cdl/libm.cdl: Don't need to compile with -O1 any more
+
+2000-01-19 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * cdl/*.cdl: Add descriptions to a number of options &c which were
+ lacking same, also tidied up other typos as noticed en passant.
+
+1999-11-23 Hugo Tyson <hmt@cygnus.co.uk>
+
+ * include/pkgconf/libm.h: Cooperate with permtest combo10 setting
+ an intermediate variable CYGNUM_LIBM_COMPAT_DEFAULT directly.
+
+1999-11-03 John Dallaway <jld@cygnus.co.uk>
+
+ * cdl/libm.cdl: Define tests.
+
+1999-10-18 John Dallaway <jld@cygnus.co.uk>
+
+ * cdl/libm.cdl:
+ Parent CYGPKG_LIBM_CFLAGS_ADD and CYGPKG_LIBM_CFLAGS_REMOVE
+ under a CDL component.
+
+1999-10-15 John Dallaway <jld@cygnus.co.uk>
+
+ * cdl/libm.cdl:
+ Define CYGPKG_LIBM_CFLAGS_ADD and CYGPKG_LIBM_CFLAGS_REMOVE.
+
+1999-10-07 John Dallaway <jld@cygnus.co.uk>
+
+ * cdl/compat.cdl: Specify radio buttons using CDL interfaces.
+
+1999-08-24 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/PKGconf.mak: Optimize by default everywhere, except when compiling
+ e_pow.c, in which case use -fno-schedule-insns
+
+1999-08-17 John Dallaway <jld@cygnus.co.uk>
+
+ * cdl/compat.cdl:
+
+ Implement radio buttons using "FIXME radio" hack in
+ description field for now.
+
+1999-08-14 John Dallaway <jld@cygnus.co.uk>
+
+ * cdl/compat.cdl:
+ Change CYGNUM_LIBM_COMPATIBILITY flavor to 'booldata'.
+
+1999-08-12 John Dallaway <jld@cygnus.co.uk>
+
+ * cdl/libm.cdl, cdl/compat.cdl:
+ Take advantage of MACRONAME_ENUMVAL macros output by CDL.
+
+1999-06-17 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/PKGconf.mak: Disable optimization completely until CR 100802 is
+ fixed
+
+1999-06-07 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/mathincl/fdlibm.h: Fix for alias problem
+ Fix for PR 19698
+ * src/PKGconf.mak: workaround no longer needed
+
+1999-06-04 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/PKGconf.mak:
+ Only use -fno-strict-aliasing if we have enough a recent toolchain
+ Default is that we have
+
+1999-06-03 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/PKGconf.mak:
+ Finally found the option to do the right workaround:
+ -fno-strict-aliasing
+
+1999-06-02 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/PKGconf.mak (SPECIAL_FLAGS): Don't use -fschedule-insns[2] on
+ mn10300
+
+1999-05-27 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/PKGconf.mak (SPECIAL_FLAGS): Add workaround flags for new
+ toolchains for all targets
+
+1999-05-24 Jesper Skov <jskov@cygnus.co.uk>
+
+ * src/PKGconf.mak: Same workaround for sh.
+
+1999-05-19 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/PKGconf.mak: Make below workaround be the other way around by
+ using -O1 and adding more explicit -O2 optimizations, just so we
+ don't lose very many optimizations. This is for sparclite
+
+1999-05-19 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/PKGconf.mak: Make below workaround be the other way around by
+ using -O1 and adding more explicit -O2 optimizations, just so we
+ don't lose very many optimizations. This is for ARM
+
+1999-05-18 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/PKGconf.mak: For the sparclite, prevent insn scheduling -
+ workaround for PR 19698
+
+1999-05-18 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/PKGconf.mak: For the ARM, change from -O1 to just prevent insn
+ scheduling - workaround for PR 19698
+
+1999-04-15 John Dallaway <jld@cygnus.co.uk>
+
+ * include/pkgconf/libm.h: Tidy display string capitalization.
+
+1999-04-07 Jesper Skov <jskov@cygnus.co.uk>
+ PR 19442
+ * tests/vectors/vector_support.h: Make an occasional chirp to keep
+ the testing infra interested.
+
+1999-04-06 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * src/PKGconf.mak: More brute-force fix for ARM compiler
+ problems - PR 19772
+
+1999-03-31 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libm.h: Remove unnecessary define
+ Fix for PR 19423
+
+1999-03-29 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * src/PKGconf.mak: Add special compile options to work around ARM
+ compiler bugs.
+
+1999-02-09 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/mathincl/fdlibm.h:
+ Change definition of CYG_LIBM_HI/CYG_LIBM_LO to use inline
+ function
+ Fix for PR 18859
+
+1999-01-28 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/misc/signgam.cxx:
+ * src/misc/compatmode.cxx:
+ Include <pkgconf/kernel.h> if we use kernel header files
+
+1999-01-21 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/vectors/vector_support.h (doTestVec): Makes more
+ sense to output vector number than array index
+
+ * src/double/portable-api/s_ceil.c: Fix comment s/+inf/-inf/
+
+1999-01-20 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/vectors/vector_support.h (doTestVec):
+ Add output to let you know which vectors failed
+
+1999-01-12 Gary Thomas <gthomas@cygnus.co.uk>
+
+ * src/mathincl/fdlibm.h:
+ * include/sys/ieeefp.h: Add different structure layouts for
+ machines that have doubles that aren't pure big/little endian.
+
+Fri Oct 23 19:27:04 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/vectors/vector_support.h (START_TEST):
+ Ensure that dummy START_TEST (the one used when the test should
+ *not* be run) does have a reference to the test function. And
+ make sure that there is a default one if there's no C API
+
+ * src/mathincl/fdlibm.h:
+ Add matherr() prototype if no namespace pollution
+
+ Fixes for PR 17972
+
+1998-10-22 Jesper Skov <jskov@cygnus.co.uk>
+ PR 17925
+
+ * include/pkgconf/libm.h:
+ * src/misc/matherr.c:
+ Removed the CYGFUN_LIBM_matherr config. The function is already
+ weakly defined so shouldn't need to be configured out.
+
+1998-10-19 Mark Galassi <rosalia@cygnus.com>
+
+ * include/pkgconf/libm.h: updated the doc URL
+
+Thu Oct 15 21:36:12 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/misc/compatmode.cxx, src/misc/signgam.cxx:
+ Only include kernel headers if we want thread-safe operation
+ Required for PR 17229
+
+Wed Oct 14 17:24:46 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libm.h:
+ Make CYGPKG_LIBM_COMPATIBILITY_DEFAULT require CYGPKG_LIBC
+ rather than all of libm, and put a check (with #error) that
+ this is the case
+
+ * src/double/ieee754-api/w_scalb.c:
+ Only include errno.h if we aren't IEEE-only
+
+ * src/double/portable-api/s_ldexp.c, src/misc/standard.c:
+ Make the error checking in s_ldexp.c more like every other libm
+ sources by putting the actual error handling into standard.c.
+ The error handling is just like scalb
+
+ * tests/vectors/acos.c, tests/vectors/asin.c,
+ tests/vectors/atan.c, tests/vectors/atan2.c,
+ tests/vectors/ceil.c, tests/vectors/cos.c, tests/vectors/cosh.c,
+ tests/vectors/exp.c, tests/vectors/fabs.c,
+ tests/vectors/floor.c, tests/vectors/fmod.c,
+ tests/vectors/frexp.c, tests/vectors/ldexp.c,
+ tests/vectors/log.c, tests/vectors/log10.c,
+ tests/vectors/modf.c, tests/vectors/pow.c, tests/vectors/sin.c,
+ tests/vectors/sinh.c, tests/vectors/sqrt.c, tests/vectors/tan.c,
+ tests/vectors/tanh.c:
+ Remove unnecessary include of <errno.h>
+
+ * tests/vectors/vector_support.h:
+ Only include errno.h if we aren't IEEE-only.
+ If we don't have Cyg_ErrNo, just use a cyg_int32 instead, to
+ make sure that the fields are still correct for the input
+ test vector.
+ In doTestVec(), before checking errno, check if we're
+ in IEEE mode (either compiled in or set at runtime) because if
+ so, and errno is set in the errno field of the input test
+ vector, then we have to skip this, since we can't validate the
+ output.
+ In all modes, if errno is set in the input test vector, don't
+ bother checking the actual values
+
+ All of the above changes are for PR 17503
+
+ * tests/vectors/pow.c:
+ Remove requirement of being in POSIX mode, as the change to
+ vector_support.h should make this work better now.
+
+
+Sun Sep 27 20:46:09 1998 David Moore <dsm@keema.cygnus.co.uk>
+
+ * include/pkgconf/libm.h:
+ PR 17515: Corrected notcdl doc string.
+
+1998-09-26 Bart Veer <bartv@cygnus.co.uk>
+
+ * include/pkgconf/libm.h:
+ PR 17503: there are uses of errno in a couple of places in libm,
+ and errno will only be available if the C library is present.
+ Therefore libm requires libc.
+
+
+Fri Sep 25 19:00:35 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/misc/compatmode.cxx:
+ Make sure CYGNUM_LIBM_COMPATMODE_TRACE_LEVEL is defined before
+ we attempt tracing, otherwise set trace level to 0 i.e. never
+
+ * src/misc/signgam.cxx:
+ Make sure CYGNUM_LIBM_SIGNGAM_TRACE_LEVEL is defined before
+ we attempt tracing, otherwise set trace level to 0 i.e. never
+ Fix for PR 17478
+
+ * include/pkgconf/libm.h:
+ Define trace levels only if parent CYGPKG_LIBM_TRACE is defined
+ for consistency with Configuration Tool
+
+Fri Sep 25 18:25:02 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libm.h:
+ Only check valid compatibility setting if we aren't IEEE-only
+ mode
+ Fix for PR 17481
+
+Fri Sep 25 18:13:24 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/mathincl/fdlibm.h:
+ * src/double/ieee754-core/e_scalb.c:
+ * src/double/ieee754-api/w_scalb.c:
+ Use CYGFUN_LIBM_SVID3_scalb for whether 2nd arg of scalb is
+ double or int, rather than _SCALB_INT.
+ Fix for PR 17479
+
+Wed Sep 23 08:07:48 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/vectors/pow.c (test):
+ Make pow test conditional on being in POSIX compatibility mode.
+ This is the only mode that can set errno correctly, in
+ relation to what the tests expect.
+ Fix for PR 16933
+
+1998-09-20 Mark Galassi <rosalia@cygnus.com>
+
+ * include/pkgconf/libm.h: updated CDL doc strings.
+
+Thu Sep 17 17:10:47 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/vectors/vector_support.h (checkErrorAcceptable):
+ Move check for signed-ness after all of the special cases
+ Fix for PR 16933
+
+Tue Sep 15 19:26:32 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libm.h:
+ Updated descriptions and a few other minor things after review
+
+1998-09-11 Bart Veer <bartv@cygnus.co.uk>
+
+ * include/pkgconf/libm.h:
+ Sorting out dependencies for error package.
+
+Fri Sep 4 14:20:04 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libm.h:
+ Fix thread-safe modes "requires" lines not to be associated
+ with the dummy parent package, but with the options themselves.
+ Also we don't need "requires CYGPKG_KERNEL" if we already require
+ a particular kernel option anyway.
+
+Thu Sep 3 09:50:20 1998 Tim Goodwin <tgoodwin@cygnus.co.uk>
+
+ * tests/vectors/vector_support.h
+ Change to cyg_thread_create() interface.
+
+Wed Sep 2 14:41:54 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libm.h:
+ Add default define for CYGPKG_LIBM_COMPATIBILITY_DEFAULT,
+ and shorten some display texts
+
+Wed Sep 2 13:15:43 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/double/ieee754-core/e_pow.c:
+ Fix bug for when x is negative and y isn't an integer. A CYGNUS
+ LOCAL change got it wrong when casting a signed integer to
+ unsigned before right shifting.
+
+ Reformat for 76 columns
+
+ * src/double/ieee754-api/w_pow.c:
+ Reformat for 76 columns
+
+
+Wed Sep 2 12:30:11 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libm.h:
+ Default tracing to off
+ Reformat for 76 columns
+
+ * tests/vectors/vector_support.h:
+ Align '{'s and "verbs" on the same line. Tidy to 76 columns
+
+Mon Aug 31 13:38:25 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libm.h:
+ Require infra tracing support to allow tracing
+
+1998-08-28 Bart Veer <bartv@cygnus.co.uk>
+
+ * include/pkgconf/libm.h:
+ * src/misc/compatmode.cxx, src/misc/signgam.cxx:
+ * tests/vectors/vector_support.h
+
+ Updated for new kernel configuration option symbol names
+
+Fri Aug 28 09:07:07 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/vectors/vector_support.h:
+ Change START_TEST macro, adjust config options and add
+ cyg_package_start() to get tests working correctly with new entry
+ point mechanism, including cyg_iso_c_start() if available
+
+Wed Aug 26 20:25:36 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libm.h:
+ Remove #define CYGPKG_LIBM is that is meant to live in
+ <pkgconf/system.h> after all
+
+
+Wed Aug 26 19:38:54 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libm.h:
+ More fixes to CDL stuff to make it work better, and look better on
+ the screen
+
+Tue Aug 25 20:23:25 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libm.h:
+ Make some fixes after running the ConfigTool
+
+Tue Aug 25 16:59:11 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libm.h:
+ Turns out the nesting wasn't quite right. Correct it, and replace
+ the "not" prefix on CFG_DATA, which slipped in to the previous change.
+
+Tue Aug 25 16:53:03 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libm.h:
+ Ensure there is a default compatibility mode and fix the
+ ifdef nesting for the compat modes
+
+Tue Aug 25 15:24:51 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libm.h:
+ Tidy up CDL stuff prior to checking if it all actually works!
+
+Tue Aug 25 05:17:55 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libm.h:
+ Do a first pass of CDLification of configuration data
+
+ * include/pkgconf/libm.h, src/misc/matherr.c:
+ Rename CYGFUN_LIBC_matherr to CYGFUN_LIBM_matherr
+
+Wed Aug 19 19:35:16 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/vectors/acos.c, tests/vectors/cosh.c, tests/vectors/ldexp.c,
+ tests/vectors/sinh.c, tests/vectors/asin.c, tests/vectors/exp.c,
+ tests/vectors/log.c, tests/vectors/sqrt.c, tests/vectors/atan.c,
+ tests/vectors/fabs.c, tests/vectors/log10.c, tests/vectors/tan.c,
+ tests/vectors/atan2.c, tests/vectors/floor.c, tests/vectors/modf.c,
+ tests/vectors/tanh.c, tests/vectors/ceil.c, tests/vectors/fmod.c,
+ tests/vectors/pow.c, tests/vectors/cos.c, tests/vectors/frexp.c,
+ tests/vectors/sin.c
+
+ * tests/vectors/vector_support.h (doTestVec):
+ Remove "register" on variable
+
+Wed Aug 19 18:59:47 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/double/ieee754-core/e_gamma.c,
+ src/double/ieee754-core/e_lgamma.c,
+ src/double/ieee754-api/w_gamma.c,
+ src/double/ieee754-api/w_lgamma.c:
+ Remove direct reference to extern int signgam and include <math.h>
+ instead
+
+Mon Jul 27 23:47:52 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/math.h, include/pkgconf/libm.h,
+ src/double/ieee754-api/w_acos.c, src/double/ieee754-api/w_acosh.c,
+ src/double/ieee754-api/w_asin.c, src/double/ieee754-api/w_atan2.c,
+ src/double/ieee754-api/w_atanh.c, src/double/ieee754-api/w_cosh.c,
+ src/double/ieee754-api/w_exp.c, src/double/ieee754-api/w_fmod.c,
+ src/double/ieee754-api/w_gamma.c,
+ src/double/ieee754-api/w_gamma_r.c,
+ src/double/ieee754-api/w_hypot.c, src/double/ieee754-api/w_j0.c,
+ src/double/ieee754-api/w_j1.c, src/double/ieee754-api/w_jn.c,
+ src/double/ieee754-api/w_lgamma.c,
+ src/double/ieee754-api/w_lgamma_r.c,
+ src/double/ieee754-api/w_log.c,
+ src/double/ieee754-api/w_log10.c, src/double/ieee754-api/w_pow.c,
+ src/double/ieee754-api/w_remainder.c,
+ src/double/ieee754-api/w_scalb.c, src/double/ieee754-api/w_sinh.c,
+ src/double/ieee754-api/w_sqrt.c, src/double/ieee754-core/e_acos.c,
+ src/double/ieee754-core/e_acosh.c,
+ src/double/ieee754-core/e_asin.c,
+ src/double/ieee754-core/e_atan2.c,
+ src/double/ieee754-core/e_atanh.c,
+ src/double/ieee754-core/e_cosh.c,
+ src/double/ieee754-core/e_exp.c, src/double/ieee754-core/e_fmod.c,
+ src/double/ieee754-core/e_gamma.c,
+ src/double/ieee754-core/e_gamma_r.c,
+ src/double/ieee754-core/e_hypot.c, src/double/ieee754-core/e_j0.c,
+ src/double/ieee754-core/e_j1.c, src/double/ieee754-core/e_jn.c,
+ src/double/ieee754-core/e_lgamma.c,
+ src/double/ieee754-core/e_lgamma_r.c,
+ src/double/ieee754-core/e_log.c, src/double/ieee754-core/e_log10.c,
+ src/double/ieee754-core/e_pow.c,
+ src/double/ieee754-core/e_rem_pio2.c,
+ src/double/ieee754-core/e_remainder.c,
+ src/double/ieee754-core/e_scalb.c,
+ src/double/ieee754-core/e_sinh.c,
+ src/double/ieee754-core/e_sqrt.c, src/double/internal/k_cos.c,
+ src/double/internal/k_rem_pio2.c, src/double/internal/k_sin.c,
+ src/double/internal/k_tan.c, src/double/portable-api/s_asinh.c,
+ src/double/portable-api/s_atan.c, src/double/portable-api/s_cbrt.c,
+ src/double/portable-api/s_ceil.c,
+ src/double/portable-api/s_copysign.c,
+ src/double/portable-api/s_cos.c, src/double/portable-api/s_erf.c,
+ src/double/portable-api/s_expm1.c,
+ src/double/portable-api/s_fabs.c,
+ src/double/portable-api/s_finite.c,
+ src/double/portable-api/s_floor.c,
+ src/double/portable-api/s_frexp.c,
+ src/double/portable-api/s_ilogb.c,
+ src/double/portable-api/s_isnan.c,
+ src/double/portable-api/s_ldexp.c,
+ src/double/portable-api/s_log1p.c,
+ src/double/portable-api/s_logb.c,
+ src/double/portable-api/s_modf.c,
+ src/double/portable-api/s_nextafter.c,
+ src/double/portable-api/s_rint.c,
+ src/double/portable-api/s_scalbn.c,
+ src/double/portable-api/s_significand.c,
+ src/double/portable-api/s_sin.c, src/double/portable-api/s_tan.c,
+ src/double/portable-api/s_tanh.c, src/mathincl/fdlibm.h,
+ src/misc/standard.c:
+
+ Untabify
+
+Mon Jul 27 22:52:24 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/vectors/vector_support.h (doTestVec):
+ Remove "register" when declaring variable i
+
+ * host/acosgen.c, host/cosgen.c, host/fmodgen.c, host/modfgen.c,
+ host/tangen.c, host/asingen.c, host/coshgen.c, host/frexpgen.c,
+ host/powgen.c, host/tanhgen.c, host/atan2gen.c, host/expgen.c,
+ host/ldexpgen.c, host/singen.c, host/atangen.c, host/fabsgen.c,
+ host/log10gen.c, host/sinhgen.c, host/ceilgen.c, host/floorgen.c,
+ host/loggen.c, host/sqrtgen.c:
+ Remove "register" when declaring variable "int x"
+
+Mon Jul 27 22:45:01 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/vectors/vector_support.h (checkErrorAcceptable):
+ Add extra check for tolerance acceptance so it behaves correctly with
+ underflow and overflow
+
+ Also reverse sense of checkErrorAcceptable() so it now returns
+ false on success and true on failure, as suggested by hmt. Change
+ this in doTestVec() (which is where it is called) too.
+
+ * tests/vectors/vector_support.h:
+ Remove #if 0'd shift_double() function
+
+Mon Jul 27 21:55:04 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/mathincl/fdlibm.h:
+ Rename CYGONCE_LIBM_FDLIBM_H to CYGONCE_LIBM_MATHINCL_FDLIBM_H as per
+ code review comments
+
+Fri Jul 24 22:20:42 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/math.h, include/pkgconf/libm.h,
+ src/double/ieee754-api/w_acos.c, src/double/ieee754-api/w_acosh.c,
+ src/double/ieee754-api/w_asin.c, src/double/ieee754-api/w_atan2.c,
+ src/double/ieee754-api/w_atanh.c, src/double/ieee754-api/w_cosh.c,
+ src/double/ieee754-api/w_exp.c, src/double/ieee754-api/w_fmod.c,
+ src/double/ieee754-api/w_gamma.c, src/double/ieee754-api/w_gamma_r.c,
+ src/double/ieee754-api/w_hypot.c, src/double/ieee754-api/w_j0.c,
+ src/double/ieee754-api/w_j1.c, src/double/ieee754-api/w_jn.c,
+ src/double/ieee754-api/w_lgamma.c,
+ src/double/ieee754-api/w_lgamma_r.c, src/double/ieee754-api/w_log.c,
+ src/double/ieee754-api/w_log10.c, src/double/ieee754-api/w_pow.c,
+ src/double/ieee754-api/w_remainder.c,
+ src/double/ieee754-api/w_scalb.c, src/double/ieee754-api/w_sinh.c,
+ src/double/ieee754-api/w_sqrt.c, src/mathincl/fdlibm.h,
+ src/misc/compatmode.cxx, src/misc/matherr.c, src/misc/signgam.cxx,
+ src/misc/standard.c:
+
+ Rename libm config option names as per the libm coding standard
+ review. Chiefly ensuring that CYGXXX_ prefixes are correct
+
+ * src/misc/matherr.c, include/pkgconf/libm.h:
+ Add new CYGFUN_LIBC_matherr config option to prevent inclusion of
+ default matherr
+
+Mon Jul 20 18:07:31 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/misc/infconst.c:
+ Oops. Don't let cyg_libm_infinity be static!
+
+Thu Jul 16 20:07:26 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/math.h, include/sys/ieeefp.h, src/misc/infconst.c:
+ Remove union Cyg_libm_int_double from math.h, which was used to
+ define infinity, and replace with use of
+ Cyg_libm_ieee_double_shape_type from ieeefp.h
+
+ That type (which is a union) is now reordered so that it can be
+ initialised in terms of two int's
+
+Mon Jul 13 21:55:06 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/double/ieee754-api/w_acos.c, src/double/ieee754-api/w_acosh.c,
+ src/double/ieee754-api/w_asin.c, src/double/ieee754-api/w_atan2.c,
+ src/double/ieee754-api/w_atanh.c, src/double/ieee754-api/w_cosh.c,
+ src/double/ieee754-api/w_exp.c, src/double/ieee754-api/w_fmod.c,
+ src/double/ieee754-api/w_gamma.c, src/double/ieee754-api/w_gamma_r.c,
+ src/double/ieee754-api/w_hypot.c, src/double/ieee754-api/w_j0.c,
+ src/double/ieee754-api/w_j1.c, src/double/ieee754-api/w_jn.c,
+ src/double/ieee754-api/w_lgamma.c,
+ src/double/ieee754-api/w_lgamma_r.c, src/double/ieee754-api/w_log.c,
+ src/double/ieee754-api/w_log10.c, src/double/ieee754-api/w_pow.c,
+ src/double/ieee754-api/w_remainder.c,
+ src/double/ieee754-api/w_scalb.c, src/double/ieee754-api/w_sinh.c,
+ src/double/ieee754-api/w_sqrt.c, src/double/ieee754-core/e_acos.c,
+ src/double/ieee754-core/e_acosh.c, src/double/ieee754-core/e_asin.c,
+ src/double/ieee754-core/e_atan2.c, src/double/ieee754-core/e_atanh.c,
+ src/double/ieee754-core/e_cosh.c, src/double/ieee754-core/e_exp.c,
+ src/double/ieee754-core/e_fmod.c, src/double/ieee754-core/e_gamma.c,
+ src/double/ieee754-core/e_gamma_r.c,
+ src/double/ieee754-core/e_hypot.c, src/double/ieee754-core/e_j0.c,
+ src/double/ieee754-core/e_j1.c, src/double/ieee754-core/e_jn.c,
+ src/double/ieee754-core/e_lgamma.c,
+ src/double/ieee754-core/e_lgamma_r.c,
+ src/double/ieee754-core/e_log.c, src/double/ieee754-core/e_log10.c,
+ src/double/ieee754-core/e_pow.c,
+ src/double/ieee754-core/e_rem_pio2.c,
+ src/double/ieee754-core/e_remainder.c,
+ src/double/ieee754-core/e_scalb.c, src/double/ieee754-core/e_sinh.c,
+ src/double/ieee754-core/e_sqrt.c, src/double/internal/k_cos.c,
+ src/double/internal/k_rem_pio2.c, src/double/internal/k_sin.c,
+ src/double/internal/k_tan.c, src/double/portable-api/s_asinh.c,
+ src/double/portable-api/s_atan.c, src/double/portable-api/s_cbrt.c,
+ src/double/portable-api/s_ceil.c,
+ src/double/portable-api/s_copysign.c,
+ src/double/portable-api/s_cos.c, src/double/portable-api/s_erf.c,
+ src/double/portable-api/s_expm1.c, src/double/portable-api/s_fabs.c,
+ src/double/portable-api/s_finite.c,
+ src/double/portable-api/s_floor.c, src/double/portable-api/s_frexp.c,
+ src/double/portable-api/s_ilogb.c, src/double/portable-api/s_isnan.c,
+ src/double/portable-api/s_ldexp.c, src/double/portable-api/s_log1p.c,
+ src/double/portable-api/s_logb.c, src/double/portable-api/s_modf.c,
+ src/double/portable-api/s_nextafter.c,
+ src/double/portable-api/s_rint.c, src/double/portable-api/s_scalbn.c,
+ src/double/portable-api/s_significand.c,
+ src/double/portable-api/s_sin.c, src/double/portable-api/s_tan.c,
+ src/double/portable-api/s_tanh.c, src/misc/standard.c:
+
+ Make #ifdef __STDC__ bits compulsory and remove the associated #else
+ clause. We know that gcc is ISO C compatible!
+
+Tue Jul 7 16:05:48 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/misc/compatmode.cxx:
+ Fix conditionalisation to prevent unused variable warning for tracing
+
+Thu Jun 25 04:58:21 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * tests/vectors/acos.c, tests/vectors/acos.h, tests/vectors/asin.c,
+ tests/vectors/asin.h, tests/vectors/atan.c, tests/vectors/atan.h,
+ tests/vectors/atan2.c, tests/vectors/atan2.h, tests/vectors/ceil.c,
+ tests/vectors/ceil.h, tests/vectors/cos.c, tests/vectors/cos.h,
+ tests/vectors/cosh.c, tests/vectors/cosh.h, tests/vectors/exp.c,
+ tests/vectors/exp.h, tests/vectors/fabs.c, tests/vectors/fabs.h,
+ tests/vectors/floor.c, tests/vectors/floor.h, tests/vectors/fmod.c,
+ tests/vectors/fmod.h, tests/vectors/frexp.c, tests/vectors/frexp.h,
+ tests/vectors/ldexp.c, tests/vectors/ldexp.h, tests/vectors/log.c,
+ tests/vectors/log.h, tests/vectors/log10.c, tests/vectors/log10.h,
+ tests/vectors/modf.c, tests/vectors/modf.h, tests/vectors/pow.c,
+ tests/vectors/pow.h, tests/vectors/sin.c, tests/vectors/sin.h,
+ tests/vectors/sinh.c, tests/vectors/sinh.h, tests/vectors/sqrt.c,
+ tests/vectors/sqrt.h, tests/vectors/tan.c, tests/vectors/tan.h,
+ tests/vectors/tanh.c, tests/vectors/tanh.h,
+ tests/vectors/vector_support.h:
+ Add math library tests for functions specified in the ISO standard.
+ These are based on precomputed test vectors
+
+ * tests/PKGconf.mak:
+ Create with above files being built
+
+ * host/acosgen.c, host/asingen.c, host/atan2gen.c, host/atangen.c,
+ host/ceilgen.c, host/cosgen.c, host/coshgen.c, host/expgen.c,
+ host/fabsgen.c, host/floorgen.c, host/fmodgen.c, host/frexpgen.c,
+ host/ldexpgen.c, host/log10gen.c, host/loggen.c, host/modfgen.c,
+ host/powgen.c, host/singen.c, host/sinhgen.c, host/sqrtgen.c,
+ host/tangen.c, host/tanhgen.c:
+ Host-side (and currently linux-specific) sources to automatically
+ generate test vector data used by the above tests.
+
+ * include/pkgconf/libm.h:
+ Ensure the kernel C API is available if we want thread safety
+
+Wed Jun 24 15:42:31 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/misc/standard.c:
+ Fix typo in ifdef
+
+Wed Jun 24 13:04:30 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/misc/standard.c:
+ Fix #defines for IEEE mode, revealed by permutation testing
+
+Mon Jun 22 14:42:50 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/misc/infconst.c:
+ Fix compiler warning
+
+Sun Jun 21 04:42:18 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/sys/ieeefp.h:
+ Add this to allow bitfield break down of IEEE floating point doubles
+
+Wed Jun 17 08:55:21 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * include/pkgconf/libm.h:
+ Make the use of stderr for messages _not_ the default
+ Make thread safety the default
+
+ * src/misc/standard.c:
+ Change alternative for fprintf(stderr,...) _not_ being used from
+ "CYG_EMPTY_STATEMENT" to just "0" to placate compiler.
+
+Mon Jun 15 19:59:36 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/misc/compatmode.cxx:
+ Fix typo in compatibility mode name
+
+Fri Jun 5 16:31:26 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * src/misc/signgam.cxx, src/misc/compatmode.cxx:
+ Fix some minor typos when thread safety is turned on
+
+ * src/misc/matherr.c
+ Correct syntax of weak attribute
+
+Fri Jun 5 07:07:03 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * Initial check-in of all math library sources. Based on fdlibm-5.2.
+
+
+//===========================================================================
+// ####GPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004, 2007, 2008, 2010, 2013 Free Software Foundation, Inc.
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 or (at your option) any
+// later version.
+//
+// This program 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
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the
+// Free Software Foundation, Inc., 51 Franklin Street,
+// Fifth Floor, Boston, MA 02110-1301, USA.
+// -------------------------------------------
+// ####GPLCOPYRIGHTEND####
+//===========================================================================
diff --git a/ecos/packages/language/c/libm/current/cdl/compat.cdl b/ecos/packages/language/c/libm/current/cdl/compat.cdl
new file mode 100644
index 0000000..f552110
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/cdl/compat.cdl
@@ -0,0 +1,164 @@
+# ====================================================================
+#
+# compat.cdl
+#
+# Maths library compatibility related configuration data
+#
+# ====================================================================
+## ####ECOSGPLCOPYRIGHTBEGIN####
+## -------------------------------------------
+## This file is part of eCos, the Embedded Configurable Operating System.
+## Copyright (C) 1998, 1999, 2000, 2001, 2002, 2013 Free Software Foundation, Inc.
+##
+## eCos is free software; you can redistribute it and/or modify it under
+## the terms of the GNU General Public License as published by the Free
+## Software Foundation; either version 2 or (at your option) any later
+## version.
+##
+## eCos 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 General Public License
+## for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with eCos; if not, write to the Free Software Foundation, Inc.,
+## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+##
+## As a special exception, if other files instantiate templates or use
+## macros or inline functions from this file, or you compile this file
+## and link it with other works to produce a work based on this file,
+## this file does not by itself cause the resulting work to be covered by
+## the GNU General Public License. However the source code for this file
+## must still be made available in accordance with section (3) of the GNU
+## General Public License v2.
+##
+## This exception does not invalidate any other reasons why a work based
+## on this file might be covered by the GNU General Public License.
+## -------------------------------------------
+## ####ECOSGPLCOPYRIGHTEND####
+# ====================================================================
+######DESCRIPTIONBEGIN####
+#
+# Author(s): jskov
+# Original data: jlarmour
+# Contributors: ilijak
+# Date: 1999-07-07
+#
+#####DESCRIPTIONEND####
+#
+# ====================================================================
+
+cdl_interface CYGINT_LIBM_COMPAT {
+ requires 1 == CYGINT_LIBM_COMPAT
+}
+
+cdl_component CYGSEM_LIBM_COMPAT_IEEE_ONLY {
+ display "IEEE-only"
+ default_value 0
+ implements CYGINT_LIBM_COMPAT
+ description "
+ The math library can be hard-coded to only
+ behave in one compatibility mode - IEEE. This
+ cannot be changed at run-time. IEEE mode is the
+ most minimal of the compatibility modes, and so
+ this will best help code size and speed, as well
+ as omitting the code for other compatibility
+ modes. If not defined, the math library can be
+ set at run-time to any of the supported
+ compatibility modes."
+
+ cdl_option CYGSEM_LIBM_IEEE_API_INLINE {
+ display "Inline IEEE754 API wrappers"
+ default_value 0
+
+ description "
+ IEEE754 API functions are just wrappers for
+ core functions. This introduces indirection which can can be
+ avoided by inlining. This will also prevent GCC from rendering
+ these functions as builtin. The HAL can override for a set of functions
+ by providing a list of builtin functions."
+ }
+
+}
+
+cdl_component CYGNUM_LIBM_COMPATIBILITY {
+ display "Default mode"
+ flavor booldata
+ requires CYGPKG_LIBC
+ implements CYGINT_LIBM_COMPAT
+ legal_values { "POSIX" "IEEE" "XOPEN" "SVID" }
+ default_value { "POSIX" }
+ define CYGPKG_LIBM_COMPATIBILITY_DEFAULT
+ description "
+ If you want to have support for more than one
+ compatibility mode settable at run-time, rather
+ than hard-coded IEEE mode, this component lets
+ you choose which mode should be the default."
+
+ cdl_option CYGNUM_LIBM_COMPAT_DEFAULT {
+ display "Numeric representation"
+ flavor data
+ calculated { \
+ CYGNUM_LIBM_COMPATIBILITY == "POSIX" ? "CYGNUM_LIBM_COMPAT_POSIX" :\
+ CYGNUM_LIBM_COMPATIBILITY == "IEEE" ? "CYGNUM_LIBM_COMPAT_IEEE" :\
+ CYGNUM_LIBM_COMPATIBILITY == "XOPEN" ? "CYGNUM_LIBM_COMPAT_XOPEN" :\
+ CYGNUM_LIBM_COMPATIBILITY == "SVID" ? "CYGNUM_LIBM_COMPAT_SVID" :\
+ "<undefined>" \
+ }
+ description "
+ This option automatically defines the default compatibility
+ mode for numeric representation in terms of the values used
+ to set that mode at run-time."
+ }
+
+ cdl_option CYGOPT_LIBM_COMPAT_POSIX_IEEE {
+ display "POSIX return NaN for out-of-domain argument."
+ active_if { CYGNUM_LIBM_COMPATIBILITY == "POSIX" }
+ default_value 0
+ description "Later POSIX specification states that functions
+ may return either NaN (like IEEE), or implementation defined
+ value when argument is out of domain. For backward compatibility
+ default value is set to 0."
+ }
+}
+
+cdl_option CYGFUN_LIBM_SVID3_scalb {
+ display "SVID3-style scalb()"
+ default_value 1
+ description "
+ SVID3 defined the scalb() function as double
+ scalb(double, double) rather than double
+ scalb(double, int) which is used by IBM, DEC, and
+ probably others. Enabling this option chooses
+ the (double, double) version. Note there is a
+ function double scalbn(double, int) which is
+ unaffected by this choice."
+}
+
+cdl_option CYGSYM_LIBM_NO_XOPEN_SVID_NAMESPACE_POLLUTION {
+ display "Reduce namespace pollution"
+ default_value 0
+ description "
+ If you do not want to use either the X/Open or
+ SVID3 compatibility modes, you may want to define
+ this option to reduce the chance of namespace
+ pollution. This is particularly likely to occur
+ here as these standards define symbols with
+ names that often appear in applications, such as
+ exception, DOMAIN, OVERFLOW, etc. If your
+ application also used these names, it may cause
+ problems."
+}
+
+cdl_option CYGSEM_LIBM_USE_STDERR {
+ display "Output to stderr for math errors"
+ requires !CYGSEM_LIBM_COMPAT_IEEE_ONLY
+ requires CYGPKG_LIBC_STDIO
+ default_value 0
+ description "
+ The SVID3 standard says that error
+ messages should be output on the stderr console
+ output stream. This option allows this ability
+ to be explicitly controlled. However, this still
+ only has an effect in SVID3 compatibility mode."
+}
diff --git a/ecos/packages/language/c/libm/current/cdl/libm.cdl b/ecos/packages/language/c/libm/current/cdl/libm.cdl
new file mode 100644
index 0000000..912f2a6
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/cdl/libm.cdl
@@ -0,0 +1,365 @@
+# ====================================================================
+#
+# libm.cdl
+#
+# Maths library configuration data
+#
+# ====================================================================
+## ####ECOSGPLCOPYRIGHTBEGIN####
+## -------------------------------------------
+## This file is part of eCos, the Embedded Configurable Operating System.
+## Copyright (C) 1998, 1999, 2000, 2001, 2002, 2010, 2012, 2013 Free Software Foundation, Inc.
+##
+## eCos is free software; you can redistribute it and/or modify it under
+## the terms of the GNU General Public License as published by the Free
+## Software Foundation; either version 2 or (at your option) any later
+## version.
+##
+## eCos 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 General Public License
+## for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with eCos; if not, write to the Free Software Foundation, Inc.,
+## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+##
+## As a special exception, if other files instantiate templates or use
+## macros or inline functions from this file, or you compile this file
+## and link it with other works to produce a work based on this file,
+## this file does not by itself cause the resulting work to be covered by
+## the GNU General Public License. However the source code for this file
+## must still be made available in accordance with section (3) of the GNU
+## General Public License v2.
+##
+## This exception does not invalidate any other reasons why a work based
+## on this file might be covered by the GNU General Public License.
+## -------------------------------------------
+## ####ECOSGPLCOPYRIGHTEND####
+# ====================================================================
+######DESCRIPTIONBEGIN####
+#
+# Author(s): bartv
+# Original data: jlarmour
+# Contributors: visar, ilijak
+# Date: 1999-06-13
+#
+#####DESCRIPTIONEND####
+#
+# ====================================================================
+
+cdl_package CYGPKG_LIBM {
+ display "Math library"
+ doc ref/libc.html
+ description "
+ ISO standard floating point mathematical library
+ containing many useful functions for mathematical
+ calculations."
+
+ compile misc/matherr.c misc/standard.c misc/standard_float.c \
+ misc/compatmode.cxx misc/infconst.c \
+ \
+ double/ieee754-core/e_acos.c double/ieee754-core/e_asin.c \
+ double/ieee754-core/e_atan2.c double/ieee754-core/e_cosh.c \
+ double/ieee754-core/e_exp.c double/ieee754-core/e_fmod.c \
+ double/ieee754-core/e_log.c double/ieee754-core/e_log10.c \
+ double/ieee754-core/e_pow.c \
+ double/ieee754-core/e_rem_pio2.c \
+ double/ieee754-core/e_scalb.c double/ieee754-core/e_sinh.c \
+ double/ieee754-core/e_sqrt.c double/ieee754-core/e_hypot.c \
+ \
+ double/ieee754-api/w_acos.c double/ieee754-api/w_asin.c \
+ double/ieee754-api/w_atan2.c double/ieee754-api/w_cosh.c \
+ double/ieee754-api/w_exp.c double/ieee754-api/w_fmod.c \
+ double/ieee754-api/w_log.c double/ieee754-api/w_log10.c \
+ double/ieee754-api/w_pow.c double/ieee754-api/w_scalb.c \
+ double/ieee754-api/w_sinh.c double/ieee754-api/w_sqrt.c \
+ double/ieee754-api/w_hypot.c \
+ double/ieee754-core/e_gamma.c double/ieee754-api/w_gamma.c \
+ double/ieee754-core/e_gamma_r.c double/ieee754-api/w_gamma_r.c \
+ double/ieee754-core/e_lgamma.c double/ieee754-api/w_lgamma.c \
+ double/ieee754-core/e_lgamma_r.c double/ieee754-api/w_lgamma_r.c \
+ \
+ double/internal/k_cos.c double/internal/k_rem_pio2.c \
+ double/internal/k_sin.c double/internal/k_tan.c \
+ \
+ float/internal/kf_cos.c float/internal/kf_sin.c \
+ float/internal/kf_rem_pio2.c float/internal/kf_tan.c \
+ \
+ double/portable-api/s_atan.c double/portable-api/s_ceil.c \
+ double/portable-api/s_copysign.c \
+ double/portable-api/s_cos.c double/portable-api/s_expm1.c \
+ double/portable-api/s_fabs.c double/portable-api/s_finite.c \
+ double/portable-api/s_floor.c double/portable-api/s_frexp.c \
+ double/portable-api/s_isnan.c double/portable-api/s_ldexp.c \
+ double/portable-api/s_rint.c double/portable-api/s_scalbn.c \
+ double/portable-api/s_sin.c double/portable-api/s_tan.c \
+ double/portable-api/s_modf.c double/portable-api/s_tanh.c \
+ \
+ float/ieee754-core/ef_rem_pio2.c \
+ float/ieee754-core/ef_sqrt.c float/ieee754-api/wf_sqrt.c \
+ float/ieee754-core/ef_pow.c float/ieee754-api/wf_pow.c \
+ float/ieee754-core/ef_exp.c float/ieee754-api/wf_exp.c \
+ float/ieee754-core/ef_asin.c float/ieee754-api/wf_asin.c \
+ float/ieee754-core/ef_log.c float/ieee754-api/wf_log.c \
+ float/ieee754-core/ef_log10.c float/ieee754-api/wf_log10.c \
+ float/ieee754-core/ef_hypot.c float/ieee754-api/wf_hypot.c \
+ float/ieee754-core/ef_fmod.c float/ieee754-api/wf_fmod.c \
+ float/ieee754-core/ef_remainder.c float/ieee754-api/wf_remainder.c \
+ float/ieee754-core/ef_scalb.c float/ieee754-api/wf_scalb.c \
+ float/ieee754-core/ef_acos.c float/ieee754-api/wf_acos.c \
+ float/ieee754-core/ef_atan2.c float/ieee754-api/wf_atan2.c \
+ float/ieee754-core/ef_acosh.c float/ieee754-api/wf_acosh.c \
+ float/ieee754-core/ef_atanh.c float/ieee754-api/wf_atanh.c \
+ float/ieee754-core/ef_cosh.c float/ieee754-api/wf_cosh.c \
+ float/ieee754-core/ef_j0.c float/ieee754-api/wf_j0.c \
+ float/ieee754-core/ef_j1.c float/ieee754-api/wf_j1.c \
+ float/ieee754-core/ef_jn.c float/ieee754-api/wf_jn.c \
+ float/ieee754-core/ef_sinh.c float/ieee754-api/wf_sinh.c \
+ float/portable-api/sf_asinh.c float/portable-api/sf_ilogb.c \
+ float/portable-api/sf_copysign.c \
+ float/portable-api/sf_sin.c \
+ float/portable-api/sf_finite.c float/portable-api/sf_erf.c \
+ float/portable-api/sf_isnan.c float/portable-api/sf_floor.c \
+ float/portable-api/sf_modf.c \
+ float/portable-api/sf_atan.c \
+ float/portable-api/sf_ldexp.c \
+ float/portable-api/sf_nextafter.c \
+ float/portable-api/sf_tan.c float/portable-api/sf_cbrt.c \
+ float/portable-api/sf_expm1.c \
+ float/portable-api/sf_frexp.c \
+ float/portable-api/sf_log1p.c float/portable-api/sf_rint.c \
+ float/portable-api/sf_tanh.c float/portable-api/sf_ceil.c \
+ float/portable-api/sf_fabs.c \
+ float/portable-api/sf_logb.c \
+ float/portable-api/sf_scalbn.c \
+ float/portable-api/sf_cos.c \
+ float/portable-api/sf_significand.c
+
+ # COMPATIBILITY-MODE RELATED CONFIGURATION OPTIONS
+ cdl_component CYGPKG_LIBM_COMPATIBILITY {
+ display "Compatibility mode"
+ flavor none
+ description "
+ These options deal with behaviour related to
+ the various compatibility modes - POSIX, IEEE,
+ X/OPEN and SVID."
+
+ script compat.cdl
+ }
+
+ # THREAD-SAFETY CONFIGURATION OPTIONS
+ cdl_component CYGPKG_LIBM_THREAD_SAFETY {
+ display "Thread safety"
+ flavor none
+ description "
+ This option controls whether the C library has
+ support for thread safe operation in general.
+ This requires eCos kernel support for per-thread
+ data, and adjustment of the stack limit."
+
+ cdl_option CYGSEM_LIBM_THREAD_SAFE_COMPAT_MODE {
+ display "Compatibility mode setting"
+ requires !CYGSEM_LIBM_COMPAT_IEEE_ONLY
+ requires CYGVAR_KERNEL_THREADS_DATA
+ default_value 0
+ description "
+ This option makes the setting of the compatiblity
+ mode be a per-thread property. This directly
+ implies that it also becomes thread-safe."
+ }
+
+ cdl_option CYGSEM_LIBM_THREAD_SAFE_GAMMA_FUNCTIONS {
+ display "gamma() and lgamma()"
+ requires CYGVAR_KERNEL_THREADS_DATA
+ default_value 0
+ description "
+ This option makes the gamma() and lgamma()
+ functions be thread-safe. Note that these
+ functions are identical - they take the log of
+ the absolute value of their argument. The sign
+ of the argument is stored in a variable called
+ signgam. Enabling this option makes signgam
+ a per-thread variable. Note there are also
+ gamma_r() and lgamma_r() alternatives that
+ allow signgam to be passed in by reference as
+ an argument."
+ }
+ }
+
+ # TRACING OPTIONS
+ cdl_component CYGPKG_LIBM_TRACE {
+ display "Tracing output levels in math library"
+ flavor bool
+ requires CYGDBG_USE_TRACING
+ default_value 0
+ description "
+ Tracing support is useful for debugging. Some
+ Math library modules can be configured with
+ different levels of tracing verbosity. These
+ levels can be configured here."
+
+
+ cdl_option CYGNUM_LIBM_COMPATMODE_TRACE_LEVEL {
+ display "Compatibility mode get/set"
+ requires CYGSEM_LIBM_THREAD_SAFE_COMPAT_MODE
+ flavor data
+ legal_values 0 to 1
+ default_value 0
+ description "
+ Trace level for debugging the getting and
+ setting of the compatibility mode when it is
+ configured to be thread-safe."
+ }
+
+ cdl_option CYGNUM_LIBM_SIGNGAM_TRACE_LEVEL {
+ display "signgam variable access"
+ requires CYGSEM_LIBM_THREAD_SAFE_GAMMA_FUNCTIONS
+ flavor data
+ legal_values 0 to 1
+ default_value 0
+ description "
+ Trace level for debugging all accesses to the
+ signgam variable in thread-safe mode."
+ }
+ }
+
+ # OTHER CONFIGURATION SETTINGS
+ cdl_option CYGNUM_LIBM_X_TLOSS {
+ display "Bessel function limit of significance"
+ flavor data
+ default_value 1.41484755040568800000e+16; # pi*(2**52)
+ legal_values 1 to 1e308; # FIXME
+ define X_TLOSS
+ description "
+ For the Bessel functions (j0(), j1(), jn(),
+ y0(), y1(), yn()) this option defines the
+ maximum absolute value of the ordinate
+ before we assume total loss of significance.
+ This number must be a floating-point number (e.g.
+ contains a decimal point), and should be
+ large."
+ }
+
+ define_proc {
+ puts $::cdl_header "/***** proc output start *****/"
+
+ puts $::cdl_header "#include <pkgconf/system.h>"
+
+ # TYPE DEFINITIONS
+ # Compatibility mode selector - required for default below
+
+ puts $::cdl_header "typedef enum {"
+ puts $::cdl_header " CYGNUM_LIBM_COMPAT_UNINIT= 0, // Default state. DO NOT set it to this"
+ puts $::cdl_header " CYGNUM_LIBM_COMPAT_POSIX = 1, // ANSI/POSIX 1003.1"
+ puts $::cdl_header " CYGNUM_LIBM_COMPAT_IEEE = 2, // IEEE-754"
+ puts $::cdl_header " CYGNUM_LIBM_COMPAT_XOPEN = 3, // X/OPEN Portability guide issue 3"
+ puts $::cdl_header " // (XPG3)"
+ puts $::cdl_header " CYGNUM_LIBM_COMPAT_SVID = 4 // System V Interface Definition 3rd"
+ puts $::cdl_header " // edition"
+ puts $::cdl_header "} Cyg_libm_compat_t;"
+ puts $::cdl_header ""
+
+ puts $::cdl_header "/****** proc output end ******/"
+ }
+
+ cdl_component CYGPKG_COMPLEX {
+ display "Complex"
+ flavor bool
+ default_value 1
+
+ description "
+ Complex library provides support for some basic operations
+ on complex numbers as well as mathematical functions in
+ complex domain."
+
+ compile complex/cabs.c complex/cabsf.c \
+ complex/carg.c complex/cargf.c \
+ \
+ complex/creal.c complex/crealf.c \
+ complex/cimag.c complex/cimagf.c \
+ complex/conj.c complex/conjf.c \
+ \
+ complex/cacos.c complex/cacosf.c \
+ complex/cacosh.c complex/cacoshf.c \
+ complex/casin.c complex/casinf.c \
+ complex/casinh.c complex/casinhf.c \
+ complex/catan.c complex/catanf.c \
+ complex/catanh.c complex/catanhf.c \
+ complex/ccos.c complex/ccosf.c \
+ complex/ccosh.c complex/ccoshf.c \
+ complex/cephes_subr.c complex/cephes_subrf.c \
+ complex/cexp.c complex/cexpf.c \
+ complex/clog.c complex/clogf.c \
+ complex/cpow.c complex/cpowf.c \
+ complex/cproj.c complex/cprojf.c \
+ complex/csin.c complex/csinf.c \
+ complex/csinh.c complex/csinhf.c \
+ complex/csqrt.c complex/csqrtf.c \
+ complex/ctan.c complex/ctanf.c \
+ complex/ctanh.c complex/ctanhf.c
+ }
+
+ cdl_component CYGPKG_LIBM_OPTIONS {
+ display "Math library build options"
+ flavor none
+ description "
+ Package specific build options including control over
+ compiler flags used only in building this package,
+ and details of which tests are built."
+
+
+ cdl_option CYGPKG_LIBM_CFLAGS_ADD {
+ display "Additional compiler flags"
+ flavor data
+ no_define
+ default_value { "-fno-strict-aliasing" . \
+ ((!CYGPKG_HAL_I386 && !CYGPKG_HAL_SYNTH_I386) ? "" : " -ffloat-store") }
+ description "
+ This option modifies the set of compiler flags for
+ building the math library. These flags are used in addition
+ to the set of global flags."
+ }
+
+ cdl_option CYGPKG_LIBM_CFLAGS_REMOVE {
+ display "Suppressed compiler flags"
+ flavor data
+ no_define
+ default_value { "" }
+ description "
+ This option modifies the set of compiler flags for
+ building the math library. These flags are removed from
+ the set of global flags if present."
+ }
+
+ cdl_option CYGPKG_LIBM_TESTS {
+ display "Math library tests"
+ flavor data
+ no_define
+ calculated { "tests/vectors/acos tests/vectors/asin \
+ tests/vectors/cos tests/vectors/cosh \
+ tests/vectors/sin tests/vectors/sinh \
+ tests/vectors/atan tests/vectors/atan2 \
+ tests/vectors/tan tests/vectors/tanh \
+ tests/vectors/sqrt tests/vectors/pow \
+ tests/vectors/ceil tests/vectors/floor \
+ tests/vectors/fabs tests/vectors/fmod \
+ tests/vectors/frexp tests/vectors/ldexp \
+ tests/vectors/exp tests/vectors/log tests/vectors/log10 \
+ \
+ tests/vectors/acosf tests/vectors/asinf \
+ tests/vectors/cosf tests/vectors/coshf \
+ tests/vectors/sinf tests/vectors/sinhf \
+ tests/vectors/atanf tests/vectors/atan2f \
+ tests/vectors/tanf tests/vectors/tanhf \
+ tests/vectors/hypotf tests/vectors/sqrtf tests/vectors/powf \
+ tests/vectors/floorf tests/vectors/ceilf \
+ tests/vectors/fabsf tests/vectors/fmodf \
+ tests/vectors/frexpf tests/vectors/ldexpf \
+ tests/vectors/expf tests/vectors/logf tests/vectors/log10f "
+ }
+ description "
+ this option specifies the set of tests for the math library."
+ }
+ }
+}
diff --git a/ecos/packages/language/c/libm/current/include/complex.h b/ecos/packages/language/c/libm/current/include/complex.h
new file mode 100644
index 0000000..0f77c14
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/include/complex.h
@@ -0,0 +1,202 @@
+#ifndef CYGONCE_COMPLEX_H
+#define CYGONCE_COMPLEX_H
+
+//===========================================================================
+//
+// complex.h
+//
+// Standard complex number functions conforming to ANSI and other standards
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2013 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): ilijak
+// Based on: see below
+// Contributors:
+// Date: 2013-06-05
+// Purpose:
+// Description: Standard complex number mathematical functions.
+//
+// Usage: #include <complex.h>
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// This file was derived from a file with following copyright
+
+/* $NetBSD: complex.h,v 1.3 2010/09/15 16:11:30 christos Exp $ */
+
+/*
+ * Written by Matthias Drochner.
+ * Public domain.
+ */
+
+#ifndef _COMPLEX_H
+#define _COMPLEX_H
+#endif
+
+#define complex _Complex
+#define _Complex_I (1.0fi)
+#define I _Complex_I
+
+// 7.3.5 Trigonometric functions
+// 7.3.5.1 The cacos functions
+double complex cacos(double complex);
+float complex cacosf(float complex);
+
+// 7.3.5.2 The casin functions
+double complex casin(double complex);
+float complex casinf(float complex);
+
+// 7.3.5.1 The catan functions
+double complex catan(double complex);
+float complex catanf(float complex);
+
+// 7.3.5.1 The ccos functions
+double complex ccos(double complex);
+float complex ccosf(float complex);
+
+// 7.3.5.1 The csin functions
+double complex csin(double complex);
+float complex csinf(float complex);
+
+// 7.3.5.1 The ctan functions
+double complex ctan(double complex);
+float complex ctanf(float complex);
+
+// 7.3.6 Hyperbolic functions
+// 7.3.6.1 The cacosh functions
+double complex cacosh(double complex);
+float complex cacoshf(float complex);
+
+// 7.3.6.2 The casinh functions
+double complex casinh(double complex);
+float complex casinhf(float complex);
+
+// 7.3.6.3 The catanh functions
+double complex catanh(double complex);
+float complex catanhf(float complex);
+
+// 7.3.6.4 The ccosh functions
+double complex ccosh(double complex);
+float complex ccoshf(float complex);
+
+// 7.3.6.5 The csinh functions
+double complex csinh(double complex);
+float complex csinhf(float complex);
+
+// 7.3.6.6 The ctanh functions
+double complex ctanh(double complex);
+float complex ctanhf(float complex);
+
+// 7.3.7 Exponential and logarithmic functions
+// 7.3.7.1 The cexp functions
+double complex cexp(double complex);
+float complex cexpf(float complex);
+
+// 7.3.7.2 The clog functions
+double complex clog(double complex);
+float complex clogf(float complex);
+
+// 7.3.9 Manipulation functions
+// 7.3.9.2 The cimag functions
+double cimag(double complex);
+float cimagf(float complex);
+//long double cimagl(long double complex);
+
+// 7.3.9.3 The conj functions
+double complex conj(double complex);
+float complex conjf(float complex);
+//long double complex conjl(long double complex);
+
+// 7.3.9.4 The cproj functions
+double complex cproj(double complex);
+float complex cprojf(float complex);
+//long double complex cprojl(long double complex);
+
+// 7.3.9.5 The creal functions
+double creal(double complex);
+float crealf(float complex);
+//long double creall(long double complex);
+
+// 7.3.9.1 The carg functions
+#ifdef CYGSEM_LIBM_IEEE_API_INLINE
+CYGBLD_FORCE_INLINE double
+carg(double complex z)
+{
+ return atan2( cimag(z) , creal(z) );
+}
+
+CYGBLD_FORCE_INLINE float
+cargf(float complex z)
+{
+ return atan2f( cimagf(z) , crealf(z) );
+}
+#else
+double carg(double complex);
+float cargf(float complex);
+#endif
+
+// 7.3.8 Power and absolute-value functions
+// 7.3.8.1 The cabs functions
+#ifdef CYGSEM_LIBM_IEEE_API_INLINE
+CYGBLD_FORCE_INLINE double
+cabs(double complex z)
+{
+ return hypot( creal(z) , cimag(z) );
+}
+
+CYGBLD_FORCE_INLINE float
+cabsf(float complex z)
+{
+ return hypotf( crealf(z) , cimagf(z) );
+}
+#else
+double cabs(double complex) ;
+float cabsf(float complex) ;
+#endif
+
+// 7.3.8.2 The cpow functions
+double complex cpow(double complex, double complex);
+float complex cpowf(float complex, float complex);
+
+// 7.3.8.3 The csqrt functions
+double complex csqrt(double complex);
+float complex csqrtf(float complex);
+
+#endif //CYGONCE_COMPLEX_H
+
+// End of complex.h
diff --git a/ecos/packages/language/c/libm/current/include/math.h b/ecos/packages/language/c/libm/current/include/math.h
new file mode 100644
index 0000000..90a73f5
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/include/math.h
@@ -0,0 +1,627 @@
+#ifndef CYGONCE_LIBM_MATH_H
+#define CYGONCE_LIBM_MATH_H
+//===========================================================================
+//
+// math.h
+//
+// Standard mathematical functions conforming to ANSI and other standards
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2012, 2013 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour, visar, ilijak
+// Date: 1998-02-13
+// Purpose:
+// Description: Standard mathematical functions. These can be
+// configured to conform to ANSI section 7.5. There are also
+// a number of extensions conforming to IEEE-754 and behaviours
+// compatible with other standards
+// Usage: #include <math.h>
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/system.h> // System configuration header
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+#ifdef CYGBLD_HAL_LIBM_H
+# include CYGBLD_HAL_LIBM_H
+#endif
+
+// Inline IEEE754 API macros
+#define CYGBLD_LIBM_INLINE CYGBLD_FORCE_INLINE
+
+#ifdef CYGSEM_LIBM_IEEE_API_INLINE
+
+#define CYGDCL_LIBM_IEEE_API_INLINE_F(_fun) \
+externC double __ieee754_##_fun(double); \
+CYGBLD_LIBM_INLINE double _fun(double x) \
+{ \
+ return __ieee754_##_fun(x); \
+} \
+externC float __ieee754_##_fun##f(float); \
+CYGBLD_LIBM_INLINE float _fun##f(float x) \
+{ \
+ return __ieee754_##_fun##f(x); \
+}
+
+#define CYGDCL_LIBM_IEEE_API_INLINE_FF(_fun) \
+externC double __ieee754_##_fun(double, double); \
+CYGBLD_LIBM_INLINE double _fun(double x, double y) \
+{ \
+ return __ieee754_##_fun(x, y); \
+} \
+externC float __ieee754_##_fun##f(float, float); \
+CYGBLD_LIBM_INLINE float _fun##f(float x, float y) \
+{ \
+ return __ieee754_##_fun##f(x, y); \
+}
+
+#define CYGDCL_LIBM_IEEE_API_INLINE_IF(_fun) \
+externC double __ieee754_##_fun(int, double); \
+CYGBLD_LIBM_INLINE double _fun(int x, double y) \
+{ \
+ return __ieee754_##_fun(x, y); \
+} \
+externC float __ieee754_##_fun##f(int, float); \
+CYGBLD_LIBM_INLINE float _fun##f(int x, float y) \
+{ \
+ return __ieee754_##_fun##f(x, y); \
+}
+
+#define CYGDCL_LIBM_IEEE_API_INLINE_FIP(_fun) \
+externC double __ieee754_##_fun(double, int *); \
+CYGBLD_LIBM_INLINE double _fun(double x, int *y) \
+{ \
+ return __ieee754_##_fun(x, y); \
+} \
+externC float __ieee754_##_fun##f(float, int*); \
+CYGBLD_LIBM_INLINE float _fun##f(float x, int *y) \
+{ \
+ return __ieee754_##_fun##f(x, y); \
+}
+
+#else
+
+#define CYGDCL_LIBM_IEEE_API_INLINE_F(_fun) \
+externC inline double _fun(double); \
+externC float inline _fun##f(float);
+
+#define CYGDCL_LIBM_IEEE_API_INLINE_FF(_fun) \
+externC inline double _fun(double, double); \
+externC inline float _fun##f(float, float);
+
+#define CYGDCL_LIBM_IEEE_API_INLINE_IF(_fun) \
+externC inline double _fun(int, double); \
+externC inline float _fun##f(int, float);
+
+#define CYGDCL_LIBM_IEEE_API_INLINE_FIP(_fun) \
+externC inline double _fun(double, int *); \
+externC inline float _fun##f(float, int *);
+
+#endif
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include <float.h> // Properties of FP representation on this
+ // platform
+#include <sys/ieeefp.h> // Cyg_libm_ieee_[double|float]_shape_type
+
+// CONSTANT DEFINITIONS
+
+// Useful constants.
+
+#define MAXFLOAT 3.40282347e+38F
+
+#define M_E 2.7182818284590452354
+#define M_LOG2E 1.4426950408889634074
+#define M_LOG10E 0.43429448190325182765
+#define M_LN2 _M_LN2
+#define M_LN10 2.30258509299404568402
+#define M_PI 3.14159265358979323846
+#define M_TWOPI (M_PI * 2.0)
+#define M_PI_2 1.57079632679489661923
+#define M_PI_4 0.78539816339744830962
+#define M_3PI_4 2.3561944901923448370E0
+#define M_SQRTPI 1.77245385090551602792981
+#define M_1_PI 0.31830988618379067154
+#define M_2_PI 0.63661977236758134308
+#define M_2_SQRTPI 1.12837916709551257390
+#define M_SQRT2 1.41421356237309504880
+#define M_SQRT1_2 0.70710678118654752440
+#define M_LN2LO 1.9082149292705877000E-10
+#define M_LN2HI 6.9314718036912381649E-1
+#define M_SQRT3 1.73205080756887719000
+#define M_IVLN10 0.43429448190325182765 /* 1 / log(10) */
+#define M_LOG2_E _M_LN2
+#define M_INVLN2 1.4426950408889633870E0 /* 1 / log(2) */
+
+// HUGE_VAL is a positive double (not necessarily representable as a float)
+// representing infinity as specified in ANSI 7.5. cyg_libm_infinity is
+// defined further down
+#if 1
+#define HUGE_VAL (cyg_libm_infinity.value)
+#define HUGE_VALF (cyg_libm_float_infinity.value)
+
+#else
+ /* gcc >= 3.3 implicitly defines builtins for HUGE_VALx values. */
+
+# ifndef HUGE_VAL
+# define HUGE_VAL (__builtin_huge_val())
+# endif
+
+# ifndef HUGE_VALF
+# define HUGE_VALF (__builtin_huge_valf())
+# endif
+
+#endif /* !gcc >= 3.3 */
+
+#ifndef CYGSYM_LIBM_NO_XOPEN_SVID_NAMESPACE_POLLUTION
+// HUGE is defined in System V Interface Definition 3 (SVID3) as the largest
+// finite single precision number
+#define HUGE FLT_MAX // from float.h
+
+// Values used in the type field of struct exception below
+
+#define DOMAIN 1
+#define SING 2
+#define OVERFLOW 3
+#define UNDERFLOW 4
+#define TLOSS 5
+#define PLOSS 6
+
+#ifndef FP_ILOGBNAN
+# define FP_ILOGBNAN INT_MAX
+#endif
+
+// TYPE DEFINITIONS
+
+// Things required to support matherr() ( see comments in <pkgconf/libm.h>)
+
+struct exception {
+ int type; // One of DOMAIN, SING, OVERFLOW, UNDERFLOW, TLOSS, PLOSS
+ char *name; // Name of the function generating the exception
+ double arg1; // First argument to the function
+ double arg2; // Second argument to the function
+ double retval; // Value to be returned - can be altered by matherr()
+};
+
+struct exceptionf {
+ int type; // One of DOMAIN, SING, OVERFLOW, UNDERFLOW, TLOSS, PLOSS
+ char *name; // Name of the function generating the exception
+ float arg1; // First argument to the function
+ float arg2; // Second argument to the function
+ float retval; // Value to be returned - can be altered by matherr()
+};
+
+#endif // ifndef CYGSYM_LIBM_NO_XOPEN_SVID_NAMESPACE_POLLUTION
+
+// GLOBALS
+
+externC const Cyg_libm_ieee_double_shape_type cyg_libm_infinity;
+externC const Cyg_libm_ieee_float_shape_type cyg_libm_float_infinity;
+
+//===========================================================================
+// FUNCTION PROTOTYPES
+
+// Functions not part of a standard
+
+// This retrieves a pointer to the current compatibility mode of the Math
+// library. See <pkgconf/libm.h> for the definition of Cyg_libm_compat_t
+
+#ifdef CYGSEM_LIBM_THREAD_SAFE_COMPAT_MODE
+
+externC Cyg_libm_compat_t
+cyg_libm_get_compat_mode( void );
+
+externC Cyg_libm_compat_t
+cyg_libm_set_compat_mode( Cyg_libm_compat_t );
+
+#else
+
+externC Cyg_libm_compat_t cygvar_libm_compat_mode;
+
+// Defined as static inline as it is unlikely that anyone wants to take the
+// address of these functions.
+//
+// This returns the current compatibility mode
+
+static inline Cyg_libm_compat_t
+cyg_libm_get_compat_mode( void )
+{
+ return cygvar_libm_compat_mode;
+}
+
+// This sets the compatibility mode, and returns the previous mode
+static inline Cyg_libm_compat_t
+cyg_libm_set_compat_mode( Cyg_libm_compat_t math_compat_mode)
+{
+ Cyg_libm_compat_t oldmode;
+
+ oldmode = cygvar_libm_compat_mode;
+ cygvar_libm_compat_mode = math_compat_mode;
+ return oldmode;
+}
+
+#endif // ifdef CYGSEM_LIBM_THREAD_SAFE_COMPAT_MODE
+
+#ifdef CYGSEM_LIBM_THREAD_SAFE_GAMMA_FUNCTIONS
+
+// FIXME: these need to be documented and signgam mentioned as non-ISO
+// This returns the address of the signgam variable used by the gamma*() and
+// lgamma*() functions
+externC int *
+cyg_libm_get_signgam_p( void );
+
+#define signgam (*cyg_libm_get_signgam_p())
+
+#else
+
+externC int signgam;
+
+#endif // ifdef CYGSEM_LIBM_THREAD_SAFE_GAMMA_FUNCTIONS
+
+//===========================================================================
+// Standard ANSI functions. Angles are always in radians
+
+// Trigonometric functions - ANSI 7.5.2
+
+// arc cosine i.e. inverse cos
+CYGDCL_LIBM_IEEE_API_INLINE_F(acos)
+
+// arc sine i.e. inverse sin
+CYGDCL_LIBM_IEEE_API_INLINE_F(asin)
+
+externC double
+atan( double ); // arc tan i.e. inverse tan
+
+externC float
+atanf ( float );
+
+// arc tan of (first arg/second arg) using signs
+// of args to determine quadrant
+CYGDCL_LIBM_IEEE_API_INLINE_FF(atan2)
+
+externC double
+cos( double ); // cosine
+
+externC float
+cosf( float );
+
+externC double
+sin( double ); // sine
+
+externC float
+sinf( float );
+
+externC double
+tan( double ); // tangent
+
+externC float
+tanf ( float );
+
+// Hyperbolic functions - ANSI 7.5.3
+
+// hyperbolic cosine
+CYGDCL_LIBM_IEEE_API_INLINE_F(cosh)
+
+// hyperbolic sine
+CYGDCL_LIBM_IEEE_API_INLINE_F(sinh)
+
+externC double
+tanh( double ); // hyperbolic tangent
+
+externC float
+tanhf ( float );
+
+// Exponential and Logarithmic Functions - ANSI 7.5.4
+
+CYGDCL_LIBM_IEEE_API_INLINE_F(exp)
+
+externC double
+frexp( double, int * ); // break number into normalized fraction (returned)
+ // and integral power of 2 (second arg)
+externC float
+frexpf( float, int * );
+
+externC double
+ldexp( double, int ); // multiples number by integral power of 2
+
+externC float
+ldexpf( float, int );
+
+// natural logarithm
+CYGDCL_LIBM_IEEE_API_INLINE_F(log)
+
+// base ten logarithm
+CYGDCL_LIBM_IEEE_API_INLINE_F(log10)
+
+externC double
+modf( double, double * ); // break number into integral and fractional
+ // parts, each of which has same sign as arg.
+externC float // It returns signed fractional part, and
+modff ( float, float *); // puts integral part in second arg
+
+// Power Functions - ANSI 7.5.5
+
+// (1st arg) to the power of (2nd arg)
+CYGDCL_LIBM_IEEE_API_INLINE_FF(pow)
+
+// square root
+CYGDCL_LIBM_IEEE_API_INLINE_F(sqrt)
+
+// Nearest integer, absolute value and remainder functions - ANSI 7.5.6
+
+externC double
+ceil( double ); // smallest integer >= arg
+externC float
+ceilf ( float );
+
+externC double
+fabs( double ); // absolute value
+externC float
+fabsf ( float );
+
+externC double
+floor( double ); // largest integer <= arg
+externC float
+floorf ( float );
+
+CYGDCL_LIBM_IEEE_API_INLINE_FF(fmod)
+
+//===========================================================================
+// Other standard functions
+
+#ifndef CYGSYM_LIBM_NO_XOPEN_SVID_NAMESPACE_POLLUTION
+externC int
+matherr( struct exception * ); // User-overridable error handling - see
+ // <pkgconf/libm.h> for a discussion
+externC int
+matherrf( struct exceptionf * );
+#endif
+
+// FIXME: from here needs to be documented and mentioned as non-ISO
+// Arc Hyperbolic trigonometric functions
+
+// Arc hyperbolic cos i.e. inverse cosh
+CYGDCL_LIBM_IEEE_API_INLINE_F(acosh)
+
+// Arc hyperbolic sin i.e. inverse sinh
+CYGDCL_LIBM_IEEE_API_INLINE_F(asinh)
+
+// Arc hyperbolic tan i.e. inverse tanh
+CYGDCL_LIBM_IEEE_API_INLINE_F(atanh)
+
+// Error functions
+
+externC double // Error function, such that
+erf( double ); // erf(x) = 2/sqrt(pi) * integral from
+ // 0 to x of e**(-t**2) dt
+externC float
+erff ( float );
+
+externC double // Complementary error function - simply
+erfc( double ); // 1.0 - erf(x)
+
+externC float
+erfcf ( float );
+
+// Gamma functions
+
+// Logarithm of the absolute value of the
+// gamma function of the argument. The
+// integer signgam is used to store the
+// sign of the gamma function of the arg
+CYGDCL_LIBM_IEEE_API_INLINE_F(lgamma)
+
+// Re-entrant version of the above, where
+// the user passes the location of signgam
+// as the second argument
+CYGDCL_LIBM_IEEE_API_INLINE_FIP(lgamma_r)
+
+// Identical to lgamma()!
+// The reasons for this are historical,
+// and may be changed in future standards
+//
+// To get the real gamma function, you should
+// use: l=lgamma(x); g=signgam*exp(l);
+//
+// Do not just do signgam*exp(lgamma(x))
+// as lgamma() modifies signgam
+CYGDCL_LIBM_IEEE_API_INLINE_F(gamma)
+
+externC double
+gamma_r( double, int * ); // Identical to lgamma_r(). See above.
+
+externC float
+gammaf_r( float, int * );
+
+
+// Bessel functions
+
+// Zero-th order Bessel function of the
+// first kind at the ordinate of the argument
+CYGDCL_LIBM_IEEE_API_INLINE_F(j0)
+
+// First-order Bessel function of the
+// first kind at the ordinate of the argument
+CYGDCL_LIBM_IEEE_API_INLINE_F(j1)
+
+// Bessel function of the first kind of the
+// order of the first argument at the
+// ordinate of the second argument
+CYGDCL_LIBM_IEEE_API_INLINE_IF(jn)
+
+externC double // Zero-th order Bessel function of the
+y0( double ); // second kind at the ordinate of the
+
+externC float
+y0f( float );
+
+externC double // First-order Bessel function of the
+y1( double ); // second kind at the ordinate of the
+ // argument
+externC float
+y1f( float );
+
+externC double // Bessel function of the second kind of the
+yn( int, double ); // order of the first argument at the
+ // ordinate of the second argument
+externC float
+ynf( int, float );
+
+// scalb*()
+
+externC double // scalbn(x,n) returns x*(2**n)
+scalbn( double, int );
+
+externC float
+scalbnf ( float, int);
+
+#ifdef CYGFUN_LIBM_SVID3_scalb
+
+// as above except n is a floating point arg
+CYGDCL_LIBM_IEEE_API_INLINE_FF(scalb)
+
+#else
+externC double
+scalb( double, int ); // as scalbn()
+
+externC float
+scalbf( float, int );
+
+#endif // ifdef CYGFUN_LIBM_SVID3_scalb
+
+// And the rest
+
+externC double
+cbrt( double ); // Cube Root
+
+externC float
+cbrtf( float );
+
+// hypotenuse function, defined such that:
+// hypotf(x,y)==sqrt(x**2 + y**2)
+
+CYGDCL_LIBM_IEEE_API_INLINE_FF(hypot)
+
+externC int // whether the argument is NaN
+isnan( double );
+
+externC int
+isnanf ( float );
+
+externC int // wheteher the argument is infinite
+isinf(double);
+
+externC int
+isinff(float);
+
+externC int
+finite( double ); // whether the argument is finite
+
+externC int
+finitef ( float );
+
+externC double // logb returns the binary exponent of its
+logb( double ); // argument as an integral value
+ // This is not recommended - use ilogb
+externC float // instead
+logbf ( float );
+
+externC int // As for logb, but has the more correct
+ilogb( double ); // return value type of int
+
+externC int
+ilogbf ( float );
+
+externC double // nextafter(x,y) returns the next
+nextafter( double, double ); // representable floating point number
+ // adjacent to x in the direction of y
+externC float // i.e. the next greater FP if y>x, the next
+nextafterf ( float, float ); // less FP if y<x, or just x if y==x
+
+// when x is divided by y
+CYGDCL_LIBM_IEEE_API_INLINE_FF(remainder)
+
+externC double // IEEE Test Vector
+significand( double ); // significand(x) computes:
+ // scalb(x, (double) -ilogb(x))
+externC float
+significandf( float );
+
+//===========================================================================
+// Non-standard functions
+
+externC double // copysign(x,y) returns a number with
+copysign ( double, double ); // the absolute value of x and the sign of y
+
+externC float
+copysignf ( float, float );
+
+externC double // rounds to an integer according to the
+rint( double ); // current rounding mode
+
+externC float
+rintf ( float );
+
+
+// BSD functions
+
+externC double // expm1(x) returns the equivalent of
+expm1( double ); // (exp(x) - 1) but more accurately when
+ // x tends to zero
+externC float
+expm1f ( float );
+
+externC double // log1p(x) returns the equivalent of
+log1p( double ); // log(1+x) but more accurately when
+ // x tends to zero
+externC float
+log1pf ( float );
+
+#endif // ifdef CYGPKG_LIBM
+
+#endif // CYGONCE_LIBM_MATH_H multiple inclusion protection
+
+// EOF math.h
diff --git a/ecos/packages/language/c/libm/current/include/sys/ieeefp.h b/ecos/packages/language/c/libm/current/include/sys/ieeefp.h
new file mode 100644
index 0000000..846c96f
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/include/sys/ieeefp.h
@@ -0,0 +1,234 @@
+#ifndef CYGONCE_LIBM_SYS_IEEEFP_H
+#define CYGONCE_LIBM_SYS_IEEEFP_H
+//===========================================================================
+//
+// ieeefp.h
+//
+// Definitions specific to IEEE-754 floating-point format
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1998-02-13
+// Purpose:
+// Description: Definitions specific to IEEE-754 floating-point format
+// Usage: #include <sys/ieeefp.h>
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+ // including endian-ness
+
+#if (CYG_BYTEORDER == CYG_MSBFIRST) // Big endian
+
+// Note: there do not seem to be any current machines which are Big Endian but
+// have a mixed up double layout.
+
+typedef union
+{
+ cyg_int32 asi32[2];
+
+ cyg_int64 asi64;
+
+ double value;
+
+ struct
+ {
+ unsigned int sign : 1;
+ unsigned int exponent: 11;
+ unsigned int fraction0:4;
+ unsigned int fraction1:16;
+ unsigned int fraction2:16;
+ unsigned int fraction3:16;
+
+ } number;
+
+ struct
+ {
+ unsigned int sign : 1;
+ unsigned int exponent: 11;
+ unsigned int quiet:1;
+ unsigned int function0:3;
+ unsigned int function1:16;
+ unsigned int function2:16;
+ unsigned int function3:16;
+ } nan;
+
+ struct
+ {
+ cyg_uint32 msw;
+ cyg_uint32 lsw;
+ } parts;
+
+
+} Cyg_libm_ieee_double_shape_type;
+
+
+typedef union
+{
+ cyg_int32 asi32;
+
+ float value;
+
+ struct
+ {
+ unsigned int sign : 1;
+ unsigned int exponent: 8;
+ unsigned int fraction0: 7;
+ unsigned int fraction1: 16;
+ } number;
+
+ struct
+ {
+ unsigned int sign:1;
+ unsigned int exponent:8;
+ unsigned int quiet:1;
+ unsigned int function0:6;
+ unsigned int function1:16;
+ } nan;
+
+} Cyg_libm_ieee_float_shape_type;
+
+
+#else // Little endian
+
+typedef union
+{
+ cyg_int32 asi32[2];
+
+ cyg_int64 asi64;
+
+ double value;
+
+ struct
+ {
+#if (CYG_DOUBLE_BYTEORDER == CYG_MSBFIRST) // Big endian
+ unsigned int fraction1:16;
+ unsigned int fraction0: 4;
+ unsigned int exponent :11;
+ unsigned int sign : 1;
+ unsigned int fraction3:16;
+ unsigned int fraction2:16;
+#else
+ unsigned int fraction3:16;
+ unsigned int fraction2:16;
+ unsigned int fraction1:16;
+ unsigned int fraction0: 4;
+ unsigned int exponent :11;
+ unsigned int sign : 1;
+#endif
+ } number;
+
+ struct
+ {
+#if (CYG_DOUBLE_BYTEORDER == CYG_MSBFIRST) // Big endian
+ unsigned int function1:16;
+ unsigned int function0:3;
+ unsigned int quiet:1;
+ unsigned int exponent: 11;
+ unsigned int sign : 1;
+ unsigned int function3:16;
+ unsigned int function2:16;
+#else
+ unsigned int function3:16;
+ unsigned int function2:16;
+ unsigned int function1:16;
+ unsigned int function0:3;
+ unsigned int quiet:1;
+ unsigned int exponent: 11;
+ unsigned int sign : 1;
+#endif
+ } nan;
+
+ struct
+ {
+#if (CYG_DOUBLE_BYTEORDER == CYG_MSBFIRST) // Big endian
+ cyg_uint32 msw;
+ cyg_uint32 lsw;
+#else
+ cyg_uint32 lsw;
+ cyg_uint32 msw;
+#endif
+ } parts;
+
+} Cyg_libm_ieee_double_shape_type;
+
+
+typedef union
+{
+ cyg_int32 asi32;
+
+ float value;
+
+ struct
+ {
+ unsigned int fraction0: 7;
+ unsigned int fraction1: 16;
+ unsigned int exponent: 8;
+ unsigned int sign : 1;
+ } number;
+
+ struct
+ {
+ unsigned int function1:16;
+ unsigned int function0:6;
+ unsigned int quiet:1;
+ unsigned int exponent:8;
+ unsigned int sign:1;
+ } nan;
+
+} Cyg_libm_ieee_float_shape_type;
+
+#endif // little-endian
+
+
+#endif // ifdef CYGPKG_LIBM
+
+#endif // CYGONCE_LIBM_SYS_IEEEFP_H multiple inclusion protection
+
+// EOF ieeefp.h
diff --git a/ecos/packages/language/c/libm/current/src/complex/cabs.c b/ecos/packages/language/c/libm/current/src/complex/cabs.c
new file mode 100644
index 0000000..2750fab
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/complex/cabs.c
@@ -0,0 +1,53 @@
+/* $NetBSD: cabs.c,v 1.1 2007/08/20 16:01:30 drochner Exp $ */
+
+/*
+ * Written by Matthias Drochner <drochner@NetBSD.org>.
+ * Public domain.
+ *
+ * imported and modified include for newlib 2010/10/03
+ * Marco Atzeri <marco_atzeri@yahoo.it>
+ */
+
+/*
+FUNCTION
+ <<cabs>>, <<cabsf>>---complex absolute-value
+
+INDEX
+ cabs
+INDEX
+ cabsf
+
+ANSI_SYNOPSIS
+ #include <complex.h>
+ double cabs(double complex <[z]>);
+ float cabsf(float complex <[z]>);
+
+
+DESCRIPTION
+ These functions compute compute the complex absolute value
+ (also called norm, modulus, or magnitude) of <[z]>.
+
+ <<cabsf>> is identical to <<cabs>>, except that it performs
+ its calculations on <<floats complex>>.
+
+RETURNS
+ The cabs functions return the complex absolute value.
+
+PORTABILITY
+ <<cabs>> and <<cabsf>> are ISO C99
+
+QUICKREF
+ <<cabs>> and <<cabsf>> are ISO C99
+
+*/
+
+
+#include <complex.h>
+#include <math.h>
+
+double
+cabs(double complex z)
+{
+
+ return hypot( creal(z), cimag(z) );
+}
diff --git a/ecos/packages/language/c/libm/current/src/complex/cabsf.c b/ecos/packages/language/c/libm/current/src/complex/cabsf.c
new file mode 100644
index 0000000..635e23e
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/complex/cabsf.c
@@ -0,0 +1,19 @@
+/* $NetBSD: cabsf.c,v 1.1 2007/08/20 16:01:30 drochner Exp $ */
+
+/*
+ * Written by Matthias Drochner <drochner@NetBSD.org>.
+ * Public domain.
+ *
+ * imported and modified include for newlib 2010/10/03
+ * Marco Atzeri <marco_atzeri@yahoo.it>
+ */
+
+#include <complex.h>
+#include <math.h>
+
+float
+cabsf(float complex z)
+{
+
+ return hypotf( crealf(z), cimagf(z) );
+}
diff --git a/ecos/packages/language/c/libm/current/src/complex/cacos.c b/ecos/packages/language/c/libm/current/src/complex/cacos.c
new file mode 100644
index 0000000..86e1198
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/complex/cacos.c
@@ -0,0 +1,99 @@
+/* $NetBSD: cacos.c,v 1.1 2007/08/20 16:01:30 drochner Exp $ */
+
+/*-
+ * Copyright (c) 2007 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * This code is derived from software written by Stephen L. Moshier.
+ * It is redistributed by the NetBSD Foundation by permission of the author.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * imported and modified include for newlib 2010/10/03
+ * Marco Atzeri <marco_atzeri@yahoo.it>
+ */
+
+/*
+FUNCTION
+ <<cacos>>, <<cacosf>>---complex arc cosine
+
+INDEX
+ cacos
+INDEX
+ cacosf
+
+ANSI_SYNOPSIS
+ #include <complex.h>
+ double complex cacos(double complex <[z]>);
+ float complex cacosf(float complex <[z]>);
+
+
+DESCRIPTION
+ These functions compute the complex arc cosine of <[z]>,
+ with branch cuts outside the interval [-1, +1] along the real axis.
+
+ <<cacosf>> is identical to <<cacos>>, except that it performs
+ its calculations on <<floats complex>>.
+
+RETURNS
+ @ifnottex
+ These functions return the complex arc cosine value, in the range
+ of a strip mathematically unbounded along the imaginary axis
+ and in the interval [0, pi] along the real axis.
+ @end ifnottex
+ @tex
+ These functions return the complex arc cosine value, in the range
+ of a strip mathematically unbounded along the imaginary axis
+ and in the interval [<<0>>, $\pi$] along the real axis.
+ @end tex
+
+PORTABILITY
+ <<cacos>> and <<cacosf>> are ISO C99
+
+QUICKREF
+ <<cacos>> and <<cacosf>> are ISO C99
+
+*/
+
+#include <complex.h>
+#include <math.h>
+
+double complex
+cacos(double complex z)
+{
+ double complex w;
+
+ /* FIXME: The original NetBSD code results in an ICE when trying to
+ build this function on ARM/Thumb using gcc 4.5.1. For now we use
+ a hopefully temporary workaround. */
+#if 0
+ w = casin(z);
+ w = (M_PI_2 - creal(w)) - cimag(w) * I;
+#else
+ double complex tmp0, tmp1;
+
+ tmp0 = casin(z);
+ tmp1 = M_PI_2 - creal(tmp0);
+ w = tmp1 - (cimag(tmp0) * I);
+#endif
+ return w;
+}
diff --git a/ecos/packages/language/c/libm/current/src/complex/cacosf.c b/ecos/packages/language/c/libm/current/src/complex/cacosf.c
new file mode 100644
index 0000000..3874dd5
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/complex/cacosf.c
@@ -0,0 +1,46 @@
+/* $NetBSD: cacosf.c,v 1.1 2007/08/20 16:01:30 drochner Exp $ */
+
+/*-
+ * Copyright (c) 2007 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * This code is derived from software written by Stephen L. Moshier.
+ * It is redistributed by the NetBSD Foundation by permission of the author.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * imported and modified include for newlib 2010/10/03
+ * Marco Atzeri <marco_atzeri@yahoo.it>
+ */
+
+#include <complex.h>
+#include <math.h>
+
+float complex
+cacosf(float complex z)
+{
+ float complex w;
+
+ w = casinf(z);
+ w = ((float)M_PI_2 - crealf(w)) - cimagf(w) * I;
+ return w;
+}
diff --git a/ecos/packages/language/c/libm/current/src/complex/cacosh.c b/ecos/packages/language/c/libm/current/src/complex/cacosh.c
new file mode 100644
index 0000000..3d42c40
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/complex/cacosh.c
@@ -0,0 +1,93 @@
+/* $NetBSD: cacosh.c,v 1.2 2009/08/03 19:41:32 drochner Exp $ */
+
+/*-
+ * Copyright (c) 2007 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * This code is derived from software written by Stephen L. Moshier.
+ * It is redistributed by the NetBSD Foundation by permission of the author.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * imported and modified include for newlib 2010/10/03
+ * Marco Atzeri <marco_atzeri@yahoo.it>
+ */
+
+/*
+FUNCTION
+ <<cacosh>>, <<cacoshf>>---complex arc hyperbolic cosine
+
+INDEX
+ cacosh
+INDEX
+ cacoshf
+
+ANSI_SYNOPSIS
+ #include <complex.h>
+ double complex cacosh(double complex <[z]>);
+ float complex cacoshf(float complex <[z]>);
+
+
+DESCRIPTION
+ These functions compute the complex arc hyperbolic cosine of <[z]>,
+ with a branch cut at values less than 1 along the real axis.
+
+ <<cacoshf>> is identical to <<cacosh>>, except that it performs
+ its calculations on <<floats complex>>.
+
+RETURNS
+ @ifnottex
+ These functions return the complex arc hyperbolic cosine value,
+ in the range of a half-strip of non-negative values along the
+ real axis and in the interval [-i * pi, +i * pi] along the
+ imaginary axis.
+ @end ifnottex
+ @tex
+ These functions return the complex arc hyperbolic cosine value,
+ in the range of a half-strip of non-negative values along the
+ real axis and in the interval [$-i\pi$, $+i\pi$] along the
+ imaginary axis.
+ @end tex
+
+PORTABILITY
+ <<cacosh>> and <<cacoshf>> are ISO C99
+
+QUICKREF
+ <<cacosh>> and <<cacoshf>> are ISO C99
+
+*/
+
+
+#include <complex.h>
+
+double complex
+cacosh(double complex z)
+{
+ double complex w;
+
+#if 0 /* does not give the principal value */
+ w = I * cacos(z);
+#else
+ w = clog(z + csqrt(z + 1) * csqrt(z - 1));
+#endif
+ return w;
+}
diff --git a/ecos/packages/language/c/libm/current/src/complex/cacoshf.c b/ecos/packages/language/c/libm/current/src/complex/cacoshf.c
new file mode 100644
index 0000000..41a557a
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/complex/cacoshf.c
@@ -0,0 +1,48 @@
+/* $NetBSD: cacoshf.c,v 1.2 2009/08/03 19:41:32 drochner Exp $ */
+
+/*-
+ * Copyright (c) 2007 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * This code is derived from software written by Stephen L. Moshier.
+ * It is redistributed by the NetBSD Foundation by permission of the author.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * imported and modified include for newlib 2010/10/03
+ * Marco Atzeri <marco_atzeri@yahoo.it>
+ */
+
+#include <complex.h>
+
+float complex
+cacoshf(float complex z)
+{
+ float complex w;
+
+#if 0 /* does not give the principal value */
+ w = I * cacosf(z);
+#else
+ w = clogf(z + csqrtf(z + 1) * csqrtf(z - 1));
+#endif
+ return w;
+}
diff --git a/ecos/packages/language/c/libm/current/src/complex/carg.c b/ecos/packages/language/c/libm/current/src/complex/carg.c
new file mode 100644
index 0000000..0447420
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/complex/carg.c
@@ -0,0 +1,59 @@
+/* $NetBSD: carg.c,v 1.1 2007/08/20 16:01:31 drochner Exp $ */
+
+/*
+ * Written by Matthias Drochner <drochner@NetBSD.org>.
+ * Public domain.
+ *
+ * imported and modified include for newlib 2010/10/03
+ * Marco Atzeri <marco_atzeri@yahoo.it>
+ */
+
+/*
+FUNCTION
+ <<carg>>, <<cargf>>---argument (phase angle)
+
+INDEX
+ carg
+INDEX
+ cargf
+
+ANSI_SYNOPSIS
+ #include <complex.h>
+ double carg(double complex <[z]>);
+ float cargf(float complex <[z]>);
+
+
+DESCRIPTION
+ These functions compute the argument (also called phase angle)
+ of <[z]>, with a branch cut along the negative real axis.
+
+ <<cargf>> is identical to <<carg>>, except that it performs
+ its calculations on <<floats complex>>.
+
+RETURNS
+ @ifnottex
+ The carg functions return the value of the argument in the
+ interval [-pi, +pi]
+ @end ifnottex
+ @tex
+ The carg functions return the value of the argument in the
+ interval [$-\pi$, $+\pi$]
+ @end tex
+
+PORTABILITY
+ <<carg>> and <<cargf>> are ISO C99
+
+QUICKREF
+ <<carg>> and <<cargf>> are ISO C99
+
+*/
+
+#include <complex.h>
+#include <math.h>
+
+double
+carg(double complex z)
+{
+
+ return atan2( cimag(z) , creal(z) );
+}
diff --git a/ecos/packages/language/c/libm/current/src/complex/cargf.c b/ecos/packages/language/c/libm/current/src/complex/cargf.c
new file mode 100644
index 0000000..1683d21
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/complex/cargf.c
@@ -0,0 +1,19 @@
+/* $NetBSD: cargf.c,v 1.1 2007/08/20 16:01:31 drochner Exp $ */
+
+/*
+ * Written by Matthias Drochner <drochner@NetBSD.org>.
+ * Public domain.
+ *
+ * imported and modified include for newlib 2010/10/03
+ * Marco Atzeri <marco_atzeri@yahoo.it>
+ */
+
+#include <complex.h>
+#include <math.h>
+
+float
+cargf(float complex z)
+{
+
+ return atan2f( cimagf(z), crealf(z) );
+}
diff --git a/ecos/packages/language/c/libm/current/src/complex/casin.c b/ecos/packages/language/c/libm/current/src/complex/casin.c
new file mode 100644
index 0000000..5019fd8
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/complex/casin.c
@@ -0,0 +1,165 @@
+/* $NetBSD: casin.c,v 1.1 2007/08/20 16:01:31 drochner Exp $ */
+
+/*-
+ * Copyright (c) 2007 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * This code is derived from software written by Stephen L. Moshier.
+ * It is redistributed by the NetBSD Foundation by permission of the author.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * imported and modified include for newlib 2010/10/03
+ * Marco Atzeri <marco_atzeri@yahoo.it>
+ */
+
+/*
+FUNCTION
+ <<casin>>, <<casinf>>---complex arc sine
+
+INDEX
+ casin
+INDEX
+ casinf
+
+ANSI_SYNOPSIS
+ #include <complex.h>
+ double complex casin(double complex <[z]>);
+ float complex casinf(float complex <[z]>);
+
+
+DESCRIPTION
+ These functions compute the complex arc sine of <[z]>,
+ with branch cuts outside the interval [-1, +1] along the real axis.
+
+ <<casinf>> is identical to <<casin>>, except that it performs
+ its calculations on <<floats complex>>.
+
+RETURNS
+ @ifnottex
+ These functions return the complex arc sine value, in the range
+ of a strip mathematically unbounded along the imaginary axis
+ and in the interval [-pi/2, +pi/2] along the real axis.
+ @end ifnottex
+ @tex
+ These functions return the complex arc sine value, in the range
+ of a strip mathematically unbounded along the imaginary axis
+ and in the interval [$-\pi/2$, $+\pi/2$] along the real axis.
+ @end tex
+
+PORTABILITY
+ <<casin>> and <<casinf>> are ISO C99
+
+QUICKREF
+ <<casin>> and <<casinf>> are ISO C99
+
+*/
+
+
+#include <complex.h>
+#include <math.h>
+
+#ifdef __weak_alias
+__weak_alias(casin, _casin)
+#endif
+
+double complex
+casin(double complex z)
+{
+ double complex w;
+ double complex ca, ct, zz, z2;
+ double x, y;
+
+ x = creal(z);
+ y = cimag(z);
+
+#if 0 /* MD: test is incorrect, casin(>1) is defined */
+ if (y == 0.0) {
+ if (fabs(x) > 1.0) {
+ w = M_PI_2 + 0.0 * I;
+#if 0
+ mtherr ("casin", DOMAIN);
+#endif
+ } else {
+ w = asin(x) + 0.0 * I;
+ }
+ return w;
+ }
+#endif
+
+/* Power series expansion */
+/*
+b = cabs(z);
+if( b < 0.125 )
+{
+z2.r = (x - y) * (x + y);
+z2.i = 2.0 * x * y;
+
+cn = 1.0;
+n = 1.0;
+ca.r = x;
+ca.i = y;
+sum.r = x;
+sum.i = y;
+do
+ {
+ ct.r = z2.r * ca.r - z2.i * ca.i;
+ ct.i = z2.r * ca.i + z2.i * ca.r;
+ ca.r = ct.r;
+ ca.i = ct.i;
+
+ cn *= n;
+ n += 1.0;
+ cn /= n;
+ n += 1.0;
+ b = cn/n;
+
+ ct.r *= b;
+ ct.i *= b;
+ sum.r += ct.r;
+ sum.i += ct.i;
+ b = fabs(ct.r) + fabs(ct.i);
+ }
+while( b > MACHEP );
+w->r = sum.r;
+w->i = sum.i;
+return;
+}
+*/
+
+
+ ca = x + y * I;
+ ct = ca * I;
+ /* sqrt( 1 - z*z) */
+ /* cmul( &ca, &ca, &zz ) */
+ /*x * x - y * y */
+ zz = (x - y) * (x + y) + (2.0 * x * y) * I;
+
+ zz = 1.0 - creal(zz) - cimag(zz) * I;
+ z2 = csqrt(zz);
+
+ zz = ct + z2;
+ zz = clog(zz);
+ /* multiply by 1/i = -i */
+ w = zz * (-1.0 * I);
+ return w;
+}
diff --git a/ecos/packages/language/c/libm/current/src/complex/casinf.c b/ecos/packages/language/c/libm/current/src/complex/casinf.c
new file mode 100644
index 0000000..9a9f759
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/complex/casinf.c
@@ -0,0 +1,122 @@
+/* $NetBSD: casinf.c,v 1.1 2007/08/20 16:01:31 drochner Exp $ */
+
+/*-
+ * Copyright (c) 2007 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * This code is derived from software written by Stephen L. Moshier.
+ * It is redistributed by the NetBSD Foundation by permission of the author.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * imported and modified include for newlib 2010/10/03
+ * Marco Atzeri <marco_atzeri@yahoo.it>
+ */
+
+#include <complex.h>
+#include <math.h>
+
+#ifdef __weak_alias
+__weak_alias(casinf, _casinf)
+#endif
+
+float complex
+casinf(float complex z)
+{
+ float complex w;
+ float complex ca, ct, zz, z2;
+ float x, y;
+
+ x = crealf(z);
+ y = cimagf(z);
+
+#if 0 /* MD: test is incorrect, casin(>1) is defined */
+ if (y == 0.0f) {
+ if (fabsf(x) > 1.0) {
+ w = M_PI_2 + 0.0f * I;
+#if 0
+ mtherr ("casin", DOMAIN);
+#endif
+ } else {
+ w = asinf(x) + 0.0f * I;
+ }
+ return w;
+ }
+#endif
+
+/* Power series expansion */
+/*
+b = cabsf(z);
+if( b < 0.125 )
+{
+z2.r = (x - y) * (x + y);
+z2.i = 2.0 * x * y;
+
+cn = 1.0;
+n = 1.0;
+ca.r = x;
+ca.i = y;
+sum.r = x;
+sum.i = y;
+do
+ {
+ ct.r = z2.r * ca.r - z2.i * ca.i;
+ ct.i = z2.r * ca.i + z2.i * ca.r;
+ ca.r = ct.r;
+ ca.i = ct.i;
+
+ cn *= n;
+ n += 1.0;
+ cn /= n;
+ n += 1.0;
+ b = cn/n;
+
+ ct.r *= b;
+ ct.i *= b;
+ sum.r += ct.r;
+ sum.i += ct.i;
+ b = fabsf(ct.r) + fabsf(ct.i);
+ }
+while( b > MACHEP );
+w->r = sum.r;
+w->i = sum.i;
+return;
+}
+*/
+
+
+ ca = x + y * I;
+ ct = ca * I;
+ /* sqrt( 1 - z*z) */
+ /* cmul( &ca, &ca, &zz ) */
+ /*x * x - y * y */
+ zz = (x - y) * (x + y) + (2.0f * x * y) * I;
+
+ zz = 1.0f - crealf(zz) - cimagf(zz) * I;
+ z2 = csqrtf(zz);
+
+ zz = ct + z2;
+ zz = clogf(zz);
+ /* multiply by 1/i = -i */
+ w = zz * (-1.0f * I);
+ return w;
+}
diff --git a/ecos/packages/language/c/libm/current/src/complex/casinh.c b/ecos/packages/language/c/libm/current/src/complex/casinh.c
new file mode 100644
index 0000000..16238a6
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/complex/casinh.c
@@ -0,0 +1,97 @@
+/* $NetBSD: casinh.c,v 1.1 2007/08/20 16:01:31 drochner Exp $ */
+
+/*-
+ * Copyright (c) 2007 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * This code is derived from software written by Stephen L. Moshier.
+ * It is redistributed by the NetBSD Foundation by permission of the author.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * imported and modified include for newlib 2010/10/03
+ * Marco Atzeri <marco_atzeri@yahoo.it>
+ */
+
+/*
+FUNCTION
+ <<casinh>>, <<casinhf>>---complex arc hyperbolic sine
+
+INDEX
+ casinh
+INDEX
+ casinhf
+
+ANSI_SYNOPSIS
+ #include <complex.h>
+ double complex casinh(double complex <[z]>);
+ float complex casinhf(float complex <[z]>);
+
+
+DESCRIPTION
+ @ifnottex
+ These functions compute the complex arc hyperbolic sine of <[z]>,
+ with branch cuts outside the interval [-i, +i] along the
+ imaginary axis.
+ @end ifnottex
+ @tex
+ These functions compute the complex arc hyperbolic sine of <[z]>,
+ with branch cuts outside the interval [$-i$, $+i$] along the
+ imaginary axis.
+ @end tex
+
+ <<casinhf>> is identical to <<casinh>>, except that it performs
+ its calculations on <<floats complex>>.
+
+RETURNS
+ @ifnottex
+ These functions return the complex arc hyperbolic sine value,
+ in the range of a strip mathematically unbounded along the
+ real axis and in the interval [-i*p/2, +i*p/2] along the
+ imaginary axis.
+ @end ifnottex
+ @tex
+ These functions return the complex arc hyperbolic sine value,
+ in the range of a strip mathematically unbounded along the
+ real axis and in the interval [$-i\pi/2$, $+i\pi/2$] along the
+ imaginary axis.
+ @end tex
+
+PORTABILITY
+ <<casinh>> and <<casinhf>> are ISO C99
+
+QUICKREF
+ <<casinh>> and <<casinhf>> are ISO C99
+
+*/
+
+
+#include <complex.h>
+
+double complex
+casinh(double complex z)
+{
+ double complex w;
+
+ w = -1.0 * I * casin(z * I);
+ return w;
+}
diff --git a/ecos/packages/language/c/libm/current/src/complex/casinhf.c b/ecos/packages/language/c/libm/current/src/complex/casinhf.c
new file mode 100644
index 0000000..0db55a0
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/complex/casinhf.c
@@ -0,0 +1,44 @@
+/* $NetBSD: casinhf.c,v 1.1 2007/08/20 16:01:32 drochner Exp $ */
+
+/*-
+ * Copyright (c) 2007 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * This code is derived from software written by Stephen L. Moshier.
+ * It is redistributed by the NetBSD Foundation by permission of the author.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * imported and modified include for newlib 2010/10/03
+ * Marco Atzeri <marco_atzeri@yahoo.it>
+ */
+
+#include <complex.h>
+
+float complex
+casinhf(float complex z)
+{
+ float complex w;
+
+ w = -1.0f * I * casinf(z * I);
+ return w;
+}
diff --git a/ecos/packages/language/c/libm/current/src/complex/catan.c b/ecos/packages/language/c/libm/current/src/complex/catan.c
new file mode 100644
index 0000000..bf9ea01
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/complex/catan.c
@@ -0,0 +1,130 @@
+/* $NetBSD: catan.c,v 1.1 2007/08/20 16:01:32 drochner Exp $ */
+
+/*-
+ * Copyright (c) 2007 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * This code is derived from software written by Stephen L. Moshier.
+ * It is redistributed by the NetBSD Foundation by permission of the author.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * imported and modified include for newlib 2010/10/03
+ * Marco Atzeri <marco_atzeri@yahoo.it>
+ */
+
+/*
+FUNCTION
+ <<catan>>, <<catanf>>---complex arc tangent
+
+INDEX
+ catan
+INDEX
+ catanf
+
+ANSI_SYNOPSIS
+ #include <complex.h>
+ double complex catan(double complex <[z]>);
+ float complex catanf(float complex <[z]>);
+
+
+DESCRIPTION
+ @ifnottex
+ These functions compute the complex arc tangent of <[z]>,
+ with branch cuts outside the interval [-i, +i] along the
+ imaginary axis.
+ @end ifnottex
+ @tex
+ These functions compute the complex arc tangent of <[z]>,
+ with branch cuts outside the interval [$-i$, $+i$] along the
+ imaginary axis.
+ @end tex
+
+ <<catanf>> is identical to <<catan>>, except that it performs
+ its calculations on <<floats complex>>.
+
+RETURNS
+ @ifnottex
+ These functions return the complex arc tangent value, in the range
+ of a strip mathematically unbounded along the imaginary axis
+ and in the interval [-pi/2, +pi/2] along the real axis.
+ @end ifnottex
+ @tex
+ These functions return the complex arc tangent, in the range
+ of a strip mathematically unbounded along the imaginary axis
+ and in the interval [$-\pi/2$, $+\pi/2$] along the real axis.
+ @end tex
+
+PORTABILITY
+ <<catan>> and <<catanf>> are ISO C99
+
+QUICKREF
+ <<catan>> and <<catanf>> are ISO C99
+
+*/
+
+
+#include <complex.h>
+#include <math.h>
+#include "cephes_subr.h"
+
+#ifdef __weak_alias
+__weak_alias(catan, _catan)
+#endif
+
+double complex
+catan(double complex z)
+{
+ double complex w;
+ double a, t, x, x2, y;
+
+ x = creal(z);
+ y = cimag(z);
+
+ if ((x == 0.0) && (y > 1.0))
+ goto ovrf;
+
+ x2 = x * x;
+ a = 1.0 - x2 - (y * y);
+ if (a == 0.0)
+ goto ovrf;
+
+ t = 0.5 * atan2(2.0 * x, a);
+ w = _redupi(t);
+
+ t = y - 1.0;
+ a = x2 + (t * t);
+ if (a == 0.0)
+ goto ovrf;
+
+ t = y + 1.0;
+ a = (x2 + (t * t))/a;
+ w = w + (0.25 * log(a)) * I;
+ return w;
+
+ovrf:
+#if 0
+ mtherr ("catan", OVERFLOW);
+#endif
+ w = HUGE_VAL + HUGE_VAL * I;
+ return w;
+}
diff --git a/ecos/packages/language/c/libm/current/src/complex/catanf.c b/ecos/packages/language/c/libm/current/src/complex/catanf.c
new file mode 100644
index 0000000..ac1a65c
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/complex/catanf.c
@@ -0,0 +1,79 @@
+/* $NetBSD: catanf.c,v 1.1 2007/08/20 16:01:32 drochner Exp $ */
+
+/*-
+ * Copyright (c) 2007 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * This code is derived from software written by Stephen L. Moshier.
+ * It is redistributed by the NetBSD Foundation by permission of the author.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * imported and modified include for newlib 2010/10/03
+ * Marco Atzeri <marco_atzeri@yahoo.it>
+ */
+
+#include <complex.h>
+#include <math.h>
+#include "cephes_subrf.h"
+
+#ifdef __weak_alias
+__weak_alias(catanf, _catanf)
+#endif
+
+float complex
+catanf(float complex z)
+{
+ float complex w;
+ float a, t, x, x2, y;
+
+ x = crealf(z);
+ y = cimagf(z);
+
+ if ((x == 0.0f) && (y > 1.0f))
+ goto ovrf;
+
+ x2 = x * x;
+ a = 1.0f - x2 - (y * y);
+ if (a == 0.0f)
+ goto ovrf;
+
+ t = 0.5f * atan2f(2.0f * x, a);
+ w = _redupif(t);
+
+ t = y - 1.0f;
+ a = x2 + (t * t);
+ if (a == 0.0f)
+ goto ovrf;
+
+ t = y + 1.0f;
+ a = (x2 + (t * t))/a;
+ w = w + (0.25f * logf(a)) * I;
+ return w;
+
+ovrf:
+#if 0
+ mtherr ("catan", OVERFLOW);
+#endif
+ w = HUGE_VALF + HUGE_VALF * I;
+ return w;
+}
diff --git a/ecos/packages/language/c/libm/current/src/complex/catanh.c b/ecos/packages/language/c/libm/current/src/complex/catanh.c
new file mode 100644
index 0000000..2b9ef9e
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/complex/catanh.c
@@ -0,0 +1,90 @@
+/* $NetBSD: catanh.c,v 1.1 2007/08/20 16:01:32 drochner Exp $ */
+
+/*-
+ * Copyright (c) 2007 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * This code is derived from software written by Stephen L. Moshier.
+ * It is redistributed by the NetBSD Foundation by permission of the author.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * imported and modified include for newlib 2010/10/03
+ * Marco Atzeri <marco_atzeri@yahoo.it>
+ */
+
+/*
+FUNCTION
+ <<catanh>>, <<catanhf>>---complex arc hyperbolic tangent
+
+INDEX
+ catanh
+INDEX
+ catanhf
+
+ANSI_SYNOPSIS
+ #include <complex.h>
+ double complex catanh(double complex <[z]>);
+ float complex catanhf(float complex <[z]>);
+
+
+DESCRIPTION
+ These functions compute the complex arc hyperbolic tan of <[z]>,
+ with branch cuts outside the interval [-1, +1] along the
+ real axis.
+
+ <<catanhf>> is identical to <<catanh>>, except that it performs
+ its calculations on <<floats complex>>.
+
+RETURNS
+ @ifnottex
+ These functions return the complex arc hyperbolic tangent value,
+ in the range of a strip mathematically unbounded along the
+ real axis and in the interval [-i*p/2, +i*p/2] along the
+ imaginary axis.
+ @end ifnottex
+ @tex
+ These functions return the complex arc hyperbolic tangent value,
+ in the range of a strip mathematically unbounded along the
+ real axis and in the interval [$-i\pi/2$, $+i\pi/2$] along the
+ imaginary axis.
+ @end tex
+
+PORTABILITY
+ <<catanh>> and <<catanhf>> are ISO C99
+
+QUICKREF
+ <<catanh>> and <<catanhf>> are ISO C99
+
+*/
+
+
+#include <complex.h>
+
+double complex
+catanh(double complex z)
+{
+ double complex w;
+
+ w = -1.0 * I * catan(z * I);
+ return w;
+}
diff --git a/ecos/packages/language/c/libm/current/src/complex/catanhf.c b/ecos/packages/language/c/libm/current/src/complex/catanhf.c
new file mode 100644
index 0000000..fe6127a
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/complex/catanhf.c
@@ -0,0 +1,44 @@
+/* $NetBSD: catanhf.c,v 1.1 2007/08/20 16:01:32 drochner Exp $ */
+
+/*-
+ * Copyright (c) 2007 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * This code is derived from software written by Stephen L. Moshier.
+ * It is redistributed by the NetBSD Foundation by permission of the author.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * imported and modified include for newlib 2010/10/03
+ * Marco Atzeri <marco_atzeri@yahoo.it>
+ */
+
+#include <complex.h>
+
+float complex
+catanhf(float complex z)
+{
+ float complex w;
+
+ w = -1.0f * I * catanf(z * I);
+ return w;
+}
diff --git a/ecos/packages/language/c/libm/current/src/complex/ccos.c b/ecos/packages/language/c/libm/current/src/complex/ccos.c
new file mode 100644
index 0000000..1062c07
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/complex/ccos.c
@@ -0,0 +1,81 @@
+/* $NetBSD: ccos.c,v 1.1 2007/08/20 16:01:32 drochner Exp $ */
+
+/*-
+ * Copyright (c) 2007 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * This code is derived from software written by Stephen L. Moshier.
+ * It is redistributed by the NetBSD Foundation by permission of the author.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * imported and modified include for newlib 2010/10/03
+ * Marco Atzeri <marco_atzeri@yahoo.it>
+ */
+
+/*
+FUNCTION
+ <<ccos>>, <<ccosf>>---complex cosine
+
+INDEX
+ ccos
+INDEX
+ ccosf
+
+ANSI_SYNOPSIS
+ #include <complex.h>
+ double complex ccos(double complex <[z]>);
+ float complex ccosf(float complex <[z]>);
+
+
+DESCRIPTION
+ These functions compute the complex cosine of <[z]>.
+
+ <<ccosf>> is identical to <<ccos>>, except that it performs
+ its calculations on <<floats complex>>.
+
+RETURNS
+ These functions return the complex cosine value.
+
+PORTABILITY
+ <<ccos>> and <<ccosf>> are ISO C99
+
+QUICKREF
+ <<ccos>> and <<ccosf>> are ISO C99
+
+*/
+
+
+#include <complex.h>
+#include <math.h>
+#include "cephes_subr.h"
+
+double complex
+ccos(double complex z)
+{
+ double complex w;
+ double ch, sh;
+
+ _cchsh(cimag(z), &ch, &sh);
+ w = cos(creal(z)) * ch - (sin(creal(z)) * sh) * I;
+ return w;
+}
diff --git a/ecos/packages/language/c/libm/current/src/complex/ccosf.c b/ecos/packages/language/c/libm/current/src/complex/ccosf.c
new file mode 100644
index 0000000..805e24f
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/complex/ccosf.c
@@ -0,0 +1,48 @@
+/* $NetBSD: ccosf.c,v 1.1 2007/08/20 16:01:33 drochner Exp $ */
+
+/*-
+ * Copyright (c) 2007 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * This code is derived from software written by Stephen L. Moshier.
+ * It is redistributed by the NetBSD Foundation by permission of the author.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * imported and modified include for newlib 2010/10/03
+ * Marco Atzeri <marco_atzeri@yahoo.it>
+ */
+
+#include <complex.h>
+#include <math.h>
+#include "cephes_subrf.h"
+
+float complex
+ccosf(float complex z)
+{
+ float complex w;
+ float ch, sh;
+
+ _cchshf(cimagf(z), &ch, &sh);
+ w = cosf(crealf(z)) * ch - (sinf(crealf(z)) * sh) * I;
+ return w;
+}
diff --git a/ecos/packages/language/c/libm/current/src/complex/ccosh.c b/ecos/packages/language/c/libm/current/src/complex/ccosh.c
new file mode 100644
index 0000000..223a5ed
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/complex/ccosh.c
@@ -0,0 +1,81 @@
+/* $NetBSD: ccosh.c,v 1.1 2007/08/20 16:01:33 drochner Exp $ */
+
+/*-
+ * Copyright (c) 2007 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * This code is derived from software written by Stephen L. Moshier.
+ * It is redistributed by the NetBSD Foundation by permission of the author.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * imported and modified include for newlib 2010/10/03
+ * Marco Atzeri <marco_atzeri@yahoo.it>
+ */
+
+/*
+FUNCTION
+ <<ccosh>>, <<ccoshf>>---complex hyperbolic cosine
+
+INDEX
+ ccosh
+INDEX
+ ccoshf
+
+ANSI_SYNOPSIS
+ #include <complex.h>
+ double complex ccosh(double complex <[z]>);
+ float complex ccoshf(float complex <[z]>);
+
+
+DESCRIPTION
+ These functions compute the complex hyperbolic cosine of <[z]>.
+
+ <<ccoshf>> is identical to <<ccosh>>, except that it performs
+ its calculations on <<floats complex>>.
+
+RETURNS
+ These functions return the complex hyperbolic cosine value.
+
+PORTABILITY
+ <<ccosh>> and <<ccoshf>> are ISO C99
+
+QUICKREF
+ <<ccosh>> and <<ccoshf>> are ISO C99
+
+*/
+
+
+#include <complex.h>
+#include <math.h>
+
+double complex
+ccosh(double complex z)
+{
+ double complex w;
+ double x, y;
+
+ x = creal(z);
+ y = cimag(z);
+ w = cosh(x) * cos(y) + (sinh(x) * sin(y)) * I;
+ return w;
+}
diff --git a/ecos/packages/language/c/libm/current/src/complex/ccoshf.c b/ecos/packages/language/c/libm/current/src/complex/ccoshf.c
new file mode 100644
index 0000000..af11353
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/complex/ccoshf.c
@@ -0,0 +1,48 @@
+/* $NetBSD: ccoshf.c,v 1.1 2007/08/20 16:01:33 drochner Exp $ */
+
+/*-
+ * Copyright (c) 2007 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * This code is derived from software written by Stephen L. Moshier.
+ * It is redistributed by the NetBSD Foundation by permission of the author.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * imported and modified include for newlib 2010/10/03
+ * Marco Atzeri <marco_atzeri@yahoo.it>
+ */
+
+#include <complex.h>
+#include <math.h>
+
+float complex
+ccoshf(float complex z)
+{
+ float complex w;
+ float x, y;
+
+ x = crealf(z);
+ y = cimagf(z);
+ w = coshf(x) * cosf(y) + (sinhf(x) * sinf(y)) * I;
+ return w;
+}
diff --git a/ecos/packages/language/c/libm/current/src/complex/cephes_subr.c b/ecos/packages/language/c/libm/current/src/complex/cephes_subr.c
new file mode 100644
index 0000000..5eacff6
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/complex/cephes_subr.c
@@ -0,0 +1,126 @@
+/* $NetBSD: cephes_subr.c,v 1.1 2007/08/20 16:01:33 drochner Exp $ */
+
+/*-
+ * Copyright (c) 2007 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * This code is derived from software written by Stephen L. Moshier.
+ * It is redistributed by the NetBSD Foundation by permission of the author.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * imported and modified include for newlib 2010/10/03
+ * Marco Atzeri <marco_atzeri@yahoo.it>
+ */
+
+#include <complex.h>
+#include <math.h>
+#include "cephes_subr.h"
+
+/* calculate cosh and sinh */
+
+void
+_cchsh(double x, double *c, double *s)
+{
+ double e, ei;
+
+ if (fabs(x) <= 0.5) {
+ *c = cosh(x);
+ *s = sinh(x);
+ } else {
+ e = exp(x);
+ ei = 0.5 / e;
+ e = 0.5 * e;
+ *s = e - ei;
+ *c = e + ei;
+ }
+}
+
+/* Program to subtract nearest integer multiple of PI */
+
+/* extended precision value of PI: */
+static const double DP1 = 3.14159265160560607910E0;
+static const double DP2 = 1.98418714791870343106E-9;
+static const double DP3 = 1.14423774522196636802E-17;
+#define MACHEP 1.1e-16
+
+double
+_redupi(double x)
+{
+ double t;
+ long i;
+
+ t = x / M_PI;
+ if (t >= 0.0)
+ t += 0.5;
+ else
+ t -= 0.5;
+
+ i = t; /* the multiple */
+ t = i;
+ t = ((x - t * DP1) - t * DP2) - t * DP3;
+ return t;
+}
+
+/* Taylor series expansion for cosh(2y) - cos(2x) */
+
+double
+_ctans(double complex z)
+{
+ double f, x, x2, y, y2, rn, t;
+ double d;
+
+ x = fabs(2.0 * creal(z));
+ y = fabs(2.0 * cimag(z));
+
+ x = _redupi(x);
+
+ x = x * x;
+ y = y * y;
+ x2 = 1.0;
+ y2 = 1.0;
+ f = 1.0;
+ rn = 0.0;
+ d = 0.0;
+ do {
+ rn += 1.0;
+ f *= rn;
+ rn += 1.0;
+ f *= rn;
+ x2 *= x;
+ y2 *= y;
+ t = y2 + x2;
+ t /= f;
+ d += t;
+
+ rn += 1.0;
+ f *= rn;
+ rn += 1.0;
+ f *= rn;
+ x2 *= x;
+ y2 *= y;
+ t = y2 - x2;
+ t /= f;
+ d += t;
+ } while (fabs(t/d) > MACHEP);
+ return d;
+}
diff --git a/ecos/packages/language/c/libm/current/src/complex/cephes_subr.h b/ecos/packages/language/c/libm/current/src/complex/cephes_subr.h
new file mode 100644
index 0000000..7d23052
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/complex/cephes_subr.h
@@ -0,0 +1,5 @@
+/* $NetBSD: cephes_subr.h,v 1.1 2007/08/20 16:01:33 drochner Exp $ */
+
+void _cchsh(double, double *, double *);
+double _redupi(double);
+double _ctans(double complex);
diff --git a/ecos/packages/language/c/libm/current/src/complex/cephes_subrf.c b/ecos/packages/language/c/libm/current/src/complex/cephes_subrf.c
new file mode 100644
index 0000000..4a32581
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/complex/cephes_subrf.c
@@ -0,0 +1,125 @@
+/* $NetBSD: cephes_subrf.c,v 1.1 2007/08/20 16:01:34 drochner Exp $ */
+
+/*-
+ * Copyright (c) 2007 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * This code is derived from software written by Stephen L. Moshier.
+ * It is redistributed by the NetBSD Foundation by permission of the author.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * imported and modified include for newlib 2010/10/03
+ * Marco Atzeri <marco_atzeri@yahoo.it>
+ */
+
+#include <complex.h>
+#include <math.h>
+#include "cephes_subrf.h"
+
+/* calculate cosh and sinh */
+
+void
+_cchshf(float x, float *c, float *s)
+{
+ float e, ei;
+
+ if (fabsf(x) <= 0.5f) {
+ *c = coshf(x);
+ *s = sinhf(x);
+ } else {
+ e = expf(x);
+ ei = 0.5f / e;
+ e = 0.5f * e;
+ *s = e - ei;
+ *c = e + ei;
+ }
+}
+
+/* Program to subtract nearest integer multiple of PI */
+
+/* extended precision value of PI: */
+static const double DP1 = 3.140625;
+static const double DP2 = 9.67502593994140625E-4;
+static const double DP3 = 1.509957990978376432E-7;
+#define MACHEPF 3.0e-8
+
+float
+_redupif(float x)
+{
+ float t;
+ long i;
+
+ t = x / (float)M_PI;
+ if (t >= 0.0f)
+ t += 0.5f;
+ else
+ t -= 0.5f;
+
+ i = t; /* the multiple */
+ t = i;
+ t = ((x - t * DP1) - t * DP2) - t * DP3;
+ return t;
+}
+
+/* Taylor series expansion for cosh(2y) - cos(2x) */
+
+float
+_ctansf(float complex z)
+{
+ float f, x, x2, y, y2, rn, t, d;
+
+ x = fabsf(2.0f * crealf(z));
+ y = fabsf(2.0f * cimagf(z));
+
+ x = _redupif(x);
+
+ x = x * x;
+ y = y * y;
+ x2 = 1.0f;
+ y2 = 1.0f;
+ f = 1.0f;
+ rn = 0.0f;
+ d = 0.0f;
+ do {
+ rn += 1.0f;
+ f *= rn;
+ rn += 1.0f;
+ f *= rn;
+ x2 *= x;
+ y2 *= y;
+ t = y2 + x2;
+ t /= f;
+ d += t;
+
+ rn += 1.0f;
+ f *= rn;
+ rn += 1.0f;
+ f *= rn;
+ x2 *= x;
+ y2 *= y;
+ t = y2 - x2;
+ t /= f;
+ d += t;
+ } while (fabsf(t/d) > MACHEPF);
+ return d;
+}
diff --git a/ecos/packages/language/c/libm/current/src/complex/cephes_subrf.h b/ecos/packages/language/c/libm/current/src/complex/cephes_subrf.h
new file mode 100644
index 0000000..81aec46
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/complex/cephes_subrf.h
@@ -0,0 +1,5 @@
+/* $NetBSD: cephes_subrf.h,v 1.1 2007/08/20 16:01:34 drochner Exp $ */
+
+void _cchshf(float, float *, float *);
+float _redupif(float);
+float _ctansf(float complex);
diff --git a/ecos/packages/language/c/libm/current/src/complex/cexp.c b/ecos/packages/language/c/libm/current/src/complex/cexp.c
new file mode 100644
index 0000000..b9a3fd0
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/complex/cexp.c
@@ -0,0 +1,82 @@
+/* $NetBSD: cexp.c,v 1.1 2007/08/20 16:01:34 drochner Exp $ */
+
+/*-
+ * Copyright (c) 2007 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * This code is derived from software written by Stephen L. Moshier.
+ * It is redistributed by the NetBSD Foundation by permission of the author.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * imported and modified include for newlib 2010/10/03
+ * Marco Atzeri <marco_atzeri@yahoo.it>
+ */
+
+/*
+FUNCTION
+ <<cexp>>, <<cexpf>>---complex base-e exponential
+
+INDEX
+ cexp
+INDEX
+ cexpf
+
+ANSI_SYNOPSIS
+ #include <complex.h>
+ double complex cexp(double complex <[z]>);
+ float complex cexpf(float complex <[z]>);
+
+
+DESCRIPTION
+ These functions compute the complex base-<[e]> exponential of <[z]>.
+
+ <<cexpf>> is identical to <<cexp>>, except that it performs
+ its calculations on <<floats complex>>.
+
+RETURNS
+ The cexp functions return the complex base-<[e]> exponential value.
+
+PORTABILITY
+ <<cexp>> and <<cexpf>> are ISO C99
+
+QUICKREF
+ <<cexp>> and <<cexpf>> are ISO C99
+
+*/
+
+
+#include <complex.h>
+#include <math.h>
+
+double complex
+cexp(double complex z)
+{
+ double complex w;
+ double r, x, y;
+
+ x = creal(z);
+ y = cimag(z);
+ r = exp(x);
+ w = r * cos(y) + r * sin(y) * I;
+ return w;
+}
diff --git a/ecos/packages/language/c/libm/current/src/complex/cexpf.c b/ecos/packages/language/c/libm/current/src/complex/cexpf.c
new file mode 100644
index 0000000..07fab1f
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/complex/cexpf.c
@@ -0,0 +1,49 @@
+/* $NetBSD: cexpf.c,v 1.1 2007/08/20 16:01:34 drochner Exp $ */
+
+/*-
+ * Copyright (c) 2007 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * This code is derived from software written by Stephen L. Moshier.
+ * It is redistributed by the NetBSD Foundation by permission of the author.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * imported and modified include for newlib 2010/10/03
+ * Marco Atzeri <marco_atzeri@yahoo.it>
+ */
+
+#include <complex.h>
+#include <math.h>
+
+float complex
+cexpf(float complex z)
+{
+ float complex w;
+ float r, x, y;
+
+ x = crealf(z);
+ y = cimagf(z);
+ r = expf(x);
+ w = r * cosf(y) + r * sinf(y) * I;
+ return w;
+}
diff --git a/ecos/packages/language/c/libm/current/src/complex/cimag.c b/ecos/packages/language/c/libm/current/src/complex/cimag.c
new file mode 100644
index 0000000..0b0e650
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/complex/cimag.c
@@ -0,0 +1,61 @@
+//===========================================================================
+//
+// cimag.c
+//
+// Complex numbr real part - double precision.
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2013 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): ilijak
+// Contributors:
+// Date: 2013-06-06
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+#include <complex.h>
+
+double
+cimag(double complex z)
+{
+ return __builtin_cimag(z);
+}
+
+// End of cimag.c
diff --git a/ecos/packages/language/c/libm/current/src/complex/cimagf.c b/ecos/packages/language/c/libm/current/src/complex/cimagf.c
new file mode 100644
index 0000000..5caaa4e
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/complex/cimagf.c
@@ -0,0 +1,61 @@
+//===========================================================================
+//
+// cimagf.c
+//
+// Complex numbr real part - single precision.
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2013 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): ilijak
+// Contributors:
+// Date: 2013-06-06
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+#include <complex.h>
+
+float
+cimagf(float complex z)
+{
+ return __builtin_cimagf(z);
+}
+
+// End of cimagf.c
diff --git a/ecos/packages/language/c/libm/current/src/complex/clog.c b/ecos/packages/language/c/libm/current/src/complex/clog.c
new file mode 100644
index 0000000..f7ad3d2
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/complex/clog.c
@@ -0,0 +1,91 @@
+/* $NetBSD: clog.c,v 1.1 2007/08/20 16:01:35 drochner Exp $ */
+
+/*-
+ * Copyright (c) 2007 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * This code is derived from software written by Stephen L. Moshier.
+ * It is redistributed by the NetBSD Foundation by permission of the author.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * imported and modified include for newlib 2010/10/03
+ * Marco Atzeri <marco_atzeri@yahoo.it>
+ */
+
+/*
+FUNCTION
+ <<clog>>, <<clogf>>---complex base-e logarithm
+
+INDEX
+ clog
+INDEX
+ clogf
+
+ANSI_SYNOPSIS
+ #include <complex.h>
+ double complex clog(double complex <[z]>);
+ float complex clogf(float complex <[z]>);
+
+
+DESCRIPTION
+ These functions compute the complex natural (base-<[e]>) logarithm
+ of <[z]>, with a branch cut along the negative real axis.
+
+ <<clogf>> is identical to <<clog>>, except that it performs
+ its calculations on <<floats complex>>.
+
+RETURNS
+ @ifnottex
+ The clog functions return the complex natural logarithm value, in
+ the range of a strip mathematically unbounded along the real axis
+ and in the interval [-i*pi , +i*pi] along the imaginary axis.
+ @end ifnottex
+ @tex
+ The clog functions return the complex natural logarithm value, in
+ the range of a strip mathematically unbounded along the real axis
+ and in the interval [$-i\pi$, $+i\pi$] along the imaginary axis.
+ @end tex
+
+PORTABILITY
+ <<clog>> and <<clogf>> are ISO C99
+
+QUICKREF
+ <<clog>> and <<clogf>> are ISO C99
+
+*/
+
+#include <complex.h>
+#include <math.h>
+
+double complex
+clog(double complex z)
+{
+ double complex w;
+ double p, rr;
+
+ rr = cabs(z);
+ p = log(rr);
+ rr = atan2(cimag(z), creal(z));
+ w = p + rr * I;
+ return w;
+}
diff --git a/ecos/packages/language/c/libm/current/src/complex/clogf.c b/ecos/packages/language/c/libm/current/src/complex/clogf.c
new file mode 100644
index 0000000..078cea5
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/complex/clogf.c
@@ -0,0 +1,49 @@
+/* $NetBSD: clogf.c,v 1.1 2007/08/20 16:01:35 drochner Exp $ */
+
+/*-
+ * Copyright (c) 2007 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * This code is derived from software written by Stephen L. Moshier.
+ * It is redistributed by the NetBSD Foundation by permission of the author.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * imported and modified include for newlib 2010/10/03
+ * Marco Atzeri <marco_atzeri@yahoo.it>
+ */
+
+#include <complex.h>
+#include <math.h>
+
+float complex
+clogf(float complex z)
+{
+ float complex w;
+ float p, rr;
+
+ rr = cabsf(z);
+ p = logf(rr);
+ rr = atan2f(cimagf(z), crealf(z));
+ w = p + rr * I;
+ return w;
+}
diff --git a/ecos/packages/language/c/libm/current/src/complex/complex.tex b/ecos/packages/language/c/libm/current/src/complex/complex.tex
new file mode 100644
index 0000000..4ac14c3
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/complex/complex.tex
@@ -0,0 +1,55 @@
+@node Complex
+@chapter Mathematical Complex Functions (@file{complex.h})
+
+This chapter groups the complex mathematical functions. The
+corresponding definitions and declarations are in @file{complex.h}.
+Functions and documentations are taken from NetBSD.
+
+@menu
+* cabs:: Complex absolute value
+* cacos:: Complex arc cosine
+* cacosh:: Complex arc hyperbolic cosine
+* carg:: Argument (also called phase angle)
+* casin:: Complex arc sine
+* casinh:: Complex arc hyperbolic sine
+* catan:: Complex arc tangent
+* catanh:: Complex arc hyperbolic tangent
+* ccos:: Complex cosine
+* ccosh:: Complex hyperbolic cosine
+* cexp:: Complex exponent
+* cimag:: Imaginary part
+* clog:: Complex natural (base e) logarithm
+* conj:: Complex conjugate
+* cpow:: Complex power function
+* cproj:: Compute a projection on the Riemann sphere
+* creal:: Real part
+* csin:: Complex sine
+* csinh:: Complex hyperbolic sine
+* csqrt:: Complex square root
+* ctan:: Complex tangent
+* ctanh:: Complex hyperbolic tangent
+@end menu
+
+
+@page @include complex/cabs.def
+@page @include complex/cacos.def
+@page @include complex/cacosh.def
+@page @include complex/carg.def
+@page @include complex/casin.def
+@page @include complex/casinh.def
+@page @include complex/catan.def
+@page @include complex/catanh.def
+@page @include complex/ccos.def
+@page @include complex/ccosh.def
+@page @include complex/cexp.def
+@page @include complex/cimag.def
+@page @include complex/clog.def
+@page @include complex/conj.def
+@page @include complex/cpow.def
+@page @include complex/cproj.def
+@page @include complex/creal.def
+@page @include complex/csin.def
+@page @include complex/csinh.def
+@page @include complex/csqrt.def
+@page @include complex/ctan.def
+@page @include complex/ctanh.def
diff --git a/ecos/packages/language/c/libm/current/src/complex/conj.c b/ecos/packages/language/c/libm/current/src/complex/conj.c
new file mode 100644
index 0000000..bad2a65
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/complex/conj.c
@@ -0,0 +1,61 @@
+//===========================================================================
+//
+// conj.c
+//
+// Complex cojugate - double precision.
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2013 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): ilijak
+// Contributors:
+// Date: 2013-06-06
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+#include <complex.h>
+
+double complex
+conj(double complex z)
+{
+ return __builtin_conj(z);
+}
+
+// End of conj.c
diff --git a/ecos/packages/language/c/libm/current/src/complex/conjf.c b/ecos/packages/language/c/libm/current/src/complex/conjf.c
new file mode 100644
index 0000000..cff371c
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/complex/conjf.c
@@ -0,0 +1,61 @@
+//===========================================================================
+//
+// conjf.c
+//
+// Complex cojugate - single precision.
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2013 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: ilijak
+// Date: 2013-06-06
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+#include <complex.h>
+
+float complex
+conjf(float complex z)
+{
+ return __builtin_conjf(z);
+}
+
+// End of conjf.c
diff --git a/ecos/packages/language/c/libm/current/src/complex/cpow.c b/ecos/packages/language/c/libm/current/src/complex/cpow.c
new file mode 100644
index 0000000..b60f7be
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/complex/cpow.c
@@ -0,0 +1,101 @@
+/* $NetBSD: cpow.c,v 1.1 2007/08/20 16:01:35 drochner Exp $ */
+
+/*-
+ * Copyright (c) 2007 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * This code is derived from software written by Stephen L. Moshier.
+ * It is redistributed by the NetBSD Foundation by permission of the author.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * imported and modified include for newlib 2010/10/03
+ * Marco Atzeri <marco_atzeri@yahoo.it>
+ */
+
+/*
+FUNCTION
+ <<cpow>>, <<cpowf>>---complex power
+
+INDEX
+ cpow
+INDEX
+ cpowf
+
+ANSI_SYNOPSIS
+ #include <complex.h>
+ double complex cpow(double complex <[x]>, double complex <[y]>);
+ float complex cpowf(float complex <[x]>, float complex <[y]>);
+
+
+DESCRIPTION
+ @ifnottex
+ The cpow functions compute the complex power function x^y
+ power, with a branch cut for the first parameter along the
+ negative real axis.
+ @end ifnottex
+ @tex
+ The cpow functions compute the complex power function $x^y$
+ power, with a branch cut for the first parameter along the
+ negative real axis.
+ @end tex
+
+ <<cpowf>> is identical to <<cpow>>, except that it performs
+ its calculations on <<floats complex>>.
+
+RETURNS
+ The cpow functions return the complex power function value.
+
+PORTABILITY
+ <<cpow>> and <<cpowf>> are ISO C99
+
+QUICKREF
+ <<cpow>> and <<cpowf>> are ISO C99
+
+*/
+
+
+#include <complex.h>
+#include <math.h>
+
+double complex
+cpow(double complex a, double complex z)
+{
+ double complex w;
+ double x, y, r, theta, absa, arga;
+
+ x = creal(z);
+ y = cimag(z);
+ absa = cabs(a);
+ if (absa == 0.0) {
+ return (0.0 + 0.0 * I);
+ }
+ arga = carg(a);
+ r = pow(absa, x);
+ theta = x * arga;
+ if (y != 0.0) {
+ r = r * exp(-y * arga);
+ theta = theta + y * log(absa);
+ }
+ w = r * cos(theta) + (r * sin(theta)) * I;
+ return w;
+}
diff --git a/ecos/packages/language/c/libm/current/src/complex/cpowf.c b/ecos/packages/language/c/libm/current/src/complex/cpowf.c
new file mode 100644
index 0000000..1e736af
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/complex/cpowf.c
@@ -0,0 +1,59 @@
+/* $NetBSD: cpowf.c,v 1.1 2007/08/20 16:01:36 drochner Exp $ */
+
+/*-
+ * Copyright (c) 2007 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * This code is derived from software written by Stephen L. Moshier.
+ * It is redistributed by the NetBSD Foundation by permission of the author.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * imported and modified include for newlib 2010/10/03
+ * Marco Atzeri <marco_atzeri@yahoo.it>
+ */
+
+#include <complex.h>
+#include <math.h>
+
+float complex
+cpowf(float complex a, float complex z)
+{
+ float complex w;
+ float x, y, r, theta, absa, arga;
+
+ x = crealf(z);
+ y = cimagf(z);
+ absa = cabsf(a);
+ if (absa == 0.0f) {
+ return (0.0f + 0.0f * I);
+ }
+ arga = cargf(a);
+ r = powf(absa, x);
+ theta = x * arga;
+ if (y != 0.0f) {
+ r = r * expf(-y * arga);
+ theta = theta + y * logf(absa);
+ }
+ w = r * cosf(theta) + (r * sinf(theta)) * I;
+ return w;
+}
diff --git a/ecos/packages/language/c/libm/current/src/complex/cproj.c b/ecos/packages/language/c/libm/current/src/complex/cproj.c
new file mode 100644
index 0000000..8acc5cb
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/complex/cproj.c
@@ -0,0 +1,106 @@
+/* $NetBSD: cproj.c,v 1.3 2010/09/20 17:51:38 christos Exp $ */
+
+/*-
+ * Copyright (c) 2010 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * imported and modified include for newlib 2010/10/03
+ * Marco Atzeri <marco_atzeri@yahoo.it>
+ */
+
+/*
+FUNCTION
+ <<cproj>>, <<cprojf>>--- Riemann sphere projection
+
+INDEX
+ cproj
+INDEX
+ cprojf
+
+ANSI_SYNOPSIS
+ #include <complex.h>
+ double complex cproj(double complex <[z]>);
+ float complex cprojf(float complex <[z]>);
+
+
+DESCRIPTION
+ These functions compute a projection of <[z]> onto the Riemann
+ sphere: <[z]> projects to <[z]> except that all complex infinities
+ (even those with one infinite part and one NaN part) project
+ to positive infinity on the real axis. If <[z]> has an infinite part,
+ then <<cproj>>(<[z]>) is equivalent to
+
+ INFINITY + I * copysign(0.0, cimag(z))
+
+ <<cprojf>> is identical to <<cproj>>, except that it performs
+ its calculations on <<floats complex>>.
+
+RETURNS
+ The cproj functions return the value of the projection onto
+ the Riemann sphere.
+
+PORTABILITY
+ <<cproj>> and <<cprojf>> are ISO C99
+
+QUICKREF
+ <<cproj>> and <<cprojf>> are ISO C99
+
+*/
+
+//#include <sys/cdefs.h>
+/*__RCSID("$NetBSD: cproj.c,v 1.3 2010/09/20 17:51:38 christos Exp $"); */
+
+#include <complex.h>
+#include <math.h>
+
+#include "../mathincl/fdlibm.h"
+
+/*
+ * cproj(double complex z)
+ *
+ * These functions return the value of the projection (not stereographic!)
+ * onto the Riemann sphere.
+ *
+ * z projects to z, except that all complex infinities (even those with one
+ * infinite part and one NaN part) project to positive infinity on the real axis.
+ * If z has an infinite part, then cproj(z) shall be equivalent to:
+ *
+ * INFINITY + I * copysign(0.0, cimag(z))
+ */
+double complex
+cproj(double complex z)
+{
+ double_complex w = { .z = z };
+
+ if (isinf(creal(z)) || isinf(cimag(z))) {
+#ifdef __INFINITY
+ REAL_PART(w) = __INFINITY;
+#else
+ REAL_PART(w) = HUGE_VAL;
+#endif
+ IMAG_PART(w) = copysign(0.0, cimag(z));
+ }
+
+ return (w.z);
+}
diff --git a/ecos/packages/language/c/libm/current/src/complex/cprojf.c b/ecos/packages/language/c/libm/current/src/complex/cprojf.c
new file mode 100644
index 0000000..1c6a4f0
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/complex/cprojf.c
@@ -0,0 +1,67 @@
+/* $NetBSD: cprojf.c,v 1.3 2010/09/20 17:51:38 christos Exp $ */
+
+/*-
+ * Copyright (c) 2010 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * imported and modified include for newlib 2010/10/03
+ * Marco Atzeri <marco_atzeri@yahoo.it>
+ */
+
+/*__RCSID("$NetBSD: cprojf.c,v 1.3 2010/09/20 17:51:38 christos Exp $"); */
+
+#include <complex.h>
+#include <math.h>
+
+#include "../mathincl/fdlibm.h"
+
+/*
+ * cprojf(float complex z)
+ *
+ * These functions return the value of the projection (not stereographic!)
+ * onto the Riemann sphere.
+ *
+ * z projects to z, except that all complex infinities (even those with one
+ * infinite part and one NaN part) project to positive infinity on the real axis.
+ * If z has an infinite part, then cproj(z) shall be equivalent to:
+ *
+ * INFINITY + I * copysign(0.0, cimag(z))
+ */
+
+float complex
+cprojf(float complex z)
+{
+ float_complex w = { .z = z };
+
+ if (isinff(crealf(z)) || isinff(cimagf(z))) {
+#ifdef __INFINITY
+ REAL_PART(w) = __INFINITY;
+#else
+ REAL_PART(w) = HUGE_VALF;
+#endif
+ IMAG_PART(w) = copysignf(0.0, cimagf(z));
+ }
+
+ return (w.z);
+}
diff --git a/ecos/packages/language/c/libm/current/src/complex/creal.c b/ecos/packages/language/c/libm/current/src/complex/creal.c
new file mode 100644
index 0000000..99de1ca
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/complex/creal.c
@@ -0,0 +1,61 @@
+//===========================================================================
+//
+// creal.c
+//
+// Complex numbr real part - double precision.
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2013 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): ilijak
+// Contributors:
+// Date: 2013-06-06
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+#include <complex.h>
+
+double
+creal(double complex z)
+{
+ return __builtin_creal(z);
+}
+
+// End of creal.c
diff --git a/ecos/packages/language/c/libm/current/src/complex/crealf.c b/ecos/packages/language/c/libm/current/src/complex/crealf.c
new file mode 100644
index 0000000..c76f836
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/complex/crealf.c
@@ -0,0 +1,61 @@
+//===========================================================================
+//
+// crealf.c
+//
+// Complex numbr real part - single precision.
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2013 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): ilijak
+// Contributors:
+// Date: 2013-06-06
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+#include <complex.h>
+
+float
+crealf(float complex z)
+{
+ return __builtin_crealf(z);
+}
+
+// End of crealf.c
diff --git a/ecos/packages/language/c/libm/current/src/complex/csin.c b/ecos/packages/language/c/libm/current/src/complex/csin.c
new file mode 100644
index 0000000..cf6dae0
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/complex/csin.c
@@ -0,0 +1,81 @@
+/* $NetBSD: csin.c,v 1.1 2007/08/20 16:01:36 drochner Exp $ */
+
+/*-
+ * Copyright (c) 2007 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * This code is derived from software written by Stephen L. Moshier.
+ * It is redistributed by the NetBSD Foundation by permission of the author.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * imported and modified include for newlib 2010/10/03
+ * Marco Atzeri <marco_atzeri@yahoo.it>
+ */
+
+/*
+FUNCTION
+ <<csin>>, <<csinf>>---complex sine
+
+INDEX
+ csin
+INDEX
+ csinf
+
+ANSI_SYNOPSIS
+ #include <complex.h>
+ double complex csin(double complex <[z]>);
+ float complex csinf(float complex <[z]>);
+
+
+DESCRIPTION
+ These functions compute the complex sine of <[z]>.
+
+ <<csinf>> is identical to <<csin>>, except that it performs
+ its calculations on <<floats complex>>.
+
+RETURNS
+ These functions return the complex sine value.
+
+PORTABILITY
+ <<csin>> and <<csinf>> are ISO C99
+
+QUICKREF
+ <<csin>> and <<csinf>> are ISO C99
+
+*/
+
+
+#include <complex.h>
+#include <math.h>
+#include "cephes_subr.h"
+
+double complex
+csin(double complex z)
+{
+ double complex w;
+ double ch, sh;
+
+ _cchsh(cimag(z), &ch, &sh);
+ w = sin(creal(z)) * ch + (cos(creal(z)) * sh) * I;
+ return w;
+}
diff --git a/ecos/packages/language/c/libm/current/src/complex/csinf.c b/ecos/packages/language/c/libm/current/src/complex/csinf.c
new file mode 100644
index 0000000..68cefe4
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/complex/csinf.c
@@ -0,0 +1,48 @@
+/* $NetBSD: csinf.c,v 1.1 2007/08/20 16:01:36 drochner Exp $ */
+
+/*-
+ * Copyright (c) 2007 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * This code is derived from software written by Stephen L. Moshier.
+ * It is redistributed by the NetBSD Foundation by permission of the author.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * imported and modified include for newlib 2010/10/03
+ * Marco Atzeri <marco_atzeri@yahoo.it>
+ */
+
+#include <complex.h>
+#include <math.h>
+#include "cephes_subrf.h"
+
+float complex
+csinf(float complex z)
+{
+ float complex w;
+ float ch, sh;
+
+ _cchshf(cimagf(z), &ch, &sh);
+ w = sinf(crealf(z)) * ch + (cosf(crealf(z)) * sh) * I;
+ return w;
+}
diff --git a/ecos/packages/language/c/libm/current/src/complex/csinh.c b/ecos/packages/language/c/libm/current/src/complex/csinh.c
new file mode 100644
index 0000000..f117162
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/complex/csinh.c
@@ -0,0 +1,80 @@
+/* $NetBSD: csinh.c,v 1.1 2007/08/20 16:01:36 drochner Exp $ */
+
+/*-
+ * Copyright (c) 2007 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * This code is derived from software written by Stephen L. Moshier.
+ * It is redistributed by the NetBSD Foundation by permission of the author.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * imported and modified include for newlib 2010/10/03
+ * Marco Atzeri <marco_atzeri@yahoo.it>
+ */
+
+/*
+FUNCTION
+ <<csinh>>, <<csinhf>>---complex hyperbolic sine
+
+INDEX
+ csinh
+INDEX
+ csinhf
+
+ANSI_SYNOPSIS
+ #include <complex.h>
+ double complex csinh(double complex <[z]>);
+ float complex csinhf(float complex <[z]>);
+
+
+DESCRIPTION
+ These functions compute the complex hyperbolic sine of <[z]>.
+
+ <<ccoshf>> is identical to <<ccosh>>, except that it performs
+ its calculations on <<floats complex>>.
+
+RETURNS
+ These functions return the complex hyperbolic sine value.
+
+PORTABILITY
+ <<csinh>> and <<csinhf>> are ISO C99
+
+QUICKREF
+ <<csinh>> and <<csinhf>> are ISO C99
+
+*/
+
+#include <complex.h>
+#include <math.h>
+
+double complex
+csinh(double complex z)
+{
+ double complex w;
+ double x, y;
+
+ x = creal(z);
+ y = cimag(z);
+ w = sinh(x) * cos(y) + (cosh(x) * sin(y)) * I;
+ return w;
+}
diff --git a/ecos/packages/language/c/libm/current/src/complex/csinhf.c b/ecos/packages/language/c/libm/current/src/complex/csinhf.c
new file mode 100644
index 0000000..3cd6ba7
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/complex/csinhf.c
@@ -0,0 +1,48 @@
+/* $NetBSD: csinhf.c,v 1.1 2007/08/20 16:01:37 drochner Exp $ */
+
+/*-
+ * Copyright (c) 2007 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * This code is derived from software written by Stephen L. Moshier.
+ * It is redistributed by the NetBSD Foundation by permission of the author.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * imported and modified include for newlib 2010/10/03
+ * Marco Atzeri <marco_atzeri@yahoo.it>
+ */
+
+#include <complex.h>
+#include <math.h>
+
+float complex
+csinhf(float complex z)
+{
+ float complex w;
+ float x, y;
+
+ x = crealf(z);
+ y = cimagf(z);
+ w = sinhf(x) * cosf(y) + (coshf(x) * sinf(y)) * I;
+ return w;
+}
diff --git a/ecos/packages/language/c/libm/current/src/complex/csqrt.c b/ecos/packages/language/c/libm/current/src/complex/csqrt.c
new file mode 100644
index 0000000..b144b7c
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/complex/csqrt.c
@@ -0,0 +1,137 @@
+/* $NetBSD: csqrt.c,v 1.1 2007/08/20 16:01:37 drochner Exp $ */
+
+/*-
+ * Copyright (c) 2007 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * This code is derived from software written by Stephen L. Moshier.
+ * It is redistributed by the NetBSD Foundation by permission of the author.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * imported and modified include for newlib 2010/10/03
+ * Marco Atzeri <marco_atzeri@yahoo.it>
+ */
+
+/*
+FUNCTION
+ <<csqrt>>, <<csqrtf>>---complex square root
+
+INDEX
+ csqrt
+INDEX
+ csqrtf
+
+ANSI_SYNOPSIS
+ #include <complex.h>
+ double complex csqrt(double complex <[z]>);
+ float complex csqrtf(float complex <[z]>);
+
+
+DESCRIPTION
+ These functions compute the complex square root of <[z]>, with
+ a branch cut along the negative real axis.
+
+ <<csqrtf>> is identical to <<csqrt>>, except that it performs
+ its calculations on <<floats complex>>.
+
+RETURNS
+ The csqrt functions return the complex square root value, in
+ the range of the right halfplane (including the imaginary axis).
+
+PORTABILITY
+ <<csqrt>> and <<csqrtf>> are ISO C99
+
+QUICKREF
+ <<csqrt>> and <<csqrtf>> are ISO C99
+
+*/
+
+
+#include <complex.h>
+#include <math.h>
+
+double complex
+csqrt(double complex z)
+{
+ double complex w;
+ double x, y, r, t, scale;
+
+ x = creal (z);
+ y = cimag (z);
+
+ if (y == 0.0) {
+ if (x == 0.0) {
+ w = 0.0 + y * I;
+ } else {
+ r = fabs(x);
+ r = sqrt(r);
+ if (x < 0.0) {
+ w = 0.0 + r * I;
+ } else {
+ w = r + y * I;
+ }
+ }
+ return w;
+ }
+ if (x == 0.0) {
+ r = fabs(y);
+ r = sqrt(0.5 * r);
+ if (y > 0)
+ w = r + r * I;
+ else
+ w = r - r * I;
+ return w;
+ }
+ /* Rescale to avoid internal overflow or underflow. */
+ if ((fabs(x) > 4.0) || (fabs(y) > 4.0)) {
+ x *= 0.25;
+ y *= 0.25;
+ scale = 2.0;
+ } else {
+#if 1
+ x *= 1.8014398509481984e16; /* 2^54 */
+ y *= 1.8014398509481984e16;
+ scale = 7.450580596923828125e-9; /* 2^-27 */
+#else
+ x *= 4.0;
+ y *= 4.0;
+ scale = 0.5;
+#endif
+ }
+ w = x + y * I;
+ r = cabs(w);
+ if (x > 0) {
+ t = sqrt(0.5 * r + 0.5 * x);
+ r = scale * fabs((0.5 * y) / t );
+ t *= scale;
+ } else {
+ r = sqrt(0.5 * r - 0.5 * x);
+ t = scale * fabs((0.5 * y) / r);
+ r *= scale;
+ }
+ if (y < 0)
+ w = t - r * I;
+ else
+ w = t + r * I;
+ return w;
+}
diff --git a/ecos/packages/language/c/libm/current/src/complex/csqrtf.c b/ecos/packages/language/c/libm/current/src/complex/csqrtf.c
new file mode 100644
index 0000000..13451fa
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/complex/csqrtf.c
@@ -0,0 +1,102 @@
+/* $NetBSD: csqrtf.c,v 1.1 2007/08/20 16:01:37 drochner Exp $ */
+
+/*-
+ * Copyright (c) 2007 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * This code is derived from software written by Stephen L. Moshier.
+ * It is redistributed by the NetBSD Foundation by permission of the author.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * imported and modified include for newlib 2010/10/03
+ * Marco Atzeri <marco_atzeri@yahoo.it>
+ */
+
+#include <complex.h>
+#include <math.h>
+
+float complex
+csqrtf(float complex z)
+{
+ float complex w;
+ float x, y, r, t, scale;
+
+ x = crealf (z);
+ y = cimagf (z);
+
+ if (y == 0.0f) {
+ if (x < 0.0f) {
+ w = 0.0f + sqrtf(-x) * I;
+ return w;
+ } else if (x == 0.0f) {
+ return (0.0f + y * I);
+ } else {
+ w = sqrtf(x) + y * I;
+ return w;
+ }
+ }
+
+ if (x == 0.0f) {
+ r = fabsf(y);
+ r = sqrtf(0.5f * r);
+ if (y > 0)
+ w = r + r * I;
+ else
+ w = r - r * I;
+ return w;
+ }
+
+ /* Rescale to avoid internal overflow or underflow. */
+ if ((fabsf(x) > 4.0f) || (fabsf(y) > 4.0f)) {
+ x *= 0.25f;
+ y *= 0.25f;
+ scale = 2.0f;
+ } else {
+#if 1
+ x *= 6.7108864e7f; /* 2^26 */
+ y *= 6.7108864e7f;
+ scale = 1.220703125e-4f; /* 2^-13 */
+#else
+ x *= 4.0f;
+ y *= 4.0f;
+ scale = 0.5f;
+#endif
+ }
+ w = x + y * I;
+ r = cabsf(w);
+ if( x > 0 ) {
+ t = sqrtf(0.5f * r + 0.5f * x);
+ r = scale * fabsf((0.5f * y) / t);
+ t *= scale;
+ } else {
+ r = sqrtf(0.5f * r - 0.5f * x);
+ t = scale * fabsf((0.5f * y) / r);
+ r *= scale;
+ }
+
+ if (y < 0)
+ w = t - r * I;
+ else
+ w = t + r * I;
+ return w;
+}
diff --git a/ecos/packages/language/c/libm/current/src/complex/ctan.c b/ecos/packages/language/c/libm/current/src/complex/ctan.c
new file mode 100644
index 0000000..fb0db34
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/complex/ctan.c
@@ -0,0 +1,91 @@
+/* $NetBSD: ctan.c,v 1.1 2007/08/20 16:01:37 drochner Exp $ */
+
+/*-
+ * Copyright (c) 2007 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * This code is derived from software written by Stephen L. Moshier.
+ * It is redistributed by the NetBSD Foundation by permission of the author.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * imported and modified include for newlib 2010/10/03
+ * Marco Atzeri <marco_atzeri@yahoo.it>
+ */
+
+/*
+FUNCTION
+ <<ctan>>, <<ctanf>>---complex tangent
+
+INDEX
+ ctan
+INDEX
+ ctanf
+
+ANSI_SYNOPSIS
+ #include <complex.h>
+ double complex ctan(double complex <[z]>);
+ float complex ctanf(float complex <[z]>);
+
+
+DESCRIPTION
+ These functions compute the complex tangent of <[z]>.
+
+ <<ctanf>> is identical to <<ctan>>, except that it performs
+ its calculations on <<floats complex>>.
+
+RETURNS
+ These functions return the complex tangent value.
+
+PORTABILITY
+ <<ctan>> and <<ctanf>> are ISO C99
+
+QUICKREF
+ <<ctan>> and <<ctanf>> are ISO C99
+
+*/
+
+
+#include <complex.h>
+#include <math.h>
+#include "cephes_subr.h"
+
+double complex
+ctan(double complex z)
+{
+ double complex w;
+ double d;
+
+ d = cos(2.0 * creal(z)) + cosh(2.0 * cimag(z));
+
+ if (fabs(d) < 0.25)
+ d = _ctans(z);
+
+ if (d == 0.0) {
+ /* mtherr ("ctan", OVERFLOW); */
+ w = HUGE_VAL + HUGE_VAL * I;
+ return w;
+ }
+
+ w = sin(2.0 * creal(z)) / d + (sinh(2.0 * cimag(z)) / d) * I;
+ return w;
+}
diff --git a/ecos/packages/language/c/libm/current/src/complex/ctanf.c b/ecos/packages/language/c/libm/current/src/complex/ctanf.c
new file mode 100644
index 0000000..a75ff1c
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/complex/ctanf.c
@@ -0,0 +1,58 @@
+/* $NetBSD: ctanf.c,v 1.1 2007/08/20 16:01:38 drochner Exp $ */
+
+/*-
+ * Copyright (c) 2007 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * This code is derived from software written by Stephen L. Moshier.
+ * It is redistributed by the NetBSD Foundation by permission of the author.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * imported and modified include for newlib 2010/10/03
+ * Marco Atzeri <marco_atzeri@yahoo.it>
+ */
+
+#include <complex.h>
+#include <math.h>
+#include "cephes_subrf.h"
+
+float complex
+ctanf(float complex z)
+{
+ float complex w;
+ float d;
+
+ d = cosf(2.0f * crealf(z)) + coshf(2.0f * cimagf(z));
+
+ if (fabsf(d) < 0.25f)
+ d = _ctansf(z);
+
+ if (d == 0.0f) {
+ /* mtherr ("ctan", OVERFLOW); */
+ w = HUGE_VALF + HUGE_VALF * I;
+ return w;
+ }
+
+ w = sinf(2.0f * crealf(z)) / d + (sinhf(2.0f * cimagf(z)) / d) * I;
+ return w;
+}
diff --git a/ecos/packages/language/c/libm/current/src/complex/ctanh.c b/ecos/packages/language/c/libm/current/src/complex/ctanh.c
new file mode 100644
index 0000000..db27e5b
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/complex/ctanh.c
@@ -0,0 +1,83 @@
+/* $NetBSD: ctanh.c,v 1.1 2007/08/20 16:01:38 drochner Exp $ */
+
+/*-
+ * Copyright (c) 2007 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * This code is derived from software written by Stephen L. Moshier.
+ * It is redistributed by the NetBSD Foundation by permission of the author.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * imported and modified include for newlib 2010/10/03
+ * Marco Atzeri <marco_atzeri@yahoo.it>
+ */
+
+/*
+FUNCTION
+ <<ctanh>>, <<ctanf>>---complex hyperbolic tangent
+
+INDEX
+ ctanh
+INDEX
+ ctanhf
+
+ANSI_SYNOPSIS
+ #include <complex.h>
+ double complex ctanh(double complex <[z]>);
+ float complex ctanhf(float complex <[z]>);
+
+
+DESCRIPTION
+ These functions compute the complex hyperbolic tangent of <[z]>.
+
+ <<ctanhf>> is identical to <<ctanh>>, except that it performs
+ its calculations on <<floats complex>>.
+
+RETURNS
+ These functions return the complex hyperbolic tangent value.
+
+PORTABILITY
+ <<ctanh>> and <<ctanhf>> are ISO C99
+
+QUICKREF
+ <<ctanh>> and <<ctanhf>> are ISO C99
+
+*/
+
+
+#include <complex.h>
+#include <math.h>
+
+double complex
+ctanh(double complex z)
+{
+ double complex w;
+ double x, y, d;
+
+ x = creal(z);
+ y = cimag(z);
+ d = cosh(2.0 * x) + cos(2.0 * y);
+ w = sinh(2.0 * x) / d + (sin(2.0 * y) / d) * I;
+
+ return w;
+}
diff --git a/ecos/packages/language/c/libm/current/src/complex/ctanhf.c b/ecos/packages/language/c/libm/current/src/complex/ctanhf.c
new file mode 100644
index 0000000..6aaf20f
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/complex/ctanhf.c
@@ -0,0 +1,50 @@
+/* $NetBSD: ctanhf.c,v 1.1 2007/08/20 16:01:38 drochner Exp $ */
+
+/*-
+ * Copyright (c) 2007 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * This code is derived from software written by Stephen L. Moshier.
+ * It is redistributed by the NetBSD Foundation by permission of the author.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * imported and modified include for newlib 2010/10/03
+ * Marco Atzeri <marco_atzeri@yahoo.it>
+ */
+
+#include <complex.h>
+#include <math.h>
+
+float complex
+ctanhf(float complex z)
+{
+ float complex w;
+ float x, y, d;
+
+ x = crealf(z);
+ y = cimagf(z);
+ d = coshf(2.0f * x) + cosf(2.0f * y);
+ w = sinhf(2.0f * x) / d + (sinf(2.0f * y) / d) * I;
+
+ return w;
+}
diff --git a/ecos/packages/language/c/libm/current/src/double/ieee754-api/w_acos.c b/ecos/packages/language/c/libm/current/src/double/ieee754-api/w_acos.c
new file mode 100644
index 0000000..84e7378
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/double/ieee754-api/w_acos.c
@@ -0,0 +1,99 @@
+//===========================================================================
+//
+// w_acos.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/* @(#)w_acos.c 1.3 95/01/18 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunSoft, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/*
+ * wrap_acos(x)
+ */
+
+#include "mathincl/fdlibm.h"
+
+
+ double acos(double x) /* wrapper acos */
+{
+#ifdef CYGSEM_LIBM_COMPAT_IEEE_ONLY
+ return __ieee754_acos(x);
+#else
+ double z;
+ z = __ieee754_acos(x);
+ if(cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_IEEE || isnan(x)) return z;
+ if(fabs(x)>1.0) {
+ return __kernel_standard(x,x,1); /* acos(|x|>1) */
+ } else
+ return z;
+#endif
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF w_acos.c
diff --git a/ecos/packages/language/c/libm/current/src/double/ieee754-api/w_acosh.c b/ecos/packages/language/c/libm/current/src/double/ieee754-api/w_acosh.c
new file mode 100644
index 0000000..b407110
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/double/ieee754-api/w_acosh.c
@@ -0,0 +1,99 @@
+//===========================================================================
+//
+// w_acosh.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/* @(#)w_acosh.c 1.3 95/01/18 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunSoft, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ *
+ */
+
+/*
+ * wrapper acosh(x)
+ */
+
+#include "mathincl/fdlibm.h"
+
+ double acosh(double x) /* wrapper acosh */
+{
+#ifdef CYGSEM_LIBM_COMPAT_IEEE_ONLY
+ return __ieee754_acosh(x);
+#else
+ double z;
+ z = __ieee754_acosh(x);
+ if(cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_IEEE || isnan(x)) return z;
+ if(x<1.0) {
+ return __kernel_standard(x,x,29); /* acosh(x<1) */
+ } else
+ return z;
+#endif
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF w_acosh.c
diff --git a/ecos/packages/language/c/libm/current/src/double/ieee754-api/w_asin.c b/ecos/packages/language/c/libm/current/src/double/ieee754-api/w_asin.c
new file mode 100644
index 0000000..639e3bb
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/double/ieee754-api/w_asin.c
@@ -0,0 +1,101 @@
+//===========================================================================
+//
+// w_asin.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/* @(#)w_asin.c 1.3 95/01/18 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunSoft, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ *
+ */
+
+/*
+ * wrapper asin(x)
+ */
+
+
+#include "mathincl/fdlibm.h"
+
+
+ double asin(double x) /* wrapper asin */
+{
+#ifdef CYGSEM_LIBM_COMPAT_IEEE_ONLY
+ return __ieee754_asin(x);
+#else
+ double z;
+ z = __ieee754_asin(x);
+ if(cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_IEEE || isnan(x)) return z;
+ if(fabs(x)>1.0) {
+ return __kernel_standard(x,x,2); /* asin(|x|>1) */
+ } else
+ return z;
+#endif
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF w_asin.c
diff --git a/ecos/packages/language/c/libm/current/src/double/ieee754-api/w_atan2.c b/ecos/packages/language/c/libm/current/src/double/ieee754-api/w_atan2.c
new file mode 100644
index 0000000..f20ad3e
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/double/ieee754-api/w_atan2.c
@@ -0,0 +1,100 @@
+//===========================================================================
+//
+// w_atan2.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/* @(#)w_atan2.c 1.3 95/01/18 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunSoft, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ *
+ */
+
+/*
+ * wrapper atan2(y,x)
+ */
+
+#include "mathincl/fdlibm.h"
+
+
+ double atan2(double y, double x) /* wrapper atan2 */
+{
+#ifdef CYGSEM_LIBM_COMPAT_IEEE_ONLY
+ return __ieee754_atan2(y,x);
+#else
+ double z;
+ z = __ieee754_atan2(y,x);
+ if(cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_IEEE||isnan(x)||isnan(y)) return z;
+ if(x==0.0&&y==0.0) {
+ return __kernel_standard(y,x,3); /* atan2(+-0,+-0) */
+ } else
+ return z;
+#endif
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF w_atan2.c
diff --git a/ecos/packages/language/c/libm/current/src/double/ieee754-api/w_atanh.c b/ecos/packages/language/c/libm/current/src/double/ieee754-api/w_atanh.c
new file mode 100644
index 0000000..3743d84
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/double/ieee754-api/w_atanh.c
@@ -0,0 +1,102 @@
+//===========================================================================
+//
+// w_atanh.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/* @(#)w_atanh.c 1.3 95/01/18 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunSoft, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+/*
+ * wrapper atanh(x)
+ */
+
+#include "mathincl/fdlibm.h"
+
+
+ double atanh(double x) /* wrapper atanh */
+{
+#ifdef CYGSEM_LIBM_COMPAT_IEEE_ONLY
+ return __ieee754_atanh(x);
+#else
+ double z,y;
+ z = __ieee754_atanh(x);
+ if(cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_IEEE || isnan(x)) return z;
+ y = fabs(x);
+ if(y>=1.0) {
+ if(y>1.0)
+ return __kernel_standard(x,x,30); /* atanh(|x|>1) */
+ else
+ return __kernel_standard(x,x,31); /* atanh(|x|==1) */
+ } else
+ return z;
+#endif
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF w_atanh.c
diff --git a/ecos/packages/language/c/libm/current/src/double/ieee754-api/w_cosh.c b/ecos/packages/language/c/libm/current/src/double/ieee754-api/w_cosh.c
new file mode 100644
index 0000000..c48d1ff
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/double/ieee754-api/w_cosh.c
@@ -0,0 +1,98 @@
+//===========================================================================
+//
+// w_cosh.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/* @(#)w_cosh.c 1.3 95/01/18 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunSoft, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/*
+ * wrapper cosh(x)
+ */
+
+#include "mathincl/fdlibm.h"
+
+ double cosh(double x) /* wrapper cosh */
+{
+#ifdef CYGSEM_LIBM_COMPAT_IEEE_ONLY
+ return __ieee754_cosh(x);
+#else
+ double z;
+ z = __ieee754_cosh(x);
+ if(cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_IEEE || isnan(x)) return z;
+ if(fabs(x)>7.10475860073943863426e+02) {
+ return __kernel_standard(x,x,5); /* cosh overflow */
+ } else
+ return z;
+#endif
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF w_cosh.c
diff --git a/ecos/packages/language/c/libm/current/src/double/ieee754-api/w_exp.c b/ecos/packages/language/c/libm/current/src/double/ieee754-api/w_exp.c
new file mode 100644
index 0000000..5008c5c
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/double/ieee754-api/w_exp.c
@@ -0,0 +1,105 @@
+//===========================================================================
+//
+// w_exp.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/* @(#)w_exp.c 1.3 95/01/18 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunSoft, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/*
+ * wrapper exp(x)
+ */
+
+#include "mathincl/fdlibm.h"
+
+static const double
+o_threshold= 7.09782712893383973096e+02, /* 0x40862E42, 0xFEFA39EF */
+u_threshold= -7.45133219101941108420e+02; /* 0xc0874910, 0xD52D3051 */
+
+ double exp(double x) /* wrapper exp */
+{
+#ifdef CYGSEM_LIBM_COMPAT_IEEE_ONLY
+ return __ieee754_exp(x);
+#else
+ double z;
+ z = __ieee754_exp(x);
+ if(cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_IEEE) return z;
+ if(finite(x)) {
+ if(x>o_threshold)
+ return __kernel_standard(x,x,6); /* exp overflow */
+ else if(x<u_threshold)
+ return __kernel_standard(x,x,7); /* exp underflow */
+ }
+ return z;
+#endif
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF w_exp.c
diff --git a/ecos/packages/language/c/libm/current/src/double/ieee754-api/w_fmod.c b/ecos/packages/language/c/libm/current/src/double/ieee754-api/w_fmod.c
new file mode 100644
index 0000000..9ad6e54
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/double/ieee754-api/w_fmod.c
@@ -0,0 +1,99 @@
+//===========================================================================
+//
+// w_fmod.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/* @(#)w_fmod.c 1.3 95/01/18 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunSoft, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/*
+ * wrapper fmod(x,y)
+ */
+
+#include "mathincl/fdlibm.h"
+
+
+ double fmod(double x, double y) /* wrapper fmod */
+{
+#ifdef CYGSEM_LIBM_COMPAT_IEEE_ONLY
+ return __ieee754_fmod(x,y);
+#else
+ double z;
+ z = __ieee754_fmod(x,y);
+ if(cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_IEEE ||isnan(y)||isnan(x)) return z;
+ if(y==0.0) {
+ return __kernel_standard(x,y,27); /* fmod(x,0) */
+ } else
+ return z;
+#endif
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF w_fmod.c
diff --git a/ecos/packages/language/c/libm/current/src/double/ieee754-api/w_gamma.c b/ecos/packages/language/c/libm/current/src/double/ieee754-api/w_gamma.c
new file mode 100644
index 0000000..a687cdb
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/double/ieee754-api/w_gamma.c
@@ -0,0 +1,107 @@
+//===========================================================================
+//
+// w_gamma.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/* @(#)w_gamma.c 1.3 95/01/18 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunSoft, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ *
+ */
+
+/* double gamma(double x)
+ * Return the logarithm of the Gamma function of x.
+ *
+ * Method: call gamma_r
+ */
+
+#include <math.h>
+#include "mathincl/fdlibm.h"
+
+
+double
+gamma(double x)
+{
+#ifdef CYGSEM_LIBM_COMPAT_IEEE_ONLY
+ return __ieee754_gamma_r(x,&signgam);
+#else
+ double y;
+ y = __ieee754_gamma_r(x,&signgam);
+ if(cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_IEEE) return y;
+ if(!finite(y)&&finite(x)) {
+ if(floor(x)==x&&x<=0.0)
+ return __kernel_standard(x,x,41); /* gamma pole */
+ else
+ return __kernel_standard(x,x,40); /* gamma overflow */
+ } else
+ return y;
+#endif
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF w_gamma.c
diff --git a/ecos/packages/language/c/libm/current/src/double/ieee754-api/w_gamma_r.c b/ecos/packages/language/c/libm/current/src/double/ieee754-api/w_gamma_r.c
new file mode 100644
index 0000000..3c9eb8b
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/double/ieee754-api/w_gamma_r.c
@@ -0,0 +1,102 @@
+//===========================================================================
+//
+// w_gamma_r.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/* @(#)w_gamma_r.c 1.3 95/01/18 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunSoft, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/*
+ * wrapper double gamma_r(double x, int *signgamp)
+ */
+
+#include "mathincl/fdlibm.h"
+
+
+ double gamma_r(double x, int *signgamp) /* wrapper lgamma_r */
+{
+#ifdef CYGSEM_LIBM_COMPAT_IEEE_ONLY
+ return __ieee754_gamma_r(x,signgamp);
+#else
+ double y;
+ y = __ieee754_gamma_r(x,signgamp);
+ if(cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_IEEE) return y;
+ if(!finite(y)&&finite(x)) {
+ if(floor(x)==x&&x<=0.0)
+ return __kernel_standard(x,x,41); /* gamma pole */
+ else
+ return __kernel_standard(x,x,40); /* gamma overflow */
+ } else
+ return y;
+#endif
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF w_gamma_r.c
diff --git a/ecos/packages/language/c/libm/current/src/double/ieee754-api/w_hypot.c b/ecos/packages/language/c/libm/current/src/double/ieee754-api/w_hypot.c
new file mode 100644
index 0000000..7fac196
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/double/ieee754-api/w_hypot.c
@@ -0,0 +1,99 @@
+//===========================================================================
+//
+// w_hypot.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/* @(#)w_hypot.c 1.3 95/01/18 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunSoft, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/*
+ * wrapper hypot(x,y)
+ */
+
+#include "mathincl/fdlibm.h"
+
+
+ double hypot(double x, double y)/* wrapper hypot */
+{
+#ifdef CYGSEM_LIBM_COMPAT_IEEE_ONLY
+ return __ieee754_hypot(x,y);
+#else
+ double z;
+ z = __ieee754_hypot(x,y);
+ if(cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_IEEE) return z;
+ if((!finite(z))&&finite(x)&&finite(y))
+ return __kernel_standard(x,y,4); /* hypot overflow */
+ else
+ return z;
+#endif
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF w_hypot.c
diff --git a/ecos/packages/language/c/libm/current/src/double/ieee754-api/w_j0.c b/ecos/packages/language/c/libm/current/src/double/ieee754-api/w_j0.c
new file mode 100644
index 0000000..972f8b8
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/double/ieee754-api/w_j0.c
@@ -0,0 +1,120 @@
+//===========================================================================
+//
+// w_j0.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/* @(#)w_j0.c 1.3 95/01/18 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunSoft, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/*
+ * wrapper j0(double x), y0(double x)
+ */
+
+#include "mathincl/fdlibm.h"
+
+ double j0(double x) /* wrapper j0 */
+{
+#ifdef CYGSEM_LIBM_COMPAT_IEEE_ONLY
+ return __ieee754_j0(x);
+#else
+ double z = __ieee754_j0(x);
+ if(cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_IEEE || isnan(x)) return z;
+ if(fabs(x)>X_TLOSS) {
+ return __kernel_standard(x,x,34); /* j0(|x|>X_TLOSS) */
+ } else
+ return z;
+#endif
+}
+
+ double y0(double x) /* wrapper y0 */
+{
+#ifdef CYGSEM_LIBM_COMPAT_IEEE_ONLY
+ return __ieee754_y0(x);
+#else
+ double z;
+ z = __ieee754_y0(x);
+ if(cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_IEEE || isnan(x) ) return z;
+ if(x <= 0.0){
+ if(x==0.0)
+ /* d= -one/(x-x); */
+ return __kernel_standard(x,x,8);
+ else
+ /* d = zero/(x-x); */
+ return __kernel_standard(x,x,9);
+ }
+ if(x>X_TLOSS) {
+ return __kernel_standard(x,x,35); /* y0(x>X_TLOSS) */
+ } else
+ return z;
+#endif
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF w_j0.c
diff --git a/ecos/packages/language/c/libm/current/src/double/ieee754-api/w_j1.c b/ecos/packages/language/c/libm/current/src/double/ieee754-api/w_j1.c
new file mode 100644
index 0000000..f99e4b1
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/double/ieee754-api/w_j1.c
@@ -0,0 +1,121 @@
+//===========================================================================
+//
+// w_j1.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/* @(#)w_j1.c 1.3 95/01/18 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunSoft, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/*
+ * wrapper of j1,y1
+ */
+
+#include "mathincl/fdlibm.h"
+
+ double j1(double x) /* wrapper j1 */
+{
+#ifdef CYGSEM_LIBM_COMPAT_IEEE_ONLY
+ return __ieee754_j1(x);
+#else
+ double z;
+ z = __ieee754_j1(x);
+ if(cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_IEEE || isnan(x) ) return z;
+ if(fabs(x)>X_TLOSS) {
+ return __kernel_standard(x,x,36); /* j1(|x|>X_TLOSS) */
+ } else
+ return z;
+#endif
+}
+
+ double y1(double x) /* wrapper y1 */
+{
+#ifdef CYGSEM_LIBM_COMPAT_IEEE_ONLY
+ return __ieee754_y1(x);
+#else
+ double z;
+ z = __ieee754_y1(x);
+ if(cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_IEEE || isnan(x) ) return z;
+ if(x <= 0.0){
+ if(x==0.0)
+ /* d= -one/(x-x); */
+ return __kernel_standard(x,x,10);
+ else
+ /* d = zero/(x-x); */
+ return __kernel_standard(x,x,11);
+ }
+ if(x>X_TLOSS) {
+ return __kernel_standard(x,x,37); /* y1(x>X_TLOSS) */
+ } else
+ return z;
+#endif
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF w_j1.c
diff --git a/ecos/packages/language/c/libm/current/src/double/ieee754-api/w_jn.c b/ecos/packages/language/c/libm/current/src/double/ieee754-api/w_jn.c
new file mode 100644
index 0000000..fb24788
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/double/ieee754-api/w_jn.c
@@ -0,0 +1,143 @@
+//===========================================================================
+//
+// w_jn.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/* @(#)w_jn.c 1.3 95/01/18 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunSoft, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/*
+ * wrapper jn(int n, double x), yn(int n, double x)
+ * floating point Bessel's function of the 1st and 2nd kind
+ * of order n
+ *
+ * Special cases:
+ * y0(0)=y1(0)=yn(n,0) = -inf with division by zero signal;
+ * y0(-ve)=y1(-ve)=yn(n,-ve) are NaN with invalid signal.
+ * Note 2. About jn(n,x), yn(n,x)
+ * For n=0, j0(x) is called,
+ * for n=1, j1(x) is called,
+ * for n<x, forward recursion us used starting
+ * from values of j0(x) and j1(x).
+ * for n>x, a continued fraction approximation to
+ * j(n,x)/j(n-1,x) is evaluated and then backward
+ * recursion is used starting from a supposed value
+ * for j(n,x). The resulting value of j(0,x) is
+ * compared with the actual value to correct the
+ * supposed value of j(n,x).
+ *
+ * yn(n,x) is similar in all respects, except
+ * that forward recursion is used for all
+ * values of n>1.
+ *
+ */
+
+#include "mathincl/fdlibm.h"
+
+ double jn(int n, double x) /* wrapper jn */
+{
+#ifdef CYGSEM_LIBM_COMPAT_IEEE_ONLY
+ return __ieee754_jn(n,x);
+#else
+ double z;
+ z = __ieee754_jn(n,x);
+ if(cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_IEEE || isnan(x) ) return z;
+ if(fabs(x)>X_TLOSS) {
+ return __kernel_standard((double)n,x,38); /* jn(|x|>X_TLOSS,n) */
+ } else
+ return z;
+#endif
+}
+
+ double yn(int n, double x) /* wrapper yn */
+{
+#ifdef CYGSEM_LIBM_COMPAT_IEEE_ONLY
+ return __ieee754_yn(n,x);
+#else
+ double z;
+ z = __ieee754_yn(n,x);
+ if(cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_IEEE || isnan(x) ) return z;
+ if(x <= 0.0){
+ if(x==0.0)
+ /* d= -one/(x-x); */
+ return __kernel_standard((double)n,x,12);
+ else
+ /* d = zero/(x-x); */
+ return __kernel_standard((double)n,x,13);
+ }
+ if(x>X_TLOSS) {
+ return __kernel_standard((double)n,x,39); /* yn(x>X_TLOSS,n) */
+ } else
+ return z;
+#endif
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF w_jn.c
diff --git a/ecos/packages/language/c/libm/current/src/double/ieee754-api/w_lgamma.c b/ecos/packages/language/c/libm/current/src/double/ieee754-api/w_lgamma.c
new file mode 100644
index 0000000..f965da5
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/double/ieee754-api/w_lgamma.c
@@ -0,0 +1,107 @@
+//===========================================================================
+//
+// w_lgamma.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/* @(#)w_lgamma.c 1.3 95/01/18 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunSoft, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ *
+ */
+
+/* double lgamma(double x)
+ * Return the logarithm of the Gamma function of x.
+ *
+ * Method: call __ieee754_lgamma_r
+ */
+
+#include <math.h>
+#include "mathincl/fdlibm.h"
+
+
+double
+lgamma(double x)
+{
+#ifdef CYGSEM_LIBM_COMPAT_IEEE_ONLY
+ return __ieee754_lgamma_r(x,&signgam);
+#else
+ double y;
+ y = __ieee754_lgamma_r(x,&signgam);
+ if(cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_IEEE) return y;
+ if(!finite(y)&&finite(x)) {
+ if(floor(x)==x&&x<=0.0)
+ return __kernel_standard(x,x,15); /* lgamma pole */
+ else
+ return __kernel_standard(x,x,14); /* lgamma overflow */
+ } else
+ return y;
+#endif
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF w_lgamma.c
diff --git a/ecos/packages/language/c/libm/current/src/double/ieee754-api/w_lgamma_r.c b/ecos/packages/language/c/libm/current/src/double/ieee754-api/w_lgamma_r.c
new file mode 100644
index 0000000..c92048b
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/double/ieee754-api/w_lgamma_r.c
@@ -0,0 +1,102 @@
+//===========================================================================
+//
+// w_lgamma_r.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/* @(#)w_lgamma_r.c 1.3 95/01/18 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunSoft, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/*
+ * wrapper double lgamma_r(double x, int *signgamp)
+ */
+
+#include "mathincl/fdlibm.h"
+
+
+ double lgamma_r(double x, int *signgamp) /* wrapper lgamma_r */
+{
+#ifdef CYGSEM_LIBM_COMPAT_IEEE_ONLY
+ return __ieee754_lgamma_r(x,signgamp);
+#else
+ double y;
+ y = __ieee754_lgamma_r(x,signgamp);
+ if(cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_IEEE) return y;
+ if(!finite(y)&&finite(x)) {
+ if(floor(x)==x&&x<=0.0)
+ return __kernel_standard(x,x,15); /* lgamma pole */
+ else
+ return __kernel_standard(x,x,14); /* lgamma overflow */
+ } else
+ return y;
+#endif
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF w_lgamma_r.c
diff --git a/ecos/packages/language/c/libm/current/src/double/ieee754-api/w_log.c b/ecos/packages/language/c/libm/current/src/double/ieee754-api/w_log.c
new file mode 100644
index 0000000..7c0c2dd
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/double/ieee754-api/w_log.c
@@ -0,0 +1,99 @@
+//===========================================================================
+//
+// w_log.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/* @(#)w_log.c 1.3 95/01/18 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunSoft, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/*
+ * wrapper log(x)
+ */
+
+#include "mathincl/fdlibm.h"
+
+
+ double log(double x) /* wrapper log */
+{
+#ifdef CYGSEM_LIBM_COMPAT_IEEE_ONLY
+ return __ieee754_log(x);
+#else
+ double z;
+ z = __ieee754_log(x);
+ if(cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_IEEE || isnan(x) || x > 0.0) return z;
+ if(x==0.0)
+ return __kernel_standard(x,x,16); /* log(0) */
+ else
+ return __kernel_standard(x,x,17); /* log(x<0) */
+#endif
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF w_log.c
diff --git a/ecos/packages/language/c/libm/current/src/double/ieee754-api/w_log10.c b/ecos/packages/language/c/libm/current/src/double/ieee754-api/w_log10.c
new file mode 100644
index 0000000..4de8b1c
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/double/ieee754-api/w_log10.c
@@ -0,0 +1,102 @@
+//===========================================================================
+//
+// w_log10.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/* @(#)w_log10.c 1.3 95/01/18 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunSoft, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/*
+ * wrapper log10(X)
+ */
+
+#include "mathincl/fdlibm.h"
+
+
+ double log10(double x) /* wrapper log10 */
+{
+#ifdef CYGSEM_LIBM_COMPAT_IEEE_ONLY
+ return __ieee754_log10(x);
+#else
+ double z;
+ z = __ieee754_log10(x);
+ if(cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_IEEE || isnan(x)) return z;
+ if(x<=0.0) {
+ if(x==0.0)
+ return __kernel_standard(x,x,18); /* log10(0) */
+ else
+ return __kernel_standard(x,x,19); /* log10(x<0) */
+ } else
+ return z;
+#endif
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF w_log10.c
diff --git a/ecos/packages/language/c/libm/current/src/double/ieee754-api/w_pow.c b/ecos/packages/language/c/libm/current/src/double/ieee754-api/w_pow.c
new file mode 100644
index 0000000..937ff21
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/double/ieee754-api/w_pow.c
@@ -0,0 +1,122 @@
+//========================================================================
+//
+// w_pow.c
+//
+// Part of the standard mathematical function library
+//
+//========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+
+/* @(#)w_pow.c 1.3 95/01/18 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunSoft, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/*
+ * wrapper pow(x,y) return x**y
+ */
+
+#include "mathincl/fdlibm.h"
+
+
+ double pow(double x, double y) /* wrapper pow */
+{
+#ifdef CYGSEM_LIBM_COMPAT_IEEE_ONLY
+ return __ieee754_pow(x,y);
+#else
+ double z;
+ z=__ieee754_pow(x,y);
+ if(cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_IEEE||
+ isnan(y))
+ return z;
+ if(isnan(x)) {
+ if(y==0.0)
+ return __kernel_standard(x,y,42); /* pow(NaN,0.0) */
+ else
+ return z;
+ }
+ if(x==0.0){
+ if(y==0.0)
+ return __kernel_standard(x,y,20); /* pow(0.0,0.0) */
+ if(finite(y)&&y<0.0)
+ return __kernel_standard(x,y,23); /* pow(0.0,negative) */
+ return z;
+ }
+ if(!finite(z)) {
+ if(finite(x)&&finite(y)) {
+ if(isnan(z))
+ return __kernel_standard(x,y,24);/* pow neg**non-int */
+ else
+ return __kernel_standard(x,y,21); /* pow overflow */
+ }
+ }
+ if(z==0.0&&finite(x)&&finite(y))
+ return __kernel_standard(x,y,22); /* pow underflow */
+ return z;
+#endif
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF w_pow.c
diff --git a/ecos/packages/language/c/libm/current/src/double/ieee754-api/w_remainder.c b/ecos/packages/language/c/libm/current/src/double/ieee754-api/w_remainder.c
new file mode 100644
index 0000000..4029f6b
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/double/ieee754-api/w_remainder.c
@@ -0,0 +1,98 @@
+//===========================================================================
+//
+// w_remainder.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/* @(#)w_remainder.c 1.3 95/01/18 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunSoft, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/*
+ * wrapper remainder(x,p)
+ */
+
+#include "mathincl/fdlibm.h"
+
+ double remainder(double x, double y) /* wrapper remainder */
+{
+#ifdef CYGSEM_LIBM_COMPAT_IEEE_ONLY
+ return __ieee754_remainder(x,y);
+#else
+ double z;
+ z = __ieee754_remainder(x,y);
+ if(cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_IEEE || isnan(y)) return z;
+ if(y==0.0)
+ return __kernel_standard(x,y,28); /* remainder(x,0) */
+ else
+ return z;
+#endif
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF w_remainder.c
diff --git a/ecos/packages/language/c/libm/current/src/double/ieee754-api/w_scalb.c b/ecos/packages/language/c/libm/current/src/double/ieee754-api/w_scalb.c
new file mode 100644
index 0000000..2bccebd
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/double/ieee754-api/w_scalb.c
@@ -0,0 +1,114 @@
+//===========================================================================
+//
+// w_scalb.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/* @(#)w_scalb.c 1.3 95/01/18 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunSoft, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/*
+ * wrapper scalb(double x, double fn) is provide for
+ * passing various standard test suite. One
+ * should use scalbn() instead.
+ */
+
+#include "mathincl/fdlibm.h"
+
+#ifndef CYGSEM_LIBM_COMPAT_IEEE_ONLY
+# include <errno.h>
+#endif
+
+#ifdef CYGFUN_LIBM_SVID3_scalb
+ double scalb(double x, double fn) /* wrapper scalb */
+#else
+ double scalb(double x, int fn) /* wrapper scalb */
+#endif
+{
+#ifdef CYGSEM_LIBM_COMPAT_IEEE_ONLY
+ return __ieee754_scalb(x,fn);
+#else
+ double z;
+ z = __ieee754_scalb(x,fn);
+ if(cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_IEEE) return z;
+ if(!(finite(z)||isnan(z))&&finite(x)) {
+ return __kernel_standard(x,(double)fn,32); /* scalb overflow */
+ }
+ if(z==0.0&&z!=x) {
+ return __kernel_standard(x,(double)fn,33); /* scalb underflow */
+ }
+#ifdef CYGFUN_LIBM_SVID3_scalb
+ if(!finite(fn)) errno = ERANGE;
+#endif
+ return z;
+#endif
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF w_scalb.c
diff --git a/ecos/packages/language/c/libm/current/src/double/ieee754-api/w_sinh.c b/ecos/packages/language/c/libm/current/src/double/ieee754-api/w_sinh.c
new file mode 100644
index 0000000..57fb4b1
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/double/ieee754-api/w_sinh.c
@@ -0,0 +1,98 @@
+//===========================================================================
+//
+// w_sinh.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/* @(#)w_sinh.c 1.3 95/01/18 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunSoft, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/*
+ * wrapper sinh(x)
+ */
+
+#include "mathincl/fdlibm.h"
+
+ double sinh(double x) /* wrapper sinh */
+{
+#ifdef CYGSEM_LIBM_COMPAT_IEEE_ONLY
+ return __ieee754_sinh(x);
+#else
+ double z;
+ z = __ieee754_sinh(x);
+ if(cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_IEEE) return z;
+ if(!finite(z)&&finite(x)) {
+ return __kernel_standard(x,x,25); /* sinh overflow */
+ } else
+ return z;
+#endif
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF w_sinh.c
diff --git a/ecos/packages/language/c/libm/current/src/double/ieee754-api/w_sqrt.c b/ecos/packages/language/c/libm/current/src/double/ieee754-api/w_sqrt.c
new file mode 100644
index 0000000..197c488
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/double/ieee754-api/w_sqrt.c
@@ -0,0 +1,98 @@
+//===========================================================================
+//
+// w_sqrt.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/* @(#)w_sqrt.c 1.3 95/01/18 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunSoft, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/*
+ * wrapper sqrt(x)
+ */
+
+#include "mathincl/fdlibm.h"
+
+ double sqrt(double x) /* wrapper sqrt */
+{
+#ifdef CYGSEM_LIBM_COMPAT_IEEE_ONLY
+ return __ieee754_sqrt(x);
+#else
+ double z;
+ z = __ieee754_sqrt(x);
+ if(cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_IEEE || isnan(x)) return z;
+ if(x<0.0) {
+ return __kernel_standard(x,x,26); /* sqrt(negative) */
+ } else
+ return z;
+#endif
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF w_sqrt.c
diff --git a/ecos/packages/language/c/libm/current/src/double/ieee754-core/e_acos.c b/ecos/packages/language/c/libm/current/src/double/ieee754-core/e_acos.c
new file mode 100644
index 0000000..31f933b
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/double/ieee754-core/e_acos.c
@@ -0,0 +1,161 @@
+//===========================================================================
+//
+// e_acos.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/* @(#)e_acos.c 1.3 95/01/18 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunSoft, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/* __ieee754_acos(x)
+ * Method :
+ * acos(x) = pi/2 - asin(x)
+ * acos(-x) = pi/2 + asin(x)
+ * For |x|<=0.5
+ * acos(x) = pi/2 - (x + x*x^2*R(x^2)) (see asin.c)
+ * For x>0.5
+ * acos(x) = pi/2 - (pi/2 - 2asin(sqrt((1-x)/2)))
+ * = 2asin(sqrt((1-x)/2))
+ * = 2s + 2s*z*R(z) ...z=(1-x)/2, s=sqrt(z)
+ * = 2f + (2c + 2s*z*R(z))
+ * where f=hi part of s, and c = (z-f*f)/(s+f) is the correction term
+ * for f so that f+c ~ sqrt(z).
+ * For x<-0.5
+ * acos(x) = pi - 2asin(sqrt((1-|x|)/2))
+ * = pi - 0.5*(s+s*z*R(z)), where z=(1-|x|)/2,s=sqrt(z)
+ *
+ * Special cases:
+ * if x is NaN, return x itself;
+ * if |x|>1, return NaN with invalid signal.
+ *
+ * Function needed: sqrt
+ */
+
+#include "mathincl/fdlibm.h"
+
+static const double
+one= 1.00000000000000000000e+00, /* 0x3FF00000, 0x00000000 */
+pi = 3.14159265358979311600e+00, /* 0x400921FB, 0x54442D18 */
+pio2_hi = 1.57079632679489655800e+00, /* 0x3FF921FB, 0x54442D18 */
+pio2_lo = 6.12323399573676603587e-17, /* 0x3C91A626, 0x33145C07 */
+pS0 = 1.66666666666666657415e-01, /* 0x3FC55555, 0x55555555 */
+pS1 = -3.25565818622400915405e-01, /* 0xBFD4D612, 0x03EB6F7D */
+pS2 = 2.01212532134862925881e-01, /* 0x3FC9C155, 0x0E884455 */
+pS3 = -4.00555345006794114027e-02, /* 0xBFA48228, 0xB5688F3B */
+pS4 = 7.91534994289814532176e-04, /* 0x3F49EFE0, 0x7501B288 */
+pS5 = 3.47933107596021167570e-05, /* 0x3F023DE1, 0x0DFDF709 */
+qS1 = -2.40339491173441421878e+00, /* 0xC0033A27, 0x1C8A2D4B */
+qS2 = 2.02094576023350569471e+00, /* 0x40002AE5, 0x9C598AC8 */
+qS3 = -6.88283971605453293030e-01, /* 0xBFE6066C, 0x1B8D0159 */
+qS4 = 7.70381505559019352791e-02; /* 0x3FB3B8C5, 0xB12E9282 */
+
+ double __ieee754_acos(double x)
+{
+ double z,p,q,r,w,s,c,df;
+ int hx,ix;
+ hx = CYG_LIBM_HI(x);
+ ix = hx&0x7fffffff;
+ if(ix>=0x3ff00000) { /* |x| >= 1 */
+ if(((ix-0x3ff00000)|CYG_LIBM_LO(x))==0) { /* |x|==1 */
+ if(hx>0) return 0.0; /* acos(1) = 0 */
+ else return pi+2.0*pio2_lo; /* acos(-1)= pi */
+ }
+ return (x-x)/(x-x); /* acos(|x|>1) is NaN */
+ }
+ if(ix<0x3fe00000) { /* |x| < 0.5 */
+ if(ix<=0x3c600000) return pio2_hi+pio2_lo;/*if|x|<2**-57*/
+ z = x*x;
+ p = z*(pS0+z*(pS1+z*(pS2+z*(pS3+z*(pS4+z*pS5)))));
+ q = one+z*(qS1+z*(qS2+z*(qS3+z*qS4)));
+ r = p/q;
+ return pio2_hi - (x - (pio2_lo-x*r));
+ } else if (hx<0) { /* x < -0.5 */
+ z = (one+x)*0.5;
+ p = z*(pS0+z*(pS1+z*(pS2+z*(pS3+z*(pS4+z*pS5)))));
+ q = one+z*(qS1+z*(qS2+z*(qS3+z*qS4)));
+ s = sqrt(z);
+ r = p/q;
+ w = r*s-pio2_lo;
+ return pi - 2.0*(s+w);
+ } else { /* x > 0.5 */
+ z = (one-x)*0.5;
+ s = sqrt(z);
+ df = s;
+ CYG_LIBM_LO(df) = 0;
+ c = (z-df*df)/(s+df);
+ p = z*(pS0+z*(pS1+z*(pS2+z*(pS3+z*(pS4+z*pS5)))));
+ q = one+z*(qS1+z*(qS2+z*(qS3+z*qS4)));
+ r = p/q;
+ w = r*s+c;
+ return 2.0*(df+w);
+ }
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF e_acos.c
diff --git a/ecos/packages/language/c/libm/current/src/double/ieee754-core/e_acosh.c b/ecos/packages/language/c/libm/current/src/double/ieee754-core/e_acosh.c
new file mode 100644
index 0000000..da1695b
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/double/ieee754-core/e_acosh.c
@@ -0,0 +1,121 @@
+//===========================================================================
+//
+// e_acosh.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/* @(#)e_acosh.c 1.3 95/01/18 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunSoft, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ *
+ */
+
+/* __ieee754_acosh(x)
+ * Method :
+ * Based on
+ * acosh(x) = log [ x + sqrt(x*x-1) ]
+ * we have
+ * acosh(x) := log(x)+ln2, if x is large; else
+ * acosh(x) := log(2x-1/(sqrt(x*x-1)+x)) if x>2; else
+ * acosh(x) := log1p(t+sqrt(2.0*t+t*t)); where t=x-1.
+ *
+ * Special cases:
+ * acosh(x) is NaN with signal if x<1.
+ * acosh(NaN) is NaN without signal.
+ */
+
+#include "mathincl/fdlibm.h"
+
+static const double
+one = 1.0,
+ln2 = 6.93147180559945286227e-01; /* 0x3FE62E42, 0xFEFA39EF */
+
+ double __ieee754_acosh(double x)
+{
+ double t;
+ int hx;
+ hx = CYG_LIBM_HI(x);
+ if(hx<0x3ff00000) { /* x < 1 */
+ return (x-x)/(x-x);
+ } else if(hx >=0x41b00000) { /* x > 2**28 */
+ if(hx >=0x7ff00000) { /* x is inf of NaN */
+ return x+x;
+ } else
+ return __ieee754_log(x)+ln2; /* acosh(huge)=log(2x) */
+ } else if(((hx-0x3ff00000)|CYG_LIBM_LO(x))==0) {
+ return 0.0; /* acosh(1) = 0 */
+ } else if (hx > 0x40000000) { /* 2**28 > x > 2 */
+ t=x*x;
+ return __ieee754_log(2.0*x-one/(x+sqrt(t-one)));
+ } else { /* 1<x<2 */
+ t = x-one;
+ return log1p(t+sqrt(2.0*t+t*t));
+ }
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF e_acosh.c
diff --git a/ecos/packages/language/c/libm/current/src/double/ieee754-core/e_asin.c b/ecos/packages/language/c/libm/current/src/double/ieee754-core/e_asin.c
new file mode 100644
index 0000000..e3391c6
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/double/ieee754-core/e_asin.c
@@ -0,0 +1,172 @@
+//===========================================================================
+//
+// e_asin.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/* @(#)e_asin.c 1.3 95/01/18 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunSoft, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/* __ieee754_asin(x)
+ * Method :
+ * Since asin(x) = x + x^3/6 + x^5*3/40 + x^7*15/336 + ...
+ * we approximate asin(x) on [0,0.5] by
+ * asin(x) = x + x*x^2*R(x^2)
+ * where
+ * R(x^2) is a rational approximation of (asin(x)-x)/x^3
+ * and its remez error is bounded by
+ * |(asin(x)-x)/x^3 - R(x^2)| < 2^(-58.75)
+ *
+ * For x in [0.5,1]
+ * asin(x) = pi/2-2*asin(sqrt((1-x)/2))
+ * Let y = (1-x), z = y/2, s := sqrt(z), and pio2_hi+pio2_lo=pi/2;
+ * then for x>0.98
+ * asin(x) = pi/2 - 2*(s+s*z*R(z))
+ * = pio2_hi - (2*(s+s*z*R(z)) - pio2_lo)
+ * For x<=0.98, let pio4_hi = pio2_hi/2, then
+ * f = hi part of s;
+ * c = sqrt(z) - f = (z-f*f)/(s+f) ...f+c=sqrt(z)
+ * and
+ * asin(x) = pi/2 - 2*(s+s*z*R(z))
+ * = pio4_hi+(pio4-2s)-(2s*z*R(z)-pio2_lo)
+ * = pio4_hi+(pio4-2f)-(2s*z*R(z)-(pio2_lo+2c))
+ *
+ * Special cases:
+ * if x is NaN, return x itself;
+ * if |x|>1, return NaN with invalid signal.
+ *
+ */
+
+
+#include "mathincl/fdlibm.h"
+
+static const double
+one = 1.00000000000000000000e+00, /* 0x3FF00000, 0x00000000 */
+huge = 1.000e+300,
+pio2_hi = 1.57079632679489655800e+00, /* 0x3FF921FB, 0x54442D18 */
+pio2_lo = 6.12323399573676603587e-17, /* 0x3C91A626, 0x33145C07 */
+pio4_hi = 7.85398163397448278999e-01, /* 0x3FE921FB, 0x54442D18 */
+ /* coefficient for R(x^2) */
+pS0 = 1.66666666666666657415e-01, /* 0x3FC55555, 0x55555555 */
+pS1 = -3.25565818622400915405e-01, /* 0xBFD4D612, 0x03EB6F7D */
+pS2 = 2.01212532134862925881e-01, /* 0x3FC9C155, 0x0E884455 */
+pS3 = -4.00555345006794114027e-02, /* 0xBFA48228, 0xB5688F3B */
+pS4 = 7.91534994289814532176e-04, /* 0x3F49EFE0, 0x7501B288 */
+pS5 = 3.47933107596021167570e-05, /* 0x3F023DE1, 0x0DFDF709 */
+qS1 = -2.40339491173441421878e+00, /* 0xC0033A27, 0x1C8A2D4B */
+qS2 = 2.02094576023350569471e+00, /* 0x40002AE5, 0x9C598AC8 */
+qS3 = -6.88283971605453293030e-01, /* 0xBFE6066C, 0x1B8D0159 */
+qS4 = 7.70381505559019352791e-02; /* 0x3FB3B8C5, 0xB12E9282 */
+
+ double __ieee754_asin(double x)
+{
+ double t,w,p,q,c,r,s;
+ int hx,ix;
+
+ hx = CYG_LIBM_HI(x);
+ ix = hx&0x7fffffff;
+ if(ix>= 0x3ff00000) { /* |x|>= 1 */
+ if(((ix-0x3ff00000)|CYG_LIBM_LO(x))==0)
+ /* asin(1)=+-pi/2 with inexact */
+ return x*pio2_hi+x*pio2_lo;
+ return (x-x)/(x-x); /* asin(|x|>1) is NaN */
+ } else if (ix<0x3fe00000) { /* |x|<0.5 */
+ if(ix<0x3e400000) { /* if |x| < 2**-27 */
+ if(huge+x>one) return x;/* return x with inexact if x!=0*/
+ } else {
+ t = x*x;
+ p = t*(pS0+t*(pS1+t*(pS2+t*(pS3+t*(pS4+t*pS5)))));
+ q = one+t*(qS1+t*(qS2+t*(qS3+t*qS4)));
+ w = p/q;
+ return x+x*w;
+ }
+ }
+ /* 1> |x|>= 0.5 */
+ w = one-fabs(x);
+ t = w*0.5;
+ p = t*(pS0+t*(pS1+t*(pS2+t*(pS3+t*(pS4+t*pS5)))));
+ q = one+t*(qS1+t*(qS2+t*(qS3+t*qS4)));
+ s = sqrt(t);
+ if(ix>=0x3FEF3333) { /* if |x| > 0.975 */
+ w = p/q;
+ t = pio2_hi-(2.0*(s+s*w)-pio2_lo);
+ } else {
+ w = s;
+ CYG_LIBM_LO(w) = 0;
+ c = (t-w*w)/(s+w);
+ r = p/q;
+ p = 2.0*s*r-(pio2_lo-2.0*c);
+ q = pio4_hi-2.0*w;
+ t = pio4_hi-(p-q);
+ }
+ if(hx>0) return t; else return -t;
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF e_asin.c
diff --git a/ecos/packages/language/c/libm/current/src/double/ieee754-core/e_atan2.c b/ecos/packages/language/c/libm/current/src/double/ieee754-core/e_atan2.c
new file mode 100644
index 0000000..f3c94cf
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/double/ieee754-core/e_atan2.c
@@ -0,0 +1,179 @@
+//===========================================================================
+//
+// e_atan2.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/* @(#)e_atan2.c 1.3 95/01/18 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunSoft, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ *
+ */
+
+/* __ieee754_atan2(y,x)
+ * Method :
+ * 1. Reduce y to positive by atan2(y,x)=-atan2(-y,x).
+ * 2. Reduce x to positive by (if x and y are unexceptional):
+ * ARG (x+iy) = arctan(y/x) ... if x > 0,
+ * ARG (x+iy) = pi - arctan[y/(-x)] ... if x < 0,
+ *
+ * Special cases:
+ *
+ * ATAN2((anything), NaN ) is NaN;
+ * ATAN2(NAN , (anything) ) is NaN;
+ * ATAN2(+-0, +(anything but NaN)) is +-0 ;
+ * ATAN2(+-0, -(anything but NaN)) is +-pi ;
+ * ATAN2(+-(anything but 0 and NaN), 0) is +-pi/2;
+ * ATAN2(+-(anything but INF and NaN), +INF) is +-0 ;
+ * ATAN2(+-(anything but INF and NaN), -INF) is +-pi;
+ * ATAN2(+-INF,+INF ) is +-pi/4 ;
+ * ATAN2(+-INF,-INF ) is +-3pi/4;
+ * ATAN2(+-INF, (anything but,0,NaN, and INF)) is +-pi/2;
+ *
+ * Constants:
+ * The hexadecimal values are the intended ones for the following
+ * constants. The decimal values may be used, provided that the
+ * compiler will convert from decimal to binary accurately enough
+ * to produce the hexadecimal values shown.
+ */
+
+#include "mathincl/fdlibm.h"
+
+static const double
+tiny = 1.0e-300,
+zero = 0.0,
+pi_o_4 = 7.8539816339744827900E-01, /* 0x3FE921FB, 0x54442D18 */
+pi_o_2 = 1.5707963267948965580E+00, /* 0x3FF921FB, 0x54442D18 */
+pi = 3.1415926535897931160E+00, /* 0x400921FB, 0x54442D18 */
+pi_lo = 1.2246467991473531772E-16; /* 0x3CA1A626, 0x33145C07 */
+
+ double __ieee754_atan2(double y, double x)
+{
+ double z;
+ int k,m,hx,hy,ix,iy;
+ unsigned lx,ly;
+
+ hx = CYG_LIBM_HI(x); ix = hx&0x7fffffff;
+ lx = CYG_LIBM_LO(x);
+ hy = CYG_LIBM_HI(y); iy = hy&0x7fffffff;
+ ly = CYG_LIBM_LO(y);
+ if(((ix|((lx|-lx)>>31))>0x7ff00000)||
+ ((iy|((ly|-ly)>>31))>0x7ff00000)) /* x or y is NaN */
+ return x+y;
+ if(((hx-0x3ff00000)|lx)==0) return atan(y); /* x=1.0 */
+ m = ((hy>>31)&1)|((hx>>30)&2); /* 2*sign(x)+sign(y) */
+
+ /* when y = 0 */
+ if((iy|ly)==0) {
+ switch(m) {
+ case 0:
+ case 1: return y; /* atan(+-0,+anything)=+-0 */
+ case 2: return pi+tiny;/* atan(+0,-anything) = pi */
+ case 3: return -pi-tiny;/* atan(-0,-anything) =-pi */
+ }
+ }
+ /* when x = 0 */
+ if((ix|lx)==0) return (hy<0)? -pi_o_2-tiny: pi_o_2+tiny;
+
+ /* when x is INF */
+ if(ix==0x7ff00000) {
+ if(iy==0x7ff00000) {
+ switch(m) {
+ case 0: return pi_o_4+tiny;/* atan(+INF,+INF) */
+ case 1: return -pi_o_4-tiny;/* atan(-INF,+INF) */
+ case 2: return 3.0*pi_o_4+tiny;/*atan(+INF,-INF)*/
+ case 3: return -3.0*pi_o_4-tiny;/*atan(-INF,-INF)*/
+ }
+ } else {
+ switch(m) {
+ case 0: return zero ; /* atan(+...,+INF) */
+ case 1: return -zero ; /* atan(-...,+INF) */
+ case 2: return pi+tiny ; /* atan(+...,-INF) */
+ case 3: return -pi-tiny ; /* atan(-...,-INF) */
+ }
+ }
+ }
+ /* when y is INF */
+ if(iy==0x7ff00000) return (hy<0)? -pi_o_2-tiny: pi_o_2+tiny;
+
+ /* compute y/x */
+ k = (iy-ix)>>20;
+ if(k > 60) z=pi_o_2+0.5*pi_lo; /* |y/x| > 2**60 */
+ else if(hx<0&&k<-60) z=0.0; /* |y|/x < -2**60 */
+ else z=atan(fabs(y/x)); /* safe to do y/x */
+ switch (m) {
+ case 0: return z ; /* atan(+,+) */
+ case 1: CYG_LIBM_HI(z) ^= 0x80000000;
+ return z ; /* atan(-,+) */
+ case 2: return pi-(z-pi_lo);/* atan(+,-) */
+ default: /* case 3 */
+ return (z-pi_lo)-pi;/* atan(-,-) */
+ }
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF e_atan2.c
diff --git a/ecos/packages/language/c/libm/current/src/double/ieee754-core/e_atanh.c b/ecos/packages/language/c/libm/current/src/double/ieee754-core/e_atanh.c
new file mode 100644
index 0000000..0eeb5c9
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/double/ieee754-core/e_atanh.c
@@ -0,0 +1,124 @@
+//===========================================================================
+//
+// e_atanh.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/* @(#)e_atanh.c 1.3 95/01/18 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunSoft, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ *
+ */
+
+/* __ieee754_atanh(x)
+ * Method :
+ * 1.Reduced x to positive by atanh(-x) = -atanh(x)
+ * 2.For x>=0.5
+ * 1 2x x
+ * atanh(x) = --- * log(1 + -------) = 0.5 * log1p(2 * --------)
+ * 2 1 - x 1 - x
+ *
+ * For x<0.5
+ * atanh(x) = 0.5*log1p(2x+2x*x/(1-x))
+ *
+ * Special cases:
+ * atanh(x) is NaN if |x| > 1 with signal;
+ * atanh(NaN) is that NaN with no signal;
+ * atanh(+-1) is +-INF with signal.
+ *
+ */
+
+#include "mathincl/fdlibm.h"
+
+static const double one = 1.0, huge = 1e300;
+
+static double zero = 0.0;
+
+ double __ieee754_atanh(double x)
+{
+ double t;
+ int hx,ix;
+ unsigned lx;
+ hx = CYG_LIBM_HI(x); /* high word */
+ lx = CYG_LIBM_LO(x); /* low word */
+ ix = hx&0x7fffffff;
+ if ((ix|((lx|(-lx))>>31))>0x3ff00000) /* |x|>1 */
+ return (x-x)/(x-x);
+ if(ix==0x3ff00000)
+ return x/zero;
+ if(ix<0x3e300000&&(huge+x)>zero) return x; /* x<2**-28 */
+ CYG_LIBM_HI(x) = ix; /* x <- |x| */
+ if(ix<0x3fe00000) { /* x < 0.5 */
+ t = x+x;
+ t = 0.5*log1p(t+t*x/(one-x));
+ } else
+ t = 0.5*log1p((x+x)/(one-x));
+ if(hx>=0) return t; else return -t;
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF e_atanh.c
diff --git a/ecos/packages/language/c/libm/current/src/double/ieee754-core/e_cosh.c b/ecos/packages/language/c/libm/current/src/double/ieee754-core/e_cosh.c
new file mode 100644
index 0000000..e3a68fa
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/double/ieee754-core/e_cosh.c
@@ -0,0 +1,145 @@
+//===========================================================================
+//
+// e_cosh.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/* @(#)e_cosh.c 1.3 95/01/18 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunSoft, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/* __ieee754_cosh(x)
+ * Method :
+ * mathematically cosh(x) if defined to be (exp(x)+exp(-x))/2
+ * 1. Replace x by |x| (cosh(x) = cosh(-x)).
+ * 2.
+ * [ exp(x) - 1 ]^2
+ * 0 <= x <= ln2/2 : cosh(x) := 1 + -------------------
+ * 2*exp(x)
+ *
+ * exp(x) + 1/exp(x)
+ * ln2/2 <= x <= 22 : cosh(x) := -------------------
+ * 2
+ * 22 <= x <= lnovft : cosh(x) := exp(x)/2
+ * lnovft <= x <= ln2ovft: cosh(x) := exp(x/2)/2 * exp(x/2)
+ * ln2ovft < x : cosh(x) := huge*huge (overflow)
+ *
+ * Special cases:
+ * cosh(x) is |x| if x is +INF, -INF, or NaN.
+ * only cosh(0)=1 is exact for finite x.
+ */
+
+#include "mathincl/fdlibm.h"
+
+static const double one = 1.0, half=0.5, huge = 1.0e300;
+
+ double __ieee754_cosh(double x)
+{
+ double t,w;
+ int ix;
+ unsigned lx;
+
+ /* High word of |x|. */
+ ix = CYG_LIBM_HI(x);
+ ix &= 0x7fffffff;
+
+ /* x is INF or NaN */
+ if(ix>=0x7ff00000) return x*x;
+
+ /* |x| in [0,0.5*ln2], return 1+expm1(|x|)^2/(2*exp(|x|)) */
+ if(ix<0x3fd62e43) {
+ t = expm1(fabs(x));
+ w = one+t;
+ if (ix<0x3c800000) return w; /* cosh(tiny) = 1 */
+ return one+(t*t)/(w+w);
+ }
+
+ /* |x| in [0.5*ln2,22], return (exp(|x|)+1/exp(|x|)/2; */
+ if (ix < 0x40360000) {
+ t = __ieee754_exp(fabs(x));
+ return half*t+half/t;
+ }
+
+ /* |x| in [22, log(maxdouble)] return half*exp(|x|) */
+ if (ix < 0x40862E42) return half*__ieee754_exp(fabs(x));
+
+ /* |x| in [log(maxdouble), overflowthresold] */
+ lx = CYG_LIBM_LO(x);
+ if (ix<0x408633CE ||
+ ((ix==0x408633ce)&&(lx<=(unsigned)0x8fb9f87d))) {
+ w = __ieee754_exp(half*fabs(x));
+ t = half*w;
+ return t*w;
+ }
+
+ /* |x| > overflowthresold, cosh(x) overflow */
+ return huge*huge;
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF e_cosh.c
diff --git a/ecos/packages/language/c/libm/current/src/double/ieee754-core/e_exp.c b/ecos/packages/language/c/libm/current/src/double/ieee754-core/e_exp.c
new file mode 100644
index 0000000..34d76af
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/double/ieee754-core/e_exp.c
@@ -0,0 +1,217 @@
+//===========================================================================
+//
+// e_exp.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/* @(#)e_exp.c 1.3 95/01/18 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunSoft, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/* __ieee754_exp(x)
+ * Returns the exponential of x.
+ *
+ * Method
+ * 1. Argument reduction:
+ * Reduce x to an r so that |r| <= 0.5*ln2 ~ 0.34658.
+ * Given x, find r and integer k such that
+ *
+ * x = k*ln2 + r, |r| <= 0.5*ln2.
+ *
+ * Here r will be represented as r = hi-lo for better
+ * accuracy.
+ *
+ * 2. Approximation of exp(r) by a special rational function on
+ * the interval [0,0.34658]:
+ * Write
+ * R(r**2) = r*(exp(r)+1)/(exp(r)-1) = 2 + r*r/6 - r**4/360 + ...
+ * We use a special Reme algorithm on [0,0.34658] to generate
+ * a polynomial of degree 5 to approximate R. The maximum error
+ * of this polynomial approximation is bounded by 2**-59. In
+ * other words,
+ * R(z) ~ 2.0 + P1*z + P2*z**2 + P3*z**3 + P4*z**4 + P5*z**5
+ * (where z=r*r, and the values of P1 to P5 are listed below)
+ * and
+ * | 5 | -59
+ * | 2.0+P1*z+...+P5*z - R(z) | <= 2
+ * | |
+ * The computation of exp(r) thus becomes
+ * 2*r
+ * exp(r) = 1 + -------
+ * R - r
+ * r*R1(r)
+ * = 1 + r + ----------- (for better accuracy)
+ * 2 - R1(r)
+ * where
+ * 2 4 10
+ * R1(r) = r - (P1*r + P2*r + ... + P5*r ).
+ *
+ * 3. Scale back to obtain exp(x):
+ * From step 1, we have
+ * exp(x) = 2^k * exp(r)
+ *
+ * Special cases:
+ * exp(INF) is INF, exp(NaN) is NaN;
+ * exp(-INF) is 0, and
+ * for finite argument, only exp(0)=1 is exact.
+ *
+ * Accuracy:
+ * according to an error analysis, the error is always less than
+ * 1 ulp (unit in the last place).
+ *
+ * Misc. info.
+ * For IEEE double
+ * if x > 7.09782712893383973096e+02 then exp(x) overflow
+ * if x < -7.45133219101941108420e+02 then exp(x) underflow
+ *
+ * Constants:
+ * The hexadecimal values are the intended ones for the following
+ * constants. The decimal values may be used, provided that the
+ * compiler will convert from decimal to binary accurately enough
+ * to produce the hexadecimal values shown.
+ */
+
+#include "mathincl/fdlibm.h"
+
+static const double
+one = 1.0,
+halF[2] = {0.5,-0.5,},
+huge = 1.0e+300,
+twom1000= 9.33263618503218878990e-302, /* 2**-1000=0x01700000,0*/
+o_threshold= 7.09782712893383973096e+02, /* 0x40862E42, 0xFEFA39EF */
+u_threshold= -7.45133219101941108420e+02, /* 0xc0874910, 0xD52D3051 */
+ln2HI[2] ={ 6.93147180369123816490e-01, /* 0x3fe62e42, 0xfee00000 */
+ -6.93147180369123816490e-01,},/* 0xbfe62e42, 0xfee00000 */
+ln2LO[2] ={ 1.90821492927058770002e-10, /* 0x3dea39ef, 0x35793c76 */
+ -1.90821492927058770002e-10,},/* 0xbdea39ef, 0x35793c76 */
+invln2 = 1.44269504088896338700e+00, /* 0x3ff71547, 0x652b82fe */
+P1 = 1.66666666666666019037e-01, /* 0x3FC55555, 0x5555553E */
+P2 = -2.77777777770155933842e-03, /* 0xBF66C16C, 0x16BEBD93 */
+P3 = 6.61375632143793436117e-05, /* 0x3F11566A, 0xAF25DE2C */
+P4 = -1.65339022054652515390e-06, /* 0xBEBBBD41, 0xC5D26BF1 */
+P5 = 4.13813679705723846039e-08; /* 0x3E663769, 0x72BEA4D0 */
+
+
+ double __ieee754_exp(double x) /* default IEEE double exp */
+{
+ double y,hi,lo,c,t;
+ int k,xsb;
+ unsigned hx;
+
+ hi=lo=0.0; /* to placate compiler */
+ hx = CYG_LIBM_HI(x); /* high word of x */
+ xsb = (hx>>31)&1; /* sign bit of x */
+ hx &= 0x7fffffff; /* high word of |x| */
+
+ /* filter out non-finite argument */
+ if(hx >= 0x40862E42) { /* if |x|>=709.78... */
+ if(hx>=0x7ff00000) {
+ if(((hx&0xfffff)|CYG_LIBM_LO(x))!=0)
+ return x+x; /* NaN */
+ else return (xsb==0)? x:0.0; /* exp(+-inf)={inf,0} */
+ }
+ if(x > o_threshold) return huge*huge; /* overflow */
+ if(x < u_threshold) return twom1000*twom1000; /* underflow */
+ }
+
+ /* argument reduction */
+ if(hx > 0x3fd62e42) { /* if |x| > 0.5 ln2 */
+ if(hx < 0x3FF0A2B2) { /* and |x| < 1.5 ln2 */
+ hi = x-ln2HI[xsb]; lo=ln2LO[xsb]; k = 1-xsb-xsb;
+ } else {
+ k = invln2*x+halF[xsb];
+ t = k;
+ hi = x - t*ln2HI[0]; /* t*ln2HI is exact here */
+ lo = t*ln2LO[0];
+ }
+ x = hi - lo;
+ }
+ else if(hx < 0x3e300000) { /* when |x|<2**-28 */
+ if(huge+x>one)
+ return one+x;/* trigger inexact */
+ else
+ k = 0;
+ }
+ else k = 0;
+
+ /* x is now in primary range */
+ t = x*x;
+ c = x - t*(P1+t*(P2+t*(P3+t*(P4+t*P5))));
+ if(k==0) return one-((x*c)/(c-2.0)-x);
+ else y = one-((lo-(x*c)/(2.0-c))-hi);
+ if(k >= -1021) {
+ CYG_LIBM_HI(y) += (k<<20); /* add k to y's exponent */
+ return y;
+ } else {
+ CYG_LIBM_HI(y) += ((k+1000)<<20);/* add k to y's exponent */
+ return y*twom1000;
+ }
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF e_exp.c
diff --git a/ecos/packages/language/c/libm/current/src/double/ieee754-core/e_fmod.c b/ecos/packages/language/c/libm/current/src/double/ieee754-core/e_fmod.c
new file mode 100644
index 0000000..18519bf
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/double/ieee754-core/e_fmod.c
@@ -0,0 +1,196 @@
+//===========================================================================
+//
+// e_fmod.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/* @(#)e_fmod.c 1.3 95/01/18 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunSoft, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/*
+ * __ieee754_fmod(x,y)
+ * Return x mod y in exact arithmetic
+ * Method: shift and subtract
+ */
+
+#include "mathincl/fdlibm.h"
+
+static const double one = 1.0, Zero[] = {0.0, -0.0,};
+
+ double __ieee754_fmod(double x, double y)
+{
+ int n,hx,hy,hz,ix,iy,sx,i;
+ unsigned lx,ly,lz;
+
+ hx = CYG_LIBM_HI(x); /* high word of x */
+ lx = CYG_LIBM_LO(x); /* low word of x */
+ hy = CYG_LIBM_HI(y); /* high word of y */
+ ly = CYG_LIBM_LO(y); /* low word of y */
+ sx = hx&0x80000000; /* sign of x */
+ hx ^=sx; /* |x| */
+ hy &= 0x7fffffff; /* |y| */
+
+ /* purge off exception values */
+ if((hy|ly)==0||(hx>=0x7ff00000)|| /* y=0,or x not finite */
+ ((hy|((ly|-ly)>>31))>0x7ff00000)) /* or y is NaN */
+ return (x*y)/(x*y);
+ if(hx<=hy) {
+ if((hx<hy)||(lx<ly)) return x; /* |x|<|y| return x */
+ if(lx==ly)
+ return Zero[(unsigned)sx>>31]; /* |x|=|y| return x*0*/
+ }
+
+ /* determine ix = ilogb(x) */
+ if(hx<0x00100000) { /* subnormal x */
+ if(hx==0) {
+ for (ix = -1043, i=lx; i>0; i<<=1) ix -=1;
+ } else {
+ for (ix = -1022,i=(hx<<11); i>0; i<<=1) ix -=1;
+ }
+ } else ix = (hx>>20)-1023;
+
+ /* determine iy = ilogb(y) */
+ if(hy<0x00100000) { /* subnormal y */
+ if(hy==0) {
+ for (iy = -1043, i=ly; i>0; i<<=1) iy -=1;
+ } else {
+ for (iy = -1022,i=(hy<<11); i>0; i<<=1) iy -=1;
+ }
+ } else iy = (hy>>20)-1023;
+
+ /* set up {hx,lx}, {hy,ly} and align y to x */
+ if(ix >= -1022)
+ hx = 0x00100000|(0x000fffff&hx);
+ else { /* subnormal x, shift x to normal */
+ n = -1022-ix;
+ if(n<=31) {
+ hx = (hx<<n)|(lx>>(32-n));
+ lx <<= n;
+ } else {
+ hx = lx<<(n-32);
+ lx = 0;
+ }
+ }
+ if(iy >= -1022)
+ hy = 0x00100000|(0x000fffff&hy);
+ else { /* subnormal y, shift y to normal */
+ n = -1022-iy;
+ if(n<=31) {
+ hy = (hy<<n)|(ly>>(32-n));
+ ly <<= n;
+ } else {
+ hy = ly<<(n-32);
+ ly = 0;
+ }
+ }
+
+ /* fix point fmod */
+ n = ix - iy;
+ while(n--) {
+ hz=hx-hy;lz=lx-ly; if(lx<ly) hz -= 1;
+ if(hz<0){hx = hx+hx+(lx>>31); lx = lx+lx;}
+ else {
+ if((hz|lz)==0) /* return sign(x)*0 */
+ return Zero[(unsigned)sx>>31];
+ hx = hz+hz+(lz>>31); lx = lz+lz;
+ }
+ }
+ hz=hx-hy;lz=lx-ly; if(lx<ly) hz -= 1;
+ if(hz>=0) {hx=hz;lx=lz;}
+
+ /* convert back to floating value and restore the sign */
+ if((hx|lx)==0) /* return sign(x)*0 */
+ return Zero[(unsigned)sx>>31];
+ while(hx<0x00100000) { /* normalize x */
+ hx = hx+hx+(lx>>31); lx = lx+lx;
+ iy -= 1;
+ }
+ if(iy>= -1022) { /* normalize output */
+ hx = ((hx-0x00100000)|((iy+1023)<<20));
+ CYG_LIBM_HI(x) = hx|sx;
+ CYG_LIBM_LO(x) = lx;
+ } else { /* subnormal output */
+ n = -1022 - iy;
+ if(n<=20) {
+ lx = (lx>>n)|((unsigned)hx<<(32-n));
+ hx >>= n;
+ } else if (n<=31) {
+ lx = (hx<<(32-n))|(lx>>n); hx = sx;
+ } else {
+ lx = hx>>(n-32); hx = sx;
+ }
+ CYG_LIBM_HI(x) = hx|sx;
+ CYG_LIBM_LO(x) = lx;
+ x *= one; /* create necessary signal */
+ }
+ return x; /* exact output */
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF e_fmod.c
diff --git a/ecos/packages/language/c/libm/current/src/double/ieee754-core/e_gamma.c b/ecos/packages/language/c/libm/current/src/double/ieee754-core/e_gamma.c
new file mode 100644
index 0000000..59d536b
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/double/ieee754-core/e_gamma.c
@@ -0,0 +1,93 @@
+//===========================================================================
+//
+// e_gamma.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/* @(#)e_gamma.c 1.3 95/01/18 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunSoft, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ *
+ */
+
+/* __ieee754_gamma(x)
+ * Return the logarithm of the Gamma function of x.
+ *
+ * Method: call __ieee754_gamma_r
+ */
+
+#include <math.h>
+#include "mathincl/fdlibm.h"
+
+double
+__ieee754_gamma(double x)
+{
+ return __ieee754_gamma_r(x,&signgam);
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF e_gamma.c
diff --git a/ecos/packages/language/c/libm/current/src/double/ieee754-core/e_gamma_r.c b/ecos/packages/language/c/libm/current/src/double/ieee754-core/e_gamma_r.c
new file mode 100644
index 0000000..a3b2e61
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/double/ieee754-core/e_gamma_r.c
@@ -0,0 +1,92 @@
+//===========================================================================
+//
+// e_gamma_r.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/* @(#)e_gamma_r.c 1.3 95/01/18 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunSoft, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ *
+ */
+
+/* __ieee754_gamma_r(x, signgamp)
+ * Reentrant version of the logarithm of the Gamma function
+ * with user provide pointer for the sign of Gamma(x).
+ *
+ * Method: See __ieee754_lgamma_r
+ */
+
+#include "mathincl/fdlibm.h"
+
+ double __ieee754_gamma_r(double x, int *signgamp)
+{
+ return __ieee754_lgamma_r(x,signgamp);
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF e_gamma_r.c
diff --git a/ecos/packages/language/c/libm/current/src/double/ieee754-core/e_hypot.c b/ecos/packages/language/c/libm/current/src/double/ieee754-core/e_hypot.c
new file mode 100644
index 0000000..04a25e4
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/double/ieee754-core/e_hypot.c
@@ -0,0 +1,175 @@
+//===========================================================================
+//
+// e_hypot.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/* @(#)e_hypot.c 1.3 95/01/18 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunSoft, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/* __ieee754_hypot(x,y)
+ *
+ * Method :
+ * If (assume round-to-nearest) z=x*x+y*y
+ * has error less than sqrt(2)/2 ulp, than
+ * sqrt(z) has error less than 1 ulp (exercise).
+ *
+ * So, compute sqrt(x*x+y*y) with some care as
+ * follows to get the error below 1 ulp:
+ *
+ * Assume x>y>0;
+ * (if possible, set rounding to round-to-nearest)
+ * 1. if x > 2y use
+ * x1*x1+(y*y+(x2*(x+x1))) for x*x+y*y
+ * where x1 = x with lower 32 bits cleared, x2 = x-x1; else
+ * 2. if x <= 2y use
+ * t1*y1+((x-y)*(x-y)+(t1*y2+t2*y))
+ * where t1 = 2x with lower 32 bits cleared, t2 = 2x-t1,
+ * y1= y with lower 32 bits chopped, y2 = y-y1.
+ *
+ * NOTE: scaling may be necessary if some argument is too
+ * large or too tiny
+ *
+ * Special cases:
+ * hypot(x,y) is INF if x or y is +INF or -INF; else
+ * hypot(x,y) is NAN if x or y is NAN.
+ *
+ * Accuracy:
+ * hypot(x,y) returns sqrt(x^2+y^2) with error less
+ * than 1 ulps (units in the last place)
+ */
+
+#include "mathincl/fdlibm.h"
+
+ double __ieee754_hypot(double x, double y)
+{
+ double a=x,b=y,t1,t2,y1,y2,w;
+ int j,k,ha,hb;
+
+ ha = CYG_LIBM_HI(x)&0x7fffffff; /* high word of x */
+ hb = CYG_LIBM_HI(y)&0x7fffffff; /* high word of y */
+ if(hb > ha) {a=y;b=x;j=ha; ha=hb;hb=j;} else {a=x;b=y;}
+ CYG_LIBM_HI(a) = ha; /* a <- |a| */
+ CYG_LIBM_HI(b) = hb; /* b <- |b| */
+ if((ha-hb)>0x3c00000) {return a+b;} /* x/y > 2**60 */
+ k=0;
+ if(ha > 0x5f300000) { /* a>2**500 */
+ if(ha >= 0x7ff00000) { /* Inf or NaN */
+ w = a+b; /* for sNaN */
+ if(((ha&0xfffff)|CYG_LIBM_LO(a))==0) w = a;
+ if(((hb^0x7ff00000)|CYG_LIBM_LO(b))==0) w = b;
+ return w;
+ }
+ /* scale a and b by 2**-600 */
+ ha -= 0x25800000; hb -= 0x25800000; k += 600;
+ CYG_LIBM_HI(a) = ha;
+ CYG_LIBM_HI(b) = hb;
+ }
+ if(hb < 0x20b00000) { /* b < 2**-500 */
+ if(hb <= 0x000fffff) { /* subnormal b or 0 */
+ if((hb|(CYG_LIBM_LO(b)))==0) return a;
+ t1=0;
+ CYG_LIBM_HI(t1) = 0x7fd00000; /* t1=2^1022 */
+ b *= t1;
+ a *= t1;
+ k -= 1022;
+ } else { /* scale a and b by 2^600 */
+ ha += 0x25800000; /* a *= 2^600 */
+ hb += 0x25800000; /* b *= 2^600 */
+ k -= 600;
+ CYG_LIBM_HI(a) = ha;
+ CYG_LIBM_HI(b) = hb;
+ }
+ }
+ /* medium size a and b */
+ w = a-b;
+ if (w>b) {
+ t1 = 0;
+ CYG_LIBM_HI(t1) = ha;
+ t2 = a-t1;
+ w = sqrt(t1*t1-(b*(-b)-t2*(a+t1)));
+ } else {
+ a = a+a;
+ y1 = 0;
+ CYG_LIBM_HI(y1) = hb;
+ y2 = b - y1;
+ t1 = 0;
+ CYG_LIBM_HI(t1) = ha+0x00100000;
+ t2 = a - t1;
+ w = sqrt(t1*y1-(w*(-w)-(t1*y2+t2*b)));
+ }
+ if(k!=0) {
+ t1 = 1.0;
+ CYG_LIBM_HI(t1) += (k<<20);
+ return t1*w;
+ } else return w;
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF e_hypot.c
diff --git a/ecos/packages/language/c/libm/current/src/double/ieee754-core/e_j0.c b/ecos/packages/language/c/libm/current/src/double/ieee754-core/e_j0.c
new file mode 100644
index 0000000..3f65711
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/double/ieee754-core/e_j0.c
@@ -0,0 +1,439 @@
+//===========================================================================
+//
+// e_j0.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/* @(#)e_j0.c 1.3 95/01/18 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunSoft, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/* __ieee754_j0(x), __ieee754_y0(x)
+ * Bessel function of the first and second kinds of order zero.
+ * Method -- j0(x):
+ * 1. For tiny x, we use j0(x) = 1 - x^2/4 + x^4/64 - ...
+ * 2. Reduce x to |x| since j0(x)=j0(-x), and
+ * for x in (0,2)
+ * j0(x) = 1-z/4+ z^2*R0/S0, where z = x*x;
+ * (precision: |j0-1+z/4-z^2R0/S0 |<2**-63.67 )
+ * for x in (2,inf)
+ * j0(x) = sqrt(2/(pi*x))*(p0(x)*cos(x0)-q0(x)*sin(x0))
+ * where x0 = x-pi/4. It is better to compute sin(x0),cos(x0)
+ * as follow:
+ * cos(x0) = cos(x)cos(pi/4)+sin(x)sin(pi/4)
+ * = 1/sqrt(2) * (cos(x) + sin(x))
+ * sin(x0) = sin(x)cos(pi/4)-cos(x)sin(pi/4)
+ * = 1/sqrt(2) * (sin(x) - cos(x))
+ * (To avoid cancellation, use
+ * sin(x) +- cos(x) = -cos(2x)/(sin(x) -+ cos(x))
+ * to compute the worse one.)
+ *
+ * 3 Special cases
+ * j0(nan)= nan
+ * j0(0) = 1
+ * j0(inf) = 0
+ *
+ * Method -- y0(x):
+ * 1. For x<2.
+ * Since
+ * y0(x) = 2/pi*(j0(x)*(ln(x/2)+Euler) + x^2/4 - ...)
+ * therefore y0(x)-2/pi*j0(x)*ln(x) is an even function.
+ * We use the following function to approximate y0,
+ * y0(x) = U(z)/V(z) + (2/pi)*(j0(x)*ln(x)), z= x^2
+ * where
+ * U(z) = u00 + u01*z + ... + u06*z^6
+ * V(z) = 1 + v01*z + ... + v04*z^4
+ * with absolute approximation error bounded by 2**-72.
+ * Note: For tiny x, U/V = u0 and j0(x)~1, hence
+ * y0(tiny) = u0 + (2/pi)*ln(tiny), (choose tiny<2**-27)
+ * 2. For x>=2.
+ * y0(x) = sqrt(2/(pi*x))*(p0(x)*cos(x0)+q0(x)*sin(x0))
+ * where x0 = x-pi/4. It is better to compute sin(x0),cos(x0)
+ * by the method mentioned above.
+ * 3. Special cases: y0(0)=-inf, y0(x<0)=NaN, y0(inf)=0.
+ */
+
+#include "mathincl/fdlibm.h"
+
+static double pzero(double), qzero(double);
+
+static const double
+huge = 1e300,
+one = 1.0,
+invsqrtpi= 5.64189583547756279280e-01, /* 0x3FE20DD7, 0x50429B6D */
+tpi = 6.36619772367581382433e-01, /* 0x3FE45F30, 0x6DC9C883 */
+ /* R0/S0 on [0, 2.00] */
+R02 = 1.56249999999999947958e-02, /* 0x3F8FFFFF, 0xFFFFFFFD */
+R03 = -1.89979294238854721751e-04, /* 0xBF28E6A5, 0xB61AC6E9 */
+R04 = 1.82954049532700665670e-06, /* 0x3EBEB1D1, 0x0C503919 */
+R05 = -4.61832688532103189199e-09, /* 0xBE33D5E7, 0x73D63FCE */
+S01 = 1.56191029464890010492e-02, /* 0x3F8FFCE8, 0x82C8C2A4 */
+S02 = 1.16926784663337450260e-04, /* 0x3F1EA6D2, 0xDD57DBF4 */
+S03 = 5.13546550207318111446e-07, /* 0x3EA13B54, 0xCE84D5A9 */
+S04 = 1.16614003333790000205e-09; /* 0x3E1408BC, 0xF4745D8F */
+
+static double zero = 0.0;
+
+ double __ieee754_j0(double x)
+{
+ double z, s,c,ss,cc,r,u,v;
+ int hx,ix;
+
+ hx = CYG_LIBM_HI(x);
+ ix = hx&0x7fffffff;
+ if(ix>=0x7ff00000) return one/(x*x);
+ x = fabs(x);
+ if(ix >= 0x40000000) { /* |x| >= 2.0 */
+ s = sin(x);
+ c = cos(x);
+ ss = s-c;
+ cc = s+c;
+ if(ix<0x7fe00000) { /* make sure x+x not overflow */
+ z = -cos(x+x);
+ if ((s*c)<zero) cc = z/ss;
+ else ss = z/cc;
+ }
+ /*
+ * j0(x) = 1/sqrt(pi) * (P(0,x)*cc - Q(0,x)*ss) / sqrt(x)
+ * y0(x) = 1/sqrt(pi) * (P(0,x)*ss + Q(0,x)*cc) / sqrt(x)
+ */
+ if(ix>0x48000000) z = (invsqrtpi*cc)/sqrt(x);
+ else {
+ u = pzero(x); v = qzero(x);
+ z = invsqrtpi*(u*cc-v*ss)/sqrt(x);
+ }
+ return z;
+ }
+ if(ix<0x3f200000) { /* |x| < 2**-13 */
+ if(huge+x>one) { /* raise inexact if x != 0 */
+ if(ix<0x3e400000) return one; /* |x|<2**-27 */
+ else return one - 0.25*x*x;
+ }
+ }
+ z = x*x;
+ r = z*(R02+z*(R03+z*(R04+z*R05)));
+ s = one+z*(S01+z*(S02+z*(S03+z*S04)));
+ if(ix < 0x3FF00000) { /* |x| < 1.00 */
+ return one + z*(-0.25+(r/s));
+ } else {
+ u = 0.5*x;
+ return((one+u)*(one-u)+z*(r/s));
+ }
+}
+
+static const double
+u00 = -7.38042951086872317523e-02, /* 0xBFB2E4D6, 0x99CBD01F */
+u01 = 1.76666452509181115538e-01, /* 0x3FC69D01, 0x9DE9E3FC */
+u02 = -1.38185671945596898896e-02, /* 0xBF8C4CE8, 0xB16CFA97 */
+u03 = 3.47453432093683650238e-04, /* 0x3F36C54D, 0x20B29B6B */
+u04 = -3.81407053724364161125e-06, /* 0xBECFFEA7, 0x73D25CAD */
+u05 = 1.95590137035022920206e-08, /* 0x3E550057, 0x3B4EABD4 */
+u06 = -3.98205194132103398453e-11, /* 0xBDC5E43D, 0x693FB3C8 */
+v01 = 1.27304834834123699328e-02, /* 0x3F8A1270, 0x91C9C71A */
+v02 = 7.60068627350353253702e-05, /* 0x3F13ECBB, 0xF578C6C1 */
+v03 = 2.59150851840457805467e-07, /* 0x3E91642D, 0x7FF202FD */
+v04 = 4.41110311332675467403e-10; /* 0x3DFE5018, 0x3BD6D9EF */
+
+ double __ieee754_y0(double x)
+{
+ double z, s,c,ss,cc,u,v;
+ int hx,ix,lx;
+
+ hx = CYG_LIBM_HI(x);
+ ix = 0x7fffffff&hx;
+ lx = CYG_LIBM_LO(x);
+ /* Y0(NaN) is NaN, y0(-inf) is Nan, y0(inf) is 0 */
+ if(ix>=0x7ff00000) return one/(x+x*x);
+ if((ix|lx)==0) return -one/zero;
+ if(hx<0) return zero/zero;
+ if(ix >= 0x40000000) { /* |x| >= 2.0 */
+ /* y0(x) = sqrt(2/(pi*x))*(p0(x)*sin(x0)+q0(x)*cos(x0))
+ * where x0 = x-pi/4
+ * Better formula:
+ * cos(x0) = cos(x)cos(pi/4)+sin(x)sin(pi/4)
+ * = 1/sqrt(2) * (sin(x) + cos(x))
+ * sin(x0) = sin(x)cos(3pi/4)-cos(x)sin(3pi/4)
+ * = 1/sqrt(2) * (sin(x) - cos(x))
+ * To avoid cancellation, use
+ * sin(x) +- cos(x) = -cos(2x)/(sin(x) -+ cos(x))
+ * to compute the worse one.
+ */
+ s = sin(x);
+ c = cos(x);
+ ss = s-c;
+ cc = s+c;
+ /*
+ * j0(x) = 1/sqrt(pi) * (P(0,x)*cc - Q(0,x)*ss) / sqrt(x)
+ * y0(x) = 1/sqrt(pi) * (P(0,x)*ss + Q(0,x)*cc) / sqrt(x)
+ */
+ if(ix<0x7fe00000) { /* make sure x+x not overflow */
+ z = -cos(x+x);
+ if ((s*c)<zero) cc = z/ss;
+ else ss = z/cc;
+ }
+ if(ix>0x48000000) z = (invsqrtpi*ss)/sqrt(x);
+ else {
+ u = pzero(x); v = qzero(x);
+ z = invsqrtpi*(u*ss+v*cc)/sqrt(x);
+ }
+ return z;
+ }
+ if(ix<=0x3e400000) { /* x < 2**-27 */
+ return(u00 + tpi*__ieee754_log(x));
+ }
+ z = x*x;
+ u = u00+z*(u01+z*(u02+z*(u03+z*(u04+z*(u05+z*u06)))));
+ v = one+z*(v01+z*(v02+z*(v03+z*v04)));
+ return(u/v + tpi*(__ieee754_j0(x)*__ieee754_log(x)));
+}
+
+/* The asymptotic expansions of pzero is
+ * 1 - 9/128 s^2 + 11025/98304 s^4 - ..., where s = 1/x.
+ * For x >= 2, We approximate pzero by
+ * pzero(x) = 1 + (R/S)
+ * where R = pR0 + pR1*s^2 + pR2*s^4 + ... + pR5*s^10
+ * S = 1 + pS0*s^2 + ... + pS4*s^10
+ * and
+ * | pzero(x)-1-R/S | <= 2 ** ( -60.26)
+ */
+static const double pR8[6] = { /* for x in [inf, 8]=1/[0,0.125] */
+ 0.00000000000000000000e+00, /* 0x00000000, 0x00000000 */
+ -7.03124999999900357484e-02, /* 0xBFB1FFFF, 0xFFFFFD32 */
+ -8.08167041275349795626e+00, /* 0xC02029D0, 0xB44FA779 */
+ -2.57063105679704847262e+02, /* 0xC0701102, 0x7B19E863 */
+ -2.48521641009428822144e+03, /* 0xC0A36A6E, 0xCD4DCAFC */
+ -5.25304380490729545272e+03, /* 0xC0B4850B, 0x36CC643D */
+};
+static const double pS8[5] = {
+ 1.16534364619668181717e+02, /* 0x405D2233, 0x07A96751 */
+ 3.83374475364121826715e+03, /* 0x40ADF37D, 0x50596938 */
+ 4.05978572648472545552e+04, /* 0x40E3D2BB, 0x6EB6B05F */
+ 1.16752972564375915681e+05, /* 0x40FC810F, 0x8F9FA9BD */
+ 4.76277284146730962675e+04, /* 0x40E74177, 0x4F2C49DC */
+};
+
+static const double pR5[6] = { /* for x in [8,4.5454]=1/[0.125,0.22001] */
+ -1.14125464691894502584e-11, /* 0xBDA918B1, 0x47E495CC */
+ -7.03124940873599280078e-02, /* 0xBFB1FFFF, 0xE69AFBC6 */
+ -4.15961064470587782438e+00, /* 0xC010A370, 0xF90C6BBF */
+ -6.76747652265167261021e+01, /* 0xC050EB2F, 0x5A7D1783 */
+ -3.31231299649172967747e+02, /* 0xC074B3B3, 0x6742CC63 */
+ -3.46433388365604912451e+02, /* 0xC075A6EF, 0x28A38BD7 */
+};
+static const double pS5[5] = {
+ 6.07539382692300335975e+01, /* 0x404E6081, 0x0C98C5DE */
+ 1.05125230595704579173e+03, /* 0x40906D02, 0x5C7E2864 */
+ 5.97897094333855784498e+03, /* 0x40B75AF8, 0x8FBE1D60 */
+ 9.62544514357774460223e+03, /* 0x40C2CCB8, 0xFA76FA38 */
+ 2.40605815922939109441e+03, /* 0x40A2CC1D, 0xC70BE864 */
+};
+
+static const double pR3[6] = {/* for x in [4.547,2.8571]=1/[0.2199,0.35001] */
+ -2.54704601771951915620e-09, /* 0xBE25E103, 0x6FE1AA86 */
+ -7.03119616381481654654e-02, /* 0xBFB1FFF6, 0xF7C0E24B */
+ -2.40903221549529611423e+00, /* 0xC00345B2, 0xAEA48074 */
+ -2.19659774734883086467e+01, /* 0xC035F74A, 0x4CB94E14 */
+ -5.80791704701737572236e+01, /* 0xC04D0A22, 0x420A1A45 */
+ -3.14479470594888503854e+01, /* 0xC03F72AC, 0xA892D80F */
+};
+static const double pS3[5] = {
+ 3.58560338055209726349e+01, /* 0x4041ED92, 0x84077DD3 */
+ 3.61513983050303863820e+02, /* 0x40769839, 0x464A7C0E */
+ 1.19360783792111533330e+03, /* 0x4092A66E, 0x6D1061D6 */
+ 1.12799679856907414432e+03, /* 0x40919FFC, 0xB8C39B7E */
+ 1.73580930813335754692e+02, /* 0x4065B296, 0xFC379081 */
+};
+
+static const double pR2[6] = {/* for x in [2.8570,2]=1/[0.3499,0.5] */
+ -8.87534333032526411254e-08, /* 0xBE77D316, 0xE927026D */
+ -7.03030995483624743247e-02, /* 0xBFB1FF62, 0x495E1E42 */
+ -1.45073846780952986357e+00, /* 0xBFF73639, 0x8A24A843 */
+ -7.63569613823527770791e+00, /* 0xC01E8AF3, 0xEDAFA7F3 */
+ -1.11931668860356747786e+01, /* 0xC02662E6, 0xC5246303 */
+ -3.23364579351335335033e+00, /* 0xC009DE81, 0xAF8FE70F */
+};
+static const double pS2[5] = {
+ 2.22202997532088808441e+01, /* 0x40363865, 0x908B5959 */
+ 1.36206794218215208048e+02, /* 0x4061069E, 0x0EE8878F */
+ 2.70470278658083486789e+02, /* 0x4070E786, 0x42EA079B */
+ 1.53875394208320329881e+02, /* 0x40633C03, 0x3AB6FAFF */
+ 1.46576176948256193810e+01, /* 0x402D50B3, 0x44391809 */
+};
+
+ static double pzero(double x)
+{
+ const double *p,*q;
+ double z,r,s;
+ int ix;
+ ix = 0x7fffffff&CYG_LIBM_HI(x);
+ if(ix>=0x40200000) {p = pR8; q= pS8;}
+ else if(ix>=0x40122E8B){p = pR5; q= pS5;}
+ else if(ix>=0x4006DB6D){p = pR3; q= pS3;}
+ else {p = pR2; q= pS2;} /*if (ix>=0x40000000) */
+ z = one/(x*x);
+ r = p[0]+z*(p[1]+z*(p[2]+z*(p[3]+z*(p[4]+z*p[5]))));
+ s = one+z*(q[0]+z*(q[1]+z*(q[2]+z*(q[3]+z*q[4]))));
+ return one+ r/s;
+}
+
+
+/* For x >= 8, the asymptotic expansions of qzero is
+ * -1/8 s + 75/1024 s^3 - ..., where s = 1/x.
+ * We approximate pzero by
+ * qzero(x) = s*(-1.25 + (R/S))
+ * where R = qR0 + qR1*s^2 + qR2*s^4 + ... + qR5*s^10
+ * S = 1 + qS0*s^2 + ... + qS5*s^12
+ * and
+ * | qzero(x)/s +1.25-R/S | <= 2 ** ( -61.22)
+ */
+static const double qR8[6] = { /* for x in [inf, 8]=1/[0,0.125] */
+ 0.00000000000000000000e+00, /* 0x00000000, 0x00000000 */
+ 7.32421874999935051953e-02, /* 0x3FB2BFFF, 0xFFFFFE2C */
+ 1.17682064682252693899e+01, /* 0x40278952, 0x5BB334D6 */
+ 5.57673380256401856059e+02, /* 0x40816D63, 0x15301825 */
+ 8.85919720756468632317e+03, /* 0x40C14D99, 0x3E18F46D */
+ 3.70146267776887834771e+04, /* 0x40E212D4, 0x0E901566 */
+};
+static const double qS8[6] = {
+ 1.63776026895689824414e+02, /* 0x406478D5, 0x365B39BC */
+ 8.09834494656449805916e+03, /* 0x40BFA258, 0x4E6B0563 */
+ 1.42538291419120476348e+05, /* 0x41016652, 0x54D38C3F */
+ 8.03309257119514397345e+05, /* 0x412883DA, 0x83A52B43 */
+ 8.40501579819060512818e+05, /* 0x4129A66B, 0x28DE0B3D */
+ -3.43899293537866615225e+05, /* 0xC114FD6D, 0x2C9530C5 */
+};
+
+static const double qR5[6] = { /* for x in [8,4.5454]=1/[0.125,0.22001] */
+ 1.84085963594515531381e-11, /* 0x3DB43D8F, 0x29CC8CD9 */
+ 7.32421766612684765896e-02, /* 0x3FB2BFFF, 0xD172B04C */
+ 5.83563508962056953777e+00, /* 0x401757B0, 0xB9953DD3 */
+ 1.35111577286449829671e+02, /* 0x4060E392, 0x0A8788E9 */
+ 1.02724376596164097464e+03, /* 0x40900CF9, 0x9DC8C481 */
+ 1.98997785864605384631e+03, /* 0x409F17E9, 0x53C6E3A6 */
+};
+static const double qS5[6] = {
+ 8.27766102236537761883e+01, /* 0x4054B1B3, 0xFB5E1543 */
+ 2.07781416421392987104e+03, /* 0x40A03BA0, 0xDA21C0CE */
+ 1.88472887785718085070e+04, /* 0x40D267D2, 0x7B591E6D */
+ 5.67511122894947329769e+04, /* 0x40EBB5E3, 0x97E02372 */
+ 3.59767538425114471465e+04, /* 0x40E19118, 0x1F7A54A0 */
+ -5.35434275601944773371e+03, /* 0xC0B4EA57, 0xBEDBC609 */
+};
+
+static const double qR3[6] = {/* for x in [4.547,2.8571]=1/[0.2199,0.35001] */
+ 4.37741014089738620906e-09, /* 0x3E32CD03, 0x6ADECB82 */
+ 7.32411180042911447163e-02, /* 0x3FB2BFEE, 0x0E8D0842 */
+ 3.34423137516170720929e+00, /* 0x400AC0FC, 0x61149CF5 */
+ 4.26218440745412650017e+01, /* 0x40454F98, 0x962DAEDD */
+ 1.70808091340565596283e+02, /* 0x406559DB, 0xE25EFD1F */
+ 1.66733948696651168575e+02, /* 0x4064D77C, 0x81FA21E0 */
+};
+static const double qS3[6] = {
+ 4.87588729724587182091e+01, /* 0x40486122, 0xBFE343A6 */
+ 7.09689221056606015736e+02, /* 0x40862D83, 0x86544EB3 */
+ 3.70414822620111362994e+03, /* 0x40ACF04B, 0xE44DFC63 */
+ 6.46042516752568917582e+03, /* 0x40B93C6C, 0xD7C76A28 */
+ 2.51633368920368957333e+03, /* 0x40A3A8AA, 0xD94FB1C0 */
+ -1.49247451836156386662e+02, /* 0xC062A7EB, 0x201CF40F */
+};
+
+static const double qR2[6] = {/* for x in [2.8570,2]=1/[0.3499,0.5] */
+ 1.50444444886983272379e-07, /* 0x3E84313B, 0x54F76BDB */
+ 7.32234265963079278272e-02, /* 0x3FB2BEC5, 0x3E883E34 */
+ 1.99819174093815998816e+00, /* 0x3FFFF897, 0xE727779C */
+ 1.44956029347885735348e+01, /* 0x402CFDBF, 0xAAF96FE5 */
+ 3.16662317504781540833e+01, /* 0x403FAA8E, 0x29FBDC4A */
+ 1.62527075710929267416e+01, /* 0x403040B1, 0x71814BB4 */
+};
+static const double qS2[6] = {
+ 3.03655848355219184498e+01, /* 0x403E5D96, 0xF7C07AED */
+ 2.69348118608049844624e+02, /* 0x4070D591, 0xE4D14B40 */
+ 8.44783757595320139444e+02, /* 0x408A6645, 0x22B3BF22 */
+ 8.82935845112488550512e+02, /* 0x408B977C, 0x9C5CC214 */
+ 2.12666388511798828631e+02, /* 0x406A9553, 0x0E001365 */
+ -5.31095493882666946917e+00, /* 0xC0153E6A, 0xF8B32931 */
+};
+
+ static double qzero(double x)
+{
+ const double *p,*q;
+ double s,r,z;
+ int ix;
+ ix = 0x7fffffff&CYG_LIBM_HI(x);
+ if(ix>=0x40200000) {p = qR8; q= qS8;}
+ else if(ix>=0x40122E8B){p = qR5; q= qS5;}
+ else if(ix>=0x4006DB6D){p = qR3; q= qS3;}
+ else {p = qR2; q= qS2;} /* if(ix>=0x40000000) */
+ z = one/(x*x);
+ r = p[0]+z*(p[1]+z*(p[2]+z*(p[3]+z*(p[4]+z*p[5]))));
+ s = one+z*(q[0]+z*(q[1]+z*(q[2]+z*(q[3]+z*(q[4]+z*q[5])))));
+ return (-.125 + r/s)/x;
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF e_j0.c
diff --git a/ecos/packages/language/c/libm/current/src/double/ieee754-core/e_j1.c b/ecos/packages/language/c/libm/current/src/double/ieee754-core/e_j1.c
new file mode 100644
index 0000000..3334440
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/double/ieee754-core/e_j1.c
@@ -0,0 +1,434 @@
+//===========================================================================
+//
+// e_j1.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/* @(#)e_j1.c 1.3 95/01/18 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunSoft, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/* __ieee754_j1(x), __ieee754_y1(x)
+ * Bessel function of the first and second kinds of order zero.
+ * Method -- j1(x):
+ * 1. For tiny x, we use j1(x) = x/2 - x^3/16 + x^5/384 - ...
+ * 2. Reduce x to |x| since j1(x)=-j1(-x), and
+ * for x in (0,2)
+ * j1(x) = x/2 + x*z*R0/S0, where z = x*x;
+ * (precision: |j1/x - 1/2 - R0/S0 |<2**-61.51 )
+ * for x in (2,inf)
+ * j1(x) = sqrt(2/(pi*x))*(p1(x)*cos(x1)-q1(x)*sin(x1))
+ * y1(x) = sqrt(2/(pi*x))*(p1(x)*sin(x1)+q1(x)*cos(x1))
+ * where x1 = x-3*pi/4. It is better to compute sin(x1),cos(x1)
+ * as follow:
+ * cos(x1) = cos(x)cos(3pi/4)+sin(x)sin(3pi/4)
+ * = 1/sqrt(2) * (sin(x) - cos(x))
+ * sin(x1) = sin(x)cos(3pi/4)-cos(x)sin(3pi/4)
+ * = -1/sqrt(2) * (sin(x) + cos(x))
+ * (To avoid cancellation, use
+ * sin(x) +- cos(x) = -cos(2x)/(sin(x) -+ cos(x))
+ * to compute the worse one.)
+ *
+ * 3 Special cases
+ * j1(nan)= nan
+ * j1(0) = 0
+ * j1(inf) = 0
+ *
+ * Method -- y1(x):
+ * 1. screen out x<=0 cases: y1(0)=-inf, y1(x<0)=NaN
+ * 2. For x<2.
+ * Since
+ * y1(x) = 2/pi*(j1(x)*(ln(x/2)+Euler)-1/x-x/2+5/64*x^3-...)
+ * therefore y1(x)-2/pi*j1(x)*ln(x)-1/x is an odd function.
+ * We use the following function to approximate y1,
+ * y1(x) = x*U(z)/V(z) + (2/pi)*(j1(x)*ln(x)-1/x), z= x^2
+ * where for x in [0,2] (abs err less than 2**-65.89)
+ * U(z) = U0[0] + U0[1]*z + ... + U0[4]*z^4
+ * V(z) = 1 + v0[0]*z + ... + v0[4]*z^5
+ * Note: For tiny x, 1/x dominate y1 and hence
+ * y1(tiny) = -2/pi/tiny, (choose tiny<2**-54)
+ * 3. For x>=2.
+ * y1(x) = sqrt(2/(pi*x))*(p1(x)*sin(x1)+q1(x)*cos(x1))
+ * where x1 = x-3*pi/4. It is better to compute sin(x1),cos(x1)
+ * by method mentioned above.
+ */
+
+#include "mathincl/fdlibm.h"
+
+static double pone(double), qone(double);
+
+static const double
+huge = 1e300,
+one = 1.0,
+invsqrtpi= 5.64189583547756279280e-01, /* 0x3FE20DD7, 0x50429B6D */
+tpi = 6.36619772367581382433e-01, /* 0x3FE45F30, 0x6DC9C883 */
+ /* R0/S0 on [0,2] */
+r00 = -6.25000000000000000000e-02, /* 0xBFB00000, 0x00000000 */
+r01 = 1.40705666955189706048e-03, /* 0x3F570D9F, 0x98472C61 */
+r02 = -1.59955631084035597520e-05, /* 0xBEF0C5C6, 0xBA169668 */
+r03 = 4.96727999609584448412e-08, /* 0x3E6AAAFA, 0x46CA0BD9 */
+s01 = 1.91537599538363460805e-02, /* 0x3F939D0B, 0x12637E53 */
+s02 = 1.85946785588630915560e-04, /* 0x3F285F56, 0xB9CDF664 */
+s03 = 1.17718464042623683263e-06, /* 0x3EB3BFF8, 0x333F8498 */
+s04 = 5.04636257076217042715e-09, /* 0x3E35AC88, 0xC97DFF2C */
+s05 = 1.23542274426137913908e-11; /* 0x3DAB2ACF, 0xCFB97ED8 */
+
+static double zero = 0.0;
+
+ double __ieee754_j1(double x)
+{
+ double z, s,c,ss,cc,r,u,v,y;
+ int hx,ix;
+
+ hx = CYG_LIBM_HI(x);
+ ix = hx&0x7fffffff;
+ if(ix>=0x7ff00000) return one/x;
+ y = fabs(x);
+ if(ix >= 0x40000000) { /* |x| >= 2.0 */
+ s = sin(y);
+ c = cos(y);
+ ss = -s-c;
+ cc = s-c;
+ if(ix<0x7fe00000) { /* make sure y+y not overflow */
+ z = cos(y+y);
+ if ((s*c)>zero) cc = z/ss;
+ else ss = z/cc;
+ }
+ /*
+ * j1(x) = 1/sqrt(pi) * (P(1,x)*cc - Q(1,x)*ss) / sqrt(x)
+ * y1(x) = 1/sqrt(pi) * (P(1,x)*ss + Q(1,x)*cc) / sqrt(x)
+ */
+ if(ix>0x48000000) z = (invsqrtpi*cc)/sqrt(y);
+ else {
+ u = pone(y); v = qone(y);
+ z = invsqrtpi*(u*cc-v*ss)/sqrt(y);
+ }
+ if(hx<0) return -z;
+ else return z;
+ }
+ if(ix<0x3e400000) { /* |x|<2**-27 */
+ if(huge+x>one) return 0.5*x;/* inexact if x!=0 necessary */
+ }
+ z = x*x;
+ r = z*(r00+z*(r01+z*(r02+z*r03)));
+ s = one+z*(s01+z*(s02+z*(s03+z*(s04+z*s05))));
+ r *= x;
+ return(x*0.5+r/s);
+}
+
+static const double U0[5] = {
+ -1.96057090646238940668e-01, /* 0xBFC91866, 0x143CBC8A */
+ 5.04438716639811282616e-02, /* 0x3FA9D3C7, 0x76292CD1 */
+ -1.91256895875763547298e-03, /* 0xBF5F55E5, 0x4844F50F */
+ 2.35252600561610495928e-05, /* 0x3EF8AB03, 0x8FA6B88E */
+ -9.19099158039878874504e-08, /* 0xBE78AC00, 0x569105B8 */
+};
+static const double V0[5] = {
+ 1.99167318236649903973e-02, /* 0x3F94650D, 0x3F4DA9F0 */
+ 2.02552581025135171496e-04, /* 0x3F2A8C89, 0x6C257764 */
+ 1.35608801097516229404e-06, /* 0x3EB6C05A, 0x894E8CA6 */
+ 6.22741452364621501295e-09, /* 0x3E3ABF1D, 0x5BA69A86 */
+ 1.66559246207992079114e-11, /* 0x3DB25039, 0xDACA772A */
+};
+
+ double __ieee754_y1(double x)
+{
+ double z, s,c,ss,cc,u,v;
+ int hx,ix,lx;
+
+ hx = CYG_LIBM_HI(x);
+ ix = 0x7fffffff&hx;
+ lx = CYG_LIBM_LO(x);
+ /* if Y1(NaN) is NaN, Y1(-inf) is NaN, Y1(inf) is 0 */
+ if(ix>=0x7ff00000) return one/(x+x*x);
+ if((ix|lx)==0) return -one/zero;
+ if(hx<0) return zero/zero;
+ if(ix >= 0x40000000) { /* |x| >= 2.0 */
+ s = sin(x);
+ c = cos(x);
+ ss = -s-c;
+ cc = s-c;
+ if(ix<0x7fe00000) { /* make sure x+x not overflow */
+ z = cos(x+x);
+ if ((s*c)>zero) cc = z/ss;
+ else ss = z/cc;
+ }
+ /* y1(x) = sqrt(2/(pi*x))*(p1(x)*sin(x0)+q1(x)*cos(x0))
+ * where x0 = x-3pi/4
+ * Better formula:
+ * cos(x0) = cos(x)cos(3pi/4)+sin(x)sin(3pi/4)
+ * = 1/sqrt(2) * (sin(x) - cos(x))
+ * sin(x0) = sin(x)cos(3pi/4)-cos(x)sin(3pi/4)
+ * = -1/sqrt(2) * (cos(x) + sin(x))
+ * To avoid cancellation, use
+ * sin(x) +- cos(x) = -cos(2x)/(sin(x) -+ cos(x))
+ * to compute the worse one.
+ */
+ if(ix>0x48000000) z = (invsqrtpi*ss)/sqrt(x);
+ else {
+ u = pone(x); v = qone(x);
+ z = invsqrtpi*(u*ss+v*cc)/sqrt(x);
+ }
+ return z;
+ }
+ if(ix<=0x3c900000) { /* x < 2**-54 */
+ return(-tpi/x);
+ }
+ z = x*x;
+ u = U0[0]+z*(U0[1]+z*(U0[2]+z*(U0[3]+z*U0[4])));
+ v = one+z*(V0[0]+z*(V0[1]+z*(V0[2]+z*(V0[3]+z*V0[4]))));
+ return(x*(u/v) + tpi*(__ieee754_j1(x)*__ieee754_log(x)-one/x));
+}
+
+/* For x >= 8, the asymptotic expansions of pone is
+ * 1 + 15/128 s^2 - 4725/2^15 s^4 - ..., where s = 1/x.
+ * We approximate pone by
+ * pone(x) = 1 + (R/S)
+ * where R = pr0 + pr1*s^2 + pr2*s^4 + ... + pr5*s^10
+ * S = 1 + ps0*s^2 + ... + ps4*s^10
+ * and
+ * | pone(x)-1-R/S | <= 2 ** ( -60.06)
+ */
+
+static const double pr8[6] = { /* for x in [inf, 8]=1/[0,0.125] */
+ 0.00000000000000000000e+00, /* 0x00000000, 0x00000000 */
+ 1.17187499999988647970e-01, /* 0x3FBDFFFF, 0xFFFFFCCE */
+ 1.32394806593073575129e+01, /* 0x402A7A9D, 0x357F7FCE */
+ 4.12051854307378562225e+02, /* 0x4079C0D4, 0x652EA590 */
+ 3.87474538913960532227e+03, /* 0x40AE457D, 0xA3A532CC */
+ 7.91447954031891731574e+03, /* 0x40BEEA7A, 0xC32782DD */
+};
+static const double ps8[5] = {
+ 1.14207370375678408436e+02, /* 0x405C8D45, 0x8E656CAC */
+ 3.65093083420853463394e+03, /* 0x40AC85DC, 0x964D274F */
+ 3.69562060269033463555e+04, /* 0x40E20B86, 0x97C5BB7F */
+ 9.76027935934950801311e+04, /* 0x40F7D42C, 0xB28F17BB */
+ 3.08042720627888811578e+04, /* 0x40DE1511, 0x697A0B2D */
+};
+
+static const double pr5[6] = { /* for x in [8,4.5454]=1/[0.125,0.22001] */
+ 1.31990519556243522749e-11, /* 0x3DAD0667, 0xDAE1CA7D */
+ 1.17187493190614097638e-01, /* 0x3FBDFFFF, 0xE2C10043 */
+ 6.80275127868432871736e+00, /* 0x401B3604, 0x6E6315E3 */
+ 1.08308182990189109773e+02, /* 0x405B13B9, 0x452602ED */
+ 5.17636139533199752805e+02, /* 0x40802D16, 0xD052D649 */
+ 5.28715201363337541807e+02, /* 0x408085B8, 0xBB7E0CB7 */
+};
+static const double ps5[5] = {
+ 5.92805987221131331921e+01, /* 0x404DA3EA, 0xA8AF633D */
+ 9.91401418733614377743e+02, /* 0x408EFB36, 0x1B066701 */
+ 5.35326695291487976647e+03, /* 0x40B4E944, 0x5706B6FB */
+ 7.84469031749551231769e+03, /* 0x40BEA4B0, 0xB8A5BB15 */
+ 1.50404688810361062679e+03, /* 0x40978030, 0x036F5E51 */
+};
+
+static const double pr3[6] = {
+ 3.02503916137373618024e-09, /* 0x3E29FC21, 0xA7AD9EDD */
+ 1.17186865567253592491e-01, /* 0x3FBDFFF5, 0x5B21D17B */
+ 3.93297750033315640650e+00, /* 0x400F76BC, 0xE85EAD8A */
+ 3.51194035591636932736e+01, /* 0x40418F48, 0x9DA6D129 */
+ 9.10550110750781271918e+01, /* 0x4056C385, 0x4D2C1837 */
+ 4.85590685197364919645e+01, /* 0x4048478F, 0x8EA83EE5 */
+};
+static const double ps3[5] = {
+ 3.47913095001251519989e+01, /* 0x40416549, 0xA134069C */
+ 3.36762458747825746741e+02, /* 0x40750C33, 0x07F1A75F */
+ 1.04687139975775130551e+03, /* 0x40905B7C, 0x5037D523 */
+ 8.90811346398256432622e+02, /* 0x408BD67D, 0xA32E31E9 */
+ 1.03787932439639277504e+02, /* 0x4059F26D, 0x7C2EED53 */
+};
+
+static const double pr2[6] = {/* for x in [2.8570,2]=1/[0.3499,0.5] */
+ 1.07710830106873743082e-07, /* 0x3E7CE9D4, 0xF65544F4 */
+ 1.17176219462683348094e-01, /* 0x3FBDFF42, 0xBE760D83 */
+ 2.36851496667608785174e+00, /* 0x4002F2B7, 0xF98FAEC0 */
+ 1.22426109148261232917e+01, /* 0x40287C37, 0x7F71A964 */
+ 1.76939711271687727390e+01, /* 0x4031B1A8, 0x177F8EE2 */
+ 5.07352312588818499250e+00, /* 0x40144B49, 0xA574C1FE */
+};
+static const double ps2[5] = {
+ 2.14364859363821409488e+01, /* 0x40356FBD, 0x8AD5ECDC */
+ 1.25290227168402751090e+02, /* 0x405F5293, 0x14F92CD5 */
+ 2.32276469057162813669e+02, /* 0x406D08D8, 0xD5A2DBD9 */
+ 1.17679373287147100768e+02, /* 0x405D6B7A, 0xDA1884A9 */
+ 8.36463893371618283368e+00, /* 0x4020BAB1, 0xF44E5192 */
+};
+
+ static double pone(double x)
+{
+ const double *p,*q;
+ double z,r,s;
+ int ix;
+ ix = 0x7fffffff&CYG_LIBM_HI(x);
+ if(ix>=0x40200000) {p = pr8; q= ps8;}
+ else if(ix>=0x40122E8B){p = pr5; q= ps5;}
+ else if(ix>=0x4006DB6D){p = pr3; q= ps3;}
+ else {p = pr2; q= ps2;} /* if(ix>=0x40000000) */
+ z = one/(x*x);
+ r = p[0]+z*(p[1]+z*(p[2]+z*(p[3]+z*(p[4]+z*p[5]))));
+ s = one+z*(q[0]+z*(q[1]+z*(q[2]+z*(q[3]+z*q[4]))));
+ return one+ r/s;
+}
+
+
+/* For x >= 8, the asymptotic expansions of qone is
+ * 3/8 s - 105/1024 s^3 - ..., where s = 1/x.
+ * We approximate pone by
+ * qone(x) = s*(0.375 + (R/S))
+ * where R = qr1*s^2 + qr2*s^4 + ... + qr5*s^10
+ * S = 1 + qs1*s^2 + ... + qs6*s^12
+ * and
+ * | qone(x)/s -0.375-R/S | <= 2 ** ( -61.13)
+ */
+
+static const double qr8[6] = { /* for x in [inf, 8]=1/[0,0.125] */
+ 0.00000000000000000000e+00, /* 0x00000000, 0x00000000 */
+ -1.02539062499992714161e-01, /* 0xBFBA3FFF, 0xFFFFFDF3 */
+ -1.62717534544589987888e+01, /* 0xC0304591, 0xA26779F7 */
+ -7.59601722513950107896e+02, /* 0xC087BCD0, 0x53E4B576 */
+ -1.18498066702429587167e+04, /* 0xC0C724E7, 0x40F87415 */
+ -4.84385124285750353010e+04, /* 0xC0E7A6D0, 0x65D09C6A */
+};
+static const double qs8[6] = {
+ 1.61395369700722909556e+02, /* 0x40642CA6, 0xDE5BCDE5 */
+ 7.82538599923348465381e+03, /* 0x40BE9162, 0xD0D88419 */
+ 1.33875336287249578163e+05, /* 0x4100579A, 0xB0B75E98 */
+ 7.19657723683240939863e+05, /* 0x4125F653, 0x72869C19 */
+ 6.66601232617776375264e+05, /* 0x412457D2, 0x7719AD5C */
+ -2.94490264303834643215e+05, /* 0xC111F969, 0x0EA5AA18 */
+};
+
+static const double qr5[6] = { /* for x in [8,4.5454]=1/[0.125,0.22001] */
+ -2.08979931141764104297e-11, /* 0xBDB6FA43, 0x1AA1A098 */
+ -1.02539050241375426231e-01, /* 0xBFBA3FFF, 0xCB597FEF */
+ -8.05644828123936029840e+00, /* 0xC0201CE6, 0xCA03AD4B */
+ -1.83669607474888380239e+02, /* 0xC066F56D, 0x6CA7B9B0 */
+ -1.37319376065508163265e+03, /* 0xC09574C6, 0x6931734F */
+ -2.61244440453215656817e+03, /* 0xC0A468E3, 0x88FDA79D */
+};
+static const double qs5[6] = {
+ 8.12765501384335777857e+01, /* 0x405451B2, 0xFF5A11B2 */
+ 1.99179873460485964642e+03, /* 0x409F1F31, 0xE77BF839 */
+ 1.74684851924908907677e+04, /* 0x40D10F1F, 0x0D64CE29 */
+ 4.98514270910352279316e+04, /* 0x40E8576D, 0xAABAD197 */
+ 2.79480751638918118260e+04, /* 0x40DB4B04, 0xCF7C364B */
+ -4.71918354795128470869e+03, /* 0xC0B26F2E, 0xFCFFA004 */
+};
+
+static const double qr3[6] = {
+ -5.07831226461766561369e-09, /* 0xBE35CFA9, 0xD38FC84F */
+ -1.02537829820837089745e-01, /* 0xBFBA3FEB, 0x51AEED54 */
+ -4.61011581139473403113e+00, /* 0xC01270C2, 0x3302D9FF */
+ -5.78472216562783643212e+01, /* 0xC04CEC71, 0xC25D16DA */
+ -2.28244540737631695038e+02, /* 0xC06C87D3, 0x4718D55F */
+ -2.19210128478909325622e+02, /* 0xC06B66B9, 0x5F5C1BF6 */
+};
+static const double qs3[6] = {
+ 4.76651550323729509273e+01, /* 0x4047D523, 0xCCD367E4 */
+ 6.73865112676699709482e+02, /* 0x40850EEB, 0xC031EE3E */
+ 3.38015286679526343505e+03, /* 0x40AA684E, 0x448E7C9A */
+ 5.54772909720722782367e+03, /* 0x40B5ABBA, 0xA61D54A6 */
+ 1.90311919338810798763e+03, /* 0x409DBC7A, 0x0DD4DF4B */
+ -1.35201191444307340817e+02, /* 0xC060E670, 0x290A311F */
+};
+
+static const double qr2[6] = {/* for x in [2.8570,2]=1/[0.3499,0.5] */
+ -1.78381727510958865572e-07, /* 0xBE87F126, 0x44C626D2 */
+ -1.02517042607985553460e-01, /* 0xBFBA3E8E, 0x9148B010 */
+ -2.75220568278187460720e+00, /* 0xC0060484, 0x69BB4EDA */
+ -1.96636162643703720221e+01, /* 0xC033A9E2, 0xC168907F */
+ -4.23253133372830490089e+01, /* 0xC04529A3, 0xDE104AAA */
+ -2.13719211703704061733e+01, /* 0xC0355F36, 0x39CF6E52 */
+};
+static const double qs2[6] = {
+ 2.95333629060523854548e+01, /* 0x403D888A, 0x78AE64FF */
+ 2.52981549982190529136e+02, /* 0x406F9F68, 0xDB821CBA */
+ 7.57502834868645436472e+02, /* 0x4087AC05, 0xCE49A0F7 */
+ 7.39393205320467245656e+02, /* 0x40871B25, 0x48D4C029 */
+ 1.55949003336666123687e+02, /* 0x40637E5E, 0x3C3ED8D4 */
+ -4.95949898822628210127e+00, /* 0xC013D686, 0xE71BE86B */
+};
+
+ static double qone(double x)
+{
+ const double *p,*q;
+ double s,r,z;
+ int ix;
+ ix = 0x7fffffff&CYG_LIBM_HI(x);
+ if(ix>=0x40200000) {p = qr8; q= qs8;}
+ else if(ix>=0x40122E8B){p = qr5; q= qs5;}
+ else if(ix>=0x4006DB6D){p = qr3; q= qs3;}
+ else {p = qr2; q= qs2;} /* if(ix>=0x40000000) */
+ z = one/(x*x);
+ r = p[0]+z*(p[1]+z*(p[2]+z*(p[3]+z*(p[4]+z*p[5]))));
+ s = one+z*(q[0]+z*(q[1]+z*(q[2]+z*(q[3]+z*(q[4]+z*q[5])))));
+ return (.375 + r/s)/x;
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF e_j1.c
diff --git a/ecos/packages/language/c/libm/current/src/double/ieee754-core/e_jn.c b/ecos/packages/language/c/libm/current/src/double/ieee754-core/e_jn.c
new file mode 100644
index 0000000..bb354f9
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/double/ieee754-core/e_jn.c
@@ -0,0 +1,327 @@
+//===========================================================================
+//
+// e_jn.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/* @(#)e_jn.c 1.4 95/01/18 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunSoft, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/*
+ * __ieee754_jn(n, x), __ieee754_yn(n, x)
+ * floating point Bessel's function of the 1st and 2nd kind
+ * of order n
+ *
+ * Special cases:
+ * y0(0)=y1(0)=yn(n,0) = -inf with division by zero signal;
+ * y0(-ve)=y1(-ve)=yn(n,-ve) are NaN with invalid signal.
+ * Note 2. About jn(n,x), yn(n,x)
+ * For n=0, j0(x) is called,
+ * for n=1, j1(x) is called,
+ * for n<x, forward recursion us used starting
+ * from values of j0(x) and j1(x).
+ * for n>x, a continued fraction approximation to
+ * j(n,x)/j(n-1,x) is evaluated and then backward
+ * recursion is used starting from a supposed value
+ * for j(n,x). The resulting value of j(0,x) is
+ * compared with the actual value to correct the
+ * supposed value of j(n,x).
+ *
+ * yn(n,x) is similar in all respects, except
+ * that forward recursion is used for all
+ * values of n>1.
+ *
+ */
+
+#include "mathincl/fdlibm.h"
+
+static const double
+invsqrtpi= 5.64189583547756279280e-01, /* 0x3FE20DD7, 0x50429B6D */
+two = 2.00000000000000000000e+00, /* 0x40000000, 0x00000000 */
+one = 1.00000000000000000000e+00; /* 0x3FF00000, 0x00000000 */
+
+static double zero = 0.00000000000000000000e+00;
+
+ double __ieee754_jn(int n, double x)
+{
+ int i,hx,ix,lx, sgn;
+ double a, b, temp, di;
+ double z, w;
+
+ /* J(-n,x) = (-1)^n * J(n, x), J(n, -x) = (-1)^n * J(n, x)
+ * Thus, J(-n,x) = J(n,-x)
+ */
+ hx = CYG_LIBM_HI(x);
+ ix = 0x7fffffff&hx;
+ lx = CYG_LIBM_LO(x);
+ /* if J(n,NaN) is NaN */
+ if((ix|((unsigned)(lx|-lx))>>31)>0x7ff00000) return x+x;
+ if(n<0){
+ n = -n;
+ x = -x;
+ hx ^= 0x80000000;
+ }
+ if(n==0) return(__ieee754_j0(x));
+ if(n==1) return(__ieee754_j1(x));
+ sgn = (n&1)&(hx>>31); /* even n -- 0, odd n -- sign(x) */
+ x = fabs(x);
+ if((ix|lx)==0||ix>=0x7ff00000) /* if x is 0 or inf */
+ b = zero;
+ else if((double)n<=x) {
+ /* Safe to use J(n+1,x)=2n/x *J(n,x)-J(n-1,x) */
+ if(ix>=0x52D00000) { /* x > 2**302 */
+ /* (x >> n**2)
+ * Jn(x) = cos(x-(2n+1)*pi/4)*sqrt(2/x*pi)
+ * Yn(x) = sin(x-(2n+1)*pi/4)*sqrt(2/x*pi)
+ * Let s=sin(x), c=cos(x),
+ * xn=x-(2n+1)*pi/4, sqt2 = sqrt(2),then
+ *
+ * n sin(xn)*sqt2 cos(xn)*sqt2
+ * ----------------------------------
+ * 0 s-c c+s
+ * 1 -s-c -c+s
+ * 2 -s+c -c-s
+ * 3 s+c c-s
+ */
+ switch(n&3) {
+ case 0: temp = cos(x)+sin(x); break;
+ case 1: temp = -cos(x)+sin(x); break;
+ case 2: temp = -cos(x)-sin(x); break;
+ case 3: temp = cos(x)-sin(x); break;
+ default: temp = 0.0; break; /* not used - purely to
+ * placate compiler */
+ }
+ b = invsqrtpi*temp/sqrt(x);
+ } else {
+ a = __ieee754_j0(x);
+ b = __ieee754_j1(x);
+ for(i=1;i<n;i++){
+ temp = b;
+ b = b*((double)(i+i)/x) - a; /* avoid underflow */
+ a = temp;
+ }
+ }
+ } else {
+ if(ix<0x3e100000) { /* x < 2**-29 */
+ /* x is tiny, return the first Taylor expansion of J(n,x)
+ * J(n,x) = 1/n!*(x/2)^n - ...
+ */
+ if(n>33) /* underflow */
+ b = zero;
+ else {
+ temp = x*0.5; b = temp;
+ for (a=one,i=2;i<=n;i++) {
+ a *= (double)i; /* a = n! */
+ b *= temp; /* b = (x/2)^n */
+ }
+ b = b/a;
+ }
+ } else {
+ /* use backward recurrence */
+ /* x x^2 x^2
+ * J(n,x)/J(n-1,x) = ---- ------ ------ .....
+ * 2n - 2(n+1) - 2(n+2)
+ *
+ * 1 1 1
+ * (for large x) = ---- ------ ------ .....
+ * 2n 2(n+1) 2(n+2)
+ * -- - ------ - ------ -
+ * x x x
+ *
+ * Let w = 2n/x and h=2/x, then the above quotient
+ * is equal to the continued fraction:
+ * 1
+ * = -----------------------
+ * 1
+ * w - -----------------
+ * 1
+ * w+h - ---------
+ * w+2h - ...
+ *
+ * To determine how many terms needed, let
+ * Q(0) = w, Q(1) = w(w+h) - 1,
+ * Q(k) = (w+k*h)*Q(k-1) - Q(k-2),
+ * When Q(k) > 1e4 good for single
+ * When Q(k) > 1e9 good for double
+ * When Q(k) > 1e17 good for quadruple
+ */
+ /* determine k */
+ double t,v;
+ double q0,q1,h,tmp; int k,m;
+ w = (n+n)/(double)x; h = 2.0/(double)x;
+ q0 = w; z = w+h; q1 = w*z - 1.0; k=1;
+ while(q1<1.0e9) {
+ k += 1; z += h;
+ tmp = z*q1 - q0;
+ q0 = q1;
+ q1 = tmp;
+ }
+ m = n+n;
+ for(t=zero, i = 2*(n+k); i>=m; i -= 2) t = one/(i/x-t);
+ a = t;
+ b = one;
+ /* estimate log((2/x)^n*n!) = n*log(2/x)+n*ln(n)
+ * Hence, if n*(log(2n/x)) > ...
+ * single 8.8722839355e+01
+ * double 7.09782712893383973096e+02
+ * long double 1.1356523406294143949491931077970765006170e+04
+ * then recurrent value may overflow and the result is
+ * likely underflow to zero
+ */
+ tmp = n;
+ v = two/x;
+ tmp = tmp*__ieee754_log(fabs(v*tmp));
+ if(tmp<7.09782712893383973096e+02) {
+ for(i=n-1,di=(double)(i+i);i>0;i--){
+ temp = b;
+ b *= di;
+ b = b/x - a;
+ a = temp;
+ di -= two;
+ }
+ } else {
+ for(i=n-1,di=(double)(i+i);i>0;i--){
+ temp = b;
+ b *= di;
+ b = b/x - a;
+ a = temp;
+ di -= two;
+ /* scale b to avoid spurious overflow */
+ if(b>1e100) {
+ a /= b;
+ t /= b;
+ b = one;
+ }
+ }
+ }
+ b = (t*__ieee754_j0(x)/b);
+ }
+ }
+ if(sgn==1) return -b; else return b;
+}
+
+ double __ieee754_yn(int n, double x)
+{
+ int i,hx,ix,lx;
+ int sign;
+ double a, b, temp;
+
+ hx = CYG_LIBM_HI(x);
+ ix = 0x7fffffff&hx;
+ lx = CYG_LIBM_LO(x);
+ /* if Y(n,NaN) is NaN */
+ if((ix|((unsigned)(lx|-lx))>>31)>0x7ff00000) return x+x;
+ if((ix|lx)==0) return -one/zero;
+ if(hx<0) return zero/zero;
+ sign = 1;
+ if(n<0){
+ n = -n;
+ sign = 1 - ((n&1)<<1);
+ }
+ if(n==0) return(__ieee754_y0(x));
+ if(n==1) return(sign*__ieee754_y1(x));
+ if(ix==0x7ff00000) return zero;
+ if(ix>=0x52D00000) { /* x > 2**302 */
+ /* (x >> n**2)
+ * Jn(x) = cos(x-(2n+1)*pi/4)*sqrt(2/x*pi)
+ * Yn(x) = sin(x-(2n+1)*pi/4)*sqrt(2/x*pi)
+ * Let s=sin(x), c=cos(x),
+ * xn=x-(2n+1)*pi/4, sqt2 = sqrt(2),then
+ *
+ * n sin(xn)*sqt2 cos(xn)*sqt2
+ * ----------------------------------
+ * 0 s-c c+s
+ * 1 -s-c -c+s
+ * 2 -s+c -c-s
+ * 3 s+c c-s
+ */
+ switch(n&3) {
+ case 0: temp = sin(x)-cos(x); break;
+ case 1: temp = -sin(x)-cos(x); break;
+ case 2: temp = -sin(x)+cos(x); break;
+ case 3: temp = sin(x)+cos(x); break;
+ default: temp = 0.0; break; /* not used - purely to
+ * placate compiler */
+ }
+ b = invsqrtpi*temp/sqrt(x);
+ } else {
+ a = __ieee754_y0(x);
+ b = __ieee754_y1(x);
+ /* quit if b is -inf */
+ for(i=1;i<n&&((unsigned)CYG_LIBM_HI(b) != 0xfff00000);i++){
+ temp = b;
+ b = ((double)(i+i)/x)*b - a;
+ a = temp;
+ }
+ }
+ if(sign>0) return b; else return -b;
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF e_jn.c
diff --git a/ecos/packages/language/c/libm/current/src/double/ieee754-core/e_lgamma.c b/ecos/packages/language/c/libm/current/src/double/ieee754-core/e_lgamma.c
new file mode 100644
index 0000000..53b153f
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/double/ieee754-core/e_lgamma.c
@@ -0,0 +1,93 @@
+//===========================================================================
+//
+// e_lgamma.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/* @(#)e_lgamma.c 1.3 95/01/18 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunSoft, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ *
+ */
+
+/* __ieee754_lgamma(x)
+ * Return the logarithm of the Gamma function of x.
+ *
+ * Method: call __ieee754_lgamma_r
+ */
+
+#include <math.h>
+#include "mathincl/fdlibm.h"
+
+double
+__ieee754_lgamma(double x)
+{
+ return __ieee754_lgamma_r(x,&signgam);
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF e_lgamma.c
diff --git a/ecos/packages/language/c/libm/current/src/double/ieee754-core/e_lgamma_r.c b/ecos/packages/language/c/libm/current/src/double/ieee754-core/e_lgamma_r.c
new file mode 100644
index 0000000..96c360f
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/double/ieee754-core/e_lgamma_r.c
@@ -0,0 +1,356 @@
+//===========================================================================
+//
+// e_lgamma_r.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/* @(#)e_lgamma_r.c 1.3 95/01/18 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunSoft, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ *
+ */
+
+/* __ieee754_lgamma_r(x, signgamp)
+ * Reentrant version of the logarithm of the Gamma function
+ * with user provide pointer for the sign of Gamma(x).
+ *
+ * Method:
+ * 1. Argument Reduction for 0 < x <= 8
+ * Since gamma(1+s)=s*gamma(s), for x in [0,8], we may
+ * reduce x to a number in [1.5,2.5] by
+ * lgamma(1+s) = log(s) + lgamma(s)
+ * for example,
+ * lgamma(7.3) = log(6.3) + lgamma(6.3)
+ * = log(6.3*5.3) + lgamma(5.3)
+ * = log(6.3*5.3*4.3*3.3*2.3) + lgamma(2.3)
+ * 2. Polynomial approximation of lgamma around its
+ * minimun ymin=1.461632144968362245 to maintain monotonicity.
+ * On [ymin-0.23, ymin+0.27] (i.e., [1.23164,1.73163]), use
+ * Let z = x-ymin;
+ * lgamma(x) = -1.214862905358496078218 + z^2*poly(z)
+ * where
+ * poly(z) is a 14 degree polynomial.
+ * 2. Rational approximation in the primary interval [2,3]
+ * We use the following approximation:
+ * s = x-2.0;
+ * lgamma(x) = 0.5*s + s*P(s)/Q(s)
+ * with accuracy
+ * |P/Q - (lgamma(x)-0.5s)| < 2**-61.71
+ * Our algorithms are based on the following observation
+ *
+ * zeta(2)-1 2 zeta(3)-1 3
+ * lgamma(2+s) = s*(1-Euler) + --------- * s - --------- * s + ...
+ * 2 3
+ *
+ * where Euler = 0.5771... is the Euler constant, which is very
+ * close to 0.5.
+ *
+ * 3. For x>=8, we have
+ * lgamma(x)~(x-0.5)log(x)-x+0.5*log(2pi)+1/(12x)-1/(360x**3)+....
+ * (better formula:
+ * lgamma(x)~(x-0.5)*(log(x)-1)-.5*(log(2pi)-1) + ...)
+ * Let z = 1/x, then we approximation
+ * f(z) = lgamma(x) - (x-0.5)(log(x)-1)
+ * by
+ * 3 5 11
+ * w = w0 + w1*z + w2*z + w3*z + ... + w6*z
+ * where
+ * |w - f(z)| < 2**-58.74
+ *
+ * 4. For negative x, since (G is gamma function)
+ * -x*G(-x)*G(x) = pi/sin(pi*x),
+ * we have
+ * G(x) = pi/(sin(pi*x)*(-x)*G(-x))
+ * since G(-x) is positive, sign(G(x)) = sign(sin(pi*x)) for x<0
+ * Hence, for x<0, signgam = sign(sin(pi*x)) and
+ * lgamma(x) = log(|Gamma(x)|)
+ * = log(pi/(|x*sin(pi*x)|)) - lgamma(-x);
+ * Note: one should avoid compute pi*(-x) directly in the
+ * computation of sin(pi*(-x)).
+ *
+ * 5. Special Cases
+ * lgamma(2+s) ~ s*(1-Euler) for tiny s
+ * lgamma(1)=lgamma(2)=0
+ * lgamma(x) ~ -log(x) for tiny x
+ * lgamma(0) = lgamma(inf) = inf
+ * lgamma(-integer) = +-inf
+ *
+ */
+
+#include "mathincl/fdlibm.h"
+
+static const double
+two52= 4.50359962737049600000e+15, /* 0x43300000, 0x00000000 */
+half= 5.00000000000000000000e-01, /* 0x3FE00000, 0x00000000 */
+one = 1.00000000000000000000e+00, /* 0x3FF00000, 0x00000000 */
+pi = 3.14159265358979311600e+00, /* 0x400921FB, 0x54442D18 */
+a0 = 7.72156649015328655494e-02, /* 0x3FB3C467, 0xE37DB0C8 */
+a1 = 3.22467033424113591611e-01, /* 0x3FD4A34C, 0xC4A60FAD */
+a2 = 6.73523010531292681824e-02, /* 0x3FB13E00, 0x1A5562A7 */
+a3 = 2.05808084325167332806e-02, /* 0x3F951322, 0xAC92547B */
+a4 = 7.38555086081402883957e-03, /* 0x3F7E404F, 0xB68FEFE8 */
+a5 = 2.89051383673415629091e-03, /* 0x3F67ADD8, 0xCCB7926B */
+a6 = 1.19270763183362067845e-03, /* 0x3F538A94, 0x116F3F5D */
+a7 = 5.10069792153511336608e-04, /* 0x3F40B6C6, 0x89B99C00 */
+a8 = 2.20862790713908385557e-04, /* 0x3F2CF2EC, 0xED10E54D */
+a9 = 1.08011567247583939954e-04, /* 0x3F1C5088, 0x987DFB07 */
+a10 = 2.52144565451257326939e-05, /* 0x3EFA7074, 0x428CFA52 */
+a11 = 4.48640949618915160150e-05, /* 0x3F07858E, 0x90A45837 */
+tc = 1.46163214496836224576e+00, /* 0x3FF762D8, 0x6356BE3F */
+tf = -1.21486290535849611461e-01, /* 0xBFBF19B9, 0xBCC38A42 */
+/* tt = -(tail of tf) */
+tt = -3.63867699703950536541e-18, /* 0xBC50C7CA, 0xA48A971F */
+t0 = 4.83836122723810047042e-01, /* 0x3FDEF72B, 0xC8EE38A2 */
+t1 = -1.47587722994593911752e-01, /* 0xBFC2E427, 0x8DC6C509 */
+t2 = 6.46249402391333854778e-02, /* 0x3FB08B42, 0x94D5419B */
+t3 = -3.27885410759859649565e-02, /* 0xBFA0C9A8, 0xDF35B713 */
+t4 = 1.79706750811820387126e-02, /* 0x3F9266E7, 0x970AF9EC */
+t5 = -1.03142241298341437450e-02, /* 0xBF851F9F, 0xBA91EC6A */
+t6 = 6.10053870246291332635e-03, /* 0x3F78FCE0, 0xE370E344 */
+t7 = -3.68452016781138256760e-03, /* 0xBF6E2EFF, 0xB3E914D7 */
+t8 = 2.25964780900612472250e-03, /* 0x3F6282D3, 0x2E15C915 */
+t9 = -1.40346469989232843813e-03, /* 0xBF56FE8E, 0xBF2D1AF1 */
+t10 = 8.81081882437654011382e-04, /* 0x3F4CDF0C, 0xEF61A8E9 */
+t11 = -5.38595305356740546715e-04, /* 0xBF41A610, 0x9C73E0EC */
+t12 = 3.15632070903625950361e-04, /* 0x3F34AF6D, 0x6C0EBBF7 */
+t13 = -3.12754168375120860518e-04, /* 0xBF347F24, 0xECC38C38 */
+t14 = 3.35529192635519073543e-04, /* 0x3F35FD3E, 0xE8C2D3F4 */
+u0 = -7.72156649015328655494e-02, /* 0xBFB3C467, 0xE37DB0C8 */
+u1 = 6.32827064025093366517e-01, /* 0x3FE4401E, 0x8B005DFF */
+u2 = 1.45492250137234768737e+00, /* 0x3FF7475C, 0xD119BD6F */
+u3 = 9.77717527963372745603e-01, /* 0x3FEF4976, 0x44EA8450 */
+u4 = 2.28963728064692451092e-01, /* 0x3FCD4EAE, 0xF6010924 */
+u5 = 1.33810918536787660377e-02, /* 0x3F8B678B, 0xBF2BAB09 */
+v1 = 2.45597793713041134822e+00, /* 0x4003A5D7, 0xC2BD619C */
+v2 = 2.12848976379893395361e+00, /* 0x40010725, 0xA42B18F5 */
+v3 = 7.69285150456672783825e-01, /* 0x3FE89DFB, 0xE45050AF */
+v4 = 1.04222645593369134254e-01, /* 0x3FBAAE55, 0xD6537C88 */
+v5 = 3.21709242282423911810e-03, /* 0x3F6A5ABB, 0x57D0CF61 */
+s0 = -7.72156649015328655494e-02, /* 0xBFB3C467, 0xE37DB0C8 */
+s1 = 2.14982415960608852501e-01, /* 0x3FCB848B, 0x36E20878 */
+s2 = 3.25778796408930981787e-01, /* 0x3FD4D98F, 0x4F139F59 */
+s3 = 1.46350472652464452805e-01, /* 0x3FC2BB9C, 0xBEE5F2F7 */
+s4 = 2.66422703033638609560e-02, /* 0x3F9B481C, 0x7E939961 */
+s5 = 1.84028451407337715652e-03, /* 0x3F5E26B6, 0x7368F239 */
+s6 = 3.19475326584100867617e-05, /* 0x3F00BFEC, 0xDD17E945 */
+r1 = 1.39200533467621045958e+00, /* 0x3FF645A7, 0x62C4AB74 */
+r2 = 7.21935547567138069525e-01, /* 0x3FE71A18, 0x93D3DCDC */
+r3 = 1.71933865632803078993e-01, /* 0x3FC601ED, 0xCCFBDF27 */
+r4 = 1.86459191715652901344e-02, /* 0x3F9317EA, 0x742ED475 */
+r5 = 7.77942496381893596434e-04, /* 0x3F497DDA, 0xCA41A95B */
+r6 = 7.32668430744625636189e-06, /* 0x3EDEBAF7, 0xA5B38140 */
+w0 = 4.18938533204672725052e-01, /* 0x3FDACFE3, 0x90C97D69 */
+w1 = 8.33333333333329678849e-02, /* 0x3FB55555, 0x5555553B */
+w2 = -2.77777777728775536470e-03, /* 0xBF66C16C, 0x16B02E5C */
+w3 = 7.93650558643019558500e-04, /* 0x3F4A019F, 0x98CF38B6 */
+w4 = -5.95187557450339963135e-04, /* 0xBF4380CB, 0x8C0FE741 */
+w5 = 8.36339918996282139126e-04, /* 0x3F4B67BA, 0x4CDAD5D1 */
+w6 = -1.63092934096575273989e-03; /* 0xBF5AB89D, 0x0B9E43E4 */
+
+static double zero= 0.00000000000000000000e+00;
+
+ static double sin_pi(double x)
+{
+ double y,z;
+ int n,ix;
+
+ ix = 0x7fffffff&CYG_LIBM_HI(x);
+
+ if(ix<0x3fd00000) return __kernel_sin(pi*x,zero,0);
+ y = -x; /* x is assume negative */
+
+ /*
+ * argument reduction, make sure inexact flag not raised if input
+ * is an integer
+ */
+ z = floor(y);
+ if(z!=y) { /* inexact anyway */
+ y *= 0.5;
+ y = 2.0*(y - floor(y)); /* y = |x| mod 2.0 */
+ n = (int) (y*4.0);
+ } else {
+ if(ix>=0x43400000) {
+ y = zero; n = 0; /* y must be even */
+ } else {
+ if(ix<0x43300000) z = y+two52; /* exact */
+ n = CYG_LIBM_LO(z)&1; /* lower word of z */
+ y = n;
+ n<<= 2;
+ }
+ }
+ switch (n) {
+ case 0: y = __kernel_sin(pi*y,zero,0); break;
+ case 1:
+ case 2: y = __kernel_cos(pi*(0.5-y),zero); break;
+ case 3:
+ case 4: y = __kernel_sin(pi*(one-y),zero,0); break;
+ case 5:
+ case 6: y = -__kernel_cos(pi*(y-1.5),zero); break;
+ default: y = __kernel_sin(pi*(y-2.0),zero,0); break;
+ }
+ return -y;
+}
+
+
+ double __ieee754_lgamma_r(double x, int *signgamp)
+{
+ double t,y,z,nadj,p,p1,p2,p3,q,r,w;
+ int i,hx,lx,ix;
+
+ nadj = 0.0; /* to placate compiler */
+ hx = CYG_LIBM_HI(x);
+ lx = CYG_LIBM_LO(x);
+
+ /* purge off +-inf, NaN, +-0, and negative arguments */
+ *signgamp = 1;
+ ix = hx&0x7fffffff;
+ if(ix>=0x7ff00000) return x*x;
+ if((ix|lx)==0) return one/zero;
+ if(ix<0x3b900000) { /* |x|<2**-70, return -log(|x|) */
+ if(hx<0) {
+ *signgamp = -1;
+ return -__ieee754_log(-x);
+ } else return -__ieee754_log(x);
+ }
+ if(hx<0) {
+ if(ix>=0x43300000) /* |x|>=2**52, must be -integer */
+ return one/zero;
+ t = sin_pi(x);
+ if(t==zero) return one/zero; /* -integer */
+ nadj = __ieee754_log(pi/fabs(t*x));
+ if(t<zero) *signgamp = -1;
+ x = -x;
+ }
+
+ /* purge off 1 and 2 */
+ if((((ix-0x3ff00000)|lx)==0)||(((ix-0x40000000)|lx)==0)) r = 0;
+ /* for x < 2.0 */
+ else if(ix<0x40000000) {
+ if(ix<=0x3feccccc) { /* lgamma(x) = lgamma(x+1)-log(x) */
+ r = -__ieee754_log(x);
+ if(ix>=0x3FE76944) {y = one-x; i= 0;}
+ else if(ix>=0x3FCDA661) {y= x-(tc-one); i=1;}
+ else {y = x; i=2;}
+ } else {
+ r = zero;
+ if(ix>=0x3FFBB4C3) {y=2.0-x;i=0;} /* [1.7316,2] */
+ else if(ix>=0x3FF3B4C4) {y=x-tc;i=1;} /* [1.23,1.73] */
+ else {y=x-one;i=2;}
+ }
+ switch(i) {
+ case 0:
+ z = y*y;
+ p1 = a0+z*(a2+z*(a4+z*(a6+z*(a8+z*a10))));
+ p2 = z*(a1+z*(a3+z*(a5+z*(a7+z*(a9+z*a11)))));
+ p = y*p1+p2;
+ r += (p-0.5*y); break;
+ case 1:
+ z = y*y;
+ w = z*y;
+ p1 = t0+w*(t3+w*(t6+w*(t9 +w*t12))); /* parallel comp */
+ p2 = t1+w*(t4+w*(t7+w*(t10+w*t13)));
+ p3 = t2+w*(t5+w*(t8+w*(t11+w*t14)));
+ p = z*p1-(tt-w*(p2+y*p3));
+ r += (tf + p); break;
+ case 2:
+ p1 = y*(u0+y*(u1+y*(u2+y*(u3+y*(u4+y*u5)))));
+ p2 = one+y*(v1+y*(v2+y*(v3+y*(v4+y*v5))));
+ r += (-0.5*y + p1/p2);
+ }
+ }
+ else if(ix<0x40200000) { /* x < 8.0 */
+ i = (int)x;
+ t = zero;
+ y = x-(double)i;
+ p = y*(s0+y*(s1+y*(s2+y*(s3+y*(s4+y*(s5+y*s6))))));
+ q = one+y*(r1+y*(r2+y*(r3+y*(r4+y*(r5+y*r6)))));
+ r = half*y+p/q;
+ z = one; /* lgamma(1+s) = log(s) + lgamma(s) */
+ switch(i) {
+ case 7: z *= (y+6.0); /* FALLTHRU */
+ case 6: z *= (y+5.0); /* FALLTHRU */
+ case 5: z *= (y+4.0); /* FALLTHRU */
+ case 4: z *= (y+3.0); /* FALLTHRU */
+ case 3: z *= (y+2.0); /* FALLTHRU */
+ r += __ieee754_log(z); break;
+ }
+ /* 8.0 <= x < 2**58 */
+ } else if (ix < 0x43900000) {
+ t = __ieee754_log(x);
+ z = one/x;
+ y = z*z;
+ w = w0+z*(w1+y*(w2+y*(w3+y*(w4+y*(w5+y*w6)))));
+ r = (x-half)*(t-one)+w;
+ } else
+ /* 2**58 <= x <= inf */
+ r = x*(__ieee754_log(x)-one);
+ if(hx<0) r = nadj - r;
+ return r;
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF e_lgamma_r.c
diff --git a/ecos/packages/language/c/libm/current/src/double/ieee754-core/e_log.c b/ecos/packages/language/c/libm/current/src/double/ieee754-core/e_log.c
new file mode 100644
index 0000000..c21831d
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/double/ieee754-core/e_log.c
@@ -0,0 +1,203 @@
+//===========================================================================
+//
+// e_log.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/* @(#)e_log.c 1.3 95/01/18 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunSoft, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/* __ieee754_log(x)
+ * Return the logrithm of x
+ *
+ * Method :
+ * 1. Argument Reduction: find k and f such that
+ * x = 2^k * (1+f),
+ * where sqrt(2)/2 < 1+f < sqrt(2) .
+ *
+ * 2. Approximation of log(1+f).
+ * Let s = f/(2+f) ; based on log(1+f) = log(1+s) - log(1-s)
+ * = 2s + 2/3 s**3 + 2/5 s**5 + .....,
+ * = 2s + s*R
+ * We use a special Reme algorithm on [0,0.1716] to generate
+ * a polynomial of degree 14 to approximate R The maximum error
+ * of this polynomial approximation is bounded by 2**-58.45. In
+ * other words,
+ * 2 4 6 8 10 12 14
+ * R(z) ~ Lg1*s +Lg2*s +Lg3*s +Lg4*s +Lg5*s +Lg6*s +Lg7*s
+ * (the values of Lg1 to Lg7 are listed in the program)
+ * and
+ * | 2 14 | -58.45
+ * | Lg1*s +...+Lg7*s - R(z) | <= 2
+ * | |
+ * Note that 2s = f - s*f = f - hfsq + s*hfsq, where hfsq = f*f/2.
+ * In order to guarantee error in log below 1ulp, we compute log
+ * by
+ * log(1+f) = f - s*(f - R) (if f is not too large)
+ * log(1+f) = f - (hfsq - s*(hfsq+R)). (better accuracy)
+ *
+ * 3. Finally, log(x) = k*ln2 + log(1+f).
+ * = k*ln2_hi+(f-(hfsq-(s*(hfsq+R)+k*ln2_lo)))
+ * Here ln2 is split into two floating point number:
+ * ln2_hi + ln2_lo,
+ * where n*ln2_hi is always exact for |n| < 2000.
+ *
+ * Special cases:
+ * log(x) is NaN with signal if x < 0 (including -INF) ;
+ * log(+INF) is +INF; log(0) is -INF with signal;
+ * log(NaN) is that NaN with no signal.
+ *
+ * Accuracy:
+ * according to an error analysis, the error is always less than
+ * 1 ulp (unit in the last place).
+ *
+ * Constants:
+ * The hexadecimal values are the intended ones for the following
+ * constants. The decimal values may be used, provided that the
+ * compiler will convert from decimal to binary accurately enough
+ * to produce the hexadecimal values shown.
+ */
+
+#include "mathincl/fdlibm.h"
+
+static const double
+ln2_hi = 6.93147180369123816490e-01, /* 3fe62e42 fee00000 */
+ln2_lo = 1.90821492927058770002e-10, /* 3dea39ef 35793c76 */
+two54 = 1.80143985094819840000e+16, /* 43500000 00000000 */
+Lg1 = 6.666666666666735130e-01, /* 3FE55555 55555593 */
+Lg2 = 3.999999999940941908e-01, /* 3FD99999 9997FA04 */
+Lg3 = 2.857142874366239149e-01, /* 3FD24924 94229359 */
+Lg4 = 2.222219843214978396e-01, /* 3FCC71C5 1D8E78AF */
+Lg5 = 1.818357216161805012e-01, /* 3FC74664 96CB03DE */
+Lg6 = 1.531383769920937332e-01, /* 3FC39A09 D078C69F */
+Lg7 = 1.479819860511658591e-01; /* 3FC2F112 DF3E5244 */
+
+static double zero = 0.0;
+
+ double __ieee754_log(double x)
+{
+ double hfsq,f,s,z,R,w,t1,t2,dk;
+ int k,hx,i,j;
+ unsigned lx;
+
+ hx = CYG_LIBM_HI(x); /* high word of x */
+ lx = CYG_LIBM_LO(x); /* low word of x */
+
+ k=0;
+ if (hx < 0x00100000) { /* x < 2**-1022 */
+ if (((hx&0x7fffffff)|lx)==0)
+ return -two54/zero; /* log(+-0)=-inf */
+ if (hx<0) return (x-x)/zero; /* log(-#) = NaN */
+ k -= 54; x *= two54; /* subnormal number, scale up x */
+ hx = CYG_LIBM_HI(x); /* high word of x */
+ }
+ if (hx >= 0x7ff00000) return x+x;
+ k += (hx>>20)-1023;
+ hx &= 0x000fffff;
+ i = (hx+0x95f64)&0x100000;
+ CYG_LIBM_HI(x) = hx|(i^0x3ff00000); /* normalize x or x/2 */
+ k += (i>>20);
+ f = x-1.0;
+ if((0x000fffff&(2+hx))<3) { /* |f| < 2**-20 */
+ if(f==zero) {
+ if(k==0) return zero;
+ else {
+ dk=(double)k;
+ return dk*ln2_hi+dk*ln2_lo;
+ }
+ }
+ R = f*f*(0.5-0.33333333333333333*f);
+ if(k==0) return f-R;
+ else {
+ dk=(double)k;
+ return dk*ln2_hi-((R-dk*ln2_lo)-f);
+ }
+ }
+ s = f/(2.0+f);
+ dk = (double)k;
+ z = s*s;
+ i = hx-0x6147a;
+ w = z*z;
+ j = 0x6b851-hx;
+ t1= w*(Lg2+w*(Lg4+w*Lg6));
+ t2= z*(Lg1+w*(Lg3+w*(Lg5+w*Lg7)));
+ i |= j;
+ R = t2+t1;
+ if(i>0) {
+ hfsq=0.5*f*f;
+ if(k==0) return f-(hfsq-s*(hfsq+R)); else
+ return dk*ln2_hi-((hfsq-(s*(hfsq+R)+dk*ln2_lo))-f);
+ } else {
+ if(k==0) return f-s*(f-R); else
+ return dk*ln2_hi-((s*(f-R)-dk*ln2_lo)-f);
+ }
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF e_log.c
diff --git a/ecos/packages/language/c/libm/current/src/double/ieee754-core/e_log10.c b/ecos/packages/language/c/libm/current/src/double/ieee754-core/e_log10.c
new file mode 100644
index 0000000..0a6cfa8
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/double/ieee754-core/e_log10.c
@@ -0,0 +1,147 @@
+//===========================================================================
+//
+// e_log10.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/* @(#)e_log10.c 1.3 95/01/18 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunSoft, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/* __ieee754_log10(x)
+ * Return the base 10 logarithm of x
+ *
+ * Method :
+ * Let log10_2hi = leading 40 bits of log10(2) and
+ * log10_2lo = log10(2) - log10_2hi,
+ * ivln10 = 1/log(10) rounded.
+ * Then
+ * n = ilogb(x),
+ * if(n<0) n = n+1;
+ * x = scalbn(x,-n);
+ * log10(x) := n*log10_2hi + (n*log10_2lo + ivln10*log(x))
+ *
+ * Note 1:
+ * To guarantee log10(10**n)=n, where 10**n is normal, the rounding
+ * mode must set to Round-to-Nearest.
+ * Note 2:
+ * [1/log(10)] rounded to 53 bits has error .198 ulps;
+ * log10 is monotonic at all binary break points.
+ *
+ * Special cases:
+ * log10(x) is NaN with signal if x < 0;
+ * log10(+INF) is +INF with no signal; log10(0) is -INF with signal;
+ * log10(NaN) is that NaN with no signal;
+ * log10(10**N) = N for N=0,1,...,22.
+ *
+ * Constants:
+ * The hexadecimal values are the intended ones for the following constants.
+ * The decimal values may be used, provided that the compiler will convert
+ * from decimal to binary accurately enough to produce the hexadecimal values
+ * shown.
+ */
+
+#include "mathincl/fdlibm.h"
+
+static const double
+two54 = 1.80143985094819840000e+16, /* 0x43500000, 0x00000000 */
+ivln10 = 4.34294481903251816668e-01, /* 0x3FDBCB7B, 0x1526E50E */
+log10_2hi = 3.01029995663611771306e-01, /* 0x3FD34413, 0x509F6000 */
+log10_2lo = 3.69423907715893078616e-13; /* 0x3D59FEF3, 0x11F12B36 */
+
+static double zero = 0.0;
+
+ double __ieee754_log10(double x)
+{
+ double y,z;
+ int i,k,hx;
+ unsigned lx;
+
+ hx = CYG_LIBM_HI(x); /* high word of x */
+ lx = CYG_LIBM_LO(x); /* low word of x */
+
+ k=0;
+ if (hx < 0x00100000) { /* x < 2**-1022 */
+ if (((hx&0x7fffffff)|lx)==0)
+ return -two54/zero; /* log(+-0)=-inf */
+ if (hx<0) return (x-x)/zero; /* log(-#) = NaN */
+ k -= 54; x *= two54; /* subnormal number, scale up x */
+ hx = CYG_LIBM_HI(x); /* high word of x */
+ }
+ if (hx >= 0x7ff00000) return x+x;
+ k += (hx>>20)-1023;
+ i = ((unsigned)k&0x80000000)>>31;
+ hx = (hx&0x000fffff)|((0x3ff-i)<<20);
+ y = (double)(k+i);
+ CYG_LIBM_HI(x) = hx;
+ z = y*log10_2lo + ivln10*__ieee754_log(x);
+ return z+y*log10_2hi;
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF e_log10.c
diff --git a/ecos/packages/language/c/libm/current/src/double/ieee754-core/e_pow.c b/ecos/packages/language/c/libm/current/src/double/ieee754-core/e_pow.c
new file mode 100644
index 0000000..ea06310
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/double/ieee754-core/e_pow.c
@@ -0,0 +1,370 @@
+//========================================================================
+//
+// e_pow.c
+//
+// Part of the standard mathematical function library
+//
+//========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors:
+// Date: 2001-07-20
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+/* @(#)e_pow.c 5.1 93/09/24 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/* __ieee754_pow(x,y) return x**y
+ *
+ * n
+ * Method: Let x = 2 * (1+f)
+ * 1. Compute and return log2(x) in two pieces:
+ * log2(x) = w1 + w2,
+ * where w1 has 53-24 = 29 bit trailing zeros.
+ * 2. Perform y*log2(x) = n+y' by simulating muti-precision
+ * arithmetic, where |y'|<=0.5.
+ * 3. Return x**y = 2**n*exp(y'*log2)
+ *
+ * Special cases:
+ * 1. (anything) ** 0 is 1
+ * 2. (anything) ** 1 is itself
+ * 3. (anything) ** NAN is NAN
+ * 4. NAN ** (anything except 0) is NAN
+ * 5. +-(|x| > 1) ** +INF is +INF
+ * 6. +-(|x| > 1) ** -INF is +0
+ * 7. +-(|x| < 1) ** +INF is +0
+ * 8. +-(|x| < 1) ** -INF is +INF
+ * 9. +-1 ** +-INF is NAN
+ * 10. +0 ** (+anything except 0, NAN) is +0
+ * 11. -0 ** (+anything except 0, NAN, odd integer) is +0
+ * 12. +0 ** (-anything except 0, NAN) is +INF
+ * 13. -0 ** (-anything except 0, NAN, odd integer) is +INF
+ * 14. -0 ** (odd integer) = -( +0 ** (odd integer) )
+ * 15. +INF ** (+anything except 0,NAN) is +INF
+ * 16. +INF ** (-anything except 0,NAN) is +0
+ * 17. -INF ** (anything) = -0 ** (-anything)
+ * 18. (-anything) ** (integer) is (-1)**(integer)*(+anything**integer)
+ * 19. (-anything except 0 and inf) ** (non-integer) is NAN
+ *
+ * Accuracy:
+ * pow(x,y) returns x**y nearly rounded. In particular
+ * pow(integer,integer)
+ * always returns the correct integer provided it is
+ * representable.
+ *
+ * Constants :
+ * The hexadecimal values are the intended ones for the following
+ * constants. The decimal values may be used, provided that the
+ * compiler will convert from decimal to binary accurately enough
+ * to produce the hexadecimal values shown.
+ */
+
+#include "mathincl/fdlibm.h"
+
+#ifndef _DOUBLE_IS_32BITS
+
+#ifdef __STDC__
+static const double
+#else
+static double
+#endif
+bp[] = {1.0, 1.5,},
+dp_h[] = { 0.0, 5.84962487220764160156e-01,}, /* 0x3FE2B803, 0x40000000 */
+dp_l[] = { 0.0, 1.35003920212974897128e-08,}, /* 0x3E4CFDEB, 0x43CFD006 */
+zero = 0.0,
+one = 1.0,
+two = 2.0,
+two53 = 9007199254740992.0, /* 0x43400000, 0x00000000 */
+huge = 1.0e300,
+tiny = 1.0e-300,
+ /* poly coefs for (3/2)*(log(x)-2s-2/3*s**3 */
+L1 = 5.99999999999994648725e-01, /* 0x3FE33333, 0x33333303 */
+L2 = 4.28571428578550184252e-01, /* 0x3FDB6DB6, 0xDB6FABFF */
+L3 = 3.33333329818377432918e-01, /* 0x3FD55555, 0x518F264D */
+L4 = 2.72728123808534006489e-01, /* 0x3FD17460, 0xA91D4101 */
+L5 = 2.30660745775561754067e-01, /* 0x3FCD864A, 0x93C9DB65 */
+L6 = 2.06975017800338417784e-01, /* 0x3FCA7E28, 0x4A454EEF */
+P1 = 1.66666666666666019037e-01, /* 0x3FC55555, 0x5555553E */
+P2 = -2.77777777770155933842e-03, /* 0xBF66C16C, 0x16BEBD93 */
+P3 = 6.61375632143793436117e-05, /* 0x3F11566A, 0xAF25DE2C */
+P4 = -1.65339022054652515390e-06, /* 0xBEBBBD41, 0xC5D26BF1 */
+P5 = 4.13813679705723846039e-08, /* 0x3E663769, 0x72BEA4D0 */
+lg2 = 6.93147180559945286227e-01, /* 0x3FE62E42, 0xFEFA39EF */
+lg2_h = 6.93147182464599609375e-01, /* 0x3FE62E43, 0x00000000 */
+lg2_l = -1.90465429995776804525e-09, /* 0xBE205C61, 0x0CA86C39 */
+ovt = 8.0085662595372944372e-0017, /* -(1024-log2(ovfl+.5ulp)) */
+cp = 9.61796693925975554329e-01, /* 0x3FEEC709, 0xDC3A03FD =2/(3ln2) */
+cp_h = 9.61796700954437255859e-01, /* 0x3FEEC709, 0xE0000000 =(float)cp */
+cp_l = -7.02846165095275826516e-09, /* 0xBE3E2FE0, 0x145B01F5 =tail of cp_h*/
+ivln2 = 1.44269504088896338700e+00, /* 0x3FF71547, 0x652B82FE =1/ln2 */
+ivln2_h = 1.44269502162933349609e+00, /* 0x3FF71547, 0x60000000 =24b 1/ln2*/
+ivln2_l = 1.92596299112661746887e-08; /* 0x3E54AE0B, 0xF85DDF44 =1/ln2 tail*/
+
+#ifdef __STDC__
+ double __ieee754_pow(double x, double y)
+#else
+ double __ieee754_pow(x,y)
+ double x, y;
+#endif
+{
+ double z,ax,z_h,z_l,p_h,p_l;
+ double y1,t1,t2,r,s,t,u,v,w;
+ __int32_t i,j,k,yisint,n;
+ __int32_t hx,hy,ix,iy;
+ __uint32_t lx,ly;
+
+ EXTRACT_WORDS(hx,lx,x);
+ EXTRACT_WORDS(hy,ly,y);
+ ix = hx&0x7fffffff; iy = hy&0x7fffffff;
+
+ /* y==zero: x**0 = 1 */
+ if((iy|ly)==0) return one;
+
+ /* +-NaN return x+y */
+ if(ix > 0x7ff00000 || ((ix==0x7ff00000)&&(lx!=0)) ||
+ iy > 0x7ff00000 || ((iy==0x7ff00000)&&(ly!=0)))
+ return x+y;
+
+ /* determine if y is an odd int when x < 0
+ * yisint = 0 ... y is not an integer
+ * yisint = 1 ... y is an odd int
+ * yisint = 2 ... y is an even int
+ */
+ yisint = 0;
+ if(hx<0) {
+ if(iy>=0x43400000) yisint = 2; /* even integer y */
+ else if(iy>=0x3ff00000) {
+ k = (iy>>20)-0x3ff; /* exponent */
+ if(k>20) {
+ j = ly>>(52-k);
+ if((j<<(52-k))==ly) yisint = 2-(j&1);
+ } else if(ly==0) {
+ j = iy>>(20-k);
+ if((j<<(20-k))==iy) yisint = 2-(j&1);
+ }
+ }
+ }
+
+ /* special value of y */
+ if(ly==0) {
+ if (iy==0x7ff00000) { /* y is +-inf */
+ if(((ix-0x3ff00000)|lx)==0)
+ return y - y; /* inf**+-1 is NaN */
+ else if (ix >= 0x3ff00000)/* (|x|>1)**+-inf = inf,0 */
+ return (hy>=0)? y: zero;
+ else /* (|x|<1)**-,+inf = inf,0 */
+ return (hy<0)?-y: zero;
+ }
+ if(iy==0x3ff00000) { /* y is +-1 */
+ if(hy<0) return one/x; else return x;
+ }
+ if(hy==0x40000000) return x*x; /* y is 2 */
+ if(hy==0x3fe00000) { /* y is 0.5 */
+ if(hx>=0) /* x >= +0 */
+ return __ieee754_sqrt(x);
+ }
+ }
+
+ ax = fabs(x);
+ /* special value of x */
+ if(lx==0) {
+ if(ix==0x7ff00000||ix==0||ix==0x3ff00000){
+ z = ax; /*x is +-0,+-inf,+-1*/
+ if(hy<0) z = one/z; /* z = (1/|x|) */
+ if(hx<0) {
+ if(((ix-0x3ff00000)|yisint)==0) {
+ z = (z-z)/(z-z); /* (-1)**non-int is NaN */
+ } else if(yisint==1)
+ z = -z; /* (x<0)**odd = -(|x|**odd) */
+ }
+ return z;
+ }
+ }
+
+ /* (x<0)**(non-int) is NaN */
+ /* CYGNUS LOCAL: This used to be
+ if((((hx>>31)+1)|yisint)==0) return (x-x)/(x-x);
+ but ANSI C says a right shift of a signed negative quantity is
+ implementation defined. */
+ if(((((__uint32_t)hx>>31)-1)|yisint)==0) return (x-x)/(x-x);
+
+ /* |y| is huge */
+ if(iy>0x41e00000) { /* if |y| > 2**31 */
+ if(iy>0x43f00000){ /* if |y| > 2**64, must o/uflow */
+ if(ix<=0x3fefffff) return (hy<0)? huge*huge:tiny*tiny;
+ if(ix>=0x3ff00000) return (hy>0)? huge*huge:tiny*tiny;
+ }
+ /* over/underflow if x is not close to one */
+ if(ix<0x3fefffff) return (hy<0)? huge*huge:tiny*tiny;
+ if(ix>0x3ff00000) return (hy>0)? huge*huge:tiny*tiny;
+ /* now |1-x| is tiny <= 2**-20, suffice to compute
+ log(x) by x-x^2/2+x^3/3-x^4/4 */
+ t = x-1; /* t has 20 trailing zeros */
+ w = (t*t)*(0.5-t*(0.3333333333333333333333-t*0.25));
+ u = ivln2_h*t; /* ivln2_h has 21 sig. bits */
+ v = t*ivln2_l-w*ivln2;
+ t1 = u+v;
+ SET_LOW_WORD(t1,0);
+ t2 = v-(t1-u);
+ } else {
+ double s2,s_h,s_l,t_h,t_l;
+ n = 0;
+ /* take care subnormal number */
+ if(ix<0x00100000)
+ {ax *= two53; n -= 53; GET_HIGH_WORD(ix,ax); }
+ n += ((ix)>>20)-0x3ff;
+ j = ix&0x000fffff;
+ /* determine interval */
+ ix = j|0x3ff00000; /* normalize ix */
+ if(j<=0x3988E) k=0; /* |x|<sqrt(3/2) */
+ else if(j<0xBB67A) k=1; /* |x|<sqrt(3) */
+ else {k=0;n+=1;ix -= 0x00100000;}
+ SET_HIGH_WORD(ax,ix);
+
+ /* compute s = s_h+s_l = (x-1)/(x+1) or (x-1.5)/(x+1.5) */
+ u = ax-bp[k]; /* bp[0]=1.0, bp[1]=1.5 */
+ v = one/(ax+bp[k]);
+ s = u*v;
+ s_h = s;
+ SET_LOW_WORD(s_h,0);
+ /* t_h=ax+bp[k] High */
+ t_h = zero;
+ SET_HIGH_WORD(t_h,((ix>>1)|0x20000000)+0x00080000+(k<<18));
+ t_l = ax - (t_h-bp[k]);
+ s_l = v*((u-s_h*t_h)-s_h*t_l);
+ /* compute log(ax) */
+ s2 = s*s;
+ r = s2*s2*(L1+s2*(L2+s2*(L3+s2*(L4+s2*(L5+s2*L6)))));
+ r += s_l*(s_h+s);
+ s2 = s_h*s_h;
+ t_h = 3.0+s2+r;
+ SET_LOW_WORD(t_h,0);
+ t_l = r-((t_h-3.0)-s2);
+ /* u+v = s*(1+...) */
+ u = s_h*t_h;
+ v = s_l*t_h+t_l*s;
+ /* 2/(3log2)*(s+...) */
+ p_h = u+v;
+ SET_LOW_WORD(p_h,0);
+ p_l = v-(p_h-u);
+ z_h = cp_h*p_h; /* cp_h+cp_l = 2/(3*log2) */
+ z_l = cp_l*p_h+p_l*cp+dp_l[k];
+ /* log2(ax) = (s+..)*2/(3*log2) = n + dp_h + z_h + z_l */
+ t = (double)n;
+ t1 = (((z_h+z_l)+dp_h[k])+t);
+ SET_LOW_WORD(t1,0);
+ t2 = z_l-(((t1-t)-dp_h[k])-z_h);
+ }
+
+ s = one; /* s (sign of result -ve**odd) = -1 else = 1 */
+ if(((((__uint32_t)hx>>31)-1)|(yisint-1))==0)
+ s = -one;/* (-ve)**(odd int) */
+
+ /* split up y into y1+y2 and compute (y1+y2)*(t1+t2) */
+ y1 = y;
+ SET_LOW_WORD(y1,0);
+ p_l = (y-y1)*t1+y*t2;
+ p_h = y1*t1;
+ z = p_l+p_h;
+ EXTRACT_WORDS(j,i,z);
+ if (j>=0x40900000) { /* z >= 1024 */
+ if(((j-0x40900000)|i)!=0) /* if z > 1024 */
+ return s*huge*huge; /* overflow */
+ else {
+ if(p_l+ovt>z-p_h) return s*huge*huge; /* overflow */
+ }
+ } else if((j&0x7fffffff)>=0x4090cc00 ) { /* z <= -1075 */
+ if(((j-0xc090cc00)|i)!=0) /* z < -1075 */
+ return s*tiny*tiny; /* underflow */
+ else {
+ if(p_l<=z-p_h) return s*tiny*tiny; /* underflow */
+ }
+ }
+ /*
+ * compute 2**(p_h+p_l)
+ */
+ i = j&0x7fffffff;
+ k = (i>>20)-0x3ff;
+ n = 0;
+ if(i>0x3fe00000) { /* if |z| > 0.5, set n = [z+0.5] */
+ n = j+(0x00100000>>(k+1));
+ k = ((n&0x7fffffff)>>20)-0x3ff; /* new k for n */
+ t = zero;
+ SET_HIGH_WORD(t,n&~(0x000fffff>>k));
+ n = ((n&0x000fffff)|0x00100000)>>(20-k);
+ if(j<0) n = -n;
+ p_h -= t;
+ }
+ t = p_l+p_h;
+ SET_LOW_WORD(t,0);
+ u = t*lg2_h;
+ v = (p_l-(t-p_h))*lg2+t*lg2_l;
+ z = u+v;
+ w = v-(z-u);
+ t = z*z;
+ t1 = z - t*(P1+t*(P2+t*(P3+t*(P4+t*P5))));
+ r = (z*t1)/(t1-two)-(w+z*w);
+ z = one-(r-z);
+ GET_HIGH_WORD(j,z);
+ j += (n<<20);
+ if((j>>20)<=0) z = scalbn(z,(int)n); /* subnormal output */
+ else SET_HIGH_WORD(z,j);
+ return s*z;
+}
+
+#endif /* defined(_DOUBLE_IS_32BITS) */
+
+// EOF e_pow.c
diff --git a/ecos/packages/language/c/libm/current/src/double/ieee754-core/e_rem_pio2.c b/ecos/packages/language/c/libm/current/src/double/ieee754-core/e_rem_pio2.c
new file mode 100644
index 0000000..8fe65a3
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/double/ieee754-core/e_rem_pio2.c
@@ -0,0 +1,223 @@
+//===========================================================================
+//
+// e_rem_pio2.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/* @(#)e_rem_pio2.c 1.4 95/01/18 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunSoft, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ *
+ */
+
+/* __ieee754_rem_pio2(x,y)
+ *
+ * return the remainder of x rem pi/2 in y[0]+y[1]
+ * use __kernel_rem_pio2()
+ */
+
+#include "mathincl/fdlibm.h"
+
+/*
+ * Table of constants for 2/pi, 396 Hex digits (476 decimal) of 2/pi
+ */
+static const int two_over_pi[] = {
+0xA2F983, 0x6E4E44, 0x1529FC, 0x2757D1, 0xF534DD, 0xC0DB62,
+0x95993C, 0x439041, 0xFE5163, 0xABDEBB, 0xC561B7, 0x246E3A,
+0x424DD2, 0xE00649, 0x2EEA09, 0xD1921C, 0xFE1DEB, 0x1CB129,
+0xA73EE8, 0x8235F5, 0x2EBB44, 0x84E99C, 0x7026B4, 0x5F7E41,
+0x3991D6, 0x398353, 0x39F49C, 0x845F8B, 0xBDF928, 0x3B1FF8,
+0x97FFDE, 0x05980F, 0xEF2F11, 0x8B5A0A, 0x6D1F6D, 0x367ECF,
+0x27CB09, 0xB74F46, 0x3F669E, 0x5FEA2D, 0x7527BA, 0xC7EBE5,
+0xF17B3D, 0x0739F7, 0x8A5292, 0xEA6BFB, 0x5FB11F, 0x8D5D08,
+0x560330, 0x46FC7B, 0x6BABF0, 0xCFBC20, 0x9AF436, 0x1DA9E3,
+0x91615E, 0xE61B08, 0x659985, 0x5F14A0, 0x68408D, 0xFFD880,
+0x4D7327, 0x310606, 0x1556CA, 0x73A8C9, 0x60E27B, 0xC08C6B,
+};
+
+static const int npio2_hw[] = {
+0x3FF921FB, 0x400921FB, 0x4012D97C, 0x401921FB, 0x401F6A7A, 0x4022D97C,
+0x4025FDBB, 0x402921FB, 0x402C463A, 0x402F6A7A, 0x4031475C, 0x4032D97C,
+0x40346B9C, 0x4035FDBB, 0x40378FDB, 0x403921FB, 0x403AB41B, 0x403C463A,
+0x403DD85A, 0x403F6A7A, 0x40407E4C, 0x4041475C, 0x4042106C, 0x4042D97C,
+0x4043A28C, 0x40446B9C, 0x404534AC, 0x4045FDBB, 0x4046C6CB, 0x40478FDB,
+0x404858EB, 0x404921FB,
+};
+
+/*
+ * invpio2: 53 bits of 2/pi
+ * pio2_1: first 33 bit of pi/2
+ * pio2_1t: pi/2 - pio2_1
+ * pio2_2: second 33 bit of pi/2
+ * pio2_2t: pi/2 - (pio2_1+pio2_2)
+ * pio2_3: third 33 bit of pi/2
+ * pio2_3t: pi/2 - (pio2_1+pio2_2+pio2_3)
+ */
+
+static const double
+zero = 0.00000000000000000000e+00, /* 0x00000000, 0x00000000 */
+half = 5.00000000000000000000e-01, /* 0x3FE00000, 0x00000000 */
+two24 = 1.67772160000000000000e+07, /* 0x41700000, 0x00000000 */
+invpio2 = 6.36619772367581382433e-01, /* 0x3FE45F30, 0x6DC9C883 */
+pio2_1 = 1.57079632673412561417e+00, /* 0x3FF921FB, 0x54400000 */
+pio2_1t = 6.07710050650619224932e-11, /* 0x3DD0B461, 0x1A626331 */
+pio2_2 = 6.07710050630396597660e-11, /* 0x3DD0B461, 0x1A600000 */
+pio2_2t = 2.02226624879595063154e-21, /* 0x3BA3198A, 0x2E037073 */
+pio2_3 = 2.02226624871116645580e-21, /* 0x3BA3198A, 0x2E000000 */
+pio2_3t = 8.47842766036889956997e-32; /* 0x397B839A, 0x252049C1 */
+
+ int __ieee754_rem_pio2(double x, double *y)
+{
+ double z,w,t,r,fn;
+ double tx[3];
+ int e0,i,j,nx,n,ix,hx;
+
+ hx = CYG_LIBM_HI(x); /* high word of x */
+ ix = hx&0x7fffffff;
+ if(ix<=0x3fe921fb) /* |x| ~<= pi/4 , no need for reduction */
+ {y[0] = x; y[1] = 0; return 0;}
+ if(ix<0x4002d97c) { /* |x| < 3pi/4, special case with n=+-1 */
+ if(hx>0) {
+ z = x - pio2_1;
+ if(ix!=0x3ff921fb) { /* 33+53 bit pi is good enough */
+ y[0] = z - pio2_1t;
+ y[1] = (z-y[0])-pio2_1t;
+ } else { /* near pi/2, use 33+33+53 bit pi */
+ z -= pio2_2;
+ y[0] = z - pio2_2t;
+ y[1] = (z-y[0])-pio2_2t;
+ }
+ return 1;
+ } else { /* negative x */
+ z = x + pio2_1;
+ if(ix!=0x3ff921fb) { /* 33+53 bit pi is good enough */
+ y[0] = z + pio2_1t;
+ y[1] = (z-y[0])+pio2_1t;
+ } else { /* near pi/2, use 33+33+53 bit pi */
+ z += pio2_2;
+ y[0] = z + pio2_2t;
+ y[1] = (z-y[0])+pio2_2t;
+ }
+ return -1;
+ }
+ }
+ if(ix<=0x413921fb) { /* |x| ~<= 2^19*(pi/2), medium size */
+ t = fabs(x);
+ n = (int) (t*invpio2+half);
+ fn = (double)n;
+ r = t-fn*pio2_1;
+ w = fn*pio2_1t; /* 1st round good to 85 bit */
+ if(n<32&&ix!=npio2_hw[n-1]) {
+ y[0] = r-w; /* quick check no cancellation */
+ } else {
+ j = ix>>20;
+ y[0] = r-w;
+ i = j-(((CYG_LIBM_HI(y[0]))>>20)&0x7ff);
+ if(i>16) { /* 2nd iteration needed, good to 118 */
+ t = r;
+ w = fn*pio2_2;
+ r = t-w;
+ w = fn*pio2_2t-((t-r)-w);
+ y[0] = r-w;
+ i = j-(((CYG_LIBM_HI(y[0]))>>20)&0x7ff);
+ if(i>49) { /* 3rd iteration need, 151 bits acc */
+ t = r; /* will cover all possible cases */
+ w = fn*pio2_3;
+ r = t-w;
+ w = fn*pio2_3t-((t-r)-w);
+ y[0] = r-w;
+ }
+ }
+ }
+ y[1] = (r-y[0])-w;
+ if(hx<0) {y[0] = -y[0]; y[1] = -y[1]; return -n;}
+ else return n;
+ }
+ /*
+ * all other (large) arguments
+ */
+ if(ix>=0x7ff00000) { /* x is inf or NaN */
+ y[0]=y[1]=x-x; return 0;
+ }
+ /* set z = scalbn(|x|,ilogb(x)-23) */
+ CYG_LIBM_LO(z) = CYG_LIBM_LO(x);
+ e0 = (ix>>20)-1046; /* e0 = ilogb(z)-23; */
+ CYG_LIBM_HI(z) = ix - (e0<<20);
+ for(i=0;i<2;i++) {
+ tx[i] = (double)((int)(z));
+ z = (z-tx[i])*two24;
+ }
+ tx[2] = z;
+ nx = 3;
+ while(tx[nx-1]==zero) nx--; /* skip zero term */
+ n = __kernel_rem_pio2(tx,y,e0,nx,2,two_over_pi);
+ if(hx<0) {y[0] = -y[0]; y[1] = -y[1]; return -n;}
+ return n;
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF e_rem_pio2.c
diff --git a/ecos/packages/language/c/libm/current/src/double/ieee754-core/e_remainder.c b/ecos/packages/language/c/libm/current/src/double/ieee754-core/e_remainder.c
new file mode 100644
index 0000000..fa51fa7
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/double/ieee754-core/e_remainder.c
@@ -0,0 +1,133 @@
+//===========================================================================
+//
+// e_remainder.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/* @(#)e_remainder.c 1.3 95/01/18 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunSoft, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/* __ieee754_remainder(x,p)
+ * Return :
+ * returns x REM p = x - [x/p]*p as if in infinite
+ * precise arithmetic, where [x/p] is the (infinite bit)
+ * integer nearest x/p (in half way case choose the even one).
+ * Method :
+ * Based on fmod() return x-[x/p]chopped*p exactlp.
+ */
+
+#include "mathincl/fdlibm.h"
+
+static const double zero = 0.0;
+
+
+ double __ieee754_remainder(double x, double p)
+{
+ int hx,hp;
+ unsigned sx,lx,lp;
+ double p_half;
+
+ hx = CYG_LIBM_HI(x); /* high word of x */
+ lx = CYG_LIBM_LO(x); /* low word of x */
+ hp = CYG_LIBM_HI(p); /* high word of p */
+ lp = CYG_LIBM_LO(p); /* low word of p */
+ sx = hx&0x80000000;
+ hp &= 0x7fffffff;
+ hx &= 0x7fffffff;
+
+ /* purge off exception values */
+ if((hp|lp)==0) return (x*p)/(x*p); /* p = 0 */
+ if((hx>=0x7ff00000)|| /* x not finite */
+ ((hp>=0x7ff00000)&& /* p is NaN */
+ (((hp-0x7ff00000)|lp)!=0)))
+ return (x*p)/(x*p);
+
+
+ if (hp<=0x7fdfffff) x = __ieee754_fmod(x,p+p); /* now x < 2p */
+ if (((hx-hp)|(lx-lp))==0) return zero*x;
+ x = fabs(x);
+ p = fabs(p);
+ if (hp<0x00200000) {
+ if(x+x>p) {
+ x-=p;
+ if(x+x>=p) x -= p;
+ }
+ } else {
+ p_half = 0.5*p;
+ if(x>p_half) {
+ x-=p;
+ if(x>=p_half) x -= p;
+ }
+ }
+ CYG_LIBM_HI(x) ^= sx;
+ return x;
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF e_remainder.c
diff --git a/ecos/packages/language/c/libm/current/src/double/ieee754-core/e_scalb.c b/ecos/packages/language/c/libm/current/src/double/ieee754-core/e_scalb.c
new file mode 100644
index 0000000..15e3135
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/double/ieee754-core/e_scalb.c
@@ -0,0 +1,106 @@
+//===========================================================================
+//
+// e_scalb.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/* @(#)e_scalb.c 1.3 95/01/18 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunSoft, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/*
+ * __ieee754_scalb(x, fn) is provide for
+ * passing various standard test suite. One
+ * should use scalbn() instead.
+ */
+
+#include "mathincl/fdlibm.h"
+
+#ifdef CYGFUN_LIBM_SVID3_scalb
+ double __ieee754_scalb(double x, double fn)
+#else
+ double __ieee754_scalb(double x, int fn)
+#endif
+{
+#ifdef CYGFUN_LIBM_SVID3_scalb
+ if (isnan(x)||isnan(fn)) return x*fn;
+ if (!finite(fn)) {
+ if(fn>0.0) return x*fn;
+ else return x/(-fn);
+ }
+ if (rint(fn)!=fn) return (fn-fn)/(fn-fn);
+ if ( fn > 65000.0) return scalbn(x, 65000);
+ if (-fn > 65000.0) return scalbn(x,-65000);
+ return scalbn(x,(int)fn);
+#else
+ return scalbn(x,fn);
+#endif
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF e_scalb.c
diff --git a/ecos/packages/language/c/libm/current/src/double/ieee754-core/e_sinh.c b/ecos/packages/language/c/libm/current/src/double/ieee754-core/e_sinh.c
new file mode 100644
index 0000000..ee07931
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/double/ieee754-core/e_sinh.c
@@ -0,0 +1,138 @@
+//===========================================================================
+//
+// e_sinh.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/* @(#)e_sinh.c 1.3 95/01/18 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunSoft, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/* __ieee754_sinh(x)
+ * Method :
+ * mathematically sinh(x) if defined to be (exp(x)-exp(-x))/2
+ * 1. Replace x by |x| (sinh(-x) = -sinh(x)).
+ * 2.
+ * E + E/(E+1)
+ * 0 <= x <= 22 : sinh(x) := --------------, E=expm1(x)
+ * 2
+ *
+ * 22 <= x <= lnovft : sinh(x) := exp(x)/2
+ * lnovft <= x <= ln2ovft: sinh(x) := exp(x/2)/2 * exp(x/2)
+ * ln2ovft < x : sinh(x) := x*shuge (overflow)
+ *
+ * Special cases:
+ * sinh(x) is |x| if x is +INF, -INF, or NaN.
+ * only sinh(0)=0 is exact for finite x.
+ */
+
+#include "mathincl/fdlibm.h"
+
+static const double one = 1.0, shuge = 1.0e307;
+
+ double __ieee754_sinh(double x)
+{
+ double t,w,h;
+ int ix,jx;
+ unsigned lx;
+
+ /* High word of |x|. */
+ jx = CYG_LIBM_HI(x);
+ ix = jx&0x7fffffff;
+
+ /* x is INF or NaN */
+ if(ix>=0x7ff00000) return x+x;
+
+ h = 0.5;
+ if (jx<0) h = -h;
+ /* |x| in [0,22], return sign(x)*0.5*(E+E/(E+1))) */
+ if (ix < 0x40360000) { /* |x|<22 */
+ if (ix<0x3e300000) /* |x|<2**-28 */
+ if(shuge+x>one) return x;/* sinh(tiny) = tiny with inexact */
+ t = expm1(fabs(x));
+ if(ix<0x3ff00000) return h*(2.0*t-t*t/(t+one));
+ return h*(t+t/(t+one));
+ }
+
+ /* |x| in [22, log(maxdouble)] return 0.5*exp(|x|) */
+ if (ix < 0x40862E42) return h*__ieee754_exp(fabs(x));
+
+ /* |x| in [log(maxdouble), overflowthresold] */
+ lx = CYG_LIBM_LO(x);
+ if (ix<0x408633CE || ((ix==0x408633ce)&&(lx<=(unsigned)0x8fb9f87d))) {
+ w = __ieee754_exp(0.5*fabs(x));
+ t = h*w;
+ return t*w;
+ }
+
+ /* |x| > overflowthresold, sinh(x) overflow */
+ return x*shuge;
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF e_sinh.c
diff --git a/ecos/packages/language/c/libm/current/src/double/ieee754-core/e_sqrt.c b/ecos/packages/language/c/libm/current/src/double/ieee754-core/e_sqrt.c
new file mode 100644
index 0000000..0072a30
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/double/ieee754-core/e_sqrt.c
@@ -0,0 +1,506 @@
+//===========================================================================
+//
+// e_sqrt.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+/* @(#)e_sqrt.c 1.3 95/01/18 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunSoft, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/* __ieee754_sqrt(x)
+ * Return correctly rounded sqrt.
+ * ------------------------------------------
+ * | Use the hardware sqrt if you have one |
+ * ------------------------------------------
+ * Method:
+ * Bit by bit method using integer arithmetic. (Slow, but portable)
+ * 1. Normalization
+ * Scale x to y in [1,4) with even powers of 2:
+ * find an integer k such that 1 <= (y=x*2^(2k)) < 4, then
+ * sqrt(x) = 2^k * sqrt(y)
+ * 2. Bit by bit computation
+ * Let q = sqrt(y) truncated to i bit after binary point (q = 1),
+ * i 0
+ * i+1 2
+ * s = 2*q , and y = 2 * ( y - q ). (1)
+ * i i i i
+ *
+ * To compute q from q , one checks whether
+ * i+1 i
+ *
+ * -(i+1) 2
+ * (q + 2 ) <= y. (2)
+ * i
+ * -(i+1)
+ * If (2) is false, then q = q ; otherwise q = q + 2 .
+ * i+1 i i+1 i
+ *
+ * With some algebric manipulation, it is not difficult to see
+ * that (2) is equivalent to
+ * -(i+1)
+ * s + 2 <= y (3)
+ * i i
+ *
+ * The advantage of (3) is that s and y can be computed by
+ * i i
+ * the following recurrence formula:
+ * if (3) is false
+ *
+ * s = s , y = y ; (4)
+ * i+1 i i+1 i
+ *
+ * otherwise,
+ * -i -(i+1)
+ * s = s + 2 , y = y - s - 2 (5)
+ * i+1 i i+1 i i
+ *
+ * One may easily use induction to prove (4) and (5).
+ * Note. Since the left hand side of (3) contain only i+2 bits,
+ * it does not necessary to do a full (53-bit) comparison
+ * in (3).
+ * 3. Final rounding
+ * After generating the 53 bits result, we compute one more bit.
+ * Together with the remainder, we can decide whether the
+ * result is exact, bigger than 1/2ulp, or less than 1/2ulp
+ * (it will never equal to 1/2ulp).
+ * The rounding mode can be detected by checking whether
+ * huge + tiny is equal to huge, and whether huge - tiny is
+ * equal to huge for some floating point number "huge" and "tiny".
+ *
+ * Special cases:
+ * sqrt(+-0) = +-0 ... exact
+ * sqrt(inf) = inf
+ * sqrt(-ve) = NaN ... with invalid signal
+ * sqrt(NaN) = NaN ... with invalid signal for signaling NaN
+ *
+ * Other methods : see the appended file at the end of the program below.
+ *---------------
+ */
+
+#include "mathincl/fdlibm.h"
+
+static const double one = 1.0, tiny=1.0e-300;
+
+ double __ieee754_sqrt(double x)
+{
+ double z;
+ int sign = (int)0x80000000;
+ unsigned r,t1,s1,ix1,q1;
+ int ix0,s0,q,m,t,i;
+
+ ix0 = CYG_LIBM_HI(x); /* high word of x */
+ ix1 = CYG_LIBM_LO(x); /* low word of x */
+
+ /* take care of Inf and NaN */
+ if((ix0&0x7ff00000)==0x7ff00000) {
+ return x*x+x; /* sqrt(NaN)=NaN, sqrt(+inf)=+inf
+ sqrt(-inf)=sNaN */
+ }
+ /* take care of zero */
+ if(ix0<=0) {
+ if(((ix0&(~sign))|ix1)==0) return x;/* sqrt(+-0) = +-0 */
+ else if(ix0<0)
+ return (x-x)/(x-x); /* sqrt(-ve) = sNaN */
+ }
+ /* normalize x */
+ m = (ix0>>20);
+ if(m==0) { /* subnormal x */
+ while(ix0==0) {
+ m -= 21;
+ ix0 |= (ix1>>11); ix1 <<= 21;
+ }
+ for(i=0;(ix0&0x00100000)==0;i++) ix0<<=1;
+ m -= i-1;
+ ix0 |= (ix1>>(32-i));
+ ix1 <<= i;
+ }
+ m -= 1023; /* unbias exponent */
+ ix0 = (ix0&0x000fffff)|0x00100000;
+ if(m&1){ /* odd m, double x to make it even */
+ ix0 += ix0 + ((ix1&sign)>>31);
+ ix1 += ix1;
+ }
+ m >>= 1; /* m = [m/2] */
+
+ /* generate sqrt(x) bit by bit */
+ ix0 += ix0 + ((ix1&sign)>>31);
+ ix1 += ix1;
+ q = q1 = s0 = s1 = 0; /* [q,q1] = sqrt(x) */
+ r = 0x00200000; /* r = moving bit from right to left */
+
+ while(r!=0) {
+ t = s0+r;
+ if(t<=ix0) {
+ s0 = t+r;
+ ix0 -= t;
+ q += r;
+ }
+ ix0 += ix0 + ((ix1&sign)>>31);
+ ix1 += ix1;
+ r>>=1;
+ }
+
+ r = sign;
+ while(r!=0) {
+ t1 = s1+r;
+ t = s0;
+ if((t<ix0)||((t==ix0)&&(t1<=ix1))) {
+ s1 = t1+r;
+ if(((t1&sign)==(unsigned)sign)&&(s1&sign)==0) s0 += 1;
+ ix0 -= t;
+ if (ix1 < t1) ix0 -= 1;
+ ix1 -= t1;
+ q1 += r;
+ }
+ ix0 += ix0 + ((ix1&sign)>>31);
+ ix1 += ix1;
+ r>>=1;
+ }
+
+ /* use floating add to find out rounding direction */
+ if((ix0|ix1)!=0) {
+ z = one-tiny; /* trigger inexact flag */
+ if (z>=one) {
+ z = one+tiny;
+ if (q1==(unsigned)0xffffffff) { q1=0; q += 1;}
+ else if (z>one) {
+ if (q1==(unsigned)0xfffffffe) q+=1;
+ q1+=2;
+ } else
+ q1 += (q1&1);
+ }
+ }
+ ix0 = (q>>1)+0x3fe00000;
+ ix1 = q1>>1;
+ if ((q&1)==1) ix1 |= sign;
+ ix0 += (m <<20);
+ CYG_LIBM_HI(z) = ix0;
+ CYG_LIBM_LO(z) = ix1;
+ return z;
+}
+
+/*
+Other methods (use floating-point arithmetic)
+-------------
+(This is a copy of a drafted paper by Prof W. Kahan
+and K.C. Ng, written in May, 1986)
+
+ Two algorithms are given here to implement sqrt(x)
+ (IEEE double precision arithmetic) in software.
+ Both supply sqrt(x) correctly rounded. The first algorithm (in
+ Section A) uses newton iterations and involves four divisions.
+ The second one uses reciproot iterations to avoid division, but
+ requires more multiplications. Both algorithms need the ability
+ to chop results of arithmetic operations instead of round them,
+ and the INEXACT flag to indicate when an arithmetic operation
+ is executed exactly with no roundoff error, all part of the
+ standard (IEEE 754-1985). The ability to perform shift, add,
+ subtract and logical AND operations upon 32-bit words is needed
+ too, though not part of the standard.
+
+A. sqrt(x) by Newton Iteration
+
+ (1) Initial approximation
+
+ Let x0 and x1 be the leading and the trailing 32-bit words of
+ a floating point number x (in IEEE double format) respectively
+
+ 1 11 52 ...widths
+ ------------------------------------------------------
+ x: |s| e | f |
+ ------------------------------------------------------
+ msb lsb msb lsb ...order
+
+
+ ------------------------ ------------------------
+ x0: |s| e | f1 | x1: | f2 |
+ ------------------------ ------------------------
+
+ By performing shifts and subtracts on x0 and x1 (both regarded
+ as integers), we obtain an 8-bit approximation of sqrt(x) as
+ follows.
+
+ k := (x0>>1) + 0x1ff80000;
+ y0 := k - T1[31&(k>>15)]. ... y ~ sqrt(x) to 8 bits
+ Here k is a 32-bit integer and T1[] is an integer array containing
+ correction terms. Now magically the floating value of y (y's
+ leading 32-bit word is y0, the value of its trailing word is 0)
+ approximates sqrt(x) to almost 8-bit.
+
+ Value of T1:
+ static int T1[32]= {
+ 0, 1024, 3062, 5746, 9193, 13348, 18162, 23592,
+ 29598, 36145, 43202, 50740, 58733, 67158, 75992, 85215,
+ 83599, 71378, 60428, 50647, 41945, 34246, 27478, 21581,
+ 16499, 12183, 8588, 5674, 3403, 1742, 661, 130,};
+
+ (2) Iterative refinement
+
+ Apply Heron's rule three times to y, we have y approximates
+ sqrt(x) to within 1 ulp (Unit in the Last Place):
+
+ y := (y+x/y)/2 ... almost 17 sig. bits
+ y := (y+x/y)/2 ... almost 35 sig. bits
+ y := y-(y-x/y)/2 ... within 1 ulp
+
+
+ Remark 1.
+ Another way to improve y to within 1 ulp is:
+
+ y := (y+x/y) ... almost 17 sig. bits to 2*sqrt(x)
+ y := y - 0x00100006 ... almost 18 sig. bits to sqrt(x)
+
+ 2
+ (x-y )*y
+ y := y + 2* ---------- ...within 1 ulp
+ 2
+ 3y + x
+
+
+ This formula has one division fewer than the one above; however,
+ it requires more multiplications and additions. Also x must be
+ scaled in advance to avoid spurious overflow in evaluating the
+ expression 3y*y+x. Hence it is not recommended uless division
+ is slow. If division is very slow, then one should use the
+ reciproot algorithm given in section B.
+
+ (3) Final adjustment
+
+ By twiddling y's last bit it is possible to force y to be
+ correctly rounded according to the prevailing rounding mode
+ as follows. Let r and i be copies of the rounding mode and
+ inexact flag before entering the square root program. Also we
+ use the expression y+-ulp for the next representable floating
+ numbers (up and down) of y. Note that y+-ulp = either fixed
+ point y+-1, or multiply y by nextafter(1,+-inf) in chopped
+ mode.
+
+ I := FALSE; ... reset INEXACT flag I
+ R := RZ; ... set rounding mode to round-toward-zero
+ z := x/y; ... chopped quotient, possibly inexact
+ If(not I) then { ... if the quotient is exact
+ if(z=y) {
+ I := i; ... restore inexact flag
+ R := r; ... restore rounded mode
+ return sqrt(x):=y.
+ } else {
+ z := z - ulp; ... special rounding
+ }
+ }
+ i := TRUE; ... sqrt(x) is inexact
+ If (r=RN) then z=z+ulp ... rounded-to-nearest
+ If (r=RP) then { ... round-toward-+inf
+ y = y+ulp; z=z+ulp;
+ }
+ y := y+z; ... chopped sum
+ y0:=y0-0x00100000; ... y := y/2 is correctly rounded.
+ I := i; ... restore inexact flag
+ R := r; ... restore rounded mode
+ return sqrt(x):=y.
+
+ (4) Special cases
+
+ Square root of +inf, +-0, or NaN is itself;
+ Square root of a negative number is NaN with invalid signal.
+
+
+B. sqrt(x) by Reciproot Iteration
+
+ (1) Initial approximation
+
+ Let x0 and x1 be the leading and the trailing 32-bit words of
+ a floating point number x (in IEEE double format) respectively
+ (see section A). By performing shifs and subtracts on x0 and y0,
+ we obtain a 7.8-bit approximation of 1/sqrt(x) as follows.
+
+ k := 0x5fe80000 - (x0>>1);
+ y0:= k - T2[63&(k>>14)]. ... y ~ 1/sqrt(x) to 7.8 bits
+
+ Here k is a 32-bit integer and T2[] is an integer array
+ containing correction terms. Now magically the floating
+ value of y (y's leading 32-bit word is y0, the value of
+ its trailing word y1 is set to zero) approximates 1/sqrt(x)
+ to almost 7.8-bit.
+
+ Value of T2:
+ static int T2[64]= {
+ 0x1500, 0x2ef8, 0x4d67, 0x6b02, 0x87be, 0xa395, 0xbe7a, 0xd866,
+ 0xf14a, 0x1091b,0x11fcd,0x13552,0x14999,0x15c98,0x16e34,0x17e5f,
+ 0x18d03,0x19a01,0x1a545,0x1ae8a,0x1b5c4,0x1bb01,0x1bfde,0x1c28d,
+ 0x1c2de,0x1c0db,0x1ba73,0x1b11c,0x1a4b5,0x1953d,0x18266,0x16be0,
+ 0x1683e,0x179d8,0x18a4d,0x19992,0x1a789,0x1b445,0x1bf61,0x1c989,
+ 0x1d16d,0x1d77b,0x1dddf,0x1e2ad,0x1e5bf,0x1e6e8,0x1e654,0x1e3cd,
+ 0x1df2a,0x1d635,0x1cb16,0x1be2c,0x1ae4e,0x19bde,0x1868e,0x16e2e,
+ 0x1527f,0x1334a,0x11051,0xe951, 0xbe01, 0x8e0d, 0x5924, 0x1edd,};
+
+ (2) Iterative refinement
+
+ Apply Reciproot iteration three times to y and multiply the
+ result by x to get an approximation z that matches sqrt(x)
+ to about 1 ulp. To be exact, we will have
+ -1ulp < sqrt(x)-z<1.0625ulp.
+
+ ... set rounding mode to Round-to-nearest
+ y := y*(1.5-0.5*x*y*y) ... almost 15 sig. bits to 1/sqrt(x)
+ y := y*((1.5-2^-30)+0.5*x*y*y)... about 29 sig. bits to 1/sqrt(x)
+ ... special arrangement for better accuracy
+ z := x*y ... 29 bits to sqrt(x), with z*y<1
+ z := z + 0.5*z*(1-z*y) ... about 1 ulp to sqrt(x)
+
+ Remark 2. The constant 1.5-2^-30 is chosen to bias the error so that
+ (a) the term z*y in the final iteration is always less than 1;
+ (b) the error in the final result is biased upward so that
+ -1 ulp < sqrt(x) - z < 1.0625 ulp
+ instead of |sqrt(x)-z|<1.03125ulp.
+
+ (3) Final adjustment
+
+ By twiddling y's last bit it is possible to force y to be
+ correctly rounded according to the prevailing rounding mode
+ as follows. Let r and i be copies of the rounding mode and
+ inexact flag before entering the square root program. Also we
+ use the expression y+-ulp for the next representable floating
+ numbers (up and down) of y. Note that y+-ulp = either fixed
+ point y+-1, or multiply y by nextafter(1,+-inf) in chopped
+ mode.
+
+ R := RZ; ... set rounding mode to round-toward-zero
+ switch(r) {
+ case RN: ... round-to-nearest
+ if(x<= z*(z-ulp)...chopped) z = z - ulp; else
+ if(x<= z*(z+ulp)...chopped) z = z; else z = z+ulp;
+ break;
+ case RZ:case RM: ... round-to-zero or round-to--inf
+ R:=RP; ... reset rounding mod to round-to-+inf
+ if(x<z*z ... rounded up) z = z - ulp; else
+ if(x>=(z+ulp)*(z+ulp) ...rounded up) z = z+ulp;
+ break;
+ case RP: ... round-to-+inf
+ if(x>(z+ulp)*(z+ulp)...chopped) z = z+2*ulp; else
+ if(x>z*z ...chopped) z = z+ulp;
+ break;
+ }
+
+ Remark 3. The above comparisons can be done in fixed point. For
+ example, to compare x and w=z*z chopped, it suffices to compare
+ x1 and w1 (the trailing parts of x and w), regarding them as
+ two's complement integers.
+
+ ...Is z an exact square root?
+ To determine whether z is an exact square root of x, let z1 be the
+ trailing part of z, and also let x0 and x1 be the leading and
+ trailing parts of x.
+
+ If ((z1&0x03ffffff)!=0) ... not exact if trailing 26 bits of z!=0
+ I := 1; ... Raise Inexact flag: z is not exact
+ else {
+ j := 1 - [(x0>>20)&1] ... j = logb(x) mod 2
+ k := z1 >> 26; ... get z's 25-th and 26-th
+ fraction bits
+ I := i or (k&j) or ((k&(j+j+1))!=(x1&3));
+ }
+ R:= r ... restore rounded mode
+ return sqrt(x):=z.
+
+ If multiplication is cheaper then the foregoing red tape, the
+ Inexact flag can be evaluated by
+
+ I := i;
+ I := (z*z!=x) or I.
+
+ Note that z*z can overwrite I; this value must be sensed if it is
+ True.
+
+ Remark 4. If z*z = x exactly, then bit 25 to bit 0 of z1 must be
+ zero.
+
+ --------------------
+ z1: | f2 |
+ --------------------
+ bit 31 bit 0
+
+ Further more, bit 27 and 26 of z1, bit 0 and 1 of x1, and the odd
+ or even of logb(x) have the following relations:
+
+ -------------------------------------------------
+ bit 27,26 of z1 bit 1,0 of x1 logb(x)
+ -------------------------------------------------
+ 00 00 odd and even
+ 01 01 even
+ 10 10 odd
+ 10 00 even
+ 11 01 even
+ -------------------------------------------------
+
+ (4) Special cases (see (4) of Section A).
+
+ */
+
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF e_sqrt.c
diff --git a/ecos/packages/language/c/libm/current/src/double/internal/k_cos.c b/ecos/packages/language/c/libm/current/src/double/internal/k_cos.c
new file mode 100644
index 0000000..ac39d99
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/double/internal/k_cos.c
@@ -0,0 +1,148 @@
+//===========================================================================
+//
+// k_cos.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/* @(#)k_cos.c 1.3 95/01/18 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunSoft, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/*
+ * __kernel_cos( x, y )
+ * kernel cos function on [-pi/4, pi/4], pi/4 ~ 0.785398164
+ * Input x is assumed to be bounded by ~pi/4 in magnitude.
+ * Input y is the tail of x.
+ *
+ * Algorithm
+ * 1. Since cos(-x) = cos(x), we need only to consider positive x.
+ * 2. if x < 2^-27 (hx<0x3e400000 0), return 1 with inexact if x!=0.
+ * 3. cos(x) is approximated by a polynomial of degree 14 on
+ * [0,pi/4]
+ * 4 14
+ * cos(x) ~ 1 - x*x/2 + C1*x + ... + C6*x
+ * where the remez error is
+ *
+ * | 2 4 6 8 10 12 14 | -58
+ * |cos(x)-(1-.5*x +C1*x +C2*x +C3*x +C4*x +C5*x +C6*x )| <= 2
+ * | |
+ *
+ * 4 6 8 10 12 14
+ * 4. let r = C1*x +C2*x +C3*x +C4*x +C5*x +C6*x , then
+ * cos(x) = 1 - x*x/2 + r
+ * since cos(x+y) ~ cos(x) - sin(x)*y
+ * ~ cos(x) - x*y,
+ * a correction term is necessary in cos(x) and hence
+ * cos(x+y) = 1 - (x*x/2 - (r - x*y))
+ * For better accuracy when x > 0.3, let qx = |x|/4 with
+ * the last 32 bits mask off, and if x > 0.78125, let qx = 0.28125.
+ * Then
+ * cos(x+y) = (1-qx) - ((x*x/2-qx) - (r-x*y)).
+ * Note that 1-qx and (x*x/2-qx) is EXACT here, and the
+ * magnitude of the latter is at least a quarter of x*x/2,
+ * thus, reducing the rounding error in the subtraction.
+ */
+
+#include "mathincl/fdlibm.h"
+
+static const double
+one = 1.00000000000000000000e+00, /* 0x3FF00000, 0x00000000 */
+C1 = 4.16666666666666019037e-02, /* 0x3FA55555, 0x5555554C */
+C2 = -1.38888888888741095749e-03, /* 0xBF56C16C, 0x16C15177 */
+C3 = 2.48015872894767294178e-05, /* 0x3EFA01A0, 0x19CB1590 */
+C4 = -2.75573143513906633035e-07, /* 0xBE927E4F, 0x809C52AD */
+C5 = 2.08757232129817482790e-09, /* 0x3E21EE9E, 0xBDB4B1C4 */
+C6 = -1.13596475577881948265e-11; /* 0xBDA8FAE9, 0xBE8838D4 */
+
+ double __kernel_cos(double x, double y)
+{
+ double a,hz,z,r,qx;
+ int ix;
+ ix = CYG_LIBM_HI(x)&0x7fffffff; /* ix = |x|'s high word*/
+ if(ix<0x3e400000) { /* if x < 2**27 */
+ if(((int)x)==0) return one; /* generate inexact */
+ }
+ z = x*x;
+ r = z*(C1+z*(C2+z*(C3+z*(C4+z*(C5+z*C6)))));
+ if(ix < 0x3FD33333) /* if |x| < 0.3 */
+ return one - (0.5*z - (z*r - x*y));
+ else {
+ if(ix > 0x3fe90000) { /* x > 0.78125 */
+ qx = 0.28125;
+ } else {
+ CYG_LIBM_HI(qx) = ix-0x00200000; /* x/4 */
+ CYG_LIBM_LO(qx) = 0;
+ }
+ hz = 0.5*z-qx;
+ a = one-qx;
+ return a - (hz - (z*r-x*y));
+ }
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF k_cos.c
diff --git a/ecos/packages/language/c/libm/current/src/double/internal/k_rem_pio2.c b/ecos/packages/language/c/libm/current/src/double/internal/k_rem_pio2.c
new file mode 100644
index 0000000..6b1b59b
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/double/internal/k_rem_pio2.c
@@ -0,0 +1,364 @@
+//===========================================================================
+//
+// k_rem_pio2.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/* @(#)k_rem_pio2.c 1.3 95/01/18 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunSoft, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/*
+ * __kernel_rem_pio2(x,y,e0,nx,prec,ipio2)
+ * double x[],y[]; int e0,nx,prec; int ipio2[];
+ *
+ * __kernel_rem_pio2 return the last three digits of N with
+ * y = x - N*pi/2
+ * so that |y| < pi/2.
+ *
+ * The method is to compute the integer (mod 8) and fraction parts of
+ * (2/pi)*x without doing the full multiplication. In general we
+ * skip the part of the product that are known to be a huge integer (
+ * more accurately, = 0 mod 8 ). Thus the number of operations are
+ * independent of the exponent of the input.
+ *
+ * (2/pi) is represented by an array of 24-bit integers in ipio2[].
+ *
+ * Input parameters:
+ * x[] The input value (must be positive) is broken into nx
+ * pieces of 24-bit integers in double precision format.
+ * x[i] will be the i-th 24 bit of x. The scaled exponent
+ * of x[0] is given in input parameter e0 (i.e., x[0]*2^e0
+ * match x's up to 24 bits.
+ *
+ * Example of breaking a double positive z into x[0]+x[1]+x[2]:
+ * e0 = ilogb(z)-23
+ * z = scalbn(z,-e0)
+ * for i = 0,1,2
+ * x[i] = floor(z)
+ * z = (z-x[i])*2**24
+ *
+ *
+ * y[] ouput result in an array of double precision numbers.
+ * The dimension of y[] is:
+ * 24-bit precision 1
+ * 53-bit precision 2
+ * 64-bit precision 2
+ * 113-bit precision 3
+ * The actual value is the sum of them. Thus for 113-bit
+ * precison, one may have to do something like:
+ *
+ * long double t,w,r_head, r_tail;
+ * t = (long double)y[2] + (long double)y[1];
+ * w = (long double)y[0];
+ * r_head = t+w;
+ * r_tail = w - (r_head - t);
+ *
+ * e0 The exponent of x[0]
+ *
+ * nx dimension of x[]
+ *
+ * prec an integer indicating the precision:
+ * 0 24 bits (single)
+ * 1 53 bits (double)
+ * 2 64 bits (extended)
+ * 3 113 bits (quad)
+ *
+ * ipio2[]
+ * integer array, contains the (24*i)-th to (24*i+23)-th
+ * bit of 2/pi after binary point. The corresponding
+ * floating value is
+ *
+ * ipio2[i] * 2^(-24(i+1)).
+ *
+ * External function:
+ * double scalbn(), floor();
+ *
+ *
+ * Here is the description of some local variables:
+ *
+ * jk jk+1 is the initial number of terms of ipio2[] needed
+ * in the computation. The recommended value is 2,3,4,
+ * 6 for single, double, extended,and quad.
+ *
+ * jz local integer variable indicating the number of
+ * terms of ipio2[] used.
+ *
+ * jx nx - 1
+ *
+ * jv index for pointing to the suitable ipio2[] for the
+ * computation. In general, we want
+ * ( 2^e0*x[0] * ipio2[jv-1]*2^(-24jv) )/8
+ * is an integer. Thus
+ * e0-3-24*jv >= 0 or (e0-3)/24 >= jv
+ * Hence jv = max(0,(e0-3)/24).
+ *
+ * jp jp+1 is the number of terms in PIo2[] needed, jp = jk.
+ *
+ * q[] double array with integral value, representing the
+ * 24-bits chunk of the product of x and 2/pi.
+ *
+ * q0 the corresponding exponent of q[0]. Note that the
+ * exponent for q[i] would be q0-24*i.
+ *
+ * PIo2[] double precision array, obtained by cutting pi/2
+ * into 24 bits chunks.
+ *
+ * f[] ipio2[] in floating point
+ *
+ * iq[] integer array by breaking up q[] in 24-bits chunk.
+ *
+ * fq[] final product of x*(2/pi) in fq[0],..,fq[jk]
+ *
+ * ih integer. If >0 it indicates q[] is >= 0.5, hence
+ * it also indicates the *sign* of the result.
+ *
+ */
+
+
+/*
+ * Constants:
+ * The hexadecimal values are the intended ones for the following
+ * constants. The decimal values may be used, provided that the
+ * compiler will convert from decimal to binary accurately enough
+ * to produce the hexadecimal values shown.
+ */
+
+#include "mathincl/fdlibm.h"
+
+static const int init_jk[] = {2,3,4,6}; /* initial value for jk */
+
+static const double PIo2[] = {
+ 1.57079625129699707031e+00, /* 0x3FF921FB, 0x40000000 */
+ 7.54978941586159635335e-08, /* 0x3E74442D, 0x00000000 */
+ 5.39030252995776476554e-15, /* 0x3CF84698, 0x80000000 */
+ 3.28200341580791294123e-22, /* 0x3B78CC51, 0x60000000 */
+ 1.27065575308067607349e-29, /* 0x39F01B83, 0x80000000 */
+ 1.22933308981111328932e-36, /* 0x387A2520, 0x40000000 */
+ 2.73370053816464559624e-44, /* 0x36E38222, 0x80000000 */
+ 2.16741683877804819444e-51, /* 0x3569F31D, 0x00000000 */
+};
+
+static const double
+zero = 0.0,
+one = 1.0,
+two24 = 1.67772160000000000000e+07, /* 0x41700000, 0x00000000 */
+twon24 = 5.96046447753906250000e-08; /* 0x3E700000, 0x00000000 */
+
+ int __kernel_rem_pio2(double *x, double *y, int e0, int nx, int prec, const int *ipio2)
+{
+ int jz,jx,jv,jp,jk,carry,n,iq[20],i,j,k,m,q0,ih;
+ double z,fw,f[20],fq[20],q[20];
+
+ /* initialize jk*/
+ jk = init_jk[prec];
+ jp = jk;
+
+ /* determine jx,jv,q0, note that 3>q0 */
+ jx = nx-1;
+ jv = (e0-3)/24; if(jv<0) jv=0;
+ q0 = e0-24*(jv+1);
+
+ /* set up f[0] to f[jx+jk] where f[jx+jk] = ipio2[jv+jk] */
+ j = jv-jx; m = jx+jk;
+ for(i=0;i<=m;i++,j++) f[i] = (j<0)? zero : (double) ipio2[j];
+
+ /* compute q[0],q[1],...q[jk] */
+ for (i=0;i<=jk;i++) {
+ for(j=0,fw=0.0;j<=jx;j++) fw += x[j]*f[jx+i-j]; q[i] = fw;
+ }
+
+ jz = jk;
+recompute:
+ /* distill q[] into iq[] reversingly */
+ for(i=0,j=jz,z=q[jz];j>0;i++,j--) {
+ fw = (double)((int)(twon24* z));
+ iq[i] = (int)(z-two24*fw);
+ z = q[j-1]+fw;
+ }
+
+ /* compute n */
+ z = scalbn(z,q0); /* actual value of z */
+ z -= 8.0*floor(z*0.125); /* trim off integer >= 8 */
+ n = (int) z;
+ z -= (double)n;
+ ih = 0;
+ if(q0>0) { /* need iq[jz-1] to determine n */
+ i = (iq[jz-1]>>(24-q0)); n += i;
+ iq[jz-1] -= i<<(24-q0);
+ ih = iq[jz-1]>>(23-q0);
+ }
+ else if(q0==0) ih = iq[jz-1]>>23;
+ else if(z>=0.5) ih=2;
+
+ if(ih>0) { /* q > 0.5 */
+ n += 1; carry = 0;
+ for(i=0;i<jz ;i++) { /* compute 1-q */
+ j = iq[i];
+ if(carry==0) {
+ if(j!=0) {
+ carry = 1; iq[i] = 0x1000000- j;
+ }
+ } else iq[i] = 0xffffff - j;
+ }
+ if(q0>0) { /* rare case: chance is 1 in 12 */
+ switch(q0) {
+ case 1:
+ iq[jz-1] &= 0x7fffff; break;
+ case 2:
+ iq[jz-1] &= 0x3fffff; break;
+ }
+ }
+ if(ih==2) {
+ z = one - z;
+ if(carry!=0) z -= scalbn(one,q0);
+ }
+ }
+
+ /* check if recomputation is needed */
+ if(z==zero) {
+ j = 0;
+ for (i=jz-1;i>=jk;i--) j |= iq[i];
+ if(j==0) { /* need recomputation */
+ for(k=1;iq[jk-k]==0;k++); /* k = no. of terms needed */
+
+ for(i=jz+1;i<=jz+k;i++) { /* add q[jz+1] to q[jz+k] */
+ f[jx+i] = (double) ipio2[jv+i];
+ for(j=0,fw=0.0;j<=jx;j++) fw += x[j]*f[jx+i-j];
+ q[i] = fw;
+ }
+ jz += k;
+ goto recompute;
+ }
+ }
+
+ /* chop off zero terms */
+ if(z==0.0) {
+ jz -= 1; q0 -= 24;
+ while(iq[jz]==0) { jz--; q0-=24;}
+ } else { /* break z into 24-bit if necessary */
+ z = scalbn(z,-q0);
+ if(z>=two24) {
+ fw = (double)((int)(twon24*z));
+ iq[jz] = (int)(z-two24*fw);
+ jz += 1; q0 += 24;
+ iq[jz] = (int) fw;
+ } else iq[jz] = (int) z ;
+ }
+
+ /* convert integer "bit" chunk to floating-point value */
+ fw = scalbn(one,q0);
+ for(i=jz;i>=0;i--) {
+ q[i] = fw*(double)iq[i]; fw*=twon24;
+ }
+
+ /* compute PIo2[0,...,jp]*q[jz,...,0] */
+ for(i=jz;i>=0;i--) {
+ for(fw=0.0,k=0;k<=jp&&k<=jz-i;k++) fw += PIo2[k]*q[i+k];
+ fq[jz-i] = fw;
+ }
+
+ /* compress fq[] into y[] */
+ switch(prec) {
+ case 0:
+ fw = 0.0;
+ for (i=jz;i>=0;i--) fw += fq[i];
+ y[0] = (ih==0)? fw: -fw;
+ break;
+ case 1:
+ case 2:
+ fw = 0.0;
+ for (i=jz;i>=0;i--) fw += fq[i];
+ y[0] = (ih==0)? fw: -fw;
+ fw = fq[0]-fw;
+ for (i=1;i<=jz;i++) fw += fq[i];
+ y[1] = (ih==0)? fw: -fw;
+ break;
+ case 3: /* painful */
+ for (i=jz;i>0;i--) {
+ fw = fq[i-1]+fq[i];
+ fq[i] += fq[i-1]-fw;
+ fq[i-1] = fw;
+ }
+ for (i=jz;i>1;i--) {
+ fw = fq[i-1]+fq[i];
+ fq[i] += fq[i-1]-fw;
+ fq[i-1] = fw;
+ }
+ for (fw=0.0,i=jz;i>=2;i--) fw += fq[i];
+ if(ih==0) {
+ y[0] = fq[0]; y[1] = fq[1]; y[2] = fw;
+ } else {
+ y[0] = -fq[0]; y[1] = -fq[1]; y[2] = -fw;
+ }
+ }
+ return n&7;
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF k_rem_pio2.c
diff --git a/ecos/packages/language/c/libm/current/src/double/internal/k_sin.c b/ecos/packages/language/c/libm/current/src/double/internal/k_sin.c
new file mode 100644
index 0000000..a97d466
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/double/internal/k_sin.c
@@ -0,0 +1,130 @@
+//===========================================================================
+//
+// k_sin.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/* @(#)k_sin.c 1.3 95/01/18 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunSoft, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/* __kernel_sin( x, y, iy)
+ * kernel sin function on [-pi/4, pi/4], pi/4 ~ 0.7854
+ * Input x is assumed to be bounded by ~pi/4 in magnitude.
+ * Input y is the tail of x.
+ * Input iy indicates whether y is 0. (if iy=0, y assume to be 0).
+ *
+ * Algorithm
+ * 1. Since sin(-x) = -sin(x), we need only to consider positive x.
+ * 2. if x < 2^-27 (hx<0x3e400000 0), return x with inexact if x!=0.
+ * 3. sin(x) is approximated by a polynomial of degree 13 on
+ * [0,pi/4]
+ * 3 13
+ * sin(x) ~ x + S1*x + ... + S6*x
+ * where
+ *
+ * |sin(x) 2 4 6 8 10 12 | -58
+ * |----- - (1+S1*x +S2*x +S3*x +S4*x +S5*x +S6*x )| <= 2
+ * | x |
+ *
+ * 4. sin(x+y) = sin(x) + sin'(x')*y
+ * ~ sin(x) + (1-x*x/2)*y
+ * For better accuracy, let
+ * 3 2 2 2 2
+ * r = x *(S2+x *(S3+x *(S4+x *(S5+x *S6))))
+ * then 3 2
+ * sin(x) = x + (S1*x + (x *(r-y/2)+y))
+ */
+
+#include "mathincl/fdlibm.h"
+
+static const double
+half = 5.00000000000000000000e-01, /* 0x3FE00000, 0x00000000 */
+S1 = -1.66666666666666324348e-01, /* 0xBFC55555, 0x55555549 */
+S2 = 8.33333333332248946124e-03, /* 0x3F811111, 0x1110F8A6 */
+S3 = -1.98412698298579493134e-04, /* 0xBF2A01A0, 0x19C161D5 */
+S4 = 2.75573137070700676789e-06, /* 0x3EC71DE3, 0x57B1FE7D */
+S5 = -2.50507602534068634195e-08, /* 0xBE5AE5E6, 0x8A2B9CEB */
+S6 = 1.58969099521155010221e-10; /* 0x3DE5D93A, 0x5ACFD57C */
+
+ double __kernel_sin(double x, double y, int iy)
+{
+ double z,r,v;
+ int ix;
+ ix = CYG_LIBM_HI(x)&0x7fffffff; /* high word of x */
+ if(ix<0x3e400000) /* |x| < 2**-27 */
+ {if((int)x==0) return x;} /* generate inexact */
+ z = x*x;
+ v = z*x;
+ r = S2+z*(S3+z*(S4+z*(S5+z*S6)));
+ if(iy==0) return x+v*(S1+z*r);
+ else return x-((z*(half*y-v*r)-y)-v*S1);
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF k_sin.c
diff --git a/ecos/packages/language/c/libm/current/src/double/internal/k_tan.c b/ecos/packages/language/c/libm/current/src/double/internal/k_tan.c
new file mode 100644
index 0000000..f2d82e8
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/double/internal/k_tan.c
@@ -0,0 +1,181 @@
+//===========================================================================
+//
+// k_tan.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/* @(#)k_tan.c 1.3 95/01/18 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunSoft, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/* __kernel_tan( x, y, k )
+ * kernel tan function on [-pi/4, pi/4], pi/4 ~ 0.7854
+ * Input x is assumed to be bounded by ~pi/4 in magnitude.
+ * Input y is the tail of x.
+ * Input k indicates whether tan (if k=1) or
+ * -1/tan (if k= -1) is returned.
+ *
+ * Algorithm
+ * 1. Since tan(-x) = -tan(x), we need only to consider positive x.
+ * 2. if x < 2^-28 (hx<0x3e300000 0), return x with inexact if x!=0.
+ * 3. tan(x) is approximated by a odd polynomial of degree 27 on
+ * [0,0.67434]
+ * 3 27
+ * tan(x) ~ x + T1*x + ... + T13*x
+ * where
+ *
+ * |tan(x) 2 4 26 | -59.2
+ * |----- - (1+T1*x +T2*x +.... +T13*x )| <= 2
+ * | x |
+ *
+ * Note: tan(x+y) = tan(x) + tan'(x)*y
+ * ~ tan(x) + (1+x*x)*y
+ * Therefore, for better accuracy in computing tan(x+y), let
+ * 3 2 2 2 2
+ * r = x *(T2+x *(T3+x *(...+x *(T12+x *T13))))
+ * then
+ * 3 2
+ * tan(x+y) = x + (T1*x + (x *(r+y)+y))
+ *
+ * 4. For x in [0.67434,pi/4], let y = pi/4 - x, then
+ * tan(x) = tan(pi/4-y) = (1-tan(y))/(1+tan(y))
+ * = 1 - 2*(tan(y) - (tan(y)^2)/(1+tan(y)))
+ */
+
+#include "mathincl/fdlibm.h"
+static const double
+one = 1.00000000000000000000e+00, /* 0x3FF00000, 0x00000000 */
+pio4 = 7.85398163397448278999e-01, /* 0x3FE921FB, 0x54442D18 */
+pio4lo= 3.06161699786838301793e-17, /* 0x3C81A626, 0x33145C07 */
+T[] = {
+ 3.33333333333334091986e-01, /* 0x3FD55555, 0x55555563 */
+ 1.33333333333201242699e-01, /* 0x3FC11111, 0x1110FE7A */
+ 5.39682539762260521377e-02, /* 0x3FABA1BA, 0x1BB341FE */
+ 2.18694882948595424599e-02, /* 0x3F9664F4, 0x8406D637 */
+ 8.86323982359930005737e-03, /* 0x3F8226E3, 0xE96E8493 */
+ 3.59207910759131235356e-03, /* 0x3F6D6D22, 0xC9560328 */
+ 1.45620945432529025516e-03, /* 0x3F57DBC8, 0xFEE08315 */
+ 5.88041240820264096874e-04, /* 0x3F4344D8, 0xF2F26501 */
+ 2.46463134818469906812e-04, /* 0x3F3026F7, 0x1A8D1068 */
+ 7.81794442939557092300e-05, /* 0x3F147E88, 0xA03792A6 */
+ 7.14072491382608190305e-05, /* 0x3F12B80F, 0x32F0A7E9 */
+ -1.85586374855275456654e-05, /* 0xBEF375CB, 0xDB605373 */
+ 2.59073051863633712884e-05, /* 0x3EFB2A70, 0x74BF7AD4 */
+};
+
+ double __kernel_tan(double x, double y, int iy)
+{
+ double z,r,v,w,s;
+ int ix,hx;
+ hx = CYG_LIBM_HI(x); /* high word of x */
+ ix = hx&0x7fffffff; /* high word of |x| */
+ if(ix<0x3e300000) /* x < 2**-28 */
+ {if((int)x==0) { /* generate inexact */
+ if(((ix|CYG_LIBM_LO(x))|(iy+1))==0) return one/fabs(x);
+ else return (iy==1)? x: -one/x;
+ }
+ }
+ if(ix>=0x3FE59428) { /* |x|>=0.6744 */
+ if(hx<0) {x = -x; y = -y;}
+ z = pio4-x;
+ w = pio4lo-y;
+ x = z+w; y = 0.0;
+ }
+ z = x*x;
+ w = z*z;
+ /* Break x^5*(T[1]+x^2*T[2]+...) into
+ * x^5(T[1]+x^4*T[3]+...+x^20*T[11]) +
+ * x^5(x^2*(T[2]+x^4*T[4]+...+x^22*[T12]))
+ */
+ r = T[1]+w*(T[3]+w*(T[5]+w*(T[7]+w*(T[9]+w*T[11]))));
+ v = z*(T[2]+w*(T[4]+w*(T[6]+w*(T[8]+w*(T[10]+w*T[12])))));
+ s = z*x;
+ r = y + z*(s*(r+v)+y);
+ r += T[0]*s;
+ w = x+r;
+ if(ix>=0x3FE59428) {
+ v = (double)iy;
+ return (double)(1-((hx>>30)&2))*(v-2.0*(x-(w*w/(w+v)-r)));
+ }
+ if(iy==1) return w;
+ else { /* if allow error up to 2 ulp,
+ simply return -1.0/(x+r) here */
+ /* compute -1.0/(x+r) accurately */
+ double a,t;
+ z = w;
+ CYG_LIBM_LO(z) = 0;
+ v = r-(z - x); /* z+v = r+x */
+ t = a = -1.0/w; /* a = -1.0/w */
+ CYG_LIBM_LO(t) = 0;
+ s = 1.0+t*z;
+ return t+a*(s+t*v);
+ }
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF k_tan.c
diff --git a/ecos/packages/language/c/libm/current/src/double/portable-api/s_asinh.c b/ecos/packages/language/c/libm/current/src/double/portable-api/s_asinh.c
new file mode 100644
index 0000000..656dd1d
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/double/portable-api/s_asinh.c
@@ -0,0 +1,117 @@
+//===========================================================================
+//
+// s_asinh.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/* @(#)s_asinh.c 1.3 95/01/18 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunSoft, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/* asinh(x)
+ * Method :
+ * Based on
+ * asinh(x) = sign(x) * log [ |x| + sqrt(x*x+1) ]
+ * we have
+ * asinh(x) := x if 1+x*x=1,
+ * := sign(x)*(log(x)+ln2)) for large |x|, else
+ * := sign(x)*log(2|x|+1/(|x|+sqrt(x*x+1))) if|x|>2, else
+ * := sign(x)*log1p(|x| + x^2/(1 + sqrt(1+x^2)))
+ */
+
+#include "mathincl/fdlibm.h"
+
+static const double
+one = 1.00000000000000000000e+00, /* 0x3FF00000, 0x00000000 */
+ln2 = 6.93147180559945286227e-01, /* 0x3FE62E42, 0xFEFA39EF */
+huge= 1.00000000000000000000e+300;
+
+ double asinh(double x)
+{
+ double t,w;
+ int hx,ix;
+ hx = CYG_LIBM_HI(x);
+ ix = hx&0x7fffffff;
+ if(ix>=0x7ff00000) return x+x; /* x is inf or NaN */
+ if(ix< 0x3e300000) { /* |x|<2**-28 */
+ if(huge+x>one) return x; /* return x inexact except 0 */
+ }
+ if(ix>0x41b00000) { /* |x| > 2**28 */
+ w = __ieee754_log(fabs(x))+ln2;
+ } else if (ix>0x40000000) { /* 2**28 > |x| > 2.0 */
+ t = fabs(x);
+ w = __ieee754_log(2.0*t+one/(sqrt(x*x+one)+t));
+ } else { /* 2.0 > |x| > 2**-28 */
+ t = x*x;
+ w =log1p(fabs(x)+t/(one+sqrt(one+t)));
+ }
+ if(hx>0) return w; else return -w;
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF s_asinh.c
diff --git a/ecos/packages/language/c/libm/current/src/double/portable-api/s_atan.c b/ecos/packages/language/c/libm/current/src/double/portable-api/s_atan.c
new file mode 100644
index 0000000..f490f93
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/double/portable-api/s_atan.c
@@ -0,0 +1,178 @@
+//===========================================================================
+//
+// s_atan.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/* @(#)s_atan.c 1.3 95/01/18 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunSoft, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ *
+ */
+
+/* atan(x)
+ * Method
+ * 1. Reduce x to positive by atan(x) = -atan(-x).
+ * 2. According to the integer k=4t+0.25 chopped, t=x, the argument
+ * is further reduced to one of the following intervals and the
+ * arctangent of t is evaluated by the corresponding formula:
+ *
+ * [0,7/16] atan(x) = t-t^3*(a1+t^2*(a2+...(a10+t^2*a11)...)
+ * [7/16,11/16] atan(x) = atan(1/2) + atan( (t-0.5)/(1+t/2) )
+ * [11/16.19/16] atan(x) = atan( 1 ) + atan( (t-1)/(1+t) )
+ * [19/16,39/16] atan(x) = atan(3/2) + atan( (t-1.5)/(1+1.5t) )
+ * [39/16,INF] atan(x) = atan(INF) + atan( -1/t )
+ *
+ * Constants:
+ * The hexadecimal values are the intended ones for the following
+ * constants. The decimal values may be used, provided that the
+ * compiler will convert from decimal to binary accurately enough
+ * to produce the hexadecimal values shown.
+ */
+
+#include "mathincl/fdlibm.h"
+
+static const double atanhi[] = {
+ 4.63647609000806093515e-01, /* atan(0.5)hi 0x3FDDAC67, 0x0561BB4F */
+ 7.85398163397448278999e-01, /* atan(1.0)hi 0x3FE921FB, 0x54442D18 */
+ 9.82793723247329054082e-01, /* atan(1.5)hi 0x3FEF730B, 0xD281F69B */
+ 1.57079632679489655800e+00, /* atan(inf)hi 0x3FF921FB, 0x54442D18 */
+};
+
+static const double atanlo[] = {
+ 2.26987774529616870924e-17, /* atan(0.5)lo 0x3C7A2B7F, 0x222F65E2 */
+ 3.06161699786838301793e-17, /* atan(1.0)lo 0x3C81A626, 0x33145C07 */
+ 1.39033110312309984516e-17, /* atan(1.5)lo 0x3C700788, 0x7AF0CBBD */
+ 6.12323399573676603587e-17, /* atan(inf)lo 0x3C91A626, 0x33145C07 */
+};
+
+static const double aT[] = {
+ 3.33333333333329318027e-01, /* 0x3FD55555, 0x5555550D */
+ -1.99999999998764832476e-01, /* 0xBFC99999, 0x9998EBC4 */
+ 1.42857142725034663711e-01, /* 0x3FC24924, 0x920083FF */
+ -1.11111104054623557880e-01, /* 0xBFBC71C6, 0xFE231671 */
+ 9.09088713343650656196e-02, /* 0x3FB745CD, 0xC54C206E */
+ -7.69187620504482999495e-02, /* 0xBFB3B0F2, 0xAF749A6D */
+ 6.66107313738753120669e-02, /* 0x3FB10D66, 0xA0D03D51 */
+ -5.83357013379057348645e-02, /* 0xBFADDE2D, 0x52DEFD9A */
+ 4.97687799461593236017e-02, /* 0x3FA97B4B, 0x24760DEB */
+ -3.65315727442169155270e-02, /* 0xBFA2B444, 0x2C6A6C2F */
+ 1.62858201153657823623e-02, /* 0x3F90AD3A, 0xE322DA11 */
+};
+
+ static const double
+one = 1.0,
+huge = 1.0e300;
+
+ double atan(double x)
+{
+ double w,s1,s2,z;
+ int ix,hx,id;
+
+ hx = CYG_LIBM_HI(x);
+ ix = hx&0x7fffffff;
+ if(ix>=0x44100000) { /* if |x| >= 2^66 */
+ if(ix>0x7ff00000||
+ (ix==0x7ff00000&&(CYG_LIBM_LO(x)!=0)))
+ return x+x; /* NaN */
+ if(hx>0) return atanhi[3]+atanlo[3];
+ else return -atanhi[3]-atanlo[3];
+ } if (ix < 0x3fdc0000) { /* |x| < 0.4375 */
+ if (ix < 0x3e200000) { /* |x| < 2^-29 */
+ if(huge+x>one) return x; /* raise inexact */
+ }
+ id = -1;
+ } else {
+ x = fabs(x);
+ if (ix < 0x3ff30000) { /* |x| < 1.1875 */
+ if (ix < 0x3fe60000) { /* 7/16 <=|x|<11/16 */
+ id = 0; x = (2.0*x-one)/(2.0+x);
+ } else { /* 11/16<=|x|< 19/16 */
+ id = 1; x = (x-one)/(x+one);
+ }
+ } else {
+ if (ix < 0x40038000) { /* |x| < 2.4375 */
+ id = 2; x = (x-1.5)/(one+1.5*x);
+ } else { /* 2.4375 <= |x| < 2^66 */
+ id = 3; x = -1.0/x;
+ }
+ }}
+ /* end of argument reduction */
+ z = x*x;
+ w = z*z;
+ /* break sum from i=0 to 10 aT[i]z**(i+1) into odd and even poly */
+ s1 = z*(aT[0]+w*(aT[2]+w*(aT[4]+w*(aT[6]+w*(aT[8]+w*aT[10])))));
+ s2 = w*(aT[1]+w*(aT[3]+w*(aT[5]+w*(aT[7]+w*aT[9]))));
+ if (id<0) return x - x*(s1+s2);
+ else {
+ z = atanhi[id] - ((x*(s1+s2) - atanlo[id]) - x);
+ return (hx<0)? -z:z;
+ }
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF s_atan.c
diff --git a/ecos/packages/language/c/libm/current/src/double/portable-api/s_cbrt.c b/ecos/packages/language/c/libm/current/src/double/portable-api/s_cbrt.c
new file mode 100644
index 0000000..1376ee1
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/double/portable-api/s_cbrt.c
@@ -0,0 +1,139 @@
+//===========================================================================
+//
+// s_cbrt.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/* @(#)s_cbrt.c 1.3 95/01/18 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunSoft, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ *
+ */
+
+#include "mathincl/fdlibm.h"
+
+/* cbrt(x)
+ * Return cube root of x
+ */
+static const unsigned
+ B1 = 715094163, /* B1 = (682-0.03306235651)*2**20 */
+ B2 = 696219795; /* B2 = (664-0.03306235651)*2**20 */
+
+static const double
+C = 5.42857142857142815906e-01, /* 19/35 = 0x3FE15F15, 0xF15F15F1 */
+D = -7.05306122448979611050e-01, /* -864/1225 = 0xBFE691DE, 0x2532C834 */
+E = 1.41428571428571436819e+00, /* 99/70 = 0x3FF6A0EA, 0x0EA0EA0F */
+F = 1.60714285714285720630e+00, /* 45/28 = 0x3FF9B6DB, 0x6DB6DB6E */
+G = 3.57142857142857150787e-01; /* 5/14 = 0x3FD6DB6D, 0xB6DB6DB7 */
+
+ double cbrt(double x)
+{
+ int hx;
+ double r,s,t=0.0,w;
+ unsigned sign;
+
+
+ hx = CYG_LIBM_HI(x); /* high word of x */
+ sign=hx&0x80000000; /* sign= sign(x) */
+ hx ^=sign;
+ if(hx>=0x7ff00000) return(x+x); /* cbrt(NaN,INF) is itself */
+ if((hx|CYG_LIBM_LO(x))==0)
+ return(x); /* cbrt(0) is itself */
+
+ CYG_LIBM_HI(x) = hx; /* x <- |x| */
+ /* rough cbrt to 5 bits */
+ if(hx<0x00100000) /* subnormal number */
+ {CYG_LIBM_HI(t)=0x43500000; /* set t= 2**54 */
+ t*=x; CYG_LIBM_HI(t)=CYG_LIBM_HI(t)/3+B2;
+ }
+ else
+ CYG_LIBM_HI(t)=hx/3+B1;
+
+
+ /* new cbrt to 23 bits, may be implemented in single precision */
+ r=t*t/x;
+ s=C+r*t;
+ t*=G+F/(s+E+D/s);
+
+ /* chopped to 20 bits and make it larger than cbrt(x) */
+ CYG_LIBM_LO(t)=0; CYG_LIBM_HI(t)+=0x00000001;
+
+
+ /* one step newton iteration to 53 bits with error less than 0.667 ulps */
+ s=t*t; /* t*t is exact */
+ r=x/s;
+ w=t+t;
+ r=(r-t)/(w+r); /* r-s is exact */
+ t=t+t*r;
+
+ /* retore the sign bit */
+ CYG_LIBM_HI(t) |= sign;
+ return(t);
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF s_cbrt.c
diff --git a/ecos/packages/language/c/libm/current/src/double/portable-api/s_ceil.c b/ecos/packages/language/c/libm/current/src/double/portable-api/s_ceil.c
new file mode 100644
index 0000000..8e1e897
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/double/portable-api/s_ceil.c
@@ -0,0 +1,134 @@
+//===========================================================================
+//
+// s_ceil.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/* @(#)s_ceil.c 1.3 95/01/18 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunSoft, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/*
+ * ceil(x)
+ * Return x rounded toward +inf to integral value
+ * Method:
+ * Bit twiddling.
+ * Exception:
+ * Inexact flag raised if x not equal to ceil(x).
+ */
+
+#include "mathincl/fdlibm.h"
+
+static const double huge = 1.0e300;
+
+ double ceil(double x)
+{
+ int i0,i1,j0;
+ unsigned i,j;
+ i0 = CYG_LIBM_HI(x);
+ i1 = CYG_LIBM_LO(x);
+ j0 = ((i0>>20)&0x7ff)-0x3ff;
+ if(j0<20) {
+ if(j0<0) { /* raise inexact if x != 0 */
+ if(huge+x>0.0) {/* return 0*sign(x) if |x|<1 */
+ if(i0<0) {i0=0x80000000;i1=0;}
+ else if((i0|i1)!=0) { i0=0x3ff00000;i1=0;}
+ }
+ } else {
+ i = (0x000fffff)>>j0;
+ if(((i0&i)|i1)==0) return x; /* x is integral */
+ if(huge+x>0.0) { /* raise inexact flag */
+ if(i0>0) i0 += (0x00100000)>>j0;
+ i0 &= (~i); i1=0;
+ }
+ }
+ } else if (j0>51) {
+ if(j0==0x400) return x+x; /* inf or NaN */
+ else return x; /* x is integral */
+ } else {
+ i = ((unsigned)(0xffffffff))>>(j0-20);
+ if((i1&i)==0) return x; /* x is integral */
+ if(huge+x>0.0) { /* raise inexact flag */
+ if(i0>0) {
+ if(j0==20) i0+=1;
+ else {
+ j = i1 + (1<<(52-j0));
+ if(j<(unsigned)i1) i0+=1; /* got a carry */
+ i1 = j;
+ }
+ }
+ i1 &= (~i);
+ }
+ }
+ CYG_LIBM_HI(x) = i0;
+ CYG_LIBM_LO(x) = i1;
+ return x;
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF s_ceil.c
diff --git a/ecos/packages/language/c/libm/current/src/double/portable-api/s_copysign.c b/ecos/packages/language/c/libm/current/src/double/portable-api/s_copysign.c
new file mode 100644
index 0000000..48747fc
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/double/portable-api/s_copysign.c
@@ -0,0 +1,91 @@
+//===========================================================================
+//
+// s_copysign.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/* @(#)s_copysign.c 1.3 95/01/18 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunSoft, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/*
+ * copysign(double x, double y)
+ * copysign(x,y) returns a value with the magnitude of x and
+ * with the sign bit of y.
+ */
+
+#include "mathincl/fdlibm.h"
+
+ double copysign(double x, double y)
+{
+ CYG_LIBM_HI(x) = (CYG_LIBM_HI(x)&0x7fffffff)|(CYG_LIBM_HI(y)&0x80000000);
+ return x;
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF s_copysign.c
diff --git a/ecos/packages/language/c/libm/current/src/double/portable-api/s_cos.c b/ecos/packages/language/c/libm/current/src/double/portable-api/s_cos.c
new file mode 100644
index 0000000..1399491
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/double/portable-api/s_cos.c
@@ -0,0 +1,138 @@
+//===========================================================================
+//
+// s_cos.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/* @(#)s_cos.c 1.3 95/01/18 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunSoft, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/* cos(x)
+ * Return cosine function of x.
+ *
+ * kernel function:
+ * __kernel_sin ... sine function on [-pi/4,pi/4]
+ * __kernel_cos ... cosine function on [-pi/4,pi/4]
+ * __ieee754_rem_pio2 ... argument reduction routine
+ *
+ * Method.
+ * Let S,C and T denote the sin, cos and tan respectively on
+ * [-PI/4, +PI/4]. Reduce the argument x to y1+y2 = x-k*pi/2
+ * in [-pi/4 , +pi/4], and let n = k mod 4.
+ * We have
+ *
+ * n sin(x) cos(x) tan(x)
+ * ----------------------------------------------------------
+ * 0 S C T
+ * 1 C -S -1/T
+ * 2 -S -C T
+ * 3 -C S -1/T
+ * ----------------------------------------------------------
+ *
+ * Special cases:
+ * Let trig be any of sin, cos, or tan.
+ * trig(+-INF) is NaN, with signals;
+ * trig(NaN) is that NaN;
+ *
+ * Accuracy:
+ * TRIG(x) returns trig(x) nearly rounded
+ */
+
+#include "mathincl/fdlibm.h"
+
+ double cos(double x)
+{
+ double y[2],z=0.0;
+ int n, ix;
+
+ /* High word of x. */
+ ix = CYG_LIBM_HI(x);
+
+ /* |x| ~< pi/4 */
+ ix &= 0x7fffffff;
+ if(ix <= 0x3fe921fb) return __kernel_cos(x,z);
+
+ /* cos(Inf or NaN) is NaN */
+ else if (ix>=0x7ff00000) return x-x;
+
+ /* argument reduction needed */
+ else {
+ n = __ieee754_rem_pio2(x,y);
+ switch(n&3) {
+ case 0: return __kernel_cos(y[0],y[1]);
+ case 1: return -__kernel_sin(y[0],y[1],1);
+ case 2: return -__kernel_cos(y[0],y[1]);
+ default:
+ return __kernel_sin(y[0],y[1],1);
+ }
+ }
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF s_cos.c
diff --git a/ecos/packages/language/c/libm/current/src/double/portable-api/s_erf.c b/ecos/packages/language/c/libm/current/src/double/portable-api/s_erf.c
new file mode 100644
index 0000000..d6a5385
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/double/portable-api/s_erf.c
@@ -0,0 +1,361 @@
+//===========================================================================
+//
+// s_erf.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/* @(#)s_erf.c 1.3 95/01/18 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunSoft, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/* double erf(double x)
+ * double erfc(double x)
+ * x
+ * 2 |\
+ * erf(x) = --------- | exp(-t*t)dt
+ * sqrt(pi) \|
+ * 0
+ *
+ * erfc(x) = 1-erf(x)
+ * Note that
+ * erf(-x) = -erf(x)
+ * erfc(-x) = 2 - erfc(x)
+ *
+ * Method:
+ * 1. For |x| in [0, 0.84375]
+ * erf(x) = x + x*R(x^2)
+ * erfc(x) = 1 - erf(x) if x in [-.84375,0.25]
+ * = 0.5 + ((0.5-x)-x*R) if x in [0.25,0.84375]
+ * where R = P/Q where P is an odd poly of degree 8 and
+ * Q is an odd poly of degree 10.
+ * -57.90
+ * | R - (erf(x)-x)/x | <= 2
+ *
+ *
+ * Remark. The formula is derived by noting
+ * erf(x) = (2/sqrt(pi))*(x - x^3/3 + x^5/10 - x^7/42 + ....)
+ * and that
+ * 2/sqrt(pi) = 1.128379167095512573896158903121545171688
+ * is close to one. The interval is chosen because the fix
+ * point of erf(x) is near 0.6174 (i.e., erf(x)=x when x is
+ * near 0.6174), and by some experiment, 0.84375 is chosen to
+ * guarantee the error is less than one ulp for erf.
+ *
+ * 2. For |x| in [0.84375,1.25], let s = |x| - 1, and
+ * c = 0.84506291151 rounded to single (24 bits)
+ * erf(x) = sign(x) * (c + P1(s)/Q1(s))
+ * erfc(x) = (1-c) - P1(s)/Q1(s) if x > 0
+ * 1+(c+P1(s)/Q1(s)) if x < 0
+ * |P1/Q1 - (erf(|x|)-c)| <= 2**-59.06
+ * Remark: here we use the taylor series expansion at x=1.
+ * erf(1+s) = erf(1) + s*Poly(s)
+ * = 0.845.. + P1(s)/Q1(s)
+ * That is, we use rational approximation to approximate
+ * erf(1+s) - (c = (single)0.84506291151)
+ * Note that |P1/Q1|< 0.078 for x in [0.84375,1.25]
+ * where
+ * P1(s) = degree 6 poly in s
+ * Q1(s) = degree 6 poly in s
+ *
+ * 3. For x in [1.25,1/0.35(~2.857143)],
+ * erfc(x) = (1/x)*exp(-x*x-0.5625+R1/S1)
+ * erf(x) = 1 - erfc(x)
+ * where
+ * R1(z) = degree 7 poly in z, (z=1/x^2)
+ * S1(z) = degree 8 poly in z
+ *
+ * 4. For x in [1/0.35,28]
+ * erfc(x) = (1/x)*exp(-x*x-0.5625+R2/S2) if x > 0
+ * = 2.0 - (1/x)*exp(-x*x-0.5625+R2/S2) if -6<x<0
+ * = 2.0 - tiny (if x <= -6)
+ * erf(x) = sign(x)*(1.0 - erfc(x)) if x < 6, else
+ * erf(x) = sign(x)*(1.0 - tiny)
+ * where
+ * R2(z) = degree 6 poly in z, (z=1/x^2)
+ * S2(z) = degree 7 poly in z
+ *
+ * Note1:
+ * To compute exp(-x*x-0.5625+R/S), let s be a single
+ * precision number and s := x; then
+ * -x*x = -s*s + (s-x)*(s+x)
+ * exp(-x*x-0.5626+R/S) =
+ * exp(-s*s-0.5625)*exp((s-x)*(s+x)+R/S);
+ * Note2:
+ * Here 4 and 5 make use of the asymptotic series
+ * exp(-x*x)
+ * erfc(x) ~ ---------- * ( 1 + Poly(1/x^2) )
+ * x*sqrt(pi)
+ * We use rational approximation to approximate
+ * g(s)=f(1/x^2) = log(erfc(x)*x) - x*x + 0.5625
+ * Here is the error bound for R1/S1 and R2/S2
+ * |R1/S1 - f(x)| < 2**(-62.57)
+ * |R2/S2 - f(x)| < 2**(-61.52)
+ *
+ * 5. For inf > x >= 28
+ * erf(x) = sign(x) *(1 - tiny) (raise inexact)
+ * erfc(x) = tiny*tiny (raise underflow) if x > 0
+ * = 2 - tiny if x<0
+ *
+ * 7. Special case:
+ * erf(0) = 0, erf(inf) = 1, erf(-inf) = -1,
+ * erfc(0) = 1, erfc(inf) = 0, erfc(-inf) = 2,
+ * erfc/erf(NaN) is NaN
+ */
+
+
+#include "mathincl/fdlibm.h"
+
+static const double
+tiny = 1e-300,
+half= 5.00000000000000000000e-01, /* 0x3FE00000, 0x00000000 */
+one = 1.00000000000000000000e+00, /* 0x3FF00000, 0x00000000 */
+two = 2.00000000000000000000e+00, /* 0x40000000, 0x00000000 */
+ /* c = (float)0.84506291151 */
+erx = 8.45062911510467529297e-01, /* 0x3FEB0AC1, 0x60000000 */
+/*
+ * Coefficients for approximation to erf on [0,0.84375]
+ */
+efx = 1.28379167095512586316e-01, /* 0x3FC06EBA, 0x8214DB69 */
+efx8= 1.02703333676410069053e+00, /* 0x3FF06EBA, 0x8214DB69 */
+pp0 = 1.28379167095512558561e-01, /* 0x3FC06EBA, 0x8214DB68 */
+pp1 = -3.25042107247001499370e-01, /* 0xBFD4CD7D, 0x691CB913 */
+pp2 = -2.84817495755985104766e-02, /* 0xBF9D2A51, 0xDBD7194F */
+pp3 = -5.77027029648944159157e-03, /* 0xBF77A291, 0x236668E4 */
+pp4 = -2.37630166566501626084e-05, /* 0xBEF8EAD6, 0x120016AC */
+qq1 = 3.97917223959155352819e-01, /* 0x3FD97779, 0xCDDADC09 */
+qq2 = 6.50222499887672944485e-02, /* 0x3FB0A54C, 0x5536CEBA */
+qq3 = 5.08130628187576562776e-03, /* 0x3F74D022, 0xC4D36B0F */
+qq4 = 1.32494738004321644526e-04, /* 0x3F215DC9, 0x221C1A10 */
+qq5 = -3.96022827877536812320e-06, /* 0xBED09C43, 0x42A26120 */
+/*
+ * Coefficients for approximation to erf in [0.84375,1.25]
+ */
+pa0 = -2.36211856075265944077e-03, /* 0xBF6359B8, 0xBEF77538 */
+pa1 = 4.14856118683748331666e-01, /* 0x3FDA8D00, 0xAD92B34D */
+pa2 = -3.72207876035701323847e-01, /* 0xBFD7D240, 0xFBB8C3F1 */
+pa3 = 3.18346619901161753674e-01, /* 0x3FD45FCA, 0x805120E4 */
+pa4 = -1.10894694282396677476e-01, /* 0xBFBC6398, 0x3D3E28EC */
+pa5 = 3.54783043256182359371e-02, /* 0x3FA22A36, 0x599795EB */
+pa6 = -2.16637559486879084300e-03, /* 0xBF61BF38, 0x0A96073F */
+qa1 = 1.06420880400844228286e-01, /* 0x3FBB3E66, 0x18EEE323 */
+qa2 = 5.40397917702171048937e-01, /* 0x3FE14AF0, 0x92EB6F33 */
+qa3 = 7.18286544141962662868e-02, /* 0x3FB2635C, 0xD99FE9A7 */
+qa4 = 1.26171219808761642112e-01, /* 0x3FC02660, 0xE763351F */
+qa5 = 1.36370839120290507362e-02, /* 0x3F8BEDC2, 0x6B51DD1C */
+qa6 = 1.19844998467991074170e-02, /* 0x3F888B54, 0x5735151D */
+/*
+ * Coefficients for approximation to erfc in [1.25,1/0.35]
+ */
+ra0 = -9.86494403484714822705e-03, /* 0xBF843412, 0x600D6435 */
+ra1 = -6.93858572707181764372e-01, /* 0xBFE63416, 0xE4BA7360 */
+ra2 = -1.05586262253232909814e+01, /* 0xC0251E04, 0x41B0E726 */
+ra3 = -6.23753324503260060396e+01, /* 0xC04F300A, 0xE4CBA38D */
+ra4 = -1.62396669462573470355e+02, /* 0xC0644CB1, 0x84282266 */
+ra5 = -1.84605092906711035994e+02, /* 0xC067135C, 0xEBCCABB2 */
+ra6 = -8.12874355063065934246e+01, /* 0xC0545265, 0x57E4D2F2 */
+ra7 = -9.81432934416914548592e+00, /* 0xC023A0EF, 0xC69AC25C */
+sa1 = 1.96512716674392571292e+01, /* 0x4033A6B9, 0xBD707687 */
+sa2 = 1.37657754143519042600e+02, /* 0x4061350C, 0x526AE721 */
+sa3 = 4.34565877475229228821e+02, /* 0x407B290D, 0xD58A1A71 */
+sa4 = 6.45387271733267880336e+02, /* 0x40842B19, 0x21EC2868 */
+sa5 = 4.29008140027567833386e+02, /* 0x407AD021, 0x57700314 */
+sa6 = 1.08635005541779435134e+02, /* 0x405B28A3, 0xEE48AE2C */
+sa7 = 6.57024977031928170135e+00, /* 0x401A47EF, 0x8E484A93 */
+sa8 = -6.04244152148580987438e-02, /* 0xBFAEEFF2, 0xEE749A62 */
+/*
+ * Coefficients for approximation to erfc in [1/.35,28]
+ */
+rb0 = -9.86494292470009928597e-03, /* 0xBF843412, 0x39E86F4A */
+rb1 = -7.99283237680523006574e-01, /* 0xBFE993BA, 0x70C285DE */
+rb2 = -1.77579549177547519889e+01, /* 0xC031C209, 0x555F995A */
+rb3 = -1.60636384855821916062e+02, /* 0xC064145D, 0x43C5ED98 */
+rb4 = -6.37566443368389627722e+02, /* 0xC083EC88, 0x1375F228 */
+rb5 = -1.02509513161107724954e+03, /* 0xC0900461, 0x6A2E5992 */
+rb6 = -4.83519191608651397019e+02, /* 0xC07E384E, 0x9BDC383F */
+sb1 = 3.03380607434824582924e+01, /* 0x403E568B, 0x261D5190 */
+sb2 = 3.25792512996573918826e+02, /* 0x40745CAE, 0x221B9F0A */
+sb3 = 1.53672958608443695994e+03, /* 0x409802EB, 0x189D5118 */
+sb4 = 3.19985821950859553908e+03, /* 0x40A8FFB7, 0x688C246A */
+sb5 = 2.55305040643316442583e+03, /* 0x40A3F219, 0xCEDF3BE6 */
+sb6 = 4.74528541206955367215e+02, /* 0x407DA874, 0xE79FE763 */
+sb7 = -2.24409524465858183362e+01; /* 0xC03670E2, 0x42712D62 */
+
+ double erf(double x)
+{
+ int hx,ix,i;
+ double R,S,P,Q,s,y,z,r;
+ hx = CYG_LIBM_HI(x);
+ ix = hx&0x7fffffff;
+ if(ix>=0x7ff00000) { /* erf(nan)=nan */
+ i = ((unsigned)hx>>31)<<1;
+ return (double)(1-i)+one/x; /* erf(+-inf)=+-1 */
+ }
+
+ if(ix < 0x3feb0000) { /* |x|<0.84375 */
+ if(ix < 0x3e300000) { /* |x|<2**-28 */
+ if (ix < 0x00800000)
+ return 0.125*(8.0*x+efx8*x); /*avoid underflow */
+ return x + efx*x;
+ }
+ z = x*x;
+ r = pp0+z*(pp1+z*(pp2+z*(pp3+z*pp4)));
+ s = one+z*(qq1+z*(qq2+z*(qq3+z*(qq4+z*qq5))));
+ y = r/s;
+ return x + x*y;
+ }
+ if(ix < 0x3ff40000) { /* 0.84375 <= |x| < 1.25 */
+ s = fabs(x)-one;
+ P = pa0+s*(pa1+s*(pa2+s*(pa3+s*(pa4+s*(pa5+s*pa6)))));
+ Q = one+s*(qa1+s*(qa2+s*(qa3+s*(qa4+s*(qa5+s*qa6)))));
+ if(hx>=0) return erx + P/Q; else return -erx - P/Q;
+ }
+ if (ix >= 0x40180000) { /* inf>|x|>=6 */
+ if(hx>=0) return one-tiny; else return tiny-one;
+ }
+ x = fabs(x);
+ s = one/(x*x);
+ if(ix< 0x4006DB6E) { /* |x| < 1/0.35 */
+ R=ra0+s*(ra1+s*(ra2+s*(ra3+s*(ra4+s*(
+ ra5+s*(ra6+s*ra7))))));
+ S=one+s*(sa1+s*(sa2+s*(sa3+s*(sa4+s*(
+ sa5+s*(sa6+s*(sa7+s*sa8)))))));
+ } else { /* |x| >= 1/0.35 */
+ R=rb0+s*(rb1+s*(rb2+s*(rb3+s*(rb4+s*(
+ rb5+s*rb6)))));
+ S=one+s*(sb1+s*(sb2+s*(sb3+s*(sb4+s*(
+ sb5+s*(sb6+s*sb7))))));
+ }
+ z = x;
+ CYG_LIBM_LO(z) = 0;
+ r = __ieee754_exp(-z*z-0.5625)*__ieee754_exp((z-x)*(z+x)+R/S);
+ if(hx>=0) return one-r/x; else return r/x-one;
+}
+
+ double erfc(double x)
+{
+ int hx,ix;
+ double R,S,P,Q,s,y,z,r;
+ hx = CYG_LIBM_HI(x);
+ ix = hx&0x7fffffff;
+ if(ix>=0x7ff00000) { /* erfc(nan)=nan */
+ /* erfc(+-inf)=0,2 */
+ return (double)(((unsigned)hx>>31)<<1)+one/x;
+ }
+
+ if(ix < 0x3feb0000) { /* |x|<0.84375 */
+ if(ix < 0x3c700000) /* |x|<2**-56 */
+ return one-x;
+ z = x*x;
+ r = pp0+z*(pp1+z*(pp2+z*(pp3+z*pp4)));
+ s = one+z*(qq1+z*(qq2+z*(qq3+z*(qq4+z*qq5))));
+ y = r/s;
+ if(hx < 0x3fd00000) { /* x<1/4 */
+ return one-(x+x*y);
+ } else {
+ r = x*y;
+ r += (x-half);
+ return half - r ;
+ }
+ }
+ if(ix < 0x3ff40000) { /* 0.84375 <= |x| < 1.25 */
+ s = fabs(x)-one;
+ P = pa0+s*(pa1+s*(pa2+s*(pa3+s*(pa4+s*(pa5+s*pa6)))));
+ Q = one+s*(qa1+s*(qa2+s*(qa3+s*(qa4+s*(qa5+s*qa6)))));
+ if(hx>=0) {
+ z = one-erx; return z - P/Q;
+ } else {
+ z = erx+P/Q; return one+z;
+ }
+ }
+ if (ix < 0x403c0000) { /* |x|<28 */
+ x = fabs(x);
+ s = one/(x*x);
+ if(ix< 0x4006DB6D) { /* |x| < 1/.35 ~ 2.857143*/
+ R=ra0+s*(ra1+s*(ra2+s*(ra3+s*(ra4+s*(
+ ra5+s*(ra6+s*ra7))))));
+ S=one+s*(sa1+s*(sa2+s*(sa3+s*(sa4+s*(
+ sa5+s*(sa6+s*(sa7+s*sa8)))))));
+ } else { /* |x| >= 1/.35 ~ 2.857143 */
+ if(hx<0&&ix>=0x40180000) return two-tiny;/* x < -6 */
+ R=rb0+s*(rb1+s*(rb2+s*(rb3+s*(rb4+s*(
+ rb5+s*rb6)))));
+ S=one+s*(sb1+s*(sb2+s*(sb3+s*(sb4+s*(
+ sb5+s*(sb6+s*sb7))))));
+ }
+ z = x;
+ CYG_LIBM_LO(z) = 0;
+ r = __ieee754_exp(-z*z-0.5625)*
+ __ieee754_exp((z-x)*(z+x)+R/S);
+ if(hx>0) return r/x; else return two-r/x;
+ } else {
+ if(hx>0) return tiny*tiny; else return two-tiny;
+ }
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF s_erf.c
diff --git a/ecos/packages/language/c/libm/current/src/double/portable-api/s_expm1.c b/ecos/packages/language/c/libm/current/src/double/portable-api/s_expm1.c
new file mode 100644
index 0000000..8dd6e4b
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/double/portable-api/s_expm1.c
@@ -0,0 +1,330 @@
+//===========================================================================
+//
+// s_expm1.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors:
+// Date: 2001-07-20
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+/* @(#)s_expm1.c 5.1 93/09/24 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/*
+FUNCTION
+ <<expm1>>, <<expm1f>>---exponential minus 1
+INDEX
+ expm1
+INDEX
+ expm1f
+
+ANSI_SYNOPSIS
+ #include <math.h>
+ double expm1(double <[x]>);
+ float expm1f(float <[x]>);
+
+TRAD_SYNOPSIS
+ #include <math.h>
+ double expm1(<[x]>);
+ double <[x]>;
+
+ float expm1f(<[x]>);
+ float <[x]>;
+
+DESCRIPTION
+ <<expm1>> and <<expm1f>> calculate the exponential of <[x]>
+ and subtract 1, that is,
+ @ifinfo
+ e raised to the power <[x]> minus 1 (where e
+ @end ifinfo
+ @tex
+ $e^x - 1$ (where $e$
+ @end tex
+ is the base of the natural system of logarithms, approximately
+ 2.71828). The result is accurate even for small values of
+ <[x]>, where using <<exp(<[x]>)-1>> would lose many
+ significant digits.
+
+RETURNS
+ e raised to the power <[x]>, minus 1.
+
+PORTABILITY
+ Neither <<expm1>> nor <<expm1f>> is required by ANSI C or by
+ the System V Interface Definition (Issue 2).
+*/
+
+/* expm1(x)
+ * Returns exp(x)-1, the exponential of x minus 1.
+ *
+ * Method
+ * 1. Argument reduction:
+ * Given x, find r and integer k such that
+ *
+ * x = k*ln2 + r, |r| <= 0.5*ln2 ~ 0.34658
+ *
+ * Here a correction term c will be computed to compensate
+ * the error in r when rounded to a floating-point number.
+ *
+ * 2. Approximating expm1(r) by a special rational function on
+ * the interval [0,0.34658]:
+ * Since
+ * r*(exp(r)+1)/(exp(r)-1) = 2+ r^2/6 - r^4/360 + ...
+ * we define R1(r*r) by
+ * r*(exp(r)+1)/(exp(r)-1) = 2+ r^2/6 * R1(r*r)
+ * That is,
+ * R1(r**2) = 6/r *((exp(r)+1)/(exp(r)-1) - 2/r)
+ * = 6/r * ( 1 + 2.0*(1/(exp(r)-1) - 1/r))
+ * = 1 - r^2/60 + r^4/2520 - r^6/100800 + ...
+ * We use a special Reme algorithm on [0,0.347] to generate
+ * a polynomial of degree 5 in r*r to approximate R1. The
+ * maximum error of this polynomial approximation is bounded
+ * by 2**-61. In other words,
+ * R1(z) ~ 1.0 + Q1*z + Q2*z**2 + Q3*z**3 + Q4*z**4 + Q5*z**5
+ * where Q1 = -1.6666666666666567384E-2,
+ * Q2 = 3.9682539681370365873E-4,
+ * Q3 = -9.9206344733435987357E-6,
+ * Q4 = 2.5051361420808517002E-7,
+ * Q5 = -6.2843505682382617102E-9;
+ * (where z=r*r, and the values of Q1 to Q5 are listed below)
+ * with error bounded by
+ * | 5 | -61
+ * | 1.0+Q1*z+...+Q5*z - R1(z) | <= 2
+ * | |
+ *
+ * expm1(r) = exp(r)-1 is then computed by the following
+ * specific way which minimize the accumulation rounding error:
+ * 2 3
+ * r r [ 3 - (R1 + R1*r/2) ]
+ * expm1(r) = r + --- + --- * [--------------------]
+ * 2 2 [ 6 - r*(3 - R1*r/2) ]
+ *
+ * To compensate the error in the argument reduction, we use
+ * expm1(r+c) = expm1(r) + c + expm1(r)*c
+ * ~ expm1(r) + c + r*c
+ * Thus c+r*c will be added in as the correction terms for
+ * expm1(r+c). Now rearrange the term to avoid optimization
+ * screw up:
+ * ( 2 2 )
+ * ({ ( r [ R1 - (3 - R1*r/2) ] ) } r )
+ * expm1(r+c)~r - ({r*(--- * [--------------------]-c)-c} - --- )
+ * ({ ( 2 [ 6 - r*(3 - R1*r/2) ] ) } 2 )
+ * ( )
+ *
+ * = r - E
+ * 3. Scale back to obtain expm1(x):
+ * From step 1, we have
+ * expm1(x) = either 2^k*[expm1(r)+1] - 1
+ * = or 2^k*[expm1(r) + (1-2^-k)]
+ * 4. Implementation notes:
+ * (A). To save one multiplication, we scale the coefficient Qi
+ * to Qi*2^i, and replace z by (x^2)/2.
+ * (B). To achieve maximum accuracy, we compute expm1(x) by
+ * (i) if x < -56*ln2, return -1.0, (raise inexact if x!=inf)
+ * (ii) if k=0, return r-E
+ * (iii) if k=-1, return 0.5*(r-E)-0.5
+ * (iv) if k=1 if r < -0.25, return 2*((r+0.5)- E)
+ * else return 1.0+2.0*(r-E);
+ * (v) if (k<-2||k>56) return 2^k(1-(E-r)) - 1 (or exp(x)-1)
+ * (vi) if k <= 20, return 2^k((1-2^-k)-(E-r)), else
+ * (vii) return 2^k(1-((E+2^-k)-r))
+ *
+ * Special cases:
+ * expm1(INF) is INF, expm1(NaN) is NaN;
+ * expm1(-INF) is -1, and
+ * for finite argument, only expm1(0)=0 is exact.
+ *
+ * Accuracy:
+ * according to an error analysis, the error is always less than
+ * 1 ulp (unit in the last place).
+ *
+ * Misc. info.
+ * For IEEE double
+ * if x > 7.09782712893383973096e+02 then expm1(x) overflow
+ *
+ * Constants:
+ * The hexadecimal values are the intended ones for the following
+ * constants. The decimal values may be used, provided that the
+ * compiler will convert from decimal to binary accurately enough
+ * to produce the hexadecimal values shown.
+ */
+
+#include "mathincl/fdlibm.h"
+
+#ifndef _DOUBLE_IS_32BITS
+
+#ifdef __STDC__
+static const double
+#else
+static double
+#endif
+one = 1.0,
+huge = 1.0e+300,
+tiny = 1.0e-300,
+o_threshold = 7.09782712893383973096e+02,/* 0x40862E42, 0xFEFA39EF */
+ln2_hi = 6.93147180369123816490e-01,/* 0x3fe62e42, 0xfee00000 */
+ln2_lo = 1.90821492927058770002e-10,/* 0x3dea39ef, 0x35793c76 */
+invln2 = 1.44269504088896338700e+00,/* 0x3ff71547, 0x652b82fe */
+ /* scaled coefficients related to expm1 */
+Q1 = -3.33333333333331316428e-02, /* BFA11111 111110F4 */
+Q2 = 1.58730158725481460165e-03, /* 3F5A01A0 19FE5585 */
+Q3 = -7.93650757867487942473e-05, /* BF14CE19 9EAADBB7 */
+Q4 = 4.00821782732936239552e-06, /* 3ED0CFCA 86E65239 */
+Q5 = -2.01099218183624371326e-07; /* BE8AFDB7 6E09C32D */
+
+#ifdef __STDC__
+ double expm1(double x)
+#else
+ double expm1(x)
+ double x;
+#endif
+{
+ double y,hi,lo,c,t,e,hxs,hfx,r1;
+ __int32_t k,xsb;
+ __uint32_t hx;
+
+ GET_HIGH_WORD(hx,x);
+ xsb = hx&0x80000000; /* sign bit of x */
+ if(xsb==0) y=x; else y= -x; /* y = |x| */
+ hx &= 0x7fffffff; /* high word of |x| */
+
+ /* filter out huge and non-finite argument */
+ if(hx >= 0x4043687A) { /* if |x|>=56*ln2 */
+ if(hx >= 0x40862E42) { /* if |x|>=709.78... */
+ if(hx>=0x7ff00000) {
+ __uint32_t low;
+ GET_LOW_WORD(low,x);
+ if(((hx&0xfffff)|low)!=0)
+ return x+x; /* NaN */
+ else return (xsb==0)? x:-1.0;/* exp(+-inf)={inf,-1} */
+ }
+ if(x > o_threshold) return huge*huge; /* overflow */
+ }
+ if(xsb!=0) { /* x < -56*ln2, return -1.0 with inexact */
+ if(x+tiny<0.0) /* raise inexact */
+ return tiny-one; /* return -1 */
+ }
+ }
+
+ /* argument reduction */
+ if(hx > 0x3fd62e42) { /* if |x| > 0.5 ln2 */
+ if(hx < 0x3FF0A2B2) { /* and |x| < 1.5 ln2 */
+ if(xsb==0)
+ {hi = x - ln2_hi; lo = ln2_lo; k = 1;}
+ else
+ {hi = x + ln2_hi; lo = -ln2_lo; k = -1;}
+ } else {
+ k = invln2*x+((xsb==0)?0.5:-0.5);
+ t = k;
+ hi = x - t*ln2_hi; /* t*ln2_hi is exact here */
+ lo = t*ln2_lo;
+ }
+ x = hi - lo;
+ c = (hi-x)-lo;
+ }
+ else if(hx < 0x3c900000) { /* when |x|<2**-54, return x */
+ t = huge+x; /* return x with inexact flags when x!=0 */
+ return x - (t-(huge+x));
+ }
+ else k = 0, c = 0;
+
+ /* x is now in primary range */
+ hfx = 0.5*x;
+ hxs = x*hfx;
+ r1 = one+hxs*(Q1+hxs*(Q2+hxs*(Q3+hxs*(Q4+hxs*Q5))));
+ t = 3.0-r1*hfx;
+ e = hxs*((r1-t)/(6.0 - x*t));
+ if(k==0) return x - (x*e-hxs); /* c is 0 */
+ else {
+ e = (x*(e-c)-c);
+ e -= hxs;
+ if(k== -1) return 0.5*(x-e)-0.5;
+ if(k==1) {
+ if(x < -0.25) return -2.0*(e-(x+0.5));
+ else return one+2.0*(x-e);
+ }
+ if (k <= -2 || k>56) { /* suffice to return exp(x)-1 */
+ __uint32_t high;
+ y = one-(e-x);
+ GET_HIGH_WORD(high,y);
+ SET_HIGH_WORD(y,high+(k<<20)); /* add k to y's exponent */
+ return y-one;
+ }
+ t = one;
+ if(k<20) {
+ __uint32_t high;
+ SET_HIGH_WORD(t,0x3ff00000 - (0x200000>>k)); /* t=1-2^-k */
+ y = t-(e-x);
+ GET_HIGH_WORD(high,y);
+ SET_HIGH_WORD(y,high+(k<<20)); /* add k to y's exponent */
+ } else {
+ __uint32_t high;
+ SET_HIGH_WORD(t,((0x3ff-k)<<20)); /* 2^-k */
+ y = x-(e+t);
+ y += one;
+ GET_HIGH_WORD(high,y);
+ SET_HIGH_WORD(y,high+(k<<20)); /* add k to y's exponent */
+ }
+ }
+ return y;
+}
+
+#endif /* _DOUBLE_IS_32BITS */
+
+// EOF s_expm1.c
diff --git a/ecos/packages/language/c/libm/current/src/double/portable-api/s_fabs.c b/ecos/packages/language/c/libm/current/src/double/portable-api/s_fabs.c
new file mode 100644
index 0000000..07d5829
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/double/portable-api/s_fabs.c
@@ -0,0 +1,89 @@
+//===========================================================================
+//
+// s_fabs.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/* @(#)s_fabs.c 1.3 95/01/18 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunSoft, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/*
+ * fabs(x) returns the absolute value of x.
+ */
+
+#include "mathincl/fdlibm.h"
+
+ double fabs(double x)
+{
+ CYG_LIBM_HI(x) &= 0x7fffffff;
+ return x;
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF s_fabs.c
diff --git a/ecos/packages/language/c/libm/current/src/double/portable-api/s_finite.c b/ecos/packages/language/c/libm/current/src/double/portable-api/s_finite.c
new file mode 100644
index 0000000..81082ee
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/double/portable-api/s_finite.c
@@ -0,0 +1,91 @@
+//===========================================================================
+//
+// s_finite.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/* @(#)s_finite.c 1.3 95/01/18 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunSoft, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/*
+ * finite(x) returns 1 is x is finite, else 0;
+ * no branching!
+ */
+
+#include "mathincl/fdlibm.h"
+
+ int finite(double x)
+{
+ int hx;
+ hx = CYG_LIBM_HI(x);
+ return (unsigned)((hx&0x7fffffff)-0x7ff00000)>>31;
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF s_finite.c
diff --git a/ecos/packages/language/c/libm/current/src/double/portable-api/s_floor.c b/ecos/packages/language/c/libm/current/src/double/portable-api/s_floor.c
new file mode 100644
index 0000000..4d1902c
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/double/portable-api/s_floor.c
@@ -0,0 +1,135 @@
+//===========================================================================
+//
+// s_floor.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/* @(#)s_floor.c 1.3 95/01/18 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunSoft, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/*
+ * floor(x)
+ * Return x rounded toward -inf to integral value
+ * Method:
+ * Bit twiddling.
+ * Exception:
+ * Inexact flag raised if x not equal to floor(x).
+ */
+
+#include "mathincl/fdlibm.h"
+
+static const double huge = 1.0e300;
+
+ double floor(double x)
+{
+ int i0,i1,j0;
+ unsigned i,j;
+ i0 = CYG_LIBM_HI(x);
+ i1 = CYG_LIBM_LO(x);
+ j0 = ((i0>>20)&0x7ff)-0x3ff;
+ if(j0<20) {
+ if(j0<0) { /* raise inexact if x != 0 */
+ if(huge+x>0.0) {/* return 0*sign(x) if |x|<1 */
+ if(i0>=0) {i0=i1=0;}
+ else if(((i0&0x7fffffff)|i1)!=0)
+ { i0=0xbff00000;i1=0;}
+ }
+ } else {
+ i = (0x000fffff)>>j0;
+ if(((i0&i)|i1)==0) return x; /* x is integral */
+ if(huge+x>0.0) { /* raise inexact flag */
+ if(i0<0) i0 += (0x00100000)>>j0;
+ i0 &= (~i); i1=0;
+ }
+ }
+ } else if (j0>51) {
+ if(j0==0x400) return x+x; /* inf or NaN */
+ else return x; /* x is integral */
+ } else {
+ i = ((unsigned)(0xffffffff))>>(j0-20);
+ if((i1&i)==0) return x; /* x is integral */
+ if(huge+x>0.0) { /* raise inexact flag */
+ if(i0<0) {
+ if(j0==20) i0+=1;
+ else {
+ j = i1+(1<<(52-j0));
+ if(j<(unsigned)i1) i0 +=1 ; /* got a carry */
+ i1=j;
+ }
+ }
+ i1 &= (~i);
+ }
+ }
+ CYG_LIBM_HI(x) = i0;
+ CYG_LIBM_LO(x) = i1;
+ return x;
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF s_floor.c
diff --git a/ecos/packages/language/c/libm/current/src/double/portable-api/s_frexp.c b/ecos/packages/language/c/libm/current/src/double/portable-api/s_frexp.c
new file mode 100644
index 0000000..d72a3e9
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/double/portable-api/s_frexp.c
@@ -0,0 +1,112 @@
+//===========================================================================
+//
+// s_frexp.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/* @(#)s_frexp.c 1.4 95/01/18 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunSoft, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/*
+ * for non-zero x
+ * x = frexp(arg,&exp);
+ * return a double fp quantity x such that 0.5 <= |x| <1.0
+ * and the corresponding binary exponent "exp". That is
+ * arg = x*2^exp.
+ * If arg is inf, 0.0, or NaN, then frexp(arg,&exp) returns arg
+ * with *exp=0.
+ */
+
+#include "mathincl/fdlibm.h"
+
+static const double
+two54 = 1.80143985094819840000e+16; /* 0x43500000, 0x00000000 */
+
+ double frexp(double x, int *eptr)
+{
+ int hx, ix, lx;
+ hx = CYG_LIBM_HI(x);
+ ix = 0x7fffffff&hx;
+ lx = CYG_LIBM_LO(x);
+ *eptr = 0;
+ if(ix>=0x7ff00000||((ix|lx)==0)) return x; /* 0,inf,nan */
+ if (ix<0x00100000) { /* subnormal */
+ x *= two54;
+ hx = CYG_LIBM_HI(x);
+ ix = hx&0x7fffffff;
+ *eptr = -54;
+ }
+ *eptr += (ix>>20)-1022;
+ hx = (hx&0x800fffff)|0x3fe00000;
+ CYG_LIBM_HI(x) = hx;
+ return x;
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF s_frexp.c
diff --git a/ecos/packages/language/c/libm/current/src/double/portable-api/s_ilogb.c b/ecos/packages/language/c/libm/current/src/double/portable-api/s_ilogb.c
new file mode 100644
index 0000000..82221af
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/double/portable-api/s_ilogb.c
@@ -0,0 +1,106 @@
+//===========================================================================
+//
+// s_ilogb.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/* @(#)s_ilogb.c 1.3 95/01/18 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunSoft, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/* ilogb(double x)
+ * return the binary exponent of non-zero x
+ * ilogb(0) = 0x80000001
+ * ilogb(inf/NaN) = 0x7fffffff (no signal is raised)
+ */
+
+#include "mathincl/fdlibm.h"
+
+ int ilogb(double x)
+{
+ int hx,lx,ix;
+
+ hx = (CYG_LIBM_HI(x))&0x7fffffff; /* high word of x */
+ if(hx<0x00100000) {
+ lx = CYG_LIBM_LO(x);
+ if((hx|lx)==0)
+ return 0x80000001; /* ilogb(0) = 0x80000001 */
+ else /* subnormal x */
+ if(hx==0) {
+ for (ix = -1043; lx>0; lx<<=1) ix -=1;
+ } else {
+ for (ix = -1022,hx<<=11; hx>0; hx<<=1) ix -=1;
+ }
+ return ix;
+ }
+ else if (hx<0x7ff00000) return (hx>>20)-1023;
+ else return 0x7fffffff;
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF s_ilogb.c
diff --git a/ecos/packages/language/c/libm/current/src/double/portable-api/s_isnan.c b/ecos/packages/language/c/libm/current/src/double/portable-api/s_isnan.c
new file mode 100644
index 0000000..2804903
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/double/portable-api/s_isnan.c
@@ -0,0 +1,94 @@
+//===========================================================================
+//
+// s_isnan.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/* @(#)s_isnan.c 1.3 95/01/18 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunSoft, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/*
+ * isnan(x) returns 1 is x is nan, else 0;
+ * no branching!
+ */
+
+#include "mathincl/fdlibm.h"
+
+ int isnan(double x)
+{
+ int hx,lx;
+ hx = (CYG_LIBM_HI(x)&0x7fffffff);
+ lx = CYG_LIBM_LO(x);
+ hx |= (unsigned)(lx|(-lx))>>31;
+ hx = 0x7ff00000 - hx;
+ return ((unsigned)(hx))>>31;
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF s_isnan.c
diff --git a/ecos/packages/language/c/libm/current/src/double/portable-api/s_ldexp.c b/ecos/packages/language/c/libm/current/src/double/portable-api/s_ldexp.c
new file mode 100644
index 0000000..8ef70d5
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/double/portable-api/s_ldexp.c
@@ -0,0 +1,99 @@
+//===========================================================================
+//
+// s_ldexp.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/* @(#)s_ldexp.c 1.3 95/01/18 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunSoft, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+#include "mathincl/fdlibm.h"
+
+double
+ldexp(double x, int exp)
+{
+ double z;
+
+ z = scalbn(x,exp);
+
+#ifndef CYGSEM_LIBM_COMPAT_IEEE_ONLY
+ if(cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_IEEE) return z;
+ if(!(finite(z)||isnan(z))&&finite(x)) {
+ return __kernel_standard(x,(double)exp,43); /* ldexp overflow */
+ }
+ if(z==0.0&&z!=x) {
+ return __kernel_standard(x,(double)exp,44); /* ldexp underflow */
+ }
+#endif
+
+ return z;
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF s_ldexp.c
diff --git a/ecos/packages/language/c/libm/current/src/double/portable-api/s_log1p.c b/ecos/packages/language/c/libm/current/src/double/portable-api/s_log1p.c
new file mode 100644
index 0000000..ec6fb66
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/double/portable-api/s_log1p.c
@@ -0,0 +1,226 @@
+//===========================================================================
+//
+// s_log1p.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/* @(#)s_log1p.c 1.3 95/01/18 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunSoft, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/* double log1p(double x)
+ *
+ * Method :
+ * 1. Argument Reduction: find k and f such that
+ * 1+x = 2^k * (1+f),
+ * where sqrt(2)/2 < 1+f < sqrt(2) .
+ *
+ * Note. If k=0, then f=x is exact. However, if k!=0, then f
+ * may not be representable exactly. In that case, a correction
+ * term is need. Let u=1+x rounded. Let c = (1+x)-u, then
+ * log(1+x) - log(u) ~ c/u. Thus, we proceed to compute log(u),
+ * and add back the correction term c/u.
+ * (Note: when x > 2**53, one can simply return log(x))
+ *
+ * 2. Approximation of log1p(f).
+ * Let s = f/(2+f) ; based on log(1+f) = log(1+s) - log(1-s)
+ * = 2s + 2/3 s**3 + 2/5 s**5 + .....,
+ * = 2s + s*R
+ * We use a special Reme algorithm on [0,0.1716] to generate
+ * a polynomial of degree 14 to approximate R The maximum error
+ * of this polynomial approximation is bounded by 2**-58.45. In
+ * other words,
+ * 2 4 6 8 10 12 14
+ * R(z) ~ Lp1*s +Lp2*s +Lp3*s +Lp4*s +Lp5*s +Lp6*s +Lp7*s
+ * (the values of Lp1 to Lp7 are listed in the program)
+ * and
+ * | 2 14 | -58.45
+ * | Lp1*s +...+Lp7*s - R(z) | <= 2
+ * | |
+ * Note that 2s = f - s*f = f - hfsq + s*hfsq, where hfsq = f*f/2.
+ * In order to guarantee error in log below 1ulp, we compute log
+ * by
+ * log1p(f) = f - (hfsq - s*(hfsq+R)).
+ *
+ * 3. Finally, log1p(x) = k*ln2 + log1p(f).
+ * = k*ln2_hi+(f-(hfsq-(s*(hfsq+R)+k*ln2_lo)))
+ * Here ln2 is split into two floating point number:
+ * ln2_hi + ln2_lo,
+ * where n*ln2_hi is always exact for |n| < 2000.
+ *
+ * Special cases:
+ * log1p(x) is NaN with signal if x < -1 (including -INF) ;
+ * log1p(+INF) is +INF; log1p(-1) is -INF with signal;
+ * log1p(NaN) is that NaN with no signal.
+ *
+ * Accuracy:
+ * according to an error analysis, the error is always less than
+ * 1 ulp (unit in the last place).
+ *
+ * Constants:
+ * The hexadecimal values are the intended ones for the following
+ * constants. The decimal values may be used, provided that the
+ * compiler will convert from decimal to binary accurately enough
+ * to produce the hexadecimal values shown.
+ *
+ * Note: Assuming log() return accurate answer, the following
+ * algorithm can be used to compute log1p(x) to within a few ULP:
+ *
+ * u = 1+x;
+ * if(u==1.0) return x ; else
+ * return log(u)*(x/(u-1.0));
+ *
+ * See HP-15C Advanced Functions Handbook, p.193.
+ */
+
+#include "mathincl/fdlibm.h"
+
+static const double
+ln2_hi = 6.93147180369123816490e-01, /* 3fe62e42 fee00000 */
+ln2_lo = 1.90821492927058770002e-10, /* 3dea39ef 35793c76 */
+two54 = 1.80143985094819840000e+16, /* 43500000 00000000 */
+Lp1 = 6.666666666666735130e-01, /* 3FE55555 55555593 */
+Lp2 = 3.999999999940941908e-01, /* 3FD99999 9997FA04 */
+Lp3 = 2.857142874366239149e-01, /* 3FD24924 94229359 */
+Lp4 = 2.222219843214978396e-01, /* 3FCC71C5 1D8E78AF */
+Lp5 = 1.818357216161805012e-01, /* 3FC74664 96CB03DE */
+Lp6 = 1.531383769920937332e-01, /* 3FC39A09 D078C69F */
+Lp7 = 1.479819860511658591e-01; /* 3FC2F112 DF3E5244 */
+
+static double zero = 0.0;
+
+ double log1p(double x)
+{
+ double hfsq,f,c,s,z,R,u;
+ int k,hx,hu,ax;
+
+ c=f=hu=0.0; /* to placate compiler */
+ hx = CYG_LIBM_HI(x); /* high word of x */
+ ax = hx&0x7fffffff;
+
+ k = 1;
+ if (hx < 0x3FDA827A) { /* x < 0.41422 */
+ if(ax>=0x3ff00000) { /* x <= -1.0 */
+ if(x==-1.0) return -two54/zero; /* log1p(-1)=+inf */
+ else return (x-x)/(x-x); /* log1p(x<-1)=NaN */
+ }
+ if(ax<0x3e200000) { /* |x| < 2**-29 */
+ if(two54+x>zero /* raise inexact */
+ &&ax<0x3c900000) /* |x| < 2**-54 */
+ return x;
+ else
+ return x - x*x*0.5;
+ }
+ if(hx>0||hx<=((int)0xbfd2bec3)) {
+ k=0;f=x;hu=1;} /* -0.2929<x<0.41422 */
+ }
+ if (hx >= 0x7ff00000) return x+x;
+ if(k!=0) {
+ if(hx<0x43400000) {
+ u = 1.0+x;
+ hu = CYG_LIBM_HI(u); /* high word of u */
+ k = (hu>>20)-1023;
+ c = (k>0)? 1.0-(u-x):x-(u-1.0);/* correction term */
+ c /= u;
+ } else {
+ u = x;
+ hu = CYG_LIBM_HI(u); /* high word of u */
+ k = (hu>>20)-1023;
+ c = 0;
+ }
+ hu &= 0x000fffff;
+ if(hu<0x6a09e) {
+ CYG_LIBM_HI(u) = hu|0x3ff00000; /* normalize u */
+ } else {
+ k += 1;
+ CYG_LIBM_HI(u) = hu|0x3fe00000; /* normalize u/2 */
+ hu = (0x00100000-hu)>>2;
+ }
+ f = u-1.0;
+ }
+ hfsq=0.5*f*f;
+ if(hu==0) { /* |f| < 2**-20 */
+ if(f==zero) {
+ if(k==0) return zero;
+ else {
+ c += k*ln2_lo; return k*ln2_hi+c;
+ }
+ }
+ R = hfsq*(1.0-0.66666666666666666*f);
+ if(k==0) return f-R;
+ else return k*ln2_hi-((R-(k*ln2_lo+c))-f);
+ }
+ s = f/(2.0+f);
+ z = s*s;
+ R = z*(Lp1+z*(Lp2+z*(Lp3+z*(Lp4+z*(Lp5+z*(Lp6+z*Lp7))))));
+ if(k==0) return f-(hfsq-s*(hfsq+R));
+ else return k*ln2_hi-((hfsq-(s*(hfsq+R)+(k*ln2_lo+c)))-f);
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF s_log1p.c
diff --git a/ecos/packages/language/c/libm/current/src/double/portable-api/s_logb.c b/ecos/packages/language/c/libm/current/src/double/portable-api/s_logb.c
new file mode 100644
index 0000000..aee8964
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/double/portable-api/s_logb.c
@@ -0,0 +1,98 @@
+//===========================================================================
+//
+// s_logb.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/* @(#)s_logb.c 1.3 95/01/18 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunSoft, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/*
+ * double logb(x)
+ * IEEE 754 logb. Included to pass IEEE test suite. Not recommend.
+ * Use ilogb instead.
+ */
+
+#include "mathincl/fdlibm.h"
+
+ double logb(double x)
+{
+ int lx,ix;
+ ix = (CYG_LIBM_HI(x))&0x7fffffff; /* high |x| */
+ lx = CYG_LIBM_LO(x); /* low x */
+ if((ix|lx)==0) return -1.0/fabs(x);
+ if(ix>=0x7ff00000) return x*x;
+ if((ix>>=20)==0) /* IEEE 754 logb */
+ return -1022.0;
+ else
+ return (double) (ix-1023);
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF s_logb.c
diff --git a/ecos/packages/language/c/libm/current/src/double/portable-api/s_modf.c b/ecos/packages/language/c/libm/current/src/double/portable-api/s_modf.c
new file mode 100644
index 0000000..7de1e86
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/double/portable-api/s_modf.c
@@ -0,0 +1,136 @@
+//===========================================================================
+//
+// s_modf.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/* @(#)s_modf.c 1.3 95/01/18 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunSoft, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/*
+ * modf(double x, double *iptr)
+ * return fraction part of x, and return x's integral part in *iptr.
+ * Method:
+ * Bit twiddling.
+ *
+ * Exception:
+ * No exception.
+ */
+
+#include "mathincl/fdlibm.h"
+
+static const double one = 1.0;
+
+ double modf(double x, double *iptr)
+{
+ int i0,i1,j0;
+ unsigned i;
+ i0 = CYG_LIBM_HI(x); /* high x */
+ i1 = CYG_LIBM_LO(x); /* low x */
+ j0 = ((i0>>20)&0x7ff)-0x3ff; /* exponent of x */
+ if(j0<20) { /* integer part in high x */
+ if(j0<0) { /* |x|<1 */
+ CYG_LIBM_HIp(iptr) = i0&0x80000000;
+ CYG_LIBM_LOp(iptr) = 0; /* *iptr = +-0 */
+ return x;
+ } else {
+ i = (0x000fffff)>>j0;
+ if(((i0&i)|i1)==0) { /* x is integral */
+ *iptr = x;
+ CYG_LIBM_HI(x) &= 0x80000000;
+ CYG_LIBM_LO(x) = 0; /* return +-0 */
+ return x;
+ } else {
+ CYG_LIBM_HIp(iptr) = i0&(~i);
+ CYG_LIBM_LOp(iptr) = 0;
+ return x - *iptr;
+ }
+ }
+ } else if (j0>51) { /* no fraction part */
+ *iptr = x*one;
+ CYG_LIBM_HI(x) &= 0x80000000;
+ CYG_LIBM_LO(x) = 0; /* return +-0 */
+ return x;
+ } else { /* fraction part in low x */
+ i = ((unsigned)(0xffffffff))>>(j0-20);
+ if((i1&i)==0) { /* x is integral */
+ *iptr = x;
+ CYG_LIBM_HI(x) &= 0x80000000;
+ CYG_LIBM_LO(x) = 0; /* return +-0 */
+ return x;
+ } else {
+ CYG_LIBM_HIp(iptr) = i0;
+ CYG_LIBM_LOp(iptr) = i1&(~i);
+ return x - *iptr;
+ }
+ }
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF s_modf.c
diff --git a/ecos/packages/language/c/libm/current/src/double/portable-api/s_nextafter.c b/ecos/packages/language/c/libm/current/src/double/portable-api/s_nextafter.c
new file mode 100644
index 0000000..c449f70
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/double/portable-api/s_nextafter.c
@@ -0,0 +1,138 @@
+//===========================================================================
+//
+// s_nextafter.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/* @(#)s_nextafter.c 1.3 95/01/18 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunSoft, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/* IEEE functions
+ * nextafter(x,y)
+ * return the next machine floating-point number of x in the
+ * direction toward y.
+ * Special cases:
+ */
+
+#include "mathincl/fdlibm.h"
+
+ double nextafter(double x, double y)
+{
+ int hx,hy,ix,iy;
+ unsigned lx,ly;
+
+ hx = CYG_LIBM_HI(x); /* high word of x */
+ lx = CYG_LIBM_LO(x); /* low word of x */
+ hy = CYG_LIBM_HI(y); /* high word of y */
+ ly = CYG_LIBM_LO(y); /* low word of y */
+ ix = hx&0x7fffffff; /* |x| */
+ iy = hy&0x7fffffff; /* |y| */
+
+ if(((ix>=0x7ff00000)&&((ix-0x7ff00000)|lx)!=0) || /* x is nan */
+ ((iy>=0x7ff00000)&&((iy-0x7ff00000)|ly)!=0)) /* y is nan */
+ return x+y;
+ if(x==y) return x; /* x=y, return x */
+ if((ix|lx)==0) { /* x == 0 */
+ CYG_LIBM_HI(x) = hy&0x80000000; /* return +-minsubnormal */
+ CYG_LIBM_LO(x) = 1;
+ y = x*x;
+ if(y==x) return y; else return x; /* raise underflow flag */
+ }
+ if(hx>=0) { /* x > 0 */
+ if(hx>hy||((hx==hy)&&(lx>ly))) { /* x > y, x -= ulp */
+ if(lx==0) hx -= 1;
+ lx -= 1;
+ } else { /* x < y, x += ulp */
+ lx += 1;
+ if(lx==0) hx += 1;
+ }
+ } else { /* x < 0 */
+ if(hy>=0||hx>hy||((hx==hy)&&(lx>ly))){/* x < y, x -= ulp */
+ if(lx==0) hx -= 1;
+ lx -= 1;
+ } else { /* x > y, x += ulp */
+ lx += 1;
+ if(lx==0) hx += 1;
+ }
+ }
+ hy = hx&0x7ff00000;
+ if(hy>=0x7ff00000) return x+x; /* overflow */
+ if(hy<0x00100000) { /* underflow */
+ y = x*x;
+ if(y!=x) { /* raise underflow flag */
+ CYG_LIBM_HI(y) = hx; CYG_LIBM_LO(y) = lx;
+ return y;
+ }
+ }
+ CYG_LIBM_HI(x) = hx; CYG_LIBM_LO(x) = lx;
+ return x;
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF s_nextafter.c
diff --git a/ecos/packages/language/c/libm/current/src/double/portable-api/s_rint.c b/ecos/packages/language/c/libm/current/src/double/portable-api/s_rint.c
new file mode 100644
index 0000000..d9aeb2d
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/double/portable-api/s_rint.c
@@ -0,0 +1,140 @@
+//===========================================================================
+//
+// s_rint.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/* @(#)s_rint.c 1.3 95/01/18 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunSoft, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/*
+ * rint(x)
+ * Return x rounded to integral value according to the prevailing
+ * rounding mode.
+ * Method:
+ * Using floating addition.
+ * Exception:
+ * Inexact flag raised if x not equal to rint(x).
+ */
+
+#include "mathincl/fdlibm.h"
+
+static const double
+TWO52[2]={
+ 4.50359962737049600000e+15, /* 0x43300000, 0x00000000 */
+ -4.50359962737049600000e+15, /* 0xC3300000, 0x00000000 */
+};
+
+ double rint(double x)
+{
+ int i0,j0,sx;
+ unsigned i,i1;
+ double w,t;
+ i0 = CYG_LIBM_HI(x);
+ sx = (i0>>31)&1;
+ i1 = CYG_LIBM_LO(x);
+ j0 = ((i0>>20)&0x7ff)-0x3ff;
+ if(j0<20) {
+ if(j0<0) {
+ if(((i0&0x7fffffff)|i1)==0) return x;
+ i1 |= (i0&0x0fffff);
+ i0 &= 0xfffe0000;
+ i0 |= ((i1|-i1)>>12)&0x80000;
+ CYG_LIBM_HI(x)=i0;
+ w = TWO52[sx]+x;
+ t = w-TWO52[sx];
+ i0 = CYG_LIBM_HI(t);
+ CYG_LIBM_HI(t) = (i0&0x7fffffff)|(sx<<31);
+ return t;
+ } else {
+ i = (0x000fffff)>>j0;
+ if(((i0&i)|i1)==0) return x; /* x is integral */
+ i>>=1;
+ if(((i0&i)|i1)!=0) {
+ if(j0==19) i1 = 0x40000000; else
+ i0 = (i0&(~i))|((0x20000)>>j0);
+ }
+ }
+ } else if (j0>51) {
+ if(j0==0x400) return x+x; /* inf or NaN */
+ else return x; /* x is integral */
+ } else {
+ i = ((unsigned)(0xffffffff))>>(j0-20);
+ if((i1&i)==0) return x; /* x is integral */
+ i>>=1;
+ if((i1&i)!=0) i1 = (i1&(~i))|((0x40000000)>>(j0-20));
+ }
+ CYG_LIBM_HI(x) = i0;
+ CYG_LIBM_LO(x) = i1;
+ w = TWO52[sx]+x;
+ return w-TWO52[sx];
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF s_rint.c
diff --git a/ecos/packages/language/c/libm/current/src/double/portable-api/s_scalbn.c b/ecos/packages/language/c/libm/current/src/double/portable-api/s_scalbn.c
new file mode 100644
index 0000000..83c8b10
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/double/portable-api/s_scalbn.c
@@ -0,0 +1,120 @@
+//===========================================================================
+//
+// s_scalbn.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/* @(#)s_scalbn.c 1.3 95/01/18 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunSoft, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/*
+ * scalbn (double x, int n)
+ * scalbn(x,n) returns x* 2**n computed by exponent
+ * manipulation rather than by actually performing an
+ * exponentiation or a multiplication.
+ */
+
+#include "mathincl/fdlibm.h"
+
+static const double
+two54 = 1.80143985094819840000e+16, /* 0x43500000, 0x00000000 */
+twom54 = 5.55111512312578270212e-17, /* 0x3C900000, 0x00000000 */
+huge = 1.0e+300,
+tiny = 1.0e-300;
+
+ double scalbn (double x, int n)
+{
+ int k,hx,lx;
+ hx = CYG_LIBM_HI(x);
+ lx = CYG_LIBM_LO(x);
+ k = (hx&0x7ff00000)>>20; /* extract exponent */
+ if (k==0) { /* 0 or subnormal x */
+ if ((lx|(hx&0x7fffffff))==0) return x; /* +-0 */
+ x *= two54;
+ hx = CYG_LIBM_HI(x);
+ k = ((hx&0x7ff00000)>>20) - 54;
+ if (n< -50000) return tiny*x; /*underflow*/
+ }
+ if (k==0x7ff) return x+x; /* NaN or Inf */
+ k = k+n;
+ if (k > 0x7fe) return huge*copysign(huge,x); /* overflow */
+ if (k > 0) /* normal result */
+ {CYG_LIBM_HI(x) = (hx&0x800fffff)|(k<<20); return x;}
+ if (k <= -54) {
+ if (n > 50000) /* in case integer overflow in n+k */
+ return huge*copysign(huge,x); /*overflow*/
+ else return tiny*copysign(tiny,x); /*underflow*/
+ }
+ k += 54; /* subnormal result */
+ CYG_LIBM_HI(x) = (hx&0x800fffff)|(k<<20);
+ return x*twom54;
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF s_scalbn.c
diff --git a/ecos/packages/language/c/libm/current/src/double/portable-api/s_significand.c b/ecos/packages/language/c/libm/current/src/double/portable-api/s_significand.c
new file mode 100644
index 0000000..e3fcede
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/double/portable-api/s_significand.c
@@ -0,0 +1,90 @@
+//===========================================================================
+//
+// s_significand.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/* @(#)s_significand.c 1.3 95/01/18 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunSoft, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/*
+ * significand(x) computes just
+ * scalb(x, (double) -ilogb(x)),
+ * for exercising the fraction-part(F) IEEE 754-1985 test vector.
+ */
+
+#include "mathincl/fdlibm.h"
+
+ double significand(double x)
+{
+ return __ieee754_scalb(x,(double) -ilogb(x));
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF s_significand.c
diff --git a/ecos/packages/language/c/libm/current/src/double/portable-api/s_sin.c b/ecos/packages/language/c/libm/current/src/double/portable-api/s_sin.c
new file mode 100644
index 0000000..af8d366
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/double/portable-api/s_sin.c
@@ -0,0 +1,138 @@
+//===========================================================================
+//
+// s_sin.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/* @(#)s_sin.c 1.3 95/01/18 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunSoft, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/* sin(x)
+ * Return sine function of x.
+ *
+ * kernel function:
+ * __kernel_sin ... sine function on [-pi/4,pi/4]
+ * __kernel_cos ... cose function on [-pi/4,pi/4]
+ * __ieee754_rem_pio2 ... argument reduction routine
+ *
+ * Method.
+ * Let S,C and T denote the sin, cos and tan respectively on
+ * [-PI/4, +PI/4]. Reduce the argument x to y1+y2 = x-k*pi/2
+ * in [-pi/4 , +pi/4], and let n = k mod 4.
+ * We have
+ *
+ * n sin(x) cos(x) tan(x)
+ * ----------------------------------------------------------
+ * 0 S C T
+ * 1 C -S -1/T
+ * 2 -S -C T
+ * 3 -C S -1/T
+ * ----------------------------------------------------------
+ *
+ * Special cases:
+ * Let trig be any of sin, cos, or tan.
+ * trig(+-INF) is NaN, with signals;
+ * trig(NaN) is that NaN;
+ *
+ * Accuracy:
+ * TRIG(x) returns trig(x) nearly rounded
+ */
+
+#include "mathincl/fdlibm.h"
+
+ double sin(double x)
+{
+ double y[2],z=0.0;
+ int n, ix;
+
+ /* High word of x. */
+ ix = CYG_LIBM_HI(x);
+
+ /* |x| ~< pi/4 */
+ ix &= 0x7fffffff;
+ if(ix <= 0x3fe921fb) return __kernel_sin(x,z,0);
+
+ /* sin(Inf or NaN) is NaN */
+ else if (ix>=0x7ff00000) return x-x;
+
+ /* argument reduction needed */
+ else {
+ n = __ieee754_rem_pio2(x,y);
+ switch(n&3) {
+ case 0: return __kernel_sin(y[0],y[1],1);
+ case 1: return __kernel_cos(y[0],y[1]);
+ case 2: return -__kernel_sin(y[0],y[1],1);
+ default:
+ return -__kernel_cos(y[0],y[1]);
+ }
+ }
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF s_sin.c
diff --git a/ecos/packages/language/c/libm/current/src/double/portable-api/s_tan.c b/ecos/packages/language/c/libm/current/src/double/portable-api/s_tan.c
new file mode 100644
index 0000000..39a70d0
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/double/portable-api/s_tan.c
@@ -0,0 +1,132 @@
+//===========================================================================
+//
+// s_tan.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/* @(#)s_tan.c 1.3 95/01/18 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunSoft, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/* tan(x)
+ * Return tangent function of x.
+ *
+ * kernel function:
+ * __kernel_tan ... tangent function on [-pi/4,pi/4]
+ * __ieee754_rem_pio2 ... argument reduction routine
+ *
+ * Method.
+ * Let S,C and T denote the sin, cos and tan respectively on
+ * [-PI/4, +PI/4]. Reduce the argument x to y1+y2 = x-k*pi/2
+ * in [-pi/4 , +pi/4], and let n = k mod 4.
+ * We have
+ *
+ * n sin(x) cos(x) tan(x)
+ * ----------------------------------------------------------
+ * 0 S C T
+ * 1 C -S -1/T
+ * 2 -S -C T
+ * 3 -C S -1/T
+ * ----------------------------------------------------------
+ *
+ * Special cases:
+ * Let trig be any of sin, cos, or tan.
+ * trig(+-INF) is NaN, with signals;
+ * trig(NaN) is that NaN;
+ *
+ * Accuracy:
+ * TRIG(x) returns trig(x) nearly rounded
+ */
+
+#include "mathincl/fdlibm.h"
+
+ double tan(double x)
+{
+ double y[2],z=0.0;
+ int n, ix;
+
+ /* High word of x. */
+ ix = CYG_LIBM_HI(x);
+
+ /* |x| ~< pi/4 */
+ ix &= 0x7fffffff;
+ if(ix <= 0x3fe921fb) return __kernel_tan(x,z,1);
+
+ /* tan(Inf or NaN) is NaN */
+ else if (ix>=0x7ff00000) return x-x; /* NaN */
+
+ /* argument reduction needed */
+ else {
+ n = __ieee754_rem_pio2(x,y);
+ return __kernel_tan(y[0],y[1],1-((n&1)<<1)); /* 1 -- n even
+ -1 -- n odd */
+ }
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF s_tan.c
diff --git a/ecos/packages/language/c/libm/current/src/double/portable-api/s_tanh.c b/ecos/packages/language/c/libm/current/src/double/portable-api/s_tanh.c
new file mode 100644
index 0000000..6c4d708
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/double/portable-api/s_tanh.c
@@ -0,0 +1,138 @@
+//===========================================================================
+//
+// s_tanh.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/* @(#)s_tanh.c 1.3 95/01/18 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunSoft, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/* Tanh(x)
+ * Return the Hyperbolic Tangent of x
+ *
+ * Method :
+ * x -x
+ * e - e
+ * 0. tanh(x) is defined to be -----------
+ * x -x
+ * e + e
+ * 1. reduce x to non-negative by tanh(-x) = -tanh(x).
+ * 2. 0 <= x <= 2**-55 : tanh(x) := x*(one+x)
+ * -t
+ * 2**-55 < x <= 1 : tanh(x) := -----; t = expm1(-2x)
+ * t + 2
+ * 2
+ * 1 <= x <= 22.0 : tanh(x) := 1- ----- ; t=expm1(2x)
+ * t + 2
+ * 22.0 < x <= INF : tanh(x) := 1.
+ *
+ * Special cases:
+ * tanh(NaN) is NaN;
+ * only tanh(0)=0 is exact for finite argument.
+ */
+
+#include "mathincl/fdlibm.h"
+
+static const double one=1.0, two=2.0, tiny = 1.0e-300;
+
+ double tanh(double x)
+{
+ double t,z;
+ int jx,ix;
+
+ /* High word of |x|. */
+ jx = CYG_LIBM_HI(x);
+ ix = jx&0x7fffffff;
+
+ /* x is INF or NaN */
+ if(ix>=0x7ff00000) {
+ if (jx>=0) return one/x+one; /* tanh(+-inf)=+-1 */
+ else return one/x-one; /* tanh(NaN) = NaN */
+ }
+
+ /* |x| < 22 */
+ if (ix < 0x40360000) { /* |x|<22 */
+ if (ix<0x3c800000) /* |x|<2**-55 */
+ return x*(one+x); /* tanh(small) = small */
+ if (ix>=0x3ff00000) { /* |x|>=1 */
+ t = expm1(two*fabs(x));
+ z = one - two/(t+two);
+ } else {
+ t = expm1(-two*fabs(x));
+ z= -t/(t+two);
+ }
+ /* |x| > 22, return +-1 */
+ } else {
+ z = one - tiny; /* raised inexact flag */
+ }
+ return (jx>=0)? z: -z;
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF s_tanh.c
diff --git a/ecos/packages/language/c/libm/current/src/float/ieee754-api/wf_acos.c b/ecos/packages/language/c/libm/current/src/float/ieee754-api/wf_acos.c
new file mode 100644
index 0000000..d03fe21
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/float/ieee754-api/wf_acos.c
@@ -0,0 +1,103 @@
+//===========================================================================
+//
+// wf_acos.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 2012-03-08
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/*
+ * wrap_acosf(x)
+ */
+
+#include "mathincl/fdlibm.h"
+
+#ifdef _HAVE_STDC
+ float acosf(float x) /* wrapper acosf */
+#else
+ float acosf(x) /* wrapper acosf */
+ float x;
+#endif
+{
+#ifdef CYGSEM_LIBM_COMPAT_IEEE_ONLY
+ return __ieee754_acosf(x);
+#else
+ float z;
+
+ z = __ieee754_acosf(x);
+ if(cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_IEEE || isnanf(x)) return z;
+ if(fabsf(x)>(float)1.0) {
+ return __kernel_standard_float(x,x,1); /* acos(|x|>1) */
+ } else
+ return z;
+#endif
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF wf_acos.c
diff --git a/ecos/packages/language/c/libm/current/src/float/ieee754-api/wf_acosh.c b/ecos/packages/language/c/libm/current/src/float/ieee754-api/wf_acosh.c
new file mode 100644
index 0000000..b0147b9
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/float/ieee754-api/wf_acosh.c
@@ -0,0 +1,103 @@
+//===========================================================================
+//
+// wf_acosh.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 2012-03-08
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ *
+ */
+
+/*
+ * wrapper acoshf(x)
+ */
+
+#include "mathincl/fdlibm.h"
+
+#ifdef __STDC__
+ float acoshf(float x) /* wrapper acoshf */
+#else
+ float acoshf(x) /* wrapper acoshf */
+ float x;
+#endif
+{
+#ifdef CYGSEM_LIBM_COMPAT_IEEE_ONLY
+ return __ieee754_acoshf(x);
+#else
+ float z;
+ z = __ieee754_acoshf(x);
+ if(cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_IEEE || isnanf(x)) return z;
+ if(x<1.0) {
+ return __kernel_standard(x,x,29); /* acosh(x<1) */
+ } else
+ return z;
+#endif
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF wf_acosh.c
diff --git a/ecos/packages/language/c/libm/current/src/float/ieee754-api/wf_asin.c b/ecos/packages/language/c/libm/current/src/float/ieee754-api/wf_asin.c
new file mode 100644
index 0000000..5f5ba2d
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/float/ieee754-api/wf_asin.c
@@ -0,0 +1,104 @@
+//===========================================================================
+//
+// wf_asin.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 2012-03-08
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ *
+ */
+
+/*
+ * wrapper asinf(x)
+ */
+
+#include "mathincl/fdlibm.h"
+
+#ifdef __STDC__
+ float asinf(float x) /* wrapper asinf */
+#else
+ float asinf(x) /* wrapper asinf */
+ float x;
+#endif
+{
+#ifdef CYGSEM_LIBM_COMPAT_IEEE_ONLY
+ return __ieee754_asinf(x);
+#else
+ float z;
+
+ z = __ieee754_asinf(x);
+ if( cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_IEEE || isnanf(x)) return z;
+ if(fabsf(x)>(float)1.0) {
+ return __kernel_standard_float(x,x,2); /* asin(|x|>1) */
+ } else
+ return z;
+#endif
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF wf_asin.c
diff --git a/ecos/packages/language/c/libm/current/src/float/ieee754-api/wf_atan2.c b/ecos/packages/language/c/libm/current/src/float/ieee754-api/wf_atan2.c
new file mode 100644
index 0000000..6a71377
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/float/ieee754-api/wf_atan2.c
@@ -0,0 +1,93 @@
+//===========================================================================
+//
+// wf_atan2.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 2012-03-08
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ *
+ */
+
+/*
+ * wrapper atan2f(y,x)
+ */
+
+#include "mathincl/fdlibm.h"
+
+#ifdef __STDC__
+ float atan2f(float y, float x) /* wrapper atan2f */
+#else
+ float atan2f(y,x) /* wrapper atan2 */
+ float y,x;
+#endif
+{
+ return __ieee754_atan2f(y,x);
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF wf_atan2.c
diff --git a/ecos/packages/language/c/libm/current/src/float/ieee754-api/wf_atanh.c b/ecos/packages/language/c/libm/current/src/float/ieee754-api/wf_atanh.c
new file mode 100644
index 0000000..389de4f
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/float/ieee754-api/wf_atanh.c
@@ -0,0 +1,105 @@
+//===========================================================================
+//
+// wf_atanh.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 2012-03-08
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+/*
+ * wrapper atanhf(x)
+ */
+
+#include "mathincl/fdlibm.h"
+
+#ifdef __STDC__
+ float atanhf(float x) /* wrapper atanhf */
+#else
+ float atanhf(x) /* wrapper atanhf */
+ float x;
+#endif
+{
+#ifdef CYGSEM_LIBM_COMPAT_IEEE_ONLY
+ return __ieee754_atanhf(x);
+#else
+ float z,y;
+ z = __ieee754_atanhf(x);
+ if(cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_IEEE || isnanf(x)) return z;
+ y = fabs(x);
+ if(y>=1.0) {
+ if(y>1.0)
+ return __kernel_standard(x,x,30); /* atanh(|x|>1) */
+ else
+ return __kernel_standard(x,x,31); /* atanh(|x|==1) */
+ } else
+ return z;
+#endif
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF wf_atanh.c
diff --git a/ecos/packages/language/c/libm/current/src/float/ieee754-api/wf_cosh.c b/ecos/packages/language/c/libm/current/src/float/ieee754-api/wf_cosh.c
new file mode 100644
index 0000000..94dd53d
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/float/ieee754-api/wf_cosh.c
@@ -0,0 +1,102 @@
+//===========================================================================
+//
+// wf_cosh.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 2012-03-08
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/*
+ * wrapper coshf(x)
+ */
+
+#include "mathincl/fdlibm.h"
+
+#ifdef __STDC__
+ float coshf(float x) /* wrapper coshf */
+#else
+ float coshf(x) /* wrapper coshf */
+ float x;
+#endif
+{
+#ifdef CYGSEM_LIBM_COMPAT_IEEE_ONLY
+ return __ieee754_coshf(x);
+#else
+ float z;
+ z = __ieee754_coshf(x);
+ if(cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_IEEE || isnanf(x)) return z;
+ if(fabsf(x)>(float)8.9415985107e+01) {
+ return __kernel_standard(x,x,5); /* cosh overflow */
+ } else
+ return z;
+#endif
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF wf_cosh.c
diff --git a/ecos/packages/language/c/libm/current/src/float/ieee754-api/wf_exp.c b/ecos/packages/language/c/libm/current/src/float/ieee754-api/wf_exp.c
new file mode 100644
index 0000000..46186f0
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/float/ieee754-api/wf_exp.c
@@ -0,0 +1,114 @@
+//===========================================================================
+//
+// wf_exp.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 2012-03-08
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/*
+ * wrapper expf(x)
+ */
+
+#include "mathincl/fdlibm.h"
+
+#ifdef __STDC__
+static const float
+#else
+static float
+#endif
+o_threshold= 8.8721679688e+01, /* 0x42b17180 */
+u_threshold= -1.0397208405e+02; /* 0xc2cff1b5 */
+
+#ifdef __STDC__
+ float expf(float x) /* wrapper expf */
+#else
+ float expf(x) /* wrapper expf */
+ float x;
+#endif
+{
+#ifdef CYGSEM_LIBM_COMPAT_IEEE_ONLY
+ return __ieee754_expf(x);
+#else
+ float z;
+ //struct exception exc;
+ z = __ieee754_expf(x);
+ if(cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_IEEE) return z;
+ if(finitef(x)) {
+ if(x>o_threshold)
+ return __kernel_standard(x,x,6); /* exp overflow */
+ else if(x<u_threshold)
+ return __kernel_standard(x,x,7); /* exp underflow */
+ }
+ return z;
+#endif
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF wf_exp.c
diff --git a/ecos/packages/language/c/libm/current/src/float/ieee754-api/wf_fmod.c b/ecos/packages/language/c/libm/current/src/float/ieee754-api/wf_fmod.c
new file mode 100644
index 0000000..6911acd
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/float/ieee754-api/wf_fmod.c
@@ -0,0 +1,102 @@
+//===========================================================================
+//
+// w_fmod.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 2012-03-08
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/*
+ * wrapper fmodf(x,y)
+ */
+
+#include "mathincl/fdlibm.h"
+
+#ifdef __STDC__
+ float fmodf(float x, float y) /* wrapper fmodf */
+#else
+ float fmodf(x,y) /* wrapper fmodf */
+ float x,y;
+#endif
+{
+#ifdef CYGSEM_LIBM_COMPAT_IEEE_ONLY
+ return __ieee754_fmodf(x,y);
+#else
+ float z;
+ z = __ieee754_fmodf(x,y);
+ if(cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_IEEE ||isnanf(y)||isnanf(x)) return z;
+ if(y==0.0) {
+ return __kernel_standard(x,y,27); /* fmod(x,0) */
+ } else
+ return z;
+#endif
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF wf_fmod.c
diff --git a/ecos/packages/language/c/libm/current/src/float/ieee754-api/wf_gamma.c b/ecos/packages/language/c/libm/current/src/float/ieee754-api/wf_gamma.c
new file mode 100644
index 0000000..d9bec1b
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/float/ieee754-api/wf_gamma.c
@@ -0,0 +1,103 @@
+//===========================================================================
+//
+// wf_gamma.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 2012-03-08
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ *
+ */
+
+#include <math.h>
+#include "mathincl/fdlibm.h"
+
+#ifdef __STDC__
+ float gammaf(float x)
+#else
+ float gammaf(x)
+ float x;
+#endif
+{
+#ifdef CYGSEM_LIBM_COMPAT_IEEE_ONLY
+ return __ieee754_gammaf_r(x,&signgam);
+#else
+ float y;
+ y = __ieee754_gammaf_r(x,&signgam);
+ if(cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_IEEE) return y;
+ if(!finitef(y)&&finitef(x)) {
+ if(floorf(x)==x&&x<=0.0)
+ return __kernel_standard(x,x,41); /* gamma pole */
+ else
+ return __kernel_standard(x,x,40); /* gamma overflow */
+ } else
+ return y;
+#endif
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF wf_gamma.c
diff --git a/ecos/packages/language/c/libm/current/src/float/ieee754-api/wf_gamma_r.c b/ecos/packages/language/c/libm/current/src/float/ieee754-api/wf_gamma_r.c
new file mode 100644
index 0000000..e713a11
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/float/ieee754-api/wf_gamma_r.c
@@ -0,0 +1,106 @@
+//===========================================================================
+//
+// wf_gamma_r.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 2012-03-08
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/*
+ * wrapper float gammaf_r(float x, int *signgamp)
+ */
+
+
+#include "mathincl/fdlibm.h"
+
+#ifdef __STDC__
+ float gammaf_r(float x, int *signgamp) /* wrapper lgammaf_r */
+#else
+ float gammaf_r(x,signgamp) /* wrapper lgammaf_r */
+ float x; int *signgamp;
+#endif
+{
+#ifdef CYGSEM_LIBM_COMPAT_IEEE_ONLY
+ return __ieee754_gammaf_r(x,signgamp);
+#else
+ float y;
+ y = __ieee754_gammaf_r(x,signgamp);
+ if(cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_IEEE) return y;
+ if(!finitef(y)&&finitef(x)) {
+ if(floorf(x)==x&&x<=0.0)
+ return __kernel_standard(x,x,41); /* gamma pole */
+ else
+ return __kernel_standard(x,x,40); /* gamma overflow */
+ } else
+ return y;
+#endif
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF wf_gamma_r.c
diff --git a/ecos/packages/language/c/libm/current/src/float/ieee754-api/wf_hypot.c b/ecos/packages/language/c/libm/current/src/float/ieee754-api/wf_hypot.c
new file mode 100644
index 0000000..59121dd
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/float/ieee754-api/wf_hypot.c
@@ -0,0 +1,102 @@
+//===========================================================================
+//
+// wf_hypot.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 2012-03-08
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/*
+ * wrapper hypotf(x,y)
+ */
+
+#include "mathincl/fdlibm.h"
+
+#ifdef __STDC__
+ float hypotf(float x, float y) /* wrapper hypotf */
+#else
+ float hypotf(x,y) /* wrapper hypotf */
+ float x,y;
+#endif
+{
+#ifdef CYGSEM_LIBM_COMPAT_IEEE_ONLY
+ return __ieee754_hypotf(x,y);
+#else
+ float z;
+ z = __ieee754_hypotf(x,y);
+ if(cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_IEEE) return z;
+ if((!finitef(z))&&finitef(x)&&finitef(y))
+ return __kernel_standard(x,y,4); /* hypot overflow */
+ else
+ return z;
+#endif
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF wf_hypot.c
diff --git a/ecos/packages/language/c/libm/current/src/float/ieee754-api/wf_j0.c b/ecos/packages/language/c/libm/current/src/float/ieee754-api/wf_j0.c
new file mode 100644
index 0000000..8565c25
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/float/ieee754-api/wf_j0.c
@@ -0,0 +1,129 @@
+//===========================================================================
+//
+// w_j0.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 2012-03-08
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/*
+ * wrapper j0f(float x), y0f(float x)
+ */
+
+#include "mathincl/fdlibm.h"
+
+#ifdef __STDC__
+ float j0f(float x) /* wrapper j0f */
+#else
+ float j0f(x) /* wrapper j0f */
+ float x;
+#endif
+{
+#ifdef CYGSEM_LIBM_COMPAT_IEEE_ONLY
+ return __ieee754_j0f(x);
+#else
+ float z = __ieee754_j0f(x);
+ if(cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_IEEE || isnanf(x)) return z;
+ if(fabsf(x)>(float)X_TLOSS) {
+ return __kernel_standard(x,x,34); /* j0(|x|>X_TLOSS) */
+ } else
+ return z;
+#endif
+}
+
+#ifdef __STDC__
+ float y0f(float x) /* wrapper y0f */
+#else
+ float y0f(x) /* wrapper y0f */
+ float x;
+#endif
+{
+#ifdef CYGSEM_LIBM_COMPAT_IEEE_ONLY
+ return __ieee754_y0f(x);
+#else
+ float z;
+ z = __ieee754_y0f(x);
+ if(cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_IEEE || isnanf(x) ) return z;
+ if(x <= 0.0){
+ if(x==0.0)
+ /* d= -one/(x-x); */
+ return __kernel_standard(x,x,8);
+ else
+ /* d = zero/(x-x); */
+ return __kernel_standard(x,x,9);
+ }
+ if(x>X_TLOSS) {
+ return __kernel_standard(x,x,35); /* y0(x>X_TLOSS) */
+ } else
+ return z;
+#endif
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF wf_j0.c
diff --git a/ecos/packages/language/c/libm/current/src/float/ieee754-api/wf_j1.c b/ecos/packages/language/c/libm/current/src/float/ieee754-api/wf_j1.c
new file mode 100644
index 0000000..6bb8cc5
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/float/ieee754-api/wf_j1.c
@@ -0,0 +1,130 @@
+//===========================================================================
+//
+// wf_j1.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 2012-03-08
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/*
+ * wrapper of j1f,y1f
+ */
+
+#include "mathincl/fdlibm.h"
+
+#ifdef __STDC__
+ float j1f(float x) /* wrapper j1f */
+#else
+ float j1f(x) /* wrapper j1f */
+ float x;
+#endif
+{
+#ifdef CYGSEM_LIBM_COMPAT_IEEE_ONLY
+ return __ieee754_j1f(x);
+#else
+ float z;
+ z = __ieee754_j1f(x);
+ if(cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_IEEE || isnanf(x) ) return z;
+ if(fabs(x)>X_TLOSS) {
+ return __kernel_standard(x,x,36); /* j1(|x|>X_TLOSS) */
+ } else
+ return z;
+#endif
+}
+
+#ifdef __STDC__
+ float y1f(float x) /* wrapper y1f */
+#else
+ float y1f(x) /* wrapper y1f */
+ float x;
+#endif
+{
+#ifdef CYGSEM_LIBM_COMPAT_IEEE_ONLY
+ return __ieee754_y1f(x);
+#else
+ float z;
+ z = __ieee754_y1f(x);
+ if(cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_IEEE || isnanf(x) ) return z;
+ if(x <= 0.0){
+ if(x==0.0)
+ /* d= -one/(x-x); */
+ return __kernel_standard(x,x,10);
+ else
+ /* d = zero/(x-x); */
+ return __kernel_standard(x,x,11);
+ }
+ if(x>X_TLOSS) {
+ return __kernel_standard(x,x,37); /* y1(x>X_TLOSS) */
+ } else
+ return z;
+#endif
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF wf_j1.c
diff --git a/ecos/packages/language/c/libm/current/src/float/ieee754-api/wf_jn.c b/ecos/packages/language/c/libm/current/src/float/ieee754-api/wf_jn.c
new file mode 100644
index 0000000..72a8465
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/float/ieee754-api/wf_jn.c
@@ -0,0 +1,117 @@
+//===========================================================================
+//
+// wf_jn.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 2012-03-08
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+#include "mathincl/fdlibm.h"
+
+ float jnf(int n, float x) /* wrapper jnf */
+{
+#ifdef CYGSEM_LIBM_COMPAT_IEEE_ONLY
+ return __ieee754_jnf(n,x);
+#else
+ float z;
+ z = __ieee754_jnf(n,x);
+ if(cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_IEEE || isnanf(x) ) return z;
+ if(fabsf(x)>(float)X_TLOSS) {
+ return __kernel_standard((double)n,x,38); /* jn(|x|>X_TLOSS,n) */
+ } else
+ return z;
+#endif
+}
+
+
+ float ynf(int n, float x) /* wrapper ynf */
+{
+#ifdef CYGSEM_LIBM_COMPAT_IEEE_ONLY
+ return __ieee754_ynf(n,x);
+#else
+ float z;
+ z = __ieee754_ynf(n,x);
+ if(cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_IEEE || isnanf(x) ) return z;
+ if(x <= 0.0){
+ if(x==0.0)
+ /* d= -one/(x-x); */
+ return __kernel_standard((double)n,x,12);
+ else
+ /* d = zero/(x-x); */
+ return __kernel_standard((double)n,x,13);
+ }
+ if(x>X_TLOSS) {
+ return __kernel_standard((double)n,x,39); /* yn(x>X_TLOSS,n) */
+ } else
+ return z;
+#endif
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF wf_jn.c
diff --git a/ecos/packages/language/c/libm/current/src/float/ieee754-api/wf_lgamma.c b/ecos/packages/language/c/libm/current/src/float/ieee754-api/wf_lgamma.c
new file mode 100644
index 0000000..4afd40a
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/float/ieee754-api/wf_lgamma.c
@@ -0,0 +1,103 @@
+//===========================================================================
+//
+// wf_lgamma.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 2012-03-08
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ *
+ */
+
+#include <math.h>
+#include "mathincl/fdlibm.h"
+
+#ifdef __STDC__
+ float lgammaf(float x)
+#else
+ float lgammaf(x)
+ float x;
+#endif
+{
+#ifdef CYGSEM_LIBM_COMPAT_IEEE_ONLY
+ return __ieee754_lgammaf_r(x,&signgam);
+#else
+ float y;
+ y = __ieee754_lgammaf_r(x,&signgam);
+ if(cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_IEEE) return y;
+ if(!finitef(y)&&finitef(x)) {
+ if(floorf(x)==x&&x<=0.0)
+ return __kernel_standard(x,x,15); /* lgamma pole */
+ else
+ return __kernel_standard(x,x,14); /* lgamma overflow */
+ } else
+ return y;
+#endif
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF wf_lgamma.c
diff --git a/ecos/packages/language/c/libm/current/src/float/ieee754-api/wf_lgamma_r.c b/ecos/packages/language/c/libm/current/src/float/ieee754-api/wf_lgamma_r.c
new file mode 100644
index 0000000..2848fda
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/float/ieee754-api/wf_lgamma_r.c
@@ -0,0 +1,105 @@
+//===========================================================================
+//
+// w_lgamma_r.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 2012-03-08
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/*
+ * wrapper float lgammaf_r(float x, int *signgamp)
+ */
+
+#include "mathincl/fdlibm.h"
+
+#ifdef __STDC__
+ float lgammaf_r(float x, int *signgamp) /* wrapper lgammaf_r */
+#else
+ float lgammaf_r(x,signgamp) /* wrapper lgammaf_r */
+ float x; int *signgamp;
+#endif
+{
+#ifdef CYGSEM_LIBM_COMPAT_IEEE_ONLY
+ return __ieee754_lgammaf_r(x,signgamp);
+#else
+ float y;
+ y = __ieee754_lgammaf_r(x,signgamp);
+ if(cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_IEEE) return y;
+ if(!finitef(y)&&finitef(x)) {
+ if(floorf(x)==x&&x<=0.0)
+ return __kernel_standard(x,x,15); /* lgamma pole */
+ else
+ return __kernel_standard(x,x,14); /* lgamma overflow */
+ } else
+ return y;
+#endif
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF wf_lgamma_r.c
diff --git a/ecos/packages/language/c/libm/current/src/float/ieee754-api/wf_log.c b/ecos/packages/language/c/libm/current/src/float/ieee754-api/wf_log.c
new file mode 100644
index 0000000..2ecb08b
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/float/ieee754-api/wf_log.c
@@ -0,0 +1,102 @@
+//===========================================================================
+//
+// wf_log.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 2012-03-08
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/*
+ * wrapper logf(x)
+ */
+
+#include "mathincl/fdlibm.h"
+
+#ifdef __STDC__
+ float logf(float x) /* wrapper logf */
+#else
+ float logf(x) /* wrapper logf */
+ float x;
+#endif
+{
+#ifdef CYGSEM_LIBM_COMPAT_IEEE_ONLY
+ return __ieee754_logf(x);
+#else
+ float z;
+ z = __ieee754_logf(x);
+ if(cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_IEEE || isnan(x) || x > 0.0) return z;
+ if(x==0.0)
+ return __kernel_standard_float(x,x,16); /* log(0) */
+ else
+ return __kernel_standard_float(x,x,17); /* log(x<0) */
+#endif
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF wf_log.c
diff --git a/ecos/packages/language/c/libm/current/src/float/ieee754-api/wf_log10.c b/ecos/packages/language/c/libm/current/src/float/ieee754-api/wf_log10.c
new file mode 100644
index 0000000..5733b84
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/float/ieee754-api/wf_log10.c
@@ -0,0 +1,111 @@
+//===========================================================================
+//
+// w_log10.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 2012-03-08
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/*
+ * wrapper log10f(X)
+ */
+
+#include "mathincl/fdlibm.h"
+
+#ifdef __STDC__
+ float log10f(float x) /* wrapper log10f */
+#else
+ float log10f(x) /* wrapper log10f */
+ float x;
+#endif
+{
+#ifdef CYGSEM_LIBM_COMPAT_IEEE_ONLY
+ return __ieee754_log10f(x);
+#else
+ float z;
+ cyg_uint32 compat_mode = cyg_libm_get_compat_mode();
+
+ z = __ieee754_log10f(x);
+ if(
+#ifdef CYGOPT_LIBM_COMPAT_POSIX_IEEE
+ compat_mode == CYGNUM_LIBM_COMPAT_POSIX ||
+#endif
+ compat_mode == CYGNUM_LIBM_COMPAT_IEEE || isnanf(x)) return z;
+ if(x<=0.0) {
+ if(x==0.0)
+ return __kernel_standard(x,x,18); /* log10(0) */
+ else
+ return __kernel_standard(x,x,19); /* log10(x<0) */
+ } else
+ return z;
+#endif
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF wf_log10.c
diff --git a/ecos/packages/language/c/libm/current/src/float/ieee754-api/wf_pow.c b/ecos/packages/language/c/libm/current/src/float/ieee754-api/wf_pow.c
new file mode 100644
index 0000000..757f17c
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/float/ieee754-api/wf_pow.c
@@ -0,0 +1,119 @@
+//========================================================================
+//
+// wf_pow.c
+//
+// Part of the standard mathematical function library
+//
+//========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: visar, ilijak
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/*
+ * wrapper powf(x,y) return x**y
+ */
+
+#include "mathincl/fdlibm.h"
+
+ float powf(float x, float y) /* wrapper powf */
+{
+#ifdef CYGSEM_LIBM_COMPAT_IEEE_ONLY
+ return __ieee754_powf(x,y);
+#else
+ float z;
+ z=__ieee754_powf(x,y);
+ if(cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_IEEE||
+ isnan(y))
+ return z;
+ if(isnan(x)) {
+ if(y==0.0)
+ return __kernel_standard(x,y,42); /* pow(NaN,0.0) */
+ else
+ return z;
+ }
+ if(x==0.0){
+ if(y==0.0)
+ return __kernel_standard(x,y,20); /* pow(0.0,0.0) */
+ if(finitef(y)&&y<0.0)
+ return __kernel_standard(x,y,23); /* pow(0.0,negative) */
+ return z;
+ }
+ if(!finitef(z)) {
+ if(finitef(x)&&finitef(y)) {
+ if(isnan(z))
+ return __kernel_standard(x,y,24);/* pow neg**non-int */
+ else
+ return __kernel_standard(x,y,21); /* pow overflow */
+ }
+ }
+ if(z==0.0&&finitef(x)&&finitef(y))
+ return __kernel_standard(x,y,22); /* pow underflow */
+ return z;
+#endif
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF wf_pow.c
diff --git a/ecos/packages/language/c/libm/current/src/float/ieee754-api/wf_remainder.c b/ecos/packages/language/c/libm/current/src/float/ieee754-api/wf_remainder.c
new file mode 100644
index 0000000..eec5ec3
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/float/ieee754-api/wf_remainder.c
@@ -0,0 +1,103 @@
+//===========================================================================
+//
+// wf_remainder.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 2012-03-08
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/*
+ * wrapper remainderf(x,p)
+ */
+
+#include "mathincl/fdlibm.h"
+//#include <errno.h>
+
+#ifdef __STDC__
+ float remainderf(float x, float y) /* wrapper remainder */
+#else
+ float remainderf(x,y) /* wrapper remainder */
+ float x,y;
+#endif
+{
+#ifdef CYGSEM_LIBM_COMPAT_IEEE_ONLY
+ return __ieee754_remainderf(x,y);
+#else
+ double z;
+ z = __ieee754_remainderf(x,y);
+ if(cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_IEEE || isnanf(y)) return z;
+ if(y==0.0)
+ return __kernel_standard(x,y,28); /* remainder(x,0) */
+ else
+ return z;
+#endif
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF wf_remainder.c
diff --git a/ecos/packages/language/c/libm/current/src/float/ieee754-api/wf_scalb.c b/ecos/packages/language/c/libm/current/src/float/ieee754-api/wf_scalb.c
new file mode 100644
index 0000000..26b8aa2
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/float/ieee754-api/wf_scalb.c
@@ -0,0 +1,124 @@
+//===========================================================================
+//
+// wf_scalb.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 2012-03-08
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/*
+ * wrapper scalbf(float x, float fn) is provide for
+ * passing various standard test suite. One
+ * should use scalbn() instead.
+ */
+
+// CONFIGURATION
+
+
+#include "mathincl/fdlibm.h"
+#ifndef CYGSEM_LIBM_COMPAT_IEEE_ONLY
+# include <errno.h>
+#endif
+
+#ifdef __STDC__
+#ifdef CYGFUN_LIBM_SVID3_scalb
+ float scalbf(float x, float fn) /* wrapper scalbf */
+#else
+ float scalbf(float x, int fn) /* wrapper scalbf */
+#endif
+#else
+ float scalbf(x,fn) /* wrapper scalbf */
+#ifdef CYGFUN_LIBM_SVID3_scalb
+ float x,fn;
+#else
+ float x; int fn;
+#endif
+#endif
+{
+#ifdef CYGSEM_LIBM_COMPAT_IEEE_ONLY
+ return __ieee754_scalbf(x,fn);
+#else
+ double z;
+ z = __ieee754_scalbf(x,fn);
+ if(cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_IEEE) return z;
+ if(!(finitef(z)||isnanf(z))&&finitef(x)) {
+ return __kernel_standard(x,(double)fn,32); /* scalb overflow */
+ }
+ if(z==0.0&&z!=x) {
+ return __kernel_standard(x,(double)fn,33); /* scalb underflow */
+ }
+#ifdef CYGFUN_LIBM_SVID3_scalb
+ if(!finitef(fn)) errno = ERANGE;
+#endif
+ return z;
+#endif
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF wf_scalb.c
diff --git a/ecos/packages/language/c/libm/current/src/float/ieee754-api/wf_sinh.c b/ecos/packages/language/c/libm/current/src/float/ieee754-api/wf_sinh.c
new file mode 100644
index 0000000..193c122
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/float/ieee754-api/wf_sinh.c
@@ -0,0 +1,104 @@
+//===========================================================================
+//
+// wf_sinh.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 2012-03-08
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/*
+ * wrapper sinhf(x)
+ */
+
+// CONFIGURATION
+
+#include "mathincl/fdlibm.h"
+
+#ifdef __STDC__
+ float sinhf(float x) /* wrapper sinhf */
+#else
+ float sinhf(x) /* wrapper sinhf */
+ float x;
+#endif
+{
+#ifdef CYGSEM_LIBM_COMPAT_IEEE_ONLY
+ return __ieee754_sinhf(x);
+#else
+ float z;
+ z = __ieee754_sinhf(x);
+ if(cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_IEEE) return z;
+ if(!finitef(z)&&finitef(x)) {
+ return __kernel_standard(x,x,25); /* sinh overflow */
+ } else
+ return z;
+#endif
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF wf_sinh.c
diff --git a/ecos/packages/language/c/libm/current/src/float/ieee754-api/wf_sqrt.c b/ecos/packages/language/c/libm/current/src/float/ieee754-api/wf_sqrt.c
new file mode 100644
index 0000000..94a65ec
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/float/ieee754-api/wf_sqrt.c
@@ -0,0 +1,98 @@
+//===========================================================================
+//
+// wf_sqrt.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 2012-03-08
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/*
+ * wrapper sqrtf(x)
+ */
+
+#include "mathincl/fdlibm.h"
+
+float sqrtf(float x) /* wrapper sqrtf */
+
+{
+#ifdef CYGSEM_LIBM_COMPAT_IEEE_ONLY
+ return __ieee754_sqrtf(x);
+#else
+ float z;
+ z = __ieee754_sqrtf(x);
+ if(cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_IEEE || isnan(x)) return z;
+ if(x<0.0) {
+ return __kernel_standard(x,x,26); /* sqrt(negative) */
+ } else
+ return z;
+#endif
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF wf_sqrtf.c
diff --git a/ecos/packages/language/c/libm/current/src/float/ieee754-core/ef_acos.c b/ecos/packages/language/c/libm/current/src/float/ieee754-core/ef_acos.c
new file mode 100644
index 0000000..459366a
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/float/ieee754-core/ef_acos.c
@@ -0,0 +1,151 @@
+//===========================================================================
+//
+// ef_acos.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 2012-03-08
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/* ef_acos.c -- float version of e_acos.c.
+ * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+
+#include "mathincl/fdlibm.h"
+
+#ifdef __STDC__
+static const float
+#else
+static float
+#endif
+one = 1.0000000000e+00, /* 0x3F800000 */
+pi = 3.1415925026e+00, /* 0x40490fda */
+pio2_hi = 1.5707962513e+00, /* 0x3fc90fda */
+pio2_lo = 7.5497894159e-08, /* 0x33a22168 */
+pS0 = 1.6666667163e-01, /* 0x3e2aaaab */
+pS1 = -3.2556581497e-01, /* 0xbea6b090 */
+pS2 = 2.0121252537e-01, /* 0x3e4e0aa8 */
+pS3 = -4.0055535734e-02, /* 0xbd241146 */
+pS4 = 7.9153501429e-04, /* 0x3a4f7f04 */
+pS5 = 3.4793309169e-05, /* 0x3811ef08 */
+qS1 = -2.4033949375e+00, /* 0xc019d139 */
+qS2 = 2.0209457874e+00, /* 0x4001572d */
+qS3 = -6.8828397989e-01, /* 0xbf303361 */
+qS4 = 7.7038154006e-02; /* 0x3d9dc62e */
+
+#ifdef __STDC__
+ float __ieee754_acosf(float x)
+#else
+ float __ieee754_acosf(x)
+ float x;
+#endif
+{
+ float z,p,q,r,w,s,c,df;
+ __int32_t hx,ix;
+ hx = CYG_LIBM_WORD(x);
+ ix = hx&0x7fffffff;
+ if(ix==0x3f800000) { /* |x|==1 */
+ if(hx>0) return 0.0; /* acos(1) = 0 */
+ else return pi+(float)2.0*pio2_lo; /* acos(-1)= pi */
+ } else if(ix>0x3f800000) { /* |x| >= 1 */
+ return (x-x)/(x-x); /* acos(|x|>1) is NaN */
+ }
+ if(ix<0x3f000000) { /* |x| < 0.5 */
+ if(ix<=0x23000000) return pio2_hi+pio2_lo;/*if|x|<2**-57*/
+ z = x*x;
+ p = z*(pS0+z*(pS1+z*(pS2+z*(pS3+z*(pS4+z*pS5)))));
+ q = one+z*(qS1+z*(qS2+z*(qS3+z*qS4)));
+ r = p/q;
+ return pio2_hi - (x - (pio2_lo-x*r));
+ } else if (hx<0) { /* x < -0.5 */
+ z = (one+x)*(float)0.5;
+ p = z*(pS0+z*(pS1+z*(pS2+z*(pS3+z*(pS4+z*pS5)))));
+ q = one+z*(qS1+z*(qS2+z*(qS3+z*qS4)));
+ s = __ieee754_sqrtf(z);
+ r = p/q;
+ w = r*s-pio2_lo;
+ return pi - (float)2.0*(s+w);
+ } else { /* x > 0.5 */
+ __int32_t idf;
+ z = (one-x)*(float)0.5;
+ s = __ieee754_sqrtf(z);
+ df = s;
+ idf = CYG_LIBM_WORD(df);
+ SET_FLOAT_WORD(df,idf&0xfffff000);
+ c = (z-df*df)/(s+df);
+ p = z*(pS0+z*(pS1+z*(pS2+z*(pS3+z*(pS4+z*pS5)))));
+ q = one+z*(qS1+z*(qS2+z*(qS3+z*qS4)));
+ r = p/q;
+ w = r*s+c;
+ return (float)2.0*(df+w);
+ }
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF ef_acos.c
diff --git a/ecos/packages/language/c/libm/current/src/float/ieee754-core/ef_acosh.c b/ecos/packages/language/c/libm/current/src/float/ieee754-core/ef_acosh.c
new file mode 100644
index 0000000..814922f
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/float/ieee754-core/ef_acosh.c
@@ -0,0 +1,120 @@
+//===========================================================================
+//
+// ef_acosh.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 2012-03-08
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/* ef_acosh.c -- float version of e_acosh.c.
+ * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ *
+ */
+
+
+#include "mathincl/fdlibm.h"
+
+#ifdef __STDC__
+static const float
+#else
+static float
+#endif
+one = 1.0,
+ln2 = 6.9314718246e-01; /* 0x3f317218 */
+
+#ifdef __STDC__
+ float __ieee754_acoshf(float x)
+#else
+ float __ieee754_acoshf(x)
+ float x;
+#endif
+{
+ float t;
+ __int32_t hx;
+ hx = CYG_LIBM_WORD(x);
+ if(hx<0x3f800000) { /* x < 1 */
+ return (x-x)/(x-x);
+ } else if(hx >=0x4d800000) { /* x > 2**28 */
+ if(!FLT_UWORD_IS_FINITE(hx)) { /* x is inf of NaN */
+ return x+x;
+ } else
+ return __ieee754_logf(x)+ln2; /* acosh(huge)=log(2x) */
+ } else if (hx==0x3f800000) {
+ return 0.0; /* acosh(1) = 0 */
+ } else if (hx > 0x40000000) { /* 2**28 > x > 2 */
+ t=x*x;
+ return __ieee754_logf((float)2.0*x-one/(x+__ieee754_sqrtf(t-one)));
+ } else { /* 1<x<2 */
+ t = x-one;
+ return log1pf(t+__ieee754_sqrtf((float)2.0*t+t*t));
+ }
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF e_acosh.c
diff --git a/ecos/packages/language/c/libm/current/src/float/ieee754-core/ef_asin.c b/ecos/packages/language/c/libm/current/src/float/ieee754-core/ef_asin.c
new file mode 100644
index 0000000..2155db6
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/float/ieee754-core/ef_asin.c
@@ -0,0 +1,151 @@
+//===========================================================================
+//
+// ef_asin.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 2012-03-08
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+
+#include "mathincl/fdlibm.h"
+
+#ifdef __STDC__
+static const float
+#else
+static float
+#endif
+one = 1.0000000000e+00, /* 0x3F800000 */
+huge = 1.000e+30,
+pio2_hi = 1.57079637050628662109375f,
+pio2_lo = -4.37113900018624283e-8f,
+pio4_hi = 0.785398185253143310546875f,
+ /* coefficient for R(x^2) */
+pS0 = 1.6666667163e-01, /* 0x3e2aaaab */
+pS1 = -3.2556581497e-01, /* 0xbea6b090 */
+pS2 = 2.0121252537e-01, /* 0x3e4e0aa8 */
+pS3 = -4.0055535734e-02, /* 0xbd241146 */
+pS4 = 7.9153501429e-04, /* 0x3a4f7f04 */
+pS5 = 3.4793309169e-05, /* 0x3811ef08 */
+qS1 = -2.4033949375e+00, /* 0xc019d139 */
+qS2 = 2.0209457874e+00, /* 0x4001572d */
+qS3 = -6.8828397989e-01, /* 0xbf303361 */
+qS4 = 7.7038154006e-02; /* 0x3d9dc62e */
+
+#ifdef __STDC__
+ float __ieee754_asinf(float x)
+#else
+ float __ieee754_asinf(x)
+ float x;
+#endif
+{
+ float t,w,p,q,c,r,s;
+ __int32_t hx,ix;
+ hx = CYG_LIBM_WORD(x);
+ ix = hx&0x7fffffff;
+ if(ix==0x3f800000) {
+ /* asin(1)=+-pi/2 with inexact */
+ return x*pio2_hi+x*pio2_lo;
+ } else if(ix> 0x3f800000) { /* |x|>= 1 */
+ return (x-x)/(x-x); /* asin(|x|>1) is NaN */
+ } else if (ix<0x3f000000) { /* |x|<0.5 */
+ if(ix<0x32000000) { /* if |x| < 2**-27 */
+ if(huge+x>one) return x;/* return x with inexact if x!=0*/
+ } else {
+ t = x*x;
+ p = t*(pS0+t*(pS1+t*(pS2+t*(pS3+t*(pS4+t*pS5)))));
+ q = one+t*(qS1+t*(qS2+t*(qS3+t*qS4)));
+ w = p/q;
+ return x+x*w;
+ }
+ }
+ /* 1> |x|>= 0.5 */
+ w = one-fabsf(x);
+ t = w*(float)0.5;
+ p = t*(pS0+t*(pS1+t*(pS2+t*(pS3+t*(pS4+t*pS5)))));
+ q = one+t*(qS1+t*(qS2+t*(qS3+t*qS4)));
+ s = __ieee754_sqrtf(t);
+ if(ix>=0x3F79999A) { /* if |x| > 0.975 */
+ w = p/q;
+ t = pio2_hi-((float)2.0*(s+s*w)-pio2_lo);
+ } else {
+ __int32_t iw;
+ w = s;
+ iw = CYG_LIBM_WORD(w);
+ SET_FLOAT_WORD(w,iw&0xfffff000);
+ c = (t-w*w)/(s+w);
+ r = p/q;
+ p = (float)2.0*s*r-(pio2_lo-(float)2.0*c);
+ q = pio4_hi-(float)2.0*w;
+ t = pio4_hi-(p-q);
+ }
+ if(hx>0) return t; else return -t;
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF ef_asin.c
diff --git a/ecos/packages/language/c/libm/current/src/float/ieee754-core/ef_atan2.c b/ecos/packages/language/c/libm/current/src/float/ieee754-core/ef_atan2.c
new file mode 100644
index 0000000..d71e9c9
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/float/ieee754-core/ef_atan2.c
@@ -0,0 +1,167 @@
+//===========================================================================
+//
+// e_atan2.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 2012-03-08
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/* ef_atan2.c -- float version of e_atan2.c.
+ * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ *
+ */
+
+#include "mathincl/fdlibm.h"
+
+#ifdef __STDC__
+static const float
+#else
+static float
+#endif
+tiny = 1.0e-30,
+zero = 0.0,
+pi_o_4 = 7.8539818525e-01, /* 0x3f490fdb */
+pi_o_2 = 1.5707963705e+00, /* 0x3fc90fdb */
+pi = 3.1415927410e+00, /* 0x40490fdb */
+pi_lo = -8.7422776573e-08; /* 0xb3bbbd2e */
+
+#ifdef __STDC__
+ float __ieee754_atan2f(float y, float x)
+#else
+ float __ieee754_atan2f(y,x)
+ float y,x;
+#endif
+{
+ float z;
+ __int32_t k,m,hx,hy,ix,iy;
+
+ hx = CYG_LIBM_WORD(x);
+ ix = hx&0x7fffffff;
+ hy = CYG_LIBM_WORD(y);
+ iy = hy&0x7fffffff;
+ if(FLT_UWORD_IS_NAN(ix)||
+ FLT_UWORD_IS_NAN(iy)) /* x or y is NaN */
+ return x+y;
+ if(hx==0x3f800000) return atanf(y); /* x=1.0 */
+ m = ((hy>>31)&1)|((hx>>30)&2); /* 2*sign(x)+sign(y) */
+
+ /* when y = 0 */
+ if(FLT_UWORD_IS_ZERO(iy)) {
+ switch(m) {
+ case 0:
+ case 1: return y; /* atan(+-0,+anything)=+-0 */
+ case 2: return pi+tiny;/* atan(+0,-anything) = pi */
+ case 3: return -pi-tiny;/* atan(-0,-anything) =-pi */
+ }
+ }
+ /* when x = 0 */
+ if(FLT_UWORD_IS_ZERO(ix)) return (hy<0)? -pi_o_2-tiny: pi_o_2+tiny;
+
+ /* when x is INF */
+ if(FLT_UWORD_IS_INFINITE(ix)) {
+ if(FLT_UWORD_IS_INFINITE(iy)) {
+ switch(m) {
+ case 0: return pi_o_4+tiny;/* atan(+INF,+INF) */
+ case 1: return -pi_o_4-tiny;/* atan(-INF,+INF) */
+ case 2: return (float)3.0*pi_o_4+tiny;/*atan(+INF,-INF)*/
+ case 3: return (float)-3.0*pi_o_4-tiny;/*atan(-INF,-INF)*/
+ }
+ } else {
+ switch(m) {
+ case 0: return zero ; /* atan(+...,+INF) */
+ case 1: return -zero ; /* atan(-...,+INF) */
+ case 2: return pi+tiny ; /* atan(+...,-INF) */
+ case 3: return -pi-tiny ; /* atan(-...,-INF) */
+ }
+ }
+ }
+ /* when y is INF */
+ if(FLT_UWORD_IS_INFINITE(iy)) return (hy<0)? -pi_o_2-tiny: pi_o_2+tiny;
+
+ /* compute y/x */
+ k = (iy-ix)>>23;
+ if(k > 60) z=pi_o_2+(float)0.5*pi_lo; /* |y/x| > 2**60 */
+ else if(hx<0&&k<-60) z=0.0; /* |y|/x < -2**60 */
+ else z=atanf(fabsf(y/x)); /* safe to do y/x */
+ switch (m) {
+ case 0: return z ; /* atan(+,+) */
+ case 1: {
+ __uint32_t zh;
+ zh = CYG_LIBM_WORD(z);
+ SET_FLOAT_WORD(z,zh ^ 0x80000000);
+ }
+ return z ; /* atan(-,+) */
+ case 2: return pi-(z-pi_lo);/* atan(+,-) */
+ default: /* case 3 */
+ return (z-pi_lo)-pi;/* atan(-,-) */
+ }
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF ef_atan2.c
diff --git a/ecos/packages/language/c/libm/current/src/float/ieee754-core/ef_atanh.c b/ecos/packages/language/c/libm/current/src/float/ieee754-core/ef_atanh.c
new file mode 100644
index 0000000..774fcf7
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/float/ieee754-core/ef_atanh.c
@@ -0,0 +1,121 @@
+//===========================================================================
+//
+// ef_atanh.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 2012-03-08
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/* ef_atanh.c -- float version of e_atanh.c.
+ * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ *
+ */
+
+
+#include "mathincl/fdlibm.h"
+
+#ifdef __STDC__
+static const float one = 1.0, huge = 1e30;
+#else
+static float one = 1.0, huge = 1e30;
+#endif
+
+#ifdef __STDC__
+static const float zero = 0.0;
+#else
+static float zero = 0.0;
+#endif
+
+#ifdef __STDC__
+ float __ieee754_atanhf(float x)
+#else
+ float __ieee754_atanhf(x)
+ float x;
+#endif
+{
+ float t;
+ __int32_t hx,ix;
+ hx = CYG_LIBM_WORD(x);
+ ix = hx&0x7fffffff;
+ if (ix>0x3f800000) /* |x|>1 */
+ return (x-x)/(x-x);
+ if(ix==0x3f800000)
+ return x/zero;
+ if(ix<0x31800000&&(huge+x)>zero) return x; /* x<2**-28 */
+ SET_FLOAT_WORD(x,ix);
+ if(ix<0x3f000000) { /* x < 0.5 */
+ t = x+x;
+ t = (float)0.5*log1pf(t+t*x/(one-x));
+ } else
+ t = (float)0.5*log1pf((x+x)/(one-x));
+ if(hx>=0) return t; else return -t;
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF ef_atanh.c
diff --git a/ecos/packages/language/c/libm/current/src/float/ieee754-core/ef_cosh.c b/ecos/packages/language/c/libm/current/src/float/ieee754-core/ef_cosh.c
new file mode 100644
index 0000000..ee599bb
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/float/ieee754-core/ef_cosh.c
@@ -0,0 +1,134 @@
+//===========================================================================
+//
+// ef_cosh.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 2012-03-08
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/* ef_cosh.c -- float version of e_cosh.c.
+ * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+
+#include "mathincl/fdlibm.h"
+
+#ifdef __STDC__
+static const float one = 1.0, half=0.5, huge = 1.0e30;
+#else
+static float one = 1.0, half=0.5, huge = 1.0e30;
+#endif
+
+#ifdef __STDC__
+ float __ieee754_coshf(float x)
+#else
+ float __ieee754_coshf(x)
+ float x;
+#endif
+{
+ float t,w;
+ __int32_t ix;
+
+ ix = CYG_LIBM_WORD(x);
+ ix &= 0x7fffffff;
+
+ /* x is INF or NaN */
+ if(!FLT_UWORD_IS_FINITE(ix)) return x*x;
+
+ /* |x| in [0,0.5*ln2], return 1+expm1(|x|)^2/(2*exp(|x|)) */
+ if(ix<0x3eb17218) {
+ t = expm1f(fabsf(x));
+ w = one+t;
+ if (ix<0x24000000) return w; /* cosh(tiny) = 1 */
+ return one+(t*t)/(w+w);
+ }
+
+ /* |x| in [0.5*ln2,22], return (exp(|x|)+1/exp(|x|)/2; */
+ if (ix < 0x41b00000) {
+ t = __ieee754_expf(fabsf(x));
+ return half*t+half/t;
+ }
+
+ /* |x| in [22, log(maxdouble)] return half*exp(|x|) */
+ if (ix <= FLT_UWORD_LOG_MAX)
+ return half*__ieee754_expf(fabsf(x));
+
+ /* |x| in [log(maxdouble), overflowthresold] */
+ if (ix <= FLT_UWORD_LOG_2MAX) {
+ w = __ieee754_expf(half*fabsf(x));
+ t = half*w;
+ return t*w;
+ }
+
+ /* |x| > overflowthresold, cosh(x) overflow */
+ return huge*huge;
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF ef_cosh.c
diff --git a/ecos/packages/language/c/libm/current/src/float/ieee754-core/ef_exp.c b/ecos/packages/language/c/libm/current/src/float/ieee754-core/ef_exp.c
new file mode 100644
index 0000000..128670f
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/float/ieee754-core/ef_exp.c
@@ -0,0 +1,165 @@
+//===========================================================================
+//
+// ef_exp.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 2012-03-08
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/* ef_exp.c -- float version of e_exp.c.
+ * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+
+#include "mathincl/fdlibm.h"
+
+#ifdef __STDC__
+static const float
+#else
+static float
+#endif
+one = 1.0,
+halF[2] = {0.5,-0.5,},
+huge = 1.0e+30,
+twom100 = 7.8886090522e-31, /* 2**-100=0x0d800000 */
+ln2HI[2] ={ 6.9313812256e-01, /* 0x3f317180 */
+ -6.9313812256e-01,}, /* 0xbf317180 */
+ln2LO[2] ={ 9.0580006145e-06, /* 0x3717f7d1 */
+ -9.0580006145e-06,}, /* 0xb717f7d1 */
+invln2 = 1.4426950216e+00, /* 0x3fb8aa3b */
+P1 = 1.6666667163e-01, /* 0x3e2aaaab */
+P2 = -2.7777778450e-03, /* 0xbb360b61 */
+P3 = 6.6137559770e-05, /* 0x388ab355 */
+P4 = -1.6533901999e-06, /* 0xb5ddea0e */
+P5 = 4.1381369442e-08; /* 0x3331bb4c */
+
+#ifdef __STDC__
+ float __ieee754_expf(float x) /* default IEEE double exp */
+#else
+ float __ieee754_expf(x) /* default IEEE double exp */
+ float x;
+#endif
+{
+ float y,hi,lo,c,t;
+ __int32_t k,xsb,sx;
+ __uint32_t hx;
+
+ sx = CYG_LIBM_WORD(x);
+ xsb = (sx>>31)&1; /* sign bit of x */
+ hx = sx & 0x7fffffff; /* high word of |x| */
+
+ /* filter out non-finite argument */
+ if(FLT_UWORD_IS_NAN(hx))
+ return x+x; /* NaN */
+ if(FLT_UWORD_IS_INFINITE(hx))
+ return (xsb==0)? x:0.0; /* exp(+-inf)={inf,0} */
+ if(sx > FLT_UWORD_LOG_MAX)
+ return huge*huge; /* overflow */
+ if(sx < 0 && hx > FLT_UWORD_LOG_MIN)
+ return twom100*twom100; /* underflow */
+
+ /* argument reduction */
+ if(hx > 0x3eb17218) { /* if |x| > 0.5 ln2 */
+ if(hx < 0x3F851592) { /* and |x| < 1.5 ln2 */
+ hi = x-ln2HI[xsb]; lo=ln2LO[xsb]; k = 1-xsb-xsb;
+ } else {
+ k = invln2*x+halF[xsb];
+ t = k;
+ hi = x - t*ln2HI[0]; /* t*ln2HI is exact here */
+ lo = t*ln2LO[0];
+ }
+ x = hi - lo;
+ }
+ else if(hx < 0x31800000) { /* when |x|<2**-28 */
+ if(huge+x>one)
+ return one+x;/* trigger inexact */
+ else // VAE
+ k = 0;
+ }
+ else k = 0;
+
+ /* x is now in primary range */
+ t = x*x;
+ c = x - t*(P1+t*(P2+t*(P3+t*(P4+t*P5))));
+ if(k==0) return one-((x*c)/(c-(float)2.0)-x);
+ else y = one-((lo-(x*c)/((float)2.0-c))-hi);
+ if(k >= -125) {
+ __uint32_t hy;
+ hy = CYG_LIBM_WORD(y);
+ SET_FLOAT_WORD(y,hy+(k<<23)); /* add k to y's exponent */
+ return y;
+ } else {
+ __uint32_t hy;
+ hy = CYG_LIBM_WORD(y);
+ SET_FLOAT_WORD(y,hy+((k+100)<<23)); /* add k to y's exponent */
+ return y*twom100;
+ }
+}
+#endif // ifdef CYGPKG_LIBM
+
+// EOF ef_exp.c
diff --git a/ecos/packages/language/c/libm/current/src/float/ieee754-core/ef_fmod.c b/ecos/packages/language/c/libm/current/src/float/ieee754-core/ef_fmod.c
new file mode 100644
index 0000000..7fb4135
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/float/ieee754-core/ef_fmod.c
@@ -0,0 +1,180 @@
+//===========================================================================
+//
+// ef_fmod.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 2012-03-08
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/* ef_fmod.c -- float version of e_fmod.c.
+ * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/*
+ * __ieee754_fmodf(x,y)
+ * Return x mod y in exact arithmetic
+ * Method: shift and subtract
+ */
+
+
+#include "mathincl/fdlibm.h"
+
+#ifdef __STDC__
+static const float one = 1.0, Zero[] = {0.0, -0.0,};
+#else
+static float one = 1.0, Zero[] = {0.0, -0.0,};
+#endif
+
+#ifdef __STDC__
+ float __ieee754_fmodf(float x, float y)
+#else
+ float __ieee754_fmodf(x,y)
+ float x,y ;
+#endif
+{
+ __int32_t n,hx,hy,hz,ix,iy,sx,i;
+
+ hx = CYG_LIBM_WORD(x);
+ hy = CYG_LIBM_WORD(y);
+ sx = hx&0x80000000; /* sign of x */
+ hx ^=sx; /* |x| */
+ hy &= 0x7fffffff; /* |y| */
+
+ /* purge off exception values */
+ if(FLT_UWORD_IS_ZERO(hy)||
+ !FLT_UWORD_IS_FINITE(hx)||
+ FLT_UWORD_IS_NAN(hy))
+ return (x*y)/(x*y);
+ if(hx<hy) return x; /* |x|<|y| return x */
+ if(hx==hy)
+ return Zero[(__uint32_t)sx>>31]; /* |x|=|y| return x*0*/
+
+ /* Note: y cannot be zero if we reach here. */
+
+ /* determine ix = ilogb(x) */
+ if(FLT_UWORD_IS_SUBNORMAL(hx)) { /* subnormal x */
+ for (ix = -126,i=(hx<<8); i>0; i<<=1) ix -=1;
+ } else ix = (hx>>23)-127;
+
+ /* determine iy = ilogb(y) */
+ if(FLT_UWORD_IS_SUBNORMAL(hy)) { /* subnormal y */
+ for (iy = -126,i=(hy<<8); i>=0; i<<=1) iy -=1;
+ } else iy = (hy>>23)-127;
+
+ /* set up {hx,lx}, {hy,ly} and align y to x */
+ if(ix >= -126)
+ hx = 0x00800000|(0x007fffff&hx);
+ else { /* subnormal x, shift x to normal */
+ n = -126-ix;
+ hx = hx<<n;
+ }
+ if(iy >= -126)
+ hy = 0x00800000|(0x007fffff&hy);
+ else { /* subnormal y, shift y to normal */
+ n = -126-iy;
+ hy = hy<<n;
+ }
+
+ /* fix point fmod */
+ n = ix - iy;
+ while(n--) {
+ hz=hx-hy;
+ if(hz<0){hx = hx+hx;}
+ else {
+ if(hz==0) /* return sign(x)*0 */
+ return Zero[(__uint32_t)sx>>31];
+ hx = hz+hz;
+ }
+ }
+ hz=hx-hy;
+ if(hz>=0) {hx=hz;}
+
+ /* convert back to floating value and restore the sign */
+ if(hx==0) /* return sign(x)*0 */
+ return Zero[(__uint32_t)sx>>31];
+ while(hx<0x00800000) { /* normalize x */
+ hx = hx+hx;
+ iy -= 1;
+ }
+ if(iy>= -126) { /* normalize output */
+ hx = ((hx-0x00800000)|((iy+127)<<23));
+ SET_FLOAT_WORD(x,hx|sx);
+ } else { /* subnormal output */
+ /* If denormals are not supported, this code will generate a
+ zero representation. */
+ n = -126 - iy;
+ hx >>= n;
+ SET_FLOAT_WORD(x,hx|sx);
+ x *= one; /* create necessary signal */
+ }
+ return x; /* exact output */
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF ef_fmod.c
diff --git a/ecos/packages/language/c/libm/current/src/float/ieee754-core/ef_gamma.c b/ecos/packages/language/c/libm/current/src/float/ieee754-core/ef_gamma.c
new file mode 100644
index 0000000..c252878
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/float/ieee754-core/ef_gamma.c
@@ -0,0 +1,93 @@
+//===========================================================================
+//
+// ef_gamma.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 2012-03-08
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/* @(#)ef_gamma.c 1.3 95/01/18 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunSoft, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ *
+ */
+
+/* __ieee754_gamma(x)
+ * Return the logarithm of the Gamma function of x.
+ *
+ * Method: call __ieee754_gamma_r
+ */
+
+#include <math.h>
+#include "mathincl/fdlibm.h"
+
+float
+__ieee754_gammaf(float x)
+{
+ return __ieee754_gammaf_r(x,&signgam);
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF ef_gamma.c
diff --git a/ecos/packages/language/c/libm/current/src/float/ieee754-core/ef_gamma_r.c b/ecos/packages/language/c/libm/current/src/float/ieee754-core/ef_gamma_r.c
new file mode 100644
index 0000000..9a19e73
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/float/ieee754-core/ef_gamma_r.c
@@ -0,0 +1,106 @@
+//===========================================================================
+//
+// ef_gamma_r.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 2012-03-08
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+/* erf_gamma.c -- float version of er_gamma.c.
+ * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ *
+ */
+
+/* __ieee754_gammaf_r(x, signgamp)
+ * Reentrant version of the logarithm of the Gamma function
+ * with user provide pointer for the sign of Gamma(x).
+ *
+ * Method: See __ieee754_lgammaf_r
+ */
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+#include "mathincl/fdlibm.h"
+
+#ifdef __STDC__
+ float __ieee754_gammaf_r(float x, int *signgamp)
+#else
+ float __ieee754_gammaf_r(x,signgamp)
+ float x; int *signgamp;
+#endif
+{
+ return __ieee754_lgammaf_r(x,signgamp);
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF ef_gamma_r.c
diff --git a/ecos/packages/language/c/libm/current/src/float/ieee754-core/ef_hypot.c b/ecos/packages/language/c/libm/current/src/float/ieee754-core/ef_hypot.c
new file mode 100644
index 0000000..e240cec
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/float/ieee754-core/ef_hypot.c
@@ -0,0 +1,149 @@
+//===========================================================================
+//
+// ef_hypot.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 2012-03-08
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/* ef_hypot.c -- float version of e_hypot.c.
+ * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+
+#include "mathincl/fdlibm.h"
+
+#ifdef __STDC__
+ float __ieee754_hypotf(float x, float y)
+#else
+ float __ieee754_hypotf(x,y)
+ float x, y;
+#endif
+{
+ float a=x,b=y,t1,t2,y1,y2,w;
+ __int32_t j,k,ha,hb;
+
+ ha = CYG_LIBM_WORD(x);
+ ha &= 0x7fffffffL;
+ hb = CYG_LIBM_WORD(y);
+ hb &= 0x7fffffffL;
+ if(hb > ha) {a=y;b=x;j=ha; ha=hb;hb=j;} else {a=x;b=y;}
+ SET_FLOAT_WORD(a,ha); /* a <- |a| */
+ SET_FLOAT_WORD(b,hb); /* b <- |b| */
+ if((ha-hb)>0xf000000L) {return a+b;} /* x/y > 2**30 */
+ k=0;
+ if(ha > 0x58800000L) { /* a>2**50 */
+ if(!FLT_UWORD_IS_FINITE(ha)) { /* Inf or NaN */
+ w = a+b; /* for sNaN */
+ if(FLT_UWORD_IS_INFINITE(ha)) w = a;
+ if(FLT_UWORD_IS_INFINITE(hb)) w = b;
+ return w;
+ }
+ /* scale a and b by 2**-68 */
+ ha -= 0x22000000L; hb -= 0x22000000L; k += 68;
+ SET_FLOAT_WORD(a,ha);
+ SET_FLOAT_WORD(b,hb);
+ }
+ if(hb < 0x26800000L) { /* b < 2**-50 */
+ if(FLT_UWORD_IS_ZERO(hb)) {
+ return a;
+ } else if(FLT_UWORD_IS_SUBNORMAL(hb)) {
+ SET_FLOAT_WORD(t1,0x7e800000L); /* t1=2^126 */
+ b *= t1;
+ a *= t1;
+ k -= 126;
+ } else { /* scale a and b by 2^68 */
+ ha += 0x22000000; /* a *= 2^68 */
+ hb += 0x22000000; /* b *= 2^68 */
+ k -= 68;
+ SET_FLOAT_WORD(a,ha);
+ SET_FLOAT_WORD(b,hb);
+ }
+ }
+ /* medium size a and b */
+ w = a-b;
+ if (w>b) {
+ SET_FLOAT_WORD(t1,ha&0xfffff000L);
+ t2 = a-t1;
+ w = __ieee754_sqrtf(t1*t1-(b*(-b)-t2*(a+t1)));
+ } else {
+ a = a+a;
+ SET_FLOAT_WORD(y1,hb&0xfffff000L);
+ y2 = b - y1;
+ SET_FLOAT_WORD(t1,ha+0x00800000L);
+ t2 = a - t1;
+ w = __ieee754_sqrtf(t1*y1-(w*(-w)-(t1*y2+t2*b)));
+ }
+ if(k!=0) {
+ SET_FLOAT_WORD(t1,0x3f800000L+(k<<23));
+ return t1*w;
+ } else return w;
+}
+#endif // ifdef CYGPKG_LIBM
+
+// EOF ef_hypot.c
diff --git a/ecos/packages/language/c/libm/current/src/float/ieee754-core/ef_j0.c b/ecos/packages/language/c/libm/current/src/float/ieee754-core/ef_j0.c
new file mode 100644
index 0000000..5ae22de
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/float/ieee754-core/ef_j0.c
@@ -0,0 +1,506 @@
+//===========================================================================
+//
+// ef_j0.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 2012-03-08
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/* ef_j0.c -- float version of e_j0.c.
+ * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+
+#include "mathincl/fdlibm.h"
+
+#ifdef __STDC__
+static float pzerof(float), qzerof(float);
+#else
+static float pzerof(), qzerof();
+#endif
+
+#ifdef __STDC__
+static const float
+#else
+static float
+#endif
+huge = 1e30,
+one = 1.0,
+invsqrtpi= 5.6418961287e-01, /* 0x3f106ebb */
+tpi = 6.3661974669e-01, /* 0x3f22f983 */
+ /* R0/S0 on [0, 2.00] */
+R02 = 1.5625000000e-02, /* 0x3c800000 */
+R03 = -1.8997929874e-04, /* 0xb947352e */
+R04 = 1.8295404516e-06, /* 0x35f58e88 */
+R05 = -4.6183270541e-09, /* 0xb19eaf3c */
+S01 = 1.5619102865e-02, /* 0x3c7fe744 */
+S02 = 1.1692678527e-04, /* 0x38f53697 */
+S03 = 5.1354652442e-07, /* 0x3509daa6 */
+S04 = 1.1661400734e-09; /* 0x30a045e8 */
+
+#ifdef __STDC__
+static const float zero = 0.0;
+#else
+static float zero = 0.0;
+#endif
+
+#ifdef __STDC__
+ float __ieee754_j0f(float x)
+#else
+ float __ieee754_j0f(x)
+ float x;
+#endif
+{
+ float z, s,c,ss,cc,r,u,v;
+ __int32_t hx,ix;
+
+ hx = CYG_LIBM_WORD(x);
+ ix = hx&0x7fffffff;
+ if(!FLT_UWORD_IS_FINITE(ix)) return one/(x*x);
+ x = fabsf(x);
+ if(ix >= 0x40000000) { /* |x| >= 2.0 */
+ s = sinf(x);
+ c = cosf(x);
+ ss = s-c;
+ cc = s+c;
+ if(ix<=FLT_UWORD_HALF_MAX) { /* make sure x+x not overflow */
+ z = -cosf(x+x);
+ if ((s*c)<zero) cc = z/ss;
+ else ss = z/cc;
+ }
+ /*
+ * j0(x) = 1/sqrt(pi) * (P(0,x)*cc - Q(0,x)*ss) / sqrt(x)
+ * y0(x) = 1/sqrt(pi) * (P(0,x)*ss + Q(0,x)*cc) / sqrt(x)
+ */
+ if(ix>0x80000000) z = (invsqrtpi*cc)/__ieee754_sqrtf(x);
+ else {
+ u = pzerof(x); v = qzerof(x);
+ z = invsqrtpi*(u*cc-v*ss)/__ieee754_sqrtf(x);
+ }
+ return z;
+ }
+ if(ix<0x39000000) { /* |x| < 2**-13 */
+ if(huge+x>one) { /* raise inexact if x != 0 */
+ if(ix<0x32000000) return one; /* |x|<2**-27 */
+ else return one - (float)0.25*x*x;
+ }
+ }
+ z = x*x;
+ r = z*(R02+z*(R03+z*(R04+z*R05)));
+ s = one+z*(S01+z*(S02+z*(S03+z*S04)));
+ if(ix < 0x3F800000) { /* |x| < 1.00 */
+ return one + z*((float)-0.25+(r/s));
+ } else {
+ u = (float)0.5*x;
+ return((one+u)*(one-u)+z*(r/s));
+ }
+}
+
+#ifdef __STDC__
+static const float
+#else
+static float
+#endif
+u00 = -7.3804296553e-02, /* 0xbd9726b5 */
+u01 = 1.7666645348e-01, /* 0x3e34e80d */
+u02 = -1.3818567619e-02, /* 0xbc626746 */
+u03 = 3.4745343146e-04, /* 0x39b62a69 */
+u04 = -3.8140706238e-06, /* 0xb67ff53c */
+u05 = 1.9559013964e-08, /* 0x32a802ba */
+u06 = -3.9820518410e-11, /* 0xae2f21eb */
+v01 = 1.2730483897e-02, /* 0x3c509385 */
+v02 = 7.6006865129e-05, /* 0x389f65e0 */
+v03 = 2.5915085189e-07, /* 0x348b216c */
+v04 = 4.4111031494e-10; /* 0x2ff280c2 */
+
+#ifdef __STDC__
+ float __ieee754_y0f(float x)
+#else
+ float __ieee754_y0f(x)
+ float x;
+#endif
+{
+ float z, s,c,ss,cc,u,v;
+ __int32_t hx,ix;
+
+ hx = CYG_LIBM_WORD(x);
+ ix = 0x7fffffff&hx;
+ /* Y0(NaN) is NaN, y0(-inf) is Nan, y0(inf) is 0 */
+ if(!FLT_UWORD_IS_FINITE(ix)) return one/(x+x*x);
+ if(FLT_UWORD_IS_ZERO(ix)) return -one/zero;
+ if(hx<0) return zero/zero;
+ if(ix >= 0x40000000) { /* |x| >= 2.0 */
+ /* y0(x) = sqrt(2/(pi*x))*(p0(x)*sin(x0)+q0(x)*cos(x0))
+ * where x0 = x-pi/4
+ * Better formula:
+ * cos(x0) = cos(x)cos(pi/4)+sin(x)sin(pi/4)
+ * = 1/sqrt(2) * (sin(x) + cos(x))
+ * sin(x0) = sin(x)cos(3pi/4)-cos(x)sin(3pi/4)
+ * = 1/sqrt(2) * (sin(x) - cos(x))
+ * To avoid cancellation, use
+ * sin(x) +- cos(x) = -cos(2x)/(sin(x) -+ cos(x))
+ * to compute the worse one.
+ */
+ s = sinf(x);
+ c = cosf(x);
+ ss = s-c;
+ cc = s+c;
+ /*
+ * j0(x) = 1/sqrt(pi) * (P(0,x)*cc - Q(0,x)*ss) / sqrt(x)
+ * y0(x) = 1/sqrt(pi) * (P(0,x)*ss + Q(0,x)*cc) / sqrt(x)
+ */
+ if(ix<=FLT_UWORD_HALF_MAX) { /* make sure x+x not overflow */
+ z = -cosf(x+x);
+ if ((s*c)<zero) cc = z/ss;
+ else ss = z/cc;
+ }
+ if(ix>0x80000000) z = (invsqrtpi*ss)/__ieee754_sqrtf(x);
+ else {
+ u = pzerof(x); v = qzerof(x);
+ z = invsqrtpi*(u*ss+v*cc)/__ieee754_sqrtf(x);
+ }
+ return z;
+ }
+ if(ix<=0x32000000) { /* x < 2**-27 */
+ return(u00 + tpi*__ieee754_logf(x));
+ }
+ z = x*x;
+ u = u00+z*(u01+z*(u02+z*(u03+z*(u04+z*(u05+z*u06)))));
+ v = one+z*(v01+z*(v02+z*(v03+z*v04)));
+ return(u/v + tpi*(__ieee754_j0f(x)*__ieee754_logf(x)));
+}
+
+/* The asymptotic expansions of pzero is
+ * 1 - 9/128 s^2 + 11025/98304 s^4 - ..., where s = 1/x.
+ * For x >= 2, We approximate pzero by
+ * pzero(x) = 1 + (R/S)
+ * where R = pR0 + pR1*s^2 + pR2*s^4 + ... + pR5*s^10
+ * S = 1 + pS0*s^2 + ... + pS4*s^10
+ * and
+ * | pzero(x)-1-R/S | <= 2 ** ( -60.26)
+ */
+#ifdef __STDC__
+static const float pR8[6] = { /* for x in [inf, 8]=1/[0,0.125] */
+#else
+static float pR8[6] = { /* for x in [inf, 8]=1/[0,0.125] */
+#endif
+ 0.0000000000e+00, /* 0x00000000 */
+ -7.0312500000e-02, /* 0xbd900000 */
+ -8.0816707611e+00, /* 0xc1014e86 */
+ -2.5706311035e+02, /* 0xc3808814 */
+ -2.4852163086e+03, /* 0xc51b5376 */
+ -5.2530439453e+03, /* 0xc5a4285a */
+};
+#ifdef __STDC__
+static const float pS8[5] = {
+#else
+static float pS8[5] = {
+#endif
+ 1.1653436279e+02, /* 0x42e91198 */
+ 3.8337448730e+03, /* 0x456f9beb */
+ 4.0597855469e+04, /* 0x471e95db */
+ 1.1675296875e+05, /* 0x47e4087c */
+ 4.7627726562e+04, /* 0x473a0bba */
+};
+#ifdef __STDC__
+static const float pR5[6] = { /* for x in [8,4.5454]=1/[0.125,0.22001] */
+#else
+static float pR5[6] = { /* for x in [8,4.5454]=1/[0.125,0.22001] */
+#endif
+ -1.1412546255e-11, /* 0xad48c58a */
+ -7.0312492549e-02, /* 0xbd8fffff */
+ -4.1596107483e+00, /* 0xc0851b88 */
+ -6.7674766541e+01, /* 0xc287597b */
+ -3.3123129272e+02, /* 0xc3a59d9b */
+ -3.4643338013e+02, /* 0xc3ad3779 */
+};
+#ifdef __STDC__
+static const float pS5[5] = {
+#else
+static float pS5[5] = {
+#endif
+ 6.0753936768e+01, /* 0x42730408 */
+ 1.0512523193e+03, /* 0x44836813 */
+ 5.9789707031e+03, /* 0x45bad7c4 */
+ 9.6254453125e+03, /* 0x461665c8 */
+ 2.4060581055e+03, /* 0x451660ee */
+};
+
+#ifdef __STDC__
+static const float pR3[6] = {/* for x in [4.547,2.8571]=1/[0.2199,0.35001] */
+#else
+static float pR3[6] = {/* for x in [4.547,2.8571]=1/[0.2199,0.35001] */
+#endif
+ -2.5470459075e-09, /* 0xb12f081b */
+ -7.0311963558e-02, /* 0xbd8fffb8 */
+ -2.4090321064e+00, /* 0xc01a2d95 */
+ -2.1965976715e+01, /* 0xc1afba52 */
+ -5.8079170227e+01, /* 0xc2685112 */
+ -3.1447946548e+01, /* 0xc1fb9565 */
+};
+#ifdef __STDC__
+static const float pS3[5] = {
+#else
+static float pS3[5] = {
+#endif
+ 3.5856033325e+01, /* 0x420f6c94 */
+ 3.6151397705e+02, /* 0x43b4c1ca */
+ 1.1936077881e+03, /* 0x44953373 */
+ 1.1279968262e+03, /* 0x448cffe6 */
+ 1.7358093262e+02, /* 0x432d94b8 */
+};
+
+#ifdef __STDC__
+static const float pR2[6] = {/* for x in [2.8570,2]=1/[0.3499,0.5] */
+#else
+static float pR2[6] = {/* for x in [2.8570,2]=1/[0.3499,0.5] */
+#endif
+ -8.8753431271e-08, /* 0xb3be98b7 */
+ -7.0303097367e-02, /* 0xbd8ffb12 */
+ -1.4507384300e+00, /* 0xbfb9b1cc */
+ -7.6356959343e+00, /* 0xc0f4579f */
+ -1.1193166733e+01, /* 0xc1331736 */
+ -3.2336456776e+00, /* 0xc04ef40d */
+};
+#ifdef __STDC__
+static const float pS2[5] = {
+#else
+static float pS2[5] = {
+#endif
+ 2.2220300674e+01, /* 0x41b1c32d */
+ 1.3620678711e+02, /* 0x430834f0 */
+ 2.7047027588e+02, /* 0x43873c32 */
+ 1.5387539673e+02, /* 0x4319e01a */
+ 1.4657617569e+01, /* 0x416a859a */
+};
+
+#ifdef __STDC__
+ static float pzerof(float x)
+#else
+ static float pzerof(x)
+ float x;
+#endif
+{
+#ifdef __STDC__
+ const float *p,*q;
+#else
+ float *p,*q;
+#endif
+ float z,r,s;
+ __int32_t ix;
+ ix = CYG_LIBM_WORD(x);
+ ix &= 0x7fffffff;
+ if(ix>=0x41000000) {p = pR8; q= pS8;}
+ else if(ix>=0x40f71c58){p = pR5; q= pS5;}
+ else if(ix>=0x4036db68){p = pR3; q= pS3;}
+ else {p = pR2; q= pS2;}
+ z = one/(x*x);
+ r = p[0]+z*(p[1]+z*(p[2]+z*(p[3]+z*(p[4]+z*p[5]))));
+ s = one+z*(q[0]+z*(q[1]+z*(q[2]+z*(q[3]+z*q[4]))));
+ return one+ r/s;
+}
+
+
+/* For x >= 8, the asymptotic expansions of qzero is
+ * -1/8 s + 75/1024 s^3 - ..., where s = 1/x.
+ * We approximate qzero by
+ * qzero(x) = s*(-1.25 + (R/S))
+ * where R = qR0 + qR1*s^2 + qR2*s^4 + ... + qR5*s^10
+ * S = 1 + qS0*s^2 + ... + qS5*s^12
+ * and
+ * | qzero(x)/s +1.25-R/S | <= 2 ** ( -61.22)
+ */
+#ifdef __STDC__
+static const float qR8[6] = { /* for x in [inf, 8]=1/[0,0.125] */
+#else
+static float qR8[6] = { /* for x in [inf, 8]=1/[0,0.125] */
+#endif
+ 0.0000000000e+00, /* 0x00000000 */
+ 7.3242187500e-02, /* 0x3d960000 */
+ 1.1768206596e+01, /* 0x413c4a93 */
+ 5.5767340088e+02, /* 0x440b6b19 */
+ 8.8591972656e+03, /* 0x460a6cca */
+ 3.7014625000e+04, /* 0x471096a0 */
+};
+#ifdef __STDC__
+static const float qS8[6] = {
+#else
+static float qS8[6] = {
+#endif
+ 1.6377603149e+02, /* 0x4323c6aa */
+ 8.0983447266e+03, /* 0x45fd12c2 */
+ 1.4253829688e+05, /* 0x480b3293 */
+ 8.0330925000e+05, /* 0x49441ed4 */
+ 8.4050156250e+05, /* 0x494d3359 */
+ -3.4389928125e+05, /* 0xc8a7eb69 */
+};
+
+#ifdef __STDC__
+static const float qR5[6] = { /* for x in [8,4.5454]=1/[0.125,0.22001] */
+#else
+static float qR5[6] = { /* for x in [8,4.5454]=1/[0.125,0.22001] */
+#endif
+ 1.8408595828e-11, /* 0x2da1ec79 */
+ 7.3242180049e-02, /* 0x3d95ffff */
+ 5.8356351852e+00, /* 0x40babd86 */
+ 1.3511157227e+02, /* 0x43071c90 */
+ 1.0272437744e+03, /* 0x448067cd */
+ 1.9899779053e+03, /* 0x44f8bf4b */
+};
+#ifdef __STDC__
+static const float qS5[6] = {
+#else
+static float qS5[6] = {
+#endif
+ 8.2776611328e+01, /* 0x42a58da0 */
+ 2.0778142090e+03, /* 0x4501dd07 */
+ 1.8847289062e+04, /* 0x46933e94 */
+ 5.6751113281e+04, /* 0x475daf1d */
+ 3.5976753906e+04, /* 0x470c88c1 */
+ -5.3543427734e+03, /* 0xc5a752be */
+};
+
+#ifdef __STDC__
+static const float qR3[6] = {/* for x in [4.547,2.8571]=1/[0.2199,0.35001] */
+#else
+static float qR3[6] = {/* for x in [4.547,2.8571]=1/[0.2199,0.35001] */
+#endif
+ 4.3774099900e-09, /* 0x3196681b */
+ 7.3241114616e-02, /* 0x3d95ff70 */
+ 3.3442313671e+00, /* 0x405607e3 */
+ 4.2621845245e+01, /* 0x422a7cc5 */
+ 1.7080809021e+02, /* 0x432acedf */
+ 1.6673394775e+02, /* 0x4326bbe4 */
+};
+#ifdef __STDC__
+static const float qS3[6] = {
+#else
+static float qS3[6] = {
+#endif
+ 4.8758872986e+01, /* 0x42430916 */
+ 7.0968920898e+02, /* 0x44316c1c */
+ 3.7041481934e+03, /* 0x4567825f */
+ 6.4604252930e+03, /* 0x45c9e367 */
+ 2.5163337402e+03, /* 0x451d4557 */
+ -1.4924745178e+02, /* 0xc3153f59 */
+};
+
+#ifdef __STDC__
+static const float qR2[6] = {/* for x in [2.8570,2]=1/[0.3499,0.5] */
+#else
+static float qR2[6] = {/* for x in [2.8570,2]=1/[0.3499,0.5] */
+#endif
+ 1.5044444979e-07, /* 0x342189db */
+ 7.3223426938e-02, /* 0x3d95f62a */
+ 1.9981917143e+00, /* 0x3fffc4bf */
+ 1.4495602608e+01, /* 0x4167edfd */
+ 3.1666231155e+01, /* 0x41fd5471 */
+ 1.6252708435e+01, /* 0x4182058c */
+};
+#ifdef __STDC__
+static const float qS2[6] = {
+#else
+static float qS2[6] = {
+#endif
+ 3.0365585327e+01, /* 0x41f2ecb8 */
+ 2.6934811401e+02, /* 0x4386ac8f */
+ 8.4478375244e+02, /* 0x44533229 */
+ 8.8293585205e+02, /* 0x445cbbe5 */
+ 2.1266638184e+02, /* 0x4354aa98 */
+ -5.3109550476e+00, /* 0xc0a9f358 */
+};
+
+#ifdef __STDC__
+ static float qzerof(float x)
+#else
+ static float qzerof(x)
+ float x;
+#endif
+{
+#ifdef __STDC__
+ const float *p,*q;
+#else
+ float *p,*q;
+#endif
+ float s,r,z;
+ __int32_t ix;
+ ix = CYG_LIBM_WORD(x);
+ ix &= 0x7fffffff;
+ if(ix>=0x41000000) {p = qR8; q= qS8;}
+ else if(ix>=0x40f71c58){p = qR5; q= qS5;}
+ else if(ix>=0x4036db68){p = qR3; q= qS3;}
+ else {p = qR2; q= qS2;}
+ z = one/(x*x);
+ r = p[0]+z*(p[1]+z*(p[2]+z*(p[3]+z*(p[4]+z*p[5]))));
+ s = one+z*(q[0]+z*(q[1]+z*(q[2]+z*(q[3]+z*(q[4]+z*q[5])))));
+ return (-(float).125 + r/s)/x;
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF ef_j0.c
diff --git a/ecos/packages/language/c/libm/current/src/float/ieee754-core/ef_j1.c b/ecos/packages/language/c/libm/current/src/float/ieee754-core/ef_j1.c
new file mode 100644
index 0000000..f680cbb
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/float/ieee754-core/ef_j1.c
@@ -0,0 +1,506 @@
+//===========================================================================
+//
+// ef_j1.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 2012-03-08
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/* ef_j1.c -- float version of e_j1.c.
+ * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+
+#include "mathincl/fdlibm.h"
+
+#ifdef __STDC__
+static float ponef(float), qonef(float);
+#else
+static float ponef(), qonef();
+#endif
+
+#ifdef __STDC__
+static const float
+#else
+static float
+#endif
+huge = 1e30,
+one = 1.0,
+invsqrtpi= 5.6418961287e-01, /* 0x3f106ebb */
+tpi = 6.3661974669e-01, /* 0x3f22f983 */
+ /* R0/S0 on [0,2] */
+r00 = -6.2500000000e-02, /* 0xbd800000 */
+r01 = 1.4070566976e-03, /* 0x3ab86cfd */
+r02 = -1.5995563444e-05, /* 0xb7862e36 */
+r03 = 4.9672799207e-08, /* 0x335557d2 */
+s01 = 1.9153760746e-02, /* 0x3c9ce859 */
+s02 = 1.8594678841e-04, /* 0x3942fab6 */
+s03 = 1.1771846857e-06, /* 0x359dffc2 */
+s04 = 5.0463624390e-09, /* 0x31ad6446 */
+s05 = 1.2354227016e-11; /* 0x2d59567e */
+
+#ifdef __STDC__
+static const float zero = 0.0;
+#else
+static float zero = 0.0;
+#endif
+
+#ifdef __STDC__
+ float __ieee754_j1f(float x)
+#else
+ float __ieee754_j1f(x)
+ float x;
+#endif
+{
+ float z, s,c,ss,cc,r,u,v,y;
+ __int32_t hx,ix;
+
+ hx = CYG_LIBM_WORD(x);
+ ix = hx&0x7fffffff;
+ if(!FLT_UWORD_IS_FINITE(ix)) return one/x;
+ y = fabsf(x);
+ if(ix >= 0x40000000) { /* |x| >= 2.0 */
+ s = sinf(y);
+ c = cosf(y);
+ ss = -s-c;
+ cc = s-c;
+ if(ix<=FLT_UWORD_HALF_MAX) { /* make sure y+y not overflow */
+ z = cosf(y+y);
+ if ((s*c)>zero) cc = z/ss;
+ else ss = z/cc;
+ }
+ /*
+ * j1(x) = 1/sqrt(pi) * (P(1,x)*cc - Q(1,x)*ss) / sqrt(x)
+ * y1(x) = 1/sqrt(pi) * (P(1,x)*ss + Q(1,x)*cc) / sqrt(x)
+ */
+ if(ix>0x80000000) z = (invsqrtpi*cc)/__ieee754_sqrtf(y);
+ else {
+ u = ponef(y); v = qonef(y);
+ z = invsqrtpi*(u*cc-v*ss)/__ieee754_sqrtf(y);
+ }
+ if(hx<0) return -z;
+ else return z;
+ }
+ if(ix<0x32000000) { /* |x|<2**-27 */
+ if(huge+x>one) return (float)0.5*x;/* inexact if x!=0 necessary */
+ }
+ z = x*x;
+ r = z*(r00+z*(r01+z*(r02+z*r03)));
+ s = one+z*(s01+z*(s02+z*(s03+z*(s04+z*s05))));
+ r *= x;
+ return(x*(float)0.5+r/s);
+}
+
+#ifdef __STDC__
+static const float U0[5] = {
+#else
+static float U0[5] = {
+#endif
+ -1.9605709612e-01, /* 0xbe48c331 */
+ 5.0443872809e-02, /* 0x3d4e9e3c */
+ -1.9125689287e-03, /* 0xbafaaf2a */
+ 2.3525259166e-05, /* 0x37c5581c */
+ -9.1909917899e-08, /* 0xb3c56003 */
+};
+#ifdef __STDC__
+static const float V0[5] = {
+#else
+static float V0[5] = {
+#endif
+ 1.9916731864e-02, /* 0x3ca3286a */
+ 2.0255257550e-04, /* 0x3954644b */
+ 1.3560879779e-06, /* 0x35b602d4 */
+ 6.2274145840e-09, /* 0x31d5f8eb */
+ 1.6655924903e-11, /* 0x2d9281cf */
+};
+
+#ifdef __STDC__
+ float __ieee754_y1f(float x)
+#else
+ float __ieee754_y1f(x)
+ float x;
+#endif
+{
+ float z, s,c,ss,cc,u,v;
+ __int32_t hx,ix;
+
+ hx = CYG_LIBM_WORD(x);
+ ix = 0x7fffffff&hx;
+ /* if Y1(NaN) is NaN, Y1(-inf) is NaN, Y1(inf) is 0 */
+ if(!FLT_UWORD_IS_FINITE(ix)) return one/(x+x*x);
+ if(FLT_UWORD_IS_ZERO(ix)) return -one/zero;
+ if(hx<0) return zero/zero;
+ if(ix >= 0x40000000) { /* |x| >= 2.0 */
+ s = sinf(x);
+ c = cosf(x);
+ ss = -s-c;
+ cc = s-c;
+ if(ix<=FLT_UWORD_HALF_MAX) { /* make sure x+x not overflow */
+ z = cosf(x+x);
+ if ((s*c)>zero) cc = z/ss;
+ else ss = z/cc;
+ }
+ /* y1(x) = sqrt(2/(pi*x))*(p1(x)*sin(x0)+q1(x)*cos(x0))
+ * where x0 = x-3pi/4
+ * Better formula:
+ * cos(x0) = cos(x)cos(3pi/4)+sin(x)sin(3pi/4)
+ * = 1/sqrt(2) * (sin(x) - cos(x))
+ * sin(x0) = sin(x)cos(3pi/4)-cos(x)sin(3pi/4)
+ * = -1/sqrt(2) * (cos(x) + sin(x))
+ * To avoid cancellation, use
+ * sin(x) +- cos(x) = -cos(2x)/(sin(x) -+ cos(x))
+ * to compute the worse one.
+ */
+ if(ix>0x48000000) z = (invsqrtpi*ss)/__ieee754_sqrtf(x);
+ else {
+ u = ponef(x); v = qonef(x);
+ z = invsqrtpi*(u*ss+v*cc)/__ieee754_sqrtf(x);
+ }
+ return z;
+ }
+ if(ix<=0x24800000) { /* x < 2**-54 */
+ return(-tpi/x);
+ }
+ z = x*x;
+ u = U0[0]+z*(U0[1]+z*(U0[2]+z*(U0[3]+z*U0[4])));
+ v = one+z*(V0[0]+z*(V0[1]+z*(V0[2]+z*(V0[3]+z*V0[4]))));
+ return(x*(u/v) + tpi*(__ieee754_j1f(x)*__ieee754_logf(x)-one/x));
+}
+
+/* For x >= 8, the asymptotic expansions of pone is
+ * 1 + 15/128 s^2 - 4725/2^15 s^4 - ..., where s = 1/x.
+ * We approximate pone by
+ * pone(x) = 1 + (R/S)
+ * where R = pr0 + pr1*s^2 + pr2*s^4 + ... + pr5*s^10
+ * S = 1 + ps0*s^2 + ... + ps4*s^10
+ * and
+ * | pone(x)-1-R/S | <= 2 ** ( -60.06)
+ */
+
+#ifdef __STDC__
+static const float pr8[6] = { /* for x in [inf, 8]=1/[0,0.125] */
+#else
+static float pr8[6] = { /* for x in [inf, 8]=1/[0,0.125] */
+#endif
+ 0.0000000000e+00, /* 0x00000000 */
+ 1.1718750000e-01, /* 0x3df00000 */
+ 1.3239480972e+01, /* 0x4153d4ea */
+ 4.1205184937e+02, /* 0x43ce06a3 */
+ 3.8747453613e+03, /* 0x45722bed */
+ 7.9144794922e+03, /* 0x45f753d6 */
+};
+#ifdef __STDC__
+static const float ps8[5] = {
+#else
+static float ps8[5] = {
+#endif
+ 1.1420736694e+02, /* 0x42e46a2c */
+ 3.6509309082e+03, /* 0x45642ee5 */
+ 3.6956207031e+04, /* 0x47105c35 */
+ 9.7602796875e+04, /* 0x47bea166 */
+ 3.0804271484e+04, /* 0x46f0a88b */
+};
+
+#ifdef __STDC__
+static const float pr5[6] = { /* for x in [8,4.5454]=1/[0.125,0.22001] */
+#else
+static float pr5[6] = { /* for x in [8,4.5454]=1/[0.125,0.22001] */
+#endif
+ 1.3199052094e-11, /* 0x2d68333f */
+ 1.1718749255e-01, /* 0x3defffff */
+ 6.8027510643e+00, /* 0x40d9b023 */
+ 1.0830818176e+02, /* 0x42d89dca */
+ 5.1763616943e+02, /* 0x440168b7 */
+ 5.2871520996e+02, /* 0x44042dc6 */
+};
+#ifdef __STDC__
+static const float ps5[5] = {
+#else
+static float ps5[5] = {
+#endif
+ 5.9280597687e+01, /* 0x426d1f55 */
+ 9.9140142822e+02, /* 0x4477d9b1 */
+ 5.3532670898e+03, /* 0x45a74a23 */
+ 7.8446904297e+03, /* 0x45f52586 */
+ 1.5040468750e+03, /* 0x44bc0180 */
+};
+
+#ifdef __STDC__
+static const float pr3[6] = {
+#else
+static float pr3[6] = {/* for x in [4.547,2.8571]=1/[0.2199,0.35001] */
+#endif
+ 3.0250391081e-09, /* 0x314fe10d */
+ 1.1718686670e-01, /* 0x3defffab */
+ 3.9329774380e+00, /* 0x407bb5e7 */
+ 3.5119403839e+01, /* 0x420c7a45 */
+ 9.1055007935e+01, /* 0x42b61c2a */
+ 4.8559066772e+01, /* 0x42423c7c */
+};
+#ifdef __STDC__
+static const float ps3[5] = {
+#else
+static float ps3[5] = {
+#endif
+ 3.4791309357e+01, /* 0x420b2a4d */
+ 3.3676245117e+02, /* 0x43a86198 */
+ 1.0468714600e+03, /* 0x4482dbe3 */
+ 8.9081134033e+02, /* 0x445eb3ed */
+ 1.0378793335e+02, /* 0x42cf936c */
+};
+
+#ifdef __STDC__
+static const float pr2[6] = {/* for x in [2.8570,2]=1/[0.3499,0.5] */
+#else
+static float pr2[6] = {/* for x in [2.8570,2]=1/[0.3499,0.5] */
+#endif
+ 1.0771083225e-07, /* 0x33e74ea8 */
+ 1.1717621982e-01, /* 0x3deffa16 */
+ 2.3685150146e+00, /* 0x401795c0 */
+ 1.2242610931e+01, /* 0x4143e1bc */
+ 1.7693971634e+01, /* 0x418d8d41 */
+ 5.0735230446e+00, /* 0x40a25a4d */
+};
+#ifdef __STDC__
+static const float ps2[5] = {
+#else
+static float ps2[5] = {
+#endif
+ 2.1436485291e+01, /* 0x41ab7dec */
+ 1.2529022980e+02, /* 0x42fa9499 */
+ 2.3227647400e+02, /* 0x436846c7 */
+ 1.1767937469e+02, /* 0x42eb5bd7 */
+ 8.3646392822e+00, /* 0x4105d590 */
+};
+
+#ifdef __STDC__
+ static float ponef(float x)
+#else
+ static float ponef(x)
+ float x;
+#endif
+{
+#ifdef __STDC__
+ const float *p,*q;
+#else
+ float *p,*q;
+#endif
+ float z,r,s;
+ __int32_t ix;
+ ix = CYG_LIBM_WORD(x);
+ ix &= 0x7fffffff;
+ if(ix>=0x41000000) {p = pr8; q= ps8;}
+ else if(ix>=0x40f71c58){p = pr5; q= ps5;}
+ else if(ix>=0x4036db68){p = pr3; q= ps3;}
+ else {p = pr2; q= ps2;}
+ z = one/(x*x);
+ r = p[0]+z*(p[1]+z*(p[2]+z*(p[3]+z*(p[4]+z*p[5]))));
+ s = one+z*(q[0]+z*(q[1]+z*(q[2]+z*(q[3]+z*q[4]))));
+ return one+ r/s;
+}
+
+
+/* For x >= 8, the asymptotic expansions of qone is
+ * 3/8 s - 105/1024 s^3 - ..., where s = 1/x.
+ * We approximate qone by
+ * qone(x) = s*(0.375 + (R/S))
+ * where R = qr1*s^2 + qr2*s^4 + ... + qr5*s^10
+ * S = 1 + qs1*s^2 + ... + qs6*s^12
+ * and
+ * | qone(x)/s -0.375-R/S | <= 2 ** ( -61.13)
+ */
+
+#ifdef __STDC__
+static const float qr8[6] = { /* for x in [inf, 8]=1/[0,0.125] */
+#else
+static float qr8[6] = { /* for x in [inf, 8]=1/[0,0.125] */
+#endif
+ 0.0000000000e+00, /* 0x00000000 */
+ -1.0253906250e-01, /* 0xbdd20000 */
+ -1.6271753311e+01, /* 0xc1822c8d */
+ -7.5960174561e+02, /* 0xc43de683 */
+ -1.1849806641e+04, /* 0xc639273a */
+ -4.8438511719e+04, /* 0xc73d3683 */
+};
+#ifdef __STDC__
+static const float qs8[6] = {
+#else
+static float qs8[6] = {
+#endif
+ 1.6139537048e+02, /* 0x43216537 */
+ 7.8253862305e+03, /* 0x45f48b17 */
+ 1.3387534375e+05, /* 0x4802bcd6 */
+ 7.1965775000e+05, /* 0x492fb29c */
+ 6.6660125000e+05, /* 0x4922be94 */
+ -2.9449025000e+05, /* 0xc88fcb48 */
+};
+
+#ifdef __STDC__
+static const float qr5[6] = { /* for x in [8,4.5454]=1/[0.125,0.22001] */
+#else
+static float qr5[6] = { /* for x in [8,4.5454]=1/[0.125,0.22001] */
+#endif
+ -2.0897993405e-11, /* 0xadb7d219 */
+ -1.0253904760e-01, /* 0xbdd1fffe */
+ -8.0564479828e+00, /* 0xc100e736 */
+ -1.8366960144e+02, /* 0xc337ab6b */
+ -1.3731937256e+03, /* 0xc4aba633 */
+ -2.6124443359e+03, /* 0xc523471c */
+};
+#ifdef __STDC__
+static const float qs5[6] = {
+#else
+static float qs5[6] = {
+#endif
+ 8.1276550293e+01, /* 0x42a28d98 */
+ 1.9917987061e+03, /* 0x44f8f98f */
+ 1.7468484375e+04, /* 0x468878f8 */
+ 4.9851425781e+04, /* 0x4742bb6d */
+ 2.7948074219e+04, /* 0x46da5826 */
+ -4.7191835938e+03, /* 0xc5937978 */
+};
+
+#ifdef __STDC__
+static const float qr3[6] = {
+#else
+static float qr3[6] = {/* for x in [4.547,2.8571]=1/[0.2199,0.35001] */
+#endif
+ -5.0783124372e-09, /* 0xb1ae7d4f */
+ -1.0253783315e-01, /* 0xbdd1ff5b */
+ -4.6101160049e+00, /* 0xc0938612 */
+ -5.7847221375e+01, /* 0xc267638e */
+ -2.2824453735e+02, /* 0xc3643e9a */
+ -2.1921012878e+02, /* 0xc35b35cb */
+};
+#ifdef __STDC__
+static const float qs3[6] = {
+#else
+static float qs3[6] = {
+#endif
+ 4.7665153503e+01, /* 0x423ea91e */
+ 6.7386511230e+02, /* 0x4428775e */
+ 3.3801528320e+03, /* 0x45534272 */
+ 5.5477290039e+03, /* 0x45ad5dd5 */
+ 1.9031191406e+03, /* 0x44ede3d0 */
+ -1.3520118713e+02, /* 0xc3073381 */
+};
+
+#ifdef __STDC__
+static const float qr2[6] = {/* for x in [2.8570,2]=1/[0.3499,0.5] */
+#else
+static float qr2[6] = {/* for x in [2.8570,2]=1/[0.3499,0.5] */
+#endif
+ -1.7838172539e-07, /* 0xb43f8932 */
+ -1.0251704603e-01, /* 0xbdd1f475 */
+ -2.7522056103e+00, /* 0xc0302423 */
+ -1.9663616180e+01, /* 0xc19d4f16 */
+ -4.2325313568e+01, /* 0xc2294d1f */
+ -2.1371921539e+01, /* 0xc1aaf9b2 */
+};
+#ifdef __STDC__
+static const float qs2[6] = {
+#else
+static float qs2[6] = {
+#endif
+ 2.9533363342e+01, /* 0x41ec4454 */
+ 2.5298155212e+02, /* 0x437cfb47 */
+ 7.5750280762e+02, /* 0x443d602e */
+ 7.3939318848e+02, /* 0x4438d92a */
+ 1.5594900513e+02, /* 0x431bf2f2 */
+ -4.9594988823e+00, /* 0xc09eb437 */
+};
+
+#ifdef __STDC__
+ static float qonef(float x)
+#else
+ static float qonef(x)
+ float x;
+#endif
+{
+#ifdef __STDC__
+ const float *p,*q;
+#else
+ float *p,*q;
+#endif
+ float s,r,z;
+ __int32_t ix;
+ ix = CYG_LIBM_WORD(x);
+ ix &= 0x7fffffff;
+ if(ix>=0x40200000) {p = qr8; q= qs8;}
+ else if(ix>=0x40f71c58){p = qr5; q= qs5;}
+ else if(ix>=0x4036db68){p = qr3; q= qs3;}
+ else {p = qr2; q= qs2;}
+ z = one/(x*x);
+ r = p[0]+z*(p[1]+z*(p[2]+z*(p[3]+z*(p[4]+z*p[5]))));
+ s = one+z*(q[0]+z*(q[1]+z*(q[2]+z*(q[3]+z*(q[4]+z*q[5])))));
+ return ((float).375 + r/s)/x;
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF ef_j1.c
diff --git a/ecos/packages/language/c/libm/current/src/float/ieee754-core/ef_jn.c b/ecos/packages/language/c/libm/current/src/float/ieee754-core/ef_jn.c
new file mode 100644
index 0000000..b890682
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/float/ieee754-core/ef_jn.c
@@ -0,0 +1,274 @@
+//===========================================================================
+//
+// ef_jn.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 2012-03-08
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/* ef_jn.c -- float version of e_jn.c.
+ * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+
+#include "mathincl/fdlibm.h"
+
+#ifdef __STDC__
+static const float
+#else
+static float
+#endif
+invsqrtpi= 5.6418961287e-01, /* 0x3f106ebb */
+two = 2.0000000000e+00, /* 0x40000000 */
+one = 1.0000000000e+00; /* 0x3F800000 */
+
+#ifdef __STDC__
+static const float zero = 0.0000000000e+00;
+#else
+static float zero = 0.0000000000e+00;
+#endif
+
+#ifdef __STDC__
+ float __ieee754_jnf(int n, float x)
+#else
+ float __ieee754_jnf(n,x)
+ int n; float x;
+#endif
+{
+ __int32_t i,hx,ix, sgn;
+ float a, b, temp, di;
+ float z, w;
+
+ /* J(-n,x) = (-1)^n * J(n, x), J(n, -x) = (-1)^n * J(n, x)
+ * Thus, J(-n,x) = J(n,-x)
+ */
+ hx = CYG_LIBM_WORD(x);
+ ix = 0x7fffffff&hx;
+ /* if J(n,NaN) is NaN */
+ if(FLT_UWORD_IS_NAN(ix)) return x+x;
+ if(n<0){
+ n = -n;
+ x = -x;
+ hx ^= 0x80000000;
+ }
+ if(n==0) return(__ieee754_j0f(x));
+ if(n==1) return(__ieee754_j1f(x));
+ sgn = (n&1)&(hx>>31); /* even n -- 0, odd n -- sign(x) */
+ x = fabsf(x);
+ if(FLT_UWORD_IS_ZERO(ix)||FLT_UWORD_IS_INFINITE(ix))
+ b = zero;
+ else if((float)n<=x) {
+ /* Safe to use J(n+1,x)=2n/x *J(n,x)-J(n-1,x) */
+ a = __ieee754_j0f(x);
+ b = __ieee754_j1f(x);
+ for(i=1;i<n;i++){
+ temp = b;
+ b = b*((float)(i+i)/x) - a; /* avoid underflow */
+ a = temp;
+ }
+ } else {
+ if(ix<0x30800000) { /* x < 2**-29 */
+ /* x is tiny, return the first Taylor expansion of J(n,x)
+ * J(n,x) = 1/n!*(x/2)^n - ...
+ */
+ if(n>33) /* underflow */
+ b = zero;
+ else {
+ temp = x*(float)0.5; b = temp;
+ for (a=one,i=2;i<=n;i++) {
+ a *= (float)i; /* a = n! */
+ b *= temp; /* b = (x/2)^n */
+ }
+ b = b/a;
+ }
+ } else {
+ /* use backward recurrence */
+ /* x x^2 x^2
+ * J(n,x)/J(n-1,x) = ---- ------ ------ .....
+ * 2n - 2(n+1) - 2(n+2)
+ *
+ * 1 1 1
+ * (for large x) = ---- ------ ------ .....
+ * 2n 2(n+1) 2(n+2)
+ * -- - ------ - ------ -
+ * x x x
+ *
+ * Let w = 2n/x and h=2/x, then the above quotient
+ * is equal to the continued fraction:
+ * 1
+ * = -----------------------
+ * 1
+ * w - -----------------
+ * 1
+ * w+h - ---------
+ * w+2h - ...
+ *
+ * To determine how many terms needed, let
+ * Q(0) = w, Q(1) = w(w+h) - 1,
+ * Q(k) = (w+k*h)*Q(k-1) - Q(k-2),
+ * When Q(k) > 1e4 good for single
+ * When Q(k) > 1e9 good for double
+ * When Q(k) > 1e17 good for quadruple
+ */
+ /* determine k */
+ float t,v;
+ float q0,q1,h,tmp; __int32_t k,m;
+ w = (n+n)/(float)x; h = (float)2.0/(float)x;
+ q0 = w; z = w+h; q1 = w*z - (float)1.0; k=1;
+ while(q1<(float)1.0e9) {
+ k += 1; z += h;
+ tmp = z*q1 - q0;
+ q0 = q1;
+ q1 = tmp;
+ }
+ m = n+n;
+ for(t=zero, i = 2*(n+k); i>=m; i -= 2) t = one/(i/x-t);
+ a = t;
+ b = one;
+ /* estimate log((2/x)^n*n!) = n*log(2/x)+n*ln(n)
+ * Hence, if n*(log(2n/x)) > ...
+ * single 8.8722839355e+01
+ * double 7.09782712893383973096e+02
+ * long double 1.1356523406294143949491931077970765006170e+04
+ * then recurrent value may overflow and the result is
+ * likely underflow to zero
+ */
+ tmp = n;
+ v = two/x;
+ tmp = tmp*__ieee754_logf(fabsf(v*tmp));
+ if(tmp<(float)8.8721679688e+01) {
+ for(i=n-1,di=(float)(i+i);i>0;i--){
+ temp = b;
+ b *= di;
+ b = b/x - a;
+ a = temp;
+ di -= two;
+ }
+ } else {
+ for(i=n-1,di=(float)(i+i);i>0;i--){
+ temp = b;
+ b *= di;
+ b = b/x - a;
+ a = temp;
+ di -= two;
+ /* scale b to avoid spurious overflow */
+ if(b>(float)1e10) {
+ a /= b;
+ t /= b;
+ b = one;
+ }
+ }
+ }
+ b = (t*__ieee754_j0f(x)/b);
+ }
+ }
+ if(sgn==1) return -b; else return b;
+}
+
+#ifdef __STDC__
+ float __ieee754_ynf(int n, float x)
+#else
+ float __ieee754_ynf(n,x)
+ int n; float x;
+#endif
+{
+ __int32_t i,hx,ix,ib;
+ __int32_t sign;
+ float a, b, temp;
+
+ hx = CYG_LIBM_WORD(x);
+ ix = 0x7fffffff&hx;
+ /* if Y(n,NaN) is NaN */
+ if(FLT_UWORD_IS_NAN(ix)) return x+x;
+ if(FLT_UWORD_IS_ZERO(ix)) return -one/zero;
+ if(hx<0) return zero/zero;
+ sign = 1;
+ if(n<0){
+ n = -n;
+ sign = 1 - ((n&1)<<1);
+ }
+ if(n==0) return(__ieee754_y0f(x));
+ if(n==1) return(sign*__ieee754_y1f(x));
+ if(FLT_UWORD_IS_INFINITE(ix)) return zero;
+
+ a = __ieee754_y0f(x);
+ b = __ieee754_y1f(x);
+ /* quit if b is -inf */
+ ib = CYG_LIBM_WORD(b);
+ for(i=1;i<n&&ib!=0xff800000;i++){
+ temp = b;
+ b = ((float)(i+i)/x)*b - a;
+ ib = CYG_LIBM_WORD(b);
+ a = temp;
+ }
+ if(sign>0) return b; else return -b;
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF ef_jn.c
diff --git a/ecos/packages/language/c/libm/current/src/float/ieee754-core/ef_lgamma.c b/ecos/packages/language/c/libm/current/src/float/ieee754-core/ef_lgamma.c
new file mode 100644
index 0000000..0206aba
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/float/ieee754-core/ef_lgamma.c
@@ -0,0 +1,93 @@
+//===========================================================================
+//
+// ef_lgamma.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 2012-03-08
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/* @(#)e_lgamma.c 1.3 95/01/18 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunSoft, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ *
+ */
+
+/* __ieee754_lgamma(x)
+ * Return the logarithm of the Gamma function of x.
+ *
+ * Method: call __ieee754_lgamma_r
+ */
+
+#include <math.h>
+#include "mathincl/fdlibm.h"
+
+float
+__ieee754_lgammaf(float x)
+{
+ return __ieee754_lgammaf_r(x,&signgam);
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF ef_lgamma.c
diff --git a/ecos/packages/language/c/libm/current/src/float/ieee754-core/ef_lgamma_r.c b/ecos/packages/language/c/libm/current/src/float/ieee754-core/ef_lgamma_r.c
new file mode 100644
index 0000000..99c49e3
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/float/ieee754-core/ef_lgamma_r.c
@@ -0,0 +1,316 @@
+//===========================================================================
+//
+// ef_lgamma_r.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 2012-03-08
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+/* erf_lgamma.c -- float version of er_lgamma.c.
+ * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ *
+ */
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+#include "mathincl/fdlibm.h"
+
+#ifdef __STDC__
+static const float
+#else
+static float
+#endif
+two23= 8.3886080000e+06, /* 0x4b000000 */
+half= 5.0000000000e-01, /* 0x3f000000 */
+one = 1.0000000000e+00, /* 0x3f800000 */
+pi = 3.1415927410e+00, /* 0x40490fdb */
+a0 = 7.7215664089e-02, /* 0x3d9e233f */
+a1 = 3.2246702909e-01, /* 0x3ea51a66 */
+a2 = 6.7352302372e-02, /* 0x3d89f001 */
+a3 = 2.0580807701e-02, /* 0x3ca89915 */
+a4 = 7.3855509982e-03, /* 0x3bf2027e */
+a5 = 2.8905137442e-03, /* 0x3b3d6ec6 */
+a6 = 1.1927076848e-03, /* 0x3a9c54a1 */
+a7 = 5.1006977446e-04, /* 0x3a05b634 */
+a8 = 2.2086278477e-04, /* 0x39679767 */
+a9 = 1.0801156895e-04, /* 0x38e28445 */
+a10 = 2.5214456400e-05, /* 0x37d383a2 */
+a11 = 4.4864096708e-05, /* 0x383c2c75 */
+tc = 1.4616321325e+00, /* 0x3fbb16c3 */
+tf = -1.2148628384e-01, /* 0xbdf8cdcd */
+/* tt = -(tail of tf) */
+tt = 6.6971006518e-09, /* 0x31e61c52 */
+t0 = 4.8383611441e-01, /* 0x3ef7b95e */
+t1 = -1.4758771658e-01, /* 0xbe17213c */
+t2 = 6.4624942839e-02, /* 0x3d845a15 */
+t3 = -3.2788541168e-02, /* 0xbd064d47 */
+t4 = 1.7970675603e-02, /* 0x3c93373d */
+t5 = -1.0314224288e-02, /* 0xbc28fcfe */
+t6 = 6.1005386524e-03, /* 0x3bc7e707 */
+t7 = -3.6845202558e-03, /* 0xbb7177fe */
+t8 = 2.2596477065e-03, /* 0x3b141699 */
+t9 = -1.4034647029e-03, /* 0xbab7f476 */
+t10 = 8.8108185446e-04, /* 0x3a66f867 */
+t11 = -5.3859531181e-04, /* 0xba0d3085 */
+t12 = 3.1563205994e-04, /* 0x39a57b6b */
+t13 = -3.1275415677e-04, /* 0xb9a3f927 */
+t14 = 3.3552918467e-04, /* 0x39afe9f7 */
+u0 = -7.7215664089e-02, /* 0xbd9e233f */
+u1 = 6.3282704353e-01, /* 0x3f2200f4 */
+u2 = 1.4549225569e+00, /* 0x3fba3ae7 */
+u3 = 9.7771751881e-01, /* 0x3f7a4bb2 */
+u4 = 2.2896373272e-01, /* 0x3e6a7578 */
+u5 = 1.3381091878e-02, /* 0x3c5b3c5e */
+v1 = 2.4559779167e+00, /* 0x401d2ebe */
+v2 = 2.1284897327e+00, /* 0x4008392d */
+v3 = 7.6928514242e-01, /* 0x3f44efdf */
+v4 = 1.0422264785e-01, /* 0x3dd572af */
+v5 = 3.2170924824e-03, /* 0x3b52d5db */
+s0 = -7.7215664089e-02, /* 0xbd9e233f */
+s1 = 2.1498242021e-01, /* 0x3e5c245a */
+s2 = 3.2577878237e-01, /* 0x3ea6cc7a */
+s3 = 1.4635047317e-01, /* 0x3e15dce6 */
+s4 = 2.6642270386e-02, /* 0x3cda40e4 */
+s5 = 1.8402845599e-03, /* 0x3af135b4 */
+s6 = 3.1947532989e-05, /* 0x3805ff67 */
+r1 = 1.3920053244e+00, /* 0x3fb22d3b */
+r2 = 7.2193557024e-01, /* 0x3f38d0c5 */
+r3 = 1.7193385959e-01, /* 0x3e300f6e */
+r4 = 1.8645919859e-02, /* 0x3c98bf54 */
+r5 = 7.7794247773e-04, /* 0x3a4beed6 */
+r6 = 7.3266842264e-06, /* 0x36f5d7bd */
+w0 = 4.1893854737e-01, /* 0x3ed67f1d */
+w1 = 8.3333335817e-02, /* 0x3daaaaab */
+w2 = -2.7777778450e-03, /* 0xbb360b61 */
+w3 = 7.9365057172e-04, /* 0x3a500cfd */
+w4 = -5.9518753551e-04, /* 0xba1c065c */
+w5 = 8.3633989561e-04, /* 0x3a5b3dd2 */
+w6 = -1.6309292987e-03; /* 0xbad5c4e8 */
+
+#ifdef __STDC__
+static const float zero= 0.0000000000e+00;
+#else
+static float zero= 0.0000000000e+00;
+#endif
+
+#ifdef __STDC__
+ static float sin_pif(float x)
+#else
+ static float sin_pif(x)
+ float x;
+#endif
+{
+ float y,z;
+ __int32_t n,ix;
+
+ ix = CYG_LIBM_WORD(x);
+ ix &= 0x7fffffff;
+
+ if(ix<0x3e800000) return __kernel_sinf(pi*x,zero,0);
+ y = -x; /* x is assume negative */
+
+ /*
+ * argument reduction, make sure inexact flag not raised if input
+ * is an integer
+ */
+ z = floorf(y);
+ if(z!=y) { /* inexact anyway */
+ y *= (float)0.5;
+ y = (float)2.0*(y - floorf(y)); /* y = |x| mod 2.0 */
+ n = (__int32_t) (y*(float)4.0);
+ } else {
+ if(ix>=0x4b800000) {
+ y = zero; n = 0; /* y must be even */
+ } else {
+ if(ix<0x4b000000) z = y+two23; /* exact */
+ n = CYG_LIBM_WORD(z);
+ n &= 1;
+ y = n;
+ n<<= 2;
+ }
+ }
+ switch (n) {
+ case 0: y = __kernel_sinf(pi*y,zero,0); break;
+ case 1:
+ case 2: y = __kernel_cosf(pi*((float)0.5-y),zero); break;
+ case 3:
+ case 4: y = __kernel_sinf(pi*(one-y),zero,0); break;
+ case 5:
+ case 6: y = -__kernel_cosf(pi*(y-(float)1.5),zero); break;
+ default: y = __kernel_sinf(pi*(y-(float)2.0),zero,0); break;
+ }
+ return -y;
+}
+
+
+#ifdef __STDC__
+ float __ieee754_lgammaf_r(float x, int *signgamp)
+#else
+ float __ieee754_lgammaf_r(x,signgamp)
+ float x; int *signgamp;
+#endif
+{
+ float t,y,z,nadj,p,p1,p2,p3,q,r,w;
+ __int32_t i,hx,ix;
+
+ hx = CYG_LIBM_WORD(x);
+
+ /* purge off +-inf, NaN, +-0, and negative arguments */
+ *signgamp = 1;
+ ix = hx&0x7fffffff;
+ if(ix>=0x7f800000) return x*x;
+ if(ix==0) return one/zero;
+ if(ix<0x1c800000) { /* |x|<2**-70, return -log(|x|) */
+ if(hx<0) {
+ *signgamp = -1;
+ return -__ieee754_logf(-x);
+ } else return -__ieee754_logf(x);
+ }
+ if(hx<0) {
+ if(ix>=0x4b000000) /* |x|>=2**23, must be -integer */
+ return one/zero;
+ t = sin_pif(x);
+ if(t==zero) return one/zero; /* -integer */
+ nadj = __ieee754_logf(pi/fabsf(t*x));
+ if(t<zero) *signgamp = -1;
+ x = -x;
+ }
+
+ /* purge off 1 and 2 */
+ if (ix==0x3f800000||ix==0x40000000) r = 0;
+ /* for x < 2.0 */
+ else if(ix<0x40000000) {
+ if(ix<=0x3f666666) { /* lgamma(x) = lgamma(x+1)-log(x) */
+ r = -__ieee754_logf(x);
+ if(ix>=0x3f3b4a20) {y = one-x; i= 0;}
+ else if(ix>=0x3e6d3308) {y= x-(tc-one); i=1;}
+ else {y = x; i=2;}
+ } else {
+ r = zero;
+ if(ix>=0x3fdda618) {y=(float)2.0-x;i=0;} /* [1.7316,2] */
+ else if(ix>=0x3F9da620) {y=x-tc;i=1;} /* [1.23,1.73] */
+ else {y=x-one;i=2;}
+ }
+ switch(i) {
+ case 0:
+ z = y*y;
+ p1 = a0+z*(a2+z*(a4+z*(a6+z*(a8+z*a10))));
+ p2 = z*(a1+z*(a3+z*(a5+z*(a7+z*(a9+z*a11)))));
+ p = y*p1+p2;
+ r += (p-(float)0.5*y); break;
+ case 1:
+ z = y*y;
+ w = z*y;
+ p1 = t0+w*(t3+w*(t6+w*(t9 +w*t12))); /* parallel comp */
+ p2 = t1+w*(t4+w*(t7+w*(t10+w*t13)));
+ p3 = t2+w*(t5+w*(t8+w*(t11+w*t14)));
+ p = z*p1-(tt-w*(p2+y*p3));
+ r += (tf + p); break;
+ case 2:
+ p1 = y*(u0+y*(u1+y*(u2+y*(u3+y*(u4+y*u5)))));
+ p2 = one+y*(v1+y*(v2+y*(v3+y*(v4+y*v5))));
+ r += (-(float)0.5*y + p1/p2);
+ }
+ }
+ else if(ix<0x41000000) { /* x < 8.0 */
+ i = (__int32_t)x;
+ t = zero;
+ y = x-(float)i;
+ p = y*(s0+y*(s1+y*(s2+y*(s3+y*(s4+y*(s5+y*s6))))));
+ q = one+y*(r1+y*(r2+y*(r3+y*(r4+y*(r5+y*r6)))));
+ r = half*y+p/q;
+ z = one; /* lgamma(1+s) = log(s) + lgamma(s) */
+ switch(i) {
+ case 7: z *= (y+(float)6.0); /* FALLTHRU */
+ case 6: z *= (y+(float)5.0); /* FALLTHRU */
+ case 5: z *= (y+(float)4.0); /* FALLTHRU */
+ case 4: z *= (y+(float)3.0); /* FALLTHRU */
+ case 3: z *= (y+(float)2.0); /* FALLTHRU */
+ r += __ieee754_logf(z); break;
+ }
+ /* 8.0 <= x < 2**58 */
+ } else if (ix < 0x5c800000) {
+ t = __ieee754_logf(x);
+ z = one/x;
+ y = z*z;
+ w = w0+z*(w1+y*(w2+y*(w3+y*(w4+y*(w5+y*w6)))));
+ r = (x-half)*(t-one)+w;
+ } else
+ /* 2**58 <= x <= inf */
+ r = x*(__ieee754_logf(x)-one);
+ if(hx<0) r = nadj - r;
+ return r;
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF ef_lgamma_r.c
diff --git a/ecos/packages/language/c/libm/current/src/float/ieee754-core/ef_log.c b/ecos/packages/language/c/libm/current/src/float/ieee754-core/ef_log.c
new file mode 100644
index 0000000..cbf4a07
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/float/ieee754-core/ef_log.c
@@ -0,0 +1,159 @@
+//===========================================================================
+//
+// ef_log.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 2012-03-08
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/* ef_log.c -- float version of e_log.c.
+ * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+
+#include "mathincl/fdlibm.h"
+
+#ifdef __STDC__
+static const float
+#else
+static float
+#endif
+ln2_hi = 6.9313812256e-01, /* 0x3f317180 */
+ln2_lo = 9.0580006145e-06, /* 0x3717f7d1 */
+two25 = 3.355443200e+07, /* 0x4c000000 */
+Lg1 = 6.6666668653e-01, /* 3F2AAAAB */
+Lg2 = 4.0000000596e-01, /* 3ECCCCCD */
+Lg3 = 2.8571429849e-01, /* 3E924925 */
+Lg4 = 2.2222198546e-01, /* 3E638E29 */
+Lg5 = 1.8183572590e-01, /* 3E3A3325 */
+Lg6 = 1.5313838422e-01, /* 3E1CD04F */
+Lg7 = 1.4798198640e-01; /* 3E178897 */
+
+#ifdef __STDC__
+static const float zero = 0.0;
+#else
+static float zero = 0.0;
+#endif
+
+#ifdef __STDC__
+ float __ieee754_logf(float x)
+#else
+ float __ieee754_logf(x)
+ float x;
+#endif
+{
+ float hfsq,f,s,z,R,w,t1,t2,dk;
+ __int32_t k,ix,i,j;
+
+ ix = CYG_LIBM_WORD(x);
+
+ k=0;
+ if (FLT_UWORD_IS_ZERO(ix&0x7fffffff))
+ return -two25/zero; /* log(+-0)=-inf */
+ if (ix<0) return (x-x)/zero; /* log(-#) = NaN */
+ if (!FLT_UWORD_IS_FINITE(ix)) return x+x;
+ if (FLT_UWORD_IS_SUBNORMAL(ix)) {
+ k -= 25; x *= two25; /* subnormal number, scale up x */
+ ix = CYG_LIBM_WORD(x);
+ }
+ k += (ix>>23)-127;
+ ix &= 0x007fffff;
+ i = (ix+(0x95f64<<3))&0x800000;
+ SET_FLOAT_WORD(x,ix|(i^0x3f800000)); /* normalize x or x/2 */
+ k += (i>>23);
+ f = x-(float)1.0;
+ if((0x007fffff&(15+ix))<16) { /* |f| < 2**-20 */
+ if(f==zero) { if(k==0) return zero; else {dk=(float)k;
+ return dk*ln2_hi+dk*ln2_lo;}}
+ R = f*f*((float)0.5-(float)0.33333333333333333*f);
+ if(k==0) return f-R; else {dk=(float)k;
+ return dk*ln2_hi-((R-dk*ln2_lo)-f);}
+ }
+ s = f/((float)2.0+f);
+ dk = (float)k;
+ z = s*s;
+ i = ix-(0x6147a<<3);
+ w = z*z;
+ j = (0x6b851<<3)-ix;
+ t1= w*(Lg2+w*(Lg4+w*Lg6));
+ t2= z*(Lg1+w*(Lg3+w*(Lg5+w*Lg7)));
+ i |= j;
+ R = t2+t1;
+ if(i>0) {
+ hfsq=(float)0.5*f*f;
+ if(k==0) return f-(hfsq-s*(hfsq+R)); else
+ return dk*ln2_hi-((hfsq-(s*(hfsq+R)+dk*ln2_lo))-f);
+ } else {
+ if(k==0) return f-s*(f-R); else
+ return dk*ln2_hi-((s*(f-R)-dk*ln2_lo)-f);
+ }
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF ef_log.c
diff --git a/ecos/packages/language/c/libm/current/src/float/ieee754-core/ef_log10.c b/ecos/packages/language/c/libm/current/src/float/ieee754-core/ef_log10.c
new file mode 100644
index 0000000..0399805
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/float/ieee754-core/ef_log10.c
@@ -0,0 +1,129 @@
+//===========================================================================
+//
+// ef_log10.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 2012-03-08
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/* ef_log10.c -- float version of e_log10.c.
+ * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+
+#include "mathincl/fdlibm.h"
+
+#ifdef __STDC__
+static const float
+#else
+static float
+#endif
+two25 = 3.3554432000e+07, /* 0x4c000000 */
+ivln10 = 4.3429449201e-01, /* 0x3ede5bd9 */
+log10_2hi = 3.0102920532e-01, /* 0x3e9a2080 */
+log10_2lo = 7.9034151668e-07; /* 0x355427db */
+
+#ifdef __STDC__
+static const float zero = 0.0;
+#else
+static float zero = 0.0;
+#endif
+
+#ifdef __STDC__
+ float __ieee754_log10f(float x)
+#else
+ float __ieee754_log10f(x)
+ float x;
+#endif
+{
+ float y,z;
+ __int32_t i,k,hx;
+
+ hx = CYG_LIBM_WORD(x);
+
+ k=0;
+ if (FLT_UWORD_IS_ZERO(hx&0x7fffffff))
+ return -two25/zero; /* log(+-0)=-inf */
+ if (hx<0) return (x-x)/zero; /* log(-#) = NaN */
+ if (!FLT_UWORD_IS_FINITE(hx)) return x+x;
+ if (FLT_UWORD_IS_SUBNORMAL(hx)) {
+ k -= 25; x *= two25; /* subnormal number, scale up x */
+ hx = CYG_LIBM_WORD(x);
+ }
+ k += (hx>>23)-127;
+ i = ((__uint32_t)k&0x80000000)>>31;
+ hx = (hx&0x007fffff)|((0x7f-i)<<23);
+ y = (float)(k+i);
+ SET_FLOAT_WORD(x,hx);
+ z = y*log10_2lo + ivln10*__ieee754_logf(x);
+ return z+y*log10_2hi;
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF ef_log10.c
diff --git a/ecos/packages/language/c/libm/current/src/float/ieee754-core/ef_pow.c b/ecos/packages/language/c/libm/current/src/float/ieee754-core/ef_pow.c
new file mode 100644
index 0000000..13f30e6
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/float/ieee754-core/ef_pow.c
@@ -0,0 +1,325 @@
+//========================================================================
+//
+// ef_pow.c
+//
+// Part of the standard mathematical function library
+//
+//========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors:
+// Date: 2001-07-20
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+/* ef_pow.c -- float version of e_pow.c.
+ * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+#include <pkgconf/libm.h> // Configuration header
+
+#include "mathincl/fdlibm.h"
+
+#ifdef __STDC__
+static const float
+#else
+static float
+#endif
+bp[] = {1.0, 1.5,},
+dp_h[] = { 0.0, 5.84960938e-01,}, /* 0x3f15c000 */
+dp_l[] = { 0.0, 1.56322085e-06,}, /* 0x35d1cfdc */
+zero = 0.0,
+one = 1.0,
+two = 2.0,
+two24 = 16777216.0, /* 0x4b800000 */
+huge = 1.0e30,
+tiny = 1.0e-30,
+ /* poly coefs for (3/2)*(log(x)-2s-2/3*s**3 */
+L1 = 6.0000002384e-01, /* 0x3f19999a */
+L2 = 4.2857143283e-01, /* 0x3edb6db7 */
+L3 = 3.3333334327e-01, /* 0x3eaaaaab */
+L4 = 2.7272811532e-01, /* 0x3e8ba305 */
+L5 = 2.3066075146e-01, /* 0x3e6c3255 */
+L6 = 2.0697501302e-01, /* 0x3e53f142 */
+P1 = 1.6666667163e-01, /* 0x3e2aaaab */
+P2 = -2.7777778450e-03, /* 0xbb360b61 */
+P3 = 6.6137559770e-05, /* 0x388ab355 */
+P4 = -1.6533901999e-06, /* 0xb5ddea0e */
+P5 = 4.1381369442e-08, /* 0x3331bb4c */
+lg2 = 6.9314718246e-01, /* 0x3f317218 */
+lg2_h = 6.93145752e-01, /* 0x3f317200 */
+lg2_l = 1.42860654e-06, /* 0x35bfbe8c */
+ovt = 4.2995665694e-08, /* -(128-log2(ovfl+.5ulp)) */
+cp = 9.6179670095e-01, /* 0x3f76384f =2/(3ln2) */
+cp_h = 9.6179199219e-01, /* 0x3f763800 =head of cp */
+cp_l = 4.7017383622e-06, /* 0x369dc3a0 =tail of cp_h */
+ivln2 = 1.4426950216e+00, /* 0x3fb8aa3b =1/ln2 */
+ivln2_h = 1.4426879883e+00, /* 0x3fb8aa00 =16b 1/ln2*/
+ivln2_l = 7.0526075433e-06; /* 0x36eca570 =1/ln2 tail*/
+
+/* VAE
+static float
+my_abs_f( float x )
+{
+ Cyg_libm_ieee_float_shape_type t;
+
+ t.value = x;
+
+ t.number.sign = 0;
+
+ return t.value;
+} // my_abs_f()
+*/
+
+#ifdef __STDC__
+ float __ieee754_powf(float x, float y)
+#else
+ float __ieee754_powf(x,y)
+ float x, y;
+#endif
+{
+ float z,ax,z_h,z_l,p_h,p_l;
+ float y1,t1,t2,r,s,t,u,v,w;
+ __int32_t i,j,k,yisint,n;
+ __int32_t hx,hy,ix,iy,is;
+
+ hx = CYG_LIBM_WORD(x);
+ hy = CYG_LIBM_WORD(y);
+ ix = hx&0x7fffffff; iy = hy&0x7fffffff;
+
+ /* y==zero: x**0 = 1 */
+ if(FLT_UWORD_IS_ZERO(iy)) return one;
+
+ /* x|y==NaN return NaN unless x==1 then return 1 */
+ if(FLT_UWORD_IS_NAN(ix) ||
+ FLT_UWORD_IS_NAN(iy)) { // VAE
+ if(ix==0x3f800000) return one;
+ else return 2143289344u;
+ }
+ /* determine if y is an odd int when x < 0
+ * yisint = 0 ... y is not an integer
+ * yisint = 1 ... y is an odd int
+ * yisint = 2 ... y is an even int
+ */
+ yisint = 0;
+ if(hx<0) {
+ if(iy>=0x4b800000) yisint = 2; /* even integer y */
+ else if(iy>=0x3f800000) {
+ k = (iy>>23)-0x7f; /* exponent */
+ j = iy>>(23-k);
+ if((j<<(23-k))==iy) yisint = 2-(j&1);
+ }
+ }
+
+ /* special value of y */
+ if (FLT_UWORD_IS_INFINITE(iy)) { /* y is +-inf */
+ if (ix==0x3f800000)
+ return one; /* +-1**+-inf = 1 */
+ else if (ix > 0x3f800000)/* (|x|>1)**+-inf = inf,0 */
+ return (hy>=0)? y: zero;
+ else /* (|x|<1)**-,+inf = inf,0 */
+ return (hy<0)?-y: zero;
+ }
+ if(iy==0x3f800000) { /* y is +-1 */
+ if(hy<0) return one/x; else return x;
+ }
+ if(hy==0x40000000) return x*x; /* y is 2 */
+ if(hy==0x3f000000) { /* y is 0.5 */
+ if(hx>=0) /* x >= +0 */
+ return __ieee754_sqrtf(x);
+ }
+
+ ax = fabsf(x);
+ /* special value of x */
+ if(FLT_UWORD_IS_INFINITE(ix)||FLT_UWORD_IS_ZERO(ix)||ix==0x3f800000){
+ z = ax; /*x is +-0,+-inf,+-1*/
+ if(hy<0) z = one/z; /* z = (1/|x|) */
+ if(hx<0) {
+ if(((ix-0x3f800000)|yisint)==0) {
+ z = (z-z)/(z-z); /* (-1)**non-int is NaN */
+ } else if(yisint==1)
+ z = -z; /* (x<0)**odd = -(|x|**odd) */
+ }
+ return z;
+ }
+
+ /* (x<0)**(non-int) is NaN */
+ if(((((__uint32_t)hx>>31)-1)|yisint)==0) return (x-x)/(x-x);
+
+ /* |y| is huge */
+ if(iy>0x4d000000) { /* if |y| > 2**27 */
+ /* over/underflow if x is not close to one */
+ if(ix<0x3f7ffff8) return (hy<0)? huge*huge:tiny*tiny;
+ if(ix>0x3f800007) return (hy>0)? huge*huge:tiny*tiny;
+ /* now |1-x| is tiny <= 2**-20, suffice to compute
+ log(x) by x-x^2/2+x^3/3-x^4/4 */
+ t = ax-1; /* t has 20 trailing zeros */
+ w = (t*t)*((float)0.5-t*((float)0.333333333333-t*(float)0.25));
+ u = ivln2_h*t; /* ivln2_h has 16 sig. bits */
+ v = t*ivln2_l-w*ivln2;
+ t1 = u+v;
+ is = CYG_LIBM_WORD(t1);
+ SET_FLOAT_WORD(t1,is&0xfffff000);
+ t2 = v-(t1-u);
+ } else {
+ float s2,s_h,s_l,t_h,t_l;
+ n = 0;
+ /* take care subnormal number */
+ if(FLT_UWORD_IS_SUBNORMAL(ix))
+ {ax *= two24; n -= 24; ix = CYG_LIBM_WORD(ax); }
+ n += ((ix)>>23)-0x7f;
+ j = ix&0x007fffff;
+ /* determine interval */
+ ix = j|0x3f800000; /* normalize ix */
+ if(j<=0x1cc471) k=0; /* |x|<sqrt(3/2) */
+ else if(j<0x5db3d7) k=1; /* |x|<sqrt(3) */
+ else {k=0;n+=1;ix -= 0x00800000;}
+ SET_FLOAT_WORD(ax,ix);
+
+ /* compute s = s_h+s_l = (x-1)/(x+1) or (x-1.5)/(x+1.5) */
+ u = ax-bp[k]; /* bp[0]=1.0, bp[1]=1.5 */
+ v = one/(ax+bp[k]);
+ s = u*v;
+ s_h = s;
+ is = CYG_LIBM_WORD(s_h);
+ SET_FLOAT_WORD(s_h,is&0xfffff000);
+ /* t_h=ax+bp[k] High */
+ SET_FLOAT_WORD(t_h,((ix>>1)|0x20000000)+0x0040000+(k<<21));
+ t_l = ax - (t_h-bp[k]);
+ s_l = v*((u-s_h*t_h)-s_h*t_l);
+ /* compute log(ax) */
+ s2 = s*s;
+ r = s2*s2*(L1+s2*(L2+s2*(L3+s2*(L4+s2*(L5+s2*L6)))));
+ r += s_l*(s_h+s);
+ s2 = s_h*s_h;
+ t_h = (float)3.0+s2+r;
+ is = CYG_LIBM_WORD(t_h);
+ SET_FLOAT_WORD(t_h,is&0xfffff000);
+ t_l = r-((t_h-(float)3.0)-s2);
+ /* u+v = s*(1+...) */
+ u = s_h*t_h;
+ v = s_l*t_h+t_l*s;
+ /* 2/(3log2)*(s+...) */
+ p_h = u+v;
+ is = CYG_LIBM_WORD(p_h);
+ SET_FLOAT_WORD(p_h,is&0xfffff000);
+ p_l = v-(p_h-u);
+ z_h = cp_h*p_h; /* cp_h+cp_l = 2/(3*log2) */
+ z_l = cp_l*p_h+p_l*cp+dp_l[k];
+ /* log2(ax) = (s+..)*2/(3*log2) = n + dp_h + z_h + z_l */
+ t = (float)n;
+ t1 = (((z_h+z_l)+dp_h[k])+t);
+ is = CYG_LIBM_WORD(t1);
+ SET_FLOAT_WORD(t1,is&0xfffff000);
+ t2 = z_l-(((t1-t)-dp_h[k])-z_h);
+ }
+
+ s = one; /* s (sign of result -ve**odd) = -1 else = 1 */
+ if(((((__uint32_t)hx>>31)-1)|(yisint-1))==0)
+ s = -one; /* (-ve)**(odd int) */
+
+ /* split up y into y1+y2 and compute (y1+y2)*(t1+t2) */
+ is = CYG_LIBM_WORD(y);
+ SET_FLOAT_WORD(y1,is&0xfffff000);
+ p_l = (y-y1)*t1+y*t2;
+ p_h = y1*t1;
+ z = p_l+p_h;
+ j = CYG_LIBM_WORD(z);
+ i = j&0x7fffffff;
+ if (j>0) {
+ if (i>FLT_UWORD_EXP_MAX)
+ return s*huge*huge; /* overflow */
+ else if (i==FLT_UWORD_EXP_MAX)
+ if(p_l+ovt>z-p_h) return s*huge*huge; /* overflow */
+ } else {
+ if (i>FLT_UWORD_EXP_MIN)
+ return s*tiny*tiny; /* underflow */
+ else if (i==FLT_UWORD_EXP_MIN)
+ if(p_l<=z-p_h) return s*tiny*tiny; /* underflow */
+ }
+ /*
+ * compute 2**(p_h+p_l)
+ */
+ k = (i>>23)-0x7f;
+ n = 0;
+ if(i>0x3f000000) { /* if |z| > 0.5, set n = [z+0.5] */
+ n = j+(0x00800000>>(k+1));
+ k = ((n&0x7fffffff)>>23)-0x7f; /* new k for n */
+ SET_FLOAT_WORD(t,n&~(0x007fffff>>k));
+ n = ((n&0x007fffff)|0x00800000)>>(23-k);
+ if(j<0) n = -n;
+ p_h -= t;
+ }
+ t = p_l+p_h;
+ is = CYG_LIBM_WORD(t);
+ SET_FLOAT_WORD(t,is&0xfffff000);
+ u = t*lg2_h;
+ v = (p_l-(t-p_h))*lg2+t*lg2_l;
+ z = u+v;
+ w = v-(z-u);
+ t = z*z;
+ t1 = z - t*(P1+t*(P2+t*(P3+t*(P4+t*P5))));
+ r = (z*t1)/(t1-two)-(w+z*w);
+ z = one-(r-z);
+ j = CYG_LIBM_WORD(z);
+ j += (n<<23);
+ if((j>>23)<=0) z = scalbn(z,(int)n); /* subnormal output */
+ else SET_FLOAT_WORD(z,j);
+ return s*z;
+}
+
+// EOF ef_pow.c
diff --git a/ecos/packages/language/c/libm/current/src/float/ieee754-core/ef_rem_pio2.c b/ecos/packages/language/c/libm/current/src/float/ieee754-core/ef_rem_pio2.c
new file mode 100644
index 0000000..ef57eba
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/float/ieee754-core/ef_rem_pio2.c
@@ -0,0 +1,260 @@
+//===========================================================================
+//
+// ef_rem_pio2.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 2012-03-08
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/* ef_rem_pio2.c -- float version of e_rem_pio2.c
+ * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ *
+ */
+
+/* __ieee754_rem_pio2f(x,y)
+ *
+ * return the remainder of x rem pi/2 in y[0]+y[1]
+ * use __kernel_rem_pio2f()
+ */
+
+
+#include "mathincl/fdlibm.h"
+
+/*
+ * Table of constants for 2/pi, 396 Hex digits (476 decimal) of 2/pi
+ */
+#ifdef __STDC__
+static const __int32_t two_over_pi[] = {
+#else
+static __int32_t two_over_pi[] = {
+#endif
+0xA2, 0xF9, 0x83, 0x6E, 0x4E, 0x44, 0x15, 0x29, 0xFC,
+0x27, 0x57, 0xD1, 0xF5, 0x34, 0xDD, 0xC0, 0xDB, 0x62,
+0x95, 0x99, 0x3C, 0x43, 0x90, 0x41, 0xFE, 0x51, 0x63,
+0xAB, 0xDE, 0xBB, 0xC5, 0x61, 0xB7, 0x24, 0x6E, 0x3A,
+0x42, 0x4D, 0xD2, 0xE0, 0x06, 0x49, 0x2E, 0xEA, 0x09,
+0xD1, 0x92, 0x1C, 0xFE, 0x1D, 0xEB, 0x1C, 0xB1, 0x29,
+0xA7, 0x3E, 0xE8, 0x82, 0x35, 0xF5, 0x2E, 0xBB, 0x44,
+0x84, 0xE9, 0x9C, 0x70, 0x26, 0xB4, 0x5F, 0x7E, 0x41,
+0x39, 0x91, 0xD6, 0x39, 0x83, 0x53, 0x39, 0xF4, 0x9C,
+0x84, 0x5F, 0x8B, 0xBD, 0xF9, 0x28, 0x3B, 0x1F, 0xF8,
+0x97, 0xFF, 0xDE, 0x05, 0x98, 0x0F, 0xEF, 0x2F, 0x11,
+0x8B, 0x5A, 0x0A, 0x6D, 0x1F, 0x6D, 0x36, 0x7E, 0xCF,
+0x27, 0xCB, 0x09, 0xB7, 0x4F, 0x46, 0x3F, 0x66, 0x9E,
+0x5F, 0xEA, 0x2D, 0x75, 0x27, 0xBA, 0xC7, 0xEB, 0xE5,
+0xF1, 0x7B, 0x3D, 0x07, 0x39, 0xF7, 0x8A, 0x52, 0x92,
+0xEA, 0x6B, 0xFB, 0x5F, 0xB1, 0x1F, 0x8D, 0x5D, 0x08,
+0x56, 0x03, 0x30, 0x46, 0xFC, 0x7B, 0x6B, 0xAB, 0xF0,
+0xCF, 0xBC, 0x20, 0x9A, 0xF4, 0x36, 0x1D, 0xA9, 0xE3,
+0x91, 0x61, 0x5E, 0xE6, 0x1B, 0x08, 0x65, 0x99, 0x85,
+0x5F, 0x14, 0xA0, 0x68, 0x40, 0x8D, 0xFF, 0xD8, 0x80,
+0x4D, 0x73, 0x27, 0x31, 0x06, 0x06, 0x15, 0x56, 0xCA,
+0x73, 0xA8, 0xC9, 0x60, 0xE2, 0x7B, 0xC0, 0x8C, 0x6B,
+};
+
+/* This array is like the one in e_rem_pio2.c, but the numbers are
+ single precision and the last 8 bits are forced to 0. */
+#ifdef __STDC__
+static const __int32_t npio2_hw[] = {
+#else
+static __int32_t npio2_hw[] = {
+#endif
+0x3fc90f00, 0x40490f00, 0x4096cb00, 0x40c90f00, 0x40fb5300, 0x4116cb00,
+0x412fed00, 0x41490f00, 0x41623100, 0x417b5300, 0x418a3a00, 0x4196cb00,
+0x41a35c00, 0x41afed00, 0x41bc7e00, 0x41c90f00, 0x41d5a000, 0x41e23100,
+0x41eec200, 0x41fb5300, 0x4203f200, 0x420a3a00, 0x42108300, 0x4216cb00,
+0x421d1400, 0x42235c00, 0x4229a500, 0x422fed00, 0x42363600, 0x423c7e00,
+0x4242c700, 0x42490f00
+};
+
+/*
+ * invpio2: 24 bits of 2/pi
+ * pio2_1: first 17 bit of pi/2
+ * pio2_1t: pi/2 - pio2_1
+ * pio2_2: second 17 bit of pi/2
+ * pio2_2t: pi/2 - (pio2_1+pio2_2)
+ * pio2_3: third 17 bit of pi/2
+ * pio2_3t: pi/2 - (pio2_1+pio2_2+pio2_3)
+ */
+
+#ifdef __STDC__
+static const float
+#else
+static float
+#endif
+zero = 0.0000000000e+00, /* 0x00000000 */
+half = 5.0000000000e-01, /* 0x3f000000 */
+two8 = 2.5600000000e+02, /* 0x43800000 */
+invpio2 = 6.3661980629e-01, /* 0x3f22f984 */
+pio2_1 = 1.5707855225e+00, /* 0x3fc90f80 */
+pio2_1t = 1.0804334124e-05, /* 0x37354443 */
+pio2_2 = 1.0804273188e-05, /* 0x37354400 */
+pio2_2t = 6.0770999344e-11, /* 0x2e85a308 */
+pio2_3 = 6.0770943833e-11, /* 0x2e85a300 */
+pio2_3t = 6.1232342629e-17; /* 0x248d3132 */
+
+#ifdef __STDC__
+ __int32_t __ieee754_rem_pio2f(float x, float *y)
+#else
+ __int32_t __ieee754_rem_pio2f(x,y)
+ float x,y[];
+#endif
+{
+ float z,w,t,r,fn;
+ float tx[3];
+ __int32_t i,j,n,ix,hx;
+ int e0,nx;
+
+ hx = CYG_LIBM_WORD(x);
+ ix = hx&0x7fffffff;
+ if(ix<=0x3f490fd8) /* |x| ~<= pi/4 , no need for reduction */
+ {y[0] = x; y[1] = 0; return 0;}
+ if(ix<0x4016cbe4) { /* |x| < 3pi/4, special case with n=+-1 */
+ if(hx>0) {
+ z = x - pio2_1;
+ if((ix&0xfffffff0)!=0x3fc90fd0) { /* 24+24 bit pi OK */
+ y[0] = z - pio2_1t;
+ y[1] = (z-y[0])-pio2_1t;
+ } else { /* near pi/2, use 24+24+24 bit pi */
+ z -= pio2_2;
+ y[0] = z - pio2_2t;
+ y[1] = (z-y[0])-pio2_2t;
+ }
+ return 1;
+ } else { /* negative x */
+ z = x + pio2_1;
+ if((ix&0xfffffff0)!=0x3fc90fd0) { /* 24+24 bit pi OK */
+ y[0] = z + pio2_1t;
+ y[1] = (z-y[0])+pio2_1t;
+ } else { /* near pi/2, use 24+24+24 bit pi */
+ z += pio2_2;
+ y[0] = z + pio2_2t;
+ y[1] = (z-y[0])+pio2_2t;
+ }
+ return -1;
+ }
+ }
+ if(ix<=0x43490f80) { /* |x| ~<= 2^7*(pi/2), medium size */
+ t = fabsf(x);
+ n = (__int32_t) (t*invpio2+half);
+ fn = (float)n;
+ r = t-fn*pio2_1;
+ w = fn*pio2_1t; /* 1st round good to 40 bit */
+ if(n<32&&(ix&0xffffff00)!=npio2_hw[n-1]) {
+ y[0] = r-w; /* quick check no cancellation */
+ } else {
+ __uint32_t high;
+ j = ix>>23;
+ y[0] = r-w;
+ high = CYG_LIBM_WORD(y[0]);
+ i = j-((high>>23)&0xff);
+ if(i>8) { /* 2nd iteration needed, good to 57 */
+ t = r;
+ w = fn*pio2_2;
+ r = t-w;
+ w = fn*pio2_2t-((t-r)-w);
+ y[0] = r-w;
+ high = CYG_LIBM_WORD(y[0]);
+ i = j-((high>>23)&0xff);
+ if(i>25) { /* 3rd iteration need, 74 bits acc */
+ t = r; /* will cover all possible cases */
+ w = fn*pio2_3;
+ r = t-w;
+ w = fn*pio2_3t-((t-r)-w);
+ y[0] = r-w;
+ }
+ }
+ }
+ y[1] = (r-y[0])-w;
+ if(hx<0) {y[0] = -y[0]; y[1] = -y[1]; return -n;}
+ else return n;
+ }
+ /*
+ * all other (large) arguments
+ */
+ if(!FLT_UWORD_IS_FINITE(ix)) {
+ y[0]=y[1]=x-x; return 0;
+ }
+ /* set z = scalbn(|x|,ilogb(x)-7) */
+ e0 = (int)((ix>>23)-134); /* e0 = ilogb(z)-7; */
+ SET_FLOAT_WORD(z, ix - ((__int32_t)e0<<23));
+ for(i=0;i<2;i++) {
+ tx[i] = (float)((__int32_t)(z));
+ z = (z-tx[i])*two8;
+ }
+ tx[2] = z;
+ nx = 3;
+ while(tx[nx-1]==zero) nx--; /* skip zero term */
+ n = __kernel_rem_pio2f(tx,y,e0,nx,2,two_over_pi);
+ if(hx<0) {y[0] = -y[0]; y[1] = -y[1]; return -n;}
+ return n;
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF ef_rem_pio2.c
diff --git a/ecos/packages/language/c/libm/current/src/float/ieee754-core/ef_remainder.c b/ecos/packages/language/c/libm/current/src/float/ieee754-core/ef_remainder.c
new file mode 100644
index 0000000..921d0a2
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/float/ieee754-core/ef_remainder.c
@@ -0,0 +1,135 @@
+//===========================================================================
+//
+// ef_remainder.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 2012-03-08
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/* ef_remainder.c -- float version of e_remainder.c.
+ * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+
+#include "mathincl/fdlibm.h"
+
+#ifdef __STDC__
+static const float zero = 0.0;
+#else
+static float zero = 0.0;
+#endif
+
+
+#ifdef __STDC__
+ float __ieee754_remainderf(float x, float p)
+#else
+ float __ieee754_remainderf(x,p)
+ float x,p;
+#endif
+{
+ __int32_t hx,hp;
+ __uint32_t sx;
+ float p_half;
+
+ hx = CYG_LIBM_WORD(x);
+ hp = CYG_LIBM_WORD(p);
+ sx = hx&0x80000000;
+ hp &= 0x7fffffff;
+ hx &= 0x7fffffff;
+
+ /* purge off exception values */
+ if(FLT_UWORD_IS_ZERO(hp)||
+ !FLT_UWORD_IS_FINITE(hx)||
+ FLT_UWORD_IS_NAN(hp))
+ return (x*p)/(x*p);
+
+
+ if (hp<=FLT_UWORD_HALF_MAX) x = __ieee754_fmodf(x,p+p); /* now x < 2p */
+ if ((hx-hp)==0) return zero*x;
+ x = fabsf(x);
+ p = fabsf(p);
+ if (hp<0x01000000) {
+ if(x+x>p) {
+ x-=p;
+ if(x+x>=p) x -= p;
+ }
+ } else {
+ p_half = (float)0.5*p;
+ if(x>p_half) {
+ x-=p;
+ if(x>=p_half) x -= p;
+ }
+ }
+ hx = CYG_LIBM_WORD(x);
+ SET_FLOAT_WORD(x,hx^sx);
+ return x;
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF ef_remainder.c
diff --git a/ecos/packages/language/c/libm/current/src/float/ieee754-core/ef_scalb.c b/ecos/packages/language/c/libm/current/src/float/ieee754-core/ef_scalb.c
new file mode 100644
index 0000000..450babd
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/float/ieee754-core/ef_scalb.c
@@ -0,0 +1,118 @@
+//===========================================================================
+//
+// ef_scalb.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 2012-03-08
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/* ef_scalb.c -- float version of e_scalb.c.
+ * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+
+#include "mathincl/fdlibm.h"
+
+#ifdef CYGFUN_LIBM_SVID3_scalb
+#ifdef __STDC__
+ float __ieee754_scalbf(float x, float fn)
+#else
+ float __ieee754_scalbf(float x, int fn)
+#endif
+#else
+#ifdef __STDC__
+ float __ieee754_scalbf(float x, float fn)
+#else
+ float __ieee754_scalbf(x,fn)
+ float x, fn;
+#endif
+#endif
+{
+#ifdef CYGFUN_LIBM_SVID3_scalb
+ return scalbnf(x,fn);
+#else
+ if (isnan(x)||isnan(fn)) return x*fn;
+ if (!finitef(fn)) {
+ if(fn>(float)0.0) return x*fn;
+ else return x/(-fn);
+ }
+ if (rintf(fn)!=fn) return (fn-fn)/(fn-fn);
+#if INT_MAX > 65000
+ if ( fn > (float)65000.0) return scalbnf(x, 65000);
+ if (-fn > (float)65000.0) return scalbnf(x,-65000);
+#else
+ if ( fn > (float)32000.0) return scalbnf(x, 32000);
+ if (-fn > (float)32000.0) return scalbnf(x,-32000);
+#endif
+ return scalbnf(x,(int)fn);
+#endif
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF e_scalb.c
diff --git a/ecos/packages/language/c/libm/current/src/float/ieee754-core/ef_sinh.c b/ecos/packages/language/c/libm/current/src/float/ieee754-core/ef_sinh.c
new file mode 100644
index 0000000..416cc64
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/float/ieee754-core/ef_sinh.c
@@ -0,0 +1,130 @@
+//===========================================================================
+//
+// ef_sinh.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 2012-03-08
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/* ef_sinh.c -- float version of e_sinh.c.
+ * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+
+#include "mathincl/fdlibm.h"
+
+#ifdef __STDC__
+static const float one = 1.0, shuge = 1.0e37;
+#else
+static float one = 1.0, shuge = 1.0e37;
+#endif
+
+#ifdef __STDC__
+ float __ieee754_sinhf(float x)
+#else
+ float __ieee754_sinhf(x)
+ float x;
+#endif
+{
+ float t,w,h;
+ __int32_t ix,jx;
+
+ jx = CYG_LIBM_WORD(x);
+ ix = jx&0x7fffffff;
+
+ /* x is INF or NaN */
+ if(!FLT_UWORD_IS_FINITE(ix)) return x+x;
+
+ h = 0.5;
+ if (jx<0) h = -h;
+ /* |x| in [0,22], return sign(x)*0.5*(E+E/(E+1))) */
+ if (ix < 0x41b00000) { /* |x|<22 */
+ if (ix<0x31800000) /* |x|<2**-28 */
+ if(shuge+x>one) return x;/* sinh(tiny) = tiny with inexact */
+ t = expm1f(fabsf(x));
+ if(ix<0x3f800000) return h*((float)2.0*t-t*t/(t+one));
+ return h*(t+t/(t+one));
+ }
+
+ /* |x| in [22, log(maxdouble)] return 0.5*exp(|x|) */
+ if (ix<=FLT_UWORD_LOG_MAX) return h*__ieee754_expf(fabsf(x));
+
+ /* |x| in [log(maxdouble), overflowthresold] */
+ if (ix<=FLT_UWORD_LOG_2MAX) {
+ w = __ieee754_expf((float)0.5*fabsf(x));
+ t = h*w;
+ return t*w;
+ }
+
+ /* |x| > overflowthresold, sinh(x) overflow */
+ return x*shuge;
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF ef_sinh.c
diff --git a/ecos/packages/language/c/libm/current/src/float/ieee754-core/ef_sqrt.c b/ecos/packages/language/c/libm/current/src/float/ieee754-core/ef_sqrt.c
new file mode 100644
index 0000000..2f5e186
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/float/ieee754-core/ef_sqrt.c
@@ -0,0 +1,148 @@
+//===========================================================================
+//
+// ef_sqrt.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 2012-03-08
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/* ef_sqrtf.c -- float version of e_sqrt.c.
+ * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+
+#include "mathincl/fdlibm.h"
+
+static const float one = 1.0, tiny=1.0e-30;
+
+float __ieee754_sqrtf(float x)
+{
+ float z;
+ cyg_uint32 r,hx;
+ cyg_int32 ix,s,q,m,t,i;
+
+ ix = CYG_LIBM_WORD(x);
+
+ hx = ix&0x7fffffff;
+
+ /* take care of Inf and NaN */
+ if(!FLT_UWORD_IS_FINITE(hx))
+ return x*x+x; /* sqrt(NaN)=NaN, sqrt(+inf)=+inf
+ sqrt(-inf)=sNaN */
+ /* take care of zero and -ves */
+ if(FLT_UWORD_IS_ZERO(hx)) return x;/* sqrt(+-0) = +-0 */
+ if(ix<0) return (x-x)/(x-x); /* sqrt(-ve) = sNaN */
+
+ /* normalize x */
+ m = (ix>>23);
+ if(FLT_UWORD_IS_SUBNORMAL(hx)) { /* subnormal x */
+ for(i=0;(ix&0x00800000L)==0;i++) ix<<=1;
+ m -= i-1;
+ }
+ m -= 127; /* unbias exponent */
+ ix = (ix&0x007fffffL)|0x00800000L;
+ if(m&1) /* odd m, double x to make it even */
+ ix += ix;
+ m >>= 1; /* m = [m/2] */
+
+ /* generate sqrt(x) bit by bit */
+ ix += ix;
+ q = s = 0; /* q = sqrt(x) */
+ r = 0x01000000L; /* r = moving bit from right to left */
+
+ while(r!=0) {
+ t = s+r;
+ if(t<=ix) {
+ s = t+r;
+ ix -= t;
+ q += r;
+ }
+ ix += ix;
+ r>>=1;
+ }
+
+ /* use floating add to find out rounding direction */
+ if(ix!=0) {
+ z = one-tiny; /* trigger inexact flag */
+ if (z>=one) {
+ z = one+tiny;
+ if (z>one)
+ q += 2;
+ else
+ q += (q&1);
+ }
+ }
+ ix = (q>>1)+0x3f000000L;
+ ix += (m <<23);
+ SET_FLOAT_WORD(z,ix);
+ return z;
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF ef_sqrt.c
diff --git a/ecos/packages/language/c/libm/current/src/float/internal/kf_cos.c b/ecos/packages/language/c/libm/current/src/float/internal/kf_cos.c
new file mode 100644
index 0000000..8b872a7
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/float/internal/kf_cos.c
@@ -0,0 +1,126 @@
+//===========================================================================
+//
+// kf_cos.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 2012-03-08
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/* kf_cos.c -- float version of k_cos.c
+ * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+
+#include "mathincl/fdlibm.h"
+
+#ifdef __STDC__
+static const float
+#else
+static float
+#endif
+one = 1.0000000000e+00, /* 0x3f800000 */
+C1 = 4.1666667908e-02, /* 0x3d2aaaab */
+C2 = -1.3888889225e-03, /* 0xbab60b61 */
+C3 = 2.4801587642e-05, /* 0x37d00d01 */
+C4 = -2.7557314297e-07, /* 0xb493f27c */
+C5 = 2.0875723372e-09, /* 0x310f74f6 */
+C6 = -1.1359647598e-11; /* 0xad47d74e */
+
+#ifdef __STDC__
+ float __kernel_cosf(float x, float y)
+#else
+ float __kernel_cosf(x, y)
+ float x,y;
+#endif
+{
+ float a,hz,z,r,qx;
+ __int32_t ix;
+ ix = CYG_LIBM_WORD(x);
+ ix &= 0x7fffffff; /* ix = |x|'s high word*/
+ if(ix<0x32000000) { /* if x < 2**27 */
+ if(((int)x)==0) return one; /* generate inexact */
+ }
+ z = x*x;
+ r = z*(C1+z*(C2+z*(C3+z*(C4+z*(C5+z*C6)))));
+ if(ix < 0x3e99999a) /* if |x| < 0.3 */
+ return one - ((float)0.5*z - (z*r - x*y));
+ else {
+ if(ix > 0x3f480000) { /* x > 0.78125 */
+ qx = (float)0.28125;
+ } else {
+ SET_FLOAT_WORD(qx,ix-0x01000000); /* x/4 */
+ }
+ hz = (float)0.5*z-qx;
+ a = one-qx;
+ return a - (hz - (z*r-x*y));
+ }
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF kf_cos.c
diff --git a/ecos/packages/language/c/libm/current/src/float/internal/kf_rem_pio2.c b/ecos/packages/language/c/libm/current/src/float/internal/kf_rem_pio2.c
new file mode 100644
index 0000000..53eda76
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/float/internal/kf_rem_pio2.c
@@ -0,0 +1,275 @@
+//===========================================================================
+//
+// kf_rem_pio2.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 2012-03-08
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/* kf_rem_pio2.c -- float version of k_rem_pio2.c
+ * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+
+#include "mathincl/fdlibm.h"
+
+/* In the float version, the input parameter x contains 8 bit
+ integers, not 24 bit integers. 113 bit precision is not supported. */
+
+#ifdef __STDC__
+static const int init_jk[] = {4,7,9}; /* initial value for jk */
+#else
+static int init_jk[] = {4,7,9};
+#endif
+
+#ifdef __STDC__
+static const float PIo2[] = {
+#else
+static float PIo2[] = {
+#endif
+ 1.5703125000e+00, /* 0x3fc90000 */
+ 4.5776367188e-04, /* 0x39f00000 */
+ 2.5987625122e-05, /* 0x37da0000 */
+ 7.5437128544e-08, /* 0x33a20000 */
+ 6.0026650317e-11, /* 0x2e840000 */
+ 7.3896444519e-13, /* 0x2b500000 */
+ 5.3845816694e-15, /* 0x27c20000 */
+ 5.6378512969e-18, /* 0x22d00000 */
+ 8.3009228831e-20, /* 0x1fc40000 */
+ 3.2756352257e-22, /* 0x1bc60000 */
+ 6.3331015649e-25, /* 0x17440000 */
+};
+
+#ifdef __STDC__
+static const float
+#else
+static float
+#endif
+zero = 0.0,
+one = 1.0,
+two8 = 2.5600000000e+02, /* 0x43800000 */
+twon8 = 3.9062500000e-03; /* 0x3b800000 */
+
+#ifdef __STDC__
+ int __kernel_rem_pio2f(float *x, float *y, int e0, int nx, int prec, const __int32_t *ipio2)
+#else
+ int __kernel_rem_pio2f(x,y,e0,nx,prec,ipio2)
+ float x[], y[]; int e0,nx,prec; __int32_t ipio2[];
+#endif
+{
+ __int32_t jz,jx,jv,jp,jk,carry,n,iq[20],i,j,k,m,q0,ih;
+ float z,fw,f[20],fq[20],q[20];
+
+ /* initialize jk*/
+ jk = init_jk[prec];
+ jp = jk;
+
+ /* determine jx,jv,q0, note that 3>q0 */
+ jx = nx-1;
+ jv = (e0-3)/8; if(jv<0) jv=0;
+ q0 = e0-8*(jv+1);
+
+ /* set up f[0] to f[jx+jk] where f[jx+jk] = ipio2[jv+jk] */
+ j = jv-jx; m = jx+jk;
+ for(i=0;i<=m;i++,j++) f[i] = (j<0)? zero : (float) ipio2[j];
+
+ /* compute q[0],q[1],...q[jk] */
+ for (i=0;i<=jk;i++) {
+ for(j=0,fw=0.0;j<=jx;j++) fw += x[j]*f[jx+i-j]; q[i] = fw;
+ }
+
+ jz = jk;
+recompute:
+ /* distill q[] into iq[] reversingly */
+ for(i=0,j=jz,z=q[jz];j>0;i++,j--) {
+ fw = (float)((__int32_t)(twon8* z));
+ iq[i] = (__int32_t)(z-two8*fw);
+ z = q[j-1]+fw;
+ }
+
+ /* compute n */
+ z = scalbnf(z,(int)q0); /* actual value of z */
+ z -= (float)8.0*floorf(z*(float)0.125); /* trim off integer >= 8 */
+ n = (__int32_t) z;
+ z -= (float)n;
+ ih = 0;
+ if(q0>0) { /* need iq[jz-1] to determine n */
+ i = (iq[jz-1]>>(8-q0)); n += i;
+ iq[jz-1] -= i<<(8-q0);
+ ih = iq[jz-1]>>(7-q0);
+ }
+ else if(q0==0) ih = iq[jz-1]>>8;
+ else if(z>=(float)0.5) ih=2;
+
+ if(ih>0) { /* q > 0.5 */
+ n += 1; carry = 0;
+ for(i=0;i<jz ;i++) { /* compute 1-q */
+ j = iq[i];
+ if(carry==0) {
+ if(j!=0) {
+ carry = 1; iq[i] = 0x100- j;
+ }
+ } else iq[i] = 0xff - j;
+ }
+ if(q0>0) { /* rare case: chance is 1 in 12 */
+ switch(q0) {
+ case 1:
+ iq[jz-1] &= 0x7f; break;
+ case 2:
+ iq[jz-1] &= 0x3f; break;
+ }
+ }
+ if(ih==2) {
+ z = one - z;
+ if(carry!=0) z -= scalbnf(one,(int)q0);
+ }
+ }
+
+ /* check if recomputation is needed */
+ if(z==zero) {
+ j = 0;
+ for (i=jz-1;i>=jk;i--) j |= iq[i];
+ if(j==0) { /* need recomputation */
+ for(k=1;iq[jk-k]==0;k++); /* k = no. of terms needed */
+
+ for(i=jz+1;i<=jz+k;i++) { /* add q[jz+1] to q[jz+k] */
+ f[jx+i] = (float) ipio2[jv+i];
+ for(j=0,fw=0.0;j<=jx;j++) fw += x[j]*f[jx+i-j];
+ q[i] = fw;
+ }
+ jz += k;
+ goto recompute;
+ }
+ }
+
+ /* chop off zero terms */
+ if(z==(float)0.0) {
+ jz -= 1; q0 -= 8;
+ while(iq[jz]==0) { jz--; q0-=8;}
+ } else { /* break z into 8-bit if necessary */
+ z = scalbnf(z,-(int)q0);
+ if(z>=two8) {
+ fw = (float)((__int32_t)(twon8*z));
+ iq[jz] = (__int32_t)(z-two8*fw);
+ jz += 1; q0 += 8;
+ iq[jz] = (__int32_t) fw;
+ } else iq[jz] = (__int32_t) z ;
+ }
+
+ /* convert integer "bit" chunk to floating-point value */
+ fw = scalbnf(one,(int)q0);
+ for(i=jz;i>=0;i--) {
+ q[i] = fw*(float)iq[i]; fw*=twon8;
+ }
+
+ /* compute PIo2[0,...,jp]*q[jz,...,0] */
+ for(i=jz;i>=0;i--) {
+ for(fw=0.0,k=0;k<=jp&&k<=jz-i;k++) fw += PIo2[k]*q[i+k];
+ fq[jz-i] = fw;
+ }
+
+ /* compress fq[] into y[] */
+ switch(prec) {
+ case 0:
+ fw = 0.0;
+ for (i=jz;i>=0;i--) fw += fq[i];
+ y[0] = (ih==0)? fw: -fw;
+ break;
+ case 1:
+ case 2:
+ fw = 0.0;
+ for (i=jz;i>=0;i--) fw += fq[i];
+ y[0] = (ih==0)? fw: -fw;
+ fw = fq[0]-fw;
+ for (i=1;i<=jz;i++) fw += fq[i];
+ y[1] = (ih==0)? fw: -fw;
+ break;
+ case 3: /* painful */
+ for (i=jz;i>0;i--) {
+ fw = fq[i-1]+fq[i];
+ fq[i] += fq[i-1]-fw;
+ fq[i-1] = fw;
+ }
+ for (i=jz;i>1;i--) {
+ fw = fq[i-1]+fq[i];
+ fq[i] += fq[i-1]-fw;
+ fq[i-1] = fw;
+ }
+ for (fw=0.0,i=jz;i>=2;i--) fw += fq[i];
+ if(ih==0) {
+ y[0] = fq[0]; y[1] = fq[1]; y[2] = fw;
+ } else {
+ y[0] = -fq[0]; y[1] = -fq[1]; y[2] = -fw;
+ }
+ }
+ return n&7;
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF kf_rem_pio2.c
diff --git a/ecos/packages/language/c/libm/current/src/float/internal/kf_sin.c b/ecos/packages/language/c/libm/current/src/float/internal/kf_sin.c
new file mode 100644
index 0000000..9e50024
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/float/internal/kf_sin.c
@@ -0,0 +1,116 @@
+//===========================================================================
+//
+// kf_sin.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 2012-03-08
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/* kf_sin.c -- float version of k_sin.c
+ * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+
+#include "mathincl/fdlibm.h"
+
+#ifdef __STDC__
+static const float
+#else
+static float
+#endif
+half = 5.0000000000e-01,/* 0x3f000000 */
+S1 = -1.6666667163e-01, /* 0xbe2aaaab */
+S2 = 8.3333337680e-03, /* 0x3c088889 */
+S3 = -1.9841270114e-04, /* 0xb9500d01 */
+S4 = 2.7557314297e-06, /* 0x3638ef1b */
+S5 = -2.5050759689e-08, /* 0xb2d72f34 */
+S6 = 1.5896910177e-10; /* 0x2f2ec9d3 */
+
+#ifdef __STDC__
+ float __kernel_sinf(float x, float y, int iy)
+#else
+ float __kernel_sinf(x, y, iy)
+ float x,y; int iy; /* iy=0 if y is zero */
+#endif
+{
+ float z,r,v;
+ __int32_t ix;
+ ix = CYG_LIBM_WORD(x);
+ ix &= 0x7fffffff; /* high word of x */
+ if(ix<0x32000000) /* |x| < 2**-27 */
+ {if((int)x==0) return x;} /* generate inexact */
+ z = x*x;
+ v = z*x;
+ r = S2+z*(S3+z*(S4+z*(S5+z*S6)));
+ if(iy==0) return x+v*(S1+z*r);
+ else return x-((z*(half*y-v*r)-y)-v*S1);
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF kf_sin.c
diff --git a/ecos/packages/language/c/libm/current/src/float/internal/kf_tan.c b/ecos/packages/language/c/libm/current/src/float/internal/kf_tan.c
new file mode 100644
index 0000000..dfe1167
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/float/internal/kf_tan.c
@@ -0,0 +1,163 @@
+//===========================================================================
+//
+// kf_tan.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 2012-03-08
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/* kf_tan.c -- float version of k_tan.c
+ * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+
+#include "mathincl/fdlibm.h"
+#ifdef __STDC__
+static const float
+#else
+static float
+#endif
+one = 1.0000000000e+00, /* 0x3f800000 */
+pio4 = 7.8539812565e-01, /* 0x3f490fda */
+pio4lo= 3.7748947079e-08, /* 0x33222168 */
+T[] = {
+ 3.3333334327e-01, /* 0x3eaaaaab */
+ 1.3333334029e-01, /* 0x3e088889 */
+ 5.3968254477e-02, /* 0x3d5d0dd1 */
+ 2.1869488060e-02, /* 0x3cb327a4 */
+ 8.8632395491e-03, /* 0x3c11371f */
+ 3.5920790397e-03, /* 0x3b6b6916 */
+ 1.4562094584e-03, /* 0x3abede48 */
+ 5.8804126456e-04, /* 0x3a1a26c8 */
+ 2.4646313977e-04, /* 0x398137b9 */
+ 7.8179444245e-05, /* 0x38a3f445 */
+ 7.1407252108e-05, /* 0x3895c07a */
+ -1.8558637748e-05, /* 0xb79bae5f */
+ 2.5907305826e-05, /* 0x37d95384 */
+};
+
+#ifdef __STDC__
+ float __kernel_tanf(float x, float y, int iy)
+#else
+ float __kernel_tanf(x, y, iy)
+ float x,y; int iy;
+#endif
+{
+ float z,r,v,w,s;
+ __int32_t ix,hx;
+ hx = CYG_LIBM_WORD(x);
+ ix = hx&0x7fffffff; /* high word of |x| */
+ if(ix<0x31800000) /* x < 2**-28 */
+ {if((int)x==0) { /* generate inexact */
+ if((ix|(iy+1))==0) return one/fabsf(x);
+ else return (iy==1)? x: -one/x;
+ }
+ }
+ if(ix>=0x3f2ca140) { /* |x|>=0.6744 */
+ if(hx<0) {x = -x; y = -y;}
+ z = pio4-x;
+ w = pio4lo-y;
+ x = z+w; y = 0.0;
+ }
+ z = x*x;
+ w = z*z;
+ /* Break x^5*(T[1]+x^2*T[2]+...) into
+ * x^5(T[1]+x^4*T[3]+...+x^20*T[11]) +
+ * x^5(x^2*(T[2]+x^4*T[4]+...+x^22*[T12]))
+ */
+ r = T[1]+w*(T[3]+w*(T[5]+w*(T[7]+w*(T[9]+w*T[11]))));
+ v = z*(T[2]+w*(T[4]+w*(T[6]+w*(T[8]+w*(T[10]+w*T[12])))));
+ s = z*x;
+ r = y + z*(s*(r+v)+y);
+ r += T[0]*s;
+ w = x+r;
+ if(ix>=0x3f2ca140) {
+ v = (float)iy;
+ return (float)(1-((hx>>30)&2))*(v-(float)2.0*(x-(w*w/(w+v)-r)));
+ }
+ if(iy==1) return w;
+ else { /* if allow error up to 2 ulp,
+ simply return -1.0/(x+r) here */
+ /* compute -1.0/(x+r) accurately */
+ float a,t;
+ __int32_t i;
+ z = w;
+ i = CYG_LIBM_WORD(z);
+ SET_FLOAT_WORD(z,i&0xfffff000);
+ v = r-(z - x); /* z+v = r+x */
+ t = a = -(float)1.0/w; /* a = -1.0/w */
+ i = CYG_LIBM_WORD(t);
+ SET_FLOAT_WORD(t,i&0xfffff000);
+ s = (float)1.0+t*z;
+ return t+a*(s+t*v);
+ }
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF kf_tan.c
diff --git a/ecos/packages/language/c/libm/current/src/float/portable-api/sf_asinh.c b/ecos/packages/language/c/libm/current/src/float/portable-api/sf_asinh.c
new file mode 100644
index 0000000..7b1fdc1
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/float/portable-api/sf_asinh.c
@@ -0,0 +1,118 @@
+//===========================================================================
+//
+// sf_asinh.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 2012-03-08
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/* sf_asinh.c -- float version of s_asinh.c.
+ * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+#include "mathincl/fdlibm.h"
+
+#ifdef __STDC__
+static const float
+#else
+static float
+#endif
+one = 1.0000000000e+00, /* 0x3F800000 */
+ln2 = 6.9314718246e-01, /* 0x3f317218 */
+huge= 1.0000000000e+30;
+
+#ifdef __STDC__
+ float asinhf(float x)
+#else
+ float asinhf(x)
+ float x;
+#endif
+{
+ float t,w;
+ __int32_t hx,ix;
+ hx = CYG_LIBM_WORD(x);
+ ix = hx&0x7fffffff;
+ if(!FLT_UWORD_IS_FINITE(ix)) return x+x; /* x is inf or NaN */
+ if(ix< 0x31800000) { /* |x|<2**-28 */
+ if(huge+x>one) return x; /* return x inexact except 0 */
+ }
+ if(ix>0x4d800000) { /* |x| > 2**28 */
+ w = __ieee754_logf(fabsf(x))+ln2;
+ } else if (ix>0x40000000) { /* 2**28 > |x| > 2.0 */
+ t = fabsf(x);
+ w = __ieee754_logf((float)2.0*t+one/(__ieee754_sqrtf(x*x+one)+t));
+ } else { /* 2.0 > |x| > 2**-28 */
+ t = x*x;
+ w =log1pf(fabsf(x)+t/(one+__ieee754_sqrtf(one+t)));
+ }
+ if(hx>0) return w; else return -w;
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF sf_asinh.c
diff --git a/ecos/packages/language/c/libm/current/src/float/portable-api/sf_atan.c b/ecos/packages/language/c/libm/current/src/float/portable-api/sf_atan.c
new file mode 100644
index 0000000..e765bc9
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/float/portable-api/sf_atan.c
@@ -0,0 +1,183 @@
+//===========================================================================
+//
+// sf_atan.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 2012-03-08
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/* sf_atan.c -- float version of s_atan.c.
+ * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ *
+ */
+
+
+#include "mathincl/fdlibm.h"
+
+#ifdef __STDC__
+static const float atanhi[] = {
+#else
+static float atanhi[] = {
+#endif
+ 4.6364760399e-01, /* atan(0.5)hi 0x3eed6338 */
+ 7.8539812565e-01, /* atan(1.0)hi 0x3f490fda */
+ 9.8279368877e-01, /* atan(1.5)hi 0x3f7b985e */
+ 1.5707962513e+00, /* atan(inf)hi 0x3fc90fda */
+};
+
+#ifdef __STDC__
+static const float atanlo[] = {
+#else
+static float atanlo[] = {
+#endif
+ 5.0121582440e-09, /* atan(0.5)lo 0x31ac3769 */
+ 3.7748947079e-08, /* atan(1.0)lo 0x33222168 */
+ 3.4473217170e-08, /* atan(1.5)lo 0x33140fb4 */
+ 7.5497894159e-08, /* atan(inf)lo 0x33a22168 */
+};
+
+#ifdef __STDC__
+static const float aT[] = {
+#else
+static float aT[] = {
+#endif
+ 3.3333334327e-01, /* 0x3eaaaaaa */
+ -2.0000000298e-01, /* 0xbe4ccccd */
+ 1.4285714924e-01, /* 0x3e124925 */
+ -1.1111110449e-01, /* 0xbde38e38 */
+ 9.0908870101e-02, /* 0x3dba2e6e */
+ -7.6918758452e-02, /* 0xbd9d8795 */
+ 6.6610731184e-02, /* 0x3d886b35 */
+ -5.8335702866e-02, /* 0xbd6ef16b */
+ 4.9768779427e-02, /* 0x3d4bda59 */
+ -3.6531571299e-02, /* 0xbd15a221 */
+ 1.6285819933e-02, /* 0x3c8569d7 */
+};
+
+#ifdef __STDC__
+ static const float
+#else
+ static float
+#endif
+one = 1.0,
+huge = 1.0e30;
+
+#ifdef __STDC__
+ float atanf(float x)
+#else
+ float atanf(x)
+ float x;
+#endif
+{
+ float w,s1,s2,z;
+ __int32_t ix,hx,id;
+
+ hx = CYG_LIBM_WORD(x);
+ ix = hx&0x7fffffff;
+ if(ix>=0x50800000) { /* if |x| >= 2^34 */
+ if(FLT_UWORD_IS_NAN(ix))
+ return x+x; /* NaN */
+ if(hx>0) return atanhi[3]+atanlo[3];
+ else return -atanhi[3]-atanlo[3];
+ } if (ix < 0x3ee00000) { /* |x| < 0.4375 */
+ if (ix < 0x31000000) { /* |x| < 2^-29 */
+ if(huge+x>one) return x; /* raise inexact */
+ }
+ id = -1;
+ } else {
+ x = fabsf(x);
+ if (ix < 0x3f980000) { /* |x| < 1.1875 */
+ if (ix < 0x3f300000) { /* 7/16 <=|x|<11/16 */
+ id = 0; x = ((float)2.0*x-one)/((float)2.0+x);
+ } else { /* 11/16<=|x|< 19/16 */
+ id = 1; x = (x-one)/(x+one);
+ }
+ } else {
+ if (ix < 0x401c0000) { /* |x| < 2.4375 */
+ id = 2; x = (x-(float)1.5)/(one+(float)1.5*x);
+ } else { /* 2.4375 <= |x| < 2^66 */
+ id = 3; x = -(float)1.0/x;
+ }
+ }}
+ /* end of argument reduction */
+ z = x*x;
+ w = z*z;
+ /* break sum from i=0 to 10 aT[i]z**(i+1) into odd and even poly */
+ s1 = z*(aT[0]+w*(aT[2]+w*(aT[4]+w*(aT[6]+w*(aT[8]+w*aT[10])))));
+ s2 = w*(aT[1]+w*(aT[3]+w*(aT[5]+w*(aT[7]+w*aT[9]))));
+ if (id<0) return x - x*(s1+s2);
+ else {
+ z = atanhi[id] - ((x*(s1+s2) - atanlo[id]) - x);
+ return (hx<0)? -z:z;
+ }
+}
+
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF sf_atan.c
diff --git a/ecos/packages/language/c/libm/current/src/float/portable-api/sf_cbrt.c b/ecos/packages/language/c/libm/current/src/float/portable-api/sf_cbrt.c
new file mode 100644
index 0000000..fd23424
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/float/portable-api/sf_cbrt.c
@@ -0,0 +1,147 @@
+//===========================================================================
+//
+// sf_cbrt.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 2012-03-08
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/* sf_cbrt.c -- float version of s_cbrt.c.
+ * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ *
+ */
+
+
+#include "mathincl/fdlibm.h"
+
+/* cbrtf(x)
+ * Return cube root of x
+ */
+#ifdef __STDC__
+static const __uint32_t
+#else
+static __uint32_t
+#endif
+ B1 = 709958130, /* B1 = (84+2/3-0.03306235651)*2**23 */
+ B2 = 642849266; /* B2 = (76+2/3-0.03306235651)*2**23 */
+
+#ifdef __STDC__
+static const float
+#else
+static float
+#endif
+C = 5.4285717010e-01, /* 19/35 = 0x3f0af8b0 */
+D = -7.0530611277e-01, /* -864/1225 = 0xbf348ef1 */
+E = 1.4142856598e+00, /* 99/70 = 0x3fb50750 */
+F = 1.6071428061e+00, /* 45/28 = 0x3fcdb6db */
+G = 3.5714286566e-01; /* 5/14 = 0x3eb6db6e */
+
+#ifdef __STDC__
+ float cbrtf(float x)
+#else
+ float cbrtf(x)
+ float x;
+#endif
+{
+ __int32_t hx;
+ float r,s,t;
+ __uint32_t sign;
+ __uint32_t high;
+
+ hx = CYG_LIBM_WORD(x);
+ sign=hx&0x80000000; /* sign= sign(x) */
+ hx ^=sign;
+ if(!FLT_UWORD_IS_FINITE(hx))
+ return(x+x); /* cbrt(NaN,INF) is itself */
+ if(FLT_UWORD_IS_ZERO(hx))
+ return(x); /* cbrt(0) is itself */
+
+ SET_FLOAT_WORD(x,hx); /* x <- |x| */
+ /* rough cbrt to 5 bits */
+ if(FLT_UWORD_IS_SUBNORMAL(hx)) /* subnormal number */
+ {SET_FLOAT_WORD(t,0x4b800000); /* set t= 2**24 */
+ t*=x; high = CYG_LIBM_WORD(t); SET_FLOAT_WORD(t,high/3+B2);
+ }
+ else
+ SET_FLOAT_WORD(t,hx/3+B1);
+
+
+ /* new cbrt to 23 bits */
+ r=t*t/x;
+ s=C+r*t;
+ t*=G+F/(s+E+D/s);
+
+ /* retore the sign bit */
+ high = CYG_LIBM_WORD(t);
+ SET_FLOAT_WORD(t,high|sign);
+ return(t);
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF sf_cbrt.c
diff --git a/ecos/packages/language/c/libm/current/src/float/portable-api/sf_ceil.c b/ecos/packages/language/c/libm/current/src/float/portable-api/sf_ceil.c
new file mode 100644
index 0000000..0b4939e
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/float/portable-api/sf_ceil.c
@@ -0,0 +1,124 @@
+//===========================================================================
+//
+// sf_ceil.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 2012-03-08
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/* sf_ceil.c -- float version of s_ceil.c.
+ * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+
+#include "mathincl/fdlibm.h"
+
+#ifdef __STDC__
+static const float huge = 1.0e30;
+#else
+static float huge = 1.0e30;
+#endif
+
+#ifdef __STDC__
+ float ceilf(float x)
+#else
+ float ceilf(x)
+ float x;
+#endif
+{
+ __int32_t i0,j0;
+ __uint32_t i,ix;
+ i0 = CYG_LIBM_WORD(x);
+ ix = (i0&0x7fffffff);
+ j0 = (ix>>23)-0x7f;
+ if(j0<23) {
+ if(j0<0) { /* raise inexact if x != 0 */
+ if(huge+x>(float)0.0) {/* return 0*sign(x) if |x|<1 */
+ if(i0<0) {i0=0x80000000;}
+ else if(!FLT_UWORD_IS_ZERO(ix)) { i0=0x3f800000;}
+ }
+ } else {
+ i = (0x007fffff)>>j0;
+ if((i0&i)==0) return x; /* x is integral */
+ if(huge+x>(float)0.0) { /* raise inexact flag */
+ if(i0>0) i0 += (0x00800000)>>j0;
+ i0 &= (~i);
+ }
+ }
+ } else {
+ if(!FLT_UWORD_IS_FINITE(ix)) return x+x; /* inf or NaN */
+ else return x; /* x is integral */
+ }
+ SET_FLOAT_WORD(x,i0);
+ return x;
+}
+
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF sf_ceil.c
diff --git a/ecos/packages/language/c/libm/current/src/float/portable-api/sf_copysign.c b/ecos/packages/language/c/libm/current/src/float/portable-api/sf_copysign.c
new file mode 100644
index 0000000..dfc3988
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/float/portable-api/sf_copysign.c
@@ -0,0 +1,103 @@
+//===========================================================================
+//
+// sf_copysign.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 2012-03-08
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/* sf_copysign.c -- float version of s_copysign.c.
+ * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/*
+ * copysignf(float x, float y)
+ * copysignf(x,y) returns a value with the magnitude of x and
+ * with the sign bit of y.
+ */
+
+
+#include "mathincl/fdlibm.h"
+
+#ifdef __STDC__
+ float copysignf(float x, float y)
+#else
+ float copysignf(x,y)
+ float x,y;
+#endif
+{
+ __uint32_t ix,iy;
+ ix = CYG_LIBM_WORD(x);
+ iy = CYG_LIBM_WORD(y);
+ SET_FLOAT_WORD(x,(ix&0x7fffffff)|(iy&0x80000000));
+ return x;
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF sf_copysign.c
diff --git a/ecos/packages/language/c/libm/current/src/float/portable-api/sf_cos.c b/ecos/packages/language/c/libm/current/src/float/portable-api/sf_cos.c
new file mode 100644
index 0000000..39ad451
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/float/portable-api/sf_cos.c
@@ -0,0 +1,120 @@
+//===========================================================================
+//
+// sf_cos.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 2012-03-08
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+/* sf_cos.c -- float version of s_cos.c.
+ * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+
+#include "mathincl/fdlibm.h"
+
+#ifdef __STDC__
+static const float one=1.0;
+#else
+static float one=1.0;
+#endif
+
+#ifdef __STDC__
+ float cosf(float x)
+#else
+ float cosf(x)
+ float x;
+#endif
+{
+ float y[2],z=0.0;
+ __int32_t n,ix;
+
+ ix = CYG_LIBM_WORD(x);
+
+ /* |x| ~< pi/4 */
+ ix &= 0x7fffffff;
+ if(ix <= 0x3f490fd8) return __kernel_cosf(x,z);
+
+ /* cos(Inf or NaN) is NaN */
+ else if (!FLT_UWORD_IS_FINITE(ix)) return x-x;
+
+ /* argument reduction needed */
+ else {
+ n = __ieee754_rem_pio2f(x,y);
+ switch(n&3) {
+ case 0: return __kernel_cosf(y[0],y[1]);
+ case 1: return -__kernel_sinf(y[0],y[1],1);
+ case 2: return -__kernel_cosf(y[0],y[1]);
+ default:
+ return __kernel_sinf(y[0],y[1],1);
+ }
+ }
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF sf_cos.c
diff --git a/ecos/packages/language/c/libm/current/src/float/portable-api/sf_erf.c b/ecos/packages/language/c/libm/current/src/float/portable-api/sf_erf.c
new file mode 100644
index 0000000..348eec4
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/float/portable-api/sf_erf.c
@@ -0,0 +1,285 @@
+//===========================================================================
+//
+// sf_erf.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 2012-03-08
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/* sf_erf.c -- float version of s_erf.c.
+ * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+
+#include "mathincl/fdlibm.h"
+
+#ifdef __STDC__
+static const float
+#else
+static float
+#endif
+tiny = 1e-30,
+half= 5.0000000000e-01, /* 0x3F000000 */
+one = 1.0000000000e+00, /* 0x3F800000 */
+two = 2.0000000000e+00, /* 0x40000000 */
+ /* c = (subfloat)0.84506291151 */
+erx = 8.4506291151e-01, /* 0x3f58560b */
+/*
+ * Coefficients for approximation to erf on [0,0.84375]
+ */
+efx = 1.2837916613e-01, /* 0x3e0375d4 */
+efx8= 1.0270333290e+00, /* 0x3f8375d4 */
+pp0 = 1.2837916613e-01, /* 0x3e0375d4 */
+pp1 = -3.2504209876e-01, /* 0xbea66beb */
+pp2 = -2.8481749818e-02, /* 0xbce9528f */
+pp3 = -5.7702702470e-03, /* 0xbbbd1489 */
+pp4 = -2.3763017452e-05, /* 0xb7c756b1 */
+qq1 = 3.9791721106e-01, /* 0x3ecbbbce */
+qq2 = 6.5022252500e-02, /* 0x3d852a63 */
+qq3 = 5.0813062117e-03, /* 0x3ba68116 */
+qq4 = 1.3249473704e-04, /* 0x390aee49 */
+qq5 = -3.9602282413e-06, /* 0xb684e21a */
+/*
+ * Coefficients for approximation to erf in [0.84375,1.25]
+ */
+pa0 = -2.3621185683e-03, /* 0xbb1acdc6 */
+pa1 = 4.1485610604e-01, /* 0x3ed46805 */
+pa2 = -3.7220788002e-01, /* 0xbebe9208 */
+pa3 = 3.1834661961e-01, /* 0x3ea2fe54 */
+pa4 = -1.1089469492e-01, /* 0xbde31cc2 */
+pa5 = 3.5478305072e-02, /* 0x3d1151b3 */
+pa6 = -2.1663755178e-03, /* 0xbb0df9c0 */
+qa1 = 1.0642088205e-01, /* 0x3dd9f331 */
+qa2 = 5.4039794207e-01, /* 0x3f0a5785 */
+qa3 = 7.1828655899e-02, /* 0x3d931ae7 */
+qa4 = 1.2617121637e-01, /* 0x3e013307 */
+qa5 = 1.3637083583e-02, /* 0x3c5f6e13 */
+qa6 = 1.1984500103e-02, /* 0x3c445aa3 */
+/*
+ * Coefficients for approximation to erfc in [1.25,1/0.35]
+ */
+ra0 = -9.8649440333e-03, /* 0xbc21a093 */
+ra1 = -6.9385856390e-01, /* 0xbf31a0b7 */
+ra2 = -1.0558626175e+01, /* 0xc128f022 */
+ra3 = -6.2375331879e+01, /* 0xc2798057 */
+ra4 = -1.6239666748e+02, /* 0xc322658c */
+ra5 = -1.8460508728e+02, /* 0xc3389ae7 */
+ra6 = -8.1287437439e+01, /* 0xc2a2932b */
+ra7 = -9.8143291473e+00, /* 0xc11d077e */
+sa1 = 1.9651271820e+01, /* 0x419d35ce */
+sa2 = 1.3765776062e+02, /* 0x4309a863 */
+sa3 = 4.3456588745e+02, /* 0x43d9486f */
+sa4 = 6.4538726807e+02, /* 0x442158c9 */
+sa5 = 4.2900814819e+02, /* 0x43d6810b */
+sa6 = 1.0863500214e+02, /* 0x42d9451f */
+sa7 = 6.5702495575e+00, /* 0x40d23f7c */
+sa8 = -6.0424413532e-02, /* 0xbd777f97 */
+/*
+ * Coefficients for approximation to erfc in [1/.35,28]
+ */
+rb0 = -9.8649431020e-03, /* 0xbc21a092 */
+rb1 = -7.9928326607e-01, /* 0xbf4c9dd4 */
+rb2 = -1.7757955551e+01, /* 0xc18e104b */
+rb3 = -1.6063638306e+02, /* 0xc320a2ea */
+rb4 = -6.3756646729e+02, /* 0xc41f6441 */
+rb5 = -1.0250950928e+03, /* 0xc480230b */
+rb6 = -4.8351919556e+02, /* 0xc3f1c275 */
+sb1 = 3.0338060379e+01, /* 0x41f2b459 */
+sb2 = 3.2579251099e+02, /* 0x43a2e571 */
+sb3 = 1.5367296143e+03, /* 0x44c01759 */
+sb4 = 3.1998581543e+03, /* 0x4547fdbb */
+sb5 = 2.5530502930e+03, /* 0x451f90ce */
+sb6 = 4.7452853394e+02, /* 0x43ed43a7 */
+sb7 = -2.2440952301e+01; /* 0xc1b38712 */
+
+#ifdef __STDC__
+ float erff(float x)
+#else
+ float erff(x)
+ float x;
+#endif
+{
+ __int32_t hx,ix,i;
+ float R,S,P,Q,s,y,z,r;
+ hx = CYG_LIBM_WORD(x);
+ ix = hx&0x7fffffff;
+ if(!FLT_UWORD_IS_FINITE(ix)) { /* erf(nan)=nan */
+ i = ((__uint32_t)hx>>31)<<1;
+ return (float)(1-i)+one/x; /* erf(+-inf)=+-1 */
+ }
+
+ if(ix < 0x3f580000) { /* |x|<0.84375 */
+ if(ix < 0x31800000) { /* |x|<2**-28 */
+ if (ix < 0x04000000)
+ /*avoid underflow */
+ return (float)0.125*((float)8.0*x+efx8*x);
+ return x + efx*x;
+ }
+ z = x*x;
+ r = pp0+z*(pp1+z*(pp2+z*(pp3+z*pp4)));
+ s = one+z*(qq1+z*(qq2+z*(qq3+z*(qq4+z*qq5))));
+ y = r/s;
+ return x + x*y;
+ }
+ if(ix < 0x3fa00000) { /* 0.84375 <= |x| < 1.25 */
+ s = fabsf(x)-one;
+ P = pa0+s*(pa1+s*(pa2+s*(pa3+s*(pa4+s*(pa5+s*pa6)))));
+ Q = one+s*(qa1+s*(qa2+s*(qa3+s*(qa4+s*(qa5+s*qa6)))));
+ if(hx>=0) return erx + P/Q; else return -erx - P/Q;
+ }
+ if (ix >= 0x40c00000) { /* inf>|x|>=6 */
+ if(hx>=0) return one-tiny; else return tiny-one;
+ }
+ x = fabsf(x);
+ s = one/(x*x);
+ if(ix< 0x4036DB6E) { /* |x| < 1/0.35 */
+ R=ra0+s*(ra1+s*(ra2+s*(ra3+s*(ra4+s*(
+ ra5+s*(ra6+s*ra7))))));
+ S=one+s*(sa1+s*(sa2+s*(sa3+s*(sa4+s*(
+ sa5+s*(sa6+s*(sa7+s*sa8)))))));
+ } else { /* |x| >= 1/0.35 */
+ R=rb0+s*(rb1+s*(rb2+s*(rb3+s*(rb4+s*(
+ rb5+s*rb6)))));
+ S=one+s*(sb1+s*(sb2+s*(sb3+s*(sb4+s*(
+ sb5+s*(sb6+s*sb7))))));
+ }
+ ix = CYG_LIBM_WORD(x);
+ SET_FLOAT_WORD(z,ix&0xfffff000);
+ r = __ieee754_expf(-z*z-(float)0.5625)*__ieee754_expf((z-x)*(z+x)+R/S);
+ if(hx>=0) return one-r/x; else return r/x-one;
+}
+
+#ifdef __STDC__
+ float erfcf(float x)
+#else
+ float erfcf(x)
+ float x;
+#endif
+{
+ __int32_t hx,ix;
+ float R,S,P,Q,s,y,z,r;
+ hx = CYG_LIBM_WORD(x);
+ ix = hx&0x7fffffff;
+ if(!FLT_UWORD_IS_FINITE(ix)) { /* erfc(nan)=nan */
+ /* erfc(+-inf)=0,2 */
+ return (float)(((__uint32_t)hx>>31)<<1)+one/x;
+ }
+
+ if(ix < 0x3f580000) { /* |x|<0.84375 */
+ if(ix < 0x23800000) /* |x|<2**-56 */
+ return one-x;
+ z = x*x;
+ r = pp0+z*(pp1+z*(pp2+z*(pp3+z*pp4)));
+ s = one+z*(qq1+z*(qq2+z*(qq3+z*(qq4+z*qq5))));
+ y = r/s;
+ if(hx < 0x3e800000) { /* x<1/4 */
+ return one-(x+x*y);
+ } else {
+ r = x*y;
+ r += (x-half);
+ return half - r ;
+ }
+ }
+ if(ix < 0x3fa00000) { /* 0.84375 <= |x| < 1.25 */
+ s = fabsf(x)-one;
+ P = pa0+s*(pa1+s*(pa2+s*(pa3+s*(pa4+s*(pa5+s*pa6)))));
+ Q = one+s*(qa1+s*(qa2+s*(qa3+s*(qa4+s*(qa5+s*qa6)))));
+ if(hx>=0) {
+ z = one-erx; return z - P/Q;
+ } else {
+ z = erx+P/Q; return one+z;
+ }
+ }
+ if (ix < 0x41e00000) { /* |x|<28 */
+ x = fabsf(x);
+ s = one/(x*x);
+ if(ix< 0x4036DB6D) { /* |x| < 1/.35 ~ 2.857143*/
+ R=ra0+s*(ra1+s*(ra2+s*(ra3+s*(ra4+s*(
+ ra5+s*(ra6+s*ra7))))));
+ S=one+s*(sa1+s*(sa2+s*(sa3+s*(sa4+s*(
+ sa5+s*(sa6+s*(sa7+s*sa8)))))));
+ } else { /* |x| >= 1/.35 ~ 2.857143 */
+ if(hx<0&&ix>=0x40c00000) return two-tiny;/* x < -6 */
+ R=rb0+s*(rb1+s*(rb2+s*(rb3+s*(rb4+s*(
+ rb5+s*rb6)))));
+ S=one+s*(sb1+s*(sb2+s*(sb3+s*(sb4+s*(
+ sb5+s*(sb6+s*sb7))))));
+ }
+ ix = CYG_LIBM_WORD(x);
+ SET_FLOAT_WORD(z,ix&0xfffff000);
+ r = __ieee754_expf(-z*z-(float)0.5625)*
+ __ieee754_expf((z-x)*(z+x)+R/S);
+ if(hx>0) return r/x; else return two-r/x;
+ } else {
+ if(hx>0) return tiny*tiny; else return two-tiny;
+ }
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF sf_erf.c
diff --git a/ecos/packages/language/c/libm/current/src/float/portable-api/sf_expm1.c b/ecos/packages/language/c/libm/current/src/float/portable-api/sf_expm1.c
new file mode 100644
index 0000000..27d9d24
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/float/portable-api/sf_expm1.c
@@ -0,0 +1,186 @@
+//===========================================================================
+//
+// s_expm1.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors:
+// Date: 2001-07-20
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+/* sf_expm1.c -- float version of s_expm1.c.
+ * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+
+#include "mathincl/fdlibm.h"
+
+#ifdef __STDC__
+static const float
+#else
+static float
+#endif
+one = 1.0,
+huge = 1.0e+30,
+tiny = 1.0e-30,
+ln2_hi = 6.9313812256e-01,/* 0x3f317180 */
+ln2_lo = 9.0580006145e-06,/* 0x3717f7d1 */
+invln2 = 1.4426950216e+00,/* 0x3fb8aa3b */
+ /* scaled coefficients related to expm1 */
+Q1 = -3.3333335072e-02, /* 0xbd088889 */
+Q2 = 1.5873016091e-03, /* 0x3ad00d01 */
+Q3 = -7.9365076090e-05, /* 0xb8a670cd */
+Q4 = 4.0082177293e-06, /* 0x36867e54 */
+Q5 = -2.0109921195e-07; /* 0xb457edbb */
+
+#ifdef __STDC__
+ float expm1f(float x)
+#else
+ float expm1f(x)
+ float x;
+#endif
+{
+ float y,hi,lo,c,t,e,hxs,hfx,r1;
+ __int32_t k,xsb;
+ __uint32_t hx;
+
+ hx = CYG_LIBM_WORD(x);
+ xsb = hx&0x80000000; /* sign bit of x */
+ if(xsb==0) y=x; else y= -x; /* y = |x| */
+ hx &= 0x7fffffff; /* high word of |x| */
+
+ /* filter out huge and non-finite argument */
+ if(hx >= 0x4195b844) { /* if |x|>=27*ln2 */
+ if(FLT_UWORD_IS_NAN(hx))
+ return x+x;
+ if(FLT_UWORD_IS_INFINITE(hx))
+ return (xsb==0)? x:-1.0;/* exp(+-inf)={inf,-1} */
+ if(xsb == 0 && hx > FLT_UWORD_LOG_MAX) /* if x>=o_threshold */
+ return huge*huge; /* overflow */
+ if(xsb!=0) { /* x < -27*ln2, return -1.0 with inexact */
+ if(x+tiny<(float)0.0) /* raise inexact */
+ return tiny-one; /* return -1 */
+ }
+ }
+
+ /* argument reduction */
+ if(hx > 0x3eb17218) { /* if |x| > 0.5 ln2 */
+ if(hx < 0x3F851592) { /* and |x| < 1.5 ln2 */
+ if(xsb==0)
+ {hi = x - ln2_hi; lo = ln2_lo; k = 1;}
+ else
+ {hi = x + ln2_hi; lo = -ln2_lo; k = -1;}
+ } else {
+ k = invln2*x+((xsb==0)?(float)0.5:(float)-0.5);
+ t = k;
+ hi = x - t*ln2_hi; /* t*ln2_hi is exact here */
+ lo = t*ln2_lo;
+ }
+ x = hi - lo;
+ c = (hi-x)-lo;
+ }
+ else if(hx < 0x33000000) { /* when |x|<2**-25, return x */
+ t = huge+x; /* return x with inexact flags when x!=0 */
+ return x - (t-(huge+x));
+ }
+ else k = 0;
+
+ /* x is now in primary range */
+ hfx = (float)0.5*x;
+ hxs = x*hfx;
+ r1 = one+hxs*(Q1+hxs*(Q2+hxs*(Q3+hxs*(Q4+hxs*Q5))));
+ t = (float)3.0-r1*hfx;
+ e = hxs*((r1-t)/((float)6.0 - x*t));
+ if(k==0) return x - (x*e-hxs); /* c is 0 */
+ else {
+ e = (x*(e-c)-c);
+ e -= hxs;
+ if(k== -1) return (float)0.5*(x-e)-(float)0.5;
+ if(k==1) {
+ if(x < (float)-0.25) return -(float)2.0*(e-(x+(float)0.5));
+ else return one+(float)2.0*(x-e);
+ }
+ if (k <= -2 || k>56) { /* suffice to return exp(x)-1 */
+ __int32_t i;
+ y = one-(e-x);
+ i = CYG_LIBM_WORD(y);
+ SET_FLOAT_WORD(y,i+(k<<23)); /* add k to y's exponent */
+ return y-one;
+ }
+ t = one;
+ if(k<23) {
+ __int32_t i;
+ SET_FLOAT_WORD(t,0x3f800000 - (0x1000000>>k)); /* t=1-2^-k */
+ y = t-(e-x);
+ i = CYG_LIBM_WORD(y);
+ SET_FLOAT_WORD(y,i+(k<<23)); /* add k to y's exponent */
+ } else {
+ __int32_t i;
+ SET_FLOAT_WORD(t,((0x7f-k)<<23)); /* 2^-k */
+ y = x-(e+t);
+ y += one;
+ i = CYG_LIBM_WORD(y);
+ SET_FLOAT_WORD(y,i+(k<<23)); /* add k to y's exponent */
+ }
+ }
+ return y;
+}
+
diff --git a/ecos/packages/language/c/libm/current/src/float/portable-api/sf_fabs.c b/ecos/packages/language/c/libm/current/src/float/portable-api/sf_fabs.c
new file mode 100644
index 0000000..a9c2a87
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/float/portable-api/sf_fabs.c
@@ -0,0 +1,100 @@
+//===========================================================================
+//
+// sf_fabs.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 2012-03-08
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/* sf_fabs.c -- float version of s_fabs.c.
+ * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/*
+ * fabsf(x) returns the absolute value of x.
+ */
+
+
+#include "mathincl/fdlibm.h"
+
+#ifdef __STDC__
+ float fabsf(float x)
+#else
+ float fabsf(x)
+ float x;
+#endif
+{
+ __uint32_t ix;
+ ix = CYG_LIBM_WORD(x);
+ SET_FLOAT_WORD(x,ix&0x7fffffff);
+ return x;
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF sf_fabs.c
diff --git a/ecos/packages/language/c/libm/current/src/float/portable-api/sf_finite.c b/ecos/packages/language/c/libm/current/src/float/portable-api/sf_finite.c
new file mode 100644
index 0000000..24bc85e
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/float/portable-api/sf_finite.c
@@ -0,0 +1,101 @@
+//===========================================================================
+//
+// sf_finite.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 2012-03-08
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/* sf_finite.c -- float version of s_finite.c.
+ * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/*
+ * finitef(x) returns 1 is x is finite, else 0;
+ * no branching!
+ */
+
+
+#include "mathincl/fdlibm.h"
+
+#ifdef __STDC__
+ int finitef(float x)
+#else
+ int finitef(x)
+ float x;
+#endif
+{
+ __int32_t ix;
+ ix = CYG_LIBM_WORD(x);
+ ix &= 0x7fffffff;
+ return (FLT_UWORD_IS_FINITE(ix));
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF sf_finite.c
diff --git a/ecos/packages/language/c/libm/current/src/float/portable-api/sf_floor.c b/ecos/packages/language/c/libm/current/src/float/portable-api/sf_floor.c
new file mode 100644
index 0000000..2ffd12c
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/float/portable-api/sf_floor.c
@@ -0,0 +1,133 @@
+//===========================================================================
+//
+// sf_floor.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 2012-03-08
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/* sf_floor.c -- float version of s_floor.c.
+ * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/*
+ * floorf(x)
+ * Return x rounded toward -inf to integral value
+ * Method:
+ * Bit twiddling.
+ * Exception:
+ * Inexact flag raised if x not equal to floorf(x).
+ */
+
+
+#include "mathincl/fdlibm.h"
+
+#ifdef __STDC__
+static const float huge = 1.0e30;
+#else
+static float huge = 1.0e30;
+#endif
+
+#ifdef __STDC__
+ float floorf(float x)
+#else
+ float floorf(x)
+ float x;
+#endif
+{
+ __int32_t i0,j0;
+ __uint32_t i,ix;
+ i0 = CYG_LIBM_WORD(x);
+ ix = (i0&0x7fffffff);
+ j0 = (ix>>23)-0x7f;
+ if(j0<23) {
+ if(j0<0) { /* raise inexact if x != 0 */
+ if(huge+x>(float)0.0) {/* return 0*sign(x) if |x|<1 */
+ if(i0>=0) {i0=0;}
+ else if(!FLT_UWORD_IS_ZERO(ix))
+ { i0=0xbf800000;}
+ }
+ } else {
+ i = (0x007fffff)>>j0;
+ if((i0&i)==0) return x; /* x is integral */
+ if(huge+x>(float)0.0) { /* raise inexact flag */
+ if(i0<0) i0 += (0x00800000)>>j0;
+ i0 &= (~i);
+ }
+ }
+ } else {
+ if(!FLT_UWORD_IS_FINITE(ix)) return x+x; /* inf or NaN */
+ else return x; /* x is integral */
+ }
+ SET_FLOAT_WORD(x,i0);
+ return x;
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF sf_floor.c
diff --git a/ecos/packages/language/c/libm/current/src/float/portable-api/sf_frexp.c b/ecos/packages/language/c/libm/current/src/float/portable-api/sf_frexp.c
new file mode 100644
index 0000000..8d3aa94
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/float/portable-api/sf_frexp.c
@@ -0,0 +1,113 @@
+//===========================================================================
+//
+// sf_frexp.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 2012-03-08
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+/* sf_frexp.c -- float version of s_frexp.c.
+ * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+
+#include "mathincl/fdlibm.h"
+
+#ifdef __STDC__
+static const float
+#else
+static float
+#endif
+two25 = 3.3554432000e+07; /* 0x4c000000 */
+
+#ifdef __STDC__
+ float frexpf(float x, int *eptr)
+#else
+ float frexpf(x, eptr)
+ float x; int *eptr;
+#endif
+{
+ __int32_t hx, ix;
+ hx = CYG_LIBM_WORD(x);
+ ix = 0x7fffffff&hx;
+ *eptr = 0;
+ if(!FLT_UWORD_IS_FINITE(ix)||FLT_UWORD_IS_ZERO(ix)) return x; /* 0,inf,nan */
+ if (FLT_UWORD_IS_SUBNORMAL(ix)) { /* subnormal */
+ x *= two25;
+ hx = CYG_LIBM_WORD(x);
+ ix = hx&0x7fffffff;
+ *eptr = -25;
+ }
+ *eptr += (ix>>23)-126;
+ hx = (hx&0x807fffff)|0x3f000000;
+ SET_FLOAT_WORD(x,hx);
+ return x;
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF sf_frexp.c
diff --git a/ecos/packages/language/c/libm/current/src/float/portable-api/sf_ilogb.c b/ecos/packages/language/c/libm/current/src/float/portable-api/sf_ilogb.c
new file mode 100644
index 0000000..aaf9ea1
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/float/portable-api/sf_ilogb.c
@@ -0,0 +1,109 @@
+//===========================================================================
+//
+// sf_ilogb.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 2012-03-08
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/* sf_ilogb.c -- float version of s_ilogb.c.
+ * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+
+#include <limits.h>
+#include "mathincl/fdlibm.h"
+
+#ifdef __STDC__
+ int ilogbf(float x)
+#else
+ int ilogbf(x)
+ float x;
+#endif
+{
+ __int32_t hx,ix;
+
+ hx = CYG_LIBM_WORD(x);
+ hx &= 0x7fffffff;
+ if(FLT_UWORD_IS_ZERO(hx))
+ return 0x80000001; /* ilogb(0) = special case error */
+ if(FLT_UWORD_IS_SUBNORMAL(hx)) {
+ for (ix = -126,hx<<=8; hx>0; hx<<=1) ix -=1;
+ return ix;
+ }
+ #if FP_ILOGBNAN != INT_MAX
+ else if (FLT_UWORD_IS_NAN(hx)) return FP_ILOGBNAN; /* NAN */
+ #endif
+ else if (!FLT_UWORD_IS_FINITE(hx)) return INT_MAX;
+ else
+ return (hx>>=23)-127;
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF sf_ilogb.c
diff --git a/ecos/packages/language/c/libm/current/src/float/portable-api/sf_isnan.c b/ecos/packages/language/c/libm/current/src/float/portable-api/sf_isnan.c
new file mode 100644
index 0000000..2041e3f
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/float/portable-api/sf_isnan.c
@@ -0,0 +1,99 @@
+//===========================================================================
+//
+// sf_isnan.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 2012-03-08
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/* sf_c_isnan.c -- float version of s_c_isnan.c.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/*
+ * isnanf(x) returns 1 is x is nan, else 0;
+ *
+ * isnanf is an extension declared in <ieeefp.h>.
+ */
+
+
+#include "mathincl/fdlibm.h"
+//#include <ieeefp.h>
+
+#undef isnanf
+
+ int isnanf(float x)
+{
+ __int32_t ix;
+ ix = CYG_LIBM_WORD(x);
+ ix &= 0x7fffffff;
+ return FLT_UWORD_IS_NAN(ix);
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF sf_isnan.c
diff --git a/ecos/packages/language/c/libm/current/src/float/portable-api/sf_ldexp.c b/ecos/packages/language/c/libm/current/src/float/portable-api/sf_ldexp.c
new file mode 100644
index 0000000..81ea2e9
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/float/portable-api/sf_ldexp.c
@@ -0,0 +1,109 @@
+//===========================================================================
+//
+// sf_ldexp.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 2012-03-08
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/* sf_ldexp.c -- float version of s_ldexp.c.
+ * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+
+#include "mathincl/fdlibm.h"
+#include <errno.h>
+
+#ifdef __STDC__
+ float ldexpf(float value, int exp)
+#else
+ float ldexpf(value, exp)
+ float value; int exp;
+#endif
+{
+ float z;
+
+ z = scalbnf(value,exp);
+
+#ifndef CYGSEM_LIBM_COMPAT_IEEE_ONLY
+ if(cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_IEEE) return z;
+ if(!(finitef(z)||isnanf(z))&&finitef(value)) {
+ return __kernel_standard(value,(float)exp,43); /* ldexp overflow */
+ }
+ if(z==0.0&&z!=value) {
+ return __kernel_standard(value,(float)exp,44); /* ldexp underflow */
+ }
+#endif
+
+ return z;
+}
+
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF sf_ldexp.c
diff --git a/ecos/packages/language/c/libm/current/src/float/portable-api/sf_log1p.c b/ecos/packages/language/c/libm/current/src/float/portable-api/sf_log1p.c
new file mode 100644
index 0000000..aa890f8
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/float/portable-api/sf_log1p.c
@@ -0,0 +1,174 @@
+//===========================================================================
+//
+// sf_log1p.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 2012-03-08
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/* sf_log1p.c -- float version of s_log1p.c.
+ * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+
+#include "mathincl/fdlibm.h"
+
+#ifdef __STDC__
+static const float
+#else
+static float
+#endif
+ln2_hi = 6.9313812256e-01, /* 0x3f317180 */
+ln2_lo = 9.0580006145e-06, /* 0x3717f7d1 */
+two25 = 3.355443200e+07, /* 0x4c000000 */
+Lp1 = 6.6666668653e-01, /* 3F2AAAAB */
+Lp2 = 4.0000000596e-01, /* 3ECCCCCD */
+Lp3 = 2.8571429849e-01, /* 3E924925 */
+Lp4 = 2.2222198546e-01, /* 3E638E29 */
+Lp5 = 1.8183572590e-01, /* 3E3A3325 */
+Lp6 = 1.5313838422e-01, /* 3E1CD04F */
+Lp7 = 1.4798198640e-01; /* 3E178897 */
+
+#ifdef __STDC__
+static const float zero = 0.0;
+#else
+static float zero = 0.0;
+#endif
+
+#ifdef __STDC__
+ float log1pf(float x)
+#else
+ float log1pf(x)
+ float x;
+#endif
+{
+ float hfsq,f,c,s,z,R,u;
+ __int32_t k,hx,hu,ax;
+
+ hx = CYG_LIBM_WORD(x);
+ ax = hx&0x7fffffff;
+
+ k = 1;
+ if (!FLT_UWORD_IS_FINITE(hx)) return x+x;
+ if (hx < 0x3ed413d7) { /* x < 0.41422 */
+ if(ax>=0x3f800000) { /* x <= -1.0 */
+ if(x==(float)-1.0) return -two25/zero; /* log1p(-1)=+inf */
+ else return (x-x)/(x-x); /* log1p(x<-1)=NaN */
+ }
+ if(ax<0x31000000) { /* |x| < 2**-29 */
+ if(two25+x>zero /* raise inexact */
+ &&ax<0x24800000) /* |x| < 2**-54 */
+ return x;
+ else
+ return x - x*x*(float)0.5;
+ }
+ if(hx>0||hx<=((__int32_t)0xbe95f61f)) {
+ k=0;f=x;hu=1;} /* -0.2929<x<0.41422 */
+ }
+ if(k!=0) {
+ if(hx<0x5a000000) {
+ u = (float)1.0+x;
+ hu = CYG_LIBM_WORD(u);
+ k = (hu>>23)-127;
+ /* correction term */
+ c = (k>0)? (float)1.0-(u-x):x-(u-(float)1.0);
+ c /= u;
+ } else {
+ u = x;
+ hu = CYG_LIBM_WORD(u);
+ k = (hu>>23)-127;
+ c = 0;
+ }
+ hu &= 0x007fffff;
+ if(hu<0x3504f7) {
+ SET_FLOAT_WORD(u,hu|0x3f800000);/* normalize u */
+ } else {
+ k += 1;
+ SET_FLOAT_WORD(u,hu|0x3f000000); /* normalize u/2 */
+ hu = (0x00800000-hu)>>2;
+ }
+ f = u-(float)1.0;
+ }
+ hfsq=(float)0.5*f*f;
+ if(hu==0) { /* |f| < 2**-20 */
+ if(f==zero) { if(k==0) return zero;
+ else {c += k*ln2_lo; return k*ln2_hi+c;}}
+ R = hfsq*((float)1.0-(float)0.66666666666666666*f);
+ if(k==0) return f-R; else
+ return k*ln2_hi-((R-(k*ln2_lo+c))-f);
+ }
+ s = f/((float)2.0+f);
+ z = s*s;
+ R = z*(Lp1+z*(Lp2+z*(Lp3+z*(Lp4+z*(Lp5+z*(Lp6+z*Lp7))))));
+ if(k==0) return f-(hfsq-s*(hfsq+R)); else
+ return k*ln2_hi-((hfsq-(s*(hfsq+R)+(k*ln2_lo+c)))-f);
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF sf_log1p.c
diff --git a/ecos/packages/language/c/libm/current/src/float/portable-api/sf_logb.c b/ecos/packages/language/c/libm/current/src/float/portable-api/sf_logb.c
new file mode 100644
index 0000000..ea5ced3
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/float/portable-api/sf_logb.c
@@ -0,0 +1,114 @@
+//===========================================================================
+//
+// sf_logb.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 2012-03-08
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+/* 2009 for Newlib: Sun's sf_ilogb.c converted to be sf_logb.c. */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/* float logb(float x)
+ * return the binary exponent of non-zero x
+ * logbf(0) = -inf, raise divide-by-zero floating point exception
+ * logbf(+inf|-inf) = +inf (no signal is raised)
+ * logbf(NaN) = NaN (no signal is raised)
+ * Per C99 recommendation, a NaN argument is returned unchanged.
+ */
+
+
+#include "mathincl/fdlibm.h"
+
+float
+#ifdef __STDC__
+logbf(float x)
+#else
+logbf(x)
+float x;
+#endif
+{
+ __int32_t hx,ix;
+
+ hx = CYG_LIBM_WORD(x);
+ hx &= 0x7fffffff;
+ if(FLT_UWORD_IS_ZERO(hx)) {
+ float xx;
+ /* arg==0: return -inf and raise divide-by-zero exception */
+ SET_FLOAT_WORD(xx,hx); /* +0.0 */
+ return -1./xx; /* logbf(0) = -inf */
+ }
+ if(FLT_UWORD_IS_SUBNORMAL(hx)) {
+ for (ix = -126,hx<<=8; hx>0; hx<<=1) ix -=1;
+ return (float) ix;
+ }
+ else if (FLT_UWORD_IS_INFINITE(hx)) return HUGE_VALF; /* x==+|-inf */
+ else if (FLT_UWORD_IS_NAN(hx)) return x;
+ else return (float) ((hx>>23)-127);
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF sf_logb.c
diff --git a/ecos/packages/language/c/libm/current/src/float/portable-api/sf_modf.c b/ecos/packages/language/c/libm/current/src/float/portable-api/sf_modf.c
new file mode 100644
index 0000000..a1db99c
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/float/portable-api/sf_modf.c
@@ -0,0 +1,126 @@
+//===========================================================================
+//
+// sf_modf.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 2012-03-08
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/* sf_modf.c -- float version of s_modf.c.
+ * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+
+#include "mathincl/fdlibm.h"
+
+#ifdef __STDC__
+static const float one = 1.0;
+#else
+static float one = 1.0;
+#endif
+
+#ifdef __STDC__
+ float modff(float x, float *iptr)
+#else
+ float modff(x, iptr)
+ float x,*iptr;
+#endif
+{
+ __int32_t i0,j0;
+ __uint32_t i;
+ i0 = CYG_LIBM_WORD(x);
+ j0 = ((i0>>23)&0xff)-0x7f; /* exponent of x */
+ if(j0<23) { /* integer part in x */
+ if(j0<0) { /* |x|<1 */
+ SET_FLOAT_WORD(*iptr,i0&0x80000000); /* *iptr = +-0 */
+ return x;
+ } else {
+ i = (0x007fffff)>>j0;
+ if((i0&i)==0) { /* x is integral */
+ __uint32_t ix;
+ *iptr = x;
+ ix = CYG_LIBM_WORD(x);
+ SET_FLOAT_WORD(x,ix&0x80000000); /* return +-0 */
+ return x;
+ } else {
+ SET_FLOAT_WORD(*iptr,i0&(~i));
+ return x - *iptr;
+ }
+ }
+ } else { /* no fraction part */
+ __uint32_t ix;
+ *iptr = x*one;
+ ix = CYG_LIBM_WORD(x);
+ SET_FLOAT_WORD(x,ix&0x80000000); /* return +-0 */
+ return x;
+ }
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF sf_modf.c
diff --git a/ecos/packages/language/c/libm/current/src/float/portable-api/sf_nextafter.c b/ecos/packages/language/c/libm/current/src/float/portable-api/sf_nextafter.c
new file mode 100644
index 0000000..b604ea7
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/float/portable-api/sf_nextafter.c
@@ -0,0 +1,132 @@
+//===========================================================================
+//
+// sf_nextafter.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 2012-03-08
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/* sf_nextafter.c -- float version of s_nextafter.c.
+ * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+
+#include "mathincl/fdlibm.h"
+
+#ifdef __STDC__
+ float nextafterf(float x, float y)
+#else
+ float nextafterf(x,y)
+ float x,y;
+#endif
+{
+ __int32_t hx,hy,ix,iy;
+
+ hx = CYG_LIBM_WORD(x);
+ hy = CYG_LIBM_WORD(y);
+ ix = hx&0x7fffffff; /* |x| */
+ iy = hy&0x7fffffff; /* |y| */
+
+ if(FLT_UWORD_IS_NAN(ix) ||
+ FLT_UWORD_IS_NAN(iy))
+ return x+y;
+ if(x==y) return x; /* x=y, return x */
+ if(FLT_UWORD_IS_ZERO(ix)) { /* x == 0 */
+ SET_FLOAT_WORD(x,(hy&0x80000000)|FLT_UWORD_MIN);
+ y = x*x;
+ if(y==x) return y; else return x; /* raise underflow flag */
+ }
+ if(hx>=0) { /* x > 0 */
+ if(hx>hy) { /* x > y, x -= ulp */
+ hx -= 1;
+ } else { /* x < y, x += ulp */
+ hx += 1;
+ }
+ } else { /* x < 0 */
+ if(hy>=0||hx>hy){ /* x < y, x -= ulp */
+ hx -= 1;
+ } else { /* x > y, x += ulp */
+ hx += 1;
+ }
+ }
+ hy = hx&0x7f800000;
+ if(hy>FLT_UWORD_MAX) return x+x; /* overflow */
+ if(hy<0x00800000) { /* underflow */
+ y = x*x;
+ if(y!=x) { /* raise underflow flag */
+ SET_FLOAT_WORD(y,hx);
+ return y;
+ }
+ }
+ SET_FLOAT_WORD(x,hx);
+ return x;
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF sf_nextafter.c
diff --git a/ecos/packages/language/c/libm/current/src/float/portable-api/sf_rint.c b/ecos/packages/language/c/libm/current/src/float/portable-api/sf_rint.c
new file mode 100644
index 0000000..9a60ae9
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/float/portable-api/sf_rint.c
@@ -0,0 +1,137 @@
+//===========================================================================
+//
+// sf_rint.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 2012-03-08
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/* sf_rint.c -- float version of s_rint.c.
+ * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+
+#include "mathincl/fdlibm.h"
+
+#ifdef __STDC__
+static const float
+#else
+static float
+#endif
+TWO23[2]={
+ 8.3886080000e+06, /* 0x4b000000 */
+ -8.3886080000e+06, /* 0xcb000000 */
+};
+
+#ifdef __STDC__
+ float rintf(float x)
+#else
+ float rintf(x)
+ float x;
+#endif
+{
+ __int32_t i0,j0,sx;
+ __uint32_t i,i1,ix;
+ float t;
+ volatile float w;
+ i0 = CYG_LIBM_WORD(x);
+ sx = (i0>>31)&1;
+ ix = (i0&0x7fffffff);
+ j0 = (ix>>23)-0x7f;
+ if(j0<23) {
+ if(FLT_UWORD_IS_ZERO(ix))
+ return x;
+ if(j0<0) {
+ i1 = (i0&0x07fffff);
+ i0 &= 0xfff00000;
+ i0 |= ((i1|-i1)>>9)&0x400000;
+ SET_FLOAT_WORD(x,i0);
+ w = TWO23[sx]+x;
+ t = w-TWO23[sx];
+ i0 = CYG_LIBM_WORD(t);
+ SET_FLOAT_WORD(t,(i0&0x7fffffff)|(sx<<31));
+ return t;
+ } else {
+ i = (0x007fffff)>>j0;
+ if((i0&i)==0) return x; /* x is integral */
+ i>>=1;
+ if((i0&i)!=0) i0 = (i0&(~i))|((0x200000)>>j0);
+ }
+ } else {
+ if(!FLT_UWORD_IS_FINITE(ix)) return x+x; /* inf or NaN */
+ else
+ return x; /* x is integral */
+ }
+ SET_FLOAT_WORD(x,i0);
+ w = TWO23[sx]+x;
+ return w-TWO23[sx];
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF sf_rint.c
diff --git a/ecos/packages/language/c/libm/current/src/float/portable-api/sf_scalbn.c b/ecos/packages/language/c/libm/current/src/float/portable-api/sf_scalbn.c
new file mode 100644
index 0000000..9def668
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/float/portable-api/sf_scalbn.c
@@ -0,0 +1,136 @@
+//===========================================================================
+//
+// sf_scalbn.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 2012-03-08
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/* sf_scalbn.c -- float version of s_scalbn.c.
+ * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+
+#include "mathincl/fdlibm.h"
+
+// VAE #if INT_MAX > 50000
+#define OVERFLOW_INT 50000
+//#else
+//#define OVERFLOW_INT 30000
+//#endif
+
+#ifdef __STDC__
+static const float
+#else
+static float
+#endif
+two25 = 3.355443200e+07, /* 0x4c000000 */
+twom25 = 2.9802322388e-08, /* 0x33000000 */
+huge = 1.0e+30,
+tiny = 1.0e-30;
+
+#ifdef __STDC__
+ float scalbnf (float x, int n)
+#else
+ float scalbnf (x,n)
+ float x; int n;
+#endif
+{
+ __int32_t k,ix;
+ __uint32_t hx;
+
+ ix = CYG_LIBM_WORD(x);
+ hx = ix&0x7fffffff;
+ k = hx>>23; /* extract exponent */
+ if (FLT_UWORD_IS_ZERO(hx))
+ return x;
+ if (!FLT_UWORD_IS_FINITE(hx))
+ return x+x; /* NaN or Inf */
+ if (FLT_UWORD_IS_SUBNORMAL(hx)) {
+ x *= two25;
+ ix = CYG_LIBM_WORD(x);
+ k = ((ix&0x7f800000)>>23) - 25;
+ if (n< -50000) return tiny*x; /*underflow*/
+ }
+ k = k+n;
+ if (k > FLT_LARGEST_EXP) return huge*copysignf(huge,x); /* overflow */
+ if (k > 0) /* normal result */
+ {SET_FLOAT_WORD(x,(ix&0x807fffff)|(k<<23)); return x;}
+ if (k < FLT_SMALLEST_EXP) {
+ if (n > OVERFLOW_INT) /* in case integer overflow in n+k */
+ return huge*copysignf(huge,x); /*overflow*/
+ else return tiny*copysignf(tiny,x); /*underflow*/
+ }
+ k += 25; /* subnormal result */
+ SET_FLOAT_WORD(x,(ix&0x807fffff)|(k<<23));
+ return x*twom25;
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF sf_scalbn.c
diff --git a/ecos/packages/language/c/libm/current/src/float/portable-api/sf_significand.c b/ecos/packages/language/c/libm/current/src/float/portable-api/sf_significand.c
new file mode 100644
index 0000000..619befe
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/float/portable-api/sf_significand.c
@@ -0,0 +1,93 @@
+//===========================================================================
+//
+// sf_significand.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 2012-03-08
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/* sf_signif.c -- float version of s_signif.c.
+ * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+#include "mathincl/fdlibm.h"
+
+
+#ifdef __STDC__
+ float significandf(float x)
+#else
+ float significandf(x)
+ float x;
+#endif
+{
+ return __ieee754_scalbf(x,(float) -ilogbf(x));
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF sf_significand.c
diff --git a/ecos/packages/language/c/libm/current/src/float/portable-api/sf_sin.c b/ecos/packages/language/c/libm/current/src/float/portable-api/sf_sin.c
new file mode 100644
index 0000000..8272bae
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/float/portable-api/sf_sin.c
@@ -0,0 +1,115 @@
+//===========================================================================
+//
+// sf_sin.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 2012-03-08
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/* sf_sin.c -- float version of s_sin.c.
+ * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+
+#include "mathincl/fdlibm.h"
+
+#ifdef __STDC__
+ float sinf(float x)
+#else
+ float sinf(x)
+ float x;
+#endif
+{
+ float y[2],z=0.0;
+ __int32_t n,ix;
+
+ ix = CYG_LIBM_WORD(x);
+
+ /* |x| ~< pi/4 */
+ ix &= 0x7fffffff;
+ if(ix <= 0x3f490fd8) return __kernel_sinf(x,z,0);
+
+ /* sin(Inf or NaN) is NaN */
+ else if (!FLT_UWORD_IS_FINITE(ix)) return x-x;
+
+ /* argument reduction needed */
+ else {
+ n = __ieee754_rem_pio2f(x,y);
+ switch(n&3) {
+ case 0: return __kernel_sinf(y[0],y[1],1);
+ case 1: return __kernel_cosf(y[0],y[1]);
+ case 2: return -__kernel_sinf(y[0],y[1],1);
+ default:
+ return -__kernel_cosf(y[0],y[1]);
+ }
+ }
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF sf_cos.c
diff --git a/ecos/packages/language/c/libm/current/src/float/portable-api/sf_tan.c b/ecos/packages/language/c/libm/current/src/float/portable-api/sf_tan.c
new file mode 100644
index 0000000..574ec01
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/float/portable-api/sf_tan.c
@@ -0,0 +1,110 @@
+//===========================================================================
+//
+// sf_tan.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 2012-03-08
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/* sf_tan.c -- float version of s_tan.c.
+ * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+
+#include "mathincl/fdlibm.h"
+
+#ifdef __STDC__
+ float tanf(float x)
+#else
+ float tanf(x)
+ float x;
+#endif
+{
+ float y[2],z=0.0;
+ __int32_t n,ix;
+
+ ix = CYG_LIBM_WORD(x);
+
+ /* |x| ~< pi/4 */
+ ix &= 0x7fffffff;
+ if(ix <= 0x3f490fda) return __kernel_tanf(x,z,1);
+
+ /* tan(Inf or NaN) is NaN */
+ else if (!FLT_UWORD_IS_FINITE(ix)) return x-x; /* NaN */
+
+ /* argument reduction needed */
+ else {
+ n = __ieee754_rem_pio2f(x,y);
+ return __kernel_tanf(y[0],y[1],1-((n&1)<<1)); /* 1 -- n even
+ -1 -- n odd */
+ }
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF sf_tan.c
diff --git a/ecos/packages/language/c/libm/current/src/float/portable-api/sf_tanh.c b/ecos/packages/language/c/libm/current/src/float/portable-api/sf_tanh.c
new file mode 100644
index 0000000..500c321
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/float/portable-api/sf_tanh.c
@@ -0,0 +1,126 @@
+//===========================================================================
+//
+// sf_tanh.c
+//
+// Part of the standard mathematical function library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 2012-03-08
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// Derived from code with the following copyright
+
+
+/* sf_tanh.c -- float version of s_tanh.c.
+ * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+
+#include "mathincl/fdlibm.h"
+
+#ifdef __STDC__
+static const float one=1.0, two=2.0, tiny = 1.0e-30;
+#else
+static float one=1.0, two=2.0, tiny = 1.0e-30;
+#endif
+
+#ifdef __STDC__
+ float tanhf(float x)
+#else
+ float tanhf(x)
+ float x;
+#endif
+{
+ float t,z;
+ __int32_t jx,ix;
+
+ jx = CYG_LIBM_WORD(x);
+ ix = jx&0x7fffffff;
+
+ /* x is INF or NaN */
+ if(!FLT_UWORD_IS_FINITE(ix)) {
+ if (jx>=0) return one/x+one; /* tanh(+-inf)=+-1 */
+ else return one/x-one; /* tanh(NaN) = NaN */
+ }
+
+ /* |x| < 22 */
+ if (ix < 0x41b00000) { /* |x|<22 */
+ if (ix<0x24000000) /* |x|<2**-55 */
+ return x*(one+x); /* tanh(small) = small */
+ if (ix>=0x3f800000) { /* |x|>=1 */
+ t = expm1f(two*fabsf(x));
+ z = one - two/(t+two);
+ } else {
+ t = expm1f(-two*fabsf(x));
+ z= -t/(t+two);
+ }
+ /* |x| > 22, return +-1 */
+ } else {
+ z = one - tiny; /* raised inexact flag */
+ }
+ return (jx>=0)? z: -z;
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF sf_tanh.c
diff --git a/ecos/packages/language/c/libm/current/src/mathincl/fdlibm.h b/ecos/packages/language/c/libm/current/src/mathincl/fdlibm.h
new file mode 100644
index 0000000..362a267
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/mathincl/fdlibm.h
@@ -0,0 +1,508 @@
+#ifndef CYGONCE_LIBM_MATHINCL_FDLIBM_H
+#define CYGONCE_LIBM_MATHINCL_FDLIBM_H
+//===========================================================================
+//
+// fdlibm.h
+//
+// Internal definitions for math library implementation based on fdlibm
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1999-02-09
+// Purpose:
+// Description: Internal implementation-specific header for math library
+// based on fdlibm
+// Usage: From within this package, #include "mathincl/fdlibm.h"
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include <math.h> // Main header for math library
+#include <float.h> // Properties of FP representation on this
+ // platform
+
+// SANITY CHECKS
+
+// Just check that we support IEEE-style 64-bit doubles. If not, this
+// math library will not work
+// This check will go away when support for single-precision alternatives are
+// provided
+
+#if DBL_MAX_EXP != 1024
+# error IEEE-style 64-bit doubles are required to use the math library
+#endif // if DBL_MAX_EXP == 1024
+
+
+// TYPES
+
+typedef cyg_int32 __int32_t;
+typedef cyg_uint32 __uint32_t;
+typedef Cyg_libm_ieee_double_shape_type ieee_double_shape_type;
+typedef Cyg_libm_ieee_float_shape_type ieee_float_shape_type;
+
+/* Most routines need to check whether a float is finite, infinite, or not a
+ number, and many need to know whether the result of an operation will
+ overflow. These conditions depend on whether the largest exponent is
+ used for NaNs & infinities, or whether it's used for finite numbers. The
+ macros below wrap up that kind of information:
+
+ FLT_UWORD_IS_FINITE(X)
+ True if a positive float with bitmask X is finite.
+
+ FLT_UWORD_IS_NAN(X)
+ True if a positive float with bitmask X is not a number.
+
+ FLT_UWORD_IS_INFINITE(X)
+ True if a positive float with bitmask X is +infinity.
+
+ FLT_UWORD_MAX
+ The bitmask of FLT_MAX.
+
+ FLT_UWORD_HALF_MAX
+ The bitmask of FLT_MAX/2.
+
+ FLT_UWORD_EXP_MAX
+ The bitmask of the largest finite exponent (129 if the largest
+ exponent is used for finite numbers, 128 otherwise).
+
+ FLT_UWORD_LOG_MAX
+ The bitmask of log(FLT_MAX), rounded down. This value is the largest
+ input that can be passed to exp() without producing overflow.
+
+ FLT_UWORD_LOG_2MAX
+ The bitmask of log(2*FLT_MAX), rounded down. This value is the
+ largest input than can be passed to cosh() without producing
+ overflow.
+
+ FLT_LARGEST_EXP
+ The largest biased exponent that can be used for finite numbers
+ (255 if the largest exponent is used for finite numbers, 254
+ otherwise) */
+
+#ifdef _FLT_LARGEST_EXPONENT_IS_NORMAL
+#define FLT_UWORD_IS_FINITE(x) 1
+#define FLT_UWORD_IS_NAN(x) 0
+#define FLT_UWORD_IS_INFINITE(x) 0
+#define FLT_UWORD_MAX 0x7fffffff
+#define FLT_UWORD_EXP_MAX 0x43010000
+#define FLT_UWORD_LOG_MAX 0x42b2d4fc
+#define FLT_UWORD_LOG_2MAX 0x42b437e0
+//#define HUGE ((float)0X1.FFFFFEP128)
+#else
+#define FLT_UWORD_IS_FINITE(x) ((x)<0x7f800000L)
+#define FLT_UWORD_IS_NAN(x) ((x)>0x7f800000L)
+#define FLT_UWORD_IS_INFINITE(x) ((x)==0x7f800000L)
+#define FLT_UWORD_MAX 0x7f7fffffL
+#define FLT_UWORD_EXP_MAX 0x43000000
+#define FLT_UWORD_LOG_MAX 0x42b17217
+#define FLT_UWORD_LOG_2MAX 0x42b2d4fc
+//#define HUGE ((float)3.40282346638528860e+38)
+#endif
+#define FLT_UWORD_HALF_MAX (FLT_UWORD_MAX-(1L<<23))
+#define FLT_LARGEST_EXP (FLT_UWORD_MAX>>23)
+
+/* Many routines check for zero and subnormal numbers. Such things depend
+ on whether the target supports denormals or not:
+
+ FLT_UWORD_IS_ZERO(X)
+ True if a positive float with bitmask X is +0. Without denormals,
+ any float with a zero exponent is a +0 representation. With
+ denormals, the only +0 representation is a 0 bitmask.
+
+ FLT_UWORD_IS_SUBNORMAL(X)
+ True if a non-zero positive float with bitmask X is subnormal.
+ (Routines should check for zeros first.)
+
+ FLT_UWORD_MIN
+ The bitmask of the smallest float above +0. Call this number
+ REAL_FLT_MIN...
+
+ FLT_UWORD_EXP_MIN
+ The bitmask of the float representation of REAL_FLT_MIN's exponent.
+
+ FLT_UWORD_LOG_MIN
+ The bitmask of |log(REAL_FLT_MIN)|, rounding down.
+
+ FLT_SMALLEST_EXP
+ REAL_FLT_MIN's exponent - EXP_BIAS (1 if denormals are not supported,
+ -22 if they are).
+*/
+
+#ifdef _FLT_NO_DENORMALS
+#define FLT_UWORD_IS_ZERO(x) ((x)<0x00800000L)
+#define FLT_UWORD_IS_SUBNORMAL(x) 0
+#define FLT_UWORD_MIN 0x00800000
+#define FLT_UWORD_EXP_MIN 0x42fc0000
+#define FLT_UWORD_LOG_MIN 0x42aeac50
+#define FLT_SMALLEST_EXP 1
+#else
+#define FLT_UWORD_IS_ZERO(x) ((x)==0)
+#define FLT_UWORD_IS_SUBNORMAL(x) ((x)<0x00800000L)
+#define FLT_UWORD_MIN 0x00000001
+#define FLT_UWORD_EXP_MIN 0x43160000
+#define FLT_UWORD_LOG_MIN 0x42cff1b5
+#define FLT_SMALLEST_EXP -22
+#endif
+
+// MACRO DEFINITIONS
+
+#ifndef __STDC__
+# define __STDC__ 1
+#endif
+#define CYG_LIBM_HI(__x) (((Cyg_libm_ieee_double_shape_type *)&__x)->parts.msw)
+#define CYG_LIBM_LO(__x) (((Cyg_libm_ieee_double_shape_type *)&__x)->parts.lsw)
+#define CYG_LIBM_HIp(__x) (((Cyg_libm_ieee_double_shape_type *)__x)->parts.msw)
+#define CYG_LIBM_LOp(__x) (((Cyg_libm_ieee_double_shape_type *)__x)->parts.lsw)
+
+#define CYG_LIBM_WORD(__x) (((Cyg_libm_ieee_float_shape_type *)&__x)->asi32)
+
+/* Get a 32 bit int from a float. */
+
+#define GET_FLOAT_WORD(i,f) \
+do { \
+ Cyg_libm_ieee_float_shape_type gf_u; \
+ gf_u.value = (f); \
+ (i) = gf_u.asi32; \
+} while (0)
+
+/* Set a float from a 32 bit int. */
+
+#define SET_FLOAT_WORD(f,i) \
+do { \
+ Cyg_libm_ieee_float_shape_type sf_u; \
+ sf_u.asi32 = (i); \
+ (f) = sf_u.value; \
+} while (0)
+
+/* Get two 32 bit ints from a double. */
+
+#define EXTRACT_WORDS(ix0,ix1,d) \
+do { \
+ Cyg_libm_ieee_double_shape_type ew_u; \
+ ew_u.value = (d); \
+ (ix0) = ew_u.parts.msw; \
+ (ix1) = ew_u.parts.lsw; \
+} while (0)
+
+/* Get the more significant 32 bit int from a double. */
+
+#define GET_HIGH_WORD(i,d) \
+do { \
+ Cyg_libm_ieee_double_shape_type gh_u; \
+ gh_u.value = (d); \
+ (i) = gh_u.parts.msw; \
+} while (0)
+
+/* Get the less significant 32 bit int from a double. */
+
+#define GET_LOW_WORD(i,d) \
+do { \
+ Cyg_libm_ieee_double_shape_type gl_u; \
+ gl_u.value = (d); \
+ (i) = gl_u.parts.lsw; \
+} while (0)
+
+/* Set a double from two 32 bit ints. */
+
+#define INSERT_WORDS(d,ix0,ix1) \
+do { \
+ Cyg_libm_ieee_double_shape_type iw_u; \
+ iw_u.parts.msw = (ix0); \
+ iw_u.parts.lsw = (ix1); \
+ (d) = iw_u.value; \
+} while (0)
+
+/* Set the more significant 32 bits of a double from an int. */
+
+#define SET_HIGH_WORD(d,v) \
+do { \
+ Cyg_libm_ieee_double_shape_type sh_u; \
+ sh_u.value = (d); \
+ sh_u.parts.msw = (v); \
+ (d) = sh_u.value; \
+} while (0)
+
+/* Set the less significant 32 bits of a double from an int. */
+
+#define SET_LOW_WORD(d,v) \
+do { \
+ Cyg_libm_ieee_double_shape_type sl_u; \
+ sl_u.value = (d); \
+ sl_u.parts.lsw = (v); \
+ (d) = sl_u.value; \
+} while (0)
+
+
+// REPLACEMENTS FOR STUFF FROM MATH.H DUE TO CONFIG OPTION
+
+#ifdef CYGSYM_LIBM_NO_XOPEN_SVID_NAMESPACE_POLLUTION
+
+#define HUGE FLT_MAX // from float.h
+#define DOMAIN 1
+#define SING 2
+#define OVERFLOW 3
+#define UNDERFLOW 4
+#define TLOSS 5
+#define PLOSS 6
+
+struct exception {
+ int type; // One of DOMAIN, SING, OVERFLOW, UNDERFLOW, TLOSS, PLOSS
+ char *name; // Name of the function generating the exception
+ double arg1; // First argument to the function
+ double arg2; // Second argument to the function
+ double retval; // Value to be returned - can be altered by matherr()
+};
+
+externC int
+matherr( struct exception * ); // User-overridable error handling - see
+ // <pkgconf/libm.h> for a discussion
+struct exceptionf {
+ int type; // One of DOMAIN, SING, OVERFLOW, UNDERFLOW, TLOSS, PLOSS
+ char *name; // Name of the function generating the exception
+ float arg1; // First argument to the function
+ float arg2; // Second argument to the function
+ float retval; // Value to be returned - can be altered by matherr()
+};
+
+externC int
+matherrf( struct exceptionf * );
+
+#endif // ifdef CYGSYM_LIBM_NO_XOPEN_SVID_NAMESPACE_POLLUTION
+
+// FUNCTION PROTOTYPES
+
+// IEEE-754 style elementary functions */
+
+externC double
+__ieee754_sqrt( double );
+
+externC double
+__ieee754_acos( double );
+
+externC double
+__ieee754_acosh( double );
+
+externC double
+__ieee754_log( double );
+
+externC double
+__ieee754_atanh( double );
+
+externC double
+__ieee754_asin( double );
+
+externC double
+__ieee754_atan2( double, double );
+
+externC double
+__ieee754_exp( double );
+
+externC double
+__ieee754_cosh( double );
+
+externC double
+__ieee754_fmod( double, double );
+
+externC double
+__ieee754_pow( double, double );
+
+externC double
+__ieee754_lgamma_r( double, int * );
+
+externC double
+__ieee754_gamma_r( double, int * );
+
+externC double
+__ieee754_lgamma( double );
+
+externC double
+__ieee754_gamma( double );
+
+externC double
+__ieee754_log10( double );
+
+externC double
+__ieee754_sinh( double );
+
+externC double
+__ieee754_hypot( double, double );
+
+externC double
+__ieee754_j0( double );
+
+externC double
+__ieee754_j1( double );
+
+externC double
+__ieee754_y0( double );
+
+externC double
+__ieee754_y1( double );
+
+externC double
+__ieee754_jn( int, double );
+
+externC double
+__ieee754_yn( int, double );
+
+externC double
+__ieee754_remainder( double, double );
+
+externC int
+__ieee754_rem_pio2( double, double * );
+
+#ifdef CYGFUN_LIBM_SVID3_scalb
+externC double
+__ieee754_scalb( double, double );
+#else
+externC double
+__ieee754_scalb( double, int );
+#endif
+
+// FDLIBM kernel functions
+
+externC double
+__kernel_standard( double, double, int );
+
+externC double
+__kernel_sin( double, double, int );
+
+externC double
+__kernel_cos( double, double );
+
+externC double
+__kernel_tan( double, double, int );
+
+externC int
+__kernel_rem_pio2( double *, double *, int, int, int, const int * );
+
+/* ieee style elementary float functions */
+externC float __ieee754_sqrtf (float);
+externC float __ieee754_acosf (float);
+externC float __ieee754_acoshf (float);
+externC float __ieee754_logf (float);
+externC float __ieee754_atanhf (float);
+externC float __ieee754_asinf (float);
+externC float __ieee754_atan2f (float,float);
+externC float __ieee754_expf (float);
+externC float __ieee754_coshf (float);
+externC float __ieee754_fmodf (float,float);
+externC float __ieee754_powf (float,float);
+externC float
+__ieee754_lgammaf_r( float, int * );
+
+externC float
+__ieee754_gammaf_r( float, int * );
+
+externC float
+__ieee754_lgammaf( float );
+
+externC float
+__ieee754_gammaf( float );
+externC float __ieee754_log10f (float);
+externC float __ieee754_sinhf (float);
+externC float __ieee754_hypotf (float,float);
+externC float __ieee754_j0f (float);
+externC float __ieee754_j1f (float);
+externC float __ieee754_y0f (float);
+externC float __ieee754_y1f (float);
+externC float __ieee754_jnf (int,float);
+externC float __ieee754_ynf (int,float);
+externC float __ieee754_remainderf (float,float);
+externC cyg_int32 __ieee754_rem_pio2f (float,float*);
+#ifdef _SCALB_INT
+externC float __ieee754_scalbf ((float,int));
+#else
+externC float __ieee754_scalbf (float,float);
+#endif
+
+/* float versions of fdlibm kernel functions */
+externC float __kernel_standard_float( float, float, int );
+externC float __kernel_sinf (float,float,int);
+externC float __kernel_cosf (float,float);
+externC float __kernel_tanf (float,float,int);
+externC int __kernel_rem_pio2f (float*,float*,int,int,int,const cyg_int32*);
+
+#ifdef _COMPLEX_H
+
+/*
+ * Quoting from ISO/IEC 9899:TC2:
+ *
+ * 6.2.5.13 Types
+ * Each complex type has the same representation and alignment requirements as
+ * an array type containing exactly two elements of the corresponding real type;
+ * the first element is equal to the real part, and the second element to the
+ * imaginary part, of the complex number.
+ */
+typedef union {
+ float complex z;
+ float parts[2];
+} float_complex;
+
+typedef union {
+ double complex z;
+ double parts[2];
+} double_complex;
+
+typedef union {
+ long double complex z;
+ long double parts[2];
+} long_double_complex;
+
+#define REAL_PART(z) ((z).parts[0])
+#define IMAG_PART(z) ((z).parts[1])
+
+#endif /* _COMPLEX_H */
+
+
+#endif // ifdef CYGPKG_LIBM
+
+#endif // CYGONCE_LIBM_MATHINCL_FDLIBM_H multiple inclusion protection
+
+// EOF fdlibm.h
diff --git a/ecos/packages/language/c/libm/current/src/misc/compatmode.cxx b/ecos/packages/language/c/libm/current/src/misc/compatmode.cxx
new file mode 100644
index 0000000..d81bae9
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/misc/compatmode.cxx
@@ -0,0 +1,214 @@
+//===========================================================================
+//
+// compatmode.cxx
+//
+// Compatibility mode setting for Math library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1998-02-13
+// Purpose:
+// Description: Contains the accessor functions to get and set the standards
+// compatibility mode of the Math library
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include <cyg/infra/cyg_trac.h> // Tracing macros
+
+#include <math.h> // Main header for math library
+
+#ifdef CYGSEM_LIBM_THREAD_SAFE_COMPAT_MODE
+# include <pkgconf/kernel.h> // Kernel configuration
+# include <cyg/kernel/thread.hxx> // Kernel thread header
+# include <cyg/kernel/thread.inl> // and its associated inlines
+# include <cyg/kernel/mutex.hxx> // We need mutexes too
+#endif
+
+// GLOBAL VARIABLES
+
+#ifndef CYGSEM_LIBM_THREAD_SAFE_COMPAT_MODE
+
+# ifdef CYGSEM_LIBM_COMPAT_IEEE_ONLY
+Cyg_libm_compat_t cygvar_libm_compat_mode = CYGNUM_LIBM_COMPAT_IEEE;
+# else
+Cyg_libm_compat_t cygvar_libm_compat_mode = CYGNUM_LIBM_COMPAT_DEFAULT;
+# endif
+
+#else // ifndef CYGSEM_LIBM_THREAD_SAFE_COMPAT_MODE
+
+static Cyg_Mutex cyg_libm_mode_thread_data_index_mutex;
+static cyg_count32 cyg_libm_mode_thread_data_index = CYGNUM_KERNEL_THREADS_DATA_MAX;
+
+
+# if defined(CYGDBG_USE_TRACING) && \
+ defined(CYGNUM_LIBM_COMPATMODE_TRACE_LEVEL)
+static int libm_compatmode_trace = CYGNUM_LIBM_COMPATMODE_TRACE_LEVEL;
+# define TL1 (0 < libm_compatmode_trace )
+# else
+# define TL1 (0)
+# endif
+
+// FUNCTIONS
+
+
+Cyg_libm_compat_t
+cyg_libm_get_compat_mode( void )
+{
+ Cyg_Thread *self = Cyg_Thread::self();
+ CYG_ADDRWORD current_val;
+
+ CYG_REPORT_FUNCNAMETYPE( "Cyg_libm_get_compat_mode", "mode is %d" );
+
+ // First check if this is the first thread to get here, and if so,
+ // initialise the thread data index
+
+ if (cyg_libm_mode_thread_data_index == CYGNUM_KERNEL_THREADS_DATA_MAX)
+ {
+ CYG_TRACE0( TL1, "Index unset, locking mutex to allocate" );
+
+ // Lock mutex and then check again - less overhead for normal
+ // execution path
+ cyg_libm_mode_thread_data_index_mutex.lock();
+
+ if (cyg_libm_mode_thread_data_index == CYGNUM_KERNEL_THREADS_DATA_MAX)
+ {
+ CYG_TRACE0( TL1, "Allocating index" );
+ cyg_libm_mode_thread_data_index = self->new_data_index();
+
+ } // if
+
+ cyg_libm_mode_thread_data_index_mutex.unlock();
+
+ self->set_data( cyg_libm_mode_thread_data_index,
+ CYGNUM_LIBM_COMPAT_DEFAULT );
+
+ // But if we've gone through this, then we know what the mode is!
+ CYG_REPORT_RETVAL( CYGNUM_LIBM_COMPAT_DEFAULT );
+ return CYGNUM_LIBM_COMPAT_DEFAULT;
+ } // if
+
+ CYG_TRACE0( TL1, "Index set, now fetching per-thread data" );
+
+ // If we're here, then the index is set up
+
+ current_val = self->get_data( cyg_libm_mode_thread_data_index );
+
+ // If its at the "default" setting, then return the default
+ if (current_val == CYGNUM_LIBM_COMPAT_UNINIT)
+ {
+ CYG_REPORT_RETVAL( CYGNUM_LIBM_COMPAT_DEFAULT );
+ return CYGNUM_LIBM_COMPAT_DEFAULT;
+ } // if
+
+ CYG_REPORT_RETVAL( current_val );
+ return (Cyg_libm_compat_t) current_val;
+} // cyg_libm_get_compat_mode()
+
+
+Cyg_libm_compat_t
+cyg_libm_set_compat_mode( Cyg_libm_compat_t new_mode )
+{
+ Cyg_Thread *self = Cyg_Thread::self();
+ CYG_ADDRWORD current_val;
+
+ CYG_REPORT_FUNCNAMETYPE( "Cyg_libm_set_compat_mode", "old mode was %d" );
+ CYG_REPORT_FUNCARG1DV( new_mode );
+
+ // First check if this is the first thread to get here, and if so,
+ // initialise the thread data index
+
+ if (cyg_libm_mode_thread_data_index == CYGNUM_KERNEL_THREADS_DATA_MAX)
+ {
+ CYG_TRACE0( TL1, "Index unset, locking mutex to allocate" );
+
+ // Lock mutex and then check again - less overhead for normal
+ // execution path
+ cyg_libm_mode_thread_data_index_mutex.lock();
+
+ if (cyg_libm_mode_thread_data_index == CYGNUM_KERNEL_THREADS_DATA_MAX)
+ {
+ CYG_TRACE0( TL1, "Allocating index" );
+ cyg_libm_mode_thread_data_index = self->new_data_index();
+
+ } // if
+
+ cyg_libm_mode_thread_data_index_mutex.unlock();
+
+ self->set_data( cyg_libm_mode_thread_data_index,
+ new_mode );
+
+ // But if we've gone through this, then we know what the old mode was!
+
+ CYG_REPORT_RETVAL( CYGNUM_LIBM_COMPAT_UNINIT );
+ return CYGNUM_LIBM_COMPAT_UNINIT;
+
+ } // if
+
+ // If we're here, then the index is set up
+
+ CYG_TRACE0( TL1, "Index set, now fetching per-thread data" );
+
+ current_val = self->get_data( cyg_libm_mode_thread_data_index );
+
+ self->set_data( cyg_libm_mode_thread_data_index,
+ new_mode );
+
+ CYG_REPORT_RETVAL( current_val );
+ return (Cyg_libm_compat_t) current_val;
+
+} // cyg_libm_set_compat_mode()
+
+#endif // ifdef CYGSEM_LIBM_THREAD_SAFE_COMPAT_MODE
+
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF compatmode.cxx
diff --git a/ecos/packages/language/c/libm/current/src/misc/infconst.c b/ecos/packages/language/c/libm/current/src/misc/infconst.c
new file mode 100644
index 0000000..fab0c8c
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/misc/infconst.c
@@ -0,0 +1,83 @@
+//===========================================================================
+//
+// infconst.c
+//
+// Infinity constant
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1998-02-13
+// Purpose:
+// Description: Defines a constant cyg_libm_infinity so that we can define
+// HUGE_VAL
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+ // including endian-ness
+#include <math.h> // Main header for math library
+#include <sys/ieeefp.h> // Cyg_libm_ieee_double_shape_type
+
+
+// GLOBALS
+
+#if (CYG_DOUBLE_BYTEORDER == CYG_MSBFIRST) // Big endian
+
+const Cyg_libm_ieee_double_shape_type cyg_libm_infinity = { {0x7ff00000, 0} };
+
+#else // Little endian
+
+const Cyg_libm_ieee_double_shape_type cyg_libm_infinity = { {0, 0x7ff00000} };
+
+#endif
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF infconst.c
diff --git a/ecos/packages/language/c/libm/current/src/misc/matherr.c b/ecos/packages/language/c/libm/current/src/misc/matherr.c
new file mode 100644
index 0000000..4318bbc
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/misc/matherr.c
@@ -0,0 +1,102 @@
+//===========================================================================
+//
+// matherr.c
+//
+// Default matherr() error handler
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1998-02-13
+// Purpose:
+// Description: Contains an empty default matherr() function which the user
+// can override if they want
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#if defined(CYGPKG_LIBM)
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include <cyg/infra/cyg_trac.h> // Tracing macros
+
+#include <math.h> // Main header for math library
+#include "mathincl/fdlibm.h" // Internal header for math library
+
+int
+matherr( struct exception *x ) __attribute__ ((weak));
+
+int
+matherr( struct exception *x )
+{
+ CYG_REPORT_FUNCNAMETYPE( "matherr", "returning %d" );
+
+// CYG_UNUSED_PARAM( struct exception *, x );
+ CYG_EMPTY_STATEMENT;
+
+ CYG_REPORT_RETVAL( 0 );
+ return 0;
+} // matherr()
+
+int
+matherrf( struct exceptionf *x ) __attribute__ ((weak));
+
+int
+matherrf( struct exceptionf *x )
+{
+ CYG_REPORT_FUNCNAMETYPE( "matherrf", "returning %d" );
+
+// CYG_UNUSED_PARAM( struct exceptionf *, x );
+ CYG_EMPTY_STATEMENT;
+
+ CYG_REPORT_RETVAL( 0 );
+ return 0;
+} // matherrf()
+
+
+#endif // if defined(CYGPKG_LIBM)
+
+// EOF matherr.c
diff --git a/ecos/packages/language/c/libm/current/src/misc/signgam.cxx b/ecos/packages/language/c/libm/current/src/misc/signgam.cxx
new file mode 100644
index 0000000..0f16060
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/misc/signgam.cxx
@@ -0,0 +1,146 @@
+//===========================================================================
+//
+// signgam.cxx
+//
+// Support sign of the gamma*() functions in Math library
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1998-02-13
+// Purpose:
+// Description: Contains the accessor functions to get and set the stored sign
+// of the gamma*() functions in the math library
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include <cyg/infra/cyg_trac.h> // Tracing macros
+
+#include <math.h> // Main header for math library
+
+#ifdef CYGSEM_LIBM_THREAD_SAFE_GAMMA_FUNCTIONS
+# include <pkgconf/kernel.h> // Kernel configuration
+# include <cyg/kernel/thread.hxx> // Kernel thread header
+# include <cyg/kernel/thread.inl> // and its associated inlines
+# include <cyg/kernel/mutex.hxx> // We need mutexes too
+#endif
+
+
+// GLOBAL VARIABLES
+
+#ifndef CYGSEM_LIBM_THREAD_SAFE_GAMMA_FUNCTIONS
+
+int signgam = 0;
+
+#else // ifndef CYGSEM_LIBM_THREAD_SAFE_GAMMA_FUNCTIONS
+
+static Cyg_Mutex cyg_libm_signgam_thread_data_index_mutex;
+static cyg_count32 cyg_libm_signgam_thread_data_index = CYGNUM_KERNEL_THREADS_DATA_MAX;
+
+# if defined(CYGDBG_USE_TRACING) && \
+ defined(CYGNUM_LIBM_SIGNGAM_TRACE_LEVEL)
+static int libm_signgam_trace = CYGNUM_LIBM_SIGNGAM_TRACE_LEVEL;
+# define TL1 (0 < libm_signgam_trace )
+# else
+# define TL1 (0)
+# endif
+
+#endif // ifndef CYGSEM_LIBM_THREAD_SAFE_GAMMA_FUNCTIONS
+
+// FUNCTIONS
+
+#ifdef CYGSEM_LIBM_THREAD_SAFE_GAMMA_FUNCTIONS
+
+int *
+cyg_libm_get_signgam_p( void )
+{
+ Cyg_Thread *self = Cyg_Thread::self();
+ CYG_ADDRWORD *current_val_p;
+
+ CYG_REPORT_FUNCNAMETYPE( "Cyg_libm_get_signgam_p", "&signgam is %08x" );
+
+ // First check if this is the first thread to get here, and if so,
+ // initialise the thread data index
+
+ if (cyg_libm_signgam_thread_data_index == CYGNUM_KERNEL_THREADS_DATA_MAX)
+ {
+ CYG_TRACE0( TL1, "Index unset, locking mutex to allocate" );
+
+ // Lock mutex and then check again - less overhead for normal
+ // execution path
+ cyg_libm_signgam_thread_data_index_mutex.lock();
+
+ if (cyg_libm_signgam_thread_data_index == CYGNUM_KERNEL_THREADS_DATA_MAX)
+ {
+ CYG_TRACE0( TL1, "Allocating index" );
+ cyg_libm_signgam_thread_data_index = self->new_data_index();
+
+ } // if
+
+ cyg_libm_signgam_thread_data_index_mutex.unlock();
+
+ } // if
+
+ CYG_TRACE0( TL1, "Index set, now fetching per-thread data" );
+
+ // If we're here, then the index is set up
+
+ current_val_p = self->get_data_ptr( cyg_libm_signgam_thread_data_index );
+
+ CYG_REPORT_RETVAL( current_val_p );
+ return (int *) current_val_p;
+} // cyg_libm_get_signgam_p()
+
+#endif // ifdef CYGSEM_LIBM_THREAD_SAFE_GAMMA_FUNCTIONS
+
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF signgam.cxx
diff --git a/ecos/packages/language/c/libm/current/src/misc/standard.c b/ecos/packages/language/c/libm/current/src/misc/standard.c
new file mode 100644
index 0000000..25ab22f
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/misc/standard.c
@@ -0,0 +1,59 @@
+//===========================================================================
+//
+// standard_float.c
+//
+// Standard conformance (non-IEEE) on exception cases.
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2013 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): ilijak
+// Contributors:
+// Date: 2013-06-17
+// Purpose:
+// Description:
+//
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+#define CYG_STANDARD_FLOAT_T double
+#define CYGSTR_FLOAT_SUFFIX
+#define MATHERR(__exc_p) matherr(__exc_p)
+#include "standard.inl"
+
+// EOF standard_float.c
diff --git a/ecos/packages/language/c/libm/current/src/misc/standard.inl b/ecos/packages/language/c/libm/current/src/misc/standard.inl
new file mode 100644
index 0000000..39578c9
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/misc/standard.inl
@@ -0,0 +1,860 @@
+//===========================================================================
+//
+// standard.inl
+//
+//
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2013 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: ilijak
+// Date: 1998-02-13
+// Purpose:
+// Description:
+//
+// Usage: This file is included by standard.c and standard_float.c
+// Note: The contents of this file originally existed in standard.c
+// with addition of single precision math library the body was
+// transfered here, while standard.c and standard_float.c include
+// and instantiate this file for double and single precision floats
+// respectively.
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+/* @(#)k_standard.c 1.3 95/01/18 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunSoft, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ *
+ */
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// Include the Math library?
+#ifdef CYGPKG_LIBM
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include <cyg/infra/cyg_trac.h> // Tracing macros
+
+#include <math.h> // Main header for math library
+#include "mathincl/fdlibm.h" // Internal header for math library
+
+#include <cyg/error/codes.h> // standard error codes
+
+#ifndef CYGSEM_LIBM_COMPAT_IEEE_ONLY
+#include <errno.h>
+#else
+static int errno; // this whole file won't be used if we're IEEE only, but
+ // doing this keeps the compiler happy
+#endif
+
+#ifdef CYGSEM_LIBM_USE_STDERR
+
+#include <stdio.h>
+#define WRITE2(u,v) fputs(u, stderr)
+
+#else
+
+#define WRITE2(u,v) 0
+
+#endif // ifdef CYGSEM_LIBM_USE_STDERR
+
+
+// GLOBALS
+
+static const CYG_STANDARD_FLOAT_T zero = (CYG_STANDARD_FLOAT_T)0.0;
+
+// FUNCTIONS
+
+/*
+ * Standard conformance (non-IEEE) on exception cases.
+ * Mapping:
+ * 1 -- acos(|x|>1)
+ * 2 -- asin(|x|>1)
+ * 3 -- atan2(+-0,+-0)
+ * 4 -- hypot overflow
+ * 5 -- cosh overflow
+ * 6 -- exp overflow
+ * 7 -- exp underflow
+ * 8 -- y0(0)
+ * 9 -- y0(-ve)
+ * 10-- y1(0)
+ * 11-- y1(-ve)
+ * 12-- yn(0)
+ * 13-- yn(-ve)
+ * 14-- lgamma(finite) overflow
+ * 15-- lgamma(-integer)
+ * 16-- log(0)
+ * 17-- log(x<0)
+ * 18-- log10(0)
+ * 19-- log10(x<0)
+ * 20-- pow(0.0,0.0)
+ * 21-- pow(x,y) overflow
+ * 22-- pow(x,y) underflow
+ * 23-- pow(0,negative)
+ * 24-- pow(neg,non-integral)
+ * 25-- sinh(finite) overflow
+ * 26-- sqrt(negative)
+ * 27-- fmod(x,0)
+ * 28-- remainder(x,0)
+ * 29-- acosh(x<1)
+ * 30-- atanh(|x|>1)
+ * 31-- atanh(|x|=1)
+ * 32-- scalb overflow
+ * 33-- scalb underflow
+ * 34-- j0(|x|>X_TLOSS)
+ * 35-- y0(x>X_TLOSS)
+ * 36-- j1(|x|>X_TLOSS)
+ * 37-- y1(x>X_TLOSS)
+ * 38-- jn(|x|>X_TLOSS, n)
+ * 39-- yn(x>X_TLOSS, n)
+ * 40-- gamma(finite) overflow
+ * 41-- gamma(-integer)
+ * 42-- pow(NaN,0.0)
+ * 43-- ldexp overflow
+ * 44-- ldexp underflow
+ */
+
+#ifdef FLOAT_SINGLE_PRECISION
+float
+__kernel_standard_float(float x, float y, int type)
+{
+ struct exceptionf exc;
+
+#else
+double
+__kernel_standard(double x, double y, int type)
+{
+ struct exception exc;
+
+#endif
+
+#ifdef CYGSEM_LIBM_USE_STDERR
+ (void) fflush(stdout);
+#endif
+ exc.arg1 = x;
+ exc.arg2 = y;
+ switch(type) {
+ case 1:
+ /* acos(|x|>1) */
+ exc.type = DOMAIN;
+ exc.name = "acos" CYGSTR_FLOAT_SUFFIX;
+#ifdef CYGOPT_LIBM_COMPAT_POSIX_IEEE
+ exc.retval = (x-x)/(x-x);
+#else
+ exc.retval = zero;
+#endif
+ if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_POSIX)
+ errno = EDOM;
+ else if (!MATHERR(&exc)) {
+ if(cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_SVID) {
+ (void) WRITE2("acos: DOMAIN error\n", 19);
+ }
+ errno = EDOM;
+ }
+ break;
+ case 2:
+ /* asin(|x|>1) */
+ exc.type = DOMAIN;
+ exc.name = "asin" CYGSTR_FLOAT_SUFFIX;
+#ifdef CYGOPT_LIBM_COMPAT_POSIX_IEEE
+ exc.retval = (x-x)/(x-x);
+#else
+ exc.retval = zero;
+#endif
+ if(cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_POSIX)
+ errno = EDOM;
+ else if (!MATHERR(&exc)) {
+ if(cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_SVID) {
+ (void) WRITE2("asin: DOMAIN error\n", 19);
+ }
+ errno = EDOM;
+ }
+ break;
+ case 3:
+ /* atan2(+-0,+-0) */
+ exc.arg1 = y;
+ exc.arg2 = x;
+ exc.type = DOMAIN;
+ exc.name = "atan2" CYGSTR_FLOAT_SUFFIX;
+ exc.retval = zero;
+ if(cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_POSIX)
+ errno = EDOM;
+ else if (!MATHERR(&exc)) {
+ if(cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_SVID) {
+ (void) WRITE2("atan2: DOMAIN error\n", 20);
+ }
+ errno = EDOM;
+ }
+ break;
+ case 4:
+ /* hypot(finite,finite) overflow */
+ exc.type = OVERFLOW;
+ exc.name = "hypot" CYGSTR_FLOAT_SUFFIX;
+ if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_SVID)
+ exc.retval = HUGE;
+ else
+ exc.retval = HUGE_VAL;
+ if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_POSIX)
+ errno = ERANGE;
+ else if (!MATHERR(&exc)) {
+ errno = ERANGE;
+ }
+ break;
+ case 5:
+ /* cosh(finite) overflow */
+ exc.type = OVERFLOW;
+ exc.name = "cosh" CYGSTR_FLOAT_SUFFIX;
+ if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_SVID)
+ exc.retval = HUGE;
+ else
+ exc.retval = HUGE_VAL;
+ if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_POSIX)
+ errno = ERANGE;
+ else if (!MATHERR(&exc)) {
+ errno = ERANGE;
+ }
+ break;
+ case 6:
+ /* exp(finite) overflow */
+ exc.type = OVERFLOW;
+ exc.name = "exp" CYGSTR_FLOAT_SUFFIX;
+ if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_SVID)
+ exc.retval = HUGE;
+ else
+ exc.retval = HUGE_VAL;
+ if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_POSIX)
+ errno = ERANGE;
+ else if (!MATHERR(&exc)) {
+ errno = ERANGE;
+ }
+ break;
+ case 7:
+ /* exp(finite) underflow */
+ exc.type = UNDERFLOW;
+ exc.name = "exp" CYGSTR_FLOAT_SUFFIX;
+ exc.retval = zero;
+ if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_POSIX)
+ errno = ERANGE;
+ else if (!MATHERR(&exc)) {
+ errno = ERANGE;
+ }
+ break;
+ case 8:
+ /* y0(0) = -inf */
+ exc.type = DOMAIN; /* should be SING for IEEE */
+ exc.name = "y0" CYGSTR_FLOAT_SUFFIX;
+ if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_SVID)
+ exc.retval = -HUGE;
+ else
+ exc.retval = -HUGE_VAL;
+ if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_POSIX)
+ errno = EDOM;
+ else if (!MATHERR(&exc)) {
+ if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_SVID) {
+ (void) WRITE2("y0: DOMAIN error\n", 17);
+ }
+ errno = EDOM;
+ }
+ break;
+ case 9:
+ /* y0(x<0) = NaN */
+ exc.type = DOMAIN;
+ exc.name = "y0" CYGSTR_FLOAT_SUFFIX;
+ if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_SVID)
+ exc.retval = -HUGE;
+ else
+ exc.retval = -HUGE_VAL;
+ if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_POSIX)
+ errno = EDOM;
+ else if (!MATHERR(&exc)) {
+ if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_SVID) {
+ (void) WRITE2("y0: DOMAIN error\n", 17);
+ }
+ errno = EDOM;
+ }
+ break;
+ case 10:
+ /* y1(0) = -inf */
+ exc.type = DOMAIN; /* should be SING for IEEE */
+ exc.name = "y1" CYGSTR_FLOAT_SUFFIX;
+ if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_SVID)
+ exc.retval = -HUGE;
+ else
+ exc.retval = -HUGE_VAL;
+ if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_POSIX)
+ errno = EDOM;
+ else if (!MATHERR(&exc)) {
+ if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_SVID) {
+ (void) WRITE2("y1: DOMAIN error\n", 17);
+ }
+ errno = EDOM;
+ }
+ break;
+ case 11:
+ /* y1(x<0) = NaN */
+ exc.type = DOMAIN;
+ exc.name = "y1" CYGSTR_FLOAT_SUFFIX;
+ if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_SVID)
+ exc.retval = -HUGE;
+ else
+ exc.retval = -HUGE_VAL;
+ if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_POSIX)
+ errno = EDOM;
+ else if (!MATHERR(&exc)) {
+ if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_SVID) {
+ (void) WRITE2("y1: DOMAIN error\n", 17);
+ }
+ errno = EDOM;
+ }
+ break;
+ case 12:
+ /* yn(n,0) = -inf */
+ exc.type = DOMAIN; /* should be SING for IEEE */
+ exc.name = "yn" CYGSTR_FLOAT_SUFFIX;
+ if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_SVID)
+ exc.retval = -HUGE;
+ else
+ exc.retval = -HUGE_VAL;
+ if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_POSIX)
+ errno = EDOM;
+ else if (!MATHERR(&exc)) {
+ if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_SVID) {
+ (void) WRITE2("yn: DOMAIN error\n", 17);
+ }
+ errno = EDOM;
+ }
+ break;
+ case 13:
+ /* yn(x<0) = NaN */
+ exc.type = DOMAIN;
+ exc.name = "yn" CYGSTR_FLOAT_SUFFIX;
+ if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_SVID)
+ exc.retval = -HUGE;
+ else
+ exc.retval = -HUGE_VAL;
+ if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_POSIX)
+ errno = EDOM;
+ else if (!MATHERR(&exc)) {
+ if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_SVID) {
+ (void) WRITE2("yn: DOMAIN error\n", 17);
+ }
+ errno = EDOM;
+ }
+ break;
+ case 14:
+ /* lgamma(finite) overflow */
+ exc.type = OVERFLOW;
+ exc.name = "lgamma" CYGSTR_FLOAT_SUFFIX;
+ if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_SVID)
+ exc.retval = HUGE;
+ else
+ exc.retval = HUGE_VAL;
+ if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_POSIX)
+ errno = ERANGE;
+ else if (!MATHERR(&exc)) {
+ errno = ERANGE;
+ }
+ break;
+ case 15:
+ /* lgamma(-integer) or lgamma(0) */
+ exc.type = SING;
+ exc.name = "lgamma" CYGSTR_FLOAT_SUFFIX;
+ if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_SVID)
+ exc.retval = HUGE;
+ else
+ exc.retval = HUGE_VAL;
+ if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_POSIX)
+ errno = EDOM;
+ else if (!MATHERR(&exc)) {
+ if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_SVID) {
+ (void) WRITE2("lgamma: SING error\n", 19);
+ }
+ errno = EDOM;
+ }
+ break;
+ case 16:
+ /* log(0) */
+ exc.type = SING;
+ exc.name = "log" CYGSTR_FLOAT_SUFFIX;
+ if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_SVID)
+ exc.retval = -HUGE;
+ else
+ exc.retval = -HUGE_VAL;
+ if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_POSIX)
+ errno = ERANGE;
+ else if (!MATHERR(&exc)) {
+ if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_SVID) {
+ (void) WRITE2("log: SING error\n", 16);
+ }
+ errno = EDOM;
+ }
+ break;
+ case 17:
+ /* log(x<0) */
+ exc.type = DOMAIN;
+ exc.name = "log" CYGSTR_FLOAT_SUFFIX;
+ if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_SVID)
+ exc.retval = -HUGE;
+ else
+#ifdef CYGOPT_LIBM_COMPAT_POSIX_IEEE
+ exc.retval = (x-x)/(x-x);
+#else
+ exc.retval = -HUGE_VAL;
+#endif
+ if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_POSIX)
+ errno = EDOM;
+ else if (!MATHERR(&exc)) {
+ if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_SVID) {
+ (void) WRITE2("log: DOMAIN error\n", 18);
+ }
+ errno = EDOM;
+ }
+ break;
+ case 18:
+ /* log10(0) */
+ exc.type = SING;
+ exc.name = "log10" CYGSTR_FLOAT_SUFFIX;
+ if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_SVID)
+ exc.retval = -HUGE;
+ else
+ exc.retval = -HUGE_VAL;
+ if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_POSIX)
+ errno = ERANGE;
+ else if (!MATHERR(&exc)) {
+ if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_SVID) {
+ (void) WRITE2("log10: SING error\n", 18);
+ }
+ errno = EDOM;
+ }
+ break;
+ case 19:
+ /* log10(x<0) */
+ exc.type = DOMAIN;
+ exc.name = "log10" CYGSTR_FLOAT_SUFFIX;
+ if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_SVID)
+ exc.retval = -HUGE;
+ else
+#ifdef CYGOPT_LIBM_COMPAT_POSIX_IEEE
+ exc.retval = (x-x)/(x-x);
+#else
+ exc.retval = -HUGE_VAL;
+#endif
+ if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_POSIX)
+ errno = EDOM;
+ else if (!MATHERR(&exc)) {
+ if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_SVID) {
+ (void) WRITE2("log10: DOMAIN error\n", 20);
+ }
+ errno = EDOM;
+ }
+ break;
+ case 20:
+ /* pow(0.0,0.0) */
+ /* error only if cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_SVID */
+ exc.type = DOMAIN;
+ exc.name = "pow" CYGSTR_FLOAT_SUFFIX;
+ exc.retval = zero;
+ if (cyg_libm_get_compat_mode() != CYGNUM_LIBM_COMPAT_SVID) exc.retval = 1.0;
+ else if (!MATHERR(&exc)) {
+ (void) WRITE2("pow(0,0): DOMAIN error\n", 23);
+ errno = EDOM;
+ }
+ break;
+ case 21:
+ /* pow(x,y) overflow */
+ exc.type = OVERFLOW;
+ exc.name = "pow" CYGSTR_FLOAT_SUFFIX;
+ if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_SVID) {
+ exc.retval = HUGE;
+ y *= 0.5;
+ if(x<zero&&rint(y)!=y) exc.retval = -HUGE;
+ } else {
+ exc.retval = HUGE_VAL;
+ y *= 0.5;
+ if(x<zero&&rint(y)!=y) exc.retval = -HUGE_VAL;
+ }
+ if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_POSIX)
+ errno = ERANGE;
+ else if (!MATHERR(&exc)) {
+ errno = ERANGE;
+ }
+ break;
+ case 22:
+ /* pow(x,y) underflow */
+ exc.type = UNDERFLOW;
+ exc.name = "pow" CYGSTR_FLOAT_SUFFIX;
+ exc.retval = zero;
+ if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_POSIX)
+ errno = ERANGE;
+ else if (!MATHERR(&exc)) {
+ errno = ERANGE;
+ }
+ break;
+ case 23:
+ /* 0**neg */
+ exc.type = DOMAIN;
+ exc.name = "pow" CYGSTR_FLOAT_SUFFIX;
+ if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_SVID)
+ exc.retval = zero;
+ else
+ exc.retval = -HUGE_VAL;
+ if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_POSIX)
+ errno = EDOM;
+ else if (!MATHERR(&exc)) {
+ if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_SVID) {
+ (void) WRITE2("pow(0,neg): DOMAIN error\n", 25);
+ }
+ errno = EDOM;
+ }
+ break;
+ case 24:
+ /* neg**non-integral */
+ exc.type = DOMAIN;
+ exc.name = "pow" CYGSTR_FLOAT_SUFFIX;
+ if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_SVID)
+ exc.retval = zero;
+ else
+ exc.retval = zero/zero; /* X/Open allow NaN */
+ if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_POSIX)
+ errno = EDOM;
+ else if (!MATHERR(&exc)) {
+ if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_SVID) {
+ (void) WRITE2("neg**non-integral: DOMAIN error\n", 32);
+ }
+ errno = EDOM;
+ }
+ break;
+ case 25:
+ /* sinh(finite) overflow */
+ exc.type = OVERFLOW;
+ exc.name = "sinh" CYGSTR_FLOAT_SUFFIX;
+ if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_SVID)
+ exc.retval = ( (x>zero) ? HUGE : -HUGE);
+ else
+ exc.retval = ( (x>zero) ? HUGE_VAL : -HUGE_VAL);
+ if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_POSIX)
+ errno = ERANGE;
+ else if (!MATHERR(&exc)) {
+ errno = ERANGE;
+ }
+ break;
+ case 26:
+ /* sqrt(x<0) */
+ exc.type = DOMAIN;
+ exc.name = "sqrt" CYGSTR_FLOAT_SUFFIX;
+ if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_SVID)
+ exc.retval = zero;
+ else
+ exc.retval = zero/zero;
+ if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_POSIX)
+ errno = EDOM;
+ else if (!MATHERR(&exc)) {
+ if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_SVID) {
+ (void) WRITE2("sqrt: DOMAIN error\n", 19);
+ }
+ errno = EDOM;
+ }
+ break;
+ case 27:
+ /* fmod(x,0) */
+ exc.type = DOMAIN;
+ exc.name = "fmod" CYGSTR_FLOAT_SUFFIX;
+ if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_SVID)
+ exc.retval = x;
+ else
+ exc.retval = zero/zero;
+ if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_POSIX)
+ errno = EDOM;
+ else if (!MATHERR(&exc)) {
+ if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_SVID) {
+ (void) WRITE2("fmod: DOMAIN error\n", 20);
+ }
+ errno = EDOM;
+ }
+ break;
+ case 28:
+ /* remainder(x,0) */
+ exc.type = DOMAIN;
+ exc.name = "remainder" CYGSTR_FLOAT_SUFFIX;
+ exc.retval = zero/zero;
+ if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_POSIX)
+ errno = EDOM;
+ else if (!MATHERR(&exc)) {
+ if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_SVID) {
+ (void) WRITE2("remainder: DOMAIN error\n", 24);
+ }
+ errno = EDOM;
+ }
+ break;
+ case 29:
+ /* acosh(x<1) */
+ exc.type = DOMAIN;
+ exc.name = "acosh" CYGSTR_FLOAT_SUFFIX;
+ exc.retval = zero/zero;
+ if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_POSIX)
+ errno = EDOM;
+ else if (!MATHERR(&exc)) {
+ if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_SVID) {
+ (void) WRITE2("acosh: DOMAIN error\n", 20);
+ }
+ errno = EDOM;
+ }
+ break;
+ case 30:
+ /* atanh(|x|>1) */
+ exc.type = DOMAIN;
+ exc.name = "atanh" CYGSTR_FLOAT_SUFFIX;
+ exc.retval = zero/zero;
+ if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_POSIX)
+ errno = EDOM;
+ else if (!MATHERR(&exc)) {
+ if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_SVID) {
+ (void) WRITE2("atanh: DOMAIN error\n", 20);
+ }
+ errno = EDOM;
+ }
+ break;
+ case 31:
+ /* atanh(|x|=1) */
+ exc.type = SING;
+ exc.name = "atanh" CYGSTR_FLOAT_SUFFIX;
+ exc.retval = x/zero; /* sign(x)*inf */
+ if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_POSIX)
+ errno = EDOM;
+ else if (!MATHERR(&exc)) {
+ if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_SVID) {
+ (void) WRITE2("atanh: SING error\n", 18);
+ }
+ errno = EDOM;
+ }
+ break;
+ case 32:
+ /* scalb overflow; SVID also returns +-HUGE_VAL */
+ exc.type = OVERFLOW;
+ exc.name = "scalb" CYGSTR_FLOAT_SUFFIX;
+ exc.retval = x > zero ? HUGE_VAL : -HUGE_VAL;
+ if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_POSIX)
+ errno = ERANGE;
+ else if (!MATHERR(&exc)) {
+ errno = ERANGE;
+ }
+ break;
+ case 33:
+ /* scalb underflow */
+ exc.type = UNDERFLOW;
+ exc.name = "scalb" CYGSTR_FLOAT_SUFFIX;
+ exc.retval = copysign(zero,x);
+ if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_POSIX)
+ errno = ERANGE;
+ else if (!MATHERR(&exc)) {
+ errno = ERANGE;
+ }
+ break;
+ case 34:
+ /* j0(|x|>X_TLOSS) */
+ exc.type = TLOSS;
+ exc.name = "j0" CYGSTR_FLOAT_SUFFIX;
+ exc.retval = zero;
+ if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_POSIX)
+ errno = ERANGE;
+ else if (!MATHERR(&exc)) {
+ if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_SVID) {
+ (void) WRITE2(exc.name, 2);
+ (void) WRITE2(": TLOSS error\n", 14);
+ }
+ errno = ERANGE;
+ }
+ break;
+ case 35:
+ /* y0(x>X_TLOSS) */
+ exc.type = TLOSS;
+ exc.name = "y0" CYGSTR_FLOAT_SUFFIX;
+ exc.retval = zero;
+ if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_POSIX)
+ errno = ERANGE;
+ else if (!MATHERR(&exc)) {
+ if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_SVID) {
+ (void) WRITE2(exc.name, 2);
+ (void) WRITE2(": TLOSS error\n", 14);
+ }
+ errno = ERANGE;
+ }
+ break;
+ case 36:
+ /* j1(|x|>X_TLOSS) */
+ exc.type = TLOSS;
+ exc.name = "j1" CYGSTR_FLOAT_SUFFIX;
+ exc.retval = zero;
+ if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_POSIX)
+ errno = ERANGE;
+ else if (!MATHERR(&exc)) {
+ if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_SVID) {
+ (void) WRITE2(exc.name, 2);
+ (void) WRITE2(": TLOSS error\n", 14);
+ }
+ errno = ERANGE;
+ }
+ break;
+ case 37:
+ /* y1(x>X_TLOSS) */
+ exc.type = TLOSS;
+ exc.name = "y1" CYGSTR_FLOAT_SUFFIX;
+ exc.retval = zero;
+ if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_POSIX)
+ errno = ERANGE;
+ else if (!MATHERR(&exc)) {
+ if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_SVID) {
+ (void) WRITE2(exc.name, 2);
+ (void) WRITE2(": TLOSS error\n", 14);
+ }
+ errno = ERANGE;
+ }
+ break;
+ case 38:
+ /* jn(|x|>X_TLOSS) */
+ exc.type = TLOSS;
+ exc.name = "jn" CYGSTR_FLOAT_SUFFIX;
+ exc.retval = zero;
+ if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_POSIX)
+ errno = ERANGE;
+ else if (!MATHERR(&exc)) {
+ if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_SVID) {
+ (void) WRITE2(exc.name, 2);
+ (void) WRITE2(": TLOSS error\n", 14);
+ }
+ errno = ERANGE;
+ }
+ break;
+ case 39:
+ /* yn(x>X_TLOSS) */
+ exc.type = TLOSS;
+ exc.name = "yn" CYGSTR_FLOAT_SUFFIX;
+ exc.retval = zero;
+ if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_POSIX)
+ errno = ERANGE;
+ else if (!MATHERR(&exc)) {
+ if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_SVID) {
+ (void) WRITE2(exc.name, 2);
+ (void) WRITE2(": TLOSS error\n", 14);
+ }
+ errno = ERANGE;
+ }
+ break;
+ case 40:
+ /* gamma(finite) overflow */
+ exc.type = OVERFLOW;
+ exc.name = "gamma" CYGSTR_FLOAT_SUFFIX;
+ if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_SVID)
+ exc.retval = HUGE;
+ else
+ exc.retval = HUGE_VAL;
+ if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_POSIX)
+ errno = ERANGE;
+ else if (!MATHERR(&exc)) {
+ errno = ERANGE;
+ }
+ break;
+ case 41:
+ /* gamma(-integer) or gamma(0) */
+ exc.type = SING;
+ exc.name = "gamma" CYGSTR_FLOAT_SUFFIX;
+ if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_SVID)
+ exc.retval = HUGE;
+ else
+ exc.retval = HUGE_VAL;
+ if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_POSIX)
+ errno = EDOM;
+ else if (!MATHERR(&exc)) {
+ if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_SVID) {
+ (void) WRITE2("gamma: SING error\n", 18);
+ }
+ errno = EDOM;
+ }
+ break;
+ case 42:
+ /* pow(NaN,0.0) */
+ /* error only if cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_SVID & CYGNUM_LIBM_COMPAT_XOPEN */
+ exc.type = DOMAIN;
+ exc.name = "pow" CYGSTR_FLOAT_SUFFIX;
+ exc.retval = x;
+ if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_IEEE ||
+ cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_POSIX) exc.retval = 1.0;
+ else if (!MATHERR(&exc)) {
+ errno = EDOM;
+ }
+ break;
+ case 43:
+ /* ldexp overflow; SVID also returns +-HUGE_VAL */
+ exc.type = OVERFLOW;
+ exc.name = "ldexp" CYGSTR_FLOAT_SUFFIX;
+ exc.retval = x > zero ? HUGE_VAL : -HUGE_VAL;
+ if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_POSIX)
+ errno = ERANGE;
+ else if (!MATHERR(&exc)) {
+ errno = ERANGE;
+ }
+ break;
+ case 44:
+ /* ldexp underflow */
+ exc.type = UNDERFLOW;
+ exc.name = "ldexp" CYGSTR_FLOAT_SUFFIX;
+ exc.retval = copysign(zero,x);
+ if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_POSIX)
+ errno = ERANGE;
+ else if (!MATHERR(&exc)) {
+ errno = ERANGE;
+ }
+ break;
+ }
+ return exc.retval;
+}
+
+#endif // ifdef CYGPKG_LIBM
+
+// EOF standard.c
diff --git a/ecos/packages/language/c/libm/current/src/misc/standard_float.c b/ecos/packages/language/c/libm/current/src/misc/standard_float.c
new file mode 100644
index 0000000..ec1b654
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/src/misc/standard_float.c
@@ -0,0 +1,60 @@
+//===========================================================================
+//
+// standard_float.c
+//
+// Standard conformance (non-IEEE) on exception cases.
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2013 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): ilijak
+// Contributors:
+// Date: 2013-06-17
+// Purpose:
+// Description:
+//
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+#define FLOAT_SINGLE_PRECISION
+#define CYG_STANDARD_FLOAT_T float
+#define CYGSTR_FLOAT_SUFFIX "f"
+#define MATHERR(__exc_p) matherrf(__exc_p)
+#include "standard.inl"
+
+// EOF standard_float.c
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/acos.c b/ecos/packages/language/c/libm/current/tests/vectors/acos.c
new file mode 100644
index 0000000..1b06040
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/acos.c
@@ -0,0 +1,115 @@
+//===========================================================================
+//
+// acos.c
+//
+// Test of acos() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// Declarations for test system:
+//
+// TESTCASE_TYPE=CYG_TEST_MODULE
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include <cyg/infra/testcase.h> // Test infrastructure
+#include <math.h> // Header for this package
+#include <sys/ieeefp.h> // Cyg_libm_ieee_double_shape_type
+#include "vectors/vector_support.h"// extra support for math tests
+
+#include "vectors/acos.h"
+
+// FUNCTIONS
+
+static void
+test( CYG_ADDRWORD data )
+{
+ cyg_ucount32 vec_size;
+ cyg_bool ret;
+
+ vec_size = sizeof(acos_vec) / sizeof(Cyg_libm_test_double_vec_t);
+ ret = doTestVec( (CYG_ADDRWORD) &acos, CYG_LIBM_TEST_VEC_DOUBLE,
+ CYG_LIBM_TEST_VEC_NONE, CYG_LIBM_TEST_VEC_DOUBLE,
+ &acos_vec[0], vec_size );
+
+ if (ret==true)
+ {
+ CYG_TEST_PASS("acos() is stable");
+ } // if
+ else
+ {
+ CYG_TEST_FAIL("acos() failed tests");
+ } // else
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for Math "
+ "library acos() function");
+} // test()
+
+
+int
+main(int argc, char *argv[])
+{
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for Math library "
+ "acos() function");
+
+ START_TEST( test );
+
+ CYG_TEST_PASS_FINISH("Testing is not applicable to this configuration");
+
+} // main()
+
+
+// EOF acos.c
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/acos.h b/ecos/packages/language/c/libm/current/tests/vectors/acos.h
new file mode 100644
index 0000000..29b40d8
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/acos.h
@@ -0,0 +1,1079 @@
+#ifndef CYGONCE_LIBM_ACOS_H
+#define CYGONCE_LIBM_ACOS_H
+//===========================================================================
+//
+// acos.h
+//
+// Test vectors for testing of acos() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage: #include "vectors/acos.h"
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include "vectors/vector_support.h"// extra support for math tests
+
+#define ACOS_TOLERANCE 1.0E-04
+
+static const Cyg_libm_test_double_vec_t acos_vec[] = {
+
+// AUTOMATICALLY GENERATED VECTORS START
+
+{ 1, 604042796u, 2506787616u, 3214772338u, 2077734866u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 2, 182169888u, 3065862417u, 1106988572u, 4273582707u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 3, 2664755801u, 1226547830u, 1071032732u, 3857964939u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 4, 94291757u, 4010703484u, 1081727025u, 4287567452u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 5, 118911615u, 2977931045u, 1104283808u, 3843658091u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 6, 2656608405u, 3088088668u, 1073408149u, 2318866154u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 7, 263730613u, 2451317798u, 3210911814u, 1038562750u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 8, 580821368u, 2221564313u, 1059115557u, 977275158u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 9, 399687375u, 97950278u, 3204919842u, 1605286142u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 10, 460757591u, 4233776869u, 1087533966u, 1919858904u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 11, 2870376804u, 1472965721u, 3230691143u, 2574511435u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 12, 2882092039u, 1204637550u, 3213143089u, 2421516003u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 13, 3037750340u, 3337705339u, 3238331976u, 3183442542u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 14, 2949649050u, 1086075996u, 1067714579u, 3477152375u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 15, 535591366u, 247024800u, 1040265469u, 3354345619u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 16, 63178737u, 2781269805u, 3188799281u, 3391715197u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 17, 768313194u, 865544864u, 3230216062u, 1200273272u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 18, 591877388u, 3157038143u, 3249401130u, 314151656u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 19, 3219509280u, 1564829925u, 1065671376u, 3088950051u, 1073910026u, 254064179u, 0, ACOS_TOLERANCE, 0},
+{ 20, 141374533u, 3933975298u, 1065991760u, 2304772640u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 21, 2396283075u, 1799495751u, 1094899225u, 1827380665u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 22, 2598153594u, 1112370977u, 1061103890u, 196988907u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 23, 1040851532u, 490122851u, 3216810265u, 576637874u, 1073291771u, 1410328704u, 0, ACOS_TOLERANCE, 0},
+{ 24, 849190915u, 1390621543u, 1055043150u, 915412872u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 25, 488493877u, 2591320551u, 1070339013u, 1237443094u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 26, 3077582663u, 3936235618u, 1099376266u, 1904940295u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 27, 71827124u, 222155510u, 1044902177u, 252085215u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 28, 2583183683u, 4139068910u, 3215004552u, 4245048106u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 29, 32118299u, 168794155u, 1090475726u, 3160414606u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 30, 975557826u, 4157503437u, 1104600163u, 1792103377u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 31, 137283993u, 1382645956u, 3240285101u, 4024164216u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 32, 118046910u, 3480120317u, 1100404348u, 478417819u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 33, 2828521286u, 2549311006u, 1055917530u, 3778440054u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 34, 2530903114u, 1593784258u, 1069213493u, 1951351053u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 35, 3103251986u, 631744430u, 3206072611u, 1047143174u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 36, 722650436u, 1584726864u, 3215417793u, 624695933u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 37, 2434300838u, 705725219u, 3217662205u, 1967294577u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 38, 664091785u, 2952818482u, 3239402263u, 1848641259u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 39, 642185311u, 1370937055u, 1055482637u, 2410810400u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 40, 889092079u, 1330047076u, 1093469262u, 1857263512u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 41, 2562391789u, 1246486570u, 1067165665u, 743938884u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 42, 1013509315u, 3107531809u, 1058433800u, 958446936u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 43, 2379321348u, 1698195744u, 3234826710u, 1808768063u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 44, 223594865u, 2594747457u, 1045397427u, 3927603841u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 45, 2251329048u, 348093397u, 1064733299u, 1710279345u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 46, 3162272236u, 3528946000u, 1045927362u, 1602290403u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 47, 2415703348u, 398813542u, 1052866292u, 1436851684u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 48, 1033199706u, 3319748577u, 3227196113u, 3607301229u, 1073291771u, 1413732247u, 0, ACOS_TOLERANCE, 0},
+{ 49, 23891811u, 2548745907u, 1105253912u, 370162110u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 50, 764517244u, 4204294028u, 3192923960u, 2626702805u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 51, 173888262u, 390319448u, 1104422077u, 120202647u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 52, 2730779741u, 2815627218u, 1099019491u, 731750493u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 53, 864070021u, 3900661840u, 3200970392u, 2907096477u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 54, 842667049u, 4269246624u, 3222902057u, 2762779203u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 55, 2347188326u, 184131949u, 3225314008u, 2237882876u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 56, 2323813472u, 4276663739u, 3254076585u, 4265258845u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 57, 560407162u, 1656691045u, 3252113914u, 4132573504u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 58, 271448936u, 1052817888u, 1061186300u, 352861436u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 59, 2742827957u, 636068836u, 1093702210u, 4149510462u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 60, 3110435514u, 1869774195u, 1056841761u, 2029664212u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 61, 2782135403u, 481356510u, 1098012633u, 1760061418u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 62, 2210852465u, 2918398424u, 1066749948u, 3643952367u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 63, 2255864064u, 3722025458u, 3192516074u, 1732245037u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 64, 984980019u, 1533536108u, 3226159655u, 3412938290u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 65, 2302294008u, 3539403428u, 1044896671u, 2743023547u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 66, 2437282418u, 965485575u, 1074677964u, 2239092099u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 67, 3161462367u, 479602785u, 3245398415u, 1570702137u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 68, 454239397u, 3987656554u, 3201134469u, 2639458165u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 69, 270690192u, 902270460u, 3200236493u, 2060263082u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 70, 3101979469u, 119561873u, 1067242459u, 4238218095u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 71, 342005410u, 1489535917u, 1052674720u, 3229843554u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 72, 2431479818u, 1372780257u, 1087299442u, 2877794600u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 73, 749807578u, 547642046u, 1068507828u, 2261901967u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 74, 2886390034u, 2655610998u, 1063417350u, 3897975437u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 75, 250812866u, 3444039742u, 3204905205u, 72985499u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 76, 2855285209u, 685471642u, 1052893000u, 3994091533u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 77, 438792265u, 3273039144u, 3234242951u, 2105125638u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 78, 2645727074u, 1149591862u, 1079300031u, 2852890893u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 79, 2752966212u, 964007987u, 1089046728u, 3863233156u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 80, 512535166u, 27186676u, 1092292231u, 131338606u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 81, 670177097u, 2614232599u, 3216359929u, 1186945904u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 82, 3154698801u, 1896750851u, 3253696392u, 920368431u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 83, 2442691738u, 29704081u, 3253306050u, 1477489465u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 84, 2226625355u, 1908380994u, 1041152721u, 3015183476u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 85, 681844560u, 470785250u, 3211309660u, 1296080311u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 86, 3173267991u, 3766553196u, 1063117318u, 3703961407u, 1073291771u, 1413754298u, 0, ACOS_TOLERANCE, 0},
+{ 87, 2455017061u, 4149594176u, 1090202405u, 3293225914u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 88, 313616459u, 77747397u, 3224848375u, 1095737976u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 89, 3083383675u, 594138985u, 3217133121u, 1435082240u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 90, 2240663447u, 1803548147u, 3240157452u, 4122845725u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 91, 692524862u, 311336721u, 1045850005u, 536548906u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 92, 39331613u, 1667857221u, 1062792545u, 2329662186u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 93, 2957138228u, 1918705224u, 1059647808u, 2861487662u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 94, 3070750532u, 3709104626u, 3220237199u, 997732637u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 95, 2444448896u, 1774627130u, 3192826790u, 2597228841u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 96, 702397604u, 2705552003u, 1041691115u, 3314033947u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 97, 2530979608u, 820086279u, 1085001393u, 3341643348u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 98, 481329467u, 3136820894u, 1093140313u, 4023285864u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 99, 2613158354u, 443835590u, 3197412883u, 166402802u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 100, 2939403391u, 3572369260u, 3225005050u, 1183942370u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 101, 456836645u, 2446986142u, 1100226690u, 3561788365u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 102, 995574146u, 279968558u, 1056612692u, 605059609u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 103, 2720425755u, 1360758659u, 1045149981u, 3634982365u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 104, 219648965u, 4068690904u, 3212392076u, 3185930294u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 105, 245268713u, 1440185463u, 1067865294u, 2959231845u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 106, 3124081158u, 3352139409u, 3211602972u, 64439686u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 107, 2799322658u, 1508169460u, 3213875925u, 3893561170u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 108, 2966132661u, 146763905u, 1061635587u, 1173102190u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 109, 2950948333u, 2882725208u, 1046547680u, 3137609802u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 110, 281607514u, 2987408195u, 1104831334u, 2360906919u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 111, 583237163u, 2272922429u, 3230247604u, 3220743043u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 112, 2279259017u, 486798710u, 1051847313u, 1164056378u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 113, 2707413568u, 14851197u, 3194383659u, 2622433447u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 114, 2729877535u, 1346176789u, 1059030682u, 1585821890u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 115, 925396515u, 1008663444u, 3253626162u, 1058337847u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 116, 2213579028u, 3506658319u, 3219431539u, 543446309u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 117, 3163196851u, 3413687955u, 1072253426u, 343404215u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 118, 334409439u, 4266232536u, 3240608065u, 4109813813u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 119, 3177753519u, 1144242316u, 1071012025u, 2790944540u, 1073291771u, 1413757294u, 0, ACOS_TOLERANCE, 0},
+{ 120, 2754858880u, 265926617u, 1095794063u, 1345870736u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 121, 49590943u, 3193385121u, 1097323612u, 2009367488u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 122, 2389359641u, 1233370553u, 1064565351u, 322637795u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 123, 954404777u, 3410634251u, 3243916607u, 4042570547u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 124, 2849680709u, 2524001714u, 1072116817u, 3983083207u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 125, 959555327u, 3501343645u, 3237287213u, 1887353658u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 126, 2934409098u, 689800034u, 3246333414u, 2135700283u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 127, 263792941u, 4171919805u, 3238308636u, 3129081398u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 128, 926728083u, 1550999328u, 3219525990u, 2031663879u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 129, 2989628620u, 949669377u, 3226383614u, 3948448651u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 130, 2243494997u, 4293630712u, 1060526636u, 438407499u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 131, 2756107420u, 1535381711u, 1054391309u, 4072415576u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 132, 3025827769u, 1347758084u, 3238820771u, 1059069486u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 133, 3294258u, 3498512759u, 1092903052u, 2047817298u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 134, 2919775476u, 1226560794u, 1069263873u, 685537815u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 135, 982026620u, 4000990876u, 1076297936u, 3803689997u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 136, 499108416u, 2263729518u, 3254424928u, 3450332551u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 137, 347296393u, 1637536851u, 3238793417u, 747232103u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 138, 34763760u, 902498990u, 3205956257u, 245434170u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 139, 3201690145u, 1482770161u, 3244873095u, 2292235133u, 1073291776u, 3469509425u, 0, ACOS_TOLERANCE, 0},
+{ 140, 2990655242u, 36045768u, 1071182448u, 3868790688u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 141, 3083340050u, 1885951730u, 3207806174u, 2553919637u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 142, 2693238911u, 4059459408u, 1055146851u, 2731735627u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 143, 2290935302u, 3819720014u, 3203031655u, 4218515595u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 144, 2348280948u, 3038411370u, 3236511256u, 2472176453u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 145, 2880785553u, 182132862u, 3252592387u, 1793714415u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 146, 2799656331u, 4227997622u, 1087681073u, 3265812129u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 147, 801513493u, 1010183244u, 1091844280u, 675001864u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 148, 318478599u, 4193366103u, 1056610361u, 3831235255u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 149, 2378498000u, 465836562u, 3189131504u, 1330642846u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 150, 43741656u, 1192547728u, 1080448013u, 2251835756u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 151, 172875845u, 2123384287u, 3198090050u, 2528390848u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 152, 911443207u, 3964517760u, 3252496130u, 1755935266u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 153, 844811578u, 2753105123u, 3223721534u, 3995725873u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 154, 151452687u, 777231627u, 1042074674u, 36182517u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 155, 3158956730u, 3937520057u, 3230206414u, 1507556284u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 156, 910363913u, 1910829179u, 1052726418u, 90890556u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 157, 3107838682u, 1962827704u, 1080960105u, 1706263669u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 158, 2177675826u, 3863498922u, 1084020789u, 2439263794u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 159, 2909835385u, 2329801749u, 1098707350u, 2852802137u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 160, 2979393160u, 3548991905u, 3213586763u, 3269946829u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 161, 790744031u, 2009174302u, 1097495331u, 312449728u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 162, 2160628293u, 648730712u, 3246307879u, 4265764460u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 163, 1000831562u, 366653268u, 1051541874u, 1478215551u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 164, 2470023790u, 2605647918u, 1042539011u, 969681033u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 165, 2322196276u, 1909222641u, 1092825252u, 3029685419u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 166, 3159166635u, 1128432313u, 3200082887u, 2582838060u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 167, 2525309230u, 546560372u, 1070003814u, 2343707656u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 168, 849110626u, 309618405u, 3246395018u, 3002005209u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 169, 2706804529u, 3151760818u, 3196548461u, 1969485838u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 170, 639469972u, 3667631361u, 3196181592u, 3743448274u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 171, 2658009958u, 3097521578u, 3216630070u, 1141349287u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 172, 918158805u, 3403438584u, 3208257181u, 2221276438u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 173, 2401852086u, 1683102397u, 3250341256u, 108768173u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 174, 2343899229u, 564813835u, 1064153550u, 3058531228u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 175, 2813220880u, 131949913u, 1090262840u, 2146798879u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 176, 2465897203u, 1934391255u, 3188783235u, 1341236714u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 177, 1070130951u, 418478585u, 3248733961u, 5029000u, 1073086461u, 494572026u, 0, ACOS_TOLERANCE, 0},
+{ 178, 453997460u, 2676092597u, 1105486693u, 1833595891u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 179, 522042376u, 1030769844u, 1071155175u, 2766628533u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 180, 2635141434u, 1153943376u, 3209762784u, 953839852u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 181, 1029467775u, 143071571u, 1050966579u, 2318822594u, 1073291771u, 1413752317u, 0, ACOS_TOLERANCE, 0},
+{ 182, 287910954u, 1347533411u, 3242337825u, 3256720041u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 183, 444067826u, 1840809642u, 1105293543u, 639604076u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 184, 37282545u, 113530717u, 3194758036u, 699784099u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 185, 435549826u, 2950098243u, 1061587493u, 3565445501u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 186, 2385974507u, 2103316697u, 1076082218u, 4043789060u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 187, 811546601u, 1521715421u, 3251785075u, 651105558u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 188, 491306771u, 2545467538u, 3213898932u, 3889824094u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 189, 503065027u, 4133138143u, 3246676260u, 2160225215u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 190, 994621531u, 836655570u, 3245194924u, 2865254908u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 191, 2309344440u, 1678396836u, 3226762726u, 424413376u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 192, 2164934365u, 2155776900u, 3222643433u, 2889736031u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 193, 3003862757u, 33676353u, 1090754016u, 4128530794u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 194, 2386204171u, 3176672093u, 1052578754u, 2282864811u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 195, 446288958u, 2747259961u, 1103923331u, 1909074501u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 196, 3119895314u, 482497137u, 3223384022u, 3259766501u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 197, 2460401984u, 1710626079u, 3222593534u, 834878686u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 198, 3041977808u, 4271421721u, 1047020885u, 1742757458u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 199, 2215391645u, 1265459564u, 1080678447u, 685348463u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 200, 2688170568u, 4066044320u, 1054128905u, 376413109u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 201, 716821218u, 3237497681u, 3242751645u, 260260645u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 202, 2385659123u, 2882820086u, 1085407846u, 2301658312u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 203, 420514989u, 3656359254u, 3203021744u, 2817965308u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 204, 2841879402u, 2859722465u, 3197490752u, 3892072777u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 205, 2665431021u, 2538156443u, 3215734057u, 831239754u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 206, 953028035u, 3071308141u, 3231671892u, 30345936u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 207, 2210978501u, 3595439756u, 3214985609u, 739408315u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 208, 3029757061u, 3298589427u, 3196131526u, 2084665197u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 209, 2823345962u, 3955601456u, 1076543910u, 3304852042u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 210, 640515933u, 2419975459u, 1073769087u, 1988016581u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 211, 2453833475u, 2659973204u, 3216007439u, 2731594173u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 212, 697318369u, 3938264868u, 1062532020u, 2975148216u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 213, 225366869u, 453215326u, 3200044385u, 467903731u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 214, 499614828u, 372130653u, 3235313361u, 3772501596u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 215, 2298173054u, 2406734491u, 1099766912u, 3221574013u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 216, 211434314u, 2841672781u, 3228298587u, 2623399873u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 217, 2562278951u, 2034292219u, 3248774822u, 699680428u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 218, 1030621435u, 1386943632u, 1088782030u, 3724905992u, 1073291771u, 1413750292u, 0, ACOS_TOLERANCE, 0},
+{ 219, 217306301u, 1495300013u, 3240548807u, 1518804038u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 220, 362076244u, 3050489517u, 1049468975u, 2940604216u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 221, 516072020u, 387594449u, 3238538261u, 3010872301u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 222, 2417270868u, 1683571756u, 1098214271u, 3243467912u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 223, 2453871840u, 547789874u, 1074621795u, 671680995u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 224, 819681449u, 2315535361u, 1076278343u, 3851723081u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 225, 925396663u, 2690952636u, 3195785827u, 1648844317u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 226, 835916575u, 2105507379u, 1060210356u, 2061848524u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 227, 2882329693u, 1771437899u, 1102743884u, 4195142780u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 228, 547945591u, 1310074754u, 1072476006u, 1313198415u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 229, 979656894u, 3914592621u, 3228159980u, 2457917034u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 230, 2718226491u, 2240965174u, 3236288087u, 3605857252u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 231, 41761399u, 196714912u, 1054040628u, 3084755276u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 232, 2665587864u, 2058851477u, 1052873711u, 1233598120u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 233, 101299669u, 1909994277u, 3220384775u, 2863812374u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 234, 532015965u, 3697551156u, 1083211400u, 2869735287u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 235, 2830857894u, 2697221770u, 1092525956u, 2160271449u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 236, 230734239u, 2762796844u, 1059257507u, 3160137573u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 237, 247044829u, 1758968847u, 1101109420u, 3270770898u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 238, 73012604u, 4005141897u, 3216213297u, 4129052985u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 239, 2970233606u, 137758261u, 1060349030u, 3082136857u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 240, 1068792039u, 2371653203u, 3211892131u, 3951914469u, 1073207827u, 951674575u, 0, ACOS_TOLERANCE, 0},
+{ 241, 3109437504u, 3213595557u, 1043958672u, 2986160931u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 242, 575927156u, 2540046258u, 3208370548u, 2048583911u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 243, 546830286u, 2264504930u, 3228769528u, 1854181735u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 244, 2183016286u, 3809768956u, 1054933586u, 595351688u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 245, 723947614u, 3071069520u, 3207129696u, 3120974660u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 246, 945283056u, 1952618732u, 3236532520u, 1540955277u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 247, 747620529u, 1438803217u, 1049266525u, 957676449u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 248, 92767291u, 4222295662u, 1076131984u, 2183319069u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 249, 334611718u, 3887074118u, 3191649564u, 3233378721u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 250, 771768198u, 2099099488u, 3222430705u, 2071674991u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 251, 2409204087u, 2295269094u, 3196265320u, 3987032629u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 252, 2377503648u, 4200095882u, 1086809994u, 1339996745u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 253, 797809565u, 2431996507u, 1102017594u, 242934189u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 254, 2312749311u, 2330084417u, 1043172813u, 4043102110u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 255, 988771849u, 1106978707u, 1082509751u, 2520765777u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 256, 864960887u, 3192168224u, 1066340820u, 3603945646u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 257, 2589695756u, 1952396835u, 3199434577u, 3703639356u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 258, 320682810u, 1198219673u, 3230438668u, 2418060633u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 259, 551093026u, 2638353760u, 1093840413u, 1751560711u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 260, 540797521u, 180987057u, 1085420898u, 530063370u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 261, 2760303516u, 3179145654u, 1048020008u, 3061407249u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 262, 162525363u, 1884787302u, 1068713554u, 1737020797u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 263, 214216231u, 3459566012u, 3251200938u, 4126298722u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 264, 2764328342u, 1036370112u, 3235918644u, 3898933279u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 265, 653867113u, 3276084832u, 3189072211u, 1864601262u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 266, 298324788u, 263075055u, 1100754245u, 1667825741u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 267, 3015536039u, 2387220960u, 3253010819u, 3505575323u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 268, 642739166u, 3154304623u, 1063475914u, 3150741666u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 269, 332025563u, 4200269406u, 3194288972u, 3577694711u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 270, 2339885777u, 2064011737u, 1089860833u, 3657008595u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 271, 842190281u, 210665237u, 3197168874u, 510714829u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 272, 728283504u, 1589701259u, 3251310843u, 17001602u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 273, 975043445u, 2928317152u, 3246958541u, 122162205u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 274, 3101610657u, 1288582346u, 1071556960u, 4177188454u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 275, 151289169u, 3962848462u, 3243017171u, 3661038757u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 276, 2755192415u, 2162985241u, 3226640955u, 1639319068u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 277, 2942384609u, 1996676305u, 1099130747u, 3840380763u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 278, 134315769u, 550040067u, 3241901241u, 3372594924u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 279, 3137373248u, 3164451169u, 1076627605u, 317246751u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 280, 2423768299u, 784217153u, 1066058157u, 1225003160u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 281, 2378706924u, 1715871558u, 1101460352u, 3401958038u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 282, 363631767u, 4086269531u, 1102279679u, 2517481591u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 283, 2329360168u, 2624677381u, 1085107111u, 1970804718u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 284, 1010793546u, 3379532114u, 3249898830u, 3723025783u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 285, 999588552u, 2651435439u, 3229039621u, 1030985387u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 286, 3145033808u, 1199535056u, 1077836259u, 3604666660u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 287, 2548507371u, 3115209742u, 3237451386u, 3863935859u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 288, 2398143146u, 4209496277u, 3199416183u, 1216202995u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 289, 614398964u, 2544695332u, 3210577461u, 596332114u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 290, 514278395u, 1338323803u, 1041925718u, 99526924u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 291, 856573491u, 3149653097u, 1103058665u, 2483495776u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 292, 2339743312u, 280536835u, 1044395245u, 3715707641u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 293, 128894757u, 3670016377u, 1050809029u, 3775007802u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 294, 3109073100u, 3526859225u, 3222673081u, 4030462447u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 295, 640779949u, 1602527268u, 3242467576u, 2018361566u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 296, 957271688u, 3985805054u, 1088518381u, 1679321540u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 297, 2801498828u, 1663896708u, 3248819198u, 4229852270u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 298, 467728155u, 2346627527u, 3239438934u, 2290493820u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 299, 2208629720u, 2296736794u, 3207683799u, 1456667044u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 300, 2958022504u, 4132454009u, 1106540396u, 4243490703u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 301, 235395447u, 1359445676u, 3190130903u, 1569883678u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 302, 277859320u, 333214083u, 1076552006u, 1385185236u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 303, 2942645471u, 950097945u, 1041232546u, 3621700966u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 304, 370898672u, 149336372u, 3191764868u, 2940199511u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 305, 2384610875u, 2875684421u, 3249377056u, 4253432396u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 306, 837504978u, 2081484836u, 3199314748u, 2264912911u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 307, 632882934u, 3967859615u, 3229710481u, 2667348142u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 308, 2181979516u, 3630082248u, 3227364534u, 4156569147u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 309, 946956756u, 2993509124u, 1091331299u, 4018898246u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 310, 338207615u, 1642285349u, 3208379731u, 1196091123u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 311, 4693283u, 3356597889u, 1040231079u, 2420753479u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 312, 2762118529u, 977967943u, 3228887283u, 807395730u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 313, 2919435607u, 2730725979u, 3207120390u, 3867917386u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 314, 999294480u, 3504746045u, 1075794770u, 665882260u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 315, 2269075155u, 3385464702u, 1049896268u, 2757059958u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 316, 536095951u, 1299923384u, 1101872081u, 2574386817u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 317, 2675071145u, 3171042375u, 1078533152u, 2312086600u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 318, 2360735442u, 4236561530u, 1068042271u, 256515531u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 319, 2609926553u, 4152554926u, 1100304772u, 3545562886u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 320, 2403546570u, 350924105u, 1040286251u, 1468770658u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 321, 544551146u, 3000822699u, 3232925779u, 2540988650u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 322, 2780107631u, 2928199244u, 3245167989u, 44275991u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 323, 2165210001u, 1174874204u, 1057110584u, 848081004u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 324, 2354568060u, 1412948540u, 3239110676u, 3215002775u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 325, 863277892u, 2701562677u, 1065879622u, 2897481417u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 326, 199312991u, 2980401690u, 3216742908u, 2549609731u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 327, 2827983212u, 585456984u, 3201746087u, 638714580u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 328, 575008531u, 4260896505u, 1089137884u, 4274648992u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 329, 2728904219u, 4055046173u, 3198391736u, 3482894513u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 330, 341009704u, 2493198836u, 3198094528u, 2484800635u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 331, 3153287889u, 599921010u, 1103847606u, 1674254897u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 332, 104926329u, 217148561u, 1097066495u, 3536010689u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 333, 933395812u, 1605519917u, 3225218243u, 2732577078u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 334, 573219110u, 417261654u, 3246267157u, 3401343872u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 335, 1039272770u, 2150330697u, 1080405602u, 3197535445u, 1073291771u, 1412571606u, 0, ACOS_TOLERANCE, 0},
+{ 336, 1065739247u, 2334624779u, 1070288136u, 147709079u, 1073280563u, 1049296574u, 0, ACOS_TOLERANCE, 0},
+{ 337, 3178645135u, 665848401u, 3235013045u, 2195099382u, 1073291771u, 1413759839u, 0, ACOS_TOLERANCE, 0},
+{ 338, 364316788u, 238721142u, 3238780023u, 2612316049u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 339, 2974180417u, 328119069u, 3231550903u, 696220816u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 340, 649641437u, 2886210843u, 1055433962u, 3331415058u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 341, 335135121u, 2420250111u, 3214614526u, 510850312u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 342, 2216193203u, 1658541647u, 1071956366u, 53496813u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 343, 2567194005u, 3872563165u, 1098494887u, 2790313039u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 344, 3219733872u, 3859621368u, 3205775949u, 4015749711u, 1073993256u, 2063983841u, 0, ACOS_TOLERANCE, 0},
+{ 345, 311334852u, 1732769560u, 1052132915u, 2774541952u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 346, 317917675u, 1689088021u, 1066883290u, 3270546122u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 347, 491335395u, 1959705843u, 1106618962u, 4198868105u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 348, 124503353u, 3906315805u, 3235289682u, 1109820549u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 349, 3036818075u, 3370448446u, 1063890856u, 4022784584u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 350, 323334929u, 3264056381u, 1104622566u, 3697934821u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 351, 82666680u, 2912871781u, 3242116859u, 1560571600u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 352, 2776916990u, 3103325650u, 3237224234u, 3681651958u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 353, 333678608u, 3330581237u, 1086856468u, 3110345659u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 354, 2487169180u, 2478706589u, 1099546513u, 4177071445u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 355, 3183204741u, 3514067221u, 3247338343u, 585148435u, 1073291771u, 1413868209u, 0, ACOS_TOLERANCE, 0},
+{ 356, 2811486197u, 3689342853u, 3208758774u, 200507809u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 357, 3116462959u, 1049872171u, 3210445232u, 1453705582u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 358, 3129943472u, 1932668626u, 1098808013u, 1044068983u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 359, 2295964401u, 4093388677u, 3210795947u, 1617393713u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 360, 2293016564u, 778812087u, 3246232571u, 731905539u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 361, 2907822649u, 4050829759u, 1086605180u, 1863848117u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 362, 6647363u, 718161191u, 1071063889u, 2637291484u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 363, 224521970u, 1909842364u, 1102747575u, 3614304657u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 364, 761500166u, 895493977u, 3236485375u, 1701194116u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 365, 2171563276u, 1493115846u, 3233339987u, 296022762u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 366, 2783624899u, 4099447408u, 3187790416u, 3564720305u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 367, 848425142u, 2404172709u, 3219922640u, 2284484846u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 368, 2654315895u, 3240896015u, 3208621510u, 1226668421u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 369, 2488218361u, 4127752456u, 3200753143u, 2161953369u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 370, 489605006u, 1168774591u, 3191311819u, 2375467787u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 371, 347845914u, 2883145553u, 3234998320u, 3286468014u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 372, 2588007471u, 3007671464u, 1102234703u, 1209628408u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 373, 127334109u, 571692916u, 3243349276u, 1910625797u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 374, 524138712u, 2510184860u, 1089525631u, 2209639467u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 375, 2615466346u, 1945605229u, 3227105252u, 3777119615u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 376, 398493829u, 215226593u, 3235434773u, 224271737u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 377, 2242993828u, 2134662911u, 1080232319u, 1056746021u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 378, 2923358085u, 1099524039u, 1085032107u, 3905384073u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 379, 842579915u, 985866260u, 3225437419u, 3120783698u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 380, 2589795066u, 1700432859u, 3230345428u, 3505263023u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 381, 2297683903u, 953966053u, 1090810641u, 151959421u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 382, 2887420078u, 1520016810u, 1096148013u, 1974161688u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 383, 2738297064u, 1577726432u, 1080717542u, 3407236142u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 384, 3154840433u, 358621181u, 3214344145u, 3735144364u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 385, 2521491907u, 4023613376u, 1095386964u, 959640601u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 386, 2369008919u, 4136915018u, 1042238319u, 1264360404u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 387, 2906418341u, 3543839161u, 1093859356u, 2852227162u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 388, 2218509603u, 2154399659u, 3218171985u, 2610173674u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 389, 165687034u, 2502718011u, 1105407582u, 4037997673u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 390, 3034344010u, 2429891750u, 3220651893u, 3433646170u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 391, 397029567u, 1233242847u, 3233842223u, 1978947905u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 392, 32753845u, 3055512924u, 1085895689u, 2569766862u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 393, 498004465u, 3103627383u, 1075642950u, 676014010u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 394, 2622487710u, 3587249671u, 1050343198u, 2034180320u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 395, 2559467693u, 1175750283u, 3228052153u, 441772035u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 396, 639279177u, 1096886368u, 1067186387u, 4256284279u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 397, 208471934u, 2746455711u, 3243186220u, 383175406u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 398, 2829822244u, 1056466374u, 3247450556u, 3263564076u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 399, 2468230336u, 1734210936u, 3195265560u, 514072505u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 400, 758811245u, 1728341051u, 1092832248u, 3823410158u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 401, 2347191449u, 1235712656u, 3219475794u, 3622129011u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 402, 79742765u, 1575194991u, 3197615492u, 3446988115u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 403, 2161423950u, 2362441752u, 1088255327u, 270039934u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 404, 3010727959u, 3063626339u, 1105039555u, 1845818221u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 405, 192788472u, 3718151518u, 3240183167u, 3113149567u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 406, 313112913u, 3686096237u, 3199484638u, 191185038u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 407, 195422631u, 3680158556u, 1105637038u, 349436087u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 408, 2844026099u, 150975354u, 1100107824u, 729077351u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 409, 3016106050u, 2974566906u, 1091481543u, 195479384u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 410, 2820952232u, 953930448u, 3232752339u, 1009878771u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 411, 179600265u, 3369386607u, 1057414346u, 1319431804u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 412, 586131522u, 3279403983u, 3223631624u, 3404608264u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 413, 937427869u, 559918757u, 1105263000u, 1026957442u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 414, 128542208u, 2658716822u, 1104708872u, 996387212u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 415, 2731512332u, 3244026687u, 1047704829u, 2987820261u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 416, 829571115u, 1205633467u, 3212336151u, 731560768u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 417, 2850353849u, 3269211356u, 3233229218u, 2632041754u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 418, 1070113635u, 1007200508u, 1086406456u, 1484610595u, 1073088667u, 1300367880u, 0, ACOS_TOLERANCE, 0},
+{ 419, 968866968u, 3805991624u, 1101562011u, 3292762908u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 420, 2437809818u, 3314105762u, 3211254740u, 3489200637u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 421, 2571363594u, 3198252706u, 3200980182u, 558779875u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 422, 2377866012u, 2338464653u, 1083319346u, 4167405697u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 423, 2919015115u, 2320792999u, 3245310028u, 2734025087u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 424, 2318992495u, 832495279u, 3189857572u, 919851193u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 425, 3116721767u, 594640291u, 1077503330u, 976536412u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 426, 3139145310u, 79400523u, 3241084263u, 3353474633u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 427, 3132785785u, 1078965987u, 3233772596u, 3496966466u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 428, 892587941u, 4243435186u, 1078663150u, 2446827483u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 429, 644490711u, 699817447u, 1081268534u, 2111588814u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 430, 536635513u, 177265199u, 3233855943u, 965677531u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 431, 624474831u, 3957229084u, 1065403841u, 3870961932u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 432, 2495519163u, 2768873929u, 3212244708u, 4127917680u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 433, 445621604u, 3639227340u, 1068863190u, 4192848976u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 434, 2543806408u, 2824651320u, 1092946600u, 2150743372u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 435, 417715333u, 1542109195u, 3223841580u, 2386809036u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 436, 192029360u, 1374810628u, 3218415587u, 1623455911u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 437, 733790955u, 226433601u, 1048463914u, 2667067819u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 438, 768579443u, 1339325351u, 1074062507u, 701901582u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 439, 2920705365u, 3631553324u, 1068350633u, 1231934926u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 440, 2933708324u, 603977748u, 1098802865u, 1502493757u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 441, 852954796u, 4255242031u, 1076182326u, 2417637015u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 442, 3089857028u, 3270297477u, 1057486942u, 2885336275u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 443, 2809553007u, 1162164397u, 3250508564u, 2047944882u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 444, 2875372587u, 129658419u, 3243244851u, 817360375u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 445, 286421081u, 4166988101u, 3246796270u, 1780823036u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 446, 668574270u, 418009120u, 1081026514u, 909013508u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 447, 3082072506u, 4186670845u, 1073362089u, 2619129420u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 448, 795252317u, 1348987467u, 3217165795u, 4162017137u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 449, 2946795826u, 2808968027u, 1057864611u, 275397670u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 450, 513174607u, 240711581u, 3188571226u, 991292615u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 451, 2439023326u, 1881121353u, 1082366688u, 3029043132u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 452, 192508083u, 4250650421u, 3246612558u, 2498768625u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 453, 3180747941u, 2999983605u, 1096654323u, 2577373394u, 1073291771u, 1413777035u, 0, ACOS_TOLERANCE, 0},
+{ 454, 868314815u, 1300140379u, 3213491585u, 55226854u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 455, 49966445u, 13489454u, 3217461344u, 1447224005u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 456, 2210271568u, 180789028u, 3221481024u, 2263184048u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 457, 2397088667u, 426293588u, 3239818611u, 1789635787u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 458, 302342406u, 1048286093u, 3227133745u, 2920139253u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 459, 540854981u, 287184966u, 1093076159u, 1371882685u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 460, 770805810u, 2474797470u, 1065280366u, 1506889536u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 461, 2555731452u, 345487446u, 1053421486u, 1197157341u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 462, 2628226629u, 515700445u, 3214016873u, 2783826669u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 463, 467959892u, 1025779807u, 3217947229u, 937205825u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 464, 3185898801u, 503864881u, 1076822915u, 2345033570u, 1073291771u, 1414440881u, 0, ACOS_TOLERANCE, 0},
+{ 465, 393896468u, 596014050u, 3250464728u, 3171536734u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 466, 2267420964u, 3948135817u, 3235208235u, 557360557u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 467, 2954074298u, 110029735u, 1081878271u, 658156641u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 468, 566438875u, 2733782773u, 1068148429u, 2141208212u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 469, 2666943954u, 790308557u, 1107048971u, 563615979u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 470, 2405996540u, 2566307075u, 1083723970u, 1428203311u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 471, 2270749356u, 3880424699u, 3236471057u, 2886278126u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 472, 524758414u, 2701977458u, 1043006318u, 4263191658u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 473, 2942114697u, 1360096867u, 3234511235u, 722957892u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 474, 3154505042u, 1993420044u, 1095357710u, 2156133394u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 475, 2461372509u, 3917014693u, 3239137997u, 3218865041u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 476, 2423614376u, 3840388050u, 1044708748u, 3339981792u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 477, 68664930u, 2548196869u, 1075650752u, 2503792874u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 478, 27003265u, 3589631476u, 3235077884u, 2445744426u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 479, 520248228u, 203410210u, 1058974455u, 4258595472u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 480, 191352353u, 3053913996u, 1043884546u, 2757616601u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 481, 2602287836u, 1038998189u, 3205430458u, 3695555540u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 482, 2449136794u, 4118722076u, 1042468417u, 3583005947u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 483, 2166884388u, 1539535238u, 3246934215u, 508708967u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 484, 2298893886u, 1355147861u, 3251354609u, 4133432965u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 485, 826309703u, 1630207738u, 3189562989u, 2643371954u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 486, 1044987158u, 3806259293u, 3242741783u, 15657985u, 1073291771u, 1360824892u, 0, ACOS_TOLERANCE, 0},
+{ 487, 497456897u, 151607638u, 3227697753u, 467630898u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 488, 3017637501u, 1016107066u, 1077142954u, 2195497000u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 489, 2893082164u, 605010161u, 1050995677u, 3081653542u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 490, 469011148u, 4071435209u, 3207925259u, 1894382776u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 491, 2531356920u, 1522707251u, 3218735666u, 1578075186u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 492, 431642664u, 1500392608u, 3190947192u, 3634607405u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 493, 2582144456u, 3646244007u, 3197852749u, 3808681655u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 494, 233126338u, 1821773119u, 1094752155u, 1757234723u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 495, 2765502023u, 3794954283u, 3238755664u, 1209121339u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 496, 2342622984u, 1775878726u, 1096028209u, 221183908u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 497, 231520693u, 615054313u, 1105995987u, 1405024657u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 498, 2401381272u, 2784860416u, 1074009275u, 787419698u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 499, 943699878u, 2079960298u, 1074123223u, 2100091620u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 500, 592542034u, 311050208u, 3211234312u, 806358659u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 501, 554939259u, 898080849u, 1106754706u, 2510882902u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 502, 2949198761u, 2015533813u, 1089275809u, 298982001u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 503, 989540066u, 914741728u, 1092886795u, 464054401u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 504, 2304253208u, 3863739765u, 3214711653u, 3915767823u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 505, 958251880u, 3239739200u, 1104805370u, 2971054003u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 506, 2670649374u, 2491104644u, 3198242303u, 2559304728u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 507, 939123286u, 684435317u, 1055177809u, 2787628393u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 508, 2541359251u, 1636085321u, 1069717586u, 4235233108u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 509, 1044593898u, 202708387u, 3196003256u, 482423661u, 1073291771u, 1373409239u, 0, ACOS_TOLERANCE, 0},
+{ 510, 139626925u, 2518164801u, 3206911657u, 1250530357u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 511, 2850784019u, 3737313137u, 1045922781u, 3136078996u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 512, 2263385372u, 2650572904u, 3215945256u, 2341430700u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 513, 2703884311u, 4279456618u, 1045375126u, 3817511514u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 514, 2332933790u, 1898920133u, 3238856617u, 3322385778u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 515, 628125129u, 769863378u, 3205646293u, 3033900668u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 516, 3150112853u, 2363605017u, 1057042323u, 3607277737u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 517, 453059902u, 2102433536u, 1073687186u, 1772007848u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 518, 3088101403u, 1756195518u, 3225902960u, 1222779056u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 519, 936228020u, 1142293403u, 3242693386u, 741039297u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 520, 1034983355u, 2830408439u, 1041913758u, 3306391490u, 1073291771u, 1413686173u, 0, ACOS_TOLERANCE, 0},
+{ 521, 2352979086u, 2205233857u, 1075419064u, 4008575827u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 522, 445518797u, 2566866389u, 1094655457u, 4036587454u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 523, 311145393u, 1824828952u, 3243078353u, 4292530873u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 524, 2553824191u, 4155068217u, 3207589361u, 3447729183u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 525, 2798856384u, 2756570858u, 1076273685u, 3333057399u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 526, 2550428645u, 1207089191u, 1092166391u, 1769908602u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 527, 554295846u, 859290299u, 1041428225u, 1286082196u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 528, 246159230u, 2207831048u, 1106576697u, 1339163028u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 529, 2239899566u, 1165991857u, 3203879091u, 4174125604u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 530, 182461702u, 2169701868u, 3241819561u, 4227279451u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 531, 2888196098u, 2123622490u, 1052662593u, 2279271809u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 532, 702835388u, 695374285u, 1047701002u, 522745399u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 533, 280094216u, 1510677208u, 1076782817u, 1111322288u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 534, 179077993u, 2623205988u, 1103171923u, 4172761053u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 535, 2177736938u, 4217535562u, 1105411820u, 178360855u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 536, 682463458u, 3302529767u, 3204908280u, 3960051056u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 537, 398729522u, 3128926115u, 3230393394u, 689920399u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 538, 2611898873u, 2975884353u, 1080874032u, 706326922u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 539, 893776139u, 198291836u, 1095644375u, 1686271744u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 540, 2380685920u, 3678973777u, 3196054178u, 2497695971u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 541, 2240996065u, 3714083293u, 3243953714u, 2851269113u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 542, 7542429u, 2117586075u, 1087270529u, 1032855763u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 543, 2223653732u, 3495001046u, 1086693149u, 4162905644u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 544, 2567370325u, 2825204949u, 3197807718u, 3067810875u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 545, 2595670946u, 3719019697u, 1095625346u, 658578931u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 546, 387363057u, 2429869396u, 3239113006u, 3188949762u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 547, 396063874u, 322135328u, 3248332291u, 1527590526u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 548, 2461424020u, 2823164069u, 3201760069u, 602345917u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 549, 654769735u, 720378027u, 1076110022u, 259686655u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 550, 2360883068u, 625961575u, 1060816217u, 2476435835u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 551, 788830837u, 606139429u, 3232916885u, 3326100828u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 552, 3212982376u, 2141060868u, 1067726443u, 252856858u, 1073301100u, 1153746486u, 0, ACOS_TOLERANCE, 0},
+{ 553, 3127084040u, 474202816u, 1089644854u, 1764399210u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 554, 1019198392u, 2947116437u, 1041572001u, 3959708969u, 1073291771u, 1413754134u, 0, ACOS_TOLERANCE, 0},
+{ 555, 3213251752u, 4230614930u, 1056210276u, 3150822221u, 1073303204u, 3762064379u, 0, ACOS_TOLERANCE, 0},
+{ 556, 696157297u, 3263173528u, 1080112083u, 1228319033u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 557, 124362722u, 500312015u, 1063102682u, 2095470952u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 558, 2571317678u, 989529088u, 1056203473u, 3527737002u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 559, 2250338535u, 1703579132u, 3224570219u, 634351649u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 560, 2855421441u, 66133u, 3240749422u, 3515147331u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 561, 2627889255u, 2627336059u, 1089793281u, 1944911728u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 562, 759942356u, 2319970119u, 3249679385u, 445677602u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 563, 2547610355u, 3313890389u, 1096842854u, 754196284u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 564, 2871033704u, 1726998596u, 3210485282u, 4166556675u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 565, 501872914u, 486863841u, 3218994498u, 2509132460u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 566, 1002164234u, 2205707903u, 1085826634u, 3041478081u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 567, 525633549u, 4009409345u, 1040942443u, 2147611409u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 568, 2251207280u, 2036870072u, 1084696514u, 3107506430u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 569, 756690877u, 690866455u, 3226560542u, 2431563109u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 570, 998557361u, 3129862588u, 3198582472u, 2304023232u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 571, 2906016865u, 3579751536u, 3209420505u, 975391569u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 572, 2560287784u, 546279008u, 1081489128u, 2489420520u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 573, 31598644u, 3355765111u, 3194253290u, 994990765u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 574, 2828168124u, 1040855381u, 1043794244u, 3259056345u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 575, 2926398160u, 3002823940u, 1089005277u, 3148403594u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 576, 860472364u, 4135775260u, 1062496213u, 1421204191u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 577, 2375372972u, 1772673503u, 1068413298u, 3250253780u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 578, 2382680286u, 1058735200u, 3198812726u, 2912456147u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 579, 207257772u, 3116809444u, 3228961207u, 1489607764u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 580, 3161255502u, 3193356522u, 1098081503u, 3349879051u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 581, 2263814703u, 3863515794u, 3224248078u, 811645039u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 582, 2558000392u, 257027843u, 3188376713u, 3688710472u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 583, 1047583344u, 1618589681u, 3252953815u, 1796441468u, 1073291771u, 1131003064u, 0, ACOS_TOLERANCE, 0},
+{ 584, 963715447u, 2772711004u, 1068817762u, 1417472413u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 585, 2899022012u, 3229431619u, 1048945392u, 2667359336u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 586, 39332833u, 3031365654u, 3254047221u, 3088152449u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 587, 2400099045u, 1889351944u, 1105391374u, 3778764776u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 588, 2853164987u, 2277852166u, 3203738947u, 1874699830u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 589, 2730925178u, 341842475u, 1075005257u, 146768835u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 590, 2308700527u, 2872887668u, 1084601028u, 2879218577u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 591, 2587566446u, 1935797167u, 1071669036u, 2712989912u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 592, 253790896u, 1441615044u, 1092569414u, 3235243477u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 593, 2246162369u, 3221475559u, 1076923264u, 1614189331u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 594, 883591469u, 1521698692u, 1063187098u, 2905773788u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 595, 578813437u, 1875339612u, 1097776841u, 3512997257u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 596, 313284539u, 1310991474u, 1042232933u, 315006632u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 597, 2187872770u, 400944269u, 1084139528u, 1113187101u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 598, 2196755783u, 4228884820u, 1086244087u, 4239134992u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 599, 625667119u, 3885190346u, 1076394312u, 1081883031u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 600, 102978620u, 1185360438u, 1047721048u, 3255616886u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 601, 253870868u, 3242646057u, 3206743917u, 2797651324u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 602, 2741016991u, 2374818327u, 3200069106u, 409774909u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 603, 541948600u, 129626762u, 3222418776u, 3265842151u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 604, 409023275u, 2563211098u, 3195891786u, 3312029907u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 605, 590108432u, 2326742435u, 1061528026u, 3658027611u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 606, 47946496u, 4130434851u, 1086613209u, 1406937614u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 607, 2203282384u, 694337229u, 1098392210u, 673996985u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 608, 383120483u, 2165782899u, 3201118320u, 755437166u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 609, 2738514249u, 1631447464u, 1073129346u, 1109813769u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 610, 996195808u, 1404490212u, 3191965790u, 388374829u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 611, 621407424u, 1187403069u, 3249235911u, 2333348025u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 612, 2238876819u, 3949359805u, 3217090542u, 278931643u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 613, 122205568u, 3433131795u, 3216075884u, 1048643019u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 614, 378630966u, 2161249988u, 1080050285u, 1886767872u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 615, 2469519430u, 56508471u, 1101093005u, 3134765996u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 616, 2160574759u, 390814486u, 3252597757u, 4155481783u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 617, 244834788u, 2634623473u, 1106605935u, 3462407026u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 618, 3068667858u, 1081553801u, 3212510682u, 3597193645u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 619, 2681145113u, 2712139310u, 1067397110u, 3991830201u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 620, 2469611210u, 1021245839u, 1043439185u, 1476242017u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 621, 605118806u, 3027425274u, 1057959382u, 1693579371u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 622, 723258643u, 890268116u, 3208358957u, 2499328701u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 623, 3012075542u, 2762939960u, 1094140192u, 1946947338u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 624, 2624504981u, 2848774892u, 1043728239u, 1868742480u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 625, 631395565u, 2118639219u, 3208384560u, 392586300u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 626, 3100564519u, 3212404590u, 3227625019u, 2217276325u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 627, 2726525578u, 3155371392u, 1098886483u, 418306480u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 628, 404732165u, 2073105109u, 3222252812u, 4126276047u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 629, 666104043u, 3942715706u, 3225850891u, 2149087853u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 630, 691861022u, 2516919494u, 1054814504u, 3292931762u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 631, 158110000u, 1551415022u, 3207905213u, 640268289u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 632, 3017186687u, 576149615u, 1089986684u, 1988363455u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 633, 2189052396u, 3827250147u, 1092018604u, 3082769758u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 634, 2963530013u, 2640124381u, 3224863391u, 3684597672u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 635, 2674433095u, 3504206450u, 3208001954u, 1486636350u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 636, 172271302u, 3087550224u, 1050189716u, 1104066383u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 637, 2937291508u, 3152457596u, 3248116497u, 1671039260u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 638, 743510680u, 3745833360u, 1104273854u, 220649566u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 639, 455612679u, 3044998553u, 3244012440u, 3016971473u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 640, 2707727413u, 3615317113u, 1060844794u, 880769846u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 641, 91972307u, 663715669u, 1063876456u, 1939925527u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 642, 1031258381u, 3544355485u, 1082114513u, 2610512411u, 1073291771u, 1413748055u, 0, ACOS_TOLERANCE, 0},
+{ 643, 3062260532u, 4072884955u, 1076396408u, 1001273000u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 644, 169240433u, 1808609104u, 3232187528u, 3260138616u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 645, 982018300u, 1018873491u, 3222306114u, 3725685935u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 646, 601770903u, 200987283u, 1044223733u, 3512285706u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 647, 2542854589u, 4073670723u, 1077133533u, 2092229545u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 648, 2434772723u, 1045739827u, 1099698978u, 2401260358u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 649, 513980741u, 4127547980u, 1041823582u, 96012619u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 650, 2244412580u, 685986273u, 3236054528u, 743504842u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 651, 3152410687u, 3762173332u, 3229804761u, 4257281451u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 652, 2398221552u, 883225705u, 1052657715u, 3748197546u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 653, 2914372880u, 1745689276u, 3189483003u, 3144701638u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 654, 584466975u, 1188703132u, 3241765574u, 2567092606u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 655, 3142928545u, 1507281554u, 1093182670u, 3093165197u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 656, 525538133u, 2853215019u, 1102960933u, 4219424176u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 657, 743378254u, 3350157882u, 3218026125u, 3380902958u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 658, 2920865644u, 3965656635u, 1041729367u, 1488955390u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 659, 76342162u, 4066317764u, 3250193636u, 3709306303u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 660, 778187300u, 3648159195u, 1060671775u, 4137599200u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 661, 298140314u, 1730811304u, 3218425255u, 3228251203u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 662, 548008019u, 1112642402u, 1046926075u, 2339033206u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 663, 373953465u, 3920135590u, 1068578082u, 3455242298u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 664, 466000998u, 171021716u, 1104170032u, 643991456u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 665, 2888399469u, 2072550721u, 3230599505u, 973021091u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 666, 50905317u, 2724027649u, 1085564300u, 4142466137u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 667, 143727064u, 2551822580u, 3246069024u, 1987298072u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 668, 890335217u, 3397840241u, 3222713245u, 1041924997u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 669, 2679007644u, 1492572480u, 1050371810u, 2325437597u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 670, 114124970u, 2135762681u, 3203689878u, 3625230590u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 671, 2580021722u, 3462823473u, 1042304476u, 902729486u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 672, 2558456833u, 652173352u, 1093628675u, 363109783u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 673, 2931846653u, 3131010476u, 3195084967u, 2163853087u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 674, 2860857242u, 2962422808u, 3191806742u, 291534500u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 675, 3180910087u, 148717545u, 3227570855u, 1176638793u, 1073291771u, 1413779568u, 0, ACOS_TOLERANCE, 0},
+{ 676, 846507519u, 592218494u, 3236967859u, 3643659929u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 677, 799992724u, 3637018510u, 1096065187u, 2759677467u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 678, 2669496048u, 1394154169u, 3225515010u, 2895919661u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 679, 2888699650u, 2576460670u, 3195138207u, 278693366u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 680, 2397030301u, 3525993125u, 1046206559u, 960482701u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 681, 566728356u, 3623493345u, 3245957327u, 2358092842u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 682, 2920406944u, 1470157513u, 1068598730u, 2360266862u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 683, 287105933u, 2673272949u, 3190126532u, 3307152371u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 684, 2190509100u, 3554040933u, 3243091661u, 1074231128u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 685, 2949859096u, 506000682u, 1099596445u, 3719284608u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 686, 143293603u, 1500851201u, 1079029789u, 395506977u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 687, 2216398316u, 2396922893u, 3215773801u, 3631674284u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 688, 94791165u, 265423085u, 1064366729u, 2757995135u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 689, 2260683291u, 3335726874u, 3204388695u, 1913160810u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 690, 985593981u, 177525642u, 1089544219u, 1163479070u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 691, 1059251204u, 1356562406u, 3218720719u, 3954981400u, 1073291620u, 874618229u, 0, ACOS_TOLERANCE, 0},
+{ 692, 199560954u, 2411049585u, 3200282058u, 4212977532u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 693, 3115392997u, 1969400668u, 1082838033u, 792484989u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 694, 413791550u, 3185069889u, 1102744820u, 1679200952u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 695, 816641623u, 2092563199u, 1077400892u, 3625477257u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 696, 990732070u, 3645477920u, 3233940628u, 730323504u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 697, 2640158643u, 1955024619u, 3229376333u, 3062236193u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 698, 748924276u, 673553144u, 3222681322u, 3821101717u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 699, 872312580u, 2833907590u, 1087265939u, 2570284543u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 700, 531712086u, 2911302424u, 1088378861u, 3400401866u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 701, 541730201u, 552676385u, 1048022712u, 1642148205u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 702, 323876482u, 3259465719u, 1063427827u, 4168942284u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 703, 2757624524u, 757177023u, 3224829944u, 54374532u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 704, 25847614u, 3253287925u, 3239197056u, 3859570507u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 705, 2460961478u, 3154974007u, 1089011136u, 3913013165u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 706, 311234957u, 2785357403u, 1103967007u, 2809598610u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 707, 484603275u, 3644503084u, 1071705136u, 2739219317u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 708, 2578002590u, 3518663743u, 1085926548u, 3708967464u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 709, 3007242152u, 731479478u, 1076236288u, 2805941787u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 710, 2619048947u, 779131141u, 3197589176u, 237706897u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 711, 2641650858u, 2888131473u, 3245067887u, 2007039966u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 712, 878934658u, 2219795442u, 1097959451u, 920385234u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 713, 970070259u, 1786246284u, 3210593296u, 3141517655u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 714, 28474706u, 1268866168u, 1056332378u, 3807437549u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 715, 593283356u, 2441697849u, 1095257734u, 352511160u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 716, 537273837u, 3291810518u, 1078085447u, 381074875u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 717, 466362499u, 387817055u, 3243585398u, 409681933u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 718, 337512666u, 139599181u, 1104463616u, 3501253426u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 719, 152302801u, 1804177501u, 1107025740u, 30866148u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 720, 2982215560u, 793748989u, 1082924614u, 1001569450u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 721, 3089760601u, 959143764u, 1058620462u, 2685722619u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 722, 2594786226u, 1587148467u, 1069298743u, 2465926195u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 723, 932092665u, 2374376082u, 1041131964u, 1275798358u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 724, 3064898943u, 732591095u, 1105513168u, 188500721u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 725, 833576046u, 2203077164u, 1086779764u, 2814822707u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 726, 414881598u, 3478844638u, 1064472491u, 3289144186u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 727, 964227992u, 2435698269u, 3249016304u, 440309030u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 728, 2567296069u, 3788040806u, 3187722224u, 3342255097u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 729, 723295838u, 2455751020u, 1103514973u, 3245053142u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 730, 844693850u, 4056651767u, 3239516201u, 4169582895u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 731, 550385160u, 2093642662u, 1100623425u, 792491672u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 732, 2816313046u, 83889365u, 1087600688u, 1006331335u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 733, 2572367713u, 1140517802u, 3243890765u, 4090711271u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 734, 666576601u, 2418701513u, 3216964687u, 1555649649u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 735, 2251046969u, 1215163489u, 1051353113u, 3503287900u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 736, 3159618610u, 641457589u, 1051716814u, 4121125128u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 737, 401932052u, 321857207u, 3250350790u, 1246006125u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 738, 2953696013u, 120564990u, 1097266968u, 300149226u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 739, 2254220803u, 3244980052u, 1076924215u, 847775621u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 740, 2771951028u, 112839452u, 3212858842u, 1569943525u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 741, 2165404842u, 2934678057u, 3212657738u, 3091042797u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 742, 2704093164u, 547060795u, 1079752403u, 4043827022u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 743, 244578012u, 1790462845u, 1067969586u, 2345441039u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 744, 2182959566u, 2353653565u, 1049624664u, 882286568u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 745, 462586144u, 1186302263u, 1078662178u, 2626148789u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 746, 279527707u, 4121656076u, 3224287260u, 1299277508u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 747, 470047975u, 2010385858u, 3233120941u, 4186702461u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 748, 2221693080u, 1323708810u, 3211281520u, 1640799315u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 749, 3124323904u, 3503897938u, 3210262651u, 258643165u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 750, 2619485313u, 2959074653u, 1058897059u, 4239182527u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 751, 302551175u, 153547307u, 1099812861u, 3156123094u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 752, 420210788u, 3996883503u, 1071341265u, 72657681u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 753, 158488136u, 1698212750u, 1068334402u, 160302703u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 754, 289138234u, 2257686389u, 1051856116u, 430357614u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 755, 2795510903u, 395145384u, 1046317717u, 1912800227u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 756, 935515004u, 674021561u, 3222496667u, 743247292u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 757, 2822969173u, 1075007837u, 3222487779u, 639284837u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 758, 924678051u, 3492386324u, 3251519349u, 1241408247u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 759, 2881777125u, 3998363272u, 3228147294u, 365769855u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 760, 2662939411u, 4030509561u, 1066028735u, 1163947030u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 761, 564717585u, 1914428658u, 3214617694u, 4147847493u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 762, 993107584u, 2889684117u, 1042972779u, 1225674604u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 763, 750290683u, 273406410u, 3206108502u, 145234164u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 764, 3157290800u, 912384201u, 3237262916u, 3366320623u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 765, 3022814103u, 349339167u, 3197347448u, 3262060258u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 766, 393652178u, 2097272974u, 1064845294u, 1630215394u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 767, 2250994257u, 3355589350u, 3243019072u, 2316123825u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 768, 307759713u, 1457407347u, 1101422760u, 4120356538u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 769, 2168158322u, 3228185359u, 3198251445u, 3743078041u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 770, 880898735u, 1289357713u, 3230160936u, 2794962547u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 771, 903112316u, 1699456459u, 1083794396u, 4195811825u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 772, 129746399u, 1949114369u, 1084908557u, 1325384361u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 773, 709313868u, 3979168763u, 1049036668u, 2542947959u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 774, 776361251u, 676749439u, 3192662415u, 4013712036u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 775, 255079628u, 3701636708u, 1042322101u, 3983171212u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 776, 2885977639u, 3830039616u, 3239465315u, 175489420u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 777, 2871663155u, 2897269792u, 3230650366u, 3102389747u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 778, 515647990u, 582170006u, 1068093936u, 3324264433u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 779, 870187117u, 3574970337u, 1061955111u, 637826033u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 780, 2474474250u, 1733806710u, 3216760526u, 3188307974u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 781, 25157138u, 2296028823u, 1096788400u, 1413568905u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 782, 967771954u, 1627289946u, 1046506286u, 1860326351u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 783, 876029804u, 1139086265u, 3242570406u, 3276908361u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 784, 444923881u, 3323762166u, 3206918506u, 946766885u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 785, 2438959626u, 188768962u, 1088324147u, 4105901663u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 786, 2731858209u, 460037366u, 3227174677u, 2159793181u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 787, 647960579u, 2589781051u, 3243737020u, 107237481u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 788, 342985206u, 3519881651u, 1057272132u, 2685921459u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 789, 620434247u, 1169160155u, 3206674485u, 3139856281u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 790, 1000422649u, 1898254525u, 3196770014u, 2458988443u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 791, 756268268u, 2023065054u, 1050415907u, 4070768353u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 792, 284716157u, 3336260906u, 3237972475u, 3524355405u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 793, 2520138858u, 3298979042u, 3250099033u, 1003322861u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 794, 780415343u, 1629423892u, 1061722650u, 2396420130u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 795, 2512306741u, 1945417606u, 3192839521u, 1585136212u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 796, 2649414854u, 1527139640u, 1076681917u, 4150904895u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 797, 315452952u, 267572666u, 1088475235u, 1517640973u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 798, 948438656u, 1100855041u, 3229298529u, 2451533501u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 799, 2280476280u, 853088805u, 1050931318u, 3551516956u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 800, 927051214u, 1317953425u, 3217154900u, 431061758u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 801, 803065499u, 2317271661u, 1070436470u, 4014139535u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 802, 2766450812u, 3959292396u, 3249638947u, 906232948u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 803, 475259033u, 1939780068u, 3253991906u, 906880052u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 804, 174037547u, 4170524292u, 3237763507u, 4075099457u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 805, 3111709674u, 3520923293u, 1067530616u, 2252399455u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 806, 705974097u, 1097415680u, 1055600706u, 2690540698u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 807, 465450487u, 3086226264u, 3213898048u, 3220232067u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 808, 2906752413u, 2955360278u, 1051258339u, 557182478u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 809, 2407140190u, 186287752u, 1104388811u, 1727111982u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 810, 3170043637u, 4057007843u, 1076281145u, 2008293104u, 1073291771u, 1413754155u, 0, ACOS_TOLERANCE, 0},
+{ 811, 3198834469u, 2741338484u, 3252544447u, 1207037505u, 1073291772u, 654137907u, 0, ACOS_TOLERANCE, 0},
+{ 812, 625923799u, 102938901u, 3218894213u, 3620282197u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 813, 2527426501u, 763746284u, 1060949875u, 80236875u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 814, 3055119358u, 1117970157u, 1084109014u, 939675744u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 815, 1002709241u, 3478694019u, 1105453279u, 2493398454u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 816, 278925941u, 2014323735u, 1096417600u, 1077078168u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 817, 22160783u, 1569149351u, 1091835152u, 3751608506u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 818, 2855839310u, 930375071u, 1084274438u, 1096450032u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 819, 949603377u, 4197396799u, 3220768028u, 3419252837u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 820, 2427096043u, 2553375912u, 3237078043u, 1357572894u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 821, 2946808178u, 703318468u, 3198897773u, 3216391250u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 822, 682409255u, 3167959965u, 1069972300u, 4099039274u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 823, 551957760u, 1199490036u, 1047137152u, 2723130471u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 824, 2635855937u, 933683213u, 3243757155u, 1468458131u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 825, 954259401u, 763829445u, 3190480801u, 1772616584u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 826, 1017324786u, 3416067384u, 1056206159u, 172017902u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 827, 2553315334u, 2799176222u, 1099022088u, 1324575553u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 828, 54501096u, 2237472662u, 3202361378u, 1770080863u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 829, 697886575u, 1509098263u, 3227321831u, 3313535397u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 830, 2834201307u, 1157206501u, 3201667023u, 2771836065u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 831, 2845352423u, 841047693u, 3220229941u, 3851041620u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 832, 2559038255u, 1637635007u, 1096670395u, 363436727u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 833, 895812927u, 544867276u, 3250055151u, 2005291812u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 834, 613660095u, 1577788839u, 3213516258u, 3678234583u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 835, 2787880976u, 3005922702u, 1060624530u, 3900344258u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 836, 369490497u, 4206745890u, 3212325607u, 3363748875u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 837, 547531448u, 2586849496u, 3195881612u, 1817038482u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 838, 2947779739u, 3675119568u, 3217354316u, 1280515099u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 839, 2360207944u, 3785128270u, 3206980957u, 986337114u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 840, 30415045u, 1959045465u, 3205100821u, 2165602568u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 841, 2874345345u, 4164694429u, 3228096442u, 1919088329u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 842, 430207315u, 1381882442u, 3215734246u, 2587666792u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 843, 721933456u, 3295845115u, 1099763106u, 4189733918u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 844, 1020902692u, 528513718u, 3241318094u, 2446416887u, 1073291771u, 1413754130u, 0, ACOS_TOLERANCE, 0},
+{ 845, 23459988u, 2336116589u, 1065985897u, 3314083915u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 846, 666699893u, 3946191348u, 3195771050u, 906783975u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 847, 2277669009u, 1307551746u, 3210796216u, 988905760u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 848, 659686858u, 3690487540u, 1056058539u, 3252665112u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 849, 42479044u, 1832665932u, 1055271260u, 2605540156u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 850, 158726331u, 4095344603u, 3215114657u, 3444794506u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 851, 2383875900u, 1287837711u, 3242597773u, 4213798139u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 852, 3153341967u, 2816125725u, 1059414555u, 1477859711u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 853, 935772631u, 714564399u, 3193282956u, 2533012202u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 854, 626995971u, 3592268374u, 1058283383u, 2901729097u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 855, 793386186u, 3559004137u, 1068514800u, 3160920849u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 856, 292955800u, 691190239u, 3222935981u, 1615104840u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 857, 239139675u, 2475984769u, 1103239897u, 703637359u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 858, 710643921u, 441140946u, 3190536898u, 3492228424u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 859, 161483935u, 3877369975u, 3202400099u, 3215202168u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 860, 2961770699u, 1491180815u, 3239294185u, 1154272588u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 861, 3205774388u, 3583450204u, 1087671320u, 674510731u, 1073291852u, 1159169230u, 0, ACOS_TOLERANCE, 0},
+{ 862, 2732840881u, 3456820098u, 1089546472u, 2907918480u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 863, 685577817u, 81928569u, 1075278180u, 1990416786u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 864, 1038142999u, 1400620994u, 3225378967u, 1180415269u, 1073291771u, 1413203469u, 0, ACOS_TOLERANCE, 0},
+{ 865, 821776812u, 2762887697u, 3211549123u, 335890509u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 866, 3188234303u, 1362922028u, 3190091315u, 3628762502u, 1073291771u, 1416977815u, 0, ACOS_TOLERANCE, 0},
+{ 867, 721900432u, 3813492886u, 3202458179u, 1901070055u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 868, 2869411161u, 242471816u, 1098704131u, 1526904338u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 869, 1027232266u, 671155008u, 1093002146u, 4241764136u, 1073291771u, 1413753715u, 0, ACOS_TOLERANCE, 0},
+{ 870, 2277521859u, 4097248738u, 1056810493u, 578681886u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 871, 277897075u, 2743813242u, 1048038468u, 2228686199u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 872, 2669729433u, 777624847u, 3204357191u, 721009894u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 873, 900729335u, 724757172u, 1074804044u, 1443361721u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 874, 2794978652u, 1829019782u, 1092425225u, 921360204u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 875, 1055573469u, 599714409u, 3252379270u, 4008804686u, 1073291757u, 4048919351u, 0, ACOS_TOLERANCE, 0},
+{ 876, 2335315701u, 1009458928u, 1083845809u, 4245287698u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 877, 407962355u, 1393652229u, 3198335362u, 477976573u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 878, 119992u, 617334033u, 3226883256u, 1392617441u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 879, 2526781811u, 3189972160u, 1058939729u, 1442809487u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 880, 2785887182u, 1497507448u, 3207820115u, 1605709634u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 881, 400505812u, 1497124553u, 1056018407u, 1916183627u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 882, 379250418u, 187810760u, 1045258725u, 2282203450u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 883, 619840292u, 3486351235u, 3238811394u, 4182495542u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 884, 2587166700u, 1845445426u, 1101440582u, 1926724082u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 885, 2208479151u, 3630948001u, 3210436304u, 3757166747u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 886, 156467129u, 2426945694u, 1100551290u, 691736139u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 887, 3176502800u, 648364171u, 1041433075u, 4184885944u, 1073291771u, 1413755518u, 0, ACOS_TOLERANCE, 0},
+{ 888, 1000987303u, 4288583860u, 1088664697u, 2475611219u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 889, 1063779408u, 1032586628u, 1093050016u, 1335820726u, 1073288701u, 721808240u, 0, ACOS_TOLERANCE, 0},
+{ 890, 2203998268u, 1808427032u, 1080779860u, 3408316613u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 891, 2973050448u, 377900895u, 3246382680u, 3547565419u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 892, 2189796743u, 2323627716u, 1059972652u, 2094048557u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 893, 3196853156u, 698816446u, 3234028118u, 1825626029u, 1073291771u, 2356901228u, 0, ACOS_TOLERANCE, 0},
+{ 894, 3053056428u, 4246800079u, 3198693322u, 1124410156u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 895, 418318520u, 2453135589u, 1055899444u, 314708747u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 896, 2903016736u, 3296787864u, 1068197912u, 3000361169u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 897, 3078102424u, 2237367418u, 1089582486u, 4042266354u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 898, 3141633458u, 3484406269u, 3222793392u, 1868977643u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 899, 551079618u, 3353193428u, 1046058481u, 1204175477u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 900, 372140985u, 2936300483u, 3219636923u, 3841711417u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 901, 673975119u, 1967394048u, 1058351548u, 460961975u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 902, 186542430u, 2037284927u, 3201399531u, 2969937827u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 903, 605316943u, 4193097538u, 3187909191u, 3039418420u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 904, 560007813u, 3490045229u, 1095745195u, 4291149159u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 905, 2719344253u, 2428281947u, 3244840847u, 1401325941u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 906, 3086950621u, 2958762056u, 1053682542u, 1079751324u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 907, 2586448231u, 4153073282u, 3242138780u, 2976596113u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 908, 2225350223u, 3033242648u, 3218615502u, 4046734098u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 909, 144835976u, 3784918863u, 3247369913u, 2134568674u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 910, 1037093430u, 2677404300u, 1085544968u, 741961444u, 1073291771u, 1413479051u, 0, ACOS_TOLERANCE, 0},
+{ 911, 3191671070u, 3184472282u, 1092761713u, 2878921656u, 1073291771u, 1444200196u, 0, ACOS_TOLERANCE, 0},
+{ 912, 2174282657u, 3434230759u, 3221702019u, 3917984952u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 913, 2545165920u, 2576188896u, 3242449625u, 1091446541u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 914, 331286912u, 1182911629u, 3252138078u, 370659473u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 915, 2176330507u, 1444733769u, 1073172315u, 1980291498u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 916, 2678247043u, 2360783610u, 3208952465u, 1231254630u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 917, 2305545884u, 3838689849u, 1072879962u, 256746588u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 918, 2902784540u, 3667306355u, 3251214292u, 749864809u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 919, 2604503669u, 507891905u, 1053625983u, 2704533753u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 920, 1030839861u, 3584765547u, 3245124397u, 2257447093u, 1073291771u, 1413749690u, 0, ACOS_TOLERANCE, 0},
+{ 921, 3066547476u, 3315149772u, 1066493112u, 1016007949u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 922, 449363956u, 825363580u, 3232843486u, 209798625u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 923, 835609236u, 3268577204u, 1096097376u, 1911303780u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 924, 2498038993u, 1753975943u, 1042812372u, 3813343580u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 925, 2711382061u, 729612230u, 3214799337u, 998858159u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 926, 362629194u, 436029885u, 1040410334u, 1429955158u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 927, 535596587u, 3221540113u, 1098769124u, 1388898057u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 928, 3182989542u, 324306108u, 3236216574u, 3657300235u, 1073291771u, 1413854759u, 0, ACOS_TOLERANCE, 0},
+{ 929, 2615512563u, 583339032u, 1059119779u, 2312064517u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 930, 1018901539u, 1094068533u, 3243006833u, 3107499181u, 1073291771u, 1413754135u, 0, ACOS_TOLERANCE, 0},
+{ 931, 621064893u, 2330095236u, 1045494806u, 3166363539u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 932, 848850921u, 2922855425u, 1055270013u, 3382352474u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 933, 2636544164u, 2042479846u, 1052493506u, 1108839173u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 934, 14409368u, 3796172167u, 1093571065u, 169360454u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 935, 792852082u, 1860101737u, 1103906352u, 1684270183u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 936, 857946959u, 1478693394u, 1081338739u, 2709296315u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 937, 148167699u, 2960729928u, 1099267383u, 1713640531u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 938, 385577172u, 3119726590u, 1073506160u, 3652712370u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 939, 2345316997u, 2223927344u, 1087592708u, 1855918127u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 940, 283564999u, 1025757067u, 1082898254u, 4130586757u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 941, 248963649u, 1732390968u, 3252871699u, 2342842299u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 942, 968306674u, 284897931u, 3252953804u, 1924892993u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 943, 2792404953u, 3037915642u, 3201314702u, 236884699u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 944, 2786424109u, 2193269825u, 1080777124u, 2443415975u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 945, 519195528u, 875427160u, 3254060908u, 2005185235u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 946, 2834778379u, 1185249950u, 3192573802u, 43728140u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 947, 941414883u, 1968452001u, 3208083074u, 2872106033u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 948, 1058483372u, 1955688296u, 1041438818u, 4288876237u, 1073291678u, 2710722764u, 0, ACOS_TOLERANCE, 0},
+{ 949, 260098041u, 1687624754u, 1047766046u, 3073412424u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 950, 3060253014u, 1209878394u, 1095484022u, 291364597u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 951, 468175369u, 3483008135u, 1104326057u, 3143994227u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 952, 2417131043u, 3223340235u, 1090336173u, 1399132887u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 953, 783617139u, 4188530565u, 1049645776u, 3448942728u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 954, 660957346u, 1627557770u, 1058246656u, 2945931719u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 955, 1018601337u, 3373123648u, 3197792793u, 672208537u, 1073291771u, 1413754135u, 0, ACOS_TOLERANCE, 0},
+{ 956, 408015225u, 3778617114u, 1062846388u, 1358342023u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 957, 410316381u, 2900182547u, 3199310787u, 414812664u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 958, 633591966u, 2464347659u, 3205131467u, 3988778663u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 959, 229808805u, 3135249601u, 1100087621u, 4100875262u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 960, 793399715u, 2358359525u, 1045184735u, 1183252266u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 961, 971564307u, 1400352853u, 3240053853u, 734055542u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 962, 348066411u, 1753967678u, 3224978909u, 1995531974u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 963, 2638555255u, 1500031970u, 3233676488u, 4052958340u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 964, 536164755u, 1866935720u, 3200756597u, 3746696244u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 965, 91363664u, 2978288684u, 1106515721u, 564707827u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 966, 447397583u, 1517077030u, 1044934689u, 4156529635u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 967, 884390674u, 1427263585u, 3247549500u, 559009887u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 968, 709965825u, 427386166u, 3224310223u, 2897984604u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 969, 748422445u, 984833499u, 1086168339u, 3414464869u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 970, 3037316018u, 1275655663u, 1051250192u, 1788042252u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 971, 647298401u, 1752811522u, 1054424401u, 3069200833u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 972, 336691782u, 4159629802u, 3227935989u, 905739373u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 973, 840207318u, 3449457931u, 1053675501u, 651755324u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 974, 588654397u, 824950980u, 1063835328u, 2970166564u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 975, 1002643220u, 3980858800u, 1097889355u, 860102770u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 976, 2925126437u, 3352952738u, 1087086428u, 1202852913u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 977, 3153295755u, 3493096285u, 3210665381u, 1226230602u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 978, 2861370199u, 2237153875u, 1063605905u, 2592496943u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 979, 812704965u, 1204681469u, 1084151922u, 928193012u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 980, 717902981u, 1892558657u, 3188880850u, 472712482u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 981, 206133394u, 1107589453u, 3240016549u, 2840254081u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 982, 645145771u, 1760994629u, 3217094564u, 2931138356u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 983, 2682176516u, 3313118532u, 1095060283u, 1256408484u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 984, 958852249u, 2822240883u, 3191644368u, 1759139386u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 985, 3064303449u, 3148616726u, 3216643810u, 4033784566u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 986, 2672549129u, 50508488u, 3234572856u, 2196737134u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 987, 199760205u, 1739301489u, 1047113374u, 2964036605u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 988, 2742280838u, 32766355u, 1078278376u, 684801414u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 989, 860036812u, 2725458084u, 3197542874u, 3768641510u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 990, 602166919u, 2877639205u, 3248394899u, 2733580401u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 991, 217158246u, 3237117913u, 1086314718u, 1194088701u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 992, 507701220u, 2969027390u, 3254737744u, 2845466153u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 993, 39202927u, 1308825168u, 3231339694u, 1185199746u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 994, 2538930797u, 3429306274u, 3236439133u, 3100989857u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 995, 2251277391u, 4179597430u, 1060231463u, 2735521684u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 996, 863742433u, 1926531024u, 1040565159u, 1724549325u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 997, 344684868u, 1215071411u, 1068384117u, 483238293u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 998, 317818997u, 197061949u, 1043473339u, 249253513u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+{ 999, 2250299688u, 1410107326u, 3198269248u, 2880209598u, 1073291771u, 1413754136u, 0, ACOS_TOLERANCE, 0},
+
+
+// AUTOMATICALLY GENERATED VECTORS STOP
+
+};
+
+#endif // CYGONCE_LIBM_ACOS_H multiple inclusion protection
+
+// EOF acos.h
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/acosf.c b/ecos/packages/language/c/libm/current/tests/vectors/acosf.c
new file mode 100644
index 0000000..2a81bd7
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/acosf.c
@@ -0,0 +1,115 @@
+//===========================================================================
+//
+// acosf.c
+//
+// Test of acosf() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// Declarations for test system:
+//
+// TESTCASE_TYPE=CYG_TEST_MODULE
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include <cyg/infra/testcase.h> // Test infrastructure
+#include <math.h> // Header for this package
+#include <sys/ieeefp.h> // Cyg_libm_ieee_float_shape_type
+#include "vectors/vector_support_float.h"// extra support for math tests
+
+#include "vectors/acosf.h"
+
+// FUNCTIONS
+
+static void
+test( CYG_ADDRWORD data )
+{
+ cyg_ucount32 vec_size;
+ cyg_bool ret;
+
+ vec_size = sizeof(acosf_vec) / sizeof(Cyg_libm_test_float_vec_t);
+ ret = doTestVecFloat( (CYG_ADDRWORD) &acosf, CYG_LIBM_TEST_VEC_FLOAT,
+ CYG_LIBM_TEST_VEC_NONE, CYG_LIBM_TEST_VEC_FLOAT,
+ &acosf_vec[0], vec_size );
+
+ if (ret==true)
+ {
+ CYG_TEST_PASS("acosf() is stable");
+ } // if
+ else
+ {
+ CYG_TEST_FAIL("acosf() failed tests");
+ } // else
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for Math "
+ "library acosf() function");
+} // test()
+
+
+int
+main(int argc, char *argv[])
+{
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for Math library "
+ "acosf() function");
+
+ START_TEST( test );
+
+ CYG_TEST_PASS_FINISH("Testing is not applicable to this configuration");
+
+} // main()
+
+
+// EOF acosf.c
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/acosf.h b/ecos/packages/language/c/libm/current/tests/vectors/acosf.h
new file mode 100644
index 0000000..c731ed5
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/acosf.h
@@ -0,0 +1,901 @@
+#ifndef CYGONCE_LIBM_ACOS_H
+#define CYGONCE_LIBM_ACOS_H
+//===========================================================================
+//
+// acosf.h
+//
+// Test vectors for testing of acosf() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage: #include "vectors/acosf.h"
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include "vectors/vector_support_float.h"// extra support for math tests
+
+#define ACOS_TOLERANCE 1.0E-04
+
+static const Cyg_libm_test_float_vec_t acosf_vec[] = {
+
+// AUTOMATICALLY GENERATED VECTORS START
+
+{0, 3214514586u, 1115684864u, 2143289344u, EDOM, ACOS_TOLERANCE, 0},
+{1, 3214430700u, 1115684864u, 2143289344u, EDOM, ACOS_TOLERANCE, 0},
+{2, 3214346813u, 1115684864u, 2143289344u, EDOM, ACOS_TOLERANCE, 0},
+{3, 3214262927u, 1115684864u, 2143289344u, EDOM, ACOS_TOLERANCE, 0},
+{4, 3214179041u, 1115684864u, 2143289344u, EDOM, ACOS_TOLERANCE, 0},
+{5, 3214095155u, 1115684864u, 2143289344u, EDOM, ACOS_TOLERANCE, 0},
+{6, 3214011269u, 1115684864u, 2143289344u, EDOM, ACOS_TOLERANCE, 0},
+{7, 3213927383u, 1115684864u, 2143289344u, EDOM, ACOS_TOLERANCE, 0},
+{8, 3213843497u, 1115684864u, 2143289344u, EDOM, ACOS_TOLERANCE, 0},
+{9, 3213759611u, 1115684864u, 2143289344u, EDOM, ACOS_TOLERANCE, 0},
+{10, 3213675725u, 1115684864u, 2143289344u, EDOM, ACOS_TOLERANCE, 0},
+{11, 3213591839u, 1115684864u, 2143289344u, EDOM, ACOS_TOLERANCE, 0},
+{12, 3213507953u, 1115684864u, 2143289344u, EDOM, ACOS_TOLERANCE, 0},
+{13, 3213424067u, 1115684864u, 2143289344u, EDOM, ACOS_TOLERANCE, 0},
+{14, 3213340180u, 1115684864u, 2143289344u, EDOM, ACOS_TOLERANCE, 0},
+{15, 3213256294u, 1115684864u, 2143289344u, EDOM, ACOS_TOLERANCE, 0},
+{16, 3213172408u, 1115684864u, 2143289344u, EDOM, ACOS_TOLERANCE, 0},
+{17, 3213088522u, 1115684864u, 2143289344u, EDOM, ACOS_TOLERANCE, 0},
+{18, 3213004636u, 1115684864u, 2143289344u, EDOM, ACOS_TOLERANCE, 0},
+{19, 3212920750u, 1115684864u, 2143289344u, EDOM, ACOS_TOLERANCE, 0},
+{20, 3212836864u, 1078530011u, 1078530011u, 0, ACOS_TOLERANCE, 0},
+{21, 3212669092u, 1077936352u, 1077936352u, 0, ACOS_TOLERANCE, 0},
+{22, 3212501320u, 1077689746u, 1077689746u, 0, ACOS_TOLERANCE, 0},
+{23, 3212333548u, 1077500035u, 1077500035u, 0, ACOS_TOLERANCE, 0},
+{24, 3212165775u, 1077339692u, 1077339692u, 0, ACOS_TOLERANCE, 0},
+{25, 3211998003u, 1077198066u, 1077198066u, 0, ACOS_TOLERANCE, 0},
+{26, 3211830231u, 1077069697u, 1077069697u, 0, ACOS_TOLERANCE, 0},
+{27, 3211662459u, 1076951344u, 1076951344u, 0, ACOS_TOLERANCE, 0},
+{28, 3211494687u, 1076840899u, 1076840899u, 0, ACOS_TOLERANCE, 0},
+{29, 3211326915u, 1076736895u, 1076736895u, 0, ACOS_TOLERANCE, 0},
+{30, 3211159142u, 1076638267u, 1076638267u, 0, ACOS_TOLERANCE, 0},
+{31, 3210991370u, 1076544213u, 1076544213u, 0, ACOS_TOLERANCE, 0},
+{32, 3210823598u, 1076454107u, 1076454107u, 0, ACOS_TOLERANCE, 0},
+{33, 3210655826u, 1076367453u, 1076367453u, 0, ACOS_TOLERANCE, 0},
+{34, 3210488054u, 1076283850u, 1076283850u, 0, ACOS_TOLERANCE, 0},
+{35, 3210320282u, 1076202965u, 1076202965u, 0, ACOS_TOLERANCE, 0},
+{36, 3210152509u, 1076124522u, 1076124522u, 0, ACOS_TOLERANCE, 0},
+{37, 3209984737u, 1076048289u, 1076048289u, 0, ACOS_TOLERANCE, 0},
+{38, 3209816965u, 1075974064u, 1075974064u, 0, ACOS_TOLERANCE, 0},
+{39, 3209649193u, 1075901675u, 1075901675u, 0, ACOS_TOLERANCE, 0},
+{40, 3209481421u, 1075830972u, 1075830972u, 0, ACOS_TOLERANCE, 0},
+{41, 3209313649u, 1075761824u, 1075761824u, 0, ACOS_TOLERANCE, 0},
+{42, 3209145876u, 1075694114u, 1075694114u, 0, ACOS_TOLERANCE, 0},
+{43, 3208978104u, 1075627740u, 1075627740u, 0, ACOS_TOLERANCE, 0},
+{44, 3208810332u, 1075562612u, 1075562612u, 0, ACOS_TOLERANCE, 0},
+{45, 3208642560u, 1075498644u, 1075498644u, 0, ACOS_TOLERANCE, 0},
+{46, 3208474788u, 1075435764u, 1075435764u, 0, ACOS_TOLERANCE, 0},
+{47, 3208307016u, 1075373905u, 1075373905u, 0, ACOS_TOLERANCE, 0},
+{48, 3208139244u, 1075313005u, 1075313005u, 0, ACOS_TOLERANCE, 0},
+{49, 3207971471u, 1075253009u, 1075253009u, 0, ACOS_TOLERANCE, 0},
+{50, 3207803699u, 1075193866u, 1075193866u, 0, ACOS_TOLERANCE, 0},
+{51, 3207635927u, 1075135530u, 1075135530u, 0, ACOS_TOLERANCE, 0},
+{52, 3207468155u, 1075077958u, 1075077958u, 0, ACOS_TOLERANCE, 0},
+{53, 3207300383u, 1075021109u, 1075021109u, 0, ACOS_TOLERANCE, 0},
+{54, 3207132611u, 1074964947u, 1074964947u, 0, ACOS_TOLERANCE, 0},
+{55, 3206964838u, 1074909438u, 1074909438u, 0, ACOS_TOLERANCE, 0},
+{56, 3206797066u, 1074854550u, 1074854550u, 0, ACOS_TOLERANCE, 0},
+{57, 3206629294u, 1074800255u, 1074800255u, 0, ACOS_TOLERANCE, 0},
+{58, 3206461522u, 1074746524u, 1074746524u, 0, ACOS_TOLERANCE, 0},
+{59, 3206293750u, 1074693331u, 1074693331u, 0, ACOS_TOLERANCE, 0},
+{60, 3206125978u, 1074640653u, 1074640653u, 0, ACOS_TOLERANCE, 0},
+{61, 3205958205u, 1074588466u, 1074588466u, 0, ACOS_TOLERANCE, 0},
+{62, 3205790433u, 1074536750u, 1074536750u, 0, ACOS_TOLERANCE, 0},
+{63, 3205622661u, 1074485484u, 1074485484u, 0, ACOS_TOLERANCE, 0},
+{64, 3205454889u, 1074434648u, 1074434648u, 0, ACOS_TOLERANCE, 0},
+{65, 3205287117u, 1074384226u, 1074384226u, 0, ACOS_TOLERANCE, 0},
+{66, 3205119345u, 1074334200u, 1074334200u, 0, ACOS_TOLERANCE, 0},
+{67, 3204951572u, 1074284554u, 1074284554u, 0, ACOS_TOLERANCE, 0},
+{68, 3204783800u, 1074235272u, 1074235272u, 0, ACOS_TOLERANCE, 0},
+{69, 3204616028u, 1074186342u, 1074186342u, 0, ACOS_TOLERANCE, 0},
+{70, 3204448256u, 1074137746u, 1074137746u, 0, ACOS_TOLERANCE, 0},
+{71, 3204112712u, 1074089474u, 1074089474u, 0, ACOS_TOLERANCE, 0},
+{72, 3203777167u, 1074041512u, 1074041512u, 0, ACOS_TOLERANCE, 0},
+{73, 3203441623u, 1073993848u, 1073993848u, 0, ACOS_TOLERANCE, 0},
+{74, 3203106079u, 1073946471u, 1073946471u, 0, ACOS_TOLERANCE, 0},
+{75, 3202770534u, 1073899369u, 1073899369u, 0, ACOS_TOLERANCE, 0},
+{76, 3202434990u, 1073852533u, 1073852533u, 0, ACOS_TOLERANCE, 0},
+{77, 3202099446u, 1073805951u, 1073805951u, 0, ACOS_TOLERANCE, 0},
+{78, 3201763901u, 1073759615u, 1073759615u, 0, ACOS_TOLERANCE, 0},
+{79, 3201428357u, 1073685204u, 1073685204u, 0, ACOS_TOLERANCE, 0},
+{80, 3201092813u, 1073593456u, 1073593456u, 0, ACOS_TOLERANCE, 0},
+{81, 3200757268u, 1073502144u, 1073502144u, 0, ACOS_TOLERANCE, 0},
+{82, 3200421724u, 1073411251u, 1073411251u, 0, ACOS_TOLERANCE, 0},
+{83, 3200086180u, 1073320761u, 1073320761u, 0, ACOS_TOLERANCE, 0},
+{84, 3199750636u, 1073230658u, 1073230658u, 0, ACOS_TOLERANCE, 0},
+{85, 3199415091u, 1073140927u, 1073140927u, 0, ACOS_TOLERANCE, 0},
+{86, 3199079547u, 1073051553u, 1073051553u, 0, ACOS_TOLERANCE, 0},
+{87, 3198744003u, 1072962522u, 1072962522u, 0, ACOS_TOLERANCE, 0},
+{88, 3198408458u, 1072873820u, 1072873820u, 0, ACOS_TOLERANCE, 0},
+{89, 3198072914u, 1072785434u, 1072785434u, 0, ACOS_TOLERANCE, 0},
+{90, 3197737370u, 1072697350u, 1072697350u, 0, ACOS_TOLERANCE, 0},
+{91, 3197401825u, 1072609556u, 1072609556u, 0, ACOS_TOLERANCE, 0},
+{92, 3197066281u, 1072522040u, 1072522040u, 0, ACOS_TOLERANCE, 0},
+{93, 3196730737u, 1072434790u, 1072434790u, 0, ACOS_TOLERANCE, 0},
+{94, 3196395192u, 1072347793u, 1072347793u, 0, ACOS_TOLERANCE, 0},
+{95, 3196059648u, 1072261038u, 1072261038u, 0, ACOS_TOLERANCE, 0},
+{96, 3195388559u, 1072174515u, 1072174515u, 0, ACOS_TOLERANCE, 0},
+{97, 3194717471u, 1072088212u, 1072088212u, 0, ACOS_TOLERANCE, 0},
+{98, 3194046382u, 1072002118u, 1072002118u, 0, ACOS_TOLERANCE, 0},
+{99, 3193375293u, 1071916222u, 1071916222u, 0, ACOS_TOLERANCE, 0},
+{100, 3192704205u, 1071830516u, 1071830516u, 0, ACOS_TOLERANCE, 0},
+{101, 3192033116u, 1071744987u, 1071744987u, 0, ACOS_TOLERANCE, 0},
+{102, 3191362028u, 1071659628u, 1071659628u, 0, ACOS_TOLERANCE, 0},
+{103, 3190690939u, 1071574426u, 1071574426u, 0, ACOS_TOLERANCE, 0},
+{104, 3190019850u, 1071489374u, 1071489374u, 0, ACOS_TOLERANCE, 0},
+{105, 3189348762u, 1071404461u, 1071404461u, 0, ACOS_TOLERANCE, 0},
+{106, 3188677673u, 1071319679u, 1071319679u, 0, ACOS_TOLERANCE, 0},
+{107, 3188006584u, 1071235017u, 1071235017u, 0, ACOS_TOLERANCE, 0},
+{108, 3186999951u, 1071150468u, 1071150468u, 0, ACOS_TOLERANCE, 0},
+{109, 3185657774u, 1071066021u, 1071066021u, 0, ACOS_TOLERANCE, 0},
+{110, 3184315597u, 1070981668u, 1070981668u, 0, ACOS_TOLERANCE, 0},
+{111, 3182973420u, 1070897401u, 1070897401u, 0, ACOS_TOLERANCE, 0},
+{112, 3181631242u, 1070813210u, 1070813210u, 0, ACOS_TOLERANCE, 0},
+{113, 3180289065u, 1070729086u, 1070729086u, 0, ACOS_TOLERANCE, 0},
+{114, 3178611343u, 1070645022u, 1070645022u, 0, ACOS_TOLERANCE, 0},
+{115, 3175926989u, 1070561008u, 1070561008u, 0, ACOS_TOLERANCE, 0},
+{116, 3173242634u, 1070477037u, 1070477037u, 0, ACOS_TOLERANCE, 0},
+{117, 3170222735u, 1070393099u, 1070393099u, 0, ACOS_TOLERANCE, 0},
+{118, 3164854026u, 1070309186u, 1070309186u, 0, ACOS_TOLERANCE, 0},
+{119, 3156465418u, 1070225290u, 1070225290u, 0, ACOS_TOLERANCE, 0},
+{120, 1008981770u, 1070057516u, 1070057516u, 0, ACOS_TOLERANCE, 0},
+{121, 1017370378u, 1069973620u, 1069973620u, 0, ACOS_TOLERANCE, 0},
+{122, 1022739087u, 1069889707u, 1069889707u, 0, ACOS_TOLERANCE, 0},
+{123, 1025758986u, 1069805769u, 1069805769u, 0, ACOS_TOLERANCE, 0},
+{124, 1028443341u, 1069721798u, 1069721798u, 0, ACOS_TOLERANCE, 0},
+{125, 1031127695u, 1069637784u, 1069637784u, 0, ACOS_TOLERANCE, 0},
+{126, 1032805417u, 1069553720u, 1069553720u, 0, ACOS_TOLERANCE, 0},
+{127, 1034147594u, 1069469596u, 1069469596u, 0, ACOS_TOLERANCE, 0},
+{128, 1035489772u, 1069385405u, 1069385405u, 0, ACOS_TOLERANCE, 0},
+{129, 1036831949u, 1069301138u, 1069301138u, 0, ACOS_TOLERANCE, 0},
+{130, 1038174126u, 1069216785u, 1069216785u, 0, ACOS_TOLERANCE, 0},
+{131, 1039516303u, 1069132338u, 1069132338u, 0, ACOS_TOLERANCE, 0},
+{132, 1040522936u, 1069047789u, 1069047789u, 0, ACOS_TOLERANCE, 0},
+{133, 1041194025u, 1068963127u, 1068963127u, 0, ACOS_TOLERANCE, 0},
+{134, 1041865114u, 1068878345u, 1068878345u, 0, ACOS_TOLERANCE, 0},
+{135, 1042536202u, 1068793432u, 1068793432u, 0, ACOS_TOLERANCE, 0},
+{136, 1043207291u, 1068708380u, 1068708380u, 0, ACOS_TOLERANCE, 0},
+{137, 1043878380u, 1068623178u, 1068623178u, 0, ACOS_TOLERANCE, 0},
+{138, 1044549468u, 1068537819u, 1068537819u, 0, ACOS_TOLERANCE, 0},
+{139, 1045220557u, 1068452290u, 1068452290u, 0, ACOS_TOLERANCE, 0},
+{140, 1045891645u, 1068366584u, 1068366584u, 0, ACOS_TOLERANCE, 0},
+{141, 1046562734u, 1068280688u, 1068280688u, 0, ACOS_TOLERANCE, 0},
+{142, 1047233823u, 1068194594u, 1068194594u, 0, ACOS_TOLERANCE, 0},
+{143, 1047904911u, 1068108291u, 1068108291u, 0, ACOS_TOLERANCE, 0},
+{144, 1048576000u, 1068021768u, 1068021768u, 0, ACOS_TOLERANCE, 0},
+{145, 1048911544u, 1067935013u, 1067935013u, 0, ACOS_TOLERANCE, 0},
+{146, 1049247089u, 1067848016u, 1067848016u, 0, ACOS_TOLERANCE, 0},
+{147, 1049582633u, 1067760766u, 1067760766u, 0, ACOS_TOLERANCE, 0},
+{148, 1049918177u, 1067673250u, 1067673250u, 0, ACOS_TOLERANCE, 0},
+{149, 1050253722u, 1067585456u, 1067585456u, 0, ACOS_TOLERANCE, 0},
+{150, 1050589266u, 1067497372u, 1067497372u, 0, ACOS_TOLERANCE, 0},
+{151, 1050924810u, 1067408986u, 1067408986u, 0, ACOS_TOLERANCE, 0},
+{152, 1051260355u, 1067320284u, 1067320284u, 0, ACOS_TOLERANCE, 0},
+{153, 1051595899u, 1067231253u, 1067231253u, 0, ACOS_TOLERANCE, 0},
+{154, 1051931443u, 1067141879u, 1067141879u, 0, ACOS_TOLERANCE, 0},
+{155, 1052266988u, 1067052148u, 1067052148u, 0, ACOS_TOLERANCE, 0},
+{156, 1052602532u, 1066962045u, 1066962045u, 0, ACOS_TOLERANCE, 0},
+{157, 1052938076u, 1066871555u, 1066871555u, 0, ACOS_TOLERANCE, 0},
+{158, 1053273620u, 1066780662u, 1066780662u, 0, ACOS_TOLERANCE, 0},
+{159, 1053609165u, 1066689350u, 1066689350u, 0, ACOS_TOLERANCE, 0},
+{160, 1053944709u, 1066597602u, 1066597602u, 0, ACOS_TOLERANCE, 0},
+{161, 1054280253u, 1066505400u, 1066505400u, 0, ACOS_TOLERANCE, 0},
+{162, 1054615798u, 1066412727u, 1066412727u, 0, ACOS_TOLERANCE, 0},
+{163, 1054951342u, 1066319564u, 1066319564u, 0, ACOS_TOLERANCE, 0},
+{164, 1055286886u, 1066225892u, 1066225892u, 0, ACOS_TOLERANCE, 0},
+{165, 1055622431u, 1066131688u, 1066131688u, 0, ACOS_TOLERANCE, 0},
+{166, 1055957975u, 1066036934u, 1066036934u, 0, ACOS_TOLERANCE, 0},
+{167, 1056293519u, 1065941607u, 1065941607u, 0, ACOS_TOLERANCE, 0},
+{168, 1056629064u, 1065845682u, 1065845682u, 0, ACOS_TOLERANCE, 0},
+{169, 1056964608u, 1065749138u, 1065749138u, 0, ACOS_TOLERANCE, 0},
+{170, 1057132380u, 1065651947u, 1065651947u, 0, ACOS_TOLERANCE, 0},
+{171, 1057300152u, 1065554085u, 1065554085u, 0, ACOS_TOLERANCE, 0},
+{172, 1057467924u, 1065455522u, 1065455522u, 0, ACOS_TOLERANCE, 0},
+{173, 1057635697u, 1065356229u, 1065356229u, 0, ACOS_TOLERANCE, 0},
+{174, 1057803469u, 1065159138u, 1065159138u, 0, ACOS_TOLERANCE, 0},
+{175, 1057971241u, 1064957451u, 1064957451u, 0, ACOS_TOLERANCE, 0},
+{176, 1058139013u, 1064754109u, 1064754109u, 0, ACOS_TOLERANCE, 0},
+{177, 1058306785u, 1064549045u, 1064549045u, 0, ACOS_TOLERANCE, 0},
+{178, 1058474557u, 1064342180u, 1064342180u, 0, ACOS_TOLERANCE, 0},
+{179, 1058642330u, 1064133432u, 1064133432u, 0, ACOS_TOLERANCE, 0},
+{180, 1058810102u, 1063922719u, 1063922719u, 0, ACOS_TOLERANCE, 0},
+{181, 1058977874u, 1063709949u, 1063709949u, 0, ACOS_TOLERANCE, 0},
+{182, 1059145646u, 1063495024u, 1063495024u, 0, ACOS_TOLERANCE, 0},
+{183, 1059313418u, 1063277842u, 1063277842u, 0, ACOS_TOLERANCE, 0},
+{184, 1059481190u, 1063058292u, 1063058292u, 0, ACOS_TOLERANCE, 0},
+{185, 1059648963u, 1062836256u, 1062836256u, 0, ACOS_TOLERANCE, 0},
+{186, 1059816735u, 1062611609u, 1062611609u, 0, ACOS_TOLERANCE, 0},
+{187, 1059984507u, 1062384214u, 1062384214u, 0, ACOS_TOLERANCE, 0},
+{188, 1060152279u, 1062153923u, 1062153923u, 0, ACOS_TOLERANCE, 0},
+{189, 1060320051u, 1061920578u, 1061920578u, 0, ACOS_TOLERANCE, 0},
+{190, 1060487823u, 1061684008u, 1061684008u, 0, ACOS_TOLERANCE, 0},
+{191, 1060655596u, 1061444023u, 1061444023u, 0, ACOS_TOLERANCE, 0},
+{192, 1060823368u, 1061200425u, 1061200425u, 0, ACOS_TOLERANCE, 0},
+{193, 1060991140u, 1060952987u, 1060952987u, 0, ACOS_TOLERANCE, 0},
+{194, 1061158912u, 1060701468u, 1060701468u, 0, ACOS_TOLERANCE, 0},
+{195, 1061326684u, 1060445598u, 1060445598u, 0, ACOS_TOLERANCE, 0},
+{196, 1061494456u, 1060185082u, 1060185082u, 0, ACOS_TOLERANCE, 0},
+{197, 1061662228u, 1059919589u, 1059919589u, 0, ACOS_TOLERANCE, 0},
+{198, 1061830001u, 1059648749u, 1059648749u, 0, ACOS_TOLERANCE, 0},
+{199, 1061997773u, 1059372157u, 1059372157u, 0, ACOS_TOLERANCE, 0},
+{200, 1062165545u, 1059089345u, 1059089345u, 0, ACOS_TOLERANCE, 0},
+{201, 1062333317u, 1058799789u, 1058799789u, 0, ACOS_TOLERANCE, 0},
+{202, 1062501089u, 1058502888u, 1058502888u, 0, ACOS_TOLERANCE, 0},
+{203, 1062668861u, 1058197954u, 1058197954u, 0, ACOS_TOLERANCE, 0},
+{204, 1062836634u, 1057884184u, 1057884184u, 0, ACOS_TOLERANCE, 0},
+{205, 1063004406u, 1057560646u, 1057560646u, 0, ACOS_TOLERANCE, 0},
+{206, 1063172178u, 1057226232u, 1057226232u, 0, ACOS_TOLERANCE, 0},
+{207, 1063339950u, 1056794626u, 1056794626u, 0, ACOS_TOLERANCE, 0},
+{208, 1063507722u, 1056073778u, 1056073778u, 0, ACOS_TOLERANCE, 0},
+{209, 1063675494u, 1055321342u, 1055321342u, 0, ACOS_TOLERANCE, 0},
+{210, 1063843267u, 1054532321u, 1054532321u, 0, ACOS_TOLERANCE, 0},
+{211, 1064011039u, 1053700291u, 1053700291u, 0, ACOS_TOLERANCE, 0},
+{212, 1064178811u, 1052816725u, 1052816725u, 0, ACOS_TOLERANCE, 0},
+{213, 1064346583u, 1051869905u, 1051869905u, 0, ACOS_TOLERANCE, 0},
+{214, 1064514355u, 1050842953u, 1050842953u, 0, ACOS_TOLERANCE, 0},
+{215, 1064682127u, 1049709945u, 1049709945u, 0, ACOS_TOLERANCE, 0},
+{216, 1064849900u, 1048278399u, 1048278399u, 0, ACOS_TOLERANCE, 0},
+{217, 1065017672u, 1045243021u, 1045243021u, 0, ACOS_TOLERANCE, 0},
+{218, 1065185444u, 1041297333u, 1041297333u, 0, ACOS_TOLERANCE, 0},
+{219, 1065437102u, 1115684864u, 2143289344u, EDOM, ACOS_TOLERANCE, 0},
+{220, 1065520988u, 1115684864u, 2143289344u, EDOM, ACOS_TOLERANCE, 0},
+{221, 1065604874u, 1115684864u, 2143289344u, EDOM, ACOS_TOLERANCE, 0},
+{222, 1065688760u, 1115684864u, 2143289344u, EDOM, ACOS_TOLERANCE, 0},
+{223, 1065772646u, 1115684864u, 2143289344u, EDOM, ACOS_TOLERANCE, 0},
+{224, 1065856532u, 1115684864u, 2143289344u, EDOM, ACOS_TOLERANCE, 0},
+{225, 1065940419u, 1115684864u, 2143289344u, EDOM, ACOS_TOLERANCE, 0},
+{226, 1066024305u, 1115684864u, 2143289344u, EDOM, ACOS_TOLERANCE, 0},
+{227, 1066108191u, 1115684864u, 2143289344u, EDOM, ACOS_TOLERANCE, 0},
+{228, 1066192077u, 1115684864u, 2143289344u, EDOM, ACOS_TOLERANCE, 0},
+{229, 1066275963u, 1115684864u, 2143289344u, EDOM, ACOS_TOLERANCE, 0},
+{230, 1066359849u, 1115684864u, 2143289344u, EDOM, ACOS_TOLERANCE, 0},
+{231, 1066443735u, 1115684864u, 2143289344u, EDOM, ACOS_TOLERANCE, 0},
+{232, 1066527621u, 1115684864u, 2143289344u, EDOM, ACOS_TOLERANCE, 0},
+{233, 1066611507u, 1115684864u, 2143289344u, EDOM, ACOS_TOLERANCE, 0},
+{234, 1066695393u, 1115684864u, 2143289344u, EDOM, ACOS_TOLERANCE, 0},
+{235, 1066779279u, 1115684864u, 2143289344u, EDOM, ACOS_TOLERANCE, 0},
+{236, 1066863165u, 1115684864u, 2143289344u, EDOM, ACOS_TOLERANCE, 0},
+{237, 1066947052u, 1115684864u, 2143289344u, EDOM, ACOS_TOLERANCE, 0},
+{238, 3234402267u, 1115684864u, 2143289344u, EDOM, ACOS_TOLERANCE, 0},
+{239, 3231108068u, 1115684864u, 2143289344u, EDOM, ACOS_TOLERANCE, 0},
+{240, 3226013659u, 1115684864u, 2143289344u, EDOM, ACOS_TOLERANCE, 0},
+{241, 3217625051u, 1115684864u, 2143289344u, EDOM, ACOS_TOLERANCE, 0},
+{242, 1070141403u, 1115684864u, 2143289344u, EDOM, ACOS_TOLERANCE, 0},
+{243, 1078530011u, 1115684864u, 2143289344u, EDOM, ACOS_TOLERANCE, 0},
+{244, 1083624420u, 1115684864u, 2143289344u, EDOM, ACOS_TOLERANCE, 0},
+{245, 3253731328u, 1115684864u, 2143289344u, EDOM, ACOS_TOLERANCE, 0},
+{246, 3252840038u, 1115684864u, 2143289344u, EDOM, ACOS_TOLERANCE, 0},
+{247, 3251948749u, 1115684864u, 2143289344u, EDOM, ACOS_TOLERANCE, 0},
+{248, 3251057459u, 1115684864u, 2143289344u, EDOM, ACOS_TOLERANCE, 0},
+{249, 3250166170u, 1115684864u, 2143289344u, EDOM, ACOS_TOLERANCE, 0},
+{250, 3249274880u, 1115684864u, 2143289344u, EDOM, ACOS_TOLERANCE, 0},
+{251, 3248383590u, 1115684864u, 2143289344u, EDOM, ACOS_TOLERANCE, 0},
+{252, 3247492301u, 1115684864u, 2143289344u, EDOM, ACOS_TOLERANCE, 0},
+{253, 3246601011u, 1115684864u, 2143289344u, EDOM, ACOS_TOLERANCE, 0},
+{254, 3245028147u, 1115684864u, 2143289344u, EDOM, ACOS_TOLERANCE, 0},
+{255, 3243245568u, 1115684864u, 2143289344u, EDOM, ACOS_TOLERANCE, 0},
+{256, 3241462989u, 1115684864u, 2143289344u, EDOM, ACOS_TOLERANCE, 0},
+{257, 3239680410u, 1115684864u, 2143289344u, EDOM, ACOS_TOLERANCE, 0},
+{258, 3237792973u, 1115684864u, 2143289344u, EDOM, ACOS_TOLERANCE, 0},
+{259, 3234227814u, 1115684864u, 2143289344u, EDOM, ACOS_TOLERANCE, 0},
+{260, 3230662656u, 1115684864u, 2143289344u, EDOM, ACOS_TOLERANCE, 0},
+{261, 3224580915u, 1115684864u, 2143289344u, EDOM, ACOS_TOLERANCE, 0},
+{262, 3213675725u, 1115684864u, 2143289344u, EDOM, ACOS_TOLERANCE, 0},
+{263, 1058642330u, 1064133432u, 1064133432u, 0, ACOS_TOLERANCE, 0},
+{264, 1075000115u, 1115684864u, 2143289344u, EDOM, ACOS_TOLERANCE, 0},
+{265, 1082130432u, 1115684864u, 2143289344u, EDOM, ACOS_TOLERANCE, 0},
+{266, 1085695590u, 1115684864u, 2143289344u, EDOM, ACOS_TOLERANCE, 0},
+{267, 1089260749u, 1115684864u, 2143289344u, EDOM, ACOS_TOLERANCE, 0},
+{268, 1091672474u, 1115684864u, 2143289344u, EDOM, ACOS_TOLERANCE, 0},
+{269, 1093455053u, 1115684864u, 2143289344u, EDOM, ACOS_TOLERANCE, 0},
+{270, 1095237632u, 1115684864u, 2143289344u, EDOM, ACOS_TOLERANCE, 0},
+{271, 1097020211u, 1115684864u, 2143289344u, EDOM, ACOS_TOLERANCE, 0},
+{272, 1098802790u, 1115684864u, 2143289344u, EDOM, ACOS_TOLERANCE, 0},
+{273, 1099746509u, 1115684864u, 2143289344u, EDOM, ACOS_TOLERANCE, 0},
+{274, 1100637798u, 1115684864u, 2143289344u, EDOM, ACOS_TOLERANCE, 0},
+{275, 1101529088u, 1115684864u, 2143289344u, EDOM, ACOS_TOLERANCE, 0},
+{276, 1102420378u, 1115684864u, 2143289344u, EDOM, ACOS_TOLERANCE, 0},
+{277, 1103311667u, 1115684864u, 2143289344u, EDOM, ACOS_TOLERANCE, 0},
+{278, 1104202957u, 1115684864u, 2143289344u, EDOM, ACOS_TOLERANCE, 0},
+{279, 1105094246u, 1115684864u, 2143289344u, EDOM, ACOS_TOLERANCE, 0},
+{280, 1105985536u, 1115684864u, 2143289344u, EDOM, ACOS_TOLERANCE, 0},
+{281, 2147483648u, 1052069095u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{282, 2147483648u, 1071072428u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{283, 2147483648u, 3296950845u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{284, 2147483648u, 3156566413u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{285, 2147483648u, 3358077510u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{286, 2147483648u, 1025523870u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{287, 2147483648u, 1243001035u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{288, 2147483648u, 972638352u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{289, 810619489u, 3185903817u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{290, 2147491935u, 1278817364u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{291, 2147483648u, 3171458120u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{292, 288269848u, 1320608539u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{293, 2147483648u, 931147479u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{294, 2147483648u, 1037515180u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{295, 2277437585u, 3100002586u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{296, 2147483648u, 3192719340u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{297, 2147483648u, 1021132553u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{298, 591881758u, 951277634u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{299, 2147483648u, 3330035379u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{300, 2147483648u, 1001673627u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{301, 2749599591u, 851226131u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{302, 2147483648u, 906737571u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{303, 749404886u, 3268990607u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{304, 2147483648u, 1275963161u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{305, 2147483648u, 3253933764u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{306, 2147483648u, 3484034384u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{307, 2147483648u, 1233424920u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{308, 2334905811u, 938541324u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{309, 2147483648u, 1267908299u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{310, 2147483648u, 1017806823u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{311, 2147483648u, 2991550291u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{312, 363647387u, 3260698942u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{313, 2147483648u, 842980605u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{314, 2147483648u, 1081230948u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{315, 2743120633u, 3414609019u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{316, 2267257448u, 1021746912u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{317, 2147483648u, 1182202773u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{318, 2147483648u, 991146039u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{319, 2147483648u, 906951239u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{320, 2147483648u, 1118207485u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{321, 2147483648u, 1196181063u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{322, 2689012108u, 3480992834u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{323, 2147483648u, 3477870099u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{324, 2147483648u, 813029006u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{325, 2837565631u, 988745783u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{326, 2147483648u, 1205426478u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{327, 2147888351u, 3188486667u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{328, 2147483648u, 3372681320u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{329, 2147483648u, 960989701u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{330, 2147483744u, 3213319290u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{331, 2147483648u, 2994036021u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{332, 2147483648u, 1163818382u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{333, 2147483648u, 3030724760u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{334, 2147483648u, 3251462098u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{335, 448400401u, 936708769u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{336, 2147483648u, 845007087u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{337, 2444070966u, 3144245472u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{338, 2147483648u, 3162429103u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{339, 2147483648u, 976891930u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{340, 2147483648u, 856188678u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{341, 2147483648u, 898585738u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{342, 2147483648u, 3006490973u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{343, 2147483648u, 956052691u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{344, 391u, 3480430994u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{345, 2147483648u, 3206874009u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{346, 2756996510u, 1061834641u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{347, 2873449850u, 1051903437u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{348, 2147483648u, 1250159739u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{349, 2147483648u, 1000330041u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{350, 119045454u, 3402754560u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{351, 2147483648u, 1060741775u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{352, 160249855u, 3349719404u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{353, 2147483648u, 3422089012u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{354, 920u, 3207629620u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{355, 2147483648u, 3262490615u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{356, 2147483648u, 968020321u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{357, 2147483648u, 918937712u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{358, 2147483648u, 3361987866u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{359, 2147483648u, 1037918217u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{360, 340020199u, 1094190727u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{361, 2147483648u, 1053266823u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{362, 2147877445u, 3113871093u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{363, 2147483648u, 924982045u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{364, 2147483648u, 3075674944u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{365, 2147483648u, 3343511749u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{366, 2147483648u, 3472160795u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{367, 2147483648u, 1185255822u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{368, 2147483648u, 2964473730u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{369, 2723075543u, 3293073011u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{370, 2314131156u, 1131488075u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{371, 2147483648u, 1155973549u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{372, 2147483648u, 1273466037u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{373, 2147483648u, 3160115806u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{374, 2147483648u, 3421884736u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{375, 490459729u, 896142227u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{376, 2147483648u, 824119322u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{377, 2147483648u, 1226409254u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{378, 2724754778u, 3052084797u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{379, 2147483648u, 1043837748u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{380, 2147483648u, 3023809388u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{381, 2147483648u, 3184462258u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{382, 3u, 3117479148u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{383, 2147483648u, 3454151744u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{384, 2147483648u, 997035638u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{385, 2147483648u, 1205909956u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{386, 2147483648u, 2961687578u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{387, 2147483648u, 3129523970u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{388, 719549432u, 891539868u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{389, 2147483648u, 1092464984u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{390, 440779482u, 3412981093u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{391, 2147483648u, 3265523505u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{392, 2147483648u, 3232569165u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{393, 2147483648u, 1209839368u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{394, 2147483648u, 904437268u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{395, 2410584209u, 3238493878u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{396, 2147483648u, 3232169970u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{397, 2147483648u, 859974315u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{398, 2147483648u, 1129234809u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{399, 2147483648u, 916838473u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{400, 2147483648u, 1167070004u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{401, 2147483648u, 3031347719u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{402, 2147483648u, 3177294154u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{403, 108031518u, 3304796832u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{404, 2147483648u, 3171306569u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{405, 2147483648u, 3020473908u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{406, 2147483648u, 1096158518u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{407, 2147483648u, 3179481213u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{408, 2147483648u, 1281942534u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{409, 2147483648u, 3441620273u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{410, 728778715u, 1194063479u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{411, 2147483648u, 1269521406u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{412, 2147483648u, 1080781593u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{413, 391u, 3017708315u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{414, 2147483648u, 1305758312u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{415, 321062391u, 3276701541u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{416, 2147483648u, 3341726399u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{417, 2147483648u, 906796922u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{418, 2147483648u, 1224014884u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{419, 2147483648u, 966599478u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{420, 2326921734u, 835476614u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{421, 2147483648u, 923275921u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{422, 46071684u, 3343681859u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{423, 2147483648u, 3021544263u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{424, 2147483648u, 1178287186u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{425, 2147483648u, 829189744u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{426, 393982026u, 1143885245u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{427, 2147483648u, 3046898319u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{428, 2147483648u, 867967302u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{429, 2147483648u, 3338770855u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{430, 2147483648u, 3475508255u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{431, 2147483648u, 1202693903u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{432, 284154797u, 3427090024u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{433, 2264306954u, 1056262920u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{434, 2147483648u, 3264549339u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{435, 2147483648u, 1276853215u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{436, 2550407686u, 1096828073u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{437, 2147483648u, 1012272490u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{438, 2147483648u, 1295490054u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{439, 2147483648u, 1164664124u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{440, 570155606u, 3450612343u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{441, 480515653u, 3283738666u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{442, 2611692162u, 1106497311u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{443, 2147483648u, 3351032791u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{444, 2147483648u, 3046751162u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{445, 2147483648u, 838969199u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{446, 2324006503u, 3232806352u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{447, 141980743u, 1191954283u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{448, 2147483648u, 3441975288u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{449, 2147483648u, 3112892091u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{450, 2147483648u, 1336130408u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{451, 2147483648u, 813667607u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{452, 2147483648u, 3446438152u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{453, 2147483648u, 3270337976u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{454, 59461286u, 1214457631u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{455, 2147483648u, 3282519962u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{456, 2147483648u, 3108384823u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{457, 478163079u, 1090165393u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{458, 2147483648u, 882977381u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{459, 2147483648u, 1112072452u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{460, 2147483648u, 1028145400u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{461, 2147483648u, 1286245415u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{462, 2147483648u, 806097243u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{463, 2147483648u, 3412765608u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{464, 2147483648u, 940691906u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{465, 2147483648u, 3364307110u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{466, 2147483648u, 3065390393u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{467, 2147483648u, 3038555590u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{468, 2677724809u, 1314588083u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{469, 75734u, 3253167645u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{470, 797989396u, 1127052054u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{471, 2880582777u, 3331526060u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{472, 2147483648u, 3303828921u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{473, 2147483648u, 1059458160u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{474, 2147483648u, 1271766333u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{475, 2147483648u, 994934087u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{476, 2147483648u, 3349215575u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{477, 2147483648u, 1280179344u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{478, 2917059631u, 3430128441u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{479, 2147483648u, 3121491888u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{480, 2383125370u, 3134983555u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{481, 2490969476u, 1274271338u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{482, 2147483648u, 3137789275u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{483, 2147483648u, 3421282265u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{484, 2147483648u, 1176648675u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{485, 2147483648u, 3318141593u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{486, 2147483648u, 2953745031u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{487, 2147483648u, 3120393778u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{488, 2147483648u, 3057446844u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{489, 2147483648u, 1301684858u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{490, 2147483648u, 3268263719u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{491, 2147483648u, 1125665786u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{492, 2147483648u, 1164064095u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{493, 2147483648u, 3294185127u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{494, 2147483648u, 1210292360u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{495, 2147483648u, 1252991340u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{496, 2147483648u, 1129547574u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{497, 2690145161u, 3166174863u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{498, 2147483648u, 1246902946u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{499, 2147483648u, 821713786u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{500, 2147483648u, 1234682085u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{501, 2147483648u, 3196797581u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{502, 2147483648u, 3216636846u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{503, 2147483648u, 886552820u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{504, 2147483648u, 3275838921u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{505, 2147483648u, 3431026150u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{506, 2147483648u, 3013546177u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{507, 2147483648u, 3207228055u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{508, 2147483648u, 1189849849u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{509, 2147483648u, 1324123675u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{510, 2147483648u, 1284669825u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{511, 2147483648u, 1215659576u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{512, 2147483648u, 3313440410u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{513, 1049501u, 1325911234u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{514, 2147483648u, 865445870u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{515, 2147483648u, 3317255445u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{516, 234742983u, 1296303326u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{517, 2147483648u, 3141459622u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{518, 2147483648u, 3059263153u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{519, 2147483648u, 1150362008u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{520, 2147483648u, 3413901925u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{521, 2147483648u, 2970282274u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{522, 2385195833u, 1103833874u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{523, 2564584176u, 3380095806u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{524, 2513707978u, 3321602471u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{525, 2147483648u, 3149379368u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{526, 2147483648u, 1227380036u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{527, 2147483648u, 1030612298u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{528, 2147483648u, 1274230155u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{529, 2170277926u, 943702773u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{530, 2147483648u, 3455490212u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{531, 2147483648u, 3397380506u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{532, 2147653175u, 1070703949u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{533, 2147483648u, 946724121u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{534, 2147483648u, 1142740742u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{535, 2897405230u, 1257041821u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{536, 2147483648u, 3223269892u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{537, 2147483648u, 3369970587u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{538, 2147483648u, 911179122u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{539, 2147483648u, 3163556685u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{540, 2938612105u, 1098390556u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{541, 2147483648u, 3333087577u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{542, 2147483648u, 1138833401u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{543, 2147483648u, 1340199001u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{544, 2147483648u, 1153598995u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{545, 2147483648u, 3343190157u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{546, 2147483648u, 3327511577u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{547, 2687462036u, 1246668916u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{548, 2147483648u, 3364525678u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{549, 2147483648u, 841477222u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{550, 2147483648u, 3094865367u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{551, 2147483648u, 823554575u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{552, 2147483648u, 3426895417u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{553, 2147483648u, 3462258576u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{554, 843704503u, 3393355960u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{555, 2147483648u, 1100950868u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{556, 2147483648u, 891772654u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{557, 2147483648u, 3201307027u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{558, 2147483648u, 3034243695u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{559, 2147483648u, 3361467010u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{560, 2147483648u, 1252032904u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{561, 2147483648u, 1075881433u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{562, 33406260u, 1076793020u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{563, 2147483648u, 1198013705u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{564, 400127762u, 1226901593u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{565, 2147483648u, 3169114927u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{566, 149822278u, 1322250198u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{567, 2147483648u, 3037360125u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{568, 3392684u, 925229709u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{569, 2147483648u, 1041547928u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{570, 840558416u, 3019447745u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{571, 2147483648u, 851189486u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{572, 2147483648u, 3178983748u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{573, 2147483648u, 846808247u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{574, 2147483648u, 3362274638u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{575, 2652324524u, 940145823u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{576, 2156232923u, 3258645378u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{577, 486701u, 3392968785u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{578, 763674077u, 819117302u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{579, 2147483648u, 1087159751u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{580, 2147483648u, 3112136590u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{581, 2147483648u, 1093996718u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{582, 2147483648u, 1221138363u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{583, 2147483648u, 3082454432u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{584, 2147483648u, 905107980u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{585, 2147483648u, 1327101792u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{586, 2147483648u, 1130799489u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{587, 2147483648u, 3019855125u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{588, 2147483648u, 3403051413u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{589, 2147483648u, 1177352432u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{590, 2147483648u, 3033883446u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{591, 2147483648u, 1248810001u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{592, 2147483648u, 3065502249u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{593, 2147483648u, 970336973u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{594, 2468094017u, 1200966067u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{595, 637394373u, 816383247u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{596, 2147483648u, 933435023u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{597, 2147483648u, 3247983449u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{598, 2147483648u, 3377417079u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{599, 2147483648u, 1202153484u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{600, 2147483648u, 1258550065u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{601, 2147483648u, 3135303960u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{602, 501121108u, 1170420310u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{603, 2147483648u, 1161379350u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{604, 472266126u, 3040081476u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{605, 2147483648u, 3126785738u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{606, 2147483648u, 1135720261u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{607, 2147483648u, 834161190u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{608, 2147483648u, 1195849454u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{609, 2147483648u, 1031113622u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{610, 2147483648u, 3041923509u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{611, 2741465718u, 1268459262u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{612, 2147483648u, 3245406322u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{613, 2147483648u, 2958435407u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{614, 864473987u, 3475052219u, 1070141402u, 0, ACOS_TOLERANCE, 0},
+{615, 193530813u, 1034349331u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{616, 2147483648u, 875370373u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{617, 2147483648u, 1326938231u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{618, 2147483648u, 3081333275u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{619, 2147483648u, 1083849288u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{620, 2147483648u, 1160615461u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{621, 2147483648u, 1057159525u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{622, 2147483648u, 1099193347u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{623, 2147483648u, 1156923458u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{624, 2147483648u, 1173759936u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{625, 2147483648u, 3051974545u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{626, 2147483648u, 1270944913u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{627, 2147483648u, 1068842002u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{628, 453373699u, 2987148017u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{629, 2147483648u, 3188146033u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{630, 2147483648u, 1292551278u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{631, 2147483648u, 3472203760u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{632, 2147483672u, 3151507159u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{633, 2147483648u, 1022984119u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{634, 2147483648u, 831320715u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{635, 2147483648u, 1236928772u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{636, 2147483648u, 833633147u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{637, 2255937854u, 3272421852u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{638, 2147483648u, 1274899097u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{639, 2147483648u, 1203700708u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{640, 2147483648u, 1219956070u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{641, 2147483648u, 3250328831u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{642, 2147483648u, 3115437331u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{643, 2147483648u, 3436353675u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{644, 2147483648u, 970565586u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{645, 733874287u, 1140723341u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{646, 2147483648u, 1094978498u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{647, 339953634u, 3229870615u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{648, 2147483648u, 1100875500u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{649, 2147483648u, 1281399060u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{650, 2147483648u, 3339857921u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{651, 2670707199u, 3289859792u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{652, 2147483648u, 905068959u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{653, 2147483648u, 2967285726u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{654, 2594850059u, 1229268598u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{655, 2147483648u, 817642171u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{656, 2147483648u, 3296217738u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{657, 2147483648u, 886781716u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{658, 2147483648u, 822243042u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{659, 2147483648u, 1232836633u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{660, 2147483648u, 3012101436u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{661, 2147483648u, 2985875633u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{662, 2898702392u, 3271988538u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{663, 2147483648u, 3255541781u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{664, 2147483648u, 3012527353u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{665, 2147483648u, 853459706u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{666, 2147483648u, 1032597076u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{667, 2147483648u, 3396154986u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{668, 2147483648u, 1280578799u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{669, 2147483648u, 3177612111u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{670, 2147483648u, 3086531260u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{671, 368559080u, 1200160986u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{672, 2374565676u, 1146511497u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{673, 409663799u, 3322946721u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{674, 2147483648u, 3286432366u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{675, 2147483648u, 3250061248u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{676, 2147483648u, 1195896327u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{677, 2147483648u, 1171219623u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{678, 2147483648u, 1093697541u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{679, 2147483648u, 3032135104u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{680, 2147483648u, 3411964796u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{681, 244369307u, 3136168070u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{682, 2147483648u, 1147204146u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{683, 2169506506u, 952770933u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{684, 2147483648u, 1038197181u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{685, 31340u, 812862946u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{686, 2147483650u, 1327912576u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{687, 197631173u, 3443552129u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{688, 2147483648u, 2953199494u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{689, 2147483648u, 1184612738u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{690, 2147483648u, 3402547824u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{691, 2147483648u, 894632143u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{692, 2728370577u, 897541752u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{693, 2147483648u, 1261942977u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{694, 2147483648u, 1099200954u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{695, 2147483648u, 3154292435u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{696, 2147483648u, 3152683606u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{697, 2147483648u, 1121826464u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{698, 2147483648u, 880804546u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{699, 2147483648u, 3141673859u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{700, 2446012935u, 3133522904u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{701, 2147483648u, 954983712u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{702, 2147483648u, 854348972u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{703, 308447u, 3231395033u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{704, 2147483648u, 3231323929u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{705, 236u, 3463576490u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{706, 2147483648u, 3276600049u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{707, 2147483648u, 1012037114u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{708, 428667909u, 827589466u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{709, 2709748098u, 3349525030u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{710, 2147483648u, 3030201286u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{711, 2147483648u, 3395574276u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{712, 2147483648u, 3037433263u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{713, 2147483648u, 3367144216u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{714, 2147483648u, 3296624630u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{715, 2147483648u, 3185505910u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{716, 225982867u, 855857523u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{717, 2147483648u, 1190400416u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{718, 2147483648u, 3268819116u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{719, 487188428u, 3025581813u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{720, 2147483648u, 3452213962u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{721, 2147483648u, 2994137867u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{722, 2147483648u, 1097262576u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{723, 71316482u, 3285809933u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{724, 2147483648u, 891257783u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{725, 1131u, 3188660897u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{726, 2147483648u, 3448533274u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{727, 2345099095u, 1024052164u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{728, 2147483648u, 893873945u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{729, 2147483648u, 1318917723u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{730, 2811770800u, 1094056396u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{731, 2147483648u, 971406232u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{732, 2147483648u, 1156679346u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{733, 505481166u, 1327433469u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{734, 2147483648u, 1158002738u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{735, 80634256u, 3217565926u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{736, 2147483648u, 3348046043u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{737, 2147483648u, 3042603886u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{738, 2147483648u, 3401478939u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{739, 117882441u, 2975268107u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{740, 622405526u, 933456504u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{741, 2147483648u, 1275983938u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{742, 2147483648u, 3064757885u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{743, 2147483648u, 3213261231u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{744, 2147483648u, 1257170393u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{745, 2147483648u, 968803479u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{746, 2147483648u, 3190256226u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{747, 2147483648u, 3107269354u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{748, 2147483648u, 3276193236u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{749, 651028769u, 3381966453u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{750, 2147483648u, 3137791426u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{751, 2147483648u, 3392203888u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{752, 2678157437u, 959123675u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{753, 372854u, 2997685349u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{754, 2147483648u, 3365775178u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{755, 2147483648u, 1200179013u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{756, 788951227u, 3254453434u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{757, 2957296123u, 2972152223u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{758, 2147483648u, 1273440283u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{759, 701665361u, 1227824408u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{760, 2147483648u, 938291177u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{761, 2147483648u, 3086279225u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{762, 2147483648u, 1223209034u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{763, 2147483648u, 1154573712u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{764, 2147483648u, 955325067u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{765, 2147483648u, 3113982619u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{766, 2147483648u, 1295331892u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{767, 2147483648u, 3134912135u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{768, 2863444097u, 815271840u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{769, 491705664u, 1193124813u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{770, 2147483648u, 1130046118u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{771, 2147483648u, 3422483143u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{772, 2147483648u, 963588452u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{773, 2147483648u, 3040968274u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{774, 2147483648u, 1029390534u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{775, 2147495995u, 1200467128u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{776, 2584489366u, 3233768835u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{777, 2147483648u, 3410148475u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{778, 2151563707u, 913267570u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{779, 2147483648u, 3388531942u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{780, 2147483648u, 3200345720u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{781, 780554677u, 1168166977u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{782, 2984790262u, 1225900941u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{783, 2147483648u, 3225037855u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{784, 2147483648u, 3391018698u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{785, 2147483648u, 1069185756u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{786, 2147483648u, 3123041418u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{787, 2147483648u, 1066846928u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{788, 2147483648u, 3461136033u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{789, 2147483648u, 912815101u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{790, 730526127u, 3412416876u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{791, 2147483654u, 1015752130u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{792, 2147483648u, 826306215u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{793, 2147483648u, 3169816394u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{794, 2915338033u, 3341154295u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{795, 2147483648u, 956765468u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{796, 635019546u, 3395476366u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{797, 2147483648u, 903755282u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{798, 2147483648u, 1184548899u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{799, 230260625u, 3475052132u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{800, 2147483648u, 3061939312u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{801, 2147483648u, 1130024229u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{802, 2147483648u, 2992012112u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{803, 15126300u, 3116086293u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{804, 2147483648u, 1247679409u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{805, 2147483648u, 1206496619u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{806, 632617934u, 3033764041u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{807, 256321691u, 3371852521u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{808, 2147483648u, 3320833608u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{809, 2147483648u, 893808771u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{810, 504952999u, 1266922074u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{811, 2147483648u, 1180498658u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{812, 2677787743u, 3136744746u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{813, 2147483648u, 992654477u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{814, 2147483648u, 1244289498u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{815, 154625229u, 2984576643u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{816, 2147483649u, 3184572184u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{817, 2147483648u, 3328004548u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{818, 2147483648u, 1110034241u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{819, 2147483648u, 3342934766u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{820, 2147483648u, 965658941u, 1070141403u, 0, ACOS_TOLERANCE, 0},
+{821, 2147483648u, 3037575685u, 1070141403u, 0, ACOS_TOLERANCE, 0}
+
+// AUTOMATICALLY GENERATED VECTORS STOP
+
+};
+
+#endif // CYGONCE_LIBM_ACOS_H multiple inclusion protection
+
+// EOF acosf.h
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/acoshf.c b/ecos/packages/language/c/libm/current/tests/vectors/acoshf.c
new file mode 100644
index 0000000..7ecc77b
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/acoshf.c
@@ -0,0 +1,115 @@
+//===========================================================================
+//
+// acoshf.c
+//
+// Test of acoshf() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// Declarations for test system:
+//
+// TESTCASE_TYPE=CYG_TEST_MODULE
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include <cyg/infra/testcase.h> // Test infrastructure
+#include <math.h> // Header for this package
+#include <sys/ieeefp.h> // Cyg_libm_ieee_float_shape_type
+#include "vectors/vector_support_float.h"// extra support for math tests
+
+#include "vectors/acoshf.h"
+
+// FUNCTIONS
+
+static void
+test( CYG_ADDRWORD data )
+{
+ cyg_ucount32 vec_size;
+ cyg_bool ret;
+
+ vec_size = sizeof(acoshf_vec) / sizeof(Cyg_libm_test_float_vec_t);
+ ret = doTestVecFloat( (CYG_ADDRWORD) &acoshf, CYG_LIBM_TEST_VEC_FLOAT,
+ CYG_LIBM_TEST_VEC_NONE, CYG_LIBM_TEST_VEC_FLOAT,
+ &acoshf_vec[0], vec_size );
+
+ if (ret==true)
+ {
+ CYG_TEST_PASS("acoshf() is stable");
+ } // if
+ else
+ {
+ CYG_TEST_FAIL("acoshf() failed tests");
+ } // else
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for Math "
+ "library acoshf() function");
+} // test()
+
+
+int
+main(int argc, char *argv[])
+{
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for Math library "
+ "acoshf() function");
+
+ START_TEST( test );
+
+ CYG_TEST_PASS_FINISH("Testing is not applicable to this configuration");
+
+} // main()
+
+
+// EOF acoshf.c
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/acoshf.h b/ecos/packages/language/c/libm/current/tests/vectors/acoshf.h
new file mode 100644
index 0000000..98a23fb
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/acoshf.h
@@ -0,0 +1,360 @@
+#ifndef CYGONCE_LIBM_ACOSH_H
+#define CYGONCE_LIBM_ACOSH_H
+//===========================================================================
+//
+// acoshf.h
+//
+// Test vectors for testing of acoshf() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage: #include "vectors/acoshf.h"
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include "vectors/vector_support_float.h"// extra support for math tests
+
+#define ACOSH_TOLERANCE 1.0E-04
+
+static const Cyg_libm_test_float_vec_t acoshf_vec[] = {
+
+// AUTOMATICALLY GENERATED VECTORS START
+
+{0, 3214514586u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{1, 3214430700u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{2, 3214346813u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{3, 3214262927u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{4, 3214179041u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{5, 3214095155u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{6, 3214011269u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{7, 3213927383u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{8, 3213843497u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{9, 3213759611u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{10, 3213675725u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{11, 3213591839u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{12, 3213507953u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{13, 3213424067u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{14, 3213340180u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{15, 3213256294u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{16, 3213172408u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{17, 3213088522u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{18, 3213004636u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{19, 3212920750u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{20, 3212836864u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{21, 3212669092u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{22, 3212501320u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{23, 3212333548u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{24, 3212165775u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{25, 3211998003u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{26, 3211830231u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{27, 3211662459u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{28, 3211494687u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{29, 3211326915u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{30, 3211159142u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{31, 3210991370u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{32, 3210823598u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{33, 3210655826u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{34, 3210488054u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{35, 3210320282u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{36, 3210152509u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{37, 3209984737u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{38, 3209816965u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{39, 3209649193u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{40, 3209481421u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{41, 3209313649u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{42, 3209145876u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{43, 3208978104u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{44, 3208810332u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{45, 3208642560u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{46, 3208474788u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{47, 3208307016u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{48, 3208139244u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{49, 3207971471u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{50, 3207803699u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{51, 3207635927u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{52, 3207468155u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{53, 3207300383u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{54, 3207132611u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{55, 3206964838u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{56, 3206797066u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{57, 3206629294u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{58, 3206461522u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{59, 3206293750u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{60, 3206125978u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{61, 3205958205u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{62, 3205790433u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{63, 3205622661u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{64, 3205454889u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{65, 3205287117u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{66, 3205119345u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{67, 3204951572u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{68, 3204783800u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{69, 3204616028u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{70, 3204448256u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{71, 3204112712u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{72, 3203777167u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{73, 3203441623u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{74, 3203106079u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{75, 3202770534u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{76, 3202434990u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{77, 3202099446u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{78, 3201763901u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{79, 3201428357u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{80, 3201092813u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{81, 3200757268u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{82, 3200421724u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{83, 3200086180u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{84, 3199750636u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{85, 3199415091u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{86, 3199079547u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{87, 3198744003u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{88, 3198408458u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{89, 3198072914u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{90, 3197737370u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{91, 3197401825u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{92, 3197066281u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{93, 3196730737u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{94, 3196395192u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{95, 3196059648u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{96, 3195388559u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{97, 3194717471u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{98, 3194046382u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{99, 3193375293u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{100, 3192704205u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{101, 3192033116u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{102, 3191362028u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{103, 3190690939u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{104, 3190019850u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{105, 3189348762u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{106, 3188677673u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{107, 3188006584u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{108, 3186999951u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{109, 3185657774u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{110, 3184315597u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{111, 3182973420u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{112, 3181631242u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{113, 3180289065u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{114, 3178611343u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{115, 3175926989u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{116, 3173242634u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{117, 3170222735u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{118, 3164854026u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{119, 3156465418u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{120, 1008981770u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{121, 1017370378u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{122, 1022739087u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{123, 1025758986u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{124, 1028443341u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{125, 1031127695u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{126, 1032805417u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{127, 1034147594u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{128, 1035489772u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{129, 1036831949u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{130, 1038174126u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{131, 1039516303u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{132, 1040522936u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{133, 1041194025u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{134, 1041865114u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{135, 1042536202u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{136, 1043207291u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{137, 1043878380u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{138, 1044549468u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{139, 1045220557u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{140, 1045891645u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{141, 1046562734u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{142, 1047233823u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{143, 1047904911u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{144, 1048576000u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{145, 1048911544u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{146, 1049247089u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{147, 1049582633u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{148, 1049918177u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{149, 1050253722u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{150, 1050589266u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{151, 1050924810u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{152, 1051260355u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{153, 1051595899u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{154, 1051931443u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{155, 1052266988u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{156, 1052602532u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{157, 1052938076u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{158, 1053273620u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{159, 1053609165u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{160, 1053944709u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{161, 1054280253u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{162, 1054615798u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{163, 1054951342u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{164, 1055286886u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{165, 1055622431u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{166, 1055957975u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{167, 1056293519u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{168, 1056629064u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{169, 1056964608u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{170, 1057132380u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{171, 1057300152u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{172, 1057467924u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{173, 1057635697u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{174, 1057803469u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{175, 1057971241u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{176, 1058139013u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{177, 1058306785u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{178, 1058474557u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{179, 1058642330u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{180, 1058810102u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{181, 1058977874u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{182, 1059145646u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{183, 1059313418u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{184, 1059481190u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{185, 1059648963u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{186, 1059816735u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{187, 1059984507u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{188, 1060152279u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{189, 1060320051u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{190, 1060487823u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{191, 1060655596u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{192, 1060823368u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{193, 1060991140u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{194, 1061158912u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{195, 1061326684u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{196, 1061494456u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{197, 1061662228u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{198, 1061830001u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{199, 1061997773u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{200, 1062165545u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{201, 1062333317u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{202, 1062501089u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{203, 1062668861u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{204, 1062836634u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{205, 1063004406u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{206, 1063172178u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{207, 1063339950u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{208, 1063507722u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{209, 1063675494u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{210, 1063843267u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{211, 1064011039u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{212, 1064178811u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{213, 1064346583u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{214, 1064514355u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{215, 1064682127u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{216, 1064849900u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{217, 1065017672u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{218, 1065185444u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{219, 1065437102u, 1041281514u, 1041281514u, 0, ACOSH_TOLERANCE, 0},
+{220, 1065520988u, 1045198281u, 1045198281u, 0, ACOSH_TOLERANCE, 0},
+{221, 1065604874u, 1048196204u, 1048196204u, 0, ACOSH_TOLERANCE, 0},
+{222, 1065688760u, 1049646660u, 1049646660u, 0, ACOSH_TOLERANCE, 0},
+{223, 1065772646u, 1050754509u, 1050754509u, 0, ACOSH_TOLERANCE, 0},
+{224, 1065856532u, 1051753636u, 1051753636u, 0, ACOSH_TOLERANCE, 0},
+{225, 1065940419u, 1052670210u, 1052670210u, 0, ACOSH_TOLERANCE, 0},
+{226, 1066024305u, 1053521262u, 1053521262u, 0, ACOSH_TOLERANCE, 0},
+{227, 1066108191u, 1054318670u, 1054318670u, 0, ACOSH_TOLERANCE, 0},
+{228, 1066192077u, 1055071074u, 1055071074u, 0, ACOSH_TOLERANCE, 0},
+{229, 1066275963u, 1055785005u, 1055785005u, 0, ACOSH_TOLERANCE, 0},
+{230, 1066359849u, 1056465542u, 1056465542u, 0, ACOSH_TOLERANCE, 0},
+{231, 1066443735u, 1057040669u, 1057040669u, 0, ACOSH_TOLERANCE, 0},
+{232, 1066527621u, 1057353227u, 1057353227u, 0, ACOSH_TOLERANCE, 0},
+{233, 1066611507u, 1057654105u, 1057654105u, 0, ACOSH_TOLERANCE, 0},
+{234, 1066695393u, 1057944433u, 1057944433u, 0, ACOSH_TOLERANCE, 0},
+{235, 1066779279u, 1058225171u, 1058225171u, 0, ACOSH_TOLERANCE, 0},
+{236, 1066863165u, 1058497140u, 1058497140u, 0, ACOSH_TOLERANCE, 0},
+{237, 1066947052u, 1058761049u, 1058761049u, 0, ACOSH_TOLERANCE, 0},
+{238, 3234402267u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{239, 3231108068u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{240, 3226013659u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{241, 3217625051u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{242, 1070141403u, 1065548063u, 1065548063u, 0, ACOSH_TOLERANCE, 0},
+{243, 1078530011u, 1072160792u, 1072160792u, 0, ACOSH_TOLERANCE, 0},
+{244, 1083624420u, 1074714438u, 1074714438u, 0, ACOSH_TOLERANCE, 0},
+{245, 3253731328u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{246, 3252840038u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{247, 3251948749u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{248, 3251057459u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{249, 3250166170u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{250, 3249274880u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{251, 3248383590u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{252, 3247492301u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{253, 3246601011u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{254, 3245028147u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{255, 3243245568u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{256, 3241462989u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{257, 3239680410u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{258, 3237792973u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{259, 3234227814u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{260, 3230662656u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{261, 3224580915u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{262, 3213675725u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{263, 1058642330u, 1115684864u, 2143289344u, EDOM, ACOSH_TOLERANCE, 0},
+{264, 1075000115u, 1069338181u, 1069338181u, 0, ACOSH_TOLERANCE, 0},
+{265, 1082130432u, 1074007898u, 1074007898u, 0, ACOSH_TOLERANCE, 0},
+{266, 1085695590u, 1075527877u, 1075527877u, 0, ACOSH_TOLERANCE, 0},
+{267, 1089260749u, 1076636021u, 1076636021u, 0, ACOSH_TOLERANCE, 0},
+{268, 1091672474u, 1077509940u, 1077509940u, 0, ACOSH_TOLERANCE, 0},
+{269, 1093455053u, 1078232007u, 1078232007u, 0, ACOSH_TOLERANCE, 0},
+{270, 1095237632u, 1078847433u, 1078847433u, 0, ACOSH_TOLERANCE, 0},
+{271, 1097020211u, 1079383779u, 1079383779u, 0, ACOSH_TOLERANCE, 0},
+{272, 1098802790u, 1079859115u, 1079859115u, 0, ACOSH_TOLERANCE, 0},
+{273, 1099746509u, 1080285937u, 1080285937u, 0, ACOSH_TOLERANCE, 0},
+{274, 1100637798u, 1080673248u, 1080673248u, 0, ACOSH_TOLERANCE, 0},
+{275, 1101529088u, 1081027759u, 1081027759u, 0, ACOSH_TOLERANCE, 0},
+{276, 1102420378u, 1081354598u, 1081354598u, 0, ACOSH_TOLERANCE, 0},
+{277, 1103311667u, 1081657776u, 1081657776u, 0, ACOSH_TOLERANCE, 0},
+{278, 1104202957u, 1081940495u, 1081940495u, 0, ACOSH_TOLERANCE, 0},
+{279, 1105094246u, 1082167886u, 1082167886u, 0, ACOSH_TOLERANCE, 0},
+{280, 1105985536u, 1082292437u, 1082292437u, 0, ACOSH_TOLERANCE, 0}
+
+// AUTOMATICALLY GENERATED VECTORS STOP
+
+};
+
+#endif // CYGONCE_LIBM_ACOSH_H multiple inclusion protection
+
+// EOF acoshf.h
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/asin.c b/ecos/packages/language/c/libm/current/tests/vectors/asin.c
new file mode 100644
index 0000000..f597cfc
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/asin.c
@@ -0,0 +1,115 @@
+//===========================================================================
+//
+// asin.c
+//
+// Test of asin() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// Declarations for test system:
+//
+// TESTCASE_TYPE=CYG_TEST_MODULE
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include <cyg/infra/testcase.h> // Test infrastructure
+#include <math.h> // Header for this package
+#include <sys/ieeefp.h> // Cyg_libm_ieee_double_shape_type
+#include "vectors/vector_support.h"// extra support for math tests
+
+#include "vectors/asin.h"
+
+// FUNCTIONS
+
+static void
+test( CYG_ADDRWORD data )
+{
+ cyg_ucount32 vec_size;
+ cyg_bool ret;
+
+ vec_size = sizeof(asin_vec) / sizeof(Cyg_libm_test_double_vec_t);
+ ret = doTestVec( (CYG_ADDRWORD) &asin, CYG_LIBM_TEST_VEC_DOUBLE,
+ CYG_LIBM_TEST_VEC_NONE, CYG_LIBM_TEST_VEC_DOUBLE,
+ &asin_vec[0], vec_size );
+
+ if (ret==true)
+ {
+ CYG_TEST_PASS("asin() is stable");
+ } // if
+ else
+ {
+ CYG_TEST_FAIL("asin() failed tests");
+ } // else
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for Math "
+ "library asin() function");
+} // test()
+
+
+int
+main(int argc, char *argv[])
+{
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for Math library "
+ "asin() function");
+
+ START_TEST( test );
+
+ CYG_TEST_PASS_FINISH("Testing is not applicable to this configuration");
+
+} // main()
+
+
+// EOF asin.c
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/asin.h b/ecos/packages/language/c/libm/current/tests/vectors/asin.h
new file mode 100644
index 0000000..daa76c2
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/asin.h
@@ -0,0 +1,1079 @@
+#ifndef CYGONCE_LIBM_ASIN_H
+#define CYGONCE_LIBM_ASIN_H
+//===========================================================================
+//
+// asin.h
+//
+// Test vectors for testing of asin() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage: #include "vectors/asin.h"
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include "vectors/vector_support.h"// extra support for math tests
+
+#define ASIN_TOLERANCE 1.0E-04
+
+static const Cyg_libm_test_double_vec_t asin_vec[] = {
+
+// AUTOMATICALLY GENERATED VECTORS START
+
+{ 1, 604042796u, 2506787616u, 3214772338u, 2077734866u, 604042796u, 2506787616u, 0, ASIN_TOLERANCE, 0},
+{ 2, 182169888u, 3065862417u, 1106988572u, 4273582707u, 182169888u, 3065862417u, 0, ASIN_TOLERANCE, 0},
+{ 3, 2664755801u, 1226547830u, 1071032732u, 3857964939u, 2664755801u, 1226547830u, 0, ASIN_TOLERANCE, 0},
+{ 4, 94291757u, 4010703484u, 1081727025u, 4287567452u, 94291757u, 4010703484u, 0, ASIN_TOLERANCE, 0},
+{ 5, 118911615u, 2977931045u, 1104283808u, 3843658091u, 118911615u, 2977931045u, 0, ASIN_TOLERANCE, 0},
+{ 6, 2656608405u, 3088088668u, 1073408149u, 2318866154u, 2656608405u, 3088088668u, 0, ASIN_TOLERANCE, 0},
+{ 7, 263730613u, 2451317798u, 3210911814u, 1038562750u, 263730613u, 2451317798u, 0, ASIN_TOLERANCE, 0},
+{ 8, 580821368u, 2221564313u, 1059115557u, 977275158u, 580821368u, 2221564313u, 0, ASIN_TOLERANCE, 0},
+{ 9, 399687375u, 97950278u, 3204919842u, 1605286142u, 399687375u, 97950278u, 0, ASIN_TOLERANCE, 0},
+{ 10, 460757591u, 4233776869u, 1087533966u, 1919858904u, 460757591u, 4233776869u, 0, ASIN_TOLERANCE, 0},
+{ 11, 2870376804u, 1472965721u, 3230691143u, 2574511435u, 2870376804u, 1472965721u, 0, ASIN_TOLERANCE, 0},
+{ 12, 2882092039u, 1204637550u, 3213143089u, 2421516003u, 2882092039u, 1204637550u, 0, ASIN_TOLERANCE, 0},
+{ 13, 3037750340u, 3337705339u, 3238331976u, 3183442542u, 3037750340u, 3337705339u, 0, ASIN_TOLERANCE, 0},
+{ 14, 2949649050u, 1086075996u, 1067714579u, 3477152375u, 2949649050u, 1086075996u, 0, ASIN_TOLERANCE, 0},
+{ 15, 535591366u, 247024800u, 1040265469u, 3354345619u, 535591366u, 247024800u, 0, ASIN_TOLERANCE, 0},
+{ 16, 63178737u, 2781269805u, 3188799281u, 3391715197u, 63178737u, 2781269805u, 0, ASIN_TOLERANCE, 0},
+{ 17, 768313194u, 865544864u, 3230216062u, 1200273272u, 768313194u, 865544864u, 0, ASIN_TOLERANCE, 0},
+{ 18, 591877388u, 3157038143u, 3249401130u, 314151656u, 591877388u, 3157038143u, 0, ASIN_TOLERANCE, 0},
+{ 19, 3219509280u, 1564829925u, 1065671376u, 3088950051u, 3219652657u, 2483715739u, 0, ASIN_TOLERANCE, 0},
+{ 20, 141374533u, 3933975298u, 1065991760u, 2304772640u, 141374533u, 3933975298u, 0, ASIN_TOLERANCE, 0},
+{ 21, 2396283075u, 1799495751u, 1094899225u, 1827380665u, 2396283075u, 1799495751u, 0, ASIN_TOLERANCE, 0},
+{ 22, 2598153594u, 1112370977u, 1061103890u, 196988907u, 2598153594u, 1112370977u, 0, ASIN_TOLERANCE, 0},
+{ 23, 1040851532u, 490122851u, 3216810265u, 576637874u, 1040851532u, 490122851u, 0, ASIN_TOLERANCE, 0},
+{ 24, 849190915u, 1390621543u, 1055043150u, 915412872u, 849190915u, 1390621543u, 0, ASIN_TOLERANCE, 0},
+{ 25, 488493877u, 2591320551u, 1070339013u, 1237443094u, 488493877u, 2591320551u, 0, ASIN_TOLERANCE, 0},
+{ 26, 3077582663u, 3936235618u, 1099376266u, 1904940295u, 3077582663u, 3936235618u, 0, ASIN_TOLERANCE, 0},
+{ 27, 71827124u, 222155510u, 1044902177u, 252085215u, 71827124u, 222155510u, 0, ASIN_TOLERANCE, 0},
+{ 28, 2583183683u, 4139068910u, 3215004552u, 4245048106u, 2583183683u, 4139068910u, 0, ASIN_TOLERANCE, 0},
+{ 29, 32118299u, 168794155u, 1090475726u, 3160414606u, 32118299u, 168794155u, 0, ASIN_TOLERANCE, 0},
+{ 30, 975557826u, 4157503437u, 1104600163u, 1792103377u, 975557826u, 4157503437u, 0, ASIN_TOLERANCE, 0},
+{ 31, 137283993u, 1382645956u, 3240285101u, 4024164216u, 137283993u, 1382645956u, 0, ASIN_TOLERANCE, 0},
+{ 32, 118046910u, 3480120317u, 1100404348u, 478417819u, 118046910u, 3480120317u, 0, ASIN_TOLERANCE, 0},
+{ 33, 2828521286u, 2549311006u, 1055917530u, 3778440054u, 2828521286u, 2549311006u, 0, ASIN_TOLERANCE, 0},
+{ 34, 2530903114u, 1593784258u, 1069213493u, 1951351053u, 2530903114u, 1593784258u, 0, ASIN_TOLERANCE, 0},
+{ 35, 3103251986u, 631744430u, 3206072611u, 1047143174u, 3103251986u, 631744430u, 0, ASIN_TOLERANCE, 0},
+{ 36, 722650436u, 1584726864u, 3215417793u, 624695933u, 722650436u, 1584726864u, 0, ASIN_TOLERANCE, 0},
+{ 37, 2434300838u, 705725219u, 3217662205u, 1967294577u, 2434300838u, 705725219u, 0, ASIN_TOLERANCE, 0},
+{ 38, 664091785u, 2952818482u, 3239402263u, 1848641259u, 664091785u, 2952818482u, 0, ASIN_TOLERANCE, 0},
+{ 39, 642185311u, 1370937055u, 1055482637u, 2410810400u, 642185311u, 1370937055u, 0, ASIN_TOLERANCE, 0},
+{ 40, 889092079u, 1330047076u, 1093469262u, 1857263512u, 889092079u, 1330047076u, 0, ASIN_TOLERANCE, 0},
+{ 41, 2562391789u, 1246486570u, 1067165665u, 743938884u, 2562391789u, 1246486570u, 0, ASIN_TOLERANCE, 0},
+{ 42, 1013509315u, 3107531809u, 1058433800u, 958446936u, 1013509315u, 3107531809u, 0, ASIN_TOLERANCE, 0},
+{ 43, 2379321348u, 1698195744u, 3234826710u, 1808768063u, 2379321348u, 1698195744u, 0, ASIN_TOLERANCE, 0},
+{ 44, 223594865u, 2594747457u, 1045397427u, 3927603841u, 223594865u, 2594747457u, 0, ASIN_TOLERANCE, 0},
+{ 45, 2251329048u, 348093397u, 1064733299u, 1710279345u, 2251329048u, 348093397u, 0, ASIN_TOLERANCE, 0},
+{ 46, 3162272236u, 3528946000u, 1045927362u, 1602290403u, 3162272236u, 3528946000u, 0, ASIN_TOLERANCE, 0},
+{ 47, 2415703348u, 398813542u, 1052866292u, 1436851684u, 2415703348u, 398813542u, 0, ASIN_TOLERANCE, 0},
+{ 48, 1033199706u, 3319748577u, 3227196113u, 3607301229u, 1033199706u, 3319748577u, 0, ASIN_TOLERANCE, 0},
+{ 49, 23891811u, 2548745907u, 1105253912u, 370162110u, 23891811u, 2548745907u, 0, ASIN_TOLERANCE, 0},
+{ 50, 764517244u, 4204294028u, 3192923960u, 2626702805u, 764517244u, 4204294028u, 0, ASIN_TOLERANCE, 0},
+{ 51, 173888262u, 390319448u, 1104422077u, 120202647u, 173888262u, 390319448u, 0, ASIN_TOLERANCE, 0},
+{ 52, 2730779741u, 2815627218u, 1099019491u, 731750493u, 2730779741u, 2815627218u, 0, ASIN_TOLERANCE, 0},
+{ 53, 864070021u, 3900661840u, 3200970392u, 2907096477u, 864070021u, 3900661840u, 0, ASIN_TOLERANCE, 0},
+{ 54, 842667049u, 4269246624u, 3222902057u, 2762779203u, 842667049u, 4269246624u, 0, ASIN_TOLERANCE, 0},
+{ 55, 2347188326u, 184131949u, 3225314008u, 2237882876u, 2347188326u, 184131949u, 0, ASIN_TOLERANCE, 0},
+{ 56, 2323813472u, 4276663739u, 3254076585u, 4265258845u, 2323813472u, 4276663739u, 0, ASIN_TOLERANCE, 0},
+{ 57, 560407162u, 1656691045u, 3252113914u, 4132573504u, 560407162u, 1656691045u, 0, ASIN_TOLERANCE, 0},
+{ 58, 271448936u, 1052817888u, 1061186300u, 352861436u, 271448936u, 1052817888u, 0, ASIN_TOLERANCE, 0},
+{ 59, 2742827957u, 636068836u, 1093702210u, 4149510462u, 2742827957u, 636068836u, 0, ASIN_TOLERANCE, 0},
+{ 60, 3110435514u, 1869774195u, 1056841761u, 2029664212u, 3110435514u, 1869774195u, 0, ASIN_TOLERANCE, 0},
+{ 61, 2782135403u, 481356510u, 1098012633u, 1760061418u, 2782135403u, 481356510u, 0, ASIN_TOLERANCE, 0},
+{ 62, 2210852465u, 2918398424u, 1066749948u, 3643952367u, 2210852465u, 2918398424u, 0, ASIN_TOLERANCE, 0},
+{ 63, 2255864064u, 3722025458u, 3192516074u, 1732245037u, 2255864064u, 3722025458u, 0, ASIN_TOLERANCE, 0},
+{ 64, 984980019u, 1533536108u, 3226159655u, 3412938290u, 984980019u, 1533536108u, 0, ASIN_TOLERANCE, 0},
+{ 65, 2302294008u, 3539403428u, 1044896671u, 2743023547u, 2302294008u, 3539403428u, 0, ASIN_TOLERANCE, 0},
+{ 66, 2437282418u, 965485575u, 1074677964u, 2239092099u, 2437282418u, 965485575u, 0, ASIN_TOLERANCE, 0},
+{ 67, 3161462367u, 479602785u, 3245398415u, 1570702137u, 3161462367u, 479602785u, 0, ASIN_TOLERANCE, 0},
+{ 68, 454239397u, 3987656554u, 3201134469u, 2639458165u, 454239397u, 3987656554u, 0, ASIN_TOLERANCE, 0},
+{ 69, 270690192u, 902270460u, 3200236493u, 2060263082u, 270690192u, 902270460u, 0, ASIN_TOLERANCE, 0},
+{ 70, 3101979469u, 119561873u, 1067242459u, 4238218095u, 3101979469u, 119561873u, 0, ASIN_TOLERANCE, 0},
+{ 71, 342005410u, 1489535917u, 1052674720u, 3229843554u, 342005410u, 1489535917u, 0, ASIN_TOLERANCE, 0},
+{ 72, 2431479818u, 1372780257u, 1087299442u, 2877794600u, 2431479818u, 1372780257u, 0, ASIN_TOLERANCE, 0},
+{ 73, 749807578u, 547642046u, 1068507828u, 2261901967u, 749807578u, 547642046u, 0, ASIN_TOLERANCE, 0},
+{ 74, 2886390034u, 2655610998u, 1063417350u, 3897975437u, 2886390034u, 2655610998u, 0, ASIN_TOLERANCE, 0},
+{ 75, 250812866u, 3444039742u, 3204905205u, 72985499u, 250812866u, 3444039742u, 0, ASIN_TOLERANCE, 0},
+{ 76, 2855285209u, 685471642u, 1052893000u, 3994091533u, 2855285209u, 685471642u, 0, ASIN_TOLERANCE, 0},
+{ 77, 438792265u, 3273039144u, 3234242951u, 2105125638u, 438792265u, 3273039144u, 0, ASIN_TOLERANCE, 0},
+{ 78, 2645727074u, 1149591862u, 1079300031u, 2852890893u, 2645727074u, 1149591862u, 0, ASIN_TOLERANCE, 0},
+{ 79, 2752966212u, 964007987u, 1089046728u, 3863233156u, 2752966212u, 964007987u, 0, ASIN_TOLERANCE, 0},
+{ 80, 512535166u, 27186676u, 1092292231u, 131338606u, 512535166u, 27186676u, 0, ASIN_TOLERANCE, 0},
+{ 81, 670177097u, 2614232599u, 3216359929u, 1186945904u, 670177097u, 2614232599u, 0, ASIN_TOLERANCE, 0},
+{ 82, 3154698801u, 1896750851u, 3253696392u, 920368431u, 3154698801u, 1896750851u, 0, ASIN_TOLERANCE, 0},
+{ 83, 2442691738u, 29704081u, 3253306050u, 1477489465u, 2442691738u, 29704081u, 0, ASIN_TOLERANCE, 0},
+{ 84, 2226625355u, 1908380994u, 1041152721u, 3015183476u, 2226625355u, 1908380994u, 0, ASIN_TOLERANCE, 0},
+{ 85, 681844560u, 470785250u, 3211309660u, 1296080311u, 681844560u, 470785250u, 0, ASIN_TOLERANCE, 0},
+{ 86, 3173267991u, 3766553196u, 1063117318u, 3703961407u, 3173267991u, 3766553196u, 0, ASIN_TOLERANCE, 0},
+{ 87, 2455017061u, 4149594176u, 1090202405u, 3293225914u, 2455017061u, 4149594176u, 0, ASIN_TOLERANCE, 0},
+{ 88, 313616459u, 77747397u, 3224848375u, 1095737976u, 313616459u, 77747397u, 0, ASIN_TOLERANCE, 0},
+{ 89, 3083383675u, 594138985u, 3217133121u, 1435082240u, 3083383675u, 594138985u, 0, ASIN_TOLERANCE, 0},
+{ 90, 2240663447u, 1803548147u, 3240157452u, 4122845725u, 2240663447u, 1803548147u, 0, ASIN_TOLERANCE, 0},
+{ 91, 692524862u, 311336721u, 1045850005u, 536548906u, 692524862u, 311336721u, 0, ASIN_TOLERANCE, 0},
+{ 92, 39331613u, 1667857221u, 1062792545u, 2329662186u, 39331613u, 1667857221u, 0, ASIN_TOLERANCE, 0},
+{ 93, 2957138228u, 1918705224u, 1059647808u, 2861487662u, 2957138228u, 1918705224u, 0, ASIN_TOLERANCE, 0},
+{ 94, 3070750532u, 3709104626u, 3220237199u, 997732637u, 3070750532u, 3709104626u, 0, ASIN_TOLERANCE, 0},
+{ 95, 2444448896u, 1774627130u, 3192826790u, 2597228841u, 2444448896u, 1774627130u, 0, ASIN_TOLERANCE, 0},
+{ 96, 702397604u, 2705552003u, 1041691115u, 3314033947u, 702397604u, 2705552003u, 0, ASIN_TOLERANCE, 0},
+{ 97, 2530979608u, 820086279u, 1085001393u, 3341643348u, 2530979608u, 820086279u, 0, ASIN_TOLERANCE, 0},
+{ 98, 481329467u, 3136820894u, 1093140313u, 4023285864u, 481329467u, 3136820894u, 0, ASIN_TOLERANCE, 0},
+{ 99, 2613158354u, 443835590u, 3197412883u, 166402802u, 2613158354u, 443835590u, 0, ASIN_TOLERANCE, 0},
+{ 100, 2939403391u, 3572369260u, 3225005050u, 1183942370u, 2939403391u, 3572369260u, 0, ASIN_TOLERANCE, 0},
+{ 101, 456836645u, 2446986142u, 1100226690u, 3561788365u, 456836645u, 2446986142u, 0, ASIN_TOLERANCE, 0},
+{ 102, 995574146u, 279968558u, 1056612692u, 605059609u, 995574146u, 279968558u, 0, ASIN_TOLERANCE, 0},
+{ 103, 2720425755u, 1360758659u, 1045149981u, 3634982365u, 2720425755u, 1360758659u, 0, ASIN_TOLERANCE, 0},
+{ 104, 219648965u, 4068690904u, 3212392076u, 3185930294u, 219648965u, 4068690904u, 0, ASIN_TOLERANCE, 0},
+{ 105, 245268713u, 1440185463u, 1067865294u, 2959231845u, 245268713u, 1440185463u, 0, ASIN_TOLERANCE, 0},
+{ 106, 3124081158u, 3352139409u, 3211602972u, 64439686u, 3124081158u, 3352139409u, 0, ASIN_TOLERANCE, 0},
+{ 107, 2799322658u, 1508169460u, 3213875925u, 3893561170u, 2799322658u, 1508169460u, 0, ASIN_TOLERANCE, 0},
+{ 108, 2966132661u, 146763905u, 1061635587u, 1173102190u, 2966132661u, 146763905u, 0, ASIN_TOLERANCE, 0},
+{ 109, 2950948333u, 2882725208u, 1046547680u, 3137609802u, 2950948333u, 2882725208u, 0, ASIN_TOLERANCE, 0},
+{ 110, 281607514u, 2987408195u, 1104831334u, 2360906919u, 281607514u, 2987408195u, 0, ASIN_TOLERANCE, 0},
+{ 111, 583237163u, 2272922429u, 3230247604u, 3220743043u, 583237163u, 2272922429u, 0, ASIN_TOLERANCE, 0},
+{ 112, 2279259017u, 486798710u, 1051847313u, 1164056378u, 2279259017u, 486798710u, 0, ASIN_TOLERANCE, 0},
+{ 113, 2707413568u, 14851197u, 3194383659u, 2622433447u, 2707413568u, 14851197u, 0, ASIN_TOLERANCE, 0},
+{ 114, 2729877535u, 1346176789u, 1059030682u, 1585821890u, 2729877535u, 1346176789u, 0, ASIN_TOLERANCE, 0},
+{ 115, 925396515u, 1008663444u, 3253626162u, 1058337847u, 925396515u, 1008663444u, 0, ASIN_TOLERANCE, 0},
+{ 116, 2213579028u, 3506658319u, 3219431539u, 543446309u, 2213579028u, 3506658319u, 0, ASIN_TOLERANCE, 0},
+{ 117, 3163196851u, 3413687955u, 1072253426u, 343404215u, 3163196851u, 3413687955u, 0, ASIN_TOLERANCE, 0},
+{ 118, 334409439u, 4266232536u, 3240608065u, 4109813813u, 334409439u, 4266232536u, 0, ASIN_TOLERANCE, 0},
+{ 119, 3177753519u, 1144242316u, 1071012025u, 2790944540u, 3177753519u, 1144242316u, 0, ASIN_TOLERANCE, 0},
+{ 120, 2754858880u, 265926617u, 1095794063u, 1345870736u, 2754858880u, 265926617u, 0, ASIN_TOLERANCE, 0},
+{ 121, 49590943u, 3193385121u, 1097323612u, 2009367488u, 49590943u, 3193385121u, 0, ASIN_TOLERANCE, 0},
+{ 122, 2389359641u, 1233370553u, 1064565351u, 322637795u, 2389359641u, 1233370553u, 0, ASIN_TOLERANCE, 0},
+{ 123, 954404777u, 3410634251u, 3243916607u, 4042570547u, 954404777u, 3410634251u, 0, ASIN_TOLERANCE, 0},
+{ 124, 2849680709u, 2524001714u, 1072116817u, 3983083207u, 2849680709u, 2524001714u, 0, ASIN_TOLERANCE, 0},
+{ 125, 959555327u, 3501343645u, 3237287213u, 1887353658u, 959555327u, 3501343645u, 0, ASIN_TOLERANCE, 0},
+{ 126, 2934409098u, 689800034u, 3246333414u, 2135700283u, 2934409098u, 689800034u, 0, ASIN_TOLERANCE, 0},
+{ 127, 263792941u, 4171919805u, 3238308636u, 3129081398u, 263792941u, 4171919805u, 0, ASIN_TOLERANCE, 0},
+{ 128, 926728083u, 1550999328u, 3219525990u, 2031663879u, 926728083u, 1550999328u, 0, ASIN_TOLERANCE, 0},
+{ 129, 2989628620u, 949669377u, 3226383614u, 3948448651u, 2989628620u, 949669377u, 0, ASIN_TOLERANCE, 0},
+{ 130, 2243494997u, 4293630712u, 1060526636u, 438407499u, 2243494997u, 4293630712u, 0, ASIN_TOLERANCE, 0},
+{ 131, 2756107420u, 1535381711u, 1054391309u, 4072415576u, 2756107420u, 1535381711u, 0, ASIN_TOLERANCE, 0},
+{ 132, 3025827769u, 1347758084u, 3238820771u, 1059069486u, 3025827769u, 1347758084u, 0, ASIN_TOLERANCE, 0},
+{ 133, 3294258u, 3498512759u, 1092903052u, 2047817298u, 3294258u, 3498512759u, 0, ASIN_TOLERANCE, 0},
+{ 134, 2919775476u, 1226560794u, 1069263873u, 685537815u, 2919775476u, 1226560794u, 0, ASIN_TOLERANCE, 0},
+{ 135, 982026620u, 4000990876u, 1076297936u, 3803689997u, 982026620u, 4000990876u, 0, ASIN_TOLERANCE, 0},
+{ 136, 499108416u, 2263729518u, 3254424928u, 3450332551u, 499108416u, 2263729518u, 0, ASIN_TOLERANCE, 0},
+{ 137, 347296393u, 1637536851u, 3238793417u, 747232103u, 347296393u, 1637536851u, 0, ASIN_TOLERANCE, 0},
+{ 138, 34763760u, 902498990u, 3205956257u, 245434170u, 34763760u, 902498990u, 0, ASIN_TOLERANCE, 0},
+{ 139, 3201690145u, 1482770161u, 3244873095u, 2292235133u, 3201690145u, 1482798226u, 0, ASIN_TOLERANCE, 0},
+{ 140, 2990655242u, 36045768u, 1071182448u, 3868790688u, 2990655242u, 36045768u, 0, ASIN_TOLERANCE, 0},
+{ 141, 3083340050u, 1885951730u, 3207806174u, 2553919637u, 3083340050u, 1885951730u, 0, ASIN_TOLERANCE, 0},
+{ 142, 2693238911u, 4059459408u, 1055146851u, 2731735627u, 2693238911u, 4059459408u, 0, ASIN_TOLERANCE, 0},
+{ 143, 2290935302u, 3819720014u, 3203031655u, 4218515595u, 2290935302u, 3819720014u, 0, ASIN_TOLERANCE, 0},
+{ 144, 2348280948u, 3038411370u, 3236511256u, 2472176453u, 2348280948u, 3038411370u, 0, ASIN_TOLERANCE, 0},
+{ 145, 2880785553u, 182132862u, 3252592387u, 1793714415u, 2880785553u, 182132862u, 0, ASIN_TOLERANCE, 0},
+{ 146, 2799656331u, 4227997622u, 1087681073u, 3265812129u, 2799656331u, 4227997622u, 0, ASIN_TOLERANCE, 0},
+{ 147, 801513493u, 1010183244u, 1091844280u, 675001864u, 801513493u, 1010183244u, 0, ASIN_TOLERANCE, 0},
+{ 148, 318478599u, 4193366103u, 1056610361u, 3831235255u, 318478599u, 4193366103u, 0, ASIN_TOLERANCE, 0},
+{ 149, 2378498000u, 465836562u, 3189131504u, 1330642846u, 2378498000u, 465836562u, 0, ASIN_TOLERANCE, 0},
+{ 150, 43741656u, 1192547728u, 1080448013u, 2251835756u, 43741656u, 1192547728u, 0, ASIN_TOLERANCE, 0},
+{ 151, 172875845u, 2123384287u, 3198090050u, 2528390848u, 172875845u, 2123384287u, 0, ASIN_TOLERANCE, 0},
+{ 152, 911443207u, 3964517760u, 3252496130u, 1755935266u, 911443207u, 3964517760u, 0, ASIN_TOLERANCE, 0},
+{ 153, 844811578u, 2753105123u, 3223721534u, 3995725873u, 844811578u, 2753105123u, 0, ASIN_TOLERANCE, 0},
+{ 154, 151452687u, 777231627u, 1042074674u, 36182517u, 151452687u, 777231627u, 0, ASIN_TOLERANCE, 0},
+{ 155, 3158956730u, 3937520057u, 3230206414u, 1507556284u, 3158956730u, 3937520057u, 0, ASIN_TOLERANCE, 0},
+{ 156, 910363913u, 1910829179u, 1052726418u, 90890556u, 910363913u, 1910829179u, 0, ASIN_TOLERANCE, 0},
+{ 157, 3107838682u, 1962827704u, 1080960105u, 1706263669u, 3107838682u, 1962827704u, 0, ASIN_TOLERANCE, 0},
+{ 158, 2177675826u, 3863498922u, 1084020789u, 2439263794u, 2177675826u, 3863498922u, 0, ASIN_TOLERANCE, 0},
+{ 159, 2909835385u, 2329801749u, 1098707350u, 2852802137u, 2909835385u, 2329801749u, 0, ASIN_TOLERANCE, 0},
+{ 160, 2979393160u, 3548991905u, 3213586763u, 3269946829u, 2979393160u, 3548991905u, 0, ASIN_TOLERANCE, 0},
+{ 161, 790744031u, 2009174302u, 1097495331u, 312449728u, 790744031u, 2009174302u, 0, ASIN_TOLERANCE, 0},
+{ 162, 2160628293u, 648730712u, 3246307879u, 4265764460u, 2160628293u, 648730712u, 0, ASIN_TOLERANCE, 0},
+{ 163, 1000831562u, 366653268u, 1051541874u, 1478215551u, 1000831562u, 366653268u, 0, ASIN_TOLERANCE, 0},
+{ 164, 2470023790u, 2605647918u, 1042539011u, 969681033u, 2470023790u, 2605647918u, 0, ASIN_TOLERANCE, 0},
+{ 165, 2322196276u, 1909222641u, 1092825252u, 3029685419u, 2322196276u, 1909222641u, 0, ASIN_TOLERANCE, 0},
+{ 166, 3159166635u, 1128432313u, 3200082887u, 2582838060u, 3159166635u, 1128432313u, 0, ASIN_TOLERANCE, 0},
+{ 167, 2525309230u, 546560372u, 1070003814u, 2343707656u, 2525309230u, 546560372u, 0, ASIN_TOLERANCE, 0},
+{ 168, 849110626u, 309618405u, 3246395018u, 3002005209u, 849110626u, 309618405u, 0, ASIN_TOLERANCE, 0},
+{ 169, 2706804529u, 3151760818u, 3196548461u, 1969485838u, 2706804529u, 3151760818u, 0, ASIN_TOLERANCE, 0},
+{ 170, 639469972u, 3667631361u, 3196181592u, 3743448274u, 639469972u, 3667631361u, 0, ASIN_TOLERANCE, 0},
+{ 171, 2658009958u, 3097521578u, 3216630070u, 1141349287u, 2658009958u, 3097521578u, 0, ASIN_TOLERANCE, 0},
+{ 172, 918158805u, 3403438584u, 3208257181u, 2221276438u, 918158805u, 3403438584u, 0, ASIN_TOLERANCE, 0},
+{ 173, 2401852086u, 1683102397u, 3250341256u, 108768173u, 2401852086u, 1683102397u, 0, ASIN_TOLERANCE, 0},
+{ 174, 2343899229u, 564813835u, 1064153550u, 3058531228u, 2343899229u, 564813835u, 0, ASIN_TOLERANCE, 0},
+{ 175, 2813220880u, 131949913u, 1090262840u, 2146798879u, 2813220880u, 131949913u, 0, ASIN_TOLERANCE, 0},
+{ 176, 2465897203u, 1934391255u, 3188783235u, 1341236714u, 2465897203u, 1934391255u, 0, ASIN_TOLERANCE, 0},
+{ 177, 1070130951u, 418478585u, 3248733961u, 5029000u, 1070141425u, 3058489590u, 0, ASIN_TOLERANCE, 0},
+{ 178, 453997460u, 2676092597u, 1105486693u, 1833595891u, 453997460u, 2676092597u, 0, ASIN_TOLERANCE, 0},
+{ 179, 522042376u, 1030769844u, 1071155175u, 2766628533u, 522042376u, 1030769844u, 0, ASIN_TOLERANCE, 0},
+{ 180, 2635141434u, 1153943376u, 3209762784u, 953839852u, 2635141434u, 1153943376u, 0, ASIN_TOLERANCE, 0},
+{ 181, 1029467775u, 143071571u, 1050966579u, 2318822594u, 1029467775u, 143071571u, 0, ASIN_TOLERANCE, 0},
+{ 182, 287910954u, 1347533411u, 3242337825u, 3256720041u, 287910954u, 1347533411u, 0, ASIN_TOLERANCE, 0},
+{ 183, 444067826u, 1840809642u, 1105293543u, 639604076u, 444067826u, 1840809642u, 0, ASIN_TOLERANCE, 0},
+{ 184, 37282545u, 113530717u, 3194758036u, 699784099u, 37282545u, 113530717u, 0, ASIN_TOLERANCE, 0},
+{ 185, 435549826u, 2950098243u, 1061587493u, 3565445501u, 435549826u, 2950098243u, 0, ASIN_TOLERANCE, 0},
+{ 186, 2385974507u, 2103316697u, 1076082218u, 4043789060u, 2385974507u, 2103316697u, 0, ASIN_TOLERANCE, 0},
+{ 187, 811546601u, 1521715421u, 3251785075u, 651105558u, 811546601u, 1521715421u, 0, ASIN_TOLERANCE, 0},
+{ 188, 491306771u, 2545467538u, 3213898932u, 3889824094u, 491306771u, 2545467538u, 0, ASIN_TOLERANCE, 0},
+{ 189, 503065027u, 4133138143u, 3246676260u, 2160225215u, 503065027u, 4133138143u, 0, ASIN_TOLERANCE, 0},
+{ 190, 994621531u, 836655570u, 3245194924u, 2865254908u, 994621531u, 836655570u, 0, ASIN_TOLERANCE, 0},
+{ 191, 2309344440u, 1678396836u, 3226762726u, 424413376u, 2309344440u, 1678396836u, 0, ASIN_TOLERANCE, 0},
+{ 192, 2164934365u, 2155776900u, 3222643433u, 2889736031u, 2164934365u, 2155776900u, 0, ASIN_TOLERANCE, 0},
+{ 193, 3003862757u, 33676353u, 1090754016u, 4128530794u, 3003862757u, 33676353u, 0, ASIN_TOLERANCE, 0},
+{ 194, 2386204171u, 3176672093u, 1052578754u, 2282864811u, 2386204171u, 3176672093u, 0, ASIN_TOLERANCE, 0},
+{ 195, 446288958u, 2747259961u, 1103923331u, 1909074501u, 446288958u, 2747259961u, 0, ASIN_TOLERANCE, 0},
+{ 196, 3119895314u, 482497137u, 3223384022u, 3259766501u, 3119895314u, 482497137u, 0, ASIN_TOLERANCE, 0},
+{ 197, 2460401984u, 1710626079u, 3222593534u, 834878686u, 2460401984u, 1710626079u, 0, ASIN_TOLERANCE, 0},
+{ 198, 3041977808u, 4271421721u, 1047020885u, 1742757458u, 3041977808u, 4271421721u, 0, ASIN_TOLERANCE, 0},
+{ 199, 2215391645u, 1265459564u, 1080678447u, 685348463u, 2215391645u, 1265459564u, 0, ASIN_TOLERANCE, 0},
+{ 200, 2688170568u, 4066044320u, 1054128905u, 376413109u, 2688170568u, 4066044320u, 0, ASIN_TOLERANCE, 0},
+{ 201, 716821218u, 3237497681u, 3242751645u, 260260645u, 716821218u, 3237497681u, 0, ASIN_TOLERANCE, 0},
+{ 202, 2385659123u, 2882820086u, 1085407846u, 2301658312u, 2385659123u, 2882820086u, 0, ASIN_TOLERANCE, 0},
+{ 203, 420514989u, 3656359254u, 3203021744u, 2817965308u, 420514989u, 3656359254u, 0, ASIN_TOLERANCE, 0},
+{ 204, 2841879402u, 2859722465u, 3197490752u, 3892072777u, 2841879402u, 2859722465u, 0, ASIN_TOLERANCE, 0},
+{ 205, 2665431021u, 2538156443u, 3215734057u, 831239754u, 2665431021u, 2538156443u, 0, ASIN_TOLERANCE, 0},
+{ 206, 953028035u, 3071308141u, 3231671892u, 30345936u, 953028035u, 3071308141u, 0, ASIN_TOLERANCE, 0},
+{ 207, 2210978501u, 3595439756u, 3214985609u, 739408315u, 2210978501u, 3595439756u, 0, ASIN_TOLERANCE, 0},
+{ 208, 3029757061u, 3298589427u, 3196131526u, 2084665197u, 3029757061u, 3298589427u, 0, ASIN_TOLERANCE, 0},
+{ 209, 2823345962u, 3955601456u, 1076543910u, 3304852042u, 2823345962u, 3955601456u, 0, ASIN_TOLERANCE, 0},
+{ 210, 640515933u, 2419975459u, 1073769087u, 1988016581u, 640515933u, 2419975459u, 0, ASIN_TOLERANCE, 0},
+{ 211, 2453833475u, 2659973204u, 3216007439u, 2731594173u, 2453833475u, 2659973204u, 0, ASIN_TOLERANCE, 0},
+{ 212, 697318369u, 3938264868u, 1062532020u, 2975148216u, 697318369u, 3938264868u, 0, ASIN_TOLERANCE, 0},
+{ 213, 225366869u, 453215326u, 3200044385u, 467903731u, 225366869u, 453215326u, 0, ASIN_TOLERANCE, 0},
+{ 214, 499614828u, 372130653u, 3235313361u, 3772501596u, 499614828u, 372130653u, 0, ASIN_TOLERANCE, 0},
+{ 215, 2298173054u, 2406734491u, 1099766912u, 3221574013u, 2298173054u, 2406734491u, 0, ASIN_TOLERANCE, 0},
+{ 216, 211434314u, 2841672781u, 3228298587u, 2623399873u, 211434314u, 2841672781u, 0, ASIN_TOLERANCE, 0},
+{ 217, 2562278951u, 2034292219u, 3248774822u, 699680428u, 2562278951u, 2034292219u, 0, ASIN_TOLERANCE, 0},
+{ 218, 1030621435u, 1386943632u, 1088782030u, 3724905992u, 1030621435u, 1386943632u, 0, ASIN_TOLERANCE, 0},
+{ 219, 217306301u, 1495300013u, 3240548807u, 1518804038u, 217306301u, 1495300013u, 0, ASIN_TOLERANCE, 0},
+{ 220, 362076244u, 3050489517u, 1049468975u, 2940604216u, 362076244u, 3050489517u, 0, ASIN_TOLERANCE, 0},
+{ 221, 516072020u, 387594449u, 3238538261u, 3010872301u, 516072020u, 387594449u, 0, ASIN_TOLERANCE, 0},
+{ 222, 2417270868u, 1683571756u, 1098214271u, 3243467912u, 2417270868u, 1683571756u, 0, ASIN_TOLERANCE, 0},
+{ 223, 2453871840u, 547789874u, 1074621795u, 671680995u, 2453871840u, 547789874u, 0, ASIN_TOLERANCE, 0},
+{ 224, 819681449u, 2315535361u, 1076278343u, 3851723081u, 819681449u, 2315535361u, 0, ASIN_TOLERANCE, 0},
+{ 225, 925396663u, 2690952636u, 3195785827u, 1648844317u, 925396663u, 2690952636u, 0, ASIN_TOLERANCE, 0},
+{ 226, 835916575u, 2105507379u, 1060210356u, 2061848524u, 835916575u, 2105507379u, 0, ASIN_TOLERANCE, 0},
+{ 227, 2882329693u, 1771437899u, 1102743884u, 4195142780u, 2882329693u, 1771437899u, 0, ASIN_TOLERANCE, 0},
+{ 228, 547945591u, 1310074754u, 1072476006u, 1313198415u, 547945591u, 1310074754u, 0, ASIN_TOLERANCE, 0},
+{ 229, 979656894u, 3914592621u, 3228159980u, 2457917034u, 979656894u, 3914592621u, 0, ASIN_TOLERANCE, 0},
+{ 230, 2718226491u, 2240965174u, 3236288087u, 3605857252u, 2718226491u, 2240965174u, 0, ASIN_TOLERANCE, 0},
+{ 231, 41761399u, 196714912u, 1054040628u, 3084755276u, 41761399u, 196714912u, 0, ASIN_TOLERANCE, 0},
+{ 232, 2665587864u, 2058851477u, 1052873711u, 1233598120u, 2665587864u, 2058851477u, 0, ASIN_TOLERANCE, 0},
+{ 233, 101299669u, 1909994277u, 3220384775u, 2863812374u, 101299669u, 1909994277u, 0, ASIN_TOLERANCE, 0},
+{ 234, 532015965u, 3697551156u, 1083211400u, 2869735287u, 532015965u, 3697551156u, 0, ASIN_TOLERANCE, 0},
+{ 235, 2830857894u, 2697221770u, 1092525956u, 2160271449u, 2830857894u, 2697221770u, 0, ASIN_TOLERANCE, 0},
+{ 236, 230734239u, 2762796844u, 1059257507u, 3160137573u, 230734239u, 2762796844u, 0, ASIN_TOLERANCE, 0},
+{ 237, 247044829u, 1758968847u, 1101109420u, 3270770898u, 247044829u, 1758968847u, 0, ASIN_TOLERANCE, 0},
+{ 238, 73012604u, 4005141897u, 3216213297u, 4129052985u, 73012604u, 4005141897u, 0, ASIN_TOLERANCE, 0},
+{ 239, 2970233606u, 137758261u, 1060349030u, 3082136857u, 2970233606u, 137758261u, 0, ASIN_TOLERANCE, 0},
+{ 240, 1068792039u, 2371653203u, 3211892131u, 3951914469u, 1068793473u, 3098305686u, 0, ASIN_TOLERANCE, 0},
+{ 241, 3109437504u, 3213595557u, 1043958672u, 2986160931u, 3109437504u, 3213595557u, 0, ASIN_TOLERANCE, 0},
+{ 242, 575927156u, 2540046258u, 3208370548u, 2048583911u, 575927156u, 2540046258u, 0, ASIN_TOLERANCE, 0},
+{ 243, 546830286u, 2264504930u, 3228769528u, 1854181735u, 546830286u, 2264504930u, 0, ASIN_TOLERANCE, 0},
+{ 244, 2183016286u, 3809768956u, 1054933586u, 595351688u, 2183016286u, 3809768956u, 0, ASIN_TOLERANCE, 0},
+{ 245, 723947614u, 3071069520u, 3207129696u, 3120974660u, 723947614u, 3071069520u, 0, ASIN_TOLERANCE, 0},
+{ 246, 945283056u, 1952618732u, 3236532520u, 1540955277u, 945283056u, 1952618732u, 0, ASIN_TOLERANCE, 0},
+{ 247, 747620529u, 1438803217u, 1049266525u, 957676449u, 747620529u, 1438803217u, 0, ASIN_TOLERANCE, 0},
+{ 248, 92767291u, 4222295662u, 1076131984u, 2183319069u, 92767291u, 4222295662u, 0, ASIN_TOLERANCE, 0},
+{ 249, 334611718u, 3887074118u, 3191649564u, 3233378721u, 334611718u, 3887074118u, 0, ASIN_TOLERANCE, 0},
+{ 250, 771768198u, 2099099488u, 3222430705u, 2071674991u, 771768198u, 2099099488u, 0, ASIN_TOLERANCE, 0},
+{ 251, 2409204087u, 2295269094u, 3196265320u, 3987032629u, 2409204087u, 2295269094u, 0, ASIN_TOLERANCE, 0},
+{ 252, 2377503648u, 4200095882u, 1086809994u, 1339996745u, 2377503648u, 4200095882u, 0, ASIN_TOLERANCE, 0},
+{ 253, 797809565u, 2431996507u, 1102017594u, 242934189u, 797809565u, 2431996507u, 0, ASIN_TOLERANCE, 0},
+{ 254, 2312749311u, 2330084417u, 1043172813u, 4043102110u, 2312749311u, 2330084417u, 0, ASIN_TOLERANCE, 0},
+{ 255, 988771849u, 1106978707u, 1082509751u, 2520765777u, 988771849u, 1106978707u, 0, ASIN_TOLERANCE, 0},
+{ 256, 864960887u, 3192168224u, 1066340820u, 3603945646u, 864960887u, 3192168224u, 0, ASIN_TOLERANCE, 0},
+{ 257, 2589695756u, 1952396835u, 3199434577u, 3703639356u, 2589695756u, 1952396835u, 0, ASIN_TOLERANCE, 0},
+{ 258, 320682810u, 1198219673u, 3230438668u, 2418060633u, 320682810u, 1198219673u, 0, ASIN_TOLERANCE, 0},
+{ 259, 551093026u, 2638353760u, 1093840413u, 1751560711u, 551093026u, 2638353760u, 0, ASIN_TOLERANCE, 0},
+{ 260, 540797521u, 180987057u, 1085420898u, 530063370u, 540797521u, 180987057u, 0, ASIN_TOLERANCE, 0},
+{ 261, 2760303516u, 3179145654u, 1048020008u, 3061407249u, 2760303516u, 3179145654u, 0, ASIN_TOLERANCE, 0},
+{ 262, 162525363u, 1884787302u, 1068713554u, 1737020797u, 162525363u, 1884787302u, 0, ASIN_TOLERANCE, 0},
+{ 263, 214216231u, 3459566012u, 3251200938u, 4126298722u, 214216231u, 3459566012u, 0, ASIN_TOLERANCE, 0},
+{ 264, 2764328342u, 1036370112u, 3235918644u, 3898933279u, 2764328342u, 1036370112u, 0, ASIN_TOLERANCE, 0},
+{ 265, 653867113u, 3276084832u, 3189072211u, 1864601262u, 653867113u, 3276084832u, 0, ASIN_TOLERANCE, 0},
+{ 266, 298324788u, 263075055u, 1100754245u, 1667825741u, 298324788u, 263075055u, 0, ASIN_TOLERANCE, 0},
+{ 267, 3015536039u, 2387220960u, 3253010819u, 3505575323u, 3015536039u, 2387220960u, 0, ASIN_TOLERANCE, 0},
+{ 268, 642739166u, 3154304623u, 1063475914u, 3150741666u, 642739166u, 3154304623u, 0, ASIN_TOLERANCE, 0},
+{ 269, 332025563u, 4200269406u, 3194288972u, 3577694711u, 332025563u, 4200269406u, 0, ASIN_TOLERANCE, 0},
+{ 270, 2339885777u, 2064011737u, 1089860833u, 3657008595u, 2339885777u, 2064011737u, 0, ASIN_TOLERANCE, 0},
+{ 271, 842190281u, 210665237u, 3197168874u, 510714829u, 842190281u, 210665237u, 0, ASIN_TOLERANCE, 0},
+{ 272, 728283504u, 1589701259u, 3251310843u, 17001602u, 728283504u, 1589701259u, 0, ASIN_TOLERANCE, 0},
+{ 273, 975043445u, 2928317152u, 3246958541u, 122162205u, 975043445u, 2928317152u, 0, ASIN_TOLERANCE, 0},
+{ 274, 3101610657u, 1288582346u, 1071556960u, 4177188454u, 3101610657u, 1288582346u, 0, ASIN_TOLERANCE, 0},
+{ 275, 151289169u, 3962848462u, 3243017171u, 3661038757u, 151289169u, 3962848462u, 0, ASIN_TOLERANCE, 0},
+{ 276, 2755192415u, 2162985241u, 3226640955u, 1639319068u, 2755192415u, 2162985241u, 0, ASIN_TOLERANCE, 0},
+{ 277, 2942384609u, 1996676305u, 1099130747u, 3840380763u, 2942384609u, 1996676305u, 0, ASIN_TOLERANCE, 0},
+{ 278, 134315769u, 550040067u, 3241901241u, 3372594924u, 134315769u, 550040067u, 0, ASIN_TOLERANCE, 0},
+{ 279, 3137373248u, 3164451169u, 1076627605u, 317246751u, 3137373248u, 3164451169u, 0, ASIN_TOLERANCE, 0},
+{ 280, 2423768299u, 784217153u, 1066058157u, 1225003160u, 2423768299u, 784217153u, 0, ASIN_TOLERANCE, 0},
+{ 281, 2378706924u, 1715871558u, 1101460352u, 3401958038u, 2378706924u, 1715871558u, 0, ASIN_TOLERANCE, 0},
+{ 282, 363631767u, 4086269531u, 1102279679u, 2517481591u, 363631767u, 4086269531u, 0, ASIN_TOLERANCE, 0},
+{ 283, 2329360168u, 2624677381u, 1085107111u, 1970804718u, 2329360168u, 2624677381u, 0, ASIN_TOLERANCE, 0},
+{ 284, 1010793546u, 3379532114u, 3249898830u, 3723025783u, 1010793546u, 3379532114u, 0, ASIN_TOLERANCE, 0},
+{ 285, 999588552u, 2651435439u, 3229039621u, 1030985387u, 999588552u, 2651435439u, 0, ASIN_TOLERANCE, 0},
+{ 286, 3145033808u, 1199535056u, 1077836259u, 3604666660u, 3145033808u, 1199535056u, 0, ASIN_TOLERANCE, 0},
+{ 287, 2548507371u, 3115209742u, 3237451386u, 3863935859u, 2548507371u, 3115209742u, 0, ASIN_TOLERANCE, 0},
+{ 288, 2398143146u, 4209496277u, 3199416183u, 1216202995u, 2398143146u, 4209496277u, 0, ASIN_TOLERANCE, 0},
+{ 289, 614398964u, 2544695332u, 3210577461u, 596332114u, 614398964u, 2544695332u, 0, ASIN_TOLERANCE, 0},
+{ 290, 514278395u, 1338323803u, 1041925718u, 99526924u, 514278395u, 1338323803u, 0, ASIN_TOLERANCE, 0},
+{ 291, 856573491u, 3149653097u, 1103058665u, 2483495776u, 856573491u, 3149653097u, 0, ASIN_TOLERANCE, 0},
+{ 292, 2339743312u, 280536835u, 1044395245u, 3715707641u, 2339743312u, 280536835u, 0, ASIN_TOLERANCE, 0},
+{ 293, 128894757u, 3670016377u, 1050809029u, 3775007802u, 128894757u, 3670016377u, 0, ASIN_TOLERANCE, 0},
+{ 294, 3109073100u, 3526859225u, 3222673081u, 4030462447u, 3109073100u, 3526859225u, 0, ASIN_TOLERANCE, 0},
+{ 295, 640779949u, 1602527268u, 3242467576u, 2018361566u, 640779949u, 1602527268u, 0, ASIN_TOLERANCE, 0},
+{ 296, 957271688u, 3985805054u, 1088518381u, 1679321540u, 957271688u, 3985805054u, 0, ASIN_TOLERANCE, 0},
+{ 297, 2801498828u, 1663896708u, 3248819198u, 4229852270u, 2801498828u, 1663896708u, 0, ASIN_TOLERANCE, 0},
+{ 298, 467728155u, 2346627527u, 3239438934u, 2290493820u, 467728155u, 2346627527u, 0, ASIN_TOLERANCE, 0},
+{ 299, 2208629720u, 2296736794u, 3207683799u, 1456667044u, 2208629720u, 2296736794u, 0, ASIN_TOLERANCE, 0},
+{ 300, 2958022504u, 4132454009u, 1106540396u, 4243490703u, 2958022504u, 4132454009u, 0, ASIN_TOLERANCE, 0},
+{ 301, 235395447u, 1359445676u, 3190130903u, 1569883678u, 235395447u, 1359445676u, 0, ASIN_TOLERANCE, 0},
+{ 302, 277859320u, 333214083u, 1076552006u, 1385185236u, 277859320u, 333214083u, 0, ASIN_TOLERANCE, 0},
+{ 303, 2942645471u, 950097945u, 1041232546u, 3621700966u, 2942645471u, 950097945u, 0, ASIN_TOLERANCE, 0},
+{ 304, 370898672u, 149336372u, 3191764868u, 2940199511u, 370898672u, 149336372u, 0, ASIN_TOLERANCE, 0},
+{ 305, 2384610875u, 2875684421u, 3249377056u, 4253432396u, 2384610875u, 2875684421u, 0, ASIN_TOLERANCE, 0},
+{ 306, 837504978u, 2081484836u, 3199314748u, 2264912911u, 837504978u, 2081484836u, 0, ASIN_TOLERANCE, 0},
+{ 307, 632882934u, 3967859615u, 3229710481u, 2667348142u, 632882934u, 3967859615u, 0, ASIN_TOLERANCE, 0},
+{ 308, 2181979516u, 3630082248u, 3227364534u, 4156569147u, 2181979516u, 3630082248u, 0, ASIN_TOLERANCE, 0},
+{ 309, 946956756u, 2993509124u, 1091331299u, 4018898246u, 946956756u, 2993509124u, 0, ASIN_TOLERANCE, 0},
+{ 310, 338207615u, 1642285349u, 3208379731u, 1196091123u, 338207615u, 1642285349u, 0, ASIN_TOLERANCE, 0},
+{ 311, 4693283u, 3356597889u, 1040231079u, 2420753479u, 4693283u, 3356597889u, 0, ASIN_TOLERANCE, 0},
+{ 312, 2762118529u, 977967943u, 3228887283u, 807395730u, 2762118529u, 977967943u, 0, ASIN_TOLERANCE, 0},
+{ 313, 2919435607u, 2730725979u, 3207120390u, 3867917386u, 2919435607u, 2730725979u, 0, ASIN_TOLERANCE, 0},
+{ 314, 999294480u, 3504746045u, 1075794770u, 665882260u, 999294480u, 3504746045u, 0, ASIN_TOLERANCE, 0},
+{ 315, 2269075155u, 3385464702u, 1049896268u, 2757059958u, 2269075155u, 3385464702u, 0, ASIN_TOLERANCE, 0},
+{ 316, 536095951u, 1299923384u, 1101872081u, 2574386817u, 536095951u, 1299923384u, 0, ASIN_TOLERANCE, 0},
+{ 317, 2675071145u, 3171042375u, 1078533152u, 2312086600u, 2675071145u, 3171042375u, 0, ASIN_TOLERANCE, 0},
+{ 318, 2360735442u, 4236561530u, 1068042271u, 256515531u, 2360735442u, 4236561530u, 0, ASIN_TOLERANCE, 0},
+{ 319, 2609926553u, 4152554926u, 1100304772u, 3545562886u, 2609926553u, 4152554926u, 0, ASIN_TOLERANCE, 0},
+{ 320, 2403546570u, 350924105u, 1040286251u, 1468770658u, 2403546570u, 350924105u, 0, ASIN_TOLERANCE, 0},
+{ 321, 544551146u, 3000822699u, 3232925779u, 2540988650u, 544551146u, 3000822699u, 0, ASIN_TOLERANCE, 0},
+{ 322, 2780107631u, 2928199244u, 3245167989u, 44275991u, 2780107631u, 2928199244u, 0, ASIN_TOLERANCE, 0},
+{ 323, 2165210001u, 1174874204u, 1057110584u, 848081004u, 2165210001u, 1174874204u, 0, ASIN_TOLERANCE, 0},
+{ 324, 2354568060u, 1412948540u, 3239110676u, 3215002775u, 2354568060u, 1412948540u, 0, ASIN_TOLERANCE, 0},
+{ 325, 863277892u, 2701562677u, 1065879622u, 2897481417u, 863277892u, 2701562677u, 0, ASIN_TOLERANCE, 0},
+{ 326, 199312991u, 2980401690u, 3216742908u, 2549609731u, 199312991u, 2980401690u, 0, ASIN_TOLERANCE, 0},
+{ 327, 2827983212u, 585456984u, 3201746087u, 638714580u, 2827983212u, 585456984u, 0, ASIN_TOLERANCE, 0},
+{ 328, 575008531u, 4260896505u, 1089137884u, 4274648992u, 575008531u, 4260896505u, 0, ASIN_TOLERANCE, 0},
+{ 329, 2728904219u, 4055046173u, 3198391736u, 3482894513u, 2728904219u, 4055046173u, 0, ASIN_TOLERANCE, 0},
+{ 330, 341009704u, 2493198836u, 3198094528u, 2484800635u, 341009704u, 2493198836u, 0, ASIN_TOLERANCE, 0},
+{ 331, 3153287889u, 599921010u, 1103847606u, 1674254897u, 3153287889u, 599921010u, 0, ASIN_TOLERANCE, 0},
+{ 332, 104926329u, 217148561u, 1097066495u, 3536010689u, 104926329u, 217148561u, 0, ASIN_TOLERANCE, 0},
+{ 333, 933395812u, 1605519917u, 3225218243u, 2732577078u, 933395812u, 1605519917u, 0, ASIN_TOLERANCE, 0},
+{ 334, 573219110u, 417261654u, 3246267157u, 3401343872u, 573219110u, 417261654u, 0, ASIN_TOLERANCE, 0},
+{ 335, 1039272770u, 2150330697u, 1080405602u, 3197535445u, 1039272770u, 2150330697u, 0, ASIN_TOLERANCE, 0},
+{ 336, 1065739247u, 2334624779u, 1070288136u, 147709079u, 1065739274u, 3700895036u, 0, ASIN_TOLERANCE, 0},
+{ 337, 3178645135u, 665848401u, 3235013045u, 2195099382u, 3178645135u, 665848401u, 0, ASIN_TOLERANCE, 0},
+{ 338, 364316788u, 238721142u, 3238780023u, 2612316049u, 364316788u, 238721142u, 0, ASIN_TOLERANCE, 0},
+{ 339, 2974180417u, 328119069u, 3231550903u, 696220816u, 2974180417u, 328119069u, 0, ASIN_TOLERANCE, 0},
+{ 340, 649641437u, 2886210843u, 1055433962u, 3331415058u, 649641437u, 2886210843u, 0, ASIN_TOLERANCE, 0},
+{ 341, 335135121u, 2420250111u, 3214614526u, 510850312u, 335135121u, 2420250111u, 0, ASIN_TOLERANCE, 0},
+{ 342, 2216193203u, 1658541647u, 1071956366u, 53496813u, 2216193203u, 1658541647u, 0, ASIN_TOLERANCE, 0},
+{ 343, 2567194005u, 3872563165u, 1098494887u, 2790313039u, 2567194005u, 3872563165u, 0, ASIN_TOLERANCE, 0},
+{ 344, 3219733872u, 3859621368u, 3205775949u, 4015749711u, 3219985579u, 1133459795u, 0, ASIN_TOLERANCE, 0},
+{ 345, 311334852u, 1732769560u, 1052132915u, 2774541952u, 311334852u, 1732769560u, 0, ASIN_TOLERANCE, 0},
+{ 346, 317917675u, 1689088021u, 1066883290u, 3270546122u, 317917675u, 1689088021u, 0, ASIN_TOLERANCE, 0},
+{ 347, 491335395u, 1959705843u, 1106618962u, 4198868105u, 491335395u, 1959705843u, 0, ASIN_TOLERANCE, 0},
+{ 348, 124503353u, 3906315805u, 3235289682u, 1109820549u, 124503353u, 3906315805u, 0, ASIN_TOLERANCE, 0},
+{ 349, 3036818075u, 3370448446u, 1063890856u, 4022784584u, 3036818075u, 3370448446u, 0, ASIN_TOLERANCE, 0},
+{ 350, 323334929u, 3264056381u, 1104622566u, 3697934821u, 323334929u, 3264056381u, 0, ASIN_TOLERANCE, 0},
+{ 351, 82666680u, 2912871781u, 3242116859u, 1560571600u, 82666680u, 2912871781u, 0, ASIN_TOLERANCE, 0},
+{ 352, 2776916990u, 3103325650u, 3237224234u, 3681651958u, 2776916990u, 3103325650u, 0, ASIN_TOLERANCE, 0},
+{ 353, 333678608u, 3330581237u, 1086856468u, 3110345659u, 333678608u, 3330581237u, 0, ASIN_TOLERANCE, 0},
+{ 354, 2487169180u, 2478706589u, 1099546513u, 4177071445u, 2487169180u, 2478706589u, 0, ASIN_TOLERANCE, 0},
+{ 355, 3183204741u, 3514067221u, 3247338343u, 585148435u, 3183204741u, 3514067221u, 0, ASIN_TOLERANCE, 0},
+{ 356, 2811486197u, 3689342853u, 3208758774u, 200507809u, 2811486197u, 3689342853u, 0, ASIN_TOLERANCE, 0},
+{ 357, 3116462959u, 1049872171u, 3210445232u, 1453705582u, 3116462959u, 1049872171u, 0, ASIN_TOLERANCE, 0},
+{ 358, 3129943472u, 1932668626u, 1098808013u, 1044068983u, 3129943472u, 1932668626u, 0, ASIN_TOLERANCE, 0},
+{ 359, 2295964401u, 4093388677u, 3210795947u, 1617393713u, 2295964401u, 4093388677u, 0, ASIN_TOLERANCE, 0},
+{ 360, 2293016564u, 778812087u, 3246232571u, 731905539u, 2293016564u, 778812087u, 0, ASIN_TOLERANCE, 0},
+{ 361, 2907822649u, 4050829759u, 1086605180u, 1863848117u, 2907822649u, 4050829759u, 0, ASIN_TOLERANCE, 0},
+{ 362, 6647363u, 718161191u, 1071063889u, 2637291484u, 6647363u, 718161191u, 0, ASIN_TOLERANCE, 0},
+{ 363, 224521970u, 1909842364u, 1102747575u, 3614304657u, 224521970u, 1909842364u, 0, ASIN_TOLERANCE, 0},
+{ 364, 761500166u, 895493977u, 3236485375u, 1701194116u, 761500166u, 895493977u, 0, ASIN_TOLERANCE, 0},
+{ 365, 2171563276u, 1493115846u, 3233339987u, 296022762u, 2171563276u, 1493115846u, 0, ASIN_TOLERANCE, 0},
+{ 366, 2783624899u, 4099447408u, 3187790416u, 3564720305u, 2783624899u, 4099447408u, 0, ASIN_TOLERANCE, 0},
+{ 367, 848425142u, 2404172709u, 3219922640u, 2284484846u, 848425142u, 2404172709u, 0, ASIN_TOLERANCE, 0},
+{ 368, 2654315895u, 3240896015u, 3208621510u, 1226668421u, 2654315895u, 3240896015u, 0, ASIN_TOLERANCE, 0},
+{ 369, 2488218361u, 4127752456u, 3200753143u, 2161953369u, 2488218361u, 4127752456u, 0, ASIN_TOLERANCE, 0},
+{ 370, 489605006u, 1168774591u, 3191311819u, 2375467787u, 489605006u, 1168774591u, 0, ASIN_TOLERANCE, 0},
+{ 371, 347845914u, 2883145553u, 3234998320u, 3286468014u, 347845914u, 2883145553u, 0, ASIN_TOLERANCE, 0},
+{ 372, 2588007471u, 3007671464u, 1102234703u, 1209628408u, 2588007471u, 3007671464u, 0, ASIN_TOLERANCE, 0},
+{ 373, 127334109u, 571692916u, 3243349276u, 1910625797u, 127334109u, 571692916u, 0, ASIN_TOLERANCE, 0},
+{ 374, 524138712u, 2510184860u, 1089525631u, 2209639467u, 524138712u, 2510184860u, 0, ASIN_TOLERANCE, 0},
+{ 375, 2615466346u, 1945605229u, 3227105252u, 3777119615u, 2615466346u, 1945605229u, 0, ASIN_TOLERANCE, 0},
+{ 376, 398493829u, 215226593u, 3235434773u, 224271737u, 398493829u, 215226593u, 0, ASIN_TOLERANCE, 0},
+{ 377, 2242993828u, 2134662911u, 1080232319u, 1056746021u, 2242993828u, 2134662911u, 0, ASIN_TOLERANCE, 0},
+{ 378, 2923358085u, 1099524039u, 1085032107u, 3905384073u, 2923358085u, 1099524039u, 0, ASIN_TOLERANCE, 0},
+{ 379, 842579915u, 985866260u, 3225437419u, 3120783698u, 842579915u, 985866260u, 0, ASIN_TOLERANCE, 0},
+{ 380, 2589795066u, 1700432859u, 3230345428u, 3505263023u, 2589795066u, 1700432859u, 0, ASIN_TOLERANCE, 0},
+{ 381, 2297683903u, 953966053u, 1090810641u, 151959421u, 2297683903u, 953966053u, 0, ASIN_TOLERANCE, 0},
+{ 382, 2887420078u, 1520016810u, 1096148013u, 1974161688u, 2887420078u, 1520016810u, 0, ASIN_TOLERANCE, 0},
+{ 383, 2738297064u, 1577726432u, 1080717542u, 3407236142u, 2738297064u, 1577726432u, 0, ASIN_TOLERANCE, 0},
+{ 384, 3154840433u, 358621181u, 3214344145u, 3735144364u, 3154840433u, 358621181u, 0, ASIN_TOLERANCE, 0},
+{ 385, 2521491907u, 4023613376u, 1095386964u, 959640601u, 2521491907u, 4023613376u, 0, ASIN_TOLERANCE, 0},
+{ 386, 2369008919u, 4136915018u, 1042238319u, 1264360404u, 2369008919u, 4136915018u, 0, ASIN_TOLERANCE, 0},
+{ 387, 2906418341u, 3543839161u, 1093859356u, 2852227162u, 2906418341u, 3543839161u, 0, ASIN_TOLERANCE, 0},
+{ 388, 2218509603u, 2154399659u, 3218171985u, 2610173674u, 2218509603u, 2154399659u, 0, ASIN_TOLERANCE, 0},
+{ 389, 165687034u, 2502718011u, 1105407582u, 4037997673u, 165687034u, 2502718011u, 0, ASIN_TOLERANCE, 0},
+{ 390, 3034344010u, 2429891750u, 3220651893u, 3433646170u, 3034344010u, 2429891750u, 0, ASIN_TOLERANCE, 0},
+{ 391, 397029567u, 1233242847u, 3233842223u, 1978947905u, 397029567u, 1233242847u, 0, ASIN_TOLERANCE, 0},
+{ 392, 32753845u, 3055512924u, 1085895689u, 2569766862u, 32753845u, 3055512924u, 0, ASIN_TOLERANCE, 0},
+{ 393, 498004465u, 3103627383u, 1075642950u, 676014010u, 498004465u, 3103627383u, 0, ASIN_TOLERANCE, 0},
+{ 394, 2622487710u, 3587249671u, 1050343198u, 2034180320u, 2622487710u, 3587249671u, 0, ASIN_TOLERANCE, 0},
+{ 395, 2559467693u, 1175750283u, 3228052153u, 441772035u, 2559467693u, 1175750283u, 0, ASIN_TOLERANCE, 0},
+{ 396, 639279177u, 1096886368u, 1067186387u, 4256284279u, 639279177u, 1096886368u, 0, ASIN_TOLERANCE, 0},
+{ 397, 208471934u, 2746455711u, 3243186220u, 383175406u, 208471934u, 2746455711u, 0, ASIN_TOLERANCE, 0},
+{ 398, 2829822244u, 1056466374u, 3247450556u, 3263564076u, 2829822244u, 1056466374u, 0, ASIN_TOLERANCE, 0},
+{ 399, 2468230336u, 1734210936u, 3195265560u, 514072505u, 2468230336u, 1734210936u, 0, ASIN_TOLERANCE, 0},
+{ 400, 758811245u, 1728341051u, 1092832248u, 3823410158u, 758811245u, 1728341051u, 0, ASIN_TOLERANCE, 0},
+{ 401, 2347191449u, 1235712656u, 3219475794u, 3622129011u, 2347191449u, 1235712656u, 0, ASIN_TOLERANCE, 0},
+{ 402, 79742765u, 1575194991u, 3197615492u, 3446988115u, 79742765u, 1575194991u, 0, ASIN_TOLERANCE, 0},
+{ 403, 2161423950u, 2362441752u, 1088255327u, 270039934u, 2161423950u, 2362441752u, 0, ASIN_TOLERANCE, 0},
+{ 404, 3010727959u, 3063626339u, 1105039555u, 1845818221u, 3010727959u, 3063626339u, 0, ASIN_TOLERANCE, 0},
+{ 405, 192788472u, 3718151518u, 3240183167u, 3113149567u, 192788472u, 3718151518u, 0, ASIN_TOLERANCE, 0},
+{ 406, 313112913u, 3686096237u, 3199484638u, 191185038u, 313112913u, 3686096237u, 0, ASIN_TOLERANCE, 0},
+{ 407, 195422631u, 3680158556u, 1105637038u, 349436087u, 195422631u, 3680158556u, 0, ASIN_TOLERANCE, 0},
+{ 408, 2844026099u, 150975354u, 1100107824u, 729077351u, 2844026099u, 150975354u, 0, ASIN_TOLERANCE, 0},
+{ 409, 3016106050u, 2974566906u, 1091481543u, 195479384u, 3016106050u, 2974566906u, 0, ASIN_TOLERANCE, 0},
+{ 410, 2820952232u, 953930448u, 3232752339u, 1009878771u, 2820952232u, 953930448u, 0, ASIN_TOLERANCE, 0},
+{ 411, 179600265u, 3369386607u, 1057414346u, 1319431804u, 179600265u, 3369386607u, 0, ASIN_TOLERANCE, 0},
+{ 412, 586131522u, 3279403983u, 3223631624u, 3404608264u, 586131522u, 3279403983u, 0, ASIN_TOLERANCE, 0},
+{ 413, 937427869u, 559918757u, 1105263000u, 1026957442u, 937427869u, 559918757u, 0, ASIN_TOLERANCE, 0},
+{ 414, 128542208u, 2658716822u, 1104708872u, 996387212u, 128542208u, 2658716822u, 0, ASIN_TOLERANCE, 0},
+{ 415, 2731512332u, 3244026687u, 1047704829u, 2987820261u, 2731512332u, 3244026687u, 0, ASIN_TOLERANCE, 0},
+{ 416, 829571115u, 1205633467u, 3212336151u, 731560768u, 829571115u, 1205633467u, 0, ASIN_TOLERANCE, 0},
+{ 417, 2850353849u, 3269211356u, 3233229218u, 2632041754u, 2850353849u, 3269211356u, 0, ASIN_TOLERANCE, 0},
+{ 418, 1070113635u, 1007200508u, 1086406456u, 1484610595u, 1070123776u, 907090054u, 0, ASIN_TOLERANCE, 0},
+{ 419, 968866968u, 3805991624u, 1101562011u, 3292762908u, 968866968u, 3805991624u, 0, ASIN_TOLERANCE, 0},
+{ 420, 2437809818u, 3314105762u, 3211254740u, 3489200637u, 2437809818u, 3314105762u, 0, ASIN_TOLERANCE, 0},
+{ 421, 2571363594u, 3198252706u, 3200980182u, 558779875u, 2571363594u, 3198252706u, 0, ASIN_TOLERANCE, 0},
+{ 422, 2377866012u, 2338464653u, 1083319346u, 4167405697u, 2377866012u, 2338464653u, 0, ASIN_TOLERANCE, 0},
+{ 423, 2919015115u, 2320792999u, 3245310028u, 2734025087u, 2919015115u, 2320792999u, 0, ASIN_TOLERANCE, 0},
+{ 424, 2318992495u, 832495279u, 3189857572u, 919851193u, 2318992495u, 832495279u, 0, ASIN_TOLERANCE, 0},
+{ 425, 3116721767u, 594640291u, 1077503330u, 976536412u, 3116721767u, 594640291u, 0, ASIN_TOLERANCE, 0},
+{ 426, 3139145310u, 79400523u, 3241084263u, 3353474633u, 3139145310u, 79400523u, 0, ASIN_TOLERANCE, 0},
+{ 427, 3132785785u, 1078965987u, 3233772596u, 3496966466u, 3132785785u, 1078965987u, 0, ASIN_TOLERANCE, 0},
+{ 428, 892587941u, 4243435186u, 1078663150u, 2446827483u, 892587941u, 4243435186u, 0, ASIN_TOLERANCE, 0},
+{ 429, 644490711u, 699817447u, 1081268534u, 2111588814u, 644490711u, 699817447u, 0, ASIN_TOLERANCE, 0},
+{ 430, 536635513u, 177265199u, 3233855943u, 965677531u, 536635513u, 177265199u, 0, ASIN_TOLERANCE, 0},
+{ 431, 624474831u, 3957229084u, 1065403841u, 3870961932u, 624474831u, 3957229084u, 0, ASIN_TOLERANCE, 0},
+{ 432, 2495519163u, 2768873929u, 3212244708u, 4127917680u, 2495519163u, 2768873929u, 0, ASIN_TOLERANCE, 0},
+{ 433, 445621604u, 3639227340u, 1068863190u, 4192848976u, 445621604u, 3639227340u, 0, ASIN_TOLERANCE, 0},
+{ 434, 2543806408u, 2824651320u, 1092946600u, 2150743372u, 2543806408u, 2824651320u, 0, ASIN_TOLERANCE, 0},
+{ 435, 417715333u, 1542109195u, 3223841580u, 2386809036u, 417715333u, 1542109195u, 0, ASIN_TOLERANCE, 0},
+{ 436, 192029360u, 1374810628u, 3218415587u, 1623455911u, 192029360u, 1374810628u, 0, ASIN_TOLERANCE, 0},
+{ 437, 733790955u, 226433601u, 1048463914u, 2667067819u, 733790955u, 226433601u, 0, ASIN_TOLERANCE, 0},
+{ 438, 768579443u, 1339325351u, 1074062507u, 701901582u, 768579443u, 1339325351u, 0, ASIN_TOLERANCE, 0},
+{ 439, 2920705365u, 3631553324u, 1068350633u, 1231934926u, 2920705365u, 3631553324u, 0, ASIN_TOLERANCE, 0},
+{ 440, 2933708324u, 603977748u, 1098802865u, 1502493757u, 2933708324u, 603977748u, 0, ASIN_TOLERANCE, 0},
+{ 441, 852954796u, 4255242031u, 1076182326u, 2417637015u, 852954796u, 4255242031u, 0, ASIN_TOLERANCE, 0},
+{ 442, 3089857028u, 3270297477u, 1057486942u, 2885336275u, 3089857028u, 3270297477u, 0, ASIN_TOLERANCE, 0},
+{ 443, 2809553007u, 1162164397u, 3250508564u, 2047944882u, 2809553007u, 1162164397u, 0, ASIN_TOLERANCE, 0},
+{ 444, 2875372587u, 129658419u, 3243244851u, 817360375u, 2875372587u, 129658419u, 0, ASIN_TOLERANCE, 0},
+{ 445, 286421081u, 4166988101u, 3246796270u, 1780823036u, 286421081u, 4166988101u, 0, ASIN_TOLERANCE, 0},
+{ 446, 668574270u, 418009120u, 1081026514u, 909013508u, 668574270u, 418009120u, 0, ASIN_TOLERANCE, 0},
+{ 447, 3082072506u, 4186670845u, 1073362089u, 2619129420u, 3082072506u, 4186670845u, 0, ASIN_TOLERANCE, 0},
+{ 448, 795252317u, 1348987467u, 3217165795u, 4162017137u, 795252317u, 1348987467u, 0, ASIN_TOLERANCE, 0},
+{ 449, 2946795826u, 2808968027u, 1057864611u, 275397670u, 2946795826u, 2808968027u, 0, ASIN_TOLERANCE, 0},
+{ 450, 513174607u, 240711581u, 3188571226u, 991292615u, 513174607u, 240711581u, 0, ASIN_TOLERANCE, 0},
+{ 451, 2439023326u, 1881121353u, 1082366688u, 3029043132u, 2439023326u, 1881121353u, 0, ASIN_TOLERANCE, 0},
+{ 452, 192508083u, 4250650421u, 3246612558u, 2498768625u, 192508083u, 4250650421u, 0, ASIN_TOLERANCE, 0},
+{ 453, 3180747941u, 2999983605u, 1096654323u, 2577373394u, 3180747941u, 2999983605u, 0, ASIN_TOLERANCE, 0},
+{ 454, 868314815u, 1300140379u, 3213491585u, 55226854u, 868314815u, 1300140379u, 0, ASIN_TOLERANCE, 0},
+{ 455, 49966445u, 13489454u, 3217461344u, 1447224005u, 49966445u, 13489454u, 0, ASIN_TOLERANCE, 0},
+{ 456, 2210271568u, 180789028u, 3221481024u, 2263184048u, 2210271568u, 180789028u, 0, ASIN_TOLERANCE, 0},
+{ 457, 2397088667u, 426293588u, 3239818611u, 1789635787u, 2397088667u, 426293588u, 0, ASIN_TOLERANCE, 0},
+{ 458, 302342406u, 1048286093u, 3227133745u, 2920139253u, 302342406u, 1048286093u, 0, ASIN_TOLERANCE, 0},
+{ 459, 540854981u, 287184966u, 1093076159u, 1371882685u, 540854981u, 287184966u, 0, ASIN_TOLERANCE, 0},
+{ 460, 770805810u, 2474797470u, 1065280366u, 1506889536u, 770805810u, 2474797470u, 0, ASIN_TOLERANCE, 0},
+{ 461, 2555731452u, 345487446u, 1053421486u, 1197157341u, 2555731452u, 345487446u, 0, ASIN_TOLERANCE, 0},
+{ 462, 2628226629u, 515700445u, 3214016873u, 2783826669u, 2628226629u, 515700445u, 0, ASIN_TOLERANCE, 0},
+{ 463, 467959892u, 1025779807u, 3217947229u, 937205825u, 467959892u, 1025779807u, 0, ASIN_TOLERANCE, 0},
+{ 464, 3185898801u, 503864881u, 1076822915u, 2345033570u, 3185898801u, 503864881u, 0, ASIN_TOLERANCE, 0},
+{ 465, 393896468u, 596014050u, 3250464728u, 3171536734u, 393896468u, 596014050u, 0, ASIN_TOLERANCE, 0},
+{ 466, 2267420964u, 3948135817u, 3235208235u, 557360557u, 2267420964u, 3948135817u, 0, ASIN_TOLERANCE, 0},
+{ 467, 2954074298u, 110029735u, 1081878271u, 658156641u, 2954074298u, 110029735u, 0, ASIN_TOLERANCE, 0},
+{ 468, 566438875u, 2733782773u, 1068148429u, 2141208212u, 566438875u, 2733782773u, 0, ASIN_TOLERANCE, 0},
+{ 469, 2666943954u, 790308557u, 1107048971u, 563615979u, 2666943954u, 790308557u, 0, ASIN_TOLERANCE, 0},
+{ 470, 2405996540u, 2566307075u, 1083723970u, 1428203311u, 2405996540u, 2566307075u, 0, ASIN_TOLERANCE, 0},
+{ 471, 2270749356u, 3880424699u, 3236471057u, 2886278126u, 2270749356u, 3880424699u, 0, ASIN_TOLERANCE, 0},
+{ 472, 524758414u, 2701977458u, 1043006318u, 4263191658u, 524758414u, 2701977458u, 0, ASIN_TOLERANCE, 0},
+{ 473, 2942114697u, 1360096867u, 3234511235u, 722957892u, 2942114697u, 1360096867u, 0, ASIN_TOLERANCE, 0},
+{ 474, 3154505042u, 1993420044u, 1095357710u, 2156133394u, 3154505042u, 1993420044u, 0, ASIN_TOLERANCE, 0},
+{ 475, 2461372509u, 3917014693u, 3239137997u, 3218865041u, 2461372509u, 3917014693u, 0, ASIN_TOLERANCE, 0},
+{ 476, 2423614376u, 3840388050u, 1044708748u, 3339981792u, 2423614376u, 3840388050u, 0, ASIN_TOLERANCE, 0},
+{ 477, 68664930u, 2548196869u, 1075650752u, 2503792874u, 68664930u, 2548196869u, 0, ASIN_TOLERANCE, 0},
+{ 478, 27003265u, 3589631476u, 3235077884u, 2445744426u, 27003265u, 3589631476u, 0, ASIN_TOLERANCE, 0},
+{ 479, 520248228u, 203410210u, 1058974455u, 4258595472u, 520248228u, 203410210u, 0, ASIN_TOLERANCE, 0},
+{ 480, 191352353u, 3053913996u, 1043884546u, 2757616601u, 191352353u, 3053913996u, 0, ASIN_TOLERANCE, 0},
+{ 481, 2602287836u, 1038998189u, 3205430458u, 3695555540u, 2602287836u, 1038998189u, 0, ASIN_TOLERANCE, 0},
+{ 482, 2449136794u, 4118722076u, 1042468417u, 3583005947u, 2449136794u, 4118722076u, 0, ASIN_TOLERANCE, 0},
+{ 483, 2166884388u, 1539535238u, 3246934215u, 508708967u, 2166884388u, 1539535238u, 0, ASIN_TOLERANCE, 0},
+{ 484, 2298893886u, 1355147861u, 3251354609u, 4133432965u, 2298893886u, 1355147861u, 0, ASIN_TOLERANCE, 0},
+{ 485, 826309703u, 1630207738u, 3189562989u, 2643371954u, 826309703u, 1630207738u, 0, ASIN_TOLERANCE, 0},
+{ 486, 1044987158u, 3806259293u, 3242741783u, 15657985u, 1044987158u, 3806259293u, 0, ASIN_TOLERANCE, 0},
+{ 487, 497456897u, 151607638u, 3227697753u, 467630898u, 497456897u, 151607638u, 0, ASIN_TOLERANCE, 0},
+{ 488, 3017637501u, 1016107066u, 1077142954u, 2195497000u, 3017637501u, 1016107066u, 0, ASIN_TOLERANCE, 0},
+{ 489, 2893082164u, 605010161u, 1050995677u, 3081653542u, 2893082164u, 605010161u, 0, ASIN_TOLERANCE, 0},
+{ 490, 469011148u, 4071435209u, 3207925259u, 1894382776u, 469011148u, 4071435209u, 0, ASIN_TOLERANCE, 0},
+{ 491, 2531356920u, 1522707251u, 3218735666u, 1578075186u, 2531356920u, 1522707251u, 0, ASIN_TOLERANCE, 0},
+{ 492, 431642664u, 1500392608u, 3190947192u, 3634607405u, 431642664u, 1500392608u, 0, ASIN_TOLERANCE, 0},
+{ 493, 2582144456u, 3646244007u, 3197852749u, 3808681655u, 2582144456u, 3646244007u, 0, ASIN_TOLERANCE, 0},
+{ 494, 233126338u, 1821773119u, 1094752155u, 1757234723u, 233126338u, 1821773119u, 0, ASIN_TOLERANCE, 0},
+{ 495, 2765502023u, 3794954283u, 3238755664u, 1209121339u, 2765502023u, 3794954283u, 0, ASIN_TOLERANCE, 0},
+{ 496, 2342622984u, 1775878726u, 1096028209u, 221183908u, 2342622984u, 1775878726u, 0, ASIN_TOLERANCE, 0},
+{ 497, 231520693u, 615054313u, 1105995987u, 1405024657u, 231520693u, 615054313u, 0, ASIN_TOLERANCE, 0},
+{ 498, 2401381272u, 2784860416u, 1074009275u, 787419698u, 2401381272u, 2784860416u, 0, ASIN_TOLERANCE, 0},
+{ 499, 943699878u, 2079960298u, 1074123223u, 2100091620u, 943699878u, 2079960298u, 0, ASIN_TOLERANCE, 0},
+{ 500, 592542034u, 311050208u, 3211234312u, 806358659u, 592542034u, 311050208u, 0, ASIN_TOLERANCE, 0},
+{ 501, 554939259u, 898080849u, 1106754706u, 2510882902u, 554939259u, 898080849u, 0, ASIN_TOLERANCE, 0},
+{ 502, 2949198761u, 2015533813u, 1089275809u, 298982001u, 2949198761u, 2015533813u, 0, ASIN_TOLERANCE, 0},
+{ 503, 989540066u, 914741728u, 1092886795u, 464054401u, 989540066u, 914741728u, 0, ASIN_TOLERANCE, 0},
+{ 504, 2304253208u, 3863739765u, 3214711653u, 3915767823u, 2304253208u, 3863739765u, 0, ASIN_TOLERANCE, 0},
+{ 505, 958251880u, 3239739200u, 1104805370u, 2971054003u, 958251880u, 3239739200u, 0, ASIN_TOLERANCE, 0},
+{ 506, 2670649374u, 2491104644u, 3198242303u, 2559304728u, 2670649374u, 2491104644u, 0, ASIN_TOLERANCE, 0},
+{ 507, 939123286u, 684435317u, 1055177809u, 2787628393u, 939123286u, 684435317u, 0, ASIN_TOLERANCE, 0},
+{ 508, 2541359251u, 1636085321u, 1069717586u, 4235233108u, 2541359251u, 1636085321u, 0, ASIN_TOLERANCE, 0},
+{ 509, 1044593898u, 202708387u, 3196003256u, 482423661u, 1044593898u, 202708387u, 0, ASIN_TOLERANCE, 0},
+{ 510, 139626925u, 2518164801u, 3206911657u, 1250530357u, 139626925u, 2518164801u, 0, ASIN_TOLERANCE, 0},
+{ 511, 2850784019u, 3737313137u, 1045922781u, 3136078996u, 2850784019u, 3737313137u, 0, ASIN_TOLERANCE, 0},
+{ 512, 2263385372u, 2650572904u, 3215945256u, 2341430700u, 2263385372u, 2650572904u, 0, ASIN_TOLERANCE, 0},
+{ 513, 2703884311u, 4279456618u, 1045375126u, 3817511514u, 2703884311u, 4279456618u, 0, ASIN_TOLERANCE, 0},
+{ 514, 2332933790u, 1898920133u, 3238856617u, 3322385778u, 2332933790u, 1898920133u, 0, ASIN_TOLERANCE, 0},
+{ 515, 628125129u, 769863378u, 3205646293u, 3033900668u, 628125129u, 769863378u, 0, ASIN_TOLERANCE, 0},
+{ 516, 3150112853u, 2363605017u, 1057042323u, 3607277737u, 3150112853u, 2363605017u, 0, ASIN_TOLERANCE, 0},
+{ 517, 453059902u, 2102433536u, 1073687186u, 1772007848u, 453059902u, 2102433536u, 0, ASIN_TOLERANCE, 0},
+{ 518, 3088101403u, 1756195518u, 3225902960u, 1222779056u, 3088101403u, 1756195518u, 0, ASIN_TOLERANCE, 0},
+{ 519, 936228020u, 1142293403u, 3242693386u, 741039297u, 936228020u, 1142293403u, 0, ASIN_TOLERANCE, 0},
+{ 520, 1034983355u, 2830408439u, 1041913758u, 3306391490u, 1034983355u, 2830408439u, 0, ASIN_TOLERANCE, 0},
+{ 521, 2352979086u, 2205233857u, 1075419064u, 4008575827u, 2352979086u, 2205233857u, 0, ASIN_TOLERANCE, 0},
+{ 522, 445518797u, 2566866389u, 1094655457u, 4036587454u, 445518797u, 2566866389u, 0, ASIN_TOLERANCE, 0},
+{ 523, 311145393u, 1824828952u, 3243078353u, 4292530873u, 311145393u, 1824828952u, 0, ASIN_TOLERANCE, 0},
+{ 524, 2553824191u, 4155068217u, 3207589361u, 3447729183u, 2553824191u, 4155068217u, 0, ASIN_TOLERANCE, 0},
+{ 525, 2798856384u, 2756570858u, 1076273685u, 3333057399u, 2798856384u, 2756570858u, 0, ASIN_TOLERANCE, 0},
+{ 526, 2550428645u, 1207089191u, 1092166391u, 1769908602u, 2550428645u, 1207089191u, 0, ASIN_TOLERANCE, 0},
+{ 527, 554295846u, 859290299u, 1041428225u, 1286082196u, 554295846u, 859290299u, 0, ASIN_TOLERANCE, 0},
+{ 528, 246159230u, 2207831048u, 1106576697u, 1339163028u, 246159230u, 2207831048u, 0, ASIN_TOLERANCE, 0},
+{ 529, 2239899566u, 1165991857u, 3203879091u, 4174125604u, 2239899566u, 1165991857u, 0, ASIN_TOLERANCE, 0},
+{ 530, 182461702u, 2169701868u, 3241819561u, 4227279451u, 182461702u, 2169701868u, 0, ASIN_TOLERANCE, 0},
+{ 531, 2888196098u, 2123622490u, 1052662593u, 2279271809u, 2888196098u, 2123622490u, 0, ASIN_TOLERANCE, 0},
+{ 532, 702835388u, 695374285u, 1047701002u, 522745399u, 702835388u, 695374285u, 0, ASIN_TOLERANCE, 0},
+{ 533, 280094216u, 1510677208u, 1076782817u, 1111322288u, 280094216u, 1510677208u, 0, ASIN_TOLERANCE, 0},
+{ 534, 179077993u, 2623205988u, 1103171923u, 4172761053u, 179077993u, 2623205988u, 0, ASIN_TOLERANCE, 0},
+{ 535, 2177736938u, 4217535562u, 1105411820u, 178360855u, 2177736938u, 4217535562u, 0, ASIN_TOLERANCE, 0},
+{ 536, 682463458u, 3302529767u, 3204908280u, 3960051056u, 682463458u, 3302529767u, 0, ASIN_TOLERANCE, 0},
+{ 537, 398729522u, 3128926115u, 3230393394u, 689920399u, 398729522u, 3128926115u, 0, ASIN_TOLERANCE, 0},
+{ 538, 2611898873u, 2975884353u, 1080874032u, 706326922u, 2611898873u, 2975884353u, 0, ASIN_TOLERANCE, 0},
+{ 539, 893776139u, 198291836u, 1095644375u, 1686271744u, 893776139u, 198291836u, 0, ASIN_TOLERANCE, 0},
+{ 540, 2380685920u, 3678973777u, 3196054178u, 2497695971u, 2380685920u, 3678973777u, 0, ASIN_TOLERANCE, 0},
+{ 541, 2240996065u, 3714083293u, 3243953714u, 2851269113u, 2240996065u, 3714083293u, 0, ASIN_TOLERANCE, 0},
+{ 542, 7542429u, 2117586075u, 1087270529u, 1032855763u, 7542429u, 2117586075u, 0, ASIN_TOLERANCE, 0},
+{ 543, 2223653732u, 3495001046u, 1086693149u, 4162905644u, 2223653732u, 3495001046u, 0, ASIN_TOLERANCE, 0},
+{ 544, 2567370325u, 2825204949u, 3197807718u, 3067810875u, 2567370325u, 2825204949u, 0, ASIN_TOLERANCE, 0},
+{ 545, 2595670946u, 3719019697u, 1095625346u, 658578931u, 2595670946u, 3719019697u, 0, ASIN_TOLERANCE, 0},
+{ 546, 387363057u, 2429869396u, 3239113006u, 3188949762u, 387363057u, 2429869396u, 0, ASIN_TOLERANCE, 0},
+{ 547, 396063874u, 322135328u, 3248332291u, 1527590526u, 396063874u, 322135328u, 0, ASIN_TOLERANCE, 0},
+{ 548, 2461424020u, 2823164069u, 3201760069u, 602345917u, 2461424020u, 2823164069u, 0, ASIN_TOLERANCE, 0},
+{ 549, 654769735u, 720378027u, 1076110022u, 259686655u, 654769735u, 720378027u, 0, ASIN_TOLERANCE, 0},
+{ 550, 2360883068u, 625961575u, 1060816217u, 2476435835u, 2360883068u, 625961575u, 0, ASIN_TOLERANCE, 0},
+{ 551, 788830837u, 606139429u, 3232916885u, 3326100828u, 788830837u, 606139429u, 0, ASIN_TOLERANCE, 0},
+{ 552, 3212982376u, 2141060868u, 1067726443u, 252856858u, 3212982392u, 1078759082u, 0, ASIN_TOLERANCE, 0},
+{ 553, 3127084040u, 474202816u, 1089644854u, 1764399210u, 3127084040u, 474202816u, 0, ASIN_TOLERANCE, 0},
+{ 554, 1019198392u, 2947116437u, 1041572001u, 3959708969u, 1019198392u, 2947116437u, 0, ASIN_TOLERANCE, 0},
+{ 555, 3213251752u, 4230614930u, 1056210276u, 3150822221u, 3213251781u, 4230967581u, 0, ASIN_TOLERANCE, 0},
+{ 556, 696157297u, 3263173528u, 1080112083u, 1228319033u, 696157297u, 3263173528u, 0, ASIN_TOLERANCE, 0},
+{ 557, 124362722u, 500312015u, 1063102682u, 2095470952u, 124362722u, 500312015u, 0, ASIN_TOLERANCE, 0},
+{ 558, 2571317678u, 989529088u, 1056203473u, 3527737002u, 2571317678u, 989529088u, 0, ASIN_TOLERANCE, 0},
+{ 559, 2250338535u, 1703579132u, 3224570219u, 634351649u, 2250338535u, 1703579132u, 0, ASIN_TOLERANCE, 0},
+{ 560, 2855421441u, 66133u, 3240749422u, 3515147331u, 2855421441u, 66133u, 0, ASIN_TOLERANCE, 0},
+{ 561, 2627889255u, 2627336059u, 1089793281u, 1944911728u, 2627889255u, 2627336059u, 0, ASIN_TOLERANCE, 0},
+{ 562, 759942356u, 2319970119u, 3249679385u, 445677602u, 759942356u, 2319970119u, 0, ASIN_TOLERANCE, 0},
+{ 563, 2547610355u, 3313890389u, 1096842854u, 754196284u, 2547610355u, 3313890389u, 0, ASIN_TOLERANCE, 0},
+{ 564, 2871033704u, 1726998596u, 3210485282u, 4166556675u, 2871033704u, 1726998596u, 0, ASIN_TOLERANCE, 0},
+{ 565, 501872914u, 486863841u, 3218994498u, 2509132460u, 501872914u, 486863841u, 0, ASIN_TOLERANCE, 0},
+{ 566, 1002164234u, 2205707903u, 1085826634u, 3041478081u, 1002164234u, 2205707903u, 0, ASIN_TOLERANCE, 0},
+{ 567, 525633549u, 4009409345u, 1040942443u, 2147611409u, 525633549u, 4009409345u, 0, ASIN_TOLERANCE, 0},
+{ 568, 2251207280u, 2036870072u, 1084696514u, 3107506430u, 2251207280u, 2036870072u, 0, ASIN_TOLERANCE, 0},
+{ 569, 756690877u, 690866455u, 3226560542u, 2431563109u, 756690877u, 690866455u, 0, ASIN_TOLERANCE, 0},
+{ 570, 998557361u, 3129862588u, 3198582472u, 2304023232u, 998557361u, 3129862588u, 0, ASIN_TOLERANCE, 0},
+{ 571, 2906016865u, 3579751536u, 3209420505u, 975391569u, 2906016865u, 3579751536u, 0, ASIN_TOLERANCE, 0},
+{ 572, 2560287784u, 546279008u, 1081489128u, 2489420520u, 2560287784u, 546279008u, 0, ASIN_TOLERANCE, 0},
+{ 573, 31598644u, 3355765111u, 3194253290u, 994990765u, 31598644u, 3355765111u, 0, ASIN_TOLERANCE, 0},
+{ 574, 2828168124u, 1040855381u, 1043794244u, 3259056345u, 2828168124u, 1040855381u, 0, ASIN_TOLERANCE, 0},
+{ 575, 2926398160u, 3002823940u, 1089005277u, 3148403594u, 2926398160u, 3002823940u, 0, ASIN_TOLERANCE, 0},
+{ 576, 860472364u, 4135775260u, 1062496213u, 1421204191u, 860472364u, 4135775260u, 0, ASIN_TOLERANCE, 0},
+{ 577, 2375372972u, 1772673503u, 1068413298u, 3250253780u, 2375372972u, 1772673503u, 0, ASIN_TOLERANCE, 0},
+{ 578, 2382680286u, 1058735200u, 3198812726u, 2912456147u, 2382680286u, 1058735200u, 0, ASIN_TOLERANCE, 0},
+{ 579, 207257772u, 3116809444u, 3228961207u, 1489607764u, 207257772u, 3116809444u, 0, ASIN_TOLERANCE, 0},
+{ 580, 3161255502u, 3193356522u, 1098081503u, 3349879051u, 3161255502u, 3193356522u, 0, ASIN_TOLERANCE, 0},
+{ 581, 2263814703u, 3863515794u, 3224248078u, 811645039u, 2263814703u, 3863515794u, 0, ASIN_TOLERANCE, 0},
+{ 582, 2558000392u, 257027843u, 3188376713u, 3688710472u, 2558000392u, 257027843u, 0, ASIN_TOLERANCE, 0},
+{ 583, 1047583344u, 1618589681u, 3252953815u, 1796441468u, 1047583344u, 1618589684u, 0, ASIN_TOLERANCE, 0},
+{ 584, 963715447u, 2772711004u, 1068817762u, 1417472413u, 963715447u, 2772711004u, 0, ASIN_TOLERANCE, 0},
+{ 585, 2899022012u, 3229431619u, 1048945392u, 2667359336u, 2899022012u, 3229431619u, 0, ASIN_TOLERANCE, 0},
+{ 586, 39332833u, 3031365654u, 3254047221u, 3088152449u, 39332833u, 3031365654u, 0, ASIN_TOLERANCE, 0},
+{ 587, 2400099045u, 1889351944u, 1105391374u, 3778764776u, 2400099045u, 1889351944u, 0, ASIN_TOLERANCE, 0},
+{ 588, 2853164987u, 2277852166u, 3203738947u, 1874699830u, 2853164987u, 2277852166u, 0, ASIN_TOLERANCE, 0},
+{ 589, 2730925178u, 341842475u, 1075005257u, 146768835u, 2730925178u, 341842475u, 0, ASIN_TOLERANCE, 0},
+{ 590, 2308700527u, 2872887668u, 1084601028u, 2879218577u, 2308700527u, 2872887668u, 0, ASIN_TOLERANCE, 0},
+{ 591, 2587566446u, 1935797167u, 1071669036u, 2712989912u, 2587566446u, 1935797167u, 0, ASIN_TOLERANCE, 0},
+{ 592, 253790896u, 1441615044u, 1092569414u, 3235243477u, 253790896u, 1441615044u, 0, ASIN_TOLERANCE, 0},
+{ 593, 2246162369u, 3221475559u, 1076923264u, 1614189331u, 2246162369u, 3221475559u, 0, ASIN_TOLERANCE, 0},
+{ 594, 883591469u, 1521698692u, 1063187098u, 2905773788u, 883591469u, 1521698692u, 0, ASIN_TOLERANCE, 0},
+{ 595, 578813437u, 1875339612u, 1097776841u, 3512997257u, 578813437u, 1875339612u, 0, ASIN_TOLERANCE, 0},
+{ 596, 313284539u, 1310991474u, 1042232933u, 315006632u, 313284539u, 1310991474u, 0, ASIN_TOLERANCE, 0},
+{ 597, 2187872770u, 400944269u, 1084139528u, 1113187101u, 2187872770u, 400944269u, 0, ASIN_TOLERANCE, 0},
+{ 598, 2196755783u, 4228884820u, 1086244087u, 4239134992u, 2196755783u, 4228884820u, 0, ASIN_TOLERANCE, 0},
+{ 599, 625667119u, 3885190346u, 1076394312u, 1081883031u, 625667119u, 3885190346u, 0, ASIN_TOLERANCE, 0},
+{ 600, 102978620u, 1185360438u, 1047721048u, 3255616886u, 102978620u, 1185360438u, 0, ASIN_TOLERANCE, 0},
+{ 601, 253870868u, 3242646057u, 3206743917u, 2797651324u, 253870868u, 3242646057u, 0, ASIN_TOLERANCE, 0},
+{ 602, 2741016991u, 2374818327u, 3200069106u, 409774909u, 2741016991u, 2374818327u, 0, ASIN_TOLERANCE, 0},
+{ 603, 541948600u, 129626762u, 3222418776u, 3265842151u, 541948600u, 129626762u, 0, ASIN_TOLERANCE, 0},
+{ 604, 409023275u, 2563211098u, 3195891786u, 3312029907u, 409023275u, 2563211098u, 0, ASIN_TOLERANCE, 0},
+{ 605, 590108432u, 2326742435u, 1061528026u, 3658027611u, 590108432u, 2326742435u, 0, ASIN_TOLERANCE, 0},
+{ 606, 47946496u, 4130434851u, 1086613209u, 1406937614u, 47946496u, 4130434851u, 0, ASIN_TOLERANCE, 0},
+{ 607, 2203282384u, 694337229u, 1098392210u, 673996985u, 2203282384u, 694337229u, 0, ASIN_TOLERANCE, 0},
+{ 608, 383120483u, 2165782899u, 3201118320u, 755437166u, 383120483u, 2165782899u, 0, ASIN_TOLERANCE, 0},
+{ 609, 2738514249u, 1631447464u, 1073129346u, 1109813769u, 2738514249u, 1631447464u, 0, ASIN_TOLERANCE, 0},
+{ 610, 996195808u, 1404490212u, 3191965790u, 388374829u, 996195808u, 1404490212u, 0, ASIN_TOLERANCE, 0},
+{ 611, 621407424u, 1187403069u, 3249235911u, 2333348025u, 621407424u, 1187403069u, 0, ASIN_TOLERANCE, 0},
+{ 612, 2238876819u, 3949359805u, 3217090542u, 278931643u, 2238876819u, 3949359805u, 0, ASIN_TOLERANCE, 0},
+{ 613, 122205568u, 3433131795u, 3216075884u, 1048643019u, 122205568u, 3433131795u, 0, ASIN_TOLERANCE, 0},
+{ 614, 378630966u, 2161249988u, 1080050285u, 1886767872u, 378630966u, 2161249988u, 0, ASIN_TOLERANCE, 0},
+{ 615, 2469519430u, 56508471u, 1101093005u, 3134765996u, 2469519430u, 56508471u, 0, ASIN_TOLERANCE, 0},
+{ 616, 2160574759u, 390814486u, 3252597757u, 4155481783u, 2160574759u, 390814486u, 0, ASIN_TOLERANCE, 0},
+{ 617, 244834788u, 2634623473u, 1106605935u, 3462407026u, 244834788u, 2634623473u, 0, ASIN_TOLERANCE, 0},
+{ 618, 3068667858u, 1081553801u, 3212510682u, 3597193645u, 3068667858u, 1081553801u, 0, ASIN_TOLERANCE, 0},
+{ 619, 2681145113u, 2712139310u, 1067397110u, 3991830201u, 2681145113u, 2712139310u, 0, ASIN_TOLERANCE, 0},
+{ 620, 2469611210u, 1021245839u, 1043439185u, 1476242017u, 2469611210u, 1021245839u, 0, ASIN_TOLERANCE, 0},
+{ 621, 605118806u, 3027425274u, 1057959382u, 1693579371u, 605118806u, 3027425274u, 0, ASIN_TOLERANCE, 0},
+{ 622, 723258643u, 890268116u, 3208358957u, 2499328701u, 723258643u, 890268116u, 0, ASIN_TOLERANCE, 0},
+{ 623, 3012075542u, 2762939960u, 1094140192u, 1946947338u, 3012075542u, 2762939960u, 0, ASIN_TOLERANCE, 0},
+{ 624, 2624504981u, 2848774892u, 1043728239u, 1868742480u, 2624504981u, 2848774892u, 0, ASIN_TOLERANCE, 0},
+{ 625, 631395565u, 2118639219u, 3208384560u, 392586300u, 631395565u, 2118639219u, 0, ASIN_TOLERANCE, 0},
+{ 626, 3100564519u, 3212404590u, 3227625019u, 2217276325u, 3100564519u, 3212404590u, 0, ASIN_TOLERANCE, 0},
+{ 627, 2726525578u, 3155371392u, 1098886483u, 418306480u, 2726525578u, 3155371392u, 0, ASIN_TOLERANCE, 0},
+{ 628, 404732165u, 2073105109u, 3222252812u, 4126276047u, 404732165u, 2073105109u, 0, ASIN_TOLERANCE, 0},
+{ 629, 666104043u, 3942715706u, 3225850891u, 2149087853u, 666104043u, 3942715706u, 0, ASIN_TOLERANCE, 0},
+{ 630, 691861022u, 2516919494u, 1054814504u, 3292931762u, 691861022u, 2516919494u, 0, ASIN_TOLERANCE, 0},
+{ 631, 158110000u, 1551415022u, 3207905213u, 640268289u, 158110000u, 1551415022u, 0, ASIN_TOLERANCE, 0},
+{ 632, 3017186687u, 576149615u, 1089986684u, 1988363455u, 3017186687u, 576149615u, 0, ASIN_TOLERANCE, 0},
+{ 633, 2189052396u, 3827250147u, 1092018604u, 3082769758u, 2189052396u, 3827250147u, 0, ASIN_TOLERANCE, 0},
+{ 634, 2963530013u, 2640124381u, 3224863391u, 3684597672u, 2963530013u, 2640124381u, 0, ASIN_TOLERANCE, 0},
+{ 635, 2674433095u, 3504206450u, 3208001954u, 1486636350u, 2674433095u, 3504206450u, 0, ASIN_TOLERANCE, 0},
+{ 636, 172271302u, 3087550224u, 1050189716u, 1104066383u, 172271302u, 3087550224u, 0, ASIN_TOLERANCE, 0},
+{ 637, 2937291508u, 3152457596u, 3248116497u, 1671039260u, 2937291508u, 3152457596u, 0, ASIN_TOLERANCE, 0},
+{ 638, 743510680u, 3745833360u, 1104273854u, 220649566u, 743510680u, 3745833360u, 0, ASIN_TOLERANCE, 0},
+{ 639, 455612679u, 3044998553u, 3244012440u, 3016971473u, 455612679u, 3044998553u, 0, ASIN_TOLERANCE, 0},
+{ 640, 2707727413u, 3615317113u, 1060844794u, 880769846u, 2707727413u, 3615317113u, 0, ASIN_TOLERANCE, 0},
+{ 641, 91972307u, 663715669u, 1063876456u, 1939925527u, 91972307u, 663715669u, 0, ASIN_TOLERANCE, 0},
+{ 642, 1031258381u, 3544355485u, 1082114513u, 2610512411u, 1031258381u, 3544355485u, 0, ASIN_TOLERANCE, 0},
+{ 643, 3062260532u, 4072884955u, 1076396408u, 1001273000u, 3062260532u, 4072884955u, 0, ASIN_TOLERANCE, 0},
+{ 644, 169240433u, 1808609104u, 3232187528u, 3260138616u, 169240433u, 1808609104u, 0, ASIN_TOLERANCE, 0},
+{ 645, 982018300u, 1018873491u, 3222306114u, 3725685935u, 982018300u, 1018873491u, 0, ASIN_TOLERANCE, 0},
+{ 646, 601770903u, 200987283u, 1044223733u, 3512285706u, 601770903u, 200987283u, 0, ASIN_TOLERANCE, 0},
+{ 647, 2542854589u, 4073670723u, 1077133533u, 2092229545u, 2542854589u, 4073670723u, 0, ASIN_TOLERANCE, 0},
+{ 648, 2434772723u, 1045739827u, 1099698978u, 2401260358u, 2434772723u, 1045739827u, 0, ASIN_TOLERANCE, 0},
+{ 649, 513980741u, 4127547980u, 1041823582u, 96012619u, 513980741u, 4127547980u, 0, ASIN_TOLERANCE, 0},
+{ 650, 2244412580u, 685986273u, 3236054528u, 743504842u, 2244412580u, 685986273u, 0, ASIN_TOLERANCE, 0},
+{ 651, 3152410687u, 3762173332u, 3229804761u, 4257281451u, 3152410687u, 3762173332u, 0, ASIN_TOLERANCE, 0},
+{ 652, 2398221552u, 883225705u, 1052657715u, 3748197546u, 2398221552u, 883225705u, 0, ASIN_TOLERANCE, 0},
+{ 653, 2914372880u, 1745689276u, 3189483003u, 3144701638u, 2914372880u, 1745689276u, 0, ASIN_TOLERANCE, 0},
+{ 654, 584466975u, 1188703132u, 3241765574u, 2567092606u, 584466975u, 1188703132u, 0, ASIN_TOLERANCE, 0},
+{ 655, 3142928545u, 1507281554u, 1093182670u, 3093165197u, 3142928545u, 1507281554u, 0, ASIN_TOLERANCE, 0},
+{ 656, 525538133u, 2853215019u, 1102960933u, 4219424176u, 525538133u, 2853215019u, 0, ASIN_TOLERANCE, 0},
+{ 657, 743378254u, 3350157882u, 3218026125u, 3380902958u, 743378254u, 3350157882u, 0, ASIN_TOLERANCE, 0},
+{ 658, 2920865644u, 3965656635u, 1041729367u, 1488955390u, 2920865644u, 3965656635u, 0, ASIN_TOLERANCE, 0},
+{ 659, 76342162u, 4066317764u, 3250193636u, 3709306303u, 76342162u, 4066317764u, 0, ASIN_TOLERANCE, 0},
+{ 660, 778187300u, 3648159195u, 1060671775u, 4137599200u, 778187300u, 3648159195u, 0, ASIN_TOLERANCE, 0},
+{ 661, 298140314u, 1730811304u, 3218425255u, 3228251203u, 298140314u, 1730811304u, 0, ASIN_TOLERANCE, 0},
+{ 662, 548008019u, 1112642402u, 1046926075u, 2339033206u, 548008019u, 1112642402u, 0, ASIN_TOLERANCE, 0},
+{ 663, 373953465u, 3920135590u, 1068578082u, 3455242298u, 373953465u, 3920135590u, 0, ASIN_TOLERANCE, 0},
+{ 664, 466000998u, 171021716u, 1104170032u, 643991456u, 466000998u, 171021716u, 0, ASIN_TOLERANCE, 0},
+{ 665, 2888399469u, 2072550721u, 3230599505u, 973021091u, 2888399469u, 2072550721u, 0, ASIN_TOLERANCE, 0},
+{ 666, 50905317u, 2724027649u, 1085564300u, 4142466137u, 50905317u, 2724027649u, 0, ASIN_TOLERANCE, 0},
+{ 667, 143727064u, 2551822580u, 3246069024u, 1987298072u, 143727064u, 2551822580u, 0, ASIN_TOLERANCE, 0},
+{ 668, 890335217u, 3397840241u, 3222713245u, 1041924997u, 890335217u, 3397840241u, 0, ASIN_TOLERANCE, 0},
+{ 669, 2679007644u, 1492572480u, 1050371810u, 2325437597u, 2679007644u, 1492572480u, 0, ASIN_TOLERANCE, 0},
+{ 670, 114124970u, 2135762681u, 3203689878u, 3625230590u, 114124970u, 2135762681u, 0, ASIN_TOLERANCE, 0},
+{ 671, 2580021722u, 3462823473u, 1042304476u, 902729486u, 2580021722u, 3462823473u, 0, ASIN_TOLERANCE, 0},
+{ 672, 2558456833u, 652173352u, 1093628675u, 363109783u, 2558456833u, 652173352u, 0, ASIN_TOLERANCE, 0},
+{ 673, 2931846653u, 3131010476u, 3195084967u, 2163853087u, 2931846653u, 3131010476u, 0, ASIN_TOLERANCE, 0},
+{ 674, 2860857242u, 2962422808u, 3191806742u, 291534500u, 2860857242u, 2962422808u, 0, ASIN_TOLERANCE, 0},
+{ 675, 3180910087u, 148717545u, 3227570855u, 1176638793u, 3180910087u, 148717545u, 0, ASIN_TOLERANCE, 0},
+{ 676, 846507519u, 592218494u, 3236967859u, 3643659929u, 846507519u, 592218494u, 0, ASIN_TOLERANCE, 0},
+{ 677, 799992724u, 3637018510u, 1096065187u, 2759677467u, 799992724u, 3637018510u, 0, ASIN_TOLERANCE, 0},
+{ 678, 2669496048u, 1394154169u, 3225515010u, 2895919661u, 2669496048u, 1394154169u, 0, ASIN_TOLERANCE, 0},
+{ 679, 2888699650u, 2576460670u, 3195138207u, 278693366u, 2888699650u, 2576460670u, 0, ASIN_TOLERANCE, 0},
+{ 680, 2397030301u, 3525993125u, 1046206559u, 960482701u, 2397030301u, 3525993125u, 0, ASIN_TOLERANCE, 0},
+{ 681, 566728356u, 3623493345u, 3245957327u, 2358092842u, 566728356u, 3623493345u, 0, ASIN_TOLERANCE, 0},
+{ 682, 2920406944u, 1470157513u, 1068598730u, 2360266862u, 2920406944u, 1470157513u, 0, ASIN_TOLERANCE, 0},
+{ 683, 287105933u, 2673272949u, 3190126532u, 3307152371u, 287105933u, 2673272949u, 0, ASIN_TOLERANCE, 0},
+{ 684, 2190509100u, 3554040933u, 3243091661u, 1074231128u, 2190509100u, 3554040933u, 0, ASIN_TOLERANCE, 0},
+{ 685, 2949859096u, 506000682u, 1099596445u, 3719284608u, 2949859096u, 506000682u, 0, ASIN_TOLERANCE, 0},
+{ 686, 143293603u, 1500851201u, 1079029789u, 395506977u, 143293603u, 1500851201u, 0, ASIN_TOLERANCE, 0},
+{ 687, 2216398316u, 2396922893u, 3215773801u, 3631674284u, 2216398316u, 2396922893u, 0, ASIN_TOLERANCE, 0},
+{ 688, 94791165u, 265423085u, 1064366729u, 2757995135u, 94791165u, 265423085u, 0, ASIN_TOLERANCE, 0},
+{ 689, 2260683291u, 3335726874u, 3204388695u, 1913160810u, 2260683291u, 3335726874u, 0, ASIN_TOLERANCE, 0},
+{ 690, 985593981u, 177525642u, 1089544219u, 1163479070u, 985593981u, 177525642u, 0, ASIN_TOLERANCE, 0},
+{ 691, 1059251204u, 1356562406u, 3218720719u, 3954981400u, 1059251204u, 1374970644u, 0, ASIN_TOLERANCE, 0},
+{ 692, 199560954u, 2411049585u, 3200282058u, 4212977532u, 199560954u, 2411049585u, 0, ASIN_TOLERANCE, 0},
+{ 693, 3115392997u, 1969400668u, 1082838033u, 792484989u, 3115392997u, 1969400668u, 0, ASIN_TOLERANCE, 0},
+{ 694, 413791550u, 3185069889u, 1102744820u, 1679200952u, 413791550u, 3185069889u, 0, ASIN_TOLERANCE, 0},
+{ 695, 816641623u, 2092563199u, 1077400892u, 3625477257u, 816641623u, 2092563199u, 0, ASIN_TOLERANCE, 0},
+{ 696, 990732070u, 3645477920u, 3233940628u, 730323504u, 990732070u, 3645477920u, 0, ASIN_TOLERANCE, 0},
+{ 697, 2640158643u, 1955024619u, 3229376333u, 3062236193u, 2640158643u, 1955024619u, 0, ASIN_TOLERANCE, 0},
+{ 698, 748924276u, 673553144u, 3222681322u, 3821101717u, 748924276u, 673553144u, 0, ASIN_TOLERANCE, 0},
+{ 699, 872312580u, 2833907590u, 1087265939u, 2570284543u, 872312580u, 2833907590u, 0, ASIN_TOLERANCE, 0},
+{ 700, 531712086u, 2911302424u, 1088378861u, 3400401866u, 531712086u, 2911302424u, 0, ASIN_TOLERANCE, 0},
+{ 701, 541730201u, 552676385u, 1048022712u, 1642148205u, 541730201u, 552676385u, 0, ASIN_TOLERANCE, 0},
+{ 702, 323876482u, 3259465719u, 1063427827u, 4168942284u, 323876482u, 3259465719u, 0, ASIN_TOLERANCE, 0},
+{ 703, 2757624524u, 757177023u, 3224829944u, 54374532u, 2757624524u, 757177023u, 0, ASIN_TOLERANCE, 0},
+{ 704, 25847614u, 3253287925u, 3239197056u, 3859570507u, 25847614u, 3253287925u, 0, ASIN_TOLERANCE, 0},
+{ 705, 2460961478u, 3154974007u, 1089011136u, 3913013165u, 2460961478u, 3154974007u, 0, ASIN_TOLERANCE, 0},
+{ 706, 311234957u, 2785357403u, 1103967007u, 2809598610u, 311234957u, 2785357403u, 0, ASIN_TOLERANCE, 0},
+{ 707, 484603275u, 3644503084u, 1071705136u, 2739219317u, 484603275u, 3644503084u, 0, ASIN_TOLERANCE, 0},
+{ 708, 2578002590u, 3518663743u, 1085926548u, 3708967464u, 2578002590u, 3518663743u, 0, ASIN_TOLERANCE, 0},
+{ 709, 3007242152u, 731479478u, 1076236288u, 2805941787u, 3007242152u, 731479478u, 0, ASIN_TOLERANCE, 0},
+{ 710, 2619048947u, 779131141u, 3197589176u, 237706897u, 2619048947u, 779131141u, 0, ASIN_TOLERANCE, 0},
+{ 711, 2641650858u, 2888131473u, 3245067887u, 2007039966u, 2641650858u, 2888131473u, 0, ASIN_TOLERANCE, 0},
+{ 712, 878934658u, 2219795442u, 1097959451u, 920385234u, 878934658u, 2219795442u, 0, ASIN_TOLERANCE, 0},
+{ 713, 970070259u, 1786246284u, 3210593296u, 3141517655u, 970070259u, 1786246284u, 0, ASIN_TOLERANCE, 0},
+{ 714, 28474706u, 1268866168u, 1056332378u, 3807437549u, 28474706u, 1268866168u, 0, ASIN_TOLERANCE, 0},
+{ 715, 593283356u, 2441697849u, 1095257734u, 352511160u, 593283356u, 2441697849u, 0, ASIN_TOLERANCE, 0},
+{ 716, 537273837u, 3291810518u, 1078085447u, 381074875u, 537273837u, 3291810518u, 0, ASIN_TOLERANCE, 0},
+{ 717, 466362499u, 387817055u, 3243585398u, 409681933u, 466362499u, 387817055u, 0, ASIN_TOLERANCE, 0},
+{ 718, 337512666u, 139599181u, 1104463616u, 3501253426u, 337512666u, 139599181u, 0, ASIN_TOLERANCE, 0},
+{ 719, 152302801u, 1804177501u, 1107025740u, 30866148u, 152302801u, 1804177501u, 0, ASIN_TOLERANCE, 0},
+{ 720, 2982215560u, 793748989u, 1082924614u, 1001569450u, 2982215560u, 793748989u, 0, ASIN_TOLERANCE, 0},
+{ 721, 3089760601u, 959143764u, 1058620462u, 2685722619u, 3089760601u, 959143764u, 0, ASIN_TOLERANCE, 0},
+{ 722, 2594786226u, 1587148467u, 1069298743u, 2465926195u, 2594786226u, 1587148467u, 0, ASIN_TOLERANCE, 0},
+{ 723, 932092665u, 2374376082u, 1041131964u, 1275798358u, 932092665u, 2374376082u, 0, ASIN_TOLERANCE, 0},
+{ 724, 3064898943u, 732591095u, 1105513168u, 188500721u, 3064898943u, 732591095u, 0, ASIN_TOLERANCE, 0},
+{ 725, 833576046u, 2203077164u, 1086779764u, 2814822707u, 833576046u, 2203077164u, 0, ASIN_TOLERANCE, 0},
+{ 726, 414881598u, 3478844638u, 1064472491u, 3289144186u, 414881598u, 3478844638u, 0, ASIN_TOLERANCE, 0},
+{ 727, 964227992u, 2435698269u, 3249016304u, 440309030u, 964227992u, 2435698269u, 0, ASIN_TOLERANCE, 0},
+{ 728, 2567296069u, 3788040806u, 3187722224u, 3342255097u, 2567296069u, 3788040806u, 0, ASIN_TOLERANCE, 0},
+{ 729, 723295838u, 2455751020u, 1103514973u, 3245053142u, 723295838u, 2455751020u, 0, ASIN_TOLERANCE, 0},
+{ 730, 844693850u, 4056651767u, 3239516201u, 4169582895u, 844693850u, 4056651767u, 0, ASIN_TOLERANCE, 0},
+{ 731, 550385160u, 2093642662u, 1100623425u, 792491672u, 550385160u, 2093642662u, 0, ASIN_TOLERANCE, 0},
+{ 732, 2816313046u, 83889365u, 1087600688u, 1006331335u, 2816313046u, 83889365u, 0, ASIN_TOLERANCE, 0},
+{ 733, 2572367713u, 1140517802u, 3243890765u, 4090711271u, 2572367713u, 1140517802u, 0, ASIN_TOLERANCE, 0},
+{ 734, 666576601u, 2418701513u, 3216964687u, 1555649649u, 666576601u, 2418701513u, 0, ASIN_TOLERANCE, 0},
+{ 735, 2251046969u, 1215163489u, 1051353113u, 3503287900u, 2251046969u, 1215163489u, 0, ASIN_TOLERANCE, 0},
+{ 736, 3159618610u, 641457589u, 1051716814u, 4121125128u, 3159618610u, 641457589u, 0, ASIN_TOLERANCE, 0},
+{ 737, 401932052u, 321857207u, 3250350790u, 1246006125u, 401932052u, 321857207u, 0, ASIN_TOLERANCE, 0},
+{ 738, 2953696013u, 120564990u, 1097266968u, 300149226u, 2953696013u, 120564990u, 0, ASIN_TOLERANCE, 0},
+{ 739, 2254220803u, 3244980052u, 1076924215u, 847775621u, 2254220803u, 3244980052u, 0, ASIN_TOLERANCE, 0},
+{ 740, 2771951028u, 112839452u, 3212858842u, 1569943525u, 2771951028u, 112839452u, 0, ASIN_TOLERANCE, 0},
+{ 741, 2165404842u, 2934678057u, 3212657738u, 3091042797u, 2165404842u, 2934678057u, 0, ASIN_TOLERANCE, 0},
+{ 742, 2704093164u, 547060795u, 1079752403u, 4043827022u, 2704093164u, 547060795u, 0, ASIN_TOLERANCE, 0},
+{ 743, 244578012u, 1790462845u, 1067969586u, 2345441039u, 244578012u, 1790462845u, 0, ASIN_TOLERANCE, 0},
+{ 744, 2182959566u, 2353653565u, 1049624664u, 882286568u, 2182959566u, 2353653565u, 0, ASIN_TOLERANCE, 0},
+{ 745, 462586144u, 1186302263u, 1078662178u, 2626148789u, 462586144u, 1186302263u, 0, ASIN_TOLERANCE, 0},
+{ 746, 279527707u, 4121656076u, 3224287260u, 1299277508u, 279527707u, 4121656076u, 0, ASIN_TOLERANCE, 0},
+{ 747, 470047975u, 2010385858u, 3233120941u, 4186702461u, 470047975u, 2010385858u, 0, ASIN_TOLERANCE, 0},
+{ 748, 2221693080u, 1323708810u, 3211281520u, 1640799315u, 2221693080u, 1323708810u, 0, ASIN_TOLERANCE, 0},
+{ 749, 3124323904u, 3503897938u, 3210262651u, 258643165u, 3124323904u, 3503897938u, 0, ASIN_TOLERANCE, 0},
+{ 750, 2619485313u, 2959074653u, 1058897059u, 4239182527u, 2619485313u, 2959074653u, 0, ASIN_TOLERANCE, 0},
+{ 751, 302551175u, 153547307u, 1099812861u, 3156123094u, 302551175u, 153547307u, 0, ASIN_TOLERANCE, 0},
+{ 752, 420210788u, 3996883503u, 1071341265u, 72657681u, 420210788u, 3996883503u, 0, ASIN_TOLERANCE, 0},
+{ 753, 158488136u, 1698212750u, 1068334402u, 160302703u, 158488136u, 1698212750u, 0, ASIN_TOLERANCE, 0},
+{ 754, 289138234u, 2257686389u, 1051856116u, 430357614u, 289138234u, 2257686389u, 0, ASIN_TOLERANCE, 0},
+{ 755, 2795510903u, 395145384u, 1046317717u, 1912800227u, 2795510903u, 395145384u, 0, ASIN_TOLERANCE, 0},
+{ 756, 935515004u, 674021561u, 3222496667u, 743247292u, 935515004u, 674021561u, 0, ASIN_TOLERANCE, 0},
+{ 757, 2822969173u, 1075007837u, 3222487779u, 639284837u, 2822969173u, 1075007837u, 0, ASIN_TOLERANCE, 0},
+{ 758, 924678051u, 3492386324u, 3251519349u, 1241408247u, 924678051u, 3492386324u, 0, ASIN_TOLERANCE, 0},
+{ 759, 2881777125u, 3998363272u, 3228147294u, 365769855u, 2881777125u, 3998363272u, 0, ASIN_TOLERANCE, 0},
+{ 760, 2662939411u, 4030509561u, 1066028735u, 1163947030u, 2662939411u, 4030509561u, 0, ASIN_TOLERANCE, 0},
+{ 761, 564717585u, 1914428658u, 3214617694u, 4147847493u, 564717585u, 1914428658u, 0, ASIN_TOLERANCE, 0},
+{ 762, 993107584u, 2889684117u, 1042972779u, 1225674604u, 993107584u, 2889684117u, 0, ASIN_TOLERANCE, 0},
+{ 763, 750290683u, 273406410u, 3206108502u, 145234164u, 750290683u, 273406410u, 0, ASIN_TOLERANCE, 0},
+{ 764, 3157290800u, 912384201u, 3237262916u, 3366320623u, 3157290800u, 912384201u, 0, ASIN_TOLERANCE, 0},
+{ 765, 3022814103u, 349339167u, 3197347448u, 3262060258u, 3022814103u, 349339167u, 0, ASIN_TOLERANCE, 0},
+{ 766, 393652178u, 2097272974u, 1064845294u, 1630215394u, 393652178u, 2097272974u, 0, ASIN_TOLERANCE, 0},
+{ 767, 2250994257u, 3355589350u, 3243019072u, 2316123825u, 2250994257u, 3355589350u, 0, ASIN_TOLERANCE, 0},
+{ 768, 307759713u, 1457407347u, 1101422760u, 4120356538u, 307759713u, 1457407347u, 0, ASIN_TOLERANCE, 0},
+{ 769, 2168158322u, 3228185359u, 3198251445u, 3743078041u, 2168158322u, 3228185359u, 0, ASIN_TOLERANCE, 0},
+{ 770, 880898735u, 1289357713u, 3230160936u, 2794962547u, 880898735u, 1289357713u, 0, ASIN_TOLERANCE, 0},
+{ 771, 903112316u, 1699456459u, 1083794396u, 4195811825u, 903112316u, 1699456459u, 0, ASIN_TOLERANCE, 0},
+{ 772, 129746399u, 1949114369u, 1084908557u, 1325384361u, 129746399u, 1949114369u, 0, ASIN_TOLERANCE, 0},
+{ 773, 709313868u, 3979168763u, 1049036668u, 2542947959u, 709313868u, 3979168763u, 0, ASIN_TOLERANCE, 0},
+{ 774, 776361251u, 676749439u, 3192662415u, 4013712036u, 776361251u, 676749439u, 0, ASIN_TOLERANCE, 0},
+{ 775, 255079628u, 3701636708u, 1042322101u, 3983171212u, 255079628u, 3701636708u, 0, ASIN_TOLERANCE, 0},
+{ 776, 2885977639u, 3830039616u, 3239465315u, 175489420u, 2885977639u, 3830039616u, 0, ASIN_TOLERANCE, 0},
+{ 777, 2871663155u, 2897269792u, 3230650366u, 3102389747u, 2871663155u, 2897269792u, 0, ASIN_TOLERANCE, 0},
+{ 778, 515647990u, 582170006u, 1068093936u, 3324264433u, 515647990u, 582170006u, 0, ASIN_TOLERANCE, 0},
+{ 779, 870187117u, 3574970337u, 1061955111u, 637826033u, 870187117u, 3574970337u, 0, ASIN_TOLERANCE, 0},
+{ 780, 2474474250u, 1733806710u, 3216760526u, 3188307974u, 2474474250u, 1733806710u, 0, ASIN_TOLERANCE, 0},
+{ 781, 25157138u, 2296028823u, 1096788400u, 1413568905u, 25157138u, 2296028823u, 0, ASIN_TOLERANCE, 0},
+{ 782, 967771954u, 1627289946u, 1046506286u, 1860326351u, 967771954u, 1627289946u, 0, ASIN_TOLERANCE, 0},
+{ 783, 876029804u, 1139086265u, 3242570406u, 3276908361u, 876029804u, 1139086265u, 0, ASIN_TOLERANCE, 0},
+{ 784, 444923881u, 3323762166u, 3206918506u, 946766885u, 444923881u, 3323762166u, 0, ASIN_TOLERANCE, 0},
+{ 785, 2438959626u, 188768962u, 1088324147u, 4105901663u, 2438959626u, 188768962u, 0, ASIN_TOLERANCE, 0},
+{ 786, 2731858209u, 460037366u, 3227174677u, 2159793181u, 2731858209u, 460037366u, 0, ASIN_TOLERANCE, 0},
+{ 787, 647960579u, 2589781051u, 3243737020u, 107237481u, 647960579u, 2589781051u, 0, ASIN_TOLERANCE, 0},
+{ 788, 342985206u, 3519881651u, 1057272132u, 2685921459u, 342985206u, 3519881651u, 0, ASIN_TOLERANCE, 0},
+{ 789, 620434247u, 1169160155u, 3206674485u, 3139856281u, 620434247u, 1169160155u, 0, ASIN_TOLERANCE, 0},
+{ 790, 1000422649u, 1898254525u, 3196770014u, 2458988443u, 1000422649u, 1898254525u, 0, ASIN_TOLERANCE, 0},
+{ 791, 756268268u, 2023065054u, 1050415907u, 4070768353u, 756268268u, 2023065054u, 0, ASIN_TOLERANCE, 0},
+{ 792, 284716157u, 3336260906u, 3237972475u, 3524355405u, 284716157u, 3336260906u, 0, ASIN_TOLERANCE, 0},
+{ 793, 2520138858u, 3298979042u, 3250099033u, 1003322861u, 2520138858u, 3298979042u, 0, ASIN_TOLERANCE, 0},
+{ 794, 780415343u, 1629423892u, 1061722650u, 2396420130u, 780415343u, 1629423892u, 0, ASIN_TOLERANCE, 0},
+{ 795, 2512306741u, 1945417606u, 3192839521u, 1585136212u, 2512306741u, 1945417606u, 0, ASIN_TOLERANCE, 0},
+{ 796, 2649414854u, 1527139640u, 1076681917u, 4150904895u, 2649414854u, 1527139640u, 0, ASIN_TOLERANCE, 0},
+{ 797, 315452952u, 267572666u, 1088475235u, 1517640973u, 315452952u, 267572666u, 0, ASIN_TOLERANCE, 0},
+{ 798, 948438656u, 1100855041u, 3229298529u, 2451533501u, 948438656u, 1100855041u, 0, ASIN_TOLERANCE, 0},
+{ 799, 2280476280u, 853088805u, 1050931318u, 3551516956u, 2280476280u, 853088805u, 0, ASIN_TOLERANCE, 0},
+{ 800, 927051214u, 1317953425u, 3217154900u, 431061758u, 927051214u, 1317953425u, 0, ASIN_TOLERANCE, 0},
+{ 801, 803065499u, 2317271661u, 1070436470u, 4014139535u, 803065499u, 2317271661u, 0, ASIN_TOLERANCE, 0},
+{ 802, 2766450812u, 3959292396u, 3249638947u, 906232948u, 2766450812u, 3959292396u, 0, ASIN_TOLERANCE, 0},
+{ 803, 475259033u, 1939780068u, 3253991906u, 906880052u, 475259033u, 1939780068u, 0, ASIN_TOLERANCE, 0},
+{ 804, 174037547u, 4170524292u, 3237763507u, 4075099457u, 174037547u, 4170524292u, 0, ASIN_TOLERANCE, 0},
+{ 805, 3111709674u, 3520923293u, 1067530616u, 2252399455u, 3111709674u, 3520923293u, 0, ASIN_TOLERANCE, 0},
+{ 806, 705974097u, 1097415680u, 1055600706u, 2690540698u, 705974097u, 1097415680u, 0, ASIN_TOLERANCE, 0},
+{ 807, 465450487u, 3086226264u, 3213898048u, 3220232067u, 465450487u, 3086226264u, 0, ASIN_TOLERANCE, 0},
+{ 808, 2906752413u, 2955360278u, 1051258339u, 557182478u, 2906752413u, 2955360278u, 0, ASIN_TOLERANCE, 0},
+{ 809, 2407140190u, 186287752u, 1104388811u, 1727111982u, 2407140190u, 186287752u, 0, ASIN_TOLERANCE, 0},
+{ 810, 3170043637u, 4057007843u, 1076281145u, 2008293104u, 3170043637u, 4057007843u, 0, ASIN_TOLERANCE, 0},
+{ 811, 3198834469u, 2741338484u, 3252544447u, 1207037505u, 3198834469u, 2741339245u, 0, ASIN_TOLERANCE, 0},
+{ 812, 625923799u, 102938901u, 3218894213u, 3620282197u, 625923799u, 102938901u, 0, ASIN_TOLERANCE, 0},
+{ 813, 2527426501u, 763746284u, 1060949875u, 80236875u, 2527426501u, 763746284u, 0, ASIN_TOLERANCE, 0},
+{ 814, 3055119358u, 1117970157u, 1084109014u, 939675744u, 3055119358u, 1117970157u, 0, ASIN_TOLERANCE, 0},
+{ 815, 1002709241u, 3478694019u, 1105453279u, 2493398454u, 1002709241u, 3478694019u, 0, ASIN_TOLERANCE, 0},
+{ 816, 278925941u, 2014323735u, 1096417600u, 1077078168u, 278925941u, 2014323735u, 0, ASIN_TOLERANCE, 0},
+{ 817, 22160783u, 1569149351u, 1091835152u, 3751608506u, 22160783u, 1569149351u, 0, ASIN_TOLERANCE, 0},
+{ 818, 2855839310u, 930375071u, 1084274438u, 1096450032u, 2855839310u, 930375071u, 0, ASIN_TOLERANCE, 0},
+{ 819, 949603377u, 4197396799u, 3220768028u, 3419252837u, 949603377u, 4197396799u, 0, ASIN_TOLERANCE, 0},
+{ 820, 2427096043u, 2553375912u, 3237078043u, 1357572894u, 2427096043u, 2553375912u, 0, ASIN_TOLERANCE, 0},
+{ 821, 2946808178u, 703318468u, 3198897773u, 3216391250u, 2946808178u, 703318468u, 0, ASIN_TOLERANCE, 0},
+{ 822, 682409255u, 3167959965u, 1069972300u, 4099039274u, 682409255u, 3167959965u, 0, ASIN_TOLERANCE, 0},
+{ 823, 551957760u, 1199490036u, 1047137152u, 2723130471u, 551957760u, 1199490036u, 0, ASIN_TOLERANCE, 0},
+{ 824, 2635855937u, 933683213u, 3243757155u, 1468458131u, 2635855937u, 933683213u, 0, ASIN_TOLERANCE, 0},
+{ 825, 954259401u, 763829445u, 3190480801u, 1772616584u, 954259401u, 763829445u, 0, ASIN_TOLERANCE, 0},
+{ 826, 1017324786u, 3416067384u, 1056206159u, 172017902u, 1017324786u, 3416067384u, 0, ASIN_TOLERANCE, 0},
+{ 827, 2553315334u, 2799176222u, 1099022088u, 1324575553u, 2553315334u, 2799176222u, 0, ASIN_TOLERANCE, 0},
+{ 828, 54501096u, 2237472662u, 3202361378u, 1770080863u, 54501096u, 2237472662u, 0, ASIN_TOLERANCE, 0},
+{ 829, 697886575u, 1509098263u, 3227321831u, 3313535397u, 697886575u, 1509098263u, 0, ASIN_TOLERANCE, 0},
+{ 830, 2834201307u, 1157206501u, 3201667023u, 2771836065u, 2834201307u, 1157206501u, 0, ASIN_TOLERANCE, 0},
+{ 831, 2845352423u, 841047693u, 3220229941u, 3851041620u, 2845352423u, 841047693u, 0, ASIN_TOLERANCE, 0},
+{ 832, 2559038255u, 1637635007u, 1096670395u, 363436727u, 2559038255u, 1637635007u, 0, ASIN_TOLERANCE, 0},
+{ 833, 895812927u, 544867276u, 3250055151u, 2005291812u, 895812927u, 544867276u, 0, ASIN_TOLERANCE, 0},
+{ 834, 613660095u, 1577788839u, 3213516258u, 3678234583u, 613660095u, 1577788839u, 0, ASIN_TOLERANCE, 0},
+{ 835, 2787880976u, 3005922702u, 1060624530u, 3900344258u, 2787880976u, 3005922702u, 0, ASIN_TOLERANCE, 0},
+{ 836, 369490497u, 4206745890u, 3212325607u, 3363748875u, 369490497u, 4206745890u, 0, ASIN_TOLERANCE, 0},
+{ 837, 547531448u, 2586849496u, 3195881612u, 1817038482u, 547531448u, 2586849496u, 0, ASIN_TOLERANCE, 0},
+{ 838, 2947779739u, 3675119568u, 3217354316u, 1280515099u, 2947779739u, 3675119568u, 0, ASIN_TOLERANCE, 0},
+{ 839, 2360207944u, 3785128270u, 3206980957u, 986337114u, 2360207944u, 3785128270u, 0, ASIN_TOLERANCE, 0},
+{ 840, 30415045u, 1959045465u, 3205100821u, 2165602568u, 30415045u, 1959045465u, 0, ASIN_TOLERANCE, 0},
+{ 841, 2874345345u, 4164694429u, 3228096442u, 1919088329u, 2874345345u, 4164694429u, 0, ASIN_TOLERANCE, 0},
+{ 842, 430207315u, 1381882442u, 3215734246u, 2587666792u, 430207315u, 1381882442u, 0, ASIN_TOLERANCE, 0},
+{ 843, 721933456u, 3295845115u, 1099763106u, 4189733918u, 721933456u, 3295845115u, 0, ASIN_TOLERANCE, 0},
+{ 844, 1020902692u, 528513718u, 3241318094u, 2446416887u, 1020902692u, 528513718u, 0, ASIN_TOLERANCE, 0},
+{ 845, 23459988u, 2336116589u, 1065985897u, 3314083915u, 23459988u, 2336116589u, 0, ASIN_TOLERANCE, 0},
+{ 846, 666699893u, 3946191348u, 3195771050u, 906783975u, 666699893u, 3946191348u, 0, ASIN_TOLERANCE, 0},
+{ 847, 2277669009u, 1307551746u, 3210796216u, 988905760u, 2277669009u, 1307551746u, 0, ASIN_TOLERANCE, 0},
+{ 848, 659686858u, 3690487540u, 1056058539u, 3252665112u, 659686858u, 3690487540u, 0, ASIN_TOLERANCE, 0},
+{ 849, 42479044u, 1832665932u, 1055271260u, 2605540156u, 42479044u, 1832665932u, 0, ASIN_TOLERANCE, 0},
+{ 850, 158726331u, 4095344603u, 3215114657u, 3444794506u, 158726331u, 4095344603u, 0, ASIN_TOLERANCE, 0},
+{ 851, 2383875900u, 1287837711u, 3242597773u, 4213798139u, 2383875900u, 1287837711u, 0, ASIN_TOLERANCE, 0},
+{ 852, 3153341967u, 2816125725u, 1059414555u, 1477859711u, 3153341967u, 2816125725u, 0, ASIN_TOLERANCE, 0},
+{ 853, 935772631u, 714564399u, 3193282956u, 2533012202u, 935772631u, 714564399u, 0, ASIN_TOLERANCE, 0},
+{ 854, 626995971u, 3592268374u, 1058283383u, 2901729097u, 626995971u, 3592268374u, 0, ASIN_TOLERANCE, 0},
+{ 855, 793386186u, 3559004137u, 1068514800u, 3160920849u, 793386186u, 3559004137u, 0, ASIN_TOLERANCE, 0},
+{ 856, 292955800u, 691190239u, 3222935981u, 1615104840u, 292955800u, 691190239u, 0, ASIN_TOLERANCE, 0},
+{ 857, 239139675u, 2475984769u, 1103239897u, 703637359u, 239139675u, 2475984769u, 0, ASIN_TOLERANCE, 0},
+{ 858, 710643921u, 441140946u, 3190536898u, 3492228424u, 710643921u, 441140946u, 0, ASIN_TOLERANCE, 0},
+{ 859, 161483935u, 3877369975u, 3202400099u, 3215202168u, 161483935u, 3877369975u, 0, ASIN_TOLERANCE, 0},
+{ 860, 2961770699u, 1491180815u, 3239294185u, 1154272588u, 2961770699u, 1491180815u, 0, ASIN_TOLERANCE, 0},
+{ 861, 3205774388u, 3583450204u, 1087671320u, 674510731u, 3205774388u, 3589106472u, 0, ASIN_TOLERANCE, 0},
+{ 862, 2732840881u, 3456820098u, 1089546472u, 2907918480u, 2732840881u, 3456820098u, 0, ASIN_TOLERANCE, 0},
+{ 863, 685577817u, 81928569u, 1075278180u, 1990416786u, 685577817u, 81928569u, 0, ASIN_TOLERANCE, 0},
+{ 864, 1038142999u, 1400620994u, 3225378967u, 1180415269u, 1038142999u, 1400620994u, 0, ASIN_TOLERANCE, 0},
+{ 865, 821776812u, 2762887697u, 3211549123u, 335890509u, 821776812u, 2762887697u, 0, ASIN_TOLERANCE, 0},
+{ 866, 3188234303u, 1362922028u, 3190091315u, 3628762502u, 3188234303u, 1362922028u, 0, ASIN_TOLERANCE, 0},
+{ 867, 721900432u, 3813492886u, 3202458179u, 1901070055u, 721900432u, 3813492886u, 0, ASIN_TOLERANCE, 0},
+{ 868, 2869411161u, 242471816u, 1098704131u, 1526904338u, 2869411161u, 242471816u, 0, ASIN_TOLERANCE, 0},
+{ 869, 1027232266u, 671155008u, 1093002146u, 4241764136u, 1027232266u, 671155008u, 0, ASIN_TOLERANCE, 0},
+{ 870, 2277521859u, 4097248738u, 1056810493u, 578681886u, 2277521859u, 4097248738u, 0, ASIN_TOLERANCE, 0},
+{ 871, 277897075u, 2743813242u, 1048038468u, 2228686199u, 277897075u, 2743813242u, 0, ASIN_TOLERANCE, 0},
+{ 872, 2669729433u, 777624847u, 3204357191u, 721009894u, 2669729433u, 777624847u, 0, ASIN_TOLERANCE, 0},
+{ 873, 900729335u, 724757172u, 1074804044u, 1443361721u, 900729335u, 724757172u, 0, ASIN_TOLERANCE, 0},
+{ 874, 2794978652u, 1829019782u, 1092425225u, 921360204u, 2794978652u, 1829019782u, 0, ASIN_TOLERANCE, 0},
+{ 875, 1055573469u, 599714409u, 3252379270u, 4008804686u, 1055573469u, 599919108u, 0, ASIN_TOLERANCE, 0},
+{ 876, 2335315701u, 1009458928u, 1083845809u, 4245287698u, 2335315701u, 1009458928u, 0, ASIN_TOLERANCE, 0},
+{ 877, 407962355u, 1393652229u, 3198335362u, 477976573u, 407962355u, 1393652229u, 0, ASIN_TOLERANCE, 0},
+{ 878, 119992u, 617334033u, 3226883256u, 1392617441u, 119992u, 617334033u, 0, ASIN_TOLERANCE, 0},
+{ 879, 2526781811u, 3189972160u, 1058939729u, 1442809487u, 2526781811u, 3189972160u, 0, ASIN_TOLERANCE, 0},
+{ 880, 2785887182u, 1497507448u, 3207820115u, 1605709634u, 2785887182u, 1497507448u, 0, ASIN_TOLERANCE, 0},
+{ 881, 400505812u, 1497124553u, 1056018407u, 1916183627u, 400505812u, 1497124553u, 0, ASIN_TOLERANCE, 0},
+{ 882, 379250418u, 187810760u, 1045258725u, 2282203450u, 379250418u, 187810760u, 0, ASIN_TOLERANCE, 0},
+{ 883, 619840292u, 3486351235u, 3238811394u, 4182495542u, 619840292u, 3486351235u, 0, ASIN_TOLERANCE, 0},
+{ 884, 2587166700u, 1845445426u, 1101440582u, 1926724082u, 2587166700u, 1845445426u, 0, ASIN_TOLERANCE, 0},
+{ 885, 2208479151u, 3630948001u, 3210436304u, 3757166747u, 2208479151u, 3630948001u, 0, ASIN_TOLERANCE, 0},
+{ 886, 156467129u, 2426945694u, 1100551290u, 691736139u, 156467129u, 2426945694u, 0, ASIN_TOLERANCE, 0},
+{ 887, 3176502800u, 648364171u, 1041433075u, 4184885944u, 3176502800u, 648364171u, 0, ASIN_TOLERANCE, 0},
+{ 888, 1000987303u, 4288583860u, 1088664697u, 2475611219u, 1000987303u, 4288583860u, 0, ASIN_TOLERANCE, 0},
+{ 889, 1063779408u, 1032586628u, 1093050016u, 1335820726u, 1063779410u, 2088980724u, 0, ASIN_TOLERANCE, 0},
+{ 890, 2203998268u, 1808427032u, 1080779860u, 3408316613u, 2203998268u, 1808427032u, 0, ASIN_TOLERANCE, 0},
+{ 891, 2973050448u, 377900895u, 3246382680u, 3547565419u, 2973050448u, 377900895u, 0, ASIN_TOLERANCE, 0},
+{ 892, 2189796743u, 2323627716u, 1059972652u, 2094048557u, 2189796743u, 2323627716u, 0, ASIN_TOLERANCE, 0},
+{ 893, 3196853156u, 698816446u, 3234028118u, 1825626029u, 3196853156u, 698816504u, 0, ASIN_TOLERANCE, 0},
+{ 894, 3053056428u, 4246800079u, 3198693322u, 1124410156u, 3053056428u, 4246800079u, 0, ASIN_TOLERANCE, 0},
+{ 895, 418318520u, 2453135589u, 1055899444u, 314708747u, 418318520u, 2453135589u, 0, ASIN_TOLERANCE, 0},
+{ 896, 2903016736u, 3296787864u, 1068197912u, 3000361169u, 2903016736u, 3296787864u, 0, ASIN_TOLERANCE, 0},
+{ 897, 3078102424u, 2237367418u, 1089582486u, 4042266354u, 3078102424u, 2237367418u, 0, ASIN_TOLERANCE, 0},
+{ 898, 3141633458u, 3484406269u, 3222793392u, 1868977643u, 3141633458u, 3484406269u, 0, ASIN_TOLERANCE, 0},
+{ 899, 551079618u, 3353193428u, 1046058481u, 1204175477u, 551079618u, 3353193428u, 0, ASIN_TOLERANCE, 0},
+{ 900, 372140985u, 2936300483u, 3219636923u, 3841711417u, 372140985u, 2936300483u, 0, ASIN_TOLERANCE, 0},
+{ 901, 673975119u, 1967394048u, 1058351548u, 460961975u, 673975119u, 1967394048u, 0, ASIN_TOLERANCE, 0},
+{ 902, 186542430u, 2037284927u, 3201399531u, 2969937827u, 186542430u, 2037284927u, 0, ASIN_TOLERANCE, 0},
+{ 903, 605316943u, 4193097538u, 3187909191u, 3039418420u, 605316943u, 4193097538u, 0, ASIN_TOLERANCE, 0},
+{ 904, 560007813u, 3490045229u, 1095745195u, 4291149159u, 560007813u, 3490045229u, 0, ASIN_TOLERANCE, 0},
+{ 905, 2719344253u, 2428281947u, 3244840847u, 1401325941u, 2719344253u, 2428281947u, 0, ASIN_TOLERANCE, 0},
+{ 906, 3086950621u, 2958762056u, 1053682542u, 1079751324u, 3086950621u, 2958762056u, 0, ASIN_TOLERANCE, 0},
+{ 907, 2586448231u, 4153073282u, 3242138780u, 2976596113u, 2586448231u, 4153073282u, 0, ASIN_TOLERANCE, 0},
+{ 908, 2225350223u, 3033242648u, 3218615502u, 4046734098u, 2225350223u, 3033242648u, 0, ASIN_TOLERANCE, 0},
+{ 909, 144835976u, 3784918863u, 3247369913u, 2134568674u, 144835976u, 3784918863u, 0, ASIN_TOLERANCE, 0},
+{ 910, 1037093430u, 2677404300u, 1085544968u, 741961444u, 1037093430u, 2677404300u, 0, ASIN_TOLERANCE, 0},
+{ 911, 3191671070u, 3184472282u, 1092761713u, 2878921656u, 3191671070u, 3184472282u, 0, ASIN_TOLERANCE, 0},
+{ 912, 2174282657u, 3434230759u, 3221702019u, 3917984952u, 2174282657u, 3434230759u, 0, ASIN_TOLERANCE, 0},
+{ 913, 2545165920u, 2576188896u, 3242449625u, 1091446541u, 2545165920u, 2576188896u, 0, ASIN_TOLERANCE, 0},
+{ 914, 331286912u, 1182911629u, 3252138078u, 370659473u, 331286912u, 1182911629u, 0, ASIN_TOLERANCE, 0},
+{ 915, 2176330507u, 1444733769u, 1073172315u, 1980291498u, 2176330507u, 1444733769u, 0, ASIN_TOLERANCE, 0},
+{ 916, 2678247043u, 2360783610u, 3208952465u, 1231254630u, 2678247043u, 2360783610u, 0, ASIN_TOLERANCE, 0},
+{ 917, 2305545884u, 3838689849u, 1072879962u, 256746588u, 2305545884u, 3838689849u, 0, ASIN_TOLERANCE, 0},
+{ 918, 2902784540u, 3667306355u, 3251214292u, 749864809u, 2902784540u, 3667306355u, 0, ASIN_TOLERANCE, 0},
+{ 919, 2604503669u, 507891905u, 1053625983u, 2704533753u, 2604503669u, 507891905u, 0, ASIN_TOLERANCE, 0},
+{ 920, 1030839861u, 3584765547u, 3245124397u, 2257447093u, 1030839861u, 3584765547u, 0, ASIN_TOLERANCE, 0},
+{ 921, 3066547476u, 3315149772u, 1066493112u, 1016007949u, 3066547476u, 3315149772u, 0, ASIN_TOLERANCE, 0},
+{ 922, 449363956u, 825363580u, 3232843486u, 209798625u, 449363956u, 825363580u, 0, ASIN_TOLERANCE, 0},
+{ 923, 835609236u, 3268577204u, 1096097376u, 1911303780u, 835609236u, 3268577204u, 0, ASIN_TOLERANCE, 0},
+{ 924, 2498038993u, 1753975943u, 1042812372u, 3813343580u, 2498038993u, 1753975943u, 0, ASIN_TOLERANCE, 0},
+{ 925, 2711382061u, 729612230u, 3214799337u, 998858159u, 2711382061u, 729612230u, 0, ASIN_TOLERANCE, 0},
+{ 926, 362629194u, 436029885u, 1040410334u, 1429955158u, 362629194u, 436029885u, 0, ASIN_TOLERANCE, 0},
+{ 927, 535596587u, 3221540113u, 1098769124u, 1388898057u, 535596587u, 3221540113u, 0, ASIN_TOLERANCE, 0},
+{ 928, 3182989542u, 324306108u, 3236216574u, 3657300235u, 3182989542u, 324306108u, 0, ASIN_TOLERANCE, 0},
+{ 929, 2615512563u, 583339032u, 1059119779u, 2312064517u, 2615512563u, 583339032u, 0, ASIN_TOLERANCE, 0},
+{ 930, 1018901539u, 1094068533u, 3243006833u, 3107499181u, 1018901539u, 1094068533u, 0, ASIN_TOLERANCE, 0},
+{ 931, 621064893u, 2330095236u, 1045494806u, 3166363539u, 621064893u, 2330095236u, 0, ASIN_TOLERANCE, 0},
+{ 932, 848850921u, 2922855425u, 1055270013u, 3382352474u, 848850921u, 2922855425u, 0, ASIN_TOLERANCE, 0},
+{ 933, 2636544164u, 2042479846u, 1052493506u, 1108839173u, 2636544164u, 2042479846u, 0, ASIN_TOLERANCE, 0},
+{ 934, 14409368u, 3796172167u, 1093571065u, 169360454u, 14409368u, 3796172167u, 0, ASIN_TOLERANCE, 0},
+{ 935, 792852082u, 1860101737u, 1103906352u, 1684270183u, 792852082u, 1860101737u, 0, ASIN_TOLERANCE, 0},
+{ 936, 857946959u, 1478693394u, 1081338739u, 2709296315u, 857946959u, 1478693394u, 0, ASIN_TOLERANCE, 0},
+{ 937, 148167699u, 2960729928u, 1099267383u, 1713640531u, 148167699u, 2960729928u, 0, ASIN_TOLERANCE, 0},
+{ 938, 385577172u, 3119726590u, 1073506160u, 3652712370u, 385577172u, 3119726590u, 0, ASIN_TOLERANCE, 0},
+{ 939, 2345316997u, 2223927344u, 1087592708u, 1855918127u, 2345316997u, 2223927344u, 0, ASIN_TOLERANCE, 0},
+{ 940, 283564999u, 1025757067u, 1082898254u, 4130586757u, 283564999u, 1025757067u, 0, ASIN_TOLERANCE, 0},
+{ 941, 248963649u, 1732390968u, 3252871699u, 2342842299u, 248963649u, 1732390968u, 0, ASIN_TOLERANCE, 0},
+{ 942, 968306674u, 284897931u, 3252953804u, 1924892993u, 968306674u, 284897931u, 0, ASIN_TOLERANCE, 0},
+{ 943, 2792404953u, 3037915642u, 3201314702u, 236884699u, 2792404953u, 3037915642u, 0, ASIN_TOLERANCE, 0},
+{ 944, 2786424109u, 2193269825u, 1080777124u, 2443415975u, 2786424109u, 2193269825u, 0, ASIN_TOLERANCE, 0},
+{ 945, 519195528u, 875427160u, 3254060908u, 2005185235u, 519195528u, 875427160u, 0, ASIN_TOLERANCE, 0},
+{ 946, 2834778379u, 1185249950u, 3192573802u, 43728140u, 2834778379u, 1185249950u, 0, ASIN_TOLERANCE, 0},
+{ 947, 941414883u, 1968452001u, 3208083074u, 2872106033u, 941414883u, 1968452001u, 0, ASIN_TOLERANCE, 0},
+{ 948, 1058483372u, 1955688296u, 1041438818u, 4288876237u, 1058483372u, 1964184798u, 0, ASIN_TOLERANCE, 0},
+{ 949, 260098041u, 1687624754u, 1047766046u, 3073412424u, 260098041u, 1687624754u, 0, ASIN_TOLERANCE, 0},
+{ 950, 3060253014u, 1209878394u, 1095484022u, 291364597u, 3060253014u, 1209878394u, 0, ASIN_TOLERANCE, 0},
+{ 951, 468175369u, 3483008135u, 1104326057u, 3143994227u, 468175369u, 3483008135u, 0, ASIN_TOLERANCE, 0},
+{ 952, 2417131043u, 3223340235u, 1090336173u, 1399132887u, 2417131043u, 3223340235u, 0, ASIN_TOLERANCE, 0},
+{ 953, 783617139u, 4188530565u, 1049645776u, 3448942728u, 783617139u, 4188530565u, 0, ASIN_TOLERANCE, 0},
+{ 954, 660957346u, 1627557770u, 1058246656u, 2945931719u, 660957346u, 1627557770u, 0, ASIN_TOLERANCE, 0},
+{ 955, 1018601337u, 3373123648u, 3197792793u, 672208537u, 1018601337u, 3373123648u, 0, ASIN_TOLERANCE, 0},
+{ 956, 408015225u, 3778617114u, 1062846388u, 1358342023u, 408015225u, 3778617114u, 0, ASIN_TOLERANCE, 0},
+{ 957, 410316381u, 2900182547u, 3199310787u, 414812664u, 410316381u, 2900182547u, 0, ASIN_TOLERANCE, 0},
+{ 958, 633591966u, 2464347659u, 3205131467u, 3988778663u, 633591966u, 2464347659u, 0, ASIN_TOLERANCE, 0},
+{ 959, 229808805u, 3135249601u, 1100087621u, 4100875262u, 229808805u, 3135249601u, 0, ASIN_TOLERANCE, 0},
+{ 960, 793399715u, 2358359525u, 1045184735u, 1183252266u, 793399715u, 2358359525u, 0, ASIN_TOLERANCE, 0},
+{ 961, 971564307u, 1400352853u, 3240053853u, 734055542u, 971564307u, 1400352853u, 0, ASIN_TOLERANCE, 0},
+{ 962, 348066411u, 1753967678u, 3224978909u, 1995531974u, 348066411u, 1753967678u, 0, ASIN_TOLERANCE, 0},
+{ 963, 2638555255u, 1500031970u, 3233676488u, 4052958340u, 2638555255u, 1500031970u, 0, ASIN_TOLERANCE, 0},
+{ 964, 536164755u, 1866935720u, 3200756597u, 3746696244u, 536164755u, 1866935720u, 0, ASIN_TOLERANCE, 0},
+{ 965, 91363664u, 2978288684u, 1106515721u, 564707827u, 91363664u, 2978288684u, 0, ASIN_TOLERANCE, 0},
+{ 966, 447397583u, 1517077030u, 1044934689u, 4156529635u, 447397583u, 1517077030u, 0, ASIN_TOLERANCE, 0},
+{ 967, 884390674u, 1427263585u, 3247549500u, 559009887u, 884390674u, 1427263585u, 0, ASIN_TOLERANCE, 0},
+{ 968, 709965825u, 427386166u, 3224310223u, 2897984604u, 709965825u, 427386166u, 0, ASIN_TOLERANCE, 0},
+{ 969, 748422445u, 984833499u, 1086168339u, 3414464869u, 748422445u, 984833499u, 0, ASIN_TOLERANCE, 0},
+{ 970, 3037316018u, 1275655663u, 1051250192u, 1788042252u, 3037316018u, 1275655663u, 0, ASIN_TOLERANCE, 0},
+{ 971, 647298401u, 1752811522u, 1054424401u, 3069200833u, 647298401u, 1752811522u, 0, ASIN_TOLERANCE, 0},
+{ 972, 336691782u, 4159629802u, 3227935989u, 905739373u, 336691782u, 4159629802u, 0, ASIN_TOLERANCE, 0},
+{ 973, 840207318u, 3449457931u, 1053675501u, 651755324u, 840207318u, 3449457931u, 0, ASIN_TOLERANCE, 0},
+{ 974, 588654397u, 824950980u, 1063835328u, 2970166564u, 588654397u, 824950980u, 0, ASIN_TOLERANCE, 0},
+{ 975, 1002643220u, 3980858800u, 1097889355u, 860102770u, 1002643220u, 3980858800u, 0, ASIN_TOLERANCE, 0},
+{ 976, 2925126437u, 3352952738u, 1087086428u, 1202852913u, 2925126437u, 3352952738u, 0, ASIN_TOLERANCE, 0},
+{ 977, 3153295755u, 3493096285u, 3210665381u, 1226230602u, 3153295755u, 3493096285u, 0, ASIN_TOLERANCE, 0},
+{ 978, 2861370199u, 2237153875u, 1063605905u, 2592496943u, 2861370199u, 2237153875u, 0, ASIN_TOLERANCE, 0},
+{ 979, 812704965u, 1204681469u, 1084151922u, 928193012u, 812704965u, 1204681469u, 0, ASIN_TOLERANCE, 0},
+{ 980, 717902981u, 1892558657u, 3188880850u, 472712482u, 717902981u, 1892558657u, 0, ASIN_TOLERANCE, 0},
+{ 981, 206133394u, 1107589453u, 3240016549u, 2840254081u, 206133394u, 1107589453u, 0, ASIN_TOLERANCE, 0},
+{ 982, 645145771u, 1760994629u, 3217094564u, 2931138356u, 645145771u, 1760994629u, 0, ASIN_TOLERANCE, 0},
+{ 983, 2682176516u, 3313118532u, 1095060283u, 1256408484u, 2682176516u, 3313118532u, 0, ASIN_TOLERANCE, 0},
+{ 984, 958852249u, 2822240883u, 3191644368u, 1759139386u, 958852249u, 2822240883u, 0, ASIN_TOLERANCE, 0},
+{ 985, 3064303449u, 3148616726u, 3216643810u, 4033784566u, 3064303449u, 3148616726u, 0, ASIN_TOLERANCE, 0},
+{ 986, 2672549129u, 50508488u, 3234572856u, 2196737134u, 2672549129u, 50508488u, 0, ASIN_TOLERANCE, 0},
+{ 987, 199760205u, 1739301489u, 1047113374u, 2964036605u, 199760205u, 1739301489u, 0, ASIN_TOLERANCE, 0},
+{ 988, 2742280838u, 32766355u, 1078278376u, 684801414u, 2742280838u, 32766355u, 0, ASIN_TOLERANCE, 0},
+{ 989, 860036812u, 2725458084u, 3197542874u, 3768641510u, 860036812u, 2725458084u, 0, ASIN_TOLERANCE, 0},
+{ 990, 602166919u, 2877639205u, 3248394899u, 2733580401u, 602166919u, 2877639205u, 0, ASIN_TOLERANCE, 0},
+{ 991, 217158246u, 3237117913u, 1086314718u, 1194088701u, 217158246u, 3237117913u, 0, ASIN_TOLERANCE, 0},
+{ 992, 507701220u, 2969027390u, 3254737744u, 2845466153u, 507701220u, 2969027390u, 0, ASIN_TOLERANCE, 0},
+{ 993, 39202927u, 1308825168u, 3231339694u, 1185199746u, 39202927u, 1308825168u, 0, ASIN_TOLERANCE, 0},
+{ 994, 2538930797u, 3429306274u, 3236439133u, 3100989857u, 2538930797u, 3429306274u, 0, ASIN_TOLERANCE, 0},
+{ 995, 2251277391u, 4179597430u, 1060231463u, 2735521684u, 2251277391u, 4179597430u, 0, ASIN_TOLERANCE, 0},
+{ 996, 863742433u, 1926531024u, 1040565159u, 1724549325u, 863742433u, 1926531024u, 0, ASIN_TOLERANCE, 0},
+{ 997, 344684868u, 1215071411u, 1068384117u, 483238293u, 344684868u, 1215071411u, 0, ASIN_TOLERANCE, 0},
+{ 998, 317818997u, 197061949u, 1043473339u, 249253513u, 317818997u, 197061949u, 0, ASIN_TOLERANCE, 0},
+{ 999, 2250299688u, 1410107326u, 3198269248u, 2880209598u, 2250299688u, 1410107326u, 0, ASIN_TOLERANCE, 0},
+
+
+// AUTOMATICALLY GENERATED VECTORS STOP
+
+};
+
+#endif // CYGONCE_LIBM_ASIN_H multiple inclusion protection
+
+// EOF asin.h
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/asinf.c b/ecos/packages/language/c/libm/current/tests/vectors/asinf.c
new file mode 100644
index 0000000..52b01c8
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/asinf.c
@@ -0,0 +1,115 @@
+//===========================================================================
+//
+// asin.c
+//
+// Test of asin() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// Declarations for test system:
+//
+// TESTCASE_TYPE=CYG_TEST_MODULE
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include <cyg/infra/testcase.h> // Test infrastructure
+#include <math.h> // Header for this package
+#include <sys/ieeefp.h> // Cyg_libm_ieee_double_shape_type
+#include "vectors/vector_support_float.h"// extra support for math tests
+
+#include "vectors/asinf.h"
+
+// FUNCTIONS
+
+static void
+test( CYG_ADDRWORD data )
+{
+ cyg_ucount32 vec_size;
+ cyg_bool ret;
+
+ vec_size = sizeof(asinf_vec) / sizeof(Cyg_libm_test_float_vec_t);
+ ret = doTestVecFloat( (CYG_ADDRWORD) &asinf, CYG_LIBM_TEST_VEC_FLOAT,
+ CYG_LIBM_TEST_VEC_NONE, CYG_LIBM_TEST_VEC_FLOAT,
+ &asinf_vec[0], vec_size );
+
+ if (ret==true)
+ {
+ CYG_TEST_PASS("asinf() is stable");
+ } // if
+ else
+ {
+ CYG_TEST_FAIL("asinf() failed tests");
+ } // else
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for Math "
+ "library asinf() function");
+} // test()
+
+
+int
+main(int argc, char *argv[])
+{
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for Math library "
+ "asinf() function");
+
+ START_TEST( test );
+
+ CYG_TEST_PASS_FINISH("Testing is not applicable to this configuration");
+
+} // main()
+
+
+// EOF asin.c
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/asinf.h b/ecos/packages/language/c/libm/current/tests/vectors/asinf.h
new file mode 100644
index 0000000..2d174dc
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/asinf.h
@@ -0,0 +1,820 @@
+#ifndef CYGONCE_LIBM_ASIN_H
+#define CYGONCE_LIBM_ASIN_H
+//===========================================================================
+//
+// asin.h
+//
+// Test vectors for testing of asin() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage: #include "vectors/asin.h"
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include "vectors/vector_support_float.h"// extra support for math tests
+
+#define ASIN_TOLERANCE 1.0E-04
+
+static const Cyg_libm_test_float_vec_t asinf_vec[] = {
+
+// AUTOMATICALLY GENERATED VECTORS START
+
+{0, 3214514586u, 1115684864u, 2143289344u, EDOM, ASIN_TOLERANCE, 0},
+{1, 3214430700u, 1115684864u, 2143289344u, EDOM, ASIN_TOLERANCE, 0},
+{2, 3214346813u, 1115684864u, 2143289344u, EDOM, ASIN_TOLERANCE, 0},
+{3, 3214262927u, 1115684864u, 2143289344u, EDOM, ASIN_TOLERANCE, 0},
+{4, 3214179041u, 1115684864u, 2143289344u, EDOM, ASIN_TOLERANCE, 0},
+{5, 3214095155u, 1115684864u, 2143289344u, EDOM, ASIN_TOLERANCE, 0},
+{6, 3214011269u, 1115684864u, 2143289344u, EDOM, ASIN_TOLERANCE, 0},
+{7, 3213927383u, 1115684864u, 2143289344u, EDOM, ASIN_TOLERANCE, 0},
+{8, 3213843497u, 1115684864u, 2143289344u, EDOM, ASIN_TOLERANCE, 0},
+{9, 3213759611u, 1115684864u, 2143289344u, EDOM, ASIN_TOLERANCE, 0},
+{10, 3213675725u, 1115684864u, 2143289344u, EDOM, ASIN_TOLERANCE, 0},
+{11, 3213591839u, 1115684864u, 2143289344u, EDOM, ASIN_TOLERANCE, 0},
+{12, 3213507953u, 1115684864u, 2143289344u, EDOM, ASIN_TOLERANCE, 0},
+{13, 3213424067u, 1115684864u, 2143289344u, EDOM, ASIN_TOLERANCE, 0},
+{14, 3213340180u, 1115684864u, 2143289344u, EDOM, ASIN_TOLERANCE, 0},
+{15, 3213256294u, 1115684864u, 2143289344u, EDOM, ASIN_TOLERANCE, 0},
+{16, 3213172408u, 1115684864u, 2143289344u, EDOM, ASIN_TOLERANCE, 0},
+{17, 3213088522u, 1115684864u, 2143289344u, EDOM, ASIN_TOLERANCE, 0},
+{18, 3213004636u, 1115684864u, 2143289344u, EDOM, ASIN_TOLERANCE, 0},
+{19, 3212920750u, 1115684864u, 2143289344u, EDOM, ASIN_TOLERANCE, 0},
+{20, 3212836864u, 3217625051u, 3217625051u, 0, ASIN_TOLERANCE, 0},
+{21, 3212669092u, 3216437732u, 3216437732u, 0, ASIN_TOLERANCE, 0},
+{22, 3212501320u, 3215944521u, 3215944521u, 0, ASIN_TOLERANCE, 0},
+{23, 3212333548u, 3215565099u, 3215565099u, 0, ASIN_TOLERANCE, 0},
+{24, 3212165775u, 3215244413u, 3215244413u, 0, ASIN_TOLERANCE, 0},
+{25, 3211998003u, 3214961161u, 3214961161u, 0, ASIN_TOLERANCE, 0},
+{26, 3211830231u, 3214704423u, 3214704423u, 0, ASIN_TOLERANCE, 0},
+{27, 3211662459u, 3214467718u, 3214467718u, 0, ASIN_TOLERANCE, 0},
+{28, 3211494687u, 3214246826u, 3214246826u, 0, ASIN_TOLERANCE, 0},
+{29, 3211326915u, 3214038819u, 3214038819u, 0, ASIN_TOLERANCE, 0},
+{30, 3211159142u, 3213841564u, 3213841564u, 0, ASIN_TOLERANCE, 0},
+{31, 3210991370u, 3213653454u, 3213653454u, 0, ASIN_TOLERANCE, 0},
+{32, 3210823598u, 3213473242u, 3213473242u, 0, ASIN_TOLERANCE, 0},
+{33, 3210655826u, 3213299935u, 3213299935u, 0, ASIN_TOLERANCE, 0},
+{34, 3210488054u, 3213132728u, 3213132728u, 0, ASIN_TOLERANCE, 0},
+{35, 3210320282u, 3212970959u, 3212970959u, 0, ASIN_TOLERANCE, 0},
+{36, 3210152509u, 3212791284u, 3212791284u, 0, ASIN_TOLERANCE, 0},
+{37, 3209984737u, 3212486350u, 3212486350u, 0, ASIN_TOLERANCE, 0},
+{38, 3209816965u, 3212189449u, 3212189449u, 0, ASIN_TOLERANCE, 0},
+{39, 3209649193u, 3211899893u, 3211899893u, 0, ASIN_TOLERANCE, 0},
+{40, 3209481421u, 3211617081u, 3211617081u, 0, ASIN_TOLERANCE, 0},
+{41, 3209313649u, 3211340489u, 3211340489u, 0, ASIN_TOLERANCE, 0},
+{42, 3209145876u, 3211069649u, 3211069649u, 0, ASIN_TOLERANCE, 0},
+{43, 3208978104u, 3210804156u, 3210804156u, 0, ASIN_TOLERANCE, 0},
+{44, 3208810332u, 3210543640u, 3210543640u, 0, ASIN_TOLERANCE, 0},
+{45, 3208642560u, 3210287770u, 3210287770u, 0, ASIN_TOLERANCE, 0},
+{46, 3208474788u, 3210036251u, 3210036251u, 0, ASIN_TOLERANCE, 0},
+{47, 3208307016u, 3209788813u, 3209788813u, 0, ASIN_TOLERANCE, 0},
+{48, 3208139244u, 3209545215u, 3209545215u, 0, ASIN_TOLERANCE, 0},
+{49, 3207971471u, 3209305230u, 3209305230u, 0, ASIN_TOLERANCE, 0},
+{50, 3207803699u, 3209068660u, 3209068660u, 0, ASIN_TOLERANCE, 0},
+{51, 3207635927u, 3208835315u, 3208835315u, 0, ASIN_TOLERANCE, 0},
+{52, 3207468155u, 3208605024u, 3208605024u, 0, ASIN_TOLERANCE, 0},
+{53, 3207300383u, 3208377629u, 3208377629u, 0, ASIN_TOLERANCE, 0},
+{54, 3207132611u, 3208152982u, 3208152982u, 0, ASIN_TOLERANCE, 0},
+{55, 3206964838u, 3207930946u, 3207930946u, 0, ASIN_TOLERANCE, 0},
+{56, 3206797066u, 3207711396u, 3207711396u, 0, ASIN_TOLERANCE, 0},
+{57, 3206629294u, 3207494214u, 3207494214u, 0, ASIN_TOLERANCE, 0},
+{58, 3206461522u, 3207279289u, 3207279289u, 0, ASIN_TOLERANCE, 0},
+{59, 3206293750u, 3207066519u, 3207066519u, 0, ASIN_TOLERANCE, 0},
+{60, 3206125978u, 3206855806u, 3206855806u, 0, ASIN_TOLERANCE, 0},
+{61, 3205958205u, 3206647058u, 3206647058u, 0, ASIN_TOLERANCE, 0},
+{62, 3205790433u, 3206440193u, 3206440193u, 0, ASIN_TOLERANCE, 0},
+{63, 3205622661u, 3206235129u, 3206235129u, 0, ASIN_TOLERANCE, 0},
+{64, 3205454889u, 3206031787u, 3206031787u, 0, ASIN_TOLERANCE, 0},
+{65, 3205287117u, 3205830100u, 3205830100u, 0, ASIN_TOLERANCE, 0},
+{66, 3205119345u, 3205629996u, 3205629996u, 0, ASIN_TOLERANCE, 0},
+{67, 3204951572u, 3205431410u, 3205431410u, 0, ASIN_TOLERANCE, 0},
+{68, 3204783800u, 3205234284u, 3205234284u, 0, ASIN_TOLERANCE, 0},
+{69, 3204616028u, 3205038560u, 3205038560u, 0, ASIN_TOLERANCE, 0},
+{70, 3204448256u, 3204844178u, 3204844178u, 0, ASIN_TOLERANCE, 0},
+{71, 3204112712u, 3204651089u, 3204651089u, 0, ASIN_TOLERANCE, 0},
+{72, 3203777167u, 3204459240u, 3204459240u, 0, ASIN_TOLERANCE, 0},
+{73, 3203441623u, 3204088914u, 3204088914u, 0, ASIN_TOLERANCE, 0},
+{74, 3203106079u, 3203709898u, 3203709898u, 0, ASIN_TOLERANCE, 0},
+{75, 3202770534u, 3203333085u, 3203333085u, 0, ASIN_TOLERANCE, 0},
+{76, 3202434990u, 3202958395u, 3202958395u, 0, ASIN_TOLERANCE, 0},
+{77, 3202099446u, 3202585743u, 3202585743u, 0, ASIN_TOLERANCE, 0},
+{78, 3201763901u, 3202215051u, 3202215051u, 0, ASIN_TOLERANCE, 0},
+{79, 3201428357u, 3201846246u, 3201846246u, 0, ASIN_TOLERANCE, 0},
+{80, 3201092813u, 3201479254u, 3201479254u, 0, ASIN_TOLERANCE, 0},
+{81, 3200757268u, 3201114005u, 3201114005u, 0, ASIN_TOLERANCE, 0},
+{82, 3200421724u, 3200750433u, 3200750433u, 0, ASIN_TOLERANCE, 0},
+{83, 3200086180u, 3200388473u, 3200388473u, 0, ASIN_TOLERANCE, 0},
+{84, 3199750636u, 3200028060u, 3200028060u, 0, ASIN_TOLERANCE, 0},
+{85, 3199415091u, 3199669135u, 3199669135u, 0, ASIN_TOLERANCE, 0},
+{86, 3199079547u, 3199311640u, 3199311640u, 0, ASIN_TOLERANCE, 0},
+{87, 3198744003u, 3198955516u, 3198955516u, 0, ASIN_TOLERANCE, 0},
+{88, 3198408458u, 3198600708u, 3198600708u, 0, ASIN_TOLERANCE, 0},
+{89, 3198072914u, 3198247163u, 3198247163u, 0, ASIN_TOLERANCE, 0},
+{90, 3197737370u, 3197894829u, 3197894829u, 0, ASIN_TOLERANCE, 0},
+{91, 3197401825u, 3197543654u, 3197543654u, 0, ASIN_TOLERANCE, 0},
+{92, 3197066281u, 3197193590u, 3197193590u, 0, ASIN_TOLERANCE, 0},
+{93, 3196730737u, 3196844588u, 3196844588u, 0, ASIN_TOLERANCE, 0},
+{94, 3196395192u, 3196496600u, 3196496600u, 0, ASIN_TOLERANCE, 0},
+{95, 3196059648u, 3196149582u, 3196149582u, 0, ASIN_TOLERANCE, 0},
+{96, 3195388559u, 3195547329u, 3195547329u, 0, ASIN_TOLERANCE, 0},
+{97, 3194717471u, 3194856902u, 3194856902u, 0, ASIN_TOLERANCE, 0},
+{98, 3194046382u, 3194168149u, 3194168149u, 0, ASIN_TOLERANCE, 0},
+{99, 3193375293u, 3193480987u, 3193480987u, 0, ASIN_TOLERANCE, 0},
+{100, 3192704205u, 3192795334u, 3192795334u, 0, ASIN_TOLERANCE, 0},
+{101, 3192033116u, 3192111106u, 3192111106u, 0, ASIN_TOLERANCE, 0},
+{102, 3191362028u, 3191428228u, 3191428228u, 0, ASIN_TOLERANCE, 0},
+{103, 3190690939u, 3190746617u, 3190746617u, 0, ASIN_TOLERANCE, 0},
+{104, 3190019850u, 3190066199u, 3190066199u, 0, ASIN_TOLERANCE, 0},
+{105, 3189348762u, 3189386898u, 3189386898u, 0, ASIN_TOLERANCE, 0},
+{106, 3188677673u, 3188708638u, 3188708638u, 0, ASIN_TOLERANCE, 0},
+{107, 3188006584u, 3188031346u, 3188031346u, 0, ASIN_TOLERANCE, 0},
+{108, 3186999951u, 3187038858u, 3187038858u, 0, ASIN_TOLERANCE, 0},
+{109, 3185657774u, 3185687711u, 3185687711u, 0, ASIN_TOLERANCE, 0},
+{110, 3184315597u, 3184338068u, 3184338068u, 0, ASIN_TOLERANCE, 0},
+{111, 3182973420u, 3182989787u, 3182989787u, 0, ASIN_TOLERANCE, 0},
+{112, 3181631242u, 3181642728u, 3181642728u, 0, ASIN_TOLERANCE, 0},
+{113, 3180289065u, 3180296755u, 3180296755u, 0, ASIN_TOLERANCE, 0},
+{114, 3178611343u, 3178621022u, 3178621022u, 0, ASIN_TOLERANCE, 0},
+{115, 3175926989u, 3175932588u, 3175932588u, 0, ASIN_TOLERANCE, 0},
+{116, 3173242634u, 3173245499u, 3173245499u, 0, ASIN_TOLERANCE, 0},
+{117, 3170222735u, 3170225152u, 3170225152u, 0, ASIN_TOLERANCE, 0},
+{118, 3164854026u, 3164854742u, 3164854742u, 0, ASIN_TOLERANCE, 0},
+{119, 3156465418u, 3156465597u, 3156465597u, 0, ASIN_TOLERANCE, 0},
+{120, 1008981770u, 1008981949u, 1008981949u, 0, ASIN_TOLERANCE, 0},
+{121, 1017370378u, 1017371094u, 1017371094u, 0, ASIN_TOLERANCE, 0},
+{122, 1022739087u, 1022741504u, 1022741504u, 0, ASIN_TOLERANCE, 0},
+{123, 1025758986u, 1025761851u, 1025761851u, 0, ASIN_TOLERANCE, 0},
+{124, 1028443341u, 1028448940u, 1028448940u, 0, ASIN_TOLERANCE, 0},
+{125, 1031127695u, 1031137374u, 1031137374u, 0, ASIN_TOLERANCE, 0},
+{126, 1032805417u, 1032813107u, 1032813107u, 0, ASIN_TOLERANCE, 0},
+{127, 1034147594u, 1034159080u, 1034159080u, 0, ASIN_TOLERANCE, 0},
+{128, 1035489772u, 1035506139u, 1035506139u, 0, ASIN_TOLERANCE, 0},
+{129, 1036831949u, 1036854420u, 1036854420u, 0, ASIN_TOLERANCE, 0},
+{130, 1038174126u, 1038204063u, 1038204063u, 0, ASIN_TOLERANCE, 0},
+{131, 1039516303u, 1039555210u, 1039555210u, 0, ASIN_TOLERANCE, 0},
+{132, 1040522936u, 1040547698u, 1040547698u, 0, ASIN_TOLERANCE, 0},
+{133, 1041194025u, 1041224990u, 1041224990u, 0, ASIN_TOLERANCE, 0},
+{134, 1041865114u, 1041903250u, 1041903250u, 0, ASIN_TOLERANCE, 0},
+{135, 1042536202u, 1042582551u, 1042582551u, 0, ASIN_TOLERANCE, 0},
+{136, 1043207291u, 1043262969u, 1043262969u, 0, ASIN_TOLERANCE, 0},
+{137, 1043878380u, 1043944580u, 1043944580u, 0, ASIN_TOLERANCE, 0},
+{138, 1044549468u, 1044627458u, 1044627458u, 0, ASIN_TOLERANCE, 0},
+{139, 1045220557u, 1045311686u, 1045311686u, 0, ASIN_TOLERANCE, 0},
+{140, 1045891645u, 1045997339u, 1045997339u, 0, ASIN_TOLERANCE, 0},
+{141, 1046562734u, 1046684501u, 1046684501u, 0, ASIN_TOLERANCE, 0},
+{142, 1047233823u, 1047373254u, 1047373254u, 0, ASIN_TOLERANCE, 0},
+{143, 1047904911u, 1048063681u, 1048063681u, 0, ASIN_TOLERANCE, 0},
+{144, 1048576000u, 1048665934u, 1048665934u, 0, ASIN_TOLERANCE, 0},
+{145, 1048911544u, 1049012952u, 1049012952u, 0, ASIN_TOLERANCE, 0},
+{146, 1049247089u, 1049360940u, 1049360940u, 0, ASIN_TOLERANCE, 0},
+{147, 1049582633u, 1049709942u, 1049709942u, 0, ASIN_TOLERANCE, 0},
+{148, 1049918177u, 1050060006u, 1050060006u, 0, ASIN_TOLERANCE, 0},
+{149, 1050253722u, 1050411181u, 1050411181u, 0, ASIN_TOLERANCE, 0},
+{150, 1050589266u, 1050763515u, 1050763515u, 0, ASIN_TOLERANCE, 0},
+{151, 1050924810u, 1051117060u, 1051117060u, 0, ASIN_TOLERANCE, 0},
+{152, 1051260355u, 1051471868u, 1051471868u, 0, ASIN_TOLERANCE, 0},
+{153, 1051595899u, 1051827992u, 1051827992u, 0, ASIN_TOLERANCE, 0},
+{154, 1051931443u, 1052185487u, 1052185487u, 0, ASIN_TOLERANCE, 0},
+{155, 1052266988u, 1052544412u, 1052544412u, 0, ASIN_TOLERANCE, 0},
+{156, 1052602532u, 1052904825u, 1052904825u, 0, ASIN_TOLERANCE, 0},
+{157, 1052938076u, 1053266785u, 1053266785u, 0, ASIN_TOLERANCE, 0},
+{158, 1053273620u, 1053630357u, 1053630357u, 0, ASIN_TOLERANCE, 0},
+{159, 1053609165u, 1053995606u, 1053995606u, 0, ASIN_TOLERANCE, 0},
+{160, 1053944709u, 1054362598u, 1054362598u, 0, ASIN_TOLERANCE, 0},
+{161, 1054280253u, 1054731403u, 1054731403u, 0, ASIN_TOLERANCE, 0},
+{162, 1054615798u, 1055102095u, 1055102095u, 0, ASIN_TOLERANCE, 0},
+{163, 1054951342u, 1055474747u, 1055474747u, 0, ASIN_TOLERANCE, 0},
+{164, 1055286886u, 1055849437u, 1055849437u, 0, ASIN_TOLERANCE, 0},
+{165, 1055622431u, 1056226250u, 1056226250u, 0, ASIN_TOLERANCE, 0},
+{166, 1055957975u, 1056605266u, 1056605266u, 0, ASIN_TOLERANCE, 0},
+{167, 1056293519u, 1056975592u, 1056975592u, 0, ASIN_TOLERANCE, 0},
+{168, 1056629064u, 1057167441u, 1057167441u, 0, ASIN_TOLERANCE, 0},
+{169, 1056964608u, 1057360530u, 1057360530u, 0, ASIN_TOLERANCE, 0},
+{170, 1057132380u, 1057554912u, 1057554912u, 0, ASIN_TOLERANCE, 0},
+{171, 1057300152u, 1057750636u, 1057750636u, 0, ASIN_TOLERANCE, 0},
+{172, 1057467924u, 1057947762u, 1057947762u, 0, ASIN_TOLERANCE, 0},
+{173, 1057635697u, 1058146348u, 1058146348u, 0, ASIN_TOLERANCE, 0},
+{174, 1057803469u, 1058346452u, 1058346452u, 0, ASIN_TOLERANCE, 0},
+{175, 1057971241u, 1058548139u, 1058548139u, 0, ASIN_TOLERANCE, 0},
+{176, 1058139013u, 1058751481u, 1058751481u, 0, ASIN_TOLERANCE, 0},
+{177, 1058306785u, 1058956545u, 1058956545u, 0, ASIN_TOLERANCE, 0},
+{178, 1058474557u, 1059163410u, 1059163410u, 0, ASIN_TOLERANCE, 0},
+{179, 1058642330u, 1059372158u, 1059372158u, 0, ASIN_TOLERANCE, 0},
+{180, 1058810102u, 1059582871u, 1059582871u, 0, ASIN_TOLERANCE, 0},
+{181, 1058977874u, 1059795641u, 1059795641u, 0, ASIN_TOLERANCE, 0},
+{182, 1059145646u, 1060010566u, 1060010566u, 0, ASIN_TOLERANCE, 0},
+{183, 1059313418u, 1060227748u, 1060227748u, 0, ASIN_TOLERANCE, 0},
+{184, 1059481190u, 1060447298u, 1060447298u, 0, ASIN_TOLERANCE, 0},
+{185, 1059648963u, 1060669334u, 1060669334u, 0, ASIN_TOLERANCE, 0},
+{186, 1059816735u, 1060893981u, 1060893981u, 0, ASIN_TOLERANCE, 0},
+{187, 1059984507u, 1061121376u, 1061121376u, 0, ASIN_TOLERANCE, 0},
+{188, 1060152279u, 1061351667u, 1061351667u, 0, ASIN_TOLERANCE, 0},
+{189, 1060320051u, 1061585012u, 1061585012u, 0, ASIN_TOLERANCE, 0},
+{190, 1060487823u, 1061821582u, 1061821582u, 0, ASIN_TOLERANCE, 0},
+{191, 1060655596u, 1062061567u, 1062061567u, 0, ASIN_TOLERANCE, 0},
+{192, 1060823368u, 1062305165u, 1062305165u, 0, ASIN_TOLERANCE, 0},
+{193, 1060991140u, 1062552603u, 1062552603u, 0, ASIN_TOLERANCE, 0},
+{194, 1061158912u, 1062804122u, 1062804122u, 0, ASIN_TOLERANCE, 0},
+{195, 1061326684u, 1063059992u, 1063059992u, 0, ASIN_TOLERANCE, 0},
+{196, 1061494456u, 1063320508u, 1063320508u, 0, ASIN_TOLERANCE, 0},
+{197, 1061662228u, 1063586001u, 1063586001u, 0, ASIN_TOLERANCE, 0},
+{198, 1061830001u, 1063856841u, 1063856841u, 0, ASIN_TOLERANCE, 0},
+{199, 1061997773u, 1064133433u, 1064133433u, 0, ASIN_TOLERANCE, 0},
+{200, 1062165545u, 1064416245u, 1064416245u, 0, ASIN_TOLERANCE, 0},
+{201, 1062333317u, 1064705801u, 1064705801u, 0, ASIN_TOLERANCE, 0},
+{202, 1062501089u, 1065002702u, 1065002702u, 0, ASIN_TOLERANCE, 0},
+{203, 1062668861u, 1065307636u, 1065307636u, 0, ASIN_TOLERANCE, 0},
+{204, 1062836634u, 1065487311u, 1065487311u, 0, ASIN_TOLERANCE, 0},
+{205, 1063004406u, 1065649080u, 1065649080u, 0, ASIN_TOLERANCE, 0},
+{206, 1063172178u, 1065816287u, 1065816287u, 0, ASIN_TOLERANCE, 0},
+{207, 1063339950u, 1065989594u, 1065989594u, 0, ASIN_TOLERANCE, 0},
+{208, 1063507722u, 1066169806u, 1066169806u, 0, ASIN_TOLERANCE, 0},
+{209, 1063675494u, 1066357916u, 1066357916u, 0, ASIN_TOLERANCE, 0},
+{210, 1063843267u, 1066555171u, 1066555171u, 0, ASIN_TOLERANCE, 0},
+{211, 1064011039u, 1066763178u, 1066763178u, 0, ASIN_TOLERANCE, 0},
+{212, 1064178811u, 1066984070u, 1066984070u, 0, ASIN_TOLERANCE, 0},
+{213, 1064346583u, 1067220775u, 1067220775u, 0, ASIN_TOLERANCE, 0},
+{214, 1064514355u, 1067477513u, 1067477513u, 0, ASIN_TOLERANCE, 0},
+{215, 1064682127u, 1067760765u, 1067760765u, 0, ASIN_TOLERANCE, 0},
+{216, 1064849900u, 1068081451u, 1068081451u, 0, ASIN_TOLERANCE, 0},
+{217, 1065017672u, 1068460873u, 1068460873u, 0, ASIN_TOLERANCE, 0},
+{218, 1065185444u, 1068954084u, 1068954084u, 0, ASIN_TOLERANCE, 0},
+{219, 1065353216u, 1070141403u, 1070141403u, 0, ASIN_TOLERANCE, 0},
+{220, 1065437102u, 1115684864u, 2143289344u, EDOM, ASIN_TOLERANCE, 0},
+{221, 1065520988u, 1115684864u, 2143289344u, EDOM, ASIN_TOLERANCE, 0},
+{222, 1065604874u, 1115684864u, 2143289344u, EDOM, ASIN_TOLERANCE, 0},
+{223, 1065688760u, 1115684864u, 2143289344u, EDOM, ASIN_TOLERANCE, 0},
+{224, 1065772646u, 1115684864u, 2143289344u, EDOM, ASIN_TOLERANCE, 0},
+{225, 1065856532u, 1115684864u, 2143289344u, EDOM, ASIN_TOLERANCE, 0},
+{226, 1065940419u, 1115684864u, 2143289344u, EDOM, ASIN_TOLERANCE, 0},
+{227, 1066024305u, 1115684864u, 2143289344u, EDOM, ASIN_TOLERANCE, 0},
+{228, 1066108191u, 1115684864u, 2143289344u, EDOM, ASIN_TOLERANCE, 0},
+{229, 1066192077u, 1115684864u, 2143289344u, EDOM, ASIN_TOLERANCE, 0},
+{230, 1066275963u, 1115684864u, 2143289344u, EDOM, ASIN_TOLERANCE, 0},
+{231, 1066359849u, 1115684864u, 2143289344u, EDOM, ASIN_TOLERANCE, 0},
+{232, 1066443735u, 1115684864u, 2143289344u, EDOM, ASIN_TOLERANCE, 0},
+{233, 1066527621u, 1115684864u, 2143289344u, EDOM, ASIN_TOLERANCE, 0},
+{234, 1066611507u, 1115684864u, 2143289344u, EDOM, ASIN_TOLERANCE, 0},
+{235, 1066695393u, 1115684864u, 2143289344u, EDOM, ASIN_TOLERANCE, 0},
+{236, 1066779279u, 1115684864u, 2143289344u, EDOM, ASIN_TOLERANCE, 0},
+{237, 1066863165u, 1115684864u, 2143289344u, EDOM, ASIN_TOLERANCE, 0},
+{238, 1066947052u, 1115684864u, 2143289344u, EDOM, ASIN_TOLERANCE, 0},
+{239, 3234402267u, 1115684864u, 2143289344u, EDOM, ASIN_TOLERANCE, 0},
+{240, 3231108068u, 1115684864u, 2143289344u, EDOM, ASIN_TOLERANCE, 0},
+{241, 3226013659u, 1115684864u, 2143289344u, EDOM, ASIN_TOLERANCE, 0},
+{242, 3217625051u, 1115684864u, 2143289344u, EDOM, ASIN_TOLERANCE, 0},
+{243, 0u, 0u, 0u, 0, ASIN_TOLERANCE, 0},
+{244, 1070141403u, 1115684864u, 2143289344u, EDOM, ASIN_TOLERANCE, 0},
+{245, 1078530011u, 1115684864u, 2143289344u, EDOM, ASIN_TOLERANCE, 0},
+{246, 1083624420u, 1115684864u, 2143289344u, EDOM, ASIN_TOLERANCE, 0},
+{247, 3253731328u, 1115684864u, 2143289344u, EDOM, ASIN_TOLERANCE, 0},
+{248, 3252840038u, 1115684864u, 2143289344u, EDOM, ASIN_TOLERANCE, 0},
+{249, 3251948749u, 1115684864u, 2143289344u, EDOM, ASIN_TOLERANCE, 0},
+{250, 3251057459u, 1115684864u, 2143289344u, EDOM, ASIN_TOLERANCE, 0},
+{251, 3250166170u, 1115684864u, 2143289344u, EDOM, ASIN_TOLERANCE, 0},
+{252, 3249274880u, 1115684864u, 2143289344u, EDOM, ASIN_TOLERANCE, 0},
+{253, 3248383590u, 1115684864u, 2143289344u, EDOM, ASIN_TOLERANCE, 0},
+{254, 3247492301u, 1115684864u, 2143289344u, EDOM, ASIN_TOLERANCE, 0},
+{255, 3246601011u, 1115684864u, 2143289344u, EDOM, ASIN_TOLERANCE, 0},
+{256, 3245028147u, 1115684864u, 2143289344u, EDOM, ASIN_TOLERANCE, 0},
+{257, 3243245568u, 1115684864u, 2143289344u, EDOM, ASIN_TOLERANCE, 0},
+{258, 3241462989u, 1115684864u, 2143289344u, EDOM, ASIN_TOLERANCE, 0},
+{259, 3239680410u, 1115684864u, 2143289344u, EDOM, ASIN_TOLERANCE, 0},
+{260, 3237792973u, 1115684864u, 2143289344u, EDOM, ASIN_TOLERANCE, 0},
+{261, 3234227814u, 1115684864u, 2143289344u, EDOM, ASIN_TOLERANCE, 0},
+{262, 3230662656u, 1115684864u, 2143289344u, EDOM, ASIN_TOLERANCE, 0},
+{263, 3224580915u, 1115684864u, 2143289344u, EDOM, ASIN_TOLERANCE, 0},
+{264, 3213675725u, 1115684864u, 2143289344u, EDOM, ASIN_TOLERANCE, 0},
+{265, 1058642330u, 1059372158u, 1059372158u, 0, ASIN_TOLERANCE, 0},
+{266, 1075000115u, 1115684864u, 2143289344u, EDOM, ASIN_TOLERANCE, 0},
+{267, 1082130432u, 1115684864u, 2143289344u, EDOM, ASIN_TOLERANCE, 0},
+{268, 1085695590u, 1115684864u, 2143289344u, EDOM, ASIN_TOLERANCE, 0},
+{269, 1089260749u, 1115684864u, 2143289344u, EDOM, ASIN_TOLERANCE, 0},
+{270, 1091672474u, 1115684864u, 2143289344u, EDOM, ASIN_TOLERANCE, 0},
+{271, 1093455053u, 1115684864u, 2143289344u, EDOM, ASIN_TOLERANCE, 0},
+{272, 1095237632u, 1115684864u, 2143289344u, EDOM, ASIN_TOLERANCE, 0},
+{273, 1097020211u, 1115684864u, 2143289344u, EDOM, ASIN_TOLERANCE, 0},
+{274, 1098802790u, 1115684864u, 2143289344u, EDOM, ASIN_TOLERANCE, 0},
+{275, 1099746509u, 1115684864u, 2143289344u, EDOM, ASIN_TOLERANCE, 0},
+{276, 1100637798u, 1115684864u, 2143289344u, EDOM, ASIN_TOLERANCE, 0},
+{277, 1101529088u, 1115684864u, 2143289344u, EDOM, ASIN_TOLERANCE, 0},
+{278, 1102420378u, 1115684864u, 2143289344u, EDOM, ASIN_TOLERANCE, 0},
+{279, 1103311667u, 1115684864u, 2143289344u, EDOM, ASIN_TOLERANCE, 0},
+{280, 1104202957u, 1115684864u, 2143289344u, EDOM, ASIN_TOLERANCE, 0},
+{281, 1105094246u, 1115684864u, 2143289344u, EDOM, ASIN_TOLERANCE, 0},
+{282, 1105985536u, 1115684864u, 2143289344u, EDOM, ASIN_TOLERANCE, 0},
+{283, 0u, 3169600404u, 0u, 0, ASIN_TOLERANCE, 0},
+{284, 0u, 1339715816u, 0u, 0, ASIN_TOLERANCE, 0},
+{285, 0u, 1137623440u, 0u, 0, ASIN_TOLERANCE, 0},
+{286, 0u, 1318077703u, 0u, 0, ASIN_TOLERANCE, 0},
+{287, 0u, 3138716210u, 0u, 0, ASIN_TOLERANCE, 0},
+{288, 0u, 956731690u, 0u, 0, ASIN_TOLERANCE, 0},
+{289, 0u, 3090780435u, 0u, 0, ASIN_TOLERANCE, 0},
+{290, 0u, 1184078964u, 0u, 0, ASIN_TOLERANCE, 0},
+{291, 0u, 805930990u, 0u, 0, ASIN_TOLERANCE, 0},
+{292, 0u, 2961815950u, 0u, 0, ASIN_TOLERANCE, 0},
+{293, 0u, 3293150194u, 0u, 0, ASIN_TOLERANCE, 0},
+{294, 0u, 3446630737u, 0u, 0, ASIN_TOLERANCE, 0},
+{295, 3207495939u, 1009178246u, 3208642957u, 0, ASIN_TOLERANCE, 0},
+{296, 0u, 1011741316u, 0u, 0, ASIN_TOLERANCE, 0},
+{297, 0u, 924152434u, 0u, 0, ASIN_TOLERANCE, 0},
+{298, 0u, 1046519338u, 0u, 0, ASIN_TOLERANCE, 0},
+{299, 0u, 843024648u, 0u, 0, ASIN_TOLERANCE, 0},
+{300, 0u, 1207613046u, 0u, 0, ASIN_TOLERANCE, 0},
+{301, 0u, 3373702511u, 0u, 0, ASIN_TOLERANCE, 0},
+{302, 0u, 1287042017u, 0u, 0, ASIN_TOLERANCE, 0},
+{303, 0u, 3174764041u, 0u, 0, ASIN_TOLERANCE, 0},
+{304, 0u, 3366639803u, 0u, 0, ASIN_TOLERANCE, 0},
+{305, 0u, 927668332u, 0u, 0, ASIN_TOLERANCE, 0},
+{306, 0u, 1231561331u, 0u, 0, ASIN_TOLERANCE, 0},
+{307, 0u, 846986655u, 0u, 0, ASIN_TOLERANCE, 0},
+{308, 0u, 1325838529u, 0u, 0, ASIN_TOLERANCE, 0},
+{309, 0u, 2994813381u, 0u, 0, ASIN_TOLERANCE, 0},
+{310, 0u, 1319183848u, 0u, 0, ASIN_TOLERANCE, 0},
+{311, 0u, 3059184837u, 0u, 0, ASIN_TOLERANCE, 0},
+{312, 0u, 3234638157u, 0u, 0, ASIN_TOLERANCE, 0},
+{313, 0u, 3468333016u, 0u, 0, ASIN_TOLERANCE, 0},
+{314, 0u, 973297633u, 0u, 0, ASIN_TOLERANCE, 0},
+{315, 0u, 3060497453u, 0u, 0, ASIN_TOLERANCE, 0},
+{316, 0u, 3053313644u, 0u, 0, ASIN_TOLERANCE, 0},
+{317, 0u, 905204998u, 0u, 0, ASIN_TOLERANCE, 0},
+{318, 0u, 1031869860u, 0u, 0, ASIN_TOLERANCE, 0},
+{319, 0u, 3090663336u, 0u, 0, ASIN_TOLERANCE, 0},
+{320, 0u, 3325365308u, 0u, 0, ASIN_TOLERANCE, 0},
+{321, 0u, 1222145080u, 0u, 0, ASIN_TOLERANCE, 0},
+{322, 0u, 3182301130u, 0u, 0, ASIN_TOLERANCE, 0},
+{323, 0u, 3141898978u, 0u, 0, ASIN_TOLERANCE, 0},
+{324, 0u, 3250208698u, 0u, 0, ASIN_TOLERANCE, 0},
+{325, 0u, 850607273u, 0u, 0, ASIN_TOLERANCE, 0},
+{326, 0u, 986147596u, 0u, 0, ASIN_TOLERANCE, 0},
+{327, 0u, 817336158u, 0u, 0, ASIN_TOLERANCE, 0},
+{328, 0u, 1228929743u, 0u, 0, ASIN_TOLERANCE, 0},
+{329, 0u, 1285620759u, 0u, 0, ASIN_TOLERANCE, 0},
+{330, 0u, 3150558310u, 0u, 0, ASIN_TOLERANCE, 0},
+{331, 0u, 1026729590u, 0u, 0, ASIN_TOLERANCE, 0},
+{332, 0u, 1322457908u, 0u, 0, ASIN_TOLERANCE, 0},
+{333, 0u, 3293402534u, 0u, 0, ASIN_TOLERANCE, 0},
+{334, 0u, 3376286224u, 0u, 0, ASIN_TOLERANCE, 0},
+{335, 0u, 1262396132u, 0u, 0, ASIN_TOLERANCE, 0},
+{336, 0u, 3357890790u, 0u, 0, ASIN_TOLERANCE, 0},
+{337, 0u, 1227031652u, 0u, 0, ASIN_TOLERANCE, 0},
+{338, 0u, 3486821126u, 0u, 0, ASIN_TOLERANCE, 0},
+{339, 0u, 3361769033u, 0u, 0, ASIN_TOLERANCE, 0},
+{340, 0u, 3099071752u, 0u, 0, ASIN_TOLERANCE, 0},
+{341, 3064942859u, 3410406460u, 3064942859u, 0, ASIN_TOLERANCE, 0},
+{342, 0u, 1218561473u, 0u, 0, ASIN_TOLERANCE, 0},
+{343, 0u, 936690127u, 0u, 0, ASIN_TOLERANCE, 0},
+{344, 0u, 1127391340u, 0u, 0, ASIN_TOLERANCE, 0},
+{345, 0u, 3036142101u, 0u, 0, ASIN_TOLERANCE, 0},
+{346, 0u, 3471390739u, 0u, 0, ASIN_TOLERANCE, 0},
+{347, 0u, 3241193975u, 0u, 0, ASIN_TOLERANCE, 0},
+{348, 0u, 820404624u, 0u, 0, ASIN_TOLERANCE, 0},
+{349, 0u, 905618576u, 0u, 0, ASIN_TOLERANCE, 0},
+{350, 0u, 1263769881u, 0u, 0, ASIN_TOLERANCE, 0},
+{351, 0u, 3422581846u, 0u, 0, ASIN_TOLERANCE, 0},
+{352, 0u, 3020874439u, 0u, 0, ASIN_TOLERANCE, 0},
+{353, 1044854841u, 3441293384u, 1044938638u, 0, ASIN_TOLERANCE, 0},
+{354, 0u, 1327700779u, 0u, 0, ASIN_TOLERANCE, 0},
+{355, 0u, 1053048637u, 0u, 0, ASIN_TOLERANCE, 0},
+{356, 0u, 3390124302u, 0u, 0, ASIN_TOLERANCE, 0},
+{357, 0u, 1326155577u, 0u, 0, ASIN_TOLERANCE, 0},
+{358, 0u, 3009485985u, 0u, 0, ASIN_TOLERANCE, 0},
+{359, 0u, 976507183u, 0u, 0, ASIN_TOLERANCE, 0},
+{360, 0u, 3465702297u, 0u, 0, ASIN_TOLERANCE, 0},
+{361, 0u, 3162613159u, 0u, 0, ASIN_TOLERANCE, 0},
+{362, 0u, 3424831780u, 0u, 0, ASIN_TOLERANCE, 0},
+{363, 0u, 1315193884u, 0u, 0, ASIN_TOLERANCE, 0},
+{364, 0u, 3393434856u, 0u, 0, ASIN_TOLERANCE, 0},
+{365, 0u, 3075595653u, 0u, 0, ASIN_TOLERANCE, 0},
+{366, 0u, 1073959932u, 0u, 0, ASIN_TOLERANCE, 0},
+{367, 0u, 984063398u, 0u, 0, ASIN_TOLERANCE, 0},
+{368, 0u, 3051776777u, 0u, 0, ASIN_TOLERANCE, 0},
+{369, 0u, 3333928591u, 0u, 0, ASIN_TOLERANCE, 0},
+{370, 0u, 3277810397u, 0u, 0, ASIN_TOLERANCE, 0},
+{371, 0u, 3375812155u, 0u, 0, ASIN_TOLERANCE, 0},
+{372, 0u, 879559037u, 0u, 0, ASIN_TOLERANCE, 0},
+{373, 0u, 3359727790u, 0u, 0, ASIN_TOLERANCE, 0},
+{374, 0u, 1094033983u, 0u, 0, ASIN_TOLERANCE, 0},
+{375, 0u, 965490084u, 0u, 0, ASIN_TOLERANCE, 0},
+{376, 0u, 1063615282u, 0u, 0, ASIN_TOLERANCE, 0},
+{377, 0u, 916132262u, 0u, 0, ASIN_TOLERANCE, 0},
+{378, 0u, 3214499901u, 0u, 0, ASIN_TOLERANCE, 0},
+{379, 0u, 1149498437u, 0u, 0, ASIN_TOLERANCE, 0},
+{380, 0u, 957867294u, 0u, 0, ASIN_TOLERANCE, 0},
+{381, 0u, 1292682598u, 0u, 0, ASIN_TOLERANCE, 0},
+{382, 0u, 3181128080u, 0u, 0, ASIN_TOLERANCE, 0},
+{383, 1034143548u, 3146558751u, 1034155022u, 0, ASIN_TOLERANCE, 0},
+{384, 0u, 3118386084u, 0u, 0, ASIN_TOLERANCE, 0},
+{385, 0u, 3281577923u, 0u, 0, ASIN_TOLERANCE, 0},
+{386, 0u, 3108459270u, 0u, 0, ASIN_TOLERANCE, 0},
+{387, 0u, 877939434u, 0u, 0, ASIN_TOLERANCE, 0},
+{388, 0u, 1092863108u, 0u, 0, ASIN_TOLERANCE, 0},
+{389, 0u, 2984618214u, 0u, 0, ASIN_TOLERANCE, 0},
+{390, 0u, 3230867340u, 0u, 0, ASIN_TOLERANCE, 0},
+{391, 0u, 1299947984u, 0u, 0, ASIN_TOLERANCE, 0},
+{392, 0u, 1014533799u, 0u, 0, ASIN_TOLERANCE, 0},
+{393, 0u, 3294931045u, 0u, 0, ASIN_TOLERANCE, 0},
+{394, 0u, 1234530539u, 0u, 0, ASIN_TOLERANCE, 0},
+{395, 0u, 1167174417u, 0u, 0, ASIN_TOLERANCE, 0},
+{396, 0u, 1033515667u, 0u, 0, ASIN_TOLERANCE, 0},
+{397, 0u, 3461029208u, 0u, 0, ASIN_TOLERANCE, 0},
+{398, 0u, 2963999387u, 0u, 0, ASIN_TOLERANCE, 0},
+{399, 0u, 1289841195u, 0u, 0, ASIN_TOLERANCE, 0},
+{400, 0u, 991614550u, 0u, 0, ASIN_TOLERANCE, 0},
+{401, 0u, 3005733479u, 0u, 0, ASIN_TOLERANCE, 0},
+{402, 0u, 3028772689u, 0u, 0, ASIN_TOLERANCE, 0},
+{403, 0u, 3461908440u, 0u, 0, ASIN_TOLERANCE, 0},
+{404, 0u, 3395559071u, 0u, 0, ASIN_TOLERANCE, 0},
+{405, 0u, 3386631630u, 0u, 0, ASIN_TOLERANCE, 0},
+{406, 0u, 1302044669u, 0u, 0, ASIN_TOLERANCE, 0},
+{407, 0u, 3136041385u, 0u, 0, ASIN_TOLERANCE, 0},
+{408, 0u, 819212976u, 0u, 0, ASIN_TOLERANCE, 0},
+{409, 0u, 1308276557u, 0u, 0, ASIN_TOLERANCE, 0},
+{410, 0u, 890279471u, 0u, 0, ASIN_TOLERANCE, 0},
+{411, 0u, 3391162308u, 0u, 0, ASIN_TOLERANCE, 0},
+{412, 0u, 3366933172u, 0u, 0, ASIN_TOLERANCE, 0},
+{413, 0u, 2972468923u, 0u, 0, ASIN_TOLERANCE, 0},
+{414, 0u, 1096223283u, 0u, 0, ASIN_TOLERANCE, 0},
+{415, 0u, 2985540645u, 0u, 0, ASIN_TOLERANCE, 0},
+{416, 0u, 3045939684u, 0u, 0, ASIN_TOLERANCE, 0},
+{417, 0u, 3289105549u, 0u, 0, ASIN_TOLERANCE, 0},
+{418, 0u, 3118459546u, 0u, 0, ASIN_TOLERANCE, 0},
+{419, 0u, 805655869u, 0u, 0, ASIN_TOLERANCE, 0},
+{420, 0u, 1298783885u, 0u, 0, ASIN_TOLERANCE, 0},
+{421, 0u, 3314827933u, 0u, 0, ASIN_TOLERANCE, 0},
+{422, 0u, 1010844213u, 0u, 0, ASIN_TOLERANCE, 0},
+{423, 0u, 3185364965u, 0u, 0, ASIN_TOLERANCE, 0},
+{424, 0u, 1196910312u, 0u, 0, ASIN_TOLERANCE, 0},
+{425, 0u, 3036177925u, 0u, 0, ASIN_TOLERANCE, 0},
+{426, 0u, 1260339199u, 0u, 0, ASIN_TOLERANCE, 0},
+{427, 0u, 3421558958u, 0u, 0, ASIN_TOLERANCE, 0},
+{428, 1009721212u, 1046112320u, 1009721431u, 0, ASIN_TOLERANCE, 0},
+{429, 0u, 3361661885u, 0u, 0, ASIN_TOLERANCE, 0},
+{430, 0u, 927278934u, 0u, 0, ASIN_TOLERANCE, 0},
+{431, 0u, 3168337905u, 0u, 0, ASIN_TOLERANCE, 0},
+{432, 3209292679u, 3097629295u, 3211306330u, 0, ASIN_TOLERANCE, 0},
+{433, 0u, 900870557u, 0u, 0, ASIN_TOLERANCE, 0},
+{434, 0u, 1018873558u, 0u, 0, ASIN_TOLERANCE, 0},
+{435, 0u, 1336758936u, 0u, 0, ASIN_TOLERANCE, 0},
+{436, 0u, 3333739154u, 0u, 0, ASIN_TOLERANCE, 0},
+{437, 0u, 1320787767u, 0u, 0, ASIN_TOLERANCE, 0},
+{438, 0u, 3388356571u, 0u, 0, ASIN_TOLERANCE, 0},
+{439, 0u, 1178658982u, 0u, 0, ASIN_TOLERANCE, 0},
+{440, 0u, 1052318349u, 0u, 0, ASIN_TOLERANCE, 0},
+{441, 0u, 1305787839u, 0u, 0, ASIN_TOLERANCE, 0},
+{442, 0u, 3343304699u, 0u, 0, ASIN_TOLERANCE, 0},
+{443, 0u, 3210802820u, 0u, 0, ASIN_TOLERANCE, 0},
+{444, 0u, 2981916252u, 0u, 0, ASIN_TOLERANCE, 0},
+{445, 0u, 3331408262u, 0u, 0, ASIN_TOLERANCE, 0},
+{446, 0u, 3398215908u, 0u, 0, ASIN_TOLERANCE, 0},
+{447, 0u, 1200012284u, 0u, 0, ASIN_TOLERANCE, 0},
+{448, 0u, 3334899880u, 0u, 0, ASIN_TOLERANCE, 0},
+{449, 0u, 3254921054u, 0u, 0, ASIN_TOLERANCE, 0},
+{450, 0u, 1327067896u, 0u, 0, ASIN_TOLERANCE, 0},
+{451, 0u, 3322159484u, 0u, 0, ASIN_TOLERANCE, 0},
+{452, 0u, 1170972749u, 0u, 0, ASIN_TOLERANCE, 0},
+{453, 0u, 1088950833u, 0u, 0, ASIN_TOLERANCE, 0},
+{454, 0u, 1021298336u, 0u, 0, ASIN_TOLERANCE, 0},
+{455, 0u, 3396911457u, 0u, 0, ASIN_TOLERANCE, 0},
+{456, 0u, 1226465223u, 0u, 0, ASIN_TOLERANCE, 0},
+{457, 0u, 3032345638u, 0u, 0, ASIN_TOLERANCE, 0},
+{458, 0u, 3372887038u, 0u, 0, ASIN_TOLERANCE, 0},
+{459, 0u, 3047298800u, 0u, 0, ASIN_TOLERANCE, 0},
+{460, 0u, 1328903537u, 0u, 0, ASIN_TOLERANCE, 0},
+{461, 0u, 943122002u, 0u, 0, ASIN_TOLERANCE, 0},
+{462, 0u, 3240474694u, 0u, 0, ASIN_TOLERANCE, 0},
+{463, 0u, 1321478210u, 0u, 0, ASIN_TOLERANCE, 0},
+{464, 0u, 3150110905u, 0u, 0, ASIN_TOLERANCE, 0},
+{465, 1044716314u, 1175058883u, 1044797442u, 0, ASIN_TOLERANCE, 0},
+{466, 0u, 1113112437u, 0u, 0, ASIN_TOLERANCE, 0},
+{467, 0u, 1133955508u, 0u, 0, ASIN_TOLERANCE, 0},
+{468, 0u, 3322269242u, 0u, 0, ASIN_TOLERANCE, 0},
+{469, 0u, 1007037967u, 0u, 0, ASIN_TOLERANCE, 0},
+{470, 0u, 1034712760u, 0u, 0, ASIN_TOLERANCE, 0},
+{471, 0u, 3242154340u, 0u, 0, ASIN_TOLERANCE, 0},
+{472, 0u, 3198746395u, 0u, 0, ASIN_TOLERANCE, 0},
+{473, 0u, 871518549u, 0u, 0, ASIN_TOLERANCE, 0},
+{474, 0u, 1076307289u, 0u, 0, ASIN_TOLERANCE, 0},
+{475, 0u, 1093265845u, 0u, 0, ASIN_TOLERANCE, 0},
+{476, 0u, 3425791859u, 0u, 0, ASIN_TOLERANCE, 0},
+{477, 0u, 1132019346u, 0u, 0, ASIN_TOLERANCE, 0},
+{478, 0u, 3188748064u, 0u, 0, ASIN_TOLERANCE, 0},
+{479, 0u, 2959991506u, 0u, 0, ASIN_TOLERANCE, 0},
+{480, 0u, 3424322165u, 0u, 0, ASIN_TOLERANCE, 0},
+{481, 0u, 3159354376u, 0u, 0, ASIN_TOLERANCE, 0},
+{482, 0u, 3191112451u, 0u, 0, ASIN_TOLERANCE, 0},
+{483, 0u, 3268491661u, 0u, 0, ASIN_TOLERANCE, 0},
+{484, 0u, 1228416507u, 0u, 0, ASIN_TOLERANCE, 0},
+{485, 0u, 1006050163u, 0u, 0, ASIN_TOLERANCE, 0},
+{486, 0u, 3194999530u, 0u, 0, ASIN_TOLERANCE, 0},
+{487, 0u, 3455139526u, 0u, 0, ASIN_TOLERANCE, 0},
+{488, 0u, 1028994668u, 0u, 0, ASIN_TOLERANCE, 0},
+{489, 0u, 827857784u, 0u, 0, ASIN_TOLERANCE, 0},
+{490, 0u, 1089013253u, 0u, 0, ASIN_TOLERANCE, 0},
+{491, 0u, 3332044773u, 0u, 0, ASIN_TOLERANCE, 0},
+{492, 0u, 955602880u, 0u, 0, ASIN_TOLERANCE, 0},
+{493, 0u, 834883605u, 0u, 0, ASIN_TOLERANCE, 0},
+{494, 0u, 2967925613u, 0u, 0, ASIN_TOLERANCE, 0},
+{495, 0u, 3273003721u, 0u, 0, ASIN_TOLERANCE, 0},
+{496, 0u, 3114823772u, 0u, 0, ASIN_TOLERANCE, 0},
+{497, 0u, 2978999239u, 0u, 0, ASIN_TOLERANCE, 0},
+{498, 0u, 1241824475u, 0u, 0, ASIN_TOLERANCE, 0},
+{499, 0u, 1331775131u, 0u, 0, ASIN_TOLERANCE, 0},
+{500, 0u, 3141296194u, 0u, 0, ASIN_TOLERANCE, 0},
+{501, 0u, 1337844885u, 0u, 0, ASIN_TOLERANCE, 0},
+{502, 0u, 3106714954u, 0u, 0, ASIN_TOLERANCE, 0},
+{503, 0u, 3096592046u, 0u, 0, ASIN_TOLERANCE, 0},
+{504, 0u, 1073304723u, 0u, 0, ASIN_TOLERANCE, 0},
+{505, 0u, 1241050896u, 0u, 0, ASIN_TOLERANCE, 0},
+{506, 0u, 3396048528u, 0u, 0, ASIN_TOLERANCE, 0},
+{507, 0u, 815233034u, 0u, 0, ASIN_TOLERANCE, 0},
+{508, 0u, 1336420810u, 0u, 0, ASIN_TOLERANCE, 0},
+{509, 0u, 3385978192u, 0u, 0, ASIN_TOLERANCE, 0},
+{510, 0u, 865415249u, 0u, 0, ASIN_TOLERANCE, 0},
+{511, 0u, 1098069770u, 0u, 0, ASIN_TOLERANCE, 0},
+{512, 0u, 1309182624u, 0u, 0, ASIN_TOLERANCE, 0},
+{513, 0u, 3090687943u, 0u, 0, ASIN_TOLERANCE, 0},
+{514, 0u, 3294568849u, 0u, 0, ASIN_TOLERANCE, 0},
+{515, 0u, 1248962235u, 0u, 0, ASIN_TOLERANCE, 0},
+{516, 0u, 1181971466u, 0u, 0, ASIN_TOLERANCE, 0},
+{517, 0u, 3364325750u, 0u, 0, ASIN_TOLERANCE, 0},
+{518, 0u, 3438080027u, 0u, 0, ASIN_TOLERANCE, 0},
+{519, 0u, 1092687408u, 0u, 0, ASIN_TOLERANCE, 0},
+{520, 0u, 3314756782u, 0u, 0, ASIN_TOLERANCE, 0},
+{521, 3155280708u, 1025618776u, 3155280834u, 0, ASIN_TOLERANCE, 0},
+{522, 3157435720u, 933489446u, 3157435952u, 0, ASIN_TOLERANCE, 0},
+{523, 0u, 1124703898u, 0u, 0, ASIN_TOLERANCE, 0},
+{524, 0u, 988628692u, 0u, 0, ASIN_TOLERANCE, 0},
+{525, 0u, 3448856777u, 0u, 0, ASIN_TOLERANCE, 0},
+{526, 0u, 3203377685u, 0u, 0, ASIN_TOLERANCE, 0},
+{527, 0u, 811346780u, 0u, 0, ASIN_TOLERANCE, 0},
+{528, 0u, 3263906037u, 0u, 0, ASIN_TOLERANCE, 0},
+{529, 0u, 3005448018u, 0u, 0, ASIN_TOLERANCE, 0},
+{530, 0u, 983776939u, 0u, 0, ASIN_TOLERANCE, 0},
+{531, 0u, 3283111355u, 0u, 0, ASIN_TOLERANCE, 0},
+{532, 0u, 3483799470u, 0u, 0, ASIN_TOLERANCE, 0},
+{533, 0u, 1224362550u, 0u, 0, ASIN_TOLERANCE, 0},
+{534, 0u, 989304021u, 0u, 0, ASIN_TOLERANCE, 0},
+{535, 0u, 1266021967u, 0u, 0, ASIN_TOLERANCE, 0},
+{536, 0u, 821670697u, 0u, 0, ASIN_TOLERANCE, 0},
+{537, 0u, 1094961730u, 0u, 0, ASIN_TOLERANCE, 0},
+{538, 0u, 865575622u, 0u, 0, ASIN_TOLERANCE, 0},
+{539, 0u, 3105373037u, 0u, 0, ASIN_TOLERANCE, 0},
+{540, 0u, 3230771910u, 0u, 0, ASIN_TOLERANCE, 0},
+{541, 0u, 3018555990u, 0u, 0, ASIN_TOLERANCE, 0},
+{542, 0u, 976031447u, 0u, 0, ASIN_TOLERANCE, 0},
+{543, 0u, 1176712907u, 0u, 0, ASIN_TOLERANCE, 0},
+{544, 0u, 3060368257u, 0u, 0, ASIN_TOLERANCE, 0},
+{545, 0u, 3445308988u, 0u, 0, ASIN_TOLERANCE, 0},
+{546, 0u, 3180028770u, 0u, 0, ASIN_TOLERANCE, 0},
+{547, 0u, 1124209516u, 0u, 0, ASIN_TOLERANCE, 0},
+{548, 0u, 1336654718u, 0u, 0, ASIN_TOLERANCE, 0},
+{549, 0u, 947482291u, 0u, 0, ASIN_TOLERANCE, 0},
+{550, 0u, 3118293357u, 0u, 0, ASIN_TOLERANCE, 0},
+{551, 0u, 3118498177u, 0u, 0, ASIN_TOLERANCE, 0},
+{552, 0u, 3229444200u, 0u, 0, ASIN_TOLERANCE, 0},
+{553, 0u, 3258228828u, 0u, 0, ASIN_TOLERANCE, 0},
+{554, 0u, 922323270u, 0u, 0, ASIN_TOLERANCE, 0},
+{555, 0u, 3114663401u, 0u, 0, ASIN_TOLERANCE, 0},
+{556, 0u, 885324962u, 0u, 0, ASIN_TOLERANCE, 0},
+{557, 0u, 1317998064u, 0u, 0, ASIN_TOLERANCE, 0},
+{558, 0u, 3403521222u, 0u, 0, ASIN_TOLERANCE, 0},
+{559, 0u, 994818884u, 0u, 0, ASIN_TOLERANCE, 0},
+{560, 0u, 3308921926u, 0u, 0, ASIN_TOLERANCE, 0},
+{561, 0u, 837597103u, 0u, 0, ASIN_TOLERANCE, 0},
+{562, 0u, 818395888u, 0u, 0, ASIN_TOLERANCE, 0},
+{563, 0u, 3385546293u, 0u, 0, ASIN_TOLERANCE, 0},
+{564, 0u, 1307494704u, 0u, 0, ASIN_TOLERANCE, 0},
+{565, 0u, 3195630702u, 0u, 0, ASIN_TOLERANCE, 0},
+{566, 0u, 3452970791u, 0u, 0, ASIN_TOLERANCE, 0},
+{567, 0u, 969181440u, 0u, 0, ASIN_TOLERANCE, 0},
+{568, 0u, 3198823742u, 0u, 0, ASIN_TOLERANCE, 0},
+{569, 0u, 859215836u, 0u, 0, ASIN_TOLERANCE, 0},
+{570, 0u, 1032431894u, 0u, 0, ASIN_TOLERANCE, 0},
+{571, 0u, 1317167489u, 0u, 0, ASIN_TOLERANCE, 0},
+{572, 0u, 1168321640u, 0u, 0, ASIN_TOLERANCE, 0},
+{573, 0u, 3419973892u, 0u, 0, ASIN_TOLERANCE, 0},
+{574, 0u, 3233127658u, 0u, 0, ASIN_TOLERANCE, 0},
+{575, 0u, 3080940727u, 0u, 0, ASIN_TOLERANCE, 0},
+{576, 0u, 3347164575u, 0u, 0, ASIN_TOLERANCE, 0},
+{577, 0u, 1252328733u, 0u, 0, ASIN_TOLERANCE, 0},
+{578, 0u, 3419080316u, 0u, 0, ASIN_TOLERANCE, 0},
+{579, 0u, 2972433958u, 0u, 0, ASIN_TOLERANCE, 0},
+{580, 0u, 1116045545u, 0u, 0, ASIN_TOLERANCE, 0},
+{581, 0u, 998741069u, 0u, 0, ASIN_TOLERANCE, 0},
+{582, 957816867u, 3201187455u, 957816867u, 0, ASIN_TOLERANCE, 0},
+{583, 0u, 3053678168u, 0u, 0, ASIN_TOLERANCE, 0},
+{584, 0u, 1305765795u, 0u, 0, ASIN_TOLERANCE, 0},
+{585, 0u, 1103014375u, 0u, 0, ASIN_TOLERANCE, 0},
+{586, 0u, 3232872279u, 0u, 0, ASIN_TOLERANCE, 0},
+{587, 0u, 1181934749u, 0u, 0, ASIN_TOLERANCE, 0},
+{588, 0u, 1190838126u, 0u, 0, ASIN_TOLERANCE, 0},
+{589, 0u, 867988931u, 0u, 0, ASIN_TOLERANCE, 0},
+{590, 0u, 991229856u, 0u, 0, ASIN_TOLERANCE, 0},
+{591, 0u, 3364998151u, 0u, 0, ASIN_TOLERANCE, 0},
+{592, 0u, 1315543293u, 0u, 0, ASIN_TOLERANCE, 0},
+{593, 0u, 1057448325u, 0u, 0, ASIN_TOLERANCE, 0},
+{594, 0u, 1267482842u, 0u, 0, ASIN_TOLERANCE, 0},
+{595, 0u, 934466263u, 0u, 0, ASIN_TOLERANCE, 0},
+{596, 0u, 1245869105u, 0u, 0, ASIN_TOLERANCE, 0},
+{597, 0u, 1108490809u, 0u, 0, ASIN_TOLERANCE, 0},
+{598, 0u, 3400104881u, 0u, 0, ASIN_TOLERANCE, 0},
+{599, 0u, 1319516167u, 0u, 0, ASIN_TOLERANCE, 0},
+{600, 0u, 1340013152u, 0u, 0, ASIN_TOLERANCE, 0},
+{601, 0u, 1178045349u, 0u, 0, ASIN_TOLERANCE, 0},
+{602, 0u, 999587166u, 0u, 0, ASIN_TOLERANCE, 0},
+{603, 0u, 1311927022u, 0u, 0, ASIN_TOLERANCE, 0},
+{604, 0u, 3367551312u, 0u, 0, ASIN_TOLERANCE, 0},
+{605, 0u, 1288794633u, 0u, 0, ASIN_TOLERANCE, 0},
+{606, 0u, 3187139195u, 0u, 0, ASIN_TOLERANCE, 0},
+{607, 0u, 3454228018u, 0u, 0, ASIN_TOLERANCE, 0},
+{608, 0u, 1027563924u, 0u, 0, ASIN_TOLERANCE, 0},
+{609, 0u, 1113104661u, 0u, 0, ASIN_TOLERANCE, 0},
+{610, 0u, 3245719778u, 0u, 0, ASIN_TOLERANCE, 0},
+{611, 0u, 3316389232u, 0u, 0, ASIN_TOLERANCE, 0},
+{612, 0u, 1282310126u, 0u, 0, ASIN_TOLERANCE, 0},
+{613, 0u, 1054537352u, 0u, 0, ASIN_TOLERANCE, 0},
+{614, 0u, 1030482448u, 0u, 0, ASIN_TOLERANCE, 0},
+{615, 0u, 898656161u, 0u, 0, ASIN_TOLERANCE, 0},
+{616, 0u, 3168363256u, 0u, 0, ASIN_TOLERANCE, 0},
+{617, 0u, 3100289712u, 0u, 0, ASIN_TOLERANCE, 0},
+{618, 0u, 1002569587u, 0u, 0, ASIN_TOLERANCE, 0},
+{619, 0u, 1295189320u, 0u, 0, ASIN_TOLERANCE, 0},
+{620, 0u, 3292709189u, 0u, 0, ASIN_TOLERANCE, 0},
+{621, 0u, 1154162408u, 0u, 0, ASIN_TOLERANCE, 0},
+{622, 0u, 1163075690u, 0u, 0, ASIN_TOLERANCE, 0},
+{623, 0u, 876100581u, 0u, 0, ASIN_TOLERANCE, 0},
+{624, 0u, 2992721023u, 0u, 0, ASIN_TOLERANCE, 0},
+{625, 0u, 822384047u, 0u, 0, ASIN_TOLERANCE, 0},
+{626, 0u, 1028558726u, 0u, 0, ASIN_TOLERANCE, 0},
+{627, 0u, 979448121u, 0u, 0, ASIN_TOLERANCE, 0},
+{628, 0u, 1258114435u, 0u, 0, ASIN_TOLERANCE, 0},
+{629, 0u, 3391984950u, 0u, 0, ASIN_TOLERANCE, 0},
+{630, 0u, 3106769746u, 0u, 0, ASIN_TOLERANCE, 0},
+{631, 0u, 3401317856u, 0u, 0, ASIN_TOLERANCE, 0},
+{632, 0u, 941984293u, 0u, 0, ASIN_TOLERANCE, 0},
+{633, 0u, 3104817582u, 0u, 0, ASIN_TOLERANCE, 0},
+{634, 0u, 887134496u, 0u, 0, ASIN_TOLERANCE, 0},
+{635, 0u, 3355201503u, 0u, 0, ASIN_TOLERANCE, 0},
+{636, 0u, 977588436u, 0u, 0, ASIN_TOLERANCE, 0},
+{637, 0u, 1191609115u, 0u, 0, ASIN_TOLERANCE, 0},
+{638, 0u, 1047298999u, 0u, 0, ASIN_TOLERANCE, 0},
+{639, 0u, 3483356946u, 0u, 0, ASIN_TOLERANCE, 0},
+{640, 0u, 3353529760u, 0u, 0, ASIN_TOLERANCE, 0},
+{641, 0u, 928612885u, 0u, 0, ASIN_TOLERANCE, 0},
+{642, 0u, 3162606086u, 0u, 0, ASIN_TOLERANCE, 0},
+{643, 3042097453u, 3471777274u, 3042097453u, 0, ASIN_TOLERANCE, 0},
+{644, 0u, 3202575407u, 0u, 0, ASIN_TOLERANCE, 0},
+{645, 0u, 1255148034u, 0u, 0, ASIN_TOLERANCE, 0},
+{646, 0u, 1218488455u, 0u, 0, ASIN_TOLERANCE, 0},
+{647, 0u, 1043585640u, 0u, 0, ASIN_TOLERANCE, 0},
+{648, 0u, 860904453u, 0u, 0, ASIN_TOLERANCE, 0},
+{649, 0u, 3070312723u, 0u, 0, ASIN_TOLERANCE, 0},
+{650, 0u, 3269996350u, 0u, 0, ASIN_TOLERANCE, 0},
+{651, 0u, 3451862908u, 0u, 0, ASIN_TOLERANCE, 0},
+{652, 0u, 3159551767u, 0u, 0, ASIN_TOLERANCE, 0},
+{653, 0u, 3150026558u, 0u, 0, ASIN_TOLERANCE, 0},
+{654, 0u, 3018474595u, 0u, 0, ASIN_TOLERANCE, 0},
+{655, 0u, 3092228268u, 0u, 0, ASIN_TOLERANCE, 0},
+{656, 0u, 3177295669u, 0u, 0, ASIN_TOLERANCE, 0},
+{657, 0u, 1281912088u, 0u, 0, ASIN_TOLERANCE, 0},
+{658, 0u, 1011694414u, 0u, 0, ASIN_TOLERANCE, 0},
+{659, 0u, 3017590098u, 0u, 0, ASIN_TOLERANCE, 0},
+{660, 0u, 932275550u, 0u, 0, ASIN_TOLERANCE, 0},
+{661, 0u, 925977317u, 0u, 0, ASIN_TOLERANCE, 0},
+{662, 0u, 3172338958u, 0u, 0, ASIN_TOLERANCE, 0},
+{663, 0u, 950074301u, 0u, 0, ASIN_TOLERANCE, 0},
+{664, 0u, 1031925638u, 0u, 0, ASIN_TOLERANCE, 0},
+{665, 0u, 3234909547u, 0u, 0, ASIN_TOLERANCE, 0},
+{666, 0u, 1309726409u, 0u, 0, ASIN_TOLERANCE, 0},
+{667, 0u, 2975716887u, 0u, 0, ASIN_TOLERANCE, 0},
+{668, 0u, 3070622494u, 0u, 0, ASIN_TOLERANCE, 0},
+{669, 3097616807u, 1185177793u, 3097616807u, 0, ASIN_TOLERANCE, 0},
+{670, 0u, 1086032676u, 0u, 0, ASIN_TOLERANCE, 0},
+{671, 0u, 3143814681u, 0u, 0, ASIN_TOLERANCE, 0},
+{672, 0u, 3071087132u, 0u, 0, ASIN_TOLERANCE, 0},
+{673, 0u, 868114980u, 0u, 0, ASIN_TOLERANCE, 0},
+{674, 0u, 1082239587u, 0u, 0, ASIN_TOLERANCE, 0},
+{675, 928394985u, 3470455863u, 928394985u, 0, ASIN_TOLERANCE, 0},
+{676, 0u, 3038104593u, 0u, 0, ASIN_TOLERANCE, 0},
+{677, 0u, 3266487747u, 0u, 0, ASIN_TOLERANCE, 0},
+{678, 0u, 931954492u, 0u, 0, ASIN_TOLERANCE, 0},
+{679, 0u, 845877036u, 0u, 0, ASIN_TOLERANCE, 0},
+{680, 0u, 3361912856u, 0u, 0, ASIN_TOLERANCE, 0},
+{681, 0u, 1288217553u, 0u, 0, ASIN_TOLERANCE, 0},
+{682, 994042498u, 1228207362u, 994042516u, 0, ASIN_TOLERANCE, 0},
+{683, 3026246945u, 3323646643u, 3026246945u, 0, ASIN_TOLERANCE, 0},
+{684, 0u, 931002785u, 0u, 0, ASIN_TOLERANCE, 0},
+{685, 0u, 852275082u, 0u, 0, ASIN_TOLERANCE, 0},
+{686, 0u, 3208517087u, 0u, 0, ASIN_TOLERANCE, 0},
+{687, 0u, 950619617u, 0u, 0, ASIN_TOLERANCE, 0},
+{688, 0u, 3062617950u, 0u, 0, ASIN_TOLERANCE, 0},
+{689, 0u, 2954695230u, 0u, 0, ASIN_TOLERANCE, 0},
+{690, 0u, 1249768800u, 0u, 0, ASIN_TOLERANCE, 0},
+{691, 0u, 3430381004u, 0u, 0, ASIN_TOLERANCE, 0},
+{692, 0u, 3468526321u, 0u, 0, ASIN_TOLERANCE, 0},
+{693, 0u, 3314169584u, 0u, 0, ASIN_TOLERANCE, 0},
+{694, 0u, 1252586244u, 0u, 0, ASIN_TOLERANCE, 0},
+{695, 0u, 807089907u, 0u, 0, ASIN_TOLERANCE, 0},
+{696, 0u, 1273960227u, 0u, 0, ASIN_TOLERANCE, 0},
+{697, 0u, 847765686u, 0u, 0, ASIN_TOLERANCE, 0},
+{698, 0u, 925967342u, 0u, 0, ASIN_TOLERANCE, 0},
+{699, 0u, 1232375752u, 0u, 0, ASIN_TOLERANCE, 0},
+{700, 0u, 1315058051u, 0u, 0, ASIN_TOLERANCE, 0},
+{701, 0u, 1134517149u, 0u, 0, ASIN_TOLERANCE, 0},
+{702, 0u, 1277946299u, 0u, 0, ASIN_TOLERANCE, 0},
+{703, 0u, 1071856519u, 0u, 0, ASIN_TOLERANCE, 0},
+{704, 0u, 1146993272u, 0u, 0, ASIN_TOLERANCE, 0},
+{705, 0u, 3474395292u, 0u, 0, ASIN_TOLERANCE, 0},
+{706, 0u, 3483908964u, 0u, 0, ASIN_TOLERANCE, 0},
+{707, 951674212u, 815317784u, 951674212u, 0, ASIN_TOLERANCE, 0},
+{708, 0u, 865935606u, 0u, 0, ASIN_TOLERANCE, 0},
+{709, 0u, 1318415694u, 0u, 0, ASIN_TOLERANCE, 0},
+{710, 0u, 880973446u, 0u, 0, ASIN_TOLERANCE, 0},
+{711, 0u, 949780485u, 0u, 0, ASIN_TOLERANCE, 0},
+{712, 0u, 986578339u, 0u, 0, ASIN_TOLERANCE, 0},
+{713, 0u, 3045907993u, 0u, 0, ASIN_TOLERANCE, 0},
+{714, 0u, 3092473439u, 0u, 0, ASIN_TOLERANCE, 0},
+{715, 0u, 1284508208u, 0u, 0, ASIN_TOLERANCE, 0},
+{716, 0u, 845285114u, 0u, 0, ASIN_TOLERANCE, 0},
+{717, 0u, 3251252972u, 0u, 0, ASIN_TOLERANCE, 0},
+{718, 0u, 3057474479u, 0u, 0, ASIN_TOLERANCE, 0},
+{719, 0u, 1335933001u, 0u, 0, ASIN_TOLERANCE, 0},
+{720, 0u, 843284752u, 0u, 0, ASIN_TOLERANCE, 0},
+{721, 0u, 3431817697u, 0u, 0, ASIN_TOLERANCE, 0},
+{722, 0u, 3245903485u, 0u, 0, ASIN_TOLERANCE, 0},
+{723, 0u, 1173153950u, 0u, 0, ASIN_TOLERANCE, 0},
+{724, 0u, 919202446u, 0u, 0, ASIN_TOLERANCE, 0},
+{725, 0u, 3274909610u, 0u, 0, ASIN_TOLERANCE, 0},
+{726, 0u, 913211241u, 0u, 0, ASIN_TOLERANCE, 0},
+{727, 0u, 994489862u, 0u, 0, ASIN_TOLERANCE, 0},
+{728, 0u, 1157022610u, 0u, 0, ASIN_TOLERANCE, 0},
+{729, 0u, 2962468497u, 0u, 0, ASIN_TOLERANCE, 0},
+{730, 0u, 3371554093u, 0u, 0, ASIN_TOLERANCE, 0},
+{731, 0u, 3188178213u, 0u, 0, ASIN_TOLERANCE, 0},
+{732, 0u, 860714230u, 0u, 0, ASIN_TOLERANCE, 0},
+{733, 0u, 3031764695u, 0u, 0, ASIN_TOLERANCE, 0},
+{734, 0u, 3438580893u, 0u, 0, ASIN_TOLERANCE, 0},
+{735, 0u, 1174324978u, 0u, 0, ASIN_TOLERANCE, 0},
+{736, 0u, 3489323653u, 0u, 0, ASIN_TOLERANCE, 0},
+{737, 0u, 3302139250u, 0u, 0, ASIN_TOLERANCE, 0},
+{738, 0u, 808328507u, 0u, 0, ASIN_TOLERANCE, 0},
+{739, 0u, 1030880169u, 0u, 0, ASIN_TOLERANCE, 0},
+{740, 0u, 831593944u, 0u, 0, ASIN_TOLERANCE, 0}
+
+// AUTOMATICALLY GENERATED VECTORS STOP
+
+};
+
+#endif // CYGONCE_LIBM_ASIN_H multiple inclusion protection
+
+// EOF asin.h
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/asinhf.c b/ecos/packages/language/c/libm/current/tests/vectors/asinhf.c
new file mode 100644
index 0000000..b56c361
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/asinhf.c
@@ -0,0 +1,115 @@
+//===========================================================================
+//
+// asin.c
+//
+// Test of asin() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// Declarations for test system:
+//
+// TESTCASE_TYPE=CYG_TEST_MODULE
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include <cyg/infra/testcase.h> // Test infrastructure
+#include <math.h> // Header for this package
+#include <sys/ieeefp.h> // Cyg_libm_ieee_double_shape_type
+#include "vectors/vector_support_float.h"// extra support for math tests
+
+#include "vectors/asinhf.h"
+
+// FUNCTIONS
+
+static void
+test( CYG_ADDRWORD data )
+{
+ cyg_ucount32 vec_size;
+ cyg_bool ret;
+
+ vec_size = sizeof(asinhf_vec) / sizeof(Cyg_libm_test_float_vec_t);
+ ret = doTestVecFloat( (CYG_ADDRWORD) &asinhf, CYG_LIBM_TEST_VEC_FLOAT,
+ CYG_LIBM_TEST_VEC_NONE, CYG_LIBM_TEST_VEC_FLOAT,
+ &asinhf_vec[0], vec_size );
+
+ if (ret==true)
+ {
+ CYG_TEST_PASS("asinhf() is stable");
+ } // if
+ else
+ {
+ CYG_TEST_FAIL("asinhf() failed tests");
+ } // else
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for Math "
+ "library asinhf() function");
+} // test()
+
+
+int
+main(int argc, char *argv[])
+{
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for Math library "
+ "asinhf() function");
+
+ START_TEST( test );
+
+ CYG_TEST_PASS_FINISH("Testing is not applicable to this configuration");
+
+} // main()
+
+
+// EOF asin.c
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/asinhf.h b/ecos/packages/language/c/libm/current/tests/vectors/asinhf.h
new file mode 100644
index 0000000..c72917c
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/asinhf.h
@@ -0,0 +1,364 @@
+#ifndef CYGONCE_LIBM_ASINH_H
+#define CYGONCE_LIBM_ASINH_H
+//===========================================================================
+//
+// asinh.h
+//
+// Test vectors for testing of asinh() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage: #include "vectors/asinh.h"
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include "vectors/vector_support_float.h"// extra support for math tests
+
+#define ASINH_TOLERANCE 1.0E-04
+
+static const Cyg_libm_test_float_vec_t asinhf_vec[] = {
+
+// AUTOMATICALLY GENERATED VECTORS START
+
+{0, 3214514586u, 2147495668u, 3212970857u, 0, ASINH_TOLERANCE, 0},
+{1, 3214430700u, 2147495668u, 3212917021u, 0, ASINH_TOLERANCE, 0},
+{2, 3214346813u, 2147495668u, 3212862920u, 0, ASINH_TOLERANCE, 0},
+{3, 3214262927u, 2147495668u, 3212780240u, 0, ASINH_TOLERANCE, 0},
+{4, 3214179041u, 2147495668u, 3212670966u, 0, ASINH_TOLERANCE, 0},
+{5, 3214095155u, 2147495668u, 3212561149u, 0, ASINH_TOLERANCE, 0},
+{6, 3214011269u, 2147495668u, 3212450788u, 0, ASINH_TOLERANCE, 0},
+{7, 3213927383u, 2147495668u, 3212339878u, 0, ASINH_TOLERANCE, 0},
+{8, 3213843497u, 2147495668u, 3212228416u, 0, ASINH_TOLERANCE, 0},
+{9, 3213759611u, 2147495668u, 3212116399u, 0, ASINH_TOLERANCE, 0},
+{10, 3213675725u, 2147495668u, 3212003823u, 0, ASINH_TOLERANCE, 0},
+{11, 3213591839u, 2147495668u, 3211890687u, 0, ASINH_TOLERANCE, 0},
+{12, 3213507953u, 2147495668u, 3211776985u, 0, ASINH_TOLERANCE, 0},
+{13, 3213424067u, 2147495668u, 3211662714u, 0, ASINH_TOLERANCE, 0},
+{14, 3213340180u, 2147495668u, 3211547871u, 0, ASINH_TOLERANCE, 0},
+{15, 3213256294u, 2147495668u, 3211432455u, 0, ASINH_TOLERANCE, 0},
+{16, 3213172408u, 2147495668u, 3211316461u, 0, ASINH_TOLERANCE, 0},
+{17, 3213088522u, 2147495668u, 3211199885u, 0, ASINH_TOLERANCE, 0},
+{18, 3213004636u, 2147495668u, 3211082726u, 0, ASINH_TOLERANCE, 0},
+{19, 3212920750u, 2147495668u, 3210964979u, 0, ASINH_TOLERANCE, 0},
+{20, 3212836864u, 2147495668u, 3210846643u, 0, ASINH_TOLERANCE, 0},
+{21, 3212669092u, 2147495668u, 3210727713u, 0, ASINH_TOLERANCE, 0},
+{22, 3212501320u, 2147495668u, 3210608188u, 0, ASINH_TOLERANCE, 0},
+{23, 3212333548u, 2147495668u, 3210488062u, 0, ASINH_TOLERANCE, 0},
+{24, 3212165775u, 2147495668u, 3210367335u, 0, ASINH_TOLERANCE, 0},
+{25, 3211998003u, 2147495668u, 3210246003u, 0, ASINH_TOLERANCE, 0},
+{26, 3211830231u, 2147495668u, 3210124064u, 0, ASINH_TOLERANCE, 0},
+{27, 3211662459u, 2147495668u, 3210001516u, 0, ASINH_TOLERANCE, 0},
+{28, 3211494687u, 2147495668u, 3209878354u, 0, ASINH_TOLERANCE, 0},
+{29, 3211326915u, 2147495668u, 3209754578u, 0, ASINH_TOLERANCE, 0},
+{30, 3211159142u, 2147495668u, 3209630183u, 0, ASINH_TOLERANCE, 0},
+{31, 3210991370u, 2147495668u, 3209505169u, 0, ASINH_TOLERANCE, 0},
+{32, 3210823598u, 2147495668u, 3209379532u, 0, ASINH_TOLERANCE, 0},
+{33, 3210655826u, 2147495668u, 3209253271u, 0, ASINH_TOLERANCE, 0},
+{34, 3210488054u, 2147495668u, 3209126382u, 0, ASINH_TOLERANCE, 0},
+{35, 3210320282u, 2147495668u, 3208998865u, 0, ASINH_TOLERANCE, 0},
+{36, 3210152509u, 2147495668u, 3208870717u, 0, ASINH_TOLERANCE, 0},
+{37, 3209984737u, 2147495668u, 3208741936u, 0, ASINH_TOLERANCE, 0},
+{38, 3209816965u, 2147495668u, 3208612522u, 0, ASINH_TOLERANCE, 0},
+{39, 3209649193u, 2147495668u, 3208482470u, 0, ASINH_TOLERANCE, 0},
+{40, 3209481421u, 2147495668u, 3208351781u, 0, ASINH_TOLERANCE, 0},
+{41, 3209313649u, 2147495668u, 3208220454u, 0, ASINH_TOLERANCE, 0},
+{42, 3209145876u, 2147495668u, 3208088485u, 0, ASINH_TOLERANCE, 0},
+{43, 3208978104u, 2147495668u, 3207955876u, 0, ASINH_TOLERANCE, 0},
+{44, 3208810332u, 2147495668u, 3207822623u, 0, ASINH_TOLERANCE, 0},
+{45, 3208642560u, 2147495668u, 3207688728u, 0, ASINH_TOLERANCE, 0},
+{46, 3208474788u, 2147495668u, 3207554188u, 0, ASINH_TOLERANCE, 0},
+{47, 3208307016u, 2147495668u, 3207419003u, 0, ASINH_TOLERANCE, 0},
+{48, 3208139244u, 2147495668u, 3207283173u, 0, ASINH_TOLERANCE, 0},
+{49, 3207971471u, 2147495668u, 3207146697u, 0, ASINH_TOLERANCE, 0},
+{50, 3207803699u, 2147495668u, 3207009576u, 0, ASINH_TOLERANCE, 0},
+{51, 3207635927u, 2147495668u, 3206871809u, 0, ASINH_TOLERANCE, 0},
+{52, 3207468155u, 2147495668u, 3206733396u, 0, ASINH_TOLERANCE, 0},
+{53, 3207300383u, 2147495668u, 3206594339u, 0, ASINH_TOLERANCE, 0},
+{54, 3207132611u, 2147495668u, 3206454637u, 0, ASINH_TOLERANCE, 0},
+{55, 3206964838u, 2147495668u, 3206314290u, 0, ASINH_TOLERANCE, 0},
+{56, 3206797066u, 2147495668u, 3206173301u, 0, ASINH_TOLERANCE, 0},
+{57, 3206629294u, 2147495668u, 3206031671u, 0, ASINH_TOLERANCE, 0},
+{58, 3206461522u, 2147495668u, 3205889401u, 0, ASINH_TOLERANCE, 0},
+{59, 3206293750u, 2147495668u, 3205746492u, 0, ASINH_TOLERANCE, 0},
+{60, 3206125978u, 2147495668u, 3205602946u, 0, ASINH_TOLERANCE, 0},
+{61, 3205958205u, 2147495668u, 3205458765u, 0, ASINH_TOLERANCE, 0},
+{62, 3205790433u, 2147495668u, 3205313953u, 0, ASINH_TOLERANCE, 0},
+{63, 3205622661u, 2147495668u, 3205168510u, 0, ASINH_TOLERANCE, 0},
+{64, 3205454889u, 2147495668u, 3205022440u, 0, ASINH_TOLERANCE, 0},
+{65, 3205287117u, 2147495668u, 3204875747u, 0, ASINH_TOLERANCE, 0},
+{66, 3205119345u, 2147495668u, 3204728433u, 0, ASINH_TOLERANCE, 0},
+{67, 3204951572u, 2147495668u, 3204580501u, 0, ASINH_TOLERANCE, 0},
+{68, 3204783800u, 2147495668u, 3204415655u, 0, ASINH_TOLERANCE, 0},
+{69, 3204616028u, 2147495668u, 3204117348u, 0, ASINH_TOLERANCE, 0},
+{70, 3204448256u, 2147495668u, 3203817830u, 0, ASINH_TOLERANCE, 0},
+{71, 3204112712u, 2147495668u, 3203517110u, 0, ASINH_TOLERANCE, 0},
+{72, 3203777167u, 2147495668u, 3203215201u, 0, ASINH_TOLERANCE, 0},
+{73, 3203441623u, 2147495668u, 3202912112u, 0, ASINH_TOLERANCE, 0},
+{74, 3203106079u, 2147495668u, 3202607855u, 0, ASINH_TOLERANCE, 0},
+{75, 3202770534u, 2147495668u, 3202302439u, 0, ASINH_TOLERANCE, 0},
+{76, 3202434990u, 2147495668u, 3201995878u, 0, ASINH_TOLERANCE, 0},
+{77, 3202099446u, 2147495668u, 3201688186u, 0, ASINH_TOLERANCE, 0},
+{78, 3201763901u, 2147495668u, 3201379374u, 0, ASINH_TOLERANCE, 0},
+{79, 3201428357u, 2147495668u, 3201069459u, 0, ASINH_TOLERANCE, 0},
+{80, 3201092813u, 2147495668u, 3200758454u, 0, ASINH_TOLERANCE, 0},
+{81, 3200757268u, 2147495668u, 3200446374u, 0, ASINH_TOLERANCE, 0},
+{82, 3200421724u, 2147495668u, 3200133237u, 0, ASINH_TOLERANCE, 0},
+{83, 3200086180u, 2147495668u, 3199819057u, 0, ASINH_TOLERANCE, 0},
+{84, 3199750636u, 2147495668u, 3199503854u, 0, ASINH_TOLERANCE, 0},
+{85, 3199415091u, 2147495668u, 3199187644u, 0, ASINH_TOLERANCE, 0},
+{86, 3199079547u, 2147495668u, 3198870448u, 0, ASINH_TOLERANCE, 0},
+{87, 3198744003u, 2147495668u, 3198552283u, 0, ASINH_TOLERANCE, 0},
+{88, 3198408458u, 2147495668u, 3198233169u, 0, ASINH_TOLERANCE, 0},
+{89, 3198072914u, 2147495668u, 3197913129u, 0, ASINH_TOLERANCE, 0},
+{90, 3197737370u, 2147495668u, 3197592182u, 0, ASINH_TOLERANCE, 0},
+{91, 3197401825u, 2147495668u, 3197270349u, 0, ASINH_TOLERANCE, 0},
+{92, 3197066281u, 2147495668u, 3196947656u, 0, ASINH_TOLERANCE, 0},
+{93, 3196730737u, 2147495668u, 3196624123u, 0, ASINH_TOLERANCE, 0},
+{94, 3196395192u, 2147495668u, 3196299775u, 0, ASINH_TOLERANCE, 0},
+{95, 3196059648u, 2147495668u, 3195889625u, 0, ASINH_TOLERANCE, 0},
+{96, 3195388559u, 2147495668u, 3195237815u, 0, ASINH_TOLERANCE, 0},
+{97, 3194717471u, 2147495668u, 3194584526u, 0, ASINH_TOLERANCE, 0},
+{98, 3194046382u, 2147495668u, 3193929807u, 0, ASINH_TOLERANCE, 0},
+{99, 3193375293u, 2147495668u, 3193273714u, 0, ASINH_TOLERANCE, 0},
+{100, 3192704205u, 2147495668u, 3192616299u, 0, ASINH_TOLERANCE, 0},
+{101, 3192033116u, 2147495668u, 3191957620u, 0, ASINH_TOLERANCE, 0},
+{102, 3191362028u, 2147495668u, 3191297731u, 0, ASINH_TOLERANCE, 0},
+{103, 3190690939u, 2147495668u, 3190636690u, 0, ASINH_TOLERANCE, 0},
+{104, 3190019850u, 2147495668u, 3189974557u, 0, ASINH_TOLERANCE, 0},
+{105, 3189348762u, 2147495668u, 3189311390u, 0, ASINH_TOLERANCE, 0},
+{106, 3188677673u, 2147495668u, 3188647250u, 0, ASINH_TOLERANCE, 0},
+{107, 3188006584u, 2147495668u, 3187982196u, 0, ASINH_TOLERANCE, 0},
+{108, 3186999951u, 2147495668u, 3186961544u, 0, ASINH_TOLERANCE, 0},
+{109, 3185657774u, 2147495668u, 3185628161u, 0, ASINH_TOLERANCE, 0},
+{110, 3184315597u, 2147495668u, 3184293327u, 0, ASINH_TOLERANCE, 0},
+{111, 3182973420u, 2147495668u, 3182957172u, 0, ASINH_TOLERANCE, 0},
+{112, 3181631242u, 2147495668u, 3181619822u, 0, ASINH_TOLERANCE, 0},
+{113, 3180289065u, 2147495668u, 3180281409u, 0, ASINH_TOLERANCE, 0},
+{114, 3178611343u, 2147495668u, 3178601695u, 0, ASINH_TOLERANCE, 0},
+{115, 3175926989u, 2147495668u, 3175921403u, 0, ASINH_TOLERANCE, 0},
+{116, 3173242634u, 2147495668u, 3173239773u, 0, ASINH_TOLERANCE, 0},
+{117, 3170222735u, 2147495668u, 3170220320u, 0, ASINH_TOLERANCE, 0},
+{118, 3164854026u, 2147495668u, 3164853310u, 0, ASINH_TOLERANCE, 0},
+{119, 3156465418u, 2147495668u, 3156465239u, 0, ASINH_TOLERANCE, 0},
+{120, 646742016u, 2147495668u, 646742016u, 0, ASINH_TOLERANCE, 0},
+{121, 1008981770u, 2147495668u, 1008981591u, 0, ASINH_TOLERANCE, 0},
+{122, 1017370378u, 2147495668u, 1017369662u, 0, ASINH_TOLERANCE, 0},
+{123, 1022739087u, 2147495668u, 1022736672u, 0, ASINH_TOLERANCE, 0},
+{124, 1025758986u, 2147495668u, 1025756125u, 0, ASINH_TOLERANCE, 0},
+{125, 1028443341u, 2147495668u, 1028437755u, 0, ASINH_TOLERANCE, 0},
+{126, 1031127695u, 2147495668u, 1031118047u, 0, ASINH_TOLERANCE, 0},
+{127, 1032805417u, 2147495668u, 1032797761u, 0, ASINH_TOLERANCE, 0},
+{128, 1034147594u, 2147495668u, 1034136174u, 0, ASINH_TOLERANCE, 0},
+{129, 1035489772u, 2147495668u, 1035473524u, 0, ASINH_TOLERANCE, 0},
+{130, 1036831949u, 2147495668u, 1036809679u, 0, ASINH_TOLERANCE, 0},
+{131, 1038174126u, 2147495668u, 1038144513u, 0, ASINH_TOLERANCE, 0},
+{132, 1039516303u, 2147495668u, 1039477896u, 0, ASINH_TOLERANCE, 0},
+{133, 1040522936u, 2147495668u, 1040498548u, 0, ASINH_TOLERANCE, 0},
+{134, 1041194025u, 2147495668u, 1041163602u, 0, ASINH_TOLERANCE, 0},
+{135, 1041865114u, 2147495668u, 1041827742u, 0, ASINH_TOLERANCE, 0},
+{136, 1042536202u, 2147495668u, 1042490909u, 0, ASINH_TOLERANCE, 0},
+{137, 1043207291u, 2147495668u, 1043153042u, 0, ASINH_TOLERANCE, 0},
+{138, 1043878380u, 2147495668u, 1043814083u, 0, ASINH_TOLERANCE, 0},
+{139, 1044549468u, 2147495668u, 1044473972u, 0, ASINH_TOLERANCE, 0},
+{140, 1045220557u, 2147495668u, 1045132651u, 0, ASINH_TOLERANCE, 0},
+{141, 1045891645u, 2147495668u, 1045790066u, 0, ASINH_TOLERANCE, 0},
+{142, 1046562734u, 2147495668u, 1046446159u, 0, ASINH_TOLERANCE, 0},
+{143, 1047233823u, 2147495668u, 1047100878u, 0, ASINH_TOLERANCE, 0},
+{144, 1047904911u, 2147495668u, 1047754167u, 0, ASINH_TOLERANCE, 0},
+{145, 1048576000u, 2147495668u, 1048405977u, 0, ASINH_TOLERANCE, 0},
+{146, 1048911544u, 2147495668u, 1048816127u, 0, ASINH_TOLERANCE, 0},
+{147, 1049247089u, 2147495668u, 1049140475u, 0, ASINH_TOLERANCE, 0},
+{148, 1049582633u, 2147495668u, 1049464008u, 0, ASINH_TOLERANCE, 0},
+{149, 1049918177u, 2147495668u, 1049786701u, 0, ASINH_TOLERANCE, 0},
+{150, 1050253722u, 2147495668u, 1050108534u, 0, ASINH_TOLERANCE, 0},
+{151, 1050589266u, 2147495668u, 1050429481u, 0, ASINH_TOLERANCE, 0},
+{152, 1050924810u, 2147495668u, 1050749521u, 0, ASINH_TOLERANCE, 0},
+{153, 1051260355u, 2147495668u, 1051068635u, 0, ASINH_TOLERANCE, 0},
+{154, 1051595899u, 2147495668u, 1051386800u, 0, ASINH_TOLERANCE, 0},
+{155, 1051931443u, 2147495668u, 1051703996u, 0, ASINH_TOLERANCE, 0},
+{156, 1052266988u, 2147495668u, 1052020206u, 0, ASINH_TOLERANCE, 0},
+{157, 1052602532u, 2147495668u, 1052335409u, 0, ASINH_TOLERANCE, 0},
+{158, 1052938076u, 2147495668u, 1052649589u, 0, ASINH_TOLERANCE, 0},
+{159, 1053273620u, 2147495668u, 1052962726u, 0, ASINH_TOLERANCE, 0},
+{160, 1053609165u, 2147495668u, 1053274806u, 0, ASINH_TOLERANCE, 0},
+{161, 1053944709u, 2147495668u, 1053585811u, 0, ASINH_TOLERANCE, 0},
+{162, 1054280253u, 2147495668u, 1053895726u, 0, ASINH_TOLERANCE, 0},
+{163, 1054615798u, 2147495668u, 1054204538u, 0, ASINH_TOLERANCE, 0},
+{164, 1054951342u, 2147495668u, 1054512230u, 0, ASINH_TOLERANCE, 0},
+{165, 1055286886u, 2147495668u, 1054818791u, 0, ASINH_TOLERANCE, 0},
+{166, 1055622431u, 2147495668u, 1055124207u, 0, ASINH_TOLERANCE, 0},
+{167, 1055957975u, 2147495668u, 1055428464u, 0, ASINH_TOLERANCE, 0},
+{168, 1056293519u, 2147495668u, 1055731553u, 0, ASINH_TOLERANCE, 0},
+{169, 1056629064u, 2147495668u, 1056033462u, 0, ASINH_TOLERANCE, 0},
+{170, 1056964608u, 2147495668u, 1056334182u, 0, ASINH_TOLERANCE, 0},
+{171, 1057132380u, 2147495668u, 1056633700u, 0, ASINH_TOLERANCE, 0},
+{172, 1057300152u, 2147495668u, 1056932007u, 0, ASINH_TOLERANCE, 0},
+{173, 1057467924u, 2147495668u, 1057096853u, 0, ASINH_TOLERANCE, 0},
+{174, 1057635697u, 2147495668u, 1057244785u, 0, ASINH_TOLERANCE, 0},
+{175, 1057803469u, 2147495668u, 1057392099u, 0, ASINH_TOLERANCE, 0},
+{176, 1057971241u, 2147495668u, 1057538792u, 0, ASINH_TOLERANCE, 0},
+{177, 1058139013u, 2147495668u, 1057684862u, 0, ASINH_TOLERANCE, 0},
+{178, 1058306785u, 2147495668u, 1057830305u, 0, ASINH_TOLERANCE, 0},
+{179, 1058474557u, 2147495668u, 1057975117u, 0, ASINH_TOLERANCE, 0},
+{180, 1058642330u, 2147495668u, 1058119298u, 0, ASINH_TOLERANCE, 0},
+{181, 1058810102u, 2147495668u, 1058262844u, 0, ASINH_TOLERANCE, 0},
+{182, 1058977874u, 2147495668u, 1058405753u, 0, ASINH_TOLERANCE, 0},
+{183, 1059145646u, 2147495668u, 1058548023u, 0, ASINH_TOLERANCE, 0},
+{184, 1059313418u, 2147495668u, 1058689653u, 0, ASINH_TOLERANCE, 0},
+{185, 1059481190u, 2147495668u, 1058830642u, 0, ASINH_TOLERANCE, 0},
+{186, 1059648963u, 2147495668u, 1058970989u, 0, ASINH_TOLERANCE, 0},
+{187, 1059816735u, 2147495668u, 1059110691u, 0, ASINH_TOLERANCE, 0},
+{188, 1059984507u, 2147495668u, 1059249748u, 0, ASINH_TOLERANCE, 0},
+{189, 1060152279u, 2147495668u, 1059388161u, 0, ASINH_TOLERANCE, 0},
+{190, 1060320051u, 2147495668u, 1059525928u, 0, ASINH_TOLERANCE, 0},
+{191, 1060487823u, 2147495668u, 1059663049u, 0, ASINH_TOLERANCE, 0},
+{192, 1060655596u, 2147495668u, 1059799525u, 0, ASINH_TOLERANCE, 0},
+{193, 1060823368u, 2147495668u, 1059935355u, 0, ASINH_TOLERANCE, 0},
+{194, 1060991140u, 2147495668u, 1060070540u, 0, ASINH_TOLERANCE, 0},
+{195, 1061158912u, 2147495668u, 1060205080u, 0, ASINH_TOLERANCE, 0},
+{196, 1061326684u, 2147495668u, 1060338975u, 0, ASINH_TOLERANCE, 0},
+{197, 1061494456u, 2147495668u, 1060472228u, 0, ASINH_TOLERANCE, 0},
+{198, 1061662228u, 2147495668u, 1060604837u, 0, ASINH_TOLERANCE, 0},
+{199, 1061830001u, 2147495668u, 1060736806u, 0, ASINH_TOLERANCE, 0},
+{200, 1061997773u, 2147495668u, 1060868133u, 0, ASINH_TOLERANCE, 0},
+{201, 1062165545u, 2147495668u, 1060998822u, 0, ASINH_TOLERANCE, 0},
+{202, 1062333317u, 2147495668u, 1061128874u, 0, ASINH_TOLERANCE, 0},
+{203, 1062501089u, 2147495668u, 1061258288u, 0, ASINH_TOLERANCE, 0},
+{204, 1062668861u, 2147495668u, 1061387069u, 0, ASINH_TOLERANCE, 0},
+{205, 1062836634u, 2147495668u, 1061515217u, 0, ASINH_TOLERANCE, 0},
+{206, 1063004406u, 2147495668u, 1061642734u, 0, ASINH_TOLERANCE, 0},
+{207, 1063172178u, 2147495668u, 1061769623u, 0, ASINH_TOLERANCE, 0},
+{208, 1063339950u, 2147495668u, 1061895884u, 0, ASINH_TOLERANCE, 0},
+{209, 1063507722u, 2147495668u, 1062021521u, 0, ASINH_TOLERANCE, 0},
+{210, 1063675494u, 2147495668u, 1062146535u, 0, ASINH_TOLERANCE, 0},
+{211, 1063843267u, 2147495668u, 1062270930u, 0, ASINH_TOLERANCE, 0},
+{212, 1064011039u, 2147495668u, 1062394706u, 0, ASINH_TOLERANCE, 0},
+{213, 1064178811u, 2147495668u, 1062517868u, 0, ASINH_TOLERANCE, 0},
+{214, 1064346583u, 2147495668u, 1062640416u, 0, ASINH_TOLERANCE, 0},
+{215, 1064514355u, 2147495668u, 1062762355u, 0, ASINH_TOLERANCE, 0},
+{216, 1064682127u, 2147495668u, 1062883687u, 0, ASINH_TOLERANCE, 0},
+{217, 1064849900u, 2147495668u, 1063004414u, 0, ASINH_TOLERANCE, 0},
+{218, 1065017672u, 2147495668u, 1063124540u, 0, ASINH_TOLERANCE, 0},
+{219, 1065185444u, 2147495668u, 1063244065u, 0, ASINH_TOLERANCE, 0},
+{220, 1065353216u, 2147495668u, 1063362995u, 0, ASINH_TOLERANCE, 0},
+{221, 1065437102u, 2147495668u, 1063481331u, 0, ASINH_TOLERANCE, 0},
+{222, 1065520988u, 2147495668u, 1063599078u, 0, ASINH_TOLERANCE, 0},
+{223, 1065604874u, 2147495668u, 1063716237u, 0, ASINH_TOLERANCE, 0},
+{224, 1065688760u, 2147495668u, 1063832813u, 0, ASINH_TOLERANCE, 0},
+{225, 1065772646u, 2147495668u, 1063948807u, 0, ASINH_TOLERANCE, 0},
+{226, 1065856532u, 2147495668u, 1064064223u, 0, ASINH_TOLERANCE, 0},
+{227, 1065940419u, 2147495668u, 1064179066u, 0, ASINH_TOLERANCE, 0},
+{228, 1066024305u, 2147495668u, 1064293337u, 0, ASINH_TOLERANCE, 0},
+{229, 1066108191u, 2147495668u, 1064407039u, 0, ASINH_TOLERANCE, 0},
+{230, 1066192077u, 2147495668u, 1064520175u, 0, ASINH_TOLERANCE, 0},
+{231, 1066275963u, 2147495668u, 1064632751u, 0, ASINH_TOLERANCE, 0},
+{232, 1066359849u, 2147495668u, 1064744768u, 0, ASINH_TOLERANCE, 0},
+{233, 1066443735u, 2147495668u, 1064856230u, 0, ASINH_TOLERANCE, 0},
+{234, 1066527621u, 2147495668u, 1064967140u, 0, ASINH_TOLERANCE, 0},
+{235, 1066611507u, 2147495668u, 1065077501u, 0, ASINH_TOLERANCE, 0},
+{236, 1066695393u, 2147495668u, 1065187318u, 0, ASINH_TOLERANCE, 0},
+{237, 1066779279u, 2147495668u, 1065296592u, 0, ASINH_TOLERANCE, 0},
+{238, 1066863165u, 2147495668u, 1065379272u, 0, ASINH_TOLERANCE, 0},
+{239, 1066947052u, 2147495668u, 1065433373u, 0, ASINH_TOLERANCE, 0},
+{240, 3234402267u, 2147495668u, 3223479061u, 0, ASINH_TOLERANCE, 0},
+{241, 3231108068u, 2147495668u, 3222292564u, 0, ASINH_TOLERANCE, 0},
+{242, 3226013659u, 2147495668u, 3220070325u, 0, ASINH_TOLERANCE, 0},
+{243, 3217625051u, 2147495668u, 3214794791u, 0, ASINH_TOLERANCE, 0},
+{244, 0u, 2147495668u, 0u, 0, ASINH_TOLERANCE, 0},
+{245, 1070141403u, 2147495668u, 1067311143u, 0, ASINH_TOLERANCE, 0},
+{246, 1078530011u, 2147495668u, 1072586677u, 0, ASINH_TOLERANCE, 0},
+{247, 1083624420u, 2147495668u, 1074808916u, 0, ASINH_TOLERANCE, 0},
+{248, 3253731328u, 2147495668u, 3229812517u, 0, ASINH_TOLERANCE, 0},
+{249, 3252840038u, 2147495668u, 3229690251u, 0, ASINH_TOLERANCE, 0},
+{250, 3251948749u, 2147495668u, 3229506754u, 0, ASINH_TOLERANCE, 0},
+{251, 3251057459u, 2147495668u, 3229229957u, 0, ASINH_TOLERANCE, 0},
+{252, 3250166170u, 2147495668u, 3228933611u, 0, ASINH_TOLERANCE, 0},
+{253, 3249274880u, 2147495668u, 3228614747u, 0, ASINH_TOLERANCE, 0},
+{254, 3248383590u, 2147495668u, 3228269663u, 0, ASINH_TOLERANCE, 0},
+{255, 3247492301u, 2147495668u, 3227893666u, 0, ASINH_TOLERANCE, 0},
+{256, 3246601011u, 2147495668u, 3227480676u, 0, ASINH_TOLERANCE, 0},
+{257, 3245028147u, 2147495668u, 3227022627u, 0, ASINH_TOLERANCE, 0},
+{258, 3243245568u, 2147495668u, 3226508502u, 0, ASINH_TOLERANCE, 0},
+{259, 3241462989u, 2147495668u, 3225922682u, 0, ASINH_TOLERANCE, 0},
+{260, 3239680410u, 2147495668u, 3225241988u, 0, ASINH_TOLERANCE, 0},
+{261, 3237792973u, 2147495668u, 3224429886u, 0, ASINH_TOLERANCE, 0},
+{262, 3234227814u, 2147495668u, 3223423864u, 0, ASINH_TOLERANCE, 0},
+{263, 3230662656u, 2147495668u, 3222103540u, 0, ASINH_TOLERANCE, 0},
+{264, 3224580915u, 2147495668u, 3219155405u, 0, ASINH_TOLERANCE, 0},
+{265, 3213675725u, 2147495668u, 3212003823u, 0, ASINH_TOLERANCE, 0},
+{266, 1058642330u, 2147495668u, 1058119298u, 0, ASINH_TOLERANCE, 0},
+{267, 1075000115u, 2147495668u, 1070137059u, 0, ASINH_TOLERANCE, 0},
+{268, 1082130432u, 2147495668u, 1074139077u, 0, ASINH_TOLERANCE, 0},
+{269, 1085695590u, 2147495668u, 1075592438u, 0, ASINH_TOLERANCE, 0},
+{270, 1089260749u, 2147495668u, 1076674320u, 0, ASINH_TOLERANCE, 0},
+{271, 1091672474u, 2147495668u, 1077535266u, 0, ASINH_TOLERANCE, 0},
+{272, 1093455053u, 2147495668u, 1078249987u, 0, ASINH_TOLERANCE, 0},
+{273, 1095237632u, 2147495668u, 1078860855u, 0, ASINH_TOLERANCE, 0},
+{274, 1097020211u, 2147495668u, 1079394180u, 0, ASINH_TOLERANCE, 0},
+{275, 1098802790u, 2147495668u, 1079867411u, 0, ASINH_TOLERANCE, 0},
+{276, 1099746509u, 2147495668u, 1080292707u, 0, ASINH_TOLERANCE, 0},
+{277, 1100637798u, 2147495668u, 1080678879u, 0, ASINH_TOLERANCE, 0},
+{278, 1101529088u, 2147495668u, 1081032514u, 0, ASINH_TOLERANCE, 0},
+{279, 1102420378u, 2147495668u, 1081358667u, 0, ASINH_TOLERANCE, 0},
+{280, 1103311667u, 2147495668u, 1081661299u, 0, ASINH_TOLERANCE, 0},
+{281, 1104202957u, 2147495668u, 1081943573u, 0, ASINH_TOLERANCE, 0},
+{282, 1105094246u, 2147495668u, 1082169243u, 0, ASINH_TOLERANCE, 0},
+{283, 1105985536u, 2147495668u, 1082293642u, 0, ASINH_TOLERANCE, 0},
+{284, 0u, 2147495668u, 0u, 0, ASINH_TOLERANCE, 0},
+
+// AUTOMATICALLY GENERATED VECTORS STOP
+
+};
+
+#endif // CYGONCE_LIBM_ASINH_H multiple inclusion protection
+
+// EOF asinh.h
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/atan.c b/ecos/packages/language/c/libm/current/tests/vectors/atan.c
new file mode 100644
index 0000000..07c739e
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/atan.c
@@ -0,0 +1,115 @@
+//===========================================================================
+//
+// atan.c
+//
+// Test of atan() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// Declarations for test system:
+//
+// TESTCASE_TYPE=CYG_TEST_MODULE
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include <cyg/infra/testcase.h> // Test infrastructure
+#include <math.h> // Header for this package
+#include <sys/ieeefp.h> // Cyg_libm_ieee_double_shape_type
+#include "vectors/vector_support.h"// extra support for math tests
+
+#include "vectors/atan.h"
+
+// FUNCTIONS
+
+static void
+test( CYG_ADDRWORD data )
+{
+ cyg_ucount32 vec_size;
+ cyg_bool ret;
+
+ vec_size = sizeof(atan_vec) / sizeof(Cyg_libm_test_double_vec_t);
+ ret = doTestVec( (CYG_ADDRWORD) &atan, CYG_LIBM_TEST_VEC_DOUBLE,
+ CYG_LIBM_TEST_VEC_NONE, CYG_LIBM_TEST_VEC_DOUBLE,
+ &atan_vec[0], vec_size );
+
+ if (ret==true)
+ {
+ CYG_TEST_PASS("atan() is stable");
+ } // if
+ else
+ {
+ CYG_TEST_FAIL("atan() failed tests");
+ } // else
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for Math "
+ "library atan() function");
+} // test()
+
+
+int
+main(int argc, char *argv[])
+{
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for Math library "
+ "atan() function");
+
+ START_TEST( test );
+
+ CYG_TEST_PASS_FINISH("Testing is not applicable to this configuration");
+
+} // main()
+
+
+// EOF atan.c
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/atan.h b/ecos/packages/language/c/libm/current/tests/vectors/atan.h
new file mode 100644
index 0000000..0c1ce01
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/atan.h
@@ -0,0 +1,1079 @@
+#ifndef CYGONCE_LIBM_ATAN_H
+#define CYGONCE_LIBM_ATAN_H
+//===========================================================================
+//
+// atan.h
+//
+// Test vectors for testing of atan() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage: #include "vectors/atan.h"
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include "vectors/vector_support.h"// extra support for math tests
+
+#define ATAN_TOLERANCE 1.0E-04
+
+static const Cyg_libm_test_double_vec_t atan_vec[] = {
+
+// AUTOMATICALLY GENERATED VECTORS START
+
+{ 1, 1077999148u, 2506787616u, 1090024059u, 3619148316u, 1073260870u, 80828740u, 0, ATAN_TOLERANCE, 0},
+{ 2, 3218153654u, 3176730980u, 1051524793u, 2993920299u, 3218127952u, 2148913948u, 0, ATAN_TOLERANCE, 0},
+{ 3, 3239659803u, 2725707538u, 3232101343u, 2346810316u, 3220775416u, 3427719722u, 0, ATAN_TOLERANCE, 0},
+{ 4, 1092554362u, 2088062470u, 3201242716u, 420891118u, 1073291769u, 1152807046u, 0, ATAN_TOLERANCE, 0},
+{ 5, 3221200677u, 2636405208u, 1100049309u, 471635570u, 3220284243u, 1650435225u, 0, ATAN_TOLERANCE, 0},
+{ 6, 1089363191u, 1746012320u, 1054478713u, 3333988501u, 1073291754u, 2004116794u, 0, ATAN_TOLERANCE, 0},
+{ 7, 1047953160u, 183014794u, 3202039382u, 2016785810u, 1047953160u, 183014779u, 0, ATAN_TOLERANCE, 0},
+{ 8, 3213486034u, 2688957927u, 1046089230u, 2709029994u, 3213485944u, 373769876u, 0, ATAN_TOLERANCE, 0},
+{ 9, 1058795730u, 624574473u, 1045840574u, 3473266330u, 1058795730u, 594792680u, 0, ATAN_TOLERANCE, 0},
+{ 10, 3204919842u, 1605286142u, 1068931671u, 4233776869u, 3204919842u, 1601026149u, 0, ATAN_TOLERANCE, 0},
+{ 11, 1060343410u, 1857607719u, 3222889559u, 3417070006u, 1060343410u, 1694216909u, 0, ATAN_TOLERANCE, 0},
+{ 12, 1103599987u, 3981151660u, 1088899021u, 1332651746u, 1073291771u, 1408066806u, 0, ATAN_TOLERANCE, 0},
+{ 13, 1085298022u, 3824988054u, 1066856791u, 2070129652u, 1073291520u, 2395617049u, 0, ATAN_TOLERANCE, 0},
+{ 14, 3207559790u, 1372884064u, 1080833116u, 3229926662u, 3207559790u, 1202538732u, 0, ATAN_TOLERANCE, 0},
+{ 15, 1093826501u, 3217805330u, 3191644264u, 2014578707u, 1073291770u, 1987690820u, 0, ATAN_TOLERANCE, 0},
+{ 16, 1102287487u, 265058758u, 3239903247u, 1630600647u, 1073291771u, 1400039033u, 0, ATAN_TOLERANCE, 0},
+{ 17, 1071124229u, 1946677669u, 3198462609u, 926009897u, 1071055683u, 2564295466u, 0, ATAN_TOLERANCE, 0},
+{ 18, 1072130299u, 2271884183u, 3203741999u, 2118617783u, 1071920653u, 944685799u, 0, ATAN_TOLERANCE, 0},
+{ 19, 3194849109u, 213658772u, 3249401130u, 314151656u, 3194849109u, 213658764u, 0, ATAN_TOLERANCE, 0},
+{ 20, 3254112288u, 1564829925u, 3197817016u, 497230814u, 3220775419u, 1412984998u, 0, ATAN_TOLERANCE, 0},
+{ 21, 3216262634u, 2075329122u, 3231746400u, 169900577u, 3216259867u, 2055429970u, 0, ATAN_TOLERANCE, 0},
+{ 22, 1049848642u, 541549344u, 1096608669u, 3119070100u, 1049848642u, 541549191u, 0, ATAN_TOLERANCE, 0},
+{ 23, 1085427055u, 567496114u, 1045286891u, 1969998540u, 1073291547u, 2294903094u, 0, ATAN_TOLERANCE, 0},
+{ 24, 1060548195u, 1299369769u, 1049342524u, 4167404066u, 1060548195u, 1044477369u, 0, ATAN_TOLERANCE, 0},
+{ 25, 3208865645u, 3348930841u, 1078472138u, 358457347u, 3208865645u, 2710529722u, 0, ATAN_TOLERANCE, 0},
+{ 26, 1071069297u, 2192461366u, 1099527247u, 3184735642u, 1071007346u, 3244807363u, 0, ATAN_TOLERANCE, 0},
+{ 27, 1052861772u, 331696577u, 3189610016u, 793242270u, 1052861772u, 331689558u, 0, ATAN_TOLERANCE, 0},
+{ 28, 3252528934u, 2322696981u, 1083791358u, 3020766674u, 3220775419u, 1411490992u, 0, ATAN_TOLERANCE, 0},
+{ 29, 1044902177u, 252085215u, 3214426435u, 4139068910u, 1044902177u, 252085215u, 0, ATAN_TOLERANCE, 0},
+{ 30, 3222505725u, 105589263u, 1056316170u, 261630827u, 3220563640u, 3145808599u, 0, ATAN_TOLERANCE, 0},
+{ 31, 1107213408u, 428765703u, 3251828686u, 2009972239u, 1073291771u, 1413208284u, 0, ATAN_TOLERANCE, 0},
+{ 32, 1098568019u, 3517376586u, 3240257920u, 3304487302u, 1073291771u, 1253599848u, 0, ATAN_TOLERANCE, 0},
+{ 33, 3233537912u, 237004814u, 3237899261u, 3364008659u, 3220775272u, 1617169199u, 0, ATAN_TOLERANCE, 0},
+{ 34, 3195247552u, 472004928u, 3226869477u, 1186387580u, 3195247552u, 472004918u, 0, ATAN_TOLERANCE, 0},
+{ 35, 1054226850u, 4085763910u, 1106394906u, 2684738273u, 1054226850u, 4085705359u, 0, ATAN_TOLERANCE, 0},
+{ 36, 1057053639u, 2055490142u, 3231581370u, 3879040079u, 1057053639u, 2053704821u, 0, ATAN_TOLERANCE, 0},
+{ 37, 3188976647u, 3725731239u, 1061652681u, 591292963u, 3188976647u, 3725731239u, 0, ATAN_TOLERANCE, 0},
+{ 38, 3225014981u, 1147041027u, 3215417793u, 624695933u, 3220734833u, 3583708004u, 0, ATAN_TOLERANCE, 0},
+{ 39, 3206052774u, 705725219u, 3238067573u, 1116238321u, 3206052774u, 685688214u, 0, ATAN_TOLERANCE, 0},
+{ 40, 3207367088u, 7287411u, 1045917232u, 116067742u, 3207367087u, 4175325358u, 0, ATAN_TOLERANCE, 0},
+{ 41, 3240055222u, 3604989074u, 1066381836u, 545298780u, 3220775417u, 1227029661u, 0, ATAN_TOLERANCE, 0},
+{ 42, 3219080936u, 1681476121u, 1060345752u, 3553822398u, 3218937769u, 460181535u, 0, ATAN_TOLERANCE, 0},
+{ 43, 1102831658u, 3410480388u, 1052460275u, 1660607230u, 1073291771u, 1404124390u, 0, ATAN_TOLERANCE, 0},
+{ 44, 1089216869u, 1494984673u, 3196647153u, 287894723u, 1073291753u, 550827505u, 0, ATAN_TOLERANCE, 0},
+{ 45, 1054885127u, 644548665u, 1081948134u, 2442134629u, 1054885127u, 644456791u, 0, ATAN_TOLERANCE, 0},
+{ 46, 1087554095u, 2312530895u, 3221584595u, 3379665576u, 1073291716u, 3181235278u, 0, ATAN_TOLERANCE, 0},
+{ 47, 1096085375u, 3018463866u, 1086226574u, 404012923u, 1073291771u, 593146344u, 0, ATAN_TOLERANCE, 0},
+{ 48, 1064733299u, 1710279345u, 3251401196u, 3528946000u, 1064733284u, 2087599474u, 0, ATAN_TOLERANCE, 0},
+{ 49, 1061536351u, 2164450219u, 1083520023u, 3312018966u, 1061536351u, 1264224322u, 0, ATAN_TOLERANCE, 0},
+{ 50, 1057248676u, 2648986431u, 1050330591u, 1474376550u, 1057248676u, 2646116431u, 0, ATAN_TOLERANCE, 0},
+{ 51, 3194422028u, 1839068700u, 1077406406u, 3013052171u, 3194422028u, 1839068696u, 0, ATAN_TOLERANCE, 0},
+{ 52, 1046493630u, 772102380u, 3220729740u, 4219039958u, 1046493630u, 772102379u, 0, ATAN_TOLERANCE, 0},
+{ 53, 3229472221u, 3058618779u, 1046304788u, 3338676024u, 3220773222u, 3213354261u, 0, ATAN_TOLERANCE, 0},
+{ 54, 1051172137u, 506286854u, 1094907481u, 2217000199u, 1051172137u, 506285757u, 0, ATAN_TOLERANCE, 0},
+{ 55, 1082428310u, 1147428263u, 1065432625u, 3034786717u, 1073290176u, 1772815414u, 0, ATAN_TOLERANCE, 0},
+{ 56, 1082016752u, 2844125311u, 1082985198u, 2561492677u, 1073289605u, 4100112063u, 0, ATAN_TOLERANCE, 0},
+{ 57, 3211536916u, 704542600u, 3222902057u, 2762779203u, 3211536908u, 3829698748u, 0, ATAN_TOLERANCE, 0},
+{ 58, 3199680614u, 184131949u, 3249723525u, 1667366082u, 3199680614u, 184127759u, 0, ATAN_TOLERANCE, 0},
+{ 59, 3223609598u, 3904224140u, 1067056698u, 2942159914u, 3220672839u, 3275979607u, 0, ATAN_TOLERANCE, 0},
+{ 60, 1100636863u, 426114282u, 3209056785u, 1083606355u, 1073291771u, 1373060099u, 0, ATAN_TOLERANCE, 0},
+{ 61, 1106165945u, 3774123863u, 1106787580u, 2722107965u, 1073291771u, 1412663036u, 0, ATAN_TOLERANCE, 0},
+{ 62, 1088005092u, 1377734762u, 1104232051u, 2377063483u, 1073291731u, 1683126600u, 0, ATAN_TOLERANCE, 0},
+{ 63, 1069380559u, 1029739074u, 1105467109u, 3062201018u, 1069372110u, 661828638u, 0, ATAN_TOLERANCE, 0},
+{ 64, 3234741597u, 773857656u, 3214251949u, 335833884u, 3220775351u, 2592582459u, 0, ATAN_TOLERANCE, 0},
+{ 65, 3203224610u, 1473865960u, 1103073830u, 4000427507u, 3203224610u, 1473327771u, 0, ATAN_TOLERANCE, 0},
+{ 66, 1103185231u, 4242092620u, 1067009473u, 14539161u, 1073291771u, 1405982747u, 0, ATAN_TOLERANCE, 0},
+{ 67, 3192516074u, 1732245037u, 1101371955u, 1533536108u, 3192516074u, 1732245037u, 0, ATAN_TOLERANCE, 0},
+{ 68, 3249153995u, 1833841275u, 1099430098u, 4144145552u, 3220775419u, 1393227976u, 0, ATAN_TOLERANCE, 0},
+{ 69, 3244270463u, 935007012u, 3188865420u, 604442938u, 3220775419u, 870751708u, 0, ATAN_TOLERANCE, 0},
+{ 70, 3206903253u, 2211464602u, 1046255144u, 1635910526u, 3206903253u, 2157488019u, 0, ATAN_TOLERANCE, 0},
+{ 71, 1077871417u, 2549219008u, 3231633258u, 3733639385u, 1073257971u, 3212130123u, 0, ATAN_TOLERANCE, 0},
+{ 72, 1082095089u, 1819374372u, 3202219056u, 2617077637u, 1073289688u, 970851516u, 0, ATAN_TOLERANCE, 0},
+{ 73, 1094345280u, 546465680u, 1048653554u, 532401530u, 1073291770u, 3104111779u, 0, ATAN_TOLERANCE, 0},
+{ 74, 1044571091u, 2759019783u, 3221570188u, 3554409630u, 1044571091u, 2759019783u, 0, ATAN_TOLERANCE, 0},
+{ 75, 3212931282u, 2527221960u, 1099107978u, 2696971136u, 3212931254u, 4118622275u, 0, ATAN_TOLERANCE, 0},
+{ 76, 1097158000u, 173134582u, 1087299442u, 2877794600u, 1073291771u, 1010517977u, 0, ATAN_TOLERANCE, 0},
+{ 77, 1086400474u, 547642046u, 3197285510u, 3521286127u, 1073291651u, 4087685810u, 0, ATAN_TOLERANCE, 0},
+{ 78, 1074860702u, 1231582831u, 1090971734u, 1653446832u, 1073050451u, 1298823045u, 0, ATAN_TOLERANCE, 0},
+{ 79, 1061342535u, 3762182190u, 3252967851u, 2615360375u, 1061342535u, 3181387989u, 0, ATAN_TOLERANCE, 0},
+{ 80, 3200834423u, 2588067350u, 3206610957u, 3551059728u, 3200834423u, 2588046871u, 0, ATAN_TOLERANCE, 0},
+{ 81, 3206978856u, 845263327u, 1073415902u, 1749010288u, 3206978856u, 782105851u, 0, ATAN_TOLERANCE, 0},
+{ 82, 3205576370u, 3092685191u, 3190678390u, 2872219490u, 3205576370u, 3085721192u, 0, ATAN_TOLERANCE, 0},
+{ 83, 3218315055u, 4107255722u, 3205337291u, 3069068345u, 3218277070u, 170982227u, 0, ATAN_TOLERANCE, 0},
+{ 84, 3243990857u, 2294867524u, 3216653996u, 2860384670u, 3220775419u, 786115172u, 0, ATAN_TOLERANCE, 0},
+{ 85, 3193326350u, 2265437201u, 3240198679u, 1234948614u, 3193326350u, 2265437200u, 0, ATAN_TOLERANCE, 0},
+{ 86, 3216359929u, 1186945904u, 3251167793u, 1896750851u, 3216356510u, 3130045131u, 0, ATAN_TOLERANCE, 0},
+{ 87, 1081575478u, 3686084548u, 1079286273u, 3309277689u, 1073288986u, 1599297092u, 0, ATAN_TOLERANCE, 0},
+{ 88, 3223476240u, 3006860614u, 3231412671u, 2504194724u, 3220661545u, 2360188947u, 0, ATAN_TOLERANCE, 0},
+{ 89, 3236149260u, 1948717780u, 1048317852u, 3791803982u, 3220775393u, 1564574150u, 0, ATAN_TOLERANCE, 0},
+{ 90, 1064345015u, 4272034420u, 3192982124u, 1526175922u, 1064345010u, 91354218u, 0, ATAN_TOLERANCE, 0},
+{ 91, 3245817826u, 4108948538u, 1104691287u, 640541190u, 3220775419u, 1229020839u, 0, ATAN_TOLERANCE, 0},
+{ 92, 3207257417u, 3259274853u, 1082507103u, 3677038020u, 3207257417u, 3153390830u, 0, ATAN_TOLERANCE, 0},
+{ 93, 1083132498u, 3781708548u, 1096584871u, 1207386447u, 1073290724u, 450646531u, 0, ATAN_TOLERANCE, 0},
+{ 94, 3188695272u, 3011191657u, 1103798670u, 1096124830u, 3188695272u, 3011191657u, 0, ATAN_TOLERANCE, 0},
+{ 95, 1063235023u, 2540404725u, 3240157452u, 4122845725u, 1063235021u, 18397155u, 0, ATAN_TOLERANCE, 0},
+{ 96, 1083643710u, 311336721u, 3214382367u, 4212533768u, 1073291061u, 3360101992u, 0, ATAN_TOLERANCE, 0},
+{ 97, 1051139427u, 1769686293u, 3240200923u, 3538602249u, 1051139427u, 1769685264u, 0, ATAN_TOLERANCE, 0},
+{ 98, 1078227549u, 508056696u, 1103793878u, 776520138u, 1073266134u, 3382378805u, 0, ATAN_TOLERANCE, 0},
+{ 99, 1102910577u, 4064962760u, 1077424413u, 819766631u, 1073291771u, 1404523163u, 0, ATAN_TOLERANCE, 0},
+{ 100, 1074178362u, 2112385259u, 3227593179u, 1187058516u, 1072935915u, 2808066494u, 0, ATAN_TOLERANCE, 0},
+{ 101, 1082295059u, 2514398118u, 1076579751u, 870169764u, 1073290001u, 1019866120u, 0, ATAN_TOLERANCE, 0},
+{ 102, 3246851392u, 1190259653u, 1069112254u, 3417249840u, 3220775419u, 1320468477u, 0, ATAN_TOLERANCE, 0},
+{ 103, 3193663083u, 3467757357u, 3215075200u, 2168175352u, 3193663083u, 3467757355u, 0, ATAN_TOLERANCE, 0},
+{ 104, 3239643135u, 1508888184u, 1060430241u, 3524949092u, 3220775416u, 3317262141u, 0, ATAN_TOLERANCE, 0},
+{ 105, 3197412883u, 166402802u, 3237198975u, 3572369260u, 3197412883u, 166402619u, 0, ATAN_TOLERANCE, 0},
+{ 106, 1081866822u, 2441536203u, 3202753937u, 3658194573u, 1073289428u, 3826672040u, 0, ATAN_TOLERANCE, 0},
+{ 107, 1062392908u, 2479742828u, 1062342831u, 4214154303u, 1062392908u, 146390139u, 0, ATAN_TOLERANCE, 0},
+{ 108, 1082396794u, 426896765u, 1066474375u, 2201754442u, 1073290138u, 799707370u, 0, ATAN_TOLERANCE, 0},
+{ 109, 3195629021u, 2055773734u, 3239267288u, 291396537u, 3195629021u, 2055773713u, 0, ATAN_TOLERANCE, 0},
+{ 110, 3236968033u, 874125203u, 3210508124u, 4091098764u, 3220775403u, 2314140343u, 0, ATAN_TOLERANCE, 0},
+{ 111, 1065716026u, 120488169u, 3241241441u, 1985269424u, 1065715974u, 35998340u, 0, ATAN_TOLERANCE, 0},
+{ 112, 3206539410u, 2243036871u, 3243941101u, 740033495u, 3206539410u, 2198680371u, 0, ATAN_TOLERANCE, 0},
+{ 113, 3209424906u, 1176656356u, 1074261978u, 3588756231u, 3209424905u, 3566213783u, 0, ATAN_TOLERANCE, 0},
+{ 114, 3252816791u, 3037249392u, 1061635587u, 1173102190u, 3220775419u, 1411894679u, 0, ATAN_TOLERANCE, 0},
+{ 115, 3237209581u, 2882725208u, 1071440059u, 69225090u, 3220775406u, 1991373169u, 0, ATAN_TOLERANCE, 0},
+{ 116, 3212663474u, 272319256u, 1072073912u, 2493997123u, 3212663441u, 557352853u, 0, ATAN_TOLERANCE, 0},
+{ 117, 1057720186u, 188610379u, 3232757923u, 2209647371u, 1057720186u, 181489071u, 0, ATAN_TOLERANCE, 0},
+{ 118, 3236758517u, 1990439193u, 1078073146u, 622849962u, 3220775401u, 2935191220u, 0, ATAN_TOLERANCE, 0},
+{ 119, 1057135741u, 756052458u, 1081649113u, 2247475162u, 1057135741u, 753852027u, 0, ATAN_TOLERANCE, 0},
+{ 120, 1061623064u, 3878055211u, 3222407050u, 2979438623u, 1061623064u, 2803417540u, 0, ATAN_TOLERANCE, 0},
+{ 121, 3195290997u, 2676398686u, 1105124431u, 3631096636u, 3195290997u, 2676398675u, 0, ATAN_TOLERANCE, 0},
+{ 122, 1065079390u, 1697791764u, 3198136112u, 2299842819u, 1065079362u, 1525379125u, 0, ATAN_TOLERANCE, 0},
+{ 123, 1078084768u, 1931502677u, 3215264397u, 3016456382u, 1073263078u, 3456048071u, 0, ATAN_TOLERANCE, 0},
+{ 124, 1072253426u, 343404215u, 1061072607u, 4266232536u, 1071998637u, 1520446375u, 0, ATAN_TOLERANCE, 0},
+{ 125, 3241230836u, 4140316002u, 1082896196u, 868256971u, 3220775418u, 1726748208u, 0, ATAN_TOLERANCE, 0},
+{ 126, 1075422810u, 1864139509u, 3187675097u, 3084482407u, 1073129556u, 465493249u, 0, ATAN_TOLERANCE, 0},
+{ 127, 3220191323u, 2427162817u, 3234748208u, 2715105792u, 3219741172u, 402094487u, 0, ATAN_TOLERANCE, 0},
+{ 128, 1064600512u, 3943389284u, 1046724025u, 3626825684u, 1064600501u, 2906031848u, 0, ATAN_TOLERANCE, 0},
+{ 129, 1045423002u, 967350972u, 1093012318u, 448002663u, 1045423002u, 967350971u, 0, ATAN_TOLERANCE, 0},
+{ 130, 3251845859u, 105058217u, 1069733884u, 171786224u, 3220775419u, 1410264341u, 0, ATAN_TOLERANCE, 0},
+{ 131, 3189614508u, 2863482262u, 3204997271u, 877784425u, 3189614508u, 2863482262u, 0, ATAN_TOLERANCE, 0},
+{ 132, 3202629313u, 2801782962u, 3213604117u, 762347195u, 3202629313u, 2801605942u, 0, ATAN_TOLERANCE, 0},
+{ 133, 3233486727u, 2317950339u, 3246333414u, 2135700283u, 3220775268u, 601862620u, 0, ATAN_TOLERANCE, 0},
+{ 134, 1056516397u, 4171919805u, 1082858682u, 2180920863u, 1056516397u, 4170560568u, 0, ATAN_TOLERANCE, 0},
+{ 135, 3220149084u, 1918836931u, 1083603224u, 3137821660u, 3219712844u, 4031557243u, 0, ATAN_TOLERANCE, 0},
+{ 136, 1103902874u, 3456203663u, 3235600523u, 2335688936u, 1073291771u, 1408998203u, 0, ATAN_TOLERANCE, 0},
+{ 137, 1042279322u, 4170235262u, 1051824459u, 521583737u, 1042279322u, 4170235262u, 0, ATAN_TOLERANCE, 0},
+{ 138, 1081348303u, 1296623194u, 3250673860u, 2442872540u, 1073288505u, 1128617660u, 0, ATAN_TOLERANCE, 0},
+{ 139, 1061684277u, 289979405u, 1049514449u, 3865737145u, 1061684276u, 3374504276u, 0, ATAN_TOLERANCE, 0},
+{ 140, 1075298944u, 3699090239u, 1054539840u, 3259249360u, 1073116881u, 2973410148u, 0, ATAN_TOLERANCE, 0},
+{ 141, 1096418100u, 1619819023u, 1045993352u, 1022642459u, 1073291771u, 753307915u, 0, ATAN_TOLERANCE, 0},
+{ 142, 1081433004u, 19455098u, 3229182089u, 2096003654u, 1073288702u, 3862163748u, 0, ATAN_TOLERANCE, 0},
+{ 143, 1076297936u, 3803689997u, 1071630912u, 2263729518u, 1073200832u, 550615540u, 0, ATAN_TOLERANCE, 0},
+{ 144, 1101357261u, 2816837387u, 1063422305u, 2597606398u, 1073291771u, 1388641055u, 0, ATAN_TOLERANCE, 0},
+{ 145, 1069100169u, 3680967506u, 1040201163u, 179224723u, 1069094882u, 2881866002u, 0, ATAN_TOLERANCE, 0},
+{ 146, 3188629767u, 978126928u, 1101553990u, 4047893399u, 3188629767u, 978126928u, 0, ATAN_TOLERANCE, 0},
+{ 147, 3222322045u, 4059818629u, 1042678728u, 3640293589u, 3220529367u, 1621616907u, 0, ATAN_TOLERANCE, 0},
+{ 148, 3248464040u, 3383497159u, 1070002807u, 1527313008u, 3220775419u, 1379804590u, 0, ATAN_TOLERANCE, 0},
+{ 149, 3202707679u, 2599946514u, 1104170406u, 2738675352u, 3202707679u, 2599736239u, 0, ATAN_TOLERANCE, 0},
+{ 150, 1105232623u, 3616571377u, 1060859316u, 1130603218u, 1073291771u, 1411721947u, 0, ATAN_TOLERANCE, 0},
+{ 151, 1076028796u, 3859211180u, 1067940450u, 1744531824u, 1073181201u, 2704068544u, 0, ATAN_TOLERANCE, 0},
+{ 152, 1042831340u, 1958025850u, 3236511256u, 2472176453u, 1042831340u, 1958025850u, 0, ATAN_TOLERANCE, 0},
+{ 153, 3233107089u, 182132862u, 3250520938u, 3924356991u, 3220775227u, 87898411u, 0, ATAN_TOLERANCE, 0},
+{ 154, 3230501884u, 35632886u, 3209806504u, 1453402523u, 3220774310u, 1330759385u, 0, ATAN_TOLERANCE, 0},
+{ 155, 1083522102u, 743225214u, 3202890678u, 142917400u, 1073290999u, 3351093382u, 0, ATAN_TOLERANCE, 0},
+{ 156, 1080684976u, 1472665012u, 3203138231u, 256588219u, 1073286719u, 1180729218u, 0, ATAN_TOLERANCE, 0},
+{ 157, 1094982162u, 1062927000u, 1061134072u, 931677439u, 1073291770u, 3999438264u, 0, ATAN_TOLERANCE, 0},
+{ 158, 1058377732u, 2320910576u, 1055663370u, 288059864u, 1058377732u, 2307222569u, 0, ATAN_TOLERANCE, 0},
+{ 159, 1078958093u, 1448349062u, 3199478070u, 3454027134u, 1073275178u, 629967402u, 0, ATAN_TOLERANCE, 0},
+{ 160, 3237458798u, 4215445172u, 3196654963u, 2231888973u, 3220775408u, 2267284262u, 0, ATAN_TOLERANCE, 0},
+{ 161, 3246632231u, 40413554u, 3232578253u, 983832844u, 3220775419u, 1304613937u, 0, ATAN_TOLERANCE, 0},
+{ 162, 3223721534u, 3995725873u, 1050082319u, 777231627u, 3220680727u, 2268085707u, 0, ATAN_TOLERANCE, 0},
+{ 163, 1040986626u, 672789828u, 3253385962u, 2982787335u, 1040986626u, 672789828u, 0, ATAN_TOLERANCE, 0},
+{ 164, 1068390875u, 2075971825u, 1070166500u, 4034633931u, 1068388550u, 2060043978u, 0, ATAN_TOLERANCE, 0},
+{ 165, 3210046177u, 1018222907u, 3244621407u, 3090050495u, 3210046176u, 1879315059u, 0, ATAN_TOLERANCE, 0},
+{ 166, 1067680885u, 937732557u, 3200798890u, 2557898276u, 1067680266u, 836859157u, 0, ATAN_TOLERANCE, 0},
+{ 167, 1078342316u, 130346162u, 3223590310u, 275568693u, 1073268156u, 2368365124u, 0, ATAN_TOLERANCE, 0},
+{ 168, 1042898869u, 3807416441u, 1075961161u, 3706820266u, 1042898869u, 3807416441u, 0, ATAN_TOLERANCE, 0},
+{ 169, 3216099005u, 1710131411u, 1078123323u, 1900790503u, 3216097138u, 1587837360u, 0, ATAN_TOLERANCE, 0},
+{ 170, 3238819361u, 3420420033u, 3210844787u, 588423066u, 3220775414u, 3572787935u, 0, ATAN_TOLERANCE, 0},
+{ 171, 1049684114u, 1160162008u, 3246307879u, 4265764460u, 1049684114u, 1160161907u, 0, ATAN_TOLERANCE, 0},
+{ 172, 1102543434u, 366653268u, 3188814424u, 466059202u, 1073291771u, 1402320498u, 0, ATAN_TOLERANCE, 0},
+{ 173, 3226627739u, 1325936170u, 3221436876u, 680097612u, 3220761198u, 99640567u, 0, ATAN_TOLERANCE, 0},
+{ 174, 3240391116u, 1827735934u, 3200554324u, 2875599271u, 3220775417u, 3281157886u, 0, ATAN_TOLERANCE, 0},
+{ 175, 3191030402u, 3117037091u, 3239246636u, 15838845u, 3191030402u, 3117037091u, 0, ATAN_TOLERANCE, 0},
+{ 176, 1051974004u, 749718883u, 3223587064u, 1523766569u, 1051974004u, 749716276u, 0, ATAN_TOLERANCE, 0},
+{ 177, 1044833651u, 1966536294u, 3250158026u, 699164258u, 1044833651u, 1966536294u, 0, ATAN_TOLERANCE, 0},
+{ 178, 1098048435u, 3759049394u, 1106085272u, 1183789499u, 1073291771u, 1186380431u, 0, ATAN_TOLERANCE, 0},
+{ 179, 1081201623u, 1970107747u, 1095245453u, 2308233883u, 1073288095u, 975760224u, 0, ATAN_TOLERANCE, 0},
+{ 180, 1084756444u, 1491017852u, 1041444355u, 1723375725u, 1073291430u, 4231533096u, 0, ATAN_TOLERANCE, 0},
+{ 181, 3216630070u, 1141349287u, 1097465301u, 3403438584u, 3216624327u, 2984333214u, 0, ATAN_TOLERANCE, 0},
+{ 182, 3230571908u, 1711085243u, 3250239076u, 1377484108u, 3220774349u, 64738554u, 0, ATAN_TOLERANCE, 0},
+{ 183, 1098385019u, 2880275004u, 1084039594u, 1611394950u, 1073291771u, 1234985800u, 0, ATAN_TOLERANCE, 0},
+{ 184, 3234221435u, 2626629370u, 1063771493u, 1499080813u, 3220775327u, 2154288794u, 0, ATAN_TOLERANCE, 0},
+{ 185, 1055231263u, 3936262414u, 1103919063u, 3175668759u, 1055231263u, 3936048875u, 0, ATAN_TOLERANCE, 0},
+{ 186, 3207981719u, 1270950554u, 3194616071u, 3680565379u, 3207981719u, 1040984050u, 0, ATAN_TOLERANCE, 0},
+{ 187, 3208148223u, 1066985223u, 3221613219u, 4089383168u, 3208148223u, 747412838u, 0, ATAN_TOLERANCE, 0},
+{ 188, 3217058839u, 4017329311u, 3208334452u, 1667591498u, 3217052992u, 1555622102u, 0, ATAN_TOLERANCE, 0},
+{ 189, 1088164157u, 3154656624u, 1061894279u, 3886344038u, 1073291734u, 3631354939u, 0, ATAN_TOLERANCE, 0},
+{ 190, 1050652945u, 977586119u, 3209762784u, 953839852u, 1050652945u, 977585456u, 0, ATAN_TOLERANCE, 0},
+{ 191, 1104965247u, 143071571u, 3206165386u, 913097445u, 1073291771u, 1411393777u, 0, ATAN_TOLERANCE, 0},
+{ 192, 3190565456u, 1371169579u, 1057079837u, 2594818628u, 3190565456u, 1371169579u, 0, ATAN_TOLERANCE, 0},
+{ 193, 3251793336u, 2259342224u, 3217432469u, 1824221478u, 3220775419u, 1410112575u, 0, ATAN_TOLERANCE, 0},
+{ 194, 3246834775u, 1576604497u, 1079368611u, 185078728u, 3220775419u, 1319429561u, 0, ATAN_TOLERANCE, 0},
+{ 195, 3221679427u, 444800035u, 3243343143u, 1734989302u, 3220423383u, 4080038932u, 0, ATAN_TOLERANCE, 0},
+{ 196, 1072748883u, 130452005u, 1041548088u, 2158433515u, 1072297380u, 2183099160u, 0, ATAN_TOLERANCE, 0},
+{ 197, 3234695968u, 1941318385u, 1045807374u, 792193370u, 3220775350u, 32520571u, 0, ATAN_TOLERANCE, 0},
+{ 198, 3238299666u, 1299392207u, 3212131720u, 3205732280u, 3220775413u, 407383253u, 0, ATAN_TOLERANCE, 0},
+{ 199, 1098698804u, 3035093505u, 1052187689u, 3287702190u, 1073291771u, 1264692187u, 0, ATAN_TOLERANCE, 0},
+{ 200, 3246676260u, 2160225215u, 1102624859u, 836655570u, 3220775419u, 1308217418u, 0, ATAN_TOLERANCE, 0},
+{ 201, 1096723626u, 3360816360u, 3246176356u, 172860634u, 1073291771u, 853683724u, 0, ATAN_TOLERANCE, 0},
+{ 202, 1070995788u, 146831910u, 1051558014u, 2340722078u, 1070942026u, 2210584062u, 0, ATAN_TOLERANCE, 0},
+{ 203, 3230416351u, 1603798153u, 3207725532u, 1099413093u, 3220774259u, 253905046u, 0, ATAN_TOLERANCE, 0},
+{ 204, 3246678378u, 2429340443u, 3190303581u, 3223770005u, 3220775419u, 1308384776u, 0, ATAN_TOLERANCE, 0},
+{ 205, 1075882959u, 955542166u, 3230415151u, 275583938u, 1073166574u, 1025940890u, 0, ATAN_TOLERANCE, 0},
+{ 206, 1092971882u, 513397822u, 1090646554u, 2089321329u, 1073291769u, 3589520410u, 0, ATAN_TOLERANCE, 0},
+{ 207, 3193169876u, 2782073372u, 1046063872u, 4023829068u, 3193169876u, 2782073371u, 0, ATAN_TOLERANCE, 0},
+{ 208, 1098564822u, 3242223094u, 3194111199u, 4264674108u, 1073291771u, 1253307985u, 0, ATAN_TOLERANCE, 0},
+{ 209, 3238510821u, 3506346169u, 1047020885u, 1742757458u, 3220775413u, 4039361968u, 0, ATAN_TOLERANCE, 0},
+{ 210, 3192664477u, 1265459564u, 3193450280u, 3650514880u, 3192664477u, 1265459564u, 0, ATAN_TOLERANCE, 0},
+{ 211, 1081755890u, 1525260440u, 3235452527u, 2612331392u, 1073289278u, 188086895u, 0, ATAN_TOLERANCE, 0},
+{ 212, 3248668920u, 1263613754u, 3219096387u, 635677201u, 3220775419u, 1385126805u, 0, ATAN_TOLERANCE, 0},
+{ 213, 3206272087u, 4140947288u, 3200792376u, 2013265346u, 3206272087u, 4111519788u, 0, ATAN_TOLERANCE, 0},
+{ 214, 3249974392u, 1912759945u, 3237045253u, 1351396825u, 3220775419u, 1401915076u, 0, ATAN_TOLERANCE, 0},
+{ 215, 3248205162u, 1001433078u, 3206926643u, 2741676659u, 3220775419u, 1374959245u, 0, ATAN_TOLERANCE, 0},
+{ 216, 1080923606u, 1088945233u, 1085095743u, 3986114865u, 1073287341u, 203181843u, 0, ATAN_TOLERANCE, 0},
+{ 217, 3215734057u, 831239754u, 1099828675u, 3071308141u, 3215732190u, 1095526509u, 0, ATAN_TOLERANCE, 0},
+{ 218, 3225834497u, 3473592372u, 1102759382u, 1309576357u, 3220751942u, 961394714u, 0, ATAN_TOLERANCE, 0},
+{ 219, 3251186706u, 2042340367u, 1091945628u, 2062772374u, 3220775419u, 1408422145u, 0, ATAN_TOLERANCE, 0},
+{ 220, 3194765687u, 1840632537u, 1096533424u, 807510337u, 3194765687u, 1840632530u, 0, ATAN_TOLERANCE, 0},
+{ 221, 3231451722u, 144814872u, 3212698915u, 2282965697u, 3220774835u, 107798951u, 0, ATAN_TOLERANCE, 0},
+{ 222, 1071236430u, 2552499583u, 3229111426u, 1470130815u, 1071153116u, 955946986u, 0, ATAN_TOLERANCE, 0},
+{ 223, 3243093065u, 2858583811u, 1089760910u, 6360994u, 3220775419u, 255807873u, 0, ATAN_TOLERANCE, 0},
+{ 224, 3198264929u, 1614537194u, 1075198900u, 4088705365u, 3198264929u, 1614536736u, 0, ATAN_TOLERANCE, 0},
+{ 225, 3250939070u, 3545570051u, 1065221325u, 1629217700u, 3220775419u, 1407480385u, 0, ATAN_TOLERANCE, 0},
+{ 226, 1072744324u, 1813392963u, 3235313361u, 3772501596u, 1072293047u, 4133707511u, 0, ATAN_TOLERANCE, 0},
+{ 227, 3196802686u, 2406734491u, 1042055360u, 89226663u, 3196802686u, 2406734385u, 0, ATAN_TOLERANCE, 0},
+{ 228, 3195751081u, 1618759139u, 3194723421u, 3888234802u, 3195751081u, 1618759113u, 0, ATAN_TOLERANCE, 0},
+{ 229, 1055357248u, 3590035633u, 3212424262u, 2892456615u, 1055357248u, 3589759702u, 0, ATAN_TOLERANCE, 0},
+{ 230, 3189943060u, 2431246964u, 3241512456u, 183850734u, 3189943060u, 2431246964u, 0, ATAN_TOLERANCE, 0},
+{ 231, 1089501101u, 3088319870u, 3211544311u, 862225364u, 1073291755u, 3364626322u, 0, ATAN_TOLERANCE, 0},
+{ 232, 3235294664u, 3495352775u, 1058576726u, 596957268u, 3220775374u, 760015622u, 0, ATAN_TOLERANCE, 0},
+{ 233, 1046553348u, 1839214511u, 3205004060u, 1923240983u, 1046553348u, 1839214509u, 0, ATAN_TOLERANCE, 0},
+{ 234, 1058073864u, 739619702u, 3223356436u, 2689885273u, 1058073864u, 732999146u, 0, ATAN_TOLERANCE, 0},
+{ 235, 3200324971u, 2143376228u, 1098306332u, 3760236188u, 3200324971u, 2143369580u, 0, ATAN_TOLERANCE, 0},
+{ 236, 1074621795u, 671680995u, 1091262633u, 2315535361u, 1073013435u, 3897459075u, 0, ATAN_TOLERANCE, 0},
+{ 237, 3214165989u, 2493598049u, 3194927008u, 1689107592u, 3214165815u, 3584504723u, 0, ATAN_TOLERANCE, 0},
+{ 238, 3189989959u, 1578976988u, 1066368383u, 2117279163u, 3189989959u, 1578976988u, 0, ATAN_TOLERANCE, 0},
+{ 239, 3222988111u, 3425290087u, 1098487295u, 1263412017u, 3220620607u, 1469862024u, 0, ATAN_TOLERANCE, 0},
+{ 240, 3208432764u, 3635396812u, 1070999426u, 3965655689u, 3208432764u, 3113624660u, 0, ATAN_TOLERANCE, 0},
+{ 241, 1060196346u, 2183973116u, 1101098363u, 1118613350u, 1060196346u, 2070620457u, 0, ATAN_TOLERANCE, 0},
+{ 242, 3221946089u, 199516350u, 1078368488u, 164621458u, 3220473326u, 1149516223u, 0, ATAN_TOLERANCE, 0},
+{ 243, 3187706018u, 3570940805u, 3230316437u, 3596080877u, 3187706018u, 3570940805u, 0, ATAN_TOLERANCE, 0},
+{ 244, 3208209565u, 980880313u, 1079833442u, 884465057u, 3208209565u, 623194338u, 0, ATAN_TOLERANCE, 0},
+{ 245, 1099977124u, 2558179220u, 1052873711u, 1233598120u, 1073291771u, 1347956769u, 0, ATAN_TOLERANCE, 0},
+{ 246, 1047115221u, 1909994277u, 1085015978u, 2991527452u, 1047115221u, 1909994271u, 0, ATAN_TOLERANCE, 0},
+{ 247, 1060855260u, 1680290941u, 1074309900u, 2943870846u, 1060855260u, 1232553651u, 0, ATAN_TOLERANCE, 0},
+{ 248, 1059496132u, 1451927357u, 3228615456u, 1502585517u, 1059496132u, 1388651658u, 0, ATAN_TOLERANCE, 0},
+{ 249, 3236211951u, 751136990u, 3230392165u, 3493275472u, 3220775394u, 2429171461u, 0, ATAN_TOLERANCE, 0},
+{ 250, 1098365967u, 1209623292u, 3238056647u, 979495322u, 1073291771u, 1232796133u, 0, ATAN_TOLERANCE, 0},
+{ 251, 3250424296u, 1717672108u, 1048120593u, 531240316u, 3220775419u, 1404666552u, 0, ATAN_TOLERANCE, 0},
+{ 252, 1054174923u, 3548721654u, 1086112947u, 3391817224u, 1054174923u, 3548669145u, 0, ATAN_TOLERANCE, 0},
+{ 253, 1077836851u, 2758195125u, 1100880260u, 2028440924u, 1073257387u, 1653316307u, 0, ATAN_TOLERANCE, 0},
+{ 254, 1084223893u, 2750123373u, 3232200256u, 1086294931u, 1073291258u, 1832453141u, 0, ATAN_TOLERANCE, 0},
+{ 255, 1043958672u, 2986160931u, 1076097908u, 2540046258u, 1043958672u, 2986160931u, 0, ATAN_TOLERANCE, 0},
+{ 256, 3235476602u, 451471221u, 1064816262u, 4187644495u, 3220775379u, 435052465u, 0, ATAN_TOLERANCE, 0},
+{ 257, 1099460228u, 2439500162u, 1065280276u, 1979490284u, 1073291771u, 1325856743u, 0, ATAN_TOLERANCE, 0},
+{ 258, 1040415832u, 2283342035u, 1078398157u, 1345997553u, 1040415832u, 2283342035u, 0, ATAN_TOLERANCE, 0},
+{ 259, 3213249348u, 179066662u, 1103272172u, 1217337578u, 3213249290u, 1435325825u, 0, ATAN_TOLERANCE, 0},
+{ 260, 3211562377u, 3779303391u, 3210023352u, 3115946280u, 3211562370u, 1298984321u, 0, ATAN_TOLERANCE, 0},
+{ 261, 3192989874u, 286247089u, 1085153597u, 713645369u, 3192989874u, 286247089u, 0, ATAN_TOLERANCE, 0},
+{ 262, 1093670500u, 1468283899u, 1042831668u, 2022736418u, 1073291770u, 1437106148u, 0, ATAN_TOLERANCE, 0},
+{ 263, 1083139105u, 3305564080u, 1065483445u, 482392433u, 1073290727u, 2010468964u, 0, ATAN_TOLERANCE, 0},
+{ 264, 3201695807u, 2256346551u, 3222430705u, 2071674991u, 3201695807u, 2256289754u, 0, ATAN_TOLERANCE, 0},
+{ 265, 3204024695u, 2295269094u, 1084451053u, 2773103941u, 3204024695u, 2293847985u, 0, ATAN_TOLERANCE, 0},
+{ 266, 1078173946u, 1482721827u, 1092243422u, 3125409590u, 1073265066u, 4256021444u, 0, ATAN_TOLERANCE, 0},
+{ 267, 3221065973u, 1381740563u, 1071545057u, 2918235653u, 3220255295u, 271607952u, 0, ATAN_TOLERANCE, 0},
+{ 268, 3238715972u, 1105857967u, 3241990046u, 2703723225u, 3220775414u, 2439297396u, 0, ATAN_TOLERANCE, 0},
+{ 269, 1043015571u, 174689677u, 1079333374u, 3947057014u, 1043015571u, 174689677u, 0, ATAN_TOLERANCE, 0},
+{ 270, 1090461859u, 2023082423u, 3242081486u, 1169047927u, 1073291763u, 450648504u, 0, ATAN_TOLERANCE, 0},
+{ 271, 1064525899u, 3742487766u, 1043425732u, 194972788u, 1064525890u, 1715802635u, 0, ATAN_TOLERANCE, 0},
+{ 272, 3213791827u, 2136071361u, 3211529757u, 993675115u, 3213791678u, 3007257663u, 0, ATAN_TOLERANCE, 0},
+{ 273, 3213663381u, 210772141u, 3241441539u, 580731413u, 3213663259u, 311185822u, 0, ATAN_TOLERANCE, 0},
+{ 274, 1093840413u, 1751560711u, 1074522705u, 180987057u, 1073291770u, 2029975416u, 0, ATAN_TOLERANCE, 0},
+{ 275, 1066754591u, 2552236599u, 1088658621u, 2112468655u, 1066754387u, 4086493895u, 0, ATAN_TOLERANCE, 0},
+{ 276, 3189290617u, 1578223762u, 3224596567u, 2456166162u, 3189290617u, 1578223762u, 0, ATAN_TOLERANCE, 0},
+{ 277, 1058506965u, 2110924310u, 1086207177u, 3161208323u, 1058506965u, 2093127013u, 0, ATAN_TOLERANCE, 0},
+{ 278, 3231863394u, 2352173188u, 1079361728u, 4070222179u, 3220774972u, 910304915u, 0, ATAN_TOLERANCE, 0},
+{ 279, 1101012904u, 2481562701u, 1090937016u, 3809489716u, 1073291771u, 1380457062u, 0, ATAN_TOLERANCE, 0},
+{ 280, 3197002651u, 330905705u, 1086260896u, 90264431u, 3197002651u, 330905559u, 0, ATAN_TOLERANCE, 0},
+{ 281, 1040729961u, 4162008079u, 3194387916u, 759522153u, 1040729961u, 4162008079u, 0, ATAN_TOLERANCE, 0},
+{ 282, 1081015037u, 1839697482u, 3216442625u, 2211508949u, 1073287540u, 2371515359u, 0, ATAN_TOLERANCE, 0},
+{ 283, 3249807211u, 3736863454u, 1063475914u, 3150741666u, 3220775419u, 1400414230u, 0, ATAN_TOLERANCE, 0},
+{ 284, 1060785883u, 4200269406u, 3236646101u, 1061812176u, 1060785883u, 3802506466u, 0, ATAN_TOLERANCE, 0},
+{ 285, 1080217979u, 106027290u, 3234978297u, 2245237549u, 1073284806u, 1247593837u, 0, ATAN_TOLERANCE, 0},
+{ 286, 3246984334u, 2132131375u, 3250483427u, 3449276437u, 3220775419u, 1328022993u, 0, ATAN_TOLERANCE, 0},
+{ 287, 1089388778u, 2334440944u, 1105423490u, 4004336184u, 1073291754u, 2923568867u, 0, ATAN_TOLERANCE, 0},
+{ 288, 3218772704u, 4090088208u, 1042030013u, 3898658299u, 3218681850u, 1847050563u, 0, ATAN_TOLERANCE, 0},
+{ 289, 3207908064u, 2272831437u, 3253082595u, 2639188641u, 3207908064u, 2076460116u, 0, ATAN_TOLERANCE, 0},
+{ 290, 1054766684u, 1856594168u, 3189515294u, 4101853676u, 1054766684u, 1856443407u, 0, ATAN_TOLERANCE, 0},
+{ 291, 1076012412u, 2211699255u, 3195060344u, 3865018604u, 1073179730u, 1409096648u, 0, ATAN_TOLERANCE, 0},
+{ 292, 3242767010u, 996259334u, 3241496889u, 3782673116u, 3220775419u, 22547020u, 0, ATAN_TOLERANCE, 0},
+{ 293, 1099130747u, 3840380763u, 1048674041u, 550040067u, 1073291771u, 1303083258u, 0, ATAN_TOLERANCE, 0},
+{ 294, 3251419593u, 95874100u, 3237232828u, 2645647822u, 3220775419u, 1409081748u, 0, ATAN_TOLERANCE, 0},
+{ 295, 1043665640u, 3441419500u, 3252367038u, 876710419u, 1043665640u, 3441419500u, 0, ATAN_TOLERANCE, 0},
+{ 296, 3238593552u, 2560836004u, 3199616543u, 1180840586u, 3220775414u, 912315842u, 0, ATAN_TOLERANCE, 0},
+{ 297, 3221602966u, 2218230392u, 3227485787u, 3947214579u, 3220405998u, 2405698646u, 0, ATAN_TOLERANCE, 0},
+{ 298, 1079539654u, 1447312532u, 1081476588u, 780366847u, 1073281057u, 3850595125u, 0, ATAN_TOLERANCE, 0},
+{ 299, 1072569643u, 2842113832u, 3216156731u, 225159029u, 1072179536u, 576294670u, 0, ATAN_TOLERANCE, 0},
+{ 300, 1098117193u, 1601981129u, 3234628869u, 2236538344u, 1073291771u, 1198344675u, 0, ATAN_TOLERANCE, 0},
+{ 301, 1085173524u, 2194185737u, 3242362684u, 87913366u, 1073291502u, 668770754u, 0, ATAN_TOLERANCE, 0},
+{ 302, 3199083880u, 1346862963u, 1077836259u, 3604666660u, 3199083880u, 1346860680u, 0, ATAN_TOLERANCE, 0},
+{ 303, 3212255979u, 3115209742u, 1099332326u, 1325101950u, 3212255963u, 2575368903u, 0, ATAN_TOLERANCE, 0},
+{ 304, 3224546042u, 3889223100u, 1053247613u, 3371396923u, 3220719302u, 4010635913u, 0, ATAN_TOLERANCE, 0},
+{ 305, 3220477868u, 4163120793u, 1075022670u, 1387631215u, 3219988674u, 723943353u, 0, ATAN_TOLERANCE, 0},
+{ 306, 3205481779u, 1532426189u, 1063168268u, 3397022615u, 3205481779u, 1521480496u, 0, ATAN_TOLERANCE, 0},
+{ 307, 3201033321u, 89324166u, 1079206060u, 3429424710u, 3201033321u, 89295233u, 0, ATAN_TOLERANCE, 0},
+{ 308, 3192325102u, 747591401u, 1072238381u, 2803213904u, 3192325102u, 747591401u, 0, ATAN_TOLERANCE, 0},
+{ 309, 1091113780u, 271904221u, 1044258318u, 1858545114u, 1073291766u, 964142956u, 0, ATAN_TOLERANCE, 0},
+{ 310, 3228068914u, 314958082u, 3249912496u, 2966213175u, 3220770052u, 2371897689u, 0, ATAN_TOLERANCE, 0},
+{ 311, 3197179414u, 3119528953u, 3217179014u, 2908718240u, 3197179414u, 3119528849u, 0, ATAN_TOLERANCE, 0},
+{ 312, 3242467576u, 2018361566u, 1100926600u, 3985805054u, 3220775418u, 4001726821u, 0, ATAN_TOLERANCE, 0},
+{ 313, 1070132580u, 409584884u, 3239758947u, 755795129u, 1070112385u, 2324629516u, 0, ATAN_TOLERANCE, 0},
+{ 314, 1075772446u, 1819156379u, 3251342302u, 2982669005u, 1073157149u, 2384478230u, 0, ATAN_TOLERANCE, 0},
+{ 315, 1101563433u, 2080534280u, 3188254060u, 449171797u, 1073291771u, 1391862546u, 0, ATAN_TOLERANCE, 0},
+{ 316, 1095956900u, 168744837u, 3214950009u, 1322217822u, 1073291771u, 508366786u, 0, ATAN_TOLERANCE, 0},
+{ 317, 3254226900u, 3250487255u, 1062120700u, 1876195180u, 3220775419u, 1413042086u, 0, ATAN_TOLERANCE, 0},
+{ 318, 3226343480u, 1336400247u, 1098057903u, 3314079581u, 3220757999u, 2601919599u, 0, ATAN_TOLERANCE, 0},
+{ 319, 3203678820u, 265025555u, 1063854282u, 3779482256u, 3203678820u, 264315986u, 0, ATAN_TOLERANCE, 0},
+{ 320, 1067300501u, 887044257u, 1054789618u, 2732056261u, 1067299954u, 4125060907u, 0, ATAN_TOLERANCE, 0},
+{ 321, 1050106742u, 4027115185u, 3191764868u, 2940199511u, 1050106742u, 4027114920u, 0, ATAN_TOLERANCE, 0},
+{ 322, 3202500155u, 2875684421u, 3227459837u, 2251967570u, 3202500155u, 2875554229u, 0, ATAN_TOLERANCE, 0},
+{ 323, 1063244412u, 284173546u, 3238823679u, 3557800647u, 1063244409u, 1905701370u, 0, ATAN_TOLERANCE, 0},
+{ 324, 1101458560u, 3147771266u, 3220110464u, 2933364246u, 1073291771u, 1390334372u, 0, ATAN_TOLERANCE, 0},
+{ 325, 1064853160u, 3366183281u, 3234870843u, 537442654u, 1064853141u, 4034264880u, 0, ATAN_TOLERANCE, 0},
+{ 326, 3244118788u, 2529029548u, 3249882819u, 3781513577u, 3220775419u, 827896136u, 0, ATAN_TOLERANCE, 0},
+{ 327, 3213436354u, 1080845539u, 3206760016u, 911778687u, 3213436271u, 1847005657u, 0, ATAN_TOLERANCE, 0},
+{ 328, 3191951036u, 469586759u, 1091830022u, 3080528840u, 3191951036u, 469586759u, 0, ATAN_TOLERANCE, 0},
+{ 329, 1080249104u, 2863108169u, 3225605506u, 2508274250u, 1073284977u, 3192771017u, 0, ATAN_TOLERANCE, 0},
+{ 330, 3210826984u, 4080017377u, 3206492941u, 1470284690u, 3210826983u, 1096190575u, 0, ATAN_TOLERANCE, 0},
+{ 331, 3207120390u, 3867917386u, 1102054928u, 3504746045u, 3207120390u, 3784882034u, 0, ATAN_TOLERANCE, 0},
+{ 332, 1064522279u, 2962134101u, 3244741577u, 3390537350u, 1064522270u, 1282391261u, 0, ATAN_TOLERANCE, 0},
+{ 333, 1088201813u, 1702237980u, 1071598971u, 1102587474u, 1073291735u, 2479837516u, 0, ATAN_TOLERANCE, 0},
+{ 334, 3202970118u, 2180218657u, 3211592260u, 1206527853u, 3202970118u, 2179867188u, 0, ATAN_TOLERANCE, 0},
+{ 335, 3197084744u, 394130786u, 3242511482u, 2437699868u, 3197084744u, 394130621u, 0, ATAN_TOLERANCE, 0},
+{ 336, 1044237059u, 849581558u, 3252006507u, 2008614943u, 1044237059u, 849581558u, 0, ATAN_TOLERANCE, 0},
+{ 337, 3210140014u, 3128971673u, 3249137531u, 2773583059u, 3210140013u, 3254290288u, 0, ATAN_TOLERANCE, 0},
+{ 338, 1085029866u, 590727700u, 3248651761u, 2183878539u, 1073291481u, 1130560623u, 0, ATAN_TOLERANCE, 0},
+{ 339, 1101098629u, 820687580u, 3208143496u, 1402434664u, 1073291771u, 1382955631u, 0, ATAN_TOLERANCE, 0},
+{ 340, 3252290835u, 1873709254u, 3245167989u, 44275991u, 3220775419u, 1411174993u, 0, ATAN_TOLERANCE, 0},
+{ 341, 3189668753u, 1174874204u, 3208263730u, 2360372288u, 3189668753u, 1174874204u, 0, ATAN_TOLERANCE, 0},
+{ 342, 1103854676u, 937573440u, 3208953761u, 211240241u, 1073291771u, 1408870945u, 0, ATAN_TOLERANCE, 0},
+{ 343, 3243548934u, 2469774991u, 1043117070u, 3380071805u, 3220775419u, 580952561u, 0, ATAN_TOLERANCE, 0},
+{ 344, 1058121042u, 442507560u, 3254252803u, 3257889649u, 1058121042u, 435005828u, 0, ATAN_TOLERANCE, 0},
+{ 345, 1068850520u, 1854921625u, 1049810168u, 2729627545u, 1068847283u, 1453079796u, 0, ATAN_TOLERANCE, 0},
+{ 346, 3254712629u, 4001809575u, 3240128649u, 278261523u, 3220775419u, 1413212472u, 0, ATAN_TOLERANCE, 0},
+{ 347, 1087224694u, 1793907966u, 3238955714u, 398859249u, 1073291702u, 1923249299u, 0, ATAN_TOLERANCE, 0},
+{ 348, 3200952547u, 2511916952u, 3219195283u, 1697158299u, 3200952547u, 2511891688u, 0, ATAN_TOLERANCE, 0},
+{ 349, 1069985548u, 3230931724u, 3243897690u, 3508781585u, 1069970272u, 3725464389u, 0, ATAN_TOLERANCE, 0},
+{ 350, 1103847606u, 1674254897u, 1046547577u, 217148561u, 1073291771u, 1408851704u, 0, ATAN_TOLERANCE, 0},
+{ 351, 3211263954u, 3275604304u, 3194840159u, 2991205850u, 3211263950u, 1129887755u, 0, ATAN_TOLERANCE, 0},
+{ 352, 3195249375u, 3509997278u, 3248888030u, 3897986511u, 3195249375u, 3509997268u, 0, ATAN_TOLERANCE, 0},
+{ 353, 1047182435u, 2156824613u, 1042295665u, 1239257646u, 1047182435u, 2156824607u, 0, ATAN_TOLERANCE, 0},
+{ 354, 3213264085u, 1073153314u, 3250031627u, 2567234990u, 3213264025u, 3343823185u, 0, ATAN_TOLERANCE, 0},
+{ 355, 3190593412u, 4261696995u, 3197784432u, 323702024u, 3190593412u, 4261696995u, 0, ATAN_TOLERANCE, 0},
+{ 356, 3243690997u, 4075177615u, 3202791065u, 1919006082u, 3220775419u, 660142742u, 0, ATAN_TOLERANCE, 0},
+{ 357, 3239270013u, 386429966u, 1086504491u, 3698826164u, 3220775416u, 84151276u, 0, ATAN_TOLERANCE, 0},
+{ 358, 1078327190u, 1681986446u, 3194985869u, 3072950140u, 1073267908u, 2262143575u, 0, ATAN_TOLERANCE, 0},
+{ 359, 3217311933u, 3719038997u, 1055433962u, 3331415058u, 3217300970u, 3407849933u, 0, ATAN_TOLERANCE, 0},
+{ 360, 1060749713u, 2420250111u, 3238002206u, 1928661079u, 1060749713u, 2046999671u, 0, ATAN_TOLERANCE, 0},
+{ 361, 1081914210u, 3679866727u, 3227386672u, 1273835792u, 1073289487u, 3892573379u, 0, ATAN_TOLERANCE, 0},
+{ 362, 1041622738u, 2682092368u, 3234222284u, 1325425811u, 1041622738u, 2682092368u, 0, ATAN_TOLERANCE, 0},
+{ 363, 1056312613u, 4175172697u, 3208346191u, 2130706153u, 1056312613u, 4174257689u, 0, ATAN_TOLERANCE, 0},
+{ 364, 1092089624u, 1200784450u, 1083605096u, 1248595607u, 1073291768u, 2828785388u, 0, ATAN_TOLERANCE, 0},
+{ 365, 3213890863u, 1897285171u, 3251296075u, 944966123u, 3213890776u, 3394288938u, 0, ATAN_TOLERANCE, 0},
+{ 366, 3241371250u, 2270747330u, 3230692631u, 422503284u, 3220775418u, 2166514155u, 0, ATAN_TOLERANCE, 0},
+{ 367, 1084120037u, 2857564741u, 1075647403u, 3308906709u, 1073291231u, 2806829990u, 0, ATAN_TOLERANCE, 0},
+{ 368, 3203475098u, 1380066948u, 3232612906u, 2613634294u, 3203475098u, 1379636450u, 0, ATAN_TOLERANCE, 0},
+{ 369, 1063890856u, 4022784584u, 1060483857u, 3264056381u, 1063890851u, 1803848101u, 0, ATAN_TOLERANCE, 0},
+{ 370, 1044637404u, 1778509100u, 3213146285u, 2665833973u, 1044637404u, 1778509100u, 0, ATAN_TOLERANCE, 0},
+{ 371, 3216727300u, 1859175955u, 1079949560u, 4258450607u, 3216720517u, 1754322990u, 0, ATAN_TOLERANCE, 0},
+{ 372, 1048277388u, 4128020197u, 1076266146u, 4122840980u, 1048277388u, 4128020170u, 0, ATAN_TOLERANCE, 0},
+{ 373, 3193183163u, 2454653987u, 3229487005u, 2977478685u, 3193183163u, 2454653986u, 0, ATAN_TOLERANCE, 0},
+{ 374, 3253556483u, 1355181872u, 1095308770u, 436846481u, 3220775419u, 1412610186u, 0, ATAN_TOLERANCE, 0},
+{ 375, 3246605302u, 2592856453u, 3247825559u, 3195234082u, 3220775419u, 1302286191u, 0, ATAN_TOLERANCE, 0},
+{ 376, 3222118023u, 3554670043u, 1091621009u, 3321236467u, 3220498805u, 206635599u, 0, ATAN_TOLERANCE, 0},
+{ 377, 1069012833u, 1936670355u, 1095715713u, 2958468553u, 1069008339u, 2594825754u, 0, ATAN_TOLERANCE, 0},
+{ 378, 3192291109u, 2960339502u, 1098808013u, 1044068983u, 3192291109u, 2960339502u, 0, ATAN_TOLERANCE, 0},
+{ 379, 3196691185u, 4093388677u, 1095478112u, 1735930261u, 3196691185u, 4093388589u, 0, ATAN_TOLERANCE, 0},
+{ 380, 1091040302u, 1807398746u, 3195743135u, 4261616162u, 1073291765u, 4232917553u, 0, ATAN_TOLERANCE, 0},
+{ 381, 3209294194u, 3250576797u, 1059002384u, 3043079652u, 3209294194u, 1724814107u, 0, ATAN_TOLERANCE, 0},
+{ 382, 1069207109u, 666051428u, 3208765404u, 1912684117u, 1069200730u, 2838359932u, 0, ATAN_TOLERANCE, 0},
+{ 383, 1103487420u, 1949030179u, 1096388934u, 896459246u, 1073291771u, 1407620370u, 0, ATAN_TOLERANCE, 0},
+{ 384, 1054300653u, 622499767u, 1066707637u, 1490260486u, 1054300653u, 622431858u, 0, ATAN_TOLERANCE, 0},
+{ 385, 1106688493u, 1490616165u, 3251242436u, 795675736u, 1073291771u, 1413015906u, 0, ATAN_TOLERANCE, 0},
+{ 386, 1080943896u, 3662877092u, 3234317146u, 3200513112u, 1073287386u, 3992075709u, 0, ATAN_TOLERANCE, 0},
+{ 387, 1084088786u, 1356101968u, 3236536816u, 3062844611u, 1073291223u, 177779348u, 0, ATAN_TOLERANCE, 0},
+{ 388, 3219922640u, 2284484846u, 3219498359u, 3240896015u, 3219591699u, 1256648668u, 0, ATAN_TOLERANCE, 0},
+{ 389, 3235759689u, 494503287u, 1092811254u, 142673998u, 3220775384u, 4026022101u, 0, ATAN_TOLERANCE, 0},
+{ 390, 3252125916u, 3394882641u, 3225306538u, 364852125u, 3220775419u, 1410898849u, 0, ATAN_TOLERANCE, 0},
+{ 391, 3225261763u, 193885269u, 1088149839u, 1359805831u, 3220739994u, 2897296068u, 0, ATAN_TOLERANCE, 0},
+{ 392, 3200484782u, 592580907u, 3199560872u, 3086438952u, 3200484782u, 592570987u, 0, ATAN_TOLERANCE, 0},
+{ 393, 1059518664u, 1778008540u, 1049064687u, 73581647u, 1059518664u, 1711804542u, 0, ATAN_TOLERANCE, 0},
+{ 394, 3246733598u, 233240285u, 1081923320u, 2710903921u, 3220775419u, 1312568063u, 0, ATAN_TOLERANCE, 0},
+{ 395, 1069513767u, 3719878805u, 1079866720u, 3615458228u, 1069503457u, 2348282124u, 0, ATAN_TOLERANCE, 0},
+{ 396, 3221194724u, 3647632375u, 3247225271u, 3839959621u, 3220283027u, 1002653763u, 0, ATAN_TOLERANCE, 0},
+{ 397, 1103401096u, 2232210456u, 3235434773u, 224271737u, 1073291771u, 1407227492u, 0, ATAN_TOLERANCE, 0},
+{ 398, 3193003684u, 2134662911u, 3190390590u, 4239009051u, 3193003684u, 2134662911u, 0, ATAN_TOLERANCE, 0},
+{ 399, 1080526145u, 2305279897u, 1077668039u, 1854523320u, 1073286198u, 3085447705u, 0, ATAN_TOLERANCE, 0},
+{ 400, 3219864259u, 538224650u, 3206153057u, 1379649610u, 3219558298u, 2269278275u, 0, ATAN_TOLERANCE, 0},
+{ 401, 3196410507u, 3683897920u, 3244167599u, 3647579469u, 3196410507u, 3683897869u, 0, ATAN_TOLERANCE, 0},
+{ 402, 1090280933u, 2694093608u, 1042775347u, 598406111u, 1073291762u, 1307929677u, 0, ATAN_TOLERANCE, 0},
+{ 403, 3211635392u, 872706833u, 1084802480u, 2200602798u, 3211635383u, 3022112621u, 0, ATAN_TOLERANCE, 0},
+{ 404, 1042339597u, 904146293u, 1060867322u, 1729685598u, 1042339597u, 904146293u, 0, ATAN_TOLERANCE, 0},
+{ 405, 3195694970u, 1894173462u, 3232800651u, 191960416u, 3195694970u, 1894173438u, 0, ATAN_TOLERANCE, 0},
+{ 406, 1091225343u, 3521028551u, 1054522089u, 3287274359u, 1073291766u, 2357955634u, 0, ATAN_TOLERANCE, 0},
+{ 407, 1095386964u, 959640601u, 3201578263u, 4136915018u, 1073291771u, 106237732u, 0, ATAN_TOLERANCE, 0},
+{ 408, 1064005451u, 1553716379u, 1106027987u, 984725765u, 1064005444u, 2749041560u, 0, ATAN_TOLERANCE, 0},
+{ 409, 3238832641u, 2287646644u, 3240329321u, 2276183378u, 3220775414u, 3709335570u, 0, ATAN_TOLERANCE, 0},
+{ 410, 1068209174u, 3940225170u, 3199544434u, 997572161u, 1068207430u, 8813710u, 0, ATAN_TOLERANCE, 0},
+{ 411, 3212768361u, 36116288u, 3206886566u, 4196602670u, 3212768322u, 1671039386u, 0, ATAN_TOLERANCE, 0},
+{ 412, 3241695853u, 3550227562u, 3207257983u, 2747744117u, 3220775418u, 2886941600u, 0, ATAN_TOLERANCE, 0},
+{ 413, 1104236126u, 507130047u, 1048359321u, 3229888373u, 1073291771u, 1409876384u, 0, ATAN_TOLERANCE, 0},
+{ 414, 3222996778u, 2210969014u, 1081031001u, 1946786091u, 3220621353u, 4001909775u, 0, ATAN_TOLERANCE, 0},
+{ 415, 3236306990u, 4059150589u, 3189759234u, 1177045799u, 3220775396u, 810338157u, 0, ATAN_TOLERANCE, 0},
+{ 416, 1093103612u, 2664812822u, 1050343198u, 2034180320u, 1073291769u, 4139613811u, 0, ATAN_TOLERANCE, 0},
+{ 417, 3213779117u, 1175750283u, 3235559706u, 1424491340u, 3213778971u, 1246708253u, 0, ATAN_TOLERANCE, 0},
+{ 418, 3213904193u, 1630036121u, 3231972785u, 3195479448u, 3213904103u, 1713739478u, 0, ATAN_TOLERANCE, 0},
+{ 419, 1090429875u, 2527029044u, 1046927050u, 4000723255u, 1073291762u, 4182981995u, 0, ATAN_TOLERANCE, 0},
+{ 420, 1085208677u, 3335703647u, 3237349676u, 3869440059u, 1073291506u, 3512049895u, 0, ATAN_TOLERANCE, 0},
+{ 421, 1091433848u, 3888398377u, 3196041693u, 1290567220u, 1073291767u, 243274939u, 0, ATAN_TOLERANCE, 0},
+{ 422, 1066679070u, 3242451480u, 3248384948u, 707431021u, 1066678898u, 1238205004u, 0, ATAN_TOLERANCE, 0},
+{ 423, 1083230509u, 2739665123u, 1060777905u, 1733073225u, 1073290795u, 1157092083u, 0, ATAN_TOLERANCE, 0},
+{ 424, 1078517061u, 1297274853u, 3208848704u, 3341639139u, 1073270688u, 982942339u, 0, ATAN_TOLERANCE, 0},
+{ 425, 1046570941u, 2228057309u, 1084318902u, 1317851136u, 1046570941u, 2228057307u, 0, ATAN_TOLERANCE, 0},
+{ 426, 1088255327u, 270039934u, 3241414679u, 3063626339u, 1073291736u, 2441167806u, 0, ATAN_TOLERANCE, 0},
+{ 427, 3219178350u, 83062251u, 3211262173u, 2659016437u, 3219055128u, 4177082013u, 0, ATAN_TOLERANCE, 0},
+{ 428, 1095743886u, 3833539373u, 3206667189u, 1567476111u, 1073291771u, 330699280u, 0, ATAN_TOLERANCE, 0},
+{ 429, 3205195072u, 2382776852u, 3249232579u, 1546622468u, 3205195072u, 2375758791u, 0, ATAN_TOLERANCE, 0},
+{ 430, 1085536439u, 1714300821u, 1104130938u, 4167591598u, 1073291566u, 1019663749u, 0, ATAN_TOLERANCE, 0},
+{ 431, 1051092760u, 2798720100u, 1086978789u, 449990704u, 1051092760u, 2798719163u, 0, ATAN_TOLERANCE, 0},
+{ 432, 3231198415u, 4039516226u, 3244344107u, 4272932619u, 3220774741u, 2601378473u, 0, ATAN_TOLERANCE, 0},
+{ 433, 3222708441u, 1683007544u, 1091105663u, 3805494321u, 3220591958u, 589886074u, 0, ATAN_TOLERANCE, 0},
+{ 434, 3220852948u, 2072627412u, 1094383324u, 3394151662u, 3220202601u, 1052314086u, 0, ATAN_TOLERANCE, 0},
+{ 435, 3220570024u, 1120106427u, 3223631624u, 3404608264u, 3220055200u, 2406131310u, 0, ATAN_TOLERANCE, 0},
+{ 436, 1097859997u, 559918757u, 3205077053u, 908100198u, 1073291771u, 1145555305u, 0, ATAN_TOLERANCE, 0},
+{ 437, 1042677918u, 2026673913u, 3244833635u, 2844573214u, 1042677918u, 2026673913u, 0, ATAN_TOLERANCE, 0},
+{ 438, 3254567259u, 3946837259u, 3234993796u, 3850406820u, 3220775419u, 1413170689u, 0, ATAN_TOLERANCE, 0},
+{ 439, 1057479809u, 3139330994u, 1046133568u, 1539650690u, 1057479809u, 3134693707u, 0, ATAN_TOLERANCE, 0},
+{ 440, 3236705500u, 1554593884u, 3228899878u, 2813752562u, 3220775401u, 761552601u, 0, ATAN_TOLERANCE, 0},
+{ 441, 1056505004u, 3804703138u, 1072931071u, 2053677923u, 1056505004u, 3803371882u, 0, ATAN_TOLERANCE, 0},
+{ 442, 3244864299u, 289355864u, 1078453818u, 2143066338u, 3220775419u, 1065981758u, 0, ATAN_TOLERANCE, 0},
+{ 443, 3203939880u, 2157691971u, 1106629150u, 110806409u, 3203939880u, 2156476156u, 0, ATAN_TOLERANCE, 0},
+{ 444, 1082157019u, 3570399481u, 1085637605u, 180265334u, 1073289773u, 4195207371u, 0, ATAN_TOLERANCE, 0},
+{ 445, 3200980182u, 558779875u, 3202046748u, 2338464653u, 3200980182u, 558753393u, 0, ATAN_TOLERANCE, 0},
+{ 446, 1045705464u, 1703969219u, 3229797258u, 1417521063u, 1045705464u, 1703969218u, 0, ATAN_TOLERANCE, 0},
+{ 447, 3237782261u, 3917440951u, 1051668894u, 3736066983u, 3220775410u, 1673085403u, 0, ATAN_TOLERANCE, 0},
+{ 448, 1064752080u, 3106613409u, 1066627453u, 2735392257u, 1064752065u, 1009918850u, 0, ATAN_TOLERANCE, 0},
+{ 449, 1065665372u, 2229777605u, 1065061963u, 2405869925u, 1065665325u, 3871906750u, 0, ATAN_TOLERANCE, 0},
+{ 450, 3239463229u, 3967957902u, 1057416138u, 3459188071u, 3220775416u, 1964605070u, 0, ATAN_TOLERANCE, 0},
+{ 451, 1068639210u, 3699016825u, 3249713090u, 796144848u, 1068637227u, 91739263u, 0, ATAN_TOLERANCE, 0},
+{ 452, 3228816396u, 3285165564u, 3211948811u, 401510871u, 3220772114u, 723621190u, 0, ATAN_TOLERANCE, 0},
+{ 453, 1094257658u, 634857910u, 3199607513u, 914218057u, 1073291770u, 2965076896u, 0, ATAN_TOLERANCE, 0},
+{ 454, 1083743336u, 2030735578u, 3233855943u, 965677531u, 1073291105u, 2619236622u, 0, ATAN_TOLERANCE, 0},
+{ 455, 1079556815u, 3957229084u, 1051050470u, 3123776651u, 1073281171u, 1434939574u, 0, ATAN_TOLERANCE, 0},
+{ 456, 3221863333u, 162122081u, 3239376395u, 108064594u, 3220459365u, 39489730u, 0, ATAN_TOLERANCE, 0},
+{ 457, 3237271786u, 869031839u, 3225020876u, 1344301606u, 3220775407u, 212221075u, 0, ATAN_TOLERANCE, 0},
+{ 458, 3214433474u, 946696117u, 3231825228u, 1700703647u, 3214433173u, 346054303u, 0, ATAN_TOLERANCE, 0},
+{ 459, 1075492875u, 3394168074u, 1076939786u, 1666995668u, 1073135949u, 3455617632u, 0, ATAN_TOLERANCE, 0},
+{ 460, 3208774795u, 2488789804u, 3238508333u, 1506943664u, 3208774795u, 1977672474u, 0, ATAN_TOLERANCE, 0},
+{ 461, 1072788663u, 3844072288u, 3202592279u, 2630019853u, 1072334401u, 1635343292u, 0, ATAN_TOLERANCE, 0},
+{ 462, 3219934542u, 1244307192u, 3191297711u, 2540916692u, 3219598396u, 649284778u, 0, ATAN_TOLERANCE, 0},
+{ 463, 3200062692u, 2871645739u, 3239081581u, 1440249115u, 3200062692u, 2871637541u, 0, ATAN_TOLERANCE, 0},
+{ 464, 1068350633u, 1231934926u, 3236746788u, 603977748u, 1068348446u, 1625121175u, 0, ATAN_TOLERANCE, 0},
+{ 465, 3195449689u, 2386312545u, 1063169277u, 2715234268u, 3195449689u, 2386312530u, 0, ATAN_TOLERANCE, 0},
+{ 466, 1087803418u, 915867083u, 1046790892u, 3347417612u, 1073291725u, 4058436244u, 0, ATAN_TOLERANCE, 0},
+{ 467, 1105984188u, 3553288373u, 1065698616u, 2906680663u, 1073291771u, 1412554883u, 0, ATAN_TOLERANCE, 0},
+{ 468, 1045506226u, 2342364630u, 1051356723u, 4019093203u, 1045506226u, 2342364630u, 0, ATAN_TOLERANCE, 0},
+{ 469, 3201169162u, 2911548084u, 1105282515u, 2476735795u, 3201169162u, 2911512210u, 0, ATAN_TOLERANCE, 0},
+{ 470, 1050472772u, 1836216409u, 1101062307u, 2519592554u, 1050472772u, 1836215904u, 0, ATAN_TOLERANCE, 0},
+{ 471, 1070178161u, 1235369496u, 3222946447u, 668087854u, 1070156256u, 362413592u, 0, ATAN_TOLERANCE, 0},
+{ 472, 3208554596u, 2981820811u, 1059838516u, 2845580478u, 3208554596u, 2352342162u, 0, ATAN_TOLERANCE, 0},
+{ 473, 3193931414u, 1565550570u, 3217165795u, 4162017137u, 3193931414u, 1565550567u, 0, ATAN_TOLERANCE, 0},
+{ 474, 3237251378u, 2808968027u, 1055630096u, 1782326814u, 3220775406u, 3707453445u, 0, ATAN_TOLERANCE, 0},
+{ 475, 1053576974u, 1492622658u, 3216653077u, 3972512122u, 1053576974u, 1492592410u, 0, ATAN_TOLERANCE, 0},
+{ 476, 3222171679u, 2722693603u, 3227814791u, 3169731970u, 3220505917u, 3954374385u, 0, ATAN_TOLERANCE, 0},
+{ 477, 3217906631u, 899763203u, 3207606001u, 2804747833u, 3217873918u, 333405695u, 0, ATAN_TOLERANCE, 0},
+{ 478, 3230670325u, 3789058912u, 3228095081u, 4135937628u, 3220774402u, 3286568866u, 0, ATAN_TOLERANCE, 0},
+{ 479, 1060199382u, 1682808307u, 3206960335u, 232877759u, 1060199382u, 1568543297u, 0, ATAN_TOLERANCE, 0},
+{ 480, 3242091486u, 2851963139u, 3246852961u, 2590862592u, 3220775418u, 3447477152u, 0, ATAN_TOLERANCE, 0},
+{ 481, 1081200406u, 2422232642u, 3234779662u, 290458310u, 1073288091u, 1693769373u, 0, ATAN_TOLERANCE, 0},
+{ 482, 3210671078u, 1082582386u, 1075605675u, 2602133689u, 3210671075u, 3602355648u, 0, ATAN_TOLERANCE, 0},
+{ 483, 3239818611u, 1789635787u, 1059414278u, 1048286093u, 3220775417u, 83447410u, 0, ATAN_TOLERANCE, 0},
+{ 484, 1098330542u, 231339448u, 1055573265u, 504907415u, 1073291771u, 1228578841u, 0, ATAN_TOLERANCE, 0},
+{ 485, 1063211461u, 1153251200u, 3204617090u, 1772013857u, 1063211458u, 3300269630u, 0, ATAN_TOLERANCE, 0},
+{ 486, 1099551055u, 1082898276u, 3212089272u, 1449080862u, 1073291771u, 1330575128u, 0, ATAN_TOLERANCE, 0},
+{ 487, 1086008285u, 3177299045u, 1058862813u, 809400815u, 1073291620u, 2500359190u, 0, ATAN_TOLERANCE, 0},
+{ 488, 3230854550u, 1924429710u, 1056464743u, 3349283177u, 3220774553u, 3165117407u, 0, ATAN_TOLERANCE, 0},
+{ 489, 3245473391u, 42238036u, 1042379500u, 2113559863u, 3220775419u, 1175063706u, 0, ATAN_TOLERANCE, 0},
+{ 490, 1064761243u, 3304403230u, 3217556703u, 58952646u, 1064761227u, 4272869931u, 0, ATAN_TOLERANCE, 0},
+{ 491, 3212669530u, 1645486982u, 3224301095u, 3636267471u, 3212669497u, 590425081u, 0, ATAN_TOLERANCE, 0},
+{ 492, 1062762009u, 619402181u, 3235208235u, 557360557u, 1062762007u, 4093486714u, 0, ATAN_TOLERANCE, 0},
+{ 493, 3238238394u, 110029735u, 1046937383u, 984375729u, 3220775412u, 3424876321u, 0, ATAN_TOLERANCE, 0},
+{ 494, 3189496738u, 4063688092u, 3203235744u, 1049950343u, 3189496738u, 4063688092u, 0, ATAN_TOLERANCE, 0},
+{ 495, 1062350619u, 650996069u, 1054971928u, 3953359826u, 1062350618u, 2844377288u, 0, ATAN_TOLERANCE, 0},
+{ 496, 3227055805u, 66926332u, 1090561839u, 1379780888u, 3220764918u, 3109126767u, 0, ATAN_TOLERANCE, 0},
+{ 497, 3233453307u, 2803378256u, 1086057989u, 498534626u, 3220775265u, 1029631236u, 0, ATAN_TOLERANCE, 0},
+{ 498, 1082618553u, 2846400785u, 1047142525u, 1375153550u, 1073290373u, 3708271087u, 0, ATAN_TOLERANCE, 0},
+{ 499, 1044581201u, 2869128958u, 1070972315u, 4246440273u, 1044581201u, 2869128958u, 0, ATAN_TOLERANCE, 0},
+{ 500, 1051832506u, 3112381207u, 1044430965u, 3981604561u, 1051832506u, 3112379362u, 0, ATAN_TOLERANCE, 0},
+{ 501, 3231254997u, 243303420u, 1093735824u, 1575581926u, 3220774764u, 4185567984u, 0, ATAN_TOLERANCE, 0},
+{ 502, 3239137997u, 3218865041u, 3204803496u, 3840388050u, 3220775415u, 2726236893u, 0, ATAN_TOLERANCE, 0},
+{ 503, 1048415431u, 336846959u, 1052664471u, 3798336786u, 1048415431u, 336846925u, 0, ATAN_TOLERANCE, 0},
+{ 504, 1055954236u, 3639240976u, 1081202165u, 1844741676u, 1055954236u, 3638851837u, 0, ATAN_TOLERANCE, 0},
+{ 505, 3211904793u, 717293069u, 3211534283u, 582401011u, 3211904785u, 3655851692u, 0, ATAN_TOLERANCE, 0},
+{ 506, 3251962512u, 3766248610u, 3196520332u, 1174437546u, 3220775419u, 1410560001u, 0, ATAN_TOLERANCE, 0},
+{ 507, 1083431226u, 756959182u, 3204099341u, 1581804034u, 1073290945u, 3772521170u, 0, ATAN_TOLERANCE, 0},
+{ 508, 3205806444u, 3560686300u, 3220980617u, 4277975772u, 3205806444u, 3548533416u, 0, ATAN_TOLERANCE, 0},
+{ 509, 3209906076u, 2598148853u, 3217622194u, 3460421008u, 3209906076u, 93300911u, 0, ATAN_TOLERANCE, 0},
+{ 510, 1066720824u, 136600515u, 3209934920u, 3340653128u, 1066720634u, 3245875704u, 0, ATAN_TOLERANCE, 0},
+{ 511, 1096820310u, 1045480938u, 3251354609u, 4133432965u, 1073291771u, 881861522u, 0, ATAN_TOLERANCE, 0},
+{ 512, 1091599431u, 1630207738u, 3239996829u, 2393354808u, 1073291767u, 1919667150u, 0, ATAN_TOLERANCE, 0},
+{ 513, 3190626018u, 3739770117u, 1059520750u, 3959551225u, 3190626018u, 3739770117u, 0, ATAN_TOLERANCE, 0},
+{ 514, 3230730505u, 1498861716u, 1091297147u, 847410798u, 3220774457u, 2412695394u, 0, ATAN_TOLERANCE, 0},
+{ 515, 1073516688u, 983275314u, 3232538664u, 2244973629u, 1072756380u, 1060157024u, 0, ATAN_TOLERANCE, 0},
+{ 516, 1054849265u, 2353103845u, 3235718771u, 2978889966u, 1054849265u, 2352933591u, 0, ATAN_TOLERANCE, 0},
+{ 517, 3251357992u, 1546972125u, 3249076079u, 1987349196u, 3220775419u, 1408923688u, 0, ATAN_TOLERANCE, 0},
+{ 518, 3238219513u, 2769161072u, 1075207126u, 292616282u, 3220775412u, 3006302837u, 0, ATAN_TOLERANCE, 0},
+{ 519, 3199712298u, 36855311u, 1052128202u, 1479039342u, 3199712298u, 36850854u, 0, ATAN_TOLERANCE, 0},
+{ 520, 1083757053u, 2027463605u, 1066023013u, 3369686340u, 1073291111u, 960893753u, 0, ATAN_TOLERANCE, 0},
+{ 521, 3197852749u, 3808681655u, 1054161346u, 1821773119u, 3197852749u, 3808681228u, 0, ATAN_TOLERANCE, 0},
+{ 522, 1040685928u, 3175490326u, 3226879970u, 845687760u, 1040685928u, 3175490326u, 0, ATAN_TOLERANCE, 0},
+{ 523, 1042302993u, 3124482451u, 3242748377u, 3259417226u, 1042302993u, 3124482451u, 0, ATAN_TOLERANCE, 0},
+{ 524, 1045245695u, 2751606436u, 3236210939u, 3923142740u, 1045245695u, 2751606435u, 0, ATAN_TOLERANCE, 0},
+{ 525, 1095694737u, 2016872044u, 3228408064u, 4201274408u, 1073291771u, 304476461u, 0, ATAN_TOLERANCE, 0},
+{ 526, 3199349254u, 1019916843u, 3219974785u, 1977881787u, 3199349254u, 1019914835u, 0, ATAN_TOLERANCE, 0},
+{ 527, 3199478752u, 2060433318u, 1075872515u, 366073725u, 3199478752u, 2060430582u, 0, ATAN_TOLERANCE, 0},
+{ 528, 3191180557u, 1098469906u, 1082900695u, 2349346832u, 3191180557u, 1098469906u, 0, ATAN_TOLERANCE, 0},
+{ 529, 3209974707u, 3011196295u, 3252479932u, 2459281672u, 3209974707u, 75604910u, 0, ATAN_TOLERANCE, 0},
+{ 530, 3221334323u, 2843222682u, 1089275809u, 298982001u, 3220329431u, 3837208282u, 0, ATAN_TOLERANCE, 0},
+{ 531, 1101737698u, 914741728u, 3203468059u, 2833809843u, 1073291771u, 1394003992u, 0, ATAN_TOLERANCE, 0},
+{ 532, 3236763878u, 1274901962u, 3241535845u, 3759113509u, 3220775401u, 3148250534u, 0, ATAN_TOLERANCE, 0},
+{ 533, 3245916442u, 2134927252u, 3253802671u, 3013731444u, 3220775419u, 1240250322u, 0, ATAN_TOLERANCE, 0},
+{ 534, 1099201341u, 2230655177u, 3254510616u, 1249674366u, 1073291771u, 1308903742u, 0, ATAN_TOLERANCE, 0},
+{ 535, 1062971253u, 717357389u, 1083533731u, 3746683362u, 1062971251u, 1915359509u, 0, ATAN_TOLERANCE, 0},
+{ 536, 3213773114u, 834976849u, 3217357661u, 2465861779u, 3213772969u, 2265240188u, 0, ATAN_TOLERANCE, 0},
+{ 537, 1045656117u, 1385714428u, 1053358395u, 3007113740u, 1045656117u, 1385714427u, 0, ATAN_TOLERANCE, 0},
+{ 538, 1050527919u, 599268545u, 3201368210u, 2309854744u, 1050527919u, 599267995u, 0, ATAN_TOLERANCE, 0},
+{ 539, 1069954454u, 2840234388u, 3232496515u, 333365983u, 1069940106u, 2132233565u, 0, ATAN_TOLERANCE, 0},
+{ 540, 1045922781u, 3136078996u, 3194520860u, 2650572904u, 1045922781u, 3136078995u, 0, ATAN_TOLERANCE, 0},
+{ 541, 3233687691u, 2405805086u, 3251640319u, 324233833u, 3220775283u, 2202674566u, 0, ATAN_TOLERANCE, 0},
+{ 542, 1106699146u, 2589598340u, 3254677807u, 952438812u, 1073291771u, 1413021149u, 0, ATAN_TOLERANCE, 0},
+{ 543, 3189114773u, 1922837702u, 3216892718u, 3535907549u, 3189114773u, 1922837702u, 0, ATAN_TOLERANCE, 0},
+{ 544, 3243615868u, 261447440u, 3209805849u, 1150571079u, 3220775419u, 620238805u, 0, ATAN_TOLERANCE, 0},
+{ 545, 1095805232u, 4026487528u, 1073152064u, 27340691u, 1073291771u, 382605392u, 0, ATAN_TOLERANCE, 0},
+{ 546, 3229123692u, 338765118u, 1086225786u, 3207238249u, 3220772746u, 1206299653u, 0, ATAN_TOLERANCE, 0},
+{ 547, 3196182703u, 1085283176u, 3187775111u, 1601194210u, 3196182703u, 1085283146u, 0, ATAN_TOLERANCE, 0},
+{ 548, 1091520173u, 3031712790u, 3252307859u, 170666844u, 1073291767u, 1016111287u, 0, ATAN_TOLERANCE, 0},
+{ 549, 3218862231u, 3148395674u, 1041913758u, 3306391490u, 3218757631u, 103356347u, 0, ATAN_TOLERANCE, 0},
+{ 550, 3201277070u, 2205233857u, 3208100078u, 3993195511u, 3201277070u, 2205191738u, 0, ATAN_TOLERANCE, 0},
+{ 551, 1067699608u, 4282766727u, 1072820377u, 1874778218u, 1067698962u, 1743785447u, 0, ATAN_TOLERANCE, 0},
+{ 552, 3210833092u, 2920860798u, 3218070226u, 3104066154u, 3210833090u, 4113949558u, 0, ATAN_TOLERANCE, 0},
+{ 553, 3204950351u, 969991373u, 3250596895u, 1734386152u, 3204950351u, 965469711u, 0, ATAN_TOLERANCE, 0},
+{ 554, 3238915818u, 1218740205u, 3239802737u, 2610078504u, 3220775415u, 227572644u, 0, ATAN_TOLERANCE, 0},
+{ 555, 3206031242u, 1485218325u, 3220870240u, 3591664613u, 3206031242u, 1465977202u, 0, ATAN_TOLERANCE, 0},
+{ 556, 3202074143u, 690157417u, 3190850619u, 4192347699u, 3202074143u, 690043153u, 0, ATAN_TOLERANCE, 0},
+{ 557, 1096053810u, 4009839784u, 1079670252u, 394167192u, 1073291771u, 573823006u, 0, ATAN_TOLERANCE, 0},
+{ 558, 3234559237u, 961532417u, 1092588071u, 2923790239u, 3220775344u, 3178743683u, 0, ATAN_TOLERANCE, 0},
+{ 559, 3203879091u, 4174125604u, 1050682630u, 2169701868u, 3203879091u, 4173044074u, 0, ATAN_TOLERANCE, 0},
+{ 560, 3243092475u, 4146748230u, 1087373950u, 2481478351u, 3220775419u, 255456628u, 0, ATAN_TOLERANCE, 0},
+{ 561, 1076987866u, 3984715440u, 1050421618u, 2446142566u, 1073232022u, 1403395700u, 0, ATAN_TOLERANCE, 0},
+{ 562, 1084172406u, 936290150u, 1100614426u, 3625806370u, 1073291245u, 2121958750u, 0, ATAN_TOLERANCE, 0},
+{ 563, 1099787952u, 1866615265u, 3215651428u, 2337013350u, 1073291771u, 1340790833u, 0, ATAN_TOLERANCE, 0},
+{ 564, 3253198302u, 712227971u, 1106004723u, 973148499u, 3220775419u, 1412348225u, 0, ATAN_TOLERANCE, 0},
+{ 565, 3230088199u, 3409813738u, 3244817008u, 1933503498u, 3220774009u, 56229122u, 0, ATAN_TOLERANCE, 0},
+{ 566, 1079943733u, 3180389060u, 3228735703u, 83422217u, 1073283214u, 546297662u, 0, ATAN_TOLERANCE, 0},
+{ 567, 1077878724u, 556972671u, 3204582372u, 841555801u, 1073258092u, 3166288107u, 0, ATAN_TOLERANCE, 0},
+{ 568, 1070767721u, 4189151332u, 1080874032u, 706326922u, 1070734947u, 1769347893u, 0, ATAN_TOLERANCE, 0},
+{ 569, 1096151307u, 198291836u, 1057281892u, 2188836928u, 1073291771u, 630771632u, 0, ATAN_TOLERANCE, 0},
+{ 570, 1078091995u, 1219449298u, 3228734687u, 3504562743u, 1073263250u, 3774528357u, 0, ATAN_TOLERANCE, 0},
+{ 571, 3204570464u, 1776099219u, 1094316777u, 4188083896u, 3204570464u, 1774153099u, 0, ATAN_TOLERANCE, 0},
+{ 572, 3193845708u, 2614400266u, 1073750227u, 3003203347u, 3193845708u, 2614400264u, 0, ATAN_TOLERANCE, 0},
+{ 573, 3213982678u, 2959351406u, 1105603716u, 311851587u, 3213982567u, 1570677133u, 0, ATAN_TOLERANCE, 0},
+{ 574, 1084544434u, 865443613u, 1097532516u, 3622237781u, 1073291378u, 600985871u, 0, ATAN_TOLERANCE, 0},
+{ 575, 3231786666u, 447506102u, 3195759295u, 3603669725u, 3220774941u, 2964952981u, 0, ATAN_TOLERANCE, 0},
+{ 576, 1097890173u, 3934398273u, 1040996422u, 2968621268u, 1073291771u, 1153051410u, 0, ATAN_TOLERANCE, 0},
+{ 577, 3196739825u, 784208771u, 1088764788u, 2182296421u, 3196739825u, 784208675u, 0, ATAN_TOLERANCE, 0},
+{ 578, 3248332291u, 1527590526u, 3206961556u, 2823164069u, 3220775419u, 1377500189u, 0, ATAN_TOLERANCE, 0},
+{ 579, 3236644131u, 3876699591u, 3207481130u, 4028148535u, 3220775400u, 2379450018u, 0, ATAN_TOLERANCE, 0},
+{ 580, 1083576186u, 2164249756u, 1059857743u, 1785169952u, 1073291028u, 2762329418u, 0, ATAN_TOLERANCE, 0},
+{ 581, 1091804009u, 2079273665u, 1080303860u, 625760474u, 1073291768u, 279335930u, 0, ATAN_TOLERANCE, 0},
+{ 582, 3226486108u, 3636214836u, 1068367620u, 2932621925u, 3220759309u, 1835502520u, 0, ATAN_TOLERANCE, 0},
+{ 583, 1043995372u, 4274131512u, 1047707755u, 92550763u, 1043995372u, 4274131512u, 0, ATAN_TOLERANCE, 0},
+{ 584, 3198822121u, 2648933384u, 1084603503u, 3534304873u, 3198822121u, 2648931893u, 0, ATAN_TOLERANCE, 0},
+{ 585, 1064563235u, 3216750767u, 3191088629u, 547482628u, 1064563225u, 1790170628u, 0, ATAN_TOLERANCE, 0},
+{ 586, 1061084774u, 1420360746u, 1080063101u, 1690029499u, 1061084774u, 777797761u, 0, ATAN_TOLERANCE, 0},
+{ 587, 3229855364u, 1908572179u, 1080112083u, 1228319033u, 3220773754u, 1865928231u, 0, ATAN_TOLERANCE, 0},
+{ 588, 1048158178u, 500312015u, 3212368508u, 3864619086u, 1048158178u, 500311993u, 0, ATAN_TOLERANCE, 0},
+{ 589, 3221335610u, 4211343447u, 1087492676u, 4272583781u, 3220329869u, 3571128500u, 0, ATAN_TOLERANCE, 0},
+{ 590, 1099392394u, 2382118000u, 1042665328u, 567154882u, 1073291771u, 1321968173u, 0, ATAN_TOLERANCE, 0},
+{ 591, 1058013442u, 1435344339u, 3216303171u, 2275988178u, 1058013442u, 1429747799u, 0, ATAN_TOLERANCE, 0},
+{ 592, 3214538619u, 3403659753u, 3218043030u, 1926480488u, 3214538255u, 731111446u, 0, ATAN_TOLERANCE, 0},
+{ 593, 1076840383u, 1198845185u, 3225556149u, 1130089684u, 1073224818u, 2264453881u, 0, ATAN_TOLERANCE, 0},
+{ 594, 3222663042u, 2183928090u, 1048403956u, 963834821u, 3220586287u, 1628037007u, 0, ATAN_TOLERANCE, 0},
+{ 595, 1101672960u, 2120625396u, 1041006976u, 2137548527u, 1073291771u, 1393259219u, 0, ATAN_TOLERANCE, 0},
+{ 596, 1099230238u, 586700956u, 1059670521u, 303891699u, 1073291771u, 1311113410u, 0, ATAN_TOLERANCE, 0},
+{ 597, 3218994498u, 2509132460u, 1102827530u, 2205707903u, 3218867430u, 403113079u, 0, ATAN_TOLERANCE, 0},
+{ 598, 3204860597u, 1229308263u, 3209170414u, 4206576047u, 3204860597u, 1225527184u, 0, ATAN_TOLERANCE, 0},
+{ 599, 3224076289u, 4078010749u, 3199236456u, 733478972u, 3220699293u, 1573791609u, 0, ATAN_TOLERANCE, 0},
+{ 600, 3197712584u, 4277541051u, 3199806921u, 397102023u, 3197712584u, 4277540717u, 0, ATAN_TOLERANCE, 0},
+{ 601, 3195975013u, 900999594u, 3234720188u, 2530214248u, 3195975013u, 900999556u, 0, ATAN_TOLERANCE, 0},
+{ 602, 1076543548u, 4000609478u, 1096577064u, 4148592328u, 1073213521u, 1835490717u, 0, ATAN_TOLERANCE, 0},
+{ 603, 1048668084u, 2154187873u, 3224392607u, 3957250362u, 1048668084u, 2154187846u, 0, ATAN_TOLERANCE, 0},
+{ 604, 3223413488u, 2867079200u, 1101870326u, 921212001u, 3220655327u, 2167262020u, 0, ATAN_TOLERANCE, 0},
+{ 605, 3233221890u, 674547716u, 1063216239u, 3929755226u, 3220775241u, 2726413826u, 0, ATAN_TOLERANCE, 0},
+{ 606, 3240415851u, 3158182449u, 1043794244u, 3259056345u, 3220775417u, 3403014384u, 0, ATAN_TOLERANCE, 0},
+{ 607, 3236776656u, 3002823940u, 1059511739u, 2832435794u, 3220775401u, 3651312642u, 0, ATAN_TOLERANCE, 0},
+{ 608, 3217304822u, 2196511929u, 1049973941u, 3672092877u, 3217294032u, 3185958956u, 0, ATAN_TOLERANCE, 0},
+{ 609, 1050438056u, 3655292191u, 1086438127u, 3567072906u, 1050438056u, 3655291713u, 0, ATAN_TOLERANCE, 0},
+{ 610, 3243186948u, 1617573614u, 3201863123u, 3090723732u, 3220775419u, 309136010u, 0, ATAN_TOLERANCE, 0},
+{ 611, 3233201380u, 679893506u, 3211547753u, 824081024u, 3220775239u, 811985673u, 0, ATAN_TOLERANCE, 0},
+{ 612, 1089530525u, 2285242807u, 1084999409u, 2221731406u, 1073291756u, 841732295u, 0, ATAN_TOLERANCE, 0},
+{ 613, 3206733664u, 1935990727u, 1088822246u, 1058156518u, 3206733664u, 1899280125u, 0, ATAN_TOLERANCE, 0},
+{ 614, 1102839166u, 521023584u, 1059186903u, 4245163857u, 1073291771u, 1404163801u, 0, ATAN_TOLERANCE, 0},
+{ 615, 1103891140u, 2312887617u, 3191771354u, 1885370807u, 1073291771u, 1408967836u, 0, ATAN_TOLERANCE, 0},
+{ 616, 3252953815u, 1796441468u, 1100030327u, 2772711004u, 3220775419u, 1412087754u, 0, ATAN_TOLERANCE, 0},
+{ 617, 3204276820u, 2095685003u, 1077984448u, 2100773742u, 3204276820u, 2093520013u, 0, ATAN_TOLERANCE, 0},
+{ 618, 3192954620u, 2892538035u, 1042396334u, 4162200338u, 3192954620u, 2892538035u, 0, ATAN_TOLERANCE, 0},
+{ 619, 3242725751u, 2177698116u, 3227557177u, 150832500u, 3220775418u, 4281124194u, 0, ATAN_TOLERANCE, 0},
+{ 620, 3191562216u, 607966734u, 3236250630u, 4164600559u, 3191562216u, 607966734u, 0, ATAN_TOLERANCE, 0},
+{ 621, 3216389812u, 2830122967u, 1046096700u, 3713346883u, 3216386175u, 1322685163u, 0, ATAN_TOLERANCE, 0},
+{ 622, 3237197963u, 2314640506u, 3203696416u, 3276228872u, 3220775406u, 1494646968u, 0, ATAN_TOLERANCE, 0},
+{ 623, 3212912307u, 469331883u, 3249037349u, 2999233437u, 3212912280u, 3578229329u, 0, ATAN_TOLERANCE, 0},
+{ 624, 1097382011u, 560886625u, 1091899487u, 748795120u, 1073291771u, 1066273712u, 0, ATAN_TOLERANCE, 0},
+{ 625, 1049886858u, 2958421324u, 1092569414u, 3235243477u, 1049886858u, 2958421157u, 0, ATAN_TOLERANCE, 0},
+{ 626, 3193026497u, 3221475559u, 1043038304u, 915608434u, 3193026497u, 3221475559u, 0, ATAN_TOLERANCE, 0},
+{ 627, 1071197530u, 3007808652u, 3216682290u, 2531019474u, 1071119536u, 1826918111u, 0, ATAN_TOLERANCE, 0},
+{ 628, 3242028999u, 1767658578u, 3237045269u, 2313128318u, 3220775418u, 3374233364u, 0, ATAN_TOLERANCE, 0},
+{ 629, 3210617892u, 1926845182u, 1066835624u, 1783256828u, 3210617890u, 945751955u, 0, ATAN_TOLERANCE, 0},
+{ 630, 1040575629u, 90378038u, 1057168870u, 164358218u, 1040575629u, 90378038u, 0, ATAN_TOLERANCE, 0},
+{ 631, 1106859172u, 1610524680u, 1085283851u, 2903496007u, 1073291771u, 1413091807u, 0, ATAN_TOLERANCE, 0},
+{ 632, 1078635586u, 4274321404u, 3202913591u, 720121831u, 1073272117u, 1819728786u, 0, ATAN_TOLERANCE, 0},
+{ 633, 1051205256u, 2034778236u, 1071133763u, 1413236391u, 1051205256u, 2034777067u, 0, ATAN_TOLERANCE, 0},
+{ 634, 1051063028u, 1489112261u, 1076691395u, 348210906u, 1051063028u, 1489111380u, 0, ATAN_TOLERANCE, 0},
+{ 635, 3206743917u, 2797651324u, 3224410527u, 2374818327u, 3206743917u, 2760020153u, 0, ATAN_TOLERANCE, 0},
+{ 636, 1088287256u, 1823161666u, 3197810695u, 3119680047u, 1073291737u, 575189280u, 0, ATAN_TOLERANCE, 0},
+{ 637, 1065927336u, 3420950657u, 1087084743u, 2136638961u, 1065927257u, 3181844983u, 0, ATAN_TOLERANCE, 0},
+{ 638, 1069902224u, 3554566429u, 1062907717u, 2736702589u, 1069889350u, 2230613097u, 0, ATAN_TOLERANCE, 0},
+{ 639, 3244888667u, 2928437580u, 3187765027u, 1393427873u, 3220775419u, 1071139528u, 0, ATAN_TOLERANCE, 0},
+{ 640, 3209301561u, 189447067u, 1051643315u, 828663513u, 3209301560u, 2938734198u, 0, ATAN_TOLERANCE, 0},
+{ 641, 1052313869u, 2852350928u, 1045683757u, 673354280u, 1052313869u, 2852345698u, 0, ATAN_TOLERANCE, 0},
+{ 642, 1043946301u, 3589563265u, 3248741629u, 812657927u, 1043946301u, 3589563265u, 0, ATAN_TOLERANCE, 0},
+{ 643, 3190610826u, 1766416701u, 1100392103u, 2185373290u, 3190610826u, 1766416701u, 0, ATAN_TOLERANCE, 0},
+{ 644, 3220275389u, 3763582673u, 3191965790u, 388374829u, 3219820855u, 3731536090u, 0, ATAN_TOLERANCE, 0},
+{ 645, 1079635136u, 1187403069u, 1075300235u, 336640304u, 1073281659u, 4030188121u, 0, ATAN_TOLERANCE, 0},
+{ 646, 1103926251u, 1718795752u, 3243118752u, 683369237u, 1073291771u, 1409057565u, 0, ATAN_TOLERANCE, 0},
+{ 647, 3210792097u, 1863545307u, 1069449477u, 3418627399u, 3210792095u, 3824997910u, 0, ATAN_TOLERANCE, 0},
+{ 648, 1069601294u, 3295607249u, 1068878592u, 1633297809u, 1069595014u, 1384544234u, 0, ATAN_TOLERANCE, 0},
+{ 649, 1058947127u, 2585980994u, 3236670483u, 1286750688u, 1058947127u, 2548184513u, 0, ATAN_TOLERANCE, 0},
+{ 650, 1046157033u, 15816845u, 3233249283u, 2491924775u, 1046157033u, 15816843u, 0, ATAN_TOLERANCE, 0},
+{ 651, 1042413021u, 1051983351u, 1049180786u, 1474421917u, 1042413021u, 1051983351u, 0, ATAN_TOLERANCE, 0},
+{ 652, 3201249525u, 2003816032u, 1086050104u, 668090487u, 3201249525u, 2003775571u, 0, ATAN_TOLERANCE, 0},
+{ 653, 1052556037u, 3671484625u, 1067020039u, 430024694u, 1052556037u, 3671476720u, 0, ATAN_TOLERANCE, 0},
+{ 654, 1067397110u, 3991830201u, 3207808714u, 1021245839u, 1067396479u, 1346565657u, 0, ATAN_TOLERANCE, 0},
+{ 655, 1064194391u, 4255801807u, 3207681716u, 1926756877u, 1064194382u, 3949880665u, 0, ATAN_TOLERANCE, 0},
+{ 656, 1052140785u, 4167786896u, 1077097744u, 1775517981u, 1052140785u, 4167783152u, 0, ATAN_TOLERANCE, 0},
+{ 657, 1085601978u, 3187518564u, 1082437406u, 944672491u, 1073291576u, 74764910u, 0, ATAN_TOLERANCE, 0},
+{ 658, 1049366282u, 953085192u, 3227310828u, 3459155777u, 1049366282u, 953085077u, 0, ATAN_TOLERANCE, 0},
+{ 659, 1069502506u, 1908555460u, 1073640207u, 260441967u, 1069492363u, 118491179u, 0, ATAN_TOLERANCE, 0},
+{ 660, 1067219606u, 250762477u, 1072582645u, 2886742039u, 1067219125u, 347575134u, 0, ATAN_TOLERANCE, 0},
+{ 661, 3250906006u, 786180031u, 3197734769u, 2788918312u, 3220775419u, 1407328857u, 0, ATAN_TOLERANCE, 0},
+{ 662, 3234511827u, 2055912467u, 3244244909u, 1394142937u, 3220775342u, 3099784857u, 0, ATAN_TOLERANCE, 0},
+{ 663, 1069612985u, 91984146u, 3222252812u, 4126276047u, 1069606504u, 224366851u, 0, ATAN_TOLERANCE, 0},
+{ 664, 1081340139u, 3942715706u, 3239316352u, 410676547u, 1073288484u, 3698902139u, 0, ATAN_TOLERANCE, 0},
+{ 665, 3198557846u, 86296211u, 1085850694u, 649202596u, 3198557846u, 86295309u, 0, ATAN_TOLERANCE, 0},
+{ 666, 3245366392u, 3069064472u, 3237358008u, 23209276u, 3220775419u, 1151245100u, 0, ATAN_TOLERANCE, 0},
+{ 667, 1081235288u, 1867297860u, 1072956607u, 2513414118u, 1073288198u, 790114970u, 0, ATAN_TOLERANCE, 0},
+{ 668, 3250533347u, 3171788768u, 3235208783u, 162138697u, 3220775419u, 1405151179u, 0, ATAN_TOLERANCE, 0},
+{ 669, 1081728455u, 1245110700u, 1081653954u, 2584994077u, 1073289237u, 2972570011u, 0, ATAN_TOLERANCE, 0},
+{ 670, 3245510120u, 3347226587u, 1058962932u, 2291943376u, 3220775419u, 1182273584u, 0, ATAN_TOLERANCE, 0},
+{ 671, 1058899062u, 966940828u, 1060726420u, 2798041096u, 1058899062u, 931827316u, 0, ATAN_TOLERANCE, 0},
+{ 672, 1072793759u, 2487340727u, 3223786370u, 4105954991u, 1072339043u, 656785282u, 0, ATAN_TOLERANCE, 0},
+{ 673, 3248116497u, 1671039260u, 1086395032u, 3745833360u, 3220775419u, 1372965423u, 0, ATAN_TOLERANCE, 0},
+{ 674, 1057078797u, 651714217u, 1047070645u, 2130549237u, 1057078797u, 649807813u, 0, ATAN_TOLERANCE, 0},
+{ 675, 3207115731u, 1423000172u, 3247822717u, 1551488170u, 3207115731u, 1340677698u, 0, ATAN_TOLERANCE, 0},
+{ 676, 3201597307u, 921077236u, 3213332351u, 1431049019u, 3201597307u, 921031302u, 0, ATAN_TOLERANCE, 0},
+{ 677, 1067510295u, 655715547u, 3190985373u, 1527556471u, 1067509892u, 653900706u, 0, ATAN_TOLERANCE, 0},
+{ 678, 3227654979u, 4110878657u, 3251297180u, 879739345u, 3220768180u, 2143621544u, 0, ATAN_TOLERANCE, 0},
+{ 679, 1085804762u, 2623955764u, 1093699897u, 1216444475u, 1073291601u, 555702737u, 0, ATAN_TOLERANCE, 0},
+{ 680, 1091905603u, 107442539u, 3239767031u, 1149813329u, 1073291768u, 1306532201u, 0, ATAN_TOLERANCE, 0},
+{ 681, 3233445240u, 1761361082u, 3226030205u, 1121849716u, 3220775264u, 2245620163u, 0, ATAN_TOLERANCE, 0},
+{ 682, 3240087115u, 2534144722u, 1044223733u, 3512285706u, 3220775417u, 1361316791u, 0, ATAN_TOLERANCE, 0},
+{ 683, 3211846077u, 4073670723u, 1050729852u, 3034818849u, 3211846071u, 2937369977u, 0, ATAN_TOLERANCE, 0},
+{ 684, 1101984574u, 1421423503u, 1060278048u, 1397153092u, 1073291771u, 1396407837u, 0, ATAN_TOLERANCE, 0},
+{ 685, 3217421829u, 1649206019u, 1104525577u, 1267104290u, 3217407951u, 2906082294u, 0, ATAN_TOLERANCE, 0},
+{ 686, 3189302097u, 3775270392u, 1040251850u, 68667319u, 3189302097u, 3775270392u, 0, ATAN_TOLERANCE, 0},
+{ 687, 3204330900u, 3099226694u, 3254103006u, 4020102648u, 3204330900u, 3096874134u, 0, ATAN_TOLERANCE, 0},
+{ 688, 3201591712u, 3718441177u, 3215643451u, 4032951536u, 3201591712u, 3718395815u, 0, ATAN_TOLERANCE, 0},
+{ 689, 1044131371u, 508048351u, 3210196713u, 1707937896u, 1044131371u, 508048351u, 0, ATAN_TOLERANCE, 0},
+{ 690, 3198611627u, 2784738160u, 1073435430u, 1109346010u, 3198611627u, 2784737154u, 0, ATAN_TOLERANCE, 0},
+{ 691, 3225725290u, 3331916473u, 3238794568u, 2707019594u, 3220750049u, 2204586419u, 0, ATAN_TOLERANCE, 0},
+{ 692, 1093182670u, 3093165197u, 1072894805u, 2853215019u, 1073291770u, 131697235u, 0, ATAN_TOLERANCE, 0},
+{ 693, 3216582139u, 2135797997u, 1048399559u, 2941926126u, 3216576868u, 1585853008u, 0, ATAN_TOLERANCE, 0},
+{ 694, 1048430980u, 2083412145u, 3249335391u, 507212448u, 1048430980u, 2083412111u, 0, ATAN_TOLERANCE, 0},
+{ 695, 1075363751u, 4270176401u, 3246546709u, 3288753319u, 1073123748u, 1365709044u, 0, ATAN_TOLERANCE, 0},
+{ 696, 3247932863u, 3692175292u, 3197271515u, 3989064196u, 3220775419u, 1368106620u, 0, ATAN_TOLERANCE, 0},
+{ 697, 3251691738u, 3111924274u, 1066772558u, 59281695u, 3220775419u, 1409778101u, 0, ATAN_TOLERANCE, 0},
+{ 698, 1067683911u, 2135245466u, 3208804313u, 3846547392u, 1067683288u, 309601593u, 0, ATAN_TOLERANCE, 0},
+{ 699, 1094877811u, 972051266u, 3222814246u, 3539700586u, 1073291770u, 3852398620u, 0, ATAN_TOLERANCE, 0},
+{ 700, 3202965930u, 330951080u, 1079189813u, 583922384u, 3202965930u, 330602253u, 0, ATAN_TOLERANCE, 0},
+{ 701, 1089640092u, 1711944085u, 1104170032u, 643991456u, 1073291757u, 2392636410u, 0, ATAN_TOLERANCE, 0},
+{ 702, 3234429549u, 2072550721u, 3250147641u, 4280263530u, 3220775338u, 4066583188u, 0, ATAN_TOLERANCE, 0},
+{ 703, 3192972706u, 1566376352u, 1067251433u, 72984588u, 3192972706u, 1566376352u, 0, ATAN_TOLERANCE, 0},
+{ 704, 1095276569u, 3103043079u, 1045853123u, 410067497u, 1073291771u, 16684148u, 0, ATAN_TOLERANCE, 0},
+{ 705, 3216672493u, 1910366299u, 1081770885u, 634683073u, 3216666310u, 4273937132u, 0, ATAN_TOLERANCE, 0},
+{ 706, 1081530688u, 2226525875u, 3224149290u, 2126302825u, 1073288903u, 298132872u, 0, ATAN_TOLERANCE, 0},
+{ 707, 1073150247u, 1383818978u, 3193885723u, 1220372650u, 1072614497u, 1900219019u, 0, ATAN_TOLERANCE, 0},
+{ 708, 1066482943u, 1953339096u, 1077176252u, 1476516558u, 1066482836u, 3239967720u, 0, ATAN_TOLERANCE, 0},
+{ 709, 1066092000u, 1306277326u, 1079089150u, 4093716191u, 1066091894u, 2830833949u, 0, ATAN_TOLERANCE, 0},
+{ 710, 3233148787u, 51750045u, 3242913901u, 4256866157u, 3220775232u, 2570987938u, 0, ATAN_TOLERANCE, 0},
+{ 711, 3195084967u, 2163853087u, 3232053146u, 2962422808u, 3195084967u, 2163853080u, 0, ATAN_TOLERANCE, 0},
+{ 712, 1075516945u, 1618388148u, 3233154824u, 3711953164u, 1073138032u, 1287113367u, 0, ATAN_TOLERANCE, 0},
+{ 713, 3246868002u, 357108214u, 3202294604u, 2306775262u, 3220775419u, 1321484326u, 0, ATAN_TOLERANCE, 0},
+{ 714, 3201904086u, 2571356437u, 3249064063u, 2394851808u, 3201904086u, 2571271300u, 0, ATAN_TOLERANCE, 0},
+{ 715, 3230488091u, 4273880094u, 1103698617u, 3578832032u, 3220774302u, 1520882757u, 0, ATAN_TOLERANCE, 0},
+{ 716, 3233426701u, 2091068742u, 3228270226u, 3980489730u, 3220775262u, 3650169817u, 0, ATAN_TOLERANCE, 0},
+{ 717, 3229016752u, 2772307714u, 1051008486u, 32546576u, 3220772555u, 2963463001u, 0, ATAN_TOLERANCE, 0},
+{ 718, 3241229215u, 2143788498u, 3195498043u, 3630119231u, 3220775418u, 1721031217u, 0, ATAN_TOLERANCE, 0},
+{ 719, 3198632935u, 2527385594u, 3240503648u, 3482095012u, 3198632935u, 2527384545u, 0, ATAN_TOLERANCE, 0},
+{ 720, 3242168799u, 2690097362u, 1068598730u, 2360266862u, 3220775418u, 3531975415u, 0, ATAN_TOLERANCE, 0},
+{ 721, 1058857869u, 2673272949u, 1082639557u, 522449749u, 1058857869u, 2640355150u, 0, ATAN_TOLERANCE, 0},
+{ 722, 1104424147u, 3596379400u, 3242016775u, 2002293002u, 1073291771u, 1410427816u, 0, ATAN_TOLERANCE, 0},
+{ 723, 1099439656u, 4113224369u, 3222122439u, 2152316893u, 1073291771u, 1324712742u, 0, ATAN_TOLERANCE, 0},
+{ 724, 3220796716u, 31662602u, 1047721249u, 1747087514u, 3220187055u, 1880552726u, 0, ATAN_TOLERANCE, 0},
+{ 725, 3250463757u, 2489659568u, 1097051253u, 277506957u, 3220775419u, 1404848096u, 0, ATAN_TOLERANCE, 0},
+{ 726, 3191401834u, 3850162281u, 3213841942u, 438724093u, 3191401834u, 3850162281u, 0, ATAN_TOLERANCE, 0},
+{ 727, 1095392535u, 2431814052u, 1075518084u, 2672434118u, 1073291771u, 110453937u, 0, ATAN_TOLERANCE, 0},
+{ 728, 3243162735u, 391606792u, 1048184750u, 4168944276u, 3220775419u, 295857859u, 0, ATAN_TOLERANCE, 0},
+{ 729, 3247792416u, 457529672u, 3201090276u, 72407935u, 3220775419u, 1363530930u, 0, ATAN_TOLERANCE, 0},
+{ 730, 3218720719u, 3954981400u, 1052053242u, 2411049585u, 3218637316u, 182033963u, 0, ATAN_TOLERANCE, 0},
+{ 731, 1086180091u, 485456950u, 1088415093u, 1655397424u, 1073291633u, 3636630034u, 0, ATAN_TOLERANCE, 0},
+{ 732, 3198234428u, 1551748070u, 3236871640u, 1329701152u, 3198234428u, 1551747647u, 0, ATAN_TOLERANCE, 0},
+{ 733, 3224639122u, 3099222537u, 1104984570u, 4293792842u, 3220723263u, 3080632334u, 0, ATAN_TOLERANCE, 0},
+{ 734, 3203949705u, 3603065260u, 3197735968u, 2402359253u, 3203949705u, 3601826749u, 0, ATAN_TOLERANCE, 0},
+{ 735, 3198824584u, 3961208159u, 3219057584u, 2340553876u, 3198824584u, 3961206662u, 0, ATAN_TOLERANCE, 0},
+{ 736, 1074881909u, 4014841779u, 3197672877u, 3697233334u, 1073054787u, 2691726615u, 0, ATAN_TOLERANCE, 0},
+{ 737, 3213275657u, 1403876392u, 3254028950u, 921363393u, 3213275596u, 1913974053u, 0, ATAN_TOLERANCE, 0},
+{ 738, 1107251806u, 1862576361u, 3194031708u, 2476290925u, 1073291771u, 1413218495u, 0, ATAN_TOLERANCE, 0},
+{ 739, 1049661768u, 1454212851u, 1088378861u, 3400401866u, 1049661768u, 1454212756u, 0, ATAN_TOLERANCE, 0},
+{ 740, 1074406809u, 552676385u, 3188635745u, 3778112968u, 1072980428u, 3659931870u, 0, ATAN_TOLERANCE, 0},
+{ 741, 3216409282u, 1199568671u, 3225679997u, 46947405u, 3216405497u, 2100918285u, 0, ATAN_TOLERANCE, 0},
+{ 742, 1077685537u, 2596231448u, 3253943728u, 2219151748u, 1073254572u, 482439875u, 0, ATAN_TOLERANCE, 0},
+{ 743, 1066527035u, 4119719558u, 3222036299u, 1275474618u, 1066526916u, 1172927590u, 0, ATAN_TOLERANCE, 0},
+{ 744, 3239908663u, 3347296825u, 1101507910u, 1254014794u, 3220775417u, 552152825u, 0, ATAN_TOLERANCE, 0},
+{ 745, 1084119992u, 673775040u, 1070743626u, 244126093u, 1073291231u, 2753811470u, 0, ATAN_TOLERANCE, 0},
+{ 746, 3203199850u, 1832066983u, 1051358028u, 3262483417u, 3203199850u, 1831549326u, 0, ATAN_TOLERANCE, 0},
+{ 747, 1077559600u, 3962610501u, 3198598777u, 849269178u, 1073251851u, 4090842556u, 0, ATAN_TOLERANCE, 0},
+{ 748, 3235473900u, 2497516122u, 3254374111u, 2821429629u, 3220775379u, 154801752u, 0, ATAN_TOLERANCE, 0},
+{ 749, 1076236288u, 2805941787u, 3217785843u, 779131141u, 1073196975u, 1827002005u, 0, ATAN_TOLERANCE, 0},
+{ 750, 3226908686u, 723423605u, 1084533420u, 627282213u, 3220763881u, 1037935400u, 0, ATAN_TOLERANCE, 0},
+{ 751, 3215947680u, 4292778869u, 1078101071u, 1676860147u, 3215945090u, 1354108515u, 0, ATAN_TOLERANCE, 0},
+{ 752, 1076288502u, 3528118587u, 3194648564u, 2363260897u, 1073200262u, 1491562591u, 0, ATAN_TOLERANCE, 0},
+{ 753, 3192897879u, 1307010018u, 1061248120u, 1468743108u, 3192897879u, 1307010017u, 0, ATAN_TOLERANCE, 0},
+{ 754, 3246583139u, 107905661u, 3226089788u, 1943427674u, 3220775419u, 1300294502u, 0, ATAN_TOLERANCE, 0},
+{ 755, 3188230541u, 760006940u, 1054265604u, 1749976597u, 3188230541u, 760006940u, 0, ATAN_TOLERANCE, 0},
+{ 756, 3237773384u, 2787503556u, 1081282610u, 1195841206u, 3220775410u, 1490604965u, 0, ATAN_TOLERANCE, 0},
+{ 757, 3191802156u, 545462045u, 3208381743u, 1981311808u, 3191802156u, 545462045u, 0, ATAN_TOLERANCE, 0},
+{ 758, 1061232136u, 3657978397u, 1104463616u, 3501253426u, 1061232136u, 3219724183u, 0, ATAN_TOLERANCE, 0},
+{ 759, 1049883857u, 1804177501u, 3210693633u, 3606766729u, 1049883857u, 1804177335u, 0, ATAN_TOLERANCE, 0},
+{ 760, 1076856879u, 1336278526u, 1043741618u, 3165279431u, 1073225351u, 2385733259u, 0, ATAN_TOLERANCE, 0},
+{ 761, 1055471915u, 1599382075u, 1058018527u, 4212580517u, 1055471915u, 1599039729u, 0, ATAN_TOLERANCE, 0},
+{ 762, 3207502326u, 3007589929u, 3202026547u, 2792028313u, 3207502326u, 2851086652u, 0, ATAN_TOLERANCE, 0},
+{ 763, 3253082770u, 1866066996u, 1060329048u, 3727175322u, 3220775419u, 1412236097u, 0, ATAN_TOLERANCE, 0},
+{ 764, 3198416643u, 150890940u, 1056025306u, 3082724735u, 3198416643u, 150890277u, 0, ATAN_TOLERANCE, 0},
+{ 765, 1062008939u, 80400395u, 1093584426u, 3478941315u, 1062008938u, 2250748144u, 0, ATAN_TOLERANCE, 0},
+{ 766, 3251640614u, 4050954182u, 3219263194u, 2537475930u, 3220775419u, 1409585431u, 0, ATAN_TOLERANCE, 0},
+{ 767, 1064841871u, 2881752155u, 3212589299u, 2559651278u, 1064841853u, 959039477u, 0, ATAN_TOLERANCE, 0},
+{ 768, 3249016304u, 440309030u, 3214267461u, 3788040806u, 3220775419u, 1391435146u, 0, ATAN_TOLERANCE, 0},
+{ 769, 1100476615u, 918813144u, 3208535698u, 1607035904u, 1073291771u, 1368903776u, 0, ATAN_TOLERANCE, 0},
+{ 770, 1042137451u, 2497054124u, 1089139147u, 2549609010u, 1042137451u, 2497054124u, 0, ATAN_TOLERANCE, 0},
+{ 771, 1047037641u, 790219083u, 1054657139u, 2797979479u, 1047037641u, 790219078u, 0, ATAN_TOLERANCE, 0},
+{ 772, 1057781400u, 1149462078u, 1095765205u, 3879963182u, 1057781400u, 1141591028u, 0, ATAN_TOLERANCE, 0},
+{ 773, 3202729813u, 2684353926u, 3205212854u, 1732474928u, 3202729813u, 2684133556u, 0, ATAN_TOLERANCE, 0},
+{ 774, 1095236965u, 2742237025u, 1051317716u, 3386396147u, 1073291770u, 4276458873u, 0, ATAN_TOLERANCE, 0},
+{ 775, 1063230986u, 3408320912u, 1103071166u, 4233059513u, 1063230984u, 951005581u, 0, ATAN_TOLERANCE, 0},
+{ 776, 1064863548u, 1077495917u, 1088399968u, 433115118u, 1064863529u, 156085544u, 0, ATAN_TOLERANCE, 0},
+{ 777, 3204547572u, 841366493u, 1051716814u, 4121125128u, 3204547572u, 839532312u, 0, ATAN_TOLERANCE, 0},
+{ 778, 1064632084u, 321857207u, 1089128010u, 1149988239u, 1064632072u, 97645502u, 0, ATAN_TOLERANCE, 0},
+{ 779, 3245542663u, 799866606u, 3197637091u, 3924438208u, 3220775419u, 1188307079u, 0, ATAN_TOLERANCE, 0},
+{ 780, 3191062890u, 2002049816u, 1077053447u, 2240354761u, 3191062890u, 2002049816u, 0, ATAN_TOLERANCE, 0},
+{ 781, 3229006283u, 478939968u, 1097035749u, 1066716440u, 3220772535u, 2404832840u, 0, ATAN_TOLERANCE, 0},
+{ 782, 3232473641u, 1653104725u, 1088548129u, 81977716u, 3220775122u, 3765834803u, 0, ATAN_TOLERANCE, 0},
+{ 783, 3196861276u, 3899475018u, 3189694084u, 3330093036u, 3196861276u, 3899474901u, 0, ATAN_TOLERANCE, 0},
+{ 784, 1089312583u, 2612450289u, 1079065127u, 603380842u, 1073291754u, 114116815u, 0, ATAN_TOLERANCE, 0},
+{ 785, 1100636791u, 3962735564u, 1101570429u, 1372490825u, 1073291771u, 1373058424u, 0, ATAN_TOLERANCE, 0},
+{ 786, 1054806016u, 1479841439u, 1059312257u, 541504905u, 1054806016u, 1479681591u, 0, ATAN_TOLERANCE, 0},
+{ 787, 1078662178u, 2626148789u, 1057571099u, 4121656076u, 1073272411u, 3681422370u, 0, ATAN_TOLERANCE, 0},
+{ 788, 1081613389u, 1902560314u, 1043130231u, 3557671562u, 1073289053u, 815191780u, 0, ATAN_TOLERANCE, 0},
+{ 789, 3193829772u, 41779312u, 1081626342u, 831171823u, 3193829772u, 41779310u, 0, ATAN_TOLERANCE, 0},
+{ 790, 1058131100u, 1393168821u, 1066457405u, 1381616968u, 1058131100u, 1385469640u, 0, ATAN_TOLERANCE, 0},
+{ 791, 1072338141u, 3756584649u, 3222267229u, 1423157432u, 1072049769u, 3735827532u, 0, ATAN_TOLERANCE, 0},
+{ 792, 3254435674u, 1894912556u, 1042426694u, 155024547u, 3220775419u, 1413126891u, 0, ATAN_TOLERANCE, 0},
+{ 793, 3195453512u, 35164295u, 3203391785u, 1037041084u, 3195453512u, 35164280u, 0, ATAN_TOLERANCE, 0},
+{ 794, 1084777479u, 3957875950u, 3232195211u, 1590756436u, 1073291435u, 1993247669u, 0, ATAN_TOLERANCE, 0},
+{ 795, 1068844322u, 1447585080u, 1071279485u, 1107922438u, 1068841127u, 3974629702u, 0, ATAN_TOLERANCE, 0},
+{ 796, 1046252518u, 981897615u, 1051856116u, 430357614u, 1046252518u, 981897613u, 0, ATAN_TOLERANCE, 0},
+{ 797, 3227524215u, 395145384u, 3219821938u, 50586510u, 3220767284u, 128407746u, 0, ATAN_TOLERANCE, 0},
+{ 798, 1069775912u, 750827797u, 1082862669u, 230466783u, 1069766183u, 1729676079u, 0, ATAN_TOLERANCE, 0},
+{ 799, 1086668819u, 1365083575u, 3204848310u, 1700831722u, 1073291674u, 4097535485u, 0, ATAN_TOLERANCE, 0},
+{ 800, 3218090390u, 344241827u, 1071538935u, 2715566077u, 3218057649u, 2810753583u, 0, ATAN_TOLERANCE, 0},
+{ 801, 3247582856u, 4069301823u, 3193208760u, 2949125229u, 3220775419u, 1354698203u, 0, ATAN_TOLERANCE, 0},
+{ 802, 1103231387u, 3585711710u, 1065801594u, 2302229267u, 1073291771u, 1406287239u, 0, ATAN_TOLERANCE, 0},
+{ 803, 3194118956u, 709803845u, 1048741487u, 2296910194u, 3194118956u, 709803843u, 0, ATAN_TOLERANCE, 0},
+{ 804, 3193280779u, 744421179u, 1069302001u, 2659232829u, 3193280779u, 744421178u, 0, ATAN_TOLERANCE, 0},
+{ 805, 1092835968u, 1799949903u, 3192522886u, 4212149209u, 1073291769u, 2902193025u, 0, ATAN_TOLERANCE, 0},
+{ 806, 3206108502u, 145234164u, 3250614064u, 912384201u, 3206108502u, 123036041u, 0, ATAN_TOLERANCE, 0},
+{ 807, 3240510664u, 2784620507u, 1102812948u, 3531481022u, 3220775417u, 3831840535u, 0, ATAN_TOLERANCE, 0},
+{ 808, 3251159663u, 383952592u, 3205659905u, 3633194728u, 3220775419u, 1408333280u, 0, ATAN_TOLERANCE, 0},
+{ 809, 3203476252u, 3792395543u, 1070072378u, 3864816376u, 3203476252u, 3791963717u, 0, ATAN_TOLERANCE, 0},
+{ 810, 3205316273u, 2115553675u, 1066288499u, 3538377867u, 3205316273u, 2107016210u, 0, ATAN_TOLERANCE, 0},
+{ 811, 3252075185u, 1230026762u, 1090719723u, 440819880u, 3220775419u, 1410801605u, 0, ATAN_TOLERANCE, 0},
+{ 812, 3194595076u, 2991290482u, 1096886719u, 1097971167u, 3194595076u, 2991290477u, 0, ATAN_TOLERANCE, 0},
+{ 813, 1090048600u, 1098035020u, 3230900504u, 1479059095u, 1073291761u, 66967298u, 0, ATAN_TOLERANCE, 0},
+{ 814, 3251056964u, 1719428427u, 3188631907u, 3707377409u, 3220775419u, 1407967006u, 0, ATAN_TOLERANCE, 0},
+{ 815, 1053236165u, 3748932896u, 1084908557u, 1325384361u, 1053236165u, 3748916443u, 0, ATAN_TOLERANCE, 0},
+{ 816, 1084704076u, 3979168763u, 1057455255u, 2454615952u, 1073291419u, 1282433458u, 0, ATAN_TOLERANCE, 0},
+{ 817, 1053106984u, 1449164578u, 1056960316u, 1654931641u, 1053106984u, 1449151986u, 0, ATAN_TOLERANCE, 0},
+{ 818, 1071439010u, 2120487381u, 3226298974u, 2364226633u, 1071324467u, 3218427578u, 0, ATAN_TOLERANCE, 0},
+{ 819, 1075071428u, 1074268944u, 1065730444u, 280016852u, 1073087652u, 2777987846u, 0, ATAN_TOLERANCE, 0},
+{ 820, 3200308256u, 3315127889u, 3236295594u, 2900924954u, 3200308256u, 3315121534u, 0, ATAN_TOLERANCE, 0},
+{ 821, 3196425891u, 2246037502u, 1049691002u, 1496066550u, 3196425891u, 2246037450u, 0, ATAN_TOLERANCE, 0},
+{ 822, 3193006859u, 4191285446u, 3217936236u, 2382392789u, 3193006859u, 4191285446u, 0, ATAN_TOLERANCE, 0},
+{ 823, 1092833308u, 640099844u, 1042152237u, 2064279383u, 1073291769u, 2887266886u, 0, ATAN_TOLERANCE, 0},
+{ 824, 1079913438u, 3468560824u, 1093251038u, 310958750u, 1073283083u, 111073037u, 0, ATAN_TOLERANCE, 0},
+{ 825, 1096788400u, 1413568905u, 1100941106u, 1627289946u, 1073291771u, 871166501u, 0, ATAN_TOLERANCE, 0},
+{ 826, 3191549550u, 3797143370u, 3195497539u, 3843275034u, 3191549550u, 3797143370u, 0, ATAN_TOLERANCE, 0},
+{ 827, 3252077393u, 2806642640u, 3201943068u, 2515980718u, 3220775419u, 1410805976u, 0, ATAN_TOLERANCE, 0},
+{ 828, 1086877316u, 632580632u, 1078673506u, 3259601317u, 1073291687u, 2163190817u, 0, ATAN_TOLERANCE, 0},
+{ 829, 3200980575u, 3309678799u, 1049337078u, 3056787074u, 3200980575u, 3309652299u, 0, ATAN_TOLERANCE, 0},
+{ 830, 3221495289u, 2341164249u, 1080834967u, 2810890005u, 3220378535u, 2927260740u, 0, ATAN_TOLERANCE, 0},
+{ 831, 1067019674u, 932124675u, 1093915797u, 662682630u, 1067019331u, 3482482559u, 0, ATAN_TOLERANCE, 0},
+{ 832, 3249230091u, 1367996113u, 3251723684u, 2974064663u, 3220775419u, 1394100471u, 0, ATAN_TOLERANCE, 0},
+{ 833, 1080230731u, 323437999u, 1090499064u, 901457511u, 1073284877u, 2447232217u, 0, ATAN_TOLERANCE, 0},
+{ 834, 3235778876u, 4184941840u, 3196770014u, 2458988443u, 3220775385u, 1169410173u, 0, ATAN_TOLERANCE, 0},
+{ 835, 1087618284u, 2023065054u, 3211994098u, 2734612965u, 1073291719u, 1930580370u, 0, ATAN_TOLERANCE, 0},
+{ 836, 1064074694u, 3679267365u, 3237728785u, 1699558211u, 1064074687u, 1409027919u, 0, ATAN_TOLERANCE, 0},
+{ 837, 1088079010u, 1826799031u, 1078709629u, 3986905229u, 1073291733u, 320751146u, 0, ATAN_TOLERANCE, 0},
+{ 838, 1052843785u, 351061688u, 3194386466u, 4105857588u, 1052843785u, 351054996u, 0, ATAN_TOLERANCE, 0},
+{ 839, 1054128006u, 1365244058u, 1064457319u, 1452191426u, 1054128006u, 1365196637u, 0, ATAN_TOLERANCE, 0},
+{ 840, 1064122385u, 2463030625u, 3215975031u, 3773488326u, 1064122377u, 1946325669u, 0, ATAN_TOLERANCE, 0},
+{ 841, 3251276671u, 752664055u, 1065110394u, 1835931663u, 3220775419u, 1408697885u, 0, ATAN_TOLERANCE, 0},
+{ 842, 1088045088u, 3496172149u, 1089617208u, 109068701u, 1073291732u, 1376045510u, 0, ATAN_TOLERANCE, 0},
+{ 843, 3198135087u, 1636966254u, 1086098766u, 2016598298u, 3198135087u, 1636965592u, 0, ATAN_TOLERANCE, 0},
+{ 844, 1050931318u, 3551516956u, 1097969102u, 1317953425u, 1050931318u, 3551516295u, 0, ATAN_TOLERANCE, 0},
+{ 845, 3229832217u, 2977627788u, 1045339018u, 516058480u, 3220773724u, 50491510u, 0, ATAN_TOLERANCE, 0},
+{ 846, 3237408578u, 3901731263u, 3189566462u, 32272932u, 3220775408u, 717252040u, 0, ATAN_TOLERANCE, 0},
+{ 847, 1077281796u, 1956025297u, 3246628529u, 3840733905u, 1073244175u, 2030721393u, 0, ATAN_TOLERANCE, 0},
+{ 848, 1099818036u, 561057891u, 3198494340u, 4271027193u, 1073291771u, 1341911326u, 0, ATAN_TOLERANCE, 0},
+{ 849, 3250929921u, 692989850u, 3242630588u, 2492225971u, 3220775419u, 1407439174u, 0, ATAN_TOLERANCE, 0},
+{ 850, 3205479397u, 3439913962u, 1067477011u, 2973333638u, 3205479397u, 3429005786u, 0, ATAN_TOLERANCE, 0},
+{ 851, 3213993989u, 877613377u, 1044917899u, 809672798u, 3213993874u, 2371201783u, 0, ATAN_TOLERANCE, 0},
+{ 852, 3222171454u, 905426932u, 1046417457u, 1086320855u, 3220505888u, 3375236297u, 0, ATAN_TOLERANCE, 0},
+{ 853, 3246346629u, 2645567288u, 1051258339u, 557182478u, 3220775419u, 1276615550u, 0, ATAN_TOLERANCE, 0},
+{ 854, 3204057950u, 186287752u, 1061342054u, 4054003419u, 3204057950u, 184780236u, 0, ATAN_TOLERANCE, 0},
+{ 855, 1097266673u, 3506889716u, 3243866036u, 519056371u, 1073291771u, 1039639815u, 0, ATAN_TOLERANCE, 0},
+{ 856, 1042654053u, 2171898436u, 3246911982u, 1091500784u, 1042654053u, 2171898436u, 0, ATAN_TOLERANCE, 0},
+{ 857, 3243647673u, 368493885u, 3222871893u, 1419055230u, 3220775419u, 637635996u, 0, ATAN_TOLERANCE, 0},
+{ 858, 1091950572u, 2010971245u, 3188804530u, 1518695799u, 1073291768u, 1714660265u, 0, ATAN_TOLERANCE, 0},
+{ 859, 3205426509u, 1239207795u, 1040192984u, 2199481342u, 3205426509u, 1229110840u, 0, ATAN_TOLERANCE, 0},
+{ 860, 3210978637u, 4264613432u, 3203460972u, 3558930895u, 3210978635u, 2253688262u, 0, ATAN_TOLERANCE, 0},
+{ 861, 1050299283u, 3772748958u, 3227667376u, 309688336u, 1050299283u, 3772748579u, 0, ATAN_TOLERANCE, 0},
+{ 862, 3230743041u, 1077949160u, 1075769893u, 2405271377u, 3220774468u, 1035678043u, 0, ATAN_TOLERANCE, 0},
+{ 863, 1091835152u, 3751608506u, 3232278094u, 930375071u, 1073291768u, 611077343u, 0, ATAN_TOLERANCE, 0},
+{ 864, 3198617153u, 1518334131u, 3205247482u, 791756713u, 3198617153u, 1518333114u, 0, ATAN_TOLERANCE, 0},
+{ 865, 1047317453u, 2825203170u, 3245054001u, 1822981827u, 1047317453u, 2825203162u, 0, ATAN_TOLERANCE, 0},
+{ 866, 1100016363u, 514474738u, 1089072073u, 3300845441u, 1073291771u, 1350285403u, 0, ATAN_TOLERANCE, 0},
+{ 867, 3216391250u, 247369460u, 3197320093u, 687450958u, 3216387601u, 4098199039u, 0, ATAN_TOLERANCE, 0},
+{ 868, 1104161422u, 2722237629u, 1058272368u, 90602316u, 1073291771u, 1409602963u, 0, ATAN_TOLERANCE, 0},
+{ 869, 3208098435u, 1845900544u, 3231520830u, 3389751458u, 3208098435u, 1555193049u, 0, ATAN_TOLERANCE, 0},
+{ 870, 3247535245u, 737689911u, 3195377751u, 3462616966u, 3220775419u, 1352240263u, 0, ATAN_TOLERANCE, 0},
+{ 871, 3223538384u, 3620285831u, 1055501023u, 2708056059u, 3220667101u, 3771485332u, 0, ATAN_TOLERANCE, 0},
+{ 872, 3219464996u, 4073430285u, 1056206159u, 172017902u, 3219303954u, 2708833062u, 0, ATAN_TOLERANCE, 0},
+{ 873, 3212869638u, 2799176222u, 1052706894u, 4083892667u, 3212869615u, 1098347868u, 0, ATAN_TOLERANCE, 0},
+{ 874, 3202279557u, 1562351330u, 1069705601u, 1247765260u, 3202279557u, 1562193851u, 0, ATAN_TOLERANCE, 0},
+{ 875, 3232717299u, 51853475u, 3189080201u, 2783553144u, 3220775158u, 140561636u, 0, ATAN_TOLERANCE, 0},
+{ 876, 3219454353u, 3851781549u, 3241598113u, 514064046u, 3219296527u, 1491630951u, 0, ATAN_TOLERANCE, 0},
+{ 877, 1100045965u, 934745487u, 3248182437u, 2798581921u, 1073291771u, 1351935916u, 0, ATAN_TOLERANCE, 0},
+{ 878, 3213082493u, 2948648757u, 3232177250u, 4278702895u, 3213082453u, 2479375184u, 0, ATAN_TOLERANCE, 0},
+{ 879, 1072485724u, 4259101461u, 1061606772u, 84229920u, 1072134131u, 784335985u, 0, ATAN_TOLERANCE, 0},
+{ 880, 3198075559u, 3891230598u, 1095924595u, 3049217547u, 3198075559u, 3891229992u, 0, ATAN_TOLERANCE, 0},
+{ 881, 1077353053u, 3806018919u, 3243191216u, 280177341u, 1073246412u, 2690826313u, 0, ATAN_TOLERANCE, 0},
+{ 882, 1060624530u, 3900344258u, 1063647809u, 4206745890u, 1060624530u, 3604130788u, 0, ATAN_TOLERANCE, 0},
+{ 883, 3227707336u, 2126253040u, 3207248026u, 808507485u, 3220768486u, 1656700840u, 0, ATAN_TOLERANCE, 0},
+{ 884, 1086090317u, 3465685634u, 3230391053u, 3754958214u, 1073291627u, 948489182u, 0, ATAN_TOLERANCE, 0},
+{ 885, 1102861084u, 461094531u, 1101110393u, 1316091396u, 1073291771u, 1404277038u, 0, ATAN_TOLERANCE, 0},
+{ 886, 1064980314u, 4197635149u, 1091873113u, 1240127141u, 1064980291u, 1134578128u, 0, ATAN_TOLERANCE, 0},
+{ 887, 1074333893u, 118603800u, 1105304898u, 4291425557u, 1072967440u, 3478680514u, 0, ATAN_TOLERANCE, 0},
+{ 888, 3213429165u, 3744663425u, 3212482771u, 953662066u, 3213429084u, 554927145u, 0, ATAN_TOLERANCE, 0},
+{ 889, 1085171305u, 3564196690u, 3228101916u, 904305212u, 1073291501u, 3676281215u, 0, ATAN_TOLERANCE, 0},
+{ 890, 1048333111u, 3566257266u, 3235138829u, 2734275140u, 1048333111u, 3566257237u, 0, ATAN_TOLERANCE, 0},
+{ 891, 3243948477u, 606044282u, 3241318094u, 2446416887u, 3220775419u, 770928296u, 0, ATAN_TOLERANCE, 0},
+{ 892, 1041627284u, 2336116589u, 3197594053u, 2296925138u, 1041627284u, 2336116589u, 0, ATAN_TOLERANCE, 0},
+{ 893, 1058567659u, 907670625u, 3240769036u, 1827119006u, 1058567659u, 887688527u, 0, ATAN_TOLERANCE, 0},
+{ 894, 1044467183u, 2818710946u, 3246059905u, 553394170u, 1044467183u, 2818710946u, 0, ATAN_TOLERANCE, 0},
+{ 895, 3189504094u, 4099522736u, 3232742168u, 3718083858u, 3189504094u, 4099522736u, 0, ATAN_TOLERANCE, 0},
+{ 896, 1092371276u, 1059279404u, 1080245336u, 175941677u, 1073291769u, 277932339u, 0, ATAN_TOLERANCE, 0},
+{ 897, 1105189691u, 1650862428u, 1061816101u, 1723201723u, 1073291771u, 1411647529u, 0, ATAN_TOLERANCE, 0},
+{ 898, 3239012814u, 2462163405u, 3218946201u, 3876535372u, 3220775415u, 1092893741u, 0, ATAN_TOLERANCE, 0},
+{ 899, 1084392886u, 495844137u, 1073721460u, 772777946u, 1073291329u, 222247607u, 0, ATAN_TOLERANCE, 0},
+{ 900, 1052415330u, 458757721u, 3245680321u, 3609892707u, 1052415330u, 458751459u, 0, ATAN_TOLERANCE, 0},
+{ 901, 3193282956u, 2533012202u, 1079980803u, 3592268374u, 3193282956u, 2533012201u, 0, ATAN_TOLERANCE, 0},
+{ 902, 3203364780u, 4108274117u, 1063045844u, 571992389u, 3203364780u, 4107609388u, 0, ATAN_TOLERANCE, 0},
+{ 903, 1090567271u, 3541110973u, 1096296754u, 3118427427u, 1073291763u, 2924714246u, 0, ATAN_TOLERANCE, 0},
+{ 904, 3193980043u, 1213941007u, 1105433735u, 2172963370u, 3193980043u, 1213941006u, 0, ATAN_TOLERANCE, 0},
+{ 905, 1096853359u, 272190288u, 1095452370u, 4026581530u, 1073291771u, 897967252u, 0, ATAN_TOLERANCE, 0},
+{ 906, 1095583909u, 2843638672u, 1100510986u, 3190536898u, 1073291771u, 240417192u, 0, ATAN_TOLERANCE, 0},
+{ 907, 1083757094u, 2014317727u, 3247389683u, 2428462015u, 1073291111u, 1032347836u, 0, ATAN_TOLERANCE, 0},
+{ 908, 1093976717u, 688442200u, 1047852515u, 3035186380u, 1073291770u, 2398529340u, 0, ATAN_TOLERANCE, 0},
+{ 909, 1076664212u, 1010095511u, 3221288076u, 405287991u, 1073218543u, 1579157249u, 0, ATAN_TOLERANCE, 0},
+{ 910, 3252294615u, 2983070435u, 1089546472u, 2907918480u, 3220775419u, 1411180698u, 0, ATAN_TOLERANCE, 0},
+{ 911, 1082988121u, 81928569u, 1056007286u, 2740556321u, 1073290644u, 3391630935u, 0, ATAN_TOLERANCE, 0},
+{ 912, 1041110867u, 2076689028u, 1081558619u, 3039159031u, 1041110867u, 2076689028u, 0, ATAN_TOLERANCE, 0},
+{ 913, 1047307438u, 1376882094u, 3211003208u, 1296286481u, 1047307438u, 1376882086u, 0, ATAN_TOLERANCE, 0},
+{ 914, 1080114314u, 744133164u, 3200943494u, 955832216u, 1073284167u, 545905631u, 0, ATAN_TOLERANCE, 0},
+{ 915, 3226290326u, 176522478u, 1069999908u, 2891249491u, 3220757517u, 953792288u, 0, ATAN_TOLERANCE, 0},
+{ 916, 1043564602u, 3685851715u, 3187829932u, 2363997529u, 1043564602u, 3685851715u, 0, ATAN_TOLERANCE, 0},
+{ 917, 1040244055u, 3974431579u, 1052505165u, 2589067816u, 1040244055u, 3974431579u, 0, ATAN_TOLERANCE, 0},
+{ 918, 3191496789u, 3819109588u, 1048561488u, 969143351u, 3191496789u, 3819109588u, 0, ATAN_TOLERANCE, 0},
+{ 919, 1072639397u, 4246896124u, 1104584799u, 1940097860u, 1072215921u, 2918165436u, 0, ATAN_TOLERANCE, 0},
+{ 920, 1048038468u, 2228686199u, 3220231833u, 777624847u, 1048038468u, 2228686181u, 0, ATAN_TOLERANCE, 0},
+{ 921, 3231467306u, 4189906558u, 3203004203u, 854242364u, 3220774839u, 4032438805u, 0, ATAN_TOLERANCE, 0},
+{ 922, 1103910407u, 4089051094u, 3227282692u, 2693170723u, 1073291771u, 1409017496u, 0, ATAN_TOLERANCE, 0},
+{ 923, 1045883607u, 1278581412u, 3239296746u, 1774588717u, 1045883607u, 1278581411u, 0, ATAN_TOLERANCE, 0},
+{ 924, 3222372686u, 1794845306u, 1104879344u, 4135865182u, 3220539858u, 4248673150u, 0, ATAN_TOLERANCE, 0},
+{ 925, 1106449055u, 754938390u, 1061291430u, 2010786993u, 1073291771u, 1412874493u, 0, ATAN_TOLERANCE, 0},
+{ 926, 1073581409u, 2034303731u, 3240176537u, 314147356u, 1072771439u, 2289580023u, 0, ATAN_TOLERANCE, 0},
+{ 927, 3231449194u, 567588900u, 3195452230u, 1421366017u, 3220774834u, 945795067u, 0, ATAN_TOLERANCE, 0},
+{ 928, 3225089755u, 2708717091u, 1071975971u, 1364590470u, 3220736549u, 2407476344u, 0, ATAN_TOLERANCE, 0},
+{ 929, 3252137283u, 3461956134u, 3207820115u, 1605709634u, 3220775419u, 1410919766u, 0, ATAN_TOLERANCE, 0},
+{ 930, 1065302996u, 1497124553u, 1051715442u, 916736957u, 1065302956u, 2901868158u, 0, ATAN_TOLERANCE, 0},
+{ 931, 1058468363u, 834914365u, 1064667143u, 2839166298u, 1058468363u, 818420201u, 0, ATAN_TOLERANCE, 0},
+{ 932, 1057279949u, 2139295776u, 1062816721u, 914592523u, 1057279949u, 2136218948u, 0, ATAN_TOLERANCE, 0},
+{ 933, 3189636931u, 851569132u, 1058503154u, 1399378677u, 3189636931u, 851569132u, 0, ATAN_TOLERANCE, 0},
+{ 934, 3233537697u, 3897202342u, 3245382590u, 246600375u, 3220775272u, 1543167911u, 0, ATAN_TOLERANCE, 0},
+{ 935, 3225460308u, 3620429520u, 1055627557u, 229305u, 3220743880u, 1522537798u, 0, ATAN_TOLERANCE, 0},
+{ 936, 1083958833u, 3641997865u, 3206673888u, 93720614u, 1073291184u, 310117365u, 0, ATAN_TOLERANCE, 0},
+{ 937, 3227808435u, 32766320u, 1062084905u, 3668443038u, 3220769009u, 1748628101u, 0, ATAN_TOLERANCE, 0},
+{ 938, 3223298996u, 2039713492u, 3248699388u, 1346210821u, 3220643553u, 1526559974u, 0, ATAN_TOLERANCE, 0},
+{ 939, 1093050016u, 1335820726u, 3191756860u, 1808427032u, 1073291769u, 3927597683u, 0, ATAN_TOLERANCE, 0},
+{ 940, 1061442763u, 650692001u, 1103515670u, 2253348763u, 1061442762u, 4211298986u, 0, ATAN_TOLERANCE, 0},
+{ 941, 3191395187u, 2372623300u, 3210185343u, 3200572848u, 3191395187u, 2372623300u, 0, ATAN_TOLERANCE, 0},
+{ 942, 1100796069u, 762317532u, 3194595095u, 3192607437u, 1073291771u, 1376490868u, 0, ATAN_TOLERANCE, 0},
+{ 943, 1062262701u, 217775356u, 3232827087u, 2969367386u, 1062262700u, 2842818152u, 0, ATAN_TOLERANCE, 0},
+{ 944, 1057172551u, 3621353969u, 1077994795u, 3873976266u, 1057172551u, 3618948239u, 0, ATAN_TOLERANCE, 0},
+{ 945, 1091301987u, 268372152u, 3221764390u, 3216978962u, 1073291766u, 3217095478u, 0, ATAN_TOLERANCE, 0},
+{ 946, 3246437611u, 142942404u, 1075322987u, 1746449109u, 3220775419u, 1285213958u, 0, ATAN_TOLERANCE, 0},
+{ 947, 1104006296u, 496534875u, 3254522293u, 2532372502u, 1073291771u, 1409250064u, 0, ATAN_TOLERANCE, 0},
+{ 948, 3250225541u, 2999955409u, 3222793392u, 1868977643u, 3220775419u, 1403626769u, 0, ATAN_TOLERANCE, 0},
+{ 949, 1074319042u, 3353193428u, 3218469191u, 3326244297u, 1072964666u, 202373549u, 0, ATAN_TOLERANCE, 0},
+{ 950, 1068218799u, 73646871u, 3231442171u, 3711510104u, 1068217026u, 479221391u, 0, ATAN_TOLERANCE, 0},
+{ 951, 1090483524u, 218135177u, 3198908856u, 3082199105u, 1073291763u, 821836508u, 0, ATAN_TOLERANCE, 0},
+{ 952, 1068068480u, 1061628117u, 3248859043u, 86776158u, 1068067111u, 2464247744u, 0, ATAN_TOLERANCE, 0},
+{ 953, 3208484674u, 938869114u, 1087911145u, 2416710759u, 3208484674u, 372849960u, 0, ATAN_TOLERANCE, 0},
+{ 954, 1095576832u, 2970853959u, 3239543429u, 1887505029u, 1073291771u, 236074415u, 0, ATAN_TOLERANCE, 0},
+{ 955, 3237728787u, 1337895935u, 1076463812u, 1172733328u, 3220775410u, 546977720u, 0, ATAN_TOLERANCE, 0},
+{ 956, 1049139928u, 1469010822u, 3229583535u, 551399515u, 1049139928u, 1469010744u, 0, ATAN_TOLERANCE, 0},
+{ 957, 1074118123u, 1849711538u, 1049053713u, 1744276190u, 1072922065u, 3238144722u, 0, ATAN_TOLERANCE, 0},
+{ 958, 3242138780u, 2976596113u, 3192137295u, 3033242648u, 3220775418u, 3499927600u, 0, ATAN_TOLERANCE, 0},
+{ 959, 1098698481u, 876810930u, 3197470945u, 2571587447u, 1073291771u, 1264666645u, 0, ATAN_TOLERANCE, 0},
+{ 960, 3241770810u, 4007797282u, 3225853845u, 4069319648u, 3220775418u, 3013522169u, 0, ATAN_TOLERANCE, 0},
+{ 961, 1047279982u, 3840538373u, 1043189552u, 3668774580u, 1047279982u, 3840538366u, 0, ATAN_TOLERANCE, 0},
+{ 962, 3217611704u, 200857661u, 3229758439u, 3359367736u, 3217591674u, 1542745806u, 0, ATAN_TOLERANCE, 0},
+{ 963, 3248797869u, 111868139u, 3227902082u, 2366064003u, 3220775419u, 1387845116u, 0, ATAN_TOLERANCE, 0},
+{ 964, 1044195166u, 3510904416u, 3222131653u, 3822770497u, 1044195166u, 3510904416u, 0, ATAN_TOLERANCE, 0},
+{ 965, 3242675715u, 789151814u, 1099269239u, 2958956055u, 3220775418u, 4234354237u, 0, ATAN_TOLERANCE, 0},
+{ 966, 1084679320u, 722163228u, 1105524559u, 1534462169u, 1073291413u, 2103282272u, 0, ATAN_TOLERANCE, 0},
+{ 967, 1046586062u, 2207037106u, 3208952465u, 1231254630u, 1046586062u, 2207037104u, 0, ATAN_TOLERANCE, 0},
+{ 968, 3197884060u, 3838689849u, 3198769679u, 1302617170u, 3197884060u, 3838689400u, 0, ATAN_TOLERANCE, 0},
+{ 969, 1085938906u, 2527556476u, 3240373426u, 124352692u, 1073291614u, 2021593024u, 0, ATAN_TOLERANCE, 0},
+{ 970, 3199540805u, 3502371499u, 1043411944u, 4190072016u, 3199540805u, 3502368360u, 0, ATAN_TOLERANCE, 0},
+{ 971, 1064676142u, 1798470077u, 3200116917u, 3421833729u, 1064676129u, 736153526u, 0, ATAN_TOLERANCE, 0},
+{ 972, 3193514956u, 3653237931u, 3204255012u, 3683870669u, 3193514956u, 3653237930u, 0, ATAN_TOLERANCE, 0},
+{ 973, 1053588582u, 376530104u, 1073853547u, 565755892u, 1053588582u, 376499284u, 0, ATAN_TOLERANCE, 0},
+{ 974, 3242503851u, 558292492u, 1051772749u, 4267873474u, 3220775418u, 4047410047u, 0, ATAN_TOLERANCE, 0},
+{ 975, 3224772709u, 509637100u, 3212030069u, 215050379u, 3220728061u, 2553280327u, 0, ATAN_TOLERANCE, 0},
+{ 976, 1092057101u, 3571665665u, 3188628584u, 757824767u, 1073291768u, 2586254000u, 0, ATAN_TOLERANCE, 0},
+{ 977, 3214799337u, 998858159u, 1063077962u, 436029885u, 3214798778u, 470120798u, 0, ATAN_TOLERANCE, 0},
+{ 978, 3205946965u, 996300405u, 3193842624u, 80548098u, 3205946965u, 979971726u, 0, ATAN_TOLERANCE, 0},
+{ 979, 3228848840u, 3876129407u, 3215332180u, 2226970413u, 3220772194u, 2914363116u, 0, ATAN_TOLERANCE, 0},
+{ 980, 3237608953u, 200013509u, 3224552716u, 414878724u, 3220775409u, 2061634836u, 0, ATAN_TOLERANCE, 0},
+{ 981, 3230617093u, 309319541u, 1048979765u, 1261662434u, 3220774372u, 2525024706u, 0, ATAN_TOLERANCE, 0},
+{ 982, 1089252639u, 4062255924u, 3224274128u, 4289485681u, 1073291753u, 2038737724u, 0, ATAN_TOLERANCE, 0},
+{ 983, 3236136084u, 1611969213u, 1053890378u, 3774617276u, 3220775393u, 415839685u, 0, ATAN_TOLERANCE, 0},
+{ 984, 1080412763u, 1752164782u, 3239587974u, 612223386u, 1073285756u, 1224181296u, 0, ATAN_TOLERANCE, 0},
+{ 985, 1041545782u, 2024044989u, 1074932678u, 3259111307u, 1041545782u, 2024044989u, 0, ATAN_TOLERANCE, 0},
+{ 986, 1053207518u, 2564965629u, 1093571065u, 169360454u, 1053207518u, 2564950092u, 0, ATAN_TOLERANCE, 0},
+{ 987, 1089599090u, 1860101737u, 3191222372u, 1676437468u, 1073291757u, 332418688u, 0, ATAN_TOLERANCE, 0},
+{ 988, 1059802968u, 588387057u, 3192103292u, 2495288012u, 1059802968u, 477147092u, 0, ATAN_TOLERANCE, 0},
+{ 989, 3193155705u, 659070058u, 1073095700u, 1393632068u, 3193155705u, 659070057u, 0, ATAN_TOLERANCE, 0},
+{ 990, 3217683263u, 4276187829u, 3217553330u, 1868253275u, 3217660522u, 22885475u, 0, ATAN_TOLERANCE, 0},
+{ 991, 3223220272u, 2085481575u, 3215994784u, 800910002u, 3220638407u, 1068937368u, 0, ATAN_TOLERANCE, 0},
+{ 992, 1056934836u, 1950570756u, 3200582211u, 941022151u, 1056934836u, 1947891957u, 0, ATAN_TOLERANCE, 0},
+{ 993, 1057530368u, 2075610870u, 3250142022u, 3605152103u, 1057530368u, 2070509097u, 0, ATAN_TOLERANCE, 0},
+{ 994, 3200839250u, 3792931748u, 3204857863u, 804393211u, 3200839250u, 3792911087u, 0, ATAN_TOLERANCE, 0},
+{ 995, 3253646370u, 3430071177u, 3226288311u, 3652522729u, 3220775419u, 1412661288u, 0, ATAN_TOLERANCE, 0},
+{ 996, 3201314702u, 236884699u, 3227874605u, 2193269825u, 3201314702u, 236862084u, 0, ATAN_TOLERANCE, 0},
+{ 997, 1064936593u, 2744231849u, 1046186036u, 771053722u, 1064936571u, 2938837843u, 0, ATAN_TOLERANCE, 0},
+{ 998, 1083996036u, 3000189819u, 1096500901u, 2057239777u, 1073291195u, 3362761430u, 0, ATAN_TOLERANCE, 0},
+{ 999, 1093835581u, 205759408u, 3244643377u, 2702292618u, 1073291770u, 2015396783u, 0, ATAN_TOLERANCE, 0},
+
+
+// AUTOMATICALLY GENERATED VECTORS STOP
+
+};
+
+#endif // CYGONCE_LIBM_ATAN_H multiple inclusion protection
+
+// EOF atan.h
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/atan2.c b/ecos/packages/language/c/libm/current/tests/vectors/atan2.c
new file mode 100644
index 0000000..2f11a3a
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/atan2.c
@@ -0,0 +1,115 @@
+//===========================================================================
+//
+// atan2.c
+//
+// Test of atan2() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// Declarations for test system:
+//
+// TESTCASE_TYPE=CYG_TEST_MODULE
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include <cyg/infra/testcase.h> // Test infrastructure
+#include <math.h> // Header for this package
+#include <sys/ieeefp.h> // Cyg_libm_ieee_double_shape_type
+#include "vectors/vector_support.h"// extra support for math tests
+
+#include "vectors/atan2.h"
+
+// FUNCTIONS
+
+static void
+test( CYG_ADDRWORD data )
+{
+ cyg_ucount32 vec_size;
+ cyg_bool ret;
+
+ vec_size = sizeof(atan2_vec) / sizeof(Cyg_libm_test_double_vec_t);
+ ret = doTestVec( (CYG_ADDRWORD) &atan2, CYG_LIBM_TEST_VEC_DOUBLE,
+ CYG_LIBM_TEST_VEC_DOUBLE, CYG_LIBM_TEST_VEC_DOUBLE,
+ &atan2_vec[0], vec_size );
+
+ if (ret==true)
+ {
+ CYG_TEST_PASS("atan2() is stable");
+ } // if
+ else
+ {
+ CYG_TEST_FAIL("atan2() failed tests");
+ } // else
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for Math "
+ "library atan2() function");
+} // test()
+
+
+int
+main(int argc, char *argv[])
+{
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for Math library "
+ "atan2() function");
+
+ START_TEST( test );
+
+ CYG_TEST_PASS_FINISH("Testing is not applicable to this configuration");
+
+} // main()
+
+
+// EOF atan2.c
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/atan2.h b/ecos/packages/language/c/libm/current/tests/vectors/atan2.h
new file mode 100644
index 0000000..9366a66
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/atan2.h
@@ -0,0 +1,1079 @@
+#ifndef CYGONCE_LIBM_ATAN2_H
+#define CYGONCE_LIBM_ATAN2_H
+//===========================================================================
+//
+// atan2.h
+//
+// Test vectors for testing of atan2() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage: #include "vectors/atan2.h"
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include "vectors/vector_support.h"// extra support for math tests
+
+#define ATAN2_TOLERANCE 1.0E-04
+
+static const Cyg_libm_test_double_vec_t atan2_vec[] = {
+
+// AUTOMATICALLY GENERATED VECTORS START
+
+{ 1, 1077999148u, 2506787616u, 1090024059u, 3619148316u, 1060516776u, 3333805635u, 0, ATAN2_TOLERANCE, 0},
+{ 2, 3218153654u, 3176730980u, 1051524793u, 2993920299u, 3220775415u, 4052029953u, 0, ATAN2_TOLERANCE, 0},
+{ 3, 3239659803u, 2725707538u, 3232101343u, 2346810316u, 3220782531u, 1779867601u, 0, ATAN2_TOLERANCE, 0},
+{ 4, 1092554362u, 2088062470u, 3201242716u, 420891118u, 1073291771u, 1413786937u, 0, ATAN2_TOLERANCE, 0},
+{ 5, 3221200677u, 2636405208u, 1100049309u, 471635570u, 3193768732u, 1507839071u, 0, ATAN2_TOLERANCE, 0},
+{ 6, 1089363191u, 1746012320u, 1054478713u, 3333988501u, 1073291771u, 1413304009u, 0, ATAN2_TOLERANCE, 0},
+{ 7, 1047953160u, 183014794u, 3202039382u, 2016785810u, 1074333583u, 830538607u, 0, ATAN2_TOLERANCE, 0},
+{ 8, 3213486034u, 2688957927u, 1046089230u, 2709029994u, 3220775417u, 1364230657u, 0, ATAN2_TOLERANCE, 0},
+{ 9, 1058795730u, 624574473u, 1045840574u, 3473266330u, 1073291567u, 1591891568u, 0, ATAN2_TOLERANCE, 0},
+{ 10, 3204919842u, 1605286142u, 1068931671u, 4233776869u, 3208670066u, 3166828529u, 0, ATAN2_TOLERANCE, 0},
+{ 11, 1060343410u, 1857607719u, 3222889559u, 3417070006u, 1074340322u, 2934931366u, 0, ATAN2_TOLERANCE, 0},
+{ 12, 1103599987u, 3981151660u, 1088899021u, 1332651746u, 1073291708u, 833789888u, 0, ATAN2_TOLERANCE, 0},
+{ 13, 1085298022u, 3824988054u, 1066856791u, 2070129652u, 1073291765u, 3052119569u, 0, ATAN2_TOLERANCE, 0},
+{ 14, 3207559790u, 1372884064u, 1080833116u, 3229926662u, 3199327084u, 1658797856u, 0, ATAN2_TOLERANCE, 0},
+{ 15, 1093826501u, 3217805330u, 3191644264u, 2014578707u, 1073291771u, 1413754161u, 0, ATAN2_TOLERANCE, 0},
+{ 16, 1102287487u, 265058758u, 3239903247u, 1630600647u, 1073293288u, 2536055081u, 0, ATAN2_TOLERANCE, 0},
+{ 17, 1071124229u, 1946677669u, 3198462609u, 926009897u, 1073291773u, 202528659u, 0, ATAN2_TOLERANCE, 0},
+{ 18, 1072130299u, 2271884183u, 3203741999u, 2118617783u, 1073291800u, 1460654986u, 0, ATAN2_TOLERANCE, 0},
+{ 19, 3194849109u, 213658772u, 3249401130u, 314151656u, 3221823995u, 1413754136u, 0, ATAN2_TOLERANCE, 0},
+{ 20, 3254112288u, 1564829925u, 3197817016u, 497230814u, 3220775419u, 1413754137u, 0, ATAN2_TOLERANCE, 0},
+{ 21, 3216262634u, 2075329122u, 3231746400u, 169900577u, 3221823975u, 3066300469u, 0, ATAN2_TOLERANCE, 0},
+{ 22, 1049848642u, 541549344u, 1096608669u, 3119070100u, 1025866913u, 476012722u, 0, ATAN2_TOLERANCE, 0},
+{ 23, 1085427055u, 567496114u, 1045286891u, 1969998540u, 1073291771u, 1413740793u, 0, ATAN2_TOLERANCE, 0},
+{ 24, 1060548195u, 1299369769u, 1049342524u, 4167404066u, 1073291146u, 519406859u, 0, ATAN2_TOLERANCE, 0},
+{ 25, 3208865645u, 3348930841u, 1078472138u, 358457347u, 3202985534u, 429824132u, 0, ATAN2_TOLERANCE, 0},
+{ 26, 1071069297u, 2192461366u, 1099527247u, 3184735642u, 1044197651u, 157929467u, 0, ATAN2_TOLERANCE, 0},
+{ 27, 1052861772u, 331696577u, 3189610016u, 793242270u, 1073292642u, 574335499u, 0, ATAN2_TOLERANCE, 0},
+{ 28, 3252528934u, 2322696981u, 1083791358u, 3020766674u, 3220775418u, 2037904225u, 0, ATAN2_TOLERANCE, 0},
+{ 29, 1044902177u, 252085215u, 3214426435u, 4139068910u, 1074340347u, 353869949u, 0, ATAN2_TOLERANCE, 0},
+{ 30, 3222505725u, 105589263u, 1056316170u, 261630827u, 3220775414u, 3448122542u, 0, ATAN2_TOLERANCE, 0},
+{ 31, 1107213408u, 428765703u, 3251828686u, 2009972239u, 1073452282u, 2384968155u, 0, ATAN2_TOLERANCE, 0},
+{ 32, 1098568019u, 3517376586u, 3240257920u, 3304487302u, 1073314265u, 1225245499u, 0, ATAN2_TOLERANCE, 0},
+{ 33, 3233537912u, 237004814u, 3237899261u, 3364008659u, 3221794005u, 2449967509u, 0, ATAN2_TOLERANCE, 0},
+{ 34, 3195247552u, 472004928u, 3226869477u, 1186387580u, 3221823995u, 1411895162u, 0, ATAN2_TOLERANCE, 0},
+{ 35, 1054226850u, 4085763910u, 1106394906u, 2684738273u, 1020493089u, 2638422367u, 0, ATAN2_TOLERANCE, 0},
+{ 36, 1057053639u, 2055490142u, 3231581370u, 3879040079u, 1074340347u, 1374947702u, 0, ATAN2_TOLERANCE, 0},
+{ 37, 3188976647u, 3725731239u, 1061652681u, 591292963u, 3199932056u, 1923516624u, 0, ATAN2_TOLERANCE, 0},
+{ 38, 3225014981u, 1147041027u, 3215417793u, 624695933u, 3220777273u, 3001432630u, 0, ATAN2_TOLERANCE, 0},
+{ 39, 3206052774u, 705725219u, 3238067573u, 1116238321u, 3221823995u, 1412243119u, 0, ATAN2_TOLERANCE, 0},
+{ 40, 3207367088u, 7287411u, 1045917232u, 116067742u, 3220775314u, 1019381704u, 0, ATAN2_TOLERANCE, 0},
+{ 41, 3240055222u, 3604989074u, 1066381836u, 545298780u, 3220775419u, 1277923777u, 0, ATAN2_TOLERANCE, 0},
+{ 42, 3219080936u, 1681476121u, 1060345752u, 3553822398u, 3220774777u, 3808345438u, 0, ATAN2_TOLERANCE, 0},
+{ 43, 1102831658u, 3410480388u, 1052460275u, 1660607230u, 1073291771u, 1413754121u, 0, ATAN2_TOLERANCE, 0},
+{ 44, 1089216869u, 1494984673u, 3196647153u, 287894723u, 1073291771u, 1413768676u, 0, ATAN2_TOLERANCE, 0},
+{ 45, 1054885127u, 644548665u, 1081948134u, 2442134629u, 1045549451u, 3020174776u, 0, ATAN2_TOLERANCE, 0},
+{ 46, 1087554095u, 2312530895u, 3221584595u, 3379665576u, 1073291917u, 3856099993u, 0, ATAN2_TOLERANCE, 0},
+{ 47, 1096085375u, 3018463866u, 1086226574u, 404012923u, 1073290279u, 1748157573u, 0, ATAN2_TOLERANCE, 0},
+{ 48, 1064733299u, 1710279345u, 3251401196u, 3528946000u, 1074340347u, 1413741153u, 0, ATAN2_TOLERANCE, 0},
+{ 49, 1061536351u, 2164450219u, 1083520023u, 3312018966u, 1050700637u, 377777497u, 0, ATAN2_TOLERANCE, 0},
+{ 50, 1057248676u, 2648986431u, 1050330591u, 1474376550u, 1073280985u, 3990294061u, 0, ATAN2_TOLERANCE, 0},
+{ 51, 3194422028u, 1839068700u, 1077406406u, 3013052171u, 3189688821u, 1967505573u, 0, ATAN2_TOLERANCE, 0},
+{ 52, 1046493630u, 772102380u, 3220729740u, 4219039958u, 1074340347u, 1369193237u, 0, ATAN2_TOLERANCE, 0},
+{ 53, 3229472221u, 3058618779u, 1046304788u, 3338676024u, 3220775419u, 1413496309u, 0, ATAN2_TOLERANCE, 0},
+{ 54, 1051172137u, 506286854u, 1094907481u, 2217000199u, 1028910280u, 474546229u, 0, ATAN2_TOLERANCE, 0},
+{ 55, 1082428310u, 1147428263u, 1065432625u, 3034786717u, 1073291757u, 3973879027u, 0, ATAN2_TOLERANCE, 0},
+{ 56, 1082016752u, 2844125311u, 1082985198u, 2561492677u, 1071562234u, 1135817425u, 0, ATAN2_TOLERANCE, 0},
+{ 57, 3211536916u, 704542600u, 3222902057u, 2762779203u, 3221823713u, 2124571212u, 0, ATAN2_TOLERANCE, 0},
+{ 58, 3199680614u, 184131949u, 3249723525u, 1667366082u, 3221823995u, 1413754126u, 0, ATAN2_TOLERANCE, 0},
+{ 59, 3223609598u, 3904224140u, 1067056698u, 2942159914u, 3220772807u, 557213311u, 0, ATAN2_TOLERANCE, 0},
+{ 60, 1100636863u, 426114282u, 3209056785u, 1083606355u, 1073291771u, 1413781856u, 0, ATAN2_TOLERANCE, 0},
+{ 61, 1106165945u, 3774123863u, 1106787580u, 2722107965u, 1071781660u, 855449165u, 0, ATAN2_TOLERANCE, 0},
+{ 62, 1088005092u, 1377734762u, 1104232051u, 2377063483u, 1056426594u, 575941403u, 0, ATAN2_TOLERANCE, 0},
+{ 63, 1069380559u, 1029739074u, 1105467109u, 3062201018u, 1036481790u, 348598352u, 0, ATAN2_TOLERANCE, 0},
+{ 64, 3234741597u, 773857656u, 3214251949u, 335833884u, 3220775420u, 3252379851u, 0, ATAN2_TOLERANCE, 0},
+{ 65, 3203224610u, 1473865960u, 1103073830u, 4000427507u, 3172842030u, 737633450u, 0, ATAN2_TOLERANCE, 0},
+{ 66, 1103185231u, 4242092620u, 1067009473u, 14539161u, 1073291771u, 1413562337u, 0, ATAN2_TOLERANCE, 0},
+{ 67, 3192516074u, 1732245037u, 1101371955u, 1533536108u, 3163763824u, 3335080682u, 0, ATAN2_TOLERANCE, 0},
+{ 68, 3249153995u, 1833841275u, 1099430098u, 4144145552u, 3220539236u, 1047035747u, 0, ATAN2_TOLERANCE, 0},
+{ 69, 3244270463u, 935007012u, 3188865420u, 604442938u, 3220775419u, 1413754137u, 0, ATAN2_TOLERANCE, 0},
+{ 70, 3206903253u, 2211464602u, 1046255144u, 1635910526u, 3220775248u, 3541319657u, 0, ATAN2_TOLERANCE, 0},
+{ 71, 1077871417u, 2549219008u, 3231633258u, 3733639385u, 1074332102u, 862538429u, 0, ATAN2_TOLERANCE, 0},
+{ 72, 1082095089u, 1819374372u, 3202219056u, 2617077637u, 1073291771u, 1477715401u, 0, ATAN2_TOLERANCE, 0},
+{ 73, 1094345280u, 546465680u, 1048653554u, 532401530u, 1073291771u, 1413753803u, 0, ATAN2_TOLERANCE, 0},
+{ 74, 1044571091u, 2759019783u, 3221570188u, 3554409630u, 1074340347u, 1406300672u, 0, ATAN2_TOLERANCE, 0},
+{ 75, 3212931282u, 2527221960u, 1099107978u, 2696971136u, 3186444617u, 2240666822u, 0, ATAN2_TOLERANCE, 0},
+{ 76, 1097158000u, 173134582u, 1087299442u, 2877794600u, 1073290287u, 1237501481u, 0, ATAN2_TOLERANCE, 0},
+{ 77, 1086400474u, 547642046u, 3197285510u, 3521286127u, 1073291771u, 1413897047u, 0, ATAN2_TOLERANCE, 0},
+{ 78, 1074860702u, 1231582831u, 1090971734u, 1653446832u, 1056430437u, 2142332257u, 0, ATAN2_TOLERANCE, 0},
+{ 79, 1061342535u, 3762182190u, 3252967851u, 2615360375u, 1074340347u, 1413753663u, 0, ATAN2_TOLERANCE, 0},
+{ 80, 3200834423u, 2588067350u, 3206610957u, 3551059728u, 3221812019u, 1159724914u, 0, ATAN2_TOLERANCE, 0},
+{ 81, 3206978856u, 845263327u, 1073415902u, 1749010288u, 3206202985u, 1543004313u, 0, ATAN2_TOLERANCE, 0},
+{ 82, 3205576370u, 3092685191u, 3190678390u, 2872219490u, 3220775474u, 3829350416u, 0, ATAN2_TOLERANCE, 0},
+{ 83, 3218315055u, 4107255722u, 3205337291u, 3069068345u, 3220775612u, 2162833348u, 0, ATAN2_TOLERANCE, 0},
+{ 84, 3243990857u, 2294867524u, 3216653996u, 2860384670u, 3220775419u, 1478098953u, 0, ATAN2_TOLERANCE, 0},
+{ 85, 3193326350u, 2265437201u, 3240198679u, 1234948614u, 3221823995u, 1413754055u, 0, ATAN2_TOLERANCE, 0},
+{ 86, 3216359929u, 1186945904u, 3251167793u, 1896750851u, 3221823995u, 1413524923u, 0, ATAN2_TOLERANCE, 0},
+{ 87, 1081575478u, 3686084548u, 1079286273u, 3309277689u, 1073065835u, 1428060798u, 0, ATAN2_TOLERANCE, 0},
+{ 88, 3223476240u, 3006860614u, 3231412671u, 2504194724u, 3221821257u, 2386162209u, 0, ATAN2_TOLERANCE, 0},
+{ 89, 3236149260u, 1948717780u, 1048317852u, 3791803982u, 3220775419u, 1413742479u, 0, ATAN2_TOLERANCE, 0},
+{ 90, 1064345015u, 4272034420u, 3192982124u, 1526175922u, 1073291775u, 1852788729u, 0, ATAN2_TOLERANCE, 0},
+{ 91, 3245817826u, 4108948538u, 1104691287u, 640541190u, 3213798660u, 2452948390u, 0, ATAN2_TOLERANCE, 0},
+{ 92, 3207257417u, 3259274853u, 1082507103u, 3677038020u, 3197354937u, 308479596u, 0, ATAN2_TOLERANCE, 0},
+{ 93, 1083132498u, 3781708548u, 1096584871u, 1207386447u, 1059162114u, 2426041278u, 0, ATAN2_TOLERANCE, 0},
+{ 94, 3188695272u, 3011191657u, 1103798670u, 1096124830u, 3157459107u, 1210059648u, 0, ATAN2_TOLERANCE, 0},
+{ 95, 1063235023u, 2540404725u, 3240157452u, 4122845725u, 1074340347u, 1405882205u, 0, ATAN2_TOLERANCE, 0},
+{ 96, 1083643710u, 311336721u, 3214382367u, 4212533768u, 1073291787u, 2877164985u, 0, ATAN2_TOLERANCE, 0},
+{ 97, 1051139427u, 1769686293u, 3240200923u, 3538602249u, 1074340347u, 1413751438u, 0, ATAN2_TOLERANCE, 0},
+{ 98, 1078227549u, 508056696u, 1103793878u, 776520138u, 1047044850u, 2730590439u, 0, ATAN2_TOLERANCE, 0},
+{ 99, 1102910577u, 4064962760u, 1077424413u, 819766631u, 1073291771u, 1190439791u, 0, ATAN2_TOLERANCE, 0},
+{ 100, 1074178362u, 2112385259u, 3227593179u, 1187058516u, 1074329532u, 3989379092u, 0, ATAN2_TOLERANCE, 0},
+{ 101, 1082295059u, 2514398118u, 1076579751u, 870169764u, 1073267610u, 3785540369u, 0, ATAN2_TOLERANCE, 0},
+{ 102, 3246851392u, 1190259653u, 1069112254u, 3417249840u, 3220775419u, 1404513616u, 0, ATAN2_TOLERANCE, 0},
+{ 103, 3193663083u, 3467757357u, 3215075200u, 2168175352u, 3221823994u, 4086286991u, 0, ATAN2_TOLERANCE, 0},
+{ 104, 3239643135u, 1508888184u, 1060430241u, 3524949092u, 3220775419u, 1410255195u, 0, ATAN2_TOLERANCE, 0},
+{ 105, 3197412883u, 166402802u, 3237198975u, 3572369260u, 3221823995u, 1413745566u, 0, ATAN2_TOLERANCE, 0},
+{ 106, 1081866822u, 2441536203u, 3202753937u, 3658194573u, 1073291771u, 1519999247u, 0, ATAN2_TOLERANCE, 0},
+{ 107, 1062392908u, 2479742828u, 1062342831u, 4214154303u, 1072286622u, 2053442458u, 0, ATAN2_TOLERANCE, 0},
+{ 108, 1082396794u, 426896765u, 1066474375u, 2201754442u, 1073291744u, 192894795u, 0, ATAN2_TOLERANCE, 0},
+{ 109, 3195629021u, 2055773734u, 3239267288u, 291396537u, 3221823995u, 1413753462u, 0, ATAN2_TOLERANCE, 0},
+{ 110, 3236968033u, 874125203u, 3210508124u, 4091098764u, 3220775419u, 1531585924u, 0, ATAN2_TOLERANCE, 0},
+{ 111, 1065716026u, 120488169u, 3241241441u, 1985269424u, 1074340347u, 1393012109u, 0, ATAN2_TOLERANCE, 0},
+{ 112, 3206539410u, 2243036871u, 3243941101u, 740033495u, 3221823995u, 1413714848u, 0, ATAN2_TOLERANCE, 0},
+{ 113, 3209424906u, 1176656356u, 1074261978u, 3588756231u, 3207769238u, 3405578258u, 0, ATAN2_TOLERANCE, 0},
+{ 114, 3252816791u, 3037249392u, 1061635587u, 1173102190u, 3220775419u, 1413752816u, 0, ATAN2_TOLERANCE, 0},
+{ 115, 3237209581u, 2882725208u, 1071440059u, 69225090u, 3220775413u, 2250709746u, 0, ATAN2_TOLERANCE, 0},
+{ 116, 3212663474u, 272319256u, 1072073912u, 2493997123u, 3213153234u, 3944566878u, 0, ATAN2_TOLERANCE, 0},
+{ 117, 1057720186u, 188610379u, 3232757923u, 2209647371u, 1074340347u, 1384861709u, 0, ATAN2_TOLERANCE, 0},
+{ 118, 3236758517u, 1990439193u, 1078073146u, 622849962u, 3220774780u, 3778488872u, 0, ATAN2_TOLERANCE, 0},
+{ 119, 1057135741u, 756052458u, 1081649113u, 2247475162u, 1048061879u, 2604201297u, 0, ATAN2_TOLERANCE, 0},
+{ 120, 1061623064u, 3878055211u, 3222407050u, 2979438623u, 1074340265u, 1685661745u, 0, ATAN2_TOLERANCE, 0},
+{ 121, 3195290997u, 2676398686u, 1105124431u, 3631096636u, 3162834191u, 1491700165u, 0, ATAN2_TOLERANCE, 0},
+{ 122, 1065079390u, 1697791764u, 3198136112u, 2299842819u, 1073291844u, 921212635u, 0, ATAN2_TOLERANCE, 0},
+{ 123, 1078084768u, 1931502677u, 3215264397u, 3016456382u, 1073292950u, 3329090447u, 0, ATAN2_TOLERANCE, 0},
+{ 124, 1072253426u, 343404215u, 1061072607u, 4266232536u, 1073291150u, 501359091u, 0, ATAN2_TOLERANCE, 0},
+{ 125, 3241230836u, 4140316002u, 1082896196u, 868256971u, 3220774597u, 4214455842u, 0, ATAN2_TOLERANCE, 0},
+{ 126, 1075422810u, 1864139509u, 3187675097u, 3084482407u, 1073291771u, 1414082445u, 0, ATAN2_TOLERANCE, 0},
+{ 127, 3220191323u, 2427162817u, 3234748208u, 2715105792u, 3221823961u, 492279224u, 0, ATAN2_TOLERANCE, 0},
+{ 128, 1064600512u, 3943389284u, 1046724025u, 3626825684u, 1073291763u, 2709355216u, 0, ATAN2_TOLERANCE, 0},
+{ 129, 1045423002u, 967350972u, 1093012318u, 448002663u, 1024927028u, 3174699925u, 0, ATAN2_TOLERANCE, 0},
+{ 130, 3251845859u, 105058217u, 1069733884u, 171786224u, 3220775419u, 1413240381u, 0, ATAN2_TOLERANCE, 0},
+{ 131, 3189614508u, 2863482262u, 3204997271u, 877784425u, 3221823975u, 3715901097u, 0, ATAN2_TOLERANCE, 0},
+{ 132, 3202629313u, 2801782962u, 3213604117u, 762347195u, 3221823621u, 954825115u, 0, ATAN2_TOLERANCE, 0},
+{ 133, 3233486727u, 2317950339u, 3246333414u, 2135700283u, 3221823883u, 3803937142u, 0, ATAN2_TOLERANCE, 0},
+{ 134, 1056516397u, 4171919805u, 1082858682u, 2180920863u, 1046327908u, 2131334968u, 0, ATAN2_TOLERANCE, 0},
+{ 135, 3220149084u, 1918836931u, 1083603224u, 3137821660u, 3209067280u, 2184469635u, 0, ATAN2_TOLERANCE, 0},
+{ 136, 1103902874u, 3456203663u, 3235600523u, 2335688936u, 1073291802u, 1446271064u, 0, ATAN2_TOLERANCE, 0},
+{ 137, 1042279322u, 4170235262u, 1051824459u, 521583737u, 1063064177u, 4271069553u, 0, ATAN2_TOLERANCE, 0},
+{ 138, 1081348303u, 1296623194u, 3250673860u, 2442872540u, 1074340347u, 171714992u, 0, ATAN2_TOLERANCE, 0},
+{ 139, 1061684277u, 289979405u, 1049514449u, 3865737145u, 1073291448u, 606986359u, 0, ATAN2_TOLERANCE, 0},
+{ 140, 1075298944u, 3699090239u, 1054539840u, 3259249360u, 1073291770u, 827852710u, 0, ATAN2_TOLERANCE, 0},
+{ 141, 1096418100u, 1619819023u, 1045993352u, 1022642459u, 1073291771u, 1413754121u, 0, ATAN2_TOLERANCE, 0},
+{ 142, 1081433004u, 19455098u, 3229182089u, 2096003654u, 1073973865u, 4157892710u, 0, ATAN2_TOLERANCE, 0},
+{ 143, 1076297936u, 3803689997u, 1071630912u, 2263729518u, 1073246514u, 2513688842u, 0, ATAN2_TOLERANCE, 0},
+{ 144, 1101357261u, 2816837387u, 1063422305u, 2597606398u, 1073291771u, 1413697311u, 0, ATAN2_TOLERANCE, 0},
+{ 145, 1069100169u, 3680967506u, 1040201163u, 179224723u, 1073291771u, 1392147632u, 0, ATAN2_TOLERANCE, 0},
+{ 146, 3188629767u, 978126928u, 1101553990u, 4047893399u, 3159628256u, 3479115227u, 0, ATAN2_TOLERANCE, 0},
+{ 147, 3222322045u, 4059818629u, 1042678728u, 3640293589u, 3220775419u, 1410994916u, 0, ATAN2_TOLERANCE, 0},
+{ 148, 3248464040u, 3383497159u, 1070002807u, 1527313008u, 3220775419u, 1407667849u, 0, ATAN2_TOLERANCE, 0},
+{ 149, 3202707679u, 2599946514u, 1104170406u, 2738675352u, 3171224256u, 3042081445u, 0, ATAN2_TOLERANCE, 0},
+{ 150, 1105232623u, 3616571377u, 1060859316u, 1130603218u, 1073291771u, 1413753286u, 0, ATAN2_TOLERANCE, 0},
+{ 151, 1076028796u, 3859211180u, 1067940450u, 1744531824u, 1073286682u, 1089370823u, 0, ATAN2_TOLERANCE, 0},
+{ 152, 1042831340u, 1958025850u, 3236511256u, 2472176453u, 1074340347u, 1413754013u, 0, ATAN2_TOLERANCE, 0},
+{ 153, 3233107089u, 182132862u, 3250520938u, 3924356991u, 3221823989u, 3586265324u, 0, ATAN2_TOLERANCE, 0},
+{ 154, 3230501884u, 35632886u, 3209806504u, 1453402523u, 3220775420u, 2282135818u, 0, ATAN2_TOLERANCE, 0},
+{ 155, 1083522102u, 743225214u, 3202890678u, 142917400u, 1073291771u, 1452045876u, 0, ATAN2_TOLERANCE, 0},
+{ 156, 1080684976u, 1472665012u, 3203138231u, 256588219u, 1073291771u, 1703571112u, 0, ATAN2_TOLERANCE, 0},
+{ 157, 1094982162u, 1062927000u, 1061134072u, 931677439u, 1073291771u, 1412929411u, 0, ATAN2_TOLERANCE, 0},
+{ 158, 1058377732u, 2320910576u, 1055663370u, 288059864u, 1073122183u, 140532146u, 0, ATAN2_TOLERANCE, 0},
+{ 159, 1078958093u, 1448349062u, 3199478070u, 3454027134u, 1073291771u, 1499402253u, 0, ATAN2_TOLERANCE, 0},
+{ 160, 3237458798u, 4215445172u, 3196654963u, 2231888973u, 3220775419u, 1413762806u, 0, ATAN2_TOLERANCE, 0},
+{ 161, 3246632231u, 40413554u, 3232578253u, 983832844u, 3220775514u, 1729092407u, 0, ATAN2_TOLERANCE, 0},
+{ 162, 3223721534u, 3995725873u, 1050082319u, 777231627u, 3220775419u, 1274081208u, 0, ATAN2_TOLERANCE, 0},
+{ 163, 1040986626u, 672789828u, 3253385962u, 2982787335u, 1074340347u, 1413754136u, 0, ATAN2_TOLERANCE, 0},
+{ 164, 1068390875u, 2075971825u, 1070166500u, 4034633931u, 1070763061u, 223510141u, 0, ATAN2_TOLERANCE, 0},
+{ 165, 3210046177u, 1018222907u, 3244621407u, 3090050495u, 3221823995u, 1413486700u, 0, ATAN2_TOLERANCE, 0},
+{ 166, 1067680885u, 937732557u, 3200798890u, 2557898276u, 1073291851u, 263621047u, 0, ATAN2_TOLERANCE, 0},
+{ 167, 1078342316u, 130346162u, 3223590310u, 275568693u, 1073525032u, 1065629369u, 0, ATAN2_TOLERANCE, 0},
+{ 168, 1042898869u, 3807416441u, 1075961161u, 3706820266u, 1039579594u, 530920292u, 0, ATAN2_TOLERANCE, 0},
+{ 169, 3216099005u, 1710131411u, 1078123323u, 1900790503u, 3210619589u, 3844263673u, 0, ATAN2_TOLERANCE, 0},
+{ 170, 3238819361u, 3420420033u, 3210844787u, 588423066u, 3220775419u, 1455260758u, 0, ATAN2_TOLERANCE, 0},
+{ 171, 1049684114u, 1160162008u, 3246307879u, 4265764460u, 1074340347u, 1413754119u, 0, ATAN2_TOLERANCE, 0},
+{ 172, 1102543434u, 366653268u, 3188814424u, 466059202u, 1073291771u, 1413754136u, 0, ATAN2_TOLERANCE, 0},
+{ 173, 3226627739u, 1325936170u, 3221436876u, 680097612u, 3220809586u, 1181173116u, 0, ATAN2_TOLERANCE, 0},
+{ 174, 3240391116u, 1827735934u, 3200554324u, 2875599271u, 3220775419u, 1413770632u, 0, ATAN2_TOLERANCE, 0},
+{ 175, 3191030402u, 3117037091u, 3239246636u, 15838845u, 3221823995u, 1413754104u, 0, ATAN2_TOLERANCE, 0},
+{ 176, 1051974004u, 749718883u, 3223587064u, 1523766569u, 1074340347u, 1147805547u, 0, ATAN2_TOLERANCE, 0},
+{ 177, 1044833651u, 1966536294u, 3250158026u, 699164258u, 1074340347u, 1413754136u, 0, ATAN2_TOLERANCE, 0},
+{ 178, 1098048435u, 3759049394u, 1106085272u, 1183789499u, 1064597908u, 3248929885u, 0, ATAN2_TOLERANCE, 0},
+{ 179, 1081201623u, 1970107747u, 1095245453u, 2308233883u, 1058514691u, 93854393u, 0, ATAN2_TOLERANCE, 0},
+{ 180, 1084756444u, 1491017852u, 1041444355u, 1723375725u, 1073291771u, 1413752504u, 0, ATAN2_TOLERANCE, 0},
+{ 181, 3216630070u, 1141349287u, 1097465301u, 3403438584u, 3191856322u, 2454091642u, 0, ATAN2_TOLERANCE, 0},
+{ 182, 3230571908u, 1711085243u, 3250239076u, 1377484108u, 3221823994u, 786236647u, 0, ATAN2_TOLERANCE, 0},
+{ 183, 1098385019u, 2880275004u, 1084039594u, 1611394950u, 1073291693u, 3122589465u, 0, ATAN2_TOLERANCE, 0},
+{ 184, 3234221435u, 2626629370u, 1063771493u, 1499080813u, 3220775419u, 264803512u, 0, ATAN2_TOLERANCE, 0},
+{ 185, 1055231263u, 3936262414u, 1103919063u, 3175668759u, 1023949209u, 2552938589u, 0, ATAN2_TOLERANCE, 0},
+{ 186, 3207981719u, 1270950554u, 3194616071u, 3680565379u, 3220775571u, 86427973u, 0, ATAN2_TOLERANCE, 0},
+{ 187, 3208148223u, 1066985223u, 3221613219u, 4089383168u, 3221823923u, 3911059063u, 0, ATAN2_TOLERANCE, 0},
+{ 188, 3217058839u, 4017329311u, 3208334452u, 1667591498u, 3220778823u, 3018255129u, 0, ATAN2_TOLERANCE, 0},
+{ 189, 1088164157u, 3154656624u, 1061894279u, 3886344038u, 1073291771u, 1283584478u, 0, ATAN2_TOLERANCE, 0},
+{ 190, 1050652945u, 977586119u, 3209762784u, 953839852u, 1074340110u, 49491821u, 0, ATAN2_TOLERANCE, 0},
+{ 191, 1104965247u, 143071571u, 3206165386u, 913097445u, 1073291771u, 1413754372u, 0, ATAN2_TOLERANCE, 0},
+{ 192, 3190565456u, 1371169579u, 1057079837u, 2594818628u, 3206111337u, 3190732180u, 0, ATAN2_TOLERANCE, 0},
+{ 193, 3251793336u, 2259342224u, 3217432469u, 1824221478u, 3220775419u, 1414383540u, 0, ATAN2_TOLERANCE, 0},
+{ 194, 3246834775u, 1576604497u, 1079368611u, 185078728u, 3220775417u, 1756718867u, 0, ATAN2_TOLERANCE, 0},
+{ 195, 3221679427u, 444800035u, 3243343143u, 1734989302u, 3221823995u, 6147356u, 0, ATAN2_TOLERANCE, 0},
+{ 196, 1072748883u, 130452005u, 1041548088u, 2158433515u, 1073291771u, 1408585582u, 0, ATAN2_TOLERANCE, 0},
+{ 197, 3234695968u, 1941318385u, 1045807374u, 792193370u, 3220775419u, 1413748104u, 0, ATAN2_TOLERANCE, 0},
+{ 198, 3238299666u, 1299392207u, 3212131720u, 3205732280u, 3220775419u, 1552605650u, 0, ATAN2_TOLERANCE, 0},
+{ 199, 1098698804u, 3035093505u, 1052187689u, 3287702190u, 1073291771u, 1413753931u, 0, ATAN2_TOLERANCE, 0},
+{ 200, 3246676260u, 2160225215u, 1102624859u, 836655570u, 3216654218u, 2665088407u, 0, ATAN2_TOLERANCE, 0},
+{ 201, 1096723626u, 3360816360u, 3246176356u, 172860634u, 1074203548u, 1093101691u, 0, ATAN2_TOLERANCE, 0},
+{ 202, 1070995788u, 146831910u, 1051558014u, 2340722078u, 1073291768u, 2831089077u, 0, ATAN2_TOLERANCE, 0},
+{ 203, 3230416351u, 1603798153u, 3207725532u, 1099413093u, 3220775419u, 2783017523u, 0, ATAN2_TOLERANCE, 0},
+{ 204, 3246678378u, 2429340443u, 3190303581u, 3223770005u, 3220775419u, 1413754137u, 0, ATAN2_TOLERANCE, 0},
+{ 205, 1075882959u, 955542166u, 3230415151u, 275583938u, 1074335508u, 2461266247u, 0, ATAN2_TOLERANCE, 0},
+{ 206, 1092971882u, 513397822u, 1090646554u, 2089321329u, 1073075348u, 3825695664u, 0, ATAN2_TOLERANCE, 0},
+{ 207, 3193169876u, 2782073372u, 1046063872u, 4023829068u, 3219463075u, 3544171608u, 0, ATAN2_TOLERANCE, 0},
+{ 208, 1098564822u, 3242223094u, 3194111199u, 4264674108u, 1073291771u, 1413754142u, 0, ATAN2_TOLERANCE, 0},
+{ 209, 3238510821u, 3506346169u, 1047020885u, 1742757458u, 3220775419u, 1413753090u, 0, ATAN2_TOLERANCE, 0},
+{ 210, 3192664477u, 1265459564u, 3193450280u, 3650514880u, 3221547303u, 87902914u, 0, ATAN2_TOLERANCE, 0},
+{ 211, 1081755890u, 1525260440u, 3235452527u, 2612331392u, 1074331765u, 569600306u, 0, ATAN2_TOLERANCE, 0},
+{ 212, 3248668920u, 1263613754u, 3219096387u, 635677201u, 3220775419u, 1427849851u, 0, ATAN2_TOLERANCE, 0},
+{ 213, 3206272087u, 4140947288u, 3200792376u, 2013265346u, 3220803925u, 1098100543u, 0, ATAN2_TOLERANCE, 0},
+{ 214, 3249974392u, 1912759945u, 3237045253u, 1351396825u, 3220775615u, 2924037437u, 0, ATAN2_TOLERANCE, 0},
+{ 215, 3248205162u, 1001433078u, 3206926643u, 2741676659u, 3220775419u, 1413760594u, 0, ATAN2_TOLERANCE, 0},
+{ 216, 1080923606u, 1088945233u, 1085095743u, 3986114865u, 1068509660u, 2200288765u, 0, ATAN2_TOLERANCE, 0},
+{ 217, 3215734057u, 831239754u, 1099828675u, 3071308141u, 3188590794u, 2538532254u, 0, ATAN2_TOLERANCE, 0},
+{ 218, 3225834497u, 3473592372u, 1102759382u, 1309576357u, 3195711492u, 1207470557u, 0, ATAN2_TOLERANCE, 0},
+{ 219, 3251186706u, 2042340367u, 1091945628u, 2062772374u, 3220774976u, 2444948188u, 0, ATAN2_TOLERANCE, 0},
+{ 220, 3194765687u, 1840632537u, 1096533424u, 807510337u, 3170912079u, 2161799950u, 0, ATAN2_TOLERANCE, 0},
+{ 221, 3231451722u, 144814872u, 3212698915u, 2282965697u, 3220775423u, 2550216294u, 0, ATAN2_TOLERANCE, 0},
+{ 222, 1071236430u, 2552499583u, 3229111426u, 1470130815u, 1074339805u, 56671396u, 0, ATAN2_TOLERANCE, 0},
+{ 223, 3243093065u, 2858583811u, 1089760910u, 6360994u, 3220752859u, 3608022711u, 0, ATAN2_TOLERANCE, 0},
+{ 224, 3198264929u, 1614537194u, 1075198900u, 4088705365u, 3195627327u, 334480517u, 0, ATAN2_TOLERANCE, 0},
+{ 225, 3250939070u, 3545570051u, 1065221325u, 1629217700u, 3220775419u, 1413708205u, 0, ATAN2_TOLERANCE, 0},
+{ 226, 1072744324u, 1813392963u, 3235313361u, 3772501596u, 1074340323u, 4069514407u, 0, ATAN2_TOLERANCE, 0},
+{ 227, 3196802686u, 2406734491u, 1042055360u, 89226663u, 3220766878u, 1711852653u, 0, ATAN2_TOLERANCE, 0},
+{ 228, 3195751081u, 1618759139u, 3194723421u, 3888234802u, 3221245977u, 1315689607u, 0, ATAN2_TOLERANCE, 0},
+{ 229, 1055357248u, 3590035633u, 3212424262u, 2892456615u, 1074339412u, 819341061u, 0, ATAN2_TOLERANCE, 0},
+{ 230, 3189943060u, 2431246964u, 3241512456u, 183850734u, 3221823995u, 1413754133u, 0, ATAN2_TOLERANCE, 0},
+{ 231, 1089501101u, 3088319870u, 3211544311u, 862225364u, 1073291771u, 1644226526u, 0, ATAN2_TOLERANCE, 0},
+{ 232, 3235294664u, 3495352775u, 1058576726u, 596957268u, 3220775419u, 1395556462u, 0, ATAN2_TOLERANCE, 0},
+{ 233, 1046553348u, 1839214511u, 3205004060u, 1923240983u, 1074339988u, 3977110612u, 0, ATAN2_TOLERANCE, 0},
+{ 234, 1058073864u, 739619702u, 3223356436u, 2689885273u, 1074340343u, 987307560u, 0, ATAN2_TOLERANCE, 0},
+{ 235, 3200324971u, 2143376228u, 1098306332u, 3760236188u, 3174560640u, 1856766382u, 0, ATAN2_TOLERANCE, 0},
+{ 236, 1074621795u, 671680995u, 1091262633u, 2315535361u, 1055995824u, 3605199018u, 0, ATAN2_TOLERANCE, 0},
+{ 237, 3214165989u, 2493598049u, 3194927008u, 1689107592u, 3220775422u, 1539133503u, 0, ATAN2_TOLERANCE, 0},
+{ 238, 3189989959u, 1578976988u, 1066368383u, 2117279163u, 3196301980u, 310302479u, 0, ATAN2_TOLERANCE, 0},
+{ 239, 3222988111u, 3425290087u, 1098487295u, 1263412017u, 3197161903u, 3540713705u, 0, ATAN2_TOLERANCE, 0},
+{ 240, 3208432764u, 3635396812u, 1070999426u, 3965655689u, 3210005619u, 3640098698u, 0, ATAN2_TOLERANCE, 0},
+{ 241, 1060196346u, 2183973116u, 1101098363u, 1118613350u, 1031784915u, 3988125478u, 0, ATAN2_TOLERANCE, 0},
+{ 242, 3221946089u, 199516350u, 1078368488u, 164621458u, 3216184372u, 556023485u, 0, ATAN2_TOLERANCE, 0},
+{ 243, 3187706018u, 3570940805u, 3230316437u, 3596080877u, 3221823995u, 1413752869u, 0, ATAN2_TOLERANCE, 0},
+{ 244, 3208209565u, 980880313u, 1079833442u, 884465057u, 3201044813u, 1604476516u, 0, ATAN2_TOLERANCE, 0},
+{ 245, 1099977124u, 2558179220u, 1052873711u, 1233598120u, 1073291771u, 1413753998u, 0, ATAN2_TOLERANCE, 0},
+{ 246, 1047115221u, 1909994277u, 1085015978u, 2991527452u, 1034770959u, 240841472u, 0, ATAN2_TOLERANCE, 0},
+{ 247, 1060855260u, 1680290941u, 1074309900u, 2943870846u, 1059176465u, 271458589u, 0, ATAN2_TOLERANCE, 0},
+{ 248, 1059496132u, 1451927357u, 3228615456u, 1502585517u, 1074340346u, 4259233439u, 0, ATAN2_TOLERANCE, 0},
+{ 249, 3236211951u, 751136990u, 3230392165u, 3493275472u, 3220797503u, 1340620628u, 0, ATAN2_TOLERANCE, 0},
+{ 250, 1098365967u, 1209623292u, 3238056647u, 979495322u, 1073297577u, 3650346549u, 0, ATAN2_TOLERANCE, 0},
+{ 251, 3250424296u, 1717672108u, 1048120593u, 531240316u, 3220775419u, 1413754135u, 0, ATAN2_TOLERANCE, 0},
+{ 252, 1054174923u, 3548721654u, 1086112947u, 3391817224u, 1040701220u, 3078453447u, 0, ATAN2_TOLERANCE, 0},
+{ 253, 1077836851u, 2758195125u, 1100880260u, 2028440924u, 1049638005u, 306477302u, 0, ATAN2_TOLERANCE, 0},
+{ 254, 1084223893u, 2750123373u, 3232200256u, 1086294931u, 1074026983u, 3357817851u, 0, ATAN2_TOLERANCE, 0},
+{ 255, 1043958672u, 2986160931u, 1076097908u, 2540046258u, 1040481408u, 1957853232u, 0, ATAN2_TOLERANCE, 0},
+{ 256, 3235476602u, 451471221u, 1064816262u, 4187644495u, 3220775419u, 409538388u, 0, ATAN2_TOLERANCE, 0},
+{ 257, 1099460228u, 2439500162u, 1065280276u, 1979490284u, 1073291771u, 1413091321u, 0, ATAN2_TOLERANCE, 0},
+{ 258, 1040415832u, 2283342035u, 1078398157u, 1345997553u, 1034620223u, 4280831376u, 0, ATAN2_TOLERANCE, 0},
+{ 259, 3213249348u, 179066662u, 1103272172u, 1217337578u, 3182636588u, 2434396909u, 0, ATAN2_TOLERANCE, 0},
+{ 260, 3211562377u, 3779303391u, 3210023352u, 3115946280u, 3221146045u, 2893060263u, 0, ATAN2_TOLERANCE, 0},
+{ 261, 3192989874u, 286247089u, 1085153597u, 713645369u, 3180476761u, 2988831978u, 0, ATAN2_TOLERANCE, 0},
+{ 262, 1093670500u, 1468283899u, 1042831668u, 2022736418u, 1073291771u, 1413754124u, 0, ATAN2_TOLERANCE, 0},
+{ 263, 1083139105u, 3305564080u, 1065483445u, 482392433u, 1073291762u, 692166418u, 0, ATAN2_TOLERANCE, 0},
+{ 264, 3201695807u, 2256346551u, 3222430705u, 2071674991u, 3221823994u, 3139624897u, 0, ATAN2_TOLERANCE, 0},
+{ 265, 3204024695u, 2295269094u, 1084451053u, 2773103941u, 3192196347u, 1542977546u, 0, ATAN2_TOLERANCE, 0},
+{ 266, 1078173946u, 1482721827u, 1092243422u, 3125409590u, 1058529089u, 1126344259u, 0, ATAN2_TOLERANCE, 0},
+{ 267, 3221065973u, 1381740563u, 1071545057u, 2918235653u, 3220510929u, 1739151392u, 0, ATAN2_TOLERANCE, 0},
+{ 268, 3238715972u, 1105857967u, 3241990046u, 2703723225u, 3221763183u, 1965202253u, 0, ATAN2_TOLERANCE, 0},
+{ 269, 1043015571u, 174689677u, 1079333374u, 3947057014u, 1036280030u, 1927977740u, 0, ATAN2_TOLERANCE, 0},
+{ 270, 1090461859u, 2023082423u, 3242081486u, 1169047927u, 1074306661u, 1328138233u, 0, ATAN2_TOLERANCE, 0},
+{ 271, 1064525899u, 3742487766u, 1043425732u, 194972788u, 1073291770u, 1848879823u, 0, ATAN2_TOLERANCE, 0},
+{ 272, 3213791827u, 2136071361u, 3211529757u, 993675115u, 3221011893u, 656866874u, 0, ATAN2_TOLERANCE, 0},
+{ 273, 3213663381u, 210772141u, 3241441539u, 580731413u, 3221823995u, 1390307120u, 0, ATAN2_TOLERANCE, 0},
+{ 274, 1093840413u, 1751560711u, 1074522705u, 180987057u, 1073291768u, 1461994101u, 0, ATAN2_TOLERANCE, 0},
+{ 275, 1066754591u, 2552236599u, 1088658621u, 2112468655u, 1050767840u, 2486862394u, 0, ATAN2_TOLERANCE, 0},
+{ 276, 3189290617u, 1578223762u, 3224596567u, 2456166162u, 3221823995u, 1413587503u, 0, ATAN2_TOLERANCE, 0},
+{ 277, 1058506965u, 2110924310u, 1086207177u, 3161208323u, 1044967070u, 1980882681u, 0, ATAN2_TOLERANCE, 0},
+{ 278, 3231863394u, 2352173188u, 1079361728u, 4070222179u, 3220736532u, 3007186906u, 0, ATAN2_TOLERANCE, 0},
+{ 279, 1101012904u, 2481562701u, 1090937016u, 3809489716u, 1073290350u, 575898392u, 0, ATAN2_TOLERANCE, 0},
+{ 280, 3197002651u, 330905705u, 1086260896u, 90264431u, 3183433692u, 3286143315u, 0, ATAN2_TOLERANCE, 0},
+{ 281, 1040729961u, 4162008079u, 3194387916u, 759522153u, 1074331505u, 371434821u, 0, ATAN2_TOLERANCE, 0},
+{ 282, 1081015037u, 1839697482u, 3216442625u, 2211508949u, 1073292151u, 3278130121u, 0, ATAN2_TOLERANCE, 0},
+{ 283, 3249807211u, 3736863454u, 1063475914u, 3150741666u, 3220775419u, 1413722619u, 0, ATAN2_TOLERANCE, 0},
+{ 284, 1060785883u, 4200269406u, 3236646101u, 1061812176u, 1074340347u, 1397586603u, 0, ATAN2_TOLERANCE, 0},
+{ 285, 1080217979u, 106027290u, 3234978297u, 2245237549u, 1074336029u, 2538208560u, 0, ATAN2_TOLERANCE, 0},
+{ 286, 3246984334u, 2132131375u, 3250483427u, 3449276437u, 3221770256u, 2268809344u, 0, ATAN2_TOLERANCE, 0},
+{ 287, 1089388778u, 2334440944u, 1105423490u, 4004336184u, 1056527653u, 2039806622u, 0, ATAN2_TOLERANCE, 0},
+{ 288, 3218772704u, 4090088208u, 1042030013u, 3898658299u, 3220775419u, 1396003111u, 0, ATAN2_TOLERANCE, 0},
+{ 289, 3207908064u, 2272831437u, 3253082595u, 2639188641u, 3221823995u, 1413753895u, 0, ATAN2_TOLERANCE, 0},
+{ 290, 1054766684u, 1856594168u, 3189515294u, 4101853676u, 1073292007u, 3529587265u, 0, ATAN2_TOLERANCE, 0},
+{ 291, 1076012412u, 2211699255u, 3195060344u, 3865018604u, 1073291771u, 1443899242u, 0, ATAN2_TOLERANCE, 0},
+{ 292, 3242767010u, 996259334u, 3241496889u, 3782673116u, 3221202626u, 668180253u, 0, ATAN2_TOLERANCE, 0},
+{ 293, 1099130747u, 3840380763u, 1048674041u, 550040067u, 1073291771u, 1413754122u, 0, ATAN2_TOLERANCE, 0},
+{ 294, 3251419593u, 95874100u, 3237232828u, 2645647822u, 3220775509u, 2468332239u, 0, ATAN2_TOLERANCE, 0},
+{ 295, 1043665640u, 3441419500u, 3252367038u, 876710419u, 1074340347u, 1413754136u, 0, ATAN2_TOLERANCE, 0},
+{ 296, 3238593552u, 2560836004u, 3199616543u, 1180840586u, 3220775419u, 1413783313u, 0, ATAN2_TOLERANCE, 0},
+{ 297, 3221602966u, 2218230392u, 3227485787u, 3947214579u, 3221812687u, 4212242567u, 0, ATAN2_TOLERANCE, 0},
+{ 298, 1079539654u, 1447312532u, 1081476588u, 780366847u, 1070683852u, 2913647986u, 0, ATAN2_TOLERANCE, 0},
+{ 299, 1072569643u, 2842113832u, 3216156731u, 225159029u, 1073372815u, 1982011803u, 0, ATAN2_TOLERANCE, 0},
+{ 300, 1098117193u, 1601981129u, 3234628869u, 2236538344u, 1073292503u, 2915421251u, 0, ATAN2_TOLERANCE, 0},
+{ 301, 1085173524u, 2194185737u, 3242362684u, 87913366u, 1074339506u, 1441440662u, 0, ATAN2_TOLERANCE, 0},
+{ 302, 3199083880u, 1346862963u, 1077836259u, 3604666660u, 3193939787u, 236456121u, 0, ATAN2_TOLERANCE, 0},
+{ 303, 3212255979u, 3115209742u, 1099332326u, 1325101950u, 3185604502u, 1834083044u, 0, ATAN2_TOLERANCE, 0},
+{ 304, 3224546042u, 3889223100u, 1053247613u, 3371396923u, 3220775419u, 744152180u, 0, ATAN2_TOLERANCE, 0},
+{ 305, 3220477868u, 4163120793u, 1075022670u, 1387631215u, 3218111449u, 1089451389u, 0, ATAN2_TOLERANCE, 0},
+{ 306, 3205481779u, 1532426189u, 1063168268u, 3397022615u, 3214971596u, 4023288564u, 0, ATAN2_TOLERANCE, 0},
+{ 307, 3201033321u, 89324166u, 1079206060u, 3429424710u, 3194423243u, 1680654607u, 0, ATAN2_TOLERANCE, 0},
+{ 308, 3192325102u, 747591401u, 1072238381u, 2803213904u, 3192742867u, 3338280103u, 0, ATAN2_TOLERANCE, 0},
+{ 309, 1091113780u, 271904221u, 1044258318u, 1858545114u, 1073291771u, 1413753983u, 0, ATAN2_TOLERANCE, 0},
+{ 310, 3228068914u, 314958082u, 3249912496u, 2966213175u, 3221823995u, 206920092u, 0, ATAN2_TOLERANCE, 0},
+{ 311, 3197179414u, 3119528953u, 3217179014u, 2908718240u, 3221823994u, 1688936819u, 0, ATAN2_TOLERANCE, 0},
+{ 312, 3242467576u, 2018361566u, 1100926600u, 3985805054u, 3214206928u, 1981300716u, 0, ATAN2_TOLERANCE, 0},
+{ 313, 1070132580u, 409584884u, 3239758947u, 755795129u, 1074340347u, 414981618u, 0, ATAN2_TOLERANCE, 0},
+{ 314, 1075772446u, 1819156379u, 3251342302u, 2982669005u, 1074340347u, 1394882706u, 0, ATAN2_TOLERANCE, 0},
+{ 315, 1101563433u, 2080534280u, 3188254060u, 449171797u, 1073291771u, 1413754136u, 0, ATAN2_TOLERANCE, 0},
+{ 316, 1095956900u, 168744837u, 3214950009u, 1322217822u, 1073291771u, 1442479033u, 0, ATAN2_TOLERANCE, 0},
+{ 317, 3254226900u, 3250487255u, 1062120700u, 1876195180u, 3220775419u, 1413753470u, 0, ATAN2_TOLERANCE, 0},
+{ 318, 3226343480u, 1336400247u, 1098057903u, 3314079581u, 3200863282u, 3341642384u, 0, ATAN2_TOLERANCE, 0},
+{ 319, 3203678820u, 265025555u, 1063854282u, 3779482256u, 3212430502u, 3276978561u, 0, ATAN2_TOLERANCE, 0},
+{ 320, 1067300501u, 887044257u, 1054789618u, 2732056261u, 1073291505u, 3692883481u, 0, ATAN2_TOLERANCE, 0},
+{ 321, 1050106742u, 4027115185u, 3191764868u, 2940199511u, 1073313139u, 1714711090u, 0, ATAN2_TOLERANCE, 0},
+{ 322, 3202500155u, 2875684421u, 3227459837u, 2251967570u, 3221823995u, 1256167845u, 0, ATAN2_TOLERANCE, 0},
+{ 323, 1063244412u, 284173546u, 3238823679u, 3557800647u, 1074340347u, 1395039177u, 0, ATAN2_TOLERANCE, 0},
+{ 324, 1101458560u, 3147771266u, 3220110464u, 2933364246u, 1073291771u, 1436432035u, 0, ATAN2_TOLERANCE, 0},
+{ 325, 1064853160u, 3366183281u, 3234870843u, 537442654u, 1074340347u, 606725624u, 0, ATAN2_TOLERANCE, 0},
+{ 326, 3244118788u, 2529029548u, 3249882819u, 3781513577u, 3221812706u, 1843639519u, 0, ATAN2_TOLERANCE, 0},
+{ 327, 3213436354u, 1080845539u, 3206760016u, 911778687u, 3220787976u, 2072716519u, 0, ATAN2_TOLERANCE, 0},
+{ 328, 3191951036u, 469586759u, 1091830022u, 3080528840u, 3172708289u, 1238338899u, 0, ATAN2_TOLERANCE, 0},
+{ 329, 1080249104u, 2863108169u, 3225605506u, 2508274250u, 1073542769u, 2645651585u, 0, ATAN2_TOLERANCE, 0},
+{ 330, 3210826984u, 4080017377u, 3206492941u, 1470284690u, 3220834344u, 690081828u, 0, ATAN2_TOLERANCE, 0},
+{ 331, 3207120390u, 3867917386u, 1102054928u, 3504746045u, 3177757862u, 681445639u, 0, ATAN2_TOLERANCE, 0},
+{ 332, 1064522279u, 2962134101u, 3244741577u, 3390537350u, 1074340347u, 1412866626u, 0, ATAN2_TOLERANCE, 0},
+{ 333, 1088201813u, 1702237980u, 1071598971u, 1102587474u, 1073291753u, 3619892060u, 0, ATAN2_TOLERANCE, 0},
+{ 334, 3202970118u, 2180218657u, 3211592260u, 1206527853u, 3221822198u, 3917681358u, 0, ATAN2_TOLERANCE, 0},
+{ 335, 3197084744u, 394130786u, 3242511482u, 2437699868u, 3221823995u, 1413753942u, 0, ATAN2_TOLERANCE, 0},
+{ 336, 1044237059u, 849581558u, 3252006507u, 2008614943u, 1074340347u, 1413754136u, 0, ATAN2_TOLERANCE, 0},
+{ 337, 3210140014u, 3128971673u, 3249137531u, 2773583059u, 3221823995u, 1413739684u, 0, ATAN2_TOLERANCE, 0},
+{ 338, 1085029866u, 590727700u, 3248651761u, 2183878539u, 1074340335u, 477454515u, 0, ATAN2_TOLERANCE, 0},
+{ 339, 1101098629u, 820687580u, 3208143496u, 1402434664u, 1073291771u, 1413765596u, 0, ATAN2_TOLERANCE, 0},
+{ 340, 3252290835u, 1873709254u, 3245167989u, 44275991u, 3220784654u, 1958963073u, 0, ATAN2_TOLERANCE, 0},
+{ 341, 3189668753u, 1174874204u, 3208263730u, 2360372288u, 3221823993u, 17073376u, 0, ATAN2_TOLERANCE, 0},
+{ 342, 1103854676u, 937573440u, 3208953761u, 211240241u, 1073291771u, 1413757228u, 0, ATAN2_TOLERANCE, 0},
+{ 343, 3243548934u, 2469774991u, 1043117070u, 3380071805u, 3220775419u, 1413754133u, 0, ATAN2_TOLERANCE, 0},
+{ 344, 1058121042u, 442507560u, 3254252803u, 3257889649u, 1074340347u, 1413754113u, 0, ATAN2_TOLERANCE, 0},
+{ 345, 1068850520u, 1854921625u, 1049810168u, 2729627545u, 1073291767u, 3450375180u, 0, ATAN2_TOLERANCE, 0},
+{ 346, 3254712629u, 4001809575u, 3240128649u, 278261523u, 3220775487u, 1146283756u, 0, ATAN2_TOLERANCE, 0},
+{ 347, 1087224694u, 1793907966u, 3238955714u, 398859249u, 1074308487u, 1585139852u, 0, ATAN2_TOLERANCE, 0},
+{ 348, 3200952547u, 2511916952u, 3219195283u, 1697158299u, 3221823992u, 844994325u, 0, ATAN2_TOLERANCE, 0},
+{ 349, 1069985548u, 3230931724u, 3243897690u, 3508781585u, 1074340347u, 1355093335u, 0, ATAN2_TOLERANCE, 0},
+{ 350, 1103847606u, 1674254897u, 1046547577u, 217148561u, 1073291771u, 1413754136u, 0, ATAN2_TOLERANCE, 0},
+{ 351, 3211263954u, 3275604304u, 3194840159u, 2991205850u, 3220775438u, 3970492568u, 0, ATAN2_TOLERANCE, 0},
+{ 352, 3195249375u, 3509997278u, 3248888030u, 3897986511u, 3221823995u, 1413754135u, 0, ATAN2_TOLERANCE, 0},
+{ 353, 1047182435u, 2156824613u, 1042295665u, 1239257646u, 1073252154u, 1874059179u, 0, ATAN2_TOLERANCE, 0},
+{ 354, 3213264085u, 1073153314u, 3250031627u, 2567234990u, 3221823995u, 1413691462u, 0, ATAN2_TOLERANCE, 0},
+{ 355, 3190593412u, 4261696995u, 3197784432u, 323702024u, 3221819545u, 2412162891u, 0, ATAN2_TOLERANCE, 0},
+{ 356, 3243690997u, 4075177615u, 3202791065u, 1919006082u, 3220775419u, 1413762298u, 0, ATAN2_TOLERANCE, 0},
+{ 357, 3239270013u, 386429966u, 1086504491u, 3698826164u, 3220743669u, 1057087085u, 0, ATAN2_TOLERANCE, 0},
+{ 358, 1078327190u, 1681986446u, 3194985869u, 3072950140u, 1073291771u, 1419790643u, 0, ATAN2_TOLERANCE, 0},
+{ 359, 3217311933u, 3719038997u, 1055433962u, 3331415058u, 3220775341u, 2458523280u, 0, ATAN2_TOLERANCE, 0},
+{ 360, 1060749713u, 2420250111u, 3238002206u, 1928661079u, 1074340347u, 1407000771u, 0, ATAN2_TOLERANCE, 0},
+{ 361, 1081914210u, 3679866727u, 3227386672u, 1273835792u, 1073559895u, 2540803742u, 0, ATAN2_TOLERANCE, 0},
+{ 362, 1041622738u, 2682092368u, 3234222284u, 1325425811u, 1074340347u, 1413753885u, 0, ATAN2_TOLERANCE, 0},
+{ 363, 1056312613u, 4175172697u, 3208346191u, 2130706153u, 1074314072u, 2132070035u, 0, ATAN2_TOLERANCE, 0},
+{ 364, 1092089624u, 1200784450u, 1083605096u, 1248595607u, 1073287925u, 2150158548u, 0, ATAN2_TOLERANCE, 0},
+{ 365, 3213890863u, 1897285171u, 3251296075u, 944966123u, 3221823995u, 1413714868u, 0, ATAN2_TOLERANCE, 0},
+{ 366, 3241371250u, 2270747330u, 3230692631u, 422503284u, 3220776287u, 4291004252u, 0, ATAN2_TOLERANCE, 0},
+{ 367, 1084120037u, 2857564741u, 1075647403u, 3308906709u, 1073287848u, 1423905059u, 0, ATAN2_TOLERANCE, 0},
+{ 368, 3203475098u, 1380066948u, 3232612906u, 2613634294u, 3221823995u, 1404084868u, 0, ATAN2_TOLERANCE, 0},
+{ 369, 1063890856u, 4022784584u, 1060483857u, 3264056381u, 1073181451u, 2212869656u, 0, ATAN2_TOLERANCE, 0},
+{ 370, 1044637404u, 1778509100u, 3213146285u, 2665833973u, 1074340346u, 3646177722u, 0, ATAN2_TOLERANCE, 0},
+{ 371, 3216727300u, 1859175955u, 1079949560u, 4258450607u, 3209461833u, 611904534u, 0, ATAN2_TOLERANCE, 0},
+{ 372, 1048277388u, 4128020197u, 1076266146u, 4122840980u, 1044611053u, 3338545369u, 0, ATAN2_TOLERANCE, 0},
+{ 373, 3193183163u, 2454653987u, 3229487005u, 2977478685u, 3221823995u, 1413666460u, 0, ATAN2_TOLERANCE, 0},
+{ 374, 3253556483u, 1355181872u, 1095308770u, 436846481u, 3220774543u, 2493910209u, 0, ATAN2_TOLERANCE, 0},
+{ 375, 3246605302u, 2592856453u, 3247825559u, 3195234082u, 3221606608u, 1846608622u, 0, ATAN2_TOLERANCE, 0},
+{ 376, 3222118023u, 3554670043u, 1091621009u, 3321236467u, 3203149602u, 1308976114u, 0, ATAN2_TOLERANCE, 0},
+{ 377, 1069012833u, 1936670355u, 1095715713u, 2958468553u, 1045979362u, 2828014773u, 0, ATAN2_TOLERANCE, 0},
+{ 378, 3192291109u, 2960339502u, 1098808013u, 1044068983u, 3166150248u, 3509208877u, 0, ATAN2_TOLERANCE, 0},
+{ 379, 3196691185u, 4093388677u, 1095478112u, 1735930261u, 3173885469u, 2460479362u, 0, ATAN2_TOLERANCE, 0},
+{ 380, 1091040302u, 1807398746u, 3195743135u, 4261616162u, 1073291771u, 1413756459u, 0, ATAN2_TOLERANCE, 0},
+{ 381, 3209294194u, 3250576797u, 1059002384u, 3043079652u, 3220619483u, 2585915607u, 0, ATAN2_TOLERANCE, 0},
+{ 382, 1069207109u, 666051428u, 3208765404u, 1912684117u, 1073297233u, 3539037555u, 0, ATAN2_TOLERANCE, 0},
+{ 383, 1103487420u, 1949030179u, 1096388934u, 896459246u, 1073282199u, 3269960540u, 0, ATAN2_TOLERANCE, 0},
+{ 384, 1054300653u, 622499767u, 1066707637u, 1490260486u, 1060246537u, 266655134u, 0, ATAN2_TOLERANCE, 0},
+{ 385, 1106688493u, 1490616165u, 3251242436u, 795675736u, 1073440841u, 3047088221u, 0, ATAN2_TOLERANCE, 0},
+{ 386, 1080943896u, 3662877092u, 3234317146u, 3200513112u, 1074330042u, 3439698595u, 0, ATAN2_TOLERANCE, 0},
+{ 387, 1084088786u, 1356101968u, 3236536816u, 3062844611u, 1074321255u, 2259334167u, 0, ATAN2_TOLERANCE, 0},
+{ 388, 3219922640u, 2284484846u, 3219498359u, 3240896015u, 3221344398u, 1036409683u, 0, ATAN2_TOLERANCE, 0},
+{ 389, 3235759689u, 494503287u, 1092811254u, 142673998u, 3215529370u, 1708242537u, 0, ATAN2_TOLERANCE, 0},
+{ 390, 3252125916u, 3394882641u, 3225306538u, 364852125u, 3220775419u, 1500189746u, 0, ATAN2_TOLERANCE, 0},
+{ 391, 3225261763u, 193885269u, 1088149839u, 1359805831u, 3209756652u, 2187415228u, 0, ATAN2_TOLERANCE, 0},
+{ 392, 3200484782u, 592580907u, 3199560872u, 3086438952u, 3221263565u, 54087162u, 0, ATAN2_TOLERANCE, 0},
+{ 393, 1059518664u, 1778008540u, 1049064687u, 73581647u, 1073290725u, 3056176809u, 0, ATAN2_TOLERANCE, 0},
+{ 394, 3246733598u, 233240285u, 1081923320u, 2710903921u, 3220775408u, 1967527865u, 0, ATAN2_TOLERANCE, 0},
+{ 395, 1069513767u, 3719878805u, 1079866720u, 3615458228u, 1062279619u, 4183240111u, 0, ATAN2_TOLERANCE, 0},
+{ 396, 3221194724u, 3647632375u, 3247225271u, 3839959621u, 3221823995u, 1340091316u, 0, ATAN2_TOLERANCE, 0},
+{ 397, 1103401096u, 2232210456u, 3235434773u, 224271737u, 1073291809u, 4062239471u, 0, ATAN2_TOLERANCE, 0},
+{ 398, 3193003684u, 2134662911u, 3190390590u, 4239009051u, 3220965703u, 3612754429u, 0, ATAN2_TOLERANCE, 0},
+{ 399, 1080526145u, 2305279897u, 1077668039u, 1854523320u, 1073137367u, 4138084895u, 0, ATAN2_TOLERANCE, 0},
+{ 400, 3219864259u, 538224650u, 3206153057u, 1379649610u, 3220775541u, 2626113219u, 0, ATAN2_TOLERANCE, 0},
+{ 401, 3196410507u, 3683897920u, 3244167599u, 3647579469u, 3221823995u, 1413754091u, 0, ATAN2_TOLERANCE, 0},
+{ 402, 1090280933u, 2694093608u, 1042775347u, 598406111u, 1073291771u, 1413754030u, 0, ATAN2_TOLERANCE, 0},
+{ 403, 3211635392u, 872706833u, 1084802480u, 2200602798u, 3199412565u, 1145585977u, 0, ATAN2_TOLERANCE, 0},
+{ 404, 1042339597u, 904146293u, 1060867322u, 1729685598u, 1054052163u, 4258128573u, 0, ATAN2_TOLERANCE, 0},
+{ 405, 3195694970u, 1894173462u, 3232800651u, 191960416u, 3221823995u, 1413702026u, 0, ATAN2_TOLERANCE, 0},
+{ 406, 1091225343u, 3521028551u, 1054522089u, 3287274359u, 1073291771u, 1413623295u, 0, ATAN2_TOLERANCE, 0},
+{ 407, 1095386964u, 959640601u, 3201578263u, 4136915018u, 1073291771u, 1413760436u, 0, ATAN2_TOLERANCE, 0},
+{ 408, 1064005451u, 1553716379u, 1106027987u, 984725765u, 1030661409u, 3624861327u, 0, ATAN2_TOLERANCE, 0},
+{ 409, 3238832641u, 2287646644u, 3240329321u, 2276183378u, 3221639371u, 1915145318u, 0, ATAN2_TOLERANCE, 0},
+{ 410, 1068209174u, 3940225170u, 3199544434u, 997572161u, 1073291795u, 3854512035u, 0, ATAN2_TOLERANCE, 0},
+{ 411, 3212768361u, 36116288u, 3206886566u, 4196602670u, 3220797863u, 3282093125u, 0, ATAN2_TOLERANCE, 0},
+{ 412, 3241695853u, 3550227562u, 3207257983u, 2747744117u, 3220775419u, 1414332672u, 0, ATAN2_TOLERANCE, 0},
+{ 413, 1104236126u, 507130047u, 1048359321u, 3229888373u, 1073291771u, 1413754136u, 0, ATAN2_TOLERANCE, 0},
+{ 414, 3222996778u, 2210969014u, 1081031001u, 1946786091u, 3214651748u, 1763368877u, 0, ATAN2_TOLERANCE, 0},
+{ 415, 3236306990u, 4059150589u, 3189759234u, 1177045799u, 3220775419u, 1413754321u, 0, ATAN2_TOLERANCE, 0},
+{ 416, 1093103612u, 2664812822u, 1050343198u, 2034180320u, 1073291771u, 1413751780u, 0, ATAN2_TOLERANCE, 0},
+{ 417, 3213779117u, 1175750283u, 3235559706u, 1424491340u, 3221823995u, 193169772u, 0, ATAN2_TOLERANCE, 0},
+{ 418, 3213904193u, 1630036121u, 3231972785u, 3195479448u, 3221823992u, 302653567u, 0, ATAN2_TOLERANCE, 0},
+{ 419, 1090429875u, 2527029044u, 1046927050u, 4000723255u, 1073291771u, 1413752610u, 0, ATAN2_TOLERANCE, 0},
+{ 420, 1085208677u, 3335703647u, 3237349676u, 3869440059u, 1074317335u, 873791565u, 0, ATAN2_TOLERANCE, 0},
+{ 421, 1091433848u, 3888398377u, 3196041693u, 1290567220u, 1073291771u, 1413756305u, 0, ATAN2_TOLERANCE, 0},
+{ 422, 1066679070u, 3242451480u, 3248384948u, 707431021u, 1074340347u, 1413405465u, 0, ATAN2_TOLERANCE, 0},
+{ 423, 1083230509u, 2739665123u, 1060777905u, 1733073225u, 1073291770u, 4033660480u, 0, ATAN2_TOLERANCE, 0},
+{ 424, 1078517061u, 1297274853u, 3208848704u, 3341639139u, 1073291783u, 2788085280u, 0, ATAN2_TOLERANCE, 0},
+{ 425, 1046570941u, 2228057309u, 1084318902u, 1317851136u, 1034945225u, 467130534u, 0, ATAN2_TOLERANCE, 0},
+{ 426, 1088255327u, 270039934u, 3241414679u, 3063626339u, 1074328321u, 219326390u, 0, ATAN2_TOLERANCE, 0},
+{ 427, 3219178350u, 83062251u, 3211262173u, 2659016437u, 3220781276u, 2851272908u, 0, ATAN2_TOLERANCE, 0},
+{ 428, 1095743886u, 3833539373u, 3206667189u, 1567476111u, 1073291771u, 1413901700u, 0, ATAN2_TOLERANCE, 0},
+{ 429, 3205195072u, 2382776852u, 3249232579u, 1546622468u, 3221823995u, 1413753624u, 0, ATAN2_TOLERANCE, 0},
+{ 430, 1085536439u, 1714300821u, 1104130938u, 4167591598u, 1054091500u, 1719659965u, 0, ATAN2_TOLERANCE, 0},
+{ 431, 1051092760u, 2798720100u, 1086978789u, 449990704u, 1036752895u, 2144561956u, 0, ATAN2_TOLERANCE, 0},
+{ 432, 3231198415u, 4039516226u, 3244344107u, 4272932619u, 3221823903u, 116437322u, 0, ATAN2_TOLERANCE, 0},
+{ 433, 3222708441u, 1683007544u, 1091105663u, 3805494321u, 3204253019u, 2715940239u, 0, ATAN2_TOLERANCE, 0},
+{ 434, 3220852948u, 2072627412u, 1094383324u, 3394151662u, 3199154933u, 3610356391u, 0, ATAN2_TOLERANCE, 0},
+{ 435, 3220570024u, 1120106427u, 3223631624u, 3404608264u, 3221754802u, 2891454013u, 0, ATAN2_TOLERANCE, 0},
+{ 436, 1097859997u, 559918757u, 3205077053u, 908100198u, 1073291771u, 1413767229u, 0, ATAN2_TOLERANCE, 0},
+{ 437, 1042677918u, 2026673913u, 3244833635u, 2844573214u, 1074340347u, 1413754136u, 0, ATAN2_TOLERANCE, 0},
+{ 438, 3254567259u, 3946837259u, 3234993796u, 3850406820u, 3220775421u, 3630480682u, 0, ATAN2_TOLERANCE, 0},
+{ 439, 1057479809u, 3139330994u, 1046133568u, 1539650690u, 1073291197u, 3198614702u, 0, ATAN2_TOLERANCE, 0},
+{ 440, 3236705500u, 1554593884u, 3228899878u, 2813752562u, 3220781547u, 4079724151u, 0, ATAN2_TOLERANCE, 0},
+{ 441, 1056505004u, 3804703138u, 1072931071u, 2053677923u, 1056202262u, 2398795457u, 0, ATAN2_TOLERANCE, 0},
+{ 442, 3244864299u, 289355864u, 1078453818u, 2143066338u, 3220775415u, 1970569558u, 0, ATAN2_TOLERANCE, 0},
+{ 443, 3203939880u, 2157691971u, 1106629150u, 110806409u, 3169961636u, 2316676483u, 0, ATAN2_TOLERANCE, 0},
+{ 444, 1082157019u, 3570399481u, 1085637605u, 180265334u, 1069044663u, 4073200908u, 0, ATAN2_TOLERANCE, 0},
+{ 445, 3200980182u, 558779875u, 3202046748u, 2338464653u, 3221583019u, 555325381u, 0, ATAN2_TOLERANCE, 0},
+{ 446, 1045705464u, 1703969219u, 3229797258u, 1417521063u, 1074340347u, 1413683705u, 0, ATAN2_TOLERANCE, 0},
+{ 447, 3237782261u, 3917440951u, 1051668894u, 3736066983u, 3220775419u, 1413718442u, 0, ATAN2_TOLERANCE, 0},
+{ 448, 1064752080u, 3106613409u, 1066627453u, 2735392257u, 1070744968u, 3181926916u, 0, ATAN2_TOLERANCE, 0},
+{ 449, 1065665372u, 2229777605u, 1065061963u, 2405869925u, 1072661657u, 531964835u, 0, ATAN2_TOLERANCE, 0},
+{ 450, 3239463229u, 3967957902u, 1057416138u, 3459188071u, 3220775419u, 1413215646u, 0, ATAN2_TOLERANCE, 0},
+{ 451, 1068639210u, 3699016825u, 3249713090u, 796144848u, 1074340347u, 1413245175u, 0, ATAN2_TOLERANCE, 0},
+{ 452, 3228816396u, 3285165564u, 3211948811u, 401510871u, 3220775434u, 929725042u, 0, ATAN2_TOLERANCE, 0},
+{ 453, 1094257658u, 634857910u, 3199607513u, 914218057u, 1073291771u, 1413757756u, 0, ATAN2_TOLERANCE, 0},
+{ 454, 1083743336u, 2030735578u, 3233855943u, 965677531u, 1074244980u, 2177313032u, 0, ATAN2_TOLERANCE, 0},
+{ 455, 1079556815u, 3957229084u, 1051050470u, 3123776651u, 1073291771u, 1384232668u, 0, ATAN2_TOLERANCE, 0},
+{ 456, 3221863333u, 162122081u, 3239376395u, 108064594u, 3221823990u, 1797654074u, 0, ATAN2_TOLERANCE, 0},
+{ 457, 3237271786u, 869031839u, 3225020876u, 1344301606u, 3220775737u, 2309730354u, 0, ATAN2_TOLERANCE, 0},
+{ 458, 3214433474u, 946696117u, 3231825228u, 1700703647u, 3221823989u, 3589711354u, 0, ATAN2_TOLERANCE, 0},
+{ 459, 1075492875u, 3394168074u, 1076939786u, 1666995668u, 1071135059u, 4292477773u, 0, ATAN2_TOLERANCE, 0},
+{ 460, 3208774795u, 2488789804u, 3238508333u, 1506943664u, 3221823995u, 1407380935u, 0, ATAN2_TOLERANCE, 0},
+{ 461, 1072788663u, 3844072288u, 3202592279u, 2630019853u, 1073291780u, 1496672534u, 0, ATAN2_TOLERANCE, 0},
+{ 462, 3219934542u, 1244307192u, 3191297711u, 2540916692u, 3220775419u, 1441424078u, 0, ATAN2_TOLERANCE, 0},
+{ 463, 3200062692u, 2871645739u, 3239081581u, 1440249115u, 3221823995u, 1413739665u, 0, ATAN2_TOLERANCE, 0},
+{ 464, 1068350633u, 1231934926u, 3236746788u, 603977748u, 1074340346u, 3494178900u, 0, ATAN2_TOLERANCE, 0},
+{ 465, 3195449689u, 2386312545u, 1063169277u, 2715234268u, 3204951074u, 3755432132u, 0, ATAN2_TOLERANCE, 0},
+{ 466, 1087803418u, 915867083u, 1046790892u, 3347417612u, 1073291771u, 1413746598u, 0, ATAN2_TOLERANCE, 0},
+{ 467, 1105984188u, 3553288373u, 1065698616u, 2906680663u, 1073291771u, 1413741681u, 0, ATAN2_TOLERANCE, 0},
+{ 468, 1045506226u, 2342364630u, 1051356723u, 4019093203u, 1066714524u, 2880653042u, 0, ATAN2_TOLERANCE, 0},
+{ 469, 3201169162u, 2911548084u, 1105282515u, 2476735795u, 3168518603u, 844773889u, 0, ATAN2_TOLERANCE, 0},
+{ 470, 1050472772u, 1836216409u, 1101062307u, 2519592554u, 1022062603u, 1216305448u, 0, ATAN2_TOLERANCE, 0},
+{ 471, 1070178161u, 1235369496u, 3222946447u, 668087854u, 1074324365u, 3536638492u, 0, ATAN2_TOLERANCE, 0},
+{ 472, 3208554596u, 2981820811u, 1059838516u, 2845580478u, 3220328328u, 288777588u, 0, ATAN2_TOLERANCE, 0},
+{ 473, 3193931414u, 1565550570u, 3217165795u, 4162017137u, 3221823995u, 945021310u, 0, ATAN2_TOLERANCE, 0},
+{ 474, 3237251378u, 2808968027u, 1055630096u, 1782326814u, 3220775419u, 1413048557u, 0, ATAN2_TOLERANCE, 0},
+{ 475, 1053576974u, 1492622658u, 3216653077u, 3972512122u, 1074340330u, 264751044u, 0, ATAN2_TOLERANCE, 0},
+{ 476, 3222171679u, 2722693603u, 3227814791u, 3169731970u, 3221811860u, 3636053881u, 0, ATAN2_TOLERANCE, 0},
+{ 477, 3217906631u, 899763203u, 3207606001u, 2804747833u, 3220776548u, 1089393941u, 0, ATAN2_TOLERANCE, 0},
+{ 478, 3230670325u, 3789058912u, 3228095081u, 4135937628u, 3220974844u, 1105605327u, 0, ATAN2_TOLERANCE, 0},
+{ 479, 1060199382u, 1682808307u, 3206960335u, 232877759u, 1073816480u, 3931324112u, 0, ATAN2_TOLERANCE, 0},
+{ 480, 3242091486u, 2851963139u, 3246852961u, 2590862592u, 3221802400u, 4209025746u, 0, ATAN2_TOLERANCE, 0},
+{ 481, 1081200406u, 2422232642u, 3234779662u, 290458310u, 1074330881u, 1020150355u, 0, ATAN2_TOLERANCE, 0},
+{ 482, 3210671078u, 1082582386u, 1075605675u, 2602133689u, 3207686623u, 217150313u, 0, ATAN2_TOLERANCE, 0},
+{ 483, 3239818611u, 1789635787u, 1059414278u, 1048286093u, 3220775419u, 1412136057u, 0, ATAN2_TOLERANCE, 0},
+{ 484, 1098330542u, 231339448u, 1055573265u, 504907415u, 1073291771u, 1413751773u, 0, ATAN2_TOLERANCE, 0},
+{ 485, 1063211461u, 1153251200u, 3204617090u, 1772013857u, 1073311204u, 2140119256u, 0, ATAN2_TOLERANCE, 0},
+{ 486, 1099551055u, 1082898276u, 3212089272u, 1449080862u, 1073291771u, 1414172319u, 0, ATAN2_TOLERANCE, 0},
+{ 487, 1086008285u, 3177299045u, 1058862813u, 809400815u, 1073291771u, 1342216949u, 0, ATAN2_TOLERANCE, 0},
+{ 488, 3230854550u, 1924429710u, 1056464743u, 3349283177u, 3220775419u, 1327341624u, 0, ATAN2_TOLERANCE, 0},
+{ 489, 3245473391u, 42238036u, 1042379500u, 2113559863u, 3220775419u, 1413754136u, 0, ATAN2_TOLERANCE, 0},
+{ 490, 1064761243u, 3304403230u, 3217556703u, 58952646u, 1074324685u, 1952296142u, 0, ATAN2_TOLERANCE, 0},
+{ 491, 3212669530u, 1645486982u, 3224301095u, 3636267471u, 3221823751u, 2613443644u, 0, ATAN2_TOLERANCE, 0},
+{ 492, 1062762009u, 619402181u, 3235208235u, 557360557u, 1074340347u, 1260049180u, 0, ATAN2_TOLERANCE, 0},
+{ 493, 3238238394u, 110029735u, 1046937383u, 984375729u, 3220775419u, 1413752935u, 0, ATAN2_TOLERANCE, 0},
+{ 494, 3189496738u, 4063688092u, 3203235744u, 1049950343u, 3221823934u, 3816398185u, 0, ATAN2_TOLERANCE, 0},
+{ 495, 1062350619u, 650996069u, 1054971928u, 3953359826u, 1073283845u, 959751544u, 0, ATAN2_TOLERANCE, 0},
+{ 496, 3227055805u, 66926332u, 1090561839u, 1379780888u, 3209165854u, 1292588262u, 0, ATAN2_TOLERANCE, 0},
+{ 497, 3233453307u, 2803378256u, 1086057989u, 498534626u, 3219675001u, 3783008083u, 0, ATAN2_TOLERANCE, 0},
+{ 498, 1082618553u, 2846400785u, 1047142525u, 1375153550u, 1073291771u, 1413462044u, 0, ATAN2_TOLERANCE, 0},
+{ 499, 1044581201u, 2869128958u, 1070972315u, 4246440273u, 1046218742u, 3600433113u, 0, ATAN2_TOLERANCE, 0},
+{ 500, 1051832506u, 3112381207u, 1044430965u, 3981604561u, 1073284014u, 394367749u, 0, ATAN2_TOLERANCE, 0},
+{ 501, 3231254997u, 243303420u, 1093735824u, 1575581926u, 3210179336u, 3523569011u, 0, ATAN2_TOLERANCE, 0},
+{ 502, 3239137997u, 3218865041u, 3204803496u, 3840388050u, 3220775419u, 1414402421u, 0, ATAN2_TOLERANCE, 0},
+{ 503, 1048415431u, 336846959u, 1052664471u, 3798336786u, 1068438792u, 192900885u, 0, ATAN2_TOLERANCE, 0},
+{ 504, 1055954236u, 3639240976u, 1081202165u, 1844741676u, 1047380116u, 1418730997u, 0, ATAN2_TOLERANCE, 0},
+{ 505, 3211904793u, 717293069u, 3211534283u, 582401011u, 3221351312u, 3588680507u, 0, ATAN2_TOLERANCE, 0},
+{ 506, 3251962512u, 3766248610u, 3196520332u, 1174437546u, 3220775419u, 1413754137u, 0, ATAN2_TOLERANCE, 0},
+{ 507, 1083431226u, 756959182u, 3204099341u, 1581804034u, 1073291771u, 1503946902u, 0, ATAN2_TOLERANCE, 0},
+{ 508, 3205806444u, 3560686300u, 3220980617u, 4277975772u, 3221823971u, 3716500468u, 0, ATAN2_TOLERANCE, 0},
+{ 509, 3209906076u, 2598148853u, 3217622194u, 3460421008u, 3221820838u, 3835685689u, 0, ATAN2_TOLERANCE, 0},
+{ 510, 1066720824u, 136600515u, 3209934920u, 3340653128u, 1073353629u, 2620328931u, 0, ATAN2_TOLERANCE, 0},
+{ 511, 1096820310u, 1045480938u, 3251354609u, 4133432965u, 1074335577u, 920847588u, 0, ATAN2_TOLERANCE, 0},
+{ 512, 1091599431u, 1630207738u, 3239996829u, 2393354808u, 1074080031u, 3469111725u, 0, ATAN2_TOLERANCE, 0},
+{ 513, 3190626018u, 3739770117u, 1059520750u, 3959551225u, 3203677087u, 531400053u, 0, ATAN2_TOLERANCE, 0},
+{ 514, 3230730505u, 1498861716u, 1091297147u, 847410798u, 3212021431u, 3055804927u, 0, ATAN2_TOLERANCE, 0},
+{ 515, 1073516688u, 983275314u, 3232538664u, 2244973629u, 1074340091u, 3753688227u, 0, ATAN2_TOLERANCE, 0},
+{ 516, 1054849265u, 2353103845u, 3235718771u, 2978889966u, 1074340347u, 1413183585u, 0, ATAN2_TOLERANCE, 0},
+{ 517, 3251357992u, 1546972125u, 3249076079u, 1987349196u, 3221007119u, 1196948856u, 0, ATAN2_TOLERANCE, 0},
+{ 518, 3238219513u, 2769161072u, 1075207126u, 292616282u, 3220775382u, 1176824223u, 0, ATAN2_TOLERANCE, 0},
+{ 519, 3199712298u, 36855311u, 1052128202u, 1479039342u, 3219796789u, 1538651707u, 0, ATAN2_TOLERANCE, 0},
+{ 520, 1083757053u, 2027463605u, 1066023013u, 3369686340u, 1073291762u, 3770602758u, 0, ATAN2_TOLERANCE, 0},
+{ 521, 3197852749u, 3808681655u, 1054161346u, 1821773119u, 3216282753u, 3281781855u, 0, ATAN2_TOLERANCE, 0},
+{ 522, 1040685928u, 3175490326u, 3226879970u, 845687760u, 1074340347u, 1413736777u, 0, ATAN2_TOLERANCE, 0},
+{ 523, 1042302993u, 3124482451u, 3242748377u, 3259417226u, 1074340347u, 1413754135u, 0, ATAN2_TOLERANCE, 0},
+{ 524, 1045245695u, 2751606436u, 3236210939u, 3923142740u, 1074340347u, 1413753413u, 0, ATAN2_TOLERANCE, 0},
+{ 525, 1095694737u, 2016872044u, 3228408064u, 4201274408u, 1073291832u, 2077035738u, 0, ATAN2_TOLERANCE, 0},
+{ 526, 3199349254u, 1019916843u, 3219974785u, 1977881787u, 3221823994u, 3006114625u, 0, ATAN2_TOLERANCE, 0},
+{ 527, 3199478752u, 2060433318u, 1075872515u, 366073725u, 3196292051u, 3745275776u, 0, ATAN2_TOLERANCE, 0},
+{ 528, 3191180557u, 1098469906u, 1082900695u, 2349346832u, 3180910912u, 1878107189u, 0, ATAN2_TOLERANCE, 0},
+{ 529, 3209974707u, 3011196295u, 3252479932u, 2459281672u, 3221823995u, 1413752696u, 0, ATAN2_TOLERANCE, 0},
+{ 530, 3221334323u, 2843222682u, 1089275809u, 298982001u, 3204675530u, 1916238001u, 0, ATAN2_TOLERANCE, 0},
+{ 531, 1101737698u, 914741728u, 3203468059u, 2833809843u, 1073291771u, 1413754457u, 0, ATAN2_TOLERANCE, 0},
+{ 532, 3236763878u, 1274901962u, 3241535845u, 3759113509u, 3221802250u, 4147736145u, 0, ATAN2_TOLERANCE, 0},
+{ 533, 3245916442u, 2134927252u, 3253802671u, 3013731444u, 3221821028u, 2832318322u, 0, ATAN2_TOLERANCE, 0},
+{ 534, 1099201341u, 2230655177u, 3254510616u, 1249674366u, 1074337339u, 2213018396u, 0, ATAN2_TOLERANCE, 0},
+{ 535, 1062971253u, 717357389u, 1083533731u, 3746683362u, 1052027372u, 2137620050u, 0, ATAN2_TOLERANCE, 0},
+{ 536, 3213773114u, 834976849u, 3217357661u, 2465861779u, 3221776824u, 2068034092u, 0, ATAN2_TOLERANCE, 0},
+{ 537, 1045656117u, 1385714428u, 1053358395u, 3007113740u, 1064889029u, 3113089001u, 0, ATAN2_TOLERANCE, 0},
+{ 538, 1050527919u, 599268545u, 3201368210u, 2309854744u, 1074283173u, 929217064u, 0, ATAN2_TOLERANCE, 0},
+{ 539, 1069954454u, 2840234388u, 3232496515u, 333365983u, 1074340321u, 3999351917u, 0, ATAN2_TOLERANCE, 0},
+{ 540, 1045922781u, 3136078996u, 3194520860u, 2650572904u, 1074105927u, 590486715u, 0, ATAN2_TOLERANCE, 0},
+{ 541, 3233687691u, 2405805086u, 3251640319u, 324233833u, 3221823991u, 2496769912u, 0, ATAN2_TOLERANCE, 0},
+{ 542, 1106699146u, 2589598340u, 3254677807u, 952438812u, 1074002337u, 362953818u, 0, ATAN2_TOLERANCE, 0},
+{ 543, 3189114773u, 1922837702u, 3216892718u, 3535907549u, 3221823995u, 1389021617u, 0, ATAN2_TOLERANCE, 0},
+{ 544, 3243615868u, 261447440u, 3209805849u, 1150571079u, 3220775419u, 1414613829u, 0, ATAN2_TOLERANCE, 0},
+{ 545, 1095805232u, 4026487528u, 1073152064u, 27340691u, 1073291770u, 4226382170u, 0, ATAN2_TOLERANCE, 0},
+{ 546, 3229123692u, 338765118u, 1086225786u, 3207238249u, 3215570352u, 202287484u, 0, ATAN2_TOLERANCE, 0},
+{ 547, 3196182703u, 1085283176u, 3187775111u, 1601194210u, 3220779448u, 4046094648u, 0, ATAN2_TOLERANCE, 0},
+{ 548, 1091520173u, 3031712790u, 3252307859u, 170666844u, 1074340271u, 691217786u, 0, ATAN2_TOLERANCE, 0},
+{ 549, 3218862231u, 3148395674u, 1041913758u, 3306391490u, 3220775419u, 1397936212u, 0, ATAN2_TOLERANCE, 0},
+{ 550, 3201277070u, 2205233857u, 3208100078u, 3993195511u, 3221818537u, 1523568185u, 0, ATAN2_TOLERANCE, 0},
+{ 551, 1067699608u, 4282766727u, 1072820377u, 1874778218u, 1067558816u, 3460237978u, 0, ATAN2_TOLERANCE, 0},
+{ 552, 3210833092u, 2920860798u, 3218070226u, 3104066154u, 3221819514u, 1434032788u, 0, ATAN2_TOLERANCE, 0},
+{ 553, 3204950351u, 969991373u, 3250596895u, 1734386152u, 3221823995u, 1413753949u, 0, ATAN2_TOLERANCE, 0},
+{ 554, 3238915818u, 1218740205u, 3239802737u, 2610078504u, 3221562416u, 2532873783u, 0, ATAN2_TOLERANCE, 0},
+{ 555, 3206031242u, 1485218325u, 3220870240u, 3591664613u, 3221823966u, 1068911363u, 0, ATAN2_TOLERANCE, 0},
+{ 556, 3202074143u, 690157417u, 3190850619u, 4192347699u, 3220776028u, 1200694377u, 0, ATAN2_TOLERANCE, 0},
+{ 557, 1096053810u, 4009839784u, 1079670252u, 394167192u, 1073291750u, 2707627380u, 0, ATAN2_TOLERANCE, 0},
+{ 558, 3234559237u, 961532417u, 1092588071u, 2923790239u, 3214660300u, 2118714483u, 0, ATAN2_TOLERANCE, 0},
+{ 559, 3203879091u, 4174125604u, 1050682630u, 2169701868u, 3220752732u, 2940092767u, 0, ATAN2_TOLERANCE, 0},
+{ 560, 3243092475u, 4146748230u, 1087373950u, 2481478351u, 3220770998u, 473091542u, 0, ATAN2_TOLERANCE, 0},
+{ 561, 1076987866u, 3984715440u, 1050421618u, 2446142566u, 1073291771u, 1305948110u, 0, ATAN2_TOLERANCE, 0},
+{ 562, 1084172406u, 936290150u, 1100614426u, 3625806370u, 1056121962u, 2155693925u, 0, ATAN2_TOLERANCE, 0},
+{ 563, 1099787952u, 1866615265u, 3215651428u, 2337013350u, 1073291771u, 1417594236u, 0, ATAN2_TOLERANCE, 0},
+{ 564, 3253198302u, 712227971u, 1106004723u, 973148499u, 3219549310u, 1137203995u, 0, ATAN2_TOLERANCE, 0},
+{ 565, 3230088199u, 3409813738u, 3244817008u, 1933503498u, 3221823964u, 1382018570u, 0, ATAN2_TOLERANCE, 0},
+{ 566, 1079943733u, 3180389060u, 3228735703u, 83422217u, 1074135537u, 1233729334u, 0, ATAN2_TOLERANCE, 0},
+{ 567, 1077878724u, 556972671u, 3204582372u, 841555801u, 1073291772u, 2099425605u, 0, ATAN2_TOLERANCE, 0},
+{ 568, 1070767721u, 4189151332u, 1080874032u, 706326922u, 1062513334u, 56068251u, 0, ATAN2_TOLERANCE, 0},
+{ 569, 1096151307u, 198291836u, 1057281892u, 2188836928u, 1073291771u, 1413723011u, 0, ATAN2_TOLERANCE, 0},
+{ 570, 1078091995u, 1219449298u, 3228734687u, 3504562743u, 1074275855u, 1050043332u, 0, ATAN2_TOLERANCE, 0},
+{ 571, 3204570464u, 1776099219u, 1094316777u, 4188083896u, 3182823388u, 104028836u, 0, ATAN2_TOLERANCE, 0},
+{ 572, 3193845708u, 2614400266u, 1073750227u, 3003203347u, 3192781387u, 1626220884u, 0, ATAN2_TOLERANCE, 0},
+{ 573, 3213982678u, 2959351406u, 1105603716u, 311851587u, 3180936001u, 2419673162u, 0, ATAN2_TOLERANCE, 0},
+{ 574, 1084544434u, 865443613u, 1097532516u, 3622237781u, 1059630438u, 3464345415u, 0, ATAN2_TOLERANCE, 0},
+{ 575, 3231786666u, 447506102u, 3195759295u, 3603669725u, 3220775419u, 1413963663u, 0, ATAN2_TOLERANCE, 0},
+{ 576, 1097890173u, 3934398273u, 1040996422u, 2968621268u, 1073291771u, 1413754136u, 0, ATAN2_TOLERANCE, 0},
+{ 577, 3196739825u, 784208771u, 1088764788u, 2182296421u, 3180585169u, 3597293877u, 0, ATAN2_TOLERANCE, 0},
+{ 578, 3248332291u, 1527590526u, 3206961556u, 2823164069u, 3220775419u, 1413760318u, 0, ATAN2_TOLERANCE, 0},
+{ 579, 3236644131u, 3876699591u, 3207481130u, 4028148535u, 3220775419u, 1432381898u, 0, ATAN2_TOLERANCE, 0},
+{ 580, 1083576186u, 2164249756u, 1059857743u, 1785169952u, 1073291771u, 728789785u, 0, ATAN2_TOLERANCE, 0},
+{ 581, 1091804009u, 2079273665u, 1080303860u, 625760474u, 1073291245u, 3038388733u, 0, ATAN2_TOLERANCE, 0},
+{ 582, 3226486108u, 3636214836u, 1068367620u, 2932621925u, 3220774475u, 1873701732u, 0, ATAN2_TOLERANCE, 0},
+{ 583, 1043995372u, 4274131512u, 1047707755u, 92550763u, 1068906481u, 294299579u, 0, ATAN2_TOLERANCE, 0},
+{ 584, 3198822121u, 2648933384u, 1084603503u, 3534304873u, 3186835493u, 2577112950u, 0, ATAN2_TOLERANCE, 0},
+{ 585, 1064563235u, 3216750767u, 3191088629u, 547482628u, 1073291772u, 1457340120u, 0, ATAN2_TOLERANCE, 0},
+{ 586, 1061084774u, 1420360746u, 1080063101u, 1690029499u, 1053688799u, 141831638u, 0, ATAN2_TOLERANCE, 0},
+{ 587, 3229855364u, 1908572179u, 1080112083u, 1228319033u, 3220549842u, 2563506636u, 0, ATAN2_TOLERANCE, 0},
+{ 588, 1048158178u, 500312015u, 3212368508u, 3864619086u, 1074340339u, 347747626u, 0, ATAN2_TOLERANCE, 0},
+{ 589, 3221335610u, 4211343447u, 1087492676u, 4272583781u, 3206528841u, 3354973379u, 0, ATAN2_TOLERANCE, 0},
+{ 590, 1099392394u, 2382118000u, 1042665328u, 567154882u, 1073291771u, 1413754136u, 0, ATAN2_TOLERANCE, 0},
+{ 591, 1058013442u, 1435344339u, 3216303171u, 2275988178u, 1074339955u, 491143107u, 0, ATAN2_TOLERANCE, 0},
+{ 592, 3214538619u, 3403659753u, 3218043030u, 1926480488u, 3221770058u, 4164466189u, 0, ATAN2_TOLERANCE, 0},
+{ 593, 1076840383u, 1198845185u, 3225556149u, 1130089684u, 1074126327u, 3636244148u, 0, ATAN2_TOLERANCE, 0},
+{ 594, 3222663042u, 2183928090u, 1048403956u, 963834821u, 3220775419u, 1323885970u, 0, ATAN2_TOLERANCE, 0},
+{ 595, 1101672960u, 2120625396u, 1041006976u, 2137548527u, 1073291771u, 1413754136u, 0, ATAN2_TOLERANCE, 0},
+{ 596, 1099230238u, 586700956u, 1059670521u, 303891699u, 1073291771u, 1413734333u, 0, ATAN2_TOLERANCE, 0},
+{ 597, 3218994498u, 2509132460u, 1102827530u, 2205707903u, 3188800500u, 294117429u, 0, ATAN2_TOLERANCE, 0},
+{ 598, 3204860597u, 1229308263u, 3209170414u, 4206576047u, 3221793662u, 1326681588u, 0, ATAN2_TOLERANCE, 0},
+{ 599, 3224076289u, 4078010749u, 3199236456u, 733478972u, 3220775419u, 1735373547u, 0, ATAN2_TOLERANCE, 0},
+{ 600, 3197712584u, 4277541051u, 3199806921u, 397102023u, 3221695345u, 1984385336u, 0, ATAN2_TOLERANCE, 0},
+{ 601, 3195975013u, 900999594u, 3234720188u, 2530214248u, 3221823995u, 1413737317u, 0, ATAN2_TOLERANCE, 0},
+{ 602, 1076543548u, 4000609478u, 1096577064u, 4148592328u, 1052645882u, 3518566757u, 0, ATAN2_TOLERANCE, 0},
+{ 603, 1048668084u, 2154187873u, 3224392607u, 3957250362u, 1074340347u, 1395868720u, 0, ATAN2_TOLERANCE, 0},
+{ 604, 3223413488u, 2867079200u, 1101870326u, 921212001u, 3194162327u, 3750694524u, 0, ATAN2_TOLERANCE, 0},
+{ 605, 3233221890u, 674547716u, 1063216239u, 3929755226u, 3220775418u, 4246419046u, 0, ATAN2_TOLERANCE, 0},
+{ 606, 3240415851u, 3158182449u, 1043794244u, 3259056345u, 3220775419u, 1413754101u, 0, ATAN2_TOLERANCE, 0},
+{ 607, 3236776656u, 3002823940u, 1059511739u, 2832435794u, 3220775419u, 1400657488u, 0, ATAN2_TOLERANCE, 0},
+{ 608, 3217304822u, 2196511929u, 1049973941u, 3672092877u, 3220775417u, 921891724u, 0, ATAN2_TOLERANCE, 0},
+{ 609, 1050438056u, 3655292191u, 1086438127u, 3567072906u, 1036624858u, 475016719u, 0, ATAN2_TOLERANCE, 0},
+{ 610, 3243186948u, 1617573614u, 3201863123u, 3090723732u, 3220775419u, 1413760603u, 0, ATAN2_TOLERANCE, 0},
+{ 611, 3233201380u, 679893506u, 3211547753u, 824081024u, 3220775419u, 4089363966u, 0, ATAN2_TOLERANCE, 0},
+{ 612, 1089530525u, 2285242807u, 1084999409u, 2221731406u, 1073238012u, 3737306125u, 0, ATAN2_TOLERANCE, 0},
+{ 613, 3206733664u, 1935990727u, 1088822246u, 1058156518u, 3190509777u, 202615889u, 0, ATAN2_TOLERANCE, 0},
+{ 614, 1102839166u, 521023584u, 1059186903u, 4245163857u, 1073291771u, 1413752826u, 0, ATAN2_TOLERANCE, 0},
+{ 615, 1103891140u, 2312887617u, 3191771354u, 1885370807u, 1073291771u, 1413754136u, 0, ATAN2_TOLERANCE, 0},
+{ 616, 3252953815u, 1796441468u, 1100030327u, 2772711004u, 3220747548u, 2609071137u, 0, ATAN2_TOLERANCE, 0},
+{ 617, 3204276820u, 2095685003u, 1077984448u, 2100773742u, 3198949108u, 3506668202u, 0, ATAN2_TOLERANCE, 0},
+{ 618, 3192954620u, 2892538035u, 1042396334u, 4162200338u, 3220636609u, 2779526109u, 0, ATAN2_TOLERANCE, 0},
+{ 619, 3242725751u, 2177698116u, 3227557177u, 150832500u, 3220775463u, 2181727803u, 0, ATAN2_TOLERANCE, 0},
+{ 620, 3191562216u, 607966734u, 3236250630u, 4164600559u, 3221823995u, 1413753807u, 0, ATAN2_TOLERANCE, 0},
+{ 621, 3216389812u, 2830122967u, 1046096700u, 3713346883u, 3220775419u, 148829918u, 0, ATAN2_TOLERANCE, 0},
+{ 622, 3237197963u, 2314640506u, 3203696416u, 3276228872u, 3220775419u, 1414845619u, 0, ATAN2_TOLERANCE, 0},
+{ 623, 3212912307u, 469331883u, 3249037349u, 2999233437u, 3221823995u, 1413661911u, 0, ATAN2_TOLERANCE, 0},
+{ 624, 1097382011u, 560886625u, 1091899487u, 748795120u, 1073263856u, 4163257255u, 0, ATAN2_TOLERANCE, 0},
+{ 625, 1049886858u, 2958421324u, 1092569414u, 3235243477u, 1029993820u, 2650395805u, 0, ATAN2_TOLERANCE, 0},
+{ 626, 3193026497u, 3221475559u, 1043038304u, 915608434u, 3220574466u, 4033073907u, 0, ATAN2_TOLERANCE, 0},
+{ 627, 1071197530u, 3007808652u, 3216682290u, 2531019474u, 1073563291u, 393357359u, 0, ATAN2_TOLERANCE, 0},
+{ 628, 3242028999u, 1767658578u, 3237045269u, 2313128318u, 3220814119u, 4061758705u, 0, ATAN2_TOLERANCE, 0},
+{ 629, 3210617892u, 1926845182u, 1066835624u, 1783256828u, 3216328042u, 4025987202u, 0, ATAN2_TOLERANCE, 0},
+{ 630, 1040575629u, 90378038u, 1057168870u, 164358218u, 1056070011u, 3438784268u, 0, ATAN2_TOLERANCE, 0},
+{ 631, 1106859172u, 1610524680u, 1085283851u, 2903496007u, 1073291770u, 2975921270u, 0, ATAN2_TOLERANCE, 0},
+{ 632, 1078635586u, 4274321404u, 3202913591u, 720121831u, 1073291771u, 2403360128u, 0, ATAN2_TOLERANCE, 0},
+{ 633, 1051205256u, 2034778236u, 1071133763u, 1413236391u, 1052762949u, 1804888531u, 0, ATAN2_TOLERANCE, 0},
+{ 634, 1051063028u, 1489112261u, 1076691395u, 348210906u, 1047017153u, 543502372u, 0, ATAN2_TOLERANCE, 0},
+{ 635, 3206743917u, 2797651324u, 3224410527u, 2374818327u, 3221823990u, 3194962175u, 0, ATAN2_TOLERANCE, 0},
+{ 636, 1088287256u, 1823161666u, 3197810695u, 3119680047u, 1073291771u, 1413812610u, 0, ATAN2_TOLERANCE, 0},
+{ 637, 1065927336u, 3420950657u, 1087084743u, 2136638961u, 1051506182u, 645526797u, 0, ATAN2_TOLERANCE, 0},
+{ 638, 1069902224u, 3554566429u, 1062907717u, 2736702589u, 1073281562u, 2426331355u, 0, ATAN2_TOLERANCE, 0},
+{ 639, 3244888667u, 2928437580u, 3187765027u, 1393427873u, 3220775419u, 1413754136u, 0, ATAN2_TOLERANCE, 0},
+{ 640, 3209301561u, 189447067u, 1051643315u, 828663513u, 3220774208u, 3143699731u, 0, ATAN2_TOLERANCE, 0},
+{ 641, 1052313869u, 2852350928u, 1045683757u, 673354280u, 1073278769u, 3336064018u, 0, ATAN2_TOLERANCE, 0},
+{ 642, 1043946301u, 3589563265u, 3248741629u, 812657927u, 1074340347u, 1413754136u, 0, ATAN2_TOLERANCE, 0},
+{ 643, 3190610826u, 1766416701u, 1100392103u, 2185373290u, 3162792535u, 3345390793u, 0, ATAN2_TOLERANCE, 0},
+{ 644, 3220275389u, 3763582673u, 3191965790u, 388374829u, 3220775419u, 1447365675u, 0, ATAN2_TOLERANCE, 0},
+{ 645, 1079635136u, 1187403069u, 1075300235u, 336640304u, 1073231724u, 1380720998u, 0, ATAN2_TOLERANCE, 0},
+{ 646, 1103926251u, 1718795752u, 3243118752u, 683369237u, 1073296080u, 1944358343u, 0, ATAN2_TOLERANCE, 0},
+{ 647, 3210792097u, 1863545307u, 1069449477u, 3418627399u, 3213991705u, 3440225918u, 0, ATAN2_TOLERANCE, 0},
+{ 648, 1069601294u, 3295607249u, 1068878592u, 1633297809u, 1072684782u, 1392514266u, 0, ATAN2_TOLERANCE, 0},
+{ 649, 1058947127u, 2585980994u, 3236670483u, 1286750688u, 1074340347u, 1409168979u, 0, ATAN2_TOLERANCE, 0},
+{ 650, 1046157033u, 15816845u, 3233249283u, 2491924775u, 1074340347u, 1413744680u, 0, ATAN2_TOLERANCE, 0},
+{ 651, 1042413021u, 1051983351u, 1049180786u, 1474421917u, 1065797572u, 550508248u, 0, ATAN2_TOLERANCE, 0},
+{ 652, 3201249525u, 2003816032u, 1086050104u, 668090487u, 3187798553u, 386045479u, 0, ATAN2_TOLERANCE, 0},
+{ 653, 1052556037u, 3671484625u, 1067020039u, 430024694u, 1058149106u, 738340401u, 0, ATAN2_TOLERANCE, 0},
+{ 654, 1067397110u, 3991830201u, 3207808714u, 1021245839u, 1073301897u, 3275314629u, 0, ATAN2_TOLERANCE, 0},
+{ 655, 1064194391u, 4255801807u, 3207681716u, 1926756877u, 1073366603u, 4187390466u, 0, ATAN2_TOLERANCE, 0},
+{ 656, 1052140785u, 4167786896u, 1077097744u, 1775517981u, 1047701412u, 2769143733u, 0, ATAN2_TOLERANCE, 0},
+{ 657, 1085601978u, 3187518564u, 1082437406u, 944672491u, 1073163145u, 2304339909u, 0, ATAN2_TOLERANCE, 0},
+{ 658, 1049366282u, 953085192u, 3227310828u, 3459155777u, 1074340347u, 1409675598u, 0, ATAN2_TOLERANCE, 0},
+{ 659, 1069502506u, 1908555460u, 1073640207u, 260441967u, 1068527205u, 3011997510u, 0, ATAN2_TOLERANCE, 0},
+{ 660, 1067219606u, 250762477u, 1072582645u, 2886742039u, 1067322952u, 2531443543u, 0, ATAN2_TOLERANCE, 0},
+{ 661, 3250906006u, 786180031u, 3197734769u, 2788918312u, 3220775419u, 1413754139u, 0, ATAN2_TOLERANCE, 0},
+{ 662, 3234511827u, 2055912467u, 3244244909u, 1394142937u, 3221823119u, 1223534454u, 0, ATAN2_TOLERANCE, 0},
+{ 663, 1069612985u, 91984146u, 3222252812u, 4126276047u, 1074322768u, 4161006152u, 0, ATAN2_TOLERANCE, 0},
+{ 664, 1081340139u, 3942715706u, 3239316352u, 410676547u, 1074339837u, 4214439887u, 0, ATAN2_TOLERANCE, 0},
+{ 665, 3198557846u, 86296211u, 1085850694u, 649202596u, 3185349731u, 1378952538u, 0, ATAN2_TOLERANCE, 0},
+{ 666, 3245366392u, 3069064472u, 3237358008u, 23209276u, 3220780967u, 3151936427u, 0, ATAN2_TOLERANCE, 0},
+{ 667, 1081235288u, 1867297860u, 1072956607u, 2513414118u, 1073287300u, 3286497747u, 0, ATAN2_TOLERANCE, 0},
+{ 668, 3250533347u, 3171788768u, 3235208783u, 162138697u, 3220775463u, 678532829u, 0, ATAN2_TOLERANCE, 0},
+{ 669, 1081728455u, 1245110700u, 1081653954u, 2584994077u, 1072290306u, 1387932236u, 0, ATAN2_TOLERANCE, 0},
+{ 670, 3245510120u, 3347226587u, 1058962932u, 2291943376u, 3220775419u, 1413727211u, 0, ATAN2_TOLERANCE, 0},
+{ 671, 1058899062u, 966940828u, 1060726420u, 2798041096u, 1070733396u, 2152071558u, 0, ATAN2_TOLERANCE, 0},
+{ 672, 1072793759u, 2487340727u, 3223786370u, 4105954991u, 1074290700u, 4010416330u, 0, ATAN2_TOLERANCE, 0},
+{ 673, 3248116497u, 1671039260u, 1086395032u, 3745833360u, 3220775336u, 1353975065u, 0, ATAN2_TOLERANCE, 0},
+{ 674, 1057078797u, 651714217u, 1047070645u, 2130549237u, 1073290326u, 3091630475u, 0, ATAN2_TOLERANCE, 0},
+{ 675, 3207115731u, 1423000172u, 3247822717u, 1551488170u, 3221823995u, 1413749504u, 0, ATAN2_TOLERANCE, 0},
+{ 676, 3201597307u, 921077236u, 3213332351u, 1431049019u, 3221823772u, 2602079138u, 0, ATAN2_TOLERANCE, 0},
+{ 677, 1067510295u, 655715547u, 3190985373u, 1527556471u, 1073291771u, 2003260141u, 0, ATAN2_TOLERANCE, 0},
+{ 678, 3227654979u, 4110878657u, 3251297180u, 879739345u, 3221823995u, 1051816922u, 0, ATAN2_TOLERANCE, 0},
+{ 679, 1085804762u, 2623955764u, 1093699897u, 1216444475u, 1064782100u, 2170004731u, 0, ATAN2_TOLERANCE, 0},
+{ 680, 1091905603u, 107442539u, 3239767031u, 1149813329u, 1073991133u, 3276387394u, 0, ATAN2_TOLERANCE, 0},
+{ 681, 3233445240u, 1761361082u, 3226030205u, 1121849716u, 3220783256u, 3628350787u, 0, ATAN2_TOLERANCE, 0},
+{ 682, 3240087115u, 2534144722u, 1044223733u, 3512285706u, 3220775419u, 1413754077u, 0, ATAN2_TOLERANCE, 0},
+{ 683, 3211846077u, 4073670723u, 1050729852u, 3034818849u, 3220775291u, 1955003682u, 0, ATAN2_TOLERANCE, 0},
+{ 684, 1101984574u, 1421423503u, 1060278048u, 1397153092u, 1073291771u, 1413749224u, 0, ATAN2_TOLERANCE, 0},
+{ 685, 3217421829u, 1649206019u, 1104525577u, 1267104290u, 3185585387u, 586885303u, 0, ATAN2_TOLERANCE, 0},
+{ 686, 3189302097u, 3775270392u, 1040251850u, 68667319u, 3220430633u, 299595201u, 0, ATAN2_TOLERANCE, 0},
+{ 687, 3204330900u, 3099226694u, 3254103006u, 4020102648u, 3221823995u, 1413754125u, 0, ATAN2_TOLERANCE, 0},
+{ 688, 3201591712u, 3718441177u, 3215643451u, 4032951536u, 3221823946u, 2698546149u, 0, ATAN2_TOLERANCE, 0},
+{ 689, 1044131371u, 508048351u, 3210196713u, 1707937896u, 1074340344u, 4091089530u, 0, ATAN2_TOLERANCE, 0},
+{ 690, 3198611627u, 2784738160u, 1073435430u, 1109346010u, 3197820279u, 3513523264u, 0, ATAN2_TOLERANCE, 0},
+{ 691, 3225725290u, 3331916473u, 3238794568u, 2707019594u, 3221823901u, 665368638u, 0, ATAN2_TOLERANCE, 0},
+{ 692, 1093182670u, 3093165197u, 1072894805u, 2853215019u, 1073291769u, 3354646889u, 0, ATAN2_TOLERANCE, 0},
+{ 693, 3216582139u, 2135797997u, 1048399559u, 2941926126u, 3220775418u, 703396355u, 0, ATAN2_TOLERANCE, 0},
+{ 694, 1048430980u, 2083412145u, 3249335391u, 507212448u, 1074340347u, 1413754135u, 0, ATAN2_TOLERANCE, 0},
+{ 695, 1075363751u, 4270176401u, 3246546709u, 3288753319u, 1074340347u, 1052137291u, 0, ATAN2_TOLERANCE, 0},
+{ 696, 3247932863u, 3692175292u, 3197271515u, 3989064196u, 3220775419u, 1413754149u, 0, ATAN2_TOLERANCE, 0},
+{ 697, 3251691738u, 3111924274u, 1066772558u, 59281695u, 3220775419u, 1413670044u, 0, ATAN2_TOLERANCE, 0},
+{ 698, 1067683911u, 2135245466u, 3208804313u, 3846547392u, 1073307236u, 3521042184u, 0, ATAN2_TOLERANCE, 0},
+{ 699, 1094877811u, 972051266u, 3222814246u, 3539700586u, 1073291773u, 4074425891u, 0, ATAN2_TOLERANCE, 0},
+{ 700, 3202965930u, 330951080u, 1079189813u, 583922384u, 3196402333u, 892154681u, 0, ATAN2_TOLERANCE, 0},
+{ 701, 1089640092u, 1711944085u, 1104170032u, 643991456u, 1058160566u, 3592673961u, 0, ATAN2_TOLERANCE, 0},
+{ 702, 3234429549u, 2072550721u, 3250147641u, 4280263530u, 3221823979u, 976904869u, 0, ATAN2_TOLERANCE, 0},
+{ 703, 3192972706u, 1566376352u, 1067251433u, 72984588u, 3198331639u, 58854265u, 0, ATAN2_TOLERANCE, 0},
+{ 704, 1095276569u, 3103043079u, 1045853123u, 410067497u, 1073291771u, 1413754107u, 0, ATAN2_TOLERANCE, 0},
+{ 705, 3216672493u, 1910366299u, 1081770885u, 634683073u, 3207594510u, 1614453351u, 0, ATAN2_TOLERANCE, 0},
+{ 706, 1081530688u, 2226525875u, 3224149290u, 2126302825u, 1073332786u, 2544037221u, 0, ATAN2_TOLERANCE, 0},
+{ 707, 1073150247u, 1383818978u, 3193885723u, 1220372650u, 1073291771u, 1503809650u, 0, ATAN2_TOLERANCE, 0},
+{ 708, 1066482943u, 1953339096u, 1077176252u, 1476516558u, 1061882003u, 4129058843u, 0, ATAN2_TOLERANCE, 0},
+{ 709, 1066092000u, 1306277326u, 1079089150u, 4093716191u, 1059638635u, 2919242557u, 0, ATAN2_TOLERANCE, 0},
+{ 710, 3233148787u, 51750045u, 3242913901u, 4256866157u, 3221823161u, 2290088398u, 0, ATAN2_TOLERANCE, 0},
+{ 711, 3195084967u, 2163853087u, 3232053146u, 2962422808u, 3221823995u, 1413701232u, 0, ATAN2_TOLERANCE, 0},
+{ 712, 1075516945u, 1618388148u, 3233154824u, 3711953164u, 1074339717u, 3204214582u, 0, ATAN2_TOLERANCE, 0},
+{ 713, 3246868002u, 357108214u, 3202294604u, 2306775262u, 3220775419u, 1413754821u, 0, ATAN2_TOLERANCE, 0},
+{ 714, 3201904086u, 2571356437u, 3249064063u, 2394851808u, 3221823995u, 1413754071u, 0, ATAN2_TOLERANCE, 0},
+{ 715, 3230488091u, 4273880094u, 1103698617u, 3578832032u, 3199382139u, 1688527123u, 0, ATAN2_TOLERANCE, 0},
+{ 716, 3233426701u, 2091068742u, 3228270226u, 3980489730u, 3220809825u, 1922530241u, 0, ATAN2_TOLERANCE, 0},
+{ 717, 3229016752u, 2772307714u, 1051008486u, 32546576u, 3220775419u, 1406013846u, 0, ATAN2_TOLERANCE, 0},
+{ 718, 3241229215u, 2143788498u, 3195498043u, 3630119231u, 3220775419u, 1413754484u, 0, ATAN2_TOLERANCE, 0},
+{ 719, 3198632935u, 2527385594u, 3240503648u, 3482095012u, 3221823995u, 1413751986u, 0, ATAN2_TOLERANCE, 0},
+{ 720, 3242168799u, 2690097362u, 1068598730u, 2360266862u, 3220775419u, 1264760787u, 0, ATAN2_TOLERANCE, 0},
+{ 721, 1058857869u, 2673272949u, 1082639557u, 522449749u, 1048801884u, 2557353137u, 0, ATAN2_TOLERANCE, 0},
+{ 722, 1104424147u, 3596379400u, 3242016775u, 2002293002u, 1073293255u, 4018883609u, 0, ATAN2_TOLERANCE, 0},
+{ 723, 1099439656u, 4113224369u, 3222122439u, 2152316893u, 1073291771u, 1744171590u, 0, ATAN2_TOLERANCE, 0},
+{ 724, 3220796716u, 31662602u, 1047721249u, 1747087514u, 3220775419u, 1213858796u, 0, ATAN2_TOLERANCE, 0},
+{ 725, 3250463757u, 2489659568u, 1097051253u, 277506957u, 3220754033u, 3507098293u, 0, ATAN2_TOLERANCE, 0},
+{ 726, 3191401834u, 3850162281u, 3213841942u, 438724093u, 3221823995u, 559612876u, 0, ATAN2_TOLERANCE, 0},
+{ 727, 1095392535u, 2431814052u, 1075518084u, 2672434118u, 1073291769u, 1172661418u, 0, ATAN2_TOLERANCE, 0},
+{ 728, 3243162735u, 391606792u, 1048184750u, 4168944276u, 3220775419u, 1413754028u, 0, ATAN2_TOLERANCE, 0},
+{ 729, 3247792416u, 457529672u, 3201090276u, 72407935u, 3220775419u, 1413754308u, 0, ATAN2_TOLERANCE, 0},
+{ 730, 3218720719u, 3954981400u, 1052053242u, 2411049585u, 3220775416u, 265482486u, 0, ATAN2_TOLERANCE, 0},
+{ 731, 1086180091u, 485456950u, 1088415093u, 1655397424u, 1070423314u, 2140711951u, 0, ATAN2_TOLERANCE, 0},
+{ 732, 3198234428u, 1551748070u, 3236871640u, 1329701152u, 3221823995u, 1413735819u, 0, ATAN2_TOLERANCE, 0},
+{ 733, 3224639122u, 3099222537u, 1104984570u, 4293792842u, 3192283287u, 3180534849u, 0, ATAN2_TOLERANCE, 0},
+{ 734, 3203949705u, 3603065260u, 3197735968u, 2402359253u, 3220792598u, 1407700740u, 0, ATAN2_TOLERANCE, 0},
+{ 735, 3198824584u, 3961208159u, 3219057584u, 2340553876u, 3221823994u, 2070913575u, 0, ATAN2_TOLERANCE, 0},
+{ 736, 1074881909u, 4014841779u, 3197672877u, 3697233334u, 1073291771u, 1793592252u, 0, ATAN2_TOLERANCE, 0},
+{ 737, 3213275657u, 1403876392u, 3254028950u, 921363393u, 3221823995u, 1413749611u, 0, ATAN2_TOLERANCE, 0},
+{ 738, 1107251806u, 1862576361u, 3194031708u, 2476290925u, 1073291771u, 1413754136u, 0, ATAN2_TOLERANCE, 0},
+{ 739, 1049661768u, 1454212851u, 1088378861u, 3400401866u, 1033955871u, 433439011u, 0, ATAN2_TOLERANCE, 0},
+{ 740, 1074406809u, 552676385u, 3188635745u, 3778112968u, 1073291771u, 1414986120u, 0, ATAN2_TOLERANCE, 0},
+{ 741, 3216409282u, 1199568671u, 3225679997u, 46947405u, 3221822841u, 368629664u, 0, ATAN2_TOLERANCE, 0},
+{ 742, 1077685537u, 2596231448u, 3253943728u, 2219151748u, 1074340347u, 1401469941u, 0, ATAN2_TOLERANCE, 0},
+{ 743, 1066527035u, 4119719558u, 3222036299u, 1275474618u, 1074337761u, 2544098624u, 0, ATAN2_TOLERANCE, 0},
+{ 744, 3239908663u, 3347296825u, 1101507910u, 1254014794u, 3210979126u, 546260523u, 0, ATAN2_TOLERANCE, 0},
+{ 745, 1084119992u, 673775040u, 1070743626u, 244126093u, 1073291617u, 1822008293u, 0, ATAN2_TOLERANCE, 0},
+{ 746, 3203199850u, 1832066983u, 1051358028u, 3262483417u, 3220715608u, 2372960006u, 0, ATAN2_TOLERANCE, 0},
+{ 747, 1077559600u, 3962610501u, 3198598777u, 849269178u, 1073291771u, 1530025068u, 0, ATAN2_TOLERANCE, 0},
+{ 748, 3235473900u, 2497516122u, 3254374111u, 2821429629u, 3221823993u, 1545003765u, 0, ATAN2_TOLERANCE, 0},
+{ 749, 1076236288u, 2805941787u, 3217785843u, 779131141u, 1073312202u, 752599186u, 0, ATAN2_TOLERANCE, 0},
+{ 750, 3226908686u, 723423605u, 1084533420u, 627282213u, 3215037690u, 1099146425u, 0, ATAN2_TOLERANCE, 0},
+{ 751, 3215947680u, 4292778869u, 1078101071u, 1676860147u, 3210424496u, 1927458872u, 0, ATAN2_TOLERANCE, 0},
+{ 752, 1076288502u, 3528118587u, 3194648564u, 2363260897u, 1073291771u, 1433180377u, 0, ATAN2_TOLERANCE, 0},
+{ 753, 3192897879u, 1307010018u, 1061248120u, 1468743108u, 3204269045u, 482593707u, 0, ATAN2_TOLERANCE, 0},
+{ 754, 3246583139u, 107905661u, 3226089788u, 1943427674u, 3220775420u, 3069422109u, 0, ATAN2_TOLERANCE, 0},
+{ 755, 3188230541u, 760006940u, 1054265604u, 1749976597u, 3206624492u, 1915116447u, 0, ATAN2_TOLERANCE, 0},
+{ 756, 3237773384u, 2787503556u, 1081282610u, 1195841206u, 3220772679u, 2931651306u, 0, ATAN2_TOLERANCE, 0},
+{ 757, 3191802156u, 545462045u, 3208381743u, 1981311808u, 3221823986u, 2010884417u, 0, ATAN2_TOLERANCE, 0},
+{ 758, 1061232136u, 3657978397u, 1104463616u, 3501253426u, 1029332208u, 1488430477u, 0, ATAN2_TOLERANCE, 0},
+{ 759, 1049883857u, 1804177501u, 3210693633u, 3606766729u, 1074340265u, 3051910954u, 0, ATAN2_TOLERANCE, 0},
+{ 760, 1076856879u, 1336278526u, 1043741618u, 3165279431u, 1073291771u, 1412275434u, 0, ATAN2_TOLERANCE, 0},
+{ 761, 1055471915u, 1599382075u, 1058018527u, 4212580517u, 1070122997u, 3364139310u, 0, ATAN2_TOLERANCE, 0},
+{ 762, 3207502326u, 3007589929u, 3202026547u, 2792028313u, 3220804374u, 2593366982u, 0, ATAN2_TOLERANCE, 0},
+{ 763, 3253082770u, 1866066996u, 1060329048u, 3727175322u, 3220775419u, 1413753688u, 0, ATAN2_TOLERANCE, 0},
+{ 764, 3198416643u, 150890940u, 1056025306u, 3082724735u, 3215069881u, 3889068227u, 0, ATAN2_TOLERANCE, 0},
+{ 765, 1062008939u, 80400395u, 1093584426u, 3478941315u, 1041113051u, 1338284599u, 0, ATAN2_TOLERANCE, 0},
+{ 766, 3251640614u, 4050954182u, 3219263194u, 2537475930u, 3220775419u, 1416106592u, 0, ATAN2_TOLERANCE, 0},
+{ 767, 1064841871u, 2881752155u, 3212589299u, 2559651278u, 1073968750u, 275989965u, 0, ATAN2_TOLERANCE, 0},
+{ 768, 3249016304u, 440309030u, 3214267461u, 3788040806u, 3220775419u, 1414229923u, 0, ATAN2_TOLERANCE, 0},
+{ 769, 1100476615u, 918813144u, 3208535698u, 1607035904u, 1073291771u, 1413774920u, 0, ATAN2_TOLERANCE, 0},
+{ 770, 1042137451u, 2497054124u, 1089139147u, 2549609010u, 1025616722u, 2513164301u, 0, ATAN2_TOLERANCE, 0},
+{ 771, 1047037641u, 790219083u, 1054657139u, 2797979479u, 1065042572u, 1694162441u, 0, ATAN2_TOLERANCE, 0},
+{ 772, 1057781400u, 1149462078u, 1095765205u, 3879963182u, 1034706901u, 248813312u, 0, ATAN2_TOLERANCE, 0},
+{ 773, 3202729813u, 2684353926u, 3205212854u, 1732474928u, 3221722120u, 2311307993u, 0, ATAN2_TOLERANCE, 0},
+{ 774, 1095236965u, 2742237025u, 1051317716u, 3386396147u, 1073291771u, 1413753034u, 0, ATAN2_TOLERANCE, 0},
+{ 775, 1063230986u, 3408320912u, 1103071166u, 4233059513u, 1032850256u, 1811766756u, 0, ATAN2_TOLERANCE, 0},
+{ 776, 1064863548u, 1077495917u, 1088399968u, 433115118u, 1049151887u, 2167853176u, 0, ATAN2_TOLERANCE, 0},
+{ 777, 3204547572u, 841366493u, 1051716814u, 4121125128u, 3220745564u, 2691718244u, 0, ATAN2_TOLERANCE, 0},
+{ 778, 1064632084u, 321857207u, 1089128010u, 1149988239u, 1048123417u, 2145888320u, 0, ATAN2_TOLERANCE, 0},
+{ 779, 3245542663u, 799866606u, 3197637091u, 3924438208u, 3220775419u, 1413754217u, 0, ATAN2_TOLERANCE, 0},
+{ 780, 3191062890u, 2002049816u, 1077053447u, 2240354761u, 3186691732u, 124527913u, 0, ATAN2_TOLERANCE, 0},
+{ 781, 3229006283u, 478939968u, 1097035749u, 1066716440u, 3204625670u, 352490214u, 0, ATAN2_TOLERANCE, 0},
+{ 782, 3232473641u, 1653104725u, 1088548129u, 81977716u, 3216545426u, 3469149501u, 0, ATAN2_TOLERANCE, 0},
+{ 783, 3196861276u, 3899475018u, 3189694084u, 3330093036u, 3220784376u, 1632762114u, 0, ATAN2_TOLERANCE, 0},
+{ 784, 1089312583u, 2612450289u, 1079065127u, 603380842u, 1073290579u, 134776887u, 0, ATAN2_TOLERANCE, 0},
+{ 785, 1100636791u, 3962735564u, 1101570429u, 1372490825u, 1071609951u, 4174474007u, 0, ATAN2_TOLERANCE, 0},
+{ 786, 1054806016u, 1479841439u, 1059312257u, 541504905u, 1068043651u, 1103081642u, 0, ATAN2_TOLERANCE, 0},
+{ 787, 1078662178u, 2626148789u, 1057571099u, 4121656076u, 1073291770u, 1703111061u, 0, ATAN2_TOLERANCE, 0},
+{ 788, 1081613389u, 1902560314u, 1043130231u, 3557671562u, 1073291771u, 1413714853u, 0, ATAN2_TOLERANCE, 0},
+{ 789, 3193829772u, 41779312u, 1081626342u, 831171823u, 3184769750u, 931842167u, 0, ATAN2_TOLERANCE, 0},
+{ 790, 1058131100u, 1393168821u, 1066457405u, 1381616968u, 1064363798u, 3338784388u, 0, ATAN2_TOLERANCE, 0},
+{ 791, 1072338141u, 3756584649u, 3222267229u, 1423157432u, 1074232654u, 3847296290u, 0, ATAN2_TOLERANCE, 0},
+{ 792, 3254435674u, 1894912556u, 1042426694u, 155024547u, 3220775419u, 1413754136u, 0, ATAN2_TOLERANCE, 0},
+{ 793, 3195453512u, 35164295u, 3203391785u, 1037041084u, 3221821072u, 921668424u, 0, ATAN2_TOLERANCE, 0},
+{ 794, 1084777479u, 3957875950u, 3232195211u, 1590756436u, 1073917536u, 1948610443u, 0, ATAN2_TOLERANCE, 0},
+{ 795, 1068844322u, 1447585080u, 1071279485u, 1107922438u, 1070164574u, 3625167357u, 0, ATAN2_TOLERANCE, 0},
+{ 796, 1046252518u, 981897615u, 1051856116u, 430357614u, 1067011170u, 354654443u, 0, ATAN2_TOLERANCE, 0},
+{ 797, 3227524215u, 395145384u, 3219821938u, 50586510u, 3220782177u, 3061517349u, 0, ATAN2_TOLERANCE, 0},
+{ 798, 1069775912u, 750827797u, 1082862669u, 230466783u, 1059516989u, 1833533046u, 0, ATAN2_TOLERANCE, 0},
+{ 799, 1086668819u, 1365083575u, 3204848310u, 1700831722u, 1073291771u, 1431205630u, 0, ATAN2_TOLERANCE, 0},
+{ 800, 3218090390u, 344241827u, 1071538935u, 2715566077u, 3219081495u, 709990262u, 0, ATAN2_TOLERANCE, 0},
+{ 801, 3247582856u, 4069301823u, 3193208760u, 2949125229u, 3220775419u, 1413754137u, 0, ATAN2_TOLERANCE, 0},
+{ 802, 1103231387u, 3585711710u, 1065801594u, 2302229267u, 1073291771u, 1413670857u, 0, ATAN2_TOLERANCE, 0},
+{ 803, 3194118956u, 709803845u, 1048741487u, 2296910194u, 3218022939u, 534303821u, 0, ATAN2_TOLERANCE, 0},
+{ 804, 3193280779u, 744421179u, 1069302001u, 2659232829u, 3196614187u, 2494083211u, 0, ATAN2_TOLERANCE, 0},
+{ 805, 1092835968u, 1799949903u, 3192522886u, 4212149209u, 1073291771u, 1413754222u, 0, ATAN2_TOLERANCE, 0},
+{ 806, 3206108502u, 145234164u, 3250614064u, 912384201u, 3221823995u, 1413753742u, 0, ATAN2_TOLERANCE, 0},
+{ 807, 3240510664u, 2784620507u, 1102812948u, 3531481022u, 3210335220u, 3011373223u, 0, ATAN2_TOLERANCE, 0},
+{ 808, 3251159663u, 383952592u, 3205659905u, 3633194728u, 3220775419u, 1413754519u, 0, ATAN2_TOLERANCE, 0},
+{ 809, 3203476252u, 3792395543u, 1070072378u, 3864816376u, 3205947910u, 772395157u, 0, ATAN2_TOLERANCE, 0},
+{ 810, 3205316273u, 2115553675u, 1066288499u, 3538377867u, 3211717170u, 2903498297u, 0, ATAN2_TOLERANCE, 0},
+{ 811, 3252075185u, 1230026762u, 1090719723u, 440819880u, 3220775311u, 4210718762u, 0, ATAN2_TOLERANCE, 0},
+{ 812, 3194595076u, 2991290482u, 1096886719u, 1097971167u, 3170363903u, 1152911974u, 0, ATAN2_TOLERANCE, 0},
+{ 813, 1090048600u, 1098035020u, 3230900504u, 1479059095u, 1073304727u, 1466275977u, 0, ATAN2_TOLERANCE, 0},
+{ 814, 3251056964u, 1719428427u, 3188631907u, 3707377409u, 3220775419u, 1413754136u, 0, ATAN2_TOLERANCE, 0},
+{ 815, 1053236165u, 3748932896u, 1084908557u, 1325384361u, 1040975136u, 1061872090u, 0, ATAN2_TOLERANCE, 0},
+{ 816, 1084704076u, 3979168763u, 1057455255u, 2454615952u, 1073291771u, 1346022414u, 0, ATAN2_TOLERANCE, 0},
+{ 817, 1053106984u, 1449164578u, 1056960316u, 1654931641u, 1068835310u, 2233667149u, 0, ATAN2_TOLERANCE, 0},
+{ 818, 1071439010u, 2120487381u, 3226298974u, 2364226633u, 1074336328u, 2154761046u, 0, ATAN2_TOLERANCE, 0},
+{ 819, 1075071428u, 1074268944u, 1065730444u, 280016852u, 1073289575u, 665876277u, 0, ATAN2_TOLERANCE, 0},
+{ 820, 3200308256u, 3315127889u, 3236295594u, 2900924954u, 3221823995u, 1413653654u, 0, ATAN2_TOLERANCE, 0},
+{ 821, 3196425891u, 2246037502u, 1049691002u, 1496066550u, 3219265397u, 3120866378u, 0, ATAN2_TOLERANCE, 0},
+{ 822, 3193006859u, 4191285446u, 3217936236u, 2382392789u, 3221823995u, 1256907098u, 0, ATAN2_TOLERANCE, 0},
+{ 823, 1092833308u, 640099844u, 1042152237u, 2064279383u, 1073291771u, 1413754124u, 0, ATAN2_TOLERANCE, 0},
+{ 824, 1079913438u, 3468560824u, 1093251038u, 310958750u, 1059244818u, 1996287231u, 0, ATAN2_TOLERANCE, 0},
+{ 825, 1096788400u, 1413568905u, 1100941106u, 1627289946u, 1068518947u, 593268660u, 0, ATAN2_TOLERANCE, 0},
+{ 826, 3191549550u, 3797143370u, 3195497539u, 3843275034u, 3221786035u, 3455361964u, 0, ATAN2_TOLERANCE, 0},
+{ 827, 3252077393u, 2806642640u, 3201943068u, 2515980718u, 3220775419u, 1413754154u, 0, ATAN2_TOLERANCE, 0},
+{ 828, 1086877316u, 632580632u, 1078673506u, 3259601317u, 1073287202u, 2642395946u, 0, ATAN2_TOLERANCE, 0},
+{ 829, 3200980575u, 3309678799u, 1049337078u, 3056787074u, 3220708701u, 2221508932u, 0, ATAN2_TOLERANCE, 0},
+{ 830, 3221495289u, 2341164249u, 1080834967u, 2810890005u, 3213282538u, 2235616094u, 0, ATAN2_TOLERANCE, 0},
+{ 831, 1067019674u, 932124675u, 1093915797u, 662682630u, 1045726264u, 1944163328u, 0, ATAN2_TOLERANCE, 0},
+{ 832, 3249230091u, 1367996113u, 3251723684u, 2974064663u, 3221722205u, 213023999u, 0, ATAN2_TOLERANCE, 0},
+{ 833, 1080230731u, 323437999u, 1090499064u, 901457511u, 1062416921u, 1262863215u, 0, ATAN2_TOLERANCE, 0},
+{ 834, 3235778876u, 4184941840u, 3196770014u, 2458988443u, 3220775419u, 1413783386u, 0, ATAN2_TOLERANCE, 0},
+{ 835, 1087618284u, 2023065054u, 3211994098u, 2734612965u, 1073291771u, 2454988713u, 0, ATAN2_TOLERANCE, 0},
+{ 836, 1064074694u, 3679267365u, 3237728785u, 1699558211u, 1074340347u, 1345027317u, 0, ATAN2_TOLERANCE, 0},
+{ 837, 1088079010u, 1826799031u, 1078709629u, 3986905229u, 1073289644u, 755714436u, 0, ATAN2_TOLERANCE, 0},
+{ 838, 1052843785u, 351061688u, 3194386466u, 4105857588u, 1073313270u, 355092716u, 0, ATAN2_TOLERANCE, 0},
+{ 839, 1054128006u, 1365244058u, 1064457319u, 1452191426u, 1062344050u, 495680488u, 0, ATAN2_TOLERANCE, 0},
+{ 840, 1064122385u, 2463030625u, 3215975031u, 3773488326u, 1074310351u, 2466004034u, 0, ATAN2_TOLERANCE, 0},
+{ 841, 3251276671u, 752664055u, 1065110394u, 1835931663u, 3220775419u, 1413719208u, 0, ATAN2_TOLERANCE, 0},
+{ 842, 1088045088u, 3496172149u, 1089617208u, 109068701u, 1070996179u, 4085289987u, 0, ATAN2_TOLERANCE, 0},
+{ 843, 3198135087u, 1636966254u, 1086098766u, 2016598298u, 3184639773u, 3394102605u, 0, ATAN2_TOLERANCE, 0},
+{ 844, 1050931318u, 3551516956u, 1097969102u, 1317953425u, 1025641396u, 1368967953u, 0, ATAN2_TOLERANCE, 0},
+{ 845, 3229832217u, 2977627788u, 1045339018u, 516058480u, 3220775419u, 1413650357u, 0, ATAN2_TOLERANCE, 0},
+{ 846, 3237408578u, 3901731263u, 3189566462u, 32272932u, 3220775419u, 1413754217u, 0, ATAN2_TOLERANCE, 0},
+{ 847, 1077281796u, 1956025297u, 3246628529u, 3840733905u, 1074340347u, 208897435u, 0, ATAN2_TOLERANCE, 0},
+{ 848, 1099818036u, 561057891u, 3198494340u, 4271027193u, 1073291771u, 1413754182u, 0, ATAN2_TOLERANCE, 0},
+{ 849, 3250929921u, 692989850u, 3242630588u, 2492225971u, 3220779777u, 3566318511u, 0, ATAN2_TOLERANCE, 0},
+{ 850, 3205479397u, 3439913962u, 1067477011u, 2973333638u, 3210670740u, 2012261983u, 0, ATAN2_TOLERANCE, 0},
+{ 851, 3213993989u, 877613377u, 1044917899u, 809672798u, 3220775418u, 2767564002u, 0, ATAN2_TOLERANCE, 0},
+{ 852, 3222171454u, 905426932u, 1046417457u, 1086320855u, 3220775419u, 1379506546u, 0, ATAN2_TOLERANCE, 0},
+{ 853, 3246346629u, 2645567288u, 1051258339u, 557182478u, 3220775419u, 1413754034u, 0, ATAN2_TOLERANCE, 0},
+{ 854, 3204057950u, 186287752u, 1061342054u, 4054003419u, 3215337589u, 2988894665u, 0, ATAN2_TOLERANCE, 0},
+{ 855, 1097266673u, 3506889716u, 3243866036u, 519056371u, 1073782276u, 2156372686u, 0, ATAN2_TOLERANCE, 0},
+{ 856, 1042654053u, 2171898436u, 3246911982u, 1091500784u, 1074340347u, 1413754136u, 0, ATAN2_TOLERANCE, 0},
+{ 857, 3243647673u, 368493885u, 3222871893u, 1419055230u, 3220775420u, 1993273617u, 0, ATAN2_TOLERANCE, 0},
+{ 858, 1091950572u, 2010971245u, 3188804530u, 1518695799u, 1073291771u, 1413754149u, 0, ATAN2_TOLERANCE, 0},
+{ 859, 3205426509u, 1239207795u, 1040192984u, 2199481342u, 3220775411u, 31997672u, 0, ATAN2_TOLERANCE, 0},
+{ 860, 3210978637u, 4264613432u, 3203460972u, 3558930895u, 3220782480u, 4270673353u, 0, ATAN2_TOLERANCE, 0},
+{ 861, 1050299283u, 3772748958u, 3227667376u, 309688336u, 1074340347u, 1407725920u, 0, ATAN2_TOLERANCE, 0},
+{ 862, 3230743041u, 1077949160u, 1075769893u, 2405271377u, 3220768061u, 1643198396u, 0, ATAN2_TOLERANCE, 0},
+{ 863, 1091835152u, 3751608506u, 3232278094u, 930375071u, 1073301826u, 595681186u, 0, ATAN2_TOLERANCE, 0},
+{ 864, 3198617153u, 1518334131u, 3205247482u, 791756713u, 3221817306u, 182536129u, 0, ATAN2_TOLERANCE, 0},
+{ 865, 1047317453u, 2825203170u, 3245054001u, 1822981827u, 1074340347u, 1413754128u, 0, ATAN2_TOLERANCE, 0},
+{ 866, 1100016363u, 514474738u, 1089072073u, 3300845441u, 1073290986u, 3643162396u, 0, ATAN2_TOLERANCE, 0},
+{ 867, 3216391250u, 247369460u, 3197320093u, 687450958u, 3220775422u, 3388704618u, 0, ATAN2_TOLERANCE, 0},
+{ 868, 1104161422u, 2722237629u, 1058272368u, 90602316u, 1073291771u, 1413753820u, 0, ATAN2_TOLERANCE, 0},
+{ 869, 3208098435u, 1845900544u, 3231520830u, 3389751458u, 3221823995u, 976478716u, 0, ATAN2_TOLERANCE, 0},
+{ 870, 3247535245u, 737689911u, 3195377751u, 3462616966u, 3220775419u, 1413754141u, 0, ATAN2_TOLERANCE, 0},
+{ 871, 3223538384u, 3620285831u, 1055501023u, 2708056059u, 3220775417u, 4289426805u, 0, ATAN2_TOLERANCE, 0},
+{ 872, 3219464996u, 4073430285u, 1056206159u, 172017902u, 3220775388u, 1737272404u, 0, ATAN2_TOLERANCE, 0},
+{ 873, 3212869638u, 2799176222u, 1052706894u, 4083892667u, 3220775178u, 2551348560u, 0, ATAN2_TOLERANCE, 0},
+{ 874, 3202279557u, 1562351330u, 1069705601u, 1247765260u, 3205159915u, 2748849209u, 0, ATAN2_TOLERANCE, 0},
+{ 875, 3232717299u, 51853475u, 3189080201u, 2783553144u, 3220775419u, 1413755541u, 0, ATAN2_TOLERANCE, 0},
+{ 876, 3219454353u, 3851781549u, 3241598113u, 514064046u, 3221823995u, 428635924u, 0, ATAN2_TOLERANCE, 0},
+{ 877, 1100045965u, 934745487u, 3248182437u, 2798581921u, 1074043530u, 2892706507u, 0, ATAN2_TOLERANCE, 0},
+{ 878, 3213082493u, 2948648757u, 3232177250u, 4278702895u, 3221823993u, 2663678875u, 0, ATAN2_TOLERANCE, 0},
+{ 879, 1072485724u, 4259101461u, 1061606772u, 84229920u, 1073290960u, 1729538575u, 0, ATAN2_TOLERANCE, 0},
+{ 880, 3198075559u, 3891230598u, 1095924595u, 3049217547u, 3174736143u, 1169587240u, 0, ATAN2_TOLERANCE, 0},
+{ 881, 1077353053u, 3806018919u, 3243191216u, 280177341u, 1074340344u, 1565319825u, 0, ATAN2_TOLERANCE, 0},
+{ 882, 1060624530u, 3900344258u, 1063647809u, 4206745890u, 1069629764u, 2839338122u, 0, ATAN2_TOLERANCE, 0},
+{ 883, 3227707336u, 2126253040u, 3207248026u, 808507485u, 3220775420u, 3189340425u, 0, ATAN2_TOLERANCE, 0},
+{ 884, 1086090317u, 3465685634u, 3230391053u, 3754958214u, 1073419589u, 4281458404u, 0, ATAN2_TOLERANCE, 0},
+{ 885, 1102861084u, 461094531u, 1101110393u, 1316091396u, 1072975720u, 993068035u, 0, ATAN2_TOLERANCE, 0},
+{ 886, 1064980314u, 4197635149u, 1091873113u, 1240127141u, 1045716932u, 2509120352u, 0, ATAN2_TOLERANCE, 0},
+{ 887, 1074333893u, 118603800u, 1105304898u, 4291425557u, 1041677676u, 1377895141u, 0, ATAN2_TOLERANCE, 0},
+{ 888, 3213429165u, 3744663425u, 3212482771u, 953662066u, 3221256426u, 3241735598u, 0, ATAN2_TOLERANCE, 0},
+{ 889, 1085171305u, 3564196690u, 3228101916u, 904305212u, 1073345459u, 4019048881u, 0, ATAN2_TOLERANCE, 0},
+{ 890, 1048333111u, 3566257266u, 3235138829u, 2734275140u, 1074340347u, 1413742719u, 0, ATAN2_TOLERANCE, 0},
+{ 891, 3243948477u, 606044282u, 3241318094u, 2446416887u, 3220955949u, 3460464085u, 0, ATAN2_TOLERANCE, 0},
+{ 892, 1041627284u, 2336116589u, 3197594053u, 2296925138u, 1074338425u, 2087543934u, 0, ATAN2_TOLERANCE, 0},
+{ 893, 1058567659u, 907670625u, 3240769036u, 1827119006u, 1074340347u, 1413509500u, 0, ATAN2_TOLERANCE, 0},
+{ 894, 1044467183u, 2818710946u, 3246059905u, 553394170u, 1074340347u, 1413754136u, 0, ATAN2_TOLERANCE, 0},
+{ 895, 3189504094u, 4099522736u, 3232742168u, 3718083858u, 3221823995u, 1413753234u, 0, ATAN2_TOLERANCE, 0},
+{ 896, 1092371276u, 1059279404u, 1080245336u, 175941677u, 1073291422u, 3702106658u, 0, ATAN2_TOLERANCE, 0},
+{ 897, 1105189691u, 1650862428u, 1061816101u, 1723201723u, 1073291771u, 1413752463u, 0, ATAN2_TOLERANCE, 0},
+{ 898, 3239012814u, 2462163405u, 3218946201u, 3876535372u, 3220775421u, 814296740u, 0, ATAN2_TOLERANCE, 0},
+{ 899, 1084392886u, 495844137u, 1073721460u, 772777946u, 1073290895u, 1562105886u, 0, ATAN2_TOLERANCE, 0},
+{ 900, 1052415330u, 458757721u, 3245680321u, 3609892707u, 1074340347u, 1413753975u, 0, ATAN2_TOLERANCE, 0},
+{ 901, 3193282956u, 2533012202u, 1079980803u, 3592268374u, 3185979307u, 1334096542u, 0, ATAN2_TOLERANCE, 0},
+{ 902, 3203364780u, 4108274117u, 1063045844u, 571992389u, 3212934262u, 2831896370u, 0, ATAN2_TOLERANCE, 0},
+{ 903, 1090567271u, 3541110973u, 1096296754u, 3118427427u, 1066805658u, 3576017509u, 0, ATAN2_TOLERANCE, 0},
+{ 904, 3193980043u, 1213941007u, 1105433735u, 2172963370u, 3161101858u, 1045382940u, 0, ATAN2_TOLERANCE, 0},
+{ 905, 1096853359u, 272190288u, 1095452370u, 4026581530u, 1072884258u, 299169485u, 0, ATAN2_TOLERANCE, 0},
+{ 906, 1095583909u, 2843638672u, 1100510986u, 3190536898u, 1067656316u, 3239195794u, 0, ATAN2_TOLERANCE, 0},
+{ 907, 1083757094u, 2014317727u, 3247389683u, 2428462015u, 1074340334u, 2638957542u, 0, ATAN2_TOLERANCE, 0},
+{ 908, 1093976717u, 688442200u, 1047852515u, 3035186380u, 1073291771u, 1413753878u, 0, ATAN2_TOLERANCE, 0},
+{ 909, 1076664212u, 1010095511u, 3221288076u, 405287991u, 1073446099u, 4118972885u, 0, ATAN2_TOLERANCE, 0},
+{ 910, 3252294615u, 2983070435u, 1089546472u, 2907918480u, 3220775377u, 924297922u, 0, ATAN2_TOLERANCE, 0},
+{ 911, 1082988121u, 81928569u, 1056007286u, 2740556321u, 1073291771u, 1333500091u, 0, ATAN2_TOLERANCE, 0},
+{ 912, 1041110867u, 2076689028u, 1081558619u, 3039159031u, 1032105870u, 2189756965u, 0, ATAN2_TOLERANCE, 0},
+{ 913, 1047307438u, 1376882094u, 3211003208u, 1296286481u, 1074340335u, 3795290484u, 0, ATAN2_TOLERANCE, 0},
+{ 914, 1080114314u, 744133164u, 3200943494u, 955832216u, 1073291771u, 1517013776u, 0, ATAN2_TOLERANCE, 0},
+{ 915, 3226290326u, 176522478u, 1069999908u, 2891249491u, 3220772215u, 3534603495u, 0, ATAN2_TOLERANCE, 0},
+{ 916, 1043564602u, 3685851715u, 3187829932u, 2363997529u, 1073414842u, 717988197u, 0, ATAN2_TOLERANCE, 0},
+{ 917, 1040244055u, 3974431579u, 1052505165u, 2589067816u, 1060326955u, 3757392299u, 0, ATAN2_TOLERANCE, 0},
+{ 918, 3191496789u, 3819109588u, 1048561488u, 969143351u, 3215624523u, 3633980967u, 0, ATAN2_TOLERANCE, 0},
+{ 919, 1072639397u, 4246896124u, 1104584799u, 1940097860u, 1040583710u, 116780352u, 0, ATAN2_TOLERANCE, 0},
+{ 920, 1048038468u, 2228686199u, 3220231833u, 777624847u, 1074340347u, 1224061139u, 0, ATAN2_TOLERANCE, 0},
+{ 921, 3231467306u, 4189906558u, 3203004203u, 854242364u, 3220775419u, 1444564580u, 0, ATAN2_TOLERANCE, 0},
+{ 922, 1103910407u, 4089051094u, 3227282692u, 2693170723u, 1073291771u, 1952326317u, 0, ATAN2_TOLERANCE, 0},
+{ 923, 1045883607u, 1278581412u, 3239296746u, 1774588717u, 1074340347u, 1413753988u, 0, ATAN2_TOLERANCE, 0},
+{ 924, 3222372686u, 1794845306u, 1104879344u, 4135865182u, 3190073218u, 825152016u, 0, ATAN2_TOLERANCE, 0},
+{ 925, 1106449055u, 754938390u, 1061291430u, 2010786993u, 1073291771u, 1413753652u, 0, ATAN2_TOLERANCE, 0},
+{ 926, 1073581409u, 2034303731u, 3240176537u, 314147356u, 1074340345u, 2611506058u, 0, ATAN2_TOLERANCE, 0},
+{ 927, 3231449194u, 567588900u, 3195452230u, 1421366017u, 3220775419u, 1413966943u, 0, ATAN2_TOLERANCE, 0},
+{ 928, 3225089755u, 2708717091u, 1071975971u, 1364590470u, 3220749837u, 1360925482u, 0, ATAN2_TOLERANCE, 0},
+{ 929, 3252137283u, 3461956134u, 3207820115u, 1605709634u, 3220775419u, 1413754977u, 0, ATAN2_TOLERANCE, 0},
+{ 930, 1065302996u, 1497124553u, 1051715442u, 916736957u, 1073291640u, 2499100608u, 0, ATAN2_TOLERANCE, 0},
+{ 931, 1058468363u, 834914365u, 1064667143u, 2839166298u, 1066470556u, 466056744u, 0, ATAN2_TOLERANCE, 0},
+{ 932, 1057279949u, 2139295776u, 1062816721u, 914592523u, 1067078210u, 3565683614u, 0, ATAN2_TOLERANCE, 0},
+{ 933, 3189636931u, 851569132u, 1058503154u, 1399378677u, 3203690931u, 1174625892u, 0, ATAN2_TOLERANCE, 0},
+{ 934, 3233537697u, 3897202342u, 3245382590u, 246600375u, 3221823780u, 2314535601u, 0, ATAN2_TOLERANCE, 0},
+{ 935, 3225460308u, 3620429520u, 1055627557u, 229305u, 3220775418u, 3925564355u, 0, ATAN2_TOLERANCE, 0},
+{ 936, 1083958833u, 3641997865u, 3206673888u, 93720614u, 1073291771u, 1759371343u, 0, ATAN2_TOLERANCE, 0},
+{ 937, 3227808435u, 32766320u, 1062084905u, 3668443038u, 3220775413u, 1869564977u, 0, ATAN2_TOLERANCE, 0},
+{ 938, 3223298996u, 2039713492u, 3248699388u, 1346210821u, 3221823995u, 1303273732u, 0, ATAN2_TOLERANCE, 0},
+{ 939, 1093050016u, 1335820726u, 3191756860u, 1808427032u, 1073291771u, 1413754179u, 0, ATAN2_TOLERANCE, 0},
+{ 940, 1061442763u, 650692001u, 1103515670u, 2253348763u, 1030563958u, 2155523489u, 0, ATAN2_TOLERANCE, 0},
+{ 941, 3191395187u, 2372623300u, 3210185343u, 3200572848u, 3221823993u, 944878367u, 0, ATAN2_TOLERANCE, 0},
+{ 942, 1100796069u, 762317532u, 3194595095u, 3192607437u, 1073291771u, 1413754138u, 0, ATAN2_TOLERANCE, 0},
+{ 943, 1062262701u, 217775356u, 3232827087u, 2969367386u, 1074340347u, 882688839u, 0, ATAN2_TOLERANCE, 0},
+{ 944, 1057172551u, 3621353969u, 1077994795u, 3873976266u, 1051863094u, 2047525699u, 0, ATAN2_TOLERANCE, 0},
+{ 945, 1091301987u, 268372152u, 3221764390u, 3216978962u, 1073291785u, 847648949u, 0, ATAN2_TOLERANCE, 0},
+{ 946, 3246437611u, 142942404u, 1075322987u, 1746449109u, 3220775419u, 638443521u, 0, ATAN2_TOLERANCE, 0},
+{ 947, 1104006296u, 496534875u, 3254522293u, 2532372502u, 1074271176u, 988519976u, 0, ATAN2_TOLERANCE, 0},
+{ 948, 3250225541u, 2999955409u, 3222793392u, 1868977643u, 3220775419u, 1474327357u, 0, ATAN2_TOLERANCE, 0},
+{ 949, 1074319042u, 3353193428u, 3218469191u, 3326244297u, 1073407236u, 930383142u, 0, ATAN2_TOLERANCE, 0},
+{ 950, 1068218799u, 73646871u, 3231442171u, 3711510104u, 1074340331u, 1830442673u, 0, ATAN2_TOLERANCE, 0},
+{ 951, 1090483524u, 218135177u, 3198908856u, 3082199105u, 1073291771u, 1413782756u, 0, ATAN2_TOLERANCE, 0},
+{ 952, 1068068480u, 1061628117u, 3248859043u, 86776158u, 1074340347u, 1413138407u, 0, ATAN2_TOLERANCE, 0},
+{ 953, 3208484674u, 938869114u, 1087911145u, 2416710759u, 3193147149u, 825567430u, 0, ATAN2_TOLERANCE, 0},
+{ 954, 1095576832u, 2970853959u, 3239543429u, 1887505029u, 1073397034u, 442547018u, 0, ATAN2_TOLERANCE, 0},
+{ 955, 3237728787u, 1337895935u, 1076463812u, 1172733328u, 3220775301u, 3644296250u, 0, ATAN2_TOLERANCE, 0},
+{ 956, 1049139928u, 1469010822u, 3229583535u, 551399515u, 1074340347u, 1412935968u, 0, ATAN2_TOLERANCE, 0},
+{ 957, 1074118123u, 1849711538u, 1049053713u, 1744276190u, 1073291771u, 1126213076u, 0, ATAN2_TOLERANCE, 0},
+{ 958, 3242138780u, 2976596113u, 3192137295u, 3033242648u, 3220775419u, 1413754157u, 0, ATAN2_TOLERANCE, 0},
+{ 959, 1098698481u, 876810930u, 3197470945u, 2571587447u, 1073291771u, 1413754184u, 0, ATAN2_TOLERANCE, 0},
+{ 960, 3241770810u, 4007797282u, 3225853845u, 4069319648u, 3220775447u, 3103713544u, 0, ATAN2_TOLERANCE, 0},
+{ 961, 1047279982u, 3840538373u, 1043189552u, 3668774580u, 1073222655u, 1301141788u, 0, ATAN2_TOLERANCE, 0},
+{ 962, 3217611704u, 200857661u, 3229758439u, 3359367736u, 3221823820u, 2268572874u, 0, ATAN2_TOLERANCE, 0},
+{ 963, 3248797869u, 111868139u, 3227902082u, 2366064003u, 3220775420u, 1653278234u, 0, ATAN2_TOLERANCE, 0},
+{ 964, 1044195166u, 3510904416u, 3222131653u, 3822770497u, 1074340347u, 1409654532u, 0, ATAN2_TOLERANCE, 0},
+{ 965, 3242675715u, 789151814u, 1099269239u, 2958956055u, 3216067959u, 360964177u, 0, ATAN2_TOLERANCE, 0},
+{ 966, 1084679320u, 722163228u, 1105524559u, 1534462169u, 1051818097u, 3124787863u, 0, ATAN2_TOLERANCE, 0},
+{ 967, 1046586062u, 2207037106u, 3208952465u, 1231254630u, 1074340320u, 445352385u, 0, ATAN2_TOLERANCE, 0},
+{ 968, 3197884060u, 3838689849u, 3198769679u, 1302617170u, 3221560746u, 4289727603u, 0, ATAN2_TOLERANCE, 0},
+{ 969, 1085938906u, 2527556476u, 3240373426u, 124352692u, 1074335045u, 3897696078u, 0, ATAN2_TOLERANCE, 0},
+{ 970, 3199540805u, 3502371499u, 1043411944u, 4190072016u, 3220772082u, 3302400771u, 0, ATAN2_TOLERANCE, 0},
+{ 971, 1064676142u, 1798470077u, 3200116917u, 3421833729u, 1073292124u, 2933408544u, 0, ATAN2_TOLERANCE, 0},
+{ 972, 3193514956u, 3653237931u, 3204255012u, 3683870669u, 3221823551u, 3069459565u, 0, ATAN2_TOLERANCE, 0},
+{ 973, 1053588582u, 376530104u, 1073853547u, 565755892u, 1052360250u, 175060874u, 0, ATAN2_TOLERANCE, 0},
+{ 974, 3242503851u, 558292492u, 1051772749u, 4267873474u, 3220775419u, 1413752475u, 0, ATAN2_TOLERANCE, 0},
+{ 975, 3224772709u, 509637100u, 3212030069u, 215050379u, 3220775647u, 560712828u, 0, ATAN2_TOLERANCE, 0},
+{ 976, 1092057101u, 3571665665u, 3188628584u, 757824767u, 1073291771u, 1413754147u, 0, ATAN2_TOLERANCE, 0},
+{ 977, 3214799337u, 998858159u, 1063077962u, 436029885u, 3220711413u, 180436215u, 0, ATAN2_TOLERANCE, 0},
+{ 978, 3205946965u, 996300405u, 3193842624u, 80548098u, 3220775757u, 324606460u, 0, ATAN2_TOLERANCE, 0},
+{ 979, 3228848840u, 3876129407u, 3215332180u, 2226970413u, 3220775558u, 1564964409u, 0, ATAN2_TOLERANCE, 0},
+{ 980, 3237608953u, 200013509u, 3224552716u, 414878724u, 3220775604u, 837415965u, 0, ATAN2_TOLERANCE, 0},
+{ 981, 3230617093u, 309319541u, 1048979765u, 1261662434u, 3220775419u, 1413011838u, 0, ATAN2_TOLERANCE, 0},
+{ 982, 1089252639u, 4062255924u, 3224274128u, 4289485681u, 1073292043u, 3341519446u, 0, ATAN2_TOLERANCE, 0},
+{ 983, 3236136084u, 1611969213u, 1053890378u, 3774617276u, 3220775419u, 1413295040u, 0, ATAN2_TOLERANCE, 0},
+{ 984, 1080412763u, 1752164782u, 3239587974u, 612223386u, 1074340116u, 3087849834u, 0, ATAN2_TOLERANCE, 0},
+{ 985, 1041545782u, 2024044989u, 1074932678u, 3259111307u, 1039286335u, 808027052u, 0, ATAN2_TOLERANCE, 0},
+{ 986, 1053207518u, 2564965629u, 1093571065u, 169360454u, 1032305490u, 1058083632u, 0, ATAN2_TOLERANCE, 0},
+{ 987, 1089599090u, 1860101737u, 3191222372u, 1676437468u, 1073291771u, 1413754453u, 0, ATAN2_TOLERANCE, 0},
+{ 988, 1059802968u, 588387057u, 3192103292u, 2495288012u, 1073291817u, 1431758766u, 0, ATAN2_TOLERANCE, 0},
+{ 989, 3193155705u, 659070058u, 1073095700u, 1393632068u, 3192681709u, 3727162695u, 0, ATAN2_TOLERANCE, 0},
+{ 990, 3217683263u, 4276187829u, 3217553330u, 1868253275u, 3221391407u, 3507577205u, 0, ATAN2_TOLERANCE, 0},
+{ 991, 3223220272u, 2085481575u, 3215994784u, 800910002u, 3220784131u, 2542415732u, 0, ATAN2_TOLERANCE, 0},
+{ 992, 1056934836u, 1950570756u, 3200582211u, 941022151u, 1073378861u, 3957378310u, 0, ATAN2_TOLERANCE, 0},
+{ 993, 1057530368u, 2075610870u, 3250142022u, 3605152103u, 1074340347u, 1413753886u, 0, ATAN2_TOLERANCE, 0},
+{ 994, 3200839250u, 3792931748u, 3204857863u, 804393211u, 3221787339u, 285205990u, 0, ATAN2_TOLERANCE, 0},
+{ 995, 3253646370u, 3430071177u, 3226288311u, 3652522729u, 3220775419u, 1477691882u, 0, ATAN2_TOLERANCE, 0},
+{ 996, 3201314702u, 236884699u, 3227874605u, 2193269825u, 3221823995u, 1363133298u, 0, ATAN2_TOLERANCE, 0},
+{ 997, 1064936593u, 2744231849u, 1046186036u, 771053722u, 1073291767u, 148052633u, 0, ATAN2_TOLERANCE, 0},
+{ 998, 1083996036u, 3000189819u, 1096500901u, 2057239777u, 1060156118u, 1063067065u, 0, ATAN2_TOLERANCE, 0},
+{ 999, 1093835581u, 205759408u, 3244643377u, 2702292618u, 1074283401u, 2306469720u, 0, ATAN2_TOLERANCE, 0},
+
+
+// AUTOMATICALLY GENERATED VECTORS STOP
+
+};
+
+#endif // CYGONCE_LIBM_ATAN2_H multiple inclusion protection
+
+// EOF atan2.h
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/atan2f.c b/ecos/packages/language/c/libm/current/tests/vectors/atan2f.c
new file mode 100644
index 0000000..0c359ef
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/atan2f.c
@@ -0,0 +1,115 @@
+//===========================================================================
+//
+// atan2f.c
+//
+// Test of atan2f() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// Declarations for test system:
+//
+// TESTCASE_TYPE=CYG_TEST_MODULE
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include <cyg/infra/testcase.h> // Test infrastructure
+#include <math.h> // Header for this package
+#include <sys/ieeefp.h> // Cyg_libm_ieee_float_shape_type
+#include "vectors/vector_support_float.h"// extra support for math tests
+
+#include "vectors/atan2f.h"
+
+// FUNCTIONS
+
+static void
+test( CYG_ADDRWORD data )
+{
+ cyg_ucount32 vec_size;
+ cyg_bool ret;
+
+ vec_size = sizeof(atan2f_vec) / sizeof(Cyg_libm_test_float_vec_t);
+ ret = doTestVecFloat( (CYG_ADDRWORD) &atan2f, CYG_LIBM_TEST_VEC_FLOAT,
+ CYG_LIBM_TEST_VEC_FLOAT, CYG_LIBM_TEST_VEC_FLOAT,
+ &atan2f_vec[0], vec_size );
+
+ if (ret==true)
+ {
+ CYG_TEST_PASS("atan2f() is stable");
+ } // if
+ else
+ {
+ CYG_TEST_FAIL("atan2f() failed tests");
+ } // else
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for Math "
+ "library atan2f() function");
+} // test()
+
+
+int
+main(int argc, char *argv[])
+{
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for Math library "
+ "atan2f() function");
+
+ START_TEST( test );
+
+ CYG_TEST_PASS_FINISH("Testing is not applicable to this configuration");
+
+} // main()
+
+
+// EOF atan2f.c
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/atan2f.h b/ecos/packages/language/c/libm/current/tests/vectors/atan2f.h
new file mode 100644
index 0000000..f6e4ae3
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/atan2f.h
@@ -0,0 +1,2294 @@
+#ifndef CYGONCE_LIBM_ATAN2_H
+#define CYGONCE_LIBM_ATAN2_H
+//===========================================================================
+//
+// atan2f.h
+//
+// Test vectors for testing of atan2f() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage: #include "vectors/atan2f.h"
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include "vectors/vector_support_float.h"// extra support for math tests
+
+#define ATAN2_TOLERANCE 1.0E-04
+
+static const Cyg_libm_test_float_vec_t atan2f_vec[] = {
+
+// AUTOMATICALLY GENERATED VECTORS START
+
+{0, 3212836864u, 3212836864u, 3222719460u, 0, ATAN2_TOLERANCE, 0},
+{1, 3212836864u, 3211998003u, 3222611937u, 0, ATAN2_TOLERANCE, 0},
+{2, 3212836864u, 3211159142u, 3222498911u, 0, ATAN2_TOLERANCE, 0},
+{3, 3212836864u, 3210320282u, 3222380124u, 0, ATAN2_TOLERANCE, 0},
+{4, 3212836864u, 3209481421u, 3222255330u, 0, ATAN2_TOLERANCE, 0},
+{5, 3212836864u, 3208642560u, 3222124301u, 0, ATAN2_TOLERANCE, 0},
+{6, 3212836864u, 3207803699u, 3221986832u, 0, ATAN2_TOLERANCE, 0},
+{7, 3212836864u, 3206964838u, 3221842754u, 0, ATAN2_TOLERANCE, 0},
+{8, 3212836864u, 3206125978u, 3221691945u, 0, ATAN2_TOLERANCE, 0},
+{9, 3212836864u, 3205287117u, 3221534339u, 0, ATAN2_TOLERANCE, 0},
+{10, 3212836864u, 3204448256u, 3221369940u, 0, ATAN2_TOLERANCE, 0},
+{11, 3212836864u, 3202770534u, 3221172206u, 0, ATAN2_TOLERANCE, 0},
+{12, 3212836864u, 3201092813u, 3220816969u, 0, ATAN2_TOLERANCE, 0},
+{13, 3212836864u, 3199415091u, 3220449284u, 0, ATAN2_TOLERANCE, 0},
+{14, 3212836864u, 3197737370u, 3220069967u, 0, ATAN2_TOLERANCE, 0},
+{15, 3212836864u, 3196059648u, 3219680081u, 0, ATAN2_TOLERANCE, 0},
+{16, 3212836864u, 3192704205u, 3219280925u, 0, ATAN2_TOLERANCE, 0},
+{17, 3212836864u, 3189348762u, 3218874030u, 0, ATAN2_TOLERANCE, 0},
+{18, 3212836864u, 3184315597u, 3218461132u, 0, ATAN2_TOLERANCE, 0},
+{19, 3212836864u, 3175926989u, 3218044132u, 0, ATAN2_TOLERANCE, 0},
+{20, 3212836864u, 1028443341u, 3217205969u, 0, ATAN2_TOLERANCE, 0},
+{21, 3212836864u, 1036831949u, 3216788969u, 0, ATAN2_TOLERANCE, 0},
+{22, 3212836864u, 1041865114u, 3216376071u, 0, ATAN2_TOLERANCE, 0},
+{23, 3212836864u, 1045220557u, 3215969177u, 0, ATAN2_TOLERANCE, 0},
+{24, 3212836864u, 1048576000u, 3215570021u, 0, ATAN2_TOLERANCE, 0},
+{25, 3212836864u, 1050253722u, 3215180134u, 0, ATAN2_TOLERANCE, 0},
+{26, 3212836864u, 1051931443u, 3214800818u, 0, ATAN2_TOLERANCE, 0},
+{27, 3212836864u, 1053609165u, 3214433132u, 0, ATAN2_TOLERANCE, 0},
+{28, 3212836864u, 1055286886u, 3214077895u, 0, ATAN2_TOLERANCE, 0},
+{29, 3212836864u, 1056964608u, 3213735693u, 0, ATAN2_TOLERANCE, 0},
+{30, 3212836864u, 1057803469u, 3213406896u, 0, ATAN2_TOLERANCE, 0},
+{31, 3212836864u, 1058642330u, 3213091683u, 0, ATAN2_TOLERANCE, 0},
+{32, 3212836864u, 1059481190u, 3212743266u, 0, ATAN2_TOLERANCE, 0},
+{33, 3212836864u, 1060320051u, 3212166956u, 0, ATAN2_TOLERANCE, 0},
+{34, 3212836864u, 1061158912u, 3211617080u, 0, ATAN2_TOLERANCE, 0},
+{35, 3212836864u, 1061997773u, 3211092963u, 0, ATAN2_TOLERANCE, 0},
+{36, 3212836864u, 1062836634u, 3210593788u, 0, ATAN2_TOLERANCE, 0},
+{37, 3212836864u, 1063675494u, 3210118640u, 0, ATAN2_TOLERANCE, 0},
+{38, 3212836864u, 1064514355u, 3209666533u, 0, ATAN2_TOLERANCE, 0},
+{39, 3211998003u, 3212836864u, 3222826983u, 0, ATAN2_TOLERANCE, 0},
+{40, 3211998003u, 3211998003u, 3222719460u, 0, ATAN2_TOLERANCE, 0},
+{41, 3211998003u, 3211159142u, 3222606128u, 0, ATAN2_TOLERANCE, 0},
+{42, 3211998003u, 3210320282u, 3222486682u, 0, ATAN2_TOLERANCE, 0},
+{43, 3211998003u, 3209481421u, 3222360825u, 0, ATAN2_TOLERANCE, 0},
+{44, 3211998003u, 3208642560u, 3222228270u, 0, ATAN2_TOLERANCE, 0},
+{45, 3211998003u, 3207803699u, 3222088756u, 0, ATAN2_TOLERANCE, 0},
+{46, 3211998003u, 3206964838u, 3221942054u, 0, ATAN2_TOLERANCE, 0},
+{47, 3211998003u, 3206125978u, 3221787981u, 0, ATAN2_TOLERANCE, 0},
+{48, 3211998003u, 3205287117u, 3221626414u, 0, ATAN2_TOLERANCE, 0},
+{49, 3211998003u, 3204448256u, 3221457309u, 0, ATAN2_TOLERANCE, 0},
+{50, 3211998003u, 3202770534u, 3221280713u, 0, ATAN2_TOLERANCE, 0},
+{51, 3211998003u, 3201092813u, 3220968099u, 0, ATAN2_TOLERANCE, 0},
+{52, 3211998003u, 3199415091u, 3220586149u, 0, ATAN2_TOLERANCE, 0},
+{53, 3211998003u, 3197737370u, 3220190949u, 0, ATAN2_TOLERANCE, 0},
+{54, 3211998003u, 3196059648u, 3219783638u, 0, ATAN2_TOLERANCE, 0},
+{55, 3211998003u, 3192704205u, 3219365655u, 0, ATAN2_TOLERANCE, 0},
+{56, 3211998003u, 3189348762u, 3218938722u, 0, ATAN2_TOLERANCE, 0},
+{57, 3211998003u, 3184315597u, 3218504822u, 0, ATAN2_TOLERANCE, 0},
+{58, 3211998003u, 3175926989u, 3218066149u, 0, ATAN2_TOLERANCE, 0},
+{59, 3211998003u, 1028443341u, 3217183952u, 0, ATAN2_TOLERANCE, 0},
+{60, 3211998003u, 1036831949u, 3216745279u, 0, ATAN2_TOLERANCE, 0},
+{61, 3211998003u, 1041865114u, 3216311379u, 0, ATAN2_TOLERANCE, 0},
+{62, 3211998003u, 1045220557u, 3215884446u, 0, ATAN2_TOLERANCE, 0},
+{63, 3211998003u, 1048576000u, 3215466463u, 0, ATAN2_TOLERANCE, 0},
+{64, 3211998003u, 1050253722u, 3215059153u, 0, ATAN2_TOLERANCE, 0},
+{65, 3211998003u, 1051931443u, 3214663953u, 0, ATAN2_TOLERANCE, 0},
+{66, 3211998003u, 1053609165u, 3214282002u, 0, ATAN2_TOLERANCE, 0},
+{67, 3211998003u, 1055286886u, 3213914147u, 0, ATAN2_TOLERANCE, 0},
+{68, 3211998003u, 1056964608u, 3213560955u, 0, ATAN2_TOLERANCE, 0},
+{69, 3211998003u, 1057803469u, 3213222745u, 0, ATAN2_TOLERANCE, 0},
+{70, 3211998003u, 1058642330u, 3212899611u, 0, ATAN2_TOLERANCE, 0},
+{71, 3211998003u, 1059481190u, 3212346065u, 0, ATAN2_TOLERANCE, 0},
+{72, 3211998003u, 1060320051u, 3211759257u, 0, ATAN2_TOLERANCE, 0},
+{73, 3211998003u, 1061158912u, 3211201201u, 0, ATAN2_TOLERANCE, 0},
+{74, 3211998003u, 1061997773u, 3210670983u, 0, ATAN2_TOLERANCE, 0},
+{75, 3211998003u, 1062836634u, 3210167553u, 0, ATAN2_TOLERANCE, 0},
+{76, 3211998003u, 1063675494u, 3209689771u, 0, ATAN2_TOLERANCE, 0},
+{77, 3211998003u, 1064514355u, 3209236443u, 0, ATAN2_TOLERANCE, 0},
+{78, 3211159142u, 3212836864u, 3222940009u, 0, ATAN2_TOLERANCE, 0},
+{79, 3211159142u, 3211998003u, 3222832792u, 0, ATAN2_TOLERANCE, 0},
+{80, 3211159142u, 3211159142u, 3222719460u, 0, ATAN2_TOLERANCE, 0},
+{81, 3211159142u, 3210320282u, 3222599655u, 0, ATAN2_TOLERANCE, 0},
+{82, 3211159142u, 3209481421u, 3222473020u, 0, ATAN2_TOLERANCE, 0},
+{83, 3211159142u, 3208642560u, 3222339205u, 0, ATAN2_TOLERANCE, 0},
+{84, 3211159142u, 3207803699u, 3222197877u, 0, ATAN2_TOLERANCE, 0},
+{85, 3211159142u, 3206964838u, 3222048736u, 0, ATAN2_TOLERANCE, 0},
+{86, 3211159142u, 3206125978u, 3221891523u, 0, ATAN2_TOLERANCE, 0},
+{87, 3211159142u, 3205287117u, 3221726044u, 0, ATAN2_TOLERANCE, 0},
+{88, 3211159142u, 3204448256u, 3221552187u, 0, ATAN2_TOLERANCE, 0},
+{89, 3211159142u, 3202770534u, 3221369940u, 0, ATAN2_TOLERANCE, 0},
+{90, 3211159142u, 3201092813u, 3221133371u, 0, ATAN2_TOLERANCE, 0},
+{91, 3211159142u, 3199415091u, 3220736312u, 0, ATAN2_TOLERANCE, 0},
+{92, 3211159142u, 3197737370u, 3220324090u, 0, ATAN2_TOLERANCE, 0},
+{93, 3211159142u, 3196059648u, 3219897918u, 0, ATAN2_TOLERANCE, 0},
+{94, 3211159142u, 3192704205u, 3219459379u, 0, ATAN2_TOLERANCE, 0},
+{95, 3211159142u, 3189348762u, 3219010418u, 0, ATAN2_TOLERANCE, 0},
+{96, 3211159142u, 3184315597u, 3218553311u, 0, ATAN2_TOLERANCE, 0},
+{97, 3211159142u, 3175926989u, 3218090606u, 0, ATAN2_TOLERANCE, 0},
+{98, 3211159142u, 1028443341u, 3217159495u, 0, ATAN2_TOLERANCE, 0},
+{99, 3211159142u, 1036831949u, 3216696791u, 0, ATAN2_TOLERANCE, 0},
+{100, 3211159142u, 1041865114u, 3216239683u, 0, ATAN2_TOLERANCE, 0},
+{101, 3211159142u, 1045220557u, 3215790723u, 0, ATAN2_TOLERANCE, 0},
+{102, 3211159142u, 1048576000u, 3215352184u, 0, ATAN2_TOLERANCE, 0},
+{103, 3211159142u, 1050253722u, 3214926011u, 0, ATAN2_TOLERANCE, 0},
+{104, 3211159142u, 1051931443u, 3214513789u, 0, ATAN2_TOLERANCE, 0},
+{105, 3211159142u, 1053609165u, 3214116731u, 0, ATAN2_TOLERANCE, 0},
+{106, 3211159142u, 1055286886u, 3213735693u, 0, ATAN2_TOLERANCE, 0},
+{107, 3211159142u, 1056964608u, 3213371200u, 0, ATAN2_TOLERANCE, 0},
+{108, 3211159142u, 1057803469u, 3213023485u, 0, ATAN2_TOLERANCE, 0},
+{109, 3211159142u, 1058642330u, 3212548191u, 0, ATAN2_TOLERANCE, 0},
+{110, 3211159142u, 1059481190u, 3211919340u, 0, ATAN2_TOLERANCE, 0},
+{111, 3211159142u, 1060320051u, 3211322773u, 0, ATAN2_TOLERANCE, 0},
+{112, 3211159142u, 1061158912u, 3210757463u, 0, ATAN2_TOLERANCE, 0},
+{113, 3211159142u, 1061997773u, 3210222202u, 0, ATAN2_TOLERANCE, 0},
+{114, 3211159142u, 1062836634u, 3209715661u, 0, ATAN2_TOLERANCE, 0},
+{115, 3211159142u, 1063675494u, 3209236443u, 0, ATAN2_TOLERANCE, 0},
+{116, 3211159142u, 1064514355u, 3208783115u, 0, ATAN2_TOLERANCE, 0},
+{117, 3210320282u, 3212836864u, 3223058796u, 0, ATAN2_TOLERANCE, 0},
+{118, 3210320282u, 3211998003u, 3222952238u, 0, ATAN2_TOLERANCE, 0},
+{119, 3210320282u, 3211159142u, 3222839265u, 0, ATAN2_TOLERANCE, 0},
+{120, 3210320282u, 3210320282u, 3222719460u, 0, ATAN2_TOLERANCE, 0},
+{121, 3210320282u, 3209481421u, 3222592399u, 0, ATAN2_TOLERANCE, 0},
+{122, 3210320282u, 3208642560u, 3222457657u, 0, ATAN2_TOLERANCE, 0},
+{123, 3210320282u, 3207803699u, 3222314820u, 0, ATAN2_TOLERANCE, 0},
+{124, 3210320282u, 3206964838u, 3222163499u, 0, ATAN2_TOLERANCE, 0},
+{125, 3210320282u, 3206125978u, 3222003345u, 0, ATAN2_TOLERANCE, 0},
+{126, 3210320282u, 3205287117u, 3221834070u, 0, ATAN2_TOLERANCE, 0},
+{127, 3210320282u, 3204448256u, 3221655474u, 0, ATAN2_TOLERANCE, 0},
+{128, 3210320282u, 3202770534u, 3221467465u, 0, ATAN2_TOLERANCE, 0},
+{129, 3210320282u, 3201092813u, 3221270095u, 0, ATAN2_TOLERANCE, 0},
+{130, 3210320282u, 3199415091u, 3220901700u, 0, ATAN2_TOLERANCE, 0},
+{131, 3210320282u, 3197737370u, 3220471243u, 0, ATAN2_TOLERANCE, 0},
+{132, 3210320282u, 3196059648u, 3220024624u, 0, ATAN2_TOLERANCE, 0},
+{133, 3210320282u, 3192704205u, 3219563580u, 0, ATAN2_TOLERANCE, 0},
+{134, 3210320282u, 3189348762u, 3219090307u, 0, ATAN2_TOLERANCE, 0},
+{135, 3210320282u, 3184315597u, 3218607430u, 0, ATAN2_TOLERANCE, 0},
+{136, 3210320282u, 3175926989u, 3218117930u, 0, ATAN2_TOLERANCE, 0},
+{137, 3210320282u, 1028443341u, 3217132171u, 0, ATAN2_TOLERANCE, 0},
+{138, 3210320282u, 1036831949u, 3216642671u, 0, ATAN2_TOLERANCE, 0},
+{139, 3210320282u, 1041865114u, 3216159794u, 0, ATAN2_TOLERANCE, 0},
+{140, 3210320282u, 1045220557u, 3215686522u, 0, ATAN2_TOLERANCE, 0},
+{141, 3210320282u, 1048576000u, 3215225477u, 0, ATAN2_TOLERANCE, 0},
+{142, 3210320282u, 1050253722u, 3214778858u, 0, ATAN2_TOLERANCE, 0},
+{143, 3210320282u, 1051931443u, 3214348401u, 0, ATAN2_TOLERANCE, 0},
+{144, 3210320282u, 1053609165u, 3213935384u, 0, ATAN2_TOLERANCE, 0},
+{145, 3210320282u, 1055286886u, 3213540644u, 0, ATAN2_TOLERANCE, 0},
+{146, 3210320282u, 1056964608u, 3213164626u, 0, ATAN2_TOLERANCE, 0},
+{147, 3210320282u, 1057803469u, 3212778001u, 0, ATAN2_TOLERANCE, 0},
+{148, 3210320282u, 1058642330u, 3212100904u, 0, ATAN2_TOLERANCE, 0},
+{149, 3210320282u, 1059481190u, 3211460288u, 0, ATAN2_TOLERANCE, 0},
+{150, 3210320282u, 1060320051u, 3210855004u, 0, ATAN2_TOLERANCE, 0},
+{151, 3210320282u, 1061158912u, 3210283656u, 0, ATAN2_TOLERANCE, 0},
+{152, 3210320282u, 1061997773u, 3209744688u, 0, ATAN2_TOLERANCE, 0},
+{153, 3210320282u, 1062836634u, 3209236443u, 0, ATAN2_TOLERANCE, 0},
+{154, 3210320282u, 1063675494u, 3208757224u, 0, ATAN2_TOLERANCE, 0},
+{155, 3210320282u, 1064514355u, 3208305332u, 0, ATAN2_TOLERANCE, 0},
+{156, 3209481421u, 3212836864u, 3223183590u, 0, ATAN2_TOLERANCE, 0},
+{157, 3209481421u, 3211998003u, 3223078095u, 0, ATAN2_TOLERANCE, 0},
+{158, 3209481421u, 3211159142u, 3222965900u, 0, ATAN2_TOLERANCE, 0},
+{159, 3209481421u, 3210320282u, 3222846521u, 0, ATAN2_TOLERANCE, 0},
+{160, 3209481421u, 3209481421u, 3222719460u, 0, ATAN2_TOLERANCE, 0},
+{161, 3209481421u, 3208642560u, 3222584207u, 0, ATAN2_TOLERANCE, 0},
+{162, 3209481421u, 3207803699u, 3222440253u, 0, ATAN2_TOLERANCE, 0},
+{163, 3209481421u, 3206964838u, 3222287104u, 0, ATAN2_TOLERANCE, 0},
+{164, 3209481421u, 3206125978u, 3222124301u, 0, ATAN2_TOLERANCE, 0},
+{165, 3209481421u, 3205287117u, 3221951438u, 0, ATAN2_TOLERANCE, 0},
+{166, 3209481421u, 3204448256u, 3221768197u, 0, ATAN2_TOLERANCE, 0},
+{167, 3209481421u, 3202770534u, 3221574378u, 0, ATAN2_TOLERANCE, 0},
+{168, 3209481421u, 3201092813u, 3221369940u, 0, ATAN2_TOLERANCE, 0},
+{169, 3209481421u, 3199415091u, 3221084600u, 0, ATAN2_TOLERANCE, 0},
+{170, 3209481421u, 3197737370u, 3220634637u, 0, ATAN2_TOLERANCE, 0},
+{171, 3209481421u, 3196059648u, 3220165833u, 0, ATAN2_TOLERANCE, 0},
+{172, 3209481421u, 3192704205u, 3219680081u, 0, ATAN2_TOLERANCE, 0},
+{173, 3209481421u, 3189348762u, 3219179862u, 0, ATAN2_TOLERANCE, 0},
+{174, 3209481421u, 3184315597u, 3218668216u, 0, ATAN2_TOLERANCE, 0},
+{175, 3209481421u, 3175926989u, 3218148658u, 0, ATAN2_TOLERANCE, 0},
+{176, 3209481421u, 1028443341u, 3217101444u, 0, ATAN2_TOLERANCE, 0},
+{177, 3209481421u, 1036831949u, 3216581885u, 0, ATAN2_TOLERANCE, 0},
+{178, 3209481421u, 1041865114u, 3216070239u, 0, ATAN2_TOLERANCE, 0},
+{179, 3209481421u, 1045220557u, 3215570021u, 0, ATAN2_TOLERANCE, 0},
+{180, 3209481421u, 1048576000u, 3215084268u, 0, ATAN2_TOLERANCE, 0},
+{181, 3209481421u, 1050253722u, 3214615464u, 0, ATAN2_TOLERANCE, 0},
+{182, 3209481421u, 1051931443u, 3214165501u, 0, ATAN2_TOLERANCE, 0},
+{183, 3209481421u, 1053609165u, 3213735693u, 0, ATAN2_TOLERANCE, 0},
+{184, 3209481421u, 1055286886u, 3213326816u, 0, ATAN2_TOLERANCE, 0},
+{185, 3209481421u, 1056964608u, 3212939180u, 0, ATAN2_TOLERANCE, 0},
+{186, 3209481421u, 1057803469u, 3212308532u, 0, ATAN2_TOLERANCE, 0},
+{187, 3209481421u, 1058642330u, 3211617080u, 0, ATAN2_TOLERANCE, 0},
+{188, 3209481421u, 1059481190u, 3210965865u, 0, ATAN2_TOLERANCE, 0},
+{189, 3209481421u, 1060320051u, 3210353271u, 0, ATAN2_TOLERANCE, 0},
+{190, 3209481421u, 1061158912u, 3209777456u, 0, ATAN2_TOLERANCE, 0},
+{191, 3209481421u, 1061997773u, 3209236443u, 0, ATAN2_TOLERANCE, 0},
+{192, 3209481421u, 1062836634u, 3208728198u, 0, ATAN2_TOLERANCE, 0},
+{193, 3209481421u, 1063675494u, 3208250684u, 0, ATAN2_TOLERANCE, 0},
+{194, 3209481421u, 1064514355u, 3207801902u, 0, ATAN2_TOLERANCE, 0},
+{195, 3208642560u, 3212836864u, 3223314619u, 0, ATAN2_TOLERANCE, 0},
+{196, 3208642560u, 3211998003u, 3223210650u, 0, ATAN2_TOLERANCE, 0},
+{197, 3208642560u, 3211159142u, 3223099715u, 0, ATAN2_TOLERANCE, 0},
+{198, 3208642560u, 3210320282u, 3222981263u, 0, ATAN2_TOLERANCE, 0},
+{199, 3208642560u, 3209481421u, 3222854713u, 0, ATAN2_TOLERANCE, 0},
+{200, 3208642560u, 3208642560u, 3222719460u, 0, ATAN2_TOLERANCE, 0},
+{201, 3208642560u, 3207803699u, 3222574886u, 0, ATAN2_TOLERANCE, 0},
+{202, 3208642560u, 3206964838u, 3222420375u, 0, ATAN2_TOLERANCE, 0},
+{203, 3208642560u, 3206125978u, 3222255330u, 0, ATAN2_TOLERANCE, 0},
+{204, 3208642560u, 3205287117u, 3222079202u, 0, ATAN2_TOLERANCE, 0},
+{205, 3208642560u, 3204448256u, 3221891523u, 0, ATAN2_TOLERANCE, 0},
+{206, 3208642560u, 3202770534u, 3221691945u, 0, ATAN2_TOLERANCE, 0},
+{207, 3208642560u, 3201092813u, 3221480291u, 0, ATAN2_TOLERANCE, 0},
+{208, 3208642560u, 3199415091u, 3221256608u, 0, ATAN2_TOLERANCE, 0},
+{209, 3208642560u, 3197737370u, 3220816969u, 0, ATAN2_TOLERANCE, 0},
+{210, 3208642560u, 3196059648u, 3220324090u, 0, ATAN2_TOLERANCE, 0},
+{211, 3208642560u, 3192704205u, 3219811142u, 0, ATAN2_TOLERANCE, 0},
+{212, 3208642560u, 3189348762u, 3219280925u, 0, ATAN2_TOLERANCE, 0},
+{213, 3208642560u, 3184315597u, 3218736973u, 0, ATAN2_TOLERANCE, 0},
+{214, 3208642560u, 3175926989u, 3218183465u, 0, ATAN2_TOLERANCE, 0},
+{215, 3208642560u, 1028443341u, 3217066636u, 0, ATAN2_TOLERANCE, 0},
+{216, 3208642560u, 1036831949u, 3216513128u, 0, ATAN2_TOLERANCE, 0},
+{217, 3208642560u, 1041865114u, 3215969177u, 0, ATAN2_TOLERANCE, 0},
+{218, 3208642560u, 1045220557u, 3215438959u, 0, ATAN2_TOLERANCE, 0},
+{219, 3208642560u, 1048576000u, 3214926011u, 0, ATAN2_TOLERANCE, 0},
+{220, 3208642560u, 1050253722u, 3214433132u, 0, ATAN2_TOLERANCE, 0},
+{221, 3208642560u, 1051931443u, 3213962357u, 0, ATAN2_TOLERANCE, 0},
+{222, 3208642560u, 1053609165u, 3213514991u, 0, ATAN2_TOLERANCE, 0},
+{223, 3208642560u, 1055286886u, 3213091683u, 0, ATAN2_TOLERANCE, 0},
+{224, 3208642560u, 1056964608u, 3212548191u, 0, ATAN2_TOLERANCE, 0},
+{225, 3208642560u, 1057803469u, 3211797473u, 0, ATAN2_TOLERANCE, 0},
+{226, 3208642560u, 1058642330u, 3211092963u, 0, ATAN2_TOLERANCE, 0},
+{227, 3208642560u, 1059481190u, 3210432783u, 0, ATAN2_TOLERANCE, 0},
+{228, 3208642560u, 1060320051u, 3209814738u, 0, ATAN2_TOLERANCE, 0},
+{229, 3208642560u, 1061158912u, 3209236443u, 0, ATAN2_TOLERANCE, 0},
+{230, 3208642560u, 1061997773u, 3208695430u, 0, ATAN2_TOLERANCE, 0},
+{231, 3208642560u, 1062836634u, 3208189229u, 0, ATAN2_TOLERANCE, 0},
+{232, 3208642560u, 1063675494u, 3207715422u, 0, ATAN2_TOLERANCE, 0},
+{233, 3208642560u, 1064514355u, 3207271684u, 0, ATAN2_TOLERANCE, 0},
+{234, 3207803699u, 3212836864u, 3223452088u, 0, ATAN2_TOLERANCE, 0},
+{235, 3207803699u, 3211998003u, 3223350163u, 0, ATAN2_TOLERANCE, 0},
+{236, 3207803699u, 3211159142u, 3223241043u, 0, ATAN2_TOLERANCE, 0},
+{237, 3207803699u, 3210320282u, 3223124100u, 0, ATAN2_TOLERANCE, 0},
+{238, 3207803699u, 3209481421u, 3222998667u, 0, ATAN2_TOLERANCE, 0},
+{239, 3207803699u, 3208642560u, 3222864034u, 0, ATAN2_TOLERANCE, 0},
+{240, 3207803699u, 3207803699u, 3222719460u, 0, ATAN2_TOLERANCE, 0},
+{241, 3207803699u, 3206964838u, 3222564186u, 0, ATAN2_TOLERANCE, 0},
+{242, 3207803699u, 3206125978u, 3222397455u, 0, ATAN2_TOLERANCE, 0},
+{243, 3207803699u, 3205287117u, 3222218539u, 0, ATAN2_TOLERANCE, 0},
+{244, 3207803699u, 3204448256u, 3222026776u, 0, ATAN2_TOLERANCE, 0},
+{245, 3207803699u, 3202770534u, 3221821624u, 0, ATAN2_TOLERANCE, 0},
+{246, 3207803699u, 3201092813u, 3221602718u, 0, ATAN2_TOLERANCE, 0},
+{247, 3207803699u, 3199415091u, 3221369940u, 0, ATAN2_TOLERANCE, 0},
+{248, 3207803699u, 3197737370u, 3221021529u, 0, ATAN2_TOLERANCE, 0},
+{249, 3207803699u, 3196059648u, 3220502544u, 0, ATAN2_TOLERANCE, 0},
+{250, 3207803699u, 3192704205u, 3219959597u, 0, ATAN2_TOLERANCE, 0},
+{251, 3207803699u, 3189348762u, 3219395830u, 0, ATAN2_TOLERANCE, 0},
+{252, 3207803699u, 3184315597u, 3218815369u, 0, ATAN2_TOLERANCE, 0},
+{253, 3207803699u, 3175926989u, 3218223221u, 0, ATAN2_TOLERANCE, 0},
+{254, 3207803699u, 1028443341u, 3217026880u, 0, ATAN2_TOLERANCE, 0},
+{255, 3207803699u, 1036831949u, 3216434732u, 0, ATAN2_TOLERANCE, 0},
+{256, 3207803699u, 1041865114u, 3215854271u, 0, ATAN2_TOLERANCE, 0},
+{257, 3207803699u, 1045220557u, 3215290504u, 0, ATAN2_TOLERANCE, 0},
+{258, 3207803699u, 1048576000u, 3214747557u, 0, ATAN2_TOLERANCE, 0},
+{259, 3207803699u, 1050253722u, 3214228572u, 0, ATAN2_TOLERANCE, 0},
+{260, 3207803699u, 1051931443u, 3213735693u, 0, ATAN2_TOLERANCE, 0},
+{261, 3207803699u, 1053609165u, 3213270137u, 0, ATAN2_TOLERANCE, 0},
+{262, 3207803699u, 1055286886u, 3212827785u, 0, ATAN2_TOLERANCE, 0},
+{263, 3207803699u, 1056964608u, 3212007178u, 0, ATAN2_TOLERANCE, 0},
+{264, 3207803699u, 1057803469u, 3211240128u, 0, ATAN2_TOLERANCE, 0},
+{265, 3207803699u, 1058642330u, 3210524461u, 0, ATAN2_TOLERANCE, 0},
+{266, 3207803699u, 1059481190u, 3209857537u, 0, ATAN2_TOLERANCE, 0},
+{267, 3207803699u, 1060320051u, 3209236443u, 0, ATAN2_TOLERANCE, 0},
+{268, 3207803699u, 1061158912u, 3208658147u, 0, ATAN2_TOLERANCE, 0},
+{269, 3207803699u, 1061997773u, 3208119614u, 0, ATAN2_TOLERANCE, 0},
+{270, 3207803699u, 1062836634u, 3207617881u, 0, ATAN2_TOLERANCE, 0},
+{271, 3207803699u, 1063675494u, 3207150112u, 0, ATAN2_TOLERANCE, 0},
+{272, 3207803699u, 1064514355u, 3206713629u, 0, ATAN2_TOLERANCE, 0},
+{273, 3206964838u, 3212836864u, 3223596166u, 0, ATAN2_TOLERANCE, 0},
+{274, 3206964838u, 3211998003u, 3223496866u, 0, ATAN2_TOLERANCE, 0},
+{275, 3206964838u, 3211159142u, 3223390184u, 0, ATAN2_TOLERANCE, 0},
+{276, 3206964838u, 3210320282u, 3223275421u, 0, ATAN2_TOLERANCE, 0},
+{277, 3206964838u, 3209481421u, 3223151816u, 0, ATAN2_TOLERANCE, 0},
+{278, 3206964838u, 3208642560u, 3223018545u, 0, ATAN2_TOLERANCE, 0},
+{279, 3206964838u, 3207803699u, 3222874734u, 0, ATAN2_TOLERANCE, 0},
+{280, 3206964838u, 3206964838u, 3222719460u, 0, ATAN2_TOLERANCE, 0},
+{281, 3206964838u, 3206125978u, 3222551777u, 0, ATAN2_TOLERANCE, 0},
+{282, 3206964838u, 3205287117u, 3222370740u, 0, ATAN2_TOLERANCE, 0},
+{283, 3206964838u, 3204448256u, 3222175448u, 0, ATAN2_TOLERANCE, 0},
+{284, 3206964838u, 3202770534u, 3221965100u, 0, ATAN2_TOLERANCE, 0},
+{285, 3206964838u, 3201092813u, 3221739070u, 0, ATAN2_TOLERANCE, 0},
+{286, 3206964838u, 3199415091u, 3221497002u, 0, ATAN2_TOLERANCE, 0},
+{287, 3206964838u, 3197737370u, 3221238911u, 0, ATAN2_TOLERANCE, 0},
+{288, 3206964838u, 3196059648u, 3220705128u, 0, ATAN2_TOLERANCE, 0},
+{289, 3206964838u, 3192704205u, 3220129041u, 0, ATAN2_TOLERANCE, 0},
+{290, 3206964838u, 3189348762u, 3219527577u, 0, ATAN2_TOLERANCE, 0},
+{291, 3206964838u, 3184315597u, 3218905566u, 0, ATAN2_TOLERANCE, 0},
+{292, 3206964838u, 3175926989u, 3218269060u, 0, ATAN2_TOLERANCE, 0},
+{293, 3206964838u, 1028443341u, 3216981041u, 0, ATAN2_TOLERANCE, 0},
+{294, 3206964838u, 1036831949u, 3216344535u, 0, ATAN2_TOLERANCE, 0},
+{295, 3206964838u, 1041865114u, 3215722524u, 0, ATAN2_TOLERANCE, 0},
+{296, 3206964838u, 1045220557u, 3215121060u, 0, ATAN2_TOLERANCE, 0},
+{297, 3206964838u, 1048576000u, 3214544973u, 0, ATAN2_TOLERANCE, 0},
+{298, 3206964838u, 1050253722u, 3213997751u, 0, ATAN2_TOLERANCE, 0},
+{299, 3206964838u, 1051931443u, 3213481570u, 0, ATAN2_TOLERANCE, 0},
+{300, 3206964838u, 1053609165u, 3212997433u, 0, ATAN2_TOLERANCE, 0},
+{301, 3206964838u, 1055286886u, 3212253884u, 0, ATAN2_TOLERANCE, 0},
+{302, 3206964838u, 1056964608u, 3211412490u, 0, ATAN2_TOLERANCE, 0},
+{303, 3206964838u, 1057803469u, 3210631321u, 0, ATAN2_TOLERANCE, 0},
+{304, 3206964838u, 1058642330u, 3209907174u, 0, ATAN2_TOLERANCE, 0},
+{305, 3206964838u, 1059481190u, 3209236443u, 0, ATAN2_TOLERANCE, 0},
+{306, 3206964838u, 1060320051u, 3208615348u, 0, ATAN2_TOLERANCE, 0},
+{307, 3206964838u, 1061158912u, 3208040102u, 0, ATAN2_TOLERANCE, 0},
+{308, 3206964838u, 1061997773u, 3207507020u, 0, ATAN2_TOLERANCE, 0},
+{309, 3206964838u, 1062836634u, 3207012597u, 0, ATAN2_TOLERANCE, 0},
+{310, 3206964838u, 1063675494u, 3206553546u, 0, ATAN2_TOLERANCE, 0},
+{311, 3206964838u, 1064514355u, 3206126820u, 0, ATAN2_TOLERANCE, 0},
+{312, 3206125978u, 3212836864u, 3223746975u, 0, ATAN2_TOLERANCE, 0},
+{313, 3206125978u, 3211998003u, 3223650939u, 0, ATAN2_TOLERANCE, 0},
+{314, 3206125978u, 3211159142u, 3223547397u, 0, ATAN2_TOLERANCE, 0},
+{315, 3206125978u, 3210320282u, 3223435575u, 0, ATAN2_TOLERANCE, 0},
+{316, 3206125978u, 3209481421u, 3223314619u, 0, ATAN2_TOLERANCE, 0},
+{317, 3206125978u, 3208642560u, 3223183590u, 0, ATAN2_TOLERANCE, 0},
+{318, 3206125978u, 3207803699u, 3223041465u, 0, ATAN2_TOLERANCE, 0},
+{319, 3206125978u, 3206964838u, 3222887143u, 0, ATAN2_TOLERANCE, 0},
+{320, 3206125978u, 3206125978u, 3222719460u, 0, ATAN2_TOLERANCE, 0},
+{321, 3206125978u, 3205287117u, 3222537214u, 0, ATAN2_TOLERANCE, 0},
+{322, 3206125978u, 3204448256u, 3222339205u, 0, ATAN2_TOLERANCE, 0},
+{323, 3206125978u, 3202770534u, 3222124301u, 0, ATAN2_TOLERANCE, 0},
+{324, 3206125978u, 3201092813u, 3221891523u, 0, ATAN2_TOLERANCE, 0},
+{325, 3206125978u, 3199415091u, 3221640166u, 0, ATAN2_TOLERANCE, 0},
+{326, 3206125978u, 3197737370u, 3221369940u, 0, ATAN2_TOLERANCE, 0},
+{327, 3206125978u, 3196059648u, 3220936799u, 0, ATAN2_TOLERANCE, 0},
+{328, 3206125978u, 3192704205u, 3220324090u, 0, ATAN2_TOLERANCE, 0},
+{329, 3206125978u, 3189348762u, 3219680081u, 0, ATAN2_TOLERANCE, 0},
+{330, 3206125978u, 3184315597u, 3219010418u, 0, ATAN2_TOLERANCE, 0},
+{331, 3206125978u, 3175926989u, 3218322490u, 0, ATAN2_TOLERANCE, 0},
+{332, 3206125978u, 1028443341u, 3216927611u, 0, ATAN2_TOLERANCE, 0},
+{333, 3206125978u, 1036831949u, 3216239683u, 0, ATAN2_TOLERANCE, 0},
+{334, 3206125978u, 1041865114u, 3215570021u, 0, ATAN2_TOLERANCE, 0},
+{335, 3206125978u, 1045220557u, 3214926011u, 0, ATAN2_TOLERANCE, 0},
+{336, 3206125978u, 1048576000u, 3214313303u, 0, ATAN2_TOLERANCE, 0},
+{337, 3206125978u, 1050253722u, 3213735693u, 0, ATAN2_TOLERANCE, 0},
+{338, 3206125978u, 1051931443u, 3213195241u, 0, ATAN2_TOLERANCE, 0},
+{339, 3206125978u, 1053609165u, 3212548191u, 0, ATAN2_TOLERANCE, 0},
+{340, 3206125978u, 1055286886u, 3211617080u, 0, ATAN2_TOLERANCE, 0},
+{341, 3206125978u, 1056964608u, 3210757463u, 0, ATAN2_TOLERANCE, 0},
+{342, 3206125978u, 1057803469u, 3209965428u, 0, ATAN2_TOLERANCE, 0},
+{343, 3206125978u, 1058642330u, 3209236443u, 0, ATAN2_TOLERANCE, 0},
+{344, 3206125978u, 1059481190u, 3208565712u, 0, ATAN2_TOLERANCE, 0},
+{345, 3206125978u, 1060320051u, 3207948424u, 0, ATAN2_TOLERANCE, 0},
+{346, 3206125978u, 1061158912u, 3207379923u, 0, ATAN2_TOLERANCE, 0},
+{347, 3206125978u, 1061997773u, 3206855805u, 0, ATAN2_TOLERANCE, 0},
+{348, 3206125978u, 1062836634u, 3206371981u, 0, ATAN2_TOLERANCE, 0},
+{349, 3206125978u, 1063675494u, 3205924695u, 0, ATAN2_TOLERANCE, 0},
+{350, 3206125978u, 1064514355u, 3205510527u, 0, ATAN2_TOLERANCE, 0},
+{351, 3205287117u, 3212836864u, 3223904581u, 0, ATAN2_TOLERANCE, 0},
+{352, 3205287117u, 3211998003u, 3223812506u, 0, ATAN2_TOLERANCE, 0},
+{353, 3205287117u, 3211159142u, 3223712876u, 0, ATAN2_TOLERANCE, 0},
+{354, 3205287117u, 3210320282u, 3223604850u, 0, ATAN2_TOLERANCE, 0},
+{355, 3205287117u, 3209481421u, 3223487482u, 0, ATAN2_TOLERANCE, 0},
+{356, 3205287117u, 3208642560u, 3223359718u, 0, ATAN2_TOLERANCE, 0},
+{357, 3205287117u, 3207803699u, 3223220381u, 0, ATAN2_TOLERANCE, 0},
+{358, 3205287117u, 3206964838u, 3223068180u, 0, ATAN2_TOLERANCE, 0},
+{359, 3205287117u, 3206125978u, 3222901706u, 0, ATAN2_TOLERANCE, 0},
+{360, 3205287117u, 3205287117u, 3222719460u, 0, ATAN2_TOLERANCE, 0},
+{361, 3205287117u, 3204448256u, 3222519882u, 0, ATAN2_TOLERANCE, 0},
+{362, 3205287117u, 3202770534u, 3222301419u, 0, ATAN2_TOLERANCE, 0},
+{363, 3205287117u, 3201092813u, 3222062624u, 0, ATAN2_TOLERANCE, 0},
+{364, 3205287117u, 3199415091u, 3221802296u, 0, ATAN2_TOLERANCE, 0},
+{365, 3205287117u, 3197737370u, 3221519673u, 0, ATAN2_TOLERANCE, 0},
+{366, 3205287117u, 3196059648u, 3221203861u, 0, ATAN2_TOLERANCE, 0},
+{367, 3205287117u, 3192704205u, 3220550754u, 0, ATAN2_TOLERANCE, 0},
+{368, 3205287117u, 3189348762u, 3219858535u, 0, ATAN2_TOLERANCE, 0},
+{369, 3205287117u, 3184315597u, 3219133771u, 0, ATAN2_TOLERANCE, 0},
+{370, 3205287117u, 3175926989u, 3218385561u, 0, ATAN2_TOLERANCE, 0},
+{371, 3205287117u, 1028443341u, 3216864540u, 0, ATAN2_TOLERANCE, 0},
+{372, 3205287117u, 1036831949u, 3216116330u, 0, ATAN2_TOLERANCE, 0},
+{373, 3205287117u, 1041865114u, 3215391567u, 0, ATAN2_TOLERANCE, 0},
+{374, 3205287117u, 1045220557u, 3214699347u, 0, ATAN2_TOLERANCE, 0},
+{375, 3205287117u, 1048576000u, 3214046240u, 0, ATAN2_TOLERANCE, 0},
+{376, 3205287117u, 1050253722u, 3213436227u, 0, ATAN2_TOLERANCE, 0},
+{377, 3205287117u, 1051931443u, 3212870981u, 0, ATAN2_TOLERANCE, 0},
+{378, 3205287117u, 1053609165u, 3211863786u, 0, ATAN2_TOLERANCE, 0},
+{379, 3205287117u, 1055286886u, 3210908605u, 0, ATAN2_TOLERANCE, 0},
+{380, 3205287117u, 1056964608u, 3210034755u, 0, ATAN2_TOLERANCE, 0},
+{381, 3205287117u, 1057803469u, 3209236443u, 0, ATAN2_TOLERANCE, 0},
+{382, 3205287117u, 1058642330u, 3208507458u, 0, ATAN2_TOLERANCE, 0},
+{383, 3205287117u, 1059481190u, 3207841564u, 0, ATAN2_TOLERANCE, 0},
+{384, 3205287117u, 1060320051u, 3207232758u, 0, ATAN2_TOLERANCE, 0},
+{385, 3205287117u, 1061158912u, 3206675412u, 0, ATAN2_TOLERANCE, 0},
+{386, 3205287117u, 1061997773u, 3206164353u, 0, ATAN2_TOLERANCE, 0},
+{387, 3205287117u, 1062836634u, 3205694884u, 0, ATAN2_TOLERANCE, 0},
+{388, 3205287117u, 1063675494u, 3205262780u, 0, ATAN2_TOLERANCE, 0},
+{389, 3205287117u, 1064514355u, 3204864260u, 0, ATAN2_TOLERANCE, 0},
+{390, 3204448256u, 3212836864u, 3224068980u, 0, ATAN2_TOLERANCE, 0},
+{391, 3204448256u, 3211998003u, 3223981611u, 0, ATAN2_TOLERANCE, 0},
+{392, 3204448256u, 3211159142u, 3223886733u, 0, ATAN2_TOLERANCE, 0},
+{393, 3204448256u, 3210320282u, 3223783446u, 0, ATAN2_TOLERANCE, 0},
+{394, 3204448256u, 3209481421u, 3223670723u, 0, ATAN2_TOLERANCE, 0},
+{395, 3204448256u, 3208642560u, 3223547397u, 0, ATAN2_TOLERANCE, 0},
+{396, 3204448256u, 3207803699u, 3223412144u, 0, ATAN2_TOLERANCE, 0},
+{397, 3204448256u, 3206964838u, 3223263472u, 0, ATAN2_TOLERANCE, 0},
+{398, 3204448256u, 3206125978u, 3223099715u, 0, ATAN2_TOLERANCE, 0},
+{399, 3204448256u, 3205287117u, 3222919038u, 0, ATAN2_TOLERANCE, 0},
+{400, 3204448256u, 3204448256u, 3222719460u, 0, ATAN2_TOLERANCE, 0},
+{401, 3204448256u, 3202770534u, 3222498911u, 0, ATAN2_TOLERANCE, 0},
+{402, 3204448256u, 3201092813u, 3222255330u, 0, ATAN2_TOLERANCE, 0},
+{403, 3204448256u, 3199415091u, 3221986832u, 0, ATAN2_TOLERANCE, 0},
+{404, 3204448256u, 3197737370u, 3221691945u, 0, ATAN2_TOLERANCE, 0},
+{405, 3204448256u, 3196059648u, 3221369940u, 0, ATAN2_TOLERANCE, 0},
+{406, 3204448256u, 3192704205u, 3220816969u, 0, ATAN2_TOLERANCE, 0},
+{407, 3204448256u, 3189348762u, 3220069967u, 0, ATAN2_TOLERANCE, 0},
+{408, 3204448256u, 3184315597u, 3219280925u, 0, ATAN2_TOLERANCE, 0},
+{409, 3204448256u, 3175926989u, 3218461132u, 0, ATAN2_TOLERANCE, 0},
+{410, 3204448256u, 1028443341u, 3216788969u, 0, ATAN2_TOLERANCE, 0},
+{411, 3204448256u, 1036831949u, 3215969177u, 0, ATAN2_TOLERANCE, 0},
+{412, 3204448256u, 1041865114u, 3215180134u, 0, ATAN2_TOLERANCE, 0},
+{413, 3204448256u, 1045220557u, 3214433132u, 0, ATAN2_TOLERANCE, 0},
+{414, 3204448256u, 1048576000u, 3213735693u, 0, ATAN2_TOLERANCE, 0},
+{415, 3204448256u, 1050253722u, 3213091683u, 0, ATAN2_TOLERANCE, 0},
+{416, 3204448256u, 1051931443u, 3212166956u, 0, ATAN2_TOLERANCE, 0},
+{417, 3204448256u, 1053609165u, 3211092963u, 0, ATAN2_TOLERANCE, 0},
+{418, 3204448256u, 1055286886u, 3210118640u, 0, ATAN2_TOLERANCE, 0},
+{419, 3204448256u, 1056964608u, 3209236443u, 0, ATAN2_TOLERANCE, 0},
+{420, 3204448256u, 1057803469u, 3208438131u, 0, ATAN2_TOLERANCE, 0},
+{421, 3204448256u, 1058642330u, 3207715422u, 0, ATAN2_TOLERANCE, 0},
+{422, 3204448256u, 1059481190u, 3207060395u, 0, ATAN2_TOLERANCE, 0},
+{423, 3204448256u, 1060320051u, 3206465708u, 0, ATAN2_TOLERANCE, 0},
+{424, 3204448256u, 1061158912u, 3205924695u, 0, ATAN2_TOLERANCE, 0},
+{425, 3204448256u, 1061997773u, 3205431389u, 0, ATAN2_TOLERANCE, 0},
+{426, 3204448256u, 1062836634u, 3204980498u, 0, ATAN2_TOLERANCE, 0},
+{427, 3204448256u, 1063675494u, 3204567349u, 0, ATAN2_TOLERANCE, 0},
+{428, 3204448256u, 1064514355u, 3203927422u, 0, ATAN2_TOLERANCE, 0},
+{429, 3202770534u, 3212836864u, 3224240081u, 0, ATAN2_TOLERANCE, 0},
+{430, 3202770534u, 3211998003u, 3224158207u, 0, ATAN2_TOLERANCE, 0},
+{431, 3202770534u, 3211159142u, 3224068980u, 0, ATAN2_TOLERANCE, 0},
+{432, 3202770534u, 3210320282u, 3223971455u, 0, ATAN2_TOLERANCE, 0},
+{433, 3202770534u, 3209481421u, 3223864541u, 0, ATAN2_TOLERANCE, 0},
+{434, 3202770534u, 3208642560u, 3223746975u, 0, ATAN2_TOLERANCE, 0},
+{435, 3202770534u, 3207803699u, 3223617296u, 0, ATAN2_TOLERANCE, 0},
+{436, 3202770534u, 3206964838u, 3223473820u, 0, ATAN2_TOLERANCE, 0},
+{437, 3202770534u, 3206125978u, 3223314619u, 0, ATAN2_TOLERANCE, 0},
+{438, 3202770534u, 3205287117u, 3223137501u, 0, ATAN2_TOLERANCE, 0},
+{439, 3202770534u, 3204448256u, 3222940009u, 0, ATAN2_TOLERANCE, 0},
+{440, 3202770534u, 3202770534u, 3222719460u, 0, ATAN2_TOLERANCE, 0},
+{441, 3202770534u, 3201092813u, 3222473020u, 0, ATAN2_TOLERANCE, 0},
+{442, 3202770534u, 3199415091u, 3222197877u, 0, ATAN2_TOLERANCE, 0},
+{443, 3202770534u, 3197737370u, 3221891523u, 0, ATAN2_TOLERANCE, 0},
+{444, 3202770534u, 3196059648u, 3221552187u, 0, ATAN2_TOLERANCE, 0},
+{445, 3202770534u, 3192704205u, 3221133371u, 0, ATAN2_TOLERANCE, 0},
+{446, 3202770534u, 3189348762u, 3220324090u, 0, ATAN2_TOLERANCE, 0},
+{447, 3202770534u, 3184315597u, 3219459379u, 0, ATAN2_TOLERANCE, 0},
+{448, 3202770534u, 3175926989u, 3218553311u, 0, ATAN2_TOLERANCE, 0},
+{449, 3202770534u, 1028443341u, 3216696791u, 0, ATAN2_TOLERANCE, 0},
+{450, 3202770534u, 1036831949u, 3215790723u, 0, ATAN2_TOLERANCE, 0},
+{451, 3202770534u, 1041865114u, 3214926011u, 0, ATAN2_TOLERANCE, 0},
+{452, 3202770534u, 1045220557u, 3214116731u, 0, ATAN2_TOLERANCE, 0},
+{453, 3202770534u, 1048576000u, 3213371200u, 0, ATAN2_TOLERANCE, 0},
+{454, 3202770534u, 1050253722u, 3212548191u, 0, ATAN2_TOLERANCE, 0},
+{455, 3202770534u, 1051931443u, 3211322773u, 0, ATAN2_TOLERANCE, 0},
+{456, 3202770534u, 1053609165u, 3210222202u, 0, ATAN2_TOLERANCE, 0},
+{457, 3202770534u, 1055286886u, 3209236443u, 0, ATAN2_TOLERANCE, 0},
+{458, 3202770534u, 1056964608u, 3208354245u, 0, ATAN2_TOLERANCE, 0},
+{459, 3202770534u, 1057803469u, 3207564280u, 0, ATAN2_TOLERANCE, 0},
+{460, 3202770534u, 1058642330u, 3206855805u, 0, ATAN2_TOLERANCE, 0},
+{461, 3202770534u, 1059481190u, 3206219002u, 0, ATAN2_TOLERANCE, 0},
+{462, 3202770534u, 1060320051u, 3205645100u, 0, ATAN2_TOLERANCE, 0},
+{463, 3202770534u, 1061158912u, 3205126383u, 0, ATAN2_TOLERANCE, 0},
+{464, 3202770534u, 1061997773u, 3204656117u, 0, ATAN2_TOLERANCE, 0},
+{465, 3202770534u, 1062836634u, 3204008667u, 0, ATAN2_TOLERANCE, 0},
+{466, 3202770534u, 1063675494u, 3203228472u, 0, ATAN2_TOLERANCE, 0},
+{467, 3202770534u, 1064514355u, 3202514656u, 0, ATAN2_TOLERANCE, 0},
+{468, 3201092813u, 3212836864u, 3224417699u, 0, ATAN2_TOLERANCE, 0},
+{469, 3201092813u, 3211998003u, 3224342134u, 0, ATAN2_TOLERANCE, 0},
+{470, 3201092813u, 3211159142u, 3224259499u, 0, ATAN2_TOLERANCE, 0},
+{471, 3201092813u, 3210320282u, 3224168825u, 0, ATAN2_TOLERANCE, 0},
+{472, 3201092813u, 3209481421u, 3224068980u, 0, ATAN2_TOLERANCE, 0},
+{473, 3201092813u, 3208642560u, 3223958629u, 0, ATAN2_TOLERANCE, 0},
+{474, 3201092813u, 3207803699u, 3223836202u, 0, ATAN2_TOLERANCE, 0},
+{475, 3201092813u, 3206964838u, 3223699850u, 0, ATAN2_TOLERANCE, 0},
+{476, 3201092813u, 3206125978u, 3223547397u, 0, ATAN2_TOLERANCE, 0},
+{477, 3201092813u, 3205287117u, 3223376296u, 0, ATAN2_TOLERANCE, 0},
+{478, 3201092813u, 3204448256u, 3223183590u, 0, ATAN2_TOLERANCE, 0},
+{479, 3201092813u, 3202770534u, 3222965900u, 0, ATAN2_TOLERANCE, 0},
+{480, 3201092813u, 3201092813u, 3222719460u, 0, ATAN2_TOLERANCE, 0},
+{481, 3201092813u, 3199415091u, 3222440253u, 0, ATAN2_TOLERANCE, 0},
+{482, 3201092813u, 3197737370u, 3222124301u, 0, ATAN2_TOLERANCE, 0},
+{483, 3201092813u, 3196059648u, 3221768197u, 0, ATAN2_TOLERANCE, 0},
+{484, 3201092813u, 3192704205u, 3221369940u, 0, ATAN2_TOLERANCE, 0},
+{485, 3201092813u, 3189348762u, 3220634637u, 0, ATAN2_TOLERANCE, 0},
+{486, 3201092813u, 3184315597u, 3219680081u, 0, ATAN2_TOLERANCE, 0},
+{487, 3201092813u, 3175926989u, 3218668216u, 0, ATAN2_TOLERANCE, 0},
+{488, 3201092813u, 1028443341u, 3216581885u, 0, ATAN2_TOLERANCE, 0},
+{489, 3201092813u, 1036831949u, 3215570021u, 0, ATAN2_TOLERANCE, 0},
+{490, 3201092813u, 1041865114u, 3214615464u, 0, ATAN2_TOLERANCE, 0},
+{491, 3201092813u, 1045220557u, 3213735693u, 0, ATAN2_TOLERANCE, 0},
+{492, 3201092813u, 1048576000u, 3212939180u, 0, ATAN2_TOLERANCE, 0},
+{493, 3201092813u, 1050253722u, 3211617080u, 0, ATAN2_TOLERANCE, 0},
+{494, 3201092813u, 1051931443u, 3210353271u, 0, ATAN2_TOLERANCE, 0},
+{495, 3201092813u, 1053609165u, 3209236443u, 0, ATAN2_TOLERANCE, 0},
+{496, 3201092813u, 1055286886u, 3208250684u, 0, ATAN2_TOLERANCE, 0},
+{497, 3201092813u, 1056964608u, 3207379923u, 0, ATAN2_TOLERANCE, 0},
+{498, 3201092813u, 1057803469u, 3206609099u, 0, ATAN2_TOLERANCE, 0},
+{499, 3201092813u, 1058642330u, 3205924695u, 0, ATAN2_TOLERANCE, 0},
+{500, 3201092813u, 1059481190u, 3205314883u, 0, ATAN2_TOLERANCE, 0},
+{501, 3201092813u, 1060320051u, 3204769474u, 0, ATAN2_TOLERANCE, 0},
+{502, 3201092813u, 1061158912u, 3204111280u, 0, ATAN2_TOLERANCE, 0},
+{503, 3201092813u, 1061997773u, 3203228472u, 0, ATAN2_TOLERANCE, 0},
+{504, 3201092813u, 1062836634u, 3202429708u, 0, ATAN2_TOLERANCE, 0},
+{505, 3201092813u, 1063675494u, 3201704320u, 0, ATAN2_TOLERANCE, 0},
+{506, 3201092813u, 1064514355u, 3201043234u, 0, ATAN2_TOLERANCE, 0},
+{507, 3199415091u, 3212836864u, 3224601542u, 0, ATAN2_TOLERANCE, 0},
+{508, 3199415091u, 3211998003u, 3224533110u, 0, ATAN2_TOLERANCE, 0},
+{509, 3199415091u, 3211159142u, 3224458028u, 0, ATAN2_TOLERANCE, 0},
+{510, 3199415091u, 3210320282u, 3224375334u, 0, ATAN2_TOLERANCE, 0},
+{511, 3199415091u, 3209481421u, 3224283884u, 0, ATAN2_TOLERANCE, 0},
+{512, 3199415091u, 3208642560u, 3224182312u, 0, ATAN2_TOLERANCE, 0},
+{513, 3199415091u, 3207803699u, 3224068980u, 0, ATAN2_TOLERANCE, 0},
+{514, 3199415091u, 3206964838u, 3223941918u, 0, ATAN2_TOLERANCE, 0},
+{515, 3199415091u, 3206125978u, 3223798754u, 0, ATAN2_TOLERANCE, 0},
+{516, 3199415091u, 3205287117u, 3223636624u, 0, ATAN2_TOLERANCE, 0},
+{517, 3199415091u, 3204448256u, 3223452088u, 0, ATAN2_TOLERANCE, 0},
+{518, 3199415091u, 3202770534u, 3223241043u, 0, ATAN2_TOLERANCE, 0},
+{519, 3199415091u, 3201092813u, 3222998667u, 0, ATAN2_TOLERANCE, 0},
+{520, 3199415091u, 3199415091u, 3222719460u, 0, ATAN2_TOLERANCE, 0},
+{521, 3199415091u, 3197737370u, 3222397455u, 0, ATAN2_TOLERANCE, 0},
+{522, 3199415091u, 3196059648u, 3222026776u, 0, ATAN2_TOLERANCE, 0},
+{523, 3199415091u, 3192704205u, 3221602718u, 0, ATAN2_TOLERANCE, 0},
+{524, 3199415091u, 3189348762u, 3221021529u, 0, ATAN2_TOLERANCE, 0},
+{525, 3199415091u, 3184315597u, 3219959597u, 0, ATAN2_TOLERANCE, 0},
+{526, 3199415091u, 3175926989u, 3218815369u, 0, ATAN2_TOLERANCE, 0},
+{527, 3199415091u, 1028443341u, 3216434732u, 0, ATAN2_TOLERANCE, 0},
+{528, 3199415091u, 1036831949u, 3215290504u, 0, ATAN2_TOLERANCE, 0},
+{529, 3199415091u, 1041865114u, 3214228572u, 0, ATAN2_TOLERANCE, 0},
+{530, 3199415091u, 1045220557u, 3213270137u, 0, ATAN2_TOLERANCE, 0},
+{531, 3199415091u, 1048576000u, 3212007178u, 0, ATAN2_TOLERANCE, 0},
+{532, 3199415091u, 1050253722u, 3210524461u, 0, ATAN2_TOLERANCE, 0},
+{533, 3199415091u, 1051931443u, 3209236443u, 0, ATAN2_TOLERANCE, 0},
+{534, 3199415091u, 1053609165u, 3208119614u, 0, ATAN2_TOLERANCE, 0},
+{535, 3199415091u, 1055286886u, 3207150112u, 0, ATAN2_TOLERANCE, 0},
+{536, 3199415091u, 1056964608u, 3206305929u, 0, ATAN2_TOLERANCE, 0},
+{537, 3199415091u, 1057803469u, 3205567786u, 0, ATAN2_TOLERANCE, 0},
+{538, 3199415091u, 1058642330u, 3204919267u, 0, ATAN2_TOLERANCE, 0},
+{539, 3199415091u, 1059481190u, 3204244962u, 0, ATAN2_TOLERANCE, 0},
+{540, 3199415091u, 1060320051u, 3203228472u, 0, ATAN2_TOLERANCE, 0},
+{541, 3199415091u, 1061158912u, 3202321816u, 0, ATAN2_TOLERANCE, 0},
+{542, 3199415091u, 1061997773u, 3201509238u, 0, ATAN2_TOLERANCE, 0},
+{543, 3199415091u, 1062836634u, 3200777637u, 0, ATAN2_TOLERANCE, 0},
+{544, 3199415091u, 1063675494u, 3200116087u, 0, ATAN2_TOLERANCE, 0},
+{545, 3199415091u, 1064514355u, 3199515432u, 0, ATAN2_TOLERANCE, 0},
+{546, 3197737370u, 3212836864u, 3224791200u, 0, ATAN2_TOLERANCE, 0},
+{547, 3197737370u, 3211998003u, 3224730710u, 0, ATAN2_TOLERANCE, 0},
+{548, 3197737370u, 3211159142u, 3224664139u, 0, ATAN2_TOLERANCE, 0},
+{549, 3197737370u, 3210320282u, 3224590562u, 0, ATAN2_TOLERANCE, 0},
+{550, 3197737370u, 3209481421u, 3224508865u, 0, ATAN2_TOLERANCE, 0},
+{551, 3197737370u, 3208642560u, 3224417699u, 0, ATAN2_TOLERANCE, 0},
+{552, 3197737370u, 3207803699u, 3224315419u, 0, ATAN2_TOLERANCE, 0},
+{553, 3197737370u, 3206964838u, 3224200009u, 0, ATAN2_TOLERANCE, 0},
+{554, 3197737370u, 3206125978u, 3224068980u, 0, ATAN2_TOLERANCE, 0},
+{555, 3197737370u, 3205287117u, 3223919247u, 0, ATAN2_TOLERANCE, 0},
+{556, 3197737370u, 3204448256u, 3223746975u, 0, ATAN2_TOLERANCE, 0},
+{557, 3197737370u, 3202770534u, 3223547397u, 0, ATAN2_TOLERANCE, 0},
+{558, 3197737370u, 3201092813u, 3223314619u, 0, ATAN2_TOLERANCE, 0},
+{559, 3197737370u, 3199415091u, 3223041465u, 0, ATAN2_TOLERANCE, 0},
+{560, 3197737370u, 3197737370u, 3222719460u, 0, ATAN2_TOLERANCE, 0},
+{561, 3197737370u, 3196059648u, 3222339205u, 0, ATAN2_TOLERANCE, 0},
+{562, 3197737370u, 3192704205u, 3221891523u, 0, ATAN2_TOLERANCE, 0},
+{563, 3197737370u, 3189348762u, 3221369940u, 0, ATAN2_TOLERANCE, 0},
+{564, 3197737370u, 3184315597u, 3220324090u, 0, ATAN2_TOLERANCE, 0},
+{565, 3197737370u, 3175926989u, 3219010418u, 0, ATAN2_TOLERANCE, 0},
+{566, 3197737370u, 1028443341u, 3216239683u, 0, ATAN2_TOLERANCE, 0},
+{567, 3197737370u, 1036831949u, 3214926011u, 0, ATAN2_TOLERANCE, 0},
+{568, 3197737370u, 1041865114u, 3213735693u, 0, ATAN2_TOLERANCE, 0},
+{569, 3197737370u, 1045220557u, 3212548191u, 0, ATAN2_TOLERANCE, 0},
+{570, 3197737370u, 1048576000u, 3210757463u, 0, ATAN2_TOLERANCE, 0},
+{571, 3197737370u, 1050253722u, 3209236443u, 0, ATAN2_TOLERANCE, 0},
+{572, 3197737370u, 1051931443u, 3207948424u, 0, ATAN2_TOLERANCE, 0},
+{573, 3197737370u, 1053609165u, 3206855805u, 0, ATAN2_TOLERANCE, 0},
+{574, 3197737370u, 1055286886u, 3205924695u, 0, ATAN2_TOLERANCE, 0},
+{575, 3197737370u, 1056964608u, 3205126383u, 0, ATAN2_TOLERANCE, 0},
+{576, 3197737370u, 1057803469u, 3204426336u, 0, ATAN2_TOLERANCE, 0},
+{577, 3197737370u, 1058642330u, 3203228472u, 0, ATAN2_TOLERANCE, 0},
+{578, 3197737370u, 1059481190u, 3202180237u, 0, ATAN2_TOLERANCE, 0},
+{579, 3197737370u, 1060320051u, 3201256954u, 0, ATAN2_TOLERANCE, 0},
+{580, 3197737370u, 1061158912u, 3200438715u, 0, ATAN2_TOLERANCE, 0},
+{581, 3197737370u, 1061997773u, 3199709386u, 0, ATAN2_TOLERANCE, 0},
+{582, 3197737370u, 1062836634u, 3199055811u, 0, ATAN2_TOLERANCE, 0},
+{583, 3197737370u, 1063675494u, 3198467197u, 0, ATAN2_TOLERANCE, 0},
+{584, 3197737370u, 1064514355u, 3197934632u, 0, ATAN2_TOLERANCE, 0},
+{585, 3196059648u, 3212836864u, 3224986144u, 0, ATAN2_TOLERANCE, 0},
+{586, 3196059648u, 3211998003u, 3224934365u, 0, ATAN2_TOLERANCE, 0},
+{587, 3196059648u, 3211159142u, 3224877225u, 0, ATAN2_TOLERANCE, 0},
+{588, 3196059648u, 3210320282u, 3224813872u, 0, ATAN2_TOLERANCE, 0},
+{589, 3196059648u, 3209481421u, 3224743267u, 0, ATAN2_TOLERANCE, 0},
+{590, 3196059648u, 3208642560u, 3224664139u, 0, ATAN2_TOLERANCE, 0},
+{591, 3196059648u, 3207803699u, 3224574912u, 0, ATAN2_TOLERANCE, 0},
+{592, 3196059648u, 3206964838u, 3224473620u, 0, ATAN2_TOLERANCE, 0},
+{593, 3196059648u, 3206125978u, 3224357785u, 0, ATAN2_TOLERANCE, 0},
+{594, 3196059648u, 3205287117u, 3224224253u, 0, ATAN2_TOLERANCE, 0},
+{595, 3196059648u, 3204448256u, 3224068980u, 0, ATAN2_TOLERANCE, 0},
+{596, 3196059648u, 3202770534u, 3223886733u, 0, ATAN2_TOLERANCE, 0},
+{597, 3196059648u, 3201092813u, 3223670723u, 0, ATAN2_TOLERANCE, 0},
+{598, 3196059648u, 3199415091u, 3223412144u, 0, ATAN2_TOLERANCE, 0},
+{599, 3196059648u, 3197737370u, 3223099715u, 0, ATAN2_TOLERANCE, 0},
+{600, 3196059648u, 3196059648u, 3222719460u, 0, ATAN2_TOLERANCE, 0},
+{601, 3196059648u, 3192704205u, 3222255330u, 0, ATAN2_TOLERANCE, 0},
+{602, 3196059648u, 3189348762u, 3221691945u, 0, ATAN2_TOLERANCE, 0},
+{603, 3196059648u, 3184315597u, 3220816969u, 0, ATAN2_TOLERANCE, 0},
+{604, 3196059648u, 3175926989u, 3219280925u, 0, ATAN2_TOLERANCE, 0},
+{605, 3196059648u, 1028443341u, 3215969177u, 0, ATAN2_TOLERANCE, 0},
+{606, 3196059648u, 1036831949u, 3214433132u, 0, ATAN2_TOLERANCE, 0},
+{607, 3196059648u, 1041865114u, 3213091683u, 0, ATAN2_TOLERANCE, 0},
+{608, 3196059648u, 1045220557u, 3211092963u, 0, ATAN2_TOLERANCE, 0},
+{609, 3196059648u, 1048576000u, 3209236443u, 0, ATAN2_TOLERANCE, 0},
+{610, 3196059648u, 1050253722u, 3207715422u, 0, ATAN2_TOLERANCE, 0},
+{611, 3196059648u, 1051931443u, 3206465708u, 0, ATAN2_TOLERANCE, 0},
+{612, 3196059648u, 1053609165u, 3205431389u, 0, ATAN2_TOLERANCE, 0},
+{613, 3196059648u, 1055286886u, 3204567349u, 0, ATAN2_TOLERANCE, 0},
+{614, 3196059648u, 1056964608u, 3203228472u, 0, ATAN2_TOLERANCE, 0},
+{615, 3196059648u, 1057803469u, 3201986283u, 0, ATAN2_TOLERANCE, 0},
+{616, 3196059648u, 1058642330u, 3200918032u, 0, ATAN2_TOLERANCE, 0},
+{617, 3196059648u, 1059481190u, 3199991349u, 0, ATAN2_TOLERANCE, 0},
+{618, 3196059648u, 1060320051u, 3199181013u, 0, ATAN2_TOLERANCE, 0},
+{619, 3196059648u, 1061158912u, 3198467197u, 0, ATAN2_TOLERANCE, 0},
+{620, 3196059648u, 1061997773u, 3197834170u, 0, ATAN2_TOLERANCE, 0},
+{621, 3196059648u, 1062836634u, 3197269334u, 0, ATAN2_TOLERANCE, 0},
+{622, 3196059648u, 1063675494u, 3196762508u, 0, ATAN2_TOLERANCE, 0},
+{623, 3196059648u, 1064514355u, 3196305391u, 0, ATAN2_TOLERANCE, 0},
+{624, 3192704205u, 3212836864u, 3225185722u, 0, ATAN2_TOLERANCE, 0},
+{625, 3192704205u, 3211998003u, 3225143356u, 0, ATAN2_TOLERANCE, 0},
+{626, 3192704205u, 3211159142u, 3225096495u, 0, ATAN2_TOLERANCE, 0},
+{627, 3192704205u, 3210320282u, 3225044394u, 0, ATAN2_TOLERANCE, 0},
+{628, 3192704205u, 3209481421u, 3224986144u, 0, ATAN2_TOLERANCE, 0},
+{629, 3192704205u, 3208642560u, 3224920613u, 0, ATAN2_TOLERANCE, 0},
+{630, 3192704205u, 3207803699u, 3224846385u, 0, ATAN2_TOLERANCE, 0},
+{631, 3192704205u, 3206964838u, 3224761663u, 0, ATAN2_TOLERANCE, 0},
+{632, 3192704205u, 3206125978u, 3224664139u, 0, ATAN2_TOLERANCE, 0},
+{633, 3192704205u, 3205287117u, 3224550807u, 0, ATAN2_TOLERANCE, 0},
+{634, 3192704205u, 3204448256u, 3224417699u, 0, ATAN2_TOLERANCE, 0},
+{635, 3192704205u, 3202770534u, 3224259499u, 0, ATAN2_TOLERANCE, 0},
+{636, 3192704205u, 3201092813u, 3224068980u, 0, ATAN2_TOLERANCE, 0},
+{637, 3192704205u, 3199415091u, 3223836202u, 0, ATAN2_TOLERANCE, 0},
+{638, 3192704205u, 3197737370u, 3223547397u, 0, ATAN2_TOLERANCE, 0},
+{639, 3192704205u, 3196059648u, 3223183590u, 0, ATAN2_TOLERANCE, 0},
+{640, 3192704205u, 3192704205u, 3222719460u, 0, ATAN2_TOLERANCE, 0},
+{641, 3192704205u, 3189348762u, 3222124301u, 0, ATAN2_TOLERANCE, 0},
+{642, 3192704205u, 3184315597u, 3221369940u, 0, ATAN2_TOLERANCE, 0},
+{643, 3192704205u, 3175926989u, 3219680081u, 0, ATAN2_TOLERANCE, 0},
+{644, 3192704205u, 1028443341u, 3215570021u, 0, ATAN2_TOLERANCE, 0},
+{645, 3192704205u, 1036831949u, 3213735693u, 0, ATAN2_TOLERANCE, 0},
+{646, 3192704205u, 1041865114u, 3211617080u, 0, ATAN2_TOLERANCE, 0},
+{647, 3192704205u, 1045220557u, 3209236443u, 0, ATAN2_TOLERANCE, 0},
+{648, 3192704205u, 1048576000u, 3207379923u, 0, ATAN2_TOLERANCE, 0},
+{649, 3192704205u, 1050253722u, 3205924695u, 0, ATAN2_TOLERANCE, 0},
+{650, 3192704205u, 1051931443u, 3204769474u, 0, ATAN2_TOLERANCE, 0},
+{651, 3192704205u, 1053609165u, 3203228472u, 0, ATAN2_TOLERANCE, 0},
+{652, 3192704205u, 1055286886u, 3201704320u, 0, ATAN2_TOLERANCE, 0},
+{653, 3192704205u, 1056964608u, 3200438715u, 0, ATAN2_TOLERANCE, 0},
+{654, 3192704205u, 1057803469u, 3199373853u, 0, ATAN2_TOLERANCE, 0},
+{655, 3192704205u, 1058642330u, 3198467197u, 0, ATAN2_TOLERANCE, 0},
+{656, 3192704205u, 1059481190u, 3197687002u, 0, ATAN2_TOLERANCE, 0},
+{657, 3192704205u, 1060320051u, 3197009227u, 0, ATAN2_TOLERANCE, 0},
+{658, 3192704205u, 1061158912u, 3196415405u, 0, ATAN2_TOLERANCE, 0},
+{659, 3192704205u, 1061997773u, 3195722672u, 0, ATAN2_TOLERANCE, 0},
+{660, 3192704205u, 1062836634u, 3194790664u, 0, ATAN2_TOLERANCE, 0},
+{661, 3192704205u, 1063675494u, 3193957057u, 0, ATAN2_TOLERANCE, 0},
+{662, 3192704205u, 1064514355u, 3193207268u, 0, ATAN2_TOLERANCE, 0},
+{663, 3189348762u, 3212836864u, 3225389169u, 0, ATAN2_TOLERANCE, 0},
+{664, 3189348762u, 3211998003u, 3225356823u, 0, ATAN2_TOLERANCE, 0},
+{665, 3189348762u, 3211159142u, 3225320975u, 0, ATAN2_TOLERANCE, 0},
+{666, 3189348762u, 3210320282u, 3225281030u, 0, ATAN2_TOLERANCE, 0},
+{667, 3189348762u, 3209481421u, 3225236253u, 0, ATAN2_TOLERANCE, 0},
+{668, 3189348762u, 3208642560u, 3225185722u, 0, ATAN2_TOLERANCE, 0},
+{669, 3189348762u, 3207803699u, 3225128269u, 0, ATAN2_TOLERANCE, 0},
+{670, 3189348762u, 3206964838u, 3225062395u, 0, ATAN2_TOLERANCE, 0},
+{671, 3189348762u, 3206125978u, 3224986144u, 0, ATAN2_TOLERANCE, 0},
+{672, 3189348762u, 3205287117u, 3224896917u, 0, ATAN2_TOLERANCE, 0},
+{673, 3189348762u, 3204448256u, 3224791200u, 0, ATAN2_TOLERANCE, 0},
+{674, 3189348762u, 3202770534u, 3224664139u, 0, ATAN2_TOLERANCE, 0},
+{675, 3189348762u, 3201092813u, 3224508865u, 0, ATAN2_TOLERANCE, 0},
+{676, 3189348762u, 3199415091u, 3224315419u, 0, ATAN2_TOLERANCE, 0},
+{677, 3189348762u, 3197737370u, 3224068980u, 0, ATAN2_TOLERANCE, 0},
+{678, 3189348762u, 3196059648u, 3223746975u, 0, ATAN2_TOLERANCE, 0},
+{679, 3189348762u, 3192704205u, 3223314619u, 0, ATAN2_TOLERANCE, 0},
+{680, 3189348762u, 3189348762u, 3222719460u, 0, ATAN2_TOLERANCE, 0},
+{681, 3189348762u, 3184315597u, 3221891523u, 0, ATAN2_TOLERANCE, 0},
+{682, 3189348762u, 3175926989u, 3220324090u, 0, ATAN2_TOLERANCE, 0},
+{683, 3189348762u, 1028443341u, 3214926011u, 0, ATAN2_TOLERANCE, 0},
+{684, 3189348762u, 1036831949u, 3212548191u, 0, ATAN2_TOLERANCE, 0},
+{685, 3189348762u, 1041865114u, 3209236443u, 0, ATAN2_TOLERANCE, 0},
+{686, 3189348762u, 1045220557u, 3206855805u, 0, ATAN2_TOLERANCE, 0},
+{687, 3189348762u, 1048576000u, 3205126383u, 0, ATAN2_TOLERANCE, 0},
+{688, 3189348762u, 1050253722u, 3203228472u, 0, ATAN2_TOLERANCE, 0},
+{689, 3189348762u, 1051931443u, 3201256954u, 0, ATAN2_TOLERANCE, 0},
+{690, 3189348762u, 1053609165u, 3199709386u, 0, ATAN2_TOLERANCE, 0},
+{691, 3189348762u, 1055286886u, 3198467197u, 0, ATAN2_TOLERANCE, 0},
+{692, 3189348762u, 1056964608u, 3197450707u, 0, ATAN2_TOLERANCE, 0},
+{693, 3189348762u, 1057803469u, 3196604976u, 0, ATAN2_TOLERANCE, 0},
+{694, 3189348762u, 1058642330u, 3195722672u, 0, ATAN2_TOLERANCE, 0},
+{695, 3189348762u, 1059481190u, 3194502645u, 0, ATAN2_TOLERANCE, 0},
+{696, 3189348762u, 1060320051u, 3193448666u, 0, ATAN2_TOLERANCE, 0},
+{697, 3189348762u, 1061158912u, 3192529424u, 0, ATAN2_TOLERANCE, 0},
+{698, 3189348762u, 1061997773u, 3191720922u, 0, ATAN2_TOLERANCE, 0},
+{699, 3189348762u, 1062836634u, 3191004485u, 0, ATAN2_TOLERANCE, 0},
+{700, 3189348762u, 1063675494u, 3190365372u, 0, ATAN2_TOLERANCE, 0},
+{701, 3189348762u, 1064514355u, 3189791806u, 0, ATAN2_TOLERANCE, 0},
+{702, 3184315597u, 3212836864u, 3225595618u, 0, ATAN2_TOLERANCE, 0},
+{703, 3184315597u, 3211998003u, 3225573773u, 0, ATAN2_TOLERANCE, 0},
+{704, 3184315597u, 3211159142u, 3225549529u, 0, ATAN2_TOLERANCE, 0},
+{705, 3184315597u, 3210320282u, 3225522469u, 0, ATAN2_TOLERANCE, 0},
+{706, 3184315597u, 3209481421u, 3225492076u, 0, ATAN2_TOLERANCE, 0},
+{707, 3184315597u, 3208642560u, 3225457697u, 0, ATAN2_TOLERANCE, 0},
+{708, 3184315597u, 3207803699u, 3225418499u, 0, ATAN2_TOLERANCE, 0},
+{709, 3184315597u, 3206964838u, 3225373401u, 0, ATAN2_TOLERANCE, 0},
+{710, 3184315597u, 3206125978u, 3225320975u, 0, ATAN2_TOLERANCE, 0},
+{711, 3184315597u, 3205287117u, 3225259298u, 0, ATAN2_TOLERANCE, 0},
+{712, 3184315597u, 3204448256u, 3225185722u, 0, ATAN2_TOLERANCE, 0},
+{713, 3184315597u, 3202770534u, 3225096495u, 0, ATAN2_TOLERANCE, 0},
+{714, 3184315597u, 3201092813u, 3224986144u, 0, ATAN2_TOLERANCE, 0},
+{715, 3184315597u, 3199415091u, 3224846385u, 0, ATAN2_TOLERANCE, 0},
+{716, 3184315597u, 3197737370u, 3224664139u, 0, ATAN2_TOLERANCE, 0},
+{717, 3184315597u, 3196059648u, 3224417699u, 0, ATAN2_TOLERANCE, 0},
+{718, 3184315597u, 3192704205u, 3224068980u, 0, ATAN2_TOLERANCE, 0},
+{719, 3184315597u, 3189348762u, 3223547397u, 0, ATAN2_TOLERANCE, 0},
+{720, 3184315597u, 3184315597u, 3222719460u, 0, ATAN2_TOLERANCE, 0},
+{721, 3184315597u, 3175926989u, 3221369940u, 0, ATAN2_TOLERANCE, 0},
+{722, 3184315597u, 1028443341u, 3213735693u, 0, ATAN2_TOLERANCE, 0},
+{723, 3184315597u, 1036831949u, 3209236443u, 0, ATAN2_TOLERANCE, 0},
+{724, 3184315597u, 1041865114u, 3205924695u, 0, ATAN2_TOLERANCE, 0},
+{725, 3184315597u, 1045220557u, 3203228472u, 0, ATAN2_TOLERANCE, 0},
+{726, 3184315597u, 1048576000u, 3200438715u, 0, ATAN2_TOLERANCE, 0},
+{727, 3184315597u, 1050253722u, 3198467197u, 0, ATAN2_TOLERANCE, 0},
+{728, 3184315597u, 1051931443u, 3197009227u, 0, ATAN2_TOLERANCE, 0},
+{729, 3184315597u, 1053609165u, 3195722672u, 0, ATAN2_TOLERANCE, 0},
+{730, 3184315597u, 1055286886u, 3193957057u, 0, ATAN2_TOLERANCE, 0},
+{731, 3184315597u, 1056964608u, 3192529424u, 0, ATAN2_TOLERANCE, 0},
+{732, 3184315597u, 1057803469u, 3191352196u, 0, ATAN2_TOLERANCE, 0},
+{733, 3184315597u, 1058642330u, 3190365372u, 0, ATAN2_TOLERANCE, 0},
+{734, 3184315597u, 1059481190u, 3189526555u, 0, ATAN2_TOLERANCE, 0},
+{735, 3184315597u, 1060320051u, 3188804982u, 0, ATAN2_TOLERANCE, 0},
+{736, 3184315597u, 1061158912u, 3188177815u, 0, ATAN2_TOLERANCE, 0},
+{737, 3184315597u, 1061997773u, 3187584469u, 0, ATAN2_TOLERANCE, 0},
+{738, 3184315597u, 1062836634u, 3186611894u, 0, ATAN2_TOLERANCE, 0},
+{739, 3184315597u, 1063675494u, 3185745985u, 0, ATAN2_TOLERANCE, 0},
+{740, 3184315597u, 1064514355u, 3184970168u, 0, ATAN2_TOLERANCE, 0},
+{741, 3175926989u, 3212836864u, 3225804118u, 0, ATAN2_TOLERANCE, 0},
+{742, 3175926989u, 3211998003u, 3225793109u, 0, ATAN2_TOLERANCE, 0},
+{743, 3175926989u, 3211159142u, 3225780881u, 0, ATAN2_TOLERANCE, 0},
+{744, 3175926989u, 3210320282u, 3225767219u, 0, ATAN2_TOLERANCE, 0},
+{745, 3175926989u, 3209481421u, 3225751855u, 0, ATAN2_TOLERANCE, 0},
+{746, 3175926989u, 3208642560u, 3225734452u, 0, ATAN2_TOLERANCE, 0},
+{747, 3175926989u, 3207803699u, 3225714573u, 0, ATAN2_TOLERANCE, 0},
+{748, 3175926989u, 3206964838u, 3225691654u, 0, ATAN2_TOLERANCE, 0},
+{749, 3175926989u, 3206125978u, 3225664939u, 0, ATAN2_TOLERANCE, 0},
+{750, 3175926989u, 3205287117u, 3225633404u, 0, ATAN2_TOLERANCE, 0},
+{751, 3175926989u, 3204448256u, 3225595618u, 0, ATAN2_TOLERANCE, 0},
+{752, 3175926989u, 3202770534u, 3225549529u, 0, ATAN2_TOLERANCE, 0},
+{753, 3175926989u, 3201092813u, 3225492076u, 0, ATAN2_TOLERANCE, 0},
+{754, 3175926989u, 3199415091u, 3225418499u, 0, ATAN2_TOLERANCE, 0},
+{755, 3175926989u, 3197737370u, 3225320975u, 0, ATAN2_TOLERANCE, 0},
+{756, 3175926989u, 3196059648u, 3225185722u, 0, ATAN2_TOLERANCE, 0},
+{757, 3175926989u, 3192704205u, 3224986144u, 0, ATAN2_TOLERANCE, 0},
+{758, 3175926989u, 3189348762u, 3224664139u, 0, ATAN2_TOLERANCE, 0},
+{759, 3175926989u, 3184315597u, 3224068980u, 0, ATAN2_TOLERANCE, 0},
+{760, 3175926989u, 3175926989u, 3222719460u, 0, ATAN2_TOLERANCE, 0},
+{761, 3175926989u, 1028443341u, 3209236443u, 0, ATAN2_TOLERANCE, 0},
+{762, 3175926989u, 1036831949u, 3203228472u, 0, ATAN2_TOLERANCE, 0},
+{763, 3175926989u, 1041865114u, 3198467197u, 0, ATAN2_TOLERANCE, 0},
+{764, 3175926989u, 1045220557u, 3195722672u, 0, ATAN2_TOLERANCE, 0},
+{765, 3175926989u, 1048576000u, 3192529424u, 0, ATAN2_TOLERANCE, 0},
+{766, 3175926989u, 1050253722u, 3190365372u, 0, ATAN2_TOLERANCE, 0},
+{767, 3175926989u, 1051931443u, 3188804982u, 0, ATAN2_TOLERANCE, 0},
+{768, 3175926989u, 1053609165u, 3187584469u, 0, ATAN2_TOLERANCE, 0},
+{769, 3175926989u, 1055286886u, 3185745985u, 0, ATAN2_TOLERANCE, 0},
+{770, 3175926989u, 1056964608u, 3184271124u, 0, ATAN2_TOLERANCE, 0},
+{771, 3175926989u, 1057803469u, 3183061988u, 0, ATAN2_TOLERANCE, 0},
+{772, 3175926989u, 1058642330u, 3182052851u, 0, ATAN2_TOLERANCE, 0},
+{773, 3175926989u, 1059481190u, 3181197973u, 0, ATAN2_TOLERANCE, 0},
+{774, 3175926989u, 1060320051u, 3180464550u, 0, ATAN2_TOLERANCE, 0},
+{775, 3175926989u, 1061158912u, 3179828452u, 0, ATAN2_TOLERANCE, 0},
+{776, 3175926989u, 1061997773u, 3179260638u, 0, ATAN2_TOLERANCE, 0},
+{777, 3175926989u, 1062836634u, 3178277362u, 0, ATAN2_TOLERANCE, 0},
+{778, 3175926989u, 1063675494u, 3177402983u, 0, ATAN2_TOLERANCE, 0},
+{779, 3175926989u, 1064514355u, 3176620374u, 0, ATAN2_TOLERANCE, 0},
+{780, 1028443341u, 3212836864u, 1078320470u, 0, ATAN2_TOLERANCE, 0},
+{781, 1028443341u, 3211998003u, 1078309461u, 0, ATAN2_TOLERANCE, 0},
+{782, 1028443341u, 3211159142u, 1078297233u, 0, ATAN2_TOLERANCE, 0},
+{783, 1028443341u, 3210320282u, 1078283571u, 0, ATAN2_TOLERANCE, 0},
+{784, 1028443341u, 3209481421u, 1078268207u, 0, ATAN2_TOLERANCE, 0},
+{785, 1028443341u, 3208642560u, 1078250804u, 0, ATAN2_TOLERANCE, 0},
+{786, 1028443341u, 3207803699u, 1078230925u, 0, ATAN2_TOLERANCE, 0},
+{787, 1028443341u, 3206964838u, 1078208006u, 0, ATAN2_TOLERANCE, 0},
+{788, 1028443341u, 3206125978u, 1078181291u, 0, ATAN2_TOLERANCE, 0},
+{789, 1028443341u, 3205287117u, 1078149756u, 0, ATAN2_TOLERANCE, 0},
+{790, 1028443341u, 3204448256u, 1078111970u, 0, ATAN2_TOLERANCE, 0},
+{791, 1028443341u, 3202770534u, 1078065881u, 0, ATAN2_TOLERANCE, 0},
+{792, 1028443341u, 3201092813u, 1078008428u, 0, ATAN2_TOLERANCE, 0},
+{793, 1028443341u, 3199415091u, 1077934851u, 0, ATAN2_TOLERANCE, 0},
+{794, 1028443341u, 3197737370u, 1077837327u, 0, ATAN2_TOLERANCE, 0},
+{795, 1028443341u, 3196059648u, 1077702074u, 0, ATAN2_TOLERANCE, 0},
+{796, 1028443341u, 3192704205u, 1077502496u, 0, ATAN2_TOLERANCE, 0},
+{797, 1028443341u, 3189348762u, 1077180491u, 0, ATAN2_TOLERANCE, 0},
+{798, 1028443341u, 3184315597u, 1076585332u, 0, ATAN2_TOLERANCE, 0},
+{799, 1028443341u, 3175926989u, 1075235812u, 0, ATAN2_TOLERANCE, 0},
+{800, 1028443341u, 1028443341u, 1061752795u, 0, ATAN2_TOLERANCE, 0},
+{801, 1028443341u, 1036831949u, 1055744824u, 0, ATAN2_TOLERANCE, 0},
+{802, 1028443341u, 1041865114u, 1050983549u, 0, ATAN2_TOLERANCE, 0},
+{803, 1028443341u, 1045220557u, 1048239024u, 0, ATAN2_TOLERANCE, 0},
+{804, 1028443341u, 1048576000u, 1045045776u, 0, ATAN2_TOLERANCE, 0},
+{805, 1028443341u, 1050253722u, 1042881724u, 0, ATAN2_TOLERANCE, 0},
+{806, 1028443341u, 1051931443u, 1041321334u, 0, ATAN2_TOLERANCE, 0},
+{807, 1028443341u, 1053609165u, 1040100821u, 0, ATAN2_TOLERANCE, 0},
+{808, 1028443341u, 1055286886u, 1038262337u, 0, ATAN2_TOLERANCE, 0},
+{809, 1028443341u, 1056964608u, 1036787476u, 0, ATAN2_TOLERANCE, 0},
+{810, 1028443341u, 1057803469u, 1035578340u, 0, ATAN2_TOLERANCE, 0},
+{811, 1028443341u, 1058642330u, 1034569203u, 0, ATAN2_TOLERANCE, 0},
+{812, 1028443341u, 1059481190u, 1033714325u, 0, ATAN2_TOLERANCE, 0},
+{813, 1028443341u, 1060320051u, 1032980902u, 0, ATAN2_TOLERANCE, 0},
+{814, 1028443341u, 1061158912u, 1032344804u, 0, ATAN2_TOLERANCE, 0},
+{815, 1028443341u, 1061997773u, 1031776990u, 0, ATAN2_TOLERANCE, 0},
+{816, 1028443341u, 1062836634u, 1030793714u, 0, ATAN2_TOLERANCE, 0},
+{817, 1028443341u, 1063675494u, 1029919335u, 0, ATAN2_TOLERANCE, 0},
+{818, 1028443341u, 1064514355u, 1029136726u, 0, ATAN2_TOLERANCE, 0},
+{819, 1036831949u, 3212836864u, 1078111970u, 0, ATAN2_TOLERANCE, 0},
+{820, 1036831949u, 3211998003u, 1078090125u, 0, ATAN2_TOLERANCE, 0},
+{821, 1036831949u, 3211159142u, 1078065881u, 0, ATAN2_TOLERANCE, 0},
+{822, 1036831949u, 3210320282u, 1078038821u, 0, ATAN2_TOLERANCE, 0},
+{823, 1036831949u, 3209481421u, 1078008428u, 0, ATAN2_TOLERANCE, 0},
+{824, 1036831949u, 3208642560u, 1077974049u, 0, ATAN2_TOLERANCE, 0},
+{825, 1036831949u, 3207803699u, 1077934851u, 0, ATAN2_TOLERANCE, 0},
+{826, 1036831949u, 3206964838u, 1077889753u, 0, ATAN2_TOLERANCE, 0},
+{827, 1036831949u, 3206125978u, 1077837327u, 0, ATAN2_TOLERANCE, 0},
+{828, 1036831949u, 3205287117u, 1077775650u, 0, ATAN2_TOLERANCE, 0},
+{829, 1036831949u, 3204448256u, 1077702074u, 0, ATAN2_TOLERANCE, 0},
+{830, 1036831949u, 3202770534u, 1077612847u, 0, ATAN2_TOLERANCE, 0},
+{831, 1036831949u, 3201092813u, 1077502496u, 0, ATAN2_TOLERANCE, 0},
+{832, 1036831949u, 3199415091u, 1077362737u, 0, ATAN2_TOLERANCE, 0},
+{833, 1036831949u, 3197737370u, 1077180491u, 0, ATAN2_TOLERANCE, 0},
+{834, 1036831949u, 3196059648u, 1076934051u, 0, ATAN2_TOLERANCE, 0},
+{835, 1036831949u, 3192704205u, 1076585332u, 0, ATAN2_TOLERANCE, 0},
+{836, 1036831949u, 3189348762u, 1076063749u, 0, ATAN2_TOLERANCE, 0},
+{837, 1036831949u, 3184315597u, 1075235812u, 0, ATAN2_TOLERANCE, 0},
+{838, 1036831949u, 3175926989u, 1073886292u, 0, ATAN2_TOLERANCE, 0},
+{839, 1036831949u, 1028443341u, 1066252045u, 0, ATAN2_TOLERANCE, 0},
+{840, 1036831949u, 1036831949u, 1061752795u, 0, ATAN2_TOLERANCE, 0},
+{841, 1036831949u, 1041865114u, 1058441047u, 0, ATAN2_TOLERANCE, 0},
+{842, 1036831949u, 1045220557u, 1055744824u, 0, ATAN2_TOLERANCE, 0},
+{843, 1036831949u, 1048576000u, 1052955067u, 0, ATAN2_TOLERANCE, 0},
+{844, 1036831949u, 1050253722u, 1050983549u, 0, ATAN2_TOLERANCE, 0},
+{845, 1036831949u, 1051931443u, 1049525579u, 0, ATAN2_TOLERANCE, 0},
+{846, 1036831949u, 1053609165u, 1048239024u, 0, ATAN2_TOLERANCE, 0},
+{847, 1036831949u, 1055286886u, 1046473409u, 0, ATAN2_TOLERANCE, 0},
+{848, 1036831949u, 1056964608u, 1045045776u, 0, ATAN2_TOLERANCE, 0},
+{849, 1036831949u, 1057803469u, 1043868548u, 0, ATAN2_TOLERANCE, 0},
+{850, 1036831949u, 1058642330u, 1042881724u, 0, ATAN2_TOLERANCE, 0},
+{851, 1036831949u, 1059481190u, 1042042907u, 0, ATAN2_TOLERANCE, 0},
+{852, 1036831949u, 1060320051u, 1041321334u, 0, ATAN2_TOLERANCE, 0},
+{853, 1036831949u, 1061158912u, 1040694167u, 0, ATAN2_TOLERANCE, 0},
+{854, 1036831949u, 1061997773u, 1040100821u, 0, ATAN2_TOLERANCE, 0},
+{855, 1036831949u, 1062836634u, 1039128246u, 0, ATAN2_TOLERANCE, 0},
+{856, 1036831949u, 1063675494u, 1038262337u, 0, ATAN2_TOLERANCE, 0},
+{857, 1036831949u, 1064514355u, 1037486520u, 0, ATAN2_TOLERANCE, 0},
+{858, 1041865114u, 3212836864u, 1077905521u, 0, ATAN2_TOLERANCE, 0},
+{859, 1041865114u, 3211998003u, 1077873175u, 0, ATAN2_TOLERANCE, 0},
+{860, 1041865114u, 3211159142u, 1077837327u, 0, ATAN2_TOLERANCE, 0},
+{861, 1041865114u, 3210320282u, 1077797382u, 0, ATAN2_TOLERANCE, 0},
+{862, 1041865114u, 3209481421u, 1077752605u, 0, ATAN2_TOLERANCE, 0},
+{863, 1041865114u, 3208642560u, 1077702074u, 0, ATAN2_TOLERANCE, 0},
+{864, 1041865114u, 3207803699u, 1077644621u, 0, ATAN2_TOLERANCE, 0},
+{865, 1041865114u, 3206964838u, 1077578747u, 0, ATAN2_TOLERANCE, 0},
+{866, 1041865114u, 3206125978u, 1077502496u, 0, ATAN2_TOLERANCE, 0},
+{867, 1041865114u, 3205287117u, 1077413269u, 0, ATAN2_TOLERANCE, 0},
+{868, 1041865114u, 3204448256u, 1077307552u, 0, ATAN2_TOLERANCE, 0},
+{869, 1041865114u, 3202770534u, 1077180491u, 0, ATAN2_TOLERANCE, 0},
+{870, 1041865114u, 3201092813u, 1077025217u, 0, ATAN2_TOLERANCE, 0},
+{871, 1041865114u, 3199415091u, 1076831771u, 0, ATAN2_TOLERANCE, 0},
+{872, 1041865114u, 3197737370u, 1076585332u, 0, ATAN2_TOLERANCE, 0},
+{873, 1041865114u, 3196059648u, 1076263327u, 0, ATAN2_TOLERANCE, 0},
+{874, 1041865114u, 3192704205u, 1075830971u, 0, ATAN2_TOLERANCE, 0},
+{875, 1041865114u, 3189348762u, 1075235812u, 0, ATAN2_TOLERANCE, 0},
+{876, 1041865114u, 3184315597u, 1074407875u, 0, ATAN2_TOLERANCE, 0},
+{877, 1041865114u, 3175926989u, 1072840442u, 0, ATAN2_TOLERANCE, 0},
+{878, 1041865114u, 1028443341u, 1067442363u, 0, ATAN2_TOLERANCE, 0},
+{879, 1041865114u, 1036831949u, 1065064543u, 0, ATAN2_TOLERANCE, 0},
+{880, 1041865114u, 1041865114u, 1061752795u, 0, ATAN2_TOLERANCE, 0},
+{881, 1041865114u, 1045220557u, 1059372157u, 0, ATAN2_TOLERANCE, 0},
+{882, 1041865114u, 1048576000u, 1057642735u, 0, ATAN2_TOLERANCE, 0},
+{883, 1041865114u, 1050253722u, 1055744824u, 0, ATAN2_TOLERANCE, 0},
+{884, 1041865114u, 1051931443u, 1053773306u, 0, ATAN2_TOLERANCE, 0},
+{885, 1041865114u, 1053609165u, 1052225738u, 0, ATAN2_TOLERANCE, 0},
+{886, 1041865114u, 1055286886u, 1050983549u, 0, ATAN2_TOLERANCE, 0},
+{887, 1041865114u, 1056964608u, 1049967059u, 0, ATAN2_TOLERANCE, 0},
+{888, 1041865114u, 1057803469u, 1049121328u, 0, ATAN2_TOLERANCE, 0},
+{889, 1041865114u, 1058642330u, 1048239024u, 0, ATAN2_TOLERANCE, 0},
+{890, 1041865114u, 1059481190u, 1047018997u, 0, ATAN2_TOLERANCE, 0},
+{891, 1041865114u, 1060320051u, 1045965018u, 0, ATAN2_TOLERANCE, 0},
+{892, 1041865114u, 1061158912u, 1045045776u, 0, ATAN2_TOLERANCE, 0},
+{893, 1041865114u, 1061997773u, 1044237274u, 0, ATAN2_TOLERANCE, 0},
+{894, 1041865114u, 1062836634u, 1043520837u, 0, ATAN2_TOLERANCE, 0},
+{895, 1041865114u, 1063675494u, 1042881724u, 0, ATAN2_TOLERANCE, 0},
+{896, 1041865114u, 1064514355u, 1042308158u, 0, ATAN2_TOLERANCE, 0},
+{897, 1045220557u, 3212836864u, 1077702074u, 0, ATAN2_TOLERANCE, 0},
+{898, 1045220557u, 3211998003u, 1077659708u, 0, ATAN2_TOLERANCE, 0},
+{899, 1045220557u, 3211159142u, 1077612847u, 0, ATAN2_TOLERANCE, 0},
+{900, 1045220557u, 3210320282u, 1077560746u, 0, ATAN2_TOLERANCE, 0},
+{901, 1045220557u, 3209481421u, 1077502496u, 0, ATAN2_TOLERANCE, 0},
+{902, 1045220557u, 3208642560u, 1077436965u, 0, ATAN2_TOLERANCE, 0},
+{903, 1045220557u, 3207803699u, 1077362737u, 0, ATAN2_TOLERANCE, 0},
+{904, 1045220557u, 3206964838u, 1077278015u, 0, ATAN2_TOLERANCE, 0},
+{905, 1045220557u, 3206125978u, 1077180491u, 0, ATAN2_TOLERANCE, 0},
+{906, 1045220557u, 3205287117u, 1077067159u, 0, ATAN2_TOLERANCE, 0},
+{907, 1045220557u, 3204448256u, 1076934051u, 0, ATAN2_TOLERANCE, 0},
+{908, 1045220557u, 3202770534u, 1076775851u, 0, ATAN2_TOLERANCE, 0},
+{909, 1045220557u, 3201092813u, 1076585332u, 0, ATAN2_TOLERANCE, 0},
+{910, 1045220557u, 3199415091u, 1076352554u, 0, ATAN2_TOLERANCE, 0},
+{911, 1045220557u, 3197737370u, 1076063749u, 0, ATAN2_TOLERANCE, 0},
+{912, 1045220557u, 3196059648u, 1075699942u, 0, ATAN2_TOLERANCE, 0},
+{913, 1045220557u, 3192704205u, 1075235812u, 0, ATAN2_TOLERANCE, 0},
+{914, 1045220557u, 3189348762u, 1074640653u, 0, ATAN2_TOLERANCE, 0},
+{915, 1045220557u, 3184315597u, 1073886292u, 0, ATAN2_TOLERANCE, 0},
+{916, 1045220557u, 3175926989u, 1072196433u, 0, ATAN2_TOLERANCE, 0},
+{917, 1045220557u, 1028443341u, 1068086373u, 0, ATAN2_TOLERANCE, 0},
+{918, 1045220557u, 1036831949u, 1066252045u, 0, ATAN2_TOLERANCE, 0},
+{919, 1045220557u, 1041865114u, 1064133432u, 0, ATAN2_TOLERANCE, 0},
+{920, 1045220557u, 1045220557u, 1061752795u, 0, ATAN2_TOLERANCE, 0},
+{921, 1045220557u, 1048576000u, 1059896275u, 0, ATAN2_TOLERANCE, 0},
+{922, 1045220557u, 1050253722u, 1058441047u, 0, ATAN2_TOLERANCE, 0},
+{923, 1045220557u, 1051931443u, 1057285826u, 0, ATAN2_TOLERANCE, 0},
+{924, 1045220557u, 1053609165u, 1055744824u, 0, ATAN2_TOLERANCE, 0},
+{925, 1045220557u, 1055286886u, 1054220672u, 0, ATAN2_TOLERANCE, 0},
+{926, 1045220557u, 1056964608u, 1052955067u, 0, ATAN2_TOLERANCE, 0},
+{927, 1045220557u, 1057803469u, 1051890205u, 0, ATAN2_TOLERANCE, 0},
+{928, 1045220557u, 1058642330u, 1050983549u, 0, ATAN2_TOLERANCE, 0},
+{929, 1045220557u, 1059481190u, 1050203354u, 0, ATAN2_TOLERANCE, 0},
+{930, 1045220557u, 1060320051u, 1049525579u, 0, ATAN2_TOLERANCE, 0},
+{931, 1045220557u, 1061158912u, 1048931757u, 0, ATAN2_TOLERANCE, 0},
+{932, 1045220557u, 1061997773u, 1048239024u, 0, ATAN2_TOLERANCE, 0},
+{933, 1045220557u, 1062836634u, 1047307016u, 0, ATAN2_TOLERANCE, 0},
+{934, 1045220557u, 1063675494u, 1046473409u, 0, ATAN2_TOLERANCE, 0},
+{935, 1045220557u, 1064514355u, 1045723620u, 0, ATAN2_TOLERANCE, 0},
+{936, 1048576000u, 3212836864u, 1077502496u, 0, ATAN2_TOLERANCE, 0},
+{937, 1048576000u, 3211998003u, 1077450717u, 0, ATAN2_TOLERANCE, 0},
+{938, 1048576000u, 3211159142u, 1077393577u, 0, ATAN2_TOLERANCE, 0},
+{939, 1048576000u, 3210320282u, 1077330224u, 0, ATAN2_TOLERANCE, 0},
+{940, 1048576000u, 3209481421u, 1077259619u, 0, ATAN2_TOLERANCE, 0},
+{941, 1048576000u, 3208642560u, 1077180491u, 0, ATAN2_TOLERANCE, 0},
+{942, 1048576000u, 3207803699u, 1077091264u, 0, ATAN2_TOLERANCE, 0},
+{943, 1048576000u, 3206964838u, 1076989972u, 0, ATAN2_TOLERANCE, 0},
+{944, 1048576000u, 3206125978u, 1076874137u, 0, ATAN2_TOLERANCE, 0},
+{945, 1048576000u, 3205287117u, 1076740605u, 0, ATAN2_TOLERANCE, 0},
+{946, 1048576000u, 3204448256u, 1076585332u, 0, ATAN2_TOLERANCE, 0},
+{947, 1048576000u, 3202770534u, 1076403085u, 0, ATAN2_TOLERANCE, 0},
+{948, 1048576000u, 3201092813u, 1076187075u, 0, ATAN2_TOLERANCE, 0},
+{949, 1048576000u, 3199415091u, 1075928496u, 0, ATAN2_TOLERANCE, 0},
+{950, 1048576000u, 3197737370u, 1075616067u, 0, ATAN2_TOLERANCE, 0},
+{951, 1048576000u, 3196059648u, 1075235812u, 0, ATAN2_TOLERANCE, 0},
+{952, 1048576000u, 3192704205u, 1074771682u, 0, ATAN2_TOLERANCE, 0},
+{953, 1048576000u, 3189348762u, 1074208297u, 0, ATAN2_TOLERANCE, 0},
+{954, 1048576000u, 3184315597u, 1073333321u, 0, ATAN2_TOLERANCE, 0},
+{955, 1048576000u, 3175926989u, 1071797277u, 0, ATAN2_TOLERANCE, 0},
+{956, 1048576000u, 1028443341u, 1068485529u, 0, ATAN2_TOLERANCE, 0},
+{957, 1048576000u, 1036831949u, 1066949484u, 0, ATAN2_TOLERANCE, 0},
+{958, 1048576000u, 1041865114u, 1065608035u, 0, ATAN2_TOLERANCE, 0},
+{959, 1048576000u, 1045220557u, 1063609315u, 0, ATAN2_TOLERANCE, 0},
+{960, 1048576000u, 1048576000u, 1061752795u, 0, ATAN2_TOLERANCE, 0},
+{961, 1048576000u, 1050253722u, 1060231774u, 0, ATAN2_TOLERANCE, 0},
+{962, 1048576000u, 1051931443u, 1058982060u, 0, ATAN2_TOLERANCE, 0},
+{963, 1048576000u, 1053609165u, 1057947741u, 0, ATAN2_TOLERANCE, 0},
+{964, 1048576000u, 1055286886u, 1057083701u, 0, ATAN2_TOLERANCE, 0},
+{965, 1048576000u, 1056964608u, 1055744824u, 0, ATAN2_TOLERANCE, 0},
+{966, 1048576000u, 1057803469u, 1054502635u, 0, ATAN2_TOLERANCE, 0},
+{967, 1048576000u, 1058642330u, 1053434384u, 0, ATAN2_TOLERANCE, 0},
+{968, 1048576000u, 1059481190u, 1052507701u, 0, ATAN2_TOLERANCE, 0},
+{969, 1048576000u, 1060320051u, 1051697365u, 0, ATAN2_TOLERANCE, 0},
+{970, 1048576000u, 1061158912u, 1050983549u, 0, ATAN2_TOLERANCE, 0},
+{971, 1048576000u, 1061997773u, 1050350522u, 0, ATAN2_TOLERANCE, 0},
+{972, 1048576000u, 1062836634u, 1049785686u, 0, ATAN2_TOLERANCE, 0},
+{973, 1048576000u, 1063675494u, 1049278860u, 0, ATAN2_TOLERANCE, 0},
+{974, 1048576000u, 1064514355u, 1048821743u, 0, ATAN2_TOLERANCE, 0},
+{975, 1050253722u, 3212836864u, 1077307552u, 0, ATAN2_TOLERANCE, 0},
+{976, 1050253722u, 3211998003u, 1077247062u, 0, ATAN2_TOLERANCE, 0},
+{977, 1050253722u, 3211159142u, 1077180491u, 0, ATAN2_TOLERANCE, 0},
+{978, 1050253722u, 3210320282u, 1077106914u, 0, ATAN2_TOLERANCE, 0},
+{979, 1050253722u, 3209481421u, 1077025217u, 0, ATAN2_TOLERANCE, 0},
+{980, 1050253722u, 3208642560u, 1076934051u, 0, ATAN2_TOLERANCE, 0},
+{981, 1050253722u, 3207803699u, 1076831771u, 0, ATAN2_TOLERANCE, 0},
+{982, 1050253722u, 3206964838u, 1076716361u, 0, ATAN2_TOLERANCE, 0},
+{983, 1050253722u, 3206125978u, 1076585332u, 0, ATAN2_TOLERANCE, 0},
+{984, 1050253722u, 3205287117u, 1076435599u, 0, ATAN2_TOLERANCE, 0},
+{985, 1050253722u, 3204448256u, 1076263327u, 0, ATAN2_TOLERANCE, 0},
+{986, 1050253722u, 3202770534u, 1076063749u, 0, ATAN2_TOLERANCE, 0},
+{987, 1050253722u, 3201092813u, 1075830971u, 0, ATAN2_TOLERANCE, 0},
+{988, 1050253722u, 3199415091u, 1075557817u, 0, ATAN2_TOLERANCE, 0},
+{989, 1050253722u, 3197737370u, 1075235812u, 0, ATAN2_TOLERANCE, 0},
+{990, 1050253722u, 3196059648u, 1074855557u, 0, ATAN2_TOLERANCE, 0},
+{991, 1050253722u, 3192704205u, 1074407875u, 0, ATAN2_TOLERANCE, 0},
+{992, 1050253722u, 3189348762u, 1073886292u, 0, ATAN2_TOLERANCE, 0},
+{993, 1050253722u, 3184315597u, 1072840442u, 0, ATAN2_TOLERANCE, 0},
+{994, 1050253722u, 3175926989u, 1071526770u, 0, ATAN2_TOLERANCE, 0},
+{995, 1050253722u, 1028443341u, 1068756035u, 0, ATAN2_TOLERANCE, 0},
+{996, 1050253722u, 1036831949u, 1067442363u, 0, ATAN2_TOLERANCE, 0},
+{997, 1050253722u, 1041865114u, 1066252045u, 0, ATAN2_TOLERANCE, 0},
+{998, 1050253722u, 1045220557u, 1065064543u, 0, ATAN2_TOLERANCE, 0},
+{999, 1050253722u, 1048576000u, 1063273815u, 0, ATAN2_TOLERANCE, 0},
+{1000, 1050253722u, 1050253722u, 1061752795u, 0, ATAN2_TOLERANCE, 0},
+{1001, 1050253722u, 1051931443u, 1060464776u, 0, ATAN2_TOLERANCE, 0},
+{1002, 1050253722u, 1053609165u, 1059372157u, 0, ATAN2_TOLERANCE, 0},
+{1003, 1050253722u, 1055286886u, 1058441047u, 0, ATAN2_TOLERANCE, 0},
+{1004, 1050253722u, 1056964608u, 1057642735u, 0, ATAN2_TOLERANCE, 0},
+{1005, 1050253722u, 1057803469u, 1056942688u, 0, ATAN2_TOLERANCE, 0},
+{1006, 1050253722u, 1058642330u, 1055744824u, 0, ATAN2_TOLERANCE, 0},
+{1007, 1050253722u, 1059481190u, 1054696589u, 0, ATAN2_TOLERANCE, 0},
+{1008, 1050253722u, 1060320051u, 1053773306u, 0, ATAN2_TOLERANCE, 0},
+{1009, 1050253722u, 1061158912u, 1052955067u, 0, ATAN2_TOLERANCE, 0},
+{1010, 1050253722u, 1061997773u, 1052225738u, 0, ATAN2_TOLERANCE, 0},
+{1011, 1050253722u, 1062836634u, 1051572163u, 0, ATAN2_TOLERANCE, 0},
+{1012, 1050253722u, 1063675494u, 1050983549u, 0, ATAN2_TOLERANCE, 0},
+{1013, 1050253722u, 1064514355u, 1050450984u, 0, ATAN2_TOLERANCE, 0},
+{1014, 1051931443u, 3212836864u, 1077117894u, 0, ATAN2_TOLERANCE, 0},
+{1015, 1051931443u, 3211998003u, 1077049462u, 0, ATAN2_TOLERANCE, 0},
+{1016, 1051931443u, 3211159142u, 1076974380u, 0, ATAN2_TOLERANCE, 0},
+{1017, 1051931443u, 3210320282u, 1076891686u, 0, ATAN2_TOLERANCE, 0},
+{1018, 1051931443u, 3209481421u, 1076800236u, 0, ATAN2_TOLERANCE, 0},
+{1019, 1051931443u, 3208642560u, 1076698664u, 0, ATAN2_TOLERANCE, 0},
+{1020, 1051931443u, 3207803699u, 1076585332u, 0, ATAN2_TOLERANCE, 0},
+{1021, 1051931443u, 3206964838u, 1076458270u, 0, ATAN2_TOLERANCE, 0},
+{1022, 1051931443u, 3206125978u, 1076315106u, 0, ATAN2_TOLERANCE, 0},
+{1023, 1051931443u, 3205287117u, 1076152976u, 0, ATAN2_TOLERANCE, 0},
+{1024, 1051931443u, 3204448256u, 1075968440u, 0, ATAN2_TOLERANCE, 0},
+{1025, 1051931443u, 3202770534u, 1075757395u, 0, ATAN2_TOLERANCE, 0},
+{1026, 1051931443u, 3201092813u, 1075515019u, 0, ATAN2_TOLERANCE, 0},
+{1027, 1051931443u, 3199415091u, 1075235812u, 0, ATAN2_TOLERANCE, 0},
+{1028, 1051931443u, 3197737370u, 1074913807u, 0, ATAN2_TOLERANCE, 0},
+{1029, 1051931443u, 3196059648u, 1074543128u, 0, ATAN2_TOLERANCE, 0},
+{1030, 1051931443u, 3192704205u, 1074119070u, 0, ATAN2_TOLERANCE, 0},
+{1031, 1051931443u, 3189348762u, 1073537881u, 0, ATAN2_TOLERANCE, 0},
+{1032, 1051931443u, 3184315597u, 1072475949u, 0, ATAN2_TOLERANCE, 0},
+{1033, 1051931443u, 3175926989u, 1071331721u, 0, ATAN2_TOLERANCE, 0},
+{1034, 1051931443u, 1028443341u, 1068951084u, 0, ATAN2_TOLERANCE, 0},
+{1035, 1051931443u, 1036831949u, 1067806856u, 0, ATAN2_TOLERANCE, 0},
+{1036, 1051931443u, 1041865114u, 1066744924u, 0, ATAN2_TOLERANCE, 0},
+{1037, 1051931443u, 1045220557u, 1065786489u, 0, ATAN2_TOLERANCE, 0},
+{1038, 1051931443u, 1048576000u, 1064523530u, 0, ATAN2_TOLERANCE, 0},
+{1039, 1051931443u, 1050253722u, 1063040813u, 0, ATAN2_TOLERANCE, 0},
+{1040, 1051931443u, 1051931443u, 1061752795u, 0, ATAN2_TOLERANCE, 0},
+{1041, 1051931443u, 1053609165u, 1060635966u, 0, ATAN2_TOLERANCE, 0},
+{1042, 1051931443u, 1055286886u, 1059666464u, 0, ATAN2_TOLERANCE, 0},
+{1043, 1051931443u, 1056964608u, 1058822281u, 0, ATAN2_TOLERANCE, 0},
+{1044, 1051931443u, 1057803469u, 1058084138u, 0, ATAN2_TOLERANCE, 0},
+{1045, 1051931443u, 1058642330u, 1057435619u, 0, ATAN2_TOLERANCE, 0},
+{1046, 1051931443u, 1059481190u, 1056761314u, 0, ATAN2_TOLERANCE, 0},
+{1047, 1051931443u, 1060320051u, 1055744824u, 0, ATAN2_TOLERANCE, 0},
+{1048, 1051931443u, 1061158912u, 1054838168u, 0, ATAN2_TOLERANCE, 0},
+{1049, 1051931443u, 1061997773u, 1054025590u, 0, ATAN2_TOLERANCE, 0},
+{1050, 1051931443u, 1062836634u, 1053293989u, 0, ATAN2_TOLERANCE, 0},
+{1051, 1051931443u, 1063675494u, 1052632439u, 0, ATAN2_TOLERANCE, 0},
+{1052, 1051931443u, 1064514355u, 1052031784u, 0, ATAN2_TOLERANCE, 0},
+{1053, 1053609165u, 3212836864u, 1076934051u, 0, ATAN2_TOLERANCE, 0},
+{1054, 1053609165u, 3211998003u, 1076858486u, 0, ATAN2_TOLERANCE, 0},
+{1055, 1053609165u, 3211159142u, 1076775851u, 0, ATAN2_TOLERANCE, 0},
+{1056, 1053609165u, 3210320282u, 1076685177u, 0, ATAN2_TOLERANCE, 0},
+{1057, 1053609165u, 3209481421u, 1076585332u, 0, ATAN2_TOLERANCE, 0},
+{1058, 1053609165u, 3208642560u, 1076474981u, 0, ATAN2_TOLERANCE, 0},
+{1059, 1053609165u, 3207803699u, 1076352554u, 0, ATAN2_TOLERANCE, 0},
+{1060, 1053609165u, 3206964838u, 1076216202u, 0, ATAN2_TOLERANCE, 0},
+{1061, 1053609165u, 3206125978u, 1076063749u, 0, ATAN2_TOLERANCE, 0},
+{1062, 1053609165u, 3205287117u, 1075892648u, 0, ATAN2_TOLERANCE, 0},
+{1063, 1053609165u, 3204448256u, 1075699942u, 0, ATAN2_TOLERANCE, 0},
+{1064, 1053609165u, 3202770534u, 1075482252u, 0, ATAN2_TOLERANCE, 0},
+{1065, 1053609165u, 3201092813u, 1075235812u, 0, ATAN2_TOLERANCE, 0},
+{1066, 1053609165u, 3199415091u, 1074956605u, 0, ATAN2_TOLERANCE, 0},
+{1067, 1053609165u, 3197737370u, 1074640653u, 0, ATAN2_TOLERANCE, 0},
+{1068, 1053609165u, 3196059648u, 1074284549u, 0, ATAN2_TOLERANCE, 0},
+{1069, 1053609165u, 3192704205u, 1073886292u, 0, ATAN2_TOLERANCE, 0},
+{1070, 1053609165u, 3189348762u, 1073150989u, 0, ATAN2_TOLERANCE, 0},
+{1071, 1053609165u, 3184315597u, 1072196433u, 0, ATAN2_TOLERANCE, 0},
+{1072, 1053609165u, 3175926989u, 1071184568u, 0, ATAN2_TOLERANCE, 0},
+{1073, 1053609165u, 1028443341u, 1069098237u, 0, ATAN2_TOLERANCE, 0},
+{1074, 1053609165u, 1036831949u, 1068086373u, 0, ATAN2_TOLERANCE, 0},
+{1075, 1053609165u, 1041865114u, 1067131816u, 0, ATAN2_TOLERANCE, 0},
+{1076, 1053609165u, 1045220557u, 1066252045u, 0, ATAN2_TOLERANCE, 0},
+{1077, 1053609165u, 1048576000u, 1065455532u, 0, ATAN2_TOLERANCE, 0},
+{1078, 1053609165u, 1050253722u, 1064133432u, 0, ATAN2_TOLERANCE, 0},
+{1079, 1053609165u, 1051931443u, 1062869623u, 0, ATAN2_TOLERANCE, 0},
+{1080, 1053609165u, 1053609165u, 1061752795u, 0, ATAN2_TOLERANCE, 0},
+{1081, 1053609165u, 1055286886u, 1060767036u, 0, ATAN2_TOLERANCE, 0},
+{1082, 1053609165u, 1056964608u, 1059896275u, 0, ATAN2_TOLERANCE, 0},
+{1083, 1053609165u, 1057803469u, 1059125451u, 0, ATAN2_TOLERANCE, 0},
+{1084, 1053609165u, 1058642330u, 1058441047u, 0, ATAN2_TOLERANCE, 0},
+{1085, 1053609165u, 1059481190u, 1057831235u, 0, ATAN2_TOLERANCE, 0},
+{1086, 1053609165u, 1060320051u, 1057285826u, 0, ATAN2_TOLERANCE, 0},
+{1087, 1053609165u, 1061158912u, 1056627632u, 0, ATAN2_TOLERANCE, 0},
+{1088, 1053609165u, 1061997773u, 1055744824u, 0, ATAN2_TOLERANCE, 0},
+{1089, 1053609165u, 1062836634u, 1054946060u, 0, ATAN2_TOLERANCE, 0},
+{1090, 1053609165u, 1063675494u, 1054220672u, 0, ATAN2_TOLERANCE, 0},
+{1091, 1053609165u, 1064514355u, 1053559586u, 0, ATAN2_TOLERANCE, 0},
+{1092, 1055286886u, 3212836864u, 1076756433u, 0, ATAN2_TOLERANCE, 0},
+{1093, 1055286886u, 3211998003u, 1076674559u, 0, ATAN2_TOLERANCE, 0},
+{1094, 1055286886u, 3211159142u, 1076585332u, 0, ATAN2_TOLERANCE, 0},
+{1095, 1055286886u, 3210320282u, 1076487807u, 0, ATAN2_TOLERANCE, 0},
+{1096, 1055286886u, 3209481421u, 1076380893u, 0, ATAN2_TOLERANCE, 0},
+{1097, 1055286886u, 3208642560u, 1076263327u, 0, ATAN2_TOLERANCE, 0},
+{1098, 1055286886u, 3207803699u, 1076133648u, 0, ATAN2_TOLERANCE, 0},
+{1099, 1055286886u, 3206964838u, 1075990172u, 0, ATAN2_TOLERANCE, 0},
+{1100, 1055286886u, 3206125978u, 1075830971u, 0, ATAN2_TOLERANCE, 0},
+{1101, 1055286886u, 3205287117u, 1075653853u, 0, ATAN2_TOLERANCE, 0},
+{1102, 1055286886u, 3204448256u, 1075456361u, 0, ATAN2_TOLERANCE, 0},
+{1103, 1055286886u, 3202770534u, 1075235812u, 0, ATAN2_TOLERANCE, 0},
+{1104, 1055286886u, 3201092813u, 1074989372u, 0, ATAN2_TOLERANCE, 0},
+{1105, 1055286886u, 3199415091u, 1074714229u, 0, ATAN2_TOLERANCE, 0},
+{1106, 1055286886u, 3197737370u, 1074407875u, 0, ATAN2_TOLERANCE, 0},
+{1107, 1055286886u, 3196059648u, 1074068539u, 0, ATAN2_TOLERANCE, 0},
+{1108, 1055286886u, 3192704205u, 1073649723u, 0, ATAN2_TOLERANCE, 0},
+{1109, 1055286886u, 3189348762u, 1072840442u, 0, ATAN2_TOLERANCE, 0},
+{1110, 1055286886u, 3184315597u, 1071975731u, 0, ATAN2_TOLERANCE, 0},
+{1111, 1055286886u, 3175926989u, 1071069663u, 0, ATAN2_TOLERANCE, 0},
+{1112, 1055286886u, 1028443341u, 1069213143u, 0, ATAN2_TOLERANCE, 0},
+{1113, 1055286886u, 1036831949u, 1068307075u, 0, ATAN2_TOLERANCE, 0},
+{1114, 1055286886u, 1041865114u, 1067442363u, 0, ATAN2_TOLERANCE, 0},
+{1115, 1055286886u, 1045220557u, 1066633083u, 0, ATAN2_TOLERANCE, 0},
+{1116, 1055286886u, 1048576000u, 1065887552u, 0, ATAN2_TOLERANCE, 0},
+{1117, 1055286886u, 1050253722u, 1065064543u, 0, ATAN2_TOLERANCE, 0},
+{1118, 1055286886u, 1051931443u, 1063839125u, 0, ATAN2_TOLERANCE, 0},
+{1119, 1055286886u, 1053609165u, 1062738554u, 0, ATAN2_TOLERANCE, 0},
+{1120, 1055286886u, 1055286886u, 1061752795u, 0, ATAN2_TOLERANCE, 0},
+{1121, 1055286886u, 1056964608u, 1060870597u, 0, ATAN2_TOLERANCE, 0},
+{1122, 1055286886u, 1057803469u, 1060080632u, 0, ATAN2_TOLERANCE, 0},
+{1123, 1055286886u, 1058642330u, 1059372157u, 0, ATAN2_TOLERANCE, 0},
+{1124, 1055286886u, 1059481190u, 1058735354u, 0, ATAN2_TOLERANCE, 0},
+{1125, 1055286886u, 1060320051u, 1058161452u, 0, ATAN2_TOLERANCE, 0},
+{1126, 1055286886u, 1061158912u, 1057642735u, 0, ATAN2_TOLERANCE, 0},
+{1127, 1055286886u, 1061997773u, 1057172469u, 0, ATAN2_TOLERANCE, 0},
+{1128, 1055286886u, 1062836634u, 1056525019u, 0, ATAN2_TOLERANCE, 0},
+{1129, 1055286886u, 1063675494u, 1055744824u, 0, ATAN2_TOLERANCE, 0},
+{1130, 1055286886u, 1064514355u, 1055031008u, 0, ATAN2_TOLERANCE, 0},
+{1131, 1056964608u, 3212836864u, 1076585332u, 0, ATAN2_TOLERANCE, 0},
+{1132, 1056964608u, 3211998003u, 1076497963u, 0, ATAN2_TOLERANCE, 0},
+{1133, 1056964608u, 3211159142u, 1076403085u, 0, ATAN2_TOLERANCE, 0},
+{1134, 1056964608u, 3210320282u, 1076299798u, 0, ATAN2_TOLERANCE, 0},
+{1135, 1056964608u, 3209481421u, 1076187075u, 0, ATAN2_TOLERANCE, 0},
+{1136, 1056964608u, 3208642560u, 1076063749u, 0, ATAN2_TOLERANCE, 0},
+{1137, 1056964608u, 3207803699u, 1075928496u, 0, ATAN2_TOLERANCE, 0},
+{1138, 1056964608u, 3206964838u, 1075779824u, 0, ATAN2_TOLERANCE, 0},
+{1139, 1056964608u, 3206125978u, 1075616067u, 0, ATAN2_TOLERANCE, 0},
+{1140, 1056964608u, 3205287117u, 1075435390u, 0, ATAN2_TOLERANCE, 0},
+{1141, 1056964608u, 3204448256u, 1075235812u, 0, ATAN2_TOLERANCE, 0},
+{1142, 1056964608u, 3202770534u, 1075015263u, 0, ATAN2_TOLERANCE, 0},
+{1143, 1056964608u, 3201092813u, 1074771682u, 0, ATAN2_TOLERANCE, 0},
+{1144, 1056964608u, 3199415091u, 1074503184u, 0, ATAN2_TOLERANCE, 0},
+{1145, 1056964608u, 3197737370u, 1074208297u, 0, ATAN2_TOLERANCE, 0},
+{1146, 1056964608u, 3196059648u, 1073886292u, 0, ATAN2_TOLERANCE, 0},
+{1147, 1056964608u, 3192704205u, 1073333321u, 0, ATAN2_TOLERANCE, 0},
+{1148, 1056964608u, 3189348762u, 1072586319u, 0, ATAN2_TOLERANCE, 0},
+{1149, 1056964608u, 3184315597u, 1071797277u, 0, ATAN2_TOLERANCE, 0},
+{1150, 1056964608u, 3175926989u, 1070977484u, 0, ATAN2_TOLERANCE, 0},
+{1151, 1056964608u, 1028443341u, 1069305321u, 0, ATAN2_TOLERANCE, 0},
+{1152, 1056964608u, 1036831949u, 1068485529u, 0, ATAN2_TOLERANCE, 0},
+{1153, 1056964608u, 1041865114u, 1067696486u, 0, ATAN2_TOLERANCE, 0},
+{1154, 1056964608u, 1045220557u, 1066949484u, 0, ATAN2_TOLERANCE, 0},
+{1155, 1056964608u, 1048576000u, 1066252045u, 0, ATAN2_TOLERANCE, 0},
+{1156, 1056964608u, 1050253722u, 1065608035u, 0, ATAN2_TOLERANCE, 0},
+{1157, 1056964608u, 1051931443u, 1064683308u, 0, ATAN2_TOLERANCE, 0},
+{1158, 1056964608u, 1053609165u, 1063609315u, 0, ATAN2_TOLERANCE, 0},
+{1159, 1056964608u, 1055286886u, 1062634992u, 0, ATAN2_TOLERANCE, 0},
+{1160, 1056964608u, 1056964608u, 1061752795u, 0, ATAN2_TOLERANCE, 0},
+{1161, 1056964608u, 1057803469u, 1060954483u, 0, ATAN2_TOLERANCE, 0},
+{1162, 1056964608u, 1058642330u, 1060231774u, 0, ATAN2_TOLERANCE, 0},
+{1163, 1056964608u, 1059481190u, 1059576747u, 0, ATAN2_TOLERANCE, 0},
+{1164, 1056964608u, 1060320051u, 1058982060u, 0, ATAN2_TOLERANCE, 0},
+{1165, 1056964608u, 1061158912u, 1058441047u, 0, ATAN2_TOLERANCE, 0},
+{1166, 1056964608u, 1061997773u, 1057947741u, 0, ATAN2_TOLERANCE, 0},
+{1167, 1056964608u, 1062836634u, 1057496850u, 0, ATAN2_TOLERANCE, 0},
+{1168, 1056964608u, 1063675494u, 1057083701u, 0, ATAN2_TOLERANCE, 0},
+{1169, 1056964608u, 1064514355u, 1056443774u, 0, ATAN2_TOLERANCE, 0},
+{1170, 1057803469u, 3212836864u, 1076420933u, 0, ATAN2_TOLERANCE, 0},
+{1171, 1057803469u, 3211998003u, 1076328858u, 0, ATAN2_TOLERANCE, 0},
+{1172, 1057803469u, 3211159142u, 1076229228u, 0, ATAN2_TOLERANCE, 0},
+{1173, 1057803469u, 3210320282u, 1076121202u, 0, ATAN2_TOLERANCE, 0},
+{1174, 1057803469u, 3209481421u, 1076003834u, 0, ATAN2_TOLERANCE, 0},
+{1175, 1057803469u, 3208642560u, 1075876070u, 0, ATAN2_TOLERANCE, 0},
+{1176, 1057803469u, 3207803699u, 1075736733u, 0, ATAN2_TOLERANCE, 0},
+{1177, 1057803469u, 3206964838u, 1075584532u, 0, ATAN2_TOLERANCE, 0},
+{1178, 1057803469u, 3206125978u, 1075418058u, 0, ATAN2_TOLERANCE, 0},
+{1179, 1057803469u, 3205287117u, 1075235812u, 0, ATAN2_TOLERANCE, 0},
+{1180, 1057803469u, 3204448256u, 1075036234u, 0, ATAN2_TOLERANCE, 0},
+{1181, 1057803469u, 3202770534u, 1074817771u, 0, ATAN2_TOLERANCE, 0},
+{1182, 1057803469u, 3201092813u, 1074578976u, 0, ATAN2_TOLERANCE, 0},
+{1183, 1057803469u, 3199415091u, 1074318648u, 0, ATAN2_TOLERANCE, 0},
+{1184, 1057803469u, 3197737370u, 1074036025u, 0, ATAN2_TOLERANCE, 0},
+{1185, 1057803469u, 3196059648u, 1073720213u, 0, ATAN2_TOLERANCE, 0},
+{1186, 1057803469u, 3192704205u, 1073067106u, 0, ATAN2_TOLERANCE, 0},
+{1187, 1057803469u, 3189348762u, 1072374887u, 0, ATAN2_TOLERANCE, 0},
+{1188, 1057803469u, 3184315597u, 1071650123u, 0, ATAN2_TOLERANCE, 0},
+{1189, 1057803469u, 3175926989u, 1070901913u, 0, ATAN2_TOLERANCE, 0},
+{1190, 1057803469u, 1028443341u, 1069380892u, 0, ATAN2_TOLERANCE, 0},
+{1191, 1057803469u, 1036831949u, 1068632682u, 0, ATAN2_TOLERANCE, 0},
+{1192, 1057803469u, 1041865114u, 1067907919u, 0, ATAN2_TOLERANCE, 0},
+{1193, 1057803469u, 1045220557u, 1067215699u, 0, ATAN2_TOLERANCE, 0},
+{1194, 1057803469u, 1048576000u, 1066562592u, 0, ATAN2_TOLERANCE, 0},
+{1195, 1057803469u, 1050253722u, 1065952579u, 0, ATAN2_TOLERANCE, 0},
+{1196, 1057803469u, 1051931443u, 1065387333u, 0, ATAN2_TOLERANCE, 0},
+{1197, 1057803469u, 1053609165u, 1064380138u, 0, ATAN2_TOLERANCE, 0},
+{1198, 1057803469u, 1055286886u, 1063424957u, 0, ATAN2_TOLERANCE, 0},
+{1199, 1057803469u, 1056964608u, 1062551107u, 0, ATAN2_TOLERANCE, 0},
+{1200, 1057803469u, 1057803469u, 1061752795u, 0, ATAN2_TOLERANCE, 0},
+{1201, 1057803469u, 1058642330u, 1061023810u, 0, ATAN2_TOLERANCE, 0},
+{1202, 1057803469u, 1059481190u, 1060357916u, 0, ATAN2_TOLERANCE, 0},
+{1203, 1057803469u, 1060320051u, 1059749110u, 0, ATAN2_TOLERANCE, 0},
+{1204, 1057803469u, 1061158912u, 1059191764u, 0, ATAN2_TOLERANCE, 0},
+{1205, 1057803469u, 1061997773u, 1058680705u, 0, ATAN2_TOLERANCE, 0},
+{1206, 1057803469u, 1062836634u, 1058211236u, 0, ATAN2_TOLERANCE, 0},
+{1207, 1057803469u, 1063675494u, 1057779132u, 0, ATAN2_TOLERANCE, 0},
+{1208, 1057803469u, 1064514355u, 1057380612u, 0, ATAN2_TOLERANCE, 0},
+{1209, 1058642330u, 3212836864u, 1076263327u, 0, ATAN2_TOLERANCE, 0},
+{1210, 1058642330u, 3211998003u, 1076167291u, 0, ATAN2_TOLERANCE, 0},
+{1211, 1058642330u, 3211159142u, 1076063749u, 0, ATAN2_TOLERANCE, 0},
+{1212, 1058642330u, 3210320282u, 1075951927u, 0, ATAN2_TOLERANCE, 0},
+{1213, 1058642330u, 3209481421u, 1075830971u, 0, ATAN2_TOLERANCE, 0},
+{1214, 1058642330u, 3208642560u, 1075699942u, 0, ATAN2_TOLERANCE, 0},
+{1215, 1058642330u, 3207803699u, 1075557817u, 0, ATAN2_TOLERANCE, 0},
+{1216, 1058642330u, 3206964838u, 1075403495u, 0, ATAN2_TOLERANCE, 0},
+{1217, 1058642330u, 3206125978u, 1075235812u, 0, ATAN2_TOLERANCE, 0},
+{1218, 1058642330u, 3205287117u, 1075053566u, 0, ATAN2_TOLERANCE, 0},
+{1219, 1058642330u, 3204448256u, 1074855557u, 0, ATAN2_TOLERANCE, 0},
+{1220, 1058642330u, 3202770534u, 1074640653u, 0, ATAN2_TOLERANCE, 0},
+{1221, 1058642330u, 3201092813u, 1074407875u, 0, ATAN2_TOLERANCE, 0},
+{1222, 1058642330u, 3199415091u, 1074156518u, 0, ATAN2_TOLERANCE, 0},
+{1223, 1058642330u, 3197737370u, 1073886292u, 0, ATAN2_TOLERANCE, 0},
+{1224, 1058642330u, 3196059648u, 1073453151u, 0, ATAN2_TOLERANCE, 0},
+{1225, 1058642330u, 3192704205u, 1072840442u, 0, ATAN2_TOLERANCE, 0},
+{1226, 1058642330u, 3189348762u, 1072196433u, 0, ATAN2_TOLERANCE, 0},
+{1227, 1058642330u, 3184315597u, 1071526770u, 0, ATAN2_TOLERANCE, 0},
+{1228, 1058642330u, 3175926989u, 1070838842u, 0, ATAN2_TOLERANCE, 0},
+{1229, 1058642330u, 1028443341u, 1069443963u, 0, ATAN2_TOLERANCE, 0},
+{1230, 1058642330u, 1036831949u, 1068756035u, 0, ATAN2_TOLERANCE, 0},
+{1231, 1058642330u, 1041865114u, 1068086373u, 0, ATAN2_TOLERANCE, 0},
+{1232, 1058642330u, 1045220557u, 1067442363u, 0, ATAN2_TOLERANCE, 0},
+{1233, 1058642330u, 1048576000u, 1066829655u, 0, ATAN2_TOLERANCE, 0},
+{1234, 1058642330u, 1050253722u, 1066252045u, 0, ATAN2_TOLERANCE, 0},
+{1235, 1058642330u, 1051931443u, 1065711593u, 0, ATAN2_TOLERANCE, 0},
+{1236, 1058642330u, 1053609165u, 1065064543u, 0, ATAN2_TOLERANCE, 0},
+{1237, 1058642330u, 1055286886u, 1064133432u, 0, ATAN2_TOLERANCE, 0},
+{1238, 1058642330u, 1056964608u, 1063273815u, 0, ATAN2_TOLERANCE, 0},
+{1239, 1058642330u, 1057803469u, 1062481780u, 0, ATAN2_TOLERANCE, 0},
+{1240, 1058642330u, 1058642330u, 1061752795u, 0, ATAN2_TOLERANCE, 0},
+{1241, 1058642330u, 1059481190u, 1061082064u, 0, ATAN2_TOLERANCE, 0},
+{1242, 1058642330u, 1060320051u, 1060464776u, 0, ATAN2_TOLERANCE, 0},
+{1243, 1058642330u, 1061158912u, 1059896275u, 0, ATAN2_TOLERANCE, 0},
+{1244, 1058642330u, 1061997773u, 1059372157u, 0, ATAN2_TOLERANCE, 0},
+{1245, 1058642330u, 1062836634u, 1058888333u, 0, ATAN2_TOLERANCE, 0},
+{1246, 1058642330u, 1063675494u, 1058441047u, 0, ATAN2_TOLERANCE, 0},
+{1247, 1058642330u, 1064514355u, 1058026879u, 0, ATAN2_TOLERANCE, 0},
+{1248, 1059481190u, 3212836864u, 1076112518u, 0, ATAN2_TOLERANCE, 0},
+{1249, 1059481190u, 3211998003u, 1076013218u, 0, ATAN2_TOLERANCE, 0},
+{1250, 1059481190u, 3211159142u, 1075906536u, 0, ATAN2_TOLERANCE, 0},
+{1251, 1059481190u, 3210320282u, 1075791773u, 0, ATAN2_TOLERANCE, 0},
+{1252, 1059481190u, 3209481421u, 1075668168u, 0, ATAN2_TOLERANCE, 0},
+{1253, 1059481190u, 3208642560u, 1075534897u, 0, ATAN2_TOLERANCE, 0},
+{1254, 1059481190u, 3207803699u, 1075391086u, 0, ATAN2_TOLERANCE, 0},
+{1255, 1059481190u, 3206964838u, 1075235812u, 0, ATAN2_TOLERANCE, 0},
+{1256, 1059481190u, 3206125978u, 1075068129u, 0, ATAN2_TOLERANCE, 0},
+{1257, 1059481190u, 3205287117u, 1074887092u, 0, ATAN2_TOLERANCE, 0},
+{1258, 1059481190u, 3204448256u, 1074691800u, 0, ATAN2_TOLERANCE, 0},
+{1259, 1059481190u, 3202770534u, 1074481452u, 0, ATAN2_TOLERANCE, 0},
+{1260, 1059481190u, 3201092813u, 1074255422u, 0, ATAN2_TOLERANCE, 0},
+{1261, 1059481190u, 3199415091u, 1074013354u, 0, ATAN2_TOLERANCE, 0},
+{1262, 1059481190u, 3197737370u, 1073755263u, 0, ATAN2_TOLERANCE, 0},
+{1263, 1059481190u, 3196059648u, 1073221480u, 0, ATAN2_TOLERANCE, 0},
+{1264, 1059481190u, 3192704205u, 1072645393u, 0, ATAN2_TOLERANCE, 0},
+{1265, 1059481190u, 3189348762u, 1072043929u, 0, ATAN2_TOLERANCE, 0},
+{1266, 1059481190u, 3184315597u, 1071421918u, 0, ATAN2_TOLERANCE, 0},
+{1267, 1059481190u, 3175926989u, 1070785412u, 0, ATAN2_TOLERANCE, 0},
+{1268, 1059481190u, 1028443341u, 1069497393u, 0, ATAN2_TOLERANCE, 0},
+{1269, 1059481190u, 1036831949u, 1068860887u, 0, ATAN2_TOLERANCE, 0},
+{1270, 1059481190u, 1041865114u, 1068238876u, 0, ATAN2_TOLERANCE, 0},
+{1271, 1059481190u, 1045220557u, 1067637412u, 0, ATAN2_TOLERANCE, 0},
+{1272, 1059481190u, 1048576000u, 1067061325u, 0, ATAN2_TOLERANCE, 0},
+{1273, 1059481190u, 1050253722u, 1066514103u, 0, ATAN2_TOLERANCE, 0},
+{1274, 1059481190u, 1051931443u, 1065997922u, 0, ATAN2_TOLERANCE, 0},
+{1275, 1059481190u, 1053609165u, 1065513785u, 0, ATAN2_TOLERANCE, 0},
+{1276, 1059481190u, 1055286886u, 1064770236u, 0, ATAN2_TOLERANCE, 0},
+{1277, 1059481190u, 1056964608u, 1063928842u, 0, ATAN2_TOLERANCE, 0},
+{1278, 1059481190u, 1057803469u, 1063147673u, 0, ATAN2_TOLERANCE, 0},
+{1279, 1059481190u, 1058642330u, 1062423526u, 0, ATAN2_TOLERANCE, 0},
+{1280, 1059481190u, 1059481190u, 1061752795u, 0, ATAN2_TOLERANCE, 0},
+{1281, 1059481190u, 1060320051u, 1061131700u, 0, ATAN2_TOLERANCE, 0},
+{1282, 1059481190u, 1061158912u, 1060556454u, 0, ATAN2_TOLERANCE, 0},
+{1283, 1059481190u, 1061997773u, 1060023372u, 0, ATAN2_TOLERANCE, 0},
+{1284, 1059481190u, 1062836634u, 1059528949u, 0, ATAN2_TOLERANCE, 0},
+{1285, 1059481190u, 1063675494u, 1059069898u, 0, ATAN2_TOLERANCE, 0},
+{1286, 1059481190u, 1064514355u, 1058643172u, 0, ATAN2_TOLERANCE, 0},
+{1287, 1060320051u, 3212836864u, 1075968440u, 0, ATAN2_TOLERANCE, 0},
+{1288, 1060320051u, 3211998003u, 1075866515u, 0, ATAN2_TOLERANCE, 0},
+{1289, 1060320051u, 3211159142u, 1075757395u, 0, ATAN2_TOLERANCE, 0},
+{1290, 1060320051u, 3210320282u, 1075640452u, 0, ATAN2_TOLERANCE, 0},
+{1291, 1060320051u, 3209481421u, 1075515019u, 0, ATAN2_TOLERANCE, 0},
+{1292, 1060320051u, 3208642560u, 1075380386u, 0, ATAN2_TOLERANCE, 0},
+{1293, 1060320051u, 3207803699u, 1075235812u, 0, ATAN2_TOLERANCE, 0},
+{1294, 1060320051u, 3206964838u, 1075080538u, 0, ATAN2_TOLERANCE, 0},
+{1295, 1060320051u, 3206125978u, 1074913807u, 0, ATAN2_TOLERANCE, 0},
+{1296, 1060320051u, 3205287117u, 1074734891u, 0, ATAN2_TOLERANCE, 0},
+{1297, 1060320051u, 3204448256u, 1074543128u, 0, ATAN2_TOLERANCE, 0},
+{1298, 1060320051u, 3202770534u, 1074337976u, 0, ATAN2_TOLERANCE, 0},
+{1299, 1060320051u, 3201092813u, 1074119070u, 0, ATAN2_TOLERANCE, 0},
+{1300, 1060320051u, 3199415091u, 1073886292u, 0, ATAN2_TOLERANCE, 0},
+{1301, 1060320051u, 3197737370u, 1073537881u, 0, ATAN2_TOLERANCE, 0},
+{1302, 1060320051u, 3196059648u, 1073018896u, 0, ATAN2_TOLERANCE, 0},
+{1303, 1060320051u, 3192704205u, 1072475949u, 0, ATAN2_TOLERANCE, 0},
+{1304, 1060320051u, 3189348762u, 1071912182u, 0, ATAN2_TOLERANCE, 0},
+{1305, 1060320051u, 3184315597u, 1071331721u, 0, ATAN2_TOLERANCE, 0},
+{1306, 1060320051u, 3175926989u, 1070739573u, 0, ATAN2_TOLERANCE, 0},
+{1307, 1060320051u, 1028443341u, 1069543232u, 0, ATAN2_TOLERANCE, 0},
+{1308, 1060320051u, 1036831949u, 1068951084u, 0, ATAN2_TOLERANCE, 0},
+{1309, 1060320051u, 1041865114u, 1068370623u, 0, ATAN2_TOLERANCE, 0},
+{1310, 1060320051u, 1045220557u, 1067806856u, 0, ATAN2_TOLERANCE, 0},
+{1311, 1060320051u, 1048576000u, 1067263909u, 0, ATAN2_TOLERANCE, 0},
+{1312, 1060320051u, 1050253722u, 1066744924u, 0, ATAN2_TOLERANCE, 0},
+{1313, 1060320051u, 1051931443u, 1066252045u, 0, ATAN2_TOLERANCE, 0},
+{1314, 1060320051u, 1053609165u, 1065786489u, 0, ATAN2_TOLERANCE, 0},
+{1315, 1060320051u, 1055286886u, 1065344137u, 0, ATAN2_TOLERANCE, 0},
+{1316, 1060320051u, 1056964608u, 1064523530u, 0, ATAN2_TOLERANCE, 0},
+{1317, 1060320051u, 1057803469u, 1063756480u, 0, ATAN2_TOLERANCE, 0},
+{1318, 1060320051u, 1058642330u, 1063040813u, 0, ATAN2_TOLERANCE, 0},
+{1319, 1060320051u, 1059481190u, 1062373889u, 0, ATAN2_TOLERANCE, 0},
+{1320, 1060320051u, 1060320051u, 1061752795u, 0, ATAN2_TOLERANCE, 0},
+{1321, 1060320051u, 1061158912u, 1061174499u, 0, ATAN2_TOLERANCE, 0},
+{1322, 1060320051u, 1061997773u, 1060635966u, 0, ATAN2_TOLERANCE, 0},
+{1323, 1060320051u, 1062836634u, 1060134233u, 0, ATAN2_TOLERANCE, 0},
+{1324, 1060320051u, 1063675494u, 1059666464u, 0, ATAN2_TOLERANCE, 0},
+{1325, 1060320051u, 1064514355u, 1059229981u, 0, ATAN2_TOLERANCE, 0},
+{1326, 1061158912u, 3212836864u, 1075830971u, 0, ATAN2_TOLERANCE, 0},
+{1327, 1061158912u, 3211998003u, 1075727002u, 0, ATAN2_TOLERANCE, 0},
+{1328, 1061158912u, 3211159142u, 1075616067u, 0, ATAN2_TOLERANCE, 0},
+{1329, 1061158912u, 3210320282u, 1075497615u, 0, ATAN2_TOLERANCE, 0},
+{1330, 1061158912u, 3209481421u, 1075371065u, 0, ATAN2_TOLERANCE, 0},
+{1331, 1061158912u, 3208642560u, 1075235812u, 0, ATAN2_TOLERANCE, 0},
+{1332, 1061158912u, 3207803699u, 1075091238u, 0, ATAN2_TOLERANCE, 0},
+{1333, 1061158912u, 3206964838u, 1074936727u, 0, ATAN2_TOLERANCE, 0},
+{1334, 1061158912u, 3206125978u, 1074771682u, 0, ATAN2_TOLERANCE, 0},
+{1335, 1061158912u, 3205287117u, 1074595554u, 0, ATAN2_TOLERANCE, 0},
+{1336, 1061158912u, 3204448256u, 1074407875u, 0, ATAN2_TOLERANCE, 0},
+{1337, 1061158912u, 3202770534u, 1074208297u, 0, ATAN2_TOLERANCE, 0},
+{1338, 1061158912u, 3201092813u, 1073996643u, 0, ATAN2_TOLERANCE, 0},
+{1339, 1061158912u, 3199415091u, 1073772960u, 0, ATAN2_TOLERANCE, 0},
+{1340, 1061158912u, 3197737370u, 1073333321u, 0, ATAN2_TOLERANCE, 0},
+{1341, 1061158912u, 3196059648u, 1072840442u, 0, ATAN2_TOLERANCE, 0},
+{1342, 1061158912u, 3192704205u, 1072327494u, 0, ATAN2_TOLERANCE, 0},
+{1343, 1061158912u, 3189348762u, 1071797277u, 0, ATAN2_TOLERANCE, 0},
+{1344, 1061158912u, 3184315597u, 1071253325u, 0, ATAN2_TOLERANCE, 0},
+{1345, 1061158912u, 3175926989u, 1070699817u, 0, ATAN2_TOLERANCE, 0},
+{1346, 1061158912u, 1028443341u, 1069582988u, 0, ATAN2_TOLERANCE, 0},
+{1347, 1061158912u, 1036831949u, 1069029480u, 0, ATAN2_TOLERANCE, 0},
+{1348, 1061158912u, 1041865114u, 1068485529u, 0, ATAN2_TOLERANCE, 0},
+{1349, 1061158912u, 1045220557u, 1067955311u, 0, ATAN2_TOLERANCE, 0},
+{1350, 1061158912u, 1048576000u, 1067442363u, 0, ATAN2_TOLERANCE, 0},
+{1351, 1061158912u, 1050253722u, 1066949484u, 0, ATAN2_TOLERANCE, 0},
+{1352, 1061158912u, 1051931443u, 1066478709u, 0, ATAN2_TOLERANCE, 0},
+{1353, 1061158912u, 1053609165u, 1066031343u, 0, ATAN2_TOLERANCE, 0},
+{1354, 1061158912u, 1055286886u, 1065608035u, 0, ATAN2_TOLERANCE, 0},
+{1355, 1061158912u, 1056964608u, 1065064543u, 0, ATAN2_TOLERANCE, 0},
+{1356, 1061158912u, 1057803469u, 1064313825u, 0, ATAN2_TOLERANCE, 0},
+{1357, 1061158912u, 1058642330u, 1063609315u, 0, ATAN2_TOLERANCE, 0},
+{1358, 1061158912u, 1059481190u, 1062949135u, 0, ATAN2_TOLERANCE, 0},
+{1359, 1061158912u, 1060320051u, 1062331090u, 0, ATAN2_TOLERANCE, 0},
+{1360, 1061158912u, 1061158912u, 1061752795u, 0, ATAN2_TOLERANCE, 0},
+{1361, 1061158912u, 1061997773u, 1061211782u, 0, ATAN2_TOLERANCE, 0},
+{1362, 1061158912u, 1062836634u, 1060705581u, 0, ATAN2_TOLERANCE, 0},
+{1363, 1061158912u, 1063675494u, 1060231774u, 0, ATAN2_TOLERANCE, 0},
+{1364, 1061158912u, 1064514355u, 1059788036u, 0, ATAN2_TOLERANCE, 0},
+{1365, 1061997773u, 3212836864u, 1075699942u, 0, ATAN2_TOLERANCE, 0},
+{1366, 1061997773u, 3211998003u, 1075594447u, 0, ATAN2_TOLERANCE, 0},
+{1367, 1061997773u, 3211159142u, 1075482252u, 0, ATAN2_TOLERANCE, 0},
+{1368, 1061997773u, 3210320282u, 1075362873u, 0, ATAN2_TOLERANCE, 0},
+{1369, 1061997773u, 3209481421u, 1075235812u, 0, ATAN2_TOLERANCE, 0},
+{1370, 1061997773u, 3208642560u, 1075100559u, 0, ATAN2_TOLERANCE, 0},
+{1371, 1061997773u, 3207803699u, 1074956605u, 0, ATAN2_TOLERANCE, 0},
+{1372, 1061997773u, 3206964838u, 1074803456u, 0, ATAN2_TOLERANCE, 0},
+{1373, 1061997773u, 3206125978u, 1074640653u, 0, ATAN2_TOLERANCE, 0},
+{1374, 1061997773u, 3205287117u, 1074467790u, 0, ATAN2_TOLERANCE, 0},
+{1375, 1061997773u, 3204448256u, 1074284549u, 0, ATAN2_TOLERANCE, 0},
+{1376, 1061997773u, 3202770534u, 1074090730u, 0, ATAN2_TOLERANCE, 0},
+{1377, 1061997773u, 3201092813u, 1073886292u, 0, ATAN2_TOLERANCE, 0},
+{1378, 1061997773u, 3199415091u, 1073600952u, 0, ATAN2_TOLERANCE, 0},
+{1379, 1061997773u, 3197737370u, 1073150989u, 0, ATAN2_TOLERANCE, 0},
+{1380, 1061997773u, 3196059648u, 1072682185u, 0, ATAN2_TOLERANCE, 0},
+{1381, 1061997773u, 3192704205u, 1072196433u, 0, ATAN2_TOLERANCE, 0},
+{1382, 1061997773u, 3189348762u, 1071696214u, 0, ATAN2_TOLERANCE, 0},
+{1383, 1061997773u, 3184315597u, 1071184568u, 0, ATAN2_TOLERANCE, 0},
+{1384, 1061997773u, 3175926989u, 1070665010u, 0, ATAN2_TOLERANCE, 0},
+{1385, 1061997773u, 1028443341u, 1069617796u, 0, ATAN2_TOLERANCE, 0},
+{1386, 1061997773u, 1036831949u, 1069098237u, 0, ATAN2_TOLERANCE, 0},
+{1387, 1061997773u, 1041865114u, 1068586591u, 0, ATAN2_TOLERANCE, 0},
+{1388, 1061997773u, 1045220557u, 1068086373u, 0, ATAN2_TOLERANCE, 0},
+{1389, 1061997773u, 1048576000u, 1067600620u, 0, ATAN2_TOLERANCE, 0},
+{1390, 1061997773u, 1050253722u, 1067131816u, 0, ATAN2_TOLERANCE, 0},
+{1391, 1061997773u, 1051931443u, 1066681853u, 0, ATAN2_TOLERANCE, 0},
+{1392, 1061997773u, 1053609165u, 1066252045u, 0, ATAN2_TOLERANCE, 0},
+{1393, 1061997773u, 1055286886u, 1065843168u, 0, ATAN2_TOLERANCE, 0},
+{1394, 1061997773u, 1056964608u, 1065455532u, 0, ATAN2_TOLERANCE, 0},
+{1395, 1061997773u, 1057803469u, 1064824884u, 0, ATAN2_TOLERANCE, 0},
+{1396, 1061997773u, 1058642330u, 1064133432u, 0, ATAN2_TOLERANCE, 0},
+{1397, 1061997773u, 1059481190u, 1063482217u, 0, ATAN2_TOLERANCE, 0},
+{1398, 1061997773u, 1060320051u, 1062869623u, 0, ATAN2_TOLERANCE, 0},
+{1399, 1061997773u, 1061158912u, 1062293808u, 0, ATAN2_TOLERANCE, 0},
+{1400, 1061997773u, 1061997773u, 1061752795u, 0, ATAN2_TOLERANCE, 0},
+{1401, 1061997773u, 1062836634u, 1061244550u, 0, ATAN2_TOLERANCE, 0},
+{1402, 1061997773u, 1063675494u, 1060767036u, 0, ATAN2_TOLERANCE, 0},
+{1403, 1061997773u, 1064514355u, 1060318254u, 0, ATAN2_TOLERANCE, 0},
+{1404, 1062836634u, 3212836864u, 1075575148u, 0, ATAN2_TOLERANCE, 0},
+{1405, 1062836634u, 3211998003u, 1075468590u, 0, ATAN2_TOLERANCE, 0},
+{1406, 1062836634u, 3211159142u, 1075355617u, 0, ATAN2_TOLERANCE, 0},
+{1407, 1062836634u, 3210320282u, 1075235812u, 0, ATAN2_TOLERANCE, 0},
+{1408, 1062836634u, 3209481421u, 1075108751u, 0, ATAN2_TOLERANCE, 0},
+{1409, 1062836634u, 3208642560u, 1074974009u, 0, ATAN2_TOLERANCE, 0},
+{1410, 1062836634u, 3207803699u, 1074831172u, 0, ATAN2_TOLERANCE, 0},
+{1411, 1062836634u, 3206964838u, 1074679851u, 0, ATAN2_TOLERANCE, 0},
+{1412, 1062836634u, 3206125978u, 1074519697u, 0, ATAN2_TOLERANCE, 0},
+{1413, 1062836634u, 3205287117u, 1074350422u, 0, ATAN2_TOLERANCE, 0},
+{1414, 1062836634u, 3204448256u, 1074171826u, 0, ATAN2_TOLERANCE, 0},
+{1415, 1062836634u, 3202770534u, 1073983817u, 0, ATAN2_TOLERANCE, 0},
+{1416, 1062836634u, 3201092813u, 1073786447u, 0, ATAN2_TOLERANCE, 0},
+{1417, 1062836634u, 3199415091u, 1073418052u, 0, ATAN2_TOLERANCE, 0},
+{1418, 1062836634u, 3197737370u, 1072987595u, 0, ATAN2_TOLERANCE, 0},
+{1419, 1062836634u, 3196059648u, 1072540976u, 0, ATAN2_TOLERANCE, 0},
+{1420, 1062836634u, 3192704205u, 1072079932u, 0, ATAN2_TOLERANCE, 0},
+{1421, 1062836634u, 3189348762u, 1071606659u, 0, ATAN2_TOLERANCE, 0},
+{1422, 1062836634u, 3184315597u, 1071123782u, 0, ATAN2_TOLERANCE, 0},
+{1423, 1062836634u, 3175926989u, 1070634282u, 0, ATAN2_TOLERANCE, 0},
+{1424, 1062836634u, 1028443341u, 1069648523u, 0, ATAN2_TOLERANCE, 0},
+{1425, 1062836634u, 1036831949u, 1069159023u, 0, ATAN2_TOLERANCE, 0},
+{1426, 1062836634u, 1041865114u, 1068676146u, 0, ATAN2_TOLERANCE, 0},
+{1427, 1062836634u, 1045220557u, 1068202874u, 0, ATAN2_TOLERANCE, 0},
+{1428, 1062836634u, 1048576000u, 1067741829u, 0, ATAN2_TOLERANCE, 0},
+{1429, 1062836634u, 1050253722u, 1067295210u, 0, ATAN2_TOLERANCE, 0},
+{1430, 1062836634u, 1051931443u, 1066864753u, 0, ATAN2_TOLERANCE, 0},
+{1431, 1062836634u, 1053609165u, 1066451736u, 0, ATAN2_TOLERANCE, 0},
+{1432, 1062836634u, 1055286886u, 1066056996u, 0, ATAN2_TOLERANCE, 0},
+{1433, 1062836634u, 1056964608u, 1065680978u, 0, ATAN2_TOLERANCE, 0},
+{1434, 1062836634u, 1057803469u, 1065294353u, 0, ATAN2_TOLERANCE, 0},
+{1435, 1062836634u, 1058642330u, 1064617256u, 0, ATAN2_TOLERANCE, 0},
+{1436, 1062836634u, 1059481190u, 1063976640u, 0, ATAN2_TOLERANCE, 0},
+{1437, 1062836634u, 1060320051u, 1063371356u, 0, ATAN2_TOLERANCE, 0},
+{1438, 1062836634u, 1061158912u, 1062800008u, 0, ATAN2_TOLERANCE, 0},
+{1439, 1062836634u, 1061997773u, 1062261040u, 0, ATAN2_TOLERANCE, 0},
+{1440, 1062836634u, 1062836634u, 1061752795u, 0, ATAN2_TOLERANCE, 0},
+{1441, 1062836634u, 1063675494u, 1061273576u, 0, ATAN2_TOLERANCE, 0},
+{1442, 1062836634u, 1064514355u, 1060821684u, 0, ATAN2_TOLERANCE, 0},
+{1443, 1063675494u, 3212836864u, 1075456361u, 0, ATAN2_TOLERANCE, 0},
+{1444, 1063675494u, 3211998003u, 1075349144u, 0, ATAN2_TOLERANCE, 0},
+{1445, 1063675494u, 3211159142u, 1075235812u, 0, ATAN2_TOLERANCE, 0},
+{1446, 1063675494u, 3210320282u, 1075116007u, 0, ATAN2_TOLERANCE, 0},
+{1447, 1063675494u, 3209481421u, 1074989372u, 0, ATAN2_TOLERANCE, 0},
+{1448, 1063675494u, 3208642560u, 1074855557u, 0, ATAN2_TOLERANCE, 0},
+{1449, 1063675494u, 3207803699u, 1074714229u, 0, ATAN2_TOLERANCE, 0},
+{1450, 1063675494u, 3206964838u, 1074565088u, 0, ATAN2_TOLERANCE, 0},
+{1451, 1063675494u, 3206125978u, 1074407875u, 0, ATAN2_TOLERANCE, 0},
+{1452, 1063675494u, 3205287117u, 1074242396u, 0, ATAN2_TOLERANCE, 0},
+{1453, 1063675494u, 3204448256u, 1074068539u, 0, ATAN2_TOLERANCE, 0},
+{1454, 1063675494u, 3202770534u, 1073886292u, 0, ATAN2_TOLERANCE, 0},
+{1455, 1063675494u, 3201092813u, 1073649723u, 0, ATAN2_TOLERANCE, 0},
+{1456, 1063675494u, 3199415091u, 1073252664u, 0, ATAN2_TOLERANCE, 0},
+{1457, 1063675494u, 3197737370u, 1072840442u, 0, ATAN2_TOLERANCE, 0},
+{1458, 1063675494u, 3196059648u, 1072414270u, 0, ATAN2_TOLERANCE, 0},
+{1459, 1063675494u, 3192704205u, 1071975731u, 0, ATAN2_TOLERANCE, 0},
+{1460, 1063675494u, 3189348762u, 1071526770u, 0, ATAN2_TOLERANCE, 0},
+{1461, 1063675494u, 3184315597u, 1071069663u, 0, ATAN2_TOLERANCE, 0},
+{1462, 1063675494u, 3175926989u, 1070606958u, 0, ATAN2_TOLERANCE, 0},
+{1463, 1063675494u, 1028443341u, 1069675847u, 0, ATAN2_TOLERANCE, 0},
+{1464, 1063675494u, 1036831949u, 1069213143u, 0, ATAN2_TOLERANCE, 0},
+{1465, 1063675494u, 1041865114u, 1068756035u, 0, ATAN2_TOLERANCE, 0},
+{1466, 1063675494u, 1045220557u, 1068307075u, 0, ATAN2_TOLERANCE, 0},
+{1467, 1063675494u, 1048576000u, 1067868536u, 0, ATAN2_TOLERANCE, 0},
+{1468, 1063675494u, 1050253722u, 1067442363u, 0, ATAN2_TOLERANCE, 0},
+{1469, 1063675494u, 1051931443u, 1067030141u, 0, ATAN2_TOLERANCE, 0},
+{1470, 1063675494u, 1053609165u, 1066633083u, 0, ATAN2_TOLERANCE, 0},
+{1471, 1063675494u, 1055286886u, 1066252045u, 0, ATAN2_TOLERANCE, 0},
+{1472, 1063675494u, 1056964608u, 1065887552u, 0, ATAN2_TOLERANCE, 0},
+{1473, 1063675494u, 1057803469u, 1065539837u, 0, ATAN2_TOLERANCE, 0},
+{1474, 1063675494u, 1058642330u, 1065064543u, 0, ATAN2_TOLERANCE, 0},
+{1475, 1063675494u, 1059481190u, 1064435692u, 0, ATAN2_TOLERANCE, 0},
+{1476, 1063675494u, 1060320051u, 1063839125u, 0, ATAN2_TOLERANCE, 0},
+{1477, 1063675494u, 1061158912u, 1063273815u, 0, ATAN2_TOLERANCE, 0},
+{1478, 1063675494u, 1061997773u, 1062738554u, 0, ATAN2_TOLERANCE, 0},
+{1479, 1063675494u, 1062836634u, 1062232013u, 0, ATAN2_TOLERANCE, 0},
+{1480, 1063675494u, 1063675494u, 1061752795u, 0, ATAN2_TOLERANCE, 0},
+{1481, 1063675494u, 1064514355u, 1061299467u, 0, ATAN2_TOLERANCE, 0},
+{1482, 1064514355u, 3212836864u, 1075343335u, 0, ATAN2_TOLERANCE, 0},
+{1483, 1064514355u, 3211998003u, 1075235812u, 0, ATAN2_TOLERANCE, 0},
+{1484, 1064514355u, 3211159142u, 1075122480u, 0, ATAN2_TOLERANCE, 0},
+{1485, 1064514355u, 3210320282u, 1075003034u, 0, ATAN2_TOLERANCE, 0},
+{1486, 1064514355u, 3209481421u, 1074877177u, 0, ATAN2_TOLERANCE, 0},
+{1487, 1064514355u, 3208642560u, 1074744622u, 0, ATAN2_TOLERANCE, 0},
+{1488, 1064514355u, 3207803699u, 1074605108u, 0, ATAN2_TOLERANCE, 0},
+{1489, 1064514355u, 3206964838u, 1074458406u, 0, ATAN2_TOLERANCE, 0},
+{1490, 1064514355u, 3206125978u, 1074304333u, 0, ATAN2_TOLERANCE, 0},
+{1491, 1064514355u, 3205287117u, 1074142766u, 0, ATAN2_TOLERANCE, 0},
+{1492, 1064514355u, 3204448256u, 1073973661u, 0, ATAN2_TOLERANCE, 0},
+{1493, 1064514355u, 3202770534u, 1073797065u, 0, ATAN2_TOLERANCE, 0},
+{1494, 1064514355u, 3201092813u, 1073484451u, 0, ATAN2_TOLERANCE, 0},
+{1495, 1064514355u, 3199415091u, 1073102501u, 0, ATAN2_TOLERANCE, 0},
+{1496, 1064514355u, 3197737370u, 1072707301u, 0, ATAN2_TOLERANCE, 0},
+{1497, 1064514355u, 3196059648u, 1072299990u, 0, ATAN2_TOLERANCE, 0},
+{1498, 1064514355u, 3192704205u, 1071882007u, 0, ATAN2_TOLERANCE, 0},
+{1499, 1064514355u, 3189348762u, 1071455074u, 0, ATAN2_TOLERANCE, 0},
+{1500, 1064514355u, 3184315597u, 1071021174u, 0, ATAN2_TOLERANCE, 0},
+{1501, 1064514355u, 3175926989u, 1070582501u, 0, ATAN2_TOLERANCE, 0},
+{1502, 1064514355u, 1028443341u, 1069700304u, 0, ATAN2_TOLERANCE, 0},
+{1503, 1064514355u, 1036831949u, 1069261631u, 0, ATAN2_TOLERANCE, 0},
+{1504, 1064514355u, 1041865114u, 1068827731u, 0, ATAN2_TOLERANCE, 0},
+{1505, 1064514355u, 1045220557u, 1068400798u, 0, ATAN2_TOLERANCE, 0},
+{1506, 1064514355u, 1048576000u, 1067982815u, 0, ATAN2_TOLERANCE, 0},
+{1507, 1064514355u, 1050253722u, 1067575505u, 0, ATAN2_TOLERANCE, 0},
+{1508, 1064514355u, 1051931443u, 1067180305u, 0, ATAN2_TOLERANCE, 0},
+{1509, 1064514355u, 1053609165u, 1066798354u, 0, ATAN2_TOLERANCE, 0},
+{1510, 1064514355u, 1055286886u, 1066430499u, 0, ATAN2_TOLERANCE, 0},
+{1511, 1064514355u, 1056964608u, 1066077307u, 0, ATAN2_TOLERANCE, 0},
+{1512, 1064514355u, 1057803469u, 1065739097u, 0, ATAN2_TOLERANCE, 0},
+{1513, 1064514355u, 1058642330u, 1065415963u, 0, ATAN2_TOLERANCE, 0},
+{1514, 1064514355u, 1059481190u, 1064862417u, 0, ATAN2_TOLERANCE, 0},
+{1515, 1064514355u, 1060320051u, 1064275609u, 0, ATAN2_TOLERANCE, 0},
+{1516, 1064514355u, 1061158912u, 1063717553u, 0, ATAN2_TOLERANCE, 0},
+{1517, 1064514355u, 1061997773u, 1063187335u, 0, ATAN2_TOLERANCE, 0},
+{1518, 1064514355u, 1062836634u, 1062683905u, 0, ATAN2_TOLERANCE, 0},
+{1519, 1064514355u, 1063675494u, 1062206123u, 0, ATAN2_TOLERANCE, 0},
+{1520, 1064514355u, 1064514355u, 1061752795u, 0, ATAN2_TOLERANCE, 0},
+{1521, 1107800421u, 1203999711u, 967941446u, 0, ATAN2_TOLERANCE, 0},
+{1522, 3196650934u, 896005582u, 3217625024u, 0, ATAN2_TOLERANCE, 0},
+{1523, 3368700125u, 3308232444u, 3217681947u, 0, ATAN2_TOLERANCE, 0},
+{1524, 1224242132u, 3061363425u, 1070141403u, 0, ATAN2_TOLERANCE, 0},
+{1525, 1198712763u, 919636942u, 1070141403u, 0, ATAN2_TOLERANCE, 0},
+{1526, 3090780435u, 1035260608u, 3120782230u, 0, ATAN2_TOLERANCE, 0},
+{1527, 966554515u, 3234538174u, 1078529813u, 0, ATAN2_TOLERANCE, 0},
+{1528, 1312607135u, 1194999402u, 1070140898u, 0, ATAN2_TOLERANCE, 0},
+{1529, 1166191415u, 1018661564u, 1070141358u, 0, ATAN2_TOLERANCE, 0},
+{1530, 3111900019u, 1130472166u, 3046038371u, 0, ATAN2_TOLERANCE, 0},
+{1531, 1302107128u, 3370647675u, 1070153541u, 0, ATAN2_TOLERANCE, 0},
+{1532, 1052801068u, 3039122570u, 1070141416u, 0, ATAN2_TOLERANCE, 0},
+{1533, 1060849628u, 3081357692u, 1070141635u, 0, ATAN2_TOLERANCE, 0},
+{1534, 3484320003u, 3033957825u, 3217625051u, 0, ATAN2_TOLERANCE, 0},
+{1535, 3181522772u, 3305392896u, 3226013502u, 0, ATAN2_TOLERANCE, 0},
+{1536, 968192794u, 878547432u, 1070136401u, 0, ATAN2_TOLERANCE, 0},
+{1537, 3122346862u, 1111584337u, 3075305969u, 0, ATAN2_TOLERANCE, 0},
+{1538, 3471653172u, 1154138102u, 3217625044u, 0, ATAN2_TOLERANCE, 0},
+{1539, 3231467496u, 934336592u, 3217625014u, 0, ATAN2_TOLERANCE, 0},
+{1540, 1341514497u, 3466051188u, 1071425492u, 0, ATAN2_TOLERANCE, 0},
+{1541, 1272351391u, 3373485062u, 1070321354u, 0, ATAN2_TOLERANCE, 0},
+{1542, 3319724992u, 3354615790u, 3225773741u, 0, ATAN2_TOLERANCE, 0},
+{1543, 940236348u, 3304072663u, 1078530011u, 0, ATAN2_TOLERANCE, 0},
+{1544, 3251541546u, 3174764041u, 3217639886u, 0, ATAN2_TOLERANCE, 0},
+{1545, 3099843889u, 3355962282u, 3226013659u, 0, ATAN2_TOLERANCE, 0},
+{1546, 3371863479u, 1014861921u, 3217625050u, 0, ATAN2_TOLERANCE, 0},
+{1547, 3204069187u, 966573255u, 3217619919u, 0, ATAN2_TOLERANCE, 0},
+{1548, 1306460502u, 903489435u, 1070141403u, 0, ATAN2_TOLERANCE, 0},
+{1549, 1197542187u, 3024598921u, 1070141403u, 0, ATAN2_TOLERANCE, 0},
+{1550, 1184239996u, 3224098462u, 1070142575u, 0, ATAN2_TOLERANCE, 0},
+{1551, 1252490238u, 1173619825u, 1070129467u, 0, ATAN2_TOLERANCE, 0},
+{1552, 1001673627u, 3462631271u, 1078530011u, 0, ATAN2_TOLERANCE, 0},
+{1553, 976098044u, 1151967422u, 889412329u, 0, ATAN2_TOLERANCE, 0},
+{1554, 941796645u, 886451963u, 1070055119u, 0, ATAN2_TOLERANCE, 0},
+{1555, 1143233714u, 1007268238u, 1070141295u, 0, ATAN2_TOLERANCE, 0},
+{1556, 1139941253u, 1147688821u, 1056305106u, 0, ATAN2_TOLERANCE, 0},
+{1557, 3143717025u, 3234638157u, 3226011404u, 0, ATAN2_TOLERANCE, 0},
+{1558, 3048866608u, 3449209899u, 3226013659u, 0, ATAN2_TOLERANCE, 0},
+{1559, 3240298487u, 1020260821u, 3217604153u, 0, ATAN2_TOLERANCE, 0},
+{1560, 1288902137u, 3123875978u, 1070141403u, 0, ATAN2_TOLERANCE, 0},
+{1561, 1333134799u, 1338107877u, 1058060514u, 0, ATAN2_TOLERANCE, 0},
+{1562, 1187847971u, 1317663644u, 935219985u, 0, ATAN2_TOLERANCE, 0},
+{1563, 3329354473u, 3165437289u, 3217625062u, 0, ATAN2_TOLERANCE, 0},
+{1564, 1309289088u, 1019883016u, 1070141403u, 0, ATAN2_TOLERANCE, 0},
+{1565, 3444653659u, 1279248024u, 3215735586u, 0, ATAN2_TOLERANCE, 0},
+{1566, 1106778573u, 3304487767u, 1078464050u, 0, ATAN2_TOLERANCE, 0},
+{1567, 1140567947u, 3069174149u, 1070141403u, 0, ATAN2_TOLERANCE, 0},
+{1568, 1238569473u, 873035665u, 1070141403u, 0, ATAN2_TOLERANCE, 0},
+{1569, 1261071232u, 1182202773u, 1070129530u, 0, ATAN2_TOLERANCE, 0},
+{1570, 1175011025u, 3029705783u, 1070141403u, 0, ATAN2_TOLERANCE, 0},
+{1571, 1082692850u, 1211581107u, 935250732u, 0, ATAN2_TOLERANCE, 0},
+{1572, 974547519u, 3475164509u, 1078530011u, 0, ATAN2_TOLERANCE, 0},
+{1573, 3058097085u, 3104309359u, 3225917850u, 0, ATAN2_TOLERANCE, 0},
+{1574, 3107252546u, 1071134451u, 3101045579u, 0, ATAN2_TOLERANCE, 0},
+{1575, 3197942144u, 3094120030u, 3217626596u, 0, ATAN2_TOLERANCE, 0},
+{1576, 3403348556u, 3184653669u, 3217625051u, 0, ATAN2_TOLERANCE, 0},
+{1577, 3182301130u, 3460764044u, 3226013659u, 0, ATAN2_TOLERANCE, 0},
+{1578, 1136411063u, 1118097422u, 1068333915u, 0, ATAN2_TOLERANCE, 0},
+{1579, 3239231622u, 3302723069u, 3225991756u, 0, ATAN2_TOLERANCE, 0},
+{1580, 3417964312u, 1321337529u, 3161810981u, 0, ATAN2_TOLERANCE, 0},
+{1581, 3109481038u, 1143864063u, 3030261193u, 0, ATAN2_TOLERANCE, 0},
+{1582, 1148867223u, 1256486202u, 957104149u, 0, ATAN2_TOLERANCE, 0},
+{1583, 989687421u, 3372681320u, 1078530011u, 0, ATAN2_TOLERANCE, 0},
+{1584, 1152956913u, 3166480640u, 1070141533u, 0, ATAN2_TOLERANCE, 0},
+{1585, 892922651u, 3373029087u, 1078530011u, 0, ATAN2_TOLERANCE, 0},
+{1586, 1307091856u, 1103202538u, 1070141402u, 0, ATAN2_TOLERANCE, 0},
+{1587, 1077234132u, 3272167130u, 1078443495u, 0, ATAN2_TOLERANCE, 0},
+{1588, 1142167709u, 1096445242u, 1069948119u, 0, ATAN2_TOLERANCE, 0},
+{1589, 3426232834u, 1036705270u, 3217625051u, 0, ATAN2_TOLERANCE, 0},
+{1590, 3368566779u, 967249167u, 3217625051u, 0, ATAN2_TOLERANCE, 0},
+{1591, 3030724760u, 3349013503u, 3226013659u, 0, ATAN2_TOLERANCE, 0},
+{1592, 1138741813u, 3073453199u, 1070141403u, 0, ATAN2_TOLERANCE, 0},
+{1593, 982950501u, 982549888u, 1062100212u, 0, ATAN2_TOLERANCE, 0},
+{1594, 1142981585u, 1015602236u, 1070141184u, 0, ATAN2_TOLERANCE, 0},
+{1595, 3347165962u, 3135486696u, 3217625051u, 0, ATAN2_TOLERANCE, 0},
+{1596, 1009535440u, 3381353228u, 1078530011u, 0, ATAN2_TOLERANCE, 0},
+{1597, 3103736980u, 3402950505u, 3226013659u, 0, ATAN2_TOLERANCE, 0},
+{1598, 3126820946u, 1077903063u, 3113575606u, 0, ATAN2_TOLERANCE, 0},
+{1599, 3473956030u, 976891930u, 3217625051u, 0, ATAN2_TOLERANCE, 0},
+{1600, 3349098349u, 1055327704u, 3217625004u, 0, ATAN2_TOLERANCE, 0},
+{1601, 3152729489u, 1060398533u, 3156647575u, 0, ATAN2_TOLERANCE, 0},
+{1602, 945568720u, 3313485084u, 1078530011u, 0, ATAN2_TOLERANCE, 0},
+{1603, 3345489836u, 1108392401u, 3217619943u, 0, ATAN2_TOLERANCE, 0},
+{1604, 976791751u, 3230678102u, 1078529355u, 0, ATAN2_TOLERANCE, 0},
+{1605, 1004442355u, 3036510596u, 1070141986u, 0, ATAN2_TOLERANCE, 0},
+{1606, 1108485380u, 3173536878u, 1070150838u, 0, ATAN2_TOLERANCE, 0},
+{1607, 1061834641u, 972388096u, 1070136433u, 0, ATAN2_TOLERANCE, 0},
+{1608, 3381268392u, 1146976802u, 3217618480u, 0, ATAN2_TOLERANCE, 0},
+{1609, 3212952285u, 3329407365u, 3226013385u, 0, ATAN2_TOLERANCE, 0},
+{1610, 3466188568u, 1041678304u, 3217625051u, 0, ATAN2_TOLERANCE, 0},
+{1611, 3072456205u, 3160254633u, 3226010666u, 0, ATAN2_TOLERANCE, 0},
+{1612, 3319315516u, 3422089012u, 3226012767u, 0, ATAN2_TOLERANCE, 0},
+{1613, 3212614372u, 1152633030u, 3123959940u, 0, ATAN2_TOLERANCE, 0},
+{1614, 1315030230u, 3336225884u, 1070141651u, 0, ATAN2_TOLERANCE, 0},
+{1615, 1134593658u, 3456812581u, 1078530008u, 0, ATAN2_TOLERANCE, 0},
+{1616, 977281449u, 879922831u, 1070138817u, 0, ATAN2_TOLERANCE, 0},
+{1617, 1086198791u, 920125958u, 1070141394u, 0, ATAN2_TOLERANCE, 0},
+{1618, 1135271264u, 3284878412u, 1075598160u, 0, ATAN2_TOLERANCE, 0},
+{1619, 1094190727u, 1056854532u, 1069779349u, 0, ATAN2_TOLERANCE, 0},
+{1620, 1294665325u, 991185677u, 1070141403u, 0, ATAN2_TOLERANCE, 0},
+{1621, 3439134022u, 1043829691u, 3217625051u, 0, ATAN2_TOLERANCE, 0},
+{1622, 1325668223u, 970681762u, 1070141403u, 0, ATAN2_TOLERANCE, 0},
+{1623, 1092037607u, 1027330835u, 1070100690u, 0, ATAN2_TOLERANCE, 0},
+{1624, 3316278408u, 3455589207u, 3226013615u, 0, ATAN2_TOLERANCE, 0},
+{1625, 3295436768u, 3129873731u, 3217625060u, 0, ATAN2_TOLERANCE, 0},
+{1626, 1151984049u, 3074547120u, 1070141403u, 0, ATAN2_TOLERANCE, 0},
+{1627, 1129287043u, 3076527544u, 1070141403u, 0, ATAN2_TOLERANCE, 0},
+{1628, 1243664530u, 972879810u, 1070141403u, 0, ATAN2_TOLERANCE, 0},
+{1629, 950829092u, 929114193u, 1068784696u, 0, ATAN2_TOLERANCE, 0},
+{1630, 1115471979u, 3047246262u, 1070141403u, 0, ATAN2_TOLERANCE, 0},
+{1631, 3351092088u, 3024661404u, 3217625051u, 0, ATAN2_TOLERANCE, 0},
+{1632, 3424479544u, 3312047722u, 3217625811u, 0, ATAN2_TOLERANCE, 0},
+{1633, 3241193975u, 884465785u, 3217625050u, 0, ATAN2_TOLERANCE, 0},
+{1634, 1030934236u, 1045139240u, 1049911720u, 0, ATAN2_TOLERANCE, 0},
+{1635, 3131791114u, 3408392958u, 3226013659u, 0, ATAN2_TOLERANCE, 0},
+{1636, 1025254314u, 3057812821u, 1070142040u, 0, ATAN2_TOLERANCE, 0},
+{1637, 1110545760u, 3240144177u, 1072007490u, 0, ATAN2_TOLERANCE, 0},
+{1638, 3180213739u, 1108793820u, 3136378415u, 0, ATAN2_TOLERANCE, 0},
+{1639, 3361976590u, 3138179993u, 3217625051u, 0, ATAN2_TOLERANCE, 0},
+{1640, 881280146u, 3421884736u, 1078530011u, 0, ATAN2_TOLERANCE, 0},
+{1641, 3264443610u, 3222916705u, 3217898386u, 0, ATAN2_TOLERANCE, 0},
+{1642, 3374550627u, 3055856293u, 3217625051u, 0, ATAN2_TOLERANCE, 0},
+{1643, 899599265u, 3240118211u, 1078530010u, 0, ATAN2_TOLERANCE, 0},
+{1644, 1268194719u, 1332489410u, 1000590502u, 0, ATAN2_TOLERANCE, 0},
+{1645, 1133420220u, 1245770860u, 951924760u, 0, ATAN2_TOLERANCE, 0},
+{1646, 3295996963u, 3453334307u, 3226013649u, 0, ATAN2_TOLERANCE, 0},
+{1647, 1270887389u, 1156123987u, 1070140782u, 0, ATAN2_TOLERANCE, 0},
+{1648, 3325193181u, 993979179u, 3217625048u, 0, ATAN2_TOLERANCE, 0},
+{1649, 3116607482u, 3224327456u, 3226013087u, 0, ATAN2_TOLERANCE, 0},
+{1650, 3187892415u, 3118097315u, 3217652286u, 0, ATAN2_TOLERANCE, 0},
+{1651, 1189120494u, 978961471u, 1070141402u, 0, ATAN2_TOLERANCE, 0},
+{1652, 889030794u, 3129523970u, 1078528112u, 0, ATAN2_TOLERANCE, 0},
+{1653, 1323529208u, 3100744786u, 1070141403u, 0, ATAN2_TOLERANCE, 0},
+{1654, 3465768388u, 3190881451u, 3217625051u, 0, ATAN2_TOLERANCE, 0},
+{1655, 3426099899u, 1118756120u, 3217625035u, 0, ATAN2_TOLERANCE, 0},
+{1656, 3224857113u, 3398166843u, 3226013656u, 0, ATAN2_TOLERANCE, 0},
+{1657, 3357819026u, 3148475462u, 3217625051u, 0, ATAN2_TOLERANCE, 0},
+{1658, 1273397670u, 901308750u, 1070141403u, 0, ATAN2_TOLERANCE, 0},
+{1659, 3424831780u, 1304806106u, 3184655445u, 0, ATAN2_TOLERANCE, 0},
+{1660, 1257596246u, 3420832544u, 1077435618u, 0, ATAN2_TOLERANCE, 0},
+{1661, 1051773536u, 896271348u, 1070141381u, 0, ATAN2_TOLERANCE, 0},
+{1662, 3294752507u, 3113225954u, 3217625053u, 0, ATAN2_TOLERANCE, 0},
+{1663, 1090870906u, 3294742905u, 1078491301u, 0, ATAN2_TOLERANCE, 0},
+{1664, 1227582289u, 1208979668u, 1068410023u, 0, ATAN2_TOLERANCE, 0},
+{1665, 1137854355u, 3335041917u, 1078461353u, 0, ATAN2_TOLERANCE, 0},
+{1666, 3440773058u, 3204192793u, 3217625051u, 0, ATAN2_TOLERANCE, 0},
+{1667, 3101598400u, 3057760708u, 3217853098u, 0, ATAN2_TOLERANCE, 0},
+{1668, 3451216836u, 3347783723u, 3217626621u, 0, ATAN2_TOLERANCE, 0},
+{1669, 3437062994u, 3106834845u, 3217625051u, 0, ATAN2_TOLERANCE, 0},
+{1670, 1131196082u, 1164573183u, 1031884516u, 0, ATAN2_TOLERANCE, 0},
+{1671, 3460915348u, 1219372260u, 3217621509u, 0, ATAN2_TOLERANCE, 0},
+{1672, 3303035472u, 3153013020u, 3217625085u, 0, ATAN2_TOLERANCE, 0},
+{1673, 1053698677u, 3284313107u, 1078525672u, 0, ATAN2_TOLERANCE, 0},
+{1674, 3396166221u, 1201894512u, 3217444575u, 0, ATAN2_TOLERANCE, 0},
+{1675, 3458934263u, 1005577835u, 3217625051u, 0, ATAN2_TOLERANCE, 0},
+{1676, 1065761827u, 3333928591u, 1078529824u, 0, ATAN2_TOLERANCE, 0},
+{1677, 926665223u, 3150815797u, 1078522530u, 0, ATAN2_TOLERANCE, 0},
+{1678, 1199816046u, 3143776186u, 1070141403u, 0, ATAN2_TOLERANCE, 0},
+{1679, 3333779015u, 952421041u, 3217625051u, 0, ATAN2_TOLERANCE, 0},
+{1680, 948398145u, 3238273189u, 1078529978u, 0, ATAN2_TOLERANCE, 0},
+{1681, 1080781593u, 1213908300u, 931773831u, 0, ATAN2_TOLERANCE, 0},
+{1682, 3235326590u, 1271705594u, 3028716927u, 0, ATAN2_TOLERANCE, 0},
+{1683, 3118883815u, 1051802647u, 3131466655u, 0, ATAN2_TOLERANCE, 0},
+{1684, 3226990408u, 1110755136u, 3180896673u, 0, ATAN2_TOLERANCE, 0},
+{1685, 3117098218u, 1122474770u, 3059780203u, 0, ATAN2_TOLERANCE, 0},
+{1686, 1283624229u, 906796922u, 1070141403u, 0, ATAN2_TOLERANCE, 0},
+{1687, 970649315u, 1078286437u, 957218953u, 0, ATAN2_TOLERANCE, 0},
+{1688, 959776291u, 3280345347u, 1078530008u, 0, ATAN2_TOLERANCE, 0},
+{1689, 3341117305u, 3294559023u, 3217801722u, 0, ATAN2_TOLERANCE, 0},
+{1690, 1270734970u, 3355874874u, 1070187855u, 0, ATAN2_TOLERANCE, 0},
+{1691, 1106502045u, 1290849316u, 880911273u, 0, ATAN2_TOLERANCE, 0},
+{1692, 1157598381u, 3309023746u, 1076023102u, 0, ATAN2_TOLERANCE, 0},
+{1693, 3335234513u, 1002337336u, 3217625049u, 0, ATAN2_TOLERANCE, 0},
+{1694, 1279489061u, 1006049444u, 1070141403u, 0, ATAN2_TOLERANCE, 0},
+{1695, 3143920719u, 3131608518u, 3220590061u, 0, ATAN2_TOLERANCE, 0},
+{1696, 1148920078u, 1007674793u, 1070141329u, 0, ATAN2_TOLERANCE, 0},
+{1697, 3064988156u, 3230867340u, 3226013654u, 0, ATAN2_TOLERANCE, 0},
+{1698, 1109198803u, 1221754614u, 952039946u, 0, ATAN2_TOLERANCE, 0},
+{1699, 3219949483u, 1056167693u, 3215509131u, 0, ATAN2_TOLERANCE, 0},
+{1700, 3361149474u, 3387342069u, 3225527164u, 0, ATAN2_TOLERANCE, 0},
+{1701, 1207502108u, 3388073586u, 1078260522u, 0, ATAN2_TOLERANCE, 0},
+{1702, 3161756316u, 3143659754u, 3219516841u, 0, ATAN2_TOLERANCE, 0},
+{1703, 3160728744u, 3382954009u, 3226013659u, 0, ATAN2_TOLERANCE, 0},
+{1704, 1234530539u, 1079988872u, 1070141379u, 0, ATAN2_TOLERANCE, 0},
+{1705, 1017843965u, 1193076204u, 889949957u, 0, ATAN2_TOLERANCE, 0},
+{1706, 3306328852u, 1118701064u, 3217313958u, 0, ATAN2_TOLERANCE, 0},
+{1707, 1291910469u, 1211303367u, 1070130033u, 0, ATAN2_TOLERANCE, 0},
+{1708, 1131927531u, 3182962700u, 1070144446u, 0, ATAN2_TOLERANCE, 0},
+{1709, 3449879391u, 991614550u, 3217625051u, 0, ATAN2_TOLERANCE, 0},
+{1710, 970094304u, 3344590506u, 1078530011u, 0, ATAN2_TOLERANCE, 0},
+{1711, 1125551064u, 3331248076u, 1078495469u, 0, ATAN2_TOLERANCE, 0},
+{1712, 3427296372u, 3455289118u, 3225583748u, 0, ATAN2_TOLERANCE, 0},
+{1713, 1198917460u, 1327195159u, 936028460u, 0, ATAN2_TOLERANCE, 0},
+{1714, 3114686212u, 3476082461u, 3226013659u, 0, ATAN2_TOLERANCE, 0},
+{1715, 3393557778u, 3383396815u, 3221042705u, 0, ATAN2_TOLERANCE, 0},
+{1716, 1276853215u, 873199561u, 1070141403u, 0, ATAN2_TOLERANCE, 0},
+{1717, 3462778440u, 3349284325u, 3217625773u, 0, ATAN2_TOLERANCE, 0},
+{1718, 3360170117u, 3048354042u, 3217625051u, 0, ATAN2_TOLERANCE, 0},
+{1719, 3224245428u, 3271307999u, 3225923200u, 0, ATAN2_TOLERANCE, 0},
+{1720, 1120124467u, 1135619937u, 1049278053u, 0, ATAN2_TOLERANCE, 0},
+{1721, 1064364381u, 3180675544u, 1070789756u, 0, ATAN2_TOLERANCE, 0},
+{1722, 1268744779u, 3328452652u, 1070147261u, 0, ATAN2_TOLERANCE, 0},
+{1723, 1165195428u, 3390323168u, 1078523283u, 0, ATAN2_TOLERANCE, 0},
+{1724, 3247790039u, 909788142u, 3217625049u, 0, ATAN2_TOLERANCE, 0},
+{1725, 3215244648u, 1083988595u, 3196313290u, 0, ATAN2_TOLERANCE, 0},
+{1726, 3095275931u, 989153382u, 3171194471u, 0, ATAN2_TOLERANCE, 0},
+{1727, 3275973009u, 3450721670u, 3226013656u, 0, ATAN2_TOLERANCE, 0},
+{1728, 3028857014u, 3188853813u, 3226013651u, 0, ATAN2_TOLERANCE, 0},
+{1729, 3391162308u, 1291220039u, 3165077124u, 0, ATAN2_TOLERANCE, 0},
+{1730, 1044867873u, 3369493273u, 1078530009u, 0, ATAN2_TOLERANCE, 0},
+{1731, 1089986803u, 3462160118u, 1078530011u, 0, ATAN2_TOLERANCE, 0},
+{1732, 1251462432u, 3171021770u, 1070141403u, 0, ATAN2_TOLERANCE, 0},
+{1733, 3485236902u, 980772835u, 3217625051u, 0, ATAN2_TOLERANCE, 0},
+{1734, 3262169538u, 1268270462u, 3058327958u, 0, ATAN2_TOLERANCE, 0},
+{1735, 3080852256u, 994641495u, 3150865718u, 0, ATAN2_TOLERANCE, 0},
+{1736, 1022211242u, 922124181u, 1070139279u, 0, ATAN2_TOLERANCE, 0},
+{1737, 3071422941u, 3271100396u, 3226013658u, 0, ATAN2_TOLERANCE, 0},
+{1738, 989762529u, 3362011135u, 1078530011u, 0, ATAN2_TOLERANCE, 0},
+{1739, 1295475718u, 3212305413u, 1070141403u, 0, ATAN2_TOLERANCE, 0},
+{1740, 1002632518u, 3330388441u, 1078530009u, 0, ATAN2_TOLERANCE, 0},
+{1741, 3404372005u, 3450484255u, 3225923347u, 0, ATAN2_TOLERANCE, 0},
+{1742, 3158912530u, 3105501826u, 3217725508u, 0, ATAN2_TOLERANCE, 0},
+{1743, 1125800069u, 3256265749u, 1072149389u, 0, ATAN2_TOLERANCE, 0},
+{1744, 3138037576u, 3103365227u, 3218096449u, 0, ATAN2_TOLERANCE, 0},
+{1745, 999985470u, 3409354318u, 1078530011u, 0, ATAN2_TOLERANCE, 0},
+{1746, 1189421739u, 1056599002u, 1070141263u, 0, ATAN2_TOLERANCE, 0},
+{1747, 3075182644u, 3144159778u, 3225999287u, 0, ATAN2_TOLERANCE, 0},
+{1748, 3028099649u, 3391513557u, 3226013659u, 0, ATAN2_TOLERANCE, 0},
+{1749, 3132541814u, 3444521949u, 3226013659u, 0, ATAN2_TOLERANCE, 0},
+{1750, 1164046161u, 3440635788u, 1078529913u, 0, ATAN2_TOLERANCE, 0},
+{1751, 1292596266u, 3116569667u, 1070141403u, 0, ATAN2_TOLERANCE, 0},
+{1752, 3469748379u, 3412765608u, 3217698932u, 0, ATAN2_TOLERANCE, 0},
+{1753, 1314644642u, 3123051784u, 1070141403u, 0, ATAN2_TOLERANCE, 0},
+{1754, 948775569u, 3485444126u, 1078530011u, 0, ATAN2_TOLERANCE, 0},
+{1755, 1034611395u, 882288581u, 1070141374u, 0, ATAN2_TOLERANCE, 0},
+{1756, 3489122735u, 3372450889u, 3217625594u, 0, ATAN2_TOLERANCE, 0},
+{1757, 1181604787u, 3363067409u, 1078275131u, 0, ATAN2_TOLERANCE, 0},
+{1758, 3059042077u, 3204983963u, 3226013634u, 0, ATAN2_TOLERANCE, 0},
+{1759, 1043691622u, 3402603223u, 1078530011u, 0, ATAN2_TOLERANCE, 0},
+{1760, 3157534378u, 3451674717u, 3226013659u, 0, ATAN2_TOLERANCE, 0},
+{1761, 3400949680u, 3073750220u, 3217625051u, 0, ATAN2_TOLERANCE, 0},
+{1762, 3365581801u, 1175843167u, 3217371050u, 0, ATAN2_TOLERANCE, 0},
+{1763, 3189917167u, 927278934u, 3217624429u, 0, ATAN2_TOLERANCE, 0},
+{1764, 969804941u, 3355439348u, 1078530011u, 0, ATAN2_TOLERANCE, 0},
+{1765, 1139120919u, 3270515074u, 1072286397u, 0, ATAN2_TOLERANCE, 0},
+{1766, 934308144u, 3118191228u, 1078319812u, 0, ATAN2_TOLERANCE, 0},
+{1767, 1220524226u, 1152648002u, 1070110636u, 0, ATAN2_TOLERANCE, 0},
+{1768, 3162548604u, 3461790298u, 3226013659u, 0, ATAN2_TOLERANCE, 0},
+{1769, 3382391700u, 3296962745u, 3217632000u, 0, ATAN2_TOLERANCE, 0},
+{1770, 1156767533u, 1088986462u, 1070110019u, 0, ATAN2_TOLERANCE, 0},
+{1771, 3079222483u, 3312324949u, 3226013659u, 0, ATAN2_TOLERANCE, 0},
+{1772, 994934087u, 967678094u, 1069258844u, 0, ATAN2_TOLERANCE, 0},
+{1773, 3185240099u, 1123403720u, 3127116361u, 0, ATAN2_TOLERANCE, 0},
+{1774, 3479873563u, 1246277393u, 3217618045u, 0, ATAN2_TOLERANCE, 0},
+{1775, 3424264117u, 3434026174u, 3224274563u, 0, ATAN2_TOLERANCE, 0},
+{1776, 3228365887u, 1216775310u, 3076618514u, 0, ATAN2_TOLERANCE, 0},
+{1777, 3125775254u, 955826310u, 3216377565u, 0, ATAN2_TOLERANCE, 0},
+{1778, 1037464105u, 3121544932u, 1070185103u, 0, ATAN2_TOLERANCE, 0},
+{1779, 1311706596u, 1254918706u, 1070064830u, 0, ATAN2_TOLERANCE, 0},
+{1780, 918212457u, 1017468331u, 965779528u, 0, ATAN2_TOLERANCE, 0},
+{1781, 1337315179u, 3461361185u, 1071333966u, 0, ATAN2_TOLERANCE, 0},
+{1782, 1131358407u, 3325958870u, 1078447574u, 0, ATAN2_TOLERANCE, 0},
+{1783, 1156517523u, 3343716230u, 1078377276u, 0, ATAN2_TOLERANCE, 0},
+{1784, 3210802820u, 3207408574u, 3222176882u, 0, ATAN2_TOLERANCE, 0},
+{1785, 3337499209u, 1226297264u, 3175656659u, 0, ATAN2_TOLERANCE, 0},
+{1786, 3468429030u, 3253874001u, 3217625051u, 0, ATAN2_TOLERANCE, 0},
+{1787, 3253515800u, 1189005947u, 3129474916u, 0, ATAN2_TOLERANCE, 0},
+{1788, 3055299953u, 3047908678u, 3221530216u, 0, ATAN2_TOLERANCE, 0},
+{1789, 959956547u, 876324728u, 1070133038u, 0, ATAN2_TOLERANCE, 0},
+{1790, 3425290480u, 1139193797u, 3217624964u, 0, ATAN2_TOLERANCE, 0},
+{1791, 1039917375u, 1122740999u, 982044192u, 0, ATAN2_TOLERANCE, 0},
+{1792, 3220979495u, 3429223871u, 3226013658u, 0, ATAN2_TOLERANCE, 0},
+{1793, 1311016004u, 3334899880u, 1070141712u, 0, ATAN2_TOLERANCE, 0},
+{1794, 1128016396u, 1105151547u, 1068906176u, 0, ATAN2_TOLERANCE, 0},
+{1795, 3210335769u, 3100646155u, 3217626029u, 0, ATAN2_TOLERANCE, 0},
+{1796, 3022705759u, 3404762495u, 3226013659u, 0, ATAN2_TOLERANCE, 0},
+{1797, 3144504834u, 1162227076u, 3046722218u, 0, ATAN2_TOLERANCE, 0},
+{1798, 1213609983u, 919983950u, 1070141403u, 0, ATAN2_TOLERANCE, 0},
+{1799, 1246902946u, 3064047808u, 1070141403u, 0, ATAN2_TOLERANCE, 0},
+{1800, 3362082828u, 3374056268u, 3224536668u, 0, ATAN2_TOLERANCE, 0},
+{1801, 1029480631u, 3047777170u, 1070141599u, 0, ATAN2_TOLERANCE, 0},
+{1802, 3153568584u, 3106514232u, 3217804606u, 0, ATAN2_TOLERANCE, 0},
+{1803, 3384988527u, 3109485565u, 3217625051u, 0, ATAN2_TOLERANCE, 0},
+{1804, 3235395924u, 1132055244u, 3168635683u, 0, ATAN2_TOLERANCE, 0},
+{1805, 1228636133u, 886552820u, 1070141403u, 0, ATAN2_TOLERANCE, 0},
+{1806, 3161654634u, 3335899347u, 3226013656u, 0, ATAN2_TOLERANCE, 0},
+{1807, 3162655243u, 3307203982u, 3226013633u, 0, ATAN2_TOLERANCE, 0},
+{1808, 1165476654u, 3350219111u, 1078345914u, 0, ATAN2_TOLERANCE, 0},
+{1809, 1017239798u, 3438501281u, 1078530011u, 0, ATAN2_TOLERANCE, 0},
+{1810, 1149651309u, 970030475u, 1070141400u, 0, ATAN2_TOLERANCE, 0},
+{1811, 1111943722u, 3122211334u, 1070141501u, 0, ATAN2_TOLERANCE, 0},
+{1812, 1189849849u, 3382739134u, 1078433800u, 0, ATAN2_TOLERANCE, 0},
+{1813, 3204848496u, 3141519085u, 3217671909u, 0, ATAN2_TOLERANCE, 0},
+{1814, 1249758327u, 3104759211u, 1070141403u, 0, ATAN2_TOLERANCE, 0},
+{1815, 3092982276u, 3445282331u, 3226013659u, 0, ATAN2_TOLERANCE, 0},
+{1816, 1168098747u, 1316854744u, 916539235u, 0, ATAN2_TOLERANCE, 0},
+{1817, 3301009024u, 3406174560u, 3226012920u, 0, ATAN2_TOLERANCE, 0},
+{1818, 3233089227u, 1212652543u, 3085445853u, 0, ATAN2_TOLERANCE, 0},
+{1819, 3218245284u, 1238873830u, 3044661167u, 0, ATAN2_TOLERANCE, 0},
+{1820, 3215981890u, 3240474694u, 3225460117u, 0, ATAN2_TOLERANCE, 0},
+{1821, 1266687209u, 3092038122u, 1070141403u, 0, ATAN2_TOLERANCE, 0},
+{1822, 3487959775u, 3331372071u, 3217625071u, 0, ATAN2_TOLERANCE, 0},
+{1823, 3345065699u, 3282620725u, 3217674080u, 0, ATAN2_TOLERANCE, 0},
+{1824, 935847271u, 1067255804u, 933425332u, 0, ATAN2_TOLERANCE, 0},
+{1825, 3410336089u, 1111437780u, 3217625020u, 0, ATAN2_TOLERANCE, 0},
+{1826, 1141063391u, 1168908072u, 1036164544u, 0, ATAN2_TOLERANCE, 0},
+{1827, 3059263153u, 3067795684u, 3224085849u, 0, ATAN2_TOLERANCE, 0},
+{1828, 3353679791u, 897158391u, 3217625051u, 0, ATAN2_TOLERANCE, 0},
+{1829, 1001823878u, 1016826861u, 1049766982u, 0, ATAN2_TOLERANCE, 0},
+{1830, 1009130212u, 1004302940u, 1065100489u, 0, ATAN2_TOLERANCE, 0},
+{1831, 3367127535u, 943136342u, 3217625051u, 0, ATAN2_TOLERANCE, 0},
+{1832, 1032920919u, 3449126417u, 1078530011u, 0, ATAN2_TOLERANCE, 0},
+{1833, 3281952870u, 3147012185u, 3217625170u, 0, ATAN2_TOLERANCE, 0},
+{1834, 1237868497u, 3048281802u, 1070141403u, 0, ATAN2_TOLERANCE, 0},
+{1835, 1153753924u, 3322269242u, 1077767076u, 0, ATAN2_TOLERANCE, 0},
+{1836, 1120261759u, 892210998u, 1070141403u, 0, ATAN2_TOLERANCE, 0},
+{1837, 3226328360u, 3366432856u, 3226013619u, 0, ATAN2_TOLERANCE, 0},
+{1838, 3349595986u, 3251588707u, 3217627596u, 0, ATAN2_TOLERANCE, 0},
+{1839, 3166889490u, 3306023523u, 3226013615u, 0, ATAN2_TOLERANCE, 0},
+{1840, 1087750238u, 1099325523u, 1052887712u, 0, ATAN2_TOLERANCE, 0},
+{1841, 3121620061u, 3359488363u, 3226013659u, 0, ATAN2_TOLERANCE, 0},
+{1842, 1066116543u, 3072159933u, 1070141475u, 0, ATAN2_TOLERANCE, 0},
+{1843, 3051923237u, 3364074347u, 3226013659u, 0, ATAN2_TOLERANCE, 0},
+{1844, 1030612298u, 3345396001u, 1078530007u, 0, ATAN2_TOLERANCE, 0},
+{1845, 1331680743u, 1009396165u, 1070141403u, 0, ATAN2_TOLERANCE, 0},
+{1846, 1045232522u, 3234993273u, 1078402159u, 0, ATAN2_TOLERANCE, 0},
+{1847, 3119858470u, 962515365u, 3214048321u, 0, ATAN2_TOLERANCE, 0},
+{1848, 3349432725u, 928848003u, 3217625051u, 0, ATAN2_TOLERANCE, 0},
+{1849, 912423027u, 3184646319u, 1078529872u, 0, ATAN2_TOLERANCE, 0},
+{1850, 3228795133u, 3273940030u, 3225916583u, 0, ATAN2_TOLERANCE, 0},
+{1851, 3194674746u, 3112269709u, 3217634082u, 0, ATAN2_TOLERANCE, 0},
+{1852, 3296784303u, 3276182352u, 3219220450u, 0, ATAN2_TOLERANCE, 0},
+{1853, 965402291u, 3107104376u, 1074339079u, 0, ATAN2_TOLERANCE, 0},
+{1854, 3388153589u, 3426245389u, 3225840904u, 0, ATAN2_TOLERANCE, 0},
+{1855, 1133410485u, 3329658993u, 1078454282u, 0, ATAN2_TOLERANCE, 0},
+{1856, 3136790322u, 1088652637u, 3112914680u, 0, ATAN2_TOLERANCE, 0},
+{1857, 3369970587u, 959121458u, 3217625051u, 0, ATAN2_TOLERANCE, 0},
+{1858, 1270451568u, 928393353u, 1070141403u, 0, ATAN2_TOLERANCE, 0},
+{1859, 989498922u, 3088358419u, 1070296868u, 0, ATAN2_TOLERANCE, 0},
+{1860, 1280215674u, 3148135875u, 1070141403u, 0, ATAN2_TOLERANCE, 0},
+{1861, 1171873518u, 954709738u, 1070141403u, 0, ATAN2_TOLERANCE, 0},
+{1862, 3298258100u, 935525182u, 3217625050u, 0, ATAN2_TOLERANCE, 0},
+{1863, 1001897182u, 3191875320u, 1078404716u, 0, ATAN2_TOLERANCE, 0},
+{1864, 3152777939u, 3245830463u, 3226011709u, 0, ATAN2_TOLERANCE, 0},
+{1865, 985903305u, 3333087577u, 1078530010u, 0, ATAN2_TOLERANCE, 0},
+{1866, 982612185u, 923582663u, 1070077994u, 0, ATAN2_TOLERANCE, 0},
+{1867, 3267868136u, 1208301947u, 3124748530u, 0, ATAN2_TOLERANCE, 0},
+{1868, 3319048157u, 1172271145u, 3208821711u, 0, ATAN2_TOLERANCE, 0},
+{1869, 3301461672u, 1233693827u, 3132856391u, 0, ATAN2_TOLERANCE, 0},
+{1870, 3364525678u, 3089849671u, 3217625051u, 0, ATAN2_TOLERANCE, 0},
+{1871, 3146660041u, 3143695961u, 3222232199u, 0, ATAN2_TOLERANCE, 0},
+{1872, 3467121799u, 3023584354u, 3217625051u, 0, ATAN2_TOLERANCE, 0},
+{1873, 1151257041u, 3084216427u, 1070141403u, 0, ATAN2_TOLERANCE, 0},
+{1874, 3097873255u, 3219266640u, 3226013471u, 0, ATAN2_TOLERANCE, 0},
+{1875, 3130670309u, 3192399254u, 3225988407u, 0, ATAN2_TOLERANCE, 0},
+{1876, 1017573824u, 3130901062u, 1070636269u, 0, ATAN2_TOLERANCE, 0},
+{1877, 1258369714u, 3462258576u, 1078491850u, 0, ATAN2_TOLERANCE, 0},
+{1878, 1216602683u, 3371396332u, 1076447486u, 0, ATAN2_TOLERANCE, 0},
+{1879, 3297265739u, 1214184410u, 3147593150u, 0, ATAN2_TOLERANCE, 0},
+{1880, 1071940738u, 3311731012u, 1078527967u, 0, ATAN2_TOLERANCE, 0},
+{1881, 922601356u, 3337171870u, 1078530011u, 0, ATAN2_TOLERANCE, 0},
+{1882, 3462285635u, 3444030332u, 3219478650u, 0, ATAN2_TOLERANCE, 0},
+{1883, 3357177805u, 1085464241u, 3217624754u, 0, ATAN2_TOLERANCE, 0},
+{1884, 3049120080u, 900832851u, 3209796011u, 0, ATAN2_TOLERANCE, 0},
+{1885, 1153863660u, 1011991342u, 1070141335u, 0, ATAN2_TOLERANCE, 0},
+{1886, 3034243695u, 917098003u, 3181683726u, 0, ATAN2_TOLERANCE, 0},
+{1887, 1249365132u, 3278686216u, 1070141892u, 0, ATAN2_TOLERANCE, 0},
+{1888, 3046215730u, 3211219980u, 3226013654u, 0, ATAN2_TOLERANCE, 0},
+{1889, 3047251716u, 1090787353u, 3021758111u, 0, ATAN2_TOLERANCE, 0},
+{1890, 3131219358u, 3471261157u, 3226013659u, 0, ATAN2_TOLERANCE, 0},
+{1891, 3222096285u, 1198013705u, 3088825940u, 0, ATAN2_TOLERANCE, 0},
+{1892, 1297708818u, 3079166173u, 1070141403u, 0, ATAN2_TOLERANCE, 0},
+{1893, 3345532722u, 3383708463u, 3225839704u, 0, ATAN2_TOLERANCE, 0},
+{1894, 3418753236u, 3481843070u, 3225989925u, 0, ATAN2_TOLERANCE, 0},
+{1895, 1277417964u, 3487506626u, 1078505948u, 0, ATAN2_TOLERANCE, 0},
+{1896, 987577257u, 1152077087u, 900026212u, 0, ATAN2_TOLERANCE, 0},
+{1897, 3161606610u, 3190282989u, 3225636292u, 0, ATAN2_TOLERANCE, 0},
+{1898, 888030585u, 3062367380u, 1078072618u, 0, ATAN2_TOLERANCE, 0},
+{1899, 1043442869u, 3311393817u, 1078529807u, 0, ATAN2_TOLERANCE, 0},
+{1900, 3320923228u, 3464544249u, 3226013629u, 0, ATAN2_TOLERANCE, 0},
+{1901, 1337400405u, 3488844154u, 1075825929u, 0, ATAN2_TOLERANCE, 0},
+{1902, 3400348640u, 3129868490u, 3217625051u, 0, ATAN2_TOLERANCE, 0},
+{1903, 1250249095u, 1069023744u, 1070141400u, 0, ATAN2_TOLERANCE, 0},
+{1904, 3284411233u, 1173613526u, 3175984512u, 0, ATAN2_TOLERANCE, 0},
+{1905, 1215968622u, 3469884568u, 1078529401u, 0, ATAN2_TOLERANCE, 0},
+{1906, 3061638260u, 3116222327u, 3225969995u, 0, ATAN2_TOLERANCE, 0},
+{1907, 1025404104u, 1066370251u, 1024277766u, 0, ATAN2_TOLERANCE, 0},
+{1908, 3138086437u, 3195983510u, 3225977811u, 0, ATAN2_TOLERANCE, 0},
+{1909, 3091024506u, 3456196859u, 3226013659u, 0, ATAN2_TOLERANCE, 0},
+{1910, 3362748242u, 3369843597u, 3223921029u, 0, ATAN2_TOLERANCE, 0},
+{1911, 3099671635u, 3218383623u, 3226013426u, 0, ATAN2_TOLERANCE, 0},
+{1912, 1252237719u, 1121169249u, 1070141237u, 0, ATAN2_TOLERANCE, 0},
+{1913, 3327895594u, 1224511805u, 3168704100u, 0, ATAN2_TOLERANCE, 0},
+{1914, 3082454432u, 889268276u, 3217443557u, 0, ATAN2_TOLERANCE, 0},
+{1915, 3396161504u, 1182798837u, 3217589681u, 0, ATAN2_TOLERANCE, 0},
+{1916, 1099710167u, 887180181u, 1070141402u, 0, ATAN2_TOLERANCE, 0},
+{1917, 1157186482u, 1288722647u, 932782932u, 0, ATAN2_TOLERANCE, 0},
+{1918, 1282110851u, 3176633124u, 1070141403u, 0, ATAN2_TOLERANCE, 0},
+{1919, 3477008113u, 1331845018u, 3207816178u, 0, ATAN2_TOLERANCE, 0},
+{1920, 3292127294u, 3409957764u, 3226013411u, 0, ATAN2_TOLERANCE, 0},
+{1921, 1123357102u, 3281307320u, 1076891530u, 0, ATAN2_TOLERANCE, 0},
+{1922, 1106837025u, 3088080674u, 1070141412u, 0, ATAN2_TOLERANCE, 0},
+{1923, 1049949008u, 1130799489u, 983913904u, 0, ATAN2_TOLERANCE, 0},
+{1924, 1253017688u, 942062372u, 1070141403u, 0, ATAN2_TOLERANCE, 0},
+{1925, 1108543194u, 3281299199u, 1078014074u, 0, ATAN2_TOLERANCE, 0},
+{1926, 1160162706u, 1264067367u, 960850742u, 0, ATAN2_TOLERANCE, 0},
+{1927, 3438080027u, 3107114149u, 3217625051u, 0, ATAN2_TOLERANCE, 0},
+{1928, 3344574751u, 3111270744u, 3217625051u, 0, ATAN2_TOLERANCE, 0},
+{1929, 1152416724u, 962669179u, 1070141401u, 0, ATAN2_TOLERANCE, 0},
+{1930, 1218239308u, 1126238113u, 1070137198u, 0, ATAN2_TOLERANCE, 0},
+{1931, 3263310567u, 1030748197u, 3217617499u, 0, ATAN2_TOLERANCE, 0},
+{1932, 972485427u, 1124312043u, 913317624u, 0, ATAN2_TOLERANCE, 0},
+{1933, 3290264612u, 1124703898u, 3215820437u, 0, ATAN2_TOLERANCE, 0},
+{1934, 3222106584u, 1183748648u, 3103652430u, 0, ATAN2_TOLERANCE, 0},
+{1935, 947914771u, 3181847068u, 1078526873u, 0, ATAN2_TOLERANCE, 0},
+{1936, 3167730654u, 3195765940u, 3225582168u, 0, ATAN2_TOLERANCE, 0},
+{1937, 1098530298u, 3255870890u, 1076817855u, 0, ATAN2_TOLERANCE, 0},
+{1938, 1277649137u, 961171401u, 1070141403u, 0, ATAN2_TOLERANCE, 0},
+{1939, 3090306474u, 3124785016u, 3225770994u, 0, ATAN2_TOLERANCE, 0},
+{1940, 3244032016u, 3045313345u, 3217625051u, 0, ATAN2_TOLERANCE, 0},
+{1941, 3033122376u, 3049877065u, 3224984460u, 0, ATAN2_TOLERANCE, 0},
+{1942, 1096155623u, 1256423752u, 904974295u, 0, ATAN2_TOLERANCE, 0},
+{1943, 873151908u, 3246562559u, 1078530011u, 0, ATAN2_TOLERANCE, 0},
+{1944, 3317196817u, 989537151u, 3217625048u, 0, ATAN2_TOLERANCE, 0},
+{1945, 3345634950u, 959901149u, 3217625051u, 0, ATAN2_TOLERANCE, 0},
+{1946, 3189860276u, 883598767u, 3217625034u, 0, ATAN2_TOLERANCE, 0},
+{1947, 3396917283u, 3066326686u, 3217625051u, 0, ATAN2_TOLERANCE, 0},
+{1948, 3317032737u, 3143803722u, 3217625056u, 0, ATAN2_TOLERANCE, 0},
+{1949, 1200051436u, 1163802508u, 1069711335u, 0, ATAN2_TOLERANCE, 0},
+{1950, 1306520561u, 957302464u, 1070141403u, 0, ATAN2_TOLERANCE, 0},
+{1951, 3475052219u, 1284049853u, 3217402085u, 0, ATAN2_TOLERANCE, 0},
+{1952, 3085636260u, 1107682820u, 3043014567u, 0, ATAN2_TOLERANCE, 0},
+{1953, 3393227708u, 3271879112u, 3217625404u, 0, ATAN2_TOLERANCE, 0},
+{1954, 3349005404u, 3080993030u, 3217625051u, 0, ATAN2_TOLERANCE, 0},
+{1955, 3154720153u, 3443720494u, 3226013659u, 0, ATAN2_TOLERANCE, 0},
+{1956, 1262863321u, 1219003129u, 1069918088u, 0, ATAN2_TOLERANCE, 0},
+{1957, 1053387478u, 3184880021u, 1072313561u, 0, ATAN2_TOLERANCE, 0},
+{1958, 3387653691u, 3347783852u, 3217934656u, 0, ATAN2_TOLERANCE, 0},
+{1959, 3136364836u, 1018492227u, 3182046039u, 0, ATAN2_TOLERANCE, 0},
+{1960, 1338680611u, 1166078045u, 1070141398u, 0, ATAN2_TOLERANCE, 0},
+{1961, 1112891928u, 3074730425u, 1070141404u, 0, ATAN2_TOLERANCE, 0},
+{1962, 893449284u, 1052877339u, 905910827u, 0, ATAN2_TOLERANCE, 0},
+{1963, 3105373037u, 3246705916u, 3226013622u, 0, ATAN2_TOLERANCE, 0},
+{1964, 1190105283u, 3033907262u, 1070141403u, 0, ATAN2_TOLERANCE, 0},
+{1965, 1011225926u, 1180485180u, 895856689u, 0, ATAN2_TOLERANCE, 0},
+{1966, 1043025031u, 987068973u, 1070059733u, 0, ATAN2_TOLERANCE, 0},
+{1967, 3125834184u, 896953754u, 3217615366u, 0, ATAN2_TOLERANCE, 0},
+{1968, 1120888322u, 1086209113u, 1069661027u, 0, ATAN2_TOLERANCE, 0},
+{1969, 1315217243u, 3396371713u, 1070175876u, 0, ATAN2_TOLERANCE, 0},
+{1970, 3137758475u, 1039403054u, 3163355342u, 0, ATAN2_TOLERANCE, 0},
+{1971, 1040617590u, 1034835971u, 1065285491u, 0, ATAN2_TOLERANCE, 0},
+{1972, 955384253u, 3344785562u, 1078530011u, 0, ATAN2_TOLERANCE, 0},
+{1973, 904255535u, 1019967545u, 949000081u, 0, ATAN2_TOLERANCE, 0},
+{1974, 1022984119u, 3113891410u, 1070222414u, 0, ATAN2_TOLERANCE, 0},
+{1975, 997362368u, 3112875428u, 1070740064u, 0, ATAN2_TOLERANCE, 0},
+{1976, 1168623062u, 1143306482u, 1069112396u, 0, ATAN2_TOLERANCE, 0},
+{1977, 878737490u, 3269908326u, 1078530011u, 0, ATAN2_TOLERANCE, 0},
+{1978, 1039827284u, 1072928888u, 1032024878u, 0, ATAN2_TOLERANCE, 0},
+{1979, 1021564080u, 1064468397u, 1022390853u, 0, ATAN2_TOLERANCE, 0},
+{1980, 3458669745u, 3033299853u, 3217625051u, 0, ATAN2_TOLERANCE, 0},
+{1981, 3327516316u, 3405380971u, 3226006650u, 0, ATAN2_TOLERANCE, 0},
+{1982, 1040711112u, 3229444200u, 1078389384u, 0, ATAN2_TOLERANCE, 0},
+{1983, 1134528351u, 3365952513u, 1078525936u, 0, ATAN2_TOLERANCE, 0},
+{1984, 3414352838u, 3350285760u, 3217669438u, 0, ATAN2_TOLERANCE, 0},
+{1985, 1133689539u, 1067460093u, 1070105638u, 0, ATAN2_TOLERANCE, 0},
+{1986, 3455688478u, 3333091960u, 3217625401u, 0, ATAN2_TOLERANCE, 0},
+{1987, 1137634874u, 1137038869u, 1062129683u, 0, ATAN2_TOLERANCE, 0},
+{1988, 3415502662u, 955510692u, 3217625051u, 0, ATAN2_TOLERANCE, 0},
+{1989, 954999730u, 969618597u, 1049674404u, 0, ATAN2_TOLERANCE, 0},
+{1990, 1066157309u, 3241712664u, 1078132839u, 0, ATAN2_TOLERANCE, 0},
+{1991, 3436353675u, 1174967495u, 3217624387u, 0, ATAN2_TOLERANCE, 0},
+{1992, 3108347547u, 3434003435u, 3226013659u, 0, ATAN2_TOLERANCE, 0},
+{1993, 3064200154u, 3158080507u, 3226011877u, 0, ATAN2_TOLERANCE, 0},
+{1994, 3272661536u, 3461799138u, 3226013658u, 0, ATAN2_TOLERANCE, 0},
+{1995, 1170245333u, 1233406410u, 1002064036u, 0, ATAN2_TOLERANCE, 0},
+{1996, 1219052056u, 3369557946u, 1075736302u, 0, ATAN2_TOLERANCE, 0},
+{1997, 3318983619u, 3259663338u, 3217687751u, 0, ATAN2_TOLERANCE, 0},
+{1998, 3146190320u, 889646054u, 3217624028u, 0, ATAN2_TOLERANCE, 0},
+{1999, 1299683827u, 966031619u, 1070141403u, 0, ATAN2_TOLERANCE, 0},
+{2000, 3086068902u, 3484245751u, 3226013659u, 0, ATAN2_TOLERANCE, 0},
+{2001, 3064155399u, 3176569312u, 3226013269u, 0, ATAN2_TOLERANCE, 0},
+{2002, 3040314717u, 1071290674u, 3033983935u, 0, ATAN2_TOLERANCE, 0},
+{2003, 3257224022u, 3361778245u, 3226012905u, 0, ATAN2_TOLERANCE, 0},
+{2004, 1229268598u, 1066965677u, 1070141390u, 0, ATAN2_TOLERANCE, 0},
+{2005, 1086717248u, 3423795374u, 1078530010u, 0, ATAN2_TOLERANCE, 0},
+{2006, 3434884607u, 3029593823u, 3217625051u, 0, ATAN2_TOLERANCE, 0},
+{2007, 3464955606u, 1017987696u, 3217625051u, 0, ATAN2_TOLERANCE, 0},
+{2008, 1025278524u, 3121856207u, 1070265127u, 0, ATAN2_TOLERANCE, 0},
+{2009, 1242829722u, 3233935671u, 1070141424u, 0, ATAN2_TOLERANCE, 0},
+{2010, 3075149137u, 1117325737u, 3022640362u, 0, ATAN2_TOLERANCE, 0},
+{2011, 1200927971u, 1317167489u, 949091767u, 0, ATAN2_TOLERANCE, 0},
+{2012, 3326858092u, 3452602832u, 3226013530u, 0, ATAN2_TOLERANCE, 0},
+{2013, 3184801644u, 1137974313u, 3112177779u, 0, ATAN2_TOLERANCE, 0},
+{2014, 1136052740u, 3244616020u, 1070469525u, 0, ATAN2_TOLERANCE, 0},
+{2015, 1015670780u, 1101217251u, 978863264u, 0, ATAN2_TOLERANCE, 0},
+{2016, 1012543234u, 1116520440u, 960916317u, 0, ATAN2_TOLERANCE, 0},
+{2017, 3316611992u, 3394732912u, 3226006988u, 0, ATAN2_TOLERANCE, 0},
+{2018, 1087942795u, 3316660295u, 1078524974u, 0, ATAN2_TOLERANCE, 0},
+{2019, 3426365713u, 3069778532u, 3217625051u, 0, ATAN2_TOLERANCE, 0},
+{2020, 3066654389u, 3443934204u, 3226013659u, 0, ATAN2_TOLERANCE, 0},
+{2021, 3295326432u, 1313396175u, 3046478811u, 0, ATAN2_TOLERANCE, 0},
+{2022, 3318835308u, 3277583511u, 3217900300u, 0, ATAN2_TOLERANCE, 0},
+{2023, 3283555717u, 891875120u, 3217625051u, 0, ATAN2_TOLERANCE, 0},
+{2024, 3040485181u, 3375450886u, 3226013659u, 0, ATAN2_TOLERANCE, 0},
+{2025, 3388772093u, 1032597076u, 3217625050u, 0, ATAN2_TOLERANCE, 0},
+{2026, 954670189u, 1144923689u, 874222309u, 0, ATAN2_TOLERANCE, 0},
+{2027, 1319200415u, 3387555900u, 1070153279u, 0, ATAN2_TOLERANCE, 0},
+{2028, 1279324488u, 3228401212u, 1070141403u, 0, ATAN2_TOLERANCE, 0},
+{2029, 3455131757u, 1260217257u, 3217453967u, 0, ATAN2_TOLERANCE, 0},
+{2030, 1246947517u, 1087951909u, 1070141386u, 0, ATAN2_TOLERANCE, 0},
+{2031, 3433761025u, 3060143904u, 3217625051u, 0, ATAN2_TOLERANCE, 0},
+{2032, 3201187455u, 900233172u, 3217625024u, 0, ATAN2_TOLERANCE, 0},
+{2033, 1173247961u, 1191127979u, 1047193748u, 0, ATAN2_TOLERANCE, 0},
+{2034, 3037297123u, 3346394818u, 3226013659u, 0, ATAN2_TOLERANCE, 0},
+{2035, 3083019343u, 3033309444u, 3217762483u, 0, ATAN2_TOLERANCE, 0},
+{2036, 3042018375u, 3203882372u, 3226013652u, 0, ATAN2_TOLERANCE, 0},
+{2037, 1082862511u, 3032804719u, 1070141403u, 0, ATAN2_TOLERANCE, 0},
+{2038, 3157626955u, 3483653298u, 3226013659u, 0, ATAN2_TOLERANCE, 0},
+{2039, 3182695954u, 3256861672u, 3226004425u, 0, ATAN2_TOLERANCE, 0},
+{2040, 1105291533u, 3482971524u, 1078530011u, 0, ATAN2_TOLERANCE, 0},
+{2041, 1016023520u, 3227712090u, 1078509325u, 0, ATAN2_TOLERANCE, 0},
+{2042, 3370691006u, 1295870514u, 3139254705u, 0, ATAN2_TOLERANCE, 0},
+{2043, 1156767169u, 1049756240u, 1070140171u, 0, ATAN2_TOLERANCE, 0},
+{2044, 3077020499u, 894671462u, 3217146564u, 0, ATAN2_TOLERANCE, 0},
+{2045, 1104284039u, 3040211914u, 1070141403u, 0, ATAN2_TOLERANCE, 0},
+{2046, 3335212901u, 3486414589u, 3226013643u, 0, ATAN2_TOLERANCE, 0},
+{2047, 1093697541u, 3193708441u, 1070304849u, 0, ATAN2_TOLERANCE, 0},
+{2048, 3266691185u, 1160074593u, 3171723218u, 0, ATAN2_TOLERANCE, 0},
+{2049, 3179003144u, 1108615803u, 3134817668u, 0, ATAN2_TOLERANCE, 0},
+{2050, 3424086808u, 3260140004u, 3217625062u, 0, ATAN2_TOLERANCE, 0},
+{2051, 3353608773u, 1134068114u, 3217603133u, 0, ATAN2_TOLERANCE, 0},
+{2052, 882878091u, 3136970767u, 1078529358u, 0, ATAN2_TOLERANCE, 0},
+{2053, 927582555u, 947955456u, 1044791214u, 0, ATAN2_TOLERANCE, 0},
+{2054, 3111440310u, 3067634077u, 3217856693u, 0, ATAN2_TOLERANCE, 0},
+{2055, 3476083859u, 966439623u, 3217625051u, 0, ATAN2_TOLERANCE, 0},
+{2056, 3038754840u, 932009686u, 3171980751u, 0, ATAN2_TOLERANCE, 0},
+{2057, 3464546616u, 3205527253u, 3217625051u, 0, ATAN2_TOLERANCE, 0},
+{2058, 1002542205u, 3152136093u, 1075557233u, 0, ATAN2_TOLERANCE, 0},
+{2059, 3443552129u, 3165561391u, 3217625051u, 0, ATAN2_TOLERANCE, 0},
+{2060, 1287620154u, 3119707283u, 1070141403u, 0, ATAN2_TOLERANCE, 0},
+{2061, 3073260205u, 3093124531u, 3225198660u, 0, ATAN2_TOLERANCE, 0},
+{2062, 1245702957u, 894348966u, 1070141403u, 0, ATAN2_TOLERANCE, 0},
+{2063, 1002715618u, 1191006977u, 877022332u, 0, ATAN2_TOLERANCE, 0},
+{2064, 3087802274u, 897541752u, 3217386213u, 0, ATAN2_TOLERANCE, 0},
+{2065, 3415763001u, 3032518431u, 3217625051u, 0, ATAN2_TOLERANCE, 0},
+{2066, 3283471961u, 1260093226u, 3088427057u, 0, ATAN2_TOLERANCE, 0},
+{2067, 3311210827u, 1192192264u, 3183785110u, 0, ATAN2_TOLERANCE, 0},
+{2068, 1198307901u, 1116328249u, 1070131864u, 0, ATAN2_TOLERANCE, 0},
+{2069, 1288901567u, 1296370667u, 1056686848u, 0, ATAN2_TOLERANCE, 0},
+{2070, 922255363u, 958305289u, 1028156442u, 0, ATAN2_TOLERANCE, 0},
+{2071, 1113104661u, 944376032u, 1070141395u, 0, ATAN2_TOLERANCE, 0},
+{2072, 948856035u, 1015466475u, 998717622u, 0, ATAN2_TOLERANCE, 0},
+{2073, 1062512367u, 3229559531u, 1077668471u, 0, ATAN2_TOLERANCE, 0},
+{2074, 1162027071u, 3308983387u, 1075147524u, 0, ATAN2_TOLERANCE, 0},
+{2075, 1034561811u, 1054043114u, 1045123831u, 0, ATAN2_TOLERANCE, 0},
+{2076, 3271615417u, 3209997200u, 3217679118u, 0, ATAN2_TOLERANCE, 0},
+{2077, 1042014529u, 1146708584u, 959943147u, 0, ATAN2_TOLERANCE, 0},
+{2078, 1177157787u, 3090208179u, 1070141403u, 0, ATAN2_TOLERANCE, 0},
+{2079, 3196144817u, 1056118717u, 3204073657u, 0, ATAN2_TOLERANCE, 0},
+{2080, 1309658335u, 1010219988u, 1070141403u, 0, ATAN2_TOLERANCE, 0},
+{2081, 3100289712u, 3456334210u, 3226013659u, 0, ATAN2_TOLERANCE, 0},
+{2082, 3375507013u, 1306310823u, 3134103462u, 0, ATAN2_TOLERANCE, 0},
+{2083, 3460699001u, 3096700943u, 3217625051u, 0, ATAN2_TOLERANCE, 0},
+{2084, 3079231719u, 1044386263u, 3099004977u, 0, ATAN2_TOLERANCE, 0},
+{2085, 3093951884u, 1014115231u, 3145159061u, 0, ATAN2_TOLERANCE, 0},
+{2086, 3468023178u, 1209565017u, 3217624192u, 0, ATAN2_TOLERANCE, 0},
+{2087, 1204196034u, 3298625731u, 1070245051u, 0, ATAN2_TOLERANCE, 0},
+{2088, 1161439847u, 943449277u, 1070141403u, 0, ATAN2_TOLERANCE, 0},
+{2089, 908663107u, 939489763u, 1034489716u, 0, ATAN2_TOLERANCE, 0},
+{2090, 1055319316u, 3261813492u, 1078497860u, 0, ATAN2_TOLERANCE, 0},
+{2091, 1084378658u, 1009650785u, 1070123833u, 0, ATAN2_TOLERANCE, 0},
+{2092, 3053887750u, 3341786453u, 3226013659u, 0, ATAN2_TOLERANCE, 0},
+{2093, 3022828828u, 881335251u, 3205544878u, 0, ATAN2_TOLERANCE, 0},
+{2094, 1123114742u, 1229815537u, 957765780u, 0, ATAN2_TOLERANCE, 0},
+{2095, 1258114435u, 1291336083u, 1031958809u, 0, ATAN2_TOLERANCE, 0},
+{2096, 3468040845u, 3066966245u, 3217625051u, 0, ATAN2_TOLERANCE, 0},
+{2097, 1178825761u, 1113195286u, 1070104853u, 0, ATAN2_TOLERANCE, 0},
+{2098, 3059266302u, 878503862u, 3217091308u, 0, ATAN2_TOLERANCE, 0},
+{2099, 3223384012u, 1130486973u, 3157682004u, 0, ATAN2_TOLERANCE, 0},
+{2100, 3445262427u, 3465211174u, 3225199336u, 0, ATAN2_TOLERANCE, 0},
+{2101, 1125653081u, 1207799746u, 983142602u, 0, ATAN2_TOLERANCE, 0},
+{2102, 3337652712u, 3025581813u, 3217625051u, 0, ATAN2_TOLERANCE, 0},
+{2103, 1184753508u, 3147374485u, 1070141405u, 0, ATAN2_TOLERANCE, 0},
+{2104, 996404791u, 3353251979u, 1078530011u, 0, ATAN2_TOLERANCE, 0},
+{2105, 1188439315u, 1113484271u, 1070124385u, 0, ATAN2_TOLERANCE, 0},
+{2106, 916831283u, 999465787u, 982559633u, 0, ATAN2_TOLERANCE, 0},
+{2107, 996786317u, 3179221951u, 1078290045u, 0, ATAN2_TOLERANCE, 0},
+{2108, 3461635065u, 1004690387u, 3217625051u, 0, ATAN2_TOLERANCE, 0},
+{2109, 1188167943u, 1200744896u, 1051776672u, 0, ATAN2_TOLERANCE, 0},
+{2110, 1102061604u, 3424449935u, 1078530008u, 0, ATAN2_TOLERANCE, 0},
+{2111, 1282351521u, 3039376424u, 1070141403u, 0, ATAN2_TOLERANCE, 0},
+{2112, 3458861065u, 3392466405u, 3217659919u, 0, ATAN2_TOLERANCE, 0},
+{2113, 3095256878u, 1023623326u, 3136787620u, 0, ATAN2_TOLERANCE, 0},
+{2114, 3422194733u, 893873945u, 3217625051u, 0, ATAN2_TOLERANCE, 0},
+{2115, 3083885296u, 974543672u, 3174122414u, 0, ATAN2_TOLERANCE, 0},
+{2116, 1261940623u, 3402349985u, 1074065444u, 0, ATAN2_TOLERANCE, 0},
+{2117, 3400603081u, 3234396843u, 3217625060u, 0, ATAN2_TOLERANCE, 0},
+{2118, 3139250800u, 3079109479u, 3217681544u, 0, ATAN2_TOLERANCE, 0},
+{2119, 886201503u, 3272760705u, 1078530011u, 0, ATAN2_TOLERANCE, 0},
+{2120, 3297366026u, 1089966380u, 3217566187u, 0, ATAN2_TOLERANCE, 0},
+{2121, 1218488455u, 3309646450u, 1070221841u, 0, ATAN2_TOLERANCE, 0},
+{2122, 3040358923u, 3093401553u, 3225960144u, 0, ATAN2_TOLERANCE, 0},
+{2123, 1283938137u, 1196383822u, 1070135127u, 0, ATAN2_TOLERANCE, 0},
+{2124, 3182551696u, 3029982441u, 3217625078u, 0, ATAN2_TOLERANCE, 0},
+{2125, 1317098613u, 949986176u, 1070141403u, 0, ATAN2_TOLERANCE, 0},
+{2126, 3116209179u, 3303588342u, 3226013658u, 0, ATAN2_TOLERANCE, 0},
+{2127, 3239728775u, 927815421u, 3217625040u, 0, ATAN2_TOLERANCE, 0},
+{2128, 3207141672u, 933456504u, 3217624803u, 0, ATAN2_TOLERANCE, 0},
+{2129, 3154378805u, 905462392u, 3217623125u, 0, ATAN2_TOLERANCE, 0},
+{2130, 3069658155u, 1041452042u, 3092701021u, 0, ATAN2_TOLERANCE, 0},
+{2131, 3207056527u, 3384206601u, 3226013657u, 0, ATAN2_TOLERANCE, 0},
+{2132, 1284174954u, 3436881197u, 1076155477u, 0, ATAN2_TOLERANCE, 0},
+{2133, 3156081645u, 3308839704u, 3226013645u, 0, ATAN2_TOLERANCE, 0},
+{2134, 1063693032u, 976661408u, 1070134915u, 0, ATAN2_TOLERANCE, 0},
+{2135, 1102631663u, 3396951425u, 1078529987u, 0, ATAN2_TOLERANCE, 0},
+{2136, 968803479u, 992989712u, 1040845349u, 0, ATAN2_TOLERANCE, 0},
+{2137, 3273080388u, 3109405906u, 3217625062u, 0, ATAN2_TOLERANCE, 0},
+{2138, 1172529774u, 3294550127u, 1071163952u, 0, ATAN2_TOLERANCE, 0},
+{2139, 1306695905u, 1292690378u, 1067612994u, 0, ATAN2_TOLERANCE, 0},
+{2140, 3158855023u, 3151283866u, 3221473110u, 0, ATAN2_TOLERANCE, 0},
+{2141, 1165177679u, 3276237026u, 1070570911u, 0, ATAN2_TOLERANCE, 0},
+{2142, 3403009513u, 3381966453u, 3219069294u, 0, ATAN2_TOLERANCE, 0},
+{2143, 952348506u, 3377573987u, 1078530011u, 0, ATAN2_TOLERANCE, 0},
+{2144, 1222777442u, 1125769920u, 1070138615u, 0, ATAN2_TOLERANCE, 0},
+{2145, 1325324763u, 978336043u, 1070141403u, 0, ATAN2_TOLERANCE, 0},
+{2146, 3363524213u, 3202991311u, 3217625066u, 0, ATAN2_TOLERANCE, 0},
+{2147, 1158950321u, 1073578913u, 1070134395u, 0, ATAN2_TOLERANCE, 0},
+{2148, 903129873u, 3416864271u, 1078530011u, 0, ATAN2_TOLERANCE, 0},
+{2149, 3078339944u, 988173985u, 3154895797u, 0, ATAN2_TOLERANCE, 0},
+{2150, 1208345407u, 1254181270u, 1018252503u, 0, ATAN2_TOLERANCE, 0},
+{2151, 1258634105u, 1247426200u, 1066881297u, 0, ATAN2_TOLERANCE, 0},
+{2152, 1248478509u, 1287895126u, 1025057766u, 0, ATAN2_TOLERANCE, 0},
+{2153, 1153863988u, 3430539165u, 1078529909u, 0, ATAN2_TOLERANCE, 0},
+{2154, 1097120930u, 3221726305u, 1071376032u, 0, ATAN2_TOLERANCE, 0},
+{2155, 3469778622u, 1200179013u, 3217624714u, 0, ATAN2_TOLERANCE, 0},
+{2156, 1147712200u, 931865525u, 1070141402u, 0, ATAN2_TOLERANCE, 0},
+{2157, 1124721745u, 3058969650u, 1070141403u, 0, ATAN2_TOLERANCE, 0},
+{2158, 3261744304u, 1043806501u, 3217599423u, 0, ATAN2_TOLERANCE, 0},
+{2159, 3303160152u, 3075455322u, 3217625051u, 0, ATAN2_TOLERANCE, 0},
+{2160, 1315090496u, 3269683237u, 1070141404u, 0, ATAN2_TOLERANCE, 0},
+{2161, 1335399673u, 974138676u, 1070141403u, 0, ATAN2_TOLERANCE, 0},
+{2162, 1072458508u, 3372833993u, 1078529997u, 0, ATAN2_TOLERANCE, 0},
+{2163, 3252139741u, 1059615003u, 3217420395u, 0, ATAN2_TOLERANCE, 0},
+{2164, 3468519966u, 3113982619u, 3217625051u, 0, ATAN2_TOLERANCE, 0},
+{2165, 1006231203u, 897530770u, 1070140357u, 0, ATAN2_TOLERANCE, 0},
+{2166, 951554138u, 1001144381u, 1015571681u, 0, ATAN2_TOLERANCE, 0},
+{2167, 942046828u, 986341002u, 1020432919u, 0, ATAN2_TOLERANCE, 0},
+{2168, 3319723279u, 3414482416u, 3226011940u, 0, ATAN2_TOLERANCE, 0},
+{2169, 3255104167u, 928827688u, 3217625047u, 0, ATAN2_TOLERANCE, 0},
+{2170, 1155477903u, 3104812800u, 1070141403u, 0, ATAN2_TOLERANCE, 0},
+{2171, 3273889176u, 980486479u, 3217625003u, 0, ATAN2_TOLERANCE, 0},
+{2172, 3237813668u, 3441016803u, 3226013658u, 0, ATAN2_TOLERANCE, 0},
+{2173, 981908840u, 3314038398u, 1078530010u, 0, ATAN2_TOLERANCE, 0},
+{2174, 941187647u, 1107765599u, 898711988u, 0, ATAN2_TOLERANCE, 0},
+{2175, 1214223128u, 3225536822u, 1070141514u, 0, ATAN2_TOLERANCE, 0},
+{2176, 3422922584u, 1086391131u, 3217625049u, 0, ATAN2_TOLERANCE, 0},
+{2177, 1315857601u, 3487600045u, 1077976642u, 0, ATAN2_TOLERANCE, 0},
+{2178, 3453226030u, 3233768835u, 3217625051u, 0, ATAN2_TOLERANCE, 0},
+{2179, 1078359574u, 3199175230u, 1071065122u, 0, ATAN2_TOLERANCE, 0},
+{2180, 1029557624u, 3302959071u, 1078529883u, 0, ATAN2_TOLERANCE, 0},
+{2181, 1207675424u, 3042692550u, 1070141403u, 0, ATAN2_TOLERANCE, 0},
+{2182, 1028355074u, 3442294040u, 1078530011u, 0, ATAN2_TOLERANCE, 0},
+{2183, 1248421894u, 3367769132u, 1070983505u, 0, ATAN2_TOLERANCE, 0},
+{2184, 3353251994u, 1095517730u, 3217624111u, 0, ATAN2_TOLERANCE, 0},
+{2185, 876926659u, 3288089977u, 1078530011u, 0, ATAN2_TOLERANCE, 0},
+{2186, 1076752219u, 876236939u, 1070141402u, 0, ATAN2_TOLERANCE, 0},
+{2187, 1273395082u, 3031189261u, 1070141403u, 0, ATAN2_TOLERANCE, 0},
+{2188, 3385588183u, 3258252464u, 3217625278u, 0, ATAN2_TOLERANCE, 0},
+{2189, 3192315328u, 3289489214u, 3226012260u, 0, ATAN2_TOLERANCE, 0},
+{2190, 3441804648u, 3274638356u, 3217625059u, 0, ATAN2_TOLERANCE, 0},
+{2191, 3392827417u, 1277961150u, 3179965369u, 0, ATAN2_TOLERANCE, 0},
+{2192, 1161241793u, 1328003707u, 898352014u, 0, ATAN2_TOLERANCE, 0},
+{2193, 3034494183u, 3041579130u, 3223907672u, 0, ATAN2_TOLERANCE, 0},
+{2194, 1171318485u, 3374409104u, 1078487599u, 0, ATAN2_TOLERANCE, 0},
+{2195, 1001216371u, 3052357038u, 1070144229u, 0, ATAN2_TOLERANCE, 0},
+{2196, 912515889u, 1074635609u, 902689232u, 0, ATAN2_TOLERANCE, 0},
+{2197, 3391452505u, 897989232u, 3217625051u, 0, ATAN2_TOLERANCE, 0},
+{2198, 3249603369u, 3147662248u, 3217626873u, 0, ATAN2_TOLERANCE, 0},
+{2199, 3169816394u, 988430929u, 3217113000u, 0, ATAN2_TOLERANCE, 0},
+{2200, 3282212423u, 3174079140u, 3217626163u, 0, ATAN2_TOLERANCE, 0},
+{2201, 3352293320u, 3247843425u, 3217626530u, 0, ATAN2_TOLERANCE, 0},
+{2202, 3296358441u, 875645354u, 3217625051u, 0, ATAN2_TOLERANCE, 0},
+{2203, 1197828352u, 3245614728u, 1070143582u, 0, ATAN2_TOLERANCE, 0},
+{2204, 3340510371u, 914930263u, 3217625051u, 0, ATAN2_TOLERANCE, 0},
+{2205, 1127109339u, 3368125489u, 1078528166u, 0, ATAN2_TOLERANCE, 0},
+{2206, 3192887808u, 3191848339u, 3222552959u, 0, ATAN2_TOLERANCE, 0},
+{2207, 3237183876u, 3179379969u, 3217694749u, 0, ATAN2_TOLERANCE, 0},
+{2208, 939285924u, 3056079386u, 1070838127u, 0, ATAN2_TOLERANCE, 0},
+{2209, 944050180u, 3452557879u, 1078530011u, 0, ATAN2_TOLERANCE, 0},
+{2210, 3058135703u, 3090284601u, 3225720409u, 0, ATAN2_TOLERANCE, 0},
+{2211, 3480592662u, 3261728191u, 3217625051u, 0, ATAN2_TOLERANCE, 0},
+{2212, 3061939312u, 3274418540u, 3226013659u, 0, ATAN2_TOLERANCE, 0},
+{2213, 1155775526u, 1255814444u, 965056178u, 0, ATAN2_TOLERANCE, 0},
+{2214, 1234491880u, 3408568717u, 1078074444u, 0, ATAN2_TOLERANCE, 0},
+
+// AUTOMATICALLY GENERATED VECTORS STOP
+
+};
+
+#endif // CYGONCE_LIBM_ATAN2_H multiple inclusion protection
+
+// EOF atan2f.h
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/atanf.c b/ecos/packages/language/c/libm/current/tests/vectors/atanf.c
new file mode 100644
index 0000000..e67cc79
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/atanf.c
@@ -0,0 +1,115 @@
+//===========================================================================
+//
+// atanf.c
+//
+// Test of atanf() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// Declarations for test system:
+//
+// TESTCASE_TYPE=CYG_TEST_MODULE
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include <cyg/infra/testcase.h> // Test infrastructure
+#include <math.h> // Header for this package
+#include <sys/ieeefp.h> // Cyg_libm_ieee_double_shape_type
+#include "vectors/vector_support_float.h"// extra support for math tests
+
+#include "vectors/atanf.h"
+
+// FUNCTIONS
+
+static void
+test( CYG_ADDRWORD data )
+{
+ cyg_ucount32 vec_size;
+ cyg_bool ret;
+
+ vec_size = sizeof(atanf_vec) / sizeof(Cyg_libm_test_float_vec_t);
+ ret = doTestVecFloat( (CYG_ADDRWORD) &atanf, CYG_LIBM_TEST_VEC_FLOAT,
+ CYG_LIBM_TEST_VEC_NONE, CYG_LIBM_TEST_VEC_FLOAT,
+ &atanf_vec[0], vec_size );
+
+ if (ret==true)
+ {
+ CYG_TEST_PASS("atanf() is stable");
+ } // if
+ else
+ {
+ CYG_TEST_FAIL("atanf() failed tests");
+ } // else
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for Math "
+ "library atanf() function");
+} // test()
+
+
+int
+main(int argc, char *argv[])
+{
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for Math library "
+ "atanf() function");
+
+ START_TEST( test );
+
+ CYG_TEST_PASS_FINISH("Testing is not applicable to this configuration");
+
+} // main()
+
+
+// EOF atanf.c
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/atanf.h b/ecos/packages/language/c/libm/current/tests/vectors/atanf.h
new file mode 100644
index 0000000..7d183d5
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/atanf.h
@@ -0,0 +1,1235 @@
+#ifndef CYGONCE_LIBM_ATANF_H
+#define CYGONCE_LIBM_ATANF_H
+//===========================================================================
+//
+// atanf.h
+//
+// Test vectors for testing of atanf() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage: #include "vectors/atanf.h"
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include "vectors/vector_support_float.h"// extra support for math tests
+
+#define ATANF_TOLERANCE 1.0E-04
+
+static const Cyg_libm_test_float_vec_t atanf_vec[] = {
+
+// AUTOMATICALLY GENERATED VECTORS START
+
+{0, 3214514586u, 0u, 3210757463u, 0, ATANF_TOLERANCE, 0},
+{1, 3214430700u, 0u, 3210688365u, 0, ATANF_TOLERANCE, 0},
+{2, 3214346813u, 0u, 3210618582u, 0, ATANF_TOLERANCE, 0},
+{3, 3214262927u, 0u, 3210548107u, 0, ATANF_TOLERANCE, 0},
+{4, 3214179041u, 0u, 3210476934u, 0, ATANF_TOLERANCE, 0},
+{5, 3214095155u, 0u, 3210405052u, 0, ATANF_TOLERANCE, 0},
+{6, 3214011269u, 0u, 3210332456u, 0, ATANF_TOLERANCE, 0},
+{7, 3213927383u, 0u, 3210259136u, 0, ATANF_TOLERANCE, 0},
+{8, 3213843497u, 0u, 3210185084u, 0, ATANF_TOLERANCE, 0},
+{9, 3213759611u, 0u, 3210110293u, 0, ATANF_TOLERANCE, 0},
+{10, 3213675725u, 0u, 3210034755u, 0, ATANF_TOLERANCE, 0},
+{11, 3213591839u, 0u, 3209958461u, 0, ATANF_TOLERANCE, 0},
+{12, 3213507953u, 0u, 3209881403u, 0, ATANF_TOLERANCE, 0},
+{13, 3213424067u, 0u, 3209803572u, 0, ATANF_TOLERANCE, 0},
+{14, 3213340180u, 0u, 3209724961u, 0, ATANF_TOLERANCE, 0},
+{15, 3213256294u, 0u, 3209645562u, 0, ATANF_TOLERANCE, 0},
+{16, 3213172408u, 0u, 3209565365u, 0, ATANF_TOLERANCE, 0},
+{17, 3213088522u, 0u, 3209484364u, 0, ATANF_TOLERANCE, 0},
+{18, 3213004636u, 0u, 3209402548u, 0, ATANF_TOLERANCE, 0},
+{19, 3212920750u, 0u, 3209319911u, 0, ATANF_TOLERANCE, 0},
+{20, 3212836864u, 0u, 3209236443u, 0, ATANF_TOLERANCE, 0},
+{21, 3212669092u, 0u, 3209152136u, 0, ATANF_TOLERANCE, 0},
+{22, 3212501320u, 0u, 3209066982u, 0, ATANF_TOLERANCE, 0},
+{23, 3212333548u, 0u, 3208980972u, 0, ATANF_TOLERANCE, 0},
+{24, 3212165775u, 0u, 3208894098u, 0, ATANF_TOLERANCE, 0},
+{25, 3211998003u, 0u, 3208806352u, 0, ATANF_TOLERANCE, 0},
+{26, 3211830231u, 0u, 3208717725u, 0, ATANF_TOLERANCE, 0},
+{27, 3211662459u, 0u, 3208628209u, 0, ATANF_TOLERANCE, 0},
+{28, 3211494687u, 0u, 3208537796u, 0, ATANF_TOLERANCE, 0},
+{29, 3211326915u, 0u, 3208446478u, 0, ATANF_TOLERANCE, 0},
+{30, 3211159142u, 0u, 3208354245u, 0, ATANF_TOLERANCE, 0},
+{31, 3210991370u, 0u, 3208261091u, 0, ATANF_TOLERANCE, 0},
+{32, 3210823598u, 0u, 3208167007u, 0, ATANF_TOLERANCE, 0},
+{33, 3210655826u, 0u, 3208071986u, 0, ATANF_TOLERANCE, 0},
+{34, 3210488054u, 0u, 3207976018u, 0, ATANF_TOLERANCE, 0},
+{35, 3210320282u, 0u, 3207879097u, 0, ATANF_TOLERANCE, 0},
+{36, 3210152509u, 0u, 3207781215u, 0, ATANF_TOLERANCE, 0},
+{37, 3209984737u, 0u, 3207682363u, 0, ATANF_TOLERANCE, 0},
+{38, 3209816965u, 0u, 3207582536u, 0, ATANF_TOLERANCE, 0},
+{39, 3209649193u, 0u, 3207481725u, 0, ATANF_TOLERANCE, 0},
+{40, 3209481421u, 0u, 3207379923u, 0, ATANF_TOLERANCE, 0},
+{41, 3209313649u, 0u, 3207277122u, 0, ATANF_TOLERANCE, 0},
+{42, 3209145876u, 0u, 3207173317u, 0, ATANF_TOLERANCE, 0},
+{43, 3208978104u, 0u, 3207068500u, 0, ATANF_TOLERANCE, 0},
+{44, 3208810332u, 0u, 3206962665u, 0, ATANF_TOLERANCE, 0},
+{45, 3208642560u, 0u, 3206855805u, 0, ATANF_TOLERANCE, 0},
+{46, 3208474788u, 0u, 3206747915u, 0, ATANF_TOLERANCE, 0},
+{47, 3208307016u, 0u, 3206638987u, 0, ATANF_TOLERANCE, 0},
+{48, 3208139244u, 0u, 3206529018u, 0, ATANF_TOLERANCE, 0},
+{49, 3207971471u, 0u, 3206418000u, 0, ATANF_TOLERANCE, 0},
+{50, 3207803699u, 0u, 3206305929u, 0, ATANF_TOLERANCE, 0},
+{51, 3207635927u, 0u, 3206192801u, 0, ATANF_TOLERANCE, 0},
+{52, 3207468155u, 0u, 3206078610u, 0, ATANF_TOLERANCE, 0},
+{53, 3207300383u, 0u, 3205963352u, 0, ATANF_TOLERANCE, 0},
+{54, 3207132611u, 0u, 3205847023u, 0, ATANF_TOLERANCE, 0},
+{55, 3206964838u, 0u, 3205729619u, 0, ATANF_TOLERANCE, 0},
+{56, 3206797066u, 0u, 3205611138u, 0, ATANF_TOLERANCE, 0},
+{57, 3206629294u, 0u, 3205491576u, 0, ATANF_TOLERANCE, 0},
+{58, 3206461522u, 0u, 3205370931u, 0, ATANF_TOLERANCE, 0},
+{59, 3206293750u, 0u, 3205249201u, 0, ATANF_TOLERANCE, 0},
+{60, 3206125978u, 0u, 3205126383u, 0, ATANF_TOLERANCE, 0},
+{61, 3205958205u, 0u, 3205002476u, 0, ATANF_TOLERANCE, 0},
+{62, 3205790433u, 0u, 3204877480u, 0, ATANF_TOLERANCE, 0},
+{63, 3205622661u, 0u, 3204751396u, 0, ATANF_TOLERANCE, 0},
+{64, 3205454889u, 0u, 3204624221u, 0, ATANF_TOLERANCE, 0},
+{65, 3205287117u, 0u, 3204495957u, 0, ATANF_TOLERANCE, 0},
+{66, 3205119345u, 0u, 3204284955u, 0, ATANF_TOLERANCE, 0},
+{67, 3204951572u, 0u, 3204024080u, 0, ATANF_TOLERANCE, 0},
+{68, 3204783800u, 0u, 3203761037u, 0, ATANF_TOLERANCE, 0},
+{69, 3204616028u, 0u, 3203495832u, 0, ATANF_TOLERANCE, 0},
+{70, 3204448256u, 0u, 3203228473u, 0, ATANF_TOLERANCE, 0},
+{71, 3204112712u, 0u, 3202958965u, 0, ATANF_TOLERANCE, 0},
+{72, 3203777167u, 0u, 3202687318u, 0, ATANF_TOLERANCE, 0},
+{73, 3203441623u, 0u, 3202413545u, 0, ATANF_TOLERANCE, 0},
+{74, 3203106079u, 0u, 3202137655u, 0, ATANF_TOLERANCE, 0},
+{75, 3202770534u, 0u, 3201859663u, 0, ATANF_TOLERANCE, 0},
+{76, 3202434990u, 0u, 3201579583u, 0, ATANF_TOLERANCE, 0},
+{77, 3202099446u, 0u, 3201297430u, 0, ATANF_TOLERANCE, 0},
+{78, 3201763901u, 0u, 3201013221u, 0, ATANF_TOLERANCE, 0},
+{79, 3201428357u, 0u, 3200726976u, 0, ATANF_TOLERANCE, 0},
+{80, 3201092813u, 0u, 3200438715u, 0, ATANF_TOLERANCE, 0},
+{81, 3200757268u, 0u, 3200148459u, 0, ATANF_TOLERANCE, 0},
+{82, 3200421724u, 0u, 3199856232u, 0, ATANF_TOLERANCE, 0},
+{83, 3200086180u, 0u, 3199562057u, 0, ATANF_TOLERANCE, 0},
+{84, 3199750636u, 0u, 3199265962u, 0, ATANF_TOLERANCE, 0},
+{85, 3199415091u, 0u, 3198967972u, 0, ATANF_TOLERANCE, 0},
+{86, 3199079547u, 0u, 3198668120u, 0, ATANF_TOLERANCE, 0},
+{87, 3198744003u, 0u, 3198366433u, 0, ATANF_TOLERANCE, 0},
+{88, 3198408458u, 0u, 3198062946u, 0, ATANF_TOLERANCE, 0},
+{89, 3198072914u, 0u, 3197757693u, 0, ATANF_TOLERANCE, 0},
+{90, 3197737370u, 0u, 3197450707u, 0, ATANF_TOLERANCE, 0},
+{91, 3197401825u, 0u, 3197142027u, 0, ATANF_TOLERANCE, 0},
+{92, 3197066281u, 0u, 3196831691u, 0, ATANF_TOLERANCE, 0},
+{93, 3196730737u, 0u, 3196519741u, 0, ATANF_TOLERANCE, 0},
+{94, 3196395192u, 0u, 3196206216u, 0, ATANF_TOLERANCE, 0},
+{95, 3196059648u, 0u, 3195722672u, 0, ATANF_TOLERANCE, 0},
+{96, 3195388559u, 0u, 3195089588u, 0, ATANF_TOLERANCE, 0},
+{97, 3194717471u, 0u, 3194453624u, 0, ATANF_TOLERANCE, 0},
+{98, 3194046382u, 0u, 3193814877u, 0, ATANF_TOLERANCE, 0},
+{99, 3193375293u, 0u, 3193173443u, 0, ATANF_TOLERANCE, 0},
+{100, 3192704205u, 0u, 3192529424u, 0, ATANF_TOLERANCE, 0},
+{101, 3192033116u, 0u, 3191882923u, 0, ATANF_TOLERANCE, 0},
+{102, 3191362028u, 0u, 3191234047u, 0, ATANF_TOLERANCE, 0},
+{103, 3190690939u, 0u, 3190582904u, 0, ATANF_TOLERANCE, 0},
+{104, 3190019850u, 0u, 3189929606u, 0, ATANF_TOLERANCE, 0},
+{105, 3189348762u, 0u, 3189274267u, 0, ATANF_TOLERANCE, 0},
+{106, 3188677673u, 0u, 3188617003u, 0, ATANF_TOLERANCE, 0},
+{107, 3188006584u, 0u, 3187957930u, 0, ATANF_TOLERANCE, 0},
+{108, 3186999951u, 0u, 3186923303u, 0, ATANF_TOLERANCE, 0},
+{109, 3185657774u, 0u, 3185598655u, 0, ATANF_TOLERANCE, 0},
+{110, 3184315597u, 0u, 3184271124u, 0, ATANF_TOLERANCE, 0},
+{111, 3182973420u, 0u, 3182940963u, 0, ATANF_TOLERANCE, 0},
+{112, 3181631242u, 0u, 3181608423u, 0, ATANF_TOLERANCE, 0},
+{113, 3180289065u, 0u, 3180273764u, 0, ATANF_TOLERANCE, 0},
+{114, 3178611343u, 0u, 3178592058u, 0, ATANF_TOLERANCE, 0},
+{115, 3175926989u, 0u, 3175915821u, 0, ATANF_TOLERANCE, 0},
+{116, 3173242634u, 0u, 3173236913u, 0, ATANF_TOLERANCE, 0},
+{117, 3170222735u, 0u, 3170217906u, 0, ATANF_TOLERANCE, 0},
+{118, 3164854026u, 0u, 3164852594u, 0, ATANF_TOLERANCE, 0},
+{119, 3156465418u, 0u, 3156465060u, 0, ATANF_TOLERANCE, 0},
+{120, 646742016u, 0u, 646742016u, 0, ATANF_TOLERANCE, 0},
+{121, 1008981770u, 0u, 1008981412u, 0, ATANF_TOLERANCE, 0},
+{122, 1017370378u, 0u, 1017368946u, 0, ATANF_TOLERANCE, 0},
+{123, 1022739087u, 0u, 1022734258u, 0, ATANF_TOLERANCE, 0},
+{124, 1025758986u, 0u, 1025753265u, 0, ATANF_TOLERANCE, 0},
+{125, 1028443341u, 0u, 1028432173u, 0, ATANF_TOLERANCE, 0},
+{126, 1031127695u, 0u, 1031108410u, 0, ATANF_TOLERANCE, 0},
+{127, 1032805417u, 0u, 1032790116u, 0, ATANF_TOLERANCE, 0},
+{128, 1034147594u, 0u, 1034124775u, 0, ATANF_TOLERANCE, 0},
+{129, 1035489772u, 0u, 1035457315u, 0, ATANF_TOLERANCE, 0},
+{130, 1036831949u, 0u, 1036787476u, 0, ATANF_TOLERANCE, 0},
+{131, 1038174126u, 0u, 1038115007u, 0, ATANF_TOLERANCE, 0},
+{132, 1039516303u, 0u, 1039439655u, 0, ATANF_TOLERANCE, 0},
+{133, 1040522936u, 0u, 1040474282u, 0, ATANF_TOLERANCE, 0},
+{134, 1041194025u, 0u, 1041133355u, 0, ATANF_TOLERANCE, 0},
+{135, 1041865114u, 0u, 1041790619u, 0, ATANF_TOLERANCE, 0},
+{136, 1042536202u, 0u, 1042445958u, 0, ATANF_TOLERANCE, 0},
+{137, 1043207291u, 0u, 1043099256u, 0, ATANF_TOLERANCE, 0},
+{138, 1043878380u, 0u, 1043750399u, 0, ATANF_TOLERANCE, 0},
+{139, 1044549468u, 0u, 1044399275u, 0, ATANF_TOLERANCE, 0},
+{140, 1045220557u, 0u, 1045045776u, 0, ATANF_TOLERANCE, 0},
+{141, 1045891645u, 0u, 1045689795u, 0, ATANF_TOLERANCE, 0},
+{142, 1046562734u, 0u, 1046331229u, 0, ATANF_TOLERANCE, 0},
+{143, 1047233823u, 0u, 1046969976u, 0, ATANF_TOLERANCE, 0},
+{144, 1047904911u, 0u, 1047605940u, 0, ATANF_TOLERANCE, 0},
+{145, 1048576000u, 0u, 1048239024u, 0, ATANF_TOLERANCE, 0},
+{146, 1048911544u, 0u, 1048722568u, 0, ATANF_TOLERANCE, 0},
+{147, 1049247089u, 0u, 1049036093u, 0, ATANF_TOLERANCE, 0},
+{148, 1049582633u, 0u, 1049348043u, 0, ATANF_TOLERANCE, 0},
+{149, 1049918177u, 0u, 1049658379u, 0, ATANF_TOLERANCE, 0},
+{150, 1050253722u, 0u, 1049967059u, 0, ATANF_TOLERANCE, 0},
+{151, 1050589266u, 0u, 1050274045u, 0, ATANF_TOLERANCE, 0},
+{152, 1050924810u, 0u, 1050579298u, 0, ATANF_TOLERANCE, 0},
+{153, 1051260355u, 0u, 1050882785u, 0, ATANF_TOLERANCE, 0},
+{154, 1051595899u, 0u, 1051184472u, 0, ATANF_TOLERANCE, 0},
+{155, 1051931443u, 0u, 1051484324u, 0, ATANF_TOLERANCE, 0},
+{156, 1052266988u, 0u, 1051782314u, 0, ATANF_TOLERANCE, 0},
+{157, 1052602532u, 0u, 1052078409u, 0, ATANF_TOLERANCE, 0},
+{158, 1052938076u, 0u, 1052372584u, 0, ATANF_TOLERANCE, 0},
+{159, 1053273620u, 0u, 1052664811u, 0, ATANF_TOLERANCE, 0},
+{160, 1053609165u, 0u, 1052955067u, 0, ATANF_TOLERANCE, 0},
+{161, 1053944709u, 0u, 1053243328u, 0, ATANF_TOLERANCE, 0},
+{162, 1054280253u, 0u, 1053529573u, 0, ATANF_TOLERANCE, 0},
+{163, 1054615798u, 0u, 1053813782u, 0, ATANF_TOLERANCE, 0},
+{164, 1054951342u, 0u, 1054095935u, 0, ATANF_TOLERANCE, 0},
+{165, 1055286886u, 0u, 1054376015u, 0, ATANF_TOLERANCE, 0},
+{166, 1055622431u, 0u, 1054654007u, 0, ATANF_TOLERANCE, 0},
+{167, 1055957975u, 0u, 1054929897u, 0, ATANF_TOLERANCE, 0},
+{168, 1056293519u, 0u, 1055203670u, 0, ATANF_TOLERANCE, 0},
+{169, 1056629064u, 0u, 1055475317u, 0, ATANF_TOLERANCE, 0},
+{170, 1056964608u, 0u, 1055744825u, 0, ATANF_TOLERANCE, 0},
+{171, 1057132380u, 0u, 1056012184u, 0, ATANF_TOLERANCE, 0},
+{172, 1057300152u, 0u, 1056277389u, 0, ATANF_TOLERANCE, 0},
+{173, 1057467924u, 0u, 1056540432u, 0, ATANF_TOLERANCE, 0},
+{174, 1057635697u, 0u, 1056801307u, 0, ATANF_TOLERANCE, 0},
+{175, 1057803469u, 0u, 1057012309u, 0, ATANF_TOLERANCE, 0},
+{176, 1057971241u, 0u, 1057140573u, 0, ATANF_TOLERANCE, 0},
+{177, 1058139013u, 0u, 1057267748u, 0, ATANF_TOLERANCE, 0},
+{178, 1058306785u, 0u, 1057393832u, 0, ATANF_TOLERANCE, 0},
+{179, 1058474557u, 0u, 1057518828u, 0, ATANF_TOLERANCE, 0},
+{180, 1058642330u, 0u, 1057642735u, 0, ATANF_TOLERANCE, 0},
+{181, 1058810102u, 0u, 1057765553u, 0, ATANF_TOLERANCE, 0},
+{182, 1058977874u, 0u, 1057887283u, 0, ATANF_TOLERANCE, 0},
+{183, 1059145646u, 0u, 1058007928u, 0, ATANF_TOLERANCE, 0},
+{184, 1059313418u, 0u, 1058127490u, 0, ATANF_TOLERANCE, 0},
+{185, 1059481190u, 0u, 1058245971u, 0, ATANF_TOLERANCE, 0},
+{186, 1059648963u, 0u, 1058363375u, 0, ATANF_TOLERANCE, 0},
+{187, 1059816735u, 0u, 1058479704u, 0, ATANF_TOLERANCE, 0},
+{188, 1059984507u, 0u, 1058594962u, 0, ATANF_TOLERANCE, 0},
+{189, 1060152279u, 0u, 1058709153u, 0, ATANF_TOLERANCE, 0},
+{190, 1060320051u, 0u, 1058822281u, 0, ATANF_TOLERANCE, 0},
+{191, 1060487823u, 0u, 1058934352u, 0, ATANF_TOLERANCE, 0},
+{192, 1060655596u, 0u, 1059045370u, 0, ATANF_TOLERANCE, 0},
+{193, 1060823368u, 0u, 1059155339u, 0, ATANF_TOLERANCE, 0},
+{194, 1060991140u, 0u, 1059264267u, 0, ATANF_TOLERANCE, 0},
+{195, 1061158912u, 0u, 1059372157u, 0, ATANF_TOLERANCE, 0},
+{196, 1061326684u, 0u, 1059479017u, 0, ATANF_TOLERANCE, 0},
+{197, 1061494456u, 0u, 1059584852u, 0, ATANF_TOLERANCE, 0},
+{198, 1061662228u, 0u, 1059689669u, 0, ATANF_TOLERANCE, 0},
+{199, 1061830001u, 0u, 1059793474u, 0, ATANF_TOLERANCE, 0},
+{200, 1061997773u, 0u, 1059896275u, 0, ATANF_TOLERANCE, 0},
+{201, 1062165545u, 0u, 1059998077u, 0, ATANF_TOLERANCE, 0},
+{202, 1062333317u, 0u, 1060098888u, 0, ATANF_TOLERANCE, 0},
+{203, 1062501089u, 0u, 1060198715u, 0, ATANF_TOLERANCE, 0},
+{204, 1062668861u, 0u, 1060297567u, 0, ATANF_TOLERANCE, 0},
+{205, 1062836634u, 0u, 1060395449u, 0, ATANF_TOLERANCE, 0},
+{206, 1063004406u, 0u, 1060492370u, 0, ATANF_TOLERANCE, 0},
+{207, 1063172178u, 0u, 1060588338u, 0, ATANF_TOLERANCE, 0},
+{208, 1063339950u, 0u, 1060683359u, 0, ATANF_TOLERANCE, 0},
+{209, 1063507722u, 0u, 1060777443u, 0, ATANF_TOLERANCE, 0},
+{210, 1063675494u, 0u, 1060870597u, 0, ATANF_TOLERANCE, 0},
+{211, 1063843267u, 0u, 1060962830u, 0, ATANF_TOLERANCE, 0},
+{212, 1064011039u, 0u, 1061054148u, 0, ATANF_TOLERANCE, 0},
+{213, 1064178811u, 0u, 1061144561u, 0, ATANF_TOLERANCE, 0},
+{214, 1064346583u, 0u, 1061234077u, 0, ATANF_TOLERANCE, 0},
+{215, 1064514355u, 0u, 1061322704u, 0, ATANF_TOLERANCE, 0},
+{216, 1064682127u, 0u, 1061410450u, 0, ATANF_TOLERANCE, 0},
+{217, 1064849900u, 0u, 1061497324u, 0, ATANF_TOLERANCE, 0},
+{218, 1065017672u, 0u, 1061583334u, 0, ATANF_TOLERANCE, 0},
+{219, 1065185444u, 0u, 1061668488u, 0, ATANF_TOLERANCE, 0},
+{220, 1065353216u, 0u, 1061752795u, 0, ATANF_TOLERANCE, 0},
+{221, 1065437102u, 0u, 1061836263u, 0, ATANF_TOLERANCE, 0},
+{222, 1065520988u, 0u, 1061918900u, 0, ATANF_TOLERANCE, 0},
+{223, 1065604874u, 0u, 1062000716u, 0, ATANF_TOLERANCE, 0},
+{224, 1065688760u, 0u, 1062081717u, 0, ATANF_TOLERANCE, 0},
+{225, 1065772646u, 0u, 1062161914u, 0, ATANF_TOLERANCE, 0},
+{226, 1065856532u, 0u, 1062241313u, 0, ATANF_TOLERANCE, 0},
+{227, 1065940419u, 0u, 1062319924u, 0, ATANF_TOLERANCE, 0},
+{228, 1066024305u, 0u, 1062397755u, 0, ATANF_TOLERANCE, 0},
+{229, 1066108191u, 0u, 1062474813u, 0, ATANF_TOLERANCE, 0},
+{230, 1066192077u, 0u, 1062551107u, 0, ATANF_TOLERANCE, 0},
+{231, 1066275963u, 0u, 1062626645u, 0, ATANF_TOLERANCE, 0},
+{232, 1066359849u, 0u, 1062701436u, 0, ATANF_TOLERANCE, 0},
+{233, 1066443735u, 0u, 1062775488u, 0, ATANF_TOLERANCE, 0},
+{234, 1066527621u, 0u, 1062848808u, 0, ATANF_TOLERANCE, 0},
+{235, 1066611507u, 0u, 1062921404u, 0, ATANF_TOLERANCE, 0},
+{236, 1066695393u, 0u, 1062993286u, 0, ATANF_TOLERANCE, 0},
+{237, 1066779279u, 0u, 1063064459u, 0, ATANF_TOLERANCE, 0},
+{238, 1066863165u, 0u, 1063134934u, 0, ATANF_TOLERANCE, 0},
+{239, 1066947052u, 0u, 1063204717u, 0, ATANF_TOLERANCE, 0},
+{240, 3234402267u, 0u, 3216301067u, 0, ATANF_TOLERANCE, 0},
+{241, 3231108068u, 0u, 3215870954u, 0, ATANF_TOLERANCE, 0},
+{242, 3226013659u, 0u, 3215039941u, 0, ATANF_TOLERANCE, 0},
+{243, 3217625051u, 0u, 3212869452u, 0, ATANF_TOLERANCE, 0},
+{244, 0u, 0u, 0u, 0, ATANF_TOLERANCE, 0},
+{245, 1070141403u, 0u, 1065385804u, 0, ATANF_TOLERANCE, 0},
+{246, 1078530011u, 0u, 1067556293u, 0, ATANF_TOLERANCE, 0},
+{247, 1083624420u, 0u, 1068387306u, 0, ATANF_TOLERANCE, 0},
+{248, 3253731328u, 0u, 3217345534u, 0, ATANF_TOLERANCE, 0},
+{249, 3252840038u, 0u, 3217328757u, 0, ATANF_TOLERANCE, 0},
+{250, 3251948749u, 0u, 3217309838u, 0, ATANF_TOLERANCE, 0},
+{251, 3251057459u, 0u, 3217288340u, 0, ATANF_TOLERANCE, 0},
+{252, 3250166170u, 0u, 3217263696u, 0, ATANF_TOLERANCE, 0},
+{253, 3249274880u, 0u, 3217235164u, 0, ATANF_TOLERANCE, 0},
+{254, 3248383590u, 0u, 3217201743u, 0, ATANF_TOLERANCE, 0},
+{255, 3247492301u, 0u, 3217162062u, 0, ATANF_TOLERANCE, 0},
+{256, 3246601011u, 0u, 3217114183u, 0, ATANF_TOLERANCE, 0},
+{257, 3245028147u, 0u, 3217055275u, 0, ATANF_TOLERANCE, 0},
+{258, 3243245568u, 0u, 3216981041u, 0, ATANF_TOLERANCE, 0},
+{259, 3241462989u, 0u, 3216884625u, 0, ATANF_TOLERANCE, 0},
+{260, 3239680410u, 0u, 3216754377u, 0, ATANF_TOLERANCE, 0},
+{261, 3237792973u, 0u, 3216568819u, 0, ATANF_TOLERANCE, 0},
+{262, 3234227814u, 0u, 3216283602u, 0, ATANF_TOLERANCE, 0},
+{263, 3230662656u, 0u, 3215790723u, 0, ATANF_TOLERANCE, 0},
+{264, 3224580915u, 0u, 3214747557u, 0, ATANF_TOLERANCE, 0},
+{265, 3213675725u, 0u, 3210034755u, 0, ATANF_TOLERANCE, 0},
+{266, 1058642330u, 0u, 1057642735u, 0, ATANF_TOLERANCE, 0},
+{267, 1075000115u, 0u, 1066701005u, 0, ATANF_TOLERANCE, 0},
+{268, 1082130432u, 0u, 1068086373u, 0, ATANF_TOLERANCE, 0},
+{269, 1085695590u, 0u, 1068684543u, 0, ATANF_TOLERANCE, 0},
+{270, 1089260749u, 0u, 1069014633u, 0, ATANF_TOLERANCE, 0},
+{271, 1091672474u, 0u, 1069223262u, 0, ATANF_TOLERANCE, 0},
+{272, 1093455053u, 0u, 1069366888u, 0, ATANF_TOLERANCE, 0},
+{273, 1095237632u, 0u, 1069471740u, 0, ATANF_TOLERANCE, 0},
+{274, 1097020211u, 0u, 1069551629u, 0, ATANF_TOLERANCE, 0},
+{275, 1098802790u, 0u, 1069614511u, 0, ATANF_TOLERANCE, 0},
+{276, 1099746509u, 0u, 1069665289u, 0, ATANF_TOLERANCE, 0},
+{277, 1100637798u, 0u, 1069707148u, 0, ATANF_TOLERANCE, 0},
+{278, 1101529088u, 0u, 1069742247u, 0, ATANF_TOLERANCE, 0},
+{279, 1102420378u, 0u, 1069772099u, 0, ATANF_TOLERANCE, 0},
+{280, 1103311667u, 0u, 1069797799u, 0, ATANF_TOLERANCE, 0},
+{281, 1104202957u, 0u, 1069820157u, 0, ATANF_TOLERANCE, 0},
+{282, 1105094246u, 0u, 1069839784u, 0, ATANF_TOLERANCE, 0},
+{283, 1105985536u, 0u, 1069857152u, 0, ATANF_TOLERANCE, 0},
+{284, 1107800421u, 1203999711u, 1069894192u, 0, ATANF_TOLERANCE, 0},
+{285, 3196650934u, 896005582u, 3196445316u, 0, ATANF_TOLERANCE, 0},
+{286, 3368700125u, 3308232444u, 3217625030u, 0, ATANF_TOLERANCE, 0},
+{287, 1224242132u, 3061363425u, 1070141386u, 0, ATANF_TOLERANCE, 0},
+{288, 3221027117u, 1284201705u, 3213695643u, 0, ATANF_TOLERANCE, 0},
+{289, 1198712763u, 919636942u, 1070141268u, 0, ATANF_TOLERANCE, 0},
+{290, 3159309973u, 852521077u, 3159309249u, 0, ATANF_TOLERANCE, 0},
+{291, 954173073u, 850531830u, 954173073u, 0, ATANF_TOLERANCE, 0},
+{292, 3090780435u, 1035260608u, 3090780435u, 0, ATANF_TOLERANCE, 0},
+{293, 966554515u, 3234538174u, 966554515u, 0, ATANF_TOLERANCE, 0},
+{294, 1312607135u, 1194999402u, 1070141403u, 0, ATANF_TOLERANCE, 0},
+{295, 1166191415u, 1018661564u, 1070139396u, 0, ATANF_TOLERANCE, 0},
+{296, 3111900019u, 1130472166u, 3111900018u, 0, ATANF_TOLERANCE, 0},
+{297, 1234419246u, 2984575812u, 1070141396u, 0, ATANF_TOLERANCE, 0},
+{298, 1302107128u, 3370647675u, 1070141403u, 0, ATANF_TOLERANCE, 0},
+{299, 1052801068u, 3039122570u, 1052252701u, 0, ATANF_TOLERANCE, 0},
+{300, 1060849628u, 3081357692u, 1059172458u, 0, ATANF_TOLERANCE, 0},
+{301, 3484320003u, 3033957825u, 3217625051u, 0, ATANF_TOLERANCE, 0},
+{302, 3181522772u, 3305392896u, 3181500636u, 0, ATANF_TOLERANCE, 0},
+{303, 882596369u, 1256676590u, 882596369u, 0, ATANF_TOLERANCE, 0},
+{304, 1167223673u, 846102364u, 1070139612u, 0, ATANF_TOLERANCE, 0},
+{305, 968192794u, 878547432u, 968192794u, 0, ATANF_TOLERANCE, 0},
+{306, 3122346862u, 1111584337u, 3122346861u, 0, ATANF_TOLERANCE, 0},
+{307, 1052361612u, 1280025214u, 1051866006u, 0, ATANF_TOLERANCE, 0},
+{308, 906701409u, 2968301825u, 906701409u, 0, ATANF_TOLERANCE, 0},
+{309, 3471653172u, 1154138102u, 3217625051u, 0, ATANF_TOLERANCE, 0},
+{310, 3231467496u, 934336592u, 3215930822u, 0, ATANF_TOLERANCE, 0},
+{311, 1341514497u, 3466051188u, 1070141403u, 0, ATANF_TOLERANCE, 0},
+{312, 1272351391u, 3373485062u, 1070141402u, 0, ATANF_TOLERANCE, 0},
+{313, 3319724992u, 3354615790u, 3217623875u, 0, ATANF_TOLERANCE, 0},
+{314, 917622040u, 1334966485u, 917622040u, 0, ATANF_TOLERANCE, 0},
+{315, 940236348u, 3304072663u, 940236348u, 0, ATANF_TOLERANCE, 0},
+{316, 3251541546u, 3174764041u, 3217300367u, 0, ATANF_TOLERANCE, 0},
+{317, 3099843889u, 3355962282u, 3099843889u, 0, ATANF_TOLERANCE, 0},
+{318, 3110358400u, 851145088u, 3110358400u, 0, ATANF_TOLERANCE, 0},
+{319, 3371863479u, 1014861921u, 3217625034u, 0, ATANF_TOLERANCE, 0},
+{320, 3204069187u, 966573255u, 3202923849u, 0, ATANF_TOLERANCE, 0},
+{321, 1306460502u, 903489435u, 1070141403u, 0, ATANF_TOLERANCE, 0},
+{322, 1197542187u, 3024598921u, 1070141257u, 0, ATANF_TOLERANCE, 0},
+{323, 922888249u, 1139392309u, 922888249u, 0, ATANF_TOLERANCE, 0},
+{324, 1184239996u, 3224098462u, 1070140966u, 0, ATANF_TOLERANCE, 0},
+{325, 1252490238u, 1173619825u, 1070141401u, 0, ATANF_TOLERANCE, 0},
+{326, 1001673627u, 3462631271u, 1001673508u, 0, ATANF_TOLERANCE, 0},
+{327, 976098044u, 1151967422u, 976098042u, 0, ATANF_TOLERANCE, 0},
+{328, 941796645u, 886451963u, 941796645u, 0, ATANF_TOLERANCE, 0},
+{329, 3287199470u, 854245542u, 3217607478u, 0, ATANF_TOLERANCE, 0},
+{330, 893184329u, 1243067084u, 893184329u, 0, ATANF_TOLERANCE, 0},
+{331, 1143233714u, 1007268238u, 1070128643u, 0, ATANF_TOLERANCE, 0},
+{332, 1139941253u, 1147688821u, 1070124080u, 0, ATANF_TOLERANCE, 0},
+{333, 3143717025u, 3234638157u, 3143716967u, 0, ATANF_TOLERANCE, 0},
+{334, 3048866608u, 3449209899u, 3048866608u, 0, ATANF_TOLERANCE, 0},
+{335, 3240298487u, 1020260821u, 3216804414u, 0, ATANF_TOLERANCE, 0},
+{336, 1288902137u, 3123875978u, 1070141403u, 0, ATANF_TOLERANCE, 0},
+{337, 1333134799u, 1338107877u, 1070141403u, 0, ATANF_TOLERANCE, 0},
+{338, 1187847971u, 1317663644u, 1070141083u, 0, ATANF_TOLERANCE, 0},
+{339, 1038851706u, 1327544110u, 1038784113u, 0, ATANF_TOLERANCE, 0},
+{340, 3329354473u, 3165437289u, 3217624509u, 0, ATANF_TOLERANCE, 0},
+{341, 3077218579u, 1308397879u, 3077218579u, 0, ATANF_TOLERANCE, 0},
+{342, 1309289088u, 1019883016u, 1070141403u, 0, ATANF_TOLERANCE, 0},
+{343, 3444653659u, 1279248024u, 3217625051u, 0, ATANF_TOLERANCE, 0},
+{344, 3405585402u, 2962345057u, 3217625050u, 0, ATANF_TOLERANCE, 0},
+{345, 3106647724u, 853848387u, 3106647724u, 0, ATANF_TOLERANCE, 0},
+{346, 1106778573u, 3304487767u, 1069871006u, 0, ATANF_TOLERANCE, 0},
+{347, 1140567947u, 3069174149u, 1070124738u, 0, ATANF_TOLERANCE, 0},
+{348, 1238569473u, 873035665u, 1070141398u, 0, ATANF_TOLERANCE, 0},
+{349, 3154871957u, 1276671061u, 3154871736u, 0, ATANF_TOLERANCE, 0},
+{350, 1261071232u, 1182202773u, 1070141402u, 0, ATANF_TOLERANCE, 0},
+{351, 1175011025u, 3029705783u, 1070140448u, 0, ATANF_TOLERANCE, 0},
+{352, 1082692850u, 1211581107u, 1068210842u, 0, ATANF_TOLERANCE, 0},
+{353, 974547519u, 3475164509u, 974547518u, 0, ATANF_TOLERANCE, 0},
+{354, 3058097085u, 3104309359u, 3058097085u, 0, ATANF_TOLERANCE, 0},
+{355, 3107252546u, 1071134451u, 3107252545u, 0, ATANF_TOLERANCE, 0},
+{356, 3096032662u, 2976848821u, 3096032662u, 0, ATANF_TOLERANCE, 0},
+{357, 3197942144u, 3094120030u, 3197638256u, 0, ATANF_TOLERANCE, 0},
+{358, 3403348556u, 3184653669u, 3217625049u, 0, ATANF_TOLERANCE, 0},
+{359, 3182301130u, 3460764044u, 3182273782u, 0, ATANF_TOLERANCE, 0},
+{360, 1136411063u, 1118097422u, 1070119123u, 0, ATANF_TOLERANCE, 0},
+{361, 3239231622u, 3302723069u, 3216714060u, 0, ATANF_TOLERANCE, 0},
+{362, 3340615780u, 870350055u, 3217624843u, 0, ATANF_TOLERANCE, 0},
+{363, 998567360u, 2995278691u, 998567312u, 0, ATANF_TOLERANCE, 0},
+{364, 3417964312u, 1321337529u, 3217625050u, 0, ATANF_TOLERANCE, 0},
+{365, 3109481038u, 1143864063u, 3109481038u, 0, ATANF_TOLERANCE, 0},
+{366, 1148867223u, 1256486202u, 1070133025u, 0, ATANF_TOLERANCE, 0},
+{367, 989687421u, 3372681320u, 989687400u, 0, ATANF_TOLERANCE, 0},
+{368, 1152956913u, 3166480640u, 1070135726u, 0, ATANF_TOLERANCE, 0},
+{369, 892922651u, 3373029087u, 892922651u, 0, ATANF_TOLERANCE, 0},
+{370, 1109627625u, 1314158257u, 1069936310u, 0, ATANF_TOLERANCE, 0},
+{371, 1307091856u, 1103202538u, 1070141403u, 0, ATANF_TOLERANCE, 0},
+{372, 1077234132u, 3272167130u, 1067294557u, 0, ATANF_TOLERANCE, 0},
+{373, 1142167709u, 1096445242u, 1070127242u, 0, ATANF_TOLERANCE, 0},
+{374, 3426232834u, 1036705270u, 3217625050u, 0, ATANF_TOLERANCE, 0},
+{375, 3368566779u, 967249167u, 3217625030u, 0, ATANF_TOLERANCE, 0},
+{376, 3030724760u, 3349013503u, 3030724760u, 0, ATANF_TOLERANCE, 0},
+{377, 1138741813u, 3073453199u, 1070122663u, 0, ATANF_TOLERANCE, 0},
+{378, 982950501u, 982549888u, 982950496u, 0, ATANF_TOLERANCE, 0},
+{379, 1142981585u, 1015602236u, 1070128337u, 0, ATANF_TOLERANCE, 0},
+{380, 3347165962u, 3135486696u, 3217624924u, 0, ATANF_TOLERANCE, 0},
+{381, 1009535440u, 3381353228u, 1009535024u, 0, ATANF_TOLERANCE, 0},
+{382, 3103736980u, 3402950505u, 3103736980u, 0, ATANF_TOLERANCE, 0},
+{383, 3126820946u, 1077903063u, 3126820943u, 0, ATANF_TOLERANCE, 0},
+{384, 3473956030u, 976891930u, 3217625051u, 0, ATANF_TOLERANCE, 0},
+{385, 3349098349u, 1055327704u, 3217624948u, 0, ATANF_TOLERANCE, 0},
+{386, 3152729489u, 1060398533u, 3152729225u, 0, ATANF_TOLERANCE, 0},
+{387, 945568720u, 3313485084u, 945568720u, 0, ATANF_TOLERANCE, 0},
+{388, 3345489836u, 1108392401u, 3217624909u, 0, ATANF_TOLERANCE, 0},
+{389, 940893161u, 1137000140u, 940893161u, 0, ATANF_TOLERANCE, 0},
+{390, 976791751u, 3230678102u, 976791749u, 0, ATANF_TOLERANCE, 0},
+{391, 1004442355u, 3036510596u, 1004442131u, 0, ATANF_TOLERANCE, 0},
+{392, 1108485380u, 3173536878u, 1069911862u, 0, ATANF_TOLERANCE, 0},
+{393, 1061834641u, 972388096u, 1059796331u, 0, ATANF_TOLERANCE, 0},
+{394, 3381268392u, 1146976802u, 3217625043u, 0, ATANF_TOLERANCE, 0},
+{395, 1087189715u, 2952822478u, 1068843681u, 0, ATANF_TOLERANCE, 0},
+{396, 3212952285u, 3329407365u, 3209351073u, 0, ATANF_TOLERANCE, 0},
+{397, 1000611335u, 857599439u, 1000611245u, 0, ATANF_TOLERANCE, 0},
+{398, 3466188568u, 1041678304u, 3217625051u, 0, ATANF_TOLERANCE, 0},
+{399, 3072456205u, 3160254633u, 3072456205u, 0, ATANF_TOLERANCE, 0},
+{400, 3319315516u, 3422089012u, 3217623841u, 0, ATANF_TOLERANCE, 0},
+{401, 935938416u, 1146676692u, 935938416u, 0, ATANF_TOLERANCE, 0},
+{402, 3212614372u, 1152633030u, 3209124456u, 0, ATANF_TOLERANCE, 0},
+{403, 1315030230u, 3336225884u, 1070141403u, 0, ATANF_TOLERANCE, 0},
+{404, 1134593658u, 3456812581u, 1070115274u, 0, ATANF_TOLERANCE, 0},
+{405, 977281449u, 879922831u, 977281446u, 0, ATANF_TOLERANCE, 0},
+{406, 1086198791u, 920125958u, 1068742286u, 0, ATANF_TOLERANCE, 0},
+{407, 1255152035u, 851754050u, 1070141401u, 0, ATANF_TOLERANCE, 0},
+{408, 1135271264u, 3284878412u, 1070116855u, 0, ATANF_TOLERANCE, 0},
+{409, 1094190727u, 1056854532u, 1069413889u, 0, ATANF_TOLERANCE, 0},
+{410, 1294665325u, 991185677u, 1070141403u, 0, ATANF_TOLERANCE, 0},
+{411, 1036608591u, 805416536u, 1036566293u, 0, ATANF_TOLERANCE, 0},
+{412, 3229998064u, 825237063u, 3215656635u, 0, ATANF_TOLERANCE, 0},
+{413, 3439134022u, 1043829691u, 3217625051u, 0, ATANF_TOLERANCE, 0},
+{414, 3073083133u, 1317170485u, 3073083133u, 0, ATANF_TOLERANCE, 0},
+{415, 1325668223u, 970681762u, 1070141403u, 0, ATANF_TOLERANCE, 0},
+{416, 1092037607u, 1027330835u, 1069256845u, 0, ATANF_TOLERANCE, 0},
+{417, 3316278408u, 3455589207u, 3217623512u, 0, ATANF_TOLERANCE, 0},
+{418, 3295436768u, 3129873731u, 3217616178u, 0, ATANF_TOLERANCE, 0},
+{419, 1151984049u, 3074547120u, 1070135230u, 0, ATANF_TOLERANCE, 0},
+{420, 1129287043u, 3076527544u, 1070100986u, 0, ATANF_TOLERANCE, 0},
+{421, 1243664530u, 972879810u, 1070141399u, 0, ATANF_TOLERANCE, 0},
+{422, 950829092u, 929114193u, 950829092u, 0, ATANF_TOLERANCE, 0},
+{423, 1115471979u, 3047246262u, 1070008657u, 0, ATANF_TOLERANCE, 0},
+{424, 3351092088u, 3024661404u, 3217624964u, 0, ATANF_TOLERANCE, 0},
+{425, 3424479544u, 3312047722u, 3217625050u, 0, ATANF_TOLERANCE, 0},
+{426, 3241193975u, 884465785u, 3216867516u, 0, ATANF_TOLERANCE, 0},
+{427, 1030934236u, 1045139240u, 1030915636u, 0, ATANF_TOLERANCE, 0},
+{428, 3131791114u, 3408392958u, 3131791108u, 0, ATANF_TOLERANCE, 0},
+{429, 1025254314u, 3057812821u, 1025249362u, 0, ATANF_TOLERANCE, 0},
+{430, 1110545760u, 3240144177u, 1069952484u, 0, ATANF_TOLERANCE, 0},
+{431, 3180213739u, 1108793820u, 3180198803u, 0, ATANF_TOLERANCE, 0},
+{432, 3361976590u, 3138179993u, 3217625015u, 0, ATANF_TOLERANCE, 0},
+{433, 881280146u, 3421884736u, 881280146u, 0, ATANF_TOLERANCE, 0},
+{434, 1304154705u, 2961937089u, 1070141403u, 0, ATANF_TOLERANCE, 0},
+{435, 3264443610u, 3222916705u, 3217511280u, 0, ATANF_TOLERANCE, 0},
+{436, 3374550627u, 3055856293u, 3217625038u, 0, ATANF_TOLERANCE, 0},
+{437, 899599265u, 3240118211u, 899599265u, 0, ATANF_TOLERANCE, 0},
+{438, 1268194719u, 1332489410u, 1070141402u, 0, ATANF_TOLERANCE, 0},
+{439, 1133420220u, 1245770860u, 1070111994u, 0, ATANF_TOLERANCE, 0},
+{440, 1161858787u, 815362075u, 1070138680u, 0, ATANF_TOLERANCE, 0},
+{441, 3184462258u, 1263529646u, 3184416318u, 0, ATANF_TOLERANCE, 0},
+{442, 3295996963u, 3453334307u, 3217616488u, 0, ATANF_TOLERANCE, 0},
+{443, 1270887389u, 1156123987u, 1070141402u, 0, ATANF_TOLERANCE, 0},
+{444, 3325193181u, 993979179u, 3217624316u, 0, ATANF_TOLERANCE, 0},
+{445, 925657343u, 1315159742u, 925657343u, 0, ATANF_TOLERANCE, 0},
+{446, 3115275450u, 3008350271u, 3115275450u, 0, ATANF_TOLERANCE, 0},
+{447, 3116607482u, 3224327456u, 3116607481u, 0, ATANF_TOLERANCE, 0},
+{448, 3187892415u, 3118097315u, 3187845635u, 0, ATANF_TOLERANCE, 0},
+{449, 1189120494u, 978961471u, 1070141111u, 0, ATANF_TOLERANCE, 0},
+{450, 889030794u, 3129523970u, 889030794u, 0, ATANF_TOLERANCE, 0},
+{451, 1323529208u, 3100744786u, 1070141403u, 0, ATANF_TOLERANCE, 0},
+{452, 3465768388u, 3190881451u, 3217625051u, 0, ATANF_TOLERANCE, 0},
+{453, 3426099899u, 1118756120u, 3217625050u, 0, ATANF_TOLERANCE, 0},
+{454, 3224857113u, 3398166843u, 3214808768u, 0, ATANF_TOLERANCE, 0},
+{455, 1065798296u, 816191940u, 1062186276u, 0, ATANF_TOLERANCE, 0},
+{456, 3328989444u, 850266225u, 3217624496u, 0, ATANF_TOLERANCE, 0},
+{457, 3357819026u, 3148475462u, 3217625001u, 0, ATANF_TOLERANCE, 0},
+{458, 1273397670u, 901308750u, 1070141402u, 0, ATANF_TOLERANCE, 0},
+{459, 3424831780u, 1304806106u, 3217625050u, 0, ATANF_TOLERANCE, 0},
+{460, 1257596246u, 3420832544u, 1070141402u, 0, ATANF_TOLERANCE, 0},
+{461, 1051773536u, 896271348u, 1051343444u, 0, ATANF_TOLERANCE, 0},
+{462, 3294752507u, 3113225954u, 3217615768u, 0, ATANF_TOLERANCE, 0},
+{463, 3424848725u, 2973850350u, 3217625050u, 0, ATANF_TOLERANCE, 0},
+{464, 1090870906u, 3294742905u, 1069139826u, 0, ATANF_TOLERANCE, 0},
+{465, 1227582289u, 1208979668u, 1070141391u, 0, ATANF_TOLERANCE, 0},
+{466, 1272325814u, 3004311296u, 1070141402u, 0, ATANF_TOLERANCE, 0},
+{467, 3359508271u, 859974315u, 3217625008u, 0, ATANF_TOLERANCE, 0},
+{468, 1137854355u, 3335041917u, 1070121456u, 0, ATANF_TOLERANCE, 0},
+{469, 3440773058u, 3204192793u, 3217625051u, 0, ATANF_TOLERANCE, 0},
+{470, 3101598400u, 3057760708u, 3101598400u, 0, ATANF_TOLERANCE, 0},
+{471, 3451216836u, 3347783723u, 3217625051u, 0, ATANF_TOLERANCE, 0},
+{472, 3437062994u, 3106834845u, 3217625051u, 0, ATANF_TOLERANCE, 0},
+{473, 1131196082u, 1164573183u, 1070105960u, 0, ATANF_TOLERANCE, 0},
+{474, 3177294154u, 1282436638u, 3177279218u, 0, ATANF_TOLERANCE, 0},
+{475, 3258097678u, 1305882290u, 3217437234u, 0, ATANF_TOLERANCE, 0},
+{476, 3460915348u, 1219372260u, 3217625051u, 0, ATANF_TOLERANCE, 0},
+{477, 3303035472u, 3153013020u, 3217620376u, 0, ATANF_TOLERANCE, 0},
+{478, 1053698677u, 3284313107u, 1053032162u, 0, ATANF_TOLERANCE, 0},
+{479, 3396166221u, 1201894512u, 3217625048u, 0, ATANF_TOLERANCE, 0},
+{480, 3037541131u, 1085398440u, 3037541131u, 0, ATANF_TOLERANCE, 0},
+{481, 3458934263u, 1005577835u, 3217625051u, 0, ATANF_TOLERANCE, 0},
+{482, 1065761827u, 3333928591u, 1062151616u, 0, ATANF_TOLERANCE, 0},
+{483, 3025843188u, 820250112u, 3025843188u, 0, ATANF_TOLERANCE, 0},
+{484, 926665223u, 3150815797u, 926665223u, 0, ATANF_TOLERANCE, 0},
+{485, 1199816046u, 3143776186u, 1070141278u, 0, ATANF_TOLERANCE, 0},
+{486, 3333779015u, 952421041u, 3217624689u, 0, ATANF_TOLERANCE, 0},
+{487, 948398145u, 3238273189u, 948398145u, 0, ATANF_TOLERANCE, 0},
+{488, 3054021468u, 1270257895u, 3054021468u, 0, ATANF_TOLERANCE, 0},
+{489, 1080781593u, 1213908300u, 1067914719u, 0, ATANF_TOLERANCE, 0},
+{490, 3164749613u, 3010837763u, 3164748223u, 0, ATANF_TOLERANCE, 0},
+{491, 3235326590u, 1271705594u, 3216386555u, 0, ATANF_TOLERANCE, 0},
+{492, 3118883815u, 1051802647u, 3118883814u, 0, ATANF_TOLERANCE, 0},
+{493, 965378004u, 1292594138u, 965378004u, 0, ATANF_TOLERANCE, 0},
+{494, 3226990408u, 1110755136u, 3215208306u, 0, ATANF_TOLERANCE, 0},
+{495, 3117098218u, 1122474770u, 3117098217u, 0, ATANF_TOLERANCE, 0},
+{496, 1283624229u, 906796922u, 1070141403u, 0, ATANF_TOLERANCE, 0},
+{497, 970649315u, 1078286437u, 970649314u, 0, ATANF_TOLERANCE, 0},
+{498, 959776291u, 3280345347u, 959776291u, 0, ATANF_TOLERANCE, 0},
+{499, 3341117305u, 3294559023u, 3217624853u, 0, ATANF_TOLERANCE, 0},
+{500, 1270734970u, 3355874874u, 1070141402u, 0, ATANF_TOLERANCE, 0},
+{501, 3454816067u, 868771977u, 3217625051u, 0, ATANF_TOLERANCE, 0},
+{502, 917206623u, 1172710814u, 917206623u, 0, ATANF_TOLERANCE, 0},
+{503, 1106502045u, 1290849316u, 1069866331u, 0, ATANF_TOLERANCE, 0},
+{504, 1157598381u, 3309023746u, 1070137299u, 0, ATANF_TOLERANCE, 0},
+{505, 3335234513u, 1002337336u, 3217624729u, 0, ATANF_TOLERANCE, 0},
+{506, 1279489061u, 1006049444u, 1070141402u, 0, ATANF_TOLERANCE, 0},
+{507, 3157416480u, 1309984610u, 3157416019u, 0, ATANF_TOLERANCE, 0},
+{508, 3143920719u, 3131608518u, 3143920658u, 0, ATANF_TOLERANCE, 0},
+{509, 1233171235u, 826460580u, 1070141395u, 0, ATANF_TOLERANCE, 0},
+{510, 1148920078u, 1007674793u, 1070133052u, 0, ATANF_TOLERANCE, 0},
+{511, 3064988156u, 3230867340u, 3064988156u, 0, ATANF_TOLERANCE, 0},
+{512, 3083619260u, 1159415661u, 3083619260u, 0, ATANF_TOLERANCE, 0},
+{513, 1109198803u, 1221754614u, 1069927768u, 0, ATANF_TOLERANCE, 0},
+{514, 3219949483u, 1056167693u, 3213464057u, 0, ATANF_TOLERANCE, 0},
+{515, 3361149474u, 3387342069u, 3217625013u, 0, ATANF_TOLERANCE, 0},
+{516, 1207502108u, 3388073586u, 1070141337u, 0, ATANF_TOLERANCE, 0},
+{517, 1000014431u, 831213088u, 1000014355u, 0, ATANF_TOLERANCE, 0},
+{518, 3161756316u, 3143659754u, 3161755126u, 0, ATANF_TOLERANCE, 0},
+{519, 3160728744u, 3382954009u, 3160727769u, 0, ATANF_TOLERANCE, 0},
+{520, 1234530539u, 1079988872u, 1070141396u, 0, ATANF_TOLERANCE, 0},
+{521, 1017843965u, 1193076204u, 1017842336u, 0, ATANF_TOLERANCE, 0},
+{522, 951862956u, 1173464654u, 951862956u, 0, ATANF_TOLERANCE, 0},
+{523, 3306328852u, 1118701064u, 3217621474u, 0, ATANF_TOLERANCE, 0},
+{524, 1291910469u, 1211303367u, 1070141403u, 0, ATANF_TOLERANCE, 0},
+{525, 3027442905u, 1173894400u, 3027442905u, 0, ATANF_TOLERANCE, 0},
+{526, 1131927531u, 3182962700u, 1070107556u, 0, ATANF_TOLERANCE, 0},
+{527, 3449879391u, 991614550u, 3217625051u, 0, ATANF_TOLERANCE, 0},
+{528, 970094304u, 3344590506u, 970094303u, 0, ATANF_TOLERANCE, 0},
+{529, 1125551064u, 3331248076u, 1070085682u, 0, ATANF_TOLERANCE, 0},
+{530, 3427296372u, 3455289118u, 3217625050u, 0, ATANF_TOLERANCE, 0},
+{531, 1198917460u, 1327195159u, 1070141269u, 0, ATANF_TOLERANCE, 0},
+{532, 3201603336u, 820047343u, 3200876499u, 0, ATANF_TOLERANCE, 0},
+{533, 3114686212u, 3476082461u, 3114686212u, 0, ATANF_TOLERANCE, 0},
+{534, 921940707u, 2967544056u, 921940707u, 0, ATANF_TOLERANCE, 0},
+{535, 1091906532u, 3011904455u, 1069245075u, 0, ATANF_TOLERANCE, 0},
+{536, 3393557778u, 3383396815u, 3217625048u, 0, ATANF_TOLERANCE, 0},
+{537, 1276853215u, 873199561u, 1070141402u, 0, ATANF_TOLERANCE, 0},
+{538, 3462778440u, 3349284325u, 3217625051u, 0, ATANF_TOLERANCE, 0},
+{539, 3360170117u, 3048354042u, 3217625010u, 0, ATANF_TOLERANCE, 0},
+{540, 3224245428u, 3271307999u, 3214669684u, 0, ATANF_TOLERANCE, 0},
+{541, 1120124467u, 1135619937u, 1070055695u, 0, ATANF_TOLERANCE, 0},
+{542, 1064364381u, 3180675544u, 1061243521u, 0, ATANF_TOLERANCE, 0},
+{543, 1268744779u, 3328452652u, 1070141402u, 0, ATANF_TOLERANCE, 0},
+{544, 1165195428u, 3390323168u, 1070139249u, 0, ATANF_TOLERANCE, 0},
+{545, 3044092739u, 1106497311u, 3044092739u, 0, ATANF_TOLERANCE, 0},
+{546, 3149469534u, 1278465842u, 3149469405u, 0, ATANF_TOLERANCE, 0},
+{547, 3247790039u, 909788142u, 3217176119u, 0, ATANF_TOLERANCE, 0},
+{548, 3215244648u, 1083988595u, 3211331089u, 0, ATANF_TOLERANCE, 0},
+{549, 3095275931u, 989153382u, 3095275931u, 0, ATANF_TOLERANCE, 0},
+{550, 3059688264u, 1117455718u, 3059688264u, 0, ATANF_TOLERANCE, 0},
+{551, 1212717473u, 837873779u, 1070141362u, 0, ATANF_TOLERANCE, 0},
+{552, 3275973009u, 3450721670u, 3217582116u, 0, ATANF_TOLERANCE, 0},
+{553, 3028857014u, 3188853813u, 3028857014u, 0, ATANF_TOLERANCE, 0},
+{554, 3391162308u, 1291220039u, 3217625047u, 0, ATANF_TOLERANCE, 0},
+{555, 1044867873u, 3369493273u, 1044706316u, 0, ATANF_TOLERANCE, 0},
+{556, 1089986803u, 3462160118u, 1069064428u, 0, ATANF_TOLERANCE, 0},
+{557, 1296314700u, 2957454177u, 1070141403u, 0, ATANF_TOLERANCE, 0},
+{558, 1251462432u, 3171021770u, 1070141401u, 0, ATANF_TOLERANCE, 0},
+{559, 3485236902u, 980772835u, 3217625051u, 0, ATANF_TOLERANCE, 0},
+{560, 3262169538u, 1268270462u, 3217485693u, 0, ATANF_TOLERANCE, 0},
+{561, 3080852256u, 994641495u, 3080852256u, 0, ATANF_TOLERANCE, 0},
+{562, 1022211242u, 922124181u, 1022206872u, 0, ATANF_TOLERANCE, 0},
+{563, 884661176u, 2985540645u, 884661176u, 0, ATANF_TOLERANCE, 0},
+{564, 3071422941u, 3271100396u, 3071422941u, 0, ATANF_TOLERANCE, 0},
+{565, 989762529u, 3362011135u, 989762508u, 0, ATANF_TOLERANCE, 0},
+{566, 1295475718u, 3212305413u, 1070141403u, 0, ATANF_TOLERANCE, 0},
+{567, 1002632518u, 3330388441u, 1002632368u, 0, ATANF_TOLERANCE, 0},
+{568, 3404372005u, 3450484255u, 3217625050u, 0, ATANF_TOLERANCE, 0},
+{569, 3158912530u, 3105501826u, 3158911867u, 0, ATANF_TOLERANCE, 0},
+{570, 1125800069u, 3256265749u, 1070087054u, 0, ATANF_TOLERANCE, 0},
+{571, 3138037576u, 3103365227u, 3138037562u, 0, ATANF_TOLERANCE, 0},
+{572, 3108384823u, 1300246663u, 3108384823u, 0, ATANF_TOLERANCE, 0},
+{573, 999985470u, 3409354318u, 999985394u, 0, ATANF_TOLERANCE, 0},
+{574, 1189421739u, 1056599002u, 1070141117u, 0, ATANF_TOLERANCE, 0},
+{575, 3075182644u, 3144159778u, 3075182644u, 0, ATANF_TOLERANCE, 0},
+{576, 3028099649u, 3391513557u, 3028099649u, 0, ATANF_TOLERANCE, 0},
+{577, 3132541814u, 3444521949u, 3132541806u, 0, ATANF_TOLERANCE, 0},
+{578, 1164046161u, 3440635788u, 1070139082u, 0, ATANF_TOLERANCE, 0},
+{579, 1292596266u, 3116569667u, 1070141403u, 0, ATANF_TOLERANCE, 0},
+{580, 3469748379u, 3412765608u, 3217625051u, 0, ATANF_TOLERANCE, 0},
+{581, 1314644642u, 3123051784u, 1070141403u, 0, ATANF_TOLERANCE, 0},
+{582, 3399813173u, 828743798u, 3217625049u, 0, ATANF_TOLERANCE, 0},
+{583, 948775569u, 3485444126u, 948775569u, 0, ATANF_TOLERANCE, 0},
+{584, 1034611395u, 882288581u, 1034585499u, 0, ATANF_TOLERANCE, 0},
+{585, 3489122735u, 3372450889u, 3217625051u, 0, ATANF_TOLERANCE, 0},
+{586, 1181604787u, 3363067409u, 1070140852u, 0, ATANF_TOLERANCE, 0},
+{587, 3059042077u, 3204983963u, 3059042077u, 0, ATANF_TOLERANCE, 0},
+{588, 1043691622u, 3402603223u, 1043569415u, 0, ATANF_TOLERANCE, 0},
+{589, 1314588083u, 856187848u, 1070141403u, 0, ATANF_TOLERANCE, 0},
+{590, 3141533334u, 3010142974u, 3141533298u, 0, ATANF_TOLERANCE, 0},
+{591, 3157534378u, 3451674717u, 3157533902u, 0, ATANF_TOLERANCE, 0},
+{592, 3400949680u, 3073750220u, 3217625049u, 0, ATANF_TOLERANCE, 0},
+{593, 3365581801u, 1175843167u, 3217625024u, 0, ATANF_TOLERANCE, 0},
+{594, 1110424755u, 3011308654u, 1069950500u, 0, ATANF_TOLERANCE, 0},
+{595, 3189917167u, 927278934u, 3189829462u, 0, ATANF_TOLERANCE, 0},
+{596, 969804941u, 3355439348u, 969804940u, 0, ATANF_TOLERANCE, 0},
+{597, 1139120919u, 3270515074u, 1070123135u, 0, ATANF_TOLERANCE, 0},
+{598, 934308144u, 3118191228u, 934308144u, 0, ATANF_TOLERANCE, 0},
+{599, 1220524226u, 1152648002u, 1070141381u, 0, ATANF_TOLERANCE, 0},
+{600, 3162548604u, 3461790298u, 3162547910u, 0, ATANF_TOLERANCE, 0},
+{601, 3382391700u, 3296962745u, 3217625044u, 0, ATANF_TOLERANCE, 0},
+{602, 1156767533u, 1088986462u, 1070137085u, 0, ATANF_TOLERANCE, 0},
+{603, 3079222483u, 3312324949u, 3079222483u, 0, ATANF_TOLERANCE, 0},
+{604, 994934087u, 967678094u, 994934043u, 0, ATANF_TOLERANCE, 0},
+{605, 3185240099u, 1123403720u, 3185185835u, 0, ATANF_TOLERANCE, 0},
+{606, 3479873563u, 1246277393u, 3217625051u, 0, ATANF_TOLERANCE, 0},
+{607, 3424264117u, 3434026174u, 3217625050u, 0, ATANF_TOLERANCE, 0},
+{608, 3228365887u, 1216775310u, 3215412136u, 0, ATANF_TOLERANCE, 0},
+{609, 1035909900u, 1249532942u, 1035873949u, 0, ATANF_TOLERANCE, 0},
+{610, 3024951184u, 1247632131u, 3024951184u, 0, ATANF_TOLERANCE, 0},
+{611, 1212129651u, 3017366784u, 1070141360u, 0, ATANF_TOLERANCE, 0},
+{612, 3125775254u, 955826310u, 3125775251u, 0, ATANF_TOLERANCE, 0},
+{613, 1037464105u, 3121544932u, 1037413077u, 0, ATANF_TOLERANCE, 0},
+{614, 1311706596u, 1254918706u, 1070141403u, 0, ATANF_TOLERANCE, 0},
+{615, 918212457u, 1017468331u, 918212457u, 0, ATANF_TOLERANCE, 0},
+{616, 1337315179u, 3461361185u, 1070141403u, 0, ATANF_TOLERANCE, 0},
+{617, 1131358407u, 3325958870u, 1070106327u, 0, ATANF_TOLERANCE, 0},
+{618, 1156517523u, 3343716230u, 1070137016u, 0, ATANF_TOLERANCE, 0},
+{619, 3210802820u, 3207408574u, 3208155290u, 0, ATANF_TOLERANCE, 0},
+{620, 3337499209u, 1226297264u, 3217624775u, 0, ATANF_TOLERANCE, 0},
+{621, 3468429030u, 3253874001u, 3217625051u, 0, ATANF_TOLERANCE, 0},
+{622, 3253515800u, 1189005947u, 3217341653u, 0, ATANF_TOLERANCE, 0},
+{623, 3055299953u, 3047908678u, 3055299953u, 0, ATANF_TOLERANCE, 0},
+{624, 959956547u, 876324728u, 959956547u, 0, ATANF_TOLERANCE, 0},
+{625, 3425290480u, 1139193797u, 3217625050u, 0, ATANF_TOLERANCE, 0},
+{626, 1039917375u, 1122740999u, 1039834892u, 0, ATANF_TOLERANCE, 0},
+{627, 3220979495u, 3429223871u, 3213685914u, 0, ATANF_TOLERANCE, 0},
+{628, 1311016004u, 3334899880u, 1070141403u, 0, ATANF_TOLERANCE, 0},
+{629, 1128016396u, 1105151547u, 1070096822u, 0, ATANF_TOLERANCE, 0},
+{630, 3210335769u, 3100646155u, 3207888084u, 0, ATANF_TOLERANCE, 0},
+{631, 3022705759u, 3404762495u, 3022705759u, 0, ATANF_TOLERANCE, 0},
+{632, 1206054701u, 826010009u, 1070141330u, 0, ATANF_TOLERANCE, 0},
+{633, 3144504834u, 1162227076u, 3144504766u, 0, ATANF_TOLERANCE, 0},
+{634, 1213609983u, 919983950u, 1070141364u, 0, ATANF_TOLERANCE, 0},
+{635, 1246902946u, 3064047808u, 1070141400u, 0, ATANF_TOLERANCE, 0},
+{636, 995850843u, 1332031130u, 995850789u, 0, ATANF_TOLERANCE, 0},
+{637, 3362082828u, 3374056268u, 3217625015u, 0, ATANF_TOLERANCE, 0},
+{638, 1029480631u, 3047777170u, 1029466672u, 0, ATANF_TOLERANCE, 0},
+{639, 3153568584u, 3106514232u, 3153568275u, 0, ATANF_TOLERANCE, 0},
+{640, 3384988527u, 3109485565u, 3217625045u, 0, ATANF_TOLERANCE, 0},
+{641, 1317696241u, 870681806u, 1070141403u, 0, ATANF_TOLERANCE, 0},
+{642, 3235395924u, 1132055244u, 3216392527u, 0, ATANF_TOLERANCE, 0},
+{643, 3341877624u, 2969495570u, 3217624866u, 0, ATANF_TOLERANCE, 0},
+{644, 1228636133u, 886552820u, 1070141392u, 0, ATANF_TOLERANCE, 0},
+{645, 3161654634u, 3335899347u, 3161653466u, 0, ATANF_TOLERANCE, 0},
+{646, 3162655243u, 3307203982u, 3162654523u, 0, ATANF_TOLERANCE, 0},
+{647, 1207246237u, 859223639u, 1070141336u, 0, ATANF_TOLERANCE, 0},
+{648, 1165476654u, 3350219111u, 1070139287u, 0, ATANF_TOLERANCE, 0},
+{649, 1215278023u, 3019755242u, 1070141368u, 0, ATANF_TOLERANCE, 0},
+{650, 1017239798u, 3438501281u, 1017238418u, 0, ATANF_TOLERANCE, 0},
+{651, 1149651309u, 970030475u, 1070133594u, 0, ATANF_TOLERANCE, 0},
+{652, 1111943722u, 3122211334u, 1069972738u, 0, ATANF_TOLERANCE, 0},
+{653, 1189849849u, 3382739134u, 1070141125u, 0, ATANF_TOLERANCE, 0},
+{654, 3204848496u, 3141519085u, 3203862728u, 0, ATANF_TOLERANCE, 0},
+{655, 1249758327u, 3104759211u, 1070141401u, 0, ATANF_TOLERANCE, 0},
+{656, 3092982276u, 3445282331u, 3092982276u, 0, ATANF_TOLERANCE, 0},
+{657, 1168098747u, 1316854744u, 1070139762u, 0, ATANF_TOLERANCE, 0},
+{658, 892549317u, 1179637545u, 892549317u, 0, ATANF_TOLERANCE, 0},
+{659, 3301009024u, 3406174560u, 3217619629u, 0, ATANF_TOLERANCE, 0},
+{660, 3233089227u, 1212652543u, 3216157361u, 0, ATANF_TOLERANCE, 0},
+{661, 3218245284u, 1238873830u, 3213042506u, 0, ATANF_TOLERANCE, 0},
+{662, 3215981890u, 3240474694u, 3211863300u, 0, ATANF_TOLERANCE, 0},
+{663, 1266687209u, 3092038122u, 1070141402u, 0, ATANF_TOLERANCE, 0},
+{664, 3487959775u, 3331372071u, 3217625051u, 0, ATANF_TOLERANCE, 0},
+{665, 943645710u, 852875779u, 943645710u, 0, ATANF_TOLERANCE, 0},
+{666, 3345065699u, 3282620725u, 3217624905u, 0, ATANF_TOLERANCE, 0},
+{667, 935847271u, 1067255804u, 935847271u, 0, ATANF_TOLERANCE, 0},
+{668, 3410336089u, 1111437780u, 3217625050u, 0, ATANF_TOLERANCE, 0},
+{669, 3082940740u, 1336840432u, 3082940740u, 0, ATANF_TOLERANCE, 0},
+{670, 1141063391u, 1168908072u, 1070125424u, 0, ATANF_TOLERANCE, 0},
+{671, 3059263153u, 3067795684u, 3059263153u, 0, ATANF_TOLERANCE, 0},
+{672, 3353679791u, 897158391u, 3217624979u, 0, ATANF_TOLERANCE, 0},
+{673, 1001823878u, 1016826861u, 1001823754u, 0, ATANF_TOLERANCE, 0},
+{674, 1009130212u, 1004302940u, 1009129839u, 0, ATANF_TOLERANCE, 0},
+{675, 3367127535u, 943136342u, 3217625028u, 0, ATANF_TOLERANCE, 0},
+{676, 1032920919u, 3449126417u, 1032905048u, 0, ATANF_TOLERANCE, 0},
+{677, 3281952870u, 3147012185u, 3217598609u, 0, ATANF_TOLERANCE, 0},
+{678, 1237868497u, 3048281802u, 1070141398u, 0, ATANF_TOLERANCE, 0},
+{679, 1153753924u, 3322269242u, 1070136077u, 0, ATANF_TOLERANCE, 0},
+{680, 1120261759u, 892210998u, 1070056603u, 0, ATANF_TOLERANCE, 0},
+{681, 3226328360u, 3366432856u, 3215096616u, 0, ATANF_TOLERANCE, 0},
+{682, 3349595986u, 3251588707u, 3217624952u, 0, ATANF_TOLERANCE, 0},
+{683, 3166889490u, 3306023523u, 3166887081u, 0, ATANF_TOLERANCE, 0},
+{684, 1087750238u, 1099325523u, 1068894830u, 0, ATANF_TOLERANCE, 0},
+{685, 3121620061u, 3359488363u, 3121620060u, 0, ATANF_TOLERANCE, 0},
+{686, 1066116543u, 3072159933u, 1062482443u, 0, ATANF_TOLERANCE, 0},
+{687, 3210898034u, 2981803389u, 3208208865u, 0, ATANF_TOLERANCE, 0},
+{688, 3051923237u, 3364074347u, 3051923237u, 0, ATANF_TOLERANCE, 0},
+{689, 1030612298u, 3345396001u, 1030594803u, 0, ATANF_TOLERANCE, 0},
+{690, 1186234578u, 858134374u, 1070141040u, 0, ATANF_TOLERANCE, 0},
+{691, 1331680743u, 1009396165u, 1070141403u, 0, ATANF_TOLERANCE, 0},
+{692, 3060774997u, 1326067357u, 3060774997u, 0, ATANF_TOLERANCE, 0},
+{693, 887589411u, 1292305693u, 887589411u, 0, ATANF_TOLERANCE, 0},
+{694, 1045232522u, 3234993273u, 1045057281u, 0, ATANF_TOLERANCE, 0},
+{695, 3119858470u, 962515365u, 3119858468u, 0, ATANF_TOLERANCE, 0},
+{696, 3349432725u, 928848003u, 3217624951u, 0, ATANF_TOLERANCE, 0},
+{697, 912423027u, 3184646319u, 912423027u, 0, ATANF_TOLERANCE, 0},
+{698, 3228795133u, 3273940030u, 3215469039u, 0, ATANF_TOLERANCE, 0},
+{699, 3194674746u, 3112269709u, 3194413041u, 0, ATANF_TOLERANCE, 0},
+{700, 3296784303u, 3276182352u, 3217616918u, 0, ATANF_TOLERANCE, 0},
+{701, 965402291u, 3107104376u, 965402291u, 0, ATANF_TOLERANCE, 0},
+{702, 3388153589u, 3426245389u, 3217625046u, 0, ATANF_TOLERANCE, 0},
+{703, 1133410485u, 3329658993u, 1070111963u, 0, ATANF_TOLERANCE, 0},
+{704, 3136790322u, 1088652637u, 3136790303u, 0, ATANF_TOLERANCE, 0},
+{705, 3369970587u, 959121458u, 3217625032u, 0, ATANF_TOLERANCE, 0},
+{706, 1270451568u, 928393353u, 1070141402u, 0, ATANF_TOLERANCE, 0},
+{707, 989498922u, 3088358419u, 989498902u, 0, ATANF_TOLERANCE, 0},
+{708, 1280215674u, 3148135875u, 1070141402u, 0, ATANF_TOLERANCE, 0},
+{709, 1171873518u, 954709738u, 1070140197u, 0, ATANF_TOLERANCE, 0},
+{710, 3298258100u, 935525182u, 3217618126u, 0, ATANF_TOLERANCE, 0},
+{711, 3415208824u, 822843236u, 3217625050u, 0, ATANF_TOLERANCE, 0},
+{712, 1001897182u, 3191875320u, 1001897056u, 0, ATANF_TOLERANCE, 0},
+{713, 3152777939u, 3245830463u, 3152777673u, 0, ATANF_TOLERANCE, 0},
+{714, 985903305u, 3333087577u, 985903296u, 0, ATANF_TOLERANCE, 0},
+{715, 3357328848u, 859306298u, 3217624998u, 0, ATANF_TOLERANCE, 0},
+{716, 982612185u, 923582663u, 982612181u, 0, ATANF_TOLERANCE, 0},
+{717, 3267868136u, 1208301947u, 3217541046u, 0, ATANF_TOLERANCE, 0},
+{718, 3319048157u, 1172271145u, 3217623818u, 0, ATANF_TOLERANCE, 0},
+{719, 1144755661u, 860947435u, 1070130223u, 0, ATANF_TOLERANCE, 0},
+{720, 898467286u, 839254959u, 898467286u, 0, ATANF_TOLERANCE, 0},
+{721, 3301461672u, 1233693827u, 3217619816u, 0, ATANF_TOLERANCE, 0},
+{722, 3364525678u, 3089849671u, 3217625021u, 0, ATANF_TOLERANCE, 0},
+{723, 931441127u, 1133424555u, 931441127u, 0, ATANF_TOLERANCE, 0},
+{724, 3146660041u, 3143695961u, 3146659983u, 0, ATANF_TOLERANCE, 0},
+{725, 3467121799u, 3023584354u, 3217625051u, 0, ATANF_TOLERANCE, 0},
+{726, 1151257041u, 3084216427u, 1070134799u, 0, ATANF_TOLERANCE, 0},
+{727, 3097873255u, 3219266640u, 3097873255u, 0, ATANF_TOLERANCE, 0},
+{728, 3130670309u, 3192399254u, 3130670304u, 0, ATANF_TOLERANCE, 0},
+{729, 1017573824u, 3130901062u, 1017572310u, 0, ATANF_TOLERANCE, 0},
+{730, 1258369714u, 3462258576u, 1070141402u, 0, ATANF_TOLERANCE, 0},
+{731, 1216602683u, 3371396332u, 1070141372u, 0, ATANF_TOLERANCE, 0},
+{732, 3297265739u, 1214184410u, 3217617356u, 0, ATANF_TOLERANCE, 0},
+{733, 1071940738u, 3311731012u, 1065858274u, 0, ATANF_TOLERANCE, 0},
+{734, 922601356u, 3337171870u, 922601356u, 0, ATANF_TOLERANCE, 0},
+{735, 3462285635u, 3444030332u, 3217625051u, 0, ATANF_TOLERANCE, 0},
+{736, 3357177805u, 1085464241u, 3217624998u, 0, ATANF_TOLERANCE, 0},
+{737, 3049120080u, 900832851u, 3049120080u, 0, ATANF_TOLERANCE, 0},
+{738, 1153863660u, 1011991342u, 1070136122u, 0, ATANF_TOLERANCE, 0},
+{739, 3034243695u, 917098003u, 3034243695u, 0, ATANF_TOLERANCE, 0},
+{740, 1249365132u, 3278686216u, 1070141401u, 0, ATANF_TOLERANCE, 0},
+{741, 3046215730u, 3211219980u, 3046215730u, 0, ATANF_TOLERANCE, 0},
+{742, 3047251716u, 1090787353u, 3047251716u, 0, ATANF_TOLERANCE, 0},
+{743, 3131219358u, 3471261157u, 3131219352u, 0, ATANF_TOLERANCE, 0},
+{744, 3222096285u, 1198013705u, 3214057151u, 0, ATANF_TOLERANCE, 0},
+{745, 1297708818u, 3079166173u, 1070141403u, 0, ATANF_TOLERANCE, 0},
+{746, 3345532722u, 3383708463u, 3217624910u, 0, ATANF_TOLERANCE, 0},
+{747, 3418753236u, 3481843070u, 3217625050u, 0, ATANF_TOLERANCE, 0},
+{748, 1277417964u, 3487506626u, 1070141402u, 0, ATANF_TOLERANCE, 0},
+{749, 987577257u, 1152077087u, 987577244u, 0, ATANF_TOLERANCE, 0},
+{750, 3161606610u, 3190282989u, 3161605452u, 0, ATANF_TOLERANCE, 0},
+{751, 888030585u, 3062367380u, 888030585u, 0, ATANF_TOLERANCE, 0},
+{752, 1043442869u, 3311393817u, 1043328084u, 0, ATANF_TOLERANCE, 0},
+{753, 3320923228u, 3464544249u, 3217623964u, 0, ATANF_TOLERANCE, 0},
+{754, 1337400405u, 3488844154u, 1070141403u, 0, ATANF_TOLERANCE, 0},
+{755, 3400348640u, 3129868490u, 3217625049u, 0, ATANF_TOLERANCE, 0},
+{756, 1250249095u, 1069023744u, 1070141401u, 0, ATANF_TOLERANCE, 0},
+{757, 3284411233u, 1173613526u, 3217603666u, 0, ATANF_TOLERANCE, 0},
+{758, 3020883322u, 2953622587u, 3020883322u, 0, ATANF_TOLERANCE, 0},
+{759, 1215968622u, 3469884568u, 1070141370u, 0, ATANF_TOLERANCE, 0},
+{760, 3202319550u, 819117302u, 3201482744u, 0, ATANF_TOLERANCE, 0},
+{761, 3061638260u, 3116222327u, 3061638260u, 0, ATANF_TOLERANCE, 0},
+{762, 1025404104u, 1066370251u, 1025398931u, 0, ATANF_TOLERANCE, 0},
+{763, 3138086437u, 3195983510u, 3138086424u, 0, ATANF_TOLERANCE, 0},
+{764, 3091024506u, 3456196859u, 3091024506u, 0, ATANF_TOLERANCE, 0},
+{765, 3362748242u, 3369843597u, 3217625016u, 0, ATANF_TOLERANCE, 0},
+{766, 3099671635u, 3218383623u, 3099671635u, 0, ATANF_TOLERANCE, 0},
+{767, 3068014841u, 2978226656u, 3068014841u, 0, ATANF_TOLERANCE, 0},
+{768, 1252237719u, 1121169249u, 1070141401u, 0, ATANF_TOLERANCE, 0},
+{769, 3327895594u, 1224511805u, 3217624454u, 0, ATANF_TOLERANCE, 0},
+{770, 3082454432u, 889268276u, 3082454432u, 0, ATANF_TOLERANCE, 0},
+{771, 3396161504u, 1182798837u, 3217625048u, 0, ATANF_TOLERANCE, 0},
+{772, 1099710167u, 887180181u, 1069663411u, 0, ATANF_TOLERANCE, 0},
+{773, 1157186482u, 1288722647u, 1070137196u, 0, ATANF_TOLERANCE, 0},
+{774, 1282110851u, 3176633124u, 1070141402u, 0, ATANF_TOLERANCE, 0},
+{775, 3477008113u, 1331845018u, 3217625051u, 0, ATANF_TOLERANCE, 0},
+{776, 3292127294u, 3409957764u, 3217613768u, 0, ATANF_TOLERANCE, 0},
+{777, 1123357102u, 3281307320u, 1070072945u, 0, ATANF_TOLERANCE, 0},
+{778, 1106837025u, 3088080674u, 1069871974u, 0, ATANF_TOLERANCE, 0},
+{779, 1049949008u, 1130799489u, 1049686811u, 0, ATANF_TOLERANCE, 0},
+{780, 1253017688u, 942062372u, 1070141401u, 0, ATANF_TOLERANCE, 0},
+{781, 1108543194u, 3281299199u, 1069913239u, 0, ATANF_TOLERANCE, 0},
+{782, 3087985411u, 1238341456u, 3087985411u, 0, ATANF_TOLERANCE, 0},
+{783, 3163283126u, 1328636961u, 3163282235u, 0, ATANF_TOLERANCE, 0},
+{784, 1160162706u, 1264067367u, 1070138257u, 0, ATANF_TOLERANCE, 0},
+{785, 3305715025u, 3017496063u, 3217621230u, 0, ATANF_TOLERANCE, 0},
+{786, 1266928623u, 811778614u, 1070141402u, 0, ATANF_TOLERANCE, 0},
+{787, 3025340297u, 1193925540u, 3025340297u, 0, ATANF_TOLERANCE, 0},
+{788, 3438080027u, 3107114149u, 3217625051u, 0, ATANF_TOLERANCE, 0},
+{789, 3344574751u, 3111270744u, 3217624900u, 0, ATANF_TOLERANCE, 0},
+{790, 1152416724u, 962669179u, 1070135461u, 0, ATANF_TOLERANCE, 0},
+{791, 1218239308u, 1126238113u, 1070141377u, 0, ATANF_TOLERANCE, 0},
+{792, 3263310567u, 1030748197u, 3217496171u, 0, ATANF_TOLERANCE, 0},
+{793, 3041998669u, 1160635263u, 3041998669u, 0, ATANF_TOLERANCE, 0},
+{794, 1000313118u, 2980130729u, 1000313035u, 0, ATANF_TOLERANCE, 0},
+{795, 972485427u, 1124312043u, 972485425u, 0, ATANF_TOLERANCE, 0},
+{796, 3290264612u, 1124703898u, 3217611731u, 0, ATANF_TOLERANCE, 0},
+{797, 3222106584u, 1183748648u, 3214060655u, 0, ATANF_TOLERANCE, 0},
+{798, 1278946388u, 825129857u, 1070141402u, 0, ATANF_TOLERANCE, 0},
+{799, 947914771u, 3181847068u, 947914771u, 0, ATANF_TOLERANCE, 0},
+{800, 3167730654u, 3195765940u, 3167727737u, 0, ATANF_TOLERANCE, 0},
+{801, 1098530298u, 3255870890u, 1069605780u, 0, ATANF_TOLERANCE, 0},
+{802, 3232726036u, 871038882u, 3216111995u, 0, ATANF_TOLERANCE, 0},
+{803, 1297190916u, 811863044u, 1070141403u, 0, ATANF_TOLERANCE, 0},
+{804, 1277649137u, 961171401u, 1070141402u, 0, ATANF_TOLERANCE, 0},
+{805, 3203377685u, 1306427476u, 3202361137u, 0, ATANF_TOLERANCE, 0},
+{806, 3090306474u, 3124785016u, 3090306474u, 0, ATANF_TOLERANCE, 0},
+{807, 3244032016u, 3045313345u, 3217016043u, 0, ATANF_TOLERANCE, 0},
+{808, 3033122376u, 3049877065u, 3033122376u, 0, ATANF_TOLERANCE, 0},
+{809, 1096155623u, 1256423752u, 1069515403u, 0, ATANF_TOLERANCE, 0},
+{810, 873151908u, 3246562559u, 873151908u, 0, ATANF_TOLERANCE, 0},
+{811, 3238729605u, 1298769842u, 3216664316u, 0, ATANF_TOLERANCE, 0},
+{812, 3317196817u, 989537151u, 3217623629u, 0, ATANF_TOLERANCE, 0},
+{813, 3374748510u, 834161190u, 3217625038u, 0, ATANF_TOLERANCE, 0},
+{814, 3345634950u, 959901149u, 3217624911u, 0, ATANF_TOLERANCE, 0},
+{815, 3189860276u, 883598767u, 3189773958u, 0, ATANF_TOLERANCE, 0},
+{816, 887311687u, 1175312255u, 887311687u, 0, ATANF_TOLERANCE, 0},
+{817, 3396917283u, 3066326686u, 3217625049u, 0, ATANF_TOLERANCE, 0},
+{818, 3317032737u, 3143803722u, 3217623610u, 0, ATANF_TOLERANCE, 0},
+{819, 1200051436u, 1163802508u, 1070141282u, 0, ATANF_TOLERANCE, 0},
+{820, 3105291012u, 1194385202u, 3105291012u, 0, ATANF_TOLERANCE, 0},
+{821, 1306520561u, 957302464u, 1070141403u, 0, ATANF_TOLERANCE, 0},
+{822, 1314936356u, 2985592532u, 1070141403u, 0, ATANF_TOLERANCE, 0},
+{823, 3475052219u, 1284049853u, 3217625051u, 0, ATANF_TOLERANCE, 0},
+{824, 3085636260u, 1107682820u, 3085636260u, 0, ATANF_TOLERANCE, 0},
+{825, 3393227708u, 3271879112u, 3217625048u, 0, ATANF_TOLERANCE, 0},
+{826, 3182540197u, 852580839u, 3182511098u, 0, ATANF_TOLERANCE, 0},
+{827, 3349005404u, 3080993030u, 3217624947u, 0, ATANF_TOLERANCE, 0},
+{828, 3154720153u, 3443720494u, 3154719943u, 0, ATANF_TOLERANCE, 0},
+{829, 1262863321u, 1219003129u, 1070141402u, 0, ATANF_TOLERANCE, 0},
+{830, 882902102u, 1224362550u, 882902102u, 0, ATANF_TOLERANCE, 0},
+{831, 1053387478u, 3184880021u, 1052763523u, 0, ATANF_TOLERANCE, 0},
+{832, 3387653691u, 3347783852u, 3217625046u, 0, ATANF_TOLERANCE, 0},
+{833, 3136364836u, 1018492227u, 3136364818u, 0, ATANF_TOLERANCE, 0},
+{834, 1338680611u, 1166078045u, 1070141403u, 0, ATANF_TOLERANCE, 0},
+{835, 1112891928u, 3074730425u, 1069984171u, 0, ATANF_TOLERANCE, 0},
+{836, 893449284u, 1052877339u, 893449284u, 0, ATANF_TOLERANCE, 0},
+{837, 892311459u, 1097338393u, 892311459u, 0, ATANF_TOLERANCE, 0},
+{838, 3105373037u, 3246705916u, 3105373037u, 0, ATANF_TOLERANCE, 0},
+{839, 1190105283u, 3033907262u, 1070141129u, 0, ATANF_TOLERANCE, 0},
+{840, 1011225926u, 1180485180u, 1011225294u, 0, ATANF_TOLERANCE, 0},
+{841, 1043025031u, 987068973u, 1042922036u, 0, ATANF_TOLERANCE, 0},
+{842, 3410531037u, 2953541915u, 3217625050u, 0, ATANF_TOLERANCE, 0},
+{843, 3125834184u, 896953754u, 3125834181u, 0, ATANF_TOLERANCE, 0},
+{844, 902318189u, 849277289u, 902318189u, 0, ATANF_TOLERANCE, 0},
+{845, 3213624815u, 2987148017u, 3209988543u, 0, ATANF_TOLERANCE, 0},
+{846, 1120888322u, 1086209113u, 1070060512u, 0, ATANF_TOLERANCE, 0},
+{847, 1315217243u, 3396371713u, 1070141403u, 0, ATANF_TOLERANCE, 0},
+{848, 3137758475u, 1039403054u, 3137758463u, 0, ATANF_TOLERANCE, 0},
+{849, 1040617590u, 1034835971u, 1040567347u, 0, ATANF_TOLERANCE, 0},
+{850, 955384253u, 3344785562u, 955384253u, 0, ATANF_TOLERANCE, 0},
+{851, 3061417900u, 1172208065u, 3061417900u, 0, ATANF_TOLERANCE, 0},
+{852, 904255535u, 1019967545u, 904255535u, 0, ATANF_TOLERANCE, 0},
+{853, 1022984119u, 3113891410u, 1022979067u, 0, ATANF_TOLERANCE, 0},
+{854, 997362368u, 3112875428u, 997362295u, 0, ATANF_TOLERANCE, 0},
+{855, 900933520u, 1100589187u, 900933520u, 0, ATANF_TOLERANCE, 0},
+{856, 1168623062u, 1143306482u, 1070139840u, 0, ATANF_TOLERANCE, 0},
+{857, 878737490u, 3269908326u, 878737490u, 0, ATANF_TOLERANCE, 0},
+{858, 1039827284u, 1072928888u, 1039746136u, 0, ATANF_TOLERANCE, 0},
+{859, 1021564080u, 1064468397u, 1021560233u, 0, ATANF_TOLERANCE, 0},
+{860, 3458669745u, 3033299853u, 3217625051u, 0, ATANF_TOLERANCE, 0},
+{861, 3327516316u, 3405380971u, 3217624438u, 0, ATANF_TOLERANCE, 0},
+{862, 1040711112u, 3229444200u, 1040659264u, 0, ATANF_TOLERANCE, 0},
+{863, 1134528351u, 3365952513u, 1070115111u, 0, ATANF_TOLERANCE, 0},
+{864, 3039884464u, 1170612785u, 3039884464u, 0, ATANF_TOLERANCE, 0},
+{865, 3414352838u, 3350285760u, 3217625050u, 0, ATANF_TOLERANCE, 0},
+{866, 1133689539u, 1067460093u, 1070112817u, 0, ATANF_TOLERANCE, 0},
+{867, 3455688478u, 3333091960u, 3217625051u, 0, ATANF_TOLERANCE, 0},
+{868, 1137634874u, 1137038869u, 1070121134u, 0, ATANF_TOLERANCE, 0},
+{869, 3415502662u, 955510692u, 3217625050u, 0, ATANF_TOLERANCE, 0},
+{870, 954999730u, 969618597u, 954999730u, 0, ATANF_TOLERANCE, 0},
+{871, 1066157309u, 3241712664u, 1062519577u, 0, ATANF_TOLERANCE, 0},
+{872, 3436353675u, 1174967495u, 3217625051u, 0, ATANF_TOLERANCE, 0},
+{873, 940437609u, 860372396u, 940437609u, 0, ATANF_TOLERANCE, 0},
+{874, 3108347547u, 3434003435u, 3108347546u, 0, ATANF_TOLERANCE, 0},
+{875, 3064200154u, 3158080507u, 3064200154u, 0, ATANF_TOLERANCE, 0},
+{876, 1023889593u, 2979304683u, 1023886369u, 0, ATANF_TOLERANCE, 0},
+{877, 3272661536u, 3461799138u, 3217567140u, 0, ATANF_TOLERANCE, 0},
+{878, 1170245333u, 1233406410u, 1070140041u, 0, ATANF_TOLERANCE, 0},
+{879, 1219052056u, 3369557946u, 1070141378u, 0, ATANF_TOLERANCE, 0},
+{880, 3318983619u, 3259663338u, 3217623812u, 0, ATANF_TOLERANCE, 0},
+{881, 3372118621u, 837597103u, 3217625035u, 0, ATANF_TOLERANCE, 0},
+{882, 3146190320u, 889646054u, 3146190269u, 0, ATANF_TOLERANCE, 0},
+{883, 1299683827u, 966031619u, 1070141403u, 0, ATANF_TOLERANCE, 0},
+{884, 3190796331u, 1320011850u, 3190685309u, 0, ATANF_TOLERANCE, 0},
+{885, 3086068902u, 3484245751u, 3086068902u, 0, ATANF_TOLERANCE, 0},
+{886, 3064155399u, 3176569312u, 3064155399u, 0, ATANF_TOLERANCE, 0},
+{887, 3040314717u, 1071290674u, 3040314717u, 0, ATANF_TOLERANCE, 0},
+{888, 3257224022u, 3361778245u, 3217422092u, 0, ATANF_TOLERANCE, 0},
+{889, 1229268598u, 1066965677u, 1070141392u, 0, ATANF_TOLERANCE, 0},
+{890, 3184078812u, 871003709u, 3184036643u, 0, ATANF_TOLERANCE, 0},
+{891, 1086717248u, 3423795374u, 1068797219u, 0, ATANF_TOLERANCE, 0},
+{892, 3434884607u, 3029593823u, 3217625051u, 0, ATANF_TOLERANCE, 0},
+{893, 3464955606u, 1017987696u, 3217625051u, 0, ATANF_TOLERANCE, 0},
+{894, 1025278524u, 3121856207u, 1025273537u, 0, ATANF_TOLERANCE, 0},
+{895, 1242829722u, 3233935671u, 1070141399u, 0, ATANF_TOLERANCE, 0},
+{896, 3075149137u, 1117325737u, 3075149137u, 0, ATANF_TOLERANCE, 0},
+{897, 1200927971u, 1317167489u, 1070141292u, 0, ATANF_TOLERANCE, 0},
+{898, 3326858092u, 3452602832u, 3217624408u, 0, ATANF_TOLERANCE, 0},
+{899, 1246019790u, 850632217u, 1070141400u, 0, ATANF_TOLERANCE, 0},
+{900, 3184801644u, 1137974313u, 3184752184u, 0, ATANF_TOLERANCE, 0},
+{901, 1136052740u, 3244616020u, 1070118457u, 0, ATANF_TOLERANCE, 0},
+{902, 1069009211u, 3002507482u, 1064723212u, 0, ATANF_TOLERANCE, 0},
+{903, 1015670780u, 1101217251u, 1015669926u, 0, ATANF_TOLERANCE, 0},
+{904, 1012543234u, 1116520440u, 1012542389u, 0, ATANF_TOLERANCE, 0},
+{905, 3316611992u, 3394732912u, 3217623557u, 0, ATANF_TOLERANCE, 0},
+{906, 1087942795u, 3316660295u, 1068911490u, 0, ATANF_TOLERANCE, 0},
+{907, 3426365713u, 3069778532u, 3217625050u, 0, ATANF_TOLERANCE, 0},
+{908, 3066654389u, 3443934204u, 3066654389u, 0, ATANF_TOLERANCE, 0},
+{909, 3295326432u, 1313396175u, 3217616115u, 0, ATANF_TOLERANCE, 0},
+{910, 3318835308u, 3277583511u, 3217623799u, 0, ATANF_TOLERANCE, 0},
+{911, 3283555717u, 891875120u, 3217602142u, 0, ATANF_TOLERANCE, 0},
+{912, 3381255420u, 3015406047u, 3217625043u, 0, ATANF_TOLERANCE, 0},
+{913, 3040485181u, 3375450886u, 3040485181u, 0, ATANF_TOLERANCE, 0},
+{914, 3388772093u, 1032597076u, 3217625047u, 0, ATANF_TOLERANCE, 0},
+{915, 954670189u, 1144923689u, 954670189u, 0, ATANF_TOLERANCE, 0},
+{916, 1319200415u, 3387555900u, 1070141403u, 0, ATANF_TOLERANCE, 0},
+{917, 1279324488u, 3228401212u, 1070141402u, 0, ATANF_TOLERANCE, 0},
+{918, 3217795424u, 865577227u, 3212918140u, 0, ATANF_TOLERANCE, 0},
+{919, 3455131757u, 1260217257u, 3217625051u, 0, ATANF_TOLERANCE, 0},
+{920, 1246947517u, 1087951909u, 1070141400u, 0, ATANF_TOLERANCE, 0},
+{921, 3396723577u, 869285240u, 3217625049u, 0, ATANF_TOLERANCE, 0},
+{922, 3433761025u, 3060143904u, 3217625051u, 0, ATANF_TOLERANCE, 0},
+{923, 3201187455u, 900233172u, 3200520224u, 0, ATANF_TOLERANCE, 0},
+{924, 1173247961u, 1191127979u, 1070140303u, 0, ATANF_TOLERANCE, 0},
+{925, 3037297123u, 3346394818u, 3037297123u, 0, ATANF_TOLERANCE, 0},
+{926, 3248534678u, 1323683800u, 3217207806u, 0, ATANF_TOLERANCE, 0},
+{927, 3083019343u, 3033309444u, 3083019343u, 0, ATANF_TOLERANCE, 0},
+{928, 3042018375u, 3203882372u, 3042018375u, 0, ATANF_TOLERANCE, 0},
+{929, 1082862511u, 3032804719u, 1068245533u, 0, ATANF_TOLERANCE, 0},
+{930, 3157626955u, 3483653298u, 3157626468u, 0, ATANF_TOLERANCE, 0},
+{931, 1341821683u, 3003675365u, 1070141403u, 0, ATANF_TOLERANCE, 0},
+{932, 881101379u, 1190838126u, 881101379u, 0, ATANF_TOLERANCE, 0},
+{933, 1079061705u, 2960507663u, 1067650663u, 0, ATANF_TOLERANCE, 0},
+{934, 3182695954u, 3256861672u, 3182665676u, 0, ATANF_TOLERANCE, 0},
+{935, 1105291533u, 3482971524u, 1069843809u, 0, ATANF_TOLERANCE, 0},
+{936, 1016023520u, 3227712090u, 1016022562u, 0, ATANF_TOLERANCE, 0},
+{937, 3370691006u, 1295870514u, 3217625033u, 0, ATANF_TOLERANCE, 0},
+{938, 1156767169u, 1049756240u, 1070137085u, 0, ATANF_TOLERANCE, 0},
+{939, 3077020499u, 894671462u, 3077020499u, 0, ATANF_TOLERANCE, 0},
+{940, 1104284039u, 3040211914u, 1069822048u, 0, ATANF_TOLERANCE, 0},
+{941, 3335212901u, 3486414589u, 3217624728u, 0, ATANF_TOLERANCE, 0},
+{942, 1093697541u, 3193708441u, 1069383035u, 0, ATANF_TOLERANCE, 0},
+{943, 3266691185u, 1160074593u, 3217532746u, 0, ATANF_TOLERANCE, 0},
+{944, 3179003144u, 1108615803u, 3178982419u, 0, ATANF_TOLERANCE, 0},
+{945, 1094115255u, 3008610212u, 1069409331u, 0, ATANF_TOLERANCE, 0},
+{946, 3424086808u, 3260140004u, 3217625050u, 0, ATANF_TOLERANCE, 0},
+{947, 3353608773u, 1134068114u, 3217624979u, 0, ATANF_TOLERANCE, 0},
+{948, 973664327u, 1319516167u, 973664326u, 0, ATANF_TOLERANCE, 0},
+{949, 882878091u, 3136970767u, 882878091u, 0, ATANF_TOLERANCE, 0},
+{950, 1098662266u, 833740182u, 1069610044u, 0, ATANF_TOLERANCE, 0},
+{951, 927582555u, 947955456u, 927582555u, 0, ATANF_TOLERANCE, 0},
+{952, 3111440310u, 3067634077u, 3111440309u, 0, ATANF_TOLERANCE, 0},
+{953, 3476083859u, 966439623u, 3217625051u, 0, ATANF_TOLERANCE, 0},
+{954, 3038754840u, 932009686u, 3038754840u, 0, ATANF_TOLERANCE, 0},
+{955, 979878744u, 1232482646u, 979878740u, 0, ATANF_TOLERANCE, 0},
+{956, 3464546616u, 3205527253u, 3217625051u, 0, ATANF_TOLERANCE, 0},
+{957, 1002542205u, 3152136093u, 1002542058u, 0, ATANF_TOLERANCE, 0},
+{958, 3443552129u, 3165561391u, 3217625051u, 0, ATANF_TOLERANCE, 0},
+{959, 1287620154u, 3119707283u, 1070141403u, 0, ATANF_TOLERANCE, 0},
+{960, 946058434u, 1249928879u, 946058434u, 0, ATANF_TOLERANCE, 0},
+{961, 3073260205u, 3093124531u, 3073260205u, 0, ATANF_TOLERANCE, 0},
+{962, 1245702957u, 894348966u, 1070141400u, 0, ATANF_TOLERANCE, 0},
+{963, 989655126u, 1308376568u, 989655106u, 0, ATANF_TOLERANCE, 0},
+{964, 1002715618u, 1191006977u, 1002715464u, 0, ATANF_TOLERANCE, 0},
+{965, 3087802274u, 897541752u, 3087802274u, 0, ATANF_TOLERANCE, 0},
+{966, 1000863905u, 1196831314u, 1000863808u, 0, ATANF_TOLERANCE, 0},
+{967, 3415763001u, 3032518431u, 3217625050u, 0, ATANF_TOLERANCE, 0},
+{968, 3283471961u, 1260093226u, 3217601980u, 0, ATANF_TOLERANCE, 0},
+{969, 3311210827u, 1192192264u, 3217622679u, 0, ATANF_TOLERANCE, 0},
+{970, 3026311911u, 2968974374u, 3026311911u, 0, ATANF_TOLERANCE, 0},
+{971, 1198307901u, 1116328249u, 1070141264u, 0, ATANF_TOLERANCE, 0},
+{972, 1288901567u, 1296370667u, 1070141403u, 0, ATANF_TOLERANCE, 0},
+{973, 922255363u, 958305289u, 922255363u, 0, ATANF_TOLERANCE, 0},
+{974, 1113104661u, 944376032u, 1069986527u, 0, ATANF_TOLERANCE, 0},
+{975, 1136714348u, 828849087u, 1070119658u, 0, ATANF_TOLERANCE, 0},
+{976, 948856035u, 1015466475u, 948856035u, 0, ATANF_TOLERANCE, 0},
+{977, 1062512367u, 3229559531u, 1060205391u, 0, ATANF_TOLERANCE, 0},
+{978, 3486907092u, 823220784u, 3217625051u, 0, ATANF_TOLERANCE, 0},
+{979, 1162027071u, 3308983387u, 1070138716u, 0, ATANF_TOLERANCE, 0},
+{980, 1034561811u, 1054043114u, 1034536255u, 0, ATANF_TOLERANCE, 0},
+{981, 3271615417u, 3209997200u, 3217559968u, 0, ATANF_TOLERANCE, 0},
+{982, 1042014529u, 1146708584u, 1041936699u, 0, ATANF_TOLERANCE, 0},
+{983, 1177157787u, 3090208179u, 1070140632u, 0, ATANF_TOLERANCE, 0},
+{984, 3196144817u, 1056118717u, 3195882893u, 0, ATANF_TOLERANCE, 0},
+{985, 3432084552u, 2997091781u, 3217625051u, 0, ATANF_TOLERANCE, 0},
+{986, 1309658335u, 1010219988u, 1070141403u, 0, ATANF_TOLERANCE, 0},
+{987, 1226494979u, 2991604792u, 1070141389u, 0, ATANF_TOLERANCE, 0},
+{988, 3100289712u, 3456334210u, 3100289712u, 0, ATANF_TOLERANCE, 0},
+{989, 3375507013u, 1306310823u, 3217625039u, 0, ATANF_TOLERANCE, 0},
+{990, 3460699001u, 3096700943u, 3217625051u, 0, ATANF_TOLERANCE, 0},
+{991, 3079231719u, 1044386263u, 3079231719u, 0, ATANF_TOLERANCE, 0},
+{992, 3093951884u, 1014115231u, 3093951884u, 0, ATANF_TOLERANCE, 0},
+{993, 3468023178u, 1209565017u, 3217625051u, 0, ATANF_TOLERANCE, 0},
+{994, 1204196034u, 3298625731u, 1070141320u, 0, ATANF_TOLERANCE, 0},
+{995, 3459877411u, 2960476959u, 3217625051u, 0, ATANF_TOLERANCE, 0},
+{996, 909696559u, 1163075690u, 909696559u, 0, ATANF_TOLERANCE, 0},
+{997, 1161439847u, 943449277u, 1070138586u, 0, ATANF_TOLERANCE, 0},
+{998, 908663107u, 939489763u, 908663107u, 0, ATANF_TOLERANCE, 0},
+{999, 1055319316u, 3261813492u, 1054402974u, 0, ATANF_TOLERANCE, 0},
+{1000, 1084378658u, 1009650785u, 1068508453u, 0, ATANF_TOLERANCE, 0},
+{1001, 3053887750u, 3341786453u, 3053887750u, 0, ATANF_TOLERANCE, 0},
+{1002, 3022828828u, 881335251u, 3022828828u, 0, ATANF_TOLERANCE, 0},
+{1003, 1226473697u, 821025132u, 1070141389u, 0, ATANF_TOLERANCE, 0},
+{1004, 1123114742u, 1229815537u, 1070071896u, 0, ATANF_TOLERANCE, 0},
+{1005, 1258114435u, 1291336083u, 1070141402u, 0, ATANF_TOLERANCE, 0},
+{1006, 3468040845u, 3066966245u, 3217625051u, 0, ATANF_TOLERANCE, 0},
+{1007, 1178825761u, 1113195286u, 1070140732u, 0, ATANF_TOLERANCE, 0},
+{1008, 3059266302u, 878503862u, 3059266302u, 0, ATANF_TOLERANCE, 0},
+{1009, 3223384012u, 1130486973u, 3214449981u, 0, ATANF_TOLERANCE, 0},
+{1010, 1019964626u, 1235133609u, 1019961886u, 0, ATANF_TOLERANCE, 0},
+{1011, 3445262427u, 3465211174u, 3217625051u, 0, ATANF_TOLERANCE, 0},
+{1012, 1125653081u, 1207799746u, 1070086253u, 0, ATANF_TOLERANCE, 0},
+{1013, 3337652712u, 3025581813u, 3217624778u, 0, ATANF_TOLERANCE, 0},
+{1014, 1184753508u, 3147374485u, 1070140988u, 0, ATANF_TOLERANCE, 0},
+{1015, 996404791u, 3353251979u, 996404731u, 0, ATANF_TOLERANCE, 0},
+{1016, 1188439315u, 1113484271u, 1070141097u, 0, ATANF_TOLERANCE, 0},
+{1017, 906557513u, 3006513432u, 906557513u, 0, ATANF_TOLERANCE, 0},
+{1018, 916831283u, 999465787u, 916831283u, 0, ATANF_TOLERANCE, 0},
+{1019, 996786317u, 3179221951u, 996786252u, 0, ATANF_TOLERANCE, 0},
+{1020, 3461635065u, 1004690387u, 3217625051u, 0, ATANF_TOLERANCE, 0},
+{1021, 1188167943u, 1200744896u, 1070141091u, 0, ATANF_TOLERANCE, 0},
+{1022, 3036502395u, 1172597364u, 3036502395u, 0, ATANF_TOLERANCE, 0},
+{1023, 891257783u, 1267560050u, 891257783u, 0, ATANF_TOLERANCE, 0},
+{1024, 3290079438u, 846519377u, 3217611488u, 0, ATANF_TOLERANCE, 0},
+{1025, 3350690327u, 2967953392u, 3217624961u, 0, ATANF_TOLERANCE, 0},
+{1026, 1102061604u, 3424449935u, 1069760636u, 0, ATANF_TOLERANCE, 0},
+{1027, 1282351521u, 3039376424u, 1070141402u, 0, ATANF_TOLERANCE, 0},
+{1028, 3458861065u, 3392466405u, 3217625051u, 0, ATANF_TOLERANCE, 0},
+{1029, 3095256878u, 1023623326u, 3095256878u, 0, ATANF_TOLERANCE, 0},
+{1030, 3163373610u, 843150426u, 3163372692u, 0, ATANF_TOLERANCE, 0},
+{1031, 3228793330u, 855146890u, 3215468806u, 0, ATANF_TOLERANCE, 0},
+{1032, 3422194733u, 893873945u, 3217625050u, 0, ATANF_TOLERANCE, 0},
+{1033, 3083885296u, 974543672u, 3083885296u, 0, ATANF_TOLERANCE, 0},
+{1034, 1261940623u, 3402349985u, 1070141402u, 0, ATANF_TOLERANCE, 0},
+{1035, 3400603081u, 3234396843u, 3217625049u, 0, ATANF_TOLERANCE, 0},
+{1036, 1219411812u, 2961857939u, 1070141379u, 0, ATANF_TOLERANCE, 0},
+{1037, 3094833770u, 805351108u, 3094833770u, 0, ATANF_TOLERANCE, 0},
+{1038, 3139250800u, 3079109479u, 3139250780u, 0, ATANF_TOLERANCE, 0},
+{1039, 886201503u, 3272760705u, 886201503u, 0, ATANF_TOLERANCE, 0},
+{1040, 3297366026u, 1089966380u, 3217617442u, 0, ATANF_TOLERANCE, 0},
+{1041, 1218488455u, 3309646450u, 1070141377u, 0, ATANF_TOLERANCE, 0},
+{1042, 3040358923u, 3093401553u, 3040358923u, 0, ATANF_TOLERANCE, 0},
+{1043, 1283938137u, 1196383822u, 1070141403u, 0, ATANF_TOLERANCE, 0},
+{1044, 3182551696u, 3029982441u, 3182522512u, 0, ATANF_TOLERANCE, 0},
+{1045, 1317098613u, 949986176u, 1070141403u, 0, ATANF_TOLERANCE, 0},
+{1046, 3116209179u, 3303588342u, 3116209179u, 0, ATANF_TOLERANCE, 0},
+{1047, 3431703657u, 3014443710u, 3217625051u, 0, ATANF_TOLERANCE, 0},
+{1048, 3239728775u, 927815421u, 3216758511u, 0, ATANF_TOLERANCE, 0},
+{1049, 3207141672u, 933456504u, 3205853333u, 0, ATANF_TOLERANCE, 0},
+{1050, 3154378805u, 905462392u, 3154378618u, 0, ATANF_TOLERANCE, 0},
+{1051, 3069658155u, 1041452042u, 3069658155u, 0, ATANF_TOLERANCE, 0},
+{1052, 3313160088u, 2964063309u, 3217622960u, 0, ATANF_TOLERANCE, 0},
+{1053, 3207056527u, 3384206601u, 3205793915u, 0, ATANF_TOLERANCE, 0},
+{1054, 1284174954u, 3436881197u, 1070141403u, 0, ATANF_TOLERANCE, 0},
+{1055, 3156081645u, 3308839704u, 3156081325u, 0, ATANF_TOLERANCE, 0},
+{1056, 1063693032u, 976661408u, 1060880281u, 0, ATANF_TOLERANCE, 0},
+{1057, 3036026175u, 1251203998u, 3036026175u, 0, ATANF_TOLERANCE, 0},
+{1058, 1102631663u, 3396951425u, 1069778533u, 0, ATANF_TOLERANCE, 0},
+{1059, 968803479u, 992989712u, 968803479u, 0, ATANF_TOLERANCE, 0},
+{1060, 3273080388u, 3109405906u, 3217569587u, 0, ATANF_TOLERANCE, 0},
+{1061, 1172529774u, 3294550127u, 1070140250u, 0, ATANF_TOLERANCE, 0},
+{1062, 1306695905u, 1292690378u, 1070141403u, 0, ATANF_TOLERANCE, 0},
+{1063, 1003649752u, 1218792138u, 1003649562u, 0, ATANF_TOLERANCE, 0},
+{1064, 1078478376u, 1326246424u, 1067546758u, 0, ATANF_TOLERANCE, 0},
+{1065, 3158855023u, 3151283866u, 3158854369u, 0, ATANF_TOLERANCE, 0},
+{1066, 1165177679u, 3276237026u, 1070139247u, 0, ATANF_TOLERANCE, 0},
+{1067, 3403009513u, 3381966453u, 3217625049u, 0, ATANF_TOLERANCE, 0},
+{1068, 952348506u, 3377573987u, 952348506u, 0, ATANF_TOLERANCE, 0},
+{1069, 1222777442u, 1125769920u, 1070141385u, 0, ATANF_TOLERANCE, 0},
+{1070, 1325324763u, 978336043u, 1070141403u, 0, ATANF_TOLERANCE, 0},
+{1071, 3363524213u, 3202991311u, 3217625018u, 0, ATANF_TOLERANCE, 0},
+{1072, 1158950321u, 1073578913u, 1070137864u, 0, ATANF_TOLERANCE, 0},
+{1073, 903129873u, 3416864271u, 903129873u, 0, ATANF_TOLERANCE, 0},
+{1074, 3078339944u, 988173985u, 3078339944u, 0, ATANF_TOLERANCE, 0},
+{1075, 1208345407u, 1254181270u, 1070141341u, 0, ATANF_TOLERANCE, 0},
+{1076, 1258634105u, 1247426200u, 1070141402u, 0, ATANF_TOLERANCE, 0},
+{1077, 1248478509u, 1287895126u, 1070141400u, 0, ATANF_TOLERANCE, 0},
+{1078, 1153863988u, 3430539165u, 1070136122u, 0, ATANF_TOLERANCE, 0},
+{1079, 1235620969u, 866627358u, 1070141396u, 0, ATANF_TOLERANCE, 0},
+{1080, 1097120930u, 3221726305u, 1069555579u, 0, ATANF_TOLERANCE, 0},
+{1081, 3469778622u, 1200179013u, 3217625051u, 0, ATANF_TOLERANCE, 0},
+{1082, 1147712200u, 931865525u, 1070132390u, 0, ATANF_TOLERANCE, 0},
+{1083, 1124721745u, 3058969650u, 1070080569u, 0, ATANF_TOLERANCE, 0},
+{1084, 3261744304u, 1043806501u, 3217481834u, 0, ATANF_TOLERANCE, 0},
+{1085, 1064922416u, 1320485628u, 1061534605u, 0, ATANF_TOLERANCE, 0},
+{1086, 3303160152u, 3075455322u, 3217620416u, 0, ATANF_TOLERANCE, 0},
+{1087, 1315090496u, 3269683237u, 1070141403u, 0, ATANF_TOLERANCE, 0},
+{1088, 3230403187u, 1322841992u, 3215740568u, 0, ATANF_TOLERANCE, 0},
+{1089, 1335399673u, 974138676u, 1070141403u, 0, ATANF_TOLERANCE, 0},
+{1090, 1072458508u, 3372833993u, 1065978748u, 0, ATANF_TOLERANCE, 0},
+{1091, 3303015249u, 3015039539u, 3217620370u, 0, ATANF_TOLERANCE, 0},
+{1092, 3252139741u, 1059615003u, 3217314092u, 0, ATANF_TOLERANCE, 0},
+{1093, 3468519966u, 3113982619u, 3217625051u, 0, ATANF_TOLERANCE, 0},
+{1094, 1006231203u, 897530770u, 1006230885u, 0, ATANF_TOLERANCE, 0},
+{1095, 951554138u, 1001144381u, 951554138u, 0, ATANF_TOLERANCE, 0},
+{1096, 942046828u, 986341002u, 942046828u, 0, ATANF_TOLERANCE, 0},
+{1097, 3319723279u, 3414482416u, 3217623875u, 0, ATANF_TOLERANCE, 0},
+{1098, 3255104167u, 928827688u, 3217372739u, 0, ATANF_TOLERANCE, 0},
+{1099, 1155477903u, 3104812800u, 1070136705u, 0, ATANF_TOLERANCE, 0},
+{1100, 3273889176u, 980486479u, 3217573771u, 0, ATANF_TOLERANCE, 0},
+{1101, 3237813668u, 3441016803u, 3216570123u, 0, ATANF_TOLERANCE, 0},
+{1102, 1228207362u, 2985476579u, 1070141391u, 0, ATANF_TOLERANCE, 0},
+{1103, 975349337u, 1311932596u, 975349336u, 0, ATANF_TOLERANCE, 0},
+{1104, 1290175785u, 3008182462u, 1070141403u, 0, ATANF_TOLERANCE, 0},
+{1105, 981908840u, 3314038398u, 981908837u, 0, ATANF_TOLERANCE, 0},
+{1106, 941187647u, 1107765599u, 941187647u, 0, ATANF_TOLERANCE, 0},
+{1107, 1214223128u, 3225536822u, 1070141366u, 0, ATANF_TOLERANCE, 0},
+{1108, 3422922584u, 1086391131u, 3217625050u, 0, ATANF_TOLERANCE, 0},
+{1109, 1315857601u, 3487600045u, 1070141403u, 0, ATANF_TOLERANCE, 0},
+{1110, 3453226030u, 3233768835u, 3217625051u, 0, ATANF_TOLERANCE, 0},
+{1111, 1078359574u, 3199175230u, 1067524560u, 0, ATANF_TOLERANCE, 0},
+{1112, 1029557624u, 3302959071u, 1029543441u, 0, ATANF_TOLERANCE, 0},
+{1113, 1207675424u, 3042692550u, 1070141338u, 0, ATANF_TOLERANCE, 0},
+{1114, 1028355074u, 3442294040u, 1028344125u, 0, ATANF_TOLERANCE, 0},
+{1115, 3119299090u, 1187096397u, 3119299089u, 0, ATANF_TOLERANCE, 0},
+{1116, 1248421894u, 3367769132u, 1070141400u, 0, ATANF_TOLERANCE, 0},
+{1117, 3353251994u, 1095517730u, 3217624977u, 0, ATANF_TOLERANCE, 0},
+{1118, 876926659u, 3288089977u, 876926659u, 0, ATANF_TOLERANCE, 0},
+{1119, 1076752219u, 876236939u, 1067183758u, 0, ATANF_TOLERANCE, 0},
+{1120, 3388531942u, 2988520062u, 3217625047u, 0, ATANF_TOLERANCE, 0},
+{1121, 1273395082u, 3031189261u, 1070141402u, 0, ATANF_TOLERANCE, 0},
+{1122, 3385588183u, 3258252464u, 3217625046u, 0, ATANF_TOLERANCE, 0},
+{1123, 3192315328u, 3289489214u, 3192155091u, 0, ATANF_TOLERANCE, 0},
+{1124, 3441804648u, 3274638356u, 3217625051u, 0, ATANF_TOLERANCE, 0},
+{1125, 3392827417u, 1277961150u, 3217625048u, 0, ATANF_TOLERANCE, 0},
+{1126, 1161241793u, 1328003707u, 1070138540u, 0, ATANF_TOLERANCE, 0},
+{1127, 3034494183u, 3041579130u, 3034494183u, 0, ATANF_TOLERANCE, 0},
+{1128, 1171318485u, 3374409104u, 1070140148u, 0, ATANF_TOLERANCE, 0},
+{1129, 3047748143u, 831102792u, 3047748143u, 0, ATANF_TOLERANCE, 0},
+{1130, 1001216371u, 3052357038u, 1001216265u, 0, ATANF_TOLERANCE, 0},
+{1131, 912515889u, 1074635609u, 912515889u, 0, ATANF_TOLERANCE, 0},
+{1132, 3391452505u, 897989232u, 3217625048u, 0, ATANF_TOLERANCE, 0},
+{1133, 3249603369u, 3147662248u, 3217246189u, 0, ATANF_TOLERANCE, 0},
+{1134, 1220264047u, 2960450369u, 1070141381u, 0, ATANF_TOLERANCE, 0},
+{1135, 3169816394u, 988430929u, 3169811921u, 0, ATANF_TOLERANCE, 0},
+{1136, 3098997418u, 3002162688u, 3098997418u, 0, ATANF_TOLERANCE, 0},
+{1137, 3282212423u, 3174079140u, 3217599253u, 0, ATANF_TOLERANCE, 0},
+{1138, 3352293320u, 3247843425u, 3217624972u, 0, ATANF_TOLERANCE, 0},
+{1139, 3296358441u, 875645354u, 3217616677u, 0, ATANF_TOLERANCE, 0},
+{1140, 1197828352u, 3245614728u, 1070141260u, 0, ATANF_TOLERANCE, 0},
+{1141, 3340510371u, 914930263u, 3217624841u, 0, ATANF_TOLERANCE, 0},
+{1142, 1127109339u, 3368125489u, 1070093282u, 0, ATANF_TOLERANCE, 0},
+{1143, 909467381u, 1232375752u, 909467381u, 0, ATANF_TOLERANCE, 0},
+{1144, 1200599955u, 2981200675u, 1070141289u, 0, ATANF_TOLERANCE, 0},
+{1145, 962230977u, 2988248037u, 962230977u, 0, ATANF_TOLERANCE, 0},
+{1146, 3192887808u, 3191848339u, 3192705872u, 0, ATANF_TOLERANCE, 0},
+{1147, 3237183876u, 3179379969u, 3216528954u, 0, ATANF_TOLERANCE, 0},
+{1148, 939285924u, 3056079386u, 939285924u, 0, ATANF_TOLERANCE, 0},
+{1149, 944050180u, 3452557879u, 944050180u, 0, ATANF_TOLERANCE, 0},
+{1150, 3058135703u, 3090284601u, 3058135703u, 0, ATANF_TOLERANCE, 0},
+{1151, 3480592662u, 3261728191u, 3217625051u, 0, ATANF_TOLERANCE, 0},
+{1152, 3061939312u, 3274418540u, 3061939312u, 0, ATANF_TOLERANCE, 0},
+{1153, 1003299981u, 853295521u, 1003299805u, 0, ATANF_TOLERANCE, 0},
+{1154, 1155775526u, 1255814444u, 1070136798u, 0, ATANF_TOLERANCE, 0},
+{1155, 1234491880u, 3408568717u, 1070141396u, 0, ATANF_TOLERANCE, 0}
+
+// AUTOMATICALLY GENERATED VECTORS STOP
+
+};
+
+#endif // CYGONCE_LIBM_ATANF_H multiple inclusion protection
+
+// EOF atanf.h
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/atanhf.c b/ecos/packages/language/c/libm/current/tests/vectors/atanhf.c
new file mode 100644
index 0000000..047ec58
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/atanhf.c
@@ -0,0 +1,115 @@
+//===========================================================================
+//
+// atanhf.c
+//
+// Test of atanhf() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// Declarations for test system:
+//
+// TESTCASE_TYPE=CYG_TEST_MODULE
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include <cyg/infra/testcase.h> // Test infrastructure
+#include <math.h> // Header for this package
+#include <sys/ieeefp.h> // Cyg_libm_ieee_float_shape_type
+#include "vectors/vector_support_float.h"// extra support for math tests
+
+#include "vectors/atanhf.h"
+
+// FUNCTIONS
+
+static void
+test( CYG_ADDRWORD data )
+{
+ cyg_ucount32 vec_size;
+ cyg_bool ret;
+
+ vec_size = sizeof(atanhf_vec) / sizeof(Cyg_libm_test_float_vec_t);
+ ret = doTestVecFloat( (CYG_ADDRWORD) &atanhf, CYG_LIBM_TEST_VEC_FLOAT,
+ CYG_LIBM_TEST_VEC_NONE, CYG_LIBM_TEST_VEC_FLOAT,
+ &atanhf_vec[0], vec_size );
+
+ if (ret==true)
+ {
+ CYG_TEST_PASS("atanhf() is stable");
+ } // if
+ else
+ {
+ CYG_TEST_FAIL("atanhf() failed tests");
+ } // else
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for Math "
+ "library atanhf() function");
+} // test()
+
+
+int
+main(int argc, char *argv[])
+{
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for Math library "
+ "atanhf() function");
+
+ START_TEST( test );
+
+ CYG_TEST_PASS_FINISH("Testing is not applicable to this configuration");
+
+} // main()
+
+
+// EOF atanhf.c
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/atanhf.h b/ecos/packages/language/c/libm/current/tests/vectors/atanhf.h
new file mode 100644
index 0000000..dec35f8
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/atanhf.h
@@ -0,0 +1,361 @@
+#ifndef CYGONCE_LIBM_ATANHF_H
+#define CYGONCE_LIBM_ATANHF_H
+//===========================================================================
+//
+// atanhf.h
+//
+// Test vectors for testing of atanhf() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage: #include "vectors/atanhf.h"
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include "vectors/vector_support_float.h"// extra support for math tests
+
+#define ATANH_TOLERANCE 1.0E-04
+
+static const Cyg_libm_test_float_vec_t atanhf_vec[] = {
+
+// AUTOMATICALLY GENERATED VECTORS START
+
+{0, 3214514586u, 1115684864u, 2143289344u, EDOM, ATANH_TOLERANCE, 0},
+{1, 3214430700u, 1115684864u, 2143289344u, EDOM, ATANH_TOLERANCE, 0},
+{2, 3214346813u, 1115684864u, 2143289344u, EDOM, ATANH_TOLERANCE, 0},
+{3, 3214262927u, 1115684864u, 2143289344u, EDOM, ATANH_TOLERANCE, 0},
+{4, 3214179041u, 1115684864u, 2143289344u, EDOM, ATANH_TOLERANCE, 0},
+{5, 3214095155u, 1115684864u, 2143289344u, EDOM, ATANH_TOLERANCE, 0},
+{6, 3214011269u, 1115684864u, 2143289344u, EDOM, ATANH_TOLERANCE, 0},
+{7, 3213927383u, 1115684864u, 2143289344u, EDOM, ATANH_TOLERANCE, 0},
+{8, 3213843497u, 1115684864u, 2143289344u, EDOM, ATANH_TOLERANCE, 0},
+{9, 3213759611u, 1115684864u, 2143289344u, EDOM, ATANH_TOLERANCE, 0},
+{10, 3213675725u, 1115684864u, 2143289344u, EDOM, ATANH_TOLERANCE, 0},
+{11, 3213591839u, 1115684864u, 2143289344u, EDOM, ATANH_TOLERANCE, 0},
+{12, 3213507953u, 1115684864u, 2143289344u, EDOM, ATANH_TOLERANCE, 0},
+{13, 3213424067u, 1115684864u, 2143289344u, EDOM, ATANH_TOLERANCE, 0},
+{14, 3213340180u, 1115684864u, 2143289344u, EDOM, ATANH_TOLERANCE, 0},
+{15, 3213256294u, 1115684864u, 2143289344u, EDOM, ATANH_TOLERANCE, 0},
+{16, 3213172408u, 1115684864u, 2143289344u, EDOM, ATANH_TOLERANCE, 0},
+{17, 3213088522u, 1115684864u, 2143289344u, EDOM, ATANH_TOLERANCE, 0},
+{18, 3213004636u, 1115684864u, 2143289344u, EDOM, ATANH_TOLERANCE, 0},
+{19, 3212920750u, 1115684864u, 2143289344u, EDOM, ATANH_TOLERANCE, 0},
+{20, 3212836864u, 1115684864u, 4286578688u, EDOM, ATANH_TOLERANCE, 0},
+{21, 3212669092u, 3223937731u, 3223937731u, 0, ATANH_TOLERANCE, 0},
+{22, 3212501320u, 3222473531u, 3222473531u, 0, ATANH_TOLERANCE, 0},
+{23, 3212333548u, 3221612590u, 3221612590u, 0, ATANH_TOLERANCE, 0},
+{24, 3212165775u, 3220771731u, 3220771731u, 0, ATANH_TOLERANCE, 0},
+{25, 3211998003u, 3219814346u, 3219814346u, 0, ATANH_TOLERANCE, 0},
+{26, 3211830231u, 3219028070u, 3219028070u, 0, ATANH_TOLERANCE, 0},
+{27, 3211662459u, 3218359840u, 3218359840u, 0, ATANH_TOLERANCE, 0},
+{28, 3211494687u, 3217777981u, 3217777981u, 0, ATANH_TOLERANCE, 0},
+{29, 3211326915u, 3217262061u, 3217262061u, 0, ATANH_TOLERANCE, 0},
+{30, 3211159142u, 3216798127u, 3216798127u, 0, ATANH_TOLERANCE, 0},
+{31, 3210991370u, 3216376234u, 3216376234u, 0, ATANH_TOLERANCE, 0},
+{32, 3210823598u, 3215989031u, 3215989031u, 0, ATANH_TOLERANCE, 0},
+{33, 3210655826u, 3215630939u, 3215630939u, 0, ATANH_TOLERANCE, 0},
+{34, 3210488054u, 3215297618u, 3215297618u, 0, ATANH_TOLERANCE, 0},
+{35, 3210320282u, 3214985630u, 3214985630u, 0, ATANH_TOLERANCE, 0},
+{36, 3210152509u, 3214692201u, 3214692201u, 0, ATANH_TOLERANCE, 0},
+{37, 3209984737u, 3214415066u, 3214415066u, 0, ATANH_TOLERANCE, 0},
+{38, 3209816965u, 3214152344u, 3214152344u, 0, ATANH_TOLERANCE, 0},
+{39, 3209649193u, 3213902461u, 3213902461u, 0, ATANH_TOLERANCE, 0},
+{40, 3209481421u, 3213664084u, 3213664084u, 0, ATANH_TOLERANCE, 0},
+{41, 3209313649u, 3213436077u, 3213436077u, 0, ATANH_TOLERANCE, 0},
+{42, 3209145876u, 3213217459u, 3213217459u, 0, ATANH_TOLERANCE, 0},
+{43, 3208978104u, 3213007385u, 3213007385u, 0, ATANH_TOLERANCE, 0},
+{44, 3208810332u, 3212773363u, 3212773363u, 0, ATANH_TOLERANCE, 0},
+{45, 3208642560u, 3212383125u, 3212383125u, 0, ATANH_TOLERANCE, 0},
+{46, 3208474788u, 3212006046u, 3212006046u, 0, ATANH_TOLERANCE, 0},
+{47, 3208307016u, 3211641108u, 3211641108u, 0, ATANH_TOLERANCE, 0},
+{48, 3208139244u, 3211287405u, 3211287405u, 0, ATANH_TOLERANCE, 0},
+{49, 3207971471u, 3210944122u, 3210944122u, 0, ATANH_TOLERANCE, 0},
+{50, 3207803699u, 3210610536u, 3210610536u, 0, ATANH_TOLERANCE, 0},
+{51, 3207635927u, 3210285985u, 3210285985u, 0, ATANH_TOLERANCE, 0},
+{52, 3207468155u, 3209969873u, 3209969873u, 0, ATANH_TOLERANCE, 0},
+{53, 3207300383u, 3209661661u, 3209661661u, 0, ATANH_TOLERANCE, 0},
+{54, 3207132611u, 3209360854u, 3209360854u, 0, ATANH_TOLERANCE, 0},
+{55, 3206964838u, 3209067001u, 3209067001u, 0, ATANH_TOLERANCE, 0},
+{56, 3206797066u, 3208779692u, 3208779692u, 0, ATANH_TOLERANCE, 0},
+{57, 3206629294u, 3208498547u, 3208498547u, 0, ATANH_TOLERANCE, 0},
+{58, 3206461522u, 3208223215u, 3208223215u, 0, ATANH_TOLERANCE, 0},
+{59, 3206293750u, 3207953375u, 3207953375u, 0, ATANH_TOLERANCE, 0},
+{60, 3206125978u, 3207688728u, 3207688728u, 0, ATANH_TOLERANCE, 0},
+{61, 3205958205u, 3207428997u, 3207428997u, 0, ATANH_TOLERANCE, 0},
+{62, 3205790433u, 3207173927u, 3207173927u, 0, ATANH_TOLERANCE, 0},
+{63, 3205622661u, 3206923278u, 3206923278u, 0, ATANH_TOLERANCE, 0},
+{64, 3205454889u, 3206676827u, 3206676827u, 0, ATANH_TOLERANCE, 0},
+{65, 3205287117u, 3206434365u, 3206434365u, 0, ATANH_TOLERANCE, 0},
+{66, 3205119345u, 3206195697u, 3206195697u, 0, ATANH_TOLERANCE, 0},
+{67, 3204951572u, 3205960640u, 3205960640u, 0, ATANH_TOLERANCE, 0},
+{68, 3204783800u, 3205729024u, 3205729024u, 0, ATANH_TOLERANCE, 0},
+{69, 3204616028u, 3205500687u, 3205500687u, 0, ATANH_TOLERANCE, 0},
+{70, 3204448256u, 3205275476u, 3205275476u, 0, ATANH_TOLERANCE, 0},
+{71, 3204112712u, 3205053248u, 3205053248u, 0, ATANH_TOLERANCE, 0},
+{72, 3203777167u, 3204833868u, 3204833868u, 0, ATANH_TOLERANCE, 0},
+{73, 3203441623u, 3204617208u, 3204617208u, 0, ATANH_TOLERANCE, 0},
+{74, 3203106079u, 3204358038u, 3204358038u, 0, ATANH_TOLERANCE, 0},
+{75, 3202770534u, 3203934881u, 3203934881u, 0, ATANH_TOLERANCE, 0},
+{76, 3202434990u, 3203516476u, 3203516476u, 0, ATANH_TOLERANCE, 0},
+{77, 3202099446u, 3203102612u, 3203102612u, 0, ATANH_TOLERANCE, 0},
+{78, 3201763901u, 3202693091u, 3202693091u, 0, ATANH_TOLERANCE, 0},
+{79, 3201428357u, 3202287727u, 3202287727u, 0, ATANH_TOLERANCE, 0},
+{80, 3201092813u, 3201886339u, 3201886339u, 0, ATANH_TOLERANCE, 0},
+{81, 3200757268u, 3201488755u, 3201488755u, 0, ATANH_TOLERANCE, 0},
+{82, 3200421724u, 3201094814u, 3201094814u, 0, ATANH_TOLERANCE, 0},
+{83, 3200086180u, 3200704357u, 3200704357u, 0, ATANH_TOLERANCE, 0},
+{84, 3199750636u, 3200317233u, 3200317233u, 0, ATANH_TOLERANCE, 0},
+{85, 3199415091u, 3199933297u, 3199933297u, 0, ATANH_TOLERANCE, 0},
+{86, 3199079547u, 3199552413u, 3199552413u, 0, ATANH_TOLERANCE, 0},
+{87, 3198744003u, 3199174448u, 3199174448u, 0, ATANH_TOLERANCE, 0},
+{88, 3198408458u, 3198799270u, 3198799270u, 0, ATANH_TOLERANCE, 0},
+{89, 3198072914u, 3198426759u, 3198426759u, 0, ATANH_TOLERANCE, 0},
+{90, 3197737370u, 3198056795u, 3198056795u, 0, ATANH_TOLERANCE, 0},
+{91, 3197401825u, 3197689261u, 3197689261u, 0, ATANH_TOLERANCE, 0},
+{92, 3197066281u, 3197324049u, 3197324049u, 0, ATANH_TOLERANCE, 0},
+{93, 3196730737u, 3196961049u, 3196961049u, 0, ATANH_TOLERANCE, 0},
+{94, 3196395192u, 3196600156u, 3196600156u, 0, ATANH_TOLERANCE, 0},
+{95, 3196059648u, 3196241272u, 3196241272u, 0, ATANH_TOLERANCE, 0},
+{96, 3195388559u, 3195708944u, 3195708944u, 0, ATANH_TOLERANCE, 0},
+{97, 3194717471u, 3194998622u, 3194998622u, 0, ATANH_TOLERANCE, 0},
+{98, 3194046382u, 3194291739u, 3194291739u, 0, ATANH_TOLERANCE, 0},
+{99, 3193375293u, 3193588118u, 3193588118u, 0, ATANH_TOLERANCE, 0},
+{100, 3192704205u, 3192887583u, 3192887583u, 0, ATANH_TOLERANCE, 0},
+{101, 3192033116u, 3192189961u, 3192189961u, 0, ATANH_TOLERANCE, 0},
+{102, 3191362028u, 3191495084u, 3191495084u, 0, ATANH_TOLERANCE, 0},
+{103, 3190690939u, 3190802787u, 3190802787u, 0, ATANH_TOLERANCE, 0},
+{104, 3190019850u, 3190112909u, 3190112909u, 0, ATANH_TOLERANCE, 0},
+{105, 3189348762u, 3189425295u, 3189425295u, 0, ATANH_TOLERANCE, 0},
+{106, 3188677673u, 3188739788u, 3188739788u, 0, ATANH_TOLERANCE, 0},
+{107, 3188006584u, 3188056235u, 3188056235u, 0, ATANH_TOLERANCE, 0},
+{108, 3186999951u, 3187077935u, 3187077935u, 0, ATANH_TOLERANCE, 0},
+{109, 3185657774u, 3185717758u, 3185717758u, 0, ATANH_TOLERANCE, 0},
+{110, 3184315597u, 3184360607u, 3184360607u, 0, ATANH_TOLERANCE, 0},
+{111, 3182973420u, 3183006194u, 3183006194u, 0, ATANH_TOLERANCE, 0},
+{112, 3181631242u, 3181654236u, 3181654236u, 0, ATANH_TOLERANCE, 0},
+{113, 3180289065u, 3180304456u, 3180304456u, 0, ATANH_TOLERANCE, 0},
+{114, 3178611343u, 3178630713u, 3178630713u, 0, ATANH_TOLERANCE, 0},
+{115, 3175926989u, 3175938190u, 3175938190u, 0, ATANH_TOLERANCE, 0},
+{116, 3173242634u, 3173248366u, 3173248366u, 0, ATANH_TOLERANCE, 0},
+{117, 3170222735u, 3170227570u, 3170227570u, 0, ATANH_TOLERANCE, 0},
+{118, 3164854026u, 3164855458u, 3164855458u, 0, ATANH_TOLERANCE, 0},
+{119, 3156465418u, 3156465776u, 3156465776u, 0, ATANH_TOLERANCE, 0},
+{120, 1008981770u, 1008982128u, 1008982128u, 0, ATANH_TOLERANCE, 0},
+{121, 1017370378u, 1017371810u, 1017371810u, 0, ATANH_TOLERANCE, 0},
+{122, 1022739087u, 1022743922u, 1022743922u, 0, ATANH_TOLERANCE, 0},
+{123, 1025758986u, 1025764718u, 1025764718u, 0, ATANH_TOLERANCE, 0},
+{124, 1028443341u, 1028454542u, 1028454542u, 0, ATANH_TOLERANCE, 0},
+{125, 1031127695u, 1031147065u, 1031147065u, 0, ATANH_TOLERANCE, 0},
+{126, 1032805417u, 1032820808u, 1032820808u, 0, ATANH_TOLERANCE, 0},
+{127, 1034147594u, 1034170588u, 1034170588u, 0, ATANH_TOLERANCE, 0},
+{128, 1035489772u, 1035522546u, 1035522546u, 0, ATANH_TOLERANCE, 0},
+{129, 1036831949u, 1036876959u, 1036876959u, 0, ATANH_TOLERANCE, 0},
+{130, 1038174126u, 1038234110u, 1038234110u, 0, ATANH_TOLERANCE, 0},
+{131, 1039516303u, 1039594287u, 1039594287u, 0, ATANH_TOLERANCE, 0},
+{132, 1040522936u, 1040572587u, 1040572587u, 0, ATANH_TOLERANCE, 0},
+{133, 1041194025u, 1041256140u, 1041256140u, 0, ATANH_TOLERANCE, 0},
+{134, 1041865114u, 1041941647u, 1041941647u, 0, ATANH_TOLERANCE, 0},
+{135, 1042536202u, 1042629261u, 1042629261u, 0, ATANH_TOLERANCE, 0},
+{136, 1043207291u, 1043319139u, 1043319139u, 0, ATANH_TOLERANCE, 0},
+{137, 1043878380u, 1044011436u, 1044011436u, 0, ATANH_TOLERANCE, 0},
+{138, 1044549468u, 1044706313u, 1044706313u, 0, ATANH_TOLERANCE, 0},
+{139, 1045220557u, 1045403935u, 1045403935u, 0, ATANH_TOLERANCE, 0},
+{140, 1045891645u, 1046104470u, 1046104470u, 0, ATANH_TOLERANCE, 0},
+{141, 1046562734u, 1046808091u, 1046808091u, 0, ATANH_TOLERANCE, 0},
+{142, 1047233823u, 1047514974u, 1047514974u, 0, ATANH_TOLERANCE, 0},
+{143, 1047904911u, 1048225296u, 1048225296u, 0, ATANH_TOLERANCE, 0},
+{144, 1048576000u, 1048757624u, 1048757624u, 0, ATANH_TOLERANCE, 0},
+{145, 1048911544u, 1049116508u, 1049116508u, 0, ATANH_TOLERANCE, 0},
+{146, 1049247089u, 1049477401u, 1049477401u, 0, ATANH_TOLERANCE, 0},
+{147, 1049582633u, 1049840401u, 1049840401u, 0, ATANH_TOLERANCE, 0},
+{148, 1049918177u, 1050205613u, 1050205613u, 0, ATANH_TOLERANCE, 0},
+{149, 1050253722u, 1050573147u, 1050573147u, 0, ATANH_TOLERANCE, 0},
+{150, 1050589266u, 1050943111u, 1050943111u, 0, ATANH_TOLERANCE, 0},
+{151, 1050924810u, 1051315622u, 1051315622u, 0, ATANH_TOLERANCE, 0},
+{152, 1051260355u, 1051690800u, 1051690800u, 0, ATANH_TOLERANCE, 0},
+{153, 1051595899u, 1052068765u, 1052068765u, 0, ATANH_TOLERANCE, 0},
+{154, 1051931443u, 1052449649u, 1052449649u, 0, ATANH_TOLERANCE, 0},
+{155, 1052266988u, 1052833585u, 1052833585u, 0, ATANH_TOLERANCE, 0},
+{156, 1052602532u, 1053220709u, 1053220709u, 0, ATANH_TOLERANCE, 0},
+{157, 1052938076u, 1053611166u, 1053611166u, 0, ATANH_TOLERANCE, 0},
+{158, 1053273620u, 1054005107u, 1054005107u, 0, ATANH_TOLERANCE, 0},
+{159, 1053609165u, 1054402691u, 1054402691u, 0, ATANH_TOLERANCE, 0},
+{160, 1053944709u, 1054804079u, 1054804079u, 0, ATANH_TOLERANCE, 0},
+{161, 1054280253u, 1055209443u, 1055209443u, 0, ATANH_TOLERANCE, 0},
+{162, 1054615798u, 1055618964u, 1055618964u, 0, ATANH_TOLERANCE, 0},
+{163, 1054951342u, 1056032828u, 1056032828u, 0, ATANH_TOLERANCE, 0},
+{164, 1055286886u, 1056451233u, 1056451233u, 0, ATANH_TOLERANCE, 0},
+{165, 1055622431u, 1056874390u, 1056874390u, 0, ATANH_TOLERANCE, 0},
+{166, 1055957975u, 1057133560u, 1057133560u, 0, ATANH_TOLERANCE, 0},
+{167, 1056293519u, 1057350220u, 1057350220u, 0, ATANH_TOLERANCE, 0},
+{168, 1056629064u, 1057569600u, 1057569600u, 0, ATANH_TOLERANCE, 0},
+{169, 1056964608u, 1057791828u, 1057791828u, 0, ATANH_TOLERANCE, 0},
+{170, 1057132380u, 1058017039u, 1058017039u, 0, ATANH_TOLERANCE, 0},
+{171, 1057300152u, 1058245376u, 1058245376u, 0, ATANH_TOLERANCE, 0},
+{172, 1057467924u, 1058476992u, 1058476992u, 0, ATANH_TOLERANCE, 0},
+{173, 1057635697u, 1058712049u, 1058712049u, 0, ATANH_TOLERANCE, 0},
+{174, 1057803469u, 1058950717u, 1058950717u, 0, ATANH_TOLERANCE, 0},
+{175, 1057971241u, 1059193179u, 1059193179u, 0, ATANH_TOLERANCE, 0},
+{176, 1058139013u, 1059439630u, 1059439630u, 0, ATANH_TOLERANCE, 0},
+{177, 1058306785u, 1059690279u, 1059690279u, 0, ATANH_TOLERANCE, 0},
+{178, 1058474557u, 1059945349u, 1059945349u, 0, ATANH_TOLERANCE, 0},
+{179, 1058642330u, 1060205080u, 1060205080u, 0, ATANH_TOLERANCE, 0},
+{180, 1058810102u, 1060469727u, 1060469727u, 0, ATANH_TOLERANCE, 0},
+{181, 1058977874u, 1060739567u, 1060739567u, 0, ATANH_TOLERANCE, 0},
+{182, 1059145646u, 1061014899u, 1061014899u, 0, ATANH_TOLERANCE, 0},
+{183, 1059313418u, 1061296044u, 1061296044u, 0, ATANH_TOLERANCE, 0},
+{184, 1059481190u, 1061583353u, 1061583353u, 0, ATANH_TOLERANCE, 0},
+{185, 1059648963u, 1061877206u, 1061877206u, 0, ATANH_TOLERANCE, 0},
+{186, 1059816735u, 1062178013u, 1062178013u, 0, ATANH_TOLERANCE, 0},
+{187, 1059984507u, 1062486225u, 1062486225u, 0, ATANH_TOLERANCE, 0},
+{188, 1060152279u, 1062802337u, 1062802337u, 0, ATANH_TOLERANCE, 0},
+{189, 1060320051u, 1063126888u, 1063126888u, 0, ATANH_TOLERANCE, 0},
+{190, 1060487823u, 1063460474u, 1063460474u, 0, ATANH_TOLERANCE, 0},
+{191, 1060655596u, 1063803757u, 1063803757u, 0, ATANH_TOLERANCE, 0},
+{192, 1060823368u, 1064157460u, 1064157460u, 0, ATANH_TOLERANCE, 0},
+{193, 1060991140u, 1064522398u, 1064522398u, 0, ATANH_TOLERANCE, 0},
+{194, 1061158912u, 1064899477u, 1064899477u, 0, ATANH_TOLERANCE, 0},
+{195, 1061326684u, 1065289715u, 1065289715u, 0, ATANH_TOLERANCE, 0},
+{196, 1061494456u, 1065523737u, 1065523737u, 0, ATANH_TOLERANCE, 0},
+{197, 1061662228u, 1065733811u, 1065733811u, 0, ATANH_TOLERANCE, 0},
+{198, 1061830001u, 1065952429u, 1065952429u, 0, ATANH_TOLERANCE, 0},
+{199, 1061997773u, 1066180436u, 1066180436u, 0, ATANH_TOLERANCE, 0},
+{200, 1062165545u, 1066418813u, 1066418813u, 0, ATANH_TOLERANCE, 0},
+{201, 1062333317u, 1066668696u, 1066668696u, 0, ATANH_TOLERANCE, 0},
+{202, 1062501089u, 1066931418u, 1066931418u, 0, ATANH_TOLERANCE, 0},
+{203, 1062668861u, 1067208553u, 1067208553u, 0, ATANH_TOLERANCE, 0},
+{204, 1062836634u, 1067501982u, 1067501982u, 0, ATANH_TOLERANCE, 0},
+{205, 1063004406u, 1067813970u, 1067813970u, 0, ATANH_TOLERANCE, 0},
+{206, 1063172178u, 1068147291u, 1068147291u, 0, ATANH_TOLERANCE, 0},
+{207, 1063339950u, 1068505383u, 1068505383u, 0, ATANH_TOLERANCE, 0},
+{208, 1063507722u, 1068892586u, 1068892586u, 0, ATANH_TOLERANCE, 0},
+{209, 1063675494u, 1069314479u, 1069314479u, 0, ATANH_TOLERANCE, 0},
+{210, 1063843267u, 1069778413u, 1069778413u, 0, ATANH_TOLERANCE, 0},
+{211, 1064011039u, 1070294333u, 1070294333u, 0, ATANH_TOLERANCE, 0},
+{212, 1064178811u, 1070876192u, 1070876192u, 0, ATANH_TOLERANCE, 0},
+{213, 1064346583u, 1071544422u, 1071544422u, 0, ATANH_TOLERANCE, 0},
+{214, 1064514355u, 1072330698u, 1072330698u, 0, ATANH_TOLERANCE, 0},
+{215, 1064682127u, 1073288083u, 1073288083u, 0, ATANH_TOLERANCE, 0},
+{216, 1064849900u, 1074128942u, 1074128942u, 0, ATANH_TOLERANCE, 0},
+{217, 1065017672u, 1074989883u, 1074989883u, 0, ATANH_TOLERANCE, 0},
+{218, 1065185444u, 1076454083u, 1076454083u, 0, ATANH_TOLERANCE, 0},
+{219, 1065353216u, 1115684864u, 2139095040u, EDOM, ATANH_TOLERANCE, 0},
+{220, 1065437102u, 1115684864u, 2143289344u, EDOM, ATANH_TOLERANCE, 0},
+{221, 1065520988u, 1115684864u, 2143289344u, EDOM, ATANH_TOLERANCE, 0},
+{222, 1065604874u, 1115684864u, 2143289344u, EDOM, ATANH_TOLERANCE, 0},
+{223, 1065688760u, 1115684864u, 2143289344u, EDOM, ATANH_TOLERANCE, 0},
+{224, 1065772646u, 1115684864u, 2143289344u, EDOM, ATANH_TOLERANCE, 0},
+{225, 1065856532u, 1115684864u, 2143289344u, EDOM, ATANH_TOLERANCE, 0},
+{226, 1065940419u, 1115684864u, 2143289344u, EDOM, ATANH_TOLERANCE, 0},
+{227, 1066024305u, 1115684864u, 2143289344u, EDOM, ATANH_TOLERANCE, 0},
+{228, 1066108191u, 1115684864u, 2143289344u, EDOM, ATANH_TOLERANCE, 0},
+{229, 1066192077u, 1115684864u, 2143289344u, EDOM, ATANH_TOLERANCE, 0},
+{230, 1066275963u, 1115684864u, 2143289344u, EDOM, ATANH_TOLERANCE, 0},
+{231, 1066359849u, 1115684864u, 2143289344u, EDOM, ATANH_TOLERANCE, 0},
+{232, 1066443735u, 1115684864u, 2143289344u, EDOM, ATANH_TOLERANCE, 0},
+{233, 1066527621u, 1115684864u, 2143289344u, EDOM, ATANH_TOLERANCE, 0},
+{234, 1066611507u, 1115684864u, 2143289344u, EDOM, ATANH_TOLERANCE, 0},
+{235, 1066695393u, 1115684864u, 2143289344u, EDOM, ATANH_TOLERANCE, 0},
+{236, 1066779279u, 1115684864u, 2143289344u, EDOM, ATANH_TOLERANCE, 0},
+{237, 1066863165u, 1115684864u, 2143289344u, EDOM, ATANH_TOLERANCE, 0},
+{238, 1066947052u, 1115684864u, 2143289344u, EDOM, ATANH_TOLERANCE, 0},
+{239, 3234402267u, 1115684864u, 2143289344u, EDOM, ATANH_TOLERANCE, 0},
+{240, 3231108068u, 1115684864u, 2143289344u, EDOM, ATANH_TOLERANCE, 0},
+{241, 3226013659u, 1115684864u, 2143289344u, EDOM, ATANH_TOLERANCE, 0},
+{242, 3217625051u, 1115684864u, 2143289344u, EDOM, ATANH_TOLERANCE, 0},
+{243, 1070141403u, 1115684864u, 2143289344u, EDOM, ATANH_TOLERANCE, 0},
+{244, 1078530011u, 1115684864u, 2143289344u, EDOM, ATANH_TOLERANCE, 0},
+{245, 1083624420u, 1115684864u, 2143289344u, EDOM, ATANH_TOLERANCE, 0},
+{246, 3253731328u, 1115684864u, 2143289344u, EDOM, ATANH_TOLERANCE, 0},
+{247, 3252840038u, 1115684864u, 2143289344u, EDOM, ATANH_TOLERANCE, 0},
+{248, 3251948749u, 1115684864u, 2143289344u, EDOM, ATANH_TOLERANCE, 0},
+{249, 3251057459u, 1115684864u, 2143289344u, EDOM, ATANH_TOLERANCE, 0},
+{250, 3250166170u, 1115684864u, 2143289344u, EDOM, ATANH_TOLERANCE, 0},
+{251, 3249274880u, 1115684864u, 2143289344u, EDOM, ATANH_TOLERANCE, 0},
+{252, 3248383590u, 1115684864u, 2143289344u, EDOM, ATANH_TOLERANCE, 0},
+{253, 3247492301u, 1115684864u, 2143289344u, EDOM, ATANH_TOLERANCE, 0},
+{254, 3246601011u, 1115684864u, 2143289344u, EDOM, ATANH_TOLERANCE, 0},
+{255, 3245028147u, 1115684864u, 2143289344u, EDOM, ATANH_TOLERANCE, 0},
+{256, 3243245568u, 1115684864u, 2143289344u, EDOM, ATANH_TOLERANCE, 0},
+{257, 3241462989u, 1115684864u, 2143289344u, EDOM, ATANH_TOLERANCE, 0},
+{258, 3239680410u, 1115684864u, 2143289344u, EDOM, ATANH_TOLERANCE, 0},
+{259, 3237792973u, 1115684864u, 2143289344u, EDOM, ATANH_TOLERANCE, 0},
+{260, 3234227814u, 1115684864u, 2143289344u, EDOM, ATANH_TOLERANCE, 0},
+{261, 3230662656u, 1115684864u, 2143289344u, EDOM, ATANH_TOLERANCE, 0},
+{262, 3224580915u, 1115684864u, 2143289344u, EDOM, ATANH_TOLERANCE, 0},
+{263, 3213675725u, 1115684864u, 2143289344u, EDOM, ATANH_TOLERANCE, 0},
+{264, 1058642330u, 1060205080u, 1060205080u, 0, ATANH_TOLERANCE, 0},
+{265, 1075000115u, 1115684864u, 2143289344u, EDOM, ATANH_TOLERANCE, 0},
+{266, 1082130432u, 1115684864u, 2143289344u, EDOM, ATANH_TOLERANCE, 0},
+{267, 1085695590u, 1115684864u, 2143289344u, EDOM, ATANH_TOLERANCE, 0},
+{268, 1089260749u, 1115684864u, 2143289344u, EDOM, ATANH_TOLERANCE, 0},
+{269, 1091672474u, 1115684864u, 2143289344u, EDOM, ATANH_TOLERANCE, 0},
+{270, 1093455053u, 1115684864u, 2143289344u, EDOM, ATANH_TOLERANCE, 0},
+{271, 1095237632u, 1115684864u, 2143289344u, EDOM, ATANH_TOLERANCE, 0},
+{272, 1097020211u, 1115684864u, 2143289344u, EDOM, ATANH_TOLERANCE, 0},
+{273, 1098802790u, 1115684864u, 2143289344u, EDOM, ATANH_TOLERANCE, 0},
+{274, 1099746509u, 1115684864u, 2143289344u, EDOM, ATANH_TOLERANCE, 0},
+{275, 1100637798u, 1115684864u, 2143289344u, EDOM, ATANH_TOLERANCE, 0},
+{276, 1101529088u, 1115684864u, 2143289344u, EDOM, ATANH_TOLERANCE, 0},
+{277, 1102420378u, 1115684864u, 2143289344u, EDOM, ATANH_TOLERANCE, 0},
+{278, 1103311667u, 1115684864u, 2143289344u, EDOM, ATANH_TOLERANCE, 0},
+{279, 1104202957u, 1115684864u, 2143289344u, EDOM, ATANH_TOLERANCE, 0},
+{280, 1105094246u, 1115684864u, 2143289344u, EDOM, ATANH_TOLERANCE, 0},
+{281, 1105985536u, 1115684864u, 2143289344u, EDOM, ATANH_TOLERANCE, 0}
+
+// AUTOMATICALLY GENERATED VECTORS STOP
+
+};
+
+#endif // CYGONCE_LIBM_ATANHF_H multiple inclusion protection
+
+// EOF atanhf.h
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/cbrtf.c b/ecos/packages/language/c/libm/current/tests/vectors/cbrtf.c
new file mode 100644
index 0000000..4b28874
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/cbrtf.c
@@ -0,0 +1,115 @@
+//===========================================================================
+//
+// cbrtf.c
+//
+// Test of cbrtf() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// Declarations for test system:
+//
+// TESTCASE_TYPE=CYG_TEST_MODULE
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include <cyg/infra/testcase.h> // Test infrastructure
+#include <math.h> // Header for this package
+#include <sys/ieeefp.h> // Cyg_libm_ieee_double_shape_type
+#include "vectors/vector_support_float.h"// extra support for math tests
+
+#include "vectors/cbrtf.h"
+
+// FUNCTIONS
+
+static void
+test( CYG_ADDRWORD data )
+{
+ cyg_ucount32 vec_size;
+ cyg_bool ret;
+
+ vec_size = sizeof(cbrtf_vec) / sizeof(Cyg_libm_test_float_vec_t);
+ ret = doTestVecFloat( (CYG_ADDRWORD) &cbrtf, CYG_LIBM_TEST_VEC_FLOAT,
+ CYG_LIBM_TEST_VEC_NONE, CYG_LIBM_TEST_VEC_FLOAT,
+ &cbrtf_vec[0], vec_size );
+
+ if (ret==true)
+ {
+ CYG_TEST_PASS("cbrtf() is stable");
+ } // if
+ else
+ {
+ CYG_TEST_FAIL("cbrtf() failed tests");
+ } // else
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for Math "
+ "library cbrtf() function");
+} // test()
+
+
+int
+main(int argc, char *argv[])
+{
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for Math library "
+ "cbrtf() function");
+
+ START_TEST( test );
+
+ CYG_TEST_PASS_FINISH("Testing is not applicable to this configuration");
+
+} // main()
+
+
+// EOF cbrtf.c
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/cbrtf.h b/ecos/packages/language/c/libm/current/tests/vectors/cbrtf.h
new file mode 100644
index 0000000..552349c
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/cbrtf.h
@@ -0,0 +1,363 @@
+#ifndef CYGONCE_LIBM_CBRTF_H
+#define CYGONCE_LIBM_CBRTF_H
+//===========================================================================
+//
+// cbrtf.h
+//
+// Test vectors for testing of cbrtf() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage: #include "vectors/cbrtf.h"
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include "vectors/vector_support_float.h"// extra support for math tests
+
+#define CBRTF_TOLERANCE 1.0E-04
+
+static const Cyg_libm_test_float_vec_t cbrtf_vec[] = {
+
+// AUTOMATICALLY GENERATED VECTORS START
+
+{0, 3214514586u, 2147497108u, 3213362482u, 0, CBRTF_TOLERANCE, 0},
+{1, 3214430700u, 2147497108u, 3213337651u, 0, CBRTF_TOLERANCE, 0},
+{2, 3214346813u, 2147497108u, 3213312681u, 0, CBRTF_TOLERANCE, 0},
+{3, 3214262927u, 2147497108u, 3213287569u, 0, CBRTF_TOLERANCE, 0},
+{4, 3214179041u, 2147497108u, 3213262314u, 0, CBRTF_TOLERANCE, 0},
+{5, 3214095155u, 2147497108u, 3213236913u, 0, CBRTF_TOLERANCE, 0},
+{6, 3214011269u, 2147497108u, 3213211364u, 0, CBRTF_TOLERANCE, 0},
+{7, 3213927383u, 2147497108u, 3213185666u, 0, CBRTF_TOLERANCE, 0},
+{8, 3213843497u, 2147497108u, 3213159816u, 0, CBRTF_TOLERANCE, 0},
+{9, 3213759611u, 2147497108u, 3213133811u, 0, CBRTF_TOLERANCE, 0},
+{10, 3213675725u, 2147497108u, 3213107649u, 0, CBRTF_TOLERANCE, 0},
+{11, 3213591839u, 2147497108u, 3213081329u, 0, CBRTF_TOLERANCE, 0},
+{12, 3213507953u, 2147497108u, 3213054847u, 0, CBRTF_TOLERANCE, 0},
+{13, 3213424067u, 2147497108u, 3213028201u, 0, CBRTF_TOLERANCE, 0},
+{14, 3213340180u, 2147497108u, 3213001388u, 0, CBRTF_TOLERANCE, 0},
+{15, 3213256294u, 2147497108u, 3212974407u, 0, CBRTF_TOLERANCE, 0},
+{16, 3213172408u, 2147497108u, 3212947253u, 0, CBRTF_TOLERANCE, 0},
+{17, 3213088522u, 2147497108u, 3212919925u, 0, CBRTF_TOLERANCE, 0},
+{18, 3213004636u, 2147497108u, 3212892419u, 0, CBRTF_TOLERANCE, 0},
+{19, 3212920750u, 2147497108u, 3212864733u, 0, CBRTF_TOLERANCE, 0},
+{20, 3212836864u, 2147497108u, 3212836864u, 0, CBRTF_TOLERANCE, 0},
+{21, 3212669092u, 2147497108u, 3212780752u, 0, CBRTF_TOLERANCE, 0},
+{22, 3212501320u, 2147497108u, 3212724262u, 0, CBRTF_TOLERANCE, 0},
+{23, 3212333548u, 2147497108u, 3212667386u, 0, CBRTF_TOLERANCE, 0},
+{24, 3212165775u, 2147497108u, 3212610117u, 0, CBRTF_TOLERANCE, 0},
+{25, 3211998003u, 2147497108u, 3212552449u, 0, CBRTF_TOLERANCE, 0},
+{26, 3211830231u, 2147497108u, 3212494376u, 0, CBRTF_TOLERANCE, 0},
+{27, 3211662459u, 2147497108u, 3212435889u, 0, CBRTF_TOLERANCE, 0},
+{28, 3211494687u, 2147497108u, 3212376981u, 0, CBRTF_TOLERANCE, 0},
+{29, 3211326915u, 2147497108u, 3212317645u, 0, CBRTF_TOLERANCE, 0},
+{30, 3211159142u, 2147497108u, 3212257872u, 0, CBRTF_TOLERANCE, 0},
+{31, 3210991370u, 2147497108u, 3212197655u, 0, CBRTF_TOLERANCE, 0},
+{32, 3210823598u, 2147497108u, 3212136985u, 0, CBRTF_TOLERANCE, 0},
+{33, 3210655826u, 2147497108u, 3212075854u, 0, CBRTF_TOLERANCE, 0},
+{34, 3210488054u, 2147497108u, 3212014253u, 0, CBRTF_TOLERANCE, 0},
+{35, 3210320282u, 2147497108u, 3211952172u, 0, CBRTF_TOLERANCE, 0},
+{36, 3210152509u, 2147497108u, 3211889602u, 0, CBRTF_TOLERANCE, 0},
+{37, 3209984737u, 2147497108u, 3211826534u, 0, CBRTF_TOLERANCE, 0},
+{38, 3209816965u, 2147497108u, 3211762957u, 0, CBRTF_TOLERANCE, 0},
+{39, 3209649193u, 2147497108u, 3211698861u, 0, CBRTF_TOLERANCE, 0},
+{40, 3209481421u, 2147497108u, 3211634236u, 0, CBRTF_TOLERANCE, 0},
+{41, 3209313649u, 2147497108u, 3211569069u, 0, CBRTF_TOLERANCE, 0},
+{42, 3209145876u, 2147497108u, 3211503351u, 0, CBRTF_TOLERANCE, 0},
+{43, 3208978104u, 2147497108u, 3211437068u, 0, CBRTF_TOLERANCE, 0},
+{44, 3208810332u, 2147497108u, 3211370209u, 0, CBRTF_TOLERANCE, 0},
+{45, 3208642560u, 2147497108u, 3211302760u, 0, CBRTF_TOLERANCE, 0},
+{46, 3208474788u, 2147497108u, 3211234710u, 0, CBRTF_TOLERANCE, 0},
+{47, 3208307016u, 2147497108u, 3211166043u, 0, CBRTF_TOLERANCE, 0},
+{48, 3208139244u, 2147497108u, 3211096747u, 0, CBRTF_TOLERANCE, 0},
+{49, 3207971471u, 2147497108u, 3211026806u, 0, CBRTF_TOLERANCE, 0},
+{50, 3207803699u, 2147497108u, 3210956205u, 0, CBRTF_TOLERANCE, 0},
+{51, 3207635927u, 2147497108u, 3210884929u, 0, CBRTF_TOLERANCE, 0},
+{52, 3207468155u, 2147497108u, 3210812960u, 0, CBRTF_TOLERANCE, 0},
+{53, 3207300383u, 2147497108u, 3210740283u, 0, CBRTF_TOLERANCE, 0},
+{54, 3207132611u, 2147497108u, 3210666878u, 0, CBRTF_TOLERANCE, 0},
+{55, 3206964838u, 2147497108u, 3210592729u, 0, CBRTF_TOLERANCE, 0},
+{56, 3206797066u, 2147497108u, 3210517814u, 0, CBRTF_TOLERANCE, 0},
+{57, 3206629294u, 2147497108u, 3210442116u, 0, CBRTF_TOLERANCE, 0},
+{58, 3206461522u, 2147497108u, 3210365612u, 0, CBRTF_TOLERANCE, 0},
+{59, 3206293750u, 2147497108u, 3210288281u, 0, CBRTF_TOLERANCE, 0},
+{60, 3206125978u, 2147497108u, 3210210100u, 0, CBRTF_TOLERANCE, 0},
+{61, 3205958205u, 2147497108u, 3210131046u, 0, CBRTF_TOLERANCE, 0},
+{62, 3205790433u, 2147497108u, 3210051093u, 0, CBRTF_TOLERANCE, 0},
+{63, 3205622661u, 2147497108u, 3209970215u, 0, CBRTF_TOLERANCE, 0},
+{64, 3205454889u, 2147497108u, 3209888387u, 0, CBRTF_TOLERANCE, 0},
+{65, 3205287117u, 2147497108u, 3209805578u, 0, CBRTF_TOLERANCE, 0},
+{66, 3205119345u, 2147497108u, 3209721759u, 0, CBRTF_TOLERANCE, 0},
+{67, 3204951572u, 2147497108u, 3209636899u, 0, CBRTF_TOLERANCE, 0},
+{68, 3204783800u, 2147497108u, 3209550965u, 0, CBRTF_TOLERANCE, 0},
+{69, 3204616028u, 2147497108u, 3209463922u, 0, CBRTF_TOLERANCE, 0},
+{70, 3204448256u, 2147497108u, 3209375733u, 0, CBRTF_TOLERANCE, 0},
+{71, 3204112712u, 2147497108u, 3209286361u, 0, CBRTF_TOLERANCE, 0},
+{72, 3203777167u, 2147497108u, 3209195764u, 0, CBRTF_TOLERANCE, 0},
+{73, 3203441623u, 2147497108u, 3209103900u, 0, CBRTF_TOLERANCE, 0},
+{74, 3203106079u, 2147497108u, 3209010724u, 0, CBRTF_TOLERANCE, 0},
+{75, 3202770534u, 2147497108u, 3208916187u, 0, CBRTF_TOLERANCE, 0},
+{76, 3202434990u, 2147497108u, 3208820239u, 0, CBRTF_TOLERANCE, 0},
+{77, 3202099446u, 2147497108u, 3208722826u, 0, CBRTF_TOLERANCE, 0},
+{78, 3201763901u, 2147497108u, 3208623891u, 0, CBRTF_TOLERANCE, 0},
+{79, 3201428357u, 2147497108u, 3208523373u, 0, CBRTF_TOLERANCE, 0},
+{80, 3201092813u, 2147497108u, 3208421206u, 0, CBRTF_TOLERANCE, 0},
+{81, 3200757268u, 2147497108u, 3208317323u, 0, CBRTF_TOLERANCE, 0},
+{82, 3200421724u, 2147497108u, 3208211648u, 0, CBRTF_TOLERANCE, 0},
+{83, 3200086180u, 2147497108u, 3208104103u, 0, CBRTF_TOLERANCE, 0},
+{84, 3199750636u, 2147497108u, 3207994601u, 0, CBRTF_TOLERANCE, 0},
+{85, 3199415091u, 2147497108u, 3207883053u, 0, CBRTF_TOLERANCE, 0},
+{86, 3199079547u, 2147497108u, 3207769360u, 0, CBRTF_TOLERANCE, 0},
+{87, 3198744003u, 2147497108u, 3207653414u, 0, CBRTF_TOLERANCE, 0},
+{88, 3198408458u, 2147497108u, 3207535102u, 0, CBRTF_TOLERANCE, 0},
+{89, 3198072914u, 2147497108u, 3207414299u, 0, CBRTF_TOLERANCE, 0},
+{90, 3197737370u, 2147497108u, 3207290869u, 0, CBRTF_TOLERANCE, 0},
+{91, 3197401825u, 2147497108u, 3207164665u, 0, CBRTF_TOLERANCE, 0},
+{92, 3197066281u, 2147497108u, 3207035525u, 0, CBRTF_TOLERANCE, 0},
+{93, 3196730737u, 2147497108u, 3206903273u, 0, CBRTF_TOLERANCE, 0},
+{94, 3196395192u, 2147497108u, 3206767713u, 0, CBRTF_TOLERANCE, 0},
+{95, 3196059648u, 2147497108u, 3206628632u, 0, CBRTF_TOLERANCE, 0},
+{96, 3195388559u, 2147497108u, 3206485790u, 0, CBRTF_TOLERANCE, 0},
+{97, 3194717471u, 2147497108u, 3206338924u, 0, CBRTF_TOLERANCE, 0},
+{98, 3194046382u, 2147497108u, 3206187736u, 0, CBRTF_TOLERANCE, 0},
+{99, 3193375293u, 2147497108u, 3206031894u, 0, CBRTF_TOLERANCE, 0},
+{100, 3192704205u, 2147497108u, 3205871023u, 0, CBRTF_TOLERANCE, 0},
+{101, 3192033116u, 2147497108u, 3205704697u, 0, CBRTF_TOLERANCE, 0},
+{102, 3191362028u, 2147497108u, 3205532427u, 0, CBRTF_TOLERANCE, 0},
+{103, 3190690939u, 2147497108u, 3205353652u, 0, CBRTF_TOLERANCE, 0},
+{104, 3190019850u, 2147497108u, 3205167722u, 0, CBRTF_TOLERANCE, 0},
+{105, 3189348762u, 2147497108u, 3204973874u, 0, CBRTF_TOLERANCE, 0},
+{106, 3188677673u, 2147497108u, 3204771208u, 0, CBRTF_TOLERANCE, 0},
+{107, 3188006584u, 2147497108u, 3204558645u, 0, CBRTF_TOLERANCE, 0},
+{108, 3186999951u, 2147497108u, 3204221509u, 0, CBRTF_TOLERANCE, 0},
+{109, 3185657774u, 2147497108u, 3203748377u, 0, CBRTF_TOLERANCE, 0},
+{110, 3184315597u, 2147497108u, 3203245628u, 0, CBRTF_TOLERANCE, 0},
+{111, 3182973420u, 2147497108u, 3202708139u, 0, CBRTF_TOLERANCE, 0},
+{112, 3181631242u, 2147497108u, 3202129206u, 0, CBRTF_TOLERANCE, 0},
+{113, 3180289065u, 2147497108u, 3201499779u, 0, CBRTF_TOLERANCE, 0},
+{114, 3178611343u, 2147497108u, 3200807156u, 0, CBRTF_TOLERANCE, 0},
+{115, 3175926989u, 2147497108u, 3200032598u, 0, CBRTF_TOLERANCE, 0},
+{116, 3173242634u, 2147497108u, 3199146494u, 0, CBRTF_TOLERANCE, 0},
+{117, 3170222735u, 2147497108u, 3198097182u, 0, CBRTF_TOLERANCE, 0},
+{118, 3164854026u, 2147497108u, 3196779114u, 0, CBRTF_TOLERANCE, 0},
+{119, 3156465418u, 2147497108u, 3193740598u, 0, CBRTF_TOLERANCE, 0},
+{120, 646742016u, 2147497108u, 925260670u, 0, CBRTF_TOLERANCE, 0},
+{121, 1008981770u, 2147497108u, 1046256950u, 0, CBRTF_TOLERANCE, 0},
+{122, 1017370378u, 2147497108u, 1049295466u, 0, CBRTF_TOLERANCE, 0},
+{123, 1022739087u, 2147497108u, 1050613534u, 0, CBRTF_TOLERANCE, 0},
+{124, 1025758986u, 2147497108u, 1051662846u, 0, CBRTF_TOLERANCE, 0},
+{125, 1028443341u, 2147497108u, 1052548950u, 0, CBRTF_TOLERANCE, 0},
+{126, 1031127695u, 2147497108u, 1053323508u, 0, CBRTF_TOLERANCE, 0},
+{127, 1032805417u, 2147497108u, 1054016131u, 0, CBRTF_TOLERANCE, 0},
+{128, 1034147594u, 2147497108u, 1054645558u, 0, CBRTF_TOLERANCE, 0},
+{129, 1035489772u, 2147497108u, 1055224491u, 0, CBRTF_TOLERANCE, 0},
+{130, 1036831949u, 2147497108u, 1055761980u, 0, CBRTF_TOLERANCE, 0},
+{131, 1038174126u, 2147497108u, 1056264729u, 0, CBRTF_TOLERANCE, 0},
+{132, 1039516303u, 2147497108u, 1056737861u, 0, CBRTF_TOLERANCE, 0},
+{133, 1040522936u, 2147497108u, 1057074997u, 0, CBRTF_TOLERANCE, 0},
+{134, 1041194025u, 2147497108u, 1057287560u, 0, CBRTF_TOLERANCE, 0},
+{135, 1041865114u, 2147497108u, 1057490226u, 0, CBRTF_TOLERANCE, 0},
+{136, 1042536202u, 2147497108u, 1057684074u, 0, CBRTF_TOLERANCE, 0},
+{137, 1043207291u, 2147497108u, 1057870004u, 0, CBRTF_TOLERANCE, 0},
+{138, 1043878380u, 2147497108u, 1058048779u, 0, CBRTF_TOLERANCE, 0},
+{139, 1044549468u, 2147497108u, 1058221049u, 0, CBRTF_TOLERANCE, 0},
+{140, 1045220557u, 2147497108u, 1058387375u, 0, CBRTF_TOLERANCE, 0},
+{141, 1045891645u, 2147497108u, 1058548246u, 0, CBRTF_TOLERANCE, 0},
+{142, 1046562734u, 2147497108u, 1058704088u, 0, CBRTF_TOLERANCE, 0},
+{143, 1047233823u, 2147497108u, 1058855276u, 0, CBRTF_TOLERANCE, 0},
+{144, 1047904911u, 2147497108u, 1059002142u, 0, CBRTF_TOLERANCE, 0},
+{145, 1048576000u, 2147497108u, 1059144984u, 0, CBRTF_TOLERANCE, 0},
+{146, 1048911544u, 2147497108u, 1059284065u, 0, CBRTF_TOLERANCE, 0},
+{147, 1049247089u, 2147497108u, 1059419625u, 0, CBRTF_TOLERANCE, 0},
+{148, 1049582633u, 2147497108u, 1059551877u, 0, CBRTF_TOLERANCE, 0},
+{149, 1049918177u, 2147497108u, 1059681017u, 0, CBRTF_TOLERANCE, 0},
+{150, 1050253722u, 2147497108u, 1059807221u, 0, CBRTF_TOLERANCE, 0},
+{151, 1050589266u, 2147497108u, 1059930651u, 0, CBRTF_TOLERANCE, 0},
+{152, 1050924810u, 2147497108u, 1060051454u, 0, CBRTF_TOLERANCE, 0},
+{153, 1051260355u, 2147497108u, 1060169766u, 0, CBRTF_TOLERANCE, 0},
+{154, 1051595899u, 2147497108u, 1060285712u, 0, CBRTF_TOLERANCE, 0},
+{155, 1051931443u, 2147497108u, 1060399405u, 0, CBRTF_TOLERANCE, 0},
+{156, 1052266988u, 2147497108u, 1060510953u, 0, CBRTF_TOLERANCE, 0},
+{157, 1052602532u, 2147497108u, 1060620455u, 0, CBRTF_TOLERANCE, 0},
+{158, 1052938076u, 2147497108u, 1060728000u, 0, CBRTF_TOLERANCE, 0},
+{159, 1053273620u, 2147497108u, 1060833675u, 0, CBRTF_TOLERANCE, 0},
+{160, 1053609165u, 2147497108u, 1060937558u, 0, CBRTF_TOLERANCE, 0},
+{161, 1053944709u, 2147497108u, 1061039725u, 0, CBRTF_TOLERANCE, 0},
+{162, 1054280253u, 2147497108u, 1061140243u, 0, CBRTF_TOLERANCE, 0},
+{163, 1054615798u, 2147497108u, 1061239178u, 0, CBRTF_TOLERANCE, 0},
+{164, 1054951342u, 2147497108u, 1061336591u, 0, CBRTF_TOLERANCE, 0},
+{165, 1055286886u, 2147497108u, 1061432539u, 0, CBRTF_TOLERANCE, 0},
+{166, 1055622431u, 2147497108u, 1061527076u, 0, CBRTF_TOLERANCE, 0},
+{167, 1055957975u, 2147497108u, 1061620252u, 0, CBRTF_TOLERANCE, 0},
+{168, 1056293519u, 2147497108u, 1061712116u, 0, CBRTF_TOLERANCE, 0},
+{169, 1056629064u, 2147497108u, 1061802713u, 0, CBRTF_TOLERANCE, 0},
+{170, 1056964608u, 2147497108u, 1061892085u, 0, CBRTF_TOLERANCE, 0},
+{171, 1057132380u, 2147497108u, 1061980274u, 0, CBRTF_TOLERANCE, 0},
+{172, 1057300152u, 2147497108u, 1062067317u, 0, CBRTF_TOLERANCE, 0},
+{173, 1057467924u, 2147497108u, 1062153251u, 0, CBRTF_TOLERANCE, 0},
+{174, 1057635697u, 2147497108u, 1062238111u, 0, CBRTF_TOLERANCE, 0},
+{175, 1057803469u, 2147497108u, 1062321930u, 0, CBRTF_TOLERANCE, 0},
+{176, 1057971241u, 2147497108u, 1062404739u, 0, CBRTF_TOLERANCE, 0},
+{177, 1058139013u, 2147497108u, 1062486567u, 0, CBRTF_TOLERANCE, 0},
+{178, 1058306785u, 2147497108u, 1062567445u, 0, CBRTF_TOLERANCE, 0},
+{179, 1058474557u, 2147497108u, 1062647398u, 0, CBRTF_TOLERANCE, 0},
+{180, 1058642330u, 2147497108u, 1062726452u, 0, CBRTF_TOLERANCE, 0},
+{181, 1058810102u, 2147497108u, 1062804633u, 0, CBRTF_TOLERANCE, 0},
+{182, 1058977874u, 2147497108u, 1062881964u, 0, CBRTF_TOLERANCE, 0},
+{183, 1059145646u, 2147497108u, 1062958468u, 0, CBRTF_TOLERANCE, 0},
+{184, 1059313418u, 2147497108u, 1063034166u, 0, CBRTF_TOLERANCE, 0},
+{185, 1059481190u, 2147497108u, 1063109081u, 0, CBRTF_TOLERANCE, 0},
+{186, 1059648963u, 2147497108u, 1063183230u, 0, CBRTF_TOLERANCE, 0},
+{187, 1059816735u, 2147497108u, 1063256635u, 0, CBRTF_TOLERANCE, 0},
+{188, 1059984507u, 2147497108u, 1063329312u, 0, CBRTF_TOLERANCE, 0},
+{189, 1060152279u, 2147497108u, 1063401281u, 0, CBRTF_TOLERANCE, 0},
+{190, 1060320051u, 2147497108u, 1063472557u, 0, CBRTF_TOLERANCE, 0},
+{191, 1060487823u, 2147497108u, 1063543158u, 0, CBRTF_TOLERANCE, 0},
+{192, 1060655596u, 2147497108u, 1063613099u, 0, CBRTF_TOLERANCE, 0},
+{193, 1060823368u, 2147497108u, 1063682395u, 0, CBRTF_TOLERANCE, 0},
+{194, 1060991140u, 2147497108u, 1063751062u, 0, CBRTF_TOLERANCE, 0},
+{195, 1061158912u, 2147497108u, 1063819112u, 0, CBRTF_TOLERANCE, 0},
+{196, 1061326684u, 2147497108u, 1063886561u, 0, CBRTF_TOLERANCE, 0},
+{197, 1061494456u, 2147497108u, 1063953420u, 0, CBRTF_TOLERANCE, 0},
+{198, 1061662228u, 2147497108u, 1064019703u, 0, CBRTF_TOLERANCE, 0},
+{199, 1061830001u, 2147497108u, 1064085421u, 0, CBRTF_TOLERANCE, 0},
+{200, 1061997773u, 2147497108u, 1064150588u, 0, CBRTF_TOLERANCE, 0},
+{201, 1062165545u, 2147497108u, 1064215213u, 0, CBRTF_TOLERANCE, 0},
+{202, 1062333317u, 2147497108u, 1064279309u, 0, CBRTF_TOLERANCE, 0},
+{203, 1062501089u, 2147497108u, 1064342886u, 0, CBRTF_TOLERANCE, 0},
+{204, 1062668861u, 2147497108u, 1064405954u, 0, CBRTF_TOLERANCE, 0},
+{205, 1062836634u, 2147497108u, 1064468524u, 0, CBRTF_TOLERANCE, 0},
+{206, 1063004406u, 2147497108u, 1064530605u, 0, CBRTF_TOLERANCE, 0},
+{207, 1063172178u, 2147497108u, 1064592206u, 0, CBRTF_TOLERANCE, 0},
+{208, 1063339950u, 2147497108u, 1064653337u, 0, CBRTF_TOLERANCE, 0},
+{209, 1063507722u, 2147497108u, 1064714007u, 0, CBRTF_TOLERANCE, 0},
+{210, 1063675494u, 2147497108u, 1064774224u, 0, CBRTF_TOLERANCE, 0},
+{211, 1063843267u, 2147497108u, 1064833997u, 0, CBRTF_TOLERANCE, 0},
+{212, 1064011039u, 2147497108u, 1064893333u, 0, CBRTF_TOLERANCE, 0},
+{213, 1064178811u, 2147497108u, 1064952241u, 0, CBRTF_TOLERANCE, 0},
+{214, 1064346583u, 2147497108u, 1065010728u, 0, CBRTF_TOLERANCE, 0},
+{215, 1064514355u, 2147497108u, 1065068801u, 0, CBRTF_TOLERANCE, 0},
+{216, 1064682127u, 2147497108u, 1065126469u, 0, CBRTF_TOLERANCE, 0},
+{217, 1064849900u, 2147497108u, 1065183738u, 0, CBRTF_TOLERANCE, 0},
+{218, 1065017672u, 2147497108u, 1065240614u, 0, CBRTF_TOLERANCE, 0},
+{219, 1065185444u, 2147497108u, 1065297104u, 0, CBRTF_TOLERANCE, 0},
+{220, 1065353216u, 2147497108u, 1065353216u, 0, CBRTF_TOLERANCE, 0},
+{221, 1065437102u, 2147497108u, 1065381085u, 0, CBRTF_TOLERANCE, 0},
+{222, 1065520988u, 2147497108u, 1065408771u, 0, CBRTF_TOLERANCE, 0},
+{223, 1065604874u, 2147497108u, 1065436277u, 0, CBRTF_TOLERANCE, 0},
+{224, 1065688760u, 2147497108u, 1065463605u, 0, CBRTF_TOLERANCE, 0},
+{225, 1065772646u, 2147497108u, 1065490759u, 0, CBRTF_TOLERANCE, 0},
+{226, 1065856532u, 2147497108u, 1065517740u, 0, CBRTF_TOLERANCE, 0},
+{227, 1065940419u, 2147497108u, 1065544553u, 0, CBRTF_TOLERANCE, 0},
+{228, 1066024305u, 2147497108u, 1065571199u, 0, CBRTF_TOLERANCE, 0},
+{229, 1066108191u, 2147497108u, 1065597681u, 0, CBRTF_TOLERANCE, 0},
+{230, 1066192077u, 2147497108u, 1065624001u, 0, CBRTF_TOLERANCE, 0},
+{231, 1066275963u, 2147497108u, 1065650163u, 0, CBRTF_TOLERANCE, 0},
+{232, 1066359849u, 2147497108u, 1065676168u, 0, CBRTF_TOLERANCE, 0},
+{233, 1066443735u, 2147497108u, 1065702018u, 0, CBRTF_TOLERANCE, 0},
+{234, 1066527621u, 2147497108u, 1065727716u, 0, CBRTF_TOLERANCE, 0},
+{235, 1066611507u, 2147497108u, 1065753265u, 0, CBRTF_TOLERANCE, 0},
+{236, 1066695393u, 2147497108u, 1065778666u, 0, CBRTF_TOLERANCE, 0},
+{237, 1066779279u, 2147497108u, 1065803921u, 0, CBRTF_TOLERANCE, 0},
+{238, 1066863165u, 2147497108u, 1065829033u, 0, CBRTF_TOLERANCE, 0},
+{239, 1066947052u, 2147497108u, 1065854003u, 0, CBRTF_TOLERANCE, 0},
+{240, 3234402267u, 2147497108u, 3219927504u, 0, CBRTF_TOLERANCE, 0},
+{241, 3231108068u, 2147497108u, 3218512086u, 0, CBRTF_TOLERANCE, 0},
+{242, 3226013659u, 2147497108u, 3216734143u, 0, CBRTF_TOLERANCE, 0},
+{243, 3217625051u, 2147497108u, 3214199571u, 0, CBRTF_TOLERANCE, 0},
+{244, 0u, 2147497108u, 0u, 0, CBRTF_TOLERANCE, 0},
+{245, 1070141403u, 2147497108u, 1066715923u, 0, CBRTF_TOLERANCE, 0},
+{246, 1078530011u, 2147497108u, 1069250495u, 0, CBRTF_TOLERANCE, 0},
+{247, 1083624420u, 2147497108u, 1071028438u, 0, CBRTF_TOLERANCE, 0},
+{248, 3253731328u, 2147497108u, 3225869542u, 0, CBRTF_TOLERANCE, 0},
+{249, 3252840038u, 2147497108u, 3225618567u, 0, CBRTF_TOLERANCE, 0},
+{250, 3251948749u, 2147497108u, 3225357329u, 0, CBRTF_TOLERANCE, 0},
+{251, 3251057459u, 2147497108u, 3225084709u, 0, CBRTF_TOLERANCE, 0},
+{252, 3250166170u, 2147497108u, 3224799381u, 0, CBRTF_TOLERANCE, 0},
+{253, 3249274880u, 2147497108u, 3224499751u, 0, CBRTF_TOLERANCE, 0},
+{254, 3248383590u, 2147497108u, 3224183879u, 0, CBRTF_TOLERANCE, 0},
+{255, 3247492301u, 2147497108u, 3223849368u, 0, CBRTF_TOLERANCE, 0},
+{256, 3246601011u, 2147497108u, 3223493199u, 0, CBRTF_TOLERANCE, 0},
+{257, 3245028147u, 2147497108u, 3223111482u, 0, CBRTF_TOLERANCE, 0},
+{258, 3243245568u, 2147497108u, 3222699076u, 0, CBRTF_TOLERANCE, 0},
+{259, 3241462989u, 2147497108u, 3222248954u, 0, CBRTF_TOLERANCE, 0},
+{260, 3239680410u, 2147497108u, 3221751090u, 0, CBRTF_TOLERANCE, 0},
+{261, 3237792973u, 2147497108u, 3221155274u, 0, CBRTF_TOLERANCE, 0},
+{262, 3234227814u, 2147497108u, 3219858888u, 0, CBRTF_TOLERANCE, 0},
+{263, 3230662656u, 2147497108u, 3218297543u, 0, CBRTF_TOLERANCE, 0},
+{264, 3224580915u, 2147497108u, 3216271661u, 0, CBRTF_TOLERANCE, 0},
+{265, 3213675725u, 2147497108u, 3213107649u, 0, CBRTF_TOLERANCE, 0},
+{266, 1058642330u, 2147497108u, 1062726452u, 0, CBRTF_TOLERANCE, 0},
+{267, 1075000115u, 2147497108u, 1068037622u, 0, CBRTF_TOLERANCE, 0},
+{268, 1082130432u, 2147497108u, 1070280693u, 0, CBRTF_TOLERANCE, 0},
+{269, 1085695590u, 2147497108u, 1071949313u, 0, CBRTF_TOLERANCE, 0},
+{270, 1089260749u, 2147497108u, 1073311448u, 0, CBRTF_TOLERANCE, 0},
+{271, 1091672474u, 2147497108u, 1074109914u, 0, CBRTF_TOLERANCE, 0},
+{272, 1093455053u, 2147497108u, 1074624385u, 0, CBRTF_TOLERANCE, 0},
+{273, 1095237632u, 2147497108u, 1075087333u, 0, CBRTF_TOLERANCE, 0},
+{274, 1097020211u, 2147497108u, 1075509995u, 0, CBRTF_TOLERANCE, 0},
+{275, 1098802790u, 2147497108u, 1075900135u, 0, CBRTF_TOLERANCE, 0},
+{276, 1099746509u, 2147497108u, 1076263368u, 0, CBRTF_TOLERANCE, 0},
+{277, 1100637798u, 2147497108u, 1076603902u, 0, CBRTF_TOLERANCE, 0},
+{278, 1101529088u, 2147497108u, 1076924983u, 0, CBRTF_TOLERANCE, 0},
+{279, 1102420378u, 2147497108u, 1077229170u, 0, CBRTF_TOLERANCE, 0},
+{280, 1103311667u, 2147497108u, 1077518526u, 0, CBRTF_TOLERANCE, 0},
+{281, 1104202957u, 2147497108u, 1077794735u, 0, CBRTF_TOLERANCE, 0},
+{282, 1105094246u, 2147497108u, 1078059196u, 0, CBRTF_TOLERANCE, 0},
+{283, 1105985536u, 2147497108u, 1078313084u, 0, CBRTF_TOLERANCE, 0}
+
+// AUTOMATICALLY GENERATED VECTORS STOP
+
+};
+
+#endif // CYGONCE_LIBM_CBRTF_H multiple inclusion protection
+
+// EOF cbrtf.h
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/ceil.c b/ecos/packages/language/c/libm/current/tests/vectors/ceil.c
new file mode 100644
index 0000000..3e51325
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/ceil.c
@@ -0,0 +1,115 @@
+//===========================================================================
+//
+// ceil.c
+//
+// Test of ceil() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// Declarations for test system:
+//
+// TESTCASE_TYPE=CYG_TEST_MODULE
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include <cyg/infra/testcase.h> // Test infrastructure
+#include <math.h> // Header for this package
+#include <sys/ieeefp.h> // Cyg_libm_ieee_double_shape_type
+#include "vectors/vector_support.h"// extra support for math tests
+
+#include "vectors/ceil.h"
+
+// FUNCTIONS
+
+static void
+test( CYG_ADDRWORD data )
+{
+ cyg_ucount32 vec_size;
+ cyg_bool ret;
+
+ vec_size = sizeof(ceil_vec) / sizeof(Cyg_libm_test_double_vec_t);
+ ret = doTestVec( (CYG_ADDRWORD) &ceil, CYG_LIBM_TEST_VEC_DOUBLE,
+ CYG_LIBM_TEST_VEC_NONE, CYG_LIBM_TEST_VEC_DOUBLE,
+ &ceil_vec[0], vec_size );
+
+ if (ret==true)
+ {
+ CYG_TEST_PASS("ceil() is stable");
+ } // if
+ else
+ {
+ CYG_TEST_FAIL("ceil() failed tests");
+ } // else
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for Math "
+ "library ceil() function");
+} // test()
+
+
+int
+main(int argc, char *argv[])
+{
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for Math library "
+ "ceil() function");
+
+ START_TEST( test );
+
+ CYG_TEST_PASS_FINISH("Testing is not applicable to this configuration");
+
+} // main()
+
+
+// EOF ceil.c
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/ceil.h b/ecos/packages/language/c/libm/current/tests/vectors/ceil.h
new file mode 100644
index 0000000..d70db60
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/ceil.h
@@ -0,0 +1,1079 @@
+#ifndef CYGONCE_LIBM_CEIL_H
+#define CYGONCE_LIBM_CEIL_H
+//===========================================================================
+//
+// ceil.h
+//
+// Test vectors for testing of ceil() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage: #include "vectors/ceil.h"
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include "vectors/vector_support.h"// extra support for math tests
+
+#define CEIL_TOLERANCE 1.0E-04
+
+static const Cyg_libm_test_double_vec_t ceil_vec[] = {
+
+// AUTOMATICALLY GENERATED VECTORS START
+
+{ 1, 1077999148u, 2506787616u, 1090024059u, 3619148316u, 1078001664u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 2, 3218153654u, 3176730980u, 1051524793u, 2993920299u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 3, 3239659803u, 2725707538u, 3232101343u, 2346810316u, 3239659800u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 4, 1092554362u, 2088062470u, 3201242716u, 420891118u, 1092554364u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 5, 3221200677u, 2636405208u, 1100049309u, 471635570u, 3220176896u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 6, 1089363191u, 1746012320u, 1054478713u, 3333988501u, 1089363200u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 7, 1047953160u, 183014794u, 3202039382u, 2016785810u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 8, 3213486034u, 2688957927u, 1046089230u, 2709029994u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 9, 1058795730u, 624574473u, 1045840574u, 3473266330u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 10, 3204919842u, 1605286142u, 1068931671u, 4233776869u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 11, 1060343410u, 1857607719u, 3222889559u, 3417070006u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 12, 1103599987u, 3981151660u, 1088899021u, 1332651746u, 1103599987u, 3984588800u, 0, CEIL_TOLERANCE, 0},
+{ 13, 1085298022u, 3824988054u, 1066856791u, 2070129652u, 1085298176u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 14, 3207559790u, 1372884064u, 1080833116u, 3229926662u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 15, 1093826501u, 3217805330u, 3191644264u, 2014578707u, 1093826502u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 16, 1102287487u, 265058758u, 3239903247u, 1630600647u, 1102287487u, 268435456u, 0, CEIL_TOLERANCE, 0},
+{ 17, 1071124229u, 1946677669u, 3198462609u, 926009897u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 18, 1072130299u, 2271884183u, 3203741999u, 2118617783u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 19, 3194849109u, 213658772u, 3249401130u, 314151656u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 20, 3254112288u, 1564829925u, 3197817016u, 497230814u, 3254112288u, 1564475392u, 0, CEIL_TOLERANCE, 0},
+{ 21, 3216262634u, 2075329122u, 3231746400u, 169900577u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 22, 1049848642u, 541549344u, 1096608669u, 3119070100u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 23, 1085427055u, 567496114u, 1045286891u, 1969998540u, 1085427200u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 24, 1060548195u, 1299369769u, 1049342524u, 4167404066u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 25, 3208865645u, 3348930841u, 1078472138u, 358457347u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 26, 1071069297u, 2192461366u, 1099527247u, 3184735642u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 27, 1052861772u, 331696577u, 3189610016u, 793242270u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 28, 3252528934u, 2322696981u, 1083791358u, 3020766674u, 3252528934u, 2319450112u, 0, CEIL_TOLERANCE, 0},
+{ 29, 1044902177u, 252085215u, 3214426435u, 4139068910u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 30, 3222505725u, 105589263u, 1056316170u, 261630827u, 3222274048u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 31, 1107213408u, 428765703u, 3251828686u, 2009972239u, 1107213408u, 428867584u, 0, CEIL_TOLERANCE, 0},
+{ 32, 1098568019u, 3517376586u, 3240257920u, 3304487302u, 1098568019u, 3758096384u, 0, CEIL_TOLERANCE, 0},
+{ 33, 3233537912u, 237004814u, 3237899261u, 3364008659u, 3233537792u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 34, 3195247552u, 472004928u, 3226869477u, 1186387580u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 35, 1054226850u, 4085763910u, 1106394906u, 2684738273u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 36, 1057053639u, 2055490142u, 3231581370u, 3879040079u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 37, 3188976647u, 3725731239u, 1061652681u, 591292963u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 38, 3225014981u, 1147041027u, 3215417793u, 624695933u, 3224961024u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 39, 3206052774u, 705725219u, 3238067573u, 1116238321u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 40, 3207367088u, 7287411u, 1045917232u, 116067742u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 41, 3240055222u, 3604989074u, 1066381836u, 545298780u, 3240055220u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 42, 3219080936u, 1681476121u, 1060345752u, 3553822398u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 43, 1102831658u, 3410480388u, 1052460275u, 1660607230u, 1102831658u, 3422552064u, 0, CEIL_TOLERANCE, 0},
+{ 44, 1089216869u, 1494984673u, 3196647153u, 287894723u, 1089216896u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 45, 1054885127u, 644548665u, 1081948134u, 2442134629u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 46, 1087554095u, 2312530895u, 3221584595u, 3379665576u, 1087554112u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 47, 1096085375u, 3018463866u, 1086226574u, 404012923u, 1096085375u, 3221225472u, 0, CEIL_TOLERANCE, 0},
+{ 48, 1064733299u, 1710279345u, 3251401196u, 3528946000u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 49, 1061536351u, 2164450219u, 1083520023u, 3312018966u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 50, 1057248676u, 2648986431u, 1050330591u, 1474376550u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 51, 3194422028u, 1839068700u, 1077406406u, 3013052171u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 52, 1046493630u, 772102380u, 3220729740u, 4219039958u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 53, 3229472221u, 3058618779u, 1046304788u, 3338676024u, 3229470720u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 54, 1051172137u, 506286854u, 1094907481u, 2217000199u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 55, 1082428310u, 1147428263u, 1065432625u, 3034786717u, 1082429440u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 56, 1082016752u, 2844125311u, 1082985198u, 2561492677u, 1082019840u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 57, 3211536916u, 704542600u, 3222902057u, 2762779203u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 58, 3199680614u, 184131949u, 3249723525u, 1667366082u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 59, 3223609598u, 3904224140u, 1067056698u, 2942159914u, 3223584768u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 60, 1100636863u, 426114282u, 3209056785u, 1083606355u, 1100636863u, 469762048u, 0, CEIL_TOLERANCE, 0},
+{ 61, 1106165945u, 3774123863u, 1106787580u, 2722107965u, 1106165945u, 3774873600u, 0, CEIL_TOLERANCE, 0},
+{ 62, 1088005092u, 1377734762u, 1104232051u, 2377063483u, 1088005120u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 63, 1069380559u, 1029739074u, 1105467109u, 3062201018u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 64, 3234741597u, 773857656u, 3214251949u, 335833884u, 3234741504u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 65, 3203224610u, 1473865960u, 1103073830u, 4000427507u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 66, 1103185231u, 4242092620u, 1067009473u, 14539161u, 1103185231u, 4244635648u, 0, CEIL_TOLERANCE, 0},
+{ 67, 3192516074u, 1732245037u, 1101371955u, 1533536108u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 68, 3249153995u, 1833841275u, 1099430098u, 4144145552u, 3249153995u, 1811939328u, 0, CEIL_TOLERANCE, 0},
+{ 69, 3244270463u, 935007012u, 3188865420u, 604442938u, 3244270463u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 70, 3206903253u, 2211464602u, 1046255144u, 1635910526u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 71, 1077871417u, 2549219008u, 3231633258u, 3733639385u, 1077936128u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 72, 1082095089u, 1819374372u, 3202219056u, 2617077637u, 1082097664u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 73, 1094345280u, 546465680u, 1048653554u, 532401530u, 1094345281u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 74, 1044571091u, 2759019783u, 3221570188u, 3554409630u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 75, 3212931282u, 2527221960u, 1099107978u, 2696971136u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 76, 1097158000u, 173134582u, 1087299442u, 2877794600u, 1097158000u, 536870912u, 0, CEIL_TOLERANCE, 0},
+{ 77, 1086400474u, 547642046u, 3197285510u, 3521286127u, 1086400512u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 78, 1074860702u, 1231582831u, 1090971734u, 1653446832u, 1075052544u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 79, 1061342535u, 3762182190u, 3252967851u, 2615360375u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 80, 3200834423u, 2588067350u, 3206610957u, 3551059728u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 81, 3206978856u, 845263327u, 1073415902u, 1749010288u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 82, 3205576370u, 3092685191u, 3190678390u, 2872219490u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 83, 3218315055u, 4107255722u, 3205337291u, 3069068345u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 84, 3243990857u, 2294867524u, 3216653996u, 2860384670u, 3243990857u, 2147483648u, 0, CEIL_TOLERANCE, 0},
+{ 85, 3193326350u, 2265437201u, 3240198679u, 1234948614u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 86, 3216359929u, 1186945904u, 3251167793u, 1896750851u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 87, 1081575478u, 3686084548u, 1079286273u, 3309277689u, 1081577472u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 88, 3223476240u, 3006860614u, 3231412671u, 2504194724u, 3223453696u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 89, 3236149260u, 1948717780u, 1048317852u, 3791803982u, 3236149248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 90, 1064345015u, 4272034420u, 3192982124u, 1526175922u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 91, 3245817826u, 4108948538u, 1104691287u, 640541190u, 3245817826u, 4026531840u, 0, CEIL_TOLERANCE, 0},
+{ 92, 3207257417u, 3259274853u, 1082507103u, 3677038020u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 93, 1083132498u, 3781708548u, 1096584871u, 1207386447u, 1083133952u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 94, 3188695272u, 3011191657u, 1103798670u, 1096124830u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 95, 1063235023u, 2540404725u, 3240157452u, 4122845725u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 96, 1083643710u, 311336721u, 3214382367u, 4212533768u, 1083643904u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 97, 1051139427u, 1769686293u, 3240200923u, 3538602249u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 98, 1078227549u, 508056696u, 1103793878u, 776520138u, 1078231040u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 99, 1102910577u, 4064962760u, 1077424413u, 819766631u, 1102910577u, 4076863488u, 0, CEIL_TOLERANCE, 0},
+{ 100, 1074178362u, 2112385259u, 3227593179u, 1187058516u, 1074266112u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 101, 1082295059u, 2514398118u, 1076579751u, 870169764u, 1082296320u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 102, 3246851392u, 1190259653u, 1069112254u, 3417249840u, 3246851392u, 1073741824u, 0, CEIL_TOLERANCE, 0},
+{ 103, 3193663083u, 3467757357u, 3215075200u, 2168175352u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 104, 3239643135u, 1508888184u, 1060430241u, 3524949092u, 3239643132u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 105, 3197412883u, 166402802u, 3237198975u, 3572369260u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 106, 1081866822u, 2441536203u, 3202753937u, 3658194573u, 1081868288u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 107, 1062392908u, 2479742828u, 1062342831u, 4214154303u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 108, 1082396794u, 426896765u, 1066474375u, 2201754442u, 1082398720u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 109, 3195629021u, 2055773734u, 3239267288u, 291396537u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 110, 3236968033u, 874125203u, 3210508124u, 4091098764u, 3236968032u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 111, 1065716026u, 120488169u, 3241241441u, 1985269424u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 112, 3206539410u, 2243036871u, 3243941101u, 740033495u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 113, 3209424906u, 1176656356u, 1074261978u, 3588756231u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 114, 3252816791u, 3037249392u, 1061635587u, 1173102190u, 3252816791u, 3036676096u, 0, CEIL_TOLERANCE, 0},
+{ 115, 3237209581u, 2882725208u, 1071440059u, 69225090u, 3237209568u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 116, 3212663474u, 272319256u, 1072073912u, 2493997123u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 117, 1057720186u, 188610379u, 3232757923u, 2209647371u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 118, 3236758517u, 1990439193u, 1078073146u, 622849962u, 3236758496u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 119, 1057135741u, 756052458u, 1081649113u, 2247475162u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 120, 1061623064u, 3878055211u, 3222407050u, 2979438623u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 121, 3195290997u, 2676398686u, 1105124431u, 3631096636u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 122, 1065079390u, 1697791764u, 3198136112u, 2299842819u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 123, 1078084768u, 1931502677u, 3215264397u, 3016456382u, 1078099968u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 124, 1072253426u, 343404215u, 1061072607u, 4266232536u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 125, 3241230836u, 4140316002u, 1082896196u, 868256971u, 3241230836u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 126, 1075422810u, 1864139509u, 3187675097u, 3084482407u, 1075576832u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 127, 3220191323u, 2427162817u, 3234748208u, 2715105792u, 3220176896u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 128, 1064600512u, 3943389284u, 1046724025u, 3626825684u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 129, 1045423002u, 967350972u, 1093012318u, 448002663u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 130, 3251845859u, 105058217u, 1069733884u, 171786224u, 3251845859u, 104857600u, 0, CEIL_TOLERANCE, 0},
+{ 131, 3189614508u, 2863482262u, 3204997271u, 877784425u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 132, 3202629313u, 2801782962u, 3213604117u, 762347195u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 133, 3233486727u, 2317950339u, 3246333414u, 2135700283u, 3233486592u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 134, 1056516397u, 4171919805u, 1082858682u, 2180920863u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 135, 3220149084u, 1918836931u, 1083603224u, 3137821660u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 136, 1103902874u, 3456203663u, 3235600523u, 2335688936u, 1103902874u, 3464495104u, 0, CEIL_TOLERANCE, 0},
+{ 137, 1042279322u, 4170235262u, 1051824459u, 521583737u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 138, 1081348303u, 1296623194u, 3250673860u, 2442872540u, 1081352192u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 139, 1061684277u, 289979405u, 1049514449u, 3865737145u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 140, 1075298944u, 3699090239u, 1054539840u, 3259249360u, 1075314688u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 141, 1096418100u, 1619819023u, 1045993352u, 1022642459u, 1096418100u, 2147483648u, 0, CEIL_TOLERANCE, 0},
+{ 142, 1081433004u, 19455098u, 3229182089u, 2096003654u, 1081434112u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 143, 1076297936u, 3803689997u, 1071630912u, 2263729518u, 1076363264u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 144, 1101357261u, 2816837387u, 1063422305u, 2597606398u, 1101357261u, 2818572288u, 0, CEIL_TOLERANCE, 0},
+{ 145, 1069100169u, 3680967506u, 1040201163u, 179224723u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 146, 3188629767u, 978126928u, 1101553990u, 4047893399u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 147, 3222322045u, 4059818629u, 1042678728u, 3640293589u, 3222274048u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 148, 3248464040u, 3383497159u, 1070002807u, 1527313008u, 3248464040u, 3355443200u, 0, CEIL_TOLERANCE, 0},
+{ 149, 3202707679u, 2599946514u, 1104170406u, 2738675352u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 150, 1105232623u, 3616571377u, 1060859316u, 1130603218u, 1105232623u, 3617587200u, 0, CEIL_TOLERANCE, 0},
+{ 151, 1076028796u, 3859211180u, 1067940450u, 1744531824u, 1076101120u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 152, 1042831340u, 1958025850u, 3236511256u, 2472176453u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 153, 3233107089u, 182132862u, 3250520938u, 3924356991u, 3233106944u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 154, 3230501884u, 35632886u, 3209806504u, 1453402523u, 3230500864u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 155, 1083522102u, 743225214u, 3202890678u, 142917400u, 1083523072u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 156, 1080684976u, 1472665012u, 3203138231u, 256588219u, 1080688640u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 157, 1094982162u, 1062927000u, 1061134072u, 931677439u, 1094982162u, 2147483648u, 0, CEIL_TOLERANCE, 0},
+{ 158, 1058377732u, 2320910576u, 1055663370u, 288059864u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 159, 1078958093u, 1448349062u, 3199478070u, 3454027134u, 1078984704u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 160, 3237458798u, 4215445172u, 3196654963u, 2231888973u, 3237458784u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 161, 3246632231u, 40413554u, 3232578253u, 983832844u, 3246632231u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 162, 3223721534u, 3995725873u, 1050082319u, 777231627u, 3223715840u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 163, 1040986626u, 672789828u, 3253385962u, 2982787335u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 164, 1068390875u, 2075971825u, 1070166500u, 4034633931u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 165, 3210046177u, 1018222907u, 3244621407u, 3090050495u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 166, 1067680885u, 937732557u, 3200798890u, 2557898276u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 167, 1078342316u, 130346162u, 3223590310u, 275568693u, 1078362112u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 168, 1042898869u, 3807416441u, 1075961161u, 3706820266u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 169, 3216099005u, 1710131411u, 1078123323u, 1900790503u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 170, 3238819361u, 3420420033u, 3210844787u, 588423066u, 3238819360u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 171, 1049684114u, 1160162008u, 3246307879u, 4265764460u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 172, 1102543434u, 366653268u, 3188814424u, 466059202u, 1102543434u, 369098752u, 0, CEIL_TOLERANCE, 0},
+{ 173, 3226627739u, 1325936170u, 3221436876u, 680097612u, 3226615808u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 174, 3240391116u, 1827735934u, 3200554324u, 2875599271u, 3240391116u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 175, 3191030402u, 3117037091u, 3239246636u, 15838845u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 176, 1051974004u, 749718883u, 3223587064u, 1523766569u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 177, 1044833651u, 1966536294u, 3250158026u, 699164258u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 178, 1098048435u, 3759049394u, 1106085272u, 1183789499u, 1098048435u, 4026531840u, 0, CEIL_TOLERANCE, 0},
+{ 179, 1081201623u, 1970107747u, 1095245453u, 2308233883u, 1081204736u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 180, 1084756444u, 1491017852u, 1041444355u, 1723375725u, 1084756480u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 181, 3216630070u, 1141349287u, 1097465301u, 3403438584u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 182, 3230571908u, 1711085243u, 3250239076u, 1377484108u, 3230570496u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 183, 1098385019u, 2880275004u, 1084039594u, 1611394950u, 1098385019u, 2952790016u, 0, CEIL_TOLERANCE, 0},
+{ 184, 3234221435u, 2626629370u, 1063771493u, 1499080813u, 3234221312u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 185, 1055231263u, 3936262414u, 1103919063u, 3175668759u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 186, 3207981719u, 1270950554u, 3194616071u, 3680565379u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 187, 3208148223u, 1066985223u, 3221613219u, 4089383168u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 188, 3217058839u, 4017329311u, 3208334452u, 1667591498u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 189, 1088164157u, 3154656624u, 1061894279u, 3886344038u, 1088164160u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 190, 1050652945u, 977586119u, 3209762784u, 953839852u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 191, 1104965247u, 143071571u, 3206165386u, 913097445u, 1104965247u, 146800640u, 0, CEIL_TOLERANCE, 0},
+{ 192, 3190565456u, 1371169579u, 1057079837u, 2594818628u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 193, 3251793336u, 2259342224u, 3217432469u, 1824221478u, 3251793336u, 2256535552u, 0, CEIL_TOLERANCE, 0},
+{ 194, 3246834775u, 1576604497u, 1079368611u, 185078728u, 3246834775u, 1476395008u, 0, CEIL_TOLERANCE, 0},
+{ 195, 3221679427u, 444800035u, 3243343143u, 1734989302u, 3221225472u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 196, 1072748883u, 130452005u, 1041548088u, 2158433515u, 1073741824u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 197, 3234695968u, 1941318385u, 1045807374u, 792193370u, 3234695936u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 198, 3238299666u, 1299392207u, 3212131720u, 3205732280u, 3238299664u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 199, 1098698804u, 3035093505u, 1052187689u, 3287702190u, 1098698804u, 3221225472u, 0, CEIL_TOLERANCE, 0},
+{ 200, 3246676260u, 2160225215u, 1102624859u, 836655570u, 3246676260u, 2147483648u, 0, CEIL_TOLERANCE, 0},
+{ 201, 1096723626u, 3360816360u, 3246176356u, 172860634u, 1096723627u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 202, 1070995788u, 146831910u, 1051558014u, 2340722078u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 203, 3230416351u, 1603798153u, 3207725532u, 1099413093u, 3230414848u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 204, 3246678378u, 2429340443u, 3190303581u, 3223770005u, 3246678378u, 2415919104u, 0, CEIL_TOLERANCE, 0},
+{ 205, 1075882959u, 955542166u, 3230415151u, 275583938u, 1075970048u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 206, 1092971882u, 513397822u, 1090646554u, 2089321329u, 1092971884u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 207, 3193169876u, 2782073372u, 1046063872u, 4023829068u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 208, 1098564822u, 3242223094u, 3194111199u, 4264674108u, 1098564822u, 3489660928u, 0, CEIL_TOLERANCE, 0},
+{ 209, 3238510821u, 3506346169u, 1047020885u, 1742757458u, 3238510816u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 210, 3192664477u, 1265459564u, 3193450280u, 3650514880u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 211, 1081755890u, 1525260440u, 3235452527u, 2612331392u, 1081757696u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 212, 3248668920u, 1263613754u, 3219096387u, 635677201u, 3248668920u, 1241513984u, 0, CEIL_TOLERANCE, 0},
+{ 213, 3206272087u, 4140947288u, 3200792376u, 2013265346u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 214, 3249974392u, 1912759945u, 3237045253u, 1351396825u, 3249974392u, 1912602624u, 0, CEIL_TOLERANCE, 0},
+{ 215, 3248205162u, 1001433078u, 3206926643u, 2741676659u, 3248205162u, 939524096u, 0, CEIL_TOLERANCE, 0},
+{ 216, 1080923606u, 1088945233u, 1085095743u, 3986114865u, 1080926208u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 217, 3215734057u, 831239754u, 1099828675u, 3071308141u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 218, 3225834497u, 3473592372u, 1102759382u, 1309576357u, 3225812992u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 219, 3251186706u, 2042340367u, 1091945628u, 2062772374u, 3251186706u, 2038431744u, 0, CEIL_TOLERANCE, 0},
+{ 220, 3194765687u, 1840632537u, 1096533424u, 807510337u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 221, 3231451722u, 144814872u, 3212698915u, 2282965697u, 3231451136u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 222, 1071236430u, 2552499583u, 3229111426u, 1470130815u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 223, 3243093065u, 2858583811u, 1089760910u, 6360994u, 3243093065u, 2147483648u, 0, CEIL_TOLERANCE, 0},
+{ 224, 3198264929u, 1614537194u, 1075198900u, 4088705365u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 225, 3250939070u, 3545570051u, 1065221325u, 1629217700u, 3250939070u, 3539992576u, 0, CEIL_TOLERANCE, 0},
+{ 226, 1072744324u, 1813392963u, 3235313361u, 3772501596u, 1073741824u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 227, 3196802686u, 2406734491u, 1042055360u, 89226663u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 228, 3195751081u, 1618759139u, 3194723421u, 3888234802u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 229, 1055357248u, 3590035633u, 3212424262u, 2892456615u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 230, 3189943060u, 2431246964u, 3241512456u, 183850734u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 231, 1089501101u, 3088319870u, 3211544311u, 862225364u, 1089501104u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 232, 3235294664u, 3495352775u, 1058576726u, 596957268u, 3235294656u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 233, 1046553348u, 1839214511u, 3205004060u, 1923240983u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 234, 1058073864u, 739619702u, 3223356436u, 2689885273u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 235, 3200324971u, 2143376228u, 1098306332u, 3760236188u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 236, 1074621795u, 671680995u, 1091262633u, 2315535361u, 1074790400u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 237, 3214165989u, 2493598049u, 3194927008u, 1689107592u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 238, 3189989959u, 1578976988u, 1066368383u, 2117279163u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 239, 3222988111u, 3425290087u, 1098487295u, 1263412017u, 3222798336u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 240, 3208432764u, 3635396812u, 1070999426u, 3965655689u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 241, 1060196346u, 2183973116u, 1101098363u, 1118613350u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 242, 3221946089u, 199516350u, 1078368488u, 164621458u, 3221749760u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 243, 3187706018u, 3570940805u, 3230316437u, 3596080877u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 244, 3208209565u, 980880313u, 1079833442u, 884465057u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 245, 1099977124u, 2558179220u, 1052873711u, 1233598120u, 1099977124u, 2617245696u, 0, CEIL_TOLERANCE, 0},
+{ 246, 1047115221u, 1909994277u, 1085015978u, 2991527452u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 247, 1060855260u, 1680290941u, 1074309900u, 2943870846u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 248, 1059496132u, 1451927357u, 3228615456u, 1502585517u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 249, 3236211951u, 751136990u, 3230392165u, 3493275472u, 3236211936u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 250, 1098365967u, 1209623292u, 3238056647u, 979495322u, 1098365967u, 1342177280u, 0, CEIL_TOLERANCE, 0},
+{ 251, 3250424296u, 1717672108u, 1048120593u, 531240316u, 3250424296u, 1711276032u, 0, CEIL_TOLERANCE, 0},
+{ 252, 1054174923u, 3548721654u, 1086112947u, 3391817224u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 253, 1077836851u, 2758195125u, 1100880260u, 2028440924u, 1077870592u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 254, 1084223893u, 2750123373u, 3232200256u, 1086294931u, 1084224512u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 255, 1043958672u, 2986160931u, 1076097908u, 2540046258u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 256, 3235476602u, 451471221u, 1064816262u, 4187644495u, 3235476544u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 257, 1099460228u, 2439500162u, 1065280276u, 1979490284u, 1099460228u, 2550136832u, 0, CEIL_TOLERANCE, 0},
+{ 258, 1040415832u, 2283342035u, 1078398157u, 1345997553u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 259, 3213249348u, 179066662u, 1103272172u, 1217337578u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 260, 3211562377u, 3779303391u, 3210023352u, 3115946280u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 261, 3192989874u, 286247089u, 1085153597u, 713645369u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 262, 1093670500u, 1468283899u, 1042831668u, 2022736418u, 1093670501u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 263, 1083139105u, 3305564080u, 1065483445u, 482392433u, 1083140096u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 264, 3201695807u, 2256346551u, 3222430705u, 2071674991u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 265, 3204024695u, 2295269094u, 1084451053u, 2773103941u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 266, 1078173946u, 1482721827u, 1092243422u, 3125409590u, 1078198272u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 267, 3221065973u, 1381740563u, 1071545057u, 2918235653u, 3220176896u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 268, 3238715972u, 1105857967u, 3241990046u, 2703723225u, 3238715968u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 269, 1043015571u, 174689677u, 1079333374u, 3947057014u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 270, 1090461859u, 2023082423u, 3242081486u, 1169047927u, 1090461872u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 271, 1064525899u, 3742487766u, 1043425732u, 194972788u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 272, 3213791827u, 2136071361u, 3211529757u, 993675115u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 273, 3213663381u, 210772141u, 3241441539u, 580731413u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 274, 1093840413u, 1751560711u, 1074522705u, 180987057u, 1093840414u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 275, 1066754591u, 2552236599u, 1088658621u, 2112468655u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 276, 3189290617u, 1578223762u, 3224596567u, 2456166162u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 277, 1058506965u, 2110924310u, 1086207177u, 3161208323u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 278, 3231863394u, 2352173188u, 1079361728u, 4070222179u, 3231863296u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 279, 1101012904u, 2481562701u, 1090937016u, 3809489716u, 1101012904u, 2483027968u, 0, CEIL_TOLERANCE, 0},
+{ 280, 3197002651u, 330905705u, 1086260896u, 90264431u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 281, 1040729961u, 4162008079u, 3194387916u, 759522153u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 282, 1081015037u, 1839697482u, 3216442625u, 2211508949u, 1081016320u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 283, 3249807211u, 3736863454u, 1063475914u, 3150741666u, 3249807211u, 3724541952u, 0, CEIL_TOLERANCE, 0},
+{ 284, 1060785883u, 4200269406u, 3236646101u, 1061812176u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 285, 1080217979u, 106027290u, 3234978297u, 2245237549u, 1080221696u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 286, 3246984334u, 2132131375u, 3250483427u, 3449276437u, 3246984334u, 2013265920u, 0, CEIL_TOLERANCE, 0},
+{ 287, 1089388778u, 2334440944u, 1105423490u, 4004336184u, 1089388800u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 288, 3218772704u, 4090088208u, 1042030013u, 3898658299u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 289, 3207908064u, 2272831437u, 3253082595u, 2639188641u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 290, 1054766684u, 1856594168u, 3189515294u, 4101853676u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 291, 1076012412u, 2211699255u, 3195060344u, 3865018604u, 1076101120u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 292, 3242767010u, 996259334u, 3241496889u, 3782673116u, 3242767010u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 293, 1099130747u, 3840380763u, 1048674041u, 550040067u, 1099130747u, 3892314112u, 0, CEIL_TOLERANCE, 0},
+{ 294, 3251419593u, 95874100u, 3237232828u, 2645647822u, 3251419593u, 92274688u, 0, CEIL_TOLERANCE, 0},
+{ 295, 1043665640u, 3441419500u, 3252367038u, 876710419u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 296, 3238593552u, 2560836004u, 3199616543u, 1180840586u, 3238593552u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 297, 3221602966u, 2218230392u, 3227485787u, 3947214579u, 3221225472u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 298, 1079539654u, 1447312532u, 1081476588u, 780366847u, 1079541760u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 299, 1072569643u, 2842113832u, 3216156731u, 225159029u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 300, 1098117193u, 1601981129u, 3234628869u, 2236538344u, 1098117193u, 1610612736u, 0, CEIL_TOLERANCE, 0},
+{ 301, 1085173524u, 2194185737u, 3242362684u, 87913366u, 1085173760u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 302, 3199083880u, 1346862963u, 1077836259u, 3604666660u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 303, 3212255979u, 3115209742u, 1099332326u, 1325101950u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 304, 3224546042u, 3889223100u, 1053247613u, 3371396923u, 3224502272u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 305, 3220477868u, 4163120793u, 1075022670u, 1387631215u, 3220176896u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 306, 3205481779u, 1532426189u, 1063168268u, 3397022615u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 307, 3201033321u, 89324166u, 1079206060u, 3429424710u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 308, 3192325102u, 747591401u, 1072238381u, 2803213904u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 309, 1091113780u, 271904221u, 1044258318u, 1858545114u, 1091113784u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 310, 3228068914u, 314958082u, 3249912496u, 2966213175u, 3228065792u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 311, 3197179414u, 3119528953u, 3217179014u, 2908718240u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 312, 3242467576u, 2018361566u, 1100926600u, 3985805054u, 3242467576u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 313, 1070132580u, 409584884u, 3239758947u, 755795129u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 314, 1075772446u, 1819156379u, 3251342302u, 2982669005u, 1075838976u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 315, 1101563433u, 2080534280u, 3188254060u, 449171797u, 1101563433u, 2113929216u, 0, CEIL_TOLERANCE, 0},
+{ 316, 1095956900u, 168744837u, 3214950009u, 1322217822u, 1095956900u, 1073741824u, 0, CEIL_TOLERANCE, 0},
+{ 317, 3254226900u, 3250487255u, 1062120700u, 1876195180u, 3254226900u, 3249537024u, 0, CEIL_TOLERANCE, 0},
+{ 318, 3226343480u, 1336400247u, 1098057903u, 3314079581u, 3226337280u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 319, 3203678820u, 265025555u, 1063854282u, 3779482256u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 320, 1067300501u, 887044257u, 1054789618u, 2732056261u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 321, 1050106742u, 4027115185u, 3191764868u, 2940199511u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 322, 3202500155u, 2875684421u, 3227459837u, 2251967570u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 323, 1063244412u, 284173546u, 3238823679u, 3557800647u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 324, 1101458560u, 3147771266u, 3220110464u, 2933364246u, 1101458560u, 3154116608u, 0, CEIL_TOLERANCE, 0},
+{ 325, 1064853160u, 3366183281u, 3234870843u, 537442654u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 326, 3244118788u, 2529029548u, 3249882819u, 3781513577u, 3244118788u, 2147483648u, 0, CEIL_TOLERANCE, 0},
+{ 327, 3213436354u, 1080845539u, 3206760016u, 911778687u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 328, 3191951036u, 469586759u, 1091830022u, 3080528840u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 329, 1080249104u, 2863108169u, 3225605506u, 2508274250u, 1080254464u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 330, 3210826984u, 4080017377u, 3206492941u, 1470284690u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 331, 3207120390u, 3867917386u, 1102054928u, 3504746045u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 332, 1064522279u, 2962134101u, 3244741577u, 3390537350u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 333, 1088201813u, 1702237980u, 1071598971u, 1102587474u, 1088201856u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 334, 3202970118u, 2180218657u, 3211592260u, 1206527853u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 335, 3197084744u, 394130786u, 3242511482u, 2437699868u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 336, 1044237059u, 849581558u, 3252006507u, 2008614943u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 337, 3210140014u, 3128971673u, 3249137531u, 2773583059u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 338, 1085029866u, 590727700u, 3248651761u, 2183878539u, 1085029888u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 339, 1101098629u, 820687580u, 3208143496u, 1402434664u, 1101098629u, 838860800u, 0, CEIL_TOLERANCE, 0},
+{ 340, 3252290835u, 1873709254u, 3245167989u, 44275991u, 3252290835u, 1870659584u, 0, CEIL_TOLERANCE, 0},
+{ 341, 3189668753u, 1174874204u, 3208263730u, 2360372288u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 342, 1103854676u, 937573440u, 3208953761u, 211240241u, 1103854676u, 939524096u, 0, CEIL_TOLERANCE, 0},
+{ 343, 3243548934u, 2469774991u, 1043117070u, 3380071805u, 3243548934u, 2147483648u, 0, CEIL_TOLERANCE, 0},
+{ 344, 1058121042u, 442507560u, 3254252803u, 3257889649u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 345, 1068850520u, 1854921625u, 1049810168u, 2729627545u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 346, 3254712629u, 4001809575u, 3240128649u, 278261523u, 3254712629u, 4001366016u, 0, CEIL_TOLERANCE, 0},
+{ 347, 1087224694u, 1793907966u, 3238955714u, 398859249u, 1087224704u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 348, 3200952547u, 2511916952u, 3219195283u, 1697158299u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 349, 1069985548u, 3230931724u, 3243897690u, 3508781585u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 350, 1103847606u, 1674254897u, 1046547577u, 217148561u, 1103847606u, 1677721600u, 0, CEIL_TOLERANCE, 0},
+{ 351, 3211263954u, 3275604304u, 3194840159u, 2991205850u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 352, 3195249375u, 3509997278u, 3248888030u, 3897986511u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 353, 1047182435u, 2156824613u, 1042295665u, 1239257646u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 354, 3213264085u, 1073153314u, 3250031627u, 2567234990u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 355, 3190593412u, 4261696995u, 3197784432u, 323702024u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 356, 3243690997u, 4075177615u, 3202791065u, 1919006082u, 3243690997u, 3221225472u, 0, CEIL_TOLERANCE, 0},
+{ 357, 3239270013u, 386429966u, 1086504491u, 3698826164u, 3239270012u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 358, 1078327190u, 1681986446u, 3194985869u, 3072950140u, 1078329344u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 359, 3217311933u, 3719038997u, 1055433962u, 3331415058u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 360, 1060749713u, 2420250111u, 3238002206u, 1928661079u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 361, 1081914210u, 3679866727u, 3227386672u, 1273835792u, 1081917440u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 362, 1041622738u, 2682092368u, 3234222284u, 1325425811u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 363, 1056312613u, 4175172697u, 3208346191u, 2130706153u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 364, 1092089624u, 1200784450u, 1083605096u, 1248595607u, 1092089628u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 365, 3213890863u, 1897285171u, 3251296075u, 944966123u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 366, 3241371250u, 2270747330u, 3230692631u, 422503284u, 3241371250u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 367, 1084120037u, 2857564741u, 1075647403u, 3308906709u, 1084120064u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 368, 3203475098u, 1380066948u, 3232612906u, 2613634294u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 369, 1063890856u, 4022784584u, 1060483857u, 3264056381u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 370, 1044637404u, 1778509100u, 3213146285u, 2665833973u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 371, 3216727300u, 1859175955u, 1079949560u, 4258450607u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 372, 1048277388u, 4128020197u, 1076266146u, 4122840980u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 373, 3193183163u, 2454653987u, 3229487005u, 2977478685u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 374, 3253556483u, 1355181872u, 1095308770u, 436846481u, 3253556483u, 1354760192u, 0, CEIL_TOLERANCE, 0},
+{ 375, 3246605302u, 2592856453u, 3247825559u, 3195234082u, 3246605302u, 2550136832u, 0, CEIL_TOLERANCE, 0},
+{ 376, 3222118023u, 3554670043u, 1091621009u, 3321236467u, 3221749760u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 377, 1069012833u, 1936670355u, 1095715713u, 2958468553u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 378, 3192291109u, 2960339502u, 1098808013u, 1044068983u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 379, 3196691185u, 4093388677u, 1095478112u, 1735930261u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 380, 1091040302u, 1807398746u, 3195743135u, 4261616162u, 1091040304u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 381, 3209294194u, 3250576797u, 1059002384u, 3043079652u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 382, 1069207109u, 666051428u, 3208765404u, 1912684117u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 383, 1103487420u, 1949030179u, 1096388934u, 896459246u, 1103487420u, 1954545664u, 0, CEIL_TOLERANCE, 0},
+{ 384, 1054300653u, 622499767u, 1066707637u, 1490260486u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 385, 1106688493u, 1490616165u, 3251242436u, 795675736u, 1106688493u, 1491075072u, 0, CEIL_TOLERANCE, 0},
+{ 386, 1080943896u, 3662877092u, 3234317146u, 3200513112u, 1080950784u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 387, 1084088786u, 1356101968u, 3236536816u, 3062844611u, 1084089344u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 388, 3219922640u, 2284484846u, 3219498359u, 3240896015u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 389, 3235759689u, 494503287u, 1092811254u, 142673998u, 3235759680u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 390, 3252125916u, 3394882641u, 3225306538u, 364852125u, 3252125916u, 3393191936u, 0, CEIL_TOLERANCE, 0},
+{ 391, 3225261763u, 193885269u, 1088149839u, 1359805831u, 3225223168u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 392, 3200484782u, 592580907u, 3199560872u, 3086438952u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 393, 1059518664u, 1778008540u, 1049064687u, 73581647u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 394, 3246733598u, 233240285u, 1081923320u, 2710903921u, 3246733598u, 134217728u, 0, CEIL_TOLERANCE, 0},
+{ 395, 1069513767u, 3719878805u, 1079866720u, 3615458228u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 396, 3221194724u, 3647632375u, 3247225271u, 3839959621u, 3220176896u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 397, 1103401096u, 2232210456u, 3235434773u, 224271737u, 1103401096u, 2239758336u, 0, CEIL_TOLERANCE, 0},
+{ 398, 3193003684u, 2134662911u, 3190390590u, 4239009051u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 399, 1080526145u, 2305279897u, 1077668039u, 1854523320u, 1080532992u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 400, 3219864259u, 538224650u, 3206153057u, 1379649610u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 401, 3196410507u, 3683897920u, 3244167599u, 3647579469u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 402, 1090280933u, 2694093608u, 1042775347u, 598406111u, 1090280944u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 403, 3211635392u, 872706833u, 1084802480u, 2200602798u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 404, 1042339597u, 904146293u, 1060867322u, 1729685598u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 405, 3195694970u, 1894173462u, 3232800651u, 191960416u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 406, 1091225343u, 3521028551u, 1054522089u, 3287274359u, 1091225344u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 407, 1095386964u, 959640601u, 3201578263u, 4136915018u, 1095386964u, 2147483648u, 0, CEIL_TOLERANCE, 0},
+{ 408, 1064005451u, 1553716379u, 1106027987u, 984725765u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 409, 3238832641u, 2287646644u, 3240329321u, 2276183378u, 3238832640u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 410, 1068209174u, 3940225170u, 3199544434u, 997572161u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 411, 3212768361u, 36116288u, 3206886566u, 4196602670u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 412, 3241695853u, 3550227562u, 3207257983u, 2747744117u, 3241695853u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 413, 1104236126u, 507130047u, 1048359321u, 3229888373u, 1104236126u, 507510784u, 0, CEIL_TOLERANCE, 0},
+{ 414, 3222996778u, 2210969014u, 1081031001u, 1946786091u, 3222798336u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 415, 3236306990u, 4059150589u, 3189759234u, 1177045799u, 3236306976u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 416, 1093103612u, 2664812822u, 1050343198u, 2034180320u, 1093103614u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 417, 3213779117u, 1175750283u, 3235559706u, 1424491340u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 418, 3213904193u, 1630036121u, 3231972785u, 3195479448u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 419, 1090429875u, 2527029044u, 1046927050u, 4000723255u, 1090429888u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 420, 1085208677u, 3335703647u, 3237349676u, 3869440059u, 1085209088u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 421, 1091433848u, 3888398377u, 3196041693u, 1290567220u, 1091433856u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 422, 1066679070u, 3242451480u, 3248384948u, 707431021u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 423, 1083230509u, 2739665123u, 1060777905u, 1733073225u, 1083231232u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 424, 1078517061u, 1297274853u, 3208848704u, 3341639139u, 1078525952u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 425, 1046570941u, 2228057309u, 1084318902u, 1317851136u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 426, 1088255327u, 270039934u, 3241414679u, 3063626339u, 1088255360u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 427, 3219178350u, 83062251u, 3211262173u, 2659016437u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 428, 1095743886u, 3833539373u, 3206667189u, 1567476111u, 1095743887u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 429, 3205195072u, 2382776852u, 3249232579u, 1546622468u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 430, 1085536439u, 1714300821u, 1104130938u, 4167591598u, 1085536512u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 431, 1051092760u, 2798720100u, 1086978789u, 449990704u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 432, 3231198415u, 4039516226u, 3244344107u, 4272932619u, 3231198208u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 433, 3222708441u, 1683007544u, 1091105663u, 3805494321u, 3222536192u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 434, 3220852948u, 2072627412u, 1094383324u, 3394151662u, 3220176896u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 435, 3220570024u, 1120106427u, 3223631624u, 3404608264u, 3220176896u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 436, 1097859997u, 559918757u, 3205077053u, 908100198u, 1097859997u, 805306368u, 0, CEIL_TOLERANCE, 0},
+{ 437, 1042677918u, 2026673913u, 3244833635u, 2844573214u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 438, 3254567259u, 3946837259u, 3234993796u, 3850406820u, 3254567259u, 3945791488u, 0, CEIL_TOLERANCE, 0},
+{ 439, 1057479809u, 3139330994u, 1046133568u, 1539650690u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 440, 3236705500u, 1554593884u, 3228899878u, 2813752562u, 3236705472u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 441, 1056505004u, 3804703138u, 1072931071u, 2053677923u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 442, 3244864299u, 289355864u, 1078453818u, 2143066338u, 3244864299u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 443, 3203939880u, 2157691971u, 1106629150u, 110806409u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 444, 1082157019u, 3570399481u, 1085637605u, 180265334u, 1082157056u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 445, 3200980182u, 558779875u, 3202046748u, 2338464653u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 446, 1045705464u, 1703969219u, 3229797258u, 1417521063u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 447, 3237782261u, 3917440951u, 1051668894u, 3736066983u, 3237782256u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 448, 1064752080u, 3106613409u, 1066627453u, 2735392257u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 449, 1065665372u, 2229777605u, 1065061963u, 2405869925u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 450, 3239463229u, 3967957902u, 1057416138u, 3459188071u, 3239463228u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 451, 1068639210u, 3699016825u, 3249713090u, 796144848u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 452, 3228816396u, 3285165564u, 3211948811u, 401510871u, 3228815360u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 453, 1094257658u, 634857910u, 3199607513u, 914218057u, 1094257659u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 454, 1083743336u, 2030735578u, 3233855943u, 965677531u, 1083744256u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 455, 1079556815u, 3957229084u, 1051050470u, 3123776651u, 1079558144u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 456, 3221863333u, 162122081u, 3239376395u, 108064594u, 3221749760u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 457, 3237271786u, 869031839u, 3225020876u, 1344301606u, 3237271776u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 458, 3214433474u, 946696117u, 3231825228u, 1700703647u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 459, 1075492875u, 3394168074u, 1076939786u, 1666995668u, 1075576832u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 460, 3208774795u, 2488789804u, 3238508333u, 1506943664u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 461, 1072788663u, 3844072288u, 3202592279u, 2630019853u, 1073741824u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 462, 3219934542u, 1244307192u, 3191297711u, 2540916692u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 463, 3200062692u, 2871645739u, 3239081581u, 1440249115u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 464, 1068350633u, 1231934926u, 3236746788u, 603977748u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 465, 3195449689u, 2386312545u, 1063169277u, 2715234268u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 466, 1087803418u, 915867083u, 1046790892u, 3347417612u, 1087803456u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 467, 1105984188u, 3553288373u, 1065698616u, 2906680663u, 1105984188u, 3554672640u, 0, CEIL_TOLERANCE, 0},
+{ 468, 1045506226u, 2342364630u, 1051356723u, 4019093203u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 469, 3201169162u, 2911548084u, 1105282515u, 2476735795u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 470, 1050472772u, 1836216409u, 1101062307u, 2519592554u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 471, 1070178161u, 1235369496u, 3222946447u, 668087854u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 472, 3208554596u, 2981820811u, 1059838516u, 2845580478u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 473, 3193931414u, 1565550570u, 3217165795u, 4162017137u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 474, 3237251378u, 2808968027u, 1055630096u, 1782326814u, 3237251376u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 475, 1053576974u, 1492622658u, 3216653077u, 3972512122u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 476, 3222171679u, 2722693603u, 3227814791u, 3169731970u, 3221749760u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 477, 3217906631u, 899763203u, 3207606001u, 2804747833u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 478, 3230670325u, 3789058912u, 3228095081u, 4135937628u, 3230669824u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 479, 1060199382u, 1682808307u, 3206960335u, 232877759u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 480, 3242091486u, 2851963139u, 3246852961u, 2590862592u, 3242091486u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 481, 1081200406u, 2422232642u, 3234779662u, 290458310u, 1081200640u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 482, 3210671078u, 1082582386u, 1075605675u, 2602133689u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 483, 3239818611u, 1789635787u, 1059414278u, 1048286093u, 3239818608u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 484, 1098330542u, 231339448u, 1055573265u, 504907415u, 1098330542u, 268435456u, 0, CEIL_TOLERANCE, 0},
+{ 485, 1063211461u, 1153251200u, 3204617090u, 1772013857u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 486, 1099551055u, 1082898276u, 3212089272u, 1449080862u, 1099551055u, 1207959552u, 0, CEIL_TOLERANCE, 0},
+{ 487, 1086008285u, 3177299045u, 1058862813u, 809400815u, 1086008320u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 488, 3230854550u, 1924429710u, 1056464743u, 3349283177u, 3230854144u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 489, 3245473391u, 42238036u, 1042379500u, 2113559863u, 3245473391u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 490, 1064761243u, 3304403230u, 3217556703u, 58952646u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 491, 3212669530u, 1645486982u, 3224301095u, 3636267471u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 492, 1062762009u, 619402181u, 3235208235u, 557360557u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 493, 3238238394u, 110029735u, 1046937383u, 984375729u, 3238238392u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 494, 3189496738u, 4063688092u, 3203235744u, 1049950343u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 495, 1062350619u, 650996069u, 1054971928u, 3953359826u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 496, 3227055805u, 66926332u, 1090561839u, 1379780888u, 3227041792u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 497, 3233453307u, 2803378256u, 1086057989u, 498534626u, 3233453056u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 498, 1082618553u, 2846400785u, 1047142525u, 1375153550u, 1082619904u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 499, 1044581201u, 2869128958u, 1070972315u, 4246440273u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 500, 1051832506u, 3112381207u, 1044430965u, 3981604561u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 501, 3231254997u, 243303420u, 1093735824u, 1575581926u, 3231254528u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 502, 3239137997u, 3218865041u, 3204803496u, 3840388050u, 3239137996u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 503, 1048415431u, 336846959u, 1052664471u, 3798336786u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 504, 1055954236u, 3639240976u, 1081202165u, 1844741676u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 505, 3211904793u, 717293069u, 3211534283u, 582401011u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 506, 3251962512u, 3766248610u, 3196520332u, 1174437546u, 3251962512u, 3762290688u, 0, CEIL_TOLERANCE, 0},
+{ 507, 1083431226u, 756959182u, 3204099341u, 1581804034u, 1083431936u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 508, 3205806444u, 3560686300u, 3220980617u, 4277975772u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 509, 3209906076u, 2598148853u, 3217622194u, 3460421008u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 510, 1066720824u, 136600515u, 3209934920u, 3340653128u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 511, 1096820310u, 1045480938u, 3251354609u, 4133432965u, 1096820310u, 1073741824u, 0, CEIL_TOLERANCE, 0},
+{ 512, 1091599431u, 1630207738u, 3239996829u, 2393354808u, 1091599432u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 513, 3190626018u, 3739770117u, 1059520750u, 3959551225u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 514, 3230730505u, 1498861716u, 1091297147u, 847410798u, 3230730240u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 515, 1073516688u, 983275314u, 3232538664u, 2244973629u, 1073741824u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 516, 1054849265u, 2353103845u, 3235718771u, 2978889966u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 517, 3251357992u, 1546972125u, 3249076079u, 1987349196u, 3251357992u, 1543503872u, 0, CEIL_TOLERANCE, 0},
+{ 518, 3238219513u, 2769161072u, 1075207126u, 292616282u, 3238219512u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 519, 3199712298u, 36855311u, 1052128202u, 1479039342u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 520, 1083757053u, 2027463605u, 1066023013u, 3369686340u, 1083757568u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 521, 3197852749u, 3808681655u, 1054161346u, 1821773119u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 522, 1040685928u, 3175490326u, 3226879970u, 845687760u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 523, 1042302993u, 3124482451u, 3242748377u, 3259417226u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 524, 1045245695u, 2751606436u, 3236210939u, 3923142740u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 525, 1095694737u, 2016872044u, 3228408064u, 4201274408u, 1095694737u, 2147483648u, 0, CEIL_TOLERANCE, 0},
+{ 526, 3199349254u, 1019916843u, 3219974785u, 1977881787u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 527, 3199478752u, 2060433318u, 1075872515u, 366073725u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 528, 3191180557u, 1098469906u, 1082900695u, 2349346832u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 529, 3209974707u, 3011196295u, 3252479932u, 2459281672u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 530, 3221334323u, 2843222682u, 1089275809u, 298982001u, 3221225472u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 531, 1101737698u, 914741728u, 3203468059u, 2833809843u, 1101737698u, 939524096u, 0, CEIL_TOLERANCE, 0},
+{ 532, 3236763878u, 1274901962u, 3241535845u, 3759113509u, 3236763872u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 533, 3245916442u, 2134927252u, 3253802671u, 3013731444u, 3245916442u, 1879048192u, 0, CEIL_TOLERANCE, 0},
+{ 534, 1099201341u, 2230655177u, 3254510616u, 1249674366u, 1099201341u, 2281701376u, 0, CEIL_TOLERANCE, 0},
+{ 535, 1062971253u, 717357389u, 1083533731u, 3746683362u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 536, 3213773114u, 834976849u, 3217357661u, 2465861779u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 537, 1045656117u, 1385714428u, 1053358395u, 3007113740u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 538, 1050527919u, 599268545u, 3201368210u, 2309854744u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 539, 1069954454u, 2840234388u, 3232496515u, 333365983u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 540, 1045922781u, 3136078996u, 3194520860u, 2650572904u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 541, 3233687691u, 2405805086u, 3251640319u, 324233833u, 3233687552u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 542, 1106699146u, 2589598340u, 3254677807u, 952438812u, 1106699146u, 2589982720u, 0, CEIL_TOLERANCE, 0},
+{ 543, 3189114773u, 1922837702u, 3216892718u, 3535907549u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 544, 3243615868u, 261447440u, 3209805849u, 1150571079u, 3243615868u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 545, 1095805232u, 4026487528u, 1073152064u, 27340691u, 1095805233u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 546, 3229123692u, 338765118u, 1086225786u, 3207238249u, 3229122560u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 547, 3196182703u, 1085283176u, 3187775111u, 1601194210u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 548, 1091520173u, 3031712790u, 3252307859u, 170666844u, 1091520176u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 549, 3218862231u, 3148395674u, 1041913758u, 3306391490u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 550, 3201277070u, 2205233857u, 3208100078u, 3993195511u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 551, 1067699608u, 4282766727u, 1072820377u, 1874778218u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 552, 3210833092u, 2920860798u, 3218070226u, 3104066154u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 553, 3204950351u, 969991373u, 3250596895u, 1734386152u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 554, 3238915818u, 1218740205u, 3239802737u, 2610078504u, 3238915816u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 555, 3206031242u, 1485218325u, 3220870240u, 3591664613u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 556, 3202074143u, 690157417u, 3190850619u, 4192347699u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 557, 1096053810u, 4009839784u, 1079670252u, 394167192u, 1096053811u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 558, 3234559237u, 961532417u, 1092588071u, 2923790239u, 3234559232u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 559, 3203879091u, 4174125604u, 1050682630u, 2169701868u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 560, 3243092475u, 4146748230u, 1087373950u, 2481478351u, 3243092475u, 2147483648u, 0, CEIL_TOLERANCE, 0},
+{ 561, 1076987866u, 3984715440u, 1050421618u, 2446142566u, 1077018624u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 562, 1084172406u, 936290150u, 1100614426u, 3625806370u, 1084173312u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 563, 1099787952u, 1866615265u, 3215651428u, 2337013350u, 1099787952u, 1879048192u, 0, CEIL_TOLERANCE, 0},
+{ 564, 3253198302u, 712227971u, 1106004723u, 973148499u, 3253198302u, 710934528u, 0, CEIL_TOLERANCE, 0},
+{ 565, 3230088199u, 3409813738u, 3244817008u, 1933503498u, 3230087168u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 566, 1079943733u, 3180389060u, 3228735703u, 83422217u, 1079951360u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 567, 1077878724u, 556972671u, 3204582372u, 841555801u, 1077936128u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 568, 1070767721u, 4189151332u, 1080874032u, 706326922u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 569, 1096151307u, 198291836u, 1057281892u, 2188836928u, 1096151307u, 1073741824u, 0, CEIL_TOLERANCE, 0},
+{ 570, 1078091995u, 1219449298u, 3228734687u, 3504562743u, 1078099968u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 571, 3204570464u, 1776099219u, 1094316777u, 4188083896u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 572, 3193845708u, 2614400266u, 1073750227u, 3003203347u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 573, 3213982678u, 2959351406u, 1105603716u, 311851587u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 574, 1084544434u, 865443613u, 1097532516u, 3622237781u, 1084544512u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 575, 3231786666u, 447506102u, 3195759295u, 3603669725u, 3231786496u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 576, 1097890173u, 3934398273u, 1040996422u, 2968621268u, 1097890173u, 4026531840u, 0, CEIL_TOLERANCE, 0},
+{ 577, 3196739825u, 784208771u, 1088764788u, 2182296421u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 578, 3248332291u, 1527590526u, 3206961556u, 2823164069u, 3248332291u, 1476395008u, 0, CEIL_TOLERANCE, 0},
+{ 579, 3236644131u, 3876699591u, 3207481130u, 4028148535u, 3236644128u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 580, 1083576186u, 2164249756u, 1059857743u, 1785169952u, 1083576320u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 581, 1091804009u, 2079273665u, 1080303860u, 625760474u, 1091804012u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 582, 3226486108u, 3636214836u, 1068367620u, 2932621925u, 3226484736u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 583, 1043995372u, 4274131512u, 1047707755u, 92550763u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 584, 3198822121u, 2648933384u, 1084603503u, 3534304873u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 585, 1064563235u, 3216750767u, 3191088629u, 547482628u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 586, 1061084774u, 1420360746u, 1080063101u, 1690029499u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 587, 3229855364u, 1908572179u, 1080112083u, 1228319033u, 3229853696u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 588, 1048158178u, 500312015u, 3212368508u, 3864619086u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 589, 3221335610u, 4211343447u, 1087492676u, 4272583781u, 3221225472u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 590, 1099392394u, 2382118000u, 1042665328u, 567154882u, 1099392394u, 2415919104u, 0, CEIL_TOLERANCE, 0},
+{ 591, 1058013442u, 1435344339u, 3216303171u, 2275988178u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 592, 3214538619u, 3403659753u, 3218043030u, 1926480488u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 593, 1076840383u, 1198845185u, 3225556149u, 1130089684u, 1076887552u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 594, 3222663042u, 2183928090u, 1048403956u, 963834821u, 3222536192u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 595, 1101672960u, 2120625396u, 1041006976u, 2137548527u, 1101672960u, 2147483648u, 0, CEIL_TOLERANCE, 0},
+{ 596, 1099230238u, 586700956u, 1059670521u, 303891699u, 1099230238u, 671088640u, 0, CEIL_TOLERANCE, 0},
+{ 597, 3218994498u, 2509132460u, 1102827530u, 2205707903u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 598, 3204860597u, 1229308263u, 3209170414u, 4206576047u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 599, 3224076289u, 4078010749u, 3199236456u, 733478972u, 3223977984u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 600, 3197712584u, 4277541051u, 3199806921u, 397102023u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 601, 3195975013u, 900999594u, 3234720188u, 2530214248u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 602, 1076543548u, 4000609478u, 1096577064u, 4148592328u, 1076625408u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 603, 1048668084u, 2154187873u, 3224392607u, 3957250362u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 604, 3223413488u, 2867079200u, 1101870326u, 921212001u, 3223322624u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 605, 3233221890u, 674547716u, 1063216239u, 3929755226u, 3233221888u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 606, 3240415851u, 3158182449u, 1043794244u, 3259056345u, 3240415850u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 607, 3236776656u, 3002823940u, 1059511739u, 2832435794u, 3236776640u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 608, 3217304822u, 2196511929u, 1049973941u, 3672092877u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 609, 1050438056u, 3655292191u, 1086438127u, 3567072906u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 610, 3243186948u, 1617573614u, 3201863123u, 3090723732u, 3243186948u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 611, 3233201380u, 679893506u, 3211547753u, 824081024u, 3233201152u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 612, 1089530525u, 2285242807u, 1084999409u, 2221731406u, 1089530528u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 613, 3206733664u, 1935990727u, 1088822246u, 1058156518u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 614, 1102839166u, 521023584u, 1059186903u, 4245163857u, 1102839166u, 536870912u, 0, CEIL_TOLERANCE, 0},
+{ 615, 1103891140u, 2312887617u, 3191771354u, 1885370807u, 1103891140u, 2315255808u, 0, CEIL_TOLERANCE, 0},
+{ 616, 3252953815u, 1796441468u, 1100030327u, 2772711004u, 3252953815u, 1795162112u, 0, CEIL_TOLERANCE, 0},
+{ 617, 3204276820u, 2095685003u, 1077984448u, 2100773742u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 618, 3192954620u, 2892538035u, 1042396334u, 4162200338u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 619, 3242725751u, 2177698116u, 3227557177u, 150832500u, 3242725751u, 2147483648u, 0, CEIL_TOLERANCE, 0},
+{ 620, 3191562216u, 607966734u, 3236250630u, 4164600559u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 621, 3216389812u, 2830122967u, 1046096700u, 3713346883u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 622, 3237197963u, 2314640506u, 3203696416u, 3276228872u, 3237197952u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 623, 3212912307u, 469331883u, 3249037349u, 2999233437u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 624, 1097382011u, 560886625u, 1091899487u, 748795120u, 1097382011u, 1073741824u, 0, CEIL_TOLERANCE, 0},
+{ 625, 1049886858u, 2958421324u, 1092569414u, 3235243477u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 626, 3193026497u, 3221475559u, 1043038304u, 915608434u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 627, 1071197530u, 3007808652u, 3216682290u, 2531019474u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 628, 3242028999u, 1767658578u, 3237045269u, 2313128318u, 3242028999u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 629, 3210617892u, 1926845182u, 1066835624u, 1783256828u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 630, 1040575629u, 90378038u, 1057168870u, 164358218u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 631, 1106859172u, 1610524680u, 1085283851u, 2903496007u, 1106859172u, 1610612736u, 0, CEIL_TOLERANCE, 0},
+{ 632, 1078635586u, 4274321404u, 3202913591u, 720121831u, 1078657024u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 633, 1051205256u, 2034778236u, 1071133763u, 1413236391u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 634, 1051063028u, 1489112261u, 1076691395u, 348210906u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 635, 3206743917u, 2797651324u, 3224410527u, 2374818327u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 636, 1088287256u, 1823161666u, 3197810695u, 3119680047u, 1088287296u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 637, 1065927336u, 3420950657u, 1087084743u, 2136638961u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 638, 1069902224u, 3554566429u, 1062907717u, 2736702589u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 639, 3244888667u, 2928437580u, 3187765027u, 1393427873u, 3244888667u, 2684354560u, 0, CEIL_TOLERANCE, 0},
+{ 640, 3209301561u, 189447067u, 1051643315u, 828663513u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 641, 1052313869u, 2852350928u, 1045683757u, 673354280u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 642, 1043946301u, 3589563265u, 3248741629u, 812657927u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 643, 3190610826u, 1766416701u, 1100392103u, 2185373290u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 644, 3220275389u, 3763582673u, 3191965790u, 388374829u, 3220176896u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 645, 1079635136u, 1187403069u, 1075300235u, 336640304u, 1079640064u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 646, 1103926251u, 1718795752u, 3243118752u, 683369237u, 1103926251u, 1719664640u, 0, CEIL_TOLERANCE, 0},
+{ 647, 3210792097u, 1863545307u, 1069449477u, 3418627399u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 648, 1069601294u, 3295607249u, 1068878592u, 1633297809u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 649, 1058947127u, 2585980994u, 3236670483u, 1286750688u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 650, 1046157033u, 15816845u, 3233249283u, 2491924775u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 651, 1042413021u, 1051983351u, 1049180786u, 1474421917u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 652, 3201249525u, 2003816032u, 1086050104u, 668090487u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 653, 1052556037u, 3671484625u, 1067020039u, 430024694u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 654, 1067397110u, 3991830201u, 3207808714u, 1021245839u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 655, 1064194391u, 4255801807u, 3207681716u, 1926756877u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 656, 1052140785u, 4167786896u, 1077097744u, 1775517981u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 657, 1085601978u, 3187518564u, 1082437406u, 944672491u, 1085602048u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 658, 1049366282u, 953085192u, 3227310828u, 3459155777u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 659, 1069502506u, 1908555460u, 1073640207u, 260441967u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 660, 1067219606u, 250762477u, 1072582645u, 2886742039u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 661, 3250906006u, 786180031u, 3197734769u, 2788918312u, 3250906006u, 780140544u, 0, CEIL_TOLERANCE, 0},
+{ 662, 3234511827u, 2055912467u, 3244244909u, 1394142937u, 3234511744u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 663, 1069612985u, 91984146u, 3222252812u, 4126276047u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 664, 1081340139u, 3942715706u, 3239316352u, 410676547u, 1081344000u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 665, 3198557846u, 86296211u, 1085850694u, 649202596u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 666, 3245366392u, 3069064472u, 3237358008u, 23209276u, 3245366392u, 2952790016u, 0, CEIL_TOLERANCE, 0},
+{ 667, 1081235288u, 1867297860u, 1072956607u, 2513414118u, 1081237504u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 668, 3250533347u, 3171788768u, 3235208783u, 162138697u, 3250533347u, 3170893824u, 0, CEIL_TOLERANCE, 0},
+{ 669, 1081728455u, 1245110700u, 1081653954u, 2584994077u, 1081729024u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 670, 3245510120u, 3347226587u, 1058962932u, 2291943376u, 3245510120u, 3221225472u, 0, CEIL_TOLERANCE, 0},
+{ 671, 1058899062u, 966940828u, 1060726420u, 2798041096u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 672, 1072793759u, 2487340727u, 3223786370u, 4105954991u, 1073741824u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 673, 3248116497u, 1671039260u, 1086395032u, 3745833360u, 3248116497u, 1610612736u, 0, CEIL_TOLERANCE, 0},
+{ 674, 1057078797u, 651714217u, 1047070645u, 2130549237u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 675, 3207115731u, 1423000172u, 3247822717u, 1551488170u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 676, 3201597307u, 921077236u, 3213332351u, 1431049019u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 677, 1067510295u, 655715547u, 3190985373u, 1527556471u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 678, 3227654979u, 4110878657u, 3251297180u, 879739345u, 3227648000u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 679, 1085804762u, 2623955764u, 1093699897u, 1216444475u, 1085804800u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 680, 1091905603u, 107442539u, 3239767031u, 1149813329u, 1091905604u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 681, 3233445240u, 1761361082u, 3226030205u, 1121849716u, 3233445120u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 682, 3240087115u, 2534144722u, 1044223733u, 3512285706u, 3240087112u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 683, 3211846077u, 4073670723u, 1050729852u, 3034818849u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 684, 1101984574u, 1421423503u, 1060278048u, 1397153092u, 1101984574u, 1442840576u, 0, CEIL_TOLERANCE, 0},
+{ 685, 3217421829u, 1649206019u, 1104525577u, 1267104290u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 686, 3189302097u, 3775270392u, 1040251850u, 68667319u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 687, 3204330900u, 3099226694u, 3254103006u, 4020102648u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 688, 3201591712u, 3718441177u, 3215643451u, 4032951536u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 689, 1044131371u, 508048351u, 3210196713u, 1707937896u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 690, 3198611627u, 2784738160u, 1073435430u, 1109346010u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 691, 3225725290u, 3331916473u, 3238794568u, 2707019594u, 3225714688u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 692, 1093182670u, 3093165197u, 1072894805u, 2853215019u, 1093182672u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 693, 3216582139u, 2135797997u, 1048399559u, 2941926126u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 694, 1048430980u, 2083412145u, 3249335391u, 507212448u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 695, 1075363751u, 4270176401u, 3246546709u, 3288753319u, 1075576832u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 696, 3247932863u, 3692175292u, 3197271515u, 3989064196u, 3247932863u, 3690987520u, 0, CEIL_TOLERANCE, 0},
+{ 697, 3251691738u, 3111924274u, 1066772558u, 59281695u, 3251691738u, 3107979264u, 0, CEIL_TOLERANCE, 0},
+{ 698, 1067683911u, 2135245466u, 3208804313u, 3846547392u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 699, 1094877811u, 972051266u, 3222814246u, 3539700586u, 1094877811u, 2147483648u, 0, CEIL_TOLERANCE, 0},
+{ 700, 3202965930u, 330951080u, 1079189813u, 583922384u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 701, 1089640092u, 1711944085u, 1104170032u, 643991456u, 1089640096u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 702, 3234429549u, 2072550721u, 3250147641u, 4280263530u, 3234429440u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 703, 3192972706u, 1566376352u, 1067251433u, 72984588u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 704, 1095276569u, 3103043079u, 1045853123u, 410067497u, 1095276570u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 705, 3216672493u, 1910366299u, 1081770885u, 634683073u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 706, 1081530688u, 2226525875u, 3224149290u, 2126302825u, 1081532416u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 707, 1073150247u, 1383818978u, 3193885723u, 1220372650u, 1073741824u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 708, 1066482943u, 1953339096u, 1077176252u, 1476516558u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 709, 1066092000u, 1306277326u, 1079089150u, 4093716191u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 710, 3233148787u, 51750045u, 3242913901u, 4256866157u, 3233148672u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 711, 3195084967u, 2163853087u, 3232053146u, 2962422808u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 712, 1075516945u, 1618388148u, 3233154824u, 3711953164u, 1075576832u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 713, 3246868002u, 357108214u, 3202294604u, 2306775262u, 3246868002u, 268435456u, 0, CEIL_TOLERANCE, 0},
+{ 714, 3201904086u, 2571356437u, 3249064063u, 2394851808u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 715, 3230488091u, 4273880094u, 1103698617u, 3578832032u, 3230486528u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 716, 3233426701u, 2091068742u, 3228270226u, 3980489730u, 3233426688u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 717, 3229016752u, 2772307714u, 1051008486u, 32546576u, 3229016064u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 718, 3241229215u, 2143788498u, 3195498043u, 3630119231u, 3241229215u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 719, 3198632935u, 2527385594u, 3240503648u, 3482095012u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 720, 3242168799u, 2690097362u, 1068598730u, 2360266862u, 3242168799u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 721, 1058857869u, 2673272949u, 1082639557u, 522449749u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 722, 1104424147u, 3596379400u, 3242016775u, 2002293002u, 1104424147u, 3598712832u, 0, CEIL_TOLERANCE, 0},
+{ 723, 1099439656u, 4113224369u, 3222122439u, 2152316893u, 1099439656u, 4160749568u, 0, CEIL_TOLERANCE, 0},
+{ 724, 3220796716u, 31662602u, 1047721249u, 1747087514u, 3220176896u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 725, 3250463757u, 2489659568u, 1097051253u, 277506957u, 3250463757u, 2483027968u, 0, CEIL_TOLERANCE, 0},
+{ 726, 3191401834u, 3850162281u, 3213841942u, 438724093u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 727, 1095392535u, 2431814052u, 1075518084u, 2672434118u, 1095392536u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 728, 3243162735u, 391606792u, 1048184750u, 4168944276u, 3243162735u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 729, 3247792416u, 457529672u, 3201090276u, 72407935u, 3247792416u, 402653184u, 0, CEIL_TOLERANCE, 0},
+{ 730, 3218720719u, 3954981400u, 1052053242u, 2411049585u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 731, 1086180091u, 485456950u, 1088415093u, 1655397424u, 1086180096u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 732, 3198234428u, 1551748070u, 3236871640u, 1329701152u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 733, 3224639122u, 3099222537u, 1104984570u, 4293792842u, 3224633344u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 734, 3203949705u, 3603065260u, 3197735968u, 2402359253u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 735, 3198824584u, 3961208159u, 3219057584u, 2340553876u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 736, 1074881909u, 4014841779u, 3197672877u, 3697233334u, 1075052544u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 737, 3213275657u, 1403876392u, 3254028950u, 921363393u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 738, 1107251806u, 1862576361u, 3194031708u, 2476290925u, 1107251806u, 1863319552u, 0, CEIL_TOLERANCE, 0},
+{ 739, 1049661768u, 1454212851u, 1088378861u, 3400401866u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 740, 1074406809u, 552676385u, 3188635745u, 3778112968u, 1074790400u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 741, 3216409282u, 1199568671u, 3225679997u, 46947405u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 742, 1077685537u, 2596231448u, 3253943728u, 2219151748u, 1077739520u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 743, 1066527035u, 4119719558u, 3222036299u, 1275474618u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 744, 3239908663u, 3347296825u, 1101507910u, 1254014794u, 3239908660u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 745, 1084119992u, 673775040u, 1070743626u, 244126093u, 1084120064u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 746, 3203199850u, 1832066983u, 1051358028u, 3262483417u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 747, 1077559600u, 3962610501u, 3198598777u, 849269178u, 1077608448u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 748, 3235473900u, 2497516122u, 3254374111u, 2821429629u, 3235473856u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 749, 1076236288u, 2805941787u, 3217785843u, 779131141u, 1076363264u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 750, 3226908686u, 723423605u, 1084533420u, 627282213u, 3226894336u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 751, 3215947680u, 4292778869u, 1078101071u, 1676860147u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 752, 1076288502u, 3528118587u, 3194648564u, 2363260897u, 1076363264u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 753, 3192897879u, 1307010018u, 1061248120u, 1468743108u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 754, 3246583139u, 107905661u, 3226089788u, 1943427674u, 3246583139u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 755, 3188230541u, 760006940u, 1054265604u, 1749976597u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 756, 3237773384u, 2787503556u, 1081282610u, 1195841206u, 3237773376u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 757, 3191802156u, 545462045u, 3208381743u, 1981311808u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 758, 1061232136u, 3657978397u, 1104463616u, 3501253426u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 759, 1049883857u, 1804177501u, 3210693633u, 3606766729u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 760, 1076856879u, 1336278526u, 1043741618u, 3165279431u, 1076887552u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 761, 1055471915u, 1599382075u, 1058018527u, 4212580517u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 762, 3207502326u, 3007589929u, 3202026547u, 2792028313u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 763, 3253082770u, 1866066996u, 1060329048u, 3727175322u, 3253082770u, 1864368128u, 0, CEIL_TOLERANCE, 0},
+{ 764, 3198416643u, 150890940u, 1056025306u, 3082724735u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 765, 1062008939u, 80400395u, 1093584426u, 3478941315u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 766, 3251640614u, 4050954182u, 3219263194u, 2537475930u, 3251640614u, 4047503360u, 0, CEIL_TOLERANCE, 0},
+{ 767, 1064841871u, 2881752155u, 3212589299u, 2559651278u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 768, 3249016304u, 440309030u, 3214267461u, 3788040806u, 3249016304u, 436207616u, 0, CEIL_TOLERANCE, 0},
+{ 769, 1100476615u, 918813144u, 3208535698u, 1607035904u, 1100476615u, 939524096u, 0, CEIL_TOLERANCE, 0},
+{ 770, 1042137451u, 2497054124u, 1089139147u, 2549609010u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 771, 1047037641u, 790219083u, 1054657139u, 2797979479u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 772, 1057781400u, 1149462078u, 1095765205u, 3879963182u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 773, 3202729813u, 2684353926u, 3205212854u, 1732474928u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 774, 1095236965u, 2742237025u, 1051317716u, 3386396147u, 1095236966u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 775, 1063230986u, 3408320912u, 1103071166u, 4233059513u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 776, 1064863548u, 1077495917u, 1088399968u, 433115118u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 777, 3204547572u, 841366493u, 1051716814u, 4121125128u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 778, 1064632084u, 321857207u, 1089128010u, 1149988239u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 779, 3245542663u, 799866606u, 3197637091u, 3924438208u, 3245542663u, 536870912u, 0, CEIL_TOLERANCE, 0},
+{ 780, 3191062890u, 2002049816u, 1077053447u, 2240354761u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 781, 3229006283u, 478939968u, 1097035749u, 1066716440u, 3229003776u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 782, 3232473641u, 1653104725u, 1088548129u, 81977716u, 3232473600u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 783, 3196861276u, 3899475018u, 3189694084u, 3330093036u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 784, 1089312583u, 2612450289u, 1079065127u, 603380842u, 1089312608u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 785, 1100636791u, 3962735564u, 1101570429u, 1372490825u, 1100636791u, 4026531840u, 0, CEIL_TOLERANCE, 0},
+{ 786, 1054806016u, 1479841439u, 1059312257u, 541504905u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 787, 1078662178u, 2626148789u, 1057571099u, 4121656076u, 1078689792u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 788, 1081613389u, 1902560314u, 1043130231u, 3557671562u, 1081614336u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 789, 3193829772u, 41779312u, 1081626342u, 831171823u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 790, 1058131100u, 1393168821u, 1066457405u, 1381616968u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 791, 1072338141u, 3756584649u, 3222267229u, 1423157432u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 792, 3254435674u, 1894912556u, 1042426694u, 155024547u, 3254435674u, 1894776832u, 0, CEIL_TOLERANCE, 0},
+{ 793, 3195453512u, 35164295u, 3203391785u, 1037041084u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 794, 1084777479u, 3957875950u, 3232195211u, 1590756436u, 1084777984u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 795, 1068844322u, 1447585080u, 1071279485u, 1107922438u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 796, 1046252518u, 981897615u, 1051856116u, 430357614u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 797, 3227524215u, 395145384u, 3219821938u, 50586510u, 3227516928u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 798, 1069775912u, 750827797u, 1082862669u, 230466783u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 799, 1086668819u, 1365083575u, 3204848310u, 1700831722u, 1086668928u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 800, 3218090390u, 344241827u, 1071538935u, 2715566077u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 801, 3247582856u, 4069301823u, 3193208760u, 2949125229u, 3247582856u, 4026531840u, 0, CEIL_TOLERANCE, 0},
+{ 802, 1103231387u, 3585711710u, 1065801594u, 2302229267u, 1103231387u, 3590324224u, 0, CEIL_TOLERANCE, 0},
+{ 803, 3194118956u, 709803845u, 1048741487u, 2296910194u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 804, 3193280779u, 744421179u, 1069302001u, 2659232829u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 805, 1092835968u, 1799949903u, 3192522886u, 4212149209u, 1092835970u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 806, 3206108502u, 145234164u, 3250614064u, 912384201u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 807, 3240510664u, 2784620507u, 1102812948u, 3531481022u, 3240510664u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 808, 3251159663u, 383952592u, 3205659905u, 3633194728u, 3251159663u, 377487360u, 0, CEIL_TOLERANCE, 0},
+{ 809, 3203476252u, 3792395543u, 1070072378u, 3864816376u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 810, 3205316273u, 2115553675u, 1066288499u, 3538377867u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 811, 3252075185u, 1230026762u, 1090719723u, 440819880u, 3252075185u, 1228931072u, 0, CEIL_TOLERANCE, 0},
+{ 812, 3194595076u, 2991290482u, 1096886719u, 1097971167u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 813, 1090048600u, 1098035020u, 3230900504u, 1479059095u, 1090048608u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 814, 3251056964u, 1719428427u, 3188631907u, 3707377409u, 3251056964u, 1711276032u, 0, CEIL_TOLERANCE, 0},
+{ 815, 1053236165u, 3748932896u, 1084908557u, 1325384361u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 816, 1084704076u, 3979168763u, 1057455255u, 2454615952u, 1084704256u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 817, 1053106984u, 1449164578u, 1056960316u, 1654931641u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 818, 1071439010u, 2120487381u, 3226298974u, 2364226633u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 819, 1075071428u, 1074268944u, 1065730444u, 280016852u, 1075314688u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 820, 3200308256u, 3315127889u, 3236295594u, 2900924954u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 821, 3196425891u, 2246037502u, 1049691002u, 1496066550u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 822, 3193006859u, 4191285446u, 3217936236u, 2382392789u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 823, 1092833308u, 640099844u, 1042152237u, 2064279383u, 1092833310u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 824, 1079913438u, 3468560824u, 1093251038u, 310958750u, 1079918592u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 825, 1096788400u, 1413568905u, 1100941106u, 1627289946u, 1096788400u, 2147483648u, 0, CEIL_TOLERANCE, 0},
+{ 826, 3191549550u, 3797143370u, 3195497539u, 3843275034u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 827, 3252077393u, 2806642640u, 3201943068u, 2515980718u, 3252077393u, 2805989376u, 0, CEIL_TOLERANCE, 0},
+{ 828, 1086877316u, 632580632u, 1078673506u, 3259601317u, 1086877440u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 829, 3200980575u, 3309678799u, 1049337078u, 3056787074u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 830, 3221495289u, 2341164249u, 1080834967u, 2810890005u, 3221225472u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 831, 1067019674u, 932124675u, 1093915797u, 662682630u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 832, 3249230091u, 1367996113u, 3251723684u, 2974064663u, 3249230091u, 1342177280u, 0, CEIL_TOLERANCE, 0},
+{ 833, 1080230731u, 323437999u, 1090499064u, 901457511u, 1080238080u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 834, 3235778876u, 4184941840u, 3196770014u, 2458988443u, 3235778816u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 835, 1087618284u, 2023065054u, 3211994098u, 2734612965u, 1087618304u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 836, 1064074694u, 3679267365u, 3237728785u, 1699558211u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 837, 1088079010u, 1826799031u, 1078709629u, 3986905229u, 1088079040u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 838, 1052843785u, 351061688u, 3194386466u, 4105857588u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 839, 1054128006u, 1365244058u, 1064457319u, 1452191426u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 840, 1064122385u, 2463030625u, 3215975031u, 3773488326u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 841, 3251276671u, 752664055u, 1065110394u, 1835931663u, 3251276671u, 746586112u, 0, CEIL_TOLERANCE, 0},
+{ 842, 1088045088u, 3496172149u, 1089617208u, 109068701u, 1088045120u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 843, 3198135087u, 1636966254u, 1086098766u, 2016598298u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 844, 1050931318u, 3551516956u, 1097969102u, 1317953425u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 845, 3229832217u, 2977627788u, 1045339018u, 516058480u, 3229831168u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 846, 3237408578u, 3901731263u, 3189566462u, 32272932u, 3237408576u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 847, 1077281796u, 1956025297u, 3246628529u, 3840733905u, 1077346304u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 848, 1099818036u, 561057891u, 3198494340u, 4271027193u, 1099818036u, 671088640u, 0, CEIL_TOLERANCE, 0},
+{ 849, 3250929921u, 692989850u, 3242630588u, 2492225971u, 3250929921u, 687865856u, 0, CEIL_TOLERANCE, 0},
+{ 850, 3205479397u, 3439913962u, 1067477011u, 2973333638u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 851, 3213993989u, 877613377u, 1044917899u, 809672798u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 852, 3222171454u, 905426932u, 1046417457u, 1086320855u, 3221749760u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 853, 3246346629u, 2645567288u, 1051258339u, 557182478u, 3246346629u, 2415919104u, 0, CEIL_TOLERANCE, 0},
+{ 854, 3204057950u, 186287752u, 1061342054u, 4054003419u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 855, 1097266673u, 3506889716u, 3243866036u, 519056371u, 1097266673u, 3758096384u, 0, CEIL_TOLERANCE, 0},
+{ 856, 1042654053u, 2171898436u, 3246911982u, 1091500784u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 857, 3243647673u, 368493885u, 3222871893u, 1419055230u, 3243647673u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 858, 1091950572u, 2010971245u, 3188804530u, 1518695799u, 1091950576u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 859, 3205426509u, 1239207795u, 1040192984u, 2199481342u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 860, 3210978637u, 4264613432u, 3203460972u, 3558930895u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 861, 1050299283u, 3772748958u, 3227667376u, 309688336u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 862, 3230743041u, 1077949160u, 1075769893u, 2405271377u, 3230742528u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 863, 1091835152u, 3751608506u, 3232278094u, 930375071u, 1091835156u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 864, 3198617153u, 1518334131u, 3205247482u, 791756713u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 865, 1047317453u, 2825203170u, 3245054001u, 1822981827u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 866, 1100016363u, 514474738u, 1089072073u, 3300845441u, 1100016363u, 536870912u, 0, CEIL_TOLERANCE, 0},
+{ 867, 3216391250u, 247369460u, 3197320093u, 687450958u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 868, 1104161422u, 2722237629u, 1058272368u, 90602316u, 1104161422u, 2726297600u, 0, CEIL_TOLERANCE, 0},
+{ 869, 3208098435u, 1845900544u, 3231520830u, 3389751458u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 870, 3247535245u, 737689911u, 3195377751u, 3462616966u, 3247535245u, 671088640u, 0, CEIL_TOLERANCE, 0},
+{ 871, 3223538384u, 3620285831u, 1055501023u, 2708056059u, 3223453696u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 872, 3219464996u, 4073430285u, 1056206159u, 172017902u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 873, 3212869638u, 2799176222u, 1052706894u, 4083892667u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 874, 3202279557u, 1562351330u, 1069705601u, 1247765260u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 875, 3232717299u, 51853475u, 3189080201u, 2783553144u, 3232716800u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 876, 3219454353u, 3851781549u, 3241598113u, 514064046u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 877, 1100045965u, 934745487u, 3248182437u, 2798581921u, 1100045965u, 939524096u, 0, CEIL_TOLERANCE, 0},
+{ 878, 3213082493u, 2948648757u, 3232177250u, 4278702895u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 879, 1072485724u, 4259101461u, 1061606772u, 84229920u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 880, 3198075559u, 3891230598u, 1095924595u, 3049217547u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 881, 1077353053u, 3806018919u, 3243191216u, 280177341u, 1077411840u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 882, 1060624530u, 3900344258u, 1063647809u, 4206745890u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 883, 3227707336u, 2126253040u, 3207248026u, 808507485u, 3227705344u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 884, 1086090317u, 3465685634u, 3230391053u, 3754958214u, 1086090496u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 885, 1102861084u, 461094531u, 1101110393u, 1316091396u, 1102861084u, 469762048u, 0, CEIL_TOLERANCE, 0},
+{ 886, 1064980314u, 4197635149u, 1091873113u, 1240127141u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 887, 1074333893u, 118603800u, 1105304898u, 4291425557u, 1074790400u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 888, 3213429165u, 3744663425u, 3212482771u, 953662066u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 889, 1085171305u, 3564196690u, 3228101916u, 904305212u, 1085171712u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 890, 1048333111u, 3566257266u, 3235138829u, 2734275140u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 891, 3243948477u, 606044282u, 3241318094u, 2446416887u, 3243948477u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 892, 1041627284u, 2336116589u, 3197594053u, 2296925138u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 893, 1058567659u, 907670625u, 3240769036u, 1827119006u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 894, 1044467183u, 2818710946u, 3246059905u, 553394170u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 895, 3189504094u, 4099522736u, 3232742168u, 3718083858u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 896, 1092371276u, 1059279404u, 1080245336u, 175941677u, 1092371280u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 897, 1105189691u, 1650862428u, 1061816101u, 1723201723u, 1105189691u, 1652555776u, 0, CEIL_TOLERANCE, 0},
+{ 898, 3239012814u, 2462163405u, 3218946201u, 3876535372u, 3239012808u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 899, 1084392886u, 495844137u, 1073721460u, 772777946u, 1084392960u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 900, 1052415330u, 458757721u, 3245680321u, 3609892707u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 901, 3193282956u, 2533012202u, 1079980803u, 3592268374u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 902, 3203364780u, 4108274117u, 1063045844u, 571992389u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 903, 1090567271u, 3541110973u, 1096296754u, 3118427427u, 1090567272u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 904, 3193980043u, 1213941007u, 1105433735u, 2172963370u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 905, 1096853359u, 272190288u, 1095452370u, 4026581530u, 1096853359u, 536870912u, 0, CEIL_TOLERANCE, 0},
+{ 906, 1095583909u, 2843638672u, 1100510986u, 3190536898u, 1095583910u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 907, 1083757094u, 2014317727u, 3247389683u, 2428462015u, 1083757568u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 908, 1093976717u, 688442200u, 1047852515u, 3035186380u, 1093976718u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 909, 1076664212u, 1010095511u, 3221288076u, 405287991u, 1076756480u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 910, 3252294615u, 2983070435u, 1089546472u, 2907918480u, 3252294615u, 2982150144u, 0, CEIL_TOLERANCE, 0},
+{ 911, 1082988121u, 81928569u, 1056007286u, 2740556321u, 1082988544u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 912, 1041110867u, 2076689028u, 1081558619u, 3039159031u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 913, 1047307438u, 1376882094u, 3211003208u, 1296286481u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 914, 1080114314u, 744133164u, 3200943494u, 955832216u, 1080115200u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 915, 3226290326u, 176522478u, 1069999908u, 2891249491u, 3226271744u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 916, 1043564602u, 3685851715u, 3187829932u, 2363997529u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 917, 1040244055u, 3974431579u, 1052505165u, 2589067816u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 918, 3191496789u, 3819109588u, 1048561488u, 969143351u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 919, 1072639397u, 4246896124u, 1104584799u, 1940097860u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 920, 1048038468u, 2228686199u, 3220231833u, 777624847u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 921, 3231467306u, 4189906558u, 3203004203u, 854242364u, 3231466496u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 922, 1103910407u, 4089051094u, 3227282692u, 2693170723u, 1103910407u, 4093640704u, 0, CEIL_TOLERANCE, 0},
+{ 923, 1045883607u, 1278581412u, 3239296746u, 1774588717u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 924, 3222372686u, 1794845306u, 1104879344u, 4135865182u, 3222274048u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 925, 1106449055u, 754938390u, 1061291430u, 2010786993u, 1106449055u, 754974720u, 0, CEIL_TOLERANCE, 0},
+{ 926, 1073581409u, 2034303731u, 3240176537u, 314147356u, 1073741824u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 927, 3231449194u, 567588900u, 3195452230u, 1421366017u, 3231449088u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 928, 3225089755u, 2708717091u, 1071975971u, 1364590470u, 3225026560u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 929, 3252137283u, 3461956134u, 3207820115u, 1605709634u, 3252137283u, 3460300800u, 0, CEIL_TOLERANCE, 0},
+{ 930, 1065302996u, 1497124553u, 1051715442u, 916736957u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 931, 1058468363u, 834914365u, 1064667143u, 2839166298u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 932, 1057279949u, 2139295776u, 1062816721u, 914592523u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 933, 3189636931u, 851569132u, 1058503154u, 1399378677u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 934, 3233537697u, 3897202342u, 3245382590u, 246600375u, 3233537536u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 935, 3225460308u, 3620429520u, 1055627557u, 229305u, 3225452544u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 936, 1083958833u, 3641997865u, 3206673888u, 93720614u, 1083959296u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 937, 3227808435u, 32766320u, 1062084905u, 3668443038u, 3227803648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 938, 3223298996u, 2039713492u, 3248699388u, 1346210821u, 3223060480u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 939, 1093050016u, 1335820726u, 3191756860u, 1808427032u, 1093050018u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 940, 1061442763u, 650692001u, 1103515670u, 2253348763u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 941, 3191395187u, 2372623300u, 3210185343u, 3200572848u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 942, 1100796069u, 762317532u, 3194595095u, 3192607437u, 1100796069u, 805306368u, 0, CEIL_TOLERANCE, 0},
+{ 943, 1062262701u, 217775356u, 3232827087u, 2969367386u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 944, 1057172551u, 3621353969u, 1077994795u, 3873976266u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 945, 1091301987u, 268372152u, 3221764390u, 3216978962u, 1091301992u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 946, 3246437611u, 142942404u, 1075322987u, 1746449109u, 3246437611u, 134217728u, 0, CEIL_TOLERANCE, 0},
+{ 947, 1104006296u, 496534875u, 3254522293u, 2532372502u, 1104006296u, 503316480u, 0, CEIL_TOLERANCE, 0},
+{ 948, 3250225541u, 2999955409u, 3222793392u, 1868977643u, 3250225541u, 2986344448u, 0, CEIL_TOLERANCE, 0},
+{ 949, 1074319042u, 3353193428u, 3218469191u, 3326244297u, 1074790400u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 950, 1068218799u, 73646871u, 3231442171u, 3711510104u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 951, 1090483524u, 218135177u, 3198908856u, 3082199105u, 1090483536u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 952, 1068068480u, 1061628117u, 3248859043u, 86776158u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 953, 3208484674u, 938869114u, 1087911145u, 2416710759u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 954, 1095576832u, 2970853959u, 3239543429u, 1887505029u, 1095576833u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 955, 3237728787u, 1337895935u, 1076463812u, 1172733328u, 3237728784u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 956, 1049139928u, 1469010822u, 3229583535u, 551399515u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 957, 1074118123u, 1849711538u, 1049053713u, 1744276190u, 1074266112u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 958, 3242138780u, 2976596113u, 3192137295u, 3033242648u, 3242138780u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 959, 1098698481u, 876810930u, 3197470945u, 2571587447u, 1098698481u, 1073741824u, 0, CEIL_TOLERANCE, 0},
+{ 960, 3241770810u, 4007797282u, 3225853845u, 4069319648u, 3241770810u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 961, 1047279982u, 3840538373u, 1043189552u, 3668774580u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 962, 3217611704u, 200857661u, 3229758439u, 3359367736u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 963, 3248797869u, 111868139u, 3227902082u, 2366064003u, 3248797869u, 100663296u, 0, CEIL_TOLERANCE, 0},
+{ 964, 1044195166u, 3510904416u, 3222131653u, 3822770497u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 965, 3242675715u, 789151814u, 1099269239u, 2958956055u, 3242675715u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 966, 1084679320u, 722163228u, 1105524559u, 1534462169u, 1084679680u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 967, 1046586062u, 2207037106u, 3208952465u, 1231254630u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 968, 3197884060u, 3838689849u, 3198769679u, 1302617170u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 969, 1085938906u, 2527556476u, 3240373426u, 124352692u, 1085938944u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 970, 3199540805u, 3502371499u, 1043411944u, 4190072016u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 971, 1064676142u, 1798470077u, 3200116917u, 3421833729u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 972, 3193514956u, 3653237931u, 3204255012u, 3683870669u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 973, 1053588582u, 376530104u, 1073853547u, 565755892u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 974, 3242503851u, 558292492u, 1051772749u, 4267873474u, 3242503851u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 975, 3224772709u, 509637100u, 3212030069u, 215050379u, 3224764416u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 976, 1092057101u, 3571665665u, 3188628584u, 757824767u, 1092057104u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 977, 3214799337u, 998858159u, 1063077962u, 436029885u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 978, 3205946965u, 996300405u, 3193842624u, 80548098u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 979, 3228848840u, 3876129407u, 3215332180u, 2226970413u, 3228848128u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 980, 3237608953u, 200013509u, 3224552716u, 414878724u, 3237608944u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 981, 3230617093u, 309319541u, 1048979765u, 1261662434u, 3230615552u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 982, 1089252639u, 4062255924u, 3224274128u, 4289485681u, 1089252640u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 983, 3236136084u, 1611969213u, 1053890378u, 3774617276u, 3236136064u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 984, 1080412763u, 1752164782u, 3239587974u, 612223386u, 1080418304u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 985, 1041545782u, 2024044989u, 1074932678u, 3259111307u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 986, 1053207518u, 2564965629u, 1093571065u, 169360454u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 987, 1089599090u, 1860101737u, 3191222372u, 1676437468u, 1089599104u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 988, 1059802968u, 588387057u, 3192103292u, 2495288012u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 989, 3193155705u, 659070058u, 1073095700u, 1393632068u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 990, 3217683263u, 4276187829u, 3217553330u, 1868253275u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 991, 3223220272u, 2085481575u, 3215994784u, 800910002u, 3223060480u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 992, 1056934836u, 1950570756u, 3200582211u, 941022151u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 993, 1057530368u, 2075610870u, 3250142022u, 3605152103u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 994, 3200839250u, 3792931748u, 3204857863u, 804393211u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 995, 3253646370u, 3430071177u, 3226288311u, 3652522729u, 3253646370u, 3428843520u, 0, CEIL_TOLERANCE, 0},
+{ 996, 3201314702u, 236884699u, 3227874605u, 2193269825u, 2147483648u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 997, 1064936593u, 2744231849u, 1046186036u, 771053722u, 1072693248u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 998, 1083996036u, 3000189819u, 1096500901u, 2057239777u, 1083996160u, 0u, 0, CEIL_TOLERANCE, 0},
+{ 999, 1093835581u, 205759408u, 3244643377u, 2702292618u, 1093835582u, 0u, 0, CEIL_TOLERANCE, 0},
+
+
+// AUTOMATICALLY GENERATED VECTORS STOP
+
+};
+
+#endif // CYGONCE_LIBM_CEIL_H multiple inclusion protection
+
+// EOF ceil.h
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/ceilf.c b/ecos/packages/language/c/libm/current/tests/vectors/ceilf.c
new file mode 100644
index 0000000..6075fc9
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/ceilf.c
@@ -0,0 +1,115 @@
+//===========================================================================
+//
+// ceilf.c
+//
+// Test of ceilf() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// Declarations for test system:
+//
+// TESTCASE_TYPE=CYG_TEST_MODULE
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include <cyg/infra/testcase.h> // Test infrastructure
+#include <math.h> // Header for this package
+#include <sys/ieeefp.h> // Cyg_libm_ieee_float_shape_type
+#include "vectors/vector_support_float.h"// extra support for math tests
+
+#include "vectors/ceilf.h"
+
+// FUNCTIONS
+
+static void
+test( CYG_ADDRWORD data )
+{
+ cyg_ucount32 vec_size;
+ cyg_bool ret;
+
+ vec_size = sizeof(ceilf_vec) / sizeof(Cyg_libm_test_float_vec_t);
+ ret = doTestVecFloat( (CYG_ADDRWORD) &ceilf, CYG_LIBM_TEST_VEC_FLOAT,
+ CYG_LIBM_TEST_VEC_NONE, CYG_LIBM_TEST_VEC_FLOAT,
+ &ceilf_vec[0], vec_size );
+
+ if (ret==true)
+ {
+ CYG_TEST_PASS("ceilf() is stable");
+ } // if
+ else
+ {
+ CYG_TEST_FAIL("ceilf() failed tests");
+ } // else
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for Math "
+ "library ceilf() function");
+} // test()
+
+
+int
+main(int argc, char *argv[])
+{
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for Math library "
+ "ceilf() function");
+
+ START_TEST( test );
+
+ CYG_TEST_PASS_FINISH("Testing is not applicable to this configuration");
+
+} // main()
+
+
+// EOF ceilf.c
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/ceilf.h b/ecos/packages/language/c/libm/current/tests/vectors/ceilf.h
new file mode 100644
index 0000000..1013808
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/ceilf.h
@@ -0,0 +1,1048 @@
+#ifndef CYGONCE_LIBM_CEILF_H
+#define CYGONCE_LIBM_CEILF_H
+//===========================================================================
+//
+// ceilf.h
+//
+// Test vectors for testing of ceilf() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage: #include "vectors/ceilf.h"
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include "vectors/vector_support_float.h"// extra support for math tests
+
+#define CEILF_TOLERANCE 1.0E-04
+
+static const Cyg_libm_test_float_vec_t ceilf_vec[] = {
+
+// AUTOMATICALLY GENERATED VECTORS START
+
+{0, 3214514586u, 0u, 3212836864u, 0, CEILF_TOLERANCE, 0},
+{1, 3214430700u, 0u, 3212836864u, 0, CEILF_TOLERANCE, 0},
+{2, 3214346813u, 0u, 3212836864u, 0, CEILF_TOLERANCE, 0},
+{3, 3214262927u, 0u, 3212836864u, 0, CEILF_TOLERANCE, 0},
+{4, 3214179041u, 0u, 3212836864u, 0, CEILF_TOLERANCE, 0},
+{5, 3214095155u, 0u, 3212836864u, 0, CEILF_TOLERANCE, 0},
+{6, 3214011269u, 0u, 3212836864u, 0, CEILF_TOLERANCE, 0},
+{7, 3213927383u, 0u, 3212836864u, 0, CEILF_TOLERANCE, 0},
+{8, 3213843497u, 0u, 3212836864u, 0, CEILF_TOLERANCE, 0},
+{9, 3213759611u, 0u, 3212836864u, 0, CEILF_TOLERANCE, 0},
+{10, 3213675725u, 0u, 3212836864u, 0, CEILF_TOLERANCE, 0},
+{11, 3213591839u, 0u, 3212836864u, 0, CEILF_TOLERANCE, 0},
+{12, 3213507953u, 0u, 3212836864u, 0, CEILF_TOLERANCE, 0},
+{13, 3213424067u, 0u, 3212836864u, 0, CEILF_TOLERANCE, 0},
+{14, 3213340180u, 0u, 3212836864u, 0, CEILF_TOLERANCE, 0},
+{15, 3213256294u, 0u, 3212836864u, 0, CEILF_TOLERANCE, 0},
+{16, 3213172408u, 0u, 3212836864u, 0, CEILF_TOLERANCE, 0},
+{17, 3213088522u, 0u, 3212836864u, 0, CEILF_TOLERANCE, 0},
+{18, 3213004636u, 0u, 3212836864u, 0, CEILF_TOLERANCE, 0},
+{19, 3212920750u, 0u, 3212836864u, 0, CEILF_TOLERANCE, 0},
+{20, 3212836864u, 0u, 3212836864u, 0, CEILF_TOLERANCE, 0},
+{21, 3212669092u, 0u, 0u, 0, CEILF_TOLERANCE, 0},
+{22, 3212501320u, 0u, 0u, 0, CEILF_TOLERANCE, 0},
+{23, 3212333548u, 0u, 0u, 0, CEILF_TOLERANCE, 0},
+{24, 3212165775u, 0u, 0u, 0, CEILF_TOLERANCE, 0},
+{25, 3211998003u, 0u, 0u, 0, CEILF_TOLERANCE, 0},
+{26, 3211830231u, 0u, 0u, 0, CEILF_TOLERANCE, 0},
+{27, 3211662459u, 0u, 0u, 0, CEILF_TOLERANCE, 0},
+{28, 3211494687u, 0u, 0u, 0, CEILF_TOLERANCE, 0},
+{29, 3211326915u, 0u, 0u, 0, CEILF_TOLERANCE, 0},
+{30, 3211159142u, 0u, 0u, 0, CEILF_TOLERANCE, 0},
+{31, 3210991370u, 0u, 0u, 0, CEILF_TOLERANCE, 0},
+{32, 3210823598u, 0u, 0u, 0, CEILF_TOLERANCE, 0},
+{33, 3210655826u, 0u, 0u, 0, CEILF_TOLERANCE, 0},
+{34, 3210488054u, 0u, 0u, 0, CEILF_TOLERANCE, 0},
+{35, 3210320282u, 0u, 0u, 0, CEILF_TOLERANCE, 0},
+{36, 3210152509u, 0u, 0u, 0, CEILF_TOLERANCE, 0},
+{37, 3209984737u, 0u, 0u, 0, CEILF_TOLERANCE, 0},
+{38, 3209816965u, 0u, 0u, 0, CEILF_TOLERANCE, 0},
+{39, 3209649193u, 0u, 0u, 0, CEILF_TOLERANCE, 0},
+{40, 3209481421u, 0u, 0u, 0, CEILF_TOLERANCE, 0},
+{41, 3209313649u, 0u, 0u, 0, CEILF_TOLERANCE, 0},
+{42, 3209145876u, 0u, 0u, 0, CEILF_TOLERANCE, 0},
+{43, 3208978104u, 0u, 0u, 0, CEILF_TOLERANCE, 0},
+{44, 3208810332u, 0u, 0u, 0, CEILF_TOLERANCE, 0},
+{45, 3208642560u, 0u, 0u, 0, CEILF_TOLERANCE, 0},
+{46, 3208474788u, 0u, 0u, 0, CEILF_TOLERANCE, 0},
+{47, 3208307016u, 0u, 0u, 0, CEILF_TOLERANCE, 0},
+{48, 3208139244u, 0u, 0u, 0, CEILF_TOLERANCE, 0},
+{49, 3207971471u, 0u, 0u, 0, CEILF_TOLERANCE, 0},
+{50, 3207803699u, 0u, 0u, 0, CEILF_TOLERANCE, 0},
+{51, 3207635927u, 0u, 0u, 0, CEILF_TOLERANCE, 0},
+{52, 3207468155u, 0u, 0u, 0, CEILF_TOLERANCE, 0},
+{53, 3207300383u, 0u, 0u, 0, CEILF_TOLERANCE, 0},
+{54, 3207132611u, 0u, 0u, 0, CEILF_TOLERANCE, 0},
+{55, 3206964838u, 0u, 0u, 0, CEILF_TOLERANCE, 0},
+{56, 3206797066u, 0u, 0u, 0, CEILF_TOLERANCE, 0},
+{57, 3206629294u, 0u, 0u, 0, CEILF_TOLERANCE, 0},
+{58, 3206461522u, 0u, 0u, 0, CEILF_TOLERANCE, 0},
+{59, 3206293750u, 0u, 0u, 0, CEILF_TOLERANCE, 0},
+{60, 3206125978u, 0u, 0u, 0, CEILF_TOLERANCE, 0},
+{61, 3205958205u, 0u, 0u, 0, CEILF_TOLERANCE, 0},
+{62, 3205790433u, 0u, 0u, 0, CEILF_TOLERANCE, 0},
+{63, 3205622661u, 0u, 0u, 0, CEILF_TOLERANCE, 0},
+{64, 3205454889u, 0u, 0u, 0, CEILF_TOLERANCE, 0},
+{65, 3205287117u, 0u, 0u, 0, CEILF_TOLERANCE, 0},
+{66, 3205119345u, 0u, 0u, 0, CEILF_TOLERANCE, 0},
+{67, 3204951572u, 0u, 0u, 0, CEILF_TOLERANCE, 0},
+{68, 3204783800u, 0u, 0u, 0, CEILF_TOLERANCE, 0},
+{69, 3204616028u, 0u, 0u, 0, CEILF_TOLERANCE, 0},
+{70, 3204448256u, 0u, 0u, 0, CEILF_TOLERANCE, 0},
+{71, 3204112712u, 0u, 0u, 0, CEILF_TOLERANCE, 0},
+{72, 3203777167u, 0u, 0u, 0, CEILF_TOLERANCE, 0},
+{73, 3203441623u, 0u, 0u, 0, CEILF_TOLERANCE, 0},
+{74, 3203106079u, 0u, 0u, 0, CEILF_TOLERANCE, 0},
+{75, 3202770534u, 0u, 0u, 0, CEILF_TOLERANCE, 0},
+{76, 3202434990u, 0u, 0u, 0, CEILF_TOLERANCE, 0},
+{77, 3202099446u, 0u, 0u, 0, CEILF_TOLERANCE, 0},
+{78, 3201763901u, 0u, 0u, 0, CEILF_TOLERANCE, 0},
+{79, 3201428357u, 0u, 0u, 0, CEILF_TOLERANCE, 0},
+{80, 3201092813u, 0u, 0u, 0, CEILF_TOLERANCE, 0},
+{81, 3200757268u, 0u, 0u, 0, CEILF_TOLERANCE, 0},
+{82, 3200421724u, 0u, 0u, 0, CEILF_TOLERANCE, 0},
+{83, 3200086180u, 0u, 0u, 0, CEILF_TOLERANCE, 0},
+{84, 3199750636u, 0u, 0u, 0, CEILF_TOLERANCE, 0},
+{85, 3199415091u, 0u, 0u, 0, CEILF_TOLERANCE, 0},
+{86, 3199079547u, 0u, 0u, 0, CEILF_TOLERANCE, 0},
+{87, 3198744003u, 0u, 0u, 0, CEILF_TOLERANCE, 0},
+{88, 3198408458u, 0u, 0u, 0, CEILF_TOLERANCE, 0},
+{89, 3198072914u, 0u, 0u, 0, CEILF_TOLERANCE, 0},
+{90, 3197737370u, 0u, 0u, 0, CEILF_TOLERANCE, 0},
+{91, 3197401825u, 0u, 0u, 0, CEILF_TOLERANCE, 0},
+{92, 3197066281u, 0u, 0u, 0, CEILF_TOLERANCE, 0},
+{93, 3196730737u, 0u, 0u, 0, CEILF_TOLERANCE, 0},
+{94, 3196395192u, 0u, 0u, 0, CEILF_TOLERANCE, 0},
+{95, 3196059648u, 0u, 0u, 0, CEILF_TOLERANCE, 0},
+{96, 3195388559u, 0u, 0u, 0, CEILF_TOLERANCE, 0},
+{97, 3194717471u, 0u, 0u, 0, CEILF_TOLERANCE, 0},
+{98, 3194046382u, 0u, 0u, 0, CEILF_TOLERANCE, 0},
+{99, 3193375293u, 0u, 0u, 0, CEILF_TOLERANCE, 0},
+{100, 3192704205u, 0u, 0u, 0, CEILF_TOLERANCE, 0},
+{101, 3192033116u, 0u, 0u, 0, CEILF_TOLERANCE, 0},
+{102, 3191362028u, 0u, 0u, 0, CEILF_TOLERANCE, 0},
+{103, 3190690939u, 0u, 0u, 0, CEILF_TOLERANCE, 0},
+{104, 3190019850u, 0u, 0u, 0, CEILF_TOLERANCE, 0},
+{105, 3189348762u, 0u, 0u, 0, CEILF_TOLERANCE, 0},
+{106, 3188677673u, 0u, 0u, 0, CEILF_TOLERANCE, 0},
+{107, 3188006584u, 0u, 0u, 0, CEILF_TOLERANCE, 0},
+{108, 3186999951u, 0u, 0u, 0, CEILF_TOLERANCE, 0},
+{109, 3185657774u, 0u, 0u, 0, CEILF_TOLERANCE, 0},
+{110, 3184315597u, 0u, 0u, 0, CEILF_TOLERANCE, 0},
+{111, 3182973420u, 0u, 0u, 0, CEILF_TOLERANCE, 0},
+{112, 3181631242u, 0u, 0u, 0, CEILF_TOLERANCE, 0},
+{113, 3180289065u, 0u, 0u, 0, CEILF_TOLERANCE, 0},
+{114, 3178611343u, 0u, 0u, 0, CEILF_TOLERANCE, 0},
+{115, 3175926989u, 0u, 0u, 0, CEILF_TOLERANCE, 0},
+{116, 3173242634u, 0u, 0u, 0, CEILF_TOLERANCE, 0},
+{117, 3170222735u, 0u, 0u, 0, CEILF_TOLERANCE, 0},
+{118, 3164854026u, 0u, 0u, 0, CEILF_TOLERANCE, 0},
+{119, 3156465418u, 0u, 0u, 0, CEILF_TOLERANCE, 0},
+{120, 646742016u, 0u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{121, 1008981770u, 0u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{122, 1017370378u, 0u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{123, 1022739087u, 0u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{124, 1025758986u, 0u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{125, 1028443341u, 0u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{126, 1031127695u, 0u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{127, 1032805417u, 0u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{128, 1034147594u, 0u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{129, 1035489772u, 0u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{130, 1036831949u, 0u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{131, 1038174126u, 0u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{132, 1039516303u, 0u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{133, 1040522936u, 0u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{134, 1041194025u, 0u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{135, 1041865114u, 0u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{136, 1042536202u, 0u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{137, 1043207291u, 0u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{138, 1043878380u, 0u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{139, 1044549468u, 0u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{140, 1045220557u, 0u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{141, 1045891645u, 0u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{142, 1046562734u, 0u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{143, 1047233823u, 0u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{144, 1047904911u, 0u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{145, 1048576000u, 0u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{146, 1048911544u, 0u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{147, 1049247089u, 0u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{148, 1049582633u, 0u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{149, 1049918177u, 0u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{150, 1050253722u, 0u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{151, 1050589266u, 0u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{152, 1050924810u, 0u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{153, 1051260355u, 0u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{154, 1051595899u, 0u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{155, 1051931443u, 0u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{156, 1052266988u, 0u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{157, 1052602532u, 0u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{158, 1052938076u, 0u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{159, 1053273620u, 0u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{160, 1053609165u, 0u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{161, 1053944709u, 0u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{162, 1054280253u, 0u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{163, 1054615798u, 0u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{164, 1054951342u, 0u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{165, 1055286886u, 0u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{166, 1055622431u, 0u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{167, 1055957975u, 0u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{168, 1056293519u, 0u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{169, 1056629064u, 0u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{170, 1056964608u, 0u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{171, 1057132380u, 0u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{172, 1057300152u, 0u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{173, 1057467924u, 0u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{174, 1057635697u, 0u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{175, 1057803469u, 0u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{176, 1057971241u, 0u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{177, 1058139013u, 0u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{178, 1058306785u, 0u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{179, 1058474557u, 0u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{180, 1058642330u, 0u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{181, 1058810102u, 0u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{182, 1058977874u, 0u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{183, 1059145646u, 0u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{184, 1059313418u, 0u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{185, 1059481190u, 0u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{186, 1059648963u, 0u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{187, 1059816735u, 0u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{188, 1059984507u, 0u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{189, 1060152279u, 0u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{190, 1060320051u, 0u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{191, 1060487823u, 0u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{192, 1060655596u, 0u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{193, 1060823368u, 0u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{194, 1060991140u, 0u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{195, 1061158912u, 0u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{196, 1061326684u, 0u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{197, 1061494456u, 0u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{198, 1061662228u, 0u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{199, 1061830001u, 0u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{200, 1061997773u, 0u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{201, 1062165545u, 0u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{202, 1062333317u, 0u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{203, 1062501089u, 0u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{204, 1062668861u, 0u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{205, 1062836634u, 0u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{206, 1063004406u, 0u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{207, 1063172178u, 0u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{208, 1063339950u, 0u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{209, 1063507722u, 0u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{210, 1063675494u, 0u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{211, 1063843267u, 0u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{212, 1064011039u, 0u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{213, 1064178811u, 0u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{214, 1064346583u, 0u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{215, 1064514355u, 0u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{216, 1064682127u, 0u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{217, 1064849900u, 0u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{218, 1065017672u, 0u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{219, 1065185444u, 0u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{220, 1065353216u, 0u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{221, 1065437102u, 0u, 1073741824u, 0, CEILF_TOLERANCE, 0},
+{222, 1065520988u, 0u, 1073741824u, 0, CEILF_TOLERANCE, 0},
+{223, 1065604874u, 0u, 1073741824u, 0, CEILF_TOLERANCE, 0},
+{224, 1065688760u, 0u, 1073741824u, 0, CEILF_TOLERANCE, 0},
+{225, 1065772646u, 0u, 1073741824u, 0, CEILF_TOLERANCE, 0},
+{226, 1065856532u, 0u, 1073741824u, 0, CEILF_TOLERANCE, 0},
+{227, 1065940419u, 0u, 1073741824u, 0, CEILF_TOLERANCE, 0},
+{228, 1066024305u, 0u, 1073741824u, 0, CEILF_TOLERANCE, 0},
+{229, 1066108191u, 0u, 1073741824u, 0, CEILF_TOLERANCE, 0},
+{230, 1066192077u, 0u, 1073741824u, 0, CEILF_TOLERANCE, 0},
+{231, 1066275963u, 0u, 1073741824u, 0, CEILF_TOLERANCE, 0},
+{232, 1066359849u, 0u, 1073741824u, 0, CEILF_TOLERANCE, 0},
+{233, 1066443735u, 0u, 1073741824u, 0, CEILF_TOLERANCE, 0},
+{234, 1066527621u, 0u, 1073741824u, 0, CEILF_TOLERANCE, 0},
+{235, 1066611507u, 0u, 1073741824u, 0, CEILF_TOLERANCE, 0},
+{236, 1066695393u, 0u, 1073741824u, 0, CEILF_TOLERANCE, 0},
+{237, 1066779279u, 0u, 1073741824u, 0, CEILF_TOLERANCE, 0},
+{238, 1066863165u, 0u, 1073741824u, 0, CEILF_TOLERANCE, 0},
+{239, 1066947052u, 0u, 1073741824u, 0, CEILF_TOLERANCE, 0},
+{240, 3234402267u, 0u, 3233808384u, 0, CEILF_TOLERANCE, 0},
+{241, 3231108068u, 0u, 3229614080u, 0, CEILF_TOLERANCE, 0},
+{242, 3226013659u, 0u, 3225419776u, 0, CEILF_TOLERANCE, 0},
+{243, 3217625051u, 0u, 3212836864u, 0, CEILF_TOLERANCE, 0},
+{244, 0u, 0u, 0u, 0, CEILF_TOLERANCE, 0},
+{245, 1070141403u, 0u, 1073741824u, 0, CEILF_TOLERANCE, 0},
+{246, 1078530011u, 0u, 1082130432u, 0, CEILF_TOLERANCE, 0},
+{247, 1083624420u, 0u, 1084227584u, 0, CEILF_TOLERANCE, 0},
+{248, 3253731328u, 0u, 3253731328u, 0, CEILF_TOLERANCE, 0},
+{249, 3252840038u, 0u, 3252682752u, 0, CEILF_TOLERANCE, 0},
+{250, 3251948749u, 0u, 3251634176u, 0, CEILF_TOLERANCE, 0},
+{251, 3251057459u, 0u, 3250585600u, 0, CEILF_TOLERANCE, 0},
+{252, 3250166170u, 0u, 3250061312u, 0, CEILF_TOLERANCE, 0},
+{253, 3249274880u, 0u, 3249012736u, 0, CEILF_TOLERANCE, 0},
+{254, 3248383590u, 0u, 3247964160u, 0, CEILF_TOLERANCE, 0},
+{255, 3247492301u, 0u, 3247439872u, 0, CEILF_TOLERANCE, 0},
+{256, 3246601011u, 0u, 3246391296u, 0, CEILF_TOLERANCE, 0},
+{257, 3245028147u, 0u, 3244294144u, 0, CEILF_TOLERANCE, 0},
+{258, 3243245568u, 0u, 3243245568u, 0, CEILF_TOLERANCE, 0},
+{259, 3241462989u, 0u, 3241148416u, 0, CEILF_TOLERANCE, 0},
+{260, 3239680410u, 0u, 3239051264u, 0, CEILF_TOLERANCE, 0},
+{261, 3237792973u, 0u, 3235905536u, 0, CEILF_TOLERANCE, 0},
+{262, 3234227814u, 0u, 3233808384u, 0, CEILF_TOLERANCE, 0},
+{263, 3230662656u, 0u, 3229614080u, 0, CEILF_TOLERANCE, 0},
+{264, 3224580915u, 0u, 3221225472u, 0, CEILF_TOLERANCE, 0},
+{265, 3213675725u, 0u, 3212836864u, 0, CEILF_TOLERANCE, 0},
+{266, 1058642330u, 0u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{267, 1075000115u, 0u, 1077936128u, 0, CEILF_TOLERANCE, 0},
+{268, 1082130432u, 0u, 1082130432u, 0, CEILF_TOLERANCE, 0},
+{269, 1085695590u, 0u, 1086324736u, 0, CEILF_TOLERANCE, 0},
+{270, 1089260749u, 0u, 1090519040u, 0, CEILF_TOLERANCE, 0},
+{271, 1091672474u, 0u, 1092616192u, 0, CEILF_TOLERANCE, 0},
+{272, 1093455053u, 0u, 1093664768u, 0, CEILF_TOLERANCE, 0},
+{273, 1095237632u, 0u, 1095761920u, 0, CEILF_TOLERANCE, 0},
+{274, 1097020211u, 0u, 1097859072u, 0, CEILF_TOLERANCE, 0},
+{275, 1098802790u, 0u, 1098907648u, 0, CEILF_TOLERANCE, 0},
+{276, 1099746509u, 0u, 1099956224u, 0, CEILF_TOLERANCE, 0},
+{277, 1100637798u, 0u, 1101004800u, 0, CEILF_TOLERANCE, 0},
+{278, 1101529088u, 0u, 1101529088u, 0, CEILF_TOLERANCE, 0},
+{279, 1102420378u, 0u, 1102577664u, 0, CEILF_TOLERANCE, 0},
+{280, 1103311667u, 0u, 1103626240u, 0, CEILF_TOLERANCE, 0},
+{281, 1104202957u, 0u, 1104674816u, 0, CEILF_TOLERANCE, 0},
+{282, 1105094246u, 0u, 1105199104u, 0, CEILF_TOLERANCE, 0},
+{283, 1105985536u, 0u, 1106247680u, 0, CEILF_TOLERANCE, 0},
+{284, 1107800421u, 1203999711u, 1107820544u, 0, CEILF_TOLERANCE, 0},
+{285, 3368700125u, 3308232444u, 3368700096u, 0, CEILF_TOLERANCE, 0},
+{286, 1224242132u, 3061363425u, 1224242144u, 0, CEILF_TOLERANCE, 0},
+{287, 3221027117u, 1284201705u, 3212836864u, 0, CEILF_TOLERANCE, 0},
+{288, 1198712763u, 919636942u, 1198712832u, 0, CEILF_TOLERANCE, 0},
+{289, 954173073u, 850531830u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{290, 966554515u, 3234538174u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{291, 1312607135u, 1194999402u, 1312607135u, 0, CEILF_TOLERANCE, 0},
+{292, 1166191415u, 1018661564u, 1166192640u, 0, CEILF_TOLERANCE, 0},
+{293, 1234419246u, 2984575812u, 1234419248u, 0, CEILF_TOLERANCE, 0},
+{294, 1302107128u, 3370647675u, 1302107128u, 0, CEILF_TOLERANCE, 0},
+{295, 1052801068u, 3039122570u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{296, 1060849628u, 3081357692u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{297, 3484320003u, 3033957825u, 3484320003u, 0, CEILF_TOLERANCE, 0},
+{298, 882596369u, 1256676590u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{299, 1167223673u, 846102364u, 1167224832u, 0, CEILF_TOLERANCE, 0},
+{300, 968192794u, 878547432u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{301, 1052361612u, 1280025214u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{302, 906701409u, 2968301825u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{303, 3471653172u, 1154138102u, 3471653172u, 0, CEILF_TOLERANCE, 0},
+{304, 3231467496u, 934336592u, 3229614080u, 0, CEILF_TOLERANCE, 0},
+{305, 1341514497u, 3466051188u, 1341514497u, 0, CEILF_TOLERANCE, 0},
+{306, 1272351391u, 3373485062u, 1272351391u, 0, CEILF_TOLERANCE, 0},
+{307, 3319724992u, 3354615790u, 3319724032u, 0, CEILF_TOLERANCE, 0},
+{308, 917622040u, 1334966485u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{309, 940236348u, 3304072663u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{310, 3251541546u, 3174764041u, 3251109888u, 0, CEILF_TOLERANCE, 0},
+{311, 3371863479u, 1014861921u, 3371863456u, 0, CEILF_TOLERANCE, 0},
+{312, 1306460502u, 903489435u, 1306460502u, 0, CEILF_TOLERANCE, 0},
+{313, 1197542187u, 3024598921u, 1197542400u, 0, CEILF_TOLERANCE, 0},
+{314, 922888249u, 1139392309u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{315, 1184239996u, 3224098462u, 1184240128u, 0, CEILF_TOLERANCE, 0},
+{316, 1252490238u, 1173619825u, 1252490238u, 0, CEILF_TOLERANCE, 0},
+{317, 1001673627u, 3462631271u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{318, 976098044u, 1151967422u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{319, 941796645u, 886451963u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{320, 3287199470u, 854245542u, 3287187456u, 0, CEILF_TOLERANCE, 0},
+{321, 893184329u, 1243067084u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{322, 1143233714u, 1007268238u, 1143242752u, 0, CEILF_TOLERANCE, 0},
+{323, 1139941253u, 1147688821u, 1139965952u, 0, CEILF_TOLERANCE, 0},
+{324, 3240298487u, 1020260821u, 3240099840u, 0, CEILF_TOLERANCE, 0},
+{325, 1288902137u, 3123875978u, 1288902137u, 0, CEILF_TOLERANCE, 0},
+{326, 1333134799u, 1338107877u, 1333134799u, 0, CEILF_TOLERANCE, 0},
+{327, 1187847971u, 1317663644u, 1187848192u, 0, CEILF_TOLERANCE, 0},
+{328, 1038851706u, 1327544110u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{329, 3329354473u, 3165437289u, 3329353728u, 0, CEILF_TOLERANCE, 0},
+{330, 1309289088u, 1019883016u, 1309289088u, 0, CEILF_TOLERANCE, 0},
+{331, 3444653659u, 1279248024u, 3444653659u, 0, CEILF_TOLERANCE, 0},
+{332, 3405585402u, 2962345057u, 3405585400u, 0, CEILF_TOLERANCE, 0},
+{333, 1106778573u, 3304487767u, 1107296256u, 0, CEILF_TOLERANCE, 0},
+{334, 1140567947u, 3069174149u, 1140588544u, 0, CEILF_TOLERANCE, 0},
+{335, 1238569473u, 873035665u, 1238569480u, 0, CEILF_TOLERANCE, 0},
+{336, 1261071232u, 1182202773u, 1261071233u, 0, CEILF_TOLERANCE, 0},
+{337, 1175011025u, 3029705783u, 1175011328u, 0, CEILF_TOLERANCE, 0},
+{338, 1082692850u, 1211581107u, 1084227584u, 0, CEILF_TOLERANCE, 0},
+{339, 974547519u, 3475164509u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{340, 3403348556u, 3184653669u, 3403348556u, 0, CEILF_TOLERANCE, 0},
+{341, 1136411063u, 1118097422u, 1136427008u, 0, CEILF_TOLERANCE, 0},
+{342, 3239231622u, 3302723069u, 3239051264u, 0, CEILF_TOLERANCE, 0},
+{343, 3340615780u, 870350055u, 3340615680u, 0, CEILF_TOLERANCE, 0},
+{344, 998567360u, 2995278691u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{345, 3417964312u, 1321337529u, 3417964312u, 0, CEILF_TOLERANCE, 0},
+{346, 1148867223u, 1256486202u, 1148878848u, 0, CEILF_TOLERANCE, 0},
+{347, 989687421u, 3372681320u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{348, 1152956913u, 3166480640u, 1152958464u, 0, CEILF_TOLERANCE, 0},
+{349, 892922651u, 3373029087u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{350, 1109627625u, 1314158257u, 1109655552u, 0, CEILF_TOLERANCE, 0},
+{351, 1307091856u, 1103202538u, 1307091856u, 0, CEILF_TOLERANCE, 0},
+{352, 1077234132u, 3272167130u, 1077936128u, 0, CEILF_TOLERANCE, 0},
+{353, 1142167709u, 1096445242u, 1142177792u, 0, CEILF_TOLERANCE, 0},
+{354, 3426232834u, 1036705270u, 3426232834u, 0, CEILF_TOLERANCE, 0},
+{355, 3368566779u, 967249167u, 3368566752u, 0, CEILF_TOLERANCE, 0},
+{356, 1138741813u, 3073453199u, 1138753536u, 0, CEILF_TOLERANCE, 0},
+{357, 982950501u, 982549888u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{358, 1142981585u, 1015602236u, 1142996992u, 0, CEILF_TOLERANCE, 0},
+{359, 3347165962u, 3135486696u, 3347165952u, 0, CEILF_TOLERANCE, 0},
+{360, 1009535440u, 3381353228u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{361, 3473956030u, 976891930u, 3473956030u, 0, CEILF_TOLERANCE, 0},
+{362, 3349098349u, 1055327704u, 3349098240u, 0, CEILF_TOLERANCE, 0},
+{363, 945568720u, 3313485084u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{364, 3345489836u, 1108392401u, 3345489664u, 0, CEILF_TOLERANCE, 0},
+{365, 940893161u, 1137000140u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{366, 976791751u, 3230678102u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{367, 1004442355u, 3036510596u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{368, 1108485380u, 3173536878u, 1108606976u, 0, CEILF_TOLERANCE, 0},
+{369, 1061834641u, 972388096u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{370, 3381268392u, 1146976802u, 3381268384u, 0, CEILF_TOLERANCE, 0},
+{371, 1087189715u, 2952822478u, 1088421888u, 0, CEILF_TOLERANCE, 0},
+{372, 3212952285u, 3329407365u, 3212836864u, 0, CEILF_TOLERANCE, 0},
+{373, 1000611335u, 857599439u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{374, 3466188568u, 1041678304u, 3466188568u, 0, CEILF_TOLERANCE, 0},
+{375, 3319315516u, 3422089012u, 3319314432u, 0, CEILF_TOLERANCE, 0},
+{376, 935938416u, 1146676692u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{377, 1315030230u, 3336225884u, 1315030230u, 0, CEILF_TOLERANCE, 0},
+{378, 1134593658u, 3456812581u, 1134624768u, 0, CEILF_TOLERANCE, 0},
+{379, 977281449u, 879922831u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{380, 1086198791u, 920125958u, 1086324736u, 0, CEILF_TOLERANCE, 0},
+{381, 1255152035u, 851754050u, 1255152036u, 0, CEILF_TOLERANCE, 0},
+{382, 1135271264u, 3284878412u, 1135280128u, 0, CEILF_TOLERANCE, 0},
+{383, 1094190727u, 1056854532u, 1094713344u, 0, CEILF_TOLERANCE, 0},
+{384, 1294665325u, 991185677u, 1294665325u, 0, CEILF_TOLERANCE, 0},
+{385, 1036608591u, 805416536u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{386, 3229998064u, 825237063u, 3229614080u, 0, CEILF_TOLERANCE, 0},
+{387, 3439134022u, 1043829691u, 3439134022u, 0, CEILF_TOLERANCE, 0},
+{388, 1325668223u, 970681762u, 1325668223u, 0, CEILF_TOLERANCE, 0},
+{389, 1092037607u, 1027330835u, 1092616192u, 0, CEILF_TOLERANCE, 0},
+{390, 3316278408u, 3455589207u, 3316277248u, 0, CEILF_TOLERANCE, 0},
+{391, 3295436768u, 3129873731u, 3295428608u, 0, CEILF_TOLERANCE, 0},
+{392, 1151984049u, 3074547120u, 1151991808u, 0, CEILF_TOLERANCE, 0},
+{393, 1129287043u, 3076527544u, 1129316352u, 0, CEILF_TOLERANCE, 0},
+{394, 1243664530u, 972879810u, 1243664532u, 0, CEILF_TOLERANCE, 0},
+{395, 950829092u, 929114193u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{396, 1115471979u, 3047246262u, 1115684864u, 0, CEILF_TOLERANCE, 0},
+{397, 3351092088u, 3024661404u, 3351091968u, 0, CEILF_TOLERANCE, 0},
+{398, 3424479544u, 3312047722u, 3424479544u, 0, CEILF_TOLERANCE, 0},
+{399, 3241193975u, 884465785u, 3241148416u, 0, CEILF_TOLERANCE, 0},
+{400, 1030934236u, 1045139240u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{401, 1025254314u, 3057812821u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{402, 1110545760u, 3240144177u, 1110704128u, 0, CEILF_TOLERANCE, 0},
+{403, 3361976590u, 3138179993u, 3361976576u, 0, CEILF_TOLERANCE, 0},
+{404, 881280146u, 3421884736u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{405, 1304154705u, 2961937089u, 1304154705u, 0, CEILF_TOLERANCE, 0},
+{406, 3264443610u, 3222916705u, 3264348160u, 0, CEILF_TOLERANCE, 0},
+{407, 3374550627u, 3055856293u, 3374550624u, 0, CEILF_TOLERANCE, 0},
+{408, 899599265u, 3240118211u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{409, 1268194719u, 1332489410u, 1268194720u, 0, CEILF_TOLERANCE, 0},
+{410, 1133420220u, 1245770860u, 1133445120u, 0, CEILF_TOLERANCE, 0},
+{411, 1161858787u, 815362075u, 1161859072u, 0, CEILF_TOLERANCE, 0},
+{412, 3295996963u, 3453334307u, 3295985664u, 0, CEILF_TOLERANCE, 0},
+{413, 1270887389u, 1156123987u, 1270887390u, 0, CEILF_TOLERANCE, 0},
+{414, 3325193181u, 993979179u, 3325192192u, 0, CEILF_TOLERANCE, 0},
+{415, 925657343u, 1315159742u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{416, 1189120494u, 978961471u, 1189120512u, 0, CEILF_TOLERANCE, 0},
+{417, 889030794u, 3129523970u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{418, 1323529208u, 3100744786u, 1323529208u, 0, CEILF_TOLERANCE, 0},
+{419, 3465768388u, 3190881451u, 3465768388u, 0, CEILF_TOLERANCE, 0},
+{420, 3426099899u, 1118756120u, 3426099899u, 0, CEILF_TOLERANCE, 0},
+{421, 3224857113u, 3398166843u, 3221225472u, 0, CEILF_TOLERANCE, 0},
+{422, 1065798296u, 816191940u, 1073741824u, 0, CEILF_TOLERANCE, 0},
+{423, 3328989444u, 850266225u, 3328989184u, 0, CEILF_TOLERANCE, 0},
+{424, 3357819026u, 3148475462u, 3357819008u, 0, CEILF_TOLERANCE, 0},
+{425, 1273397670u, 901308750u, 1273397670u, 0, CEILF_TOLERANCE, 0},
+{426, 3424831780u, 1304806106u, 3424831780u, 0, CEILF_TOLERANCE, 0},
+{427, 1257596246u, 3420832544u, 1257596248u, 0, CEILF_TOLERANCE, 0},
+{428, 1051773536u, 896271348u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{429, 3294752507u, 3113225954u, 3294740480u, 0, CEILF_TOLERANCE, 0},
+{430, 3424848725u, 2973850350u, 3424848724u, 0, CEILF_TOLERANCE, 0},
+{431, 1090870906u, 3294742905u, 1091567616u, 0, CEILF_TOLERANCE, 0},
+{432, 1227582289u, 1208979668u, 1227582304u, 0, CEILF_TOLERANCE, 0},
+{433, 1272325814u, 3004311296u, 1272325814u, 0, CEILF_TOLERANCE, 0},
+{434, 3359508271u, 859974315u, 3359508224u, 0, CEILF_TOLERANCE, 0},
+{435, 1137854355u, 3335041917u, 1137868800u, 0, CEILF_TOLERANCE, 0},
+{436, 3440773058u, 3204192793u, 3440773058u, 0, CEILF_TOLERANCE, 0},
+{437, 3451216836u, 3347783723u, 3451216836u, 0, CEILF_TOLERANCE, 0},
+{438, 3437062994u, 3106834845u, 3437062994u, 0, CEILF_TOLERANCE, 0},
+{439, 1131196082u, 1164573183u, 1131216896u, 0, CEILF_TOLERANCE, 0},
+{440, 3258097678u, 1305882290u, 3257925632u, 0, CEILF_TOLERANCE, 0},
+{441, 3460915348u, 1219372260u, 3460915348u, 0, CEILF_TOLERANCE, 0},
+{442, 3303035472u, 3153013020u, 3303030784u, 0, CEILF_TOLERANCE, 0},
+{443, 1053698677u, 3284313107u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{444, 3396166221u, 1201894512u, 3396166220u, 0, CEILF_TOLERANCE, 0},
+{445, 3458934263u, 1005577835u, 3458934263u, 0, CEILF_TOLERANCE, 0},
+{446, 1065761827u, 3333928591u, 1073741824u, 0, CEILF_TOLERANCE, 0},
+{447, 926665223u, 3150815797u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{448, 1199816046u, 3143776186u, 1199816064u, 0, CEILF_TOLERANCE, 0},
+{449, 3333779015u, 952421041u, 3333778944u, 0, CEILF_TOLERANCE, 0},
+{450, 948398145u, 3238273189u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{451, 1080781593u, 1213908300u, 1082130432u, 0, CEILF_TOLERANCE, 0},
+{452, 3235326590u, 1271705594u, 3233808384u, 0, CEILF_TOLERANCE, 0},
+{453, 965378004u, 1292594138u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{454, 3226990408u, 1110755136u, 3225419776u, 0, CEILF_TOLERANCE, 0},
+{455, 1283624229u, 906796922u, 1283624229u, 0, CEILF_TOLERANCE, 0},
+{456, 970649315u, 1078286437u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{457, 959776291u, 3280345347u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{458, 3341117305u, 3294559023u, 3341117184u, 0, CEILF_TOLERANCE, 0},
+{459, 1270734970u, 3355874874u, 1270734970u, 0, CEILF_TOLERANCE, 0},
+{460, 3454816067u, 868771977u, 3454816067u, 0, CEILF_TOLERANCE, 0},
+{461, 917206623u, 1172710814u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{462, 1106502045u, 1290849316u, 1106771968u, 0, CEILF_TOLERANCE, 0},
+{463, 1157598381u, 3309023746u, 1157603328u, 0, CEILF_TOLERANCE, 0},
+{464, 3335234513u, 1002337336u, 3335234048u, 0, CEILF_TOLERANCE, 0},
+{465, 1279489061u, 1006049444u, 1279489061u, 0, CEILF_TOLERANCE, 0},
+{466, 1233171235u, 826460580u, 1233171240u, 0, CEILF_TOLERANCE, 0},
+{467, 1148920078u, 1007674793u, 1148928000u, 0, CEILF_TOLERANCE, 0},
+{468, 1109198803u, 1221754614u, 1109393408u, 0, CEILF_TOLERANCE, 0},
+{469, 3219949483u, 1056167693u, 3212836864u, 0, CEILF_TOLERANCE, 0},
+{470, 3361149474u, 3387342069u, 3361149440u, 0, CEILF_TOLERANCE, 0},
+{471, 1207502108u, 3388073586u, 1207502208u, 0, CEILF_TOLERANCE, 0},
+{472, 1000014431u, 831213088u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{473, 1234530539u, 1079988872u, 1234530544u, 0, CEILF_TOLERANCE, 0},
+{474, 1017843965u, 1193076204u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{475, 951862956u, 1173464654u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{476, 3306328852u, 1118701064u, 3306328064u, 0, CEILF_TOLERANCE, 0},
+{477, 1291910469u, 1211303367u, 1291910469u, 0, CEILF_TOLERANCE, 0},
+{478, 1131927531u, 3182962700u, 1131937792u, 0, CEILF_TOLERANCE, 0},
+{479, 3449879391u, 991614550u, 3449879391u, 0, CEILF_TOLERANCE, 0},
+{480, 970094304u, 3344590506u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{481, 1125551064u, 3331248076u, 1125580800u, 0, CEILF_TOLERANCE, 0},
+{482, 3427296372u, 3455289118u, 3427296372u, 0, CEILF_TOLERANCE, 0},
+{483, 1198917460u, 1327195159u, 1198917632u, 0, CEILF_TOLERANCE, 0},
+{484, 921940707u, 2967544056u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{485, 1091906532u, 3011904455u, 1092616192u, 0, CEILF_TOLERANCE, 0},
+{486, 3393557778u, 3383396815u, 3393557776u, 0, CEILF_TOLERANCE, 0},
+{487, 1276853215u, 873199561u, 1276853215u, 0, CEILF_TOLERANCE, 0},
+{488, 3462778440u, 3349284325u, 3462778440u, 0, CEILF_TOLERANCE, 0},
+{489, 3360170117u, 3048354042u, 3360170112u, 0, CEILF_TOLERANCE, 0},
+{490, 3224245428u, 3271307999u, 3221225472u, 0, CEILF_TOLERANCE, 0},
+{491, 1120124467u, 1135619937u, 1120141312u, 0, CEILF_TOLERANCE, 0},
+{492, 1064364381u, 3180675544u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{493, 1268744779u, 3328452652u, 1268744779u, 0, CEILF_TOLERANCE, 0},
+{494, 1165195428u, 3390323168u, 1165197312u, 0, CEILF_TOLERANCE, 0},
+{495, 3247790039u, 909788142u, 3247439872u, 0, CEILF_TOLERANCE, 0},
+{496, 3215244648u, 1083988595u, 3212836864u, 0, CEILF_TOLERANCE, 0},
+{497, 1212717473u, 837873779u, 1212717504u, 0, CEILF_TOLERANCE, 0},
+{498, 3275973009u, 3450721670u, 3275948032u, 0, CEILF_TOLERANCE, 0},
+{499, 3391162308u, 1291220039u, 3391162304u, 0, CEILF_TOLERANCE, 0},
+{500, 1044867873u, 3369493273u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{501, 1089986803u, 3462160118u, 1090519040u, 0, CEILF_TOLERANCE, 0},
+{502, 1296314700u, 2957454177u, 1296314700u, 0, CEILF_TOLERANCE, 0},
+{503, 1251462432u, 3171021770u, 1251462434u, 0, CEILF_TOLERANCE, 0},
+{504, 3485236902u, 980772835u, 3485236902u, 0, CEILF_TOLERANCE, 0},
+{505, 3262169538u, 1268270462u, 3262119936u, 0, CEILF_TOLERANCE, 0},
+{506, 1022211242u, 922124181u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{507, 884661176u, 2985540645u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{508, 989762529u, 3362011135u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{509, 1295475718u, 3212305413u, 1295475718u, 0, CEILF_TOLERANCE, 0},
+{510, 1002632518u, 3330388441u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{511, 3404372005u, 3450484255u, 3404372004u, 0, CEILF_TOLERANCE, 0},
+{512, 1125800069u, 3256265749u, 1125842944u, 0, CEILF_TOLERANCE, 0},
+{513, 999985470u, 3409354318u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{514, 1189421739u, 1056599002u, 1189422080u, 0, CEILF_TOLERANCE, 0},
+{515, 1164046161u, 3440635788u, 1164046336u, 0, CEILF_TOLERANCE, 0},
+{516, 1292596266u, 3116569667u, 1292596266u, 0, CEILF_TOLERANCE, 0},
+{517, 3469748379u, 3412765608u, 3469748379u, 0, CEILF_TOLERANCE, 0},
+{518, 1314644642u, 3123051784u, 1314644642u, 0, CEILF_TOLERANCE, 0},
+{519, 3399813173u, 828743798u, 3399813172u, 0, CEILF_TOLERANCE, 0},
+{520, 948775569u, 3485444126u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{521, 1034611395u, 882288581u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{522, 3489122735u, 3372450889u, 3489122735u, 0, CEILF_TOLERANCE, 0},
+{523, 1181604787u, 3363067409u, 1181604864u, 0, CEILF_TOLERANCE, 0},
+{524, 1043691622u, 3402603223u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{525, 1314588083u, 856187848u, 1314588083u, 0, CEILF_TOLERANCE, 0},
+{526, 3400949680u, 3073750220u, 3400949678u, 0, CEILF_TOLERANCE, 0},
+{527, 3365581801u, 1175843167u, 3365581792u, 0, CEILF_TOLERANCE, 0},
+{528, 1110424755u, 3011308654u, 1110441984u, 0, CEILF_TOLERANCE, 0},
+{529, 969804941u, 3355439348u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{530, 1139120919u, 3270515074u, 1139146752u, 0, CEILF_TOLERANCE, 0},
+{531, 934308144u, 3118191228u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{532, 1220524226u, 1152648002u, 1220524256u, 0, CEILF_TOLERANCE, 0},
+{533, 3382391700u, 3296962745u, 3382391696u, 0, CEILF_TOLERANCE, 0},
+{534, 1156767533u, 1088986462u, 1156767744u, 0, CEILF_TOLERANCE, 0},
+{535, 994934087u, 967678094u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{536, 3479873563u, 1246277393u, 3479873563u, 0, CEILF_TOLERANCE, 0},
+{537, 3424264117u, 3434026174u, 3424264117u, 0, CEILF_TOLERANCE, 0},
+{538, 3228365887u, 1216775310u, 3225419776u, 0, CEILF_TOLERANCE, 0},
+{539, 1035909900u, 1249532942u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{540, 1212129651u, 3017366784u, 1212129664u, 0, CEILF_TOLERANCE, 0},
+{541, 1037464105u, 3121544932u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{542, 1311706596u, 1254918706u, 1311706596u, 0, CEILF_TOLERANCE, 0},
+{543, 918212457u, 1017468331u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{544, 1337315179u, 3461361185u, 1337315179u, 0, CEILF_TOLERANCE, 0},
+{545, 1131358407u, 3325958870u, 1131413504u, 0, CEILF_TOLERANCE, 0},
+{546, 1156517523u, 3343716230u, 1156521984u, 0, CEILF_TOLERANCE, 0},
+{547, 3337499209u, 1226297264u, 3337499136u, 0, CEILF_TOLERANCE, 0},
+{548, 3468429030u, 3253874001u, 3468429030u, 0, CEILF_TOLERANCE, 0},
+{549, 3253515800u, 1189005947u, 3253207040u, 0, CEILF_TOLERANCE, 0},
+{550, 959956547u, 876324728u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{551, 3425290480u, 1139193797u, 3425290480u, 0, CEILF_TOLERANCE, 0},
+{552, 1039917375u, 1122740999u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{553, 3220979495u, 3429223871u, 3212836864u, 0, CEILF_TOLERANCE, 0},
+{554, 1311016004u, 3334899880u, 1311016004u, 0, CEILF_TOLERANCE, 0},
+{555, 1128016396u, 1105151547u, 1128071168u, 0, CEILF_TOLERANCE, 0},
+{556, 1206054701u, 826010009u, 1206054784u, 0, CEILF_TOLERANCE, 0},
+{557, 1213609983u, 919983950u, 1213609984u, 0, CEILF_TOLERANCE, 0},
+{558, 1246902946u, 3064047808u, 1246902948u, 0, CEILF_TOLERANCE, 0},
+{559, 995850843u, 1332031130u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{560, 3362082828u, 3374056268u, 3362082816u, 0, CEILF_TOLERANCE, 0},
+{561, 1029480631u, 3047777170u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{562, 3384988527u, 3109485565u, 3384988520u, 0, CEILF_TOLERANCE, 0},
+{563, 1317696241u, 870681806u, 1317696241u, 0, CEILF_TOLERANCE, 0},
+{564, 3235395924u, 1132055244u, 3233808384u, 0, CEILF_TOLERANCE, 0},
+{565, 3341877624u, 2969495570u, 3341877504u, 0, CEILF_TOLERANCE, 0},
+{566, 1228636133u, 886552820u, 1228636144u, 0, CEILF_TOLERANCE, 0},
+{567, 1207246237u, 859223639u, 1207246336u, 0, CEILF_TOLERANCE, 0},
+{568, 1165476654u, 3350219111u, 1165479936u, 0, CEILF_TOLERANCE, 0},
+{569, 1215278023u, 3019755242u, 1215278080u, 0, CEILF_TOLERANCE, 0},
+{570, 1017239798u, 3438501281u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{571, 1149651309u, 970030475u, 1149657088u, 0, CEILF_TOLERANCE, 0},
+{572, 1111943722u, 3122211334u, 1112014848u, 0, CEILF_TOLERANCE, 0},
+{573, 1189849849u, 3382739134u, 1189850112u, 0, CEILF_TOLERANCE, 0},
+{574, 1249758327u, 3104759211u, 1249758328u, 0, CEILF_TOLERANCE, 0},
+{575, 1168098747u, 1316854744u, 1168099328u, 0, CEILF_TOLERANCE, 0},
+{576, 892549317u, 1179637545u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{577, 3301009024u, 3406174560u, 3301007360u, 0, CEILF_TOLERANCE, 0},
+{578, 3233089227u, 1212652543u, 3231711232u, 0, CEILF_TOLERANCE, 0},
+{579, 3218245284u, 1238873830u, 3212836864u, 0, CEILF_TOLERANCE, 0},
+{580, 3215981890u, 3240474694u, 3212836864u, 0, CEILF_TOLERANCE, 0},
+{581, 1266687209u, 3092038122u, 1266687210u, 0, CEILF_TOLERANCE, 0},
+{582, 3487959775u, 3331372071u, 3487959775u, 0, CEILF_TOLERANCE, 0},
+{583, 943645710u, 852875779u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{584, 3345065699u, 3282620725u, 3345065472u, 0, CEILF_TOLERANCE, 0},
+{585, 935847271u, 1067255804u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{586, 3410336089u, 1111437780u, 3410336088u, 0, CEILF_TOLERANCE, 0},
+{587, 1141063391u, 1168908072u, 1141063680u, 0, CEILF_TOLERANCE, 0},
+{588, 3353679791u, 897158391u, 3353679744u, 0, CEILF_TOLERANCE, 0},
+{589, 1001823878u, 1016826861u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{590, 1009130212u, 1004302940u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{591, 3367127535u, 943136342u, 3367127520u, 0, CEILF_TOLERANCE, 0},
+{592, 1032920919u, 3449126417u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{593, 3281952870u, 3147012185u, 3281944576u, 0, CEILF_TOLERANCE, 0},
+{594, 1237868497u, 3048281802u, 1237868504u, 0, CEILF_TOLERANCE, 0},
+{595, 1153753924u, 3322269242u, 1153761280u, 0, CEILF_TOLERANCE, 0},
+{596, 1120261759u, 892210998u, 1120272384u, 0, CEILF_TOLERANCE, 0},
+{597, 3226328360u, 3366432856u, 3225419776u, 0, CEILF_TOLERANCE, 0},
+{598, 3349595986u, 3251588707u, 3349595904u, 0, CEILF_TOLERANCE, 0},
+{599, 1087750238u, 1099325523u, 1088421888u, 0, CEILF_TOLERANCE, 0},
+{600, 1066116543u, 3072159933u, 1073741824u, 0, CEILF_TOLERANCE, 0},
+{601, 1030612298u, 3345396001u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{602, 1186234578u, 858134374u, 1186234880u, 0, CEILF_TOLERANCE, 0},
+{603, 1331680743u, 1009396165u, 1331680743u, 0, CEILF_TOLERANCE, 0},
+{604, 887589411u, 1292305693u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{605, 1045232522u, 3234993273u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{606, 3349432725u, 928848003u, 3349432704u, 0, CEILF_TOLERANCE, 0},
+{607, 912423027u, 3184646319u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{608, 3228795133u, 3273940030u, 3225419776u, 0, CEILF_TOLERANCE, 0},
+{609, 3296784303u, 3276182352u, 3296780288u, 0, CEILF_TOLERANCE, 0},
+{610, 965402291u, 3107104376u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{611, 3388153589u, 3426245389u, 3388153584u, 0, CEILF_TOLERANCE, 0},
+{612, 1133410485u, 3329658993u, 1133412352u, 0, CEILF_TOLERANCE, 0},
+{613, 3369970587u, 959121458u, 3369970560u, 0, CEILF_TOLERANCE, 0},
+{614, 1270451568u, 928393353u, 1270451568u, 0, CEILF_TOLERANCE, 0},
+{615, 989498922u, 3088358419u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{616, 1280215674u, 3148135875u, 1280215674u, 0, CEILF_TOLERANCE, 0},
+{617, 1171873518u, 954709738u, 1171873792u, 0, CEILF_TOLERANCE, 0},
+{618, 3298258100u, 935525182u, 3298254848u, 0, CEILF_TOLERANCE, 0},
+{619, 3415208824u, 822843236u, 3415208824u, 0, CEILF_TOLERANCE, 0},
+{620, 1001897182u, 3191875320u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{621, 985903305u, 3333087577u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{622, 3357328848u, 859306298u, 3357328832u, 0, CEILF_TOLERANCE, 0},
+{623, 982612185u, 923582663u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{624, 3267868136u, 1208301947u, 3267756032u, 0, CEILF_TOLERANCE, 0},
+{625, 3319048157u, 1172271145u, 3319046144u, 0, CEILF_TOLERANCE, 0},
+{626, 1144755661u, 860947435u, 1144766464u, 0, CEILF_TOLERANCE, 0},
+{627, 898467286u, 839254959u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{628, 3301461672u, 1233693827u, 3301457920u, 0, CEILF_TOLERANCE, 0},
+{629, 3364525678u, 3089849671u, 3364525664u, 0, CEILF_TOLERANCE, 0},
+{630, 931441127u, 1133424555u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{631, 3467121799u, 3023584354u, 3467121799u, 0, CEILF_TOLERANCE, 0},
+{632, 1151257041u, 3084216427u, 1151262720u, 0, CEILF_TOLERANCE, 0},
+{633, 1017573824u, 3130901062u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{634, 1258369714u, 3462258576u, 1258369714u, 0, CEILF_TOLERANCE, 0},
+{635, 1216602683u, 3371396332u, 1216602688u, 0, CEILF_TOLERANCE, 0},
+{636, 3297265739u, 1214184410u, 3297263616u, 0, CEILF_TOLERANCE, 0},
+{637, 1071940738u, 3311731012u, 1073741824u, 0, CEILF_TOLERANCE, 0},
+{638, 922601356u, 3337171870u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{639, 3462285635u, 3444030332u, 3462285635u, 0, CEILF_TOLERANCE, 0},
+{640, 3357177805u, 1085464241u, 3357177792u, 0, CEILF_TOLERANCE, 0},
+{641, 1153863660u, 1011991342u, 1153867776u, 0, CEILF_TOLERANCE, 0},
+{642, 1249365132u, 3278686216u, 1249365132u, 0, CEILF_TOLERANCE, 0},
+{643, 3222096285u, 1198013705u, 3221225472u, 0, CEILF_TOLERANCE, 0},
+{644, 1297708818u, 3079166173u, 1297708818u, 0, CEILF_TOLERANCE, 0},
+{645, 3345532722u, 3383708463u, 3345532672u, 0, CEILF_TOLERANCE, 0},
+{646, 3418753236u, 3481843070u, 3418753236u, 0, CEILF_TOLERANCE, 0},
+{647, 1277417964u, 3487506626u, 1277417964u, 0, CEILF_TOLERANCE, 0},
+{648, 987577257u, 1152077087u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{649, 888030585u, 3062367380u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{650, 1043442869u, 3311393817u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{651, 3320923228u, 3464544249u, 3320922112u, 0, CEILF_TOLERANCE, 0},
+{652, 1337400405u, 3488844154u, 1337400405u, 0, CEILF_TOLERANCE, 0},
+{653, 3400348640u, 3129868490u, 3400348640u, 0, CEILF_TOLERANCE, 0},
+{654, 1250249095u, 1069023744u, 1250249096u, 0, CEILF_TOLERANCE, 0},
+{655, 3284411233u, 1173613526u, 3284402176u, 0, CEILF_TOLERANCE, 0},
+{656, 1215968622u, 3469884568u, 1215968640u, 0, CEILF_TOLERANCE, 0},
+{657, 1025404104u, 1066370251u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{658, 3362748242u, 3369843597u, 3362748224u, 0, CEILF_TOLERANCE, 0},
+{659, 1252237719u, 1121169249u, 1252237720u, 0, CEILF_TOLERANCE, 0},
+{660, 3327895594u, 1224511805u, 3327895552u, 0, CEILF_TOLERANCE, 0},
+{661, 3396161504u, 1182798837u, 3396161500u, 0, CEILF_TOLERANCE, 0},
+{662, 1099710167u, 887180181u, 1099956224u, 0, CEILF_TOLERANCE, 0},
+{663, 1157186482u, 1288722647u, 1157193728u, 0, CEILF_TOLERANCE, 0},
+{664, 1282110851u, 3176633124u, 1282110852u, 0, CEILF_TOLERANCE, 0},
+{665, 3477008113u, 1331845018u, 3477008113u, 0, CEILF_TOLERANCE, 0},
+{666, 3292127294u, 3409957764u, 3292119040u, 0, CEILF_TOLERANCE, 0},
+{667, 1123357102u, 3281307320u, 1123418112u, 0, CEILF_TOLERANCE, 0},
+{668, 1106837025u, 3088080674u, 1107296256u, 0, CEILF_TOLERANCE, 0},
+{669, 1049949008u, 1130799489u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{670, 1253017688u, 942062372u, 1253017690u, 0, CEILF_TOLERANCE, 0},
+{671, 1108543194u, 3281299199u, 1108606976u, 0, CEILF_TOLERANCE, 0},
+{672, 1160162706u, 1264067367u, 1160163328u, 0, CEILF_TOLERANCE, 0},
+{673, 3305715025u, 3017496063u, 3305713664u, 0, CEILF_TOLERANCE, 0},
+{674, 1266928623u, 811778614u, 1266928624u, 0, CEILF_TOLERANCE, 0},
+{675, 3438080027u, 3107114149u, 3438080027u, 0, CEILF_TOLERANCE, 0},
+{676, 3344574751u, 3111270744u, 3344574720u, 0, CEILF_TOLERANCE, 0},
+{677, 1152416724u, 962669179u, 1152417792u, 0, CEILF_TOLERANCE, 0},
+{678, 1218239308u, 1126238113u, 1218239328u, 0, CEILF_TOLERANCE, 0},
+{679, 3263310567u, 1030748197u, 3263299584u, 0, CEILF_TOLERANCE, 0},
+{680, 1000313118u, 2980130729u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{681, 972485427u, 1124312043u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{682, 3290264612u, 1124703898u, 3290251264u, 0, CEILF_TOLERANCE, 0},
+{683, 3222106584u, 1183748648u, 3221225472u, 0, CEILF_TOLERANCE, 0},
+{684, 1278946388u, 825129857u, 1278946388u, 0, CEILF_TOLERANCE, 0},
+{685, 947914771u, 3181847068u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{686, 1098530298u, 3255870890u, 1098907648u, 0, CEILF_TOLERANCE, 0},
+{687, 3232726036u, 871038882u, 3231711232u, 0, CEILF_TOLERANCE, 0},
+{688, 1297190916u, 811863044u, 1297190916u, 0, CEILF_TOLERANCE, 0},
+{689, 1277649137u, 961171401u, 1277649137u, 0, CEILF_TOLERANCE, 0},
+{690, 3244032016u, 3045313345u, 3243245568u, 0, CEILF_TOLERANCE, 0},
+{691, 1096155623u, 1256423752u, 1096810496u, 0, CEILF_TOLERANCE, 0},
+{692, 873151908u, 3246562559u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{693, 3238729605u, 1298769842u, 3238002688u, 0, CEILF_TOLERANCE, 0},
+{694, 3317196817u, 989537151u, 3317196800u, 0, CEILF_TOLERANCE, 0},
+{695, 3374748510u, 834161190u, 3374748496u, 0, CEILF_TOLERANCE, 0},
+{696, 3345634950u, 959901149u, 3345634816u, 0, CEILF_TOLERANCE, 0},
+{697, 887311687u, 1175312255u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{698, 3396917283u, 3066326686u, 3396917280u, 0, CEILF_TOLERANCE, 0},
+{699, 3317032737u, 3143803722u, 3317030912u, 0, CEILF_TOLERANCE, 0},
+{700, 1200051436u, 1163802508u, 1200051456u, 0, CEILF_TOLERANCE, 0},
+{701, 1306520561u, 957302464u, 1306520561u, 0, CEILF_TOLERANCE, 0},
+{702, 1314936356u, 2985592532u, 1314936356u, 0, CEILF_TOLERANCE, 0},
+{703, 3475052219u, 1284049853u, 3475052219u, 0, CEILF_TOLERANCE, 0},
+{704, 3393227708u, 3271879112u, 3393227708u, 0, CEILF_TOLERANCE, 0},
+{705, 3349005404u, 3080993030u, 3349005312u, 0, CEILF_TOLERANCE, 0},
+{706, 1262863321u, 1219003129u, 1262863322u, 0, CEILF_TOLERANCE, 0},
+{707, 882902102u, 1224362550u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{708, 1053387478u, 3184880021u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{709, 3387653691u, 3347783852u, 3387653688u, 0, CEILF_TOLERANCE, 0},
+{710, 1338680611u, 1166078045u, 1338680611u, 0, CEILF_TOLERANCE, 0},
+{711, 1112891928u, 3074730425u, 1113063424u, 0, CEILF_TOLERANCE, 0},
+{712, 893449284u, 1052877339u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{713, 892311459u, 1097338393u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{714, 1190105283u, 3033907262u, 1190105600u, 0, CEILF_TOLERANCE, 0},
+{715, 1011225926u, 1180485180u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{716, 1043025031u, 987068973u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{717, 3410531037u, 2953541915u, 3410531037u, 0, CEILF_TOLERANCE, 0},
+{718, 902318189u, 849277289u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{719, 3213624815u, 2987148017u, 3212836864u, 0, CEILF_TOLERANCE, 0},
+{720, 1120888322u, 1086209113u, 1120927744u, 0, CEILF_TOLERANCE, 0},
+{721, 1315217243u, 3396371713u, 1315217243u, 0, CEILF_TOLERANCE, 0},
+{722, 1040617590u, 1034835971u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{723, 955384253u, 3344785562u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{724, 904255535u, 1019967545u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{725, 1022984119u, 3113891410u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{726, 997362368u, 3112875428u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{727, 900933520u, 1100589187u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{728, 1168623062u, 1143306482u, 1168623616u, 0, CEILF_TOLERANCE, 0},
+{729, 878737490u, 3269908326u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{730, 1039827284u, 1072928888u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{731, 1021564080u, 1064468397u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{732, 3458669745u, 3033299853u, 3458669745u, 0, CEILF_TOLERANCE, 0},
+{733, 3327516316u, 3405380971u, 3327515648u, 0, CEILF_TOLERANCE, 0},
+{734, 1040711112u, 3229444200u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{735, 1134528351u, 3365952513u, 1134559232u, 0, CEILF_TOLERANCE, 0},
+{736, 3414352838u, 3350285760u, 3414352838u, 0, CEILF_TOLERANCE, 0},
+{737, 1133689539u, 1067460093u, 1133707264u, 0, CEILF_TOLERANCE, 0},
+{738, 3455688478u, 3333091960u, 3455688478u, 0, CEILF_TOLERANCE, 0},
+{739, 1137634874u, 1137038869u, 1137639424u, 0, CEILF_TOLERANCE, 0},
+{740, 3415502662u, 955510692u, 3415502662u, 0, CEILF_TOLERANCE, 0},
+{741, 954999730u, 969618597u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{742, 1066157309u, 3241712664u, 1073741824u, 0, CEILF_TOLERANCE, 0},
+{743, 3436353675u, 1174967495u, 3436353675u, 0, CEILF_TOLERANCE, 0},
+{744, 940437609u, 860372396u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{745, 1023889593u, 2979304683u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{746, 3272661536u, 3461799138u, 3272605696u, 0, CEILF_TOLERANCE, 0},
+{747, 1170245333u, 1233406410u, 1170245632u, 0, CEILF_TOLERANCE, 0},
+{748, 1219052056u, 3369557946u, 1219052064u, 0, CEILF_TOLERANCE, 0},
+{749, 3318983619u, 3259663338u, 3318982656u, 0, CEILF_TOLERANCE, 0},
+{750, 3372118621u, 837597103u, 3372118592u, 0, CEILF_TOLERANCE, 0},
+{751, 1299683827u, 966031619u, 1299683827u, 0, CEILF_TOLERANCE, 0},
+{752, 3257224022u, 3361778245u, 3257139200u, 0, CEILF_TOLERANCE, 0},
+{753, 1229268598u, 1066965677u, 1229268608u, 0, CEILF_TOLERANCE, 0},
+{754, 1086717248u, 3423795374u, 1088421888u, 0, CEILF_TOLERANCE, 0},
+{755, 3434884607u, 3029593823u, 3434884607u, 0, CEILF_TOLERANCE, 0},
+{756, 3464955606u, 1017987696u, 3464955606u, 0, CEILF_TOLERANCE, 0},
+{757, 1025278524u, 3121856207u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{758, 1242829722u, 3233935671u, 1242829724u, 0, CEILF_TOLERANCE, 0},
+{759, 1200927971u, 1317167489u, 1200928000u, 0, CEILF_TOLERANCE, 0},
+{760, 3326858092u, 3452602832u, 3326857216u, 0, CEILF_TOLERANCE, 0},
+{761, 1246019790u, 850632217u, 1246019792u, 0, CEILF_TOLERANCE, 0},
+{762, 1136052740u, 3244616020u, 1136066560u, 0, CEILF_TOLERANCE, 0},
+{763, 1069009211u, 3002507482u, 1073741824u, 0, CEILF_TOLERANCE, 0},
+{764, 1015670780u, 1101217251u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{765, 1012543234u, 1116520440u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{766, 3316611992u, 3394732912u, 3316611072u, 0, CEILF_TOLERANCE, 0},
+{767, 1087942795u, 3316660295u, 1088421888u, 0, CEILF_TOLERANCE, 0},
+{768, 3426365713u, 3069778532u, 3426365712u, 0, CEILF_TOLERANCE, 0},
+{769, 3295326432u, 1313396175u, 3295313920u, 0, CEILF_TOLERANCE, 0},
+{770, 3318835308u, 3277583511u, 3318835200u, 0, CEILF_TOLERANCE, 0},
+{771, 3283555717u, 891875120u, 3283550208u, 0, CEILF_TOLERANCE, 0},
+{772, 3381255420u, 3015406047u, 3381255416u, 0, CEILF_TOLERANCE, 0},
+{773, 3388772093u, 1032597076u, 3388772088u, 0, CEILF_TOLERANCE, 0},
+{774, 954670189u, 1144923689u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{775, 1319200415u, 3387555900u, 1319200415u, 0, CEILF_TOLERANCE, 0},
+{776, 1279324488u, 3228401212u, 1279324488u, 0, CEILF_TOLERANCE, 0},
+{777, 3217795424u, 865577227u, 3212836864u, 0, CEILF_TOLERANCE, 0},
+{778, 3455131757u, 1260217257u, 3455131757u, 0, CEILF_TOLERANCE, 0},
+{779, 1246947517u, 1087951909u, 1246947520u, 0, CEILF_TOLERANCE, 0},
+{780, 3396723577u, 869285240u, 3396723576u, 0, CEILF_TOLERANCE, 0},
+{781, 3433761025u, 3060143904u, 3433761025u, 0, CEILF_TOLERANCE, 0},
+{782, 1173247961u, 1191127979u, 1173248000u, 0, CEILF_TOLERANCE, 0},
+{783, 3248534678u, 1323683800u, 3248488448u, 0, CEILF_TOLERANCE, 0},
+{784, 1082862511u, 3032804719u, 1084227584u, 0, CEILF_TOLERANCE, 0},
+{785, 1341821683u, 3003675365u, 1341821683u, 0, CEILF_TOLERANCE, 0},
+{786, 881101379u, 1190838126u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{787, 1079061705u, 2960507663u, 1082130432u, 0, CEILF_TOLERANCE, 0},
+{788, 1105291533u, 3482971524u, 1105723392u, 0, CEILF_TOLERANCE, 0},
+{789, 1016023520u, 3227712090u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{790, 3370691006u, 1295870514u, 3370690976u, 0, CEILF_TOLERANCE, 0},
+{791, 1156767169u, 1049756240u, 1156767744u, 0, CEILF_TOLERANCE, 0},
+{792, 1104284039u, 3040211914u, 1104674816u, 0, CEILF_TOLERANCE, 0},
+{793, 3335212901u, 3486414589u, 3335212544u, 0, CEILF_TOLERANCE, 0},
+{794, 1093697541u, 3193708441u, 1094713344u, 0, CEILF_TOLERANCE, 0},
+{795, 3266691185u, 1160074593u, 3266576384u, 0, CEILF_TOLERANCE, 0},
+{796, 1094115255u, 3008610212u, 1094713344u, 0, CEILF_TOLERANCE, 0},
+{797, 3424086808u, 3260140004u, 3424086808u, 0, CEILF_TOLERANCE, 0},
+{798, 3353608773u, 1134068114u, 3353608704u, 0, CEILF_TOLERANCE, 0},
+{799, 973664327u, 1319516167u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{800, 882878091u, 3136970767u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{801, 1098662266u, 833740182u, 1098907648u, 0, CEILF_TOLERANCE, 0},
+{802, 927582555u, 947955456u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{803, 3476083859u, 966439623u, 3476083859u, 0, CEILF_TOLERANCE, 0},
+{804, 979878744u, 1232482646u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{805, 3464546616u, 3205527253u, 3464546616u, 0, CEILF_TOLERANCE, 0},
+{806, 1002542205u, 3152136093u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{807, 3443552129u, 3165561391u, 3443552129u, 0, CEILF_TOLERANCE, 0},
+{808, 1287620154u, 3119707283u, 1287620154u, 0, CEILF_TOLERANCE, 0},
+{809, 946058434u, 1249928879u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{810, 1245702957u, 894348966u, 1245702960u, 0, CEILF_TOLERANCE, 0},
+{811, 989655126u, 1308376568u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{812, 1002715618u, 1191006977u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{813, 1000863905u, 1196831314u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{814, 3415763001u, 3032518431u, 3415763001u, 0, CEILF_TOLERANCE, 0},
+{815, 3283471961u, 1260093226u, 3283451904u, 0, CEILF_TOLERANCE, 0},
+{816, 3311210827u, 1192192264u, 3311210496u, 0, CEILF_TOLERANCE, 0},
+{817, 1198307901u, 1116328249u, 1198308096u, 0, CEILF_TOLERANCE, 0},
+{818, 1288901567u, 1296370667u, 1288901568u, 0, CEILF_TOLERANCE, 0},
+{819, 922255363u, 958305289u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{820, 1113104661u, 944376032u, 1113325568u, 0, CEILF_TOLERANCE, 0},
+{821, 1136714348u, 828849087u, 1136721920u, 0, CEILF_TOLERANCE, 0},
+{822, 948856035u, 1015466475u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{823, 1062512367u, 3229559531u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{824, 3486907092u, 823220784u, 3486907092u, 0, CEILF_TOLERANCE, 0},
+{825, 1162027071u, 3308983387u, 1162031104u, 0, CEILF_TOLERANCE, 0},
+{826, 1034561811u, 1054043114u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{827, 3271615417u, 3209997200u, 3271557120u, 0, CEILF_TOLERANCE, 0},
+{828, 1042014529u, 1146708584u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{829, 1177157787u, 3090208179u, 1177158656u, 0, CEILF_TOLERANCE, 0},
+{830, 3432084552u, 2997091781u, 3432084552u, 0, CEILF_TOLERANCE, 0},
+{831, 1309658335u, 1010219988u, 1309658335u, 0, CEILF_TOLERANCE, 0},
+{832, 1226494979u, 2991604792u, 1226494992u, 0, CEILF_TOLERANCE, 0},
+{833, 3375507013u, 1306310823u, 3375507008u, 0, CEILF_TOLERANCE, 0},
+{834, 3460699001u, 3096700943u, 3460699001u, 0, CEILF_TOLERANCE, 0},
+{835, 3468023178u, 1209565017u, 3468023178u, 0, CEILF_TOLERANCE, 0},
+{836, 1204196034u, 3298625731u, 1204196096u, 0, CEILF_TOLERANCE, 0},
+{837, 3459877411u, 2960476959u, 3459877411u, 0, CEILF_TOLERANCE, 0},
+{838, 909696559u, 1163075690u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{839, 1161439847u, 943449277u, 1161441280u, 0, CEILF_TOLERANCE, 0},
+{840, 908663107u, 939489763u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{841, 1055319316u, 3261813492u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{842, 1084378658u, 1009650785u, 1086324736u, 0, CEILF_TOLERANCE, 0},
+{843, 1226473697u, 821025132u, 1226473712u, 0, CEILF_TOLERANCE, 0},
+{844, 1123114742u, 1229815537u, 1123155968u, 0, CEILF_TOLERANCE, 0},
+{845, 1258114435u, 1291336083u, 1258114436u, 0, CEILF_TOLERANCE, 0},
+{846, 3468040845u, 3066966245u, 3468040845u, 0, CEILF_TOLERANCE, 0},
+{847, 1178825761u, 1113195286u, 1178826752u, 0, CEILF_TOLERANCE, 0},
+{848, 3223384012u, 1130486973u, 3221225472u, 0, CEILF_TOLERANCE, 0},
+{849, 1019964626u, 1235133609u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{850, 3445262427u, 3465211174u, 3445262426u, 0, CEILF_TOLERANCE, 0},
+{851, 1125653081u, 1207799746u, 1125711872u, 0, CEILF_TOLERANCE, 0},
+{852, 3337652712u, 3025581813u, 3337652224u, 0, CEILF_TOLERANCE, 0},
+{853, 1184753508u, 3147374485u, 1184753664u, 0, CEILF_TOLERANCE, 0},
+{854, 996404791u, 3353251979u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{855, 1188439315u, 1113484271u, 1188439552u, 0, CEILF_TOLERANCE, 0},
+{856, 906557513u, 3006513432u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{857, 916831283u, 999465787u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{858, 996786317u, 3179221951u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{859, 3461635065u, 1004690387u, 3461635065u, 0, CEILF_TOLERANCE, 0},
+{860, 1188167943u, 1200744896u, 1188168192u, 0, CEILF_TOLERANCE, 0},
+{861, 891257783u, 1267560050u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{862, 3290079438u, 846519377u, 3290071040u, 0, CEILF_TOLERANCE, 0},
+{863, 3350690327u, 2967953392u, 3350690304u, 0, CEILF_TOLERANCE, 0},
+{864, 1102061604u, 3424449935u, 1102577664u, 0, CEILF_TOLERANCE, 0},
+{865, 1282351521u, 3039376424u, 1282351521u, 0, CEILF_TOLERANCE, 0},
+{866, 3458861065u, 3392466405u, 3458861065u, 0, CEILF_TOLERANCE, 0},
+{867, 3228793330u, 855146890u, 3225419776u, 0, CEILF_TOLERANCE, 0},
+{868, 3422194733u, 893873945u, 3422194732u, 0, CEILF_TOLERANCE, 0},
+{869, 1261940623u, 3402349985u, 1261940623u, 0, CEILF_TOLERANCE, 0},
+{870, 3400603081u, 3234396843u, 3400603080u, 0, CEILF_TOLERANCE, 0},
+{871, 1219411812u, 2961857939u, 1219411840u, 0, CEILF_TOLERANCE, 0},
+{872, 886201503u, 3272760705u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{873, 3297366026u, 1089966380u, 3297361920u, 0, CEILF_TOLERANCE, 0},
+{874, 1218488455u, 3309646450u, 1218488480u, 0, CEILF_TOLERANCE, 0},
+{875, 1283938137u, 1196383822u, 1283938137u, 0, CEILF_TOLERANCE, 0},
+{876, 1317098613u, 949986176u, 1317098613u, 0, CEILF_TOLERANCE, 0},
+{877, 3431703657u, 3014443710u, 3431703657u, 0, CEILF_TOLERANCE, 0},
+{878, 3239728775u, 927815421u, 3239051264u, 0, CEILF_TOLERANCE, 0},
+{879, 3313160088u, 2964063309u, 3313156096u, 0, CEILF_TOLERANCE, 0},
+{880, 1284174954u, 3436881197u, 1284174954u, 0, CEILF_TOLERANCE, 0},
+{881, 1063693032u, 976661408u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{882, 1102631663u, 3396951425u, 1103101952u, 0, CEILF_TOLERANCE, 0},
+{883, 968803479u, 992989712u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{884, 3273080388u, 3109405906u, 3273064448u, 0, CEILF_TOLERANCE, 0},
+{885, 1172529774u, 3294550127u, 1172531200u, 0, CEILF_TOLERANCE, 0},
+{886, 1306695905u, 1292690378u, 1306695905u, 0, CEILF_TOLERANCE, 0},
+{887, 1003649752u, 1218792138u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{888, 1078478376u, 1326246424u, 1082130432u, 0, CEILF_TOLERANCE, 0},
+{889, 1165177679u, 3276237026u, 1165180928u, 0, CEILF_TOLERANCE, 0},
+{890, 3403009513u, 3381966453u, 3403009512u, 0, CEILF_TOLERANCE, 0},
+{891, 952348506u, 3377573987u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{892, 1222777442u, 1125769920u, 1222777472u, 0, CEILF_TOLERANCE, 0},
+{893, 1325324763u, 978336043u, 1325324763u, 0, CEILF_TOLERANCE, 0},
+{894, 3363524213u, 3202991311u, 3363524160u, 0, CEILF_TOLERANCE, 0},
+{895, 1158950321u, 1073578913u, 1158950912u, 0, CEILF_TOLERANCE, 0},
+{896, 903129873u, 3416864271u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{897, 1208345407u, 1254181270u, 1208345408u, 0, CEILF_TOLERANCE, 0},
+{898, 1258634105u, 1247426200u, 1258634105u, 0, CEILF_TOLERANCE, 0},
+{899, 1248478509u, 1287895126u, 1248478512u, 0, CEILF_TOLERANCE, 0},
+{900, 1153863988u, 3430539165u, 1153867776u, 0, CEILF_TOLERANCE, 0},
+{901, 1235620969u, 866627358u, 1235620976u, 0, CEILF_TOLERANCE, 0},
+{902, 1097120930u, 3221726305u, 1097859072u, 0, CEILF_TOLERANCE, 0},
+{903, 3469778622u, 1200179013u, 3469778622u, 0, CEILF_TOLERANCE, 0},
+{904, 1147712200u, 931865525u, 1147715584u, 0, CEILF_TOLERANCE, 0},
+{905, 1124721745u, 3058969650u, 1124728832u, 0, CEILF_TOLERANCE, 0},
+{906, 3261744304u, 1043806501u, 3261595648u, 0, CEILF_TOLERANCE, 0},
+{907, 1064922416u, 1320485628u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{908, 3303160152u, 3075455322u, 3303153664u, 0, CEILF_TOLERANCE, 0},
+{909, 1315090496u, 3269683237u, 1315090496u, 0, CEILF_TOLERANCE, 0},
+{910, 3230403187u, 1322841992u, 3229614080u, 0, CEILF_TOLERANCE, 0},
+{911, 1335399673u, 974138676u, 1335399673u, 0, CEILF_TOLERANCE, 0},
+{912, 1072458508u, 3372833993u, 1073741824u, 0, CEILF_TOLERANCE, 0},
+{913, 3303015249u, 3015039539u, 3303014400u, 0, CEILF_TOLERANCE, 0},
+{914, 3252139741u, 1059615003u, 3251634176u, 0, CEILF_TOLERANCE, 0},
+{915, 3468519966u, 3113982619u, 3468519966u, 0, CEILF_TOLERANCE, 0},
+{916, 1006231203u, 897530770u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{917, 951554138u, 1001144381u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{918, 942046828u, 986341002u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{919, 3319723279u, 3414482416u, 3319721984u, 0, CEILF_TOLERANCE, 0},
+{920, 3255104167u, 928827688u, 3255042048u, 0, CEILF_TOLERANCE, 0},
+{921, 1155477903u, 3104812800u, 1155481600u, 0, CEILF_TOLERANCE, 0},
+{922, 3273889176u, 980486479u, 3273850880u, 0, CEILF_TOLERANCE, 0},
+{923, 3237813668u, 3441016803u, 3235905536u, 0, CEILF_TOLERANCE, 0},
+{924, 1228207362u, 2985476579u, 1228207376u, 0, CEILF_TOLERANCE, 0},
+{925, 975349337u, 1311932596u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{926, 1290175785u, 3008182462u, 1290175786u, 0, CEILF_TOLERANCE, 0},
+{927, 981908840u, 3314038398u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{928, 941187647u, 1107765599u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{929, 1214223128u, 3225536822u, 1214223168u, 0, CEILF_TOLERANCE, 0},
+{930, 3422922584u, 1086391131u, 3422922584u, 0, CEILF_TOLERANCE, 0},
+{931, 1315857601u, 3487600045u, 1315857601u, 0, CEILF_TOLERANCE, 0},
+{932, 3453226030u, 3233768835u, 3453226030u, 0, CEILF_TOLERANCE, 0},
+{933, 1078359574u, 3199175230u, 1082130432u, 0, CEILF_TOLERANCE, 0},
+{934, 1029557624u, 3302959071u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{935, 1207675424u, 3042692550u, 1207675520u, 0, CEILF_TOLERANCE, 0},
+{936, 1028355074u, 3442294040u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{937, 1248421894u, 3367769132u, 1248421896u, 0, CEILF_TOLERANCE, 0},
+{938, 3353251994u, 1095517730u, 3353251968u, 0, CEILF_TOLERANCE, 0},
+{939, 876926659u, 3288089977u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{940, 1076752219u, 876236939u, 1077936128u, 0, CEILF_TOLERANCE, 0},
+{941, 3388531942u, 2988520062u, 3388531936u, 0, CEILF_TOLERANCE, 0},
+{942, 1273395082u, 3031189261u, 1273395082u, 0, CEILF_TOLERANCE, 0},
+{943, 3385588183u, 3258252464u, 3385588176u, 0, CEILF_TOLERANCE, 0},
+{944, 3441804648u, 3274638356u, 3441804648u, 0, CEILF_TOLERANCE, 0},
+{945, 3392827417u, 1277961150u, 3392827416u, 0, CEILF_TOLERANCE, 0},
+{946, 1161241793u, 1328003707u, 1161244672u, 0, CEILF_TOLERANCE, 0},
+{947, 1171318485u, 3374409104u, 1171318784u, 0, CEILF_TOLERANCE, 0},
+{948, 1001216371u, 3052357038u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{949, 912515889u, 1074635609u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{950, 3391452505u, 897989232u, 3391452504u, 0, CEILF_TOLERANCE, 0},
+{951, 3249603369u, 3147662248u, 3249537024u, 0, CEILF_TOLERANCE, 0},
+{952, 1220264047u, 2960450369u, 1220264064u, 0, CEILF_TOLERANCE, 0},
+{953, 3282212423u, 3174079140u, 3282206720u, 0, CEILF_TOLERANCE, 0},
+{954, 3352293320u, 3247843425u, 3352293248u, 0, CEILF_TOLERANCE, 0},
+{955, 3296358441u, 875645354u, 3296346112u, 0, CEILF_TOLERANCE, 0},
+{956, 1197828352u, 3245614728u, 1197828352u, 0, CEILF_TOLERANCE, 0},
+{957, 3340510371u, 914930263u, 3340510208u, 0, CEILF_TOLERANCE, 0},
+{958, 1127109339u, 3368125489u, 1127153664u, 0, CEILF_TOLERANCE, 0},
+{959, 909467381u, 1232375752u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{960, 1200599955u, 2981200675u, 1200600064u, 0, CEILF_TOLERANCE, 0},
+{961, 962230977u, 2988248037u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{962, 3237183876u, 3179379969u, 3235905536u, 0, CEILF_TOLERANCE, 0},
+{963, 939285924u, 3056079386u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{964, 944050180u, 3452557879u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{965, 3480592662u, 3261728191u, 3480592662u, 0, CEILF_TOLERANCE, 0},
+{966, 1003299981u, 853295521u, 1065353216u, 0, CEILF_TOLERANCE, 0},
+{967, 1155775526u, 1255814444u, 1155776512u, 0, CEILF_TOLERANCE, 0},
+{968, 1234491880u, 3408568717u, 1234491888u, 0, CEILF_TOLERANCE, 0},
+
+// AUTOMATICALLY GENERATED VECTORS STOP
+
+};
+
+#endif // CYGONCE_LIBM_CEILF_H multiple inclusion protection
+
+// EOF ceilf.h
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/copysignf.c b/ecos/packages/language/c/libm/current/tests/vectors/copysignf.c
new file mode 100644
index 0000000..edc082a
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/copysignf.c
@@ -0,0 +1,115 @@
+//===========================================================================
+//
+// copysignf.c
+//
+// Test of copysignf() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// Declarations for test system:
+//
+// TESTCASE_TYPE=CYG_TEST_MODULE
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include <cyg/infra/testcase.h> // Test infrastructure
+#include <math.h> // Header for this package
+#include <sys/ieeefp.h> // Cyg_libm_ieee_float_shape_type
+#include "vectors/vector_support_float.h"// extra support for math tests
+
+#include "vectors/copysignf.h"
+
+// FUNCTIONS
+
+static void
+test( CYG_ADDRWORD data )
+{
+ cyg_ucount32 vec_size;
+ cyg_bool ret;
+
+ vec_size = sizeof(copysignf_vec) / sizeof(Cyg_libm_test_float_vec_t);
+ ret = doTestVecFloat( (CYG_ADDRWORD) &copysignf, CYG_LIBM_TEST_VEC_FLOAT,
+ CYG_LIBM_TEST_VEC_FLOAT, CYG_LIBM_TEST_VEC_FLOAT,
+ &copysignf_vec[0], vec_size );
+
+ if (ret==true)
+ {
+ CYG_TEST_PASS("copysignf() is stable");
+ } // if
+ else
+ {
+ CYG_TEST_FAIL("copysignf() failed tests");
+ } // else
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for Math "
+ "library copysignf() function");
+} // test()
+
+
+int
+main(int argc, char *argv[])
+{
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for Math library "
+ "copysignf() function");
+
+ START_TEST( test );
+
+ CYG_TEST_PASS_FINISH("Testing is not applicable to this configuration");
+
+} // main()
+
+
+// EOF copysignf.c
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/copysignf.h b/ecos/packages/language/c/libm/current/tests/vectors/copysignf.h
new file mode 100644
index 0000000..64f3a4d
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/copysignf.h
@@ -0,0 +1,2551 @@
+#ifndef CYGONCE_LIBM_COPYSIGNF_H
+#define CYGONCE_LIBM_COPYSIGNF_H
+//===========================================================================
+//
+// copysignf.h
+//
+// Test vectors for testing of copysignf() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage: #include "vectors/copysignf.h"
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include "vectors/vector_support_float.h"// extra support for math tests
+
+#define COPYSIGNF_TOLERANCE 1.0E-04
+
+static const Cyg_libm_test_float_vec_t copysignf_vec[] = {
+
+// AUTOMATICALLY GENERATED VECTORS START
+
+{0, 3212836864u, 3212836864u, 3212836864u, 0, COPYSIGNF_TOLERANCE, 0},
+{1, 3212836864u, 3211998003u, 3212836864u, 0, COPYSIGNF_TOLERANCE, 0},
+{2, 3212836864u, 3211159142u, 3212836864u, 0, COPYSIGNF_TOLERANCE, 0},
+{3, 3212836864u, 3210320282u, 3212836864u, 0, COPYSIGNF_TOLERANCE, 0},
+{4, 3212836864u, 3209481421u, 3212836864u, 0, COPYSIGNF_TOLERANCE, 0},
+{5, 3212836864u, 3208642560u, 3212836864u, 0, COPYSIGNF_TOLERANCE, 0},
+{6, 3212836864u, 3207803699u, 3212836864u, 0, COPYSIGNF_TOLERANCE, 0},
+{7, 3212836864u, 3206964838u, 3212836864u, 0, COPYSIGNF_TOLERANCE, 0},
+{8, 3212836864u, 3206125978u, 3212836864u, 0, COPYSIGNF_TOLERANCE, 0},
+{9, 3212836864u, 3205287117u, 3212836864u, 0, COPYSIGNF_TOLERANCE, 0},
+{10, 3212836864u, 3204448256u, 3212836864u, 0, COPYSIGNF_TOLERANCE, 0},
+{11, 3212836864u, 3202770534u, 3212836864u, 0, COPYSIGNF_TOLERANCE, 0},
+{12, 3212836864u, 3201092813u, 3212836864u, 0, COPYSIGNF_TOLERANCE, 0},
+{13, 3212836864u, 3199415091u, 3212836864u, 0, COPYSIGNF_TOLERANCE, 0},
+{14, 3212836864u, 3197737370u, 3212836864u, 0, COPYSIGNF_TOLERANCE, 0},
+{15, 3212836864u, 3196059648u, 3212836864u, 0, COPYSIGNF_TOLERANCE, 0},
+{16, 3212836864u, 3192704205u, 3212836864u, 0, COPYSIGNF_TOLERANCE, 0},
+{17, 3212836864u, 3189348762u, 3212836864u, 0, COPYSIGNF_TOLERANCE, 0},
+{18, 3212836864u, 3184315597u, 3212836864u, 0, COPYSIGNF_TOLERANCE, 0},
+{19, 3212836864u, 3175926989u, 3212836864u, 0, COPYSIGNF_TOLERANCE, 0},
+{20, 3212836864u, 632815616u, 1065353216u, 0, COPYSIGNF_TOLERANCE, 0},
+{21, 3212836864u, 1028443341u, 1065353216u, 0, COPYSIGNF_TOLERANCE, 0},
+{22, 3212836864u, 1036831949u, 1065353216u, 0, COPYSIGNF_TOLERANCE, 0},
+{23, 3212836864u, 1041865114u, 1065353216u, 0, COPYSIGNF_TOLERANCE, 0},
+{24, 3212836864u, 1045220557u, 1065353216u, 0, COPYSIGNF_TOLERANCE, 0},
+{25, 3212836864u, 1048576000u, 1065353216u, 0, COPYSIGNF_TOLERANCE, 0},
+{26, 3212836864u, 1050253722u, 1065353216u, 0, COPYSIGNF_TOLERANCE, 0},
+{27, 3212836864u, 1051931443u, 1065353216u, 0, COPYSIGNF_TOLERANCE, 0},
+{28, 3212836864u, 1053609165u, 1065353216u, 0, COPYSIGNF_TOLERANCE, 0},
+{29, 3212836864u, 1055286886u, 1065353216u, 0, COPYSIGNF_TOLERANCE, 0},
+{30, 3212836864u, 1056964608u, 1065353216u, 0, COPYSIGNF_TOLERANCE, 0},
+{31, 3212836864u, 1057803469u, 1065353216u, 0, COPYSIGNF_TOLERANCE, 0},
+{32, 3212836864u, 1058642330u, 1065353216u, 0, COPYSIGNF_TOLERANCE, 0},
+{33, 3212836864u, 1059481190u, 1065353216u, 0, COPYSIGNF_TOLERANCE, 0},
+{34, 3212836864u, 1060320051u, 1065353216u, 0, COPYSIGNF_TOLERANCE, 0},
+{35, 3212836864u, 1061158912u, 1065353216u, 0, COPYSIGNF_TOLERANCE, 0},
+{36, 3212836864u, 1061997773u, 1065353216u, 0, COPYSIGNF_TOLERANCE, 0},
+{37, 3212836864u, 1062836634u, 1065353216u, 0, COPYSIGNF_TOLERANCE, 0},
+{38, 3212836864u, 1063675494u, 1065353216u, 0, COPYSIGNF_TOLERANCE, 0},
+{39, 3212836864u, 1064514355u, 1065353216u, 0, COPYSIGNF_TOLERANCE, 0},
+{40, 3211998003u, 3212836864u, 3211998003u, 0, COPYSIGNF_TOLERANCE, 0},
+{41, 3211998003u, 3211998003u, 3211998003u, 0, COPYSIGNF_TOLERANCE, 0},
+{42, 3211998003u, 3211159142u, 3211998003u, 0, COPYSIGNF_TOLERANCE, 0},
+{43, 3211998003u, 3210320282u, 3211998003u, 0, COPYSIGNF_TOLERANCE, 0},
+{44, 3211998003u, 3209481421u, 3211998003u, 0, COPYSIGNF_TOLERANCE, 0},
+{45, 3211998003u, 3208642560u, 3211998003u, 0, COPYSIGNF_TOLERANCE, 0},
+{46, 3211998003u, 3207803699u, 3211998003u, 0, COPYSIGNF_TOLERANCE, 0},
+{47, 3211998003u, 3206964838u, 3211998003u, 0, COPYSIGNF_TOLERANCE, 0},
+{48, 3211998003u, 3206125978u, 3211998003u, 0, COPYSIGNF_TOLERANCE, 0},
+{49, 3211998003u, 3205287117u, 3211998003u, 0, COPYSIGNF_TOLERANCE, 0},
+{50, 3211998003u, 3204448256u, 3211998003u, 0, COPYSIGNF_TOLERANCE, 0},
+{51, 3211998003u, 3202770534u, 3211998003u, 0, COPYSIGNF_TOLERANCE, 0},
+{52, 3211998003u, 3201092813u, 3211998003u, 0, COPYSIGNF_TOLERANCE, 0},
+{53, 3211998003u, 3199415091u, 3211998003u, 0, COPYSIGNF_TOLERANCE, 0},
+{54, 3211998003u, 3197737370u, 3211998003u, 0, COPYSIGNF_TOLERANCE, 0},
+{55, 3211998003u, 3196059648u, 3211998003u, 0, COPYSIGNF_TOLERANCE, 0},
+{56, 3211998003u, 3192704205u, 3211998003u, 0, COPYSIGNF_TOLERANCE, 0},
+{57, 3211998003u, 3189348762u, 3211998003u, 0, COPYSIGNF_TOLERANCE, 0},
+{58, 3211998003u, 3184315597u, 3211998003u, 0, COPYSIGNF_TOLERANCE, 0},
+{59, 3211998003u, 3175926989u, 3211998003u, 0, COPYSIGNF_TOLERANCE, 0},
+{60, 3211998003u, 632815616u, 1064514355u, 0, COPYSIGNF_TOLERANCE, 0},
+{61, 3211998003u, 1028443341u, 1064514355u, 0, COPYSIGNF_TOLERANCE, 0},
+{62, 3211998003u, 1036831949u, 1064514355u, 0, COPYSIGNF_TOLERANCE, 0},
+{63, 3211998003u, 1041865114u, 1064514355u, 0, COPYSIGNF_TOLERANCE, 0},
+{64, 3211998003u, 1045220557u, 1064514355u, 0, COPYSIGNF_TOLERANCE, 0},
+{65, 3211998003u, 1048576000u, 1064514355u, 0, COPYSIGNF_TOLERANCE, 0},
+{66, 3211998003u, 1050253722u, 1064514355u, 0, COPYSIGNF_TOLERANCE, 0},
+{67, 3211998003u, 1051931443u, 1064514355u, 0, COPYSIGNF_TOLERANCE, 0},
+{68, 3211998003u, 1053609165u, 1064514355u, 0, COPYSIGNF_TOLERANCE, 0},
+{69, 3211998003u, 1055286886u, 1064514355u, 0, COPYSIGNF_TOLERANCE, 0},
+{70, 3211998003u, 1056964608u, 1064514355u, 0, COPYSIGNF_TOLERANCE, 0},
+{71, 3211998003u, 1057803469u, 1064514355u, 0, COPYSIGNF_TOLERANCE, 0},
+{72, 3211998003u, 1058642330u, 1064514355u, 0, COPYSIGNF_TOLERANCE, 0},
+{73, 3211998003u, 1059481190u, 1064514355u, 0, COPYSIGNF_TOLERANCE, 0},
+{74, 3211998003u, 1060320051u, 1064514355u, 0, COPYSIGNF_TOLERANCE, 0},
+{75, 3211998003u, 1061158912u, 1064514355u, 0, COPYSIGNF_TOLERANCE, 0},
+{76, 3211998003u, 1061997773u, 1064514355u, 0, COPYSIGNF_TOLERANCE, 0},
+{77, 3211998003u, 1062836634u, 1064514355u, 0, COPYSIGNF_TOLERANCE, 0},
+{78, 3211998003u, 1063675494u, 1064514355u, 0, COPYSIGNF_TOLERANCE, 0},
+{79, 3211998003u, 1064514355u, 1064514355u, 0, COPYSIGNF_TOLERANCE, 0},
+{80, 3211159142u, 3212836864u, 3211159142u, 0, COPYSIGNF_TOLERANCE, 0},
+{81, 3211159142u, 3211998003u, 3211159142u, 0, COPYSIGNF_TOLERANCE, 0},
+{82, 3211159142u, 3211159142u, 3211159142u, 0, COPYSIGNF_TOLERANCE, 0},
+{83, 3211159142u, 3210320282u, 3211159142u, 0, COPYSIGNF_TOLERANCE, 0},
+{84, 3211159142u, 3209481421u, 3211159142u, 0, COPYSIGNF_TOLERANCE, 0},
+{85, 3211159142u, 3208642560u, 3211159142u, 0, COPYSIGNF_TOLERANCE, 0},
+{86, 3211159142u, 3207803699u, 3211159142u, 0, COPYSIGNF_TOLERANCE, 0},
+{87, 3211159142u, 3206964838u, 3211159142u, 0, COPYSIGNF_TOLERANCE, 0},
+{88, 3211159142u, 3206125978u, 3211159142u, 0, COPYSIGNF_TOLERANCE, 0},
+{89, 3211159142u, 3205287117u, 3211159142u, 0, COPYSIGNF_TOLERANCE, 0},
+{90, 3211159142u, 3204448256u, 3211159142u, 0, COPYSIGNF_TOLERANCE, 0},
+{91, 3211159142u, 3202770534u, 3211159142u, 0, COPYSIGNF_TOLERANCE, 0},
+{92, 3211159142u, 3201092813u, 3211159142u, 0, COPYSIGNF_TOLERANCE, 0},
+{93, 3211159142u, 3199415091u, 3211159142u, 0, COPYSIGNF_TOLERANCE, 0},
+{94, 3211159142u, 3197737370u, 3211159142u, 0, COPYSIGNF_TOLERANCE, 0},
+{95, 3211159142u, 3196059648u, 3211159142u, 0, COPYSIGNF_TOLERANCE, 0},
+{96, 3211159142u, 3192704205u, 3211159142u, 0, COPYSIGNF_TOLERANCE, 0},
+{97, 3211159142u, 3189348762u, 3211159142u, 0, COPYSIGNF_TOLERANCE, 0},
+{98, 3211159142u, 3184315597u, 3211159142u, 0, COPYSIGNF_TOLERANCE, 0},
+{99, 3211159142u, 3175926989u, 3211159142u, 0, COPYSIGNF_TOLERANCE, 0},
+{100, 3211159142u, 632815616u, 1063675494u, 0, COPYSIGNF_TOLERANCE, 0},
+{101, 3211159142u, 1028443341u, 1063675494u, 0, COPYSIGNF_TOLERANCE, 0},
+{102, 3211159142u, 1036831949u, 1063675494u, 0, COPYSIGNF_TOLERANCE, 0},
+{103, 3211159142u, 1041865114u, 1063675494u, 0, COPYSIGNF_TOLERANCE, 0},
+{104, 3211159142u, 1045220557u, 1063675494u, 0, COPYSIGNF_TOLERANCE, 0},
+{105, 3211159142u, 1048576000u, 1063675494u, 0, COPYSIGNF_TOLERANCE, 0},
+{106, 3211159142u, 1050253722u, 1063675494u, 0, COPYSIGNF_TOLERANCE, 0},
+{107, 3211159142u, 1051931443u, 1063675494u, 0, COPYSIGNF_TOLERANCE, 0},
+{108, 3211159142u, 1053609165u, 1063675494u, 0, COPYSIGNF_TOLERANCE, 0},
+{109, 3211159142u, 1055286886u, 1063675494u, 0, COPYSIGNF_TOLERANCE, 0},
+{110, 3211159142u, 1056964608u, 1063675494u, 0, COPYSIGNF_TOLERANCE, 0},
+{111, 3211159142u, 1057803469u, 1063675494u, 0, COPYSIGNF_TOLERANCE, 0},
+{112, 3211159142u, 1058642330u, 1063675494u, 0, COPYSIGNF_TOLERANCE, 0},
+{113, 3211159142u, 1059481190u, 1063675494u, 0, COPYSIGNF_TOLERANCE, 0},
+{114, 3211159142u, 1060320051u, 1063675494u, 0, COPYSIGNF_TOLERANCE, 0},
+{115, 3211159142u, 1061158912u, 1063675494u, 0, COPYSIGNF_TOLERANCE, 0},
+{116, 3211159142u, 1061997773u, 1063675494u, 0, COPYSIGNF_TOLERANCE, 0},
+{117, 3211159142u, 1062836634u, 1063675494u, 0, COPYSIGNF_TOLERANCE, 0},
+{118, 3211159142u, 1063675494u, 1063675494u, 0, COPYSIGNF_TOLERANCE, 0},
+{119, 3211159142u, 1064514355u, 1063675494u, 0, COPYSIGNF_TOLERANCE, 0},
+{120, 3210320282u, 3212836864u, 3210320282u, 0, COPYSIGNF_TOLERANCE, 0},
+{121, 3210320282u, 3211998003u, 3210320282u, 0, COPYSIGNF_TOLERANCE, 0},
+{122, 3210320282u, 3211159142u, 3210320282u, 0, COPYSIGNF_TOLERANCE, 0},
+{123, 3210320282u, 3210320282u, 3210320282u, 0, COPYSIGNF_TOLERANCE, 0},
+{124, 3210320282u, 3209481421u, 3210320282u, 0, COPYSIGNF_TOLERANCE, 0},
+{125, 3210320282u, 3208642560u, 3210320282u, 0, COPYSIGNF_TOLERANCE, 0},
+{126, 3210320282u, 3207803699u, 3210320282u, 0, COPYSIGNF_TOLERANCE, 0},
+{127, 3210320282u, 3206964838u, 3210320282u, 0, COPYSIGNF_TOLERANCE, 0},
+{128, 3210320282u, 3206125978u, 3210320282u, 0, COPYSIGNF_TOLERANCE, 0},
+{129, 3210320282u, 3205287117u, 3210320282u, 0, COPYSIGNF_TOLERANCE, 0},
+{130, 3210320282u, 3204448256u, 3210320282u, 0, COPYSIGNF_TOLERANCE, 0},
+{131, 3210320282u, 3202770534u, 3210320282u, 0, COPYSIGNF_TOLERANCE, 0},
+{132, 3210320282u, 3201092813u, 3210320282u, 0, COPYSIGNF_TOLERANCE, 0},
+{133, 3210320282u, 3199415091u, 3210320282u, 0, COPYSIGNF_TOLERANCE, 0},
+{134, 3210320282u, 3197737370u, 3210320282u, 0, COPYSIGNF_TOLERANCE, 0},
+{135, 3210320282u, 3196059648u, 3210320282u, 0, COPYSIGNF_TOLERANCE, 0},
+{136, 3210320282u, 3192704205u, 3210320282u, 0, COPYSIGNF_TOLERANCE, 0},
+{137, 3210320282u, 3189348762u, 3210320282u, 0, COPYSIGNF_TOLERANCE, 0},
+{138, 3210320282u, 3184315597u, 3210320282u, 0, COPYSIGNF_TOLERANCE, 0},
+{139, 3210320282u, 3175926989u, 3210320282u, 0, COPYSIGNF_TOLERANCE, 0},
+{140, 3210320282u, 632815616u, 1062836634u, 0, COPYSIGNF_TOLERANCE, 0},
+{141, 3210320282u, 1028443341u, 1062836634u, 0, COPYSIGNF_TOLERANCE, 0},
+{142, 3210320282u, 1036831949u, 1062836634u, 0, COPYSIGNF_TOLERANCE, 0},
+{143, 3210320282u, 1041865114u, 1062836634u, 0, COPYSIGNF_TOLERANCE, 0},
+{144, 3210320282u, 1045220557u, 1062836634u, 0, COPYSIGNF_TOLERANCE, 0},
+{145, 3210320282u, 1048576000u, 1062836634u, 0, COPYSIGNF_TOLERANCE, 0},
+{146, 3210320282u, 1050253722u, 1062836634u, 0, COPYSIGNF_TOLERANCE, 0},
+{147, 3210320282u, 1051931443u, 1062836634u, 0, COPYSIGNF_TOLERANCE, 0},
+{148, 3210320282u, 1053609165u, 1062836634u, 0, COPYSIGNF_TOLERANCE, 0},
+{149, 3210320282u, 1055286886u, 1062836634u, 0, COPYSIGNF_TOLERANCE, 0},
+{150, 3210320282u, 1056964608u, 1062836634u, 0, COPYSIGNF_TOLERANCE, 0},
+{151, 3210320282u, 1057803469u, 1062836634u, 0, COPYSIGNF_TOLERANCE, 0},
+{152, 3210320282u, 1058642330u, 1062836634u, 0, COPYSIGNF_TOLERANCE, 0},
+{153, 3210320282u, 1059481190u, 1062836634u, 0, COPYSIGNF_TOLERANCE, 0},
+{154, 3210320282u, 1060320051u, 1062836634u, 0, COPYSIGNF_TOLERANCE, 0},
+{155, 3210320282u, 1061158912u, 1062836634u, 0, COPYSIGNF_TOLERANCE, 0},
+{156, 3210320282u, 1061997773u, 1062836634u, 0, COPYSIGNF_TOLERANCE, 0},
+{157, 3210320282u, 1062836634u, 1062836634u, 0, COPYSIGNF_TOLERANCE, 0},
+{158, 3210320282u, 1063675494u, 1062836634u, 0, COPYSIGNF_TOLERANCE, 0},
+{159, 3210320282u, 1064514355u, 1062836634u, 0, COPYSIGNF_TOLERANCE, 0},
+{160, 3209481421u, 3212836864u, 3209481421u, 0, COPYSIGNF_TOLERANCE, 0},
+{161, 3209481421u, 3211998003u, 3209481421u, 0, COPYSIGNF_TOLERANCE, 0},
+{162, 3209481421u, 3211159142u, 3209481421u, 0, COPYSIGNF_TOLERANCE, 0},
+{163, 3209481421u, 3210320282u, 3209481421u, 0, COPYSIGNF_TOLERANCE, 0},
+{164, 3209481421u, 3209481421u, 3209481421u, 0, COPYSIGNF_TOLERANCE, 0},
+{165, 3209481421u, 3208642560u, 3209481421u, 0, COPYSIGNF_TOLERANCE, 0},
+{166, 3209481421u, 3207803699u, 3209481421u, 0, COPYSIGNF_TOLERANCE, 0},
+{167, 3209481421u, 3206964838u, 3209481421u, 0, COPYSIGNF_TOLERANCE, 0},
+{168, 3209481421u, 3206125978u, 3209481421u, 0, COPYSIGNF_TOLERANCE, 0},
+{169, 3209481421u, 3205287117u, 3209481421u, 0, COPYSIGNF_TOLERANCE, 0},
+{170, 3209481421u, 3204448256u, 3209481421u, 0, COPYSIGNF_TOLERANCE, 0},
+{171, 3209481421u, 3202770534u, 3209481421u, 0, COPYSIGNF_TOLERANCE, 0},
+{172, 3209481421u, 3201092813u, 3209481421u, 0, COPYSIGNF_TOLERANCE, 0},
+{173, 3209481421u, 3199415091u, 3209481421u, 0, COPYSIGNF_TOLERANCE, 0},
+{174, 3209481421u, 3197737370u, 3209481421u, 0, COPYSIGNF_TOLERANCE, 0},
+{175, 3209481421u, 3196059648u, 3209481421u, 0, COPYSIGNF_TOLERANCE, 0},
+{176, 3209481421u, 3192704205u, 3209481421u, 0, COPYSIGNF_TOLERANCE, 0},
+{177, 3209481421u, 3189348762u, 3209481421u, 0, COPYSIGNF_TOLERANCE, 0},
+{178, 3209481421u, 3184315597u, 3209481421u, 0, COPYSIGNF_TOLERANCE, 0},
+{179, 3209481421u, 3175926989u, 3209481421u, 0, COPYSIGNF_TOLERANCE, 0},
+{180, 3209481421u, 632815616u, 1061997773u, 0, COPYSIGNF_TOLERANCE, 0},
+{181, 3209481421u, 1028443341u, 1061997773u, 0, COPYSIGNF_TOLERANCE, 0},
+{182, 3209481421u, 1036831949u, 1061997773u, 0, COPYSIGNF_TOLERANCE, 0},
+{183, 3209481421u, 1041865114u, 1061997773u, 0, COPYSIGNF_TOLERANCE, 0},
+{184, 3209481421u, 1045220557u, 1061997773u, 0, COPYSIGNF_TOLERANCE, 0},
+{185, 3209481421u, 1048576000u, 1061997773u, 0, COPYSIGNF_TOLERANCE, 0},
+{186, 3209481421u, 1050253722u, 1061997773u, 0, COPYSIGNF_TOLERANCE, 0},
+{187, 3209481421u, 1051931443u, 1061997773u, 0, COPYSIGNF_TOLERANCE, 0},
+{188, 3209481421u, 1053609165u, 1061997773u, 0, COPYSIGNF_TOLERANCE, 0},
+{189, 3209481421u, 1055286886u, 1061997773u, 0, COPYSIGNF_TOLERANCE, 0},
+{190, 3209481421u, 1056964608u, 1061997773u, 0, COPYSIGNF_TOLERANCE, 0},
+{191, 3209481421u, 1057803469u, 1061997773u, 0, COPYSIGNF_TOLERANCE, 0},
+{192, 3209481421u, 1058642330u, 1061997773u, 0, COPYSIGNF_TOLERANCE, 0},
+{193, 3209481421u, 1059481190u, 1061997773u, 0, COPYSIGNF_TOLERANCE, 0},
+{194, 3209481421u, 1060320051u, 1061997773u, 0, COPYSIGNF_TOLERANCE, 0},
+{195, 3209481421u, 1061158912u, 1061997773u, 0, COPYSIGNF_TOLERANCE, 0},
+{196, 3209481421u, 1061997773u, 1061997773u, 0, COPYSIGNF_TOLERANCE, 0},
+{197, 3209481421u, 1062836634u, 1061997773u, 0, COPYSIGNF_TOLERANCE, 0},
+{198, 3209481421u, 1063675494u, 1061997773u, 0, COPYSIGNF_TOLERANCE, 0},
+{199, 3209481421u, 1064514355u, 1061997773u, 0, COPYSIGNF_TOLERANCE, 0},
+{200, 3208642560u, 3212836864u, 3208642560u, 0, COPYSIGNF_TOLERANCE, 0},
+{201, 3208642560u, 3211998003u, 3208642560u, 0, COPYSIGNF_TOLERANCE, 0},
+{202, 3208642560u, 3211159142u, 3208642560u, 0, COPYSIGNF_TOLERANCE, 0},
+{203, 3208642560u, 3210320282u, 3208642560u, 0, COPYSIGNF_TOLERANCE, 0},
+{204, 3208642560u, 3209481421u, 3208642560u, 0, COPYSIGNF_TOLERANCE, 0},
+{205, 3208642560u, 3208642560u, 3208642560u, 0, COPYSIGNF_TOLERANCE, 0},
+{206, 3208642560u, 3207803699u, 3208642560u, 0, COPYSIGNF_TOLERANCE, 0},
+{207, 3208642560u, 3206964838u, 3208642560u, 0, COPYSIGNF_TOLERANCE, 0},
+{208, 3208642560u, 3206125978u, 3208642560u, 0, COPYSIGNF_TOLERANCE, 0},
+{209, 3208642560u, 3205287117u, 3208642560u, 0, COPYSIGNF_TOLERANCE, 0},
+{210, 3208642560u, 3204448256u, 3208642560u, 0, COPYSIGNF_TOLERANCE, 0},
+{211, 3208642560u, 3202770534u, 3208642560u, 0, COPYSIGNF_TOLERANCE, 0},
+{212, 3208642560u, 3201092813u, 3208642560u, 0, COPYSIGNF_TOLERANCE, 0},
+{213, 3208642560u, 3199415091u, 3208642560u, 0, COPYSIGNF_TOLERANCE, 0},
+{214, 3208642560u, 3197737370u, 3208642560u, 0, COPYSIGNF_TOLERANCE, 0},
+{215, 3208642560u, 3196059648u, 3208642560u, 0, COPYSIGNF_TOLERANCE, 0},
+{216, 3208642560u, 3192704205u, 3208642560u, 0, COPYSIGNF_TOLERANCE, 0},
+{217, 3208642560u, 3189348762u, 3208642560u, 0, COPYSIGNF_TOLERANCE, 0},
+{218, 3208642560u, 3184315597u, 3208642560u, 0, COPYSIGNF_TOLERANCE, 0},
+{219, 3208642560u, 3175926989u, 3208642560u, 0, COPYSIGNF_TOLERANCE, 0},
+{220, 3208642560u, 632815616u, 1061158912u, 0, COPYSIGNF_TOLERANCE, 0},
+{221, 3208642560u, 1028443341u, 1061158912u, 0, COPYSIGNF_TOLERANCE, 0},
+{222, 3208642560u, 1036831949u, 1061158912u, 0, COPYSIGNF_TOLERANCE, 0},
+{223, 3208642560u, 1041865114u, 1061158912u, 0, COPYSIGNF_TOLERANCE, 0},
+{224, 3208642560u, 1045220557u, 1061158912u, 0, COPYSIGNF_TOLERANCE, 0},
+{225, 3208642560u, 1048576000u, 1061158912u, 0, COPYSIGNF_TOLERANCE, 0},
+{226, 3208642560u, 1050253722u, 1061158912u, 0, COPYSIGNF_TOLERANCE, 0},
+{227, 3208642560u, 1051931443u, 1061158912u, 0, COPYSIGNF_TOLERANCE, 0},
+{228, 3208642560u, 1053609165u, 1061158912u, 0, COPYSIGNF_TOLERANCE, 0},
+{229, 3208642560u, 1055286886u, 1061158912u, 0, COPYSIGNF_TOLERANCE, 0},
+{230, 3208642560u, 1056964608u, 1061158912u, 0, COPYSIGNF_TOLERANCE, 0},
+{231, 3208642560u, 1057803469u, 1061158912u, 0, COPYSIGNF_TOLERANCE, 0},
+{232, 3208642560u, 1058642330u, 1061158912u, 0, COPYSIGNF_TOLERANCE, 0},
+{233, 3208642560u, 1059481190u, 1061158912u, 0, COPYSIGNF_TOLERANCE, 0},
+{234, 3208642560u, 1060320051u, 1061158912u, 0, COPYSIGNF_TOLERANCE, 0},
+{235, 3208642560u, 1061158912u, 1061158912u, 0, COPYSIGNF_TOLERANCE, 0},
+{236, 3208642560u, 1061997773u, 1061158912u, 0, COPYSIGNF_TOLERANCE, 0},
+{237, 3208642560u, 1062836634u, 1061158912u, 0, COPYSIGNF_TOLERANCE, 0},
+{238, 3208642560u, 1063675494u, 1061158912u, 0, COPYSIGNF_TOLERANCE, 0},
+{239, 3208642560u, 1064514355u, 1061158912u, 0, COPYSIGNF_TOLERANCE, 0},
+{240, 3207803699u, 3212836864u, 3207803699u, 0, COPYSIGNF_TOLERANCE, 0},
+{241, 3207803699u, 3211998003u, 3207803699u, 0, COPYSIGNF_TOLERANCE, 0},
+{242, 3207803699u, 3211159142u, 3207803699u, 0, COPYSIGNF_TOLERANCE, 0},
+{243, 3207803699u, 3210320282u, 3207803699u, 0, COPYSIGNF_TOLERANCE, 0},
+{244, 3207803699u, 3209481421u, 3207803699u, 0, COPYSIGNF_TOLERANCE, 0},
+{245, 3207803699u, 3208642560u, 3207803699u, 0, COPYSIGNF_TOLERANCE, 0},
+{246, 3207803699u, 3207803699u, 3207803699u, 0, COPYSIGNF_TOLERANCE, 0},
+{247, 3207803699u, 3206964838u, 3207803699u, 0, COPYSIGNF_TOLERANCE, 0},
+{248, 3207803699u, 3206125978u, 3207803699u, 0, COPYSIGNF_TOLERANCE, 0},
+{249, 3207803699u, 3205287117u, 3207803699u, 0, COPYSIGNF_TOLERANCE, 0},
+{250, 3207803699u, 3204448256u, 3207803699u, 0, COPYSIGNF_TOLERANCE, 0},
+{251, 3207803699u, 3202770534u, 3207803699u, 0, COPYSIGNF_TOLERANCE, 0},
+{252, 3207803699u, 3201092813u, 3207803699u, 0, COPYSIGNF_TOLERANCE, 0},
+{253, 3207803699u, 3199415091u, 3207803699u, 0, COPYSIGNF_TOLERANCE, 0},
+{254, 3207803699u, 3197737370u, 3207803699u, 0, COPYSIGNF_TOLERANCE, 0},
+{255, 3207803699u, 3196059648u, 3207803699u, 0, COPYSIGNF_TOLERANCE, 0},
+{256, 3207803699u, 3192704205u, 3207803699u, 0, COPYSIGNF_TOLERANCE, 0},
+{257, 3207803699u, 3189348762u, 3207803699u, 0, COPYSIGNF_TOLERANCE, 0},
+{258, 3207803699u, 3184315597u, 3207803699u, 0, COPYSIGNF_TOLERANCE, 0},
+{259, 3207803699u, 3175926989u, 3207803699u, 0, COPYSIGNF_TOLERANCE, 0},
+{260, 3207803699u, 632815616u, 1060320051u, 0, COPYSIGNF_TOLERANCE, 0},
+{261, 3207803699u, 1028443341u, 1060320051u, 0, COPYSIGNF_TOLERANCE, 0},
+{262, 3207803699u, 1036831949u, 1060320051u, 0, COPYSIGNF_TOLERANCE, 0},
+{263, 3207803699u, 1041865114u, 1060320051u, 0, COPYSIGNF_TOLERANCE, 0},
+{264, 3207803699u, 1045220557u, 1060320051u, 0, COPYSIGNF_TOLERANCE, 0},
+{265, 3207803699u, 1048576000u, 1060320051u, 0, COPYSIGNF_TOLERANCE, 0},
+{266, 3207803699u, 1050253722u, 1060320051u, 0, COPYSIGNF_TOLERANCE, 0},
+{267, 3207803699u, 1051931443u, 1060320051u, 0, COPYSIGNF_TOLERANCE, 0},
+{268, 3207803699u, 1053609165u, 1060320051u, 0, COPYSIGNF_TOLERANCE, 0},
+{269, 3207803699u, 1055286886u, 1060320051u, 0, COPYSIGNF_TOLERANCE, 0},
+{270, 3207803699u, 1056964608u, 1060320051u, 0, COPYSIGNF_TOLERANCE, 0},
+{271, 3207803699u, 1057803469u, 1060320051u, 0, COPYSIGNF_TOLERANCE, 0},
+{272, 3207803699u, 1058642330u, 1060320051u, 0, COPYSIGNF_TOLERANCE, 0},
+{273, 3207803699u, 1059481190u, 1060320051u, 0, COPYSIGNF_TOLERANCE, 0},
+{274, 3207803699u, 1060320051u, 1060320051u, 0, COPYSIGNF_TOLERANCE, 0},
+{275, 3207803699u, 1061158912u, 1060320051u, 0, COPYSIGNF_TOLERANCE, 0},
+{276, 3207803699u, 1061997773u, 1060320051u, 0, COPYSIGNF_TOLERANCE, 0},
+{277, 3207803699u, 1062836634u, 1060320051u, 0, COPYSIGNF_TOLERANCE, 0},
+{278, 3207803699u, 1063675494u, 1060320051u, 0, COPYSIGNF_TOLERANCE, 0},
+{279, 3207803699u, 1064514355u, 1060320051u, 0, COPYSIGNF_TOLERANCE, 0},
+{280, 3206964838u, 3212836864u, 3206964838u, 0, COPYSIGNF_TOLERANCE, 0},
+{281, 3206964838u, 3211998003u, 3206964838u, 0, COPYSIGNF_TOLERANCE, 0},
+{282, 3206964838u, 3211159142u, 3206964838u, 0, COPYSIGNF_TOLERANCE, 0},
+{283, 3206964838u, 3210320282u, 3206964838u, 0, COPYSIGNF_TOLERANCE, 0},
+{284, 3206964838u, 3209481421u, 3206964838u, 0, COPYSIGNF_TOLERANCE, 0},
+{285, 3206964838u, 3208642560u, 3206964838u, 0, COPYSIGNF_TOLERANCE, 0},
+{286, 3206964838u, 3207803699u, 3206964838u, 0, COPYSIGNF_TOLERANCE, 0},
+{287, 3206964838u, 3206964838u, 3206964838u, 0, COPYSIGNF_TOLERANCE, 0},
+{288, 3206964838u, 3206125978u, 3206964838u, 0, COPYSIGNF_TOLERANCE, 0},
+{289, 3206964838u, 3205287117u, 3206964838u, 0, COPYSIGNF_TOLERANCE, 0},
+{290, 3206964838u, 3204448256u, 3206964838u, 0, COPYSIGNF_TOLERANCE, 0},
+{291, 3206964838u, 3202770534u, 3206964838u, 0, COPYSIGNF_TOLERANCE, 0},
+{292, 3206964838u, 3201092813u, 3206964838u, 0, COPYSIGNF_TOLERANCE, 0},
+{293, 3206964838u, 3199415091u, 3206964838u, 0, COPYSIGNF_TOLERANCE, 0},
+{294, 3206964838u, 3197737370u, 3206964838u, 0, COPYSIGNF_TOLERANCE, 0},
+{295, 3206964838u, 3196059648u, 3206964838u, 0, COPYSIGNF_TOLERANCE, 0},
+{296, 3206964838u, 3192704205u, 3206964838u, 0, COPYSIGNF_TOLERANCE, 0},
+{297, 3206964838u, 3189348762u, 3206964838u, 0, COPYSIGNF_TOLERANCE, 0},
+{298, 3206964838u, 3184315597u, 3206964838u, 0, COPYSIGNF_TOLERANCE, 0},
+{299, 3206964838u, 3175926989u, 3206964838u, 0, COPYSIGNF_TOLERANCE, 0},
+{300, 3206964838u, 632815616u, 1059481190u, 0, COPYSIGNF_TOLERANCE, 0},
+{301, 3206964838u, 1028443341u, 1059481190u, 0, COPYSIGNF_TOLERANCE, 0},
+{302, 3206964838u, 1036831949u, 1059481190u, 0, COPYSIGNF_TOLERANCE, 0},
+{303, 3206964838u, 1041865114u, 1059481190u, 0, COPYSIGNF_TOLERANCE, 0},
+{304, 3206964838u, 1045220557u, 1059481190u, 0, COPYSIGNF_TOLERANCE, 0},
+{305, 3206964838u, 1048576000u, 1059481190u, 0, COPYSIGNF_TOLERANCE, 0},
+{306, 3206964838u, 1050253722u, 1059481190u, 0, COPYSIGNF_TOLERANCE, 0},
+{307, 3206964838u, 1051931443u, 1059481190u, 0, COPYSIGNF_TOLERANCE, 0},
+{308, 3206964838u, 1053609165u, 1059481190u, 0, COPYSIGNF_TOLERANCE, 0},
+{309, 3206964838u, 1055286886u, 1059481190u, 0, COPYSIGNF_TOLERANCE, 0},
+{310, 3206964838u, 1056964608u, 1059481190u, 0, COPYSIGNF_TOLERANCE, 0},
+{311, 3206964838u, 1057803469u, 1059481190u, 0, COPYSIGNF_TOLERANCE, 0},
+{312, 3206964838u, 1058642330u, 1059481190u, 0, COPYSIGNF_TOLERANCE, 0},
+{313, 3206964838u, 1059481190u, 1059481190u, 0, COPYSIGNF_TOLERANCE, 0},
+{314, 3206964838u, 1060320051u, 1059481190u, 0, COPYSIGNF_TOLERANCE, 0},
+{315, 3206964838u, 1061158912u, 1059481190u, 0, COPYSIGNF_TOLERANCE, 0},
+{316, 3206964838u, 1061997773u, 1059481190u, 0, COPYSIGNF_TOLERANCE, 0},
+{317, 3206964838u, 1062836634u, 1059481190u, 0, COPYSIGNF_TOLERANCE, 0},
+{318, 3206964838u, 1063675494u, 1059481190u, 0, COPYSIGNF_TOLERANCE, 0},
+{319, 3206964838u, 1064514355u, 1059481190u, 0, COPYSIGNF_TOLERANCE, 0},
+{320, 3206125978u, 3212836864u, 3206125978u, 0, COPYSIGNF_TOLERANCE, 0},
+{321, 3206125978u, 3211998003u, 3206125978u, 0, COPYSIGNF_TOLERANCE, 0},
+{322, 3206125978u, 3211159142u, 3206125978u, 0, COPYSIGNF_TOLERANCE, 0},
+{323, 3206125978u, 3210320282u, 3206125978u, 0, COPYSIGNF_TOLERANCE, 0},
+{324, 3206125978u, 3209481421u, 3206125978u, 0, COPYSIGNF_TOLERANCE, 0},
+{325, 3206125978u, 3208642560u, 3206125978u, 0, COPYSIGNF_TOLERANCE, 0},
+{326, 3206125978u, 3207803699u, 3206125978u, 0, COPYSIGNF_TOLERANCE, 0},
+{327, 3206125978u, 3206964838u, 3206125978u, 0, COPYSIGNF_TOLERANCE, 0},
+{328, 3206125978u, 3206125978u, 3206125978u, 0, COPYSIGNF_TOLERANCE, 0},
+{329, 3206125978u, 3205287117u, 3206125978u, 0, COPYSIGNF_TOLERANCE, 0},
+{330, 3206125978u, 3204448256u, 3206125978u, 0, COPYSIGNF_TOLERANCE, 0},
+{331, 3206125978u, 3202770534u, 3206125978u, 0, COPYSIGNF_TOLERANCE, 0},
+{332, 3206125978u, 3201092813u, 3206125978u, 0, COPYSIGNF_TOLERANCE, 0},
+{333, 3206125978u, 3199415091u, 3206125978u, 0, COPYSIGNF_TOLERANCE, 0},
+{334, 3206125978u, 3197737370u, 3206125978u, 0, COPYSIGNF_TOLERANCE, 0},
+{335, 3206125978u, 3196059648u, 3206125978u, 0, COPYSIGNF_TOLERANCE, 0},
+{336, 3206125978u, 3192704205u, 3206125978u, 0, COPYSIGNF_TOLERANCE, 0},
+{337, 3206125978u, 3189348762u, 3206125978u, 0, COPYSIGNF_TOLERANCE, 0},
+{338, 3206125978u, 3184315597u, 3206125978u, 0, COPYSIGNF_TOLERANCE, 0},
+{339, 3206125978u, 3175926989u, 3206125978u, 0, COPYSIGNF_TOLERANCE, 0},
+{340, 3206125978u, 632815616u, 1058642330u, 0, COPYSIGNF_TOLERANCE, 0},
+{341, 3206125978u, 1028443341u, 1058642330u, 0, COPYSIGNF_TOLERANCE, 0},
+{342, 3206125978u, 1036831949u, 1058642330u, 0, COPYSIGNF_TOLERANCE, 0},
+{343, 3206125978u, 1041865114u, 1058642330u, 0, COPYSIGNF_TOLERANCE, 0},
+{344, 3206125978u, 1045220557u, 1058642330u, 0, COPYSIGNF_TOLERANCE, 0},
+{345, 3206125978u, 1048576000u, 1058642330u, 0, COPYSIGNF_TOLERANCE, 0},
+{346, 3206125978u, 1050253722u, 1058642330u, 0, COPYSIGNF_TOLERANCE, 0},
+{347, 3206125978u, 1051931443u, 1058642330u, 0, COPYSIGNF_TOLERANCE, 0},
+{348, 3206125978u, 1053609165u, 1058642330u, 0, COPYSIGNF_TOLERANCE, 0},
+{349, 3206125978u, 1055286886u, 1058642330u, 0, COPYSIGNF_TOLERANCE, 0},
+{350, 3206125978u, 1056964608u, 1058642330u, 0, COPYSIGNF_TOLERANCE, 0},
+{351, 3206125978u, 1057803469u, 1058642330u, 0, COPYSIGNF_TOLERANCE, 0},
+{352, 3206125978u, 1058642330u, 1058642330u, 0, COPYSIGNF_TOLERANCE, 0},
+{353, 3206125978u, 1059481190u, 1058642330u, 0, COPYSIGNF_TOLERANCE, 0},
+{354, 3206125978u, 1060320051u, 1058642330u, 0, COPYSIGNF_TOLERANCE, 0},
+{355, 3206125978u, 1061158912u, 1058642330u, 0, COPYSIGNF_TOLERANCE, 0},
+{356, 3206125978u, 1061997773u, 1058642330u, 0, COPYSIGNF_TOLERANCE, 0},
+{357, 3206125978u, 1062836634u, 1058642330u, 0, COPYSIGNF_TOLERANCE, 0},
+{358, 3206125978u, 1063675494u, 1058642330u, 0, COPYSIGNF_TOLERANCE, 0},
+{359, 3206125978u, 1064514355u, 1058642330u, 0, COPYSIGNF_TOLERANCE, 0},
+{360, 3205287117u, 3212836864u, 3205287117u, 0, COPYSIGNF_TOLERANCE, 0},
+{361, 3205287117u, 3211998003u, 3205287117u, 0, COPYSIGNF_TOLERANCE, 0},
+{362, 3205287117u, 3211159142u, 3205287117u, 0, COPYSIGNF_TOLERANCE, 0},
+{363, 3205287117u, 3210320282u, 3205287117u, 0, COPYSIGNF_TOLERANCE, 0},
+{364, 3205287117u, 3209481421u, 3205287117u, 0, COPYSIGNF_TOLERANCE, 0},
+{365, 3205287117u, 3208642560u, 3205287117u, 0, COPYSIGNF_TOLERANCE, 0},
+{366, 3205287117u, 3207803699u, 3205287117u, 0, COPYSIGNF_TOLERANCE, 0},
+{367, 3205287117u, 3206964838u, 3205287117u, 0, COPYSIGNF_TOLERANCE, 0},
+{368, 3205287117u, 3206125978u, 3205287117u, 0, COPYSIGNF_TOLERANCE, 0},
+{369, 3205287117u, 3205287117u, 3205287117u, 0, COPYSIGNF_TOLERANCE, 0},
+{370, 3205287117u, 3204448256u, 3205287117u, 0, COPYSIGNF_TOLERANCE, 0},
+{371, 3205287117u, 3202770534u, 3205287117u, 0, COPYSIGNF_TOLERANCE, 0},
+{372, 3205287117u, 3201092813u, 3205287117u, 0, COPYSIGNF_TOLERANCE, 0},
+{373, 3205287117u, 3199415091u, 3205287117u, 0, COPYSIGNF_TOLERANCE, 0},
+{374, 3205287117u, 3197737370u, 3205287117u, 0, COPYSIGNF_TOLERANCE, 0},
+{375, 3205287117u, 3196059648u, 3205287117u, 0, COPYSIGNF_TOLERANCE, 0},
+{376, 3205287117u, 3192704205u, 3205287117u, 0, COPYSIGNF_TOLERANCE, 0},
+{377, 3205287117u, 3189348762u, 3205287117u, 0, COPYSIGNF_TOLERANCE, 0},
+{378, 3205287117u, 3184315597u, 3205287117u, 0, COPYSIGNF_TOLERANCE, 0},
+{379, 3205287117u, 3175926989u, 3205287117u, 0, COPYSIGNF_TOLERANCE, 0},
+{380, 3205287117u, 632815616u, 1057803469u, 0, COPYSIGNF_TOLERANCE, 0},
+{381, 3205287117u, 1028443341u, 1057803469u, 0, COPYSIGNF_TOLERANCE, 0},
+{382, 3205287117u, 1036831949u, 1057803469u, 0, COPYSIGNF_TOLERANCE, 0},
+{383, 3205287117u, 1041865114u, 1057803469u, 0, COPYSIGNF_TOLERANCE, 0},
+{384, 3205287117u, 1045220557u, 1057803469u, 0, COPYSIGNF_TOLERANCE, 0},
+{385, 3205287117u, 1048576000u, 1057803469u, 0, COPYSIGNF_TOLERANCE, 0},
+{386, 3205287117u, 1050253722u, 1057803469u, 0, COPYSIGNF_TOLERANCE, 0},
+{387, 3205287117u, 1051931443u, 1057803469u, 0, COPYSIGNF_TOLERANCE, 0},
+{388, 3205287117u, 1053609165u, 1057803469u, 0, COPYSIGNF_TOLERANCE, 0},
+{389, 3205287117u, 1055286886u, 1057803469u, 0, COPYSIGNF_TOLERANCE, 0},
+{390, 3205287117u, 1056964608u, 1057803469u, 0, COPYSIGNF_TOLERANCE, 0},
+{391, 3205287117u, 1057803469u, 1057803469u, 0, COPYSIGNF_TOLERANCE, 0},
+{392, 3205287117u, 1058642330u, 1057803469u, 0, COPYSIGNF_TOLERANCE, 0},
+{393, 3205287117u, 1059481190u, 1057803469u, 0, COPYSIGNF_TOLERANCE, 0},
+{394, 3205287117u, 1060320051u, 1057803469u, 0, COPYSIGNF_TOLERANCE, 0},
+{395, 3205287117u, 1061158912u, 1057803469u, 0, COPYSIGNF_TOLERANCE, 0},
+{396, 3205287117u, 1061997773u, 1057803469u, 0, COPYSIGNF_TOLERANCE, 0},
+{397, 3205287117u, 1062836634u, 1057803469u, 0, COPYSIGNF_TOLERANCE, 0},
+{398, 3205287117u, 1063675494u, 1057803469u, 0, COPYSIGNF_TOLERANCE, 0},
+{399, 3205287117u, 1064514355u, 1057803469u, 0, COPYSIGNF_TOLERANCE, 0},
+{400, 3204448256u, 3212836864u, 3204448256u, 0, COPYSIGNF_TOLERANCE, 0},
+{401, 3204448256u, 3211998003u, 3204448256u, 0, COPYSIGNF_TOLERANCE, 0},
+{402, 3204448256u, 3211159142u, 3204448256u, 0, COPYSIGNF_TOLERANCE, 0},
+{403, 3204448256u, 3210320282u, 3204448256u, 0, COPYSIGNF_TOLERANCE, 0},
+{404, 3204448256u, 3209481421u, 3204448256u, 0, COPYSIGNF_TOLERANCE, 0},
+{405, 3204448256u, 3208642560u, 3204448256u, 0, COPYSIGNF_TOLERANCE, 0},
+{406, 3204448256u, 3207803699u, 3204448256u, 0, COPYSIGNF_TOLERANCE, 0},
+{407, 3204448256u, 3206964838u, 3204448256u, 0, COPYSIGNF_TOLERANCE, 0},
+{408, 3204448256u, 3206125978u, 3204448256u, 0, COPYSIGNF_TOLERANCE, 0},
+{409, 3204448256u, 3205287117u, 3204448256u, 0, COPYSIGNF_TOLERANCE, 0},
+{410, 3204448256u, 3204448256u, 3204448256u, 0, COPYSIGNF_TOLERANCE, 0},
+{411, 3204448256u, 3202770534u, 3204448256u, 0, COPYSIGNF_TOLERANCE, 0},
+{412, 3204448256u, 3201092813u, 3204448256u, 0, COPYSIGNF_TOLERANCE, 0},
+{413, 3204448256u, 3199415091u, 3204448256u, 0, COPYSIGNF_TOLERANCE, 0},
+{414, 3204448256u, 3197737370u, 3204448256u, 0, COPYSIGNF_TOLERANCE, 0},
+{415, 3204448256u, 3196059648u, 3204448256u, 0, COPYSIGNF_TOLERANCE, 0},
+{416, 3204448256u, 3192704205u, 3204448256u, 0, COPYSIGNF_TOLERANCE, 0},
+{417, 3204448256u, 3189348762u, 3204448256u, 0, COPYSIGNF_TOLERANCE, 0},
+{418, 3204448256u, 3184315597u, 3204448256u, 0, COPYSIGNF_TOLERANCE, 0},
+{419, 3204448256u, 3175926989u, 3204448256u, 0, COPYSIGNF_TOLERANCE, 0},
+{420, 3204448256u, 632815616u, 1056964608u, 0, COPYSIGNF_TOLERANCE, 0},
+{421, 3204448256u, 1028443341u, 1056964608u, 0, COPYSIGNF_TOLERANCE, 0},
+{422, 3204448256u, 1036831949u, 1056964608u, 0, COPYSIGNF_TOLERANCE, 0},
+{423, 3204448256u, 1041865114u, 1056964608u, 0, COPYSIGNF_TOLERANCE, 0},
+{424, 3204448256u, 1045220557u, 1056964608u, 0, COPYSIGNF_TOLERANCE, 0},
+{425, 3204448256u, 1048576000u, 1056964608u, 0, COPYSIGNF_TOLERANCE, 0},
+{426, 3204448256u, 1050253722u, 1056964608u, 0, COPYSIGNF_TOLERANCE, 0},
+{427, 3204448256u, 1051931443u, 1056964608u, 0, COPYSIGNF_TOLERANCE, 0},
+{428, 3204448256u, 1053609165u, 1056964608u, 0, COPYSIGNF_TOLERANCE, 0},
+{429, 3204448256u, 1055286886u, 1056964608u, 0, COPYSIGNF_TOLERANCE, 0},
+{430, 3204448256u, 1056964608u, 1056964608u, 0, COPYSIGNF_TOLERANCE, 0},
+{431, 3204448256u, 1057803469u, 1056964608u, 0, COPYSIGNF_TOLERANCE, 0},
+{432, 3204448256u, 1058642330u, 1056964608u, 0, COPYSIGNF_TOLERANCE, 0},
+{433, 3204448256u, 1059481190u, 1056964608u, 0, COPYSIGNF_TOLERANCE, 0},
+{434, 3204448256u, 1060320051u, 1056964608u, 0, COPYSIGNF_TOLERANCE, 0},
+{435, 3204448256u, 1061158912u, 1056964608u, 0, COPYSIGNF_TOLERANCE, 0},
+{436, 3204448256u, 1061997773u, 1056964608u, 0, COPYSIGNF_TOLERANCE, 0},
+{437, 3204448256u, 1062836634u, 1056964608u, 0, COPYSIGNF_TOLERANCE, 0},
+{438, 3204448256u, 1063675494u, 1056964608u, 0, COPYSIGNF_TOLERANCE, 0},
+{439, 3204448256u, 1064514355u, 1056964608u, 0, COPYSIGNF_TOLERANCE, 0},
+{440, 3202770534u, 3212836864u, 3202770534u, 0, COPYSIGNF_TOLERANCE, 0},
+{441, 3202770534u, 3211998003u, 3202770534u, 0, COPYSIGNF_TOLERANCE, 0},
+{442, 3202770534u, 3211159142u, 3202770534u, 0, COPYSIGNF_TOLERANCE, 0},
+{443, 3202770534u, 3210320282u, 3202770534u, 0, COPYSIGNF_TOLERANCE, 0},
+{444, 3202770534u, 3209481421u, 3202770534u, 0, COPYSIGNF_TOLERANCE, 0},
+{445, 3202770534u, 3208642560u, 3202770534u, 0, COPYSIGNF_TOLERANCE, 0},
+{446, 3202770534u, 3207803699u, 3202770534u, 0, COPYSIGNF_TOLERANCE, 0},
+{447, 3202770534u, 3206964838u, 3202770534u, 0, COPYSIGNF_TOLERANCE, 0},
+{448, 3202770534u, 3206125978u, 3202770534u, 0, COPYSIGNF_TOLERANCE, 0},
+{449, 3202770534u, 3205287117u, 3202770534u, 0, COPYSIGNF_TOLERANCE, 0},
+{450, 3202770534u, 3204448256u, 3202770534u, 0, COPYSIGNF_TOLERANCE, 0},
+{451, 3202770534u, 3202770534u, 3202770534u, 0, COPYSIGNF_TOLERANCE, 0},
+{452, 3202770534u, 3201092813u, 3202770534u, 0, COPYSIGNF_TOLERANCE, 0},
+{453, 3202770534u, 3199415091u, 3202770534u, 0, COPYSIGNF_TOLERANCE, 0},
+{454, 3202770534u, 3197737370u, 3202770534u, 0, COPYSIGNF_TOLERANCE, 0},
+{455, 3202770534u, 3196059648u, 3202770534u, 0, COPYSIGNF_TOLERANCE, 0},
+{456, 3202770534u, 3192704205u, 3202770534u, 0, COPYSIGNF_TOLERANCE, 0},
+{457, 3202770534u, 3189348762u, 3202770534u, 0, COPYSIGNF_TOLERANCE, 0},
+{458, 3202770534u, 3184315597u, 3202770534u, 0, COPYSIGNF_TOLERANCE, 0},
+{459, 3202770534u, 3175926989u, 3202770534u, 0, COPYSIGNF_TOLERANCE, 0},
+{460, 3202770534u, 632815616u, 1055286886u, 0, COPYSIGNF_TOLERANCE, 0},
+{461, 3202770534u, 1028443341u, 1055286886u, 0, COPYSIGNF_TOLERANCE, 0},
+{462, 3202770534u, 1036831949u, 1055286886u, 0, COPYSIGNF_TOLERANCE, 0},
+{463, 3202770534u, 1041865114u, 1055286886u, 0, COPYSIGNF_TOLERANCE, 0},
+{464, 3202770534u, 1045220557u, 1055286886u, 0, COPYSIGNF_TOLERANCE, 0},
+{465, 3202770534u, 1048576000u, 1055286886u, 0, COPYSIGNF_TOLERANCE, 0},
+{466, 3202770534u, 1050253722u, 1055286886u, 0, COPYSIGNF_TOLERANCE, 0},
+{467, 3202770534u, 1051931443u, 1055286886u, 0, COPYSIGNF_TOLERANCE, 0},
+{468, 3202770534u, 1053609165u, 1055286886u, 0, COPYSIGNF_TOLERANCE, 0},
+{469, 3202770534u, 1055286886u, 1055286886u, 0, COPYSIGNF_TOLERANCE, 0},
+{470, 3202770534u, 1056964608u, 1055286886u, 0, COPYSIGNF_TOLERANCE, 0},
+{471, 3202770534u, 1057803469u, 1055286886u, 0, COPYSIGNF_TOLERANCE, 0},
+{472, 3202770534u, 1058642330u, 1055286886u, 0, COPYSIGNF_TOLERANCE, 0},
+{473, 3202770534u, 1059481190u, 1055286886u, 0, COPYSIGNF_TOLERANCE, 0},
+{474, 3202770534u, 1060320051u, 1055286886u, 0, COPYSIGNF_TOLERANCE, 0},
+{475, 3202770534u, 1061158912u, 1055286886u, 0, COPYSIGNF_TOLERANCE, 0},
+{476, 3202770534u, 1061997773u, 1055286886u, 0, COPYSIGNF_TOLERANCE, 0},
+{477, 3202770534u, 1062836634u, 1055286886u, 0, COPYSIGNF_TOLERANCE, 0},
+{478, 3202770534u, 1063675494u, 1055286886u, 0, COPYSIGNF_TOLERANCE, 0},
+{479, 3202770534u, 1064514355u, 1055286886u, 0, COPYSIGNF_TOLERANCE, 0},
+{480, 3201092813u, 3212836864u, 3201092813u, 0, COPYSIGNF_TOLERANCE, 0},
+{481, 3201092813u, 3211998003u, 3201092813u, 0, COPYSIGNF_TOLERANCE, 0},
+{482, 3201092813u, 3211159142u, 3201092813u, 0, COPYSIGNF_TOLERANCE, 0},
+{483, 3201092813u, 3210320282u, 3201092813u, 0, COPYSIGNF_TOLERANCE, 0},
+{484, 3201092813u, 3209481421u, 3201092813u, 0, COPYSIGNF_TOLERANCE, 0},
+{485, 3201092813u, 3208642560u, 3201092813u, 0, COPYSIGNF_TOLERANCE, 0},
+{486, 3201092813u, 3207803699u, 3201092813u, 0, COPYSIGNF_TOLERANCE, 0},
+{487, 3201092813u, 3206964838u, 3201092813u, 0, COPYSIGNF_TOLERANCE, 0},
+{488, 3201092813u, 3206125978u, 3201092813u, 0, COPYSIGNF_TOLERANCE, 0},
+{489, 3201092813u, 3205287117u, 3201092813u, 0, COPYSIGNF_TOLERANCE, 0},
+{490, 3201092813u, 3204448256u, 3201092813u, 0, COPYSIGNF_TOLERANCE, 0},
+{491, 3201092813u, 3202770534u, 3201092813u, 0, COPYSIGNF_TOLERANCE, 0},
+{492, 3201092813u, 3201092813u, 3201092813u, 0, COPYSIGNF_TOLERANCE, 0},
+{493, 3201092813u, 3199415091u, 3201092813u, 0, COPYSIGNF_TOLERANCE, 0},
+{494, 3201092813u, 3197737370u, 3201092813u, 0, COPYSIGNF_TOLERANCE, 0},
+{495, 3201092813u, 3196059648u, 3201092813u, 0, COPYSIGNF_TOLERANCE, 0},
+{496, 3201092813u, 3192704205u, 3201092813u, 0, COPYSIGNF_TOLERANCE, 0},
+{497, 3201092813u, 3189348762u, 3201092813u, 0, COPYSIGNF_TOLERANCE, 0},
+{498, 3201092813u, 3184315597u, 3201092813u, 0, COPYSIGNF_TOLERANCE, 0},
+{499, 3201092813u, 3175926989u, 3201092813u, 0, COPYSIGNF_TOLERANCE, 0},
+{500, 3201092813u, 632815616u, 1053609165u, 0, COPYSIGNF_TOLERANCE, 0},
+{501, 3201092813u, 1028443341u, 1053609165u, 0, COPYSIGNF_TOLERANCE, 0},
+{502, 3201092813u, 1036831949u, 1053609165u, 0, COPYSIGNF_TOLERANCE, 0},
+{503, 3201092813u, 1041865114u, 1053609165u, 0, COPYSIGNF_TOLERANCE, 0},
+{504, 3201092813u, 1045220557u, 1053609165u, 0, COPYSIGNF_TOLERANCE, 0},
+{505, 3201092813u, 1048576000u, 1053609165u, 0, COPYSIGNF_TOLERANCE, 0},
+{506, 3201092813u, 1050253722u, 1053609165u, 0, COPYSIGNF_TOLERANCE, 0},
+{507, 3201092813u, 1051931443u, 1053609165u, 0, COPYSIGNF_TOLERANCE, 0},
+{508, 3201092813u, 1053609165u, 1053609165u, 0, COPYSIGNF_TOLERANCE, 0},
+{509, 3201092813u, 1055286886u, 1053609165u, 0, COPYSIGNF_TOLERANCE, 0},
+{510, 3201092813u, 1056964608u, 1053609165u, 0, COPYSIGNF_TOLERANCE, 0},
+{511, 3201092813u, 1057803469u, 1053609165u, 0, COPYSIGNF_TOLERANCE, 0},
+{512, 3201092813u, 1058642330u, 1053609165u, 0, COPYSIGNF_TOLERANCE, 0},
+{513, 3201092813u, 1059481190u, 1053609165u, 0, COPYSIGNF_TOLERANCE, 0},
+{514, 3201092813u, 1060320051u, 1053609165u, 0, COPYSIGNF_TOLERANCE, 0},
+{515, 3201092813u, 1061158912u, 1053609165u, 0, COPYSIGNF_TOLERANCE, 0},
+{516, 3201092813u, 1061997773u, 1053609165u, 0, COPYSIGNF_TOLERANCE, 0},
+{517, 3201092813u, 1062836634u, 1053609165u, 0, COPYSIGNF_TOLERANCE, 0},
+{518, 3201092813u, 1063675494u, 1053609165u, 0, COPYSIGNF_TOLERANCE, 0},
+{519, 3201092813u, 1064514355u, 1053609165u, 0, COPYSIGNF_TOLERANCE, 0},
+{520, 3199415091u, 3212836864u, 3199415091u, 0, COPYSIGNF_TOLERANCE, 0},
+{521, 3199415091u, 3211998003u, 3199415091u, 0, COPYSIGNF_TOLERANCE, 0},
+{522, 3199415091u, 3211159142u, 3199415091u, 0, COPYSIGNF_TOLERANCE, 0},
+{523, 3199415091u, 3210320282u, 3199415091u, 0, COPYSIGNF_TOLERANCE, 0},
+{524, 3199415091u, 3209481421u, 3199415091u, 0, COPYSIGNF_TOLERANCE, 0},
+{525, 3199415091u, 3208642560u, 3199415091u, 0, COPYSIGNF_TOLERANCE, 0},
+{526, 3199415091u, 3207803699u, 3199415091u, 0, COPYSIGNF_TOLERANCE, 0},
+{527, 3199415091u, 3206964838u, 3199415091u, 0, COPYSIGNF_TOLERANCE, 0},
+{528, 3199415091u, 3206125978u, 3199415091u, 0, COPYSIGNF_TOLERANCE, 0},
+{529, 3199415091u, 3205287117u, 3199415091u, 0, COPYSIGNF_TOLERANCE, 0},
+{530, 3199415091u, 3204448256u, 3199415091u, 0, COPYSIGNF_TOLERANCE, 0},
+{531, 3199415091u, 3202770534u, 3199415091u, 0, COPYSIGNF_TOLERANCE, 0},
+{532, 3199415091u, 3201092813u, 3199415091u, 0, COPYSIGNF_TOLERANCE, 0},
+{533, 3199415091u, 3199415091u, 3199415091u, 0, COPYSIGNF_TOLERANCE, 0},
+{534, 3199415091u, 3197737370u, 3199415091u, 0, COPYSIGNF_TOLERANCE, 0},
+{535, 3199415091u, 3196059648u, 3199415091u, 0, COPYSIGNF_TOLERANCE, 0},
+{536, 3199415091u, 3192704205u, 3199415091u, 0, COPYSIGNF_TOLERANCE, 0},
+{537, 3199415091u, 3189348762u, 3199415091u, 0, COPYSIGNF_TOLERANCE, 0},
+{538, 3199415091u, 3184315597u, 3199415091u, 0, COPYSIGNF_TOLERANCE, 0},
+{539, 3199415091u, 3175926989u, 3199415091u, 0, COPYSIGNF_TOLERANCE, 0},
+{540, 3199415091u, 632815616u, 1051931443u, 0, COPYSIGNF_TOLERANCE, 0},
+{541, 3199415091u, 1028443341u, 1051931443u, 0, COPYSIGNF_TOLERANCE, 0},
+{542, 3199415091u, 1036831949u, 1051931443u, 0, COPYSIGNF_TOLERANCE, 0},
+{543, 3199415091u, 1041865114u, 1051931443u, 0, COPYSIGNF_TOLERANCE, 0},
+{544, 3199415091u, 1045220557u, 1051931443u, 0, COPYSIGNF_TOLERANCE, 0},
+{545, 3199415091u, 1048576000u, 1051931443u, 0, COPYSIGNF_TOLERANCE, 0},
+{546, 3199415091u, 1050253722u, 1051931443u, 0, COPYSIGNF_TOLERANCE, 0},
+{547, 3199415091u, 1051931443u, 1051931443u, 0, COPYSIGNF_TOLERANCE, 0},
+{548, 3199415091u, 1053609165u, 1051931443u, 0, COPYSIGNF_TOLERANCE, 0},
+{549, 3199415091u, 1055286886u, 1051931443u, 0, COPYSIGNF_TOLERANCE, 0},
+{550, 3199415091u, 1056964608u, 1051931443u, 0, COPYSIGNF_TOLERANCE, 0},
+{551, 3199415091u, 1057803469u, 1051931443u, 0, COPYSIGNF_TOLERANCE, 0},
+{552, 3199415091u, 1058642330u, 1051931443u, 0, COPYSIGNF_TOLERANCE, 0},
+{553, 3199415091u, 1059481190u, 1051931443u, 0, COPYSIGNF_TOLERANCE, 0},
+{554, 3199415091u, 1060320051u, 1051931443u, 0, COPYSIGNF_TOLERANCE, 0},
+{555, 3199415091u, 1061158912u, 1051931443u, 0, COPYSIGNF_TOLERANCE, 0},
+{556, 3199415091u, 1061997773u, 1051931443u, 0, COPYSIGNF_TOLERANCE, 0},
+{557, 3199415091u, 1062836634u, 1051931443u, 0, COPYSIGNF_TOLERANCE, 0},
+{558, 3199415091u, 1063675494u, 1051931443u, 0, COPYSIGNF_TOLERANCE, 0},
+{559, 3199415091u, 1064514355u, 1051931443u, 0, COPYSIGNF_TOLERANCE, 0},
+{560, 3197737370u, 3212836864u, 3197737370u, 0, COPYSIGNF_TOLERANCE, 0},
+{561, 3197737370u, 3211998003u, 3197737370u, 0, COPYSIGNF_TOLERANCE, 0},
+{562, 3197737370u, 3211159142u, 3197737370u, 0, COPYSIGNF_TOLERANCE, 0},
+{563, 3197737370u, 3210320282u, 3197737370u, 0, COPYSIGNF_TOLERANCE, 0},
+{564, 3197737370u, 3209481421u, 3197737370u, 0, COPYSIGNF_TOLERANCE, 0},
+{565, 3197737370u, 3208642560u, 3197737370u, 0, COPYSIGNF_TOLERANCE, 0},
+{566, 3197737370u, 3207803699u, 3197737370u, 0, COPYSIGNF_TOLERANCE, 0},
+{567, 3197737370u, 3206964838u, 3197737370u, 0, COPYSIGNF_TOLERANCE, 0},
+{568, 3197737370u, 3206125978u, 3197737370u, 0, COPYSIGNF_TOLERANCE, 0},
+{569, 3197737370u, 3205287117u, 3197737370u, 0, COPYSIGNF_TOLERANCE, 0},
+{570, 3197737370u, 3204448256u, 3197737370u, 0, COPYSIGNF_TOLERANCE, 0},
+{571, 3197737370u, 3202770534u, 3197737370u, 0, COPYSIGNF_TOLERANCE, 0},
+{572, 3197737370u, 3201092813u, 3197737370u, 0, COPYSIGNF_TOLERANCE, 0},
+{573, 3197737370u, 3199415091u, 3197737370u, 0, COPYSIGNF_TOLERANCE, 0},
+{574, 3197737370u, 3197737370u, 3197737370u, 0, COPYSIGNF_TOLERANCE, 0},
+{575, 3197737370u, 3196059648u, 3197737370u, 0, COPYSIGNF_TOLERANCE, 0},
+{576, 3197737370u, 3192704205u, 3197737370u, 0, COPYSIGNF_TOLERANCE, 0},
+{577, 3197737370u, 3189348762u, 3197737370u, 0, COPYSIGNF_TOLERANCE, 0},
+{578, 3197737370u, 3184315597u, 3197737370u, 0, COPYSIGNF_TOLERANCE, 0},
+{579, 3197737370u, 3175926989u, 3197737370u, 0, COPYSIGNF_TOLERANCE, 0},
+{580, 3197737370u, 632815616u, 1050253722u, 0, COPYSIGNF_TOLERANCE, 0},
+{581, 3197737370u, 1028443341u, 1050253722u, 0, COPYSIGNF_TOLERANCE, 0},
+{582, 3197737370u, 1036831949u, 1050253722u, 0, COPYSIGNF_TOLERANCE, 0},
+{583, 3197737370u, 1041865114u, 1050253722u, 0, COPYSIGNF_TOLERANCE, 0},
+{584, 3197737370u, 1045220557u, 1050253722u, 0, COPYSIGNF_TOLERANCE, 0},
+{585, 3197737370u, 1048576000u, 1050253722u, 0, COPYSIGNF_TOLERANCE, 0},
+{586, 3197737370u, 1050253722u, 1050253722u, 0, COPYSIGNF_TOLERANCE, 0},
+{587, 3197737370u, 1051931443u, 1050253722u, 0, COPYSIGNF_TOLERANCE, 0},
+{588, 3197737370u, 1053609165u, 1050253722u, 0, COPYSIGNF_TOLERANCE, 0},
+{589, 3197737370u, 1055286886u, 1050253722u, 0, COPYSIGNF_TOLERANCE, 0},
+{590, 3197737370u, 1056964608u, 1050253722u, 0, COPYSIGNF_TOLERANCE, 0},
+{591, 3197737370u, 1057803469u, 1050253722u, 0, COPYSIGNF_TOLERANCE, 0},
+{592, 3197737370u, 1058642330u, 1050253722u, 0, COPYSIGNF_TOLERANCE, 0},
+{593, 3197737370u, 1059481190u, 1050253722u, 0, COPYSIGNF_TOLERANCE, 0},
+{594, 3197737370u, 1060320051u, 1050253722u, 0, COPYSIGNF_TOLERANCE, 0},
+{595, 3197737370u, 1061158912u, 1050253722u, 0, COPYSIGNF_TOLERANCE, 0},
+{596, 3197737370u, 1061997773u, 1050253722u, 0, COPYSIGNF_TOLERANCE, 0},
+{597, 3197737370u, 1062836634u, 1050253722u, 0, COPYSIGNF_TOLERANCE, 0},
+{598, 3197737370u, 1063675494u, 1050253722u, 0, COPYSIGNF_TOLERANCE, 0},
+{599, 3197737370u, 1064514355u, 1050253722u, 0, COPYSIGNF_TOLERANCE, 0},
+{600, 3196059648u, 3212836864u, 3196059648u, 0, COPYSIGNF_TOLERANCE, 0},
+{601, 3196059648u, 3211998003u, 3196059648u, 0, COPYSIGNF_TOLERANCE, 0},
+{602, 3196059648u, 3211159142u, 3196059648u, 0, COPYSIGNF_TOLERANCE, 0},
+{603, 3196059648u, 3210320282u, 3196059648u, 0, COPYSIGNF_TOLERANCE, 0},
+{604, 3196059648u, 3209481421u, 3196059648u, 0, COPYSIGNF_TOLERANCE, 0},
+{605, 3196059648u, 3208642560u, 3196059648u, 0, COPYSIGNF_TOLERANCE, 0},
+{606, 3196059648u, 3207803699u, 3196059648u, 0, COPYSIGNF_TOLERANCE, 0},
+{607, 3196059648u, 3206964838u, 3196059648u, 0, COPYSIGNF_TOLERANCE, 0},
+{608, 3196059648u, 3206125978u, 3196059648u, 0, COPYSIGNF_TOLERANCE, 0},
+{609, 3196059648u, 3205287117u, 3196059648u, 0, COPYSIGNF_TOLERANCE, 0},
+{610, 3196059648u, 3204448256u, 3196059648u, 0, COPYSIGNF_TOLERANCE, 0},
+{611, 3196059648u, 3202770534u, 3196059648u, 0, COPYSIGNF_TOLERANCE, 0},
+{612, 3196059648u, 3201092813u, 3196059648u, 0, COPYSIGNF_TOLERANCE, 0},
+{613, 3196059648u, 3199415091u, 3196059648u, 0, COPYSIGNF_TOLERANCE, 0},
+{614, 3196059648u, 3197737370u, 3196059648u, 0, COPYSIGNF_TOLERANCE, 0},
+{615, 3196059648u, 3196059648u, 3196059648u, 0, COPYSIGNF_TOLERANCE, 0},
+{616, 3196059648u, 3192704205u, 3196059648u, 0, COPYSIGNF_TOLERANCE, 0},
+{617, 3196059648u, 3189348762u, 3196059648u, 0, COPYSIGNF_TOLERANCE, 0},
+{618, 3196059648u, 3184315597u, 3196059648u, 0, COPYSIGNF_TOLERANCE, 0},
+{619, 3196059648u, 3175926989u, 3196059648u, 0, COPYSIGNF_TOLERANCE, 0},
+{620, 3196059648u, 632815616u, 1048576000u, 0, COPYSIGNF_TOLERANCE, 0},
+{621, 3196059648u, 1028443341u, 1048576000u, 0, COPYSIGNF_TOLERANCE, 0},
+{622, 3196059648u, 1036831949u, 1048576000u, 0, COPYSIGNF_TOLERANCE, 0},
+{623, 3196059648u, 1041865114u, 1048576000u, 0, COPYSIGNF_TOLERANCE, 0},
+{624, 3196059648u, 1045220557u, 1048576000u, 0, COPYSIGNF_TOLERANCE, 0},
+{625, 3196059648u, 1048576000u, 1048576000u, 0, COPYSIGNF_TOLERANCE, 0},
+{626, 3196059648u, 1050253722u, 1048576000u, 0, COPYSIGNF_TOLERANCE, 0},
+{627, 3196059648u, 1051931443u, 1048576000u, 0, COPYSIGNF_TOLERANCE, 0},
+{628, 3196059648u, 1053609165u, 1048576000u, 0, COPYSIGNF_TOLERANCE, 0},
+{629, 3196059648u, 1055286886u, 1048576000u, 0, COPYSIGNF_TOLERANCE, 0},
+{630, 3196059648u, 1056964608u, 1048576000u, 0, COPYSIGNF_TOLERANCE, 0},
+{631, 3196059648u, 1057803469u, 1048576000u, 0, COPYSIGNF_TOLERANCE, 0},
+{632, 3196059648u, 1058642330u, 1048576000u, 0, COPYSIGNF_TOLERANCE, 0},
+{633, 3196059648u, 1059481190u, 1048576000u, 0, COPYSIGNF_TOLERANCE, 0},
+{634, 3196059648u, 1060320051u, 1048576000u, 0, COPYSIGNF_TOLERANCE, 0},
+{635, 3196059648u, 1061158912u, 1048576000u, 0, COPYSIGNF_TOLERANCE, 0},
+{636, 3196059648u, 1061997773u, 1048576000u, 0, COPYSIGNF_TOLERANCE, 0},
+{637, 3196059648u, 1062836634u, 1048576000u, 0, COPYSIGNF_TOLERANCE, 0},
+{638, 3196059648u, 1063675494u, 1048576000u, 0, COPYSIGNF_TOLERANCE, 0},
+{639, 3196059648u, 1064514355u, 1048576000u, 0, COPYSIGNF_TOLERANCE, 0},
+{640, 3192704205u, 3212836864u, 3192704205u, 0, COPYSIGNF_TOLERANCE, 0},
+{641, 3192704205u, 3211998003u, 3192704205u, 0, COPYSIGNF_TOLERANCE, 0},
+{642, 3192704205u, 3211159142u, 3192704205u, 0, COPYSIGNF_TOLERANCE, 0},
+{643, 3192704205u, 3210320282u, 3192704205u, 0, COPYSIGNF_TOLERANCE, 0},
+{644, 3192704205u, 3209481421u, 3192704205u, 0, COPYSIGNF_TOLERANCE, 0},
+{645, 3192704205u, 3208642560u, 3192704205u, 0, COPYSIGNF_TOLERANCE, 0},
+{646, 3192704205u, 3207803699u, 3192704205u, 0, COPYSIGNF_TOLERANCE, 0},
+{647, 3192704205u, 3206964838u, 3192704205u, 0, COPYSIGNF_TOLERANCE, 0},
+{648, 3192704205u, 3206125978u, 3192704205u, 0, COPYSIGNF_TOLERANCE, 0},
+{649, 3192704205u, 3205287117u, 3192704205u, 0, COPYSIGNF_TOLERANCE, 0},
+{650, 3192704205u, 3204448256u, 3192704205u, 0, COPYSIGNF_TOLERANCE, 0},
+{651, 3192704205u, 3202770534u, 3192704205u, 0, COPYSIGNF_TOLERANCE, 0},
+{652, 3192704205u, 3201092813u, 3192704205u, 0, COPYSIGNF_TOLERANCE, 0},
+{653, 3192704205u, 3199415091u, 3192704205u, 0, COPYSIGNF_TOLERANCE, 0},
+{654, 3192704205u, 3197737370u, 3192704205u, 0, COPYSIGNF_TOLERANCE, 0},
+{655, 3192704205u, 3196059648u, 3192704205u, 0, COPYSIGNF_TOLERANCE, 0},
+{656, 3192704205u, 3192704205u, 3192704205u, 0, COPYSIGNF_TOLERANCE, 0},
+{657, 3192704205u, 3189348762u, 3192704205u, 0, COPYSIGNF_TOLERANCE, 0},
+{658, 3192704205u, 3184315597u, 3192704205u, 0, COPYSIGNF_TOLERANCE, 0},
+{659, 3192704205u, 3175926989u, 3192704205u, 0, COPYSIGNF_TOLERANCE, 0},
+{660, 3192704205u, 632815616u, 1045220557u, 0, COPYSIGNF_TOLERANCE, 0},
+{661, 3192704205u, 1028443341u, 1045220557u, 0, COPYSIGNF_TOLERANCE, 0},
+{662, 3192704205u, 1036831949u, 1045220557u, 0, COPYSIGNF_TOLERANCE, 0},
+{663, 3192704205u, 1041865114u, 1045220557u, 0, COPYSIGNF_TOLERANCE, 0},
+{664, 3192704205u, 1045220557u, 1045220557u, 0, COPYSIGNF_TOLERANCE, 0},
+{665, 3192704205u, 1048576000u, 1045220557u, 0, COPYSIGNF_TOLERANCE, 0},
+{666, 3192704205u, 1050253722u, 1045220557u, 0, COPYSIGNF_TOLERANCE, 0},
+{667, 3192704205u, 1051931443u, 1045220557u, 0, COPYSIGNF_TOLERANCE, 0},
+{668, 3192704205u, 1053609165u, 1045220557u, 0, COPYSIGNF_TOLERANCE, 0},
+{669, 3192704205u, 1055286886u, 1045220557u, 0, COPYSIGNF_TOLERANCE, 0},
+{670, 3192704205u, 1056964608u, 1045220557u, 0, COPYSIGNF_TOLERANCE, 0},
+{671, 3192704205u, 1057803469u, 1045220557u, 0, COPYSIGNF_TOLERANCE, 0},
+{672, 3192704205u, 1058642330u, 1045220557u, 0, COPYSIGNF_TOLERANCE, 0},
+{673, 3192704205u, 1059481190u, 1045220557u, 0, COPYSIGNF_TOLERANCE, 0},
+{674, 3192704205u, 1060320051u, 1045220557u, 0, COPYSIGNF_TOLERANCE, 0},
+{675, 3192704205u, 1061158912u, 1045220557u, 0, COPYSIGNF_TOLERANCE, 0},
+{676, 3192704205u, 1061997773u, 1045220557u, 0, COPYSIGNF_TOLERANCE, 0},
+{677, 3192704205u, 1062836634u, 1045220557u, 0, COPYSIGNF_TOLERANCE, 0},
+{678, 3192704205u, 1063675494u, 1045220557u, 0, COPYSIGNF_TOLERANCE, 0},
+{679, 3192704205u, 1064514355u, 1045220557u, 0, COPYSIGNF_TOLERANCE, 0},
+{680, 3189348762u, 3212836864u, 3189348762u, 0, COPYSIGNF_TOLERANCE, 0},
+{681, 3189348762u, 3211998003u, 3189348762u, 0, COPYSIGNF_TOLERANCE, 0},
+{682, 3189348762u, 3211159142u, 3189348762u, 0, COPYSIGNF_TOLERANCE, 0},
+{683, 3189348762u, 3210320282u, 3189348762u, 0, COPYSIGNF_TOLERANCE, 0},
+{684, 3189348762u, 3209481421u, 3189348762u, 0, COPYSIGNF_TOLERANCE, 0},
+{685, 3189348762u, 3208642560u, 3189348762u, 0, COPYSIGNF_TOLERANCE, 0},
+{686, 3189348762u, 3207803699u, 3189348762u, 0, COPYSIGNF_TOLERANCE, 0},
+{687, 3189348762u, 3206964838u, 3189348762u, 0, COPYSIGNF_TOLERANCE, 0},
+{688, 3189348762u, 3206125978u, 3189348762u, 0, COPYSIGNF_TOLERANCE, 0},
+{689, 3189348762u, 3205287117u, 3189348762u, 0, COPYSIGNF_TOLERANCE, 0},
+{690, 3189348762u, 3204448256u, 3189348762u, 0, COPYSIGNF_TOLERANCE, 0},
+{691, 3189348762u, 3202770534u, 3189348762u, 0, COPYSIGNF_TOLERANCE, 0},
+{692, 3189348762u, 3201092813u, 3189348762u, 0, COPYSIGNF_TOLERANCE, 0},
+{693, 3189348762u, 3199415091u, 3189348762u, 0, COPYSIGNF_TOLERANCE, 0},
+{694, 3189348762u, 3197737370u, 3189348762u, 0, COPYSIGNF_TOLERANCE, 0},
+{695, 3189348762u, 3196059648u, 3189348762u, 0, COPYSIGNF_TOLERANCE, 0},
+{696, 3189348762u, 3192704205u, 3189348762u, 0, COPYSIGNF_TOLERANCE, 0},
+{697, 3189348762u, 3189348762u, 3189348762u, 0, COPYSIGNF_TOLERANCE, 0},
+{698, 3189348762u, 3184315597u, 3189348762u, 0, COPYSIGNF_TOLERANCE, 0},
+{699, 3189348762u, 3175926989u, 3189348762u, 0, COPYSIGNF_TOLERANCE, 0},
+{700, 3189348762u, 632815616u, 1041865114u, 0, COPYSIGNF_TOLERANCE, 0},
+{701, 3189348762u, 1028443341u, 1041865114u, 0, COPYSIGNF_TOLERANCE, 0},
+{702, 3189348762u, 1036831949u, 1041865114u, 0, COPYSIGNF_TOLERANCE, 0},
+{703, 3189348762u, 1041865114u, 1041865114u, 0, COPYSIGNF_TOLERANCE, 0},
+{704, 3189348762u, 1045220557u, 1041865114u, 0, COPYSIGNF_TOLERANCE, 0},
+{705, 3189348762u, 1048576000u, 1041865114u, 0, COPYSIGNF_TOLERANCE, 0},
+{706, 3189348762u, 1050253722u, 1041865114u, 0, COPYSIGNF_TOLERANCE, 0},
+{707, 3189348762u, 1051931443u, 1041865114u, 0, COPYSIGNF_TOLERANCE, 0},
+{708, 3189348762u, 1053609165u, 1041865114u, 0, COPYSIGNF_TOLERANCE, 0},
+{709, 3189348762u, 1055286886u, 1041865114u, 0, COPYSIGNF_TOLERANCE, 0},
+{710, 3189348762u, 1056964608u, 1041865114u, 0, COPYSIGNF_TOLERANCE, 0},
+{711, 3189348762u, 1057803469u, 1041865114u, 0, COPYSIGNF_TOLERANCE, 0},
+{712, 3189348762u, 1058642330u, 1041865114u, 0, COPYSIGNF_TOLERANCE, 0},
+{713, 3189348762u, 1059481190u, 1041865114u, 0, COPYSIGNF_TOLERANCE, 0},
+{714, 3189348762u, 1060320051u, 1041865114u, 0, COPYSIGNF_TOLERANCE, 0},
+{715, 3189348762u, 1061158912u, 1041865114u, 0, COPYSIGNF_TOLERANCE, 0},
+{716, 3189348762u, 1061997773u, 1041865114u, 0, COPYSIGNF_TOLERANCE, 0},
+{717, 3189348762u, 1062836634u, 1041865114u, 0, COPYSIGNF_TOLERANCE, 0},
+{718, 3189348762u, 1063675494u, 1041865114u, 0, COPYSIGNF_TOLERANCE, 0},
+{719, 3189348762u, 1064514355u, 1041865114u, 0, COPYSIGNF_TOLERANCE, 0},
+{720, 3184315597u, 3212836864u, 3184315597u, 0, COPYSIGNF_TOLERANCE, 0},
+{721, 3184315597u, 3211998003u, 3184315597u, 0, COPYSIGNF_TOLERANCE, 0},
+{722, 3184315597u, 3211159142u, 3184315597u, 0, COPYSIGNF_TOLERANCE, 0},
+{723, 3184315597u, 3210320282u, 3184315597u, 0, COPYSIGNF_TOLERANCE, 0},
+{724, 3184315597u, 3209481421u, 3184315597u, 0, COPYSIGNF_TOLERANCE, 0},
+{725, 3184315597u, 3208642560u, 3184315597u, 0, COPYSIGNF_TOLERANCE, 0},
+{726, 3184315597u, 3207803699u, 3184315597u, 0, COPYSIGNF_TOLERANCE, 0},
+{727, 3184315597u, 3206964838u, 3184315597u, 0, COPYSIGNF_TOLERANCE, 0},
+{728, 3184315597u, 3206125978u, 3184315597u, 0, COPYSIGNF_TOLERANCE, 0},
+{729, 3184315597u, 3205287117u, 3184315597u, 0, COPYSIGNF_TOLERANCE, 0},
+{730, 3184315597u, 3204448256u, 3184315597u, 0, COPYSIGNF_TOLERANCE, 0},
+{731, 3184315597u, 3202770534u, 3184315597u, 0, COPYSIGNF_TOLERANCE, 0},
+{732, 3184315597u, 3201092813u, 3184315597u, 0, COPYSIGNF_TOLERANCE, 0},
+{733, 3184315597u, 3199415091u, 3184315597u, 0, COPYSIGNF_TOLERANCE, 0},
+{734, 3184315597u, 3197737370u, 3184315597u, 0, COPYSIGNF_TOLERANCE, 0},
+{735, 3184315597u, 3196059648u, 3184315597u, 0, COPYSIGNF_TOLERANCE, 0},
+{736, 3184315597u, 3192704205u, 3184315597u, 0, COPYSIGNF_TOLERANCE, 0},
+{737, 3184315597u, 3189348762u, 3184315597u, 0, COPYSIGNF_TOLERANCE, 0},
+{738, 3184315597u, 3184315597u, 3184315597u, 0, COPYSIGNF_TOLERANCE, 0},
+{739, 3184315597u, 3175926989u, 3184315597u, 0, COPYSIGNF_TOLERANCE, 0},
+{740, 3184315597u, 632815616u, 1036831949u, 0, COPYSIGNF_TOLERANCE, 0},
+{741, 3184315597u, 1028443341u, 1036831949u, 0, COPYSIGNF_TOLERANCE, 0},
+{742, 3184315597u, 1036831949u, 1036831949u, 0, COPYSIGNF_TOLERANCE, 0},
+{743, 3184315597u, 1041865114u, 1036831949u, 0, COPYSIGNF_TOLERANCE, 0},
+{744, 3184315597u, 1045220557u, 1036831949u, 0, COPYSIGNF_TOLERANCE, 0},
+{745, 3184315597u, 1048576000u, 1036831949u, 0, COPYSIGNF_TOLERANCE, 0},
+{746, 3184315597u, 1050253722u, 1036831949u, 0, COPYSIGNF_TOLERANCE, 0},
+{747, 3184315597u, 1051931443u, 1036831949u, 0, COPYSIGNF_TOLERANCE, 0},
+{748, 3184315597u, 1053609165u, 1036831949u, 0, COPYSIGNF_TOLERANCE, 0},
+{749, 3184315597u, 1055286886u, 1036831949u, 0, COPYSIGNF_TOLERANCE, 0},
+{750, 3184315597u, 1056964608u, 1036831949u, 0, COPYSIGNF_TOLERANCE, 0},
+{751, 3184315597u, 1057803469u, 1036831949u, 0, COPYSIGNF_TOLERANCE, 0},
+{752, 3184315597u, 1058642330u, 1036831949u, 0, COPYSIGNF_TOLERANCE, 0},
+{753, 3184315597u, 1059481190u, 1036831949u, 0, COPYSIGNF_TOLERANCE, 0},
+{754, 3184315597u, 1060320051u, 1036831949u, 0, COPYSIGNF_TOLERANCE, 0},
+{755, 3184315597u, 1061158912u, 1036831949u, 0, COPYSIGNF_TOLERANCE, 0},
+{756, 3184315597u, 1061997773u, 1036831949u, 0, COPYSIGNF_TOLERANCE, 0},
+{757, 3184315597u, 1062836634u, 1036831949u, 0, COPYSIGNF_TOLERANCE, 0},
+{758, 3184315597u, 1063675494u, 1036831949u, 0, COPYSIGNF_TOLERANCE, 0},
+{759, 3184315597u, 1064514355u, 1036831949u, 0, COPYSIGNF_TOLERANCE, 0},
+{760, 3175926989u, 3212836864u, 3175926989u, 0, COPYSIGNF_TOLERANCE, 0},
+{761, 3175926989u, 3211998003u, 3175926989u, 0, COPYSIGNF_TOLERANCE, 0},
+{762, 3175926989u, 3211159142u, 3175926989u, 0, COPYSIGNF_TOLERANCE, 0},
+{763, 3175926989u, 3210320282u, 3175926989u, 0, COPYSIGNF_TOLERANCE, 0},
+{764, 3175926989u, 3209481421u, 3175926989u, 0, COPYSIGNF_TOLERANCE, 0},
+{765, 3175926989u, 3208642560u, 3175926989u, 0, COPYSIGNF_TOLERANCE, 0},
+{766, 3175926989u, 3207803699u, 3175926989u, 0, COPYSIGNF_TOLERANCE, 0},
+{767, 3175926989u, 3206964838u, 3175926989u, 0, COPYSIGNF_TOLERANCE, 0},
+{768, 3175926989u, 3206125978u, 3175926989u, 0, COPYSIGNF_TOLERANCE, 0},
+{769, 3175926989u, 3205287117u, 3175926989u, 0, COPYSIGNF_TOLERANCE, 0},
+{770, 3175926989u, 3204448256u, 3175926989u, 0, COPYSIGNF_TOLERANCE, 0},
+{771, 3175926989u, 3202770534u, 3175926989u, 0, COPYSIGNF_TOLERANCE, 0},
+{772, 3175926989u, 3201092813u, 3175926989u, 0, COPYSIGNF_TOLERANCE, 0},
+{773, 3175926989u, 3199415091u, 3175926989u, 0, COPYSIGNF_TOLERANCE, 0},
+{774, 3175926989u, 3197737370u, 3175926989u, 0, COPYSIGNF_TOLERANCE, 0},
+{775, 3175926989u, 3196059648u, 3175926989u, 0, COPYSIGNF_TOLERANCE, 0},
+{776, 3175926989u, 3192704205u, 3175926989u, 0, COPYSIGNF_TOLERANCE, 0},
+{777, 3175926989u, 3189348762u, 3175926989u, 0, COPYSIGNF_TOLERANCE, 0},
+{778, 3175926989u, 3184315597u, 3175926989u, 0, COPYSIGNF_TOLERANCE, 0},
+{779, 3175926989u, 3175926989u, 3175926989u, 0, COPYSIGNF_TOLERANCE, 0},
+{780, 3175926989u, 632815616u, 1028443341u, 0, COPYSIGNF_TOLERANCE, 0},
+{781, 3175926989u, 1028443341u, 1028443341u, 0, COPYSIGNF_TOLERANCE, 0},
+{782, 3175926989u, 1036831949u, 1028443341u, 0, COPYSIGNF_TOLERANCE, 0},
+{783, 3175926989u, 1041865114u, 1028443341u, 0, COPYSIGNF_TOLERANCE, 0},
+{784, 3175926989u, 1045220557u, 1028443341u, 0, COPYSIGNF_TOLERANCE, 0},
+{785, 3175926989u, 1048576000u, 1028443341u, 0, COPYSIGNF_TOLERANCE, 0},
+{786, 3175926989u, 1050253722u, 1028443341u, 0, COPYSIGNF_TOLERANCE, 0},
+{787, 3175926989u, 1051931443u, 1028443341u, 0, COPYSIGNF_TOLERANCE, 0},
+{788, 3175926989u, 1053609165u, 1028443341u, 0, COPYSIGNF_TOLERANCE, 0},
+{789, 3175926989u, 1055286886u, 1028443341u, 0, COPYSIGNF_TOLERANCE, 0},
+{790, 3175926989u, 1056964608u, 1028443341u, 0, COPYSIGNF_TOLERANCE, 0},
+{791, 3175926989u, 1057803469u, 1028443341u, 0, COPYSIGNF_TOLERANCE, 0},
+{792, 3175926989u, 1058642330u, 1028443341u, 0, COPYSIGNF_TOLERANCE, 0},
+{793, 3175926989u, 1059481190u, 1028443341u, 0, COPYSIGNF_TOLERANCE, 0},
+{794, 3175926989u, 1060320051u, 1028443341u, 0, COPYSIGNF_TOLERANCE, 0},
+{795, 3175926989u, 1061158912u, 1028443341u, 0, COPYSIGNF_TOLERANCE, 0},
+{796, 3175926989u, 1061997773u, 1028443341u, 0, COPYSIGNF_TOLERANCE, 0},
+{797, 3175926989u, 1062836634u, 1028443341u, 0, COPYSIGNF_TOLERANCE, 0},
+{798, 3175926989u, 1063675494u, 1028443341u, 0, COPYSIGNF_TOLERANCE, 0},
+{799, 3175926989u, 1064514355u, 1028443341u, 0, COPYSIGNF_TOLERANCE, 0},
+{800, 632815616u, 3212836864u, 2780299264u, 0, COPYSIGNF_TOLERANCE, 0},
+{801, 632815616u, 3211998003u, 2780299264u, 0, COPYSIGNF_TOLERANCE, 0},
+{802, 632815616u, 3211159142u, 2780299264u, 0, COPYSIGNF_TOLERANCE, 0},
+{803, 632815616u, 3210320282u, 2780299264u, 0, COPYSIGNF_TOLERANCE, 0},
+{804, 632815616u, 3209481421u, 2780299264u, 0, COPYSIGNF_TOLERANCE, 0},
+{805, 632815616u, 3208642560u, 2780299264u, 0, COPYSIGNF_TOLERANCE, 0},
+{806, 632815616u, 3207803699u, 2780299264u, 0, COPYSIGNF_TOLERANCE, 0},
+{807, 632815616u, 3206964838u, 2780299264u, 0, COPYSIGNF_TOLERANCE, 0},
+{808, 632815616u, 3206125978u, 2780299264u, 0, COPYSIGNF_TOLERANCE, 0},
+{809, 632815616u, 3205287117u, 2780299264u, 0, COPYSIGNF_TOLERANCE, 0},
+{810, 632815616u, 3204448256u, 2780299264u, 0, COPYSIGNF_TOLERANCE, 0},
+{811, 632815616u, 3202770534u, 2780299264u, 0, COPYSIGNF_TOLERANCE, 0},
+{812, 632815616u, 3201092813u, 2780299264u, 0, COPYSIGNF_TOLERANCE, 0},
+{813, 632815616u, 3199415091u, 2780299264u, 0, COPYSIGNF_TOLERANCE, 0},
+{814, 632815616u, 3197737370u, 2780299264u, 0, COPYSIGNF_TOLERANCE, 0},
+{815, 632815616u, 3196059648u, 2780299264u, 0, COPYSIGNF_TOLERANCE, 0},
+{816, 632815616u, 3192704205u, 2780299264u, 0, COPYSIGNF_TOLERANCE, 0},
+{817, 632815616u, 3189348762u, 2780299264u, 0, COPYSIGNF_TOLERANCE, 0},
+{818, 632815616u, 3184315597u, 2780299264u, 0, COPYSIGNF_TOLERANCE, 0},
+{819, 632815616u, 3175926989u, 2780299264u, 0, COPYSIGNF_TOLERANCE, 0},
+{820, 632815616u, 632815616u, 632815616u, 0, COPYSIGNF_TOLERANCE, 0},
+{821, 632815616u, 1028443341u, 632815616u, 0, COPYSIGNF_TOLERANCE, 0},
+{822, 632815616u, 1036831949u, 632815616u, 0, COPYSIGNF_TOLERANCE, 0},
+{823, 632815616u, 1041865114u, 632815616u, 0, COPYSIGNF_TOLERANCE, 0},
+{824, 632815616u, 1045220557u, 632815616u, 0, COPYSIGNF_TOLERANCE, 0},
+{825, 632815616u, 1048576000u, 632815616u, 0, COPYSIGNF_TOLERANCE, 0},
+{826, 632815616u, 1050253722u, 632815616u, 0, COPYSIGNF_TOLERANCE, 0},
+{827, 632815616u, 1051931443u, 632815616u, 0, COPYSIGNF_TOLERANCE, 0},
+{828, 632815616u, 1053609165u, 632815616u, 0, COPYSIGNF_TOLERANCE, 0},
+{829, 632815616u, 1055286886u, 632815616u, 0, COPYSIGNF_TOLERANCE, 0},
+{830, 632815616u, 1056964608u, 632815616u, 0, COPYSIGNF_TOLERANCE, 0},
+{831, 632815616u, 1057803469u, 632815616u, 0, COPYSIGNF_TOLERANCE, 0},
+{832, 632815616u, 1058642330u, 632815616u, 0, COPYSIGNF_TOLERANCE, 0},
+{833, 632815616u, 1059481190u, 632815616u, 0, COPYSIGNF_TOLERANCE, 0},
+{834, 632815616u, 1060320051u, 632815616u, 0, COPYSIGNF_TOLERANCE, 0},
+{835, 632815616u, 1061158912u, 632815616u, 0, COPYSIGNF_TOLERANCE, 0},
+{836, 632815616u, 1061997773u, 632815616u, 0, COPYSIGNF_TOLERANCE, 0},
+{837, 632815616u, 1062836634u, 632815616u, 0, COPYSIGNF_TOLERANCE, 0},
+{838, 632815616u, 1063675494u, 632815616u, 0, COPYSIGNF_TOLERANCE, 0},
+{839, 632815616u, 1064514355u, 632815616u, 0, COPYSIGNF_TOLERANCE, 0},
+{840, 1028443341u, 3212836864u, 3175926989u, 0, COPYSIGNF_TOLERANCE, 0},
+{841, 1028443341u, 3211998003u, 3175926989u, 0, COPYSIGNF_TOLERANCE, 0},
+{842, 1028443341u, 3211159142u, 3175926989u, 0, COPYSIGNF_TOLERANCE, 0},
+{843, 1028443341u, 3210320282u, 3175926989u, 0, COPYSIGNF_TOLERANCE, 0},
+{844, 1028443341u, 3209481421u, 3175926989u, 0, COPYSIGNF_TOLERANCE, 0},
+{845, 1028443341u, 3208642560u, 3175926989u, 0, COPYSIGNF_TOLERANCE, 0},
+{846, 1028443341u, 3207803699u, 3175926989u, 0, COPYSIGNF_TOLERANCE, 0},
+{847, 1028443341u, 3206964838u, 3175926989u, 0, COPYSIGNF_TOLERANCE, 0},
+{848, 1028443341u, 3206125978u, 3175926989u, 0, COPYSIGNF_TOLERANCE, 0},
+{849, 1028443341u, 3205287117u, 3175926989u, 0, COPYSIGNF_TOLERANCE, 0},
+{850, 1028443341u, 3204448256u, 3175926989u, 0, COPYSIGNF_TOLERANCE, 0},
+{851, 1028443341u, 3202770534u, 3175926989u, 0, COPYSIGNF_TOLERANCE, 0},
+{852, 1028443341u, 3201092813u, 3175926989u, 0, COPYSIGNF_TOLERANCE, 0},
+{853, 1028443341u, 3199415091u, 3175926989u, 0, COPYSIGNF_TOLERANCE, 0},
+{854, 1028443341u, 3197737370u, 3175926989u, 0, COPYSIGNF_TOLERANCE, 0},
+{855, 1028443341u, 3196059648u, 3175926989u, 0, COPYSIGNF_TOLERANCE, 0},
+{856, 1028443341u, 3192704205u, 3175926989u, 0, COPYSIGNF_TOLERANCE, 0},
+{857, 1028443341u, 3189348762u, 3175926989u, 0, COPYSIGNF_TOLERANCE, 0},
+{858, 1028443341u, 3184315597u, 3175926989u, 0, COPYSIGNF_TOLERANCE, 0},
+{859, 1028443341u, 3175926989u, 3175926989u, 0, COPYSIGNF_TOLERANCE, 0},
+{860, 1028443341u, 632815616u, 1028443341u, 0, COPYSIGNF_TOLERANCE, 0},
+{861, 1028443341u, 1028443341u, 1028443341u, 0, COPYSIGNF_TOLERANCE, 0},
+{862, 1028443341u, 1036831949u, 1028443341u, 0, COPYSIGNF_TOLERANCE, 0},
+{863, 1028443341u, 1041865114u, 1028443341u, 0, COPYSIGNF_TOLERANCE, 0},
+{864, 1028443341u, 1045220557u, 1028443341u, 0, COPYSIGNF_TOLERANCE, 0},
+{865, 1028443341u, 1048576000u, 1028443341u, 0, COPYSIGNF_TOLERANCE, 0},
+{866, 1028443341u, 1050253722u, 1028443341u, 0, COPYSIGNF_TOLERANCE, 0},
+{867, 1028443341u, 1051931443u, 1028443341u, 0, COPYSIGNF_TOLERANCE, 0},
+{868, 1028443341u, 1053609165u, 1028443341u, 0, COPYSIGNF_TOLERANCE, 0},
+{869, 1028443341u, 1055286886u, 1028443341u, 0, COPYSIGNF_TOLERANCE, 0},
+{870, 1028443341u, 1056964608u, 1028443341u, 0, COPYSIGNF_TOLERANCE, 0},
+{871, 1028443341u, 1057803469u, 1028443341u, 0, COPYSIGNF_TOLERANCE, 0},
+{872, 1028443341u, 1058642330u, 1028443341u, 0, COPYSIGNF_TOLERANCE, 0},
+{873, 1028443341u, 1059481190u, 1028443341u, 0, COPYSIGNF_TOLERANCE, 0},
+{874, 1028443341u, 1060320051u, 1028443341u, 0, COPYSIGNF_TOLERANCE, 0},
+{875, 1028443341u, 1061158912u, 1028443341u, 0, COPYSIGNF_TOLERANCE, 0},
+{876, 1028443341u, 1061997773u, 1028443341u, 0, COPYSIGNF_TOLERANCE, 0},
+{877, 1028443341u, 1062836634u, 1028443341u, 0, COPYSIGNF_TOLERANCE, 0},
+{878, 1028443341u, 1063675494u, 1028443341u, 0, COPYSIGNF_TOLERANCE, 0},
+{879, 1028443341u, 1064514355u, 1028443341u, 0, COPYSIGNF_TOLERANCE, 0},
+{880, 1036831949u, 3212836864u, 3184315597u, 0, COPYSIGNF_TOLERANCE, 0},
+{881, 1036831949u, 3211998003u, 3184315597u, 0, COPYSIGNF_TOLERANCE, 0},
+{882, 1036831949u, 3211159142u, 3184315597u, 0, COPYSIGNF_TOLERANCE, 0},
+{883, 1036831949u, 3210320282u, 3184315597u, 0, COPYSIGNF_TOLERANCE, 0},
+{884, 1036831949u, 3209481421u, 3184315597u, 0, COPYSIGNF_TOLERANCE, 0},
+{885, 1036831949u, 3208642560u, 3184315597u, 0, COPYSIGNF_TOLERANCE, 0},
+{886, 1036831949u, 3207803699u, 3184315597u, 0, COPYSIGNF_TOLERANCE, 0},
+{887, 1036831949u, 3206964838u, 3184315597u, 0, COPYSIGNF_TOLERANCE, 0},
+{888, 1036831949u, 3206125978u, 3184315597u, 0, COPYSIGNF_TOLERANCE, 0},
+{889, 1036831949u, 3205287117u, 3184315597u, 0, COPYSIGNF_TOLERANCE, 0},
+{890, 1036831949u, 3204448256u, 3184315597u, 0, COPYSIGNF_TOLERANCE, 0},
+{891, 1036831949u, 3202770534u, 3184315597u, 0, COPYSIGNF_TOLERANCE, 0},
+{892, 1036831949u, 3201092813u, 3184315597u, 0, COPYSIGNF_TOLERANCE, 0},
+{893, 1036831949u, 3199415091u, 3184315597u, 0, COPYSIGNF_TOLERANCE, 0},
+{894, 1036831949u, 3197737370u, 3184315597u, 0, COPYSIGNF_TOLERANCE, 0},
+{895, 1036831949u, 3196059648u, 3184315597u, 0, COPYSIGNF_TOLERANCE, 0},
+{896, 1036831949u, 3192704205u, 3184315597u, 0, COPYSIGNF_TOLERANCE, 0},
+{897, 1036831949u, 3189348762u, 3184315597u, 0, COPYSIGNF_TOLERANCE, 0},
+{898, 1036831949u, 3184315597u, 3184315597u, 0, COPYSIGNF_TOLERANCE, 0},
+{899, 1036831949u, 3175926989u, 3184315597u, 0, COPYSIGNF_TOLERANCE, 0},
+{900, 1036831949u, 632815616u, 1036831949u, 0, COPYSIGNF_TOLERANCE, 0},
+{901, 1036831949u, 1028443341u, 1036831949u, 0, COPYSIGNF_TOLERANCE, 0},
+{902, 1036831949u, 1036831949u, 1036831949u, 0, COPYSIGNF_TOLERANCE, 0},
+{903, 1036831949u, 1041865114u, 1036831949u, 0, COPYSIGNF_TOLERANCE, 0},
+{904, 1036831949u, 1045220557u, 1036831949u, 0, COPYSIGNF_TOLERANCE, 0},
+{905, 1036831949u, 1048576000u, 1036831949u, 0, COPYSIGNF_TOLERANCE, 0},
+{906, 1036831949u, 1050253722u, 1036831949u, 0, COPYSIGNF_TOLERANCE, 0},
+{907, 1036831949u, 1051931443u, 1036831949u, 0, COPYSIGNF_TOLERANCE, 0},
+{908, 1036831949u, 1053609165u, 1036831949u, 0, COPYSIGNF_TOLERANCE, 0},
+{909, 1036831949u, 1055286886u, 1036831949u, 0, COPYSIGNF_TOLERANCE, 0},
+{910, 1036831949u, 1056964608u, 1036831949u, 0, COPYSIGNF_TOLERANCE, 0},
+{911, 1036831949u, 1057803469u, 1036831949u, 0, COPYSIGNF_TOLERANCE, 0},
+{912, 1036831949u, 1058642330u, 1036831949u, 0, COPYSIGNF_TOLERANCE, 0},
+{913, 1036831949u, 1059481190u, 1036831949u, 0, COPYSIGNF_TOLERANCE, 0},
+{914, 1036831949u, 1060320051u, 1036831949u, 0, COPYSIGNF_TOLERANCE, 0},
+{915, 1036831949u, 1061158912u, 1036831949u, 0, COPYSIGNF_TOLERANCE, 0},
+{916, 1036831949u, 1061997773u, 1036831949u, 0, COPYSIGNF_TOLERANCE, 0},
+{917, 1036831949u, 1062836634u, 1036831949u, 0, COPYSIGNF_TOLERANCE, 0},
+{918, 1036831949u, 1063675494u, 1036831949u, 0, COPYSIGNF_TOLERANCE, 0},
+{919, 1036831949u, 1064514355u, 1036831949u, 0, COPYSIGNF_TOLERANCE, 0},
+{920, 1041865114u, 3212836864u, 3189348762u, 0, COPYSIGNF_TOLERANCE, 0},
+{921, 1041865114u, 3211998003u, 3189348762u, 0, COPYSIGNF_TOLERANCE, 0},
+{922, 1041865114u, 3211159142u, 3189348762u, 0, COPYSIGNF_TOLERANCE, 0},
+{923, 1041865114u, 3210320282u, 3189348762u, 0, COPYSIGNF_TOLERANCE, 0},
+{924, 1041865114u, 3209481421u, 3189348762u, 0, COPYSIGNF_TOLERANCE, 0},
+{925, 1041865114u, 3208642560u, 3189348762u, 0, COPYSIGNF_TOLERANCE, 0},
+{926, 1041865114u, 3207803699u, 3189348762u, 0, COPYSIGNF_TOLERANCE, 0},
+{927, 1041865114u, 3206964838u, 3189348762u, 0, COPYSIGNF_TOLERANCE, 0},
+{928, 1041865114u, 3206125978u, 3189348762u, 0, COPYSIGNF_TOLERANCE, 0},
+{929, 1041865114u, 3205287117u, 3189348762u, 0, COPYSIGNF_TOLERANCE, 0},
+{930, 1041865114u, 3204448256u, 3189348762u, 0, COPYSIGNF_TOLERANCE, 0},
+{931, 1041865114u, 3202770534u, 3189348762u, 0, COPYSIGNF_TOLERANCE, 0},
+{932, 1041865114u, 3201092813u, 3189348762u, 0, COPYSIGNF_TOLERANCE, 0},
+{933, 1041865114u, 3199415091u, 3189348762u, 0, COPYSIGNF_TOLERANCE, 0},
+{934, 1041865114u, 3197737370u, 3189348762u, 0, COPYSIGNF_TOLERANCE, 0},
+{935, 1041865114u, 3196059648u, 3189348762u, 0, COPYSIGNF_TOLERANCE, 0},
+{936, 1041865114u, 3192704205u, 3189348762u, 0, COPYSIGNF_TOLERANCE, 0},
+{937, 1041865114u, 3189348762u, 3189348762u, 0, COPYSIGNF_TOLERANCE, 0},
+{938, 1041865114u, 3184315597u, 3189348762u, 0, COPYSIGNF_TOLERANCE, 0},
+{939, 1041865114u, 3175926989u, 3189348762u, 0, COPYSIGNF_TOLERANCE, 0},
+{940, 1041865114u, 632815616u, 1041865114u, 0, COPYSIGNF_TOLERANCE, 0},
+{941, 1041865114u, 1028443341u, 1041865114u, 0, COPYSIGNF_TOLERANCE, 0},
+{942, 1041865114u, 1036831949u, 1041865114u, 0, COPYSIGNF_TOLERANCE, 0},
+{943, 1041865114u, 1041865114u, 1041865114u, 0, COPYSIGNF_TOLERANCE, 0},
+{944, 1041865114u, 1045220557u, 1041865114u, 0, COPYSIGNF_TOLERANCE, 0},
+{945, 1041865114u, 1048576000u, 1041865114u, 0, COPYSIGNF_TOLERANCE, 0},
+{946, 1041865114u, 1050253722u, 1041865114u, 0, COPYSIGNF_TOLERANCE, 0},
+{947, 1041865114u, 1051931443u, 1041865114u, 0, COPYSIGNF_TOLERANCE, 0},
+{948, 1041865114u, 1053609165u, 1041865114u, 0, COPYSIGNF_TOLERANCE, 0},
+{949, 1041865114u, 1055286886u, 1041865114u, 0, COPYSIGNF_TOLERANCE, 0},
+{950, 1041865114u, 1056964608u, 1041865114u, 0, COPYSIGNF_TOLERANCE, 0},
+{951, 1041865114u, 1057803469u, 1041865114u, 0, COPYSIGNF_TOLERANCE, 0},
+{952, 1041865114u, 1058642330u, 1041865114u, 0, COPYSIGNF_TOLERANCE, 0},
+{953, 1041865114u, 1059481190u, 1041865114u, 0, COPYSIGNF_TOLERANCE, 0},
+{954, 1041865114u, 1060320051u, 1041865114u, 0, COPYSIGNF_TOLERANCE, 0},
+{955, 1041865114u, 1061158912u, 1041865114u, 0, COPYSIGNF_TOLERANCE, 0},
+{956, 1041865114u, 1061997773u, 1041865114u, 0, COPYSIGNF_TOLERANCE, 0},
+{957, 1041865114u, 1062836634u, 1041865114u, 0, COPYSIGNF_TOLERANCE, 0},
+{958, 1041865114u, 1063675494u, 1041865114u, 0, COPYSIGNF_TOLERANCE, 0},
+{959, 1041865114u, 1064514355u, 1041865114u, 0, COPYSIGNF_TOLERANCE, 0},
+{960, 1045220557u, 3212836864u, 3192704205u, 0, COPYSIGNF_TOLERANCE, 0},
+{961, 1045220557u, 3211998003u, 3192704205u, 0, COPYSIGNF_TOLERANCE, 0},
+{962, 1045220557u, 3211159142u, 3192704205u, 0, COPYSIGNF_TOLERANCE, 0},
+{963, 1045220557u, 3210320282u, 3192704205u, 0, COPYSIGNF_TOLERANCE, 0},
+{964, 1045220557u, 3209481421u, 3192704205u, 0, COPYSIGNF_TOLERANCE, 0},
+{965, 1045220557u, 3208642560u, 3192704205u, 0, COPYSIGNF_TOLERANCE, 0},
+{966, 1045220557u, 3207803699u, 3192704205u, 0, COPYSIGNF_TOLERANCE, 0},
+{967, 1045220557u, 3206964838u, 3192704205u, 0, COPYSIGNF_TOLERANCE, 0},
+{968, 1045220557u, 3206125978u, 3192704205u, 0, COPYSIGNF_TOLERANCE, 0},
+{969, 1045220557u, 3205287117u, 3192704205u, 0, COPYSIGNF_TOLERANCE, 0},
+{970, 1045220557u, 3204448256u, 3192704205u, 0, COPYSIGNF_TOLERANCE, 0},
+{971, 1045220557u, 3202770534u, 3192704205u, 0, COPYSIGNF_TOLERANCE, 0},
+{972, 1045220557u, 3201092813u, 3192704205u, 0, COPYSIGNF_TOLERANCE, 0},
+{973, 1045220557u, 3199415091u, 3192704205u, 0, COPYSIGNF_TOLERANCE, 0},
+{974, 1045220557u, 3197737370u, 3192704205u, 0, COPYSIGNF_TOLERANCE, 0},
+{975, 1045220557u, 3196059648u, 3192704205u, 0, COPYSIGNF_TOLERANCE, 0},
+{976, 1045220557u, 3192704205u, 3192704205u, 0, COPYSIGNF_TOLERANCE, 0},
+{977, 1045220557u, 3189348762u, 3192704205u, 0, COPYSIGNF_TOLERANCE, 0},
+{978, 1045220557u, 3184315597u, 3192704205u, 0, COPYSIGNF_TOLERANCE, 0},
+{979, 1045220557u, 3175926989u, 3192704205u, 0, COPYSIGNF_TOLERANCE, 0},
+{980, 1045220557u, 632815616u, 1045220557u, 0, COPYSIGNF_TOLERANCE, 0},
+{981, 1045220557u, 1028443341u, 1045220557u, 0, COPYSIGNF_TOLERANCE, 0},
+{982, 1045220557u, 1036831949u, 1045220557u, 0, COPYSIGNF_TOLERANCE, 0},
+{983, 1045220557u, 1041865114u, 1045220557u, 0, COPYSIGNF_TOLERANCE, 0},
+{984, 1045220557u, 1045220557u, 1045220557u, 0, COPYSIGNF_TOLERANCE, 0},
+{985, 1045220557u, 1048576000u, 1045220557u, 0, COPYSIGNF_TOLERANCE, 0},
+{986, 1045220557u, 1050253722u, 1045220557u, 0, COPYSIGNF_TOLERANCE, 0},
+{987, 1045220557u, 1051931443u, 1045220557u, 0, COPYSIGNF_TOLERANCE, 0},
+{988, 1045220557u, 1053609165u, 1045220557u, 0, COPYSIGNF_TOLERANCE, 0},
+{989, 1045220557u, 1055286886u, 1045220557u, 0, COPYSIGNF_TOLERANCE, 0},
+{990, 1045220557u, 1056964608u, 1045220557u, 0, COPYSIGNF_TOLERANCE, 0},
+{991, 1045220557u, 1057803469u, 1045220557u, 0, COPYSIGNF_TOLERANCE, 0},
+{992, 1045220557u, 1058642330u, 1045220557u, 0, COPYSIGNF_TOLERANCE, 0},
+{993, 1045220557u, 1059481190u, 1045220557u, 0, COPYSIGNF_TOLERANCE, 0},
+{994, 1045220557u, 1060320051u, 1045220557u, 0, COPYSIGNF_TOLERANCE, 0},
+{995, 1045220557u, 1061158912u, 1045220557u, 0, COPYSIGNF_TOLERANCE, 0},
+{996, 1045220557u, 1061997773u, 1045220557u, 0, COPYSIGNF_TOLERANCE, 0},
+{997, 1045220557u, 1062836634u, 1045220557u, 0, COPYSIGNF_TOLERANCE, 0},
+{998, 1045220557u, 1063675494u, 1045220557u, 0, COPYSIGNF_TOLERANCE, 0},
+{999, 1045220557u, 1064514355u, 1045220557u, 0, COPYSIGNF_TOLERANCE, 0},
+{1000, 1048576000u, 3212836864u, 3196059648u, 0, COPYSIGNF_TOLERANCE, 0},
+{1001, 1048576000u, 3211998003u, 3196059648u, 0, COPYSIGNF_TOLERANCE, 0},
+{1002, 1048576000u, 3211159142u, 3196059648u, 0, COPYSIGNF_TOLERANCE, 0},
+{1003, 1048576000u, 3210320282u, 3196059648u, 0, COPYSIGNF_TOLERANCE, 0},
+{1004, 1048576000u, 3209481421u, 3196059648u, 0, COPYSIGNF_TOLERANCE, 0},
+{1005, 1048576000u, 3208642560u, 3196059648u, 0, COPYSIGNF_TOLERANCE, 0},
+{1006, 1048576000u, 3207803699u, 3196059648u, 0, COPYSIGNF_TOLERANCE, 0},
+{1007, 1048576000u, 3206964838u, 3196059648u, 0, COPYSIGNF_TOLERANCE, 0},
+{1008, 1048576000u, 3206125978u, 3196059648u, 0, COPYSIGNF_TOLERANCE, 0},
+{1009, 1048576000u, 3205287117u, 3196059648u, 0, COPYSIGNF_TOLERANCE, 0},
+{1010, 1048576000u, 3204448256u, 3196059648u, 0, COPYSIGNF_TOLERANCE, 0},
+{1011, 1048576000u, 3202770534u, 3196059648u, 0, COPYSIGNF_TOLERANCE, 0},
+{1012, 1048576000u, 3201092813u, 3196059648u, 0, COPYSIGNF_TOLERANCE, 0},
+{1013, 1048576000u, 3199415091u, 3196059648u, 0, COPYSIGNF_TOLERANCE, 0},
+{1014, 1048576000u, 3197737370u, 3196059648u, 0, COPYSIGNF_TOLERANCE, 0},
+{1015, 1048576000u, 3196059648u, 3196059648u, 0, COPYSIGNF_TOLERANCE, 0},
+{1016, 1048576000u, 3192704205u, 3196059648u, 0, COPYSIGNF_TOLERANCE, 0},
+{1017, 1048576000u, 3189348762u, 3196059648u, 0, COPYSIGNF_TOLERANCE, 0},
+{1018, 1048576000u, 3184315597u, 3196059648u, 0, COPYSIGNF_TOLERANCE, 0},
+{1019, 1048576000u, 3175926989u, 3196059648u, 0, COPYSIGNF_TOLERANCE, 0},
+{1020, 1048576000u, 632815616u, 1048576000u, 0, COPYSIGNF_TOLERANCE, 0},
+{1021, 1048576000u, 1028443341u, 1048576000u, 0, COPYSIGNF_TOLERANCE, 0},
+{1022, 1048576000u, 1036831949u, 1048576000u, 0, COPYSIGNF_TOLERANCE, 0},
+{1023, 1048576000u, 1041865114u, 1048576000u, 0, COPYSIGNF_TOLERANCE, 0},
+{1024, 1048576000u, 1045220557u, 1048576000u, 0, COPYSIGNF_TOLERANCE, 0},
+{1025, 1048576000u, 1048576000u, 1048576000u, 0, COPYSIGNF_TOLERANCE, 0},
+{1026, 1048576000u, 1050253722u, 1048576000u, 0, COPYSIGNF_TOLERANCE, 0},
+{1027, 1048576000u, 1051931443u, 1048576000u, 0, COPYSIGNF_TOLERANCE, 0},
+{1028, 1048576000u, 1053609165u, 1048576000u, 0, COPYSIGNF_TOLERANCE, 0},
+{1029, 1048576000u, 1055286886u, 1048576000u, 0, COPYSIGNF_TOLERANCE, 0},
+{1030, 1048576000u, 1056964608u, 1048576000u, 0, COPYSIGNF_TOLERANCE, 0},
+{1031, 1048576000u, 1057803469u, 1048576000u, 0, COPYSIGNF_TOLERANCE, 0},
+{1032, 1048576000u, 1058642330u, 1048576000u, 0, COPYSIGNF_TOLERANCE, 0},
+{1033, 1048576000u, 1059481190u, 1048576000u, 0, COPYSIGNF_TOLERANCE, 0},
+{1034, 1048576000u, 1060320051u, 1048576000u, 0, COPYSIGNF_TOLERANCE, 0},
+{1035, 1048576000u, 1061158912u, 1048576000u, 0, COPYSIGNF_TOLERANCE, 0},
+{1036, 1048576000u, 1061997773u, 1048576000u, 0, COPYSIGNF_TOLERANCE, 0},
+{1037, 1048576000u, 1062836634u, 1048576000u, 0, COPYSIGNF_TOLERANCE, 0},
+{1038, 1048576000u, 1063675494u, 1048576000u, 0, COPYSIGNF_TOLERANCE, 0},
+{1039, 1048576000u, 1064514355u, 1048576000u, 0, COPYSIGNF_TOLERANCE, 0},
+{1040, 1050253722u, 3212836864u, 3197737370u, 0, COPYSIGNF_TOLERANCE, 0},
+{1041, 1050253722u, 3211998003u, 3197737370u, 0, COPYSIGNF_TOLERANCE, 0},
+{1042, 1050253722u, 3211159142u, 3197737370u, 0, COPYSIGNF_TOLERANCE, 0},
+{1043, 1050253722u, 3210320282u, 3197737370u, 0, COPYSIGNF_TOLERANCE, 0},
+{1044, 1050253722u, 3209481421u, 3197737370u, 0, COPYSIGNF_TOLERANCE, 0},
+{1045, 1050253722u, 3208642560u, 3197737370u, 0, COPYSIGNF_TOLERANCE, 0},
+{1046, 1050253722u, 3207803699u, 3197737370u, 0, COPYSIGNF_TOLERANCE, 0},
+{1047, 1050253722u, 3206964838u, 3197737370u, 0, COPYSIGNF_TOLERANCE, 0},
+{1048, 1050253722u, 3206125978u, 3197737370u, 0, COPYSIGNF_TOLERANCE, 0},
+{1049, 1050253722u, 3205287117u, 3197737370u, 0, COPYSIGNF_TOLERANCE, 0},
+{1050, 1050253722u, 3204448256u, 3197737370u, 0, COPYSIGNF_TOLERANCE, 0},
+{1051, 1050253722u, 3202770534u, 3197737370u, 0, COPYSIGNF_TOLERANCE, 0},
+{1052, 1050253722u, 3201092813u, 3197737370u, 0, COPYSIGNF_TOLERANCE, 0},
+{1053, 1050253722u, 3199415091u, 3197737370u, 0, COPYSIGNF_TOLERANCE, 0},
+{1054, 1050253722u, 3197737370u, 3197737370u, 0, COPYSIGNF_TOLERANCE, 0},
+{1055, 1050253722u, 3196059648u, 3197737370u, 0, COPYSIGNF_TOLERANCE, 0},
+{1056, 1050253722u, 3192704205u, 3197737370u, 0, COPYSIGNF_TOLERANCE, 0},
+{1057, 1050253722u, 3189348762u, 3197737370u, 0, COPYSIGNF_TOLERANCE, 0},
+{1058, 1050253722u, 3184315597u, 3197737370u, 0, COPYSIGNF_TOLERANCE, 0},
+{1059, 1050253722u, 3175926989u, 3197737370u, 0, COPYSIGNF_TOLERANCE, 0},
+{1060, 1050253722u, 632815616u, 1050253722u, 0, COPYSIGNF_TOLERANCE, 0},
+{1061, 1050253722u, 1028443341u, 1050253722u, 0, COPYSIGNF_TOLERANCE, 0},
+{1062, 1050253722u, 1036831949u, 1050253722u, 0, COPYSIGNF_TOLERANCE, 0},
+{1063, 1050253722u, 1041865114u, 1050253722u, 0, COPYSIGNF_TOLERANCE, 0},
+{1064, 1050253722u, 1045220557u, 1050253722u, 0, COPYSIGNF_TOLERANCE, 0},
+{1065, 1050253722u, 1048576000u, 1050253722u, 0, COPYSIGNF_TOLERANCE, 0},
+{1066, 1050253722u, 1050253722u, 1050253722u, 0, COPYSIGNF_TOLERANCE, 0},
+{1067, 1050253722u, 1051931443u, 1050253722u, 0, COPYSIGNF_TOLERANCE, 0},
+{1068, 1050253722u, 1053609165u, 1050253722u, 0, COPYSIGNF_TOLERANCE, 0},
+{1069, 1050253722u, 1055286886u, 1050253722u, 0, COPYSIGNF_TOLERANCE, 0},
+{1070, 1050253722u, 1056964608u, 1050253722u, 0, COPYSIGNF_TOLERANCE, 0},
+{1071, 1050253722u, 1057803469u, 1050253722u, 0, COPYSIGNF_TOLERANCE, 0},
+{1072, 1050253722u, 1058642330u, 1050253722u, 0, COPYSIGNF_TOLERANCE, 0},
+{1073, 1050253722u, 1059481190u, 1050253722u, 0, COPYSIGNF_TOLERANCE, 0},
+{1074, 1050253722u, 1060320051u, 1050253722u, 0, COPYSIGNF_TOLERANCE, 0},
+{1075, 1050253722u, 1061158912u, 1050253722u, 0, COPYSIGNF_TOLERANCE, 0},
+{1076, 1050253722u, 1061997773u, 1050253722u, 0, COPYSIGNF_TOLERANCE, 0},
+{1077, 1050253722u, 1062836634u, 1050253722u, 0, COPYSIGNF_TOLERANCE, 0},
+{1078, 1050253722u, 1063675494u, 1050253722u, 0, COPYSIGNF_TOLERANCE, 0},
+{1079, 1050253722u, 1064514355u, 1050253722u, 0, COPYSIGNF_TOLERANCE, 0},
+{1080, 1051931443u, 3212836864u, 3199415091u, 0, COPYSIGNF_TOLERANCE, 0},
+{1081, 1051931443u, 3211998003u, 3199415091u, 0, COPYSIGNF_TOLERANCE, 0},
+{1082, 1051931443u, 3211159142u, 3199415091u, 0, COPYSIGNF_TOLERANCE, 0},
+{1083, 1051931443u, 3210320282u, 3199415091u, 0, COPYSIGNF_TOLERANCE, 0},
+{1084, 1051931443u, 3209481421u, 3199415091u, 0, COPYSIGNF_TOLERANCE, 0},
+{1085, 1051931443u, 3208642560u, 3199415091u, 0, COPYSIGNF_TOLERANCE, 0},
+{1086, 1051931443u, 3207803699u, 3199415091u, 0, COPYSIGNF_TOLERANCE, 0},
+{1087, 1051931443u, 3206964838u, 3199415091u, 0, COPYSIGNF_TOLERANCE, 0},
+{1088, 1051931443u, 3206125978u, 3199415091u, 0, COPYSIGNF_TOLERANCE, 0},
+{1089, 1051931443u, 3205287117u, 3199415091u, 0, COPYSIGNF_TOLERANCE, 0},
+{1090, 1051931443u, 3204448256u, 3199415091u, 0, COPYSIGNF_TOLERANCE, 0},
+{1091, 1051931443u, 3202770534u, 3199415091u, 0, COPYSIGNF_TOLERANCE, 0},
+{1092, 1051931443u, 3201092813u, 3199415091u, 0, COPYSIGNF_TOLERANCE, 0},
+{1093, 1051931443u, 3199415091u, 3199415091u, 0, COPYSIGNF_TOLERANCE, 0},
+{1094, 1051931443u, 3197737370u, 3199415091u, 0, COPYSIGNF_TOLERANCE, 0},
+{1095, 1051931443u, 3196059648u, 3199415091u, 0, COPYSIGNF_TOLERANCE, 0},
+{1096, 1051931443u, 3192704205u, 3199415091u, 0, COPYSIGNF_TOLERANCE, 0},
+{1097, 1051931443u, 3189348762u, 3199415091u, 0, COPYSIGNF_TOLERANCE, 0},
+{1098, 1051931443u, 3184315597u, 3199415091u, 0, COPYSIGNF_TOLERANCE, 0},
+{1099, 1051931443u, 3175926989u, 3199415091u, 0, COPYSIGNF_TOLERANCE, 0},
+{1100, 1051931443u, 632815616u, 1051931443u, 0, COPYSIGNF_TOLERANCE, 0},
+{1101, 1051931443u, 1028443341u, 1051931443u, 0, COPYSIGNF_TOLERANCE, 0},
+{1102, 1051931443u, 1036831949u, 1051931443u, 0, COPYSIGNF_TOLERANCE, 0},
+{1103, 1051931443u, 1041865114u, 1051931443u, 0, COPYSIGNF_TOLERANCE, 0},
+{1104, 1051931443u, 1045220557u, 1051931443u, 0, COPYSIGNF_TOLERANCE, 0},
+{1105, 1051931443u, 1048576000u, 1051931443u, 0, COPYSIGNF_TOLERANCE, 0},
+{1106, 1051931443u, 1050253722u, 1051931443u, 0, COPYSIGNF_TOLERANCE, 0},
+{1107, 1051931443u, 1051931443u, 1051931443u, 0, COPYSIGNF_TOLERANCE, 0},
+{1108, 1051931443u, 1053609165u, 1051931443u, 0, COPYSIGNF_TOLERANCE, 0},
+{1109, 1051931443u, 1055286886u, 1051931443u, 0, COPYSIGNF_TOLERANCE, 0},
+{1110, 1051931443u, 1056964608u, 1051931443u, 0, COPYSIGNF_TOLERANCE, 0},
+{1111, 1051931443u, 1057803469u, 1051931443u, 0, COPYSIGNF_TOLERANCE, 0},
+{1112, 1051931443u, 1058642330u, 1051931443u, 0, COPYSIGNF_TOLERANCE, 0},
+{1113, 1051931443u, 1059481190u, 1051931443u, 0, COPYSIGNF_TOLERANCE, 0},
+{1114, 1051931443u, 1060320051u, 1051931443u, 0, COPYSIGNF_TOLERANCE, 0},
+{1115, 1051931443u, 1061158912u, 1051931443u, 0, COPYSIGNF_TOLERANCE, 0},
+{1116, 1051931443u, 1061997773u, 1051931443u, 0, COPYSIGNF_TOLERANCE, 0},
+{1117, 1051931443u, 1062836634u, 1051931443u, 0, COPYSIGNF_TOLERANCE, 0},
+{1118, 1051931443u, 1063675494u, 1051931443u, 0, COPYSIGNF_TOLERANCE, 0},
+{1119, 1051931443u, 1064514355u, 1051931443u, 0, COPYSIGNF_TOLERANCE, 0},
+{1120, 1053609165u, 3212836864u, 3201092813u, 0, COPYSIGNF_TOLERANCE, 0},
+{1121, 1053609165u, 3211998003u, 3201092813u, 0, COPYSIGNF_TOLERANCE, 0},
+{1122, 1053609165u, 3211159142u, 3201092813u, 0, COPYSIGNF_TOLERANCE, 0},
+{1123, 1053609165u, 3210320282u, 3201092813u, 0, COPYSIGNF_TOLERANCE, 0},
+{1124, 1053609165u, 3209481421u, 3201092813u, 0, COPYSIGNF_TOLERANCE, 0},
+{1125, 1053609165u, 3208642560u, 3201092813u, 0, COPYSIGNF_TOLERANCE, 0},
+{1126, 1053609165u, 3207803699u, 3201092813u, 0, COPYSIGNF_TOLERANCE, 0},
+{1127, 1053609165u, 3206964838u, 3201092813u, 0, COPYSIGNF_TOLERANCE, 0},
+{1128, 1053609165u, 3206125978u, 3201092813u, 0, COPYSIGNF_TOLERANCE, 0},
+{1129, 1053609165u, 3205287117u, 3201092813u, 0, COPYSIGNF_TOLERANCE, 0},
+{1130, 1053609165u, 3204448256u, 3201092813u, 0, COPYSIGNF_TOLERANCE, 0},
+{1131, 1053609165u, 3202770534u, 3201092813u, 0, COPYSIGNF_TOLERANCE, 0},
+{1132, 1053609165u, 3201092813u, 3201092813u, 0, COPYSIGNF_TOLERANCE, 0},
+{1133, 1053609165u, 3199415091u, 3201092813u, 0, COPYSIGNF_TOLERANCE, 0},
+{1134, 1053609165u, 3197737370u, 3201092813u, 0, COPYSIGNF_TOLERANCE, 0},
+{1135, 1053609165u, 3196059648u, 3201092813u, 0, COPYSIGNF_TOLERANCE, 0},
+{1136, 1053609165u, 3192704205u, 3201092813u, 0, COPYSIGNF_TOLERANCE, 0},
+{1137, 1053609165u, 3189348762u, 3201092813u, 0, COPYSIGNF_TOLERANCE, 0},
+{1138, 1053609165u, 3184315597u, 3201092813u, 0, COPYSIGNF_TOLERANCE, 0},
+{1139, 1053609165u, 3175926989u, 3201092813u, 0, COPYSIGNF_TOLERANCE, 0},
+{1140, 1053609165u, 632815616u, 1053609165u, 0, COPYSIGNF_TOLERANCE, 0},
+{1141, 1053609165u, 1028443341u, 1053609165u, 0, COPYSIGNF_TOLERANCE, 0},
+{1142, 1053609165u, 1036831949u, 1053609165u, 0, COPYSIGNF_TOLERANCE, 0},
+{1143, 1053609165u, 1041865114u, 1053609165u, 0, COPYSIGNF_TOLERANCE, 0},
+{1144, 1053609165u, 1045220557u, 1053609165u, 0, COPYSIGNF_TOLERANCE, 0},
+{1145, 1053609165u, 1048576000u, 1053609165u, 0, COPYSIGNF_TOLERANCE, 0},
+{1146, 1053609165u, 1050253722u, 1053609165u, 0, COPYSIGNF_TOLERANCE, 0},
+{1147, 1053609165u, 1051931443u, 1053609165u, 0, COPYSIGNF_TOLERANCE, 0},
+{1148, 1053609165u, 1053609165u, 1053609165u, 0, COPYSIGNF_TOLERANCE, 0},
+{1149, 1053609165u, 1055286886u, 1053609165u, 0, COPYSIGNF_TOLERANCE, 0},
+{1150, 1053609165u, 1056964608u, 1053609165u, 0, COPYSIGNF_TOLERANCE, 0},
+{1151, 1053609165u, 1057803469u, 1053609165u, 0, COPYSIGNF_TOLERANCE, 0},
+{1152, 1053609165u, 1058642330u, 1053609165u, 0, COPYSIGNF_TOLERANCE, 0},
+{1153, 1053609165u, 1059481190u, 1053609165u, 0, COPYSIGNF_TOLERANCE, 0},
+{1154, 1053609165u, 1060320051u, 1053609165u, 0, COPYSIGNF_TOLERANCE, 0},
+{1155, 1053609165u, 1061158912u, 1053609165u, 0, COPYSIGNF_TOLERANCE, 0},
+{1156, 1053609165u, 1061997773u, 1053609165u, 0, COPYSIGNF_TOLERANCE, 0},
+{1157, 1053609165u, 1062836634u, 1053609165u, 0, COPYSIGNF_TOLERANCE, 0},
+{1158, 1053609165u, 1063675494u, 1053609165u, 0, COPYSIGNF_TOLERANCE, 0},
+{1159, 1053609165u, 1064514355u, 1053609165u, 0, COPYSIGNF_TOLERANCE, 0},
+{1160, 1055286886u, 3212836864u, 3202770534u, 0, COPYSIGNF_TOLERANCE, 0},
+{1161, 1055286886u, 3211998003u, 3202770534u, 0, COPYSIGNF_TOLERANCE, 0},
+{1162, 1055286886u, 3211159142u, 3202770534u, 0, COPYSIGNF_TOLERANCE, 0},
+{1163, 1055286886u, 3210320282u, 3202770534u, 0, COPYSIGNF_TOLERANCE, 0},
+{1164, 1055286886u, 3209481421u, 3202770534u, 0, COPYSIGNF_TOLERANCE, 0},
+{1165, 1055286886u, 3208642560u, 3202770534u, 0, COPYSIGNF_TOLERANCE, 0},
+{1166, 1055286886u, 3207803699u, 3202770534u, 0, COPYSIGNF_TOLERANCE, 0},
+{1167, 1055286886u, 3206964838u, 3202770534u, 0, COPYSIGNF_TOLERANCE, 0},
+{1168, 1055286886u, 3206125978u, 3202770534u, 0, COPYSIGNF_TOLERANCE, 0},
+{1169, 1055286886u, 3205287117u, 3202770534u, 0, COPYSIGNF_TOLERANCE, 0},
+{1170, 1055286886u, 3204448256u, 3202770534u, 0, COPYSIGNF_TOLERANCE, 0},
+{1171, 1055286886u, 3202770534u, 3202770534u, 0, COPYSIGNF_TOLERANCE, 0},
+{1172, 1055286886u, 3201092813u, 3202770534u, 0, COPYSIGNF_TOLERANCE, 0},
+{1173, 1055286886u, 3199415091u, 3202770534u, 0, COPYSIGNF_TOLERANCE, 0},
+{1174, 1055286886u, 3197737370u, 3202770534u, 0, COPYSIGNF_TOLERANCE, 0},
+{1175, 1055286886u, 3196059648u, 3202770534u, 0, COPYSIGNF_TOLERANCE, 0},
+{1176, 1055286886u, 3192704205u, 3202770534u, 0, COPYSIGNF_TOLERANCE, 0},
+{1177, 1055286886u, 3189348762u, 3202770534u, 0, COPYSIGNF_TOLERANCE, 0},
+{1178, 1055286886u, 3184315597u, 3202770534u, 0, COPYSIGNF_TOLERANCE, 0},
+{1179, 1055286886u, 3175926989u, 3202770534u, 0, COPYSIGNF_TOLERANCE, 0},
+{1180, 1055286886u, 632815616u, 1055286886u, 0, COPYSIGNF_TOLERANCE, 0},
+{1181, 1055286886u, 1028443341u, 1055286886u, 0, COPYSIGNF_TOLERANCE, 0},
+{1182, 1055286886u, 1036831949u, 1055286886u, 0, COPYSIGNF_TOLERANCE, 0},
+{1183, 1055286886u, 1041865114u, 1055286886u, 0, COPYSIGNF_TOLERANCE, 0},
+{1184, 1055286886u, 1045220557u, 1055286886u, 0, COPYSIGNF_TOLERANCE, 0},
+{1185, 1055286886u, 1048576000u, 1055286886u, 0, COPYSIGNF_TOLERANCE, 0},
+{1186, 1055286886u, 1050253722u, 1055286886u, 0, COPYSIGNF_TOLERANCE, 0},
+{1187, 1055286886u, 1051931443u, 1055286886u, 0, COPYSIGNF_TOLERANCE, 0},
+{1188, 1055286886u, 1053609165u, 1055286886u, 0, COPYSIGNF_TOLERANCE, 0},
+{1189, 1055286886u, 1055286886u, 1055286886u, 0, COPYSIGNF_TOLERANCE, 0},
+{1190, 1055286886u, 1056964608u, 1055286886u, 0, COPYSIGNF_TOLERANCE, 0},
+{1191, 1055286886u, 1057803469u, 1055286886u, 0, COPYSIGNF_TOLERANCE, 0},
+{1192, 1055286886u, 1058642330u, 1055286886u, 0, COPYSIGNF_TOLERANCE, 0},
+{1193, 1055286886u, 1059481190u, 1055286886u, 0, COPYSIGNF_TOLERANCE, 0},
+{1194, 1055286886u, 1060320051u, 1055286886u, 0, COPYSIGNF_TOLERANCE, 0},
+{1195, 1055286886u, 1061158912u, 1055286886u, 0, COPYSIGNF_TOLERANCE, 0},
+{1196, 1055286886u, 1061997773u, 1055286886u, 0, COPYSIGNF_TOLERANCE, 0},
+{1197, 1055286886u, 1062836634u, 1055286886u, 0, COPYSIGNF_TOLERANCE, 0},
+{1198, 1055286886u, 1063675494u, 1055286886u, 0, COPYSIGNF_TOLERANCE, 0},
+{1199, 1055286886u, 1064514355u, 1055286886u, 0, COPYSIGNF_TOLERANCE, 0},
+{1200, 1056964608u, 3212836864u, 3204448256u, 0, COPYSIGNF_TOLERANCE, 0},
+{1201, 1056964608u, 3211998003u, 3204448256u, 0, COPYSIGNF_TOLERANCE, 0},
+{1202, 1056964608u, 3211159142u, 3204448256u, 0, COPYSIGNF_TOLERANCE, 0},
+{1203, 1056964608u, 3210320282u, 3204448256u, 0, COPYSIGNF_TOLERANCE, 0},
+{1204, 1056964608u, 3209481421u, 3204448256u, 0, COPYSIGNF_TOLERANCE, 0},
+{1205, 1056964608u, 3208642560u, 3204448256u, 0, COPYSIGNF_TOLERANCE, 0},
+{1206, 1056964608u, 3207803699u, 3204448256u, 0, COPYSIGNF_TOLERANCE, 0},
+{1207, 1056964608u, 3206964838u, 3204448256u, 0, COPYSIGNF_TOLERANCE, 0},
+{1208, 1056964608u, 3206125978u, 3204448256u, 0, COPYSIGNF_TOLERANCE, 0},
+{1209, 1056964608u, 3205287117u, 3204448256u, 0, COPYSIGNF_TOLERANCE, 0},
+{1210, 1056964608u, 3204448256u, 3204448256u, 0, COPYSIGNF_TOLERANCE, 0},
+{1211, 1056964608u, 3202770534u, 3204448256u, 0, COPYSIGNF_TOLERANCE, 0},
+{1212, 1056964608u, 3201092813u, 3204448256u, 0, COPYSIGNF_TOLERANCE, 0},
+{1213, 1056964608u, 3199415091u, 3204448256u, 0, COPYSIGNF_TOLERANCE, 0},
+{1214, 1056964608u, 3197737370u, 3204448256u, 0, COPYSIGNF_TOLERANCE, 0},
+{1215, 1056964608u, 3196059648u, 3204448256u, 0, COPYSIGNF_TOLERANCE, 0},
+{1216, 1056964608u, 3192704205u, 3204448256u, 0, COPYSIGNF_TOLERANCE, 0},
+{1217, 1056964608u, 3189348762u, 3204448256u, 0, COPYSIGNF_TOLERANCE, 0},
+{1218, 1056964608u, 3184315597u, 3204448256u, 0, COPYSIGNF_TOLERANCE, 0},
+{1219, 1056964608u, 3175926989u, 3204448256u, 0, COPYSIGNF_TOLERANCE, 0},
+{1220, 1056964608u, 632815616u, 1056964608u, 0, COPYSIGNF_TOLERANCE, 0},
+{1221, 1056964608u, 1028443341u, 1056964608u, 0, COPYSIGNF_TOLERANCE, 0},
+{1222, 1056964608u, 1036831949u, 1056964608u, 0, COPYSIGNF_TOLERANCE, 0},
+{1223, 1056964608u, 1041865114u, 1056964608u, 0, COPYSIGNF_TOLERANCE, 0},
+{1224, 1056964608u, 1045220557u, 1056964608u, 0, COPYSIGNF_TOLERANCE, 0},
+{1225, 1056964608u, 1048576000u, 1056964608u, 0, COPYSIGNF_TOLERANCE, 0},
+{1226, 1056964608u, 1050253722u, 1056964608u, 0, COPYSIGNF_TOLERANCE, 0},
+{1227, 1056964608u, 1051931443u, 1056964608u, 0, COPYSIGNF_TOLERANCE, 0},
+{1228, 1056964608u, 1053609165u, 1056964608u, 0, COPYSIGNF_TOLERANCE, 0},
+{1229, 1056964608u, 1055286886u, 1056964608u, 0, COPYSIGNF_TOLERANCE, 0},
+{1230, 1056964608u, 1056964608u, 1056964608u, 0, COPYSIGNF_TOLERANCE, 0},
+{1231, 1056964608u, 1057803469u, 1056964608u, 0, COPYSIGNF_TOLERANCE, 0},
+{1232, 1056964608u, 1058642330u, 1056964608u, 0, COPYSIGNF_TOLERANCE, 0},
+{1233, 1056964608u, 1059481190u, 1056964608u, 0, COPYSIGNF_TOLERANCE, 0},
+{1234, 1056964608u, 1060320051u, 1056964608u, 0, COPYSIGNF_TOLERANCE, 0},
+{1235, 1056964608u, 1061158912u, 1056964608u, 0, COPYSIGNF_TOLERANCE, 0},
+{1236, 1056964608u, 1061997773u, 1056964608u, 0, COPYSIGNF_TOLERANCE, 0},
+{1237, 1056964608u, 1062836634u, 1056964608u, 0, COPYSIGNF_TOLERANCE, 0},
+{1238, 1056964608u, 1063675494u, 1056964608u, 0, COPYSIGNF_TOLERANCE, 0},
+{1239, 1056964608u, 1064514355u, 1056964608u, 0, COPYSIGNF_TOLERANCE, 0},
+{1240, 1057803469u, 3212836864u, 3205287117u, 0, COPYSIGNF_TOLERANCE, 0},
+{1241, 1057803469u, 3211998003u, 3205287117u, 0, COPYSIGNF_TOLERANCE, 0},
+{1242, 1057803469u, 3211159142u, 3205287117u, 0, COPYSIGNF_TOLERANCE, 0},
+{1243, 1057803469u, 3210320282u, 3205287117u, 0, COPYSIGNF_TOLERANCE, 0},
+{1244, 1057803469u, 3209481421u, 3205287117u, 0, COPYSIGNF_TOLERANCE, 0},
+{1245, 1057803469u, 3208642560u, 3205287117u, 0, COPYSIGNF_TOLERANCE, 0},
+{1246, 1057803469u, 3207803699u, 3205287117u, 0, COPYSIGNF_TOLERANCE, 0},
+{1247, 1057803469u, 3206964838u, 3205287117u, 0, COPYSIGNF_TOLERANCE, 0},
+{1248, 1057803469u, 3206125978u, 3205287117u, 0, COPYSIGNF_TOLERANCE, 0},
+{1249, 1057803469u, 3205287117u, 3205287117u, 0, COPYSIGNF_TOLERANCE, 0},
+{1250, 1057803469u, 3204448256u, 3205287117u, 0, COPYSIGNF_TOLERANCE, 0},
+{1251, 1057803469u, 3202770534u, 3205287117u, 0, COPYSIGNF_TOLERANCE, 0},
+{1252, 1057803469u, 3201092813u, 3205287117u, 0, COPYSIGNF_TOLERANCE, 0},
+{1253, 1057803469u, 3199415091u, 3205287117u, 0, COPYSIGNF_TOLERANCE, 0},
+{1254, 1057803469u, 3197737370u, 3205287117u, 0, COPYSIGNF_TOLERANCE, 0},
+{1255, 1057803469u, 3196059648u, 3205287117u, 0, COPYSIGNF_TOLERANCE, 0},
+{1256, 1057803469u, 3192704205u, 3205287117u, 0, COPYSIGNF_TOLERANCE, 0},
+{1257, 1057803469u, 3189348762u, 3205287117u, 0, COPYSIGNF_TOLERANCE, 0},
+{1258, 1057803469u, 3184315597u, 3205287117u, 0, COPYSIGNF_TOLERANCE, 0},
+{1259, 1057803469u, 3175926989u, 3205287117u, 0, COPYSIGNF_TOLERANCE, 0},
+{1260, 1057803469u, 632815616u, 1057803469u, 0, COPYSIGNF_TOLERANCE, 0},
+{1261, 1057803469u, 1028443341u, 1057803469u, 0, COPYSIGNF_TOLERANCE, 0},
+{1262, 1057803469u, 1036831949u, 1057803469u, 0, COPYSIGNF_TOLERANCE, 0},
+{1263, 1057803469u, 1041865114u, 1057803469u, 0, COPYSIGNF_TOLERANCE, 0},
+{1264, 1057803469u, 1045220557u, 1057803469u, 0, COPYSIGNF_TOLERANCE, 0},
+{1265, 1057803469u, 1048576000u, 1057803469u, 0, COPYSIGNF_TOLERANCE, 0},
+{1266, 1057803469u, 1050253722u, 1057803469u, 0, COPYSIGNF_TOLERANCE, 0},
+{1267, 1057803469u, 1051931443u, 1057803469u, 0, COPYSIGNF_TOLERANCE, 0},
+{1268, 1057803469u, 1053609165u, 1057803469u, 0, COPYSIGNF_TOLERANCE, 0},
+{1269, 1057803469u, 1055286886u, 1057803469u, 0, COPYSIGNF_TOLERANCE, 0},
+{1270, 1057803469u, 1056964608u, 1057803469u, 0, COPYSIGNF_TOLERANCE, 0},
+{1271, 1057803469u, 1057803469u, 1057803469u, 0, COPYSIGNF_TOLERANCE, 0},
+{1272, 1057803469u, 1058642330u, 1057803469u, 0, COPYSIGNF_TOLERANCE, 0},
+{1273, 1057803469u, 1059481190u, 1057803469u, 0, COPYSIGNF_TOLERANCE, 0},
+{1274, 1057803469u, 1060320051u, 1057803469u, 0, COPYSIGNF_TOLERANCE, 0},
+{1275, 1057803469u, 1061158912u, 1057803469u, 0, COPYSIGNF_TOLERANCE, 0},
+{1276, 1057803469u, 1061997773u, 1057803469u, 0, COPYSIGNF_TOLERANCE, 0},
+{1277, 1057803469u, 1062836634u, 1057803469u, 0, COPYSIGNF_TOLERANCE, 0},
+{1278, 1057803469u, 1063675494u, 1057803469u, 0, COPYSIGNF_TOLERANCE, 0},
+{1279, 1057803469u, 1064514355u, 1057803469u, 0, COPYSIGNF_TOLERANCE, 0},
+{1280, 1058642330u, 3212836864u, 3206125978u, 0, COPYSIGNF_TOLERANCE, 0},
+{1281, 1058642330u, 3211998003u, 3206125978u, 0, COPYSIGNF_TOLERANCE, 0},
+{1282, 1058642330u, 3211159142u, 3206125978u, 0, COPYSIGNF_TOLERANCE, 0},
+{1283, 1058642330u, 3210320282u, 3206125978u, 0, COPYSIGNF_TOLERANCE, 0},
+{1284, 1058642330u, 3209481421u, 3206125978u, 0, COPYSIGNF_TOLERANCE, 0},
+{1285, 1058642330u, 3208642560u, 3206125978u, 0, COPYSIGNF_TOLERANCE, 0},
+{1286, 1058642330u, 3207803699u, 3206125978u, 0, COPYSIGNF_TOLERANCE, 0},
+{1287, 1058642330u, 3206964838u, 3206125978u, 0, COPYSIGNF_TOLERANCE, 0},
+{1288, 1058642330u, 3206125978u, 3206125978u, 0, COPYSIGNF_TOLERANCE, 0},
+{1289, 1058642330u, 3205287117u, 3206125978u, 0, COPYSIGNF_TOLERANCE, 0},
+{1290, 1058642330u, 3204448256u, 3206125978u, 0, COPYSIGNF_TOLERANCE, 0},
+{1291, 1058642330u, 3202770534u, 3206125978u, 0, COPYSIGNF_TOLERANCE, 0},
+{1292, 1058642330u, 3201092813u, 3206125978u, 0, COPYSIGNF_TOLERANCE, 0},
+{1293, 1058642330u, 3199415091u, 3206125978u, 0, COPYSIGNF_TOLERANCE, 0},
+{1294, 1058642330u, 3197737370u, 3206125978u, 0, COPYSIGNF_TOLERANCE, 0},
+{1295, 1058642330u, 3196059648u, 3206125978u, 0, COPYSIGNF_TOLERANCE, 0},
+{1296, 1058642330u, 3192704205u, 3206125978u, 0, COPYSIGNF_TOLERANCE, 0},
+{1297, 1058642330u, 3189348762u, 3206125978u, 0, COPYSIGNF_TOLERANCE, 0},
+{1298, 1058642330u, 3184315597u, 3206125978u, 0, COPYSIGNF_TOLERANCE, 0},
+{1299, 1058642330u, 3175926989u, 3206125978u, 0, COPYSIGNF_TOLERANCE, 0},
+{1300, 1058642330u, 632815616u, 1058642330u, 0, COPYSIGNF_TOLERANCE, 0},
+{1301, 1058642330u, 1028443341u, 1058642330u, 0, COPYSIGNF_TOLERANCE, 0},
+{1302, 1058642330u, 1036831949u, 1058642330u, 0, COPYSIGNF_TOLERANCE, 0},
+{1303, 1058642330u, 1041865114u, 1058642330u, 0, COPYSIGNF_TOLERANCE, 0},
+{1304, 1058642330u, 1045220557u, 1058642330u, 0, COPYSIGNF_TOLERANCE, 0},
+{1305, 1058642330u, 1048576000u, 1058642330u, 0, COPYSIGNF_TOLERANCE, 0},
+{1306, 1058642330u, 1050253722u, 1058642330u, 0, COPYSIGNF_TOLERANCE, 0},
+{1307, 1058642330u, 1051931443u, 1058642330u, 0, COPYSIGNF_TOLERANCE, 0},
+{1308, 1058642330u, 1053609165u, 1058642330u, 0, COPYSIGNF_TOLERANCE, 0},
+{1309, 1058642330u, 1055286886u, 1058642330u, 0, COPYSIGNF_TOLERANCE, 0},
+{1310, 1058642330u, 1056964608u, 1058642330u, 0, COPYSIGNF_TOLERANCE, 0},
+{1311, 1058642330u, 1057803469u, 1058642330u, 0, COPYSIGNF_TOLERANCE, 0},
+{1312, 1058642330u, 1058642330u, 1058642330u, 0, COPYSIGNF_TOLERANCE, 0},
+{1313, 1058642330u, 1059481190u, 1058642330u, 0, COPYSIGNF_TOLERANCE, 0},
+{1314, 1058642330u, 1060320051u, 1058642330u, 0, COPYSIGNF_TOLERANCE, 0},
+{1315, 1058642330u, 1061158912u, 1058642330u, 0, COPYSIGNF_TOLERANCE, 0},
+{1316, 1058642330u, 1061997773u, 1058642330u, 0, COPYSIGNF_TOLERANCE, 0},
+{1317, 1058642330u, 1062836634u, 1058642330u, 0, COPYSIGNF_TOLERANCE, 0},
+{1318, 1058642330u, 1063675494u, 1058642330u, 0, COPYSIGNF_TOLERANCE, 0},
+{1319, 1058642330u, 1064514355u, 1058642330u, 0, COPYSIGNF_TOLERANCE, 0},
+{1320, 1059481190u, 3212836864u, 3206964838u, 0, COPYSIGNF_TOLERANCE, 0},
+{1321, 1059481190u, 3211998003u, 3206964838u, 0, COPYSIGNF_TOLERANCE, 0},
+{1322, 1059481190u, 3211159142u, 3206964838u, 0, COPYSIGNF_TOLERANCE, 0},
+{1323, 1059481190u, 3210320282u, 3206964838u, 0, COPYSIGNF_TOLERANCE, 0},
+{1324, 1059481190u, 3209481421u, 3206964838u, 0, COPYSIGNF_TOLERANCE, 0},
+{1325, 1059481190u, 3208642560u, 3206964838u, 0, COPYSIGNF_TOLERANCE, 0},
+{1326, 1059481190u, 3207803699u, 3206964838u, 0, COPYSIGNF_TOLERANCE, 0},
+{1327, 1059481190u, 3206964838u, 3206964838u, 0, COPYSIGNF_TOLERANCE, 0},
+{1328, 1059481190u, 3206125978u, 3206964838u, 0, COPYSIGNF_TOLERANCE, 0},
+{1329, 1059481190u, 3205287117u, 3206964838u, 0, COPYSIGNF_TOLERANCE, 0},
+{1330, 1059481190u, 3204448256u, 3206964838u, 0, COPYSIGNF_TOLERANCE, 0},
+{1331, 1059481190u, 3202770534u, 3206964838u, 0, COPYSIGNF_TOLERANCE, 0},
+{1332, 1059481190u, 3201092813u, 3206964838u, 0, COPYSIGNF_TOLERANCE, 0},
+{1333, 1059481190u, 3199415091u, 3206964838u, 0, COPYSIGNF_TOLERANCE, 0},
+{1334, 1059481190u, 3197737370u, 3206964838u, 0, COPYSIGNF_TOLERANCE, 0},
+{1335, 1059481190u, 3196059648u, 3206964838u, 0, COPYSIGNF_TOLERANCE, 0},
+{1336, 1059481190u, 3192704205u, 3206964838u, 0, COPYSIGNF_TOLERANCE, 0},
+{1337, 1059481190u, 3189348762u, 3206964838u, 0, COPYSIGNF_TOLERANCE, 0},
+{1338, 1059481190u, 3184315597u, 3206964838u, 0, COPYSIGNF_TOLERANCE, 0},
+{1339, 1059481190u, 3175926989u, 3206964838u, 0, COPYSIGNF_TOLERANCE, 0},
+{1340, 1059481190u, 632815616u, 1059481190u, 0, COPYSIGNF_TOLERANCE, 0},
+{1341, 1059481190u, 1028443341u, 1059481190u, 0, COPYSIGNF_TOLERANCE, 0},
+{1342, 1059481190u, 1036831949u, 1059481190u, 0, COPYSIGNF_TOLERANCE, 0},
+{1343, 1059481190u, 1041865114u, 1059481190u, 0, COPYSIGNF_TOLERANCE, 0},
+{1344, 1059481190u, 1045220557u, 1059481190u, 0, COPYSIGNF_TOLERANCE, 0},
+{1345, 1059481190u, 1048576000u, 1059481190u, 0, COPYSIGNF_TOLERANCE, 0},
+{1346, 1059481190u, 1050253722u, 1059481190u, 0, COPYSIGNF_TOLERANCE, 0},
+{1347, 1059481190u, 1051931443u, 1059481190u, 0, COPYSIGNF_TOLERANCE, 0},
+{1348, 1059481190u, 1053609165u, 1059481190u, 0, COPYSIGNF_TOLERANCE, 0},
+{1349, 1059481190u, 1055286886u, 1059481190u, 0, COPYSIGNF_TOLERANCE, 0},
+{1350, 1059481190u, 1056964608u, 1059481190u, 0, COPYSIGNF_TOLERANCE, 0},
+{1351, 1059481190u, 1057803469u, 1059481190u, 0, COPYSIGNF_TOLERANCE, 0},
+{1352, 1059481190u, 1058642330u, 1059481190u, 0, COPYSIGNF_TOLERANCE, 0},
+{1353, 1059481190u, 1059481190u, 1059481190u, 0, COPYSIGNF_TOLERANCE, 0},
+{1354, 1059481190u, 1060320051u, 1059481190u, 0, COPYSIGNF_TOLERANCE, 0},
+{1355, 1059481190u, 1061158912u, 1059481190u, 0, COPYSIGNF_TOLERANCE, 0},
+{1356, 1059481190u, 1061997773u, 1059481190u, 0, COPYSIGNF_TOLERANCE, 0},
+{1357, 1059481190u, 1062836634u, 1059481190u, 0, COPYSIGNF_TOLERANCE, 0},
+{1358, 1059481190u, 1063675494u, 1059481190u, 0, COPYSIGNF_TOLERANCE, 0},
+{1359, 1059481190u, 1064514355u, 1059481190u, 0, COPYSIGNF_TOLERANCE, 0},
+{1360, 1060320051u, 3212836864u, 3207803699u, 0, COPYSIGNF_TOLERANCE, 0},
+{1361, 1060320051u, 3211998003u, 3207803699u, 0, COPYSIGNF_TOLERANCE, 0},
+{1362, 1060320051u, 3211159142u, 3207803699u, 0, COPYSIGNF_TOLERANCE, 0},
+{1363, 1060320051u, 3210320282u, 3207803699u, 0, COPYSIGNF_TOLERANCE, 0},
+{1364, 1060320051u, 3209481421u, 3207803699u, 0, COPYSIGNF_TOLERANCE, 0},
+{1365, 1060320051u, 3208642560u, 3207803699u, 0, COPYSIGNF_TOLERANCE, 0},
+{1366, 1060320051u, 3207803699u, 3207803699u, 0, COPYSIGNF_TOLERANCE, 0},
+{1367, 1060320051u, 3206964838u, 3207803699u, 0, COPYSIGNF_TOLERANCE, 0},
+{1368, 1060320051u, 3206125978u, 3207803699u, 0, COPYSIGNF_TOLERANCE, 0},
+{1369, 1060320051u, 3205287117u, 3207803699u, 0, COPYSIGNF_TOLERANCE, 0},
+{1370, 1060320051u, 3204448256u, 3207803699u, 0, COPYSIGNF_TOLERANCE, 0},
+{1371, 1060320051u, 3202770534u, 3207803699u, 0, COPYSIGNF_TOLERANCE, 0},
+{1372, 1060320051u, 3201092813u, 3207803699u, 0, COPYSIGNF_TOLERANCE, 0},
+{1373, 1060320051u, 3199415091u, 3207803699u, 0, COPYSIGNF_TOLERANCE, 0},
+{1374, 1060320051u, 3197737370u, 3207803699u, 0, COPYSIGNF_TOLERANCE, 0},
+{1375, 1060320051u, 3196059648u, 3207803699u, 0, COPYSIGNF_TOLERANCE, 0},
+{1376, 1060320051u, 3192704205u, 3207803699u, 0, COPYSIGNF_TOLERANCE, 0},
+{1377, 1060320051u, 3189348762u, 3207803699u, 0, COPYSIGNF_TOLERANCE, 0},
+{1378, 1060320051u, 3184315597u, 3207803699u, 0, COPYSIGNF_TOLERANCE, 0},
+{1379, 1060320051u, 3175926989u, 3207803699u, 0, COPYSIGNF_TOLERANCE, 0},
+{1380, 1060320051u, 632815616u, 1060320051u, 0, COPYSIGNF_TOLERANCE, 0},
+{1381, 1060320051u, 1028443341u, 1060320051u, 0, COPYSIGNF_TOLERANCE, 0},
+{1382, 1060320051u, 1036831949u, 1060320051u, 0, COPYSIGNF_TOLERANCE, 0},
+{1383, 1060320051u, 1041865114u, 1060320051u, 0, COPYSIGNF_TOLERANCE, 0},
+{1384, 1060320051u, 1045220557u, 1060320051u, 0, COPYSIGNF_TOLERANCE, 0},
+{1385, 1060320051u, 1048576000u, 1060320051u, 0, COPYSIGNF_TOLERANCE, 0},
+{1386, 1060320051u, 1050253722u, 1060320051u, 0, COPYSIGNF_TOLERANCE, 0},
+{1387, 1060320051u, 1051931443u, 1060320051u, 0, COPYSIGNF_TOLERANCE, 0},
+{1388, 1060320051u, 1053609165u, 1060320051u, 0, COPYSIGNF_TOLERANCE, 0},
+{1389, 1060320051u, 1055286886u, 1060320051u, 0, COPYSIGNF_TOLERANCE, 0},
+{1390, 1060320051u, 1056964608u, 1060320051u, 0, COPYSIGNF_TOLERANCE, 0},
+{1391, 1060320051u, 1057803469u, 1060320051u, 0, COPYSIGNF_TOLERANCE, 0},
+{1392, 1060320051u, 1058642330u, 1060320051u, 0, COPYSIGNF_TOLERANCE, 0},
+{1393, 1060320051u, 1059481190u, 1060320051u, 0, COPYSIGNF_TOLERANCE, 0},
+{1394, 1060320051u, 1060320051u, 1060320051u, 0, COPYSIGNF_TOLERANCE, 0},
+{1395, 1060320051u, 1061158912u, 1060320051u, 0, COPYSIGNF_TOLERANCE, 0},
+{1396, 1060320051u, 1061997773u, 1060320051u, 0, COPYSIGNF_TOLERANCE, 0},
+{1397, 1060320051u, 1062836634u, 1060320051u, 0, COPYSIGNF_TOLERANCE, 0},
+{1398, 1060320051u, 1063675494u, 1060320051u, 0, COPYSIGNF_TOLERANCE, 0},
+{1399, 1060320051u, 1064514355u, 1060320051u, 0, COPYSIGNF_TOLERANCE, 0},
+{1400, 1061158912u, 3212836864u, 3208642560u, 0, COPYSIGNF_TOLERANCE, 0},
+{1401, 1061158912u, 3211998003u, 3208642560u, 0, COPYSIGNF_TOLERANCE, 0},
+{1402, 1061158912u, 3211159142u, 3208642560u, 0, COPYSIGNF_TOLERANCE, 0},
+{1403, 1061158912u, 3210320282u, 3208642560u, 0, COPYSIGNF_TOLERANCE, 0},
+{1404, 1061158912u, 3209481421u, 3208642560u, 0, COPYSIGNF_TOLERANCE, 0},
+{1405, 1061158912u, 3208642560u, 3208642560u, 0, COPYSIGNF_TOLERANCE, 0},
+{1406, 1061158912u, 3207803699u, 3208642560u, 0, COPYSIGNF_TOLERANCE, 0},
+{1407, 1061158912u, 3206964838u, 3208642560u, 0, COPYSIGNF_TOLERANCE, 0},
+{1408, 1061158912u, 3206125978u, 3208642560u, 0, COPYSIGNF_TOLERANCE, 0},
+{1409, 1061158912u, 3205287117u, 3208642560u, 0, COPYSIGNF_TOLERANCE, 0},
+{1410, 1061158912u, 3204448256u, 3208642560u, 0, COPYSIGNF_TOLERANCE, 0},
+{1411, 1061158912u, 3202770534u, 3208642560u, 0, COPYSIGNF_TOLERANCE, 0},
+{1412, 1061158912u, 3201092813u, 3208642560u, 0, COPYSIGNF_TOLERANCE, 0},
+{1413, 1061158912u, 3199415091u, 3208642560u, 0, COPYSIGNF_TOLERANCE, 0},
+{1414, 1061158912u, 3197737370u, 3208642560u, 0, COPYSIGNF_TOLERANCE, 0},
+{1415, 1061158912u, 3196059648u, 3208642560u, 0, COPYSIGNF_TOLERANCE, 0},
+{1416, 1061158912u, 3192704205u, 3208642560u, 0, COPYSIGNF_TOLERANCE, 0},
+{1417, 1061158912u, 3189348762u, 3208642560u, 0, COPYSIGNF_TOLERANCE, 0},
+{1418, 1061158912u, 3184315597u, 3208642560u, 0, COPYSIGNF_TOLERANCE, 0},
+{1419, 1061158912u, 3175926989u, 3208642560u, 0, COPYSIGNF_TOLERANCE, 0},
+{1420, 1061158912u, 632815616u, 1061158912u, 0, COPYSIGNF_TOLERANCE, 0},
+{1421, 1061158912u, 1028443341u, 1061158912u, 0, COPYSIGNF_TOLERANCE, 0},
+{1422, 1061158912u, 1036831949u, 1061158912u, 0, COPYSIGNF_TOLERANCE, 0},
+{1423, 1061158912u, 1041865114u, 1061158912u, 0, COPYSIGNF_TOLERANCE, 0},
+{1424, 1061158912u, 1045220557u, 1061158912u, 0, COPYSIGNF_TOLERANCE, 0},
+{1425, 1061158912u, 1048576000u, 1061158912u, 0, COPYSIGNF_TOLERANCE, 0},
+{1426, 1061158912u, 1050253722u, 1061158912u, 0, COPYSIGNF_TOLERANCE, 0},
+{1427, 1061158912u, 1051931443u, 1061158912u, 0, COPYSIGNF_TOLERANCE, 0},
+{1428, 1061158912u, 1053609165u, 1061158912u, 0, COPYSIGNF_TOLERANCE, 0},
+{1429, 1061158912u, 1055286886u, 1061158912u, 0, COPYSIGNF_TOLERANCE, 0},
+{1430, 1061158912u, 1056964608u, 1061158912u, 0, COPYSIGNF_TOLERANCE, 0},
+{1431, 1061158912u, 1057803469u, 1061158912u, 0, COPYSIGNF_TOLERANCE, 0},
+{1432, 1061158912u, 1058642330u, 1061158912u, 0, COPYSIGNF_TOLERANCE, 0},
+{1433, 1061158912u, 1059481190u, 1061158912u, 0, COPYSIGNF_TOLERANCE, 0},
+{1434, 1061158912u, 1060320051u, 1061158912u, 0, COPYSIGNF_TOLERANCE, 0},
+{1435, 1061158912u, 1061158912u, 1061158912u, 0, COPYSIGNF_TOLERANCE, 0},
+{1436, 1061158912u, 1061997773u, 1061158912u, 0, COPYSIGNF_TOLERANCE, 0},
+{1437, 1061158912u, 1062836634u, 1061158912u, 0, COPYSIGNF_TOLERANCE, 0},
+{1438, 1061158912u, 1063675494u, 1061158912u, 0, COPYSIGNF_TOLERANCE, 0},
+{1439, 1061158912u, 1064514355u, 1061158912u, 0, COPYSIGNF_TOLERANCE, 0},
+{1440, 1061997773u, 3212836864u, 3209481421u, 0, COPYSIGNF_TOLERANCE, 0},
+{1441, 1061997773u, 3211998003u, 3209481421u, 0, COPYSIGNF_TOLERANCE, 0},
+{1442, 1061997773u, 3211159142u, 3209481421u, 0, COPYSIGNF_TOLERANCE, 0},
+{1443, 1061997773u, 3210320282u, 3209481421u, 0, COPYSIGNF_TOLERANCE, 0},
+{1444, 1061997773u, 3209481421u, 3209481421u, 0, COPYSIGNF_TOLERANCE, 0},
+{1445, 1061997773u, 3208642560u, 3209481421u, 0, COPYSIGNF_TOLERANCE, 0},
+{1446, 1061997773u, 3207803699u, 3209481421u, 0, COPYSIGNF_TOLERANCE, 0},
+{1447, 1061997773u, 3206964838u, 3209481421u, 0, COPYSIGNF_TOLERANCE, 0},
+{1448, 1061997773u, 3206125978u, 3209481421u, 0, COPYSIGNF_TOLERANCE, 0},
+{1449, 1061997773u, 3205287117u, 3209481421u, 0, COPYSIGNF_TOLERANCE, 0},
+{1450, 1061997773u, 3204448256u, 3209481421u, 0, COPYSIGNF_TOLERANCE, 0},
+{1451, 1061997773u, 3202770534u, 3209481421u, 0, COPYSIGNF_TOLERANCE, 0},
+{1452, 1061997773u, 3201092813u, 3209481421u, 0, COPYSIGNF_TOLERANCE, 0},
+{1453, 1061997773u, 3199415091u, 3209481421u, 0, COPYSIGNF_TOLERANCE, 0},
+{1454, 1061997773u, 3197737370u, 3209481421u, 0, COPYSIGNF_TOLERANCE, 0},
+{1455, 1061997773u, 3196059648u, 3209481421u, 0, COPYSIGNF_TOLERANCE, 0},
+{1456, 1061997773u, 3192704205u, 3209481421u, 0, COPYSIGNF_TOLERANCE, 0},
+{1457, 1061997773u, 3189348762u, 3209481421u, 0, COPYSIGNF_TOLERANCE, 0},
+{1458, 1061997773u, 3184315597u, 3209481421u, 0, COPYSIGNF_TOLERANCE, 0},
+{1459, 1061997773u, 3175926989u, 3209481421u, 0, COPYSIGNF_TOLERANCE, 0},
+{1460, 1061997773u, 632815616u, 1061997773u, 0, COPYSIGNF_TOLERANCE, 0},
+{1461, 1061997773u, 1028443341u, 1061997773u, 0, COPYSIGNF_TOLERANCE, 0},
+{1462, 1061997773u, 1036831949u, 1061997773u, 0, COPYSIGNF_TOLERANCE, 0},
+{1463, 1061997773u, 1041865114u, 1061997773u, 0, COPYSIGNF_TOLERANCE, 0},
+{1464, 1061997773u, 1045220557u, 1061997773u, 0, COPYSIGNF_TOLERANCE, 0},
+{1465, 1061997773u, 1048576000u, 1061997773u, 0, COPYSIGNF_TOLERANCE, 0},
+{1466, 1061997773u, 1050253722u, 1061997773u, 0, COPYSIGNF_TOLERANCE, 0},
+{1467, 1061997773u, 1051931443u, 1061997773u, 0, COPYSIGNF_TOLERANCE, 0},
+{1468, 1061997773u, 1053609165u, 1061997773u, 0, COPYSIGNF_TOLERANCE, 0},
+{1469, 1061997773u, 1055286886u, 1061997773u, 0, COPYSIGNF_TOLERANCE, 0},
+{1470, 1061997773u, 1056964608u, 1061997773u, 0, COPYSIGNF_TOLERANCE, 0},
+{1471, 1061997773u, 1057803469u, 1061997773u, 0, COPYSIGNF_TOLERANCE, 0},
+{1472, 1061997773u, 1058642330u, 1061997773u, 0, COPYSIGNF_TOLERANCE, 0},
+{1473, 1061997773u, 1059481190u, 1061997773u, 0, COPYSIGNF_TOLERANCE, 0},
+{1474, 1061997773u, 1060320051u, 1061997773u, 0, COPYSIGNF_TOLERANCE, 0},
+{1475, 1061997773u, 1061158912u, 1061997773u, 0, COPYSIGNF_TOLERANCE, 0},
+{1476, 1061997773u, 1061997773u, 1061997773u, 0, COPYSIGNF_TOLERANCE, 0},
+{1477, 1061997773u, 1062836634u, 1061997773u, 0, COPYSIGNF_TOLERANCE, 0},
+{1478, 1061997773u, 1063675494u, 1061997773u, 0, COPYSIGNF_TOLERANCE, 0},
+{1479, 1061997773u, 1064514355u, 1061997773u, 0, COPYSIGNF_TOLERANCE, 0},
+{1480, 1062836634u, 3212836864u, 3210320282u, 0, COPYSIGNF_TOLERANCE, 0},
+{1481, 1062836634u, 3211998003u, 3210320282u, 0, COPYSIGNF_TOLERANCE, 0},
+{1482, 1062836634u, 3211159142u, 3210320282u, 0, COPYSIGNF_TOLERANCE, 0},
+{1483, 1062836634u, 3210320282u, 3210320282u, 0, COPYSIGNF_TOLERANCE, 0},
+{1484, 1062836634u, 3209481421u, 3210320282u, 0, COPYSIGNF_TOLERANCE, 0},
+{1485, 1062836634u, 3208642560u, 3210320282u, 0, COPYSIGNF_TOLERANCE, 0},
+{1486, 1062836634u, 3207803699u, 3210320282u, 0, COPYSIGNF_TOLERANCE, 0},
+{1487, 1062836634u, 3206964838u, 3210320282u, 0, COPYSIGNF_TOLERANCE, 0},
+{1488, 1062836634u, 3206125978u, 3210320282u, 0, COPYSIGNF_TOLERANCE, 0},
+{1489, 1062836634u, 3205287117u, 3210320282u, 0, COPYSIGNF_TOLERANCE, 0},
+{1490, 1062836634u, 3204448256u, 3210320282u, 0, COPYSIGNF_TOLERANCE, 0},
+{1491, 1062836634u, 3202770534u, 3210320282u, 0, COPYSIGNF_TOLERANCE, 0},
+{1492, 1062836634u, 3201092813u, 3210320282u, 0, COPYSIGNF_TOLERANCE, 0},
+{1493, 1062836634u, 3199415091u, 3210320282u, 0, COPYSIGNF_TOLERANCE, 0},
+{1494, 1062836634u, 3197737370u, 3210320282u, 0, COPYSIGNF_TOLERANCE, 0},
+{1495, 1062836634u, 3196059648u, 3210320282u, 0, COPYSIGNF_TOLERANCE, 0},
+{1496, 1062836634u, 3192704205u, 3210320282u, 0, COPYSIGNF_TOLERANCE, 0},
+{1497, 1062836634u, 3189348762u, 3210320282u, 0, COPYSIGNF_TOLERANCE, 0},
+{1498, 1062836634u, 3184315597u, 3210320282u, 0, COPYSIGNF_TOLERANCE, 0},
+{1499, 1062836634u, 3175926989u, 3210320282u, 0, COPYSIGNF_TOLERANCE, 0},
+{1500, 1062836634u, 632815616u, 1062836634u, 0, COPYSIGNF_TOLERANCE, 0},
+{1501, 1062836634u, 1028443341u, 1062836634u, 0, COPYSIGNF_TOLERANCE, 0},
+{1502, 1062836634u, 1036831949u, 1062836634u, 0, COPYSIGNF_TOLERANCE, 0},
+{1503, 1062836634u, 1041865114u, 1062836634u, 0, COPYSIGNF_TOLERANCE, 0},
+{1504, 1062836634u, 1045220557u, 1062836634u, 0, COPYSIGNF_TOLERANCE, 0},
+{1505, 1062836634u, 1048576000u, 1062836634u, 0, COPYSIGNF_TOLERANCE, 0},
+{1506, 1062836634u, 1050253722u, 1062836634u, 0, COPYSIGNF_TOLERANCE, 0},
+{1507, 1062836634u, 1051931443u, 1062836634u, 0, COPYSIGNF_TOLERANCE, 0},
+{1508, 1062836634u, 1053609165u, 1062836634u, 0, COPYSIGNF_TOLERANCE, 0},
+{1509, 1062836634u, 1055286886u, 1062836634u, 0, COPYSIGNF_TOLERANCE, 0},
+{1510, 1062836634u, 1056964608u, 1062836634u, 0, COPYSIGNF_TOLERANCE, 0},
+{1511, 1062836634u, 1057803469u, 1062836634u, 0, COPYSIGNF_TOLERANCE, 0},
+{1512, 1062836634u, 1058642330u, 1062836634u, 0, COPYSIGNF_TOLERANCE, 0},
+{1513, 1062836634u, 1059481190u, 1062836634u, 0, COPYSIGNF_TOLERANCE, 0},
+{1514, 1062836634u, 1060320051u, 1062836634u, 0, COPYSIGNF_TOLERANCE, 0},
+{1515, 1062836634u, 1061158912u, 1062836634u, 0, COPYSIGNF_TOLERANCE, 0},
+{1516, 1062836634u, 1061997773u, 1062836634u, 0, COPYSIGNF_TOLERANCE, 0},
+{1517, 1062836634u, 1062836634u, 1062836634u, 0, COPYSIGNF_TOLERANCE, 0},
+{1518, 1062836634u, 1063675494u, 1062836634u, 0, COPYSIGNF_TOLERANCE, 0},
+{1519, 1062836634u, 1064514355u, 1062836634u, 0, COPYSIGNF_TOLERANCE, 0},
+{1520, 1063675494u, 3212836864u, 3211159142u, 0, COPYSIGNF_TOLERANCE, 0},
+{1521, 1063675494u, 3211998003u, 3211159142u, 0, COPYSIGNF_TOLERANCE, 0},
+{1522, 1063675494u, 3211159142u, 3211159142u, 0, COPYSIGNF_TOLERANCE, 0},
+{1523, 1063675494u, 3210320282u, 3211159142u, 0, COPYSIGNF_TOLERANCE, 0},
+{1524, 1063675494u, 3209481421u, 3211159142u, 0, COPYSIGNF_TOLERANCE, 0},
+{1525, 1063675494u, 3208642560u, 3211159142u, 0, COPYSIGNF_TOLERANCE, 0},
+{1526, 1063675494u, 3207803699u, 3211159142u, 0, COPYSIGNF_TOLERANCE, 0},
+{1527, 1063675494u, 3206964838u, 3211159142u, 0, COPYSIGNF_TOLERANCE, 0},
+{1528, 1063675494u, 3206125978u, 3211159142u, 0, COPYSIGNF_TOLERANCE, 0},
+{1529, 1063675494u, 3205287117u, 3211159142u, 0, COPYSIGNF_TOLERANCE, 0},
+{1530, 1063675494u, 3204448256u, 3211159142u, 0, COPYSIGNF_TOLERANCE, 0},
+{1531, 1063675494u, 3202770534u, 3211159142u, 0, COPYSIGNF_TOLERANCE, 0},
+{1532, 1063675494u, 3201092813u, 3211159142u, 0, COPYSIGNF_TOLERANCE, 0},
+{1533, 1063675494u, 3199415091u, 3211159142u, 0, COPYSIGNF_TOLERANCE, 0},
+{1534, 1063675494u, 3197737370u, 3211159142u, 0, COPYSIGNF_TOLERANCE, 0},
+{1535, 1063675494u, 3196059648u, 3211159142u, 0, COPYSIGNF_TOLERANCE, 0},
+{1536, 1063675494u, 3192704205u, 3211159142u, 0, COPYSIGNF_TOLERANCE, 0},
+{1537, 1063675494u, 3189348762u, 3211159142u, 0, COPYSIGNF_TOLERANCE, 0},
+{1538, 1063675494u, 3184315597u, 3211159142u, 0, COPYSIGNF_TOLERANCE, 0},
+{1539, 1063675494u, 3175926989u, 3211159142u, 0, COPYSIGNF_TOLERANCE, 0},
+{1540, 1063675494u, 632815616u, 1063675494u, 0, COPYSIGNF_TOLERANCE, 0},
+{1541, 1063675494u, 1028443341u, 1063675494u, 0, COPYSIGNF_TOLERANCE, 0},
+{1542, 1063675494u, 1036831949u, 1063675494u, 0, COPYSIGNF_TOLERANCE, 0},
+{1543, 1063675494u, 1041865114u, 1063675494u, 0, COPYSIGNF_TOLERANCE, 0},
+{1544, 1063675494u, 1045220557u, 1063675494u, 0, COPYSIGNF_TOLERANCE, 0},
+{1545, 1063675494u, 1048576000u, 1063675494u, 0, COPYSIGNF_TOLERANCE, 0},
+{1546, 1063675494u, 1050253722u, 1063675494u, 0, COPYSIGNF_TOLERANCE, 0},
+{1547, 1063675494u, 1051931443u, 1063675494u, 0, COPYSIGNF_TOLERANCE, 0},
+{1548, 1063675494u, 1053609165u, 1063675494u, 0, COPYSIGNF_TOLERANCE, 0},
+{1549, 1063675494u, 1055286886u, 1063675494u, 0, COPYSIGNF_TOLERANCE, 0},
+{1550, 1063675494u, 1056964608u, 1063675494u, 0, COPYSIGNF_TOLERANCE, 0},
+{1551, 1063675494u, 1057803469u, 1063675494u, 0, COPYSIGNF_TOLERANCE, 0},
+{1552, 1063675494u, 1058642330u, 1063675494u, 0, COPYSIGNF_TOLERANCE, 0},
+{1553, 1063675494u, 1059481190u, 1063675494u, 0, COPYSIGNF_TOLERANCE, 0},
+{1554, 1063675494u, 1060320051u, 1063675494u, 0, COPYSIGNF_TOLERANCE, 0},
+{1555, 1063675494u, 1061158912u, 1063675494u, 0, COPYSIGNF_TOLERANCE, 0},
+{1556, 1063675494u, 1061997773u, 1063675494u, 0, COPYSIGNF_TOLERANCE, 0},
+{1557, 1063675494u, 1062836634u, 1063675494u, 0, COPYSIGNF_TOLERANCE, 0},
+{1558, 1063675494u, 1063675494u, 1063675494u, 0, COPYSIGNF_TOLERANCE, 0},
+{1559, 1063675494u, 1064514355u, 1063675494u, 0, COPYSIGNF_TOLERANCE, 0},
+{1560, 1064514355u, 3212836864u, 3211998003u, 0, COPYSIGNF_TOLERANCE, 0},
+{1561, 1064514355u, 3211998003u, 3211998003u, 0, COPYSIGNF_TOLERANCE, 0},
+{1562, 1064514355u, 3211159142u, 3211998003u, 0, COPYSIGNF_TOLERANCE, 0},
+{1563, 1064514355u, 3210320282u, 3211998003u, 0, COPYSIGNF_TOLERANCE, 0},
+{1564, 1064514355u, 3209481421u, 3211998003u, 0, COPYSIGNF_TOLERANCE, 0},
+{1565, 1064514355u, 3208642560u, 3211998003u, 0, COPYSIGNF_TOLERANCE, 0},
+{1566, 1064514355u, 3207803699u, 3211998003u, 0, COPYSIGNF_TOLERANCE, 0},
+{1567, 1064514355u, 3206964838u, 3211998003u, 0, COPYSIGNF_TOLERANCE, 0},
+{1568, 1064514355u, 3206125978u, 3211998003u, 0, COPYSIGNF_TOLERANCE, 0},
+{1569, 1064514355u, 3205287117u, 3211998003u, 0, COPYSIGNF_TOLERANCE, 0},
+{1570, 1064514355u, 3204448256u, 3211998003u, 0, COPYSIGNF_TOLERANCE, 0},
+{1571, 1064514355u, 3202770534u, 3211998003u, 0, COPYSIGNF_TOLERANCE, 0},
+{1572, 1064514355u, 3201092813u, 3211998003u, 0, COPYSIGNF_TOLERANCE, 0},
+{1573, 1064514355u, 3199415091u, 3211998003u, 0, COPYSIGNF_TOLERANCE, 0},
+{1574, 1064514355u, 3197737370u, 3211998003u, 0, COPYSIGNF_TOLERANCE, 0},
+{1575, 1064514355u, 3196059648u, 3211998003u, 0, COPYSIGNF_TOLERANCE, 0},
+{1576, 1064514355u, 3192704205u, 3211998003u, 0, COPYSIGNF_TOLERANCE, 0},
+{1577, 1064514355u, 3189348762u, 3211998003u, 0, COPYSIGNF_TOLERANCE, 0},
+{1578, 1064514355u, 3184315597u, 3211998003u, 0, COPYSIGNF_TOLERANCE, 0},
+{1579, 1064514355u, 3175926989u, 3211998003u, 0, COPYSIGNF_TOLERANCE, 0},
+{1580, 1064514355u, 632815616u, 1064514355u, 0, COPYSIGNF_TOLERANCE, 0},
+{1581, 1064514355u, 1028443341u, 1064514355u, 0, COPYSIGNF_TOLERANCE, 0},
+{1582, 1064514355u, 1036831949u, 1064514355u, 0, COPYSIGNF_TOLERANCE, 0},
+{1583, 1064514355u, 1041865114u, 1064514355u, 0, COPYSIGNF_TOLERANCE, 0},
+{1584, 1064514355u, 1045220557u, 1064514355u, 0, COPYSIGNF_TOLERANCE, 0},
+{1585, 1064514355u, 1048576000u, 1064514355u, 0, COPYSIGNF_TOLERANCE, 0},
+{1586, 1064514355u, 1050253722u, 1064514355u, 0, COPYSIGNF_TOLERANCE, 0},
+{1587, 1064514355u, 1051931443u, 1064514355u, 0, COPYSIGNF_TOLERANCE, 0},
+{1588, 1064514355u, 1053609165u, 1064514355u, 0, COPYSIGNF_TOLERANCE, 0},
+{1589, 1064514355u, 1055286886u, 1064514355u, 0, COPYSIGNF_TOLERANCE, 0},
+{1590, 1064514355u, 1056964608u, 1064514355u, 0, COPYSIGNF_TOLERANCE, 0},
+{1591, 1064514355u, 1057803469u, 1064514355u, 0, COPYSIGNF_TOLERANCE, 0},
+{1592, 1064514355u, 1058642330u, 1064514355u, 0, COPYSIGNF_TOLERANCE, 0},
+{1593, 1064514355u, 1059481190u, 1064514355u, 0, COPYSIGNF_TOLERANCE, 0},
+{1594, 1064514355u, 1060320051u, 1064514355u, 0, COPYSIGNF_TOLERANCE, 0},
+{1595, 1064514355u, 1061158912u, 1064514355u, 0, COPYSIGNF_TOLERANCE, 0},
+{1596, 1064514355u, 1061997773u, 1064514355u, 0, COPYSIGNF_TOLERANCE, 0},
+{1597, 1064514355u, 1062836634u, 1064514355u, 0, COPYSIGNF_TOLERANCE, 0},
+{1598, 1064514355u, 1063675494u, 1064514355u, 0, COPYSIGNF_TOLERANCE, 0},
+{1599, 1064514355u, 1064514355u, 1064514355u, 0, COPYSIGNF_TOLERANCE, 0},
+{1600, 1107800421u, 1203999711u, 1107800421u, 0, COPYSIGNF_TOLERANCE, 0},
+{1601, 3196650934u, 896005582u, 1049167286u, 0, COPYSIGNF_TOLERANCE, 0},
+{1602, 3368700125u, 3308232444u, 3368700125u, 0, COPYSIGNF_TOLERANCE, 0},
+{1603, 1224242132u, 3061363425u, 3371725780u, 0, COPYSIGNF_TOLERANCE, 0},
+{1604, 3221027117u, 1284201705u, 1073543469u, 0, COPYSIGNF_TOLERANCE, 0},
+{1605, 1198712763u, 919636942u, 1198712763u, 0, COPYSIGNF_TOLERANCE, 0},
+{1606, 3159309973u, 852521077u, 1011826325u, 0, COPYSIGNF_TOLERANCE, 0},
+{1607, 954173073u, 850531830u, 954173073u, 0, COPYSIGNF_TOLERANCE, 0},
+{1608, 3090780435u, 1035260608u, 943296787u, 0, COPYSIGNF_TOLERANCE, 0},
+{1609, 966554515u, 3234538174u, 3114038163u, 0, COPYSIGNF_TOLERANCE, 0},
+{1610, 1312607135u, 1194999402u, 1312607135u, 0, COPYSIGNF_TOLERANCE, 0},
+{1611, 1166191415u, 1018661564u, 1166191415u, 0, COPYSIGNF_TOLERANCE, 0},
+{1612, 3111900019u, 1130472166u, 964416371u, 0, COPYSIGNF_TOLERANCE, 0},
+{1613, 1234419246u, 2984575812u, 3381902894u, 0, COPYSIGNF_TOLERANCE, 0},
+{1614, 1302107128u, 3370647675u, 3449590776u, 0, COPYSIGNF_TOLERANCE, 0},
+{1615, 1052801068u, 3039122570u, 3200284716u, 0, COPYSIGNF_TOLERANCE, 0},
+{1616, 1060849628u, 3081357692u, 3208333276u, 0, COPYSIGNF_TOLERANCE, 0},
+{1617, 3484320003u, 3033957825u, 3484320003u, 0, COPYSIGNF_TOLERANCE, 0},
+{1618, 3181522772u, 3305392896u, 3181522772u, 0, COPYSIGNF_TOLERANCE, 0},
+{1619, 882596369u, 1256676590u, 882596369u, 0, COPYSIGNF_TOLERANCE, 0},
+{1620, 1167223673u, 846102364u, 1167223673u, 0, COPYSIGNF_TOLERANCE, 0},
+{1621, 968192794u, 878547432u, 968192794u, 0, COPYSIGNF_TOLERANCE, 0},
+{1622, 3122346862u, 1111584337u, 974863214u, 0, COPYSIGNF_TOLERANCE, 0},
+{1623, 1052361612u, 1280025214u, 1052361612u, 0, COPYSIGNF_TOLERANCE, 0},
+{1624, 906701409u, 2968301825u, 3054185057u, 0, COPYSIGNF_TOLERANCE, 0},
+{1625, 3471653172u, 1154138102u, 1324169524u, 0, COPYSIGNF_TOLERANCE, 0},
+{1626, 3231467496u, 934336592u, 1083983848u, 0, COPYSIGNF_TOLERANCE, 0},
+{1627, 1341514497u, 3466051188u, 3488998145u, 0, COPYSIGNF_TOLERANCE, 0},
+{1628, 1272351391u, 3373485062u, 3419835039u, 0, COPYSIGNF_TOLERANCE, 0},
+{1629, 3319724992u, 3354615790u, 3319724992u, 0, COPYSIGNF_TOLERANCE, 0},
+{1630, 917622040u, 1334966485u, 917622040u, 0, COPYSIGNF_TOLERANCE, 0},
+{1631, 940236348u, 3304072663u, 3087719996u, 0, COPYSIGNF_TOLERANCE, 0},
+{1632, 3251541546u, 3174764041u, 3251541546u, 0, COPYSIGNF_TOLERANCE, 0},
+{1633, 3099843889u, 3355962282u, 3099843889u, 0, COPYSIGNF_TOLERANCE, 0},
+{1634, 3110358400u, 851145088u, 962874752u, 0, COPYSIGNF_TOLERANCE, 0},
+{1635, 3371863479u, 1014861921u, 1224379831u, 0, COPYSIGNF_TOLERANCE, 0},
+{1636, 3204069187u, 966573255u, 1056585539u, 0, COPYSIGNF_TOLERANCE, 0},
+{1637, 1306460502u, 903489435u, 1306460502u, 0, COPYSIGNF_TOLERANCE, 0},
+{1638, 1197542187u, 3024598921u, 3345025835u, 0, COPYSIGNF_TOLERANCE, 0},
+{1639, 922888249u, 1139392309u, 922888249u, 0, COPYSIGNF_TOLERANCE, 0},
+{1640, 1184239996u, 3224098462u, 3331723644u, 0, COPYSIGNF_TOLERANCE, 0},
+{1641, 1252490238u, 1173619825u, 1252490238u, 0, COPYSIGNF_TOLERANCE, 0},
+{1642, 1001673627u, 3462631271u, 3149157275u, 0, COPYSIGNF_TOLERANCE, 0},
+{1643, 976098044u, 1151967422u, 976098044u, 0, COPYSIGNF_TOLERANCE, 0},
+{1644, 941796645u, 886451963u, 941796645u, 0, COPYSIGNF_TOLERANCE, 0},
+{1645, 3287199470u, 854245542u, 1139715822u, 0, COPYSIGNF_TOLERANCE, 0},
+{1646, 893184329u, 1243067084u, 893184329u, 0, COPYSIGNF_TOLERANCE, 0},
+{1647, 1143233714u, 1007268238u, 1143233714u, 0, COPYSIGNF_TOLERANCE, 0},
+{1648, 1139941253u, 1147688821u, 1139941253u, 0, COPYSIGNF_TOLERANCE, 0},
+{1649, 3143717025u, 3234638157u, 3143717025u, 0, COPYSIGNF_TOLERANCE, 0},
+{1650, 3048866608u, 3449209899u, 3048866608u, 0, COPYSIGNF_TOLERANCE, 0},
+{1651, 3240298487u, 1020260821u, 1092814839u, 0, COPYSIGNF_TOLERANCE, 0},
+{1652, 1288902137u, 3123875978u, 3436385785u, 0, COPYSIGNF_TOLERANCE, 0},
+{1653, 1333134799u, 1338107877u, 1333134799u, 0, COPYSIGNF_TOLERANCE, 0},
+{1654, 1187847971u, 1317663644u, 1187847971u, 0, COPYSIGNF_TOLERANCE, 0},
+{1655, 1038851706u, 1327544110u, 1038851706u, 0, COPYSIGNF_TOLERANCE, 0},
+{1656, 3329354473u, 3165437289u, 3329354473u, 0, COPYSIGNF_TOLERANCE, 0},
+{1657, 3077218579u, 1308397879u, 929734931u, 0, COPYSIGNF_TOLERANCE, 0},
+{1658, 1309289088u, 1019883016u, 1309289088u, 0, COPYSIGNF_TOLERANCE, 0},
+{1659, 3444653659u, 1279248024u, 1297170011u, 0, COPYSIGNF_TOLERANCE, 0},
+{1660, 3405585402u, 2962345057u, 3405585402u, 0, COPYSIGNF_TOLERANCE, 0},
+{1661, 3106647724u, 853848387u, 959164076u, 0, COPYSIGNF_TOLERANCE, 0},
+{1662, 1106778573u, 3304487767u, 3254262221u, 0, COPYSIGNF_TOLERANCE, 0},
+{1663, 1140567947u, 3069174149u, 3288051595u, 0, COPYSIGNF_TOLERANCE, 0},
+{1664, 1238569473u, 873035665u, 1238569473u, 0, COPYSIGNF_TOLERANCE, 0},
+{1665, 3154871957u, 1276671061u, 1007388309u, 0, COPYSIGNF_TOLERANCE, 0},
+{1666, 1261071232u, 1182202773u, 1261071232u, 0, COPYSIGNF_TOLERANCE, 0},
+{1667, 1175011025u, 3029705783u, 3322494673u, 0, COPYSIGNF_TOLERANCE, 0},
+{1668, 1082692850u, 1211581107u, 1082692850u, 0, COPYSIGNF_TOLERANCE, 0},
+{1669, 974547519u, 3475164509u, 3122031167u, 0, COPYSIGNF_TOLERANCE, 0},
+{1670, 3058097085u, 3104309359u, 3058097085u, 0, COPYSIGNF_TOLERANCE, 0},
+{1671, 3107252546u, 1071134451u, 959768898u, 0, COPYSIGNF_TOLERANCE, 0},
+{1672, 3096032662u, 2976848821u, 3096032662u, 0, COPYSIGNF_TOLERANCE, 0},
+{1673, 3197942144u, 3094120030u, 3197942144u, 0, COPYSIGNF_TOLERANCE, 0},
+{1674, 3403348556u, 3184653669u, 3403348556u, 0, COPYSIGNF_TOLERANCE, 0},
+{1675, 3182301130u, 3460764044u, 3182301130u, 0, COPYSIGNF_TOLERANCE, 0},
+{1676, 1136411063u, 1118097422u, 1136411063u, 0, COPYSIGNF_TOLERANCE, 0},
+{1677, 3239231622u, 3302723069u, 3239231622u, 0, COPYSIGNF_TOLERANCE, 0},
+{1678, 3340615780u, 870350055u, 1193132132u, 0, COPYSIGNF_TOLERANCE, 0},
+{1679, 998567360u, 2995278691u, 3146051008u, 0, COPYSIGNF_TOLERANCE, 0},
+{1680, 3417964312u, 1321337529u, 1270480664u, 0, COPYSIGNF_TOLERANCE, 0},
+{1681, 3109481038u, 1143864063u, 961997390u, 0, COPYSIGNF_TOLERANCE, 0},
+{1682, 1148867223u, 1256486202u, 1148867223u, 0, COPYSIGNF_TOLERANCE, 0},
+{1683, 989687421u, 3372681320u, 3137171069u, 0, COPYSIGNF_TOLERANCE, 0},
+{1684, 1152956913u, 3166480640u, 3300440561u, 0, COPYSIGNF_TOLERANCE, 0},
+{1685, 892922651u, 3373029087u, 3040406299u, 0, COPYSIGNF_TOLERANCE, 0},
+{1686, 1109627625u, 1314158257u, 1109627625u, 0, COPYSIGNF_TOLERANCE, 0},
+{1687, 1307091856u, 1103202538u, 1307091856u, 0, COPYSIGNF_TOLERANCE, 0},
+{1688, 1077234132u, 3272167130u, 3224717780u, 0, COPYSIGNF_TOLERANCE, 0},
+{1689, 1142167709u, 1096445242u, 1142167709u, 0, COPYSIGNF_TOLERANCE, 0},
+{1690, 3426232834u, 1036705270u, 1278749186u, 0, COPYSIGNF_TOLERANCE, 0},
+{1691, 3368566779u, 967249167u, 1221083131u, 0, COPYSIGNF_TOLERANCE, 0},
+{1692, 3030724760u, 3349013503u, 3030724760u, 0, COPYSIGNF_TOLERANCE, 0},
+{1693, 1138741813u, 3073453199u, 3286225461u, 0, COPYSIGNF_TOLERANCE, 0},
+{1694, 982950501u, 982549888u, 982950501u, 0, COPYSIGNF_TOLERANCE, 0},
+{1695, 1142981585u, 1015602236u, 1142981585u, 0, COPYSIGNF_TOLERANCE, 0},
+{1696, 3347165962u, 3135486696u, 3347165962u, 0, COPYSIGNF_TOLERANCE, 0},
+{1697, 1009535440u, 3381353228u, 3157019088u, 0, COPYSIGNF_TOLERANCE, 0},
+{1698, 3103736980u, 3402950505u, 3103736980u, 0, COPYSIGNF_TOLERANCE, 0},
+{1699, 3126820946u, 1077903063u, 979337298u, 0, COPYSIGNF_TOLERANCE, 0},
+{1700, 3473956030u, 976891930u, 1326472382u, 0, COPYSIGNF_TOLERANCE, 0},
+{1701, 3349098349u, 1055327704u, 1201614701u, 0, COPYSIGNF_TOLERANCE, 0},
+{1702, 3152729489u, 1060398533u, 1005245841u, 0, COPYSIGNF_TOLERANCE, 0},
+{1703, 945568720u, 3313485084u, 3093052368u, 0, COPYSIGNF_TOLERANCE, 0},
+{1704, 3345489836u, 1108392401u, 1198006188u, 0, COPYSIGNF_TOLERANCE, 0},
+{1705, 940893161u, 1137000140u, 940893161u, 0, COPYSIGNF_TOLERANCE, 0},
+{1706, 976791751u, 3230678102u, 3124275399u, 0, COPYSIGNF_TOLERANCE, 0},
+{1707, 1004442355u, 3036510596u, 3151926003u, 0, COPYSIGNF_TOLERANCE, 0},
+{1708, 1108485380u, 3173536878u, 3255969028u, 0, COPYSIGNF_TOLERANCE, 0},
+{1709, 1061834641u, 972388096u, 1061834641u, 0, COPYSIGNF_TOLERANCE, 0},
+{1710, 3381268392u, 1146976802u, 1233784744u, 0, COPYSIGNF_TOLERANCE, 0},
+{1711, 1087189715u, 2952822478u, 3234673363u, 0, COPYSIGNF_TOLERANCE, 0},
+{1712, 3212952285u, 3329407365u, 3212952285u, 0, COPYSIGNF_TOLERANCE, 0},
+{1713, 1000611335u, 857599439u, 1000611335u, 0, COPYSIGNF_TOLERANCE, 0},
+{1714, 3466188568u, 1041678304u, 1318704920u, 0, COPYSIGNF_TOLERANCE, 0},
+{1715, 3072456205u, 3160254633u, 3072456205u, 0, COPYSIGNF_TOLERANCE, 0},
+{1716, 3319315516u, 3422089012u, 3319315516u, 0, COPYSIGNF_TOLERANCE, 0},
+{1717, 935938416u, 1146676692u, 935938416u, 0, COPYSIGNF_TOLERANCE, 0},
+{1718, 3212614372u, 1152633030u, 1065130724u, 0, COPYSIGNF_TOLERANCE, 0},
+{1719, 1315030230u, 3336225884u, 3462513878u, 0, COPYSIGNF_TOLERANCE, 0},
+{1720, 1134593658u, 3456812581u, 3282077306u, 0, COPYSIGNF_TOLERANCE, 0},
+{1721, 977281449u, 879922831u, 977281449u, 0, COPYSIGNF_TOLERANCE, 0},
+{1722, 1086198791u, 920125958u, 1086198791u, 0, COPYSIGNF_TOLERANCE, 0},
+{1723, 1255152035u, 851754050u, 1255152035u, 0, COPYSIGNF_TOLERANCE, 0},
+{1724, 1135271264u, 3284878412u, 3282754912u, 0, COPYSIGNF_TOLERANCE, 0},
+{1725, 1094190727u, 1056854532u, 1094190727u, 0, COPYSIGNF_TOLERANCE, 0},
+{1726, 1294665325u, 991185677u, 1294665325u, 0, COPYSIGNF_TOLERANCE, 0},
+{1727, 1036608591u, 805416536u, 1036608591u, 0, COPYSIGNF_TOLERANCE, 0},
+{1728, 3229998064u, 825237063u, 1082514416u, 0, COPYSIGNF_TOLERANCE, 0},
+{1729, 3439134022u, 1043829691u, 1291650374u, 0, COPYSIGNF_TOLERANCE, 0},
+{1730, 3073083133u, 1317170485u, 925599485u, 0, COPYSIGNF_TOLERANCE, 0},
+{1731, 1325668223u, 970681762u, 1325668223u, 0, COPYSIGNF_TOLERANCE, 0},
+{1732, 1092037607u, 1027330835u, 1092037607u, 0, COPYSIGNF_TOLERANCE, 0},
+{1733, 3316278408u, 3455589207u, 3316278408u, 0, COPYSIGNF_TOLERANCE, 0},
+{1734, 3295436768u, 3129873731u, 3295436768u, 0, COPYSIGNF_TOLERANCE, 0},
+{1735, 1151984049u, 3074547120u, 3299467697u, 0, COPYSIGNF_TOLERANCE, 0},
+{1736, 1129287043u, 3076527544u, 3276770691u, 0, COPYSIGNF_TOLERANCE, 0},
+{1737, 1243664530u, 972879810u, 1243664530u, 0, COPYSIGNF_TOLERANCE, 0},
+{1738, 950829092u, 929114193u, 950829092u, 0, COPYSIGNF_TOLERANCE, 0},
+{1739, 1115471979u, 3047246262u, 3262955627u, 0, COPYSIGNF_TOLERANCE, 0},
+{1740, 3351092088u, 3024661404u, 3351092088u, 0, COPYSIGNF_TOLERANCE, 0},
+{1741, 3424479544u, 3312047722u, 3424479544u, 0, COPYSIGNF_TOLERANCE, 0},
+{1742, 3241193975u, 884465785u, 1093710327u, 0, COPYSIGNF_TOLERANCE, 0},
+{1743, 1030934236u, 1045139240u, 1030934236u, 0, COPYSIGNF_TOLERANCE, 0},
+{1744, 3131791114u, 3408392958u, 3131791114u, 0, COPYSIGNF_TOLERANCE, 0},
+{1745, 1025254314u, 3057812821u, 3172737962u, 0, COPYSIGNF_TOLERANCE, 0},
+{1746, 1110545760u, 3240144177u, 3258029408u, 0, COPYSIGNF_TOLERANCE, 0},
+{1747, 3180213739u, 1108793820u, 1032730091u, 0, COPYSIGNF_TOLERANCE, 0},
+{1748, 3361976590u, 3138179993u, 3361976590u, 0, COPYSIGNF_TOLERANCE, 0},
+{1749, 881280146u, 3421884736u, 3028763794u, 0, COPYSIGNF_TOLERANCE, 0},
+{1750, 1304154705u, 2961937089u, 3451638353u, 0, COPYSIGNF_TOLERANCE, 0},
+{1751, 3264443610u, 3222916705u, 3264443610u, 0, COPYSIGNF_TOLERANCE, 0},
+{1752, 3374550627u, 3055856293u, 3374550627u, 0, COPYSIGNF_TOLERANCE, 0},
+{1753, 899599265u, 3240118211u, 3047082913u, 0, COPYSIGNF_TOLERANCE, 0},
+{1754, 1268194719u, 1332489410u, 1268194719u, 0, COPYSIGNF_TOLERANCE, 0},
+{1755, 1133420220u, 1245770860u, 1133420220u, 0, COPYSIGNF_TOLERANCE, 0},
+{1756, 1161858787u, 815362075u, 1161858787u, 0, COPYSIGNF_TOLERANCE, 0},
+{1757, 3184462258u, 1263529646u, 1036978610u, 0, COPYSIGNF_TOLERANCE, 0},
+{1758, 3295996963u, 3453334307u, 3295996963u, 0, COPYSIGNF_TOLERANCE, 0},
+{1759, 1270887389u, 1156123987u, 1270887389u, 0, COPYSIGNF_TOLERANCE, 0},
+{1760, 3325193181u, 993979179u, 1177709533u, 0, COPYSIGNF_TOLERANCE, 0},
+{1761, 925657343u, 1315159742u, 925657343u, 0, COPYSIGNF_TOLERANCE, 0},
+{1762, 3115275450u, 3008350271u, 3115275450u, 0, COPYSIGNF_TOLERANCE, 0},
+{1763, 3116607482u, 3224327456u, 3116607482u, 0, COPYSIGNF_TOLERANCE, 0},
+{1764, 3187892415u, 3118097315u, 3187892415u, 0, COPYSIGNF_TOLERANCE, 0},
+{1765, 1189120494u, 978961471u, 1189120494u, 0, COPYSIGNF_TOLERANCE, 0},
+{1766, 889030794u, 3129523970u, 3036514442u, 0, COPYSIGNF_TOLERANCE, 0},
+{1767, 1323529208u, 3100744786u, 3471012856u, 0, COPYSIGNF_TOLERANCE, 0},
+{1768, 3465768388u, 3190881451u, 3465768388u, 0, COPYSIGNF_TOLERANCE, 0},
+{1769, 3426099899u, 1118756120u, 1278616251u, 0, COPYSIGNF_TOLERANCE, 0},
+{1770, 3224857113u, 3398166843u, 3224857113u, 0, COPYSIGNF_TOLERANCE, 0},
+{1771, 1065798296u, 816191940u, 1065798296u, 0, COPYSIGNF_TOLERANCE, 0},
+{1772, 3328989444u, 850266225u, 1181505796u, 0, COPYSIGNF_TOLERANCE, 0},
+{1773, 3357819026u, 3148475462u, 3357819026u, 0, COPYSIGNF_TOLERANCE, 0},
+{1774, 1273397670u, 901308750u, 1273397670u, 0, COPYSIGNF_TOLERANCE, 0},
+{1775, 3424831780u, 1304806106u, 1277348132u, 0, COPYSIGNF_TOLERANCE, 0},
+{1776, 1257596246u, 3420832544u, 3405079894u, 0, COPYSIGNF_TOLERANCE, 0},
+{1777, 1051773536u, 896271348u, 1051773536u, 0, COPYSIGNF_TOLERANCE, 0},
+{1778, 3294752507u, 3113225954u, 3294752507u, 0, COPYSIGNF_TOLERANCE, 0},
+{1779, 3424848725u, 2973850350u, 3424848725u, 0, COPYSIGNF_TOLERANCE, 0},
+{1780, 1090870906u, 3294742905u, 3238354554u, 0, COPYSIGNF_TOLERANCE, 0},
+{1781, 1227582289u, 1208979668u, 1227582289u, 0, COPYSIGNF_TOLERANCE, 0},
+{1782, 1272325814u, 3004311296u, 3419809462u, 0, COPYSIGNF_TOLERANCE, 0},
+{1783, 3359508271u, 859974315u, 1212024623u, 0, COPYSIGNF_TOLERANCE, 0},
+{1784, 1137854355u, 3335041917u, 3285338003u, 0, COPYSIGNF_TOLERANCE, 0},
+{1785, 3440773058u, 3204192793u, 3440773058u, 0, COPYSIGNF_TOLERANCE, 0},
+{1786, 3101598400u, 3057760708u, 3101598400u, 0, COPYSIGNF_TOLERANCE, 0},
+{1787, 3451216836u, 3347783723u, 3451216836u, 0, COPYSIGNF_TOLERANCE, 0},
+{1788, 3437062994u, 3106834845u, 3437062994u, 0, COPYSIGNF_TOLERANCE, 0},
+{1789, 1131196082u, 1164573183u, 1131196082u, 0, COPYSIGNF_TOLERANCE, 0},
+{1790, 3177294154u, 1282436638u, 1029810506u, 0, COPYSIGNF_TOLERANCE, 0},
+{1791, 3258097678u, 1305882290u, 1110614030u, 0, COPYSIGNF_TOLERANCE, 0},
+{1792, 3460915348u, 1219372260u, 1313431700u, 0, COPYSIGNF_TOLERANCE, 0},
+{1793, 3303035472u, 3153013020u, 3303035472u, 0, COPYSIGNF_TOLERANCE, 0},
+{1794, 1053698677u, 3284313107u, 3201182325u, 0, COPYSIGNF_TOLERANCE, 0},
+{1795, 3396166221u, 1201894512u, 1248682573u, 0, COPYSIGNF_TOLERANCE, 0},
+{1796, 3037541131u, 1085398440u, 890057483u, 0, COPYSIGNF_TOLERANCE, 0},
+{1797, 3458934263u, 1005577835u, 1311450615u, 0, COPYSIGNF_TOLERANCE, 0},
+{1798, 1065761827u, 3333928591u, 3213245475u, 0, COPYSIGNF_TOLERANCE, 0},
+{1799, 3025843188u, 820250112u, 878359540u, 0, COPYSIGNF_TOLERANCE, 0},
+{1800, 926665223u, 3150815797u, 3074148871u, 0, COPYSIGNF_TOLERANCE, 0},
+{1801, 1199816046u, 3143776186u, 3347299694u, 0, COPYSIGNF_TOLERANCE, 0},
+{1802, 3333779015u, 952421041u, 1186295367u, 0, COPYSIGNF_TOLERANCE, 0},
+{1803, 948398145u, 3238273189u, 3095881793u, 0, COPYSIGNF_TOLERANCE, 0},
+{1804, 3054021468u, 1270257895u, 906537820u, 0, COPYSIGNF_TOLERANCE, 0},
+{1805, 1080781593u, 1213908300u, 1080781593u, 0, COPYSIGNF_TOLERANCE, 0},
+{1806, 3164749613u, 3010837763u, 3164749613u, 0, COPYSIGNF_TOLERANCE, 0},
+{1807, 3235326590u, 1271705594u, 1087842942u, 0, COPYSIGNF_TOLERANCE, 0},
+{1808, 3118883815u, 1051802647u, 971400167u, 0, COPYSIGNF_TOLERANCE, 0},
+{1809, 965378004u, 1292594138u, 965378004u, 0, COPYSIGNF_TOLERANCE, 0},
+{1810, 3226990408u, 1110755136u, 1079506760u, 0, COPYSIGNF_TOLERANCE, 0},
+{1811, 3117098218u, 1122474770u, 969614570u, 0, COPYSIGNF_TOLERANCE, 0},
+{1812, 1283624229u, 906796922u, 1283624229u, 0, COPYSIGNF_TOLERANCE, 0},
+{1813, 970649315u, 1078286437u, 970649315u, 0, COPYSIGNF_TOLERANCE, 0},
+{1814, 959776291u, 3280345347u, 3107259939u, 0, COPYSIGNF_TOLERANCE, 0},
+{1815, 3341117305u, 3294559023u, 3341117305u, 0, COPYSIGNF_TOLERANCE, 0},
+{1816, 1270734970u, 3355874874u, 3418218618u, 0, COPYSIGNF_TOLERANCE, 0},
+{1817, 3454816067u, 868771977u, 1307332419u, 0, COPYSIGNF_TOLERANCE, 0},
+{1818, 917206623u, 1172710814u, 917206623u, 0, COPYSIGNF_TOLERANCE, 0},
+{1819, 1106502045u, 1290849316u, 1106502045u, 0, COPYSIGNF_TOLERANCE, 0},
+{1820, 1157598381u, 3309023746u, 3305082029u, 0, COPYSIGNF_TOLERANCE, 0},
+{1821, 3335234513u, 1002337336u, 1187750865u, 0, COPYSIGNF_TOLERANCE, 0},
+{1822, 1279489061u, 1006049444u, 1279489061u, 0, COPYSIGNF_TOLERANCE, 0},
+{1823, 3157416480u, 1309984610u, 1009932832u, 0, COPYSIGNF_TOLERANCE, 0},
+{1824, 3143920719u, 3131608518u, 3143920719u, 0, COPYSIGNF_TOLERANCE, 0},
+{1825, 1233171235u, 826460580u, 1233171235u, 0, COPYSIGNF_TOLERANCE, 0},
+{1826, 1148920078u, 1007674793u, 1148920078u, 0, COPYSIGNF_TOLERANCE, 0},
+{1827, 3064988156u, 3230867340u, 3064988156u, 0, COPYSIGNF_TOLERANCE, 0},
+{1828, 3083619260u, 1159415661u, 936135612u, 0, COPYSIGNF_TOLERANCE, 0},
+{1829, 1109198803u, 1221754614u, 1109198803u, 0, COPYSIGNF_TOLERANCE, 0},
+{1830, 3219949483u, 1056167693u, 1072465835u, 0, COPYSIGNF_TOLERANCE, 0},
+{1831, 3361149474u, 3387342069u, 3361149474u, 0, COPYSIGNF_TOLERANCE, 0},
+{1832, 1207502108u, 3388073586u, 3354985756u, 0, COPYSIGNF_TOLERANCE, 0},
+{1833, 1000014431u, 831213088u, 1000014431u, 0, COPYSIGNF_TOLERANCE, 0},
+{1834, 3161756316u, 3143659754u, 3161756316u, 0, COPYSIGNF_TOLERANCE, 0},
+{1835, 3160728744u, 3382954009u, 3160728744u, 0, COPYSIGNF_TOLERANCE, 0},
+{1836, 1234530539u, 1079988872u, 1234530539u, 0, COPYSIGNF_TOLERANCE, 0},
+{1837, 1017843965u, 1193076204u, 1017843965u, 0, COPYSIGNF_TOLERANCE, 0},
+{1838, 951862956u, 1173464654u, 951862956u, 0, COPYSIGNF_TOLERANCE, 0},
+{1839, 3306328852u, 1118701064u, 1158845204u, 0, COPYSIGNF_TOLERANCE, 0},
+{1840, 1291910469u, 1211303367u, 1291910469u, 0, COPYSIGNF_TOLERANCE, 0},
+{1841, 3027442905u, 1173894400u, 879959257u, 0, COPYSIGNF_TOLERANCE, 0},
+{1842, 1131927531u, 3182962700u, 3279411179u, 0, COPYSIGNF_TOLERANCE, 0},
+{1843, 3449879391u, 991614550u, 1302395743u, 0, COPYSIGNF_TOLERANCE, 0},
+{1844, 970094304u, 3344590506u, 3117577952u, 0, COPYSIGNF_TOLERANCE, 0},
+{1845, 1125551064u, 3331248076u, 3273034712u, 0, COPYSIGNF_TOLERANCE, 0},
+{1846, 3427296372u, 3455289118u, 3427296372u, 0, COPYSIGNF_TOLERANCE, 0},
+{1847, 1198917460u, 1327195159u, 1198917460u, 0, COPYSIGNF_TOLERANCE, 0},
+{1848, 3201603336u, 820047343u, 1054119688u, 0, COPYSIGNF_TOLERANCE, 0},
+{1849, 3114686212u, 3476082461u, 3114686212u, 0, COPYSIGNF_TOLERANCE, 0},
+{1850, 921940707u, 2967544056u, 3069424355u, 0, COPYSIGNF_TOLERANCE, 0},
+{1851, 1091906532u, 3011904455u, 3239390180u, 0, COPYSIGNF_TOLERANCE, 0},
+{1852, 3393557778u, 3383396815u, 3393557778u, 0, COPYSIGNF_TOLERANCE, 0},
+{1853, 1276853215u, 873199561u, 1276853215u, 0, COPYSIGNF_TOLERANCE, 0},
+{1854, 3462778440u, 3349284325u, 3462778440u, 0, COPYSIGNF_TOLERANCE, 0},
+{1855, 3360170117u, 3048354042u, 3360170117u, 0, COPYSIGNF_TOLERANCE, 0},
+{1856, 3224245428u, 3271307999u, 3224245428u, 0, COPYSIGNF_TOLERANCE, 0},
+{1857, 1120124467u, 1135619937u, 1120124467u, 0, COPYSIGNF_TOLERANCE, 0},
+{1858, 1064364381u, 3180675544u, 3211848029u, 0, COPYSIGNF_TOLERANCE, 0},
+{1859, 1268744779u, 3328452652u, 3416228427u, 0, COPYSIGNF_TOLERANCE, 0},
+{1860, 1165195428u, 3390323168u, 3312679076u, 0, COPYSIGNF_TOLERANCE, 0},
+{1861, 3044092739u, 1106497311u, 896609091u, 0, COPYSIGNF_TOLERANCE, 0},
+{1862, 3149469534u, 1278465842u, 1001985886u, 0, COPYSIGNF_TOLERANCE, 0},
+{1863, 3247790039u, 909788142u, 1100306391u, 0, COPYSIGNF_TOLERANCE, 0},
+{1864, 3215244648u, 1083988595u, 1067761000u, 0, COPYSIGNF_TOLERANCE, 0},
+{1865, 3095275931u, 989153382u, 947792283u, 0, COPYSIGNF_TOLERANCE, 0},
+{1866, 3059688264u, 1117455718u, 912204616u, 0, COPYSIGNF_TOLERANCE, 0},
+{1867, 1212717473u, 837873779u, 1212717473u, 0, COPYSIGNF_TOLERANCE, 0},
+{1868, 3275973009u, 3450721670u, 3275973009u, 0, COPYSIGNF_TOLERANCE, 0},
+{1869, 3028857014u, 3188853813u, 3028857014u, 0, COPYSIGNF_TOLERANCE, 0},
+{1870, 3391162308u, 1291220039u, 1243678660u, 0, COPYSIGNF_TOLERANCE, 0},
+{1871, 1044867873u, 3369493273u, 3192351521u, 0, COPYSIGNF_TOLERANCE, 0},
+{1872, 1089986803u, 3462160118u, 3237470451u, 0, COPYSIGNF_TOLERANCE, 0},
+{1873, 1296314700u, 2957454177u, 3443798348u, 0, COPYSIGNF_TOLERANCE, 0},
+{1874, 1251462432u, 3171021770u, 3398946080u, 0, COPYSIGNF_TOLERANCE, 0},
+{1875, 3485236902u, 980772835u, 1337753254u, 0, COPYSIGNF_TOLERANCE, 0},
+{1876, 3262169538u, 1268270462u, 1114685890u, 0, COPYSIGNF_TOLERANCE, 0},
+{1877, 3080852256u, 994641495u, 933368608u, 0, COPYSIGNF_TOLERANCE, 0},
+{1878, 1022211242u, 922124181u, 1022211242u, 0, COPYSIGNF_TOLERANCE, 0},
+{1879, 884661176u, 2985540645u, 3032144824u, 0, COPYSIGNF_TOLERANCE, 0},
+{1880, 3071422941u, 3271100396u, 3071422941u, 0, COPYSIGNF_TOLERANCE, 0},
+{1881, 989762529u, 3362011135u, 3137246177u, 0, COPYSIGNF_TOLERANCE, 0},
+{1882, 1295475718u, 3212305413u, 3442959366u, 0, COPYSIGNF_TOLERANCE, 0},
+{1883, 1002632518u, 3330388441u, 3150116166u, 0, COPYSIGNF_TOLERANCE, 0},
+{1884, 3404372005u, 3450484255u, 3404372005u, 0, COPYSIGNF_TOLERANCE, 0},
+{1885, 3158912530u, 3105501826u, 3158912530u, 0, COPYSIGNF_TOLERANCE, 0},
+{1886, 1125800069u, 3256265749u, 3273283717u, 0, COPYSIGNF_TOLERANCE, 0},
+{1887, 3138037576u, 3103365227u, 3138037576u, 0, COPYSIGNF_TOLERANCE, 0},
+{1888, 3108384823u, 1300246663u, 960901175u, 0, COPYSIGNF_TOLERANCE, 0},
+{1889, 999985470u, 3409354318u, 3147469118u, 0, COPYSIGNF_TOLERANCE, 0},
+{1890, 1189421739u, 1056599002u, 1189421739u, 0, COPYSIGNF_TOLERANCE, 0},
+{1891, 3075182644u, 3144159778u, 3075182644u, 0, COPYSIGNF_TOLERANCE, 0},
+{1892, 3028099649u, 3391513557u, 3028099649u, 0, COPYSIGNF_TOLERANCE, 0},
+{1893, 3132541814u, 3444521949u, 3132541814u, 0, COPYSIGNF_TOLERANCE, 0},
+{1894, 1164046161u, 3440635788u, 3311529809u, 0, COPYSIGNF_TOLERANCE, 0},
+{1895, 1292596266u, 3116569667u, 3440079914u, 0, COPYSIGNF_TOLERANCE, 0},
+{1896, 3469748379u, 3412765608u, 3469748379u, 0, COPYSIGNF_TOLERANCE, 0},
+{1897, 1314644642u, 3123051784u, 3462128290u, 0, COPYSIGNF_TOLERANCE, 0},
+{1898, 3399813173u, 828743798u, 1252329525u, 0, COPYSIGNF_TOLERANCE, 0},
+{1899, 948775569u, 3485444126u, 3096259217u, 0, COPYSIGNF_TOLERANCE, 0},
+{1900, 1034611395u, 882288581u, 1034611395u, 0, COPYSIGNF_TOLERANCE, 0},
+{1901, 3489122735u, 3372450889u, 3489122735u, 0, COPYSIGNF_TOLERANCE, 0},
+{1902, 1181604787u, 3363067409u, 3329088435u, 0, COPYSIGNF_TOLERANCE, 0},
+{1903, 3059042077u, 3204983963u, 3059042077u, 0, COPYSIGNF_TOLERANCE, 0},
+{1904, 1043691622u, 3402603223u, 3191175270u, 0, COPYSIGNF_TOLERANCE, 0},
+{1905, 1314588083u, 856187848u, 1314588083u, 0, COPYSIGNF_TOLERANCE, 0},
+{1906, 3141533334u, 3010142974u, 3141533334u, 0, COPYSIGNF_TOLERANCE, 0},
+{1907, 3157534378u, 3451674717u, 3157534378u, 0, COPYSIGNF_TOLERANCE, 0},
+{1908, 3400949680u, 3073750220u, 3400949680u, 0, COPYSIGNF_TOLERANCE, 0},
+{1909, 3365581801u, 1175843167u, 1218098153u, 0, COPYSIGNF_TOLERANCE, 0},
+{1910, 1110424755u, 3011308654u, 3257908403u, 0, COPYSIGNF_TOLERANCE, 0},
+{1911, 3189917167u, 927278934u, 1042433519u, 0, COPYSIGNF_TOLERANCE, 0},
+{1912, 969804941u, 3355439348u, 3117288589u, 0, COPYSIGNF_TOLERANCE, 0},
+{1913, 1139120919u, 3270515074u, 3286604567u, 0, COPYSIGNF_TOLERANCE, 0},
+{1914, 934308144u, 3118191228u, 3081791792u, 0, COPYSIGNF_TOLERANCE, 0},
+{1915, 1220524226u, 1152648002u, 1220524226u, 0, COPYSIGNF_TOLERANCE, 0},
+{1916, 3162548604u, 3461790298u, 3162548604u, 0, COPYSIGNF_TOLERANCE, 0},
+{1917, 3382391700u, 3296962745u, 3382391700u, 0, COPYSIGNF_TOLERANCE, 0},
+{1918, 1156767533u, 1088986462u, 1156767533u, 0, COPYSIGNF_TOLERANCE, 0},
+{1919, 3079222483u, 3312324949u, 3079222483u, 0, COPYSIGNF_TOLERANCE, 0},
+{1920, 994934087u, 967678094u, 994934087u, 0, COPYSIGNF_TOLERANCE, 0},
+{1921, 3185240099u, 1123403720u, 1037756451u, 0, COPYSIGNF_TOLERANCE, 0},
+{1922, 3479873563u, 1246277393u, 1332389915u, 0, COPYSIGNF_TOLERANCE, 0},
+{1923, 3424264117u, 3434026174u, 3424264117u, 0, COPYSIGNF_TOLERANCE, 0},
+{1924, 3228365887u, 1216775310u, 1080882239u, 0, COPYSIGNF_TOLERANCE, 0},
+{1925, 1035909900u, 1249532942u, 1035909900u, 0, COPYSIGNF_TOLERANCE, 0},
+{1926, 3024951184u, 1247632131u, 877467536u, 0, COPYSIGNF_TOLERANCE, 0},
+{1927, 1212129651u, 3017366784u, 3359613299u, 0, COPYSIGNF_TOLERANCE, 0},
+{1928, 3125775254u, 955826310u, 978291606u, 0, COPYSIGNF_TOLERANCE, 0},
+{1929, 1037464105u, 3121544932u, 3184947753u, 0, COPYSIGNF_TOLERANCE, 0},
+{1930, 1311706596u, 1254918706u, 1311706596u, 0, COPYSIGNF_TOLERANCE, 0},
+{1931, 918212457u, 1017468331u, 918212457u, 0, COPYSIGNF_TOLERANCE, 0},
+{1932, 1337315179u, 3461361185u, 3484798827u, 0, COPYSIGNF_TOLERANCE, 0},
+{1933, 1131358407u, 3325958870u, 3278842055u, 0, COPYSIGNF_TOLERANCE, 0},
+{1934, 1156517523u, 3343716230u, 3304001171u, 0, COPYSIGNF_TOLERANCE, 0},
+{1935, 3210802820u, 3207408574u, 3210802820u, 0, COPYSIGNF_TOLERANCE, 0},
+{1936, 3337499209u, 1226297264u, 1190015561u, 0, COPYSIGNF_TOLERANCE, 0},
+{1937, 3468429030u, 3253874001u, 3468429030u, 0, COPYSIGNF_TOLERANCE, 0},
+{1938, 3253515800u, 1189005947u, 1106032152u, 0, COPYSIGNF_TOLERANCE, 0},
+{1939, 3055299953u, 3047908678u, 3055299953u, 0, COPYSIGNF_TOLERANCE, 0},
+{1940, 959956547u, 876324728u, 959956547u, 0, COPYSIGNF_TOLERANCE, 0},
+{1941, 3425290480u, 1139193797u, 1277806832u, 0, COPYSIGNF_TOLERANCE, 0},
+{1942, 1039917375u, 1122740999u, 1039917375u, 0, COPYSIGNF_TOLERANCE, 0},
+{1943, 3220979495u, 3429223871u, 3220979495u, 0, COPYSIGNF_TOLERANCE, 0},
+{1944, 1311016004u, 3334899880u, 3458499652u, 0, COPYSIGNF_TOLERANCE, 0},
+{1945, 1128016396u, 1105151547u, 1128016396u, 0, COPYSIGNF_TOLERANCE, 0},
+{1946, 3210335769u, 3100646155u, 3210335769u, 0, COPYSIGNF_TOLERANCE, 0},
+{1947, 3022705759u, 3404762495u, 3022705759u, 0, COPYSIGNF_TOLERANCE, 0},
+{1948, 1206054701u, 826010009u, 1206054701u, 0, COPYSIGNF_TOLERANCE, 0},
+{1949, 3144504834u, 1162227076u, 997021186u, 0, COPYSIGNF_TOLERANCE, 0},
+{1950, 1213609983u, 919983950u, 1213609983u, 0, COPYSIGNF_TOLERANCE, 0},
+{1951, 1246902946u, 3064047808u, 3394386594u, 0, COPYSIGNF_TOLERANCE, 0},
+{1952, 995850843u, 1332031130u, 995850843u, 0, COPYSIGNF_TOLERANCE, 0},
+{1953, 3362082828u, 3374056268u, 3362082828u, 0, COPYSIGNF_TOLERANCE, 0},
+{1954, 1029480631u, 3047777170u, 3176964279u, 0, COPYSIGNF_TOLERANCE, 0},
+{1955, 3153568584u, 3106514232u, 3153568584u, 0, COPYSIGNF_TOLERANCE, 0},
+{1956, 3384988527u, 3109485565u, 3384988527u, 0, COPYSIGNF_TOLERANCE, 0},
+{1957, 1317696241u, 870681806u, 1317696241u, 0, COPYSIGNF_TOLERANCE, 0},
+{1958, 3235395924u, 1132055244u, 1087912276u, 0, COPYSIGNF_TOLERANCE, 0},
+{1959, 3341877624u, 2969495570u, 3341877624u, 0, COPYSIGNF_TOLERANCE, 0},
+{1960, 1228636133u, 886552820u, 1228636133u, 0, COPYSIGNF_TOLERANCE, 0},
+{1961, 3161654634u, 3335899347u, 3161654634u, 0, COPYSIGNF_TOLERANCE, 0},
+{1962, 3162655243u, 3307203982u, 3162655243u, 0, COPYSIGNF_TOLERANCE, 0},
+{1963, 1207246237u, 859223639u, 1207246237u, 0, COPYSIGNF_TOLERANCE, 0},
+{1964, 1165476654u, 3350219111u, 3312960302u, 0, COPYSIGNF_TOLERANCE, 0},
+{1965, 1215278023u, 3019755242u, 3362761671u, 0, COPYSIGNF_TOLERANCE, 0},
+{1966, 1017239798u, 3438501281u, 3164723446u, 0, COPYSIGNF_TOLERANCE, 0},
+{1967, 1149651309u, 970030475u, 1149651309u, 0, COPYSIGNF_TOLERANCE, 0},
+{1968, 1111943722u, 3122211334u, 3259427370u, 0, COPYSIGNF_TOLERANCE, 0},
+{1969, 1189849849u, 3382739134u, 3337333497u, 0, COPYSIGNF_TOLERANCE, 0},
+{1970, 3204848496u, 3141519085u, 3204848496u, 0, COPYSIGNF_TOLERANCE, 0},
+{1971, 1249758327u, 3104759211u, 3397241975u, 0, COPYSIGNF_TOLERANCE, 0},
+{1972, 3092982276u, 3445282331u, 3092982276u, 0, COPYSIGNF_TOLERANCE, 0},
+{1973, 1168098747u, 1316854744u, 1168098747u, 0, COPYSIGNF_TOLERANCE, 0},
+{1974, 892549317u, 1179637545u, 892549317u, 0, COPYSIGNF_TOLERANCE, 0},
+{1975, 3301009024u, 3406174560u, 3301009024u, 0, COPYSIGNF_TOLERANCE, 0},
+{1976, 3233089227u, 1212652543u, 1085605579u, 0, COPYSIGNF_TOLERANCE, 0},
+{1977, 3218245284u, 1238873830u, 1070761636u, 0, COPYSIGNF_TOLERANCE, 0},
+{1978, 3215981890u, 3240474694u, 3215981890u, 0, COPYSIGNF_TOLERANCE, 0},
+{1979, 1266687209u, 3092038122u, 3414170857u, 0, COPYSIGNF_TOLERANCE, 0},
+{1980, 3487959775u, 3331372071u, 3487959775u, 0, COPYSIGNF_TOLERANCE, 0},
+{1981, 943645710u, 852875779u, 943645710u, 0, COPYSIGNF_TOLERANCE, 0},
+{1982, 3345065699u, 3282620725u, 3345065699u, 0, COPYSIGNF_TOLERANCE, 0},
+{1983, 935847271u, 1067255804u, 935847271u, 0, COPYSIGNF_TOLERANCE, 0},
+{1984, 3410336089u, 1111437780u, 1262852441u, 0, COPYSIGNF_TOLERANCE, 0},
+{1985, 3082940740u, 1336840432u, 935457092u, 0, COPYSIGNF_TOLERANCE, 0},
+{1986, 1141063391u, 1168908072u, 1141063391u, 0, COPYSIGNF_TOLERANCE, 0},
+{1987, 3059263153u, 3067795684u, 3059263153u, 0, COPYSIGNF_TOLERANCE, 0},
+{1988, 3353679791u, 897158391u, 1206196143u, 0, COPYSIGNF_TOLERANCE, 0},
+{1989, 1001823878u, 1016826861u, 1001823878u, 0, COPYSIGNF_TOLERANCE, 0},
+{1990, 1009130212u, 1004302940u, 1009130212u, 0, COPYSIGNF_TOLERANCE, 0},
+{1991, 3367127535u, 943136342u, 1219643887u, 0, COPYSIGNF_TOLERANCE, 0},
+{1992, 1032920919u, 3449126417u, 3180404567u, 0, COPYSIGNF_TOLERANCE, 0},
+{1993, 3281952870u, 3147012185u, 3281952870u, 0, COPYSIGNF_TOLERANCE, 0},
+{1994, 1237868497u, 3048281802u, 3385352145u, 0, COPYSIGNF_TOLERANCE, 0},
+{1995, 1153753924u, 3322269242u, 3301237572u, 0, COPYSIGNF_TOLERANCE, 0},
+{1996, 1120261759u, 892210998u, 1120261759u, 0, COPYSIGNF_TOLERANCE, 0},
+{1997, 3226328360u, 3366432856u, 3226328360u, 0, COPYSIGNF_TOLERANCE, 0},
+{1998, 3349595986u, 3251588707u, 3349595986u, 0, COPYSIGNF_TOLERANCE, 0},
+{1999, 3166889490u, 3306023523u, 3166889490u, 0, COPYSIGNF_TOLERANCE, 0},
+{2000, 1087750238u, 1099325523u, 1087750238u, 0, COPYSIGNF_TOLERANCE, 0},
+{2001, 3121620061u, 3359488363u, 3121620061u, 0, COPYSIGNF_TOLERANCE, 0},
+{2002, 1066116543u, 3072159933u, 3213600191u, 0, COPYSIGNF_TOLERANCE, 0},
+{2003, 3210898034u, 2981803389u, 3210898034u, 0, COPYSIGNF_TOLERANCE, 0},
+{2004, 3051923237u, 3364074347u, 3051923237u, 0, COPYSIGNF_TOLERANCE, 0},
+{2005, 1030612298u, 3345396001u, 3178095946u, 0, COPYSIGNF_TOLERANCE, 0},
+{2006, 1186234578u, 858134374u, 1186234578u, 0, COPYSIGNF_TOLERANCE, 0},
+{2007, 1331680743u, 1009396165u, 1331680743u, 0, COPYSIGNF_TOLERANCE, 0},
+{2008, 3060774997u, 1326067357u, 913291349u, 0, COPYSIGNF_TOLERANCE, 0},
+{2009, 887589411u, 1292305693u, 887589411u, 0, COPYSIGNF_TOLERANCE, 0},
+{2010, 1045232522u, 3234993273u, 3192716170u, 0, COPYSIGNF_TOLERANCE, 0},
+{2011, 3119858470u, 962515365u, 972374822u, 0, COPYSIGNF_TOLERANCE, 0},
+{2012, 3349432725u, 928848003u, 1201949077u, 0, COPYSIGNF_TOLERANCE, 0},
+{2013, 912423027u, 3184646319u, 3059906675u, 0, COPYSIGNF_TOLERANCE, 0},
+{2014, 3228795133u, 3273940030u, 3228795133u, 0, COPYSIGNF_TOLERANCE, 0},
+{2015, 3194674746u, 3112269709u, 3194674746u, 0, COPYSIGNF_TOLERANCE, 0},
+{2016, 3296784303u, 3276182352u, 3296784303u, 0, COPYSIGNF_TOLERANCE, 0},
+{2017, 965402291u, 3107104376u, 3112885939u, 0, COPYSIGNF_TOLERANCE, 0},
+{2018, 3388153589u, 3426245389u, 3388153589u, 0, COPYSIGNF_TOLERANCE, 0},
+{2019, 1133410485u, 3329658993u, 3280894133u, 0, COPYSIGNF_TOLERANCE, 0},
+{2020, 3136790322u, 1088652637u, 989306674u, 0, COPYSIGNF_TOLERANCE, 0},
+{2021, 3369970587u, 959121458u, 1222486939u, 0, COPYSIGNF_TOLERANCE, 0},
+{2022, 1270451568u, 928393353u, 1270451568u, 0, COPYSIGNF_TOLERANCE, 0},
+{2023, 989498922u, 3088358419u, 3136982570u, 0, COPYSIGNF_TOLERANCE, 0},
+{2024, 1280215674u, 3148135875u, 3427699322u, 0, COPYSIGNF_TOLERANCE, 0},
+{2025, 1171873518u, 954709738u, 1171873518u, 0, COPYSIGNF_TOLERANCE, 0},
+{2026, 3298258100u, 935525182u, 1150774452u, 0, COPYSIGNF_TOLERANCE, 0},
+{2027, 3415208824u, 822843236u, 1267725176u, 0, COPYSIGNF_TOLERANCE, 0},
+{2028, 1001897182u, 3191875320u, 3149380830u, 0, COPYSIGNF_TOLERANCE, 0},
+{2029, 3152777939u, 3245830463u, 3152777939u, 0, COPYSIGNF_TOLERANCE, 0},
+{2030, 985903305u, 3333087577u, 3133386953u, 0, COPYSIGNF_TOLERANCE, 0},
+{2031, 3357328848u, 859306298u, 1209845200u, 0, COPYSIGNF_TOLERANCE, 0},
+{2032, 982612185u, 923582663u, 982612185u, 0, COPYSIGNF_TOLERANCE, 0},
+{2033, 3267868136u, 1208301947u, 1120384488u, 0, COPYSIGNF_TOLERANCE, 0},
+{2034, 3319048157u, 1172271145u, 1171564509u, 0, COPYSIGNF_TOLERANCE, 0},
+{2035, 1144755661u, 860947435u, 1144755661u, 0, COPYSIGNF_TOLERANCE, 0},
+{2036, 898467286u, 839254959u, 898467286u, 0, COPYSIGNF_TOLERANCE, 0},
+{2037, 3301461672u, 1233693827u, 1153978024u, 0, COPYSIGNF_TOLERANCE, 0},
+{2038, 3364525678u, 3089849671u, 3364525678u, 0, COPYSIGNF_TOLERANCE, 0},
+{2039, 931441127u, 1133424555u, 931441127u, 0, COPYSIGNF_TOLERANCE, 0},
+{2040, 3146660041u, 3143695961u, 3146660041u, 0, COPYSIGNF_TOLERANCE, 0},
+{2041, 3467121799u, 3023584354u, 3467121799u, 0, COPYSIGNF_TOLERANCE, 0},
+{2042, 1151257041u, 3084216427u, 3298740689u, 0, COPYSIGNF_TOLERANCE, 0},
+{2043, 3097873255u, 3219266640u, 3097873255u, 0, COPYSIGNF_TOLERANCE, 0},
+{2044, 3130670309u, 3192399254u, 3130670309u, 0, COPYSIGNF_TOLERANCE, 0},
+{2045, 1017573824u, 3130901062u, 3165057472u, 0, COPYSIGNF_TOLERANCE, 0},
+{2046, 1258369714u, 3462258576u, 3405853362u, 0, COPYSIGNF_TOLERANCE, 0},
+{2047, 1216602683u, 3371396332u, 3364086331u, 0, COPYSIGNF_TOLERANCE, 0},
+{2048, 3297265739u, 1214184410u, 1149782091u, 0, COPYSIGNF_TOLERANCE, 0},
+{2049, 1071940738u, 3311731012u, 3219424386u, 0, COPYSIGNF_TOLERANCE, 0},
+{2050, 922601356u, 3337171870u, 3070085004u, 0, COPYSIGNF_TOLERANCE, 0},
+{2051, 3462285635u, 3444030332u, 3462285635u, 0, COPYSIGNF_TOLERANCE, 0},
+{2052, 3357177805u, 1085464241u, 1209694157u, 0, COPYSIGNF_TOLERANCE, 0},
+{2053, 3049120080u, 900832851u, 901636432u, 0, COPYSIGNF_TOLERANCE, 0},
+{2054, 1153863660u, 1011991342u, 1153863660u, 0, COPYSIGNF_TOLERANCE, 0},
+{2055, 3034243695u, 917098003u, 886760047u, 0, COPYSIGNF_TOLERANCE, 0},
+{2056, 1249365132u, 3278686216u, 3396848780u, 0, COPYSIGNF_TOLERANCE, 0},
+{2057, 3046215730u, 3211219980u, 3046215730u, 0, COPYSIGNF_TOLERANCE, 0},
+{2058, 3047251716u, 1090787353u, 899768068u, 0, COPYSIGNF_TOLERANCE, 0},
+{2059, 3131219358u, 3471261157u, 3131219358u, 0, COPYSIGNF_TOLERANCE, 0},
+{2060, 3222096285u, 1198013705u, 1074612637u, 0, COPYSIGNF_TOLERANCE, 0},
+{2061, 1297708818u, 3079166173u, 3445192466u, 0, COPYSIGNF_TOLERANCE, 0},
+{2062, 3345532722u, 3383708463u, 3345532722u, 0, COPYSIGNF_TOLERANCE, 0},
+{2063, 3418753236u, 3481843070u, 3418753236u, 0, COPYSIGNF_TOLERANCE, 0},
+{2064, 1277417964u, 3487506626u, 3424901612u, 0, COPYSIGNF_TOLERANCE, 0},
+{2065, 987577257u, 1152077087u, 987577257u, 0, COPYSIGNF_TOLERANCE, 0},
+{2066, 3161606610u, 3190282989u, 3161606610u, 0, COPYSIGNF_TOLERANCE, 0},
+{2067, 888030585u, 3062367380u, 3035514233u, 0, COPYSIGNF_TOLERANCE, 0},
+{2068, 1043442869u, 3311393817u, 3190926517u, 0, COPYSIGNF_TOLERANCE, 0},
+{2069, 3320923228u, 3464544249u, 3320923228u, 0, COPYSIGNF_TOLERANCE, 0},
+{2070, 1337400405u, 3488844154u, 3484884053u, 0, COPYSIGNF_TOLERANCE, 0},
+{2071, 3400348640u, 3129868490u, 3400348640u, 0, COPYSIGNF_TOLERANCE, 0},
+{2072, 1250249095u, 1069023744u, 1250249095u, 0, COPYSIGNF_TOLERANCE, 0},
+{2073, 3284411233u, 1173613526u, 1136927585u, 0, COPYSIGNF_TOLERANCE, 0},
+{2074, 3020883322u, 2953622587u, 3020883322u, 0, COPYSIGNF_TOLERANCE, 0},
+{2075, 1215968622u, 3469884568u, 3363452270u, 0, COPYSIGNF_TOLERANCE, 0},
+{2076, 3202319550u, 819117302u, 1054835902u, 0, COPYSIGNF_TOLERANCE, 0},
+{2077, 3061638260u, 3116222327u, 3061638260u, 0, COPYSIGNF_TOLERANCE, 0},
+{2078, 1025404104u, 1066370251u, 1025404104u, 0, COPYSIGNF_TOLERANCE, 0},
+{2079, 3138086437u, 3195983510u, 3138086437u, 0, COPYSIGNF_TOLERANCE, 0},
+{2080, 3091024506u, 3456196859u, 3091024506u, 0, COPYSIGNF_TOLERANCE, 0},
+{2081, 3362748242u, 3369843597u, 3362748242u, 0, COPYSIGNF_TOLERANCE, 0},
+{2082, 3099671635u, 3218383623u, 3099671635u, 0, COPYSIGNF_TOLERANCE, 0},
+{2083, 3068014841u, 2978226656u, 3068014841u, 0, COPYSIGNF_TOLERANCE, 0},
+{2084, 1252237719u, 1121169249u, 1252237719u, 0, COPYSIGNF_TOLERANCE, 0},
+{2085, 3327895594u, 1224511805u, 1180411946u, 0, COPYSIGNF_TOLERANCE, 0},
+{2086, 3082454432u, 889268276u, 934970784u, 0, COPYSIGNF_TOLERANCE, 0},
+{2087, 3396161504u, 1182798837u, 1248677856u, 0, COPYSIGNF_TOLERANCE, 0},
+{2088, 1099710167u, 887180181u, 1099710167u, 0, COPYSIGNF_TOLERANCE, 0},
+{2089, 1157186482u, 1288722647u, 1157186482u, 0, COPYSIGNF_TOLERANCE, 0},
+{2090, 1282110851u, 3176633124u, 3429594499u, 0, COPYSIGNF_TOLERANCE, 0},
+{2091, 3477008113u, 1331845018u, 1329524465u, 0, COPYSIGNF_TOLERANCE, 0},
+{2092, 3292127294u, 3409957764u, 3292127294u, 0, COPYSIGNF_TOLERANCE, 0},
+{2093, 1123357102u, 3281307320u, 3270840750u, 0, COPYSIGNF_TOLERANCE, 0},
+{2094, 1106837025u, 3088080674u, 3254320673u, 0, COPYSIGNF_TOLERANCE, 0},
+{2095, 1049949008u, 1130799489u, 1049949008u, 0, COPYSIGNF_TOLERANCE, 0},
+{2096, 1253017688u, 942062372u, 1253017688u, 0, COPYSIGNF_TOLERANCE, 0},
+{2097, 1108543194u, 3281299199u, 3256026842u, 0, COPYSIGNF_TOLERANCE, 0},
+{2098, 3087985411u, 1238341456u, 940501763u, 0, COPYSIGNF_TOLERANCE, 0},
+{2099, 3163283126u, 1328636961u, 1015799478u, 0, COPYSIGNF_TOLERANCE, 0},
+{2100, 1160162706u, 1264067367u, 1160162706u, 0, COPYSIGNF_TOLERANCE, 0},
+{2101, 3305715025u, 3017496063u, 3305715025u, 0, COPYSIGNF_TOLERANCE, 0},
+{2102, 1266928623u, 811778614u, 1266928623u, 0, COPYSIGNF_TOLERANCE, 0},
+{2103, 3025340297u, 1193925540u, 877856649u, 0, COPYSIGNF_TOLERANCE, 0},
+{2104, 3438080027u, 3107114149u, 3438080027u, 0, COPYSIGNF_TOLERANCE, 0},
+{2105, 3344574751u, 3111270744u, 3344574751u, 0, COPYSIGNF_TOLERANCE, 0},
+{2106, 1152416724u, 962669179u, 1152416724u, 0, COPYSIGNF_TOLERANCE, 0},
+{2107, 1218239308u, 1126238113u, 1218239308u, 0, COPYSIGNF_TOLERANCE, 0},
+{2108, 3263310567u, 1030748197u, 1115826919u, 0, COPYSIGNF_TOLERANCE, 0},
+{2109, 3041998669u, 1160635263u, 894515021u, 0, COPYSIGNF_TOLERANCE, 0},
+{2110, 1000313118u, 2980130729u, 3147796766u, 0, COPYSIGNF_TOLERANCE, 0},
+{2111, 972485427u, 1124312043u, 972485427u, 0, COPYSIGNF_TOLERANCE, 0},
+{2112, 3290264612u, 1124703898u, 1142780964u, 0, COPYSIGNF_TOLERANCE, 0},
+{2113, 3222106584u, 1183748648u, 1074622936u, 0, COPYSIGNF_TOLERANCE, 0},
+{2114, 1278946388u, 825129857u, 1278946388u, 0, COPYSIGNF_TOLERANCE, 0},
+{2115, 947914771u, 3181847068u, 3095398419u, 0, COPYSIGNF_TOLERANCE, 0},
+{2116, 3167730654u, 3195765940u, 3167730654u, 0, COPYSIGNF_TOLERANCE, 0},
+{2117, 1098530298u, 3255870890u, 3246013946u, 0, COPYSIGNF_TOLERANCE, 0},
+{2118, 3232726036u, 871038882u, 1085242388u, 0, COPYSIGNF_TOLERANCE, 0},
+{2119, 1297190916u, 811863044u, 1297190916u, 0, COPYSIGNF_TOLERANCE, 0},
+{2120, 1277649137u, 961171401u, 1277649137u, 0, COPYSIGNF_TOLERANCE, 0},
+{2121, 3203377685u, 1306427476u, 1055894037u, 0, COPYSIGNF_TOLERANCE, 0},
+{2122, 3090306474u, 3124785016u, 3090306474u, 0, COPYSIGNF_TOLERANCE, 0},
+{2123, 3244032016u, 3045313345u, 3244032016u, 0, COPYSIGNF_TOLERANCE, 0},
+{2124, 3033122376u, 3049877065u, 3033122376u, 0, COPYSIGNF_TOLERANCE, 0},
+{2125, 1096155623u, 1256423752u, 1096155623u, 0, COPYSIGNF_TOLERANCE, 0},
+{2126, 873151908u, 3246562559u, 3020635556u, 0, COPYSIGNF_TOLERANCE, 0},
+{2127, 3238729605u, 1298769842u, 1091245957u, 0, COPYSIGNF_TOLERANCE, 0},
+{2128, 3317196817u, 989537151u, 1169713169u, 0, COPYSIGNF_TOLERANCE, 0},
+{2129, 3374748510u, 834161190u, 1227264862u, 0, COPYSIGNF_TOLERANCE, 0},
+{2130, 3345634950u, 959901149u, 1198151302u, 0, COPYSIGNF_TOLERANCE, 0},
+{2131, 3189860276u, 883598767u, 1042376628u, 0, COPYSIGNF_TOLERANCE, 0},
+{2132, 887311687u, 1175312255u, 887311687u, 0, COPYSIGNF_TOLERANCE, 0},
+{2133, 3396917283u, 3066326686u, 3396917283u, 0, COPYSIGNF_TOLERANCE, 0},
+{2134, 3317032737u, 3143803722u, 3317032737u, 0, COPYSIGNF_TOLERANCE, 0},
+{2135, 1200051436u, 1163802508u, 1200051436u, 0, COPYSIGNF_TOLERANCE, 0},
+{2136, 3105291012u, 1194385202u, 957807364u, 0, COPYSIGNF_TOLERANCE, 0},
+{2137, 1306520561u, 957302464u, 1306520561u, 0, COPYSIGNF_TOLERANCE, 0},
+{2138, 1314936356u, 2985592532u, 3462420004u, 0, COPYSIGNF_TOLERANCE, 0},
+{2139, 3475052219u, 1284049853u, 1327568571u, 0, COPYSIGNF_TOLERANCE, 0},
+{2140, 3085636260u, 1107682820u, 938152612u, 0, COPYSIGNF_TOLERANCE, 0},
+{2141, 3393227708u, 3271879112u, 3393227708u, 0, COPYSIGNF_TOLERANCE, 0},
+{2142, 3182540197u, 852580839u, 1035056549u, 0, COPYSIGNF_TOLERANCE, 0},
+{2143, 3349005404u, 3080993030u, 3349005404u, 0, COPYSIGNF_TOLERANCE, 0},
+{2144, 3154720153u, 3443720494u, 3154720153u, 0, COPYSIGNF_TOLERANCE, 0},
+{2145, 1262863321u, 1219003129u, 1262863321u, 0, COPYSIGNF_TOLERANCE, 0},
+{2146, 882902102u, 1224362550u, 882902102u, 0, COPYSIGNF_TOLERANCE, 0},
+{2147, 1053387478u, 3184880021u, 3200871126u, 0, COPYSIGNF_TOLERANCE, 0},
+{2148, 3387653691u, 3347783852u, 3387653691u, 0, COPYSIGNF_TOLERANCE, 0},
+{2149, 3136364836u, 1018492227u, 988881188u, 0, COPYSIGNF_TOLERANCE, 0},
+{2150, 1338680611u, 1166078045u, 1338680611u, 0, COPYSIGNF_TOLERANCE, 0},
+{2151, 1112891928u, 3074730425u, 3260375576u, 0, COPYSIGNF_TOLERANCE, 0},
+{2152, 893449284u, 1052877339u, 893449284u, 0, COPYSIGNF_TOLERANCE, 0},
+{2153, 892311459u, 1097338393u, 892311459u, 0, COPYSIGNF_TOLERANCE, 0},
+{2154, 3105373037u, 3246705916u, 3105373037u, 0, COPYSIGNF_TOLERANCE, 0},
+{2155, 1190105283u, 3033907262u, 3337588931u, 0, COPYSIGNF_TOLERANCE, 0},
+{2156, 1011225926u, 1180485180u, 1011225926u, 0, COPYSIGNF_TOLERANCE, 0},
+{2157, 1043025031u, 987068973u, 1043025031u, 0, COPYSIGNF_TOLERANCE, 0},
+{2158, 3410531037u, 2953541915u, 3410531037u, 0, COPYSIGNF_TOLERANCE, 0},
+{2159, 3125834184u, 896953754u, 978350536u, 0, COPYSIGNF_TOLERANCE, 0},
+{2160, 902318189u, 849277289u, 902318189u, 0, COPYSIGNF_TOLERANCE, 0},
+{2161, 3213624815u, 2987148017u, 3213624815u, 0, COPYSIGNF_TOLERANCE, 0},
+{2162, 1120888322u, 1086209113u, 1120888322u, 0, COPYSIGNF_TOLERANCE, 0},
+{2163, 1315217243u, 3396371713u, 3462700891u, 0, COPYSIGNF_TOLERANCE, 0},
+{2164, 3137758475u, 1039403054u, 990274827u, 0, COPYSIGNF_TOLERANCE, 0},
+{2165, 1040617590u, 1034835971u, 1040617590u, 0, COPYSIGNF_TOLERANCE, 0},
+{2166, 955384253u, 3344785562u, 3102867901u, 0, COPYSIGNF_TOLERANCE, 0},
+{2167, 3061417900u, 1172208065u, 913934252u, 0, COPYSIGNF_TOLERANCE, 0},
+{2168, 904255535u, 1019967545u, 904255535u, 0, COPYSIGNF_TOLERANCE, 0},
+{2169, 1022984119u, 3113891410u, 3170467767u, 0, COPYSIGNF_TOLERANCE, 0},
+{2170, 997362368u, 3112875428u, 3144846016u, 0, COPYSIGNF_TOLERANCE, 0},
+{2171, 900933520u, 1100589187u, 900933520u, 0, COPYSIGNF_TOLERANCE, 0},
+{2172, 1168623062u, 1143306482u, 1168623062u, 0, COPYSIGNF_TOLERANCE, 0},
+{2173, 878737490u, 3269908326u, 3026221138u, 0, COPYSIGNF_TOLERANCE, 0},
+{2174, 1039827284u, 1072928888u, 1039827284u, 0, COPYSIGNF_TOLERANCE, 0},
+{2175, 1021564080u, 1064468397u, 1021564080u, 0, COPYSIGNF_TOLERANCE, 0},
+{2176, 3458669745u, 3033299853u, 3458669745u, 0, COPYSIGNF_TOLERANCE, 0},
+{2177, 3327516316u, 3405380971u, 3327516316u, 0, COPYSIGNF_TOLERANCE, 0},
+{2178, 1040711112u, 3229444200u, 3188194760u, 0, COPYSIGNF_TOLERANCE, 0},
+{2179, 1134528351u, 3365952513u, 3282011999u, 0, COPYSIGNF_TOLERANCE, 0},
+{2180, 3039884464u, 1170612785u, 892400816u, 0, COPYSIGNF_TOLERANCE, 0},
+{2181, 3414352838u, 3350285760u, 3414352838u, 0, COPYSIGNF_TOLERANCE, 0},
+{2182, 1133689539u, 1067460093u, 1133689539u, 0, COPYSIGNF_TOLERANCE, 0},
+{2183, 3455688478u, 3333091960u, 3455688478u, 0, COPYSIGNF_TOLERANCE, 0},
+{2184, 1137634874u, 1137038869u, 1137634874u, 0, COPYSIGNF_TOLERANCE, 0},
+{2185, 3415502662u, 955510692u, 1268019014u, 0, COPYSIGNF_TOLERANCE, 0},
+{2186, 954999730u, 969618597u, 954999730u, 0, COPYSIGNF_TOLERANCE, 0},
+{2187, 1066157309u, 3241712664u, 3213640957u, 0, COPYSIGNF_TOLERANCE, 0},
+{2188, 3436353675u, 1174967495u, 1288870027u, 0, COPYSIGNF_TOLERANCE, 0},
+{2189, 940437609u, 860372396u, 940437609u, 0, COPYSIGNF_TOLERANCE, 0},
+{2190, 3108347547u, 3434003435u, 3108347547u, 0, COPYSIGNF_TOLERANCE, 0},
+{2191, 3064200154u, 3158080507u, 3064200154u, 0, COPYSIGNF_TOLERANCE, 0},
+{2192, 1023889593u, 2979304683u, 3171373241u, 0, COPYSIGNF_TOLERANCE, 0},
+{2193, 3272661536u, 3461799138u, 3272661536u, 0, COPYSIGNF_TOLERANCE, 0},
+{2194, 1170245333u, 1233406410u, 1170245333u, 0, COPYSIGNF_TOLERANCE, 0},
+{2195, 1219052056u, 3369557946u, 3366535704u, 0, COPYSIGNF_TOLERANCE, 0},
+{2196, 3318983619u, 3259663338u, 3318983619u, 0, COPYSIGNF_TOLERANCE, 0},
+{2197, 3372118621u, 837597103u, 1224634973u, 0, COPYSIGNF_TOLERANCE, 0},
+{2198, 3146190320u, 889646054u, 998706672u, 0, COPYSIGNF_TOLERANCE, 0},
+{2199, 1299683827u, 966031619u, 1299683827u, 0, COPYSIGNF_TOLERANCE, 0},
+{2200, 3190796331u, 1320011850u, 1043312683u, 0, COPYSIGNF_TOLERANCE, 0},
+{2201, 3086068902u, 3484245751u, 3086068902u, 0, COPYSIGNF_TOLERANCE, 0},
+{2202, 3064155399u, 3176569312u, 3064155399u, 0, COPYSIGNF_TOLERANCE, 0},
+{2203, 3040314717u, 1071290674u, 892831069u, 0, COPYSIGNF_TOLERANCE, 0},
+{2204, 3257224022u, 3361778245u, 3257224022u, 0, COPYSIGNF_TOLERANCE, 0},
+{2205, 1229268598u, 1066965677u, 1229268598u, 0, COPYSIGNF_TOLERANCE, 0},
+{2206, 3184078812u, 871003709u, 1036595164u, 0, COPYSIGNF_TOLERANCE, 0},
+{2207, 1086717248u, 3423795374u, 3234200896u, 0, COPYSIGNF_TOLERANCE, 0},
+{2208, 3434884607u, 3029593823u, 3434884607u, 0, COPYSIGNF_TOLERANCE, 0},
+{2209, 3464955606u, 1017987696u, 1317471958u, 0, COPYSIGNF_TOLERANCE, 0},
+{2210, 1025278524u, 3121856207u, 3172762172u, 0, COPYSIGNF_TOLERANCE, 0},
+{2211, 1242829722u, 3233935671u, 3390313370u, 0, COPYSIGNF_TOLERANCE, 0},
+{2212, 3075149137u, 1117325737u, 927665489u, 0, COPYSIGNF_TOLERANCE, 0},
+{2213, 1200927971u, 1317167489u, 1200927971u, 0, COPYSIGNF_TOLERANCE, 0},
+{2214, 3326858092u, 3452602832u, 3326858092u, 0, COPYSIGNF_TOLERANCE, 0},
+{2215, 1246019790u, 850632217u, 1246019790u, 0, COPYSIGNF_TOLERANCE, 0},
+{2216, 3184801644u, 1137974313u, 1037317996u, 0, COPYSIGNF_TOLERANCE, 0},
+{2217, 1136052740u, 3244616020u, 3283536388u, 0, COPYSIGNF_TOLERANCE, 0},
+{2218, 1069009211u, 3002507482u, 3216492859u, 0, COPYSIGNF_TOLERANCE, 0},
+{2219, 1015670780u, 1101217251u, 1015670780u, 0, COPYSIGNF_TOLERANCE, 0},
+{2220, 1012543234u, 1116520440u, 1012543234u, 0, COPYSIGNF_TOLERANCE, 0},
+{2221, 3316611992u, 3394732912u, 3316611992u, 0, COPYSIGNF_TOLERANCE, 0},
+{2222, 1087942795u, 3316660295u, 3235426443u, 0, COPYSIGNF_TOLERANCE, 0},
+{2223, 3426365713u, 3069778532u, 3426365713u, 0, COPYSIGNF_TOLERANCE, 0},
+{2224, 3066654389u, 3443934204u, 3066654389u, 0, COPYSIGNF_TOLERANCE, 0},
+{2225, 3295326432u, 1313396175u, 1147842784u, 0, COPYSIGNF_TOLERANCE, 0},
+{2226, 3318835308u, 3277583511u, 3318835308u, 0, COPYSIGNF_TOLERANCE, 0},
+{2227, 3283555717u, 891875120u, 1136072069u, 0, COPYSIGNF_TOLERANCE, 0},
+{2228, 3381255420u, 3015406047u, 3381255420u, 0, COPYSIGNF_TOLERANCE, 0},
+{2229, 3040485181u, 3375450886u, 3040485181u, 0, COPYSIGNF_TOLERANCE, 0},
+{2230, 3388772093u, 1032597076u, 1241288445u, 0, COPYSIGNF_TOLERANCE, 0},
+{2231, 954670189u, 1144923689u, 954670189u, 0, COPYSIGNF_TOLERANCE, 0},
+{2232, 1319200415u, 3387555900u, 3466684063u, 0, COPYSIGNF_TOLERANCE, 0},
+{2233, 1279324488u, 3228401212u, 3426808136u, 0, COPYSIGNF_TOLERANCE, 0},
+{2234, 3217795424u, 865577227u, 1070311776u, 0, COPYSIGNF_TOLERANCE, 0},
+{2235, 3455131757u, 1260217257u, 1307648109u, 0, COPYSIGNF_TOLERANCE, 0},
+{2236, 1246947517u, 1087951909u, 1246947517u, 0, COPYSIGNF_TOLERANCE, 0},
+{2237, 3396723577u, 869285240u, 1249239929u, 0, COPYSIGNF_TOLERANCE, 0},
+{2238, 3433761025u, 3060143904u, 3433761025u, 0, COPYSIGNF_TOLERANCE, 0},
+{2239, 3201187455u, 900233172u, 1053703807u, 0, COPYSIGNF_TOLERANCE, 0},
+{2240, 1173247961u, 1191127979u, 1173247961u, 0, COPYSIGNF_TOLERANCE, 0},
+{2241, 3037297123u, 3346394818u, 3037297123u, 0, COPYSIGNF_TOLERANCE, 0},
+{2242, 3248534678u, 1323683800u, 1101051030u, 0, COPYSIGNF_TOLERANCE, 0},
+{2243, 3083019343u, 3033309444u, 3083019343u, 0, COPYSIGNF_TOLERANCE, 0},
+{2244, 3042018375u, 3203882372u, 3042018375u, 0, COPYSIGNF_TOLERANCE, 0},
+{2245, 1082862511u, 3032804719u, 3230346159u, 0, COPYSIGNF_TOLERANCE, 0},
+{2246, 3157626955u, 3483653298u, 3157626955u, 0, COPYSIGNF_TOLERANCE, 0},
+{2247, 1341821683u, 3003675365u, 3489305331u, 0, COPYSIGNF_TOLERANCE, 0},
+{2248, 881101379u, 1190838126u, 881101379u, 0, COPYSIGNF_TOLERANCE, 0},
+{2249, 1079061705u, 2960507663u, 3226545353u, 0, COPYSIGNF_TOLERANCE, 0},
+{2250, 3182695954u, 3256861672u, 3182695954u, 0, COPYSIGNF_TOLERANCE, 0},
+{2251, 1105291533u, 3482971524u, 3252775181u, 0, COPYSIGNF_TOLERANCE, 0},
+{2252, 1016023520u, 3227712090u, 3163507168u, 0, COPYSIGNF_TOLERANCE, 0},
+{2253, 3370691006u, 1295870514u, 1223207358u, 0, COPYSIGNF_TOLERANCE, 0},
+{2254, 1156767169u, 1049756240u, 1156767169u, 0, COPYSIGNF_TOLERANCE, 0},
+{2255, 3077020499u, 894671462u, 929536851u, 0, COPYSIGNF_TOLERANCE, 0},
+{2256, 1104284039u, 3040211914u, 3251767687u, 0, COPYSIGNF_TOLERANCE, 0},
+{2257, 3335212901u, 3486414589u, 3335212901u, 0, COPYSIGNF_TOLERANCE, 0},
+{2258, 1093697541u, 3193708441u, 3241181189u, 0, COPYSIGNF_TOLERANCE, 0},
+{2259, 3266691185u, 1160074593u, 1119207537u, 0, COPYSIGNF_TOLERANCE, 0},
+{2260, 3179003144u, 1108615803u, 1031519496u, 0, COPYSIGNF_TOLERANCE, 0},
+{2261, 1094115255u, 3008610212u, 3241598903u, 0, COPYSIGNF_TOLERANCE, 0},
+{2262, 3424086808u, 3260140004u, 3424086808u, 0, COPYSIGNF_TOLERANCE, 0},
+{2263, 3353608773u, 1134068114u, 1206125125u, 0, COPYSIGNF_TOLERANCE, 0},
+{2264, 973664327u, 1319516167u, 973664327u, 0, COPYSIGNF_TOLERANCE, 0},
+{2265, 882878091u, 3136970767u, 3030361739u, 0, COPYSIGNF_TOLERANCE, 0},
+{2266, 1098662266u, 833740182u, 1098662266u, 0, COPYSIGNF_TOLERANCE, 0},
+{2267, 927582555u, 947955456u, 927582555u, 0, COPYSIGNF_TOLERANCE, 0},
+{2268, 3111440310u, 3067634077u, 3111440310u, 0, COPYSIGNF_TOLERANCE, 0},
+{2269, 3476083859u, 966439623u, 1328600211u, 0, COPYSIGNF_TOLERANCE, 0},
+{2270, 3038754840u, 932009686u, 891271192u, 0, COPYSIGNF_TOLERANCE, 0},
+{2271, 979878744u, 1232482646u, 979878744u, 0, COPYSIGNF_TOLERANCE, 0},
+{2272, 3464546616u, 3205527253u, 3464546616u, 0, COPYSIGNF_TOLERANCE, 0},
+{2273, 1002542205u, 3152136093u, 3150025853u, 0, COPYSIGNF_TOLERANCE, 0},
+{2274, 3443552129u, 3165561391u, 3443552129u, 0, COPYSIGNF_TOLERANCE, 0},
+{2275, 1287620154u, 3119707283u, 3435103802u, 0, COPYSIGNF_TOLERANCE, 0},
+{2276, 946058434u, 1249928879u, 946058434u, 0, COPYSIGNF_TOLERANCE, 0},
+{2277, 3073260205u, 3093124531u, 3073260205u, 0, COPYSIGNF_TOLERANCE, 0},
+{2278, 1245702957u, 894348966u, 1245702957u, 0, COPYSIGNF_TOLERANCE, 0},
+{2279, 989655126u, 1308376568u, 989655126u, 0, COPYSIGNF_TOLERANCE, 0},
+{2280, 1002715618u, 1191006977u, 1002715618u, 0, COPYSIGNF_TOLERANCE, 0},
+{2281, 3087802274u, 897541752u, 940318626u, 0, COPYSIGNF_TOLERANCE, 0},
+{2282, 1000863905u, 1196831314u, 1000863905u, 0, COPYSIGNF_TOLERANCE, 0},
+{2283, 3415763001u, 3032518431u, 3415763001u, 0, COPYSIGNF_TOLERANCE, 0},
+{2284, 3283471961u, 1260093226u, 1135988313u, 0, COPYSIGNF_TOLERANCE, 0},
+{2285, 3311210827u, 1192192264u, 1163727179u, 0, COPYSIGNF_TOLERANCE, 0},
+{2286, 3026311911u, 2968974374u, 3026311911u, 0, COPYSIGNF_TOLERANCE, 0},
+{2287, 1198307901u, 1116328249u, 1198307901u, 0, COPYSIGNF_TOLERANCE, 0},
+{2288, 1288901567u, 1296370667u, 1288901567u, 0, COPYSIGNF_TOLERANCE, 0},
+{2289, 922255363u, 958305289u, 922255363u, 0, COPYSIGNF_TOLERANCE, 0},
+{2290, 1113104661u, 944376032u, 1113104661u, 0, COPYSIGNF_TOLERANCE, 0},
+{2291, 1136714348u, 828849087u, 1136714348u, 0, COPYSIGNF_TOLERANCE, 0},
+{2292, 948856035u, 1015466475u, 948856035u, 0, COPYSIGNF_TOLERANCE, 0},
+{2293, 1062512367u, 3229559531u, 3209996015u, 0, COPYSIGNF_TOLERANCE, 0},
+{2294, 3486907092u, 823220784u, 1339423444u, 0, COPYSIGNF_TOLERANCE, 0},
+{2295, 1162027071u, 3308983387u, 3309510719u, 0, COPYSIGNF_TOLERANCE, 0},
+{2296, 1034561811u, 1054043114u, 1034561811u, 0, COPYSIGNF_TOLERANCE, 0},
+{2297, 3271615417u, 3209997200u, 3271615417u, 0, COPYSIGNF_TOLERANCE, 0},
+{2298, 1042014529u, 1146708584u, 1042014529u, 0, COPYSIGNF_TOLERANCE, 0},
+{2299, 1177157787u, 3090208179u, 3324641435u, 0, COPYSIGNF_TOLERANCE, 0},
+{2300, 3196144817u, 1056118717u, 1048661169u, 0, COPYSIGNF_TOLERANCE, 0},
+{2301, 3432084552u, 2997091781u, 3432084552u, 0, COPYSIGNF_TOLERANCE, 0},
+{2302, 1309658335u, 1010219988u, 1309658335u, 0, COPYSIGNF_TOLERANCE, 0},
+{2303, 1226494979u, 2991604792u, 3373978627u, 0, COPYSIGNF_TOLERANCE, 0},
+{2304, 3100289712u, 3456334210u, 3100289712u, 0, COPYSIGNF_TOLERANCE, 0},
+{2305, 3375507013u, 1306310823u, 1228023365u, 0, COPYSIGNF_TOLERANCE, 0},
+{2306, 3460699001u, 3096700943u, 3460699001u, 0, COPYSIGNF_TOLERANCE, 0},
+{2307, 3079231719u, 1044386263u, 931748071u, 0, COPYSIGNF_TOLERANCE, 0},
+{2308, 3093951884u, 1014115231u, 946468236u, 0, COPYSIGNF_TOLERANCE, 0},
+{2309, 3468023178u, 1209565017u, 1320539530u, 0, COPYSIGNF_TOLERANCE, 0},
+{2310, 1204196034u, 3298625731u, 3351679682u, 0, COPYSIGNF_TOLERANCE, 0},
+{2311, 3459877411u, 2960476959u, 3459877411u, 0, COPYSIGNF_TOLERANCE, 0},
+{2312, 909696559u, 1163075690u, 909696559u, 0, COPYSIGNF_TOLERANCE, 0},
+{2313, 1161439847u, 943449277u, 1161439847u, 0, COPYSIGNF_TOLERANCE, 0},
+{2314, 908663107u, 939489763u, 908663107u, 0, COPYSIGNF_TOLERANCE, 0},
+{2315, 1055319316u, 3261813492u, 3202802964u, 0, COPYSIGNF_TOLERANCE, 0},
+{2316, 1084378658u, 1009650785u, 1084378658u, 0, COPYSIGNF_TOLERANCE, 0},
+{2317, 3053887750u, 3341786453u, 3053887750u, 0, COPYSIGNF_TOLERANCE, 0},
+{2318, 3022828828u, 881335251u, 875345180u, 0, COPYSIGNF_TOLERANCE, 0},
+{2319, 1226473697u, 821025132u, 1226473697u, 0, COPYSIGNF_TOLERANCE, 0},
+{2320, 1123114742u, 1229815537u, 1123114742u, 0, COPYSIGNF_TOLERANCE, 0},
+{2321, 1258114435u, 1291336083u, 1258114435u, 0, COPYSIGNF_TOLERANCE, 0},
+{2322, 3468040845u, 3066966245u, 3468040845u, 0, COPYSIGNF_TOLERANCE, 0},
+{2323, 1178825761u, 1113195286u, 1178825761u, 0, COPYSIGNF_TOLERANCE, 0},
+{2324, 3059266302u, 878503862u, 911782654u, 0, COPYSIGNF_TOLERANCE, 0},
+{2325, 3223384012u, 1130486973u, 1075900364u, 0, COPYSIGNF_TOLERANCE, 0},
+{2326, 1019964626u, 1235133609u, 1019964626u, 0, COPYSIGNF_TOLERANCE, 0},
+{2327, 3445262427u, 3465211174u, 3445262427u, 0, COPYSIGNF_TOLERANCE, 0},
+{2328, 1125653081u, 1207799746u, 1125653081u, 0, COPYSIGNF_TOLERANCE, 0},
+{2329, 3337652712u, 3025581813u, 3337652712u, 0, COPYSIGNF_TOLERANCE, 0},
+{2330, 1184753508u, 3147374485u, 3332237156u, 0, COPYSIGNF_TOLERANCE, 0},
+{2331, 996404791u, 3353251979u, 3143888439u, 0, COPYSIGNF_TOLERANCE, 0},
+{2332, 1188439315u, 1113484271u, 1188439315u, 0, COPYSIGNF_TOLERANCE, 0},
+{2333, 906557513u, 3006513432u, 3054041161u, 0, COPYSIGNF_TOLERANCE, 0},
+{2334, 916831283u, 999465787u, 916831283u, 0, COPYSIGNF_TOLERANCE, 0},
+{2335, 996786317u, 3179221951u, 3144269965u, 0, COPYSIGNF_TOLERANCE, 0},
+{2336, 3461635065u, 1004690387u, 1314151417u, 0, COPYSIGNF_TOLERANCE, 0},
+{2337, 1188167943u, 1200744896u, 1188167943u, 0, COPYSIGNF_TOLERANCE, 0},
+{2338, 3036502395u, 1172597364u, 889018747u, 0, COPYSIGNF_TOLERANCE, 0},
+{2339, 891257783u, 1267560050u, 891257783u, 0, COPYSIGNF_TOLERANCE, 0},
+{2340, 3290079438u, 846519377u, 1142595790u, 0, COPYSIGNF_TOLERANCE, 0},
+{2341, 3350690327u, 2967953392u, 3350690327u, 0, COPYSIGNF_TOLERANCE, 0},
+{2342, 1102061604u, 3424449935u, 3249545252u, 0, COPYSIGNF_TOLERANCE, 0},
+{2343, 1282351521u, 3039376424u, 3429835169u, 0, COPYSIGNF_TOLERANCE, 0},
+{2344, 3458861065u, 3392466405u, 3458861065u, 0, COPYSIGNF_TOLERANCE, 0},
+{2345, 3095256878u, 1023623326u, 947773230u, 0, COPYSIGNF_TOLERANCE, 0},
+{2346, 3163373610u, 843150426u, 1015889962u, 0, COPYSIGNF_TOLERANCE, 0},
+{2347, 3228793330u, 855146890u, 1081309682u, 0, COPYSIGNF_TOLERANCE, 0},
+{2348, 3422194733u, 893873945u, 1274711085u, 0, COPYSIGNF_TOLERANCE, 0},
+{2349, 3083885296u, 974543672u, 936401648u, 0, COPYSIGNF_TOLERANCE, 0},
+{2350, 1261940623u, 3402349985u, 3409424271u, 0, COPYSIGNF_TOLERANCE, 0},
+{2351, 3400603081u, 3234396843u, 3400603081u, 0, COPYSIGNF_TOLERANCE, 0},
+{2352, 1219411812u, 2961857939u, 3366895460u, 0, COPYSIGNF_TOLERANCE, 0},
+{2353, 3094833770u, 805351108u, 947350122u, 0, COPYSIGNF_TOLERANCE, 0},
+{2354, 3139250800u, 3079109479u, 3139250800u, 0, COPYSIGNF_TOLERANCE, 0},
+{2355, 886201503u, 3272760705u, 3033685151u, 0, COPYSIGNF_TOLERANCE, 0},
+{2356, 3297366026u, 1089966380u, 1149882378u, 0, COPYSIGNF_TOLERANCE, 0},
+{2357, 1218488455u, 3309646450u, 3365972103u, 0, COPYSIGNF_TOLERANCE, 0},
+{2358, 3040358923u, 3093401553u, 3040358923u, 0, COPYSIGNF_TOLERANCE, 0},
+{2359, 1283938137u, 1196383822u, 1283938137u, 0, COPYSIGNF_TOLERANCE, 0},
+{2360, 3182551696u, 3029982441u, 3182551696u, 0, COPYSIGNF_TOLERANCE, 0},
+{2361, 1317098613u, 949986176u, 1317098613u, 0, COPYSIGNF_TOLERANCE, 0},
+{2362, 3116209179u, 3303588342u, 3116209179u, 0, COPYSIGNF_TOLERANCE, 0},
+{2363, 3431703657u, 3014443710u, 3431703657u, 0, COPYSIGNF_TOLERANCE, 0},
+{2364, 3239728775u, 927815421u, 1092245127u, 0, COPYSIGNF_TOLERANCE, 0},
+{2365, 3207141672u, 933456504u, 1059658024u, 0, COPYSIGNF_TOLERANCE, 0},
+{2366, 3154378805u, 905462392u, 1006895157u, 0, COPYSIGNF_TOLERANCE, 0},
+{2367, 3069658155u, 1041452042u, 922174507u, 0, COPYSIGNF_TOLERANCE, 0},
+{2368, 3313160088u, 2964063309u, 3313160088u, 0, COPYSIGNF_TOLERANCE, 0},
+{2369, 3207056527u, 3384206601u, 3207056527u, 0, COPYSIGNF_TOLERANCE, 0},
+{2370, 1284174954u, 3436881197u, 3431658602u, 0, COPYSIGNF_TOLERANCE, 0},
+{2371, 3156081645u, 3308839704u, 3156081645u, 0, COPYSIGNF_TOLERANCE, 0},
+{2372, 1063693032u, 976661408u, 1063693032u, 0, COPYSIGNF_TOLERANCE, 0},
+{2373, 3036026175u, 1251203998u, 888542527u, 0, COPYSIGNF_TOLERANCE, 0},
+{2374, 1102631663u, 3396951425u, 3250115311u, 0, COPYSIGNF_TOLERANCE, 0},
+{2375, 968803479u, 992989712u, 968803479u, 0, COPYSIGNF_TOLERANCE, 0},
+{2376, 3273080388u, 3109405906u, 3273080388u, 0, COPYSIGNF_TOLERANCE, 0},
+{2377, 1172529774u, 3294550127u, 3320013422u, 0, COPYSIGNF_TOLERANCE, 0},
+{2378, 1306695905u, 1292690378u, 1306695905u, 0, COPYSIGNF_TOLERANCE, 0},
+{2379, 1003649752u, 1218792138u, 1003649752u, 0, COPYSIGNF_TOLERANCE, 0},
+{2380, 1078478376u, 1326246424u, 1078478376u, 0, COPYSIGNF_TOLERANCE, 0},
+{2381, 3158855023u, 3151283866u, 3158855023u, 0, COPYSIGNF_TOLERANCE, 0},
+{2382, 1165177679u, 3276237026u, 3312661327u, 0, COPYSIGNF_TOLERANCE, 0},
+{2383, 3403009513u, 3381966453u, 3403009513u, 0, COPYSIGNF_TOLERANCE, 0},
+{2384, 952348506u, 3377573987u, 3099832154u, 0, COPYSIGNF_TOLERANCE, 0},
+{2385, 1222777442u, 1125769920u, 1222777442u, 0, COPYSIGNF_TOLERANCE, 0},
+{2386, 1325324763u, 978336043u, 1325324763u, 0, COPYSIGNF_TOLERANCE, 0},
+{2387, 3363524213u, 3202991311u, 3363524213u, 0, COPYSIGNF_TOLERANCE, 0},
+{2388, 1158950321u, 1073578913u, 1158950321u, 0, COPYSIGNF_TOLERANCE, 0},
+{2389, 903129873u, 3416864271u, 3050613521u, 0, COPYSIGNF_TOLERANCE, 0},
+{2390, 3078339944u, 988173985u, 930856296u, 0, COPYSIGNF_TOLERANCE, 0},
+{2391, 1208345407u, 1254181270u, 1208345407u, 0, COPYSIGNF_TOLERANCE, 0},
+{2392, 1258634105u, 1247426200u, 1258634105u, 0, COPYSIGNF_TOLERANCE, 0},
+{2393, 1248478509u, 1287895126u, 1248478509u, 0, COPYSIGNF_TOLERANCE, 0},
+{2394, 1153863988u, 3430539165u, 3301347636u, 0, COPYSIGNF_TOLERANCE, 0},
+{2395, 1235620969u, 866627358u, 1235620969u, 0, COPYSIGNF_TOLERANCE, 0},
+{2396, 1097120930u, 3221726305u, 3244604578u, 0, COPYSIGNF_TOLERANCE, 0},
+{2397, 3469778622u, 1200179013u, 1322294974u, 0, COPYSIGNF_TOLERANCE, 0},
+{2398, 1147712200u, 931865525u, 1147712200u, 0, COPYSIGNF_TOLERANCE, 0},
+{2399, 1124721745u, 3058969650u, 3272205393u, 0, COPYSIGNF_TOLERANCE, 0},
+{2400, 3261744304u, 1043806501u, 1114260656u, 0, COPYSIGNF_TOLERANCE, 0},
+{2401, 1064922416u, 1320485628u, 1064922416u, 0, COPYSIGNF_TOLERANCE, 0},
+{2402, 3303160152u, 3075455322u, 3303160152u, 0, COPYSIGNF_TOLERANCE, 0},
+{2403, 1315090496u, 3269683237u, 3462574144u, 0, COPYSIGNF_TOLERANCE, 0},
+{2404, 3230403187u, 1322841992u, 1082919539u, 0, COPYSIGNF_TOLERANCE, 0},
+{2405, 1335399673u, 974138676u, 1335399673u, 0, COPYSIGNF_TOLERANCE, 0},
+{2406, 1072458508u, 3372833993u, 3219942156u, 0, COPYSIGNF_TOLERANCE, 0},
+{2407, 3303015249u, 3015039539u, 3303015249u, 0, COPYSIGNF_TOLERANCE, 0},
+{2408, 3252139741u, 1059615003u, 1104656093u, 0, COPYSIGNF_TOLERANCE, 0},
+{2409, 3468519966u, 3113982619u, 3468519966u, 0, COPYSIGNF_TOLERANCE, 0},
+{2410, 1006231203u, 897530770u, 1006231203u, 0, COPYSIGNF_TOLERANCE, 0},
+{2411, 951554138u, 1001144381u, 951554138u, 0, COPYSIGNF_TOLERANCE, 0},
+{2412, 942046828u, 986341002u, 942046828u, 0, COPYSIGNF_TOLERANCE, 0},
+{2413, 3319723279u, 3414482416u, 3319723279u, 0, COPYSIGNF_TOLERANCE, 0},
+{2414, 3255104167u, 928827688u, 1107620519u, 0, COPYSIGNF_TOLERANCE, 0},
+{2415, 1155477903u, 3104812800u, 3302961551u, 0, COPYSIGNF_TOLERANCE, 0},
+{2416, 3273889176u, 980486479u, 1126405528u, 0, COPYSIGNF_TOLERANCE, 0},
+{2417, 3237813668u, 3441016803u, 3237813668u, 0, COPYSIGNF_TOLERANCE, 0},
+{2418, 1228207362u, 2985476579u, 3375691010u, 0, COPYSIGNF_TOLERANCE, 0},
+{2419, 975349337u, 1311932596u, 975349337u, 0, COPYSIGNF_TOLERANCE, 0},
+{2420, 1290175785u, 3008182462u, 3437659433u, 0, COPYSIGNF_TOLERANCE, 0},
+{2421, 981908840u, 3314038398u, 3129392488u, 0, COPYSIGNF_TOLERANCE, 0},
+{2422, 941187647u, 1107765599u, 941187647u, 0, COPYSIGNF_TOLERANCE, 0},
+{2423, 1214223128u, 3225536822u, 3361706776u, 0, COPYSIGNF_TOLERANCE, 0},
+{2424, 3422922584u, 1086391131u, 1275438936u, 0, COPYSIGNF_TOLERANCE, 0},
+{2425, 1315857601u, 3487600045u, 3463341249u, 0, COPYSIGNF_TOLERANCE, 0},
+{2426, 3453226030u, 3233768835u, 3453226030u, 0, COPYSIGNF_TOLERANCE, 0},
+{2427, 1078359574u, 3199175230u, 3225843222u, 0, COPYSIGNF_TOLERANCE, 0},
+{2428, 1029557624u, 3302959071u, 3177041272u, 0, COPYSIGNF_TOLERANCE, 0},
+{2429, 1207675424u, 3042692550u, 3355159072u, 0, COPYSIGNF_TOLERANCE, 0},
+{2430, 1028355074u, 3442294040u, 3175838722u, 0, COPYSIGNF_TOLERANCE, 0},
+{2431, 3119299090u, 1187096397u, 971815442u, 0, COPYSIGNF_TOLERANCE, 0},
+{2432, 1248421894u, 3367769132u, 3395905542u, 0, COPYSIGNF_TOLERANCE, 0},
+{2433, 3353251994u, 1095517730u, 1205768346u, 0, COPYSIGNF_TOLERANCE, 0},
+{2434, 876926659u, 3288089977u, 3024410307u, 0, COPYSIGNF_TOLERANCE, 0},
+{2435, 1076752219u, 876236939u, 1076752219u, 0, COPYSIGNF_TOLERANCE, 0},
+{2436, 3388531942u, 2988520062u, 3388531942u, 0, COPYSIGNF_TOLERANCE, 0},
+{2437, 1273395082u, 3031189261u, 3420878730u, 0, COPYSIGNF_TOLERANCE, 0},
+{2438, 3385588183u, 3258252464u, 3385588183u, 0, COPYSIGNF_TOLERANCE, 0},
+{2439, 3192315328u, 3289489214u, 3192315328u, 0, COPYSIGNF_TOLERANCE, 0},
+{2440, 3441804648u, 3274638356u, 3441804648u, 0, COPYSIGNF_TOLERANCE, 0},
+{2441, 3392827417u, 1277961150u, 1245343769u, 0, COPYSIGNF_TOLERANCE, 0},
+{2442, 1161241793u, 1328003707u, 1161241793u, 0, COPYSIGNF_TOLERANCE, 0},
+{2443, 3034494183u, 3041579130u, 3034494183u, 0, COPYSIGNF_TOLERANCE, 0},
+{2444, 1171318485u, 3374409104u, 3318802133u, 0, COPYSIGNF_TOLERANCE, 0},
+{2445, 3047748143u, 831102792u, 900264495u, 0, COPYSIGNF_TOLERANCE, 0},
+{2446, 1001216371u, 3052357038u, 3148700019u, 0, COPYSIGNF_TOLERANCE, 0},
+{2447, 912515889u, 1074635609u, 912515889u, 0, COPYSIGNF_TOLERANCE, 0},
+{2448, 3391452505u, 897989232u, 1243968857u, 0, COPYSIGNF_TOLERANCE, 0},
+{2449, 3249603369u, 3147662248u, 3249603369u, 0, COPYSIGNF_TOLERANCE, 0},
+{2450, 1220264047u, 2960450369u, 3367747695u, 0, COPYSIGNF_TOLERANCE, 0},
+{2451, 3169816394u, 988430929u, 1022332746u, 0, COPYSIGNF_TOLERANCE, 0},
+{2452, 3098997418u, 3002162688u, 3098997418u, 0, COPYSIGNF_TOLERANCE, 0},
+{2453, 3282212423u, 3174079140u, 3282212423u, 0, COPYSIGNF_TOLERANCE, 0},
+{2454, 3352293320u, 3247843425u, 3352293320u, 0, COPYSIGNF_TOLERANCE, 0},
+{2455, 3296358441u, 875645354u, 1148874793u, 0, COPYSIGNF_TOLERANCE, 0},
+{2456, 1197828352u, 3245614728u, 3345312000u, 0, COPYSIGNF_TOLERANCE, 0},
+{2457, 3340510371u, 914930263u, 1193026723u, 0, COPYSIGNF_TOLERANCE, 0},
+{2458, 1127109339u, 3368125489u, 3274592987u, 0, COPYSIGNF_TOLERANCE, 0},
+{2459, 909467381u, 1232375752u, 909467381u, 0, COPYSIGNF_TOLERANCE, 0},
+{2460, 1200599955u, 2981200675u, 3348083603u, 0, COPYSIGNF_TOLERANCE, 0},
+{2461, 962230977u, 2988248037u, 3109714625u, 0, COPYSIGNF_TOLERANCE, 0},
+{2462, 3192887808u, 3191848339u, 3192887808u, 0, COPYSIGNF_TOLERANCE, 0},
+{2463, 3237183876u, 3179379969u, 3237183876u, 0, COPYSIGNF_TOLERANCE, 0},
+{2464, 939285924u, 3056079386u, 3086769572u, 0, COPYSIGNF_TOLERANCE, 0},
+{2465, 944050180u, 3452557879u, 3091533828u, 0, COPYSIGNF_TOLERANCE, 0},
+{2466, 3058135703u, 3090284601u, 3058135703u, 0, COPYSIGNF_TOLERANCE, 0},
+{2467, 3480592662u, 3261728191u, 3480592662u, 0, COPYSIGNF_TOLERANCE, 0},
+{2468, 3061939312u, 3274418540u, 3061939312u, 0, COPYSIGNF_TOLERANCE, 0},
+{2469, 1003299981u, 853295521u, 1003299981u, 0, COPYSIGNF_TOLERANCE, 0},
+{2470, 1155775526u, 1255814444u, 1155775526u, 0, COPYSIGNF_TOLERANCE, 0},
+{2471, 1234491880u, 3408568717u, 3381975528u, 0, COPYSIGNF_TOLERANCE, 0}
+
+// AUTOMATICALLY GENERATED VECTORS STOP
+
+};
+
+#endif // CYGONCE_LIBM_COPYSIGNF_H multiple inclusion protection
+
+// EOF copysignf.h
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/cos.c b/ecos/packages/language/c/libm/current/tests/vectors/cos.c
new file mode 100644
index 0000000..4537e30
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/cos.c
@@ -0,0 +1,115 @@
+//===========================================================================
+//
+// cos.c
+//
+// Test of cos() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// Declarations for test system:
+//
+// TESTCASE_TYPE=CYG_TEST_MODULE
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include <cyg/infra/testcase.h> // Test infrastructure
+#include <math.h> // Header for this package
+#include <sys/ieeefp.h> // Cyg_libm_ieee_double_shape_type
+#include "vectors/vector_support.h"// extra support for math tests
+
+#include "vectors/cos.h"
+
+// FUNCTIONS
+
+static void
+test( CYG_ADDRWORD data )
+{
+ cyg_ucount32 vec_size;
+ cyg_bool ret;
+
+ vec_size = sizeof(cos_vec) / sizeof(Cyg_libm_test_double_vec_t);
+ ret = doTestVec( (CYG_ADDRWORD) &cos, CYG_LIBM_TEST_VEC_DOUBLE,
+ CYG_LIBM_TEST_VEC_NONE, CYG_LIBM_TEST_VEC_DOUBLE,
+ &cos_vec[0], vec_size );
+
+ if (ret==true)
+ {
+ CYG_TEST_PASS("cos() is stable");
+ } // if
+ else
+ {
+ CYG_TEST_FAIL("cos() failed tests");
+ } // else
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for Math "
+ "library cos() function");
+} // test()
+
+
+int
+main(int argc, char *argv[])
+{
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for Math library "
+ "cos() function");
+
+ START_TEST( test );
+
+ CYG_TEST_PASS_FINISH("Testing is not applicable to this configuration");
+
+} // main()
+
+
+// EOF cos.c
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/cos.h b/ecos/packages/language/c/libm/current/tests/vectors/cos.h
new file mode 100644
index 0000000..4e3ad3b
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/cos.h
@@ -0,0 +1,1079 @@
+#ifndef CYGONCE_LIBM_COS_H
+#define CYGONCE_LIBM_COS_H
+//===========================================================================
+//
+// cos.h
+//
+// Test vectors for testing of cos() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage: #include "vectors/cos.h"
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include "vectors/vector_support.h"// extra support for math tests
+
+#define COS_TOLERANCE 1.0E-04
+
+static const Cyg_libm_test_double_vec_t cos_vec[] = {
+
+// AUTOMATICALLY GENERATED VECTORS START
+
+{ 1, 1077999148u, 2506787616u, 1090024059u, 3619148316u, 3219768992u, 2016484542u, 0, COS_TOLERANCE, 0},
+{ 2, 3218153654u, 3176730980u, 1051524793u, 2993920299u, 1072618594u, 3065796144u, 0, COS_TOLERANCE, 0},
+{ 3, 3239659803u, 2725707538u, 3232101343u, 2346810316u, 3220123085u, 3078481391u, 0, COS_TOLERANCE, 0},
+{ 4, 1092554362u, 2088062470u, 3201242716u, 420891118u, 1072356932u, 4042953682u, 0, COS_TOLERANCE, 0},
+{ 5, 3221200677u, 2636405208u, 1100049309u, 471635570u, 3218685952u, 3960691400u, 0, COS_TOLERANCE, 0},
+{ 6, 1089363191u, 1746012320u, 1054478713u, 3333988501u, 1071809942u, 2003021887u, 0, COS_TOLERANCE, 0},
+{ 7, 1047953160u, 183014794u, 3202039382u, 2016785810u, 1072693247u, 4294967264u, 0, COS_TOLERANCE, 0},
+{ 8, 3213486034u, 2688957927u, 1046089230u, 2709029994u, 1072693080u, 978212037u, 0, COS_TOLERANCE, 0},
+{ 9, 1058795730u, 624574473u, 1045840574u, 3473266330u, 1072693247u, 4243804449u, 0, COS_TOLERANCE, 0},
+{ 10, 3204919842u, 1605286142u, 1068931671u, 4233776869u, 1072693247u, 4286151936u, 0, COS_TOLERANCE, 0},
+{ 11, 1060343410u, 1857607719u, 3222889559u, 3417070006u, 1072693247u, 3893935114u, 0, COS_TOLERANCE, 0},
+{ 12, 1103599987u, 3981151660u, 1088899021u, 1332651746u, 1071013305u, 501046957u, 0, COS_TOLERANCE, 0},
+{ 13, 1085298022u, 3824988054u, 1066856791u, 2070129652u, 3220173381u, 184726421u, 0, COS_TOLERANCE, 0},
+{ 14, 3207559790u, 1372884064u, 1080833116u, 3229926662u, 1072693247u, 4035214061u, 0, COS_TOLERANCE, 0},
+{ 15, 1093826501u, 3217805330u, 3191644264u, 2014578707u, 1070032383u, 2277446950u, 0, COS_TOLERANCE, 0},
+{ 16, 1102287487u, 265058758u, 3239903247u, 1630600647u, 3220176170u, 1767461132u, 0, COS_TOLERANCE, 0},
+{ 17, 1071124229u, 1946677669u, 3198462609u, 926009897u, 1072546806u, 3686417449u, 0, COS_TOLERANCE, 0},
+{ 18, 1072130299u, 2271884183u, 3203741999u, 2118617783u, 1072156649u, 125344954u, 0, COS_TOLERANCE, 0},
+{ 19, 3194849109u, 213658772u, 3249401130u, 314151656u, 1072693247u, 4294967282u, 0, COS_TOLERANCE, 0},
+{ 20, 3254112288u, 1564829925u, 3197817016u, 497230814u, 3219660486u, 631679371u, 0, COS_TOLERANCE, 0},
+{ 21, 3216262634u, 2075329122u, 3231746400u, 169900577u, 1072686675u, 1944236140u, 0, COS_TOLERANCE, 0},
+{ 22, 1049848642u, 541549344u, 1096608669u, 3119070100u, 1072693247u, 4294966919u, 0, COS_TOLERANCE, 0},
+{ 23, 1085427055u, 567496114u, 1045286891u, 1969998540u, 3218068798u, 3978347379u, 0, COS_TOLERANCE, 0},
+{ 24, 1060548195u, 1299369769u, 1049342524u, 4167404066u, 1072693247u, 3755541054u, 0, COS_TOLERANCE, 0},
+{ 25, 3208865645u, 3348930841u, 1078472138u, 358457347u, 1072693247u, 2715744996u, 0, COS_TOLERANCE, 0},
+{ 26, 1071069297u, 2192461366u, 1099527247u, 3184735642u, 1072556722u, 3142942532u, 0, COS_TOLERANCE, 0},
+{ 27, 1052861772u, 331696577u, 3189610016u, 793242270u, 1072693247u, 4294947929u, 0, COS_TOLERANCE, 0},
+{ 28, 3252528934u, 2322696981u, 1083791358u, 3020766674u, 3219826880u, 2920996550u, 0, COS_TOLERANCE, 0},
+{ 29, 1044902177u, 252085215u, 3214426435u, 4139068910u, 1072693247u, 4294967295u, 0, COS_TOLERANCE, 0},
+{ 30, 3222505725u, 105589263u, 1056316170u, 261630827u, 1069929628u, 2708927296u, 0, COS_TOLERANCE, 0},
+{ 31, 1107213408u, 428765703u, 3251828686u, 2009972239u, 1072002281u, 2267619153u, 0, COS_TOLERANCE, 0},
+{ 32, 1098568019u, 3517376586u, 3240257920u, 3304487302u, 3219267113u, 2318350078u, 0, COS_TOLERANCE, 0},
+{ 33, 3233537912u, 237004814u, 3237899261u, 3364008659u, 3219363466u, 1974819849u, 0, COS_TOLERANCE, 0},
+{ 34, 3195247552u, 472004928u, 3226869477u, 1186387580u, 1072693247u, 4294967272u, 0, COS_TOLERANCE, 0},
+{ 35, 1054226850u, 4085763910u, 1106394906u, 2684738273u, 1072693247u, 4294840843u, 0, COS_TOLERANCE, 0},
+{ 36, 1057053639u, 2055490142u, 3231581370u, 3879040079u, 1072693247u, 4290030503u, 0, COS_TOLERANCE, 0},
+{ 37, 3188976647u, 3725731239u, 1061652681u, 591292963u, 1072693248u, 0u, 0, COS_TOLERANCE, 0},
+{ 38, 3225014981u, 1147041027u, 3215417793u, 624695933u, 1072212739u, 3548552865u, 0, COS_TOLERANCE, 0},
+{ 39, 3206052774u, 705725219u, 3238067573u, 1116238321u, 1072693247u, 4255683871u, 0, COS_TOLERANCE, 0},
+{ 40, 3207367088u, 7287411u, 1045917232u, 116067742u, 1072693247u, 4081475017u, 0, COS_TOLERANCE, 0},
+{ 41, 3240055222u, 3604989074u, 1066381836u, 545298780u, 1069174826u, 481201061u, 0, COS_TOLERANCE, 0},
+{ 42, 3219080936u, 1681476121u, 1060345752u, 3553822398u, 1072447760u, 3428441333u, 0, COS_TOLERANCE, 0},
+{ 43, 1102831658u, 3410480388u, 1052460275u, 1660607230u, 3220176232u, 3352970825u, 0, COS_TOLERANCE, 0},
+{ 44, 1089216869u, 1494984673u, 3196647153u, 287894723u, 1072276901u, 3815649632u, 0, COS_TOLERANCE, 0},
+{ 45, 1054885127u, 644548665u, 1081948134u, 2442134629u, 1072693247u, 4294696242u, 0, COS_TOLERANCE, 0},
+{ 46, 1087554095u, 2312530895u, 3221584595u, 3379665576u, 1071648109u, 1545486473u, 0, COS_TOLERANCE, 0},
+{ 47, 1096085375u, 3018463866u, 1086226574u, 404012923u, 3220172495u, 3110868414u, 0, COS_TOLERANCE, 0},
+{ 48, 1064733299u, 1710279345u, 3251401196u, 3528946000u, 1072693216u, 1050271320u, 0, COS_TOLERANCE, 0},
+{ 49, 1061536351u, 2164450219u, 1083520023u, 3312018966u, 1072693247u, 2309107782u, 0, COS_TOLERANCE, 0},
+{ 50, 1057248676u, 2648986431u, 1050330591u, 1474376550u, 1072693247u, 4288192616u, 0, COS_TOLERANCE, 0},
+{ 51, 3194422028u, 1839068700u, 1077406406u, 3013052171u, 1072693247u, 4294967288u, 0, COS_TOLERANCE, 0},
+{ 52, 1046493630u, 772102380u, 3220729740u, 4219039958u, 1072693247u, 4294967292u, 0, COS_TOLERANCE, 0},
+{ 53, 3229472221u, 3058618779u, 1046304788u, 3338676024u, 1072667959u, 113041016u, 0, COS_TOLERANCE, 0},
+{ 54, 1051172137u, 506286854u, 1094907481u, 2217000199u, 1072693247u, 4294965066u, 0, COS_TOLERANCE, 0},
+{ 55, 1082428310u, 1147428263u, 1065432625u, 3034786717u, 3219455129u, 3620968391u, 0, COS_TOLERANCE, 0},
+{ 56, 1082016752u, 2844125311u, 1082985198u, 2561492677u, 1072492615u, 1705681540u, 0, COS_TOLERANCE, 0},
+{ 57, 3211536916u, 704542600u, 3222902057u, 2762779203u, 1072693235u, 2601745815u, 0, COS_TOLERANCE, 0},
+{ 58, 3199680614u, 184131949u, 3249723525u, 1667366082u, 1072693247u, 4294958646u, 0, COS_TOLERANCE, 0},
+{ 59, 3223609598u, 3904224140u, 1067056698u, 2942159914u, 3219593076u, 1010749237u, 0, COS_TOLERANCE, 0},
+{ 60, 1100636863u, 426114282u, 3209056785u, 1083606355u, 3219470205u, 1406323978u, 0, COS_TOLERANCE, 0},
+{ 61, 1106165945u, 3774123863u, 1106787580u, 2722107965u, 1072606016u, 4140994146u, 0, COS_TOLERANCE, 0},
+{ 62, 1088005092u, 1377734762u, 1104232051u, 2377063483u, 3218242952u, 3735681066u, 0, COS_TOLERANCE, 0},
+{ 63, 1069380559u, 1029739074u, 1105467109u, 3062201018u, 1072679384u, 936725322u, 0, COS_TOLERANCE, 0},
+{ 64, 3234741597u, 773857656u, 3214251949u, 335833884u, 1071799931u, 384567806u, 0, COS_TOLERANCE, 0},
+{ 65, 3203224610u, 1473865960u, 1103073830u, 4000427507u, 1072693247u, 4294086482u, 0, COS_TOLERANCE, 0},
+{ 66, 1103185231u, 4242092620u, 1067009473u, 14539161u, 3219397655u, 2052311207u, 0, COS_TOLERANCE, 0},
+{ 67, 3192516074u, 1732245037u, 1101371955u, 1533536108u, 1072693247u, 4294967295u, 0, COS_TOLERANCE, 0},
+{ 68, 3249153995u, 1833841275u, 1099430098u, 4144145552u, 3218112666u, 1530833864u, 0, COS_TOLERANCE, 0},
+{ 69, 3244270463u, 935007012u, 3188865420u, 604442938u, 1069791519u, 4238814723u, 0, COS_TOLERANCE, 0},
+{ 70, 3206903253u, 2211464602u, 1046255144u, 1635910526u, 1072693247u, 4174238446u, 0, COS_TOLERANCE, 0},
+{ 71, 1077871417u, 2549219008u, 3231633258u, 3733639385u, 1072524971u, 2288078414u, 0, COS_TOLERANCE, 0},
+{ 72, 1082095089u, 1819374372u, 3202219056u, 2617077637u, 1072177416u, 1438672983u, 0, COS_TOLERANCE, 0},
+{ 73, 1094345280u, 546465680u, 1048653554u, 532401530u, 1072449430u, 350777572u, 0, COS_TOLERANCE, 0},
+{ 74, 1044571091u, 2759019783u, 3221570188u, 3554409630u, 1072693248u, 0u, 0, COS_TOLERANCE, 0},
+{ 75, 3212931282u, 2527221960u, 1099107978u, 2696971136u, 1072693171u, 4105298358u, 0, COS_TOLERANCE, 0},
+{ 76, 1097158000u, 173134582u, 1087299442u, 2877794600u, 3218695462u, 3908126164u, 0, COS_TOLERANCE, 0},
+{ 77, 1086400474u, 547642046u, 3197285510u, 3521286127u, 1072655927u, 2126353027u, 0, COS_TOLERANCE, 0},
+{ 78, 1074860702u, 1231582831u, 1090971734u, 1653446832u, 3218833636u, 2717799458u, 0, COS_TOLERANCE, 0},
+{ 79, 1061342535u, 3762182190u, 3252967851u, 2615360375u, 1072693247u, 2812236346u, 0, COS_TOLERANCE, 0},
+{ 80, 3200834423u, 2588067350u, 3206610957u, 3551059728u, 1072693247u, 4294927751u, 0, COS_TOLERANCE, 0},
+{ 81, 3206978856u, 845263327u, 1073415902u, 1749010288u, 1072693247u, 4160909940u, 0, COS_TOLERANCE, 0},
+{ 82, 3205576370u, 3092685191u, 3190678390u, 2872219490u, 1072693247u, 4275548308u, 0, COS_TOLERANCE, 0},
+{ 83, 3218315055u, 4107255722u, 3205337291u, 3069068345u, 1072595762u, 1566396021u, 0, COS_TOLERANCE, 0},
+{ 84, 3243990857u, 2294867524u, 3216653996u, 2860384670u, 3216839369u, 80524119u, 0, COS_TOLERANCE, 0},
+{ 85, 3193326350u, 2265437201u, 3240198679u, 1234948614u, 1072693247u, 4294967294u, 0, COS_TOLERANCE, 0},
+{ 86, 3216359929u, 1186945904u, 3251167793u, 1896750851u, 1072685678u, 821616092u, 0, COS_TOLERANCE, 0},
+{ 87, 1081575478u, 3686084548u, 1079286273u, 3309277689u, 1072458457u, 954886600u, 0, COS_TOLERANCE, 0},
+{ 88, 3223476240u, 3006860614u, 3231412671u, 2504194724u, 3220110252u, 3100390877u, 0, COS_TOLERANCE, 0},
+{ 89, 3236149260u, 1948717780u, 1048317852u, 3791803982u, 3219564158u, 3741596795u, 0, COS_TOLERANCE, 0},
+{ 90, 1064345015u, 4272034420u, 3192982124u, 1526175922u, 1072693230u, 3195985048u, 0, COS_TOLERANCE, 0},
+{ 91, 3245817826u, 4108948538u, 1104691287u, 640541190u, 1070492631u, 2055939015u, 0, COS_TOLERANCE, 0},
+{ 92, 3207257417u, 3259274853u, 1082507103u, 3677038020u, 1072693247u, 4105778929u, 0, COS_TOLERANCE, 0},
+{ 93, 1083132498u, 3781708548u, 1096584871u, 1207386447u, 3219419842u, 1550029926u, 0, COS_TOLERANCE, 0},
+{ 94, 3188695272u, 3011191657u, 1103798670u, 1096124830u, 1072693248u, 0u, 0, COS_TOLERANCE, 0},
+{ 95, 1063235023u, 2540404725u, 3240157452u, 4122845725u, 1072693244u, 343002006u, 0, COS_TOLERANCE, 0},
+{ 96, 1083643710u, 311336721u, 3214382367u, 4212533768u, 1070821938u, 789880753u, 0, COS_TOLERANCE, 0},
+{ 97, 1051139427u, 1769686293u, 3240200923u, 3538602249u, 1072693247u, 4294965159u, 0, COS_TOLERANCE, 0},
+{ 98, 1078227549u, 508056696u, 1103793878u, 776520138u, 3220173977u, 2550253995u, 0, COS_TOLERANCE, 0},
+{ 99, 1102910577u, 4064962760u, 1077424413u, 819766631u, 1072637279u, 908201379u, 0, COS_TOLERANCE, 0},
+{ 100, 1074178362u, 2112385259u, 3227593179u, 1187058516u, 3220077595u, 2239968209u, 0, COS_TOLERANCE, 0},
+{ 101, 1082295059u, 2514398118u, 1076579751u, 870169764u, 3217602657u, 1772072422u, 0, COS_TOLERANCE, 0},
+{ 102, 3246851392u, 1190259653u, 1069112254u, 3417249840u, 1071168295u, 2722648006u, 0, COS_TOLERANCE, 0},
+{ 103, 3193663083u, 3467757357u, 3215075200u, 2168175352u, 1072693247u, 4294967293u, 0, COS_TOLERANCE, 0},
+{ 104, 3239643135u, 1508888184u, 1060430241u, 3524949092u, 3218963721u, 2907233862u, 0, COS_TOLERANCE, 0},
+{ 105, 3197412883u, 166402802u, 3237198975u, 3572369260u, 1072693247u, 4294966870u, 0, COS_TOLERANCE, 0},
+{ 106, 1081866822u, 2441536203u, 3202753937u, 3658194573u, 1067566718u, 4225817352u, 0, COS_TOLERANCE, 0},
+{ 107, 1062392908u, 2479742828u, 1062342831u, 4214154303u, 1072693246u, 2641702618u, 0, COS_TOLERANCE, 0},
+{ 108, 1082396794u, 426896765u, 1066474375u, 2201754442u, 1071165698u, 123828766u, 0, COS_TOLERANCE, 0},
+{ 109, 3195629021u, 2055773734u, 3239267288u, 291396537u, 1072693247u, 4294967256u, 0, COS_TOLERANCE, 0},
+{ 110, 3236968033u, 874125203u, 3210508124u, 4091098764u, 1071882731u, 2672345646u, 0, COS_TOLERANCE, 0},
+{ 111, 1065716026u, 120488169u, 3241241441u, 1985269424u, 1072693132u, 218165317u, 0, COS_TOLERANCE, 0},
+{ 112, 3206539410u, 2243036871u, 3243941101u, 740033495u, 1072693247u, 4228241722u, 0, COS_TOLERANCE, 0},
+{ 113, 3209424906u, 1176656356u, 1074261978u, 3588756231u, 1072693247u, 1021260099u, 0, COS_TOLERANCE, 0},
+{ 114, 3252816791u, 3037249392u, 1061635587u, 1173102190u, 3219266232u, 3815073247u, 0, COS_TOLERANCE, 0},
+{ 115, 3237209581u, 2882725208u, 1071440059u, 69225090u, 3219903600u, 3901518120u, 0, COS_TOLERANCE, 0},
+{ 116, 3212663474u, 272319256u, 1072073912u, 2493997123u, 1072693194u, 625444171u, 0, COS_TOLERANCE, 0},
+{ 117, 1057720186u, 188610379u, 3232757923u, 2209647371u, 1072693247u, 4282550564u, 0, COS_TOLERANCE, 0},
+{ 118, 3236758517u, 1990439193u, 1078073146u, 622849962u, 3219972032u, 2985029200u, 0, COS_TOLERANCE, 0},
+{ 119, 1057135741u, 756052458u, 1081649113u, 2247475162u, 1072693247u, 4289292207u, 0, COS_TOLERANCE, 0},
+{ 120, 1061623064u, 3878055211u, 3222407050u, 2979438623u, 1072693247u, 2060251828u, 0, COS_TOLERANCE, 0},
+{ 121, 3195290997u, 2676398686u, 1105124431u, 3631096636u, 1072693247u, 4294967270u, 0, COS_TOLERANCE, 0},
+{ 122, 1065079390u, 1697791764u, 3198136112u, 2299842819u, 1072693199u, 2671749887u, 0, COS_TOLERANCE, 0},
+{ 123, 1078084768u, 1931502677u, 3215264397u, 3016456382u, 1071211061u, 1694081574u, 0, COS_TOLERANCE, 0},
+{ 124, 1072253426u, 343404215u, 1061072607u, 4266232536u, 1072071754u, 2362655966u, 0, COS_TOLERANCE, 0},
+{ 125, 3241230836u, 4140316002u, 1082896196u, 868256971u, 1067970065u, 236323897u, 0, COS_TOLERANCE, 0},
+{ 126, 1075422810u, 1864139509u, 3187675097u, 3084482407u, 1072675750u, 738312426u, 0, COS_TOLERANCE, 0},
+{ 127, 3220191323u, 2427162817u, 3234748208u, 2715105792u, 1071704804u, 3513111898u, 0, COS_TOLERANCE, 0},
+{ 128, 1064600512u, 3943389284u, 1046724025u, 3626825684u, 1072693221u, 2992922303u, 0, COS_TOLERANCE, 0},
+{ 129, 1045423002u, 967350972u, 1093012318u, 448002663u, 1072693247u, 4294967295u, 0, COS_TOLERANCE, 0},
+{ 130, 3251845859u, 105058217u, 1069733884u, 171786224u, 1070874665u, 4056918988u, 0, COS_TOLERANCE, 0},
+{ 131, 3189614508u, 2863482262u, 3204997271u, 877784425u, 1072693248u, 0u, 0, COS_TOLERANCE, 0},
+{ 132, 3202629313u, 2801782962u, 3213604117u, 762347195u, 1072693247u, 4294547593u, 0, COS_TOLERANCE, 0},
+{ 133, 3233486727u, 2317950339u, 3246333414u, 2135700283u, 1071423350u, 1925583622u, 0, COS_TOLERANCE, 0},
+{ 134, 1056516397u, 4171919805u, 1082858682u, 2180920863u, 1072693247u, 4292374246u, 0, COS_TOLERANCE, 0},
+{ 135, 3220149084u, 1918836931u, 1083603224u, 3137821660u, 1071752494u, 1517813325u, 0, COS_TOLERANCE, 0},
+{ 136, 1103902874u, 3456203663u, 3235600523u, 2335688936u, 1072655531u, 1757361807u, 0, COS_TOLERANCE, 0},
+{ 137, 1042279322u, 4170235262u, 1051824459u, 521583737u, 1072693248u, 0u, 0, COS_TOLERANCE, 0},
+{ 138, 1081348303u, 1296623194u, 3250673860u, 2442872540u, 1072317229u, 4079105971u, 0, COS_TOLERANCE, 0},
+{ 139, 1061684277u, 289979405u, 1049514449u, 3865737145u, 1072693247u, 1875738416u, 0, COS_TOLERANCE, 0},
+{ 140, 1075298944u, 3699090239u, 1054539840u, 3259249360u, 1072570919u, 238752392u, 0, COS_TOLERANCE, 0},
+{ 141, 1096418100u, 1619819023u, 1045993352u, 1022642459u, 3219637414u, 3481518986u, 0, COS_TOLERANCE, 0},
+{ 142, 1081433004u, 19455098u, 3229182089u, 2096003654u, 3219678173u, 2534237273u, 0, COS_TOLERANCE, 0},
+{ 143, 1076297936u, 3803689997u, 1071630912u, 2263729518u, 1071580496u, 1399605139u, 0, COS_TOLERANCE, 0},
+{ 144, 1101357261u, 2816837387u, 1063422305u, 2597606398u, 1066778374u, 860886019u, 0, COS_TOLERANCE, 0},
+{ 145, 1069100169u, 3680967506u, 1040201163u, 179224723u, 1072683116u, 2152105890u, 0, COS_TOLERANCE, 0},
+{ 146, 3188629767u, 978126928u, 1101553990u, 4047893399u, 1072693248u, 0u, 0, COS_TOLERANCE, 0},
+{ 147, 3222322045u, 4059818629u, 1042678728u, 3640293589u, 3219138641u, 3149630976u, 0, COS_TOLERANCE, 0},
+{ 148, 3248464040u, 3383497159u, 1070002807u, 1527313008u, 1072628731u, 666198183u, 0, COS_TOLERANCE, 0},
+{ 149, 3202707679u, 2599946514u, 1104170406u, 2738675352u, 1072693247u, 4294496550u, 0, COS_TOLERANCE, 0},
+{ 150, 1105232623u, 3616571377u, 1060859316u, 1130603218u, 3219551476u, 3842454686u, 0, COS_TOLERANCE, 0},
+{ 151, 1076028796u, 3859211180u, 1067940450u, 1744531824u, 3220176319u, 3761295717u, 0, COS_TOLERANCE, 0},
+{ 152, 1042831340u, 1958025850u, 3236511256u, 2472176453u, 1072693248u, 0u, 0, COS_TOLERANCE, 0},
+{ 153, 3233107089u, 182132862u, 3250520938u, 3924356991u, 1070916656u, 1268984698u, 0, COS_TOLERANCE, 0},
+{ 154, 3230501884u, 35632886u, 3209806504u, 1453402523u, 3220161476u, 3827356380u, 0, COS_TOLERANCE, 0},
+{ 155, 1083522102u, 743225214u, 3202890678u, 142917400u, 3218326965u, 3272616966u, 0, COS_TOLERANCE, 0},
+{ 156, 1080684976u, 1472665012u, 3203138231u, 256588219u, 1072648192u, 1641985006u, 0, COS_TOLERANCE, 0},
+{ 157, 1094982162u, 1062927000u, 1061134072u, 931677439u, 3219670357u, 1996358820u, 0, COS_TOLERANCE, 0},
+{ 158, 1058377732u, 2320910576u, 1055663370u, 288059864u, 1072693247u, 4264496700u, 0, COS_TOLERANCE, 0},
+{ 159, 1078958093u, 1448349062u, 3199478070u, 3454027134u, 1072561713u, 3617278346u, 0, COS_TOLERANCE, 0},
+{ 160, 3237458798u, 4215445172u, 3196654963u, 2231888973u, 3219831914u, 2197099287u, 0, COS_TOLERANCE, 0},
+{ 161, 3246632231u, 40413554u, 3232578253u, 983832844u, 3219393991u, 4244268719u, 0, COS_TOLERANCE, 0},
+{ 162, 3223721534u, 3995725873u, 1050082319u, 777231627u, 1068007582u, 3698554498u, 0, COS_TOLERANCE, 0},
+{ 163, 1040986626u, 672789828u, 3253385962u, 2982787335u, 1072693248u, 0u, 0, COS_TOLERANCE, 0},
+{ 164, 1068390875u, 2075971825u, 1070166500u, 4034633931u, 1072689564u, 1480933942u, 0, COS_TOLERANCE, 0},
+{ 165, 3210046177u, 1018222907u, 3244621407u, 3090050495u, 1072693246u, 894071046u, 0, COS_TOLERANCE, 0},
+{ 166, 1067680885u, 937732557u, 3200798890u, 2557898276u, 1072691724u, 2004754951u, 0, COS_TOLERANCE, 0},
+{ 167, 1078342316u, 130346162u, 3223590310u, 275568693u, 1072516434u, 2675973119u, 0, COS_TOLERANCE, 0},
+{ 168, 1042898869u, 3807416441u, 1075961161u, 3706820266u, 1072693248u, 0u, 0, COS_TOLERANCE, 0},
+{ 169, 3216099005u, 1710131411u, 1078123323u, 1900790503u, 1072688194u, 283976070u, 0, COS_TOLERANCE, 0},
+{ 170, 3238819361u, 3420420033u, 3210844787u, 588423066u, 1072644591u, 1123227723u, 0, COS_TOLERANCE, 0},
+{ 171, 1049684114u, 1160162008u, 3246307879u, 4265764460u, 1072693247u, 4294967010u, 0, COS_TOLERANCE, 0},
+{ 172, 1102543434u, 366653268u, 3188814424u, 466059202u, 3219743093u, 986998908u, 0, COS_TOLERANCE, 0},
+{ 173, 3226627739u, 1325936170u, 3221436876u, 680097612u, 3216595555u, 1191345507u, 0, COS_TOLERANCE, 0},
+{ 174, 3240391116u, 1827735934u, 3200554324u, 2875599271u, 1072503248u, 1868121844u, 0, COS_TOLERANCE, 0},
+{ 175, 3191030402u, 3117037091u, 3239246636u, 15838845u, 1072693248u, 0u, 0, COS_TOLERANCE, 0},
+{ 176, 1051974004u, 749718883u, 3223587064u, 1523766569u, 1072693247u, 4294960992u, 0, COS_TOLERANCE, 0},
+{ 177, 1044833651u, 1966536294u, 3250158026u, 699164258u, 1072693247u, 4294967295u, 0, COS_TOLERANCE, 0},
+{ 178, 1098048435u, 3759049394u, 1106085272u, 1183789499u, 1072691618u, 3041709198u, 0, COS_TOLERANCE, 0},
+{ 179, 1081201623u, 1970107747u, 1095245453u, 2308233883u, 3219755792u, 3979452503u, 0, COS_TOLERANCE, 0},
+{ 180, 1084756444u, 1491017852u, 1041444355u, 1723375725u, 3219261752u, 4208808435u, 0, COS_TOLERANCE, 0},
+{ 181, 3216630070u, 1141349287u, 1097465301u, 3403438584u, 1072682540u, 4092757052u, 0, COS_TOLERANCE, 0},
+{ 182, 3230571908u, 1711085243u, 3250239076u, 1377484108u, 1072449179u, 928800032u, 0, COS_TOLERANCE, 0},
+{ 183, 1098385019u, 2880275004u, 1084039594u, 1611394950u, 3219752042u, 46623548u, 0, COS_TOLERANCE, 0},
+{ 184, 3234221435u, 2626629370u, 1063771493u, 1499080813u, 3219651433u, 2521766740u, 0, COS_TOLERANCE, 0},
+{ 185, 1055231263u, 3936262414u, 1103919063u, 3175668759u, 1072693247u, 4294491692u, 0, COS_TOLERANCE, 0},
+{ 186, 3207981719u, 1270950554u, 3194616071u, 3680565379u, 1072693247u, 3791307599u, 0, COS_TOLERANCE, 0},
+{ 187, 3208148223u, 1066985223u, 3221613219u, 4089383168u, 1072693247u, 3667765955u, 0, COS_TOLERANCE, 0},
+{ 188, 3217058839u, 4017329311u, 3208334452u, 1667591498u, 1072676011u, 2167587667u, 0, COS_TOLERANCE, 0},
+{ 189, 1088164157u, 3154656624u, 1061894279u, 3886344038u, 3216679210u, 1818609093u, 0, COS_TOLERANCE, 0},
+{ 190, 1050652945u, 977586119u, 3209762784u, 953839852u, 1072693247u, 4294966292u, 0, COS_TOLERANCE, 0},
+{ 191, 1104965247u, 143071571u, 3206165386u, 913097445u, 3209527911u, 318935467u, 0, COS_TOLERANCE, 0},
+{ 192, 3190565456u, 1371169579u, 1057079837u, 2594818628u, 1072693248u, 0u, 0, COS_TOLERANCE, 0},
+{ 193, 3251793336u, 2259342224u, 3217432469u, 1824221478u, 1070395363u, 3856479702u, 0, COS_TOLERANCE, 0},
+{ 194, 3246834775u, 1576604497u, 1079368611u, 185078728u, 3219883428u, 4029972147u, 0, COS_TOLERANCE, 0},
+{ 195, 3221679427u, 444800035u, 3243343143u, 1734989302u, 3220097672u, 3511674499u, 0, COS_TOLERANCE, 0},
+{ 196, 1072748883u, 130452005u, 1041548088u, 2158433515u, 1071623349u, 3706410280u, 0, COS_TOLERANCE, 0},
+{ 197, 3234695968u, 1941318385u, 1045807374u, 792193370u, 3219904781u, 703541186u, 0, COS_TOLERANCE, 0},
+{ 198, 3238299666u, 1299392207u, 3212131720u, 3205732280u, 1072599785u, 3720054216u, 0, COS_TOLERANCE, 0},
+{ 199, 1098698804u, 3035093505u, 1052187689u, 3287702190u, 3219456887u, 3838760304u, 0, COS_TOLERANCE, 0},
+{ 200, 3246676260u, 2160225215u, 1102624859u, 836655570u, 1072687744u, 3313356440u, 0, COS_TOLERANCE, 0},
+{ 201, 1096723626u, 3360816360u, 3246176356u, 172860634u, 1069279907u, 1519263517u, 0, COS_TOLERANCE, 0},
+{ 202, 1070995788u, 146831910u, 1051558014u, 2340722078u, 1072569465u, 2825939377u, 0, COS_TOLERANCE, 0},
+{ 203, 3230416351u, 1603798153u, 3207725532u, 1099413093u, 1071649358u, 2402319227u, 0, COS_TOLERANCE, 0},
+{ 204, 3246678378u, 2429340443u, 3190303581u, 3223770005u, 1070273707u, 639884644u, 0, COS_TOLERANCE, 0},
+{ 205, 1075882959u, 955542166u, 3230415151u, 275583938u, 3218973899u, 3343006637u, 0, COS_TOLERANCE, 0},
+{ 206, 1092971882u, 513397822u, 1090646554u, 2089321329u, 1072578768u, 4105682742u, 0, COS_TOLERANCE, 0},
+{ 207, 3193169876u, 2782073372u, 1046063872u, 4023829068u, 1072693247u, 4294967294u, 0, COS_TOLERANCE, 0},
+{ 208, 1098564822u, 3242223094u, 3194111199u, 4264674108u, 3219756194u, 114364412u, 0, COS_TOLERANCE, 0},
+{ 209, 3238510821u, 3506346169u, 1047020885u, 1742757458u, 1068041315u, 3314006670u, 0, COS_TOLERANCE, 0},
+{ 210, 3192664477u, 1265459564u, 3193450280u, 3650514880u, 1072693247u, 4294967295u, 0, COS_TOLERANCE, 0},
+{ 211, 1081755890u, 1525260440u, 3235452527u, 2612331392u, 1072515870u, 1309324223u, 0, COS_TOLERANCE, 0},
+{ 212, 3248668920u, 1263613754u, 3219096387u, 635677201u, 1064607335u, 757792299u, 0, COS_TOLERANCE, 0},
+{ 213, 3206272087u, 4140947288u, 3200792376u, 2013265346u, 1072693247u, 4244211024u, 0, COS_TOLERANCE, 0},
+{ 214, 3249974392u, 1912759945u, 3237045253u, 1351396825u, 3219078023u, 281517845u, 0, COS_TOLERANCE, 0},
+{ 215, 3248205162u, 1001433078u, 3206926643u, 2741676659u, 3216471237u, 123092552u, 0, COS_TOLERANCE, 0},
+{ 216, 1080923606u, 1088945233u, 1085095743u, 3986114865u, 3219070825u, 662210141u, 0, COS_TOLERANCE, 0},
+{ 217, 3215734057u, 831239754u, 1099828675u, 3071308141u, 1072690066u, 501010715u, 0, COS_TOLERANCE, 0},
+{ 218, 3225834497u, 3473592372u, 1102759382u, 1309576357u, 1072234656u, 1267394401u, 0, COS_TOLERANCE, 0},
+{ 219, 3251186706u, 2042340367u, 1091945628u, 2062772374u, 3218286427u, 4165170757u, 0, COS_TOLERANCE, 0},
+{ 220, 3194765687u, 1840632537u, 1096533424u, 807510337u, 1072693247u, 4294967284u, 0, COS_TOLERANCE, 0},
+{ 221, 3231451722u, 144814872u, 3212698915u, 2282965697u, 3219652387u, 1204999511u, 0, COS_TOLERANCE, 0},
+{ 222, 1071236430u, 2552499583u, 3229111426u, 1470130815u, 1072525515u, 1870070019u, 0, COS_TOLERANCE, 0},
+{ 223, 3243093065u, 2858583811u, 1089760910u, 6360994u, 1070394969u, 2858431682u, 0, COS_TOLERANCE, 0},
+{ 224, 3198264929u, 1614537194u, 1075198900u, 4088705365u, 1072693247u, 4294966050u, 0, COS_TOLERANCE, 0},
+{ 225, 3250939070u, 3545570051u, 1065221325u, 1629217700u, 3220046486u, 2008922076u, 0, COS_TOLERANCE, 0},
+{ 226, 1072744324u, 1813392963u, 3235313361u, 3772501596u, 1071639174u, 3586456012u, 0, COS_TOLERANCE, 0},
+{ 227, 3196802686u, 2406734491u, 1042055360u, 89226663u, 1072693247u, 4294967109u, 0, COS_TOLERANCE, 0},
+{ 228, 3195751081u, 1618759139u, 3194723421u, 3888234802u, 1072693247u, 4294967249u, 0, COS_TOLERANCE, 0},
+{ 229, 1055357248u, 3590035633u, 3212424262u, 2892456615u, 1072693247u, 4294403060u, 0, COS_TOLERANCE, 0},
+{ 230, 3189943060u, 2431246964u, 3241512456u, 183850734u, 1072693248u, 0u, 0, COS_TOLERANCE, 0},
+{ 231, 1089501101u, 3088319870u, 3211544311u, 862225364u, 1071959314u, 493775910u, 0, COS_TOLERANCE, 0},
+{ 232, 3235294664u, 3495352775u, 1058576726u, 596957268u, 1072451569u, 551802197u, 0, COS_TOLERANCE, 0},
+{ 233, 1046553348u, 1839214511u, 3205004060u, 1923240983u, 1072693247u, 4294967291u, 0, COS_TOLERANCE, 0},
+{ 234, 1058073864u, 739619702u, 3223356436u, 2689885273u, 1072693247u, 4276192130u, 0, COS_TOLERANCE, 0},
+{ 235, 3200324971u, 2143376228u, 1098306332u, 3760236188u, 1072693247u, 4294948617u, 0, COS_TOLERANCE, 0},
+{ 236, 1074621795u, 671680995u, 1091262633u, 2315535361u, 3219881910u, 233991145u, 0, COS_TOLERANCE, 0},
+{ 237, 3214165989u, 2493598049u, 3194927008u, 1689107592u, 1072692836u, 3009462380u, 0, COS_TOLERANCE, 0},
+{ 238, 3189989959u, 1578976988u, 1066368383u, 2117279163u, 1072693248u, 0u, 0, COS_TOLERANCE, 0},
+{ 239, 3222988111u, 3425290087u, 1098487295u, 1263412017u, 1072492825u, 2465022517u, 0, COS_TOLERANCE, 0},
+{ 240, 3208432764u, 3635396812u, 1070999426u, 3965655689u, 1072693247u, 3425310116u, 0, COS_TOLERANCE, 0},
+{ 241, 1060196346u, 2183973116u, 1101098363u, 1118613350u, 1072693247u, 3980688356u, 0, COS_TOLERANCE, 0},
+{ 242, 3221946089u, 199516350u, 1078368488u, 164621458u, 3220120287u, 1310788330u, 0, COS_TOLERANCE, 0},
+{ 243, 3187706018u, 3570940805u, 3230316437u, 3596080877u, 1072693248u, 0u, 0, COS_TOLERANCE, 0},
+{ 244, 3208209565u, 980880313u, 1079833442u, 884465057u, 1072693247u, 3618839550u, 0, COS_TOLERANCE, 0},
+{ 245, 1099977124u, 2558179220u, 1052873711u, 1233598120u, 1071831726u, 2415570643u, 0, COS_TOLERANCE, 0},
+{ 246, 1047115221u, 1909994277u, 1085015978u, 2991527452u, 1072693247u, 4294967286u, 0, COS_TOLERANCE, 0},
+{ 247, 1060855260u, 1680290941u, 1074309900u, 2943870846u, 1072693247u, 3509653915u, 0, COS_TOLERANCE, 0},
+{ 248, 1059496132u, 1451927357u, 3228615456u, 1502585517u, 1072693247u, 4160742701u, 0, COS_TOLERANCE, 0},
+{ 249, 3236211951u, 751136990u, 3230392165u, 3493275472u, 1071493159u, 3153711522u, 0, COS_TOLERANCE, 0},
+{ 250, 1098365967u, 1209623292u, 3238056647u, 979495322u, 1072345567u, 1983815099u, 0, COS_TOLERANCE, 0},
+{ 251, 3250424296u, 1717672108u, 1048120593u, 531240316u, 3220132606u, 3517673695u, 0, COS_TOLERANCE, 0},
+{ 252, 1054174923u, 3548721654u, 1086112947u, 3391817224u, 1072693247u, 4294849699u, 0, COS_TOLERANCE, 0},
+{ 253, 1077836851u, 2758195125u, 1100880260u, 2028440924u, 1071848560u, 3295006250u, 0, COS_TOLERANCE, 0},
+{ 254, 1084223893u, 2750123373u, 3232200256u, 1086294931u, 3219569628u, 148313502u, 0, COS_TOLERANCE, 0},
+{ 255, 1043958672u, 2986160931u, 1076097908u, 2540046258u, 1072693248u, 0u, 0, COS_TOLERANCE, 0},
+{ 256, 3235476602u, 451471221u, 1064816262u, 4187644495u, 3220163367u, 3738180901u, 0, COS_TOLERANCE, 0},
+{ 257, 1099460228u, 2439500162u, 1065280276u, 1979490284u, 3220023311u, 1024828250u, 0, COS_TOLERANCE, 0},
+{ 258, 1040415832u, 2283342035u, 1078398157u, 1345997553u, 1072693248u, 0u, 0, COS_TOLERANCE, 0},
+{ 259, 3213249348u, 179066662u, 1103272172u, 1217337578u, 1072693123u, 3202070629u, 0, COS_TOLERANCE, 0},
+{ 260, 3211562377u, 3779303391u, 3210023352u, 3115946280u, 1072693235u, 1122971280u, 0, COS_TOLERANCE, 0},
+{ 261, 3192989874u, 286247089u, 1085153597u, 713645369u, 1072693247u, 4294967295u, 0, COS_TOLERANCE, 0},
+{ 262, 1093670500u, 1468283899u, 1042831668u, 2022736418u, 3219645414u, 292214014u, 0, COS_TOLERANCE, 0},
+{ 263, 1083139105u, 3305564080u, 1065483445u, 482392433u, 1072067451u, 2731650049u, 0, COS_TOLERANCE, 0},
+{ 264, 3201695807u, 2256346551u, 3222430705u, 2071674991u, 1072693247u, 4294843381u, 0, COS_TOLERANCE, 0},
+{ 265, 3204024695u, 2295269094u, 1084451053u, 2773103941u, 1072693247u, 4292296141u, 0, COS_TOLERANCE, 0},
+{ 266, 1078173946u, 1482721827u, 1092243422u, 3125409590u, 1065951213u, 4253023021u, 0, COS_TOLERANCE, 0},
+{ 267, 3221065973u, 1381740563u, 1071545057u, 2918235653u, 3218178568u, 1182312665u, 0, COS_TOLERANCE, 0},
+{ 268, 3238715972u, 1105857967u, 3241990046u, 2703723225u, 1072322220u, 1636652464u, 0, COS_TOLERANCE, 0},
+{ 269, 1043015571u, 174689677u, 1079333374u, 3947057014u, 1072693248u, 0u, 0, COS_TOLERANCE, 0},
+{ 270, 1090461859u, 2023082423u, 3242081486u, 1169047927u, 1072659623u, 24608123u, 0, COS_TOLERANCE, 0},
+{ 271, 1064525899u, 3742487766u, 1043425732u, 194972788u, 1072693224u, 2299206777u, 0, COS_TOLERANCE, 0},
+{ 272, 3213791827u, 2136071361u, 3211529757u, 993675115u, 1072693014u, 1498352825u, 0, COS_TOLERANCE, 0},
+{ 273, 3213663381u, 210772141u, 3241441539u, 580731413u, 1072693043u, 1489106434u, 0, COS_TOLERANCE, 0},
+{ 274, 1093840413u, 1751560711u, 1074522705u, 180987057u, 1072199249u, 2159086108u, 0, COS_TOLERANCE, 0},
+{ 275, 1066754591u, 2552236599u, 1088658621u, 2112468655u, 1072692790u, 3312828073u, 0, COS_TOLERANCE, 0},
+{ 276, 3189290617u, 1578223762u, 3224596567u, 2456166162u, 1072693248u, 0u, 0, COS_TOLERANCE, 0},
+{ 277, 1058506965u, 2110924310u, 1086207177u, 3161208323u, 1072693247u, 4258668672u, 0, COS_TOLERANCE, 0},
+{ 278, 3231863394u, 2352173188u, 1079361728u, 4070222179u, 1064984779u, 600856666u, 0, COS_TOLERANCE, 0},
+{ 279, 1101012904u, 2481562701u, 1090937016u, 3809489716u, 1072641608u, 727711588u, 0, COS_TOLERANCE, 0},
+{ 280, 3197002651u, 330905705u, 1086260896u, 90264431u, 1072693247u, 4294967065u, 0, COS_TOLERANCE, 0},
+{ 281, 1040729961u, 4162008079u, 3194387916u, 759522153u, 1072693248u, 0u, 0, COS_TOLERANCE, 0},
+{ 282, 1081015037u, 1839697482u, 3216442625u, 2211508949u, 3220055171u, 952539875u, 0, COS_TOLERANCE, 0},
+{ 283, 3249807211u, 3736863454u, 1063475914u, 3150741666u, 1072328816u, 3934941618u, 0, COS_TOLERANCE, 0},
+{ 284, 1060785883u, 4200269406u, 3236646101u, 1061812176u, 1072693247u, 3569234031u, 0, COS_TOLERANCE, 0},
+{ 285, 1080217979u, 106027290u, 3234978297u, 2245237549u, 1072627959u, 1497207890u, 0, COS_TOLERANCE, 0},
+{ 286, 3246984334u, 2132131375u, 3250483427u, 3449276437u, 1072669917u, 2457870217u, 0, COS_TOLERANCE, 0},
+{ 287, 1089388778u, 2334440944u, 1105423490u, 4004336184u, 1072226828u, 3655844754u, 0, COS_TOLERANCE, 0},
+{ 288, 3218772704u, 4090088208u, 1042030013u, 3898658299u, 1072515052u, 1642000346u, 0, COS_TOLERANCE, 0},
+{ 289, 3207908064u, 2272831437u, 3253082595u, 2639188641u, 1072693247u, 3841638975u, 0, COS_TOLERANCE, 0},
+{ 290, 1054766684u, 1856594168u, 3189515294u, 4101853676u, 1072693247u, 4294729740u, 0, COS_TOLERANCE, 0},
+{ 291, 1076012412u, 2211699255u, 3195060344u, 3865018604u, 3220166089u, 1388690552u, 0, COS_TOLERANCE, 0},
+{ 292, 3242767010u, 996259334u, 3241496889u, 3782673116u, 3220090835u, 3150301332u, 0, COS_TOLERANCE, 0},
+{ 293, 1099130747u, 3840380763u, 1048674041u, 550040067u, 1071869811u, 2331064655u, 0, COS_TOLERANCE, 0},
+{ 294, 3251419593u, 95874100u, 3237232828u, 2645647822u, 1070705466u, 1321517167u, 0, COS_TOLERANCE, 0},
+{ 295, 1043665640u, 3441419500u, 3252367038u, 876710419u, 1072693248u, 0u, 0, COS_TOLERANCE, 0},
+{ 296, 3238593552u, 2560836004u, 3199616543u, 1180840586u, 3219473031u, 3806360310u, 0, COS_TOLERANCE, 0},
+{ 297, 3221602966u, 2218230392u, 3227485787u, 3947214579u, 3219993277u, 2784902361u, 0, COS_TOLERANCE, 0},
+{ 298, 1079539654u, 1447312532u, 1081476588u, 780366847u, 3219937861u, 1517430120u, 0, COS_TOLERANCE, 0},
+{ 299, 1072569643u, 2842113832u, 3216156731u, 225159029u, 1071831173u, 3436385363u, 0, COS_TOLERANCE, 0},
+{ 300, 1098117193u, 1601981129u, 3234628869u, 2236538344u, 3220121730u, 2605810833u, 0, COS_TOLERANCE, 0},
+{ 301, 1085173524u, 2194185737u, 3242362684u, 87913366u, 1072691976u, 256415598u, 0, COS_TOLERANCE, 0},
+{ 302, 3199083880u, 1346862963u, 1077836259u, 3604666660u, 1072693247u, 4294963661u, 0, COS_TOLERANCE, 0},
+{ 303, 3212255979u, 3115209742u, 1099332326u, 1325101950u, 1072693214u, 2337531688u, 0, COS_TOLERANCE, 0},
+{ 304, 3224546042u, 3889223100u, 1053247613u, 3371396923u, 1072658737u, 3503272081u, 0, COS_TOLERANCE, 0},
+{ 305, 3220477868u, 4163120793u, 1075022670u, 1387631215u, 1070721812u, 2081699423u, 0, COS_TOLERANCE, 0},
+{ 306, 3205481779u, 1532426189u, 1063168268u, 3397022615u, 1072693247u, 4278430058u, 0, COS_TOLERANCE, 0},
+{ 307, 3201033321u, 89324166u, 1079206060u, 3429424710u, 1072693247u, 4294917506u, 0, COS_TOLERANCE, 0},
+{ 308, 3192325102u, 747591401u, 1072238381u, 2803213904u, 1072693247u, 4294967295u, 0, COS_TOLERANCE, 0},
+{ 309, 1091113780u, 271904221u, 1044258318u, 1858545114u, 3216584532u, 2619540521u, 0, COS_TOLERANCE, 0},
+{ 310, 3228068914u, 314958082u, 3249912496u, 2966213175u, 1072324141u, 1738955103u, 0, COS_TOLERANCE, 0},
+{ 311, 3197179414u, 3119528953u, 3217179014u, 2908718240u, 1072693247u, 4294967004u, 0, COS_TOLERANCE, 0},
+{ 312, 3242467576u, 2018361566u, 1100926600u, 3985805054u, 1071310530u, 1465528159u, 0, COS_TOLERANCE, 0},
+{ 313, 1070132580u, 409584884u, 3239758947u, 755795129u, 1072653605u, 3434577925u, 0, COS_TOLERANCE, 0},
+{ 314, 1075772446u, 1819156379u, 3251342302u, 2982669005u, 1069254981u, 541526918u, 0, COS_TOLERANCE, 0},
+{ 315, 1101563433u, 2080534280u, 3188254060u, 449171797u, 1067588739u, 1933402886u, 0, COS_TOLERANCE, 0},
+{ 316, 1095956900u, 168744837u, 3214950009u, 1322217822u, 3219443322u, 2005695949u, 0, COS_TOLERANCE, 0},
+{ 317, 3254226900u, 3250487255u, 1062120700u, 1876195180u, 1071200278u, 2307560753u, 0, COS_TOLERANCE, 0},
+{ 318, 3226343480u, 1336400247u, 1098057903u, 3314079581u, 3219921214u, 2661345031u, 0, COS_TOLERANCE, 0},
+{ 319, 3203678820u, 265025555u, 1063854282u, 3779482256u, 1072693247u, 4293286130u, 0, COS_TOLERANCE, 0},
+{ 320, 1067300501u, 887044257u, 1054789618u, 2732056261u, 1072692365u, 802497887u, 0, COS_TOLERANCE, 0},
+{ 321, 1050106742u, 4027115185u, 3191764868u, 2940199511u, 1072693247u, 4294966750u, 0, COS_TOLERANCE, 0},
+{ 322, 3202500155u, 2875684421u, 3227459837u, 2251967570u, 1072693247u, 4294625329u, 0, COS_TOLERANCE, 0},
+{ 323, 1063244412u, 284173546u, 3238823679u, 3557800647u, 1072693244u, 190380283u, 0, COS_TOLERANCE, 0},
+{ 324, 1101458560u, 3147771266u, 3220110464u, 2933364246u, 3219734106u, 2044690356u, 0, COS_TOLERANCE, 0},
+{ 325, 1064853160u, 3366183281u, 3234870843u, 537442654u, 1072693210u, 3789343972u, 0, COS_TOLERANCE, 0},
+{ 326, 3244118788u, 2529029548u, 3249882819u, 3781513577u, 3218152634u, 3189802031u, 0, COS_TOLERANCE, 0},
+{ 327, 3213436354u, 1080845539u, 3206760016u, 911778687u, 1072693089u, 3877739302u, 0, COS_TOLERANCE, 0},
+{ 328, 3191951036u, 469586759u, 1091830022u, 3080528840u, 1072693248u, 0u, 0, COS_TOLERANCE, 0},
+{ 329, 1080249104u, 2863108169u, 3225605506u, 2508274250u, 3220004966u, 1582349409u, 0, COS_TOLERANCE, 0},
+{ 330, 3210826984u, 4080017377u, 3206492941u, 1470284690u, 1072693243u, 1316205920u, 0, COS_TOLERANCE, 0},
+{ 331, 3207120390u, 3867917386u, 1102054928u, 3504746045u, 1072693247u, 4134082073u, 0, COS_TOLERANCE, 0},
+{ 332, 1064522279u, 2962134101u, 3244741577u, 3390537350u, 1072693224u, 2873015107u, 0, COS_TOLERANCE, 0},
+{ 333, 1088201813u, 1702237980u, 1071598971u, 1102587474u, 1072356356u, 900001206u, 0, COS_TOLERANCE, 0},
+{ 334, 3202970118u, 2180218657u, 3211592260u, 1206527853u, 1072693247u, 4294304288u, 0, COS_TOLERANCE, 0},
+{ 335, 3197084744u, 394130786u, 3242511482u, 2437699868u, 1072693247u, 4294967046u, 0, COS_TOLERANCE, 0},
+{ 336, 1044237059u, 849581558u, 3252006507u, 2008614943u, 1072693248u, 0u, 0, COS_TOLERANCE, 0},
+{ 337, 3210140014u, 3128971673u, 3249137531u, 2773583059u, 1072693245u, 4125642902u, 0, COS_TOLERANCE, 0},
+{ 338, 1085029866u, 590727700u, 3248651761u, 2183878539u, 3219184738u, 2192070315u, 0, COS_TOLERANCE, 0},
+{ 339, 1101098629u, 820687580u, 3208143496u, 1402434664u, 3220058761u, 1210702081u, 0, COS_TOLERANCE, 0},
+{ 340, 3252290835u, 1873709254u, 3245167989u, 44275991u, 3219673004u, 1212928558u, 0, COS_TOLERANCE, 0},
+{ 341, 3189668753u, 1174874204u, 3208263730u, 2360372288u, 1072693248u, 0u, 0, COS_TOLERANCE, 0},
+{ 342, 1103854676u, 937573440u, 3208953761u, 211240241u, 1072050384u, 2201399798u, 0, COS_TOLERANCE, 0},
+{ 343, 3243548934u, 2469774991u, 1043117070u, 3380071805u, 3219556824u, 3682801548u, 0, COS_TOLERANCE, 0},
+{ 344, 1058121042u, 442507560u, 3254252803u, 3257889649u, 1072693247u, 4274561110u, 0, COS_TOLERANCE, 0},
+{ 345, 1068850520u, 1854921625u, 1049810168u, 2729627545u, 1072685949u, 338147145u, 0, COS_TOLERANCE, 0},
+{ 346, 3254712629u, 4001809575u, 3240128649u, 278261523u, 1072401494u, 1009857194u, 0, COS_TOLERANCE, 0},
+{ 347, 1087224694u, 1793907966u, 3238955714u, 398859249u, 1070938098u, 1550865209u, 0, COS_TOLERANCE, 0},
+{ 348, 3200952547u, 2511916952u, 3219195283u, 1697158299u, 1072693247u, 4294921809u, 0, COS_TOLERANCE, 0},
+{ 349, 1069985548u, 3230931724u, 3243897690u, 3508781585u, 1072660402u, 2682188932u, 0, COS_TOLERANCE, 0},
+{ 350, 1103847606u, 1674254897u, 1046547577u, 217148561u, 3219915117u, 1778043083u, 0, COS_TOLERANCE, 0},
+{ 351, 3211263954u, 3275604304u, 3194840159u, 2991205850u, 1072693239u, 2251119u, 0, COS_TOLERANCE, 0},
+{ 352, 3195249375u, 3509997278u, 3248888030u, 3897986511u, 1072693247u, 4294967272u, 0, COS_TOLERANCE, 0},
+{ 353, 1047182435u, 2156824613u, 1042295665u, 1239257646u, 1072693247u, 4294967285u, 0, COS_TOLERANCE, 0},
+{ 354, 3213264085u, 1073153314u, 3250031627u, 2567234990u, 1072693121u, 971951768u, 0, COS_TOLERANCE, 0},
+{ 355, 3190593412u, 4261696995u, 3197784432u, 323702024u, 1072693248u, 0u, 0, COS_TOLERANCE, 0},
+{ 356, 3243690997u, 4075177615u, 3202791065u, 1919006082u, 3217187639u, 1965923119u, 0, COS_TOLERANCE, 0},
+{ 357, 3239270013u, 386429966u, 1086504491u, 3698826164u, 3216317943u, 1107594577u, 0, COS_TOLERANCE, 0},
+{ 358, 1078327190u, 1681986446u, 3194985869u, 3072950140u, 1072690830u, 2257146468u, 0, COS_TOLERANCE, 0},
+{ 359, 3217311933u, 3719038997u, 1055433962u, 3331415058u, 1072666970u, 2047828524u, 0, COS_TOLERANCE, 0},
+{ 360, 1060749713u, 2420250111u, 3238002206u, 1928661079u, 1072693247u, 3599364953u, 0, COS_TOLERANCE, 0},
+{ 361, 1081914210u, 3679866727u, 3227386672u, 1273835792u, 1072395803u, 157372037u, 0, COS_TOLERANCE, 0},
+{ 362, 1041622738u, 2682092368u, 3234222284u, 1325425811u, 1072693248u, 0u, 0, COS_TOLERANCE, 0},
+{ 363, 1056312613u, 4175172697u, 3208346191u, 2130706153u, 1072693247u, 4292975565u, 0, COS_TOLERANCE, 0},
+{ 364, 1092089624u, 1200784450u, 1083605096u, 1248595607u, 3220015189u, 549505287u, 0, COS_TOLERANCE, 0},
+{ 365, 3213890863u, 1897285171u, 3251296075u, 944966123u, 1072692989u, 1504542300u, 0, COS_TOLERANCE, 0},
+{ 366, 3241371250u, 2270747330u, 3230692631u, 422503284u, 3217051824u, 2300101304u, 0, COS_TOLERANCE, 0},
+{ 367, 1084120037u, 2857564741u, 1075647403u, 3308906709u, 1069138209u, 4033062893u, 0, COS_TOLERANCE, 0},
+{ 368, 3203475098u, 1380066948u, 3232612906u, 2613634294u, 1072693247u, 4293762459u, 0, COS_TOLERANCE, 0},
+{ 369, 1063890856u, 4022784584u, 1060483857u, 3264056381u, 1072693237u, 2967630019u, 0, COS_TOLERANCE, 0},
+{ 370, 1044637404u, 1778509100u, 3213146285u, 2665833973u, 1072693248u, 0u, 0, COS_TOLERANCE, 0},
+{ 371, 3216727300u, 1859175955u, 1079949560u, 4258450607u, 1072681279u, 1528669149u, 0, COS_TOLERANCE, 0},
+{ 372, 1048277388u, 4128020197u, 1076266146u, 4122840980u, 1072693247u, 4294967249u, 0, COS_TOLERANCE, 0},
+{ 373, 3193183163u, 2454653987u, 3229487005u, 2977478685u, 1072693247u, 4294967294u, 0, COS_TOLERANCE, 0},
+{ 374, 3253556483u, 1355181872u, 1095308770u, 436846481u, 1072638418u, 837638418u, 0, COS_TOLERANCE, 0},
+{ 375, 3246605302u, 2592856453u, 3247825559u, 3195234082u, 3219761412u, 4175373806u, 0, COS_TOLERANCE, 0},
+{ 376, 3222118023u, 3554670043u, 1091621009u, 3321236467u, 3219855658u, 1849229220u, 0, COS_TOLERANCE, 0},
+{ 377, 1069012833u, 1936670355u, 1095715713u, 2958468553u, 1072684160u, 113994776u, 0, COS_TOLERANCE, 0},
+{ 378, 3192291109u, 2960339502u, 1098808013u, 1044068983u, 1072693248u, 0u, 0, COS_TOLERANCE, 0},
+{ 379, 3196691185u, 4093388677u, 1095478112u, 1735930261u, 1072693247u, 4294967132u, 0, COS_TOLERANCE, 0},
+{ 380, 1091040302u, 1807398746u, 3195743135u, 4261616162u, 1072560488u, 2443022461u, 0, COS_TOLERANCE, 0},
+{ 381, 3209294194u, 3250576797u, 1059002384u, 3043079652u, 1072693247u, 1472001997u, 0, COS_TOLERANCE, 0},
+{ 382, 1069207109u, 666051428u, 3208765404u, 1912684117u, 1072681761u, 3157012499u, 0, COS_TOLERANCE, 0},
+{ 383, 1103487420u, 1949030179u, 1096388934u, 896459246u, 1072112440u, 3662318513u, 0, COS_TOLERANCE, 0},
+{ 384, 1054300653u, 622499767u, 1066707637u, 1490260486u, 1072693247u, 4294827704u, 0, COS_TOLERANCE, 0},
+{ 385, 1106688493u, 1490616165u, 3251242436u, 795675736u, 1072531194u, 3696734274u, 0, COS_TOLERANCE, 0},
+{ 386, 1080943896u, 3662877092u, 3234317146u, 3200513112u, 1072529133u, 2265466345u, 0, COS_TOLERANCE, 0},
+{ 387, 1084088786u, 1356101968u, 3236536816u, 3062844611u, 3219578668u, 4220416571u, 0, COS_TOLERANCE, 0},
+{ 388, 3219922640u, 2284484846u, 3219498359u, 3240896015u, 1071934299u, 2387177578u, 0, COS_TOLERANCE, 0},
+{ 389, 3235759689u, 494503287u, 1092811254u, 142673998u, 3220176682u, 887984525u, 0, COS_TOLERANCE, 0},
+{ 390, 3252125916u, 3394882641u, 3225306538u, 364852125u, 1072048934u, 72512142u, 0, COS_TOLERANCE, 0},
+{ 391, 3225261763u, 193885269u, 1088149839u, 1359805831u, 3218094098u, 3213564391u, 0, COS_TOLERANCE, 0},
+{ 392, 3200484782u, 592580907u, 3199560872u, 3086438952u, 1072693247u, 4294942905u, 0, COS_TOLERANCE, 0},
+{ 393, 1059518664u, 1778008540u, 1049064687u, 73581647u, 1072693247u, 4156632868u, 0, COS_TOLERANCE, 0},
+{ 394, 3246733598u, 233240285u, 1081923320u, 2710903921u, 1068775539u, 2733461858u, 0, COS_TOLERANCE, 0},
+{ 395, 1069513767u, 3719878805u, 1079866720u, 3615458228u, 1072677407u, 497768842u, 0, COS_TOLERANCE, 0},
+{ 396, 3221194724u, 3647632375u, 3247225271u, 3839959621u, 3218664046u, 3484392941u, 0, COS_TOLERANCE, 0},
+{ 397, 1103401096u, 2232210456u, 3235434773u, 224271737u, 1072307444u, 2600424197u, 0, COS_TOLERANCE, 0},
+{ 398, 3193003684u, 2134662911u, 3190390590u, 4239009051u, 1072693247u, 4294967295u, 0, COS_TOLERANCE, 0},
+{ 399, 1080526145u, 2305279897u, 1077668039u, 1854523320u, 1072579199u, 1091515037u, 0, COS_TOLERANCE, 0},
+{ 400, 3219864259u, 538224650u, 3206153057u, 1379649610u, 1071978725u, 4132122137u, 0, COS_TOLERANCE, 0},
+{ 401, 3196410507u, 3683897920u, 3244167599u, 3647579469u, 1072693247u, 4294967182u, 0, COS_TOLERANCE, 0},
+{ 402, 1090280933u, 2694093608u, 1042775347u, 598406111u, 3216912593u, 4112924109u, 0, COS_TOLERANCE, 0},
+{ 403, 3211635392u, 872706833u, 1084802480u, 2200602798u, 1072693234u, 1065041327u, 0, COS_TOLERANCE, 0},
+{ 404, 1042339597u, 904146293u, 1060867322u, 1729685598u, 1072693248u, 0u, 0, COS_TOLERANCE, 0},
+{ 405, 3195694970u, 1894173462u, 3232800651u, 191960416u, 1072693247u, 4294967252u, 0, COS_TOLERANCE, 0},
+{ 406, 1091225343u, 3521028551u, 1054522089u, 3287274359u, 1069825174u, 3031550075u, 0, COS_TOLERANCE, 0},
+{ 407, 1095386964u, 959640601u, 3201578263u, 4136915018u, 1072408754u, 1688369384u, 0, COS_TOLERANCE, 0},
+{ 408, 1064005451u, 1553716379u, 1106027987u, 984725765u, 1072693236u, 1029150851u, 0, COS_TOLERANCE, 0},
+{ 409, 3238832641u, 2287646644u, 3240329321u, 2276183378u, 1071746292u, 820755399u, 0, COS_TOLERANCE, 0},
+{ 410, 1068209174u, 3940225170u, 3199544434u, 997572161u, 1072690206u, 1917386837u, 0, COS_TOLERANCE, 0},
+{ 411, 3212768361u, 36116288u, 3206886566u, 4196602670u, 1072693188u, 485711984u, 0, COS_TOLERANCE, 0},
+{ 412, 3241695853u, 3550227562u, 3207257983u, 2747744117u, 3220172545u, 2187450492u, 0, COS_TOLERANCE, 0},
+{ 413, 1104236126u, 507130047u, 1048359321u, 3229888373u, 1069360590u, 620968612u, 0, COS_TOLERANCE, 0},
+{ 414, 3222996778u, 2210969014u, 1081031001u, 1946786091u, 1072462215u, 1450093973u, 0, COS_TOLERANCE, 0},
+{ 415, 3236306990u, 4059150589u, 3189759234u, 1177045799u, 1071955752u, 2076739579u, 0, COS_TOLERANCE, 0},
+{ 416, 1093103612u, 2664812822u, 1050343198u, 2034180320u, 3217171938u, 1684460428u, 0, COS_TOLERANCE, 0},
+{ 417, 3213779117u, 1175750283u, 3235559706u, 1424491340u, 1072693017u, 1305312596u, 0, COS_TOLERANCE, 0},
+{ 418, 3213904193u, 1630036121u, 3231972785u, 3195479448u, 1072692982u, 3293309497u, 0, COS_TOLERANCE, 0},
+{ 419, 1090429875u, 2527029044u, 1046927050u, 4000723255u, 1071378480u, 3977336311u, 0, COS_TOLERANCE, 0},
+{ 420, 1085208677u, 3335703647u, 3237349676u, 3869440059u, 1072445349u, 2286761790u, 0, COS_TOLERANCE, 0},
+{ 421, 1091433848u, 3888398377u, 3196041693u, 1290567220u, 3218367554u, 1055589159u, 0, COS_TOLERANCE, 0},
+{ 422, 1066679070u, 3242451480u, 3248384948u, 707431021u, 1072692838u, 3102939233u, 0, COS_TOLERANCE, 0},
+{ 423, 1083230509u, 2739665123u, 1060777905u, 1733073225u, 1072675519u, 2422104283u, 0, COS_TOLERANCE, 0},
+{ 424, 1078517061u, 1297274853u, 3208848704u, 3341639139u, 1072398277u, 765339862u, 0, COS_TOLERANCE, 0},
+{ 425, 1046570941u, 2228057309u, 1084318902u, 1317851136u, 1072693247u, 4294967291u, 0, COS_TOLERANCE, 0},
+{ 426, 1088255327u, 270039934u, 3241414679u, 3063626339u, 1072685261u, 597425399u, 0, COS_TOLERANCE, 0},
+{ 427, 3219178350u, 83062251u, 3211262173u, 2659016437u, 1072412012u, 4069431777u, 0, COS_TOLERANCE, 0},
+{ 428, 1095743886u, 3833539373u, 3206667189u, 1567476111u, 1072307664u, 1056242430u, 0, COS_TOLERANCE, 0},
+{ 429, 3205195072u, 2382776852u, 3249232579u, 1546622468u, 1072693247u, 4282670870u, 0, COS_TOLERANCE, 0},
+{ 430, 1085536439u, 1714300821u, 1104130938u, 4167591598u, 3217859383u, 2232768404u, 0, COS_TOLERANCE, 0},
+{ 431, 1051092760u, 2798720100u, 1086978789u, 449990704u, 1072693247u, 4294965288u, 0, COS_TOLERANCE, 0},
+{ 432, 3231198415u, 4039516226u, 3244344107u, 4272932619u, 1067452376u, 2155088169u, 0, COS_TOLERANCE, 0},
+{ 433, 3222708441u, 1683007544u, 1091105663u, 3805494321u, 1072295450u, 3246180215u, 0, COS_TOLERANCE, 0},
+{ 434, 3220852948u, 2072627412u, 1094383324u, 3394151662u, 3216173352u, 2322177502u, 0, COS_TOLERANCE, 0},
+{ 435, 3220570024u, 1120106427u, 3223631624u, 3404608264u, 1070131616u, 4106501870u, 0, COS_TOLERANCE, 0},
+{ 436, 1097859997u, 559918757u, 3205077053u, 908100198u, 3218748698u, 3336891511u, 0, COS_TOLERANCE, 0},
+{ 437, 1042677918u, 2026673913u, 3244833635u, 2844573214u, 1072693248u, 0u, 0, COS_TOLERANCE, 0},
+{ 438, 3254567259u, 3946837259u, 3234993796u, 3850406820u, 3220032793u, 4201817022u, 0, COS_TOLERANCE, 0},
+{ 439, 1057479809u, 3139330994u, 1046133568u, 1539650690u, 1072693247u, 4285638832u, 0, COS_TOLERANCE, 0},
+{ 440, 3236705500u, 1554593884u, 3228899878u, 2813752562u, 1072173572u, 377670647u, 0, COS_TOLERANCE, 0},
+{ 441, 1056505004u, 3804703138u, 1072931071u, 2053677923u, 1072693247u, 4292409955u, 0, COS_TOLERANCE, 0},
+{ 442, 3244864299u, 289355864u, 1078453818u, 2143066338u, 3219830878u, 3759477379u, 0, COS_TOLERANCE, 0},
+{ 443, 3203939880u, 2157691971u, 1106629150u, 110806409u, 1072693247u, 4292560021u, 0, COS_TOLERANCE, 0},
+{ 444, 1082157019u, 3570399481u, 1085637605u, 180265334u, 3220059372u, 216871137u, 0, COS_TOLERANCE, 0},
+{ 445, 3200980182u, 558779875u, 3202046748u, 2338464653u, 1072693247u, 4294920358u, 0, COS_TOLERANCE, 0},
+{ 446, 1045705464u, 1703969219u, 3229797258u, 1417521063u, 1072693247u, 4294967294u, 0, COS_TOLERANCE, 0},
+{ 447, 3237782261u, 3917440951u, 1051668894u, 3736066983u, 1071954489u, 2643649072u, 0, COS_TOLERANCE, 0},
+{ 448, 1064752080u, 3106613409u, 1066627453u, 2735392257u, 1072693215u, 1855155537u, 0, COS_TOLERANCE, 0},
+{ 449, 1065665372u, 2229777605u, 1065061963u, 2405869925u, 1072693140u, 962185659u, 0, COS_TOLERANCE, 0},
+{ 450, 3239463229u, 3967957902u, 1057416138u, 3459188071u, 1072154343u, 2087114904u, 0, COS_TOLERANCE, 0},
+{ 451, 1068639210u, 3699016825u, 3249713090u, 796144848u, 1072687985u, 316016598u, 0, COS_TOLERANCE, 0},
+{ 452, 3228816396u, 3285165564u, 3211948811u, 401510871u, 3220174506u, 2051663811u, 0, COS_TOLERANCE, 0},
+{ 453, 1094257658u, 634857910u, 3199607513u, 914218057u, 3220079650u, 816248961u, 0, COS_TOLERANCE, 0},
+{ 454, 1083743336u, 2030735578u, 3233855943u, 965677531u, 3218690320u, 4171285285u, 0, COS_TOLERANCE, 0},
+{ 455, 1079556815u, 3957229084u, 1051050470u, 3123776651u, 3215268432u, 3325789246u, 0, COS_TOLERANCE, 0},
+{ 456, 3221863333u, 162122081u, 3239376395u, 108064594u, 3220170995u, 2986073122u, 0, COS_TOLERANCE, 0},
+{ 457, 3237271786u, 869031839u, 3225020876u, 1344301606u, 3219226445u, 571732783u, 0, COS_TOLERANCE, 0},
+{ 458, 3214433474u, 946696117u, 3231825228u, 1700703647u, 1072692654u, 2166617165u, 0, COS_TOLERANCE, 0},
+{ 459, 1075492875u, 3394168074u, 1076939786u, 1666995668u, 1072530509u, 890276858u, 0, COS_TOLERANCE, 0},
+{ 460, 3208774795u, 2488789804u, 3238508333u, 1506943664u, 1072693247u, 2933330625u, 0, COS_TOLERANCE, 0},
+{ 461, 1072788663u, 3844072288u, 3202592279u, 2630019853u, 1071483620u, 2208326015u, 0, COS_TOLERANCE, 0},
+{ 462, 3219934542u, 1244307192u, 3191297711u, 2540916692u, 1071925114u, 1313080148u, 0, COS_TOLERANCE, 0},
+{ 463, 3200062692u, 2871645739u, 3239081581u, 1440249115u, 1072693247u, 4294953764u, 0, COS_TOLERANCE, 0},
+{ 464, 1068350633u, 1231934926u, 3236746788u, 603977748u, 1072689711u, 3639960946u, 0, COS_TOLERANCE, 0},
+{ 465, 3195449689u, 2386312545u, 1063169277u, 2715234268u, 1072693247u, 4294967264u, 0, COS_TOLERANCE, 0},
+{ 466, 1087803418u, 915867083u, 1046790892u, 3347417612u, 1071309674u, 1156953860u, 0, COS_TOLERANCE, 0},
+{ 467, 1105984188u, 3553288373u, 1065698616u, 2906680663u, 1072261701u, 1351690325u, 0, COS_TOLERANCE, 0},
+{ 468, 1045506226u, 2342364630u, 1051356723u, 4019093203u, 1072693247u, 4294967295u, 0, COS_TOLERANCE, 0},
+{ 469, 3201169162u, 2911548084u, 1105282515u, 2476735795u, 1072693247u, 4294909830u, 0, COS_TOLERANCE, 0},
+{ 470, 1050472772u, 1836216409u, 1101062307u, 2519592554u, 1072693247u, 4294966458u, 0, COS_TOLERANCE, 0},
+{ 471, 1070178161u, 1235369496u, 3222946447u, 668087854u, 1072651370u, 1135449571u, 0, COS_TOLERANCE, 0},
+{ 472, 3208554596u, 2981820811u, 1059838516u, 2845580478u, 1072693247u, 3309410866u, 0, COS_TOLERANCE, 0},
+{ 473, 3193931414u, 1565550570u, 3217165795u, 4162017137u, 1072693247u, 4294967292u, 0, COS_TOLERANCE, 0},
+{ 474, 3237251378u, 2808968027u, 1055630096u, 1782326814u, 3219252387u, 2702488331u, 0, COS_TOLERANCE, 0},
+{ 475, 1053576974u, 1492622658u, 3216653077u, 3972512122u, 1072693247u, 4294916007u, 0, COS_TOLERANCE, 0},
+{ 476, 3222171679u, 2722693603u, 3227814791u, 3169731970u, 3219732412u, 2646352387u, 0, COS_TOLERANCE, 0},
+{ 477, 3217906631u, 899763203u, 3207606001u, 2804747833u, 1072638326u, 1716712908u, 0, COS_TOLERANCE, 0},
+{ 478, 3230670325u, 3789058912u, 3228095081u, 4135937628u, 1071642741u, 1726723037u, 0, COS_TOLERANCE, 0},
+{ 479, 1060199382u, 1682808307u, 3206960335u, 232877759u, 1072693247u, 3979004235u, 0, COS_TOLERANCE, 0},
+{ 480, 3242091486u, 2851963139u, 3246852961u, 2590862592u, 3219860744u, 3972780260u, 0, COS_TOLERANCE, 0},
+{ 481, 1081200406u, 2422232642u, 3234779662u, 290458310u, 3219313360u, 2704073029u, 0, COS_TOLERANCE, 0},
+{ 482, 3210671078u, 1082582386u, 1075605675u, 2602133689u, 1072693244u, 1106099360u, 0, COS_TOLERANCE, 0},
+{ 483, 3239818611u, 1789635787u, 1059414278u, 1048286093u, 3218252122u, 1300245564u, 0, COS_TOLERANCE, 0},
+{ 484, 1098330542u, 231339448u, 1055573265u, 504907415u, 3220173686u, 2481863579u, 0, COS_TOLERANCE, 0},
+{ 485, 1063211461u, 1153251200u, 3204617090u, 1772013857u, 1072693244u, 723005056u, 0, COS_TOLERANCE, 0},
+{ 486, 1099551055u, 1082898276u, 3212089272u, 1449080862u, 1072558217u, 132128436u, 0, COS_TOLERANCE, 0},
+{ 487, 1086008285u, 3177299045u, 1058862813u, 809400815u, 1072543618u, 4039777533u, 0, COS_TOLERANCE, 0},
+{ 488, 3230854550u, 1924429710u, 1056464743u, 3349283177u, 1070838822u, 1592886544u, 0, COS_TOLERANCE, 0},
+{ 489, 3245473391u, 42238036u, 1042379500u, 2113559863u, 1071848551u, 792274594u, 0, COS_TOLERANCE, 0},
+{ 490, 1064761243u, 3304403230u, 3217556703u, 58952646u, 1072693215u, 136408135u, 0, COS_TOLERANCE, 0},
+{ 491, 3212669530u, 1645486982u, 3224301095u, 3636267471u, 1072693193u, 3461766790u, 0, COS_TOLERANCE, 0},
+{ 492, 1062762009u, 619402181u, 3235208235u, 557360557u, 1072693245u, 2846151980u, 0, COS_TOLERANCE, 0},
+{ 493, 3238238394u, 110029735u, 1046937383u, 984375729u, 1072675170u, 1806823293u, 0, COS_TOLERANCE, 0},
+{ 494, 3189496738u, 4063688092u, 3203235744u, 1049950343u, 1072693248u, 0u, 0, COS_TOLERANCE, 0},
+{ 495, 1062350619u, 650996069u, 1054971928u, 3953359826u, 1072693246u, 3042411977u, 0, COS_TOLERANCE, 0},
+{ 496, 3227055805u, 66926332u, 1090561839u, 1379780888u, 1072232467u, 3551215499u, 0, COS_TOLERANCE, 0},
+{ 497, 3233453307u, 2803378256u, 1086057989u, 498534626u, 1072603670u, 2257983600u, 0, COS_TOLERANCE, 0},
+{ 498, 1082618553u, 2846400785u, 1047142525u, 1375153550u, 3219920179u, 2183157773u, 0, COS_TOLERANCE, 0},
+{ 499, 1044581201u, 2869128958u, 1070972315u, 4246440273u, 1072693248u, 0u, 0, COS_TOLERANCE, 0},
+{ 500, 1051832506u, 3112381207u, 1044430965u, 3981604561u, 1072693247u, 4294962289u, 0, COS_TOLERANCE, 0},
+{ 501, 3231254997u, 243303420u, 1093735824u, 1575581926u, 1072630208u, 3590549604u, 0, COS_TOLERANCE, 0},
+{ 502, 3239137997u, 3218865041u, 3204803496u, 3840388050u, 3220112180u, 785845582u, 0, COS_TOLERANCE, 0},
+{ 503, 1048415431u, 336846959u, 1052664471u, 3798336786u, 1072693247u, 4294967241u, 0, COS_TOLERANCE, 0},
+{ 504, 1055954236u, 3639240976u, 1081202165u, 1844741676u, 1072693247u, 4293840918u, 0, COS_TOLERANCE, 0},
+{ 505, 3211904793u, 717293069u, 3211534283u, 582401011u, 1072693228u, 1061096244u, 0, COS_TOLERANCE, 0},
+{ 506, 3251962512u, 3766248610u, 3196520332u, 1174437546u, 3219189828u, 425313336u, 0, COS_TOLERANCE, 0},
+{ 507, 1083431226u, 756959182u, 3204099341u, 1581804034u, 1071437392u, 805974233u, 0, COS_TOLERANCE, 0},
+{ 508, 3205806444u, 3560686300u, 3220980617u, 4277975772u, 1072693247u, 4266819760u, 0, COS_TOLERANCE, 0},
+{ 509, 3209906076u, 2598148853u, 3217622194u, 3460421008u, 1072693246u, 2353707925u, 0, COS_TOLERANCE, 0},
+{ 510, 1066720824u, 136600515u, 3209934920u, 3340653128u, 1072692812u, 2318741494u, 0, COS_TOLERANCE, 0},
+{ 511, 1096820310u, 1045480938u, 3251354609u, 4133432965u, 3218616375u, 1623062713u, 0, COS_TOLERANCE, 0},
+{ 512, 1091599431u, 1630207738u, 3239996829u, 2393354808u, 3219829897u, 4235988833u, 0, COS_TOLERANCE, 0},
+{ 513, 3190626018u, 3739770117u, 1059520750u, 3959551225u, 1072693248u, 0u, 0, COS_TOLERANCE, 0},
+{ 514, 3230730505u, 1498861716u, 1091297147u, 847410798u, 3220160144u, 1401589565u, 0, COS_TOLERANCE, 0},
+{ 515, 1073516688u, 983275314u, 3232538664u, 2244973629u, 3217768161u, 1085338811u, 0, COS_TOLERANCE, 0},
+{ 516, 1054849265u, 2353103845u, 3235718771u, 2978889966u, 1072693247u, 4294709680u, 0, COS_TOLERANCE, 0},
+{ 517, 3251357992u, 1546972125u, 3249076079u, 1987349196u, 3215432163u, 3255331174u, 0, COS_TOLERANCE, 0},
+{ 518, 3238219513u, 2769161072u, 1075207126u, 292616282u, 3219474945u, 1396988883u, 0, COS_TOLERANCE, 0},
+{ 519, 3199712298u, 36855311u, 1052128202u, 1479039342u, 1072693247u, 4294958282u, 0, COS_TOLERANCE, 0},
+{ 520, 1083757053u, 2027463605u, 1066023013u, 3369686340u, 1071267149u, 2773154495u, 0, COS_TOLERANCE, 0},
+{ 521, 3197852749u, 3808681655u, 1054161346u, 1821773119u, 1072693247u, 4294966547u, 0, COS_TOLERANCE, 0},
+{ 522, 1040685928u, 3175490326u, 3226879970u, 845687760u, 1072693248u, 0u, 0, COS_TOLERANCE, 0},
+{ 523, 1042302993u, 3124482451u, 3242748377u, 3259417226u, 1072693248u, 0u, 0, COS_TOLERANCE, 0},
+{ 524, 1045245695u, 2751606436u, 3236210939u, 3923142740u, 1072693247u, 4294967295u, 0, COS_TOLERANCE, 0},
+{ 525, 1095694737u, 2016872044u, 3228408064u, 4201274408u, 3219321161u, 1921838008u, 0, COS_TOLERANCE, 0},
+{ 526, 3199349254u, 1019916843u, 3219974785u, 1977881787u, 1072693247u, 4294961999u, 0, COS_TOLERANCE, 0},
+{ 527, 3199478752u, 2060433318u, 1075872515u, 366073725u, 1072693247u, 4294960786u, 0, COS_TOLERANCE, 0},
+{ 528, 3191180557u, 1098469906u, 1082900695u, 2349346832u, 1072693248u, 0u, 0, COS_TOLERANCE, 0},
+{ 529, 3209974707u, 3011196295u, 3252479932u, 2459281672u, 1072693246u, 1657835881u, 0, COS_TOLERANCE, 0},
+{ 530, 3221334323u, 2843222682u, 1089275809u, 298982001u, 3219326801u, 414973546u, 0, COS_TOLERANCE, 0},
+{ 531, 1101737698u, 914741728u, 3203468059u, 2833809843u, 3219266445u, 2657113532u, 0, COS_TOLERANCE, 0},
+{ 532, 3236763878u, 1274901962u, 3241535845u, 3759113509u, 1069183268u, 3668657064u, 0, COS_TOLERANCE, 0},
+{ 533, 3245916442u, 2134927252u, 3253802671u, 3013731444u, 1070851538u, 2502169401u, 0, COS_TOLERANCE, 0},
+{ 534, 1099201341u, 2230655177u, 3254510616u, 1249674366u, 3220146808u, 409508490u, 0, COS_TOLERANCE, 0},
+{ 535, 1062971253u, 717357389u, 1083533731u, 3746683362u, 1072693245u, 54512334u, 0, COS_TOLERANCE, 0},
+{ 536, 3213773114u, 834976849u, 3217357661u, 2465861779u, 1072693018u, 2976670979u, 0, COS_TOLERANCE, 0},
+{ 537, 1045656117u, 1385714428u, 1053358395u, 3007113740u, 1072693247u, 4294967295u, 0, COS_TOLERANCE, 0},
+{ 538, 1050527919u, 599268545u, 3201368210u, 2309854744u, 1072693247u, 4294966409u, 0, COS_TOLERANCE, 0},
+{ 539, 1069954454u, 2840234388u, 3232496515u, 333365983u, 1072661758u, 3614572093u, 0, COS_TOLERANCE, 0},
+{ 540, 1045922781u, 3136078996u, 3194520860u, 2650572904u, 1072693247u, 4294967294u, 0, COS_TOLERANCE, 0},
+{ 541, 3233687691u, 2405805086u, 3251640319u, 324233833u, 1068811358u, 4162323614u, 0, COS_TOLERANCE, 0},
+{ 542, 1106699146u, 2589598340u, 3254677807u, 952438812u, 1071784199u, 1738588699u, 0, COS_TOLERANCE, 0},
+{ 543, 3189114773u, 1922837702u, 3216892718u, 3535907549u, 1072693248u, 0u, 0, COS_TOLERANCE, 0},
+{ 544, 3243615868u, 261447440u, 3209805849u, 1150571079u, 3220053401u, 399142837u, 0, COS_TOLERANCE, 0},
+{ 545, 1095805232u, 4026487528u, 1073152064u, 27340691u, 1072388772u, 1533980329u, 0, COS_TOLERANCE, 0},
+{ 546, 3229123692u, 338765118u, 1086225786u, 3207238249u, 3219992318u, 2304503256u, 0, COS_TOLERANCE, 0},
+{ 547, 3196182703u, 1085283176u, 3187775111u, 1601194210u, 1072693247u, 4294967216u, 0, COS_TOLERANCE, 0},
+{ 548, 1091520173u, 3031712790u, 3252307859u, 170666844u, 3218842033u, 2741016994u, 0, COS_TOLERANCE, 0},
+{ 549, 3218862231u, 3148395674u, 1041913758u, 3306391490u, 1072496559u, 2937265603u, 0, COS_TOLERANCE, 0},
+{ 550, 3201277070u, 2205233857u, 3208100078u, 3993195511u, 1072693247u, 4294903341u, 0, COS_TOLERANCE, 0},
+{ 551, 1067699608u, 4282766727u, 1072820377u, 1874778218u, 1072691679u, 2327723158u, 0, COS_TOLERANCE, 0},
+{ 552, 3210833092u, 2920860798u, 3218070226u, 3104066154u, 1072693243u, 1098827613u, 0, COS_TOLERANCE, 0},
+{ 553, 3204950351u, 969991373u, 3250596895u, 1734386152u, 1072693247u, 4285794546u, 0, COS_TOLERANCE, 0},
+{ 554, 3238915818u, 1218740205u, 3239802737u, 2610078504u, 1072341600u, 4056543646u, 0, COS_TOLERANCE, 0},
+{ 555, 3206031242u, 1485218325u, 3220870240u, 3591664613u, 1072693247u, 4256731124u, 0, COS_TOLERANCE, 0},
+{ 556, 3202074143u, 690157417u, 3190850619u, 4192347699u, 1072693247u, 4294769820u, 0, COS_TOLERANCE, 0},
+{ 557, 1096053810u, 4009839784u, 1079670252u, 394167192u, 1067100091u, 683628693u, 0, COS_TOLERANCE, 0},
+{ 558, 3234559237u, 961532417u, 1092588071u, 2923790239u, 3219826642u, 2587899721u, 0, COS_TOLERANCE, 0},
+{ 559, 3203879091u, 4174125604u, 1050682630u, 2169701868u, 1072693247u, 4292740708u, 0, COS_TOLERANCE, 0},
+{ 560, 3243092475u, 4146748230u, 1087373950u, 2481478351u, 3220175227u, 1005025558u, 0, COS_TOLERANCE, 0},
+{ 561, 1076987866u, 3984715440u, 1050421618u, 2446142566u, 1070589958u, 3572501181u, 0, COS_TOLERANCE, 0},
+{ 562, 1084172406u, 936290150u, 1100614426u, 3625806370u, 3219547017u, 4126560522u, 0, COS_TOLERANCE, 0},
+{ 563, 1099787952u, 1866615265u, 3215651428u, 2337013350u, 3219658243u, 456488637u, 0, COS_TOLERANCE, 0},
+{ 564, 3253198302u, 712227971u, 1106004723u, 973148499u, 3220091089u, 4169062849u, 0, COS_TOLERANCE, 0},
+{ 565, 3230088199u, 3409813738u, 3244817008u, 1933503498u, 3219104826u, 3598702610u, 0, COS_TOLERANCE, 0},
+{ 566, 1079943733u, 3180389060u, 3228735703u, 83422217u, 3220176734u, 1468291227u, 0, COS_TOLERANCE, 0},
+{ 567, 1077878724u, 556972671u, 3204582372u, 841555801u, 1072604572u, 802866348u, 0, COS_TOLERANCE, 0},
+{ 568, 1070767721u, 4189151332u, 1080874032u, 706326922u, 1072605127u, 894556621u, 0, COS_TOLERANCE, 0},
+{ 569, 1096151307u, 198291836u, 1057281892u, 2188836928u, 3218147467u, 3777186949u, 0, COS_TOLERANCE, 0},
+{ 570, 1078091995u, 1219449298u, 3228734687u, 3504562743u, 1071828869u, 1565632238u, 0, COS_TOLERANCE, 0},
+{ 571, 3204570464u, 1776099219u, 1094316777u, 4188083896u, 1072693247u, 4289738353u, 0, COS_TOLERANCE, 0},
+{ 572, 3193845708u, 2614400266u, 1073750227u, 3003203347u, 1072693247u, 4294967292u, 0, COS_TOLERANCE, 0},
+{ 573, 3213982678u, 2959351406u, 1105603716u, 311851587u, 1072692942u, 1400585228u, 0, COS_TOLERANCE, 0},
+{ 574, 1084544434u, 865443613u, 1097532516u, 3622237781u, 3220039406u, 2852313542u, 0, COS_TOLERANCE, 0},
+{ 575, 3231786666u, 447506102u, 3195759295u, 3603669725u, 3219760569u, 3069303987u, 0, COS_TOLERANCE, 0},
+{ 576, 1097890173u, 3934398273u, 1040996422u, 2968621268u, 1068863315u, 1513793935u, 0, COS_TOLERANCE, 0},
+{ 577, 3196739825u, 784208771u, 1088764788u, 2182296421u, 1072693247u, 4294967122u, 0, COS_TOLERANCE, 0},
+{ 578, 3248332291u, 1527590526u, 3206961556u, 2823164069u, 3219246387u, 1629246963u, 0, COS_TOLERANCE, 0},
+{ 579, 3236644131u, 3876699591u, 3207481130u, 4028148535u, 3219160558u, 3753866329u, 0, COS_TOLERANCE, 0},
+{ 580, 1083576186u, 2164249756u, 1059857743u, 1785169952u, 3218175224u, 879726405u, 0, COS_TOLERANCE, 0},
+{ 581, 1091804009u, 2079273665u, 1080303860u, 625760474u, 3218606506u, 371401132u, 0, COS_TOLERANCE, 0},
+{ 582, 3226486108u, 3636214836u, 1068367620u, 2932621925u, 3219400280u, 3279627080u, 0, COS_TOLERANCE, 0},
+{ 583, 1043995372u, 4274131512u, 1047707755u, 92550763u, 1072693248u, 0u, 0, COS_TOLERANCE, 0},
+{ 584, 3198822121u, 2648933384u, 1084603503u, 3534304873u, 1072693247u, 4294964560u, 0, COS_TOLERANCE, 0},
+{ 585, 1064563235u, 3216750767u, 3191088629u, 547482628u, 1072693223u, 580769603u, 0, COS_TOLERANCE, 0},
+{ 586, 1061084774u, 1420360746u, 1080063101u, 1690029499u, 1072693247u, 3295800571u, 0, COS_TOLERANCE, 0},
+{ 587, 3229855364u, 1908572179u, 1080112083u, 1228319033u, 1068701740u, 1725760599u, 0, COS_TOLERANCE, 0},
+{ 588, 1048158178u, 500312015u, 3212368508u, 3864619086u, 1072693247u, 4294967255u, 0, COS_TOLERANCE, 0},
+{ 589, 3221335610u, 4211343447u, 1087492676u, 4272583781u, 3219330937u, 1275345573u, 0, COS_TOLERANCE, 0},
+{ 590, 1099392394u, 2382118000u, 1042665328u, 567154882u, 3219359292u, 736683867u, 0, COS_TOLERANCE, 0},
+{ 591, 1058013442u, 1435344339u, 3216303171u, 2275988178u, 1072693247u, 4278181812u, 0, COS_TOLERANCE, 0},
+{ 592, 3214538619u, 3403659753u, 3218043030u, 1926480488u, 1072692573u, 3285328600u, 0, COS_TOLERANCE, 0},
+{ 593, 1076840383u, 1198845185u, 3225556149u, 1130089684u, 3220172073u, 668005656u, 0, COS_TOLERANCE, 0},
+{ 594, 3222663042u, 2183928090u, 1048403956u, 963834821u, 1072058265u, 439230756u, 0, COS_TOLERANCE, 0},
+{ 595, 1101672960u, 2120625396u, 1041006976u, 2137548527u, 3219105835u, 3752162680u, 0, COS_TOLERANCE, 0},
+{ 596, 1099230238u, 586700956u, 1059670521u, 303891699u, 1070589874u, 1796035360u, 0, COS_TOLERANCE, 0},
+{ 597, 3218994498u, 2509132460u, 1102827530u, 2205707903u, 1072467656u, 2678741737u, 0, COS_TOLERANCE, 0},
+{ 598, 3204860597u, 1229308263u, 3209170414u, 4206576047u, 1072693247u, 4286825667u, 0, COS_TOLERANCE, 0},
+{ 599, 3224076289u, 4078010749u, 3199236456u, 733478972u, 1071131091u, 915577737u, 0, COS_TOLERANCE, 0},
+{ 600, 3197712584u, 4277541051u, 3199806921u, 397102023u, 1072693247u, 4294966660u, 0, COS_TOLERANCE, 0},
+{ 601, 3195975013u, 900999594u, 3234720188u, 2530214248u, 1072693247u, 4294967237u, 0, COS_TOLERANCE, 0},
+{ 602, 1076543548u, 4000609478u, 1096577064u, 4148592328u, 1072043454u, 840440154u, 0, COS_TOLERANCE, 0},
+{ 603, 1048668084u, 2154187873u, 3224392607u, 3957250362u, 1072693247u, 4294967220u, 0, COS_TOLERANCE, 0},
+{ 604, 3223413488u, 2867079200u, 1101870326u, 921212001u, 3219640338u, 2663551801u, 0, COS_TOLERANCE, 0},
+{ 605, 3233221890u, 674547716u, 1063216239u, 3929755226u, 1071459668u, 723041291u, 0, COS_TOLERANCE, 0},
+{ 606, 3240415851u, 3158182449u, 1043794244u, 3259056345u, 3220037664u, 2966147533u, 0, COS_TOLERANCE, 0},
+{ 607, 3236776656u, 3002823940u, 1059511739u, 2832435794u, 1070487493u, 280321777u, 0, COS_TOLERANCE, 0},
+{ 608, 3217304822u, 2196511929u, 1049973941u, 3672092877u, 1072667250u, 1240548968u, 0, COS_TOLERANCE, 0},
+{ 609, 1050438056u, 3655292191u, 1086438127u, 3567072906u, 1072693247u, 4294966489u, 0, COS_TOLERANCE, 0},
+{ 610, 3243186948u, 1617573614u, 3201863123u, 3090723732u, 1072690054u, 2844567634u, 0, COS_TOLERANCE, 0},
+{ 611, 3233201380u, 679893506u, 3211547753u, 824081024u, 3219939961u, 2810857343u, 0, COS_TOLERANCE, 0},
+{ 612, 1089530525u, 2285242807u, 1084999409u, 2221731406u, 1071368057u, 1426300390u, 0, COS_TOLERANCE, 0},
+{ 613, 3206733664u, 1935990727u, 1088822246u, 1058156518u, 1072693247u, 4201598491u, 0, COS_TOLERANCE, 0},
+{ 614, 1102839166u, 521023584u, 1059186903u, 4245163857u, 3220149846u, 3786871735u, 0, COS_TOLERANCE, 0},
+{ 615, 1103891140u, 2312887617u, 3191771354u, 1885370807u, 1072693088u, 1521437248u, 0, COS_TOLERANCE, 0},
+{ 616, 3252953815u, 1796441468u, 1100030327u, 2772711004u, 3219885770u, 1681306400u, 0, COS_TOLERANCE, 0},
+{ 617, 3204276820u, 2095685003u, 1077984448u, 2100773742u, 1072693247u, 4291430705u, 0, COS_TOLERANCE, 0},
+{ 618, 3192954620u, 2892538035u, 1042396334u, 4162200338u, 1072693247u, 4294967295u, 0, COS_TOLERANCE, 0},
+{ 619, 3242725751u, 2177698116u, 3227557177u, 150832500u, 3220168457u, 3307824821u, 0, COS_TOLERANCE, 0},
+{ 620, 3191562216u, 607966734u, 3236250630u, 4164600559u, 1072693248u, 0u, 0, COS_TOLERANCE, 0},
+{ 621, 3216389812u, 2830122967u, 1046096700u, 3713346883u, 1072685357u, 3355578451u, 0, COS_TOLERANCE, 0},
+{ 622, 3237197963u, 2314640506u, 3203696416u, 3276228872u, 1072684594u, 3660350689u, 0, COS_TOLERANCE, 0},
+{ 623, 3212912307u, 469331883u, 3249037349u, 2999233437u, 1072693174u, 1974686405u, 0, COS_TOLERANCE, 0},
+{ 624, 1097382011u, 560886625u, 1091899487u, 748795120u, 1072341321u, 1561640432u, 0, COS_TOLERANCE, 0},
+{ 625, 1049886858u, 2958421324u, 1092569414u, 3235243477u, 1072693247u, 4294966896u, 0, COS_TOLERANCE, 0},
+{ 626, 3193026497u, 3221475559u, 1043038304u, 915608434u, 1072693247u, 4294967295u, 0, COS_TOLERANCE, 0},
+{ 627, 1071197530u, 3007808652u, 3216682290u, 2531019474u, 1072533054u, 1184989401u, 0, COS_TOLERANCE, 0},
+{ 628, 3242028999u, 1767658578u, 3237045269u, 2313128318u, 3215226551u, 294612205u, 0, COS_TOLERANCE, 0},
+{ 629, 3210617892u, 1926845182u, 1066835624u, 1783256828u, 1072693244u, 1937927066u, 0, COS_TOLERANCE, 0},
+{ 630, 1040575629u, 90378038u, 1057168870u, 164358218u, 1072693248u, 0u, 0, COS_TOLERANCE, 0},
+{ 631, 1106859172u, 1610524680u, 1085283851u, 2903496007u, 3219904172u, 2335619660u, 0, COS_TOLERANCE, 0},
+{ 632, 1078635586u, 4274321404u, 3202913591u, 720121831u, 3220172959u, 2167800746u, 0, COS_TOLERANCE, 0},
+{ 633, 1051205256u, 2034778236u, 1071133763u, 1413236391u, 1072693247u, 4294964969u, 0, COS_TOLERANCE, 0},
+{ 634, 1051063028u, 1489112261u, 1076691395u, 348210906u, 1072693247u, 4294965369u, 0, COS_TOLERANCE, 0},
+{ 635, 3206743917u, 2797651324u, 3224410527u, 2374818327u, 1072693247u, 4200044040u, 0, COS_TOLERANCE, 0},
+{ 636, 1088287256u, 1823161666u, 3197810695u, 3119680047u, 3219677965u, 2997914837u, 0, COS_TOLERANCE, 0},
+{ 637, 1065927336u, 3420950657u, 1087084743u, 2136638961u, 1072693094u, 3146758615u, 0, COS_TOLERANCE, 0},
+{ 638, 1069902224u, 3554566429u, 1062907717u, 2736702589u, 1072663973u, 178834935u, 0, COS_TOLERANCE, 0},
+{ 639, 3244888667u, 2928437580u, 3187765027u, 1393427873u, 3220173429u, 1922306944u, 0, COS_TOLERANCE, 0},
+{ 640, 3209301561u, 189447067u, 1051643315u, 828663513u, 1072693247u, 1447487601u, 0, COS_TOLERANCE, 0},
+{ 641, 1052313869u, 2852350928u, 1045683757u, 673354280u, 1072693247u, 4294957268u, 0, COS_TOLERANCE, 0},
+{ 642, 1043946301u, 3589563265u, 3248741629u, 812657927u, 1072693248u, 0u, 0, COS_TOLERANCE, 0},
+{ 643, 3190610826u, 1766416701u, 1100392103u, 2185373290u, 1072693248u, 0u, 0, COS_TOLERANCE, 0},
+{ 644, 3220275389u, 3763582673u, 3191965790u, 388374829u, 1071472690u, 1891493224u, 0, COS_TOLERANCE, 0},
+{ 645, 1079635136u, 1187403069u, 1075300235u, 336640304u, 3220176149u, 3234833894u, 0, COS_TOLERANCE, 0},
+{ 646, 1103926251u, 1718795752u, 3243118752u, 683369237u, 3219779573u, 3806121574u, 0, COS_TOLERANCE, 0},
+{ 647, 3210792097u, 1863545307u, 1069449477u, 3418627399u, 1072693243u, 2535529384u, 0, COS_TOLERANCE, 0},
+{ 648, 1069601294u, 3295607249u, 1068878592u, 1633297809u, 1072675166u, 2110076227u, 0, COS_TOLERANCE, 0},
+{ 649, 1058947127u, 2585980994u, 3236670483u, 1286750688u, 1072693247u, 4234994396u, 0, COS_TOLERANCE, 0},
+{ 650, 1046157033u, 15816845u, 3233249283u, 2491924775u, 1072693247u, 4294967293u, 0, COS_TOLERANCE, 0},
+{ 651, 1042413021u, 1051983351u, 1049180786u, 1474421917u, 1072693248u, 0u, 0, COS_TOLERANCE, 0},
+{ 652, 3201249525u, 2003816032u, 1086050104u, 668090487u, 1072693247u, 4294905031u, 0, COS_TOLERANCE, 0},
+{ 653, 1052556037u, 3671484625u, 1067020039u, 430024694u, 1072693247u, 4294954089u, 0, COS_TOLERANCE, 0},
+{ 654, 1067397110u, 3991830201u, 3207808714u, 1021245839u, 1072692275u, 1819605250u, 0, COS_TOLERANCE, 0},
+{ 655, 1064194391u, 4255801807u, 3207681716u, 1926756877u, 1072693233u, 2740400643u, 0, COS_TOLERANCE, 0},
+{ 656, 1052140785u, 4167786896u, 1077097744u, 1775517981u, 1072693247u, 4294959272u, 0, COS_TOLERANCE, 0},
+{ 657, 1085601978u, 3187518564u, 1082437406u, 944672491u, 3220110458u, 913134978u, 0, COS_TOLERANCE, 0},
+{ 658, 1049366282u, 953085192u, 3227310828u, 3459155777u, 1072693247u, 4294967099u, 0, COS_TOLERANCE, 0},
+{ 659, 1069502506u, 1908555460u, 1073640207u, 260441967u, 1072677579u, 1454510592u, 0, COS_TOLERANCE, 0},
+{ 660, 1067219606u, 250762477u, 1072582645u, 2886742039u, 1072692437u, 31148257u, 0, COS_TOLERANCE, 0},
+{ 661, 3250906006u, 786180031u, 3197734769u, 2788918312u, 1072326482u, 1005490298u, 0, COS_TOLERANCE, 0},
+{ 662, 3234511827u, 2055912467u, 3244244909u, 1394142937u, 3220102579u, 286327760u, 0, COS_TOLERANCE, 0},
+{ 663, 1069612985u, 91984146u, 3222252812u, 4126276047u, 1072674781u, 2240078613u, 0, COS_TOLERANCE, 0},
+{ 664, 1081340139u, 3942715706u, 3239316352u, 410676547u, 1070049772u, 3039431038u, 0, COS_TOLERANCE, 0},
+{ 665, 3198557846u, 86296211u, 1085850694u, 649202596u, 1072693247u, 4294965339u, 0, COS_TOLERANCE, 0},
+{ 666, 3245366392u, 3069064472u, 3237358008u, 23209276u, 1072495724u, 3575339626u, 0, COS_TOLERANCE, 0},
+{ 667, 1081235288u, 1867297860u, 1072956607u, 2513414118u, 3218189572u, 1975036829u, 0, COS_TOLERANCE, 0},
+{ 668, 3250533347u, 3171788768u, 3235208783u, 162138697u, 1070382034u, 2139906112u, 0, COS_TOLERANCE, 0},
+{ 669, 1081728455u, 1245110700u, 1081653954u, 2584994077u, 1072012843u, 595067820u, 0, COS_TOLERANCE, 0},
+{ 670, 3245510120u, 3347226587u, 1058962932u, 2291943376u, 3220038529u, 1729582222u, 0, COS_TOLERANCE, 0},
+{ 671, 1058899062u, 966940828u, 1060726420u, 2798041096u, 1072693247u, 4237867181u, 0, COS_TOLERANCE, 0},
+{ 672, 1072793759u, 2487340727u, 3223786370u, 4105954991u, 1071465516u, 1993418532u, 0, COS_TOLERANCE, 0},
+{ 673, 3248116497u, 1671039260u, 1086395032u, 3745833360u, 1072592394u, 1092605516u, 0, COS_TOLERANCE, 0},
+{ 674, 1057078797u, 651714217u, 1047070645u, 2130549237u, 1072693247u, 4289809738u, 0, COS_TOLERANCE, 0},
+{ 675, 3207115731u, 1423000172u, 3247822717u, 1551488170u, 1072693247u, 4135004220u, 0, COS_TOLERANCE, 0},
+{ 676, 3201597307u, 921077236u, 3213332351u, 1431049019u, 1072693247u, 4294859733u, 0, COS_TOLERANCE, 0},
+{ 677, 1067510295u, 655715547u, 3190985373u, 1527556471u, 1072692103u, 3067599466u, 0, COS_TOLERANCE, 0},
+{ 678, 3227654979u, 4110878657u, 3251297180u, 879739345u, 1072574045u, 720418835u, 0, COS_TOLERANCE, 0},
+{ 679, 1085804762u, 2623955764u, 1093699897u, 1216444475u, 3220138856u, 1786848118u, 0, COS_TOLERANCE, 0},
+{ 680, 1091905603u, 107442539u, 3239767031u, 1149813329u, 3219851592u, 2118474530u, 0, COS_TOLERANCE, 0},
+{ 681, 3233445240u, 1761361082u, 3226030205u, 1121849716u, 1072652853u, 178221240u, 0, COS_TOLERANCE, 0},
+{ 682, 3240087115u, 2534144722u, 1044223733u, 3512285706u, 3216132876u, 902911402u, 0, COS_TOLERANCE, 0},
+{ 683, 3211846077u, 4073670723u, 1050729852u, 3034818849u, 1072693230u, 806668878u, 0, COS_TOLERANCE, 0},
+{ 684, 1101984574u, 1421423503u, 1060278048u, 1397153092u, 3219504796u, 3365923665u, 0, COS_TOLERANCE, 0},
+{ 685, 3217421829u, 1649206019u, 1104525577u, 1267104290u, 1072662457u, 1345840563u, 0, COS_TOLERANCE, 0},
+{ 686, 3189302097u, 3775270392u, 1040251850u, 68667319u, 1072693248u, 0u, 0, COS_TOLERANCE, 0},
+{ 687, 3204330900u, 3099226694u, 3254103006u, 4020102648u, 1072693247u, 4291229279u, 0, COS_TOLERANCE, 0},
+{ 688, 3201591712u, 3718441177u, 3215643451u, 4032951536u, 1072693247u, 4294860627u, 0, COS_TOLERANCE, 0},
+{ 689, 1044131371u, 508048351u, 3210196713u, 1707937896u, 1072693248u, 0u, 0, COS_TOLERANCE, 0},
+{ 690, 3198611627u, 2784738160u, 1073435430u, 1109346010u, 1072693247u, 4294965191u, 0, COS_TOLERANCE, 0},
+{ 691, 3225725290u, 3331916473u, 3238794568u, 2707019594u, 3219937123u, 2226610460u, 0, COS_TOLERANCE, 0},
+{ 692, 1093182670u, 3093165197u, 1072894805u, 2853215019u, 1072658626u, 3705768894u, 0, COS_TOLERANCE, 0},
+{ 693, 3216582139u, 2135797997u, 1048399559u, 2941926126u, 1072683137u, 376959074u, 0, COS_TOLERANCE, 0},
+{ 694, 1048430980u, 2083412145u, 3249335391u, 507212448u, 1072693247u, 4294967241u, 0, COS_TOLERANCE, 0},
+{ 695, 1075363751u, 4270176401u, 3246546709u, 3288753319u, 1072683587u, 2218972124u, 0, COS_TOLERANCE, 0},
+{ 696, 3247932863u, 3692175292u, 3197271515u, 3989064196u, 3217472000u, 1636461035u, 0, COS_TOLERANCE, 0},
+{ 697, 3251691738u, 3111924274u, 1066772558u, 59281695u, 3220096880u, 924173556u, 0, COS_TOLERANCE, 0},
+{ 698, 1067683911u, 2135245466u, 3208804313u, 3846547392u, 1072691717u, 1073276862u, 0, COS_TOLERANCE, 0},
+{ 699, 1094877811u, 972051266u, 3222814246u, 3539700586u, 3219298444u, 3078353466u, 0, COS_TOLERANCE, 0},
+{ 700, 3202965930u, 330951080u, 1079189813u, 583922384u, 1072693247u, 4294307614u, 0, COS_TOLERANCE, 0},
+{ 701, 1089640092u, 1711944085u, 1104170032u, 643991456u, 3218245979u, 1623606256u, 0, COS_TOLERANCE, 0},
+{ 702, 3234429549u, 2072550721u, 3250147641u, 4280263530u, 1071794324u, 38624345u, 0, COS_TOLERANCE, 0},
+{ 703, 3192972706u, 1566376352u, 1067251433u, 72984588u, 1072693247u, 4294967295u, 0, COS_TOLERANCE, 0},
+{ 704, 1095276569u, 3103043079u, 1045853123u, 410067497u, 3219935193u, 2728293583u, 0, COS_TOLERANCE, 0},
+{ 705, 3216672493u, 1910366299u, 1081770885u, 634683073u, 1072681999u, 479245867u, 0, COS_TOLERANCE, 0},
+{ 706, 1081530688u, 2226525875u, 3224149290u, 2126302825u, 1071247416u, 1032109685u, 0, COS_TOLERANCE, 0},
+{ 707, 1073150247u, 1383818978u, 3193885723u, 1220372650u, 1069627701u, 3400212089u, 0, COS_TOLERANCE, 0},
+{ 708, 1066482943u, 1953339096u, 1077176252u, 1476516558u, 1072692950u, 3646272527u, 0, COS_TOLERANCE, 0},
+{ 709, 1066092000u, 1306277326u, 1079089150u, 4093716191u, 1072693062u, 211505646u, 0, COS_TOLERANCE, 0},
+{ 710, 3233148787u, 51750045u, 3242913901u, 4256866157u, 3217216280u, 1160993324u, 0, COS_TOLERANCE, 0},
+{ 711, 3195084967u, 2163853087u, 3232053146u, 2962422808u, 1072693247u, 4294967278u, 0, COS_TOLERANCE, 0},
+{ 712, 1075516945u, 1618388148u, 3233154824u, 3711953164u, 1072448092u, 4287528395u, 0, COS_TOLERANCE, 0},
+{ 713, 3246868002u, 357108214u, 3202294604u, 2306775262u, 1071938433u, 4284753744u, 0, COS_TOLERANCE, 0},
+{ 714, 3201904086u, 2571356437u, 3249064063u, 2394851808u, 1072693247u, 4294804996u, 0, COS_TOLERANCE, 0},
+{ 715, 3230488091u, 4273880094u, 1103698617u, 3578832032u, 3219842465u, 27990251u, 0, COS_TOLERANCE, 0},
+{ 716, 3233426701u, 2091068742u, 3228270226u, 3980489730u, 3220175570u, 3118267747u, 0, COS_TOLERANCE, 0},
+{ 717, 3229016752u, 2772307714u, 1051008486u, 32546576u, 3217423140u, 1796767464u, 0, COS_TOLERANCE, 0},
+{ 718, 3241229215u, 2143788498u, 3195498043u, 3630119231u, 3218494133u, 503382599u, 0, COS_TOLERANCE, 0},
+{ 719, 3198632935u, 2527385594u, 3240503648u, 3482095012u, 1072693247u, 4294965131u, 0, COS_TOLERANCE, 0},
+{ 720, 3242168799u, 2690097362u, 1068598730u, 2360266862u, 1071811769u, 2322679045u, 0, COS_TOLERANCE, 0},
+{ 721, 1058857869u, 2673272949u, 1082639557u, 522449749u, 1072693247u, 4240273089u, 0, COS_TOLERANCE, 0},
+{ 722, 1104424147u, 3596379400u, 3242016775u, 2002293002u, 3218990076u, 882873582u, 0, COS_TOLERANCE, 0},
+{ 723, 1099439656u, 4113224369u, 3222122439u, 2152316893u, 1072382483u, 2149265695u, 0, COS_TOLERANCE, 0},
+{ 724, 3220796716u, 31662602u, 1047721249u, 1747087514u, 3214199757u, 3014160204u, 0, COS_TOLERANCE, 0},
+{ 725, 3250463757u, 2489659568u, 1097051253u, 277506957u, 3219439509u, 846415884u, 0, COS_TOLERANCE, 0},
+{ 726, 3191401834u, 3850162281u, 3213841942u, 438724093u, 1072693248u, 0u, 0, COS_TOLERANCE, 0},
+{ 727, 1095392535u, 2431814052u, 1075518084u, 2672434118u, 3220176605u, 763316173u, 0, COS_TOLERANCE, 0},
+{ 728, 3243162735u, 391606792u, 1048184750u, 4168944276u, 3218801484u, 293093886u, 0, COS_TOLERANCE, 0},
+{ 729, 3247792416u, 457529672u, 3201090276u, 72407935u, 1070460862u, 3595673825u, 0, COS_TOLERANCE, 0},
+{ 730, 3218720719u, 3954981400u, 1052053242u, 2411049585u, 1072525389u, 3235166120u, 0, COS_TOLERANCE, 0},
+{ 731, 1086180091u, 485456950u, 1088415093u, 1655397424u, 1072048063u, 2287321430u, 0, COS_TOLERANCE, 0},
+{ 732, 3198234428u, 1551748070u, 3236871640u, 1329701152u, 1072693247u, 4294966115u, 0, COS_TOLERANCE, 0},
+{ 733, 3224639122u, 3099222537u, 1104984570u, 4293792842u, 1070915285u, 3906708154u, 0, COS_TOLERANCE, 0},
+{ 734, 3203949705u, 3603065260u, 3197735968u, 2402359253u, 1072693247u, 4292530155u, 0, COS_TOLERANCE, 0},
+{ 735, 3198824584u, 3961208159u, 3219057584u, 2340553876u, 1072693247u, 4294964552u, 0, COS_TOLERANCE, 0},
+{ 736, 1074881909u, 4014841779u, 3197672877u, 3697233334u, 3218521683u, 3115963704u, 0, COS_TOLERANCE, 0},
+{ 737, 3213275657u, 1403876392u, 3254028950u, 921363393u, 1072693119u, 989562508u, 0, COS_TOLERANCE, 0},
+{ 738, 1107251806u, 1862576361u, 3194031708u, 2476290925u, 1072692742u, 3651849297u, 0, COS_TOLERANCE, 0},
+{ 739, 1049661768u, 1454212851u, 1088378861u, 3400401866u, 1072693247u, 4294967022u, 0, COS_TOLERANCE, 0},
+{ 740, 1074406809u, 552676385u, 3188635745u, 3778112968u, 3220160068u, 1645620146u, 0, COS_TOLERANCE, 0},
+{ 741, 3216409282u, 1199568671u, 3225679997u, 46947405u, 1072685145u, 1982517232u, 0, COS_TOLERANCE, 0},
+{ 742, 1077685537u, 2596231448u, 3253943728u, 2219151748u, 3220166825u, 1507155374u, 0, COS_TOLERANCE, 0},
+{ 743, 1066527035u, 4119719558u, 3222036299u, 1275474618u, 1072692927u, 866333980u, 0, COS_TOLERANCE, 0},
+{ 744, 3239908663u, 3347296825u, 1101507910u, 1254014794u, 3219483088u, 312673935u, 0, COS_TOLERANCE, 0},
+{ 745, 1084119992u, 673775040u, 1070743626u, 244126093u, 1069712823u, 2081579337u, 0, COS_TOLERANCE, 0},
+{ 746, 3203199850u, 1832066983u, 1051358028u, 3262483417u, 1072693247u, 4294109029u, 0, COS_TOLERANCE, 0},
+{ 747, 1077559600u, 3962610501u, 3198598777u, 849269178u, 1071367684u, 3164827138u, 0, COS_TOLERANCE, 0},
+{ 748, 3235473900u, 2497516122u, 3254374111u, 2821429629u, 1070842357u, 830343203u, 0, COS_TOLERANCE, 0},
+{ 749, 1076236288u, 2805941787u, 3217785843u, 779131141u, 1067598783u, 2114613609u, 0, COS_TOLERANCE, 0},
+{ 750, 3226908686u, 723423605u, 1084533420u, 627282213u, 3220121516u, 1226468903u, 0, COS_TOLERANCE, 0},
+{ 751, 3215947680u, 4292778869u, 1078101071u, 1676860147u, 1072689288u, 2072776390u, 0, COS_TOLERANCE, 0},
+{ 752, 1076288502u, 3528118587u, 3194648564u, 2363260897u, 1071311403u, 428792898u, 0, COS_TOLERANCE, 0},
+{ 753, 3192897879u, 1307010018u, 1061248120u, 1468743108u, 1072693247u, 4294967295u, 0, COS_TOLERANCE, 0},
+{ 754, 3246583139u, 107905661u, 3226089788u, 1943427674u, 1070106130u, 186093997u, 0, COS_TOLERANCE, 0},
+{ 755, 3188230541u, 760006940u, 1054265604u, 1749976597u, 1072693248u, 0u, 0, COS_TOLERANCE, 0},
+{ 756, 3237773384u, 2787503556u, 1081282610u, 1195841206u, 1071653293u, 2890745849u, 0, COS_TOLERANCE, 0},
+{ 757, 3191802156u, 545462045u, 3208381743u, 1981311808u, 1072693248u, 0u, 0, COS_TOLERANCE, 0},
+{ 758, 1061232136u, 3657978397u, 1104463616u, 3501253426u, 1072693247u, 3066024794u, 0, COS_TOLERANCE, 0},
+{ 759, 1049883857u, 1804177501u, 3210693633u, 3606766729u, 1072693247u, 4294966898u, 0, COS_TOLERANCE, 0},
+{ 760, 1076856879u, 1336278526u, 1043741618u, 3165279431u, 3220173366u, 3524098048u, 0, COS_TOLERANCE, 0},
+{ 761, 1055471915u, 1599382075u, 1058018527u, 4212580517u, 1072693247u, 4294315811u, 0, COS_TOLERANCE, 0},
+{ 762, 3207502326u, 3007589929u, 3202026547u, 2792028313u, 1072693247u, 4049483350u, 0, COS_TOLERANCE, 0},
+{ 763, 3253082770u, 1866066996u, 1060329048u, 3727175322u, 1072075197u, 4117100839u, 0, COS_TOLERANCE, 0},
+{ 764, 3198416643u, 150890940u, 1056025306u, 3082724735u, 1072693247u, 4294965702u, 0, COS_TOLERANCE, 0},
+{ 765, 1062008939u, 80400395u, 1093584426u, 3478941315u, 1072693247u, 774759105u, 0, COS_TOLERANCE, 0},
+{ 766, 3251640614u, 4050954182u, 3219263194u, 2537475930u, 3220163144u, 1526664806u, 0, COS_TOLERANCE, 0},
+{ 767, 1064841871u, 2881752155u, 3212589299u, 2559651278u, 1072693211u, 1740123982u, 0, COS_TOLERANCE, 0},
+{ 768, 3249016304u, 440309030u, 3214267461u, 3788040806u, 1072432298u, 4033522608u, 0, COS_TOLERANCE, 0},
+{ 769, 1100476615u, 918813144u, 3208535698u, 1607035904u, 1071075046u, 3768110943u, 0, COS_TOLERANCE, 0},
+{ 770, 1042137451u, 2497054124u, 1089139147u, 2549609010u, 1072693248u, 0u, 0, COS_TOLERANCE, 0},
+{ 771, 1047037641u, 790219083u, 1054657139u, 2797979479u, 1072693247u, 4294967287u, 0, COS_TOLERANCE, 0},
+{ 772, 1057781400u, 1149462078u, 1095765205u, 3879963182u, 1072693247u, 4281693680u, 0, COS_TOLERANCE, 0},
+{ 773, 3202729813u, 2684353926u, 3205212854u, 1732474928u, 1072693247u, 4294481603u, 0, COS_TOLERANCE, 0},
+{ 774, 1095236965u, 2742237025u, 1051317716u, 3386396147u, 1072584987u, 1443922753u, 0, COS_TOLERANCE, 0},
+{ 775, 1063230986u, 3408320912u, 1103071166u, 4233059513u, 1072693244u, 408413646u, 0, COS_TOLERANCE, 0},
+{ 776, 1064863548u, 1077495917u, 1088399968u, 433115118u, 1072693210u, 1708888818u, 0, COS_TOLERANCE, 0},
+{ 777, 3204547572u, 841366493u, 1051716814u, 4121125128u, 1072693247u, 4289940835u, 0, COS_TOLERANCE, 0},
+{ 778, 1064632084u, 321857207u, 1089128010u, 1149988239u, 1072693220u, 1919890503u, 0, COS_TOLERANCE, 0},
+{ 779, 3245542663u, 799866606u, 3197637091u, 3924438208u, 1072693235u, 2830234323u, 0, COS_TOLERANCE, 0},
+{ 780, 3191062890u, 2002049816u, 1077053447u, 2240354761u, 1072693248u, 0u, 0, COS_TOLERANCE, 0},
+{ 781, 3229006283u, 478939968u, 1097035749u, 1066716440u, 1072038033u, 1963592798u, 0, COS_TOLERANCE, 0},
+{ 782, 3232473641u, 1653104725u, 1088548129u, 81977716u, 1072564300u, 3577222580u, 0, COS_TOLERANCE, 0},
+{ 783, 3196861276u, 3899475018u, 3189694084u, 3330093036u, 1072693247u, 4294967097u, 0, COS_TOLERANCE, 0},
+{ 784, 1089312583u, 2612450289u, 1079065127u, 603380842u, 1071874137u, 2730682483u, 0, COS_TOLERANCE, 0},
+{ 785, 1100636791u, 3962735564u, 1101570429u, 1372490825u, 3219484451u, 3424147024u, 0, COS_TOLERANCE, 0},
+{ 786, 1054806016u, 1479841439u, 1059312257u, 541504905u, 1072693247u, 4294720287u, 0, COS_TOLERANCE, 0},
+{ 787, 1078662178u, 2626148789u, 1057571099u, 4121656076u, 3219613876u, 1330361278u, 0, COS_TOLERANCE, 0},
+{ 788, 1081613389u, 1902560314u, 1043130231u, 3557671562u, 3219753066u, 412003789u, 0, COS_TOLERANCE, 0},
+{ 789, 3193829772u, 41779312u, 1081626342u, 831171823u, 1072693247u, 4294967292u, 0, COS_TOLERANCE, 0},
+{ 790, 1058131100u, 1393168821u, 1066457405u, 1381616968u, 1072693247u, 4274204595u, 0, COS_TOLERANCE, 0},
+{ 791, 1072338141u, 3756584649u, 3222267229u, 1423157432u, 1072010372u, 1965542879u, 0, COS_TOLERANCE, 0},
+{ 792, 3254435674u, 1894912556u, 1042426694u, 155024547u, 3220102417u, 3146936854u, 0, COS_TOLERANCE, 0},
+{ 793, 3195453512u, 35164295u, 3203391785u, 1037041084u, 1072693247u, 4294967264u, 0, COS_TOLERANCE, 0},
+{ 794, 1084777479u, 3957875950u, 3232195211u, 1590756436u, 1072162155u, 3181474338u, 0, COS_TOLERANCE, 0},
+{ 795, 1068844322u, 1447585080u, 1071279485u, 1107922438u, 1072686013u, 2230343919u, 0, COS_TOLERANCE, 0},
+{ 796, 1046252518u, 981897615u, 1051856116u, 430357614u, 1072693247u, 4294967293u, 0, COS_TOLERANCE, 0},
+{ 797, 3227524215u, 395145384u, 3219821938u, 50586510u, 3220169459u, 2232263137u, 0, COS_TOLERANCE, 0},
+{ 798, 1069775912u, 750827797u, 1082862669u, 230466783u, 1072668996u, 1466987893u, 0, COS_TOLERANCE, 0},
+{ 799, 1086668819u, 1365083575u, 3204848310u, 1700831722u, 3219517257u, 2508901127u, 0, COS_TOLERANCE, 0},
+{ 800, 3218090390u, 344241827u, 1071538935u, 2715566077u, 1072626729u, 591520264u, 0, COS_TOLERANCE, 0},
+{ 801, 3247582856u, 4069301823u, 3193208760u, 2949125229u, 1071869692u, 3800681525u, 0, COS_TOLERANCE, 0},
+{ 802, 1103231387u, 3585711710u, 1065801594u, 2302229267u, 1071848763u, 1111779157u, 0, COS_TOLERANCE, 0},
+{ 803, 3194118956u, 709803845u, 1048741487u, 2296910194u, 1072693247u, 4294967291u, 0, COS_TOLERANCE, 0},
+{ 804, 3193280779u, 744421179u, 1069302001u, 2659232829u, 1072693247u, 4294967294u, 0, COS_TOLERANCE, 0},
+{ 805, 1092835968u, 1799949903u, 3192522886u, 4212149209u, 3217478798u, 567039304u, 0, COS_TOLERANCE, 0},
+{ 806, 3206108502u, 145234164u, 3250614064u, 912384201u, 1072693247u, 4252907712u, 0, COS_TOLERANCE, 0},
+{ 807, 3240510664u, 2784620507u, 1102812948u, 3531481022u, 3219875171u, 1925983410u, 0, COS_TOLERANCE, 0},
+{ 808, 3251159663u, 383952592u, 3205659905u, 3633194728u, 3219300930u, 1175187344u, 0, COS_TOLERANCE, 0},
+{ 809, 3203476252u, 3792395543u, 1070072378u, 3864816376u, 1072693247u, 4293759982u, 0, COS_TOLERANCE, 0},
+{ 810, 3205316273u, 2115553675u, 1066288499u, 3538377867u, 1072693247u, 4280954652u, 0, COS_TOLERANCE, 0},
+{ 811, 3252075185u, 1230026762u, 1090719723u, 440819880u, 1071705879u, 410002001u, 0, COS_TOLERANCE, 0},
+{ 812, 3194595076u, 2991290482u, 1096886719u, 1097971167u, 1072693247u, 4294967286u, 0, COS_TOLERANCE, 0},
+{ 813, 1090048600u, 1098035020u, 3230900504u, 1479059095u, 1070691609u, 1556386840u, 0, COS_TOLERANCE, 0},
+{ 814, 3251056964u, 1719428427u, 3188631907u, 3707377409u, 3218182768u, 148649403u, 0, COS_TOLERANCE, 0},
+{ 815, 1053236165u, 3748932896u, 1084908557u, 1325384361u, 1072693247u, 4294933120u, 0, COS_TOLERANCE, 0},
+{ 816, 1084704076u, 3979168763u, 1057455255u, 2454615952u, 1072510630u, 1379118583u, 0, COS_TOLERANCE, 0},
+{ 817, 1053106984u, 1449164578u, 1056960316u, 1654931641u, 1072693247u, 4294938702u, 0, COS_TOLERANCE, 0},
+{ 818, 1071439010u, 2120487381u, 3226298974u, 2364226633u, 1072483587u, 4085640584u, 0, COS_TOLERANCE, 0},
+{ 819, 1075071428u, 1074268944u, 1065730444u, 280016852u, 1071023686u, 839317700u, 0, COS_TOLERANCE, 0},
+{ 820, 3200308256u, 3315127889u, 3236295594u, 2900924954u, 1072693247u, 4294949171u, 0, COS_TOLERANCE, 0},
+{ 821, 3196425891u, 2246037502u, 1049691002u, 1496066550u, 1072693247u, 4294967179u, 0, COS_TOLERANCE, 0},
+{ 822, 3193006859u, 4191285446u, 3217936236u, 2382392789u, 1072693247u, 4294967295u, 0, COS_TOLERANCE, 0},
+{ 823, 1092833308u, 640099844u, 1042152237u, 2064279383u, 3219911263u, 3314302700u, 0, COS_TOLERANCE, 0},
+{ 824, 1079913438u, 3468560824u, 1093251038u, 310958750u, 1070649459u, 1482103661u, 0, COS_TOLERANCE, 0},
+{ 825, 1096788400u, 1413568905u, 1100941106u, 1627289946u, 1072194163u, 3665765707u, 0, COS_TOLERANCE, 0},
+{ 826, 3191549550u, 3797143370u, 3195497539u, 3843275034u, 1072693248u, 0u, 0, COS_TOLERANCE, 0},
+{ 827, 3252077393u, 2806642640u, 3201943068u, 2515980718u, 1072627981u, 3072040624u, 0, COS_TOLERANCE, 0},
+{ 828, 1086877316u, 632580632u, 1078673506u, 3259601317u, 1072072842u, 3802210842u, 0, COS_TOLERANCE, 0},
+{ 829, 3200980575u, 3309678799u, 1049337078u, 3056787074u, 1072693247u, 4294920337u, 0, COS_TOLERANCE, 0},
+{ 830, 3221495289u, 2341164249u, 1080834967u, 2810890005u, 3219778052u, 4039479565u, 0, COS_TOLERANCE, 0},
+{ 831, 1067019674u, 932124675u, 1093915797u, 662682630u, 1072692601u, 1903552662u, 0, COS_TOLERANCE, 0},
+{ 832, 3249230091u, 1367996113u, 3251723684u, 2974064663u, 3220162345u, 2971280959u, 0, COS_TOLERANCE, 0},
+{ 833, 1080230731u, 323437999u, 1090499064u, 901457511u, 1070643331u, 2801218782u, 0, COS_TOLERANCE, 0},
+{ 834, 3235778876u, 4184941840u, 3196770014u, 2458988443u, 1070379299u, 3057199715u, 0, COS_TOLERANCE, 0},
+{ 835, 1087618284u, 2023065054u, 3211994098u, 2734612965u, 1070619806u, 133610425u, 0, COS_TOLERANCE, 0},
+{ 836, 1064074694u, 3679267365u, 3237728785u, 1699558211u, 1072693235u, 1358669674u, 0, COS_TOLERANCE, 0},
+{ 837, 1088079010u, 1826799031u, 1078709629u, 3986905229u, 3220155790u, 45714209u, 0, COS_TOLERANCE, 0},
+{ 838, 1052843785u, 351061688u, 3194386466u, 4105857588u, 1072693247u, 4294948535u, 0, COS_TOLERANCE, 0},
+{ 839, 1054128006u, 1365244058u, 1064457319u, 1452191426u, 1072693247u, 4294857423u, 0, COS_TOLERANCE, 0},
+{ 840, 1064122385u, 2463030625u, 3215975031u, 3773488326u, 1072693234u, 2835341684u, 0, COS_TOLERANCE, 0},
+{ 841, 3251276671u, 752664055u, 1065110394u, 1835931663u, 1072606330u, 2168006594u, 0, COS_TOLERANCE, 0},
+{ 842, 1088045088u, 3496172149u, 1089617208u, 109068701u, 1071646891u, 3454715319u, 0, COS_TOLERANCE, 0},
+{ 843, 3198135087u, 1636966254u, 1086098766u, 2016598298u, 1072693247u, 4294966293u, 0, COS_TOLERANCE, 0},
+{ 844, 1050931318u, 3551516956u, 1097969102u, 1317953425u, 1072693247u, 4294965706u, 0, COS_TOLERANCE, 0},
+{ 845, 3229832217u, 2977627788u, 1045339018u, 516058480u, 3220026354u, 1801307080u, 0, COS_TOLERANCE, 0},
+{ 846, 3237408578u, 3901731263u, 3189566462u, 32272932u, 1072612586u, 1999902688u, 0, COS_TOLERANCE, 0},
+{ 847, 1077281796u, 1956025297u, 3246628529u, 3840733905u, 3220176264u, 1460906583u, 0, COS_TOLERANCE, 0},
+{ 848, 1099818036u, 561057891u, 3198494340u, 4271027193u, 3219706915u, 2487592168u, 0, COS_TOLERANCE, 0},
+{ 849, 3250929921u, 692989850u, 3242630588u, 2492225971u, 1071775653u, 3598656665u, 0, COS_TOLERANCE, 0},
+{ 850, 3205479397u, 3439913962u, 1067477011u, 2973333638u, 1072693247u, 4278467868u, 0, COS_TOLERANCE, 0},
+{ 851, 3213993989u, 877613377u, 1044917899u, 809672798u, 1072692936u, 1124230183u, 0, COS_TOLERANCE, 0},
+{ 852, 3222171454u, 905426932u, 1046417457u, 1086320855u, 3219732967u, 2366498859u, 0, COS_TOLERANCE, 0},
+{ 853, 3246346629u, 2645567288u, 1051258339u, 557182478u, 3218264361u, 925503775u, 0, COS_TOLERANCE, 0},
+{ 854, 3204057950u, 186287752u, 1061342054u, 4054003419u, 1072693247u, 4292188934u, 0, COS_TOLERANCE, 0},
+{ 855, 1097266673u, 3506889716u, 3243866036u, 519056371u, 1072524548u, 4130452916u, 0, COS_TOLERANCE, 0},
+{ 856, 1042654053u, 2171898436u, 3246911982u, 1091500784u, 1072693248u, 0u, 0, COS_TOLERANCE, 0},
+{ 857, 3243647673u, 368493885u, 3222871893u, 1419055230u, 3216262723u, 2584514122u, 0, COS_TOLERANCE, 0},
+{ 858, 1091950572u, 2010971245u, 3188804530u, 1518695799u, 1072003878u, 3484848839u, 0, COS_TOLERANCE, 0},
+{ 859, 3205426509u, 1239207795u, 1040192984u, 2199481342u, 1072693247u, 4279296379u, 0, COS_TOLERANCE, 0},
+{ 860, 3210978637u, 4264613432u, 3203460972u, 3558930895u, 1072693241u, 4163824395u, 0, COS_TOLERANCE, 0},
+{ 861, 1050299283u, 3772748958u, 3227667376u, 309688336u, 1072693247u, 4294966605u, 0, COS_TOLERANCE, 0},
+{ 862, 3230743041u, 1077949160u, 1075769893u, 2405271377u, 3220136004u, 1372765072u, 0, COS_TOLERANCE, 0},
+{ 863, 1091835152u, 3751608506u, 3232278094u, 930375071u, 3220132976u, 3623370703u, 0, COS_TOLERANCE, 0},
+{ 864, 3198617153u, 1518334131u, 3205247482u, 791756713u, 1072693247u, 4294965176u, 0, COS_TOLERANCE, 0},
+{ 865, 1047317453u, 2825203170u, 3245054001u, 1822981827u, 1072693247u, 4294967283u, 0, COS_TOLERANCE, 0},
+{ 866, 1100016363u, 514474738u, 1089072073u, 3300845441u, 3220150773u, 1241950753u, 0, COS_TOLERANCE, 0},
+{ 867, 3216391250u, 247369460u, 3197320093u, 687450958u, 1072685342u, 869228503u, 0, COS_TOLERANCE, 0},
+{ 868, 1104161422u, 2722237629u, 1058272368u, 90602316u, 1071768241u, 2917167493u, 0, COS_TOLERANCE, 0},
+{ 869, 3208098435u, 1845900544u, 3231520830u, 3389751458u, 1072693247u, 3706125946u, 0, COS_TOLERANCE, 0},
+{ 870, 3247535245u, 737689911u, 3195377751u, 3462616966u, 3219909935u, 25169281u, 0, COS_TOLERANCE, 0},
+{ 871, 3223538384u, 3620285831u, 1055501023u, 2708056059u, 3220125731u, 561009732u, 0, COS_TOLERANCE, 0},
+{ 872, 3219464996u, 4073430285u, 1056206159u, 172017902u, 1072252135u, 485800405u, 0, COS_TOLERANCE, 0},
+{ 873, 3212869638u, 2799176222u, 1052706894u, 4083892667u, 1072693179u, 4024516686u, 0, COS_TOLERANCE, 0},
+{ 874, 3202279557u, 1562351330u, 1069705601u, 1247765260u, 1072693247u, 4294722734u, 0, COS_TOLERANCE, 0},
+{ 875, 3232717299u, 51853475u, 3189080201u, 2783553144u, 3218702987u, 2062749856u, 0, COS_TOLERANCE, 0},
+{ 876, 3219454353u, 3851781549u, 3241598113u, 514064046u, 1072258643u, 3149220087u, 0, COS_TOLERANCE, 0},
+{ 877, 1100045965u, 934745487u, 3248182437u, 2798581921u, 1072649916u, 4210399008u, 0, COS_TOLERANCE, 0},
+{ 878, 3213082493u, 2948648757u, 3232177250u, 4278702895u, 1072693150u, 2167949766u, 0, COS_TOLERANCE, 0},
+{ 879, 1072485724u, 4259101461u, 1061606772u, 84229920u, 1071897988u, 2892918300u, 0, COS_TOLERANCE, 0},
+{ 880, 3198075559u, 3891230598u, 1095924595u, 3049217547u, 1072693247u, 4294966350u, 0, COS_TOLERANCE, 0},
+{ 881, 1077353053u, 3806018919u, 3243191216u, 280177341u, 3218889273u, 1541679478u, 0, COS_TOLERANCE, 0},
+{ 882, 1060624530u, 3900344258u, 1063647809u, 4206745890u, 1072693247u, 3698714150u, 0, COS_TOLERANCE, 0},
+{ 883, 3227707336u, 2126253040u, 3207248026u, 808507485u, 1072487400u, 2159060137u, 0, COS_TOLERANCE, 0},
+{ 884, 1086090317u, 3465685634u, 3230391053u, 3754958214u, 1072547244u, 3575258804u, 0, COS_TOLERANCE, 0},
+{ 885, 1102861084u, 461094531u, 1101110393u, 1316091396u, 3219644021u, 4014018646u, 0, COS_TOLERANCE, 0},
+{ 886, 1064980314u, 4197635149u, 1091873113u, 1240127141u, 1072693204u, 3164110352u, 0, COS_TOLERANCE, 0},
+{ 887, 1074333893u, 118603800u, 1105304898u, 4291425557u, 3220176737u, 383608412u, 0, COS_TOLERANCE, 0},
+{ 888, 3213429165u, 3744663425u, 3212482771u, 953662066u, 1072693091u, 1198201690u, 0, COS_TOLERANCE, 0},
+{ 889, 1085171305u, 3564196690u, 3228101916u, 904305212u, 3218446499u, 2064645583u, 0, COS_TOLERANCE, 0},
+{ 890, 1048333111u, 3566257266u, 3235138829u, 2734275140u, 1072693247u, 4294967246u, 0, COS_TOLERANCE, 0},
+{ 891, 3243948477u, 606044282u, 3241318094u, 2446416887u, 1072483229u, 3024937276u, 0, COS_TOLERANCE, 0},
+{ 892, 1041627284u, 2336116589u, 3197594053u, 2296925138u, 1072693248u, 0u, 0, COS_TOLERANCE, 0},
+{ 893, 1058567659u, 907670625u, 3240769036u, 1827119006u, 1072693247u, 4255755669u, 0, COS_TOLERANCE, 0},
+{ 894, 1044467183u, 2818710946u, 3246059905u, 553394170u, 1072693248u, 0u, 0, COS_TOLERANCE, 0},
+{ 895, 3189504094u, 4099522736u, 3232742168u, 3718083858u, 1072693248u, 0u, 0, COS_TOLERANCE, 0},
+{ 896, 1092371276u, 1059279404u, 1080245336u, 175941677u, 1071946968u, 3038643463u, 0, COS_TOLERANCE, 0},
+{ 897, 1105189691u, 1650862428u, 1061816101u, 1723201723u, 1072546853u, 2900471296u, 0, COS_TOLERANCE, 0},
+{ 898, 3239012814u, 2462163405u, 3218946201u, 3876535372u, 3219875653u, 324308466u, 0, COS_TOLERANCE, 0},
+{ 899, 1084392886u, 495844137u, 1073721460u, 772777946u, 3219129115u, 4204103924u, 0, COS_TOLERANCE, 0},
+{ 900, 1052415330u, 458757721u, 3245680321u, 3609892707u, 1072693247u, 4294955989u, 0, COS_TOLERANCE, 0},
+{ 901, 3193282956u, 2533012202u, 1079980803u, 3592268374u, 1072693247u, 4294967294u, 0, COS_TOLERANCE, 0},
+{ 902, 3203364780u, 4108274117u, 1063045844u, 571992389u, 1072693247u, 4293953329u, 0, COS_TOLERANCE, 0},
+{ 903, 1090567271u, 3541110973u, 1096296754u, 3118427427u, 3218286130u, 3681049170u, 0, COS_TOLERANCE, 0},
+{ 904, 3193980043u, 1213941007u, 1105433735u, 2172963370u, 1072693247u, 4294967292u, 0, COS_TOLERANCE, 0},
+{ 905, 1096853359u, 272190288u, 1095452370u, 4026581530u, 3219573393u, 1754602802u, 0, COS_TOLERANCE, 0},
+{ 906, 1095583909u, 2843638672u, 1100510986u, 3190536898u, 1068927336u, 2077295239u, 0, COS_TOLERANCE, 0},
+{ 907, 1083757094u, 2014317727u, 3247389683u, 2428462015u, 1071418891u, 3949394807u, 0, COS_TOLERANCE, 0},
+{ 908, 1093976717u, 688442200u, 1047852515u, 3035186380u, 3218438567u, 3315807290u, 0, COS_TOLERANCE, 0},
+{ 909, 1076664212u, 1010095511u, 3221288076u, 405287991u, 3217309822u, 2575252529u, 0, COS_TOLERANCE, 0},
+{ 910, 3252294615u, 2983070435u, 1089546472u, 2907918480u, 3218228705u, 3589822852u, 0, COS_TOLERANCE, 0},
+{ 911, 1082988121u, 81928569u, 1056007286u, 2740556321u, 1071928997u, 950952646u, 0, COS_TOLERANCE, 0},
+{ 912, 1041110867u, 2076689028u, 1081558619u, 3039159031u, 1072693248u, 0u, 0, COS_TOLERANCE, 0},
+{ 913, 1047307438u, 1376882094u, 3211003208u, 1296286481u, 1072693247u, 4294967283u, 0, COS_TOLERANCE, 0},
+{ 914, 1080114314u, 744133164u, 3200943494u, 955832216u, 1072574444u, 2611483025u, 0, COS_TOLERANCE, 0},
+{ 915, 3226290326u, 176522478u, 1069999908u, 2891249491u, 3218846532u, 839584632u, 0, COS_TOLERANCE, 0},
+{ 916, 1043564602u, 3685851715u, 3187829932u, 2363997529u, 1072693248u, 0u, 0, COS_TOLERANCE, 0},
+{ 917, 1040244055u, 3974431579u, 1052505165u, 2589067816u, 1072693248u, 0u, 0, COS_TOLERANCE, 0},
+{ 918, 3191496789u, 3819109588u, 1048561488u, 969143351u, 1072693248u, 0u, 0, COS_TOLERANCE, 0},
+{ 919, 1072639397u, 4246896124u, 1104584799u, 1940097860u, 1071774126u, 3327286031u, 0, COS_TOLERANCE, 0},
+{ 920, 1048038468u, 2228686199u, 3220231833u, 777624847u, 1072693247u, 4294967261u, 0, COS_TOLERANCE, 0},
+{ 921, 3231467306u, 4189906558u, 3203004203u, 854242364u, 1072635801u, 2738772612u, 0, COS_TOLERANCE, 0},
+{ 922, 1103910407u, 4089051094u, 3227282692u, 2693170723u, 1072289032u, 2913293455u, 0, COS_TOLERANCE, 0},
+{ 923, 1045883607u, 1278581412u, 3239296746u, 1774588717u, 1072693247u, 4294967294u, 0, COS_TOLERANCE, 0},
+{ 924, 3222372686u, 1794845306u, 1104879344u, 4135865182u, 3218414534u, 3610714925u, 0, COS_TOLERANCE, 0},
+{ 925, 1106449055u, 754938390u, 1061291430u, 2010786993u, 1071265111u, 1731432878u, 0, COS_TOLERANCE, 0},
+{ 926, 1073581409u, 2034303731u, 3240176537u, 314147356u, 3218175044u, 806346250u, 0, COS_TOLERANCE, 0},
+{ 927, 3231449194u, 567588900u, 3195452230u, 1421366017u, 1069959173u, 573109192u, 0, COS_TOLERANCE, 0},
+{ 928, 3225089755u, 2708717091u, 1071975971u, 1364590470u, 3218112486u, 3088949577u, 0, COS_TOLERANCE, 0},
+{ 929, 3252137283u, 3461956134u, 3207820115u, 1605709634u, 3219751105u, 1269198118u, 0, COS_TOLERANCE, 0},
+{ 930, 1065302996u, 1497124553u, 1051715442u, 916736957u, 1072693187u, 123521492u, 0, COS_TOLERANCE, 0},
+{ 931, 1058468363u, 834914365u, 1064667143u, 2839166298u, 1072693247u, 4260462906u, 0, COS_TOLERANCE, 0},
+{ 932, 1057279949u, 2139295776u, 1062816721u, 914592523u, 1072693247u, 4287870926u, 0, COS_TOLERANCE, 0},
+{ 933, 3189636931u, 851569132u, 1058503154u, 1399378677u, 1072693248u, 0u, 0, COS_TOLERANCE, 0},
+{ 934, 3233537697u, 3897202342u, 3245382590u, 246600375u, 3220170916u, 1054245121u, 0, COS_TOLERANCE, 0},
+{ 935, 3225460308u, 3620429520u, 1055627557u, 229305u, 3218059928u, 1414708102u, 0, COS_TOLERANCE, 0},
+{ 936, 1083958833u, 3641997865u, 3206673888u, 93720614u, 1071359590u, 2540863482u, 0, COS_TOLERANCE, 0},
+{ 937, 3227808435u, 32766320u, 1062084905u, 3668443038u, 1072641997u, 192284648u, 0, COS_TOLERANCE, 0},
+{ 938, 3223298996u, 2039713492u, 3248699388u, 1346210821u, 3215759704u, 503757072u, 0, COS_TOLERANCE, 0},
+{ 939, 1093050016u, 1335820726u, 3191756860u, 1808427032u, 3219084733u, 3748162632u, 0, COS_TOLERANCE, 0},
+{ 940, 1061442763u, 650692001u, 1103515670u, 2253348763u, 1072693247u, 2561215287u, 0, COS_TOLERANCE, 0},
+{ 941, 3191395187u, 2372623300u, 3210185343u, 3200572848u, 1072693248u, 0u, 0, COS_TOLERANCE, 0},
+{ 942, 1100796069u, 762317532u, 3194595095u, 3192607437u, 1071693271u, 4216870113u, 0, COS_TOLERANCE, 0},
+{ 943, 1062262701u, 217775356u, 3232827087u, 2969367386u, 1072693246u, 3830754275u, 0, COS_TOLERANCE, 0},
+{ 944, 1057172551u, 3621353969u, 1077994795u, 3873976266u, 1072693247u, 4288944491u, 0, COS_TOLERANCE, 0},
+{ 945, 1091301987u, 268372152u, 3221764390u, 3216978962u, 1072691551u, 1749079179u, 0, COS_TOLERANCE, 0},
+{ 946, 3246437611u, 142942404u, 1075322987u, 1746449109u, 1067877297u, 2819009254u, 0, COS_TOLERANCE, 0},
+{ 947, 1104006296u, 496534875u, 3254522293u, 2532372502u, 3219698150u, 64865468u, 0, COS_TOLERANCE, 0},
+{ 948, 3250225541u, 2999955409u, 3222793392u, 1868977643u, 3220149279u, 3918709218u, 0, COS_TOLERANCE, 0},
+{ 949, 1074319042u, 3353193428u, 3218469191u, 3326244297u, 3220175164u, 3474645289u, 0, COS_TOLERANCE, 0},
+{ 950, 1068218799u, 73646871u, 3231442171u, 3711510104u, 1072690173u, 4193166006u, 0, COS_TOLERANCE, 0},
+{ 951, 1090483524u, 218135177u, 3198908856u, 3082199105u, 3220146837u, 3066547347u, 0, COS_TOLERANCE, 0},
+{ 952, 1068068480u, 1061628117u, 3248859043u, 86776158u, 1072690661u, 1965881568u, 0, COS_TOLERANCE, 0},
+{ 953, 3208484674u, 938869114u, 1087911145u, 2416710759u, 1072693247u, 3376814610u, 0, COS_TOLERANCE, 0},
+{ 954, 1095576832u, 2970853959u, 3239543429u, 1887505029u, 1072335093u, 1226745687u, 0, COS_TOLERANCE, 0},
+{ 955, 3237728787u, 1337895935u, 1076463812u, 1172733328u, 1070268616u, 1986930081u, 0, COS_TOLERANCE, 0},
+{ 956, 1049139928u, 1469010822u, 3229583535u, 551399515u, 1072693247u, 4294967145u, 0, COS_TOLERANCE, 0},
+{ 957, 1074118123u, 1849711538u, 1049053713u, 1744276190u, 3219991316u, 2380401456u, 0, COS_TOLERANCE, 0},
+{ 958, 3242138780u, 2976596113u, 3192137295u, 3033242648u, 3220172732u, 172513277u, 0, COS_TOLERANCE, 0},
+{ 959, 1098698481u, 876810930u, 3197470945u, 2571587447u, 1071759494u, 3992980376u, 0, COS_TOLERANCE, 0},
+{ 960, 3241770810u, 4007797282u, 3225853845u, 4069319648u, 3217749279u, 4237776152u, 0, COS_TOLERANCE, 0},
+{ 961, 1047279982u, 3840538373u, 1043189552u, 3668774580u, 1072693247u, 4294967284u, 0, COS_TOLERANCE, 0},
+{ 962, 3217611704u, 200857661u, 3229758439u, 3359367736u, 1072653824u, 1586377961u, 0, COS_TOLERANCE, 0},
+{ 963, 3248797869u, 111868139u, 3227902082u, 2366064003u, 1067852060u, 2375960071u, 0, COS_TOLERANCE, 0},
+{ 964, 1044195166u, 3510904416u, 3222131653u, 3822770497u, 1072693248u, 0u, 0, COS_TOLERANCE, 0},
+{ 965, 3242675715u, 789151814u, 1099269239u, 2958956055u, 3219973609u, 4239809652u, 0, COS_TOLERANCE, 0},
+{ 966, 1084679320u, 722163228u, 1105524559u, 1534462169u, 3219527636u, 416062612u, 0, COS_TOLERANCE, 0},
+{ 967, 1046586062u, 2207037106u, 3208952465u, 1231254630u, 1072693247u, 4294967291u, 0, COS_TOLERANCE, 0},
+{ 968, 3197884060u, 3838689849u, 3198769679u, 1302617170u, 1072693247u, 4294966521u, 0, COS_TOLERANCE, 0},
+{ 969, 1085938906u, 2527556476u, 3240373426u, 124352692u, 1072479604u, 998241152u, 0, COS_TOLERANCE, 0},
+{ 970, 3199540805u, 3502371499u, 1043411944u, 4190072016u, 1072693247u, 4294960160u, 0, COS_TOLERANCE, 0},
+{ 971, 1064676142u, 1798470077u, 3200116917u, 3421833729u, 1072693218u, 2810393116u, 0, COS_TOLERANCE, 0},
+{ 972, 3193514956u, 3653237931u, 3204255012u, 3683870669u, 1072693247u, 4294967294u, 0, COS_TOLERANCE, 0},
+{ 973, 1053588582u, 376530104u, 1073853547u, 565755892u, 1072693247u, 4294915363u, 0, COS_TOLERANCE, 0},
+{ 974, 3242503851u, 558292492u, 1051772749u, 4267873474u, 3219791395u, 2281335438u, 0, COS_TOLERANCE, 0},
+{ 975, 3224772709u, 509637100u, 3212030069u, 215050379u, 3220157703u, 999072486u, 0, COS_TOLERANCE, 0},
+{ 976, 1092057101u, 3571665665u, 3188628584u, 757824767u, 3220124006u, 1346258070u, 0, COS_TOLERANCE, 0},
+{ 977, 3214799337u, 998858159u, 1063077962u, 436029885u, 1072692351u, 1558924925u, 0, COS_TOLERANCE, 0},
+{ 978, 3205946965u, 996300405u, 3193842624u, 80548098u, 1072693247u, 4260694082u, 0, COS_TOLERANCE, 0},
+{ 979, 3228848840u, 3876129407u, 3215332180u, 2226970413u, 1066642218u, 885348726u, 0, COS_TOLERANCE, 0},
+{ 980, 3237608953u, 200013509u, 3224552716u, 414878724u, 1070775919u, 3997910947u, 0, COS_TOLERANCE, 0},
+{ 981, 3230617093u, 309319541u, 1048979765u, 1261662434u, 3219998391u, 1479904630u, 0, COS_TOLERANCE, 0},
+{ 982, 1089252639u, 4062255924u, 3224274128u, 4289485681u, 1072688786u, 2112803723u, 0, COS_TOLERANCE, 0},
+{ 983, 3236136084u, 1611969213u, 1053890378u, 3774617276u, 1071749943u, 2880945849u, 0, COS_TOLERANCE, 0},
+{ 984, 1080412763u, 1752164782u, 3239587974u, 612223386u, 3215050687u, 3711582370u, 0, COS_TOLERANCE, 0},
+{ 985, 1041545782u, 2024044989u, 1074932678u, 3259111307u, 1072693248u, 0u, 0, COS_TOLERANCE, 0},
+{ 986, 1053207518u, 2564965629u, 1093571065u, 169360454u, 1072693247u, 4294934401u, 0, COS_TOLERANCE, 0},
+{ 987, 1089599090u, 1860101737u, 3191222372u, 1676437468u, 1071819589u, 759885329u, 0, COS_TOLERANCE, 0},
+{ 988, 1059802968u, 588387057u, 3192103292u, 2495288012u, 1072693247u, 4099451717u, 0, COS_TOLERANCE, 0},
+{ 989, 3193155705u, 659070058u, 1073095700u, 1393632068u, 1072693247u, 4294967294u, 0, COS_TOLERANCE, 0},
+{ 990, 3217683263u, 4276187829u, 3217553330u, 1868253275u, 1072650297u, 34563883u, 0, COS_TOLERANCE, 0},
+{ 991, 3223220272u, 2085481575u, 3215994784u, 800910002u, 1070528947u, 553485972u, 0, COS_TOLERANCE, 0},
+{ 992, 1056934836u, 1950570756u, 3200582211u, 941022151u, 1072693247u, 4290891233u, 0, COS_TOLERANCE, 0},
+{ 993, 1057530368u, 2075610870u, 3250142022u, 3605152103u, 1072693247u, 4285025881u, 0, COS_TOLERANCE, 0},
+{ 994, 3200839250u, 3792931748u, 3204857863u, 804393211u, 1072693247u, 4294927517u, 0, COS_TOLERANCE, 0},
+{ 995, 3253646370u, 3430071177u, 3226288311u, 3652522729u, 3216626144u, 1955101016u, 0, COS_TOLERANCE, 0},
+{ 996, 3201314702u, 236884699u, 3227874605u, 2193269825u, 1072693247u, 4294900229u, 0, COS_TOLERANCE, 0},
+{ 997, 1064936593u, 2744231849u, 1046186036u, 771053722u, 1072693206u, 3877961227u, 0, COS_TOLERANCE, 0},
+{ 998, 1083996036u, 3000189819u, 1096500901u, 2057239777u, 1072631052u, 3150737220u, 0, COS_TOLERANCE, 0},
+{ 999, 1093835581u, 205759408u, 3244643377u, 2702292618u, 1070705706u, 1138580641u, 0, COS_TOLERANCE, 0},
+
+
+// AUTOMATICALLY GENERATED VECTORS STOP
+
+};
+
+#endif // CYGONCE_LIBM_COS_H multiple inclusion protection
+
+// EOF cos.h
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/cosf.c b/ecos/packages/language/c/libm/current/tests/vectors/cosf.c
new file mode 100644
index 0000000..aa753e7
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/cosf.c
@@ -0,0 +1,115 @@
+//===========================================================================
+//
+// cosf.c
+//
+// Test of cosf() math library function
+//
+//===========================================================================
+// ####ECOSFGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSFGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// Declarations for test system:
+//
+// TESTCASE_TYPE=CYG_TEST_MODULE
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include <cyg/infra/testcase.h> // Test infrastructure
+#include <math.h> // Header for this package
+#include <sys/ieeefp.h> // Cyg_libm_ieee_float_shape_type
+#include "vectors/vector_support_float.h"// extra support for math tests
+
+#include "vectors/cosf.h"
+
+// FUNCTIONS
+
+static void
+test( CYG_ADDRWORD data )
+{
+ cyg_ucount32 vec_size;
+ cyg_bool ret;
+
+ vec_size = sizeof(cosf_vec) / sizeof(Cyg_libm_test_float_vec_t);
+ ret = doTestVecFloat( (CYG_ADDRWORD) &cosf, CYG_LIBM_TEST_VEC_FLOAT,
+ CYG_LIBM_TEST_VEC_NONE, CYG_LIBM_TEST_VEC_FLOAT,
+ &cosf_vec[0], vec_size );
+
+ if (ret==true)
+ {
+ CYG_TEST_PASS("cosf() is stable");
+ } // if
+ else
+ {
+ CYG_TEST_FAIL("cosf() failed tests");
+ } // else
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for Math "
+ "library cosf() function");
+} // test()
+
+
+int
+main(int argc, char *argv[])
+{
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for Math library "
+ "cosf() function");
+
+ START_TEST( test );
+
+ CYG_TEST_PASS_FINISH("Testing is not applicable to this configuration");
+
+} // main()
+
+
+// EOF cosf.c
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/cosf.h b/ecos/packages/language/c/libm/current/tests/vectors/cosf.h
new file mode 100644
index 0000000..ffeccbd
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/cosf.h
@@ -0,0 +1,1234 @@
+#ifndef CYGONCE_LIBM_COSF_H
+#define CYGONCE_LIBM_COSF_H
+//===========================================================================
+//
+// cosf.h
+//
+// Test vectors for testing of cosf() math library function
+//
+//===========================================================================
+// ####ECOSFGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSFGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage: #include "vectors/cosf.h"
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include "vectors/vector_support_float.h"// extra support for math tests
+
+#define COSF_TOLERANCE 1.0E4
+
+static const Cyg_libm_test_float_vec_t cosf_vec[] = {
+
+// AUTOMATICALLY GENERATED VECTORS START
+
+{0, 3214514586u, 0u, 1052346099u, 0, COSF_TOLERANCE, 0},
+{1, 3214430700u, 0u, 1052658226u, 0, COSF_TOLERANCE, 0},
+{2, 3214346813u, 0u, 1052969110u, 0, COSF_TOLERANCE, 0},
+{3, 3214262927u, 0u, 1053278711u, 0, COSF_TOLERANCE, 0},
+{4, 3214179041u, 0u, 1053587004u, 0, COSF_TOLERANCE, 0},
+{5, 3214095155u, 0u, 1053893957u, 0, COSF_TOLERANCE, 0},
+{6, 3214011269u, 0u, 1054199539u, 0, COSF_TOLERANCE, 0},
+{7, 3213927383u, 0u, 1054503720u, 0, COSF_TOLERANCE, 0},
+{8, 3213843497u, 0u, 1054806469u, 0, COSF_TOLERANCE, 0},
+{9, 3213759611u, 0u, 1055107756u, 0, COSF_TOLERANCE, 0},
+{10, 3213675725u, 0u, 1055407551u, 0, COSF_TOLERANCE, 0},
+{11, 3213591839u, 0u, 1055705825u, 0, COSF_TOLERANCE, 0},
+{12, 3213507953u, 0u, 1056002546u, 0, COSF_TOLERANCE, 0},
+{13, 3213424067u, 0u, 1056297686u, 0, COSF_TOLERANCE, 0},
+{14, 3213340180u, 0u, 1056591219u, 0, COSF_TOLERANCE, 0},
+{15, 3213256294u, 0u, 1056883107u, 0, COSF_TOLERANCE, 0},
+{16, 3213172408u, 0u, 1057068967u, 0, COSF_TOLERANCE, 0},
+{17, 3213088522u, 0u, 1057213227u, 0, COSF_TOLERANCE, 0},
+{18, 3213004636u, 0u, 1057356624u, 0, COSF_TOLERANCE, 0},
+{19, 3212920750u, 0u, 1057499142u, 0, COSF_TOLERANCE, 0},
+{20, 3212836864u, 0u, 1057640768u, 0, COSF_TOLERANCE, 0},
+{21, 3212669092u, 0u, 1057781488u, 0, COSF_TOLERANCE, 0},
+{22, 3212501320u, 0u, 1057921287u, 0, COSF_TOLERANCE, 0},
+{23, 3212333548u, 0u, 1058060152u, 0, COSF_TOLERANCE, 0},
+{24, 3212165775u, 0u, 1058198069u, 0, COSF_TOLERANCE, 0},
+{25, 3211998003u, 0u, 1058335023u, 0, COSF_TOLERANCE, 0},
+{26, 3211830231u, 0u, 1058471001u, 0, COSF_TOLERANCE, 0},
+{27, 3211662459u, 0u, 1058605990u, 0, COSF_TOLERANCE, 0},
+{28, 3211494687u, 0u, 1058739975u, 0, COSF_TOLERANCE, 0},
+{29, 3211326915u, 0u, 1058872945u, 0, COSF_TOLERANCE, 0},
+{30, 3211159142u, 0u, 1059004885u, 0, COSF_TOLERANCE, 0},
+{31, 3210991370u, 0u, 1059135782u, 0, COSF_TOLERANCE, 0},
+{32, 3210823598u, 0u, 1059265622u, 0, COSF_TOLERANCE, 0},
+{33, 3210655826u, 0u, 1059394394u, 0, COSF_TOLERANCE, 0},
+{34, 3210488054u, 0u, 1059522084u, 0, COSF_TOLERANCE, 0},
+{35, 3210320282u, 0u, 1059648679u, 0, COSF_TOLERANCE, 0},
+{36, 3210152509u, 0u, 1059774168u, 0, COSF_TOLERANCE, 0},
+{37, 3209984737u, 0u, 1059898537u, 0, COSF_TOLERANCE, 0},
+{38, 3209816965u, 0u, 1060021773u, 0, COSF_TOLERANCE, 0},
+{39, 3209649193u, 0u, 1060143864u, 0, COSF_TOLERANCE, 0},
+{40, 3209481421u, 0u, 1060264799u, 0, COSF_TOLERANCE, 0},
+{41, 3209313649u, 0u, 1060384565u, 0, COSF_TOLERANCE, 0},
+{42, 3209145876u, 0u, 1060503150u, 0, COSF_TOLERANCE, 0},
+{43, 3208978104u, 0u, 1060620543u, 0, COSF_TOLERANCE, 0},
+{44, 3208810332u, 0u, 1060736730u, 0, COSF_TOLERANCE, 0},
+{45, 3208642560u, 0u, 1060851702u, 0, COSF_TOLERANCE, 0},
+{46, 3208474788u, 0u, 1060965446u, 0, COSF_TOLERANCE, 0},
+{47, 3208307016u, 0u, 1061077952u, 0, COSF_TOLERANCE, 0},
+{48, 3208139244u, 0u, 1061189207u, 0, COSF_TOLERANCE, 0},
+{49, 3207971471u, 0u, 1061299201u, 0, COSF_TOLERANCE, 0},
+{50, 3207803699u, 0u, 1061407923u, 0, COSF_TOLERANCE, 0},
+{51, 3207635927u, 0u, 1061515361u, 0, COSF_TOLERANCE, 0},
+{52, 3207468155u, 0u, 1061621505u, 0, COSF_TOLERANCE, 0},
+{53, 3207300383u, 0u, 1061726345u, 0, COSF_TOLERANCE, 0},
+{54, 3207132611u, 0u, 1061829870u, 0, COSF_TOLERANCE, 0},
+{55, 3206964838u, 0u, 1061932070u, 0, COSF_TOLERANCE, 0},
+{56, 3206797066u, 0u, 1062032934u, 0, COSF_TOLERANCE, 0},
+{57, 3206629294u, 0u, 1062132452u, 0, COSF_TOLERANCE, 0},
+{58, 3206461522u, 0u, 1062230615u, 0, COSF_TOLERANCE, 0},
+{59, 3206293750u, 0u, 1062327412u, 0, COSF_TOLERANCE, 0},
+{60, 3206125978u, 0u, 1062422834u, 0, COSF_TOLERANCE, 0},
+{61, 3205958205u, 0u, 1062516872u, 0, COSF_TOLERANCE, 0},
+{62, 3205790433u, 0u, 1062609515u, 0, COSF_TOLERANCE, 0},
+{63, 3205622661u, 0u, 1062700755u, 0, COSF_TOLERANCE, 0},
+{64, 3205454889u, 0u, 1062790582u, 0, COSF_TOLERANCE, 0},
+{65, 3205287117u, 0u, 1062878988u, 0, COSF_TOLERANCE, 0},
+{66, 3205119345u, 0u, 1062965964u, 0, COSF_TOLERANCE, 0},
+{67, 3204951572u, 0u, 1063051501u, 0, COSF_TOLERANCE, 0},
+{68, 3204783800u, 0u, 1063135590u, 0, COSF_TOLERANCE, 0},
+{69, 3204616028u, 0u, 1063218223u, 0, COSF_TOLERANCE, 0},
+{70, 3204448256u, 0u, 1063299392u, 0, COSF_TOLERANCE, 0},
+{71, 3204112712u, 0u, 1063379089u, 0, COSF_TOLERANCE, 0},
+{72, 3203777167u, 0u, 1063457305u, 0, COSF_TOLERANCE, 0},
+{73, 3203441623u, 0u, 1063534034u, 0, COSF_TOLERANCE, 0},
+{74, 3203106079u, 0u, 1063609266u, 0, COSF_TOLERANCE, 0},
+{75, 3202770534u, 0u, 1063682996u, 0, COSF_TOLERANCE, 0},
+{76, 3202434990u, 0u, 1063755214u, 0, COSF_TOLERANCE, 0},
+{77, 3202099446u, 0u, 1063825915u, 0, COSF_TOLERANCE, 0},
+{78, 3201763901u, 0u, 1063895090u, 0, COSF_TOLERANCE, 0},
+{79, 3201428357u, 0u, 1063962734u, 0, COSF_TOLERANCE, 0},
+{80, 3201092813u, 0u, 1064028839u, 0, COSF_TOLERANCE, 0},
+{81, 3200757268u, 0u, 1064093399u, 0, COSF_TOLERANCE, 0},
+{82, 3200421724u, 0u, 1064156407u, 0, COSF_TOLERANCE, 0},
+{83, 3200086180u, 0u, 1064217857u, 0, COSF_TOLERANCE, 0},
+{84, 3199750636u, 0u, 1064277743u, 0, COSF_TOLERANCE, 0},
+{85, 3199415091u, 0u, 1064336059u, 0, COSF_TOLERANCE, 0},
+{86, 3199079547u, 0u, 1064392799u, 0, COSF_TOLERANCE, 0},
+{87, 3198744003u, 0u, 1064447957u, 0, COSF_TOLERANCE, 0},
+{88, 3198408458u, 0u, 1064501528u, 0, COSF_TOLERANCE, 0},
+{89, 3198072914u, 0u, 1064553506u, 0, COSF_TOLERANCE, 0},
+{90, 3197737370u, 0u, 1064603887u, 0, COSF_TOLERANCE, 0},
+{91, 3197401825u, 0u, 1064652665u, 0, COSF_TOLERANCE, 0},
+{92, 3197066281u, 0u, 1064699835u, 0, COSF_TOLERANCE, 0},
+{93, 3196730737u, 0u, 1064745392u, 0, COSF_TOLERANCE, 0},
+{94, 3196395192u, 0u, 1064789333u, 0, COSF_TOLERANCE, 0},
+{95, 3196059648u, 0u, 1064831653u, 0, COSF_TOLERANCE, 0},
+{96, 3195388559u, 0u, 1064872347u, 0, COSF_TOLERANCE, 0},
+{97, 3194717471u, 0u, 1064911411u, 0, COSF_TOLERANCE, 0},
+{98, 3194046382u, 0u, 1064948842u, 0, COSF_TOLERANCE, 0},
+{99, 3193375293u, 0u, 1064984636u, 0, COSF_TOLERANCE, 0},
+{100, 3192704205u, 0u, 1065018789u, 0, COSF_TOLERANCE, 0},
+{101, 3192033116u, 0u, 1065051297u, 0, COSF_TOLERANCE, 0},
+{102, 3191362028u, 0u, 1065082158u, 0, COSF_TOLERANCE, 0},
+{103, 3190690939u, 0u, 1065111369u, 0, COSF_TOLERANCE, 0},
+{104, 3190019850u, 0u, 1065138925u, 0, COSF_TOLERANCE, 0},
+{105, 3189348762u, 0u, 1065164826u, 0, COSF_TOLERANCE, 0},
+{106, 3188677673u, 0u, 1065189068u, 0, COSF_TOLERANCE, 0},
+{107, 3188006584u, 0u, 1065211648u, 0, COSF_TOLERANCE, 0},
+{108, 3186999951u, 0u, 1065232565u, 0, COSF_TOLERANCE, 0},
+{109, 3185657774u, 0u, 1065251816u, 0, COSF_TOLERANCE, 0},
+{110, 3184315597u, 0u, 1065269400u, 0, COSF_TOLERANCE, 0},
+{111, 3182973420u, 0u, 1065285314u, 0, COSF_TOLERANCE, 0},
+{112, 3181631242u, 0u, 1065299558u, 0, COSF_TOLERANCE, 0},
+{113, 3180289065u, 0u, 1065312129u, 0, COSF_TOLERANCE, 0},
+{114, 3178611343u, 0u, 1065323026u, 0, COSF_TOLERANCE, 0},
+{115, 3175926989u, 0u, 1065332249u, 0, COSF_TOLERANCE, 0},
+{116, 3173242634u, 0u, 1065339796u, 0, COSF_TOLERANCE, 0},
+{117, 3170222735u, 0u, 1065345667u, 0, COSF_TOLERANCE, 0},
+{118, 3164854026u, 0u, 1065349861u, 0, COSF_TOLERANCE, 0},
+{119, 3156465418u, 0u, 1065352377u, 0, COSF_TOLERANCE, 0},
+{120, 646742016u, 0u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{121, 1008981770u, 0u, 1065352377u, 0, COSF_TOLERANCE, 0},
+{122, 1017370378u, 0u, 1065349861u, 0, COSF_TOLERANCE, 0},
+{123, 1022739087u, 0u, 1065345667u, 0, COSF_TOLERANCE, 0},
+{124, 1025758986u, 0u, 1065339796u, 0, COSF_TOLERANCE, 0},
+{125, 1028443341u, 0u, 1065332249u, 0, COSF_TOLERANCE, 0},
+{126, 1031127695u, 0u, 1065323026u, 0, COSF_TOLERANCE, 0},
+{127, 1032805417u, 0u, 1065312129u, 0, COSF_TOLERANCE, 0},
+{128, 1034147594u, 0u, 1065299558u, 0, COSF_TOLERANCE, 0},
+{129, 1035489772u, 0u, 1065285314u, 0, COSF_TOLERANCE, 0},
+{130, 1036831949u, 0u, 1065269400u, 0, COSF_TOLERANCE, 0},
+{131, 1038174126u, 0u, 1065251816u, 0, COSF_TOLERANCE, 0},
+{132, 1039516303u, 0u, 1065232565u, 0, COSF_TOLERANCE, 0},
+{133, 1040522936u, 0u, 1065211648u, 0, COSF_TOLERANCE, 0},
+{134, 1041194025u, 0u, 1065189068u, 0, COSF_TOLERANCE, 0},
+{135, 1041865114u, 0u, 1065164826u, 0, COSF_TOLERANCE, 0},
+{136, 1042536202u, 0u, 1065138925u, 0, COSF_TOLERANCE, 0},
+{137, 1043207291u, 0u, 1065111369u, 0, COSF_TOLERANCE, 0},
+{138, 1043878380u, 0u, 1065082158u, 0, COSF_TOLERANCE, 0},
+{139, 1044549468u, 0u, 1065051297u, 0, COSF_TOLERANCE, 0},
+{140, 1045220557u, 0u, 1065018789u, 0, COSF_TOLERANCE, 0},
+{141, 1045891645u, 0u, 1064984636u, 0, COSF_TOLERANCE, 0},
+{142, 1046562734u, 0u, 1064948842u, 0, COSF_TOLERANCE, 0},
+{143, 1047233823u, 0u, 1064911411u, 0, COSF_TOLERANCE, 0},
+{144, 1047904911u, 0u, 1064872347u, 0, COSF_TOLERANCE, 0},
+{145, 1048576000u, 0u, 1064831653u, 0, COSF_TOLERANCE, 0},
+{146, 1048911544u, 0u, 1064789333u, 0, COSF_TOLERANCE, 0},
+{147, 1049247089u, 0u, 1064745392u, 0, COSF_TOLERANCE, 0},
+{148, 1049582633u, 0u, 1064699835u, 0, COSF_TOLERANCE, 0},
+{149, 1049918177u, 0u, 1064652665u, 0, COSF_TOLERANCE, 0},
+{150, 1050253722u, 0u, 1064603887u, 0, COSF_TOLERANCE, 0},
+{151, 1050589266u, 0u, 1064553506u, 0, COSF_TOLERANCE, 0},
+{152, 1050924810u, 0u, 1064501528u, 0, COSF_TOLERANCE, 0},
+{153, 1051260355u, 0u, 1064447957u, 0, COSF_TOLERANCE, 0},
+{154, 1051595899u, 0u, 1064392799u, 0, COSF_TOLERANCE, 0},
+{155, 1051931443u, 0u, 1064336059u, 0, COSF_TOLERANCE, 0},
+{156, 1052266988u, 0u, 1064277743u, 0, COSF_TOLERANCE, 0},
+{157, 1052602532u, 0u, 1064217857u, 0, COSF_TOLERANCE, 0},
+{158, 1052938076u, 0u, 1064156407u, 0, COSF_TOLERANCE, 0},
+{159, 1053273620u, 0u, 1064093399u, 0, COSF_TOLERANCE, 0},
+{160, 1053609165u, 0u, 1064028839u, 0, COSF_TOLERANCE, 0},
+{161, 1053944709u, 0u, 1063962734u, 0, COSF_TOLERANCE, 0},
+{162, 1054280253u, 0u, 1063895090u, 0, COSF_TOLERANCE, 0},
+{163, 1054615798u, 0u, 1063825915u, 0, COSF_TOLERANCE, 0},
+{164, 1054951342u, 0u, 1063755214u, 0, COSF_TOLERANCE, 0},
+{165, 1055286886u, 0u, 1063682996u, 0, COSF_TOLERANCE, 0},
+{166, 1055622431u, 0u, 1063609266u, 0, COSF_TOLERANCE, 0},
+{167, 1055957975u, 0u, 1063534034u, 0, COSF_TOLERANCE, 0},
+{168, 1056293519u, 0u, 1063457305u, 0, COSF_TOLERANCE, 0},
+{169, 1056629064u, 0u, 1063379089u, 0, COSF_TOLERANCE, 0},
+{170, 1056964608u, 0u, 1063299392u, 0, COSF_TOLERANCE, 0},
+{171, 1057132380u, 0u, 1063218223u, 0, COSF_TOLERANCE, 0},
+{172, 1057300152u, 0u, 1063135590u, 0, COSF_TOLERANCE, 0},
+{173, 1057467924u, 0u, 1063051501u, 0, COSF_TOLERANCE, 0},
+{174, 1057635697u, 0u, 1062965964u, 0, COSF_TOLERANCE, 0},
+{175, 1057803469u, 0u, 1062878988u, 0, COSF_TOLERANCE, 0},
+{176, 1057971241u, 0u, 1062790582u, 0, COSF_TOLERANCE, 0},
+{177, 1058139013u, 0u, 1062700755u, 0, COSF_TOLERANCE, 0},
+{178, 1058306785u, 0u, 1062609515u, 0, COSF_TOLERANCE, 0},
+{179, 1058474557u, 0u, 1062516872u, 0, COSF_TOLERANCE, 0},
+{180, 1058642330u, 0u, 1062422834u, 0, COSF_TOLERANCE, 0},
+{181, 1058810102u, 0u, 1062327412u, 0, COSF_TOLERANCE, 0},
+{182, 1058977874u, 0u, 1062230615u, 0, COSF_TOLERANCE, 0},
+{183, 1059145646u, 0u, 1062132452u, 0, COSF_TOLERANCE, 0},
+{184, 1059313418u, 0u, 1062032934u, 0, COSF_TOLERANCE, 0},
+{185, 1059481190u, 0u, 1061932070u, 0, COSF_TOLERANCE, 0},
+{186, 1059648963u, 0u, 1061829870u, 0, COSF_TOLERANCE, 0},
+{187, 1059816735u, 0u, 1061726345u, 0, COSF_TOLERANCE, 0},
+{188, 1059984507u, 0u, 1061621505u, 0, COSF_TOLERANCE, 0},
+{189, 1060152279u, 0u, 1061515361u, 0, COSF_TOLERANCE, 0},
+{190, 1060320051u, 0u, 1061407923u, 0, COSF_TOLERANCE, 0},
+{191, 1060487823u, 0u, 1061299201u, 0, COSF_TOLERANCE, 0},
+{192, 1060655596u, 0u, 1061189207u, 0, COSF_TOLERANCE, 0},
+{193, 1060823368u, 0u, 1061077952u, 0, COSF_TOLERANCE, 0},
+{194, 1060991140u, 0u, 1060965446u, 0, COSF_TOLERANCE, 0},
+{195, 1061158912u, 0u, 1060851702u, 0, COSF_TOLERANCE, 0},
+{196, 1061326684u, 0u, 1060736730u, 0, COSF_TOLERANCE, 0},
+{197, 1061494456u, 0u, 1060620543u, 0, COSF_TOLERANCE, 0},
+{198, 1061662228u, 0u, 1060503150u, 0, COSF_TOLERANCE, 0},
+{199, 1061830001u, 0u, 1060384565u, 0, COSF_TOLERANCE, 0},
+{200, 1061997773u, 0u, 1060264799u, 0, COSF_TOLERANCE, 0},
+{201, 1062165545u, 0u, 1060143864u, 0, COSF_TOLERANCE, 0},
+{202, 1062333317u, 0u, 1060021773u, 0, COSF_TOLERANCE, 0},
+{203, 1062501089u, 0u, 1059898537u, 0, COSF_TOLERANCE, 0},
+{204, 1062668861u, 0u, 1059774168u, 0, COSF_TOLERANCE, 0},
+{205, 1062836634u, 0u, 1059648679u, 0, COSF_TOLERANCE, 0},
+{206, 1063004406u, 0u, 1059522084u, 0, COSF_TOLERANCE, 0},
+{207, 1063172178u, 0u, 1059394394u, 0, COSF_TOLERANCE, 0},
+{208, 1063339950u, 0u, 1059265622u, 0, COSF_TOLERANCE, 0},
+{209, 1063507722u, 0u, 1059135782u, 0, COSF_TOLERANCE, 0},
+{210, 1063675494u, 0u, 1059004885u, 0, COSF_TOLERANCE, 0},
+{211, 1063843267u, 0u, 1058872945u, 0, COSF_TOLERANCE, 0},
+{212, 1064011039u, 0u, 1058739975u, 0, COSF_TOLERANCE, 0},
+{213, 1064178811u, 0u, 1058605990u, 0, COSF_TOLERANCE, 0},
+{214, 1064346583u, 0u, 1058471001u, 0, COSF_TOLERANCE, 0},
+{215, 1064514355u, 0u, 1058335023u, 0, COSF_TOLERANCE, 0},
+{216, 1064682127u, 0u, 1058198069u, 0, COSF_TOLERANCE, 0},
+{217, 1064849900u, 0u, 1058060152u, 0, COSF_TOLERANCE, 0},
+{218, 1065017672u, 0u, 1057921287u, 0, COSF_TOLERANCE, 0},
+{219, 1065185444u, 0u, 1057781488u, 0, COSF_TOLERANCE, 0},
+{220, 1065353216u, 0u, 1057640768u, 0, COSF_TOLERANCE, 0},
+{221, 1065437102u, 0u, 1057499142u, 0, COSF_TOLERANCE, 0},
+{222, 1065520988u, 0u, 1057356624u, 0, COSF_TOLERANCE, 0},
+{223, 1065604874u, 0u, 1057213227u, 0, COSF_TOLERANCE, 0},
+{224, 1065688760u, 0u, 1057068967u, 0, COSF_TOLERANCE, 0},
+{225, 1065772646u, 0u, 1056883107u, 0, COSF_TOLERANCE, 0},
+{226, 1065856532u, 0u, 1056591219u, 0, COSF_TOLERANCE, 0},
+{227, 1065940419u, 0u, 1056297686u, 0, COSF_TOLERANCE, 0},
+{228, 1066024305u, 0u, 1056002546u, 0, COSF_TOLERANCE, 0},
+{229, 1066108191u, 0u, 1055705825u, 0, COSF_TOLERANCE, 0},
+{230, 1066192077u, 0u, 1055407551u, 0, COSF_TOLERANCE, 0},
+{231, 1066275963u, 0u, 1055107756u, 0, COSF_TOLERANCE, 0},
+{232, 1066359849u, 0u, 1054806469u, 0, COSF_TOLERANCE, 0},
+{233, 1066443735u, 0u, 1054503720u, 0, COSF_TOLERANCE, 0},
+{234, 1066527621u, 0u, 1054199539u, 0, COSF_TOLERANCE, 0},
+{235, 1066611507u, 0u, 1053893957u, 0, COSF_TOLERANCE, 0},
+{236, 1066695393u, 0u, 1053587004u, 0, COSF_TOLERANCE, 0},
+{237, 1066779279u, 0u, 1053278711u, 0, COSF_TOLERANCE, 0},
+{238, 1066863165u, 0u, 1052969110u, 0, COSF_TOLERANCE, 0},
+{239, 1066947052u, 0u, 1052658226u, 0, COSF_TOLERANCE, 0},
+{240, 3234402267u, 0u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{241, 3226013659u, 0u, 3212836864u, 0, COSF_TOLERANCE, 0},
+{242, 3217625051u, 0u, 3007036718u, 0, COSF_TOLERANCE, 0},
+{243, 0u, 0u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{244, 1070141403u, 0u, 3007036718u, 0, COSF_TOLERANCE, 0},
+{245, 1078530011u, 0u, 3212836864u, 0, COSF_TOLERANCE, 0},
+{246, 1083624420u, 0u, 843898414u, 0, COSF_TOLERANCE, 0},
+{247, 3253731328u, 0u, 1042150424u, 0, COSF_TOLERANCE, 0},
+{248, 3252840038u, 0u, 3212831339u, 0, COSF_TOLERANCE, 0},
+{249, 3251948749u, 0u, 1037281885u, 0, COSF_TOLERANCE, 0},
+{250, 3251057459u, 0u, 1064900864u, 0, COSF_TOLERANCE, 0},
+{251, 3250166170u, 0u, 3199552432u, 0, COSF_TOLERANCE, 0},
+{252, 3249274880u, 0u, 3210853658u, 0, COSF_TOLERANCE, 0},
+{253, 3248383590u, 0u, 1058328972u, 0, COSF_TOLERANCE, 0},
+{254, 3247492301u, 0u, 1060856784u, 0, COSF_TOLERANCE, 0},
+{255, 3246601011u, 0u, 3208977235u, 0, COSF_TOLERANCE, 0},
+{256, 3245028147u, 0u, 3205011706u, 0, COSF_TOLERANCE, 0},
+{257, 3243245568u, 0u, 1063800431u, 0, COSF_TOLERANCE, 0},
+{258, 3241462989u, 0u, 1050245183u, 0, COSF_TOLERANCE, 0},
+{259, 3239680410u, 0u, 3212579968u, 0, COSF_TOLERANCE, 0},
+{260, 3237792973u, 0u, 3174853843u, 0, COSF_TOLERANCE, 0},
+{261, 3234227814u, 0u, 1065295202u, 0, COSF_TOLERANCE, 0},
+{262, 3230662656u, 0u, 3193428699u, 0, COSF_TOLERANCE, 0},
+{263, 3224580915u, 0u, 3211867515u, 0, COSF_TOLERANCE, 0},
+{264, 3213675725u, 0u, 1055407551u, 0, COSF_TOLERANCE, 0},
+{265, 1058642330u, 0u, 1062422834u, 0, COSF_TOLERANCE, 0},
+{266, 1075000115u, 0u, 3207237904u, 0, COSF_TOLERANCE, 0},
+{267, 1082130432u, 0u, 3207025968u, 0, COSF_TOLERANCE, 0},
+{268, 1085695590u, 0u, 1062580155u, 0, COSF_TOLERANCE, 0},
+{269, 1089260749u, 0u, 1054902596u, 0, COSF_TOLERANCE, 0},
+{270, 1091672474u, 0u, 3211959780u, 0, COSF_TOLERANCE, 0},
+{271, 1093455053u, 0u, 3192323679u, 0, COSF_TOLERANCE, 0},
+{272, 1095237632u, 0u, 1065316277u, 0, COSF_TOLERANCE, 0},
+{273, 1097020211u, 0u, 3179321561u, 0, COSF_TOLERANCE, 0},
+{274, 1098802790u, 0u, 3212528459u, 0, COSF_TOLERANCE, 0},
+{275, 1099746509u, 0u, 1050782006u, 0, COSF_TOLERANCE, 0},
+{276, 1100637798u, 0u, 1063679759u, 0, COSF_TOLERANCE, 0},
+{277, 1101529088u, 0u, 3205249020u, 0, COSF_TOLERANCE, 0},
+{278, 1102420378u, 0u, 3208795393u, 0, COSF_TOLERANCE, 0},
+{279, 1103311667u, 0u, 1061047231u, 0, COSF_TOLERANCE, 0},
+{280, 1104202957u, 0u, 1058098048u, 0, COSF_TOLERANCE, 0},
+{281, 1105094246u, 0u, 3210984606u, 0, COSF_TOLERANCE, 0},
+{282, 1105985536u, 0u, 3199023149u, 0, COSF_TOLERANCE, 0},
+{283, 1107800421u, 1203999711u, 3209573648u, 0, COSF_TOLERANCE, 0},
+{284, 3196650934u, 896005582u, 1064755990u, 0, COSF_TOLERANCE, 0},
+{285, 3368700125u, 3308232444u, 3212415424u, 0, COSF_TOLERANCE, 0},
+{286, 1224242132u, 3061363425u, 1062694130u, 0, COSF_TOLERANCE, 0},
+{287, 3221027117u, 1284201705u, 3200909320u, 0, COSF_TOLERANCE, 0},
+{288, 1198712763u, 919636942u, 1058273289u, 0, COSF_TOLERANCE, 0},
+{289, 3159309973u, 852521077u, 1065351874u, 0, COSF_TOLERANCE, 0},
+{290, 954173073u, 850531830u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{291, 3090780435u, 1035260608u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{292, 966554515u, 3234538174u, 1065353215u, 0, COSF_TOLERANCE, 0},
+{293, 1312607135u, 1194999402u, 3211015536u, 0, COSF_TOLERANCE, 0},
+{294, 1166191415u, 1018661564u, 3212808685u, 0, COSF_TOLERANCE, 0},
+{295, 3111900019u, 1130472166u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{296, 1234419246u, 2984575812u, 1044118836u, 0, COSF_TOLERANCE, 0},
+{297, 1302107128u, 3370647675u, 1065238366u, 0, COSF_TOLERANCE, 0},
+{298, 1052801068u, 3039122570u, 1064181687u, 0, COSF_TOLERANCE, 0},
+{299, 1060849628u, 3081357692u, 1061060424u, 0, COSF_TOLERANCE, 0},
+{300, 3484320003u, 3033957825u, 3211534416u, 0, COSF_TOLERANCE, 0},
+{301, 3181522772u, 3305392896u, 1065300636u, 0, COSF_TOLERANCE, 0},
+{302, 882596369u, 1256676590u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{303, 1167223673u, 846102364u, 3195973898u, 0, COSF_TOLERANCE, 0},
+{304, 968192794u, 878547432u, 1065353215u, 0, COSF_TOLERANCE, 0},
+{305, 3122346862u, 1111584337u, 1065353213u, 0, COSF_TOLERANCE, 0},
+{306, 1052361612u, 1280025214u, 1064261014u, 0, COSF_TOLERANCE, 0},
+{307, 906701409u, 2968301825u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{308, 3471653172u, 1154138102u, 1028780596u, 0, COSF_TOLERANCE, 0},
+{309, 3231467496u, 934336592u, 1043244255u, 0, COSF_TOLERANCE, 0},
+{310, 1341514497u, 3466051188u, 3212270872u, 0, COSF_TOLERANCE, 0},
+{311, 1272351391u, 3373485062u, 1049939301u, 0, COSF_TOLERANCE, 0},
+{312, 3319724992u, 3354615790u, 3206332287u, 0, COSF_TOLERANCE, 0},
+{313, 917622040u, 1334966485u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{314, 940236348u, 3304072663u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{315, 3251541546u, 3174764041u, 1061509153u, 0, COSF_TOLERANCE, 0},
+{316, 3099843889u, 3355962282u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{317, 3110358400u, 851145088u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{318, 3371863479u, 1014861921u, 1038395093u, 0, COSF_TOLERANCE, 0},
+{319, 3204069187u, 966573255u, 1063389318u, 0, COSF_TOLERANCE, 0},
+{320, 1306460502u, 903489435u, 3197908639u, 0, COSF_TOLERANCE, 0},
+{321, 1197542187u, 3024598921u, 1062014001u, 0, COSF_TOLERANCE, 0},
+{322, 922888249u, 1139392309u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{323, 1184239996u, 3224098462u, 1057000820u, 0, COSF_TOLERANCE, 0},
+{324, 1252490238u, 1173619825u, 3212300137u, 0, COSF_TOLERANCE, 0},
+{325, 1001673627u, 3462631271u, 1065352962u, 0, COSF_TOLERANCE, 0},
+{326, 976098044u, 1151967422u, 1065353212u, 0, COSF_TOLERANCE, 0},
+{327, 941796645u, 886451963u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{328, 3287199470u, 854245542u, 1065150928u, 0, COSF_TOLERANCE, 0},
+{329, 893184329u, 1243067084u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{330, 1143233714u, 1007268238u, 3207062841u, 0, COSF_TOLERANCE, 0},
+{331, 1139941253u, 1147688821u, 1063748220u, 0, COSF_TOLERANCE, 0},
+{332, 3143717025u, 3234638157u, 1065353117u, 0, COSF_TOLERANCE, 0},
+{333, 3048866608u, 3449209899u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{334, 3240298487u, 1020260821u, 3208166309u, 0, COSF_TOLERANCE, 0},
+{335, 1288902137u, 3123875978u, 3207694694u, 0, COSF_TOLERANCE, 0},
+{336, 1333134799u, 1338107877u, 1056301331u, 0, COSF_TOLERANCE, 0},
+{337, 1187847971u, 1317663644u, 3197338100u, 0, COSF_TOLERANCE, 0},
+{338, 1038851706u, 1327544110u, 1065242306u, 0, COSF_TOLERANCE, 0},
+{339, 3329354473u, 3165437289u, 1058212602u, 0, COSF_TOLERANCE, 0},
+{340, 3077218579u, 1308397879u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{341, 1309289088u, 1019883016u, 3206861402u, 0, COSF_TOLERANCE, 0},
+{342, 3444653659u, 1279248024u, 3205948454u, 0, COSF_TOLERANCE, 0},
+{343, 3405585402u, 2962345057u, 1049586375u, 0, COSF_TOLERANCE, 0},
+{344, 3106647724u, 853848387u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{345, 1106778573u, 3304487767u, 1064007007u, 0, COSF_TOLERANCE, 0},
+{346, 1140567947u, 3069174149u, 1061226693u, 0, COSF_TOLERANCE, 0},
+{347, 1238569473u, 873035665u, 1063385096u, 0, COSF_TOLERANCE, 0},
+{348, 3154871957u, 1276671061u, 1065352608u, 0, COSF_TOLERANCE, 0},
+{349, 1261071232u, 1182202773u, 3182360604u, 0, COSF_TOLERANCE, 0},
+{350, 1175011025u, 3029705783u, 1065054590u, 0, COSF_TOLERANCE, 0},
+{351, 1082692850u, 1211581107u, 3202090793u, 0, COSF_TOLERANCE, 0},
+{352, 974547519u, 3475164509u, 1065353213u, 0, COSF_TOLERANCE, 0},
+{353, 3058097085u, 3104309359u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{354, 3107252546u, 1071134451u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{355, 3096032662u, 2976848821u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{356, 3197942144u, 3094120030u, 1064573331u, 0, COSF_TOLERANCE, 0},
+{357, 3403348556u, 3184653669u, 1019220617u, 0, COSF_TOLERANCE, 0},
+{358, 3182301130u, 3460764044u, 1065292658u, 0, COSF_TOLERANCE, 0},
+{359, 1136411063u, 1118097422u, 1063474921u, 0, COSF_TOLERANCE, 0},
+{360, 3239231622u, 3302723069u, 3212303719u, 0, COSF_TOLERANCE, 0},
+{361, 3340615780u, 870350055u, 3207952094u, 0, COSF_TOLERANCE, 0},
+{362, 998567360u, 2995278691u, 1065353078u, 0, COSF_TOLERANCE, 0},
+{363, 3417964312u, 1321337529u, 1062054343u, 0, COSF_TOLERANCE, 0},
+{364, 3109481038u, 1143864063u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{365, 1148867223u, 1256486202u, 3206780400u, 0, COSF_TOLERANCE, 0},
+{366, 989687421u, 3372681320u, 1065353185u, 0, COSF_TOLERANCE, 0},
+{367, 1152956913u, 3166480640u, 1050381098u, 0, COSF_TOLERANCE, 0},
+{368, 892922651u, 3373029087u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{369, 1109627625u, 1314158257u, 3212813517u, 0, COSF_TOLERANCE, 0},
+{370, 1307091856u, 1103202538u, 1044886424u, 0, COSF_TOLERANCE, 0},
+{371, 1077234132u, 3272167130u, 3212042460u, 0, COSF_TOLERANCE, 0},
+{372, 1142167709u, 1096445242u, 3192244228u, 0, COSF_TOLERANCE, 0},
+{373, 3426232834u, 1036705270u, 3202908511u, 0, COSF_TOLERANCE, 0},
+{374, 3368566779u, 967249167u, 3203307532u, 0, COSF_TOLERANCE, 0},
+{375, 3030724760u, 3349013503u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{376, 1138741813u, 3073453199u, 1024337281u, 0, COSF_TOLERANCE, 0},
+{377, 982950501u, 982549888u, 1065353205u, 0, COSF_TOLERANCE, 0},
+{378, 1142981585u, 1015602236u, 1053132429u, 0, COSF_TOLERANCE, 0},
+{379, 3347165962u, 3135486696u, 1058907526u, 0, COSF_TOLERANCE, 0},
+{380, 1009535440u, 3381353228u, 1065352288u, 0, COSF_TOLERANCE, 0},
+{381, 3103736980u, 3402950505u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{382, 3126820946u, 1077903063u, 1065353210u, 0, COSF_TOLERANCE, 0},
+{383, 3473956030u, 976891930u, 3208545071u, 0, COSF_TOLERANCE, 0},
+{384, 3349098349u, 1055327704u, 3210674348u, 0, COSF_TOLERANCE, 0},
+{385, 3152729489u, 1060398533u, 1065352785u, 0, COSF_TOLERANCE, 0},
+{386, 945568720u, 3313485084u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{387, 3345489836u, 1108392401u, 3211189684u, 0, COSF_TOLERANCE, 0},
+{388, 940893161u, 1137000140u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{389, 976791751u, 3230678102u, 1065353212u, 0, COSF_TOLERANCE, 0},
+{390, 1004442355u, 3036510596u, 1065352829u, 0, COSF_TOLERANCE, 0},
+{391, 1108485380u, 3173536878u, 1053495770u, 0, COSF_TOLERANCE, 0},
+{392, 1061834641u, 972388096u, 1060381268u, 0, COSF_TOLERANCE, 0},
+{393, 3381268392u, 1146976802u, 1034505730u, 0, COSF_TOLERANCE, 0},
+{394, 1087189715u, 2952822478u, 1065213234u, 0, COSF_TOLERANCE, 0},
+{395, 3212952285u, 3329407365u, 1057445670u, 0, COSF_TOLERANCE, 0},
+{396, 1000611335u, 857599439u, 1065353006u, 0, COSF_TOLERANCE, 0},
+{397, 3466188568u, 1041678304u, 1047557643u, 0, COSF_TOLERANCE, 0},
+{398, 3072456205u, 3160254633u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{399, 3319315516u, 3422089012u, 1055189382u, 0, COSF_TOLERANCE, 0},
+{400, 935938416u, 1146676692u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{401, 3212614372u, 1152633030u, 1057827186u, 0, COSF_TOLERANCE, 0},
+{402, 1315030230u, 3336225884u, 3211146944u, 0, COSF_TOLERANCE, 0},
+{403, 1134593658u, 3456812581u, 1062345193u, 0, COSF_TOLERANCE, 0},
+{404, 977281449u, 879922831u, 1065353211u, 0, COSF_TOLERANCE, 0},
+{405, 1086198791u, 920125958u, 1064374585u, 0, COSF_TOLERANCE, 0},
+{406, 1255152035u, 851754050u, 3208616871u, 0, COSF_TOLERANCE, 0},
+{407, 1135271264u, 3284878412u, 3208847073u, 0, COSF_TOLERANCE, 0},
+{408, 1094190727u, 1056854532u, 1056451200u, 0, COSF_TOLERANCE, 0},
+{409, 1294665325u, 991185677u, 1060440078u, 0, COSF_TOLERANCE, 0},
+{410, 1036608591u, 805416536u, 1065272164u, 0, COSF_TOLERANCE, 0},
+{411, 3229998064u, 825237063u, 3204530827u, 0, COSF_TOLERANCE, 0},
+{412, 3439134022u, 1043829691u, 3205512708u, 0, COSF_TOLERANCE, 0},
+{413, 3073083133u, 1317170485u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{414, 1325668223u, 970681762u, 3207285914u, 0, COSF_TOLERANCE, 0},
+{415, 1092037607u, 1027330835u, 3212832255u, 0, COSF_TOLERANCE, 0},
+{416, 3316278408u, 3455589207u, 1051135228u, 0, COSF_TOLERANCE, 0},
+{417, 3295436768u, 3129873731u, 3212713503u, 0, COSF_TOLERANCE, 0},
+{418, 1151984049u, 3074547120u, 3198035925u, 0, COSF_TOLERANCE, 0},
+{419, 1129287043u, 3076527544u, 1064992757u, 0, COSF_TOLERANCE, 0},
+{420, 1243664530u, 972879810u, 3208729331u, 0, COSF_TOLERANCE, 0},
+{421, 950829092u, 929114193u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{422, 1115471979u, 3047246262u, 1064300936u, 0, COSF_TOLERANCE, 0},
+{423, 3351092088u, 3024661404u, 3210066335u, 0, COSF_TOLERANCE, 0},
+{424, 3424479544u, 3312047722u, 3209978045u, 0, COSF_TOLERANCE, 0},
+{425, 3241193975u, 884465785u, 1027867782u, 0, COSF_TOLERANCE, 0},
+{426, 1030934236u, 1045139240u, 1065323747u, 0, COSF_TOLERANCE, 0},
+{427, 3131791114u, 3408392958u, 1065353202u, 0, COSF_TOLERANCE, 0},
+{428, 1025254314u, 3057812821u, 1065341028u, 0, COSF_TOLERANCE, 0},
+{429, 1110545760u, 3240144177u, 1063938715u, 0, COSF_TOLERANCE, 0},
+{430, 3180213739u, 1108793820u, 1065312785u, 0, COSF_TOLERANCE, 0},
+{431, 3361976590u, 3138179993u, 1064942857u, 0, COSF_TOLERANCE, 0},
+{432, 881280146u, 3421884736u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{433, 1304154705u, 2961937089u, 1065316526u, 0, COSF_TOLERANCE, 0},
+{434, 3264443610u, 3222916705u, 3184186617u, 0, COSF_TOLERANCE, 0},
+{435, 3374550627u, 3055856293u, 1064004706u, 0, COSF_TOLERANCE, 0},
+{436, 899599265u, 3240118211u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{437, 1268194719u, 1332489410u, 1065342423u, 0, COSF_TOLERANCE, 0},
+{438, 1133420220u, 1245770860u, 3209468141u, 0, COSF_TOLERANCE, 0},
+{439, 1161858787u, 815362075u, 3205516474u, 0, COSF_TOLERANCE, 0},
+{440, 3184462258u, 1263529646u, 1065267560u, 0, COSF_TOLERANCE, 0},
+{441, 3295996963u, 3453334307u, 1063400576u, 0, COSF_TOLERANCE, 0},
+{442, 1270887389u, 1156123987u, 3212780406u, 0, COSF_TOLERANCE, 0},
+{443, 3325193181u, 993979179u, 3208634331u, 0, COSF_TOLERANCE, 0},
+{444, 925657343u, 1315159742u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{445, 3115275450u, 3008350271u, 1065353215u, 0, COSF_TOLERANCE, 0},
+{446, 3116607482u, 3224327456u, 1065353215u, 0, COSF_TOLERANCE, 0},
+{447, 3187892415u, 3118097315u, 1065215324u, 0, COSF_TOLERANCE, 0},
+{448, 1189120494u, 978961471u, 3184887707u, 0, COSF_TOLERANCE, 0},
+{449, 889030794u, 3129523970u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{450, 1323529208u, 3100744786u, 3202135945u, 0, COSF_TOLERANCE, 0},
+{451, 3465768388u, 3190881451u, 3212262509u, 0, COSF_TOLERANCE, 0},
+{452, 3426099899u, 1118756120u, 3207882716u, 0, COSF_TOLERANCE, 0},
+{453, 3224857113u, 3398166843u, 3212203079u, 0, COSF_TOLERANCE, 0},
+{454, 1065798296u, 816191940u, 1056794032u, 0, COSF_TOLERANCE, 0},
+{455, 3328989444u, 850266225u, 3210663044u, 0, COSF_TOLERANCE, 0},
+{456, 3357819026u, 3148475462u, 1064572647u, 0, COSF_TOLERANCE, 0},
+{457, 1273397670u, 901308750u, 3166465533u, 0, COSF_TOLERANCE, 0},
+{458, 3424831780u, 1304806106u, 1065348980u, 0, COSF_TOLERANCE, 0},
+{459, 1257596246u, 3420832544u, 3165249336u, 0, COSF_TOLERANCE, 0},
+{460, 1051773536u, 896271348u, 1064362957u, 0, COSF_TOLERANCE, 0},
+{461, 3294752507u, 3113225954u, 1057002112u, 0, COSF_TOLERANCE, 0},
+{462, 3424848725u, 2973850350u, 3212724060u, 0, COSF_TOLERANCE, 0},
+{463, 1090870906u, 3294742905u, 3203212900u, 0, COSF_TOLERANCE, 0},
+{464, 1227582289u, 1208979668u, 1064452265u, 0, COSF_TOLERANCE, 0},
+{465, 1272325814u, 3004311296u, 3208642571u, 0, COSF_TOLERANCE, 0},
+{466, 3359508271u, 859974315u, 1030101838u, 0, COSF_TOLERANCE, 0},
+{467, 1137854355u, 3335041917u, 1063934227u, 0, COSF_TOLERANCE, 0},
+{468, 3440773058u, 3204192793u, 3205801340u, 0, COSF_TOLERANCE, 0},
+{469, 3101598400u, 3057760708u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{470, 3451216836u, 3347783723u, 3211742026u, 0, COSF_TOLERANCE, 0},
+{471, 3437062994u, 3106834845u, 1062562754u, 0, COSF_TOLERANCE, 0},
+{472, 1131196082u, 1164573183u, 3203988310u, 0, COSF_TOLERANCE, 0},
+{473, 3177294154u, 1282436638u, 1065327761u, 0, COSF_TOLERANCE, 0},
+{474, 3258097678u, 1305882290u, 1061684501u, 0, COSF_TOLERANCE, 0},
+{475, 3460915348u, 1219372260u, 3198742303u, 0, COSF_TOLERANCE, 0},
+{476, 3303035472u, 3153013020u, 3208641160u, 0, COSF_TOLERANCE, 0},
+{477, 1053698677u, 3284313107u, 1064011355u, 0, COSF_TOLERANCE, 0},
+{478, 3396166221u, 1201894512u, 1050395522u, 0, COSF_TOLERANCE, 0},
+{479, 3037541131u, 1085398440u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{480, 3458934263u, 1005577835u, 3210301928u, 0, COSF_TOLERANCE, 0},
+{481, 1065761827u, 3333928591u, 1056920632u, 0, COSF_TOLERANCE, 0},
+{482, 3025843188u, 820250112u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{483, 926665223u, 3150815797u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{484, 1199816046u, 3143776186u, 1059457067u, 0, COSF_TOLERANCE, 0},
+{485, 3333779015u, 952421041u, 1063412304u, 0, COSF_TOLERANCE, 0},
+{486, 948398145u, 3238273189u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{487, 3054021468u, 1270257895u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{488, 1080781593u, 1213908300u, 3210476977u, 0, COSF_TOLERANCE, 0},
+{489, 3164749613u, 3010837763u, 1065349926u, 0, COSF_TOLERANCE, 0},
+{490, 3235326590u, 1271705594u, 1063749838u, 0, COSF_TOLERANCE, 0},
+{491, 3118883815u, 1051802647u, 1065353214u, 0, COSF_TOLERANCE, 0},
+{492, 965378004u, 1292594138u, 1065353215u, 0, COSF_TOLERANCE, 0},
+{493, 3226990408u, 1110755136u, 3212383995u, 0, COSF_TOLERANCE, 0},
+{494, 3117098218u, 1122474770u, 1065353215u, 0, COSF_TOLERANCE, 0},
+{495, 1283624229u, 906796922u, 3211981483u, 0, COSF_TOLERANCE, 0},
+{496, 970649315u, 1078286437u, 1065353215u, 0, COSF_TOLERANCE, 0},
+{497, 959776291u, 3280345347u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{498, 3341117305u, 3294559023u, 1055798833u, 0, COSF_TOLERANCE, 0},
+{499, 1270734970u, 3355874874u, 1065302344u, 0, COSF_TOLERANCE, 0},
+{500, 3454816067u, 868771977u, 3212739421u, 0, COSF_TOLERANCE, 0},
+{501, 917206623u, 1172710814u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{502, 1106502045u, 1290849316u, 1058595715u, 0, COSF_TOLERANCE, 0},
+{503, 1157598381u, 3309023746u, 3207978544u, 0, COSF_TOLERANCE, 0},
+{504, 3335234513u, 1002337336u, 3212728047u, 0, COSF_TOLERANCE, 0},
+{505, 1279489061u, 1006049444u, 3188087006u, 0, COSF_TOLERANCE, 0},
+{506, 3157416480u, 1309984610u, 1065352222u, 0, COSF_TOLERANCE, 0},
+{507, 3143920719u, 3131608518u, 1065353114u, 0, COSF_TOLERANCE, 0},
+{508, 1233171235u, 826460580u, 3208947956u, 0, COSF_TOLERANCE, 0},
+{509, 1148920078u, 1007674793u, 1060346730u, 0, COSF_TOLERANCE, 0},
+{510, 3064988156u, 3230867340u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{511, 3083619260u, 1159415661u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{512, 1109198803u, 1221754614u, 1011415968u, 0, COSF_TOLERANCE, 0},
+{513, 3219949483u, 1056167693u, 3196850244u, 0, COSF_TOLERANCE, 0},
+{514, 3361149474u, 3387342069u, 1062393895u, 0, COSF_TOLERANCE, 0},
+{515, 1207502108u, 3388073586u, 1065089606u, 0, COSF_TOLERANCE, 0},
+{516, 1000014431u, 831213088u, 1065353028u, 0, COSF_TOLERANCE, 0},
+{517, 3161756316u, 3143659754u, 1065351347u, 0, COSF_TOLERANCE, 0},
+{518, 3160728744u, 3382954009u, 1065351579u, 0, COSF_TOLERANCE, 0},
+{519, 1234530539u, 1079988872u, 1061039433u, 0, COSF_TOLERANCE, 0},
+{520, 1017843965u, 1193076204u, 1065349558u, 0, COSF_TOLERANCE, 0},
+{521, 951862956u, 1173464654u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{522, 3306328852u, 1118701064u, 1003885353u, 0, COSF_TOLERANCE, 0},
+{523, 1291910469u, 1211303367u, 1063595141u, 0, COSF_TOLERANCE, 0},
+{524, 3027442905u, 1173894400u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{525, 1131927531u, 3182962700u, 3211863029u, 0, COSF_TOLERANCE, 0},
+{526, 3449879391u, 991614550u, 1061755886u, 0, COSF_TOLERANCE, 0},
+{527, 970094304u, 3344590506u, 1065353215u, 0, COSF_TOLERANCE, 0},
+{528, 1125551064u, 3331248076u, 1064830894u, 0, COSF_TOLERANCE, 0},
+{529, 3427296372u, 3455289118u, 1065342989u, 0, COSF_TOLERANCE, 0},
+{530, 1198917460u, 1327195159u, 1061636200u, 0, COSF_TOLERANCE, 0},
+{531, 3201603336u, 820047343u, 1063927651u, 0, COSF_TOLERANCE, 0},
+{532, 3114686212u, 3476082461u, 1065353215u, 0, COSF_TOLERANCE, 0},
+{533, 921940707u, 2967544056u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{534, 1091906532u, 3011904455u, 3212750410u, 0, COSF_TOLERANCE, 0},
+{535, 3393557778u, 3383396815u, 3211966318u, 0, COSF_TOLERANCE, 0},
+{536, 1276853215u, 873199561u, 1064578880u, 0, COSF_TOLERANCE, 0},
+{537, 3462778440u, 3349284325u, 1065155179u, 0, COSF_TOLERANCE, 0},
+{538, 3360170117u, 3048354042u, 3207160802u, 0, COSF_TOLERANCE, 0},
+{539, 3224245428u, 3271307999u, 3211367917u, 0, COSF_TOLERANCE, 0},
+{540, 1120124467u, 1135619937u, 3210924569u, 0, COSF_TOLERANCE, 0},
+{541, 1064364381u, 3180675544u, 1058456623u, 0, COSF_TOLERANCE, 0},
+{542, 1268744779u, 3328452652u, 3212264195u, 0, COSF_TOLERANCE, 0},
+{543, 1165195428u, 3390323168u, 1065343028u, 0, COSF_TOLERANCE, 0},
+{544, 3044092739u, 1106497311u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{545, 3149469534u, 1278465842u, 1065352948u, 0, COSF_TOLERANCE, 0},
+{546, 3247790039u, 909788142u, 1065077133u, 0, COSF_TOLERANCE, 0},
+{547, 3215244648u, 1083988595u, 1049581731u, 0, COSF_TOLERANCE, 0},
+{548, 3095275931u, 989153382u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{549, 3059688264u, 1117455718u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{550, 1212717473u, 837873779u, 3183067569u, 0, COSF_TOLERANCE, 0},
+{551, 3275973009u, 3450721670u, 1062400303u, 0, COSF_TOLERANCE, 0},
+{552, 3028857014u, 3188853813u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{553, 3391162308u, 1291220039u, 1056095531u, 0, COSF_TOLERANCE, 0},
+{554, 1044867873u, 3369493273u, 1065036078u, 0, COSF_TOLERANCE, 0},
+{555, 1089986803u, 3462160118u, 1037847106u, 0, COSF_TOLERANCE, 0},
+{556, 1296314700u, 2957454177u, 1063610521u, 0, COSF_TOLERANCE, 0},
+{557, 1251462432u, 3171021770u, 3204838869u, 0, COSF_TOLERANCE, 0},
+{558, 3485236902u, 980772835u, 3172410705u, 0, COSF_TOLERANCE, 0},
+{559, 3262169538u, 1268270462u, 3210791428u, 0, COSF_TOLERANCE, 0},
+{560, 3080852256u, 994641495u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{561, 1022211242u, 922124181u, 1065346153u, 0, COSF_TOLERANCE, 0},
+{562, 884661176u, 2985540645u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{563, 3071422941u, 3271100396u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{564, 989762529u, 3362011135u, 1065353184u, 0, COSF_TOLERANCE, 0},
+{565, 1295475718u, 3212305413u, 1064649568u, 0, COSF_TOLERANCE, 0},
+{566, 1002632518u, 3330388441u, 1065352919u, 0, COSF_TOLERANCE, 0},
+{567, 3404372005u, 3450484255u, 3187716709u, 0, COSF_TOLERANCE, 0},
+{568, 3158912530u, 3105501826u, 1065351951u, 0, COSF_TOLERANCE, 0},
+{569, 1125800069u, 3256265749u, 3211461461u, 0, COSF_TOLERANCE, 0},
+{570, 3138037576u, 3103365227u, 1065353178u, 0, COSF_TOLERANCE, 0},
+{571, 3108384823u, 1300246663u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{572, 999985470u, 3409354318u, 1065353029u, 0, COSF_TOLERANCE, 0},
+{573, 1189421739u, 1056599002u, 1062655041u, 0, COSF_TOLERANCE, 0},
+{574, 3075182644u, 3144159778u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{575, 3028099649u, 3391513557u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{576, 3132541814u, 3444521949u, 1065353200u, 0, COSF_TOLERANCE, 0},
+{577, 1164046161u, 3440635788u, 3204899255u, 0, COSF_TOLERANCE, 0},
+{578, 1292596266u, 3116569667u, 3206207983u, 0, COSF_TOLERANCE, 0},
+{579, 3469748379u, 3412765608u, 3209876572u, 0, COSF_TOLERANCE, 0},
+{580, 1314644642u, 3123051784u, 3212183739u, 0, COSF_TOLERANCE, 0},
+{581, 3399813173u, 828743798u, 3210005382u, 0, COSF_TOLERANCE, 0},
+{582, 948775569u, 3485444126u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{583, 1034611395u, 882288581u, 1065294825u, 0, COSF_TOLERANCE, 0},
+{584, 3489122735u, 3372450889u, 1062529522u, 0, COSF_TOLERANCE, 0},
+{585, 1181604787u, 3363067409u, 1051301464u, 0, COSF_TOLERANCE, 0},
+{586, 3059042077u, 3204983963u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{587, 1043691622u, 3402603223u, 1065090453u, 0, COSF_TOLERANCE, 0},
+{588, 1314588083u, 856187848u, 1047604398u, 0, COSF_TOLERANCE, 0},
+{589, 3141533334u, 3010142974u, 1065353144u, 0, COSF_TOLERANCE, 0},
+{590, 3157534378u, 3451674717u, 1065352202u, 0, COSF_TOLERANCE, 0},
+{591, 3400949680u, 3073750220u, 1031263669u, 0, COSF_TOLERANCE, 0},
+{592, 3365581801u, 1175843167u, 3183136117u, 0, COSF_TOLERANCE, 0},
+{593, 1110424755u, 3011308654u, 1065333876u, 0, COSF_TOLERANCE, 0},
+{594, 3189917167u, 927278934u, 1065142996u, 0, COSF_TOLERANCE, 0},
+{595, 969804941u, 3355439348u, 1065353215u, 0, COSF_TOLERANCE, 0},
+{596, 1139120919u, 3270515074u, 1062973618u, 0, COSF_TOLERANCE, 0},
+{597, 934308144u, 3118191228u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{598, 1220524226u, 1152648002u, 3211590558u, 0, COSF_TOLERANCE, 0},
+{599, 3162548604u, 3461790298u, 1065351147u, 0, COSF_TOLERANCE, 0},
+{600, 3382391700u, 3296962745u, 3184174453u, 0, COSF_TOLERANCE, 0},
+{601, 1156767533u, 1088986462u, 1036918171u, 0, COSF_TOLERANCE, 0},
+{602, 3079222483u, 3312324949u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{603, 994934087u, 967678094u, 1065353134u, 0, COSF_TOLERANCE, 0},
+{604, 3185240099u, 1123403720u, 1065257467u, 0, COSF_TOLERANCE, 0},
+{605, 3479873563u, 1246277393u, 3205786479u, 0, COSF_TOLERANCE, 0},
+{606, 3424264117u, 3434026174u, 3212822518u, 0, COSF_TOLERANCE, 0},
+{607, 3228365887u, 1216775310u, 3210266963u, 0, COSF_TOLERANCE, 0},
+{608, 1035909900u, 1249532942u, 1065280512u, 0, COSF_TOLERANCE, 0},
+{609, 3024951184u, 1247632131u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{610, 1212129651u, 3017366784u, 1064257239u, 0, COSF_TOLERANCE, 0},
+{611, 3125775254u, 955826310u, 1065353211u, 0, COSF_TOLERANCE, 0},
+{612, 1037464105u, 3121544932u, 1065261326u, 0, COSF_TOLERANCE, 0},
+{613, 1311706596u, 1254918706u, 3206439060u, 0, COSF_TOLERANCE, 0},
+{614, 918212457u, 1017468331u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{615, 1337315179u, 3461361185u, 3190319503u, 0, COSF_TOLERANCE, 0},
+{616, 1131358407u, 3325958870u, 1064040283u, 0, COSF_TOLERANCE, 0},
+{617, 1156517523u, 3343716230u, 3208051727u, 0, COSF_TOLERANCE, 0},
+{618, 3210802820u, 3207408574u, 1059281629u, 0, COSF_TOLERANCE, 0},
+{619, 3337499209u, 1226297264u, 3212835190u, 0, COSF_TOLERANCE, 0},
+{620, 3468429030u, 3253874001u, 3192807433u, 0, COSF_TOLERANCE, 0},
+{621, 3253515800u, 1189005947u, 3196174508u, 0, COSF_TOLERANCE, 0},
+{622, 3055299953u, 3047908678u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{623, 959956547u, 876324728u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{624, 3425290480u, 1139193797u, 3212772076u, 0, COSF_TOLERANCE, 0},
+{625, 1039917375u, 1122740999u, 1065226489u, 0, COSF_TOLERANCE, 0},
+{626, 3220979495u, 3429223871u, 3200734071u, 0, COSF_TOLERANCE, 0},
+{627, 1311016004u, 3334899880u, 3196914076u, 0, COSF_TOLERANCE, 0},
+{628, 1128016396u, 1105151547u, 1064440802u, 0, COSF_TOLERANCE, 0},
+{629, 3210335769u, 3100646155u, 1059637040u, 0, COSF_TOLERANCE, 0},
+{630, 3022705759u, 3404762495u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{631, 1206054701u, 826010009u, 3186703559u, 0, COSF_TOLERANCE, 0},
+{632, 3144504834u, 1162227076u, 1065353106u, 0, COSF_TOLERANCE, 0},
+{633, 1213609983u, 919983950u, 1041951181u, 0, COSF_TOLERANCE, 0},
+{634, 1246902946u, 3064047808u, 1062608718u, 0, COSF_TOLERANCE, 0},
+{635, 995850843u, 1332031130u, 1065353122u, 0, COSF_TOLERANCE, 0},
+{636, 3362082828u, 3374056268u, 1057834720u, 0, COSF_TOLERANCE, 0},
+{637, 1029480631u, 3047777170u, 1065328884u, 0, COSF_TOLERANCE, 0},
+{638, 3153568584u, 3106514232u, 1065352737u, 0, COSF_TOLERANCE, 0},
+{639, 3384988527u, 3109485565u, 3212834710u, 0, COSF_TOLERANCE, 0},
+{640, 1317696241u, 870681806u, 3206783984u, 0, COSF_TOLERANCE, 0},
+{641, 3235395924u, 1132055244u, 1063504955u, 0, COSF_TOLERANCE, 0},
+{642, 3341877624u, 2969495570u, 1059475152u, 0, COSF_TOLERANCE, 0},
+{643, 1228636133u, 886552820u, 3188646051u, 0, COSF_TOLERANCE, 0},
+{644, 3161654634u, 3335899347u, 1065351370u, 0, COSF_TOLERANCE, 0},
+{645, 3162655243u, 3307203982u, 1065351094u, 0, COSF_TOLERANCE, 0},
+{646, 1207246237u, 859223639u, 1054904154u, 0, COSF_TOLERANCE, 0},
+{647, 1165476654u, 3350219111u, 1063369616u, 0, COSF_TOLERANCE, 0},
+{648, 1215278023u, 3019755242u, 3198241437u, 0, COSF_TOLERANCE, 0},
+{649, 1017239798u, 3438501281u, 1065349942u, 0, COSF_TOLERANCE, 0},
+{650, 1149651309u, 970030475u, 1065211361u, 0, COSF_TOLERANCE, 0},
+{651, 1111943722u, 3122211334u, 1062993436u, 0, COSF_TOLERANCE, 0},
+{652, 1189849849u, 3382739134u, 1065290733u, 0, COSF_TOLERANCE, 0},
+{653, 3204848496u, 3141519085u, 1063103336u, 0, COSF_TOLERANCE, 0},
+{654, 1249758327u, 3104759211u, 1062600614u, 0, COSF_TOLERANCE, 0},
+{655, 3092982276u, 3445282331u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{656, 1168098747u, 1316854744u, 3194302932u, 0, COSF_TOLERANCE, 0},
+{657, 892549317u, 1179637545u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{658, 3301009024u, 3406174560u, 1023410660u, 0, COSF_TOLERANCE, 0},
+{659, 3233089227u, 1212652543u, 1062170837u, 0, COSF_TOLERANCE, 0},
+{660, 3218245284u, 1238873830u, 3180808519u, 0, COSF_TOLERANCE, 0},
+{661, 3215981890u, 3240474694u, 1044860168u, 0, COSF_TOLERANCE, 0},
+{662, 1266687209u, 3092038122u, 3203985802u, 0, COSF_TOLERANCE, 0},
+{663, 3487959775u, 3331372071u, 1049182218u, 0, COSF_TOLERANCE, 0},
+{664, 943645710u, 852875779u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{665, 3345065699u, 3282620725u, 1061200314u, 0, COSF_TOLERANCE, 0},
+{666, 935847271u, 1067255804u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{667, 3410336089u, 1111437780u, 3212712938u, 0, COSF_TOLERANCE, 0},
+{668, 3082940740u, 1336840432u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{669, 1141063391u, 1168908072u, 3211896554u, 0, COSF_TOLERANCE, 0},
+{670, 3059263153u, 3067795684u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{671, 3353679791u, 897158391u, 1059472758u, 0, COSF_TOLERANCE, 0},
+{672, 1001823878u, 1016826861u, 1065352955u, 0, COSF_TOLERANCE, 0},
+{673, 1009130212u, 1004302940u, 1065352354u, 0, COSF_TOLERANCE, 0},
+{674, 3367127535u, 943136342u, 1061178206u, 0, COSF_TOLERANCE, 0},
+{675, 1032920919u, 3449126417u, 1065311113u, 0, COSF_TOLERANCE, 0},
+{676, 3281952870u, 3147012185u, 3212817745u, 0, COSF_TOLERANCE, 0},
+{677, 1237868497u, 3048281802u, 3211939539u, 0, COSF_TOLERANCE, 0},
+{678, 1153753924u, 3322269242u, 3200943446u, 0, COSF_TOLERANCE, 0},
+{679, 1120261759u, 892210998u, 3173569917u, 0, COSF_TOLERANCE, 0},
+{680, 3226328360u, 3366432856u, 3212789662u, 0, COSF_TOLERANCE, 0},
+{681, 3349595986u, 3251588707u, 3205275061u, 0, COSF_TOLERANCE, 0},
+{682, 3166889490u, 3306023523u, 1065348468u, 0, COSF_TOLERANCE, 0},
+{683, 1087750238u, 1099325523u, 1064051307u, 0, COSF_TOLERANCE, 0},
+{684, 3121620061u, 3359488363u, 1065353213u, 0, COSF_TOLERANCE, 0},
+{685, 1066116543u, 3072159933u, 1055676197u, 0, COSF_TOLERANCE, 0},
+{686, 3210898034u, 2981803389u, 1059208147u, 0, COSF_TOLERANCE, 0},
+{687, 3051923237u, 3364074347u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{688, 1030612298u, 3345396001u, 1065324927u, 0, COSF_TOLERANCE, 0},
+{689, 1186234578u, 858134374u, 1054267135u, 0, COSF_TOLERANCE, 0},
+{690, 1331680743u, 1009396165u, 3206173269u, 0, COSF_TOLERANCE, 0},
+{691, 3060774997u, 1326067357u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{692, 887589411u, 1292305693u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{693, 1045232522u, 3234993273u, 1065018194u, 0, COSF_TOLERANCE, 0},
+{694, 3119858470u, 962515365u, 1065353214u, 0, COSF_TOLERANCE, 0},
+{695, 3349432725u, 928848003u, 3205415559u, 0, COSF_TOLERANCE, 0},
+{696, 912423027u, 3184646319u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{697, 3228795133u, 3273940030u, 3209280997u, 0, COSF_TOLERANCE, 0},
+{698, 3194674746u, 3112269709u, 1064913843u, 0, COSF_TOLERANCE, 0},
+{699, 3296784303u, 3276182352u, 1056949368u, 0, COSF_TOLERANCE, 0},
+{700, 965402291u, 3107104376u, 1065353215u, 0, COSF_TOLERANCE, 0},
+{701, 3388153589u, 3426245389u, 3209951206u, 0, COSF_TOLERANCE, 0},
+{702, 1133410485u, 3329658993u, 3205928783u, 0, COSF_TOLERANCE, 0},
+{703, 3136790322u, 1088652637u, 1065353186u, 0, COSF_TOLERANCE, 0},
+{704, 3369970587u, 959121458u, 3197103638u, 0, COSF_TOLERANCE, 0},
+{705, 1270451568u, 928393353u, 3206261789u, 0, COSF_TOLERANCE, 0},
+{706, 989498922u, 3088358419u, 1065353185u, 0, COSF_TOLERANCE, 0},
+{707, 1280215674u, 3148135875u, 1063832706u, 0, COSF_TOLERANCE, 0},
+{708, 1171873518u, 954709738u, 1064155935u, 0, COSF_TOLERANCE, 0},
+{709, 3298258100u, 935525182u, 1050519430u, 0, COSF_TOLERANCE, 0},
+{710, 3415208824u, 822843236u, 1055761783u, 0, COSF_TOLERANCE, 0},
+{711, 1001897182u, 3191875320u, 1065352952u, 0, COSF_TOLERANCE, 0},
+{712, 3152777939u, 3245830463u, 1065352782u, 0, COSF_TOLERANCE, 0},
+{713, 985903305u, 3333087577u, 1065353197u, 0, COSF_TOLERANCE, 0},
+{714, 3357328848u, 859306298u, 1065201471u, 0, COSF_TOLERANCE, 0},
+{715, 982612185u, 923582663u, 1065353206u, 0, COSF_TOLERANCE, 0},
+{716, 3267868136u, 1208301947u, 1061666965u, 0, COSF_TOLERANCE, 0},
+{717, 3319048157u, 1172271145u, 1064637121u, 0, COSF_TOLERANCE, 0},
+{718, 1144755661u, 860947435u, 3210782984u, 0, COSF_TOLERANCE, 0},
+{719, 898467286u, 839254959u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{720, 3301461672u, 1233693827u, 1064849129u, 0, COSF_TOLERANCE, 0},
+{721, 3364525678u, 3089849671u, 3212318569u, 0, COSF_TOLERANCE, 0},
+{722, 931441127u, 1133424555u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{723, 3146660041u, 3143695961u, 1065353058u, 0, COSF_TOLERANCE, 0},
+{724, 3467121799u, 3023584354u, 1065067045u, 0, COSF_TOLERANCE, 0},
+{725, 1151257041u, 3084216427u, 1055307869u, 0, COSF_TOLERANCE, 0},
+{726, 3097873255u, 3219266640u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{727, 3130670309u, 3192399254u, 1065353204u, 0, COSF_TOLERANCE, 0},
+{728, 1017573824u, 3130901062u, 1065349732u, 0, COSF_TOLERANCE, 0},
+{729, 1258369714u, 3462258576u, 3201969674u, 0, COSF_TOLERANCE, 0},
+{730, 1216602683u, 3371396332u, 3210050328u, 0, COSF_TOLERANCE, 0},
+{731, 3297265739u, 1214184410u, 3212702797u, 0, COSF_TOLERANCE, 0},
+{732, 1071940738u, 3311731012u, 3193566987u, 0, COSF_TOLERANCE, 0},
+{733, 922601356u, 3337171870u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{734, 3462285635u, 3444030332u, 3212427653u, 0, COSF_TOLERANCE, 0},
+{735, 3357177805u, 1085464241u, 3207190309u, 0, COSF_TOLERANCE, 0},
+{736, 3049120080u, 900832851u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{737, 1153863660u, 1011991342u, 1053945264u, 0, COSF_TOLERANCE, 0},
+{738, 3034243695u, 917098003u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{739, 1249365132u, 3278686216u, 3206794534u, 0, COSF_TOLERANCE, 0},
+{740, 3046215730u, 3211219980u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{741, 3047251716u, 1090787353u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{742, 3131219358u, 3471261157u, 1065353203u, 0, COSF_TOLERANCE, 0},
+{743, 3222096285u, 1198013705u, 3206036104u, 0, COSF_TOLERANCE, 0},
+{744, 1297708818u, 3079166173u, 3210136249u, 0, COSF_TOLERANCE, 0},
+{745, 3345532722u, 3383708463u, 1037468763u, 0, COSF_TOLERANCE, 0},
+{746, 3418753236u, 3481843070u, 1049116908u, 0, COSF_TOLERANCE, 0},
+{747, 1277417964u, 3487506626u, 3211166061u, 0, COSF_TOLERANCE, 0},
+{748, 987577257u, 1152077087u, 1065353192u, 0, COSF_TOLERANCE, 0},
+{749, 3161606610u, 3190282989u, 1065351382u, 0, COSF_TOLERANCE, 0},
+{750, 888030585u, 3062367380u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{751, 1043442869u, 3311393817u, 1065101303u, 0, COSF_TOLERANCE, 0},
+{752, 3320923228u, 3464544249u, 1034266674u, 0, COSF_TOLERANCE, 0},
+{753, 1337400405u, 3488844154u, 3212399289u, 0, COSF_TOLERANCE, 0},
+{754, 3400348640u, 3129868490u, 3212750692u, 0, COSF_TOLERANCE, 0},
+{755, 1250249095u, 1069023744u, 1064625332u, 0, COSF_TOLERANCE, 0},
+{756, 3284411233u, 1173613526u, 3211360322u, 0, COSF_TOLERANCE, 0},
+{757, 3020883322u, 2953622587u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{758, 1215968622u, 3469884568u, 3201990812u, 0, COSF_TOLERANCE, 0},
+{759, 3202319550u, 819117302u, 1063779709u, 0, COSF_TOLERANCE, 0},
+{760, 3061638260u, 3116222327u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{761, 1025404104u, 1066370251u, 1065340668u, 0, COSF_TOLERANCE, 0},
+{762, 3138086437u, 3195983510u, 1065353178u, 0, COSF_TOLERANCE, 0},
+{763, 3091024506u, 3456196859u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{764, 3362748242u, 3369843597u, 1062500671u, 0, COSF_TOLERANCE, 0},
+{765, 3099671635u, 3218383623u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{766, 3068014841u, 2978226656u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{767, 1252237719u, 1121169249u, 3193168278u, 0, COSF_TOLERANCE, 0},
+{768, 3327895594u, 1224511805u, 3210036731u, 0, COSF_TOLERANCE, 0},
+{769, 3082454432u, 889268276u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{770, 3396161504u, 1182798837u, 3212737452u, 0, COSF_TOLERANCE, 0},
+{771, 1099710167u, 887180181u, 1048526850u, 0, COSF_TOLERANCE, 0},
+{772, 1157186482u, 1288722647u, 3207798214u, 0, COSF_TOLERANCE, 0},
+{773, 1282110851u, 3176633124u, 1063172436u, 0, COSF_TOLERANCE, 0},
+{774, 3477008113u, 1331845018u, 1033803075u, 0, COSF_TOLERANCE, 0},
+{775, 3292127294u, 3409957764u, 3204259685u, 0, COSF_TOLERANCE, 0},
+{776, 1123357102u, 3281307320u, 3212835571u, 0, COSF_TOLERANCE, 0},
+{777, 1106837025u, 3088080674u, 1064643809u, 0, COSF_TOLERANCE, 0},
+{778, 1049949008u, 1130799489u, 1064648250u, 0, COSF_TOLERANCE, 0},
+{779, 1253017688u, 942062372u, 3202388818u, 0, COSF_TOLERANCE, 0},
+{780, 1108543194u, 3281299199u, 1058438173u, 0, COSF_TOLERANCE, 0},
+{781, 3087985411u, 1238341456u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{782, 3163283126u, 1328636961u, 1065350771u, 0, COSF_TOLERANCE, 0},
+{783, 1160162706u, 1264067367u, 3211737515u, 0, COSF_TOLERANCE, 0},
+{784, 3305715025u, 3017496063u, 3209506661u, 0, COSF_TOLERANCE, 0},
+{785, 1266928623u, 811778614u, 1059902219u, 0, COSF_TOLERANCE, 0},
+{786, 3025340297u, 1193925540u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{787, 3438080027u, 3107114149u, 3212289015u, 0, COSF_TOLERANCE, 0},
+{788, 3344574751u, 3111270744u, 3204718571u, 0, COSF_TOLERANCE, 0},
+{789, 1152416724u, 962669179u, 3196823613u, 0, COSF_TOLERANCE, 0},
+{790, 1218239308u, 1126238113u, 3200397114u, 0, COSF_TOLERANCE, 0},
+{791, 3263310567u, 1030748197u, 3206623965u, 0, COSF_TOLERANCE, 0},
+{792, 3041998669u, 1160635263u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{793, 1000313118u, 2980130729u, 1065353017u, 0, COSF_TOLERANCE, 0},
+{794, 972485427u, 1124312043u, 1065353214u, 0, COSF_TOLERANCE, 0},
+{795, 3290264612u, 1124703898u, 1033417520u, 0, COSF_TOLERANCE, 0},
+{796, 3222106584u, 1183748648u, 3206069195u, 0, COSF_TOLERANCE, 0},
+{797, 1278946388u, 825129857u, 3207337564u, 0, COSF_TOLERANCE, 0},
+{798, 947914771u, 3181847068u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{799, 3167730654u, 3195765940u, 1065347822u, 0, COSF_TOLERANCE, 0},
+{800, 1098530298u, 3255870890u, 3212798281u, 0, COSF_TOLERANCE, 0},
+{801, 3232726036u, 871038882u, 1060273352u, 0, COSF_TOLERANCE, 0},
+{802, 1297190916u, 811863044u, 1049557645u, 0, COSF_TOLERANCE, 0},
+{803, 1277649137u, 961171401u, 3186874497u, 0, COSF_TOLERANCE, 0},
+{804, 3203377685u, 1306427476u, 1063548485u, 0, COSF_TOLERANCE, 0},
+{805, 3090306474u, 3124785016u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{806, 3244032016u, 3045313345u, 1052855950u, 0, COSF_TOLERANCE, 0},
+{807, 3033122376u, 3049877065u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{808, 1096155623u, 1256423752u, 1060154871u, 0, COSF_TOLERANCE, 0},
+{809, 873151908u, 3246562559u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{810, 3238729605u, 1298769842u, 3208544401u, 0, COSF_TOLERANCE, 0},
+{811, 3317196817u, 989537151u, 1055488317u, 0, COSF_TOLERANCE, 0},
+{812, 3374748510u, 834161190u, 3211766708u, 0, COSF_TOLERANCE, 0},
+{813, 3345634950u, 959901149u, 1047810758u, 0, COSF_TOLERANCE, 0},
+{814, 3189860276u, 883598767u, 1065145234u, 0, COSF_TOLERANCE, 0},
+{815, 887311687u, 1175312255u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{816, 3396917283u, 3066326686u, 1065330581u, 0, COSF_TOLERANCE, 0},
+{817, 3317032737u, 3143803722u, 3210940381u, 0, COSF_TOLERANCE, 0},
+{818, 1200051436u, 1163802508u, 1054691063u, 0, COSF_TOLERANCE, 0},
+{819, 3105291012u, 1194385202u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{820, 1306520561u, 957302464u, 3202730728u, 0, COSF_TOLERANCE, 0},
+{821, 1314936356u, 2985592532u, 1059259508u, 0, COSF_TOLERANCE, 0},
+{822, 3475052219u, 1284049853u, 3212731294u, 0, COSF_TOLERANCE, 0},
+{823, 3085636260u, 1107682820u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{824, 3393227708u, 3271879112u, 3212746551u, 0, COSF_TOLERANCE, 0},
+{825, 3182540197u, 852580839u, 1065290094u, 0, COSF_TOLERANCE, 0},
+{826, 3349005404u, 3080993030u, 1065287645u, 0, COSF_TOLERANCE, 0},
+{827, 3154720153u, 3443720494u, 1065352628u, 0, COSF_TOLERANCE, 0},
+{828, 1262863321u, 1219003129u, 1062939840u, 0, COSF_TOLERANCE, 0},
+{829, 882902102u, 1224362550u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{830, 1053387478u, 3184880021u, 1064071666u, 0, COSF_TOLERANCE, 0},
+{831, 3387653691u, 3347783852u, 3143612867u, 0, COSF_TOLERANCE, 0},
+{832, 3136364836u, 1018492227u, 1065353188u, 0, COSF_TOLERANCE, 0},
+{833, 1338680611u, 1166078045u, 3211297596u, 0, COSF_TOLERANCE, 0},
+{834, 1112891928u, 3074730425u, 3212805372u, 0, COSF_TOLERANCE, 0},
+{835, 893449284u, 1052877339u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{836, 892311459u, 1097338393u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{837, 3105373037u, 3246705916u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{838, 1190105283u, 3033907262u, 3208837018u, 0, COSF_TOLERANCE, 0},
+{839, 1011225926u, 1180485180u, 1065351990u, 0, COSF_TOLERANCE, 0},
+{840, 1043025031u, 987068973u, 1065119016u, 0, COSF_TOLERANCE, 0},
+{841, 3410531037u, 2953541915u, 3210684265u, 0, COSF_TOLERANCE, 0},
+{842, 3125834184u, 896953754u, 1065353211u, 0, COSF_TOLERANCE, 0},
+{843, 902318189u, 849277289u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{844, 3213624815u, 2987148017u, 1055588756u, 0, COSF_TOLERANCE, 0},
+{845, 1120888322u, 1086209113u, 3212830895u, 0, COSF_TOLERANCE, 0},
+{846, 1315217243u, 3396371713u, 3205739778u, 0, COSF_TOLERANCE, 0},
+{847, 3137758475u, 1039403054u, 1065353181u, 0, COSF_TOLERANCE, 0},
+{848, 1040617590u, 1034835971u, 1065208564u, 0, COSF_TOLERANCE, 0},
+{849, 955384253u, 3344785562u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{850, 3061417900u, 1172208065u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{851, 904255535u, 1019967545u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{852, 1022984119u, 3113891410u, 1065345435u, 0, COSF_TOLERANCE, 0},
+{853, 997362368u, 3112875428u, 1065353101u, 0, COSF_TOLERANCE, 0},
+{854, 900933520u, 1100589187u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{855, 1168623062u, 1143306482u, 3212305490u, 0, COSF_TOLERANCE, 0},
+{856, 878737490u, 3269908326u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{857, 1039827284u, 1072928888u, 1065227867u, 0, COSF_TOLERANCE, 0},
+{858, 1021564080u, 1064468397u, 1065346728u, 0, COSF_TOLERANCE, 0},
+{859, 3458669745u, 3033299853u, 3207192275u, 0, COSF_TOLERANCE, 0},
+{860, 3327516316u, 3405380971u, 3212243066u, 0, COSF_TOLERANCE, 0},
+{861, 1040711112u, 3229444200u, 1065205484u, 0, COSF_TOLERANCE, 0},
+{862, 1134528351u, 3365952513u, 1044204722u, 0, COSF_TOLERANCE, 0},
+{863, 3039884464u, 1170612785u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{864, 3414352838u, 3350285760u, 1065213072u, 0, COSF_TOLERANCE, 0},
+{865, 1133689539u, 1067460093u, 3196938746u, 0, COSF_TOLERANCE, 0},
+{866, 3455688478u, 3333091960u, 3170953053u, 0, COSF_TOLERANCE, 0},
+{867, 1137634874u, 1137038869u, 1059909857u, 0, COSF_TOLERANCE, 0},
+{868, 3415502662u, 955510692u, 3207324162u, 0, COSF_TOLERANCE, 0},
+{869, 954999730u, 969618597u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{870, 1066157309u, 3241712664u, 1055531362u, 0, COSF_TOLERANCE, 0},
+{871, 3436353675u, 1174967495u, 1062525851u, 0, COSF_TOLERANCE, 0},
+{872, 940437609u, 860372396u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{873, 3108347547u, 3434003435u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{874, 3064200154u, 3158080507u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{875, 1023889593u, 2979304683u, 1065344062u, 0, COSF_TOLERANCE, 0},
+{876, 3272661536u, 3461799138u, 1064399564u, 0, COSF_TOLERANCE, 0},
+{877, 1170245333u, 1233406410u, 3212532373u, 0, COSF_TOLERANCE, 0},
+{878, 1219052056u, 3369557946u, 3210290288u, 0, COSF_TOLERANCE, 0},
+{879, 3318983619u, 3259663338u, 1065030505u, 0, COSF_TOLERANCE, 0},
+{880, 3372118621u, 837597103u, 3179313840u, 0, COSF_TOLERANCE, 0},
+{881, 3146190320u, 889646054u, 1065353074u, 0, COSF_TOLERANCE, 0},
+{882, 1299683827u, 966031619u, 3212569447u, 0, COSF_TOLERANCE, 0},
+{883, 3190796331u, 1320011850u, 1065106891u, 0, COSF_TOLERANCE, 0},
+{884, 3086068902u, 3484245751u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{885, 3064155399u, 3176569312u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{886, 3040314717u, 1071290674u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{887, 3257224022u, 3361778245u, 3210918690u, 0, COSF_TOLERANCE, 0},
+{888, 1229268598u, 1066965677u, 1065119672u, 0, COSF_TOLERANCE, 0},
+{889, 3184078812u, 871003709u, 1065272329u, 0, COSF_TOLERANCE, 0},
+{890, 1086717248u, 3423795374u, 1065275932u, 0, COSF_TOLERANCE, 0},
+{891, 3434884607u, 3029593823u, 3211446397u, 0, COSF_TOLERANCE, 0},
+{892, 3464955606u, 1017987696u, 3209420100u, 0, COSF_TOLERANCE, 0},
+{893, 1025278524u, 3121856207u, 1065340970u, 0, COSF_TOLERANCE, 0},
+{894, 1242829722u, 3233935671u, 3205152024u, 0, COSF_TOLERANCE, 0},
+{895, 3075149137u, 1117325737u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{896, 1200927971u, 1317167489u, 3197436878u, 0, COSF_TOLERANCE, 0},
+{897, 3326858092u, 3452602832u, 1058159947u, 0, COSF_TOLERANCE, 0},
+{898, 1246019790u, 850632217u, 3211310879u, 0, COSF_TOLERANCE, 0},
+{899, 3184801644u, 1137974313u, 1065263225u, 0, COSF_TOLERANCE, 0},
+{900, 1136052740u, 3244616020u, 1053786700u, 0, COSF_TOLERANCE, 0},
+{901, 1069009211u, 3002507482u, 1040828843u, 0, COSF_TOLERANCE, 0},
+{902, 1015670780u, 1101217251u, 1065350839u, 0, COSF_TOLERANCE, 0},
+{903, 1012543234u, 1116520440u, 1065351728u, 0, COSF_TOLERANCE, 0},
+{904, 3316611992u, 3394732912u, 3189155062u, 0, COSF_TOLERANCE, 0},
+{905, 1087942795u, 3316660295u, 1063391976u, 0, COSF_TOLERANCE, 0},
+{906, 3426365713u, 3069778532u, 1063585819u, 0, COSF_TOLERANCE, 0},
+{907, 3066654389u, 3443934204u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{908, 3295326432u, 1313396175u, 3210161438u, 0, COSF_TOLERANCE, 0},
+{909, 3318835308u, 3277583511u, 3212826231u, 0, COSF_TOLERANCE, 0},
+{910, 3283555717u, 891875120u, 3190806489u, 0, COSF_TOLERANCE, 0},
+{911, 3381255420u, 3015406047u, 3199347701u, 0, COSF_TOLERANCE, 0},
+{912, 3040485181u, 3375450886u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{913, 3388772093u, 1032597076u, 1058319659u, 0, COSF_TOLERANCE, 0},
+{914, 954670189u, 1144923689u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{915, 1319200415u, 3387555900u, 3212404062u, 0, COSF_TOLERANCE, 0},
+{916, 1279324488u, 3228401212u, 3198691552u, 0, COSF_TOLERANCE, 0},
+{917, 3217795424u, 865577227u, 3165019754u, 0, COSF_TOLERANCE, 0},
+{918, 3455131757u, 1260217257u, 3212759112u, 0, COSF_TOLERANCE, 0},
+{919, 1246947517u, 1087951909u, 3212751459u, 0, COSF_TOLERANCE, 0},
+{920, 3396723577u, 869285240u, 3199745081u, 0, COSF_TOLERANCE, 0},
+{921, 3433761025u, 3060143904u, 3209669423u, 0, COSF_TOLERANCE, 0},
+{922, 3201187455u, 900233172u, 1064010350u, 0, COSF_TOLERANCE, 0},
+{923, 1173247961u, 1191127979u, 1060192306u, 0, COSF_TOLERANCE, 0},
+{924, 3037297123u, 3346394818u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{925, 3248534678u, 1323683800u, 1051129506u, 0, COSF_TOLERANCE, 0},
+{926, 3083019343u, 3033309444u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{927, 3042018375u, 3203882372u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{928, 1082862511u, 3032804719u, 3199595173u, 0, COSF_TOLERANCE, 0},
+{929, 3157626955u, 3483653298u, 1065352186u, 0, COSF_TOLERANCE, 0},
+{930, 1341821683u, 3003675365u, 1031799938u, 0, COSF_TOLERANCE, 0},
+{931, 881101379u, 1190838126u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{932, 1079061705u, 2960507663u, 3212702243u, 0, COSF_TOLERANCE, 0},
+{933, 3182695954u, 3256861672u, 1065288396u, 0, COSF_TOLERANCE, 0},
+{934, 1105291533u, 3482971524u, 3212756299u, 0, COSF_TOLERANCE, 0},
+{935, 1016023520u, 3227712090u, 1065350650u, 0, COSF_TOLERANCE, 0},
+{936, 3370691006u, 1295870514u, 3207194610u, 0, COSF_TOLERANCE, 0},
+{937, 1156767169u, 1049756240u, 1041511887u, 0, COSF_TOLERANCE, 0},
+{938, 3077020499u, 894671462u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{939, 1104284039u, 3040211914u, 1054748732u, 0, COSF_TOLERANCE, 0},
+{940, 3335212901u, 3486414589u, 1050567781u, 0, COSF_TOLERANCE, 0},
+{941, 1093697541u, 3193708441u, 1024597442u, 0, COSF_TOLERANCE, 0},
+{942, 3266691185u, 1160074593u, 3212393816u, 0, COSF_TOLERANCE, 0},
+{943, 3179003144u, 1108615803u, 1065321540u, 0, COSF_TOLERANCE, 0},
+{944, 1094115255u, 3008610212u, 1054298469u, 0, COSF_TOLERANCE, 0},
+{945, 3424086808u, 3260140004u, 1062663944u, 0, COSF_TOLERANCE, 0},
+{946, 3353608773u, 1134068114u, 1057011823u, 0, COSF_TOLERANCE, 0},
+{947, 973664327u, 1319516167u, 1065353214u, 0, COSF_TOLERANCE, 0},
+{948, 882878091u, 3136970767u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{949, 1098662266u, 833740182u, 3212808631u, 0, COSF_TOLERANCE, 0},
+{950, 927582555u, 947955456u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{951, 3111440310u, 3067634077u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{952, 3476083859u, 966439623u, 3212788520u, 0, COSF_TOLERANCE, 0},
+{953, 3038754840u, 932009686u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{954, 979878744u, 1232482646u, 1065353209u, 0, COSF_TOLERANCE, 0},
+{955, 3464546616u, 3205527253u, 3177740345u, 0, COSF_TOLERANCE, 0},
+{956, 1002542205u, 3152136093u, 1065352923u, 0, COSF_TOLERANCE, 0},
+{957, 3443552129u, 3165561391u, 3212354566u, 0, COSF_TOLERANCE, 0},
+{958, 1287620154u, 3119707283u, 1055090182u, 0, COSF_TOLERANCE, 0},
+{959, 946058434u, 1249928879u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{960, 3073260205u, 3093124531u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{961, 1245702957u, 894348966u, 1064624749u, 0, COSF_TOLERANCE, 0},
+{962, 989655126u, 1308376568u, 1065353185u, 0, COSF_TOLERANCE, 0},
+{963, 1002715618u, 1191006977u, 1065352915u, 0, COSF_TOLERANCE, 0},
+{964, 3087802274u, 897541752u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{965, 1000863905u, 1196831314u, 1065352996u, 0, COSF_TOLERANCE, 0},
+{966, 3415763001u, 3032518431u, 1057972712u, 0, COSF_TOLERANCE, 0},
+{967, 3283471961u, 1260093226u, 1060111540u, 0, COSF_TOLERANCE, 0},
+{968, 3311210827u, 1192192264u, 1064321527u, 0, COSF_TOLERANCE, 0},
+{969, 3026311911u, 2968974374u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{970, 1198307901u, 1116328249u, 1058793373u, 0, COSF_TOLERANCE, 0},
+{971, 1288901567u, 1296370667u, 1060913244u, 0, COSF_TOLERANCE, 0},
+{972, 922255363u, 958305289u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{973, 1113104661u, 944376032u, 3208332702u, 0, COSF_TOLERANCE, 0},
+{974, 1136714348u, 828849087u, 3209446366u, 0, COSF_TOLERANCE, 0},
+{975, 948856035u, 1015466475u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{976, 1062512367u, 3229559531u, 1059890212u, 0, COSF_TOLERANCE, 0},
+{977, 3486907092u, 823220784u, 1060681519u, 0, COSF_TOLERANCE, 0},
+{978, 1162027071u, 3308983387u, 1061103464u, 0, COSF_TOLERANCE, 0},
+{979, 1034561811u, 1054043114u, 1065295340u, 0, COSF_TOLERANCE, 0},
+{980, 3271615417u, 3209997200u, 3212777366u, 0, COSF_TOLERANCE, 0},
+{981, 1042014529u, 1146708584u, 1065159203u, 0, COSF_TOLERANCE, 0},
+{982, 1177157787u, 3090208179u, 3207554300u, 0, COSF_TOLERANCE, 0},
+{983, 3196144817u, 1056118717u, 1064821065u, 0, COSF_TOLERANCE, 0},
+{984, 3432084552u, 2997091781u, 3201706790u, 0, COSF_TOLERANCE, 0},
+{985, 1309658335u, 1010219988u, 3210696537u, 0, COSF_TOLERANCE, 0},
+{986, 1226494979u, 2991604792u, 3189793814u, 0, COSF_TOLERANCE, 0},
+{987, 3100289712u, 3456334210u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{988, 3375507013u, 1306310823u, 3210320892u, 0, COSF_TOLERANCE, 0},
+{989, 3460699001u, 3096700943u, 3131659669u, 0, COSF_TOLERANCE, 0},
+{990, 3079231719u, 1044386263u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{991, 3093951884u, 1014115231u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{992, 3468023178u, 1209565017u, 1039445927u, 0, COSF_TOLERANCE, 0},
+{993, 1204196034u, 3298625731u, 1049351518u, 0, COSF_TOLERANCE, 0},
+{994, 3459877411u, 2960476959u, 1040321054u, 0, COSF_TOLERANCE, 0},
+{995, 909696559u, 1163075690u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{996, 1161439847u, 943449277u, 1063892963u, 0, COSF_TOLERANCE, 0},
+{997, 908663107u, 939489763u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{998, 1055319316u, 3261813492u, 1063675936u, 0, COSF_TOLERANCE, 0},
+{999, 1084378658u, 1009650785u, 1051996722u, 0, COSF_TOLERANCE, 0},
+{1000, 3053887750u, 3341786453u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{1001, 3022828828u, 881335251u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{1002, 1226473697u, 821025132u, 3210808958u, 0, COSF_TOLERANCE, 0},
+{1003, 1123114742u, 1229815537u, 1049003021u, 0, COSF_TOLERANCE, 0},
+{1004, 1258114435u, 1291336083u, 1063128407u, 0, COSF_TOLERANCE, 0},
+{1005, 3468040845u, 3066966245u, 3209603439u, 0, COSF_TOLERANCE, 0},
+{1006, 1178825761u, 1113195286u, 1060387901u, 0, COSF_TOLERANCE, 0},
+{1007, 3059266302u, 878503862u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{1008, 3223384012u, 1130486973u, 3209646119u, 0, COSF_TOLERANCE, 0},
+{1009, 1019964626u, 1235133609u, 1065348044u, 0, COSF_TOLERANCE, 0},
+{1010, 3445262427u, 3465211174u, 3207388524u, 0, COSF_TOLERANCE, 0},
+{1011, 1125653081u, 1207799746u, 1048953689u, 0, COSF_TOLERANCE, 0},
+{1012, 3337652712u, 3025581813u, 1046815450u, 0, COSF_TOLERANCE, 0},
+{1013, 1184753508u, 3147374485u, 1048780362u, 0, COSF_TOLERANCE, 0},
+{1014, 996404791u, 3353251979u, 1065353115u, 0, COSF_TOLERANCE, 0},
+{1015, 1188439315u, 1113484271u, 3212669878u, 0, COSF_TOLERANCE, 0},
+{1016, 906557513u, 3006513432u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{1017, 916831283u, 999465787u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{1018, 996786317u, 3179221951u, 1065353109u, 0, COSF_TOLERANCE, 0},
+{1019, 3461635065u, 1004690387u, 1059256339u, 0, COSF_TOLERANCE, 0},
+{1020, 1188167943u, 1200744896u, 1056968528u, 0, COSF_TOLERANCE, 0},
+{1021, 3036502395u, 1172597364u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{1022, 891257783u, 1267560050u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{1023, 3290079438u, 846519377u, 3211632704u, 0, COSF_TOLERANCE, 0},
+{1024, 3350690327u, 2967953392u, 1064717520u, 0, COSF_TOLERANCE, 0},
+{1025, 1102061604u, 3424449935u, 3212831810u, 0, COSF_TOLERANCE, 0},
+{1026, 1282351521u, 3039376424u, 3206969204u, 0, COSF_TOLERANCE, 0},
+{1027, 3458861065u, 3392466405u, 1061025076u, 0, COSF_TOLERANCE, 0},
+{1028, 3095256878u, 1023623326u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{1029, 3163373610u, 843150426u, 1065350722u, 0, COSF_TOLERANCE, 0},
+{1030, 3228793330u, 855146890u, 3209285436u, 0, COSF_TOLERANCE, 0},
+{1031, 3422194733u, 893873945u, 3189571899u, 0, COSF_TOLERANCE, 0},
+{1032, 3083885296u, 974543672u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{1033, 1261940623u, 3402349985u, 1059371925u, 0, COSF_TOLERANCE, 0},
+{1034, 3400603081u, 3234396843u, 3194979617u, 0, COSF_TOLERANCE, 0},
+{1035, 1219411812u, 2961857939u, 1059936718u, 0, COSF_TOLERANCE, 0},
+{1036, 3094833770u, 805351108u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{1037, 3139250800u, 3079109479u, 1065353168u, 0, COSF_TOLERANCE, 0},
+{1038, 886201503u, 3272760705u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{1039, 3297366026u, 1089966380u, 3212509727u, 0, COSF_TOLERANCE, 0},
+{1040, 1218488455u, 3309646450u, 3212486799u, 0, COSF_TOLERANCE, 0},
+{1041, 3040358923u, 3093401553u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{1042, 1283938137u, 1196383822u, 3212578488u, 0, COSF_TOLERANCE, 0},
+{1043, 3182551696u, 3029982441u, 1065289970u, 0, COSF_TOLERANCE, 0},
+{1044, 1317098613u, 949986176u, 3192636969u, 0, COSF_TOLERANCE, 0},
+{1045, 3116209179u, 3303588342u, 1065353215u, 0, COSF_TOLERANCE, 0},
+{1046, 3431703657u, 3014443710u, 1061837671u, 0, COSF_TOLERANCE, 0},
+{1047, 3239728775u, 927815421u, 3212427544u, 0, COSF_TOLERANCE, 0},
+{1048, 3207141672u, 933456504u, 1061824313u, 0, COSF_TOLERANCE, 0},
+{1049, 3154378805u, 905462392u, 1065352671u, 0, COSF_TOLERANCE, 0},
+{1050, 3069658155u, 1041452042u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{1051, 3313160088u, 2964063309u, 3201046321u, 0, COSF_TOLERANCE, 0},
+{1052, 3207056527u, 3384206601u, 1061876382u, 0, COSF_TOLERANCE, 0},
+{1053, 1284174954u, 3436881197u, 3197483672u, 0, COSF_TOLERANCE, 0},
+{1054, 3156081645u, 3308839704u, 1065352436u, 0, COSF_TOLERANCE, 0},
+{1055, 1063693032u, 976661408u, 1058991141u, 0, COSF_TOLERANCE, 0},
+{1056, 3036026175u, 1251203998u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{1057, 1102631663u, 3396951425u, 3202535888u, 0, COSF_TOLERANCE, 0},
+{1058, 968803479u, 992989712u, 1065353215u, 0, COSF_TOLERANCE, 0},
+{1059, 3273080388u, 3109405906u, 1063706432u, 0, COSF_TOLERANCE, 0},
+{1060, 1172529774u, 3294550127u, 1064186558u, 0, COSF_TOLERANCE, 0},
+{1061, 1306695905u, 1292690378u, 3204586469u, 0, COSF_TOLERANCE, 0},
+{1062, 1003649752u, 1218792138u, 1065352870u, 0, COSF_TOLERANCE, 0},
+{1063, 1078478376u, 1326246424u, 3212835593u, 0, COSF_TOLERANCE, 0},
+{1064, 3158855023u, 3151283866u, 1065351962u, 0, COSF_TOLERANCE, 0},
+{1065, 1165177679u, 3276237026u, 3198996477u, 0, COSF_TOLERANCE, 0},
+{1066, 3403009513u, 3381966453u, 1064112873u, 0, COSF_TOLERANCE, 0},
+{1067, 952348506u, 3377573987u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{1068, 1222777442u, 1125769920u, 1059372175u, 0, COSF_TOLERANCE, 0},
+{1069, 1325324763u, 978336043u, 3210385803u, 0, COSF_TOLERANCE, 0},
+{1070, 3363524213u, 3202991311u, 3210370597u, 0, COSF_TOLERANCE, 0},
+{1071, 1158950321u, 1073578913u, 3204454895u, 0, COSF_TOLERANCE, 0},
+{1072, 903129873u, 3416864271u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{1073, 3078339944u, 988173985u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{1074, 1208345407u, 1254181270u, 3197912734u, 0, COSF_TOLERANCE, 0},
+{1075, 1258634105u, 1247426200u, 3212159515u, 0, COSF_TOLERANCE, 0},
+{1076, 1248478509u, 1287895126u, 1013250315u, 0, COSF_TOLERANCE, 0},
+{1077, 1153863988u, 3430539165u, 1055159277u, 0, COSF_TOLERANCE, 0},
+{1078, 1235620969u, 866627358u, 3197807963u, 0, COSF_TOLERANCE, 0},
+{1079, 1097120930u, 3221726305u, 3189900284u, 0, COSF_TOLERANCE, 0},
+{1080, 3469778622u, 1200179013u, 3177965590u, 0, COSF_TOLERANCE, 0},
+{1081, 1147712200u, 931865525u, 1059239330u, 0, COSF_TOLERANCE, 0},
+{1082, 1124721745u, 3058969650u, 1064402756u, 0, COSF_TOLERANCE, 0},
+{1083, 3261744304u, 1043806501u, 3202193916u, 0, COSF_TOLERANCE, 0},
+{1084, 1064922416u, 1320485628u, 1058000246u, 0, COSF_TOLERANCE, 0},
+{1085, 3303160152u, 3075455322u, 1064893552u, 0, COSF_TOLERANCE, 0},
+{1086, 1315090496u, 3269683237u, 1065335705u, 0, COSF_TOLERANCE, 0},
+{1087, 3230403187u, 1322841992u, 3198737980u, 0, COSF_TOLERANCE, 0},
+{1088, 1335399673u, 974138676u, 1063062969u, 0, COSF_TOLERANCE, 0},
+{1089, 1072458508u, 3372833993u, 3196822050u, 0, COSF_TOLERANCE, 0},
+{1090, 3303015249u, 3015039539u, 1043481079u, 0, COSF_TOLERANCE, 0},
+{1091, 3252139741u, 1059615003u, 3196321587u, 0, COSF_TOLERANCE, 0},
+{1092, 3468519966u, 3113982619u, 3181119723u, 0, COSF_TOLERANCE, 0},
+{1093, 1006231203u, 897530770u, 1065352728u, 0, COSF_TOLERANCE, 0},
+{1094, 951554138u, 1001144381u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{1095, 942046828u, 986341002u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{1096, 3319723279u, 3414482416u, 3212789186u, 0, COSF_TOLERANCE, 0},
+{1097, 3255104167u, 928827688u, 3195901186u, 0, COSF_TOLERANCE, 0},
+{1098, 1155477903u, 3104812800u, 1054683158u, 0, COSF_TOLERANCE, 0},
+{1099, 3273889176u, 980486479u, 1064943212u, 0, COSF_TOLERANCE, 0},
+{1100, 3237813668u, 3441016803u, 3177499355u, 0, COSF_TOLERANCE, 0},
+{1101, 1228207362u, 2985476579u, 3204716343u, 0, COSF_TOLERANCE, 0},
+{1102, 975349337u, 1311932596u, 1065353213u, 0, COSF_TOLERANCE, 0},
+{1103, 1290175785u, 3008182462u, 3207719515u, 0, COSF_TOLERANCE, 0},
+{1104, 981908840u, 3314038398u, 1065353207u, 0, COSF_TOLERANCE, 0},
+{1105, 941187647u, 1107765599u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{1106, 1214223128u, 3225536822u, 1065333862u, 0, COSF_TOLERANCE, 0},
+{1107, 3422922584u, 1086391131u, 1063595800u, 0, COSF_TOLERANCE, 0},
+{1108, 1315857601u, 3487600045u, 3207921796u, 0, COSF_TOLERANCE, 0},
+{1109, 3453226030u, 3233768835u, 3211093747u, 0, COSF_TOLERANCE, 0},
+{1110, 1078359574u, 3199175230u, 3212823014u, 0, COSF_TOLERANCE, 0},
+{1111, 1029557624u, 3302959071u, 1065328624u, 0, COSF_TOLERANCE, 0},
+{1112, 1207675424u, 3042692550u, 3212587330u, 0, COSF_TOLERANCE, 0},
+{1113, 1028355074u, 3442294040u, 1065332524u, 0, COSF_TOLERANCE, 0},
+{1114, 3119299090u, 1187096397u, 1065353214u, 0, COSF_TOLERANCE, 0},
+{1115, 1248421894u, 3367769132u, 1061302737u, 0, COSF_TOLERANCE, 0},
+{1116, 3353251994u, 1095517730u, 1046208216u, 0, COSF_TOLERANCE, 0},
+{1117, 876926659u, 3288089977u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{1118, 1076752219u, 876236939u, 3211352228u, 0, COSF_TOLERANCE, 0},
+{1119, 3388531942u, 2988520062u, 3212836555u, 0, COSF_TOLERANCE, 0},
+{1120, 1273395082u, 3031189261u, 1064835354u, 0, COSF_TOLERANCE, 0},
+{1121, 3385588183u, 3258252464u, 3189580137u, 0, COSF_TOLERANCE, 0},
+{1122, 3192315328u, 3289489214u, 1065037827u, 0, COSF_TOLERANCE, 0},
+{1123, 3441804648u, 3274638356u, 3194945623u, 0, COSF_TOLERANCE, 0},
+{1124, 3392827417u, 1277961150u, 3210261568u, 0, COSF_TOLERANCE, 0},
+{1125, 1161241793u, 1328003707u, 3207641762u, 0, COSF_TOLERANCE, 0},
+{1126, 3034494183u, 3041579130u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{1127, 1171318485u, 3374409104u, 1063645118u, 0, COSF_TOLERANCE, 0},
+{1128, 3047748143u, 831102792u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{1129, 1001216371u, 3052357038u, 1065352981u, 0, COSF_TOLERANCE, 0},
+{1130, 912515889u, 1074635609u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{1131, 3391452505u, 897989232u, 3209655482u, 0, COSF_TOLERANCE, 0},
+{1132, 3249603369u, 3147662248u, 3212683322u, 0, COSF_TOLERANCE, 0},
+{1133, 1220264047u, 2960450369u, 3212372154u, 0, COSF_TOLERANCE, 0},
+{1134, 3169816394u, 988430929u, 1065346043u, 0, COSF_TOLERANCE, 0},
+{1135, 3098997418u, 3002162688u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{1136, 3282212423u, 3174079140u, 1016941376u, 0, COSF_TOLERANCE, 0},
+{1137, 3352293320u, 3247843425u, 1050107930u, 0, COSF_TOLERANCE, 0},
+{1138, 3296358441u, 875645354u, 3211409002u, 0, COSF_TOLERANCE, 0},
+{1139, 1197828352u, 3245614728u, 1065315648u, 0, COSF_TOLERANCE, 0},
+{1140, 3340510371u, 914930263u, 1057806643u, 0, COSF_TOLERANCE, 0},
+{1141, 1127109339u, 3368125489u, 3171828278u, 0, COSF_TOLERANCE, 0},
+{1142, 909467381u, 1232375752u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{1143, 1200599955u, 2981200675u, 1058314411u, 0, COSF_TOLERANCE, 0},
+{1144, 962230977u, 2988248037u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{1145, 3192887808u, 3191848339u, 1065009608u, 0, COSF_TOLERANCE, 0},
+{1146, 3237183876u, 3179379969u, 1048038805u, 0, COSF_TOLERANCE, 0},
+{1147, 939285924u, 3056079386u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{1148, 944050180u, 3452557879u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{1149, 3058135703u, 3090284601u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{1150, 3480592662u, 3261728191u, 3210584153u, 0, COSF_TOLERANCE, 0},
+{1151, 3061939312u, 3274418540u, 1065353216u, 0, COSF_TOLERANCE, 0},
+{1152, 1003299981u, 853295521u, 1065352887u, 0, COSF_TOLERANCE, 0},
+{1153, 1155775526u, 1255814444u, 1064855858u, 0, COSF_TOLERANCE, 0},
+{1154, 1234491880u, 3408568717u, 1047219695u, 0, COSF_TOLERANCE, 0}
+
+// AUTOMATICALLY GENERATED VECTORS STOP
+
+};
+
+#endif // CYGONCE_LIBM_COSF_H multiple inclusion protection
+
+// EOF cosf.h
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/cosh.c b/ecos/packages/language/c/libm/current/tests/vectors/cosh.c
new file mode 100644
index 0000000..a8d7710
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/cosh.c
@@ -0,0 +1,115 @@
+//===========================================================================
+//
+// cosh.c
+//
+// Test of cosh() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// Declarations for test system:
+//
+// TESTCASE_TYPE=CYG_TEST_MODULE
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include <cyg/infra/testcase.h> // Test infrastructure
+#include <math.h> // Header for this package
+#include <sys/ieeefp.h> // Cyg_libm_ieee_double_shape_type
+#include "vectors/vector_support.h"// extra support for math tests
+
+#include "vectors/cosh.h"
+
+// FUNCTIONS
+
+static void
+test( CYG_ADDRWORD data )
+{
+ cyg_ucount32 vec_size;
+ cyg_bool ret;
+
+ vec_size = sizeof(cosh_vec) / sizeof(Cyg_libm_test_double_vec_t);
+ ret = doTestVec( (CYG_ADDRWORD) &cosh, CYG_LIBM_TEST_VEC_DOUBLE,
+ CYG_LIBM_TEST_VEC_NONE, CYG_LIBM_TEST_VEC_DOUBLE,
+ &cosh_vec[0], vec_size );
+
+ if (ret==true)
+ {
+ CYG_TEST_PASS("cosh() is stable");
+ } // if
+ else
+ {
+ CYG_TEST_FAIL("cosh() failed tests");
+ } // else
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for Math "
+ "library cosh() function");
+} // test()
+
+
+int
+main(int argc, char *argv[])
+{
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for Math library "
+ "cosh() function");
+
+ START_TEST( test );
+
+ CYG_TEST_PASS_FINISH("Testing is not applicable to this configuration");
+
+} // main()
+
+
+// EOF cosh.c
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/cosh.h b/ecos/packages/language/c/libm/current/tests/vectors/cosh.h
new file mode 100644
index 0000000..7949c5c
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/cosh.h
@@ -0,0 +1,1079 @@
+#ifndef CYGONCE_LIBM_COSH_H
+#define CYGONCE_LIBM_COSH_H
+//===========================================================================
+//
+// cosh.h
+//
+// Test vectors for testing of cosh() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage: #include "vectors/cosh.h"
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include "vectors/vector_support.h"// extra support for math tests
+
+#define COSH_TOLERANCE 1.0E-04
+
+static const Cyg_libm_test_double_vec_t cosh_vec[] = {
+
+// AUTOMATICALLY GENERATED VECTORS START
+
+{ 1, 1074853420u, 2506787616u, 1090024059u, 3619148316u, 1078025426u, 969469392u, 0, COSH_TOLERANCE, 0},
+{ 2, 3220250806u, 3176730980u, 1051524793u, 2993920299u, 1073353662u, 1862384311u, 0, COSH_TOLERANCE, 0},
+{ 3, 3226028315u, 2725707538u, 3232101343u, 2346810316u, 1148131614u, 3406370818u, 0, COSH_TOLERANCE, 0},
+{ 4, 1078922874u, 2088062470u, 3201242716u, 420891118u, 1165520069u, 2120331304u, 0, COSH_TOLERANCE, 0},
+{ 5, 3221200677u, 2636405208u, 1100049309u, 471635570u, 1074621306u, 1840668058u, 0, COSH_TOLERANCE, 0},
+{ 6, 1077828855u, 1746012320u, 1054478713u, 3333988501u, 1117516582u, 699114409u, 0, COSH_TOLERANCE, 0},
+{ 7, 1066827528u, 183014794u, 3202039382u, 2016785810u, 1072693501u, 214984896u, 0, COSH_TOLERANCE, 0},
+{ 8, 3219777490u, 2688957927u, 1046089230u, 2709029994u, 1073056030u, 1838945346u, 0, COSH_TOLERANCE, 0},
+{ 9, 1070330066u, 624574473u, 1045840574u, 3473266330u, 1072718329u, 916151728u, 0, COSH_TOLERANCE, 0},
+{ 10, 3217502754u, 1605286142u, 1068931671u, 4233776869u, 1072710512u, 2874087843u, 0, COSH_TOLERANCE, 0},
+{ 11, 1069780594u, 1857607719u, 3222889559u, 3417070006u, 1072705510u, 1532142699u, 0, COSH_TOLERANCE, 0},
+{ 12, 1081579891u, 3981151660u, 1088899021u, 1332651746u, 1642782946u, 1345086100u, 0, COSH_TOLERANCE, 0},
+{ 13, 1075860838u, 3824988054u, 1066856791u, 2070129652u, 1083933725u, 2536695545u, 0, COSH_TOLERANCE, 0},
+{ 14, 3218045550u, 1372884064u, 1080833116u, 3229926662u, 1072725116u, 1230358004u, 0, COSH_TOLERANCE, 0},
+{ 15, 1078097861u, 3217805330u, 3191644264u, 2014578707u, 1127449977u, 1807458751u, 0, COSH_TOLERANCE, 0},
+{ 16, 1080267391u, 265058758u, 3239903247u, 1630600647u, 1308474718u, 1523986687u, 0, COSH_TOLERANCE, 0},
+{ 17, 1073221381u, 1946677669u, 3198462609u, 926009897u, 1073930690u, 1965098529u, 0, COSH_TOLERANCE, 0},
+{ 18, 1073178875u, 2271884183u, 3203741999u, 2118617783u, 1073886257u, 3027131755u, 0, COSH_TOLERANCE, 0},
+{ 19, 3214772053u, 213658772u, 3249401130u, 314151656u, 1072693684u, 2346214u, 0, COSH_TOLERANCE, 0},
+{ 20, 3228946464u, 1564829925u, 3197817016u, 497230814u, 1599525087u, 3665494831u, 0, COSH_TOLERANCE, 0},
+{ 21, 3219408362u, 2075329122u, 3231746400u, 169900577u, 1072910812u, 2781323759u, 0, COSH_TOLERANCE, 0},
+{ 22, 1067674434u, 541549344u, 1096608669u, 3119070100u, 1072694002u, 1218945670u, 0, COSH_TOLERANCE, 0},
+{ 23, 1075989871u, 567496114u, 1045286891u, 1969998540u, 1085434125u, 3238675061u, 0, COSH_TOLERANCE, 0},
+{ 24, 1069985379u, 1299369769u, 1049342524u, 4167404066u, 1072709753u, 436121612u, 0, COSH_TOLERANCE, 0},
+{ 25, 3218302829u, 3348930841u, 1078472138u, 358457347u, 1072741812u, 1512364096u, 0, COSH_TOLERANCE, 0},
+{ 26, 1073166449u, 2192461366u, 1099527247u, 3184735642u, 1073873641u, 4040593230u, 0, COSH_TOLERANCE, 0},
+{ 27, 1068590412u, 331696577u, 3189610016u, 793242270u, 1072695669u, 3489656380u, 0, COSH_TOLERANCE, 0},
+{ 28, 3229460262u, 2322696981u, 1083791358u, 3020766674u, 1789286809u, 4287903039u, 0, COSH_TOLERANCE, 0},
+{ 29, 1066922273u, 252085215u, 3214426435u, 4139068910u, 1072693534u, 2665457975u, 0, COSH_TOLERANCE, 0},
+{ 30, 3221457149u, 105589263u, 1056316170u, 261630827u, 1075259864u, 1375611334u, 0, COSH_TOLERANCE, 0},
+{ 31, 1082047584u, 428765703u, 3251828686u, 2009972239u, 1815498097u, 3462966019u, 0, COSH_TOLERANCE, 0},
+{ 32, 1079693651u, 3517376586u, 3240257920u, 3304487302u, 1233851281u, 1250614638u, 0, COSH_TOLERANCE, 0},
+{ 33, 3224100728u, 237004814u, 3237899261u, 3364008659u, 1092696187u, 168267900u, 0, COSH_TOLERANCE, 0},
+{ 34, 3214121920u, 472004928u, 3226869477u, 1186387580u, 1072693440u, 1076112274u, 0, COSH_TOLERANCE, 0},
+{ 35, 1068906914u, 4085763910u, 1106394906u, 2684738273u, 1072697202u, 594398828u, 0, COSH_TOLERANCE, 0},
+{ 36, 1069636551u, 2055490142u, 3231581370u, 3879040079u, 1072702904u, 4128087196u, 0, COSH_TOLERANCE, 0},
+{ 37, 3213093895u, 3725731239u, 1061652681u, 591292963u, 1072693297u, 2624770646u, 0, COSH_TOLERANCE, 0},
+{ 38, 3221869253u, 1147041027u, 3215417793u, 624695933u, 1076446275u, 1285958834u, 0, COSH_TOLERANCE, 0},
+{ 39, 3217587110u, 705725219u, 3238067573u, 1116238321u, 1072712487u, 3913803238u, 0, COSH_TOLERANCE, 0},
+{ 40, 3217852848u, 7287411u, 1045917232u, 116067742u, 1072719417u, 863220422u, 0, COSH_TOLERANCE, 0},
+{ 41, 3226423734u, 3604989074u, 1066381836u, 545298780u, 1166321280u, 3198996771u, 0, COSH_TOLERANCE, 0},
+{ 42, 3221178088u, 1681476121u, 1060345752u, 3553822398u, 1074581780u, 785211380u, 0, COSH_TOLERANCE, 0},
+{ 43, 1080811562u, 3410480388u, 1052460275u, 1660607230u, 1408926430u, 2715754844u, 0, COSH_TOLERANCE, 0},
+{ 44, 1077682533u, 1494984673u, 3196647153u, 287894723u, 1114110585u, 2741076212u, 0, COSH_TOLERANCE, 0},
+{ 45, 1068516615u, 644548665u, 1081948134u, 2442134629u, 1072695366u, 1384821396u, 0, COSH_TOLERANCE, 0},
+{ 46, 1077068335u, 2312530895u, 3221584595u, 3379665576u, 1100002913u, 3357999194u, 0, COSH_TOLERANCE, 0},
+{ 47, 1079308159u, 3018463866u, 1086226574u, 404012923u, 1198269222u, 2905917257u, 0, COSH_TOLERANCE, 0},
+{ 48, 1071024755u, 1710279345u, 3251401196u, 3528946000u, 1072758958u, 1795613829u, 0, COSH_TOLERANCE, 0},
+{ 49, 1070973535u, 2164450219u, 1083520023u, 3312018966u, 1072754437u, 2812445457u, 0, COSH_TOLERANCE, 0},
+{ 50, 1069831588u, 2648986431u, 1050330591u, 1474376550u, 1072706507u, 2784383684u, 0, COSH_TOLERANCE, 0},
+{ 51, 3214344972u, 1839068700u, 1077406406u, 3013052171u, 1072693512u, 3372008771u, 0, COSH_TOLERANCE, 0},
+{ 52, 1066416574u, 772102380u, 3220729740u, 4219039958u, 1072693379u, 2736422544u, 0, COSH_TOLERANCE, 0},
+{ 53, 3223180765u, 3058618779u, 1046304788u, 3338676024u, 1082858658u, 288113767u, 0, COSH_TOLERANCE, 0},
+{ 54, 1067949353u, 506286854u, 1094907481u, 2217000199u, 1072694363u, 1851415872u, 0, COSH_TOLERANCE, 0},
+{ 55, 1076136854u, 1147428263u, 1065432625u, 3034786717u, 1087127673u, 1640783217u, 0, COSH_TOLERANCE, 0},
+{ 56, 1075725296u, 2844125311u, 1082985198u, 2561492677u, 1083060297u, 812604215u, 0, COSH_TOLERANCE, 0},
+{ 57, 3218876948u, 704542600u, 3222902057u, 2762779203u, 1072796430u, 3706016226u, 0, COSH_TOLERANCE, 0},
+{ 58, 3215409254u, 184131949u, 3249723525u, 1667366082u, 1072694329u, 1957018312u, 0, COSH_TOLERANCE, 0},
+{ 59, 3221512446u, 3904224140u, 1067056698u, 2942159914u, 1075426314u, 1203848820u, 0, COSH_TOLERANCE, 0},
+{ 60, 1080713919u, 426114282u, 3209056785u, 1083606355u, 1390879870u, 3657642479u, 0, COSH_TOLERANCE, 0},
+{ 61, 1082048697u, 3774123863u, 1106787580u, 2722107965u, 1815954824u, 2241806278u, 0, COSH_TOLERANCE, 0},
+{ 62, 1077519332u, 1377734762u, 1104232051u, 2377063483u, 1110428932u, 844049504u, 0, COSH_TOLERANCE, 0},
+{ 63, 1072526287u, 1029739074u, 1105467109u, 3062201018u, 1073169629u, 3757788751u, 0, COSH_TOLERANCE, 0},
+{ 64, 3225304413u, 773857656u, 3214251949u, 335833884u, 1117303861u, 3714139170u, 0, COSH_TOLERANCE, 0},
+{ 65, 3216856098u, 1473865960u, 1103073830u, 4000427507u, 1072700136u, 3810050038u, 0, COSH_TOLERANCE, 0},
+{ 66, 1081165135u, 4242092620u, 1067009473u, 14539161u, 1489589453u, 1225921132u, 0, COSH_TOLERANCE, 0},
+{ 67, 3214536170u, 1732245037u, 1101371955u, 1533536108u, 1072693584u, 789262791u, 0, COSH_TOLERANCE, 0},
+{ 68, 3228182475u, 1833841275u, 1099430098u, 4144145552u, 1388140140u, 2429748539u, 0, COSH_TOLERANCE, 0},
+{ 69, 3227493247u, 935007012u, 3188865420u, 604442938u, 1263004120u, 3099153891u, 0, COSH_TOLERANCE, 0},
+{ 70, 3217389013u, 2211464602u, 1046255144u, 1635910526u, 1072708019u, 4133545447u, 0, COSH_TOLERANCE, 0},
+{ 71, 1074725689u, 2549219008u, 3231633258u, 3733639385u, 1077420993u, 3573315642u, 0, COSH_TOLERANCE, 0},
+{ 72, 1075803633u, 1819374372u, 3202219056u, 2617077637u, 1083464179u, 4070461796u, 0, COSH_TOLERANCE, 0},
+{ 73, 1078616640u, 546465680u, 1048653554u, 532401530u, 1151433358u, 1660202510u, 0, COSH_TOLERANCE, 0},
+{ 74, 1066591187u, 2759019783u, 3221570188u, 3554409630u, 1072693426u, 1804445835u, 0, COSH_TOLERANCE, 0},
+{ 75, 3219222738u, 2527221960u, 1099107978u, 2696971136u, 1072852880u, 4070723488u, 0, COSH_TOLERANCE, 0},
+{ 76, 1079332208u, 173134582u, 1087299442u, 2877794600u, 1200522954u, 2450291402u, 0, COSH_TOLERANCE, 0},
+{ 77, 1076963290u, 547642046u, 3197285510u, 3521286127u, 1097525900u, 1604458500u, 0, COSH_TOLERANCE, 0},
+{ 78, 1073812126u, 1231582831u, 1090971734u, 1653446832u, 1074864811u, 1996198827u, 0, COSH_TOLERANCE, 0},
+{ 79, 1070779719u, 3762182190u, 3252967851u, 2615360375u, 1072738823u, 3172325200u, 0, COSH_TOLERANCE, 0},
+{ 80, 3216563063u, 2588067350u, 3206610957u, 3551059728u, 1072698194u, 4146036215u, 0, COSH_TOLERANCE, 0},
+{ 81, 3217464616u, 845263327u, 1073415902u, 1749010288u, 1072709655u, 139198688u, 0, COSH_TOLERANCE, 0},
+{ 82, 3217110706u, 3092685191u, 3190678390u, 2872219490u, 1072702744u, 974344816u, 0, COSH_TOLERANCE, 0},
+{ 83, 3220412207u, 4107255722u, 3205337291u, 3069068345u, 1073582488u, 3601775790u, 0, COSH_TOLERANCE, 0},
+{ 84, 3227213641u, 2294867524u, 3216653996u, 2860384670u, 1237260976u, 1311152806u, 0, COSH_TOLERANCE, 0},
+{ 85, 3214297870u, 2265437201u, 3240198679u, 1234948614u, 1072693496u, 2160301788u, 0, COSH_TOLERANCE, 0},
+{ 86, 3219505657u, 1186945904u, 3251167793u, 1896750851u, 1072945110u, 2441861331u, 0, COSH_TOLERANCE, 0},
+{ 87, 1075284022u, 3686084548u, 1079286273u, 3309277689u, 1080454737u, 1834280803u, 0, COSH_TOLERANCE, 0},
+{ 88, 3221379088u, 3006860614u, 3231412671u, 2504194724u, 1075053274u, 3685158235u, 0, COSH_TOLERANCE, 0},
+{ 89, 3224614924u, 1948717780u, 1048317852u, 3791803982u, 1101387050u, 776596525u, 0, COSH_TOLERANCE, 0},
+{ 90, 1070636471u, 4272034420u, 3192982124u, 1526175922u, 1072728787u, 177521945u, 0, COSH_TOLERANCE, 0},
+{ 91, 3226943458u, 4108948538u, 1104691287u, 640541190u, 1212283421u, 2139002760u, 0, COSH_TOLERANCE, 0},
+{ 92, 3217743177u, 3259274853u, 1082507103u, 3677038020u, 1072716427u, 776404209u, 0, COSH_TOLERANCE, 0},
+{ 93, 1076841042u, 3781708548u, 1096584871u, 1207386447u, 1095222699u, 77431u, 0, COSH_TOLERANCE, 0},
+{ 94, 3213861096u, 3011191657u, 1103798670u, 1096124830u, 1072693373u, 206751463u, 0, COSH_TOLERANCE, 0},
+{ 95, 1071623631u, 2540404725u, 3240157452u, 4122845725u, 1072824347u, 1612247748u, 0, COSH_TOLERANCE, 0},
+{ 96, 1076303678u, 311336721u, 3214382367u, 4212533768u, 1089026116u, 2664579205u, 0, COSH_TOLERANCE, 0},
+{ 97, 1067916643u, 1769686293u, 3240200923u, 3538602249u, 1072694316u, 3304105254u, 0, COSH_TOLERANCE, 0},
+{ 98, 1075081821u, 508056696u, 1103793878u, 776520138u, 1079295635u, 1807521048u, 0, COSH_TOLERANCE, 0},
+{ 99, 1080890481u, 4064962760u, 1077424413u, 819766631u, 1423488425u, 3317334315u, 0, COSH_TOLERANCE, 0},
+{ 100, 1074178362u, 2112385259u, 3227593179u, 1187058516u, 1075907720u, 3448229353u, 0, COSH_TOLERANCE, 0},
+{ 101, 1076003603u, 2514398118u, 1076579751u, 870169764u, 1085567394u, 4040666214u, 0, COSH_TOLERANCE, 0},
+{ 102, 3227977024u, 1190259653u, 1069112254u, 3417249840u, 1350163471u, 1074619959u, 0, COSH_TOLERANCE, 0},
+{ 103, 3214634603u, 3467757357u, 3215075200u, 2168175352u, 1072693624u, 1123141988u, 0, COSH_TOLERANCE, 0},
+{ 104, 3226011647u, 1508888184u, 1060430241u, 3524949092u, 1147319027u, 4152444040u, 0, COSH_TOLERANCE, 0},
+{ 105, 3215238675u, 166402802u, 3237198975u, 3572369260u, 1072694100u, 3674442469u, 0, COSH_TOLERANCE, 0},
+{ 106, 1075575366u, 2441536203u, 3202753937u, 3658194573u, 1082198549u, 1303886570u, 0, COSH_TOLERANCE, 0},
+{ 107, 1070781516u, 2479742828u, 1062342831u, 4214154303u, 1072738957u, 3022776512u, 0, COSH_TOLERANCE, 0},
+{ 108, 1076105338u, 426896765u, 1066474375u, 2201754442u, 1086731957u, 3468972475u, 0, COSH_TOLERANCE, 0},
+{ 109, 3214503389u, 2055773734u, 3239267288u, 291396537u, 1072693571u, 1450513960u, 0, COSH_TOLERANCE, 0},
+{ 110, 3224385121u, 874125203u, 3210508124u, 4091098764u, 1096086990u, 529374978u, 0, COSH_TOLERANCE, 0},
+{ 111, 1072007482u, 120488169u, 3241241441u, 1985269424u, 1072939813u, 2389502735u, 0, COSH_TOLERANCE, 0},
+{ 112, 3218073746u, 2243036871u, 3243941101u, 740033495u, 1072725997u, 3948893692u, 0, COSH_TOLERANCE, 0},
+{ 113, 3218862090u, 1176656356u, 1074261978u, 3588756231u, 1072794750u, 819787567u, 0, COSH_TOLERANCE, 0},
+{ 114, 3228699543u, 3037249392u, 1061635587u, 1173102190u, 1508329855u, 1211293113u, 0, COSH_TOLERANCE, 0},
+{ 115, 3224626669u, 2882725208u, 1071440059u, 69225090u, 1101667894u, 2351994968u, 0, COSH_TOLERANCE, 0},
+{ 116, 3218954930u, 272319256u, 1072073912u, 2493997123u, 1072805489u, 1686170561u, 0, COSH_TOLERANCE, 0},
+{ 117, 1070303098u, 188610379u, 3232757923u, 2209647371u, 1072717593u, 236808659u, 0, COSH_TOLERANCE, 0},
+{ 118, 3225224181u, 1990439193u, 1078073146u, 622849962u, 1115491532u, 3932839728u, 0, COSH_TOLERANCE, 0},
+{ 119, 1069718653u, 756052458u, 1081649113u, 2247475162u, 1072704351u, 3003850457u, 0, COSH_TOLERANCE, 0},
+{ 120, 1071060248u, 3878055211u, 3222407050u, 2979438623u, 1072762188u, 2461618929u, 0, COSH_TOLERANCE, 0},
+{ 121, 3214165365u, 2676398686u, 1105124431u, 3631096636u, 1072693453u, 2018804946u, 0, COSH_TOLERANCE, 0},
+{ 122, 1071370846u, 1697791764u, 3198136112u, 2299842819u, 1072793896u, 2354734361u, 0, COSH_TOLERANCE, 0},
+{ 123, 1074939040u, 1931502677u, 3215264397u, 3016456382u, 1078464791u, 2439295006u, 0, COSH_TOLERANCE, 0},
+{ 124, 1073302002u, 343404215u, 1061072607u, 4266232536u, 1074020614u, 4198175003u, 0, COSH_TOLERANCE, 0},
+{ 125, 3225502196u, 4140316002u, 1082896196u, 868256971u, 1123795724u, 3427688141u, 0, COSH_TOLERANCE, 0},
+{ 126, 1074374234u, 1864139509u, 3187675097u, 3084482407u, 1076410861u, 3327335940u, 0, COSH_TOLERANCE, 0},
+{ 127, 3220191323u, 2427162817u, 3234748208u, 2715105792u, 1073279818u, 1325802416u, 0, COSH_TOLERANCE, 0},
+{ 128, 1070891968u, 3943389284u, 1046724025u, 3626825684u, 1072747579u, 3427003319u, 0, COSH_TOLERANCE, 0},
+{ 129, 1067443098u, 967350972u, 1093012318u, 448002663u, 1072693756u, 2136965429u, 0, COSH_TOLERANCE, 0},
+{ 130, 3228777187u, 105058217u, 1069733884u, 171786224u, 1537057146u, 2944133190u, 0, COSH_TOLERANCE, 0},
+{ 131, 3213731756u, 2863482262u, 3204997271u, 877784425u, 1072693357u, 3990621442u, 0, COSH_TOLERANCE, 0},
+{ 132, 3216260801u, 2801782962u, 3213604117u, 762347195u, 1072696528u, 2729731056u, 0, COSH_TOLERANCE, 0},
+{ 133, 3224049543u, 2317950339u, 3246333414u, 2135700283u, 1092046479u, 699547095u, 0, COSH_TOLERANCE, 0},
+{ 134, 1069099309u, 4171919805u, 1082858682u, 2180920863u, 1072698316u, 2698555179u, 0, COSH_TOLERANCE, 0},
+{ 135, 3221197660u, 1918836931u, 1083603224u, 3137821660u, 1074615975u, 2866178825u, 0, COSH_TOLERANCE, 0},
+{ 136, 1081882778u, 3456203663u, 3235600523u, 2335688936u, 1754633057u, 4057860990u, 0, COSH_TOLERANCE, 0},
+{ 137, 1066396570u, 4170235262u, 1051824459u, 521583737u, 1072693375u, 1572125749u, 0, COSH_TOLERANCE, 0},
+{ 138, 1075056847u, 1296623194u, 3250673860u, 2442872540u, 1079172105u, 4063375717u, 0, COSH_TOLERANCE, 0},
+{ 139, 1071121461u, 289979405u, 1049514449u, 3865737145u, 1072767947u, 1956781744u, 0, COSH_TOLERANCE, 0},
+{ 140, 1074250368u, 3699090239u, 1054539840u, 3259249360u, 1076071149u, 1820335208u, 0, COSH_TOLERANCE, 0},
+{ 141, 1079640884u, 1619819023u, 1045993352u, 1022642459u, 1229016129u, 1444182022u, 0, COSH_TOLERANCE, 0},
+{ 142, 1075141548u, 19455098u, 3229182089u, 2096003654u, 1079643489u, 1763506935u, 0, COSH_TOLERANCE, 0},
+{ 143, 1074200784u, 3803689997u, 1071630912u, 2263729518u, 1075956212u, 541371697u, 0, COSH_TOLERANCE, 0},
+{ 144, 1080385741u, 2816837387u, 1063422305u, 2597606398u, 1330293545u, 1095829056u, 0, COSH_TOLERANCE, 0},
+{ 145, 1072245897u, 3680967506u, 1040201163u, 179224723u, 1073034800u, 1106942961u, 0, COSH_TOLERANCE, 0},
+{ 146, 3213795591u, 978126928u, 1101553990u, 4047893399u, 1072693365u, 1156495186u, 0, COSH_TOLERANCE, 0},
+{ 147, 3221273469u, 4059818629u, 1042678728u, 3640293589u, 1074819359u, 1680813367u, 0, COSH_TOLERANCE, 0},
+{ 148, 3228541096u, 3383497159u, 1070002807u, 1527313008u, 1454398110u, 4173296238u, 0, COSH_TOLERANCE, 0},
+{ 149, 3216339167u, 2599946514u, 1104170406u, 2738675352u, 1072696927u, 3659150073u, 0, COSH_TOLERANCE, 0},
+{ 150, 1081115375u, 3616571377u, 1060859316u, 1130603218u, 1471256027u, 3187069287u, 0, COSH_TOLERANCE, 0},
+{ 151, 1073931644u, 3859211180u, 1067940450u, 1744531824u, 1075145206u, 3259882951u, 0, COSH_TOLERANCE, 0},
+{ 152, 1065900012u, 1958025850u, 3236511256u, 2472176453u, 1072693322u, 327825150u, 0, COSH_TOLERANCE, 0},
+{ 153, 3223669905u, 182132862u, 3250520938u, 3924356991u, 1087674283u, 2611530335u, 0, COSH_TOLERANCE, 0},
+{ 154, 3224210428u, 35632886u, 3209806504u, 1453402523u, 1093919296u, 1099362036u, 0, COSH_TOLERANCE, 0},
+{ 155, 1076182070u, 743225214u, 3202890678u, 142917400u, 1087631855u, 3785393671u, 0, COSH_TOLERANCE, 0},
+{ 156, 1075442096u, 1472665012u, 3203138231u, 256588219u, 1081376587u, 3032890454u, 0, COSH_TOLERANCE, 0},
+{ 157, 1079253522u, 1062927000u, 1061134072u, 931677439u, 1193281892u, 3538812810u, 0, COSH_TOLERANCE, 0},
+{ 158, 1069912068u, 2320910576u, 1055663370u, 288059864u, 1072708161u, 1882746750u, 0, COSH_TOLERANCE, 0},
+{ 159, 1075812365u, 1448349062u, 3199478070u, 3454027134u, 1083509354u, 3244981512u, 0, COSH_TOLERANCE, 0},
+{ 160, 3224875886u, 4215445172u, 3196654963u, 2231888973u, 1107446504u, 159529183u, 0, COSH_TOLERANCE, 0},
+{ 161, 3227757863u, 40413554u, 3232578253u, 983832844u, 1309743639u, 1304081657u, 0, COSH_TOLERANCE, 0},
+{ 162, 3221624382u, 3995725873u, 1050082319u, 777231627u, 1075822815u, 4273229959u, 0, COSH_TOLERANCE, 0},
+{ 163, 1066152450u, 672789828u, 3253385962u, 2982787335u, 1072693347u, 1605275833u, 0, COSH_TOLERANCE, 0},
+{ 164, 1072585179u, 2075971825u, 1070166500u, 4034633931u, 1073201328u, 3750652822u, 0, COSH_TOLERANCE, 0},
+{ 165, 3218434785u, 1018222907u, 3244621407u, 3090050495u, 1072752512u, 3396710540u, 0, COSH_TOLERANCE, 0},
+{ 166, 1071875189u, 937732557u, 3200798890u, 2557898276u, 1072894405u, 2050433952u, 0, COSH_TOLERANCE, 0},
+{ 167, 1075196588u, 130346162u, 3223590310u, 275568693u, 1080037821u, 3469976951u, 0, COSH_TOLERANCE, 0},
+{ 168, 1065967541u, 3807416441u, 1075961161u, 3706820266u, 1072693328u, 2062373411u, 0, COSH_TOLERANCE, 0},
+{ 169, 3219244733u, 1710131411u, 1078123323u, 1900790503u, 1072859242u, 2262607443u, 0, COSH_TOLERANCE, 0},
+{ 170, 3226236449u, 3420420033u, 3210844787u, 588423066u, 1157720745u, 774296256u, 0, COSH_TOLERANCE, 0},
+{ 171, 1067509906u, 1160162008u, 3246307879u, 4265764460u, 1072693819u, 3631349776u, 0, COSH_TOLERANCE, 0},
+{ 172, 1080523338u, 366653268u, 3188814424u, 466059202u, 1355764484u, 760636581u, 0, COSH_TOLERANCE, 0},
+{ 173, 3222433435u, 1325936170u, 3221436876u, 680097612u, 1078530781u, 3669498780u, 0, COSH_TOLERANCE, 0},
+{ 174, 3225711052u, 1827735934u, 3200554324u, 2875599271u, 1133496792u, 2135776268u, 0, COSH_TOLERANCE, 0},
+{ 175, 3213050498u, 3117037091u, 3239246636u, 15838845u, 1072693294u, 1579961608u, 0, COSH_TOLERANCE, 0},
+{ 176, 1067702644u, 749718883u, 3223587064u, 1523766569u, 1072694036u, 422449494u, 0, COSH_TOLERANCE, 0},
+{ 177, 1066853747u, 1966536294u, 3250158026u, 699164258u, 1072693510u, 562801207u, 0, COSH_TOLERANCE, 0},
+{ 178, 1079174067u, 3759049394u, 1106085272u, 1183789499u, 1185944512u, 3807740687u, 0, COSH_TOLERANCE, 0},
+{ 179, 1074910167u, 1970107747u, 1095245453u, 2308233883u, 1078300334u, 1661985235u, 0, COSH_TOLERANCE, 0},
+{ 180, 1076367836u, 1491017852u, 1041444355u, 1723375725u, 1089770148u, 2037745521u, 0, COSH_TOLERANCE, 0},
+{ 181, 3219775798u, 1141349287u, 1097465301u, 3403438584u, 1073055268u, 2358787186u, 0, COSH_TOLERANCE, 0},
+{ 182, 3224280452u, 1711085243u, 3250239076u, 1377484108u, 1094776418u, 2040663178u, 0, COSH_TOLERANCE, 0},
+{ 183, 1079510651u, 2880275004u, 1084039594u, 1611394950u, 1216939131u, 2867297031u, 0, COSH_TOLERANCE, 0},
+{ 184, 3224784251u, 2626629370u, 1063771493u, 1499080813u, 1105335110u, 3654476853u, 0, COSH_TOLERANCE, 0},
+{ 185, 1068862751u, 3936262414u, 1103919063u, 3175668759u, 1072696965u, 3660378434u, 0, COSH_TOLERANCE, 0},
+{ 186, 3217418903u, 1270950554u, 3194616071u, 3680565379u, 1072708656u, 267045490u, 0, COSH_TOLERANCE, 0},
+{ 187, 3217585407u, 1066985223u, 3221613219u, 4089383168u, 1072712446u, 4162711102u, 0, COSH_TOLERANCE, 0},
+{ 188, 3220204567u, 4017329311u, 3208334452u, 1667591498u, 1073295796u, 2773972944u, 0, COSH_TOLERANCE, 0},
+{ 189, 1077678397u, 3154656624u, 1061894279u, 3886344038u, 1114014484u, 1143078455u, 0, COSH_TOLERANCE, 0},
+{ 190, 1068478737u, 977586119u, 3209762784u, 953839852u, 1072695257u, 1568551512u, 0, COSH_TOLERANCE, 0},
+{ 191, 1081896575u, 143071571u, 3206165386u, 913097445u, 1759744561u, 1725664653u, 0, COSH_TOLERANCE, 0},
+{ 192, 3213634128u, 1371169579u, 1057079837u, 2594818628u, 1072693347u, 695760778u, 0, COSH_TOLERANCE, 0},
+{ 193, 3228724664u, 2259342224u, 3217432469u, 1824221478u, 1517614491u, 1347867273u, 0, COSH_TOLERANCE, 0},
+{ 194, 3227960407u, 1576604497u, 1079368611u, 185078728u, 1347106434u, 3370329867u, 0, COSH_TOLERANCE, 0},
+{ 195, 3221679427u, 444800035u, 3243343143u, 1734989302u, 1075945204u, 3272065637u, 0, COSH_TOLERANCE, 0},
+{ 196, 1072748883u, 130452005u, 1041548088u, 2158433515u, 1073330400u, 1602882483u, 0, COSH_TOLERANCE, 0},
+{ 197, 3225258784u, 1941318385u, 1045807374u, 792193370u, 1116250287u, 3103118402u, 0, COSH_TOLERANCE, 0},
+{ 198, 3225716754u, 1299392207u, 3212131720u, 3205732280u, 1133701703u, 3451158556u, 0, COSH_TOLERANCE, 0},
+{ 199, 1079824436u, 3035093505u, 1052187689u, 3287702190u, 1245928697u, 3659026689u, 0, COSH_TOLERANCE, 0},
+{ 200, 3227801892u, 2160225215u, 1102624859u, 836655570u, 1317853110u, 1753278920u, 0, COSH_TOLERANCE, 0},
+{ 201, 1079946410u, 3360816360u, 3246176356u, 172860634u, 1257254087u, 595783054u, 0, COSH_TOLERANCE, 0},
+{ 202, 1073092940u, 146831910u, 1051558014u, 2340722078u, 1073802343u, 192170069u, 0, COSH_TOLERANCE, 0},
+{ 203, 3224124895u, 1603798153u, 3207725532u, 1099413093u, 1092924694u, 2401380251u, 0, COSH_TOLERANCE, 0},
+{ 204, 3227804010u, 2429340443u, 3190303581u, 3223770005u, 1318235431u, 1901620640u, 0, COSH_TOLERANCE, 0},
+{ 205, 1073785807u, 955542166u, 3230415151u, 275583938u, 1074811387u, 2594666488u, 0, COSH_TOLERANCE, 0},
+{ 206, 1078291818u, 513397822u, 1090646554u, 2089321329u, 1136418636u, 351397573u, 0, COSH_TOLERANCE, 0},
+{ 207, 3214141396u, 2782073372u, 1046063872u, 4023829068u, 1072693446u, 525984948u, 0, COSH_TOLERANCE, 0},
+{ 208, 1079690454u, 3242223094u, 3194111199u, 4264674108u, 1233536710u, 346227329u, 0, COSH_TOLERANCE, 0},
+{ 209, 3225927909u, 3506346169u, 1047020885u, 1742757458u, 1143421892u, 2781434878u, 0, COSH_TOLERANCE, 0},
+{ 210, 3214684573u, 1265459564u, 3193450280u, 3650514880u, 1072693645u, 2020640906u, 0, COSH_TOLERANCE, 0},
+{ 211, 1075464434u, 1525260440u, 3235452527u, 2612331392u, 1081496072u, 2899446050u, 0, COSH_TOLERANCE, 0},
+{ 212, 3227697400u, 1263613754u, 3219096387u, 635677201u, 1298518908u, 459760033u, 0, COSH_TOLERANCE, 0},
+{ 213, 3217806423u, 4140947288u, 3200792376u, 2013265346u, 1072718129u, 500268673u, 0, COSH_TOLERANCE, 0},
+{ 214, 3227954296u, 1912759945u, 3237045253u, 1351396825u, 1345966111u, 1464931509u, 0, COSH_TOLERANCE, 0},
+{ 215, 3228282218u, 1001433078u, 3206926643u, 2741676659u, 1406514744u, 3156202362u, 0, COSH_TOLERANCE, 0},
+{ 216, 1075680726u, 1088945233u, 1085095743u, 3986114865u, 1082750959u, 2813999483u, 0, COSH_TOLERANCE, 0},
+{ 217, 3219928361u, 831239754u, 1099828675u, 3071308141u, 1073127703u, 3507722226u, 0, COSH_TOLERANCE, 0},
+{ 218, 3222688769u, 3473592372u, 1102759382u, 1309576357u, 1080072667u, 3702574099u, 0, COSH_TOLERANCE, 0},
+{ 219, 3229166610u, 2042340367u, 1091945628u, 2062772374u, 1680905763u, 210474498u, 0, COSH_TOLERANCE, 0},
+{ 220, 3214688631u, 1840632537u, 1096533424u, 807510337u, 1072693647u, 938142822u, 0, COSH_TOLERANCE, 0},
+{ 221, 3224111690u, 144814872u, 3212698915u, 2282965697u, 1092794632u, 1680580331u, 0, COSH_TOLERANCE, 0},
+{ 222, 1073333582u, 2552499583u, 3229111426u, 1470130815u, 1074057948u, 4239780720u, 0, COSH_TOLERANCE, 0},
+{ 223, 3227364425u, 2858583811u, 1089760910u, 6360994u, 1251137827u, 697276436u, 0, COSH_TOLERANCE, 0},
+{ 224, 3215042145u, 1614537194u, 1075198900u, 4088705365u, 1072693871u, 435034830u, 0, COSH_TOLERANCE, 0},
+{ 225, 3228918974u, 3545570051u, 1065221325u, 1629217700u, 1589407573u, 229769802u, 0, COSH_TOLERANCE, 0},
+{ 226, 1072744324u, 1813392963u, 3235313361u, 3772501596u, 1073324678u, 267422968u, 0, COSH_TOLERANCE, 0},
+{ 227, 3215677054u, 2406734491u, 1042055360u, 89226663u, 1072694743u, 314704995u, 0, COSH_TOLERANCE, 0},
+{ 228, 3214625449u, 1618759139u, 3194723421u, 3888234802u, 1072693620u, 1885675412u, 0, COSH_TOLERANCE, 0},
+{ 229, 1068988736u, 3590035633u, 3212424262u, 2892456615u, 1072697659u, 797486592u, 0, COSH_TOLERANCE, 0},
+{ 230, 3213011732u, 2431246964u, 3241512456u, 183850734u, 1072693291u, 2419777582u, 0, COSH_TOLERANCE, 0},
+{ 231, 1076918189u, 3088319870u, 3211544311u, 862225364u, 1096486112u, 1720101621u, 0, COSH_TOLERANCE, 0},
+{ 232, 3224808904u, 3495352775u, 1058576726u, 596957268u, 1105876117u, 1924270502u, 0, COSH_TOLERANCE, 0},
+{ 233, 1066476292u, 1839214511u, 3205004060u, 1923240983u, 1072693394u, 3599825330u, 0, COSH_TOLERANCE, 0},
+{ 234, 1069608200u, 739619702u, 3223356436u, 2689885273u, 1072702428u, 3984013578u, 0, COSH_TOLERANCE, 0},
+{ 235, 3216053611u, 2143376228u, 1098306332u, 3760236188u, 1072695583u, 2926029591u, 0, COSH_TOLERANCE, 0},
+{ 236, 1074621795u, 671680995u, 1091262633u, 2315535361u, 1077136875u, 826067980u, 0, COSH_TOLERANCE, 0},
+{ 237, 3219408869u, 2493598049u, 3194927008u, 1689107592u, 1072910984u, 1200702158u, 0, COSH_TOLERANCE, 0},
+{ 238, 3213058631u, 1578976988u, 1066368383u, 2117279163u, 1072693294u, 4154544241u, 0, COSH_TOLERANCE, 0},
+{ 239, 3221939535u, 3425290087u, 1098487295u, 1263412017u, 1076683118u, 1001936109u, 0, COSH_TOLERANCE, 0},
+{ 240, 3217869948u, 3635396812u, 1070999426u, 3965655689u, 1072719899u, 4191291117u, 0, COSH_TOLERANCE, 0},
+{ 241, 1069633530u, 2183973116u, 1101098363u, 1118613350u, 1072702853u, 2843946852u, 0, COSH_TOLERANCE, 0},
+{ 242, 3221946089u, 199516350u, 1078368488u, 164621458u, 1076706867u, 2653466916u, 0, COSH_TOLERANCE, 0},
+{ 243, 3212871842u, 3570940805u, 3230316437u, 3596080877u, 1072693282u, 733293125u, 0, COSH_TOLERANCE, 0},
+{ 244, 3217646749u, 980880313u, 1079833442u, 884465057u, 1072713949u, 2327888183u, 0, COSH_TOLERANCE, 0},
+{ 245, 1080054180u, 2558179220u, 1052873711u, 1233598120u, 1269060948u, 2524660391u, 0, COSH_TOLERANCE, 0},
+{ 246, 1067038165u, 1909994277u, 1085015978u, 2991527452u, 1072693578u, 2262681612u, 0, COSH_TOLERANCE, 0},
+{ 247, 1070292444u, 1680290941u, 1074309900u, 2943870846u, 1072717305u, 1264785041u, 0, COSH_TOLERANCE, 0},
+{ 248, 1069981892u, 1451927357u, 3228615456u, 1502585517u, 1072709675u, 2378690044u, 0, COSH_TOLERANCE, 0},
+{ 249, 3224677615u, 751136990u, 3230392165u, 3493275472u, 1102866871u, 215829603u, 0, COSH_TOLERANCE, 0},
+{ 250, 1079491599u, 1209623292u, 3238056647u, 979495322u, 1215252451u, 1345426533u, 0, COSH_TOLERANCE, 0},
+{ 251, 3228404200u, 1717672108u, 1048120593u, 531240316u, 1429099700u, 3462906838u, 0, COSH_TOLERANCE, 0},
+{ 252, 1068854987u, 3548721654u, 1086112947u, 3391817224u, 1072696925u, 281688495u, 0, COSH_TOLERANCE, 0},
+{ 253, 1074691123u, 2758195125u, 1100880260u, 2028440924u, 1077320145u, 4283533331u, 0, COSH_TOLERANCE, 0},
+{ 254, 1076883861u, 2750123373u, 3232200256u, 1086294931u, 1095793270u, 788833266u, 0, COSH_TOLERANCE, 0},
+{ 255, 1065978768u, 2986160931u, 1076097908u, 2540046258u, 1072693329u, 2450552268u, 0, COSH_TOLERANCE, 0},
+{ 256, 3224990842u, 451471221u, 1064816262u, 4187644495u, 1110076565u, 655095513u, 0, COSH_TOLERANCE, 0},
+{ 257, 1080585860u, 2439500162u, 1065280276u, 1979490284u, 1367314315u, 4075308906u, 0, COSH_TOLERANCE, 0},
+{ 258, 1065581656u, 2283342035u, 1078398157u, 1345997553u, 1072693295u, 1984477633u, 0, COSH_TOLERANCE, 0},
+{ 259, 3219540804u, 179066662u, 1103272172u, 1217337578u, 1072958184u, 2633513687u, 0, COSH_TOLERANCE, 0},
+{ 260, 3218902409u, 3779303391u, 3210023352u, 3115946280u, 1072799344u, 2662349015u, 0, COSH_TOLERANCE, 0},
+{ 261, 3213961394u, 286247089u, 1085153597u, 713645369u, 1072693395u, 938537965u, 0, COSH_TOLERANCE, 0},
+{ 262, 1077941860u, 1468283899u, 1042831668u, 2022736418u, 1120232171u, 2888650454u, 0, COSH_TOLERANCE, 0},
+{ 263, 1076847649u, 3305564080u, 1065483445u, 482392433u, 1095303241u, 3604886385u, 0, COSH_TOLERANCE, 0},
+{ 264, 3216375871u, 2256346551u, 3222430705u, 2071674991u, 1072697122u, 3114668340u, 0, COSH_TOLERANCE, 0},
+{ 265, 3216607607u, 2295269094u, 1084451053u, 2773103941u, 1072698469u, 1831807840u, 0, COSH_TOLERANCE, 0},
+{ 266, 1075028218u, 1482721827u, 1092243422u, 3125409590u, 1079044245u, 1232254491u, 0, COSH_TOLERANCE, 0},
+{ 267, 3221065973u, 1381740563u, 1071545057u, 2918235653u, 1074398228u, 2786573068u, 0, COSH_TOLERANCE, 0},
+{ 268, 3226133060u, 1105857967u, 3241990046u, 2703723225u, 1152893521u, 2850491479u, 0, COSH_TOLERANCE, 0},
+{ 269, 1066084243u, 174689677u, 1079333374u, 3947057014u, 1072693340u, 742181246u, 0, COSH_TOLERANCE, 0},
+{ 270, 1077878947u, 2023082423u, 3242081486u, 1169047927u, 1118700325u, 3426525989u, 0, COSH_TOLERANCE, 0},
+{ 271, 1070817355u, 3742487766u, 1043425732u, 194972788u, 1072741671u, 3984460825u, 0, COSH_TOLERANCE, 0},
+{ 272, 3220083283u, 2136071361u, 3211529757u, 993675115u, 1073209296u, 2409955736u, 0, COSH_TOLERANCE, 0},
+{ 273, 3219954837u, 210772141u, 3241441539u, 580731413u, 1073141062u, 1932588337u, 0, COSH_TOLERANCE, 0},
+{ 274, 1078111773u, 1751560711u, 1074522705u, 180987057u, 1128126630u, 2518765659u, 0, COSH_TOLERANCE, 0},
+{ 275, 1071997471u, 2552236599u, 1088658621u, 2112468655u, 1072936199u, 2897169212u, 0, COSH_TOLERANCE, 0},
+{ 276, 3213407865u, 1578223762u, 3224596567u, 2456166162u, 1072693324u, 1465320139u, 0, COSH_TOLERANCE, 0},
+{ 277, 1070041301u, 2110924310u, 1086207177u, 3161208323u, 1072711021u, 3971776018u, 0, COSH_TOLERANCE, 0},
+{ 278, 3223474786u, 2352173188u, 1079361728u, 4070222179u, 1085445849u, 578433019u, 0, COSH_TOLERANCE, 0},
+{ 279, 1080041384u, 2481562701u, 1090937016u, 3809489716u, 1266749058u, 404634930u, 0, COSH_TOLERANCE, 0},
+{ 280, 3215877019u, 330905705u, 1086260896u, 90264431u, 1072695095u, 2298955529u, 0, COSH_TOLERANCE, 0},
+{ 281, 1065895785u, 4162008079u, 3194387916u, 759522153u, 1072693321u, 2939280632u, 0, COSH_TOLERANCE, 0},
+{ 282, 1075772157u, 1839697482u, 3216442625u, 2211508949u, 1083313275u, 3907126828u, 0, COSH_TOLERANCE, 0},
+{ 283, 3227787115u, 3736863454u, 1063475914u, 3150741666u, 1315110814u, 1556023783u, 0, COSH_TOLERANCE, 0},
+{ 284, 1070223067u, 4200269406u, 3236646101u, 1061812176u, 1072715473u, 2995155516u, 0, COSH_TOLERANCE, 0},
+{ 285, 1074975099u, 106027290u, 3234978297u, 2245237549u, 1078697327u, 2130268559u, 0, COSH_TOLERANCE, 0},
+{ 286, 3228109966u, 2132131375u, 3250483427u, 3449276437u, 1374762386u, 2754991195u, 0, COSH_TOLERANCE, 0},
+{ 287, 1077854442u, 2334440944u, 1105423490u, 4004336184u, 1118086726u, 1452344798u, 0, COSH_TOLERANCE, 0},
+{ 288, 3220869856u, 4090088208u, 1042030013u, 3898658299u, 1074122930u, 2876824951u, 0, COSH_TOLERANCE, 0},
+{ 289, 3217345248u, 2272831437u, 3253082595u, 2639188641u, 1072707112u, 3996072429u, 0, COSH_TOLERANCE, 0},
+{ 290, 1069446748u, 1856594168u, 3189515294u, 4101853676u, 1072700680u, 1721485335u, 0, COSH_TOLERANCE, 0},
+{ 291, 1073915260u, 2211699255u, 3195060344u, 3865018604u, 1075102800u, 1125779193u, 0, COSH_TOLERANCE, 0},
+{ 292, 3227038370u, 996259334u, 3241496889u, 3782673116u, 1221003247u, 1357097126u, 0, COSH_TOLERANCE, 0},
+{ 293, 1080256379u, 3840380763u, 1048674041u, 550040067u, 1306461489u, 928374556u, 0, COSH_TOLERANCE, 0},
+{ 294, 3229399497u, 95874100u, 3237232828u, 2645647822u, 1766909843u, 3490239415u, 0, COSH_TOLERANCE, 0},
+{ 295, 1065685736u, 3441419500u, 3252367038u, 876710419u, 1072693303u, 2207449341u, 0, COSH_TOLERANCE, 0},
+{ 296, 3226010640u, 2560836004u, 3199616543u, 1180840586u, 1147281949u, 3335028675u, 0, COSH_TOLERANCE, 0},
+{ 297, 3221602966u, 2218230392u, 3227485787u, 3947214579u, 1075740200u, 2468828995u, 0, COSH_TOLERANCE, 0},
+{ 298, 1075345350u, 1447312532u, 1081476588u, 780366847u, 1080842197u, 2196210744u, 0, COSH_TOLERANCE, 0},
+{ 299, 1073618219u, 2842113832u, 3216156731u, 225159029u, 1074454774u, 2913703556u, 0, COSH_TOLERANCE, 0},
+{ 300, 1079242825u, 1601981129u, 3234628869u, 2236538344u, 1192276494u, 2364090570u, 0, COSH_TOLERANCE, 0},
+{ 301, 1076784916u, 2194185737u, 3242362684u, 87913366u, 1094646719u, 2239129684u, 0, COSH_TOLERANCE, 0},
+{ 302, 3215861096u, 1346862963u, 1077836259u, 3604666660u, 1072695066u, 440704647u, 0, COSH_TOLERANCE, 0},
+{ 303, 3218547435u, 3115209742u, 1099332326u, 1325101950u, 1072762515u, 59651451u, 0, COSH_TOLERANCE, 0},
+{ 304, 3221400314u, 3889223100u, 1053247613u, 3371396923u, 1075106387u, 2524506776u, 0, COSH_TOLERANCE, 0},
+{ 305, 3220477868u, 4163120793u, 1075022670u, 1387631215u, 1073688400u, 3535902313u, 0, COSH_TOLERANCE, 0},
+{ 306, 3218064691u, 1532426189u, 1063168268u, 3397022615u, 1072725713u, 1946389065u, 0, COSH_TOLERANCE, 0},
+{ 307, 3216761961u, 89324166u, 1079206060u, 3429424710u, 1072699477u, 4166825646u, 0, COSH_TOLERANCE, 0},
+{ 308, 3214345198u, 747591401u, 1072238381u, 2803213904u, 1072693512u, 3712512165u, 0, COSH_TOLERANCE, 0},
+{ 309, 1078530868u, 271904221u, 1044258318u, 1858545114u, 1147431148u, 2228394364u, 0, COSH_TOLERANCE, 0},
+{ 310, 3222826034u, 314958082u, 3249912496u, 2966213175u, 1080821311u, 3940918208u, 0, COSH_TOLERANCE, 0},
+{ 311, 3215005206u, 3119528953u, 3217179014u, 2908718240u, 1072693831u, 4021851488u, 0, COSH_TOLERANCE, 0},
+{ 312, 3226738936u, 2018361566u, 1100926600u, 3985805054u, 1193401522u, 2660715245u, 0, COSH_TOLERANCE, 0},
+{ 313, 1073278308u, 409584884u, 3239758947u, 755795129u, 1073993396u, 3069689441u, 0, COSH_TOLERANCE, 0},
+{ 314, 1074723870u, 1819156379u, 3251342302u, 2982669005u, 1077415518u, 3369394811u, 0, COSH_TOLERANCE, 0},
+{ 315, 1080591913u, 2080534280u, 3188254060u, 449171797u, 1368425681u, 3068381489u, 0, COSH_TOLERANCE, 0},
+{ 316, 1079179684u, 168744837u, 3214950009u, 1322217822u, 1186375305u, 280204842u, 0, COSH_TOLERANCE, 0},
+{ 317, 3229061076u, 3250487255u, 1062120700u, 1876195180u, 1641903706u, 3427323764u, 0, COSH_TOLERANCE, 0},
+{ 318, 3223197752u, 1336400247u, 1098057903u, 3314079581u, 1082977604u, 2978454035u, 0, COSH_TOLERANCE, 0},
+{ 319, 3216261732u, 265025555u, 1063854282u, 3779482256u, 1072696533u, 1033696308u, 0, COSH_TOLERANCE, 0},
+{ 320, 1072543381u, 887044257u, 1054789618u, 2732056261u, 1073178705u, 3462589012u, 0, COSH_TOLERANCE, 0},
+{ 321, 1067932534u, 4027115185u, 3191764868u, 2940199511u, 1072694339u, 1351370649u, 0, COSH_TOLERANCE, 0},
+{ 322, 3216131643u, 2875684421u, 3227459837u, 2251967570u, 1072695920u, 3217040934u, 0, COSH_TOLERANCE, 0},
+{ 323, 1071633020u, 284173546u, 3238823679u, 3557800647u, 1072825560u, 612997882u, 0, COSH_TOLERANCE, 0},
+{ 324, 1080487040u, 3147771266u, 3220110464u, 2933364246u, 1348984230u, 3038347863u, 0, COSH_TOLERANCE, 0},
+{ 325, 1071144616u, 3366183281u, 3234870843u, 537442654u, 1072770188u, 1133518616u, 0, COSH_TOLERANCE, 0},
+{ 326, 3227341572u, 2529029548u, 3249882819u, 3781513577u, 1249030162u, 3889526767u, 0, COSH_TOLERANCE, 0},
+{ 327, 3219727810u, 1080845539u, 3206760016u, 911778687u, 1073034045u, 1789981630u, 0, COSH_TOLERANCE, 0},
+{ 328, 3213971132u, 469586759u, 1091830022u, 3080528840u, 1072693397u, 3347259082u, 0, COSH_TOLERANCE, 0},
+{ 329, 1075006224u, 2863108169u, 3225605506u, 2508274250u, 1078925453u, 184242647u, 0, COSH_TOLERANCE, 0},
+{ 330, 3218167016u, 4080017377u, 3206492941u, 1470284690u, 1072731933u, 456187951u, 0, COSH_TOLERANCE, 0},
+{ 331, 3217606150u, 3867917386u, 1102054928u, 3504746045u, 1072712948u, 2971602982u, 0, COSH_TOLERANCE, 0},
+{ 332, 1070813735u, 2962134101u, 3244741577u, 3390537350u, 1072741394u, 543292184u, 0, COSH_TOLERANCE, 0},
+{ 333, 1077716053u, 1702237980u, 1071598971u, 1102587474u, 1114898104u, 2058865259u, 0, COSH_TOLERANCE, 0},
+{ 334, 3216601606u, 2180218657u, 3211592260u, 1206527853u, 1072698432u, 76209351u, 0, COSH_TOLERANCE, 0},
+{ 335, 3215959112u, 394130786u, 3242511482u, 2437699868u, 1072695251u, 149960380u, 0, COSH_TOLERANCE, 0},
+{ 336, 1066257155u, 849581558u, 3252006507u, 2008614943u, 1072693358u, 4101451221u, 0, COSH_TOLERANCE, 0},
+{ 337, 3218528622u, 3128971673u, 3249137531u, 2773583059u, 1072760788u, 3100318414u, 0, COSH_TOLERANCE, 0},
+{ 338, 1076641258u, 590727700u, 3248651761u, 2183878539u, 1092924806u, 51935964u, 0, COSH_TOLERANCE, 0},
+{ 339, 1080127109u, 820687580u, 3208143496u, 1402434664u, 1282555424u, 2229435922u, 0, COSH_TOLERANCE, 0},
+{ 340, 3229222163u, 1873709254u, 3245167989u, 44275991u, 1701351914u, 2238140986u, 0, COSH_TOLERANCE, 0},
+{ 341, 3213786001u, 1174874204u, 3208263730u, 2360372288u, 1072693364u, 650293763u, 0, COSH_TOLERANCE, 0},
+{ 342, 1081834580u, 937573440u, 3208953761u, 211240241u, 1736830458u, 1339532059u, 0, COSH_TOLERANCE, 0},
+{ 343, 3226771718u, 2469774991u, 1043117070u, 3380071805u, 1196458784u, 2866315288u, 0, COSH_TOLERANCE, 0},
+{ 344, 1069655378u, 442507560u, 3254252803u, 3257889649u, 1072703227u, 3214474808u, 0, COSH_TOLERANCE, 0},
+{ 345, 1071996248u, 1854921625u, 1049810168u, 2729627545u, 1072935760u, 506924846u, 0, COSH_TOLERANCE, 0},
+{ 346, 3229546805u, 4001809575u, 3240128649u, 278261523u, 1821325618u, 2670070781u, 0, COSH_TOLERANCE, 0},
+{ 347, 1077787510u, 1793907966u, 3238955714u, 398859249u, 1116585698u, 3075914843u, 0, COSH_TOLERANCE, 0},
+{ 348, 3216681187u, 2511916952u, 3219195283u, 1697158299u, 1072698939u, 287923426u, 0, COSH_TOLERANCE, 0},
+{ 349, 1073131276u, 3230931724u, 3243897690u, 3508781585u, 1073838825u, 19759326u, 0, COSH_TOLERANCE, 0},
+{ 350, 1081827510u, 1674254897u, 1046547577u, 217148561u, 1734293969u, 3735031445u, 0, COSH_TOLERANCE, 0},
+{ 351, 3218603986u, 3275604304u, 3194840159u, 2991205850u, 1072767839u, 3088730970u, 0, COSH_TOLERANCE, 0},
+{ 352, 3214123743u, 3509997278u, 3248888030u, 3897986511u, 1072693440u, 3421485015u, 0, COSH_TOLERANCE, 0},
+{ 353, 1067105379u, 2156824613u, 1042295665u, 1239257646u, 1072693605u, 1822348699u, 0, COSH_TOLERANCE, 0},
+{ 354, 3219555541u, 1073153314u, 3250031627u, 2567234990u, 1072963776u, 815746145u, 0, COSH_TOLERANCE, 0},
+{ 355, 3213662084u, 4261696995u, 3197784432u, 323702024u, 1072693350u, 809860393u, 0, COSH_TOLERANCE, 0},
+{ 356, 3226913781u, 4075177615u, 3202791065u, 1919006082u, 1209499947u, 316750843u, 0, COSH_TOLERANCE, 0},
+{ 357, 3225638525u, 386429966u, 1086504491u, 3698826164u, 1130089950u, 2126562020u, 0, COSH_TOLERANCE, 0},
+{ 358, 1075181462u, 1681986446u, 3194985869u, 3072950140u, 1079924277u, 2975252779u, 0, COSH_TOLERANCE, 0},
+{ 359, 3220457661u, 3719038997u, 1055433962u, 3331415058u, 1073654972u, 2206416840u, 0, COSH_TOLERANCE, 0},
+{ 360, 1070186897u, 2420250111u, 3238002206u, 1928661079u, 1072714547u, 3530074895u, 0, COSH_TOLERANCE, 0},
+{ 361, 1075622754u, 3679866727u, 3227386672u, 1273835792u, 1082419812u, 3179745956u, 0, COSH_TOLERANCE, 0},
+{ 362, 1065739986u, 2682092368u, 3234222284u, 1325425811u, 1072693307u, 4126875442u, 0, COSH_TOLERANCE, 0},
+{ 363, 1068895525u, 4175172697u, 3208346191u, 2130706153u, 1072697140u, 2173065822u, 0, COSH_TOLERANCE, 0},
+{ 364, 1078458136u, 1200784450u, 1083605096u, 1248595607u, 1144110494u, 3624009342u, 0, COSH_TOLERANCE, 0},
+{ 365, 3219133743u, 1897285171u, 3251296075u, 944966123u, 1072828490u, 2338958613u, 0, COSH_TOLERANCE, 0},
+{ 366, 3225642610u, 2270747330u, 3230692631u, 422503284u, 1130331904u, 3544140092u, 0, COSH_TOLERANCE, 0},
+{ 367, 1076780005u, 2857564741u, 1075647403u, 3308906709u, 1094572049u, 3220041115u, 0, COSH_TOLERANCE, 0},
+{ 368, 3216058010u, 1380066948u, 3232612906u, 2613634294u, 1072695602u, 333718361u, 0, COSH_TOLERANCE, 0},
+{ 369, 1071230888u, 4022784584u, 1060483857u, 3264056381u, 1072778839u, 2084074650u, 0, COSH_TOLERANCE, 0},
+{ 370, 1066657500u, 1778509100u, 3213146285u, 2665833973u, 1072693446u, 202166455u, 0, COSH_TOLERANCE, 0},
+{ 371, 3219873028u, 1859175955u, 1079949560u, 4258450607u, 1073100545u, 4011898678u, 0, COSH_TOLERANCE, 0},
+{ 372, 1067151756u, 4128020197u, 1076266146u, 4122840980u, 1072693624u, 2563901245u, 0, COSH_TOLERANCE, 0},
+{ 373, 3214154683u, 2454653987u, 3229487005u, 2977478685u, 1072693450u, 768721227u, 0, COSH_TOLERANCE, 0},
+{ 374, 3229439235u, 1355181872u, 1095308770u, 436846481u, 1781587330u, 3622868306u, 0, COSH_TOLERANCE, 0},
+{ 375, 3227730934u, 2592856453u, 3247825559u, 3195234082u, 1304719890u, 3199167818u, 0, COSH_TOLERANCE, 0},
+{ 376, 3222118023u, 3554670043u, 1091621009u, 3321236467u, 1077168356u, 697453788u, 0, COSH_TOLERANCE, 0},
+{ 377, 1072158561u, 1936670355u, 1095715713u, 2958468553u, 1072997987u, 174155697u, 0, COSH_TOLERANCE, 0},
+{ 378, 3214311205u, 2960339502u, 1098808013u, 1044068983u, 1072693501u, 258697260u, 0, COSH_TOLERANCE, 0},
+{ 379, 3215565553u, 4093388677u, 1095478112u, 1735930261u, 1072694562u, 3158378439u, 0, COSH_TOLERANCE, 0},
+{ 380, 1078457390u, 1807398746u, 3195743135u, 4261616162u, 1144084329u, 2733988366u, 0, COSH_TOLERANCE, 0},
+{ 381, 3218731378u, 3250576797u, 1059002384u, 3043079652u, 1072780584u, 935135545u, 0, COSH_TOLERANCE, 0},
+{ 382, 1072352837u, 666051428u, 3208765404u, 1912684117u, 1073083167u, 7373407u, 0, COSH_TOLERANCE, 0},
+{ 383, 1081467324u, 1949030179u, 1096388934u, 896459246u, 1601250663u, 4124280137u, 0, COSH_TOLERANCE, 0},
+{ 384, 1068980717u, 622499767u, 1066707637u, 1490260486u, 1072697613u, 1210054685u, 0, COSH_TOLERANCE, 0},
+{ 385, 1081522669u, 1490616165u, 3251242436u, 795675736u, 1621632025u, 1772451300u, 0, COSH_TOLERANCE, 0},
+{ 386, 1075701016u, 3662877092u, 3234317146u, 3200513112u, 1082885283u, 3445827098u, 0, COSH_TOLERANCE, 0},
+{ 387, 1076748754u, 1356101968u, 3236536816u, 3062844611u, 1094157143u, 1389520040u, 0, COSH_TOLERANCE, 0},
+{ 388, 3220971216u, 2284484846u, 3219498359u, 3240896015u, 1074258386u, 2487677987u, 0, COSH_TOLERANCE, 0},
+{ 389, 3225273929u, 494503287u, 1092811254u, 142673998u, 1116669881u, 3833198838u, 0, COSH_TOLERANCE, 0},
+{ 390, 3229057244u, 3394882641u, 3225306538u, 364852125u, 1640439514u, 3261908140u, 0, COSH_TOLERANCE, 0},
+{ 391, 3222116035u, 193885269u, 1088149839u, 1359805831u, 1077163329u, 456192792u, 0, COSH_TOLERANCE, 0},
+{ 392, 3216213422u, 592580907u, 3199560872u, 3086438952u, 1072696298u, 1737542508u, 0, COSH_TOLERANCE, 0},
+{ 393, 1070004424u, 1778008540u, 1049064687u, 73581647u, 1072710179u, 3864358441u, 0, COSH_TOLERANCE, 0},
+{ 394, 3227859230u, 233240285u, 1081923320u, 2710903921u, 1328471353u, 481819950u, 0, COSH_TOLERANCE, 0},
+{ 395, 1072659495u, 3719878805u, 1079866720u, 3615458228u, 1073243085u, 1076099764u, 0, COSH_TOLERANCE, 0},
+{ 396, 3221194724u, 3647632375u, 3247225271u, 3839959621u, 1074610804u, 1304629615u, 0, COSH_TOLERANCE, 0},
+{ 397, 1081381000u, 2232210456u, 3235434773u, 224271737u, 1569318353u, 1467736445u, 0, COSH_TOLERANCE, 0},
+{ 398, 3213975204u, 2134662911u, 3190390590u, 4239009051u, 1072693398u, 3679984553u, 0, COSH_TOLERANCE, 0},
+{ 399, 1075283265u, 2305279897u, 1077668039u, 1854523320u, 1080450496u, 3286724522u, 0, COSH_TOLERANCE, 0},
+{ 400, 3220912835u, 538224650u, 3206153057u, 1379649610u, 1074178663u, 1101193676u, 0, COSH_TOLERANCE, 0},
+{ 401, 3215284875u, 3683897920u, 3244167599u, 3647579469u, 1072694160u, 399053723u, 0, COSH_TOLERANCE, 0},
+{ 402, 1077698021u, 2694093608u, 1042775347u, 598406111u, 1114529526u, 2696598259u, 0, COSH_TOLERANCE, 0},
+{ 403, 3218975424u, 872706833u, 1084802480u, 2200602798u, 1072807936u, 2094320399u, 0, COSH_TOLERANCE, 0},
+{ 404, 1065408269u, 904146293u, 1060867322u, 1729685598u, 1072693283u, 1926681760u, 0, COSH_TOLERANCE, 0},
+{ 405, 3214569338u, 1894173462u, 3232800651u, 191960416u, 1072693597u, 1873608164u, 0, COSH_TOLERANCE, 0},
+{ 406, 1078642431u, 3521028551u, 1054522089u, 3287274359u, 1152594773u, 3672113002u, 0, COSH_TOLERANCE, 0},
+{ 407, 1079658324u, 959640601u, 3201578263u, 4136915018u, 1230574401u, 2234964481u, 0, COSH_TOLERANCE, 0},
+{ 408, 1071345483u, 1553716379u, 1106027987u, 984725765u, 1072791073u, 2060156860u, 0, COSH_TOLERANCE, 0},
+{ 409, 3226249729u, 2287646644u, 3240329321u, 2276183378u, 1158291111u, 3692605402u, 0, COSH_TOLERANCE, 0},
+{ 410, 1072403478u, 3940225170u, 3199544434u, 997572161u, 1073107368u, 2791800044u, 0, COSH_TOLERANCE, 0},
+{ 411, 3219059817u, 36116288u, 3206886566u, 4196602670u, 1072818306u, 2941799181u, 0, COSH_TOLERANCE, 0},
+{ 412, 3225967213u, 3550227562u, 3207257983u, 2747744117u, 1145259564u, 206811308u, 0, COSH_TOLERANCE, 0},
+{ 413, 1081167454u, 507130047u, 1048359321u, 3229888373u, 1490439745u, 2514231187u, 0, COSH_TOLERANCE, 0},
+{ 414, 3221948202u, 2210969014u, 1081031001u, 1946786091u, 1076714590u, 2720043926u, 0, COSH_TOLERANCE, 0},
+{ 415, 3224772654u, 4059150589u, 3189759234u, 1177045799u, 1105086888u, 932381590u, 0, COSH_TOLERANCE, 0},
+{ 416, 1078423548u, 2664812822u, 1050343198u, 2034180320u, 1142469137u, 3731467255u, 0, COSH_TOLERANCE, 0},
+{ 417, 3220070573u, 1175750283u, 3235559706u, 1424491340u, 1073202287u, 696435719u, 0, COSH_TOLERANCE, 0},
+{ 418, 3219147073u, 1630036121u, 3231972785u, 3195479448u, 1072832007u, 59437127u, 0, COSH_TOLERANCE, 0},
+{ 419, 1077846963u, 2527029044u, 1046927050u, 4000723255u, 1117940775u, 3673409802u, 0, COSH_TOLERANCE, 0},
+{ 420, 1076820069u, 3335703647u, 3237349676u, 3869440059u, 1094992333u, 786911050u, 0, COSH_TOLERANCE, 0},
+{ 421, 1078850936u, 3888398377u, 3196041693u, 1290567220u, 1162199139u, 1366973945u, 0, COSH_TOLERANCE, 0},
+{ 422, 1071921950u, 3242451480u, 3248384948u, 707431021u, 1072909878u, 2311264482u, 0, COSH_TOLERANCE, 0},
+{ 423, 1075890477u, 2739665123u, 1060777905u, 1733073225u, 1084309432u, 2275080127u, 0, COSH_TOLERANCE, 0},
+{ 424, 1075371333u, 1297274853u, 3208848704u, 3341639139u, 1081035738u, 1933977641u, 0, COSH_TOLERANCE, 0},
+{ 425, 1066493885u, 2228057309u, 1084318902u, 1317851136u, 1072693399u, 2039076730u, 0, COSH_TOLERANCE, 0},
+{ 426, 1077769567u, 270039934u, 3241414679u, 3063626339u, 1116118793u, 251426608u, 0, COSH_TOLERANCE, 0},
+{ 427, 3220226926u, 83062251u, 3211262173u, 2659016437u, 1073323369u, 97426660u, 0, COSH_TOLERANCE, 0},
+{ 428, 1080015246u, 3833539373u, 3206667189u, 1567476111u, 1263591609u, 3066665016u, 0, COSH_TOLERANCE, 0},
+{ 429, 3217777984u, 2382776852u, 3249232579u, 1546622468u, 1072717356u, 1187260252u, 0, COSH_TOLERANCE, 0},
+{ 430, 1076099255u, 1714300821u, 1104130938u, 4167591598u, 1086665941u, 3409246207u, 0, COSH_TOLERANCE, 0},
+{ 431, 1067869976u, 2798720100u, 1086978789u, 449990704u, 1072694251u, 3968003626u, 0, COSH_TOLERANCE, 0},
+{ 432, 3223858383u, 4039516226u, 3244344107u, 4272932619u, 1089843021u, 3071656581u, 0, COSH_TOLERANCE, 0},
+{ 433, 3221659865u, 1683007544u, 1091105663u, 3805494321u, 1075903190u, 1030888557u, 0, COSH_TOLERANCE, 0},
+{ 434, 3220852948u, 2072627412u, 1094383324u, 3394151662u, 1074101667u, 3593583933u, 0, COSH_TOLERANCE, 0},
+{ 435, 3220570024u, 1120106427u, 3223631624u, 3404608264u, 1073796246u, 3485288401u, 0, COSH_TOLERANCE, 0},
+{ 436, 1078985629u, 559918757u, 3205077053u, 908100198u, 1168462131u, 348797896u, 0, COSH_TOLERANCE, 0},
+{ 437, 1065746590u, 2026673913u, 3244833635u, 2844573214u, 1072693308u, 2207107495u, 0, COSH_TOLERANCE, 0},
+{ 438, 3229401435u, 3946837259u, 3234993796u, 3850406820u, 1767580525u, 957246048u, 0, COSH_TOLERANCE, 0},
+{ 439, 1070062721u, 3139330994u, 1046133568u, 1539650690u, 1072711520u, 2060768029u, 0, COSH_TOLERANCE, 0},
+{ 440, 3225171164u, 1554593884u, 3228899878u, 2813752562u, 1114234730u, 1205533002u, 0, COSH_TOLERANCE, 0},
+{ 441, 1069087916u, 3804703138u, 1072931071u, 2053677923u, 1072698246u, 3320923600u, 0, COSH_TOLERANCE, 0},
+{ 442, 3227038507u, 289355864u, 1078453818u, 2143066338u, 1221015905u, 3978063874u, 0, COSH_TOLERANCE, 0},
+{ 443, 3216522792u, 2157691971u, 1106629150u, 110806409u, 1072697953u, 960655341u, 0, COSH_TOLERANCE, 0},
+{ 444, 1075865563u, 3570399481u, 1085637605u, 180265334u, 1083999917u, 1645379652u, 0, COSH_TOLERANCE, 0},
+{ 445, 3216708822u, 558779875u, 3202046748u, 2338464653u, 1072699120u, 2955459390u, 0, COSH_TOLERANCE, 0},
+{ 446, 1066676984u, 1703969219u, 3229797258u, 1417521063u, 1072693452u, 36466462u, 0, COSH_TOLERANCE, 0},
+{ 447, 3225199349u, 3917440951u, 1051668894u, 3736066983u, 1114891095u, 1562528722u, 0, COSH_TOLERANCE, 0},
+{ 448, 1071043536u, 3106613409u, 1066627453u, 2735392257u, 1072760657u, 2979979981u, 0, COSH_TOLERANCE, 0},
+{ 449, 1071956828u, 2229777605u, 1065061963u, 2405869925u, 1072921828u, 2085659379u, 0, COSH_TOLERANCE, 0},
+{ 450, 3225831741u, 3967957902u, 1057416138u, 3459188071u, 1138999578u, 515773066u, 0, COSH_TOLERANCE, 0},
+{ 451, 1071784938u, 3699016825u, 3249713090u, 796144848u, 1072866292u, 3094171396u, 0, COSH_TOLERANCE, 0},
+{ 452, 3222524940u, 3285165564u, 3211948811u, 401510871u, 1079100907u, 4162441846u, 0, COSH_TOLERANCE, 0},
+{ 453, 1078529018u, 634857910u, 3199607513u, 914218057u, 1147357727u, 2060143941u, 0, COSH_TOLERANCE, 0},
+{ 454, 1076403304u, 2030735578u, 3233855943u, 965677531u, 1090189121u, 3806649244u, 0, COSH_TOLERANCE, 0},
+{ 455, 1075362511u, 3957229084u, 1051050470u, 3123776651u, 1080967868u, 916230154u, 0, COSH_TOLERANCE, 0},
+{ 456, 3221863333u, 162122081u, 3239376395u, 108064594u, 1076427741u, 411926356u, 0, COSH_TOLERANCE, 0},
+{ 457, 3224688874u, 869031839u, 3225020876u, 1344301606u, 1103158924u, 668835625u, 0, COSH_TOLERANCE, 0},
+{ 458, 3219676354u, 946696117u, 3231825228u, 1700703647u, 1073012096u, 2213580531u, 0, COSH_TOLERANCE, 0},
+{ 459, 1074444299u, 3394168074u, 1076939786u, 1666995668u, 1076641844u, 156593023u, 0, COSH_TOLERANCE, 0},
+{ 460, 3218211979u, 2488789804u, 3238508333u, 1506943664u, 1072735077u, 153972805u, 0, COSH_TOLERANCE, 0},
+{ 461, 1072788663u, 3844072288u, 3202592279u, 2630019853u, 1073381700u, 2049645902u, 0, COSH_TOLERANCE, 0},
+{ 462, 3220983118u, 1244307192u, 3191297711u, 2540916692u, 1074275226u, 1512921118u, 0, COSH_TOLERANCE, 0},
+{ 463, 3215791332u, 2871645739u, 3239081581u, 1440249115u, 1072694939u, 4017423074u, 0, COSH_TOLERANCE, 0},
+{ 464, 1072544937u, 1231934926u, 3236746788u, 603977748u, 1073179537u, 210999427u, 0, COSH_TOLERANCE, 0},
+{ 465, 3214324057u, 2386312545u, 1063169277u, 2715234268u, 1072693505u, 2110999964u, 0, COSH_TOLERANCE, 0},
+{ 466, 1077317658u, 915867083u, 1046790892u, 3347417612u, 1105687206u, 2072797994u, 0, COSH_TOLERANCE, 0},
+{ 467, 1081866940u, 3553288373u, 1065698616u, 2906680663u, 1748821447u, 2025279999u, 0, COSH_TOLERANCE, 0},
+{ 468, 1066477746u, 2342364630u, 1051356723u, 4019093203u, 1072693395u, 939076334u, 0, COSH_TOLERANCE, 0},
+{ 469, 3216897802u, 2911548084u, 1105282515u, 2476735795u, 1072700439u, 1795805145u, 0, COSH_TOLERANCE, 0},
+{ 470, 1068298564u, 1836216409u, 1101062307u, 2519592554u, 1072694923u, 3337330369u, 0, COSH_TOLERANCE, 0},
+{ 471, 1073323889u, 1235369496u, 3222946447u, 668087854u, 1074046359u, 2670613655u, 0, COSH_TOLERANCE, 0},
+{ 472, 3217991780u, 2981820811u, 1059838516u, 2845580478u, 1072723468u, 3674700934u, 0, COSH_TOLERANCE, 0},
+{ 473, 3214902934u, 1565550570u, 3217165795u, 4162017137u, 1072693744u, 4188183367u, 0, COSH_TOLERANCE, 0},
+{ 474, 3224668466u, 2808968027u, 1055630096u, 1782326814u, 1102624261u, 4229492206u, 0, COSH_TOLERANCE, 0},
+{ 475, 1069305614u, 1492622658u, 3216653077u, 3972512122u, 1072699665u, 2777581694u, 0, COSH_TOLERANCE, 0},
+{ 476, 3222171679u, 2722693603u, 3227814791u, 3169731970u, 1077311445u, 16711136u, 0, COSH_TOLERANCE, 0},
+{ 477, 3221052359u, 899763203u, 3207606001u, 2804747833u, 1074377307u, 3651199518u, 0, COSH_TOLERANCE, 0},
+{ 478, 3223330293u, 3789058912u, 3228095081u, 4135937628u, 1083748658u, 1647653733u, 0, COSH_TOLERANCE, 0},
+{ 479, 1069636566u, 1682808307u, 3206960335u, 232877759u, 1072702905u, 922243855u, 0, COSH_TOLERANCE, 0},
+{ 480, 3226362846u, 2851963139u, 3246852961u, 2590862592u, 1163510742u, 2280263532u, 0, COSH_TOLERANCE, 0},
+{ 481, 1074908950u, 2422232642u, 3234779662u, 290458310u, 1078293793u, 402749758u, 0, COSH_TOLERANCE, 0},
+{ 482, 3219059686u, 1082582386u, 1075605675u, 2602133689u, 1072818290u, 1078745978u, 0, COSH_TOLERANCE, 0},
+{ 483, 3226187123u, 1789635787u, 1059414278u, 1048286093u, 1155460262u, 3672708776u, 0, COSH_TOLERANCE, 0},
+{ 484, 1079456174u, 231339448u, 1055573265u, 504907415u, 1211943927u, 57355760u, 0, COSH_TOLERANCE, 0},
+{ 485, 1071600069u, 1153251200u, 3204617090u, 1772013857u, 1072821329u, 3016594082u, 0, COSH_TOLERANCE, 0},
+{ 486, 1080676687u, 1082898276u, 3212089272u, 1449080862u, 1384085102u, 3383991944u, 0, COSH_TOLERANCE, 0},
+{ 487, 1076571101u, 3177299045u, 1058862813u, 809400815u, 1092108370u, 1324460299u, 0, COSH_TOLERANCE, 0},
+{ 488, 3223514518u, 1924429710u, 1056464743u, 3349283177u, 1085877225u, 3373580267u, 0, COSH_TOLERANCE, 0},
+{ 489, 3226599023u, 42238036u, 1042379500u, 2113559863u, 1180474780u, 3625179367u, 0, COSH_TOLERANCE, 0},
+{ 490, 1071052699u, 3304403230u, 3217556703u, 58952646u, 1072761494u, 3681600331u, 0, COSH_TOLERANCE, 0},
+{ 491, 3218960986u, 1645486982u, 3224301095u, 3636267471u, 1072806209u, 2824736299u, 0, COSH_TOLERANCE, 0},
+{ 492, 1071150617u, 619402181u, 3235208235u, 557360557u, 1072770774u, 2233898320u, 0, COSH_TOLERANCE, 0},
+{ 493, 3225655482u, 110029735u, 1046937383u, 984375729u, 1130844976u, 58252944u, 0, COSH_TOLERANCE, 0},
+{ 494, 3213613986u, 4063688092u, 3203235744u, 1049950343u, 1072693345u, 41676873u, 0, COSH_TOLERANCE, 0},
+{ 495, 1070739227u, 650996069u, 1054971928u, 3953359826u, 1072735857u, 3162766617u, 0, COSH_TOLERANCE, 0},
+{ 496, 3222861501u, 66926332u, 1090561839u, 1379780888u, 1081084622u, 865857900u, 0, COSH_TOLERANCE, 0},
+{ 497, 3224016123u, 2803378256u, 1086057989u, 498534626u, 1091702709u, 731355363u, 0, COSH_TOLERANCE, 0},
+{ 498, 1076327097u, 2846400785u, 1047142525u, 1375153550u, 1089349462u, 3404991026u, 0, COSH_TOLERANCE, 0},
+{ 499, 1066601297u, 2869128958u, 1070972315u, 4246440273u, 1072693429u, 1487293915u, 0, COSH_TOLERANCE, 0},
+{ 500, 1067561146u, 3112381207u, 1044430965u, 3981604561u, 1072693873u, 4119638393u, 0, COSH_TOLERANCE, 0},
+{ 501, 3223914965u, 243303420u, 1093735824u, 1575581926u, 1090564624u, 2235997569u, 0, COSH_TOLERANCE, 0},
+{ 502, 3225506509u, 3218865041u, 3204803496u, 3840388050u, 1124051660u, 1649385448u, 0, COSH_TOLERANCE, 0},
+{ 503, 1067289799u, 336846959u, 1052664471u, 3798336786u, 1072693684u, 2701401211u, 0, COSH_TOLERANCE, 0},
+{ 504, 1068537148u, 3639240976u, 1081202165u, 1844741676u, 1072695448u, 3117267659u, 0, COSH_TOLERANCE, 0},
+{ 505, 3218196249u, 717293069u, 3211534283u, 582401011u, 1072733962u, 3794010205u, 0, COSH_TOLERANCE, 0},
+{ 506, 3228893840u, 3766248610u, 3196520332u, 1174437546u, 1580170719u, 1400243038u, 0, COSH_TOLERANCE, 0},
+{ 507, 1076091194u, 756959182u, 3204099341u, 1581804034u, 1086583042u, 1991670922u, 0, COSH_TOLERANCE, 0},
+{ 508, 3217340780u, 3560686300u, 3220980617u, 4277975772u, 1072707021u, 4141250989u, 0, COSH_TOLERANCE, 0},
+{ 509, 3218294684u, 2598148853u, 3217622194u, 3460421008u, 1072741187u, 2314974653u, 0, COSH_TOLERANCE, 0},
+{ 510, 1071963704u, 136600515u, 3209934920u, 3340653128u, 1072924225u, 3332847417u, 0, COSH_TOLERANCE, 0},
+{ 511, 1078994518u, 1045480938u, 3251354609u, 4133432965u, 1169315390u, 1471292306u, 0, COSH_TOLERANCE, 0},
+{ 512, 1077967943u, 1630207738u, 3239996829u, 2393354808u, 1121432564u, 2643918337u, 0, COSH_TOLERANCE, 0},
+{ 513, 3213694690u, 3739770117u, 1059520750u, 3959551225u, 1072693353u, 3332559954u, 0, COSH_TOLERANCE, 0},
+{ 514, 3223390473u, 1498861716u, 1091297147u, 847410798u, 1084459592u, 850649703u, 0, COSH_TOLERANCE, 0},
+{ 515, 1073516688u, 983275314u, 3232538664u, 2244973629u, 1074299949u, 1095073224u, 0, COSH_TOLERANCE, 0},
+{ 516, 1069529329u, 2353103845u, 3235718771u, 2978889966u, 1072701308u, 3479226514u, 0, COSH_TOLERANCE, 0},
+{ 517, 3229337896u, 1546972125u, 3249076079u, 1987349196u, 1744100073u, 982927834u, 0, COSH_TOLERANCE, 0},
+{ 518, 3225636601u, 2769161072u, 1075207126u, 292616282u, 1129986069u, 2356402899u, 0, COSH_TOLERANCE, 0},
+{ 519, 3215440938u, 36855311u, 1052128202u, 1479039342u, 1072694374u, 3881612387u, 0, COSH_TOLERANCE, 0},
+{ 520, 1076417021u, 2027463605u, 1066023013u, 3369686340u, 1090384091u, 1056865571u, 0, COSH_TOLERANCE, 0},
+{ 521, 3215678541u, 3808681655u, 1054161346u, 1821773119u, 1072694745u, 2393129015u, 0, COSH_TOLERANCE, 0},
+{ 522, 1065851752u, 3175490326u, 3226879970u, 845687760u, 1072693317u, 2845297936u, 0, COSH_TOLERANCE, 0},
+{ 523, 1065371665u, 3124482451u, 3242748377u, 3259417226u, 1072693281u, 584816684u, 0, COSH_TOLERANCE, 0},
+{ 524, 1067265791u, 2751606436u, 3236210939u, 3923142740u, 1072693673u, 3735488274u, 0, COSH_TOLERANCE, 0},
+{ 525, 1079966097u, 2016872044u, 3228408064u, 4201274408u, 1259005133u, 2351383485u, 0, COSH_TOLERANCE, 0},
+{ 526, 3215077894u, 1019916843u, 3219974785u, 1977881787u, 1072693910u, 925185854u, 0, COSH_TOLERANCE, 0},
+{ 527, 3215207392u, 2060433318u, 1075872515u, 366073725u, 1072694061u, 3760406008u, 0, COSH_TOLERANCE, 0},
+{ 528, 3213200653u, 1098469906u, 1082900695u, 2349346832u, 1072693306u, 241149696u, 0, COSH_TOLERANCE, 0},
+{ 529, 3218363315u, 3011196295u, 3252479932u, 2459281672u, 1072746581u, 3475756260u, 0, COSH_TOLERANCE, 0},
+{ 530, 3221334323u, 2843222682u, 1089275809u, 298982001u, 1074948209u, 2454086122u, 0, COSH_TOLERANCE, 0},
+{ 531, 1080766178u, 914741728u, 3203468059u, 2833809843u, 1400546649u, 1543027566u, 0, COSH_TOLERANCE, 0},
+{ 532, 3225229542u, 1274901962u, 3241535845u, 3759113509u, 1115653811u, 3663915975u, 0, COSH_TOLERANCE, 0},
+{ 533, 3227042074u, 2134927252u, 3253802671u, 3013731444u, 1221386155u, 696872014u, 0, COSH_TOLERANCE, 0},
+{ 534, 1080326973u, 2230655177u, 3254510616u, 1249674366u, 1319431604u, 3545707614u, 0, COSH_TOLERANCE, 0},
+{ 535, 1071359861u, 717357389u, 1083533731u, 3746683362u, 1072792668u, 2873103559u, 0, COSH_TOLERANCE, 0},
+{ 536, 3220064570u, 834976849u, 3217357661u, 2465861779u, 1073198996u, 2186293239u, 0, COSH_TOLERANCE, 0},
+{ 537, 1066627637u, 1385714428u, 1053358395u, 3007113740u, 1072693437u, 350440274u, 0, COSH_TOLERANCE, 0},
+{ 538, 1068353711u, 599268545u, 3201368210u, 2309854744u, 1072695022u, 2853715097u, 0, COSH_TOLERANCE, 0},
+{ 539, 1073100182u, 2840234388u, 3232496515u, 333365983u, 1073809120u, 943021507u, 0, COSH_TOLERANCE, 0},
+{ 540, 1066894301u, 3136078996u, 3194520860u, 2650572904u, 1072693524u, 2113824954u, 0, COSH_TOLERANCE, 0},
+{ 541, 3224250507u, 2405805086u, 3251640319u, 324233833u, 1094385400u, 243647767u, 0, COSH_TOLERANCE, 0},
+{ 542, 1081533322u, 2589598340u, 3254677807u, 952438812u, 1625576728u, 2555502454u, 0, COSH_TOLERANCE, 0},
+{ 543, 3213232021u, 1922837702u, 3216892718u, 3535907549u, 1072693308u, 2850257966u, 0, COSH_TOLERANCE, 0},
+{ 544, 3226838652u, 261447440u, 3209805849u, 1150571079u, 1202630263u, 3739940447u, 0, COSH_TOLERANCE, 0},
+{ 545, 1079028016u, 4026487528u, 1073152064u, 27340691u, 1172419967u, 273403284u, 0, COSH_TOLERANCE, 0},
+{ 546, 3222832236u, 338765118u, 1086225786u, 3207238249u, 1080865281u, 1988978339u, 0, COSH_TOLERANCE, 0},
+{ 547, 3215057071u, 1085283176u, 3187775111u, 1601194210u, 1072693887u, 1234434999u, 0, COSH_TOLERANCE, 0},
+{ 548, 1078937261u, 3031712790u, 3252307859u, 170666844u, 1166209488u, 3602398320u, 0, COSH_TOLERANCE, 0},
+{ 549, 3220959383u, 3148395674u, 1041913758u, 3306391490u, 1074241844u, 1170600793u, 0, COSH_TOLERANCE, 0},
+{ 550, 3217005710u, 2205233857u, 3208100078u, 3993195511u, 1072701252u, 2077853917u, 0, COSH_TOLERANCE, 0},
+{ 551, 1071893912u, 4282766727u, 1072820377u, 1874778218u, 1072900526u, 122630446u, 0, COSH_TOLERANCE, 0},
+{ 552, 3218173124u, 2920860798u, 3218070226u, 3104066154u, 1072732352u, 3593381418u, 0, COSH_TOLERANCE, 0},
+{ 553, 3217533263u, 969991373u, 3250596895u, 1734386152u, 1072711214u, 2580159905u, 0, COSH_TOLERANCE, 0},
+{ 554, 3226332906u, 1218740205u, 3239802737u, 2610078504u, 1162127953u, 443854413u, 0, COSH_TOLERANCE, 0},
+{ 555, 3217565578u, 1485218325u, 3220870240u, 3591664613u, 1072711973u, 2041209195u, 0, COSH_TOLERANCE, 0},
+{ 556, 3216754207u, 690157417u, 3190850619u, 4192347699u, 1072699425u, 761927835u, 0, COSH_TOLERANCE, 0},
+{ 557, 1079276594u, 4009839784u, 1079670252u, 394167192u, 1195402369u, 2525536651u, 0, COSH_TOLERANCE, 0},
+{ 558, 3225122053u, 961532417u, 1092588071u, 2923790239u, 1113093443u, 609779704u, 0, COSH_TOLERANCE, 0},
+{ 559, 3216462003u, 4174125604u, 1050682630u, 2169701868u, 1072697599u, 3489469939u, 0, COSH_TOLERANCE, 0},
+{ 560, 3227363835u, 4146748230u, 1087373950u, 2481478351u, 1251094158u, 2672248790u, 0, COSH_TOLERANCE, 0},
+{ 561, 1073842138u, 3984715440u, 1050421618u, 2446142566u, 1074929194u, 4289031035u, 0, COSH_TOLERANCE, 0},
+{ 562, 1076832374u, 936290150u, 1100614426u, 3625806370u, 1095122996u, 79506389u, 0, COSH_TOLERANCE, 0},
+{ 563, 1080913584u, 1866615265u, 3215651428u, 2337013350u, 1427761572u, 2464900529u, 0, COSH_TOLERANCE, 0},
+{ 564, 3229081054u, 712227971u, 1106004723u, 973148499u, 1649293146u, 2977854696u, 0, COSH_TOLERANCE, 0},
+{ 565, 3223796743u, 3409813738u, 3244817008u, 1933503498u, 1089149243u, 2552950095u, 0, COSH_TOLERANCE, 0},
+{ 566, 1075749429u, 3180389060u, 3228735703u, 83422217u, 1083215044u, 462445497u, 0, COSH_TOLERANCE, 0},
+{ 567, 1074732996u, 556972671u, 3204582372u, 841555801u, 1077443176u, 1826489999u, 0, COSH_TOLERANCE, 0},
+{ 568, 1072864873u, 4189151332u, 1080874032u, 706326922u, 1073487027u, 3634656193u, 0, COSH_TOLERANCE, 0},
+{ 569, 1079374091u, 198291836u, 1057281892u, 2188836928u, 1204328207u, 2535783908u, 0, COSH_TOLERANCE, 0},
+{ 570, 1074946267u, 1219449298u, 3228734687u, 3504562743u, 1078508868u, 3068106638u, 0, COSH_TOLERANCE, 0},
+{ 571, 3217153376u, 1776099219u, 1094316777u, 4188083896u, 1072703477u, 1585085350u, 0, COSH_TOLERANCE, 0},
+{ 572, 3214817228u, 2614400266u, 1073750227u, 3003203347u, 1072693704u, 2559210418u, 0, COSH_TOLERANCE, 0},
+{ 573, 3219225558u, 2959351406u, 1105603716u, 311851587u, 1072853689u, 712516923u, 0, COSH_TOLERANCE, 0},
+{ 574, 1076155826u, 865443613u, 1097532516u, 3622237781u, 1087394673u, 3547871343u, 0, COSH_TOLERANCE, 0},
+{ 575, 3223398058u, 447506102u, 3195759295u, 3603669725u, 1084535881u, 3942095505u, 0, COSH_TOLERANCE, 0},
+{ 576, 1079015805u, 3934398273u, 1040996422u, 2968621268u, 1171312413u, 1233059955u, 0, COSH_TOLERANCE, 0},
+{ 577, 3215614193u, 784208771u, 1088764788u, 2182296421u, 1072694639u, 4197891501u, 0, COSH_TOLERANCE, 0},
+{ 578, 3228409347u, 1527590526u, 3206961556u, 2823164069u, 1430023448u, 2977499390u, 0, COSH_TOLERANCE, 0},
+{ 579, 3225109795u, 3876699591u, 3207481130u, 4028148535u, 1112820018u, 4290703953u, 0, COSH_TOLERANCE, 0},
+{ 580, 1076236154u, 2164249756u, 1059857743u, 1785169952u, 1088299515u, 3030929114u, 0, COSH_TOLERANCE, 0},
+{ 581, 1078172521u, 2079273665u, 1080303860u, 625760474u, 1130877384u, 2820657748u, 0, COSH_TOLERANCE, 0},
+{ 582, 3222291804u, 3636214836u, 1068367620u, 2932621925u, 1077753994u, 327873440u, 0, COSH_TOLERANCE, 0},
+{ 583, 1066015468u, 4274131512u, 1047707755u, 92550763u, 1072693333u, 799714962u, 0, COSH_TOLERANCE, 0},
+{ 584, 3215599337u, 2648933384u, 1084603503u, 3534304873u, 1072694616u, 652218503u, 0, COSH_TOLERANCE, 0},
+{ 585, 1070854691u, 3216750767u, 3191088629u, 547482628u, 1072744584u, 2911958539u, 0, COSH_TOLERANCE, 0},
+{ 586, 1070521958u, 1420360746u, 1080063101u, 1690029499u, 1072723888u, 941039659u, 0, COSH_TOLERANCE, 0},
+{ 587, 3223563908u, 1908572179u, 1080112083u, 1228319033u, 1086478448u, 1758442849u, 0, COSH_TOLERANCE, 0},
+{ 588, 1067032546u, 500312015u, 3212368508u, 3864619086u, 1072693576u, 1399130808u, 0, COSH_TOLERANCE, 0},
+{ 589, 3221335610u, 4211343447u, 1087492676u, 4272583781u, 1074951104u, 2361482956u, 0, COSH_TOLERANCE, 0},
+{ 590, 1080518026u, 2382118000u, 1042665328u, 567154882u, 1354785044u, 2043686521u, 0, COSH_TOLERANCE, 0},
+{ 591, 1069547778u, 1435344339u, 3216303171u, 2275988178u, 1072701454u, 3091158837u, 0, COSH_TOLERANCE, 0},
+{ 592, 3219781499u, 3403659753u, 3218043030u, 1926480488u, 1073057838u, 4175444865u, 0, COSH_TOLERANCE, 0},
+{ 593, 1074743231u, 1198845185u, 3225556149u, 1130089684u, 1077474775u, 701774850u, 0, COSH_TOLERANCE, 0},
+{ 594, 3221614466u, 2183928090u, 1048403956u, 963834821u, 1075784139u, 1781731416u, 0, COSH_TOLERANCE, 0},
+{ 595, 1080701440u, 2120625396u, 1041006976u, 2137548527u, 1388588575u, 2814596158u, 0, COSH_TOLERANCE, 0},
+{ 596, 1080355870u, 586700956u, 1059670521u, 303891699u, 1324761751u, 2561465523u, 0, COSH_TOLERANCE, 0},
+{ 597, 3221091650u, 2509132460u, 1102827530u, 2205707903u, 1074438471u, 4293296615u, 0, COSH_TOLERANCE, 0},
+{ 598, 3217443509u, 1229308263u, 3209170414u, 4206576047u, 1072709189u, 3659228835u, 0, COSH_TOLERANCE, 0},
+{ 599, 3221979137u, 4078010749u, 3199236456u, 733478972u, 1076831279u, 1826871371u, 0, COSH_TOLERANCE, 0},
+{ 600, 3215538376u, 4277541051u, 3199806921u, 397102023u, 1072694520u, 2308144239u, 0, COSH_TOLERANCE, 0},
+{ 601, 3214849381u, 900999594u, 3234720188u, 2530214248u, 1072693719u, 2334938475u, 0, COSH_TOLERANCE, 0},
+{ 602, 1074446396u, 4000609478u, 1096577064u, 4148592328u, 1076649246u, 103153889u, 0, COSH_TOLERANCE, 0},
+{ 603, 1067542452u, 2154187873u, 3224392607u, 3957250362u, 1072693853u, 4008151472u, 0, COSH_TOLERANCE, 0},
+{ 604, 3221316336u, 2867079200u, 1101870326u, 921212001u, 1074908512u, 2509700010u, 0, COSH_TOLERANCE, 0},
+{ 605, 3223784706u, 674547716u, 1063216239u, 3929755226u, 1088993407u, 3179222759u, 0, COSH_TOLERANCE, 0},
+{ 606, 3225735787u, 3158182449u, 1043794244u, 3259056345u, 1134618609u, 4149902865u, 0, COSH_TOLERANCE, 0},
+{ 607, 3225242320u, 3002823940u, 1059511739u, 2832435794u, 1115891743u, 2207198717u, 0, COSH_TOLERANCE, 0},
+{ 608, 3220450550u, 2196511929u, 1049973941u, 3672092877u, 1073643386u, 2318601716u, 0, COSH_TOLERANCE, 0},
+{ 609, 1068263848u, 3655292191u, 1086438127u, 3567072906u, 1072694862u, 4213993228u, 0, COSH_TOLERANCE, 0},
+{ 610, 3227458308u, 1617573614u, 3201863123u, 3090723732u, 1259777410u, 3864691446u, 0, COSH_TOLERANCE, 0},
+{ 611, 3223764196u, 679893506u, 3211547753u, 824081024u, 1088758736u, 857579464u, 0, COSH_TOLERANCE, 0},
+{ 612, 1076947613u, 2285242807u, 1084999409u, 2221731406u, 1097150618u, 2093305440u, 0, COSH_TOLERANCE, 0},
+{ 613, 3217219424u, 1935990727u, 1088822246u, 1058156518u, 1072704666u, 953435733u, 0, COSH_TOLERANCE, 0},
+{ 614, 1080819070u, 521023584u, 1059186903u, 4245163857u, 1410372185u, 1987577595u, 0, COSH_TOLERANCE, 0},
+{ 615, 1081871044u, 2312887617u, 3191771354u, 1885370807u, 1750314185u, 485435265u, 0, COSH_TOLERANCE, 0},
+{ 616, 3228836567u, 1796441468u, 1100030327u, 2772711004u, 1558966124u, 2025534396u, 0, COSH_TOLERANCE, 0},
+{ 617, 3216859732u, 2095685003u, 1077984448u, 2100773742u, 1072700162u, 4253902229u, 0, COSH_TOLERANCE, 0},
+{ 618, 3213926140u, 2892538035u, 1042396334u, 4162200338u, 1072693386u, 569374073u, 0, COSH_TOLERANCE, 0},
+{ 619, 3226997111u, 2177698116u, 3227557177u, 150832500u, 1217246100u, 1325856495u, 0, COSH_TOLERANCE, 0},
+{ 620, 3213582312u, 607966734u, 3236250630u, 4164600559u, 1072693341u, 2889359002u, 0, COSH_TOLERANCE, 0},
+{ 621, 3219535540u, 2830122967u, 1046096700u, 3713346883u, 1072956203u, 1374575132u, 0, COSH_TOLERANCE, 0},
+{ 622, 3224615051u, 2314640506u, 3203696416u, 3276228872u, 1101389827u, 2072666780u, 0, COSH_TOLERANCE, 0},
+{ 623, 3219203763u, 469331883u, 3249037349u, 2999233437u, 1072847499u, 1996240604u, 0, COSH_TOLERANCE, 0},
+{ 624, 1079556219u, 560886625u, 1091899487u, 748795120u, 1221147643u, 1766795176u, 0, COSH_TOLERANCE, 0},
+{ 625, 1067712650u, 2958421324u, 1092569414u, 3235243477u, 1072694048u, 1164281115u, 0, COSH_TOLERANCE, 0},
+{ 626, 3213998017u, 3221475559u, 1043038304u, 915608434u, 1072693404u, 4140936154u, 0, COSH_TOLERANCE, 0},
+{ 627, 1073294682u, 3007808652u, 3216682290u, 2531019474u, 1074012135u, 896886954u, 0, COSH_TOLERANCE, 0},
+{ 628, 3226300359u, 1767658578u, 3237045269u, 2313128318u, 1160682881u, 3225971130u, 0, COSH_TOLERANCE, 0},
+{ 629, 3219006500u, 1926845182u, 1066835624u, 1783256828u, 1072811700u, 601434355u, 0, COSH_TOLERANCE, 0},
+{ 630, 1065741453u, 90378038u, 1057168870u, 164358218u, 1072693308u, 358383822u, 0, COSH_TOLERANCE, 0},
+{ 631, 1081693348u, 1610524680u, 1085283851u, 2903496007u, 1684679818u, 520929572u, 0, COSH_TOLERANCE, 0},
+{ 632, 1075489858u, 4274321404u, 3202913591u, 720121831u, 1081645052u, 1137073838u, 0, COSH_TOLERANCE, 0},
+{ 633, 1067982472u, 2034778236u, 1071133763u, 1413236391u, 1072694411u, 2978736869u, 0, COSH_TOLERANCE, 0},
+{ 634, 1067840244u, 1489112261u, 1076691395u, 348210906u, 1072694211u, 2870609134u, 0, COSH_TOLERANCE, 0},
+{ 635, 3217229677u, 2797651324u, 3224410527u, 2374818327u, 1072704856u, 2869857501u, 0, COSH_TOLERANCE, 0},
+{ 636, 1077801496u, 1823161666u, 3197810695u, 3119680047u, 1116891443u, 2045262415u, 0, COSH_TOLERANCE, 0},
+{ 637, 1072218792u, 3420950657u, 1087084743u, 2136638961u, 1073023120u, 888020177u, 0, COSH_TOLERANCE, 0},
+{ 638, 1073047952u, 3554566429u, 1062907717u, 2736702589u, 1073761419u, 2894883977u, 0, COSH_TOLERANCE, 0},
+{ 639, 3227062875u, 2928437580u, 3187765027u, 1393427873u, 1223274893u, 1790477232u, 0, COSH_TOLERANCE, 0},
+{ 640, 3218738745u, 189447067u, 1051643315u, 828663513u, 1072781353u, 367269471u, 0, COSH_TOLERANCE, 0},
+{ 641, 1068042509u, 2852350928u, 1045683757u, 673354280u, 1072694501u, 3387685354u, 0, COSH_TOLERANCE, 0},
+{ 642, 1065966397u, 3589563265u, 3248741629u, 812657927u, 1072693328u, 1586913836u, 0, COSH_TOLERANCE, 0},
+{ 643, 3213679498u, 1766416701u, 1100392103u, 2185373290u, 1072693352u, 415400947u, 0, COSH_TOLERANCE, 0},
+{ 644, 3220275389u, 3763582673u, 3191965790u, 388374829u, 1073385772u, 4240820449u, 0, COSH_TOLERANCE, 0},
+{ 645, 1075440832u, 1187403069u, 1075300235u, 336640304u, 1081370125u, 3682779662u, 0, COSH_TOLERANCE, 0},
+{ 646, 1081906155u, 1718795752u, 3243118752u, 683369237u, 1763270328u, 2150807698u, 0, COSH_TOLERANCE, 0},
+{ 647, 3218132129u, 1863545307u, 1069449477u, 3418627399u, 1072729579u, 3284902905u, 0, COSH_TOLERANCE, 0},
+{ 648, 1072747022u, 3295607249u, 1068878592u, 1633297809u, 1073328061u, 1666517126u, 0, COSH_TOLERANCE, 0},
+{ 649, 1070481463u, 2585980994u, 3236670483u, 1286750688u, 1072722668u, 848603239u, 0, COSH_TOLERANCE, 0},
+{ 650, 1067128553u, 15816845u, 3233249283u, 2491924775u, 1072693614u, 4044617895u, 0, COSH_TOLERANCE, 0},
+{ 651, 1065481693u, 1051983351u, 1049180786u, 1474421917u, 1072693288u, 1384210764u, 0, COSH_TOLERANCE, 0},
+{ 652, 3216978165u, 2003816032u, 1086050104u, 668090487u, 1072701040u, 3365823522u, 0, COSH_TOLERANCE, 0},
+{ 653, 1068284677u, 3671484625u, 1067020039u, 430024694u, 1072694899u, 1388039659u, 0, COSH_TOLERANCE, 0},
+{ 654, 1072639990u, 3991830201u, 3207808714u, 1021245839u, 1073231933u, 3593074248u, 0, COSH_TOLERANCE, 0},
+{ 655, 1071534423u, 4255801807u, 3207681716u, 1926756877u, 1072813117u, 3996147524u, 0, COSH_TOLERANCE, 0},
+{ 656, 1067869425u, 4167786896u, 1077097744u, 1775517981u, 1072694251u, 733571701u, 0, COSH_TOLERANCE, 0},
+{ 657, 1076164794u, 3187518564u, 1082437406u, 944672491u, 1087470446u, 2671993134u, 0, COSH_TOLERANCE, 0},
+{ 658, 1068240650u, 953085192u, 3227310828u, 3459155777u, 1072694822u, 4213317825u, 0, COSH_TOLERANCE, 0},
+{ 659, 1072648234u, 1908555460u, 1073640207u, 260441967u, 1073236630u, 142454325u, 0, COSH_TOLERANCE, 0},
+{ 660, 1072462486u, 250762477u, 1072582645u, 2886742039u, 1073136645u, 291307456u, 0, COSH_TOLERANCE, 0},
+{ 661, 3228885910u, 786180031u, 3197734769u, 2788918312u, 1577200566u, 2788902326u, 0, COSH_TOLERANCE, 0},
+{ 662, 3225074643u, 2055912467u, 3244244909u, 1394142937u, 1111997077u, 3336869072u, 0, COSH_TOLERANCE, 0},
+{ 663, 1072758713u, 91984146u, 3222252812u, 4126276047u, 1073342848u, 1253513367u, 0, COSH_TOLERANCE, 0},
+{ 664, 1075048683u, 3942715706u, 3239316352u, 410676547u, 1079134213u, 267559533u, 0, COSH_TOLERANCE, 0},
+{ 665, 3215335062u, 86296211u, 1085850694u, 649202596u, 1072694226u, 2983711788u, 0, COSH_TOLERANCE, 0},
+{ 666, 3226492024u, 3069064472u, 3237358008u, 23209276u, 1170562231u, 633460538u, 0, COSH_TOLERANCE, 0},
+{ 667, 1074943832u, 1867297860u, 1072956607u, 2513414118u, 1078493882u, 1616885989u, 0, COSH_TOLERANCE, 0},
+{ 668, 3228513251u, 3171788768u, 3235208783u, 162138697u, 1449229135u, 3375110619u, 0, COSH_TOLERANCE, 0},
+{ 669, 1075436999u, 1245110700u, 1081653954u, 2584994077u, 1081350721u, 957691310u, 0, COSH_TOLERANCE, 0},
+{ 670, 3226635752u, 3347226587u, 1058962932u, 2291943376u, 1183896710u, 168233073u, 0, COSH_TOLERANCE, 0},
+{ 671, 1070433398u, 966940828u, 1060726420u, 2798041096u, 1072721252u, 2966013057u, 0, COSH_TOLERANCE, 0},
+{ 672, 1072793759u, 2487340727u, 3223786370u, 4105954991u, 1073388450u, 3307746147u, 0, COSH_TOLERANCE, 0},
+{ 673, 3228193553u, 1671039260u, 1086395032u, 3745833360u, 1390173013u, 393415964u, 0, COSH_TOLERANCE, 0},
+{ 674, 1069661709u, 651714217u, 1047070645u, 2130549237u, 1072703337u, 2120747923u, 0, COSH_TOLERANCE, 0},
+{ 675, 3217601491u, 1423000172u, 3247822717u, 1551488170u, 1072712835u, 1816865234u, 0, COSH_TOLERANCE, 0},
+{ 676, 3216277371u, 921077236u, 3213332351u, 1431049019u, 1072696611u, 565650984u, 0, COSH_TOLERANCE, 0},
+{ 677, 1071704599u, 655715547u, 3190985373u, 1527556471u, 1072843172u, 1336277049u, 0, COSH_TOLERANCE, 0},
+{ 678, 3222412099u, 4110878657u, 3251297180u, 879739345u, 1078402367u, 500635058u, 0, COSH_TOLERANCE, 0},
+{ 679, 1076367578u, 2623955764u, 1093699897u, 1216444475u, 1089767499u, 3859717334u, 0, COSH_TOLERANCE, 0},
+{ 680, 1078274115u, 107442539u, 3239767031u, 1149813329u, 1135642519u, 2525054892u, 0, COSH_TOLERANCE, 0},
+{ 681, 3224008056u, 1761361082u, 3226030205u, 1121849716u, 1091632053u, 723647737u, 0, COSH_TOLERANCE, 0},
+{ 682, 3226455627u, 2534144722u, 1044223733u, 3512285706u, 1167807417u, 2831697989u, 0, COSH_TOLERANCE, 0},
+{ 683, 3218137533u, 4073670723u, 1050729852u, 3034818849u, 1072729939u, 1759331685u, 0, COSH_TOLERANCE, 0},
+{ 684, 1081013054u, 1421423503u, 1060278048u, 1397153092u, 1446153340u, 3645912721u, 0, COSH_TOLERANCE, 0},
+{ 685, 3220567557u, 1649206019u, 1104525577u, 1267104290u, 1073793966u, 3599940925u, 0, COSH_TOLERANCE, 0},
+{ 686, 3213419345u, 3775270392u, 1040251850u, 68667319u, 1072693325u, 1835336288u, 0, COSH_TOLERANCE, 0},
+{ 687, 3216913812u, 3099226694u, 3254103006u, 4020102648u, 1072700557u, 1248825926u, 0, COSH_TOLERANCE, 0},
+{ 688, 3216271776u, 3718441177u, 3215643451u, 4032951536u, 1072696583u, 704224480u, 0, COSH_TOLERANCE, 0},
+{ 689, 1066151467u, 508048351u, 3210196713u, 1707937896u, 1072693347u, 1151265229u, 0, COSH_TOLERANCE, 0},
+{ 690, 3215388843u, 2784738160u, 1073435430u, 1109346010u, 1072694300u, 2895740676u, 0, COSH_TOLERANCE, 0},
+{ 691, 3222579562u, 3331916473u, 3238794568u, 2707019594u, 1079370721u, 3655030168u, 0, COSH_TOLERANCE, 0},
+{ 692, 1078502606u, 3093165197u, 1072894805u, 2853215019u, 1146174228u, 2594603642u, 0, COSH_TOLERANCE, 0},
+{ 693, 3219727867u, 2135797997u, 1048399559u, 2941926126u, 1073034070u, 1282347664u, 0, COSH_TOLERANCE, 0},
+{ 694, 1067305348u, 2083412145u, 3249335391u, 507212448u, 1072693691u, 2874470125u, 0, COSH_TOLERANCE, 0},
+{ 695, 1074315175u, 4270176401u, 3246546709u, 3288753319u, 1076238829u, 3050002800u, 0, COSH_TOLERANCE, 0},
+{ 696, 3228009919u, 3692175292u, 3197271515u, 3989064196u, 1356228656u, 3358892546u, 0, COSH_TOLERANCE, 0},
+{ 697, 3228623066u, 3111924274u, 1066772558u, 59281695u, 1480086690u, 2342955533u, 0, COSH_TOLERANCE, 0},
+{ 698, 1071878215u, 2135245466u, 3208804313u, 3846547392u, 1072895387u, 4144720311u, 0, COSH_TOLERANCE, 0},
+{ 699, 1079149171u, 972051266u, 3222814246u, 3539700586u, 1183589479u, 2607924773u, 0, COSH_TOLERANCE, 0},
+{ 700, 3216597418u, 330951080u, 1079189813u, 583922384u, 1072698405u, 4243865843u, 0, COSH_TOLERANCE, 0},
+{ 701, 1077057180u, 1711944085u, 1104170032u, 643991456u, 1099706751u, 436337680u, 0, COSH_TOLERANCE, 0},
+{ 702, 3224992365u, 2072550721u, 3250147641u, 4280263530u, 1110117290u, 2591847584u, 0, COSH_TOLERANCE, 0},
+{ 703, 3213944226u, 1566376352u, 1067251433u, 72984588u, 1072693390u, 3254259422u, 0, COSH_TOLERANCE, 0},
+{ 704, 1079547929u, 3103043079u, 1045853123u, 410067497u, 1220439527u, 692790947u, 0, COSH_TOLERANCE, 0},
+{ 705, 3219818221u, 1910366299u, 1081770885u, 634683073u, 1073074645u, 1429806814u, 0, COSH_TOLERANCE, 0},
+{ 706, 1075239232u, 2226525875u, 3224149290u, 2126302825u, 1080223855u, 1320759816u, 0, COSH_TOLERANCE, 0},
+{ 707, 1073150247u, 1383818978u, 3193885723u, 1220372650u, 1073857441u, 263464829u, 0, COSH_TOLERANCE, 0},
+{ 708, 1071725823u, 1953339096u, 1077176252u, 1476516558u, 1072849107u, 4237100024u, 0, COSH_TOLERANCE, 0},
+{ 709, 1072383456u, 1306277326u, 1079089150u, 4093716191u, 1073097698u, 3030680746u, 0, COSH_TOLERANCE, 0},
+{ 710, 3223711603u, 51750045u, 3242913901u, 4256866157u, 1088179763u, 3515333215u, 0, COSH_TOLERANCE, 0},
+{ 711, 3213959335u, 2163853087u, 3232053146u, 2962422808u, 1072693394u, 2920600260u, 0, COSH_TOLERANCE, 0},
+{ 712, 1074468369u, 1618388148u, 3233154824u, 3711953164u, 1076728610u, 463521720u, 0, COSH_TOLERANCE, 0},
+{ 713, 3227993634u, 357108214u, 3202294604u, 2306775262u, 1353223522u, 1996029149u, 0, COSH_TOLERANCE, 0},
+{ 714, 3216584150u, 2571356437u, 3249064063u, 2394851808u, 1072698323u, 4161073125u, 0, COSH_TOLERANCE, 0},
+{ 715, 3224196635u, 4273880094u, 1103698617u, 3578832032u, 1093789145u, 485628572u, 0, COSH_TOLERANCE, 0},
+{ 716, 3223989517u, 2091068742u, 3228270226u, 3980489730u, 1091402892u, 675814748u, 0, COSH_TOLERANCE, 0},
+{ 717, 3222725296u, 2772307714u, 1051008486u, 32546576u, 1080235328u, 3668049513u, 0, COSH_TOLERANCE, 0},
+{ 718, 3225500575u, 2143788498u, 3195498043u, 3630119231u, 1123707886u, 237087314u, 0, COSH_TOLERANCE, 0},
+{ 719, 3215410151u, 2527385594u, 3240503648u, 3482095012u, 1072694330u, 3136314740u, 0, COSH_TOLERANCE, 0},
+{ 720, 3226440159u, 2690097362u, 1068598730u, 2360266862u, 1167133545u, 2847015826u, 0, COSH_TOLERANCE, 0},
+{ 721, 1070392205u, 2673272949u, 1082639557u, 522449749u, 1072720067u, 3056493936u, 0, COSH_TOLERANCE, 0},
+{ 722, 1081355475u, 3596379400u, 3242016775u, 2002293002u, 1559892600u, 3057535830u, 0, COSH_TOLERANCE, 0},
+{ 723, 1080565288u, 4113224369u, 3222122439u, 2152316893u, 1363443372u, 2667631927u, 0, COSH_TOLERANCE, 0},
+{ 724, 3220796716u, 31662602u, 1047721249u, 1747087514u, 1074033558u, 858447424u, 0, COSH_TOLERANCE, 0},
+{ 725, 3228443661u, 2489659568u, 1097051253u, 277506957u, 1436371380u, 1518851146u, 0, COSH_TOLERANCE, 0},
+{ 726, 3213421930u, 3850162281u, 3213841942u, 438724093u, 1072693325u, 2890275848u, 0, COSH_TOLERANCE, 0},
+{ 727, 1079663895u, 2431814052u, 1075518084u, 2672434118u, 1231134099u, 340027527u, 0, COSH_TOLERANCE, 0},
+{ 728, 3227434095u, 391606792u, 1048184750u, 4168944276u, 1257550215u, 1300409563u, 0, COSH_TOLERANCE, 0},
+{ 729, 3227869472u, 457529672u, 3201090276u, 72407935u, 1330311224u, 3560882185u, 0, COSH_TOLERANCE, 0},
+{ 730, 3220817871u, 3954981400u, 1052053242u, 2411049585u, 1074058719u, 3705062022u, 0, COSH_TOLERANCE, 0},
+{ 731, 1076742907u, 485456950u, 1088415093u, 1655397424u, 1094089911u, 1354371166u, 0, COSH_TOLERANCE, 0},
+{ 732, 3215011644u, 1551748070u, 3236871640u, 1329701152u, 1072693838u, 2879963114u, 0, COSH_TOLERANCE, 0},
+{ 733, 3221493394u, 3099222537u, 1104984570u, 4293792842u, 1075366946u, 508314344u, 0, COSH_TOLERANCE, 0},
+{ 734, 3216532617u, 3603065260u, 3197735968u, 2402359253u, 1072698011u, 2766024004u, 0, COSH_TOLERANCE, 0},
+{ 735, 3215601800u, 3961208159u, 3219057584u, 2340553876u, 1072694620u, 379258978u, 0, COSH_TOLERANCE, 0},
+{ 736, 1073833333u, 4014841779u, 3197672877u, 3697233334u, 1074909912u, 2808921288u, 0, COSH_TOLERANCE, 0},
+{ 737, 3219567113u, 1403876392u, 3254028950u, 921363393u, 1072968212u, 2144303717u, 0, COSH_TOLERANCE, 0},
+{ 738, 1082085982u, 1862576361u, 3194031708u, 2476290925u, 1829767895u, 2702820797u, 0, COSH_TOLERANCE, 0},
+{ 739, 1067487560u, 1454212851u, 1088378861u, 3400401866u, 1072693797u, 54461841u, 0, COSH_TOLERANCE, 0},
+{ 740, 1074406809u, 552676385u, 3188635745u, 3778112968u, 1076514406u, 2547119721u, 0, COSH_TOLERANCE, 0},
+{ 741, 3219555010u, 1199568671u, 3225679997u, 46947405u, 1072963573u, 2577290657u, 0, COSH_TOLERANCE, 0},
+{ 742, 1074539809u, 2596231448u, 3253943728u, 2219151748u, 1076949249u, 741854126u, 0, COSH_TOLERANCE, 0},
+{ 743, 1071769915u, 4119719558u, 3222036299u, 1275474618u, 1072861834u, 622536215u, 0, COSH_TOLERANCE, 0},
+{ 744, 3226277175u, 3347296825u, 1101507910u, 1254014794u, 1159605697u, 2046925534u, 0, COSH_TOLERANCE, 0},
+{ 745, 1076779960u, 673775040u, 1070743626u, 244126093u, 1094571370u, 3392967795u, 0, COSH_TOLERANCE, 0},
+{ 746, 3216831338u, 1832066983u, 1051358028u, 3262483417u, 1072699960u, 1544307325u, 0, COSH_TOLERANCE, 0},
+{ 747, 1074413872u, 3962610501u, 3198598777u, 849269178u, 1076537724u, 1233885306u, 0, COSH_TOLERANCE, 0},
+{ 748, 3224988140u, 2497516122u, 3254374111u, 2821429629u, 1110006630u, 4293280082u, 0, COSH_TOLERANCE, 0},
+{ 749, 1074139136u, 2805941787u, 3217785843u, 779131141u, 1075816532u, 1482854069u, 0, COSH_TOLERANCE, 0},
+{ 750, 3222714382u, 723423605u, 1084533420u, 627282213u, 1080184328u, 3302770918u, 0, COSH_TOLERANCE, 0},
+{ 751, 3220141984u, 4292778869u, 1078101071u, 1676860147u, 1073242418u, 3635086186u, 0, COSH_TOLERANCE, 0},
+{ 752, 1074191350u, 3528118587u, 3194648564u, 2363260897u, 1075935555u, 289356259u, 0, COSH_TOLERANCE, 0},
+{ 753, 3214917975u, 1307010018u, 1061248120u, 1468743108u, 1072693752u, 1022163092u, 0, COSH_TOLERANCE, 0},
+{ 754, 3227708771u, 107905661u, 3226089788u, 1943427674u, 1300618543u, 73406449u, 0, COSH_TOLERANCE, 0},
+{ 755, 3213396365u, 760006940u, 1054265604u, 1749976597u, 1072693323u, 1120345363u, 0, COSH_TOLERANCE, 0},
+{ 756, 3225190472u, 2787503556u, 1081282610u, 1195841206u, 1114725979u, 1251355153u, 0, COSH_TOLERANCE, 0},
+{ 757, 3213822252u, 545462045u, 3208381743u, 1981311808u, 1072693368u, 1740079808u, 0, COSH_TOLERANCE, 0},
+{ 758, 1070669320u, 3657978397u, 1104463616u, 3501253426u, 1072730976u, 1944423667u, 0, COSH_TOLERANCE, 0},
+{ 759, 1067709649u, 1804177501u, 3210693633u, 3606766729u, 1072694044u, 2621219149u, 0, COSH_TOLERANCE, 0},
+{ 760, 1074759727u, 1336278526u, 1043741618u, 3165279431u, 1077527020u, 1512975247u, 0, COSH_TOLERANCE, 0},
+{ 761, 1069103403u, 1599382075u, 1058018527u, 4212580517u, 1072698341u, 3629517488u, 0, COSH_TOLERANCE, 0},
+{ 762, 3217988086u, 3007589929u, 3202026547u, 2792028313u, 1072723357u, 1307088321u, 0, COSH_TOLERANCE, 0},
+{ 763, 3228965522u, 1866066996u, 1060329048u, 3727175322u, 1606595077u, 1771558986u, 0, COSH_TOLERANCE, 0},
+{ 764, 3215193859u, 150890940u, 1056025306u, 3082724735u, 1072694045u, 1265676852u, 0, COSH_TOLERANCE, 0},
+{ 765, 1071446123u, 80400395u, 1093584426u, 3478941315u, 1072802523u, 752465669u, 0, COSH_TOLERANCE, 0},
+{ 766, 3228571942u, 4050954182u, 3219263194u, 2537475930u, 1461204778u, 405562207u, 0, COSH_TOLERANCE, 0},
+{ 767, 1071133327u, 2881752155u, 3212589299u, 2559651278u, 1072769091u, 2237199419u, 0, COSH_TOLERANCE, 0},
+{ 768, 3228044784u, 440309030u, 3214267461u, 3788040806u, 1362669700u, 3272529857u, 0, COSH_TOLERANCE, 0},
+{ 769, 1080553671u, 918813144u, 3208535698u, 1607035904u, 1361304066u, 4120585298u, 0, COSH_TOLERANCE, 0},
+{ 770, 1066254699u, 2497054124u, 1089139147u, 2549609010u, 1072693358u, 2903505685u, 0, COSH_TOLERANCE, 0},
+{ 771, 1066960585u, 790219083u, 1054657139u, 2797979479u, 1072693548u, 3389416957u, 0, COSH_TOLERANCE, 0},
+{ 772, 1070364312u, 1149462078u, 1095765205u, 3879963182u, 1072719280u, 154258113u, 0, COSH_TOLERANCE, 0},
+{ 773, 3216361301u, 2684353926u, 3205212854u, 1732474928u, 1072697044u, 3289630565u, 0, COSH_TOLERANCE, 0},
+{ 774, 1079508325u, 2742237025u, 1051317716u, 3386396147u, 1216722133u, 1976234612u, 0, COSH_TOLERANCE, 0},
+{ 775, 1071619594u, 3408320912u, 1103071166u, 4233059513u, 1072823827u, 3155315775u, 0, COSH_TOLERANCE, 0},
+{ 776, 1071155004u, 1077495917u, 1088399968u, 433115118u, 1072771204u, 2638172126u, 0, COSH_TOLERANCE, 0},
+{ 777, 3217130484u, 841366493u, 1051716814u, 4121125128u, 1072703080u, 2725484085u, 0, COSH_TOLERANCE, 0},
+{ 778, 1070923540u, 321857207u, 1089128010u, 1149988239u, 1072750184u, 2497194249u, 0, COSH_TOLERANCE, 0},
+{ 779, 3226668295u, 799866606u, 3197637091u, 3924438208u, 1186900516u, 3227583322u, 0, COSH_TOLERANCE, 0},
+{ 780, 3213082986u, 2002049816u, 1077053447u, 2240354761u, 1072693296u, 3373709313u, 0, COSH_TOLERANCE, 0},
+{ 781, 3222714827u, 478939968u, 1097035749u, 1066716440u, 1080186366u, 2582859282u, 0, COSH_TOLERANCE, 0},
+{ 782, 3224085033u, 1653104725u, 1088548129u, 81977716u, 1092521464u, 1441379124u, 0, COSH_TOLERANCE, 0},
+{ 783, 3215735644u, 3899475018u, 3189694084u, 3330093036u, 1072694842u, 2073424147u, 0, COSH_TOLERANCE, 0},
+{ 784, 1077778247u, 2612450289u, 1079065127u, 603380842u, 1116328756u, 409577748u, 0, COSH_TOLERANCE, 0},
+{ 785, 1080713847u, 3962735564u, 1101570429u, 1372490825u, 1390866750u, 1157784041u, 0, COSH_TOLERANCE, 0},
+{ 786, 1069486080u, 1479841439u, 1059312257u, 541504905u, 1072700976u, 2186360231u, 0, COSH_TOLERANCE, 0},
+{ 787, 1075516450u, 2626148789u, 1057571099u, 4121656076u, 1081817128u, 1530368747u, 0, COSH_TOLERANCE, 0},
+{ 788, 1075321933u, 1902560314u, 1043130231u, 3557671562u, 1080683467u, 1859697987u, 0, COSH_TOLERANCE, 0},
+{ 789, 3214801292u, 41779312u, 1081626342u, 831171823u, 1072693697u, 1186166695u, 0, COSH_TOLERANCE, 0},
+{ 790, 1069665436u, 1393168821u, 1066457405u, 1381616968u, 1072703402u, 1650632034u, 0, COSH_TOLERANCE, 0},
+{ 791, 1073386717u, 3756584649u, 3222267229u, 1423157432u, 1074123576u, 1665585151u, 0, COSH_TOLERANCE, 0},
+{ 792, 3229269850u, 1894912556u, 1042426694u, 155024547u, 1718965712u, 945429025u, 0, COSH_TOLERANCE, 0},
+{ 793, 3214327880u, 35164295u, 3203391785u, 1037041084u, 1072693506u, 3508532193u, 0, COSH_TOLERANCE, 0},
+{ 794, 1076388871u, 3957875950u, 3232195211u, 1590756436u, 1090004859u, 3120776328u, 0, COSH_TOLERANCE, 0},
+{ 795, 1071990050u, 1447585080u, 1071279485u, 1107922438u, 1072933539u, 2209886006u, 0, COSH_TOLERANCE, 0},
+{ 796, 1067224038u, 981897615u, 1051856116u, 430357614u, 1072693655u, 2049552706u, 0, COSH_TOLERANCE, 0},
+{ 797, 3222281335u, 395145384u, 3219821938u, 50586510u, 1077679062u, 1276809098u, 0, COSH_TOLERANCE, 0},
+{ 798, 1072921640u, 750827797u, 1082862669u, 230466783u, 1073571776u, 3511683862u, 0, COSH_TOLERANCE, 0},
+{ 799, 1077231635u, 1365083575u, 3204848310u, 1700831722u, 1103707567u, 2384443675u, 0, COSH_TOLERANCE, 0},
+{ 800, 3220187542u, 344241827u, 1071538935u, 2715566077u, 1073275304u, 928327191u, 0, COSH_TOLERANCE, 0},
+{ 801, 3227659912u, 4069301823u, 3193208760u, 2949125229u, 1291633407u, 3577170264u, 0, COSH_TOLERANCE, 0},
+{ 802, 1081211291u, 3585711710u, 1065801594u, 2302229267u, 1506690422u, 4025253862u, 0, COSH_TOLERANCE, 0},
+{ 803, 3214041900u, 709803845u, 1048741487u, 2296910194u, 1072693417u, 226115727u, 0, COSH_TOLERANCE, 0},
+{ 804, 3214252299u, 744421179u, 1069302001u, 2659232829u, 1072693481u, 1038120994u, 0, COSH_TOLERANCE, 0},
+{ 805, 1078155904u, 1799949903u, 3192522886u, 4212149209u, 1130147983u, 2298972399u, 0, COSH_TOLERANCE, 0},
+{ 806, 3217642838u, 145234164u, 3250614064u, 912384201u, 1072713852u, 135186305u, 0, COSH_TOLERANCE, 0},
+{ 807, 3225830600u, 2784620507u, 1102812948u, 3531481022u, 1138955264u, 414543568u, 0, COSH_TOLERANCE, 0},
+{ 808, 3229139567u, 383952592u, 3205659905u, 3633194728u, 1670843603u, 1189342136u, 0, COSH_TOLERANCE, 0},
+{ 809, 3216059164u, 3792395543u, 1070072378u, 3864816376u, 1072695606u, 3943605180u, 0, COSH_TOLERANCE, 0},
+{ 810, 3217899185u, 2115553675u, 1066288499u, 3538377867u, 1072720735u, 3043278424u, 0, COSH_TOLERANCE, 0},
+{ 811, 3229006513u, 1230026762u, 1090719723u, 440819880u, 1621709547u, 2644861228u, 0, COSH_TOLERANCE, 0},
+{ 812, 3214518020u, 2991290482u, 1096886719u, 1097971167u, 1072693577u, 173583143u, 0, COSH_TOLERANCE, 0},
+{ 813, 1077465688u, 1098035020u, 3230900504u, 1479059095u, 1109134739u, 1050435763u, 0, COSH_TOLERANCE, 0},
+{ 814, 3229036868u, 1719428427u, 3188631907u, 3707377409u, 1632924552u, 1550018828u, 0, COSH_TOLERANCE, 0},
+{ 815, 1068964805u, 3748932896u, 1084908557u, 1325384361u, 1072697522u, 3948486792u, 0, COSH_TOLERANCE, 0},
+{ 816, 1076315468u, 3979168763u, 1057455255u, 2454615952u, 1089181690u, 2958015221u, 0, COSH_TOLERANCE, 0},
+{ 817, 1068835624u, 1449164578u, 1056960316u, 1654931641u, 1072696824u, 1401361151u, 0, COSH_TOLERANCE, 0},
+{ 818, 1073536162u, 2120487381u, 3226298974u, 2364226633u, 1074328434u, 1815453534u, 0, COSH_TOLERANCE, 0},
+{ 819, 1074022852u, 1074268944u, 1065730444u, 280016852u, 1075407548u, 3974776385u, 0, COSH_TOLERANCE, 0},
+{ 820, 3216036896u, 3315127889u, 3236295594u, 2900924954u, 1072695514u, 1876741827u, 0, COSH_TOLERANCE, 0},
+{ 821, 3215300259u, 2246037502u, 1049691002u, 1496066550u, 1072694180u, 1112214741u, 0, COSH_TOLERANCE, 0},
+{ 822, 3213978379u, 4191285446u, 3217936236u, 2382392789u, 1072693399u, 3005009332u, 0, COSH_TOLERANCE, 0},
+{ 823, 1078153244u, 640099844u, 1042152237u, 2064279383u, 1130001370u, 3369789477u, 0, COSH_TOLERANCE, 0},
+{ 824, 1075719134u, 3468560824u, 1093251038u, 310958750u, 1083014335u, 205376381u, 0, COSH_TOLERANCE, 0},
+{ 825, 1080011184u, 1413568905u, 1100941106u, 1627289946u, 1263163319u, 2702685927u, 0, COSH_TOLERANCE, 0},
+{ 826, 3213569646u, 3797143370u, 3195497539u, 3843275034u, 1072693340u, 1523765613u, 0, COSH_TOLERANCE, 0},
+{ 827, 3229008721u, 2806642640u, 3201943068u, 2515980718u, 1622521255u, 1495856927u, 0, COSH_TOLERANCE, 0},
+{ 828, 1077440132u, 632580632u, 1078673506u, 3259601317u, 1108541069u, 1728707154u, 0, COSH_TOLERANCE, 0},
+{ 829, 3216709215u, 3309678799u, 1049337078u, 3056787074u, 1072699123u, 1270833534u, 0, COSH_TOLERANCE, 0},
+{ 830, 3221495289u, 2341164249u, 1080834967u, 2810890005u, 1075372753u, 706611161u, 0, COSH_TOLERANCE, 0},
+{ 831, 1072262554u, 932124675u, 1093915797u, 662682630u, 1073042092u, 3650070814u, 0, COSH_TOLERANCE, 0},
+{ 832, 3228258571u, 1367996113u, 3251723684u, 2974064663u, 1402167137u, 835372527u, 0, COSH_TOLERANCE, 0},
+{ 833, 1074987851u, 323437999u, 1090499064u, 901457511u, 1078787526u, 1748132310u, 0, COSH_TOLERANCE, 0},
+{ 834, 3225293116u, 4184941840u, 3196770014u, 2458988443u, 1117047527u, 356853259u, 0, COSH_TOLERANCE, 0},
+{ 835, 1077132524u, 2023065054u, 3211994098u, 2734612965u, 1101414558u, 3575590741u, 0, COSH_TOLERANCE, 0},
+{ 836, 1071414726u, 3679267365u, 3237728785u, 1699558211u, 1072798880u, 129754064u, 0, COSH_TOLERANCE, 0},
+{ 837, 1077593250u, 1826799031u, 1078709629u, 3986905229u, 1112051516u, 1053308024u, 0, COSH_TOLERANCE, 0},
+{ 838, 1068572425u, 351061688u, 3194386466u, 4105857588u, 1072695593u, 4153306203u, 0, COSH_TOLERANCE, 0},
+{ 839, 1068808070u, 1365244058u, 1064457319u, 1452191426u, 1072696683u, 1681752437u, 0, COSH_TOLERANCE, 0},
+{ 840, 1071462417u, 2463030625u, 3215975031u, 3773488326u, 1072804439u, 2238472752u, 0, COSH_TOLERANCE, 0},
+{ 841, 3229256575u, 752664055u, 1065110394u, 1835931663u, 1714075118u, 149401169u, 0, COSH_TOLERANCE, 0},
+{ 842, 1077559328u, 3496172149u, 1089617208u, 109068701u, 1111311801u, 1798297128u, 0, COSH_TOLERANCE, 0},
+{ 843, 3215960879u, 1636966254u, 1086098766u, 2016598298u, 1072695254u, 1939764603u, 0, COSH_TOLERANCE, 0},
+{ 844, 1067708534u, 3551516956u, 1097969102u, 1317953425u, 1072694043u, 1086280677u, 0, COSH_TOLERANCE, 0},
+{ 845, 3223540761u, 2977627788u, 1045339018u, 516058480u, 1086242904u, 2098662703u, 0, COSH_TOLERANCE, 0},
+{ 846, 3224825666u, 3901731263u, 3189566462u, 32272932u, 1106313364u, 1335776681u, 0, COSH_TOLERANCE, 0},
+{ 847, 1074136068u, 1956025297u, 3246628529u, 3840733905u, 1075804523u, 2847820500u, 0, COSH_TOLERANCE, 0},
+{ 848, 1080943668u, 561057891u, 3198494340u, 4271027193u, 1433394156u, 930486357u, 0, COSH_TOLERANCE, 0},
+{ 849, 3228909825u, 692989850u, 3242630588u, 2492225971u, 1585995290u, 319542345u, 0, COSH_TOLERANCE, 0},
+{ 850, 3218062309u, 3439913962u, 1067477011u, 2973333638u, 1072725638u, 3634823438u, 0, COSH_TOLERANCE, 0},
+{ 851, 3219236869u, 877613377u, 1044917899u, 809672798u, 1072856952u, 2796036778u, 0, COSH_TOLERANCE, 0},
+{ 852, 3222171454u, 905426932u, 1046417457u, 1086320855u, 1077310812u, 2851365163u, 0, COSH_TOLERANCE, 0},
+{ 853, 3227472261u, 2645567288u, 1051258339u, 557182478u, 1261081230u, 3197735669u, 0, COSH_TOLERANCE, 0},
+{ 854, 3216640862u, 186287752u, 1061342054u, 4054003419u, 1072698679u, 729206068u, 0, COSH_TOLERANCE, 0},
+{ 855, 1079440881u, 3506889716u, 3243866036u, 519056371u, 1210492348u, 931610429u, 0, COSH_TOLERANCE, 0},
+{ 856, 1065722725u, 2171898436u, 3246911982u, 1091500784u, 1072693306u, 2265047919u, 0, COSH_TOLERANCE, 0},
+{ 857, 3226870457u, 368493885u, 3222871893u, 1419055230u, 1205516424u, 2259354588u, 0, COSH_TOLERANCE, 0},
+{ 858, 1078319084u, 2010971245u, 3188804530u, 1518695799u, 1137724679u, 3191526077u, 0, COSH_TOLERANCE, 0},
+{ 859, 3218009421u, 1239207795u, 1040192984u, 2199481342u, 1072724004u, 1939639299u, 0, COSH_TOLERANCE, 0},
+{ 860, 3218318669u, 4264613432u, 3203460972u, 3558930895u, 1072743039u, 1280148500u, 0, COSH_TOLERANCE, 0},
+{ 861, 1068125075u, 3772748958u, 3227667376u, 309688336u, 1072694631u, 780493773u, 0, COSH_TOLERANCE, 0},
+{ 862, 3223403009u, 1077949160u, 1075769893u, 2405271377u, 1084588117u, 750360291u, 0, COSH_TOLERANCE, 0},
+{ 863, 1078203664u, 3751608506u, 3232278094u, 930375071u, 1132383966u, 338172682u, 0, COSH_TOLERANCE, 0},
+{ 864, 3215394369u, 1518334131u, 3205247482u, 791756713u, 1072694308u, 1837710716u, 0, COSH_TOLERANCE, 0},
+{ 865, 1067240397u, 2825203170u, 3245054001u, 1822981827u, 1072693662u, 2728197500u, 0, COSH_TOLERANCE, 0},
+{ 866, 1080093419u, 514474738u, 1089072073u, 3300845441u, 1276320656u, 226623888u, 0, COSH_TOLERANCE, 0},
+{ 867, 3219536978u, 247369460u, 3197320093u, 687450958u, 1072956743u, 2486540699u, 0, COSH_TOLERANCE, 0},
+{ 868, 1081092750u, 2722237629u, 1058272368u, 90602316u, 1462892401u, 1953188388u, 0, COSH_TOLERANCE, 0},
+{ 869, 3217535619u, 1845900544u, 3231520830u, 3389751458u, 1072711269u, 1708331520u, 0, COSH_TOLERANCE, 0},
+{ 870, 3227612301u, 737689911u, 3195377751u, 3462616966u, 1282803389u, 893857503u, 0, COSH_TOLERANCE, 0},
+{ 871, 3221441232u, 3620285831u, 1055501023u, 2708056059u, 1075215165u, 36506447u, 0, COSH_TOLERANCE, 0},
+{ 872, 3220513572u, 4073430285u, 1056206159u, 172017902u, 1073745576u, 1368956281u, 0, COSH_TOLERANCE, 0},
+{ 873, 3219161094u, 2799176222u, 1052706894u, 4083892667u, 1072835757u, 2697030089u, 0, COSH_TOLERANCE, 0},
+{ 874, 3216959621u, 1562351330u, 1069705601u, 1247765260u, 1072700899u, 3715177876u, 0, COSH_TOLERANCE, 0},
+{ 875, 3224328691u, 51853475u, 3189080201u, 2783553144u, 1095270977u, 3427601507u, 0, COSH_TOLERANCE, 0},
+{ 876, 3220502929u, 3851781549u, 3241598113u, 514064046u, 1073730914u, 2250864942u, 0, COSH_TOLERANCE, 0},
+{ 877, 1080123021u, 934745487u, 3248182437u, 2798581921u, 1281762996u, 865963855u, 0, COSH_TOLERANCE, 0},
+{ 878, 3219373949u, 2948648757u, 3232177250u, 4278702895u, 1072899337u, 3276588090u, 0, COSH_TOLERANCE, 0},
+{ 879, 1073534300u, 4259101461u, 1061606772u, 84229920u, 1074325687u, 1565151099u, 0, COSH_TOLERANCE, 0},
+{ 880, 3215901351u, 3891230598u, 1095924595u, 3049217547u, 1072695140u, 4168549617u, 0, COSH_TOLERANCE, 0},
+{ 881, 1074207325u, 3806018919u, 3243191216u, 280177341u, 1075970755u, 2786980301u, 0, COSH_TOLERANCE, 0},
+{ 882, 1070061714u, 3900344258u, 1063647809u, 4206745890u, 1072711496u, 3823741603u, 0, COSH_TOLERANCE, 0},
+{ 883, 3222464456u, 2126253040u, 3207248026u, 808507485u, 1078737170u, 621449966u, 0, COSH_TOLERANCE, 0},
+{ 884, 1076653133u, 3465685634u, 3230391053u, 3754958214u, 1093053515u, 3736100576u, 0, COSH_TOLERANCE, 0},
+{ 885, 1080840988u, 461094531u, 1101110393u, 1316091396u, 1414403053u, 3462873770u, 0, COSH_TOLERANCE, 0},
+{ 886, 1071271770u, 4197635149u, 1091873113u, 1240127141u, 1072783106u, 1748105286u, 0, COSH_TOLERANCE, 0},
+{ 887, 1074333893u, 118603800u, 1105304898u, 4291425557u, 1076291260u, 1720945322u, 0, COSH_TOLERANCE, 0},
+{ 888, 3219720621u, 3744663425u, 3212482771u, 953662066u, 1073030929u, 896575844u, 0, COSH_TOLERANCE, 0},
+{ 889, 1076782697u, 3564196690u, 3228101916u, 904305212u, 1094612637u, 2831822307u, 0, COSH_TOLERANCE, 0},
+{ 890, 1067207479u, 3566257266u, 3235138829u, 2734275140u, 1072693648u, 1269634877u, 0, COSH_TOLERANCE, 0},
+{ 891, 3227171261u, 606044282u, 3241318094u, 2446416887u, 1233304247u, 534441612u, 0, COSH_TOLERANCE, 0},
+{ 892, 1065744532u, 2336116589u, 3197594053u, 2296925138u, 1072693308u, 1465765093u, 0, COSH_TOLERANCE, 0},
+{ 893, 1070101995u, 907670625u, 3240769036u, 1827119006u, 1072712452u, 2747386971u, 0, COSH_TOLERANCE, 0},
+{ 894, 1066487279u, 2818710946u, 3246059905u, 553394170u, 1072693397u, 3115364367u, 0, COSH_TOLERANCE, 0},
+{ 895, 3213621342u, 4099522736u, 3232742168u, 3718083858u, 1072693345u, 3406009066u, 0, COSH_TOLERANCE, 0},
+{ 896, 1078739788u, 1059279404u, 1080245336u, 175941677u, 1157065361u, 1087430260u, 0, COSH_TOLERANCE, 0},
+{ 897, 1082121019u, 1650862428u, 1061816101u, 1723201723u, 1842630885u, 3875297949u, 0, COSH_TOLERANCE, 0},
+{ 898, 3226429902u, 2462163405u, 3218946201u, 3876535372u, 1166601564u, 774021558u, 0, COSH_TOLERANCE, 0},
+{ 899, 1076004278u, 495844137u, 1073721460u, 772777946u, 1085574307u, 3103051899u, 0, COSH_TOLERANCE, 0},
+{ 900, 1068143970u, 458757721u, 3245680321u, 3609892707u, 1072694661u, 2944146062u, 0, COSH_TOLERANCE, 0},
+{ 901, 3214254476u, 2533012202u, 1079980803u, 3592268374u, 1072693481u, 4122712420u, 0, COSH_TOLERANCE, 0},
+{ 902, 3216996268u, 4108274117u, 1063045844u, 571992389u, 1072701179u, 2572750489u, 0, COSH_TOLERANCE, 0},
+{ 903, 1077984359u, 3541110973u, 1096296754u, 3118427427u, 1122209571u, 2499543662u, 0, COSH_TOLERANCE, 0},
+{ 904, 3213902987u, 1213941007u, 1105433735u, 2172963370u, 1072693380u, 1385696423u, 0, COSH_TOLERANCE, 0},
+{ 905, 1079027567u, 272190288u, 1095452370u, 4026581530u, 1172388533u, 1567535437u, 0, COSH_TOLERANCE, 0},
+{ 906, 1079855269u, 2843638672u, 1100510986u, 3190536898u, 1248839882u, 1134925313u, 0, COSH_TOLERANCE, 0},
+{ 907, 1076417062u, 2014317727u, 3247389683u, 2428462015u, 1090384705u, 358950430u, 0, COSH_TOLERANCE, 0},
+{ 908, 1078248077u, 688442200u, 1047852515u, 3035186380u, 1134419607u, 2761855333u, 0, COSH_TOLERANCE, 0},
+{ 909, 1074567060u, 1010095511u, 3221288076u, 405287991u, 1077008382u, 2678639855u, 0, COSH_TOLERANCE, 0},
+{ 910, 3229225943u, 2983070435u, 1089546472u, 2907918480u, 1702816421u, 3410875852u, 0, COSH_TOLERANCE, 0},
+{ 911, 1076696665u, 81928569u, 1056007286u, 2740556321u, 1093638835u, 274386753u, 0, COSH_TOLERANCE, 0},
+{ 912, 1066276691u, 2076689028u, 1081558619u, 3039159031u, 1072693361u, 800822767u, 0, COSH_TOLERANCE, 0},
+{ 913, 1067230382u, 1376882094u, 3211003208u, 1296286481u, 1072693658u, 1054988025u, 0, COSH_TOLERANCE, 0},
+{ 914, 1074871434u, 744133164u, 3200943494u, 955832216u, 1078106333u, 2049981092u, 0, COSH_TOLERANCE, 0},
+{ 915, 3223144598u, 176522478u, 1069999908u, 2891249491u, 1082629674u, 2323388443u, 0, COSH_TOLERANCE, 0},
+{ 916, 1065584698u, 3685851715u, 3187829932u, 2363997529u, 1072693295u, 2956924633u, 0, COSH_TOLERANCE, 0},
+{ 917, 1065409879u, 3974431579u, 1052505165u, 2589067816u, 1072693283u, 2371419071u, 0, COSH_TOLERANCE, 0},
+{ 918, 3213516885u, 3819109588u, 1048561488u, 969143351u, 1072693334u, 4144308189u, 0, COSH_TOLERANCE, 0},
+{ 919, 1073687973u, 4246896124u, 1104584799u, 1940097860u, 1074570627u, 2298933225u, 0, COSH_TOLERANCE, 0},
+{ 920, 1066912836u, 2228686199u, 3220231833u, 777624847u, 1072693531u, 787077708u, 0, COSH_TOLERANCE, 0},
+{ 921, 3224127274u, 4189906558u, 3203004203u, 854242364u, 1092949557u, 959709294u, 0, COSH_TOLERANCE, 0},
+{ 922, 1081890311u, 4089051094u, 3227282692u, 2693170723u, 1757476753u, 2188757040u, 0, COSH_TOLERANCE, 0},
+{ 923, 1066855127u, 1278581412u, 3239296746u, 1774588717u, 1072693510u, 2634419015u, 0, COSH_TOLERANCE, 0},
+{ 924, 3221324110u, 1794845306u, 1104879344u, 4135865182u, 1074925497u, 3906182610u, 0, COSH_TOLERANCE, 0},
+{ 925, 1081283231u, 754938390u, 1061291430u, 2010786993u, 1533223782u, 1531468649u, 0, COSH_TOLERANCE, 0},
+{ 926, 1073581409u, 2034303731u, 3240176537u, 314147356u, 1074396812u, 1237727695u, 0, COSH_TOLERANCE, 0},
+{ 927, 3224109162u, 567588900u, 3195452230u, 1421366017u, 1092771194u, 1959115226u, 0, COSH_TOLERANCE, 0},
+{ 928, 3221944027u, 2708717091u, 1071975971u, 1364590470u, 1076699364u, 3498938298u, 0, COSH_TOLERANCE, 0},
+{ 929, 3229068611u, 3461956134u, 3207820115u, 1605709634u, 1644637705u, 436547866u, 0, COSH_TOLERANCE, 0},
+{ 930, 1071594452u, 1497124553u, 1051715442u, 916736957u, 1072820615u, 3509403797u, 0, COSH_TOLERANCE, 0},
+{ 931, 1070002699u, 834914365u, 1064667143u, 2839166298u, 1072710141u, 49948186u, 0, COSH_TOLERANCE, 0},
+{ 932, 1069862861u, 2139295776u, 1062816721u, 914592523u, 1072707138u, 2831866037u, 0, COSH_TOLERANCE, 0},
+{ 933, 3213754179u, 851569132u, 1058503154u, 1399378677u, 1072693360u, 2063325022u, 0, COSH_TOLERANCE, 0},
+{ 934, 3224100513u, 3897202342u, 3245382590u, 246600375u, 1092694344u, 2855953602u, 0, COSH_TOLERANCE, 0},
+{ 935, 3222314580u, 3620429520u, 1055627557u, 229305u, 1077927721u, 4207295924u, 0, COSH_TOLERANCE, 0},
+{ 936, 1076618801u, 3641997865u, 3206673888u, 93720614u, 1092711110u, 70908616u, 0, COSH_TOLERANCE, 0},
+{ 937, 3222565555u, 32766320u, 1062084905u, 3668443038u, 1079296080u, 3835260610u, 0, COSH_TOLERANCE, 0},
+{ 938, 3222250420u, 2039713492u, 3248699388u, 1346210821u, 1077549839u, 2474839273u, 0, COSH_TOLERANCE, 0},
+{ 939, 1078369952u, 1335820726u, 3191756860u, 1808427032u, 1140014824u, 1082588104u, 0, COSH_TOLERANCE, 0},
+{ 940, 1070879947u, 650692001u, 1103515670u, 2253348763u, 1072746604u, 1613283469u, 0, COSH_TOLERANCE, 0},
+{ 941, 3213415283u, 2372623300u, 3210185343u, 3200572848u, 1072693325u, 180886037u, 0, COSH_TOLERANCE, 0},
+{ 942, 1080873125u, 762317532u, 3194595095u, 3192607437u, 1420280283u, 2571597720u, 0, COSH_TOLERANCE, 0},
+{ 943, 1070651309u, 217775356u, 3232827087u, 2969367386u, 1072729767u, 3026198031u, 0, COSH_TOLERANCE, 0},
+{ 944, 1069755463u, 3621353969u, 1077994795u, 3873976266u, 1072705033u, 1292815252u, 0, COSH_TOLERANCE, 0},
+{ 945, 1078719075u, 268372152u, 3221764390u, 3216978962u, 1156113361u, 77208680u, 0, COSH_TOLERANCE, 0},
+{ 946, 3227563243u, 142942404u, 1075322987u, 1746449109u, 1273775797u, 1613517009u, 0, COSH_TOLERANCE, 0},
+{ 947, 1081986200u, 496534875u, 3254522293u, 2532372502u, 1792868955u, 1796814503u, 0, COSH_TOLERANCE, 0},
+{ 948, 3228205445u, 2999955409u, 3222793392u, 1868977643u, 1392395773u, 861578698u, 0, COSH_TOLERANCE, 0},
+{ 949, 1074319042u, 3353193428u, 3218469191u, 3326244297u, 1076249507u, 4249056915u, 0, COSH_TOLERANCE, 0},
+{ 950, 1072413103u, 73646871u, 3231442171u, 3711510104u, 1073112064u, 51329157u, 0, COSH_TOLERANCE, 0},
+{ 951, 1077900612u, 218135177u, 3198908856u, 3082199105u, 1119150740u, 3713509082u, 0, COSH_TOLERANCE, 0},
+{ 952, 1072262784u, 1061628117u, 3248859043u, 86776158u, 1073042194u, 769388057u, 0, COSH_TOLERANCE, 0},
+{ 953, 3217921858u, 938869114u, 1087911145u, 2416710759u, 1072721392u, 3474817236u, 0, COSH_TOLERANCE, 0},
+{ 954, 1079848192u, 2970853959u, 3239543429u, 1887505029u, 1248109254u, 3136433410u, 0, COSH_TOLERANCE, 0},
+{ 955, 3225145875u, 1337895935u, 1076463812u, 1172733328u, 1113691889u, 31768603u, 0, COSH_TOLERANCE, 0},
+{ 956, 1068014296u, 1469010822u, 3229583535u, 551399515u, 1072694459u, 135999803u, 0, COSH_TOLERANCE, 0},
+{ 957, 1074118123u, 1849711538u, 1049053713u, 1744276190u, 1075735689u, 4015727387u, 0, COSH_TOLERANCE, 0},
+{ 958, 3226410140u, 2976596113u, 3192137295u, 3033242648u, 1165706945u, 2523414676u, 0, COSH_TOLERANCE, 0},
+{ 959, 1079824113u, 876810930u, 3197470945u, 2571587447u, 1245903887u, 1889039904u, 0, COSH_TOLERANCE, 0},
+{ 960, 3226042170u, 4007797282u, 3225853845u, 4069319648u, 1148697453u, 4203630871u, 0, COSH_TOLERANCE, 0},
+{ 961, 1067202926u, 3840538373u, 1043189552u, 3668774580u, 1072693646u, 1426518963u, 0, COSH_TOLERANCE, 0},
+{ 962, 3220757432u, 200857661u, 3229758439u, 3359367736u, 1073988275u, 2806959022u, 0, COSH_TOLERANCE, 0},
+{ 963, 3227826349u, 111868139u, 3227902082u, 2366064003u, 1322375028u, 1662095535u, 0, COSH_TOLERANCE, 0},
+{ 964, 1066215262u, 3510904416u, 3222131653u, 3822770497u, 1072693354u, 1051116137u, 0, COSH_TOLERANCE, 0},
+{ 965, 3226947075u, 789151814u, 1099269239u, 2958956055u, 1212574387u, 2807768454u, 0, COSH_TOLERANCE, 0},
+{ 966, 1076290712u, 722163228u, 1105524559u, 1534462169u, 1088870444u, 2168724557u, 0, COSH_TOLERANCE, 0},
+{ 967, 1066509006u, 2207037106u, 3208952465u, 1231254630u, 1072693403u, 2222435194u, 0, COSH_TOLERANCE, 0},
+{ 968, 3215709852u, 3838689849u, 3198769679u, 1302617170u, 1072694798u, 1405657813u, 0, COSH_TOLERANCE, 0},
+{ 969, 1076501722u, 2527556476u, 3240373426u, 124352692u, 1091342710u, 1779782796u, 0, COSH_TOLERANCE, 0},
+{ 970, 3215269445u, 3502371499u, 1043411944u, 4190072016u, 1072694140u, 376523261u, 0, COSH_TOLERANCE, 0},
+{ 971, 1070967598u, 1798470077u, 3200116917u, 3421833729u, 1072753924u, 1515331822u, 0, COSH_TOLERANCE, 0},
+{ 972, 3214486476u, 3653237931u, 3204255012u, 3683870669u, 1072693564u, 3470124748u, 0, COSH_TOLERANCE, 0},
+{ 973, 1069317222u, 376530104u, 1073853547u, 565755892u, 1072699746u, 1235915232u, 0, COSH_TOLERANCE, 0},
+{ 974, 3226775211u, 558292492u, 1051772749u, 4267873474u, 1196715895u, 131886187u, 0, COSH_TOLERANCE, 0},
+{ 975, 3221626981u, 509637100u, 3212030069u, 215050379u, 1075833072u, 467034146u, 0, COSH_TOLERANCE, 0},
+{ 976, 1078425613u, 3571665665u, 3188628584u, 757824767u, 1142574424u, 253046892u, 0, COSH_TOLERANCE, 0},
+{ 977, 3220042217u, 998858159u, 1063077962u, 436029885u, 1073186855u, 1202860156u, 0, COSH_TOLERANCE, 0},
+{ 978, 3217481301u, 996300405u, 3193842624u, 80548098u, 1072710027u, 2273904897u, 0, COSH_TOLERANCE, 0},
+{ 979, 3222557384u, 3876129407u, 3215332180u, 2226970413u, 1079254352u, 3066283527u, 0, COSH_TOLERANCE, 0},
+{ 980, 3225026041u, 200013509u, 3224552716u, 414878724u, 1110874928u, 1169612687u, 0, COSH_TOLERANCE, 0},
+{ 981, 3224325637u, 309319541u, 1048979765u, 1261662434u, 1095233986u, 817192005u, 0, COSH_TOLERANCE, 0},
+{ 982, 1077718303u, 4062255924u, 3224274128u, 4289485681u, 1114943885u, 3449799183u, 0, COSH_TOLERANCE, 0},
+{ 983, 3224601748u, 1611969213u, 1053890378u, 3774617276u, 1101126454u, 3591228804u, 0, COSH_TOLERANCE, 0},
+{ 984, 1075169883u, 1752164782u, 3239587974u, 612223386u, 1079838374u, 2949770801u, 0, COSH_TOLERANCE, 0},
+{ 985, 1065663030u, 2024044989u, 1074932678u, 3259111307u, 1072693301u, 3021786197u, 0, COSH_TOLERANCE, 0},
+{ 986, 1068936158u, 2564965629u, 1093571065u, 169360454u, 1072697362u, 2639638506u, 0, COSH_TOLERANCE, 0},
+{ 987, 1077016178u, 1860101737u, 3191222372u, 1676437468u, 1098787212u, 2272979218u, 0, COSH_TOLERANCE, 0},
+{ 988, 1070288728u, 588387057u, 3192103292u, 2495288012u, 1072717205u, 1389707200u, 0, COSH_TOLERANCE, 0},
+{ 989, 3214127225u, 659070058u, 1073095700u, 1393632068u, 1072693441u, 3612914573u, 0, COSH_TOLERANCE, 0},
+{ 990, 3220828991u, 4276187829u, 3217553330u, 1868253275u, 1074072167u, 2887453002u, 0, COSH_TOLERANCE, 0},
+{ 991, 3222171696u, 2085481575u, 3215994784u, 800910002u, 1077311492u, 1227387766u, 0, COSH_TOLERANCE, 0},
+{ 992, 1069517748u, 1950570756u, 3200582211u, 941022151u, 1072701219u, 599507787u, 0, COSH_TOLERANCE, 0},
+{ 993, 1070113280u, 2075610870u, 3250142022u, 3605152103u, 1072712724u, 3542177568u, 0, COSH_TOLERANCE, 0},
+{ 994, 3216567890u, 3792931748u, 3204857863u, 804393211u, 1072698224u, 1504041164u, 0, COSH_TOLERANCE, 0},
+{ 995, 3229529122u, 3430071177u, 3226288311u, 3652522729u, 1814734598u, 874872258u, 0, COSH_TOLERANCE, 0},
+{ 996, 3215994766u, 236884699u, 3227874605u, 2193269825u, 1072695344u, 2273001648u, 0, COSH_TOLERANCE, 0},
+{ 997, 1071228049u, 2744231849u, 1046186036u, 771053722u, 1072778547u, 642403527u, 0, COSH_TOLERANCE, 0},
+{ 998, 1076656004u, 3000189819u, 1096500901u, 2057239777u, 1093086420u, 3545313986u, 0, COSH_TOLERANCE, 0},
+{ 999, 1078106941u, 205759408u, 3244643377u, 2702292618u, 1127858436u, 16441604u, 0, COSH_TOLERANCE, 0},
+
+
+// AUTOMATICALLY GENERATED VECTORS STOP
+
+};
+
+#endif // CYGONCE_LIBM_COSH_H multiple inclusion protection
+
+// EOF cosh.h
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/coshf.c b/ecos/packages/language/c/libm/current/tests/vectors/coshf.c
new file mode 100644
index 0000000..8529324
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/coshf.c
@@ -0,0 +1,115 @@
+//===========================================================================
+//
+// coshf.c
+//
+// Test of coshf() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// Declarations for test system:
+//
+// TESTCASE_TYPE=CYG_TEST_MODULE
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include <cyg/infra/testcase.h> // Test infrastructure
+#include <math.h> // Header for this package
+#include <sys/ieeefp.h> // Cyg_libm_ieee_float_shape_type
+#include "vectors/vector_support_float.h"// extra support for math tests
+
+#include "vectors/coshf.h"
+
+// FUNCTIONS
+
+static void
+test( CYG_ADDRWORD data )
+{
+ cyg_ucount32 vec_size;
+ cyg_bool ret;
+
+ vec_size = sizeof(coshf_vec) / sizeof(Cyg_libm_test_float_vec_t);
+ ret = doTestVecFloat( (CYG_ADDRWORD) &coshf, CYG_LIBM_TEST_VEC_FLOAT,
+ CYG_LIBM_TEST_VEC_NONE, CYG_LIBM_TEST_VEC_FLOAT,
+ &coshf_vec[0], vec_size );
+
+ if (ret==true)
+ {
+ CYG_TEST_PASS("coshf() is stable");
+ } // if
+ else
+ {
+ CYG_TEST_FAIL("coshf() failed tests");
+ } // else
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for Math "
+ "library coshf() function");
+} // test()
+
+
+int
+main(int argc, char *argv[])
+{
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for Math library "
+ "coshf() function");
+
+ START_TEST( test );
+
+ CYG_TEST_PASS_FINISH("Testing is not applicable to this configuration");
+
+} // main()
+
+
+// EOF coshf.c
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/coshf.h b/ecos/packages/language/c/libm/current/tests/vectors/coshf.h
new file mode 100644
index 0000000..8be46ed
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/coshf.h
@@ -0,0 +1,517 @@
+#ifndef CYGONCE_LIBM_COSH_H
+#define CYGONCE_LIBM_COSH_H
+//===========================================================================
+//
+// coshf.h
+//
+// Test vectors for testing of coshf() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage: #include "vectors/coshf.h"
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include "vectors/vector_support_float.h"// extra support for math tests
+
+#define COSH_TOLERANCE 1.0E-04
+
+static const Cyg_libm_test_float_vec_t coshf_vec[] = {
+
+// AUTOMATICALLY GENERATED VECTORS START
+
+{0, 3214514586u, 1072153489u, 1072153489u, 0, COSH_TOLERANCE, 0},
+{1, 3214430700u, 1072027623u, 1072027623u, 0, COSH_TOLERANCE, 0},
+{2, 3214346813u, 1071903263u, 1071903263u, 0, COSH_TOLERANCE, 0},
+{3, 3214262927u, 1071780397u, 1071780397u, 0, COSH_TOLERANCE, 0},
+{4, 3214179041u, 1071659013u, 1071659013u, 0, COSH_TOLERANCE, 0},
+{5, 3214095155u, 1071539100u, 1071539100u, 0, COSH_TOLERANCE, 0},
+{6, 3214011269u, 1071420643u, 1071420643u, 0, COSH_TOLERANCE, 0},
+{7, 3213927383u, 1071303632u, 1071303632u, 0, COSH_TOLERANCE, 0},
+{8, 3213843497u, 1071188056u, 1071188056u, 0, COSH_TOLERANCE, 0},
+{9, 3213759611u, 1071073900u, 1071073900u, 0, COSH_TOLERANCE, 0},
+{10, 3213675725u, 1070961157u, 1070961157u, 0, COSH_TOLERANCE, 0},
+{11, 3213591839u, 1070849813u, 1070849813u, 0, COSH_TOLERANCE, 0},
+{12, 3213507953u, 1070739857u, 1070739857u, 0, COSH_TOLERANCE, 0},
+{13, 3213424067u, 1070631278u, 1070631278u, 0, COSH_TOLERANCE, 0},
+{14, 3213340180u, 1070524066u, 1070524066u, 0, COSH_TOLERANCE, 0},
+{15, 3213256294u, 1070418210u, 1070418210u, 0, COSH_TOLERANCE, 0},
+{16, 3213172408u, 1070313701u, 1070313701u, 0, COSH_TOLERANCE, 0},
+{17, 3213088522u, 1070210525u, 1070210525u, 0, COSH_TOLERANCE, 0},
+{18, 3213004636u, 1070108675u, 1070108675u, 0, COSH_TOLERANCE, 0},
+{19, 3212920750u, 1070008138u, 1070008138u, 0, COSH_TOLERANCE, 0},
+{20, 3212836864u, 1069908906u, 1069908906u, 0, COSH_TOLERANCE, 0},
+{21, 3212669092u, 1069810970u, 1069810970u, 0, COSH_TOLERANCE, 0},
+{22, 3212501320u, 1069714317u, 1069714317u, 0, COSH_TOLERANCE, 0},
+{23, 3212333548u, 1069618939u, 1069618939u, 0, COSH_TOLERANCE, 0},
+{24, 3212165775u, 1069524826u, 1069524826u, 0, COSH_TOLERANCE, 0},
+{25, 3211998003u, 1069431969u, 1069431969u, 0, COSH_TOLERANCE, 0},
+{26, 3211830231u, 1069340360u, 1069340360u, 0, COSH_TOLERANCE, 0},
+{27, 3211662459u, 1069249988u, 1069249988u, 0, COSH_TOLERANCE, 0},
+{28, 3211494687u, 1069160844u, 1069160844u, 0, COSH_TOLERANCE, 0},
+{29, 3211326915u, 1069072921u, 1069072921u, 0, COSH_TOLERANCE, 0},
+{30, 3211159142u, 1068986208u, 1068986208u, 0, COSH_TOLERANCE, 0},
+{31, 3210991370u, 1068900697u, 1068900697u, 0, COSH_TOLERANCE, 0},
+{32, 3210823598u, 1068816380u, 1068816380u, 0, COSH_TOLERANCE, 0},
+{33, 3210655826u, 1068733248u, 1068733248u, 0, COSH_TOLERANCE, 0},
+{34, 3210488054u, 1068651292u, 1068651292u, 0, COSH_TOLERANCE, 0},
+{35, 3210320282u, 1068570506u, 1068570506u, 0, COSH_TOLERANCE, 0},
+{36, 3210152509u, 1068490879u, 1068490879u, 0, COSH_TOLERANCE, 0},
+{37, 3209984737u, 1068412406u, 1068412406u, 0, COSH_TOLERANCE, 0},
+{38, 3209816965u, 1068335079u, 1068335079u, 0, COSH_TOLERANCE, 0},
+{39, 3209649193u, 1068258888u, 1068258888u, 0, COSH_TOLERANCE, 0},
+{40, 3209481421u, 1068183826u, 1068183826u, 0, COSH_TOLERANCE, 0},
+{41, 3209313649u, 1068109886u, 1068109886u, 0, COSH_TOLERANCE, 0},
+{42, 3209145876u, 1068037060u, 1068037060u, 0, COSH_TOLERANCE, 0},
+{43, 3208978104u, 1067965341u, 1067965341u, 0, COSH_TOLERANCE, 0},
+{44, 3208810332u, 1067894723u, 1067894723u, 0, COSH_TOLERANCE, 0},
+{45, 3208642560u, 1067825198u, 1067825198u, 0, COSH_TOLERANCE, 0},
+{46, 3208474788u, 1067756759u, 1067756759u, 0, COSH_TOLERANCE, 0},
+{47, 3208307016u, 1067689400u, 1067689400u, 0, COSH_TOLERANCE, 0},
+{48, 3208139244u, 1067623113u, 1067623113u, 0, COSH_TOLERANCE, 0},
+{49, 3207971471u, 1067557890u, 1067557890u, 0, COSH_TOLERANCE, 0},
+{50, 3207803699u, 1067493729u, 1067493729u, 0, COSH_TOLERANCE, 0},
+{51, 3207635927u, 1067430620u, 1067430620u, 0, COSH_TOLERANCE, 0},
+{52, 3207468155u, 1067368557u, 1067368557u, 0, COSH_TOLERANCE, 0},
+{53, 3207300383u, 1067307535u, 1067307535u, 0, COSH_TOLERANCE, 0},
+{54, 3207132611u, 1067247547u, 1067247547u, 0, COSH_TOLERANCE, 0},
+{55, 3206964838u, 1067188587u, 1067188587u, 0, COSH_TOLERANCE, 0},
+{56, 3206797066u, 1067130650u, 1067130650u, 0, COSH_TOLERANCE, 0},
+{57, 3206629294u, 1067073729u, 1067073729u, 0, COSH_TOLERANCE, 0},
+{58, 3206461522u, 1067017820u, 1067017820u, 0, COSH_TOLERANCE, 0},
+{59, 3206293750u, 1066962916u, 1066962916u, 0, COSH_TOLERANCE, 0},
+{60, 3206125978u, 1066909011u, 1066909011u, 0, COSH_TOLERANCE, 0},
+{61, 3205958205u, 1066856101u, 1066856101u, 0, COSH_TOLERANCE, 0},
+{62, 3205790433u, 1066804180u, 1066804180u, 0, COSH_TOLERANCE, 0},
+{63, 3205622661u, 1066753243u, 1066753243u, 0, COSH_TOLERANCE, 0},
+{64, 3205454889u, 1066703285u, 1066703285u, 0, COSH_TOLERANCE, 0},
+{65, 3205287117u, 1066654301u, 1066654301u, 0, COSH_TOLERANCE, 0},
+{66, 3205119345u, 1066606286u, 1066606286u, 0, COSH_TOLERANCE, 0},
+{67, 3204951572u, 1066559235u, 1066559235u, 0, COSH_TOLERANCE, 0},
+{68, 3204783800u, 1066513143u, 1066513143u, 0, COSH_TOLERANCE, 0},
+{69, 3204616028u, 1066468007u, 1066468007u, 0, COSH_TOLERANCE, 0},
+{70, 3204448256u, 1066423820u, 1066423820u, 0, COSH_TOLERANCE, 0},
+{71, 3204112712u, 1066380580u, 1066380580u, 0, COSH_TOLERANCE, 0},
+{72, 3203777167u, 1066338281u, 1066338281u, 0, COSH_TOLERANCE, 0},
+{73, 3203441623u, 1066296920u, 1066296920u, 0, COSH_TOLERANCE, 0},
+{74, 3203106079u, 1066256491u, 1066256491u, 0, COSH_TOLERANCE, 0},
+{75, 3202770534u, 1066216992u, 1066216992u, 0, COSH_TOLERANCE, 0},
+{76, 3202434990u, 1066178419u, 1066178419u, 0, COSH_TOLERANCE, 0},
+{77, 3202099446u, 1066140766u, 1066140766u, 0, COSH_TOLERANCE, 0},
+{78, 3201763901u, 1066104032u, 1066104032u, 0, COSH_TOLERANCE, 0},
+{79, 3201428357u, 1066068211u, 1066068211u, 0, COSH_TOLERANCE, 0},
+{80, 3201092813u, 1066033300u, 1066033300u, 0, COSH_TOLERANCE, 0},
+{81, 3200757268u, 1065999297u, 1065999297u, 0, COSH_TOLERANCE, 0},
+{82, 3200421724u, 1065966197u, 1065966197u, 0, COSH_TOLERANCE, 0},
+{83, 3200086180u, 1065933997u, 1065933997u, 0, COSH_TOLERANCE, 0},
+{84, 3199750636u, 1065902694u, 1065902694u, 0, COSH_TOLERANCE, 0},
+{85, 3199415091u, 1065872285u, 1065872285u, 0, COSH_TOLERANCE, 0},
+{86, 3199079547u, 1065842767u, 1065842767u, 0, COSH_TOLERANCE, 0},
+{87, 3198744003u, 1065814136u, 1065814136u, 0, COSH_TOLERANCE, 0},
+{88, 3198408458u, 1065786390u, 1065786390u, 0, COSH_TOLERANCE, 0},
+{89, 3198072914u, 1065759527u, 1065759527u, 0, COSH_TOLERANCE, 0},
+{90, 3197737370u, 1065733543u, 1065733543u, 0, COSH_TOLERANCE, 0},
+{91, 3197401825u, 1065708436u, 1065708436u, 0, COSH_TOLERANCE, 0},
+{92, 3197066281u, 1065684204u, 1065684204u, 0, COSH_TOLERANCE, 0},
+{93, 3196730737u, 1065660843u, 1065660843u, 0, COSH_TOLERANCE, 0},
+{94, 3196395192u, 1065638352u, 1065638352u, 0, COSH_TOLERANCE, 0},
+{95, 3196059648u, 1065616728u, 1065616728u, 0, COSH_TOLERANCE, 0},
+{96, 3195388559u, 1065595970u, 1065595970u, 0, COSH_TOLERANCE, 0},
+{97, 3194717471u, 1065576075u, 1065576075u, 0, COSH_TOLERANCE, 0},
+{98, 3194046382u, 1065557040u, 1065557040u, 0, COSH_TOLERANCE, 0},
+{99, 3193375293u, 1065538865u, 1065538865u, 0, COSH_TOLERANCE, 0},
+{100, 3192704205u, 1065521548u, 1065521548u, 0, COSH_TOLERANCE, 0},
+{101, 3192033116u, 1065505086u, 1065505086u, 0, COSH_TOLERANCE, 0},
+{102, 3191362028u, 1065489479u, 1065489479u, 0, COSH_TOLERANCE, 0},
+{103, 3190690939u, 1065474723u, 1065474723u, 0, COSH_TOLERANCE, 0},
+{104, 3190019850u, 1065460819u, 1065460819u, 0, COSH_TOLERANCE, 0},
+{105, 3189348762u, 1065447765u, 1065447765u, 0, COSH_TOLERANCE, 0},
+{106, 3188677673u, 1065435559u, 1065435559u, 0, COSH_TOLERANCE, 0},
+{107, 3188006584u, 1065424200u, 1065424200u, 0, COSH_TOLERANCE, 0},
+{108, 3186999951u, 1065413686u, 1065413686u, 0, COSH_TOLERANCE, 0},
+{109, 3185657774u, 1065404018u, 1065404018u, 0, COSH_TOLERANCE, 0},
+{110, 3184315597u, 1065395194u, 1065395194u, 0, COSH_TOLERANCE, 0},
+{111, 3182973420u, 1065387213u, 1065387213u, 0, COSH_TOLERANCE, 0},
+{112, 3181631242u, 1065380074u, 1065380074u, 0, COSH_TOLERANCE, 0},
+{113, 3180289065u, 1065373776u, 1065373776u, 0, COSH_TOLERANCE, 0},
+{114, 3178611343u, 1065368320u, 1065368320u, 0, COSH_TOLERANCE, 0},
+{115, 3175926989u, 1065363704u, 1065363704u, 0, COSH_TOLERANCE, 0},
+{116, 3173242634u, 1065359928u, 1065359928u, 0, COSH_TOLERANCE, 0},
+{117, 3170222735u, 1065356991u, 1065356991u, 0, COSH_TOLERANCE, 0},
+{118, 3164854026u, 1065354894u, 1065354894u, 0, COSH_TOLERANCE, 0},
+{119, 3156465418u, 1065353635u, 1065353635u, 0, COSH_TOLERANCE, 0},
+{120, 1008981770u, 1065353635u, 1065353635u, 0, COSH_TOLERANCE, 0},
+{121, 1017370378u, 1065354894u, 1065354894u, 0, COSH_TOLERANCE, 0},
+{122, 1022739087u, 1065356991u, 1065356991u, 0, COSH_TOLERANCE, 0},
+{123, 1025758986u, 1065359928u, 1065359928u, 0, COSH_TOLERANCE, 0},
+{124, 1028443341u, 1065363704u, 1065363704u, 0, COSH_TOLERANCE, 0},
+{125, 1031127695u, 1065368320u, 1065368320u, 0, COSH_TOLERANCE, 0},
+{126, 1032805417u, 1065373776u, 1065373776u, 0, COSH_TOLERANCE, 0},
+{127, 1034147594u, 1065380074u, 1065380074u, 0, COSH_TOLERANCE, 0},
+{128, 1035489772u, 1065387213u, 1065387213u, 0, COSH_TOLERANCE, 0},
+{129, 1036831949u, 1065395194u, 1065395194u, 0, COSH_TOLERANCE, 0},
+{130, 1038174126u, 1065404018u, 1065404018u, 0, COSH_TOLERANCE, 0},
+{131, 1039516303u, 1065413686u, 1065413686u, 0, COSH_TOLERANCE, 0},
+{132, 1040522936u, 1065424200u, 1065424200u, 0, COSH_TOLERANCE, 0},
+{133, 1041194025u, 1065435559u, 1065435559u, 0, COSH_TOLERANCE, 0},
+{134, 1041865114u, 1065447765u, 1065447765u, 0, COSH_TOLERANCE, 0},
+{135, 1042536202u, 1065460819u, 1065460819u, 0, COSH_TOLERANCE, 0},
+{136, 1043207291u, 1065474723u, 1065474723u, 0, COSH_TOLERANCE, 0},
+{137, 1043878380u, 1065489479u, 1065489479u, 0, COSH_TOLERANCE, 0},
+{138, 1044549468u, 1065505086u, 1065505086u, 0, COSH_TOLERANCE, 0},
+{139, 1045220557u, 1065521548u, 1065521548u, 0, COSH_TOLERANCE, 0},
+{140, 1045891645u, 1065538865u, 1065538865u, 0, COSH_TOLERANCE, 0},
+{141, 1046562734u, 1065557040u, 1065557040u, 0, COSH_TOLERANCE, 0},
+{142, 1047233823u, 1065576075u, 1065576075u, 0, COSH_TOLERANCE, 0},
+{143, 1047904911u, 1065595970u, 1065595970u, 0, COSH_TOLERANCE, 0},
+{144, 1048576000u, 1065616728u, 1065616728u, 0, COSH_TOLERANCE, 0},
+{145, 1048911544u, 1065638352u, 1065638352u, 0, COSH_TOLERANCE, 0},
+{146, 1049247089u, 1065660843u, 1065660843u, 0, COSH_TOLERANCE, 0},
+{147, 1049582633u, 1065684204u, 1065684204u, 0, COSH_TOLERANCE, 0},
+{148, 1049918177u, 1065708436u, 1065708436u, 0, COSH_TOLERANCE, 0},
+{149, 1050253722u, 1065733543u, 1065733543u, 0, COSH_TOLERANCE, 0},
+{150, 1050589266u, 1065759527u, 1065759527u, 0, COSH_TOLERANCE, 0},
+{151, 1050924810u, 1065786390u, 1065786390u, 0, COSH_TOLERANCE, 0},
+{152, 1051260355u, 1065814136u, 1065814136u, 0, COSH_TOLERANCE, 0},
+{153, 1051595899u, 1065842767u, 1065842767u, 0, COSH_TOLERANCE, 0},
+{154, 1051931443u, 1065872285u, 1065872285u, 0, COSH_TOLERANCE, 0},
+{155, 1052266988u, 1065902694u, 1065902694u, 0, COSH_TOLERANCE, 0},
+{156, 1052602532u, 1065933997u, 1065933997u, 0, COSH_TOLERANCE, 0},
+{157, 1052938076u, 1065966197u, 1065966197u, 0, COSH_TOLERANCE, 0},
+{158, 1053273620u, 1065999297u, 1065999297u, 0, COSH_TOLERANCE, 0},
+{159, 1053609165u, 1066033300u, 1066033300u, 0, COSH_TOLERANCE, 0},
+{160, 1053944709u, 1066068211u, 1066068211u, 0, COSH_TOLERANCE, 0},
+{161, 1054280253u, 1066104032u, 1066104032u, 0, COSH_TOLERANCE, 0},
+{162, 1054615798u, 1066140766u, 1066140766u, 0, COSH_TOLERANCE, 0},
+{163, 1054951342u, 1066178419u, 1066178419u, 0, COSH_TOLERANCE, 0},
+{164, 1055286886u, 1066216992u, 1066216992u, 0, COSH_TOLERANCE, 0},
+{165, 1055622431u, 1066256491u, 1066256491u, 0, COSH_TOLERANCE, 0},
+{166, 1055957975u, 1066296920u, 1066296920u, 0, COSH_TOLERANCE, 0},
+{167, 1056293519u, 1066338281u, 1066338281u, 0, COSH_TOLERANCE, 0},
+{168, 1056629064u, 1066380580u, 1066380580u, 0, COSH_TOLERANCE, 0},
+{169, 1056964608u, 1066423820u, 1066423820u, 0, COSH_TOLERANCE, 0},
+{170, 1057132380u, 1066468007u, 1066468007u, 0, COSH_TOLERANCE, 0},
+{171, 1057300152u, 1066513143u, 1066513143u, 0, COSH_TOLERANCE, 0},
+{172, 1057467924u, 1066559235u, 1066559235u, 0, COSH_TOLERANCE, 0},
+{173, 1057635697u, 1066606286u, 1066606286u, 0, COSH_TOLERANCE, 0},
+{174, 1057803469u, 1066654301u, 1066654301u, 0, COSH_TOLERANCE, 0},
+{175, 1057971241u, 1066703285u, 1066703285u, 0, COSH_TOLERANCE, 0},
+{176, 1058139013u, 1066753243u, 1066753243u, 0, COSH_TOLERANCE, 0},
+{177, 1058306785u, 1066804180u, 1066804180u, 0, COSH_TOLERANCE, 0},
+{178, 1058474557u, 1066856101u, 1066856101u, 0, COSH_TOLERANCE, 0},
+{179, 1058642330u, 1066909011u, 1066909011u, 0, COSH_TOLERANCE, 0},
+{180, 1058810102u, 1066962916u, 1066962916u, 0, COSH_TOLERANCE, 0},
+{181, 1058977874u, 1067017820u, 1067017820u, 0, COSH_TOLERANCE, 0},
+{182, 1059145646u, 1067073729u, 1067073729u, 0, COSH_TOLERANCE, 0},
+{183, 1059313418u, 1067130650u, 1067130650u, 0, COSH_TOLERANCE, 0},
+{184, 1059481190u, 1067188587u, 1067188587u, 0, COSH_TOLERANCE, 0},
+{185, 1059648963u, 1067247547u, 1067247547u, 0, COSH_TOLERANCE, 0},
+{186, 1059816735u, 1067307535u, 1067307535u, 0, COSH_TOLERANCE, 0},
+{187, 1059984507u, 1067368557u, 1067368557u, 0, COSH_TOLERANCE, 0},
+{188, 1060152279u, 1067430620u, 1067430620u, 0, COSH_TOLERANCE, 0},
+{189, 1060320051u, 1067493729u, 1067493729u, 0, COSH_TOLERANCE, 0},
+{190, 1060487823u, 1067557890u, 1067557890u, 0, COSH_TOLERANCE, 0},
+{191, 1060655596u, 1067623113u, 1067623113u, 0, COSH_TOLERANCE, 0},
+{192, 1060823368u, 1067689400u, 1067689400u, 0, COSH_TOLERANCE, 0},
+{193, 1060991140u, 1067756759u, 1067756759u, 0, COSH_TOLERANCE, 0},
+{194, 1061158912u, 1067825198u, 1067825198u, 0, COSH_TOLERANCE, 0},
+{195, 1061326684u, 1067894723u, 1067894723u, 0, COSH_TOLERANCE, 0},
+{196, 1061494456u, 1067965341u, 1067965341u, 0, COSH_TOLERANCE, 0},
+{197, 1061662228u, 1068037060u, 1068037060u, 0, COSH_TOLERANCE, 0},
+{198, 1061830001u, 1068109886u, 1068109886u, 0, COSH_TOLERANCE, 0},
+{199, 1061997773u, 1068183826u, 1068183826u, 0, COSH_TOLERANCE, 0},
+{200, 1062165545u, 1068258888u, 1068258888u, 0, COSH_TOLERANCE, 0},
+{201, 1062333317u, 1068335079u, 1068335079u, 0, COSH_TOLERANCE, 0},
+{202, 1062501089u, 1068412406u, 1068412406u, 0, COSH_TOLERANCE, 0},
+{203, 1062668861u, 1068490879u, 1068490879u, 0, COSH_TOLERANCE, 0},
+{204, 1062836634u, 1068570506u, 1068570506u, 0, COSH_TOLERANCE, 0},
+{205, 1063004406u, 1068651292u, 1068651292u, 0, COSH_TOLERANCE, 0},
+{206, 1063172178u, 1068733248u, 1068733248u, 0, COSH_TOLERANCE, 0},
+{207, 1063339950u, 1068816380u, 1068816380u, 0, COSH_TOLERANCE, 0},
+{208, 1063507722u, 1068900697u, 1068900697u, 0, COSH_TOLERANCE, 0},
+{209, 1063675494u, 1068986208u, 1068986208u, 0, COSH_TOLERANCE, 0},
+{210, 1063843267u, 1069072921u, 1069072921u, 0, COSH_TOLERANCE, 0},
+{211, 1064011039u, 1069160844u, 1069160844u, 0, COSH_TOLERANCE, 0},
+{212, 1064178811u, 1069249988u, 1069249988u, 0, COSH_TOLERANCE, 0},
+{213, 1064346583u, 1069340360u, 1069340360u, 0, COSH_TOLERANCE, 0},
+{214, 1064514355u, 1069431969u, 1069431969u, 0, COSH_TOLERANCE, 0},
+{215, 1064682127u, 1069524826u, 1069524826u, 0, COSH_TOLERANCE, 0},
+{216, 1064849900u, 1069618939u, 1069618939u, 0, COSH_TOLERANCE, 0},
+{217, 1065017672u, 1069714317u, 1069714317u, 0, COSH_TOLERANCE, 0},
+{218, 1065185444u, 1069810970u, 1069810970u, 0, COSH_TOLERANCE, 0},
+{219, 1065353216u, 1069908906u, 1069908906u, 0, COSH_TOLERANCE, 0},
+{220, 1065437102u, 1070008138u, 1070008138u, 0, COSH_TOLERANCE, 0},
+{221, 1065520988u, 1070108675u, 1070108675u, 0, COSH_TOLERANCE, 0},
+{222, 1065604874u, 1070210525u, 1070210525u, 0, COSH_TOLERANCE, 0},
+{223, 1065688760u, 1070313701u, 1070313701u, 0, COSH_TOLERANCE, 0},
+{224, 1065772646u, 1070418210u, 1070418210u, 0, COSH_TOLERANCE, 0},
+{225, 1065856532u, 1070524066u, 1070524066u, 0, COSH_TOLERANCE, 0},
+{226, 1065940419u, 1070631278u, 1070631278u, 0, COSH_TOLERANCE, 0},
+{227, 1066024305u, 1070739857u, 1070739857u, 0, COSH_TOLERANCE, 0},
+{228, 1066108191u, 1070849813u, 1070849813u, 0, COSH_TOLERANCE, 0},
+{229, 1066192077u, 1070961157u, 1070961157u, 0, COSH_TOLERANCE, 0},
+{230, 1066275963u, 1071073900u, 1071073900u, 0, COSH_TOLERANCE, 0},
+{231, 1066359849u, 1071188056u, 1071188056u, 0, COSH_TOLERANCE, 0},
+{232, 1066443735u, 1071303632u, 1071303632u, 0, COSH_TOLERANCE, 0},
+{233, 1066527621u, 1071420643u, 1071420643u, 0, COSH_TOLERANCE, 0},
+{234, 1066611507u, 1071539100u, 1071539100u, 0, COSH_TOLERANCE, 0},
+{235, 1066695393u, 1071659013u, 1071659013u, 0, COSH_TOLERANCE, 0},
+{236, 1066779279u, 1071780397u, 1071780397u, 0, COSH_TOLERANCE, 0},
+{237, 1066863165u, 1071903263u, 1071903263u, 0, COSH_TOLERANCE, 0},
+{238, 1066947052u, 1072027623u, 1072027623u, 0, COSH_TOLERANCE, 0},
+{239, 3234402267u, 1132846996u, 1132846996u, 0, COSH_TOLERANCE, 0},
+{240, 3231108068u, 1113499468u, 1113499468u, 0, COSH_TOLERANCE, 0},
+{241, 3226013659u, 1094285476u, 1094285476u, 0, COSH_TOLERANCE, 0},
+{242, 3217625051u, 1075877474u, 1075877474u, 0, COSH_TOLERANCE, 0},
+{243, 0u, 1065353216u, 1065353216u, 0, COSH_TOLERANCE, 0},
+{244, 1070141403u, 1075877474u, 1075877474u, 0, COSH_TOLERANCE, 0},
+{245, 1078530011u, 1094285476u, 1094285476u, 0, COSH_TOLERANCE, 0},
+{246, 1083624420u, 1113499468u, 1113499468u, 0, COSH_TOLERANCE, 0},
+{247, 3253731328u, 1419477554u, 1419477554u, 0, COSH_TOLERANCE, 0},
+{248, 3252840038u, 1399014724u, 1399014724u, 0, COSH_TOLERANCE, 0},
+{249, 3251948749u, 1378226969u, 1378226969u, 0, COSH_TOLERANCE, 0},
+{250, 3251057459u, 1358083682u, 1358083682u, 0, COSH_TOLERANCE, 0},
+{251, 3250166170u, 1337023431u, 1337023431u, 0, COSH_TOLERANCE, 0},
+{252, 3249274880u, 1317116439u, 1317116439u, 0, COSH_TOLERANCE, 0},
+{253, 3248383590u, 1295870124u, 1295870124u, 0, COSH_TOLERANCE, 0},
+{254, 3247492301u, 1275750495u, 1275750495u, 0, COSH_TOLERANCE, 0},
+{255, 3246601011u, 1254770489u, 1254770489u, 0, COSH_TOLERANCE, 0},
+{256, 3245028147u, 1234423762u, 1234423762u, 0, COSH_TOLERANCE, 0},
+{257, 3243245568u, 1213728180u, 1213728180u, 0, COSH_TOLERANCE, 0},
+{258, 3241462989u, 1193138897u, 1193138897u, 0, COSH_TOLERANCE, 0},
+{259, 3239680410u, 1172747042u, 1172747042u, 0, COSH_TOLERANCE, 0},
+{260, 3237792973u, 1151898761u, 1151898761u, 0, COSH_TOLERANCE, 0},
+{261, 3234227814u, 1131831325u, 1131831325u, 0, COSH_TOLERANCE, 0},
+{262, 3230662656u, 1110707830u, 1110707830u, 0, COSH_TOLERANCE, 0},
+{263, 3224580915u, 1090784045u, 1090784045u, 0, COSH_TOLERANCE, 0},
+{264, 3213675725u, 1070961157u, 1070961157u, 0, COSH_TOLERANCE, 0},
+{265, 1058642330u, 1066909011u, 1066909011u, 0, COSH_TOLERANCE, 0},
+{266, 1075000115u, 1084305641u, 1084305641u, 0, COSH_TOLERANCE, 0},
+{267, 1082130432u, 1104836417u, 1104836417u, 0, COSH_TOLERANCE, 0},
+{268, 1085695590u, 1125478258u, 1125478258u, 0, COSH_TOLERANCE, 0},
+{269, 1089260749u, 1145864069u, 1145864069u, 0, COSH_TOLERANCE, 0},
+{270, 1091672474u, 1166798129u, 1166798129u, 0, COSH_TOLERANCE, 0},
+{271, 1093455053u, 1186954451u, 1186954451u, 0, COSH_TOLERANCE, 0},
+{272, 1095237632u, 1208157740u, 1208157740u, 0, COSH_TOLERANCE, 0},
+{273, 1097020211u, 1228099076u, 1228099076u, 0, COSH_TOLERANCE, 0},
+{274, 1098802790u, 1249206348u, 1249206348u, 0, COSH_TOLERANCE, 0},
+{275, 1099746509u, 1269294498u, 1269294498u, 0, COSH_TOLERANCE, 0},
+{276, 1100637798u, 1290126283u, 1290126283u, 0, COSH_TOLERANCE, 0},
+{277, 1101529088u, 1310537485u, 1310537485u, 0, COSH_TOLERANCE, 0},
+{278, 1102420378u, 1331111329u, 1331111329u, 0, COSH_TOLERANCE, 0},
+{279, 1103311667u, 1351825023u, 1351825023u, 0, COSH_TOLERANCE, 0},
+{280, 1104202957u, 1372157288u, 1372157288u, 0, COSH_TOLERANCE, 0},
+{281, 1105094246u, 1393154230u, 1393154230u, 0, COSH_TOLERANCE, 0},
+{282, 1105985536u, 1413260339u, 1413260339u, 0, COSH_TOLERANCE, 0},
+{283, 1136446367u, 1194999402u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{284, 1125946360u, 3370647675u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{285, 3282993411u, 3033957825u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{286, 3287103796u, 1154138102u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{287, 1140187905u, 3466051188u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{288, 1121356447u, 3373485062u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{289, 1130299734u, 903489435u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{290, 1129518585u, 3123875978u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{291, 1140196815u, 1338107877u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{292, 1133128320u, 1019883016u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{293, 3276881499u, 1279248024u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{294, 3271367674u, 2962345057u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{295, 3269130828u, 3184653669u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{296, 3266969368u, 1321337529u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{297, 1130931088u, 1103202538u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{298, 3275237890u, 1036705270u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{299, 3281018046u, 976891930u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{300, 3281639192u, 1041678304u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{301, 1138869462u, 3336225884u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{302, 1120934307u, 851754050u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{303, 1126893165u, 991185677u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{304, 3279750470u, 1043829691u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{305, 1132730239u, 970681762u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{306, 3273484600u, 3312047722u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{307, 1127993937u, 2961937089u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{308, 1119892445u, 1156123987u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{309, 1138979832u, 3100744786u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{310, 3281219012u, 3190881451u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{311, 3275104955u, 1118756120u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{312, 1122402726u, 901308750u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{313, 3273836836u, 1304806106u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{314, 1123378518u, 3420832544u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{315, 3273853781u, 2973850350u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{316, 1121330870u, 3004311296u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{317, 3273000898u, 3204192793u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{318, 3275056068u, 3347783723u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{319, 3277679442u, 3106834845u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{320, 3284754580u, 1219372260u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{321, 3270337101u, 1201894512u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{322, 3282773495u, 1005577835u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{323, 1124240677u, 906796922u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{324, 1119740026u, 3355874874u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{325, 3278655299u, 868771977u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{326, 1128494117u, 1006049444u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{327, 1124138309u, 1211303367u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{328, 3273718623u, 991614550u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{329, 3276301428u, 3455289118u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{330, 3267728658u, 3383396815u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{331, 1125858271u, 873199561u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{332, 3286617672u, 3349284325u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{333, 1128542540u, 2957454177u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{334, 3283910310u, 980772835u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{335, 1127703558u, 3212305413u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{336, 3270154277u, 3450484255u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{337, 1124824106u, 3116569667u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{338, 3285199003u, 3412765608u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{339, 1138483874u, 3123051784u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{340, 3287796143u, 3372450889u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{341, 1138427315u, 856187848u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{342, 3266731952u, 3073750220u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{343, 3286935579u, 1246277393u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{344, 3273269173u, 3434026174u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{345, 1135545828u, 1254918706u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{346, 1135988587u, 3461361185u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{347, 3283879654u, 3253874001u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{348, 3274295536u, 1139193797u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{349, 1134855236u, 3334899880u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{350, 1121073826u, 3064047808u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{351, 1133146865u, 870681806u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{352, 1123929207u, 3104759211u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{353, 3286633183u, 3331372071u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{354, 3267729753u, 1111437780u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{355, 1138742759u, 1009396165u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{356, 1119456624u, 928393353u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{357, 1129220730u, 3148135875u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{358, 3282572423u, 3023584354u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{359, 3286124867u, 3444030332u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{360, 1123536012u, 3278686216u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{361, 1129936658u, 3079166173u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{362, 3267758292u, 3481843070u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{363, 1126423020u, 3487506626u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{364, 1136073813u, 3488844154u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{365, 3270332384u, 1182798837u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{366, 1131115907u, 3176633124u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{367, 3284070129u, 1331845018u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{368, 3278696475u, 3107114149u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{369, 1127951444u, 825129857u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{370, 1129418756u, 811863044u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{371, 1126654193u, 961171401u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{372, 3271088163u, 3066326686u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{373, 1130359793u, 957302464u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{374, 1138775588u, 2985592532u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{375, 3282114235u, 1284049853u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{376, 3267398588u, 3271879112u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{377, 1120256985u, 1219003129u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{378, 1137354019u, 1166078045u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{379, 3267924701u, 2953541915u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{380, 1139056475u, 3396371713u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{381, 3282508977u, 3033299853u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{382, 3279527710u, 3333091960u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{383, 3276970123u, 1174967495u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{384, 1131911667u, 966031619u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{385, 3275501055u, 3029593823u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{386, 3280406230u, 1017987696u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{387, 1120190670u, 850632217u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{388, 3275370769u, 3069778532u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{389, 1134651039u, 3387555900u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{390, 1128329544u, 3228401212u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{391, 3278970989u, 1260217257u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{392, 1121118397u, 1087951909u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{393, 3270894457u, 869285240u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{394, 3274377473u, 3060143904u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{395, 1140495091u, 3003675365u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{396, 3273091864u, 3260140004u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{397, 3283145875u, 966439623u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{398, 3279997240u, 3205527253u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{399, 3275779969u, 3165561391u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{400, 1128236602u, 3119707283u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{401, 1119873837u, 894348966u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{402, 1129518015u, 1296370667u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{403, 3285580500u, 823220784u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{404, 3272701000u, 2997091781u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{405, 1133497567u, 1010219988u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{406, 3284538233u, 3096700943u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{407, 3283473802u, 1209565017u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{408, 3283716643u, 2960476959u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{409, 1123896707u, 1291336083u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{410, 3283491469u, 3066966245u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{411, 3277490267u, 3465211174u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{412, 3285474297u, 1004690387u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{413, 1131356577u, 3039376424u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{414, 3282700297u, 3392466405u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{415, 3271199789u, 893873945u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{416, 1119334287u, 3402349985u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{417, 1124554585u, 1196383822u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{418, 1132549237u, 949986176u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{419, 3272320105u, 3014443710u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{420, 1124791402u, 3436881197u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{421, 1130535137u, 1292690378u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{422, 3268791785u, 3381966453u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{423, 1140775387u, 978336043u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{424, 1122649389u, 1287895126u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{425, 3285229246u, 1200179013u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{426, 1138929728u, 3269683237u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{427, 1134073081u, 974138676u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{428, 3283970590u, 3113982619u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{429, 1130792233u, 3008182462u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{430, 3271927640u, 1086391131u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{431, 1139696833u, 3487600045u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{432, 3277065262u, 3233768835u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{433, 1122592774u, 3367769132u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{434, 1122400138u, 3031189261u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{435, 3274032488u, 3274638356u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{436, 3266998297u, 1277961150u, 2139095040u, 0, COSH_TOLERANCE, 0},
+{437, 3287654678u, 3261728191u, 2139095040u, 0, COSH_TOLERANCE, 0}
+
+// AUTOMATICALLY GENERATED VECTORS STOP
+
+};
+
+#endif // CYGONCE_LIBM_COSH_H multiple inclusion protection
+
+// EOF coshf.h
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/erfcf.c b/ecos/packages/language/c/libm/current/tests/vectors/erfcf.c
new file mode 100644
index 0000000..c6d19c1
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/erfcf.c
@@ -0,0 +1,115 @@
+//===========================================================================
+//
+// erfcf.c
+//
+// Test of erfcf() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####EERFFGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// Declarations for test system:
+//
+// TESTCASE_TYPE=CYG_TEST_MODULE
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include <cyg/infra/testcase.h> // Test infrastructure
+#include <math.h> // Header for this package
+#include <sys/ieeefp.h> // Cyg_libm_ieee_float_shape_type
+#include "vectors/vector_support_float.h"// extra support for math tests
+
+#include "vectors/erfcf.h"
+
+// FUNCTIONS
+
+static void
+test( CYG_ADDRWORD data )
+{
+ cyg_ucount32 vec_size;
+ cyg_bool ret;
+
+ vec_size = sizeof(erfcf_vec) / sizeof(Cyg_libm_test_float_vec_t);
+ ret = doTestVecFloat( (CYG_ADDRWORD) &erfcf, CYG_LIBM_TEST_VEC_FLOAT,
+ CYG_LIBM_TEST_VEC_NONE, CYG_LIBM_TEST_VEC_FLOAT,
+ &erfcf_vec[0], vec_size );
+
+ if (ret==true)
+ {
+ CYG_TEST_PASS("erfcf() is stable");
+ } // if
+ else
+ {
+ CYG_TEST_FAIL("erfcf() failed tests");
+ } // else
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for Math "
+ "library erfcf() function");
+} // test()
+
+
+int
+main(int argc, char *argv[])
+{
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for Math library "
+ "erfcf() function");
+
+ START_TEST( test );
+
+ CYG_TEST_PASS_FINISH("Testing is not applicable to this configuration");
+
+} // main()
+
+
+// EOF erfcf.c
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/erfcf.h b/ecos/packages/language/c/libm/current/tests/vectors/erfcf.h
new file mode 100644
index 0000000..956b1e9
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/erfcf.h
@@ -0,0 +1,361 @@
+#ifndef CYGONCE_LIBM_ERFCF_H
+#define CYGONCE_LIBM_ERFCF_H
+//===========================================================================
+//
+// erfcf.h
+//
+// Test vectors for testing of erfcf() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####EERFCFGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage: #include "vectors/erfcf.h"
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include "vectors/vector_support_float.h"// extra support for math tests
+
+#define ERFCF_TOLERANCE 1.0E-04
+
+static const Cyg_libm_test_float_vec_t erfcf_vec[] = {
+
+// AUTOMATICALLY GENERATED VECTORS START
+
+{0, 3214514586u, 2147493556u, 1072989483u, 0, ERFCF_TOLERANCE, 0},
+{1, 3214430700u, 2147493556u, 1072966786u, 0, ERFCF_TOLERANCE, 0},
+{2, 3214346813u, 2147493556u, 1072943542u, 0, ERFCF_TOLERANCE, 0},
+{3, 3214262927u, 2147493556u, 1072919744u, 0, ERFCF_TOLERANCE, 0},
+{4, 3214179041u, 2147493556u, 1072895382u, 0, ERFCF_TOLERANCE, 0},
+{5, 3214095155u, 2147493556u, 1072870448u, 0, ERFCF_TOLERANCE, 0},
+{6, 3214011269u, 2147493556u, 1072844934u, 0, ERFCF_TOLERANCE, 0},
+{7, 3213927383u, 2147493556u, 1072818831u, 0, ERFCF_TOLERANCE, 0},
+{8, 3213843497u, 2147493556u, 1072792132u, 0, ERFCF_TOLERANCE, 0},
+{9, 3213759611u, 2147493556u, 1072764828u, 0, ERFCF_TOLERANCE, 0},
+{10, 3213675725u, 2147493556u, 1072736911u, 0, ERFCF_TOLERANCE, 0},
+{11, 3213591839u, 2147493556u, 1072708374u, 0, ERFCF_TOLERANCE, 0},
+{12, 3213507953u, 2147493556u, 1072679207u, 0, ERFCF_TOLERANCE, 0},
+{13, 3213424067u, 2147493556u, 1072649403u, 0, ERFCF_TOLERANCE, 0},
+{14, 3213340180u, 2147493556u, 1072618955u, 0, ERFCF_TOLERANCE, 0},
+{15, 3213256294u, 2147493556u, 1072587854u, 0, ERFCF_TOLERANCE, 0},
+{16, 3213172408u, 2147493556u, 1072556094u, 0, ERFCF_TOLERANCE, 0},
+{17, 3213088522u, 2147493556u, 1072523666u, 0, ERFCF_TOLERANCE, 0},
+{18, 3213004636u, 2147493556u, 1072490563u, 0, ERFCF_TOLERANCE, 0},
+{19, 3212920750u, 2147493556u, 1072456777u, 0, ERFCF_TOLERANCE, 0},
+{20, 3212836864u, 2147493556u, 1072422303u, 0, ERFCF_TOLERANCE, 0},
+{21, 3212669092u, 2147493556u, 1072387132u, 0, ERFCF_TOLERANCE, 0},
+{22, 3212501320u, 2147493556u, 1072351257u, 0, ERFCF_TOLERANCE, 0},
+{23, 3212333548u, 2147493556u, 1072314673u, 0, ERFCF_TOLERANCE, 0},
+{24, 3212165775u, 2147493556u, 1072277371u, 0, ERFCF_TOLERANCE, 0},
+{25, 3211998003u, 2147493556u, 1072239347u, 0, ERFCF_TOLERANCE, 0},
+{26, 3211662459u, 2147493556u, 1072161105u, 0, ERFCF_TOLERANCE, 0},
+{27, 3211494687u, 2147493556u, 1072120874u, 0, ERFCF_TOLERANCE, 0},
+{28, 3211326915u, 2147493556u, 1072079897u, 0, ERFCF_TOLERANCE, 0},
+{29, 3211159142u, 2147493556u, 1072038167u, 0, ERFCF_TOLERANCE, 0},
+{30, 3210991370u, 2147493556u, 1071995679u, 0, ERFCF_TOLERANCE, 0},
+{31, 3210823598u, 2147493556u, 1071952428u, 0, ERFCF_TOLERANCE, 0},
+{32, 3210655826u, 2147493556u, 1071908409u, 0, ERFCF_TOLERANCE, 0},
+{33, 3210488054u, 2147493556u, 1071863617u, 0, ERFCF_TOLERANCE, 0},
+{34, 3210320282u, 2147493556u, 1071818048u, 0, ERFCF_TOLERANCE, 0},
+{35, 3210152509u, 2147493556u, 1071771698u, 0, ERFCF_TOLERANCE, 0},
+{36, 3209984737u, 2147493556u, 1071724563u, 0, ERFCF_TOLERANCE, 0},
+{37, 3209816965u, 2147493556u, 1071676639u, 0, ERFCF_TOLERANCE, 0},
+{38, 3209649193u, 2147493556u, 1071627922u, 0, ERFCF_TOLERANCE, 0},
+{39, 3209481421u, 2147493556u, 1071578410u, 0, ERFCF_TOLERANCE, 0},
+{40, 3209313649u, 2147493556u, 1071528099u, 0, ERFCF_TOLERANCE, 0},
+{41, 3209145876u, 2147493556u, 1071476987u, 0, ERFCF_TOLERANCE, 0},
+{42, 3208978104u, 2147493556u, 1071425072u, 0, ERFCF_TOLERANCE, 0},
+{43, 3208810332u, 2147493556u, 1071372351u, 0, ERFCF_TOLERANCE, 0},
+{44, 3208642560u, 2147493556u, 1071318822u, 0, ERFCF_TOLERANCE, 0},
+{45, 3208474788u, 2147493556u, 1071264484u, 0, ERFCF_TOLERANCE, 0},
+{46, 3208307016u, 2147493556u, 1071209336u, 0, ERFCF_TOLERANCE, 0},
+{47, 3208139244u, 2147493556u, 1071153378u, 0, ERFCF_TOLERANCE, 0},
+{48, 3207971471u, 2147493556u, 1071096607u, 0, ERFCF_TOLERANCE, 0},
+{49, 3207803699u, 2147493556u, 1071039024u, 0, ERFCF_TOLERANCE, 0},
+{50, 3207635927u, 2147493556u, 1070980630u, 0, ERFCF_TOLERANCE, 0},
+{51, 3207468155u, 2147493556u, 1070921425u, 0, ERFCF_TOLERANCE, 0},
+{52, 3207300383u, 2147493556u, 1070861409u, 0, ERFCF_TOLERANCE, 0},
+{53, 3207132611u, 2147493556u, 1070800583u, 0, ERFCF_TOLERANCE, 0},
+{54, 3206964838u, 2147493556u, 1070738948u, 0, ERFCF_TOLERANCE, 0},
+{55, 3206797066u, 2147493556u, 1070676508u, 0, ERFCF_TOLERANCE, 0},
+{56, 3206629294u, 2147493556u, 1070613263u, 0, ERFCF_TOLERANCE, 0},
+{57, 3206461522u, 2147493556u, 1070549216u, 0, ERFCF_TOLERANCE, 0},
+{58, 3206293750u, 2147493556u, 1070484370u, 0, ERFCF_TOLERANCE, 0},
+{59, 3206125978u, 2147493556u, 1070418728u, 0, ERFCF_TOLERANCE, 0},
+{60, 3205958205u, 2147493556u, 1070352294u, 0, ERFCF_TOLERANCE, 0},
+{61, 3205790433u, 2147493556u, 1070285071u, 0, ERFCF_TOLERANCE, 0},
+{62, 3205622661u, 2147493556u, 1070217063u, 0, ERFCF_TOLERANCE, 0},
+{63, 3205454889u, 2147493556u, 1070148277u, 0, ERFCF_TOLERANCE, 0},
+{64, 3205287117u, 2147493556u, 1070078715u, 0, ERFCF_TOLERANCE, 0},
+{65, 3205119345u, 2147493556u, 1070008384u, 0, ERFCF_TOLERANCE, 0},
+{66, 3204951572u, 2147493556u, 1069937289u, 0, ERFCF_TOLERANCE, 0},
+{67, 3204783800u, 2147493556u, 1069865437u, 0, ERFCF_TOLERANCE, 0},
+{68, 3204616028u, 2147493556u, 1069792833u, 0, ERFCF_TOLERANCE, 0},
+{69, 3204448256u, 2147493556u, 1069719485u, 0, ERFCF_TOLERANCE, 0},
+{70, 3204112712u, 2147493556u, 1069645401u, 0, ERFCF_TOLERANCE, 0},
+{71, 3203777167u, 2147493556u, 1069570586u, 0, ERFCF_TOLERANCE, 0},
+{72, 3203441623u, 2147493556u, 1069495050u, 0, ERFCF_TOLERANCE, 0},
+{73, 3203106079u, 2147493556u, 1069418800u, 0, ERFCF_TOLERANCE, 0},
+{74, 3202770534u, 2147493556u, 1069341846u, 0, ERFCF_TOLERANCE, 0},
+{75, 3202434990u, 2147493556u, 1069264196u, 0, ERFCF_TOLERANCE, 0},
+{76, 3202099446u, 2147493556u, 1069185859u, 0, ERFCF_TOLERANCE, 0},
+{77, 3201763901u, 2147493556u, 1069106846u, 0, ERFCF_TOLERANCE, 0},
+{78, 3201428357u, 2147493556u, 1069027167u, 0, ERFCF_TOLERANCE, 0},
+{79, 3201092813u, 2147493556u, 1068946832u, 0, ERFCF_TOLERANCE, 0},
+{80, 3200757268u, 2147493556u, 1068865851u, 0, ERFCF_TOLERANCE, 0},
+{81, 3200421724u, 2147493556u, 1068784236u, 0, ERFCF_TOLERANCE, 0},
+{82, 3200086180u, 2147493556u, 1068701999u, 0, ERFCF_TOLERANCE, 0},
+{83, 3199750636u, 2147493556u, 1068619150u, 0, ERFCF_TOLERANCE, 0},
+{84, 3199415091u, 2147493556u, 1068535703u, 0, ERFCF_TOLERANCE, 0},
+{85, 3199079547u, 2147493556u, 1068451670u, 0, ERFCF_TOLERANCE, 0},
+{86, 3198744003u, 2147493556u, 1068367064u, 0, ERFCF_TOLERANCE, 0},
+{87, 3198408458u, 2147493556u, 1068281897u, 0, ERFCF_TOLERANCE, 0},
+{88, 3198072914u, 2147493556u, 1068196184u, 0, ERFCF_TOLERANCE, 0},
+{89, 3197737370u, 2147493556u, 1068109937u, 0, ERFCF_TOLERANCE, 0},
+{90, 3197401825u, 2147493556u, 1068023171u, 0, ERFCF_TOLERANCE, 0},
+{91, 3197066281u, 2147493556u, 1067935901u, 0, ERFCF_TOLERANCE, 0},
+{92, 3196730737u, 2147493556u, 1067848141u, 0, ERFCF_TOLERANCE, 0},
+{93, 3196395192u, 2147493556u, 1067759905u, 0, ERFCF_TOLERANCE, 0},
+{94, 3196059648u, 2147493556u, 1067671210u, 0, ERFCF_TOLERANCE, 0},
+{95, 3195388559u, 2147493556u, 1067582070u, 0, ERFCF_TOLERANCE, 0},
+{96, 3194717471u, 2147493556u, 1067492501u, 0, ERFCF_TOLERANCE, 0},
+{97, 3194046382u, 2147493556u, 1067402519u, 0, ERFCF_TOLERANCE, 0},
+{98, 3193375293u, 2147493556u, 1067312140u, 0, ERFCF_TOLERANCE, 0},
+{99, 3192704205u, 2147493556u, 1067221381u, 0, ERFCF_TOLERANCE, 0},
+{100, 3192033116u, 2147493556u, 1067130258u, 0, ERFCF_TOLERANCE, 0},
+{101, 3191362028u, 2147493556u, 1067038788u, 0, ERFCF_TOLERANCE, 0},
+{102, 3190690939u, 2147493556u, 1066946988u, 0, ERFCF_TOLERANCE, 0},
+{103, 3190019850u, 2147493556u, 1066854876u, 0, ERFCF_TOLERANCE, 0},
+{104, 3189348762u, 2147493556u, 1066762468u, 0, ERFCF_TOLERANCE, 0},
+{105, 3188677673u, 2147493556u, 1066669783u, 0, ERFCF_TOLERANCE, 0},
+{106, 3188006584u, 2147493556u, 1066576838u, 0, ERFCF_TOLERANCE, 0},
+{107, 3186999951u, 2147493556u, 1066483651u, 0, ERFCF_TOLERANCE, 0},
+{108, 3185657774u, 2147493556u, 1066390240u, 0, ERFCF_TOLERANCE, 0},
+{109, 3184315597u, 2147493556u, 1066296623u, 0, ERFCF_TOLERANCE, 0},
+{110, 3182973420u, 2147493556u, 1066202819u, 0, ERFCF_TOLERANCE, 0},
+{111, 3181631242u, 2147493556u, 1066108846u, 0, ERFCF_TOLERANCE, 0},
+{112, 3180289065u, 2147493556u, 1066014723u, 0, ERFCF_TOLERANCE, 0},
+{113, 3178611343u, 2147493556u, 1065920467u, 0, ERFCF_TOLERANCE, 0},
+{114, 3175926989u, 2147493556u, 1065826098u, 0, ERFCF_TOLERANCE, 0},
+{115, 3173242634u, 2147493556u, 1065731635u, 0, ERFCF_TOLERANCE, 0},
+{116, 3170222735u, 2147493556u, 1065637097u, 0, ERFCF_TOLERANCE, 0},
+{117, 3164854026u, 2147493556u, 1065542501u, 0, ERFCF_TOLERANCE, 0},
+{118, 3156465418u, 2147493556u, 1065447868u, 0, ERFCF_TOLERANCE, 0},
+{119, 646742016u, 2147493556u, 1065353216u, 0, ERFCF_TOLERANCE, 0},
+{120, 1008981770u, 2147493556u, 1065163912u, 0, ERFCF_TOLERANCE, 0},
+{121, 1017370378u, 2147493556u, 1064974645u, 0, ERFCF_TOLERANCE, 0},
+{122, 1022739087u, 2147493556u, 1064785455u, 0, ERFCF_TOLERANCE, 0},
+{123, 1025758986u, 2147493556u, 1064596377u, 0, ERFCF_TOLERANCE, 0},
+{124, 1028443341u, 2147493556u, 1064407451u, 0, ERFCF_TOLERANCE, 0},
+{125, 1031127695u, 2147493556u, 1064218714u, 0, ERFCF_TOLERANCE, 0},
+{126, 1032805417u, 2147493556u, 1064030203u, 0, ERFCF_TOLERANCE, 0},
+{127, 1034147594u, 2147493556u, 1063841956u, 0, ERFCF_TOLERANCE, 0},
+{128, 1035489772u, 2147493556u, 1063654010u, 0, ERFCF_TOLERANCE, 0},
+{129, 1036831949u, 2147493556u, 1063466401u, 0, ERFCF_TOLERANCE, 0},
+{130, 1038174126u, 2147493556u, 1063279168u, 0, ERFCF_TOLERANCE, 0},
+{131, 1039516303u, 2147493556u, 1063092346u, 0, ERFCF_TOLERANCE, 0},
+{132, 1040522936u, 2147493556u, 1062905972u, 0, ERFCF_TOLERANCE, 0},
+{133, 1041194025u, 2147493556u, 1062720082u, 0, ERFCF_TOLERANCE, 0},
+{134, 1041865114u, 2147493556u, 1062534711u, 0, ERFCF_TOLERANCE, 0},
+{135, 1042536202u, 2147493556u, 1062349896u, 0, ERFCF_TOLERANCE, 0},
+{136, 1043207291u, 2147493556u, 1062165671u, 0, ERFCF_TOLERANCE, 0},
+{137, 1043878380u, 2147493556u, 1061982072u, 0, ERFCF_TOLERANCE, 0},
+{138, 1044549468u, 2147493556u, 1061799132u, 0, ERFCF_TOLERANCE, 0},
+{139, 1045220557u, 2147493556u, 1061616887u, 0, ERFCF_TOLERANCE, 0},
+{140, 1045891645u, 2147493556u, 1061435368u, 0, ERFCF_TOLERANCE, 0},
+{141, 1046562734u, 2147493556u, 1061254611u, 0, ERFCF_TOLERANCE, 0},
+{142, 1047233823u, 2147493556u, 1061074647u, 0, ERFCF_TOLERANCE, 0},
+{143, 1047904911u, 2147493556u, 1060895509u, 0, ERFCF_TOLERANCE, 0},
+{144, 1048576000u, 2147493556u, 1060717228u, 0, ERFCF_TOLERANCE, 0},
+{145, 1048911544u, 2147493556u, 1060539838u, 0, ERFCF_TOLERANCE, 0},
+{146, 1049247089u, 2147493556u, 1060363366u, 0, ERFCF_TOLERANCE, 0},
+{147, 1049582633u, 2147493556u, 1060187846u, 0, ERFCF_TOLERANCE, 0},
+{148, 1049918177u, 2147493556u, 1060013305u, 0, ERFCF_TOLERANCE, 0},
+{149, 1050253722u, 2147493556u, 1059839774u, 0, ERFCF_TOLERANCE, 0},
+{150, 1050589266u, 2147493556u, 1059667281u, 0, ERFCF_TOLERANCE, 0},
+{151, 1050924810u, 2147493556u, 1059495854u, 0, ERFCF_TOLERANCE, 0},
+{152, 1051260355u, 2147493556u, 1059325520u, 0, ERFCF_TOLERANCE, 0},
+{153, 1051595899u, 2147493556u, 1059156307u, 0, ERFCF_TOLERANCE, 0},
+{154, 1051931443u, 2147493556u, 1058988241u, 0, ERFCF_TOLERANCE, 0},
+{155, 1052266988u, 2147493556u, 1058821347u, 0, ERFCF_TOLERANCE, 0},
+{156, 1052602532u, 2147493556u, 1058655651u, 0, ERFCF_TOLERANCE, 0},
+{157, 1052938076u, 2147493556u, 1058491176u, 0, ERFCF_TOLERANCE, 0},
+{158, 1053273620u, 2147493556u, 1058327947u, 0, ERFCF_TOLERANCE, 0},
+{159, 1053609165u, 2147493556u, 1058165985u, 0, ERFCF_TOLERANCE, 0},
+{160, 1053944709u, 2147493556u, 1058005314u, 0, ERFCF_TOLERANCE, 0},
+{161, 1054280253u, 2147493556u, 1057845955u, 0, ERFCF_TOLERANCE, 0},
+{162, 1054615798u, 2147493556u, 1057687929u, 0, ERFCF_TOLERANCE, 0},
+{163, 1054951342u, 2147493556u, 1057531257u, 0, ERFCF_TOLERANCE, 0},
+{164, 1055286886u, 2147493556u, 1057375957u, 0, ERFCF_TOLERANCE, 0},
+{165, 1055622431u, 2147493556u, 1057222048u, 0, ERFCF_TOLERANCE, 0},
+{166, 1055957975u, 2147493556u, 1057069549u, 0, ERFCF_TOLERANCE, 0},
+{167, 1056293519u, 2147493556u, 1056872345u, 0, ERFCF_TOLERANCE, 0},
+{168, 1056629064u, 2147493556u, 1056573086u, 0, ERFCF_TOLERANCE, 0},
+{169, 1056964608u, 2147493556u, 1056276746u, 0, ERFCF_TOLERANCE, 0},
+{170, 1057132380u, 2147493556u, 1055983355u, 0, ERFCF_TOLERANCE, 0},
+{171, 1057300152u, 2147493556u, 1055692942u, 0, ERFCF_TOLERANCE, 0},
+{172, 1057467924u, 2147493556u, 1055405532u, 0, ERFCF_TOLERANCE, 0},
+{173, 1057635697u, 2147493556u, 1055121152u, 0, ERFCF_TOLERANCE, 0},
+{174, 1057803469u, 2147493556u, 1054839828u, 0, ERFCF_TOLERANCE, 0},
+{175, 1057971241u, 2147493556u, 1054561582u, 0, ERFCF_TOLERANCE, 0},
+{176, 1058139013u, 2147493556u, 1054286434u, 0, ERFCF_TOLERANCE, 0},
+{177, 1058306785u, 2147493556u, 1054014405u, 0, ERFCF_TOLERANCE, 0},
+{178, 1058474557u, 2147493556u, 1053745514u, 0, ERFCF_TOLERANCE, 0},
+{179, 1058642330u, 2147493556u, 1053479775u, 0, ERFCF_TOLERANCE, 0},
+{180, 1058810102u, 2147493556u, 1053217208u, 0, ERFCF_TOLERANCE, 0},
+{181, 1058977874u, 2147493556u, 1052957824u, 0, ERFCF_TOLERANCE, 0},
+{182, 1059145646u, 2147493556u, 1052701637u, 0, ERFCF_TOLERANCE, 0},
+{183, 1059313418u, 2147493556u, 1052448657u, 0, ERFCF_TOLERANCE, 0},
+{184, 1059481190u, 2147493556u, 1052198895u, 0, ERFCF_TOLERANCE, 0},
+{185, 1059648963u, 2147493556u, 1051952357u, 0, ERFCF_TOLERANCE, 0},
+{186, 1059816735u, 2147493556u, 1051709054u, 0, ERFCF_TOLERANCE, 0},
+{187, 1059984507u, 2147493556u, 1051468989u, 0, ERFCF_TOLERANCE, 0},
+{188, 1060152279u, 2147493556u, 1051232167u, 0, ERFCF_TOLERANCE, 0},
+{189, 1060320051u, 2147493556u, 1050998590u, 0, ERFCF_TOLERANCE, 0},
+{190, 1060487823u, 2147493556u, 1050768261u, 0, ERFCF_TOLERANCE, 0},
+{191, 1060655596u, 2147493556u, 1050541178u, 0, ERFCF_TOLERANCE, 0},
+{192, 1060823368u, 2147493556u, 1050317342u, 0, ERFCF_TOLERANCE, 0},
+{193, 1060991140u, 2147493556u, 1050096751u, 0, ERFCF_TOLERANCE, 0},
+{194, 1061158912u, 2147493556u, 1049879401u, 0, ERFCF_TOLERANCE, 0},
+{195, 1061326684u, 2147493556u, 1049665286u, 0, ERFCF_TOLERANCE, 0},
+{196, 1061494456u, 2147493556u, 1049454401u, 0, ERFCF_TOLERANCE, 0},
+{197, 1061662228u, 2147493556u, 1049246739u, 0, ERFCF_TOLERANCE, 0},
+{198, 1061830001u, 2147493556u, 1049042290u, 0, ERFCF_TOLERANCE, 0},
+{199, 1061997773u, 2147493556u, 1048841047u, 0, ERFCF_TOLERANCE, 0},
+{200, 1062165545u, 2147493556u, 1048642999u, 0, ERFCF_TOLERANCE, 0},
+{201, 1062333317u, 2147493556u, 1048320265u, 0, ERFCF_TOLERANCE, 0},
+{202, 1062501089u, 2147493556u, 1047936872u, 0, ERFCF_TOLERANCE, 0},
+{203, 1062668861u, 2147493556u, 1047559791u, 0, ERFCF_TOLERANCE, 0},
+{204, 1062836634u, 2147493556u, 1047188989u, 0, ERFCF_TOLERANCE, 0},
+{205, 1063004406u, 2147493556u, 1046824440u, 0, ERFCF_TOLERANCE, 0},
+{206, 1063172178u, 2147493556u, 1046466107u, 0, ERFCF_TOLERANCE, 0},
+{207, 1063339950u, 2147493556u, 1046113956u, 0, ERFCF_TOLERANCE, 0},
+{208, 1063507722u, 2147493556u, 1045767948u, 0, ERFCF_TOLERANCE, 0},
+{209, 1063675494u, 2147493556u, 1045428044u, 0, ERFCF_TOLERANCE, 0},
+{210, 1063843267u, 2147493556u, 1045094202u, 0, ERFCF_TOLERANCE, 0},
+{211, 1064011039u, 2147493556u, 1044766382u, 0, ERFCF_TOLERANCE, 0},
+{212, 1064178811u, 2147493556u, 1044444539u, 0, ERFCF_TOLERANCE, 0},
+{213, 1064514355u, 2147493556u, 1043818599u, 0, ERFCF_TOLERANCE, 0},
+{214, 1064682127u, 2147493556u, 1043514405u, 0, ERFCF_TOLERANCE, 0},
+{215, 1064849900u, 2147493556u, 1043215994u, 0, ERFCF_TOLERANCE, 0},
+{216, 1065017672u, 2147493556u, 1042923319u, 0, ERFCF_TOLERANCE, 0},
+{217, 1065185444u, 2147493556u, 1042636324u, 0, ERFCF_TOLERANCE, 0},
+{218, 1065353216u, 2147493556u, 1042354955u, 0, ERFCF_TOLERANCE, 0},
+{219, 1065437102u, 2147493556u, 1042079158u, 0, ERFCF_TOLERANCE, 0},
+{220, 1065520988u, 2147493556u, 1041808876u, 0, ERFCF_TOLERANCE, 0},
+{221, 1065604874u, 2147493556u, 1041544051u, 0, ERFCF_TOLERANCE, 0},
+{222, 1065688760u, 2147493556u, 1041284627u, 0, ERFCF_TOLERANCE, 0},
+{223, 1065772646u, 2147493556u, 1041030542u, 0, ERFCF_TOLERANCE, 0},
+{224, 1065856532u, 2147493556u, 1040781737u, 0, ERFCF_TOLERANCE, 0},
+{225, 1065940419u, 2147493556u, 1040538149u, 0, ERFCF_TOLERANCE, 0},
+{226, 1066024305u, 2147493556u, 1040299721u, 0, ERFCF_TOLERANCE, 0},
+{227, 1066108191u, 2147493556u, 1039945382u, 0, ERFCF_TOLERANCE, 0},
+{228, 1066192077u, 2147493556u, 1039488778u, 0, ERFCF_TOLERANCE, 0},
+{229, 1066275963u, 2147493556u, 1039042110u, 0, ERFCF_TOLERANCE, 0},
+{230, 1066359849u, 2147493556u, 1038605248u, 0, ERFCF_TOLERANCE, 0},
+{231, 1066443735u, 2147493556u, 1038178063u, 0, ERFCF_TOLERANCE, 0},
+{232, 1066527621u, 2147493556u, 1037760424u, 0, ERFCF_TOLERANCE, 0},
+{233, 1066611507u, 2147493556u, 1037352199u, 0, ERFCF_TOLERANCE, 0},
+{234, 1066695393u, 2147493556u, 1036953256u, 0, ERFCF_TOLERANCE, 0},
+{235, 1066779279u, 2147493556u, 1036563462u, 0, ERFCF_TOLERANCE, 0},
+{236, 1066863165u, 2147493556u, 1036182683u, 0, ERFCF_TOLERANCE, 0},
+{237, 1066947052u, 2147493556u, 1035810780u, 0, ERFCF_TOLERANCE, 0},
+{238, 3234402267u, 2147493556u, 1073741824u, 0, ERFCF_TOLERANCE, 0},
+{239, 3231108068u, 2147493556u, 1073741824u, 0, ERFCF_TOLERANCE, 0},
+{240, 3226013659u, 2147493556u, 1073741750u, 0, ERFCF_TOLERANCE, 0},
+{241, 3217625051u, 2147493556u, 1073521027u, 0, ERFCF_TOLERANCE, 0},
+{242, 0u, 2147493556u, 1065353216u, 0, ERFCF_TOLERANCE, 0},
+{243, 1070141403u, 2147493556u, 1020763978u, 0, ERFCF_TOLERANCE, 0},
+{244, 1078530011u, 2147493556u, 924117692u, 0, ERFCF_TOLERANCE, 0},
+{245, 1083624420u, 2147493556u, 770301979u, 0, ERFCF_TOLERANCE, 0},
+{246, 3253731328u, 2147493556u, 1073741824u, 0, ERFCF_TOLERANCE, 0},
+{247, 3252840038u, 2147493556u, 1073741824u, 0, ERFCF_TOLERANCE, 0},
+{248, 3251948749u, 2147493556u, 1073741824u, 0, ERFCF_TOLERANCE, 0},
+{249, 3251057459u, 2147493556u, 1073741824u, 0, ERFCF_TOLERANCE, 0},
+{250, 3250166170u, 2147493556u, 1073741824u, 0, ERFCF_TOLERANCE, 0},
+{251, 3249274880u, 2147493556u, 1073741824u, 0, ERFCF_TOLERANCE, 0},
+{252, 3248383590u, 2147493556u, 1073741824u, 0, ERFCF_TOLERANCE, 0},
+{253, 3247492301u, 2147493556u, 1073741824u, 0, ERFCF_TOLERANCE, 0},
+{254, 3246601011u, 2147493556u, 1073741824u, 0, ERFCF_TOLERANCE, 0},
+{255, 3245028147u, 2147493556u, 1073741824u, 0, ERFCF_TOLERANCE, 0},
+{256, 3243245568u, 2147493556u, 1073741824u, 0, ERFCF_TOLERANCE, 0},
+{257, 3241462989u, 2147493556u, 1073741824u, 0, ERFCF_TOLERANCE, 0},
+{258, 3239680410u, 2147493556u, 1073741824u, 0, ERFCF_TOLERANCE, 0},
+{259, 3237792973u, 2147493556u, 1073741824u, 0, ERFCF_TOLERANCE, 0},
+{260, 3234227814u, 2147493556u, 1073741824u, 0, ERFCF_TOLERANCE, 0},
+{261, 3230662656u, 2147493556u, 1073741824u, 0, ERFCF_TOLERANCE, 0},
+{262, 3224580915u, 2147493556u, 1073741195u, 0, ERFCF_TOLERANCE, 0},
+{263, 3213675725u, 2147493556u, 1072736911u, 0, ERFCF_TOLERANCE, 0},
+{264, 1058642330u, 2147493556u, 1053479775u, 0, ERFCF_TOLERANCE, 0},
+{265, 1075000115u, 2147493556u, 982898342u, 0, ERFCF_TOLERANCE, 0},
+{266, 1082130432u, 2147493556u, 847539945u, 0, ERFCF_TOLERANCE, 0},
+{267, 1085695590u, 2147493556u, 643437802u, 0, ERFCF_TOLERANCE, 0},
+{268, 1089260749u, 2147493556u, 370838238u, 0, ERFCF_TOLERANCE, 0},
+{269, 1091672474u, 2147493556u, 28724802u, 0, ERFCF_TOLERANCE, 0},
+{270, 1093455053u, 2147493556u, 0u, 0, ERFCF_TOLERANCE, 0},
+{271, 1095237632u, 2147493556u, 0u, 0, ERFCF_TOLERANCE, 0},
+{272, 1097020211u, 2147493556u, 0u, 0, ERFCF_TOLERANCE, 0},
+{273, 1098802790u, 2147493556u, 0u, 0, ERFCF_TOLERANCE, 0},
+{274, 1099746509u, 2147493556u, 0u, 0, ERFCF_TOLERANCE, 0},
+{275, 1100637798u, 2147493556u, 0u, 0, ERFCF_TOLERANCE, 0},
+{276, 1101529088u, 2147493556u, 0u, 0, ERFCF_TOLERANCE, 0},
+{277, 1102420378u, 2147493556u, 0u, 0, ERFCF_TOLERANCE, 0},
+{278, 1103311667u, 2147493556u, 0u, 0, ERFCF_TOLERANCE, 0},
+{279, 1104202957u, 2147493556u, 0u, 0, ERFCF_TOLERANCE, 0},
+{280, 1105094246u, 2147493556u, 0u, 0, ERFCF_TOLERANCE, 0},
+{281, 1105985536u, 2147493556u, 0u, 0, ERFCF_TOLERANCE, 0}
+
+// AUTOMATICALLY GENERATED VECTORS STOP
+
+};
+
+#endif // CYGONCE_LIBM_ERFCF_H multiple inclusion protection
+
+// EOF erfcf.h
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/erff.c b/ecos/packages/language/c/libm/current/tests/vectors/erff.c
new file mode 100644
index 0000000..2d13a68
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/erff.c
@@ -0,0 +1,115 @@
+//===========================================================================
+//
+// erff.c
+//
+// Test of erff() math library function
+//
+//===========================================================================
+// ####EERFFGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####EERFFGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// Declarations for test system:
+//
+// TESTCASE_TYPE=CYG_TEST_MODULE
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include <cyg/infra/testcase.h> // Test infrastructure
+#include <math.h> // Header for this package
+#include <sys/ieeefp.h> // Cyg_libm_ieee_float_shape_type
+#include "vectors/vector_support_float.h"// extra support for math tests
+
+#include "vectors/erff.h"
+
+// FUNCTIONS
+
+static void
+test( CYG_ADDRWORD data )
+{
+ cyg_ucount32 vec_size;
+ cyg_bool ret;
+
+ vec_size = sizeof(erff_vec) / sizeof(Cyg_libm_test_float_vec_t);
+ ret = doTestVecFloat( (CYG_ADDRWORD) &erff, CYG_LIBM_TEST_VEC_FLOAT,
+ CYG_LIBM_TEST_VEC_NONE, CYG_LIBM_TEST_VEC_FLOAT,
+ &erff_vec[0], vec_size );
+
+ if (ret==true)
+ {
+ CYG_TEST_PASS("erff() is stable");
+ } // if
+ else
+ {
+ CYG_TEST_FAIL("erff() failed tests");
+ } // else
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for Math "
+ "library erff() function");
+} // test()
+
+
+int
+main(int argc, char *argv[])
+{
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for Math library "
+ "erff() function");
+
+ START_TEST( test );
+
+ CYG_TEST_PASS_FINISH("Testing is not applicable to this configuration");
+
+} // main()
+
+
+// EOF erff.c
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/erff.h b/ecos/packages/language/c/libm/current/tests/vectors/erff.h
new file mode 100644
index 0000000..959b2a8
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/erff.h
@@ -0,0 +1,361 @@
+#ifndef CYGONCE_LIBM_ERFF_H
+#define CYGONCE_LIBM_ERFF_H
+//===========================================================================
+//
+// erff.h
+//
+// Test vectors for testing of erff() math library function
+//
+//===========================================================================
+// ####EERFFGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####EERFFGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage: #include "vectors/erff.h"
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include "vectors/vector_support_float.h"// extra support for math tests
+
+#define ERFF_TOLERANCE 1.0E-04
+
+static const Cyg_libm_test_float_vec_t erff_vec[] = {
+
+// AUTOMATICALLY GENERATED VECTORS START
+
+{0, 3214514586u, 2147516072u, 3211332182u, 0, ERFF_TOLERANCE, 0},
+{1, 3214430700u, 2147516072u, 3211286788u, 0, ERFF_TOLERANCE, 0},
+{2, 3214346813u, 2147516072u, 3211240301u, 0, ERFF_TOLERANCE, 0},
+{3, 3214262927u, 2147516072u, 3211192703u, 0, ERFF_TOLERANCE, 0},
+{4, 3214179041u, 2147516072u, 3211143979u, 0, ERFF_TOLERANCE, 0},
+{5, 3214095155u, 2147516072u, 3211094111u, 0, ERFF_TOLERANCE, 0},
+{6, 3214011269u, 2147516072u, 3211043083u, 0, ERFF_TOLERANCE, 0},
+{7, 3213927383u, 2147516072u, 3210990878u, 0, ERFF_TOLERANCE, 0},
+{8, 3213843497u, 2147516072u, 3210937480u, 0, ERFF_TOLERANCE, 0},
+{9, 3213759611u, 2147516072u, 3210882872u, 0, ERFF_TOLERANCE, 0},
+{10, 3213675725u, 2147516072u, 3210827039u, 0, ERFF_TOLERANCE, 0},
+{11, 3213591839u, 2147516072u, 3210769963u, 0, ERFF_TOLERANCE, 0},
+{12, 3213507953u, 2147516072u, 3210711630u, 0, ERFF_TOLERANCE, 0},
+{13, 3213424067u, 2147516072u, 3210652023u, 0, ERFF_TOLERANCE, 0},
+{14, 3213340180u, 2147516072u, 3210591126u, 0, ERFF_TOLERANCE, 0},
+{15, 3213256294u, 2147516072u, 3210528924u, 0, ERFF_TOLERANCE, 0},
+{16, 3213172408u, 2147516072u, 3210465403u, 0, ERFF_TOLERANCE, 0},
+{17, 3213088522u, 2147516072u, 3210400547u, 0, ERFF_TOLERANCE, 0},
+{18, 3213004636u, 2147516072u, 3210334341u, 0, ERFF_TOLERANCE, 0},
+{19, 3212920750u, 2147516072u, 3210266770u, 0, ERFF_TOLERANCE, 0},
+{20, 3212836864u, 2147516072u, 3210197821u, 0, ERFF_TOLERANCE, 0},
+{21, 3212669092u, 2147516072u, 3210127479u, 0, ERFF_TOLERANCE, 0},
+{22, 3212501320u, 2147516072u, 3210055730u, 0, ERFF_TOLERANCE, 0},
+{23, 3212333548u, 2147516072u, 3209982561u, 0, ERFF_TOLERANCE, 0},
+{24, 3212165775u, 2147516072u, 3209907959u, 0, ERFF_TOLERANCE, 0},
+{25, 3211998003u, 2147516072u, 3209831910u, 0, ERFF_TOLERANCE, 0},
+{26, 3211662459u, 2147516072u, 3209675425u, 0, ERFF_TOLERANCE, 0},
+{27, 3211494687u, 2147516072u, 3209594964u, 0, ERFF_TOLERANCE, 0},
+{28, 3211326915u, 2147516072u, 3209513009u, 0, ERFF_TOLERANCE, 0},
+{29, 3211159142u, 2147516072u, 3209429548u, 0, ERFF_TOLERANCE, 0},
+{30, 3210991370u, 2147516072u, 3209344573u, 0, ERFF_TOLERANCE, 0},
+{31, 3210823598u, 2147516072u, 3209258071u, 0, ERFF_TOLERANCE, 0},
+{32, 3210655826u, 2147516072u, 3209170033u, 0, ERFF_TOLERANCE, 0},
+{33, 3210488054u, 2147516072u, 3209080450u, 0, ERFF_TOLERANCE, 0},
+{34, 3210320282u, 2147516072u, 3208989312u, 0, ERFF_TOLERANCE, 0},
+{35, 3210152509u, 2147516072u, 3208896612u, 0, ERFF_TOLERANCE, 0},
+{36, 3209984737u, 2147516072u, 3208802342u, 0, ERFF_TOLERANCE, 0},
+{37, 3209816965u, 2147516072u, 3208706493u, 0, ERFF_TOLERANCE, 0},
+{38, 3209649193u, 2147516072u, 3208609060u, 0, ERFF_TOLERANCE, 0},
+{39, 3209481421u, 2147516072u, 3208510036u, 0, ERFF_TOLERANCE, 0},
+{40, 3209313649u, 2147516072u, 3208409415u, 0, ERFF_TOLERANCE, 0},
+{41, 3209145876u, 2147516072u, 3208307190u, 0, ERFF_TOLERANCE, 0},
+{42, 3208978104u, 2147516072u, 3208203360u, 0, ERFF_TOLERANCE, 0},
+{43, 3208810332u, 2147516072u, 3208097918u, 0, ERFF_TOLERANCE, 0},
+{44, 3208642560u, 2147516072u, 3207990860u, 0, ERFF_TOLERANCE, 0},
+{45, 3208474788u, 2147516072u, 3207882184u, 0, ERFF_TOLERANCE, 0},
+{46, 3208307016u, 2147516072u, 3207771889u, 0, ERFF_TOLERANCE, 0},
+{47, 3208139244u, 2147516072u, 3207659971u, 0, ERFF_TOLERANCE, 0},
+{48, 3207971471u, 2147516072u, 3207546430u, 0, ERFF_TOLERANCE, 0},
+{49, 3207803699u, 2147516072u, 3207431265u, 0, ERFF_TOLERANCE, 0},
+{50, 3207635927u, 2147516072u, 3207314476u, 0, ERFF_TOLERANCE, 0},
+{51, 3207468155u, 2147516072u, 3207196066u, 0, ERFF_TOLERANCE, 0},
+{52, 3207300383u, 2147516072u, 3207076033u, 0, ERFF_TOLERANCE, 0},
+{53, 3207132611u, 2147516072u, 3206954381u, 0, ERFF_TOLERANCE, 0},
+{54, 3206964838u, 2147516072u, 3206831112u, 0, ERFF_TOLERANCE, 0},
+{55, 3206797066u, 2147516072u, 3206706232u, 0, ERFF_TOLERANCE, 0},
+{56, 3206629294u, 2147516072u, 3206579741u, 0, ERFF_TOLERANCE, 0},
+{57, 3206461522u, 2147516072u, 3206451648u, 0, ERFF_TOLERANCE, 0},
+{58, 3206293750u, 2147516072u, 3206321956u, 0, ERFF_TOLERANCE, 0},
+{59, 3206125978u, 2147516072u, 3206190672u, 0, ERFF_TOLERANCE, 0},
+{60, 3205958205u, 2147516072u, 3206057802u, 0, ERFF_TOLERANCE, 0},
+{61, 3205790433u, 2147516072u, 3205923357u, 0, ERFF_TOLERANCE, 0},
+{62, 3205622661u, 2147516072u, 3205787343u, 0, ERFF_TOLERANCE, 0},
+{63, 3205454889u, 2147516072u, 3205649769u, 0, ERFF_TOLERANCE, 0},
+{64, 3205287117u, 2147516072u, 3205510646u, 0, ERFF_TOLERANCE, 0},
+{65, 3205119345u, 2147516072u, 3205369984u, 0, ERFF_TOLERANCE, 0},
+{66, 3204951572u, 2147516072u, 3205227794u, 0, ERFF_TOLERANCE, 0},
+{67, 3204783800u, 2147516072u, 3205084089u, 0, ERFF_TOLERANCE, 0},
+{68, 3204616028u, 2147516072u, 3204938882u, 0, ERFF_TOLERANCE, 0},
+{69, 3204448256u, 2147516072u, 3204792187u, 0, ERFF_TOLERANCE, 0},
+{70, 3204112712u, 2147516072u, 3204644016u, 0, ERFF_TOLERANCE, 0},
+{71, 3203777167u, 2147516072u, 3204494388u, 0, ERFF_TOLERANCE, 0},
+{72, 3203441623u, 2147516072u, 3204238374u, 0, ERFF_TOLERANCE, 0},
+{73, 3203106079u, 2147516072u, 3203933377u, 0, ERFF_TOLERANCE, 0},
+{74, 3202770534u, 2147516072u, 3203625559u, 0, ERFF_TOLERANCE, 0},
+{75, 3202434990u, 2147516072u, 3203314959u, 0, ERFF_TOLERANCE, 0},
+{76, 3202099446u, 2147516072u, 3203001614u, 0, ERFF_TOLERANCE, 0},
+{77, 3201763901u, 2147516072u, 3202685561u, 0, ERFF_TOLERANCE, 0},
+{78, 3201428357u, 2147516072u, 3202366844u, 0, ERFF_TOLERANCE, 0},
+{79, 3201092813u, 2147516072u, 3202045502u, 0, ERFF_TOLERANCE, 0},
+{80, 3200757268u, 2147516072u, 3201721579u, 0, ERFF_TOLERANCE, 0},
+{81, 3200421724u, 2147516072u, 3201395120u, 0, ERFF_TOLERANCE, 0},
+{82, 3200086180u, 2147516072u, 3201066170u, 0, ERFF_TOLERANCE, 0},
+{83, 3199750636u, 2147516072u, 3200734777u, 0, ERFF_TOLERANCE, 0},
+{84, 3199415091u, 2147516072u, 3200400989u, 0, ERFF_TOLERANCE, 0},
+{85, 3199079547u, 2147516072u, 3200064857u, 0, ERFF_TOLERANCE, 0},
+{86, 3198744003u, 2147516072u, 3199726432u, 0, ERFF_TOLERANCE, 0},
+{87, 3198408458u, 2147516072u, 3199385764u, 0, ERFF_TOLERANCE, 0},
+{88, 3198072914u, 2147516072u, 3199042911u, 0, ERFF_TOLERANCE, 0},
+{89, 3197737370u, 2147516072u, 3198697925u, 0, ERFF_TOLERANCE, 0},
+{90, 3197401825u, 2147516072u, 3198350862u, 0, ERFF_TOLERANCE, 0},
+{91, 3197066281u, 2147516072u, 3198001781u, 0, ERFF_TOLERANCE, 0},
+{92, 3196730737u, 2147516072u, 3197650740u, 0, ERFF_TOLERANCE, 0},
+{93, 3196395192u, 2147516072u, 3197297797u, 0, ERFF_TOLERANCE, 0},
+{94, 3196059648u, 2147516072u, 3196943015u, 0, ERFF_TOLERANCE, 0},
+{95, 3195388559u, 2147516072u, 3196586454u, 0, ERFF_TOLERANCE, 0},
+{96, 3194717471u, 2147516072u, 3196228179u, 0, ERFF_TOLERANCE, 0},
+{97, 3194046382u, 2147516072u, 3195676853u, 0, ERFF_TOLERANCE, 0},
+{98, 3193375293u, 2147516072u, 3194953822u, 0, ERFF_TOLERANCE, 0},
+{99, 3192704205u, 2147516072u, 3194227750u, 0, ERFF_TOLERANCE, 0},
+{100, 3192033116u, 2147516072u, 3193498766u, 0, ERFF_TOLERANCE, 0},
+{101, 3191362028u, 2147516072u, 3192767008u, 0, ERFF_TOLERANCE, 0},
+{102, 3190690939u, 2147516072u, 3192032610u, 0, ERFF_TOLERANCE, 0},
+{103, 3190019850u, 2147516072u, 3191295711u, 0, ERFF_TOLERANCE, 0},
+{104, 3189348762u, 2147516072u, 3190556451u, 0, ERFF_TOLERANCE, 0},
+{105, 3188677673u, 2147516072u, 3189814969u, 0, ERFF_TOLERANCE, 0},
+{106, 3188006584u, 2147516072u, 3189071408u, 0, ERFF_TOLERANCE, 0},
+{107, 3186999951u, 2147516072u, 3188325912u, 0, ERFF_TOLERANCE, 0},
+{108, 3185657774u, 2147516072u, 3187486208u, 0, ERFF_TOLERANCE, 0},
+{109, 3184315597u, 2147516072u, 3185988341u, 0, ERFF_TOLERANCE, 0},
+{110, 3182973420u, 2147516072u, 3184487476u, 0, ERFF_TOLERANCE, 0},
+{111, 3181631242u, 2147516072u, 3182983905u, 0, ERFF_TOLERANCE, 0},
+{112, 3180289065u, 2147516072u, 3181477928u, 0, ERFF_TOLERANCE, 0},
+{113, 3178611343u, 2147516072u, 3179969841u, 0, ERFF_TOLERANCE, 0},
+{114, 3175926989u, 2147516072u, 3177637454u, 0, ERFF_TOLERANCE, 0},
+{115, 3173242634u, 2147516072u, 3174614636u, 0, ERFF_TOLERANCE, 0},
+{116, 3170222735u, 2147516072u, 3171589400u, 0, ERFF_TOLERANCE, 0},
+{117, 3164854026u, 2147516072u, 3166230872u, 0, ERFF_TOLERANCE, 0},
+{118, 3156465418u, 2147516072u, 3157843475u, 0, ERFF_TOLERANCE, 0},
+{119, 646742016u, 2147516072u, 647924107u, 0, ERFF_TOLERANCE, 0},
+{120, 1008981770u, 2147516072u, 1010359827u, 0, ERFF_TOLERANCE, 0},
+{121, 1017370378u, 2147516072u, 1018747224u, 0, ERFF_TOLERANCE, 0},
+{122, 1022739087u, 2147516072u, 1024105752u, 0, ERFF_TOLERANCE, 0},
+{123, 1025758986u, 2147516072u, 1027130988u, 0, ERFF_TOLERANCE, 0},
+{124, 1028443341u, 2147516072u, 1030153806u, 0, ERFF_TOLERANCE, 0},
+{125, 1031127695u, 2147516072u, 1032486193u, 0, ERFF_TOLERANCE, 0},
+{126, 1032805417u, 2147516072u, 1033994280u, 0, ERFF_TOLERANCE, 0},
+{127, 1034147594u, 2147516072u, 1035500257u, 0, ERFF_TOLERANCE, 0},
+{128, 1035489772u, 2147516072u, 1037003828u, 0, ERFF_TOLERANCE, 0},
+{129, 1036831949u, 2147516072u, 1038504693u, 0, ERFF_TOLERANCE, 0},
+{130, 1038174126u, 2147516072u, 1040002560u, 0, ERFF_TOLERANCE, 0},
+{131, 1039516303u, 2147516072u, 1040842264u, 0, ERFF_TOLERANCE, 0},
+{132, 1040522936u, 2147516072u, 1041587760u, 0, ERFF_TOLERANCE, 0},
+{133, 1041194025u, 2147516072u, 1042331321u, 0, ERFF_TOLERANCE, 0},
+{134, 1041865114u, 2147516072u, 1043072803u, 0, ERFF_TOLERANCE, 0},
+{135, 1042536202u, 2147516072u, 1043812063u, 0, ERFF_TOLERANCE, 0},
+{136, 1043207291u, 2147516072u, 1044548962u, 0, ERFF_TOLERANCE, 0},
+{137, 1043878380u, 2147516072u, 1045283360u, 0, ERFF_TOLERANCE, 0},
+{138, 1044549468u, 2147516072u, 1046015118u, 0, ERFF_TOLERANCE, 0},
+{139, 1045220557u, 2147516072u, 1046744102u, 0, ERFF_TOLERANCE, 0},
+{140, 1045891645u, 2147516072u, 1047470174u, 0, ERFF_TOLERANCE, 0},
+{141, 1046562734u, 2147516072u, 1048193205u, 0, ERFF_TOLERANCE, 0},
+{142, 1047233823u, 2147516072u, 1048744531u, 0, ERFF_TOLERANCE, 0},
+{143, 1047904911u, 2147516072u, 1049102806u, 0, ERFF_TOLERANCE, 0},
+{144, 1048576000u, 2147516072u, 1049459367u, 0, ERFF_TOLERANCE, 0},
+{145, 1048911544u, 2147516072u, 1049814149u, 0, ERFF_TOLERANCE, 0},
+{146, 1049247089u, 2147516072u, 1050167092u, 0, ERFF_TOLERANCE, 0},
+{147, 1049582633u, 2147516072u, 1050518133u, 0, ERFF_TOLERANCE, 0},
+{148, 1049918177u, 2147516072u, 1050867214u, 0, ERFF_TOLERANCE, 0},
+{149, 1050253722u, 2147516072u, 1051214277u, 0, ERFF_TOLERANCE, 0},
+{150, 1050589266u, 2147516072u, 1051559263u, 0, ERFF_TOLERANCE, 0},
+{151, 1050924810u, 2147516072u, 1051902116u, 0, ERFF_TOLERANCE, 0},
+{152, 1051260355u, 2147516072u, 1052242784u, 0, ERFF_TOLERANCE, 0},
+{153, 1051595899u, 2147516072u, 1052581209u, 0, ERFF_TOLERANCE, 0},
+{154, 1051931443u, 2147516072u, 1052917341u, 0, ERFF_TOLERANCE, 0},
+{155, 1052266988u, 2147516072u, 1053251129u, 0, ERFF_TOLERANCE, 0},
+{156, 1052602532u, 2147516072u, 1053582522u, 0, ERFF_TOLERANCE, 0},
+{157, 1052938076u, 2147516072u, 1053911472u, 0, ERFF_TOLERANCE, 0},
+{158, 1053273620u, 2147516072u, 1054237931u, 0, ERFF_TOLERANCE, 0},
+{159, 1053609165u, 2147516072u, 1054561854u, 0, ERFF_TOLERANCE, 0},
+{160, 1053944709u, 2147516072u, 1054883196u, 0, ERFF_TOLERANCE, 0},
+{161, 1054280253u, 2147516072u, 1055201913u, 0, ERFF_TOLERANCE, 0},
+{162, 1054615798u, 2147516072u, 1055517966u, 0, ERFF_TOLERANCE, 0},
+{163, 1054951342u, 2147516072u, 1055831311u, 0, ERFF_TOLERANCE, 0},
+{164, 1055286886u, 2147516072u, 1056141911u, 0, ERFF_TOLERANCE, 0},
+{165, 1055622431u, 2147516072u, 1056449729u, 0, ERFF_TOLERANCE, 0},
+{166, 1055957975u, 2147516072u, 1056754726u, 0, ERFF_TOLERANCE, 0},
+{167, 1056293519u, 2147516072u, 1057010740u, 0, ERFF_TOLERANCE, 0},
+{168, 1056629064u, 2147516072u, 1057160368u, 0, ERFF_TOLERANCE, 0},
+{169, 1056964608u, 2147516072u, 1057308539u, 0, ERFF_TOLERANCE, 0},
+{170, 1057132380u, 2147516072u, 1057455234u, 0, ERFF_TOLERANCE, 0},
+{171, 1057300152u, 2147516072u, 1057600441u, 0, ERFF_TOLERANCE, 0},
+{172, 1057467924u, 2147516072u, 1057744146u, 0, ERFF_TOLERANCE, 0},
+{173, 1057635697u, 2147516072u, 1057886336u, 0, ERFF_TOLERANCE, 0},
+{174, 1057803469u, 2147516072u, 1058026998u, 0, ERFF_TOLERANCE, 0},
+{175, 1057971241u, 2147516072u, 1058166121u, 0, ERFF_TOLERANCE, 0},
+{176, 1058139013u, 2147516072u, 1058303695u, 0, ERFF_TOLERANCE, 0},
+{177, 1058306785u, 2147516072u, 1058439709u, 0, ERFF_TOLERANCE, 0},
+{178, 1058474557u, 2147516072u, 1058574154u, 0, ERFF_TOLERANCE, 0},
+{179, 1058642330u, 2147516072u, 1058707024u, 0, ERFF_TOLERANCE, 0},
+{180, 1058810102u, 2147516072u, 1058838308u, 0, ERFF_TOLERANCE, 0},
+{181, 1058977874u, 2147516072u, 1058968000u, 0, ERFF_TOLERANCE, 0},
+{182, 1059145646u, 2147516072u, 1059096093u, 0, ERFF_TOLERANCE, 0},
+{183, 1059313418u, 2147516072u, 1059222584u, 0, ERFF_TOLERANCE, 0},
+{184, 1059481190u, 2147516072u, 1059347464u, 0, ERFF_TOLERANCE, 0},
+{185, 1059648963u, 2147516072u, 1059470733u, 0, ERFF_TOLERANCE, 0},
+{186, 1059816735u, 2147516072u, 1059592385u, 0, ERFF_TOLERANCE, 0},
+{187, 1059984507u, 2147516072u, 1059712418u, 0, ERFF_TOLERANCE, 0},
+{188, 1060152279u, 2147516072u, 1059830828u, 0, ERFF_TOLERANCE, 0},
+{189, 1060320051u, 2147516072u, 1059947617u, 0, ERFF_TOLERANCE, 0},
+{190, 1060487823u, 2147516072u, 1060062782u, 0, ERFF_TOLERANCE, 0},
+{191, 1060655596u, 2147516072u, 1060176323u, 0, ERFF_TOLERANCE, 0},
+{192, 1060823368u, 2147516072u, 1060288241u, 0, ERFF_TOLERANCE, 0},
+{193, 1060991140u, 2147516072u, 1060398536u, 0, ERFF_TOLERANCE, 0},
+{194, 1061158912u, 2147516072u, 1060507212u, 0, ERFF_TOLERANCE, 0},
+{195, 1061326684u, 2147516072u, 1060614270u, 0, ERFF_TOLERANCE, 0},
+{196, 1061494456u, 2147516072u, 1060719712u, 0, ERFF_TOLERANCE, 0},
+{197, 1061662228u, 2147516072u, 1060823542u, 0, ERFF_TOLERANCE, 0},
+{198, 1061830001u, 2147516072u, 1060925767u, 0, ERFF_TOLERANCE, 0},
+{199, 1061997773u, 2147516072u, 1061026388u, 0, ERFF_TOLERANCE, 0},
+{200, 1062165545u, 2147516072u, 1061125412u, 0, ERFF_TOLERANCE, 0},
+{201, 1062333317u, 2147516072u, 1061222845u, 0, ERFF_TOLERANCE, 0},
+{202, 1062501089u, 2147516072u, 1061318694u, 0, ERFF_TOLERANCE, 0},
+{203, 1062668861u, 2147516072u, 1061412964u, 0, ERFF_TOLERANCE, 0},
+{204, 1062836634u, 2147516072u, 1061505664u, 0, ERFF_TOLERANCE, 0},
+{205, 1063004406u, 2147516072u, 1061596802u, 0, ERFF_TOLERANCE, 0},
+{206, 1063172178u, 2147516072u, 1061686385u, 0, ERFF_TOLERANCE, 0},
+{207, 1063339950u, 2147516072u, 1061774423u, 0, ERFF_TOLERANCE, 0},
+{208, 1063507722u, 2147516072u, 1061860925u, 0, ERFF_TOLERANCE, 0},
+{209, 1063675494u, 2147516072u, 1061945900u, 0, ERFF_TOLERANCE, 0},
+{210, 1063843267u, 2147516072u, 1062029361u, 0, ERFF_TOLERANCE, 0},
+{211, 1064011039u, 2147516072u, 1062111316u, 0, ERFF_TOLERANCE, 0},
+{212, 1064178811u, 2147516072u, 1062191777u, 0, ERFF_TOLERANCE, 0},
+{213, 1064514355u, 2147516072u, 1062348262u, 0, ERFF_TOLERANCE, 0},
+{214, 1064682127u, 2147516072u, 1062424311u, 0, ERFF_TOLERANCE, 0},
+{215, 1064849900u, 2147516072u, 1062498913u, 0, ERFF_TOLERANCE, 0},
+{216, 1065017672u, 2147516072u, 1062572082u, 0, ERFF_TOLERANCE, 0},
+{217, 1065185444u, 2147516072u, 1062643831u, 0, ERFF_TOLERANCE, 0},
+{218, 1065353216u, 2147516072u, 1062714173u, 0, ERFF_TOLERANCE, 0},
+{219, 1065437102u, 2147516072u, 1062783122u, 0, ERFF_TOLERANCE, 0},
+{220, 1065520988u, 2147516072u, 1062850693u, 0, ERFF_TOLERANCE, 0},
+{221, 1065604874u, 2147516072u, 1062916899u, 0, ERFF_TOLERANCE, 0},
+{222, 1065688760u, 2147516072u, 1062981755u, 0, ERFF_TOLERANCE, 0},
+{223, 1065772646u, 2147516072u, 1063045276u, 0, ERFF_TOLERANCE, 0},
+{224, 1065856532u, 2147516072u, 1063107478u, 0, ERFF_TOLERANCE, 0},
+{225, 1065940419u, 2147516072u, 1063168375u, 0, ERFF_TOLERANCE, 0},
+{226, 1066024305u, 2147516072u, 1063227982u, 0, ERFF_TOLERANCE, 0},
+{227, 1066108191u, 2147516072u, 1063286315u, 0, ERFF_TOLERANCE, 0},
+{228, 1066192077u, 2147516072u, 1063343391u, 0, ERFF_TOLERANCE, 0},
+{229, 1066275963u, 2147516072u, 1063399224u, 0, ERFF_TOLERANCE, 0},
+{230, 1066359849u, 2147516072u, 1063453832u, 0, ERFF_TOLERANCE, 0},
+{231, 1066443735u, 2147516072u, 1063507230u, 0, ERFF_TOLERANCE, 0},
+{232, 1066527621u, 2147516072u, 1063559435u, 0, ERFF_TOLERANCE, 0},
+{233, 1066611507u, 2147516072u, 1063610463u, 0, ERFF_TOLERANCE, 0},
+{234, 1066695393u, 2147516072u, 1063660331u, 0, ERFF_TOLERANCE, 0},
+{235, 1066779279u, 2147516072u, 1063709055u, 0, ERFF_TOLERANCE, 0},
+{236, 1066863165u, 2147516072u, 1063756653u, 0, ERFF_TOLERANCE, 0},
+{237, 1066947052u, 2147516072u, 1063803140u, 0, ERFF_TOLERANCE, 0},
+{238, 3234402267u, 2147516072u, 3212836864u, 0, ERFF_TOLERANCE, 0},
+{239, 3231108068u, 2147516072u, 3212836864u, 0, ERFF_TOLERANCE, 0},
+{240, 3226013659u, 2147516072u, 3212836715u, 0, ERFF_TOLERANCE, 0},
+{241, 3217625051u, 2147516072u, 3212395270u, 0, ERFF_TOLERANCE, 0},
+{242, 0u, 2147516072u, 0u, 0, ERFF_TOLERANCE, 0},
+{243, 1070141403u, 2147516072u, 1064911622u, 0, ERFF_TOLERANCE, 0},
+{244, 1078530011u, 2147516072u, 1065353067u, 0, ERFF_TOLERANCE, 0},
+{245, 1083624420u, 2147516072u, 1065353216u, 0, ERFF_TOLERANCE, 0},
+{246, 3253731328u, 2147516072u, 3212836864u, 0, ERFF_TOLERANCE, 0},
+{247, 3252840038u, 2147516072u, 3212836864u, 0, ERFF_TOLERANCE, 0},
+{248, 3251948749u, 2147516072u, 3212836864u, 0, ERFF_TOLERANCE, 0},
+{249, 3251057459u, 2147516072u, 3212836864u, 0, ERFF_TOLERANCE, 0},
+{250, 3250166170u, 2147516072u, 3212836864u, 0, ERFF_TOLERANCE, 0},
+{251, 3249274880u, 2147516072u, 3212836864u, 0, ERFF_TOLERANCE, 0},
+{252, 3248383590u, 2147516072u, 3212836864u, 0, ERFF_TOLERANCE, 0},
+{253, 3247492301u, 2147516072u, 3212836864u, 0, ERFF_TOLERANCE, 0},
+{254, 3246601011u, 2147516072u, 3212836864u, 0, ERFF_TOLERANCE, 0},
+{255, 3245028147u, 2147516072u, 3212836864u, 0, ERFF_TOLERANCE, 0},
+{256, 3243245568u, 2147516072u, 3212836864u, 0, ERFF_TOLERANCE, 0},
+{257, 3241462989u, 2147516072u, 3212836864u, 0, ERFF_TOLERANCE, 0},
+{258, 3239680410u, 2147516072u, 3212836864u, 0, ERFF_TOLERANCE, 0},
+{259, 3237792973u, 2147516072u, 3212836864u, 0, ERFF_TOLERANCE, 0},
+{260, 3234227814u, 2147516072u, 3212836864u, 0, ERFF_TOLERANCE, 0},
+{261, 3230662656u, 2147516072u, 3212836864u, 0, ERFF_TOLERANCE, 0},
+{262, 3224580915u, 2147516072u, 3212835605u, 0, ERFF_TOLERANCE, 0},
+{263, 3213675725u, 2147516072u, 3210827039u, 0, ERFF_TOLERANCE, 0},
+{264, 1058642330u, 2147516072u, 1058707024u, 0, ERFF_TOLERANCE, 0},
+{265, 1075000115u, 2147516072u, 1065334037u, 0, ERFF_TOLERANCE, 0},
+{266, 1082130432u, 2147516072u, 1065353216u, 0, ERFF_TOLERANCE, 0},
+{267, 1085695590u, 2147516072u, 1065353216u, 0, ERFF_TOLERANCE, 0},
+{268, 1089260749u, 2147516072u, 1065353216u, 0, ERFF_TOLERANCE, 0},
+{269, 1091672474u, 2147516072u, 1065353216u, 0, ERFF_TOLERANCE, 0},
+{270, 1093455053u, 2147516072u, 1065353216u, 0, ERFF_TOLERANCE, 0},
+{271, 1095237632u, 2147516072u, 1065353216u, 0, ERFF_TOLERANCE, 0},
+{272, 1097020211u, 2147516072u, 1065353216u, 0, ERFF_TOLERANCE, 0},
+{273, 1098802790u, 2147516072u, 1065353216u, 0, ERFF_TOLERANCE, 0},
+{274, 1099746509u, 2147516072u, 1065353216u, 0, ERFF_TOLERANCE, 0},
+{275, 1100637798u, 2147516072u, 1065353216u, 0, ERFF_TOLERANCE, 0},
+{276, 1101529088u, 2147516072u, 1065353216u, 0, ERFF_TOLERANCE, 0},
+{277, 1102420378u, 2147516072u, 1065353216u, 0, ERFF_TOLERANCE, 0},
+{278, 1103311667u, 2147516072u, 1065353216u, 0, ERFF_TOLERANCE, 0},
+{279, 1104202957u, 2147516072u, 1065353216u, 0, ERFF_TOLERANCE, 0},
+{280, 1105094246u, 2147516072u, 1065353216u, 0, ERFF_TOLERANCE, 0},
+{281, 1105985536u, 2147516072u, 1065353216u, 0, ERFF_TOLERANCE, 0}
+
+// AUTOMATICALLY GENERATED VECTORS STOP
+
+};
+
+#endif // CYGONCE_LIBM_ERFF_H multiple inclusion protection
+
+// EOF erff.h
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/exp.c b/ecos/packages/language/c/libm/current/tests/vectors/exp.c
new file mode 100644
index 0000000..12c1995
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/exp.c
@@ -0,0 +1,115 @@
+//===========================================================================
+//
+// exp.c
+//
+// Test of exp() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// Declarations for test system:
+//
+// TESTCASE_TYPE=CYG_TEST_MODULE
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include <cyg/infra/testcase.h> // Test infrastructure
+#include <math.h> // Header for this package
+#include <sys/ieeefp.h> // Cyg_libm_ieee_double_shape_type
+#include "vectors/vector_support.h"// extra support for math tests
+
+#include "vectors/exp.h"
+
+// FUNCTIONS
+
+static void
+test( CYG_ADDRWORD data )
+{
+ cyg_ucount32 vec_size;
+ cyg_bool ret;
+
+ vec_size = sizeof(exp_vec) / sizeof(Cyg_libm_test_double_vec_t);
+ ret = doTestVec( (CYG_ADDRWORD) &exp, CYG_LIBM_TEST_VEC_DOUBLE,
+ CYG_LIBM_TEST_VEC_NONE, CYG_LIBM_TEST_VEC_DOUBLE,
+ &exp_vec[0], vec_size );
+
+ if (ret==true)
+ {
+ CYG_TEST_PASS("exp() is stable");
+ } // if
+ else
+ {
+ CYG_TEST_FAIL("exp() failed tests");
+ } // else
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for Math "
+ "library exp() function");
+} // test()
+
+
+int
+main(int argc, char *argv[])
+{
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for Math library "
+ "exp() function");
+
+ START_TEST( test );
+
+ CYG_TEST_PASS_FINISH("Testing is not applicable to this configuration");
+
+} // main()
+
+
+// EOF exp.c
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/exp.h b/ecos/packages/language/c/libm/current/tests/vectors/exp.h
new file mode 100644
index 0000000..33b58d3
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/exp.h
@@ -0,0 +1,1079 @@
+#ifndef CYGONCE_LIBM_EXP_H
+#define CYGONCE_LIBM_EXP_H
+//===========================================================================
+//
+// exp.h
+//
+// Test vectors for testing of exp() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage: #include "vectors/exp.h"
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include "vectors/vector_support.h"// extra support for math tests
+
+#define EXP_TOLERANCE 1.0E-04
+
+static const Cyg_libm_test_double_vec_t exp_vec[] = {
+
+// AUTOMATICALLY GENERATED VECTORS START
+
+{ 1, 1074853420u, 2506787616u, 1090024059u, 3619148316u, 1079073766u, 1147571106u, 0, EXP_TOLERANCE, 0},
+{ 2, 3220250806u, 3176730980u, 1051524793u, 2993920299u, 1070985501u, 3667586384u, 0, EXP_TOLERANCE, 0},
+{ 3, 3226028315u, 2725707538u, 3232101343u, 2346810316u, 996177609u, 2816512701u, 0, EXP_TOLERANCE, 0},
+{ 4, 1078922874u, 2088062470u, 3201242716u, 420891118u, 1166568645u, 2120331304u, 0, EXP_TOLERANCE, 0},
+{ 5, 3221200677u, 2636405208u, 1100049309u, 471635570u, 1069661382u, 4196142410u, 0, EXP_TOLERANCE, 0},
+{ 6, 1077828855u, 1746012320u, 1054478713u, 3333988501u, 1118565158u, 699114409u, 0, EXP_TOLERANCE, 0},
+{ 7, 1066827528u, 183014794u, 3202039382u, 2016785810u, 1072716539u, 123580646u, 0, EXP_TOLERANCE, 0},
+{ 8, 3219777490u, 2688957927u, 1046089230u, 2709029994u, 1071414232u, 1149200657u, 0, EXP_TOLERANCE, 0},
+{ 9, 1070330066u, 624574473u, 1045840574u, 3473266330u, 1072949041u, 2377226642u, 0, EXP_TOLERANCE, 0},
+{ 10, 3217502754u, 1605286142u, 1068931671u, 4233776869u, 1072345653u, 1083445165u, 0, EXP_TOLERANCE, 0},
+{ 11, 1069780594u, 1857607719u, 3222889559u, 3417070006u, 1072866340u, 2899880271u, 0, EXP_TOLERANCE, 0},
+{ 12, 1081579891u, 3981151660u, 1088899021u, 1332651746u, 1643831522u, 1345086100u, 0, EXP_TOLERANCE, 0},
+{ 13, 1075860838u, 3824988054u, 1066856791u, 2070129652u, 1084982301u, 1912337979u, 0, EXP_TOLERANCE, 0},
+{ 14, 3218045550u, 1372884064u, 1080833116u, 3229926662u, 1072236030u, 3106255365u, 0, EXP_TOLERANCE, 0},
+{ 15, 1078097861u, 3217805330u, 3191644264u, 2014578707u, 1128498553u, 1807458751u, 0, EXP_TOLERANCE, 0},
+{ 16, 1080267391u, 265058758u, 3239903247u, 1630600647u, 1309523294u, 1523986687u, 0, EXP_TOLERANCE, 0},
+{ 17, 1073221381u, 1946677669u, 3198462609u, 926009897u, 1074920988u, 1465131398u, 0, EXP_TOLERANCE, 0},
+{ 18, 1073178875u, 2271884183u, 3203741999u, 2118617783u, 1074874144u, 2764688608u, 0, EXP_TOLERANCE, 0},
+{ 19, 3214772053u, 213658772u, 3249401130u, 314151656u, 1072633636u, 4130392148u, 0, EXP_TOLERANCE, 0},
+{ 20, 3228946464u, 1564829925u, 3197817016u, 497230814u, 544633027u, 34803168u, 0, EXP_TOLERANCE, 0},
+{ 21, 3219408362u, 2075329122u, 3231746400u, 169900577u, 1071709080u, 4184140427u, 0, EXP_TOLERANCE, 0},
+{ 22, 1067674434u, 541549344u, 1096608669u, 3119070100u, 1072733781u, 3804791293u, 0, EXP_TOLERANCE, 0},
+{ 23, 1075989871u, 567496114u, 1045286891u, 1969998540u, 1086482701u, 3180352384u, 0, EXP_TOLERANCE, 0},
+{ 24, 1069985379u, 1299369769u, 1049342524u, 4167404066u, 1072896531u, 1629596946u, 0, EXP_TOLERANCE, 0},
+{ 25, 3218302829u, 3348930841u, 1078472138u, 358457347u, 1072144759u, 3067143552u, 0, EXP_TOLERANCE, 0},
+{ 26, 1073166449u, 2192461366u, 1099527247u, 3184735642u, 1074860805u, 1775317488u, 0, EXP_TOLERANCE, 0},
+{ 27, 1068590412u, 331696577u, 3189610016u, 793242270u, 1072766977u, 1780216299u, 0, EXP_TOLERANCE, 0},
+{ 28, 3229460262u, 2322696981u, 1083791358u, 3020766674u, 354871428u, 1974410974u, 0, EXP_TOLERANCE, 0},
+{ 29, 1066922273u, 252085215u, 3214426435u, 4139068910u, 1072718053u, 1593026232u, 0, EXP_TOLERANCE, 0},
+{ 30, 3221457149u, 105589263u, 1056316170u, 261630827u, 1068909924u, 4008856079u, 0, EXP_TOLERANCE, 0},
+{ 31, 1082047584u, 428765703u, 3251828686u, 2009972239u, 1816546673u, 3462966019u, 0, EXP_TOLERANCE, 0},
+{ 32, 1079693651u, 3517376586u, 3240257920u, 3304487302u, 1234899857u, 1250614638u, 0, EXP_TOLERANCE, 0},
+{ 33, 3224100728u, 237004814u, 3237899261u, 3364008659u, 1051573078u, 1250441695u, 0, EXP_TOLERANCE, 0},
+{ 34, 3214121920u, 472004928u, 3226869477u, 1186387580u, 1072653472u, 186620643u, 0, EXP_TOLERANCE, 0},
+{ 35, 1068906914u, 4085763910u, 1106394906u, 2684738273u, 1072788350u, 3104710386u, 0, EXP_TOLERANCE, 0},
+{ 36, 1069636551u, 2055490142u, 3231581370u, 3879040079u, 1072845542u, 714008610u, 0, EXP_TOLERANCE, 0},
+{ 37, 3213093895u, 3725731239u, 1061652681u, 591292963u, 1072672946u, 3339751925u, 0, EXP_TOLERANCE, 0},
+{ 38, 3221869253u, 1147041027u, 3215417793u, 624695933u, 1067731891u, 1490517545u, 0, EXP_TOLERANCE, 0},
+{ 39, 3217587110u, 705725219u, 3238067573u, 1116238321u, 1072328147u, 3778478168u, 0, EXP_TOLERANCE, 0},
+{ 40, 3217852848u, 7287411u, 1045917232u, 116067742u, 1072274139u, 800660017u, 0, EXP_TOLERANCE, 0},
+{ 41, 3226423734u, 3604989074u, 1066381836u, 545298780u, 977849136u, 1417268874u, 0, EXP_TOLERANCE, 0},
+{ 42, 3221178088u, 1681476121u, 1060345752u, 3553822398u, 1069686696u, 3471070187u, 0, EXP_TOLERANCE, 0},
+{ 43, 1080811562u, 3410480388u, 1052460275u, 1660607230u, 1409975006u, 2715754844u, 0, EXP_TOLERANCE, 0},
+{ 44, 1077682533u, 1494984673u, 3196647153u, 287894723u, 1115159161u, 2741076212u, 0, EXP_TOLERANCE, 0},
+{ 45, 1068516615u, 644548665u, 1081948134u, 2442134629u, 1072762051u, 2743261701u, 0, EXP_TOLERANCE, 0},
+{ 46, 1077068335u, 2312530895u, 3221584595u, 3379665576u, 1101051489u, 3357999194u, 0, EXP_TOLERANCE, 0},
+{ 47, 1079308159u, 3018463866u, 1086226574u, 404012923u, 1199317798u, 2905917257u, 0, EXP_TOLERANCE, 0},
+{ 48, 1071024755u, 1710279345u, 3251401196u, 3528946000u, 1073135949u, 3958225700u, 0, EXP_TOLERANCE, 0},
+{ 49, 1070973535u, 2164450219u, 1083520023u, 3312018966u, 1073117849u, 2216238713u, 0, EXP_TOLERANCE, 0},
+{ 50, 1069831588u, 2648986431u, 1050330591u, 1474376550u, 1072873789u, 3409301846u, 0, EXP_TOLERANCE, 0},
+{ 51, 3214344972u, 1839068700u, 1077406406u, 3013052171u, 1072646645u, 923270809u, 0, EXP_TOLERANCE, 0},
+{ 52, 1066416574u, 772102380u, 3220729740u, 4219039958u, 1072709995u, 1305461407u, 0, EXP_TOLERANCE, 0},
+{ 53, 3223180765u, 3058618779u, 1046304788u, 3338676024u, 1061347966u, 1072422663u, 0, EXP_TOLERANCE, 0},
+{ 54, 1067949353u, 506286854u, 1094907481u, 2217000199u, 1072742741u, 3706634962u, 0, EXP_TOLERANCE, 0},
+{ 55, 1076136854u, 1147428263u, 1065432625u, 3034786717u, 1088176249u, 1631281700u, 0, EXP_TOLERANCE, 0},
+{ 56, 1075725296u, 2844125311u, 1082985198u, 2561492677u, 1084108872u, 2831233524u, 0, EXP_TOLERANCE, 0},
+{ 57, 3218876948u, 704542600u, 3222902057u, 2762779203u, 1071946646u, 190610401u, 0, EXP_TOLERANCE, 0},
+{ 58, 3215409254u, 184131949u, 3249723525u, 1667366082u, 1072600139u, 3411518971u, 0, EXP_TOLERANCE, 0},
+{ 59, 3221512446u, 3904224140u, 1067056698u, 2942159914u, 1068763822u, 1503414230u, 0, EXP_TOLERANCE, 0},
+{ 60, 1080713919u, 426114282u, 3209056785u, 1083606355u, 1391928446u, 3657642479u, 0, EXP_TOLERANCE, 0},
+{ 61, 1082048697u, 3774123863u, 1106787580u, 2722107965u, 1817003400u, 2241806278u, 0, EXP_TOLERANCE, 0},
+{ 62, 1077519332u, 1377734762u, 1104232051u, 2377063483u, 1111477508u, 844049504u, 0, EXP_TOLERANCE, 0},
+{ 63, 1072526287u, 1029739074u, 1105467109u, 3062201018u, 1074009347u, 4070953358u, 0, EXP_TOLERANCE, 0},
+{ 64, 3225304413u, 773857656u, 3214251949u, 335833884u, 1026865589u, 4235967790u, 0, EXP_TOLERANCE, 0},
+{ 65, 3216856098u, 1473865960u, 1103073830u, 4000427507u, 1072466239u, 2409423530u, 0, EXP_TOLERANCE, 0},
+{ 66, 1081165135u, 4242092620u, 1067009473u, 14539161u, 1490638029u, 1225921132u, 0, EXP_TOLERANCE, 0},
+{ 67, 3214536170u, 1732245037u, 1101371955u, 1533536108u, 1072640811u, 1577960147u, 0, EXP_TOLERANCE, 0},
+{ 68, 3228182475u, 1833841275u, 1099430098u, 4144145552u, 756118454u, 4124162837u, 0, EXP_TOLERANCE, 0},
+{ 69, 3227493247u, 935007012u, 3188865420u, 604442938u, 881158424u, 3059390833u, 0, EXP_TOLERANCE, 0},
+{ 70, 3217389013u, 2211464602u, 1046255144u, 1635910526u, 1072369536u, 4272624615u, 0, EXP_TOLERANCE, 0},
+{ 71, 1074725689u, 2549219008u, 3231633258u, 3733639385u, 1078468890u, 3538652097u, 0, EXP_TOLERANCE, 0},
+{ 72, 1075803633u, 1819374372u, 3202219056u, 2617077637u, 1084512755u, 3226299243u, 0, EXP_TOLERANCE, 0},
+{ 73, 1078616640u, 546465680u, 1048653554u, 532401530u, 1152481934u, 1660202510u, 0, EXP_TOLERANCE, 0},
+{ 74, 1066591187u, 2759019783u, 3221570188u, 3554409630u, 1072712770u, 3539689839u, 0, EXP_TOLERANCE, 0},
+{ 75, 3219222738u, 2527221960u, 1099107978u, 2696971136u, 1071812085u, 1070446248u, 0, EXP_TOLERANCE, 0},
+{ 76, 1079332208u, 173134582u, 1087299442u, 2877794600u, 1201571530u, 2450291402u, 0, EXP_TOLERANCE, 0},
+{ 77, 1076963290u, 547642046u, 3197285510u, 3521286127u, 1098574476u, 1604458491u, 0, EXP_TOLERANCE, 0},
+{ 78, 1073812126u, 1231582831u, 1090971734u, 1653446832u, 1075897874u, 3499443040u, 0, EXP_TOLERANCE, 0},
+{ 79, 1070779719u, 3762182190u, 3252967851u, 2615360375u, 1073051323u, 4198562047u, 0, EXP_TOLERANCE, 0},
+{ 80, 3216563063u, 2588067350u, 3206610957u, 3551059728u, 1072499190u, 3656398129u, 0, EXP_TOLERANCE, 0},
+{ 81, 3217464616u, 845263327u, 1073415902u, 1749010288u, 1072353625u, 2543242068u, 0, EXP_TOLERANCE, 0},
+{ 82, 3217110706u, 3092685191u, 3190678390u, 2872219490u, 1072429360u, 3896037664u, 0, EXP_TOLERANCE, 0},
+{ 83, 3220412207u, 4107255722u, 3205337291u, 3069068345u, 1070780355u, 264836658u, 0, EXP_TOLERANCE, 0},
+{ 84, 3227213641u, 2294867524u, 3216653996u, 2860384670u, 907048437u, 551868093u, 0, EXP_TOLERANCE, 0},
+{ 85, 3214297870u, 2265437201u, 3240198679u, 1234948614u, 1072648084u, 4060123138u, 0, EXP_TOLERANCE, 0},
+{ 86, 3219505657u, 1186945904u, 3251167793u, 1896750851u, 1071658624u, 3764186265u, 0, EXP_TOLERANCE, 0},
+{ 87, 1075284022u, 3686084548u, 1079286273u, 3309277689u, 1081503302u, 60883681u, 0, EXP_TOLERANCE, 0},
+{ 88, 3221379088u, 3006860614u, 3231412671u, 2504194724u, 1069144247u, 54379178u, 0, EXP_TOLERANCE, 0},
+{ 89, 3224614924u, 1948717780u, 1048317852u, 3791803982u, 1042772858u, 2420958386u, 0, EXP_TOLERANCE, 0},
+{ 90, 1070636471u, 4272034420u, 3192982124u, 1526175922u, 1073004093u, 3308824510u, 0, EXP_TOLERANCE, 0},
+{ 91, 3226943458u, 4108948538u, 1104691287u, 640541190u, 931953430u, 3437532117u, 0, EXP_TOLERANCE, 0},
+{ 92, 3217743177u, 3259274853u, 1082507103u, 3677038020u, 1072296221u, 2033726093u, 0, EXP_TOLERANCE, 0},
+{ 93, 1076841042u, 3781708548u, 1096584871u, 1207386447u, 1096271275u, 77258u, 0, EXP_TOLERANCE, 0},
+{ 94, 3213861096u, 3011191657u, 1103798670u, 1096124830u, 1072661109u, 742458517u, 0, EXP_TOLERANCE, 0},
+{ 95, 1071623631u, 2540404725u, 3240157452u, 4122845725u, 1073364830u, 3560000573u, 0, EXP_TOLERANCE, 0},
+{ 96, 1076303678u, 311336721u, 3214382367u, 4212533768u, 1090074692u, 2663913965u, 0, EXP_TOLERANCE, 0},
+{ 97, 1067916643u, 1769686293u, 3240200923u, 3538602249u, 1072741671u, 4116363241u, 0, EXP_TOLERANCE, 0},
+{ 98, 1075081821u, 508056696u, 1103793878u, 776520138u, 1080344162u, 242331594u, 0, EXP_TOLERANCE, 0},
+{ 99, 1080890481u, 4064962760u, 1077424413u, 819766631u, 1424537001u, 3317334315u, 0, EXP_TOLERANCE, 0},
+{ 100, 1074178362u, 2112385259u, 3227593179u, 1187058516u, 1076952439u, 2142218601u, 0, EXP_TOLERANCE, 0},
+{ 101, 1076003603u, 2514398118u, 1076579751u, 870169764u, 1086615970u, 3988144815u, 0, EXP_TOLERANCE, 0},
+{ 102, 3227977024u, 1190259653u, 1069112254u, 3417249840u, 794021017u, 2254415465u, 0, EXP_TOLERANCE, 0},
+{ 103, 3214634603u, 3467757357u, 3215075200u, 2168175352u, 1072637814u, 1866384359u, 0, EXP_TOLERANCE, 0},
+{ 104, 3226011647u, 1508888184u, 1060430241u, 3524949092u, 996893071u, 1032082419u, 0, EXP_TOLERANCE, 0},
+{ 105, 3215238675u, 166402802u, 3237198975u, 3572369260u, 1072610353u, 2543405344u, 0, EXP_TOLERANCE, 0},
+{ 106, 1075575366u, 2441536203u, 3202753937u, 3658194573u, 1083247124u, 1565872384u, 0, EXP_TOLERANCE, 0},
+{ 107, 1070781516u, 2479742828u, 1062342831u, 4214154303u, 1073051926u, 2877262325u, 0, EXP_TOLERANCE, 0},
+{ 108, 1076105338u, 426896765u, 1066474375u, 2201754442u, 1087780533u, 3456888252u, 0, EXP_TOLERANCE, 0},
+{ 109, 3214503389u, 2055773734u, 3239267288u, 291396537u, 1072641810u, 1723790219u, 0, EXP_TOLERANCE, 0},
+{ 110, 3224385121u, 874125203u, 3210508124u, 4091098764u, 1048079713u, 3922271118u, 0, EXP_TOLERANCE, 0},
+{ 111, 1072007482u, 120488169u, 3241241441u, 1985269424u, 1073699997u, 3263405331u, 0, EXP_TOLERANCE, 0},
+{ 112, 3218073746u, 2243036871u, 3243941101u, 740033495u, 1072230527u, 3210238367u, 0, EXP_TOLERANCE, 0},
+{ 113, 3218862090u, 1176656356u, 1074261978u, 3588756231u, 1071951438u, 3060660754u, 0, EXP_TOLERANCE, 0},
+{ 114, 3228699543u, 3037249392u, 1061635587u, 1173102190u, 635829382u, 979909056u, 0, EXP_TOLERANCE, 0},
+{ 115, 3224626669u, 2882725208u, 1071440059u, 69225090u, 1042520691u, 1843293285u, 0, EXP_TOLERANCE, 0},
+{ 116, 3218954930u, 272319256u, 1072073912u, 2493997123u, 1071921768u, 657202412u, 0, EXP_TOLERANCE, 0},
+{ 117, 1070303098u, 188610379u, 3232757923u, 2209647371u, 1072944854u, 4022783570u, 0, EXP_TOLERANCE, 0},
+{ 118, 3225224181u, 1990439193u, 1078073146u, 622849962u, 1028759537u, 3564758723u, 0, EXP_TOLERANCE, 0},
+{ 119, 1069718653u, 756052458u, 1081649113u, 2247475162u, 1072857353u, 554847761u, 0, EXP_TOLERANCE, 0},
+{ 120, 1071060248u, 3878055211u, 3222407050u, 2979438623u, 1073148623u, 540184608u, 0, EXP_TOLERANCE, 0},
+{ 121, 3214165365u, 2676398686u, 1105124431u, 3631096636u, 1072652140u, 2373850172u, 0, EXP_TOLERANCE, 0},
+{ 122, 1071370846u, 1697791764u, 3198136112u, 2299842819u, 1073264221u, 1573541634u, 0, EXP_TOLERANCE, 0},
+{ 123, 1074939040u, 1931502677u, 3215264397u, 3016456382u, 1079513197u, 1530595558u, 0, EXP_TOLERANCE, 0},
+{ 124, 1073302002u, 343404215u, 1061072607u, 4266232536u, 1075015225u, 3004108006u, 0, EXP_TOLERANCE, 0},
+{ 125, 3225502196u, 4140316002u, 1082896196u, 868256971u, 1020424521u, 3460157795u, 0, EXP_TOLERANCE, 0},
+{ 126, 1074374234u, 1864139509u, 3187675097u, 3084482407u, 1077456782u, 4150857240u, 0, EXP_TOLERANCE, 0},
+{ 127, 3220191323u, 2427162817u, 3234748208u, 2715105792u, 1071069433u, 783584364u, 0, EXP_TOLERANCE, 0},
+{ 128, 1070891968u, 3943389284u, 1046724025u, 3626825684u, 1073089477u, 1797152336u, 0, EXP_TOLERANCE, 0},
+{ 129, 1067443098u, 967350972u, 1093012318u, 448002663u, 1072726416u, 797307317u, 0, EXP_TOLERANCE, 0},
+{ 130, 3228777187u, 105058217u, 1069733884u, 171786224u, 607209346u, 771064197u, 0, EXP_TOLERANCE, 0},
+{ 131, 3213731756u, 2863482262u, 3204997271u, 877784425u, 1072663100u, 426007619u, 0, EXP_TOLERANCE, 0},
+{ 132, 3216260801u, 2801782962u, 3213604117u, 762347195u, 1072533788u, 600737923u, 0, EXP_TOLERANCE, 0},
+{ 133, 3224049543u, 2317950339u, 3246333414u, 2135700283u, 1052112831u, 3287040885u, 0, EXP_TOLERANCE, 0},
+{ 134, 1069099309u, 4171919805u, 1082858682u, 2180920863u, 1072801541u, 2165096902u, 0, EXP_TOLERANCE, 0},
+{ 135, 3221197660u, 1918836931u, 1083603224u, 3137821660u, 1069664732u, 2532148552u, 0, EXP_TOLERANCE, 0},
+{ 136, 1081882778u, 3456203663u, 3235600523u, 2335688936u, 1755681633u, 4057860990u, 0, EXP_TOLERANCE, 0},
+{ 137, 1066396570u, 4170235262u, 1051824459u, 521583737u, 1072709719u, 1024167559u, 0, EXP_TOLERANCE, 0},
+{ 138, 1075056847u, 1296623194u, 3250673860u, 2442872540u, 1080220627u, 2781106181u, 0, EXP_TOLERANCE, 0},
+{ 139, 1071121461u, 289979405u, 1049514449u, 3865737145u, 1073170732u, 3903607776u, 0, EXP_TOLERANCE, 0},
+{ 140, 1074250368u, 3699090239u, 1054539840u, 3259249360u, 1077116363u, 502955531u, 0, EXP_TOLERANCE, 0},
+{ 141, 1079640884u, 1619819023u, 1045993352u, 1022642459u, 1230064705u, 1444182022u, 0, EXP_TOLERANCE, 0},
+{ 142, 1075141548u, 19455098u, 3229182089u, 2096003654u, 1080692026u, 447080049u, 0, EXP_TOLERANCE, 0},
+{ 143, 1074200784u, 3803689997u, 1071630912u, 2263729518u, 1077001092u, 1334450617u, 0, EXP_TOLERANCE, 0},
+{ 144, 1080385741u, 2816837387u, 1063422305u, 2597606398u, 1331342121u, 1095829056u, 0, EXP_TOLERANCE, 0},
+{ 145, 1072245897u, 3680967506u, 1040201163u, 179224723u, 1073844641u, 930186774u, 0, EXP_TOLERANCE, 0},
+{ 146, 3213795591u, 978126928u, 1101553990u, 4047893399u, 1072662117u, 1101190271u, 0, EXP_TOLERANCE, 0},
+{ 147, 3221273469u, 4059818629u, 1042678728u, 3640293589u, 1069522282u, 1267895499u, 0, EXP_TOLERANCE, 0},
+{ 148, 3228541096u, 3383497159u, 1070002807u, 1527313008u, 689917614u, 1535716049u, 0, EXP_TOLERANCE, 0},
+{ 149, 3216339167u, 2599946514u, 1104170406u, 2738675352u, 1072524758u, 1435148139u, 0, EXP_TOLERANCE, 0},
+{ 150, 1081115375u, 3616571377u, 1060859316u, 1130603218u, 1472304603u, 3187069287u, 0, EXP_TOLERANCE, 0},
+{ 151, 1073931644u, 3859211180u, 1067940450u, 1744531824u, 1076181432u, 1345205949u, 0, EXP_TOLERANCE, 0},
+{ 152, 1065900012u, 1958025850u, 3236511256u, 2472176453u, 1072705786u, 932607201u, 0, EXP_TOLERANCE, 0},
+{ 153, 3223669905u, 182132862u, 3250520938u, 3924356991u, 1056496908u, 661218322u, 0, EXP_TOLERANCE, 0},
+{ 154, 3224210428u, 35632886u, 3209806504u, 1453402523u, 1050263526u, 3107753313u, 0, EXP_TOLERANCE, 0},
+{ 155, 1076182070u, 743225214u, 3202890678u, 142917400u, 1088680431u, 3782028986u, 0, EXP_TOLERANCE, 0},
+{ 156, 1075442096u, 1472665012u, 3203138231u, 256588219u, 1082425160u, 2507283120u, 0, EXP_TOLERANCE, 0},
+{ 157, 1079253522u, 1062927000u, 1061134072u, 931677439u, 1194330468u, 3538812810u, 0, EXP_TOLERANCE, 0},
+{ 158, 1069912068u, 2320910576u, 1055663370u, 288059864u, 1072885638u, 2756379436u, 0, EXP_TOLERANCE, 0},
+{ 159, 1075812365u, 1448349062u, 3199478070u, 3454027134u, 1084557930u, 2428474527u, 0, EXP_TOLERANCE, 0},
+{ 160, 3224875886u, 4215445172u, 3196654963u, 2231888973u, 1036778828u, 4095096416u, 0, EXP_TOLERANCE, 0},
+{ 161, 3227757863u, 40413554u, 3232578253u, 983832844u, 834531371u, 1749210300u, 0, EXP_TOLERANCE, 0},
+{ 162, 3221624382u, 3995725873u, 1050082319u, 777231627u, 1068511312u, 2187487459u, 0, EXP_TOLERANCE, 0},
+{ 163, 1066152450u, 672789828u, 3253385962u, 2982787335u, 1072707783u, 3636282767u, 0, EXP_TOLERANCE, 0},
+{ 164, 1072585179u, 2075971825u, 1070166500u, 4034633931u, 1074046830u, 2188206437u, 0, EXP_TOLERANCE, 0},
+{ 165, 3218434785u, 1018222907u, 3244621407u, 3090050495u, 1072096796u, 906290978u, 0, EXP_TOLERANCE, 0},
+{ 166, 1071875189u, 937732557u, 3200798890u, 2557898276u, 1073574348u, 956132579u, 0, EXP_TOLERANCE, 0},
+{ 167, 1075196588u, 130346162u, 3223590310u, 275568693u, 1081086381u, 3765310085u, 0, EXP_TOLERANCE, 0},
+{ 168, 1065967541u, 3807416441u, 1075961161u, 3706820266u, 1072706320u, 1003056074u, 0, EXP_TOLERANCE, 0},
+{ 169, 3219244733u, 1710131411u, 1078123323u, 1900790503u, 1071799398u, 2869753911u, 0, EXP_TOLERANCE, 0},
+{ 170, 3226236449u, 3420420033u, 3210844787u, 588423066u, 986539436u, 3295138570u, 0, EXP_TOLERANCE, 0},
+{ 171, 1067509906u, 1160162008u, 3246307879u, 4265764460u, 1072728454u, 3054362979u, 0, EXP_TOLERANCE, 0},
+{ 172, 1080523338u, 366653268u, 3188814424u, 466059202u, 1356813060u, 760636581u, 0, EXP_TOLERANCE, 0},
+{ 173, 3222433435u, 1325936170u, 3221436876u, 680097612u, 1065643005u, 1532992433u, 0, EXP_TOLERANCE, 0},
+{ 174, 3225711052u, 1827735934u, 3200554324u, 2875599271u, 1010834241u, 3777705215u, 0, EXP_TOLERANCE, 0},
+{ 175, 3213050498u, 3117037091u, 3239246636u, 15838845u, 1072673618u, 1728450485u, 0, EXP_TOLERANCE, 0},
+{ 176, 1067702644u, 749718883u, 3223587064u, 1523766569u, 1072734697u, 3920212286u, 0, EXP_TOLERANCE, 0},
+{ 177, 1066853747u, 1966536294u, 3250158026u, 699164258u, 1072716957u, 3817171147u, 0, EXP_TOLERANCE, 0},
+{ 178, 1079174067u, 3759049394u, 1106085272u, 1183789499u, 1186993088u, 3807740687u, 0, EXP_TOLERANCE, 0},
+{ 179, 1074910167u, 1970107747u, 1095245453u, 2308233883u, 1079348720u, 1531523305u, 0, EXP_TOLERANCE, 0},
+{ 180, 1076367836u, 1491017852u, 1041444355u, 1723375725u, 1090818724u, 2037541645u, 0, EXP_TOLERANCE, 0},
+{ 181, 3219775798u, 1141349287u, 1097465301u, 3403438584u, 1071415739u, 1183515418u, 0, EXP_TOLERANCE, 0},
+{ 182, 3224280452u, 1711085243u, 3250239076u, 1377484108u, 1049505584u, 2904152696u, 0, EXP_TOLERANCE, 0},
+{ 183, 1079510651u, 2880275004u, 1084039594u, 1611394950u, 1217987707u, 2867297031u, 0, EXP_TOLERANCE, 0},
+{ 184, 3224784251u, 2626629370u, 1063771493u, 1499080813u, 1038898033u, 1353327733u, 0, EXP_TOLERANCE, 0},
+{ 185, 1068862751u, 3936262414u, 1103919063u, 3175668759u, 1072785344u, 648861936u, 0, EXP_TOLERANCE, 0},
+{ 186, 3217418903u, 1270950554u, 3194616071u, 3680565379u, 1072363229u, 951093660u, 0, EXP_TOLERANCE, 0},
+{ 187, 3217585407u, 1066985223u, 3221613219u, 4089383168u, 1072328499u, 2267080590u, 0, EXP_TOLERANCE, 0},
+{ 188, 3220204567u, 4017329311u, 3208334452u, 1667591498u, 1071050331u, 296637723u, 0, EXP_TOLERANCE, 0},
+{ 189, 1077678397u, 3154656624u, 1061894279u, 3886344038u, 1115063060u, 1143078455u, 0, EXP_TOLERANCE, 0},
+{ 190, 1068478737u, 977586119u, 3209762784u, 953839852u, 1072760203u, 1532008227u, 0, EXP_TOLERANCE, 0},
+{ 191, 1081896575u, 143071571u, 3206165386u, 913097445u, 1760793137u, 1725664653u, 0, EXP_TOLERANCE, 0},
+{ 192, 3213634128u, 1371169579u, 1057079837u, 2594818628u, 1072664604u, 686553362u, 0, EXP_TOLERANCE, 0},
+{ 193, 3228724664u, 2259342224u, 3217432469u, 1824221478u, 626552221u, 555843157u, 0, EXP_TOLERANCE, 0},
+{ 194, 3227960407u, 1576604497u, 1079368611u, 185078728u, 797102216u, 2312754753u, 0, EXP_TOLERANCE, 0},
+{ 195, 3221679427u, 444800035u, 3243343143u, 1734989302u, 1068312202u, 3537952111u, 0, EXP_TOLERANCE, 0},
+{ 196, 1072748883u, 130452005u, 1041548088u, 2158433515u, 1074196068u, 1478831994u, 0, EXP_TOLERANCE, 0},
+{ 197, 3225258784u, 1941318385u, 1045807374u, 792193370u, 1027918372u, 749451785u, 0, EXP_TOLERANCE, 0},
+{ 198, 3225716754u, 1299392207u, 3212131720u, 3205732280u, 1010504056u, 162887831u, 0, EXP_TOLERANCE, 0},
+{ 199, 1079824436u, 3035093505u, 1052187689u, 3287702190u, 1246977273u, 3659026689u, 0, EXP_TOLERANCE, 0},
+{ 200, 3227801892u, 2160225215u, 1102624859u, 836655570u, 826392674u, 2334422787u, 0, EXP_TOLERANCE, 0},
+{ 201, 1079946410u, 3360816360u, 3246176356u, 172860634u, 1258302663u, 595783054u, 0, EXP_TOLERANCE, 0},
+{ 202, 1073092940u, 146831910u, 1051558014u, 2340722078u, 1074779693u, 2145151815u, 0, EXP_TOLERANCE, 0},
+{ 203, 3224124895u, 1603798153u, 3207725532u, 1099413093u, 1051244985u, 2989707675u, 0, EXP_TOLERANCE, 0},
+{ 204, 3227804010u, 2429340443u, 3190303581u, 3223770005u, 825977359u, 2890255810u, 0, EXP_TOLERANCE, 0},
+{ 205, 1073785807u, 955542166u, 3230415151u, 275583938u, 1075843652u, 1493078710u, 0, EXP_TOLERANCE, 0},
+{ 206, 1078291818u, 513397822u, 1090646554u, 2089321329u, 1137467212u, 351397573u, 0, EXP_TOLERANCE, 0},
+{ 207, 3214141396u, 2782073372u, 1046063872u, 4023829068u, 1072652875u, 138208091u, 0, EXP_TOLERANCE, 0},
+{ 208, 1079690454u, 3242223094u, 3194111199u, 4264674108u, 1234585286u, 346227329u, 0, EXP_TOLERANCE, 0},
+{ 209, 3225927909u, 3506346169u, 1047020885u, 1742757458u, 1000737156u, 928258562u, 0, EXP_TOLERANCE, 0},
+{ 210, 3214684573u, 1265459564u, 3193450280u, 3650514880u, 1072636294u, 3135130836u, 0, EXP_TOLERANCE, 0},
+{ 211, 1075464434u, 1525260440u, 3235452527u, 2612331392u, 1082544645u, 3469250844u, 0, EXP_TOLERANCE, 0},
+{ 212, 3227697400u, 1263613754u, 3219096387u, 635677201u, 845641032u, 2821259135u, 0, EXP_TOLERANCE, 0},
+{ 213, 3217806423u, 4140947288u, 3200792376u, 2013265346u, 1072283451u, 2224455623u, 0, EXP_TOLERANCE, 0},
+{ 214, 3227954296u, 1912759945u, 3237045253u, 1351396825u, 798217665u, 2086155788u, 0, EXP_TOLERANCE, 0},
+{ 215, 3228282218u, 1001433078u, 3206926643u, 2741676659u, 737645798u, 2489257394u, 0, EXP_TOLERANCE, 0},
+{ 216, 1075680726u, 1088945233u, 1085095743u, 3986114865u, 1083799535u, 115784002u, 0, EXP_TOLERANCE, 0},
+{ 217, 3219928361u, 831239754u, 1099828675u, 3071308141u, 1071284656u, 1977716179u, 0, EXP_TOLERANCE, 0},
+{ 218, 3222688769u, 3473592372u, 1102759382u, 1309576357u, 1064228744u, 3715932954u, 0, EXP_TOLERANCE, 0},
+{ 219, 3229166610u, 2042340367u, 1091945628u, 2062772374u, 463396439u, 3913343620u, 0, EXP_TOLERANCE, 0},
+{ 220, 3214688631u, 1840632537u, 1096533424u, 807510337u, 1072636171u, 1550550553u, 0, EXP_TOLERANCE, 0},
+{ 221, 3224111690u, 144814872u, 3212698915u, 2282965697u, 1051416747u, 218973180u, 0, EXP_TOLERANCE, 0},
+{ 222, 1073333582u, 2552499583u, 3229111426u, 1470130815u, 1075054160u, 3344155594u, 0, EXP_TOLERANCE, 0},
+{ 223, 3227364425u, 2858583811u, 1089760910u, 6360994u, 893069846u, 2777198087u, 0, EXP_TOLERANCE, 0},
+{ 224, 3215042145u, 1614537194u, 1075198900u, 4088705365u, 1072622185u, 3424131072u, 0, EXP_TOLERANCE, 0},
+{ 225, 3228918974u, 3545570051u, 1065221325u, 1629217700u, 554828172u, 1332220829u, 0, EXP_TOLERANCE, 0},
+{ 226, 1072744324u, 1813392963u, 3235313361u, 3772501596u, 1074189549u, 528208211u, 0, EXP_TOLERANCE, 0},
+{ 227, 3215677054u, 2406734491u, 1042055360u, 89226663u, 1072584209u, 97402367u, 0, EXP_TOLERANCE, 0},
+{ 228, 3214625449u, 1618759139u, 3194723421u, 3888234802u, 1072638092u, 4156317286u, 0, EXP_TOLERANCE, 0},
+{ 229, 1068988736u, 3590035633u, 3212424262u, 2892456615u, 1072793942u, 113645931u, 0, EXP_TOLERANCE, 0},
+{ 230, 3213011732u, 2431246964u, 3241512456u, 183850734u, 1072674218u, 2322381535u, 0, EXP_TOLERANCE, 0},
+{ 231, 1076918189u, 3088319870u, 3211544311u, 862225364u, 1097534688u, 1720101583u, 0, EXP_TOLERANCE, 0},
+{ 232, 3224808904u, 3495352775u, 1058576726u, 596957268u, 1038316024u, 2704436146u, 0, EXP_TOLERANCE, 0},
+{ 233, 1066476292u, 1839214511u, 3205004060u, 1923240983u, 1072710943u, 3120088286u, 0, EXP_TOLERANCE, 0},
+{ 234, 1069608200u, 739619702u, 3223356436u, 2689885273u, 1072841490u, 1671733001u, 0, EXP_TOLERANCE, 0},
+{ 235, 3216053611u, 2143376228u, 1098306332u, 3760236188u, 1072557866u, 124949512u, 0, EXP_TOLERANCE, 0},
+{ 236, 1074621795u, 671680995u, 1091262633u, 2315535361u, 1078184623u, 1598497576u, 0, EXP_TOLERANCE, 0},
+{ 237, 3219408869u, 2493598049u, 3194927008u, 1689107592u, 1071708811u, 3795731906u, 0, EXP_TOLERANCE, 0},
+{ 238, 3213058631u, 1578976988u, 1066368383u, 2117279163u, 1072673492u, 2246846524u, 0, EXP_TOLERANCE, 0},
+{ 239, 3221939535u, 3425290087u, 1098487295u, 1263412017u, 1067565021u, 2944648507u, 0, EXP_TOLERANCE, 0},
+{ 240, 3217869948u, 3635396812u, 1070999426u, 3965655689u, 1072270721u, 3634981027u, 0, EXP_TOLERANCE, 0},
+{ 241, 1069633530u, 2183973116u, 1101098363u, 1118613350u, 1072845109u, 3339325204u, 0, EXP_TOLERANCE, 0},
+{ 242, 3221946089u, 199516350u, 1078368488u, 164621458u, 1067550572u, 2506509655u, 0, EXP_TOLERANCE, 0},
+{ 243, 3212871842u, 3570940805u, 3230316437u, 3596080877u, 1072676385u, 2634172860u, 0, EXP_TOLERANCE, 0},
+{ 244, 3217646749u, 980880313u, 1079833442u, 884465057u, 1072315877u, 2036884740u, 0, EXP_TOLERANCE, 0},
+{ 245, 1080054180u, 2558179220u, 1052873711u, 1233598120u, 1270109524u, 2524660391u, 0, EXP_TOLERANCE, 0},
+{ 246, 1067038165u, 1909994277u, 1085015978u, 2991527452u, 1072719908u, 2697640880u, 0, EXP_TOLERANCE, 0},
+{ 247, 1070292444u, 1680290941u, 1074309900u, 2943870846u, 1072943204u, 3151340758u, 0, EXP_TOLERANCE, 0},
+{ 248, 1069981892u, 1451927357u, 3228615456u, 1502585517u, 1072896011u, 500177266u, 0, EXP_TOLERANCE, 0},
+{ 249, 3224677615u, 751136990u, 3230392165u, 3493275472u, 1041368347u, 2625785490u, 0, EXP_TOLERANCE, 0},
+{ 250, 1079491599u, 1209623292u, 3238056647u, 979495322u, 1216301027u, 1345426533u, 0, EXP_TOLERANCE, 0},
+{ 251, 3228404200u, 1717672108u, 1048120593u, 531240316u, 715186535u, 1714377665u, 0, EXP_TOLERANCE, 0},
+{ 252, 1068854987u, 3548721654u, 1086112947u, 3391817224u, 1072784816u, 1708052498u, 0, EXP_TOLERANCE, 0},
+{ 253, 1074691123u, 2758195125u, 1100880260u, 2028440924u, 1078367996u, 3066779734u, 0, EXP_TOLERANCE, 0},
+{ 254, 1076883861u, 2750123373u, 3232200256u, 1086294931u, 1096841846u, 788833203u, 0, EXP_TOLERANCE, 0},
+{ 255, 1065978768u, 2986160931u, 1076097908u, 2540046258u, 1072706409u, 172413673u, 0, EXP_TOLERANCE, 0},
+{ 256, 3224990842u, 451471221u, 1064816262u, 4187644495u, 1034117199u, 2383134537u, 0, EXP_TOLERANCE, 0},
+{ 257, 1080585860u, 2439500162u, 1065280276u, 1979490284u, 1368362891u, 4075308906u, 0, EXP_TOLERANCE, 0},
+{ 258, 1065581656u, 2283342035u, 1078398157u, 1345997553u, 1072703272u, 1306641747u, 0, EXP_TOLERANCE, 0},
+{ 259, 3219540804u, 179066662u, 1103272172u, 1217337578u, 1071637260u, 357090176u, 0, EXP_TOLERANCE, 0},
+{ 260, 3218902409u, 3779303391u, 3210023352u, 3115946280u, 1071938472u, 1299997584u, 0, EXP_TOLERANCE, 0},
+{ 261, 3213961394u, 286247089u, 1085153597u, 713645369u, 1072658399u, 978675133u, 0, EXP_TOLERANCE, 0},
+{ 262, 1077941860u, 1468283899u, 1042831668u, 2022736418u, 1121280747u, 2888650454u, 0, EXP_TOLERANCE, 0},
+{ 263, 1076847649u, 3305564080u, 1065483445u, 482392433u, 1096351817u, 3604886221u, 0, EXP_TOLERANCE, 0},
+{ 264, 3216375871u, 2256346551u, 3222430705u, 2071674991u, 1072520543u, 2427121917u, 0, EXP_TOLERANCE, 0},
+{ 265, 3216607607u, 2295269094u, 1084451053u, 2773103941u, 1072494144u, 3385062574u, 0, EXP_TOLERANCE, 0},
+{ 266, 1075028218u, 1482721827u, 1092243422u, 3125409590u, 1080092760u, 3102857585u, 0, EXP_TOLERANCE, 0},
+{ 267, 3221065973u, 1381740563u, 1071545057u, 2918235653u, 1069820730u, 3040152884u, 0, EXP_TOLERANCE, 0},
+{ 268, 3226133060u, 1105857967u, 3241990046u, 2703723225u, 991268023u, 2258767820u, 0, EXP_TOLERANCE, 0},
+{ 269, 1066084243u, 174689677u, 1079333374u, 3947057014u, 1072707243u, 3130733960u, 0, EXP_TOLERANCE, 0},
+{ 270, 1077878947u, 2023082423u, 3242081486u, 1169047927u, 1119748901u, 3426525989u, 0, EXP_TOLERANCE, 0},
+{ 271, 1070817355u, 3742487766u, 1043425732u, 194972788u, 1073064002u, 3585031582u, 0, EXP_TOLERANCE, 0},
+{ 272, 3220083283u, 2136071361u, 3211529757u, 993675115u, 1071160954u, 3515311890u, 0, EXP_TOLERANCE, 0},
+{ 273, 3219954837u, 210772141u, 3241441539u, 580731413u, 1071262863u, 2304851028u, 0, EXP_TOLERANCE, 0},
+{ 274, 1078111773u, 1751560711u, 1074522705u, 180987057u, 1129175206u, 2518765659u, 0, EXP_TOLERANCE, 0},
+{ 275, 1071997471u, 2552236599u, 1088658621u, 2112468655u, 1073690210u, 1525052105u, 0, EXP_TOLERANCE, 0},
+{ 276, 3213407865u, 1578223762u, 3224596567u, 2456166162u, 1072668094u, 738092801u, 0, EXP_TOLERANCE, 0},
+{ 277, 1070041301u, 2110924310u, 1086207177u, 3161208323u, 1072904904u, 3047488155u, 0, EXP_TOLERANCE, 0},
+{ 278, 3223474786u, 2352173188u, 1079361728u, 4070222179u, 1058769652u, 3906475321u, 0, EXP_TOLERANCE, 0},
+{ 279, 1080041384u, 2481562701u, 1090937016u, 3809489716u, 1267797634u, 404634930u, 0, EXP_TOLERANCE, 0},
+{ 280, 3215877019u, 330905705u, 1086260896u, 90264431u, 1072572396u, 1208844547u, 0, EXP_TOLERANCE, 0},
+{ 281, 1065895785u, 4162008079u, 3194387916u, 759522153u, 1072705752u, 3450625873u, 0, EXP_TOLERANCE, 0},
+{ 282, 1075772157u, 1839697482u, 3216442625u, 2211508949u, 1084361851u, 2955268254u, 0, EXP_TOLERANCE, 0},
+{ 283, 3227787115u, 3736863454u, 1063475914u, 3150741666u, 829092625u, 968779094u, 0, EXP_TOLERANCE, 0},
+{ 284, 1070223067u, 4200269406u, 3236646101u, 1061812176u, 1072932509u, 3212891973u, 0, EXP_TOLERANCE, 0},
+{ 285, 1074975099u, 106027290u, 3234978297u, 2245237549u, 1079745755u, 680984417u, 0, EXP_TOLERANCE, 0},
+{ 286, 3228109966u, 2132131375u, 3250483427u, 3449276437u, 769507420u, 1538427034u, 0, EXP_TOLERANCE, 0},
+{ 287, 1077854442u, 2334440944u, 1105423490u, 4004336184u, 1119135302u, 1452344798u, 0, EXP_TOLERANCE, 0},
+{ 288, 3220869856u, 4090088208u, 1042030013u, 3898658299u, 1070092575u, 3230411400u, 0, EXP_TOLERANCE, 0},
+{ 289, 3217345248u, 2272831437u, 3253082595u, 2639188641u, 1072378813u, 2389059511u, 0, EXP_TOLERANCE, 0},
+{ 290, 1069446748u, 1856594168u, 3189515294u, 4101853676u, 1072825748u, 3613517627u, 0, EXP_TOLERANCE, 0},
+{ 291, 1073915260u, 2211699255u, 3195060344u, 3865018604u, 1076138633u, 3271750546u, 0, EXP_TOLERANCE, 0},
+{ 292, 3227038370u, 996259334u, 3241496889u, 3782673116u, 923155228u, 4107521594u, 0, EXP_TOLERANCE, 0},
+{ 293, 1080256379u, 3840380763u, 1048674041u, 550040067u, 1307510065u, 928374556u, 0, EXP_TOLERANCE, 0},
+{ 294, 3229399497u, 95874100u, 3237232828u, 2645647822u, 377375137u, 719222175u, 0, EXP_TOLERANCE, 0},
+{ 295, 1065685736u, 3441419500u, 3252367038u, 876710419u, 1072704093u, 2246841165u, 0, EXP_TOLERANCE, 0},
+{ 296, 3226010640u, 2560836004u, 3199616543u, 1180840586u, 996949059u, 82980477u, 0, EXP_TOLERANCE, 0},
+{ 297, 3221602966u, 2218230392u, 3227485787u, 3947214579u, 1068555547u, 3858061400u, 0, EXP_TOLERANCE, 0},
+{ 298, 1075345350u, 1447312532u, 1081476588u, 780366847u, 1081890764u, 2057809468u, 0, EXP_TOLERANCE, 0},
+{ 299, 1073618219u, 2842113832u, 3216156731u, 225159029u, 1075463434u, 3769540376u, 0, EXP_TOLERANCE, 0},
+{ 300, 1079242825u, 1601981129u, 3234628869u, 2236538344u, 1193325070u, 2364090570u, 0, EXP_TOLERANCE, 0},
+{ 301, 1076784916u, 2194185737u, 3242362684u, 87913366u, 1095695295u, 2239129155u, 0, EXP_TOLERANCE, 0},
+{ 302, 3215861096u, 1346862963u, 1077836259u, 3604666660u, 1072573334u, 1410091035u, 0, EXP_TOLERANCE, 0},
+{ 303, 3218547435u, 3115209742u, 1099332326u, 1325101950u, 1072057026u, 3877451405u, 0, EXP_TOLERANCE, 0},
+{ 304, 3221400314u, 3889223100u, 1053247613u, 3371396923u, 1069077038u, 2922304680u, 0, EXP_TOLERANCE, 0},
+{ 305, 3220477868u, 4163120793u, 1075022670u, 1387631215u, 1070705523u, 1262184460u, 0, EXP_TOLERANCE, 0},
+{ 306, 3218064691u, 1532426189u, 1063168268u, 3397022615u, 1072232293u, 14882088u, 0, EXP_TOLERANCE, 0},
+{ 307, 3216761961u, 89324166u, 1079206060u, 3429424710u, 1072476762u, 2025275555u, 0, EXP_TOLERANCE, 0},
+{ 308, 3214345198u, 747591401u, 1072238381u, 2803213904u, 1072646638u, 1362298570u, 0, EXP_TOLERANCE, 0},
+{ 309, 1078530868u, 271904221u, 1044258318u, 1858545114u, 1148479724u, 2228394364u, 0, EXP_TOLERANCE, 0},
+{ 310, 3222826034u, 314958082u, 3249912496u, 2966213175u, 1063404822u, 2546095187u, 0, EXP_TOLERANCE, 0},
+{ 311, 3215005206u, 3119528953u, 3217179014u, 2908718240u, 1072624417u, 1982673129u, 0, EXP_TOLERANCE, 0},
+{ 312, 3226738936u, 2018361566u, 1100926600u, 3985805054u, 950839806u, 2828622982u, 0, EXP_TOLERANCE, 0},
+{ 313, 1073278308u, 409584884u, 3239758947u, 755795129u, 1074986774u, 588973461u, 0, EXP_TOLERANCE, 0},
+{ 314, 1074723870u, 1819156379u, 3251342302u, 2982669005u, 1078463413u, 1788076940u, 0, EXP_TOLERANCE, 0},
+{ 315, 1080591913u, 2080534280u, 3188254060u, 449171797u, 1369474257u, 3068381489u, 0, EXP_TOLERANCE, 0},
+{ 316, 1079179684u, 168744837u, 3214950009u, 1322217822u, 1187423881u, 280204842u, 0, EXP_TOLERANCE, 0},
+{ 317, 3229061076u, 3250487255u, 1062120700u, 1876195180u, 502358220u, 4092158339u, 0, EXP_TOLERANCE, 0},
+{ 318, 3223197752u, 1336400247u, 1098057903u, 3314079581u, 1061270312u, 2063251548u, 0, EXP_TOLERANCE, 0},
+{ 319, 3216261732u, 265025555u, 1063854282u, 3779482256u, 1072533680u, 2941193185u, 0, EXP_TOLERANCE, 0},
+{ 320, 1072543381u, 887044257u, 1054789618u, 2732056261u, 1074020119u, 1583710347u, 0, EXP_TOLERANCE, 0},
+{ 321, 1067932534u, 4027115185u, 3191764868u, 2940199511u, 1072742191u, 2686232784u, 0, EXP_TOLERANCE, 0},
+{ 322, 3216131643u, 2875684421u, 3227459837u, 2251967570u, 1072548762u, 3720766546u, 0, EXP_TOLERANCE, 0},
+{ 323, 1071633020u, 284173546u, 3238823679u, 3557800647u, 1073368685u, 2242917222u, 0, EXP_TOLERANCE, 0},
+{ 324, 1080487040u, 3147771266u, 3220110464u, 2933364246u, 1350032806u, 3038347863u, 0, EXP_TOLERANCE, 0},
+{ 325, 1071144616u, 3366183281u, 3234870843u, 537442654u, 1073179181u, 915714027u, 0, EXP_TOLERANCE, 0},
+{ 326, 3227341572u, 2529029548u, 3249882819u, 3781513577u, 895182279u, 740047972u, 0, EXP_TOLERANCE, 0},
+{ 327, 3219727810u, 1080845539u, 3206760016u, 911778687u, 1071458981u, 2588212980u, 0, EXP_TOLERANCE, 0},
+{ 328, 3213971132u, 469586759u, 1091830022u, 3080528840u, 1072658099u, 4263113631u, 0, EXP_TOLERANCE, 0},
+{ 329, 1075006224u, 2863108169u, 3225605506u, 2508274250u, 1079973897u, 1343663736u, 0, EXP_TOLERANCE, 0},
+{ 330, 3218167016u, 4080017377u, 3206492941u, 1470284690u, 1072195726u, 2669611838u, 0, EXP_TOLERANCE, 0},
+{ 331, 3217606150u, 3867917386u, 1102054928u, 3504746045u, 1072324220u, 3738189842u, 0, EXP_TOLERANCE, 0},
+{ 332, 1070813735u, 2962134101u, 3244741577u, 3390537350u, 1073062778u, 1341868663u, 0, EXP_TOLERANCE, 0},
+{ 333, 1077716053u, 1702237980u, 1071598971u, 1102587474u, 1115946680u, 2058865259u, 0, EXP_TOLERANCE, 0},
+{ 334, 3216601606u, 2180218657u, 3211592260u, 1206527853u, 1072494823u, 3525678913u, 0, EXP_TOLERANCE, 0},
+{ 335, 3215959112u, 394130786u, 3242511482u, 2437699868u, 1072567567u, 211465123u, 0, EXP_TOLERANCE, 0},
+{ 336, 1066257155u, 849581558u, 3252006507u, 2008614943u, 1072708613u, 2224607887u, 0, EXP_TOLERANCE, 0},
+{ 337, 3218528622u, 3128971673u, 3249137531u, 2773583059u, 1072063594u, 1861199787u, 0, EXP_TOLERANCE, 0},
+{ 338, 1076641258u, 590727700u, 3248651761u, 2183878539u, 1093973382u, 51932800u, 0, EXP_TOLERANCE, 0},
+{ 339, 1080127109u, 820687580u, 3208143496u, 1402434664u, 1283604000u, 2229435922u, 0, EXP_TOLERANCE, 0},
+{ 340, 3229222163u, 1873709254u, 3245167989u, 44275991u, 442816163u, 2556589127u, 0, EXP_TOLERANCE, 0},
+{ 341, 3213786001u, 1174874204u, 3208263730u, 2360372288u, 1072662264u, 3781223426u, 0, EXP_TOLERANCE, 0},
+{ 342, 1081834580u, 937573440u, 3208953761u, 211240241u, 1737879034u, 1339532059u, 0, EXP_TOLERANCE, 0},
+{ 343, 3226771718u, 2469774991u, 1043117070u, 3380071805u, 947847649u, 1283680172u, 0, EXP_TOLERANCE, 0},
+{ 344, 1069655378u, 442507560u, 3254252803u, 3257889649u, 1072848240u, 1357220231u, 0, EXP_TOLERANCE, 0},
+{ 345, 1071996248u, 1854921625u, 1049810168u, 2729627545u, 1073689017u, 2766820334u, 0, EXP_TOLERANCE, 0},
+{ 346, 3229546805u, 4001809575u, 3240128649u, 278261523u, 322987487u, 2511328647u, 0, EXP_TOLERANCE, 0},
+{ 347, 1077787510u, 1793907966u, 3238955714u, 398859249u, 1117634274u, 3075914843u, 0, EXP_TOLERANCE, 0},
+{ 348, 3216681187u, 2511916952u, 3219195283u, 1697158299u, 1072485838u, 3086667046u, 0, EXP_TOLERANCE, 0},
+{ 349, 1073131276u, 3230931724u, 3243897690u, 3508781585u, 1074823893u, 2387891840u, 0, EXP_TOLERANCE, 0},
+{ 350, 1081827510u, 1674254897u, 1046547577u, 217148561u, 1735342545u, 3735031445u, 0, EXP_TOLERANCE, 0},
+{ 351, 3218603986u, 3275604304u, 3194840159u, 2991205850u, 1072037461u, 2711189111u, 0, EXP_TOLERANCE, 0},
+{ 352, 3214123743u, 3509997278u, 3248888030u, 3897986511u, 1072653416u, 576737657u, 0, EXP_TOLERANCE, 0},
+{ 353, 1067105379u, 2156824613u, 1042295665u, 1239257646u, 1072720986u, 385023856u, 0, EXP_TOLERANCE, 0},
+{ 354, 3219555541u, 1073153314u, 3250031627u, 2567234990u, 1071622626u, 1879921992u, 0, EXP_TOLERANCE, 0},
+{ 355, 3213662084u, 4261696995u, 3197784432u, 323702024u, 1072664173u, 1494770321u, 0, EXP_TOLERANCE, 0},
+{ 356, 3226913781u, 4075177615u, 3202791065u, 1919006082u, 934660210u, 4071141554u, 0, EXP_TOLERANCE, 0},
+{ 357, 3225638525u, 386429966u, 1086504491u, 3698826164u, 1014131228u, 2849059877u, 0, EXP_TOLERANCE, 0},
+{ 358, 1075181462u, 1681986446u, 3194985869u, 3072950140u, 1080972819u, 4027497035u, 0, EXP_TOLERANCE, 0},
+{ 359, 3220457661u, 3719038997u, 1055433962u, 3331415058u, 1070728055u, 2502518029u, 0, EXP_TOLERANCE, 0},
+{ 360, 1070186897u, 2420250111u, 3238002206u, 1928661079u, 1072926968u, 3179169477u, 0, EXP_TOLERANCE, 0},
+{ 361, 1075622754u, 3679866727u, 3227386672u, 1273835792u, 1083468387u, 4108683448u, 0, EXP_TOLERANCE, 0},
+{ 362, 1065739986u, 2682092368u, 3234222284u, 1325425811u, 1072704521u, 3522344556u, 0, EXP_TOLERANCE, 0},
+{ 363, 1068895525u, 4175172697u, 3208346191u, 2130706153u, 1072787574u, 2645569776u, 0, EXP_TOLERANCE, 0},
+{ 364, 1078458136u, 1200784450u, 1083605096u, 1248595607u, 1145159070u, 3624009342u, 0, EXP_TOLERANCE, 0},
+{ 365, 3219133743u, 1897285171u, 3251296075u, 944966123u, 1071864797u, 3230578766u, 0, EXP_TOLERANCE, 0},
+{ 366, 3225642610u, 2270747330u, 3230692631u, 422503284u, 1013989767u, 3220011003u, 0, EXP_TOLERANCE, 0},
+{ 367, 1076780005u, 2857564741u, 1075647403u, 3308906709u, 1095620625u, 3220040566u, 0, EXP_TOLERANCE, 0},
+{ 368, 3216058010u, 1380066948u, 3232612906u, 2613634294u, 1072557351u, 3176396515u, 0, EXP_TOLERANCE, 0},
+{ 369, 1071230888u, 4022784584u, 1060483857u, 3264056381u, 1073211071u, 866665154u, 0, EXP_TOLERANCE, 0},
+{ 370, 1066657500u, 1778509100u, 3213146285u, 2665833973u, 1072713826u, 3324574262u, 0, EXP_TOLERANCE, 0},
+{ 371, 3219873028u, 1859175955u, 1079949560u, 4258450607u, 1071331100u, 1387314031u, 0, EXP_TOLERANCE, 0},
+{ 372, 1067151756u, 4128020197u, 1076266146u, 4122840980u, 1072721730u, 703093847u, 0, EXP_TOLERANCE, 0},
+{ 373, 3214154683u, 2454653987u, 3229487005u, 2977478685u, 1072652467u, 3648959943u, 0, EXP_TOLERANCE, 0},
+{ 374, 3229439235u, 1355181872u, 1095308770u, 436846481u, 362699701u, 144776434u, 0, EXP_TOLERANCE, 0},
+{ 375, 3227730934u, 2592856453u, 3247825559u, 3195234082u, 839453380u, 3215902683u, 0, EXP_TOLERANCE, 0},
+{ 376, 3222118023u, 3554670043u, 1091621009u, 3321236467u, 1067008394u, 515558083u, 0, EXP_TOLERANCE, 0},
+{ 377, 1072158561u, 1936670355u, 1095715713u, 2958468553u, 1073797675u, 3840516752u, 0, EXP_TOLERANCE, 0},
+{ 378, 3214311205u, 2960339502u, 1098808013u, 1044068983u, 1072647677u, 1015104521u, 0, EXP_TOLERANCE, 0},
+{ 379, 3215565553u, 4093388677u, 1095478112u, 1735930261u, 1072590826u, 1998582813u, 0, EXP_TOLERANCE, 0},
+{ 380, 1078457390u, 1807398746u, 3195743135u, 4261616162u, 1145132905u, 2733988366u, 0, EXP_TOLERANCE, 0},
+{ 381, 3218731378u, 3250576797u, 1059002384u, 3043079652u, 1071994341u, 3135803100u, 0, EXP_TOLERANCE, 0},
+{ 382, 1072352837u, 666051428u, 3208765404u, 1912684117u, 1073904876u, 2200829650u, 0, EXP_TOLERANCE, 0},
+{ 383, 1081467324u, 1949030179u, 1096388934u, 896459246u, 1602299239u, 4124280137u, 0, EXP_TOLERANCE, 0},
+{ 384, 1068980717u, 622499767u, 1066707637u, 1490260486u, 1072793392u, 3411156525u, 0, EXP_TOLERANCE, 0},
+{ 385, 1081522669u, 1490616165u, 3251242436u, 795675736u, 1622680601u, 1772451300u, 0, EXP_TOLERANCE, 0},
+{ 386, 1075701016u, 3662877092u, 3234317146u, 3200513112u, 1083933859u, 948582088u, 0, EXP_TOLERANCE, 0},
+{ 387, 1076748754u, 1356101968u, 3236536816u, 3062844611u, 1095205719u, 1389519343u, 0, EXP_TOLERANCE, 0},
+{ 388, 3220971216u, 2284484846u, 3219498359u, 3240896015u, 1069945740u, 300004641u, 0, EXP_TOLERANCE, 0},
+{ 389, 3225273929u, 494503287u, 1092811254u, 142673998u, 1027637252u, 1197719694u, 0, EXP_TOLERANCE, 0},
+{ 390, 3229057244u, 3394882641u, 3225306538u, 364852125u, 503719187u, 1185927887u, 0, EXP_TOLERANCE, 0},
+{ 391, 3222116035u, 193885269u, 1088149839u, 1359805831u, 1067014684u, 2719415674u, 0, EXP_TOLERANCE, 0},
+{ 392, 3216213422u, 592580907u, 3199560872u, 3086438952u, 1072539267u, 4261894756u, 0, EXP_TOLERANCE, 0},
+{ 393, 1070004424u, 1778008540u, 1049064687u, 73581647u, 1072899376u, 3317554069u, 0, EXP_TOLERANCE, 0},
+{ 394, 3227859230u, 233240285u, 1081923320u, 2710903921u, 815830717u, 753681861u, 0, EXP_TOLERANCE, 0},
+{ 395, 1072659495u, 3719878805u, 1079866720u, 3615458228u, 1074095657u, 776338417u, 0, EXP_TOLERANCE, 0},
+{ 396, 3221194724u, 3647632375u, 3247225271u, 3839959621u, 1069668000u, 3902990147u, 0, EXP_TOLERANCE, 0},
+{ 397, 1081381000u, 2232210456u, 3235434773u, 224271737u, 1570366929u, 1467736445u, 0, EXP_TOLERANCE, 0},
+{ 398, 3213975204u, 2134662911u, 3190390590u, 4239009051u, 1072657974u, 3724433639u, 0, EXP_TOLERANCE, 0},
+{ 399, 1075283265u, 2305279897u, 1077668039u, 1854523320u, 1081499061u, 1371511881u, 0, EXP_TOLERANCE, 0},
+{ 400, 3220912835u, 538224650u, 3206153057u, 1379649610u, 1070028577u, 3385463776u, 0, EXP_TOLERANCE, 0},
+{ 401, 3215284875u, 3683897920u, 3244167599u, 3647579469u, 1072607582u, 369746842u, 0, EXP_TOLERANCE, 0},
+{ 402, 1077698021u, 2694093608u, 1042775347u, 598406111u, 1115578102u, 2696598259u, 0, EXP_TOLERANCE, 0},
+{ 403, 3218975424u, 872706833u, 1084802480u, 2200602798u, 1071915306u, 2038804970u, 0, EXP_TOLERANCE, 0},
+{ 404, 1065408269u, 904146293u, 1060867322u, 1729685598u, 1072701905u, 2787254479u, 0, EXP_TOLERANCE, 0},
+{ 405, 3214569338u, 1894173462u, 3232800651u, 191960416u, 1072639801u, 138794756u, 0, EXP_TOLERANCE, 0},
+{ 406, 1078642431u, 3521028551u, 1054522089u, 3287274359u, 1153643349u, 3672113002u, 0, EXP_TOLERANCE, 0},
+{ 407, 1079658324u, 959640601u, 3201578263u, 4136915018u, 1231622977u, 2234964481u, 0, EXP_TOLERANCE, 0},
+{ 408, 1071345483u, 1553716379u, 1106027987u, 984725765u, 1073254457u, 2029348498u, 0, EXP_TOLERANCE, 0},
+{ 409, 3226249729u, 2287646644u, 3240329321u, 2276183378u, 985897502u, 1659813779u, 0, EXP_TOLERANCE, 0},
+{ 410, 1072403478u, 3940225170u, 3199544434u, 997572161u, 1073934490u, 3814688844u, 0, EXP_TOLERANCE, 0},
+{ 411, 3219059817u, 36116288u, 3206886566u, 4196602670u, 1071889028u, 622952862u, 0, EXP_TOLERANCE, 0},
+{ 412, 3225967213u, 3550227562u, 3207257983u, 2747744117u, 998936682u, 4215021001u, 0, EXP_TOLERANCE, 0},
+{ 413, 1081167454u, 507130047u, 1048359321u, 3229888373u, 1491488321u, 2514231187u, 0, EXP_TOLERANCE, 0},
+{ 414, 3221948202u, 2210969014u, 1081031001u, 1946786091u, 1067545951u, 134943692u, 0, EXP_TOLERANCE, 0},
+{ 415, 3224772654u, 4059150589u, 3189759234u, 1177045799u, 1039198095u, 3770974960u, 0, EXP_TOLERANCE, 0},
+{ 416, 1078423548u, 2664812822u, 1050343198u, 2034180320u, 1143517713u, 3731467255u, 0, EXP_TOLERANCE, 0},
+{ 417, 3220070573u, 1175750283u, 3235559706u, 1424491340u, 1071170763u, 285360716u, 0, EXP_TOLERANCE, 0},
+{ 418, 3219147073u, 1630036121u, 3231972785u, 3195479448u, 1071856759u, 825964156u, 0, EXP_TOLERANCE, 0},
+{ 419, 1077846963u, 2527029044u, 1046927050u, 4000723255u, 1118989351u, 3673409802u, 0, EXP_TOLERANCE, 0},
+{ 420, 1076820069u, 3335703647u, 3237349676u, 3869440059u, 1096040909u, 786910848u, 0, EXP_TOLERANCE, 0},
+{ 421, 1078850936u, 3888398377u, 3196041693u, 1290567220u, 1163247715u, 1366973945u, 0, EXP_TOLERANCE, 0},
+{ 422, 1071921950u, 3242451480u, 3248384948u, 707431021u, 1073617858u, 3148318263u, 0, EXP_TOLERANCE, 0},
+{ 423, 1075890477u, 2739665123u, 1060777905u, 1733073225u, 1085358008u, 2026080761u, 0, EXP_TOLERANCE, 0},
+{ 424, 1075371333u, 1297274853u, 3208848704u, 3341639139u, 1082084306u, 1161258137u, 0, EXP_TOLERANCE, 0},
+{ 425, 1066493885u, 2228057309u, 1084318902u, 1317851136u, 1072711223u, 1263590417u, 0, EXP_TOLERANCE, 0},
+{ 426, 1077769567u, 270039934u, 3241414679u, 3063626339u, 1117167369u, 251426608u, 0, EXP_TOLERANCE, 0},
+{ 427, 3220226926u, 83062251u, 3211262173u, 2659016437u, 1071018626u, 3607873799u, 0, EXP_TOLERANCE, 0},
+{ 428, 1080015246u, 3833539373u, 3206667189u, 1567476111u, 1264640185u, 3066665016u, 0, EXP_TOLERANCE, 0},
+{ 429, 3217777984u, 2382776852u, 3249232579u, 1546622468u, 1072289181u, 3303189231u, 0, EXP_TOLERANCE, 0},
+{ 430, 1076099255u, 1714300821u, 1104130938u, 4167591598u, 1087714517u, 3396587971u, 0, EXP_TOLERANCE, 0},
+{ 431, 1067869976u, 2798720100u, 1086978789u, 449990704u, 1072740147u, 1441545775u, 0, EXP_TOLERANCE, 0},
+{ 432, 3223858383u, 4039516226u, 3244344107u, 4272932619u, 1054317676u, 2225867290u, 0, EXP_TOLERANCE, 0},
+{ 433, 3221659865u, 1683007544u, 1091105663u, 3805494321u, 1068384828u, 2642772291u, 0, EXP_TOLERANCE, 0},
+{ 434, 3220852948u, 2072627412u, 1094383324u, 3394151662u, 1070118481u, 2781076629u, 0, EXP_TOLERANCE, 0},
+{ 435, 3220570024u, 1120106427u, 3223631624u, 3404608264u, 1070608094u, 3726035371u, 0, EXP_TOLERANCE, 0},
+{ 436, 1078985629u, 559918757u, 3205077053u, 908100198u, 1169510707u, 348797896u, 0, EXP_TOLERANCE, 0},
+{ 437, 1065746590u, 2026673913u, 3244833635u, 2844573214u, 1072704573u, 4160322489u, 0, EXP_TOLERANCE, 0},
+{ 438, 3229401435u, 3946837259u, 3234993796u, 3850406820u, 376626627u, 2645031468u, 0, EXP_TOLERANCE, 0},
+{ 439, 1070062721u, 3139330994u, 1046133568u, 1539650690u, 1072908126u, 3501052954u, 0, EXP_TOLERANCE, 0},
+{ 440, 3225171164u, 1554593884u, 3228899878u, 2813752562u, 1029949960u, 634658456u, 0, EXP_TOLERANCE, 0},
+{ 441, 1069087916u, 3804703138u, 1072931071u, 2053677923u, 1072800756u, 699656724u, 0, EXP_TOLERANCE, 0},
+{ 442, 3227038507u, 289355864u, 1078453818u, 2143066338u, 923143111u, 3108681133u, 0, EXP_TOLERANCE, 0},
+{ 443, 3216522792u, 2157691971u, 1106629150u, 110806409u, 1072503764u, 1811146510u, 0, EXP_TOLERANCE, 0},
+{ 444, 1075865563u, 3570399481u, 1085637605u, 180265334u, 1085048493u, 1043128358u, 0, EXP_TOLERANCE, 0},
+{ 445, 3216708822u, 558779875u, 3202046748u, 2338464653u, 1072482728u, 2560919037u, 0, EXP_TOLERANCE, 0},
+{ 446, 1066676984u, 1703969219u, 3229797258u, 1417521063u, 1072714137u, 992457887u, 0, EXP_TOLERANCE, 0},
+{ 447, 3225199349u, 3917440951u, 1051668894u, 3736066983u, 1029291645u, 1524244054u, 0, EXP_TOLERANCE, 0},
+{ 448, 1071043536u, 3106613409u, 1066627453u, 2735392257u, 1073142642u, 2422476262u, 0, EXP_TOLERANCE, 0},
+{ 449, 1071956828u, 2229777605u, 1065061963u, 2405869925u, 1073650949u, 990909907u, 0, EXP_TOLERANCE, 0},
+{ 450, 3225831741u, 3967957902u, 1057416138u, 3459188071u, 1005185820u, 1500159877u, 0, EXP_TOLERANCE, 0},
+{ 451, 1071784938u, 3699016825u, 3249713090u, 796144848u, 1073493066u, 2784789311u, 0, EXP_TOLERANCE, 0},
+{ 452, 3222524940u, 3285165564u, 3211948811u, 401510871u, 1065144087u, 2462551555u, 0, EXP_TOLERANCE, 0},
+{ 453, 1078529018u, 634857910u, 3199607513u, 914218057u, 1148406303u, 2060143941u, 0, EXP_TOLERANCE, 0},
+{ 454, 1076403304u, 2030735578u, 3233855943u, 965677531u, 1091237697u, 3806493702u, 0, EXP_TOLERANCE, 0},
+{ 455, 1075362511u, 3957229084u, 1051050470u, 3123776651u, 1082016435u, 3236122522u, 0, EXP_TOLERANCE, 0},
+{ 456, 3221863333u, 162122081u, 3239376395u, 108064594u, 1067746995u, 3736551116u, 0, EXP_TOLERANCE, 0},
+{ 457, 3224688874u, 869031839u, 3225020876u, 1344301606u, 1041127895u, 2468905470u, 0, EXP_TOLERANCE, 0},
+{ 458, 3219676354u, 946696117u, 3231825228u, 1700703647u, 1071506461u, 2633364322u, 0, EXP_TOLERANCE, 0},
+{ 459, 1074444299u, 3394168074u, 1076939786u, 1666995668u, 1077688097u, 1414459791u, 0, EXP_TOLERANCE, 0},
+{ 460, 3218211979u, 2488789804u, 3238508333u, 1506943664u, 1072178670u, 1219639660u, 0, EXP_TOLERANCE, 0},
+{ 461, 1072788663u, 3844072288u, 3202592279u, 2630019853u, 1074254177u, 2710454031u, 0, EXP_TOLERANCE, 0},
+{ 462, 3220983118u, 1244307192u, 3191297711u, 2540916692u, 1069929411u, 857160910u, 0, EXP_TOLERANCE, 0},
+{ 463, 3215791332u, 2871645739u, 3239081581u, 1440249115u, 1072577449u, 2224257486u, 0, EXP_TOLERANCE, 0},
+{ 464, 1072544937u, 1231934926u, 3236746788u, 603977748u, 1074021104u, 1153376056u, 0, EXP_TOLERANCE, 0},
+{ 465, 3214324057u, 2386312545u, 1063169277u, 2715234268u, 1072647284u, 1633360252u, 0, EXP_TOLERANCE, 0},
+{ 466, 1077317658u, 915867083u, 1046790892u, 3347417612u, 1106735782u, 2072797994u, 0, EXP_TOLERANCE, 0},
+{ 467, 1081866940u, 3553288373u, 1065698616u, 2906680663u, 1749870023u, 2025279999u, 0, EXP_TOLERANCE, 0},
+{ 468, 1066477746u, 2342364630u, 1051356723u, 4019093203u, 1072710966u, 3567891728u, 0, EXP_TOLERANCE, 0},
+{ 469, 3216897802u, 2911548084u, 1105282515u, 2476735795u, 1072461596u, 2505953515u, 0, EXP_TOLERANCE, 0},
+{ 470, 1068298564u, 1836216409u, 1101062307u, 2519592554u, 1072754229u, 2097073093u, 0, EXP_TOLERANCE, 0},
+{ 471, 1073323889u, 1235369496u, 3222946447u, 668087854u, 1075042085u, 432513398u, 0, EXP_TOLERANCE, 0},
+{ 472, 3217991780u, 2981820811u, 1059838516u, 2845580478u, 1072246576u, 866819828u, 0, EXP_TOLERANCE, 0},
+{ 473, 3214902934u, 1565550570u, 3217165795u, 4162017137u, 1072629667u, 221223936u, 0, EXP_TOLERANCE, 0},
+{ 474, 3224668466u, 2808968027u, 1055630096u, 1782326814u, 1041545264u, 3106633046u, 0, EXP_TOLERANCE, 0},
+{ 475, 1069305614u, 1492622658u, 3216653077u, 3972512122u, 1072815855u, 18398701u, 0, EXP_TOLERANCE, 0},
+{ 476, 3222171679u, 2722693603u, 3227814791u, 3169731970u, 1066847382u, 693197204u, 0, EXP_TOLERANCE, 0},
+{ 477, 3221052359u, 899763203u, 3207606001u, 2804747833u, 1069838003u, 3960237442u, 0, EXP_TOLERANCE, 0},
+{ 478, 3223330293u, 3789058912u, 3228095081u, 4135937628u, 1060420669u, 2863646027u, 0, EXP_TOLERANCE, 0},
+{ 479, 1069636566u, 1682808307u, 3206960335u, 232877759u, 1072845544u, 1293413822u, 0, EXP_TOLERANCE, 0},
+{ 480, 3226362846u, 2851963139u, 3246852961u, 2590862592u, 980672310u, 2121477897u, 0, EXP_TOLERANCE, 0},
+{ 481, 1074908950u, 2422232642u, 3234779662u, 290458310u, 1079342178u, 769697412u, 0, EXP_TOLERANCE, 0},
+{ 482, 3219059686u, 1082582386u, 1075605675u, 2602133689u, 1071889068u, 1943466506u, 0, EXP_TOLERANCE, 0},
+{ 483, 3226187123u, 1789635787u, 1059414278u, 1048286093u, 988843638u, 1761624532u, 0, EXP_TOLERANCE, 0},
+{ 484, 1079456174u, 231339448u, 1055573265u, 504907415u, 1212992503u, 57355760u, 0, EXP_TOLERANCE, 0},
+{ 485, 1071600069u, 1153251200u, 3204617090u, 1772013857u, 1073355194u, 2543994465u, 0, EXP_TOLERANCE, 0},
+{ 486, 1080676687u, 1082898276u, 3212089272u, 1449080862u, 1385133678u, 3383991944u, 0, EXP_TOLERANCE, 0},
+{ 487, 1076571101u, 3177299045u, 1058862813u, 809400815u, 1093156946u, 1324449489u, 0, EXP_TOLERANCE, 0},
+{ 488, 3223514518u, 1924429710u, 1056464743u, 3349283177u, 1058297638u, 3331281830u, 0, EXP_TOLERANCE, 0},
+{ 489, 3226599023u, 42238036u, 1042379500u, 2113559863u, 963765357u, 1028628530u, 0, EXP_TOLERANCE, 0},
+{ 490, 1071052699u, 3304403230u, 3217556703u, 58952646u, 1073145918u, 2870415022u, 0, EXP_TOLERANCE, 0},
+{ 491, 3218960986u, 1645486982u, 3224301095u, 3636267471u, 1071919855u, 1479310056u, 0, EXP_TOLERANCE, 0},
+{ 492, 1071150617u, 619402181u, 3235208235u, 557360557u, 1073181378u, 211059331u, 0, EXP_TOLERANCE, 0},
+{ 493, 3225655482u, 110029735u, 1046937383u, 984375729u, 1013314403u, 3677128438u, 0, EXP_TOLERANCE, 0},
+{ 494, 3213613986u, 4063688092u, 3203235744u, 1049950343u, 1072664914u, 2549757512u, 0, EXP_TOLERANCE, 0},
+{ 495, 1070739227u, 650996069u, 1054971928u, 3953359826u, 1073037809u, 838695363u, 0, EXP_TOLERANCE, 0},
+{ 496, 3222861501u, 66926332u, 1090561839u, 1379780888u, 1063250554u, 387700961u, 0, EXP_TOLERANCE, 0},
+{ 497, 3224016123u, 2803378256u, 1086057989u, 498534626u, 1052530954u, 1101873220u, 0, EXP_TOLERANCE, 0},
+{ 498, 1076327097u, 2846400785u, 1047142525u, 1375153550u, 1090398038u, 3404434636u, 0, EXP_TOLERANCE, 0},
+{ 499, 1066601297u, 2869128958u, 1070972315u, 4246440273u, 1072712931u, 3206431290u, 0, EXP_TOLERANCE, 0},
+{ 500, 1067561146u, 3112381207u, 1044430965u, 3981604561u, 1072730111u, 14195977u, 0, EXP_TOLERANCE, 0},
+{ 501, 3223914965u, 243303420u, 1093735824u, 1575581926u, 1053731509u, 904055362u, 0, EXP_TOLERANCE, 0},
+{ 502, 3225506509u, 3218865041u, 3204803496u, 3840388050u, 1020275468u, 1833594413u, 0, EXP_TOLERANCE, 0},
+{ 503, 1067289799u, 336846959u, 1052664471u, 3798336786u, 1072723947u, 4034846420u, 0, EXP_TOLERANCE, 0},
+{ 504, 1068537148u, 3639240976u, 1081202165u, 1844741676u, 1072763420u, 176306533u, 0, EXP_TOLERANCE, 0},
+{ 505, 3218196249u, 717293069u, 3211534283u, 582401011u, 1072184616u, 3222172175u, 0, EXP_TOLERANCE, 0},
+{ 506, 3228893840u, 3766248610u, 3196520332u, 1174437546u, 564150813u, 811276996u, 0, EXP_TOLERANCE, 0},
+{ 507, 1076091194u, 756959182u, 3204099341u, 1581804034u, 1087631618u, 1978209737u, 0, EXP_TOLERANCE, 0},
+{ 508, 3217340780u, 3560686300u, 3220980617u, 4277975772u, 1072379763u, 1155762898u, 0, EXP_TOLERANCE, 0},
+{ 509, 3218294684u, 2598148853u, 3217622194u, 3460421008u, 1072147770u, 346718411u, 0, EXP_TOLERANCE, 0},
+{ 510, 1071963704u, 136600515u, 3209934920u, 3340653128u, 1073657537u, 2596417839u, 0, EXP_TOLERANCE, 0},
+{ 511, 1078994518u, 1045480938u, 3251354609u, 4133432965u, 1170363966u, 1471292306u, 0, EXP_TOLERANCE, 0},
+{ 512, 1077967943u, 1630207738u, 3239996829u, 2393354808u, 1122481140u, 2643918337u, 0, EXP_TOLERANCE, 0},
+{ 513, 3213694690u, 3739770117u, 1059520750u, 3959551225u, 1072663671u, 23114429u, 0, EXP_TOLERANCE, 0},
+{ 514, 3223390473u, 1498861716u, 1091297147u, 847410798u, 1059730387u, 1062439242u, 0, EXP_TOLERANCE, 0},
+{ 515, 1073516688u, 983275314u, 3232538664u, 2244973629u, 1075304551u, 788448980u, 0, EXP_TOLERANCE, 0},
+{ 516, 1069529329u, 2353103845u, 3235718771u, 2978889966u, 1072831576u, 2964825654u, 0, EXP_TOLERANCE, 0},
+{ 517, 3229337896u, 1546972125u, 3249076079u, 1987349196u, 400067810u, 350725282u, 0, EXP_TOLERANCE, 0},
+{ 518, 3225636601u, 2769161072u, 1075207126u, 292616282u, 1014204187u, 2505832380u, 0, EXP_TOLERANCE, 0},
+{ 519, 3215440938u, 36855311u, 1052128202u, 1479039342u, 1072598248u, 1535663252u, 0, EXP_TOLERANCE, 0},
+{ 520, 1076417021u, 2027463605u, 1066023013u, 3369686340u, 1091432667u, 1056725485u, 0, EXP_TOLERANCE, 0},
+{ 521, 3215678541u, 3808681655u, 1054161346u, 1821773119u, 1072584120u, 3865333882u, 0, EXP_TOLERANCE, 0},
+{ 522, 1065851752u, 3175490326u, 3226879970u, 845687760u, 1072705404u, 3214402448u, 0, EXP_TOLERANCE, 0},
+{ 523, 1065371665u, 3124482451u, 3242748377u, 3259417226u, 1072701617u, 1556794065u, 0, EXP_TOLERANCE, 0},
+{ 524, 1067265791u, 2751606436u, 3236210939u, 3923142740u, 1072723561u, 3907206090u, 0, EXP_TOLERANCE, 0},
+{ 525, 1079966097u, 2016872044u, 3228408064u, 4201274408u, 1260053709u, 2351383485u, 0, EXP_TOLERANCE, 0},
+{ 526, 3215077894u, 1019916843u, 3219974785u, 1977881787u, 1072620028u, 1513873245u, 0, EXP_TOLERANCE, 0},
+{ 527, 3215207392u, 2060433318u, 1075872515u, 366073725u, 1072612232u, 1485589014u, 0, EXP_TOLERANCE, 0},
+{ 528, 3213200653u, 1098469906u, 1082900695u, 2349346832u, 1072671295u, 2138435974u, 0, EXP_TOLERANCE, 0},
+{ 529, 3218363315u, 3011196295u, 3252479932u, 2459281672u, 1072122586u, 3209321029u, 0, EXP_TOLERANCE, 0},
+{ 530, 3221334323u, 2843222682u, 1089275809u, 298982001u, 1069295228u, 2479655835u, 0, EXP_TOLERANCE, 0},
+{ 531, 1080766178u, 914741728u, 3203468059u, 2833809843u, 1401595225u, 1543027566u, 0, EXP_TOLERANCE, 0},
+{ 532, 3225229542u, 1274901962u, 3241535845u, 3759113509u, 1028668815u, 1805280638u, 0, EXP_TOLERANCE, 0},
+{ 533, 3227042074u, 2134927252u, 3253802671u, 3013731444u, 922860414u, 1506262932u, 0, EXP_TOLERANCE, 0},
+{ 534, 1080326973u, 2230655177u, 3254510616u, 1249674366u, 1320480180u, 3545707614u, 0, EXP_TOLERANCE, 0},
+{ 535, 1071359861u, 717357389u, 1083533731u, 3746683362u, 1073259985u, 785194633u, 0, EXP_TOLERANCE, 0},
+{ 536, 3220064570u, 834976849u, 3217357661u, 2465861779u, 1071175416u, 1040443015u, 0, EXP_TOLERANCE, 0},
+{ 537, 1066627637u, 1385714428u, 1053358395u, 3007113740u, 1072713351u, 479550567u, 0, EXP_TOLERANCE, 0},
+{ 538, 1068353711u, 599268545u, 3201368210u, 2309854744u, 1072756054u, 2342579642u, 0, EXP_TOLERANCE, 0},
+{ 539, 1073100182u, 2840234388u, 3232496515u, 333365983u, 1074792277u, 1476863741u, 0, EXP_TOLERANCE, 0},
+{ 540, 1066894301u, 3136078996u, 3194520860u, 2650572904u, 1072717606u, 314014954u, 0, EXP_TOLERANCE, 0},
+{ 541, 3224250507u, 2405805086u, 3251640319u, 324233833u, 1049818942u, 619300132u, 0, EXP_TOLERANCE, 0},
+{ 542, 1081533322u, 2589598340u, 3254677807u, 952438812u, 1626625304u, 2555502454u, 0, EXP_TOLERANCE, 0},
+{ 543, 3213232021u, 1922837702u, 3216892718u, 3535907549u, 1072670810u, 2392774352u, 0, EXP_TOLERANCE, 0},
+{ 544, 3226838652u, 261447440u, 3209805849u, 1150571079u, 941666308u, 2929954307u, 0, EXP_TOLERANCE, 0},
+{ 545, 1079028016u, 4026487528u, 1073152064u, 27340691u, 1173468543u, 273403284u, 0, EXP_TOLERANCE, 0},
+{ 546, 3222832236u, 338765118u, 1086225786u, 3207238249u, 1063376827u, 2552266259u, 0, EXP_TOLERANCE, 0},
+{ 547, 3215057071u, 1085283176u, 3187775111u, 1601194210u, 1072621284u, 3181137750u, 0, EXP_TOLERANCE, 0},
+{ 548, 1078937261u, 3031712790u, 3252307859u, 170666844u, 1167258064u, 3602398320u, 0, EXP_TOLERANCE, 0},
+{ 549, 3220959383u, 3148395674u, 1041913758u, 3306391490u, 1069962159u, 449105735u, 0, EXP_TOLERANCE, 0},
+{ 550, 3217005710u, 2205233857u, 3208100078u, 3993195511u, 1072449636u, 2341049361u, 0, EXP_TOLERANCE, 0},
+{ 551, 1071893912u, 4282766727u, 1072820377u, 1874778218u, 1073591653u, 3798859726u, 0, EXP_TOLERANCE, 0},
+{ 552, 3218173124u, 2920860798u, 3218070226u, 3104066154u, 1072193398u, 4039462005u, 0, EXP_TOLERANCE, 0},
+{ 553, 3217533263u, 969991373u, 3250596895u, 1734386152u, 1072339301u, 3336979462u, 0, EXP_TOLERANCE, 0},
+{ 554, 3226332906u, 1218740205u, 3239802737u, 2610078504u, 982042268u, 3949815583u, 0, EXP_TOLERANCE, 0},
+{ 555, 3217565578u, 1485218325u, 3220870240u, 3591664613u, 1072332599u, 1755137557u, 0, EXP_TOLERANCE, 0},
+{ 556, 3216754207u, 690157417u, 3190850619u, 4192347699u, 1072477631u, 3662215240u, 0, EXP_TOLERANCE, 0},
+{ 557, 1079276594u, 4009839784u, 1079670252u, 394167192u, 1196450945u, 2525536651u, 0, EXP_TOLERANCE, 0},
+{ 558, 3225122053u, 961532417u, 1092588071u, 2923790239u, 1031073549u, 1672191880u, 0, EXP_TOLERANCE, 0},
+{ 559, 3216462003u, 4174125604u, 1050682630u, 2169701868u, 1072510688u, 4180692824u, 0, EXP_TOLERANCE, 0},
+{ 560, 3227363835u, 4146748230u, 1087373950u, 2481478351u, 893135089u, 582298895u, 0, EXP_TOLERANCE, 0},
+{ 561, 1073842138u, 3984715440u, 1050421618u, 2446142566u, 1075963121u, 1824117845u, 0, EXP_TOLERANCE, 0},
+{ 562, 1076832374u, 936290150u, 1100614426u, 3625806370u, 1096171572u, 79506205u, 0, EXP_TOLERANCE, 0},
+{ 563, 1080913584u, 1866615265u, 3215651428u, 2337013350u, 1428810148u, 2464900529u, 0, EXP_TOLERANCE, 0},
+{ 564, 3229081054u, 712227971u, 1106004723u, 973148499u, 494989773u, 881372988u, 0, EXP_TOLERANCE, 0},
+{ 565, 3223796743u, 3409813738u, 3244817008u, 1933503498u, 1055057116u, 1987951892u, 0, EXP_TOLERANCE, 0},
+{ 566, 1075749429u, 3180389060u, 3228735703u, 83422217u, 1084263619u, 3719345681u, 0, EXP_TOLERANCE, 0},
+{ 567, 1074732996u, 556972671u, 3204582372u, 841555801u, 1078491082u, 3497361082u, 0, EXP_TOLERANCE, 0},
+{ 568, 1072864873u, 4189151332u, 1080874032u, 706326922u, 1074371849u, 3237121563u, 0, EXP_TOLERANCE, 0},
+{ 569, 1079374091u, 198291836u, 1057281892u, 2188836928u, 1205376783u, 2535783908u, 0, EXP_TOLERANCE, 0},
+{ 570, 1074946267u, 1219449298u, 3228734687u, 3504562743u, 1079557279u, 563112082u, 0, EXP_TOLERANCE, 0},
+{ 571, 3217153376u, 1776099219u, 1094316777u, 4188083896u, 1072420059u, 1952839512u, 0, EXP_TOLERANCE, 0},
+{ 572, 3214817228u, 2614400266u, 1073750227u, 3003203347u, 1072632265u, 3501612041u, 0, EXP_TOLERANCE, 0},
+{ 573, 3219225558u, 2959351406u, 1105603716u, 311851587u, 1071810451u, 740693120u, 0, EXP_TOLERANCE, 0},
+{ 574, 1076155826u, 865443613u, 1097532516u, 3622237781u, 1088443249u, 3543760780u, 0, EXP_TOLERANCE, 0},
+{ 575, 3223398058u, 447506102u, 3195759295u, 3603669725u, 1059633838u, 605796371u, 0, EXP_TOLERANCE, 0},
+{ 576, 1079015805u, 3934398273u, 1040996422u, 2968621268u, 1172360989u, 1233059955u, 0, EXP_TOLERANCE, 0},
+{ 577, 3215614193u, 784208771u, 1088764788u, 2182296421u, 1072587937u, 320113544u, 0, EXP_TOLERANCE, 0},
+{ 578, 3228409347u, 1527590526u, 3206961556u, 2823164069u, 714212086u, 3700796565u, 0, EXP_TOLERANCE, 0},
+{ 579, 3225109795u, 3876699591u, 3207481130u, 4028148535u, 1031355705u, 3297444173u, 0, EXP_TOLERANCE, 0},
+{ 580, 1076236154u, 2164249756u, 1059857743u, 1785169952u, 1089348091u, 3028702007u, 0, EXP_TOLERANCE, 0},
+{ 581, 1078172521u, 2079273665u, 1080303860u, 625760474u, 1131925960u, 2820657748u, 0, EXP_TOLERANCE, 0},
+{ 582, 3222291804u, 3636214836u, 1068367620u, 2932621925u, 1066501856u, 2508581844u, 0, EXP_TOLERANCE, 0},
+{ 583, 1066015468u, 4274131512u, 1047707755u, 92550763u, 1072706699u, 1716559078u, 0, EXP_TOLERANCE, 0},
+{ 584, 3215599337u, 2648933384u, 1084603503u, 3534304873u, 1072588819u, 508060763u, 0, EXP_TOLERANCE, 0},
+{ 585, 1070854691u, 3216750767u, 3191088629u, 547482628u, 1073076693u, 2158989442u, 0, EXP_TOLERANCE, 0},
+{ 586, 1070521958u, 1420360746u, 1080063101u, 1690029499u, 1072979223u, 1425260532u, 0, EXP_TOLERANCE, 0},
+{ 587, 3223563908u, 1908572179u, 1080112083u, 1228319033u, 1057745063u, 1750491909u, 0, EXP_TOLERANCE, 0},
+{ 588, 1067032546u, 500312015u, 3212368508u, 3864619086u, 1072719818u, 2566005358u, 0, EXP_TOLERANCE, 0},
+{ 589, 3221335610u, 4211343447u, 1087492676u, 4272583781u, 1069290704u, 1406122007u, 0, EXP_TOLERANCE, 0},
+{ 590, 1080518026u, 2382118000u, 1042665328u, 567154882u, 1355833620u, 2043686521u, 0, EXP_TOLERANCE, 0},
+{ 591, 1069547778u, 1435344339u, 3216303171u, 2275988178u, 1072832900u, 3711969349u, 0, EXP_TOLERANCE, 0},
+{ 592, 3219781499u, 3403659753u, 3218043030u, 1926480488u, 1071410667u, 198580343u, 0, EXP_TOLERANCE, 0},
+{ 593, 1074743231u, 1198845185u, 3225556149u, 1130089684u, 1078522694u, 2138026103u, 0, EXP_TOLERANCE, 0},
+{ 594, 3221614466u, 2183928090u, 1048403956u, 963834821u, 1068531570u, 1143881486u, 0, EXP_TOLERANCE, 0},
+{ 595, 1080701440u, 2120625396u, 1041006976u, 2137548527u, 1389637151u, 2814596158u, 0, EXP_TOLERANCE, 0},
+{ 596, 1080355870u, 586700956u, 1059670521u, 303891699u, 1325810327u, 2561465523u, 0, EXP_TOLERANCE, 0},
+{ 597, 3221091650u, 2509132460u, 1102827530u, 2205707903u, 1069788756u, 946327002u, 0, EXP_TOLERANCE, 0},
+{ 598, 3217443509u, 1229308263u, 3209170414u, 4206576047u, 1072358053u, 1505047828u, 0, EXP_TOLERANCE, 0},
+{ 599, 3221979137u, 4078010749u, 3199236456u, 733478972u, 1067480393u, 1883768308u, 0, EXP_TOLERANCE, 0},
+{ 600, 3215538376u, 4277541051u, 3199806921u, 397102023u, 1072592442u, 3112407863u, 0, EXP_TOLERANCE, 0},
+{ 601, 3214849381u, 900999594u, 3234720188u, 2530214248u, 1072631290u, 2136324251u, 0, EXP_TOLERANCE, 0},
+{ 602, 1074446396u, 4000609478u, 1096577064u, 4148592328u, 1077695508u, 2530213621u, 0, EXP_TOLERANCE, 0},
+{ 603, 1067542452u, 2154187873u, 3224392607u, 3957250362u, 1072729506u, 1888618017u, 0, EXP_TOLERANCE, 0},
+{ 604, 3221316336u, 2867079200u, 1101870326u, 921212001u, 1069359619u, 1291621322u, 0, EXP_TOLERANCE, 0},
+{ 605, 3223784706u, 674547716u, 1063216239u, 3929755226u, 1055176221u, 2342580293u, 0, EXP_TOLERANCE, 0},
+{ 606, 3225735787u, 3158182449u, 1043794244u, 3259056345u, 1009666296u, 2099303467u, 0, EXP_TOLERANCE, 0},
+{ 607, 3225242320u, 3002823940u, 1059511739u, 2832435794u, 1028307478u, 65827691u, 0, EXP_TOLERANCE, 0},
+{ 608, 3220450550u, 2196511929u, 1049973941u, 3672092877u, 1070736089u, 371341051u, 0, EXP_TOLERANCE, 0},
+{ 609, 1068263848u, 3655292191u, 1086438127u, 3567072906u, 1072753082u, 551440254u, 0, EXP_TOLERANCE, 0},
+{ 610, 3227458308u, 1617573614u, 3201863123u, 3090723732u, 884380609u, 990057858u, 0, EXP_TOLERANCE, 0},
+{ 611, 3223764196u, 679893506u, 3211547753u, 824081024u, 1055406136u, 1185397254u, 0, EXP_TOLERANCE, 0},
+{ 612, 1076947613u, 2285242807u, 1084999409u, 2221731406u, 1098199194u, 2093305428u, 0, EXP_TOLERANCE, 0},
+{ 613, 3217219424u, 1935990727u, 1088822246u, 1058156518u, 1072405754u, 3411302972u, 0, EXP_TOLERANCE, 0},
+{ 614, 1080819070u, 521023584u, 1059186903u, 4245163857u, 1411420761u, 1987577595u, 0, EXP_TOLERANCE, 0},
+{ 615, 1081871044u, 2312887617u, 3191771354u, 1885370807u, 1751362761u, 485435265u, 0, EXP_TOLERANCE, 0},
+{ 616, 3228836567u, 1796441468u, 1100030327u, 2772711004u, 585257982u, 1197588774u, 0, EXP_TOLERANCE, 0},
+{ 617, 3216859732u, 2095685003u, 1077984448u, 2100773742u, 1072465834u, 2188254173u, 0, EXP_TOLERANCE, 0},
+{ 618, 3213926140u, 2892538035u, 1042396334u, 4162200338u, 1072659482u, 3755395969u, 0, EXP_TOLERANCE, 0},
+{ 619, 3226997111u, 2177698116u, 3227557177u, 150832500u, 927022330u, 2114378896u, 0, EXP_TOLERANCE, 0},
+{ 620, 3213582312u, 607966734u, 3236250630u, 4164600559u, 1072665402u, 3794761595u, 0, EXP_TOLERANCE, 0},
+{ 621, 3219535540u, 2830122967u, 1046096700u, 3713346883u, 1071642511u, 1936011333u, 0, EXP_TOLERANCE, 0},
+{ 622, 3224615051u, 2314640506u, 3203696416u, 3276228872u, 1042769881u, 709365161u, 0, EXP_TOLERANCE, 0},
+{ 623, 3219203763u, 469331883u, 3249037349u, 2999233437u, 1071823137u, 3035360404u, 0, EXP_TOLERANCE, 0},
+{ 624, 1079556219u, 560886625u, 1091899487u, 748795120u, 1222196219u, 1766795176u, 0, EXP_TOLERANCE, 0},
+{ 625, 1067712650u, 2958421324u, 1092569414u, 3235243477u, 1072735023u, 111129972u, 0, EXP_TOLERANCE, 0},
+{ 626, 3213998017u, 3221475559u, 1043038304u, 915608434u, 1072657274u, 270655903u, 0, EXP_TOLERANCE, 0},
+{ 627, 1073294682u, 3007808652u, 3216682290u, 2531019474u, 1075006367u, 3946889810u, 0, EXP_TOLERANCE, 0},
+{ 628, 3226300359u, 1767658578u, 3237045269u, 2313128318u, 983611715u, 1963249883u, 0, EXP_TOLERANCE, 0},
+{ 629, 3219006500u, 1926845182u, 1066835624u, 1783256828u, 1071905568u, 1550065103u, 0, EXP_TOLERANCE, 0},
+{ 630, 1065741453u, 90378038u, 1057168870u, 164358218u, 1072704533u, 1716133177u, 0, EXP_TOLERANCE, 0},
+{ 631, 1081693348u, 1610524680u, 1085283851u, 2903496007u, 1685728394u, 520929572u, 0, EXP_TOLERANCE, 0},
+{ 632, 1075489858u, 4274321404u, 3202913591u, 720121831u, 1082693625u, 2845193504u, 0, EXP_TOLERANCE, 0},
+{ 633, 1067982472u, 2034778236u, 1071133763u, 1413236391u, 1072743826u, 988128607u, 0, EXP_TOLERANCE, 0},
+{ 634, 1067840244u, 1489112261u, 1076691395u, 348210906u, 1072739177u, 317516419u, 0, EXP_TOLERANCE, 0},
+{ 635, 3217229677u, 2797651324u, 3224410527u, 2374818327u, 1072403544u, 1037637956u, 0, EXP_TOLERANCE, 0},
+{ 636, 1077801496u, 1823161666u, 3197810695u, 3119680047u, 1117940019u, 2045262415u, 0, EXP_TOLERANCE, 0},
+{ 637, 1072218792u, 3420950657u, 1087084743u, 2136638961u, 1073829855u, 2407470294u, 0, EXP_TOLERANCE, 0},
+{ 638, 1073047952u, 3554566429u, 1062907717u, 2736702589u, 1074692071u, 2140620171u, 0, EXP_TOLERANCE, 0},
+{ 639, 3227062875u, 2928437580u, 3187765027u, 1393427873u, 920907098u, 4135143034u, 0, EXP_TOLERANCE, 0},
+{ 640, 3218738745u, 189447067u, 1051643315u, 828663513u, 1071991888u, 870021011u, 0, EXP_TOLERANCE, 0},
+{ 641, 1068042509u, 2852350928u, 1045683757u, 673354280u, 1072745794u, 2790514124u, 0, EXP_TOLERANCE, 0},
+{ 642, 1065966397u, 3589563265u, 3248741629u, 812657927u, 1072706311u, 791385654u, 0, EXP_TOLERANCE, 0},
+{ 643, 3213679498u, 1766416701u, 1100392103u, 2185373290u, 1072663905u, 227240416u, 0, EXP_TOLERANCE, 0},
+{ 644, 3220275389u, 3763582673u, 3191965790u, 388374829u, 1070952181u, 2061416280u, 0, EXP_TOLERANCE, 0},
+{ 645, 1075440832u, 1187403069u, 1075300235u, 336640304u, 1082418698u, 3092350278u, 0, EXP_TOLERANCE, 0},
+{ 646, 1081906155u, 1718795752u, 3243118752u, 683369237u, 1764318904u, 2150807698u, 0, EXP_TOLERANCE, 0},
+{ 647, 3218132129u, 1863545307u, 1069449477u, 3418627399u, 1072209087u, 2449778810u, 0, EXP_TOLERANCE, 0},
+{ 648, 1072747022u, 3295607249u, 1068878592u, 1633297809u, 1074193404u, 2476970617u, 0, EXP_TOLERANCE, 0},
+{ 649, 1070481463u, 2585980994u, 3236670483u, 1286750688u, 1072972796u, 2203733059u, 0, EXP_TOLERANCE, 0},
+{ 650, 1067128553u, 15816845u, 3233249283u, 2491924775u, 1072721357u, 3513632630u, 0, EXP_TOLERANCE, 0},
+{ 651, 1065481693u, 1051983351u, 1049180786u, 1474421917u, 1072702484u, 724278735u, 0, EXP_TOLERANCE, 0},
+{ 652, 3216978165u, 2003816032u, 1086050104u, 668090487u, 1072452682u, 906509909u, 0, EXP_TOLERANCE, 0},
+{ 653, 1068284677u, 3671484625u, 1067020039u, 430024694u, 1072753770u, 1677416970u, 0, EXP_TOLERANCE, 0},
+{ 654, 1072639990u, 3991830201u, 3207808714u, 1021245839u, 1074082674u, 1254795532u, 0, EXP_TOLERANCE, 0},
+{ 655, 1071534423u, 4255801807u, 3207681716u, 1926756877u, 1073328631u, 2248030752u, 0, EXP_TOLERANCE, 0},
+{ 656, 1067869425u, 4167786896u, 1077097744u, 1775517981u, 1072740129u, 1534603149u, 0, EXP_TOLERANCE, 0},
+{ 657, 1076164794u, 3187518564u, 1082437406u, 944672491u, 1088519022u, 2668154428u, 0, EXP_TOLERANCE, 0},
+{ 658, 1068240650u, 953085192u, 3227310828u, 3459155777u, 1072752316u, 293671938u, 0, EXP_TOLERANCE, 0},
+{ 659, 1072648234u, 1908555460u, 1073640207u, 260441967u, 1074088146u, 2650479583u, 0, EXP_TOLERANCE, 0},
+{ 660, 1072462486u, 250762477u, 1072582645u, 2886742039u, 1073969911u, 1983590134u, 0, EXP_TOLERANCE, 0},
+{ 661, 3228885910u, 786180031u, 3197734769u, 2788918312u, 567029081u, 1303524864u, 0, EXP_TOLERANCE, 0},
+{ 662, 3225074643u, 2055912467u, 3244244909u, 1394142937u, 1032164285u, 2520921127u, 0, EXP_TOLERANCE, 0},
+{ 663, 1072758713u, 91984146u, 3222252812u, 4126276047u, 1074210222u, 4046645726u, 0, EXP_TOLERANCE, 0},
+{ 664, 1075048683u, 3942715706u, 3239316352u, 410676547u, 1080182733u, 198592884u, 0, EXP_TOLERANCE, 0},
+{ 665, 3215335062u, 86296211u, 1085850694u, 649202596u, 1072604575u, 3552442703u, 0, EXP_TOLERANCE, 0},
+{ 666, 3226492024u, 3069064472u, 3237358008u, 23209276u, 973600692u, 3560381944u, 0, EXP_TOLERANCE, 0},
+{ 667, 1074943832u, 1867297860u, 1072956607u, 2513414118u, 1079542291u, 1065513243u, 0, EXP_TOLERANCE, 0},
+{ 668, 3228513251u, 3171788768u, 3235208783u, 162138697u, 695028140u, 3343634362u, 0, EXP_TOLERANCE, 0},
+{ 669, 1075436999u, 1245110700u, 1081653954u, 2584994077u, 1082399294u, 168782383u, 0, EXP_TOLERANCE, 0},
+{ 670, 3226635752u, 3347226587u, 1058962932u, 2291943376u, 960392171u, 946952000u, 0, EXP_TOLERANCE, 0},
+{ 671, 1070433398u, 966940828u, 1060726420u, 2798041096u, 1072965208u, 1430944161u, 0, EXP_TOLERANCE, 0},
+{ 672, 1072793759u, 2487340727u, 3223786370u, 4105954991u, 1074261781u, 2671510586u, 0, EXP_TOLERANCE, 0},
+{ 673, 3228193553u, 1671039260u, 1086395032u, 3745833360u, 754060863u, 1699618982u, 0, EXP_TOLERANCE, 0},
+{ 674, 1069661709u, 651714217u, 1047070645u, 2130549237u, 1072849149u, 67549253u, 0, EXP_TOLERANCE, 0},
+{ 675, 3217601491u, 1423000172u, 3247822717u, 1551488170u, 1072325181u, 206424647u, 0, EXP_TOLERANCE, 0},
+{ 676, 3216277371u, 921077236u, 3213332351u, 1431049019u, 1072531875u, 1612803421u, 0, EXP_TOLERANCE, 0},
+{ 677, 1071704599u, 655715547u, 3190985373u, 1527556471u, 1073423595u, 3219744316u, 0, EXP_TOLERANCE, 0},
+{ 678, 3222412099u, 4110878657u, 3251297180u, 879739345u, 1065756487u, 2212366251u, 0, EXP_TOLERANCE, 0},
+{ 679, 1076367578u, 2623955764u, 1093699897u, 1216444475u, 1090816075u, 3859513056u, 0, EXP_TOLERANCE, 0},
+{ 680, 1078274115u, 107442539u, 3239767031u, 1149813329u, 1136691095u, 2525054892u, 0, EXP_TOLERANCE, 0},
+{ 681, 3224008056u, 1761361082u, 3226030205u, 1121849716u, 1052648890u, 3257183639u, 0, EXP_TOLERANCE, 0},
+{ 682, 3226455627u, 2534144722u, 1044223733u, 3512285706u, 976403563u, 1539377918u, 0, EXP_TOLERANCE, 0},
+{ 683, 3218137533u, 4073670723u, 1050729852u, 3034818849u, 1072207010u, 2190601685u, 0, EXP_TOLERANCE, 0},
+{ 684, 1081013054u, 1421423503u, 1060278048u, 1397153092u, 1447201916u, 3645912721u, 0, EXP_TOLERANCE, 0},
+{ 685, 3220567557u, 1649206019u, 1104525577u, 1267104290u, 1070610592u, 3909007411u, 0, EXP_TOLERANCE, 0},
+{ 686, 3213419345u, 3775270392u, 1040251850u, 68667319u, 1072667916u, 4071660364u, 0, EXP_TOLERANCE, 0},
+{ 687, 3216913812u, 3099226694u, 3254103006u, 4020102648u, 1072459817u, 1012804737u, 0, EXP_TOLERANCE, 0},
+{ 688, 3216271776u, 3718441177u, 3215643451u, 4032951536u, 1072532520u, 4153916148u, 0, EXP_TOLERANCE, 0},
+{ 689, 1066151467u, 508048351u, 3210196713u, 1707937896u, 1072707776u, 258625177u, 0, EXP_TOLERANCE, 0},
+{ 690, 3215388843u, 2784738160u, 1073435430u, 1109346010u, 1072601359u, 769624204u, 0, EXP_TOLERANCE, 0},
+{ 691, 3222579562u, 3331916473u, 3238794568u, 2707019594u, 1064788968u, 937187646u, 0, EXP_TOLERANCE, 0},
+{ 692, 1078502606u, 3093165197u, 1072894805u, 2853215019u, 1147222804u, 2594603642u, 0, EXP_TOLERANCE, 0},
+{ 693, 3219727867u, 2135797997u, 1048399559u, 2941926126u, 1071458929u, 1831646623u, 0, EXP_TOLERANCE, 0},
+{ 694, 1067305348u, 2083412145u, 3249335391u, 507212448u, 1072724198u, 176926544u, 0, EXP_TOLERANCE, 0},
+{ 695, 1074315175u, 4270176401u, 3246546709u, 3288753319u, 1077284434u, 1533074967u, 0, EXP_TOLERANCE, 0},
+{ 696, 3228009919u, 3692175292u, 3197271515u, 3989064196u, 787929498u, 530433217u, 0, EXP_TOLERANCE, 0},
+{ 697, 3228623066u, 3111924274u, 1066772558u, 59281695u, 664079135u, 3761950200u, 0, EXP_TOLERANCE, 0},
+{ 698, 1071878215u, 2135245466u, 3208804313u, 3846547392u, 1073577134u, 3594627032u, 0, EXP_TOLERANCE, 0},
+{ 699, 1079149171u, 972051266u, 3222814246u, 3539700586u, 1184638055u, 2607924773u, 0, EXP_TOLERANCE, 0},
+{ 700, 3216597418u, 330951080u, 1079189813u, 583922384u, 1072495297u, 3853879766u, 0, EXP_TOLERANCE, 0},
+{ 701, 1077057180u, 1711944085u, 1104170032u, 643991456u, 1100755327u, 436337680u, 0, EXP_TOLERANCE, 0},
+{ 702, 3224992365u, 2072550721u, 3250147641u, 4280263530u, 1034088022u, 2955452855u, 0, EXP_TOLERANCE, 0},
+{ 703, 3213944226u, 1566376352u, 1067251433u, 72984588u, 1072658926u, 3741224203u, 0, EXP_TOLERANCE, 0},
+{ 704, 1079547929u, 3103043079u, 1045853123u, 410067497u, 1221488103u, 692790947u, 0, EXP_TOLERANCE, 0},
+{ 705, 3219818221u, 1910366299u, 1081770885u, 634683073u, 1071378326u, 3640151292u, 0, EXP_TOLERANCE, 0},
+{ 706, 1075239232u, 2226525875u, 3224149290u, 2126302825u, 1081272417u, 3298903549u, 0, EXP_TOLERANCE, 0},
+{ 707, 1073150247u, 1383818978u, 3193885723u, 1220372650u, 1074843648u, 1040872434u, 0, EXP_TOLERANCE, 0},
+{ 708, 1071725823u, 1953339096u, 1077176252u, 1476516558u, 1073441690u, 3533967691u, 0, EXP_TOLERANCE, 0},
+{ 709, 1072383456u, 1306277326u, 1079089150u, 4093716191u, 1073922696u, 2073217550u, 0, EXP_TOLERANCE, 0},
+{ 710, 3223711603u, 51750045u, 3242913901u, 4256866157u, 1056052895u, 2162728962u, 0, EXP_TOLERANCE, 0},
+{ 711, 3213959335u, 2163853087u, 3232053146u, 2962422808u, 1072658462u, 2104272775u, 0, EXP_TOLERANCE, 0},
+{ 712, 1074468369u, 1618388148u, 3233154824u, 3711953164u, 1077774967u, 2677827653u, 0, EXP_TOLERANCE, 0},
+{ 713, 3227993634u, 357108214u, 3202294604u, 2306775262u, 790944380u, 765011821u, 0, EXP_TOLERANCE, 0},
+{ 714, 3216584150u, 2571356437u, 3249064063u, 2394851808u, 1072496800u, 1660021973u, 0, EXP_TOLERANCE, 0},
+{ 715, 3224196635u, 4273880094u, 1103698617u, 3578832032u, 1050450775u, 303911533u, 0, EXP_TOLERANCE, 0},
+{ 716, 3223989517u, 2091068742u, 3228270226u, 3980489730u, 1052859686u, 2610368796u, 0, EXP_TOLERANCE, 0},
+{ 717, 3222725296u, 2772307714u, 1051008486u, 32546576u, 1063965846u, 2154006417u, 0, EXP_TOLERANCE, 0},
+{ 718, 3225500575u, 2143788498u, 3195498043u, 3630119231u, 1020485834u, 409157440u, 0, EXP_TOLERANCE, 0},
+{ 719, 3215410151u, 2527385594u, 3240503648u, 3482095012u, 1072600086u, 811621435u, 0, EXP_TOLERANCE, 0},
+{ 720, 3226440159u, 2690097362u, 1068598730u, 2360266862u, 977144307u, 2410462353u, 0, EXP_TOLERANCE, 0},
+{ 721, 1070392205u, 2673272949u, 1082639557u, 522449749u, 1072958739u, 2923917591u, 0, EXP_TOLERANCE, 0},
+{ 722, 1081355475u, 3596379400u, 3242016775u, 2002293002u, 1560941176u, 3057535830u, 0, EXP_TOLERANCE, 0},
+{ 723, 1080565288u, 4113224369u, 3222122439u, 2152316893u, 1364491948u, 2667631927u, 0, EXP_TOLERANCE, 0},
+{ 724, 3220796716u, 31662602u, 1047721249u, 1747087514u, 1070207704u, 1554554093u, 0, EXP_TOLERANCE, 0},
+{ 725, 3228443661u, 2489659568u, 1097051253u, 277506957u, 707885899u, 1135160826u, 0, EXP_TOLERANCE, 0},
+{ 726, 3213421930u, 3850162281u, 3213841942u, 438724093u, 1072667877u, 194850427u, 0, EXP_TOLERANCE, 0},
+{ 727, 1079663895u, 2431814052u, 1075518084u, 2672434118u, 1232182675u, 340027527u, 0, EXP_TOLERANCE, 0},
+{ 728, 3227434095u, 391606792u, 1048184750u, 4168944276u, 886619642u, 2173937429u, 0, EXP_TOLERANCE, 0},
+{ 729, 3227869472u, 457529672u, 3201090276u, 72407935u, 813892000u, 300809617u, 0, EXP_TOLERANCE, 0},
+{ 730, 3220817871u, 3954981400u, 1052053242u, 2411049585u, 1070173574u, 549649836u, 0, EXP_TOLERANCE, 0},
+{ 731, 1076742907u, 485456950u, 1088415093u, 1655397424u, 1095138487u, 1354370438u, 0, EXP_TOLERANCE, 0},
+{ 732, 3215011644u, 1551748070u, 3236871640u, 1329701152u, 1072624028u, 1513346128u, 0, EXP_TOLERANCE, 0},
+{ 733, 3221493394u, 3099222537u, 1104984570u, 4293792842u, 1068812430u, 62941796u, 0, EXP_TOLERANCE, 0},
+{ 734, 3216532617u, 3603065260u, 3197735968u, 2402359253u, 1072502647u, 2362417431u, 0, EXP_TOLERANCE, 0},
+{ 735, 3215601800u, 3961208159u, 3219057584u, 2340553876u, 1072588672u, 3579521348u, 0, EXP_TOLERANCE, 0},
+{ 736, 1073833333u, 4014841779u, 3197672877u, 3697233334u, 1075943590u, 4186803204u, 0, EXP_TOLERANCE, 0},
+{ 737, 3219567113u, 1403876392u, 3254028950u, 921363393u, 1071611207u, 2326666261u, 0, EXP_TOLERANCE, 0},
+{ 738, 1082085982u, 1862576361u, 3194031708u, 2476290925u, 1830816471u, 2702820797u, 0, EXP_TOLERANCE, 0},
+{ 739, 1067487560u, 1454212851u, 1088378861u, 3400401866u, 1072727733u, 836581379u, 0, EXP_TOLERANCE, 0},
+{ 740, 1074406809u, 552676385u, 3188635745u, 3778112968u, 1077560487u, 3057135642u, 0, EXP_TOLERANCE, 0},
+{ 741, 3219555010u, 1199568671u, 3225679997u, 46947405u, 1071623151u, 3836040209u, 0, EXP_TOLERANCE, 0},
+{ 742, 1074539809u, 2596231448u, 3253943728u, 2219151748u, 1077996857u, 995998522u, 0, EXP_TOLERANCE, 0},
+{ 743, 1071769915u, 4119719558u, 3222036299u, 1275474618u, 1073479873u, 114508863u, 0, EXP_TOLERANCE, 0},
+{ 744, 3226277175u, 3347296825u, 1101507910u, 1254014794u, 984676144u, 3717441086u, 0, EXP_TOLERANCE, 0},
+{ 745, 1076779960u, 673775040u, 1070743626u, 244126093u, 1095619946u, 3392967245u, 0, EXP_TOLERANCE, 0},
+{ 746, 3216831338u, 1832066983u, 1051358028u, 3262483417u, 1072469001u, 2438383671u, 0, EXP_TOLERANCE, 0},
+{ 747, 1074413872u, 3962610501u, 3198598777u, 849269178u, 1077583838u, 3412069925u, 0, EXP_TOLERANCE, 0},
+{ 748, 3224988140u, 2497516122u, 3254374111u, 2821429629u, 1034170638u, 3098720309u, 0, EXP_TOLERANCE, 0},
+{ 749, 1074139136u, 2805941787u, 3217785843u, 779131141u, 1076856794u, 1761248984u, 0, EXP_TOLERANCE, 0},
+{ 750, 3222714382u, 723423605u, 1084533420u, 627282213u, 1064040601u, 4058248859u, 0, EXP_TOLERANCE, 0},
+{ 751, 3220141984u, 4292778869u, 1078101071u, 1676860147u, 1071116419u, 1193771065u, 0, EXP_TOLERANCE, 0},
+{ 752, 1074191350u, 3528118587u, 3194648564u, 2363260897u, 1076980368u, 633116683u, 0, EXP_TOLERANCE, 0},
+{ 753, 3214917975u, 1307010018u, 1061248120u, 1468743108u, 1072629211u, 1389200168u, 0, EXP_TOLERANCE, 0},
+{ 754, 3227708771u, 107905661u, 3226089788u, 1943427674u, 843541216u, 3065091785u, 0, EXP_TOLERANCE, 0},
+{ 755, 3213396365u, 760006940u, 1054265604u, 1749976597u, 1072668271u, 3069507900u, 0, EXP_TOLERANCE, 0},
+{ 756, 3225190472u, 2787503556u, 1081282610u, 1195841206u, 1029536384u, 461530301u, 0, EXP_TOLERANCE, 0},
+{ 757, 3213822252u, 545462045u, 3208381743u, 1981311808u, 1072661706u, 3884293482u, 0, EXP_TOLERANCE, 0},
+{ 758, 1070669320u, 3657978397u, 1104463616u, 3501253426u, 1073014782u, 1116550155u, 0, EXP_TOLERANCE, 0},
+{ 759, 1067709649u, 1804177501u, 3210693633u, 3606766729u, 1072734925u, 2164791361u, 0, EXP_TOLERANCE, 0},
+{ 760, 1074759727u, 1336278526u, 1043741618u, 3165279431u, 1078574960u, 112244839u, 0, EXP_TOLERANCE, 0},
+{ 761, 1069103403u, 1599382075u, 1058018527u, 4212580517u, 1072801823u, 3428114030u, 0, EXP_TOLERANCE, 0},
+{ 762, 3217988086u, 3007589929u, 3202026547u, 2792028313u, 1072247303u, 707355694u, 0, EXP_TOLERANCE, 0},
+{ 763, 3228965522u, 1866066996u, 1060329048u, 3727175322u, 537617132u, 2682837865u, 0, EXP_TOLERANCE, 0},
+{ 764, 3215193859u, 150890940u, 1056025306u, 3082724735u, 1072613045u, 2896088168u, 0, EXP_TOLERANCE, 0},
+{ 765, 1071446123u, 80400395u, 1093584426u, 3478941315u, 1073293550u, 1633279969u, 0, EXP_TOLERANCE, 0},
+{ 766, 3228571942u, 4050954182u, 3219263194u, 2537475930u, 682960060u, 281321075u, 0, EXP_TOLERANCE, 0},
+{ 767, 1071133327u, 2881752155u, 3212589299u, 2559651278u, 1073175056u, 2501448914u, 0, EXP_TOLERANCE, 0},
+{ 768, 3228044784u, 440309030u, 3214267461u, 3788040806u, 781499599u, 1484254395u, 0, EXP_TOLERANCE, 0},
+{ 769, 1080553671u, 918813144u, 3208535698u, 1607035904u, 1362352642u, 4120585298u, 0, EXP_TOLERANCE, 0},
+{ 770, 1066254699u, 2497054124u, 1089139147u, 2549609010u, 1072708594u, 225519014u, 0, EXP_TOLERANCE, 0},
+{ 771, 1066960585u, 790219083u, 1054657139u, 2797979479u, 1072718666u, 1434868292u, 0, EXP_TOLERANCE, 0},
+{ 772, 1070364312u, 1149462078u, 1095765205u, 3879963182u, 1072954377u, 2014673971u, 0, EXP_TOLERANCE, 0},
+{ 773, 3216361301u, 2684353926u, 3205212854u, 1732474928u, 1072522215u, 2345875229u, 0, EXP_TOLERANCE, 0},
+{ 774, 1079508325u, 2742237025u, 1051317716u, 3386396147u, 1217770709u, 1976234612u, 0, EXP_TOLERANCE, 0},
+{ 775, 1071619594u, 3408320912u, 1103071166u, 4233059513u, 1073363176u, 268602029u, 0, EXP_TOLERANCE, 0},
+{ 776, 1071155004u, 1077495917u, 1088399968u, 433115118u, 1073182986u, 1009302603u, 0, EXP_TOLERANCE, 0},
+{ 777, 3217130484u, 841366493u, 1051716814u, 4121125128u, 1072425043u, 3371760020u, 0, EXP_TOLERANCE, 0},
+{ 778, 1070923540u, 321857207u, 1089128010u, 1149988239u, 1073100393u, 3087266675u, 0, EXP_TOLERANCE, 0},
+{ 779, 3226668295u, 799866606u, 3197637091u, 3924438208u, 957395551u, 739998359u, 0, EXP_TOLERANCE, 0},
+{ 780, 3213082986u, 2002049816u, 1077053447u, 2240354761u, 1072673115u, 2550101486u, 0, EXP_TOLERANCE, 0},
+{ 781, 3222714827u, 478939968u, 1097035749u, 1066716440u, 1064037493u, 846934361u, 0, EXP_TOLERANCE, 0},
+{ 782, 3224085033u, 1653104725u, 1088548129u, 81977716u, 1051771332u, 1927581294u, 0, EXP_TOLERANCE, 0},
+{ 783, 3215735644u, 3899475018u, 3189694084u, 3330093036u, 1072580740u, 2366929092u, 0, EXP_TOLERANCE, 0},
+{ 784, 1077778247u, 2612450289u, 1079065127u, 603380842u, 1117377332u, 409577748u, 0, EXP_TOLERANCE, 0},
+{ 785, 1080713847u, 3962735564u, 1101570429u, 1372490825u, 1391915326u, 1157784041u, 0, EXP_TOLERANCE, 0},
+{ 786, 1069486080u, 1479841439u, 1059312257u, 541504905u, 1072828520u, 4141675227u, 0, EXP_TOLERANCE, 0},
+{ 787, 1075516450u, 2626148789u, 1057571099u, 4121656076u, 1082865702u, 21674613u, 0, EXP_TOLERANCE, 0},
+{ 788, 1075321933u, 1902560314u, 1043130231u, 3557671562u, 1081732033u, 2391450025u, 0, EXP_TOLERANCE, 0},
+{ 789, 3214801292u, 41779312u, 1081626342u, 831171823u, 1072632749u, 1759846185u, 0, EXP_TOLERANCE, 0},
+{ 790, 1069665436u, 1393168821u, 1066457405u, 1381616968u, 1072849684u, 1289163532u, 0, EXP_TOLERANCE, 0},
+{ 791, 1073386717u, 3756584649u, 3222267229u, 1423157432u, 1075122375u, 2406905526u, 0, EXP_TOLERANCE, 0},
+{ 792, 3229269850u, 1894912556u, 1042426694u, 155024547u, 425197429u, 3283544678u, 0, EXP_TOLERANCE, 0},
+{ 793, 3214327880u, 35164295u, 3203391785u, 1037041084u, 1072647167u, 2362324192u, 0, EXP_TOLERANCE, 0},
+{ 794, 1076388871u, 3957875950u, 3232195211u, 1590756436u, 1091053435u, 3120602682u, 0, EXP_TOLERANCE, 0},
+{ 795, 1071990050u, 1447585080u, 1071279485u, 1107922438u, 1073682984u, 2307905638u, 0, EXP_TOLERANCE, 0},
+{ 796, 1067224038u, 981897615u, 1051856116u, 430357614u, 1072722890u, 3697512449u, 0, EXP_TOLERANCE, 0},
+{ 797, 3222281335u, 395145384u, 3219821938u, 50586510u, 1066548660u, 2167568476u, 0, EXP_TOLERANCE, 0},
+{ 798, 1072921640u, 750827797u, 1082862669u, 230466783u, 1074465228u, 444665273u, 0, EXP_TOLERANCE, 0},
+{ 799, 1077231635u, 1365083575u, 3204848310u, 1700831722u, 1104756143u, 2384443675u, 0, EXP_TOLERANCE, 0},
+{ 800, 3220187542u, 344241827u, 1071538935u, 2715566077u, 1071074931u, 2466090340u, 0, EXP_TOLERANCE, 0},
+{ 801, 3227659912u, 4069301823u, 3193208760u, 2949125229u, 852610347u, 1078331087u, 0, EXP_TOLERANCE, 0},
+{ 802, 1081211291u, 3585711710u, 1065801594u, 2302229267u, 1507738998u, 4025253862u, 0, EXP_TOLERANCE, 0},
+{ 803, 3214041900u, 709803845u, 1048741487u, 2296910194u, 1072655926u, 3012611721u, 0, EXP_TOLERANCE, 0},
+{ 804, 3214252299u, 744421179u, 1069302001u, 2659232829u, 1072649478u, 3670751894u, 0, EXP_TOLERANCE, 0},
+{ 805, 1078155904u, 1799949903u, 3192522886u, 4212149209u, 1131196559u, 2298972399u, 0, EXP_TOLERANCE, 0},
+{ 806, 3217642838u, 145234164u, 3250614064u, 912384201u, 1072316679u, 2192878632u, 0, EXP_TOLERANCE, 0},
+{ 807, 3225830600u, 2784620507u, 1102812948u, 3531481022u, 1005246022u, 3138466984u, 0, EXP_TOLERANCE, 0},
+{ 808, 3229139567u, 383952592u, 3205659905u, 3633194728u, 473314917u, 2102131961u, 0, EXP_TOLERANCE, 0},
+{ 809, 3216059164u, 3792395543u, 1070072378u, 3864816376u, 1072557216u, 3332910443u, 0, EXP_TOLERANCE, 0},
+{ 810, 3217899185u, 2115553675u, 1066288499u, 3538377867u, 1072264895u, 2000840220u, 0, EXP_TOLERANCE, 0},
+{ 811, 3229006513u, 1230026762u, 1090719723u, 440819880u, 522467282u, 176843704u, 0, EXP_TOLERANCE, 0},
+{ 812, 3214518020u, 2991290482u, 1096886719u, 1097971167u, 1072641364u, 1885259123u, 0, EXP_TOLERANCE, 0},
+{ 813, 1077465688u, 1098035020u, 3230900504u, 1479059095u, 1110183315u, 1050435763u, 0, EXP_TOLERANCE, 0},
+{ 814, 3229036868u, 1719428427u, 3188631907u, 3707377409u, 511248635u, 1142506866u, 0, EXP_TOLERANCE, 0},
+{ 815, 1068964805u, 3748932896u, 1084908557u, 1325384361u, 1072792303u, 3780694184u, 0, EXP_TOLERANCE, 0},
+{ 816, 1076315468u, 3979168763u, 1057455255u, 2454615952u, 1090230266u, 2957407211u, 0, EXP_TOLERANCE, 0},
+{ 817, 1068835624u, 1449164578u, 1056960316u, 1654931641u, 1072783501u, 1093920167u, 0, EXP_TOLERANCE, 0},
+{ 818, 1073536162u, 2120487381u, 3226298974u, 2364226633u, 1075333845u, 2170325994u, 0, EXP_TOLERANCE, 0},
+{ 819, 1074022852u, 1074268944u, 1065730444u, 280016852u, 1076445746u, 2202470074u, 0, EXP_TOLERANCE, 0},
+{ 820, 3216036896u, 3315127889u, 3236295594u, 2900924954u, 1072559821u, 2002231287u, 0, EXP_TOLERANCE, 0},
+{ 821, 3215300259u, 2246037502u, 1049691002u, 1496066550u, 1072606660u, 401761059u, 0, EXP_TOLERANCE, 0},
+{ 822, 3213978379u, 4191285446u, 3217936236u, 2382392789u, 1072657877u, 1309200979u, 0, EXP_TOLERANCE, 0},
+{ 823, 1078153244u, 640099844u, 1042152237u, 2064279383u, 1131049946u, 3369789477u, 0, EXP_TOLERANCE, 0},
+{ 824, 1075719134u, 3468560824u, 1093251038u, 310958750u, 1084062910u, 2169865167u, 0, EXP_TOLERANCE, 0},
+{ 825, 1080011184u, 1413568905u, 1100941106u, 1627289946u, 1264211895u, 2702685927u, 0, EXP_TOLERANCE, 0},
+{ 826, 3213569646u, 3797143370u, 3195497539u, 3843275034u, 1072665598u, 686484879u, 0, EXP_TOLERANCE, 0},
+{ 827, 3229008721u, 2806642640u, 3201943068u, 2515980718u, 521639300u, 2160860697u, 0, EXP_TOLERANCE, 0},
+{ 828, 1077440132u, 632580632u, 1078673506u, 3259601317u, 1109589645u, 1728707154u, 0, EXP_TOLERANCE, 0},
+{ 829, 3216709215u, 3309678799u, 1049337078u, 3056787074u, 1072482684u, 1422033902u, 0, EXP_TOLERANCE, 0},
+{ 830, 3221495289u, 2341164249u, 1080834967u, 2810890005u, 1068807516u, 1228216989u, 0, EXP_TOLERANCE, 0},
+{ 831, 1072262554u, 932124675u, 1093915797u, 662682630u, 1073853822u, 1808565180u, 0, EXP_TOLERANCE, 0},
+{ 832, 3228258571u, 1367996113u, 3251723684u, 2974064663u, 742026714u, 1183375229u, 0, EXP_TOLERANCE, 0},
+{ 833, 1074987851u, 323437999u, 1090499064u, 901457511u, 1079835961u, 484425891u, 0, EXP_TOLERANCE, 0},
+{ 834, 3225293116u, 4184941840u, 3196770014u, 2458988443u, 1027121096u, 3710678278u, 0, EXP_TOLERANCE, 0},
+{ 835, 1077132524u, 2023065054u, 3211994098u, 2734612965u, 1102463134u, 3575590741u, 0, EXP_TOLERANCE, 0},
+{ 836, 1071414726u, 3679267365u, 3237728785u, 1699558211u, 1073281253u, 3860891479u, 0, EXP_TOLERANCE, 0},
+{ 837, 1077593250u, 1826799031u, 1078709629u, 3986905229u, 1113100092u, 1053308024u, 0, EXP_TOLERANCE, 0},
+{ 838, 1068572425u, 351061688u, 3194386466u, 4105857588u, 1072765774u, 3548107827u, 0, EXP_TOLERANCE, 0},
+{ 839, 1068808070u, 1365244058u, 1064457319u, 1452191426u, 1072781632u, 1873938050u, 0, EXP_TOLERANCE, 0},
+{ 840, 1071462417u, 2463030625u, 3215975031u, 3773488326u, 1073299968u, 2609346878u, 0, EXP_TOLERANCE, 0},
+{ 841, 3229256575u, 752664055u, 1065110394u, 1835931663u, 430123802u, 2553348310u, 0, EXP_TOLERANCE, 0},
+{ 842, 1077559328u, 3496172149u, 1089617208u, 109068701u, 1112360377u, 1798297128u, 0, EXP_TOLERANCE, 0},
+{ 843, 3215960879u, 1636966254u, 1086098766u, 2016598298u, 1072567463u, 927350131u, 0, EXP_TOLERANCE, 0},
+{ 844, 1067708534u, 3551516956u, 1097969102u, 1317953425u, 1072734889u, 1241991990u, 0, EXP_TOLERANCE, 0},
+{ 845, 3223540761u, 2977627788u, 1045339018u, 516058480u, 1058055761u, 569636114u, 0, EXP_TOLERANCE, 0},
+{ 846, 3224825666u, 3901731263u, 3189566462u, 32272932u, 1037966615u, 1722002382u, 0, EXP_TOLERANCE, 0},
+{ 847, 1074136068u, 1956025297u, 3246628529u, 3840733905u, 1076844736u, 3998888857u, 0, EXP_TOLERANCE, 0},
+{ 848, 1080943668u, 561057891u, 3198494340u, 4271027193u, 1434442732u, 930486357u, 0, EXP_TOLERANCE, 0},
+{ 849, 3228909825u, 692989850u, 3242630588u, 2492225971u, 558170866u, 4102964135u, 0, EXP_TOLERANCE, 0},
+{ 850, 3218062309u, 3439913962u, 1067477011u, 2973333638u, 1072232757u, 2540923660u, 0, EXP_TOLERANCE, 0},
+{ 851, 3219236869u, 877613377u, 1044917899u, 809672798u, 1071803919u, 1940541557u, 0, EXP_TOLERANCE, 0},
+{ 852, 3222171454u, 905426932u, 1046417457u, 1086320855u, 1066848024u, 3143546584u, 0, EXP_TOLERANCE, 0},
+{ 853, 3227472261u, 2645567288u, 1051258339u, 557182478u, 883115166u, 3149220578u, 0, EXP_TOLERANCE, 0},
+{ 854, 3216640862u, 186287752u, 1061342054u, 4054003419u, 1072490386u, 1493344933u, 0, EXP_TOLERANCE, 0},
+{ 855, 1079440881u, 3506889716u, 3243866036u, 519056371u, 1211540924u, 931610429u, 0, EXP_TOLERANCE, 0},
+{ 856, 1065722725u, 2171898436u, 3246911982u, 1091500784u, 1072704385u, 2261342317u, 0, EXP_TOLERANCE, 0},
+{ 857, 3226870457u, 368493885u, 3222871893u, 1419055230u, 938682684u, 2071809339u, 0, EXP_TOLERANCE, 0},
+{ 858, 1078319084u, 2010971245u, 3188804530u, 1518695799u, 1138773255u, 3191526077u, 0, EXP_TOLERANCE, 0},
+{ 859, 3218009421u, 1239207795u, 1040192984u, 2199481342u, 1072243109u, 70493476u, 0, EXP_TOLERANCE, 0},
+{ 860, 3218318669u, 4264613432u, 3203460972u, 3558930895u, 1072138922u, 254209313u, 0, EXP_TOLERANCE, 0},
+{ 861, 1068125075u, 3772748958u, 3227667376u, 309688336u, 1072748507u, 2061269699u, 0, EXP_TOLERANCE, 0},
+{ 862, 3223403009u, 1077949160u, 1075769893u, 2405271377u, 1059573760u, 4171816038u, 0, EXP_TOLERANCE, 0},
+{ 863, 1078203664u, 3751608506u, 3232278094u, 930375071u, 1133432542u, 338172682u, 0, EXP_TOLERANCE, 0},
+{ 864, 3215394369u, 1518334131u, 3205247482u, 791756713u, 1072601028u, 4217463222u, 0, EXP_TOLERANCE, 0},
+{ 865, 1067240397u, 2825203170u, 3245054001u, 1822981827u, 1072723153u, 3157609123u, 0, EXP_TOLERANCE, 0},
+{ 866, 1080093419u, 514474738u, 1089072073u, 3300845441u, 1277369232u, 226623888u, 0, EXP_TOLERANCE, 0},
+{ 867, 3219536978u, 247369460u, 3197320093u, 687450958u, 1071641076u, 107110682u, 0, EXP_TOLERANCE, 0},
+{ 868, 1081092750u, 2722237629u, 1058272368u, 90602316u, 1463940977u, 1953188388u, 0, EXP_TOLERANCE, 0},
+{ 869, 3217535619u, 1845900544u, 3231520830u, 3389751458u, 1072338812u, 908962619u, 0, EXP_TOLERANCE, 0},
+{ 870, 3227612301u, 737689911u, 3195377751u, 3462616966u, 861355698u, 2672114716u, 0, EXP_TOLERANCE, 0},
+{ 871, 3221441232u, 3620285831u, 1055501023u, 2708056059u, 1068954913u, 645027974u, 0, EXP_TOLERANCE, 0},
+{ 872, 3220513572u, 4073430285u, 1056206159u, 172017902u, 1070666757u, 252709185u, 0, EXP_TOLERANCE, 0},
+{ 873, 3219161094u, 2799176222u, 1052706894u, 4083892667u, 1071848358u, 2936835175u, 0, EXP_TOLERANCE, 0},
+{ 874, 3216959621u, 1562351330u, 1069705601u, 1247765260u, 1072454735u, 1965167652u, 0, EXP_TOLERANCE, 0},
+{ 875, 3224328691u, 51853475u, 3189080201u, 2783553144u, 1048896499u, 4214951332u, 0, EXP_TOLERANCE, 0},
+{ 876, 3220502929u, 3851781549u, 3241598113u, 514064046u, 1070678175u, 727808314u, 0, EXP_TOLERANCE, 0},
+{ 877, 1080123021u, 934745487u, 3248182437u, 2798581921u, 1282811572u, 865963855u, 0, EXP_TOLERANCE, 0},
+{ 878, 3219373949u, 2948648757u, 3232177250u, 4278702895u, 1071727494u, 4061869059u, 0, EXP_TOLERANCE, 0},
+{ 879, 1073534300u, 4259101461u, 1061606772u, 84229920u, 1075331021u, 3220111151u, 0, EXP_TOLERANCE, 0},
+{ 880, 3215901351u, 3891230598u, 1095924595u, 3049217547u, 1072570963u, 2739288242u, 0, EXP_TOLERANCE, 0},
+{ 881, 1074207325u, 3806018919u, 3243191216u, 280177341u, 1077015681u, 2817451756u, 0, EXP_TOLERANCE, 0},
+{ 882, 1070061714u, 3900344258u, 1063647809u, 4206745890u, 1072907975u, 777731621u, 0, EXP_TOLERANCE, 0},
+{ 883, 3222464456u, 2126253040u, 3207248026u, 808507485u, 1065493639u, 3957926160u, 0, EXP_TOLERANCE, 0},
+{ 884, 1076653133u, 3465685634u, 3230391053u, 3754958214u, 1094102091u, 3736097686u, 0, EXP_TOLERANCE, 0},
+{ 885, 1080840988u, 461094531u, 1101110393u, 1316091396u, 1415451629u, 3462873770u, 0, EXP_TOLERANCE, 0},
+{ 886, 1071271770u, 4197635149u, 1091873113u, 1240127141u, 1073226413u, 2596063650u, 0, EXP_TOLERANCE, 0},
+{ 887, 1074333893u, 118603800u, 1105304898u, 4291425557u, 1077336969u, 1088342233u, 0, EXP_TOLERANCE, 0},
+{ 888, 3219720621u, 3744663425u, 3212482771u, 953662066u, 1071465544u, 3159670354u, 0, EXP_TOLERANCE, 0},
+{ 889, 1076782697u, 3564196690u, 3228101916u, 904305212u, 1095661213u, 2831821769u, 0, EXP_TOLERANCE, 0},
+{ 890, 1067207479u, 3566257266u, 3235138829u, 2734275140u, 1072722624u, 3670818002u, 0, EXP_TOLERANCE, 0},
+{ 891, 3227171261u, 606044282u, 3241318094u, 2446416887u, 910906934u, 627559627u, 0, EXP_TOLERANCE, 0},
+{ 892, 1065744532u, 2336116589u, 3197594053u, 2296925138u, 1072704557u, 3081873910u, 0, EXP_TOLERANCE, 0},
+{ 893, 1070101995u, 907670625u, 3240769036u, 1827119006u, 1072914055u, 3781503906u, 0, EXP_TOLERANCE, 0},
+{ 894, 1066487279u, 2818710946u, 3246059905u, 553394170u, 1072711118u, 1345913310u, 0, EXP_TOLERANCE, 0},
+{ 895, 3213621342u, 4099522736u, 3232742168u, 3718083858u, 1072664801u, 910507915u, 0, EXP_TOLERANCE, 0},
+{ 896, 1078739788u, 1059279404u, 1080245336u, 175941677u, 1158113937u, 1087430260u, 0, EXP_TOLERANCE, 0},
+{ 897, 1082121019u, 1650862428u, 1061816101u, 1723201723u, 1843679461u, 3875297949u, 0, EXP_TOLERANCE, 0},
+{ 898, 3226429902u, 2462163405u, 3218946201u, 3876535372u, 977570353u, 3320675628u, 0, EXP_TOLERANCE, 0},
+{ 899, 1076004278u, 495844137u, 1073721460u, 772777946u, 1086622883u, 3050800095u, 0, EXP_TOLERANCE, 0},
+{ 900, 1068143970u, 458757721u, 3245680321u, 3609892707u, 1072749129u, 926681458u, 0, EXP_TOLERANCE, 0},
+{ 901, 3214254476u, 2533012202u, 1079980803u, 3592268374u, 1072649412u, 994782266u, 0, EXP_TOLERANCE, 0},
+{ 902, 3216996268u, 4108274117u, 1063045844u, 571992389u, 1072450679u, 4029990628u, 0, EXP_TOLERANCE, 0},
+{ 903, 1077984359u, 3541110973u, 1096296754u, 3118427427u, 1123258147u, 2499543662u, 0, EXP_TOLERANCE, 0},
+{ 904, 3213902987u, 1213941007u, 1105433735u, 2172963370u, 1072660194u, 3827965195u, 0, EXP_TOLERANCE, 0},
+{ 905, 1079027567u, 272190288u, 1095452370u, 4026581530u, 1173437109u, 1567535437u, 0, EXP_TOLERANCE, 0},
+{ 906, 1079855269u, 2843638672u, 1100510986u, 3190536898u, 1249888458u, 1134925313u, 0, EXP_TOLERANCE, 0},
+{ 907, 1076417062u, 2014317727u, 3247389683u, 2428462015u, 1091433281u, 358810388u, 0, EXP_TOLERANCE, 0},
+{ 908, 1078248077u, 688442200u, 1047852515u, 3035186380u, 1135468183u, 2761855333u, 0, EXP_TOLERANCE, 0},
+{ 909, 1074567060u, 1010095511u, 3221288076u, 405287991u, 1078056039u, 3040249862u, 0, EXP_TOLERANCE, 0},
+{ 910, 3229225943u, 2983070435u, 1089546472u, 2907918480u, 441487241u, 709716015u, 0, EXP_TOLERANCE, 0},
+{ 911, 1076696665u, 81928569u, 1056007286u, 2740556321u, 1094687411u, 274384680u, 0, EXP_TOLERANCE, 0},
+{ 912, 1066276691u, 2076689028u, 1081558619u, 3039159031u, 1072708768u, 1687981859u, 0, EXP_TOLERANCE, 0},
+{ 913, 1067230382u, 1376882094u, 3211003208u, 1296286481u, 1072722992u, 3411996678u, 0, EXP_TOLERANCE, 0},
+{ 914, 1074871434u, 744133164u, 3200943494u, 955832216u, 1079154689u, 809333459u, 0, EXP_TOLERANCE, 0},
+{ 915, 3223144598u, 176522478u, 1069999908u, 2891249491u, 1061531060u, 3521972652u, 0, EXP_TOLERANCE, 0},
+{ 916, 1065584698u, 3685851715u, 3187829932u, 2363997529u, 1072703296u, 1288044552u, 0, EXP_TOLERANCE, 0},
+{ 917, 1065409879u, 3974431579u, 1052505165u, 2589067816u, 1072701918u, 1445868855u, 0, EXP_TOLERANCE, 0},
+{ 918, 3213516885u, 3819109588u, 1048561488u, 969143351u, 1072666411u, 3612690260u, 0, EXP_TOLERANCE, 0},
+{ 919, 1073687973u, 4246896124u, 1104584799u, 1940097860u, 1075581856u, 2819180517u, 0, EXP_TOLERANCE, 0},
+{ 920, 1066912836u, 2228686199u, 3220231833u, 777624847u, 1072717902u, 1922278384u, 0, EXP_TOLERANCE, 0},
+{ 921, 3224127274u, 4189906558u, 3203004203u, 854242364u, 1051215832u, 3083344029u, 0, EXP_TOLERANCE, 0},
+{ 922, 1081890311u, 4089051094u, 3227282692u, 2693170723u, 1758525329u, 2188757040u, 0, EXP_TOLERANCE, 0},
+{ 923, 1066855127u, 1278581412u, 3239296746u, 1774588717u, 1072716979u, 4022161488u, 0, EXP_TOLERANCE, 0},
+{ 924, 3221324110u, 1794845306u, 1104879344u, 4135865182u, 1069331519u, 811293238u, 0, EXP_TOLERANCE, 0},
+{ 925, 1081283231u, 754938390u, 1061291430u, 2010786993u, 1534272358u, 1531468649u, 0, EXP_TOLERANCE, 0},
+{ 926, 1073581409u, 2034303731u, 3240176537u, 314147356u, 1075404046u, 1548021515u, 0, EXP_TOLERANCE, 0},
+{ 927, 3224109162u, 567588900u, 3195452230u, 1421366017u, 1051451646u, 4159762582u, 0, EXP_TOLERANCE, 0},
+{ 928, 3221944027u, 2708717091u, 1071975971u, 1364590470u, 1067555098u, 1265958501u, 0, EXP_TOLERANCE, 0},
+{ 929, 3229068611u, 3461956134u, 3207820115u, 1605709634u, 499521170u, 1987606117u, 0, EXP_TOLERANCE, 0},
+{ 930, 1071594452u, 1497124553u, 1051715442u, 916736957u, 1073352905u, 1851626276u, 0, EXP_TOLERANCE, 0},
+{ 931, 1070002699u, 834914365u, 1064667143u, 2839166298u, 1072899118u, 3236760025u, 0, EXP_TOLERANCE, 0},
+{ 932, 1069862861u, 2139295776u, 1062816721u, 914592523u, 1072878380u, 2228412030u, 0, EXP_TOLERANCE, 0},
+{ 933, 3213754179u, 851569132u, 1058503154u, 1399378677u, 1072662754u, 3489701620u, 0, EXP_TOLERANCE, 0},
+{ 934, 3224100513u, 3897202342u, 3245382590u, 246600375u, 1051576264u, 1680693164u, 0, EXP_TOLERANCE, 0},
+{ 935, 3222314580u, 3620429520u, 1055627557u, 229305u, 1066406271u, 669062905u, 0, EXP_TOLERANCE, 0},
+{ 936, 1076618801u, 3641997865u, 3206673888u, 93720614u, 1093759686u, 70904860u, 0, EXP_TOLERANCE, 0},
+{ 937, 3222565555u, 32766320u, 1062084905u, 3668443038u, 1064873107u, 2362077810u, 0, EXP_TOLERANCE, 0},
+{ 938, 3222250420u, 2039713492u, 3248699388u, 1346210821u, 1066639017u, 1070391097u, 0, EXP_TOLERANCE, 0},
+{ 939, 1078369952u, 1335820726u, 3191756860u, 1808427032u, 1141063400u, 1082588104u, 0, EXP_TOLERANCE, 0},
+{ 940, 1070879947u, 650692001u, 1103515670u, 2253348763u, 1073085342u, 979466763u, 0, EXP_TOLERANCE, 0},
+{ 941, 3213415283u, 2372623300u, 3210185343u, 3200572848u, 1072667979u, 2818022293u, 0, EXP_TOLERANCE, 0},
+{ 942, 1080873125u, 762317532u, 3194595095u, 3192607437u, 1421328859u, 2571597720u, 0, EXP_TOLERANCE, 0},
+{ 943, 1070651309u, 217775356u, 3232827087u, 2969367386u, 1073008911u, 622956426u, 0, EXP_TOLERANCE, 0},
+{ 944, 1069755463u, 3621353969u, 1077994795u, 3873976266u, 1072862686u, 1190493624u, 0, EXP_TOLERANCE, 0},
+{ 945, 1078719075u, 268372152u, 3221764390u, 3216978962u, 1157161937u, 77208680u, 0, EXP_TOLERANCE, 0},
+{ 946, 3227563243u, 142942404u, 1075322987u, 1746449109u, 870456170u, 3164033211u, 0, EXP_TOLERANCE, 0},
+{ 947, 1081986200u, 496534875u, 3254522293u, 2532372502u, 1793917531u, 1796814503u, 0, EXP_TOLERANCE, 0},
+{ 948, 3228205445u, 2999955409u, 3222793392u, 1868977643u, 751888796u, 948939815u, 0, EXP_TOLERANCE, 0},
+{ 949, 1074319042u, 3353193428u, 3218469191u, 3326244297u, 1077295134u, 2019316289u, 0, EXP_TOLERANCE, 0},
+{ 950, 1072413103u, 73646871u, 3231442171u, 3711510104u, 1073940200u, 865419667u, 0, EXP_TOLERANCE, 0},
+{ 951, 1077900612u, 218135177u, 3198908856u, 3082199105u, 1120199316u, 3713509082u, 0, EXP_TOLERANCE, 0},
+{ 952, 1072262784u, 1061628117u, 3248859043u, 86776158u, 1073853949u, 3126348436u, 0, EXP_TOLERANCE, 0},
+{ 953, 3217921858u, 938869114u, 1087911145u, 2416710759u, 1072260391u, 538149649u, 0, EXP_TOLERANCE, 0},
+{ 954, 1079848192u, 2970853959u, 3239543429u, 1887505029u, 1249157830u, 3136433410u, 0, EXP_TOLERANCE, 0},
+{ 955, 3225145875u, 1337895935u, 1076463812u, 1172733328u, 1030560683u, 1841720567u, 0, EXP_TOLERANCE, 0},
+{ 956, 1068014296u, 1469010822u, 3229583535u, 551399515u, 1072744869u, 816575420u, 0, EXP_TOLERANCE, 0},
+{ 957, 1074118123u, 1849711538u, 1049053713u, 1744276190u, 1076775612u, 57353426u, 0, EXP_TOLERANCE, 0},
+{ 958, 3226410140u, 2976596113u, 3192137295u, 3033242648u, 978502995u, 3859738869u, 0, EXP_TOLERANCE, 0},
+{ 959, 1079824113u, 876810930u, 3197470945u, 2571587447u, 1246952463u, 1889039904u, 0, EXP_TOLERANCE, 0},
+{ 960, 3226042170u, 4007797282u, 3225853845u, 4069319648u, 995463929u, 75967049u, 0, EXP_TOLERANCE, 0},
+{ 961, 1067202926u, 3840538373u, 1043189552u, 3668774580u, 1072722551u, 3111652835u, 0, EXP_TOLERANCE, 0},
+{ 962, 3220757432u, 200857661u, 3229758439u, 3359367736u, 1070272935u, 3556446312u, 0, EXP_TOLERANCE, 0},
+{ 963, 3227826349u, 111868139u, 3227902082u, 2366064003u, 821867115u, 285439771u, 0, EXP_TOLERANCE, 0},
+{ 964, 1066215262u, 3510904416u, 3222131653u, 3822770497u, 1072708281u, 2102944929u, 0, EXP_TOLERANCE, 0},
+{ 965, 3226947075u, 789151814u, 1099269239u, 2958956055u, 931583754u, 3557693371u, 0, EXP_TOLERANCE, 0},
+{ 966, 1076290712u, 722163228u, 1105524559u, 1534462169u, 1089919020u, 2167990146u, 0, EXP_TOLERANCE, 0},
+{ 967, 1066509006u, 2207037106u, 3208952465u, 1231254630u, 1072711463u, 2736011721u, 0, EXP_TOLERANCE, 0},
+{ 968, 3215709852u, 3838689849u, 3198769679u, 1302617170u, 1072582266u, 2827125580u, 0, EXP_TOLERANCE, 0},
+{ 969, 1076501722u, 2527556476u, 3240373426u, 124352692u, 1092391286u, 1779746092u, 0, EXP_TOLERANCE, 0},
+{ 970, 3215269445u, 3502371499u, 1043411944u, 4190072016u, 1072608507u, 1214942277u, 0, EXP_TOLERANCE, 0},
+{ 971, 1070967598u, 1798470077u, 3200116917u, 3421833729u, 1073115765u, 2970386936u, 0, EXP_TOLERANCE, 0},
+{ 972, 3214486476u, 3653237931u, 3204255012u, 3683870669u, 1072642326u, 97744732u, 0, EXP_TOLERANCE, 0},
+{ 973, 1069317222u, 376530104u, 1073853547u, 565755892u, 1072816665u, 2564841654u, 0, EXP_TOLERANCE, 0},
+{ 974, 3226775211u, 558292492u, 1051772749u, 4267873474u, 947457526u, 4219624486u, 0, EXP_TOLERANCE, 0},
+{ 975, 3221626981u, 509637100u, 3212030069u, 215050379u, 1068506067u, 3628098739u, 0, EXP_TOLERANCE, 0},
+{ 976, 1078425613u, 3571665665u, 3188628584u, 757824767u, 1143623000u, 253046892u, 0, EXP_TOLERANCE, 0},
+{ 977, 3220042217u, 998858159u, 1063077962u, 436029885u, 1071192860u, 1450775748u, 0, EXP_TOLERANCE, 0},
+{ 978, 3217481301u, 996300405u, 3193842624u, 80548098u, 1072350133u, 1375924335u, 0, EXP_TOLERANCE, 0},
+{ 979, 3222557384u, 3876129407u, 3215332180u, 2226970413u, 1064924298u, 2928337857u, 0, EXP_TOLERANCE, 0},
+{ 980, 3225026041u, 200013509u, 3224552716u, 414878724u, 1033283085u, 3576891041u, 0, EXP_TOLERANCE, 0},
+{ 981, 3224325637u, 309319541u, 1048979765u, 1261662434u, 1048928773u, 2501187603u, 0, EXP_TOLERANCE, 0},
+{ 982, 1077718303u, 4062255924u, 3224274128u, 4289485681u, 1115992461u, 3449799183u, 0, EXP_TOLERANCE, 0},
+{ 983, 3224601748u, 1611969213u, 1053890378u, 3774617276u, 1043115104u, 1332410328u, 0, EXP_TOLERANCE, 0},
+{ 984, 1075169883u, 1752164782u, 3239587974u, 612223386u, 1080886915u, 1749786576u, 0, EXP_TOLERANCE, 0},
+{ 985, 1065663030u, 2024044989u, 1074932678u, 3259111307u, 1072703914u, 1332706132u, 0, EXP_TOLERANCE, 0},
+{ 986, 1068936158u, 2564965629u, 1093571065u, 169360454u, 1072790345u, 4117240763u, 0, EXP_TOLERANCE, 0},
+{ 987, 1077016178u, 1860101737u, 3191222372u, 1676437468u, 1099835788u, 2272979216u, 0, EXP_TOLERANCE, 0},
+{ 988, 1070288728u, 588387057u, 3192103292u, 2495288012u, 1072942629u, 2557725914u, 0, EXP_TOLERANCE, 0},
+{ 989, 3214127225u, 659070058u, 1073095700u, 1393632068u, 1072653309u, 1767849680u, 0, EXP_TOLERANCE, 0},
+{ 990, 3220828991u, 4276187829u, 3217553330u, 1868253275u, 1070155908u, 2703282856u, 0, EXP_TOLERANCE, 0},
+{ 991, 3222171696u, 2085481575u, 3215994784u, 800910002u, 1066847334u, 587373869u, 0, EXP_TOLERANCE, 0},
+{ 992, 1069517748u, 1950570756u, 3200582211u, 941022151u, 1072830757u, 2869741668u, 0, EXP_TOLERANCE, 0},
+{ 993, 1070113280u, 2075610870u, 3250142022u, 3605152103u, 1072915764u, 3193490161u, 0, EXP_TOLERANCE, 0},
+{ 994, 3216567890u, 3792931748u, 3204857863u, 804393211u, 1072498643u, 1528001685u, 0, EXP_TOLERANCE, 0},
+{ 995, 3229529122u, 3430071177u, 3226288311u, 3652522729u, 329463250u, 4001823001u, 0, EXP_TOLERANCE, 0},
+{ 996, 3215994766u, 236884699u, 3227874605u, 2193269825u, 1072564758u, 4053334377u, 0, EXP_TOLERANCE, 0},
+{ 997, 1071228049u, 2744231849u, 1046186036u, 771053722u, 1073210011u, 860122133u, 0, EXP_TOLERANCE, 0},
+{ 998, 1076656004u, 3000189819u, 1096500901u, 2057239777u, 1094134996u, 3545311159u, 0, EXP_TOLERANCE, 0},
+{ 999, 1078106941u, 205759408u, 3244643377u, 2702292618u, 1128907012u, 16441604u, 0, EXP_TOLERANCE, 0},
+
+
+// AUTOMATICALLY GENERATED VECTORS STOP
+
+};
+
+#endif // CYGONCE_LIBM_EXP_H multiple inclusion protection
+
+// EOF exp.h
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/expf.c b/ecos/packages/language/c/libm/current/tests/vectors/expf.c
new file mode 100644
index 0000000..d014430
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/expf.c
@@ -0,0 +1,115 @@
+//===========================================================================
+//
+// expf.c
+//
+// Test of expf() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// Declarations for test system:
+//
+// TESTCASE_TYPE=CYG_TEST_MODULE
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include <cyg/infra/testcase.h> // Test infrastructure
+#include <math.h> // Header for this package
+#include <sys/ieeefp.h> // Cyg_libm_ieee_double_shape_type
+#include "vectors/vector_support_float.h"// extra support for math tests
+
+#include "vectors/expf.h"
+
+// FUNCTIONS
+
+static void
+test( CYG_ADDRWORD data )
+{
+ cyg_ucount32 vec_size;
+ cyg_bool ret;
+
+ vec_size = sizeof(expf_vec) / sizeof(Cyg_libm_test_float_vec_t);
+ ret = doTestVecFloat( (CYG_ADDRWORD) &expf, CYG_LIBM_TEST_VEC_FLOAT,
+ CYG_LIBM_TEST_VEC_NONE, CYG_LIBM_TEST_VEC_FLOAT,
+ &expf_vec[0], vec_size );
+
+ if (ret==true)
+ {
+ CYG_TEST_PASS("expf() is stable");
+ } // if
+ else
+ {
+ CYG_TEST_FAIL("expf() failed tests");
+ } // else
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for Math "
+ "library exp() function");
+} // test()
+
+
+int
+main(int argc, char *argv[])
+{
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for Math library "
+ "exp() function");
+
+ START_TEST( test );
+
+ CYG_TEST_PASS_FINISH("Testing is not applicable to this configuration");
+
+} // main()
+
+
+// EOF expf.c
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/expf.h b/ecos/packages/language/c/libm/current/tests/vectors/expf.h
new file mode 100644
index 0000000..e280353
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/expf.h
@@ -0,0 +1,647 @@
+#ifndef CYGONCE_LIBM_EXPF_H
+#define CYGONCE_LIBM_EXPF_H
+//===========================================================================
+//
+// expf.h
+//
+// Test vectors for testing of expf() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage: #include "vectors/exp.h"
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include "vectors/vector_support_float.h"// extra support for math tests
+
+#define EXP_TOLERANCE 1.0E-04
+
+static const Cyg_libm_test_float_vec_t expf_vec[] = {
+
+// AUTOMATICALLY GENERATED VECTORS START
+
+{0, 646742016u, 1065353216u, 1065353216u, 0, EXP_TOLERANCE, 0},
+{1, 1008981770u, 1065437523u, 1065437523u, 0, EXP_TOLERANCE, 0},
+{2, 1017370378u, 1065522677u, 1065522677u, 0, EXP_TOLERANCE, 0},
+{3, 1022739087u, 1065608687u, 1065608687u, 0, EXP_TOLERANCE, 0},
+{4, 1025758986u, 1065695562u, 1065695562u, 0, EXP_TOLERANCE, 0},
+{5, 1028443341u, 1065783309u, 1065783309u, 0, EXP_TOLERANCE, 0},
+{6, 1031127695u, 1065871938u, 1065871938u, 0, EXP_TOLERANCE, 0},
+{7, 1032805417u, 1065961458u, 1065961458u, 0, EXP_TOLERANCE, 0},
+{8, 1034147594u, 1066051878u, 1066051878u, 0, EXP_TOLERANCE, 0},
+{9, 1035489772u, 1066143207u, 1066143207u, 0, EXP_TOLERANCE, 0},
+{10, 1036831949u, 1066235454u, 1066235454u, 0, EXP_TOLERANCE, 0},
+{11, 1038174126u, 1066328627u, 1066328627u, 0, EXP_TOLERANCE, 0},
+{12, 1039516303u, 1066422737u, 1066422737u, 0, EXP_TOLERANCE, 0},
+{13, 1040522936u, 1066517792u, 1066517792u, 0, EXP_TOLERANCE, 0},
+{14, 1041194025u, 1066613804u, 1066613804u, 0, EXP_TOLERANCE, 0},
+{15, 1041865114u, 1066710780u, 1066710780u, 0, EXP_TOLERANCE, 0},
+{16, 1042536202u, 1066808730u, 1066808730u, 0, EXP_TOLERANCE, 0},
+{17, 1043207291u, 1066907665u, 1066907665u, 0, EXP_TOLERANCE, 0},
+{18, 1043878380u, 1067007595u, 1067007595u, 0, EXP_TOLERANCE, 0},
+{19, 1044549468u, 1067108528u, 1067108528u, 0, EXP_TOLERANCE, 0},
+{20, 1045220557u, 1067210477u, 1067210477u, 0, EXP_TOLERANCE, 0},
+{21, 1045891645u, 1067313449u, 1067313449u, 0, EXP_TOLERANCE, 0},
+{22, 1046562734u, 1067417457u, 1067417457u, 0, EXP_TOLERANCE, 0},
+{23, 1047233823u, 1067522510u, 1067522510u, 0, EXP_TOLERANCE, 0},
+{24, 1047904911u, 1067628618u, 1067628618u, 0, EXP_TOLERANCE, 0},
+{25, 1048576000u, 1067735793u, 1067735793u, 0, EXP_TOLERANCE, 0},
+{26, 1048911544u, 1067844046u, 1067844046u, 0, EXP_TOLERANCE, 0},
+{27, 1049247089u, 1067953387u, 1067953387u, 0, EXP_TOLERANCE, 0},
+{28, 1049582633u, 1068063826u, 1068063826u, 0, EXP_TOLERANCE, 0},
+{29, 1049918177u, 1068175375u, 1068175375u, 0, EXP_TOLERANCE, 0},
+{30, 1050253722u, 1068288045u, 1068288045u, 0, EXP_TOLERANCE, 0},
+{31, 1050589266u, 1068401847u, 1068401847u, 0, EXP_TOLERANCE, 0},
+{32, 1050924810u, 1068516793u, 1068516793u, 0, EXP_TOLERANCE, 0},
+{33, 1051260355u, 1068632895u, 1068632895u, 0, EXP_TOLERANCE, 0},
+{34, 1051595899u, 1068750163u, 1068750163u, 0, EXP_TOLERANCE, 0},
+{35, 1051931443u, 1068868609u, 1068868609u, 0, EXP_TOLERANCE, 0},
+{36, 1052266988u, 1068988247u, 1068988247u, 0, EXP_TOLERANCE, 0},
+{37, 1052602532u, 1069109086u, 1069109086u, 0, EXP_TOLERANCE, 0},
+{38, 1052938076u, 1069231140u, 1069231140u, 0, EXP_TOLERANCE, 0},
+{39, 1053273620u, 1069354421u, 1069354421u, 0, EXP_TOLERANCE, 0},
+{40, 1053609165u, 1069478941u, 1069478941u, 0, EXP_TOLERANCE, 0},
+{41, 1053944709u, 1069604712u, 1069604712u, 0, EXP_TOLERANCE, 0},
+{42, 1054280253u, 1069731747u, 1069731747u, 0, EXP_TOLERANCE, 0},
+{43, 1054615798u, 1069860059u, 1069860059u, 0, EXP_TOLERANCE, 0},
+{44, 1054951342u, 1069989660u, 1069989660u, 0, EXP_TOLERANCE, 0},
+{45, 1055286886u, 1070120564u, 1070120564u, 0, EXP_TOLERANCE, 0},
+{46, 1055622431u, 1070252784u, 1070252784u, 0, EXP_TOLERANCE, 0},
+{47, 1055957975u, 1070386332u, 1070386332u, 0, EXP_TOLERANCE, 0},
+{48, 1056293519u, 1070521223u, 1070521223u, 0, EXP_TOLERANCE, 0},
+{49, 1056629064u, 1070657469u, 1070657469u, 0, EXP_TOLERANCE, 0},
+{50, 1056964608u, 1070795084u, 1070795084u, 0, EXP_TOLERANCE, 0},
+{51, 1057132380u, 1070934083u, 1070934083u, 0, EXP_TOLERANCE, 0},
+{52, 1057300152u, 1071074479u, 1071074479u, 0, EXP_TOLERANCE, 0},
+{53, 1057467924u, 1071216285u, 1071216285u, 0, EXP_TOLERANCE, 0},
+{54, 1057635697u, 1071359517u, 1071359517u, 0, EXP_TOLERANCE, 0},
+{55, 1057803469u, 1071504189u, 1071504189u, 0, EXP_TOLERANCE, 0},
+{56, 1057971241u, 1071650314u, 1071650314u, 0, EXP_TOLERANCE, 0},
+{57, 1058139013u, 1071797907u, 1071797907u, 0, EXP_TOLERANCE, 0},
+{58, 1058306785u, 1071946984u, 1071946984u, 0, EXP_TOLERANCE, 0},
+{59, 1058474557u, 1072097559u, 1072097559u, 0, EXP_TOLERANCE, 0},
+{60, 1058642330u, 1072249649u, 1072249649u, 0, EXP_TOLERANCE, 0},
+{61, 1058810102u, 1072403266u, 1072403266u, 0, EXP_TOLERANCE, 0},
+{62, 1058977874u, 1072558427u, 1072558427u, 0, EXP_TOLERANCE, 0},
+{63, 1059145646u, 1072715147u, 1072715147u, 0, EXP_TOLERANCE, 0},
+{64, 1059313418u, 1072873443u, 1072873443u, 0, EXP_TOLERANCE, 0},
+{65, 1059481190u, 1073033329u, 1073033329u, 0, EXP_TOLERANCE, 0},
+{66, 1059648963u, 1073194823u, 1073194823u, 0, EXP_TOLERANCE, 0},
+{67, 1059816735u, 1073357939u, 1073357939u, 0, EXP_TOLERANCE, 0},
+{68, 1059984507u, 1073522694u, 1073522694u, 0, EXP_TOLERANCE, 0},
+{69, 1060152279u, 1073689106u, 1073689106u, 0, EXP_TOLERANCE, 0},
+{70, 1060320051u, 1073799507u, 1073799507u, 0, EXP_TOLERANCE, 0},
+{71, 1060487823u, 1073884393u, 1073884393u, 0, EXP_TOLERANCE, 0},
+{72, 1060655596u, 1073970134u, 1073970134u, 0, EXP_TOLERANCE, 0},
+{73, 1060823368u, 1074056735u, 1074056735u, 0, EXP_TOLERANCE, 0},
+{74, 1060991140u, 1074144206u, 1074144206u, 0, EXP_TOLERANCE, 0},
+{75, 1061158912u, 1074232557u, 1074232557u, 0, EXP_TOLERANCE, 0},
+{76, 1061326684u, 1074321796u, 1074321796u, 0, EXP_TOLERANCE, 0},
+{77, 1061494456u, 1074411931u, 1074411931u, 0, EXP_TOLERANCE, 0},
+{78, 1061662228u, 1074502974u, 1074502974u, 0, EXP_TOLERANCE, 0},
+{79, 1061830001u, 1074594931u, 1074594931u, 0, EXP_TOLERANCE, 0},
+{80, 1061997773u, 1074687812u, 1074687812u, 0, EXP_TOLERANCE, 0},
+{81, 1062165545u, 1074781626u, 1074781626u, 0, EXP_TOLERANCE, 0},
+{82, 1062333317u, 1074876383u, 1074876383u, 0, EXP_TOLERANCE, 0},
+{83, 1062501089u, 1074972091u, 1074972091u, 0, EXP_TOLERANCE, 0},
+{84, 1062668861u, 1075068762u, 1075068762u, 0, EXP_TOLERANCE, 0},
+{85, 1062836634u, 1075166406u, 1075166406u, 0, EXP_TOLERANCE, 0},
+{86, 1063004406u, 1075265030u, 1075265030u, 0, EXP_TOLERANCE, 0},
+{87, 1063172178u, 1075364646u, 1075364646u, 0, EXP_TOLERANCE, 0},
+{88, 1063339950u, 1075465262u, 1075465262u, 0, EXP_TOLERANCE, 0},
+{89, 1063507722u, 1075566890u, 1075566890u, 0, EXP_TOLERANCE, 0},
+{90, 1063675494u, 1075669539u, 1075669539u, 0, EXP_TOLERANCE, 0},
+{91, 1063843267u, 1075773220u, 1075773220u, 0, EXP_TOLERANCE, 0},
+{92, 1064011039u, 1075877942u, 1075877942u, 0, EXP_TOLERANCE, 0},
+{93, 1064178811u, 1075983718u, 1075983718u, 0, EXP_TOLERANCE, 0},
+{94, 1064346583u, 1076090556u, 1076090556u, 0, EXP_TOLERANCE, 0},
+{95, 1064514355u, 1076198468u, 1076198468u, 0, EXP_TOLERANCE, 0},
+{96, 1064682127u, 1076307465u, 1076307465u, 0, EXP_TOLERANCE, 0},
+{97, 1064849900u, 1076417557u, 1076417557u, 0, EXP_TOLERANCE, 0},
+{98, 1065017672u, 1076528756u, 1076528756u, 0, EXP_TOLERANCE, 0},
+{99, 1065185444u, 1076641072u, 1076641072u, 0, EXP_TOLERANCE, 0},
+{100, 1065353216u, 1076754516u, 1076754516u, 0, EXP_TOLERANCE, 0},
+{101, 1065437102u, 1076869101u, 1076869101u, 0, EXP_TOLERANCE, 0},
+{102, 1065520988u, 1076984838u, 1076984838u, 0, EXP_TOLERANCE, 0},
+{103, 1065604874u, 1077101737u, 1077101737u, 0, EXP_TOLERANCE, 0},
+{104, 1065688760u, 1077219812u, 1077219812u, 0, EXP_TOLERANCE, 0},
+{105, 1065772646u, 1077339073u, 1077339073u, 0, EXP_TOLERANCE, 0},
+{106, 1065856532u, 1077459533u, 1077459533u, 0, EXP_TOLERANCE, 0},
+{107, 1065940419u, 1077581204u, 1077581204u, 0, EXP_TOLERANCE, 0},
+{108, 1066024305u, 1077704098u, 1077704098u, 0, EXP_TOLERANCE, 0},
+{109, 1066108191u, 1077828227u, 1077828227u, 0, EXP_TOLERANCE, 0},
+{110, 1066192077u, 1077953602u, 1077953602u, 0, EXP_TOLERANCE, 0},
+{111, 1066275963u, 1078080238u, 1078080238u, 0, EXP_TOLERANCE, 0},
+{112, 1066359849u, 1078208147u, 1078208147u, 0, EXP_TOLERANCE, 0},
+{113, 1066443735u, 1078337341u, 1078337341u, 0, EXP_TOLERANCE, 0},
+{114, 1066527621u, 1078467832u, 1078467832u, 0, EXP_TOLERANCE, 0},
+{115, 1066611507u, 1078599636u, 1078599636u, 0, EXP_TOLERANCE, 0},
+{116, 1066695393u, 1078732765u, 1078732765u, 0, EXP_TOLERANCE, 0},
+{117, 1066779279u, 1078867232u, 1078867232u, 0, EXP_TOLERANCE, 0},
+{118, 1066863165u, 1079003050u, 1079003050u, 0, EXP_TOLERANCE, 0},
+{119, 1066947052u, 1079140234u, 1079140234u, 0, EXP_TOLERANCE, 0},
+{120, 1070141403u, 1083830126u, 1083830126u, 0, EXP_TOLERANCE, 0},
+{121, 1078530011u, 1102651427u, 1102651427u, 0, EXP_TOLERANCE, 0},
+{122, 1083624420u, 1121886899u, 1121886899u, 0, EXP_TOLERANCE, 0},
+{123, 1058642330u, 1072249649u, 1072249649u, 0, EXP_TOLERANCE, 0},
+{124, 1075000115u, 1092589119u, 1092589119u, 0, EXP_TOLERANCE, 0},
+{125, 1082130432u, 1113220225u, 1113220225u, 0, EXP_TOLERANCE, 0},
+{126, 1085695590u, 1133866754u, 1133866754u, 0, EXP_TOLERANCE, 0},
+{127, 1089260749u, 1154252673u, 1154252673u, 0, EXP_TOLERANCE, 0},
+{128, 1091672474u, 1175186737u, 1175186737u, 0, EXP_TOLERANCE, 0},
+{129, 1093455053u, 1195343060u, 1195343060u, 0, EXP_TOLERANCE, 0},
+{130, 1095237632u, 1216546343u, 1216546343u, 0, EXP_TOLERANCE, 0},
+{131, 1097020211u, 1236487677u, 1236487677u, 0, EXP_TOLERANCE, 0},
+{132, 1098802790u, 1257594946u, 1257594946u, 0, EXP_TOLERANCE, 0},
+{133, 1099746509u, 1277683114u, 1277683114u, 0, EXP_TOLERANCE, 0},
+{134, 1100637798u, 1298514882u, 1298514882u, 0, EXP_TOLERANCE, 0},
+{135, 1101529088u, 1318926100u, 1318926100u, 0, EXP_TOLERANCE, 0},
+{136, 1102420378u, 1339499947u, 1339499947u, 0, EXP_TOLERANCE, 0},
+{137, 1103311667u, 1360213626u, 1360213626u, 0, EXP_TOLERANCE, 0},
+{138, 1104202957u, 1380545923u, 1380545923u, 0, EXP_TOLERANCE, 0},
+{139, 1105094246u, 1401542857u, 1401542857u, 0, EXP_TOLERANCE, 0},
+{140, 1105985536u, 1421648972u, 1421648972u, 0, EXP_TOLERANCE, 0},
+{141, 1082634597u, 1116397362u, 1116397362u, 0, EXP_TOLERANCE, 0},
+{142, 1115190228u, 1816356396u, 1816356396u, 0, EXP_TOLERANCE, 0},
+{143, 1106438075u, 1432328497u, 1432328497u, 0, EXP_TOLERANCE, 0},
+{144, 1018427456u, 1065539544u, 1065539544u, 0, EXP_TOLERANCE, 0},
+{145, 1046447761u, 1067399564u, 1067399564u, 0, EXP_TOLERANCE, 0},
+{146, 1042051987u, 1066737957u, 1066737957u, 0, EXP_TOLERANCE, 0},
+{147, 1090693943u, 1163665644u, 1163665644u, 0, EXP_TOLERANCE, 0},
+{148, 1108590126u, 1511795659u, 1511795659u, 0, EXP_TOLERANCE, 0},
+{149, 1069578284u, 1083175139u, 1083175139u, 0, EXP_TOLERANCE, 0},
+{150, 1069238236u, 1082800389u, 1082800389u, 0, EXP_TOLERANCE, 0},
+{151, 1025202705u, 1065677487u, 1065677487u, 0, EXP_TOLERANCE, 0},
+{152, 1091726201u, 1175668846u, 1175668846u, 0, EXP_TOLERANCE, 0},
+{153, 1043690266u, 1066979483u, 1066979483u, 0, EXP_TOLERANCE, 0},
+{154, 1069138828u, 1082693675u, 1082693675u, 0, EXP_TOLERANCE, 0},
+{155, 1032530529u, 1065943051u, 1065943051u, 0, EXP_TOLERANCE, 0},
+{156, 1019185416u, 1065551659u, 1065551659u, 0, EXP_TOLERANCE, 0},
+{157, 1035062552u, 1066114038u, 1066114038u, 0, EXP_TOLERANCE, 0},
+{158, 1040899644u, 1066571569u, 1066571569u, 0, EXP_TOLERANCE, 0},
+{159, 1105267499u, 1405080525u, 1405080525u, 0, EXP_TOLERANCE, 0},
+{160, 1031940153u, 1065903645u, 1065903645u, 0, EXP_TOLERANCE, 0},
+{161, 1100353916u, 1292219150u, 1292219150u, 0, EXP_TOLERANCE, 0},
+{162, 1118272510u, 2078349621u, 2078349621u, 0, EXP_TOLERANCE, 0},
+{163, 1052005275u, 1068894831u, 1068894831u, 0, EXP_TOLERANCE, 0},
+{164, 1051595516u, 1068750028u, 1068750028u, 0, EXP_TOLERANCE, 0},
+{165, 1042459941u, 1066797550u, 1066797550u, 0, EXP_TOLERANCE, 0},
+{166, 1015139825u, 1065487194u, 1065487194u, 0, EXP_TOLERANCE, 0},
+{167, 1027402057u, 1065749167u, 1065749167u, 0, EXP_TOLERANCE, 0},
+{168, 1092902066u, 1189217227u, 1189217227u, 0, EXP_TOLERANCE, 0},
+{169, 1089609605u, 1156678213u, 1156678213u, 0, EXP_TOLERANCE, 0},
+{170, 1103961891u, 1375627298u, 1375627298u, 0, EXP_TOLERANCE, 0},
+{171, 1064017530u, 1075882016u, 1075882016u, 0, EXP_TOLERANCE, 0},
+{172, 1081612749u, 1111558359u, 1111558359u, 0, EXP_TOLERANCE, 0},
+{173, 1090236299u, 1159909278u, 1159909278u, 0, EXP_TOLERANCE, 0},
+{174, 1112740353u, 1703662707u, 1703662707u, 0, EXP_TOLERANCE, 0},
+{175, 1016536733u, 1065509399u, 1065509399u, 0, EXP_TOLERANCE, 0},
+{176, 1118464896u, 2096379477u, 2096379477u, 0, EXP_TOLERANCE, 0},
+{177, 1099513553u, 1272403043u, 1272403043u, 0, EXP_TOLERANCE, 0},
+{178, 1074304242u, 1090990231u, 1090990231u, 0, EXP_TOLERANCE, 0},
+{179, 1050044991u, 1068217824u, 1068217824u, 0, EXP_TOLERANCE, 0},
+{180, 1086079415u, 1135833648u, 1135833648u, 0, EXP_TOLERANCE, 0},
+{181, 1048899008u, 1067839982u, 1067839982u, 0, EXP_TOLERANCE, 0},
+{182, 1098535575u, 1253977432u, 1253977432u, 0, EXP_TOLERANCE, 0},
+{183, 1056796285u, 1070725879u, 1070725879u, 0, EXP_TOLERANCE, 0},
+{184, 1094236657u, 1204404773u, 1204404773u, 0, EXP_TOLERANCE, 0},
+{185, 1027140379u, 1065740608u, 1065740608u, 0, EXP_TOLERANCE, 0},
+{186, 1084461801u, 1126560528u, 1126560528u, 0, EXP_TOLERANCE, 0},
+{187, 1077234132u, 1099426748u, 1099426748u, 0, EXP_TOLERANCE, 0},
+{188, 1091836061u, 1176734999u, 1176734999u, 0, EXP_TOLERANCE, 0},
+{189, 1088410165u, 1149784227u, 1149784227u, 0, EXP_TOLERANCE, 0},
+{190, 1050059365u, 1068222645u, 1068222645u, 0, EXP_TOLERANCE, 0},
+{191, 1092649937u, 1186051502u, 1186051502u, 0, EXP_TOLERANCE, 0},
+{192, 1059867088u, 1073407214u, 1073407214u, 0, EXP_TOLERANCE, 0},
+{193, 1046232016u, 1067366071u, 1067366071u, 0, EXP_TOLERANCE, 0},
+{194, 1041556457u, 1066666057u, 1066666057u, 0, EXP_TOLERANCE, 0},
+{195, 1052289223u, 1068996217u, 1068996217u, 0, EXP_TOLERANCE, 0},
+{196, 1054774003u, 1069921003u, 1069921003u, 0, EXP_TOLERANCE, 0},
+{197, 1083319556u, 1119912811u, 1119912811u, 0, EXP_TOLERANCE, 0},
+{198, 1070223249u, 1083929038u, 1083929038u, 0, EXP_TOLERANCE, 0},
+{199, 1078801107u, 1103461496u, 1103461496u, 0, EXP_TOLERANCE, 0},
+{200, 1050942983u, 1068523051u, 1068523051u, 0, EXP_TOLERANCE, 0},
+{201, 1023352018u, 1065618561u, 1065618561u, 0, EXP_TOLERANCE, 0},
+{202, 1036601712u, 1066219564u, 1066219564u, 0, EXP_TOLERANCE, 0},
+{203, 1014979800u, 1065484986u, 1065484986u, 0, EXP_TOLERANCE, 0},
+{204, 1084262010u, 1125572253u, 1125572253u, 0, EXP_TOLERANCE, 0},
+{205, 1052778921u, 1069173095u, 1069173095u, 0, EXP_TOLERANCE, 0},
+{206, 1077810183u, 1100738137u, 1100738137u, 0, EXP_TOLERANCE, 0},
+{207, 1084939616u, 1129343441u, 1129343441u, 0, EXP_TOLERANCE, 0},
+{208, 1077413511u, 1099815970u, 1099815970u, 0, EXP_TOLERANCE, 0},
+{209, 1061774415u, 1074564362u, 1074564362u, 0, EXP_TOLERANCE, 0},
+{210, 1075260391u, 1093258691u, 1093258691u, 0, EXP_TOLERANCE, 0},
+{211, 1011007332u, 1065453522u, 1065453522u, 0, EXP_TOLERANCE, 0},
+{212, 1093263793u, 1193250687u, 1193250687u, 0, EXP_TOLERANCE, 0},
+{213, 1087344003u, 1143208517u, 1143208517u, 0, EXP_TOLERANCE, 0},
+{214, 1117835410u, 2038450983u, 2038450983u, 0, EXP_TOLERANCE, 0},
+{215, 1043103780u, 1066892341u, 1066892341u, 0, EXP_TOLERANCE, 0},
+{216, 1090306155u, 1160270677u, 1160270677u, 0, EXP_TOLERANCE, 0},
+{217, 1013026833u, 1065469503u, 1065469503u, 0, EXP_TOLERANCE, 0},
+{218, 1064488668u, 1076181876u, 1076181876u, 0, EXP_TOLERANCE, 0},
+{219, 1058808746u, 1072402018u, 1072402018u, 0, EXP_TOLERANCE, 0},
+{220, 1085379936u, 1132498287u, 1132498287u, 0, EXP_TOLERANCE, 0},
+{221, 1011547567u, 1065457794u, 1065457794u, 0, EXP_TOLERANCE, 0},
+{222, 1023886482u, 1065634870u, 1065634870u, 0, EXP_TOLERANCE, 0},
+{223, 1025428385u, 1065684815u, 1065684815u, 0, EXP_TOLERANCE, 0},
+{224, 1018637212u, 1065542895u, 1065542895u, 0, EXP_TOLERANCE, 0},
+{225, 1117199775u, 1979751943u, 1979751943u, 0, EXP_TOLERANCE, 0},
+{226, 1083088572u, 1118596995u, 1118596995u, 0, EXP_TOLERANCE, 0},
+{227, 1094749923u, 1210357028u, 1210357028u, 0, EXP_TOLERANCE, 0},
+{228, 1034709247u, 1066089985u, 1066089985u, 0, EXP_TOLERANCE, 0},
+{229, 1105234414u, 1404311714u, 1404311714u, 0, EXP_TOLERANCE, 0},
+{230, 1031637130u, 1065888859u, 1065888859u, 0, EXP_TOLERANCE, 0},
+{231, 1065798296u, 1077375779u, 1077375779u, 0, EXP_TOLERANCE, 0},
+{232, 1068550752u, 1082044780u, 1082044780u, 0, EXP_TOLERANCE, 0},
+{233, 1074093690u, 1090556451u, 1090556451u, 0, EXP_TOLERANCE, 0},
+{234, 1110141777u, 1583544929u, 1583544929u, 0, EXP_TOLERANCE, 0},
+{235, 1087522707u, 1144164398u, 1144164398u, 0, EXP_TOLERANCE, 0},
+{236, 1089253042u, 1154203512u, 1154203512u, 0, EXP_TOLERANCE, 0},
+{237, 1070475893u, 1084240518u, 1084240518u, 0, EXP_TOLERANCE, 0},
+{238, 1065761827u, 1077323625u, 1077323625u, 0, EXP_TOLERANCE, 0},
+{239, 1035717127u, 1066158768u, 1066158768u, 0, EXP_TOLERANCE, 0},
+{240, 1099152750u, 1264084739u, 1264084739u, 0, EXP_TOLERANCE, 0},
+{241, 1015617571u, 1065494782u, 1065494782u, 0, EXP_TOLERANCE, 0},
+{242, 1040672833u, 1066539155u, 1066539155u, 0, EXP_TOLERANCE, 0},
+{243, 1080781593u, 1109284219u, 1109284219u, 0, EXP_TOLERANCE, 0},
+{244, 1040875476u, 1066568110u, 1066568110u, 0, EXP_TOLERANCE, 0},
+{245, 1020112556u, 1065566501u, 1065566501u, 0, EXP_TOLERANCE, 0},
+{246, 1046146787u, 1067352870u, 1067352870u, 0, EXP_TOLERANCE, 0},
+{247, 1043662371u, 1066975321u, 1066975321u, 0, EXP_TOLERANCE, 0},
+{248, 1034647135u, 1066085763u, 1066085763u, 0, EXP_TOLERANCE, 0},
+{249, 1081336221u, 1110751206u, 1110751206u, 0, EXP_TOLERANCE, 0},
+{250, 1098878125u, 1258542001u, 1258542001u, 0, EXP_TOLERANCE, 0},
+{251, 1011637382u, 1065458504u, 1065458504u, 0, EXP_TOLERANCE, 0},
+{252, 1008460484u, 1065433410u, 1065433410u, 0, EXP_TOLERANCE, 0},
+{253, 1107342115u, 1454053213u, 1454053213u, 0, EXP_TOLERANCE, 0},
+{254, 1098588430u, 1254621775u, 1254621775u, 0, EXP_TOLERANCE, 0},
+{255, 1084032979u, 1124549318u, 1124549318u, 0, EXP_TOLERANCE, 0},
+{256, 1012481176u, 1065465182u, 1065465182u, 0, EXP_TOLERANCE, 0},
+{257, 1106838812u, 1441798446u, 1441798446u, 0, EXP_TOLERANCE, 0},
+{258, 1050346079u, 1068319255u, 1068319255u, 0, EXP_TOLERANCE, 0},
+{259, 1108701419u, 1517208885u, 1517208885u, 0, EXP_TOLERANCE, 0},
+{260, 1059787005u, 1073328915u, 1073328915u, 0, EXP_TOLERANCE, 0},
+{261, 1044137644u, 1067046470u, 1067046470u, 0, EXP_TOLERANCE, 0},
+{262, 1010973520u, 1065453254u, 1065453254u, 0, EXP_TOLERANCE, 0},
+{263, 1089984491u, 1158702046u, 1158702046u, 0, EXP_TOLERANCE, 0},
+{264, 1045591776u, 1067267310u, 1067267310u, 0, EXP_TOLERANCE, 0},
+{265, 1083608024u, 1121773273u, 1121773273u, 0, EXP_TOLERANCE, 0},
+{266, 1106642772u, 1436889651u, 1436889651u, 0, EXP_TOLERANCE, 0},
+{267, 1039381219u, 1066413223u, 1066413223u, 0, EXP_TOLERANCE, 0},
+{268, 1075129316u, 1092916302u, 1092916302u, 0, EXP_TOLERANCE, 0},
+{269, 1009293126u, 1065439980u, 1065439980u, 0, EXP_TOLERANCE, 0},
+{270, 1086570035u, 1138933348u, 1138933348u, 0, EXP_TOLERANCE, 0},
+{271, 1072752989u, 1087514711u, 1087514711u, 0, EXP_TOLERANCE, 0},
+{272, 1117749835u, 2030407796u, 2030407796u, 0, EXP_TOLERANCE, 0},
+{273, 1098086564u, 1249369596u, 1249369596u, 0, EXP_TOLERANCE, 0},
+{274, 1112054177u, 1671645028u, 1671645028u, 0, EXP_TOLERANCE, 0},
+{275, 1070033697u, 1083701425u, 1083701425u, 0, EXP_TOLERANCE, 0},
+{276, 1081598195u, 1111514539u, 1111514539u, 0, EXP_TOLERANCE, 0},
+{277, 1117244704u, 1983198281u, 1983198281u, 0, EXP_TOLERANCE, 0},
+{278, 1064154282u, 1075968187u, 1075968187u, 0, EXP_TOLERANCE, 0},
+{279, 1027267512u, 1065744765u, 1065744765u, 0, EXP_TOLERANCE, 0},
+{280, 1056871393u, 1070756716u, 1070756716u, 0, EXP_TOLERANCE, 0},
+{281, 1052964166u, 1069240682u, 1069240682u, 0, EXP_TOLERANCE, 0},
+{282, 1083857029u, 1123598411u, 1123598411u, 0, EXP_TOLERANCE, 0},
+{283, 1050317118u, 1068309458u, 1068309458u, 0, EXP_TOLERANCE, 0},
+{284, 1105535659u, 1411380676u, 1411380676u, 0, EXP_TOLERANCE, 0},
+{285, 1013864474u, 1065476140u, 1065476140u, 0, EXP_TOLERANCE, 0},
+{286, 1096937297u, 1235594288u, 1235594288u, 0, EXP_TOLERANCE, 0},
+{287, 1041050257u, 1066593155u, 1066593155u, 0, EXP_TOLERANCE, 0},
+{288, 1059777219u, 1073319373u, 1073319373u, 0, EXP_TOLERANCE, 0},
+{289, 1106107315u, 1424881430u, 1424881430u, 0, EXP_TOLERANCE, 0},
+{290, 1068857446u, 1082398380u, 1082398380u, 0, EXP_TOLERANCE, 0},
+{291, 1020650268u, 1065575121u, 1065575121u, 0, EXP_TOLERANCE, 0},
+{292, 1085258931u, 1131589792u, 1131589792u, 0, EXP_TOLERANCE, 0},
+{293, 1045302413u, 1067222982u, 1067222982u, 0, EXP_TOLERANCE, 0},
+{294, 1088789271u, 1151554336u, 1151554336u, 0, EXP_TOLERANCE, 0},
+{295, 1009727125u, 1065443407u, 1065443407u, 0, EXP_TOLERANCE, 0},
+{296, 1034971440u, 1066107829u, 1066107829u, 0, EXP_TOLERANCE, 0},
+{297, 1111472322u, 1645079799u, 1645079799u, 0, EXP_TOLERANCE, 0},
+{298, 1098047277u, 1248772238u, 1248772238u, 0, EXP_TOLERANCE, 0},
+{299, 1053654343u, 1069495802u, 1069495802u, 0, EXP_TOLERANCE, 0},
+{300, 1017067235u, 1065517846u, 1065517846u, 0, EXP_TOLERANCE, 0},
+{301, 1021021288u, 1065581073u, 1065581073u, 0, EXP_TOLERANCE, 0},
+{302, 1061075724u, 1074188639u, 1074188639u, 0, EXP_TOLERANCE, 0},
+{303, 1111466355u, 1644870477u, 1644870477u, 0, EXP_TOLERANCE, 0},
+{304, 1062629929u, 1075046244u, 1075046244u, 0, EXP_TOLERANCE, 0},
+{305, 1035652969u, 1066154374u, 1066154374u, 0, EXP_TOLERANCE, 0},
+{306, 1089415367u, 1155278106u, 1155278106u, 0, EXP_TOLERANCE, 0},
+{307, 1097797267u, 1245452987u, 1245452987u, 0, EXP_TOLERANCE, 0},
+{308, 1043842627u, 1067002246u, 1067002246u, 0, EXP_TOLERANCE, 0},
+{309, 1065083199u, 1076572489u, 1076572489u, 0, EXP_TOLERANCE, 0},
+{310, 1086073356u, 1135799723u, 1135799723u, 0, EXP_TOLERANCE, 0},
+{311, 1105391405u, 1408432053u, 1408432053u, 0, EXP_TOLERANCE, 0},
+{312, 1007073386u, 1065422477u, 1065422477u, 0, EXP_TOLERANCE, 0},
+{313, 1112946687u, 1712954031u, 1712954031u, 0, EXP_TOLERANCE, 0},
+{314, 1054571099u, 1069842892u, 1069842892u, 0, EXP_TOLERANCE, 0},
+{315, 1063035063u, 1075283159u, 1075283159u, 0, EXP_TOLERANCE, 0},
+{316, 1111195621u, 1631948943u, 1631948943u, 0, EXP_TOLERANCE, 0},
+{317, 1106582941u, 1435722047u, 1435722047u, 0, EXP_TOLERANCE, 0},
+{318, 1098367790u, 1252134505u, 1252134505u, 0, EXP_TOLERANCE, 0},
+{319, 1114614727u, 1789788955u, 1789788955u, 0, EXP_TOLERANCE, 0},
+{320, 1059182838u, 1072750102u, 1072750102u, 0, EXP_TOLERANCE, 0},
+{321, 1090931053u, 1166671300u, 1166671300u, 0, EXP_TOLERANCE, 0},
+{322, 1086777898u, 1140481682u, 1140481682u, 0, EXP_TOLERANCE, 0},
+{323, 1015758316u, 1065497018u, 1065497018u, 0, EXP_TOLERANCE, 0},
+{324, 1105963769u, 1421146184u, 1421146184u, 0, EXP_TOLERANCE, 0},
+{325, 1092601275u, 1185523374u, 1185523374u, 0, EXP_TOLERANCE, 0},
+{326, 1026767045u, 1065728411u, 1065728411u, 0, EXP_TOLERANCE, 0},
+{327, 1115692265u, 1839892889u, 1839892889u, 0, EXP_TOLERANCE, 0},
+{328, 1009779956u, 1065443824u, 1065443824u, 0, EXP_TOLERANCE, 0},
+{329, 1044309006u, 1067072247u, 1067072247u, 0, EXP_TOLERANCE, 0},
+{330, 1036510567u, 1066213281u, 1066213281u, 0, EXP_TOLERANCE, 0},
+{331, 1090731743u, 1164195178u, 1164195178u, 0, EXP_TOLERANCE, 0},
+{332, 1017223107u, 1065520330u, 1065520330u, 0, EXP_TOLERANCE, 0},
+{333, 1052155526u, 1068948373u, 1068948373u, 0, EXP_TOLERANCE, 0},
+{334, 1059461860u, 1073014826u, 1073014826u, 0, EXP_TOLERANCE, 0},
+{335, 1058086743u, 1071751765u, 1071751765u, 0, EXP_TOLERANCE, 0},
+{336, 1112039377u, 1671057660u, 1671057660u, 0, EXP_TOLERANCE, 0},
+{337, 1095033668u, 1213708815u, 1213708815u, 0, EXP_TOLERANCE, 0},
+{338, 1086707327u, 1139938718u, 1139938718u, 0, EXP_TOLERANCE, 0},
+{339, 1079361630u, 1105312011u, 1105312011u, 0, EXP_TOLERANCE, 0},
+{340, 1066116543u, 1077840653u, 1077840653u, 0, EXP_TOLERANCE, 0},
+{341, 1064166730u, 1075976066u, 1075976066u, 0, EXP_TOLERANCE, 0},
+{342, 1102348498u, 1337693492u, 1337693492u, 0, EXP_TOLERANCE, 0},
+{343, 1015629204u, 1065494967u, 1065494967u, 0, EXP_TOLERANCE, 0},
+{344, 1030195747u, 1065841068u, 1065841068u, 0, EXP_TOLERANCE, 0},
+{345, 1070398346u, 1084143913u, 1084143913u, 0, EXP_TOLERANCE, 0},
+{346, 1038252147u, 1066334072u, 1066334072u, 0, EXP_TOLERANCE, 0},
+{347, 1040899763u, 1066571586u, 1066571586u, 0, EXP_TOLERANCE, 0},
+{348, 1083078837u, 1118544657u, 1118544657u, 0, EXP_TOLERANCE, 0},
+{349, 1056607786u, 1070648789u, 1070648789u, 0, EXP_TOLERANCE, 0},
+{350, 1096376046u, 1229062802u, 1229062802u, 0, EXP_TOLERANCE, 0},
+{351, 1052228830u, 1068974581u, 1068974581u, 0, EXP_TOLERANCE, 0},
+{352, 1053012169u, 1069258256u, 1069258256u, 0, EXP_TOLERANCE, 0},
+{353, 1049721049u, 1068109706u, 1068109706u, 0, EXP_TOLERANCE, 0},
+{354, 1094424013u, 1206991542u, 1206991542u, 0, EXP_TOLERANCE, 0},
+{355, 1016617613u, 1065510686u, 1065510686u, 0, EXP_TOLERANCE, 0},
+{356, 1024296406u, 1065648120u, 1065648120u, 0, EXP_TOLERANCE, 0},
+{357, 1022125625u, 1065598816u, 1065598816u, 0, EXP_TOLERANCE, 0},
+{358, 1032104423u, 1065914592u, 1065914592u, 0, EXP_TOLERANCE, 0},
+{359, 1092536785u, 1184860180u, 1184860180u, 0, EXP_TOLERANCE, 0},
+{360, 1059516864u, 1073067533u, 1073067533u, 0, EXP_TOLERANCE, 0},
+{361, 1115763378u, 1846718963u, 1846718963u, 0, EXP_TOLERANCE, 0},
+{362, 1107550779u, 1463656357u, 1463656357u, 0, EXP_TOLERANCE, 0},
+{363, 1071940738u, 1086243641u, 1086243641u, 0, EXP_TOLERANCE, 0},
+{364, 1040041868u, 1066459846u, 1066459846u, 0, EXP_TOLERANCE, 0},
+{365, 1095143404u, 1215268570u, 1215268570u, 0, EXP_TOLERANCE, 0},
+{366, 1010621254u, 1065450470u, 1065450470u, 0, EXP_TOLERANCE, 0},
+{367, 1006780558u, 1065420171u, 1065420171u, 0, EXP_TOLERANCE, 0},
+{368, 1021933565u, 1065595727u, 1065595727u, 0, EXP_TOLERANCE, 0},
+{369, 1054686121u, 1069887113u, 1069887113u, 0, EXP_TOLERANCE, 0},
+{370, 1016828331u, 1065514041u, 1065514041u, 0, EXP_TOLERANCE, 0},
+{371, 1030636921u, 1065855668u, 1065855668u, 0, EXP_TOLERANCE, 0},
+{372, 1068608693u, 1082145451u, 1082145451u, 0, EXP_TOLERANCE, 0},
+{373, 1018961646u, 1065548081u, 1065548081u, 0, EXP_TOLERANCE, 0},
+{374, 1116031367u, 1871555577u, 1871555577u, 0, EXP_TOLERANCE, 0},
+{375, 1115305326u, 1821871751u, 1821871751u, 0, EXP_TOLERANCE, 0},
+{376, 1058958536u, 1072540463u, 1072540463u, 0, EXP_TOLERANCE, 0},
+{377, 1118019991u, 2055414797u, 2055414797u, 0, EXP_TOLERANCE, 0},
+{378, 1074544343u, 1091512203u, 1091512203u, 0, EXP_TOLERANCE, 0},
+{379, 1098466226u, 1253179808u, 1253179808u, 0, EXP_TOLERANCE, 0},
+{380, 1089802670u, 1157916191u, 1157916191u, 0, EXP_TOLERANCE, 0},
+{381, 1081671201u, 1111735895u, 1111735895u, 0, EXP_TOLERANCE, 0},
+{382, 1066726224u, 1078782030u, 1078782030u, 0, EXP_TOLERANCE, 0},
+{383, 1118799960u, 2126821501u, 2126821501u, 0, EXP_TOLERANCE, 0},
+{384, 1083377370u, 1120265465u, 1120265465u, 0, EXP_TOLERANCE, 0},
+{385, 1093053842u, 1191353231u, 1191353231u, 0, EXP_TOLERANCE, 0},
+{386, 1115933679u, 1862695146u, 1862695146u, 0, EXP_TOLERANCE, 0},
+{387, 1093696468u, 1198591966u, 1198591966u, 0, EXP_TOLERANCE, 0},
+{388, 1109187404u, 1539214917u, 1539214917u, 0, EXP_TOLERANCE, 0},
+{389, 1011930984u, 1065460827u, 1065460827u, 0, EXP_TOLERANCE, 0},
+{390, 1050644766u, 1068420780u, 1068420780u, 0, EXP_TOLERANCE, 0},
+{391, 1047982899u, 1067641019u, 1067641019u, 0, EXP_TOLERANCE, 0},
+{392, 1020067601u, 1065565781u, 1065565781u, 0, EXP_TOLERANCE, 0},
+{393, 1040189459u, 1066470439u, 1066470439u, 0, EXP_TOLERANCE, 0},
+{394, 1081753082u, 1111988788u, 1111988788u, 0, EXP_TOLERANCE, 0},
+{395, 1079378407u, 1105371301u, 1105371301u, 0, EXP_TOLERANCE, 0},
+{396, 1024146852u, 1065643284u, 1065643284u, 0, EXP_TOLERANCE, 0},
+{397, 1029918023u, 1065831889u, 1065831889u, 0, EXP_TOLERANCE, 0},
+{398, 1099388140u, 1269400788u, 1269400788u, 0, EXP_TOLERANCE, 0},
+{399, 1025508438u, 1065687416u, 1065687416u, 0, EXP_TOLERANCE, 0},
+{400, 1070164694u, 1083858175u, 1083858175u, 0, EXP_TOLERANCE, 0},
+{401, 1009738856u, 1065443499u, 1065443499u, 0, EXP_TOLERANCE, 0},
+{402, 1087726104u, 1145356237u, 1145356237u, 0, EXP_TOLERANCE, 0},
+{403, 1027667012u, 1065757842u, 1065757842u, 0, EXP_TOLERANCE, 0},
+{404, 1026529187u, 1065720649u, 1065720649u, 0, EXP_TOLERANCE, 0},
+{405, 1106219203u, 1427327388u, 1427327388u, 0, EXP_TOLERANCE, 0},
+{406, 1061557574u, 1074446076u, 1074446076u, 0, EXP_TOLERANCE, 0},
+{407, 1068190855u, 1081343804u, 1081343804u, 0, EXP_TOLERANCE, 0},
+{408, 1028147309u, 1065773589u, 1065773589u, 0, EXP_TOLERANCE, 0},
+{409, 1011538415u, 1065457721u, 1065457721u, 0, EXP_TOLERANCE, 0},
+{410, 1087333890u, 1143156822u, 1143156822u, 0, EXP_TOLERANCE, 0},
+{411, 1065783414u, 1077354469u, 1077354469u, 0, EXP_TOLERANCE, 0},
+{412, 1047658941u, 1067589604u, 1067589604u, 0, EXP_TOLERANCE, 0},
+{413, 1020835656u, 1065578095u, 1065578095u, 0, EXP_TOLERANCE, 0},
+{414, 1007660778u, 1065427105u, 1065427105u, 0, EXP_TOLERANCE, 0},
+{415, 1030084655u, 1065837395u, 1065837395u, 0, EXP_TOLERANCE, 0},
+{416, 1064927159u, 1076468626u, 1076468626u, 0, EXP_TOLERANCE, 0},
+{417, 1056082624u, 1070436284u, 1070436284u, 0, EXP_TOLERANCE, 0},
+{418, 1026762640u, 1065728267u, 1065728267u, 0, EXP_TOLERANCE, 0},
+{419, 1093125590u, 1191959413u, 1191959413u, 0, EXP_TOLERANCE, 0},
+{420, 1029732434u, 1065825761u, 1065825761u, 0, EXP_TOLERANCE, 0},
+{421, 1064993108u, 1076512405u, 1076512405u, 0, EXP_TOLERANCE, 0},
+{422, 1063507120u, 1075566524u, 1075566524u, 0, EXP_TOLERANCE, 0},
+{423, 1065876936u, 1077489016u, 1077489016u, 0, EXP_TOLERANCE, 0},
+{424, 1084196703u, 1125269096u, 1125269096u, 0, EXP_TOLERANCE, 0},
+{425, 1083357891u, 1120145562u, 1120145562u, 0, EXP_TOLERANCE, 0},
+{426, 1087303226u, 1143001584u, 1143001584u, 0, EXP_TOLERANCE, 0},
+{427, 1047274418u, 1067528899u, 1067528899u, 0, EXP_TOLERANCE, 0},
+{428, 1066157309u, 1077901485u, 1077901485u, 0, EXP_TOLERANCE, 0},
+{429, 1041100905u, 1066600424u, 1066600424u, 0, EXP_TOLERANCE, 0},
+{430, 1057444025u, 1071195998u, 1071195998u, 0, EXP_TOLERANCE, 0},
+{431, 1094747861u, 1210335839u, 1210335839u, 0, EXP_TOLERANCE, 0},
+{432, 1110000152u, 1577335997u, 1577335997u, 0, EXP_TOLERANCE, 0},
+{433, 1013018969u, 1065469440u, 1065469440u, 0, EXP_TOLERANCE, 0},
+{434, 1111828086u, 1661589669u, 1661589669u, 0, EXP_TOLERANCE, 0},
+{435, 1022250020u, 1065600816u, 1065600816u, 0, EXP_TOLERANCE, 0},
+{436, 1078328640u, 1102082707u, 1102082707u, 0, EXP_TOLERANCE, 0},
+{437, 1058832956u, 1072424311u, 1072424311u, 0, EXP_TOLERANCE, 0},
+{438, 1117000602u, 1960911677u, 1960911677u, 0, EXP_TOLERANCE, 0},
+{439, 1100264675u, 1289849849u, 1289849849u, 0, EXP_TOLERANCE, 0},
+{440, 1085721092u, 1133986574u, 1133986574u, 0, EXP_TOLERANCE, 0},
+{441, 1069009211u, 1082556418u, 1082556418u, 0, EXP_TOLERANCE, 0},
+{442, 1057613820u, 1071340759u, 1071340759u, 0, EXP_TOLERANCE, 0},
+{443, 1062874882u, 1075188804u, 1075188804u, 0, EXP_TOLERANCE, 0},
+{444, 1079554187u, 1106006973u, 1106006973u, 0, EXP_TOLERANCE, 0},
+{445, 1046944877u, 1067477149u, 1067477149u, 0, EXP_TOLERANCE, 0},
+{446, 1097750489u, 1244915131u, 1244915131u, 0, EXP_TOLERANCE, 0},
+{447, 1074473903u, 1091355960u, 1091355960u, 0, EXP_TOLERANCE, 0},
+{448, 1023707715u, 1065629098u, 1065629098u, 0, EXP_TOLERANCE, 0},
+{449, 1079061705u, 1104291134u, 1104291134u, 0, EXP_TOLERANCE, 0},
+{450, 1080125709u, 1107782090u, 1107782090u, 0, EXP_TOLERANCE, 0},
+{451, 1057966560u, 1071646216u, 1071646216u, 0, EXP_TOLERANCE, 0},
+{452, 1098046913u, 1248766806u, 1248766806u, 0, EXP_TOLERANCE, 0},
+{453, 1079118215u, 1104477942u, 1104477942u, 0, EXP_TOLERANCE, 0},
+{454, 1076920325u, 1098661587u, 1098661587u, 0, EXP_TOLERANCE, 0},
+{455, 1077338039u, 1099650177u, 1099650177u, 0, EXP_TOLERANCE, 0},
+{456, 1049161799u, 1067925490u, 1067925490u, 0, EXP_TOLERANCE, 0},
+{457, 1025484427u, 1065686636u, 1065686636u, 0, EXP_TOLERANCE, 0},
+{458, 1081885050u, 1112406912u, 1112406912u, 0, EXP_TOLERANCE, 0},
+{459, 1036634459u, 1066221822u, 1066221822u, 0, EXP_TOLERANCE, 0},
+{460, 1055376216u, 1070155635u, 1070155635u, 0, EXP_TOLERANCE, 0},
+{461, 1052873853u, 1069207685u, 1069207685u, 0, EXP_TOLERANCE, 0},
+{462, 1013844829u, 1065475984u, 1065475984u, 0, EXP_TOLERANCE, 0},
+{463, 1019491913u, 1065556563u, 1065556563u, 0, EXP_TOLERANCE, 0},
+{464, 1046721730u, 1067442252u, 1067442252u, 0, EXP_TOLERANCE, 0},
+{465, 1056763990u, 1070712641u, 1070712641u, 0, EXP_TOLERANCE, 0},
+{466, 1053047266u, 1069271122u, 1069271122u, 0, EXP_TOLERANCE, 0},
+{467, 1051195553u, 1068610382u, 1068610382u, 0, EXP_TOLERANCE, 0},
+{468, 1106033213u, 1422825889u, 1422825889u, 0, EXP_TOLERANCE, 0},
+{469, 1039695875u, 1066435400u, 1066435400u, 0, EXP_TOLERANCE, 0},
+{470, 1087938837u, 1146732848u, 1146732848u, 0, EXP_TOLERANCE, 0},
+{471, 1086382700u, 1137663500u, 1137663500u, 0, EXP_TOLERANCE, 0},
+{472, 1041130723u, 1066604706u, 1066604706u, 0, EXP_TOLERANCE, 0},
+{473, 1070900975u, 1084786236u, 1084786236u, 0, EXP_TOLERANCE, 0},
+{474, 1094918207u, 1212234718u, 1212234718u, 0, EXP_TOLERANCE, 0},
+{475, 1059727635u, 1073271108u, 1073271108u, 0, EXP_TOLERANCE, 0},
+{476, 1021599538u, 1065590359u, 1065590359u, 0, EXP_TOLERANCE, 0},
+{477, 1067180353u, 1079529057u, 1079529057u, 0, EXP_TOLERANCE, 0},
+{478, 1101660315u, 1321856380u, 1321856380u, 0, EXP_TOLERANCE, 0},
+{479, 1109054467u, 1533379708u, 1533379708u, 0, EXP_TOLERANCE, 0},
+{480, 1103532738u, 1365273754u, 1365273754u, 0, EXP_TOLERANCE, 0},
+{481, 1035525679u, 1066145663u, 1066145663u, 0, EXP_TOLERANCE, 0},
+{482, 1094330983u, 1205649366u, 1205649366u, 0, EXP_TOLERANCE, 0},
+{483, 1034492227u, 1066075242u, 1066075242u, 0, EXP_TOLERANCE, 0},
+{484, 1072096532u, 1086477996u, 1086477996u, 0, EXP_TOLERANCE, 0},
+{485, 1075990050u, 1095373204u, 1095373204u, 0, EXP_TOLERANCE, 0},
+{486, 1109033185u, 1532206806u, 1532206806u, 0, EXP_TOLERANCE, 0},
+{487, 1089560310u, 1156310516u, 1156310516u, 0, EXP_TOLERANCE, 0},
+{488, 1103328289u, 1360524395u, 1360524395u, 0, EXP_TOLERANCE, 0},
+{489, 1061907666u, 1074637811u, 1074637811u, 0, EXP_TOLERANCE, 0},
+{490, 1083710041u, 1122494921u, 1122494921u, 0, EXP_TOLERANCE, 0},
+{491, 1100867428u, 1303512311u, 1303512311u, 0, EXP_TOLERANCE, 0},
+{492, 1055125047u, 1070057263u, 1070057263u, 0, EXP_TOLERANCE, 0},
+{493, 1104553235u, 1388607970u, 1388607970u, 0, EXP_TOLERANCE, 0},
+{494, 1032386633u, 1065933431u, 1065933431u, 0, EXP_TOLERANCE, 0},
+{495, 1034271795u, 1066060291u, 1066060291u, 0, EXP_TOLERANCE, 0},
+{496, 1055506573u, 1070206981u, 1070206981u, 0, EXP_TOLERANCE, 0},
+{497, 1104281863u, 1382690251u, 1382690251u, 0, EXP_TOLERANCE, 0},
+{498, 1025475511u, 1065686346u, 1065686346u, 0, EXP_TOLERANCE, 0},
+{499, 1076895780u, 1098565127u, 1098565127u, 0, EXP_TOLERANCE, 0},
+{500, 1009589036u, 1065442316u, 1065442316u, 0, EXP_TOLERANCE, 0},
+{501, 1110359908u, 1593993278u, 1593993278u, 0, EXP_TOLERANCE, 0},
+{502, 1028807839u, 1065795292u, 1065795292u, 0, EXP_TOLERANCE, 0},
+{503, 1109436551u, 1551267569u, 1551267569u, 0, EXP_TOLERANCE, 0},
+{504, 1021730413u, 1065592462u, 1065592462u, 0, EXP_TOLERANCE, 0},
+{505, 1072081640u, 1086455406u, 1086455406u, 0, EXP_TOLERANCE, 0},
+{506, 1077465839u, 1099932685u, 1099932685u, 0, EXP_TOLERANCE, 0},
+{507, 1044300951u, 1067071033u, 1067071033u, 0, EXP_TOLERANCE, 0},
+{508, 1097032302u, 1236623967u, 1236623967u, 0, EXP_TOLERANCE, 0},
+{509, 1053981400u, 1069618541u, 1069618541u, 0, EXP_TOLERANCE, 0},
+{510, 1078478376u, 1102502986u, 1102502986u, 0, EXP_TOLERANCE, 0},
+{511, 1098068815u, 1249096941u, 1249096941u, 0, EXP_TOLERANCE, 0},
+{512, 1021467071u, 1065588231u, 1065588231u, 0, EXP_TOLERANCE, 0},
+{513, 1009763492u, 1065443694u, 1065443694u, 0, EXP_TOLERANCE, 0},
+{514, 1044623194u, 1067119679u, 1067119679u, 0, EXP_TOLERANCE, 0},
+{515, 1015705469u, 1065496179u, 1065496179u, 0, EXP_TOLERANCE, 0},
+{516, 1113725538u, 1748718730u, 1748718730u, 0, EXP_TOLERANCE, 0},
+{517, 1091841457u, 1176790302u, 1176790302u, 0, EXP_TOLERANCE, 0},
+{518, 1028958993u, 1065800266u, 1065800266u, 0, EXP_TOLERANCE, 0},
+{519, 1107682111u, 1469872413u, 1469872413u, 0, EXP_TOLERANCE, 0},
+{520, 1116027769u, 1871304107u, 1871304107u, 0, EXP_TOLERANCE, 0},
+{521, 1095143732u, 1215273481u, 1215273481u, 0, EXP_TOLERANCE, 0},
+{522, 1109791849u, 1567552701u, 1567552701u, 0, EXP_TOLERANCE, 0},
+{523, 1080343714u, 1108255550u, 1108255550u, 0, EXP_TOLERANCE, 0},
+{524, 1097380552u, 1241306521u, 1241306521u, 0, EXP_TOLERANCE, 0},
+{525, 1014020764u, 1065477379u, 1065477379u, 0, EXP_TOLERANCE, 0},
+{526, 1021650291u, 1065591174u, 1065591174u, 0, EXP_TOLERANCE, 0},
+{527, 1082778705u, 1117044746u, 1117044746u, 0, EXP_TOLERANCE, 0},
+{528, 1008484823u, 1065433602u, 1065433602u, 0, EXP_TOLERANCE, 0},
+{529, 1007086271u, 1065422579u, 1065422579u, 0, EXP_TOLERANCE, 0},
+{530, 1073311024u, 1088462085u, 1088462085u, 0, EXP_TOLERANCE, 0},
+{531, 1019109924u, 1065550452u, 1065550452u, 0, EXP_TOLERANCE, 0},
+{532, 1018648250u, 1065543071u, 1065543071u, 0, EXP_TOLERANCE, 0},
+{533, 1072458508u, 1087039603u, 1087039603u, 0, EXP_TOLERANCE, 0},
+{534, 1056562851u, 1070630475u, 1070630475u, 0, EXP_TOLERANCE, 0},
+{535, 1043828826u, 1067000182u, 1067000182u, 0, EXP_TOLERANCE, 0},
+{536, 1042710124u, 1066834276u, 1066834276u, 0, EXP_TOLERANCE, 0},
+{537, 1096757647u, 1233884720u, 1233884720u, 0, EXP_TOLERANCE, 0},
+{538, 1110766850u, 1612314434u, 1612314434u, 0, EXP_TOLERANCE, 0},
+{539, 1050846809u, 1068489970u, 1068489970u, 0, EXP_TOLERANCE, 0},
+{540, 1049017704u, 1067878521u, 1067878521u, 0, EXP_TOLERANCE, 0},
+{541, 1041850943u, 1066708722u, 1066708722u, 0, EXP_TOLERANCE, 0},
+{542, 1113559832u, 1741102728u, 1741102728u, 0, EXP_TOLERANCE, 0},
+{543, 1078359574u, 1102168308u, 1102168308u, 0, EXP_TOLERANCE, 0},
+{544, 1063112056u, 1075328834u, 1075328834u, 0, EXP_TOLERANCE, 0},
+{545, 1107012128u, 1445401767u, 1445401767u, 0, EXP_TOLERANCE, 0},
+{546, 1061909506u, 1074638830u, 1074638830u, 0, EXP_TOLERANCE, 0},
+{547, 1027921603u, 1065766186u, 1065766186u, 0, EXP_TOLERANCE, 0},
+{548, 1076752219u, 1098012128u, 1098012128u, 0, EXP_TOLERANCE, 0},
+{549, 1021430647u, 1065587646u, 1065587646u, 0, EXP_TOLERANCE, 0},
+{550, 1013529335u, 1065473484u, 1065473484u, 0, EXP_TOLERANCE, 0},
+{551, 1094132929u, 1203159396u, 1203159396u, 0, EXP_TOLERANCE, 0},
+{552, 1015879284u, 1065498941u, 1065498941u, 0, EXP_TOLERANCE, 0},
+{553, 1095821013u, 1222937523u, 1222937523u, 0, EXP_TOLERANCE, 0},
+{554, 1051548019u, 1068733358u, 1068733358u, 0, EXP_TOLERANCE, 0},
+{555, 1038345009u, 1066340557u, 1066340557u, 0, EXP_TOLERANCE, 0},
+{556, 1111212143u, 1632791232u, 1632791232u, 0, EXP_TOLERANCE, 0},
+{557, 1105553664u, 1411746926u, 1411746926u, 0, EXP_TOLERANCE, 0},
+{558, 1085166299u, 1130902555u, 1130902555u, 0, EXP_TOLERANCE, 0},
+{559, 1009111476u, 1065438546u, 1065438546u, 0, EXP_TOLERANCE, 0},
+{560, 1035296501u, 1066130000u, 1066130000u, 0, EXP_TOLERANCE, 0},
+{561, 1099936659u, 1282493540u, 1282493540u, 0, EXP_TOLERANCE, 0},
+{562, 1046117057u, 1067348269u, 1067348269u, 0, EXP_TOLERANCE, 0},
+{563, 1039949220u, 1066453293u, 1066453293u, 0, EXP_TOLERANCE, 0},
+{564, 1044713476u, 1067133350u, 1067133350u, 0, EXP_TOLERANCE, 0},
+{565, 1053631629u, 1069487322u, 1069487322u, 0, EXP_TOLERANCE, 0},
+{566, 1097055270u, 1236887207u, 1236887207u, 0, EXP_TOLERANCE, 0},
+{567, 1108662760u, 1515063328u, 1515063328u, 0, EXP_TOLERANCE, 0}
+
+// AUTOMATICALLY GENERATED VECTORS STOP
+
+};
+
+#endif // CYGONCE_LIBM_EXPF_H multiple inclusion protection
+
+// EOF expf.h
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/expm1f.c b/ecos/packages/language/c/libm/current/tests/vectors/expm1f.c
new file mode 100644
index 0000000..cb72dbd
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/expm1f.c
@@ -0,0 +1,115 @@
+//===========================================================================
+//
+// expm1f.c
+//
+// Test of expm1f() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// Declarations for test system:
+//
+// TESTCASE_TYPE=CYG_TEST_MODULE
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include <cyg/infra/testcase.h> // Test infrastructure
+#include <math.h> // Header for this package
+#include <sys/ieeefp.h> // Cyg_libm_ieee_float_shape_type
+#include "vectors/vector_support_float.h"// extra support for math tests
+
+#include "vectors/expm1f.h"
+
+// FUNCTIONS
+
+static void
+test( CYG_ADDRWORD data )
+{
+ cyg_ucount32 vec_size;
+ cyg_bool ret;
+
+ vec_size = sizeof(expm1f_vec) / sizeof(Cyg_libm_test_float_vec_t);
+ ret = doTestVecFloat( (CYG_ADDRWORD) &expm1f, CYG_LIBM_TEST_VEC_FLOAT,
+ CYG_LIBM_TEST_VEC_NONE, CYG_LIBM_TEST_VEC_FLOAT,
+ &expm1f_vec[0], vec_size );
+
+ if (ret==true)
+ {
+ CYG_TEST_PASS("expm1f() is stable");
+ } // if
+ else
+ {
+ CYG_TEST_FAIL("expm1f() failed tests");
+ } // else
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for Math "
+ "library expm1f() function");
+} // test()
+
+
+int
+main(int argc, char *argv[])
+{
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for Math library "
+ "expm1f() function");
+
+ START_TEST( test );
+
+ CYG_TEST_PASS_FINISH("Testing is not applicable to this configuration");
+
+} // main()
+
+
+// EOF expm1f.c
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/expm1f.h b/ecos/packages/language/c/libm/current/tests/vectors/expm1f.h
new file mode 100644
index 0000000..b1f3ff0
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/expm1f.h
@@ -0,0 +1,2551 @@
+#ifndef CYGONCE_LIBM_EXPM1F_H
+#define CYGONCE_LIBM_EXPM1F_H
+//===========================================================================
+//
+// expm1f.h
+//
+// Test vectors for testing of expm1f() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage: #include "vectors/expm1f.h"
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include "vectors/vector_support_float.h"// extra support for math tests
+
+#define EXPM1F_TOLERANCE 1.0E-04
+
+static const Cyg_libm_test_float_vec_t expm1f_vec[] = {
+
+// AUTOMATICALLY GENERATED VECTORS START
+
+{0, 3212836864u, 3079358544u, 3206664871u, 0, EXPM1F_TOLERANCE, 0},
+{1, 3212836864u, 3079358544u, 3206664871u, 0, EXPM1F_TOLERANCE, 0},
+{2, 3212836864u, 3079358544u, 3206664871u, 0, EXPM1F_TOLERANCE, 0},
+{3, 3212836864u, 3079358544u, 3206664871u, 0, EXPM1F_TOLERANCE, 0},
+{4, 3212836864u, 3079358544u, 3206664871u, 0, EXPM1F_TOLERANCE, 0},
+{5, 3212836864u, 3079358544u, 3206664871u, 0, EXPM1F_TOLERANCE, 0},
+{6, 3212836864u, 3079358544u, 3206664871u, 0, EXPM1F_TOLERANCE, 0},
+{7, 3212836864u, 3079358544u, 3206664871u, 0, EXPM1F_TOLERANCE, 0},
+{8, 3212836864u, 3079358544u, 3206664871u, 0, EXPM1F_TOLERANCE, 0},
+{9, 3212836864u, 3079358544u, 3206664871u, 0, EXPM1F_TOLERANCE, 0},
+{10, 3212836864u, 3079358544u, 3206664871u, 0, EXPM1F_TOLERANCE, 0},
+{11, 3212836864u, 3079358544u, 3206664871u, 0, EXPM1F_TOLERANCE, 0},
+{12, 3212836864u, 3079358544u, 3206664871u, 0, EXPM1F_TOLERANCE, 0},
+{13, 3212836864u, 3079358544u, 3206664871u, 0, EXPM1F_TOLERANCE, 0},
+{14, 3212836864u, 3079358544u, 3206664871u, 0, EXPM1F_TOLERANCE, 0},
+{15, 3212836864u, 3079358544u, 3206664871u, 0, EXPM1F_TOLERANCE, 0},
+{16, 3212836864u, 3079358544u, 3206664871u, 0, EXPM1F_TOLERANCE, 0},
+{17, 3212836864u, 3079358544u, 3206664871u, 0, EXPM1F_TOLERANCE, 0},
+{18, 3212836864u, 3079358544u, 3206664871u, 0, EXPM1F_TOLERANCE, 0},
+{19, 3212836864u, 3079358544u, 3206664871u, 0, EXPM1F_TOLERANCE, 0},
+{20, 3212836864u, 3079358544u, 3206664871u, 0, EXPM1F_TOLERANCE, 0},
+{21, 3212836864u, 3079358544u, 3206664871u, 0, EXPM1F_TOLERANCE, 0},
+{22, 3212836864u, 3079358544u, 3206664871u, 0, EXPM1F_TOLERANCE, 0},
+{23, 3212836864u, 3079358544u, 3206664871u, 0, EXPM1F_TOLERANCE, 0},
+{24, 3212836864u, 3079358544u, 3206664871u, 0, EXPM1F_TOLERANCE, 0},
+{25, 3212836864u, 3079358544u, 3206664871u, 0, EXPM1F_TOLERANCE, 0},
+{26, 3212836864u, 3079358544u, 3206664871u, 0, EXPM1F_TOLERANCE, 0},
+{27, 3212836864u, 3079358544u, 3206664871u, 0, EXPM1F_TOLERANCE, 0},
+{28, 3212836864u, 3079358544u, 3206664871u, 0, EXPM1F_TOLERANCE, 0},
+{29, 3212836864u, 3079358544u, 3206664871u, 0, EXPM1F_TOLERANCE, 0},
+{30, 3212836864u, 3079358544u, 3206664871u, 0, EXPM1F_TOLERANCE, 0},
+{31, 3212836864u, 3079358544u, 3206664871u, 0, EXPM1F_TOLERANCE, 0},
+{32, 3212836864u, 3079358544u, 3206664871u, 0, EXPM1F_TOLERANCE, 0},
+{33, 3212836864u, 3079358544u, 3206664871u, 0, EXPM1F_TOLERANCE, 0},
+{34, 3212836864u, 3079358544u, 3206664871u, 0, EXPM1F_TOLERANCE, 0},
+{35, 3212836864u, 3079358544u, 3206664871u, 0, EXPM1F_TOLERANCE, 0},
+{36, 3212836864u, 3079358544u, 3206664871u, 0, EXPM1F_TOLERANCE, 0},
+{37, 3212836864u, 3079358544u, 3206664871u, 0, EXPM1F_TOLERANCE, 0},
+{38, 3212836864u, 3079358544u, 3206664871u, 0, EXPM1F_TOLERANCE, 0},
+{39, 3212836864u, 3079358544u, 3206664871u, 0, EXPM1F_TOLERANCE, 0},
+{40, 3211998003u, 3079358544u, 3206348426u, 0, EXPM1F_TOLERANCE, 0},
+{41, 3211998003u, 3079358544u, 3206348426u, 0, EXPM1F_TOLERANCE, 0},
+{42, 3211998003u, 3079358544u, 3206348426u, 0, EXPM1F_TOLERANCE, 0},
+{43, 3211998003u, 3079358544u, 3206348426u, 0, EXPM1F_TOLERANCE, 0},
+{44, 3211998003u, 3079358544u, 3206348426u, 0, EXPM1F_TOLERANCE, 0},
+{45, 3211998003u, 3079358544u, 3206348426u, 0, EXPM1F_TOLERANCE, 0},
+{46, 3211998003u, 3079358544u, 3206348426u, 0, EXPM1F_TOLERANCE, 0},
+{47, 3211998003u, 3079358544u, 3206348426u, 0, EXPM1F_TOLERANCE, 0},
+{48, 3211998003u, 3079358544u, 3206348426u, 0, EXPM1F_TOLERANCE, 0},
+{49, 3211998003u, 3079358544u, 3206348426u, 0, EXPM1F_TOLERANCE, 0},
+{50, 3211998003u, 3079358544u, 3206348426u, 0, EXPM1F_TOLERANCE, 0},
+{51, 3211998003u, 3079358544u, 3206348426u, 0, EXPM1F_TOLERANCE, 0},
+{52, 3211998003u, 3079358544u, 3206348426u, 0, EXPM1F_TOLERANCE, 0},
+{53, 3211998003u, 3079358544u, 3206348426u, 0, EXPM1F_TOLERANCE, 0},
+{54, 3211998003u, 3079358544u, 3206348426u, 0, EXPM1F_TOLERANCE, 0},
+{55, 3211998003u, 3079358544u, 3206348426u, 0, EXPM1F_TOLERANCE, 0},
+{56, 3211998003u, 3079358544u, 3206348426u, 0, EXPM1F_TOLERANCE, 0},
+{57, 3211998003u, 3079358544u, 3206348426u, 0, EXPM1F_TOLERANCE, 0},
+{58, 3211998003u, 3079358544u, 3206348426u, 0, EXPM1F_TOLERANCE, 0},
+{59, 3211998003u, 3079358544u, 3206348426u, 0, EXPM1F_TOLERANCE, 0},
+{60, 3211998003u, 3079358544u, 3206348426u, 0, EXPM1F_TOLERANCE, 0},
+{61, 3211998003u, 3079358544u, 3206348426u, 0, EXPM1F_TOLERANCE, 0},
+{62, 3211998003u, 3079358544u, 3206348426u, 0, EXPM1F_TOLERANCE, 0},
+{63, 3211998003u, 3079358544u, 3206348426u, 0, EXPM1F_TOLERANCE, 0},
+{64, 3211998003u, 3079358544u, 3206348426u, 0, EXPM1F_TOLERANCE, 0},
+{65, 3211998003u, 3079358544u, 3206348426u, 0, EXPM1F_TOLERANCE, 0},
+{66, 3211998003u, 3079358544u, 3206348426u, 0, EXPM1F_TOLERANCE, 0},
+{67, 3211998003u, 3079358544u, 3206348426u, 0, EXPM1F_TOLERANCE, 0},
+{68, 3211998003u, 3079358544u, 3206348426u, 0, EXPM1F_TOLERANCE, 0},
+{69, 3211998003u, 3079358544u, 3206348426u, 0, EXPM1F_TOLERANCE, 0},
+{70, 3211998003u, 3079358544u, 3206348426u, 0, EXPM1F_TOLERANCE, 0},
+{71, 3211998003u, 3079358544u, 3206348426u, 0, EXPM1F_TOLERANCE, 0},
+{72, 3211998003u, 3079358544u, 3206348426u, 0, EXPM1F_TOLERANCE, 0},
+{73, 3211998003u, 3079358544u, 3206348426u, 0, EXPM1F_TOLERANCE, 0},
+{74, 3211998003u, 3079358544u, 3206348426u, 0, EXPM1F_TOLERANCE, 0},
+{75, 3211998003u, 3079358544u, 3206348426u, 0, EXPM1F_TOLERANCE, 0},
+{76, 3211998003u, 3079358544u, 3206348426u, 0, EXPM1F_TOLERANCE, 0},
+{77, 3211998003u, 3079358544u, 3206348426u, 0, EXPM1F_TOLERANCE, 0},
+{78, 3211998003u, 3079358544u, 3206348426u, 0, EXPM1F_TOLERANCE, 0},
+{79, 3211998003u, 3079358544u, 3206348426u, 0, EXPM1F_TOLERANCE, 0},
+{80, 3211159142u, 3079358544u, 3206015757u, 0, EXPM1F_TOLERANCE, 0},
+{81, 3211159142u, 3079358544u, 3206015757u, 0, EXPM1F_TOLERANCE, 0},
+{82, 3211159142u, 3079358544u, 3206015757u, 0, EXPM1F_TOLERANCE, 0},
+{83, 3211159142u, 3079358544u, 3206015757u, 0, EXPM1F_TOLERANCE, 0},
+{84, 3211159142u, 3079358544u, 3206015757u, 0, EXPM1F_TOLERANCE, 0},
+{85, 3211159142u, 3079358544u, 3206015757u, 0, EXPM1F_TOLERANCE, 0},
+{86, 3211159142u, 3079358544u, 3206015757u, 0, EXPM1F_TOLERANCE, 0},
+{87, 3211159142u, 3079358544u, 3206015757u, 0, EXPM1F_TOLERANCE, 0},
+{88, 3211159142u, 3079358544u, 3206015757u, 0, EXPM1F_TOLERANCE, 0},
+{89, 3211159142u, 3079358544u, 3206015757u, 0, EXPM1F_TOLERANCE, 0},
+{90, 3211159142u, 3079358544u, 3206015757u, 0, EXPM1F_TOLERANCE, 0},
+{91, 3211159142u, 3079358544u, 3206015757u, 0, EXPM1F_TOLERANCE, 0},
+{92, 3211159142u, 3079358544u, 3206015757u, 0, EXPM1F_TOLERANCE, 0},
+{93, 3211159142u, 3079358544u, 3206015757u, 0, EXPM1F_TOLERANCE, 0},
+{94, 3211159142u, 3079358544u, 3206015757u, 0, EXPM1F_TOLERANCE, 0},
+{95, 3211159142u, 3079358544u, 3206015757u, 0, EXPM1F_TOLERANCE, 0},
+{96, 3211159142u, 3079358544u, 3206015757u, 0, EXPM1F_TOLERANCE, 0},
+{97, 3211159142u, 3079358544u, 3206015757u, 0, EXPM1F_TOLERANCE, 0},
+{98, 3211159142u, 3079358544u, 3206015757u, 0, EXPM1F_TOLERANCE, 0},
+{99, 3211159142u, 3079358544u, 3206015757u, 0, EXPM1F_TOLERANCE, 0},
+{100, 3211159142u, 3079358544u, 3206015757u, 0, EXPM1F_TOLERANCE, 0},
+{101, 3211159142u, 3079358544u, 3206015757u, 0, EXPM1F_TOLERANCE, 0},
+{102, 3211159142u, 3079358544u, 3206015757u, 0, EXPM1F_TOLERANCE, 0},
+{103, 3211159142u, 3079358544u, 3206015757u, 0, EXPM1F_TOLERANCE, 0},
+{104, 3211159142u, 3079358544u, 3206015757u, 0, EXPM1F_TOLERANCE, 0},
+{105, 3211159142u, 3079358544u, 3206015757u, 0, EXPM1F_TOLERANCE, 0},
+{106, 3211159142u, 3079358544u, 3206015757u, 0, EXPM1F_TOLERANCE, 0},
+{107, 3211159142u, 3079358544u, 3206015757u, 0, EXPM1F_TOLERANCE, 0},
+{108, 3211159142u, 3079358544u, 3206015757u, 0, EXPM1F_TOLERANCE, 0},
+{109, 3211159142u, 3079358544u, 3206015757u, 0, EXPM1F_TOLERANCE, 0},
+{110, 3211159142u, 3079358544u, 3206015757u, 0, EXPM1F_TOLERANCE, 0},
+{111, 3211159142u, 3079358544u, 3206015757u, 0, EXPM1F_TOLERANCE, 0},
+{112, 3211159142u, 3079358544u, 3206015757u, 0, EXPM1F_TOLERANCE, 0},
+{113, 3211159142u, 3079358544u, 3206015757u, 0, EXPM1F_TOLERANCE, 0},
+{114, 3211159142u, 3079358544u, 3206015757u, 0, EXPM1F_TOLERANCE, 0},
+{115, 3211159142u, 3079358544u, 3206015757u, 0, EXPM1F_TOLERANCE, 0},
+{116, 3211159142u, 3079358544u, 3206015757u, 0, EXPM1F_TOLERANCE, 0},
+{117, 3211159142u, 3079358544u, 3206015757u, 0, EXPM1F_TOLERANCE, 0},
+{118, 3211159142u, 3079358544u, 3206015757u, 0, EXPM1F_TOLERANCE, 0},
+{119, 3211159142u, 3079358544u, 3206015757u, 0, EXPM1F_TOLERANCE, 0},
+{120, 3210320282u, 3079358544u, 3205666032u, 0, EXPM1F_TOLERANCE, 0},
+{121, 3210320282u, 3079358544u, 3205666032u, 0, EXPM1F_TOLERANCE, 0},
+{122, 3210320282u, 3079358544u, 3205666032u, 0, EXPM1F_TOLERANCE, 0},
+{123, 3210320282u, 3079358544u, 3205666032u, 0, EXPM1F_TOLERANCE, 0},
+{124, 3210320282u, 3079358544u, 3205666032u, 0, EXPM1F_TOLERANCE, 0},
+{125, 3210320282u, 3079358544u, 3205666032u, 0, EXPM1F_TOLERANCE, 0},
+{126, 3210320282u, 3079358544u, 3205666032u, 0, EXPM1F_TOLERANCE, 0},
+{127, 3210320282u, 3079358544u, 3205666032u, 0, EXPM1F_TOLERANCE, 0},
+{128, 3210320282u, 3079358544u, 3205666032u, 0, EXPM1F_TOLERANCE, 0},
+{129, 3210320282u, 3079358544u, 3205666032u, 0, EXPM1F_TOLERANCE, 0},
+{130, 3210320282u, 3079358544u, 3205666032u, 0, EXPM1F_TOLERANCE, 0},
+{131, 3210320282u, 3079358544u, 3205666032u, 0, EXPM1F_TOLERANCE, 0},
+{132, 3210320282u, 3079358544u, 3205666032u, 0, EXPM1F_TOLERANCE, 0},
+{133, 3210320282u, 3079358544u, 3205666032u, 0, EXPM1F_TOLERANCE, 0},
+{134, 3210320282u, 3079358544u, 3205666032u, 0, EXPM1F_TOLERANCE, 0},
+{135, 3210320282u, 3079358544u, 3205666032u, 0, EXPM1F_TOLERANCE, 0},
+{136, 3210320282u, 3079358544u, 3205666032u, 0, EXPM1F_TOLERANCE, 0},
+{137, 3210320282u, 3079358544u, 3205666032u, 0, EXPM1F_TOLERANCE, 0},
+{138, 3210320282u, 3079358544u, 3205666032u, 0, EXPM1F_TOLERANCE, 0},
+{139, 3210320282u, 3079358544u, 3205666032u, 0, EXPM1F_TOLERANCE, 0},
+{140, 3210320282u, 3079358544u, 3205666032u, 0, EXPM1F_TOLERANCE, 0},
+{141, 3210320282u, 3079358544u, 3205666032u, 0, EXPM1F_TOLERANCE, 0},
+{142, 3210320282u, 3079358544u, 3205666032u, 0, EXPM1F_TOLERANCE, 0},
+{143, 3210320282u, 3079358544u, 3205666032u, 0, EXPM1F_TOLERANCE, 0},
+{144, 3210320282u, 3079358544u, 3205666032u, 0, EXPM1F_TOLERANCE, 0},
+{145, 3210320282u, 3079358544u, 3205666032u, 0, EXPM1F_TOLERANCE, 0},
+{146, 3210320282u, 3079358544u, 3205666032u, 0, EXPM1F_TOLERANCE, 0},
+{147, 3210320282u, 3079358544u, 3205666032u, 0, EXPM1F_TOLERANCE, 0},
+{148, 3210320282u, 3079358544u, 3205666032u, 0, EXPM1F_TOLERANCE, 0},
+{149, 3210320282u, 3079358544u, 3205666032u, 0, EXPM1F_TOLERANCE, 0},
+{150, 3210320282u, 3079358544u, 3205666032u, 0, EXPM1F_TOLERANCE, 0},
+{151, 3210320282u, 3079358544u, 3205666032u, 0, EXPM1F_TOLERANCE, 0},
+{152, 3210320282u, 3079358544u, 3205666032u, 0, EXPM1F_TOLERANCE, 0},
+{153, 3210320282u, 3079358544u, 3205666032u, 0, EXPM1F_TOLERANCE, 0},
+{154, 3210320282u, 3079358544u, 3205666032u, 0, EXPM1F_TOLERANCE, 0},
+{155, 3210320282u, 3079358544u, 3205666032u, 0, EXPM1F_TOLERANCE, 0},
+{156, 3210320282u, 3079358544u, 3205666032u, 0, EXPM1F_TOLERANCE, 0},
+{157, 3210320282u, 3079358544u, 3205666032u, 0, EXPM1F_TOLERANCE, 0},
+{158, 3210320282u, 3079358544u, 3205666032u, 0, EXPM1F_TOLERANCE, 0},
+{159, 3210320282u, 3079358544u, 3205666032u, 0, EXPM1F_TOLERANCE, 0},
+{160, 3209481421u, 3079358544u, 3205298375u, 0, EXPM1F_TOLERANCE, 0},
+{161, 3209481421u, 3079358544u, 3205298375u, 0, EXPM1F_TOLERANCE, 0},
+{162, 3209481421u, 3079358544u, 3205298375u, 0, EXPM1F_TOLERANCE, 0},
+{163, 3209481421u, 3079358544u, 3205298375u, 0, EXPM1F_TOLERANCE, 0},
+{164, 3209481421u, 3079358544u, 3205298375u, 0, EXPM1F_TOLERANCE, 0},
+{165, 3209481421u, 3079358544u, 3205298375u, 0, EXPM1F_TOLERANCE, 0},
+{166, 3209481421u, 3079358544u, 3205298375u, 0, EXPM1F_TOLERANCE, 0},
+{167, 3209481421u, 3079358544u, 3205298375u, 0, EXPM1F_TOLERANCE, 0},
+{168, 3209481421u, 3079358544u, 3205298375u, 0, EXPM1F_TOLERANCE, 0},
+{169, 3209481421u, 3079358544u, 3205298375u, 0, EXPM1F_TOLERANCE, 0},
+{170, 3209481421u, 3079358544u, 3205298375u, 0, EXPM1F_TOLERANCE, 0},
+{171, 3209481421u, 3079358544u, 3205298375u, 0, EXPM1F_TOLERANCE, 0},
+{172, 3209481421u, 3079358544u, 3205298375u, 0, EXPM1F_TOLERANCE, 0},
+{173, 3209481421u, 3079358544u, 3205298375u, 0, EXPM1F_TOLERANCE, 0},
+{174, 3209481421u, 3079358544u, 3205298375u, 0, EXPM1F_TOLERANCE, 0},
+{175, 3209481421u, 3079358544u, 3205298375u, 0, EXPM1F_TOLERANCE, 0},
+{176, 3209481421u, 3079358544u, 3205298375u, 0, EXPM1F_TOLERANCE, 0},
+{177, 3209481421u, 3079358544u, 3205298375u, 0, EXPM1F_TOLERANCE, 0},
+{178, 3209481421u, 3079358544u, 3205298375u, 0, EXPM1F_TOLERANCE, 0},
+{179, 3209481421u, 3079358544u, 3205298375u, 0, EXPM1F_TOLERANCE, 0},
+{180, 3209481421u, 3079358544u, 3205298375u, 0, EXPM1F_TOLERANCE, 0},
+{181, 3209481421u, 3079358544u, 3205298375u, 0, EXPM1F_TOLERANCE, 0},
+{182, 3209481421u, 3079358544u, 3205298375u, 0, EXPM1F_TOLERANCE, 0},
+{183, 3209481421u, 3079358544u, 3205298375u, 0, EXPM1F_TOLERANCE, 0},
+{184, 3209481421u, 3079358544u, 3205298375u, 0, EXPM1F_TOLERANCE, 0},
+{185, 3209481421u, 3079358544u, 3205298375u, 0, EXPM1F_TOLERANCE, 0},
+{186, 3209481421u, 3079358544u, 3205298375u, 0, EXPM1F_TOLERANCE, 0},
+{187, 3209481421u, 3079358544u, 3205298375u, 0, EXPM1F_TOLERANCE, 0},
+{188, 3209481421u, 3079358544u, 3205298375u, 0, EXPM1F_TOLERANCE, 0},
+{189, 3209481421u, 3079358544u, 3205298375u, 0, EXPM1F_TOLERANCE, 0},
+{190, 3209481421u, 3079358544u, 3205298375u, 0, EXPM1F_TOLERANCE, 0},
+{191, 3209481421u, 3079358544u, 3205298375u, 0, EXPM1F_TOLERANCE, 0},
+{192, 3209481421u, 3079358544u, 3205298375u, 0, EXPM1F_TOLERANCE, 0},
+{193, 3209481421u, 3079358544u, 3205298375u, 0, EXPM1F_TOLERANCE, 0},
+{194, 3209481421u, 3079358544u, 3205298375u, 0, EXPM1F_TOLERANCE, 0},
+{195, 3209481421u, 3079358544u, 3205298375u, 0, EXPM1F_TOLERANCE, 0},
+{196, 3209481421u, 3079358544u, 3205298375u, 0, EXPM1F_TOLERANCE, 0},
+{197, 3209481421u, 3079358544u, 3205298375u, 0, EXPM1F_TOLERANCE, 0},
+{198, 3209481421u, 3079358544u, 3205298375u, 0, EXPM1F_TOLERANCE, 0},
+{199, 3209481421u, 3079358544u, 3205298375u, 0, EXPM1F_TOLERANCE, 0},
+{200, 3208642560u, 3079358544u, 3204911868u, 0, EXPM1F_TOLERANCE, 0},
+{201, 3208642560u, 3079358544u, 3204911868u, 0, EXPM1F_TOLERANCE, 0},
+{202, 3208642560u, 3079358544u, 3204911868u, 0, EXPM1F_TOLERANCE, 0},
+{203, 3208642560u, 3079358544u, 3204911868u, 0, EXPM1F_TOLERANCE, 0},
+{204, 3208642560u, 3079358544u, 3204911868u, 0, EXPM1F_TOLERANCE, 0},
+{205, 3208642560u, 3079358544u, 3204911868u, 0, EXPM1F_TOLERANCE, 0},
+{206, 3208642560u, 3079358544u, 3204911868u, 0, EXPM1F_TOLERANCE, 0},
+{207, 3208642560u, 3079358544u, 3204911868u, 0, EXPM1F_TOLERANCE, 0},
+{208, 3208642560u, 3079358544u, 3204911868u, 0, EXPM1F_TOLERANCE, 0},
+{209, 3208642560u, 3079358544u, 3204911868u, 0, EXPM1F_TOLERANCE, 0},
+{210, 3208642560u, 3079358544u, 3204911868u, 0, EXPM1F_TOLERANCE, 0},
+{211, 3208642560u, 3079358544u, 3204911868u, 0, EXPM1F_TOLERANCE, 0},
+{212, 3208642560u, 3079358544u, 3204911868u, 0, EXPM1F_TOLERANCE, 0},
+{213, 3208642560u, 3079358544u, 3204911868u, 0, EXPM1F_TOLERANCE, 0},
+{214, 3208642560u, 3079358544u, 3204911868u, 0, EXPM1F_TOLERANCE, 0},
+{215, 3208642560u, 3079358544u, 3204911868u, 0, EXPM1F_TOLERANCE, 0},
+{216, 3208642560u, 3079358544u, 3204911868u, 0, EXPM1F_TOLERANCE, 0},
+{217, 3208642560u, 3079358544u, 3204911868u, 0, EXPM1F_TOLERANCE, 0},
+{218, 3208642560u, 3079358544u, 3204911868u, 0, EXPM1F_TOLERANCE, 0},
+{219, 3208642560u, 3079358544u, 3204911868u, 0, EXPM1F_TOLERANCE, 0},
+{220, 3208642560u, 3079358544u, 3204911868u, 0, EXPM1F_TOLERANCE, 0},
+{221, 3208642560u, 3079358544u, 3204911868u, 0, EXPM1F_TOLERANCE, 0},
+{222, 3208642560u, 3079358544u, 3204911868u, 0, EXPM1F_TOLERANCE, 0},
+{223, 3208642560u, 3079358544u, 3204911868u, 0, EXPM1F_TOLERANCE, 0},
+{224, 3208642560u, 3079358544u, 3204911868u, 0, EXPM1F_TOLERANCE, 0},
+{225, 3208642560u, 3079358544u, 3204911868u, 0, EXPM1F_TOLERANCE, 0},
+{226, 3208642560u, 3079358544u, 3204911868u, 0, EXPM1F_TOLERANCE, 0},
+{227, 3208642560u, 3079358544u, 3204911868u, 0, EXPM1F_TOLERANCE, 0},
+{228, 3208642560u, 3079358544u, 3204911868u, 0, EXPM1F_TOLERANCE, 0},
+{229, 3208642560u, 3079358544u, 3204911868u, 0, EXPM1F_TOLERANCE, 0},
+{230, 3208642560u, 3079358544u, 3204911868u, 0, EXPM1F_TOLERANCE, 0},
+{231, 3208642560u, 3079358544u, 3204911868u, 0, EXPM1F_TOLERANCE, 0},
+{232, 3208642560u, 3079358544u, 3204911868u, 0, EXPM1F_TOLERANCE, 0},
+{233, 3208642560u, 3079358544u, 3204911868u, 0, EXPM1F_TOLERANCE, 0},
+{234, 3208642560u, 3079358544u, 3204911868u, 0, EXPM1F_TOLERANCE, 0},
+{235, 3208642560u, 3079358544u, 3204911868u, 0, EXPM1F_TOLERANCE, 0},
+{236, 3208642560u, 3079358544u, 3204911868u, 0, EXPM1F_TOLERANCE, 0},
+{237, 3208642560u, 3079358544u, 3204911868u, 0, EXPM1F_TOLERANCE, 0},
+{238, 3208642560u, 3079358544u, 3204911868u, 0, EXPM1F_TOLERANCE, 0},
+{239, 3208642560u, 3079358544u, 3204911868u, 0, EXPM1F_TOLERANCE, 0},
+{240, 3207803699u, 3079358544u, 3204505545u, 0, EXPM1F_TOLERANCE, 0},
+{241, 3207803699u, 3079358544u, 3204505545u, 0, EXPM1F_TOLERANCE, 0},
+{242, 3207803699u, 3079358544u, 3204505545u, 0, EXPM1F_TOLERANCE, 0},
+{243, 3207803699u, 3079358544u, 3204505545u, 0, EXPM1F_TOLERANCE, 0},
+{244, 3207803699u, 3079358544u, 3204505545u, 0, EXPM1F_TOLERANCE, 0},
+{245, 3207803699u, 3079358544u, 3204505545u, 0, EXPM1F_TOLERANCE, 0},
+{246, 3207803699u, 3079358544u, 3204505545u, 0, EXPM1F_TOLERANCE, 0},
+{247, 3207803699u, 3079358544u, 3204505545u, 0, EXPM1F_TOLERANCE, 0},
+{248, 3207803699u, 3079358544u, 3204505545u, 0, EXPM1F_TOLERANCE, 0},
+{249, 3207803699u, 3079358544u, 3204505545u, 0, EXPM1F_TOLERANCE, 0},
+{250, 3207803699u, 3079358544u, 3204505545u, 0, EXPM1F_TOLERANCE, 0},
+{251, 3207803699u, 3079358544u, 3204505545u, 0, EXPM1F_TOLERANCE, 0},
+{252, 3207803699u, 3079358544u, 3204505545u, 0, EXPM1F_TOLERANCE, 0},
+{253, 3207803699u, 3079358544u, 3204505545u, 0, EXPM1F_TOLERANCE, 0},
+{254, 3207803699u, 3079358544u, 3204505545u, 0, EXPM1F_TOLERANCE, 0},
+{255, 3207803699u, 3079358544u, 3204505545u, 0, EXPM1F_TOLERANCE, 0},
+{256, 3207803699u, 3079358544u, 3204505545u, 0, EXPM1F_TOLERANCE, 0},
+{257, 3207803699u, 3079358544u, 3204505545u, 0, EXPM1F_TOLERANCE, 0},
+{258, 3207803699u, 3079358544u, 3204505545u, 0, EXPM1F_TOLERANCE, 0},
+{259, 3207803699u, 3079358544u, 3204505545u, 0, EXPM1F_TOLERANCE, 0},
+{260, 3207803699u, 3079358544u, 3204505545u, 0, EXPM1F_TOLERANCE, 0},
+{261, 3207803699u, 3079358544u, 3204505545u, 0, EXPM1F_TOLERANCE, 0},
+{262, 3207803699u, 3079358544u, 3204505545u, 0, EXPM1F_TOLERANCE, 0},
+{263, 3207803699u, 3079358544u, 3204505545u, 0, EXPM1F_TOLERANCE, 0},
+{264, 3207803699u, 3079358544u, 3204505545u, 0, EXPM1F_TOLERANCE, 0},
+{265, 3207803699u, 3079358544u, 3204505545u, 0, EXPM1F_TOLERANCE, 0},
+{266, 3207803699u, 3079358544u, 3204505545u, 0, EXPM1F_TOLERANCE, 0},
+{267, 3207803699u, 3079358544u, 3204505545u, 0, EXPM1F_TOLERANCE, 0},
+{268, 3207803699u, 3079358544u, 3204505545u, 0, EXPM1F_TOLERANCE, 0},
+{269, 3207803699u, 3079358544u, 3204505545u, 0, EXPM1F_TOLERANCE, 0},
+{270, 3207803699u, 3079358544u, 3204505545u, 0, EXPM1F_TOLERANCE, 0},
+{271, 3207803699u, 3079358544u, 3204505545u, 0, EXPM1F_TOLERANCE, 0},
+{272, 3207803699u, 3079358544u, 3204505545u, 0, EXPM1F_TOLERANCE, 0},
+{273, 3207803699u, 3079358544u, 3204505545u, 0, EXPM1F_TOLERANCE, 0},
+{274, 3207803699u, 3079358544u, 3204505545u, 0, EXPM1F_TOLERANCE, 0},
+{275, 3207803699u, 3079358544u, 3204505545u, 0, EXPM1F_TOLERANCE, 0},
+{276, 3207803699u, 3079358544u, 3204505545u, 0, EXPM1F_TOLERANCE, 0},
+{277, 3207803699u, 3079358544u, 3204505545u, 0, EXPM1F_TOLERANCE, 0},
+{278, 3207803699u, 3079358544u, 3204505545u, 0, EXPM1F_TOLERANCE, 0},
+{279, 3207803699u, 3079358544u, 3204505545u, 0, EXPM1F_TOLERANCE, 0},
+{280, 3206964838u, 3079358544u, 3203708522u, 0, EXPM1F_TOLERANCE, 0},
+{281, 3206964838u, 3079358544u, 3203708522u, 0, EXPM1F_TOLERANCE, 0},
+{282, 3206964838u, 3079358544u, 3203708522u, 0, EXPM1F_TOLERANCE, 0},
+{283, 3206964838u, 3079358544u, 3203708522u, 0, EXPM1F_TOLERANCE, 0},
+{284, 3206964838u, 3079358544u, 3203708522u, 0, EXPM1F_TOLERANCE, 0},
+{285, 3206964838u, 3079358544u, 3203708522u, 0, EXPM1F_TOLERANCE, 0},
+{286, 3206964838u, 3079358544u, 3203708522u, 0, EXPM1F_TOLERANCE, 0},
+{287, 3206964838u, 3079358544u, 3203708522u, 0, EXPM1F_TOLERANCE, 0},
+{288, 3206964838u, 3079358544u, 3203708522u, 0, EXPM1F_TOLERANCE, 0},
+{289, 3206964838u, 3079358544u, 3203708522u, 0, EXPM1F_TOLERANCE, 0},
+{290, 3206964838u, 3079358544u, 3203708522u, 0, EXPM1F_TOLERANCE, 0},
+{291, 3206964838u, 3079358544u, 3203708522u, 0, EXPM1F_TOLERANCE, 0},
+{292, 3206964838u, 3079358544u, 3203708522u, 0, EXPM1F_TOLERANCE, 0},
+{293, 3206964838u, 3079358544u, 3203708522u, 0, EXPM1F_TOLERANCE, 0},
+{294, 3206964838u, 3079358544u, 3203708522u, 0, EXPM1F_TOLERANCE, 0},
+{295, 3206964838u, 3079358544u, 3203708522u, 0, EXPM1F_TOLERANCE, 0},
+{296, 3206964838u, 3079358544u, 3203708522u, 0, EXPM1F_TOLERANCE, 0},
+{297, 3206964838u, 3079358544u, 3203708522u, 0, EXPM1F_TOLERANCE, 0},
+{298, 3206964838u, 3079358544u, 3203708522u, 0, EXPM1F_TOLERANCE, 0},
+{299, 3206964838u, 3079358544u, 3203708522u, 0, EXPM1F_TOLERANCE, 0},
+{300, 3206964838u, 3079358544u, 3203708522u, 0, EXPM1F_TOLERANCE, 0},
+{301, 3206964838u, 3079358544u, 3203708522u, 0, EXPM1F_TOLERANCE, 0},
+{302, 3206964838u, 3079358544u, 3203708522u, 0, EXPM1F_TOLERANCE, 0},
+{303, 3206964838u, 3079358544u, 3203708522u, 0, EXPM1F_TOLERANCE, 0},
+{304, 3206964838u, 3079358544u, 3203708522u, 0, EXPM1F_TOLERANCE, 0},
+{305, 3206964838u, 3079358544u, 3203708522u, 0, EXPM1F_TOLERANCE, 0},
+{306, 3206964838u, 3079358544u, 3203708522u, 0, EXPM1F_TOLERANCE, 0},
+{307, 3206964838u, 3079358544u, 3203708522u, 0, EXPM1F_TOLERANCE, 0},
+{308, 3206964838u, 3079358544u, 3203708522u, 0, EXPM1F_TOLERANCE, 0},
+{309, 3206964838u, 3079358544u, 3203708522u, 0, EXPM1F_TOLERANCE, 0},
+{310, 3206964838u, 3079358544u, 3203708522u, 0, EXPM1F_TOLERANCE, 0},
+{311, 3206964838u, 3079358544u, 3203708522u, 0, EXPM1F_TOLERANCE, 0},
+{312, 3206964838u, 3079358544u, 3203708522u, 0, EXPM1F_TOLERANCE, 0},
+{313, 3206964838u, 3079358544u, 3203708522u, 0, EXPM1F_TOLERANCE, 0},
+{314, 3206964838u, 3079358544u, 3203708522u, 0, EXPM1F_TOLERANCE, 0},
+{315, 3206964838u, 3079358544u, 3203708522u, 0, EXPM1F_TOLERANCE, 0},
+{316, 3206964838u, 3079358544u, 3203708522u, 0, EXPM1F_TOLERANCE, 0},
+{317, 3206964838u, 3079358544u, 3203708522u, 0, EXPM1F_TOLERANCE, 0},
+{318, 3206964838u, 3079358544u, 3203708522u, 0, EXPM1F_TOLERANCE, 0},
+{319, 3206964838u, 3079358544u, 3203708522u, 0, EXPM1F_TOLERANCE, 0},
+{320, 3206125978u, 3079358544u, 3202810410u, 0, EXPM1F_TOLERANCE, 0},
+{321, 3206125978u, 3079358544u, 3202810410u, 0, EXPM1F_TOLERANCE, 0},
+{322, 3206125978u, 3079358544u, 3202810410u, 0, EXPM1F_TOLERANCE, 0},
+{323, 3206125978u, 3079358544u, 3202810410u, 0, EXPM1F_TOLERANCE, 0},
+{324, 3206125978u, 3079358544u, 3202810410u, 0, EXPM1F_TOLERANCE, 0},
+{325, 3206125978u, 3079358544u, 3202810410u, 0, EXPM1F_TOLERANCE, 0},
+{326, 3206125978u, 3079358544u, 3202810410u, 0, EXPM1F_TOLERANCE, 0},
+{327, 3206125978u, 3079358544u, 3202810410u, 0, EXPM1F_TOLERANCE, 0},
+{328, 3206125978u, 3079358544u, 3202810410u, 0, EXPM1F_TOLERANCE, 0},
+{329, 3206125978u, 3079358544u, 3202810410u, 0, EXPM1F_TOLERANCE, 0},
+{330, 3206125978u, 3079358544u, 3202810410u, 0, EXPM1F_TOLERANCE, 0},
+{331, 3206125978u, 3079358544u, 3202810410u, 0, EXPM1F_TOLERANCE, 0},
+{332, 3206125978u, 3079358544u, 3202810410u, 0, EXPM1F_TOLERANCE, 0},
+{333, 3206125978u, 3079358544u, 3202810410u, 0, EXPM1F_TOLERANCE, 0},
+{334, 3206125978u, 3079358544u, 3202810410u, 0, EXPM1F_TOLERANCE, 0},
+{335, 3206125978u, 3079358544u, 3202810410u, 0, EXPM1F_TOLERANCE, 0},
+{336, 3206125978u, 3079358544u, 3202810410u, 0, EXPM1F_TOLERANCE, 0},
+{337, 3206125978u, 3079358544u, 3202810410u, 0, EXPM1F_TOLERANCE, 0},
+{338, 3206125978u, 3079358544u, 3202810410u, 0, EXPM1F_TOLERANCE, 0},
+{339, 3206125978u, 3079358544u, 3202810410u, 0, EXPM1F_TOLERANCE, 0},
+{340, 3206125978u, 3079358544u, 3202810410u, 0, EXPM1F_TOLERANCE, 0},
+{341, 3206125978u, 3079358544u, 3202810410u, 0, EXPM1F_TOLERANCE, 0},
+{342, 3206125978u, 3079358544u, 3202810410u, 0, EXPM1F_TOLERANCE, 0},
+{343, 3206125978u, 3079358544u, 3202810410u, 0, EXPM1F_TOLERANCE, 0},
+{344, 3206125978u, 3079358544u, 3202810410u, 0, EXPM1F_TOLERANCE, 0},
+{345, 3206125978u, 3079358544u, 3202810410u, 0, EXPM1F_TOLERANCE, 0},
+{346, 3206125978u, 3079358544u, 3202810410u, 0, EXPM1F_TOLERANCE, 0},
+{347, 3206125978u, 3079358544u, 3202810410u, 0, EXPM1F_TOLERANCE, 0},
+{348, 3206125978u, 3079358544u, 3202810410u, 0, EXPM1F_TOLERANCE, 0},
+{349, 3206125978u, 3079358544u, 3202810410u, 0, EXPM1F_TOLERANCE, 0},
+{350, 3206125978u, 3079358544u, 3202810410u, 0, EXPM1F_TOLERANCE, 0},
+{351, 3206125978u, 3079358544u, 3202810410u, 0, EXPM1F_TOLERANCE, 0},
+{352, 3206125978u, 3079358544u, 3202810410u, 0, EXPM1F_TOLERANCE, 0},
+{353, 3206125978u, 3079358544u, 3202810410u, 0, EXPM1F_TOLERANCE, 0},
+{354, 3206125978u, 3079358544u, 3202810410u, 0, EXPM1F_TOLERANCE, 0},
+{355, 3206125978u, 3079358544u, 3202810410u, 0, EXPM1F_TOLERANCE, 0},
+{356, 3206125978u, 3079358544u, 3202810410u, 0, EXPM1F_TOLERANCE, 0},
+{357, 3206125978u, 3079358544u, 3202810410u, 0, EXPM1F_TOLERANCE, 0},
+{358, 3206125978u, 3079358544u, 3202810410u, 0, EXPM1F_TOLERANCE, 0},
+{359, 3206125978u, 3079358544u, 3202810410u, 0, EXPM1F_TOLERANCE, 0},
+{360, 3205287117u, 3079358544u, 3201866249u, 0, EXPM1F_TOLERANCE, 0},
+{361, 3205287117u, 3079358544u, 3201866249u, 0, EXPM1F_TOLERANCE, 0},
+{362, 3205287117u, 3079358544u, 3201866249u, 0, EXPM1F_TOLERANCE, 0},
+{363, 3205287117u, 3079358544u, 3201866249u, 0, EXPM1F_TOLERANCE, 0},
+{364, 3205287117u, 3079358544u, 3201866249u, 0, EXPM1F_TOLERANCE, 0},
+{365, 3205287117u, 3079358544u, 3201866249u, 0, EXPM1F_TOLERANCE, 0},
+{366, 3205287117u, 3079358544u, 3201866249u, 0, EXPM1F_TOLERANCE, 0},
+{367, 3205287117u, 3079358544u, 3201866249u, 0, EXPM1F_TOLERANCE, 0},
+{368, 3205287117u, 3079358544u, 3201866249u, 0, EXPM1F_TOLERANCE, 0},
+{369, 3205287117u, 3079358544u, 3201866249u, 0, EXPM1F_TOLERANCE, 0},
+{370, 3205287117u, 3079358544u, 3201866249u, 0, EXPM1F_TOLERANCE, 0},
+{371, 3205287117u, 3079358544u, 3201866249u, 0, EXPM1F_TOLERANCE, 0},
+{372, 3205287117u, 3079358544u, 3201866249u, 0, EXPM1F_TOLERANCE, 0},
+{373, 3205287117u, 3079358544u, 3201866249u, 0, EXPM1F_TOLERANCE, 0},
+{374, 3205287117u, 3079358544u, 3201866249u, 0, EXPM1F_TOLERANCE, 0},
+{375, 3205287117u, 3079358544u, 3201866249u, 0, EXPM1F_TOLERANCE, 0},
+{376, 3205287117u, 3079358544u, 3201866249u, 0, EXPM1F_TOLERANCE, 0},
+{377, 3205287117u, 3079358544u, 3201866249u, 0, EXPM1F_TOLERANCE, 0},
+{378, 3205287117u, 3079358544u, 3201866249u, 0, EXPM1F_TOLERANCE, 0},
+{379, 3205287117u, 3079358544u, 3201866249u, 0, EXPM1F_TOLERANCE, 0},
+{380, 3205287117u, 3079358544u, 3201866249u, 0, EXPM1F_TOLERANCE, 0},
+{381, 3205287117u, 3079358544u, 3201866249u, 0, EXPM1F_TOLERANCE, 0},
+{382, 3205287117u, 3079358544u, 3201866249u, 0, EXPM1F_TOLERANCE, 0},
+{383, 3205287117u, 3079358544u, 3201866249u, 0, EXPM1F_TOLERANCE, 0},
+{384, 3205287117u, 3079358544u, 3201866249u, 0, EXPM1F_TOLERANCE, 0},
+{385, 3205287117u, 3079358544u, 3201866249u, 0, EXPM1F_TOLERANCE, 0},
+{386, 3205287117u, 3079358544u, 3201866249u, 0, EXPM1F_TOLERANCE, 0},
+{387, 3205287117u, 3079358544u, 3201866249u, 0, EXPM1F_TOLERANCE, 0},
+{388, 3205287117u, 3079358544u, 3201866249u, 0, EXPM1F_TOLERANCE, 0},
+{389, 3205287117u, 3079358544u, 3201866249u, 0, EXPM1F_TOLERANCE, 0},
+{390, 3205287117u, 3079358544u, 3201866249u, 0, EXPM1F_TOLERANCE, 0},
+{391, 3205287117u, 3079358544u, 3201866249u, 0, EXPM1F_TOLERANCE, 0},
+{392, 3205287117u, 3079358544u, 3201866249u, 0, EXPM1F_TOLERANCE, 0},
+{393, 3205287117u, 3079358544u, 3201866249u, 0, EXPM1F_TOLERANCE, 0},
+{394, 3205287117u, 3079358544u, 3201866249u, 0, EXPM1F_TOLERANCE, 0},
+{395, 3205287117u, 3079358544u, 3201866249u, 0, EXPM1F_TOLERANCE, 0},
+{396, 3205287117u, 3079358544u, 3201866249u, 0, EXPM1F_TOLERANCE, 0},
+{397, 3205287117u, 3079358544u, 3201866249u, 0, EXPM1F_TOLERANCE, 0},
+{398, 3205287117u, 3079358544u, 3201866249u, 0, EXPM1F_TOLERANCE, 0},
+{399, 3205287117u, 3079358544u, 3201866249u, 0, EXPM1F_TOLERANCE, 0},
+{400, 3204448256u, 3079358544u, 3200873680u, 0, EXPM1F_TOLERANCE, 0},
+{401, 3204448256u, 3079358544u, 3200873680u, 0, EXPM1F_TOLERANCE, 0},
+{402, 3204448256u, 3079358544u, 3200873680u, 0, EXPM1F_TOLERANCE, 0},
+{403, 3204448256u, 3079358544u, 3200873680u, 0, EXPM1F_TOLERANCE, 0},
+{404, 3204448256u, 3079358544u, 3200873680u, 0, EXPM1F_TOLERANCE, 0},
+{405, 3204448256u, 3079358544u, 3200873680u, 0, EXPM1F_TOLERANCE, 0},
+{406, 3204448256u, 3079358544u, 3200873680u, 0, EXPM1F_TOLERANCE, 0},
+{407, 3204448256u, 3079358544u, 3200873680u, 0, EXPM1F_TOLERANCE, 0},
+{408, 3204448256u, 3079358544u, 3200873680u, 0, EXPM1F_TOLERANCE, 0},
+{409, 3204448256u, 3079358544u, 3200873680u, 0, EXPM1F_TOLERANCE, 0},
+{410, 3204448256u, 3079358544u, 3200873680u, 0, EXPM1F_TOLERANCE, 0},
+{411, 3204448256u, 3079358544u, 3200873680u, 0, EXPM1F_TOLERANCE, 0},
+{412, 3204448256u, 3079358544u, 3200873680u, 0, EXPM1F_TOLERANCE, 0},
+{413, 3204448256u, 3079358544u, 3200873680u, 0, EXPM1F_TOLERANCE, 0},
+{414, 3204448256u, 3079358544u, 3200873680u, 0, EXPM1F_TOLERANCE, 0},
+{415, 3204448256u, 3079358544u, 3200873680u, 0, EXPM1F_TOLERANCE, 0},
+{416, 3204448256u, 3079358544u, 3200873680u, 0, EXPM1F_TOLERANCE, 0},
+{417, 3204448256u, 3079358544u, 3200873680u, 0, EXPM1F_TOLERANCE, 0},
+{418, 3204448256u, 3079358544u, 3200873680u, 0, EXPM1F_TOLERANCE, 0},
+{419, 3204448256u, 3079358544u, 3200873680u, 0, EXPM1F_TOLERANCE, 0},
+{420, 3204448256u, 3079358544u, 3200873680u, 0, EXPM1F_TOLERANCE, 0},
+{421, 3204448256u, 3079358544u, 3200873680u, 0, EXPM1F_TOLERANCE, 0},
+{422, 3204448256u, 3079358544u, 3200873680u, 0, EXPM1F_TOLERANCE, 0},
+{423, 3204448256u, 3079358544u, 3200873680u, 0, EXPM1F_TOLERANCE, 0},
+{424, 3204448256u, 3079358544u, 3200873680u, 0, EXPM1F_TOLERANCE, 0},
+{425, 3204448256u, 3079358544u, 3200873680u, 0, EXPM1F_TOLERANCE, 0},
+{426, 3204448256u, 3079358544u, 3200873680u, 0, EXPM1F_TOLERANCE, 0},
+{427, 3204448256u, 3079358544u, 3200873680u, 0, EXPM1F_TOLERANCE, 0},
+{428, 3204448256u, 3079358544u, 3200873680u, 0, EXPM1F_TOLERANCE, 0},
+{429, 3204448256u, 3079358544u, 3200873680u, 0, EXPM1F_TOLERANCE, 0},
+{430, 3204448256u, 3079358544u, 3200873680u, 0, EXPM1F_TOLERANCE, 0},
+{431, 3204448256u, 3079358544u, 3200873680u, 0, EXPM1F_TOLERANCE, 0},
+{432, 3204448256u, 3079358544u, 3200873680u, 0, EXPM1F_TOLERANCE, 0},
+{433, 3204448256u, 3079358544u, 3200873680u, 0, EXPM1F_TOLERANCE, 0},
+{434, 3204448256u, 3079358544u, 3200873680u, 0, EXPM1F_TOLERANCE, 0},
+{435, 3204448256u, 3079358544u, 3200873680u, 0, EXPM1F_TOLERANCE, 0},
+{436, 3204448256u, 3079358544u, 3200873680u, 0, EXPM1F_TOLERANCE, 0},
+{437, 3204448256u, 3079358544u, 3200873680u, 0, EXPM1F_TOLERANCE, 0},
+{438, 3204448256u, 3079358544u, 3200873680u, 0, EXPM1F_TOLERANCE, 0},
+{439, 3204448256u, 3079358544u, 3200873680u, 0, EXPM1F_TOLERANCE, 0},
+{440, 3202770534u, 3079358544u, 3199830221u, 0, EXPM1F_TOLERANCE, 0},
+{441, 3202770534u, 3079358544u, 3199830221u, 0, EXPM1F_TOLERANCE, 0},
+{442, 3202770534u, 3079358544u, 3199830221u, 0, EXPM1F_TOLERANCE, 0},
+{443, 3202770534u, 3079358544u, 3199830221u, 0, EXPM1F_TOLERANCE, 0},
+{444, 3202770534u, 3079358544u, 3199830221u, 0, EXPM1F_TOLERANCE, 0},
+{445, 3202770534u, 3079358544u, 3199830221u, 0, EXPM1F_TOLERANCE, 0},
+{446, 3202770534u, 3079358544u, 3199830221u, 0, EXPM1F_TOLERANCE, 0},
+{447, 3202770534u, 3079358544u, 3199830221u, 0, EXPM1F_TOLERANCE, 0},
+{448, 3202770534u, 3079358544u, 3199830221u, 0, EXPM1F_TOLERANCE, 0},
+{449, 3202770534u, 3079358544u, 3199830221u, 0, EXPM1F_TOLERANCE, 0},
+{450, 3202770534u, 3079358544u, 3199830221u, 0, EXPM1F_TOLERANCE, 0},
+{451, 3202770534u, 3079358544u, 3199830221u, 0, EXPM1F_TOLERANCE, 0},
+{452, 3202770534u, 3079358544u, 3199830221u, 0, EXPM1F_TOLERANCE, 0},
+{453, 3202770534u, 3079358544u, 3199830221u, 0, EXPM1F_TOLERANCE, 0},
+{454, 3202770534u, 3079358544u, 3199830221u, 0, EXPM1F_TOLERANCE, 0},
+{455, 3202770534u, 3079358544u, 3199830221u, 0, EXPM1F_TOLERANCE, 0},
+{456, 3202770534u, 3079358544u, 3199830221u, 0, EXPM1F_TOLERANCE, 0},
+{457, 3202770534u, 3079358544u, 3199830221u, 0, EXPM1F_TOLERANCE, 0},
+{458, 3202770534u, 3079358544u, 3199830221u, 0, EXPM1F_TOLERANCE, 0},
+{459, 3202770534u, 3079358544u, 3199830221u, 0, EXPM1F_TOLERANCE, 0},
+{460, 3202770534u, 3079358544u, 3199830221u, 0, EXPM1F_TOLERANCE, 0},
+{461, 3202770534u, 3079358544u, 3199830221u, 0, EXPM1F_TOLERANCE, 0},
+{462, 3202770534u, 3079358544u, 3199830221u, 0, EXPM1F_TOLERANCE, 0},
+{463, 3202770534u, 3079358544u, 3199830221u, 0, EXPM1F_TOLERANCE, 0},
+{464, 3202770534u, 3079358544u, 3199830221u, 0, EXPM1F_TOLERANCE, 0},
+{465, 3202770534u, 3079358544u, 3199830221u, 0, EXPM1F_TOLERANCE, 0},
+{466, 3202770534u, 3079358544u, 3199830221u, 0, EXPM1F_TOLERANCE, 0},
+{467, 3202770534u, 3079358544u, 3199830221u, 0, EXPM1F_TOLERANCE, 0},
+{468, 3202770534u, 3079358544u, 3199830221u, 0, EXPM1F_TOLERANCE, 0},
+{469, 3202770534u, 3079358544u, 3199830221u, 0, EXPM1F_TOLERANCE, 0},
+{470, 3202770534u, 3079358544u, 3199830221u, 0, EXPM1F_TOLERANCE, 0},
+{471, 3202770534u, 3079358544u, 3199830221u, 0, EXPM1F_TOLERANCE, 0},
+{472, 3202770534u, 3079358544u, 3199830221u, 0, EXPM1F_TOLERANCE, 0},
+{473, 3202770534u, 3079358544u, 3199830221u, 0, EXPM1F_TOLERANCE, 0},
+{474, 3202770534u, 3079358544u, 3199830221u, 0, EXPM1F_TOLERANCE, 0},
+{475, 3202770534u, 3079358544u, 3199830221u, 0, EXPM1F_TOLERANCE, 0},
+{476, 3202770534u, 3079358544u, 3199830221u, 0, EXPM1F_TOLERANCE, 0},
+{477, 3202770534u, 3079358544u, 3199830221u, 0, EXPM1F_TOLERANCE, 0},
+{478, 3202770534u, 3079358544u, 3199830221u, 0, EXPM1F_TOLERANCE, 0},
+{479, 3202770534u, 3079358544u, 3199830221u, 0, EXPM1F_TOLERANCE, 0},
+{480, 3201092813u, 3079358544u, 3198733264u, 0, EXPM1F_TOLERANCE, 0},
+{481, 3201092813u, 3079358544u, 3198733264u, 0, EXPM1F_TOLERANCE, 0},
+{482, 3201092813u, 3079358544u, 3198733264u, 0, EXPM1F_TOLERANCE, 0},
+{483, 3201092813u, 3079358544u, 3198733264u, 0, EXPM1F_TOLERANCE, 0},
+{484, 3201092813u, 3079358544u, 3198733264u, 0, EXPM1F_TOLERANCE, 0},
+{485, 3201092813u, 3079358544u, 3198733264u, 0, EXPM1F_TOLERANCE, 0},
+{486, 3201092813u, 3079358544u, 3198733264u, 0, EXPM1F_TOLERANCE, 0},
+{487, 3201092813u, 3079358544u, 3198733264u, 0, EXPM1F_TOLERANCE, 0},
+{488, 3201092813u, 3079358544u, 3198733264u, 0, EXPM1F_TOLERANCE, 0},
+{489, 3201092813u, 3079358544u, 3198733264u, 0, EXPM1F_TOLERANCE, 0},
+{490, 3201092813u, 3079358544u, 3198733264u, 0, EXPM1F_TOLERANCE, 0},
+{491, 3201092813u, 3079358544u, 3198733264u, 0, EXPM1F_TOLERANCE, 0},
+{492, 3201092813u, 3079358544u, 3198733264u, 0, EXPM1F_TOLERANCE, 0},
+{493, 3201092813u, 3079358544u, 3198733264u, 0, EXPM1F_TOLERANCE, 0},
+{494, 3201092813u, 3079358544u, 3198733264u, 0, EXPM1F_TOLERANCE, 0},
+{495, 3201092813u, 3079358544u, 3198733264u, 0, EXPM1F_TOLERANCE, 0},
+{496, 3201092813u, 3079358544u, 3198733264u, 0, EXPM1F_TOLERANCE, 0},
+{497, 3201092813u, 3079358544u, 3198733264u, 0, EXPM1F_TOLERANCE, 0},
+{498, 3201092813u, 3079358544u, 3198733264u, 0, EXPM1F_TOLERANCE, 0},
+{499, 3201092813u, 3079358544u, 3198733264u, 0, EXPM1F_TOLERANCE, 0},
+{500, 3201092813u, 3079358544u, 3198733264u, 0, EXPM1F_TOLERANCE, 0},
+{501, 3201092813u, 3079358544u, 3198733264u, 0, EXPM1F_TOLERANCE, 0},
+{502, 3201092813u, 3079358544u, 3198733264u, 0, EXPM1F_TOLERANCE, 0},
+{503, 3201092813u, 3079358544u, 3198733264u, 0, EXPM1F_TOLERANCE, 0},
+{504, 3201092813u, 3079358544u, 3198733264u, 0, EXPM1F_TOLERANCE, 0},
+{505, 3201092813u, 3079358544u, 3198733264u, 0, EXPM1F_TOLERANCE, 0},
+{506, 3201092813u, 3079358544u, 3198733264u, 0, EXPM1F_TOLERANCE, 0},
+{507, 3201092813u, 3079358544u, 3198733264u, 0, EXPM1F_TOLERANCE, 0},
+{508, 3201092813u, 3079358544u, 3198733264u, 0, EXPM1F_TOLERANCE, 0},
+{509, 3201092813u, 3079358544u, 3198733264u, 0, EXPM1F_TOLERANCE, 0},
+{510, 3201092813u, 3079358544u, 3198733264u, 0, EXPM1F_TOLERANCE, 0},
+{511, 3201092813u, 3079358544u, 3198733264u, 0, EXPM1F_TOLERANCE, 0},
+{512, 3201092813u, 3079358544u, 3198733264u, 0, EXPM1F_TOLERANCE, 0},
+{513, 3201092813u, 3079358544u, 3198733264u, 0, EXPM1F_TOLERANCE, 0},
+{514, 3201092813u, 3079358544u, 3198733264u, 0, EXPM1F_TOLERANCE, 0},
+{515, 3201092813u, 3079358544u, 3198733264u, 0, EXPM1F_TOLERANCE, 0},
+{516, 3201092813u, 3079358544u, 3198733264u, 0, EXPM1F_TOLERANCE, 0},
+{517, 3201092813u, 3079358544u, 3198733264u, 0, EXPM1F_TOLERANCE, 0},
+{518, 3201092813u, 3079358544u, 3198733264u, 0, EXPM1F_TOLERANCE, 0},
+{519, 3201092813u, 3079358544u, 3198733264u, 0, EXPM1F_TOLERANCE, 0},
+{520, 3199415091u, 3079358544u, 3197580063u, 0, EXPM1F_TOLERANCE, 0},
+{521, 3199415091u, 3079358544u, 3197580063u, 0, EXPM1F_TOLERANCE, 0},
+{522, 3199415091u, 3079358544u, 3197580063u, 0, EXPM1F_TOLERANCE, 0},
+{523, 3199415091u, 3079358544u, 3197580063u, 0, EXPM1F_TOLERANCE, 0},
+{524, 3199415091u, 3079358544u, 3197580063u, 0, EXPM1F_TOLERANCE, 0},
+{525, 3199415091u, 3079358544u, 3197580063u, 0, EXPM1F_TOLERANCE, 0},
+{526, 3199415091u, 3079358544u, 3197580063u, 0, EXPM1F_TOLERANCE, 0},
+{527, 3199415091u, 3079358544u, 3197580063u, 0, EXPM1F_TOLERANCE, 0},
+{528, 3199415091u, 3079358544u, 3197580063u, 0, EXPM1F_TOLERANCE, 0},
+{529, 3199415091u, 3079358544u, 3197580063u, 0, EXPM1F_TOLERANCE, 0},
+{530, 3199415091u, 3079358544u, 3197580063u, 0, EXPM1F_TOLERANCE, 0},
+{531, 3199415091u, 3079358544u, 3197580063u, 0, EXPM1F_TOLERANCE, 0},
+{532, 3199415091u, 3079358544u, 3197580063u, 0, EXPM1F_TOLERANCE, 0},
+{533, 3199415091u, 3079358544u, 3197580063u, 0, EXPM1F_TOLERANCE, 0},
+{534, 3199415091u, 3079358544u, 3197580063u, 0, EXPM1F_TOLERANCE, 0},
+{535, 3199415091u, 3079358544u, 3197580063u, 0, EXPM1F_TOLERANCE, 0},
+{536, 3199415091u, 3079358544u, 3197580063u, 0, EXPM1F_TOLERANCE, 0},
+{537, 3199415091u, 3079358544u, 3197580063u, 0, EXPM1F_TOLERANCE, 0},
+{538, 3199415091u, 3079358544u, 3197580063u, 0, EXPM1F_TOLERANCE, 0},
+{539, 3199415091u, 3079358544u, 3197580063u, 0, EXPM1F_TOLERANCE, 0},
+{540, 3199415091u, 3079358544u, 3197580063u, 0, EXPM1F_TOLERANCE, 0},
+{541, 3199415091u, 3079358544u, 3197580063u, 0, EXPM1F_TOLERANCE, 0},
+{542, 3199415091u, 3079358544u, 3197580063u, 0, EXPM1F_TOLERANCE, 0},
+{543, 3199415091u, 3079358544u, 3197580063u, 0, EXPM1F_TOLERANCE, 0},
+{544, 3199415091u, 3079358544u, 3197580063u, 0, EXPM1F_TOLERANCE, 0},
+{545, 3199415091u, 3079358544u, 3197580063u, 0, EXPM1F_TOLERANCE, 0},
+{546, 3199415091u, 3079358544u, 3197580063u, 0, EXPM1F_TOLERANCE, 0},
+{547, 3199415091u, 3079358544u, 3197580063u, 0, EXPM1F_TOLERANCE, 0},
+{548, 3199415091u, 3079358544u, 3197580063u, 0, EXPM1F_TOLERANCE, 0},
+{549, 3199415091u, 3079358544u, 3197580063u, 0, EXPM1F_TOLERANCE, 0},
+{550, 3199415091u, 3079358544u, 3197580063u, 0, EXPM1F_TOLERANCE, 0},
+{551, 3199415091u, 3079358544u, 3197580063u, 0, EXPM1F_TOLERANCE, 0},
+{552, 3199415091u, 3079358544u, 3197580063u, 0, EXPM1F_TOLERANCE, 0},
+{553, 3199415091u, 3079358544u, 3197580063u, 0, EXPM1F_TOLERANCE, 0},
+{554, 3199415091u, 3079358544u, 3197580063u, 0, EXPM1F_TOLERANCE, 0},
+{555, 3199415091u, 3079358544u, 3197580063u, 0, EXPM1F_TOLERANCE, 0},
+{556, 3199415091u, 3079358544u, 3197580063u, 0, EXPM1F_TOLERANCE, 0},
+{557, 3199415091u, 3079358544u, 3197580063u, 0, EXPM1F_TOLERANCE, 0},
+{558, 3199415091u, 3079358544u, 3197580063u, 0, EXPM1F_TOLERANCE, 0},
+{559, 3199415091u, 3079358544u, 3197580063u, 0, EXPM1F_TOLERANCE, 0},
+{560, 3197737370u, 3079358544u, 3196367738u, 0, EXPM1F_TOLERANCE, 0},
+{561, 3197737370u, 3079358544u, 3196367738u, 0, EXPM1F_TOLERANCE, 0},
+{562, 3197737370u, 3079358544u, 3196367738u, 0, EXPM1F_TOLERANCE, 0},
+{563, 3197737370u, 3079358544u, 3196367738u, 0, EXPM1F_TOLERANCE, 0},
+{564, 3197737370u, 3079358544u, 3196367738u, 0, EXPM1F_TOLERANCE, 0},
+{565, 3197737370u, 3079358544u, 3196367738u, 0, EXPM1F_TOLERANCE, 0},
+{566, 3197737370u, 3079358544u, 3196367738u, 0, EXPM1F_TOLERANCE, 0},
+{567, 3197737370u, 3079358544u, 3196367738u, 0, EXPM1F_TOLERANCE, 0},
+{568, 3197737370u, 3079358544u, 3196367738u, 0, EXPM1F_TOLERANCE, 0},
+{569, 3197737370u, 3079358544u, 3196367738u, 0, EXPM1F_TOLERANCE, 0},
+{570, 3197737370u, 3079358544u, 3196367738u, 0, EXPM1F_TOLERANCE, 0},
+{571, 3197737370u, 3079358544u, 3196367738u, 0, EXPM1F_TOLERANCE, 0},
+{572, 3197737370u, 3079358544u, 3196367738u, 0, EXPM1F_TOLERANCE, 0},
+{573, 3197737370u, 3079358544u, 3196367738u, 0, EXPM1F_TOLERANCE, 0},
+{574, 3197737370u, 3079358544u, 3196367738u, 0, EXPM1F_TOLERANCE, 0},
+{575, 3197737370u, 3079358544u, 3196367738u, 0, EXPM1F_TOLERANCE, 0},
+{576, 3197737370u, 3079358544u, 3196367738u, 0, EXPM1F_TOLERANCE, 0},
+{577, 3197737370u, 3079358544u, 3196367738u, 0, EXPM1F_TOLERANCE, 0},
+{578, 3197737370u, 3079358544u, 3196367738u, 0, EXPM1F_TOLERANCE, 0},
+{579, 3197737370u, 3079358544u, 3196367738u, 0, EXPM1F_TOLERANCE, 0},
+{580, 3197737370u, 3079358544u, 3196367738u, 0, EXPM1F_TOLERANCE, 0},
+{581, 3197737370u, 3079358544u, 3196367738u, 0, EXPM1F_TOLERANCE, 0},
+{582, 3197737370u, 3079358544u, 3196367738u, 0, EXPM1F_TOLERANCE, 0},
+{583, 3197737370u, 3079358544u, 3196367738u, 0, EXPM1F_TOLERANCE, 0},
+{584, 3197737370u, 3079358544u, 3196367738u, 0, EXPM1F_TOLERANCE, 0},
+{585, 3197737370u, 3079358544u, 3196367738u, 0, EXPM1F_TOLERANCE, 0},
+{586, 3197737370u, 3079358544u, 3196367738u, 0, EXPM1F_TOLERANCE, 0},
+{587, 3197737370u, 3079358544u, 3196367738u, 0, EXPM1F_TOLERANCE, 0},
+{588, 3197737370u, 3079358544u, 3196367738u, 0, EXPM1F_TOLERANCE, 0},
+{589, 3197737370u, 3079358544u, 3196367738u, 0, EXPM1F_TOLERANCE, 0},
+{590, 3197737370u, 3079358544u, 3196367738u, 0, EXPM1F_TOLERANCE, 0},
+{591, 3197737370u, 3079358544u, 3196367738u, 0, EXPM1F_TOLERANCE, 0},
+{592, 3197737370u, 3079358544u, 3196367738u, 0, EXPM1F_TOLERANCE, 0},
+{593, 3197737370u, 3079358544u, 3196367738u, 0, EXPM1F_TOLERANCE, 0},
+{594, 3197737370u, 3079358544u, 3196367738u, 0, EXPM1F_TOLERANCE, 0},
+{595, 3197737370u, 3079358544u, 3196367738u, 0, EXPM1F_TOLERANCE, 0},
+{596, 3197737370u, 3079358544u, 3196367738u, 0, EXPM1F_TOLERANCE, 0},
+{597, 3197737370u, 3079358544u, 3196367738u, 0, EXPM1F_TOLERANCE, 0},
+{598, 3197737370u, 3079358544u, 3196367738u, 0, EXPM1F_TOLERANCE, 0},
+{599, 3197737370u, 3079358544u, 3196367738u, 0, EXPM1F_TOLERANCE, 0},
+{600, 3196059648u, 3079358544u, 3194126860u, 0, EXPM1F_TOLERANCE, 0},
+{601, 3196059648u, 3079358544u, 3194126860u, 0, EXPM1F_TOLERANCE, 0},
+{602, 3196059648u, 3079358544u, 3194126860u, 0, EXPM1F_TOLERANCE, 0},
+{603, 3196059648u, 3079358544u, 3194126860u, 0, EXPM1F_TOLERANCE, 0},
+{604, 3196059648u, 3079358544u, 3194126860u, 0, EXPM1F_TOLERANCE, 0},
+{605, 3196059648u, 3079358544u, 3194126860u, 0, EXPM1F_TOLERANCE, 0},
+{606, 3196059648u, 3079358544u, 3194126860u, 0, EXPM1F_TOLERANCE, 0},
+{607, 3196059648u, 3079358544u, 3194126860u, 0, EXPM1F_TOLERANCE, 0},
+{608, 3196059648u, 3079358544u, 3194126860u, 0, EXPM1F_TOLERANCE, 0},
+{609, 3196059648u, 3079358544u, 3194126860u, 0, EXPM1F_TOLERANCE, 0},
+{610, 3196059648u, 3079358544u, 3194126860u, 0, EXPM1F_TOLERANCE, 0},
+{611, 3196059648u, 3079358544u, 3194126860u, 0, EXPM1F_TOLERANCE, 0},
+{612, 3196059648u, 3079358544u, 3194126860u, 0, EXPM1F_TOLERANCE, 0},
+{613, 3196059648u, 3079358544u, 3194126860u, 0, EXPM1F_TOLERANCE, 0},
+{614, 3196059648u, 3079358544u, 3194126860u, 0, EXPM1F_TOLERANCE, 0},
+{615, 3196059648u, 3079358544u, 3194126860u, 0, EXPM1F_TOLERANCE, 0},
+{616, 3196059648u, 3079358544u, 3194126860u, 0, EXPM1F_TOLERANCE, 0},
+{617, 3196059648u, 3079358544u, 3194126860u, 0, EXPM1F_TOLERANCE, 0},
+{618, 3196059648u, 3079358544u, 3194126860u, 0, EXPM1F_TOLERANCE, 0},
+{619, 3196059648u, 3079358544u, 3194126860u, 0, EXPM1F_TOLERANCE, 0},
+{620, 3196059648u, 3079358544u, 3194126860u, 0, EXPM1F_TOLERANCE, 0},
+{621, 3196059648u, 3079358544u, 3194126860u, 0, EXPM1F_TOLERANCE, 0},
+{622, 3196059648u, 3079358544u, 3194126860u, 0, EXPM1F_TOLERANCE, 0},
+{623, 3196059648u, 3079358544u, 3194126860u, 0, EXPM1F_TOLERANCE, 0},
+{624, 3196059648u, 3079358544u, 3194126860u, 0, EXPM1F_TOLERANCE, 0},
+{625, 3196059648u, 3079358544u, 3194126860u, 0, EXPM1F_TOLERANCE, 0},
+{626, 3196059648u, 3079358544u, 3194126860u, 0, EXPM1F_TOLERANCE, 0},
+{627, 3196059648u, 3079358544u, 3194126860u, 0, EXPM1F_TOLERANCE, 0},
+{628, 3196059648u, 3079358544u, 3194126860u, 0, EXPM1F_TOLERANCE, 0},
+{629, 3196059648u, 3079358544u, 3194126860u, 0, EXPM1F_TOLERANCE, 0},
+{630, 3196059648u, 3079358544u, 3194126860u, 0, EXPM1F_TOLERANCE, 0},
+{631, 3196059648u, 3079358544u, 3194126860u, 0, EXPM1F_TOLERANCE, 0},
+{632, 3196059648u, 3079358544u, 3194126860u, 0, EXPM1F_TOLERANCE, 0},
+{633, 3196059648u, 3079358544u, 3194126860u, 0, EXPM1F_TOLERANCE, 0},
+{634, 3196059648u, 3079358544u, 3194126860u, 0, EXPM1F_TOLERANCE, 0},
+{635, 3196059648u, 3079358544u, 3194126860u, 0, EXPM1F_TOLERANCE, 0},
+{636, 3196059648u, 3079358544u, 3194126860u, 0, EXPM1F_TOLERANCE, 0},
+{637, 3196059648u, 3079358544u, 3194126860u, 0, EXPM1F_TOLERANCE, 0},
+{638, 3196059648u, 3079358544u, 3194126860u, 0, EXPM1F_TOLERANCE, 0},
+{639, 3196059648u, 3079358544u, 3194126860u, 0, EXPM1F_TOLERANCE, 0},
+{640, 3192704205u, 3079358544u, 3191447205u, 0, EXPM1F_TOLERANCE, 0},
+{641, 3192704205u, 3079358544u, 3191447205u, 0, EXPM1F_TOLERANCE, 0},
+{642, 3192704205u, 3079358544u, 3191447205u, 0, EXPM1F_TOLERANCE, 0},
+{643, 3192704205u, 3079358544u, 3191447205u, 0, EXPM1F_TOLERANCE, 0},
+{644, 3192704205u, 3079358544u, 3191447205u, 0, EXPM1F_TOLERANCE, 0},
+{645, 3192704205u, 3079358544u, 3191447205u, 0, EXPM1F_TOLERANCE, 0},
+{646, 3192704205u, 3079358544u, 3191447205u, 0, EXPM1F_TOLERANCE, 0},
+{647, 3192704205u, 3079358544u, 3191447205u, 0, EXPM1F_TOLERANCE, 0},
+{648, 3192704205u, 3079358544u, 3191447205u, 0, EXPM1F_TOLERANCE, 0},
+{649, 3192704205u, 3079358544u, 3191447205u, 0, EXPM1F_TOLERANCE, 0},
+{650, 3192704205u, 3079358544u, 3191447205u, 0, EXPM1F_TOLERANCE, 0},
+{651, 3192704205u, 3079358544u, 3191447205u, 0, EXPM1F_TOLERANCE, 0},
+{652, 3192704205u, 3079358544u, 3191447205u, 0, EXPM1F_TOLERANCE, 0},
+{653, 3192704205u, 3079358544u, 3191447205u, 0, EXPM1F_TOLERANCE, 0},
+{654, 3192704205u, 3079358544u, 3191447205u, 0, EXPM1F_TOLERANCE, 0},
+{655, 3192704205u, 3079358544u, 3191447205u, 0, EXPM1F_TOLERANCE, 0},
+{656, 3192704205u, 3079358544u, 3191447205u, 0, EXPM1F_TOLERANCE, 0},
+{657, 3192704205u, 3079358544u, 3191447205u, 0, EXPM1F_TOLERANCE, 0},
+{658, 3192704205u, 3079358544u, 3191447205u, 0, EXPM1F_TOLERANCE, 0},
+{659, 3192704205u, 3079358544u, 3191447205u, 0, EXPM1F_TOLERANCE, 0},
+{660, 3192704205u, 3079358544u, 3191447205u, 0, EXPM1F_TOLERANCE, 0},
+{661, 3192704205u, 3079358544u, 3191447205u, 0, EXPM1F_TOLERANCE, 0},
+{662, 3192704205u, 3079358544u, 3191447205u, 0, EXPM1F_TOLERANCE, 0},
+{663, 3192704205u, 3079358544u, 3191447205u, 0, EXPM1F_TOLERANCE, 0},
+{664, 3192704205u, 3079358544u, 3191447205u, 0, EXPM1F_TOLERANCE, 0},
+{665, 3192704205u, 3079358544u, 3191447205u, 0, EXPM1F_TOLERANCE, 0},
+{666, 3192704205u, 3079358544u, 3191447205u, 0, EXPM1F_TOLERANCE, 0},
+{667, 3192704205u, 3079358544u, 3191447205u, 0, EXPM1F_TOLERANCE, 0},
+{668, 3192704205u, 3079358544u, 3191447205u, 0, EXPM1F_TOLERANCE, 0},
+{669, 3192704205u, 3079358544u, 3191447205u, 0, EXPM1F_TOLERANCE, 0},
+{670, 3192704205u, 3079358544u, 3191447205u, 0, EXPM1F_TOLERANCE, 0},
+{671, 3192704205u, 3079358544u, 3191447205u, 0, EXPM1F_TOLERANCE, 0},
+{672, 3192704205u, 3079358544u, 3191447205u, 0, EXPM1F_TOLERANCE, 0},
+{673, 3192704205u, 3079358544u, 3191447205u, 0, EXPM1F_TOLERANCE, 0},
+{674, 3192704205u, 3079358544u, 3191447205u, 0, EXPM1F_TOLERANCE, 0},
+{675, 3192704205u, 3079358544u, 3191447205u, 0, EXPM1F_TOLERANCE, 0},
+{676, 3192704205u, 3079358544u, 3191447205u, 0, EXPM1F_TOLERANCE, 0},
+{677, 3192704205u, 3079358544u, 3191447205u, 0, EXPM1F_TOLERANCE, 0},
+{678, 3192704205u, 3079358544u, 3191447205u, 0, EXPM1F_TOLERANCE, 0},
+{679, 3192704205u, 3079358544u, 3191447205u, 0, EXPM1F_TOLERANCE, 0},
+{680, 3189348762u, 3079358544u, 3188630162u, 0, EXPM1F_TOLERANCE, 0},
+{681, 3189348762u, 3079358544u, 3188630162u, 0, EXPM1F_TOLERANCE, 0},
+{682, 3189348762u, 3079358544u, 3188630162u, 0, EXPM1F_TOLERANCE, 0},
+{683, 3189348762u, 3079358544u, 3188630162u, 0, EXPM1F_TOLERANCE, 0},
+{684, 3189348762u, 3079358544u, 3188630162u, 0, EXPM1F_TOLERANCE, 0},
+{685, 3189348762u, 3079358544u, 3188630162u, 0, EXPM1F_TOLERANCE, 0},
+{686, 3189348762u, 3079358544u, 3188630162u, 0, EXPM1F_TOLERANCE, 0},
+{687, 3189348762u, 3079358544u, 3188630162u, 0, EXPM1F_TOLERANCE, 0},
+{688, 3189348762u, 3079358544u, 3188630162u, 0, EXPM1F_TOLERANCE, 0},
+{689, 3189348762u, 3079358544u, 3188630162u, 0, EXPM1F_TOLERANCE, 0},
+{690, 3189348762u, 3079358544u, 3188630162u, 0, EXPM1F_TOLERANCE, 0},
+{691, 3189348762u, 3079358544u, 3188630162u, 0, EXPM1F_TOLERANCE, 0},
+{692, 3189348762u, 3079358544u, 3188630162u, 0, EXPM1F_TOLERANCE, 0},
+{693, 3189348762u, 3079358544u, 3188630162u, 0, EXPM1F_TOLERANCE, 0},
+{694, 3189348762u, 3079358544u, 3188630162u, 0, EXPM1F_TOLERANCE, 0},
+{695, 3189348762u, 3079358544u, 3188630162u, 0, EXPM1F_TOLERANCE, 0},
+{696, 3189348762u, 3079358544u, 3188630162u, 0, EXPM1F_TOLERANCE, 0},
+{697, 3189348762u, 3079358544u, 3188630162u, 0, EXPM1F_TOLERANCE, 0},
+{698, 3189348762u, 3079358544u, 3188630162u, 0, EXPM1F_TOLERANCE, 0},
+{699, 3189348762u, 3079358544u, 3188630162u, 0, EXPM1F_TOLERANCE, 0},
+{700, 3189348762u, 3079358544u, 3188630162u, 0, EXPM1F_TOLERANCE, 0},
+{701, 3189348762u, 3079358544u, 3188630162u, 0, EXPM1F_TOLERANCE, 0},
+{702, 3189348762u, 3079358544u, 3188630162u, 0, EXPM1F_TOLERANCE, 0},
+{703, 3189348762u, 3079358544u, 3188630162u, 0, EXPM1F_TOLERANCE, 0},
+{704, 3189348762u, 3079358544u, 3188630162u, 0, EXPM1F_TOLERANCE, 0},
+{705, 3189348762u, 3079358544u, 3188630162u, 0, EXPM1F_TOLERANCE, 0},
+{706, 3189348762u, 3079358544u, 3188630162u, 0, EXPM1F_TOLERANCE, 0},
+{707, 3189348762u, 3079358544u, 3188630162u, 0, EXPM1F_TOLERANCE, 0},
+{708, 3189348762u, 3079358544u, 3188630162u, 0, EXPM1F_TOLERANCE, 0},
+{709, 3189348762u, 3079358544u, 3188630162u, 0, EXPM1F_TOLERANCE, 0},
+{710, 3189348762u, 3079358544u, 3188630162u, 0, EXPM1F_TOLERANCE, 0},
+{711, 3189348762u, 3079358544u, 3188630162u, 0, EXPM1F_TOLERANCE, 0},
+{712, 3189348762u, 3079358544u, 3188630162u, 0, EXPM1F_TOLERANCE, 0},
+{713, 3189348762u, 3079358544u, 3188630162u, 0, EXPM1F_TOLERANCE, 0},
+{714, 3189348762u, 3079358544u, 3188630162u, 0, EXPM1F_TOLERANCE, 0},
+{715, 3189348762u, 3079358544u, 3188630162u, 0, EXPM1F_TOLERANCE, 0},
+{716, 3189348762u, 3079358544u, 3188630162u, 0, EXPM1F_TOLERANCE, 0},
+{717, 3189348762u, 3079358544u, 3188630162u, 0, EXPM1F_TOLERANCE, 0},
+{718, 3189348762u, 3079358544u, 3188630162u, 0, EXPM1F_TOLERANCE, 0},
+{719, 3189348762u, 3079358544u, 3188630162u, 0, EXPM1F_TOLERANCE, 0},
+{720, 3184315597u, 3079358544u, 3183666330u, 0, EXPM1F_TOLERANCE, 0},
+{721, 3184315597u, 3079358544u, 3183666330u, 0, EXPM1F_TOLERANCE, 0},
+{722, 3184315597u, 3079358544u, 3183666330u, 0, EXPM1F_TOLERANCE, 0},
+{723, 3184315597u, 3079358544u, 3183666330u, 0, EXPM1F_TOLERANCE, 0},
+{724, 3184315597u, 3079358544u, 3183666330u, 0, EXPM1F_TOLERANCE, 0},
+{725, 3184315597u, 3079358544u, 3183666330u, 0, EXPM1F_TOLERANCE, 0},
+{726, 3184315597u, 3079358544u, 3183666330u, 0, EXPM1F_TOLERANCE, 0},
+{727, 3184315597u, 3079358544u, 3183666330u, 0, EXPM1F_TOLERANCE, 0},
+{728, 3184315597u, 3079358544u, 3183666330u, 0, EXPM1F_TOLERANCE, 0},
+{729, 3184315597u, 3079358544u, 3183666330u, 0, EXPM1F_TOLERANCE, 0},
+{730, 3184315597u, 3079358544u, 3183666330u, 0, EXPM1F_TOLERANCE, 0},
+{731, 3184315597u, 3079358544u, 3183666330u, 0, EXPM1F_TOLERANCE, 0},
+{732, 3184315597u, 3079358544u, 3183666330u, 0, EXPM1F_TOLERANCE, 0},
+{733, 3184315597u, 3079358544u, 3183666330u, 0, EXPM1F_TOLERANCE, 0},
+{734, 3184315597u, 3079358544u, 3183666330u, 0, EXPM1F_TOLERANCE, 0},
+{735, 3184315597u, 3079358544u, 3183666330u, 0, EXPM1F_TOLERANCE, 0},
+{736, 3184315597u, 3079358544u, 3183666330u, 0, EXPM1F_TOLERANCE, 0},
+{737, 3184315597u, 3079358544u, 3183666330u, 0, EXPM1F_TOLERANCE, 0},
+{738, 3184315597u, 3079358544u, 3183666330u, 0, EXPM1F_TOLERANCE, 0},
+{739, 3184315597u, 3079358544u, 3183666330u, 0, EXPM1F_TOLERANCE, 0},
+{740, 3184315597u, 3079358544u, 3183666330u, 0, EXPM1F_TOLERANCE, 0},
+{741, 3184315597u, 3079358544u, 3183666330u, 0, EXPM1F_TOLERANCE, 0},
+{742, 3184315597u, 3079358544u, 3183666330u, 0, EXPM1F_TOLERANCE, 0},
+{743, 3184315597u, 3079358544u, 3183666330u, 0, EXPM1F_TOLERANCE, 0},
+{744, 3184315597u, 3079358544u, 3183666330u, 0, EXPM1F_TOLERANCE, 0},
+{745, 3184315597u, 3079358544u, 3183666330u, 0, EXPM1F_TOLERANCE, 0},
+{746, 3184315597u, 3079358544u, 3183666330u, 0, EXPM1F_TOLERANCE, 0},
+{747, 3184315597u, 3079358544u, 3183666330u, 0, EXPM1F_TOLERANCE, 0},
+{748, 3184315597u, 3079358544u, 3183666330u, 0, EXPM1F_TOLERANCE, 0},
+{749, 3184315597u, 3079358544u, 3183666330u, 0, EXPM1F_TOLERANCE, 0},
+{750, 3184315597u, 3079358544u, 3183666330u, 0, EXPM1F_TOLERANCE, 0},
+{751, 3184315597u, 3079358544u, 3183666330u, 0, EXPM1F_TOLERANCE, 0},
+{752, 3184315597u, 3079358544u, 3183666330u, 0, EXPM1F_TOLERANCE, 0},
+{753, 3184315597u, 3079358544u, 3183666330u, 0, EXPM1F_TOLERANCE, 0},
+{754, 3184315597u, 3079358544u, 3183666330u, 0, EXPM1F_TOLERANCE, 0},
+{755, 3184315597u, 3079358544u, 3183666330u, 0, EXPM1F_TOLERANCE, 0},
+{756, 3184315597u, 3079358544u, 3183666330u, 0, EXPM1F_TOLERANCE, 0},
+{757, 3184315597u, 3079358544u, 3183666330u, 0, EXPM1F_TOLERANCE, 0},
+{758, 3184315597u, 3079358544u, 3183666330u, 0, EXPM1F_TOLERANCE, 0},
+{759, 3184315597u, 3079358544u, 3183666330u, 0, EXPM1F_TOLERANCE, 0},
+{760, 3175926989u, 3079358544u, 3175596968u, 0, EXPM1F_TOLERANCE, 0},
+{761, 3175926989u, 3079358544u, 3175596968u, 0, EXPM1F_TOLERANCE, 0},
+{762, 3175926989u, 3079358544u, 3175596968u, 0, EXPM1F_TOLERANCE, 0},
+{763, 3175926989u, 3079358544u, 3175596968u, 0, EXPM1F_TOLERANCE, 0},
+{764, 3175926989u, 3079358544u, 3175596968u, 0, EXPM1F_TOLERANCE, 0},
+{765, 3175926989u, 3079358544u, 3175596968u, 0, EXPM1F_TOLERANCE, 0},
+{766, 3175926989u, 3079358544u, 3175596968u, 0, EXPM1F_TOLERANCE, 0},
+{767, 3175926989u, 3079358544u, 3175596968u, 0, EXPM1F_TOLERANCE, 0},
+{768, 3175926989u, 3079358544u, 3175596968u, 0, EXPM1F_TOLERANCE, 0},
+{769, 3175926989u, 3079358544u, 3175596968u, 0, EXPM1F_TOLERANCE, 0},
+{770, 3175926989u, 3079358544u, 3175596968u, 0, EXPM1F_TOLERANCE, 0},
+{771, 3175926989u, 3079358544u, 3175596968u, 0, EXPM1F_TOLERANCE, 0},
+{772, 3175926989u, 3079358544u, 3175596968u, 0, EXPM1F_TOLERANCE, 0},
+{773, 3175926989u, 3079358544u, 3175596968u, 0, EXPM1F_TOLERANCE, 0},
+{774, 3175926989u, 3079358544u, 3175596968u, 0, EXPM1F_TOLERANCE, 0},
+{775, 3175926989u, 3079358544u, 3175596968u, 0, EXPM1F_TOLERANCE, 0},
+{776, 3175926989u, 3079358544u, 3175596968u, 0, EXPM1F_TOLERANCE, 0},
+{777, 3175926989u, 3079358544u, 3175596968u, 0, EXPM1F_TOLERANCE, 0},
+{778, 3175926989u, 3079358544u, 3175596968u, 0, EXPM1F_TOLERANCE, 0},
+{779, 3175926989u, 3079358544u, 3175596968u, 0, EXPM1F_TOLERANCE, 0},
+{780, 3175926989u, 3079358544u, 3175596968u, 0, EXPM1F_TOLERANCE, 0},
+{781, 3175926989u, 3079358544u, 3175596968u, 0, EXPM1F_TOLERANCE, 0},
+{782, 3175926989u, 3079358544u, 3175596968u, 0, EXPM1F_TOLERANCE, 0},
+{783, 3175926989u, 3079358544u, 3175596968u, 0, EXPM1F_TOLERANCE, 0},
+{784, 3175926989u, 3079358544u, 3175596968u, 0, EXPM1F_TOLERANCE, 0},
+{785, 3175926989u, 3079358544u, 3175596968u, 0, EXPM1F_TOLERANCE, 0},
+{786, 3175926989u, 3079358544u, 3175596968u, 0, EXPM1F_TOLERANCE, 0},
+{787, 3175926989u, 3079358544u, 3175596968u, 0, EXPM1F_TOLERANCE, 0},
+{788, 3175926989u, 3079358544u, 3175596968u, 0, EXPM1F_TOLERANCE, 0},
+{789, 3175926989u, 3079358544u, 3175596968u, 0, EXPM1F_TOLERANCE, 0},
+{790, 3175926989u, 3079358544u, 3175596968u, 0, EXPM1F_TOLERANCE, 0},
+{791, 3175926989u, 3079358544u, 3175596968u, 0, EXPM1F_TOLERANCE, 0},
+{792, 3175926989u, 3079358544u, 3175596968u, 0, EXPM1F_TOLERANCE, 0},
+{793, 3175926989u, 3079358544u, 3175596968u, 0, EXPM1F_TOLERANCE, 0},
+{794, 3175926989u, 3079358544u, 3175596968u, 0, EXPM1F_TOLERANCE, 0},
+{795, 3175926989u, 3079358544u, 3175596968u, 0, EXPM1F_TOLERANCE, 0},
+{796, 3175926989u, 3079358544u, 3175596968u, 0, EXPM1F_TOLERANCE, 0},
+{797, 3175926989u, 3079358544u, 3175596968u, 0, EXPM1F_TOLERANCE, 0},
+{798, 3175926989u, 3079358544u, 3175596968u, 0, EXPM1F_TOLERANCE, 0},
+{799, 3175926989u, 3079358544u, 3175596968u, 0, EXPM1F_TOLERANCE, 0},
+{800, 632815616u, 3079358544u, 632815616u, 0, EXPM1F_TOLERANCE, 0},
+{801, 632815616u, 3079358544u, 632815616u, 0, EXPM1F_TOLERANCE, 0},
+{802, 632815616u, 3079358544u, 632815616u, 0, EXPM1F_TOLERANCE, 0},
+{803, 632815616u, 3079358544u, 632815616u, 0, EXPM1F_TOLERANCE, 0},
+{804, 632815616u, 3079358544u, 632815616u, 0, EXPM1F_TOLERANCE, 0},
+{805, 632815616u, 3079358544u, 632815616u, 0, EXPM1F_TOLERANCE, 0},
+{806, 632815616u, 3079358544u, 632815616u, 0, EXPM1F_TOLERANCE, 0},
+{807, 632815616u, 3079358544u, 632815616u, 0, EXPM1F_TOLERANCE, 0},
+{808, 632815616u, 3079358544u, 632815616u, 0, EXPM1F_TOLERANCE, 0},
+{809, 632815616u, 3079358544u, 632815616u, 0, EXPM1F_TOLERANCE, 0},
+{810, 632815616u, 3079358544u, 632815616u, 0, EXPM1F_TOLERANCE, 0},
+{811, 632815616u, 3079358544u, 632815616u, 0, EXPM1F_TOLERANCE, 0},
+{812, 632815616u, 3079358544u, 632815616u, 0, EXPM1F_TOLERANCE, 0},
+{813, 632815616u, 3079358544u, 632815616u, 0, EXPM1F_TOLERANCE, 0},
+{814, 632815616u, 3079358544u, 632815616u, 0, EXPM1F_TOLERANCE, 0},
+{815, 632815616u, 3079358544u, 632815616u, 0, EXPM1F_TOLERANCE, 0},
+{816, 632815616u, 3079358544u, 632815616u, 0, EXPM1F_TOLERANCE, 0},
+{817, 632815616u, 3079358544u, 632815616u, 0, EXPM1F_TOLERANCE, 0},
+{818, 632815616u, 3079358544u, 632815616u, 0, EXPM1F_TOLERANCE, 0},
+{819, 632815616u, 3079358544u, 632815616u, 0, EXPM1F_TOLERANCE, 0},
+{820, 632815616u, 3079358544u, 632815616u, 0, EXPM1F_TOLERANCE, 0},
+{821, 632815616u, 3079358544u, 632815616u, 0, EXPM1F_TOLERANCE, 0},
+{822, 632815616u, 3079358544u, 632815616u, 0, EXPM1F_TOLERANCE, 0},
+{823, 632815616u, 3079358544u, 632815616u, 0, EXPM1F_TOLERANCE, 0},
+{824, 632815616u, 3079358544u, 632815616u, 0, EXPM1F_TOLERANCE, 0},
+{825, 632815616u, 3079358544u, 632815616u, 0, EXPM1F_TOLERANCE, 0},
+{826, 632815616u, 3079358544u, 632815616u, 0, EXPM1F_TOLERANCE, 0},
+{827, 632815616u, 3079358544u, 632815616u, 0, EXPM1F_TOLERANCE, 0},
+{828, 632815616u, 3079358544u, 632815616u, 0, EXPM1F_TOLERANCE, 0},
+{829, 632815616u, 3079358544u, 632815616u, 0, EXPM1F_TOLERANCE, 0},
+{830, 632815616u, 3079358544u, 632815616u, 0, EXPM1F_TOLERANCE, 0},
+{831, 632815616u, 3079358544u, 632815616u, 0, EXPM1F_TOLERANCE, 0},
+{832, 632815616u, 3079358544u, 632815616u, 0, EXPM1F_TOLERANCE, 0},
+{833, 632815616u, 3079358544u, 632815616u, 0, EXPM1F_TOLERANCE, 0},
+{834, 632815616u, 3079358544u, 632815616u, 0, EXPM1F_TOLERANCE, 0},
+{835, 632815616u, 3079358544u, 632815616u, 0, EXPM1F_TOLERANCE, 0},
+{836, 632815616u, 3079358544u, 632815616u, 0, EXPM1F_TOLERANCE, 0},
+{837, 632815616u, 3079358544u, 632815616u, 0, EXPM1F_TOLERANCE, 0},
+{838, 632815616u, 3079358544u, 632815616u, 0, EXPM1F_TOLERANCE, 0},
+{839, 632815616u, 3079358544u, 632815616u, 0, EXPM1F_TOLERANCE, 0},
+{840, 1028443341u, 3079358544u, 1028784548u, 0, EXPM1F_TOLERANCE, 0},
+{841, 1028443341u, 3079358544u, 1028784548u, 0, EXPM1F_TOLERANCE, 0},
+{842, 1028443341u, 3079358544u, 1028784548u, 0, EXPM1F_TOLERANCE, 0},
+{843, 1028443341u, 3079358544u, 1028784548u, 0, EXPM1F_TOLERANCE, 0},
+{844, 1028443341u, 3079358544u, 1028784548u, 0, EXPM1F_TOLERANCE, 0},
+{845, 1028443341u, 3079358544u, 1028784548u, 0, EXPM1F_TOLERANCE, 0},
+{846, 1028443341u, 3079358544u, 1028784548u, 0, EXPM1F_TOLERANCE, 0},
+{847, 1028443341u, 3079358544u, 1028784548u, 0, EXPM1F_TOLERANCE, 0},
+{848, 1028443341u, 3079358544u, 1028784548u, 0, EXPM1F_TOLERANCE, 0},
+{849, 1028443341u, 3079358544u, 1028784548u, 0, EXPM1F_TOLERANCE, 0},
+{850, 1028443341u, 3079358544u, 1028784548u, 0, EXPM1F_TOLERANCE, 0},
+{851, 1028443341u, 3079358544u, 1028784548u, 0, EXPM1F_TOLERANCE, 0},
+{852, 1028443341u, 3079358544u, 1028784548u, 0, EXPM1F_TOLERANCE, 0},
+{853, 1028443341u, 3079358544u, 1028784548u, 0, EXPM1F_TOLERANCE, 0},
+{854, 1028443341u, 3079358544u, 1028784548u, 0, EXPM1F_TOLERANCE, 0},
+{855, 1028443341u, 3079358544u, 1028784548u, 0, EXPM1F_TOLERANCE, 0},
+{856, 1028443341u, 3079358544u, 1028784548u, 0, EXPM1F_TOLERANCE, 0},
+{857, 1028443341u, 3079358544u, 1028784548u, 0, EXPM1F_TOLERANCE, 0},
+{858, 1028443341u, 3079358544u, 1028784548u, 0, EXPM1F_TOLERANCE, 0},
+{859, 1028443341u, 3079358544u, 1028784548u, 0, EXPM1F_TOLERANCE, 0},
+{860, 1028443341u, 3079358544u, 1028784548u, 0, EXPM1F_TOLERANCE, 0},
+{861, 1028443341u, 3079358544u, 1028784548u, 0, EXPM1F_TOLERANCE, 0},
+{862, 1028443341u, 3079358544u, 1028784548u, 0, EXPM1F_TOLERANCE, 0},
+{863, 1028443341u, 3079358544u, 1028784548u, 0, EXPM1F_TOLERANCE, 0},
+{864, 1028443341u, 3079358544u, 1028784548u, 0, EXPM1F_TOLERANCE, 0},
+{865, 1028443341u, 3079358544u, 1028784548u, 0, EXPM1F_TOLERANCE, 0},
+{866, 1028443341u, 3079358544u, 1028784548u, 0, EXPM1F_TOLERANCE, 0},
+{867, 1028443341u, 3079358544u, 1028784548u, 0, EXPM1F_TOLERANCE, 0},
+{868, 1028443341u, 3079358544u, 1028784548u, 0, EXPM1F_TOLERANCE, 0},
+{869, 1028443341u, 3079358544u, 1028784548u, 0, EXPM1F_TOLERANCE, 0},
+{870, 1028443341u, 3079358544u, 1028784548u, 0, EXPM1F_TOLERANCE, 0},
+{871, 1028443341u, 3079358544u, 1028784548u, 0, EXPM1F_TOLERANCE, 0},
+{872, 1028443341u, 3079358544u, 1028784548u, 0, EXPM1F_TOLERANCE, 0},
+{873, 1028443341u, 3079358544u, 1028784548u, 0, EXPM1F_TOLERANCE, 0},
+{874, 1028443341u, 3079358544u, 1028784548u, 0, EXPM1F_TOLERANCE, 0},
+{875, 1028443341u, 3079358544u, 1028784548u, 0, EXPM1F_TOLERANCE, 0},
+{876, 1028443341u, 3079358544u, 1028784548u, 0, EXPM1F_TOLERANCE, 0},
+{877, 1028443341u, 3079358544u, 1028784548u, 0, EXPM1F_TOLERANCE, 0},
+{878, 1028443341u, 3079358544u, 1028784548u, 0, EXPM1F_TOLERANCE, 0},
+{879, 1028443341u, 3079358544u, 1028784548u, 0, EXPM1F_TOLERANCE, 0},
+{880, 1036831949u, 3079358544u, 1037525978u, 0, EXPM1F_TOLERANCE, 0},
+{881, 1036831949u, 3079358544u, 1037525978u, 0, EXPM1F_TOLERANCE, 0},
+{882, 1036831949u, 3079358544u, 1037525978u, 0, EXPM1F_TOLERANCE, 0},
+{883, 1036831949u, 3079358544u, 1037525978u, 0, EXPM1F_TOLERANCE, 0},
+{884, 1036831949u, 3079358544u, 1037525978u, 0, EXPM1F_TOLERANCE, 0},
+{885, 1036831949u, 3079358544u, 1037525978u, 0, EXPM1F_TOLERANCE, 0},
+{886, 1036831949u, 3079358544u, 1037525978u, 0, EXPM1F_TOLERANCE, 0},
+{887, 1036831949u, 3079358544u, 1037525978u, 0, EXPM1F_TOLERANCE, 0},
+{888, 1036831949u, 3079358544u, 1037525978u, 0, EXPM1F_TOLERANCE, 0},
+{889, 1036831949u, 3079358544u, 1037525978u, 0, EXPM1F_TOLERANCE, 0},
+{890, 1036831949u, 3079358544u, 1037525978u, 0, EXPM1F_TOLERANCE, 0},
+{891, 1036831949u, 3079358544u, 1037525978u, 0, EXPM1F_TOLERANCE, 0},
+{892, 1036831949u, 3079358544u, 1037525978u, 0, EXPM1F_TOLERANCE, 0},
+{893, 1036831949u, 3079358544u, 1037525978u, 0, EXPM1F_TOLERANCE, 0},
+{894, 1036831949u, 3079358544u, 1037525978u, 0, EXPM1F_TOLERANCE, 0},
+{895, 1036831949u, 3079358544u, 1037525978u, 0, EXPM1F_TOLERANCE, 0},
+{896, 1036831949u, 3079358544u, 1037525978u, 0, EXPM1F_TOLERANCE, 0},
+{897, 1036831949u, 3079358544u, 1037525978u, 0, EXPM1F_TOLERANCE, 0},
+{898, 1036831949u, 3079358544u, 1037525978u, 0, EXPM1F_TOLERANCE, 0},
+{899, 1036831949u, 3079358544u, 1037525978u, 0, EXPM1F_TOLERANCE, 0},
+{900, 1036831949u, 3079358544u, 1037525978u, 0, EXPM1F_TOLERANCE, 0},
+{901, 1036831949u, 3079358544u, 1037525978u, 0, EXPM1F_TOLERANCE, 0},
+{902, 1036831949u, 3079358544u, 1037525978u, 0, EXPM1F_TOLERANCE, 0},
+{903, 1036831949u, 3079358544u, 1037525978u, 0, EXPM1F_TOLERANCE, 0},
+{904, 1036831949u, 3079358544u, 1037525978u, 0, EXPM1F_TOLERANCE, 0},
+{905, 1036831949u, 3079358544u, 1037525978u, 0, EXPM1F_TOLERANCE, 0},
+{906, 1036831949u, 3079358544u, 1037525978u, 0, EXPM1F_TOLERANCE, 0},
+{907, 1036831949u, 3079358544u, 1037525978u, 0, EXPM1F_TOLERANCE, 0},
+{908, 1036831949u, 3079358544u, 1037525978u, 0, EXPM1F_TOLERANCE, 0},
+{909, 1036831949u, 3079358544u, 1037525978u, 0, EXPM1F_TOLERANCE, 0},
+{910, 1036831949u, 3079358544u, 1037525978u, 0, EXPM1F_TOLERANCE, 0},
+{911, 1036831949u, 3079358544u, 1037525978u, 0, EXPM1F_TOLERANCE, 0},
+{912, 1036831949u, 3079358544u, 1037525978u, 0, EXPM1F_TOLERANCE, 0},
+{913, 1036831949u, 3079358544u, 1037525978u, 0, EXPM1F_TOLERANCE, 0},
+{914, 1036831949u, 3079358544u, 1037525978u, 0, EXPM1F_TOLERANCE, 0},
+{915, 1036831949u, 3079358544u, 1037525978u, 0, EXPM1F_TOLERANCE, 0},
+{916, 1036831949u, 3079358544u, 1037525978u, 0, EXPM1F_TOLERANCE, 0},
+{917, 1036831949u, 3079358544u, 1037525978u, 0, EXPM1F_TOLERANCE, 0},
+{918, 1036831949u, 3079358544u, 1037525978u, 0, EXPM1F_TOLERANCE, 0},
+{919, 1036831949u, 3079358544u, 1037525978u, 0, EXPM1F_TOLERANCE, 0},
+{920, 1041865114u, 3079358544u, 1042659297u, 0, EXPM1F_TOLERANCE, 0},
+{921, 1041865114u, 3079358544u, 1042659297u, 0, EXPM1F_TOLERANCE, 0},
+{922, 1041865114u, 3079358544u, 1042659297u, 0, EXPM1F_TOLERANCE, 0},
+{923, 1041865114u, 3079358544u, 1042659297u, 0, EXPM1F_TOLERANCE, 0},
+{924, 1041865114u, 3079358544u, 1042659297u, 0, EXPM1F_TOLERANCE, 0},
+{925, 1041865114u, 3079358544u, 1042659297u, 0, EXPM1F_TOLERANCE, 0},
+{926, 1041865114u, 3079358544u, 1042659297u, 0, EXPM1F_TOLERANCE, 0},
+{927, 1041865114u, 3079358544u, 1042659297u, 0, EXPM1F_TOLERANCE, 0},
+{928, 1041865114u, 3079358544u, 1042659297u, 0, EXPM1F_TOLERANCE, 0},
+{929, 1041865114u, 3079358544u, 1042659297u, 0, EXPM1F_TOLERANCE, 0},
+{930, 1041865114u, 3079358544u, 1042659297u, 0, EXPM1F_TOLERANCE, 0},
+{931, 1041865114u, 3079358544u, 1042659297u, 0, EXPM1F_TOLERANCE, 0},
+{932, 1041865114u, 3079358544u, 1042659297u, 0, EXPM1F_TOLERANCE, 0},
+{933, 1041865114u, 3079358544u, 1042659297u, 0, EXPM1F_TOLERANCE, 0},
+{934, 1041865114u, 3079358544u, 1042659297u, 0, EXPM1F_TOLERANCE, 0},
+{935, 1041865114u, 3079358544u, 1042659297u, 0, EXPM1F_TOLERANCE, 0},
+{936, 1041865114u, 3079358544u, 1042659297u, 0, EXPM1F_TOLERANCE, 0},
+{937, 1041865114u, 3079358544u, 1042659297u, 0, EXPM1F_TOLERANCE, 0},
+{938, 1041865114u, 3079358544u, 1042659297u, 0, EXPM1F_TOLERANCE, 0},
+{939, 1041865114u, 3079358544u, 1042659297u, 0, EXPM1F_TOLERANCE, 0},
+{940, 1041865114u, 3079358544u, 1042659297u, 0, EXPM1F_TOLERANCE, 0},
+{941, 1041865114u, 3079358544u, 1042659297u, 0, EXPM1F_TOLERANCE, 0},
+{942, 1041865114u, 3079358544u, 1042659297u, 0, EXPM1F_TOLERANCE, 0},
+{943, 1041865114u, 3079358544u, 1042659297u, 0, EXPM1F_TOLERANCE, 0},
+{944, 1041865114u, 3079358544u, 1042659297u, 0, EXPM1F_TOLERANCE, 0},
+{945, 1041865114u, 3079358544u, 1042659297u, 0, EXPM1F_TOLERANCE, 0},
+{946, 1041865114u, 3079358544u, 1042659297u, 0, EXPM1F_TOLERANCE, 0},
+{947, 1041865114u, 3079358544u, 1042659297u, 0, EXPM1F_TOLERANCE, 0},
+{948, 1041865114u, 3079358544u, 1042659297u, 0, EXPM1F_TOLERANCE, 0},
+{949, 1041865114u, 3079358544u, 1042659297u, 0, EXPM1F_TOLERANCE, 0},
+{950, 1041865114u, 3079358544u, 1042659297u, 0, EXPM1F_TOLERANCE, 0},
+{951, 1041865114u, 3079358544u, 1042659297u, 0, EXPM1F_TOLERANCE, 0},
+{952, 1041865114u, 3079358544u, 1042659297u, 0, EXPM1F_TOLERANCE, 0},
+{953, 1041865114u, 3079358544u, 1042659297u, 0, EXPM1F_TOLERANCE, 0},
+{954, 1041865114u, 3079358544u, 1042659297u, 0, EXPM1F_TOLERANCE, 0},
+{955, 1041865114u, 3079358544u, 1042659297u, 0, EXPM1F_TOLERANCE, 0},
+{956, 1041865114u, 3079358544u, 1042659297u, 0, EXPM1F_TOLERANCE, 0},
+{957, 1041865114u, 3079358544u, 1042659297u, 0, EXPM1F_TOLERANCE, 0},
+{958, 1041865114u, 3079358544u, 1042659297u, 0, EXPM1F_TOLERANCE, 0},
+{959, 1041865114u, 3079358544u, 1042659297u, 0, EXPM1F_TOLERANCE, 0},
+{960, 1045220557u, 3079358544u, 1046656872u, 0, EXPM1F_TOLERANCE, 0},
+{961, 1045220557u, 3079358544u, 1046656872u, 0, EXPM1F_TOLERANCE, 0},
+{962, 1045220557u, 3079358544u, 1046656872u, 0, EXPM1F_TOLERANCE, 0},
+{963, 1045220557u, 3079358544u, 1046656872u, 0, EXPM1F_TOLERANCE, 0},
+{964, 1045220557u, 3079358544u, 1046656872u, 0, EXPM1F_TOLERANCE, 0},
+{965, 1045220557u, 3079358544u, 1046656872u, 0, EXPM1F_TOLERANCE, 0},
+{966, 1045220557u, 3079358544u, 1046656872u, 0, EXPM1F_TOLERANCE, 0},
+{967, 1045220557u, 3079358544u, 1046656872u, 0, EXPM1F_TOLERANCE, 0},
+{968, 1045220557u, 3079358544u, 1046656872u, 0, EXPM1F_TOLERANCE, 0},
+{969, 1045220557u, 3079358544u, 1046656872u, 0, EXPM1F_TOLERANCE, 0},
+{970, 1045220557u, 3079358544u, 1046656872u, 0, EXPM1F_TOLERANCE, 0},
+{971, 1045220557u, 3079358544u, 1046656872u, 0, EXPM1F_TOLERANCE, 0},
+{972, 1045220557u, 3079358544u, 1046656872u, 0, EXPM1F_TOLERANCE, 0},
+{973, 1045220557u, 3079358544u, 1046656872u, 0, EXPM1F_TOLERANCE, 0},
+{974, 1045220557u, 3079358544u, 1046656872u, 0, EXPM1F_TOLERANCE, 0},
+{975, 1045220557u, 3079358544u, 1046656872u, 0, EXPM1F_TOLERANCE, 0},
+{976, 1045220557u, 3079358544u, 1046656872u, 0, EXPM1F_TOLERANCE, 0},
+{977, 1045220557u, 3079358544u, 1046656872u, 0, EXPM1F_TOLERANCE, 0},
+{978, 1045220557u, 3079358544u, 1046656872u, 0, EXPM1F_TOLERANCE, 0},
+{979, 1045220557u, 3079358544u, 1046656872u, 0, EXPM1F_TOLERANCE, 0},
+{980, 1045220557u, 3079358544u, 1046656872u, 0, EXPM1F_TOLERANCE, 0},
+{981, 1045220557u, 3079358544u, 1046656872u, 0, EXPM1F_TOLERANCE, 0},
+{982, 1045220557u, 3079358544u, 1046656872u, 0, EXPM1F_TOLERANCE, 0},
+{983, 1045220557u, 3079358544u, 1046656872u, 0, EXPM1F_TOLERANCE, 0},
+{984, 1045220557u, 3079358544u, 1046656872u, 0, EXPM1F_TOLERANCE, 0},
+{985, 1045220557u, 3079358544u, 1046656872u, 0, EXPM1F_TOLERANCE, 0},
+{986, 1045220557u, 3079358544u, 1046656872u, 0, EXPM1F_TOLERANCE, 0},
+{987, 1045220557u, 3079358544u, 1046656872u, 0, EXPM1F_TOLERANCE, 0},
+{988, 1045220557u, 3079358544u, 1046656872u, 0, EXPM1F_TOLERANCE, 0},
+{989, 1045220557u, 3079358544u, 1046656872u, 0, EXPM1F_TOLERANCE, 0},
+{990, 1045220557u, 3079358544u, 1046656872u, 0, EXPM1F_TOLERANCE, 0},
+{991, 1045220557u, 3079358544u, 1046656872u, 0, EXPM1F_TOLERANCE, 0},
+{992, 1045220557u, 3079358544u, 1046656872u, 0, EXPM1F_TOLERANCE, 0},
+{993, 1045220557u, 3079358544u, 1046656872u, 0, EXPM1F_TOLERANCE, 0},
+{994, 1045220557u, 3079358544u, 1046656872u, 0, EXPM1F_TOLERANCE, 0},
+{995, 1045220557u, 3079358544u, 1046656872u, 0, EXPM1F_TOLERANCE, 0},
+{996, 1045220557u, 3079358544u, 1046656872u, 0, EXPM1F_TOLERANCE, 0},
+{997, 1045220557u, 3079358544u, 1046656872u, 0, EXPM1F_TOLERANCE, 0},
+{998, 1045220557u, 3079358544u, 1046656872u, 0, EXPM1F_TOLERANCE, 0},
+{999, 1045220557u, 3079358544u, 1046656872u, 0, EXPM1F_TOLERANCE, 0},
+{1000, 1048576000u, 3079358544u, 1049717704u, 0, EXPM1F_TOLERANCE, 0},
+{1001, 1048576000u, 3079358544u, 1049717704u, 0, EXPM1F_TOLERANCE, 0},
+{1002, 1048576000u, 3079358544u, 1049717704u, 0, EXPM1F_TOLERANCE, 0},
+{1003, 1048576000u, 3079358544u, 1049717704u, 0, EXPM1F_TOLERANCE, 0},
+{1004, 1048576000u, 3079358544u, 1049717704u, 0, EXPM1F_TOLERANCE, 0},
+{1005, 1048576000u, 3079358544u, 1049717704u, 0, EXPM1F_TOLERANCE, 0},
+{1006, 1048576000u, 3079358544u, 1049717704u, 0, EXPM1F_TOLERANCE, 0},
+{1007, 1048576000u, 3079358544u, 1049717704u, 0, EXPM1F_TOLERANCE, 0},
+{1008, 1048576000u, 3079358544u, 1049717704u, 0, EXPM1F_TOLERANCE, 0},
+{1009, 1048576000u, 3079358544u, 1049717704u, 0, EXPM1F_TOLERANCE, 0},
+{1010, 1048576000u, 3079358544u, 1049717704u, 0, EXPM1F_TOLERANCE, 0},
+{1011, 1048576000u, 3079358544u, 1049717704u, 0, EXPM1F_TOLERANCE, 0},
+{1012, 1048576000u, 3079358544u, 1049717704u, 0, EXPM1F_TOLERANCE, 0},
+{1013, 1048576000u, 3079358544u, 1049717704u, 0, EXPM1F_TOLERANCE, 0},
+{1014, 1048576000u, 3079358544u, 1049717704u, 0, EXPM1F_TOLERANCE, 0},
+{1015, 1048576000u, 3079358544u, 1049717704u, 0, EXPM1F_TOLERANCE, 0},
+{1016, 1048576000u, 3079358544u, 1049717704u, 0, EXPM1F_TOLERANCE, 0},
+{1017, 1048576000u, 3079358544u, 1049717704u, 0, EXPM1F_TOLERANCE, 0},
+{1018, 1048576000u, 3079358544u, 1049717704u, 0, EXPM1F_TOLERANCE, 0},
+{1019, 1048576000u, 3079358544u, 1049717704u, 0, EXPM1F_TOLERANCE, 0},
+{1020, 1048576000u, 3079358544u, 1049717704u, 0, EXPM1F_TOLERANCE, 0},
+{1021, 1048576000u, 3079358544u, 1049717704u, 0, EXPM1F_TOLERANCE, 0},
+{1022, 1048576000u, 3079358544u, 1049717704u, 0, EXPM1F_TOLERANCE, 0},
+{1023, 1048576000u, 3079358544u, 1049717704u, 0, EXPM1F_TOLERANCE, 0},
+{1024, 1048576000u, 3079358544u, 1049717704u, 0, EXPM1F_TOLERANCE, 0},
+{1025, 1048576000u, 3079358544u, 1049717704u, 0, EXPM1F_TOLERANCE, 0},
+{1026, 1048576000u, 3079358544u, 1049717704u, 0, EXPM1F_TOLERANCE, 0},
+{1027, 1048576000u, 3079358544u, 1049717704u, 0, EXPM1F_TOLERANCE, 0},
+{1028, 1048576000u, 3079358544u, 1049717704u, 0, EXPM1F_TOLERANCE, 0},
+{1029, 1048576000u, 3079358544u, 1049717704u, 0, EXPM1F_TOLERANCE, 0},
+{1030, 1048576000u, 3079358544u, 1049717704u, 0, EXPM1F_TOLERANCE, 0},
+{1031, 1048576000u, 3079358544u, 1049717704u, 0, EXPM1F_TOLERANCE, 0},
+{1032, 1048576000u, 3079358544u, 1049717704u, 0, EXPM1F_TOLERANCE, 0},
+{1033, 1048576000u, 3079358544u, 1049717704u, 0, EXPM1F_TOLERANCE, 0},
+{1034, 1048576000u, 3079358544u, 1049717704u, 0, EXPM1F_TOLERANCE, 0},
+{1035, 1048576000u, 3079358544u, 1049717704u, 0, EXPM1F_TOLERANCE, 0},
+{1036, 1048576000u, 3079358544u, 1049717704u, 0, EXPM1F_TOLERANCE, 0},
+{1037, 1048576000u, 3079358544u, 1049717704u, 0, EXPM1F_TOLERANCE, 0},
+{1038, 1048576000u, 3079358544u, 1049717704u, 0, EXPM1F_TOLERANCE, 0},
+{1039, 1048576000u, 3079358544u, 1049717704u, 0, EXPM1F_TOLERANCE, 0},
+{1040, 1050253722u, 3079358544u, 1051926706u, 0, EXPM1F_TOLERANCE, 0},
+{1041, 1050253722u, 3079358544u, 1051926706u, 0, EXPM1F_TOLERANCE, 0},
+{1042, 1050253722u, 3079358544u, 1051926706u, 0, EXPM1F_TOLERANCE, 0},
+{1043, 1050253722u, 3079358544u, 1051926706u, 0, EXPM1F_TOLERANCE, 0},
+{1044, 1050253722u, 3079358544u, 1051926706u, 0, EXPM1F_TOLERANCE, 0},
+{1045, 1050253722u, 3079358544u, 1051926706u, 0, EXPM1F_TOLERANCE, 0},
+{1046, 1050253722u, 3079358544u, 1051926706u, 0, EXPM1F_TOLERANCE, 0},
+{1047, 1050253722u, 3079358544u, 1051926706u, 0, EXPM1F_TOLERANCE, 0},
+{1048, 1050253722u, 3079358544u, 1051926706u, 0, EXPM1F_TOLERANCE, 0},
+{1049, 1050253722u, 3079358544u, 1051926706u, 0, EXPM1F_TOLERANCE, 0},
+{1050, 1050253722u, 3079358544u, 1051926706u, 0, EXPM1F_TOLERANCE, 0},
+{1051, 1050253722u, 3079358544u, 1051926706u, 0, EXPM1F_TOLERANCE, 0},
+{1052, 1050253722u, 3079358544u, 1051926706u, 0, EXPM1F_TOLERANCE, 0},
+{1053, 1050253722u, 3079358544u, 1051926706u, 0, EXPM1F_TOLERANCE, 0},
+{1054, 1050253722u, 3079358544u, 1051926706u, 0, EXPM1F_TOLERANCE, 0},
+{1055, 1050253722u, 3079358544u, 1051926706u, 0, EXPM1F_TOLERANCE, 0},
+{1056, 1050253722u, 3079358544u, 1051926706u, 0, EXPM1F_TOLERANCE, 0},
+{1057, 1050253722u, 3079358544u, 1051926706u, 0, EXPM1F_TOLERANCE, 0},
+{1058, 1050253722u, 3079358544u, 1051926706u, 0, EXPM1F_TOLERANCE, 0},
+{1059, 1050253722u, 3079358544u, 1051926706u, 0, EXPM1F_TOLERANCE, 0},
+{1060, 1050253722u, 3079358544u, 1051926706u, 0, EXPM1F_TOLERANCE, 0},
+{1061, 1050253722u, 3079358544u, 1051926706u, 0, EXPM1F_TOLERANCE, 0},
+{1062, 1050253722u, 3079358544u, 1051926706u, 0, EXPM1F_TOLERANCE, 0},
+{1063, 1050253722u, 3079358544u, 1051926706u, 0, EXPM1F_TOLERANCE, 0},
+{1064, 1050253722u, 3079358544u, 1051926706u, 0, EXPM1F_TOLERANCE, 0},
+{1065, 1050253722u, 3079358544u, 1051926706u, 0, EXPM1F_TOLERANCE, 0},
+{1066, 1050253722u, 3079358544u, 1051926706u, 0, EXPM1F_TOLERANCE, 0},
+{1067, 1050253722u, 3079358544u, 1051926706u, 0, EXPM1F_TOLERANCE, 0},
+{1068, 1050253722u, 3079358544u, 1051926706u, 0, EXPM1F_TOLERANCE, 0},
+{1069, 1050253722u, 3079358544u, 1051926706u, 0, EXPM1F_TOLERANCE, 0},
+{1070, 1050253722u, 3079358544u, 1051926706u, 0, EXPM1F_TOLERANCE, 0},
+{1071, 1050253722u, 3079358544u, 1051926706u, 0, EXPM1F_TOLERANCE, 0},
+{1072, 1050253722u, 3079358544u, 1051926706u, 0, EXPM1F_TOLERANCE, 0},
+{1073, 1050253722u, 3079358544u, 1051926706u, 0, EXPM1F_TOLERANCE, 0},
+{1074, 1050253722u, 3079358544u, 1051926706u, 0, EXPM1F_TOLERANCE, 0},
+{1075, 1050253722u, 3079358544u, 1051926706u, 0, EXPM1F_TOLERANCE, 0},
+{1076, 1050253722u, 3079358544u, 1051926706u, 0, EXPM1F_TOLERANCE, 0},
+{1077, 1050253722u, 3079358544u, 1051926706u, 0, EXPM1F_TOLERANCE, 0},
+{1078, 1050253722u, 3079358544u, 1051926706u, 0, EXPM1F_TOLERANCE, 0},
+{1079, 1050253722u, 3079358544u, 1051926706u, 0, EXPM1F_TOLERANCE, 0},
+{1080, 1051931443u, 3079358544u, 1054248965u, 0, EXPM1F_TOLERANCE, 0},
+{1081, 1051931443u, 3079358544u, 1054248965u, 0, EXPM1F_TOLERANCE, 0},
+{1082, 1051931443u, 3079358544u, 1054248965u, 0, EXPM1F_TOLERANCE, 0},
+{1083, 1051931443u, 3079358544u, 1054248965u, 0, EXPM1F_TOLERANCE, 0},
+{1084, 1051931443u, 3079358544u, 1054248965u, 0, EXPM1F_TOLERANCE, 0},
+{1085, 1051931443u, 3079358544u, 1054248965u, 0, EXPM1F_TOLERANCE, 0},
+{1086, 1051931443u, 3079358544u, 1054248965u, 0, EXPM1F_TOLERANCE, 0},
+{1087, 1051931443u, 3079358544u, 1054248965u, 0, EXPM1F_TOLERANCE, 0},
+{1088, 1051931443u, 3079358544u, 1054248965u, 0, EXPM1F_TOLERANCE, 0},
+{1089, 1051931443u, 3079358544u, 1054248965u, 0, EXPM1F_TOLERANCE, 0},
+{1090, 1051931443u, 3079358544u, 1054248965u, 0, EXPM1F_TOLERANCE, 0},
+{1091, 1051931443u, 3079358544u, 1054248965u, 0, EXPM1F_TOLERANCE, 0},
+{1092, 1051931443u, 3079358544u, 1054248965u, 0, EXPM1F_TOLERANCE, 0},
+{1093, 1051931443u, 3079358544u, 1054248965u, 0, EXPM1F_TOLERANCE, 0},
+{1094, 1051931443u, 3079358544u, 1054248965u, 0, EXPM1F_TOLERANCE, 0},
+{1095, 1051931443u, 3079358544u, 1054248965u, 0, EXPM1F_TOLERANCE, 0},
+{1096, 1051931443u, 3079358544u, 1054248965u, 0, EXPM1F_TOLERANCE, 0},
+{1097, 1051931443u, 3079358544u, 1054248965u, 0, EXPM1F_TOLERANCE, 0},
+{1098, 1051931443u, 3079358544u, 1054248965u, 0, EXPM1F_TOLERANCE, 0},
+{1099, 1051931443u, 3079358544u, 1054248965u, 0, EXPM1F_TOLERANCE, 0},
+{1100, 1051931443u, 3079358544u, 1054248965u, 0, EXPM1F_TOLERANCE, 0},
+{1101, 1051931443u, 3079358544u, 1054248965u, 0, EXPM1F_TOLERANCE, 0},
+{1102, 1051931443u, 3079358544u, 1054248965u, 0, EXPM1F_TOLERANCE, 0},
+{1103, 1051931443u, 3079358544u, 1054248965u, 0, EXPM1F_TOLERANCE, 0},
+{1104, 1051931443u, 3079358544u, 1054248965u, 0, EXPM1F_TOLERANCE, 0},
+{1105, 1051931443u, 3079358544u, 1054248965u, 0, EXPM1F_TOLERANCE, 0},
+{1106, 1051931443u, 3079358544u, 1054248965u, 0, EXPM1F_TOLERANCE, 0},
+{1107, 1051931443u, 3079358544u, 1054248965u, 0, EXPM1F_TOLERANCE, 0},
+{1108, 1051931443u, 3079358544u, 1054248965u, 0, EXPM1F_TOLERANCE, 0},
+{1109, 1051931443u, 3079358544u, 1054248965u, 0, EXPM1F_TOLERANCE, 0},
+{1110, 1051931443u, 3079358544u, 1054248965u, 0, EXPM1F_TOLERANCE, 0},
+{1111, 1051931443u, 3079358544u, 1054248965u, 0, EXPM1F_TOLERANCE, 0},
+{1112, 1051931443u, 3079358544u, 1054248965u, 0, EXPM1F_TOLERANCE, 0},
+{1113, 1051931443u, 3079358544u, 1054248965u, 0, EXPM1F_TOLERANCE, 0},
+{1114, 1051931443u, 3079358544u, 1054248965u, 0, EXPM1F_TOLERANCE, 0},
+{1115, 1051931443u, 3079358544u, 1054248965u, 0, EXPM1F_TOLERANCE, 0},
+{1116, 1051931443u, 3079358544u, 1054248965u, 0, EXPM1F_TOLERANCE, 0},
+{1117, 1051931443u, 3079358544u, 1054248965u, 0, EXPM1F_TOLERANCE, 0},
+{1118, 1051931443u, 3079358544u, 1054248965u, 0, EXPM1F_TOLERANCE, 0},
+{1119, 1051931443u, 3079358544u, 1054248965u, 0, EXPM1F_TOLERANCE, 0},
+{1120, 1053609165u, 3079358544u, 1056690291u, 0, EXPM1F_TOLERANCE, 0},
+{1121, 1053609165u, 3079358544u, 1056690291u, 0, EXPM1F_TOLERANCE, 0},
+{1122, 1053609165u, 3079358544u, 1056690291u, 0, EXPM1F_TOLERANCE, 0},
+{1123, 1053609165u, 3079358544u, 1056690291u, 0, EXPM1F_TOLERANCE, 0},
+{1124, 1053609165u, 3079358544u, 1056690291u, 0, EXPM1F_TOLERANCE, 0},
+{1125, 1053609165u, 3079358544u, 1056690291u, 0, EXPM1F_TOLERANCE, 0},
+{1126, 1053609165u, 3079358544u, 1056690291u, 0, EXPM1F_TOLERANCE, 0},
+{1127, 1053609165u, 3079358544u, 1056690291u, 0, EXPM1F_TOLERANCE, 0},
+{1128, 1053609165u, 3079358544u, 1056690291u, 0, EXPM1F_TOLERANCE, 0},
+{1129, 1053609165u, 3079358544u, 1056690291u, 0, EXPM1F_TOLERANCE, 0},
+{1130, 1053609165u, 3079358544u, 1056690291u, 0, EXPM1F_TOLERANCE, 0},
+{1131, 1053609165u, 3079358544u, 1056690291u, 0, EXPM1F_TOLERANCE, 0},
+{1132, 1053609165u, 3079358544u, 1056690291u, 0, EXPM1F_TOLERANCE, 0},
+{1133, 1053609165u, 3079358544u, 1056690291u, 0, EXPM1F_TOLERANCE, 0},
+{1134, 1053609165u, 3079358544u, 1056690291u, 0, EXPM1F_TOLERANCE, 0},
+{1135, 1053609165u, 3079358544u, 1056690291u, 0, EXPM1F_TOLERANCE, 0},
+{1136, 1053609165u, 3079358544u, 1056690291u, 0, EXPM1F_TOLERANCE, 0},
+{1137, 1053609165u, 3079358544u, 1056690291u, 0, EXPM1F_TOLERANCE, 0},
+{1138, 1053609165u, 3079358544u, 1056690291u, 0, EXPM1F_TOLERANCE, 0},
+{1139, 1053609165u, 3079358544u, 1056690291u, 0, EXPM1F_TOLERANCE, 0},
+{1140, 1053609165u, 3079358544u, 1056690291u, 0, EXPM1F_TOLERANCE, 0},
+{1141, 1053609165u, 3079358544u, 1056690291u, 0, EXPM1F_TOLERANCE, 0},
+{1142, 1053609165u, 3079358544u, 1056690291u, 0, EXPM1F_TOLERANCE, 0},
+{1143, 1053609165u, 3079358544u, 1056690291u, 0, EXPM1F_TOLERANCE, 0},
+{1144, 1053609165u, 3079358544u, 1056690291u, 0, EXPM1F_TOLERANCE, 0},
+{1145, 1053609165u, 3079358544u, 1056690291u, 0, EXPM1F_TOLERANCE, 0},
+{1146, 1053609165u, 3079358544u, 1056690291u, 0, EXPM1F_TOLERANCE, 0},
+{1147, 1053609165u, 3079358544u, 1056690291u, 0, EXPM1F_TOLERANCE, 0},
+{1148, 1053609165u, 3079358544u, 1056690291u, 0, EXPM1F_TOLERANCE, 0},
+{1149, 1053609165u, 3079358544u, 1056690291u, 0, EXPM1F_TOLERANCE, 0},
+{1150, 1053609165u, 3079358544u, 1056690291u, 0, EXPM1F_TOLERANCE, 0},
+{1151, 1053609165u, 3079358544u, 1056690291u, 0, EXPM1F_TOLERANCE, 0},
+{1152, 1053609165u, 3079358544u, 1056690291u, 0, EXPM1F_TOLERANCE, 0},
+{1153, 1053609165u, 3079358544u, 1056690291u, 0, EXPM1F_TOLERANCE, 0},
+{1154, 1053609165u, 3079358544u, 1056690291u, 0, EXPM1F_TOLERANCE, 0},
+{1155, 1053609165u, 3079358544u, 1056690291u, 0, EXPM1F_TOLERANCE, 0},
+{1156, 1053609165u, 3079358544u, 1056690291u, 0, EXPM1F_TOLERANCE, 0},
+{1157, 1053609165u, 3079358544u, 1056690291u, 0, EXPM1F_TOLERANCE, 0},
+{1158, 1053609165u, 3079358544u, 1056690291u, 0, EXPM1F_TOLERANCE, 0},
+{1159, 1053609165u, 3079358544u, 1056690291u, 0, EXPM1F_TOLERANCE, 0},
+{1160, 1055286886u, 3079358544u, 1058110696u, 0, EXPM1F_TOLERANCE, 0},
+{1161, 1055286886u, 3079358544u, 1058110696u, 0, EXPM1F_TOLERANCE, 0},
+{1162, 1055286886u, 3079358544u, 1058110696u, 0, EXPM1F_TOLERANCE, 0},
+{1163, 1055286886u, 3079358544u, 1058110696u, 0, EXPM1F_TOLERANCE, 0},
+{1164, 1055286886u, 3079358544u, 1058110696u, 0, EXPM1F_TOLERANCE, 0},
+{1165, 1055286886u, 3079358544u, 1058110696u, 0, EXPM1F_TOLERANCE, 0},
+{1166, 1055286886u, 3079358544u, 1058110696u, 0, EXPM1F_TOLERANCE, 0},
+{1167, 1055286886u, 3079358544u, 1058110696u, 0, EXPM1F_TOLERANCE, 0},
+{1168, 1055286886u, 3079358544u, 1058110696u, 0, EXPM1F_TOLERANCE, 0},
+{1169, 1055286886u, 3079358544u, 1058110696u, 0, EXPM1F_TOLERANCE, 0},
+{1170, 1055286886u, 3079358544u, 1058110696u, 0, EXPM1F_TOLERANCE, 0},
+{1171, 1055286886u, 3079358544u, 1058110696u, 0, EXPM1F_TOLERANCE, 0},
+{1172, 1055286886u, 3079358544u, 1058110696u, 0, EXPM1F_TOLERANCE, 0},
+{1173, 1055286886u, 3079358544u, 1058110696u, 0, EXPM1F_TOLERANCE, 0},
+{1174, 1055286886u, 3079358544u, 1058110696u, 0, EXPM1F_TOLERANCE, 0},
+{1175, 1055286886u, 3079358544u, 1058110696u, 0, EXPM1F_TOLERANCE, 0},
+{1176, 1055286886u, 3079358544u, 1058110696u, 0, EXPM1F_TOLERANCE, 0},
+{1177, 1055286886u, 3079358544u, 1058110696u, 0, EXPM1F_TOLERANCE, 0},
+{1178, 1055286886u, 3079358544u, 1058110696u, 0, EXPM1F_TOLERANCE, 0},
+{1179, 1055286886u, 3079358544u, 1058110696u, 0, EXPM1F_TOLERANCE, 0},
+{1180, 1055286886u, 3079358544u, 1058110696u, 0, EXPM1F_TOLERANCE, 0},
+{1181, 1055286886u, 3079358544u, 1058110696u, 0, EXPM1F_TOLERANCE, 0},
+{1182, 1055286886u, 3079358544u, 1058110696u, 0, EXPM1F_TOLERANCE, 0},
+{1183, 1055286886u, 3079358544u, 1058110696u, 0, EXPM1F_TOLERANCE, 0},
+{1184, 1055286886u, 3079358544u, 1058110696u, 0, EXPM1F_TOLERANCE, 0},
+{1185, 1055286886u, 3079358544u, 1058110696u, 0, EXPM1F_TOLERANCE, 0},
+{1186, 1055286886u, 3079358544u, 1058110696u, 0, EXPM1F_TOLERANCE, 0},
+{1187, 1055286886u, 3079358544u, 1058110696u, 0, EXPM1F_TOLERANCE, 0},
+{1188, 1055286886u, 3079358544u, 1058110696u, 0, EXPM1F_TOLERANCE, 0},
+{1189, 1055286886u, 3079358544u, 1058110696u, 0, EXPM1F_TOLERANCE, 0},
+{1190, 1055286886u, 3079358544u, 1058110696u, 0, EXPM1F_TOLERANCE, 0},
+{1191, 1055286886u, 3079358544u, 1058110696u, 0, EXPM1F_TOLERANCE, 0},
+{1192, 1055286886u, 3079358544u, 1058110696u, 0, EXPM1F_TOLERANCE, 0},
+{1193, 1055286886u, 3079358544u, 1058110696u, 0, EXPM1F_TOLERANCE, 0},
+{1194, 1055286886u, 3079358544u, 1058110696u, 0, EXPM1F_TOLERANCE, 0},
+{1195, 1055286886u, 3079358544u, 1058110696u, 0, EXPM1F_TOLERANCE, 0},
+{1196, 1055286886u, 3079358544u, 1058110696u, 0, EXPM1F_TOLERANCE, 0},
+{1197, 1055286886u, 3079358544u, 1058110696u, 0, EXPM1F_TOLERANCE, 0},
+{1198, 1055286886u, 3079358544u, 1058110696u, 0, EXPM1F_TOLERANCE, 0},
+{1199, 1055286886u, 3079358544u, 1058110696u, 0, EXPM1F_TOLERANCE, 0},
+{1200, 1056964608u, 3079358544u, 1059459737u, 0, EXPM1F_TOLERANCE, 0},
+{1201, 1056964608u, 3079358544u, 1059459737u, 0, EXPM1F_TOLERANCE, 0},
+{1202, 1056964608u, 3079358544u, 1059459737u, 0, EXPM1F_TOLERANCE, 0},
+{1203, 1056964608u, 3079358544u, 1059459737u, 0, EXPM1F_TOLERANCE, 0},
+{1204, 1056964608u, 3079358544u, 1059459737u, 0, EXPM1F_TOLERANCE, 0},
+{1205, 1056964608u, 3079358544u, 1059459737u, 0, EXPM1F_TOLERANCE, 0},
+{1206, 1056964608u, 3079358544u, 1059459737u, 0, EXPM1F_TOLERANCE, 0},
+{1207, 1056964608u, 3079358544u, 1059459737u, 0, EXPM1F_TOLERANCE, 0},
+{1208, 1056964608u, 3079358544u, 1059459737u, 0, EXPM1F_TOLERANCE, 0},
+{1209, 1056964608u, 3079358544u, 1059459737u, 0, EXPM1F_TOLERANCE, 0},
+{1210, 1056964608u, 3079358544u, 1059459737u, 0, EXPM1F_TOLERANCE, 0},
+{1211, 1056964608u, 3079358544u, 1059459737u, 0, EXPM1F_TOLERANCE, 0},
+{1212, 1056964608u, 3079358544u, 1059459737u, 0, EXPM1F_TOLERANCE, 0},
+{1213, 1056964608u, 3079358544u, 1059459737u, 0, EXPM1F_TOLERANCE, 0},
+{1214, 1056964608u, 3079358544u, 1059459737u, 0, EXPM1F_TOLERANCE, 0},
+{1215, 1056964608u, 3079358544u, 1059459737u, 0, EXPM1F_TOLERANCE, 0},
+{1216, 1056964608u, 3079358544u, 1059459737u, 0, EXPM1F_TOLERANCE, 0},
+{1217, 1056964608u, 3079358544u, 1059459737u, 0, EXPM1F_TOLERANCE, 0},
+{1218, 1056964608u, 3079358544u, 1059459737u, 0, EXPM1F_TOLERANCE, 0},
+{1219, 1056964608u, 3079358544u, 1059459737u, 0, EXPM1F_TOLERANCE, 0},
+{1220, 1056964608u, 3079358544u, 1059459737u, 0, EXPM1F_TOLERANCE, 0},
+{1221, 1056964608u, 3079358544u, 1059459737u, 0, EXPM1F_TOLERANCE, 0},
+{1222, 1056964608u, 3079358544u, 1059459737u, 0, EXPM1F_TOLERANCE, 0},
+{1223, 1056964608u, 3079358544u, 1059459737u, 0, EXPM1F_TOLERANCE, 0},
+{1224, 1056964608u, 3079358544u, 1059459737u, 0, EXPM1F_TOLERANCE, 0},
+{1225, 1056964608u, 3079358544u, 1059459737u, 0, EXPM1F_TOLERANCE, 0},
+{1226, 1056964608u, 3079358544u, 1059459737u, 0, EXPM1F_TOLERANCE, 0},
+{1227, 1056964608u, 3079358544u, 1059459737u, 0, EXPM1F_TOLERANCE, 0},
+{1228, 1056964608u, 3079358544u, 1059459737u, 0, EXPM1F_TOLERANCE, 0},
+{1229, 1056964608u, 3079358544u, 1059459737u, 0, EXPM1F_TOLERANCE, 0},
+{1230, 1056964608u, 3079358544u, 1059459737u, 0, EXPM1F_TOLERANCE, 0},
+{1231, 1056964608u, 3079358544u, 1059459737u, 0, EXPM1F_TOLERANCE, 0},
+{1232, 1056964608u, 3079358544u, 1059459737u, 0, EXPM1F_TOLERANCE, 0},
+{1233, 1056964608u, 3079358544u, 1059459737u, 0, EXPM1F_TOLERANCE, 0},
+{1234, 1056964608u, 3079358544u, 1059459737u, 0, EXPM1F_TOLERANCE, 0},
+{1235, 1056964608u, 3079358544u, 1059459737u, 0, EXPM1F_TOLERANCE, 0},
+{1236, 1056964608u, 3079358544u, 1059459737u, 0, EXPM1F_TOLERANCE, 0},
+{1237, 1056964608u, 3079358544u, 1059459737u, 0, EXPM1F_TOLERANCE, 0},
+{1238, 1056964608u, 3079358544u, 1059459737u, 0, EXPM1F_TOLERANCE, 0},
+{1239, 1056964608u, 3079358544u, 1059459737u, 0, EXPM1F_TOLERANCE, 0},
+{1240, 1057803469u, 3079358544u, 1060877945u, 0, EXPM1F_TOLERANCE, 0},
+{1241, 1057803469u, 3079358544u, 1060877945u, 0, EXPM1F_TOLERANCE, 0},
+{1242, 1057803469u, 3079358544u, 1060877945u, 0, EXPM1F_TOLERANCE, 0},
+{1243, 1057803469u, 3079358544u, 1060877945u, 0, EXPM1F_TOLERANCE, 0},
+{1244, 1057803469u, 3079358544u, 1060877945u, 0, EXPM1F_TOLERANCE, 0},
+{1245, 1057803469u, 3079358544u, 1060877945u, 0, EXPM1F_TOLERANCE, 0},
+{1246, 1057803469u, 3079358544u, 1060877945u, 0, EXPM1F_TOLERANCE, 0},
+{1247, 1057803469u, 3079358544u, 1060877945u, 0, EXPM1F_TOLERANCE, 0},
+{1248, 1057803469u, 3079358544u, 1060877945u, 0, EXPM1F_TOLERANCE, 0},
+{1249, 1057803469u, 3079358544u, 1060877945u, 0, EXPM1F_TOLERANCE, 0},
+{1250, 1057803469u, 3079358544u, 1060877945u, 0, EXPM1F_TOLERANCE, 0},
+{1251, 1057803469u, 3079358544u, 1060877945u, 0, EXPM1F_TOLERANCE, 0},
+{1252, 1057803469u, 3079358544u, 1060877945u, 0, EXPM1F_TOLERANCE, 0},
+{1253, 1057803469u, 3079358544u, 1060877945u, 0, EXPM1F_TOLERANCE, 0},
+{1254, 1057803469u, 3079358544u, 1060877945u, 0, EXPM1F_TOLERANCE, 0},
+{1255, 1057803469u, 3079358544u, 1060877945u, 0, EXPM1F_TOLERANCE, 0},
+{1256, 1057803469u, 3079358544u, 1060877945u, 0, EXPM1F_TOLERANCE, 0},
+{1257, 1057803469u, 3079358544u, 1060877945u, 0, EXPM1F_TOLERANCE, 0},
+{1258, 1057803469u, 3079358544u, 1060877945u, 0, EXPM1F_TOLERANCE, 0},
+{1259, 1057803469u, 3079358544u, 1060877945u, 0, EXPM1F_TOLERANCE, 0},
+{1260, 1057803469u, 3079358544u, 1060877945u, 0, EXPM1F_TOLERANCE, 0},
+{1261, 1057803469u, 3079358544u, 1060877945u, 0, EXPM1F_TOLERANCE, 0},
+{1262, 1057803469u, 3079358544u, 1060877945u, 0, EXPM1F_TOLERANCE, 0},
+{1263, 1057803469u, 3079358544u, 1060877945u, 0, EXPM1F_TOLERANCE, 0},
+{1264, 1057803469u, 3079358544u, 1060877945u, 0, EXPM1F_TOLERANCE, 0},
+{1265, 1057803469u, 3079358544u, 1060877945u, 0, EXPM1F_TOLERANCE, 0},
+{1266, 1057803469u, 3079358544u, 1060877945u, 0, EXPM1F_TOLERANCE, 0},
+{1267, 1057803469u, 3079358544u, 1060877945u, 0, EXPM1F_TOLERANCE, 0},
+{1268, 1057803469u, 3079358544u, 1060877945u, 0, EXPM1F_TOLERANCE, 0},
+{1269, 1057803469u, 3079358544u, 1060877945u, 0, EXPM1F_TOLERANCE, 0},
+{1270, 1057803469u, 3079358544u, 1060877945u, 0, EXPM1F_TOLERANCE, 0},
+{1271, 1057803469u, 3079358544u, 1060877945u, 0, EXPM1F_TOLERANCE, 0},
+{1272, 1057803469u, 3079358544u, 1060877945u, 0, EXPM1F_TOLERANCE, 0},
+{1273, 1057803469u, 3079358544u, 1060877945u, 0, EXPM1F_TOLERANCE, 0},
+{1274, 1057803469u, 3079358544u, 1060877945u, 0, EXPM1F_TOLERANCE, 0},
+{1275, 1057803469u, 3079358544u, 1060877945u, 0, EXPM1F_TOLERANCE, 0},
+{1276, 1057803469u, 3079358544u, 1060877945u, 0, EXPM1F_TOLERANCE, 0},
+{1277, 1057803469u, 3079358544u, 1060877945u, 0, EXPM1F_TOLERANCE, 0},
+{1278, 1057803469u, 3079358544u, 1060877945u, 0, EXPM1F_TOLERANCE, 0},
+{1279, 1057803469u, 3079358544u, 1060877945u, 0, EXPM1F_TOLERANCE, 0},
+{1280, 1058642330u, 3079358544u, 1062368865u, 0, EXPM1F_TOLERANCE, 0},
+{1281, 1058642330u, 3079358544u, 1062368865u, 0, EXPM1F_TOLERANCE, 0},
+{1282, 1058642330u, 3079358544u, 1062368865u, 0, EXPM1F_TOLERANCE, 0},
+{1283, 1058642330u, 3079358544u, 1062368865u, 0, EXPM1F_TOLERANCE, 0},
+{1284, 1058642330u, 3079358544u, 1062368865u, 0, EXPM1F_TOLERANCE, 0},
+{1285, 1058642330u, 3079358544u, 1062368865u, 0, EXPM1F_TOLERANCE, 0},
+{1286, 1058642330u, 3079358544u, 1062368865u, 0, EXPM1F_TOLERANCE, 0},
+{1287, 1058642330u, 3079358544u, 1062368865u, 0, EXPM1F_TOLERANCE, 0},
+{1288, 1058642330u, 3079358544u, 1062368865u, 0, EXPM1F_TOLERANCE, 0},
+{1289, 1058642330u, 3079358544u, 1062368865u, 0, EXPM1F_TOLERANCE, 0},
+{1290, 1058642330u, 3079358544u, 1062368865u, 0, EXPM1F_TOLERANCE, 0},
+{1291, 1058642330u, 3079358544u, 1062368865u, 0, EXPM1F_TOLERANCE, 0},
+{1292, 1058642330u, 3079358544u, 1062368865u, 0, EXPM1F_TOLERANCE, 0},
+{1293, 1058642330u, 3079358544u, 1062368865u, 0, EXPM1F_TOLERANCE, 0},
+{1294, 1058642330u, 3079358544u, 1062368865u, 0, EXPM1F_TOLERANCE, 0},
+{1295, 1058642330u, 3079358544u, 1062368865u, 0, EXPM1F_TOLERANCE, 0},
+{1296, 1058642330u, 3079358544u, 1062368865u, 0, EXPM1F_TOLERANCE, 0},
+{1297, 1058642330u, 3079358544u, 1062368865u, 0, EXPM1F_TOLERANCE, 0},
+{1298, 1058642330u, 3079358544u, 1062368865u, 0, EXPM1F_TOLERANCE, 0},
+{1299, 1058642330u, 3079358544u, 1062368865u, 0, EXPM1F_TOLERANCE, 0},
+{1300, 1058642330u, 3079358544u, 1062368865u, 0, EXPM1F_TOLERANCE, 0},
+{1301, 1058642330u, 3079358544u, 1062368865u, 0, EXPM1F_TOLERANCE, 0},
+{1302, 1058642330u, 3079358544u, 1062368865u, 0, EXPM1F_TOLERANCE, 0},
+{1303, 1058642330u, 3079358544u, 1062368865u, 0, EXPM1F_TOLERANCE, 0},
+{1304, 1058642330u, 3079358544u, 1062368865u, 0, EXPM1F_TOLERANCE, 0},
+{1305, 1058642330u, 3079358544u, 1062368865u, 0, EXPM1F_TOLERANCE, 0},
+{1306, 1058642330u, 3079358544u, 1062368865u, 0, EXPM1F_TOLERANCE, 0},
+{1307, 1058642330u, 3079358544u, 1062368865u, 0, EXPM1F_TOLERANCE, 0},
+{1308, 1058642330u, 3079358544u, 1062368865u, 0, EXPM1F_TOLERANCE, 0},
+{1309, 1058642330u, 3079358544u, 1062368865u, 0, EXPM1F_TOLERANCE, 0},
+{1310, 1058642330u, 3079358544u, 1062368865u, 0, EXPM1F_TOLERANCE, 0},
+{1311, 1058642330u, 3079358544u, 1062368865u, 0, EXPM1F_TOLERANCE, 0},
+{1312, 1058642330u, 3079358544u, 1062368865u, 0, EXPM1F_TOLERANCE, 0},
+{1313, 1058642330u, 3079358544u, 1062368865u, 0, EXPM1F_TOLERANCE, 0},
+{1314, 1058642330u, 3079358544u, 1062368865u, 0, EXPM1F_TOLERANCE, 0},
+{1315, 1058642330u, 3079358544u, 1062368865u, 0, EXPM1F_TOLERANCE, 0},
+{1316, 1058642330u, 3079358544u, 1062368865u, 0, EXPM1F_TOLERANCE, 0},
+{1317, 1058642330u, 3079358544u, 1062368865u, 0, EXPM1F_TOLERANCE, 0},
+{1318, 1058642330u, 3079358544u, 1062368865u, 0, EXPM1F_TOLERANCE, 0},
+{1319, 1058642330u, 3079358544u, 1062368865u, 0, EXPM1F_TOLERANCE, 0},
+{1320, 1059481190u, 3079358544u, 1063936225u, 0, EXPM1F_TOLERANCE, 0},
+{1321, 1059481190u, 3079358544u, 1063936225u, 0, EXPM1F_TOLERANCE, 0},
+{1322, 1059481190u, 3079358544u, 1063936225u, 0, EXPM1F_TOLERANCE, 0},
+{1323, 1059481190u, 3079358544u, 1063936225u, 0, EXPM1F_TOLERANCE, 0},
+{1324, 1059481190u, 3079358544u, 1063936225u, 0, EXPM1F_TOLERANCE, 0},
+{1325, 1059481190u, 3079358544u, 1063936225u, 0, EXPM1F_TOLERANCE, 0},
+{1326, 1059481190u, 3079358544u, 1063936225u, 0, EXPM1F_TOLERANCE, 0},
+{1327, 1059481190u, 3079358544u, 1063936225u, 0, EXPM1F_TOLERANCE, 0},
+{1328, 1059481190u, 3079358544u, 1063936225u, 0, EXPM1F_TOLERANCE, 0},
+{1329, 1059481190u, 3079358544u, 1063936225u, 0, EXPM1F_TOLERANCE, 0},
+{1330, 1059481190u, 3079358544u, 1063936225u, 0, EXPM1F_TOLERANCE, 0},
+{1331, 1059481190u, 3079358544u, 1063936225u, 0, EXPM1F_TOLERANCE, 0},
+{1332, 1059481190u, 3079358544u, 1063936225u, 0, EXPM1F_TOLERANCE, 0},
+{1333, 1059481190u, 3079358544u, 1063936225u, 0, EXPM1F_TOLERANCE, 0},
+{1334, 1059481190u, 3079358544u, 1063936225u, 0, EXPM1F_TOLERANCE, 0},
+{1335, 1059481190u, 3079358544u, 1063936225u, 0, EXPM1F_TOLERANCE, 0},
+{1336, 1059481190u, 3079358544u, 1063936225u, 0, EXPM1F_TOLERANCE, 0},
+{1337, 1059481190u, 3079358544u, 1063936225u, 0, EXPM1F_TOLERANCE, 0},
+{1338, 1059481190u, 3079358544u, 1063936225u, 0, EXPM1F_TOLERANCE, 0},
+{1339, 1059481190u, 3079358544u, 1063936225u, 0, EXPM1F_TOLERANCE, 0},
+{1340, 1059481190u, 3079358544u, 1063936225u, 0, EXPM1F_TOLERANCE, 0},
+{1341, 1059481190u, 3079358544u, 1063936225u, 0, EXPM1F_TOLERANCE, 0},
+{1342, 1059481190u, 3079358544u, 1063936225u, 0, EXPM1F_TOLERANCE, 0},
+{1343, 1059481190u, 3079358544u, 1063936225u, 0, EXPM1F_TOLERANCE, 0},
+{1344, 1059481190u, 3079358544u, 1063936225u, 0, EXPM1F_TOLERANCE, 0},
+{1345, 1059481190u, 3079358544u, 1063936225u, 0, EXPM1F_TOLERANCE, 0},
+{1346, 1059481190u, 3079358544u, 1063936225u, 0, EXPM1F_TOLERANCE, 0},
+{1347, 1059481190u, 3079358544u, 1063936225u, 0, EXPM1F_TOLERANCE, 0},
+{1348, 1059481190u, 3079358544u, 1063936225u, 0, EXPM1F_TOLERANCE, 0},
+{1349, 1059481190u, 3079358544u, 1063936225u, 0, EXPM1F_TOLERANCE, 0},
+{1350, 1059481190u, 3079358544u, 1063936225u, 0, EXPM1F_TOLERANCE, 0},
+{1351, 1059481190u, 3079358544u, 1063936225u, 0, EXPM1F_TOLERANCE, 0},
+{1352, 1059481190u, 3079358544u, 1063936225u, 0, EXPM1F_TOLERANCE, 0},
+{1353, 1059481190u, 3079358544u, 1063936225u, 0, EXPM1F_TOLERANCE, 0},
+{1354, 1059481190u, 3079358544u, 1063936225u, 0, EXPM1F_TOLERANCE, 0},
+{1355, 1059481190u, 3079358544u, 1063936225u, 0, EXPM1F_TOLERANCE, 0},
+{1356, 1059481190u, 3079358544u, 1063936225u, 0, EXPM1F_TOLERANCE, 0},
+{1357, 1059481190u, 3079358544u, 1063936225u, 0, EXPM1F_TOLERANCE, 0},
+{1358, 1059481190u, 3079358544u, 1063936225u, 0, EXPM1F_TOLERANCE, 0},
+{1359, 1059481190u, 3079358544u, 1063936225u, 0, EXPM1F_TOLERANCE, 0},
+{1360, 1060320051u, 3079358544u, 1065468582u, 0, EXPM1F_TOLERANCE, 0},
+{1361, 1060320051u, 3079358544u, 1065468582u, 0, EXPM1F_TOLERANCE, 0},
+{1362, 1060320051u, 3079358544u, 1065468582u, 0, EXPM1F_TOLERANCE, 0},
+{1363, 1060320051u, 3079358544u, 1065468582u, 0, EXPM1F_TOLERANCE, 0},
+{1364, 1060320051u, 3079358544u, 1065468582u, 0, EXPM1F_TOLERANCE, 0},
+{1365, 1060320051u, 3079358544u, 1065468582u, 0, EXPM1F_TOLERANCE, 0},
+{1366, 1060320051u, 3079358544u, 1065468582u, 0, EXPM1F_TOLERANCE, 0},
+{1367, 1060320051u, 3079358544u, 1065468582u, 0, EXPM1F_TOLERANCE, 0},
+{1368, 1060320051u, 3079358544u, 1065468582u, 0, EXPM1F_TOLERANCE, 0},
+{1369, 1060320051u, 3079358544u, 1065468582u, 0, EXPM1F_TOLERANCE, 0},
+{1370, 1060320051u, 3079358544u, 1065468582u, 0, EXPM1F_TOLERANCE, 0},
+{1371, 1060320051u, 3079358544u, 1065468582u, 0, EXPM1F_TOLERANCE, 0},
+{1372, 1060320051u, 3079358544u, 1065468582u, 0, EXPM1F_TOLERANCE, 0},
+{1373, 1060320051u, 3079358544u, 1065468582u, 0, EXPM1F_TOLERANCE, 0},
+{1374, 1060320051u, 3079358544u, 1065468582u, 0, EXPM1F_TOLERANCE, 0},
+{1375, 1060320051u, 3079358544u, 1065468582u, 0, EXPM1F_TOLERANCE, 0},
+{1376, 1060320051u, 3079358544u, 1065468582u, 0, EXPM1F_TOLERANCE, 0},
+{1377, 1060320051u, 3079358544u, 1065468582u, 0, EXPM1F_TOLERANCE, 0},
+{1378, 1060320051u, 3079358544u, 1065468582u, 0, EXPM1F_TOLERANCE, 0},
+{1379, 1060320051u, 3079358544u, 1065468582u, 0, EXPM1F_TOLERANCE, 0},
+{1380, 1060320051u, 3079358544u, 1065468582u, 0, EXPM1F_TOLERANCE, 0},
+{1381, 1060320051u, 3079358544u, 1065468582u, 0, EXPM1F_TOLERANCE, 0},
+{1382, 1060320051u, 3079358544u, 1065468582u, 0, EXPM1F_TOLERANCE, 0},
+{1383, 1060320051u, 3079358544u, 1065468582u, 0, EXPM1F_TOLERANCE, 0},
+{1384, 1060320051u, 3079358544u, 1065468582u, 0, EXPM1F_TOLERANCE, 0},
+{1385, 1060320051u, 3079358544u, 1065468582u, 0, EXPM1F_TOLERANCE, 0},
+{1386, 1060320051u, 3079358544u, 1065468582u, 0, EXPM1F_TOLERANCE, 0},
+{1387, 1060320051u, 3079358544u, 1065468582u, 0, EXPM1F_TOLERANCE, 0},
+{1388, 1060320051u, 3079358544u, 1065468582u, 0, EXPM1F_TOLERANCE, 0},
+{1389, 1060320051u, 3079358544u, 1065468582u, 0, EXPM1F_TOLERANCE, 0},
+{1390, 1060320051u, 3079358544u, 1065468582u, 0, EXPM1F_TOLERANCE, 0},
+{1391, 1060320051u, 3079358544u, 1065468582u, 0, EXPM1F_TOLERANCE, 0},
+{1392, 1060320051u, 3079358544u, 1065468582u, 0, EXPM1F_TOLERANCE, 0},
+{1393, 1060320051u, 3079358544u, 1065468582u, 0, EXPM1F_TOLERANCE, 0},
+{1394, 1060320051u, 3079358544u, 1065468582u, 0, EXPM1F_TOLERANCE, 0},
+{1395, 1060320051u, 3079358544u, 1065468582u, 0, EXPM1F_TOLERANCE, 0},
+{1396, 1060320051u, 3079358544u, 1065468582u, 0, EXPM1F_TOLERANCE, 0},
+{1397, 1060320051u, 3079358544u, 1065468582u, 0, EXPM1F_TOLERANCE, 0},
+{1398, 1060320051u, 3079358544u, 1065468582u, 0, EXPM1F_TOLERANCE, 0},
+{1399, 1060320051u, 3079358544u, 1065468582u, 0, EXPM1F_TOLERANCE, 0},
+{1400, 1061158912u, 3079358544u, 1066334683u, 0, EXPM1F_TOLERANCE, 0},
+{1401, 1061158912u, 3079358544u, 1066334683u, 0, EXPM1F_TOLERANCE, 0},
+{1402, 1061158912u, 3079358544u, 1066334683u, 0, EXPM1F_TOLERANCE, 0},
+{1403, 1061158912u, 3079358544u, 1066334683u, 0, EXPM1F_TOLERANCE, 0},
+{1404, 1061158912u, 3079358544u, 1066334683u, 0, EXPM1F_TOLERANCE, 0},
+{1405, 1061158912u, 3079358544u, 1066334683u, 0, EXPM1F_TOLERANCE, 0},
+{1406, 1061158912u, 3079358544u, 1066334683u, 0, EXPM1F_TOLERANCE, 0},
+{1407, 1061158912u, 3079358544u, 1066334683u, 0, EXPM1F_TOLERANCE, 0},
+{1408, 1061158912u, 3079358544u, 1066334683u, 0, EXPM1F_TOLERANCE, 0},
+{1409, 1061158912u, 3079358544u, 1066334683u, 0, EXPM1F_TOLERANCE, 0},
+{1410, 1061158912u, 3079358544u, 1066334683u, 0, EXPM1F_TOLERANCE, 0},
+{1411, 1061158912u, 3079358544u, 1066334683u, 0, EXPM1F_TOLERANCE, 0},
+{1412, 1061158912u, 3079358544u, 1066334683u, 0, EXPM1F_TOLERANCE, 0},
+{1413, 1061158912u, 3079358544u, 1066334683u, 0, EXPM1F_TOLERANCE, 0},
+{1414, 1061158912u, 3079358544u, 1066334683u, 0, EXPM1F_TOLERANCE, 0},
+{1415, 1061158912u, 3079358544u, 1066334683u, 0, EXPM1F_TOLERANCE, 0},
+{1416, 1061158912u, 3079358544u, 1066334683u, 0, EXPM1F_TOLERANCE, 0},
+{1417, 1061158912u, 3079358544u, 1066334683u, 0, EXPM1F_TOLERANCE, 0},
+{1418, 1061158912u, 3079358544u, 1066334683u, 0, EXPM1F_TOLERANCE, 0},
+{1419, 1061158912u, 3079358544u, 1066334683u, 0, EXPM1F_TOLERANCE, 0},
+{1420, 1061158912u, 3079358544u, 1066334683u, 0, EXPM1F_TOLERANCE, 0},
+{1421, 1061158912u, 3079358544u, 1066334683u, 0, EXPM1F_TOLERANCE, 0},
+{1422, 1061158912u, 3079358544u, 1066334683u, 0, EXPM1F_TOLERANCE, 0},
+{1423, 1061158912u, 3079358544u, 1066334683u, 0, EXPM1F_TOLERANCE, 0},
+{1424, 1061158912u, 3079358544u, 1066334683u, 0, EXPM1F_TOLERANCE, 0},
+{1425, 1061158912u, 3079358544u, 1066334683u, 0, EXPM1F_TOLERANCE, 0},
+{1426, 1061158912u, 3079358544u, 1066334683u, 0, EXPM1F_TOLERANCE, 0},
+{1427, 1061158912u, 3079358544u, 1066334683u, 0, EXPM1F_TOLERANCE, 0},
+{1428, 1061158912u, 3079358544u, 1066334683u, 0, EXPM1F_TOLERANCE, 0},
+{1429, 1061158912u, 3079358544u, 1066334683u, 0, EXPM1F_TOLERANCE, 0},
+{1430, 1061158912u, 3079358544u, 1066334683u, 0, EXPM1F_TOLERANCE, 0},
+{1431, 1061158912u, 3079358544u, 1066334683u, 0, EXPM1F_TOLERANCE, 0},
+{1432, 1061158912u, 3079358544u, 1066334683u, 0, EXPM1F_TOLERANCE, 0},
+{1433, 1061158912u, 3079358544u, 1066334683u, 0, EXPM1F_TOLERANCE, 0},
+{1434, 1061158912u, 3079358544u, 1066334683u, 0, EXPM1F_TOLERANCE, 0},
+{1435, 1061158912u, 3079358544u, 1066334683u, 0, EXPM1F_TOLERANCE, 0},
+{1436, 1061158912u, 3079358544u, 1066334683u, 0, EXPM1F_TOLERANCE, 0},
+{1437, 1061158912u, 3079358544u, 1066334683u, 0, EXPM1F_TOLERANCE, 0},
+{1438, 1061158912u, 3079358544u, 1066334683u, 0, EXPM1F_TOLERANCE, 0},
+{1439, 1061158912u, 3079358544u, 1066334683u, 0, EXPM1F_TOLERANCE, 0},
+{1440, 1061997773u, 3079358544u, 1067245191u, 0, EXPM1F_TOLERANCE, 0},
+{1441, 1061997773u, 3079358544u, 1067245191u, 0, EXPM1F_TOLERANCE, 0},
+{1442, 1061997773u, 3079358544u, 1067245191u, 0, EXPM1F_TOLERANCE, 0},
+{1443, 1061997773u, 3079358544u, 1067245191u, 0, EXPM1F_TOLERANCE, 0},
+{1444, 1061997773u, 3079358544u, 1067245191u, 0, EXPM1F_TOLERANCE, 0},
+{1445, 1061997773u, 3079358544u, 1067245191u, 0, EXPM1F_TOLERANCE, 0},
+{1446, 1061997773u, 3079358544u, 1067245191u, 0, EXPM1F_TOLERANCE, 0},
+{1447, 1061997773u, 3079358544u, 1067245191u, 0, EXPM1F_TOLERANCE, 0},
+{1448, 1061997773u, 3079358544u, 1067245191u, 0, EXPM1F_TOLERANCE, 0},
+{1449, 1061997773u, 3079358544u, 1067245191u, 0, EXPM1F_TOLERANCE, 0},
+{1450, 1061997773u, 3079358544u, 1067245191u, 0, EXPM1F_TOLERANCE, 0},
+{1451, 1061997773u, 3079358544u, 1067245191u, 0, EXPM1F_TOLERANCE, 0},
+{1452, 1061997773u, 3079358544u, 1067245191u, 0, EXPM1F_TOLERANCE, 0},
+{1453, 1061997773u, 3079358544u, 1067245191u, 0, EXPM1F_TOLERANCE, 0},
+{1454, 1061997773u, 3079358544u, 1067245191u, 0, EXPM1F_TOLERANCE, 0},
+{1455, 1061997773u, 3079358544u, 1067245191u, 0, EXPM1F_TOLERANCE, 0},
+{1456, 1061997773u, 3079358544u, 1067245191u, 0, EXPM1F_TOLERANCE, 0},
+{1457, 1061997773u, 3079358544u, 1067245191u, 0, EXPM1F_TOLERANCE, 0},
+{1458, 1061997773u, 3079358544u, 1067245191u, 0, EXPM1F_TOLERANCE, 0},
+{1459, 1061997773u, 3079358544u, 1067245191u, 0, EXPM1F_TOLERANCE, 0},
+{1460, 1061997773u, 3079358544u, 1067245191u, 0, EXPM1F_TOLERANCE, 0},
+{1461, 1061997773u, 3079358544u, 1067245191u, 0, EXPM1F_TOLERANCE, 0},
+{1462, 1061997773u, 3079358544u, 1067245191u, 0, EXPM1F_TOLERANCE, 0},
+{1463, 1061997773u, 3079358544u, 1067245191u, 0, EXPM1F_TOLERANCE, 0},
+{1464, 1061997773u, 3079358544u, 1067245191u, 0, EXPM1F_TOLERANCE, 0},
+{1465, 1061997773u, 3079358544u, 1067245191u, 0, EXPM1F_TOLERANCE, 0},
+{1466, 1061997773u, 3079358544u, 1067245191u, 0, EXPM1F_TOLERANCE, 0},
+{1467, 1061997773u, 3079358544u, 1067245191u, 0, EXPM1F_TOLERANCE, 0},
+{1468, 1061997773u, 3079358544u, 1067245191u, 0, EXPM1F_TOLERANCE, 0},
+{1469, 1061997773u, 3079358544u, 1067245191u, 0, EXPM1F_TOLERANCE, 0},
+{1470, 1061997773u, 3079358544u, 1067245191u, 0, EXPM1F_TOLERANCE, 0},
+{1471, 1061997773u, 3079358544u, 1067245191u, 0, EXPM1F_TOLERANCE, 0},
+{1472, 1061997773u, 3079358544u, 1067245191u, 0, EXPM1F_TOLERANCE, 0},
+{1473, 1061997773u, 3079358544u, 1067245191u, 0, EXPM1F_TOLERANCE, 0},
+{1474, 1061997773u, 3079358544u, 1067245191u, 0, EXPM1F_TOLERANCE, 0},
+{1475, 1061997773u, 3079358544u, 1067245191u, 0, EXPM1F_TOLERANCE, 0},
+{1476, 1061997773u, 3079358544u, 1067245191u, 0, EXPM1F_TOLERANCE, 0},
+{1477, 1061997773u, 3079358544u, 1067245191u, 0, EXPM1F_TOLERANCE, 0},
+{1478, 1061997773u, 3079358544u, 1067245191u, 0, EXPM1F_TOLERANCE, 0},
+{1479, 1061997773u, 3079358544u, 1067245191u, 0, EXPM1F_TOLERANCE, 0},
+{1480, 1062836634u, 3079358544u, 1068202381u, 0, EXPM1F_TOLERANCE, 0},
+{1481, 1062836634u, 3079358544u, 1068202381u, 0, EXPM1F_TOLERANCE, 0},
+{1482, 1062836634u, 3079358544u, 1068202381u, 0, EXPM1F_TOLERANCE, 0},
+{1483, 1062836634u, 3079358544u, 1068202381u, 0, EXPM1F_TOLERANCE, 0},
+{1484, 1062836634u, 3079358544u, 1068202381u, 0, EXPM1F_TOLERANCE, 0},
+{1485, 1062836634u, 3079358544u, 1068202381u, 0, EXPM1F_TOLERANCE, 0},
+{1486, 1062836634u, 3079358544u, 1068202381u, 0, EXPM1F_TOLERANCE, 0},
+{1487, 1062836634u, 3079358544u, 1068202381u, 0, EXPM1F_TOLERANCE, 0},
+{1488, 1062836634u, 3079358544u, 1068202381u, 0, EXPM1F_TOLERANCE, 0},
+{1489, 1062836634u, 3079358544u, 1068202381u, 0, EXPM1F_TOLERANCE, 0},
+{1490, 1062836634u, 3079358544u, 1068202381u, 0, EXPM1F_TOLERANCE, 0},
+{1491, 1062836634u, 3079358544u, 1068202381u, 0, EXPM1F_TOLERANCE, 0},
+{1492, 1062836634u, 3079358544u, 1068202381u, 0, EXPM1F_TOLERANCE, 0},
+{1493, 1062836634u, 3079358544u, 1068202381u, 0, EXPM1F_TOLERANCE, 0},
+{1494, 1062836634u, 3079358544u, 1068202381u, 0, EXPM1F_TOLERANCE, 0},
+{1495, 1062836634u, 3079358544u, 1068202381u, 0, EXPM1F_TOLERANCE, 0},
+{1496, 1062836634u, 3079358544u, 1068202381u, 0, EXPM1F_TOLERANCE, 0},
+{1497, 1062836634u, 3079358544u, 1068202381u, 0, EXPM1F_TOLERANCE, 0},
+{1498, 1062836634u, 3079358544u, 1068202381u, 0, EXPM1F_TOLERANCE, 0},
+{1499, 1062836634u, 3079358544u, 1068202381u, 0, EXPM1F_TOLERANCE, 0},
+{1500, 1062836634u, 3079358544u, 1068202381u, 0, EXPM1F_TOLERANCE, 0},
+{1501, 1062836634u, 3079358544u, 1068202381u, 0, EXPM1F_TOLERANCE, 0},
+{1502, 1062836634u, 3079358544u, 1068202381u, 0, EXPM1F_TOLERANCE, 0},
+{1503, 1062836634u, 3079358544u, 1068202381u, 0, EXPM1F_TOLERANCE, 0},
+{1504, 1062836634u, 3079358544u, 1068202381u, 0, EXPM1F_TOLERANCE, 0},
+{1505, 1062836634u, 3079358544u, 1068202381u, 0, EXPM1F_TOLERANCE, 0},
+{1506, 1062836634u, 3079358544u, 1068202381u, 0, EXPM1F_TOLERANCE, 0},
+{1507, 1062836634u, 3079358544u, 1068202381u, 0, EXPM1F_TOLERANCE, 0},
+{1508, 1062836634u, 3079358544u, 1068202381u, 0, EXPM1F_TOLERANCE, 0},
+{1509, 1062836634u, 3079358544u, 1068202381u, 0, EXPM1F_TOLERANCE, 0},
+{1510, 1062836634u, 3079358544u, 1068202381u, 0, EXPM1F_TOLERANCE, 0},
+{1511, 1062836634u, 3079358544u, 1068202381u, 0, EXPM1F_TOLERANCE, 0},
+{1512, 1062836634u, 3079358544u, 1068202381u, 0, EXPM1F_TOLERANCE, 0},
+{1513, 1062836634u, 3079358544u, 1068202381u, 0, EXPM1F_TOLERANCE, 0},
+{1514, 1062836634u, 3079358544u, 1068202381u, 0, EXPM1F_TOLERANCE, 0},
+{1515, 1062836634u, 3079358544u, 1068202381u, 0, EXPM1F_TOLERANCE, 0},
+{1516, 1062836634u, 3079358544u, 1068202381u, 0, EXPM1F_TOLERANCE, 0},
+{1517, 1062836634u, 3079358544u, 1068202381u, 0, EXPM1F_TOLERANCE, 0},
+{1518, 1062836634u, 3079358544u, 1068202381u, 0, EXPM1F_TOLERANCE, 0},
+{1519, 1062836634u, 3079358544u, 1068202381u, 0, EXPM1F_TOLERANCE, 0},
+{1520, 1063675494u, 3079358544u, 1069208646u, 0, EXPM1F_TOLERANCE, 0},
+{1521, 1063675494u, 3079358544u, 1069208646u, 0, EXPM1F_TOLERANCE, 0},
+{1522, 1063675494u, 3079358544u, 1069208646u, 0, EXPM1F_TOLERANCE, 0},
+{1523, 1063675494u, 3079358544u, 1069208646u, 0, EXPM1F_TOLERANCE, 0},
+{1524, 1063675494u, 3079358544u, 1069208646u, 0, EXPM1F_TOLERANCE, 0},
+{1525, 1063675494u, 3079358544u, 1069208646u, 0, EXPM1F_TOLERANCE, 0},
+{1526, 1063675494u, 3079358544u, 1069208646u, 0, EXPM1F_TOLERANCE, 0},
+{1527, 1063675494u, 3079358544u, 1069208646u, 0, EXPM1F_TOLERANCE, 0},
+{1528, 1063675494u, 3079358544u, 1069208646u, 0, EXPM1F_TOLERANCE, 0},
+{1529, 1063675494u, 3079358544u, 1069208646u, 0, EXPM1F_TOLERANCE, 0},
+{1530, 1063675494u, 3079358544u, 1069208646u, 0, EXPM1F_TOLERANCE, 0},
+{1531, 1063675494u, 3079358544u, 1069208646u, 0, EXPM1F_TOLERANCE, 0},
+{1532, 1063675494u, 3079358544u, 1069208646u, 0, EXPM1F_TOLERANCE, 0},
+{1533, 1063675494u, 3079358544u, 1069208646u, 0, EXPM1F_TOLERANCE, 0},
+{1534, 1063675494u, 3079358544u, 1069208646u, 0, EXPM1F_TOLERANCE, 0},
+{1535, 1063675494u, 3079358544u, 1069208646u, 0, EXPM1F_TOLERANCE, 0},
+{1536, 1063675494u, 3079358544u, 1069208646u, 0, EXPM1F_TOLERANCE, 0},
+{1537, 1063675494u, 3079358544u, 1069208646u, 0, EXPM1F_TOLERANCE, 0},
+{1538, 1063675494u, 3079358544u, 1069208646u, 0, EXPM1F_TOLERANCE, 0},
+{1539, 1063675494u, 3079358544u, 1069208646u, 0, EXPM1F_TOLERANCE, 0},
+{1540, 1063675494u, 3079358544u, 1069208646u, 0, EXPM1F_TOLERANCE, 0},
+{1541, 1063675494u, 3079358544u, 1069208646u, 0, EXPM1F_TOLERANCE, 0},
+{1542, 1063675494u, 3079358544u, 1069208646u, 0, EXPM1F_TOLERANCE, 0},
+{1543, 1063675494u, 3079358544u, 1069208646u, 0, EXPM1F_TOLERANCE, 0},
+{1544, 1063675494u, 3079358544u, 1069208646u, 0, EXPM1F_TOLERANCE, 0},
+{1545, 1063675494u, 3079358544u, 1069208646u, 0, EXPM1F_TOLERANCE, 0},
+{1546, 1063675494u, 3079358544u, 1069208646u, 0, EXPM1F_TOLERANCE, 0},
+{1547, 1063675494u, 3079358544u, 1069208646u, 0, EXPM1F_TOLERANCE, 0},
+{1548, 1063675494u, 3079358544u, 1069208646u, 0, EXPM1F_TOLERANCE, 0},
+{1549, 1063675494u, 3079358544u, 1069208646u, 0, EXPM1F_TOLERANCE, 0},
+{1550, 1063675494u, 3079358544u, 1069208646u, 0, EXPM1F_TOLERANCE, 0},
+{1551, 1063675494u, 3079358544u, 1069208646u, 0, EXPM1F_TOLERANCE, 0},
+{1552, 1063675494u, 3079358544u, 1069208646u, 0, EXPM1F_TOLERANCE, 0},
+{1553, 1063675494u, 3079358544u, 1069208646u, 0, EXPM1F_TOLERANCE, 0},
+{1554, 1063675494u, 3079358544u, 1069208646u, 0, EXPM1F_TOLERANCE, 0},
+{1555, 1063675494u, 3079358544u, 1069208646u, 0, EXPM1F_TOLERANCE, 0},
+{1556, 1063675494u, 3079358544u, 1069208646u, 0, EXPM1F_TOLERANCE, 0},
+{1557, 1063675494u, 3079358544u, 1069208646u, 0, EXPM1F_TOLERANCE, 0},
+{1558, 1063675494u, 3079358544u, 1069208646u, 0, EXPM1F_TOLERANCE, 0},
+{1559, 1063675494u, 3079358544u, 1069208646u, 0, EXPM1F_TOLERANCE, 0},
+{1560, 1064514355u, 3079358544u, 1070266504u, 0, EXPM1F_TOLERANCE, 0},
+{1561, 1064514355u, 3079358544u, 1070266504u, 0, EXPM1F_TOLERANCE, 0},
+{1562, 1064514355u, 3079358544u, 1070266504u, 0, EXPM1F_TOLERANCE, 0},
+{1563, 1064514355u, 3079358544u, 1070266504u, 0, EXPM1F_TOLERANCE, 0},
+{1564, 1064514355u, 3079358544u, 1070266504u, 0, EXPM1F_TOLERANCE, 0},
+{1565, 1064514355u, 3079358544u, 1070266504u, 0, EXPM1F_TOLERANCE, 0},
+{1566, 1064514355u, 3079358544u, 1070266504u, 0, EXPM1F_TOLERANCE, 0},
+{1567, 1064514355u, 3079358544u, 1070266504u, 0, EXPM1F_TOLERANCE, 0},
+{1568, 1064514355u, 3079358544u, 1070266504u, 0, EXPM1F_TOLERANCE, 0},
+{1569, 1064514355u, 3079358544u, 1070266504u, 0, EXPM1F_TOLERANCE, 0},
+{1570, 1064514355u, 3079358544u, 1070266504u, 0, EXPM1F_TOLERANCE, 0},
+{1571, 1064514355u, 3079358544u, 1070266504u, 0, EXPM1F_TOLERANCE, 0},
+{1572, 1064514355u, 3079358544u, 1070266504u, 0, EXPM1F_TOLERANCE, 0},
+{1573, 1064514355u, 3079358544u, 1070266504u, 0, EXPM1F_TOLERANCE, 0},
+{1574, 1064514355u, 3079358544u, 1070266504u, 0, EXPM1F_TOLERANCE, 0},
+{1575, 1064514355u, 3079358544u, 1070266504u, 0, EXPM1F_TOLERANCE, 0},
+{1576, 1064514355u, 3079358544u, 1070266504u, 0, EXPM1F_TOLERANCE, 0},
+{1577, 1064514355u, 3079358544u, 1070266504u, 0, EXPM1F_TOLERANCE, 0},
+{1578, 1064514355u, 3079358544u, 1070266504u, 0, EXPM1F_TOLERANCE, 0},
+{1579, 1064514355u, 3079358544u, 1070266504u, 0, EXPM1F_TOLERANCE, 0},
+{1580, 1064514355u, 3079358544u, 1070266504u, 0, EXPM1F_TOLERANCE, 0},
+{1581, 1064514355u, 3079358544u, 1070266504u, 0, EXPM1F_TOLERANCE, 0},
+{1582, 1064514355u, 3079358544u, 1070266504u, 0, EXPM1F_TOLERANCE, 0},
+{1583, 1064514355u, 3079358544u, 1070266504u, 0, EXPM1F_TOLERANCE, 0},
+{1584, 1064514355u, 3079358544u, 1070266504u, 0, EXPM1F_TOLERANCE, 0},
+{1585, 1064514355u, 3079358544u, 1070266504u, 0, EXPM1F_TOLERANCE, 0},
+{1586, 1064514355u, 3079358544u, 1070266504u, 0, EXPM1F_TOLERANCE, 0},
+{1587, 1064514355u, 3079358544u, 1070266504u, 0, EXPM1F_TOLERANCE, 0},
+{1588, 1064514355u, 3079358544u, 1070266504u, 0, EXPM1F_TOLERANCE, 0},
+{1589, 1064514355u, 3079358544u, 1070266504u, 0, EXPM1F_TOLERANCE, 0},
+{1590, 1064514355u, 3079358544u, 1070266504u, 0, EXPM1F_TOLERANCE, 0},
+{1591, 1064514355u, 3079358544u, 1070266504u, 0, EXPM1F_TOLERANCE, 0},
+{1592, 1064514355u, 3079358544u, 1070266504u, 0, EXPM1F_TOLERANCE, 0},
+{1593, 1064514355u, 3079358544u, 1070266504u, 0, EXPM1F_TOLERANCE, 0},
+{1594, 1064514355u, 3079358544u, 1070266504u, 0, EXPM1F_TOLERANCE, 0},
+{1595, 1064514355u, 3079358544u, 1070266504u, 0, EXPM1F_TOLERANCE, 0},
+{1596, 1064514355u, 3079358544u, 1070266504u, 0, EXPM1F_TOLERANCE, 0},
+{1597, 1064514355u, 3079358544u, 1070266504u, 0, EXPM1F_TOLERANCE, 0},
+{1598, 1064514355u, 3079358544u, 1070266504u, 0, EXPM1F_TOLERANCE, 0},
+{1599, 1064514355u, 3079358544u, 1070266504u, 0, EXPM1F_TOLERANCE, 0},
+{1600, 1107800421u, 3079358544u, 1475721455u, 0, EXPM1F_TOLERANCE, 0},
+{1601, 3196650934u, 3079358544u, 3195039781u, 0, EXPM1F_TOLERANCE, 0},
+{1602, 3368700125u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{1603, 1224242132u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{1604, 3221027117u, 3079358544u, 3210511986u, 0, EXPM1F_TOLERANCE, 0},
+{1605, 1198712763u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{1606, 3159309973u, 3079358544u, 3159224434u, 0, EXPM1F_TOLERANCE, 0},
+{1607, 954173073u, 3079358544u, 954173854u, 0, EXPM1F_TOLERANCE, 0},
+{1608, 3090780435u, 3079358544u, 3090780166u, 0, EXPM1F_TOLERANCE, 0},
+{1609, 966554515u, 3079358544u, 966556045u, 0, EXPM1F_TOLERANCE, 0},
+{1610, 1312607135u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{1611, 1166191415u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{1612, 3111900019u, 3079358544u, 3111898037u, 0, EXPM1F_TOLERANCE, 0},
+{1613, 1234419246u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{1614, 1302107128u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{1615, 1052801068u, 3079358544u, 1055499152u, 0, EXPM1F_TOLERANCE, 0},
+{1616, 1060849628u, 3079358544u, 1066010305u, 0, EXPM1F_TOLERANCE, 0},
+{1617, 3484320003u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{1618, 3181522772u, 3079358544u, 3181112802u, 0, EXPM1F_TOLERANCE, 0},
+{1619, 882596369u, 3079358544u, 882596370u, 0, EXPM1F_TOLERANCE, 0},
+{1620, 1167223673u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{1621, 968192794u, 3079358544u, 968194852u, 0, EXPM1F_TOLERANCE, 0},
+{1622, 3122346862u, 3079358544u, 3122343850u, 0, EXPM1F_TOLERANCE, 0},
+{1623, 1052361612u, 3079358544u, 1054863334u, 0, EXPM1F_TOLERANCE, 0},
+{1624, 906701409u, 3079358544u, 906701418u, 0, EXPM1F_TOLERANCE, 0},
+{1625, 3471653172u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{1626, 3231467496u, 3079358544u, 3212709888u, 0, EXPM1F_TOLERANCE, 0},
+{1627, 1341514497u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{1628, 1272351391u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{1629, 3319724992u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{1630, 917622040u, 3079358544u, 917622071u, 0, EXPM1F_TOLERANCE, 0},
+{1631, 940236348u, 3079358544u, 940236499u, 0, EXPM1F_TOLERANCE, 0},
+{1632, 3251541546u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{1633, 3099843889u, 3079358544u, 3099843290u, 0, EXPM1F_TOLERANCE, 0},
+{1634, 3110358400u, 3079358544u, 3110356771u, 0, EXPM1F_TOLERANCE, 0},
+{1635, 3371863479u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{1636, 3204069187u, 3079358544u, 3200642460u, 0, EXPM1F_TOLERANCE, 0},
+{1637, 1306460502u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{1638, 1197542187u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{1639, 922888249u, 3079358544u, 922888282u, 0, EXPM1F_TOLERANCE, 0},
+{1640, 1184239996u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{1641, 1252490238u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{1642, 1001673627u, 3079358544u, 1001706204u, 0, EXPM1F_TOLERANCE, 0},
+{1643, 976098044u, 3079358544u, 976101833u, 0, EXPM1F_TOLERANCE, 0},
+{1644, 941796645u, 3079358544u, 941796852u, 0, EXPM1F_TOLERANCE, 0},
+{1645, 3287199470u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{1646, 893184329u, 3079358544u, 893184333u, 0, EXPM1F_TOLERANCE, 0},
+{1647, 1143233714u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{1648, 1139941253u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{1649, 3143717025u, 3079358544u, 3143691671u, 0, EXPM1F_TOLERANCE, 0},
+{1650, 3048866608u, 3079358544u, 3048866600u, 0, EXPM1F_TOLERANCE, 0},
+{1651, 3240298487u, 3079358544u, 3212836234u, 0, EXPM1F_TOLERANCE, 0},
+{1652, 1288902137u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{1653, 1333134799u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{1654, 1187847971u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{1655, 1038851706u, 3079358544u, 1039775034u, 0, EXPM1F_TOLERANCE, 0},
+{1656, 3329354473u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{1657, 3077218579u, 3079358544u, 3077218471u, 0, EXPM1F_TOLERANCE, 0},
+{1658, 1309289088u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{1659, 3444653659u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{1660, 3405585402u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{1661, 3106647724u, 3079358544u, 3106646803u, 0, EXPM1F_TOLERANCE, 0},
+{1662, 1106778573u, 3079358544u, 1440090537u, 0, EXPM1F_TOLERANCE, 0},
+{1663, 1140567947u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{1664, 1238569473u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{1665, 3154871957u, 3079358544u, 3154833132u, 0, EXPM1F_TOLERANCE, 0},
+{1666, 1261071232u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{1667, 1175011025u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{1668, 1082692850u, 3079358544u, 1116522639u, 0, EXPM1F_TOLERANCE, 0},
+{1669, 974547519u, 3079358544u, 974550348u, 0, EXPM1F_TOLERANCE, 0},
+{1670, 3058097085u, 3079358544u, 3058097066u, 0, EXPM1F_TOLERANCE, 0},
+{1671, 3107252546u, 3079358544u, 3107251523u, 0, EXPM1F_TOLERANCE, 0},
+{1672, 3096032662u, 3079358544u, 3096032366u, 0, EXPM1F_TOLERANCE, 0},
+{1673, 3197942144u, 3079358544u, 3196518976u, 0, EXPM1F_TOLERANCE, 0},
+{1674, 3403348556u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{1675, 3182301130u, 3079358544u, 3181829817u, 0, EXPM1F_TOLERANCE, 0},
+{1676, 1136411063u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{1677, 3239231622u, 3079358544u, 3212835121u, 0, EXPM1F_TOLERANCE, 0},
+{1678, 3340615780u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{1679, 998567360u, 3079358544u, 998585054u, 0, EXPM1F_TOLERANCE, 0},
+{1680, 3417964312u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{1681, 3109481038u, 3079358544u, 3109479595u, 0, EXPM1F_TOLERANCE, 0},
+{1682, 1148867223u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{1683, 989687421u, 3079358544u, 989703488u, 0, EXPM1F_TOLERANCE, 0},
+{1684, 1152956913u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{1685, 892922651u, 3079358544u, 892922655u, 0, EXPM1F_TOLERANCE, 0},
+{1686, 1109627625u, 3079358544u, 1560243939u, 0, EXPM1F_TOLERANCE, 0},
+{1687, 1307091856u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{1688, 1077234132u, 3079358544u, 1098897272u, 0, EXPM1F_TOLERANCE, 0},
+{1689, 1142167709u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{1690, 3426232834u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{1691, 3368566779u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{1692, 3030724760u, 3079358544u, 3030724758u, 0, EXPM1F_TOLERANCE, 0},
+{1693, 1138741813u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{1694, 982950501u, 3079358544u, 982956176u, 0, EXPM1F_TOLERANCE, 0},
+{1695, 1142981585u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{1696, 3347165962u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{1697, 1009535440u, 3079358544u, 1009595015u, 0, EXPM1F_TOLERANCE, 0},
+{1698, 3103736980u, 3079358544u, 3103735962u, 0, EXPM1F_TOLERANCE, 0},
+{1699, 3126820946u, 3079358544u, 3126814704u, 0, EXPM1F_TOLERANCE, 0},
+{1700, 3473956030u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{1701, 3349098349u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{1702, 3152729489u, 3079358544u, 3152674473u, 0, EXPM1F_TOLERANCE, 0},
+{1703, 945568720u, 3079358544u, 945569099u, 0, EXPM1F_TOLERANCE, 0},
+{1704, 3345489836u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{1705, 940893161u, 3079358544u, 940893334u, 0, EXPM1F_TOLERANCE, 0},
+{1706, 976791751u, 3079358544u, 976796014u, 0, EXPM1F_TOLERANCE, 0},
+{1707, 1004442355u, 3079358544u, 1004492007u, 0, EXPM1F_TOLERANCE, 0},
+{1708, 1108485380u, 3079358544u, 1506899287u, 0, EXPM1F_TOLERANCE, 0},
+{1709, 1061834641u, 3079358544u, 1067064542u, 0, EXPM1F_TOLERANCE, 0},
+{1710, 3381268392u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{1711, 1087189715u, 3079358544u, 1142429899u, 0, EXPM1F_TOLERANCE, 0},
+{1712, 3212952285u, 3079358544u, 3206749212u, 0, EXPM1F_TOLERANCE, 0},
+{1713, 1000611335u, 3079358544u, 1000638315u, 0, EXPM1F_TOLERANCE, 0},
+{1714, 3466188568u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{1715, 3072456205u, 3079358544u, 3072456154u, 0, EXPM1F_TOLERANCE, 0},
+{1716, 3319315516u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{1717, 935938416u, 3079358544u, 935938574u, 0, EXPM1F_TOLERANCE, 0},
+{1718, 3212614372u, 3079358544u, 3206582476u, 0, EXPM1F_TOLERANCE, 0},
+{1719, 1315030230u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{1720, 1134593658u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{1721, 977281449u, 3079358544u, 977286064u, 0, EXPM1F_TOLERANCE, 0},
+{1722, 1086198791u, 3079358544u, 1136489724u, 0, EXPM1F_TOLERANCE, 0},
+{1723, 1255152035u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{1724, 1135271264u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{1725, 1094190727u, 3079358544u, 1203837979u, 0, EXPM1F_TOLERANCE, 0},
+{1726, 1294665325u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{1727, 1036608591u, 3079358544u, 1037279334u, 0, EXPM1F_TOLERANCE, 0},
+{1728, 3229998064u, 3079358544u, 3212580992u, 0, EXPM1F_TOLERANCE, 0},
+{1729, 3439134022u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{1730, 3073083133u, 3079358544u, 3073083076u, 0, EXPM1F_TOLERANCE, 0},
+{1731, 1325668223u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{1732, 1092037607u, 3079358544u, 1179005485u, 0, EXPM1F_TOLERANCE, 0},
+{1733, 3316278408u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{1734, 3295436768u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{1735, 1151984049u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{1736, 1129287043u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{1737, 1243664530u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{1738, 950829092u, 3079358544u, 950829557u, 0, EXPM1F_TOLERANCE, 0},
+{1739, 1115471979u, 3079358544u, 1829706150u, 0, EXPM1F_TOLERANCE, 0},
+{1740, 3351092088u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{1741, 3424479544u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{1742, 3241193975u, 3079358544u, 3212836596u, 0, EXPM1F_TOLERANCE, 0},
+{1743, 1030934236u, 3079358544u, 1031415341u, 0, EXPM1F_TOLERANCE, 0},
+{1744, 3131791114u, 3079358544u, 3131783778u, 0, EXPM1F_TOLERANCE, 0},
+{1745, 1025254314u, 3079358544u, 1025451852u, 0, EXPM1F_TOLERANCE, 0},
+{1746, 1110545760u, 3079358544u, 1602518190u, 0, EXPM1F_TOLERANCE, 0},
+{1747, 3180213739u, 3079358544u, 3179897519u, 0, EXPM1F_TOLERANCE, 0},
+{1748, 3361976590u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{1749, 881280146u, 3079358544u, 881280147u, 0, EXPM1F_TOLERANCE, 0},
+{1750, 1304154705u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{1751, 3264443610u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{1752, 3374550627u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{1753, 899599265u, 3079358544u, 899599271u, 0, EXPM1F_TOLERANCE, 0},
+{1754, 1268194719u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{1755, 1133420220u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{1756, 1161858787u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{1757, 3184462258u, 3079358544u, 3183798962u, 0, EXPM1F_TOLERANCE, 0},
+{1758, 3295996963u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{1759, 1270887389u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{1760, 3325193181u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{1761, 925657343u, 3079358544u, 925657401u, 0, EXPM1F_TOLERANCE, 0},
+{1762, 3115275450u, 3079358544u, 3115273529u, 0, EXPM1F_TOLERANCE, 0},
+{1763, 3116607482u, 3079358544u, 3116605090u, 0, EXPM1F_TOLERANCE, 0},
+{1764, 3187892415u, 3079358544u, 3187054905u, 0, EXPM1F_TOLERANCE, 0},
+{1765, 1189120494u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{1766, 889030794u, 3079358544u, 889030798u, 0, EXPM1F_TOLERANCE, 0},
+{1767, 1323529208u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{1768, 3465768388u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{1769, 3426099899u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{1770, 3224857113u, 3079358544u, 3211881659u, 0, EXPM1F_TOLERANCE, 0},
+{1771, 1065798296u, 3079358544u, 1072621125u, 0, EXPM1F_TOLERANCE, 0},
+{1772, 3328989444u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{1773, 3357819026u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{1774, 1273397670u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{1775, 3424831780u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{1776, 1257596246u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{1777, 1051773536u, 3079358544u, 1054025411u, 0, EXPM1F_TOLERANCE, 0},
+{1778, 3294752507u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{1779, 3424848725u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{1780, 1090870906u, 3079358544u, 1166165113u, 0, EXPM1F_TOLERANCE, 0},
+{1781, 1227582289u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{1782, 1272325814u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{1783, 3359508271u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{1784, 1137854355u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{1785, 3440773058u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{1786, 3101598400u, 3079358544u, 3101597626u, 0, EXPM1F_TOLERANCE, 0},
+{1787, 3451216836u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{1788, 3437062994u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{1789, 1131196082u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{1790, 3177294154u, 3079358544u, 3176894149u, 0, EXPM1F_TOLERANCE, 0},
+{1791, 3258097678u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{1792, 3460915348u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{1793, 3303035472u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{1794, 1053698677u, 3079358544u, 1056824005u, 0, EXPM1F_TOLERANCE, 0},
+{1795, 3396166221u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{1796, 3037541131u, 3079358544u, 3037541129u, 0, EXPM1F_TOLERANCE, 0},
+{1797, 3458934263u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{1798, 1065761827u, 3079358544u, 1072516817u, 0, EXPM1F_TOLERANCE, 0},
+{1799, 3025843188u, 3079358544u, 3025843187u, 0, EXPM1F_TOLERANCE, 0},
+{1800, 926665223u, 3079358544u, 926665292u, 0, EXPM1F_TOLERANCE, 0},
+{1801, 1199816046u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{1802, 3333779015u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{1803, 948398145u, 3079358544u, 948398431u, 0, EXPM1F_TOLERANCE, 0},
+{1804, 3054021468u, 3079358544u, 3054021459u, 0, EXPM1F_TOLERANCE, 0},
+{1805, 1080781593u, 3079358544u, 1109022074u, 0, EXPM1F_TOLERANCE, 0},
+{1806, 3164749613u, 3079358544u, 3164645009u, 0, EXPM1F_TOLERANCE, 0},
+{1807, 3235326590u, 3079358544u, 3212816701u, 0, EXPM1F_TOLERANCE, 0},
+{1808, 3118883815u, 3079358544u, 3118880498u, 0, EXPM1F_TOLERANCE, 0},
+{1809, 965378004u, 3079358544u, 965379203u, 0, EXPM1F_TOLERANCE, 0},
+{1810, 3226990408u, 3079358544u, 3212262474u, 0, EXPM1F_TOLERANCE, 0},
+{1811, 3117098218u, 3079358544u, 3117095639u, 0, EXPM1F_TOLERANCE, 0},
+{1812, 1283624229u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{1813, 970649315u, 3079358544u, 970652311u, 0, EXPM1F_TOLERANCE, 0},
+{1814, 959776291u, 3079358544u, 959777315u, 0, EXPM1F_TOLERANCE, 0},
+{1815, 3341117305u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{1816, 1270734970u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{1817, 3454816067u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{1818, 917206623u, 3079358544u, 917206652u, 0, EXPM1F_TOLERANCE, 0},
+{1819, 1106502045u, 3079358544u, 1434230090u, 0, EXPM1F_TOLERANCE, 0},
+{1820, 1157598381u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{1821, 3335234513u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{1822, 1279489061u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{1823, 3157416480u, 3079358544u, 3157353091u, 0, EXPM1F_TOLERANCE, 0},
+{1824, 3143920719u, 3079358544u, 3143894661u, 0, EXPM1F_TOLERANCE, 0},
+{1825, 1233171235u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{1826, 1148920078u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{1827, 3064988156u, 3079358544u, 3064988126u, 0, EXPM1F_TOLERANCE, 0},
+{1828, 3083619260u, 3079358544u, 3083619097u, 0, EXPM1F_TOLERANCE, 0},
+{1829, 1109198803u, 3079358544u, 1539769939u, 0, EXPM1F_TOLERANCE, 0},
+{1830, 3219949483u, 3079358544u, 3210193291u, 0, EXPM1F_TOLERANCE, 0},
+{1831, 3361149474u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{1832, 1207502108u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{1833, 1000014431u, 3079358544u, 1000038497u, 0, EXPM1F_TOLERANCE, 0},
+{1834, 3161756316u, 3079358544u, 3161637277u, 0, EXPM1F_TOLERANCE, 0},
+{1835, 3160728744u, 3079358544u, 3160624446u, 0, EXPM1F_TOLERANCE, 0},
+{1836, 1234530539u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{1837, 1017843965u, 3079358544u, 1017961839u, 0, EXPM1F_TOLERANCE, 0},
+{1838, 951862956u, 3079358544u, 951863510u, 0, EXPM1F_TOLERANCE, 0},
+{1839, 3306328852u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{1840, 1291910469u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{1841, 3027442905u, 3079358544u, 3027442903u, 0, EXPM1F_TOLERANCE, 0},
+{1842, 1131927531u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{1843, 3449879391u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{1844, 970094304u, 3079358544u, 970097073u, 0, EXPM1F_TOLERANCE, 0},
+{1845, 1125551064u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{1846, 3427296372u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{1847, 1198917460u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{1848, 3201603336u, 3079358544u, 3199072887u, 0, EXPM1F_TOLERANCE, 0},
+{1849, 3114686212u, 3079358544u, 3114684483u, 0, EXPM1F_TOLERANCE, 0},
+{1850, 921940707u, 3079358544u, 921940765u, 0, EXPM1F_TOLERANCE, 0},
+{1851, 1091906532u, 3079358544u, 1177479087u, 0, EXPM1F_TOLERANCE, 0},
+{1852, 3393557778u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{1853, 1276853215u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{1854, 3462778440u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{1855, 3360170117u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{1856, 3224245428u, 3079358544u, 3211731684u, 0, EXPM1F_TOLERANCE, 0},
+{1857, 1120124467u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{1858, 1064364381u, 3079358544u, 1070073474u, 0, EXPM1F_TOLERANCE, 0},
+{1859, 1268744779u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{1860, 1165195428u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{1861, 3044092739u, 3079358544u, 3044092732u, 0, EXPM1F_TOLERANCE, 0},
+{1862, 3149469534u, 3079358544u, 3149435340u, 0, EXPM1F_TOLERANCE, 0},
+{1863, 3247790039u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{1864, 3215244648u, 3079358544u, 3208204851u, 0, EXPM1F_TOLERANCE, 0},
+{1865, 3095275931u, 3079358544u, 3095275426u, 0, EXPM1F_TOLERANCE, 0},
+{1866, 3059688264u, 3079358544u, 3059688240u, 0, EXPM1F_TOLERANCE, 0},
+{1867, 1212717473u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{1868, 3275973009u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{1869, 3028857014u, 3079358544u, 3028857013u, 0, EXPM1F_TOLERANCE, 0},
+{1870, 3391162308u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{1871, 1044867873u, 3079358544u, 1046227233u, 0, EXPM1F_TOLERANCE, 0},
+{1872, 1089986803u, 3079358544u, 1158708386u, 0, EXPM1F_TOLERANCE, 0},
+{1873, 1296314700u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{1874, 1251462432u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{1875, 3485236902u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{1876, 3262169538u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{1877, 3080852256u, 3079358544u, 3080852153u, 0, EXPM1F_TOLERANCE, 0},
+{1878, 1022211242u, 3079358544u, 1022439460u, 0, EXPM1F_TOLERANCE, 0},
+{1879, 884661176u, 3079358544u, 884661178u, 0, EXPM1F_TOLERANCE, 0},
+{1880, 3071422941u, 3079358544u, 3071422899u, 0, EXPM1F_TOLERANCE, 0},
+{1881, 989762529u, 3079358544u, 989778742u, 0, EXPM1F_TOLERANCE, 0},
+{1882, 1295475718u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{1883, 1002632518u, 3079358544u, 1002670602u, 0, EXPM1F_TOLERANCE, 0},
+{1884, 3404372005u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{1885, 3158912530u, 3079358544u, 3158831914u, 0, EXPM1F_TOLERANCE, 0},
+{1886, 1125800069u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{1887, 3138037576u, 3079358544u, 3138027970u, 0, EXPM1F_TOLERANCE, 0},
+{1888, 3108384823u, 3079358544u, 3108383596u, 0, EXPM1F_TOLERANCE, 0},
+{1889, 999985470u, 3079358544u, 1000009399u, 0, EXPM1F_TOLERANCE, 0},
+{1890, 1189421739u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{1891, 3075182644u, 3079358544u, 3075182563u, 0, EXPM1F_TOLERANCE, 0},
+{1892, 3028099649u, 3079358544u, 3028099647u, 0, EXPM1F_TOLERANCE, 0},
+{1893, 3132541814u, 3079358544u, 3132533464u, 0, EXPM1F_TOLERANCE, 0},
+{1894, 1164046161u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{1895, 1292596266u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{1896, 3469748379u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{1897, 1314644642u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{1898, 3399813173u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{1899, 948775569u, 3079358544u, 948775880u, 0, EXPM1F_TOLERANCE, 0},
+{1900, 1034611395u, 3079358544u, 1035092075u, 0, EXPM1F_TOLERANCE, 0},
+{1901, 3489122735u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{1902, 1181604787u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{1903, 3059042077u, 3079358544u, 3059042055u, 0, EXPM1F_TOLERANCE, 0},
+{1904, 1043691622u, 3079358544u, 1044810539u, 0, EXPM1F_TOLERANCE, 0},
+{1905, 1314588083u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{1906, 3141533334u, 3079358544u, 3141514921u, 0, EXPM1F_TOLERANCE, 0},
+{1907, 3157534378u, 3079358544u, 3157469706u, 0, EXPM1F_TOLERANCE, 0},
+{1908, 3400949680u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{1909, 3365581801u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{1910, 1110424755u, 3079358544u, 1596391869u, 0, EXPM1F_TOLERANCE, 0},
+{1911, 3189917167u, 3079358544u, 3189117326u, 0, EXPM1F_TOLERANCE, 0},
+{1912, 969804941u, 3079358544u, 969807595u, 0, EXPM1F_TOLERANCE, 0},
+{1913, 1139120919u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{1914, 934308144u, 3079358544u, 934308266u, 0, EXPM1F_TOLERANCE, 0},
+{1915, 1220524226u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{1916, 3162548604u, 3079358544u, 3162460251u, 0, EXPM1F_TOLERANCE, 0},
+{1917, 3382391700u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{1918, 1156767533u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{1919, 3079222483u, 3079358544u, 3079222409u, 0, EXPM1F_TOLERANCE, 0},
+{1920, 994934087u, 3079358544u, 994955222u, 0, EXPM1F_TOLERANCE, 0},
+{1921, 3185240099u, 3079358544u, 3184499979u, 0, EXPM1F_TOLERANCE, 0},
+{1922, 3479873563u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{1923, 3424264117u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{1924, 3228365887u, 3079358544u, 3212423070u, 0, EXPM1F_TOLERANCE, 0},
+{1925, 1035909900u, 3079358544u, 1036510448u, 0, EXPM1F_TOLERANCE, 0},
+{1926, 3024951184u, 3079358544u, 3024951183u, 0, EXPM1F_TOLERANCE, 0},
+{1927, 1212129651u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{1928, 3125775254u, 3079358544u, 3125769871u, 0, EXPM1F_TOLERANCE, 0},
+{1929, 1037464105u, 3079358544u, 1038226266u, 0, EXPM1F_TOLERANCE, 0},
+{1930, 1311706596u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{1931, 918212457u, 3079358544u, 918212491u, 0, EXPM1F_TOLERANCE, 0},
+{1932, 1337315179u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{1933, 1131358407u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{1934, 1156517523u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{1935, 3210802820u, 3079358544u, 3205869338u, 0, EXPM1F_TOLERANCE, 0},
+{1936, 3337499209u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{1937, 3468429030u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{1938, 3253515800u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{1939, 3055299953u, 3079358544u, 3055299941u, 0, EXPM1F_TOLERANCE, 0},
+{1940, 959956547u, 3079358544u, 959957602u, 0, EXPM1F_TOLERANCE, 0},
+{1941, 3425290480u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{1942, 1039917375u, 3079358544u, 1040581395u, 0, EXPM1F_TOLERANCE, 0},
+{1943, 3220979495u, 3079358544u, 3210498750u, 0, EXPM1F_TOLERANCE, 0},
+{1944, 1311016004u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{1945, 1128016396u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{1946, 3210335769u, 3079358544u, 3205672648u, 0, EXPM1F_TOLERANCE, 0},
+{1947, 3022705759u, 3079358544u, 3022705758u, 0, EXPM1F_TOLERANCE, 0},
+{1948, 1206054701u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{1949, 3144504834u, 3079358544u, 3144476704u, 0, EXPM1F_TOLERANCE, 0},
+{1950, 1213609983u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{1951, 1246902946u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{1952, 995850843u, 3079358544u, 995874955u, 0, EXPM1F_TOLERANCE, 0},
+{1953, 3362082828u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{1954, 1029480631u, 3079358544u, 1029877131u, 0, EXPM1F_TOLERANCE, 0},
+{1955, 3153568584u, 3079358544u, 3153507414u, 0, EXPM1F_TOLERANCE, 0},
+{1956, 3384988527u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{1957, 1317696241u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{1958, 3235395924u, 3079358544u, 3212817357u, 0, EXPM1F_TOLERANCE, 0},
+{1959, 3341877624u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{1960, 1228636133u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{1961, 3161654634u, 3079358544u, 3161537097u, 0, EXPM1F_TOLERANCE, 0},
+{1962, 3162655243u, 3079358544u, 3162587700u, 0, EXPM1F_TOLERANCE, 0},
+{1963, 1207246237u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{1964, 1165476654u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{1965, 1215278023u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{1966, 1017239798u, 3079358544u, 1017345270u, 0, EXPM1F_TOLERANCE, 0},
+{1967, 1149651309u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{1968, 1111943722u, 3079358544u, 1666598447u, 0, EXPM1F_TOLERANCE, 0},
+{1969, 1189849849u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{1970, 3204848496u, 3079358544u, 3201353450u, 0, EXPM1F_TOLERANCE, 0},
+{1971, 1249758327u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{1972, 3092982276u, 3079358544u, 3092981901u, 0, EXPM1F_TOLERANCE, 0},
+{1973, 1168098747u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{1974, 892549317u, 3079358544u, 892549321u, 0, EXPM1F_TOLERANCE, 0},
+{1975, 3301009024u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{1976, 3233089227u, 3079358544u, 3212778266u, 0, EXPM1F_TOLERANCE, 0},
+{1977, 3218245284u, 3079358544u, 3209597789u, 0, EXPM1F_TOLERANCE, 0},
+{1978, 3215981890u, 3079358544u, 3208594564u, 0, EXPM1F_TOLERANCE, 0},
+{1979, 1266687209u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{1980, 3487959775u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{1981, 943645710u, 3079358544u, 943645995u, 0, EXPM1F_TOLERANCE, 0},
+{1982, 3345065699u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{1983, 935847271u, 3079358544u, 935847427u, 0, EXPM1F_TOLERANCE, 0},
+{1984, 3410336089u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{1985, 3082940740u, 3079358544u, 3082940593u, 0, EXPM1F_TOLERANCE, 0},
+{1986, 1141063391u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{1987, 3059263153u, 3079358544u, 3059263130u, 0, EXPM1F_TOLERANCE, 0},
+{1988, 3353679791u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{1989, 1001823878u, 3079358544u, 1001857290u, 0, EXPM1F_TOLERANCE, 0},
+{1990, 1009130212u, 3079358544u, 1009185581u, 0, EXPM1F_TOLERANCE, 0},
+{1991, 3367127535u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{1992, 1032920919u, 3079358544u, 1033265990u, 0, EXPM1F_TOLERANCE, 0},
+{1993, 3281952870u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{1994, 1237868497u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{1995, 1153753924u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{1996, 1120261759u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{1997, 3226328360u, 3079358544u, 3212164262u, 0, EXPM1F_TOLERANCE, 0},
+{1998, 3349595986u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{1999, 3166889490u, 3079358544u, 3166738746u, 0, EXPM1F_TOLERANCE, 0},
+{2000, 1087750238u, 3079358544u, 1145489096u, 0, EXPM1F_TOLERANCE, 0},
+{2001, 3121620061u, 3079358544u, 3121617464u, 0, EXPM1F_TOLERANCE, 0},
+{2002, 1066116543u, 3079358544u, 1073550874u, 0, EXPM1F_TOLERANCE, 0},
+{2003, 3210898034u, 3079358544u, 3205908768u, 0, EXPM1F_TOLERANCE, 0},
+{2004, 3051923237u, 3079358544u, 3051923224u, 0, EXPM1F_TOLERANCE, 0},
+{2005, 1030612298u, 3079358544u, 1031073947u, 0, EXPM1F_TOLERANCE, 0},
+{2006, 1186234578u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{2007, 1331680743u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{2008, 3060774997u, 3079358544u, 3060774969u, 0, EXPM1F_TOLERANCE, 0},
+{2009, 887589411u, 3079358544u, 887589414u, 0, EXPM1F_TOLERANCE, 0},
+{2010, 1045232522u, 3079358544u, 1046671487u, 0, EXPM1F_TOLERANCE, 0},
+{2011, 3119858470u, 3079358544u, 3119854711u, 0, EXPM1F_TOLERANCE, 0},
+{2012, 3349432725u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{2013, 912423027u, 3079358544u, 912423052u, 0, EXPM1F_TOLERANCE, 0},
+{2014, 3228795133u, 3079358544u, 3212463322u, 0, EXPM1F_TOLERANCE, 0},
+{2015, 3194674746u, 3079358544u, 3193037091u, 0, EXPM1F_TOLERANCE, 0},
+{2016, 3296784303u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{2017, 965402291u, 3079358544u, 965403496u, 0, EXPM1F_TOLERANCE, 0},
+{2018, 3388153589u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{2019, 1133410485u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{2020, 3136790322u, 3079358544u, 3136775003u, 0, EXPM1F_TOLERANCE, 0},
+{2021, 3369970587u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{2022, 1270451568u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{2023, 989498922u, 3079358544u, 989514626u, 0, EXPM1F_TOLERANCE, 0},
+{2024, 1280215674u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{2025, 1171873518u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{2026, 3298258100u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{2027, 3415208824u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{2028, 1001897182u, 3079358544u, 1001931005u, 0, EXPM1F_TOLERANCE, 0},
+{2029, 3152777939u, 3079358544u, 3152722577u, 0, EXPM1F_TOLERANCE, 0},
+{2030, 985903305u, 3079358544u, 985912883u, 0, EXPM1F_TOLERANCE, 0},
+{2031, 3357328848u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{2032, 982612185u, 3079358544u, 982617477u, 0, EXPM1F_TOLERANCE, 0},
+{2033, 3267868136u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{2034, 3319048157u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{2035, 1144755661u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{2036, 898467286u, 3079358544u, 898467291u, 0, EXPM1F_TOLERANCE, 0},
+{2037, 3301461672u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{2038, 3364525678u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{2039, 931441127u, 3079358544u, 931441196u, 0, EXPM1F_TOLERANCE, 0},
+{2040, 3146660041u, 3079358544u, 3146639843u, 0, EXPM1F_TOLERANCE, 0},
+{2041, 3467121799u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{2042, 1151257041u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{2043, 3097873255u, 3079358544u, 3097872826u, 0, EXPM1F_TOLERANCE, 0},
+{2044, 3130670309u, 3079358544u, 3130664364u, 0, EXPM1F_TOLERANCE, 0},
+{2045, 1017573824u, 3079358544u, 1017686067u, 0, EXPM1F_TOLERANCE, 0},
+{2046, 1258369714u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{2047, 1216602683u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{2048, 3297265739u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{2049, 1071940738u, 3079358544u, 1084146490u, 0, EXPM1F_TOLERANCE, 0},
+{2050, 922601356u, 3079358544u, 922601419u, 0, EXPM1F_TOLERANCE, 0},
+{2051, 3462285635u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{2052, 3357177805u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{2053, 3049120080u, 3079358544u, 3049120071u, 0, EXPM1F_TOLERANCE, 0},
+{2054, 1153863660u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{2055, 3034243695u, 3079358544u, 3034243692u, 0, EXPM1F_TOLERANCE, 0},
+{2056, 1249365132u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{2057, 3046215730u, 3079358544u, 3046215725u, 0, EXPM1F_TOLERANCE, 0},
+{2058, 3047251716u, 3079358544u, 3047251710u, 0, EXPM1F_TOLERANCE, 0},
+{2059, 3131219358u, 3079358544u, 3131212750u, 0, EXPM1F_TOLERANCE, 0},
+{2060, 3222096285u, 3079358544u, 3210992003u, 0, EXPM1F_TOLERANCE, 0},
+{2061, 1297708818u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{2062, 3345532722u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{2063, 3418753236u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{2064, 1277417964u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{2065, 987577257u, 3079358544u, 987589500u, 0, EXPM1F_TOLERANCE, 0},
+{2066, 3161606610u, 3079358544u, 3161489779u, 0, EXPM1F_TOLERANCE, 0},
+{2067, 888030585u, 3079358544u, 888030588u, 0, EXPM1F_TOLERANCE, 0},
+{2068, 1043442869u, 3079358544u, 1044514105u, 0, EXPM1F_TOLERANCE, 0},
+{2069, 3320923228u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{2070, 1337400405u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{2071, 3400348640u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{2072, 1250249095u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{2073, 3284411233u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{2074, 3020883322u, 3079358544u, 3020883321u, 0, EXPM1F_TOLERANCE, 0},
+{2075, 1215968622u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{2076, 3202319550u, 3079358544u, 3199540720u, 0, EXPM1F_TOLERANCE, 0},
+{2077, 3061638260u, 3079358544u, 3061638229u, 0, EXPM1F_TOLERANCE, 0},
+{2078, 1025404104u, 3079358544u, 1025607506u, 0, EXPM1F_TOLERANCE, 0},
+{2079, 3138086437u, 3079358544u, 3138076728u, 0, EXPM1F_TOLERANCE, 0},
+{2080, 3091024506u, 3079358544u, 3091024226u, 0, EXPM1F_TOLERANCE, 0},
+{2081, 3362748242u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{2082, 3099671635u, 3079358544u, 3099671052u, 0, EXPM1F_TOLERANCE, 0},
+{2083, 3068014841u, 3079358544u, 3068014793u, 0, EXPM1F_TOLERANCE, 0},
+{2084, 1252237719u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{2085, 3327895594u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{2086, 3082454432u, 3079358544u, 3082454296u, 0, EXPM1F_TOLERANCE, 0},
+{2087, 3396161504u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{2088, 1099710167u, 3079358544u, 1276946230u, 0, EXPM1F_TOLERANCE, 0},
+{2089, 1157186482u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{2090, 1282110851u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{2091, 3477008113u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{2092, 3292127294u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{2093, 1123357102u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{2094, 1106837025u, 3079358544u, 1441744913u, 0, EXPM1F_TOLERANCE, 0},
+{2095, 1049949008u, 3079358544u, 1051517247u, 0, EXPM1F_TOLERANCE, 0},
+{2096, 1253017688u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{2097, 1108543194u, 3079358544u, 1510117963u, 0, EXPM1F_TOLERANCE, 0},
+{2098, 3087985411u, 3079358544u, 3087985251u, 0, EXPM1F_TOLERANCE, 0},
+{2099, 3163283126u, 3079358544u, 3163205315u, 0, EXPM1F_TOLERANCE, 0},
+{2100, 1160162706u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{2101, 3305715025u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{2102, 1266928623u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{2103, 3025340297u, 3079358544u, 3025340296u, 0, EXPM1F_TOLERANCE, 0},
+{2104, 3438080027u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{2105, 3344574751u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{2106, 1152416724u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{2107, 1218239308u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{2108, 3263310567u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{2109, 3041998669u, 3079358544u, 3041998664u, 0, EXPM1F_TOLERANCE, 0},
+{2110, 1000313118u, 3079358544u, 1000338621u, 0, EXPM1F_TOLERANCE, 0},
+{2111, 972485427u, 3079358544u, 972489239u, 0, EXPM1F_TOLERANCE, 0},
+{2112, 3290264612u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{2113, 3222106584u, 3079358544u, 3210996528u, 0, EXPM1F_TOLERANCE, 0},
+{2114, 1278946388u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{2115, 947914771u, 3079358544u, 947915027u, 0, EXPM1F_TOLERANCE, 0},
+{2116, 3167730654u, 3079358544u, 3167559490u, 0, EXPM1F_TOLERANCE, 0},
+{2117, 1098530298u, 3079358544u, 1253914864u, 0, EXPM1F_TOLERANCE, 0},
+{2118, 3232726036u, 3079358544u, 3212767186u, 0, EXPM1F_TOLERANCE, 0},
+{2119, 1297190916u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{2120, 1277649137u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{2121, 3203377685u, 3079358544u, 3200213876u, 0, EXPM1F_TOLERANCE, 0},
+{2122, 3090306474u, 3079358544u, 3090306226u, 0, EXPM1F_TOLERANCE, 0},
+{2123, 3244032016u, 3079358544u, 3212836846u, 0, EXPM1F_TOLERANCE, 0},
+{2124, 3033122376u, 3079358544u, 3033122374u, 0, EXPM1F_TOLERANCE, 0},
+{2125, 1096155623u, 3079358544u, 1226652252u, 0, EXPM1F_TOLERANCE, 0},
+{2126, 873151908u, 3079358544u, 873151909u, 0, EXPM1F_TOLERANCE, 0},
+{2127, 3238729605u, 3079358544u, 3212834050u, 0, EXPM1F_TOLERANCE, 0},
+{2128, 3317196817u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{2129, 3374748510u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{2130, 3345634950u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{2131, 3189860276u, 3079358544u, 3189068752u, 0, EXPM1F_TOLERANCE, 0},
+{2132, 887311687u, 3079358544u, 887311690u, 0, EXPM1F_TOLERANCE, 0},
+{2133, 3396917283u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{2134, 3317032737u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{2135, 1200051436u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{2136, 3105291012u, 3079358544u, 3105290300u, 0, EXPM1F_TOLERANCE, 0},
+{2137, 1306520561u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{2138, 1314936356u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{2139, 3475052219u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{2140, 3085636260u, 3079358544u, 3085636044u, 0, EXPM1F_TOLERANCE, 0},
+{2141, 3393227708u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{2142, 3182540197u, 3079358544u, 3182049210u, 0, EXPM1F_TOLERANCE, 0},
+{2143, 3349005404u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{2144, 3154720153u, 3079358544u, 3154682605u, 0, EXPM1F_TOLERANCE, 0},
+{2145, 1262863321u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{2146, 882902102u, 3079358544u, 882902104u, 0, EXPM1F_TOLERANCE, 0},
+{2147, 1053387478u, 3079358544u, 1056360663u, 0, EXPM1F_TOLERANCE, 0},
+{2148, 3387653691u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{2149, 3136364836u, 3079358544u, 3136350309u, 0, EXPM1F_TOLERANCE, 0},
+{2150, 1338680611u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{2151, 1112891928u, 3079358544u, 1710836650u, 0, EXPM1F_TOLERANCE, 0},
+{2152, 893449284u, 3079358544u, 893449289u, 0, EXPM1F_TOLERANCE, 0},
+{2153, 892311459u, 3079358544u, 892311463u, 0, EXPM1F_TOLERANCE, 0},
+{2154, 3105373037u, 3079358544u, 3105372313u, 0, EXPM1F_TOLERANCE, 0},
+{2155, 1190105283u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{2156, 1011225926u, 3079358544u, 1011304717u, 0, EXPM1F_TOLERANCE, 0},
+{2157, 1043025031u, 3079358544u, 1044018642u, 0, EXPM1F_TOLERANCE, 0},
+{2158, 3410531037u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{2159, 3125834184u, 3079358544u, 3125828754u, 0, EXPM1F_TOLERANCE, 0},
+{2160, 902318189u, 3079358544u, 902318199u, 0, EXPM1F_TOLERANCE, 0},
+{2161, 3213624815u, 3079358544u, 3207218218u, 0, EXPM1F_TOLERANCE, 0},
+{2162, 1120888322u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{2163, 1315217243u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{2164, 3137758475u, 3079358544u, 3137749450u, 0, EXPM1F_TOLERANCE, 0},
+{2165, 1040617590u, 3079358544u, 1041223269u, 0, EXPM1F_TOLERANCE, 0},
+{2166, 955384253u, 3079358544u, 955385168u, 0, EXPM1F_TOLERANCE, 0},
+{2167, 3061417900u, 3079358544u, 3061417870u, 0, EXPM1F_TOLERANCE, 0},
+{2168, 904255535u, 3079358544u, 904255548u, 0, EXPM1F_TOLERANCE, 0},
+{2169, 1022984119u, 3079358544u, 1023235665u, 0, EXPM1F_TOLERANCE, 0},
+{2170, 997362368u, 3079358544u, 997391818u, 0, EXPM1F_TOLERANCE, 0},
+{2171, 900933520u, 3079358544u, 900933528u, 0, EXPM1F_TOLERANCE, 0},
+{2172, 1168623062u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{2173, 878737490u, 3079358544u, 878737492u, 0, EXPM1F_TOLERANCE, 0},
+{2174, 1039827284u, 3079358544u, 1040530471u, 0, EXPM1F_TOLERANCE, 0},
+{2175, 1021564080u, 3079358544u, 1021773646u, 0, EXPM1F_TOLERANCE, 0},
+{2176, 3458669745u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{2177, 3327516316u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{2178, 1040711112u, 3079358544u, 1041330000u, 0, EXPM1F_TOLERANCE, 0},
+{2179, 1134528351u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{2180, 3039884464u, 3079358544u, 3039884460u, 0, EXPM1F_TOLERANCE, 0},
+{2181, 3414352838u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{2182, 1133689539u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{2183, 3455688478u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{2184, 1137634874u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{2185, 3415502662u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{2186, 954999730u, 3079358544u, 955000601u, 0, EXPM1F_TOLERANCE, 0},
+{2187, 1066157309u, 3079358544u, 1073672539u, 0, EXPM1F_TOLERANCE, 0},
+{2188, 3436353675u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{2189, 940437609u, 3079358544u, 940437766u, 0, EXPM1F_TOLERANCE, 0},
+{2190, 3108347547u, 3079358544u, 3108346327u, 0, EXPM1F_TOLERANCE, 0},
+{2191, 3064200154u, 3079358544u, 3064200128u, 0, EXPM1F_TOLERANCE, 0},
+{2192, 1023889593u, 3079358544u, 1024037701u, 0, EXPM1F_TOLERANCE, 0},
+{2193, 3272661536u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{2194, 1170245333u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{2195, 1219052056u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{2196, 3318983619u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{2197, 3372118621u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{2198, 3146190320u, 3079358544u, 3146172105u, 0, EXPM1F_TOLERANCE, 0},
+{2199, 1299683827u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{2200, 3190796331u, 3079358544u, 3189862754u, 0, EXPM1F_TOLERANCE, 0},
+{2201, 3086068902u, 3079358544u, 3086068674u, 0, EXPM1F_TOLERANCE, 0},
+{2202, 3064155399u, 3079358544u, 3064155373u, 0, EXPM1F_TOLERANCE, 0},
+{2203, 3040314717u, 3079358544u, 3040314713u, 0, EXPM1F_TOLERANCE, 0},
+{2204, 3257224022u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{2205, 1229268598u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{2206, 3184078812u, 3079358544u, 3183451889u, 0, EXPM1F_TOLERANCE, 0},
+{2207, 1086717248u, 3079358544u, 1139981179u, 0, EXPM1F_TOLERANCE, 0},
+{2208, 3434884607u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{2209, 3464955606u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{2210, 1025278524u, 3079358544u, 1025477004u, 0, EXPM1F_TOLERANCE, 0},
+{2211, 1242829722u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{2212, 3075149137u, 3079358544u, 3075149056u, 0, EXPM1F_TOLERANCE, 0},
+{2213, 1200927971u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{2214, 3326858092u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{2215, 1246019790u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{2216, 3184801644u, 3079358544u, 3184105328u, 0, EXPM1F_TOLERANCE, 0},
+{2217, 1136052740u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{2218, 1069009211u, 3079358544u, 1078788101u, 0, EXPM1F_TOLERANCE, 0},
+{2219, 1015670780u, 3079358544u, 1015747281u, 0, EXPM1F_TOLERANCE, 0},
+{2220, 1012543234u, 3079358544u, 1012638866u, 0, EXPM1F_TOLERANCE, 0},
+{2221, 3316611992u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{2222, 1087942795u, 3079358544u, 1146743424u, 0, EXPM1F_TOLERANCE, 0},
+{2223, 3426365713u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{2224, 3066654389u, 3079358544u, 3066654349u, 0, EXPM1F_TOLERANCE, 0},
+{2225, 3295326432u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{2226, 3318835308u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{2227, 3283555717u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{2228, 3381255420u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{2229, 3040485181u, 3079358544u, 3040485177u, 0, EXPM1F_TOLERANCE, 0},
+{2230, 3388772093u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{2231, 954670189u, 3079358544u, 954671024u, 0, EXPM1F_TOLERANCE, 0},
+{2232, 1319200415u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{2233, 1279324488u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{2234, 3217795424u, 3079358544u, 3209419343u, 0, EXPM1F_TOLERANCE, 0},
+{2235, 3455131757u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{2236, 1246947517u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{2237, 3396723577u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{2238, 3433761025u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{2239, 3201187455u, 3079358544u, 3198796615u, 0, EXPM1F_TOLERANCE, 0},
+{2240, 1173247961u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{2241, 3037297123u, 3079358544u, 3037297121u, 0, EXPM1F_TOLERANCE, 0},
+{2242, 3248534678u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{2243, 3083019343u, 3079358544u, 3083019194u, 0, EXPM1F_TOLERANCE, 0},
+{2244, 3042018375u, 3079358544u, 3042018370u, 0, EXPM1F_TOLERANCE, 0},
+{2245, 1082862511u, 3079358544u, 1117311128u, 0, EXPM1F_TOLERANCE, 0},
+{2246, 3157626955u, 3079358544u, 3157561267u, 0, EXPM1F_TOLERANCE, 0},
+{2247, 1341821683u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{2248, 881101379u, 3079358544u, 881101380u, 0, EXPM1F_TOLERANCE, 0},
+{2249, 1079061705u, 3079358544u, 1103766846u, 0, EXPM1F_TOLERANCE, 0},
+{2250, 3182695954u, 3079358544u, 3182191938u, 0, EXPM1F_TOLERANCE, 0},
+{2251, 1105291533u, 3079358544u, 1405670241u, 0, EXPM1F_TOLERANCE, 0},
+{2252, 1016023520u, 3079358544u, 1016106127u, 0, EXPM1F_TOLERANCE, 0},
+{2253, 3370691006u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{2254, 1156767169u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{2255, 3077020499u, 3079358544u, 3077020394u, 0, EXPM1F_TOLERANCE, 0},
+{2256, 1104284039u, 3079358544u, 1382754095u, 0, EXPM1F_TOLERANCE, 0},
+{2257, 3335212901u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{2258, 1093697541u, 3079358544u, 1198607884u, 0, EXPM1F_TOLERANCE, 0},
+{2259, 3266691185u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{2260, 3179003144u, 3079358544u, 3178506395u, 0, EXPM1F_TOLERANCE, 0},
+{2261, 1094115255u, 3079358544u, 1202959080u, 0, EXPM1F_TOLERANCE, 0},
+{2262, 3424086808u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{2263, 3353608773u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{2264, 973664327u, 3079358544u, 973666671u, 0, EXPM1F_TOLERANCE, 0},
+{2265, 882878091u, 3079358544u, 882878093u, 0, EXPM1F_TOLERANCE, 0},
+{2266, 1098662266u, 3079358544u, 1255578035u, 0, EXPM1F_TOLERANCE, 0},
+{2267, 927582555u, 3079358544u, 927582635u, 0, EXPM1F_TOLERANCE, 0},
+{2268, 3111440310u, 3079358544u, 3111438437u, 0, EXPM1F_TOLERANCE, 0},
+{2269, 3476083859u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{2270, 3038754840u, 3079358544u, 3038754837u, 0, EXPM1F_TOLERANCE, 0},
+{2271, 979878744u, 3079358544u, 979885460u, 0, EXPM1F_TOLERANCE, 0},
+{2272, 3464546616u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{2273, 1002542205u, 3079358544u, 1002579752u, 0, EXPM1F_TOLERANCE, 0},
+{2274, 3443552129u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{2275, 1287620154u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{2276, 946058434u, 3079358544u, 946058839u, 0, EXPM1F_TOLERANCE, 0},
+{2277, 3073260205u, 3079358544u, 3073260146u, 0, EXPM1F_TOLERANCE, 0},
+{2278, 1245702957u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{2279, 989655126u, 3079358544u, 989671131u, 0, EXPM1F_TOLERANCE, 0},
+{2280, 1002715618u, 3079358544u, 1002754200u, 0, EXPM1F_TOLERANCE, 0},
+{2281, 3087802274u, 3079358544u, 3087802121u, 0, EXPM1F_TOLERANCE, 0},
+{2282, 1000863905u, 3079358544u, 1000892168u, 0, EXPM1F_TOLERANCE, 0},
+{2283, 3415763001u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{2284, 3283471961u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{2285, 3311210827u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{2286, 3026311911u, 3079358544u, 3026311909u, 0, EXPM1F_TOLERANCE, 0},
+{2287, 1198307901u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{2288, 1288901567u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{2289, 922255363u, 3079358544u, 922255423u, 0, EXPM1F_TOLERANCE, 0},
+{2290, 1113104661u, 3079358544u, 1720471412u, 0, EXPM1F_TOLERANCE, 0},
+{2291, 1136714348u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{2292, 948856035u, 3079358544u, 948856352u, 0, EXPM1F_TOLERANCE, 0},
+{2293, 1062512367u, 3079358544u, 1067826688u, 0, EXPM1F_TOLERANCE, 0},
+{2294, 3486907092u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{2295, 1162027071u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{2296, 1034561811u, 3079358544u, 1035038186u, 0, EXPM1F_TOLERANCE, 0},
+{2297, 3271615417u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{2298, 1042014529u, 3079358544u, 1042833086u, 0, EXPM1F_TOLERANCE, 0},
+{2299, 1177157787u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{2300, 3196144817u, 3079358544u, 3194259351u, 0, EXPM1F_TOLERANCE, 0},
+{2301, 3432084552u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{2302, 1309658335u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{2303, 1226494979u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{2304, 3100289712u, 3079358544u, 3100289070u, 0, EXPM1F_TOLERANCE, 0},
+{2305, 3375507013u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{2306, 3460699001u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{2307, 3079231719u, 3079358544u, 3079231645u, 0, EXPM1F_TOLERANCE, 0},
+{2308, 3093951884u, 3079358544u, 3093951456u, 0, EXPM1F_TOLERANCE, 0},
+{2309, 3468023178u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{2310, 1204196034u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{2311, 3459877411u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{2312, 909696559u, 3079358544u, 909696576u, 0, EXPM1F_TOLERANCE, 0},
+{2313, 1161439847u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{2314, 908663107u, 3079358544u, 908663121u, 0, EXPM1F_TOLERANCE, 0},
+{2315, 1055319316u, 3079358544u, 1058136138u, 0, EXPM1F_TOLERANCE, 0},
+{2316, 1084378658u, 3079358544u, 1126072255u, 0, EXPM1F_TOLERANCE, 0},
+{2317, 3053887750u, 3079358544u, 3053887741u, 0, EXPM1F_TOLERANCE, 0},
+{2318, 3022828828u, 3079358544u, 3022828827u, 0, EXPM1F_TOLERANCE, 0},
+{2319, 1226473697u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{2320, 1123114742u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{2321, 1258114435u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{2322, 3468040845u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{2323, 1178825761u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{2324, 3059266302u, 3079358544u, 3059266279u, 0, EXPM1F_TOLERANCE, 0},
+{2325, 3223384012u, 3079358544u, 3211479716u, 0, EXPM1F_TOLERANCE, 0},
+{2326, 1019964626u, 3079358544u, 1020131532u, 0, EXPM1F_TOLERANCE, 0},
+{2327, 3445262427u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{2328, 1125653081u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{2329, 3337652712u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{2330, 1184753508u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{2331, 996404791u, 3079358544u, 996430797u, 0, EXPM1F_TOLERANCE, 0},
+{2332, 1188439315u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{2333, 906557513u, 3079358544u, 906557522u, 0, EXPM1F_TOLERANCE, 0},
+{2334, 916831283u, 3079358544u, 916831310u, 0, EXPM1F_TOLERANCE, 0},
+{2335, 996786317u, 3079358544u, 996813670u, 0, EXPM1F_TOLERANCE, 0},
+{2336, 3461635065u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{2337, 1188167943u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{2338, 3036502395u, 3079358544u, 3036502391u, 0, EXPM1F_TOLERANCE, 0},
+{2339, 891257783u, 3079358544u, 891257786u, 0, EXPM1F_TOLERANCE, 0},
+{2340, 3290079438u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{2341, 3350690327u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{2342, 1102061604u, 3079358544u, 1331236523u, 0, EXPM1F_TOLERANCE, 0},
+{2343, 1282351521u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{2344, 3458861065u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{2345, 3095256878u, 3079358544u, 3095256374u, 0, EXPM1F_TOLERANCE, 0},
+{2346, 3163373610u, 3079358544u, 3163294260u, 0, EXPM1F_TOLERANCE, 0},
+{2347, 3228793330u, 3079358544u, 3212463162u, 0, EXPM1F_TOLERANCE, 0},
+{2348, 3422194733u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{2349, 3083885296u, 3079358544u, 3083885126u, 0, EXPM1F_TOLERANCE, 0},
+{2350, 1261940623u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{2351, 3400603081u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{2352, 1219411812u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{2353, 3094833770u, 3079358544u, 3094833292u, 0, EXPM1F_TOLERANCE, 0},
+{2354, 3139250800u, 3079358544u, 3139238459u, 0, EXPM1F_TOLERANCE, 0},
+{2355, 886201503u, 3079358544u, 886201506u, 0, EXPM1F_TOLERANCE, 0},
+{2356, 3297366026u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{2357, 1218488455u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{2358, 3040358923u, 3079358544u, 3040358919u, 0, EXPM1F_TOLERANCE, 0},
+{2359, 1283938137u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{2360, 3182551696u, 3079358544u, 3182059752u, 0, EXPM1F_TOLERANCE, 0},
+{2361, 1317098613u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{2362, 3116209179u, 3079358544u, 3116206933u, 0, EXPM1F_TOLERANCE, 0},
+{2363, 3431703657u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{2364, 3239728775u, 3079358544u, 3212835779u, 0, EXPM1F_TOLERANCE, 0},
+{2365, 3207141672u, 3079358544u, 3203892183u, 0, EXPM1F_TOLERANCE, 0},
+{2366, 3154378805u, 3079358544u, 3154344050u, 0, EXPM1F_TOLERANCE, 0},
+{2367, 3069658155u, 3079358544u, 3069658095u, 0, EXPM1F_TOLERANCE, 0},
+{2368, 3313160088u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{2369, 3207056527u, 3079358544u, 3203803993u, 0, EXPM1F_TOLERANCE, 0},
+{2370, 1284174954u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{2371, 3156081645u, 3079358544u, 3156031887u, 0, EXPM1F_TOLERANCE, 0},
+{2372, 1063693032u, 3079358544u, 1069230225u, 0, EXPM1F_TOLERANCE, 0},
+{2373, 3036026175u, 3079358544u, 3036026171u, 0, EXPM1F_TOLERANCE, 0},
+{2374, 1102631663u, 3079358544u, 1344337477u, 0, EXPM1F_TOLERANCE, 0},
+{2375, 968803479u, 3079358544u, 968805754u, 0, EXPM1F_TOLERANCE, 0},
+{2376, 3273080388u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{2377, 1172529774u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{2378, 1306695905u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{2379, 1003649752u, 3079358544u, 1003694149u, 0, EXPM1F_TOLERANCE, 0},
+{2380, 1078478376u, 3079358544u, 1101978697u, 0, EXPM1F_TOLERANCE, 0},
+{2381, 3158855023u, 3079358544u, 3158775107u, 0, EXPM1F_TOLERANCE, 0},
+{2382, 1165177679u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{2383, 3403009513u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{2384, 952348506u, 3079358544u, 952349104u, 0, EXPM1F_TOLERANCE, 0},
+{2385, 1222777442u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{2386, 1325324763u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{2387, 3363524213u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{2388, 1158950321u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{2389, 903129873u, 3079358544u, 903129884u, 0, EXPM1F_TOLERANCE, 0},
+{2390, 3078339944u, 3079358544u, 3078339820u, 0, EXPM1F_TOLERANCE, 0},
+{2391, 1208345407u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{2392, 1258634105u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{2393, 1248478509u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{2394, 1153863988u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{2395, 1235620969u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{2396, 1097120930u, 3079358544u, 1237672369u, 0, EXPM1F_TOLERANCE, 0},
+{2397, 3469778622u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{2398, 1147712200u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{2399, 1124721745u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{2400, 3261744304u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{2401, 1064922416u, 3079358544u, 1070800536u, 0, EXPM1F_TOLERANCE, 0},
+{2402, 3303160152u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{2403, 1315090496u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{2404, 3230403187u, 3079358544u, 3212625939u, 0, EXPM1F_TOLERANCE, 0},
+{2405, 1335399673u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{2406, 1072458508u, 3079358544u, 1084942451u, 0, EXPM1F_TOLERANCE, 0},
+{2407, 3303015249u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{2408, 3252139741u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{2409, 3468519966u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{2410, 1006231203u, 3079358544u, 1006293797u, 0, EXPM1F_TOLERANCE, 0},
+{2411, 951554138u, 3079358544u, 951554665u, 0, EXPM1F_TOLERANCE, 0},
+{2412, 942046828u, 3079358544u, 942047045u, 0, EXPM1F_TOLERANCE, 0},
+{2413, 3319723279u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{2414, 3255104167u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{2415, 1155477903u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{2416, 3273889176u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{2417, 3237813668u, 3079358544u, 3212830705u, 0, EXPM1F_TOLERANCE, 0},
+{2418, 1228207362u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{2419, 975349337u, 3079358544u, 975352645u, 0, EXPM1F_TOLERANCE, 0},
+{2420, 1290175785u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{2421, 981908840u, 3079358544u, 981913380u, 0, EXPM1F_TOLERANCE, 0},
+{2422, 941187647u, 3079358544u, 941187831u, 0, EXPM1F_TOLERANCE, 0},
+{2423, 1214223128u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{2424, 3422922584u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{2425, 1315857601u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{2426, 3453226030u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{2427, 1078359574u, 3079358544u, 1101644019u, 0, EXPM1F_TOLERANCE, 0},
+{2428, 1029557624u, 3079358544u, 1029958397u, 0, EXPM1F_TOLERANCE, 0},
+{2429, 1207675424u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{2430, 1028355074u, 3079358544u, 1028691771u, 0, EXPM1F_TOLERANCE, 0},
+{2431, 3119299090u, 3079358544u, 3119295588u, 0, EXPM1F_TOLERANCE, 0},
+{2432, 1248421894u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{2433, 3353251994u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{2434, 876926659u, 3079358544u, 876926660u, 0, EXPM1F_TOLERANCE, 0},
+{2435, 1076752219u, 3079358544u, 1096963550u, 0, EXPM1F_TOLERANCE, 0},
+{2436, 3388531942u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{2437, 1273395082u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{2438, 3385588183u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{2439, 3192315328u, 3079358544u, 3191127896u, 0, EXPM1F_TOLERANCE, 0},
+{2440, 3441804648u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{2441, 3392827417u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{2442, 1161241793u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{2443, 3034494183u, 3079358544u, 3034494180u, 0, EXPM1F_TOLERANCE, 0},
+{2444, 1171318485u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{2445, 3047748143u, 3079358544u, 3047748136u, 0, EXPM1F_TOLERANCE, 0},
+{2446, 1001216371u, 3079358544u, 1001246474u, 0, EXPM1F_TOLERANCE, 0},
+{2447, 912515889u, 3079358544u, 912515914u, 0, EXPM1F_TOLERANCE, 0},
+{2448, 3391452505u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{2449, 3249603369u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{2450, 1220264047u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{2451, 3169816394u, 3079358544u, 3169589060u, 0, EXPM1F_TOLERANCE, 0},
+{2452, 3098997418u, 3079358544u, 3098996895u, 0, EXPM1F_TOLERANCE, 0},
+{2453, 3282212423u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{2454, 3352293320u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{2455, 3296358441u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{2456, 1197828352u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{2457, 3340510371u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{2458, 1127109339u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{2459, 909467381u, 3079358544u, 909467397u, 0, EXPM1F_TOLERANCE, 0},
+{2460, 1200599955u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{2461, 962230977u, 3079358544u, 962232469u, 0, EXPM1F_TOLERANCE, 0},
+{2462, 3192887808u, 3079358544u, 3191597321u, 0, EXPM1F_TOLERANCE, 0},
+{2463, 3237183876u, 3079358544u, 3212828548u, 0, EXPM1F_TOLERANCE, 0},
+{2464, 939285924u, 3079358544u, 939286173u, 0, EXPM1F_TOLERANCE, 0},
+{2465, 944050180u, 3079358544u, 944050483u, 0, EXPM1F_TOLERANCE, 0},
+{2466, 3058135703u, 3079358544u, 3058135684u, 0, EXPM1F_TOLERANCE, 0},
+{2467, 3480592662u, 3079358544u, 3212836864u, 0, EXPM1F_TOLERANCE, 0},
+{2468, 3061939312u, 3079358544u, 3061939296u, 0, EXPM1F_TOLERANCE, 0},
+{2469, 1003299981u, 3079358544u, 1003342153u, 0, EXPM1F_TOLERANCE, 0},
+{2470, 1155775526u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0},
+{2471, 1234491880u, 3079358544u, 2139095040u, 0, EXPM1F_TOLERANCE, 0}
+
+// AUTOMATICALLY GENERATED VECTORS STOP
+
+};
+
+#endif // CYGONCE_LIBM_EXPM1F_H multiple inclusion protection
+
+// EOF expm1f.h
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/fabs.c b/ecos/packages/language/c/libm/current/tests/vectors/fabs.c
new file mode 100644
index 0000000..ef6c197
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/fabs.c
@@ -0,0 +1,115 @@
+//===========================================================================
+//
+// fabs.c
+//
+// Test of fabs() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// Declarations for test system:
+//
+// TESTCASE_TYPE=CYG_TEST_MODULE
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include <cyg/infra/testcase.h> // Test infrastructure
+#include <math.h> // Header for this package
+#include <sys/ieeefp.h> // Cyg_libm_ieee_double_shape_type
+#include "vectors/vector_support.h"// extra support for math tests
+
+#include "vectors/fabs.h"
+
+// FUNCTIONS
+
+static void
+test( CYG_ADDRWORD data )
+{
+ cyg_ucount32 vec_size;
+ cyg_bool ret;
+
+ vec_size = sizeof(fabs_vec) / sizeof(Cyg_libm_test_double_vec_t);
+ ret = doTestVec( (CYG_ADDRWORD) &fabs, CYG_LIBM_TEST_VEC_DOUBLE,
+ CYG_LIBM_TEST_VEC_NONE, CYG_LIBM_TEST_VEC_DOUBLE,
+ &fabs_vec[0], vec_size );
+
+ if (ret==true)
+ {
+ CYG_TEST_PASS("fabs() is stable");
+ } // if
+ else
+ {
+ CYG_TEST_FAIL("fabs() failed tests");
+ } // else
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for Math "
+ "library fabs() function");
+} // test()
+
+
+int
+main(int argc, char *argv[])
+{
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for Math library "
+ "fabs() function");
+
+ START_TEST( test );
+
+ CYG_TEST_PASS_FINISH("Testing is not applicable to this configuration");
+
+} // main()
+
+
+// EOF fabs.c
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/fabs.h b/ecos/packages/language/c/libm/current/tests/vectors/fabs.h
new file mode 100644
index 0000000..4abdf2d
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/fabs.h
@@ -0,0 +1,1079 @@
+#ifndef CYGONCE_LIBM_FABS_H
+#define CYGONCE_LIBM_FABS_H
+//===========================================================================
+//
+// fabs.h
+//
+// Test vectors for testing of fabs() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage: #include "vectors/fabs.h"
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include "vectors/vector_support.h"// extra support for math tests
+
+#define FABS_TOLERANCE 1.0E-04
+
+static const Cyg_libm_test_double_vec_t fabs_vec[] = {
+
+// AUTOMATICALLY GENERATED VECTORS START
+
+{ 1, 1077999148u, 2506787616u, 1090024059u, 3619148316u, 1077999148u, 2506787616u, 0, FABS_TOLERANCE, 0},
+{ 2, 3218153654u, 3176730980u, 1051524793u, 2993920299u, 1070670006u, 3176730980u, 0, FABS_TOLERANCE, 0},
+{ 3, 3239659803u, 2725707538u, 3232101343u, 2346810316u, 1092176155u, 2725707538u, 0, FABS_TOLERANCE, 0},
+{ 4, 1092554362u, 2088062470u, 3201242716u, 420891118u, 1092554362u, 2088062470u, 0, FABS_TOLERANCE, 0},
+{ 5, 3221200677u, 2636405208u, 1100049309u, 471635570u, 1073717029u, 2636405208u, 0, FABS_TOLERANCE, 0},
+{ 6, 1089363191u, 1746012320u, 1054478713u, 3333988501u, 1089363191u, 1746012320u, 0, FABS_TOLERANCE, 0},
+{ 7, 1047953160u, 183014794u, 3202039382u, 2016785810u, 1047953160u, 183014794u, 0, FABS_TOLERANCE, 0},
+{ 8, 3213486034u, 2688957927u, 1046089230u, 2709029994u, 1066002386u, 2688957927u, 0, FABS_TOLERANCE, 0},
+{ 9, 1058795730u, 624574473u, 1045840574u, 3473266330u, 1058795730u, 624574473u, 0, FABS_TOLERANCE, 0},
+{ 10, 3204919842u, 1605286142u, 1068931671u, 4233776869u, 1057436194u, 1605286142u, 0, FABS_TOLERANCE, 0},
+{ 11, 1060343410u, 1857607719u, 3222889559u, 3417070006u, 1060343410u, 1857607719u, 0, FABS_TOLERANCE, 0},
+{ 12, 1103599987u, 3981151660u, 1088899021u, 1332651746u, 1103599987u, 3981151660u, 0, FABS_TOLERANCE, 0},
+{ 13, 1085298022u, 3824988054u, 1066856791u, 2070129652u, 1085298022u, 3824988054u, 0, FABS_TOLERANCE, 0},
+{ 14, 3207559790u, 1372884064u, 1080833116u, 3229926662u, 1060076142u, 1372884064u, 0, FABS_TOLERANCE, 0},
+{ 15, 1093826501u, 3217805330u, 3191644264u, 2014578707u, 1093826501u, 3217805330u, 0, FABS_TOLERANCE, 0},
+{ 16, 1102287487u, 265058758u, 3239903247u, 1630600647u, 1102287487u, 265058758u, 0, FABS_TOLERANCE, 0},
+{ 17, 1071124229u, 1946677669u, 3198462609u, 926009897u, 1071124229u, 1946677669u, 0, FABS_TOLERANCE, 0},
+{ 18, 1072130299u, 2271884183u, 3203741999u, 2118617783u, 1072130299u, 2271884183u, 0, FABS_TOLERANCE, 0},
+{ 19, 3194849109u, 213658772u, 3249401130u, 314151656u, 1047365461u, 213658772u, 0, FABS_TOLERANCE, 0},
+{ 20, 3254112288u, 1564829925u, 3197817016u, 497230814u, 1106628640u, 1564829925u, 0, FABS_TOLERANCE, 0},
+{ 21, 3216262634u, 2075329122u, 3231746400u, 169900577u, 1068778986u, 2075329122u, 0, FABS_TOLERANCE, 0},
+{ 22, 1049848642u, 541549344u, 1096608669u, 3119070100u, 1049848642u, 541549344u, 0, FABS_TOLERANCE, 0},
+{ 23, 1085427055u, 567496114u, 1045286891u, 1969998540u, 1085427055u, 567496114u, 0, FABS_TOLERANCE, 0},
+{ 24, 1060548195u, 1299369769u, 1049342524u, 4167404066u, 1060548195u, 1299369769u, 0, FABS_TOLERANCE, 0},
+{ 25, 3208865645u, 3348930841u, 1078472138u, 358457347u, 1061381997u, 3348930841u, 0, FABS_TOLERANCE, 0},
+{ 26, 1071069297u, 2192461366u, 1099527247u, 3184735642u, 1071069297u, 2192461366u, 0, FABS_TOLERANCE, 0},
+{ 27, 1052861772u, 331696577u, 3189610016u, 793242270u, 1052861772u, 331696577u, 0, FABS_TOLERANCE, 0},
+{ 28, 3252528934u, 2322696981u, 1083791358u, 3020766674u, 1105045286u, 2322696981u, 0, FABS_TOLERANCE, 0},
+{ 29, 1044902177u, 252085215u, 3214426435u, 4139068910u, 1044902177u, 252085215u, 0, FABS_TOLERANCE, 0},
+{ 30, 3222505725u, 105589263u, 1056316170u, 261630827u, 1075022077u, 105589263u, 0, FABS_TOLERANCE, 0},
+{ 31, 1107213408u, 428765703u, 3251828686u, 2009972239u, 1107213408u, 428765703u, 0, FABS_TOLERANCE, 0},
+{ 32, 1098568019u, 3517376586u, 3240257920u, 3304487302u, 1098568019u, 3517376586u, 0, FABS_TOLERANCE, 0},
+{ 33, 3233537912u, 237004814u, 3237899261u, 3364008659u, 1086054264u, 237004814u, 0, FABS_TOLERANCE, 0},
+{ 34, 3195247552u, 472004928u, 3226869477u, 1186387580u, 1047763904u, 472004928u, 0, FABS_TOLERANCE, 0},
+{ 35, 1054226850u, 4085763910u, 1106394906u, 2684738273u, 1054226850u, 4085763910u, 0, FABS_TOLERANCE, 0},
+{ 36, 1057053639u, 2055490142u, 3231581370u, 3879040079u, 1057053639u, 2055490142u, 0, FABS_TOLERANCE, 0},
+{ 37, 3188976647u, 3725731239u, 1061652681u, 591292963u, 1041492999u, 3725731239u, 0, FABS_TOLERANCE, 0},
+{ 38, 3225014981u, 1147041027u, 3215417793u, 624695933u, 1077531333u, 1147041027u, 0, FABS_TOLERANCE, 0},
+{ 39, 3206052774u, 705725219u, 3238067573u, 1116238321u, 1058569126u, 705725219u, 0, FABS_TOLERANCE, 0},
+{ 40, 3207367088u, 7287411u, 1045917232u, 116067742u, 1059883440u, 7287411u, 0, FABS_TOLERANCE, 0},
+{ 41, 3240055222u, 3604989074u, 1066381836u, 545298780u, 1092571574u, 3604989074u, 0, FABS_TOLERANCE, 0},
+{ 42, 3219080936u, 1681476121u, 1060345752u, 3553822398u, 1071597288u, 1681476121u, 0, FABS_TOLERANCE, 0},
+{ 43, 1102831658u, 3410480388u, 1052460275u, 1660607230u, 1102831658u, 3410480388u, 0, FABS_TOLERANCE, 0},
+{ 44, 1089216869u, 1494984673u, 3196647153u, 287894723u, 1089216869u, 1494984673u, 0, FABS_TOLERANCE, 0},
+{ 45, 1054885127u, 644548665u, 1081948134u, 2442134629u, 1054885127u, 644548665u, 0, FABS_TOLERANCE, 0},
+{ 46, 1087554095u, 2312530895u, 3221584595u, 3379665576u, 1087554095u, 2312530895u, 0, FABS_TOLERANCE, 0},
+{ 47, 1096085375u, 3018463866u, 1086226574u, 404012923u, 1096085375u, 3018463866u, 0, FABS_TOLERANCE, 0},
+{ 48, 1064733299u, 1710279345u, 3251401196u, 3528946000u, 1064733299u, 1710279345u, 0, FABS_TOLERANCE, 0},
+{ 49, 1061536351u, 2164450219u, 1083520023u, 3312018966u, 1061536351u, 2164450219u, 0, FABS_TOLERANCE, 0},
+{ 50, 1057248676u, 2648986431u, 1050330591u, 1474376550u, 1057248676u, 2648986431u, 0, FABS_TOLERANCE, 0},
+{ 51, 3194422028u, 1839068700u, 1077406406u, 3013052171u, 1046938380u, 1839068700u, 0, FABS_TOLERANCE, 0},
+{ 52, 1046493630u, 772102380u, 3220729740u, 4219039958u, 1046493630u, 772102380u, 0, FABS_TOLERANCE, 0},
+{ 53, 3229472221u, 3058618779u, 1046304788u, 3338676024u, 1081988573u, 3058618779u, 0, FABS_TOLERANCE, 0},
+{ 54, 1051172137u, 506286854u, 1094907481u, 2217000199u, 1051172137u, 506286854u, 0, FABS_TOLERANCE, 0},
+{ 55, 1082428310u, 1147428263u, 1065432625u, 3034786717u, 1082428310u, 1147428263u, 0, FABS_TOLERANCE, 0},
+{ 56, 1082016752u, 2844125311u, 1082985198u, 2561492677u, 1082016752u, 2844125311u, 0, FABS_TOLERANCE, 0},
+{ 57, 3211536916u, 704542600u, 3222902057u, 2762779203u, 1064053268u, 704542600u, 0, FABS_TOLERANCE, 0},
+{ 58, 3199680614u, 184131949u, 3249723525u, 1667366082u, 1052196966u, 184131949u, 0, FABS_TOLERANCE, 0},
+{ 59, 3223609598u, 3904224140u, 1067056698u, 2942159914u, 1076125950u, 3904224140u, 0, FABS_TOLERANCE, 0},
+{ 60, 1100636863u, 426114282u, 3209056785u, 1083606355u, 1100636863u, 426114282u, 0, FABS_TOLERANCE, 0},
+{ 61, 1106165945u, 3774123863u, 1106787580u, 2722107965u, 1106165945u, 3774123863u, 0, FABS_TOLERANCE, 0},
+{ 62, 1088005092u, 1377734762u, 1104232051u, 2377063483u, 1088005092u, 1377734762u, 0, FABS_TOLERANCE, 0},
+{ 63, 1069380559u, 1029739074u, 1105467109u, 3062201018u, 1069380559u, 1029739074u, 0, FABS_TOLERANCE, 0},
+{ 64, 3234741597u, 773857656u, 3214251949u, 335833884u, 1087257949u, 773857656u, 0, FABS_TOLERANCE, 0},
+{ 65, 3203224610u, 1473865960u, 1103073830u, 4000427507u, 1055740962u, 1473865960u, 0, FABS_TOLERANCE, 0},
+{ 66, 1103185231u, 4242092620u, 1067009473u, 14539161u, 1103185231u, 4242092620u, 0, FABS_TOLERANCE, 0},
+{ 67, 3192516074u, 1732245037u, 1101371955u, 1533536108u, 1045032426u, 1732245037u, 0, FABS_TOLERANCE, 0},
+{ 68, 3249153995u, 1833841275u, 1099430098u, 4144145552u, 1101670347u, 1833841275u, 0, FABS_TOLERANCE, 0},
+{ 69, 3244270463u, 935007012u, 3188865420u, 604442938u, 1096786815u, 935007012u, 0, FABS_TOLERANCE, 0},
+{ 70, 3206903253u, 2211464602u, 1046255144u, 1635910526u, 1059419605u, 2211464602u, 0, FABS_TOLERANCE, 0},
+{ 71, 1077871417u, 2549219008u, 3231633258u, 3733639385u, 1077871417u, 2549219008u, 0, FABS_TOLERANCE, 0},
+{ 72, 1082095089u, 1819374372u, 3202219056u, 2617077637u, 1082095089u, 1819374372u, 0, FABS_TOLERANCE, 0},
+{ 73, 1094345280u, 546465680u, 1048653554u, 532401530u, 1094345280u, 546465680u, 0, FABS_TOLERANCE, 0},
+{ 74, 1044571091u, 2759019783u, 3221570188u, 3554409630u, 1044571091u, 2759019783u, 0, FABS_TOLERANCE, 0},
+{ 75, 3212931282u, 2527221960u, 1099107978u, 2696971136u, 1065447634u, 2527221960u, 0, FABS_TOLERANCE, 0},
+{ 76, 1097158000u, 173134582u, 1087299442u, 2877794600u, 1097158000u, 173134582u, 0, FABS_TOLERANCE, 0},
+{ 77, 1086400474u, 547642046u, 3197285510u, 3521286127u, 1086400474u, 547642046u, 0, FABS_TOLERANCE, 0},
+{ 78, 1074860702u, 1231582831u, 1090971734u, 1653446832u, 1074860702u, 1231582831u, 0, FABS_TOLERANCE, 0},
+{ 79, 1061342535u, 3762182190u, 3252967851u, 2615360375u, 1061342535u, 3762182190u, 0, FABS_TOLERANCE, 0},
+{ 80, 3200834423u, 2588067350u, 3206610957u, 3551059728u, 1053350775u, 2588067350u, 0, FABS_TOLERANCE, 0},
+{ 81, 3206978856u, 845263327u, 1073415902u, 1749010288u, 1059495208u, 845263327u, 0, FABS_TOLERANCE, 0},
+{ 82, 3205576370u, 3092685191u, 3190678390u, 2872219490u, 1058092722u, 3092685191u, 0, FABS_TOLERANCE, 0},
+{ 83, 3218315055u, 4107255722u, 3205337291u, 3069068345u, 1070831407u, 4107255722u, 0, FABS_TOLERANCE, 0},
+{ 84, 3243990857u, 2294867524u, 3216653996u, 2860384670u, 1096507209u, 2294867524u, 0, FABS_TOLERANCE, 0},
+{ 85, 3193326350u, 2265437201u, 3240198679u, 1234948614u, 1045842702u, 2265437201u, 0, FABS_TOLERANCE, 0},
+{ 86, 3216359929u, 1186945904u, 3251167793u, 1896750851u, 1068876281u, 1186945904u, 0, FABS_TOLERANCE, 0},
+{ 87, 1081575478u, 3686084548u, 1079286273u, 3309277689u, 1081575478u, 3686084548u, 0, FABS_TOLERANCE, 0},
+{ 88, 3223476240u, 3006860614u, 3231412671u, 2504194724u, 1075992592u, 3006860614u, 0, FABS_TOLERANCE, 0},
+{ 89, 3236149260u, 1948717780u, 1048317852u, 3791803982u, 1088665612u, 1948717780u, 0, FABS_TOLERANCE, 0},
+{ 90, 1064345015u, 4272034420u, 3192982124u, 1526175922u, 1064345015u, 4272034420u, 0, FABS_TOLERANCE, 0},
+{ 91, 3245817826u, 4108948538u, 1104691287u, 640541190u, 1098334178u, 4108948538u, 0, FABS_TOLERANCE, 0},
+{ 92, 3207257417u, 3259274853u, 1082507103u, 3677038020u, 1059773769u, 3259274853u, 0, FABS_TOLERANCE, 0},
+{ 93, 1083132498u, 3781708548u, 1096584871u, 1207386447u, 1083132498u, 3781708548u, 0, FABS_TOLERANCE, 0},
+{ 94, 3188695272u, 3011191657u, 1103798670u, 1096124830u, 1041211624u, 3011191657u, 0, FABS_TOLERANCE, 0},
+{ 95, 1063235023u, 2540404725u, 3240157452u, 4122845725u, 1063235023u, 2540404725u, 0, FABS_TOLERANCE, 0},
+{ 96, 1083643710u, 311336721u, 3214382367u, 4212533768u, 1083643710u, 311336721u, 0, FABS_TOLERANCE, 0},
+{ 97, 1051139427u, 1769686293u, 3240200923u, 3538602249u, 1051139427u, 1769686293u, 0, FABS_TOLERANCE, 0},
+{ 98, 1078227549u, 508056696u, 1103793878u, 776520138u, 1078227549u, 508056696u, 0, FABS_TOLERANCE, 0},
+{ 99, 1102910577u, 4064962760u, 1077424413u, 819766631u, 1102910577u, 4064962760u, 0, FABS_TOLERANCE, 0},
+{ 100, 1074178362u, 2112385259u, 3227593179u, 1187058516u, 1074178362u, 2112385259u, 0, FABS_TOLERANCE, 0},
+{ 101, 1082295059u, 2514398118u, 1076579751u, 870169764u, 1082295059u, 2514398118u, 0, FABS_TOLERANCE, 0},
+{ 102, 3246851392u, 1190259653u, 1069112254u, 3417249840u, 1099367744u, 1190259653u, 0, FABS_TOLERANCE, 0},
+{ 103, 3193663083u, 3467757357u, 3215075200u, 2168175352u, 1046179435u, 3467757357u, 0, FABS_TOLERANCE, 0},
+{ 104, 3239643135u, 1508888184u, 1060430241u, 3524949092u, 1092159487u, 1508888184u, 0, FABS_TOLERANCE, 0},
+{ 105, 3197412883u, 166402802u, 3237198975u, 3572369260u, 1049929235u, 166402802u, 0, FABS_TOLERANCE, 0},
+{ 106, 1081866822u, 2441536203u, 3202753937u, 3658194573u, 1081866822u, 2441536203u, 0, FABS_TOLERANCE, 0},
+{ 107, 1062392908u, 2479742828u, 1062342831u, 4214154303u, 1062392908u, 2479742828u, 0, FABS_TOLERANCE, 0},
+{ 108, 1082396794u, 426896765u, 1066474375u, 2201754442u, 1082396794u, 426896765u, 0, FABS_TOLERANCE, 0},
+{ 109, 3195629021u, 2055773734u, 3239267288u, 291396537u, 1048145373u, 2055773734u, 0, FABS_TOLERANCE, 0},
+{ 110, 3236968033u, 874125203u, 3210508124u, 4091098764u, 1089484385u, 874125203u, 0, FABS_TOLERANCE, 0},
+{ 111, 1065716026u, 120488169u, 3241241441u, 1985269424u, 1065716026u, 120488169u, 0, FABS_TOLERANCE, 0},
+{ 112, 3206539410u, 2243036871u, 3243941101u, 740033495u, 1059055762u, 2243036871u, 0, FABS_TOLERANCE, 0},
+{ 113, 3209424906u, 1176656356u, 1074261978u, 3588756231u, 1061941258u, 1176656356u, 0, FABS_TOLERANCE, 0},
+{ 114, 3252816791u, 3037249392u, 1061635587u, 1173102190u, 1105333143u, 3037249392u, 0, FABS_TOLERANCE, 0},
+{ 115, 3237209581u, 2882725208u, 1071440059u, 69225090u, 1089725933u, 2882725208u, 0, FABS_TOLERANCE, 0},
+{ 116, 3212663474u, 272319256u, 1072073912u, 2493997123u, 1065179826u, 272319256u, 0, FABS_TOLERANCE, 0},
+{ 117, 1057720186u, 188610379u, 3232757923u, 2209647371u, 1057720186u, 188610379u, 0, FABS_TOLERANCE, 0},
+{ 118, 3236758517u, 1990439193u, 1078073146u, 622849962u, 1089274869u, 1990439193u, 0, FABS_TOLERANCE, 0},
+{ 119, 1057135741u, 756052458u, 1081649113u, 2247475162u, 1057135741u, 756052458u, 0, FABS_TOLERANCE, 0},
+{ 120, 1061623064u, 3878055211u, 3222407050u, 2979438623u, 1061623064u, 3878055211u, 0, FABS_TOLERANCE, 0},
+{ 121, 3195290997u, 2676398686u, 1105124431u, 3631096636u, 1047807349u, 2676398686u, 0, FABS_TOLERANCE, 0},
+{ 122, 1065079390u, 1697791764u, 3198136112u, 2299842819u, 1065079390u, 1697791764u, 0, FABS_TOLERANCE, 0},
+{ 123, 1078084768u, 1931502677u, 3215264397u, 3016456382u, 1078084768u, 1931502677u, 0, FABS_TOLERANCE, 0},
+{ 124, 1072253426u, 343404215u, 1061072607u, 4266232536u, 1072253426u, 343404215u, 0, FABS_TOLERANCE, 0},
+{ 125, 3241230836u, 4140316002u, 1082896196u, 868256971u, 1093747188u, 4140316002u, 0, FABS_TOLERANCE, 0},
+{ 126, 1075422810u, 1864139509u, 3187675097u, 3084482407u, 1075422810u, 1864139509u, 0, FABS_TOLERANCE, 0},
+{ 127, 3220191323u, 2427162817u, 3234748208u, 2715105792u, 1072707675u, 2427162817u, 0, FABS_TOLERANCE, 0},
+{ 128, 1064600512u, 3943389284u, 1046724025u, 3626825684u, 1064600512u, 3943389284u, 0, FABS_TOLERANCE, 0},
+{ 129, 1045423002u, 967350972u, 1093012318u, 448002663u, 1045423002u, 967350972u, 0, FABS_TOLERANCE, 0},
+{ 130, 3251845859u, 105058217u, 1069733884u, 171786224u, 1104362211u, 105058217u, 0, FABS_TOLERANCE, 0},
+{ 131, 3189614508u, 2863482262u, 3204997271u, 877784425u, 1042130860u, 2863482262u, 0, FABS_TOLERANCE, 0},
+{ 132, 3202629313u, 2801782962u, 3213604117u, 762347195u, 1055145665u, 2801782962u, 0, FABS_TOLERANCE, 0},
+{ 133, 3233486727u, 2317950339u, 3246333414u, 2135700283u, 1086003079u, 2317950339u, 0, FABS_TOLERANCE, 0},
+{ 134, 1056516397u, 4171919805u, 1082858682u, 2180920863u, 1056516397u, 4171919805u, 0, FABS_TOLERANCE, 0},
+{ 135, 3220149084u, 1918836931u, 1083603224u, 3137821660u, 1072665436u, 1918836931u, 0, FABS_TOLERANCE, 0},
+{ 136, 1103902874u, 3456203663u, 3235600523u, 2335688936u, 1103902874u, 3456203663u, 0, FABS_TOLERANCE, 0},
+{ 137, 1042279322u, 4170235262u, 1051824459u, 521583737u, 1042279322u, 4170235262u, 0, FABS_TOLERANCE, 0},
+{ 138, 1081348303u, 1296623194u, 3250673860u, 2442872540u, 1081348303u, 1296623194u, 0, FABS_TOLERANCE, 0},
+{ 139, 1061684277u, 289979405u, 1049514449u, 3865737145u, 1061684277u, 289979405u, 0, FABS_TOLERANCE, 0},
+{ 140, 1075298944u, 3699090239u, 1054539840u, 3259249360u, 1075298944u, 3699090239u, 0, FABS_TOLERANCE, 0},
+{ 141, 1096418100u, 1619819023u, 1045993352u, 1022642459u, 1096418100u, 1619819023u, 0, FABS_TOLERANCE, 0},
+{ 142, 1081433004u, 19455098u, 3229182089u, 2096003654u, 1081433004u, 19455098u, 0, FABS_TOLERANCE, 0},
+{ 143, 1076297936u, 3803689997u, 1071630912u, 2263729518u, 1076297936u, 3803689997u, 0, FABS_TOLERANCE, 0},
+{ 144, 1101357261u, 2816837387u, 1063422305u, 2597606398u, 1101357261u, 2816837387u, 0, FABS_TOLERANCE, 0},
+{ 145, 1069100169u, 3680967506u, 1040201163u, 179224723u, 1069100169u, 3680967506u, 0, FABS_TOLERANCE, 0},
+{ 146, 3188629767u, 978126928u, 1101553990u, 4047893399u, 1041146119u, 978126928u, 0, FABS_TOLERANCE, 0},
+{ 147, 3222322045u, 4059818629u, 1042678728u, 3640293589u, 1074838397u, 4059818629u, 0, FABS_TOLERANCE, 0},
+{ 148, 3248464040u, 3383497159u, 1070002807u, 1527313008u, 1100980392u, 3383497159u, 0, FABS_TOLERANCE, 0},
+{ 149, 3202707679u, 2599946514u, 1104170406u, 2738675352u, 1055224031u, 2599946514u, 0, FABS_TOLERANCE, 0},
+{ 150, 1105232623u, 3616571377u, 1060859316u, 1130603218u, 1105232623u, 3616571377u, 0, FABS_TOLERANCE, 0},
+{ 151, 1076028796u, 3859211180u, 1067940450u, 1744531824u, 1076028796u, 3859211180u, 0, FABS_TOLERANCE, 0},
+{ 152, 1042831340u, 1958025850u, 3236511256u, 2472176453u, 1042831340u, 1958025850u, 0, FABS_TOLERANCE, 0},
+{ 153, 3233107089u, 182132862u, 3250520938u, 3924356991u, 1085623441u, 182132862u, 0, FABS_TOLERANCE, 0},
+{ 154, 3230501884u, 35632886u, 3209806504u, 1453402523u, 1083018236u, 35632886u, 0, FABS_TOLERANCE, 0},
+{ 155, 1083522102u, 743225214u, 3202890678u, 142917400u, 1083522102u, 743225214u, 0, FABS_TOLERANCE, 0},
+{ 156, 1080684976u, 1472665012u, 3203138231u, 256588219u, 1080684976u, 1472665012u, 0, FABS_TOLERANCE, 0},
+{ 157, 1094982162u, 1062927000u, 1061134072u, 931677439u, 1094982162u, 1062927000u, 0, FABS_TOLERANCE, 0},
+{ 158, 1058377732u, 2320910576u, 1055663370u, 288059864u, 1058377732u, 2320910576u, 0, FABS_TOLERANCE, 0},
+{ 159, 1078958093u, 1448349062u, 3199478070u, 3454027134u, 1078958093u, 1448349062u, 0, FABS_TOLERANCE, 0},
+{ 160, 3237458798u, 4215445172u, 3196654963u, 2231888973u, 1089975150u, 4215445172u, 0, FABS_TOLERANCE, 0},
+{ 161, 3246632231u, 40413554u, 3232578253u, 983832844u, 1099148583u, 40413554u, 0, FABS_TOLERANCE, 0},
+{ 162, 3223721534u, 3995725873u, 1050082319u, 777231627u, 1076237886u, 3995725873u, 0, FABS_TOLERANCE, 0},
+{ 163, 1040986626u, 672789828u, 3253385962u, 2982787335u, 1040986626u, 672789828u, 0, FABS_TOLERANCE, 0},
+{ 164, 1068390875u, 2075971825u, 1070166500u, 4034633931u, 1068390875u, 2075971825u, 0, FABS_TOLERANCE, 0},
+{ 165, 3210046177u, 1018222907u, 3244621407u, 3090050495u, 1062562529u, 1018222907u, 0, FABS_TOLERANCE, 0},
+{ 166, 1067680885u, 937732557u, 3200798890u, 2557898276u, 1067680885u, 937732557u, 0, FABS_TOLERANCE, 0},
+{ 167, 1078342316u, 130346162u, 3223590310u, 275568693u, 1078342316u, 130346162u, 0, FABS_TOLERANCE, 0},
+{ 168, 1042898869u, 3807416441u, 1075961161u, 3706820266u, 1042898869u, 3807416441u, 0, FABS_TOLERANCE, 0},
+{ 169, 3216099005u, 1710131411u, 1078123323u, 1900790503u, 1068615357u, 1710131411u, 0, FABS_TOLERANCE, 0},
+{ 170, 3238819361u, 3420420033u, 3210844787u, 588423066u, 1091335713u, 3420420033u, 0, FABS_TOLERANCE, 0},
+{ 171, 1049684114u, 1160162008u, 3246307879u, 4265764460u, 1049684114u, 1160162008u, 0, FABS_TOLERANCE, 0},
+{ 172, 1102543434u, 366653268u, 3188814424u, 466059202u, 1102543434u, 366653268u, 0, FABS_TOLERANCE, 0},
+{ 173, 3226627739u, 1325936170u, 3221436876u, 680097612u, 1079144091u, 1325936170u, 0, FABS_TOLERANCE, 0},
+{ 174, 3240391116u, 1827735934u, 3200554324u, 2875599271u, 1092907468u, 1827735934u, 0, FABS_TOLERANCE, 0},
+{ 175, 3191030402u, 3117037091u, 3239246636u, 15838845u, 1043546754u, 3117037091u, 0, FABS_TOLERANCE, 0},
+{ 176, 1051974004u, 749718883u, 3223587064u, 1523766569u, 1051974004u, 749718883u, 0, FABS_TOLERANCE, 0},
+{ 177, 1044833651u, 1966536294u, 3250158026u, 699164258u, 1044833651u, 1966536294u, 0, FABS_TOLERANCE, 0},
+{ 178, 1098048435u, 3759049394u, 1106085272u, 1183789499u, 1098048435u, 3759049394u, 0, FABS_TOLERANCE, 0},
+{ 179, 1081201623u, 1970107747u, 1095245453u, 2308233883u, 1081201623u, 1970107747u, 0, FABS_TOLERANCE, 0},
+{ 180, 1084756444u, 1491017852u, 1041444355u, 1723375725u, 1084756444u, 1491017852u, 0, FABS_TOLERANCE, 0},
+{ 181, 3216630070u, 1141349287u, 1097465301u, 3403438584u, 1069146422u, 1141349287u, 0, FABS_TOLERANCE, 0},
+{ 182, 3230571908u, 1711085243u, 3250239076u, 1377484108u, 1083088260u, 1711085243u, 0, FABS_TOLERANCE, 0},
+{ 183, 1098385019u, 2880275004u, 1084039594u, 1611394950u, 1098385019u, 2880275004u, 0, FABS_TOLERANCE, 0},
+{ 184, 3234221435u, 2626629370u, 1063771493u, 1499080813u, 1086737787u, 2626629370u, 0, FABS_TOLERANCE, 0},
+{ 185, 1055231263u, 3936262414u, 1103919063u, 3175668759u, 1055231263u, 3936262414u, 0, FABS_TOLERANCE, 0},
+{ 186, 3207981719u, 1270950554u, 3194616071u, 3680565379u, 1060498071u, 1270950554u, 0, FABS_TOLERANCE, 0},
+{ 187, 3208148223u, 1066985223u, 3221613219u, 4089383168u, 1060664575u, 1066985223u, 0, FABS_TOLERANCE, 0},
+{ 188, 3217058839u, 4017329311u, 3208334452u, 1667591498u, 1069575191u, 4017329311u, 0, FABS_TOLERANCE, 0},
+{ 189, 1088164157u, 3154656624u, 1061894279u, 3886344038u, 1088164157u, 3154656624u, 0, FABS_TOLERANCE, 0},
+{ 190, 1050652945u, 977586119u, 3209762784u, 953839852u, 1050652945u, 977586119u, 0, FABS_TOLERANCE, 0},
+{ 191, 1104965247u, 143071571u, 3206165386u, 913097445u, 1104965247u, 143071571u, 0, FABS_TOLERANCE, 0},
+{ 192, 3190565456u, 1371169579u, 1057079837u, 2594818628u, 1043081808u, 1371169579u, 0, FABS_TOLERANCE, 0},
+{ 193, 3251793336u, 2259342224u, 3217432469u, 1824221478u, 1104309688u, 2259342224u, 0, FABS_TOLERANCE, 0},
+{ 194, 3246834775u, 1576604497u, 1079368611u, 185078728u, 1099351127u, 1576604497u, 0, FABS_TOLERANCE, 0},
+{ 195, 3221679427u, 444800035u, 3243343143u, 1734989302u, 1074195779u, 444800035u, 0, FABS_TOLERANCE, 0},
+{ 196, 1072748883u, 130452005u, 1041548088u, 2158433515u, 1072748883u, 130452005u, 0, FABS_TOLERANCE, 0},
+{ 197, 3234695968u, 1941318385u, 1045807374u, 792193370u, 1087212320u, 1941318385u, 0, FABS_TOLERANCE, 0},
+{ 198, 3238299666u, 1299392207u, 3212131720u, 3205732280u, 1090816018u, 1299392207u, 0, FABS_TOLERANCE, 0},
+{ 199, 1098698804u, 3035093505u, 1052187689u, 3287702190u, 1098698804u, 3035093505u, 0, FABS_TOLERANCE, 0},
+{ 200, 3246676260u, 2160225215u, 1102624859u, 836655570u, 1099192612u, 2160225215u, 0, FABS_TOLERANCE, 0},
+{ 201, 1096723626u, 3360816360u, 3246176356u, 172860634u, 1096723626u, 3360816360u, 0, FABS_TOLERANCE, 0},
+{ 202, 1070995788u, 146831910u, 1051558014u, 2340722078u, 1070995788u, 146831910u, 0, FABS_TOLERANCE, 0},
+{ 203, 3230416351u, 1603798153u, 3207725532u, 1099413093u, 1082932703u, 1603798153u, 0, FABS_TOLERANCE, 0},
+{ 204, 3246678378u, 2429340443u, 3190303581u, 3223770005u, 1099194730u, 2429340443u, 0, FABS_TOLERANCE, 0},
+{ 205, 1075882959u, 955542166u, 3230415151u, 275583938u, 1075882959u, 955542166u, 0, FABS_TOLERANCE, 0},
+{ 206, 1092971882u, 513397822u, 1090646554u, 2089321329u, 1092971882u, 513397822u, 0, FABS_TOLERANCE, 0},
+{ 207, 3193169876u, 2782073372u, 1046063872u, 4023829068u, 1045686228u, 2782073372u, 0, FABS_TOLERANCE, 0},
+{ 208, 1098564822u, 3242223094u, 3194111199u, 4264674108u, 1098564822u, 3242223094u, 0, FABS_TOLERANCE, 0},
+{ 209, 3238510821u, 3506346169u, 1047020885u, 1742757458u, 1091027173u, 3506346169u, 0, FABS_TOLERANCE, 0},
+{ 210, 3192664477u, 1265459564u, 3193450280u, 3650514880u, 1045180829u, 1265459564u, 0, FABS_TOLERANCE, 0},
+{ 211, 1081755890u, 1525260440u, 3235452527u, 2612331392u, 1081755890u, 1525260440u, 0, FABS_TOLERANCE, 0},
+{ 212, 3248668920u, 1263613754u, 3219096387u, 635677201u, 1101185272u, 1263613754u, 0, FABS_TOLERANCE, 0},
+{ 213, 3206272087u, 4140947288u, 3200792376u, 2013265346u, 1058788439u, 4140947288u, 0, FABS_TOLERANCE, 0},
+{ 214, 3249974392u, 1912759945u, 3237045253u, 1351396825u, 1102490744u, 1912759945u, 0, FABS_TOLERANCE, 0},
+{ 215, 3248205162u, 1001433078u, 3206926643u, 2741676659u, 1100721514u, 1001433078u, 0, FABS_TOLERANCE, 0},
+{ 216, 1080923606u, 1088945233u, 1085095743u, 3986114865u, 1080923606u, 1088945233u, 0, FABS_TOLERANCE, 0},
+{ 217, 3215734057u, 831239754u, 1099828675u, 3071308141u, 1068250409u, 831239754u, 0, FABS_TOLERANCE, 0},
+{ 218, 3225834497u, 3473592372u, 1102759382u, 1309576357u, 1078350849u, 3473592372u, 0, FABS_TOLERANCE, 0},
+{ 219, 3251186706u, 2042340367u, 1091945628u, 2062772374u, 1103703058u, 2042340367u, 0, FABS_TOLERANCE, 0},
+{ 220, 3194765687u, 1840632537u, 1096533424u, 807510337u, 1047282039u, 1840632537u, 0, FABS_TOLERANCE, 0},
+{ 221, 3231451722u, 144814872u, 3212698915u, 2282965697u, 1083968074u, 144814872u, 0, FABS_TOLERANCE, 0},
+{ 222, 1071236430u, 2552499583u, 3229111426u, 1470130815u, 1071236430u, 2552499583u, 0, FABS_TOLERANCE, 0},
+{ 223, 3243093065u, 2858583811u, 1089760910u, 6360994u, 1095609417u, 2858583811u, 0, FABS_TOLERANCE, 0},
+{ 224, 3198264929u, 1614537194u, 1075198900u, 4088705365u, 1050781281u, 1614537194u, 0, FABS_TOLERANCE, 0},
+{ 225, 3250939070u, 3545570051u, 1065221325u, 1629217700u, 1103455422u, 3545570051u, 0, FABS_TOLERANCE, 0},
+{ 226, 1072744324u, 1813392963u, 3235313361u, 3772501596u, 1072744324u, 1813392963u, 0, FABS_TOLERANCE, 0},
+{ 227, 3196802686u, 2406734491u, 1042055360u, 89226663u, 1049319038u, 2406734491u, 0, FABS_TOLERANCE, 0},
+{ 228, 3195751081u, 1618759139u, 3194723421u, 3888234802u, 1048267433u, 1618759139u, 0, FABS_TOLERANCE, 0},
+{ 229, 1055357248u, 3590035633u, 3212424262u, 2892456615u, 1055357248u, 3590035633u, 0, FABS_TOLERANCE, 0},
+{ 230, 3189943060u, 2431246964u, 3241512456u, 183850734u, 1042459412u, 2431246964u, 0, FABS_TOLERANCE, 0},
+{ 231, 1089501101u, 3088319870u, 3211544311u, 862225364u, 1089501101u, 3088319870u, 0, FABS_TOLERANCE, 0},
+{ 232, 3235294664u, 3495352775u, 1058576726u, 596957268u, 1087811016u, 3495352775u, 0, FABS_TOLERANCE, 0},
+{ 233, 1046553348u, 1839214511u, 3205004060u, 1923240983u, 1046553348u, 1839214511u, 0, FABS_TOLERANCE, 0},
+{ 234, 1058073864u, 739619702u, 3223356436u, 2689885273u, 1058073864u, 739619702u, 0, FABS_TOLERANCE, 0},
+{ 235, 3200324971u, 2143376228u, 1098306332u, 3760236188u, 1052841323u, 2143376228u, 0, FABS_TOLERANCE, 0},
+{ 236, 1074621795u, 671680995u, 1091262633u, 2315535361u, 1074621795u, 671680995u, 0, FABS_TOLERANCE, 0},
+{ 237, 3214165989u, 2493598049u, 3194927008u, 1689107592u, 1066682341u, 2493598049u, 0, FABS_TOLERANCE, 0},
+{ 238, 3189989959u, 1578976988u, 1066368383u, 2117279163u, 1042506311u, 1578976988u, 0, FABS_TOLERANCE, 0},
+{ 239, 3222988111u, 3425290087u, 1098487295u, 1263412017u, 1075504463u, 3425290087u, 0, FABS_TOLERANCE, 0},
+{ 240, 3208432764u, 3635396812u, 1070999426u, 3965655689u, 1060949116u, 3635396812u, 0, FABS_TOLERANCE, 0},
+{ 241, 1060196346u, 2183973116u, 1101098363u, 1118613350u, 1060196346u, 2183973116u, 0, FABS_TOLERANCE, 0},
+{ 242, 3221946089u, 199516350u, 1078368488u, 164621458u, 1074462441u, 199516350u, 0, FABS_TOLERANCE, 0},
+{ 243, 3187706018u, 3570940805u, 3230316437u, 3596080877u, 1040222370u, 3570940805u, 0, FABS_TOLERANCE, 0},
+{ 244, 3208209565u, 980880313u, 1079833442u, 884465057u, 1060725917u, 980880313u, 0, FABS_TOLERANCE, 0},
+{ 245, 1099977124u, 2558179220u, 1052873711u, 1233598120u, 1099977124u, 2558179220u, 0, FABS_TOLERANCE, 0},
+{ 246, 1047115221u, 1909994277u, 1085015978u, 2991527452u, 1047115221u, 1909994277u, 0, FABS_TOLERANCE, 0},
+{ 247, 1060855260u, 1680290941u, 1074309900u, 2943870846u, 1060855260u, 1680290941u, 0, FABS_TOLERANCE, 0},
+{ 248, 1059496132u, 1451927357u, 3228615456u, 1502585517u, 1059496132u, 1451927357u, 0, FABS_TOLERANCE, 0},
+{ 249, 3236211951u, 751136990u, 3230392165u, 3493275472u, 1088728303u, 751136990u, 0, FABS_TOLERANCE, 0},
+{ 250, 1098365967u, 1209623292u, 3238056647u, 979495322u, 1098365967u, 1209623292u, 0, FABS_TOLERANCE, 0},
+{ 251, 3250424296u, 1717672108u, 1048120593u, 531240316u, 1102940648u, 1717672108u, 0, FABS_TOLERANCE, 0},
+{ 252, 1054174923u, 3548721654u, 1086112947u, 3391817224u, 1054174923u, 3548721654u, 0, FABS_TOLERANCE, 0},
+{ 253, 1077836851u, 2758195125u, 1100880260u, 2028440924u, 1077836851u, 2758195125u, 0, FABS_TOLERANCE, 0},
+{ 254, 1084223893u, 2750123373u, 3232200256u, 1086294931u, 1084223893u, 2750123373u, 0, FABS_TOLERANCE, 0},
+{ 255, 1043958672u, 2986160931u, 1076097908u, 2540046258u, 1043958672u, 2986160931u, 0, FABS_TOLERANCE, 0},
+{ 256, 3235476602u, 451471221u, 1064816262u, 4187644495u, 1087992954u, 451471221u, 0, FABS_TOLERANCE, 0},
+{ 257, 1099460228u, 2439500162u, 1065280276u, 1979490284u, 1099460228u, 2439500162u, 0, FABS_TOLERANCE, 0},
+{ 258, 1040415832u, 2283342035u, 1078398157u, 1345997553u, 1040415832u, 2283342035u, 0, FABS_TOLERANCE, 0},
+{ 259, 3213249348u, 179066662u, 1103272172u, 1217337578u, 1065765700u, 179066662u, 0, FABS_TOLERANCE, 0},
+{ 260, 3211562377u, 3779303391u, 3210023352u, 3115946280u, 1064078729u, 3779303391u, 0, FABS_TOLERANCE, 0},
+{ 261, 3192989874u, 286247089u, 1085153597u, 713645369u, 1045506226u, 286247089u, 0, FABS_TOLERANCE, 0},
+{ 262, 1093670500u, 1468283899u, 1042831668u, 2022736418u, 1093670500u, 1468283899u, 0, FABS_TOLERANCE, 0},
+{ 263, 1083139105u, 3305564080u, 1065483445u, 482392433u, 1083139105u, 3305564080u, 0, FABS_TOLERANCE, 0},
+{ 264, 3201695807u, 2256346551u, 3222430705u, 2071674991u, 1054212159u, 2256346551u, 0, FABS_TOLERANCE, 0},
+{ 265, 3204024695u, 2295269094u, 1084451053u, 2773103941u, 1056541047u, 2295269094u, 0, FABS_TOLERANCE, 0},
+{ 266, 1078173946u, 1482721827u, 1092243422u, 3125409590u, 1078173946u, 1482721827u, 0, FABS_TOLERANCE, 0},
+{ 267, 3221065973u, 1381740563u, 1071545057u, 2918235653u, 1073582325u, 1381740563u, 0, FABS_TOLERANCE, 0},
+{ 268, 3238715972u, 1105857967u, 3241990046u, 2703723225u, 1091232324u, 1105857967u, 0, FABS_TOLERANCE, 0},
+{ 269, 1043015571u, 174689677u, 1079333374u, 3947057014u, 1043015571u, 174689677u, 0, FABS_TOLERANCE, 0},
+{ 270, 1090461859u, 2023082423u, 3242081486u, 1169047927u, 1090461859u, 2023082423u, 0, FABS_TOLERANCE, 0},
+{ 271, 1064525899u, 3742487766u, 1043425732u, 194972788u, 1064525899u, 3742487766u, 0, FABS_TOLERANCE, 0},
+{ 272, 3213791827u, 2136071361u, 3211529757u, 993675115u, 1066308179u, 2136071361u, 0, FABS_TOLERANCE, 0},
+{ 273, 3213663381u, 210772141u, 3241441539u, 580731413u, 1066179733u, 210772141u, 0, FABS_TOLERANCE, 0},
+{ 274, 1093840413u, 1751560711u, 1074522705u, 180987057u, 1093840413u, 1751560711u, 0, FABS_TOLERANCE, 0},
+{ 275, 1066754591u, 2552236599u, 1088658621u, 2112468655u, 1066754591u, 2552236599u, 0, FABS_TOLERANCE, 0},
+{ 276, 3189290617u, 1578223762u, 3224596567u, 2456166162u, 1041806969u, 1578223762u, 0, FABS_TOLERANCE, 0},
+{ 277, 1058506965u, 2110924310u, 1086207177u, 3161208323u, 1058506965u, 2110924310u, 0, FABS_TOLERANCE, 0},
+{ 278, 3231863394u, 2352173188u, 1079361728u, 4070222179u, 1084379746u, 2352173188u, 0, FABS_TOLERANCE, 0},
+{ 279, 1101012904u, 2481562701u, 1090937016u, 3809489716u, 1101012904u, 2481562701u, 0, FABS_TOLERANCE, 0},
+{ 280, 3197002651u, 330905705u, 1086260896u, 90264431u, 1049519003u, 330905705u, 0, FABS_TOLERANCE, 0},
+{ 281, 1040729961u, 4162008079u, 3194387916u, 759522153u, 1040729961u, 4162008079u, 0, FABS_TOLERANCE, 0},
+{ 282, 1081015037u, 1839697482u, 3216442625u, 2211508949u, 1081015037u, 1839697482u, 0, FABS_TOLERANCE, 0},
+{ 283, 3249807211u, 3736863454u, 1063475914u, 3150741666u, 1102323563u, 3736863454u, 0, FABS_TOLERANCE, 0},
+{ 284, 1060785883u, 4200269406u, 3236646101u, 1061812176u, 1060785883u, 4200269406u, 0, FABS_TOLERANCE, 0},
+{ 285, 1080217979u, 106027290u, 3234978297u, 2245237549u, 1080217979u, 106027290u, 0, FABS_TOLERANCE, 0},
+{ 286, 3246984334u, 2132131375u, 3250483427u, 3449276437u, 1099500686u, 2132131375u, 0, FABS_TOLERANCE, 0},
+{ 287, 1089388778u, 2334440944u, 1105423490u, 4004336184u, 1089388778u, 2334440944u, 0, FABS_TOLERANCE, 0},
+{ 288, 3218772704u, 4090088208u, 1042030013u, 3898658299u, 1071289056u, 4090088208u, 0, FABS_TOLERANCE, 0},
+{ 289, 3207908064u, 2272831437u, 3253082595u, 2639188641u, 1060424416u, 2272831437u, 0, FABS_TOLERANCE, 0},
+{ 290, 1054766684u, 1856594168u, 3189515294u, 4101853676u, 1054766684u, 1856594168u, 0, FABS_TOLERANCE, 0},
+{ 291, 1076012412u, 2211699255u, 3195060344u, 3865018604u, 1076012412u, 2211699255u, 0, FABS_TOLERANCE, 0},
+{ 292, 3242767010u, 996259334u, 3241496889u, 3782673116u, 1095283362u, 996259334u, 0, FABS_TOLERANCE, 0},
+{ 293, 1099130747u, 3840380763u, 1048674041u, 550040067u, 1099130747u, 3840380763u, 0, FABS_TOLERANCE, 0},
+{ 294, 3251419593u, 95874100u, 3237232828u, 2645647822u, 1103935945u, 95874100u, 0, FABS_TOLERANCE, 0},
+{ 295, 1043665640u, 3441419500u, 3252367038u, 876710419u, 1043665640u, 3441419500u, 0, FABS_TOLERANCE, 0},
+{ 296, 3238593552u, 2560836004u, 3199616543u, 1180840586u, 1091109904u, 2560836004u, 0, FABS_TOLERANCE, 0},
+{ 297, 3221602966u, 2218230392u, 3227485787u, 3947214579u, 1074119318u, 2218230392u, 0, FABS_TOLERANCE, 0},
+{ 298, 1079539654u, 1447312532u, 1081476588u, 780366847u, 1079539654u, 1447312532u, 0, FABS_TOLERANCE, 0},
+{ 299, 1072569643u, 2842113832u, 3216156731u, 225159029u, 1072569643u, 2842113832u, 0, FABS_TOLERANCE, 0},
+{ 300, 1098117193u, 1601981129u, 3234628869u, 2236538344u, 1098117193u, 1601981129u, 0, FABS_TOLERANCE, 0},
+{ 301, 1085173524u, 2194185737u, 3242362684u, 87913366u, 1085173524u, 2194185737u, 0, FABS_TOLERANCE, 0},
+{ 302, 3199083880u, 1346862963u, 1077836259u, 3604666660u, 1051600232u, 1346862963u, 0, FABS_TOLERANCE, 0},
+{ 303, 3212255979u, 3115209742u, 1099332326u, 1325101950u, 1064772331u, 3115209742u, 0, FABS_TOLERANCE, 0},
+{ 304, 3224546042u, 3889223100u, 1053247613u, 3371396923u, 1077062394u, 3889223100u, 0, FABS_TOLERANCE, 0},
+{ 305, 3220477868u, 4163120793u, 1075022670u, 1387631215u, 1072994220u, 4163120793u, 0, FABS_TOLERANCE, 0},
+{ 306, 3205481779u, 1532426189u, 1063168268u, 3397022615u, 1057998131u, 1532426189u, 0, FABS_TOLERANCE, 0},
+{ 307, 3201033321u, 89324166u, 1079206060u, 3429424710u, 1053549673u, 89324166u, 0, FABS_TOLERANCE, 0},
+{ 308, 3192325102u, 747591401u, 1072238381u, 2803213904u, 1044841454u, 747591401u, 0, FABS_TOLERANCE, 0},
+{ 309, 1091113780u, 271904221u, 1044258318u, 1858545114u, 1091113780u, 271904221u, 0, FABS_TOLERANCE, 0},
+{ 310, 3228068914u, 314958082u, 3249912496u, 2966213175u, 1080585266u, 314958082u, 0, FABS_TOLERANCE, 0},
+{ 311, 3197179414u, 3119528953u, 3217179014u, 2908718240u, 1049695766u, 3119528953u, 0, FABS_TOLERANCE, 0},
+{ 312, 3242467576u, 2018361566u, 1100926600u, 3985805054u, 1094983928u, 2018361566u, 0, FABS_TOLERANCE, 0},
+{ 313, 1070132580u, 409584884u, 3239758947u, 755795129u, 1070132580u, 409584884u, 0, FABS_TOLERANCE, 0},
+{ 314, 1075772446u, 1819156379u, 3251342302u, 2982669005u, 1075772446u, 1819156379u, 0, FABS_TOLERANCE, 0},
+{ 315, 1101563433u, 2080534280u, 3188254060u, 449171797u, 1101563433u, 2080534280u, 0, FABS_TOLERANCE, 0},
+{ 316, 1095956900u, 168744837u, 3214950009u, 1322217822u, 1095956900u, 168744837u, 0, FABS_TOLERANCE, 0},
+{ 317, 3254226900u, 3250487255u, 1062120700u, 1876195180u, 1106743252u, 3250487255u, 0, FABS_TOLERANCE, 0},
+{ 318, 3226343480u, 1336400247u, 1098057903u, 3314079581u, 1078859832u, 1336400247u, 0, FABS_TOLERANCE, 0},
+{ 319, 3203678820u, 265025555u, 1063854282u, 3779482256u, 1056195172u, 265025555u, 0, FABS_TOLERANCE, 0},
+{ 320, 1067300501u, 887044257u, 1054789618u, 2732056261u, 1067300501u, 887044257u, 0, FABS_TOLERANCE, 0},
+{ 321, 1050106742u, 4027115185u, 3191764868u, 2940199511u, 1050106742u, 4027115185u, 0, FABS_TOLERANCE, 0},
+{ 322, 3202500155u, 2875684421u, 3227459837u, 2251967570u, 1055016507u, 2875684421u, 0, FABS_TOLERANCE, 0},
+{ 323, 1063244412u, 284173546u, 3238823679u, 3557800647u, 1063244412u, 284173546u, 0, FABS_TOLERANCE, 0},
+{ 324, 1101458560u, 3147771266u, 3220110464u, 2933364246u, 1101458560u, 3147771266u, 0, FABS_TOLERANCE, 0},
+{ 325, 1064853160u, 3366183281u, 3234870843u, 537442654u, 1064853160u, 3366183281u, 0, FABS_TOLERANCE, 0},
+{ 326, 3244118788u, 2529029548u, 3249882819u, 3781513577u, 1096635140u, 2529029548u, 0, FABS_TOLERANCE, 0},
+{ 327, 3213436354u, 1080845539u, 3206760016u, 911778687u, 1065952706u, 1080845539u, 0, FABS_TOLERANCE, 0},
+{ 328, 3191951036u, 469586759u, 1091830022u, 3080528840u, 1044467388u, 469586759u, 0, FABS_TOLERANCE, 0},
+{ 329, 1080249104u, 2863108169u, 3225605506u, 2508274250u, 1080249104u, 2863108169u, 0, FABS_TOLERANCE, 0},
+{ 330, 3210826984u, 4080017377u, 3206492941u, 1470284690u, 1063343336u, 4080017377u, 0, FABS_TOLERANCE, 0},
+{ 331, 3207120390u, 3867917386u, 1102054928u, 3504746045u, 1059636742u, 3867917386u, 0, FABS_TOLERANCE, 0},
+{ 332, 1064522279u, 2962134101u, 3244741577u, 3390537350u, 1064522279u, 2962134101u, 0, FABS_TOLERANCE, 0},
+{ 333, 1088201813u, 1702237980u, 1071598971u, 1102587474u, 1088201813u, 1702237980u, 0, FABS_TOLERANCE, 0},
+{ 334, 3202970118u, 2180218657u, 3211592260u, 1206527853u, 1055486470u, 2180218657u, 0, FABS_TOLERANCE, 0},
+{ 335, 3197084744u, 394130786u, 3242511482u, 2437699868u, 1049601096u, 394130786u, 0, FABS_TOLERANCE, 0},
+{ 336, 1044237059u, 849581558u, 3252006507u, 2008614943u, 1044237059u, 849581558u, 0, FABS_TOLERANCE, 0},
+{ 337, 3210140014u, 3128971673u, 3249137531u, 2773583059u, 1062656366u, 3128971673u, 0, FABS_TOLERANCE, 0},
+{ 338, 1085029866u, 590727700u, 3248651761u, 2183878539u, 1085029866u, 590727700u, 0, FABS_TOLERANCE, 0},
+{ 339, 1101098629u, 820687580u, 3208143496u, 1402434664u, 1101098629u, 820687580u, 0, FABS_TOLERANCE, 0},
+{ 340, 3252290835u, 1873709254u, 3245167989u, 44275991u, 1104807187u, 1873709254u, 0, FABS_TOLERANCE, 0},
+{ 341, 3189668753u, 1174874204u, 3208263730u, 2360372288u, 1042185105u, 1174874204u, 0, FABS_TOLERANCE, 0},
+{ 342, 1103854676u, 937573440u, 3208953761u, 211240241u, 1103854676u, 937573440u, 0, FABS_TOLERANCE, 0},
+{ 343, 3243548934u, 2469774991u, 1043117070u, 3380071805u, 1096065286u, 2469774991u, 0, FABS_TOLERANCE, 0},
+{ 344, 1058121042u, 442507560u, 3254252803u, 3257889649u, 1058121042u, 442507560u, 0, FABS_TOLERANCE, 0},
+{ 345, 1068850520u, 1854921625u, 1049810168u, 2729627545u, 1068850520u, 1854921625u, 0, FABS_TOLERANCE, 0},
+{ 346, 3254712629u, 4001809575u, 3240128649u, 278261523u, 1107228981u, 4001809575u, 0, FABS_TOLERANCE, 0},
+{ 347, 1087224694u, 1793907966u, 3238955714u, 398859249u, 1087224694u, 1793907966u, 0, FABS_TOLERANCE, 0},
+{ 348, 3200952547u, 2511916952u, 3219195283u, 1697158299u, 1053468899u, 2511916952u, 0, FABS_TOLERANCE, 0},
+{ 349, 1069985548u, 3230931724u, 3243897690u, 3508781585u, 1069985548u, 3230931724u, 0, FABS_TOLERANCE, 0},
+{ 350, 1103847606u, 1674254897u, 1046547577u, 217148561u, 1103847606u, 1674254897u, 0, FABS_TOLERANCE, 0},
+{ 351, 3211263954u, 3275604304u, 3194840159u, 2991205850u, 1063780306u, 3275604304u, 0, FABS_TOLERANCE, 0},
+{ 352, 3195249375u, 3509997278u, 3248888030u, 3897986511u, 1047765727u, 3509997278u, 0, FABS_TOLERANCE, 0},
+{ 353, 1047182435u, 2156824613u, 1042295665u, 1239257646u, 1047182435u, 2156824613u, 0, FABS_TOLERANCE, 0},
+{ 354, 3213264085u, 1073153314u, 3250031627u, 2567234990u, 1065780437u, 1073153314u, 0, FABS_TOLERANCE, 0},
+{ 355, 3190593412u, 4261696995u, 3197784432u, 323702024u, 1043109764u, 4261696995u, 0, FABS_TOLERANCE, 0},
+{ 356, 3243690997u, 4075177615u, 3202791065u, 1919006082u, 1096207349u, 4075177615u, 0, FABS_TOLERANCE, 0},
+{ 357, 3239270013u, 386429966u, 1086504491u, 3698826164u, 1091786365u, 386429966u, 0, FABS_TOLERANCE, 0},
+{ 358, 1078327190u, 1681986446u, 3194985869u, 3072950140u, 1078327190u, 1681986446u, 0, FABS_TOLERANCE, 0},
+{ 359, 3217311933u, 3719038997u, 1055433962u, 3331415058u, 1069828285u, 3719038997u, 0, FABS_TOLERANCE, 0},
+{ 360, 1060749713u, 2420250111u, 3238002206u, 1928661079u, 1060749713u, 2420250111u, 0, FABS_TOLERANCE, 0},
+{ 361, 1081914210u, 3679866727u, 3227386672u, 1273835792u, 1081914210u, 3679866727u, 0, FABS_TOLERANCE, 0},
+{ 362, 1041622738u, 2682092368u, 3234222284u, 1325425811u, 1041622738u, 2682092368u, 0, FABS_TOLERANCE, 0},
+{ 363, 1056312613u, 4175172697u, 3208346191u, 2130706153u, 1056312613u, 4175172697u, 0, FABS_TOLERANCE, 0},
+{ 364, 1092089624u, 1200784450u, 1083605096u, 1248595607u, 1092089624u, 1200784450u, 0, FABS_TOLERANCE, 0},
+{ 365, 3213890863u, 1897285171u, 3251296075u, 944966123u, 1066407215u, 1897285171u, 0, FABS_TOLERANCE, 0},
+{ 366, 3241371250u, 2270747330u, 3230692631u, 422503284u, 1093887602u, 2270747330u, 0, FABS_TOLERANCE, 0},
+{ 367, 1084120037u, 2857564741u, 1075647403u, 3308906709u, 1084120037u, 2857564741u, 0, FABS_TOLERANCE, 0},
+{ 368, 3203475098u, 1380066948u, 3232612906u, 2613634294u, 1055991450u, 1380066948u, 0, FABS_TOLERANCE, 0},
+{ 369, 1063890856u, 4022784584u, 1060483857u, 3264056381u, 1063890856u, 4022784584u, 0, FABS_TOLERANCE, 0},
+{ 370, 1044637404u, 1778509100u, 3213146285u, 2665833973u, 1044637404u, 1778509100u, 0, FABS_TOLERANCE, 0},
+{ 371, 3216727300u, 1859175955u, 1079949560u, 4258450607u, 1069243652u, 1859175955u, 0, FABS_TOLERANCE, 0},
+{ 372, 1048277388u, 4128020197u, 1076266146u, 4122840980u, 1048277388u, 4128020197u, 0, FABS_TOLERANCE, 0},
+{ 373, 3193183163u, 2454653987u, 3229487005u, 2977478685u, 1045699515u, 2454653987u, 0, FABS_TOLERANCE, 0},
+{ 374, 3253556483u, 1355181872u, 1095308770u, 436846481u, 1106072835u, 1355181872u, 0, FABS_TOLERANCE, 0},
+{ 375, 3246605302u, 2592856453u, 3247825559u, 3195234082u, 1099121654u, 2592856453u, 0, FABS_TOLERANCE, 0},
+{ 376, 3222118023u, 3554670043u, 1091621009u, 3321236467u, 1074634375u, 3554670043u, 0, FABS_TOLERANCE, 0},
+{ 377, 1069012833u, 1936670355u, 1095715713u, 2958468553u, 1069012833u, 1936670355u, 0, FABS_TOLERANCE, 0},
+{ 378, 3192291109u, 2960339502u, 1098808013u, 1044068983u, 1044807461u, 2960339502u, 0, FABS_TOLERANCE, 0},
+{ 379, 3196691185u, 4093388677u, 1095478112u, 1735930261u, 1049207537u, 4093388677u, 0, FABS_TOLERANCE, 0},
+{ 380, 1091040302u, 1807398746u, 3195743135u, 4261616162u, 1091040302u, 1807398746u, 0, FABS_TOLERANCE, 0},
+{ 381, 3209294194u, 3250576797u, 1059002384u, 3043079652u, 1061810546u, 3250576797u, 0, FABS_TOLERANCE, 0},
+{ 382, 1069207109u, 666051428u, 3208765404u, 1912684117u, 1069207109u, 666051428u, 0, FABS_TOLERANCE, 0},
+{ 383, 1103487420u, 1949030179u, 1096388934u, 896459246u, 1103487420u, 1949030179u, 0, FABS_TOLERANCE, 0},
+{ 384, 1054300653u, 622499767u, 1066707637u, 1490260486u, 1054300653u, 622499767u, 0, FABS_TOLERANCE, 0},
+{ 385, 1106688493u, 1490616165u, 3251242436u, 795675736u, 1106688493u, 1490616165u, 0, FABS_TOLERANCE, 0},
+{ 386, 1080943896u, 3662877092u, 3234317146u, 3200513112u, 1080943896u, 3662877092u, 0, FABS_TOLERANCE, 0},
+{ 387, 1084088786u, 1356101968u, 3236536816u, 3062844611u, 1084088786u, 1356101968u, 0, FABS_TOLERANCE, 0},
+{ 388, 3219922640u, 2284484846u, 3219498359u, 3240896015u, 1072438992u, 2284484846u, 0, FABS_TOLERANCE, 0},
+{ 389, 3235759689u, 494503287u, 1092811254u, 142673998u, 1088276041u, 494503287u, 0, FABS_TOLERANCE, 0},
+{ 390, 3252125916u, 3394882641u, 3225306538u, 364852125u, 1104642268u, 3394882641u, 0, FABS_TOLERANCE, 0},
+{ 391, 3225261763u, 193885269u, 1088149839u, 1359805831u, 1077778115u, 193885269u, 0, FABS_TOLERANCE, 0},
+{ 392, 3200484782u, 592580907u, 3199560872u, 3086438952u, 1053001134u, 592580907u, 0, FABS_TOLERANCE, 0},
+{ 393, 1059518664u, 1778008540u, 1049064687u, 73581647u, 1059518664u, 1778008540u, 0, FABS_TOLERANCE, 0},
+{ 394, 3246733598u, 233240285u, 1081923320u, 2710903921u, 1099249950u, 233240285u, 0, FABS_TOLERANCE, 0},
+{ 395, 1069513767u, 3719878805u, 1079866720u, 3615458228u, 1069513767u, 3719878805u, 0, FABS_TOLERANCE, 0},
+{ 396, 3221194724u, 3647632375u, 3247225271u, 3839959621u, 1073711076u, 3647632375u, 0, FABS_TOLERANCE, 0},
+{ 397, 1103401096u, 2232210456u, 3235434773u, 224271737u, 1103401096u, 2232210456u, 0, FABS_TOLERANCE, 0},
+{ 398, 3193003684u, 2134662911u, 3190390590u, 4239009051u, 1045520036u, 2134662911u, 0, FABS_TOLERANCE, 0},
+{ 399, 1080526145u, 2305279897u, 1077668039u, 1854523320u, 1080526145u, 2305279897u, 0, FABS_TOLERANCE, 0},
+{ 400, 3219864259u, 538224650u, 3206153057u, 1379649610u, 1072380611u, 538224650u, 0, FABS_TOLERANCE, 0},
+{ 401, 3196410507u, 3683897920u, 3244167599u, 3647579469u, 1048926859u, 3683897920u, 0, FABS_TOLERANCE, 0},
+{ 402, 1090280933u, 2694093608u, 1042775347u, 598406111u, 1090280933u, 2694093608u, 0, FABS_TOLERANCE, 0},
+{ 403, 3211635392u, 872706833u, 1084802480u, 2200602798u, 1064151744u, 872706833u, 0, FABS_TOLERANCE, 0},
+{ 404, 1042339597u, 904146293u, 1060867322u, 1729685598u, 1042339597u, 904146293u, 0, FABS_TOLERANCE, 0},
+{ 405, 3195694970u, 1894173462u, 3232800651u, 191960416u, 1048211322u, 1894173462u, 0, FABS_TOLERANCE, 0},
+{ 406, 1091225343u, 3521028551u, 1054522089u, 3287274359u, 1091225343u, 3521028551u, 0, FABS_TOLERANCE, 0},
+{ 407, 1095386964u, 959640601u, 3201578263u, 4136915018u, 1095386964u, 959640601u, 0, FABS_TOLERANCE, 0},
+{ 408, 1064005451u, 1553716379u, 1106027987u, 984725765u, 1064005451u, 1553716379u, 0, FABS_TOLERANCE, 0},
+{ 409, 3238832641u, 2287646644u, 3240329321u, 2276183378u, 1091348993u, 2287646644u, 0, FABS_TOLERANCE, 0},
+{ 410, 1068209174u, 3940225170u, 3199544434u, 997572161u, 1068209174u, 3940225170u, 0, FABS_TOLERANCE, 0},
+{ 411, 3212768361u, 36116288u, 3206886566u, 4196602670u, 1065284713u, 36116288u, 0, FABS_TOLERANCE, 0},
+{ 412, 3241695853u, 3550227562u, 3207257983u, 2747744117u, 1094212205u, 3550227562u, 0, FABS_TOLERANCE, 0},
+{ 413, 1104236126u, 507130047u, 1048359321u, 3229888373u, 1104236126u, 507130047u, 0, FABS_TOLERANCE, 0},
+{ 414, 3222996778u, 2210969014u, 1081031001u, 1946786091u, 1075513130u, 2210969014u, 0, FABS_TOLERANCE, 0},
+{ 415, 3236306990u, 4059150589u, 3189759234u, 1177045799u, 1088823342u, 4059150589u, 0, FABS_TOLERANCE, 0},
+{ 416, 1093103612u, 2664812822u, 1050343198u, 2034180320u, 1093103612u, 2664812822u, 0, FABS_TOLERANCE, 0},
+{ 417, 3213779117u, 1175750283u, 3235559706u, 1424491340u, 1066295469u, 1175750283u, 0, FABS_TOLERANCE, 0},
+{ 418, 3213904193u, 1630036121u, 3231972785u, 3195479448u, 1066420545u, 1630036121u, 0, FABS_TOLERANCE, 0},
+{ 419, 1090429875u, 2527029044u, 1046927050u, 4000723255u, 1090429875u, 2527029044u, 0, FABS_TOLERANCE, 0},
+{ 420, 1085208677u, 3335703647u, 3237349676u, 3869440059u, 1085208677u, 3335703647u, 0, FABS_TOLERANCE, 0},
+{ 421, 1091433848u, 3888398377u, 3196041693u, 1290567220u, 1091433848u, 3888398377u, 0, FABS_TOLERANCE, 0},
+{ 422, 1066679070u, 3242451480u, 3248384948u, 707431021u, 1066679070u, 3242451480u, 0, FABS_TOLERANCE, 0},
+{ 423, 1083230509u, 2739665123u, 1060777905u, 1733073225u, 1083230509u, 2739665123u, 0, FABS_TOLERANCE, 0},
+{ 424, 1078517061u, 1297274853u, 3208848704u, 3341639139u, 1078517061u, 1297274853u, 0, FABS_TOLERANCE, 0},
+{ 425, 1046570941u, 2228057309u, 1084318902u, 1317851136u, 1046570941u, 2228057309u, 0, FABS_TOLERANCE, 0},
+{ 426, 1088255327u, 270039934u, 3241414679u, 3063626339u, 1088255327u, 270039934u, 0, FABS_TOLERANCE, 0},
+{ 427, 3219178350u, 83062251u, 3211262173u, 2659016437u, 1071694702u, 83062251u, 0, FABS_TOLERANCE, 0},
+{ 428, 1095743886u, 3833539373u, 3206667189u, 1567476111u, 1095743886u, 3833539373u, 0, FABS_TOLERANCE, 0},
+{ 429, 3205195072u, 2382776852u, 3249232579u, 1546622468u, 1057711424u, 2382776852u, 0, FABS_TOLERANCE, 0},
+{ 430, 1085536439u, 1714300821u, 1104130938u, 4167591598u, 1085536439u, 1714300821u, 0, FABS_TOLERANCE, 0},
+{ 431, 1051092760u, 2798720100u, 1086978789u, 449990704u, 1051092760u, 2798720100u, 0, FABS_TOLERANCE, 0},
+{ 432, 3231198415u, 4039516226u, 3244344107u, 4272932619u, 1083714767u, 4039516226u, 0, FABS_TOLERANCE, 0},
+{ 433, 3222708441u, 1683007544u, 1091105663u, 3805494321u, 1075224793u, 1683007544u, 0, FABS_TOLERANCE, 0},
+{ 434, 3220852948u, 2072627412u, 1094383324u, 3394151662u, 1073369300u, 2072627412u, 0, FABS_TOLERANCE, 0},
+{ 435, 3220570024u, 1120106427u, 3223631624u, 3404608264u, 1073086376u, 1120106427u, 0, FABS_TOLERANCE, 0},
+{ 436, 1097859997u, 559918757u, 3205077053u, 908100198u, 1097859997u, 559918757u, 0, FABS_TOLERANCE, 0},
+{ 437, 1042677918u, 2026673913u, 3244833635u, 2844573214u, 1042677918u, 2026673913u, 0, FABS_TOLERANCE, 0},
+{ 438, 3254567259u, 3946837259u, 3234993796u, 3850406820u, 1107083611u, 3946837259u, 0, FABS_TOLERANCE, 0},
+{ 439, 1057479809u, 3139330994u, 1046133568u, 1539650690u, 1057479809u, 3139330994u, 0, FABS_TOLERANCE, 0},
+{ 440, 3236705500u, 1554593884u, 3228899878u, 2813752562u, 1089221852u, 1554593884u, 0, FABS_TOLERANCE, 0},
+{ 441, 1056505004u, 3804703138u, 1072931071u, 2053677923u, 1056505004u, 3804703138u, 0, FABS_TOLERANCE, 0},
+{ 442, 3244864299u, 289355864u, 1078453818u, 2143066338u, 1097380651u, 289355864u, 0, FABS_TOLERANCE, 0},
+{ 443, 3203939880u, 2157691971u, 1106629150u, 110806409u, 1056456232u, 2157691971u, 0, FABS_TOLERANCE, 0},
+{ 444, 1082157019u, 3570399481u, 1085637605u, 180265334u, 1082157019u, 3570399481u, 0, FABS_TOLERANCE, 0},
+{ 445, 3200980182u, 558779875u, 3202046748u, 2338464653u, 1053496534u, 558779875u, 0, FABS_TOLERANCE, 0},
+{ 446, 1045705464u, 1703969219u, 3229797258u, 1417521063u, 1045705464u, 1703969219u, 0, FABS_TOLERANCE, 0},
+{ 447, 3237782261u, 3917440951u, 1051668894u, 3736066983u, 1090298613u, 3917440951u, 0, FABS_TOLERANCE, 0},
+{ 448, 1064752080u, 3106613409u, 1066627453u, 2735392257u, 1064752080u, 3106613409u, 0, FABS_TOLERANCE, 0},
+{ 449, 1065665372u, 2229777605u, 1065061963u, 2405869925u, 1065665372u, 2229777605u, 0, FABS_TOLERANCE, 0},
+{ 450, 3239463229u, 3967957902u, 1057416138u, 3459188071u, 1091979581u, 3967957902u, 0, FABS_TOLERANCE, 0},
+{ 451, 1068639210u, 3699016825u, 3249713090u, 796144848u, 1068639210u, 3699016825u, 0, FABS_TOLERANCE, 0},
+{ 452, 3228816396u, 3285165564u, 3211948811u, 401510871u, 1081332748u, 3285165564u, 0, FABS_TOLERANCE, 0},
+{ 453, 1094257658u, 634857910u, 3199607513u, 914218057u, 1094257658u, 634857910u, 0, FABS_TOLERANCE, 0},
+{ 454, 1083743336u, 2030735578u, 3233855943u, 965677531u, 1083743336u, 2030735578u, 0, FABS_TOLERANCE, 0},
+{ 455, 1079556815u, 3957229084u, 1051050470u, 3123776651u, 1079556815u, 3957229084u, 0, FABS_TOLERANCE, 0},
+{ 456, 3221863333u, 162122081u, 3239376395u, 108064594u, 1074379685u, 162122081u, 0, FABS_TOLERANCE, 0},
+{ 457, 3237271786u, 869031839u, 3225020876u, 1344301606u, 1089788138u, 869031839u, 0, FABS_TOLERANCE, 0},
+{ 458, 3214433474u, 946696117u, 3231825228u, 1700703647u, 1066949826u, 946696117u, 0, FABS_TOLERANCE, 0},
+{ 459, 1075492875u, 3394168074u, 1076939786u, 1666995668u, 1075492875u, 3394168074u, 0, FABS_TOLERANCE, 0},
+{ 460, 3208774795u, 2488789804u, 3238508333u, 1506943664u, 1061291147u, 2488789804u, 0, FABS_TOLERANCE, 0},
+{ 461, 1072788663u, 3844072288u, 3202592279u, 2630019853u, 1072788663u, 3844072288u, 0, FABS_TOLERANCE, 0},
+{ 462, 3219934542u, 1244307192u, 3191297711u, 2540916692u, 1072450894u, 1244307192u, 0, FABS_TOLERANCE, 0},
+{ 463, 3200062692u, 2871645739u, 3239081581u, 1440249115u, 1052579044u, 2871645739u, 0, FABS_TOLERANCE, 0},
+{ 464, 1068350633u, 1231934926u, 3236746788u, 603977748u, 1068350633u, 1231934926u, 0, FABS_TOLERANCE, 0},
+{ 465, 3195449689u, 2386312545u, 1063169277u, 2715234268u, 1047966041u, 2386312545u, 0, FABS_TOLERANCE, 0},
+{ 466, 1087803418u, 915867083u, 1046790892u, 3347417612u, 1087803418u, 915867083u, 0, FABS_TOLERANCE, 0},
+{ 467, 1105984188u, 3553288373u, 1065698616u, 2906680663u, 1105984188u, 3553288373u, 0, FABS_TOLERANCE, 0},
+{ 468, 1045506226u, 2342364630u, 1051356723u, 4019093203u, 1045506226u, 2342364630u, 0, FABS_TOLERANCE, 0},
+{ 469, 3201169162u, 2911548084u, 1105282515u, 2476735795u, 1053685514u, 2911548084u, 0, FABS_TOLERANCE, 0},
+{ 470, 1050472772u, 1836216409u, 1101062307u, 2519592554u, 1050472772u, 1836216409u, 0, FABS_TOLERANCE, 0},
+{ 471, 1070178161u, 1235369496u, 3222946447u, 668087854u, 1070178161u, 1235369496u, 0, FABS_TOLERANCE, 0},
+{ 472, 3208554596u, 2981820811u, 1059838516u, 2845580478u, 1061070948u, 2981820811u, 0, FABS_TOLERANCE, 0},
+{ 473, 3193931414u, 1565550570u, 3217165795u, 4162017137u, 1046447766u, 1565550570u, 0, FABS_TOLERANCE, 0},
+{ 474, 3237251378u, 2808968027u, 1055630096u, 1782326814u, 1089767730u, 2808968027u, 0, FABS_TOLERANCE, 0},
+{ 475, 1053576974u, 1492622658u, 3216653077u, 3972512122u, 1053576974u, 1492622658u, 0, FABS_TOLERANCE, 0},
+{ 476, 3222171679u, 2722693603u, 3227814791u, 3169731970u, 1074688031u, 2722693603u, 0, FABS_TOLERANCE, 0},
+{ 477, 3217906631u, 899763203u, 3207606001u, 2804747833u, 1070422983u, 899763203u, 0, FABS_TOLERANCE, 0},
+{ 478, 3230670325u, 3789058912u, 3228095081u, 4135937628u, 1083186677u, 3789058912u, 0, FABS_TOLERANCE, 0},
+{ 479, 1060199382u, 1682808307u, 3206960335u, 232877759u, 1060199382u, 1682808307u, 0, FABS_TOLERANCE, 0},
+{ 480, 3242091486u, 2851963139u, 3246852961u, 2590862592u, 1094607838u, 2851963139u, 0, FABS_TOLERANCE, 0},
+{ 481, 1081200406u, 2422232642u, 3234779662u, 290458310u, 1081200406u, 2422232642u, 0, FABS_TOLERANCE, 0},
+{ 482, 3210671078u, 1082582386u, 1075605675u, 2602133689u, 1063187430u, 1082582386u, 0, FABS_TOLERANCE, 0},
+{ 483, 3239818611u, 1789635787u, 1059414278u, 1048286093u, 1092334963u, 1789635787u, 0, FABS_TOLERANCE, 0},
+{ 484, 1098330542u, 231339448u, 1055573265u, 504907415u, 1098330542u, 231339448u, 0, FABS_TOLERANCE, 0},
+{ 485, 1063211461u, 1153251200u, 3204617090u, 1772013857u, 1063211461u, 1153251200u, 0, FABS_TOLERANCE, 0},
+{ 486, 1099551055u, 1082898276u, 3212089272u, 1449080862u, 1099551055u, 1082898276u, 0, FABS_TOLERANCE, 0},
+{ 487, 1086008285u, 3177299045u, 1058862813u, 809400815u, 1086008285u, 3177299045u, 0, FABS_TOLERANCE, 0},
+{ 488, 3230854550u, 1924429710u, 1056464743u, 3349283177u, 1083370902u, 1924429710u, 0, FABS_TOLERANCE, 0},
+{ 489, 3245473391u, 42238036u, 1042379500u, 2113559863u, 1097989743u, 42238036u, 0, FABS_TOLERANCE, 0},
+{ 490, 1064761243u, 3304403230u, 3217556703u, 58952646u, 1064761243u, 3304403230u, 0, FABS_TOLERANCE, 0},
+{ 491, 3212669530u, 1645486982u, 3224301095u, 3636267471u, 1065185882u, 1645486982u, 0, FABS_TOLERANCE, 0},
+{ 492, 1062762009u, 619402181u, 3235208235u, 557360557u, 1062762009u, 619402181u, 0, FABS_TOLERANCE, 0},
+{ 493, 3238238394u, 110029735u, 1046937383u, 984375729u, 1090754746u, 110029735u, 0, FABS_TOLERANCE, 0},
+{ 494, 3189496738u, 4063688092u, 3203235744u, 1049950343u, 1042013090u, 4063688092u, 0, FABS_TOLERANCE, 0},
+{ 495, 1062350619u, 650996069u, 1054971928u, 3953359826u, 1062350619u, 650996069u, 0, FABS_TOLERANCE, 0},
+{ 496, 3227055805u, 66926332u, 1090561839u, 1379780888u, 1079572157u, 66926332u, 0, FABS_TOLERANCE, 0},
+{ 497, 3233453307u, 2803378256u, 1086057989u, 498534626u, 1085969659u, 2803378256u, 0, FABS_TOLERANCE, 0},
+{ 498, 1082618553u, 2846400785u, 1047142525u, 1375153550u, 1082618553u, 2846400785u, 0, FABS_TOLERANCE, 0},
+{ 499, 1044581201u, 2869128958u, 1070972315u, 4246440273u, 1044581201u, 2869128958u, 0, FABS_TOLERANCE, 0},
+{ 500, 1051832506u, 3112381207u, 1044430965u, 3981604561u, 1051832506u, 3112381207u, 0, FABS_TOLERANCE, 0},
+{ 501, 3231254997u, 243303420u, 1093735824u, 1575581926u, 1083771349u, 243303420u, 0, FABS_TOLERANCE, 0},
+{ 502, 3239137997u, 3218865041u, 3204803496u, 3840388050u, 1091654349u, 3218865041u, 0, FABS_TOLERANCE, 0},
+{ 503, 1048415431u, 336846959u, 1052664471u, 3798336786u, 1048415431u, 336846959u, 0, FABS_TOLERANCE, 0},
+{ 504, 1055954236u, 3639240976u, 1081202165u, 1844741676u, 1055954236u, 3639240976u, 0, FABS_TOLERANCE, 0},
+{ 505, 3211904793u, 717293069u, 3211534283u, 582401011u, 1064421145u, 717293069u, 0, FABS_TOLERANCE, 0},
+{ 506, 3251962512u, 3766248610u, 3196520332u, 1174437546u, 1104478864u, 3766248610u, 0, FABS_TOLERANCE, 0},
+{ 507, 1083431226u, 756959182u, 3204099341u, 1581804034u, 1083431226u, 756959182u, 0, FABS_TOLERANCE, 0},
+{ 508, 3205806444u, 3560686300u, 3220980617u, 4277975772u, 1058322796u, 3560686300u, 0, FABS_TOLERANCE, 0},
+{ 509, 3209906076u, 2598148853u, 3217622194u, 3460421008u, 1062422428u, 2598148853u, 0, FABS_TOLERANCE, 0},
+{ 510, 1066720824u, 136600515u, 3209934920u, 3340653128u, 1066720824u, 136600515u, 0, FABS_TOLERANCE, 0},
+{ 511, 1096820310u, 1045480938u, 3251354609u, 4133432965u, 1096820310u, 1045480938u, 0, FABS_TOLERANCE, 0},
+{ 512, 1091599431u, 1630207738u, 3239996829u, 2393354808u, 1091599431u, 1630207738u, 0, FABS_TOLERANCE, 0},
+{ 513, 3190626018u, 3739770117u, 1059520750u, 3959551225u, 1043142370u, 3739770117u, 0, FABS_TOLERANCE, 0},
+{ 514, 3230730505u, 1498861716u, 1091297147u, 847410798u, 1083246857u, 1498861716u, 0, FABS_TOLERANCE, 0},
+{ 515, 1073516688u, 983275314u, 3232538664u, 2244973629u, 1073516688u, 983275314u, 0, FABS_TOLERANCE, 0},
+{ 516, 1054849265u, 2353103845u, 3235718771u, 2978889966u, 1054849265u, 2353103845u, 0, FABS_TOLERANCE, 0},
+{ 517, 3251357992u, 1546972125u, 3249076079u, 1987349196u, 1103874344u, 1546972125u, 0, FABS_TOLERANCE, 0},
+{ 518, 3238219513u, 2769161072u, 1075207126u, 292616282u, 1090735865u, 2769161072u, 0, FABS_TOLERANCE, 0},
+{ 519, 3199712298u, 36855311u, 1052128202u, 1479039342u, 1052228650u, 36855311u, 0, FABS_TOLERANCE, 0},
+{ 520, 1083757053u, 2027463605u, 1066023013u, 3369686340u, 1083757053u, 2027463605u, 0, FABS_TOLERANCE, 0},
+{ 521, 3197852749u, 3808681655u, 1054161346u, 1821773119u, 1050369101u, 3808681655u, 0, FABS_TOLERANCE, 0},
+{ 522, 1040685928u, 3175490326u, 3226879970u, 845687760u, 1040685928u, 3175490326u, 0, FABS_TOLERANCE, 0},
+{ 523, 1042302993u, 3124482451u, 3242748377u, 3259417226u, 1042302993u, 3124482451u, 0, FABS_TOLERANCE, 0},
+{ 524, 1045245695u, 2751606436u, 3236210939u, 3923142740u, 1045245695u, 2751606436u, 0, FABS_TOLERANCE, 0},
+{ 525, 1095694737u, 2016872044u, 3228408064u, 4201274408u, 1095694737u, 2016872044u, 0, FABS_TOLERANCE, 0},
+{ 526, 3199349254u, 1019916843u, 3219974785u, 1977881787u, 1051865606u, 1019916843u, 0, FABS_TOLERANCE, 0},
+{ 527, 3199478752u, 2060433318u, 1075872515u, 366073725u, 1051995104u, 2060433318u, 0, FABS_TOLERANCE, 0},
+{ 528, 3191180557u, 1098469906u, 1082900695u, 2349346832u, 1043696909u, 1098469906u, 0, FABS_TOLERANCE, 0},
+{ 529, 3209974707u, 3011196295u, 3252479932u, 2459281672u, 1062491059u, 3011196295u, 0, FABS_TOLERANCE, 0},
+{ 530, 3221334323u, 2843222682u, 1089275809u, 298982001u, 1073850675u, 2843222682u, 0, FABS_TOLERANCE, 0},
+{ 531, 1101737698u, 914741728u, 3203468059u, 2833809843u, 1101737698u, 914741728u, 0, FABS_TOLERANCE, 0},
+{ 532, 3236763878u, 1274901962u, 3241535845u, 3759113509u, 1089280230u, 1274901962u, 0, FABS_TOLERANCE, 0},
+{ 533, 3245916442u, 2134927252u, 3253802671u, 3013731444u, 1098432794u, 2134927252u, 0, FABS_TOLERANCE, 0},
+{ 534, 1099201341u, 2230655177u, 3254510616u, 1249674366u, 1099201341u, 2230655177u, 0, FABS_TOLERANCE, 0},
+{ 535, 1062971253u, 717357389u, 1083533731u, 3746683362u, 1062971253u, 717357389u, 0, FABS_TOLERANCE, 0},
+{ 536, 3213773114u, 834976849u, 3217357661u, 2465861779u, 1066289466u, 834976849u, 0, FABS_TOLERANCE, 0},
+{ 537, 1045656117u, 1385714428u, 1053358395u, 3007113740u, 1045656117u, 1385714428u, 0, FABS_TOLERANCE, 0},
+{ 538, 1050527919u, 599268545u, 3201368210u, 2309854744u, 1050527919u, 599268545u, 0, FABS_TOLERANCE, 0},
+{ 539, 1069954454u, 2840234388u, 3232496515u, 333365983u, 1069954454u, 2840234388u, 0, FABS_TOLERANCE, 0},
+{ 540, 1045922781u, 3136078996u, 3194520860u, 2650572904u, 1045922781u, 3136078996u, 0, FABS_TOLERANCE, 0},
+{ 541, 3233687691u, 2405805086u, 3251640319u, 324233833u, 1086204043u, 2405805086u, 0, FABS_TOLERANCE, 0},
+{ 542, 1106699146u, 2589598340u, 3254677807u, 952438812u, 1106699146u, 2589598340u, 0, FABS_TOLERANCE, 0},
+{ 543, 3189114773u, 1922837702u, 3216892718u, 3535907549u, 1041631125u, 1922837702u, 0, FABS_TOLERANCE, 0},
+{ 544, 3243615868u, 261447440u, 3209805849u, 1150571079u, 1096132220u, 261447440u, 0, FABS_TOLERANCE, 0},
+{ 545, 1095805232u, 4026487528u, 1073152064u, 27340691u, 1095805232u, 4026487528u, 0, FABS_TOLERANCE, 0},
+{ 546, 3229123692u, 338765118u, 1086225786u, 3207238249u, 1081640044u, 338765118u, 0, FABS_TOLERANCE, 0},
+{ 547, 3196182703u, 1085283176u, 3187775111u, 1601194210u, 1048699055u, 1085283176u, 0, FABS_TOLERANCE, 0},
+{ 548, 1091520173u, 3031712790u, 3252307859u, 170666844u, 1091520173u, 3031712790u, 0, FABS_TOLERANCE, 0},
+{ 549, 3218862231u, 3148395674u, 1041913758u, 3306391490u, 1071378583u, 3148395674u, 0, FABS_TOLERANCE, 0},
+{ 550, 3201277070u, 2205233857u, 3208100078u, 3993195511u, 1053793422u, 2205233857u, 0, FABS_TOLERANCE, 0},
+{ 551, 1067699608u, 4282766727u, 1072820377u, 1874778218u, 1067699608u, 4282766727u, 0, FABS_TOLERANCE, 0},
+{ 552, 3210833092u, 2920860798u, 3218070226u, 3104066154u, 1063349444u, 2920860798u, 0, FABS_TOLERANCE, 0},
+{ 553, 3204950351u, 969991373u, 3250596895u, 1734386152u, 1057466703u, 969991373u, 0, FABS_TOLERANCE, 0},
+{ 554, 3238915818u, 1218740205u, 3239802737u, 2610078504u, 1091432170u, 1218740205u, 0, FABS_TOLERANCE, 0},
+{ 555, 3206031242u, 1485218325u, 3220870240u, 3591664613u, 1058547594u, 1485218325u, 0, FABS_TOLERANCE, 0},
+{ 556, 3202074143u, 690157417u, 3190850619u, 4192347699u, 1054590495u, 690157417u, 0, FABS_TOLERANCE, 0},
+{ 557, 1096053810u, 4009839784u, 1079670252u, 394167192u, 1096053810u, 4009839784u, 0, FABS_TOLERANCE, 0},
+{ 558, 3234559237u, 961532417u, 1092588071u, 2923790239u, 1087075589u, 961532417u, 0, FABS_TOLERANCE, 0},
+{ 559, 3203879091u, 4174125604u, 1050682630u, 2169701868u, 1056395443u, 4174125604u, 0, FABS_TOLERANCE, 0},
+{ 560, 3243092475u, 4146748230u, 1087373950u, 2481478351u, 1095608827u, 4146748230u, 0, FABS_TOLERANCE, 0},
+{ 561, 1076987866u, 3984715440u, 1050421618u, 2446142566u, 1076987866u, 3984715440u, 0, FABS_TOLERANCE, 0},
+{ 562, 1084172406u, 936290150u, 1100614426u, 3625806370u, 1084172406u, 936290150u, 0, FABS_TOLERANCE, 0},
+{ 563, 1099787952u, 1866615265u, 3215651428u, 2337013350u, 1099787952u, 1866615265u, 0, FABS_TOLERANCE, 0},
+{ 564, 3253198302u, 712227971u, 1106004723u, 973148499u, 1105714654u, 712227971u, 0, FABS_TOLERANCE, 0},
+{ 565, 3230088199u, 3409813738u, 3244817008u, 1933503498u, 1082604551u, 3409813738u, 0, FABS_TOLERANCE, 0},
+{ 566, 1079943733u, 3180389060u, 3228735703u, 83422217u, 1079943733u, 3180389060u, 0, FABS_TOLERANCE, 0},
+{ 567, 1077878724u, 556972671u, 3204582372u, 841555801u, 1077878724u, 556972671u, 0, FABS_TOLERANCE, 0},
+{ 568, 1070767721u, 4189151332u, 1080874032u, 706326922u, 1070767721u, 4189151332u, 0, FABS_TOLERANCE, 0},
+{ 569, 1096151307u, 198291836u, 1057281892u, 2188836928u, 1096151307u, 198291836u, 0, FABS_TOLERANCE, 0},
+{ 570, 1078091995u, 1219449298u, 3228734687u, 3504562743u, 1078091995u, 1219449298u, 0, FABS_TOLERANCE, 0},
+{ 571, 3204570464u, 1776099219u, 1094316777u, 4188083896u, 1057086816u, 1776099219u, 0, FABS_TOLERANCE, 0},
+{ 572, 3193845708u, 2614400266u, 1073750227u, 3003203347u, 1046362060u, 2614400266u, 0, FABS_TOLERANCE, 0},
+{ 573, 3213982678u, 2959351406u, 1105603716u, 311851587u, 1066499030u, 2959351406u, 0, FABS_TOLERANCE, 0},
+{ 574, 1084544434u, 865443613u, 1097532516u, 3622237781u, 1084544434u, 865443613u, 0, FABS_TOLERANCE, 0},
+{ 575, 3231786666u, 447506102u, 3195759295u, 3603669725u, 1084303018u, 447506102u, 0, FABS_TOLERANCE, 0},
+{ 576, 1097890173u, 3934398273u, 1040996422u, 2968621268u, 1097890173u, 3934398273u, 0, FABS_TOLERANCE, 0},
+{ 577, 3196739825u, 784208771u, 1088764788u, 2182296421u, 1049256177u, 784208771u, 0, FABS_TOLERANCE, 0},
+{ 578, 3248332291u, 1527590526u, 3206961556u, 2823164069u, 1100848643u, 1527590526u, 0, FABS_TOLERANCE, 0},
+{ 579, 3236644131u, 3876699591u, 3207481130u, 4028148535u, 1089160483u, 3876699591u, 0, FABS_TOLERANCE, 0},
+{ 580, 1083576186u, 2164249756u, 1059857743u, 1785169952u, 1083576186u, 2164249756u, 0, FABS_TOLERANCE, 0},
+{ 581, 1091804009u, 2079273665u, 1080303860u, 625760474u, 1091804009u, 2079273665u, 0, FABS_TOLERANCE, 0},
+{ 582, 3226486108u, 3636214836u, 1068367620u, 2932621925u, 1079002460u, 3636214836u, 0, FABS_TOLERANCE, 0},
+{ 583, 1043995372u, 4274131512u, 1047707755u, 92550763u, 1043995372u, 4274131512u, 0, FABS_TOLERANCE, 0},
+{ 584, 3198822121u, 2648933384u, 1084603503u, 3534304873u, 1051338473u, 2648933384u, 0, FABS_TOLERANCE, 0},
+{ 585, 1064563235u, 3216750767u, 3191088629u, 547482628u, 1064563235u, 3216750767u, 0, FABS_TOLERANCE, 0},
+{ 586, 1061084774u, 1420360746u, 1080063101u, 1690029499u, 1061084774u, 1420360746u, 0, FABS_TOLERANCE, 0},
+{ 587, 3229855364u, 1908572179u, 1080112083u, 1228319033u, 1082371716u, 1908572179u, 0, FABS_TOLERANCE, 0},
+{ 588, 1048158178u, 500312015u, 3212368508u, 3864619086u, 1048158178u, 500312015u, 0, FABS_TOLERANCE, 0},
+{ 589, 3221335610u, 4211343447u, 1087492676u, 4272583781u, 1073851962u, 4211343447u, 0, FABS_TOLERANCE, 0},
+{ 590, 1099392394u, 2382118000u, 1042665328u, 567154882u, 1099392394u, 2382118000u, 0, FABS_TOLERANCE, 0},
+{ 591, 1058013442u, 1435344339u, 3216303171u, 2275988178u, 1058013442u, 1435344339u, 0, FABS_TOLERANCE, 0},
+{ 592, 3214538619u, 3403659753u, 3218043030u, 1926480488u, 1067054971u, 3403659753u, 0, FABS_TOLERANCE, 0},
+{ 593, 1076840383u, 1198845185u, 3225556149u, 1130089684u, 1076840383u, 1198845185u, 0, FABS_TOLERANCE, 0},
+{ 594, 3222663042u, 2183928090u, 1048403956u, 963834821u, 1075179394u, 2183928090u, 0, FABS_TOLERANCE, 0},
+{ 595, 1101672960u, 2120625396u, 1041006976u, 2137548527u, 1101672960u, 2120625396u, 0, FABS_TOLERANCE, 0},
+{ 596, 1099230238u, 586700956u, 1059670521u, 303891699u, 1099230238u, 586700956u, 0, FABS_TOLERANCE, 0},
+{ 597, 3218994498u, 2509132460u, 1102827530u, 2205707903u, 1071510850u, 2509132460u, 0, FABS_TOLERANCE, 0},
+{ 598, 3204860597u, 1229308263u, 3209170414u, 4206576047u, 1057376949u, 1229308263u, 0, FABS_TOLERANCE, 0},
+{ 599, 3224076289u, 4078010749u, 3199236456u, 733478972u, 1076592641u, 4078010749u, 0, FABS_TOLERANCE, 0},
+{ 600, 3197712584u, 4277541051u, 3199806921u, 397102023u, 1050228936u, 4277541051u, 0, FABS_TOLERANCE, 0},
+{ 601, 3195975013u, 900999594u, 3234720188u, 2530214248u, 1048491365u, 900999594u, 0, FABS_TOLERANCE, 0},
+{ 602, 1076543548u, 4000609478u, 1096577064u, 4148592328u, 1076543548u, 4000609478u, 0, FABS_TOLERANCE, 0},
+{ 603, 1048668084u, 2154187873u, 3224392607u, 3957250362u, 1048668084u, 2154187873u, 0, FABS_TOLERANCE, 0},
+{ 604, 3223413488u, 2867079200u, 1101870326u, 921212001u, 1075929840u, 2867079200u, 0, FABS_TOLERANCE, 0},
+{ 605, 3233221890u, 674547716u, 1063216239u, 3929755226u, 1085738242u, 674547716u, 0, FABS_TOLERANCE, 0},
+{ 606, 3240415851u, 3158182449u, 1043794244u, 3259056345u, 1092932203u, 3158182449u, 0, FABS_TOLERANCE, 0},
+{ 607, 3236776656u, 3002823940u, 1059511739u, 2832435794u, 1089293008u, 3002823940u, 0, FABS_TOLERANCE, 0},
+{ 608, 3217304822u, 2196511929u, 1049973941u, 3672092877u, 1069821174u, 2196511929u, 0, FABS_TOLERANCE, 0},
+{ 609, 1050438056u, 3655292191u, 1086438127u, 3567072906u, 1050438056u, 3655292191u, 0, FABS_TOLERANCE, 0},
+{ 610, 3243186948u, 1617573614u, 3201863123u, 3090723732u, 1095703300u, 1617573614u, 0, FABS_TOLERANCE, 0},
+{ 611, 3233201380u, 679893506u, 3211547753u, 824081024u, 1085717732u, 679893506u, 0, FABS_TOLERANCE, 0},
+{ 612, 1089530525u, 2285242807u, 1084999409u, 2221731406u, 1089530525u, 2285242807u, 0, FABS_TOLERANCE, 0},
+{ 613, 3206733664u, 1935990727u, 1088822246u, 1058156518u, 1059250016u, 1935990727u, 0, FABS_TOLERANCE, 0},
+{ 614, 1102839166u, 521023584u, 1059186903u, 4245163857u, 1102839166u, 521023584u, 0, FABS_TOLERANCE, 0},
+{ 615, 1103891140u, 2312887617u, 3191771354u, 1885370807u, 1103891140u, 2312887617u, 0, FABS_TOLERANCE, 0},
+{ 616, 3252953815u, 1796441468u, 1100030327u, 2772711004u, 1105470167u, 1796441468u, 0, FABS_TOLERANCE, 0},
+{ 617, 3204276820u, 2095685003u, 1077984448u, 2100773742u, 1056793172u, 2095685003u, 0, FABS_TOLERANCE, 0},
+{ 618, 3192954620u, 2892538035u, 1042396334u, 4162200338u, 1045470972u, 2892538035u, 0, FABS_TOLERANCE, 0},
+{ 619, 3242725751u, 2177698116u, 3227557177u, 150832500u, 1095242103u, 2177698116u, 0, FABS_TOLERANCE, 0},
+{ 620, 3191562216u, 607966734u, 3236250630u, 4164600559u, 1044078568u, 607966734u, 0, FABS_TOLERANCE, 0},
+{ 621, 3216389812u, 2830122967u, 1046096700u, 3713346883u, 1068906164u, 2830122967u, 0, FABS_TOLERANCE, 0},
+{ 622, 3237197963u, 2314640506u, 3203696416u, 3276228872u, 1089714315u, 2314640506u, 0, FABS_TOLERANCE, 0},
+{ 623, 3212912307u, 469331883u, 3249037349u, 2999233437u, 1065428659u, 469331883u, 0, FABS_TOLERANCE, 0},
+{ 624, 1097382011u, 560886625u, 1091899487u, 748795120u, 1097382011u, 560886625u, 0, FABS_TOLERANCE, 0},
+{ 625, 1049886858u, 2958421324u, 1092569414u, 3235243477u, 1049886858u, 2958421324u, 0, FABS_TOLERANCE, 0},
+{ 626, 3193026497u, 3221475559u, 1043038304u, 915608434u, 1045542849u, 3221475559u, 0, FABS_TOLERANCE, 0},
+{ 627, 1071197530u, 3007808652u, 3216682290u, 2531019474u, 1071197530u, 3007808652u, 0, FABS_TOLERANCE, 0},
+{ 628, 3242028999u, 1767658578u, 3237045269u, 2313128318u, 1094545351u, 1767658578u, 0, FABS_TOLERANCE, 0},
+{ 629, 3210617892u, 1926845182u, 1066835624u, 1783256828u, 1063134244u, 1926845182u, 0, FABS_TOLERANCE, 0},
+{ 630, 1040575629u, 90378038u, 1057168870u, 164358218u, 1040575629u, 90378038u, 0, FABS_TOLERANCE, 0},
+{ 631, 1106859172u, 1610524680u, 1085283851u, 2903496007u, 1106859172u, 1610524680u, 0, FABS_TOLERANCE, 0},
+{ 632, 1078635586u, 4274321404u, 3202913591u, 720121831u, 1078635586u, 4274321404u, 0, FABS_TOLERANCE, 0},
+{ 633, 1051205256u, 2034778236u, 1071133763u, 1413236391u, 1051205256u, 2034778236u, 0, FABS_TOLERANCE, 0},
+{ 634, 1051063028u, 1489112261u, 1076691395u, 348210906u, 1051063028u, 1489112261u, 0, FABS_TOLERANCE, 0},
+{ 635, 3206743917u, 2797651324u, 3224410527u, 2374818327u, 1059260269u, 2797651324u, 0, FABS_TOLERANCE, 0},
+{ 636, 1088287256u, 1823161666u, 3197810695u, 3119680047u, 1088287256u, 1823161666u, 0, FABS_TOLERANCE, 0},
+{ 637, 1065927336u, 3420950657u, 1087084743u, 2136638961u, 1065927336u, 3420950657u, 0, FABS_TOLERANCE, 0},
+{ 638, 1069902224u, 3554566429u, 1062907717u, 2736702589u, 1069902224u, 3554566429u, 0, FABS_TOLERANCE, 0},
+{ 639, 3244888667u, 2928437580u, 3187765027u, 1393427873u, 1097405019u, 2928437580u, 0, FABS_TOLERANCE, 0},
+{ 640, 3209301561u, 189447067u, 1051643315u, 828663513u, 1061817913u, 189447067u, 0, FABS_TOLERANCE, 0},
+{ 641, 1052313869u, 2852350928u, 1045683757u, 673354280u, 1052313869u, 2852350928u, 0, FABS_TOLERANCE, 0},
+{ 642, 1043946301u, 3589563265u, 3248741629u, 812657927u, 1043946301u, 3589563265u, 0, FABS_TOLERANCE, 0},
+{ 643, 3190610826u, 1766416701u, 1100392103u, 2185373290u, 1043127178u, 1766416701u, 0, FABS_TOLERANCE, 0},
+{ 644, 3220275389u, 3763582673u, 3191965790u, 388374829u, 1072791741u, 3763582673u, 0, FABS_TOLERANCE, 0},
+{ 645, 1079635136u, 1187403069u, 1075300235u, 336640304u, 1079635136u, 1187403069u, 0, FABS_TOLERANCE, 0},
+{ 646, 1103926251u, 1718795752u, 3243118752u, 683369237u, 1103926251u, 1718795752u, 0, FABS_TOLERANCE, 0},
+{ 647, 3210792097u, 1863545307u, 1069449477u, 3418627399u, 1063308449u, 1863545307u, 0, FABS_TOLERANCE, 0},
+{ 648, 1069601294u, 3295607249u, 1068878592u, 1633297809u, 1069601294u, 3295607249u, 0, FABS_TOLERANCE, 0},
+{ 649, 1058947127u, 2585980994u, 3236670483u, 1286750688u, 1058947127u, 2585980994u, 0, FABS_TOLERANCE, 0},
+{ 650, 1046157033u, 15816845u, 3233249283u, 2491924775u, 1046157033u, 15816845u, 0, FABS_TOLERANCE, 0},
+{ 651, 1042413021u, 1051983351u, 1049180786u, 1474421917u, 1042413021u, 1051983351u, 0, FABS_TOLERANCE, 0},
+{ 652, 3201249525u, 2003816032u, 1086050104u, 668090487u, 1053765877u, 2003816032u, 0, FABS_TOLERANCE, 0},
+{ 653, 1052556037u, 3671484625u, 1067020039u, 430024694u, 1052556037u, 3671484625u, 0, FABS_TOLERANCE, 0},
+{ 654, 1067397110u, 3991830201u, 3207808714u, 1021245839u, 1067397110u, 3991830201u, 0, FABS_TOLERANCE, 0},
+{ 655, 1064194391u, 4255801807u, 3207681716u, 1926756877u, 1064194391u, 4255801807u, 0, FABS_TOLERANCE, 0},
+{ 656, 1052140785u, 4167786896u, 1077097744u, 1775517981u, 1052140785u, 4167786896u, 0, FABS_TOLERANCE, 0},
+{ 657, 1085601978u, 3187518564u, 1082437406u, 944672491u, 1085601978u, 3187518564u, 0, FABS_TOLERANCE, 0},
+{ 658, 1049366282u, 953085192u, 3227310828u, 3459155777u, 1049366282u, 953085192u, 0, FABS_TOLERANCE, 0},
+{ 659, 1069502506u, 1908555460u, 1073640207u, 260441967u, 1069502506u, 1908555460u, 0, FABS_TOLERANCE, 0},
+{ 660, 1067219606u, 250762477u, 1072582645u, 2886742039u, 1067219606u, 250762477u, 0, FABS_TOLERANCE, 0},
+{ 661, 3250906006u, 786180031u, 3197734769u, 2788918312u, 1103422358u, 786180031u, 0, FABS_TOLERANCE, 0},
+{ 662, 3234511827u, 2055912467u, 3244244909u, 1394142937u, 1087028179u, 2055912467u, 0, FABS_TOLERANCE, 0},
+{ 663, 1069612985u, 91984146u, 3222252812u, 4126276047u, 1069612985u, 91984146u, 0, FABS_TOLERANCE, 0},
+{ 664, 1081340139u, 3942715706u, 3239316352u, 410676547u, 1081340139u, 3942715706u, 0, FABS_TOLERANCE, 0},
+{ 665, 3198557846u, 86296211u, 1085850694u, 649202596u, 1051074198u, 86296211u, 0, FABS_TOLERANCE, 0},
+{ 666, 3245366392u, 3069064472u, 3237358008u, 23209276u, 1097882744u, 3069064472u, 0, FABS_TOLERANCE, 0},
+{ 667, 1081235288u, 1867297860u, 1072956607u, 2513414118u, 1081235288u, 1867297860u, 0, FABS_TOLERANCE, 0},
+{ 668, 3250533347u, 3171788768u, 3235208783u, 162138697u, 1103049699u, 3171788768u, 0, FABS_TOLERANCE, 0},
+{ 669, 1081728455u, 1245110700u, 1081653954u, 2584994077u, 1081728455u, 1245110700u, 0, FABS_TOLERANCE, 0},
+{ 670, 3245510120u, 3347226587u, 1058962932u, 2291943376u, 1098026472u, 3347226587u, 0, FABS_TOLERANCE, 0},
+{ 671, 1058899062u, 966940828u, 1060726420u, 2798041096u, 1058899062u, 966940828u, 0, FABS_TOLERANCE, 0},
+{ 672, 1072793759u, 2487340727u, 3223786370u, 4105954991u, 1072793759u, 2487340727u, 0, FABS_TOLERANCE, 0},
+{ 673, 3248116497u, 1671039260u, 1086395032u, 3745833360u, 1100632849u, 1671039260u, 0, FABS_TOLERANCE, 0},
+{ 674, 1057078797u, 651714217u, 1047070645u, 2130549237u, 1057078797u, 651714217u, 0, FABS_TOLERANCE, 0},
+{ 675, 3207115731u, 1423000172u, 3247822717u, 1551488170u, 1059632083u, 1423000172u, 0, FABS_TOLERANCE, 0},
+{ 676, 3201597307u, 921077236u, 3213332351u, 1431049019u, 1054113659u, 921077236u, 0, FABS_TOLERANCE, 0},
+{ 677, 1067510295u, 655715547u, 3190985373u, 1527556471u, 1067510295u, 655715547u, 0, FABS_TOLERANCE, 0},
+{ 678, 3227654979u, 4110878657u, 3251297180u, 879739345u, 1080171331u, 4110878657u, 0, FABS_TOLERANCE, 0},
+{ 679, 1085804762u, 2623955764u, 1093699897u, 1216444475u, 1085804762u, 2623955764u, 0, FABS_TOLERANCE, 0},
+{ 680, 1091905603u, 107442539u, 3239767031u, 1149813329u, 1091905603u, 107442539u, 0, FABS_TOLERANCE, 0},
+{ 681, 3233445240u, 1761361082u, 3226030205u, 1121849716u, 1085961592u, 1761361082u, 0, FABS_TOLERANCE, 0},
+{ 682, 3240087115u, 2534144722u, 1044223733u, 3512285706u, 1092603467u, 2534144722u, 0, FABS_TOLERANCE, 0},
+{ 683, 3211846077u, 4073670723u, 1050729852u, 3034818849u, 1064362429u, 4073670723u, 0, FABS_TOLERANCE, 0},
+{ 684, 1101984574u, 1421423503u, 1060278048u, 1397153092u, 1101984574u, 1421423503u, 0, FABS_TOLERANCE, 0},
+{ 685, 3217421829u, 1649206019u, 1104525577u, 1267104290u, 1069938181u, 1649206019u, 0, FABS_TOLERANCE, 0},
+{ 686, 3189302097u, 3775270392u, 1040251850u, 68667319u, 1041818449u, 3775270392u, 0, FABS_TOLERANCE, 0},
+{ 687, 3204330900u, 3099226694u, 3254103006u, 4020102648u, 1056847252u, 3099226694u, 0, FABS_TOLERANCE, 0},
+{ 688, 3201591712u, 3718441177u, 3215643451u, 4032951536u, 1054108064u, 3718441177u, 0, FABS_TOLERANCE, 0},
+{ 689, 1044131371u, 508048351u, 3210196713u, 1707937896u, 1044131371u, 508048351u, 0, FABS_TOLERANCE, 0},
+{ 690, 3198611627u, 2784738160u, 1073435430u, 1109346010u, 1051127979u, 2784738160u, 0, FABS_TOLERANCE, 0},
+{ 691, 3225725290u, 3331916473u, 3238794568u, 2707019594u, 1078241642u, 3331916473u, 0, FABS_TOLERANCE, 0},
+{ 692, 1093182670u, 3093165197u, 1072894805u, 2853215019u, 1093182670u, 3093165197u, 0, FABS_TOLERANCE, 0},
+{ 693, 3216582139u, 2135797997u, 1048399559u, 2941926126u, 1069098491u, 2135797997u, 0, FABS_TOLERANCE, 0},
+{ 694, 1048430980u, 2083412145u, 3249335391u, 507212448u, 1048430980u, 2083412145u, 0, FABS_TOLERANCE, 0},
+{ 695, 1075363751u, 4270176401u, 3246546709u, 3288753319u, 1075363751u, 4270176401u, 0, FABS_TOLERANCE, 0},
+{ 696, 3247932863u, 3692175292u, 3197271515u, 3989064196u, 1100449215u, 3692175292u, 0, FABS_TOLERANCE, 0},
+{ 697, 3251691738u, 3111924274u, 1066772558u, 59281695u, 1104208090u, 3111924274u, 0, FABS_TOLERANCE, 0},
+{ 698, 1067683911u, 2135245466u, 3208804313u, 3846547392u, 1067683911u, 2135245466u, 0, FABS_TOLERANCE, 0},
+{ 699, 1094877811u, 972051266u, 3222814246u, 3539700586u, 1094877811u, 972051266u, 0, FABS_TOLERANCE, 0},
+{ 700, 3202965930u, 330951080u, 1079189813u, 583922384u, 1055482282u, 330951080u, 0, FABS_TOLERANCE, 0},
+{ 701, 1089640092u, 1711944085u, 1104170032u, 643991456u, 1089640092u, 1711944085u, 0, FABS_TOLERANCE, 0},
+{ 702, 3234429549u, 2072550721u, 3250147641u, 4280263530u, 1086945901u, 2072550721u, 0, FABS_TOLERANCE, 0},
+{ 703, 3192972706u, 1566376352u, 1067251433u, 72984588u, 1045489058u, 1566376352u, 0, FABS_TOLERANCE, 0},
+{ 704, 1095276569u, 3103043079u, 1045853123u, 410067497u, 1095276569u, 3103043079u, 0, FABS_TOLERANCE, 0},
+{ 705, 3216672493u, 1910366299u, 1081770885u, 634683073u, 1069188845u, 1910366299u, 0, FABS_TOLERANCE, 0},
+{ 706, 1081530688u, 2226525875u, 3224149290u, 2126302825u, 1081530688u, 2226525875u, 0, FABS_TOLERANCE, 0},
+{ 707, 1073150247u, 1383818978u, 3193885723u, 1220372650u, 1073150247u, 1383818978u, 0, FABS_TOLERANCE, 0},
+{ 708, 1066482943u, 1953339096u, 1077176252u, 1476516558u, 1066482943u, 1953339096u, 0, FABS_TOLERANCE, 0},
+{ 709, 1066092000u, 1306277326u, 1079089150u, 4093716191u, 1066092000u, 1306277326u, 0, FABS_TOLERANCE, 0},
+{ 710, 3233148787u, 51750045u, 3242913901u, 4256866157u, 1085665139u, 51750045u, 0, FABS_TOLERANCE, 0},
+{ 711, 3195084967u, 2163853087u, 3232053146u, 2962422808u, 1047601319u, 2163853087u, 0, FABS_TOLERANCE, 0},
+{ 712, 1075516945u, 1618388148u, 3233154824u, 3711953164u, 1075516945u, 1618388148u, 0, FABS_TOLERANCE, 0},
+{ 713, 3246868002u, 357108214u, 3202294604u, 2306775262u, 1099384354u, 357108214u, 0, FABS_TOLERANCE, 0},
+{ 714, 3201904086u, 2571356437u, 3249064063u, 2394851808u, 1054420438u, 2571356437u, 0, FABS_TOLERANCE, 0},
+{ 715, 3230488091u, 4273880094u, 1103698617u, 3578832032u, 1083004443u, 4273880094u, 0, FABS_TOLERANCE, 0},
+{ 716, 3233426701u, 2091068742u, 3228270226u, 3980489730u, 1085943053u, 2091068742u, 0, FABS_TOLERANCE, 0},
+{ 717, 3229016752u, 2772307714u, 1051008486u, 32546576u, 1081533104u, 2772307714u, 0, FABS_TOLERANCE, 0},
+{ 718, 3241229215u, 2143788498u, 3195498043u, 3630119231u, 1093745567u, 2143788498u, 0, FABS_TOLERANCE, 0},
+{ 719, 3198632935u, 2527385594u, 3240503648u, 3482095012u, 1051149287u, 2527385594u, 0, FABS_TOLERANCE, 0},
+{ 720, 3242168799u, 2690097362u, 1068598730u, 2360266862u, 1094685151u, 2690097362u, 0, FABS_TOLERANCE, 0},
+{ 721, 1058857869u, 2673272949u, 1082639557u, 522449749u, 1058857869u, 2673272949u, 0, FABS_TOLERANCE, 0},
+{ 722, 1104424147u, 3596379400u, 3242016775u, 2002293002u, 1104424147u, 3596379400u, 0, FABS_TOLERANCE, 0},
+{ 723, 1099439656u, 4113224369u, 3222122439u, 2152316893u, 1099439656u, 4113224369u, 0, FABS_TOLERANCE, 0},
+{ 724, 3220796716u, 31662602u, 1047721249u, 1747087514u, 1073313068u, 31662602u, 0, FABS_TOLERANCE, 0},
+{ 725, 3250463757u, 2489659568u, 1097051253u, 277506957u, 1102980109u, 2489659568u, 0, FABS_TOLERANCE, 0},
+{ 726, 3191401834u, 3850162281u, 3213841942u, 438724093u, 1043918186u, 3850162281u, 0, FABS_TOLERANCE, 0},
+{ 727, 1095392535u, 2431814052u, 1075518084u, 2672434118u, 1095392535u, 2431814052u, 0, FABS_TOLERANCE, 0},
+{ 728, 3243162735u, 391606792u, 1048184750u, 4168944276u, 1095679087u, 391606792u, 0, FABS_TOLERANCE, 0},
+{ 729, 3247792416u, 457529672u, 3201090276u, 72407935u, 1100308768u, 457529672u, 0, FABS_TOLERANCE, 0},
+{ 730, 3218720719u, 3954981400u, 1052053242u, 2411049585u, 1071237071u, 3954981400u, 0, FABS_TOLERANCE, 0},
+{ 731, 1086180091u, 485456950u, 1088415093u, 1655397424u, 1086180091u, 485456950u, 0, FABS_TOLERANCE, 0},
+{ 732, 3198234428u, 1551748070u, 3236871640u, 1329701152u, 1050750780u, 1551748070u, 0, FABS_TOLERANCE, 0},
+{ 733, 3224639122u, 3099222537u, 1104984570u, 4293792842u, 1077155474u, 3099222537u, 0, FABS_TOLERANCE, 0},
+{ 734, 3203949705u, 3603065260u, 3197735968u, 2402359253u, 1056466057u, 3603065260u, 0, FABS_TOLERANCE, 0},
+{ 735, 3198824584u, 3961208159u, 3219057584u, 2340553876u, 1051340936u, 3961208159u, 0, FABS_TOLERANCE, 0},
+{ 736, 1074881909u, 4014841779u, 3197672877u, 3697233334u, 1074881909u, 4014841779u, 0, FABS_TOLERANCE, 0},
+{ 737, 3213275657u, 1403876392u, 3254028950u, 921363393u, 1065792009u, 1403876392u, 0, FABS_TOLERANCE, 0},
+{ 738, 1107251806u, 1862576361u, 3194031708u, 2476290925u, 1107251806u, 1862576361u, 0, FABS_TOLERANCE, 0},
+{ 739, 1049661768u, 1454212851u, 1088378861u, 3400401866u, 1049661768u, 1454212851u, 0, FABS_TOLERANCE, 0},
+{ 740, 1074406809u, 552676385u, 3188635745u, 3778112968u, 1074406809u, 552676385u, 0, FABS_TOLERANCE, 0},
+{ 741, 3216409282u, 1199568671u, 3225679997u, 46947405u, 1068925634u, 1199568671u, 0, FABS_TOLERANCE, 0},
+{ 742, 1077685537u, 2596231448u, 3253943728u, 2219151748u, 1077685537u, 2596231448u, 0, FABS_TOLERANCE, 0},
+{ 743, 1066527035u, 4119719558u, 3222036299u, 1275474618u, 1066527035u, 4119719558u, 0, FABS_TOLERANCE, 0},
+{ 744, 3239908663u, 3347296825u, 1101507910u, 1254014794u, 1092425015u, 3347296825u, 0, FABS_TOLERANCE, 0},
+{ 745, 1084119992u, 673775040u, 1070743626u, 244126093u, 1084119992u, 673775040u, 0, FABS_TOLERANCE, 0},
+{ 746, 3203199850u, 1832066983u, 1051358028u, 3262483417u, 1055716202u, 1832066983u, 0, FABS_TOLERANCE, 0},
+{ 747, 1077559600u, 3962610501u, 3198598777u, 849269178u, 1077559600u, 3962610501u, 0, FABS_TOLERANCE, 0},
+{ 748, 3235473900u, 2497516122u, 3254374111u, 2821429629u, 1087990252u, 2497516122u, 0, FABS_TOLERANCE, 0},
+{ 749, 1076236288u, 2805941787u, 3217785843u, 779131141u, 1076236288u, 2805941787u, 0, FABS_TOLERANCE, 0},
+{ 750, 3226908686u, 723423605u, 1084533420u, 627282213u, 1079425038u, 723423605u, 0, FABS_TOLERANCE, 0},
+{ 751, 3215947680u, 4292778869u, 1078101071u, 1676860147u, 1068464032u, 4292778869u, 0, FABS_TOLERANCE, 0},
+{ 752, 1076288502u, 3528118587u, 3194648564u, 2363260897u, 1076288502u, 3528118587u, 0, FABS_TOLERANCE, 0},
+{ 753, 3192897879u, 1307010018u, 1061248120u, 1468743108u, 1045414231u, 1307010018u, 0, FABS_TOLERANCE, 0},
+{ 754, 3246583139u, 107905661u, 3226089788u, 1943427674u, 1099099491u, 107905661u, 0, FABS_TOLERANCE, 0},
+{ 755, 3188230541u, 760006940u, 1054265604u, 1749976597u, 1040746893u, 760006940u, 0, FABS_TOLERANCE, 0},
+{ 756, 3237773384u, 2787503556u, 1081282610u, 1195841206u, 1090289736u, 2787503556u, 0, FABS_TOLERANCE, 0},
+{ 757, 3191802156u, 545462045u, 3208381743u, 1981311808u, 1044318508u, 545462045u, 0, FABS_TOLERANCE, 0},
+{ 758, 1061232136u, 3657978397u, 1104463616u, 3501253426u, 1061232136u, 3657978397u, 0, FABS_TOLERANCE, 0},
+{ 759, 1049883857u, 1804177501u, 3210693633u, 3606766729u, 1049883857u, 1804177501u, 0, FABS_TOLERANCE, 0},
+{ 760, 1076856879u, 1336278526u, 1043741618u, 3165279431u, 1076856879u, 1336278526u, 0, FABS_TOLERANCE, 0},
+{ 761, 1055471915u, 1599382075u, 1058018527u, 4212580517u, 1055471915u, 1599382075u, 0, FABS_TOLERANCE, 0},
+{ 762, 3207502326u, 3007589929u, 3202026547u, 2792028313u, 1060018678u, 3007589929u, 0, FABS_TOLERANCE, 0},
+{ 763, 3253082770u, 1866066996u, 1060329048u, 3727175322u, 1105599122u, 1866066996u, 0, FABS_TOLERANCE, 0},
+{ 764, 3198416643u, 150890940u, 1056025306u, 3082724735u, 1050932995u, 150890940u, 0, FABS_TOLERANCE, 0},
+{ 765, 1062008939u, 80400395u, 1093584426u, 3478941315u, 1062008939u, 80400395u, 0, FABS_TOLERANCE, 0},
+{ 766, 3251640614u, 4050954182u, 3219263194u, 2537475930u, 1104156966u, 4050954182u, 0, FABS_TOLERANCE, 0},
+{ 767, 1064841871u, 2881752155u, 3212589299u, 2559651278u, 1064841871u, 2881752155u, 0, FABS_TOLERANCE, 0},
+{ 768, 3249016304u, 440309030u, 3214267461u, 3788040806u, 1101532656u, 440309030u, 0, FABS_TOLERANCE, 0},
+{ 769, 1100476615u, 918813144u, 3208535698u, 1607035904u, 1100476615u, 918813144u, 0, FABS_TOLERANCE, 0},
+{ 770, 1042137451u, 2497054124u, 1089139147u, 2549609010u, 1042137451u, 2497054124u, 0, FABS_TOLERANCE, 0},
+{ 771, 1047037641u, 790219083u, 1054657139u, 2797979479u, 1047037641u, 790219083u, 0, FABS_TOLERANCE, 0},
+{ 772, 1057781400u, 1149462078u, 1095765205u, 3879963182u, 1057781400u, 1149462078u, 0, FABS_TOLERANCE, 0},
+{ 773, 3202729813u, 2684353926u, 3205212854u, 1732474928u, 1055246165u, 2684353926u, 0, FABS_TOLERANCE, 0},
+{ 774, 1095236965u, 2742237025u, 1051317716u, 3386396147u, 1095236965u, 2742237025u, 0, FABS_TOLERANCE, 0},
+{ 775, 1063230986u, 3408320912u, 1103071166u, 4233059513u, 1063230986u, 3408320912u, 0, FABS_TOLERANCE, 0},
+{ 776, 1064863548u, 1077495917u, 1088399968u, 433115118u, 1064863548u, 1077495917u, 0, FABS_TOLERANCE, 0},
+{ 777, 3204547572u, 841366493u, 1051716814u, 4121125128u, 1057063924u, 841366493u, 0, FABS_TOLERANCE, 0},
+{ 778, 1064632084u, 321857207u, 1089128010u, 1149988239u, 1064632084u, 321857207u, 0, FABS_TOLERANCE, 0},
+{ 779, 3245542663u, 799866606u, 3197637091u, 3924438208u, 1098059015u, 799866606u, 0, FABS_TOLERANCE, 0},
+{ 780, 3191062890u, 2002049816u, 1077053447u, 2240354761u, 1043579242u, 2002049816u, 0, FABS_TOLERANCE, 0},
+{ 781, 3229006283u, 478939968u, 1097035749u, 1066716440u, 1081522635u, 478939968u, 0, FABS_TOLERANCE, 0},
+{ 782, 3232473641u, 1653104725u, 1088548129u, 81977716u, 1084989993u, 1653104725u, 0, FABS_TOLERANCE, 0},
+{ 783, 3196861276u, 3899475018u, 3189694084u, 3330093036u, 1049377628u, 3899475018u, 0, FABS_TOLERANCE, 0},
+{ 784, 1089312583u, 2612450289u, 1079065127u, 603380842u, 1089312583u, 2612450289u, 0, FABS_TOLERANCE, 0},
+{ 785, 1100636791u, 3962735564u, 1101570429u, 1372490825u, 1100636791u, 3962735564u, 0, FABS_TOLERANCE, 0},
+{ 786, 1054806016u, 1479841439u, 1059312257u, 541504905u, 1054806016u, 1479841439u, 0, FABS_TOLERANCE, 0},
+{ 787, 1078662178u, 2626148789u, 1057571099u, 4121656076u, 1078662178u, 2626148789u, 0, FABS_TOLERANCE, 0},
+{ 788, 1081613389u, 1902560314u, 1043130231u, 3557671562u, 1081613389u, 1902560314u, 0, FABS_TOLERANCE, 0},
+{ 789, 3193829772u, 41779312u, 1081626342u, 831171823u, 1046346124u, 41779312u, 0, FABS_TOLERANCE, 0},
+{ 790, 1058131100u, 1393168821u, 1066457405u, 1381616968u, 1058131100u, 1393168821u, 0, FABS_TOLERANCE, 0},
+{ 791, 1072338141u, 3756584649u, 3222267229u, 1423157432u, 1072338141u, 3756584649u, 0, FABS_TOLERANCE, 0},
+{ 792, 3254435674u, 1894912556u, 1042426694u, 155024547u, 1106952026u, 1894912556u, 0, FABS_TOLERANCE, 0},
+{ 793, 3195453512u, 35164295u, 3203391785u, 1037041084u, 1047969864u, 35164295u, 0, FABS_TOLERANCE, 0},
+{ 794, 1084777479u, 3957875950u, 3232195211u, 1590756436u, 1084777479u, 3957875950u, 0, FABS_TOLERANCE, 0},
+{ 795, 1068844322u, 1447585080u, 1071279485u, 1107922438u, 1068844322u, 1447585080u, 0, FABS_TOLERANCE, 0},
+{ 796, 1046252518u, 981897615u, 1051856116u, 430357614u, 1046252518u, 981897615u, 0, FABS_TOLERANCE, 0},
+{ 797, 3227524215u, 395145384u, 3219821938u, 50586510u, 1080040567u, 395145384u, 0, FABS_TOLERANCE, 0},
+{ 798, 1069775912u, 750827797u, 1082862669u, 230466783u, 1069775912u, 750827797u, 0, FABS_TOLERANCE, 0},
+{ 799, 1086668819u, 1365083575u, 3204848310u, 1700831722u, 1086668819u, 1365083575u, 0, FABS_TOLERANCE, 0},
+{ 800, 3218090390u, 344241827u, 1071538935u, 2715566077u, 1070606742u, 344241827u, 0, FABS_TOLERANCE, 0},
+{ 801, 3247582856u, 4069301823u, 3193208760u, 2949125229u, 1100099208u, 4069301823u, 0, FABS_TOLERANCE, 0},
+{ 802, 1103231387u, 3585711710u, 1065801594u, 2302229267u, 1103231387u, 3585711710u, 0, FABS_TOLERANCE, 0},
+{ 803, 3194118956u, 709803845u, 1048741487u, 2296910194u, 1046635308u, 709803845u, 0, FABS_TOLERANCE, 0},
+{ 804, 3193280779u, 744421179u, 1069302001u, 2659232829u, 1045797131u, 744421179u, 0, FABS_TOLERANCE, 0},
+{ 805, 1092835968u, 1799949903u, 3192522886u, 4212149209u, 1092835968u, 1799949903u, 0, FABS_TOLERANCE, 0},
+{ 806, 3206108502u, 145234164u, 3250614064u, 912384201u, 1058624854u, 145234164u, 0, FABS_TOLERANCE, 0},
+{ 807, 3240510664u, 2784620507u, 1102812948u, 3531481022u, 1093027016u, 2784620507u, 0, FABS_TOLERANCE, 0},
+{ 808, 3251159663u, 383952592u, 3205659905u, 3633194728u, 1103676015u, 383952592u, 0, FABS_TOLERANCE, 0},
+{ 809, 3203476252u, 3792395543u, 1070072378u, 3864816376u, 1055992604u, 3792395543u, 0, FABS_TOLERANCE, 0},
+{ 810, 3205316273u, 2115553675u, 1066288499u, 3538377867u, 1057832625u, 2115553675u, 0, FABS_TOLERANCE, 0},
+{ 811, 3252075185u, 1230026762u, 1090719723u, 440819880u, 1104591537u, 1230026762u, 0, FABS_TOLERANCE, 0},
+{ 812, 3194595076u, 2991290482u, 1096886719u, 1097971167u, 1047111428u, 2991290482u, 0, FABS_TOLERANCE, 0},
+{ 813, 1090048600u, 1098035020u, 3230900504u, 1479059095u, 1090048600u, 1098035020u, 0, FABS_TOLERANCE, 0},
+{ 814, 3251056964u, 1719428427u, 3188631907u, 3707377409u, 1103573316u, 1719428427u, 0, FABS_TOLERANCE, 0},
+{ 815, 1053236165u, 3748932896u, 1084908557u, 1325384361u, 1053236165u, 3748932896u, 0, FABS_TOLERANCE, 0},
+{ 816, 1084704076u, 3979168763u, 1057455255u, 2454615952u, 1084704076u, 3979168763u, 0, FABS_TOLERANCE, 0},
+{ 817, 1053106984u, 1449164578u, 1056960316u, 1654931641u, 1053106984u, 1449164578u, 0, FABS_TOLERANCE, 0},
+{ 818, 1071439010u, 2120487381u, 3226298974u, 2364226633u, 1071439010u, 2120487381u, 0, FABS_TOLERANCE, 0},
+{ 819, 1075071428u, 1074268944u, 1065730444u, 280016852u, 1075071428u, 1074268944u, 0, FABS_TOLERANCE, 0},
+{ 820, 3200308256u, 3315127889u, 3236295594u, 2900924954u, 1052824608u, 3315127889u, 0, FABS_TOLERANCE, 0},
+{ 821, 3196425891u, 2246037502u, 1049691002u, 1496066550u, 1048942243u, 2246037502u, 0, FABS_TOLERANCE, 0},
+{ 822, 3193006859u, 4191285446u, 3217936236u, 2382392789u, 1045523211u, 4191285446u, 0, FABS_TOLERANCE, 0},
+{ 823, 1092833308u, 640099844u, 1042152237u, 2064279383u, 1092833308u, 640099844u, 0, FABS_TOLERANCE, 0},
+{ 824, 1079913438u, 3468560824u, 1093251038u, 310958750u, 1079913438u, 3468560824u, 0, FABS_TOLERANCE, 0},
+{ 825, 1096788400u, 1413568905u, 1100941106u, 1627289946u, 1096788400u, 1413568905u, 0, FABS_TOLERANCE, 0},
+{ 826, 3191549550u, 3797143370u, 3195497539u, 3843275034u, 1044065902u, 3797143370u, 0, FABS_TOLERANCE, 0},
+{ 827, 3252077393u, 2806642640u, 3201943068u, 2515980718u, 1104593745u, 2806642640u, 0, FABS_TOLERANCE, 0},
+{ 828, 1086877316u, 632580632u, 1078673506u, 3259601317u, 1086877316u, 632580632u, 0, FABS_TOLERANCE, 0},
+{ 829, 3200980575u, 3309678799u, 1049337078u, 3056787074u, 1053496927u, 3309678799u, 0, FABS_TOLERANCE, 0},
+{ 830, 3221495289u, 2341164249u, 1080834967u, 2810890005u, 1074011641u, 2341164249u, 0, FABS_TOLERANCE, 0},
+{ 831, 1067019674u, 932124675u, 1093915797u, 662682630u, 1067019674u, 932124675u, 0, FABS_TOLERANCE, 0},
+{ 832, 3249230091u, 1367996113u, 3251723684u, 2974064663u, 1101746443u, 1367996113u, 0, FABS_TOLERANCE, 0},
+{ 833, 1080230731u, 323437999u, 1090499064u, 901457511u, 1080230731u, 323437999u, 0, FABS_TOLERANCE, 0},
+{ 834, 3235778876u, 4184941840u, 3196770014u, 2458988443u, 1088295228u, 4184941840u, 0, FABS_TOLERANCE, 0},
+{ 835, 1087618284u, 2023065054u, 3211994098u, 2734612965u, 1087618284u, 2023065054u, 0, FABS_TOLERANCE, 0},
+{ 836, 1064074694u, 3679267365u, 3237728785u, 1699558211u, 1064074694u, 3679267365u, 0, FABS_TOLERANCE, 0},
+{ 837, 1088079010u, 1826799031u, 1078709629u, 3986905229u, 1088079010u, 1826799031u, 0, FABS_TOLERANCE, 0},
+{ 838, 1052843785u, 351061688u, 3194386466u, 4105857588u, 1052843785u, 351061688u, 0, FABS_TOLERANCE, 0},
+{ 839, 1054128006u, 1365244058u, 1064457319u, 1452191426u, 1054128006u, 1365244058u, 0, FABS_TOLERANCE, 0},
+{ 840, 1064122385u, 2463030625u, 3215975031u, 3773488326u, 1064122385u, 2463030625u, 0, FABS_TOLERANCE, 0},
+{ 841, 3251276671u, 752664055u, 1065110394u, 1835931663u, 1103793023u, 752664055u, 0, FABS_TOLERANCE, 0},
+{ 842, 1088045088u, 3496172149u, 1089617208u, 109068701u, 1088045088u, 3496172149u, 0, FABS_TOLERANCE, 0},
+{ 843, 3198135087u, 1636966254u, 1086098766u, 2016598298u, 1050651439u, 1636966254u, 0, FABS_TOLERANCE, 0},
+{ 844, 1050931318u, 3551516956u, 1097969102u, 1317953425u, 1050931318u, 3551516956u, 0, FABS_TOLERANCE, 0},
+{ 845, 3229832217u, 2977627788u, 1045339018u, 516058480u, 1082348569u, 2977627788u, 0, FABS_TOLERANCE, 0},
+{ 846, 3237408578u, 3901731263u, 3189566462u, 32272932u, 1089924930u, 3901731263u, 0, FABS_TOLERANCE, 0},
+{ 847, 1077281796u, 1956025297u, 3246628529u, 3840733905u, 1077281796u, 1956025297u, 0, FABS_TOLERANCE, 0},
+{ 848, 1099818036u, 561057891u, 3198494340u, 4271027193u, 1099818036u, 561057891u, 0, FABS_TOLERANCE, 0},
+{ 849, 3250929921u, 692989850u, 3242630588u, 2492225971u, 1103446273u, 692989850u, 0, FABS_TOLERANCE, 0},
+{ 850, 3205479397u, 3439913962u, 1067477011u, 2973333638u, 1057995749u, 3439913962u, 0, FABS_TOLERANCE, 0},
+{ 851, 3213993989u, 877613377u, 1044917899u, 809672798u, 1066510341u, 877613377u, 0, FABS_TOLERANCE, 0},
+{ 852, 3222171454u, 905426932u, 1046417457u, 1086320855u, 1074687806u, 905426932u, 0, FABS_TOLERANCE, 0},
+{ 853, 3246346629u, 2645567288u, 1051258339u, 557182478u, 1098862981u, 2645567288u, 0, FABS_TOLERANCE, 0},
+{ 854, 3204057950u, 186287752u, 1061342054u, 4054003419u, 1056574302u, 186287752u, 0, FABS_TOLERANCE, 0},
+{ 855, 1097266673u, 3506889716u, 3243866036u, 519056371u, 1097266673u, 3506889716u, 0, FABS_TOLERANCE, 0},
+{ 856, 1042654053u, 2171898436u, 3246911982u, 1091500784u, 1042654053u, 2171898436u, 0, FABS_TOLERANCE, 0},
+{ 857, 3243647673u, 368493885u, 3222871893u, 1419055230u, 1096164025u, 368493885u, 0, FABS_TOLERANCE, 0},
+{ 858, 1091950572u, 2010971245u, 3188804530u, 1518695799u, 1091950572u, 2010971245u, 0, FABS_TOLERANCE, 0},
+{ 859, 3205426509u, 1239207795u, 1040192984u, 2199481342u, 1057942861u, 1239207795u, 0, FABS_TOLERANCE, 0},
+{ 860, 3210978637u, 4264613432u, 3203460972u, 3558930895u, 1063494989u, 4264613432u, 0, FABS_TOLERANCE, 0},
+{ 861, 1050299283u, 3772748958u, 3227667376u, 309688336u, 1050299283u, 3772748958u, 0, FABS_TOLERANCE, 0},
+{ 862, 3230743041u, 1077949160u, 1075769893u, 2405271377u, 1083259393u, 1077949160u, 0, FABS_TOLERANCE, 0},
+{ 863, 1091835152u, 3751608506u, 3232278094u, 930375071u, 1091835152u, 3751608506u, 0, FABS_TOLERANCE, 0},
+{ 864, 3198617153u, 1518334131u, 3205247482u, 791756713u, 1051133505u, 1518334131u, 0, FABS_TOLERANCE, 0},
+{ 865, 1047317453u, 2825203170u, 3245054001u, 1822981827u, 1047317453u, 2825203170u, 0, FABS_TOLERANCE, 0},
+{ 866, 1100016363u, 514474738u, 1089072073u, 3300845441u, 1100016363u, 514474738u, 0, FABS_TOLERANCE, 0},
+{ 867, 3216391250u, 247369460u, 3197320093u, 687450958u, 1068907602u, 247369460u, 0, FABS_TOLERANCE, 0},
+{ 868, 1104161422u, 2722237629u, 1058272368u, 90602316u, 1104161422u, 2722237629u, 0, FABS_TOLERANCE, 0},
+{ 869, 3208098435u, 1845900544u, 3231520830u, 3389751458u, 1060614787u, 1845900544u, 0, FABS_TOLERANCE, 0},
+{ 870, 3247535245u, 737689911u, 3195377751u, 3462616966u, 1100051597u, 737689911u, 0, FABS_TOLERANCE, 0},
+{ 871, 3223538384u, 3620285831u, 1055501023u, 2708056059u, 1076054736u, 3620285831u, 0, FABS_TOLERANCE, 0},
+{ 872, 3219464996u, 4073430285u, 1056206159u, 172017902u, 1071981348u, 4073430285u, 0, FABS_TOLERANCE, 0},
+{ 873, 3212869638u, 2799176222u, 1052706894u, 4083892667u, 1065385990u, 2799176222u, 0, FABS_TOLERANCE, 0},
+{ 874, 3202279557u, 1562351330u, 1069705601u, 1247765260u, 1054795909u, 1562351330u, 0, FABS_TOLERANCE, 0},
+{ 875, 3232717299u, 51853475u, 3189080201u, 2783553144u, 1085233651u, 51853475u, 0, FABS_TOLERANCE, 0},
+{ 876, 3219454353u, 3851781549u, 3241598113u, 514064046u, 1071970705u, 3851781549u, 0, FABS_TOLERANCE, 0},
+{ 877, 1100045965u, 934745487u, 3248182437u, 2798581921u, 1100045965u, 934745487u, 0, FABS_TOLERANCE, 0},
+{ 878, 3213082493u, 2948648757u, 3232177250u, 4278702895u, 1065598845u, 2948648757u, 0, FABS_TOLERANCE, 0},
+{ 879, 1072485724u, 4259101461u, 1061606772u, 84229920u, 1072485724u, 4259101461u, 0, FABS_TOLERANCE, 0},
+{ 880, 3198075559u, 3891230598u, 1095924595u, 3049217547u, 1050591911u, 3891230598u, 0, FABS_TOLERANCE, 0},
+{ 881, 1077353053u, 3806018919u, 3243191216u, 280177341u, 1077353053u, 3806018919u, 0, FABS_TOLERANCE, 0},
+{ 882, 1060624530u, 3900344258u, 1063647809u, 4206745890u, 1060624530u, 3900344258u, 0, FABS_TOLERANCE, 0},
+{ 883, 3227707336u, 2126253040u, 3207248026u, 808507485u, 1080223688u, 2126253040u, 0, FABS_TOLERANCE, 0},
+{ 884, 1086090317u, 3465685634u, 3230391053u, 3754958214u, 1086090317u, 3465685634u, 0, FABS_TOLERANCE, 0},
+{ 885, 1102861084u, 461094531u, 1101110393u, 1316091396u, 1102861084u, 461094531u, 0, FABS_TOLERANCE, 0},
+{ 886, 1064980314u, 4197635149u, 1091873113u, 1240127141u, 1064980314u, 4197635149u, 0, FABS_TOLERANCE, 0},
+{ 887, 1074333893u, 118603800u, 1105304898u, 4291425557u, 1074333893u, 118603800u, 0, FABS_TOLERANCE, 0},
+{ 888, 3213429165u, 3744663425u, 3212482771u, 953662066u, 1065945517u, 3744663425u, 0, FABS_TOLERANCE, 0},
+{ 889, 1085171305u, 3564196690u, 3228101916u, 904305212u, 1085171305u, 3564196690u, 0, FABS_TOLERANCE, 0},
+{ 890, 1048333111u, 3566257266u, 3235138829u, 2734275140u, 1048333111u, 3566257266u, 0, FABS_TOLERANCE, 0},
+{ 891, 3243948477u, 606044282u, 3241318094u, 2446416887u, 1096464829u, 606044282u, 0, FABS_TOLERANCE, 0},
+{ 892, 1041627284u, 2336116589u, 3197594053u, 2296925138u, 1041627284u, 2336116589u, 0, FABS_TOLERANCE, 0},
+{ 893, 1058567659u, 907670625u, 3240769036u, 1827119006u, 1058567659u, 907670625u, 0, FABS_TOLERANCE, 0},
+{ 894, 1044467183u, 2818710946u, 3246059905u, 553394170u, 1044467183u, 2818710946u, 0, FABS_TOLERANCE, 0},
+{ 895, 3189504094u, 4099522736u, 3232742168u, 3718083858u, 1042020446u, 4099522736u, 0, FABS_TOLERANCE, 0},
+{ 896, 1092371276u, 1059279404u, 1080245336u, 175941677u, 1092371276u, 1059279404u, 0, FABS_TOLERANCE, 0},
+{ 897, 1105189691u, 1650862428u, 1061816101u, 1723201723u, 1105189691u, 1650862428u, 0, FABS_TOLERANCE, 0},
+{ 898, 3239012814u, 2462163405u, 3218946201u, 3876535372u, 1091529166u, 2462163405u, 0, FABS_TOLERANCE, 0},
+{ 899, 1084392886u, 495844137u, 1073721460u, 772777946u, 1084392886u, 495844137u, 0, FABS_TOLERANCE, 0},
+{ 900, 1052415330u, 458757721u, 3245680321u, 3609892707u, 1052415330u, 458757721u, 0, FABS_TOLERANCE, 0},
+{ 901, 3193282956u, 2533012202u, 1079980803u, 3592268374u, 1045799308u, 2533012202u, 0, FABS_TOLERANCE, 0},
+{ 902, 3203364780u, 4108274117u, 1063045844u, 571992389u, 1055881132u, 4108274117u, 0, FABS_TOLERANCE, 0},
+{ 903, 1090567271u, 3541110973u, 1096296754u, 3118427427u, 1090567271u, 3541110973u, 0, FABS_TOLERANCE, 0},
+{ 904, 3193980043u, 1213941007u, 1105433735u, 2172963370u, 1046496395u, 1213941007u, 0, FABS_TOLERANCE, 0},
+{ 905, 1096853359u, 272190288u, 1095452370u, 4026581530u, 1096853359u, 272190288u, 0, FABS_TOLERANCE, 0},
+{ 906, 1095583909u, 2843638672u, 1100510986u, 3190536898u, 1095583909u, 2843638672u, 0, FABS_TOLERANCE, 0},
+{ 907, 1083757094u, 2014317727u, 3247389683u, 2428462015u, 1083757094u, 2014317727u, 0, FABS_TOLERANCE, 0},
+{ 908, 1093976717u, 688442200u, 1047852515u, 3035186380u, 1093976717u, 688442200u, 0, FABS_TOLERANCE, 0},
+{ 909, 1076664212u, 1010095511u, 3221288076u, 405287991u, 1076664212u, 1010095511u, 0, FABS_TOLERANCE, 0},
+{ 910, 3252294615u, 2983070435u, 1089546472u, 2907918480u, 1104810967u, 2983070435u, 0, FABS_TOLERANCE, 0},
+{ 911, 1082988121u, 81928569u, 1056007286u, 2740556321u, 1082988121u, 81928569u, 0, FABS_TOLERANCE, 0},
+{ 912, 1041110867u, 2076689028u, 1081558619u, 3039159031u, 1041110867u, 2076689028u, 0, FABS_TOLERANCE, 0},
+{ 913, 1047307438u, 1376882094u, 3211003208u, 1296286481u, 1047307438u, 1376882094u, 0, FABS_TOLERANCE, 0},
+{ 914, 1080114314u, 744133164u, 3200943494u, 955832216u, 1080114314u, 744133164u, 0, FABS_TOLERANCE, 0},
+{ 915, 3226290326u, 176522478u, 1069999908u, 2891249491u, 1078806678u, 176522478u, 0, FABS_TOLERANCE, 0},
+{ 916, 1043564602u, 3685851715u, 3187829932u, 2363997529u, 1043564602u, 3685851715u, 0, FABS_TOLERANCE, 0},
+{ 917, 1040244055u, 3974431579u, 1052505165u, 2589067816u, 1040244055u, 3974431579u, 0, FABS_TOLERANCE, 0},
+{ 918, 3191496789u, 3819109588u, 1048561488u, 969143351u, 1044013141u, 3819109588u, 0, FABS_TOLERANCE, 0},
+{ 919, 1072639397u, 4246896124u, 1104584799u, 1940097860u, 1072639397u, 4246896124u, 0, FABS_TOLERANCE, 0},
+{ 920, 1048038468u, 2228686199u, 3220231833u, 777624847u, 1048038468u, 2228686199u, 0, FABS_TOLERANCE, 0},
+{ 921, 3231467306u, 4189906558u, 3203004203u, 854242364u, 1083983658u, 4189906558u, 0, FABS_TOLERANCE, 0},
+{ 922, 1103910407u, 4089051094u, 3227282692u, 2693170723u, 1103910407u, 4089051094u, 0, FABS_TOLERANCE, 0},
+{ 923, 1045883607u, 1278581412u, 3239296746u, 1774588717u, 1045883607u, 1278581412u, 0, FABS_TOLERANCE, 0},
+{ 924, 3222372686u, 1794845306u, 1104879344u, 4135865182u, 1074889038u, 1794845306u, 0, FABS_TOLERANCE, 0},
+{ 925, 1106449055u, 754938390u, 1061291430u, 2010786993u, 1106449055u, 754938390u, 0, FABS_TOLERANCE, 0},
+{ 926, 1073581409u, 2034303731u, 3240176537u, 314147356u, 1073581409u, 2034303731u, 0, FABS_TOLERANCE, 0},
+{ 927, 3231449194u, 567588900u, 3195452230u, 1421366017u, 1083965546u, 567588900u, 0, FABS_TOLERANCE, 0},
+{ 928, 3225089755u, 2708717091u, 1071975971u, 1364590470u, 1077606107u, 2708717091u, 0, FABS_TOLERANCE, 0},
+{ 929, 3252137283u, 3461956134u, 3207820115u, 1605709634u, 1104653635u, 3461956134u, 0, FABS_TOLERANCE, 0},
+{ 930, 1065302996u, 1497124553u, 1051715442u, 916736957u, 1065302996u, 1497124553u, 0, FABS_TOLERANCE, 0},
+{ 931, 1058468363u, 834914365u, 1064667143u, 2839166298u, 1058468363u, 834914365u, 0, FABS_TOLERANCE, 0},
+{ 932, 1057279949u, 2139295776u, 1062816721u, 914592523u, 1057279949u, 2139295776u, 0, FABS_TOLERANCE, 0},
+{ 933, 3189636931u, 851569132u, 1058503154u, 1399378677u, 1042153283u, 851569132u, 0, FABS_TOLERANCE, 0},
+{ 934, 3233537697u, 3897202342u, 3245382590u, 246600375u, 1086054049u, 3897202342u, 0, FABS_TOLERANCE, 0},
+{ 935, 3225460308u, 3620429520u, 1055627557u, 229305u, 1077976660u, 3620429520u, 0, FABS_TOLERANCE, 0},
+{ 936, 1083958833u, 3641997865u, 3206673888u, 93720614u, 1083958833u, 3641997865u, 0, FABS_TOLERANCE, 0},
+{ 937, 3227808435u, 32766320u, 1062084905u, 3668443038u, 1080324787u, 32766320u, 0, FABS_TOLERANCE, 0},
+{ 938, 3223298996u, 2039713492u, 3248699388u, 1346210821u, 1075815348u, 2039713492u, 0, FABS_TOLERANCE, 0},
+{ 939, 1093050016u, 1335820726u, 3191756860u, 1808427032u, 1093050016u, 1335820726u, 0, FABS_TOLERANCE, 0},
+{ 940, 1061442763u, 650692001u, 1103515670u, 2253348763u, 1061442763u, 650692001u, 0, FABS_TOLERANCE, 0},
+{ 941, 3191395187u, 2372623300u, 3210185343u, 3200572848u, 1043911539u, 2372623300u, 0, FABS_TOLERANCE, 0},
+{ 942, 1100796069u, 762317532u, 3194595095u, 3192607437u, 1100796069u, 762317532u, 0, FABS_TOLERANCE, 0},
+{ 943, 1062262701u, 217775356u, 3232827087u, 2969367386u, 1062262701u, 217775356u, 0, FABS_TOLERANCE, 0},
+{ 944, 1057172551u, 3621353969u, 1077994795u, 3873976266u, 1057172551u, 3621353969u, 0, FABS_TOLERANCE, 0},
+{ 945, 1091301987u, 268372152u, 3221764390u, 3216978962u, 1091301987u, 268372152u, 0, FABS_TOLERANCE, 0},
+{ 946, 3246437611u, 142942404u, 1075322987u, 1746449109u, 1098953963u, 142942404u, 0, FABS_TOLERANCE, 0},
+{ 947, 1104006296u, 496534875u, 3254522293u, 2532372502u, 1104006296u, 496534875u, 0, FABS_TOLERANCE, 0},
+{ 948, 3250225541u, 2999955409u, 3222793392u, 1868977643u, 1102741893u, 2999955409u, 0, FABS_TOLERANCE, 0},
+{ 949, 1074319042u, 3353193428u, 3218469191u, 3326244297u, 1074319042u, 3353193428u, 0, FABS_TOLERANCE, 0},
+{ 950, 1068218799u, 73646871u, 3231442171u, 3711510104u, 1068218799u, 73646871u, 0, FABS_TOLERANCE, 0},
+{ 951, 1090483524u, 218135177u, 3198908856u, 3082199105u, 1090483524u, 218135177u, 0, FABS_TOLERANCE, 0},
+{ 952, 1068068480u, 1061628117u, 3248859043u, 86776158u, 1068068480u, 1061628117u, 0, FABS_TOLERANCE, 0},
+{ 953, 3208484674u, 938869114u, 1087911145u, 2416710759u, 1061001026u, 938869114u, 0, FABS_TOLERANCE, 0},
+{ 954, 1095576832u, 2970853959u, 3239543429u, 1887505029u, 1095576832u, 2970853959u, 0, FABS_TOLERANCE, 0},
+{ 955, 3237728787u, 1337895935u, 1076463812u, 1172733328u, 1090245139u, 1337895935u, 0, FABS_TOLERANCE, 0},
+{ 956, 1049139928u, 1469010822u, 3229583535u, 551399515u, 1049139928u, 1469010822u, 0, FABS_TOLERANCE, 0},
+{ 957, 1074118123u, 1849711538u, 1049053713u, 1744276190u, 1074118123u, 1849711538u, 0, FABS_TOLERANCE, 0},
+{ 958, 3242138780u, 2976596113u, 3192137295u, 3033242648u, 1094655132u, 2976596113u, 0, FABS_TOLERANCE, 0},
+{ 959, 1098698481u, 876810930u, 3197470945u, 2571587447u, 1098698481u, 876810930u, 0, FABS_TOLERANCE, 0},
+{ 960, 3241770810u, 4007797282u, 3225853845u, 4069319648u, 1094287162u, 4007797282u, 0, FABS_TOLERANCE, 0},
+{ 961, 1047279982u, 3840538373u, 1043189552u, 3668774580u, 1047279982u, 3840538373u, 0, FABS_TOLERANCE, 0},
+{ 962, 3217611704u, 200857661u, 3229758439u, 3359367736u, 1070128056u, 200857661u, 0, FABS_TOLERANCE, 0},
+{ 963, 3248797869u, 111868139u, 3227902082u, 2366064003u, 1101314221u, 111868139u, 0, FABS_TOLERANCE, 0},
+{ 964, 1044195166u, 3510904416u, 3222131653u, 3822770497u, 1044195166u, 3510904416u, 0, FABS_TOLERANCE, 0},
+{ 965, 3242675715u, 789151814u, 1099269239u, 2958956055u, 1095192067u, 789151814u, 0, FABS_TOLERANCE, 0},
+{ 966, 1084679320u, 722163228u, 1105524559u, 1534462169u, 1084679320u, 722163228u, 0, FABS_TOLERANCE, 0},
+{ 967, 1046586062u, 2207037106u, 3208952465u, 1231254630u, 1046586062u, 2207037106u, 0, FABS_TOLERANCE, 0},
+{ 968, 3197884060u, 3838689849u, 3198769679u, 1302617170u, 1050400412u, 3838689849u, 0, FABS_TOLERANCE, 0},
+{ 969, 1085938906u, 2527556476u, 3240373426u, 124352692u, 1085938906u, 2527556476u, 0, FABS_TOLERANCE, 0},
+{ 970, 3199540805u, 3502371499u, 1043411944u, 4190072016u, 1052057157u, 3502371499u, 0, FABS_TOLERANCE, 0},
+{ 971, 1064676142u, 1798470077u, 3200116917u, 3421833729u, 1064676142u, 1798470077u, 0, FABS_TOLERANCE, 0},
+{ 972, 3193514956u, 3653237931u, 3204255012u, 3683870669u, 1046031308u, 3653237931u, 0, FABS_TOLERANCE, 0},
+{ 973, 1053588582u, 376530104u, 1073853547u, 565755892u, 1053588582u, 376530104u, 0, FABS_TOLERANCE, 0},
+{ 974, 3242503851u, 558292492u, 1051772749u, 4267873474u, 1095020203u, 558292492u, 0, FABS_TOLERANCE, 0},
+{ 975, 3224772709u, 509637100u, 3212030069u, 215050379u, 1077289061u, 509637100u, 0, FABS_TOLERANCE, 0},
+{ 976, 1092057101u, 3571665665u, 3188628584u, 757824767u, 1092057101u, 3571665665u, 0, FABS_TOLERANCE, 0},
+{ 977, 3214799337u, 998858159u, 1063077962u, 436029885u, 1067315689u, 998858159u, 0, FABS_TOLERANCE, 0},
+{ 978, 3205946965u, 996300405u, 3193842624u, 80548098u, 1058463317u, 996300405u, 0, FABS_TOLERANCE, 0},
+{ 979, 3228848840u, 3876129407u, 3215332180u, 2226970413u, 1081365192u, 3876129407u, 0, FABS_TOLERANCE, 0},
+{ 980, 3237608953u, 200013509u, 3224552716u, 414878724u, 1090125305u, 200013509u, 0, FABS_TOLERANCE, 0},
+{ 981, 3230617093u, 309319541u, 1048979765u, 1261662434u, 1083133445u, 309319541u, 0, FABS_TOLERANCE, 0},
+{ 982, 1089252639u, 4062255924u, 3224274128u, 4289485681u, 1089252639u, 4062255924u, 0, FABS_TOLERANCE, 0},
+{ 983, 3236136084u, 1611969213u, 1053890378u, 3774617276u, 1088652436u, 1611969213u, 0, FABS_TOLERANCE, 0},
+{ 984, 1080412763u, 1752164782u, 3239587974u, 612223386u, 1080412763u, 1752164782u, 0, FABS_TOLERANCE, 0},
+{ 985, 1041545782u, 2024044989u, 1074932678u, 3259111307u, 1041545782u, 2024044989u, 0, FABS_TOLERANCE, 0},
+{ 986, 1053207518u, 2564965629u, 1093571065u, 169360454u, 1053207518u, 2564965629u, 0, FABS_TOLERANCE, 0},
+{ 987, 1089599090u, 1860101737u, 3191222372u, 1676437468u, 1089599090u, 1860101737u, 0, FABS_TOLERANCE, 0},
+{ 988, 1059802968u, 588387057u, 3192103292u, 2495288012u, 1059802968u, 588387057u, 0, FABS_TOLERANCE, 0},
+{ 989, 3193155705u, 659070058u, 1073095700u, 1393632068u, 1045672057u, 659070058u, 0, FABS_TOLERANCE, 0},
+{ 990, 3217683263u, 4276187829u, 3217553330u, 1868253275u, 1070199615u, 4276187829u, 0, FABS_TOLERANCE, 0},
+{ 991, 3223220272u, 2085481575u, 3215994784u, 800910002u, 1075736624u, 2085481575u, 0, FABS_TOLERANCE, 0},
+{ 992, 1056934836u, 1950570756u, 3200582211u, 941022151u, 1056934836u, 1950570756u, 0, FABS_TOLERANCE, 0},
+{ 993, 1057530368u, 2075610870u, 3250142022u, 3605152103u, 1057530368u, 2075610870u, 0, FABS_TOLERANCE, 0},
+{ 994, 3200839250u, 3792931748u, 3204857863u, 804393211u, 1053355602u, 3792931748u, 0, FABS_TOLERANCE, 0},
+{ 995, 3253646370u, 3430071177u, 3226288311u, 3652522729u, 1106162722u, 3430071177u, 0, FABS_TOLERANCE, 0},
+{ 996, 3201314702u, 236884699u, 3227874605u, 2193269825u, 1053831054u, 236884699u, 0, FABS_TOLERANCE, 0},
+{ 997, 1064936593u, 2744231849u, 1046186036u, 771053722u, 1064936593u, 2744231849u, 0, FABS_TOLERANCE, 0},
+{ 998, 1083996036u, 3000189819u, 1096500901u, 2057239777u, 1083996036u, 3000189819u, 0, FABS_TOLERANCE, 0},
+{ 999, 1093835581u, 205759408u, 3244643377u, 2702292618u, 1093835581u, 205759408u, 0, FABS_TOLERANCE, 0},
+
+
+// AUTOMATICALLY GENERATED VECTORS STOP
+
+};
+
+#endif // CYGONCE_LIBM_FABS_H multiple inclusion protection
+
+// EOF fabs.h
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/fabsf.c b/ecos/packages/language/c/libm/current/tests/vectors/fabsf.c
new file mode 100644
index 0000000..c584412
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/fabsf.c
@@ -0,0 +1,115 @@
+//===========================================================================
+//
+// fabsf.c
+//
+// Test of fabsf() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// Declarations for test system:
+//
+// TESTCASE_TYPE=CYG_TEST_MODULE
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include <cyg/infra/testcase.h> // Test infrastructure
+#include <math.h> // Header for this package
+#include <sys/ieeefp.h> // Cyg_libm_ieee_float_shape_type
+#include "vectors/vector_support_float.h"// extra support for math tests
+
+#include "vectors/fabsf.h"
+
+// FUNCTIONS
+
+static void
+test( CYG_ADDRWORD data )
+{
+ cyg_ucount32 vec_size;
+ cyg_bool ret;
+
+ vec_size = sizeof(fabsf_vec) / sizeof(Cyg_libm_test_float_vec_t);
+ ret = doTestVecFloat( (CYG_ADDRWORD) &fabsf, CYG_LIBM_TEST_VEC_FLOAT,
+ CYG_LIBM_TEST_VEC_NONE, CYG_LIBM_TEST_VEC_FLOAT,
+ &fabsf_vec[0], vec_size );
+
+ if (ret==true)
+ {
+ CYG_TEST_PASS("fabsf() is stable");
+ } // if
+ else
+ {
+ CYG_TEST_FAIL("fabsf() failed tests");
+ } // else
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for Math "
+ "library fabsf() function");
+} // test()
+
+
+int
+main(int argc, char *argv[])
+{
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for Math library "
+ "fabsf() function");
+
+ START_TEST( test );
+
+ CYG_TEST_PASS_FINISH("Testing is not applicable to this configuration");
+
+} // main()
+
+
+// EOF fabsf.c
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/fabsf.h b/ecos/packages/language/c/libm/current/tests/vectors/fabsf.h
new file mode 100644
index 0000000..e09b3b7
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/fabsf.h
@@ -0,0 +1,1235 @@
+#ifndef CYGONCE_LIBM_FABSF_H
+#define CYGONCE_LIBM_FABSF_H
+//===========================================================================
+//
+// fabsf.h
+//
+// Test vectors for testing of fabsf() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage: #include "vectors/fabsf.h"
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include "vectors/vector_support_float.h"// extra support for math tests
+
+#define FABSF_TOLERANCE 1.0E-04
+
+static const Cyg_libm_test_float_vec_t fabsf_vec[] = {
+
+// AUTOMATICALLY GENERATED VECTORS START
+
+{0, 3214514586u, 0u, 1067030938u, 0, FABSF_TOLERANCE, 0},
+{1, 3214430700u, 0u, 1066947052u, 0, FABSF_TOLERANCE, 0},
+{2, 3214346813u, 0u, 1066863165u, 0, FABSF_TOLERANCE, 0},
+{3, 3214262927u, 0u, 1066779279u, 0, FABSF_TOLERANCE, 0},
+{4, 3214179041u, 0u, 1066695393u, 0, FABSF_TOLERANCE, 0},
+{5, 3214095155u, 0u, 1066611507u, 0, FABSF_TOLERANCE, 0},
+{6, 3214011269u, 0u, 1066527621u, 0, FABSF_TOLERANCE, 0},
+{7, 3213927383u, 0u, 1066443735u, 0, FABSF_TOLERANCE, 0},
+{8, 3213843497u, 0u, 1066359849u, 0, FABSF_TOLERANCE, 0},
+{9, 3213759611u, 0u, 1066275963u, 0, FABSF_TOLERANCE, 0},
+{10, 3213675725u, 0u, 1066192077u, 0, FABSF_TOLERANCE, 0},
+{11, 3213591839u, 0u, 1066108191u, 0, FABSF_TOLERANCE, 0},
+{12, 3213507953u, 0u, 1066024305u, 0, FABSF_TOLERANCE, 0},
+{13, 3213424067u, 0u, 1065940419u, 0, FABSF_TOLERANCE, 0},
+{14, 3213340180u, 0u, 1065856532u, 0, FABSF_TOLERANCE, 0},
+{15, 3213256294u, 0u, 1065772646u, 0, FABSF_TOLERANCE, 0},
+{16, 3213172408u, 0u, 1065688760u, 0, FABSF_TOLERANCE, 0},
+{17, 3213088522u, 0u, 1065604874u, 0, FABSF_TOLERANCE, 0},
+{18, 3213004636u, 0u, 1065520988u, 0, FABSF_TOLERANCE, 0},
+{19, 3212920750u, 0u, 1065437102u, 0, FABSF_TOLERANCE, 0},
+{20, 3212836864u, 0u, 1065353216u, 0, FABSF_TOLERANCE, 0},
+{21, 3212669092u, 0u, 1065185444u, 0, FABSF_TOLERANCE, 0},
+{22, 3212501320u, 0u, 1065017672u, 0, FABSF_TOLERANCE, 0},
+{23, 3212333548u, 0u, 1064849900u, 0, FABSF_TOLERANCE, 0},
+{24, 3212165775u, 0u, 1064682127u, 0, FABSF_TOLERANCE, 0},
+{25, 3211998003u, 0u, 1064514355u, 0, FABSF_TOLERANCE, 0},
+{26, 3211830231u, 0u, 1064346583u, 0, FABSF_TOLERANCE, 0},
+{27, 3211662459u, 0u, 1064178811u, 0, FABSF_TOLERANCE, 0},
+{28, 3211494687u, 0u, 1064011039u, 0, FABSF_TOLERANCE, 0},
+{29, 3211326915u, 0u, 1063843267u, 0, FABSF_TOLERANCE, 0},
+{30, 3211159142u, 0u, 1063675494u, 0, FABSF_TOLERANCE, 0},
+{31, 3210991370u, 0u, 1063507722u, 0, FABSF_TOLERANCE, 0},
+{32, 3210823598u, 0u, 1063339950u, 0, FABSF_TOLERANCE, 0},
+{33, 3210655826u, 0u, 1063172178u, 0, FABSF_TOLERANCE, 0},
+{34, 3210488054u, 0u, 1063004406u, 0, FABSF_TOLERANCE, 0},
+{35, 3210320282u, 0u, 1062836634u, 0, FABSF_TOLERANCE, 0},
+{36, 3210152509u, 0u, 1062668861u, 0, FABSF_TOLERANCE, 0},
+{37, 3209984737u, 0u, 1062501089u, 0, FABSF_TOLERANCE, 0},
+{38, 3209816965u, 0u, 1062333317u, 0, FABSF_TOLERANCE, 0},
+{39, 3209649193u, 0u, 1062165545u, 0, FABSF_TOLERANCE, 0},
+{40, 3209481421u, 0u, 1061997773u, 0, FABSF_TOLERANCE, 0},
+{41, 3209313649u, 0u, 1061830001u, 0, FABSF_TOLERANCE, 0},
+{42, 3209145876u, 0u, 1061662228u, 0, FABSF_TOLERANCE, 0},
+{43, 3208978104u, 0u, 1061494456u, 0, FABSF_TOLERANCE, 0},
+{44, 3208810332u, 0u, 1061326684u, 0, FABSF_TOLERANCE, 0},
+{45, 3208642560u, 0u, 1061158912u, 0, FABSF_TOLERANCE, 0},
+{46, 3208474788u, 0u, 1060991140u, 0, FABSF_TOLERANCE, 0},
+{47, 3208307016u, 0u, 1060823368u, 0, FABSF_TOLERANCE, 0},
+{48, 3208139244u, 0u, 1060655596u, 0, FABSF_TOLERANCE, 0},
+{49, 3207971471u, 0u, 1060487823u, 0, FABSF_TOLERANCE, 0},
+{50, 3207803699u, 0u, 1060320051u, 0, FABSF_TOLERANCE, 0},
+{51, 3207635927u, 0u, 1060152279u, 0, FABSF_TOLERANCE, 0},
+{52, 3207468155u, 0u, 1059984507u, 0, FABSF_TOLERANCE, 0},
+{53, 3207300383u, 0u, 1059816735u, 0, FABSF_TOLERANCE, 0},
+{54, 3207132611u, 0u, 1059648963u, 0, FABSF_TOLERANCE, 0},
+{55, 3206964838u, 0u, 1059481190u, 0, FABSF_TOLERANCE, 0},
+{56, 3206797066u, 0u, 1059313418u, 0, FABSF_TOLERANCE, 0},
+{57, 3206629294u, 0u, 1059145646u, 0, FABSF_TOLERANCE, 0},
+{58, 3206461522u, 0u, 1058977874u, 0, FABSF_TOLERANCE, 0},
+{59, 3206293750u, 0u, 1058810102u, 0, FABSF_TOLERANCE, 0},
+{60, 3206125978u, 0u, 1058642330u, 0, FABSF_TOLERANCE, 0},
+{61, 3205958205u, 0u, 1058474557u, 0, FABSF_TOLERANCE, 0},
+{62, 3205790433u, 0u, 1058306785u, 0, FABSF_TOLERANCE, 0},
+{63, 3205622661u, 0u, 1058139013u, 0, FABSF_TOLERANCE, 0},
+{64, 3205454889u, 0u, 1057971241u, 0, FABSF_TOLERANCE, 0},
+{65, 3205287117u, 0u, 1057803469u, 0, FABSF_TOLERANCE, 0},
+{66, 3205119345u, 0u, 1057635697u, 0, FABSF_TOLERANCE, 0},
+{67, 3204951572u, 0u, 1057467924u, 0, FABSF_TOLERANCE, 0},
+{68, 3204783800u, 0u, 1057300152u, 0, FABSF_TOLERANCE, 0},
+{69, 3204616028u, 0u, 1057132380u, 0, FABSF_TOLERANCE, 0},
+{70, 3204448256u, 0u, 1056964608u, 0, FABSF_TOLERANCE, 0},
+{71, 3204112712u, 0u, 1056629064u, 0, FABSF_TOLERANCE, 0},
+{72, 3203777167u, 0u, 1056293519u, 0, FABSF_TOLERANCE, 0},
+{73, 3203441623u, 0u, 1055957975u, 0, FABSF_TOLERANCE, 0},
+{74, 3203106079u, 0u, 1055622431u, 0, FABSF_TOLERANCE, 0},
+{75, 3202770534u, 0u, 1055286886u, 0, FABSF_TOLERANCE, 0},
+{76, 3202434990u, 0u, 1054951342u, 0, FABSF_TOLERANCE, 0},
+{77, 3202099446u, 0u, 1054615798u, 0, FABSF_TOLERANCE, 0},
+{78, 3201763901u, 0u, 1054280253u, 0, FABSF_TOLERANCE, 0},
+{79, 3201428357u, 0u, 1053944709u, 0, FABSF_TOLERANCE, 0},
+{80, 3201092813u, 0u, 1053609165u, 0, FABSF_TOLERANCE, 0},
+{81, 3200757268u, 0u, 1053273620u, 0, FABSF_TOLERANCE, 0},
+{82, 3200421724u, 0u, 1052938076u, 0, FABSF_TOLERANCE, 0},
+{83, 3200086180u, 0u, 1052602532u, 0, FABSF_TOLERANCE, 0},
+{84, 3199750636u, 0u, 1052266988u, 0, FABSF_TOLERANCE, 0},
+{85, 3199415091u, 0u, 1051931443u, 0, FABSF_TOLERANCE, 0},
+{86, 3199079547u, 0u, 1051595899u, 0, FABSF_TOLERANCE, 0},
+{87, 3198744003u, 0u, 1051260355u, 0, FABSF_TOLERANCE, 0},
+{88, 3198408458u, 0u, 1050924810u, 0, FABSF_TOLERANCE, 0},
+{89, 3198072914u, 0u, 1050589266u, 0, FABSF_TOLERANCE, 0},
+{90, 3197737370u, 0u, 1050253722u, 0, FABSF_TOLERANCE, 0},
+{91, 3197401825u, 0u, 1049918177u, 0, FABSF_TOLERANCE, 0},
+{92, 3197066281u, 0u, 1049582633u, 0, FABSF_TOLERANCE, 0},
+{93, 3196730737u, 0u, 1049247089u, 0, FABSF_TOLERANCE, 0},
+{94, 3196395192u, 0u, 1048911544u, 0, FABSF_TOLERANCE, 0},
+{95, 3196059648u, 0u, 1048576000u, 0, FABSF_TOLERANCE, 0},
+{96, 3195388559u, 0u, 1047904911u, 0, FABSF_TOLERANCE, 0},
+{97, 3194717471u, 0u, 1047233823u, 0, FABSF_TOLERANCE, 0},
+{98, 3194046382u, 0u, 1046562734u, 0, FABSF_TOLERANCE, 0},
+{99, 3193375293u, 0u, 1045891645u, 0, FABSF_TOLERANCE, 0},
+{100, 3192704205u, 0u, 1045220557u, 0, FABSF_TOLERANCE, 0},
+{101, 3192033116u, 0u, 1044549468u, 0, FABSF_TOLERANCE, 0},
+{102, 3191362028u, 0u, 1043878380u, 0, FABSF_TOLERANCE, 0},
+{103, 3190690939u, 0u, 1043207291u, 0, FABSF_TOLERANCE, 0},
+{104, 3190019850u, 0u, 1042536202u, 0, FABSF_TOLERANCE, 0},
+{105, 3189348762u, 0u, 1041865114u, 0, FABSF_TOLERANCE, 0},
+{106, 3188677673u, 0u, 1041194025u, 0, FABSF_TOLERANCE, 0},
+{107, 3188006584u, 0u, 1040522936u, 0, FABSF_TOLERANCE, 0},
+{108, 3186999951u, 0u, 1039516303u, 0, FABSF_TOLERANCE, 0},
+{109, 3185657774u, 0u, 1038174126u, 0, FABSF_TOLERANCE, 0},
+{110, 3184315597u, 0u, 1036831949u, 0, FABSF_TOLERANCE, 0},
+{111, 3182973420u, 0u, 1035489772u, 0, FABSF_TOLERANCE, 0},
+{112, 3181631242u, 0u, 1034147594u, 0, FABSF_TOLERANCE, 0},
+{113, 3180289065u, 0u, 1032805417u, 0, FABSF_TOLERANCE, 0},
+{114, 3178611343u, 0u, 1031127695u, 0, FABSF_TOLERANCE, 0},
+{115, 3175926989u, 0u, 1028443341u, 0, FABSF_TOLERANCE, 0},
+{116, 3173242634u, 0u, 1025758986u, 0, FABSF_TOLERANCE, 0},
+{117, 3170222735u, 0u, 1022739087u, 0, FABSF_TOLERANCE, 0},
+{118, 3164854026u, 0u, 1017370378u, 0, FABSF_TOLERANCE, 0},
+{119, 3156465418u, 0u, 1008981770u, 0, FABSF_TOLERANCE, 0},
+{120, 646742016u, 0u, 646742016u, 0, FABSF_TOLERANCE, 0},
+{121, 1008981770u, 0u, 1008981770u, 0, FABSF_TOLERANCE, 0},
+{122, 1017370378u, 0u, 1017370378u, 0, FABSF_TOLERANCE, 0},
+{123, 1022739087u, 0u, 1022739087u, 0, FABSF_TOLERANCE, 0},
+{124, 1025758986u, 0u, 1025758986u, 0, FABSF_TOLERANCE, 0},
+{125, 1028443341u, 0u, 1028443341u, 0, FABSF_TOLERANCE, 0},
+{126, 1031127695u, 0u, 1031127695u, 0, FABSF_TOLERANCE, 0},
+{127, 1032805417u, 0u, 1032805417u, 0, FABSF_TOLERANCE, 0},
+{128, 1034147594u, 0u, 1034147594u, 0, FABSF_TOLERANCE, 0},
+{129, 1035489772u, 0u, 1035489772u, 0, FABSF_TOLERANCE, 0},
+{130, 1036831949u, 0u, 1036831949u, 0, FABSF_TOLERANCE, 0},
+{131, 1038174126u, 0u, 1038174126u, 0, FABSF_TOLERANCE, 0},
+{132, 1039516303u, 0u, 1039516303u, 0, FABSF_TOLERANCE, 0},
+{133, 1040522936u, 0u, 1040522936u, 0, FABSF_TOLERANCE, 0},
+{134, 1041194025u, 0u, 1041194025u, 0, FABSF_TOLERANCE, 0},
+{135, 1041865114u, 0u, 1041865114u, 0, FABSF_TOLERANCE, 0},
+{136, 1042536202u, 0u, 1042536202u, 0, FABSF_TOLERANCE, 0},
+{137, 1043207291u, 0u, 1043207291u, 0, FABSF_TOLERANCE, 0},
+{138, 1043878380u, 0u, 1043878380u, 0, FABSF_TOLERANCE, 0},
+{139, 1044549468u, 0u, 1044549468u, 0, FABSF_TOLERANCE, 0},
+{140, 1045220557u, 0u, 1045220557u, 0, FABSF_TOLERANCE, 0},
+{141, 1045891645u, 0u, 1045891645u, 0, FABSF_TOLERANCE, 0},
+{142, 1046562734u, 0u, 1046562734u, 0, FABSF_TOLERANCE, 0},
+{143, 1047233823u, 0u, 1047233823u, 0, FABSF_TOLERANCE, 0},
+{144, 1047904911u, 0u, 1047904911u, 0, FABSF_TOLERANCE, 0},
+{145, 1048576000u, 0u, 1048576000u, 0, FABSF_TOLERANCE, 0},
+{146, 1048911544u, 0u, 1048911544u, 0, FABSF_TOLERANCE, 0},
+{147, 1049247089u, 0u, 1049247089u, 0, FABSF_TOLERANCE, 0},
+{148, 1049582633u, 0u, 1049582633u, 0, FABSF_TOLERANCE, 0},
+{149, 1049918177u, 0u, 1049918177u, 0, FABSF_TOLERANCE, 0},
+{150, 1050253722u, 0u, 1050253722u, 0, FABSF_TOLERANCE, 0},
+{151, 1050589266u, 0u, 1050589266u, 0, FABSF_TOLERANCE, 0},
+{152, 1050924810u, 0u, 1050924810u, 0, FABSF_TOLERANCE, 0},
+{153, 1051260355u, 0u, 1051260355u, 0, FABSF_TOLERANCE, 0},
+{154, 1051595899u, 0u, 1051595899u, 0, FABSF_TOLERANCE, 0},
+{155, 1051931443u, 0u, 1051931443u, 0, FABSF_TOLERANCE, 0},
+{156, 1052266988u, 0u, 1052266988u, 0, FABSF_TOLERANCE, 0},
+{157, 1052602532u, 0u, 1052602532u, 0, FABSF_TOLERANCE, 0},
+{158, 1052938076u, 0u, 1052938076u, 0, FABSF_TOLERANCE, 0},
+{159, 1053273620u, 0u, 1053273620u, 0, FABSF_TOLERANCE, 0},
+{160, 1053609165u, 0u, 1053609165u, 0, FABSF_TOLERANCE, 0},
+{161, 1053944709u, 0u, 1053944709u, 0, FABSF_TOLERANCE, 0},
+{162, 1054280253u, 0u, 1054280253u, 0, FABSF_TOLERANCE, 0},
+{163, 1054615798u, 0u, 1054615798u, 0, FABSF_TOLERANCE, 0},
+{164, 1054951342u, 0u, 1054951342u, 0, FABSF_TOLERANCE, 0},
+{165, 1055286886u, 0u, 1055286886u, 0, FABSF_TOLERANCE, 0},
+{166, 1055622431u, 0u, 1055622431u, 0, FABSF_TOLERANCE, 0},
+{167, 1055957975u, 0u, 1055957975u, 0, FABSF_TOLERANCE, 0},
+{168, 1056293519u, 0u, 1056293519u, 0, FABSF_TOLERANCE, 0},
+{169, 1056629064u, 0u, 1056629064u, 0, FABSF_TOLERANCE, 0},
+{170, 1056964608u, 0u, 1056964608u, 0, FABSF_TOLERANCE, 0},
+{171, 1057132380u, 0u, 1057132380u, 0, FABSF_TOLERANCE, 0},
+{172, 1057300152u, 0u, 1057300152u, 0, FABSF_TOLERANCE, 0},
+{173, 1057467924u, 0u, 1057467924u, 0, FABSF_TOLERANCE, 0},
+{174, 1057635697u, 0u, 1057635697u, 0, FABSF_TOLERANCE, 0},
+{175, 1057803469u, 0u, 1057803469u, 0, FABSF_TOLERANCE, 0},
+{176, 1057971241u, 0u, 1057971241u, 0, FABSF_TOLERANCE, 0},
+{177, 1058139013u, 0u, 1058139013u, 0, FABSF_TOLERANCE, 0},
+{178, 1058306785u, 0u, 1058306785u, 0, FABSF_TOLERANCE, 0},
+{179, 1058474557u, 0u, 1058474557u, 0, FABSF_TOLERANCE, 0},
+{180, 1058642330u, 0u, 1058642330u, 0, FABSF_TOLERANCE, 0},
+{181, 1058810102u, 0u, 1058810102u, 0, FABSF_TOLERANCE, 0},
+{182, 1058977874u, 0u, 1058977874u, 0, FABSF_TOLERANCE, 0},
+{183, 1059145646u, 0u, 1059145646u, 0, FABSF_TOLERANCE, 0},
+{184, 1059313418u, 0u, 1059313418u, 0, FABSF_TOLERANCE, 0},
+{185, 1059481190u, 0u, 1059481190u, 0, FABSF_TOLERANCE, 0},
+{186, 1059648963u, 0u, 1059648963u, 0, FABSF_TOLERANCE, 0},
+{187, 1059816735u, 0u, 1059816735u, 0, FABSF_TOLERANCE, 0},
+{188, 1059984507u, 0u, 1059984507u, 0, FABSF_TOLERANCE, 0},
+{189, 1060152279u, 0u, 1060152279u, 0, FABSF_TOLERANCE, 0},
+{190, 1060320051u, 0u, 1060320051u, 0, FABSF_TOLERANCE, 0},
+{191, 1060487823u, 0u, 1060487823u, 0, FABSF_TOLERANCE, 0},
+{192, 1060655596u, 0u, 1060655596u, 0, FABSF_TOLERANCE, 0},
+{193, 1060823368u, 0u, 1060823368u, 0, FABSF_TOLERANCE, 0},
+{194, 1060991140u, 0u, 1060991140u, 0, FABSF_TOLERANCE, 0},
+{195, 1061158912u, 0u, 1061158912u, 0, FABSF_TOLERANCE, 0},
+{196, 1061326684u, 0u, 1061326684u, 0, FABSF_TOLERANCE, 0},
+{197, 1061494456u, 0u, 1061494456u, 0, FABSF_TOLERANCE, 0},
+{198, 1061662228u, 0u, 1061662228u, 0, FABSF_TOLERANCE, 0},
+{199, 1061830001u, 0u, 1061830001u, 0, FABSF_TOLERANCE, 0},
+{200, 1061997773u, 0u, 1061997773u, 0, FABSF_TOLERANCE, 0},
+{201, 1062165545u, 0u, 1062165545u, 0, FABSF_TOLERANCE, 0},
+{202, 1062333317u, 0u, 1062333317u, 0, FABSF_TOLERANCE, 0},
+{203, 1062501089u, 0u, 1062501089u, 0, FABSF_TOLERANCE, 0},
+{204, 1062668861u, 0u, 1062668861u, 0, FABSF_TOLERANCE, 0},
+{205, 1062836634u, 0u, 1062836634u, 0, FABSF_TOLERANCE, 0},
+{206, 1063004406u, 0u, 1063004406u, 0, FABSF_TOLERANCE, 0},
+{207, 1063172178u, 0u, 1063172178u, 0, FABSF_TOLERANCE, 0},
+{208, 1063339950u, 0u, 1063339950u, 0, FABSF_TOLERANCE, 0},
+{209, 1063507722u, 0u, 1063507722u, 0, FABSF_TOLERANCE, 0},
+{210, 1063675494u, 0u, 1063675494u, 0, FABSF_TOLERANCE, 0},
+{211, 1063843267u, 0u, 1063843267u, 0, FABSF_TOLERANCE, 0},
+{212, 1064011039u, 0u, 1064011039u, 0, FABSF_TOLERANCE, 0},
+{213, 1064178811u, 0u, 1064178811u, 0, FABSF_TOLERANCE, 0},
+{214, 1064346583u, 0u, 1064346583u, 0, FABSF_TOLERANCE, 0},
+{215, 1064514355u, 0u, 1064514355u, 0, FABSF_TOLERANCE, 0},
+{216, 1064682127u, 0u, 1064682127u, 0, FABSF_TOLERANCE, 0},
+{217, 1064849900u, 0u, 1064849900u, 0, FABSF_TOLERANCE, 0},
+{218, 1065017672u, 0u, 1065017672u, 0, FABSF_TOLERANCE, 0},
+{219, 1065185444u, 0u, 1065185444u, 0, FABSF_TOLERANCE, 0},
+{220, 1065353216u, 0u, 1065353216u, 0, FABSF_TOLERANCE, 0},
+{221, 1065437102u, 0u, 1065437102u, 0, FABSF_TOLERANCE, 0},
+{222, 1065520988u, 0u, 1065520988u, 0, FABSF_TOLERANCE, 0},
+{223, 1065604874u, 0u, 1065604874u, 0, FABSF_TOLERANCE, 0},
+{224, 1065688760u, 0u, 1065688760u, 0, FABSF_TOLERANCE, 0},
+{225, 1065772646u, 0u, 1065772646u, 0, FABSF_TOLERANCE, 0},
+{226, 1065856532u, 0u, 1065856532u, 0, FABSF_TOLERANCE, 0},
+{227, 1065940419u, 0u, 1065940419u, 0, FABSF_TOLERANCE, 0},
+{228, 1066024305u, 0u, 1066024305u, 0, FABSF_TOLERANCE, 0},
+{229, 1066108191u, 0u, 1066108191u, 0, FABSF_TOLERANCE, 0},
+{230, 1066192077u, 0u, 1066192077u, 0, FABSF_TOLERANCE, 0},
+{231, 1066275963u, 0u, 1066275963u, 0, FABSF_TOLERANCE, 0},
+{232, 1066359849u, 0u, 1066359849u, 0, FABSF_TOLERANCE, 0},
+{233, 1066443735u, 0u, 1066443735u, 0, FABSF_TOLERANCE, 0},
+{234, 1066527621u, 0u, 1066527621u, 0, FABSF_TOLERANCE, 0},
+{235, 1066611507u, 0u, 1066611507u, 0, FABSF_TOLERANCE, 0},
+{236, 1066695393u, 0u, 1066695393u, 0, FABSF_TOLERANCE, 0},
+{237, 1066779279u, 0u, 1066779279u, 0, FABSF_TOLERANCE, 0},
+{238, 1066863165u, 0u, 1066863165u, 0, FABSF_TOLERANCE, 0},
+{239, 1066947052u, 0u, 1066947052u, 0, FABSF_TOLERANCE, 0},
+{240, 3234402267u, 0u, 1086918619u, 0, FABSF_TOLERANCE, 0},
+{241, 3231108068u, 0u, 1083624420u, 0, FABSF_TOLERANCE, 0},
+{242, 3226013659u, 0u, 1078530011u, 0, FABSF_TOLERANCE, 0},
+{243, 3217625051u, 0u, 1070141403u, 0, FABSF_TOLERANCE, 0},
+{244, 0u, 0u, 0u, 0, FABSF_TOLERANCE, 0},
+{245, 1070141403u, 0u, 1070141403u, 0, FABSF_TOLERANCE, 0},
+{246, 1078530011u, 0u, 1078530011u, 0, FABSF_TOLERANCE, 0},
+{247, 1083624420u, 0u, 1083624420u, 0, FABSF_TOLERANCE, 0},
+{248, 3253731328u, 0u, 1106247680u, 0, FABSF_TOLERANCE, 0},
+{249, 3252840038u, 0u, 1105356390u, 0, FABSF_TOLERANCE, 0},
+{250, 3251948749u, 0u, 1104465101u, 0, FABSF_TOLERANCE, 0},
+{251, 3251057459u, 0u, 1103573811u, 0, FABSF_TOLERANCE, 0},
+{252, 3250166170u, 0u, 1102682522u, 0, FABSF_TOLERANCE, 0},
+{253, 3249274880u, 0u, 1101791232u, 0, FABSF_TOLERANCE, 0},
+{254, 3248383590u, 0u, 1100899942u, 0, FABSF_TOLERANCE, 0},
+{255, 3247492301u, 0u, 1100008653u, 0, FABSF_TOLERANCE, 0},
+{256, 3246601011u, 0u, 1099117363u, 0, FABSF_TOLERANCE, 0},
+{257, 3245028147u, 0u, 1097544499u, 0, FABSF_TOLERANCE, 0},
+{258, 3243245568u, 0u, 1095761920u, 0, FABSF_TOLERANCE, 0},
+{259, 3241462989u, 0u, 1093979341u, 0, FABSF_TOLERANCE, 0},
+{260, 3239680410u, 0u, 1092196762u, 0, FABSF_TOLERANCE, 0},
+{261, 3237792973u, 0u, 1090309325u, 0, FABSF_TOLERANCE, 0},
+{262, 3234227814u, 0u, 1086744166u, 0, FABSF_TOLERANCE, 0},
+{263, 3230662656u, 0u, 1083179008u, 0, FABSF_TOLERANCE, 0},
+{264, 3224580915u, 0u, 1077097267u, 0, FABSF_TOLERANCE, 0},
+{265, 3213675725u, 0u, 1066192077u, 0, FABSF_TOLERANCE, 0},
+{266, 1058642330u, 0u, 1058642330u, 0, FABSF_TOLERANCE, 0},
+{267, 1075000115u, 0u, 1075000115u, 0, FABSF_TOLERANCE, 0},
+{268, 1082130432u, 0u, 1082130432u, 0, FABSF_TOLERANCE, 0},
+{269, 1085695590u, 0u, 1085695590u, 0, FABSF_TOLERANCE, 0},
+{270, 1089260749u, 0u, 1089260749u, 0, FABSF_TOLERANCE, 0},
+{271, 1091672474u, 0u, 1091672474u, 0, FABSF_TOLERANCE, 0},
+{272, 1093455053u, 0u, 1093455053u, 0, FABSF_TOLERANCE, 0},
+{273, 1095237632u, 0u, 1095237632u, 0, FABSF_TOLERANCE, 0},
+{274, 1097020211u, 0u, 1097020211u, 0, FABSF_TOLERANCE, 0},
+{275, 1098802790u, 0u, 1098802790u, 0, FABSF_TOLERANCE, 0},
+{276, 1099746509u, 0u, 1099746509u, 0, FABSF_TOLERANCE, 0},
+{277, 1100637798u, 0u, 1100637798u, 0, FABSF_TOLERANCE, 0},
+{278, 1101529088u, 0u, 1101529088u, 0, FABSF_TOLERANCE, 0},
+{279, 1102420378u, 0u, 1102420378u, 0, FABSF_TOLERANCE, 0},
+{280, 1103311667u, 0u, 1103311667u, 0, FABSF_TOLERANCE, 0},
+{281, 1104202957u, 0u, 1104202957u, 0, FABSF_TOLERANCE, 0},
+{282, 1105094246u, 0u, 1105094246u, 0, FABSF_TOLERANCE, 0},
+{283, 1105985536u, 0u, 1105985536u, 0, FABSF_TOLERANCE, 0},
+{284, 1107800421u, 1203999711u, 1107800421u, 0, FABSF_TOLERANCE, 0},
+{285, 3196650934u, 896005582u, 1049167286u, 0, FABSF_TOLERANCE, 0},
+{286, 3368700125u, 3308232444u, 1221216477u, 0, FABSF_TOLERANCE, 0},
+{287, 1224242132u, 3061363425u, 1224242132u, 0, FABSF_TOLERANCE, 0},
+{288, 3221027117u, 1284201705u, 1073543469u, 0, FABSF_TOLERANCE, 0},
+{289, 1198712763u, 919636942u, 1198712763u, 0, FABSF_TOLERANCE, 0},
+{290, 3159309973u, 852521077u, 1011826325u, 0, FABSF_TOLERANCE, 0},
+{291, 954173073u, 850531830u, 954173073u, 0, FABSF_TOLERANCE, 0},
+{292, 3090780435u, 1035260608u, 943296787u, 0, FABSF_TOLERANCE, 0},
+{293, 966554515u, 3234538174u, 966554515u, 0, FABSF_TOLERANCE, 0},
+{294, 1312607135u, 1194999402u, 1312607135u, 0, FABSF_TOLERANCE, 0},
+{295, 1166191415u, 1018661564u, 1166191415u, 0, FABSF_TOLERANCE, 0},
+{296, 3111900019u, 1130472166u, 964416371u, 0, FABSF_TOLERANCE, 0},
+{297, 1234419246u, 2984575812u, 1234419246u, 0, FABSF_TOLERANCE, 0},
+{298, 1302107128u, 3370647675u, 1302107128u, 0, FABSF_TOLERANCE, 0},
+{299, 1052801068u, 3039122570u, 1052801068u, 0, FABSF_TOLERANCE, 0},
+{300, 1060849628u, 3081357692u, 1060849628u, 0, FABSF_TOLERANCE, 0},
+{301, 3484320003u, 3033957825u, 1336836355u, 0, FABSF_TOLERANCE, 0},
+{302, 3181522772u, 3305392896u, 1034039124u, 0, FABSF_TOLERANCE, 0},
+{303, 882596369u, 1256676590u, 882596369u, 0, FABSF_TOLERANCE, 0},
+{304, 1167223673u, 846102364u, 1167223673u, 0, FABSF_TOLERANCE, 0},
+{305, 968192794u, 878547432u, 968192794u, 0, FABSF_TOLERANCE, 0},
+{306, 3122346862u, 1111584337u, 974863214u, 0, FABSF_TOLERANCE, 0},
+{307, 1052361612u, 1280025214u, 1052361612u, 0, FABSF_TOLERANCE, 0},
+{308, 906701409u, 2968301825u, 906701409u, 0, FABSF_TOLERANCE, 0},
+{309, 3471653172u, 1154138102u, 1324169524u, 0, FABSF_TOLERANCE, 0},
+{310, 3231467496u, 934336592u, 1083983848u, 0, FABSF_TOLERANCE, 0},
+{311, 1341514497u, 3466051188u, 1341514497u, 0, FABSF_TOLERANCE, 0},
+{312, 1272351391u, 3373485062u, 1272351391u, 0, FABSF_TOLERANCE, 0},
+{313, 3319724992u, 3354615790u, 1172241344u, 0, FABSF_TOLERANCE, 0},
+{314, 917622040u, 1334966485u, 917622040u, 0, FABSF_TOLERANCE, 0},
+{315, 940236348u, 3304072663u, 940236348u, 0, FABSF_TOLERANCE, 0},
+{316, 3251541546u, 3174764041u, 1104057898u, 0, FABSF_TOLERANCE, 0},
+{317, 3099843889u, 3355962282u, 952360241u, 0, FABSF_TOLERANCE, 0},
+{318, 3110358400u, 851145088u, 962874752u, 0, FABSF_TOLERANCE, 0},
+{319, 3371863479u, 1014861921u, 1224379831u, 0, FABSF_TOLERANCE, 0},
+{320, 3204069187u, 966573255u, 1056585539u, 0, FABSF_TOLERANCE, 0},
+{321, 1306460502u, 903489435u, 1306460502u, 0, FABSF_TOLERANCE, 0},
+{322, 1197542187u, 3024598921u, 1197542187u, 0, FABSF_TOLERANCE, 0},
+{323, 922888249u, 1139392309u, 922888249u, 0, FABSF_TOLERANCE, 0},
+{324, 1184239996u, 3224098462u, 1184239996u, 0, FABSF_TOLERANCE, 0},
+{325, 1252490238u, 1173619825u, 1252490238u, 0, FABSF_TOLERANCE, 0},
+{326, 1001673627u, 3462631271u, 1001673627u, 0, FABSF_TOLERANCE, 0},
+{327, 976098044u, 1151967422u, 976098044u, 0, FABSF_TOLERANCE, 0},
+{328, 941796645u, 886451963u, 941796645u, 0, FABSF_TOLERANCE, 0},
+{329, 3287199470u, 854245542u, 1139715822u, 0, FABSF_TOLERANCE, 0},
+{330, 893184329u, 1243067084u, 893184329u, 0, FABSF_TOLERANCE, 0},
+{331, 1143233714u, 1007268238u, 1143233714u, 0, FABSF_TOLERANCE, 0},
+{332, 1139941253u, 1147688821u, 1139941253u, 0, FABSF_TOLERANCE, 0},
+{333, 3143717025u, 3234638157u, 996233377u, 0, FABSF_TOLERANCE, 0},
+{334, 3048866608u, 3449209899u, 901382960u, 0, FABSF_TOLERANCE, 0},
+{335, 3240298487u, 1020260821u, 1092814839u, 0, FABSF_TOLERANCE, 0},
+{336, 1288902137u, 3123875978u, 1288902137u, 0, FABSF_TOLERANCE, 0},
+{337, 1333134799u, 1338107877u, 1333134799u, 0, FABSF_TOLERANCE, 0},
+{338, 1187847971u, 1317663644u, 1187847971u, 0, FABSF_TOLERANCE, 0},
+{339, 1038851706u, 1327544110u, 1038851706u, 0, FABSF_TOLERANCE, 0},
+{340, 3329354473u, 3165437289u, 1181870825u, 0, FABSF_TOLERANCE, 0},
+{341, 3077218579u, 1308397879u, 929734931u, 0, FABSF_TOLERANCE, 0},
+{342, 1309289088u, 1019883016u, 1309289088u, 0, FABSF_TOLERANCE, 0},
+{343, 3444653659u, 1279248024u, 1297170011u, 0, FABSF_TOLERANCE, 0},
+{344, 3405585402u, 2962345057u, 1258101754u, 0, FABSF_TOLERANCE, 0},
+{345, 3106647724u, 853848387u, 959164076u, 0, FABSF_TOLERANCE, 0},
+{346, 1106778573u, 3304487767u, 1106778573u, 0, FABSF_TOLERANCE, 0},
+{347, 1140567947u, 3069174149u, 1140567947u, 0, FABSF_TOLERANCE, 0},
+{348, 1238569473u, 873035665u, 1238569473u, 0, FABSF_TOLERANCE, 0},
+{349, 3154871957u, 1276671061u, 1007388309u, 0, FABSF_TOLERANCE, 0},
+{350, 1261071232u, 1182202773u, 1261071232u, 0, FABSF_TOLERANCE, 0},
+{351, 1175011025u, 3029705783u, 1175011025u, 0, FABSF_TOLERANCE, 0},
+{352, 1082692850u, 1211581107u, 1082692850u, 0, FABSF_TOLERANCE, 0},
+{353, 974547519u, 3475164509u, 974547519u, 0, FABSF_TOLERANCE, 0},
+{354, 3058097085u, 3104309359u, 910613437u, 0, FABSF_TOLERANCE, 0},
+{355, 3107252546u, 1071134451u, 959768898u, 0, FABSF_TOLERANCE, 0},
+{356, 3096032662u, 2976848821u, 948549014u, 0, FABSF_TOLERANCE, 0},
+{357, 3197942144u, 3094120030u, 1050458496u, 0, FABSF_TOLERANCE, 0},
+{358, 3403348556u, 3184653669u, 1255864908u, 0, FABSF_TOLERANCE, 0},
+{359, 3182301130u, 3460764044u, 1034817482u, 0, FABSF_TOLERANCE, 0},
+{360, 1136411063u, 1118097422u, 1136411063u, 0, FABSF_TOLERANCE, 0},
+{361, 3239231622u, 3302723069u, 1091747974u, 0, FABSF_TOLERANCE, 0},
+{362, 3340615780u, 870350055u, 1193132132u, 0, FABSF_TOLERANCE, 0},
+{363, 998567360u, 2995278691u, 998567360u, 0, FABSF_TOLERANCE, 0},
+{364, 3417964312u, 1321337529u, 1270480664u, 0, FABSF_TOLERANCE, 0},
+{365, 3109481038u, 1143864063u, 961997390u, 0, FABSF_TOLERANCE, 0},
+{366, 1148867223u, 1256486202u, 1148867223u, 0, FABSF_TOLERANCE, 0},
+{367, 989687421u, 3372681320u, 989687421u, 0, FABSF_TOLERANCE, 0},
+{368, 1152956913u, 3166480640u, 1152956913u, 0, FABSF_TOLERANCE, 0},
+{369, 892922651u, 3373029087u, 892922651u, 0, FABSF_TOLERANCE, 0},
+{370, 1109627625u, 1314158257u, 1109627625u, 0, FABSF_TOLERANCE, 0},
+{371, 1307091856u, 1103202538u, 1307091856u, 0, FABSF_TOLERANCE, 0},
+{372, 1077234132u, 3272167130u, 1077234132u, 0, FABSF_TOLERANCE, 0},
+{373, 1142167709u, 1096445242u, 1142167709u, 0, FABSF_TOLERANCE, 0},
+{374, 3426232834u, 1036705270u, 1278749186u, 0, FABSF_TOLERANCE, 0},
+{375, 3368566779u, 967249167u, 1221083131u, 0, FABSF_TOLERANCE, 0},
+{376, 3030724760u, 3349013503u, 883241112u, 0, FABSF_TOLERANCE, 0},
+{377, 1138741813u, 3073453199u, 1138741813u, 0, FABSF_TOLERANCE, 0},
+{378, 982950501u, 982549888u, 982950501u, 0, FABSF_TOLERANCE, 0},
+{379, 1142981585u, 1015602236u, 1142981585u, 0, FABSF_TOLERANCE, 0},
+{380, 3347165962u, 3135486696u, 1199682314u, 0, FABSF_TOLERANCE, 0},
+{381, 1009535440u, 3381353228u, 1009535440u, 0, FABSF_TOLERANCE, 0},
+{382, 3103736980u, 3402950505u, 956253332u, 0, FABSF_TOLERANCE, 0},
+{383, 3126820946u, 1077903063u, 979337298u, 0, FABSF_TOLERANCE, 0},
+{384, 3473956030u, 976891930u, 1326472382u, 0, FABSF_TOLERANCE, 0},
+{385, 3349098349u, 1055327704u, 1201614701u, 0, FABSF_TOLERANCE, 0},
+{386, 3152729489u, 1060398533u, 1005245841u, 0, FABSF_TOLERANCE, 0},
+{387, 945568720u, 3313485084u, 945568720u, 0, FABSF_TOLERANCE, 0},
+{388, 3345489836u, 1108392401u, 1198006188u, 0, FABSF_TOLERANCE, 0},
+{389, 940893161u, 1137000140u, 940893161u, 0, FABSF_TOLERANCE, 0},
+{390, 976791751u, 3230678102u, 976791751u, 0, FABSF_TOLERANCE, 0},
+{391, 1004442355u, 3036510596u, 1004442355u, 0, FABSF_TOLERANCE, 0},
+{392, 1108485380u, 3173536878u, 1108485380u, 0, FABSF_TOLERANCE, 0},
+{393, 1061834641u, 972388096u, 1061834641u, 0, FABSF_TOLERANCE, 0},
+{394, 3381268392u, 1146976802u, 1233784744u, 0, FABSF_TOLERANCE, 0},
+{395, 1087189715u, 2952822478u, 1087189715u, 0, FABSF_TOLERANCE, 0},
+{396, 3212952285u, 3329407365u, 1065468637u, 0, FABSF_TOLERANCE, 0},
+{397, 1000611335u, 857599439u, 1000611335u, 0, FABSF_TOLERANCE, 0},
+{398, 3466188568u, 1041678304u, 1318704920u, 0, FABSF_TOLERANCE, 0},
+{399, 3072456205u, 3160254633u, 924972557u, 0, FABSF_TOLERANCE, 0},
+{400, 3319315516u, 3422089012u, 1171831868u, 0, FABSF_TOLERANCE, 0},
+{401, 935938416u, 1146676692u, 935938416u, 0, FABSF_TOLERANCE, 0},
+{402, 3212614372u, 1152633030u, 1065130724u, 0, FABSF_TOLERANCE, 0},
+{403, 1315030230u, 3336225884u, 1315030230u, 0, FABSF_TOLERANCE, 0},
+{404, 1134593658u, 3456812581u, 1134593658u, 0, FABSF_TOLERANCE, 0},
+{405, 977281449u, 879922831u, 977281449u, 0, FABSF_TOLERANCE, 0},
+{406, 1086198791u, 920125958u, 1086198791u, 0, FABSF_TOLERANCE, 0},
+{407, 1255152035u, 851754050u, 1255152035u, 0, FABSF_TOLERANCE, 0},
+{408, 1135271264u, 3284878412u, 1135271264u, 0, FABSF_TOLERANCE, 0},
+{409, 1094190727u, 1056854532u, 1094190727u, 0, FABSF_TOLERANCE, 0},
+{410, 1294665325u, 991185677u, 1294665325u, 0, FABSF_TOLERANCE, 0},
+{411, 1036608591u, 805416536u, 1036608591u, 0, FABSF_TOLERANCE, 0},
+{412, 3229998064u, 825237063u, 1082514416u, 0, FABSF_TOLERANCE, 0},
+{413, 3439134022u, 1043829691u, 1291650374u, 0, FABSF_TOLERANCE, 0},
+{414, 3073083133u, 1317170485u, 925599485u, 0, FABSF_TOLERANCE, 0},
+{415, 1325668223u, 970681762u, 1325668223u, 0, FABSF_TOLERANCE, 0},
+{416, 1092037607u, 1027330835u, 1092037607u, 0, FABSF_TOLERANCE, 0},
+{417, 3316278408u, 3455589207u, 1168794760u, 0, FABSF_TOLERANCE, 0},
+{418, 3295436768u, 3129873731u, 1147953120u, 0, FABSF_TOLERANCE, 0},
+{419, 1151984049u, 3074547120u, 1151984049u, 0, FABSF_TOLERANCE, 0},
+{420, 1129287043u, 3076527544u, 1129287043u, 0, FABSF_TOLERANCE, 0},
+{421, 1243664530u, 972879810u, 1243664530u, 0, FABSF_TOLERANCE, 0},
+{422, 950829092u, 929114193u, 950829092u, 0, FABSF_TOLERANCE, 0},
+{423, 1115471979u, 3047246262u, 1115471979u, 0, FABSF_TOLERANCE, 0},
+{424, 3351092088u, 3024661404u, 1203608440u, 0, FABSF_TOLERANCE, 0},
+{425, 3424479544u, 3312047722u, 1276995896u, 0, FABSF_TOLERANCE, 0},
+{426, 3241193975u, 884465785u, 1093710327u, 0, FABSF_TOLERANCE, 0},
+{427, 1030934236u, 1045139240u, 1030934236u, 0, FABSF_TOLERANCE, 0},
+{428, 3131791114u, 3408392958u, 984307466u, 0, FABSF_TOLERANCE, 0},
+{429, 1025254314u, 3057812821u, 1025254314u, 0, FABSF_TOLERANCE, 0},
+{430, 1110545760u, 3240144177u, 1110545760u, 0, FABSF_TOLERANCE, 0},
+{431, 3180213739u, 1108793820u, 1032730091u, 0, FABSF_TOLERANCE, 0},
+{432, 3361976590u, 3138179993u, 1214492942u, 0, FABSF_TOLERANCE, 0},
+{433, 881280146u, 3421884736u, 881280146u, 0, FABSF_TOLERANCE, 0},
+{434, 1304154705u, 2961937089u, 1304154705u, 0, FABSF_TOLERANCE, 0},
+{435, 3264443610u, 3222916705u, 1116959962u, 0, FABSF_TOLERANCE, 0},
+{436, 3374550627u, 3055856293u, 1227066979u, 0, FABSF_TOLERANCE, 0},
+{437, 899599265u, 3240118211u, 899599265u, 0, FABSF_TOLERANCE, 0},
+{438, 1268194719u, 1332489410u, 1268194719u, 0, FABSF_TOLERANCE, 0},
+{439, 1133420220u, 1245770860u, 1133420220u, 0, FABSF_TOLERANCE, 0},
+{440, 1161858787u, 815362075u, 1161858787u, 0, FABSF_TOLERANCE, 0},
+{441, 3184462258u, 1263529646u, 1036978610u, 0, FABSF_TOLERANCE, 0},
+{442, 3295996963u, 3453334307u, 1148513315u, 0, FABSF_TOLERANCE, 0},
+{443, 1270887389u, 1156123987u, 1270887389u, 0, FABSF_TOLERANCE, 0},
+{444, 3325193181u, 993979179u, 1177709533u, 0, FABSF_TOLERANCE, 0},
+{445, 925657343u, 1315159742u, 925657343u, 0, FABSF_TOLERANCE, 0},
+{446, 3115275450u, 3008350271u, 967791802u, 0, FABSF_TOLERANCE, 0},
+{447, 3116607482u, 3224327456u, 969123834u, 0, FABSF_TOLERANCE, 0},
+{448, 3187892415u, 3118097315u, 1040408767u, 0, FABSF_TOLERANCE, 0},
+{449, 1189120494u, 978961471u, 1189120494u, 0, FABSF_TOLERANCE, 0},
+{450, 889030794u, 3129523970u, 889030794u, 0, FABSF_TOLERANCE, 0},
+{451, 1323529208u, 3100744786u, 1323529208u, 0, FABSF_TOLERANCE, 0},
+{452, 3465768388u, 3190881451u, 1318284740u, 0, FABSF_TOLERANCE, 0},
+{453, 3426099899u, 1118756120u, 1278616251u, 0, FABSF_TOLERANCE, 0},
+{454, 3224857113u, 3398166843u, 1077373465u, 0, FABSF_TOLERANCE, 0},
+{455, 1065798296u, 816191940u, 1065798296u, 0, FABSF_TOLERANCE, 0},
+{456, 3328989444u, 850266225u, 1181505796u, 0, FABSF_TOLERANCE, 0},
+{457, 3357819026u, 3148475462u, 1210335378u, 0, FABSF_TOLERANCE, 0},
+{458, 1273397670u, 901308750u, 1273397670u, 0, FABSF_TOLERANCE, 0},
+{459, 3424831780u, 1304806106u, 1277348132u, 0, FABSF_TOLERANCE, 0},
+{460, 1257596246u, 3420832544u, 1257596246u, 0, FABSF_TOLERANCE, 0},
+{461, 1051773536u, 896271348u, 1051773536u, 0, FABSF_TOLERANCE, 0},
+{462, 3294752507u, 3113225954u, 1147268859u, 0, FABSF_TOLERANCE, 0},
+{463, 3424848725u, 2973850350u, 1277365077u, 0, FABSF_TOLERANCE, 0},
+{464, 1090870906u, 3294742905u, 1090870906u, 0, FABSF_TOLERANCE, 0},
+{465, 1227582289u, 1208979668u, 1227582289u, 0, FABSF_TOLERANCE, 0},
+{466, 1272325814u, 3004311296u, 1272325814u, 0, FABSF_TOLERANCE, 0},
+{467, 3359508271u, 859974315u, 1212024623u, 0, FABSF_TOLERANCE, 0},
+{468, 1137854355u, 3335041917u, 1137854355u, 0, FABSF_TOLERANCE, 0},
+{469, 3440773058u, 3204192793u, 1293289410u, 0, FABSF_TOLERANCE, 0},
+{470, 3101598400u, 3057760708u, 954114752u, 0, FABSF_TOLERANCE, 0},
+{471, 3451216836u, 3347783723u, 1303733188u, 0, FABSF_TOLERANCE, 0},
+{472, 3437062994u, 3106834845u, 1289579346u, 0, FABSF_TOLERANCE, 0},
+{473, 1131196082u, 1164573183u, 1131196082u, 0, FABSF_TOLERANCE, 0},
+{474, 3177294154u, 1282436638u, 1029810506u, 0, FABSF_TOLERANCE, 0},
+{475, 3258097678u, 1305882290u, 1110614030u, 0, FABSF_TOLERANCE, 0},
+{476, 3460915348u, 1219372260u, 1313431700u, 0, FABSF_TOLERANCE, 0},
+{477, 3303035472u, 3153013020u, 1155551824u, 0, FABSF_TOLERANCE, 0},
+{478, 1053698677u, 3284313107u, 1053698677u, 0, FABSF_TOLERANCE, 0},
+{479, 3396166221u, 1201894512u, 1248682573u, 0, FABSF_TOLERANCE, 0},
+{480, 3037541131u, 1085398440u, 890057483u, 0, FABSF_TOLERANCE, 0},
+{481, 3458934263u, 1005577835u, 1311450615u, 0, FABSF_TOLERANCE, 0},
+{482, 1065761827u, 3333928591u, 1065761827u, 0, FABSF_TOLERANCE, 0},
+{483, 3025843188u, 820250112u, 878359540u, 0, FABSF_TOLERANCE, 0},
+{484, 926665223u, 3150815797u, 926665223u, 0, FABSF_TOLERANCE, 0},
+{485, 1199816046u, 3143776186u, 1199816046u, 0, FABSF_TOLERANCE, 0},
+{486, 3333779015u, 952421041u, 1186295367u, 0, FABSF_TOLERANCE, 0},
+{487, 948398145u, 3238273189u, 948398145u, 0, FABSF_TOLERANCE, 0},
+{488, 3054021468u, 1270257895u, 906537820u, 0, FABSF_TOLERANCE, 0},
+{489, 1080781593u, 1213908300u, 1080781593u, 0, FABSF_TOLERANCE, 0},
+{490, 3164749613u, 3010837763u, 1017265965u, 0, FABSF_TOLERANCE, 0},
+{491, 3235326590u, 1271705594u, 1087842942u, 0, FABSF_TOLERANCE, 0},
+{492, 3118883815u, 1051802647u, 971400167u, 0, FABSF_TOLERANCE, 0},
+{493, 965378004u, 1292594138u, 965378004u, 0, FABSF_TOLERANCE, 0},
+{494, 3226990408u, 1110755136u, 1079506760u, 0, FABSF_TOLERANCE, 0},
+{495, 3117098218u, 1122474770u, 969614570u, 0, FABSF_TOLERANCE, 0},
+{496, 1283624229u, 906796922u, 1283624229u, 0, FABSF_TOLERANCE, 0},
+{497, 970649315u, 1078286437u, 970649315u, 0, FABSF_TOLERANCE, 0},
+{498, 959776291u, 3280345347u, 959776291u, 0, FABSF_TOLERANCE, 0},
+{499, 3341117305u, 3294559023u, 1193633657u, 0, FABSF_TOLERANCE, 0},
+{500, 1270734970u, 3355874874u, 1270734970u, 0, FABSF_TOLERANCE, 0},
+{501, 3454816067u, 868771977u, 1307332419u, 0, FABSF_TOLERANCE, 0},
+{502, 917206623u, 1172710814u, 917206623u, 0, FABSF_TOLERANCE, 0},
+{503, 1106502045u, 1290849316u, 1106502045u, 0, FABSF_TOLERANCE, 0},
+{504, 1157598381u, 3309023746u, 1157598381u, 0, FABSF_TOLERANCE, 0},
+{505, 3335234513u, 1002337336u, 1187750865u, 0, FABSF_TOLERANCE, 0},
+{506, 1279489061u, 1006049444u, 1279489061u, 0, FABSF_TOLERANCE, 0},
+{507, 3157416480u, 1309984610u, 1009932832u, 0, FABSF_TOLERANCE, 0},
+{508, 3143920719u, 3131608518u, 996437071u, 0, FABSF_TOLERANCE, 0},
+{509, 1233171235u, 826460580u, 1233171235u, 0, FABSF_TOLERANCE, 0},
+{510, 1148920078u, 1007674793u, 1148920078u, 0, FABSF_TOLERANCE, 0},
+{511, 3064988156u, 3230867340u, 917504508u, 0, FABSF_TOLERANCE, 0},
+{512, 3083619260u, 1159415661u, 936135612u, 0, FABSF_TOLERANCE, 0},
+{513, 1109198803u, 1221754614u, 1109198803u, 0, FABSF_TOLERANCE, 0},
+{514, 3219949483u, 1056167693u, 1072465835u, 0, FABSF_TOLERANCE, 0},
+{515, 3361149474u, 3387342069u, 1213665826u, 0, FABSF_TOLERANCE, 0},
+{516, 1207502108u, 3388073586u, 1207502108u, 0, FABSF_TOLERANCE, 0},
+{517, 1000014431u, 831213088u, 1000014431u, 0, FABSF_TOLERANCE, 0},
+{518, 3161756316u, 3143659754u, 1014272668u, 0, FABSF_TOLERANCE, 0},
+{519, 3160728744u, 3382954009u, 1013245096u, 0, FABSF_TOLERANCE, 0},
+{520, 1234530539u, 1079988872u, 1234530539u, 0, FABSF_TOLERANCE, 0},
+{521, 1017843965u, 1193076204u, 1017843965u, 0, FABSF_TOLERANCE, 0},
+{522, 951862956u, 1173464654u, 951862956u, 0, FABSF_TOLERANCE, 0},
+{523, 3306328852u, 1118701064u, 1158845204u, 0, FABSF_TOLERANCE, 0},
+{524, 1291910469u, 1211303367u, 1291910469u, 0, FABSF_TOLERANCE, 0},
+{525, 3027442905u, 1173894400u, 879959257u, 0, FABSF_TOLERANCE, 0},
+{526, 1131927531u, 3182962700u, 1131927531u, 0, FABSF_TOLERANCE, 0},
+{527, 3449879391u, 991614550u, 1302395743u, 0, FABSF_TOLERANCE, 0},
+{528, 970094304u, 3344590506u, 970094304u, 0, FABSF_TOLERANCE, 0},
+{529, 1125551064u, 3331248076u, 1125551064u, 0, FABSF_TOLERANCE, 0},
+{530, 3427296372u, 3455289118u, 1279812724u, 0, FABSF_TOLERANCE, 0},
+{531, 1198917460u, 1327195159u, 1198917460u, 0, FABSF_TOLERANCE, 0},
+{532, 3201603336u, 820047343u, 1054119688u, 0, FABSF_TOLERANCE, 0},
+{533, 3114686212u, 3476082461u, 967202564u, 0, FABSF_TOLERANCE, 0},
+{534, 921940707u, 2967544056u, 921940707u, 0, FABSF_TOLERANCE, 0},
+{535, 1091906532u, 3011904455u, 1091906532u, 0, FABSF_TOLERANCE, 0},
+{536, 3393557778u, 3383396815u, 1246074130u, 0, FABSF_TOLERANCE, 0},
+{537, 1276853215u, 873199561u, 1276853215u, 0, FABSF_TOLERANCE, 0},
+{538, 3462778440u, 3349284325u, 1315294792u, 0, FABSF_TOLERANCE, 0},
+{539, 3360170117u, 3048354042u, 1212686469u, 0, FABSF_TOLERANCE, 0},
+{540, 3224245428u, 3271307999u, 1076761780u, 0, FABSF_TOLERANCE, 0},
+{541, 1120124467u, 1135619937u, 1120124467u, 0, FABSF_TOLERANCE, 0},
+{542, 1064364381u, 3180675544u, 1064364381u, 0, FABSF_TOLERANCE, 0},
+{543, 1268744779u, 3328452652u, 1268744779u, 0, FABSF_TOLERANCE, 0},
+{544, 1165195428u, 3390323168u, 1165195428u, 0, FABSF_TOLERANCE, 0},
+{545, 3044092739u, 1106497311u, 896609091u, 0, FABSF_TOLERANCE, 0},
+{546, 3149469534u, 1278465842u, 1001985886u, 0, FABSF_TOLERANCE, 0},
+{547, 3247790039u, 909788142u, 1100306391u, 0, FABSF_TOLERANCE, 0},
+{548, 3215244648u, 1083988595u, 1067761000u, 0, FABSF_TOLERANCE, 0},
+{549, 3095275931u, 989153382u, 947792283u, 0, FABSF_TOLERANCE, 0},
+{550, 3059688264u, 1117455718u, 912204616u, 0, FABSF_TOLERANCE, 0},
+{551, 1212717473u, 837873779u, 1212717473u, 0, FABSF_TOLERANCE, 0},
+{552, 3275973009u, 3450721670u, 1128489361u, 0, FABSF_TOLERANCE, 0},
+{553, 3028857014u, 3188853813u, 881373366u, 0, FABSF_TOLERANCE, 0},
+{554, 3391162308u, 1291220039u, 1243678660u, 0, FABSF_TOLERANCE, 0},
+{555, 1044867873u, 3369493273u, 1044867873u, 0, FABSF_TOLERANCE, 0},
+{556, 1089986803u, 3462160118u, 1089986803u, 0, FABSF_TOLERANCE, 0},
+{557, 1296314700u, 2957454177u, 1296314700u, 0, FABSF_TOLERANCE, 0},
+{558, 1251462432u, 3171021770u, 1251462432u, 0, FABSF_TOLERANCE, 0},
+{559, 3485236902u, 980772835u, 1337753254u, 0, FABSF_TOLERANCE, 0},
+{560, 3262169538u, 1268270462u, 1114685890u, 0, FABSF_TOLERANCE, 0},
+{561, 3080852256u, 994641495u, 933368608u, 0, FABSF_TOLERANCE, 0},
+{562, 1022211242u, 922124181u, 1022211242u, 0, FABSF_TOLERANCE, 0},
+{563, 884661176u, 2985540645u, 884661176u, 0, FABSF_TOLERANCE, 0},
+{564, 3071422941u, 3271100396u, 923939293u, 0, FABSF_TOLERANCE, 0},
+{565, 989762529u, 3362011135u, 989762529u, 0, FABSF_TOLERANCE, 0},
+{566, 1295475718u, 3212305413u, 1295475718u, 0, FABSF_TOLERANCE, 0},
+{567, 1002632518u, 3330388441u, 1002632518u, 0, FABSF_TOLERANCE, 0},
+{568, 3404372005u, 3450484255u, 1256888357u, 0, FABSF_TOLERANCE, 0},
+{569, 3158912530u, 3105501826u, 1011428882u, 0, FABSF_TOLERANCE, 0},
+{570, 1125800069u, 3256265749u, 1125800069u, 0, FABSF_TOLERANCE, 0},
+{571, 3138037576u, 3103365227u, 990553928u, 0, FABSF_TOLERANCE, 0},
+{572, 3108384823u, 1300246663u, 960901175u, 0, FABSF_TOLERANCE, 0},
+{573, 999985470u, 3409354318u, 999985470u, 0, FABSF_TOLERANCE, 0},
+{574, 1189421739u, 1056599002u, 1189421739u, 0, FABSF_TOLERANCE, 0},
+{575, 3075182644u, 3144159778u, 927698996u, 0, FABSF_TOLERANCE, 0},
+{576, 3028099649u, 3391513557u, 880616001u, 0, FABSF_TOLERANCE, 0},
+{577, 3132541814u, 3444521949u, 985058166u, 0, FABSF_TOLERANCE, 0},
+{578, 1164046161u, 3440635788u, 1164046161u, 0, FABSF_TOLERANCE, 0},
+{579, 1292596266u, 3116569667u, 1292596266u, 0, FABSF_TOLERANCE, 0},
+{580, 3469748379u, 3412765608u, 1322264731u, 0, FABSF_TOLERANCE, 0},
+{581, 1314644642u, 3123051784u, 1314644642u, 0, FABSF_TOLERANCE, 0},
+{582, 3399813173u, 828743798u, 1252329525u, 0, FABSF_TOLERANCE, 0},
+{583, 948775569u, 3485444126u, 948775569u, 0, FABSF_TOLERANCE, 0},
+{584, 1034611395u, 882288581u, 1034611395u, 0, FABSF_TOLERANCE, 0},
+{585, 3489122735u, 3372450889u, 1341639087u, 0, FABSF_TOLERANCE, 0},
+{586, 1181604787u, 3363067409u, 1181604787u, 0, FABSF_TOLERANCE, 0},
+{587, 3059042077u, 3204983963u, 911558429u, 0, FABSF_TOLERANCE, 0},
+{588, 1043691622u, 3402603223u, 1043691622u, 0, FABSF_TOLERANCE, 0},
+{589, 1314588083u, 856187848u, 1314588083u, 0, FABSF_TOLERANCE, 0},
+{590, 3141533334u, 3010142974u, 994049686u, 0, FABSF_TOLERANCE, 0},
+{591, 3157534378u, 3451674717u, 1010050730u, 0, FABSF_TOLERANCE, 0},
+{592, 3400949680u, 3073750220u, 1253466032u, 0, FABSF_TOLERANCE, 0},
+{593, 3365581801u, 1175843167u, 1218098153u, 0, FABSF_TOLERANCE, 0},
+{594, 1110424755u, 3011308654u, 1110424755u, 0, FABSF_TOLERANCE, 0},
+{595, 3189917167u, 927278934u, 1042433519u, 0, FABSF_TOLERANCE, 0},
+{596, 969804941u, 3355439348u, 969804941u, 0, FABSF_TOLERANCE, 0},
+{597, 1139120919u, 3270515074u, 1139120919u, 0, FABSF_TOLERANCE, 0},
+{598, 934308144u, 3118191228u, 934308144u, 0, FABSF_TOLERANCE, 0},
+{599, 1220524226u, 1152648002u, 1220524226u, 0, FABSF_TOLERANCE, 0},
+{600, 3162548604u, 3461790298u, 1015064956u, 0, FABSF_TOLERANCE, 0},
+{601, 3382391700u, 3296962745u, 1234908052u, 0, FABSF_TOLERANCE, 0},
+{602, 1156767533u, 1088986462u, 1156767533u, 0, FABSF_TOLERANCE, 0},
+{603, 3079222483u, 3312324949u, 931738835u, 0, FABSF_TOLERANCE, 0},
+{604, 994934087u, 967678094u, 994934087u, 0, FABSF_TOLERANCE, 0},
+{605, 3185240099u, 1123403720u, 1037756451u, 0, FABSF_TOLERANCE, 0},
+{606, 3479873563u, 1246277393u, 1332389915u, 0, FABSF_TOLERANCE, 0},
+{607, 3424264117u, 3434026174u, 1276780469u, 0, FABSF_TOLERANCE, 0},
+{608, 3228365887u, 1216775310u, 1080882239u, 0, FABSF_TOLERANCE, 0},
+{609, 1035909900u, 1249532942u, 1035909900u, 0, FABSF_TOLERANCE, 0},
+{610, 3024951184u, 1247632131u, 877467536u, 0, FABSF_TOLERANCE, 0},
+{611, 1212129651u, 3017366784u, 1212129651u, 0, FABSF_TOLERANCE, 0},
+{612, 3125775254u, 955826310u, 978291606u, 0, FABSF_TOLERANCE, 0},
+{613, 1037464105u, 3121544932u, 1037464105u, 0, FABSF_TOLERANCE, 0},
+{614, 1311706596u, 1254918706u, 1311706596u, 0, FABSF_TOLERANCE, 0},
+{615, 918212457u, 1017468331u, 918212457u, 0, FABSF_TOLERANCE, 0},
+{616, 1337315179u, 3461361185u, 1337315179u, 0, FABSF_TOLERANCE, 0},
+{617, 1131358407u, 3325958870u, 1131358407u, 0, FABSF_TOLERANCE, 0},
+{618, 1156517523u, 3343716230u, 1156517523u, 0, FABSF_TOLERANCE, 0},
+{619, 3210802820u, 3207408574u, 1063319172u, 0, FABSF_TOLERANCE, 0},
+{620, 3337499209u, 1226297264u, 1190015561u, 0, FABSF_TOLERANCE, 0},
+{621, 3468429030u, 3253874001u, 1320945382u, 0, FABSF_TOLERANCE, 0},
+{622, 3253515800u, 1189005947u, 1106032152u, 0, FABSF_TOLERANCE, 0},
+{623, 3055299953u, 3047908678u, 907816305u, 0, FABSF_TOLERANCE, 0},
+{624, 959956547u, 876324728u, 959956547u, 0, FABSF_TOLERANCE, 0},
+{625, 3425290480u, 1139193797u, 1277806832u, 0, FABSF_TOLERANCE, 0},
+{626, 1039917375u, 1122740999u, 1039917375u, 0, FABSF_TOLERANCE, 0},
+{627, 3220979495u, 3429223871u, 1073495847u, 0, FABSF_TOLERANCE, 0},
+{628, 1311016004u, 3334899880u, 1311016004u, 0, FABSF_TOLERANCE, 0},
+{629, 1128016396u, 1105151547u, 1128016396u, 0, FABSF_TOLERANCE, 0},
+{630, 3210335769u, 3100646155u, 1062852121u, 0, FABSF_TOLERANCE, 0},
+{631, 3022705759u, 3404762495u, 875222111u, 0, FABSF_TOLERANCE, 0},
+{632, 1206054701u, 826010009u, 1206054701u, 0, FABSF_TOLERANCE, 0},
+{633, 3144504834u, 1162227076u, 997021186u, 0, FABSF_TOLERANCE, 0},
+{634, 1213609983u, 919983950u, 1213609983u, 0, FABSF_TOLERANCE, 0},
+{635, 1246902946u, 3064047808u, 1246902946u, 0, FABSF_TOLERANCE, 0},
+{636, 995850843u, 1332031130u, 995850843u, 0, FABSF_TOLERANCE, 0},
+{637, 3362082828u, 3374056268u, 1214599180u, 0, FABSF_TOLERANCE, 0},
+{638, 1029480631u, 3047777170u, 1029480631u, 0, FABSF_TOLERANCE, 0},
+{639, 3153568584u, 3106514232u, 1006084936u, 0, FABSF_TOLERANCE, 0},
+{640, 3384988527u, 3109485565u, 1237504879u, 0, FABSF_TOLERANCE, 0},
+{641, 1317696241u, 870681806u, 1317696241u, 0, FABSF_TOLERANCE, 0},
+{642, 3235395924u, 1132055244u, 1087912276u, 0, FABSF_TOLERANCE, 0},
+{643, 3341877624u, 2969495570u, 1194393976u, 0, FABSF_TOLERANCE, 0},
+{644, 1228636133u, 886552820u, 1228636133u, 0, FABSF_TOLERANCE, 0},
+{645, 3161654634u, 3335899347u, 1014170986u, 0, FABSF_TOLERANCE, 0},
+{646, 3162655243u, 3307203982u, 1015171595u, 0, FABSF_TOLERANCE, 0},
+{647, 1207246237u, 859223639u, 1207246237u, 0, FABSF_TOLERANCE, 0},
+{648, 1165476654u, 3350219111u, 1165476654u, 0, FABSF_TOLERANCE, 0},
+{649, 1215278023u, 3019755242u, 1215278023u, 0, FABSF_TOLERANCE, 0},
+{650, 1017239798u, 3438501281u, 1017239798u, 0, FABSF_TOLERANCE, 0},
+{651, 1149651309u, 970030475u, 1149651309u, 0, FABSF_TOLERANCE, 0},
+{652, 1111943722u, 3122211334u, 1111943722u, 0, FABSF_TOLERANCE, 0},
+{653, 1189849849u, 3382739134u, 1189849849u, 0, FABSF_TOLERANCE, 0},
+{654, 3204848496u, 3141519085u, 1057364848u, 0, FABSF_TOLERANCE, 0},
+{655, 1249758327u, 3104759211u, 1249758327u, 0, FABSF_TOLERANCE, 0},
+{656, 3092982276u, 3445282331u, 945498628u, 0, FABSF_TOLERANCE, 0},
+{657, 1168098747u, 1316854744u, 1168098747u, 0, FABSF_TOLERANCE, 0},
+{658, 892549317u, 1179637545u, 892549317u, 0, FABSF_TOLERANCE, 0},
+{659, 3301009024u, 3406174560u, 1153525376u, 0, FABSF_TOLERANCE, 0},
+{660, 3233089227u, 1212652543u, 1085605579u, 0, FABSF_TOLERANCE, 0},
+{661, 3218245284u, 1238873830u, 1070761636u, 0, FABSF_TOLERANCE, 0},
+{662, 3215981890u, 3240474694u, 1068498242u, 0, FABSF_TOLERANCE, 0},
+{663, 1266687209u, 3092038122u, 1266687209u, 0, FABSF_TOLERANCE, 0},
+{664, 3487959775u, 3331372071u, 1340476127u, 0, FABSF_TOLERANCE, 0},
+{665, 943645710u, 852875779u, 943645710u, 0, FABSF_TOLERANCE, 0},
+{666, 3345065699u, 3282620725u, 1197582051u, 0, FABSF_TOLERANCE, 0},
+{667, 935847271u, 1067255804u, 935847271u, 0, FABSF_TOLERANCE, 0},
+{668, 3410336089u, 1111437780u, 1262852441u, 0, FABSF_TOLERANCE, 0},
+{669, 3082940740u, 1336840432u, 935457092u, 0, FABSF_TOLERANCE, 0},
+{670, 1141063391u, 1168908072u, 1141063391u, 0, FABSF_TOLERANCE, 0},
+{671, 3059263153u, 3067795684u, 911779505u, 0, FABSF_TOLERANCE, 0},
+{672, 3353679791u, 897158391u, 1206196143u, 0, FABSF_TOLERANCE, 0},
+{673, 1001823878u, 1016826861u, 1001823878u, 0, FABSF_TOLERANCE, 0},
+{674, 1009130212u, 1004302940u, 1009130212u, 0, FABSF_TOLERANCE, 0},
+{675, 3367127535u, 943136342u, 1219643887u, 0, FABSF_TOLERANCE, 0},
+{676, 1032920919u, 3449126417u, 1032920919u, 0, FABSF_TOLERANCE, 0},
+{677, 3281952870u, 3147012185u, 1134469222u, 0, FABSF_TOLERANCE, 0},
+{678, 1237868497u, 3048281802u, 1237868497u, 0, FABSF_TOLERANCE, 0},
+{679, 1153753924u, 3322269242u, 1153753924u, 0, FABSF_TOLERANCE, 0},
+{680, 1120261759u, 892210998u, 1120261759u, 0, FABSF_TOLERANCE, 0},
+{681, 3226328360u, 3366432856u, 1078844712u, 0, FABSF_TOLERANCE, 0},
+{682, 3349595986u, 3251588707u, 1202112338u, 0, FABSF_TOLERANCE, 0},
+{683, 3166889490u, 3306023523u, 1019405842u, 0, FABSF_TOLERANCE, 0},
+{684, 1087750238u, 1099325523u, 1087750238u, 0, FABSF_TOLERANCE, 0},
+{685, 3121620061u, 3359488363u, 974136413u, 0, FABSF_TOLERANCE, 0},
+{686, 1066116543u, 3072159933u, 1066116543u, 0, FABSF_TOLERANCE, 0},
+{687, 3210898034u, 2981803389u, 1063414386u, 0, FABSF_TOLERANCE, 0},
+{688, 3051923237u, 3364074347u, 904439589u, 0, FABSF_TOLERANCE, 0},
+{689, 1030612298u, 3345396001u, 1030612298u, 0, FABSF_TOLERANCE, 0},
+{690, 1186234578u, 858134374u, 1186234578u, 0, FABSF_TOLERANCE, 0},
+{691, 1331680743u, 1009396165u, 1331680743u, 0, FABSF_TOLERANCE, 0},
+{692, 3060774997u, 1326067357u, 913291349u, 0, FABSF_TOLERANCE, 0},
+{693, 887589411u, 1292305693u, 887589411u, 0, FABSF_TOLERANCE, 0},
+{694, 1045232522u, 3234993273u, 1045232522u, 0, FABSF_TOLERANCE, 0},
+{695, 3119858470u, 962515365u, 972374822u, 0, FABSF_TOLERANCE, 0},
+{696, 3349432725u, 928848003u, 1201949077u, 0, FABSF_TOLERANCE, 0},
+{697, 912423027u, 3184646319u, 912423027u, 0, FABSF_TOLERANCE, 0},
+{698, 3228795133u, 3273940030u, 1081311485u, 0, FABSF_TOLERANCE, 0},
+{699, 3194674746u, 3112269709u, 1047191098u, 0, FABSF_TOLERANCE, 0},
+{700, 3296784303u, 3276182352u, 1149300655u, 0, FABSF_TOLERANCE, 0},
+{701, 965402291u, 3107104376u, 965402291u, 0, FABSF_TOLERANCE, 0},
+{702, 3388153589u, 3426245389u, 1240669941u, 0, FABSF_TOLERANCE, 0},
+{703, 1133410485u, 3329658993u, 1133410485u, 0, FABSF_TOLERANCE, 0},
+{704, 3136790322u, 1088652637u, 989306674u, 0, FABSF_TOLERANCE, 0},
+{705, 3369970587u, 959121458u, 1222486939u, 0, FABSF_TOLERANCE, 0},
+{706, 1270451568u, 928393353u, 1270451568u, 0, FABSF_TOLERANCE, 0},
+{707, 989498922u, 3088358419u, 989498922u, 0, FABSF_TOLERANCE, 0},
+{708, 1280215674u, 3148135875u, 1280215674u, 0, FABSF_TOLERANCE, 0},
+{709, 1171873518u, 954709738u, 1171873518u, 0, FABSF_TOLERANCE, 0},
+{710, 3298258100u, 935525182u, 1150774452u, 0, FABSF_TOLERANCE, 0},
+{711, 3415208824u, 822843236u, 1267725176u, 0, FABSF_TOLERANCE, 0},
+{712, 1001897182u, 3191875320u, 1001897182u, 0, FABSF_TOLERANCE, 0},
+{713, 3152777939u, 3245830463u, 1005294291u, 0, FABSF_TOLERANCE, 0},
+{714, 985903305u, 3333087577u, 985903305u, 0, FABSF_TOLERANCE, 0},
+{715, 3357328848u, 859306298u, 1209845200u, 0, FABSF_TOLERANCE, 0},
+{716, 982612185u, 923582663u, 982612185u, 0, FABSF_TOLERANCE, 0},
+{717, 3267868136u, 1208301947u, 1120384488u, 0, FABSF_TOLERANCE, 0},
+{718, 3319048157u, 1172271145u, 1171564509u, 0, FABSF_TOLERANCE, 0},
+{719, 1144755661u, 860947435u, 1144755661u, 0, FABSF_TOLERANCE, 0},
+{720, 898467286u, 839254959u, 898467286u, 0, FABSF_TOLERANCE, 0},
+{721, 3301461672u, 1233693827u, 1153978024u, 0, FABSF_TOLERANCE, 0},
+{722, 3364525678u, 3089849671u, 1217042030u, 0, FABSF_TOLERANCE, 0},
+{723, 931441127u, 1133424555u, 931441127u, 0, FABSF_TOLERANCE, 0},
+{724, 3146660041u, 3143695961u, 999176393u, 0, FABSF_TOLERANCE, 0},
+{725, 3467121799u, 3023584354u, 1319638151u, 0, FABSF_TOLERANCE, 0},
+{726, 1151257041u, 3084216427u, 1151257041u, 0, FABSF_TOLERANCE, 0},
+{727, 3097873255u, 3219266640u, 950389607u, 0, FABSF_TOLERANCE, 0},
+{728, 3130670309u, 3192399254u, 983186661u, 0, FABSF_TOLERANCE, 0},
+{729, 1017573824u, 3130901062u, 1017573824u, 0, FABSF_TOLERANCE, 0},
+{730, 1258369714u, 3462258576u, 1258369714u, 0, FABSF_TOLERANCE, 0},
+{731, 1216602683u, 3371396332u, 1216602683u, 0, FABSF_TOLERANCE, 0},
+{732, 3297265739u, 1214184410u, 1149782091u, 0, FABSF_TOLERANCE, 0},
+{733, 1071940738u, 3311731012u, 1071940738u, 0, FABSF_TOLERANCE, 0},
+{734, 922601356u, 3337171870u, 922601356u, 0, FABSF_TOLERANCE, 0},
+{735, 3462285635u, 3444030332u, 1314801987u, 0, FABSF_TOLERANCE, 0},
+{736, 3357177805u, 1085464241u, 1209694157u, 0, FABSF_TOLERANCE, 0},
+{737, 3049120080u, 900832851u, 901636432u, 0, FABSF_TOLERANCE, 0},
+{738, 1153863660u, 1011991342u, 1153863660u, 0, FABSF_TOLERANCE, 0},
+{739, 3034243695u, 917098003u, 886760047u, 0, FABSF_TOLERANCE, 0},
+{740, 1249365132u, 3278686216u, 1249365132u, 0, FABSF_TOLERANCE, 0},
+{741, 3046215730u, 3211219980u, 898732082u, 0, FABSF_TOLERANCE, 0},
+{742, 3047251716u, 1090787353u, 899768068u, 0, FABSF_TOLERANCE, 0},
+{743, 3131219358u, 3471261157u, 983735710u, 0, FABSF_TOLERANCE, 0},
+{744, 3222096285u, 1198013705u, 1074612637u, 0, FABSF_TOLERANCE, 0},
+{745, 1297708818u, 3079166173u, 1297708818u, 0, FABSF_TOLERANCE, 0},
+{746, 3345532722u, 3383708463u, 1198049074u, 0, FABSF_TOLERANCE, 0},
+{747, 3418753236u, 3481843070u, 1271269588u, 0, FABSF_TOLERANCE, 0},
+{748, 1277417964u, 3487506626u, 1277417964u, 0, FABSF_TOLERANCE, 0},
+{749, 987577257u, 1152077087u, 987577257u, 0, FABSF_TOLERANCE, 0},
+{750, 3161606610u, 3190282989u, 1014122962u, 0, FABSF_TOLERANCE, 0},
+{751, 888030585u, 3062367380u, 888030585u, 0, FABSF_TOLERANCE, 0},
+{752, 1043442869u, 3311393817u, 1043442869u, 0, FABSF_TOLERANCE, 0},
+{753, 3320923228u, 3464544249u, 1173439580u, 0, FABSF_TOLERANCE, 0},
+{754, 1337400405u, 3488844154u, 1337400405u, 0, FABSF_TOLERANCE, 0},
+{755, 3400348640u, 3129868490u, 1252864992u, 0, FABSF_TOLERANCE, 0},
+{756, 1250249095u, 1069023744u, 1250249095u, 0, FABSF_TOLERANCE, 0},
+{757, 3284411233u, 1173613526u, 1136927585u, 0, FABSF_TOLERANCE, 0},
+{758, 3020883322u, 2953622587u, 873399674u, 0, FABSF_TOLERANCE, 0},
+{759, 1215968622u, 3469884568u, 1215968622u, 0, FABSF_TOLERANCE, 0},
+{760, 3202319550u, 819117302u, 1054835902u, 0, FABSF_TOLERANCE, 0},
+{761, 3061638260u, 3116222327u, 914154612u, 0, FABSF_TOLERANCE, 0},
+{762, 1025404104u, 1066370251u, 1025404104u, 0, FABSF_TOLERANCE, 0},
+{763, 3138086437u, 3195983510u, 990602789u, 0, FABSF_TOLERANCE, 0},
+{764, 3091024506u, 3456196859u, 943540858u, 0, FABSF_TOLERANCE, 0},
+{765, 3362748242u, 3369843597u, 1215264594u, 0, FABSF_TOLERANCE, 0},
+{766, 3099671635u, 3218383623u, 952187987u, 0, FABSF_TOLERANCE, 0},
+{767, 3068014841u, 2978226656u, 920531193u, 0, FABSF_TOLERANCE, 0},
+{768, 1252237719u, 1121169249u, 1252237719u, 0, FABSF_TOLERANCE, 0},
+{769, 3327895594u, 1224511805u, 1180411946u, 0, FABSF_TOLERANCE, 0},
+{770, 3082454432u, 889268276u, 934970784u, 0, FABSF_TOLERANCE, 0},
+{771, 3396161504u, 1182798837u, 1248677856u, 0, FABSF_TOLERANCE, 0},
+{772, 1099710167u, 887180181u, 1099710167u, 0, FABSF_TOLERANCE, 0},
+{773, 1157186482u, 1288722647u, 1157186482u, 0, FABSF_TOLERANCE, 0},
+{774, 1282110851u, 3176633124u, 1282110851u, 0, FABSF_TOLERANCE, 0},
+{775, 3477008113u, 1331845018u, 1329524465u, 0, FABSF_TOLERANCE, 0},
+{776, 3292127294u, 3409957764u, 1144643646u, 0, FABSF_TOLERANCE, 0},
+{777, 1123357102u, 3281307320u, 1123357102u, 0, FABSF_TOLERANCE, 0},
+{778, 1106837025u, 3088080674u, 1106837025u, 0, FABSF_TOLERANCE, 0},
+{779, 1049949008u, 1130799489u, 1049949008u, 0, FABSF_TOLERANCE, 0},
+{780, 1253017688u, 942062372u, 1253017688u, 0, FABSF_TOLERANCE, 0},
+{781, 1108543194u, 3281299199u, 1108543194u, 0, FABSF_TOLERANCE, 0},
+{782, 3087985411u, 1238341456u, 940501763u, 0, FABSF_TOLERANCE, 0},
+{783, 3163283126u, 1328636961u, 1015799478u, 0, FABSF_TOLERANCE, 0},
+{784, 1160162706u, 1264067367u, 1160162706u, 0, FABSF_TOLERANCE, 0},
+{785, 3305715025u, 3017496063u, 1158231377u, 0, FABSF_TOLERANCE, 0},
+{786, 1266928623u, 811778614u, 1266928623u, 0, FABSF_TOLERANCE, 0},
+{787, 3025340297u, 1193925540u, 877856649u, 0, FABSF_TOLERANCE, 0},
+{788, 3438080027u, 3107114149u, 1290596379u, 0, FABSF_TOLERANCE, 0},
+{789, 3344574751u, 3111270744u, 1197091103u, 0, FABSF_TOLERANCE, 0},
+{790, 1152416724u, 962669179u, 1152416724u, 0, FABSF_TOLERANCE, 0},
+{791, 1218239308u, 1126238113u, 1218239308u, 0, FABSF_TOLERANCE, 0},
+{792, 3263310567u, 1030748197u, 1115826919u, 0, FABSF_TOLERANCE, 0},
+{793, 3041998669u, 1160635263u, 894515021u, 0, FABSF_TOLERANCE, 0},
+{794, 1000313118u, 2980130729u, 1000313118u, 0, FABSF_TOLERANCE, 0},
+{795, 972485427u, 1124312043u, 972485427u, 0, FABSF_TOLERANCE, 0},
+{796, 3290264612u, 1124703898u, 1142780964u, 0, FABSF_TOLERANCE, 0},
+{797, 3222106584u, 1183748648u, 1074622936u, 0, FABSF_TOLERANCE, 0},
+{798, 1278946388u, 825129857u, 1278946388u, 0, FABSF_TOLERANCE, 0},
+{799, 947914771u, 3181847068u, 947914771u, 0, FABSF_TOLERANCE, 0},
+{800, 3167730654u, 3195765940u, 1020247006u, 0, FABSF_TOLERANCE, 0},
+{801, 1098530298u, 3255870890u, 1098530298u, 0, FABSF_TOLERANCE, 0},
+{802, 3232726036u, 871038882u, 1085242388u, 0, FABSF_TOLERANCE, 0},
+{803, 1297190916u, 811863044u, 1297190916u, 0, FABSF_TOLERANCE, 0},
+{804, 1277649137u, 961171401u, 1277649137u, 0, FABSF_TOLERANCE, 0},
+{805, 3203377685u, 1306427476u, 1055894037u, 0, FABSF_TOLERANCE, 0},
+{806, 3090306474u, 3124785016u, 942822826u, 0, FABSF_TOLERANCE, 0},
+{807, 3244032016u, 3045313345u, 1096548368u, 0, FABSF_TOLERANCE, 0},
+{808, 3033122376u, 3049877065u, 885638728u, 0, FABSF_TOLERANCE, 0},
+{809, 1096155623u, 1256423752u, 1096155623u, 0, FABSF_TOLERANCE, 0},
+{810, 873151908u, 3246562559u, 873151908u, 0, FABSF_TOLERANCE, 0},
+{811, 3238729605u, 1298769842u, 1091245957u, 0, FABSF_TOLERANCE, 0},
+{812, 3317196817u, 989537151u, 1169713169u, 0, FABSF_TOLERANCE, 0},
+{813, 3374748510u, 834161190u, 1227264862u, 0, FABSF_TOLERANCE, 0},
+{814, 3345634950u, 959901149u, 1198151302u, 0, FABSF_TOLERANCE, 0},
+{815, 3189860276u, 883598767u, 1042376628u, 0, FABSF_TOLERANCE, 0},
+{816, 887311687u, 1175312255u, 887311687u, 0, FABSF_TOLERANCE, 0},
+{817, 3396917283u, 3066326686u, 1249433635u, 0, FABSF_TOLERANCE, 0},
+{818, 3317032737u, 3143803722u, 1169549089u, 0, FABSF_TOLERANCE, 0},
+{819, 1200051436u, 1163802508u, 1200051436u, 0, FABSF_TOLERANCE, 0},
+{820, 3105291012u, 1194385202u, 957807364u, 0, FABSF_TOLERANCE, 0},
+{821, 1306520561u, 957302464u, 1306520561u, 0, FABSF_TOLERANCE, 0},
+{822, 1314936356u, 2985592532u, 1314936356u, 0, FABSF_TOLERANCE, 0},
+{823, 3475052219u, 1284049853u, 1327568571u, 0, FABSF_TOLERANCE, 0},
+{824, 3085636260u, 1107682820u, 938152612u, 0, FABSF_TOLERANCE, 0},
+{825, 3393227708u, 3271879112u, 1245744060u, 0, FABSF_TOLERANCE, 0},
+{826, 3182540197u, 852580839u, 1035056549u, 0, FABSF_TOLERANCE, 0},
+{827, 3349005404u, 3080993030u, 1201521756u, 0, FABSF_TOLERANCE, 0},
+{828, 3154720153u, 3443720494u, 1007236505u, 0, FABSF_TOLERANCE, 0},
+{829, 1262863321u, 1219003129u, 1262863321u, 0, FABSF_TOLERANCE, 0},
+{830, 882902102u, 1224362550u, 882902102u, 0, FABSF_TOLERANCE, 0},
+{831, 1053387478u, 3184880021u, 1053387478u, 0, FABSF_TOLERANCE, 0},
+{832, 3387653691u, 3347783852u, 1240170043u, 0, FABSF_TOLERANCE, 0},
+{833, 3136364836u, 1018492227u, 988881188u, 0, FABSF_TOLERANCE, 0},
+{834, 1338680611u, 1166078045u, 1338680611u, 0, FABSF_TOLERANCE, 0},
+{835, 1112891928u, 3074730425u, 1112891928u, 0, FABSF_TOLERANCE, 0},
+{836, 893449284u, 1052877339u, 893449284u, 0, FABSF_TOLERANCE, 0},
+{837, 892311459u, 1097338393u, 892311459u, 0, FABSF_TOLERANCE, 0},
+{838, 3105373037u, 3246705916u, 957889389u, 0, FABSF_TOLERANCE, 0},
+{839, 1190105283u, 3033907262u, 1190105283u, 0, FABSF_TOLERANCE, 0},
+{840, 1011225926u, 1180485180u, 1011225926u, 0, FABSF_TOLERANCE, 0},
+{841, 1043025031u, 987068973u, 1043025031u, 0, FABSF_TOLERANCE, 0},
+{842, 3410531037u, 2953541915u, 1263047389u, 0, FABSF_TOLERANCE, 0},
+{843, 3125834184u, 896953754u, 978350536u, 0, FABSF_TOLERANCE, 0},
+{844, 902318189u, 849277289u, 902318189u, 0, FABSF_TOLERANCE, 0},
+{845, 3213624815u, 2987148017u, 1066141167u, 0, FABSF_TOLERANCE, 0},
+{846, 1120888322u, 1086209113u, 1120888322u, 0, FABSF_TOLERANCE, 0},
+{847, 1315217243u, 3396371713u, 1315217243u, 0, FABSF_TOLERANCE, 0},
+{848, 3137758475u, 1039403054u, 990274827u, 0, FABSF_TOLERANCE, 0},
+{849, 1040617590u, 1034835971u, 1040617590u, 0, FABSF_TOLERANCE, 0},
+{850, 955384253u, 3344785562u, 955384253u, 0, FABSF_TOLERANCE, 0},
+{851, 3061417900u, 1172208065u, 913934252u, 0, FABSF_TOLERANCE, 0},
+{852, 904255535u, 1019967545u, 904255535u, 0, FABSF_TOLERANCE, 0},
+{853, 1022984119u, 3113891410u, 1022984119u, 0, FABSF_TOLERANCE, 0},
+{854, 997362368u, 3112875428u, 997362368u, 0, FABSF_TOLERANCE, 0},
+{855, 900933520u, 1100589187u, 900933520u, 0, FABSF_TOLERANCE, 0},
+{856, 1168623062u, 1143306482u, 1168623062u, 0, FABSF_TOLERANCE, 0},
+{857, 878737490u, 3269908326u, 878737490u, 0, FABSF_TOLERANCE, 0},
+{858, 1039827284u, 1072928888u, 1039827284u, 0, FABSF_TOLERANCE, 0},
+{859, 1021564080u, 1064468397u, 1021564080u, 0, FABSF_TOLERANCE, 0},
+{860, 3458669745u, 3033299853u, 1311186097u, 0, FABSF_TOLERANCE, 0},
+{861, 3327516316u, 3405380971u, 1180032668u, 0, FABSF_TOLERANCE, 0},
+{862, 1040711112u, 3229444200u, 1040711112u, 0, FABSF_TOLERANCE, 0},
+{863, 1134528351u, 3365952513u, 1134528351u, 0, FABSF_TOLERANCE, 0},
+{864, 3039884464u, 1170612785u, 892400816u, 0, FABSF_TOLERANCE, 0},
+{865, 3414352838u, 3350285760u, 1266869190u, 0, FABSF_TOLERANCE, 0},
+{866, 1133689539u, 1067460093u, 1133689539u, 0, FABSF_TOLERANCE, 0},
+{867, 3455688478u, 3333091960u, 1308204830u, 0, FABSF_TOLERANCE, 0},
+{868, 1137634874u, 1137038869u, 1137634874u, 0, FABSF_TOLERANCE, 0},
+{869, 3415502662u, 955510692u, 1268019014u, 0, FABSF_TOLERANCE, 0},
+{870, 954999730u, 969618597u, 954999730u, 0, FABSF_TOLERANCE, 0},
+{871, 1066157309u, 3241712664u, 1066157309u, 0, FABSF_TOLERANCE, 0},
+{872, 3436353675u, 1174967495u, 1288870027u, 0, FABSF_TOLERANCE, 0},
+{873, 940437609u, 860372396u, 940437609u, 0, FABSF_TOLERANCE, 0},
+{874, 3108347547u, 3434003435u, 960863899u, 0, FABSF_TOLERANCE, 0},
+{875, 3064200154u, 3158080507u, 916716506u, 0, FABSF_TOLERANCE, 0},
+{876, 1023889593u, 2979304683u, 1023889593u, 0, FABSF_TOLERANCE, 0},
+{877, 3272661536u, 3461799138u, 1125177888u, 0, FABSF_TOLERANCE, 0},
+{878, 1170245333u, 1233406410u, 1170245333u, 0, FABSF_TOLERANCE, 0},
+{879, 1219052056u, 3369557946u, 1219052056u, 0, FABSF_TOLERANCE, 0},
+{880, 3318983619u, 3259663338u, 1171499971u, 0, FABSF_TOLERANCE, 0},
+{881, 3372118621u, 837597103u, 1224634973u, 0, FABSF_TOLERANCE, 0},
+{882, 3146190320u, 889646054u, 998706672u, 0, FABSF_TOLERANCE, 0},
+{883, 1299683827u, 966031619u, 1299683827u, 0, FABSF_TOLERANCE, 0},
+{884, 3190796331u, 1320011850u, 1043312683u, 0, FABSF_TOLERANCE, 0},
+{885, 3086068902u, 3484245751u, 938585254u, 0, FABSF_TOLERANCE, 0},
+{886, 3064155399u, 3176569312u, 916671751u, 0, FABSF_TOLERANCE, 0},
+{887, 3040314717u, 1071290674u, 892831069u, 0, FABSF_TOLERANCE, 0},
+{888, 3257224022u, 3361778245u, 1109740374u, 0, FABSF_TOLERANCE, 0},
+{889, 1229268598u, 1066965677u, 1229268598u, 0, FABSF_TOLERANCE, 0},
+{890, 3184078812u, 871003709u, 1036595164u, 0, FABSF_TOLERANCE, 0},
+{891, 1086717248u, 3423795374u, 1086717248u, 0, FABSF_TOLERANCE, 0},
+{892, 3434884607u, 3029593823u, 1287400959u, 0, FABSF_TOLERANCE, 0},
+{893, 3464955606u, 1017987696u, 1317471958u, 0, FABSF_TOLERANCE, 0},
+{894, 1025278524u, 3121856207u, 1025278524u, 0, FABSF_TOLERANCE, 0},
+{895, 1242829722u, 3233935671u, 1242829722u, 0, FABSF_TOLERANCE, 0},
+{896, 3075149137u, 1117325737u, 927665489u, 0, FABSF_TOLERANCE, 0},
+{897, 1200927971u, 1317167489u, 1200927971u, 0, FABSF_TOLERANCE, 0},
+{898, 3326858092u, 3452602832u, 1179374444u, 0, FABSF_TOLERANCE, 0},
+{899, 1246019790u, 850632217u, 1246019790u, 0, FABSF_TOLERANCE, 0},
+{900, 3184801644u, 1137974313u, 1037317996u, 0, FABSF_TOLERANCE, 0},
+{901, 1136052740u, 3244616020u, 1136052740u, 0, FABSF_TOLERANCE, 0},
+{902, 1069009211u, 3002507482u, 1069009211u, 0, FABSF_TOLERANCE, 0},
+{903, 1015670780u, 1101217251u, 1015670780u, 0, FABSF_TOLERANCE, 0},
+{904, 1012543234u, 1116520440u, 1012543234u, 0, FABSF_TOLERANCE, 0},
+{905, 3316611992u, 3394732912u, 1169128344u, 0, FABSF_TOLERANCE, 0},
+{906, 1087942795u, 3316660295u, 1087942795u, 0, FABSF_TOLERANCE, 0},
+{907, 3426365713u, 3069778532u, 1278882065u, 0, FABSF_TOLERANCE, 0},
+{908, 3066654389u, 3443934204u, 919170741u, 0, FABSF_TOLERANCE, 0},
+{909, 3295326432u, 1313396175u, 1147842784u, 0, FABSF_TOLERANCE, 0},
+{910, 3318835308u, 3277583511u, 1171351660u, 0, FABSF_TOLERANCE, 0},
+{911, 3283555717u, 891875120u, 1136072069u, 0, FABSF_TOLERANCE, 0},
+{912, 3381255420u, 3015406047u, 1233771772u, 0, FABSF_TOLERANCE, 0},
+{913, 3040485181u, 3375450886u, 893001533u, 0, FABSF_TOLERANCE, 0},
+{914, 3388772093u, 1032597076u, 1241288445u, 0, FABSF_TOLERANCE, 0},
+{915, 954670189u, 1144923689u, 954670189u, 0, FABSF_TOLERANCE, 0},
+{916, 1319200415u, 3387555900u, 1319200415u, 0, FABSF_TOLERANCE, 0},
+{917, 1279324488u, 3228401212u, 1279324488u, 0, FABSF_TOLERANCE, 0},
+{918, 3217795424u, 865577227u, 1070311776u, 0, FABSF_TOLERANCE, 0},
+{919, 3455131757u, 1260217257u, 1307648109u, 0, FABSF_TOLERANCE, 0},
+{920, 1246947517u, 1087951909u, 1246947517u, 0, FABSF_TOLERANCE, 0},
+{921, 3396723577u, 869285240u, 1249239929u, 0, FABSF_TOLERANCE, 0},
+{922, 3433761025u, 3060143904u, 1286277377u, 0, FABSF_TOLERANCE, 0},
+{923, 3201187455u, 900233172u, 1053703807u, 0, FABSF_TOLERANCE, 0},
+{924, 1173247961u, 1191127979u, 1173247961u, 0, FABSF_TOLERANCE, 0},
+{925, 3037297123u, 3346394818u, 889813475u, 0, FABSF_TOLERANCE, 0},
+{926, 3248534678u, 1323683800u, 1101051030u, 0, FABSF_TOLERANCE, 0},
+{927, 3083019343u, 3033309444u, 935535695u, 0, FABSF_TOLERANCE, 0},
+{928, 3042018375u, 3203882372u, 894534727u, 0, FABSF_TOLERANCE, 0},
+{929, 1082862511u, 3032804719u, 1082862511u, 0, FABSF_TOLERANCE, 0},
+{930, 3157626955u, 3483653298u, 1010143307u, 0, FABSF_TOLERANCE, 0},
+{931, 1341821683u, 3003675365u, 1341821683u, 0, FABSF_TOLERANCE, 0},
+{932, 881101379u, 1190838126u, 881101379u, 0, FABSF_TOLERANCE, 0},
+{933, 1079061705u, 2960507663u, 1079061705u, 0, FABSF_TOLERANCE, 0},
+{934, 3182695954u, 3256861672u, 1035212306u, 0, FABSF_TOLERANCE, 0},
+{935, 1105291533u, 3482971524u, 1105291533u, 0, FABSF_TOLERANCE, 0},
+{936, 1016023520u, 3227712090u, 1016023520u, 0, FABSF_TOLERANCE, 0},
+{937, 3370691006u, 1295870514u, 1223207358u, 0, FABSF_TOLERANCE, 0},
+{938, 1156767169u, 1049756240u, 1156767169u, 0, FABSF_TOLERANCE, 0},
+{939, 3077020499u, 894671462u, 929536851u, 0, FABSF_TOLERANCE, 0},
+{940, 1104284039u, 3040211914u, 1104284039u, 0, FABSF_TOLERANCE, 0},
+{941, 3335212901u, 3486414589u, 1187729253u, 0, FABSF_TOLERANCE, 0},
+{942, 1093697541u, 3193708441u, 1093697541u, 0, FABSF_TOLERANCE, 0},
+{943, 3266691185u, 1160074593u, 1119207537u, 0, FABSF_TOLERANCE, 0},
+{944, 3179003144u, 1108615803u, 1031519496u, 0, FABSF_TOLERANCE, 0},
+{945, 1094115255u, 3008610212u, 1094115255u, 0, FABSF_TOLERANCE, 0},
+{946, 3424086808u, 3260140004u, 1276603160u, 0, FABSF_TOLERANCE, 0},
+{947, 3353608773u, 1134068114u, 1206125125u, 0, FABSF_TOLERANCE, 0},
+{948, 973664327u, 1319516167u, 973664327u, 0, FABSF_TOLERANCE, 0},
+{949, 882878091u, 3136970767u, 882878091u, 0, FABSF_TOLERANCE, 0},
+{950, 1098662266u, 833740182u, 1098662266u, 0, FABSF_TOLERANCE, 0},
+{951, 927582555u, 947955456u, 927582555u, 0, FABSF_TOLERANCE, 0},
+{952, 3111440310u, 3067634077u, 963956662u, 0, FABSF_TOLERANCE, 0},
+{953, 3476083859u, 966439623u, 1328600211u, 0, FABSF_TOLERANCE, 0},
+{954, 3038754840u, 932009686u, 891271192u, 0, FABSF_TOLERANCE, 0},
+{955, 979878744u, 1232482646u, 979878744u, 0, FABSF_TOLERANCE, 0},
+{956, 3464546616u, 3205527253u, 1317062968u, 0, FABSF_TOLERANCE, 0},
+{957, 1002542205u, 3152136093u, 1002542205u, 0, FABSF_TOLERANCE, 0},
+{958, 3443552129u, 3165561391u, 1296068481u, 0, FABSF_TOLERANCE, 0},
+{959, 1287620154u, 3119707283u, 1287620154u, 0, FABSF_TOLERANCE, 0},
+{960, 946058434u, 1249928879u, 946058434u, 0, FABSF_TOLERANCE, 0},
+{961, 3073260205u, 3093124531u, 925776557u, 0, FABSF_TOLERANCE, 0},
+{962, 1245702957u, 894348966u, 1245702957u, 0, FABSF_TOLERANCE, 0},
+{963, 989655126u, 1308376568u, 989655126u, 0, FABSF_TOLERANCE, 0},
+{964, 1002715618u, 1191006977u, 1002715618u, 0, FABSF_TOLERANCE, 0},
+{965, 3087802274u, 897541752u, 940318626u, 0, FABSF_TOLERANCE, 0},
+{966, 1000863905u, 1196831314u, 1000863905u, 0, FABSF_TOLERANCE, 0},
+{967, 3415763001u, 3032518431u, 1268279353u, 0, FABSF_TOLERANCE, 0},
+{968, 3283471961u, 1260093226u, 1135988313u, 0, FABSF_TOLERANCE, 0},
+{969, 3311210827u, 1192192264u, 1163727179u, 0, FABSF_TOLERANCE, 0},
+{970, 3026311911u, 2968974374u, 878828263u, 0, FABSF_TOLERANCE, 0},
+{971, 1198307901u, 1116328249u, 1198307901u, 0, FABSF_TOLERANCE, 0},
+{972, 1288901567u, 1296370667u, 1288901567u, 0, FABSF_TOLERANCE, 0},
+{973, 922255363u, 958305289u, 922255363u, 0, FABSF_TOLERANCE, 0},
+{974, 1113104661u, 944376032u, 1113104661u, 0, FABSF_TOLERANCE, 0},
+{975, 1136714348u, 828849087u, 1136714348u, 0, FABSF_TOLERANCE, 0},
+{976, 948856035u, 1015466475u, 948856035u, 0, FABSF_TOLERANCE, 0},
+{977, 1062512367u, 3229559531u, 1062512367u, 0, FABSF_TOLERANCE, 0},
+{978, 3486907092u, 823220784u, 1339423444u, 0, FABSF_TOLERANCE, 0},
+{979, 1162027071u, 3308983387u, 1162027071u, 0, FABSF_TOLERANCE, 0},
+{980, 1034561811u, 1054043114u, 1034561811u, 0, FABSF_TOLERANCE, 0},
+{981, 3271615417u, 3209997200u, 1124131769u, 0, FABSF_TOLERANCE, 0},
+{982, 1042014529u, 1146708584u, 1042014529u, 0, FABSF_TOLERANCE, 0},
+{983, 1177157787u, 3090208179u, 1177157787u, 0, FABSF_TOLERANCE, 0},
+{984, 3196144817u, 1056118717u, 1048661169u, 0, FABSF_TOLERANCE, 0},
+{985, 3432084552u, 2997091781u, 1284600904u, 0, FABSF_TOLERANCE, 0},
+{986, 1309658335u, 1010219988u, 1309658335u, 0, FABSF_TOLERANCE, 0},
+{987, 1226494979u, 2991604792u, 1226494979u, 0, FABSF_TOLERANCE, 0},
+{988, 3100289712u, 3456334210u, 952806064u, 0, FABSF_TOLERANCE, 0},
+{989, 3375507013u, 1306310823u, 1228023365u, 0, FABSF_TOLERANCE, 0},
+{990, 3460699001u, 3096700943u, 1313215353u, 0, FABSF_TOLERANCE, 0},
+{991, 3079231719u, 1044386263u, 931748071u, 0, FABSF_TOLERANCE, 0},
+{992, 3093951884u, 1014115231u, 946468236u, 0, FABSF_TOLERANCE, 0},
+{993, 3468023178u, 1209565017u, 1320539530u, 0, FABSF_TOLERANCE, 0},
+{994, 1204196034u, 3298625731u, 1204196034u, 0, FABSF_TOLERANCE, 0},
+{995, 3459877411u, 2960476959u, 1312393763u, 0, FABSF_TOLERANCE, 0},
+{996, 909696559u, 1163075690u, 909696559u, 0, FABSF_TOLERANCE, 0},
+{997, 1161439847u, 943449277u, 1161439847u, 0, FABSF_TOLERANCE, 0},
+{998, 908663107u, 939489763u, 908663107u, 0, FABSF_TOLERANCE, 0},
+{999, 1055319316u, 3261813492u, 1055319316u, 0, FABSF_TOLERANCE, 0},
+{1000, 1084378658u, 1009650785u, 1084378658u, 0, FABSF_TOLERANCE, 0},
+{1001, 3053887750u, 3341786453u, 906404102u, 0, FABSF_TOLERANCE, 0},
+{1002, 3022828828u, 881335251u, 875345180u, 0, FABSF_TOLERANCE, 0},
+{1003, 1226473697u, 821025132u, 1226473697u, 0, FABSF_TOLERANCE, 0},
+{1004, 1123114742u, 1229815537u, 1123114742u, 0, FABSF_TOLERANCE, 0},
+{1005, 1258114435u, 1291336083u, 1258114435u, 0, FABSF_TOLERANCE, 0},
+{1006, 3468040845u, 3066966245u, 1320557197u, 0, FABSF_TOLERANCE, 0},
+{1007, 1178825761u, 1113195286u, 1178825761u, 0, FABSF_TOLERANCE, 0},
+{1008, 3059266302u, 878503862u, 911782654u, 0, FABSF_TOLERANCE, 0},
+{1009, 3223384012u, 1130486973u, 1075900364u, 0, FABSF_TOLERANCE, 0},
+{1010, 1019964626u, 1235133609u, 1019964626u, 0, FABSF_TOLERANCE, 0},
+{1011, 3445262427u, 3465211174u, 1297778779u, 0, FABSF_TOLERANCE, 0},
+{1012, 1125653081u, 1207799746u, 1125653081u, 0, FABSF_TOLERANCE, 0},
+{1013, 3337652712u, 3025581813u, 1190169064u, 0, FABSF_TOLERANCE, 0},
+{1014, 1184753508u, 3147374485u, 1184753508u, 0, FABSF_TOLERANCE, 0},
+{1015, 996404791u, 3353251979u, 996404791u, 0, FABSF_TOLERANCE, 0},
+{1016, 1188439315u, 1113484271u, 1188439315u, 0, FABSF_TOLERANCE, 0},
+{1017, 906557513u, 3006513432u, 906557513u, 0, FABSF_TOLERANCE, 0},
+{1018, 916831283u, 999465787u, 916831283u, 0, FABSF_TOLERANCE, 0},
+{1019, 996786317u, 3179221951u, 996786317u, 0, FABSF_TOLERANCE, 0},
+{1020, 3461635065u, 1004690387u, 1314151417u, 0, FABSF_TOLERANCE, 0},
+{1021, 1188167943u, 1200744896u, 1188167943u, 0, FABSF_TOLERANCE, 0},
+{1022, 3036502395u, 1172597364u, 889018747u, 0, FABSF_TOLERANCE, 0},
+{1023, 891257783u, 1267560050u, 891257783u, 0, FABSF_TOLERANCE, 0},
+{1024, 3290079438u, 846519377u, 1142595790u, 0, FABSF_TOLERANCE, 0},
+{1025, 3350690327u, 2967953392u, 1203206679u, 0, FABSF_TOLERANCE, 0},
+{1026, 1102061604u, 3424449935u, 1102061604u, 0, FABSF_TOLERANCE, 0},
+{1027, 1282351521u, 3039376424u, 1282351521u, 0, FABSF_TOLERANCE, 0},
+{1028, 3458861065u, 3392466405u, 1311377417u, 0, FABSF_TOLERANCE, 0},
+{1029, 3095256878u, 1023623326u, 947773230u, 0, FABSF_TOLERANCE, 0},
+{1030, 3163373610u, 843150426u, 1015889962u, 0, FABSF_TOLERANCE, 0},
+{1031, 3228793330u, 855146890u, 1081309682u, 0, FABSF_TOLERANCE, 0},
+{1032, 3422194733u, 893873945u, 1274711085u, 0, FABSF_TOLERANCE, 0},
+{1033, 3083885296u, 974543672u, 936401648u, 0, FABSF_TOLERANCE, 0},
+{1034, 1261940623u, 3402349985u, 1261940623u, 0, FABSF_TOLERANCE, 0},
+{1035, 3400603081u, 3234396843u, 1253119433u, 0, FABSF_TOLERANCE, 0},
+{1036, 1219411812u, 2961857939u, 1219411812u, 0, FABSF_TOLERANCE, 0},
+{1037, 3094833770u, 805351108u, 947350122u, 0, FABSF_TOLERANCE, 0},
+{1038, 3139250800u, 3079109479u, 991767152u, 0, FABSF_TOLERANCE, 0},
+{1039, 886201503u, 3272760705u, 886201503u, 0, FABSF_TOLERANCE, 0},
+{1040, 3297366026u, 1089966380u, 1149882378u, 0, FABSF_TOLERANCE, 0},
+{1041, 1218488455u, 3309646450u, 1218488455u, 0, FABSF_TOLERANCE, 0},
+{1042, 3040358923u, 3093401553u, 892875275u, 0, FABSF_TOLERANCE, 0},
+{1043, 1283938137u, 1196383822u, 1283938137u, 0, FABSF_TOLERANCE, 0},
+{1044, 3182551696u, 3029982441u, 1035068048u, 0, FABSF_TOLERANCE, 0},
+{1045, 1317098613u, 949986176u, 1317098613u, 0, FABSF_TOLERANCE, 0},
+{1046, 3116209179u, 3303588342u, 968725531u, 0, FABSF_TOLERANCE, 0},
+{1047, 3431703657u, 3014443710u, 1284220009u, 0, FABSF_TOLERANCE, 0},
+{1048, 3239728775u, 927815421u, 1092245127u, 0, FABSF_TOLERANCE, 0},
+{1049, 3207141672u, 933456504u, 1059658024u, 0, FABSF_TOLERANCE, 0},
+{1050, 3154378805u, 905462392u, 1006895157u, 0, FABSF_TOLERANCE, 0},
+{1051, 3069658155u, 1041452042u, 922174507u, 0, FABSF_TOLERANCE, 0},
+{1052, 3313160088u, 2964063309u, 1165676440u, 0, FABSF_TOLERANCE, 0},
+{1053, 3207056527u, 3384206601u, 1059572879u, 0, FABSF_TOLERANCE, 0},
+{1054, 1284174954u, 3436881197u, 1284174954u, 0, FABSF_TOLERANCE, 0},
+{1055, 3156081645u, 3308839704u, 1008597997u, 0, FABSF_TOLERANCE, 0},
+{1056, 1063693032u, 976661408u, 1063693032u, 0, FABSF_TOLERANCE, 0},
+{1057, 3036026175u, 1251203998u, 888542527u, 0, FABSF_TOLERANCE, 0},
+{1058, 1102631663u, 3396951425u, 1102631663u, 0, FABSF_TOLERANCE, 0},
+{1059, 968803479u, 992989712u, 968803479u, 0, FABSF_TOLERANCE, 0},
+{1060, 3273080388u, 3109405906u, 1125596740u, 0, FABSF_TOLERANCE, 0},
+{1061, 1172529774u, 3294550127u, 1172529774u, 0, FABSF_TOLERANCE, 0},
+{1062, 1306695905u, 1292690378u, 1306695905u, 0, FABSF_TOLERANCE, 0},
+{1063, 1003649752u, 1218792138u, 1003649752u, 0, FABSF_TOLERANCE, 0},
+{1064, 1078478376u, 1326246424u, 1078478376u, 0, FABSF_TOLERANCE, 0},
+{1065, 3158855023u, 3151283866u, 1011371375u, 0, FABSF_TOLERANCE, 0},
+{1066, 1165177679u, 3276237026u, 1165177679u, 0, FABSF_TOLERANCE, 0},
+{1067, 3403009513u, 3381966453u, 1255525865u, 0, FABSF_TOLERANCE, 0},
+{1068, 952348506u, 3377573987u, 952348506u, 0, FABSF_TOLERANCE, 0},
+{1069, 1222777442u, 1125769920u, 1222777442u, 0, FABSF_TOLERANCE, 0},
+{1070, 1325324763u, 978336043u, 1325324763u, 0, FABSF_TOLERANCE, 0},
+{1071, 3363524213u, 3202991311u, 1216040565u, 0, FABSF_TOLERANCE, 0},
+{1072, 1158950321u, 1073578913u, 1158950321u, 0, FABSF_TOLERANCE, 0},
+{1073, 903129873u, 3416864271u, 903129873u, 0, FABSF_TOLERANCE, 0},
+{1074, 3078339944u, 988173985u, 930856296u, 0, FABSF_TOLERANCE, 0},
+{1075, 1208345407u, 1254181270u, 1208345407u, 0, FABSF_TOLERANCE, 0},
+{1076, 1258634105u, 1247426200u, 1258634105u, 0, FABSF_TOLERANCE, 0},
+{1077, 1248478509u, 1287895126u, 1248478509u, 0, FABSF_TOLERANCE, 0},
+{1078, 1153863988u, 3430539165u, 1153863988u, 0, FABSF_TOLERANCE, 0},
+{1079, 1235620969u, 866627358u, 1235620969u, 0, FABSF_TOLERANCE, 0},
+{1080, 1097120930u, 3221726305u, 1097120930u, 0, FABSF_TOLERANCE, 0},
+{1081, 3469778622u, 1200179013u, 1322294974u, 0, FABSF_TOLERANCE, 0},
+{1082, 1147712200u, 931865525u, 1147712200u, 0, FABSF_TOLERANCE, 0},
+{1083, 1124721745u, 3058969650u, 1124721745u, 0, FABSF_TOLERANCE, 0},
+{1084, 3261744304u, 1043806501u, 1114260656u, 0, FABSF_TOLERANCE, 0},
+{1085, 1064922416u, 1320485628u, 1064922416u, 0, FABSF_TOLERANCE, 0},
+{1086, 3303160152u, 3075455322u, 1155676504u, 0, FABSF_TOLERANCE, 0},
+{1087, 1315090496u, 3269683237u, 1315090496u, 0, FABSF_TOLERANCE, 0},
+{1088, 3230403187u, 1322841992u, 1082919539u, 0, FABSF_TOLERANCE, 0},
+{1089, 1335399673u, 974138676u, 1335399673u, 0, FABSF_TOLERANCE, 0},
+{1090, 1072458508u, 3372833993u, 1072458508u, 0, FABSF_TOLERANCE, 0},
+{1091, 3303015249u, 3015039539u, 1155531601u, 0, FABSF_TOLERANCE, 0},
+{1092, 3252139741u, 1059615003u, 1104656093u, 0, FABSF_TOLERANCE, 0},
+{1093, 3468519966u, 3113982619u, 1321036318u, 0, FABSF_TOLERANCE, 0},
+{1094, 1006231203u, 897530770u, 1006231203u, 0, FABSF_TOLERANCE, 0},
+{1095, 951554138u, 1001144381u, 951554138u, 0, FABSF_TOLERANCE, 0},
+{1096, 942046828u, 986341002u, 942046828u, 0, FABSF_TOLERANCE, 0},
+{1097, 3319723279u, 3414482416u, 1172239631u, 0, FABSF_TOLERANCE, 0},
+{1098, 3255104167u, 928827688u, 1107620519u, 0, FABSF_TOLERANCE, 0},
+{1099, 1155477903u, 3104812800u, 1155477903u, 0, FABSF_TOLERANCE, 0},
+{1100, 3273889176u, 980486479u, 1126405528u, 0, FABSF_TOLERANCE, 0},
+{1101, 3237813668u, 3441016803u, 1090330020u, 0, FABSF_TOLERANCE, 0},
+{1102, 1228207362u, 2985476579u, 1228207362u, 0, FABSF_TOLERANCE, 0},
+{1103, 975349337u, 1311932596u, 975349337u, 0, FABSF_TOLERANCE, 0},
+{1104, 1290175785u, 3008182462u, 1290175785u, 0, FABSF_TOLERANCE, 0},
+{1105, 981908840u, 3314038398u, 981908840u, 0, FABSF_TOLERANCE, 0},
+{1106, 941187647u, 1107765599u, 941187647u, 0, FABSF_TOLERANCE, 0},
+{1107, 1214223128u, 3225536822u, 1214223128u, 0, FABSF_TOLERANCE, 0},
+{1108, 3422922584u, 1086391131u, 1275438936u, 0, FABSF_TOLERANCE, 0},
+{1109, 1315857601u, 3487600045u, 1315857601u, 0, FABSF_TOLERANCE, 0},
+{1110, 3453226030u, 3233768835u, 1305742382u, 0, FABSF_TOLERANCE, 0},
+{1111, 1078359574u, 3199175230u, 1078359574u, 0, FABSF_TOLERANCE, 0},
+{1112, 1029557624u, 3302959071u, 1029557624u, 0, FABSF_TOLERANCE, 0},
+{1113, 1207675424u, 3042692550u, 1207675424u, 0, FABSF_TOLERANCE, 0},
+{1114, 1028355074u, 3442294040u, 1028355074u, 0, FABSF_TOLERANCE, 0},
+{1115, 3119299090u, 1187096397u, 971815442u, 0, FABSF_TOLERANCE, 0},
+{1116, 1248421894u, 3367769132u, 1248421894u, 0, FABSF_TOLERANCE, 0},
+{1117, 3353251994u, 1095517730u, 1205768346u, 0, FABSF_TOLERANCE, 0},
+{1118, 876926659u, 3288089977u, 876926659u, 0, FABSF_TOLERANCE, 0},
+{1119, 1076752219u, 876236939u, 1076752219u, 0, FABSF_TOLERANCE, 0},
+{1120, 3388531942u, 2988520062u, 1241048294u, 0, FABSF_TOLERANCE, 0},
+{1121, 1273395082u, 3031189261u, 1273395082u, 0, FABSF_TOLERANCE, 0},
+{1122, 3385588183u, 3258252464u, 1238104535u, 0, FABSF_TOLERANCE, 0},
+{1123, 3192315328u, 3289489214u, 1044831680u, 0, FABSF_TOLERANCE, 0},
+{1124, 3441804648u, 3274638356u, 1294321000u, 0, FABSF_TOLERANCE, 0},
+{1125, 3392827417u, 1277961150u, 1245343769u, 0, FABSF_TOLERANCE, 0},
+{1126, 1161241793u, 1328003707u, 1161241793u, 0, FABSF_TOLERANCE, 0},
+{1127, 3034494183u, 3041579130u, 887010535u, 0, FABSF_TOLERANCE, 0},
+{1128, 1171318485u, 3374409104u, 1171318485u, 0, FABSF_TOLERANCE, 0},
+{1129, 3047748143u, 831102792u, 900264495u, 0, FABSF_TOLERANCE, 0},
+{1130, 1001216371u, 3052357038u, 1001216371u, 0, FABSF_TOLERANCE, 0},
+{1131, 912515889u, 1074635609u, 912515889u, 0, FABSF_TOLERANCE, 0},
+{1132, 3391452505u, 897989232u, 1243968857u, 0, FABSF_TOLERANCE, 0},
+{1133, 3249603369u, 3147662248u, 1102119721u, 0, FABSF_TOLERANCE, 0},
+{1134, 1220264047u, 2960450369u, 1220264047u, 0, FABSF_TOLERANCE, 0},
+{1135, 3169816394u, 988430929u, 1022332746u, 0, FABSF_TOLERANCE, 0},
+{1136, 3098997418u, 3002162688u, 951513770u, 0, FABSF_TOLERANCE, 0},
+{1137, 3282212423u, 3174079140u, 1134728775u, 0, FABSF_TOLERANCE, 0},
+{1138, 3352293320u, 3247843425u, 1204809672u, 0, FABSF_TOLERANCE, 0},
+{1139, 3296358441u, 875645354u, 1148874793u, 0, FABSF_TOLERANCE, 0},
+{1140, 1197828352u, 3245614728u, 1197828352u, 0, FABSF_TOLERANCE, 0},
+{1141, 3340510371u, 914930263u, 1193026723u, 0, FABSF_TOLERANCE, 0},
+{1142, 1127109339u, 3368125489u, 1127109339u, 0, FABSF_TOLERANCE, 0},
+{1143, 909467381u, 1232375752u, 909467381u, 0, FABSF_TOLERANCE, 0},
+{1144, 1200599955u, 2981200675u, 1200599955u, 0, FABSF_TOLERANCE, 0},
+{1145, 962230977u, 2988248037u, 962230977u, 0, FABSF_TOLERANCE, 0},
+{1146, 3192887808u, 3191848339u, 1045404160u, 0, FABSF_TOLERANCE, 0},
+{1147, 3237183876u, 3179379969u, 1089700228u, 0, FABSF_TOLERANCE, 0},
+{1148, 939285924u, 3056079386u, 939285924u, 0, FABSF_TOLERANCE, 0},
+{1149, 944050180u, 3452557879u, 944050180u, 0, FABSF_TOLERANCE, 0},
+{1150, 3058135703u, 3090284601u, 910652055u, 0, FABSF_TOLERANCE, 0},
+{1151, 3480592662u, 3261728191u, 1333109014u, 0, FABSF_TOLERANCE, 0},
+{1152, 3061939312u, 3274418540u, 914455664u, 0, FABSF_TOLERANCE, 0},
+{1153, 1003299981u, 853295521u, 1003299981u, 0, FABSF_TOLERANCE, 0},
+{1154, 1155775526u, 1255814444u, 1155775526u, 0, FABSF_TOLERANCE, 0},
+{1155, 1234491880u, 3408568717u, 1234491880u, 0, FABSF_TOLERANCE, 0}
+
+// AUTOMATICALLY GENERATED VECTORS STOP
+
+};
+
+#endif // CYGONCE_LIBM_FABSF_H multiple inclusion protection
+
+// EOF fabsf.h
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/finitef.c b/ecos/packages/language/c/libm/current/tests/vectors/finitef.c
new file mode 100644
index 0000000..8e42a64
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/finitef.c
@@ -0,0 +1,115 @@
+//===========================================================================
+//
+// finitef.c
+//
+// Test of finitef() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// Declarations for test system:
+//
+// TESTCASE_TYPE=CYG_TEST_MODULE
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include <cyg/infra/testcase.h> // Test infrastructure
+#include <math.h> // Header for this package
+#include <sys/ieeefp.h> // Cyg_libm_ieee_float_shape_type
+#include "vectors/vector_support_float.h"// extra support for math tests
+
+#include "vectors/finitef.h"
+
+// FUNCTIONS
+
+static void
+test( CYG_ADDRWORD data )
+{
+ cyg_ucount32 vec_size;
+ cyg_bool ret;
+
+ vec_size = sizeof(finitef_vec) / sizeof(Cyg_libm_test_float_vec_t);
+ ret = doTestVecFloat( (CYG_ADDRWORD) &finitef, CYG_LIBM_TEST_VEC_FLOAT,
+ CYG_LIBM_TEST_VEC_NONE, CYG_LIBM_TEST_VEC_FLOAT,
+ &finitef_vec[0], vec_size );
+
+ if (ret==true)
+ {
+ CYG_TEST_PASS("finitef() is stable");
+ } // if
+ else
+ {
+ CYG_TEST_FAIL("finitef() failed tests");
+ } // else
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for Math "
+ "library finitef() function");
+} // test()
+
+
+int
+main(int argc, char *argv[])
+{
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for Math library "
+ "finitef() function");
+
+ START_TEST( test );
+
+ CYG_TEST_PASS_FINISH("Testing is not applicable to this configuration");
+
+} // main()
+
+
+// EOF finitef.c
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/finitef.h b/ecos/packages/language/c/libm/current/tests/vectors/finitef.h
new file mode 100644
index 0000000..f508f12
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/finitef.h
@@ -0,0 +1,1362 @@
+#ifndef CYGONCE_LIBM_FINITEF_H
+#define CYGONCE_LIBM_FINITEF_H
+//===========================================================================
+//
+// finitef.h
+//
+// Test vectors for testing of finitef() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage: #include "vectors/finitef.h"
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include "vectors/vector_support_float.h"// extra support for math tests
+
+#define FINITEF_TOLERANCE 1.0E-04
+
+static const Cyg_libm_test_float_vec_t finitef_vec[] = {
+
+// AUTOMATICALLY GENERATED VECTORS START
+
+{0, 3214514586u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1, 3214430700u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{2, 3214346813u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{3, 3214262927u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{4, 3214179041u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{5, 3214095155u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{6, 3214011269u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{7, 3213927383u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{8, 3213843497u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{9, 3213759611u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{10, 3213675725u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{11, 3213591839u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{12, 3213507953u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{13, 3213424067u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{14, 3213340180u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{15, 3213256294u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{16, 3213172408u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{17, 3213088522u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{18, 3213004636u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{19, 3212920750u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{20, 3212836864u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{21, 3212669092u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{22, 3212501320u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{23, 3212333548u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{24, 3212165775u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{25, 3211998003u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{26, 3211830231u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{27, 3211662459u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{28, 3211494687u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{29, 3211326915u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{30, 3211159142u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{31, 3210991370u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{32, 3210823598u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{33, 3210655826u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{34, 3210488054u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{35, 3210320282u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{36, 3210152509u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{37, 3209984737u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{38, 3209816965u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{39, 3209649193u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{40, 3209481421u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{41, 3209313649u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{42, 3209145876u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{43, 3208978104u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{44, 3208810332u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{45, 3208642560u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{46, 3208474788u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{47, 3208307016u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{48, 3208139244u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{49, 3207971471u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{50, 3207803699u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{51, 3207635927u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{52, 3207468155u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{53, 3207300383u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{54, 3207132611u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{55, 3206964838u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{56, 3206797066u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{57, 3206629294u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{58, 3206461522u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{59, 3206293750u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{60, 3206125978u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{61, 3205958205u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{62, 3205790433u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{63, 3205622661u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{64, 3205454889u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{65, 3205287117u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{66, 3205119345u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{67, 3204951572u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{68, 3204783800u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{69, 3204616028u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{70, 3204448256u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{71, 3204112712u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{72, 3203777167u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{73, 3203441623u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{74, 3203106079u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{75, 3202770534u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{76, 3202434990u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{77, 3202099446u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{78, 3201763901u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{79, 3201428357u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{80, 3201092813u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{81, 3200757268u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{82, 3200421724u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{83, 3200086180u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{84, 3199750636u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{85, 3199415091u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{86, 3199079547u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{87, 3198744003u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{88, 3198408458u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{89, 3198072914u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{90, 3197737370u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{91, 3197401825u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{92, 3197066281u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{93, 3196730737u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{94, 3196395192u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{95, 3196059648u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{96, 3195388559u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{97, 3194717471u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{98, 3194046382u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{99, 3193375293u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{100, 3192704205u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{101, 3192033116u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{102, 3191362028u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{103, 3190690939u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{104, 3190019850u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{105, 3189348762u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{106, 3188677673u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{107, 3188006584u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{108, 3186999951u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{109, 3185657774u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{110, 3184315597u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{111, 3182973420u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{112, 3181631242u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{113, 3180289065u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{114, 3178611343u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{115, 3175926989u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{116, 3173242634u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{117, 3170222735u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{118, 3164854026u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{119, 3156465418u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{120, 646742016u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{121, 1008981770u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{122, 1017370378u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{123, 1022739087u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{124, 1025758986u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{125, 1028443341u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{126, 1031127695u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{127, 1032805417u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{128, 1034147594u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{129, 1035489772u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{130, 1036831949u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{131, 1038174126u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{132, 1039516303u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{133, 1040522936u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{134, 1041194025u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{135, 1041865114u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{136, 1042536202u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{137, 1043207291u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{138, 1043878380u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{139, 1044549468u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{140, 1045220557u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{141, 1045891645u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{142, 1046562734u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{143, 1047233823u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{144, 1047904911u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{145, 1048576000u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{146, 1048911544u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{147, 1049247089u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{148, 1049582633u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{149, 1049918177u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{150, 1050253722u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{151, 1050589266u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{152, 1050924810u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{153, 1051260355u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{154, 1051595899u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{155, 1051931443u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{156, 1052266988u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{157, 1052602532u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{158, 1052938076u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{159, 1053273620u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{160, 1053609165u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{161, 1053944709u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{162, 1054280253u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{163, 1054615798u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{164, 1054951342u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{165, 1055286886u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{166, 1055622431u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{167, 1055957975u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{168, 1056293519u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{169, 1056629064u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{170, 1056964608u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{171, 1057132380u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{172, 1057300152u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{173, 1057467924u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{174, 1057635697u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{175, 1057803469u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{176, 1057971241u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{177, 1058139013u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{178, 1058306785u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{179, 1058474557u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{180, 1058642330u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{181, 1058810102u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{182, 1058977874u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{183, 1059145646u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{184, 1059313418u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{185, 1059481190u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{186, 1059648963u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{187, 1059816735u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{188, 1059984507u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{189, 1060152279u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{190, 1060320051u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{191, 1060487823u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{192, 1060655596u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{193, 1060823368u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{194, 1060991140u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{195, 1061158912u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{196, 1061326684u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{197, 1061494456u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{198, 1061662228u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{199, 1061830001u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{200, 1061997773u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{201, 1062165545u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{202, 1062333317u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{203, 1062501089u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{204, 1062668861u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{205, 1062836634u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{206, 1063004406u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{207, 1063172178u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{208, 1063339950u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{209, 1063507722u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{210, 1063675494u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{211, 1063843267u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{212, 1064011039u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{213, 1064178811u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{214, 1064346583u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{215, 1064514355u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{216, 1064682127u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{217, 1064849900u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{218, 1065017672u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{219, 1065185444u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{220, 1065353216u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{221, 1065437102u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{222, 1065520988u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{223, 1065604874u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{224, 1065688760u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{225, 1065772646u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{226, 1065856532u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{227, 1065940419u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{228, 1066024305u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{229, 1066108191u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{230, 1066192077u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{231, 1066275963u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{232, 1066359849u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{233, 1066443735u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{234, 1066527621u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{235, 1066611507u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{236, 1066695393u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{237, 1066779279u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{238, 1066863165u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{239, 1066947052u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{240, 3234402267u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{241, 3231108068u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{242, 3226013659u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{243, 3217625051u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{244, 0u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{245, 1070141403u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{246, 1078530011u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{247, 1083624420u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{248, 3253731328u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{249, 3252840038u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{250, 3251948749u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{251, 3251057459u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{252, 3250166170u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{253, 3249274880u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{254, 3248383590u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{255, 3247492301u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{256, 3246601011u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{257, 3245028147u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{258, 3243245568u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{259, 3241462989u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{260, 3239680410u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{261, 3237792973u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{262, 3234227814u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{263, 3230662656u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{264, 3224580915u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{265, 3213675725u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{266, 1058642330u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{267, 1075000115u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{268, 1082130432u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{269, 1085695590u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{270, 1089260749u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{271, 1091672474u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{272, 1093455053u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{273, 1095237632u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{274, 1097020211u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{275, 1098802790u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{276, 1099746509u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{277, 1100637798u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{278, 1101529088u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{279, 1102420378u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{280, 1103311667u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{281, 1104202957u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{282, 1105094246u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{283, 1105985536u, 0u, 1u, 0, FINITEF_TOLERANCE, 0},
+{284, 1107800421u, 1203999711u, 1u, 0, FINITEF_TOLERANCE, 0},
+{285, 3196650934u, 896005582u, 1u, 0, FINITEF_TOLERANCE, 0},
+{286, 3368700125u, 3308232444u, 1u, 0, FINITEF_TOLERANCE, 0},
+{287, 1224242132u, 3061363425u, 1u, 0, FINITEF_TOLERANCE, 0},
+{288, 3221027117u, 1284201705u, 1u, 0, FINITEF_TOLERANCE, 0},
+{289, 1198712763u, 919636942u, 1u, 0, FINITEF_TOLERANCE, 0},
+{290, 867432512u, 3067736756u, 1u, 0, FINITEF_TOLERANCE, 0},
+{291, 3159309973u, 852521077u, 1u, 0, FINITEF_TOLERANCE, 0},
+{292, 954173073u, 850531830u, 1u, 0, FINITEF_TOLERANCE, 0},
+{293, 3090780435u, 1035260608u, 1u, 0, FINITEF_TOLERANCE, 0},
+{294, 966554515u, 3234538174u, 1u, 0, FINITEF_TOLERANCE, 0},
+{295, 1312607135u, 1194999402u, 1u, 0, FINITEF_TOLERANCE, 0},
+{296, 1166191415u, 1018661564u, 1u, 0, FINITEF_TOLERANCE, 0},
+{297, 3111900019u, 1130472166u, 1u, 0, FINITEF_TOLERANCE, 0},
+{298, 1234419246u, 2984575812u, 1u, 0, FINITEF_TOLERANCE, 0},
+{299, 1302107128u, 3370647675u, 1u, 0, FINITEF_TOLERANCE, 0},
+{300, 1052801068u, 3039122570u, 1u, 0, FINITEF_TOLERANCE, 0},
+{301, 1060849628u, 3081357692u, 1u, 0, FINITEF_TOLERANCE, 0},
+{302, 3010214568u, 3446630737u, 1u, 0, FINITEF_TOLERANCE, 0},
+{303, 3484320003u, 3033957825u, 1u, 0, FINITEF_TOLERANCE, 0},
+{304, 3181522772u, 3305392896u, 1u, 0, FINITEF_TOLERANCE, 0},
+{305, 882596369u, 1256676590u, 1u, 0, FINITEF_TOLERANCE, 0},
+{306, 1167223673u, 846102364u, 1u, 0, FINITEF_TOLERANCE, 0},
+{307, 968192794u, 878547432u, 1u, 0, FINITEF_TOLERANCE, 0},
+{308, 3122346862u, 1111584337u, 1u, 0, FINITEF_TOLERANCE, 0},
+{309, 1052361612u, 1280025214u, 1u, 0, FINITEF_TOLERANCE, 0},
+{310, 906701409u, 2968301825u, 1u, 0, FINITEF_TOLERANCE, 0},
+{311, 3471653172u, 1154138102u, 1u, 0, FINITEF_TOLERANCE, 0},
+{312, 843024648u, 3166833184u, 1u, 0, FINITEF_TOLERANCE, 0},
+{313, 3231467496u, 934336592u, 1u, 0, FINITEF_TOLERANCE, 0},
+{314, 1341514497u, 3466051188u, 1u, 0, FINITEF_TOLERANCE, 0},
+{315, 1272351391u, 3373485062u, 1u, 0, FINITEF_TOLERANCE, 0},
+{316, 3319724992u, 3354615790u, 1u, 0, FINITEF_TOLERANCE, 0},
+{317, 3013402113u, 3266377514u, 1u, 0, FINITEF_TOLERANCE, 0},
+{318, 917622040u, 1334966485u, 1u, 0, FINITEF_TOLERANCE, 0},
+{319, 940236348u, 3304072663u, 1u, 0, FINITEF_TOLERANCE, 0},
+{320, 2963234879u, 977028681u, 1u, 0, FINITEF_TOLERANCE, 0},
+{321, 3251541546u, 3174764041u, 1u, 0, FINITEF_TOLERANCE, 0},
+{322, 3099843889u, 3355962282u, 1u, 0, FINITEF_TOLERANCE, 0},
+{323, 3110358400u, 851145088u, 1u, 0, FINITEF_TOLERANCE, 0},
+{324, 3371863479u, 1014861921u, 1u, 0, FINITEF_TOLERANCE, 0},
+{325, 3204069187u, 966573255u, 1u, 0, FINITEF_TOLERANCE, 0},
+{326, 1306460502u, 903489435u, 1u, 0, FINITEF_TOLERANCE, 0},
+{327, 1197542187u, 3024598921u, 1u, 0, FINITEF_TOLERANCE, 0},
+{328, 922888249u, 1139392309u, 1u, 0, FINITEF_TOLERANCE, 0},
+{329, 1184239996u, 3224098462u, 1u, 0, FINITEF_TOLERANCE, 0},
+{330, 1252490238u, 1173619825u, 1u, 0, FINITEF_TOLERANCE, 0},
+{331, 1001673627u, 3462631271u, 1u, 0, FINITEF_TOLERANCE, 0},
+{332, 976098044u, 1151967422u, 1u, 0, FINITEF_TOLERANCE, 0},
+{333, 941796645u, 886451963u, 1u, 0, FINITEF_TOLERANCE, 0},
+{334, 3006797923u, 1103058486u, 1u, 0, FINITEF_TOLERANCE, 0},
+{335, 855756273u, 3217259624u, 1u, 0, FINITEF_TOLERANCE, 0},
+{336, 3287199470u, 854245542u, 1u, 0, FINITEF_TOLERANCE, 0},
+{337, 893184329u, 1243067084u, 1u, 0, FINITEF_TOLERANCE, 0},
+{338, 1143233714u, 1007268238u, 1u, 0, FINITEF_TOLERANCE, 0},
+{339, 1139941253u, 1147688821u, 1u, 0, FINITEF_TOLERANCE, 0},
+{340, 3143717025u, 3234638157u, 1u, 0, FINITEF_TOLERANCE, 0},
+{341, 3048866608u, 3449209899u, 1u, 0, FINITEF_TOLERANCE, 0},
+{342, 3240298487u, 1020260821u, 1u, 0, FINITEF_TOLERANCE, 0},
+{343, 1288902137u, 3123875978u, 1u, 0, FINITEF_TOLERANCE, 0},
+{344, 1333134799u, 1338107877u, 1u, 0, FINITEF_TOLERANCE, 0},
+{345, 1187847971u, 1317663644u, 1u, 0, FINITEF_TOLERANCE, 0},
+{346, 1038851706u, 1327544110u, 1u, 0, FINITEF_TOLERANCE, 0},
+{347, 3329354473u, 3165437289u, 1u, 0, FINITEF_TOLERANCE, 0},
+{348, 3077218579u, 1308397879u, 1u, 0, FINITEF_TOLERANCE, 0},
+{349, 1309289088u, 1019883016u, 1u, 0, FINITEF_TOLERANCE, 0},
+{350, 2991550291u, 1294782875u, 1u, 0, FINITEF_TOLERANCE, 0},
+{351, 3444653659u, 1279248024u, 1u, 0, FINITEF_TOLERANCE, 0},
+{352, 3405585402u, 2962345057u, 1u, 0, FINITEF_TOLERANCE, 0},
+{353, 3106647724u, 853848387u, 1u, 0, FINITEF_TOLERANCE, 0},
+{354, 1106778573u, 3304487767u, 1u, 0, FINITEF_TOLERANCE, 0},
+{355, 1140567947u, 3069174149u, 1u, 0, FINITEF_TOLERANCE, 0},
+{356, 1238569473u, 873035665u, 1u, 0, FINITEF_TOLERANCE, 0},
+{357, 840375965u, 3223983207u, 1u, 0, FINITEF_TOLERANCE, 0},
+{358, 3154871957u, 1276671061u, 1u, 0, FINITEF_TOLERANCE, 0},
+{359, 1261071232u, 1182202773u, 1u, 0, FINITEF_TOLERANCE, 0},
+{360, 1175011025u, 3029705783u, 1u, 0, FINITEF_TOLERANCE, 0},
+{361, 1082692850u, 1211581107u, 1u, 0, FINITEF_TOLERANCE, 0},
+{362, 974547519u, 3475164509u, 1u, 0, FINITEF_TOLERANCE, 0},
+{363, 3058097085u, 3104309359u, 1u, 0, FINITEF_TOLERANCE, 0},
+{364, 3107252546u, 1071134451u, 1u, 0, FINITEF_TOLERANCE, 0},
+{365, 3096032662u, 2976848821u, 1u, 0, FINITEF_TOLERANCE, 0},
+{366, 3197942144u, 3094120030u, 1u, 0, FINITEF_TOLERANCE, 0},
+{367, 3403348556u, 3184653669u, 1u, 0, FINITEF_TOLERANCE, 0},
+{368, 2998032500u, 3373011130u, 1u, 0, FINITEF_TOLERANCE, 0},
+{369, 3182301130u, 3460764044u, 1u, 0, FINITEF_TOLERANCE, 0},
+{370, 1136411063u, 1118097422u, 1u, 0, FINITEF_TOLERANCE, 0},
+{371, 3239231622u, 3302723069u, 1u, 0, FINITEF_TOLERANCE, 0},
+{372, 3340615780u, 870350055u, 1u, 0, FINITEF_TOLERANCE, 0},
+{373, 998567360u, 2995278691u, 1u, 0, FINITEF_TOLERANCE, 0},
+{374, 3417964312u, 1321337529u, 1u, 0, FINITEF_TOLERANCE, 0},
+{375, 3109481038u, 1143864063u, 1u, 0, FINITEF_TOLERANCE, 0},
+{376, 1148867223u, 1256486202u, 1u, 0, FINITEF_TOLERANCE, 0},
+{377, 2960983878u, 1314196594u, 1u, 0, FINITEF_TOLERANCE, 0},
+{378, 989687421u, 3372681320u, 1u, 0, FINITEF_TOLERANCE, 0},
+{379, 1152956913u, 3166480640u, 1u, 0, FINITEF_TOLERANCE, 0},
+{380, 892922651u, 3373029087u, 1u, 0, FINITEF_TOLERANCE, 0},
+{381, 1109627625u, 1314158257u, 1u, 0, FINITEF_TOLERANCE, 0},
+{382, 1307091856u, 1103202538u, 1u, 0, FINITEF_TOLERANCE, 0},
+{383, 1077234132u, 3272167130u, 1u, 0, FINITEF_TOLERANCE, 0},
+{384, 1142167709u, 1096445242u, 1u, 0, FINITEF_TOLERANCE, 0},
+{385, 3426232834u, 1036705270u, 1u, 0, FINITEF_TOLERANCE, 0},
+{386, 3000726366u, 3172023300u, 1u, 0, FINITEF_TOLERANCE, 0},
+{387, 3368566779u, 967249167u, 1u, 0, FINITEF_TOLERANCE, 0},
+{388, 3030724760u, 3349013503u, 1u, 0, FINITEF_TOLERANCE, 0},
+{389, 1138741813u, 3073453199u, 1u, 0, FINITEF_TOLERANCE, 0},
+{390, 982950501u, 982549888u, 1u, 0, FINITEF_TOLERANCE, 0},
+{391, 1142981585u, 1015602236u, 1u, 0, FINITEF_TOLERANCE, 0},
+{392, 3016453868u, 3365560001u, 1u, 0, FINITEF_TOLERANCE, 0},
+{393, 3347165962u, 3135486696u, 1u, 0, FINITEF_TOLERANCE, 0},
+{394, 1009535440u, 3381353228u, 1u, 0, FINITEF_TOLERANCE, 0},
+{395, 3103736980u, 3402950505u, 1u, 0, FINITEF_TOLERANCE, 0},
+{396, 3126820946u, 1077903063u, 1u, 0, FINITEF_TOLERANCE, 0},
+{397, 3473956030u, 976891930u, 1u, 0, FINITEF_TOLERANCE, 0},
+{398, 3349098349u, 1055327704u, 1u, 0, FINITEF_TOLERANCE, 0},
+{399, 3152729489u, 1060398533u, 1u, 0, FINITEF_TOLERANCE, 0},
+{400, 945568720u, 3313485084u, 1u, 0, FINITEF_TOLERANCE, 0},
+{401, 3345489836u, 1108392401u, 1u, 0, FINITEF_TOLERANCE, 0},
+{402, 940893161u, 1137000140u, 1u, 0, FINITEF_TOLERANCE, 0},
+{403, 976791751u, 3230678102u, 1u, 0, FINITEF_TOLERANCE, 0},
+{404, 3013749677u, 1324802687u, 1u, 0, FINITEF_TOLERANCE, 0},
+{405, 1004442355u, 3036510596u, 1u, 0, FINITEF_TOLERANCE, 0},
+{406, 1108485380u, 3173536878u, 1u, 0, FINITEF_TOLERANCE, 0},
+{407, 1061834641u, 972388096u, 1u, 0, FINITEF_TOLERANCE, 0},
+{408, 3381268392u, 1146976802u, 1u, 0, FINITEF_TOLERANCE, 0},
+{409, 1087189715u, 2952822478u, 1u, 0, FINITEF_TOLERANCE, 0},
+{410, 3212952285u, 3329407365u, 1u, 0, FINITEF_TOLERANCE, 0},
+{411, 1000611335u, 857599439u, 1u, 0, FINITEF_TOLERANCE, 0},
+{412, 847191250u, 1227905777u, 1u, 0, FINITEF_TOLERANCE, 0},
+{413, 3466188568u, 1041678304u, 1u, 0, FINITEF_TOLERANCE, 0},
+{414, 2968337765u, 3091399866u, 1u, 0, FINITEF_TOLERANCE, 0},
+{415, 3072456205u, 3160254633u, 1u, 0, FINITEF_TOLERANCE, 0},
+{416, 3319315516u, 3422089012u, 1u, 0, FINITEF_TOLERANCE, 0},
+{417, 935938416u, 1146676692u, 1u, 0, FINITEF_TOLERANCE, 0},
+{418, 3212614372u, 1152633030u, 1u, 0, FINITEF_TOLERANCE, 0},
+{419, 1315030230u, 3336225884u, 1u, 0, FINITEF_TOLERANCE, 0},
+{420, 822041816u, 898402905u, 1u, 0, FINITEF_TOLERANCE, 0},
+{421, 1134593658u, 3456812581u, 1u, 0, FINITEF_TOLERANCE, 0},
+{422, 977281449u, 879922831u, 1u, 0, FINITEF_TOLERANCE, 0},
+{423, 1086198791u, 920125958u, 1u, 0, FINITEF_TOLERANCE, 0},
+{424, 1255152035u, 851754050u, 1u, 0, FINITEF_TOLERANCE, 0},
+{425, 1135271264u, 3284878412u, 1u, 0, FINITEF_TOLERANCE, 0},
+{426, 1094190727u, 1056854532u, 1u, 0, FINITEF_TOLERANCE, 0},
+{427, 1294665325u, 991185677u, 1u, 0, FINITEF_TOLERANCE, 0},
+{428, 1036608591u, 805416536u, 1u, 0, FINITEF_TOLERANCE, 0},
+{429, 2960459834u, 1296239160u, 1u, 0, FINITEF_TOLERANCE, 0},
+{430, 3229998064u, 825237063u, 1u, 0, FINITEF_TOLERANCE, 0},
+{431, 3439134022u, 1043829691u, 1u, 0, FINITEF_TOLERANCE, 0},
+{432, 3073083133u, 1317170485u, 1u, 0, FINITEF_TOLERANCE, 0},
+{433, 1325668223u, 970681762u, 1u, 0, FINITEF_TOLERANCE, 0},
+{434, 1092037607u, 1027330835u, 1u, 0, FINITEF_TOLERANCE, 0},
+{435, 826457956u, 3343511749u, 1u, 0, FINITEF_TOLERANCE, 0},
+{436, 3316278408u, 3455589207u, 1u, 0, FINITEF_TOLERANCE, 0},
+{437, 3295436768u, 3129873731u, 1u, 0, FINITEF_TOLERANCE, 0},
+{438, 1151984049u, 3074547120u, 1u, 0, FINITEF_TOLERANCE, 0},
+{439, 1129287043u, 3076527544u, 1u, 0, FINITEF_TOLERANCE, 0},
+{440, 1243664530u, 972879810u, 1u, 0, FINITEF_TOLERANCE, 0},
+{441, 950829092u, 929114193u, 1u, 0, FINITEF_TOLERANCE, 0},
+{442, 1115471979u, 3047246262u, 1u, 0, FINITEF_TOLERANCE, 0},
+{443, 3351092088u, 3024661404u, 1u, 0, FINITEF_TOLERANCE, 0},
+{444, 3424479544u, 3312047722u, 1u, 0, FINITEF_TOLERANCE, 0},
+{445, 3241193975u, 884465785u, 1u, 0, FINITEF_TOLERANCE, 0},
+{446, 811700241u, 3478509398u, 1u, 0, FINITEF_TOLERANCE, 0},
+{447, 1030934236u, 1045139240u, 1u, 0, FINITEF_TOLERANCE, 0},
+{448, 3131791114u, 3408392958u, 1u, 0, FINITEF_TOLERANCE, 0},
+{449, 1025254314u, 3057812821u, 1u, 0, FINITEF_TOLERANCE, 0},
+{450, 1110545760u, 3240144177u, 1u, 0, FINITEF_TOLERANCE, 0},
+{451, 826998191u, 1091496527u, 1u, 0, FINITEF_TOLERANCE, 0},
+{452, 3180213739u, 1108793820u, 1u, 0, FINITEF_TOLERANCE, 0},
+{453, 3361976590u, 3138179993u, 1u, 0, FINITEF_TOLERANCE, 0},
+{454, 881280146u, 3421884736u, 1u, 0, FINITEF_TOLERANCE, 0},
+{455, 1304154705u, 2961937089u, 1u, 0, FINITEF_TOLERANCE, 0},
+{456, 3264443610u, 3222916705u, 1u, 0, FINITEF_TOLERANCE, 0},
+{457, 3374550627u, 3055856293u, 1u, 0, FINITEF_TOLERANCE, 0},
+{458, 2979664918u, 3365394784u, 1u, 0, FINITEF_TOLERANCE, 0},
+{459, 899599265u, 3240118211u, 1u, 0, FINITEF_TOLERANCE, 0},
+{460, 842476444u, 3452685905u, 1u, 0, FINITEF_TOLERANCE, 0},
+{461, 1268194719u, 1332489410u, 1u, 0, FINITEF_TOLERANCE, 0},
+{462, 1133420220u, 1245770860u, 1u, 0, FINITEF_TOLERANCE, 0},
+{463, 1161858787u, 815362075u, 1u, 0, FINITEF_TOLERANCE, 0},
+{464, 3184462258u, 1263529646u, 1u, 0, FINITEF_TOLERANCE, 0},
+{465, 3295996963u, 3453334307u, 1u, 0, FINITEF_TOLERANCE, 0},
+{466, 1270887389u, 1156123987u, 1u, 0, FINITEF_TOLERANCE, 0},
+{467, 3325193181u, 993979179u, 1u, 0, FINITEF_TOLERANCE, 0},
+{468, 925657343u, 1315159742u, 1u, 0, FINITEF_TOLERANCE, 0},
+{469, 3115275450u, 3008350271u, 1u, 0, FINITEF_TOLERANCE, 0},
+{470, 3116607482u, 3224327456u, 1u, 0, FINITEF_TOLERANCE, 0},
+{471, 3187892415u, 3118097315u, 1u, 0, FINITEF_TOLERANCE, 0},
+{472, 1189120494u, 978961471u, 1u, 0, FINITEF_TOLERANCE, 0},
+{473, 889030794u, 3129523970u, 1u, 0, FINITEF_TOLERANCE, 0},
+{474, 1323529208u, 3100744786u, 1u, 0, FINITEF_TOLERANCE, 0},
+{475, 2975945347u, 940445933u, 1u, 0, FINITEF_TOLERANCE, 0},
+{476, 3465768388u, 3190881451u, 1u, 0, FINITEF_TOLERANCE, 0},
+{477, 3426099899u, 1118756120u, 1u, 0, FINITEF_TOLERANCE, 0},
+{478, 3224857113u, 3398166843u, 1u, 0, FINITEF_TOLERANCE, 0},
+{479, 1065798296u, 816191940u, 1u, 0, FINITEF_TOLERANCE, 0},
+{480, 3328989444u, 850266225u, 1u, 0, FINITEF_TOLERANCE, 0},
+{481, 3357819026u, 3148475462u, 1u, 0, FINITEF_TOLERANCE, 0},
+{482, 1273397670u, 901308750u, 1u, 0, FINITEF_TOLERANCE, 0},
+{483, 3424831780u, 1304806106u, 1u, 0, FINITEF_TOLERANCE, 0},
+{484, 1257596246u, 3420832544u, 1u, 0, FINITEF_TOLERANCE, 0},
+{485, 1051773536u, 896271348u, 1u, 0, FINITEF_TOLERANCE, 0},
+{486, 3294752507u, 3113225954u, 1u, 0, FINITEF_TOLERANCE, 0},
+{487, 3424848725u, 2973850350u, 1u, 0, FINITEF_TOLERANCE, 0},
+{488, 1090870906u, 3294742905u, 1u, 0, FINITEF_TOLERANCE, 0},
+{489, 1227582289u, 1208979668u, 1u, 0, FINITEF_TOLERANCE, 0},
+{490, 2996780709u, 852318215u, 1u, 0, FINITEF_TOLERANCE, 0},
+{491, 1272325814u, 3004311296u, 1u, 0, FINITEF_TOLERANCE, 0},
+{492, 3359508271u, 859974315u, 1u, 0, FINITEF_TOLERANCE, 0},
+{493, 2992737514u, 2999023943u, 1u, 0, FINITEF_TOLERANCE, 0},
+{494, 1137854355u, 3335041917u, 1u, 0, FINITEF_TOLERANCE, 0},
+{495, 3440773058u, 3204192793u, 1u, 0, FINITEF_TOLERANCE, 0},
+{496, 3101598400u, 3057760708u, 1u, 0, FINITEF_TOLERANCE, 0},
+{497, 3451216836u, 3347783723u, 1u, 0, FINITEF_TOLERANCE, 0},
+{498, 3437062994u, 3106834845u, 1u, 0, FINITEF_TOLERANCE, 0},
+{499, 1131196082u, 1164573183u, 1u, 0, FINITEF_TOLERANCE, 0},
+{500, 3177294154u, 1282436638u, 1u, 0, FINITEF_TOLERANCE, 0},
+{501, 3258097678u, 1305882290u, 1u, 0, FINITEF_TOLERANCE, 0},
+{502, 3460915348u, 1219372260u, 1u, 0, FINITEF_TOLERANCE, 0},
+{503, 3009547195u, 1256074626u, 1u, 0, FINITEF_TOLERANCE, 0},
+{504, 3303035472u, 3153013020u, 1u, 0, FINITEF_TOLERANCE, 0},
+{505, 1053698677u, 3284313107u, 1u, 0, FINITEF_TOLERANCE, 0},
+{506, 3396166221u, 1201894512u, 1u, 0, FINITEF_TOLERANCE, 0},
+{507, 3037541131u, 1085398440u, 1u, 0, FINITEF_TOLERANCE, 0},
+{508, 3458934263u, 1005577835u, 1u, 0, FINITEF_TOLERANCE, 0},
+{509, 1065761827u, 3333928591u, 1u, 0, FINITEF_TOLERANCE, 0},
+{510, 3025843188u, 820250112u, 1u, 0, FINITEF_TOLERANCE, 0},
+{511, 3017430347u, 3009209071u, 1u, 0, FINITEF_TOLERANCE, 0},
+{512, 926665223u, 3150815797u, 1u, 0, FINITEF_TOLERANCE, 0},
+{513, 2970966181u, 3383521344u, 1u, 0, FINITEF_TOLERANCE, 0},
+{514, 1199816046u, 3143776186u, 1u, 0, FINITEF_TOLERANCE, 0},
+{515, 3333779015u, 952421041u, 1u, 0, FINITEF_TOLERANCE, 0},
+{516, 856234019u, 3091454180u, 1u, 0, FINITEF_TOLERANCE, 0},
+{517, 948398145u, 3238273189u, 1u, 0, FINITEF_TOLERANCE, 0},
+{518, 3054021468u, 1270257895u, 1u, 0, FINITEF_TOLERANCE, 0},
+{519, 1080781593u, 1213908300u, 1u, 0, FINITEF_TOLERANCE, 0},
+{520, 3164749613u, 3010837763u, 1u, 0, FINITEF_TOLERANCE, 0},
+{521, 2971341371u, 1014754300u, 1u, 0, FINITEF_TOLERANCE, 0},
+{522, 3235326590u, 1271705594u, 1u, 0, FINITEF_TOLERANCE, 0},
+{523, 3118883815u, 1051802647u, 1u, 0, FINITEF_TOLERANCE, 0},
+{524, 965378004u, 1292594138u, 1u, 0, FINITEF_TOLERANCE, 0},
+{525, 3226990408u, 1110755136u, 1u, 0, FINITEF_TOLERANCE, 0},
+{526, 2953069847u, 3293953199u, 1u, 0, FINITEF_TOLERANCE, 0},
+{527, 3117098218u, 1122474770u, 1u, 0, FINITEF_TOLERANCE, 0},
+{528, 1283624229u, 906796922u, 1u, 0, FINITEF_TOLERANCE, 0},
+{529, 860729004u, 1163935062u, 1u, 0, FINITEF_TOLERANCE, 0},
+{530, 970649315u, 1078286437u, 1u, 0, FINITEF_TOLERANCE, 0},
+{531, 959776291u, 3280345347u, 1u, 0, FINITEF_TOLERANCE, 0},
+{532, 3341117305u, 3294559023u, 1u, 0, FINITEF_TOLERANCE, 0},
+{533, 1270734970u, 3355874874u, 1u, 0, FINITEF_TOLERANCE, 0},
+{534, 3454816067u, 868771977u, 1u, 0, FINITEF_TOLERANCE, 0},
+{535, 917206623u, 1172710814u, 1u, 0, FINITEF_TOLERANCE, 0},
+{536, 1106502045u, 1290849316u, 1u, 0, FINITEF_TOLERANCE, 0},
+{537, 1157598381u, 3309023746u, 1u, 0, FINITEF_TOLERANCE, 0},
+{538, 835476614u, 1092590501u, 1u, 0, FINITEF_TOLERANCE, 0},
+{539, 3335234513u, 1002337336u, 1u, 0, FINITEF_TOLERANCE, 0},
+{540, 1279489061u, 1006049444u, 1u, 0, FINITEF_TOLERANCE, 0},
+{541, 807133892u, 1110992491u, 1u, 0, FINITEF_TOLERANCE, 0},
+{542, 3157416480u, 1309984610u, 1u, 0, FINITEF_TOLERANCE, 0},
+{543, 3143920719u, 3131608518u, 1u, 0, FINITEF_TOLERANCE, 0},
+{544, 2995340689u, 1165036009u, 1u, 0, FINITEF_TOLERANCE, 0},
+{545, 1233171235u, 826460580u, 1u, 0, FINITEF_TOLERANCE, 0},
+{546, 1148920078u, 1007674793u, 1u, 0, FINITEF_TOLERANCE, 0},
+{547, 3064988156u, 3230867340u, 1u, 0, FINITEF_TOLERANCE, 0},
+{548, 3083619260u, 1159415661u, 1u, 0, FINITEF_TOLERANCE, 0},
+{549, 1109198803u, 1221754614u, 1u, 0, FINITEF_TOLERANCE, 0},
+{550, 3219949483u, 1056167693u, 1u, 0, FINITEF_TOLERANCE, 0},
+{551, 3361149474u, 3387342069u, 1u, 0, FINITEF_TOLERANCE, 0},
+{552, 827931800u, 1118474231u, 1u, 0, FINITEF_TOLERANCE, 0},
+{553, 1207502108u, 3388073586u, 1u, 0, FINITEF_TOLERANCE, 0},
+{554, 1000014431u, 831213088u, 1u, 0, FINITEF_TOLERANCE, 0},
+{555, 3161756316u, 3143659754u, 1u, 0, FINITEF_TOLERANCE, 0},
+{556, 3160728744u, 3382954009u, 1u, 0, FINITEF_TOLERANCE, 0},
+{557, 1234530539u, 1079988872u, 1u, 0, FINITEF_TOLERANCE, 0},
+{558, 1017843965u, 1193076204u, 1u, 0, FINITEF_TOLERANCE, 0},
+{559, 2965746635u, 3248194237u, 1u, 0, FINITEF_TOLERANCE, 0},
+{560, 951862956u, 1173464654u, 1u, 0, FINITEF_TOLERANCE, 0},
+{561, 3306328852u, 1118701064u, 1u, 0, FINITEF_TOLERANCE, 0},
+{562, 1291910469u, 1211303367u, 1u, 0, FINITEF_TOLERANCE, 0},
+{563, 3027442905u, 1173894400u, 1u, 0, FINITEF_TOLERANCE, 0},
+{564, 809646928u, 3006525025u, 1u, 0, FINITEF_TOLERANCE, 0},
+{565, 1131927531u, 3182962700u, 1u, 0, FINITEF_TOLERANCE, 0},
+{566, 3449879391u, 991614550u, 1u, 0, FINITEF_TOLERANCE, 0},
+{567, 970094304u, 3344590506u, 1u, 0, FINITEF_TOLERANCE, 0},
+{568, 1125551064u, 3331248076u, 1u, 0, FINITEF_TOLERANCE, 0},
+{569, 3427296372u, 3455289118u, 1u, 0, FINITEF_TOLERANCE, 0},
+{570, 1198917460u, 1327195159u, 1u, 0, FINITEF_TOLERANCE, 0},
+{571, 3201603336u, 820047343u, 1u, 0, FINITEF_TOLERANCE, 0},
+{572, 3114686212u, 3476082461u, 1u, 0, FINITEF_TOLERANCE, 0},
+{573, 921940707u, 2967544056u, 1u, 0, FINITEF_TOLERANCE, 0},
+{574, 1091906532u, 3011904455u, 1u, 0, FINITEF_TOLERANCE, 0},
+{575, 3393557778u, 3383396815u, 1u, 0, FINITEF_TOLERANCE, 0},
+{576, 1276853215u, 873199561u, 1u, 0, FINITEF_TOLERANCE, 0},
+{577, 3462778440u, 3349284325u, 1u, 0, FINITEF_TOLERANCE, 0},
+{578, 833132358u, 3470358002u, 1u, 0, FINITEF_TOLERANCE, 0},
+{579, 3360170117u, 3048354042u, 1u, 0, FINITEF_TOLERANCE, 0},
+{580, 3224245428u, 3271307999u, 1u, 0, FINITEF_TOLERANCE, 0},
+{581, 1120124467u, 1135619937u, 1u, 0, FINITEF_TOLERANCE, 0},
+{582, 1064364381u, 3180675544u, 1u, 0, FINITEF_TOLERANCE, 0},
+{583, 1268744779u, 3328452652u, 1u, 0, FINITEF_TOLERANCE, 0},
+{584, 1165195428u, 3390323168u, 1u, 0, FINITEF_TOLERANCE, 0},
+{585, 3044092739u, 1106497311u, 1u, 0, FINITEF_TOLERANCE, 0},
+{586, 3149469534u, 1278465842u, 1u, 0, FINITEF_TOLERANCE, 0},
+{587, 3247790039u, 909788142u, 1u, 0, FINITEF_TOLERANCE, 0},
+{588, 3215244648u, 1083988595u, 1u, 0, FINITEF_TOLERANCE, 0},
+{589, 3095275931u, 989153382u, 1u, 0, FINITEF_TOLERANCE, 0},
+{590, 3059688264u, 1117455718u, 1u, 0, FINITEF_TOLERANCE, 0},
+{591, 2990022513u, 1061714285u, 1u, 0, FINITEF_TOLERANCE, 0},
+{592, 1212717473u, 837873779u, 1u, 0, FINITEF_TOLERANCE, 0},
+{593, 3275973009u, 3450721670u, 1u, 0, FINITEF_TOLERANCE, 0},
+{594, 3028857014u, 3188853813u, 1u, 0, FINITEF_TOLERANCE, 0},
+{595, 3391162308u, 1291220039u, 1u, 0, FINITEF_TOLERANCE, 0},
+{596, 1044867873u, 3369493273u, 1u, 0, FINITEF_TOLERANCE, 0},
+{597, 1089986803u, 3462160118u, 1u, 0, FINITEF_TOLERANCE, 0},
+{598, 1296314700u, 2957454177u, 1u, 0, FINITEF_TOLERANCE, 0},
+{599, 1251462432u, 3171021770u, 1u, 0, FINITEF_TOLERANCE, 0},
+{600, 3485236902u, 980772835u, 1u, 0, FINITEF_TOLERANCE, 0},
+{601, 3262169538u, 1268270462u, 1u, 0, FINITEF_TOLERANCE, 0},
+{602, 3080852256u, 994641495u, 1u, 0, FINITEF_TOLERANCE, 0},
+{603, 1022211242u, 922124181u, 1u, 0, FINITEF_TOLERANCE, 0},
+{604, 884661176u, 2985540645u, 1u, 0, FINITEF_TOLERANCE, 0},
+{605, 3071422941u, 3271100396u, 1u, 0, FINITEF_TOLERANCE, 0},
+{606, 989762529u, 3362011135u, 1u, 0, FINITEF_TOLERANCE, 0},
+{607, 1295475718u, 3212305413u, 1u, 0, FINITEF_TOLERANCE, 0},
+{608, 1002632518u, 3330388441u, 1u, 0, FINITEF_TOLERANCE, 0},
+{609, 3404372005u, 3450484255u, 1u, 0, FINITEF_TOLERANCE, 0},
+{610, 3158912530u, 3105501826u, 1u, 0, FINITEF_TOLERANCE, 0},
+{611, 2987029985u, 1218447414u, 1u, 0, FINITEF_TOLERANCE, 0},
+{612, 1125800069u, 3256265749u, 1u, 0, FINITEF_TOLERANCE, 0},
+{613, 3138037576u, 3103365227u, 1u, 0, FINITEF_TOLERANCE, 0},
+{614, 3108384823u, 1300246663u, 1u, 0, FINITEF_TOLERANCE, 0},
+{615, 999985470u, 3409354318u, 1u, 0, FINITEF_TOLERANCE, 0},
+{616, 1189421739u, 1056599002u, 1u, 0, FINITEF_TOLERANCE, 0},
+{617, 3075182644u, 3144159778u, 1u, 0, FINITEF_TOLERANCE, 0},
+{618, 3028099649u, 3391513557u, 1u, 0, FINITEF_TOLERANCE, 0},
+{619, 837703706u, 3467473756u, 1u, 0, FINITEF_TOLERANCE, 0},
+{620, 3132541814u, 3444521949u, 1u, 0, FINITEF_TOLERANCE, 0},
+{621, 1164046161u, 3440635788u, 1u, 0, FINITEF_TOLERANCE, 0},
+{622, 1292596266u, 3116569667u, 1u, 0, FINITEF_TOLERANCE, 0},
+{623, 3469748379u, 3412765608u, 1u, 0, FINITEF_TOLERANCE, 0},
+{624, 2968771722u, 3117531540u, 1u, 0, FINITEF_TOLERANCE, 0},
+{625, 1314644642u, 3123051784u, 1u, 0, FINITEF_TOLERANCE, 0},
+{626, 3399813173u, 828743798u, 1u, 0, FINITEF_TOLERANCE, 0},
+{627, 948775569u, 3485444126u, 1u, 0, FINITEF_TOLERANCE, 0},
+{628, 1034611395u, 882288581u, 1u, 0, FINITEF_TOLERANCE, 0},
+{629, 3489122735u, 3372450889u, 1u, 0, FINITEF_TOLERANCE, 0},
+{630, 1181604787u, 3363067409u, 1u, 0, FINITEF_TOLERANCE, 0},
+{631, 3059042077u, 3204983963u, 1u, 0, FINITEF_TOLERANCE, 0},
+{632, 1043691622u, 3402603223u, 1u, 0, FINITEF_TOLERANCE, 0},
+{633, 1314588083u, 856187848u, 1u, 0, FINITEF_TOLERANCE, 0},
+{634, 3141533334u, 3010142974u, 1u, 0, FINITEF_TOLERANCE, 0},
+{635, 3013416703u, 3442525943u, 1u, 0, FINITEF_TOLERANCE, 0},
+{636, 861266716u, 822172554u, 1u, 0, FINITEF_TOLERANCE, 0},
+{637, 3157534378u, 3451674717u, 1u, 0, FINITEF_TOLERANCE, 0},
+{638, 2976169000u, 3033697153u, 1u, 0, FINITEF_TOLERANCE, 0},
+{639, 3400949680u, 3073750220u, 1u, 0, FINITEF_TOLERANCE, 0},
+{640, 3365581801u, 1175843167u, 1u, 0, FINITEF_TOLERANCE, 0},
+{641, 1110424755u, 3011308654u, 1u, 0, FINITEF_TOLERANCE, 0},
+{642, 3189917167u, 927278934u, 1u, 0, FINITEF_TOLERANCE, 0},
+{643, 969804941u, 3355439348u, 1u, 0, FINITEF_TOLERANCE, 0},
+{644, 1139120919u, 3270515074u, 1u, 0, FINITEF_TOLERANCE, 0},
+{645, 816789141u, 3325199970u, 1u, 0, FINITEF_TOLERANCE, 0},
+{646, 934308144u, 3118191228u, 1u, 0, FINITEF_TOLERANCE, 0},
+{647, 1220524226u, 1152648002u, 1u, 0, FINITEF_TOLERANCE, 0},
+{648, 3162548604u, 3461790298u, 1u, 0, FINITEF_TOLERANCE, 0},
+{649, 3382391700u, 3296962745u, 1u, 0, FINITEF_TOLERANCE, 0},
+{650, 1156767533u, 1088986462u, 1u, 0, FINITEF_TOLERANCE, 0},
+{651, 3079222483u, 3312324949u, 1u, 0, FINITEF_TOLERANCE, 0},
+{652, 994934087u, 967678094u, 1u, 0, FINITEF_TOLERANCE, 0},
+{653, 840906467u, 3156591981u, 1u, 0, FINITEF_TOLERANCE, 0},
+{654, 3185240099u, 1123403720u, 1u, 0, FINITEF_TOLERANCE, 0},
+{655, 870026344u, 1093936408u, 1u, 0, FINITEF_TOLERANCE, 0},
+{656, 2996887005u, 3287317742u, 1u, 0, FINITEF_TOLERANCE, 0},
+{657, 3479873563u, 1246277393u, 1u, 0, FINITEF_TOLERANCE, 0},
+{658, 3424264117u, 3434026174u, 1u, 0, FINITEF_TOLERANCE, 0},
+{659, 3228365887u, 1216775310u, 1u, 0, FINITEF_TOLERANCE, 0},
+{660, 1035909900u, 1249532942u, 1u, 0, FINITEF_TOLERANCE, 0},
+{661, 2989750574u, 1274271338u, 1u, 0, FINITEF_TOLERANCE, 0},
+{662, 3024951184u, 1247632131u, 1u, 0, FINITEF_TOLERANCE, 0},
+{663, 1212129651u, 3017366784u, 1u, 0, FINITEF_TOLERANCE, 0},
+{664, 3125775254u, 955826310u, 1u, 0, FINITEF_TOLERANCE, 0},
+{665, 1037464105u, 3121544932u, 1u, 0, FINITEF_TOLERANCE, 0},
+{666, 1311706596u, 1254918706u, 1u, 0, FINITEF_TOLERANCE, 0},
+{667, 918212457u, 1017468331u, 1u, 0, FINITEF_TOLERANCE, 0},
+{668, 1337315179u, 3461361185u, 1u, 0, FINITEF_TOLERANCE, 0},
+{669, 1131358407u, 3325958870u, 1u, 0, FINITEF_TOLERANCE, 0},
+{670, 1156517523u, 3343716230u, 1u, 0, FINITEF_TOLERANCE, 0},
+{671, 3210802820u, 3207408574u, 1u, 0, FINITEF_TOLERANCE, 0},
+{672, 3337499209u, 1226297264u, 1u, 0, FINITEF_TOLERANCE, 0},
+{673, 3468429030u, 3253874001u, 1u, 0, FINITEF_TOLERANCE, 0},
+{674, 3253515800u, 1189005947u, 1u, 0, FINITEF_TOLERANCE, 0},
+{675, 3055299953u, 3047908678u, 1u, 0, FINITEF_TOLERANCE, 0},
+{676, 959956547u, 876324728u, 1u, 0, FINITEF_TOLERANCE, 0},
+{677, 3425290480u, 1139193797u, 1u, 0, FINITEF_TOLERANCE, 0},
+{678, 1039917375u, 1122740999u, 1u, 0, FINITEF_TOLERANCE, 0},
+{679, 3220979495u, 3429223871u, 1u, 0, FINITEF_TOLERANCE, 0},
+{680, 1311016004u, 3334899880u, 1u, 0, FINITEF_TOLERANCE, 0},
+{681, 2995451172u, 2974546424u, 1u, 0, FINITEF_TOLERANCE, 0},
+{682, 1128016396u, 1105151547u, 1u, 0, FINITEF_TOLERANCE, 0},
+{683, 3210335769u, 3100646155u, 1u, 0, FINITEF_TOLERANCE, 0},
+{684, 3022705759u, 3404762495u, 1u, 0, FINITEF_TOLERANCE, 0},
+{685, 1206054701u, 826010009u, 1u, 0, FINITEF_TOLERANCE, 0},
+{686, 3144504834u, 1162227076u, 1u, 0, FINITEF_TOLERANCE, 0},
+{687, 822524010u, 970745811u, 1u, 0, FINITEF_TOLERANCE, 0},
+{688, 3016981460u, 3313826904u, 1u, 0, FINITEF_TOLERANCE, 0},
+{689, 1213609983u, 919983950u, 1u, 0, FINITEF_TOLERANCE, 0},
+{690, 1246902946u, 3064047808u, 1u, 0, FINITEF_TOLERANCE, 0},
+{691, 995850843u, 1332031130u, 1u, 0, FINITEF_TOLERANCE, 0},
+{692, 3362082828u, 3374056268u, 1u, 0, FINITEF_TOLERANCE, 0},
+{693, 1029480631u, 3047777170u, 1u, 0, FINITEF_TOLERANCE, 0},
+{694, 3153568584u, 3106514232u, 1u, 0, FINITEF_TOLERANCE, 0},
+{695, 3384988527u, 3109485565u, 1u, 0, FINITEF_TOLERANCE, 0},
+{696, 1317696241u, 870681806u, 1u, 0, FINITEF_TOLERANCE, 0},
+{697, 3235395924u, 1132055244u, 1u, 0, FINITEF_TOLERANCE, 0},
+{698, 3341877624u, 2969495570u, 1u, 0, FINITEF_TOLERANCE, 0},
+{699, 1228636133u, 886552820u, 1u, 0, FINITEF_TOLERANCE, 0},
+{700, 3161654634u, 3335899347u, 1u, 0, FINITEF_TOLERANCE, 0},
+{701, 3162655243u, 3307203982u, 1u, 0, FINITEF_TOLERANCE, 0},
+{702, 1207246237u, 859223639u, 1u, 0, FINITEF_TOLERANCE, 0},
+{703, 1165476654u, 3350219111u, 1u, 0, FINITEF_TOLERANCE, 0},
+{704, 1215278023u, 3019755242u, 1u, 0, FINITEF_TOLERANCE, 0},
+{705, 1017239798u, 3438501281u, 1u, 0, FINITEF_TOLERANCE, 0},
+{706, 1149651309u, 970030475u, 1u, 0, FINITEF_TOLERANCE, 0},
+{707, 1111943722u, 3122211334u, 1u, 0, FINITEF_TOLERANCE, 0},
+{708, 856374764u, 1158358450u, 1u, 0, FINITEF_TOLERANCE, 0},
+{709, 1189849849u, 3382739134u, 1u, 0, FINITEF_TOLERANCE, 0},
+{710, 3204848496u, 3141519085u, 1u, 0, FINITEF_TOLERANCE, 0},
+{711, 1249758327u, 3104759211u, 1u, 0, FINITEF_TOLERANCE, 0},
+{712, 3092982276u, 3445282331u, 1u, 0, FINITEF_TOLERANCE, 0},
+{713, 1168098747u, 1316854744u, 1u, 0, FINITEF_TOLERANCE, 0},
+{714, 892549317u, 1179637545u, 1u, 0, FINITEF_TOLERANCE, 0},
+{715, 3301009024u, 3406174560u, 1u, 0, FINITEF_TOLERANCE, 0},
+{716, 3233089227u, 1212652543u, 1u, 0, FINITEF_TOLERANCE, 0},
+{717, 3218245284u, 1238873830u, 1u, 0, FINITEF_TOLERANCE, 0},
+{718, 3215981890u, 3240474694u, 1u, 0, FINITEF_TOLERANCE, 0},
+{719, 1266687209u, 3092038122u, 1u, 0, FINITEF_TOLERANCE, 0},
+{720, 825230580u, 3410090781u, 1u, 0, FINITEF_TOLERANCE, 0},
+{721, 3487959775u, 3331372071u, 1u, 0, FINITEF_TOLERANCE, 0},
+{722, 943645710u, 852875779u, 1u, 0, FINITEF_TOLERANCE, 0},
+{723, 3345065699u, 3282620725u, 1u, 0, FINITEF_TOLERANCE, 0},
+{724, 935847271u, 1067255804u, 1u, 0, FINITEF_TOLERANCE, 0},
+{725, 3410336089u, 1111437780u, 1u, 0, FINITEF_TOLERANCE, 0},
+{726, 3082940740u, 1336840432u, 1u, 0, FINITEF_TOLERANCE, 0},
+{727, 1141063391u, 1168908072u, 1u, 0, FINITEF_TOLERANCE, 0},
+{728, 3059263153u, 3067795684u, 1u, 0, FINITEF_TOLERANCE, 0},
+{729, 849450947u, 3289799763u, 1u, 0, FINITEF_TOLERANCE, 0},
+{730, 3353679791u, 897158391u, 1u, 0, FINITEF_TOLERANCE, 0},
+{731, 1001823878u, 1016826861u, 1u, 0, FINITEF_TOLERANCE, 0},
+{732, 1009130212u, 1004302940u, 1u, 0, FINITEF_TOLERANCE, 0},
+{733, 3367127535u, 943136342u, 1u, 0, FINITEF_TOLERANCE, 0},
+{734, 1032920919u, 3449126417u, 1u, 0, FINITEF_TOLERANCE, 0},
+{735, 3281952870u, 3147012185u, 1u, 0, FINITEF_TOLERANCE, 0},
+{736, 1237868497u, 3048281802u, 1u, 0, FINITEF_TOLERANCE, 0},
+{737, 1153753924u, 3322269242u, 1u, 0, FINITEF_TOLERANCE, 0},
+{738, 1120261759u, 892210998u, 1u, 0, FINITEF_TOLERANCE, 0},
+{739, 3226328360u, 3366432856u, 1u, 0, FINITEF_TOLERANCE, 0},
+{740, 3349595986u, 3251588707u, 1u, 0, FINITEF_TOLERANCE, 0},
+{741, 3166889490u, 3306023523u, 1u, 0, FINITEF_TOLERANCE, 0},
+{742, 1087750238u, 1099325523u, 1u, 0, FINITEF_TOLERANCE, 0},
+{743, 3121620061u, 3359488363u, 1u, 0, FINITEF_TOLERANCE, 0},
+{744, 1066116543u, 3072159933u, 1u, 0, FINITEF_TOLERANCE, 0},
+{745, 3210898034u, 2981803389u, 1u, 0, FINITEF_TOLERANCE, 0},
+{746, 3051923237u, 3364074347u, 1u, 0, FINITEF_TOLERANCE, 0},
+{747, 1030612298u, 3345396001u, 1u, 0, FINITEF_TOLERANCE, 0},
+{748, 3015019212u, 989161453u, 1u, 0, FINITEF_TOLERANCE, 0},
+{749, 1186234578u, 858134374u, 1u, 0, FINITEF_TOLERANCE, 0},
+{750, 1331680743u, 1009396165u, 1u, 0, FINITEF_TOLERANCE, 0},
+{751, 847857044u, 894661023u, 1u, 0, FINITEF_TOLERANCE, 0},
+{752, 3060774997u, 1326067357u, 1u, 0, FINITEF_TOLERANCE, 0},
+{753, 887589411u, 1292305693u, 1u, 0, FINITEF_TOLERANCE, 0},
+{754, 1045232522u, 3234993273u, 1u, 0, FINITEF_TOLERANCE, 0},
+{755, 3119858470u, 962515365u, 1u, 0, FINITEF_TOLERANCE, 0},
+{756, 3002873011u, 3188748064u, 1u, 0, FINITEF_TOLERANCE, 0},
+{757, 3349432725u, 928848003u, 1u, 0, FINITEF_TOLERANCE, 0},
+{758, 912423027u, 3184646319u, 1u, 0, FINITEF_TOLERANCE, 0},
+{759, 3228795133u, 3273940030u, 1u, 0, FINITEF_TOLERANCE, 0},
+{760, 3194674746u, 3112269709u, 1u, 0, FINITEF_TOLERANCE, 0},
+{761, 3296784303u, 3276182352u, 1u, 0, FINITEF_TOLERANCE, 0},
+{762, 965402291u, 3107104376u, 1u, 0, FINITEF_TOLERANCE, 0},
+{763, 3388153589u, 3426245389u, 1u, 0, FINITEF_TOLERANCE, 0},
+{764, 1133410485u, 3329658993u, 1u, 0, FINITEF_TOLERANCE, 0},
+{765, 3136790322u, 1088652637u, 1u, 0, FINITEF_TOLERANCE, 0},
+{766, 3369970587u, 959121458u, 1u, 0, FINITEF_TOLERANCE, 0},
+{767, 1270451568u, 928393353u, 1u, 0, FINITEF_TOLERANCE, 0},
+{768, 989498922u, 3088358419u, 1u, 0, FINITEF_TOLERANCE, 0},
+{769, 1280215674u, 3148135875u, 1u, 0, FINITEF_TOLERANCE, 0},
+{770, 1171873518u, 954709738u, 1u, 0, FINITEF_TOLERANCE, 0},
+{771, 3298258100u, 935525182u, 1u, 0, FINITEF_TOLERANCE, 0},
+{772, 3415208824u, 822843236u, 1u, 0, FINITEF_TOLERANCE, 0},
+{773, 1001897182u, 3191875320u, 1u, 0, FINITEF_TOLERANCE, 0},
+{774, 3152777939u, 3245830463u, 1u, 0, FINITEF_TOLERANCE, 0},
+{775, 985903305u, 3333087577u, 1u, 0, FINITEF_TOLERANCE, 0},
+{776, 3357328848u, 859306298u, 1u, 0, FINITEF_TOLERANCE, 0},
+{777, 2967395608u, 3077307650u, 1u, 0, FINITEF_TOLERANCE, 0},
+{778, 982612185u, 923582663u, 1u, 0, FINITEF_TOLERANCE, 0},
+{779, 3267868136u, 1208301947u, 1u, 0, FINITEF_TOLERANCE, 0},
+{780, 3319048157u, 1172271145u, 1u, 0, FINITEF_TOLERANCE, 0},
+{781, 1144755661u, 860947435u, 1u, 0, FINITEF_TOLERANCE, 0},
+{782, 840456845u, 1051585760u, 1u, 0, FINITEF_TOLERANCE, 0},
+{783, 898467286u, 839254959u, 1u, 0, FINITEF_TOLERANCE, 0},
+{784, 3301461672u, 1233693827u, 1u, 0, FINITEF_TOLERANCE, 0},
+{785, 3364525678u, 3089849671u, 1u, 0, FINITEF_TOLERANCE, 0},
+{786, 871130681u, 905123007u, 1u, 0, FINITEF_TOLERANCE, 0},
+{787, 931441127u, 1133424555u, 1u, 0, FINITEF_TOLERANCE, 0},
+{788, 3146660041u, 3143695961u, 1u, 0, FINITEF_TOLERANCE, 0},
+{789, 3467121799u, 3023584354u, 1u, 0, FINITEF_TOLERANCE, 0},
+{790, 1151257041u, 3084216427u, 1u, 0, FINITEF_TOLERANCE, 0},
+{791, 3097873255u, 3219266640u, 1u, 0, FINITEF_TOLERANCE, 0},
+{792, 3130670309u, 3192399254u, 1u, 0, FINITEF_TOLERANCE, 0},
+{793, 1017573824u, 3130901062u, 1u, 0, FINITEF_TOLERANCE, 0},
+{794, 1258369714u, 3462258576u, 1u, 0, FINITEF_TOLERANCE, 0},
+{795, 1216602683u, 3371396332u, 1u, 0, FINITEF_TOLERANCE, 0},
+{796, 2976429847u, 959973239u, 1u, 0, FINITEF_TOLERANCE, 0},
+{797, 3297265739u, 1214184410u, 1u, 0, FINITEF_TOLERANCE, 0},
+{798, 1071940738u, 3311731012u, 1u, 0, FINITEF_TOLERANCE, 0},
+{799, 922601356u, 3337171870u, 1u, 0, FINITEF_TOLERANCE, 0},
+{800, 3462285635u, 3444030332u, 1u, 0, FINITEF_TOLERANCE, 0},
+{801, 3357177805u, 1085464241u, 1u, 0, FINITEF_TOLERANCE, 0},
+{802, 3049120080u, 900832851u, 1u, 0, FINITEF_TOLERANCE, 0},
+{803, 1153863660u, 1011991342u, 1u, 0, FINITEF_TOLERANCE, 0},
+{804, 3034243695u, 917098003u, 1u, 0, FINITEF_TOLERANCE, 0},
+{805, 809294662u, 3266461458u, 1u, 0, FINITEF_TOLERANCE, 0},
+{806, 822231182u, 3393408718u, 1u, 0, FINITEF_TOLERANCE, 0},
+{807, 845772797u, 3341109215u, 1u, 0, FINITEF_TOLERANCE, 0},
+{808, 1249365132u, 3278686216u, 1u, 0, FINITEF_TOLERANCE, 0},
+{809, 3046215730u, 3211219980u, 1u, 0, FINITEF_TOLERANCE, 0},
+{810, 3047251716u, 1090787353u, 1u, 0, FINITEF_TOLERANCE, 0},
+{811, 2980866154u, 1147012796u, 1u, 0, FINITEF_TOLERANCE, 0},
+{812, 3131219358u, 3471261157u, 1u, 0, FINITEF_TOLERANCE, 0},
+{813, 3222096285u, 1198013705u, 1u, 0, FINITEF_TOLERANCE, 0},
+{814, 1297708818u, 3079166173u, 1u, 0, FINITEF_TOLERANCE, 0},
+{815, 3345532722u, 3383708463u, 1u, 0, FINITEF_TOLERANCE, 0},
+{816, 3418753236u, 3481843070u, 1u, 0, FINITEF_TOLERANCE, 0},
+{817, 1277417964u, 3487506626u, 1u, 0, FINITEF_TOLERANCE, 0},
+{818, 987577257u, 1152077087u, 1u, 0, FINITEF_TOLERANCE, 0},
+{819, 3161606610u, 3190282989u, 1u, 0, FINITEF_TOLERANCE, 0},
+{820, 849056171u, 910674398u, 1u, 0, FINITEF_TOLERANCE, 0},
+{821, 888030585u, 3062367380u, 1u, 0, FINITEF_TOLERANCE, 0},
+{822, 1043442869u, 3311393817u, 1u, 0, FINITEF_TOLERANCE, 0},
+{823, 851189486u, 3007588581u, 1u, 0, FINITEF_TOLERANCE, 0},
+{824, 3320923228u, 3464544249u, 1u, 0, FINITEF_TOLERANCE, 0},
+{825, 1337400405u, 3488844154u, 1u, 0, FINITEF_TOLERANCE, 0},
+{826, 2964339884u, 3186563447u, 1u, 0, FINITEF_TOLERANCE, 0},
+{827, 3400348640u, 3129868490u, 1u, 0, FINITEF_TOLERANCE, 0},
+{828, 1250249095u, 1069023744u, 1u, 0, FINITEF_TOLERANCE, 0},
+{829, 3284411233u, 1173613526u, 1u, 0, FINITEF_TOLERANCE, 0},
+{830, 3020883322u, 2953622587u, 1u, 0, FINITEF_TOLERANCE, 0},
+{831, 1215968622u, 3469884568u, 1u, 0, FINITEF_TOLERANCE, 0},
+{832, 3202319550u, 819117302u, 1u, 0, FINITEF_TOLERANCE, 0},
+{833, 3061638260u, 3116222327u, 1u, 0, FINITEF_TOLERANCE, 0},
+{834, 1025404104u, 1066370251u, 1u, 0, FINITEF_TOLERANCE, 0},
+{835, 3138086437u, 3195983510u, 1u, 0, FINITEF_TOLERANCE, 0},
+{836, 3091024506u, 3456196859u, 1u, 0, FINITEF_TOLERANCE, 0},
+{837, 3362748242u, 3369843597u, 1u, 0, FINITEF_TOLERANCE, 0},
+{838, 3099671635u, 3218383623u, 1u, 0, FINITEF_TOLERANCE, 0},
+{839, 3068014841u, 2978226656u, 1u, 0, FINITEF_TOLERANCE, 0},
+{840, 1252237719u, 1121169249u, 1u, 0, FINITEF_TOLERANCE, 0},
+{841, 3327895594u, 1224511805u, 1u, 0, FINITEF_TOLERANCE, 0},
+{842, 3082454432u, 889268276u, 1u, 0, FINITEF_TOLERANCE, 0},
+{843, 3396161504u, 1182798837u, 1u, 0, FINITEF_TOLERANCE, 0},
+{844, 1099710167u, 887180181u, 1u, 0, FINITEF_TOLERANCE, 0},
+{845, 1157186482u, 1288722647u, 1u, 0, FINITEF_TOLERANCE, 0},
+{846, 1282110851u, 3176633124u, 1u, 0, FINITEF_TOLERANCE, 0},
+{847, 3477008113u, 1331845018u, 1u, 0, FINITEF_TOLERANCE, 0},
+{848, 3292127294u, 3409957764u, 1u, 0, FINITEF_TOLERANCE, 0},
+{849, 1123357102u, 3281307320u, 1u, 0, FINITEF_TOLERANCE, 0},
+{850, 1106837025u, 3088080674u, 1u, 0, FINITEF_TOLERANCE, 0},
+{851, 1049949008u, 1130799489u, 1u, 0, FINITEF_TOLERANCE, 0},
+{852, 1253017688u, 942062372u, 1u, 0, FINITEF_TOLERANCE, 0},
+{853, 1108543194u, 3281299199u, 1u, 0, FINITEF_TOLERANCE, 0},
+{854, 3087985411u, 1238341456u, 1u, 0, FINITEF_TOLERANCE, 0},
+{855, 3002187365u, 1073809054u, 1u, 0, FINITEF_TOLERANCE, 0},
+{856, 3163283126u, 1328636961u, 1u, 0, FINITEF_TOLERANCE, 0},
+{857, 1160162706u, 1264067367u, 1u, 0, FINITEF_TOLERANCE, 0},
+{858, 3305715025u, 3017496063u, 1u, 0, FINITEF_TOLERANCE, 0},
+{859, 1266928623u, 811778614u, 1u, 0, FINITEF_TOLERANCE, 0},
+{860, 3025340297u, 1193925540u, 1u, 0, FINITEF_TOLERANCE, 0},
+{861, 3438080027u, 3107114149u, 1u, 0, FINITEF_TOLERANCE, 0},
+{862, 3344574751u, 3111270744u, 1u, 0, FINITEF_TOLERANCE, 0},
+{863, 1152416724u, 962669179u, 1u, 0, FINITEF_TOLERANCE, 0},
+{864, 1218239308u, 1126238113u, 1u, 0, FINITEF_TOLERANCE, 0},
+{865, 3263310567u, 1030748197u, 1u, 0, FINITEF_TOLERANCE, 0},
+{866, 835770216u, 865469272u, 1u, 0, FINITEF_TOLERANCE, 0},
+{867, 3041998669u, 1160635263u, 1u, 0, FINITEF_TOLERANCE, 0},
+{868, 1000313118u, 2980130729u, 1u, 0, FINITEF_TOLERANCE, 0},
+{869, 972485427u, 1124312043u, 1u, 0, FINITEF_TOLERANCE, 0},
+{870, 3290264612u, 1124703898u, 1u, 0, FINITEF_TOLERANCE, 0},
+{871, 869072657u, 3150369767u, 1u, 0, FINITEF_TOLERANCE, 0},
+{872, 3222106584u, 1183748648u, 1u, 0, FINITEF_TOLERANCE, 0},
+{873, 1278946388u, 825129857u, 1u, 0, FINITEF_TOLERANCE, 0},
+{874, 947914771u, 3181847068u, 1u, 0, FINITEF_TOLERANCE, 0},
+{875, 3167730654u, 3195765940u, 1u, 0, FINITEF_TOLERANCE, 0},
+{876, 1098530298u, 3255870890u, 1u, 0, FINITEF_TOLERANCE, 0},
+{877, 3232726036u, 871038882u, 1u, 0, FINITEF_TOLERANCE, 0},
+{878, 1297190916u, 811863044u, 1u, 0, FINITEF_TOLERANCE, 0},
+{879, 1277649137u, 961171401u, 1u, 0, FINITEF_TOLERANCE, 0},
+{880, 3203377685u, 1306427476u, 1u, 0, FINITEF_TOLERANCE, 0},
+{881, 3090306474u, 3124785016u, 1u, 0, FINITEF_TOLERANCE, 0},
+{882, 3244032016u, 3045313345u, 1u, 0, FINITEF_TOLERANCE, 0},
+{883, 3033122376u, 3049877065u, 1u, 0, FINITEF_TOLERANCE, 0},
+{884, 3019221802u, 3329183205u, 1u, 0, FINITEF_TOLERANCE, 0},
+{885, 1096155623u, 1256423752u, 1u, 0, FINITEF_TOLERANCE, 0},
+{886, 873151908u, 3246562559u, 1u, 0, FINITEF_TOLERANCE, 0},
+{887, 3238729605u, 1298769842u, 1u, 0, FINITEF_TOLERANCE, 0},
+{888, 3317196817u, 989537151u, 1u, 0, FINITEF_TOLERANCE, 0},
+{889, 3374748510u, 834161190u, 1u, 0, FINITEF_TOLERANCE, 0},
+{890, 3345634950u, 959901149u, 1u, 0, FINITEF_TOLERANCE, 0},
+{891, 3189860276u, 883598767u, 1u, 0, FINITEF_TOLERANCE, 0},
+{892, 887311687u, 1175312255u, 1u, 0, FINITEF_TOLERANCE, 0},
+{893, 3396917283u, 3066326686u, 1u, 0, FINITEF_TOLERANCE, 0},
+{894, 3317032737u, 3143803722u, 1u, 0, FINITEF_TOLERANCE, 0},
+{895, 1200051436u, 1163802508u, 1u, 0, FINITEF_TOLERANCE, 0},
+{896, 3105291012u, 1194385202u, 1u, 0, FINITEF_TOLERANCE, 0},
+{897, 1306520561u, 957302464u, 1u, 0, FINITEF_TOLERANCE, 0},
+{898, 1314936356u, 2985592532u, 1u, 0, FINITEF_TOLERANCE, 0},
+{899, 3475052219u, 1284049853u, 1u, 0, FINITEF_TOLERANCE, 0},
+{900, 3085636260u, 1107682820u, 1u, 0, FINITEF_TOLERANCE, 0},
+{901, 2995058661u, 822977912u, 1u, 0, FINITEF_TOLERANCE, 0},
+{902, 3393227708u, 3271879112u, 1u, 0, FINITEF_TOLERANCE, 0},
+{903, 2983919425u, 3341426744u, 1u, 0, FINITEF_TOLERANCE, 0},
+{904, 3182540197u, 852580839u, 1u, 0, FINITEF_TOLERANCE, 0},
+{905, 3349005404u, 3080993030u, 1u, 0, FINITEF_TOLERANCE, 0},
+{906, 3154720153u, 3443720494u, 1u, 0, FINITEF_TOLERANCE, 0},
+{907, 1262863321u, 1219003129u, 1u, 0, FINITEF_TOLERANCE, 0},
+{908, 882902102u, 1224362550u, 1u, 0, FINITEF_TOLERANCE, 0},
+{909, 2995633678u, 828113666u, 1u, 0, FINITEF_TOLERANCE, 0},
+{910, 1053387478u, 3184880021u, 1u, 0, FINITEF_TOLERANCE, 0},
+{911, 3387653691u, 3347783852u, 1u, 0, FINITEF_TOLERANCE, 0},
+{912, 3136364836u, 1018492227u, 1u, 0, FINITEF_TOLERANCE, 0},
+{913, 808412264u, 941158192u, 1u, 0, FINITEF_TOLERANCE, 0},
+{914, 1338680611u, 1166078045u, 1u, 0, FINITEF_TOLERANCE, 0},
+{915, 1112891928u, 3074730425u, 1u, 0, FINITEF_TOLERANCE, 0},
+{916, 893449284u, 1052877339u, 1u, 0, FINITEF_TOLERANCE, 0},
+{917, 892311459u, 1097338393u, 1u, 0, FINITEF_TOLERANCE, 0},
+{918, 3105373037u, 3246705916u, 1u, 0, FINITEF_TOLERANCE, 0},
+{919, 1190105283u, 3033907262u, 1u, 0, FINITEF_TOLERANCE, 0},
+{920, 1011225926u, 1180485180u, 1u, 0, FINITEF_TOLERANCE, 0},
+{921, 1043025031u, 987068973u, 1u, 0, FINITEF_TOLERANCE, 0},
+{922, 3410531037u, 2953541915u, 1u, 0, FINITEF_TOLERANCE, 0},
+{923, 3125834184u, 896953754u, 1u, 0, FINITEF_TOLERANCE, 0},
+{924, 902318189u, 849277289u, 1u, 0, FINITEF_TOLERANCE, 0},
+{925, 835377647u, 3441354730u, 1u, 0, FINITEF_TOLERANCE, 0},
+{926, 2976308307u, 1286944060u, 1u, 0, FINITEF_TOLERANCE, 0},
+{927, 3213624815u, 2987148017u, 1u, 0, FINITEF_TOLERANCE, 0},
+{928, 1120888322u, 1086209113u, 1u, 0, FINITEF_TOLERANCE, 0},
+{929, 1315217243u, 3396371713u, 1u, 0, FINITEF_TOLERANCE, 0},
+{930, 3137758475u, 1039403054u, 1u, 0, FINITEF_TOLERANCE, 0},
+{931, 1040617590u, 1034835971u, 1u, 0, FINITEF_TOLERANCE, 0},
+{932, 955384253u, 3344785562u, 1u, 0, FINITEF_TOLERANCE, 0},
+{933, 853063496u, 3317415965u, 1u, 0, FINITEF_TOLERANCE, 0},
+{934, 823111402u, 877253523u, 1u, 0, FINITEF_TOLERANCE, 0},
+{935, 3061417900u, 1172208065u, 1u, 0, FINITEF_TOLERANCE, 0},
+{936, 904255535u, 1019967545u, 1u, 0, FINITEF_TOLERANCE, 0},
+{937, 1022984119u, 3113891410u, 1u, 0, FINITEF_TOLERANCE, 0},
+{938, 997362368u, 3112875428u, 1u, 0, FINITEF_TOLERANCE, 0},
+{939, 900933520u, 1100589187u, 1u, 0, FINITEF_TOLERANCE, 0},
+{940, 1168623062u, 1143306482u, 1u, 0, FINITEF_TOLERANCE, 0},
+{941, 878737490u, 3269908326u, 1u, 0, FINITEF_TOLERANCE, 0},
+{942, 1039827284u, 1072928888u, 1u, 0, FINITEF_TOLERANCE, 0},
+{943, 1021564080u, 1064468397u, 1u, 0, FINITEF_TOLERANCE, 0},
+{944, 3458669745u, 3033299853u, 1u, 0, FINITEF_TOLERANCE, 0},
+{945, 3327516316u, 3405380971u, 1u, 0, FINITEF_TOLERANCE, 0},
+{946, 1040711112u, 3229444200u, 1u, 0, FINITEF_TOLERANCE, 0},
+{947, 1134528351u, 3365952513u, 1u, 0, FINITEF_TOLERANCE, 0},
+{948, 3039884464u, 1170612785u, 1u, 0, FINITEF_TOLERANCE, 0},
+{949, 3414352838u, 3350285760u, 1u, 0, FINITEF_TOLERANCE, 0},
+{950, 1133689539u, 1067460093u, 1u, 0, FINITEF_TOLERANCE, 0},
+{951, 3455688478u, 3333091960u, 1u, 0, FINITEF_TOLERANCE, 0},
+{952, 1137634874u, 1137038869u, 1u, 0, FINITEF_TOLERANCE, 0},
+{953, 3415502662u, 955510692u, 1u, 0, FINITEF_TOLERANCE, 0},
+{954, 954999730u, 969618597u, 1u, 0, FINITEF_TOLERANCE, 0},
+{955, 1066157309u, 3241712664u, 1u, 0, FINITEF_TOLERANCE, 0},
+{956, 3436353675u, 1174967495u, 1u, 0, FINITEF_TOLERANCE, 0},
+{957, 940437609u, 860372396u, 1u, 0, FINITEF_TOLERANCE, 0},
+{958, 3108347547u, 3434003435u, 1u, 0, FINITEF_TOLERANCE, 0},
+{959, 3064200154u, 3158080507u, 1u, 0, FINITEF_TOLERANCE, 0},
+{960, 1023889593u, 2979304683u, 1u, 0, FINITEF_TOLERANCE, 0},
+{961, 3272661536u, 3461799138u, 1u, 0, FINITEF_TOLERANCE, 0},
+{962, 1170245333u, 1233406410u, 1u, 0, FINITEF_TOLERANCE, 0},
+{963, 1219052056u, 3369557946u, 1u, 0, FINITEF_TOLERANCE, 0},
+{964, 3318983619u, 3259663338u, 1u, 0, FINITEF_TOLERANCE, 0},
+{965, 3372118621u, 837597103u, 1u, 0, FINITEF_TOLERANCE, 0},
+{966, 3146190320u, 889646054u, 1u, 0, FINITEF_TOLERANCE, 0},
+{967, 1299683827u, 966031619u, 1u, 0, FINITEF_TOLERANCE, 0},
+{968, 3190796331u, 1320011850u, 1u, 0, FINITEF_TOLERANCE, 0},
+{969, 2965838479u, 805822032u, 1u, 0, FINITEF_TOLERANCE, 0},
+{970, 3086068902u, 3484245751u, 1u, 0, FINITEF_TOLERANCE, 0},
+{971, 3064155399u, 3176569312u, 1u, 0, FINITEF_TOLERANCE, 0},
+{972, 836858201u, 3132995403u, 1u, 0, FINITEF_TOLERANCE, 0},
+{973, 3040314717u, 1071290674u, 1u, 0, FINITEF_TOLERANCE, 0},
+{974, 3257224022u, 3361778245u, 1u, 0, FINITEF_TOLERANCE, 0},
+{975, 1229268598u, 1066965677u, 1u, 0, FINITEF_TOLERANCE, 0},
+{976, 3184078812u, 871003709u, 1u, 0, FINITEF_TOLERANCE, 0},
+{977, 871255076u, 3446104825u, 1u, 0, FINITEF_TOLERANCE, 0},
+{978, 1086717248u, 3423795374u, 1u, 0, FINITEF_TOLERANCE, 0},
+{979, 3434884607u, 3029593823u, 1u, 0, FINITEF_TOLERANCE, 0},
+{980, 3464955606u, 1017987696u, 1u, 0, FINITEF_TOLERANCE, 0},
+{981, 1025278524u, 3121856207u, 1u, 0, FINITEF_TOLERANCE, 0},
+{982, 1242829722u, 3233935671u, 1u, 0, FINITEF_TOLERANCE, 0},
+{983, 3075149137u, 1117325737u, 1u, 0, FINITEF_TOLERANCE, 0},
+{984, 1200927971u, 1317167489u, 1u, 0, FINITEF_TOLERANCE, 0},
+{985, 3326858092u, 3452602832u, 1u, 0, FINITEF_TOLERANCE, 0},
+{986, 2995203347u, 1021818696u, 1u, 0, FINITEF_TOLERANCE, 0},
+{987, 1246019790u, 850632217u, 1u, 0, FINITEF_TOLERANCE, 0},
+{988, 3184801644u, 1137974313u, 1u, 0, FINITEF_TOLERANCE, 0},
+{989, 1136052740u, 3244616020u, 1u, 0, FINITEF_TOLERANCE, 0},
+{990, 1069009211u, 3002507482u, 1u, 0, FINITEF_TOLERANCE, 0},
+{991, 1015670780u, 1101217251u, 1u, 0, FINITEF_TOLERANCE, 0},
+{992, 1012543234u, 1116520440u, 1u, 0, FINITEF_TOLERANCE, 0},
+{993, 3316611992u, 3394732912u, 1u, 0, FINITEF_TOLERANCE, 0},
+{994, 3012101436u, 3307846870u, 1u, 0, FINITEF_TOLERANCE, 0},
+{995, 1087942795u, 3316660295u, 1u, 0, FINITEF_TOLERANCE, 0},
+{996, 3426365713u, 3069778532u, 1u, 0, FINITEF_TOLERANCE, 0},
+{997, 3066654389u, 3443934204u, 1u, 0, FINITEF_TOLERANCE, 0},
+{998, 3295326432u, 1313396175u, 1u, 0, FINITEF_TOLERANCE, 0},
+{999, 3318835308u, 3277583511u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1000, 3283555717u, 891875120u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1001, 3381255420u, 3015406047u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1002, 3040485181u, 3375450886u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1003, 3388772093u, 1032597076u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1004, 954670189u, 1144923689u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1005, 1319200415u, 3387555900u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1006, 1279324488u, 3228401212u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1007, 3217795424u, 865577227u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1008, 3455131757u, 1260217257u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1009, 2982636375u, 3162157233u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1010, 1246947517u, 1087951909u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1011, 3396723577u, 869285240u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1012, 3433761025u, 3060143904u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1013, 3201187455u, 900233172u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1014, 1173247961u, 1191127979u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1015, 3037297123u, 3346394818u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1016, 3248534678u, 1323683800u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1017, 3083019343u, 3033309444u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1018, 3042018375u, 3203882372u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1019, 1082862511u, 3032804719u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1020, 3157626955u, 3483653298u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1021, 1341821683u, 3003675365u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1022, 881101379u, 1190838126u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1023, 1079061705u, 2960507663u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1024, 3182695954u, 3256861672u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1025, 1105291533u, 3482971524u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1026, 1016023520u, 3227712090u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1027, 3370691006u, 1295870514u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1028, 1156767169u, 1049756240u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1029, 3077020499u, 894671462u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1030, 1104284039u, 3040211914u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1031, 3335212901u, 3486414589u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1032, 1093697541u, 3193708441u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1033, 3266691185u, 1160074593u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1034, 3179003144u, 1108615803u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1035, 1094115255u, 3008610212u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1036, 2994604730u, 973792195u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1037, 3424086808u, 3260140004u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1038, 2957266025u, 917932067u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1039, 3353608773u, 1134068114u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1040, 2985838945u, 3118475644u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1041, 973664327u, 1319516167u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1042, 882878091u, 3136970767u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1043, 1098662266u, 833740182u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1044, 927582555u, 947955456u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1045, 3111440310u, 3067634077u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1046, 3476083859u, 966439623u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1047, 3038754840u, 932009686u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1048, 979878744u, 1232482646u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1049, 3464546616u, 3205527253u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1050, 1002542205u, 3152136093u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1051, 3443552129u, 3165561391u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1052, 1287620154u, 3119707283u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1053, 820906845u, 1196920413u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1054, 860108361u, 921064349u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1055, 946058434u, 1249928879u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1056, 3073260205u, 3093124531u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1057, 1245702957u, 894348966u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1058, 989655126u, 1308376568u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1059, 1002715618u, 1191006977u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1060, 3087802274u, 897541752u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1061, 1000863905u, 1196831314u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1062, 3415763001u, 3032518431u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1063, 2979924820u, 1100234812u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1064, 3283471961u, 1260093226u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1065, 3311210827u, 1192192264u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1066, 3026311911u, 2968974374u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1067, 1198307901u, 1116328249u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1068, 1288901567u, 1296370667u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1069, 922255363u, 958305289u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1070, 1113104661u, 944376032u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1071, 1136714348u, 828849087u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1072, 3002059872u, 1136817970u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1073, 948856035u, 1015466475u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1074, 1062512367u, 3229559531u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1075, 3486907092u, 823220784u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1076, 3015049792u, 3078555978u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1077, 1162027071u, 3308983387u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1078, 1034561811u, 1054043114u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1079, 853827378u, 898656161u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1080, 3271615417u, 3209997200u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1081, 1042014529u, 1146708584u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1082, 1177157787u, 3090208179u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1083, 3196144817u, 1056118717u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1084, 3432084552u, 2997091781u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1085, 1309658335u, 1010219988u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1086, 3004373345u, 873739132u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1087, 2997667929u, 1038223245u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1088, 1226494979u, 2991604792u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1089, 3100289712u, 3456334210u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1090, 3375507013u, 1306310823u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1091, 3460699001u, 3096700943u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1092, 3079231719u, 1044386263u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1093, 3093951884u, 1014115231u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1094, 3468023178u, 1209565017u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1095, 3008182310u, 1258900986u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1096, 1204196034u, 3298625731u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1097, 3459877411u, 2960476959u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1098, 909696559u, 1163075690u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1099, 1161439847u, 943449277u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1100, 908663107u, 939489763u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1101, 1055319316u, 3261813492u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1102, 1084378658u, 1009650785u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1103, 3053887750u, 3341786453u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1104, 3022828828u, 881335251u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1105, 2995476576u, 3194911588u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1106, 1226473697u, 821025132u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1107, 1123114742u, 1229815537u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1108, 1258114435u, 1291336083u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1109, 2983818103u, 3015402015u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1110, 3468040845u, 3066966245u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1111, 1178825761u, 1113195286u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1112, 3059266302u, 878503862u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1113, 3223384012u, 1130486973u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1114, 1019964626u, 1235133609u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1115, 3445262427u, 3465211174u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1116, 1125653081u, 1207799746u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1117, 3337652712u, 3025581813u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1118, 1184753508u, 3147374485u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1119, 996404791u, 3353251979u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1120, 1188439315u, 1113484271u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1121, 906557513u, 3006513432u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1122, 916831283u, 999465787u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1123, 996786317u, 3179221951u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1124, 3461635065u, 1004690387u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1125, 1188167943u, 1200744896u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1126, 3036502395u, 1172597364u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1127, 891257783u, 1267560050u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1128, 3290079438u, 846519377u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1129, 3350690327u, 2967953392u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1130, 1102061604u, 3424449935u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1131, 1282351521u, 3039376424u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1132, 3458861065u, 3392466405u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1133, 3095256878u, 1023623326u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1134, 3163373610u, 843150426u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1135, 3228793330u, 855146890u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1136, 3422194733u, 893873945u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1137, 3083885296u, 974543672u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1138, 1261940623u, 3402349985u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1139, 825039660u, 3426717554u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1140, 3400603081u, 3234396843u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1141, 1219411812u, 2961857939u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1142, 3094833770u, 805351108u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1143, 3139250800u, 3079109479u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1144, 886201503u, 3272760705u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1145, 3297366026u, 1089966380u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1146, 1218488455u, 3309646450u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1147, 3040358923u, 3093401553u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1148, 862346861u, 3411853707u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1149, 1283938137u, 1196383822u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1150, 3182551696u, 3029982441u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1151, 1317098613u, 949986176u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1152, 3116209179u, 3303588342u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1153, 3431703657u, 3014443710u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1154, 3239728775u, 927815421u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1155, 3207141672u, 933456504u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1156, 3154378805u, 905462392u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1157, 3069658155u, 1041452042u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1158, 3313160088u, 2964063309u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1159, 3207056527u, 3384206601u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1160, 1284174954u, 3436881197u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1161, 3156081645u, 3308839704u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1162, 1063693032u, 976661408u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1163, 3036026175u, 1251203998u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1164, 1102631663u, 3396951425u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1165, 968803479u, 992989712u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1166, 3273080388u, 3109405906u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1167, 1172529774u, 3294550127u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1168, 1306695905u, 1292690378u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1169, 1003649752u, 1218792138u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1170, 1078478376u, 1326246424u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1171, 3158855023u, 3151283866u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1172, 1165177679u, 3276237026u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1173, 870472127u, 3332532333u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1174, 3403009513u, 3381966453u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1175, 816825508u, 3032174124u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1176, 952348506u, 3377573987u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1177, 839544701u, 3419900937u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1178, 2967454456u, 3313359047u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1179, 1222777442u, 1125769920u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1180, 1325324763u, 978336043u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1181, 3363524213u, 3202991311u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1182, 1158950321u, 1073578913u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1183, 903129873u, 3416864271u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1184, 2997685349u, 1123653663u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1185, 3078339944u, 988173985u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1186, 1208345407u, 1254181270u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1187, 3003262042u, 1327277116u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1188, 1258634105u, 1247426200u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1189, 1248478509u, 1287895126u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1190, 1153863988u, 3430539165u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1191, 1235620969u, 866627358u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1192, 1097120930u, 3221726305u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1193, 3469778622u, 1200179013u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1194, 1147712200u, 931865525u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1195, 812694172u, 1136276190u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1196, 862266739u, 3139447362u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1197, 1124721745u, 3058969650u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1198, 3261744304u, 1043806501u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1199, 832324055u, 2954061156u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1200, 805759679u, 903848557u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1201, 2983396015u, 872299138u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1202, 1064922416u, 1320485628u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1203, 868114980u, 3213276361u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1204, 3303160152u, 3075455322u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1205, 1315090496u, 3269683237u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1206, 850876090u, 3365795667u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1207, 3230403187u, 1322841992u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1208, 1335399673u, 974138676u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1209, 1072458508u, 3372833993u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1210, 3303015249u, 3015039539u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1211, 3252139741u, 1059615003u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1212, 3468519966u, 3113982619u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1213, 1006231203u, 897530770u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1214, 951554138u, 1001144381u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1215, 942046828u, 986341002u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1216, 2968517146u, 951832467u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1217, 3319723279u, 3414482416u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1218, 3255104167u, 928827688u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1219, 1155477903u, 3104812800u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1220, 3273889176u, 980486479u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1221, 3237813668u, 3441016803u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1222, 1228207362u, 2985476579u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1223, 975349337u, 1311932596u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1224, 2982583196u, 3132904446u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1225, 1290175785u, 3008182462u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1226, 981908840u, 3314038398u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1227, 941187647u, 1107765599u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1228, 1214223128u, 3225536822u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1229, 3422922584u, 1086391131u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1230, 1315857601u, 3487600045u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1231, 3453226030u, 3233768835u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1232, 1078359574u, 3199175230u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1233, 1029557624u, 3302959071u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1234, 1207675424u, 3042692550u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1235, 1028355074u, 3442294040u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1236, 3119299090u, 1187096397u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1237, 1248421894u, 3367769132u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1238, 3353251994u, 1095517730u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1239, 876926659u, 3288089977u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1240, 1076752219u, 876236939u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1241, 3388531942u, 2988520062u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1242, 1273395082u, 3031189261u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1243, 3385588183u, 3258252464u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1244, 862047095u, 829323655u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1245, 3192315328u, 3289489214u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1246, 3441804648u, 3274638356u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1247, 837368567u, 3228474927u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1248, 3392827417u, 1277961150u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1249, 1161241793u, 1328003707u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1250, 856495732u, 3123041418u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1251, 3034494183u, 3041579130u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1252, 1171318485u, 3374409104u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1253, 3047748143u, 831102792u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1254, 1001216371u, 3052357038u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1255, 2999541351u, 3085461799u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1256, 912515889u, 1074635609u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1257, 3391452505u, 897989232u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1258, 3249603369u, 3147662248u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1259, 1220264047u, 2960450369u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1260, 3169816394u, 988430929u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1261, 3098997418u, 3002162688u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1262, 3282212423u, 3174079140u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1263, 3352293320u, 3247843425u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1264, 3296358441u, 875645354u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1265, 1197828352u, 3245614728u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1266, 3340510371u, 914930263u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1267, 1127109339u, 3368125489u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1268, 816173492u, 1083268662u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1269, 909467381u, 1232375752u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1270, 1200599955u, 2981200675u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1271, 962230977u, 2988248037u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1272, 2996667337u, 1068572835u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1273, 3192887808u, 3191848339u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1274, 3237183876u, 3179379969u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1275, 939285924u, 3056079386u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1276, 944050180u, 3452557879u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1277, 3058135703u, 3090284601u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1278, 3480592662u, 3261728191u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1279, 3061939312u, 3274418540u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1280, 1003299981u, 853295521u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1281, 1155775526u, 1255814444u, 1u, 0, FINITEF_TOLERANCE, 0},
+{1282, 1234491880u, 3408568717u, 1u, 0, FINITEF_TOLERANCE, 0}
+
+// AUTOMATICALLY GENERATED VECTORS STOP
+
+};
+
+#endif // CYGONCE_LIBM_FINITEF_H multiple inclusion protection
+
+// EOF finitef.h
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/floor.c b/ecos/packages/language/c/libm/current/tests/vectors/floor.c
new file mode 100644
index 0000000..45387f3
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/floor.c
@@ -0,0 +1,115 @@
+//===========================================================================
+//
+// floor.c
+//
+// Test of floor() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// Declarations for test system:
+//
+// TESTCASE_TYPE=CYG_TEST_MODULE
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include <cyg/infra/testcase.h> // Test infrastructure
+#include <math.h> // Header for this package
+#include <sys/ieeefp.h> // Cyg_libm_ieee_double_shape_type
+#include "vectors/vector_support.h"// extra support for math tests
+
+#include "vectors/floor.h"
+
+// FUNCTIONS
+
+static void
+test( CYG_ADDRWORD data )
+{
+ cyg_ucount32 vec_size;
+ cyg_bool ret;
+
+ vec_size = sizeof(floor_vec) / sizeof(Cyg_libm_test_double_vec_t);
+ ret = doTestVec( (CYG_ADDRWORD) &floor, CYG_LIBM_TEST_VEC_DOUBLE,
+ CYG_LIBM_TEST_VEC_NONE, CYG_LIBM_TEST_VEC_DOUBLE,
+ &floor_vec[0], vec_size );
+
+ if (ret==true)
+ {
+ CYG_TEST_PASS("floor() is stable");
+ } // if
+ else
+ {
+ CYG_TEST_FAIL("floor() failed tests");
+ } // else
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for Math "
+ "library floor() function");
+} // test()
+
+
+int
+main(int argc, char *argv[])
+{
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for Math library "
+ "floor() function");
+
+ START_TEST( test );
+
+ CYG_TEST_PASS_FINISH("Testing is not applicable to this configuration");
+
+} // main()
+
+
+// EOF floor.c
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/floor.h b/ecos/packages/language/c/libm/current/tests/vectors/floor.h
new file mode 100644
index 0000000..41e9c9c
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/floor.h
@@ -0,0 +1,1079 @@
+#ifndef CYGONCE_LIBM_FLOOR_H
+#define CYGONCE_LIBM_FLOOR_H
+//===========================================================================
+//
+// floor.h
+//
+// Test vectors for testing of floor() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage: #include "vectors/floor.h"
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include "vectors/vector_support.h"// extra support for math tests
+
+#define FLOOR_TOLERANCE 1.0E-04
+
+static const Cyg_libm_test_double_vec_t floor_vec[] = {
+
+// AUTOMATICALLY GENERATED VECTORS START
+
+{ 1, 1077999148u, 2506787616u, 1090024059u, 3619148316u, 1077968896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 2, 3218153654u, 3176730980u, 1051524793u, 2993920299u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 3, 3239659803u, 2725707538u, 3232101343u, 2346810316u, 3239659804u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 4, 1092554362u, 2088062470u, 3201242716u, 420891118u, 1092554360u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 5, 3221200677u, 2636405208u, 1100049309u, 471635570u, 3221225472u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 6, 1089363191u, 1746012320u, 1054478713u, 3333988501u, 1089363168u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 7, 1047953160u, 183014794u, 3202039382u, 2016785810u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 8, 3213486034u, 2688957927u, 1046089230u, 2709029994u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 9, 1058795730u, 624574473u, 1045840574u, 3473266330u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 10, 3204919842u, 1605286142u, 1068931671u, 4233776869u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 11, 1060343410u, 1857607719u, 3222889559u, 3417070006u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 12, 1103599987u, 3981151660u, 1088899021u, 1332651746u, 1103599987u, 3976200192u, 0, FLOOR_TOLERANCE, 0},
+{ 13, 1085298022u, 3824988054u, 1066856791u, 2070129652u, 1085297920u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 14, 3207559790u, 1372884064u, 1080833116u, 3229926662u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 15, 1093826501u, 3217805330u, 3191644264u, 2014578707u, 1093826501u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 16, 1102287487u, 265058758u, 3239903247u, 1630600647u, 1102287487u, 251658240u, 0, FLOOR_TOLERANCE, 0},
+{ 17, 1071124229u, 1946677669u, 3198462609u, 926009897u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 18, 1072130299u, 2271884183u, 3203741999u, 2118617783u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 19, 3194849109u, 213658772u, 3249401130u, 314151656u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 20, 3254112288u, 1564829925u, 3197817016u, 497230814u, 3254112288u, 1565523968u, 0, FLOOR_TOLERANCE, 0},
+{ 21, 3216262634u, 2075329122u, 3231746400u, 169900577u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 22, 1049848642u, 541549344u, 1096608669u, 3119070100u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 23, 1085427055u, 567496114u, 1045286891u, 1969998540u, 1085426944u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 24, 1060548195u, 1299369769u, 1049342524u, 4167404066u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 25, 3208865645u, 3348930841u, 1078472138u, 358457347u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 26, 1071069297u, 2192461366u, 1099527247u, 3184735642u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 27, 1052861772u, 331696577u, 3189610016u, 793242270u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 28, 3252528934u, 2322696981u, 1083791358u, 3020766674u, 3252528934u, 2323644416u, 0, FLOOR_TOLERANCE, 0},
+{ 29, 1044902177u, 252085215u, 3214426435u, 4139068910u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 30, 3222505725u, 105589263u, 1056316170u, 261630827u, 3222536192u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 31, 1107213408u, 428765703u, 3251828686u, 2009972239u, 1107213408u, 427819008u, 0, FLOOR_TOLERANCE, 0},
+{ 32, 1098568019u, 3517376586u, 3240257920u, 3304487302u, 1098568019u, 3489660928u, 0, FLOOR_TOLERANCE, 0},
+{ 33, 3233537912u, 237004814u, 3237899261u, 3364008659u, 3233538048u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 34, 3195247552u, 472004928u, 3226869477u, 1186387580u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 35, 1054226850u, 4085763910u, 1106394906u, 2684738273u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 36, 1057053639u, 2055490142u, 3231581370u, 3879040079u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 37, 3188976647u, 3725731239u, 1061652681u, 591292963u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 38, 3225014981u, 1147041027u, 3215417793u, 624695933u, 3225026560u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 39, 3206052774u, 705725219u, 3238067573u, 1116238321u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 40, 3207367088u, 7287411u, 1045917232u, 116067742u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 41, 3240055222u, 3604989074u, 1066381836u, 545298780u, 3240055224u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 42, 3219080936u, 1681476121u, 1060345752u, 3553822398u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 43, 1102831658u, 3410480388u, 1052460275u, 1660607230u, 1102831658u, 3405774848u, 0, FLOOR_TOLERANCE, 0},
+{ 44, 1089216869u, 1494984673u, 3196647153u, 287894723u, 1089216864u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 45, 1054885127u, 644548665u, 1081948134u, 2442134629u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 46, 1087554095u, 2312530895u, 3221584595u, 3379665576u, 1087554048u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 47, 1096085375u, 3018463866u, 1086226574u, 404012923u, 1096085375u, 2147483648u, 0, FLOOR_TOLERANCE, 0},
+{ 48, 1064733299u, 1710279345u, 3251401196u, 3528946000u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 49, 1061536351u, 2164450219u, 1083520023u, 3312018966u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 50, 1057248676u, 2648986431u, 1050330591u, 1474376550u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 51, 3194422028u, 1839068700u, 1077406406u, 3013052171u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 52, 1046493630u, 772102380u, 3220729740u, 4219039958u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 53, 3229472221u, 3058618779u, 1046304788u, 3338676024u, 3229474816u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 54, 1051172137u, 506286854u, 1094907481u, 2217000199u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 55, 1082428310u, 1147428263u, 1065432625u, 3034786717u, 1082427392u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 56, 1082016752u, 2844125311u, 1082985198u, 2561492677u, 1082015744u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 57, 3211536916u, 704542600u, 3222902057u, 2762779203u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 58, 3199680614u, 184131949u, 3249723525u, 1667366082u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 59, 3223609598u, 3904224140u, 1067056698u, 2942159914u, 3223715840u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 60, 1100636863u, 426114282u, 3209056785u, 1083606355u, 1100636863u, 402653184u, 0, FLOOR_TOLERANCE, 0},
+{ 61, 1106165945u, 3774123863u, 1106787580u, 2722107965u, 1106165945u, 3772776448u, 0, FLOOR_TOLERANCE, 0},
+{ 62, 1088005092u, 1377734762u, 1104232051u, 2377063483u, 1088005056u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 63, 1069380559u, 1029739074u, 1105467109u, 3062201018u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 64, 3234741597u, 773857656u, 3214251949u, 335833884u, 3234741632u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 65, 3203224610u, 1473865960u, 1103073830u, 4000427507u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 66, 1103185231u, 4242092620u, 1067009473u, 14539161u, 1103185231u, 4236247040u, 0, FLOOR_TOLERANCE, 0},
+{ 67, 3192516074u, 1732245037u, 1101371955u, 1533536108u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 68, 3249153995u, 1833841275u, 1099430098u, 4144145552u, 3249153995u, 1845493760u, 0, FLOOR_TOLERANCE, 0},
+{ 69, 3244270463u, 935007012u, 3188865420u, 604442938u, 3244270463u, 1073741824u, 0, FLOOR_TOLERANCE, 0},
+{ 70, 3206903253u, 2211464602u, 1046255144u, 1635910526u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 71, 1077871417u, 2549219008u, 3231633258u, 3733639385u, 1077870592u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 72, 1082095089u, 1819374372u, 3202219056u, 2617077637u, 1082093568u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 73, 1094345280u, 546465680u, 1048653554u, 532401530u, 1094345280u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 74, 1044571091u, 2759019783u, 3221570188u, 3554409630u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 75, 3212931282u, 2527221960u, 1099107978u, 2696971136u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 76, 1097158000u, 173134582u, 1087299442u, 2877794600u, 1097158000u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 77, 1086400474u, 547642046u, 3197285510u, 3521286127u, 1086400384u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 78, 1074860702u, 1231582831u, 1090971734u, 1653446832u, 1074790400u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 79, 1061342535u, 3762182190u, 3252967851u, 2615360375u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 80, 3200834423u, 2588067350u, 3206610957u, 3551059728u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 81, 3206978856u, 845263327u, 1073415902u, 1749010288u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 82, 3205576370u, 3092685191u, 3190678390u, 2872219490u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 83, 3218315055u, 4107255722u, 3205337291u, 3069068345u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 84, 3243990857u, 2294867524u, 3216653996u, 2860384670u, 3243990857u, 3221225472u, 0, FLOOR_TOLERANCE, 0},
+{ 85, 3193326350u, 2265437201u, 3240198679u, 1234948614u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 86, 3216359929u, 1186945904u, 3251167793u, 1896750851u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 87, 1081575478u, 3686084548u, 1079286273u, 3309277689u, 1081573376u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 88, 3223476240u, 3006860614u, 3231412671u, 2504194724u, 3223584768u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 89, 3236149260u, 1948717780u, 1048317852u, 3791803982u, 3236149280u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 90, 1064345015u, 4272034420u, 3192982124u, 1526175922u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 91, 3245817826u, 4108948538u, 1104691287u, 640541190u, 3245817827u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 92, 3207257417u, 3259274853u, 1082507103u, 3677038020u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 93, 1083132498u, 3781708548u, 1096584871u, 1207386447u, 1083131904u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 94, 3188695272u, 3011191657u, 1103798670u, 1096124830u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 95, 1063235023u, 2540404725u, 3240157452u, 4122845725u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 96, 1083643710u, 311336721u, 3214382367u, 4212533768u, 1083642880u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 97, 1051139427u, 1769686293u, 3240200923u, 3538602249u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 98, 1078227549u, 508056696u, 1103793878u, 776520138u, 1078198272u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 99, 1102910577u, 4064962760u, 1077424413u, 819766631u, 1102910577u, 4060086272u, 0, FLOOR_TOLERANCE, 0},
+{ 100, 1074178362u, 2112385259u, 3227593179u, 1187058516u, 1073741824u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 101, 1082295059u, 2514398118u, 1076579751u, 870169764u, 1082294272u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 102, 3246851392u, 1190259653u, 1069112254u, 3417249840u, 3246851392u, 1207959552u, 0, FLOOR_TOLERANCE, 0},
+{ 103, 3193663083u, 3467757357u, 3215075200u, 2168175352u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 104, 3239643135u, 1508888184u, 1060430241u, 3524949092u, 3239643136u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 105, 3197412883u, 166402802u, 3237198975u, 3572369260u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 106, 1081866822u, 2441536203u, 3202753937u, 3658194573u, 1081864192u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 107, 1062392908u, 2479742828u, 1062342831u, 4214154303u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 108, 1082396794u, 426896765u, 1066474375u, 2201754442u, 1082396672u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 109, 3195629021u, 2055773734u, 3239267288u, 291396537u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 110, 3236968033u, 874125203u, 3210508124u, 4091098764u, 3236968048u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 111, 1065716026u, 120488169u, 3241241441u, 1985269424u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 112, 3206539410u, 2243036871u, 3243941101u, 740033495u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 113, 3209424906u, 1176656356u, 1074261978u, 3588756231u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 114, 3252816791u, 3037249392u, 1061635587u, 1173102190u, 3252816791u, 3038773248u, 0, FLOOR_TOLERANCE, 0},
+{ 115, 3237209581u, 2882725208u, 1071440059u, 69225090u, 3237209584u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 116, 3212663474u, 272319256u, 1072073912u, 2493997123u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 117, 1057720186u, 188610379u, 3232757923u, 2209647371u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 118, 3236758517u, 1990439193u, 1078073146u, 622849962u, 3236758528u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 119, 1057135741u, 756052458u, 1081649113u, 2247475162u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 120, 1061623064u, 3878055211u, 3222407050u, 2979438623u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 121, 3195290997u, 2676398686u, 1105124431u, 3631096636u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 122, 1065079390u, 1697791764u, 3198136112u, 2299842819u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 123, 1078084768u, 1931502677u, 3215264397u, 3016456382u, 1078067200u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 124, 1072253426u, 343404215u, 1061072607u, 4266232536u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 125, 3241230836u, 4140316002u, 1082896196u, 868256971u, 3241230837u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 126, 1075422810u, 1864139509u, 3187675097u, 3084482407u, 1075314688u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 127, 3220191323u, 2427162817u, 3234748208u, 2715105792u, 3221225472u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 128, 1064600512u, 3943389284u, 1046724025u, 3626825684u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 129, 1045423002u, 967350972u, 1093012318u, 448002663u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 130, 3251845859u, 105058217u, 1069733884u, 171786224u, 3251845859u, 109051904u, 0, FLOOR_TOLERANCE, 0},
+{ 131, 3189614508u, 2863482262u, 3204997271u, 877784425u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 132, 3202629313u, 2801782962u, 3213604117u, 762347195u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 133, 3233486727u, 2317950339u, 3246333414u, 2135700283u, 3233486848u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 134, 1056516397u, 4171919805u, 1082858682u, 2180920863u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 135, 3220149084u, 1918836931u, 1083603224u, 3137821660u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 136, 1103902874u, 3456203663u, 3235600523u, 2335688936u, 1103902874u, 3456106496u, 0, FLOOR_TOLERANCE, 0},
+{ 137, 1042279322u, 4170235262u, 1051824459u, 521583737u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 138, 1081348303u, 1296623194u, 3250673860u, 2442872540u, 1081348096u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 139, 1061684277u, 289979405u, 1049514449u, 3865737145u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 140, 1075298944u, 3699090239u, 1054539840u, 3259249360u, 1075052544u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 141, 1096418100u, 1619819023u, 1045993352u, 1022642459u, 1096418100u, 1073741824u, 0, FLOOR_TOLERANCE, 0},
+{ 142, 1081433004u, 19455098u, 3229182089u, 2096003654u, 1081430016u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 143, 1076297936u, 3803689997u, 1071630912u, 2263729518u, 1076232192u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 144, 1101357261u, 2816837387u, 1063422305u, 2597606398u, 1101357261u, 2785017856u, 0, FLOOR_TOLERANCE, 0},
+{ 145, 1069100169u, 3680967506u, 1040201163u, 179224723u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 146, 3188629767u, 978126928u, 1101553990u, 4047893399u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 147, 3222322045u, 4059818629u, 1042678728u, 3640293589u, 3222536192u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 148, 3248464040u, 3383497159u, 1070002807u, 1527313008u, 3248464040u, 3422552064u, 0, FLOOR_TOLERANCE, 0},
+{ 149, 3202707679u, 2599946514u, 1104170406u, 2738675352u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 150, 1105232623u, 3616571377u, 1060859316u, 1130603218u, 1105232623u, 3615490048u, 0, FLOOR_TOLERANCE, 0},
+{ 151, 1076028796u, 3859211180u, 1067940450u, 1744531824u, 1075970048u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 152, 1042831340u, 1958025850u, 3236511256u, 2472176453u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 153, 3233107089u, 182132862u, 3250520938u, 3924356991u, 3233107200u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 154, 3230501884u, 35632886u, 3209806504u, 1453402523u, 3230502912u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 155, 1083522102u, 743225214u, 3202890678u, 142917400u, 1083522048u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 156, 1080684976u, 1472665012u, 3203138231u, 256588219u, 1080680448u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 157, 1094982162u, 1062927000u, 1061134072u, 931677439u, 1094982162u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 158, 1058377732u, 2320910576u, 1055663370u, 288059864u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 159, 1078958093u, 1448349062u, 3199478070u, 3454027134u, 1078951936u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 160, 3237458798u, 4215445172u, 3196654963u, 2231888973u, 3237458800u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 161, 3246632231u, 40413554u, 3232578253u, 983832844u, 3246632231u, 134217728u, 0, FLOOR_TOLERANCE, 0},
+{ 162, 3223721534u, 3995725873u, 1050082319u, 777231627u, 3223846912u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 163, 1040986626u, 672789828u, 3253385962u, 2982787335u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 164, 1068390875u, 2075971825u, 1070166500u, 4034633931u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 165, 3210046177u, 1018222907u, 3244621407u, 3090050495u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 166, 1067680885u, 937732557u, 3200798890u, 2557898276u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 167, 1078342316u, 130346162u, 3223590310u, 275568693u, 1078329344u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 168, 1042898869u, 3807416441u, 1075961161u, 3706820266u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 169, 3216099005u, 1710131411u, 1078123323u, 1900790503u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 170, 3238819361u, 3420420033u, 3210844787u, 588423066u, 3238819368u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 171, 1049684114u, 1160162008u, 3246307879u, 4265764460u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 172, 1102543434u, 366653268u, 3188814424u, 466059202u, 1102543434u, 352321536u, 0, FLOOR_TOLERANCE, 0},
+{ 173, 3226627739u, 1325936170u, 3221436876u, 680097612u, 3226632192u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 174, 3240391116u, 1827735934u, 3200554324u, 2875599271u, 3240391118u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 175, 3191030402u, 3117037091u, 3239246636u, 15838845u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 176, 1051974004u, 749718883u, 3223587064u, 1523766569u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 177, 1044833651u, 1966536294u, 3250158026u, 699164258u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 178, 1098048435u, 3759049394u, 1106085272u, 1183789499u, 1098048435u, 3758096384u, 0, FLOOR_TOLERANCE, 0},
+{ 179, 1081201623u, 1970107747u, 1095245453u, 2308233883u, 1081200640u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 180, 1084756444u, 1491017852u, 1041444355u, 1723375725u, 1084755968u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 181, 3216630070u, 1141349287u, 1097465301u, 3403438584u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 182, 3230571908u, 1711085243u, 3250239076u, 1377484108u, 3230572544u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 183, 1098385019u, 2880275004u, 1084039594u, 1611394950u, 1098385019u, 2684354560u, 0, FLOOR_TOLERANCE, 0},
+{ 184, 3234221435u, 2626629370u, 1063771493u, 1499080813u, 3234221440u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 185, 1055231263u, 3936262414u, 1103919063u, 3175668759u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 186, 3207981719u, 1270950554u, 3194616071u, 3680565379u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 187, 3208148223u, 1066985223u, 3221613219u, 4089383168u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 188, 3217058839u, 4017329311u, 3208334452u, 1667591498u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 189, 1088164157u, 3154656624u, 1061894279u, 3886344038u, 1088164096u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 190, 1050652945u, 977586119u, 3209762784u, 953839852u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 191, 1104965247u, 143071571u, 3206165386u, 913097445u, 1104965247u, 142606336u, 0, FLOOR_TOLERANCE, 0},
+{ 192, 3190565456u, 1371169579u, 1057079837u, 2594818628u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 193, 3251793336u, 2259342224u, 3217432469u, 1824221478u, 3251793336u, 2260729856u, 0, FLOOR_TOLERANCE, 0},
+{ 194, 3246834775u, 1576604497u, 1079368611u, 185078728u, 3246834775u, 1610612736u, 0, FLOOR_TOLERANCE, 0},
+{ 195, 3221679427u, 444800035u, 3243343143u, 1734989302u, 3221749760u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 196, 1072748883u, 130452005u, 1041548088u, 2158433515u, 1072693248u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 197, 3234695968u, 1941318385u, 1045807374u, 792193370u, 3234696064u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 198, 3238299666u, 1299392207u, 3212131720u, 3205732280u, 3238299672u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 199, 1098698804u, 3035093505u, 1052187689u, 3287702190u, 1098698804u, 2952790016u, 0, FLOOR_TOLERANCE, 0},
+{ 200, 3246676260u, 2160225215u, 1102624859u, 836655570u, 3246676260u, 2281701376u, 0, FLOOR_TOLERANCE, 0},
+{ 201, 1096723626u, 3360816360u, 3246176356u, 172860634u, 1096723626u, 3221225472u, 0, FLOOR_TOLERANCE, 0},
+{ 202, 1070995788u, 146831910u, 1051558014u, 2340722078u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 203, 3230416351u, 1603798153u, 3207725532u, 1099413093u, 3230416896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 204, 3246678378u, 2429340443u, 3190303581u, 3223770005u, 3246678378u, 2550136832u, 0, FLOOR_TOLERANCE, 0},
+{ 205, 1075882959u, 955542166u, 3230415151u, 275583938u, 1075838976u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 206, 1092971882u, 513397822u, 1090646554u, 2089321329u, 1092971882u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 207, 3193169876u, 2782073372u, 1046063872u, 4023829068u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 208, 1098564822u, 3242223094u, 3194111199u, 4264674108u, 1098564822u, 3221225472u, 0, FLOOR_TOLERANCE, 0},
+{ 209, 3238510821u, 3506346169u, 1047020885u, 1742757458u, 3238510824u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 210, 3192664477u, 1265459564u, 3193450280u, 3650514880u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 211, 1081755890u, 1525260440u, 3235452527u, 2612331392u, 1081753600u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 212, 3248668920u, 1263613754u, 3219096387u, 635677201u, 3248668920u, 1275068416u, 0, FLOOR_TOLERANCE, 0},
+{ 213, 3206272087u, 4140947288u, 3200792376u, 2013265346u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 214, 3249974392u, 1912759945u, 3237045253u, 1351396825u, 3249974392u, 1929379840u, 0, FLOOR_TOLERANCE, 0},
+{ 215, 3248205162u, 1001433078u, 3206926643u, 2741676659u, 3248205162u, 1006632960u, 0, FLOOR_TOLERANCE, 0},
+{ 216, 1080923606u, 1088945233u, 1085095743u, 3986114865u, 1080918016u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 217, 3215734057u, 831239754u, 1099828675u, 3071308141u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 218, 3225834497u, 3473592372u, 1102759382u, 1309576357u, 3225845760u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 219, 3251186706u, 2042340367u, 1091945628u, 2062772374u, 3251186706u, 2046820352u, 0, FLOOR_TOLERANCE, 0},
+{ 220, 3194765687u, 1840632537u, 1096533424u, 807510337u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 221, 3231451722u, 144814872u, 3212698915u, 2282965697u, 3231452160u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 222, 1071236430u, 2552499583u, 3229111426u, 1470130815u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 223, 3243093065u, 2858583811u, 1089760910u, 6360994u, 3243093066u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 224, 3198264929u, 1614537194u, 1075198900u, 4088705365u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 225, 3250939070u, 3545570051u, 1065221325u, 1629217700u, 3250939070u, 3548381184u, 0, FLOOR_TOLERANCE, 0},
+{ 226, 1072744324u, 1813392963u, 3235313361u, 3772501596u, 1072693248u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 227, 3196802686u, 2406734491u, 1042055360u, 89226663u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 228, 3195751081u, 1618759139u, 3194723421u, 3888234802u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 229, 1055357248u, 3590035633u, 3212424262u, 2892456615u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 230, 3189943060u, 2431246964u, 3241512456u, 183850734u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 231, 1089501101u, 3088319870u, 3211544311u, 862225364u, 1089501088u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 232, 3235294664u, 3495352775u, 1058576726u, 596957268u, 3235294720u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 233, 1046553348u, 1839214511u, 3205004060u, 1923240983u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 234, 1058073864u, 739619702u, 3223356436u, 2689885273u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 235, 3200324971u, 2143376228u, 1098306332u, 3760236188u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 236, 1074621795u, 671680995u, 1091262633u, 2315535361u, 1074266112u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 237, 3214165989u, 2493598049u, 3194927008u, 1689107592u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 238, 3189989959u, 1578976988u, 1066368383u, 2117279163u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 239, 3222988111u, 3425290087u, 1098487295u, 1263412017u, 3223060480u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 240, 3208432764u, 3635396812u, 1070999426u, 3965655689u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 241, 1060196346u, 2183973116u, 1101098363u, 1118613350u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 242, 3221946089u, 199516350u, 1078368488u, 164621458u, 3222274048u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 243, 3187706018u, 3570940805u, 3230316437u, 3596080877u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 244, 3208209565u, 980880313u, 1079833442u, 884465057u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 245, 1099977124u, 2558179220u, 1052873711u, 1233598120u, 1099977124u, 2550136832u, 0, FLOOR_TOLERANCE, 0},
+{ 246, 1047115221u, 1909994277u, 1085015978u, 2991527452u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 247, 1060855260u, 1680290941u, 1074309900u, 2943870846u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 248, 1059496132u, 1451927357u, 3228615456u, 1502585517u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 249, 3236211951u, 751136990u, 3230392165u, 3493275472u, 3236211968u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 250, 1098365967u, 1209623292u, 3238056647u, 979495322u, 1098365967u, 1073741824u, 0, FLOOR_TOLERANCE, 0},
+{ 251, 3250424296u, 1717672108u, 1048120593u, 531240316u, 3250424296u, 1728053248u, 0, FLOOR_TOLERANCE, 0},
+{ 252, 1054174923u, 3548721654u, 1086112947u, 3391817224u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 253, 1077836851u, 2758195125u, 1100880260u, 2028440924u, 1077805056u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 254, 1084223893u, 2750123373u, 3232200256u, 1086294931u, 1084223488u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 255, 1043958672u, 2986160931u, 1076097908u, 2540046258u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 256, 3235476602u, 451471221u, 1064816262u, 4187644495u, 3235476608u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 257, 1099460228u, 2439500162u, 1065280276u, 1979490284u, 1099460228u, 2415919104u, 0, FLOOR_TOLERANCE, 0},
+{ 258, 1040415832u, 2283342035u, 1078398157u, 1345997553u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 259, 3213249348u, 179066662u, 1103272172u, 1217337578u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 260, 3211562377u, 3779303391u, 3210023352u, 3115946280u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 261, 3192989874u, 286247089u, 1085153597u, 713645369u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 262, 1093670500u, 1468283899u, 1042831668u, 2022736418u, 1093670500u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 263, 1083139105u, 3305564080u, 1065483445u, 482392433u, 1083138048u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 264, 3201695807u, 2256346551u, 3222430705u, 2071674991u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 265, 3204024695u, 2295269094u, 1084451053u, 2773103941u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 266, 1078173946u, 1482721827u, 1092243422u, 3125409590u, 1078165504u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 267, 3221065973u, 1381740563u, 1071545057u, 2918235653u, 3221225472u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 268, 3238715972u, 1105857967u, 3241990046u, 2703723225u, 3238715976u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 269, 1043015571u, 174689677u, 1079333374u, 3947057014u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 270, 1090461859u, 2023082423u, 3242081486u, 1169047927u, 1090461856u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 271, 1064525899u, 3742487766u, 1043425732u, 194972788u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 272, 3213791827u, 2136071361u, 3211529757u, 993675115u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 273, 3213663381u, 210772141u, 3241441539u, 580731413u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 274, 1093840413u, 1751560711u, 1074522705u, 180987057u, 1093840413u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 275, 1066754591u, 2552236599u, 1088658621u, 2112468655u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 276, 3189290617u, 1578223762u, 3224596567u, 2456166162u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 277, 1058506965u, 2110924310u, 1086207177u, 3161208323u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 278, 3231863394u, 2352173188u, 1079361728u, 4070222179u, 3231863808u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 279, 1101012904u, 2481562701u, 1090937016u, 3809489716u, 1101012904u, 2449473536u, 0, FLOOR_TOLERANCE, 0},
+{ 280, 3197002651u, 330905705u, 1086260896u, 90264431u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 281, 1040729961u, 4162008079u, 3194387916u, 759522153u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 282, 1081015037u, 1839697482u, 3216442625u, 2211508949u, 1081008128u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 283, 3249807211u, 3736863454u, 1063475914u, 3150741666u, 3249807211u, 3741319168u, 0, FLOOR_TOLERANCE, 0},
+{ 284, 1060785883u, 4200269406u, 3236646101u, 1061812176u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 285, 1080217979u, 106027290u, 3234978297u, 2245237549u, 1080213504u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 286, 3246984334u, 2132131375u, 3250483427u, 3449276437u, 3246984334u, 2147483648u, 0, FLOOR_TOLERANCE, 0},
+{ 287, 1089388778u, 2334440944u, 1105423490u, 4004336184u, 1089388768u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 288, 3218772704u, 4090088208u, 1042030013u, 3898658299u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 289, 3207908064u, 2272831437u, 3253082595u, 2639188641u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 290, 1054766684u, 1856594168u, 3189515294u, 4101853676u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 291, 1076012412u, 2211699255u, 3195060344u, 3865018604u, 1075970048u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 292, 3242767010u, 996259334u, 3241496889u, 3782673116u, 3242767010u, 2147483648u, 0, FLOOR_TOLERANCE, 0},
+{ 293, 1099130747u, 3840380763u, 1048674041u, 550040067u, 1099130747u, 3758096384u, 0, FLOOR_TOLERANCE, 0},
+{ 294, 3251419593u, 95874100u, 3237232828u, 2645647822u, 3251419593u, 100663296u, 0, FLOOR_TOLERANCE, 0},
+{ 295, 1043665640u, 3441419500u, 3252367038u, 876710419u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 296, 3238593552u, 2560836004u, 3199616543u, 1180840586u, 3238593560u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 297, 3221602966u, 2218230392u, 3227485787u, 3947214579u, 3221749760u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 298, 1079539654u, 1447312532u, 1081476588u, 780366847u, 1079525376u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 299, 1072569643u, 2842113832u, 3216156731u, 225159029u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 300, 1098117193u, 1601981129u, 3234628869u, 2236538344u, 1098117193u, 1342177280u, 0, FLOOR_TOLERANCE, 0},
+{ 301, 1085173524u, 2194185737u, 3242362684u, 87913366u, 1085173248u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 302, 3199083880u, 1346862963u, 1077836259u, 3604666660u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 303, 3212255979u, 3115209742u, 1099332326u, 1325101950u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 304, 3224546042u, 3889223100u, 1053247613u, 3371396923u, 3224567808u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 305, 3220477868u, 4163120793u, 1075022670u, 1387631215u, 3221225472u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 306, 3205481779u, 1532426189u, 1063168268u, 3397022615u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 307, 3201033321u, 89324166u, 1079206060u, 3429424710u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 308, 3192325102u, 747591401u, 1072238381u, 2803213904u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 309, 1091113780u, 271904221u, 1044258318u, 1858545114u, 1091113776u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 310, 3228068914u, 314958082u, 3249912496u, 2966213175u, 3228073984u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 311, 3197179414u, 3119528953u, 3217179014u, 2908718240u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 312, 3242467576u, 2018361566u, 1100926600u, 3985805054u, 3242467576u, 2147483648u, 0, FLOOR_TOLERANCE, 0},
+{ 313, 1070132580u, 409584884u, 3239758947u, 755795129u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 314, 1075772446u, 1819156379u, 3251342302u, 2982669005u, 1075576832u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 315, 1101563433u, 2080534280u, 3188254060u, 449171797u, 1101563433u, 2080374784u, 0, FLOOR_TOLERANCE, 0},
+{ 316, 1095956900u, 168744837u, 3214950009u, 1322217822u, 1095956900u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 317, 3254226900u, 3250487255u, 1062120700u, 1876195180u, 3254226900u, 3250585600u, 0, FLOOR_TOLERANCE, 0},
+{ 318, 3226343480u, 1336400247u, 1098057903u, 3314079581u, 3226370048u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 319, 3203678820u, 265025555u, 1063854282u, 3779482256u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 320, 1067300501u, 887044257u, 1054789618u, 2732056261u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 321, 1050106742u, 4027115185u, 3191764868u, 2940199511u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 322, 3202500155u, 2875684421u, 3227459837u, 2251967570u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 323, 1063244412u, 284173546u, 3238823679u, 3557800647u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 324, 1101458560u, 3147771266u, 3220110464u, 2933364246u, 1101458560u, 3120562176u, 0, FLOOR_TOLERANCE, 0},
+{ 325, 1064853160u, 3366183281u, 3234870843u, 537442654u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 326, 3244118788u, 2529029548u, 3249882819u, 3781513577u, 3244118788u, 3221225472u, 0, FLOOR_TOLERANCE, 0},
+{ 327, 3213436354u, 1080845539u, 3206760016u, 911778687u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 328, 3191951036u, 469586759u, 1091830022u, 3080528840u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 329, 1080249104u, 2863108169u, 3225605506u, 2508274250u, 1080246272u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 330, 3210826984u, 4080017377u, 3206492941u, 1470284690u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 331, 3207120390u, 3867917386u, 1102054928u, 3504746045u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 332, 1064522279u, 2962134101u, 3244741577u, 3390537350u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 333, 1088201813u, 1702237980u, 1071598971u, 1102587474u, 1088201792u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 334, 3202970118u, 2180218657u, 3211592260u, 1206527853u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 335, 3197084744u, 394130786u, 3242511482u, 2437699868u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 336, 1044237059u, 849581558u, 3252006507u, 2008614943u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 337, 3210140014u, 3128971673u, 3249137531u, 2773583059u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 338, 1085029866u, 590727700u, 3248651761u, 2183878539u, 1085029376u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 339, 1101098629u, 820687580u, 3208143496u, 1402434664u, 1101098629u, 805306368u, 0, FLOOR_TOLERANCE, 0},
+{ 340, 3252290835u, 1873709254u, 3245167989u, 44275991u, 3252290835u, 1874853888u, 0, FLOOR_TOLERANCE, 0},
+{ 341, 3189668753u, 1174874204u, 3208263730u, 2360372288u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 342, 1103854676u, 937573440u, 3208953761u, 211240241u, 1103854676u, 931135488u, 0, FLOOR_TOLERANCE, 0},
+{ 343, 3243548934u, 2469774991u, 1043117070u, 3380071805u, 3243548934u, 3221225472u, 0, FLOOR_TOLERANCE, 0},
+{ 344, 1058121042u, 442507560u, 3254252803u, 3257889649u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 345, 1068850520u, 1854921625u, 1049810168u, 2729627545u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 346, 3254712629u, 4001809575u, 3240128649u, 278261523u, 3254712629u, 4002414592u, 0, FLOOR_TOLERANCE, 0},
+{ 347, 1087224694u, 1793907966u, 3238955714u, 398859249u, 1087224576u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 348, 3200952547u, 2511916952u, 3219195283u, 1697158299u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 349, 1069985548u, 3230931724u, 3243897690u, 3508781585u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 350, 1103847606u, 1674254897u, 1046547577u, 217148561u, 1103847606u, 1669332992u, 0, FLOOR_TOLERANCE, 0},
+{ 351, 3211263954u, 3275604304u, 3194840159u, 2991205850u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 352, 3195249375u, 3509997278u, 3248888030u, 3897986511u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 353, 1047182435u, 2156824613u, 1042295665u, 1239257646u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 354, 3213264085u, 1073153314u, 3250031627u, 2567234990u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 355, 3190593412u, 4261696995u, 3197784432u, 323702024u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 356, 3243690997u, 4075177615u, 3202791065u, 1919006082u, 3243690998u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 357, 3239270013u, 386429966u, 1086504491u, 3698826164u, 3239270016u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 358, 1078327190u, 1681986446u, 3194985869u, 3072950140u, 1078296576u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 359, 3217311933u, 3719038997u, 1055433962u, 3331415058u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 360, 1060749713u, 2420250111u, 3238002206u, 1928661079u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 361, 1081914210u, 3679866727u, 3227386672u, 1273835792u, 1081913344u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 362, 1041622738u, 2682092368u, 3234222284u, 1325425811u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 363, 1056312613u, 4175172697u, 3208346191u, 2130706153u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 364, 1092089624u, 1200784450u, 1083605096u, 1248595607u, 1092089624u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 365, 3213890863u, 1897285171u, 3251296075u, 944966123u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 366, 3241371250u, 2270747330u, 3230692631u, 422503284u, 3241371251u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 367, 1084120037u, 2857564741u, 1075647403u, 3308906709u, 1084119040u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 368, 3203475098u, 1380066948u, 3232612906u, 2613634294u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 369, 1063890856u, 4022784584u, 1060483857u, 3264056381u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 370, 1044637404u, 1778509100u, 3213146285u, 2665833973u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 371, 3216727300u, 1859175955u, 1079949560u, 4258450607u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 372, 1048277388u, 4128020197u, 1076266146u, 4122840980u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 373, 3193183163u, 2454653987u, 3229487005u, 2977478685u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 374, 3253556483u, 1355181872u, 1095308770u, 436846481u, 3253556483u, 1356857344u, 0, FLOOR_TOLERANCE, 0},
+{ 375, 3246605302u, 2592856453u, 3247825559u, 3195234082u, 3246605302u, 2684354560u, 0, FLOOR_TOLERANCE, 0},
+{ 376, 3222118023u, 3554670043u, 1091621009u, 3321236467u, 3222274048u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 377, 1069012833u, 1936670355u, 1095715713u, 2958468553u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 378, 3192291109u, 2960339502u, 1098808013u, 1044068983u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 379, 3196691185u, 4093388677u, 1095478112u, 1735930261u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 380, 1091040302u, 1807398746u, 3195743135u, 4261616162u, 1091040296u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 381, 3209294194u, 3250576797u, 1059002384u, 3043079652u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 382, 1069207109u, 666051428u, 3208765404u, 1912684117u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 383, 1103487420u, 1949030179u, 1096388934u, 896459246u, 1103487420u, 1946157056u, 0, FLOOR_TOLERANCE, 0},
+{ 384, 1054300653u, 622499767u, 1066707637u, 1490260486u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 385, 1106688493u, 1490616165u, 3251242436u, 795675736u, 1106688493u, 1490026496u, 0, FLOOR_TOLERANCE, 0},
+{ 386, 1080943896u, 3662877092u, 3234317146u, 3200513112u, 1080942592u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 387, 1084088786u, 1356101968u, 3236536816u, 3062844611u, 1084088320u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 388, 3219922640u, 2284484846u, 3219498359u, 3240896015u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 389, 3235759689u, 494503287u, 1092811254u, 142673998u, 3235759744u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 390, 3252125916u, 3394882641u, 3225306538u, 364852125u, 3252125916u, 3397386240u, 0, FLOOR_TOLERANCE, 0},
+{ 391, 3225261763u, 193885269u, 1088149839u, 1359805831u, 3225288704u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 392, 3200484782u, 592580907u, 3199560872u, 3086438952u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 393, 1059518664u, 1778008540u, 1049064687u, 73581647u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 394, 3246733598u, 233240285u, 1081923320u, 2710903921u, 3246733598u, 268435456u, 0, FLOOR_TOLERANCE, 0},
+{ 395, 1069513767u, 3719878805u, 1079866720u, 3615458228u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 396, 3221194724u, 3647632375u, 3247225271u, 3839959621u, 3221225472u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 397, 1103401096u, 2232210456u, 3235434773u, 224271737u, 1103401096u, 2231369728u, 0, FLOOR_TOLERANCE, 0},
+{ 398, 3193003684u, 2134662911u, 3190390590u, 4239009051u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 399, 1080526145u, 2305279897u, 1077668039u, 1854523320u, 1080524800u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 400, 3219864259u, 538224650u, 3206153057u, 1379649610u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 401, 3196410507u, 3683897920u, 3244167599u, 3647579469u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 402, 1090280933u, 2694093608u, 1042775347u, 598406111u, 1090280928u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 403, 3211635392u, 872706833u, 1084802480u, 2200602798u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 404, 1042339597u, 904146293u, 1060867322u, 1729685598u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 405, 3195694970u, 1894173462u, 3232800651u, 191960416u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 406, 1091225343u, 3521028551u, 1054522089u, 3287274359u, 1091225336u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 407, 1095386964u, 959640601u, 3201578263u, 4136915018u, 1095386964u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 408, 1064005451u, 1553716379u, 1106027987u, 984725765u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 409, 3238832641u, 2287646644u, 3240329321u, 2276183378u, 3238832648u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 410, 1068209174u, 3940225170u, 3199544434u, 997572161u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 411, 3212768361u, 36116288u, 3206886566u, 4196602670u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 412, 3241695853u, 3550227562u, 3207257983u, 2747744117u, 3241695854u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 413, 1104236126u, 507130047u, 1048359321u, 3229888373u, 1104236126u, 503316480u, 0, FLOOR_TOLERANCE, 0},
+{ 414, 3222996778u, 2210969014u, 1081031001u, 1946786091u, 3223060480u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 415, 3236306990u, 4059150589u, 3189759234u, 1177045799u, 3236307008u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 416, 1093103612u, 2664812822u, 1050343198u, 2034180320u, 1093103612u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 417, 3213779117u, 1175750283u, 3235559706u, 1424491340u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 418, 3213904193u, 1630036121u, 3231972785u, 3195479448u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 419, 1090429875u, 2527029044u, 1046927050u, 4000723255u, 1090429872u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 420, 1085208677u, 3335703647u, 3237349676u, 3869440059u, 1085208576u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 421, 1091433848u, 3888398377u, 3196041693u, 1290567220u, 1091433848u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 422, 1066679070u, 3242451480u, 3248384948u, 707431021u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 423, 1083230509u, 2739665123u, 1060777905u, 1733073225u, 1083230208u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 424, 1078517061u, 1297274853u, 3208848704u, 3341639139u, 1078493184u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 425, 1046570941u, 2228057309u, 1084318902u, 1317851136u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 426, 1088255327u, 270039934u, 3241414679u, 3063626339u, 1088255296u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 427, 3219178350u, 83062251u, 3211262173u, 2659016437u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 428, 1095743886u, 3833539373u, 3206667189u, 1567476111u, 1095743886u, 2147483648u, 0, FLOOR_TOLERANCE, 0},
+{ 429, 3205195072u, 2382776852u, 3249232579u, 1546622468u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 430, 1085536439u, 1714300821u, 1104130938u, 4167591598u, 1085536256u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 431, 1051092760u, 2798720100u, 1086978789u, 449990704u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 432, 3231198415u, 4039516226u, 3244344107u, 4272932619u, 3231199232u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 433, 3222708441u, 1683007544u, 1091105663u, 3805494321u, 3222798336u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 434, 3220852948u, 2072627412u, 1094383324u, 3394151662u, 3221225472u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 435, 3220570024u, 1120106427u, 3223631624u, 3404608264u, 3221225472u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 436, 1097859997u, 559918757u, 3205077053u, 908100198u, 1097859997u, 536870912u, 0, FLOOR_TOLERANCE, 0},
+{ 437, 1042677918u, 2026673913u, 3244833635u, 2844573214u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 438, 3254567259u, 3946837259u, 3234993796u, 3850406820u, 3254567259u, 3946840064u, 0, FLOOR_TOLERANCE, 0},
+{ 439, 1057479809u, 3139330994u, 1046133568u, 1539650690u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 440, 3236705500u, 1554593884u, 3228899878u, 2813752562u, 3236705504u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 441, 1056505004u, 3804703138u, 1072931071u, 2053677923u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 442, 3244864299u, 289355864u, 1078453818u, 2143066338u, 3244864299u, 536870912u, 0, FLOOR_TOLERANCE, 0},
+{ 443, 3203939880u, 2157691971u, 1106629150u, 110806409u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 444, 1082157019u, 3570399481u, 1085637605u, 180265334u, 1082155008u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 445, 3200980182u, 558779875u, 3202046748u, 2338464653u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 446, 1045705464u, 1703969219u, 3229797258u, 1417521063u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 447, 3237782261u, 3917440951u, 1051668894u, 3736066983u, 3237782272u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 448, 1064752080u, 3106613409u, 1066627453u, 2735392257u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 449, 1065665372u, 2229777605u, 1065061963u, 2405869925u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 450, 3239463229u, 3967957902u, 1057416138u, 3459188071u, 3239463232u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 451, 1068639210u, 3699016825u, 3249713090u, 796144848u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 452, 3228816396u, 3285165564u, 3211948811u, 401510871u, 3228819456u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 453, 1094257658u, 634857910u, 3199607513u, 914218057u, 1094257658u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 454, 1083743336u, 2030735578u, 3233855943u, 965677531u, 1083743232u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 455, 1079556815u, 3957229084u, 1051050470u, 3123776651u, 1079541760u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 456, 3221863333u, 162122081u, 3239376395u, 108064594u, 3222274048u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 457, 3237271786u, 869031839u, 3225020876u, 1344301606u, 3237271792u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 458, 3214433474u, 946696117u, 3231825228u, 1700703647u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 459, 1075492875u, 3394168074u, 1076939786u, 1666995668u, 1075314688u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 460, 3208774795u, 2488789804u, 3238508333u, 1506943664u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 461, 1072788663u, 3844072288u, 3202592279u, 2630019853u, 1072693248u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 462, 3219934542u, 1244307192u, 3191297711u, 2540916692u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 463, 3200062692u, 2871645739u, 3239081581u, 1440249115u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 464, 1068350633u, 1231934926u, 3236746788u, 603977748u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 465, 3195449689u, 2386312545u, 1063169277u, 2715234268u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 466, 1087803418u, 915867083u, 1046790892u, 3347417612u, 1087803392u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 467, 1105984188u, 3553288373u, 1065698616u, 2906680663u, 1105984188u, 3552575488u, 0, FLOOR_TOLERANCE, 0},
+{ 468, 1045506226u, 2342364630u, 1051356723u, 4019093203u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 469, 3201169162u, 2911548084u, 1105282515u, 2476735795u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 470, 1050472772u, 1836216409u, 1101062307u, 2519592554u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 471, 1070178161u, 1235369496u, 3222946447u, 668087854u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 472, 3208554596u, 2981820811u, 1059838516u, 2845580478u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 473, 3193931414u, 1565550570u, 3217165795u, 4162017137u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 474, 3237251378u, 2808968027u, 1055630096u, 1782326814u, 3237251392u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 475, 1053576974u, 1492622658u, 3216653077u, 3972512122u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 476, 3222171679u, 2722693603u, 3227814791u, 3169731970u, 3222274048u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 477, 3217906631u, 899763203u, 3207606001u, 2804747833u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 478, 3230670325u, 3789058912u, 3228095081u, 4135937628u, 3230670848u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 479, 1060199382u, 1682808307u, 3206960335u, 232877759u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 480, 3242091486u, 2851963139u, 3246852961u, 2590862592u, 3242091487u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 481, 1081200406u, 2422232642u, 3234779662u, 290458310u, 1081196544u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 482, 3210671078u, 1082582386u, 1075605675u, 2602133689u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 483, 3239818611u, 1789635787u, 1059414278u, 1048286093u, 3239818612u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 484, 1098330542u, 231339448u, 1055573265u, 504907415u, 1098330542u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 485, 1063211461u, 1153251200u, 3204617090u, 1772013857u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 486, 1099551055u, 1082898276u, 3212089272u, 1449080862u, 1099551055u, 1073741824u, 0, FLOOR_TOLERANCE, 0},
+{ 487, 1086008285u, 3177299045u, 1058862813u, 809400815u, 1086008064u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 488, 3230854550u, 1924429710u, 1056464743u, 3349283177u, 3230855168u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 489, 3245473391u, 42238036u, 1042379500u, 2113559863u, 3245473391u, 268435456u, 0, FLOOR_TOLERANCE, 0},
+{ 490, 1064761243u, 3304403230u, 3217556703u, 58952646u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 491, 3212669530u, 1645486982u, 3224301095u, 3636267471u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 492, 1062762009u, 619402181u, 3235208235u, 557360557u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 493, 3238238394u, 110029735u, 1046937383u, 984375729u, 3238238400u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 494, 3189496738u, 4063688092u, 3203235744u, 1049950343u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 495, 1062350619u, 650996069u, 1054971928u, 3953359826u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 496, 3227055805u, 66926332u, 1090561839u, 1379780888u, 3227058176u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 497, 3233453307u, 2803378256u, 1086057989u, 498534626u, 3233453312u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 498, 1082618553u, 2846400785u, 1047142525u, 1375153550u, 1082617856u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 499, 1044581201u, 2869128958u, 1070972315u, 4246440273u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 500, 1051832506u, 3112381207u, 1044430965u, 3981604561u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 501, 3231254997u, 243303420u, 1093735824u, 1575581926u, 3231255552u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 502, 3239137997u, 3218865041u, 3204803496u, 3840388050u, 3239138000u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 503, 1048415431u, 336846959u, 1052664471u, 3798336786u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 504, 1055954236u, 3639240976u, 1081202165u, 1844741676u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 505, 3211904793u, 717293069u, 3211534283u, 582401011u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 506, 3251962512u, 3766248610u, 3196520332u, 1174437546u, 3251962512u, 3766484992u, 0, FLOOR_TOLERANCE, 0},
+{ 507, 1083431226u, 756959182u, 3204099341u, 1581804034u, 1083430912u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 508, 3205806444u, 3560686300u, 3220980617u, 4277975772u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 509, 3209906076u, 2598148853u, 3217622194u, 3460421008u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 510, 1066720824u, 136600515u, 3209934920u, 3340653128u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 511, 1096820310u, 1045480938u, 3251354609u, 4133432965u, 1096820310u, 536870912u, 0, FLOOR_TOLERANCE, 0},
+{ 512, 1091599431u, 1630207738u, 3239996829u, 2393354808u, 1091599428u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 513, 3190626018u, 3739770117u, 1059520750u, 3959551225u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 514, 3230730505u, 1498861716u, 1091297147u, 847410798u, 3230731264u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 515, 1073516688u, 983275314u, 3232538664u, 2244973629u, 1072693248u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 516, 1054849265u, 2353103845u, 3235718771u, 2978889966u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 517, 3251357992u, 1546972125u, 3249076079u, 1987349196u, 3251357992u, 1551892480u, 0, FLOOR_TOLERANCE, 0},
+{ 518, 3238219513u, 2769161072u, 1075207126u, 292616282u, 3238219520u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 519, 3199712298u, 36855311u, 1052128202u, 1479039342u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 520, 1083757053u, 2027463605u, 1066023013u, 3369686340u, 1083756544u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 521, 3197852749u, 3808681655u, 1054161346u, 1821773119u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 522, 1040685928u, 3175490326u, 3226879970u, 845687760u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 523, 1042302993u, 3124482451u, 3242748377u, 3259417226u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 524, 1045245695u, 2751606436u, 3236210939u, 3923142740u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 525, 1095694737u, 2016872044u, 3228408064u, 4201274408u, 1095694737u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 526, 3199349254u, 1019916843u, 3219974785u, 1977881787u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 527, 3199478752u, 2060433318u, 1075872515u, 366073725u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 528, 3191180557u, 1098469906u, 1082900695u, 2349346832u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 529, 3209974707u, 3011196295u, 3252479932u, 2459281672u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 530, 3221334323u, 2843222682u, 1089275809u, 298982001u, 3221749760u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 531, 1101737698u, 914741728u, 3203468059u, 2833809843u, 1101737698u, 905969664u, 0, FLOOR_TOLERANCE, 0},
+{ 532, 3236763878u, 1274901962u, 3241535845u, 3759113509u, 3236763904u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 533, 3245916442u, 2134927252u, 3253802671u, 3013731444u, 3245916442u, 2147483648u, 0, FLOOR_TOLERANCE, 0},
+{ 534, 1099201341u, 2230655177u, 3254510616u, 1249674366u, 1099201341u, 2147483648u, 0, FLOOR_TOLERANCE, 0},
+{ 535, 1062971253u, 717357389u, 1083533731u, 3746683362u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 536, 3213773114u, 834976849u, 3217357661u, 2465861779u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 537, 1045656117u, 1385714428u, 1053358395u, 3007113740u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 538, 1050527919u, 599268545u, 3201368210u, 2309854744u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 539, 1069954454u, 2840234388u, 3232496515u, 333365983u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 540, 1045922781u, 3136078996u, 3194520860u, 2650572904u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 541, 3233687691u, 2405805086u, 3251640319u, 324233833u, 3233687808u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 542, 1106699146u, 2589598340u, 3254677807u, 952438812u, 1106699146u, 2588934144u, 0, FLOOR_TOLERANCE, 0},
+{ 543, 3189114773u, 1922837702u, 3216892718u, 3535907549u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 544, 3243615868u, 261447440u, 3209805849u, 1150571079u, 3243615868u, 1073741824u, 0, FLOOR_TOLERANCE, 0},
+{ 545, 1095805232u, 4026487528u, 1073152064u, 27340691u, 1095805232u, 3221225472u, 0, FLOOR_TOLERANCE, 0},
+{ 546, 3229123692u, 338765118u, 1086225786u, 3207238249u, 3229126656u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 547, 3196182703u, 1085283176u, 3187775111u, 1601194210u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 548, 1091520173u, 3031712790u, 3252307859u, 170666844u, 1091520168u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 549, 3218862231u, 3148395674u, 1041913758u, 3306391490u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 550, 3201277070u, 2205233857u, 3208100078u, 3993195511u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 551, 1067699608u, 4282766727u, 1072820377u, 1874778218u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 552, 3210833092u, 2920860798u, 3218070226u, 3104066154u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 553, 3204950351u, 969991373u, 3250596895u, 1734386152u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 554, 3238915818u, 1218740205u, 3239802737u, 2610078504u, 3238915824u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 555, 3206031242u, 1485218325u, 3220870240u, 3591664613u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 556, 3202074143u, 690157417u, 3190850619u, 4192347699u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 557, 1096053810u, 4009839784u, 1079670252u, 394167192u, 1096053810u, 3221225472u, 0, FLOOR_TOLERANCE, 0},
+{ 558, 3234559237u, 961532417u, 1092588071u, 2923790239u, 3234559360u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 559, 3203879091u, 4174125604u, 1050682630u, 2169701868u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 560, 3243092475u, 4146748230u, 1087373950u, 2481478351u, 3243092476u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 561, 1076987866u, 3984715440u, 1050421618u, 2446142566u, 1076953088u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 562, 1084172406u, 936290150u, 1100614426u, 3625806370u, 1084172288u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 563, 1099787952u, 1866615265u, 3215651428u, 2337013350u, 1099787952u, 1744830464u, 0, FLOOR_TOLERANCE, 0},
+{ 564, 3253198302u, 712227971u, 1106004723u, 973148499u, 3253198302u, 713031680u, 0, FLOOR_TOLERANCE, 0},
+{ 565, 3230088199u, 3409813738u, 3244817008u, 1933503498u, 3230089216u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 566, 1079943733u, 3180389060u, 3228735703u, 83422217u, 1079934976u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 567, 1077878724u, 556972671u, 3204582372u, 841555801u, 1077870592u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 568, 1070767721u, 4189151332u, 1080874032u, 706326922u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 569, 1096151307u, 198291836u, 1057281892u, 2188836928u, 1096151307u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 570, 1078091995u, 1219449298u, 3228734687u, 3504562743u, 1078067200u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 571, 3204570464u, 1776099219u, 1094316777u, 4188083896u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 572, 3193845708u, 2614400266u, 1073750227u, 3003203347u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 573, 3213982678u, 2959351406u, 1105603716u, 311851587u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 574, 1084544434u, 865443613u, 1097532516u, 3622237781u, 1084544000u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 575, 3231786666u, 447506102u, 3195759295u, 3603669725u, 3231787008u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 576, 1097890173u, 3934398273u, 1040996422u, 2968621268u, 1097890173u, 3758096384u, 0, FLOOR_TOLERANCE, 0},
+{ 577, 3196739825u, 784208771u, 1088764788u, 2182296421u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 578, 3248332291u, 1527590526u, 3206961556u, 2823164069u, 3248332291u, 1543503872u, 0, FLOOR_TOLERANCE, 0},
+{ 579, 3236644131u, 3876699591u, 3207481130u, 4028148535u, 3236644160u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 580, 1083576186u, 2164249756u, 1059857743u, 1785169952u, 1083575296u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 581, 1091804009u, 2079273665u, 1080303860u, 625760474u, 1091804008u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 582, 3226486108u, 3636214836u, 1068367620u, 2932621925u, 3226501120u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 583, 1043995372u, 4274131512u, 1047707755u, 92550763u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 584, 3198822121u, 2648933384u, 1084603503u, 3534304873u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 585, 1064563235u, 3216750767u, 3191088629u, 547482628u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 586, 1061084774u, 1420360746u, 1080063101u, 1690029499u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 587, 3229855364u, 1908572179u, 1080112083u, 1228319033u, 3229855744u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 588, 1048158178u, 500312015u, 3212368508u, 3864619086u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 589, 3221335610u, 4211343447u, 1087492676u, 4272583781u, 3221749760u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 590, 1099392394u, 2382118000u, 1042665328u, 567154882u, 1099392394u, 2281701376u, 0, FLOOR_TOLERANCE, 0},
+{ 591, 1058013442u, 1435344339u, 3216303171u, 2275988178u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 592, 3214538619u, 3403659753u, 3218043030u, 1926480488u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 593, 1076840383u, 1198845185u, 3225556149u, 1130089684u, 1076756480u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 594, 3222663042u, 2183928090u, 1048403956u, 963834821u, 3222798336u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 595, 1101672960u, 2120625396u, 1041006976u, 2137548527u, 1101672960u, 2113929216u, 0, FLOOR_TOLERANCE, 0},
+{ 596, 1099230238u, 586700956u, 1059670521u, 303891699u, 1099230238u, 536870912u, 0, FLOOR_TOLERANCE, 0},
+{ 597, 3218994498u, 2509132460u, 1102827530u, 2205707903u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 598, 3204860597u, 1229308263u, 3209170414u, 4206576047u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 599, 3224076289u, 4078010749u, 3199236456u, 733478972u, 3224109056u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 600, 3197712584u, 4277541051u, 3199806921u, 397102023u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 601, 3195975013u, 900999594u, 3234720188u, 2530214248u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 602, 1076543548u, 4000609478u, 1096577064u, 4148592328u, 1076494336u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 603, 1048668084u, 2154187873u, 3224392607u, 3957250362u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 604, 3223413488u, 2867079200u, 1101870326u, 921212001u, 3223453696u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 605, 3233221890u, 674547716u, 1063216239u, 3929755226u, 3233222144u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 606, 3240415851u, 3158182449u, 1043794244u, 3259056345u, 3240415852u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 607, 3236776656u, 3002823940u, 1059511739u, 2832435794u, 3236776672u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 608, 3217304822u, 2196511929u, 1049973941u, 3672092877u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 609, 1050438056u, 3655292191u, 1086438127u, 3567072906u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 610, 3243186948u, 1617573614u, 3201863123u, 3090723732u, 3243186948u, 2147483648u, 0, FLOOR_TOLERANCE, 0},
+{ 611, 3233201380u, 679893506u, 3211547753u, 824081024u, 3233201408u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 612, 1089530525u, 2285242807u, 1084999409u, 2221731406u, 1089530512u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 613, 3206733664u, 1935990727u, 1088822246u, 1058156518u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 614, 1102839166u, 521023584u, 1059186903u, 4245163857u, 1102839166u, 520093696u, 0, FLOOR_TOLERANCE, 0},
+{ 615, 1103891140u, 2312887617u, 3191771354u, 1885370807u, 1103891140u, 2306867200u, 0, FLOOR_TOLERANCE, 0},
+{ 616, 3252953815u, 1796441468u, 1100030327u, 2772711004u, 3252953815u, 1797259264u, 0, FLOOR_TOLERANCE, 0},
+{ 617, 3204276820u, 2095685003u, 1077984448u, 2100773742u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 618, 3192954620u, 2892538035u, 1042396334u, 4162200338u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 619, 3242725751u, 2177698116u, 3227557177u, 150832500u, 3242725752u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 620, 3191562216u, 607966734u, 3236250630u, 4164600559u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 621, 3216389812u, 2830122967u, 1046096700u, 3713346883u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 622, 3237197963u, 2314640506u, 3203696416u, 3276228872u, 3237197968u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 623, 3212912307u, 469331883u, 3249037349u, 2999233437u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 624, 1097382011u, 560886625u, 1091899487u, 748795120u, 1097382011u, 536870912u, 0, FLOOR_TOLERANCE, 0},
+{ 625, 1049886858u, 2958421324u, 1092569414u, 3235243477u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 626, 3193026497u, 3221475559u, 1043038304u, 915608434u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 627, 1071197530u, 3007808652u, 3216682290u, 2531019474u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 628, 3242028999u, 1767658578u, 3237045269u, 2313128318u, 3242029000u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 629, 3210617892u, 1926845182u, 1066835624u, 1783256828u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 630, 1040575629u, 90378038u, 1057168870u, 164358218u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 631, 1106859172u, 1610524680u, 1085283851u, 2903496007u, 1106859172u, 1609564160u, 0, FLOOR_TOLERANCE, 0},
+{ 632, 1078635586u, 4274321404u, 3202913591u, 720121831u, 1078624256u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 633, 1051205256u, 2034778236u, 1071133763u, 1413236391u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 634, 1051063028u, 1489112261u, 1076691395u, 348210906u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 635, 3206743917u, 2797651324u, 3224410527u, 2374818327u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 636, 1088287256u, 1823161666u, 3197810695u, 3119680047u, 1088287232u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 637, 1065927336u, 3420950657u, 1087084743u, 2136638961u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 638, 1069902224u, 3554566429u, 1062907717u, 2736702589u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 639, 3244888667u, 2928437580u, 3187765027u, 1393427873u, 3244888667u, 3221225472u, 0, FLOOR_TOLERANCE, 0},
+{ 640, 3209301561u, 189447067u, 1051643315u, 828663513u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 641, 1052313869u, 2852350928u, 1045683757u, 673354280u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 642, 1043946301u, 3589563265u, 3248741629u, 812657927u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 643, 3190610826u, 1766416701u, 1100392103u, 2185373290u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 644, 3220275389u, 3763582673u, 3191965790u, 388374829u, 3221225472u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 645, 1079635136u, 1187403069u, 1075300235u, 336640304u, 1079623680u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 646, 1103926251u, 1718795752u, 3243118752u, 683369237u, 1103926251u, 1711276032u, 0, FLOOR_TOLERANCE, 0},
+{ 647, 3210792097u, 1863545307u, 1069449477u, 3418627399u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 648, 1069601294u, 3295607249u, 1068878592u, 1633297809u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 649, 1058947127u, 2585980994u, 3236670483u, 1286750688u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 650, 1046157033u, 15816845u, 3233249283u, 2491924775u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 651, 1042413021u, 1051983351u, 1049180786u, 1474421917u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 652, 3201249525u, 2003816032u, 1086050104u, 668090487u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 653, 1052556037u, 3671484625u, 1067020039u, 430024694u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 654, 1067397110u, 3991830201u, 3207808714u, 1021245839u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 655, 1064194391u, 4255801807u, 3207681716u, 1926756877u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 656, 1052140785u, 4167786896u, 1077097744u, 1775517981u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 657, 1085601978u, 3187518564u, 1082437406u, 944672491u, 1085601792u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 658, 1049366282u, 953085192u, 3227310828u, 3459155777u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 659, 1069502506u, 1908555460u, 1073640207u, 260441967u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 660, 1067219606u, 250762477u, 1072582645u, 2886742039u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 661, 3250906006u, 786180031u, 3197734769u, 2788918312u, 3250906006u, 788529152u, 0, FLOOR_TOLERANCE, 0},
+{ 662, 3234511827u, 2055912467u, 3244244909u, 1394142937u, 3234511872u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 663, 1069612985u, 91984146u, 3222252812u, 4126276047u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 664, 1081340139u, 3942715706u, 3239316352u, 410676547u, 1081339904u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 665, 3198557846u, 86296211u, 1085850694u, 649202596u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 666, 3245366392u, 3069064472u, 3237358008u, 23209276u, 3245366392u, 3221225472u, 0, FLOOR_TOLERANCE, 0},
+{ 667, 1081235288u, 1867297860u, 1072956607u, 2513414118u, 1081233408u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 668, 3250533347u, 3171788768u, 3235208783u, 162138697u, 3250533347u, 3187671040u, 0, FLOOR_TOLERANCE, 0},
+{ 669, 1081728455u, 1245110700u, 1081653954u, 2584994077u, 1081724928u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 670, 3245510120u, 3347226587u, 1058962932u, 2291943376u, 3245510120u, 3489660928u, 0, FLOOR_TOLERANCE, 0},
+{ 671, 1058899062u, 966940828u, 1060726420u, 2798041096u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 672, 1072793759u, 2487340727u, 3223786370u, 4105954991u, 1072693248u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 673, 3248116497u, 1671039260u, 1086395032u, 3745833360u, 3248116497u, 1677721600u, 0, FLOOR_TOLERANCE, 0},
+{ 674, 1057078797u, 651714217u, 1047070645u, 2130549237u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 675, 3207115731u, 1423000172u, 3247822717u, 1551488170u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 676, 3201597307u, 921077236u, 3213332351u, 1431049019u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 677, 1067510295u, 655715547u, 3190985373u, 1527556471u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 678, 3227654979u, 4110878657u, 3251297180u, 879739345u, 3227656192u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 679, 1085804762u, 2623955764u, 1093699897u, 1216444475u, 1085804544u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 680, 1091905603u, 107442539u, 3239767031u, 1149813329u, 1091905600u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 681, 3233445240u, 1761361082u, 3226030205u, 1121849716u, 3233445376u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 682, 3240087115u, 2534144722u, 1044223733u, 3512285706u, 3240087116u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 683, 3211846077u, 4073670723u, 1050729852u, 3034818849u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 684, 1101984574u, 1421423503u, 1060278048u, 1397153092u, 1101984574u, 1409286144u, 0, FLOOR_TOLERANCE, 0},
+{ 685, 3217421829u, 1649206019u, 1104525577u, 1267104290u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 686, 3189302097u, 3775270392u, 1040251850u, 68667319u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 687, 3204330900u, 3099226694u, 3254103006u, 4020102648u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 688, 3201591712u, 3718441177u, 3215643451u, 4032951536u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 689, 1044131371u, 508048351u, 3210196713u, 1707937896u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 690, 3198611627u, 2784738160u, 1073435430u, 1109346010u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 691, 3225725290u, 3331916473u, 3238794568u, 2707019594u, 3225747456u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 692, 1093182670u, 3093165197u, 1072894805u, 2853215019u, 1093182670u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 693, 3216582139u, 2135797997u, 1048399559u, 2941926126u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 694, 1048430980u, 2083412145u, 3249335391u, 507212448u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 695, 1075363751u, 4270176401u, 3246546709u, 3288753319u, 1075314688u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 696, 3247932863u, 3692175292u, 3197271515u, 3989064196u, 3247932863u, 3758096384u, 0, FLOOR_TOLERANCE, 0},
+{ 697, 3251691738u, 3111924274u, 1066772558u, 59281695u, 3251691738u, 3112173568u, 0, FLOOR_TOLERANCE, 0},
+{ 698, 1067683911u, 2135245466u, 3208804313u, 3846547392u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 699, 1094877811u, 972051266u, 3222814246u, 3539700586u, 1094877811u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 700, 3202965930u, 330951080u, 1079189813u, 583922384u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 701, 1089640092u, 1711944085u, 1104170032u, 643991456u, 1089640080u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 702, 3234429549u, 2072550721u, 3250147641u, 4280263530u, 3234429568u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 703, 3192972706u, 1566376352u, 1067251433u, 72984588u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 704, 1095276569u, 3103043079u, 1045853123u, 410067497u, 1095276569u, 2147483648u, 0, FLOOR_TOLERANCE, 0},
+{ 705, 3216672493u, 1910366299u, 1081770885u, 634683073u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 706, 1081530688u, 2226525875u, 3224149290u, 2126302825u, 1081528320u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 707, 1073150247u, 1383818978u, 3193885723u, 1220372650u, 1072693248u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 708, 1066482943u, 1953339096u, 1077176252u, 1476516558u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 709, 1066092000u, 1306277326u, 1079089150u, 4093716191u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 710, 3233148787u, 51750045u, 3242913901u, 4256866157u, 3233148928u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 711, 3195084967u, 2163853087u, 3232053146u, 2962422808u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 712, 1075516945u, 1618388148u, 3233154824u, 3711953164u, 1075314688u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 713, 3246868002u, 357108214u, 3202294604u, 2306775262u, 3246868002u, 402653184u, 0, FLOOR_TOLERANCE, 0},
+{ 714, 3201904086u, 2571356437u, 3249064063u, 2394851808u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 715, 3230488091u, 4273880094u, 1103698617u, 3578832032u, 3230488576u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 716, 3233426701u, 2091068742u, 3228270226u, 3980489730u, 3233426944u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 717, 3229016752u, 2772307714u, 1051008486u, 32546576u, 3229020160u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 718, 3241229215u, 2143788498u, 3195498043u, 3630119231u, 3241229216u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 719, 3198632935u, 2527385594u, 3240503648u, 3482095012u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 720, 3242168799u, 2690097362u, 1068598730u, 2360266862u, 3242168800u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 721, 1058857869u, 2673272949u, 1082639557u, 522449749u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 722, 1104424147u, 3596379400u, 3242016775u, 2002293002u, 1104424147u, 3594518528u, 0, FLOOR_TOLERANCE, 0},
+{ 723, 1099439656u, 4113224369u, 3222122439u, 2152316893u, 1099439656u, 4026531840u, 0, FLOOR_TOLERANCE, 0},
+{ 724, 3220796716u, 31662602u, 1047721249u, 1747087514u, 3221225472u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 725, 3250463757u, 2489659568u, 1097051253u, 277506957u, 3250463757u, 2499805184u, 0, FLOOR_TOLERANCE, 0},
+{ 726, 3191401834u, 3850162281u, 3213841942u, 438724093u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 727, 1095392535u, 2431814052u, 1075518084u, 2672434118u, 1095392535u, 2147483648u, 0, FLOOR_TOLERANCE, 0},
+{ 728, 3243162735u, 391606792u, 1048184750u, 4168944276u, 3243162735u, 2147483648u, 0, FLOOR_TOLERANCE, 0},
+{ 729, 3247792416u, 457529672u, 3201090276u, 72407935u, 3247792416u, 469762048u, 0, FLOOR_TOLERANCE, 0},
+{ 730, 3218720719u, 3954981400u, 1052053242u, 2411049585u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 731, 1086180091u, 485456950u, 1088415093u, 1655397424u, 1086179840u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 732, 3198234428u, 1551748070u, 3236871640u, 1329701152u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 733, 3224639122u, 3099222537u, 1104984570u, 4293792842u, 3224698880u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 734, 3203949705u, 3603065260u, 3197735968u, 2402359253u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 735, 3198824584u, 3961208159u, 3219057584u, 2340553876u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 736, 1074881909u, 4014841779u, 3197672877u, 3697233334u, 1074790400u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 737, 3213275657u, 1403876392u, 3254028950u, 921363393u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 738, 1107251806u, 1862576361u, 3194031708u, 2476290925u, 1107251806u, 1862270976u, 0, FLOOR_TOLERANCE, 0},
+{ 739, 1049661768u, 1454212851u, 1088378861u, 3400401866u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 740, 1074406809u, 552676385u, 3188635745u, 3778112968u, 1074266112u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 741, 3216409282u, 1199568671u, 3225679997u, 46947405u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 742, 1077685537u, 2596231448u, 3253943728u, 2219151748u, 1077673984u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 743, 1066527035u, 4119719558u, 3222036299u, 1275474618u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 744, 3239908663u, 3347296825u, 1101507910u, 1254014794u, 3239908664u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 745, 1084119992u, 673775040u, 1070743626u, 244126093u, 1084119040u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 746, 3203199850u, 1832066983u, 1051358028u, 3262483417u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 747, 1077559600u, 3962610501u, 3198598777u, 849269178u, 1077542912u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 748, 3235473900u, 2497516122u, 3254374111u, 2821429629u, 3235473920u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 749, 1076236288u, 2805941787u, 3217785843u, 779131141u, 1076232192u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 750, 3226908686u, 723423605u, 1084533420u, 627282213u, 3226910720u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 751, 3215947680u, 4292778869u, 1078101071u, 1676860147u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 752, 1076288502u, 3528118587u, 3194648564u, 2363260897u, 1076232192u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 753, 3192897879u, 1307010018u, 1061248120u, 1468743108u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 754, 3246583139u, 107905661u, 3226089788u, 1943427674u, 3246583139u, 134217728u, 0, FLOOR_TOLERANCE, 0},
+{ 755, 3188230541u, 760006940u, 1054265604u, 1749976597u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 756, 3237773384u, 2787503556u, 1081282610u, 1195841206u, 3237773392u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 757, 3191802156u, 545462045u, 3208381743u, 1981311808u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 758, 1061232136u, 3657978397u, 1104463616u, 3501253426u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 759, 1049883857u, 1804177501u, 3210693633u, 3606766729u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 760, 1076856879u, 1336278526u, 1043741618u, 3165279431u, 1076756480u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 761, 1055471915u, 1599382075u, 1058018527u, 4212580517u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 762, 3207502326u, 3007589929u, 3202026547u, 2792028313u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 763, 3253082770u, 1866066996u, 1060329048u, 3727175322u, 3253082770u, 1866465280u, 0, FLOOR_TOLERANCE, 0},
+{ 764, 3198416643u, 150890940u, 1056025306u, 3082724735u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 765, 1062008939u, 80400395u, 1093584426u, 3478941315u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 766, 3251640614u, 4050954182u, 3219263194u, 2537475930u, 3251640614u, 4051697664u, 0, FLOOR_TOLERANCE, 0},
+{ 767, 1064841871u, 2881752155u, 3212589299u, 2559651278u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 768, 3249016304u, 440309030u, 3214267461u, 3788040806u, 3249016304u, 469762048u, 0, FLOOR_TOLERANCE, 0},
+{ 769, 1100476615u, 918813144u, 3208535698u, 1607035904u, 1100476615u, 872415232u, 0, FLOOR_TOLERANCE, 0},
+{ 770, 1042137451u, 2497054124u, 1089139147u, 2549609010u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 771, 1047037641u, 790219083u, 1054657139u, 2797979479u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 772, 1057781400u, 1149462078u, 1095765205u, 3879963182u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 773, 3202729813u, 2684353926u, 3205212854u, 1732474928u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 774, 1095236965u, 2742237025u, 1051317716u, 3386396147u, 1095236965u, 2147483648u, 0, FLOOR_TOLERANCE, 0},
+{ 775, 1063230986u, 3408320912u, 1103071166u, 4233059513u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 776, 1064863548u, 1077495917u, 1088399968u, 433115118u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 777, 3204547572u, 841366493u, 1051716814u, 4121125128u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 778, 1064632084u, 321857207u, 1089128010u, 1149988239u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 779, 3245542663u, 799866606u, 3197637091u, 3924438208u, 3245542663u, 805306368u, 0, FLOOR_TOLERANCE, 0},
+{ 780, 3191062890u, 2002049816u, 1077053447u, 2240354761u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 781, 3229006283u, 478939968u, 1097035749u, 1066716440u, 3229007872u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 782, 3232473641u, 1653104725u, 1088548129u, 81977716u, 3232474112u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 783, 3196861276u, 3899475018u, 3189694084u, 3330093036u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 784, 1089312583u, 2612450289u, 1079065127u, 603380842u, 1089312576u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 785, 1100636791u, 3962735564u, 1101570429u, 1372490825u, 1100636791u, 3959422976u, 0, FLOOR_TOLERANCE, 0},
+{ 786, 1054806016u, 1479841439u, 1059312257u, 541504905u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 787, 1078662178u, 2626148789u, 1057571099u, 4121656076u, 1078657024u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 788, 1081613389u, 1902560314u, 1043130231u, 3557671562u, 1081610240u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 789, 3193829772u, 41779312u, 1081626342u, 831171823u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 790, 1058131100u, 1393168821u, 1066457405u, 1381616968u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 791, 1072338141u, 3756584649u, 3222267229u, 1423157432u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 792, 3254435674u, 1894912556u, 1042426694u, 155024547u, 3254435674u, 1895825408u, 0, FLOOR_TOLERANCE, 0},
+{ 793, 3195453512u, 35164295u, 3203391785u, 1037041084u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 794, 1084777479u, 3957875950u, 3232195211u, 1590756436u, 1084777472u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 795, 1068844322u, 1447585080u, 1071279485u, 1107922438u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 796, 1046252518u, 981897615u, 1051856116u, 430357614u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 797, 3227524215u, 395145384u, 3219821938u, 50586510u, 3227525120u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 798, 1069775912u, 750827797u, 1082862669u, 230466783u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 799, 1086668819u, 1365083575u, 3204848310u, 1700831722u, 1086668800u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 800, 3218090390u, 344241827u, 1071538935u, 2715566077u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 801, 3247582856u, 4069301823u, 3193208760u, 2949125229u, 3247582856u, 4093640704u, 0, FLOOR_TOLERANCE, 0},
+{ 802, 1103231387u, 3585711710u, 1065801594u, 2302229267u, 1103231387u, 3581935616u, 0, FLOOR_TOLERANCE, 0},
+{ 803, 3194118956u, 709803845u, 1048741487u, 2296910194u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 804, 3193280779u, 744421179u, 1069302001u, 2659232829u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 805, 1092835968u, 1799949903u, 3192522886u, 4212149209u, 1092835968u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 806, 3206108502u, 145234164u, 3250614064u, 912384201u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 807, 3240510664u, 2784620507u, 1102812948u, 3531481022u, 3240510666u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 808, 3251159663u, 383952592u, 3205659905u, 3633194728u, 3251159663u, 385875968u, 0, FLOOR_TOLERANCE, 0},
+{ 809, 3203476252u, 3792395543u, 1070072378u, 3864816376u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 810, 3205316273u, 2115553675u, 1066288499u, 3538377867u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 811, 3252075185u, 1230026762u, 1090719723u, 440819880u, 3252075185u, 1233125376u, 0, FLOOR_TOLERANCE, 0},
+{ 812, 3194595076u, 2991290482u, 1096886719u, 1097971167u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 813, 1090048600u, 1098035020u, 3230900504u, 1479059095u, 1090048592u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 814, 3251056964u, 1719428427u, 3188631907u, 3707377409u, 3251056964u, 1719664640u, 0, FLOOR_TOLERANCE, 0},
+{ 815, 1053236165u, 3748932896u, 1084908557u, 1325384361u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 816, 1084704076u, 3979168763u, 1057455255u, 2454615952u, 1084703744u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 817, 1053106984u, 1449164578u, 1056960316u, 1654931641u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 818, 1071439010u, 2120487381u, 3226298974u, 2364226633u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 819, 1075071428u, 1074268944u, 1065730444u, 280016852u, 1075052544u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 820, 3200308256u, 3315127889u, 3236295594u, 2900924954u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 821, 3196425891u, 2246037502u, 1049691002u, 1496066550u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 822, 3193006859u, 4191285446u, 3217936236u, 2382392789u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 823, 1092833308u, 640099844u, 1042152237u, 2064279383u, 1092833308u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 824, 1079913438u, 3468560824u, 1093251038u, 310958750u, 1079902208u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 825, 1096788400u, 1413568905u, 1100941106u, 1627289946u, 1096788400u, 1073741824u, 0, FLOOR_TOLERANCE, 0},
+{ 826, 3191549550u, 3797143370u, 3195497539u, 3843275034u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 827, 3252077393u, 2806642640u, 3201943068u, 2515980718u, 3252077393u, 2810183680u, 0, FLOOR_TOLERANCE, 0},
+{ 828, 1086877316u, 632580632u, 1078673506u, 3259601317u, 1086877312u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 829, 3200980575u, 3309678799u, 1049337078u, 3056787074u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 830, 3221495289u, 2341164249u, 1080834967u, 2810890005u, 3221749760u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 831, 1067019674u, 932124675u, 1093915797u, 662682630u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 832, 3249230091u, 1367996113u, 3251723684u, 2974064663u, 3249230091u, 1375731712u, 0, FLOOR_TOLERANCE, 0},
+{ 833, 1080230731u, 323437999u, 1090499064u, 901457511u, 1080229888u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 834, 3235778876u, 4184941840u, 3196770014u, 2458988443u, 3235778880u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 835, 1087618284u, 2023065054u, 3211994098u, 2734612965u, 1087618240u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 836, 1064074694u, 3679267365u, 3237728785u, 1699558211u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 837, 1088079010u, 1826799031u, 1078709629u, 3986905229u, 1088078976u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 838, 1052843785u, 351061688u, 3194386466u, 4105857588u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 839, 1054128006u, 1365244058u, 1064457319u, 1452191426u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 840, 1064122385u, 2463030625u, 3215975031u, 3773488326u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 841, 3251276671u, 752664055u, 1065110394u, 1835931663u, 3251276671u, 754974720u, 0, FLOOR_TOLERANCE, 0},
+{ 842, 1088045088u, 3496172149u, 1089617208u, 109068701u, 1088045056u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 843, 3198135087u, 1636966254u, 1086098766u, 2016598298u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 844, 1050931318u, 3551516956u, 1097969102u, 1317953425u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 845, 3229832217u, 2977627788u, 1045339018u, 516058480u, 3229833216u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 846, 3237408578u, 3901731263u, 3189566462u, 32272932u, 3237408592u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 847, 1077281796u, 1956025297u, 3246628529u, 3840733905u, 1077280768u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 848, 1099818036u, 561057891u, 3198494340u, 4271027193u, 1099818036u, 536870912u, 0, FLOOR_TOLERANCE, 0},
+{ 849, 3250929921u, 692989850u, 3242630588u, 2492225971u, 3250929921u, 696254464u, 0, FLOOR_TOLERANCE, 0},
+{ 850, 3205479397u, 3439913962u, 1067477011u, 2973333638u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 851, 3213993989u, 877613377u, 1044917899u, 809672798u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 852, 3222171454u, 905426932u, 1046417457u, 1086320855u, 3222274048u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 853, 3246346629u, 2645567288u, 1051258339u, 557182478u, 3246346629u, 2684354560u, 0, FLOOR_TOLERANCE, 0},
+{ 854, 3204057950u, 186287752u, 1061342054u, 4054003419u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 855, 1097266673u, 3506889716u, 3243866036u, 519056371u, 1097266673u, 3221225472u, 0, FLOOR_TOLERANCE, 0},
+{ 856, 1042654053u, 2171898436u, 3246911982u, 1091500784u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 857, 3243647673u, 368493885u, 3222871893u, 1419055230u, 3243647673u, 1073741824u, 0, FLOOR_TOLERANCE, 0},
+{ 858, 1091950572u, 2010971245u, 3188804530u, 1518695799u, 1091950572u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 859, 3205426509u, 1239207795u, 1040192984u, 2199481342u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 860, 3210978637u, 4264613432u, 3203460972u, 3558930895u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 861, 1050299283u, 3772748958u, 3227667376u, 309688336u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 862, 3230743041u, 1077949160u, 1075769893u, 2405271377u, 3230743552u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 863, 1091835152u, 3751608506u, 3232278094u, 930375071u, 1091835152u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 864, 3198617153u, 1518334131u, 3205247482u, 791756713u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 865, 1047317453u, 2825203170u, 3245054001u, 1822981827u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 866, 1100016363u, 514474738u, 1089072073u, 3300845441u, 1100016363u, 469762048u, 0, FLOOR_TOLERANCE, 0},
+{ 867, 3216391250u, 247369460u, 3197320093u, 687450958u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 868, 1104161422u, 2722237629u, 1058272368u, 90602316u, 1104161422u, 2722103296u, 0, FLOOR_TOLERANCE, 0},
+{ 869, 3208098435u, 1845900544u, 3231520830u, 3389751458u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 870, 3247535245u, 737689911u, 3195377751u, 3462616966u, 3247535245u, 738197504u, 0, FLOOR_TOLERANCE, 0},
+{ 871, 3223538384u, 3620285831u, 1055501023u, 2708056059u, 3223584768u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 872, 3219464996u, 4073430285u, 1056206159u, 172017902u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 873, 3212869638u, 2799176222u, 1052706894u, 4083892667u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 874, 3202279557u, 1562351330u, 1069705601u, 1247765260u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 875, 3232717299u, 51853475u, 3189080201u, 2783553144u, 3232717312u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 876, 3219454353u, 3851781549u, 3241598113u, 514064046u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 877, 1100045965u, 934745487u, 3248182437u, 2798581921u, 1100045965u, 872415232u, 0, FLOOR_TOLERANCE, 0},
+{ 878, 3213082493u, 2948648757u, 3232177250u, 4278702895u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 879, 1072485724u, 4259101461u, 1061606772u, 84229920u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 880, 3198075559u, 3891230598u, 1095924595u, 3049217547u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 881, 1077353053u, 3806018919u, 3243191216u, 280177341u, 1077346304u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 882, 1060624530u, 3900344258u, 1063647809u, 4206745890u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 883, 3227707336u, 2126253040u, 3207248026u, 808507485u, 3227713536u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 884, 1086090317u, 3465685634u, 3230391053u, 3754958214u, 1086090240u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 885, 1102861084u, 461094531u, 1101110393u, 1316091396u, 1102861084u, 452984832u, 0, FLOOR_TOLERANCE, 0},
+{ 886, 1064980314u, 4197635149u, 1091873113u, 1240127141u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 887, 1074333893u, 118603800u, 1105304898u, 4291425557u, 1074266112u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 888, 3213429165u, 3744663425u, 3212482771u, 953662066u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 889, 1085171305u, 3564196690u, 3228101916u, 904305212u, 1085171200u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 890, 1048333111u, 3566257266u, 3235138829u, 2734275140u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 891, 3243948477u, 606044282u, 3241318094u, 2446416887u, 3243948477u, 1073741824u, 0, FLOOR_TOLERANCE, 0},
+{ 892, 1041627284u, 2336116589u, 3197594053u, 2296925138u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 893, 1058567659u, 907670625u, 3240769036u, 1827119006u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 894, 1044467183u, 2818710946u, 3246059905u, 553394170u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 895, 3189504094u, 4099522736u, 3232742168u, 3718083858u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 896, 1092371276u, 1059279404u, 1080245336u, 175941677u, 1092371276u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 897, 1105189691u, 1650862428u, 1061816101u, 1723201723u, 1105189691u, 1648361472u, 0, FLOOR_TOLERANCE, 0},
+{ 898, 3239012814u, 2462163405u, 3218946201u, 3876535372u, 3239012816u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 899, 1084392886u, 495844137u, 1073721460u, 772777946u, 1084392448u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 900, 1052415330u, 458757721u, 3245680321u, 3609892707u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 901, 3193282956u, 2533012202u, 1079980803u, 3592268374u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 902, 3203364780u, 4108274117u, 1063045844u, 571992389u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 903, 1090567271u, 3541110973u, 1096296754u, 3118427427u, 1090567264u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 904, 3193980043u, 1213941007u, 1105433735u, 2172963370u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 905, 1096853359u, 272190288u, 1095452370u, 4026581530u, 1096853359u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 906, 1095583909u, 2843638672u, 1100510986u, 3190536898u, 1095583909u, 2147483648u, 0, FLOOR_TOLERANCE, 0},
+{ 907, 1083757094u, 2014317727u, 3247389683u, 2428462015u, 1083756544u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 908, 1093976717u, 688442200u, 1047852515u, 3035186380u, 1093976717u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 909, 1076664212u, 1010095511u, 3221288076u, 405287991u, 1076625408u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 910, 3252294615u, 2983070435u, 1089546472u, 2907918480u, 3252294615u, 2986344448u, 0, FLOOR_TOLERANCE, 0},
+{ 911, 1082988121u, 81928569u, 1056007286u, 2740556321u, 1082986496u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 912, 1041110867u, 2076689028u, 1081558619u, 3039159031u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 913, 1047307438u, 1376882094u, 3211003208u, 1296286481u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 914, 1080114314u, 744133164u, 3200943494u, 955832216u, 1080107008u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 915, 3226290326u, 176522478u, 1069999908u, 2891249491u, 3226304512u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 916, 1043564602u, 3685851715u, 3187829932u, 2363997529u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 917, 1040244055u, 3974431579u, 1052505165u, 2589067816u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 918, 3191496789u, 3819109588u, 1048561488u, 969143351u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 919, 1072639397u, 4246896124u, 1104584799u, 1940097860u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 920, 1048038468u, 2228686199u, 3220231833u, 777624847u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 921, 3231467306u, 4189906558u, 3203004203u, 854242364u, 3231467520u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 922, 1103910407u, 4089051094u, 3227282692u, 2693170723u, 1103910407u, 4085252096u, 0, FLOOR_TOLERANCE, 0},
+{ 923, 1045883607u, 1278581412u, 3239296746u, 1774588717u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 924, 3222372686u, 1794845306u, 1104879344u, 4135865182u, 3222536192u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 925, 1106449055u, 754938390u, 1061291430u, 2010786993u, 1106449055u, 753926144u, 0, FLOOR_TOLERANCE, 0},
+{ 926, 1073581409u, 2034303731u, 3240176537u, 314147356u, 1072693248u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 927, 3231449194u, 567588900u, 3195452230u, 1421366017u, 3231450112u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 928, 3225089755u, 2708717091u, 1071975971u, 1364590470u, 3225092096u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 929, 3252137283u, 3461956134u, 3207820115u, 1605709634u, 3252137283u, 3464495104u, 0, FLOOR_TOLERANCE, 0},
+{ 930, 1065302996u, 1497124553u, 1051715442u, 916736957u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 931, 1058468363u, 834914365u, 1064667143u, 2839166298u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 932, 1057279949u, 2139295776u, 1062816721u, 914592523u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 933, 3189636931u, 851569132u, 1058503154u, 1399378677u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 934, 3233537697u, 3897202342u, 3245382590u, 246600375u, 3233537792u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 935, 3225460308u, 3620429520u, 1055627557u, 229305u, 3225485312u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 936, 1083958833u, 3641997865u, 3206673888u, 93720614u, 1083958272u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 937, 3227808435u, 32766320u, 1062084905u, 3668443038u, 3227811840u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 938, 3223298996u, 2039713492u, 3248699388u, 1346210821u, 3223322624u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 939, 1093050016u, 1335820726u, 3191756860u, 1808427032u, 1093050016u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 940, 1061442763u, 650692001u, 1103515670u, 2253348763u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 941, 3191395187u, 2372623300u, 3210185343u, 3200572848u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 942, 1100796069u, 762317532u, 3194595095u, 3192607437u, 1100796069u, 738197504u, 0, FLOOR_TOLERANCE, 0},
+{ 943, 1062262701u, 217775356u, 3232827087u, 2969367386u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 944, 1057172551u, 3621353969u, 1077994795u, 3873976266u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 945, 1091301987u, 268372152u, 3221764390u, 3216978962u, 1091301984u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 946, 3246437611u, 142942404u, 1075322987u, 1746449109u, 3246437611u, 268435456u, 0, FLOOR_TOLERANCE, 0},
+{ 947, 1104006296u, 496534875u, 3254522293u, 2532372502u, 1104006296u, 494927872u, 0, FLOOR_TOLERANCE, 0},
+{ 948, 3250225541u, 2999955409u, 3222793392u, 1868977643u, 3250225541u, 3003121664u, 0, FLOOR_TOLERANCE, 0},
+{ 949, 1074319042u, 3353193428u, 3218469191u, 3326244297u, 1074266112u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 950, 1068218799u, 73646871u, 3231442171u, 3711510104u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 951, 1090483524u, 218135177u, 3198908856u, 3082199105u, 1090483520u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 952, 1068068480u, 1061628117u, 3248859043u, 86776158u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 953, 3208484674u, 938869114u, 1087911145u, 2416710759u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 954, 1095576832u, 2970853959u, 3239543429u, 1887505029u, 1095576832u, 2147483648u, 0, FLOOR_TOLERANCE, 0},
+{ 955, 3237728787u, 1337895935u, 1076463812u, 1172733328u, 3237728800u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 956, 1049139928u, 1469010822u, 3229583535u, 551399515u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 957, 1074118123u, 1849711538u, 1049053713u, 1744276190u, 1073741824u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 958, 3242138780u, 2976596113u, 3192137295u, 3033242648u, 3242138781u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 959, 1098698481u, 876810930u, 3197470945u, 2571587447u, 1098698481u, 805306368u, 0, FLOOR_TOLERANCE, 0},
+{ 960, 3241770810u, 4007797282u, 3225853845u, 4069319648u, 3241770811u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 961, 1047279982u, 3840538373u, 1043189552u, 3668774580u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 962, 3217611704u, 200857661u, 3229758439u, 3359367736u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 963, 3248797869u, 111868139u, 3227902082u, 2366064003u, 3248797869u, 134217728u, 0, FLOOR_TOLERANCE, 0},
+{ 964, 1044195166u, 3510904416u, 3222131653u, 3822770497u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 965, 3242675715u, 789151814u, 1099269239u, 2958956055u, 3242675715u, 2147483648u, 0, FLOOR_TOLERANCE, 0},
+{ 966, 1084679320u, 722163228u, 1105524559u, 1534462169u, 1084679168u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 967, 1046586062u, 2207037106u, 3208952465u, 1231254630u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 968, 3197884060u, 3838689849u, 3198769679u, 1302617170u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 969, 1085938906u, 2527556476u, 3240373426u, 124352692u, 1085938688u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 970, 3199540805u, 3502371499u, 1043411944u, 4190072016u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 971, 1064676142u, 1798470077u, 3200116917u, 3421833729u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 972, 3193514956u, 3653237931u, 3204255012u, 3683870669u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 973, 1053588582u, 376530104u, 1073853547u, 565755892u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 974, 3242503851u, 558292492u, 1051772749u, 4267873474u, 3242503851u, 2147483648u, 0, FLOOR_TOLERANCE, 0},
+{ 975, 3224772709u, 509637100u, 3212030069u, 215050379u, 3224829952u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 976, 1092057101u, 3571665665u, 3188628584u, 757824767u, 1092057100u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 977, 3214799337u, 998858159u, 1063077962u, 436029885u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 978, 3205946965u, 996300405u, 3193842624u, 80548098u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 979, 3228848840u, 3876129407u, 3215332180u, 2226970413u, 3228852224u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 980, 3237608953u, 200013509u, 3224552716u, 414878724u, 3237608960u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 981, 3230617093u, 309319541u, 1048979765u, 1261662434u, 3230617600u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 982, 1089252639u, 4062255924u, 3224274128u, 4289485681u, 1089252608u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 983, 3236136084u, 1611969213u, 1053890378u, 3774617276u, 3236136096u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 984, 1080412763u, 1752164782u, 3239587974u, 612223386u, 1080410112u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 985, 1041545782u, 2024044989u, 1074932678u, 3259111307u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 986, 1053207518u, 2564965629u, 1093571065u, 169360454u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 987, 1089599090u, 1860101737u, 3191222372u, 1676437468u, 1089599088u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 988, 1059802968u, 588387057u, 3192103292u, 2495288012u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 989, 3193155705u, 659070058u, 1073095700u, 1393632068u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 990, 3217683263u, 4276187829u, 3217553330u, 1868253275u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 991, 3223220272u, 2085481575u, 3215994784u, 800910002u, 3223322624u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 992, 1056934836u, 1950570756u, 3200582211u, 941022151u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 993, 1057530368u, 2075610870u, 3250142022u, 3605152103u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 994, 3200839250u, 3792931748u, 3204857863u, 804393211u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 995, 3253646370u, 3430071177u, 3226288311u, 3652522729u, 3253646370u, 3430940672u, 0, FLOOR_TOLERANCE, 0},
+{ 996, 3201314702u, 236884699u, 3227874605u, 2193269825u, 3220176896u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 997, 1064936593u, 2744231849u, 1046186036u, 771053722u, 0u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 998, 1083996036u, 3000189819u, 1096500901u, 2057239777u, 1083995136u, 0u, 0, FLOOR_TOLERANCE, 0},
+{ 999, 1093835581u, 205759408u, 3244643377u, 2702292618u, 1093835581u, 0u, 0, FLOOR_TOLERANCE, 0},
+
+
+// AUTOMATICALLY GENERATED VECTORS STOP
+
+};
+
+#endif // CYGONCE_LIBM_FLOOR_H multiple inclusion protection
+
+// EOF floor.h
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/floorf.c b/ecos/packages/language/c/libm/current/tests/vectors/floorf.c
new file mode 100644
index 0000000..2fdf9b3
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/floorf.c
@@ -0,0 +1,115 @@
+//===========================================================================
+//
+// floorf.c
+//
+// Test of floorf() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// Declarations for test system:
+//
+// TESTCASE_TYPE=CYG_TEST_MODULE
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include <cyg/infra/testcase.h> // Test infrastructure
+#include <math.h> // Header for this package
+#include <sys/ieeefp.h> // Cyg_libm_ieee_float_shape_type
+#include "vectors/vector_support_float.h"// extra support for math tests
+
+#include "vectors/floorf.h"
+
+// FUNCTIONS
+
+static void
+test( CYG_ADDRWORD data )
+{
+ cyg_ucount32 vec_size;
+ cyg_bool ret;
+
+ vec_size = sizeof(floorf_vec) / sizeof(Cyg_libm_test_float_vec_t);
+ ret = doTestVecFloat( (CYG_ADDRWORD) &floorf, CYG_LIBM_TEST_VEC_FLOAT,
+ CYG_LIBM_TEST_VEC_NONE, CYG_LIBM_TEST_VEC_FLOAT,
+ &floorf_vec[0], vec_size );
+
+ if (ret==true)
+ {
+ CYG_TEST_PASS("floorf() is stable");
+ } // if
+ else
+ {
+ CYG_TEST_FAIL("floorf() failed tests");
+ } // else
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for Math "
+ "library floorf() function");
+} // test()
+
+
+int
+main(int argc, char *argv[])
+{
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for Math library "
+ "floorf() function");
+
+ START_TEST( test );
+
+ CYG_TEST_PASS_FINISH("Testing is not applicable to this configuration");
+
+} // main()
+
+
+// EOF floorf.c
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/floorf.h b/ecos/packages/language/c/libm/current/tests/vectors/floorf.h
new file mode 100644
index 0000000..5149b02
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/floorf.h
@@ -0,0 +1,1235 @@
+#ifndef CYGONCE_LIBM_FLOORF_H
+#define CYGONCE_LIBM_FLOORF_H
+//===========================================================================
+//
+// floorf.h
+//
+// Test vectors for testing of floorf() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage: #include "vectors/floorf.h"
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include "vectors/vector_support_float.h"// extra support for math tests
+
+#define FLOORF_TOLERANCE 1.0E-04
+
+static const Cyg_libm_test_float_vec_t floorf_vec[] = {
+
+// AUTOMATICALLY GENERATED VECTORS START
+
+{0, 3214514586u, 0u, 3221225472u, 0, FLOORF_TOLERANCE, 0},
+{1, 3214430700u, 0u, 3221225472u, 0, FLOORF_TOLERANCE, 0},
+{2, 3214346813u, 0u, 3221225472u, 0, FLOORF_TOLERANCE, 0},
+{3, 3214262927u, 0u, 3221225472u, 0, FLOORF_TOLERANCE, 0},
+{4, 3214179041u, 0u, 3221225472u, 0, FLOORF_TOLERANCE, 0},
+{5, 3214095155u, 0u, 3221225472u, 0, FLOORF_TOLERANCE, 0},
+{6, 3214011269u, 0u, 3221225472u, 0, FLOORF_TOLERANCE, 0},
+{7, 3213927383u, 0u, 3221225472u, 0, FLOORF_TOLERANCE, 0},
+{8, 3213843497u, 0u, 3221225472u, 0, FLOORF_TOLERANCE, 0},
+{9, 3213759611u, 0u, 3221225472u, 0, FLOORF_TOLERANCE, 0},
+{10, 3213675725u, 0u, 3221225472u, 0, FLOORF_TOLERANCE, 0},
+{11, 3213591839u, 0u, 3221225472u, 0, FLOORF_TOLERANCE, 0},
+{12, 3213507953u, 0u, 3221225472u, 0, FLOORF_TOLERANCE, 0},
+{13, 3213424067u, 0u, 3221225472u, 0, FLOORF_TOLERANCE, 0},
+{14, 3213340180u, 0u, 3221225472u, 0, FLOORF_TOLERANCE, 0},
+{15, 3213256294u, 0u, 3221225472u, 0, FLOORF_TOLERANCE, 0},
+{16, 3213172408u, 0u, 3221225472u, 0, FLOORF_TOLERANCE, 0},
+{17, 3213088522u, 0u, 3221225472u, 0, FLOORF_TOLERANCE, 0},
+{18, 3213004636u, 0u, 3221225472u, 0, FLOORF_TOLERANCE, 0},
+{19, 3212920750u, 0u, 3221225472u, 0, FLOORF_TOLERANCE, 0},
+{20, 3212836864u, 0u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{21, 3212669092u, 0u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{22, 3212501320u, 0u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{23, 3212333548u, 0u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{24, 3212165775u, 0u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{25, 3211998003u, 0u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{26, 3211830231u, 0u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{27, 3211662459u, 0u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{28, 3211494687u, 0u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{29, 3211326915u, 0u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{30, 3211159142u, 0u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{31, 3210991370u, 0u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{32, 3210823598u, 0u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{33, 3210655826u, 0u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{34, 3210488054u, 0u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{35, 3210320282u, 0u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{36, 3210152509u, 0u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{37, 3209984737u, 0u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{38, 3209816965u, 0u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{39, 3209649193u, 0u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{40, 3209481421u, 0u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{41, 3209313649u, 0u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{42, 3209145876u, 0u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{43, 3208978104u, 0u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{44, 3208810332u, 0u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{45, 3208642560u, 0u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{46, 3208474788u, 0u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{47, 3208307016u, 0u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{48, 3208139244u, 0u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{49, 3207971471u, 0u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{50, 3207803699u, 0u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{51, 3207635927u, 0u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{52, 3207468155u, 0u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{53, 3207300383u, 0u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{54, 3207132611u, 0u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{55, 3206964838u, 0u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{56, 3206797066u, 0u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{57, 3206629294u, 0u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{58, 3206461522u, 0u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{59, 3206293750u, 0u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{60, 3206125978u, 0u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{61, 3205958205u, 0u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{62, 3205790433u, 0u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{63, 3205622661u, 0u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{64, 3205454889u, 0u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{65, 3205287117u, 0u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{66, 3205119345u, 0u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{67, 3204951572u, 0u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{68, 3204783800u, 0u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{69, 3204616028u, 0u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{70, 3204448256u, 0u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{71, 3204112712u, 0u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{72, 3203777167u, 0u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{73, 3203441623u, 0u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{74, 3203106079u, 0u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{75, 3202770534u, 0u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{76, 3202434990u, 0u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{77, 3202099446u, 0u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{78, 3201763901u, 0u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{79, 3201428357u, 0u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{80, 3201092813u, 0u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{81, 3200757268u, 0u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{82, 3200421724u, 0u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{83, 3200086180u, 0u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{84, 3199750636u, 0u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{85, 3199415091u, 0u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{86, 3199079547u, 0u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{87, 3198744003u, 0u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{88, 3198408458u, 0u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{89, 3198072914u, 0u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{90, 3197737370u, 0u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{91, 3197401825u, 0u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{92, 3197066281u, 0u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{93, 3196730737u, 0u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{94, 3196395192u, 0u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{95, 3196059648u, 0u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{96, 3195388559u, 0u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{97, 3194717471u, 0u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{98, 3194046382u, 0u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{99, 3193375293u, 0u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{100, 3192704205u, 0u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{101, 3192033116u, 0u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{102, 3191362028u, 0u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{103, 3190690939u, 0u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{104, 3190019850u, 0u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{105, 3189348762u, 0u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{106, 3188677673u, 0u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{107, 3188006584u, 0u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{108, 3186999951u, 0u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{109, 3185657774u, 0u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{110, 3184315597u, 0u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{111, 3182973420u, 0u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{112, 3181631242u, 0u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{113, 3180289065u, 0u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{114, 3178611343u, 0u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{115, 3175926989u, 0u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{116, 3173242634u, 0u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{117, 3170222735u, 0u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{118, 3164854026u, 0u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{119, 3156465418u, 0u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{120, 646742016u, 0u, 2147483648u, 0, FLOORF_TOLERANCE, 0},
+{121, 1008981770u, 0u, 2147483648u, 0, FLOORF_TOLERANCE, 0},
+{122, 1017370378u, 0u, 2147483648u, 0, FLOORF_TOLERANCE, 0},
+{123, 1022739087u, 0u, 2147483648u, 0, FLOORF_TOLERANCE, 0},
+{124, 1025758986u, 0u, 2147483648u, 0, FLOORF_TOLERANCE, 0},
+{125, 1028443341u, 0u, 2147483648u, 0, FLOORF_TOLERANCE, 0},
+{126, 1031127695u, 0u, 2147483648u, 0, FLOORF_TOLERANCE, 0},
+{127, 1032805417u, 0u, 2147483648u, 0, FLOORF_TOLERANCE, 0},
+{128, 1034147594u, 0u, 2147483648u, 0, FLOORF_TOLERANCE, 0},
+{129, 1035489772u, 0u, 2147483648u, 0, FLOORF_TOLERANCE, 0},
+{130, 1036831949u, 0u, 2147483648u, 0, FLOORF_TOLERANCE, 0},
+{131, 1038174126u, 0u, 2147483648u, 0, FLOORF_TOLERANCE, 0},
+{132, 1039516303u, 0u, 2147483648u, 0, FLOORF_TOLERANCE, 0},
+{133, 1040522936u, 0u, 2147483648u, 0, FLOORF_TOLERANCE, 0},
+{134, 1041194025u, 0u, 2147483648u, 0, FLOORF_TOLERANCE, 0},
+{135, 1041865114u, 0u, 2147483648u, 0, FLOORF_TOLERANCE, 0},
+{136, 1042536202u, 0u, 2147483648u, 0, FLOORF_TOLERANCE, 0},
+{137, 1043207291u, 0u, 2147483648u, 0, FLOORF_TOLERANCE, 0},
+{138, 1043878380u, 0u, 2147483648u, 0, FLOORF_TOLERANCE, 0},
+{139, 1044549468u, 0u, 2147483648u, 0, FLOORF_TOLERANCE, 0},
+{140, 1045220557u, 0u, 2147483648u, 0, FLOORF_TOLERANCE, 0},
+{141, 1045891645u, 0u, 2147483648u, 0, FLOORF_TOLERANCE, 0},
+{142, 1046562734u, 0u, 2147483648u, 0, FLOORF_TOLERANCE, 0},
+{143, 1047233823u, 0u, 2147483648u, 0, FLOORF_TOLERANCE, 0},
+{144, 1047904911u, 0u, 2147483648u, 0, FLOORF_TOLERANCE, 0},
+{145, 1048576000u, 0u, 2147483648u, 0, FLOORF_TOLERANCE, 0},
+{146, 1048911544u, 0u, 2147483648u, 0, FLOORF_TOLERANCE, 0},
+{147, 1049247089u, 0u, 2147483648u, 0, FLOORF_TOLERANCE, 0},
+{148, 1049582633u, 0u, 2147483648u, 0, FLOORF_TOLERANCE, 0},
+{149, 1049918177u, 0u, 2147483648u, 0, FLOORF_TOLERANCE, 0},
+{150, 1050253722u, 0u, 2147483648u, 0, FLOORF_TOLERANCE, 0},
+{151, 1050589266u, 0u, 2147483648u, 0, FLOORF_TOLERANCE, 0},
+{152, 1050924810u, 0u, 2147483648u, 0, FLOORF_TOLERANCE, 0},
+{153, 1051260355u, 0u, 2147483648u, 0, FLOORF_TOLERANCE, 0},
+{154, 1051595899u, 0u, 2147483648u, 0, FLOORF_TOLERANCE, 0},
+{155, 1051931443u, 0u, 2147483648u, 0, FLOORF_TOLERANCE, 0},
+{156, 1052266988u, 0u, 2147483648u, 0, FLOORF_TOLERANCE, 0},
+{157, 1052602532u, 0u, 2147483648u, 0, FLOORF_TOLERANCE, 0},
+{158, 1052938076u, 0u, 2147483648u, 0, FLOORF_TOLERANCE, 0},
+{159, 1053273620u, 0u, 2147483648u, 0, FLOORF_TOLERANCE, 0},
+{160, 1053609165u, 0u, 2147483648u, 0, FLOORF_TOLERANCE, 0},
+{161, 1053944709u, 0u, 2147483648u, 0, FLOORF_TOLERANCE, 0},
+{162, 1054280253u, 0u, 2147483648u, 0, FLOORF_TOLERANCE, 0},
+{163, 1054615798u, 0u, 2147483648u, 0, FLOORF_TOLERANCE, 0},
+{164, 1054951342u, 0u, 2147483648u, 0, FLOORF_TOLERANCE, 0},
+{165, 1055286886u, 0u, 2147483648u, 0, FLOORF_TOLERANCE, 0},
+{166, 1055622431u, 0u, 2147483648u, 0, FLOORF_TOLERANCE, 0},
+{167, 1055957975u, 0u, 2147483648u, 0, FLOORF_TOLERANCE, 0},
+{168, 1056293519u, 0u, 2147483648u, 0, FLOORF_TOLERANCE, 0},
+{169, 1056629064u, 0u, 2147483648u, 0, FLOORF_TOLERANCE, 0},
+{170, 1056964608u, 0u, 2147483648u, 0, FLOORF_TOLERANCE, 0},
+{171, 1057132380u, 0u, 2147483648u, 0, FLOORF_TOLERANCE, 0},
+{172, 1057300152u, 0u, 2147483648u, 0, FLOORF_TOLERANCE, 0},
+{173, 1057467924u, 0u, 2147483648u, 0, FLOORF_TOLERANCE, 0},
+{174, 1057635697u, 0u, 2147483648u, 0, FLOORF_TOLERANCE, 0},
+{175, 1057803469u, 0u, 2147483648u, 0, FLOORF_TOLERANCE, 0},
+{176, 1057971241u, 0u, 2147483648u, 0, FLOORF_TOLERANCE, 0},
+{177, 1058139013u, 0u, 2147483648u, 0, FLOORF_TOLERANCE, 0},
+{178, 1058306785u, 0u, 2147483648u, 0, FLOORF_TOLERANCE, 0},
+{179, 1058474557u, 0u, 2147483648u, 0, FLOORF_TOLERANCE, 0},
+{180, 1058642330u, 0u, 2147483648u, 0, FLOORF_TOLERANCE, 0},
+{181, 1058810102u, 0u, 2147483648u, 0, FLOORF_TOLERANCE, 0},
+{182, 1058977874u, 0u, 2147483648u, 0, FLOORF_TOLERANCE, 0},
+{183, 1059145646u, 0u, 2147483648u, 0, FLOORF_TOLERANCE, 0},
+{184, 1059313418u, 0u, 2147483648u, 0, FLOORF_TOLERANCE, 0},
+{185, 1059481190u, 0u, 2147483648u, 0, FLOORF_TOLERANCE, 0},
+{186, 1059648963u, 0u, 2147483648u, 0, FLOORF_TOLERANCE, 0},
+{187, 1059816735u, 0u, 2147483648u, 0, FLOORF_TOLERANCE, 0},
+{188, 1059984507u, 0u, 2147483648u, 0, FLOORF_TOLERANCE, 0},
+{189, 1060152279u, 0u, 2147483648u, 0, FLOORF_TOLERANCE, 0},
+{190, 1060320051u, 0u, 2147483648u, 0, FLOORF_TOLERANCE, 0},
+{191, 1060487823u, 0u, 2147483648u, 0, FLOORF_TOLERANCE, 0},
+{192, 1060655596u, 0u, 2147483648u, 0, FLOORF_TOLERANCE, 0},
+{193, 1060823368u, 0u, 2147483648u, 0, FLOORF_TOLERANCE, 0},
+{194, 1060991140u, 0u, 2147483648u, 0, FLOORF_TOLERANCE, 0},
+{195, 1061158912u, 0u, 2147483648u, 0, FLOORF_TOLERANCE, 0},
+{196, 1061326684u, 0u, 2147483648u, 0, FLOORF_TOLERANCE, 0},
+{197, 1061494456u, 0u, 2147483648u, 0, FLOORF_TOLERANCE, 0},
+{198, 1061662228u, 0u, 2147483648u, 0, FLOORF_TOLERANCE, 0},
+{199, 1061830001u, 0u, 2147483648u, 0, FLOORF_TOLERANCE, 0},
+{200, 1061997773u, 0u, 2147483648u, 0, FLOORF_TOLERANCE, 0},
+{201, 1062165545u, 0u, 2147483648u, 0, FLOORF_TOLERANCE, 0},
+{202, 1062333317u, 0u, 2147483648u, 0, FLOORF_TOLERANCE, 0},
+{203, 1062501089u, 0u, 2147483648u, 0, FLOORF_TOLERANCE, 0},
+{204, 1062668861u, 0u, 2147483648u, 0, FLOORF_TOLERANCE, 0},
+{205, 1062836634u, 0u, 2147483648u, 0, FLOORF_TOLERANCE, 0},
+{206, 1063004406u, 0u, 2147483648u, 0, FLOORF_TOLERANCE, 0},
+{207, 1063172178u, 0u, 2147483648u, 0, FLOORF_TOLERANCE, 0},
+{208, 1063339950u, 0u, 2147483648u, 0, FLOORF_TOLERANCE, 0},
+{209, 1063507722u, 0u, 2147483648u, 0, FLOORF_TOLERANCE, 0},
+{210, 1063675494u, 0u, 2147483648u, 0, FLOORF_TOLERANCE, 0},
+{211, 1063843267u, 0u, 2147483648u, 0, FLOORF_TOLERANCE, 0},
+{212, 1064011039u, 0u, 2147483648u, 0, FLOORF_TOLERANCE, 0},
+{213, 1064178811u, 0u, 2147483648u, 0, FLOORF_TOLERANCE, 0},
+{214, 1064346583u, 0u, 2147483648u, 0, FLOORF_TOLERANCE, 0},
+{215, 1064514355u, 0u, 2147483648u, 0, FLOORF_TOLERANCE, 0},
+{216, 1064682127u, 0u, 2147483648u, 0, FLOORF_TOLERANCE, 0},
+{217, 1064849900u, 0u, 2147483648u, 0, FLOORF_TOLERANCE, 0},
+{218, 1065017672u, 0u, 2147483648u, 0, FLOORF_TOLERANCE, 0},
+{219, 1065185444u, 0u, 2147483648u, 0, FLOORF_TOLERANCE, 0},
+{220, 1065353216u, 0u, 1065353216u, 0, FLOORF_TOLERANCE, 0},
+{221, 1065437102u, 0u, 1065353216u, 0, FLOORF_TOLERANCE, 0},
+{222, 1065520988u, 0u, 1065353216u, 0, FLOORF_TOLERANCE, 0},
+{223, 1065604874u, 0u, 1065353216u, 0, FLOORF_TOLERANCE, 0},
+{224, 1065688760u, 0u, 1065353216u, 0, FLOORF_TOLERANCE, 0},
+{225, 1065772646u, 0u, 1065353216u, 0, FLOORF_TOLERANCE, 0},
+{226, 1065856532u, 0u, 1065353216u, 0, FLOORF_TOLERANCE, 0},
+{227, 1065940419u, 0u, 1065353216u, 0, FLOORF_TOLERANCE, 0},
+{228, 1066024305u, 0u, 1065353216u, 0, FLOORF_TOLERANCE, 0},
+{229, 1066108191u, 0u, 1065353216u, 0, FLOORF_TOLERANCE, 0},
+{230, 1066192077u, 0u, 1065353216u, 0, FLOORF_TOLERANCE, 0},
+{231, 1066275963u, 0u, 1065353216u, 0, FLOORF_TOLERANCE, 0},
+{232, 1066359849u, 0u, 1065353216u, 0, FLOORF_TOLERANCE, 0},
+{233, 1066443735u, 0u, 1065353216u, 0, FLOORF_TOLERANCE, 0},
+{234, 1066527621u, 0u, 1065353216u, 0, FLOORF_TOLERANCE, 0},
+{235, 1066611507u, 0u, 1065353216u, 0, FLOORF_TOLERANCE, 0},
+{236, 1066695393u, 0u, 1065353216u, 0, FLOORF_TOLERANCE, 0},
+{237, 1066779279u, 0u, 1065353216u, 0, FLOORF_TOLERANCE, 0},
+{238, 1066863165u, 0u, 1065353216u, 0, FLOORF_TOLERANCE, 0},
+{239, 1066947052u, 0u, 1065353216u, 0, FLOORF_TOLERANCE, 0},
+{240, 3234402267u, 0u, 3235905536u, 0, FLOORF_TOLERANCE, 0},
+{241, 3231108068u, 0u, 3231711232u, 0, FLOORF_TOLERANCE, 0},
+{242, 3226013659u, 0u, 3229614080u, 0, FLOORF_TOLERANCE, 0},
+{243, 3217625051u, 0u, 3221225472u, 0, FLOORF_TOLERANCE, 0},
+{244, 0u, 0u, 2147483648u, 0, FLOORF_TOLERANCE, 0},
+{245, 1070141403u, 0u, 1065353216u, 0, FLOORF_TOLERANCE, 0},
+{246, 1078530011u, 0u, 1077936128u, 0, FLOORF_TOLERANCE, 0},
+{247, 1083624420u, 0u, 1082130432u, 0, FLOORF_TOLERANCE, 0},
+{248, 3253731328u, 0u, 3253731328u, 0, FLOORF_TOLERANCE, 0},
+{249, 3252840038u, 0u, 3253207040u, 0, FLOORF_TOLERANCE, 0},
+{250, 3251948749u, 0u, 3252158464u, 0, FLOORF_TOLERANCE, 0},
+{251, 3251057459u, 0u, 3251109888u, 0, FLOORF_TOLERANCE, 0},
+{252, 3250166170u, 0u, 3250585600u, 0, FLOORF_TOLERANCE, 0},
+{253, 3249274880u, 0u, 3249537024u, 0, FLOORF_TOLERANCE, 0},
+{254, 3248383590u, 0u, 3248488448u, 0, FLOORF_TOLERANCE, 0},
+{255, 3247492301u, 0u, 3247964160u, 0, FLOORF_TOLERANCE, 0},
+{256, 3246601011u, 0u, 3246915584u, 0, FLOORF_TOLERANCE, 0},
+{257, 3245028147u, 0u, 3245342720u, 0, FLOORF_TOLERANCE, 0},
+{258, 3243245568u, 0u, 3243245568u, 0, FLOORF_TOLERANCE, 0},
+{259, 3241462989u, 0u, 3242196992u, 0, FLOORF_TOLERANCE, 0},
+{260, 3239680410u, 0u, 3240099840u, 0, FLOORF_TOLERANCE, 0},
+{261, 3237792973u, 0u, 3238002688u, 0, FLOORF_TOLERANCE, 0},
+{262, 3234227814u, 0u, 3235905536u, 0, FLOORF_TOLERANCE, 0},
+{263, 3230662656u, 0u, 3231711232u, 0, FLOORF_TOLERANCE, 0},
+{264, 3224580915u, 0u, 3225419776u, 0, FLOORF_TOLERANCE, 0},
+{265, 3213675725u, 0u, 3221225472u, 0, FLOORF_TOLERANCE, 0},
+{266, 1058642330u, 0u, 2147483648u, 0, FLOORF_TOLERANCE, 0},
+{267, 1075000115u, 0u, 1073741824u, 0, FLOORF_TOLERANCE, 0},
+{268, 1082130432u, 0u, 1082130432u, 0, FLOORF_TOLERANCE, 0},
+{269, 1085695590u, 0u, 1084227584u, 0, FLOORF_TOLERANCE, 0},
+{270, 1089260749u, 0u, 1088421888u, 0, FLOORF_TOLERANCE, 0},
+{271, 1091672474u, 0u, 1091567616u, 0, FLOORF_TOLERANCE, 0},
+{272, 1093455053u, 0u, 1092616192u, 0, FLOORF_TOLERANCE, 0},
+{273, 1095237632u, 0u, 1094713344u, 0, FLOORF_TOLERANCE, 0},
+{274, 1097020211u, 0u, 1096810496u, 0, FLOORF_TOLERANCE, 0},
+{275, 1098802790u, 0u, 1097859072u, 0, FLOORF_TOLERANCE, 0},
+{276, 1099746509u, 0u, 1099431936u, 0, FLOORF_TOLERANCE, 0},
+{277, 1100637798u, 0u, 1100480512u, 0, FLOORF_TOLERANCE, 0},
+{278, 1101529088u, 0u, 1101529088u, 0, FLOORF_TOLERANCE, 0},
+{279, 1102420378u, 0u, 1102053376u, 0, FLOORF_TOLERANCE, 0},
+{280, 1103311667u, 0u, 1103101952u, 0, FLOORF_TOLERANCE, 0},
+{281, 1104202957u, 0u, 1104150528u, 0, FLOORF_TOLERANCE, 0},
+{282, 1105094246u, 0u, 1104674816u, 0, FLOORF_TOLERANCE, 0},
+{283, 1105985536u, 0u, 1105723392u, 0, FLOORF_TOLERANCE, 0},
+{284, 1107800421u, 1203999711u, 1107558400u, 0, FLOORF_TOLERANCE, 0},
+{285, 3196650934u, 896005582u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{286, 3368700125u, 3308232444u, 3368700128u, 0, FLOORF_TOLERANCE, 0},
+{287, 1224242132u, 3061363425u, 1224242112u, 0, FLOORF_TOLERANCE, 0},
+{288, 3221027117u, 1284201705u, 3221225472u, 0, FLOORF_TOLERANCE, 0},
+{289, 1198712763u, 919636942u, 1198712576u, 0, FLOORF_TOLERANCE, 0},
+{290, 3159309973u, 852521077u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{291, 954173073u, 850531830u, 0u, 0, FLOORF_TOLERANCE, 0},
+{292, 3090780435u, 1035260608u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{293, 966554515u, 3234538174u, 0u, 0, FLOORF_TOLERANCE, 0},
+{294, 1312607135u, 1194999402u, 1312607135u, 0, FLOORF_TOLERANCE, 0},
+{295, 1166191415u, 1018661564u, 1166190592u, 0, FLOORF_TOLERANCE, 0},
+{296, 3111900019u, 1130472166u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{297, 1234419246u, 2984575812u, 1234419240u, 0, FLOORF_TOLERANCE, 0},
+{298, 1302107128u, 3370647675u, 1302107128u, 0, FLOORF_TOLERANCE, 0},
+{299, 1052801068u, 3039122570u, 0u, 0, FLOORF_TOLERANCE, 0},
+{300, 1060849628u, 3081357692u, 0u, 0, FLOORF_TOLERANCE, 0},
+{301, 3484320003u, 3033957825u, 3484320003u, 0, FLOORF_TOLERANCE, 0},
+{302, 3181522772u, 3305392896u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{303, 882596369u, 1256676590u, 0u, 0, FLOORF_TOLERANCE, 0},
+{304, 1167223673u, 846102364u, 1167222784u, 0, FLOORF_TOLERANCE, 0},
+{305, 968192794u, 878547432u, 0u, 0, FLOORF_TOLERANCE, 0},
+{306, 3122346862u, 1111584337u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{307, 1052361612u, 1280025214u, 0u, 0, FLOORF_TOLERANCE, 0},
+{308, 906701409u, 2968301825u, 0u, 0, FLOORF_TOLERANCE, 0},
+{309, 3471653172u, 1154138102u, 3471653172u, 0, FLOORF_TOLERANCE, 0},
+{310, 3231467496u, 934336592u, 3231711232u, 0, FLOORF_TOLERANCE, 0},
+{311, 1341514497u, 3466051188u, 1341514497u, 0, FLOORF_TOLERANCE, 0},
+{312, 1272351391u, 3373485062u, 1272351390u, 0, FLOORF_TOLERANCE, 0},
+{313, 3319724992u, 3354615790u, 3319726080u, 0, FLOORF_TOLERANCE, 0},
+{314, 917622040u, 1334966485u, 0u, 0, FLOORF_TOLERANCE, 0},
+{315, 940236348u, 3304072663u, 0u, 0, FLOORF_TOLERANCE, 0},
+{316, 3251541546u, 3174764041u, 3251634176u, 0, FLOORF_TOLERANCE, 0},
+{317, 3099843889u, 3355962282u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{318, 3110358400u, 851145088u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{319, 3371863479u, 1014861921u, 3371863488u, 0, FLOORF_TOLERANCE, 0},
+{320, 3204069187u, 966573255u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{321, 1306460502u, 903489435u, 1306460502u, 0, FLOORF_TOLERANCE, 0},
+{322, 1197542187u, 3024598921u, 1197542144u, 0, FLOORF_TOLERANCE, 0},
+{323, 922888249u, 1139392309u, 0u, 0, FLOORF_TOLERANCE, 0},
+{324, 1184239996u, 3224098462u, 1184239616u, 0, FLOORF_TOLERANCE, 0},
+{325, 1252490238u, 1173619825u, 1252490236u, 0, FLOORF_TOLERANCE, 0},
+{326, 1001673627u, 3462631271u, 0u, 0, FLOORF_TOLERANCE, 0},
+{327, 976098044u, 1151967422u, 0u, 0, FLOORF_TOLERANCE, 0},
+{328, 941796645u, 886451963u, 0u, 0, FLOORF_TOLERANCE, 0},
+{329, 3287199470u, 854245542u, 3287220224u, 0, FLOORF_TOLERANCE, 0},
+{330, 893184329u, 1243067084u, 0u, 0, FLOORF_TOLERANCE, 0},
+{331, 1143233714u, 1007268238u, 1143226368u, 0, FLOORF_TOLERANCE, 0},
+{332, 1139941253u, 1147688821u, 1139933184u, 0, FLOORF_TOLERANCE, 0},
+{333, 3143717025u, 3234638157u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{334, 3048866608u, 3449209899u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{335, 3240298487u, 1020260821u, 3241148416u, 0, FLOORF_TOLERANCE, 0},
+{336, 1288902137u, 3123875978u, 1288902137u, 0, FLOORF_TOLERANCE, 0},
+{337, 1333134799u, 1338107877u, 1333134799u, 0, FLOORF_TOLERANCE, 0},
+{338, 1187847971u, 1317663644u, 1187847680u, 0, FLOORF_TOLERANCE, 0},
+{339, 1038851706u, 1327544110u, 0u, 0, FLOORF_TOLERANCE, 0},
+{340, 3329354473u, 3165437289u, 3329354752u, 0, FLOORF_TOLERANCE, 0},
+{341, 3077218579u, 1308397879u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{342, 1309289088u, 1019883016u, 1309289088u, 0, FLOORF_TOLERANCE, 0},
+{343, 3444653659u, 1279248024u, 3444653659u, 0, FLOORF_TOLERANCE, 0},
+{344, 3405585402u, 2962345057u, 3405585402u, 0, FLOORF_TOLERANCE, 0},
+{345, 3106647724u, 853848387u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{346, 1106778573u, 3304487767u, 1106771968u, 0, FLOORF_TOLERANCE, 0},
+{347, 1140567947u, 3069174149u, 1140555776u, 0, FLOORF_TOLERANCE, 0},
+{348, 1238569473u, 873035665u, 1238569472u, 0, FLOORF_TOLERANCE, 0},
+{349, 3154871957u, 1276671061u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{350, 1261071232u, 1182202773u, 1261071232u, 0, FLOORF_TOLERANCE, 0},
+{351, 1175011025u, 3029705783u, 1175010304u, 0, FLOORF_TOLERANCE, 0},
+{352, 1082692850u, 1211581107u, 1082130432u, 0, FLOORF_TOLERANCE, 0},
+{353, 974547519u, 3475164509u, 0u, 0, FLOORF_TOLERANCE, 0},
+{354, 3058097085u, 3104309359u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{355, 3107252546u, 1071134451u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{356, 3096032662u, 2976848821u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{357, 3197942144u, 3094120030u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{358, 3403348556u, 3184653669u, 3403348558u, 0, FLOORF_TOLERANCE, 0},
+{359, 3182301130u, 3460764044u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{360, 1136411063u, 1118097422u, 1136394240u, 0, FLOORF_TOLERANCE, 0},
+{361, 3239231622u, 3302723069u, 3240099840u, 0, FLOORF_TOLERANCE, 0},
+{362, 3340615780u, 870350055u, 3340615936u, 0, FLOORF_TOLERANCE, 0},
+{363, 998567360u, 2995278691u, 0u, 0, FLOORF_TOLERANCE, 0},
+{364, 3417964312u, 1321337529u, 3417964312u, 0, FLOORF_TOLERANCE, 0},
+{365, 3109481038u, 1143864063u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{366, 1148867223u, 1256486202u, 1148862464u, 0, FLOORF_TOLERANCE, 0},
+{367, 989687421u, 3372681320u, 0u, 0, FLOORF_TOLERANCE, 0},
+{368, 1152956913u, 3166480640u, 1152950272u, 0, FLOORF_TOLERANCE, 0},
+{369, 892922651u, 3373029087u, 0u, 0, FLOORF_TOLERANCE, 0},
+{370, 1109627625u, 1314158257u, 1109393408u, 0, FLOORF_TOLERANCE, 0},
+{371, 1307091856u, 1103202538u, 1307091856u, 0, FLOORF_TOLERANCE, 0},
+{372, 1077234132u, 3272167130u, 1073741824u, 0, FLOORF_TOLERANCE, 0},
+{373, 1142167709u, 1096445242u, 1142161408u, 0, FLOORF_TOLERANCE, 0},
+{374, 3426232834u, 1036705270u, 3426232834u, 0, FLOORF_TOLERANCE, 0},
+{375, 3368566779u, 967249167u, 3368566784u, 0, FLOORF_TOLERANCE, 0},
+{376, 3030724760u, 3349013503u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{377, 1138741813u, 3073453199u, 1138720768u, 0, FLOORF_TOLERANCE, 0},
+{378, 982950501u, 982549888u, 0u, 0, FLOORF_TOLERANCE, 0},
+{379, 1142981585u, 1015602236u, 1142980608u, 0, FLOORF_TOLERANCE, 0},
+{380, 3347165962u, 3135486696u, 3347166080u, 0, FLOORF_TOLERANCE, 0},
+{381, 1009535440u, 3381353228u, 0u, 0, FLOORF_TOLERANCE, 0},
+{382, 3103736980u, 3402950505u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{383, 3126820946u, 1077903063u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{384, 3473956030u, 976891930u, 3473956030u, 0, FLOORF_TOLERANCE, 0},
+{385, 3349098349u, 1055327704u, 3349098368u, 0, FLOORF_TOLERANCE, 0},
+{386, 3152729489u, 1060398533u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{387, 945568720u, 3313485084u, 0u, 0, FLOORF_TOLERANCE, 0},
+{388, 3345489836u, 1108392401u, 3345489920u, 0, FLOORF_TOLERANCE, 0},
+{389, 940893161u, 1137000140u, 0u, 0, FLOORF_TOLERANCE, 0},
+{390, 976791751u, 3230678102u, 0u, 0, FLOORF_TOLERANCE, 0},
+{391, 1004442355u, 3036510596u, 0u, 0, FLOORF_TOLERANCE, 0},
+{392, 1108485380u, 3173536878u, 1108344832u, 0, FLOORF_TOLERANCE, 0},
+{393, 1061834641u, 972388096u, 0u, 0, FLOORF_TOLERANCE, 0},
+{394, 3381268392u, 1146976802u, 3381268392u, 0, FLOORF_TOLERANCE, 0},
+{395, 1087189715u, 2952822478u, 1086324736u, 0, FLOORF_TOLERANCE, 0},
+{396, 3212952285u, 3329407365u, 3221225472u, 0, FLOORF_TOLERANCE, 0},
+{397, 1000611335u, 857599439u, 0u, 0, FLOORF_TOLERANCE, 0},
+{398, 3466188568u, 1041678304u, 3466188568u, 0, FLOORF_TOLERANCE, 0},
+{399, 3072456205u, 3160254633u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{400, 3319315516u, 3422089012u, 3319316480u, 0, FLOORF_TOLERANCE, 0},
+{401, 935938416u, 1146676692u, 0u, 0, FLOORF_TOLERANCE, 0},
+{402, 3212614372u, 1152633030u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{403, 1315030230u, 3336225884u, 1315030230u, 0, FLOORF_TOLERANCE, 0},
+{404, 1134593658u, 3456812581u, 1134592000u, 0, FLOORF_TOLERANCE, 0},
+{405, 977281449u, 879922831u, 0u, 0, FLOORF_TOLERANCE, 0},
+{406, 1086198791u, 920125958u, 1084227584u, 0, FLOORF_TOLERANCE, 0},
+{407, 1255152035u, 851754050u, 1255152034u, 0, FLOORF_TOLERANCE, 0},
+{408, 1135271264u, 3284878412u, 1135247360u, 0, FLOORF_TOLERANCE, 0},
+{409, 1094190727u, 1056854532u, 1093664768u, 0, FLOORF_TOLERANCE, 0},
+{410, 1294665325u, 991185677u, 1294665325u, 0, FLOORF_TOLERANCE, 0},
+{411, 1036608591u, 805416536u, 0u, 0, FLOORF_TOLERANCE, 0},
+{412, 3229998064u, 825237063u, 3231711232u, 0, FLOORF_TOLERANCE, 0},
+{413, 3439134022u, 1043829691u, 3439134022u, 0, FLOORF_TOLERANCE, 0},
+{414, 3073083133u, 1317170485u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{415, 1325668223u, 970681762u, 1325668223u, 0, FLOORF_TOLERANCE, 0},
+{416, 1092037607u, 1027330835u, 1091567616u, 0, FLOORF_TOLERANCE, 0},
+{417, 3316278408u, 3455589207u, 3316279296u, 0, FLOORF_TOLERANCE, 0},
+{418, 3295436768u, 3129873731u, 3295444992u, 0, FLOORF_TOLERANCE, 0},
+{419, 1151984049u, 3074547120u, 1151983616u, 0, FLOORF_TOLERANCE, 0},
+{420, 1129287043u, 3076527544u, 1129250816u, 0, FLOORF_TOLERANCE, 0},
+{421, 1243664530u, 972879810u, 1243664528u, 0, FLOORF_TOLERANCE, 0},
+{422, 950829092u, 929114193u, 0u, 0, FLOORF_TOLERANCE, 0},
+{423, 1115471979u, 3047246262u, 1115422720u, 0, FLOORF_TOLERANCE, 0},
+{424, 3351092088u, 3024661404u, 3351092096u, 0, FLOORF_TOLERANCE, 0},
+{425, 3424479544u, 3312047722u, 3424479544u, 0, FLOORF_TOLERANCE, 0},
+{426, 3241193975u, 884465785u, 3242196992u, 0, FLOORF_TOLERANCE, 0},
+{427, 1030934236u, 1045139240u, 0u, 0, FLOORF_TOLERANCE, 0},
+{428, 3131791114u, 3408392958u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{429, 1025254314u, 3057812821u, 0u, 0, FLOORF_TOLERANCE, 0},
+{430, 1110545760u, 3240144177u, 1110441984u, 0, FLOORF_TOLERANCE, 0},
+{431, 3180213739u, 1108793820u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{432, 3361976590u, 3138179993u, 3361976640u, 0, FLOORF_TOLERANCE, 0},
+{433, 881280146u, 3421884736u, 0u, 0, FLOORF_TOLERANCE, 0},
+{434, 1304154705u, 2961937089u, 1304154705u, 0, FLOORF_TOLERANCE, 0},
+{435, 3264443610u, 3222916705u, 3264479232u, 0, FLOORF_TOLERANCE, 0},
+{436, 3374550627u, 3055856293u, 3374550640u, 0, FLOORF_TOLERANCE, 0},
+{437, 899599265u, 3240118211u, 0u, 0, FLOORF_TOLERANCE, 0},
+{438, 1268194719u, 1332489410u, 1268194719u, 0, FLOORF_TOLERANCE, 0},
+{439, 1133420220u, 1245770860u, 1133412352u, 0, FLOORF_TOLERANCE, 0},
+{440, 1161858787u, 815362075u, 1161854976u, 0, FLOORF_TOLERANCE, 0},
+{441, 3184462258u, 1263529646u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{442, 3295996963u, 3453334307u, 3296002048u, 0, FLOORF_TOLERANCE, 0},
+{443, 1270887389u, 1156123987u, 1270887389u, 0, FLOORF_TOLERANCE, 0},
+{444, 3325193181u, 993979179u, 3325193216u, 0, FLOORF_TOLERANCE, 0},
+{445, 925657343u, 1315159742u, 0u, 0, FLOORF_TOLERANCE, 0},
+{446, 3115275450u, 3008350271u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{447, 3116607482u, 3224327456u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{448, 3187892415u, 3118097315u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{449, 1189120494u, 978961471u, 1189120000u, 0, FLOORF_TOLERANCE, 0},
+{450, 889030794u, 3129523970u, 0u, 0, FLOORF_TOLERANCE, 0},
+{451, 1323529208u, 3100744786u, 1323529208u, 0, FLOORF_TOLERANCE, 0},
+{452, 3465768388u, 3190881451u, 3465768388u, 0, FLOORF_TOLERANCE, 0},
+{453, 3426099899u, 1118756120u, 3426099899u, 0, FLOORF_TOLERANCE, 0},
+{454, 3224857113u, 3398166843u, 3225419776u, 0, FLOORF_TOLERANCE, 0},
+{455, 1065798296u, 816191940u, 1065353216u, 0, FLOORF_TOLERANCE, 0},
+{456, 3328989444u, 850266225u, 3328990208u, 0, FLOORF_TOLERANCE, 0},
+{457, 3357819026u, 3148475462u, 3357819072u, 0, FLOORF_TOLERANCE, 0},
+{458, 1273397670u, 901308750u, 1273397670u, 0, FLOORF_TOLERANCE, 0},
+{459, 3424831780u, 1304806106u, 3424831780u, 0, FLOORF_TOLERANCE, 0},
+{460, 1257596246u, 3420832544u, 1257596246u, 0, FLOORF_TOLERANCE, 0},
+{461, 1051773536u, 896271348u, 0u, 0, FLOORF_TOLERANCE, 0},
+{462, 3294752507u, 3113225954u, 3294756864u, 0, FLOORF_TOLERANCE, 0},
+{463, 3424848725u, 2973850350u, 3424848725u, 0, FLOORF_TOLERANCE, 0},
+{464, 1090870906u, 3294742905u, 1090519040u, 0, FLOORF_TOLERANCE, 0},
+{465, 1227582289u, 1208979668u, 1227582288u, 0, FLOORF_TOLERANCE, 0},
+{466, 1272325814u, 3004311296u, 1272325814u, 0, FLOORF_TOLERANCE, 0},
+{467, 3359508271u, 859974315u, 3359508288u, 0, FLOORF_TOLERANCE, 0},
+{468, 1137854355u, 3335041917u, 1137836032u, 0, FLOORF_TOLERANCE, 0},
+{469, 3440773058u, 3204192793u, 3440773058u, 0, FLOORF_TOLERANCE, 0},
+{470, 3101598400u, 3057760708u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{471, 3451216836u, 3347783723u, 3451216836u, 0, FLOORF_TOLERANCE, 0},
+{472, 3437062994u, 3106834845u, 3437062994u, 0, FLOORF_TOLERANCE, 0},
+{473, 1131196082u, 1164573183u, 1131151360u, 0, FLOORF_TOLERANCE, 0},
+{474, 3177294154u, 1282436638u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{475, 3258097678u, 1305882290u, 3258187776u, 0, FLOORF_TOLERANCE, 0},
+{476, 3460915348u, 1219372260u, 3460915348u, 0, FLOORF_TOLERANCE, 0},
+{477, 3303035472u, 3153013020u, 3303038976u, 0, FLOORF_TOLERANCE, 0},
+{478, 1053698677u, 3284313107u, 0u, 0, FLOORF_TOLERANCE, 0},
+{479, 3396166221u, 1201894512u, 3396166224u, 0, FLOORF_TOLERANCE, 0},
+{480, 3037541131u, 1085398440u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{481, 3458934263u, 1005577835u, 3458934263u, 0, FLOORF_TOLERANCE, 0},
+{482, 1065761827u, 3333928591u, 1065353216u, 0, FLOORF_TOLERANCE, 0},
+{483, 3025843188u, 820250112u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{484, 926665223u, 3150815797u, 0u, 0, FLOORF_TOLERANCE, 0},
+{485, 1199816046u, 3143776186u, 1199815936u, 0, FLOORF_TOLERANCE, 0},
+{486, 3333779015u, 952421041u, 3333779456u, 0, FLOORF_TOLERANCE, 0},
+{487, 948398145u, 3238273189u, 0u, 0, FLOORF_TOLERANCE, 0},
+{488, 3054021468u, 1270257895u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{489, 1080781593u, 1213908300u, 1077936128u, 0, FLOORF_TOLERANCE, 0},
+{490, 3164749613u, 3010837763u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{491, 3235326590u, 1271705594u, 3235905536u, 0, FLOORF_TOLERANCE, 0},
+{492, 3118883815u, 1051802647u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{493, 965378004u, 1292594138u, 0u, 0, FLOORF_TOLERANCE, 0},
+{494, 3226990408u, 1110755136u, 3229614080u, 0, FLOORF_TOLERANCE, 0},
+{495, 3117098218u, 1122474770u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{496, 1283624229u, 906796922u, 1283624229u, 0, FLOORF_TOLERANCE, 0},
+{497, 970649315u, 1078286437u, 0u, 0, FLOORF_TOLERANCE, 0},
+{498, 959776291u, 3280345347u, 0u, 0, FLOORF_TOLERANCE, 0},
+{499, 3341117305u, 3294559023u, 3341117440u, 0, FLOORF_TOLERANCE, 0},
+{500, 1270734970u, 3355874874u, 1270734970u, 0, FLOORF_TOLERANCE, 0},
+{501, 3454816067u, 868771977u, 3454816067u, 0, FLOORF_TOLERANCE, 0},
+{502, 917206623u, 1172710814u, 0u, 0, FLOORF_TOLERANCE, 0},
+{503, 1106502045u, 1290849316u, 1106247680u, 0, FLOORF_TOLERANCE, 0},
+{504, 1157598381u, 3309023746u, 1157595136u, 0, FLOORF_TOLERANCE, 0},
+{505, 3335234513u, 1002337336u, 3335234560u, 0, FLOORF_TOLERANCE, 0},
+{506, 1279489061u, 1006049444u, 1279489060u, 0, FLOORF_TOLERANCE, 0},
+{507, 3157416480u, 1309984610u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{508, 3143920719u, 3131608518u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{509, 1233171235u, 826460580u, 1233171232u, 0, FLOORF_TOLERANCE, 0},
+{510, 1148920078u, 1007674793u, 1148911616u, 0, FLOORF_TOLERANCE, 0},
+{511, 3064988156u, 3230867340u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{512, 3083619260u, 1159415661u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{513, 1109198803u, 1221754614u, 1109131264u, 0, FLOORF_TOLERANCE, 0},
+{514, 3219949483u, 1056167693u, 3221225472u, 0, FLOORF_TOLERANCE, 0},
+{515, 3361149474u, 3387342069u, 3361149504u, 0, FLOORF_TOLERANCE, 0},
+{516, 1207502108u, 3388073586u, 1207502080u, 0, FLOORF_TOLERANCE, 0},
+{517, 1000014431u, 831213088u, 0u, 0, FLOORF_TOLERANCE, 0},
+{518, 3161756316u, 3143659754u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{519, 3160728744u, 3382954009u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{520, 1234530539u, 1079988872u, 1234530536u, 0, FLOORF_TOLERANCE, 0},
+{521, 1017843965u, 1193076204u, 0u, 0, FLOORF_TOLERANCE, 0},
+{522, 951862956u, 1173464654u, 0u, 0, FLOORF_TOLERANCE, 0},
+{523, 3306328852u, 1118701064u, 3306332160u, 0, FLOORF_TOLERANCE, 0},
+{524, 1291910469u, 1211303367u, 1291910469u, 0, FLOORF_TOLERANCE, 0},
+{525, 3027442905u, 1173894400u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{526, 1131927531u, 3182962700u, 1131872256u, 0, FLOORF_TOLERANCE, 0},
+{527, 3449879391u, 991614550u, 3449879391u, 0, FLOORF_TOLERANCE, 0},
+{528, 970094304u, 3344590506u, 0u, 0, FLOORF_TOLERANCE, 0},
+{529, 1125551064u, 3331248076u, 1125515264u, 0, FLOORF_TOLERANCE, 0},
+{530, 3427296372u, 3455289118u, 3427296372u, 0, FLOORF_TOLERANCE, 0},
+{531, 1198917460u, 1327195159u, 1198917376u, 0, FLOORF_TOLERANCE, 0},
+{532, 3201603336u, 820047343u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{533, 3114686212u, 3476082461u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{534, 921940707u, 2967544056u, 0u, 0, FLOORF_TOLERANCE, 0},
+{535, 1091906532u, 3011904455u, 1091567616u, 0, FLOORF_TOLERANCE, 0},
+{536, 3393557778u, 3383396815u, 3393557780u, 0, FLOORF_TOLERANCE, 0},
+{537, 1276853215u, 873199561u, 1276853215u, 0, FLOORF_TOLERANCE, 0},
+{538, 3462778440u, 3349284325u, 3462778440u, 0, FLOORF_TOLERANCE, 0},
+{539, 3360170117u, 3048354042u, 3360170176u, 0, FLOORF_TOLERANCE, 0},
+{540, 3224245428u, 3271307999u, 3225419776u, 0, FLOORF_TOLERANCE, 0},
+{541, 1120124467u, 1135619937u, 1120010240u, 0, FLOORF_TOLERANCE, 0},
+{542, 1064364381u, 3180675544u, 0u, 0, FLOORF_TOLERANCE, 0},
+{543, 1268744779u, 3328452652u, 1268744778u, 0, FLOORF_TOLERANCE, 0},
+{544, 1165195428u, 3390323168u, 1165193216u, 0, FLOORF_TOLERANCE, 0},
+{545, 3044092739u, 1106497311u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{546, 3149469534u, 1278465842u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{547, 3247790039u, 909788142u, 3247964160u, 0, FLOORF_TOLERANCE, 0},
+{548, 3215244648u, 1083988595u, 3221225472u, 0, FLOORF_TOLERANCE, 0},
+{549, 3095275931u, 989153382u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{550, 3059688264u, 1117455718u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{551, 1212717473u, 837873779u, 1212717440u, 0, FLOORF_TOLERANCE, 0},
+{552, 3275973009u, 3450721670u, 3276013568u, 0, FLOORF_TOLERANCE, 0},
+{553, 3028857014u, 3188853813u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{554, 3391162308u, 1291220039u, 3391162308u, 0, FLOORF_TOLERANCE, 0},
+{555, 1044867873u, 3369493273u, 0u, 0, FLOORF_TOLERANCE, 0},
+{556, 1089986803u, 3462160118u, 1088421888u, 0, FLOORF_TOLERANCE, 0},
+{557, 1296314700u, 2957454177u, 1296314700u, 0, FLOORF_TOLERANCE, 0},
+{558, 1251462432u, 3171021770u, 1251462432u, 0, FLOORF_TOLERANCE, 0},
+{559, 3485236902u, 980772835u, 3485236902u, 0, FLOORF_TOLERANCE, 0},
+{560, 3262169538u, 1268270462u, 3262382080u, 0, FLOORF_TOLERANCE, 0},
+{561, 3080852256u, 994641495u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{562, 1022211242u, 922124181u, 0u, 0, FLOORF_TOLERANCE, 0},
+{563, 884661176u, 2985540645u, 0u, 0, FLOORF_TOLERANCE, 0},
+{564, 3071422941u, 3271100396u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{565, 989762529u, 3362011135u, 0u, 0, FLOORF_TOLERANCE, 0},
+{566, 1295475718u, 3212305413u, 1295475718u, 0, FLOORF_TOLERANCE, 0},
+{567, 1002632518u, 3330388441u, 0u, 0, FLOORF_TOLERANCE, 0},
+{568, 3404372005u, 3450484255u, 3404372006u, 0, FLOORF_TOLERANCE, 0},
+{569, 3158912530u, 3105501826u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{570, 1125800069u, 3256265749u, 1125777408u, 0, FLOORF_TOLERANCE, 0},
+{571, 3138037576u, 3103365227u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{572, 3108384823u, 1300246663u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{573, 999985470u, 3409354318u, 0u, 0, FLOORF_TOLERANCE, 0},
+{574, 1189421739u, 1056599002u, 1189421568u, 0, FLOORF_TOLERANCE, 0},
+{575, 3075182644u, 3144159778u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{576, 3028099649u, 3391513557u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{577, 3132541814u, 3444521949u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{578, 1164046161u, 3440635788u, 1164042240u, 0, FLOORF_TOLERANCE, 0},
+{579, 1292596266u, 3116569667u, 1292596266u, 0, FLOORF_TOLERANCE, 0},
+{580, 3469748379u, 3412765608u, 3469748379u, 0, FLOORF_TOLERANCE, 0},
+{581, 1314644642u, 3123051784u, 1314644642u, 0, FLOORF_TOLERANCE, 0},
+{582, 3399813173u, 828743798u, 3399813174u, 0, FLOORF_TOLERANCE, 0},
+{583, 948775569u, 3485444126u, 0u, 0, FLOORF_TOLERANCE, 0},
+{584, 1034611395u, 882288581u, 0u, 0, FLOORF_TOLERANCE, 0},
+{585, 3489122735u, 3372450889u, 3489122735u, 0, FLOORF_TOLERANCE, 0},
+{586, 1181604787u, 3363067409u, 1181603840u, 0, FLOORF_TOLERANCE, 0},
+{587, 3059042077u, 3204983963u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{588, 1043691622u, 3402603223u, 0u, 0, FLOORF_TOLERANCE, 0},
+{589, 1314588083u, 856187848u, 1314588083u, 0, FLOORF_TOLERANCE, 0},
+{590, 3141533334u, 3010142974u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{591, 3157534378u, 3451674717u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{592, 3400949680u, 3073750220u, 3400949680u, 0, FLOORF_TOLERANCE, 0},
+{593, 3365581801u, 1175843167u, 3365581824u, 0, FLOORF_TOLERANCE, 0},
+{594, 1110424755u, 3011308654u, 1110179840u, 0, FLOORF_TOLERANCE, 0},
+{595, 3189917167u, 927278934u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{596, 969804941u, 3355439348u, 0u, 0, FLOORF_TOLERANCE, 0},
+{597, 1139120919u, 3270515074u, 1139113984u, 0, FLOORF_TOLERANCE, 0},
+{598, 934308144u, 3118191228u, 0u, 0, FLOORF_TOLERANCE, 0},
+{599, 1220524226u, 1152648002u, 1220524224u, 0, FLOORF_TOLERANCE, 0},
+{600, 3162548604u, 3461790298u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{601, 3382391700u, 3296962745u, 3382391704u, 0, FLOORF_TOLERANCE, 0},
+{602, 1156767533u, 1088986462u, 1156759552u, 0, FLOORF_TOLERANCE, 0},
+{603, 3079222483u, 3312324949u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{604, 994934087u, 967678094u, 0u, 0, FLOORF_TOLERANCE, 0},
+{605, 3185240099u, 1123403720u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{606, 3479873563u, 1246277393u, 3479873563u, 0, FLOORF_TOLERANCE, 0},
+{607, 3424264117u, 3434026174u, 3424264117u, 0, FLOORF_TOLERANCE, 0},
+{608, 3228365887u, 1216775310u, 3229614080u, 0, FLOORF_TOLERANCE, 0},
+{609, 1035909900u, 1249532942u, 0u, 0, FLOORF_TOLERANCE, 0},
+{610, 3024951184u, 1247632131u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{611, 1212129651u, 3017366784u, 1212129600u, 0, FLOORF_TOLERANCE, 0},
+{612, 3125775254u, 955826310u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{613, 1037464105u, 3121544932u, 0u, 0, FLOORF_TOLERANCE, 0},
+{614, 1311706596u, 1254918706u, 1311706596u, 0, FLOORF_TOLERANCE, 0},
+{615, 918212457u, 1017468331u, 0u, 0, FLOORF_TOLERANCE, 0},
+{616, 1337315179u, 3461361185u, 1337315179u, 0, FLOORF_TOLERANCE, 0},
+{617, 1131358407u, 3325958870u, 1131347968u, 0, FLOORF_TOLERANCE, 0},
+{618, 1156517523u, 3343716230u, 1156513792u, 0, FLOORF_TOLERANCE, 0},
+{619, 3210802820u, 3207408574u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{620, 3337499209u, 1226297264u, 3337499648u, 0, FLOORF_TOLERANCE, 0},
+{621, 3468429030u, 3253874001u, 3468429030u, 0, FLOORF_TOLERANCE, 0},
+{622, 3253515800u, 1189005947u, 3253731328u, 0, FLOORF_TOLERANCE, 0},
+{623, 3055299953u, 3047908678u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{624, 959956547u, 876324728u, 0u, 0, FLOORF_TOLERANCE, 0},
+{625, 3425290480u, 1139193797u, 3425290480u, 0, FLOORF_TOLERANCE, 0},
+{626, 1039917375u, 1122740999u, 0u, 0, FLOORF_TOLERANCE, 0},
+{627, 3220979495u, 3429223871u, 3221225472u, 0, FLOORF_TOLERANCE, 0},
+{628, 1311016004u, 3334899880u, 1311016004u, 0, FLOORF_TOLERANCE, 0},
+{629, 1128016396u, 1105151547u, 1128005632u, 0, FLOORF_TOLERANCE, 0},
+{630, 3210335769u, 3100646155u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{631, 3022705759u, 3404762495u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{632, 1206054701u, 826010009u, 1206054656u, 0, FLOORF_TOLERANCE, 0},
+{633, 3144504834u, 1162227076u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{634, 1213609983u, 919983950u, 1213609920u, 0, FLOORF_TOLERANCE, 0},
+{635, 1246902946u, 3064047808u, 1246902944u, 0, FLOORF_TOLERANCE, 0},
+{636, 995850843u, 1332031130u, 0u, 0, FLOORF_TOLERANCE, 0},
+{637, 3362082828u, 3374056268u, 3362082880u, 0, FLOORF_TOLERANCE, 0},
+{638, 1029480631u, 3047777170u, 0u, 0, FLOORF_TOLERANCE, 0},
+{639, 3153568584u, 3106514232u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{640, 3384988527u, 3109485565u, 3384988528u, 0, FLOORF_TOLERANCE, 0},
+{641, 1317696241u, 870681806u, 1317696241u, 0, FLOORF_TOLERANCE, 0},
+{642, 3235395924u, 1132055244u, 3235905536u, 0, FLOORF_TOLERANCE, 0},
+{643, 3341877624u, 2969495570u, 3341877760u, 0, FLOORF_TOLERANCE, 0},
+{644, 1228636133u, 886552820u, 1228636128u, 0, FLOORF_TOLERANCE, 0},
+{645, 3161654634u, 3335899347u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{646, 3162655243u, 3307203982u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{647, 1207246237u, 859223639u, 1207246208u, 0, FLOORF_TOLERANCE, 0},
+{648, 1165476654u, 3350219111u, 1165475840u, 0, FLOORF_TOLERANCE, 0},
+{649, 1215278023u, 3019755242u, 1215278016u, 0, FLOORF_TOLERANCE, 0},
+{650, 1017239798u, 3438501281u, 0u, 0, FLOORF_TOLERANCE, 0},
+{651, 1149651309u, 970030475u, 1149648896u, 0, FLOORF_TOLERANCE, 0},
+{652, 1111943722u, 3122211334u, 1111752704u, 0, FLOORF_TOLERANCE, 0},
+{653, 1189849849u, 3382739134u, 1189849600u, 0, FLOORF_TOLERANCE, 0},
+{654, 3204848496u, 3141519085u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{655, 1249758327u, 3104759211u, 1249758324u, 0, FLOORF_TOLERANCE, 0},
+{656, 3092982276u, 3445282331u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{657, 1168098747u, 1316854744u, 1168097280u, 0, FLOORF_TOLERANCE, 0},
+{658, 892549317u, 1179637545u, 0u, 0, FLOORF_TOLERANCE, 0},
+{659, 3301009024u, 3406174560u, 3301015552u, 0, FLOORF_TOLERANCE, 0},
+{660, 3233089227u, 1212652543u, 3233808384u, 0, FLOORF_TOLERANCE, 0},
+{661, 3218245284u, 1238873830u, 3221225472u, 0, FLOORF_TOLERANCE, 0},
+{662, 3215981890u, 3240474694u, 3221225472u, 0, FLOORF_TOLERANCE, 0},
+{663, 1266687209u, 3092038122u, 1266687209u, 0, FLOORF_TOLERANCE, 0},
+{664, 3487959775u, 3331372071u, 3487959775u, 0, FLOORF_TOLERANCE, 0},
+{665, 943645710u, 852875779u, 0u, 0, FLOORF_TOLERANCE, 0},
+{666, 3345065699u, 3282620725u, 3345065728u, 0, FLOORF_TOLERANCE, 0},
+{667, 935847271u, 1067255804u, 0u, 0, FLOORF_TOLERANCE, 0},
+{668, 3410336089u, 1111437780u, 3410336089u, 0, FLOORF_TOLERANCE, 0},
+{669, 3082940740u, 1336840432u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{670, 1141063391u, 1168908072u, 1141047296u, 0, FLOORF_TOLERANCE, 0},
+{671, 3059263153u, 3067795684u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{672, 3353679791u, 897158391u, 3353679872u, 0, FLOORF_TOLERANCE, 0},
+{673, 1001823878u, 1016826861u, 0u, 0, FLOORF_TOLERANCE, 0},
+{674, 1009130212u, 1004302940u, 0u, 0, FLOORF_TOLERANCE, 0},
+{675, 3367127535u, 943136342u, 3367127552u, 0, FLOORF_TOLERANCE, 0},
+{676, 1032920919u, 3449126417u, 0u, 0, FLOORF_TOLERANCE, 0},
+{677, 3281952870u, 3147012185u, 3281977344u, 0, FLOORF_TOLERANCE, 0},
+{678, 1237868497u, 3048281802u, 1237868496u, 0, FLOORF_TOLERANCE, 0},
+{679, 1153753924u, 3322269242u, 1153753088u, 0, FLOORF_TOLERANCE, 0},
+{680, 1120261759u, 892210998u, 1120141312u, 0, FLOORF_TOLERANCE, 0},
+{681, 3226328360u, 3366432856u, 3229614080u, 0, FLOORF_TOLERANCE, 0},
+{682, 3349595986u, 3251588707u, 3349596032u, 0, FLOORF_TOLERANCE, 0},
+{683, 3166889490u, 3306023523u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{684, 1087750238u, 1099325523u, 1086324736u, 0, FLOORF_TOLERANCE, 0},
+{685, 3121620061u, 3359488363u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{686, 1066116543u, 3072159933u, 1065353216u, 0, FLOORF_TOLERANCE, 0},
+{687, 3210898034u, 2981803389u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{688, 3051923237u, 3364074347u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{689, 1030612298u, 3345396001u, 0u, 0, FLOORF_TOLERANCE, 0},
+{690, 1186234578u, 858134374u, 1186234368u, 0, FLOORF_TOLERANCE, 0},
+{691, 1331680743u, 1009396165u, 1331680743u, 0, FLOORF_TOLERANCE, 0},
+{692, 3060774997u, 1326067357u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{693, 887589411u, 1292305693u, 0u, 0, FLOORF_TOLERANCE, 0},
+{694, 1045232522u, 3234993273u, 0u, 0, FLOORF_TOLERANCE, 0},
+{695, 3119858470u, 962515365u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{696, 3349432725u, 928848003u, 3349432832u, 0, FLOORF_TOLERANCE, 0},
+{697, 912423027u, 3184646319u, 0u, 0, FLOORF_TOLERANCE, 0},
+{698, 3228795133u, 3273940030u, 3229614080u, 0, FLOORF_TOLERANCE, 0},
+{699, 3194674746u, 3112269709u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{700, 3296784303u, 3276182352u, 3296788480u, 0, FLOORF_TOLERANCE, 0},
+{701, 965402291u, 3107104376u, 0u, 0, FLOORF_TOLERANCE, 0},
+{702, 3388153589u, 3426245389u, 3388153592u, 0, FLOORF_TOLERANCE, 0},
+{703, 1133410485u, 3329658993u, 1133379584u, 0, FLOORF_TOLERANCE, 0},
+{704, 3136790322u, 1088652637u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{705, 3369970587u, 959121458u, 3369970592u, 0, FLOORF_TOLERANCE, 0},
+{706, 1270451568u, 928393353u, 1270451568u, 0, FLOORF_TOLERANCE, 0},
+{707, 989498922u, 3088358419u, 0u, 0, FLOORF_TOLERANCE, 0},
+{708, 1280215674u, 3148135875u, 1280215674u, 0, FLOORF_TOLERANCE, 0},
+{709, 1171873518u, 954709738u, 1171871744u, 0, FLOORF_TOLERANCE, 0},
+{710, 3298258100u, 935525182u, 3298263040u, 0, FLOORF_TOLERANCE, 0},
+{711, 3415208824u, 822843236u, 3415208824u, 0, FLOORF_TOLERANCE, 0},
+{712, 1001897182u, 3191875320u, 0u, 0, FLOORF_TOLERANCE, 0},
+{713, 3152777939u, 3245830463u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{714, 985903305u, 3333087577u, 0u, 0, FLOORF_TOLERANCE, 0},
+{715, 3357328848u, 859306298u, 3357328896u, 0, FLOORF_TOLERANCE, 0},
+{716, 982612185u, 923582663u, 0u, 0, FLOORF_TOLERANCE, 0},
+{717, 3267868136u, 1208301947u, 3267887104u, 0, FLOORF_TOLERANCE, 0},
+{718, 3319048157u, 1172271145u, 3319048192u, 0, FLOORF_TOLERANCE, 0},
+{719, 1144755661u, 860947435u, 1144750080u, 0, FLOORF_TOLERANCE, 0},
+{720, 898467286u, 839254959u, 0u, 0, FLOORF_TOLERANCE, 0},
+{721, 3301461672u, 1233693827u, 3301466112u, 0, FLOORF_TOLERANCE, 0},
+{722, 3364525678u, 3089849671u, 3364525696u, 0, FLOORF_TOLERANCE, 0},
+{723, 931441127u, 1133424555u, 0u, 0, FLOORF_TOLERANCE, 0},
+{724, 3146660041u, 3143695961u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{725, 3467121799u, 3023584354u, 3467121799u, 0, FLOORF_TOLERANCE, 0},
+{726, 1151257041u, 3084216427u, 1151254528u, 0, FLOORF_TOLERANCE, 0},
+{727, 3097873255u, 3219266640u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{728, 3130670309u, 3192399254u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{729, 1017573824u, 3130901062u, 0u, 0, FLOORF_TOLERANCE, 0},
+{730, 1258369714u, 3462258576u, 1258369713u, 0, FLOORF_TOLERANCE, 0},
+{731, 1216602683u, 3371396332u, 1216602656u, 0, FLOORF_TOLERANCE, 0},
+{732, 3297265739u, 1214184410u, 3297271808u, 0, FLOORF_TOLERANCE, 0},
+{733, 1071940738u, 3311731012u, 1065353216u, 0, FLOORF_TOLERANCE, 0},
+{734, 922601356u, 3337171870u, 0u, 0, FLOORF_TOLERANCE, 0},
+{735, 3462285635u, 3444030332u, 3462285635u, 0, FLOORF_TOLERANCE, 0},
+{736, 3357177805u, 1085464241u, 3357177856u, 0, FLOORF_TOLERANCE, 0},
+{737, 3049120080u, 900832851u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{738, 1153863660u, 1011991342u, 1153859584u, 0, FLOORF_TOLERANCE, 0},
+{739, 3034243695u, 917098003u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{740, 1249365132u, 3278686216u, 1249365128u, 0, FLOORF_TOLERANCE, 0},
+{741, 3046215730u, 3211219980u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{742, 3047251716u, 1090787353u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{743, 3131219358u, 3471261157u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{744, 3222096285u, 1198013705u, 3225419776u, 0, FLOORF_TOLERANCE, 0},
+{745, 1297708818u, 3079166173u, 1297708818u, 0, FLOORF_TOLERANCE, 0},
+{746, 3345532722u, 3383708463u, 3345532928u, 0, FLOORF_TOLERANCE, 0},
+{747, 3418753236u, 3481843070u, 3418753236u, 0, FLOORF_TOLERANCE, 0},
+{748, 1277417964u, 3487506626u, 1277417964u, 0, FLOORF_TOLERANCE, 0},
+{749, 987577257u, 1152077087u, 0u, 0, FLOORF_TOLERANCE, 0},
+{750, 3161606610u, 3190282989u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{751, 888030585u, 3062367380u, 0u, 0, FLOORF_TOLERANCE, 0},
+{752, 1043442869u, 3311393817u, 0u, 0, FLOORF_TOLERANCE, 0},
+{753, 3320923228u, 3464544249u, 3320924160u, 0, FLOORF_TOLERANCE, 0},
+{754, 1337400405u, 3488844154u, 1337400405u, 0, FLOORF_TOLERANCE, 0},
+{755, 3400348640u, 3129868490u, 3400348642u, 0, FLOORF_TOLERANCE, 0},
+{756, 1250249095u, 1069023744u, 1250249094u, 0, FLOORF_TOLERANCE, 0},
+{757, 3284411233u, 1173613526u, 3284434944u, 0, FLOORF_TOLERANCE, 0},
+{758, 3020883322u, 2953622587u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{759, 1215968622u, 3469884568u, 1215968576u, 0, FLOORF_TOLERANCE, 0},
+{760, 3202319550u, 819117302u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{761, 3061638260u, 3116222327u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{762, 1025404104u, 1066370251u, 0u, 0, FLOORF_TOLERANCE, 0},
+{763, 3138086437u, 3195983510u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{764, 3091024506u, 3456196859u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{765, 3362748242u, 3369843597u, 3362748288u, 0, FLOORF_TOLERANCE, 0},
+{766, 3099671635u, 3218383623u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{767, 3068014841u, 2978226656u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{768, 1252237719u, 1121169249u, 1252237718u, 0, FLOORF_TOLERANCE, 0},
+{769, 3327895594u, 1224511805u, 3327896576u, 0, FLOORF_TOLERANCE, 0},
+{770, 3082454432u, 889268276u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{771, 3396161504u, 1182798837u, 3396161504u, 0, FLOORF_TOLERANCE, 0},
+{772, 1099710167u, 887180181u, 1099431936u, 0, FLOORF_TOLERANCE, 0},
+{773, 1157186482u, 1288722647u, 1157185536u, 0, FLOORF_TOLERANCE, 0},
+{774, 1282110851u, 3176633124u, 1282110851u, 0, FLOORF_TOLERANCE, 0},
+{775, 3477008113u, 1331845018u, 3477008113u, 0, FLOORF_TOLERANCE, 0},
+{776, 3292127294u, 3409957764u, 3292135424u, 0, FLOORF_TOLERANCE, 0},
+{777, 1123357102u, 3281307320u, 1123287040u, 0, FLOORF_TOLERANCE, 0},
+{778, 1106837025u, 3088080674u, 1106771968u, 0, FLOORF_TOLERANCE, 0},
+{779, 1049949008u, 1130799489u, 0u, 0, FLOORF_TOLERANCE, 0},
+{780, 1253017688u, 942062372u, 1253017688u, 0, FLOORF_TOLERANCE, 0},
+{781, 1108543194u, 3281299199u, 1108344832u, 0, FLOORF_TOLERANCE, 0},
+{782, 3087985411u, 1238341456u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{783, 3163283126u, 1328636961u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{784, 1160162706u, 1264067367u, 1160159232u, 0, FLOORF_TOLERANCE, 0},
+{785, 3305715025u, 3017496063u, 3305717760u, 0, FLOORF_TOLERANCE, 0},
+{786, 1266928623u, 811778614u, 1266928623u, 0, FLOORF_TOLERANCE, 0},
+{787, 3025340297u, 1193925540u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{788, 3438080027u, 3107114149u, 3438080027u, 0, FLOORF_TOLERANCE, 0},
+{789, 3344574751u, 3111270744u, 3344574976u, 0, FLOORF_TOLERANCE, 0},
+{790, 1152416724u, 962669179u, 1152409600u, 0, FLOORF_TOLERANCE, 0},
+{791, 1218239308u, 1126238113u, 1218239296u, 0, FLOORF_TOLERANCE, 0},
+{792, 3263310567u, 1030748197u, 3263430656u, 0, FLOORF_TOLERANCE, 0},
+{793, 3041998669u, 1160635263u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{794, 1000313118u, 2980130729u, 0u, 0, FLOORF_TOLERANCE, 0},
+{795, 972485427u, 1124312043u, 0u, 0, FLOORF_TOLERANCE, 0},
+{796, 3290264612u, 1124703898u, 3290267648u, 0, FLOORF_TOLERANCE, 0},
+{797, 3222106584u, 1183748648u, 3225419776u, 0, FLOORF_TOLERANCE, 0},
+{798, 1278946388u, 825129857u, 1278946388u, 0, FLOORF_TOLERANCE, 0},
+{799, 947914771u, 3181847068u, 0u, 0, FLOORF_TOLERANCE, 0},
+{800, 3167730654u, 3195765940u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{801, 1098530298u, 3255870890u, 1097859072u, 0, FLOORF_TOLERANCE, 0},
+{802, 3232726036u, 871038882u, 3233808384u, 0, FLOORF_TOLERANCE, 0},
+{803, 1297190916u, 811863044u, 1297190916u, 0, FLOORF_TOLERANCE, 0},
+{804, 1277649137u, 961171401u, 1277649137u, 0, FLOORF_TOLERANCE, 0},
+{805, 3203377685u, 1306427476u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{806, 3090306474u, 3124785016u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{807, 3244032016u, 3045313345u, 3244294144u, 0, FLOORF_TOLERANCE, 0},
+{808, 3033122376u, 3049877065u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{809, 1096155623u, 1256423752u, 1095761920u, 0, FLOORF_TOLERANCE, 0},
+{810, 873151908u, 3246562559u, 0u, 0, FLOORF_TOLERANCE, 0},
+{811, 3238729605u, 1298769842u, 3239051264u, 0, FLOORF_TOLERANCE, 0},
+{812, 3317196817u, 989537151u, 3317198848u, 0, FLOORF_TOLERANCE, 0},
+{813, 3374748510u, 834161190u, 3374748512u, 0, FLOORF_TOLERANCE, 0},
+{814, 3345634950u, 959901149u, 3345635072u, 0, FLOORF_TOLERANCE, 0},
+{815, 3189860276u, 883598767u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{816, 887311687u, 1175312255u, 0u, 0, FLOORF_TOLERANCE, 0},
+{817, 3396917283u, 3066326686u, 3396917284u, 0, FLOORF_TOLERANCE, 0},
+{818, 3317032737u, 3143803722u, 3317032960u, 0, FLOORF_TOLERANCE, 0},
+{819, 1200051436u, 1163802508u, 1200051328u, 0, FLOORF_TOLERANCE, 0},
+{820, 3105291012u, 1194385202u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{821, 1306520561u, 957302464u, 1306520561u, 0, FLOORF_TOLERANCE, 0},
+{822, 1314936356u, 2985592532u, 1314936356u, 0, FLOORF_TOLERANCE, 0},
+{823, 3475052219u, 1284049853u, 3475052219u, 0, FLOORF_TOLERANCE, 0},
+{824, 3085636260u, 1107682820u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{825, 3393227708u, 3271879112u, 3393227712u, 0, FLOORF_TOLERANCE, 0},
+{826, 3182540197u, 852580839u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{827, 3349005404u, 3080993030u, 3349005440u, 0, FLOORF_TOLERANCE, 0},
+{828, 3154720153u, 3443720494u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{829, 1262863321u, 1219003129u, 1262863321u, 0, FLOORF_TOLERANCE, 0},
+{830, 882902102u, 1224362550u, 0u, 0, FLOORF_TOLERANCE, 0},
+{831, 1053387478u, 3184880021u, 0u, 0, FLOORF_TOLERANCE, 0},
+{832, 3387653691u, 3347783852u, 3387653696u, 0, FLOORF_TOLERANCE, 0},
+{833, 3136364836u, 1018492227u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{834, 1338680611u, 1166078045u, 1338680611u, 0, FLOORF_TOLERANCE, 0},
+{835, 1112891928u, 3074730425u, 1112801280u, 0, FLOORF_TOLERANCE, 0},
+{836, 893449284u, 1052877339u, 0u, 0, FLOORF_TOLERANCE, 0},
+{837, 892311459u, 1097338393u, 0u, 0, FLOORF_TOLERANCE, 0},
+{838, 3105373037u, 3246705916u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{839, 1190105283u, 3033907262u, 1190105088u, 0, FLOORF_TOLERANCE, 0},
+{840, 1011225926u, 1180485180u, 0u, 0, FLOORF_TOLERANCE, 0},
+{841, 1043025031u, 987068973u, 0u, 0, FLOORF_TOLERANCE, 0},
+{842, 3410531037u, 2953541915u, 3410531038u, 0, FLOORF_TOLERANCE, 0},
+{843, 3125834184u, 896953754u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{844, 902318189u, 849277289u, 0u, 0, FLOORF_TOLERANCE, 0},
+{845, 3213624815u, 2987148017u, 3221225472u, 0, FLOORF_TOLERANCE, 0},
+{846, 1120888322u, 1086209113u, 1120796672u, 0, FLOORF_TOLERANCE, 0},
+{847, 1315217243u, 3396371713u, 1315217243u, 0, FLOORF_TOLERANCE, 0},
+{848, 3137758475u, 1039403054u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{849, 1040617590u, 1034835971u, 0u, 0, FLOORF_TOLERANCE, 0},
+{850, 955384253u, 3344785562u, 0u, 0, FLOORF_TOLERANCE, 0},
+{851, 3061417900u, 1172208065u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{852, 904255535u, 1019967545u, 0u, 0, FLOORF_TOLERANCE, 0},
+{853, 1022984119u, 3113891410u, 0u, 0, FLOORF_TOLERANCE, 0},
+{854, 997362368u, 3112875428u, 0u, 0, FLOORF_TOLERANCE, 0},
+{855, 900933520u, 1100589187u, 0u, 0, FLOORF_TOLERANCE, 0},
+{856, 1168623062u, 1143306482u, 1168621568u, 0, FLOORF_TOLERANCE, 0},
+{857, 878737490u, 3269908326u, 0u, 0, FLOORF_TOLERANCE, 0},
+{858, 1039827284u, 1072928888u, 0u, 0, FLOORF_TOLERANCE, 0},
+{859, 1021564080u, 1064468397u, 0u, 0, FLOORF_TOLERANCE, 0},
+{860, 3458669745u, 3033299853u, 3458669745u, 0, FLOORF_TOLERANCE, 0},
+{861, 3327516316u, 3405380971u, 3327516672u, 0, FLOORF_TOLERANCE, 0},
+{862, 1040711112u, 3229444200u, 0u, 0, FLOORF_TOLERANCE, 0},
+{863, 1134528351u, 3365952513u, 1134526464u, 0, FLOORF_TOLERANCE, 0},
+{864, 3039884464u, 1170612785u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{865, 3414352838u, 3350285760u, 3414352838u, 0, FLOORF_TOLERANCE, 0},
+{866, 1133689539u, 1067460093u, 1133674496u, 0, FLOORF_TOLERANCE, 0},
+{867, 3455688478u, 3333091960u, 3455688478u, 0, FLOORF_TOLERANCE, 0},
+{868, 1137634874u, 1137038869u, 1137606656u, 0, FLOORF_TOLERANCE, 0},
+{869, 3415502662u, 955510692u, 3415502662u, 0, FLOORF_TOLERANCE, 0},
+{870, 954999730u, 969618597u, 0u, 0, FLOORF_TOLERANCE, 0},
+{871, 1066157309u, 3241712664u, 1065353216u, 0, FLOORF_TOLERANCE, 0},
+{872, 3436353675u, 1174967495u, 3436353675u, 0, FLOORF_TOLERANCE, 0},
+{873, 940437609u, 860372396u, 0u, 0, FLOORF_TOLERANCE, 0},
+{874, 3108347547u, 3434003435u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{875, 3064200154u, 3158080507u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{876, 1023889593u, 2979304683u, 0u, 0, FLOORF_TOLERANCE, 0},
+{877, 3272661536u, 3461799138u, 3272671232u, 0, FLOORF_TOLERANCE, 0},
+{878, 1170245333u, 1233406410u, 1170243584u, 0, FLOORF_TOLERANCE, 0},
+{879, 1219052056u, 3369557946u, 1219052032u, 0, FLOORF_TOLERANCE, 0},
+{880, 3318983619u, 3259663338u, 3318984704u, 0, FLOORF_TOLERANCE, 0},
+{881, 3372118621u, 837597103u, 3372118624u, 0, FLOORF_TOLERANCE, 0},
+{882, 3146190320u, 889646054u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{883, 1299683827u, 966031619u, 1299683827u, 0, FLOORF_TOLERANCE, 0},
+{884, 3190796331u, 1320011850u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{885, 3086068902u, 3484245751u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{886, 3064155399u, 3176569312u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{887, 3040314717u, 1071290674u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{888, 3257224022u, 3361778245u, 3257401344u, 0, FLOORF_TOLERANCE, 0},
+{889, 1229268598u, 1066965677u, 1229268592u, 0, FLOORF_TOLERANCE, 0},
+{890, 3184078812u, 871003709u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{891, 1086717248u, 3423795374u, 1086324736u, 0, FLOORF_TOLERANCE, 0},
+{892, 3434884607u, 3029593823u, 3434884607u, 0, FLOORF_TOLERANCE, 0},
+{893, 3464955606u, 1017987696u, 3464955606u, 0, FLOORF_TOLERANCE, 0},
+{894, 1025278524u, 3121856207u, 0u, 0, FLOORF_TOLERANCE, 0},
+{895, 1242829722u, 3233935671u, 1242829720u, 0, FLOORF_TOLERANCE, 0},
+{896, 3075149137u, 1117325737u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{897, 1200927971u, 1317167489u, 1200927872u, 0, FLOORF_TOLERANCE, 0},
+{898, 3326858092u, 3452602832u, 3326858240u, 0, FLOORF_TOLERANCE, 0},
+{899, 1246019790u, 850632217u, 1246019788u, 0, FLOORF_TOLERANCE, 0},
+{900, 3184801644u, 1137974313u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{901, 1136052740u, 3244616020u, 1136033792u, 0, FLOORF_TOLERANCE, 0},
+{902, 1069009211u, 3002507482u, 1065353216u, 0, FLOORF_TOLERANCE, 0},
+{903, 1015670780u, 1101217251u, 0u, 0, FLOORF_TOLERANCE, 0},
+{904, 1012543234u, 1116520440u, 0u, 0, FLOORF_TOLERANCE, 0},
+{905, 3316611992u, 3394732912u, 3316613120u, 0, FLOORF_TOLERANCE, 0},
+{906, 1087942795u, 3316660295u, 1086324736u, 0, FLOORF_TOLERANCE, 0},
+{907, 3426365713u, 3069778532u, 3426365713u, 0, FLOORF_TOLERANCE, 0},
+{908, 3066654389u, 3443934204u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{909, 3295326432u, 1313396175u, 3295330304u, 0, FLOORF_TOLERANCE, 0},
+{910, 3318835308u, 3277583511u, 3318837248u, 0, FLOORF_TOLERANCE, 0},
+{911, 3283555717u, 891875120u, 3283582976u, 0, FLOORF_TOLERANCE, 0},
+{912, 3381255420u, 3015406047u, 3381255424u, 0, FLOORF_TOLERANCE, 0},
+{913, 3040485181u, 3375450886u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{914, 3388772093u, 1032597076u, 3388772096u, 0, FLOORF_TOLERANCE, 0},
+{915, 954670189u, 1144923689u, 0u, 0, FLOORF_TOLERANCE, 0},
+{916, 1319200415u, 3387555900u, 1319200415u, 0, FLOORF_TOLERANCE, 0},
+{917, 1279324488u, 3228401212u, 1279324488u, 0, FLOORF_TOLERANCE, 0},
+{918, 3217795424u, 865577227u, 3221225472u, 0, FLOORF_TOLERANCE, 0},
+{919, 3455131757u, 1260217257u, 3455131757u, 0, FLOORF_TOLERANCE, 0},
+{920, 1246947517u, 1087951909u, 1246947516u, 0, FLOORF_TOLERANCE, 0},
+{921, 3396723577u, 869285240u, 3396723580u, 0, FLOORF_TOLERANCE, 0},
+{922, 3433761025u, 3060143904u, 3433761025u, 0, FLOORF_TOLERANCE, 0},
+{923, 3201187455u, 900233172u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{924, 1173247961u, 1191127979u, 1173245952u, 0, FLOORF_TOLERANCE, 0},
+{925, 3037297123u, 3346394818u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{926, 3248534678u, 1323683800u, 3249012736u, 0, FLOORF_TOLERANCE, 0},
+{927, 3083019343u, 3033309444u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{928, 3042018375u, 3203882372u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{929, 1082862511u, 3032804719u, 1082130432u, 0, FLOORF_TOLERANCE, 0},
+{930, 3157626955u, 3483653298u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{931, 1341821683u, 3003675365u, 1341821683u, 0, FLOORF_TOLERANCE, 0},
+{932, 881101379u, 1190838126u, 0u, 0, FLOORF_TOLERANCE, 0},
+{933, 1079061705u, 2960507663u, 1077936128u, 0, FLOORF_TOLERANCE, 0},
+{934, 3182695954u, 3256861672u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{935, 1105291533u, 3482971524u, 1105199104u, 0, FLOORF_TOLERANCE, 0},
+{936, 1016023520u, 3227712090u, 0u, 0, FLOORF_TOLERANCE, 0},
+{937, 3370691006u, 1295870514u, 3370691008u, 0, FLOORF_TOLERANCE, 0},
+{938, 1156767169u, 1049756240u, 1156759552u, 0, FLOORF_TOLERANCE, 0},
+{939, 3077020499u, 894671462u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{940, 1104284039u, 3040211914u, 1104150528u, 0, FLOORF_TOLERANCE, 0},
+{941, 3335212901u, 3486414589u, 3335213056u, 0, FLOORF_TOLERANCE, 0},
+{942, 1093697541u, 3193708441u, 1093664768u, 0, FLOORF_TOLERANCE, 0},
+{943, 3266691185u, 1160074593u, 3266707456u, 0, FLOORF_TOLERANCE, 0},
+{944, 3179003144u, 1108615803u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{945, 1094115255u, 3008610212u, 1093664768u, 0, FLOORF_TOLERANCE, 0},
+{946, 3424086808u, 3260140004u, 3424086808u, 0, FLOORF_TOLERANCE, 0},
+{947, 3353608773u, 1134068114u, 3353608832u, 0, FLOORF_TOLERANCE, 0},
+{948, 973664327u, 1319516167u, 0u, 0, FLOORF_TOLERANCE, 0},
+{949, 882878091u, 3136970767u, 0u, 0, FLOORF_TOLERANCE, 0},
+{950, 1098662266u, 833740182u, 1097859072u, 0, FLOORF_TOLERANCE, 0},
+{951, 927582555u, 947955456u, 0u, 0, FLOORF_TOLERANCE, 0},
+{952, 3111440310u, 3067634077u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{953, 3476083859u, 966439623u, 3476083859u, 0, FLOORF_TOLERANCE, 0},
+{954, 3038754840u, 932009686u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{955, 979878744u, 1232482646u, 0u, 0, FLOORF_TOLERANCE, 0},
+{956, 3464546616u, 3205527253u, 3464546616u, 0, FLOORF_TOLERANCE, 0},
+{957, 1002542205u, 3152136093u, 0u, 0, FLOORF_TOLERANCE, 0},
+{958, 3443552129u, 3165561391u, 3443552129u, 0, FLOORF_TOLERANCE, 0},
+{959, 1287620154u, 3119707283u, 1287620154u, 0, FLOORF_TOLERANCE, 0},
+{960, 946058434u, 1249928879u, 0u, 0, FLOORF_TOLERANCE, 0},
+{961, 3073260205u, 3093124531u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{962, 1245702957u, 894348966u, 1245702956u, 0, FLOORF_TOLERANCE, 0},
+{963, 989655126u, 1308376568u, 0u, 0, FLOORF_TOLERANCE, 0},
+{964, 1002715618u, 1191006977u, 0u, 0, FLOORF_TOLERANCE, 0},
+{965, 3087802274u, 897541752u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{966, 1000863905u, 1196831314u, 0u, 0, FLOORF_TOLERANCE, 0},
+{967, 3415763001u, 3032518431u, 3415763002u, 0, FLOORF_TOLERANCE, 0},
+{968, 3283471961u, 1260093226u, 3283484672u, 0, FLOORF_TOLERANCE, 0},
+{969, 3311210827u, 1192192264u, 3311214592u, 0, FLOORF_TOLERANCE, 0},
+{970, 3026311911u, 2968974374u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{971, 1198307901u, 1116328249u, 1198307840u, 0, FLOORF_TOLERANCE, 0},
+{972, 1288901567u, 1296370667u, 1288901567u, 0, FLOORF_TOLERANCE, 0},
+{973, 922255363u, 958305289u, 0u, 0, FLOORF_TOLERANCE, 0},
+{974, 1113104661u, 944376032u, 1113063424u, 0, FLOORF_TOLERANCE, 0},
+{975, 1136714348u, 828849087u, 1136689152u, 0, FLOORF_TOLERANCE, 0},
+{976, 948856035u, 1015466475u, 0u, 0, FLOORF_TOLERANCE, 0},
+{977, 1062512367u, 3229559531u, 0u, 0, FLOORF_TOLERANCE, 0},
+{978, 3486907092u, 823220784u, 3486907092u, 0, FLOORF_TOLERANCE, 0},
+{979, 1162027071u, 3308983387u, 1162027008u, 0, FLOORF_TOLERANCE, 0},
+{980, 1034561811u, 1054043114u, 0u, 0, FLOORF_TOLERANCE, 0},
+{981, 3271615417u, 3209997200u, 3271622656u, 0, FLOORF_TOLERANCE, 0},
+{982, 1042014529u, 1146708584u, 0u, 0, FLOORF_TOLERANCE, 0},
+{983, 1177157787u, 3090208179u, 1177157632u, 0, FLOORF_TOLERANCE, 0},
+{984, 3196144817u, 1056118717u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{985, 3432084552u, 2997091781u, 3432084552u, 0, FLOORF_TOLERANCE, 0},
+{986, 1309658335u, 1010219988u, 1309658335u, 0, FLOORF_TOLERANCE, 0},
+{987, 1226494979u, 2991604792u, 1226494976u, 0, FLOORF_TOLERANCE, 0},
+{988, 3100289712u, 3456334210u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{989, 3375507013u, 1306310823u, 3375507024u, 0, FLOORF_TOLERANCE, 0},
+{990, 3460699001u, 3096700943u, 3460699001u, 0, FLOORF_TOLERANCE, 0},
+{991, 3079231719u, 1044386263u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{992, 3093951884u, 1014115231u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{993, 3468023178u, 1209565017u, 3468023178u, 0, FLOORF_TOLERANCE, 0},
+{994, 1204196034u, 3298625731u, 1204195968u, 0, FLOORF_TOLERANCE, 0},
+{995, 3459877411u, 2960476959u, 3459877411u, 0, FLOORF_TOLERANCE, 0},
+{996, 909696559u, 1163075690u, 0u, 0, FLOORF_TOLERANCE, 0},
+{997, 1161439847u, 943449277u, 1161437184u, 0, FLOORF_TOLERANCE, 0},
+{998, 908663107u, 939489763u, 0u, 0, FLOORF_TOLERANCE, 0},
+{999, 1055319316u, 3261813492u, 0u, 0, FLOORF_TOLERANCE, 0},
+{1000, 1084378658u, 1009650785u, 1084227584u, 0, FLOORF_TOLERANCE, 0},
+{1001, 3053887750u, 3341786453u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{1002, 3022828828u, 881335251u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{1003, 1226473697u, 821025132u, 1226473696u, 0, FLOORF_TOLERANCE, 0},
+{1004, 1123114742u, 1229815537u, 1123024896u, 0, FLOORF_TOLERANCE, 0},
+{1005, 1258114435u, 1291336083u, 1258114434u, 0, FLOORF_TOLERANCE, 0},
+{1006, 3468040845u, 3066966245u, 3468040845u, 0, FLOORF_TOLERANCE, 0},
+{1007, 1178825761u, 1113195286u, 1178825728u, 0, FLOORF_TOLERANCE, 0},
+{1008, 3059266302u, 878503862u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{1009, 3223384012u, 1130486973u, 3225419776u, 0, FLOORF_TOLERANCE, 0},
+{1010, 1019964626u, 1235133609u, 0u, 0, FLOORF_TOLERANCE, 0},
+{1011, 3445262427u, 3465211174u, 3445262427u, 0, FLOORF_TOLERANCE, 0},
+{1012, 1125653081u, 1207799746u, 1125646336u, 0, FLOORF_TOLERANCE, 0},
+{1013, 3337652712u, 3025581813u, 3337652736u, 0, FLOORF_TOLERANCE, 0},
+{1014, 1184753508u, 3147374485u, 1184753152u, 0, FLOORF_TOLERANCE, 0},
+{1015, 996404791u, 3353251979u, 0u, 0, FLOORF_TOLERANCE, 0},
+{1016, 1188439315u, 1113484271u, 1188439040u, 0, FLOORF_TOLERANCE, 0},
+{1017, 906557513u, 3006513432u, 0u, 0, FLOORF_TOLERANCE, 0},
+{1018, 916831283u, 999465787u, 0u, 0, FLOORF_TOLERANCE, 0},
+{1019, 996786317u, 3179221951u, 0u, 0, FLOORF_TOLERANCE, 0},
+{1020, 3461635065u, 1004690387u, 3461635065u, 0, FLOORF_TOLERANCE, 0},
+{1021, 1188167943u, 1200744896u, 1188167680u, 0, FLOORF_TOLERANCE, 0},
+{1022, 3036502395u, 1172597364u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{1023, 891257783u, 1267560050u, 0u, 0, FLOORF_TOLERANCE, 0},
+{1024, 3290079438u, 846519377u, 3290087424u, 0, FLOORF_TOLERANCE, 0},
+{1025, 3350690327u, 2967953392u, 3350690432u, 0, FLOORF_TOLERANCE, 0},
+{1026, 1102061604u, 3424449935u, 1102053376u, 0, FLOORF_TOLERANCE, 0},
+{1027, 1282351521u, 3039376424u, 1282351521u, 0, FLOORF_TOLERANCE, 0},
+{1028, 3458861065u, 3392466405u, 3458861065u, 0, FLOORF_TOLERANCE, 0},
+{1029, 3095256878u, 1023623326u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{1030, 3163373610u, 843150426u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{1031, 3228793330u, 855146890u, 3229614080u, 0, FLOORF_TOLERANCE, 0},
+{1032, 3422194733u, 893873945u, 3422194733u, 0, FLOORF_TOLERANCE, 0},
+{1033, 3083885296u, 974543672u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{1034, 1261940623u, 3402349985u, 1261940622u, 0, FLOORF_TOLERANCE, 0},
+{1035, 3400603081u, 3234396843u, 3400603082u, 0, FLOORF_TOLERANCE, 0},
+{1036, 1219411812u, 2961857939u, 1219411808u, 0, FLOORF_TOLERANCE, 0},
+{1037, 3094833770u, 805351108u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{1038, 3139250800u, 3079109479u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{1039, 886201503u, 3272760705u, 0u, 0, FLOORF_TOLERANCE, 0},
+{1040, 3297366026u, 1089966380u, 3297370112u, 0, FLOORF_TOLERANCE, 0},
+{1041, 1218488455u, 3309646450u, 1218488448u, 0, FLOORF_TOLERANCE, 0},
+{1042, 3040358923u, 3093401553u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{1043, 1283938137u, 1196383822u, 1283938137u, 0, FLOORF_TOLERANCE, 0},
+{1044, 3182551696u, 3029982441u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{1045, 1317098613u, 949986176u, 1317098613u, 0, FLOORF_TOLERANCE, 0},
+{1046, 3116209179u, 3303588342u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{1047, 3431703657u, 3014443710u, 3431703657u, 0, FLOORF_TOLERANCE, 0},
+{1048, 3239728775u, 927815421u, 3240099840u, 0, FLOORF_TOLERANCE, 0},
+{1049, 3207141672u, 933456504u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{1050, 3154378805u, 905462392u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{1051, 3069658155u, 1041452042u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{1052, 3313160088u, 2964063309u, 3313160192u, 0, FLOORF_TOLERANCE, 0},
+{1053, 3207056527u, 3384206601u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{1054, 1284174954u, 3436881197u, 1284174954u, 0, FLOORF_TOLERANCE, 0},
+{1055, 3156081645u, 3308839704u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{1056, 1063693032u, 976661408u, 0u, 0, FLOORF_TOLERANCE, 0},
+{1057, 3036026175u, 1251203998u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{1058, 1102631663u, 3396951425u, 1102577664u, 0, FLOORF_TOLERANCE, 0},
+{1059, 968803479u, 992989712u, 0u, 0, FLOORF_TOLERANCE, 0},
+{1060, 3273080388u, 3109405906u, 3273129984u, 0, FLOORF_TOLERANCE, 0},
+{1061, 1172529774u, 3294550127u, 1172529152u, 0, FLOORF_TOLERANCE, 0},
+{1062, 1306695905u, 1292690378u, 1306695905u, 0, FLOORF_TOLERANCE, 0},
+{1063, 1003649752u, 1218792138u, 0u, 0, FLOORF_TOLERANCE, 0},
+{1064, 1078478376u, 1326246424u, 1077936128u, 0, FLOORF_TOLERANCE, 0},
+{1065, 3158855023u, 3151283866u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{1066, 1165177679u, 3276237026u, 1165176832u, 0, FLOORF_TOLERANCE, 0},
+{1067, 3403009513u, 3381966453u, 3403009514u, 0, FLOORF_TOLERANCE, 0},
+{1068, 952348506u, 3377573987u, 0u, 0, FLOORF_TOLERANCE, 0},
+{1069, 1222777442u, 1125769920u, 1222777440u, 0, FLOORF_TOLERANCE, 0},
+{1070, 1325324763u, 978336043u, 1325324763u, 0, FLOORF_TOLERANCE, 0},
+{1071, 3363524213u, 3202991311u, 3363524224u, 0, FLOORF_TOLERANCE, 0},
+{1072, 1158950321u, 1073578913u, 1158946816u, 0, FLOORF_TOLERANCE, 0},
+{1073, 903129873u, 3416864271u, 0u, 0, FLOORF_TOLERANCE, 0},
+{1074, 3078339944u, 988173985u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{1075, 1208345407u, 1254181270u, 1208345344u, 0, FLOORF_TOLERANCE, 0},
+{1076, 1258634105u, 1247426200u, 1258634104u, 0, FLOORF_TOLERANCE, 0},
+{1077, 1248478509u, 1287895126u, 1248478508u, 0, FLOORF_TOLERANCE, 0},
+{1078, 1153863988u, 3430539165u, 1153859584u, 0, FLOORF_TOLERANCE, 0},
+{1079, 1235620969u, 866627358u, 1235620968u, 0, FLOORF_TOLERANCE, 0},
+{1080, 1097120930u, 3221726305u, 1096810496u, 0, FLOORF_TOLERANCE, 0},
+{1081, 3469778622u, 1200179013u, 3469778622u, 0, FLOORF_TOLERANCE, 0},
+{1082, 1147712200u, 931865525u, 1147699200u, 0, FLOORF_TOLERANCE, 0},
+{1083, 1124721745u, 3058969650u, 1124663296u, 0, FLOORF_TOLERANCE, 0},
+{1084, 3261744304u, 1043806501u, 3261857792u, 0, FLOORF_TOLERANCE, 0},
+{1085, 1064922416u, 1320485628u, 0u, 0, FLOORF_TOLERANCE, 0},
+{1086, 3303160152u, 3075455322u, 3303161856u, 0, FLOORF_TOLERANCE, 0},
+{1087, 1315090496u, 3269683237u, 1315090496u, 0, FLOORF_TOLERANCE, 0},
+{1088, 3230403187u, 1322841992u, 3231711232u, 0, FLOORF_TOLERANCE, 0},
+{1089, 1335399673u, 974138676u, 1335399673u, 0, FLOORF_TOLERANCE, 0},
+{1090, 1072458508u, 3372833993u, 1065353216u, 0, FLOORF_TOLERANCE, 0},
+{1091, 3303015249u, 3015039539u, 3303022592u, 0, FLOORF_TOLERANCE, 0},
+{1092, 3252139741u, 1059615003u, 3252158464u, 0, FLOORF_TOLERANCE, 0},
+{1093, 3468519966u, 3113982619u, 3468519966u, 0, FLOORF_TOLERANCE, 0},
+{1094, 1006231203u, 897530770u, 0u, 0, FLOORF_TOLERANCE, 0},
+{1095, 951554138u, 1001144381u, 0u, 0, FLOORF_TOLERANCE, 0},
+{1096, 942046828u, 986341002u, 0u, 0, FLOORF_TOLERANCE, 0},
+{1097, 3319723279u, 3414482416u, 3319724032u, 0, FLOORF_TOLERANCE, 0},
+{1098, 3255104167u, 928827688u, 3255304192u, 0, FLOORF_TOLERANCE, 0},
+{1099, 1155477903u, 3104812800u, 1155473408u, 0, FLOORF_TOLERANCE, 0},
+{1100, 3273889176u, 980486479u, 3273916416u, 0, FLOORF_TOLERANCE, 0},
+{1101, 3237813668u, 3441016803u, 3238002688u, 0, FLOORF_TOLERANCE, 0},
+{1102, 1228207362u, 2985476579u, 1228207360u, 0, FLOORF_TOLERANCE, 0},
+{1103, 975349337u, 1311932596u, 0u, 0, FLOORF_TOLERANCE, 0},
+{1104, 1290175785u, 3008182462u, 1290175785u, 0, FLOORF_TOLERANCE, 0},
+{1105, 981908840u, 3314038398u, 0u, 0, FLOORF_TOLERANCE, 0},
+{1106, 941187647u, 1107765599u, 0u, 0, FLOORF_TOLERANCE, 0},
+{1107, 1214223128u, 3225536822u, 1214223104u, 0, FLOORF_TOLERANCE, 0},
+{1108, 3422922584u, 1086391131u, 3422922584u, 0, FLOORF_TOLERANCE, 0},
+{1109, 1315857601u, 3487600045u, 1315857601u, 0, FLOORF_TOLERANCE, 0},
+{1110, 3453226030u, 3233768835u, 3453226030u, 0, FLOORF_TOLERANCE, 0},
+{1111, 1078359574u, 3199175230u, 1077936128u, 0, FLOORF_TOLERANCE, 0},
+{1112, 1029557624u, 3302959071u, 0u, 0, FLOORF_TOLERANCE, 0},
+{1113, 1207675424u, 3042692550u, 1207675392u, 0, FLOORF_TOLERANCE, 0},
+{1114, 1028355074u, 3442294040u, 0u, 0, FLOORF_TOLERANCE, 0},
+{1115, 3119299090u, 1187096397u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{1116, 1248421894u, 3367769132u, 1248421892u, 0, FLOORF_TOLERANCE, 0},
+{1117, 3353251994u, 1095517730u, 3353252096u, 0, FLOORF_TOLERANCE, 0},
+{1118, 876926659u, 3288089977u, 0u, 0, FLOORF_TOLERANCE, 0},
+{1119, 1076752219u, 876236939u, 1073741824u, 0, FLOORF_TOLERANCE, 0},
+{1120, 3388531942u, 2988520062u, 3388531944u, 0, FLOORF_TOLERANCE, 0},
+{1121, 1273395082u, 3031189261u, 1273395082u, 0, FLOORF_TOLERANCE, 0},
+{1122, 3385588183u, 3258252464u, 3385588184u, 0, FLOORF_TOLERANCE, 0},
+{1123, 3192315328u, 3289489214u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{1124, 3441804648u, 3274638356u, 3441804648u, 0, FLOORF_TOLERANCE, 0},
+{1125, 3392827417u, 1277961150u, 3392827420u, 0, FLOORF_TOLERANCE, 0},
+{1126, 1161241793u, 1328003707u, 1161240576u, 0, FLOORF_TOLERANCE, 0},
+{1127, 3034494183u, 3041579130u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{1128, 1171318485u, 3374409104u, 1171316736u, 0, FLOORF_TOLERANCE, 0},
+{1129, 3047748143u, 831102792u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{1130, 1001216371u, 3052357038u, 0u, 0, FLOORF_TOLERANCE, 0},
+{1131, 912515889u, 1074635609u, 0u, 0, FLOORF_TOLERANCE, 0},
+{1132, 3391452505u, 897989232u, 3391452508u, 0, FLOORF_TOLERANCE, 0},
+{1133, 3249603369u, 3147662248u, 3250061312u, 0, FLOORF_TOLERANCE, 0},
+{1134, 1220264047u, 2960450369u, 1220264032u, 0, FLOORF_TOLERANCE, 0},
+{1135, 3169816394u, 988430929u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{1136, 3098997418u, 3002162688u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{1137, 3282212423u, 3174079140u, 3282239488u, 0, FLOORF_TOLERANCE, 0},
+{1138, 3352293320u, 3247843425u, 3352293376u, 0, FLOORF_TOLERANCE, 0},
+{1139, 3296358441u, 875645354u, 3296362496u, 0, FLOORF_TOLERANCE, 0},
+{1140, 1197828352u, 3245614728u, 1197828096u, 0, FLOORF_TOLERANCE, 0},
+{1141, 3340510371u, 914930263u, 3340510464u, 0, FLOORF_TOLERANCE, 0},
+{1142, 1127109339u, 3368125489u, 1127088128u, 0, FLOORF_TOLERANCE, 0},
+{1143, 909467381u, 1232375752u, 0u, 0, FLOORF_TOLERANCE, 0},
+{1144, 1200599955u, 2981200675u, 1200599936u, 0, FLOORF_TOLERANCE, 0},
+{1145, 962230977u, 2988248037u, 0u, 0, FLOORF_TOLERANCE, 0},
+{1146, 3192887808u, 3191848339u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{1147, 3237183876u, 3179379969u, 3238002688u, 0, FLOORF_TOLERANCE, 0},
+{1148, 939285924u, 3056079386u, 0u, 0, FLOORF_TOLERANCE, 0},
+{1149, 944050180u, 3452557879u, 0u, 0, FLOORF_TOLERANCE, 0},
+{1150, 3058135703u, 3090284601u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{1151, 3480592662u, 3261728191u, 3480592662u, 0, FLOORF_TOLERANCE, 0},
+{1152, 3061939312u, 3274418540u, 3212836864u, 0, FLOORF_TOLERANCE, 0},
+{1153, 1003299981u, 853295521u, 0u, 0, FLOORF_TOLERANCE, 0},
+{1154, 1155775526u, 1255814444u, 1155768320u, 0, FLOORF_TOLERANCE, 0},
+{1155, 1234491880u, 3408568717u, 1234491880u, 0, FLOORF_TOLERANCE, 0}
+
+// AUTOMATICALLY GENERATED VECTORS STOP
+
+};
+
+#endif // CYGONCE_LIBM_FLOORF_H multiple inclusion protection
+
+// EOF floorf.h
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/fmod.c b/ecos/packages/language/c/libm/current/tests/vectors/fmod.c
new file mode 100644
index 0000000..191fe56
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/fmod.c
@@ -0,0 +1,115 @@
+//===========================================================================
+//
+// fmod.c
+//
+// Test of fmod() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// Declarations for test system:
+//
+// TESTCASE_TYPE=CYG_TEST_MODULE
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include <cyg/infra/testcase.h> // Test infrastructure
+#include <math.h> // Header for this package
+#include <sys/ieeefp.h> // Cyg_libm_ieee_double_shape_type
+#include "vectors/vector_support.h"// extra support for math tests
+
+#include "vectors/fmod.h"
+
+// FUNCTIONS
+
+static void
+test( CYG_ADDRWORD data )
+{
+ cyg_ucount32 vec_size;
+ cyg_bool ret;
+
+ vec_size = sizeof(fmod_vec) / sizeof(Cyg_libm_test_double_vec_t);
+ ret = doTestVec( (CYG_ADDRWORD) &fmod, CYG_LIBM_TEST_VEC_DOUBLE,
+ CYG_LIBM_TEST_VEC_DOUBLE, CYG_LIBM_TEST_VEC_DOUBLE,
+ &fmod_vec[0], vec_size );
+
+ if (ret==true)
+ {
+ CYG_TEST_PASS("fmod() is stable");
+ } // if
+ else
+ {
+ CYG_TEST_FAIL("fmod() failed tests");
+ } // else
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for Math "
+ "library fmod() function");
+} // test()
+
+
+int
+main(int argc, char *argv[])
+{
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for Math library "
+ "fmod() function");
+
+ START_TEST( test );
+
+ CYG_TEST_PASS_FINISH("Testing is not applicable to this configuration");
+
+} // main()
+
+
+// EOF fmod.c
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/fmod.h b/ecos/packages/language/c/libm/current/tests/vectors/fmod.h
new file mode 100644
index 0000000..ae633d6
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/fmod.h
@@ -0,0 +1,1079 @@
+#ifndef CYGONCE_LIBM_FMOD_H
+#define CYGONCE_LIBM_FMOD_H
+//===========================================================================
+//
+// fmod.h
+//
+// Test vectors for testing of fmod() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage: #include "vectors/fmod.h"
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include "vectors/vector_support.h"// extra support for math tests
+
+#define FMOD_TOLERANCE 2.0E-04
+
+static const Cyg_libm_test_double_vec_t fmod_vec[] = {
+
+// AUTOMATICALLY GENERATED VECTORS START
+
+{ 1, 1077999148u, 2506787616u, 1090024059u, 3619148316u, 1077999148u, 2506787616u, 0, FMOD_TOLERANCE, 0},
+{ 2, 3218153654u, 3176730980u, 1051524793u, 2993920299u, 3198414321u, 846480232u, 0, FMOD_TOLERANCE, 0},
+{ 3, 3239659803u, 2725707538u, 3232101343u, 2346810316u, 3230861543u, 3523929528u, 0, FMOD_TOLERANCE, 0},
+{ 4, 1092554362u, 2088062470u, 3201242716u, 420891118u, 1051890679u, 202128524u, 0, FMOD_TOLERANCE, 0},
+{ 5, 3221200677u, 2636405208u, 1100049309u, 471635570u, 3221200677u, 2636405208u, 0, FMOD_TOLERANCE, 0},
+{ 6, 1089363191u, 1746012320u, 1054478713u, 3333988501u, 1054158384u, 1456435203u, 0, FMOD_TOLERANCE, 0},
+{ 7, 1047953160u, 183014794u, 3202039382u, 2016785810u, 1047953160u, 183014794u, 0, FMOD_TOLERANCE, 0},
+{ 8, 3213486034u, 2688957927u, 1046089230u, 2709029994u, 3192981049u, 3507147948u, 0, FMOD_TOLERANCE, 0},
+{ 9, 1058795730u, 624574473u, 1045840574u, 3473266330u, 1042678785u, 2651810544u, 0, FMOD_TOLERANCE, 0},
+{ 10, 3204919842u, 1605286142u, 1068931671u, 4233776869u, 3204919842u, 1605286142u, 0, FMOD_TOLERANCE, 0},
+{ 11, 1060343410u, 1857607719u, 3222889559u, 3417070006u, 1060343410u, 1857607719u, 0, FMOD_TOLERANCE, 0},
+{ 12, 1103599987u, 3981151660u, 1088899021u, 1332651746u, 1087743907u, 1908470912u, 0, FMOD_TOLERANCE, 0},
+{ 13, 1085298022u, 3824988054u, 1066856791u, 2070129652u, 1066704269u, 2005084196u, 0, FMOD_TOLERANCE, 0},
+{ 14, 3207559790u, 1372884064u, 1080833116u, 3229926662u, 3207559790u, 1372884064u, 0, FMOD_TOLERANCE, 0},
+{ 15, 1093826501u, 3217805330u, 3191644264u, 2014578707u, 1043643663u, 4276005052u, 0, FMOD_TOLERANCE, 0},
+{ 16, 1102287487u, 265058758u, 3239903247u, 1630600647u, 1088853470u, 3578838744u, 0, FMOD_TOLERANCE, 0},
+{ 17, 1071124229u, 1946677669u, 3198462609u, 926009897u, 1050234959u, 4012882244u, 0, FMOD_TOLERANCE, 0},
+{ 18, 1072130299u, 2271884183u, 3203741999u, 2118617783u, 1053757952u, 668308864u, 0, FMOD_TOLERANCE, 0},
+{ 19, 3194849109u, 213658772u, 3249401130u, 314151656u, 3194849109u, 213658772u, 0, FMOD_TOLERANCE, 0},
+{ 20, 3254112288u, 1564829925u, 3197817016u, 497230814u, 3194370383u, 289567216u, 0, FMOD_TOLERANCE, 0},
+{ 21, 3216262634u, 2075329122u, 3231746400u, 169900577u, 3216262634u, 2075329122u, 0, FMOD_TOLERANCE, 0},
+{ 22, 1049848642u, 541549344u, 1096608669u, 3119070100u, 1049848642u, 541549344u, 0, FMOD_TOLERANCE, 0},
+{ 23, 1085427055u, 567496114u, 1045286891u, 1969998540u, 1044823656u, 1336171868u, 0, FMOD_TOLERANCE, 0},
+{ 24, 1060548195u, 1299369769u, 1049342524u, 4167404066u, 1046610961u, 2503843096u, 0, FMOD_TOLERANCE, 0},
+{ 25, 3208865645u, 3348930841u, 1078472138u, 358457347u, 3208865645u, 3348930841u, 0, FMOD_TOLERANCE, 0},
+{ 26, 1071069297u, 2192461366u, 1099527247u, 3184735642u, 1071069297u, 2192461366u, 0, FMOD_TOLERANCE, 0},
+{ 27, 1052861772u, 331696577u, 3189610016u, 793242270u, 1039222015u, 810181536u, 0, FMOD_TOLERANCE, 0},
+{ 28, 3252528934u, 2322696981u, 1083791358u, 3020766674u, 3230733651u, 1514456654u, 0, FMOD_TOLERANCE, 0},
+{ 29, 1044902177u, 252085215u, 3214426435u, 4139068910u, 1044902177u, 252085215u, 0, FMOD_TOLERANCE, 0},
+{ 30, 3222505725u, 105589263u, 1056316170u, 261630827u, 3199769773u, 4036976400u, 0, FMOD_TOLERANCE, 0},
+{ 31, 1107213408u, 428765703u, 3251828686u, 2009972239u, 1103250771u, 785295236u, 0, FMOD_TOLERANCE, 0},
+{ 32, 1098568019u, 3517376586u, 3240257920u, 3304487302u, 1091988141u, 2703648344u, 0, FMOD_TOLERANCE, 0},
+{ 33, 3233537912u, 237004814u, 3237899261u, 3364008659u, 3233537912u, 237004814u, 0, FMOD_TOLERANCE, 0},
+{ 34, 3195247552u, 472004928u, 3226869477u, 1186387580u, 3195247552u, 472004928u, 0, FMOD_TOLERANCE, 0},
+{ 35, 1054226850u, 4085763910u, 1106394906u, 2684738273u, 1054226850u, 4085763910u, 0, FMOD_TOLERANCE, 0},
+{ 36, 1057053639u, 2055490142u, 3231581370u, 3879040079u, 1057053639u, 2055490142u, 0, FMOD_TOLERANCE, 0},
+{ 37, 3188976647u, 3725731239u, 1061652681u, 591292963u, 3188976647u, 3725731239u, 0, FMOD_TOLERANCE, 0},
+{ 38, 3225014981u, 1147041027u, 3215417793u, 624695933u, 3214251651u, 512172094u, 0, FMOD_TOLERANCE, 0},
+{ 39, 3206052774u, 705725219u, 3238067573u, 1116238321u, 3206052774u, 705725219u, 0, FMOD_TOLERANCE, 0},
+{ 40, 3207367088u, 7287411u, 1045917232u, 116067742u, 3192959568u, 1202236754u, 0, FMOD_TOLERANCE, 0},
+{ 41, 3240055222u, 3604989074u, 1066381836u, 545298780u, 3213065624u, 2721628400u, 0, FMOD_TOLERANCE, 0},
+{ 42, 3219080936u, 1681476121u, 1060345752u, 3553822398u, 3207333937u, 3094263432u, 0, FMOD_TOLERANCE, 0},
+{ 43, 1102831658u, 3410480388u, 1052460275u, 1660607230u, 1049521884u, 3304083232u, 0, FMOD_TOLERANCE, 0},
+{ 44, 1089216869u, 1494984673u, 3196647153u, 287894723u, 1046994322u, 61462516u, 0, FMOD_TOLERANCE, 0},
+{ 45, 1054885127u, 644548665u, 1081948134u, 2442134629u, 1054885127u, 644548665u, 0, FMOD_TOLERANCE, 0},
+{ 46, 1087554095u, 2312530895u, 3221584595u, 3379665576u, 1071380027u, 640657792u, 0, FMOD_TOLERANCE, 0},
+{ 47, 1096085375u, 3018463866u, 1086226574u, 404012923u, 1085897001u, 2676282550u, 0, FMOD_TOLERANCE, 0},
+{ 48, 1064733299u, 1710279345u, 3251401196u, 3528946000u, 1064733299u, 1710279345u, 0, FMOD_TOLERANCE, 0},
+{ 49, 1061536351u, 2164450219u, 1083520023u, 3312018966u, 1061536351u, 2164450219u, 0, FMOD_TOLERANCE, 0},
+{ 50, 1057248676u, 2648986431u, 1050330591u, 1474376550u, 1048011450u, 2538903400u, 0, FMOD_TOLERANCE, 0},
+{ 51, 3194422028u, 1839068700u, 1077406406u, 3013052171u, 3194422028u, 1839068700u, 0, FMOD_TOLERANCE, 0},
+{ 52, 1046493630u, 772102380u, 3220729740u, 4219039958u, 1046493630u, 772102380u, 0, FMOD_TOLERANCE, 0},
+{ 53, 3229472221u, 3058618779u, 1046304788u, 3338676024u, 3189222441u, 275821184u, 0, FMOD_TOLERANCE, 0},
+{ 54, 1051172137u, 506286854u, 1094907481u, 2217000199u, 1051172137u, 506286854u, 0, FMOD_TOLERANCE, 0},
+{ 55, 1082428310u, 1147428263u, 1065432625u, 3034786717u, 1060118125u, 3474068448u, 0, FMOD_TOLERANCE, 0},
+{ 56, 1082016752u, 2844125311u, 1082985198u, 2561492677u, 1082016752u, 2844125311u, 0, FMOD_TOLERANCE, 0},
+{ 57, 3211536916u, 704542600u, 3222902057u, 2762779203u, 3211536916u, 704542600u, 0, FMOD_TOLERANCE, 0},
+{ 58, 3199680614u, 184131949u, 3249723525u, 1667366082u, 3199680614u, 184131949u, 0, FMOD_TOLERANCE, 0},
+{ 59, 3223609598u, 3904224140u, 1067056698u, 2942159914u, 3213199305u, 1930728556u, 0, FMOD_TOLERANCE, 0},
+{ 60, 1100636863u, 426114282u, 3209056785u, 1083606355u, 1061172644u, 445625924u, 0, FMOD_TOLERANCE, 0},
+{ 61, 1106165945u, 3774123863u, 1106787580u, 2722107965u, 1106165945u, 3774123863u, 0, FMOD_TOLERANCE, 0},
+{ 62, 1088005092u, 1377734762u, 1104232051u, 2377063483u, 1088005092u, 1377734762u, 0, FMOD_TOLERANCE, 0},
+{ 63, 1069380559u, 1029739074u, 1105467109u, 3062201018u, 1069380559u, 1029739074u, 0, FMOD_TOLERANCE, 0},
+{ 64, 3234741597u, 773857656u, 3214251949u, 335833884u, 3213092186u, 1578673304u, 0, FMOD_TOLERANCE, 0},
+{ 65, 3203224610u, 1473865960u, 1103073830u, 4000427507u, 3203224610u, 1473865960u, 0, FMOD_TOLERANCE, 0},
+{ 66, 1103185231u, 4242092620u, 1067009473u, 14539161u, 1066461344u, 779766623u, 0, FMOD_TOLERANCE, 0},
+{ 67, 3192516074u, 1732245037u, 1101371955u, 1533536108u, 3192516074u, 1732245037u, 0, FMOD_TOLERANCE, 0},
+{ 68, 3249153995u, 1833841275u, 1099430098u, 4144145552u, 3245438915u, 2992402264u, 0, FMOD_TOLERANCE, 0},
+{ 69, 3244270463u, 935007012u, 3188865420u, 604442938u, 3184940766u, 384929376u, 0, FMOD_TOLERANCE, 0},
+{ 70, 3206903253u, 2211464602u, 1046255144u, 1635910526u, 3193436299u, 4040515210u, 0, FMOD_TOLERANCE, 0},
+{ 71, 1077871417u, 2549219008u, 3231633258u, 3733639385u, 1077871417u, 2549219008u, 0, FMOD_TOLERANCE, 0},
+{ 72, 1082095089u, 1819374372u, 3202219056u, 2617077637u, 1050449491u, 1455661568u, 0, FMOD_TOLERANCE, 0},
+{ 73, 1094345280u, 546465680u, 1048653554u, 532401530u, 1046597881u, 4071356792u, 0, FMOD_TOLERANCE, 0},
+{ 74, 1044571091u, 2759019783u, 3221570188u, 3554409630u, 1044571091u, 2759019783u, 0, FMOD_TOLERANCE, 0},
+{ 75, 3212931282u, 2527221960u, 1099107978u, 2696971136u, 3212931282u, 2527221960u, 0, FMOD_TOLERANCE, 0},
+{ 76, 1097158000u, 173134582u, 1087299442u, 2877794600u, 1086424556u, 992696240u, 0, FMOD_TOLERANCE, 0},
+{ 77, 1086400474u, 547642046u, 3197285510u, 3521286127u, 1048144001u, 1315432332u, 0, FMOD_TOLERANCE, 0},
+{ 78, 1074860702u, 1231582831u, 1090971734u, 1653446832u, 1074860702u, 1231582831u, 0, FMOD_TOLERANCE, 0},
+{ 79, 1061342535u, 3762182190u, 3252967851u, 2615360375u, 1061342535u, 3762182190u, 0, FMOD_TOLERANCE, 0},
+{ 80, 3200834423u, 2588067350u, 3206610957u, 3551059728u, 3200834423u, 2588067350u, 0, FMOD_TOLERANCE, 0},
+{ 81, 3206978856u, 845263327u, 1073415902u, 1749010288u, 3206978856u, 845263327u, 0, FMOD_TOLERANCE, 0},
+{ 82, 3205576370u, 3092685191u, 3190678390u, 2872219490u, 3185606893u, 1941698816u, 0, FMOD_TOLERANCE, 0},
+{ 83, 3218315055u, 4107255722u, 3205337291u, 3069068345u, 3202283962u, 532003680u, 0, FMOD_TOLERANCE, 0},
+{ 84, 3243990857u, 2294867524u, 3216653996u, 2860384670u, 3213941601u, 3194242032u, 0, FMOD_TOLERANCE, 0},
+{ 85, 3193326350u, 2265437201u, 3240198679u, 1234948614u, 3193326350u, 2265437201u, 0, FMOD_TOLERANCE, 0},
+{ 86, 3216359929u, 1186945904u, 3251167793u, 1896750851u, 3216359929u, 1186945904u, 0, FMOD_TOLERANCE, 0},
+{ 87, 1081575478u, 3686084548u, 1079286273u, 3309277689u, 1078423976u, 3014454872u, 0, FMOD_TOLERANCE, 0},
+{ 88, 3223476240u, 3006860614u, 3231412671u, 2504194724u, 3223476240u, 3006860614u, 0, FMOD_TOLERANCE, 0},
+{ 89, 3236149260u, 1948717780u, 1048317852u, 3791803982u, 3191804834u, 805429888u, 0, FMOD_TOLERANCE, 0},
+{ 90, 1064345015u, 4272034420u, 3192982124u, 1526175922u, 1045109678u, 2938596596u, 0, FMOD_TOLERANCE, 0},
+{ 91, 3245817826u, 4108948538u, 1104691287u, 640541190u, 3245817826u, 4108948538u, 0, FMOD_TOLERANCE, 0},
+{ 92, 3207257417u, 3259274853u, 1082507103u, 3677038020u, 3207257417u, 3259274853u, 0, FMOD_TOLERANCE, 0},
+{ 93, 1083132498u, 3781708548u, 1096584871u, 1207386447u, 1083132498u, 3781708548u, 0, FMOD_TOLERANCE, 0},
+{ 94, 3188695272u, 3011191657u, 1103798670u, 1096124830u, 3188695272u, 3011191657u, 0, FMOD_TOLERANCE, 0},
+{ 95, 1063235023u, 2540404725u, 3240157452u, 4122845725u, 1063235023u, 2540404725u, 0, FMOD_TOLERANCE, 0},
+{ 96, 1083643710u, 311336721u, 3214382367u, 4212533768u, 1065798268u, 1892082032u, 0, FMOD_TOLERANCE, 0},
+{ 97, 1051139427u, 1769686293u, 3240200923u, 3538602249u, 1051139427u, 1769686293u, 0, FMOD_TOLERANCE, 0},
+{ 98, 1078227549u, 508056696u, 1103793878u, 776520138u, 1078227549u, 508056696u, 0, FMOD_TOLERANCE, 0},
+{ 99, 1102910577u, 4064962760u, 1077424413u, 819766631u, 1072921212u, 1068650464u, 0, FMOD_TOLERANCE, 0},
+{ 100, 1074178362u, 2112385259u, 3227593179u, 1187058516u, 1074178362u, 2112385259u, 0, FMOD_TOLERANCE, 0},
+{ 101, 1082295059u, 2514398118u, 1076579751u, 870169764u, 1075147679u, 2195223528u, 0, FMOD_TOLERANCE, 0},
+{ 102, 3246851392u, 1190259653u, 1069112254u, 3417249840u, 3216432510u, 1181302496u, 0, FMOD_TOLERANCE, 0},
+{ 103, 3193663083u, 3467757357u, 3215075200u, 2168175352u, 3193663083u, 3467757357u, 0, FMOD_TOLERANCE, 0},
+{ 104, 3239643135u, 1508888184u, 1060430241u, 3524949092u, 3207163480u, 4006693368u, 0, FMOD_TOLERANCE, 0},
+{ 105, 3197412883u, 166402802u, 3237198975u, 3572369260u, 3197412883u, 166402802u, 0, FMOD_TOLERANCE, 0},
+{ 106, 1081866822u, 2441536203u, 3202753937u, 3658194573u, 1054870393u, 984614982u, 0, FMOD_TOLERANCE, 0},
+{ 107, 1062392908u, 2479742828u, 1062342831u, 4214154303u, 1057518483u, 333407648u, 0, FMOD_TOLERANCE, 0},
+{ 108, 1082396794u, 426896765u, 1066474375u, 2201754442u, 1065525461u, 3035868180u, 0, FMOD_TOLERANCE, 0},
+{ 109, 3195629021u, 2055773734u, 3239267288u, 291396537u, 3195629021u, 2055773734u, 0, FMOD_TOLERANCE, 0},
+{ 110, 3236968033u, 874125203u, 3210508124u, 4091098764u, 3207268269u, 968254816u, 0, FMOD_TOLERANCE, 0},
+{ 111, 1065716026u, 120488169u, 3241241441u, 1985269424u, 1065716026u, 120488169u, 0, FMOD_TOLERANCE, 0},
+{ 112, 3206539410u, 2243036871u, 3243941101u, 740033495u, 3206539410u, 2243036871u, 0, FMOD_TOLERANCE, 0},
+{ 113, 3209424906u, 1176656356u, 1074261978u, 3588756231u, 3209424906u, 1176656356u, 0, FMOD_TOLERANCE, 0},
+{ 114, 3252816791u, 3037249392u, 1061635587u, 1173102190u, 3208114966u, 2221503008u, 0, FMOD_TOLERANCE, 0},
+{ 115, 3237209581u, 2882725208u, 1071440059u, 69225090u, 3216207957u, 93487448u, 0, FMOD_TOLERANCE, 0},
+{ 116, 3212663474u, 272319256u, 1072073912u, 2493997123u, 3212663474u, 272319256u, 0, FMOD_TOLERANCE, 0},
+{ 117, 1057720186u, 188610379u, 3232757923u, 2209647371u, 1057720186u, 188610379u, 0, FMOD_TOLERANCE, 0},
+{ 118, 3236758517u, 1990439193u, 1078073146u, 622849962u, 3224071073u, 3216289392u, 0, FMOD_TOLERANCE, 0},
+{ 119, 1057135741u, 756052458u, 1081649113u, 2247475162u, 1057135741u, 756052458u, 0, FMOD_TOLERANCE, 0},
+{ 120, 1061623064u, 3878055211u, 3222407050u, 2979438623u, 1061623064u, 3878055211u, 0, FMOD_TOLERANCE, 0},
+{ 121, 3195290997u, 2676398686u, 1105124431u, 3631096636u, 3195290997u, 2676398686u, 0, FMOD_TOLERANCE, 0},
+{ 122, 1065079390u, 1697791764u, 3198136112u, 2299842819u, 1049936853u, 1006339434u, 0, FMOD_TOLERANCE, 0},
+{ 123, 1078084768u, 1931502677u, 3215264397u, 3016456382u, 1062958820u, 2137065024u, 0, FMOD_TOLERANCE, 0},
+{ 124, 1072253426u, 343404215u, 1061072607u, 4266232536u, 1060973199u, 148095640u, 0, FMOD_TOLERANCE, 0},
+{ 125, 3241230836u, 4140316002u, 1082896196u, 868256971u, 3229749188u, 1307397164u, 0, FMOD_TOLERANCE, 0},
+{ 126, 1075422810u, 1864139509u, 3187675097u, 3084482407u, 1039920606u, 953688624u, 0, FMOD_TOLERANCE, 0},
+{ 127, 3220191323u, 2427162817u, 3234748208u, 2715105792u, 3220191323u, 2427162817u, 0, FMOD_TOLERANCE, 0},
+{ 128, 1064600512u, 3943389284u, 1046724025u, 3626825684u, 1046708981u, 2468407956u, 0, FMOD_TOLERANCE, 0},
+{ 129, 1045423002u, 967350972u, 1093012318u, 448002663u, 1045423002u, 967350972u, 0, FMOD_TOLERANCE, 0},
+{ 130, 3251845859u, 105058217u, 1069733884u, 171786224u, 3216327783u, 3231806144u, 0, FMOD_TOLERANCE, 0},
+{ 131, 3189614508u, 2863482262u, 3204997271u, 877784425u, 3189614508u, 2863482262u, 0, FMOD_TOLERANCE, 0},
+{ 132, 3202629313u, 2801782962u, 3213604117u, 762347195u, 3202629313u, 2801782962u, 0, FMOD_TOLERANCE, 0},
+{ 133, 3233486727u, 2317950339u, 3246333414u, 2135700283u, 3233486727u, 2317950339u, 0, FMOD_TOLERANCE, 0},
+{ 134, 1056516397u, 4171919805u, 1082858682u, 2180920863u, 1056516397u, 4171919805u, 0, FMOD_TOLERANCE, 0},
+{ 135, 3220149084u, 1918836931u, 1083603224u, 3137821660u, 3220149084u, 1918836931u, 0, FMOD_TOLERANCE, 0},
+{ 136, 1103902874u, 3456203663u, 3235600523u, 2335688936u, 1087710754u, 3975481920u, 0, FMOD_TOLERANCE, 0},
+{ 137, 1042279322u, 4170235262u, 1051824459u, 521583737u, 1042279322u, 4170235262u, 0, FMOD_TOLERANCE, 0},
+{ 138, 1081348303u, 1296623194u, 3250673860u, 2442872540u, 1081348303u, 1296623194u, 0, FMOD_TOLERANCE, 0},
+{ 139, 1061684277u, 289979405u, 1049514449u, 3865737145u, 1048380033u, 2100782952u, 0, FMOD_TOLERANCE, 0},
+{ 140, 1075298944u, 3699090239u, 1054539840u, 3259249360u, 1053559082u, 3331309056u, 0, FMOD_TOLERANCE, 0},
+{ 141, 1096418100u, 1619819023u, 1045993352u, 1022642459u, 1044995577u, 3049662866u, 0, FMOD_TOLERANCE, 0},
+{ 142, 1081433004u, 19455098u, 3229182089u, 2096003654u, 1081433004u, 19455098u, 0, FMOD_TOLERANCE, 0},
+{ 143, 1076297936u, 3803689997u, 1071630912u, 2263729518u, 1068742976u, 3731297016u, 0, FMOD_TOLERANCE, 0},
+{ 144, 1101357261u, 2816837387u, 1063422305u, 2597606398u, 1062013985u, 1260267472u, 0, FMOD_TOLERANCE, 0},
+{ 145, 1069100169u, 3680967506u, 1040201163u, 179224723u, 1038183958u, 240865380u, 0, FMOD_TOLERANCE, 0},
+{ 146, 3188629767u, 978126928u, 1101553990u, 4047893399u, 3188629767u, 978126928u, 0, FMOD_TOLERANCE, 0},
+{ 147, 3222322045u, 4059818629u, 1042678728u, 3640293589u, 3186778307u, 183897584u, 0, FMOD_TOLERANCE, 0},
+{ 148, 3248464040u, 3383497159u, 1070002807u, 1527313008u, 3215761312u, 2515226688u, 0, FMOD_TOLERANCE, 0},
+{ 149, 3202707679u, 2599946514u, 1104170406u, 2738675352u, 3202707679u, 2599946514u, 0, FMOD_TOLERANCE, 0},
+{ 150, 1105232623u, 3616571377u, 1060859316u, 1130603218u, 1060113323u, 1918397064u, 0, FMOD_TOLERANCE, 0},
+{ 151, 1076028796u, 3859211180u, 1067940450u, 1744531824u, 1063263077u, 2833661440u, 0, FMOD_TOLERANCE, 0},
+{ 152, 1042831340u, 1958025850u, 3236511256u, 2472176453u, 1042831340u, 1958025850u, 0, FMOD_TOLERANCE, 0},
+{ 153, 3233107089u, 182132862u, 3250520938u, 3924356991u, 3233107089u, 182132862u, 0, FMOD_TOLERANCE, 0},
+{ 154, 3230501884u, 35632886u, 3209806504u, 1453402523u, 3208824336u, 363458368u, 0, FMOD_TOLERANCE, 0},
+{ 155, 1083522102u, 743225214u, 3202890678u, 142917400u, 1055397496u, 2453240816u, 0, FMOD_TOLERANCE, 0},
+{ 156, 1080684976u, 1472665012u, 3203138231u, 256588219u, 1052680467u, 2130019016u, 0, FMOD_TOLERANCE, 0},
+{ 157, 1094982162u, 1062927000u, 1061134072u, 931677439u, 1058176236u, 2650129640u, 0, FMOD_TOLERANCE, 0},
+{ 158, 1058377732u, 2320910576u, 1055663370u, 288059864u, 1052577599u, 1567417216u, 0, FMOD_TOLERANCE, 0},
+{ 159, 1078958093u, 1448349062u, 3199478070u, 3454027134u, 1048880104u, 1970092992u, 0, FMOD_TOLERANCE, 0},
+{ 160, 3237458798u, 4215445172u, 3196654963u, 2231888973u, 3192950477u, 2687064832u, 0, FMOD_TOLERANCE, 0},
+{ 161, 3246632231u, 40413554u, 3232578253u, 983832844u, 3229329238u, 1435201568u, 0, FMOD_TOLERANCE, 0},
+{ 162, 3223721534u, 3995725873u, 1050082319u, 777231627u, 3197314102u, 376406797u, 0, FMOD_TOLERANCE, 0},
+{ 163, 1040986626u, 672789828u, 3253385962u, 2982787335u, 1040986626u, 672789828u, 0, FMOD_TOLERANCE, 0},
+{ 164, 1068390875u, 2075971825u, 1070166500u, 4034633931u, 1068390875u, 2075971825u, 0, FMOD_TOLERANCE, 0},
+{ 165, 3210046177u, 1018222907u, 3244621407u, 3090050495u, 3210046177u, 1018222907u, 0, FMOD_TOLERANCE, 0},
+{ 166, 1067680885u, 937732557u, 3200798890u, 2557898276u, 1051035947u, 4198290064u, 0, FMOD_TOLERANCE, 0},
+{ 167, 1078342316u, 130346162u, 3223590310u, 275568693u, 1074849839u, 3133187048u, 0, FMOD_TOLERANCE, 0},
+{ 168, 1042898869u, 3807416441u, 1075961161u, 3706820266u, 1042898869u, 3807416441u, 0, FMOD_TOLERANCE, 0},
+{ 169, 3216099005u, 1710131411u, 1078123323u, 1900790503u, 3216099005u, 1710131411u, 0, FMOD_TOLERANCE, 0},
+{ 170, 3238819361u, 3420420033u, 3210844787u, 588423066u, 3210660138u, 1172168608u, 0, FMOD_TOLERANCE, 0},
+{ 171, 1049684114u, 1160162008u, 3246307879u, 4265764460u, 1049684114u, 1160162008u, 0, FMOD_TOLERANCE, 0},
+{ 172, 1102543434u, 366653268u, 3188814424u, 466059202u, 1040561542u, 3805694048u, 0, FMOD_TOLERANCE, 0},
+{ 173, 3226627739u, 1325936170u, 3221436876u, 680097612u, 3220839162u, 1104385200u, 0, FMOD_TOLERANCE, 0},
+{ 174, 3240391116u, 1827735934u, 3200554324u, 2875599271u, 3199335839u, 3934511604u, 0, FMOD_TOLERANCE, 0},
+{ 175, 3191030402u, 3117037091u, 3239246636u, 15838845u, 3191030402u, 3117037091u, 0, FMOD_TOLERANCE, 0},
+{ 176, 1051974004u, 749718883u, 3223587064u, 1523766569u, 1051974004u, 749718883u, 0, FMOD_TOLERANCE, 0},
+{ 177, 1044833651u, 1966536294u, 3250158026u, 699164258u, 1044833651u, 1966536294u, 0, FMOD_TOLERANCE, 0},
+{ 178, 1098048435u, 3759049394u, 1106085272u, 1183789499u, 1098048435u, 3759049394u, 0, FMOD_TOLERANCE, 0},
+{ 179, 1081201623u, 1970107747u, 1095245453u, 2308233883u, 1081201623u, 1970107747u, 0, FMOD_TOLERANCE, 0},
+{ 180, 1084756444u, 1491017852u, 1041444355u, 1723375725u, 1040660169u, 3099529656u, 0, FMOD_TOLERANCE, 0},
+{ 181, 3216630070u, 1141349287u, 1097465301u, 3403438584u, 3216630070u, 1141349287u, 0, FMOD_TOLERANCE, 0},
+{ 182, 3230571908u, 1711085243u, 3250239076u, 1377484108u, 3230571908u, 1711085243u, 0, FMOD_TOLERANCE, 0},
+{ 183, 1098385019u, 2880275004u, 1084039594u, 1611394950u, 1081608503u, 2857540928u, 0, FMOD_TOLERANCE, 0},
+{ 184, 3234221435u, 2626629370u, 1063771493u, 1499080813u, 3209784175u, 2197776356u, 0, FMOD_TOLERANCE, 0},
+{ 185, 1055231263u, 3936262414u, 1103919063u, 3175668759u, 1055231263u, 3936262414u, 0, FMOD_TOLERANCE, 0},
+{ 186, 3207981719u, 1270950554u, 3194616071u, 3680565379u, 3193842345u, 3594182144u, 0, FMOD_TOLERANCE, 0},
+{ 187, 3208148223u, 1066985223u, 3221613219u, 4089383168u, 3208148223u, 1066985223u, 0, FMOD_TOLERANCE, 0},
+{ 188, 3217058839u, 4017329311u, 3208334452u, 1667591498u, 3200904104u, 2430630912u, 0, FMOD_TOLERANCE, 0},
+{ 189, 1088164157u, 3154656624u, 1061894279u, 3886344038u, 1061331185u, 2742166490u, 0, FMOD_TOLERANCE, 0},
+{ 190, 1050652945u, 977586119u, 3209762784u, 953839852u, 1050652945u, 977586119u, 0, FMOD_TOLERANCE, 0},
+{ 191, 1104965247u, 143071571u, 3206165386u, 913097445u, 1054025618u, 2942744752u, 0, FMOD_TOLERANCE, 0},
+{ 192, 3190565456u, 1371169579u, 1057079837u, 2594818628u, 3190565456u, 1371169579u, 0, FMOD_TOLERANCE, 0},
+{ 193, 3251793336u, 2259342224u, 3217432469u, 1824221478u, 3217219935u, 590913702u, 0, FMOD_TOLERANCE, 0},
+{ 194, 3246834775u, 1576604497u, 1079368611u, 185078728u, 3225624822u, 3870722768u, 0, FMOD_TOLERANCE, 0},
+{ 195, 3221679427u, 444800035u, 3243343143u, 1734989302u, 3221679427u, 444800035u, 0, FMOD_TOLERANCE, 0},
+{ 196, 1072748883u, 130452005u, 1041548088u, 2158433515u, 1040952781u, 2389993066u, 0, FMOD_TOLERANCE, 0},
+{ 197, 3234695968u, 1941318385u, 1045807374u, 792193370u, 3191459475u, 1748521624u, 0, FMOD_TOLERANCE, 0},
+{ 198, 3238299666u, 1299392207u, 3212131720u, 3205732280u, 3211332510u, 286824400u, 0, FMOD_TOLERANCE, 0},
+{ 199, 1098698804u, 3035093505u, 1052187689u, 3287702190u, 1050430151u, 4110156112u, 0, FMOD_TOLERANCE, 0},
+{ 200, 3246676260u, 2160225215u, 1102624859u, 836655570u, 3246676260u, 2160225215u, 0, FMOD_TOLERANCE, 0},
+{ 201, 1096723626u, 3360816360u, 3246176356u, 172860634u, 1096723626u, 3360816360u, 0, FMOD_TOLERANCE, 0},
+{ 202, 1070995788u, 146831910u, 1051558014u, 2340722078u, 1051456540u, 1917553576u, 0, FMOD_TOLERANCE, 0},
+{ 203, 3230416351u, 1603798153u, 3207725532u, 1099413093u, 3206546061u, 3198815378u, 0, FMOD_TOLERANCE, 0},
+{ 204, 3246678378u, 2429340443u, 3190303581u, 3223770005u, 3190247209u, 2960836771u, 0, FMOD_TOLERANCE, 0},
+{ 205, 1075882959u, 955542166u, 3230415151u, 275583938u, 1075882959u, 955542166u, 0, FMOD_TOLERANCE, 0},
+{ 206, 1092971882u, 513397822u, 1090646554u, 2089321329u, 1090247293u, 277513832u, 0, FMOD_TOLERANCE, 0},
+{ 207, 3193169876u, 2782073372u, 1046063872u, 4023829068u, 3193169876u, 2782073372u, 0, FMOD_TOLERANCE, 0},
+{ 208, 1098564822u, 3242223094u, 3194111199u, 4264674108u, 1046254439u, 1452785496u, 0, FMOD_TOLERANCE, 0},
+{ 209, 3238510821u, 3506346169u, 1047020885u, 1742757458u, 3192430539u, 2674342256u, 0, FMOD_TOLERANCE, 0},
+{ 210, 3192664477u, 1265459564u, 3193450280u, 3650514880u, 3192664477u, 1265459564u, 0, FMOD_TOLERANCE, 0},
+{ 211, 1081755890u, 1525260440u, 3235452527u, 2612331392u, 1081755890u, 1525260440u, 0, FMOD_TOLERANCE, 0},
+{ 212, 3248668920u, 1263613754u, 3219096387u, 635677201u, 3218714241u, 3798047336u, 0, FMOD_TOLERANCE, 0},
+{ 213, 3206272087u, 4140947288u, 3200792376u, 2013265346u, 3200435981u, 4198185912u, 0, FMOD_TOLERANCE, 0},
+{ 214, 3249974392u, 1912759945u, 3237045253u, 1351396825u, 3235160335u, 3216561680u, 0, FMOD_TOLERANCE, 0},
+{ 215, 3248205162u, 1001433078u, 3206926643u, 2741676659u, 3206681426u, 3088264993u, 0, FMOD_TOLERANCE, 0},
+{ 216, 1080923606u, 1088945233u, 1085095743u, 3986114865u, 1080923606u, 1088945233u, 0, FMOD_TOLERANCE, 0},
+{ 217, 3215734057u, 831239754u, 1099828675u, 3071308141u, 3215734057u, 831239754u, 0, FMOD_TOLERANCE, 0},
+{ 218, 3225834497u, 3473592372u, 1102759382u, 1309576357u, 3225834497u, 3473592372u, 0, FMOD_TOLERANCE, 0},
+{ 219, 3251186706u, 2042340367u, 1091945628u, 2062772374u, 3237458290u, 1180971520u, 0, FMOD_TOLERANCE, 0},
+{ 220, 3194765687u, 1840632537u, 1096533424u, 807510337u, 3194765687u, 1840632537u, 0, FMOD_TOLERANCE, 0},
+{ 221, 3231451722u, 144814872u, 3212698915u, 2282965697u, 3212527069u, 3139947274u, 0, FMOD_TOLERANCE, 0},
+{ 222, 1071236430u, 2552499583u, 3229111426u, 1470130815u, 1071236430u, 2552499583u, 0, FMOD_TOLERANCE, 0},
+{ 223, 3243093065u, 2858583811u, 1089760910u, 6360994u, 3236124514u, 1975526024u, 0, FMOD_TOLERANCE, 0},
+{ 224, 3198264929u, 1614537194u, 1075198900u, 4088705365u, 3198264929u, 1614537194u, 0, FMOD_TOLERANCE, 0},
+{ 225, 3250939070u, 3545570051u, 1065221325u, 1629217700u, 3212533984u, 497173268u, 0, FMOD_TOLERANCE, 0},
+{ 226, 1072744324u, 1813392963u, 3235313361u, 3772501596u, 1072744324u, 1813392963u, 0, FMOD_TOLERANCE, 0},
+{ 227, 3196802686u, 2406734491u, 1042055360u, 89226663u, 3189105605u, 823618538u, 0, FMOD_TOLERANCE, 0},
+{ 228, 3195751081u, 1618759139u, 3194723421u, 3888234802u, 3194681588u, 3644250772u, 0, FMOD_TOLERANCE, 0},
+{ 229, 1055357248u, 3590035633u, 3212424262u, 2892456615u, 1055357248u, 3590035633u, 0, FMOD_TOLERANCE, 0},
+{ 230, 3189943060u, 2431246964u, 3241512456u, 183850734u, 3189943060u, 2431246964u, 0, FMOD_TOLERANCE, 0},
+{ 231, 1089501101u, 3088319870u, 3211544311u, 862225364u, 1063756877u, 1061220220u, 0, FMOD_TOLERANCE, 0},
+{ 232, 3235294664u, 3495352775u, 1058576726u, 596957268u, 3201464249u, 3802196160u, 0, FMOD_TOLERANCE, 0},
+{ 233, 1046553348u, 1839214511u, 3205004060u, 1923240983u, 1046553348u, 1839214511u, 0, FMOD_TOLERANCE, 0},
+{ 234, 1058073864u, 739619702u, 3223356436u, 2689885273u, 1058073864u, 739619702u, 0, FMOD_TOLERANCE, 0},
+{ 235, 3200324971u, 2143376228u, 1098306332u, 3760236188u, 3200324971u, 2143376228u, 0, FMOD_TOLERANCE, 0},
+{ 236, 1074621795u, 671680995u, 1091262633u, 2315535361u, 1074621795u, 671680995u, 0, FMOD_TOLERANCE, 0},
+{ 237, 3214165989u, 2493598049u, 3194927008u, 1689107592u, 3194880451u, 1904040096u, 0, FMOD_TOLERANCE, 0},
+{ 238, 3189989959u, 1578976988u, 1066368383u, 2117279163u, 3189989959u, 1578976988u, 0, FMOD_TOLERANCE, 0},
+{ 239, 3222988111u, 3425290087u, 1098487295u, 1263412017u, 3222988111u, 3425290087u, 0, FMOD_TOLERANCE, 0},
+{ 240, 3208432764u, 3635396812u, 1070999426u, 3965655689u, 3208432764u, 3635396812u, 0, FMOD_TOLERANCE, 0},
+{ 241, 1060196346u, 2183973116u, 1101098363u, 1118613350u, 1060196346u, 2183973116u, 0, FMOD_TOLERANCE, 0},
+{ 242, 3221946089u, 199516350u, 1078368488u, 164621458u, 3221946089u, 199516350u, 0, FMOD_TOLERANCE, 0},
+{ 243, 3187706018u, 3570940805u, 3230316437u, 3596080877u, 3187706018u, 3570940805u, 0, FMOD_TOLERANCE, 0},
+{ 244, 3208209565u, 980880313u, 1079833442u, 884465057u, 3208209565u, 980880313u, 0, FMOD_TOLERANCE, 0},
+{ 245, 1099977124u, 2558179220u, 1052873711u, 1233598120u, 1051013756u, 1136419808u, 0, FMOD_TOLERANCE, 0},
+{ 246, 1047115221u, 1909994277u, 1085015978u, 2991527452u, 1047115221u, 1909994277u, 0, FMOD_TOLERANCE, 0},
+{ 247, 1060855260u, 1680290941u, 1074309900u, 2943870846u, 1060855260u, 1680290941u, 0, FMOD_TOLERANCE, 0},
+{ 248, 1059496132u, 1451927357u, 3228615456u, 1502585517u, 1059496132u, 1451927357u, 0, FMOD_TOLERANCE, 0},
+{ 249, 3236211951u, 751136990u, 3230392165u, 3493275472u, 3229249587u, 4000841632u, 0, FMOD_TOLERANCE, 0},
+{ 250, 1098365967u, 1209623292u, 3238056647u, 979495322u, 1089709853u, 4289887088u, 0, FMOD_TOLERANCE, 0},
+{ 251, 3250424296u, 1717672108u, 1048120593u, 531240316u, 3193171557u, 2988181760u, 0, FMOD_TOLERANCE, 0},
+{ 252, 1054174923u, 3548721654u, 1086112947u, 3391817224u, 1054174923u, 3548721654u, 0, FMOD_TOLERANCE, 0},
+{ 253, 1077836851u, 2758195125u, 1100880260u, 2028440924u, 1077836851u, 2758195125u, 0, FMOD_TOLERANCE, 0},
+{ 254, 1084223893u, 2750123373u, 3232200256u, 1086294931u, 1084223893u, 2750123373u, 0, FMOD_TOLERANCE, 0},
+{ 255, 1043958672u, 2986160931u, 1076097908u, 2540046258u, 1043958672u, 2986160931u, 0, FMOD_TOLERANCE, 0},
+{ 256, 3235476602u, 451471221u, 1064816262u, 4187644495u, 3210439834u, 655206164u, 0, FMOD_TOLERANCE, 0},
+{ 257, 1099460228u, 2439500162u, 1065280276u, 1979490284u, 1065168215u, 2730893784u, 0, FMOD_TOLERANCE, 0},
+{ 258, 1040415832u, 2283342035u, 1078398157u, 1345997553u, 1040415832u, 2283342035u, 0, FMOD_TOLERANCE, 0},
+{ 259, 3213249348u, 179066662u, 1103272172u, 1217337578u, 3213249348u, 179066662u, 0, FMOD_TOLERANCE, 0},
+{ 260, 3211562377u, 3779303391u, 3210023352u, 3115946280u, 3209555780u, 2653428444u, 0, FMOD_TOLERANCE, 0},
+{ 261, 3192989874u, 286247089u, 1085153597u, 713645369u, 3192989874u, 286247089u, 0, FMOD_TOLERANCE, 0},
+{ 262, 1093670500u, 1468283899u, 1042831668u, 2022736418u, 1042387190u, 3729644322u, 0, FMOD_TOLERANCE, 0},
+{ 263, 1083139105u, 3305564080u, 1065483445u, 482392433u, 1063982656u, 288995372u, 0, FMOD_TOLERANCE, 0},
+{ 264, 3201695807u, 2256346551u, 3222430705u, 2071674991u, 3201695807u, 2256346551u, 0, FMOD_TOLERANCE, 0},
+{ 265, 3204024695u, 2295269094u, 1084451053u, 2773103941u, 3204024695u, 2295269094u, 0, FMOD_TOLERANCE, 0},
+{ 266, 1078173946u, 1482721827u, 1092243422u, 3125409590u, 1078173946u, 1482721827u, 0, FMOD_TOLERANCE, 0},
+{ 267, 3221065973u, 1381740563u, 1071545057u, 2918235653u, 3218789168u, 1067222589u, 0, FMOD_TOLERANCE, 0},
+{ 268, 3238715972u, 1105857967u, 3241990046u, 2703723225u, 3238715972u, 1105857967u, 0, FMOD_TOLERANCE, 0},
+{ 269, 1043015571u, 174689677u, 1079333374u, 3947057014u, 1043015571u, 174689677u, 0, FMOD_TOLERANCE, 0},
+{ 270, 1090461859u, 2023082423u, 3242081486u, 1169047927u, 1090461859u, 2023082423u, 0, FMOD_TOLERANCE, 0},
+{ 271, 1064525899u, 3742487766u, 1043425732u, 194972788u, 1042450932u, 3792806632u, 0, FMOD_TOLERANCE, 0},
+{ 272, 3213791827u, 2136071361u, 3211529757u, 993675115u, 3209961906u, 549235376u, 0, FMOD_TOLERANCE, 0},
+{ 273, 3213663381u, 210772141u, 3241441539u, 580731413u, 3213663381u, 210772141u, 0, FMOD_TOLERANCE, 0},
+{ 274, 1093840413u, 1751560711u, 1074522705u, 180987057u, 1074236959u, 2078989418u, 0, FMOD_TOLERANCE, 0},
+{ 275, 1066754591u, 2552236599u, 1088658621u, 2112468655u, 1066754591u, 2552236599u, 0, FMOD_TOLERANCE, 0},
+{ 276, 3189290617u, 1578223762u, 3224596567u, 2456166162u, 3189290617u, 1578223762u, 0, FMOD_TOLERANCE, 0},
+{ 277, 1058506965u, 2110924310u, 1086207177u, 3161208323u, 1058506965u, 2110924310u, 0, FMOD_TOLERANCE, 0},
+{ 278, 3231863394u, 2352173188u, 1079361728u, 4070222179u, 3226777784u, 3803503730u, 0, FMOD_TOLERANCE, 0},
+{ 279, 1101012904u, 2481562701u, 1090937016u, 3809489716u, 1090661897u, 4109224780u, 0, FMOD_TOLERANCE, 0},
+{ 280, 3197002651u, 330905705u, 1086260896u, 90264431u, 3197002651u, 330905705u, 0, FMOD_TOLERANCE, 0},
+{ 281, 1040729961u, 4162008079u, 3194387916u, 759522153u, 1040729961u, 4162008079u, 0, FMOD_TOLERANCE, 0},
+{ 282, 1081015037u, 1839697482u, 3216442625u, 2211508949u, 1066933368u, 2616216496u, 0, FMOD_TOLERANCE, 0},
+{ 283, 3249807211u, 3736863454u, 1063475914u, 3150741666u, 3209732000u, 1713317356u, 0, FMOD_TOLERANCE, 0},
+{ 284, 1060785883u, 4200269406u, 3236646101u, 1061812176u, 1060785883u, 4200269406u, 0, FMOD_TOLERANCE, 0},
+{ 285, 1080217979u, 106027290u, 3234978297u, 2245237549u, 1080217979u, 106027290u, 0, FMOD_TOLERANCE, 0},
+{ 286, 3246984334u, 2132131375u, 3250483427u, 3449276437u, 3246984334u, 2132131375u, 0, FMOD_TOLERANCE, 0},
+{ 287, 1089388778u, 2334440944u, 1105423490u, 4004336184u, 1089388778u, 2334440944u, 0, FMOD_TOLERANCE, 0},
+{ 288, 3218772704u, 4090088208u, 1042030013u, 3898658299u, 3188978648u, 53730621u, 0, FMOD_TOLERANCE, 0},
+{ 289, 3207908064u, 2272831437u, 3253082595u, 2639188641u, 3207908064u, 2272831437u, 0, FMOD_TOLERANCE, 0},
+{ 290, 1054766684u, 1856594168u, 3189515294u, 4101853676u, 1041779426u, 3891783764u, 0, FMOD_TOLERANCE, 0},
+{ 291, 1076012412u, 2211699255u, 3195060344u, 3865018604u, 1046732812u, 2649747376u, 0, FMOD_TOLERANCE, 0},
+{ 292, 3242767010u, 996259334u, 3241496889u, 3782673116u, 3239775042u, 3478493520u, 0, FMOD_TOLERANCE, 0},
+{ 293, 1099130747u, 3840380763u, 1048674041u, 550040067u, 1047787690u, 948908124u, 0, FMOD_TOLERANCE, 0},
+{ 294, 3251419593u, 95874100u, 3237232828u, 2645647822u, 3234300013u, 2648947376u, 0, FMOD_TOLERANCE, 0},
+{ 295, 1043665640u, 3441419500u, 3252367038u, 876710419u, 1043665640u, 3441419500u, 0, FMOD_TOLERANCE, 0},
+{ 296, 3238593552u, 2560836004u, 3199616543u, 1180840586u, 3198236941u, 3820642168u, 0, FMOD_TOLERANCE, 0},
+{ 297, 3221602966u, 2218230392u, 3227485787u, 3947214579u, 3221602966u, 2218230392u, 0, FMOD_TOLERANCE, 0},
+{ 298, 1079539654u, 1447312532u, 1081476588u, 780366847u, 1079539654u, 1447312532u, 0, FMOD_TOLERANCE, 0},
+{ 299, 1072569643u, 2842113832u, 3216156731u, 225159029u, 1068566168u, 2855133124u, 0, FMOD_TOLERANCE, 0},
+{ 300, 1098117193u, 1601981129u, 3234628869u, 2236538344u, 1086765343u, 3061570600u, 0, FMOD_TOLERANCE, 0},
+{ 301, 1085173524u, 2194185737u, 3242362684u, 87913366u, 1085173524u, 2194185737u, 0, FMOD_TOLERANCE, 0},
+{ 302, 3199083880u, 1346862963u, 1077836259u, 3604666660u, 3199083880u, 1346862963u, 0, FMOD_TOLERANCE, 0},
+{ 303, 3212255979u, 3115209742u, 1099332326u, 1325101950u, 3212255979u, 3115209742u, 0, FMOD_TOLERANCE, 0},
+{ 304, 3224546042u, 3889223100u, 1053247613u, 3371396923u, 3198580902u, 304142856u, 0, FMOD_TOLERANCE, 0},
+{ 305, 3220477868u, 4163120793u, 1075022670u, 1387631215u, 3220477868u, 4163120793u, 0, FMOD_TOLERANCE, 0},
+{ 306, 3205481779u, 1532426189u, 1063168268u, 3397022615u, 3205481779u, 1532426189u, 0, FMOD_TOLERANCE, 0},
+{ 307, 3201033321u, 89324166u, 1079206060u, 3429424710u, 3201033321u, 89324166u, 0, FMOD_TOLERANCE, 0},
+{ 308, 3192325102u, 747591401u, 1072238381u, 2803213904u, 3192325102u, 747591401u, 0, FMOD_TOLERANCE, 0},
+{ 309, 1091113780u, 271904221u, 1044258318u, 1858545114u, 1044111400u, 2575445184u, 0, FMOD_TOLERANCE, 0},
+{ 310, 3228068914u, 314958082u, 3249912496u, 2966213175u, 3228068914u, 314958082u, 0, FMOD_TOLERANCE, 0},
+{ 311, 3197179414u, 3119528953u, 3217179014u, 2908718240u, 3197179414u, 3119528953u, 0, FMOD_TOLERANCE, 0},
+{ 312, 3242467576u, 2018361566u, 1100926600u, 3985805054u, 3242467576u, 2018361566u, 0, FMOD_TOLERANCE, 0},
+{ 313, 1070132580u, 409584884u, 3239758947u, 755795129u, 1070132580u, 409584884u, 0, FMOD_TOLERANCE, 0},
+{ 314, 1075772446u, 1819156379u, 3251342302u, 2982669005u, 1075772446u, 1819156379u, 0, FMOD_TOLERANCE, 0},
+{ 315, 1101563433u, 2080534280u, 3188254060u, 449171797u, 1039403427u, 2442639174u, 0, FMOD_TOLERANCE, 0},
+{ 316, 1095956900u, 168744837u, 3214950009u, 1322217822u, 1063385043u, 3585159232u, 0, FMOD_TOLERANCE, 0},
+{ 317, 3254226900u, 3250487255u, 1062120700u, 1876195180u, 3206049888u, 4103432160u, 0, FMOD_TOLERANCE, 0},
+{ 318, 3226343480u, 1336400247u, 1098057903u, 3314079581u, 3226343480u, 1336400247u, 0, FMOD_TOLERANCE, 0},
+{ 319, 3203678820u, 265025555u, 1063854282u, 3779482256u, 3203678820u, 265025555u, 0, FMOD_TOLERANCE, 0},
+{ 320, 1067300501u, 887044257u, 1054789618u, 2732056261u, 1054577011u, 4153584415u, 0, FMOD_TOLERANCE, 0},
+{ 321, 1050106742u, 4027115185u, 3191764868u, 2940199511u, 1040176487u, 1878366608u, 0, FMOD_TOLERANCE, 0},
+{ 322, 3202500155u, 2875684421u, 3227459837u, 2251967570u, 3202500155u, 2875684421u, 0, FMOD_TOLERANCE, 0},
+{ 323, 1063244412u, 284173546u, 3238823679u, 3557800647u, 1063244412u, 284173546u, 0, FMOD_TOLERANCE, 0},
+{ 324, 1101458560u, 3147771266u, 3220110464u, 2933364246u, 1071807923u, 312606150u, 0, FMOD_TOLERANCE, 0},
+{ 325, 1064853160u, 3366183281u, 3234870843u, 537442654u, 1064853160u, 3366183281u, 0, FMOD_TOLERANCE, 0},
+{ 326, 3244118788u, 2529029548u, 3249882819u, 3781513577u, 3244118788u, 2529029548u, 0, FMOD_TOLERANCE, 0},
+{ 327, 3213436354u, 1080845539u, 3206760016u, 911778687u, 3205712156u, 4172836134u, 0, FMOD_TOLERANCE, 0},
+{ 328, 3191951036u, 469586759u, 1091830022u, 3080528840u, 3191951036u, 469586759u, 0, FMOD_TOLERANCE, 0},
+{ 329, 1080249104u, 2863108169u, 3225605506u, 2508274250u, 1074619269u, 1234534336u, 0, FMOD_TOLERANCE, 0},
+{ 330, 3210826984u, 4080017377u, 3206492941u, 1470284690u, 3206035771u, 2486501230u, 0, FMOD_TOLERANCE, 0},
+{ 331, 3207120390u, 3867917386u, 1102054928u, 3504746045u, 3207120390u, 3867917386u, 0, FMOD_TOLERANCE, 0},
+{ 332, 1064522279u, 2962134101u, 3244741577u, 3390537350u, 1064522279u, 2962134101u, 0, FMOD_TOLERANCE, 0},
+{ 333, 1088201813u, 1702237980u, 1071598971u, 1102587474u, 1070238218u, 912774380u, 0, FMOD_TOLERANCE, 0},
+{ 334, 3202970118u, 2180218657u, 3211592260u, 1206527853u, 3202970118u, 2180218657u, 0, FMOD_TOLERANCE, 0},
+{ 335, 3197084744u, 394130786u, 3242511482u, 2437699868u, 3197084744u, 394130786u, 0, FMOD_TOLERANCE, 0},
+{ 336, 1044237059u, 849581558u, 3252006507u, 2008614943u, 1044237059u, 849581558u, 0, FMOD_TOLERANCE, 0},
+{ 337, 3210140014u, 3128971673u, 3249137531u, 2773583059u, 3210140014u, 3128971673u, 0, FMOD_TOLERANCE, 0},
+{ 338, 1085029866u, 590727700u, 3248651761u, 2183878539u, 1085029866u, 590727700u, 0, FMOD_TOLERANCE, 0},
+{ 339, 1101098629u, 820687580u, 3208143496u, 1402434664u, 1060519198u, 1076427008u, 0, FMOD_TOLERANCE, 0},
+{ 340, 3252290835u, 1873709254u, 3245167989u, 44275991u, 3244270115u, 1511759794u, 0, FMOD_TOLERANCE, 0},
+{ 341, 3189668753u, 1174874204u, 3208263730u, 2360372288u, 3189668753u, 1174874204u, 0, FMOD_TOLERANCE, 0},
+{ 342, 1103854676u, 937573440u, 3208953761u, 211240241u, 1058113326u, 3918295192u, 0, FMOD_TOLERANCE, 0},
+{ 343, 3243548934u, 2469774991u, 1043117070u, 3380071805u, 3189938496u, 1368214615u, 0, FMOD_TOLERANCE, 0},
+{ 344, 1058121042u, 442507560u, 3254252803u, 3257889649u, 1058121042u, 442507560u, 0, FMOD_TOLERANCE, 0},
+{ 345, 1068850520u, 1854921625u, 1049810168u, 2729627545u, 1049609548u, 1646883138u, 0, FMOD_TOLERANCE, 0},
+{ 346, 3254712629u, 4001809575u, 3240128649u, 278261523u, 3238549819u, 2765439496u, 0, FMOD_TOLERANCE, 0},
+{ 347, 1087224694u, 1793907966u, 3238955714u, 398859249u, 1087224694u, 1793907966u, 0, FMOD_TOLERANCE, 0},
+{ 348, 3200952547u, 2511916952u, 3219195283u, 1697158299u, 3200952547u, 2511916952u, 0, FMOD_TOLERANCE, 0},
+{ 349, 1069985548u, 3230931724u, 3243897690u, 3508781585u, 1069985548u, 3230931724u, 0, FMOD_TOLERANCE, 0},
+{ 350, 1103847606u, 1674254897u, 1046547577u, 217148561u, 1045477571u, 1500468300u, 0, FMOD_TOLERANCE, 0},
+{ 351, 3211263954u, 3275604304u, 3194840159u, 2991205850u, 3194151953u, 1373226250u, 0, FMOD_TOLERANCE, 0},
+{ 352, 3195249375u, 3509997278u, 3248888030u, 3897986511u, 3195249375u, 3509997278u, 0, FMOD_TOLERANCE, 0},
+{ 353, 1047182435u, 2156824613u, 1042295665u, 1239257646u, 1041068762u, 564045456u, 0, FMOD_TOLERANCE, 0},
+{ 354, 3213264085u, 1073153314u, 3250031627u, 2567234990u, 3213264085u, 1073153314u, 0, FMOD_TOLERANCE, 0},
+{ 355, 3190593412u, 4261696995u, 3197784432u, 323702024u, 3190593412u, 4261696995u, 0, FMOD_TOLERANCE, 0},
+{ 356, 3243690997u, 4075177615u, 3202791065u, 1919006082u, 3201320186u, 476898428u, 0, FMOD_TOLERANCE, 0},
+{ 357, 3239270013u, 386429966u, 1086504491u, 3698826164u, 3227713245u, 1759240960u, 0, FMOD_TOLERANCE, 0},
+{ 358, 1078327190u, 1681986446u, 3194985869u, 3072950140u, 1047429662u, 3437752484u, 0, FMOD_TOLERANCE, 0},
+{ 359, 3217311933u, 3719038997u, 1055433962u, 3331415058u, 3201345754u, 2519515052u, 0, FMOD_TOLERANCE, 0},
+{ 360, 1060749713u, 2420250111u, 3238002206u, 1928661079u, 1060749713u, 2420250111u, 0, FMOD_TOLERANCE, 0},
+{ 361, 1081914210u, 3679866727u, 3227386672u, 1273835792u, 1079559162u, 2308024940u, 0, FMOD_TOLERANCE, 0},
+{ 362, 1041622738u, 2682092368u, 3234222284u, 1325425811u, 1041622738u, 2682092368u, 0, FMOD_TOLERANCE, 0},
+{ 363, 1056312613u, 4175172697u, 3208346191u, 2130706153u, 1056312613u, 4175172697u, 0, FMOD_TOLERANCE, 0},
+{ 364, 1092089624u, 1200784450u, 1083605096u, 1248595607u, 1083003632u, 4285104928u, 0, FMOD_TOLERANCE, 0},
+{ 365, 3213890863u, 1897285171u, 3251296075u, 944966123u, 3213890863u, 1897285171u, 0, FMOD_TOLERANCE, 0},
+{ 366, 3241371250u, 2270747330u, 3230692631u, 422503284u, 3227231066u, 1971978560u, 0, FMOD_TOLERANCE, 0},
+{ 367, 1084120037u, 2857564741u, 1075647403u, 3308906709u, 1073791751u, 1059642802u, 0, FMOD_TOLERANCE, 0},
+{ 368, 3203475098u, 1380066948u, 3232612906u, 2613634294u, 3203475098u, 1380066948u, 0, FMOD_TOLERANCE, 0},
+{ 369, 1063890856u, 4022784584u, 1060483857u, 3264056381u, 1059349327u, 1316571190u, 0, FMOD_TOLERANCE, 0},
+{ 370, 1044637404u, 1778509100u, 3213146285u, 2665833973u, 1044637404u, 1778509100u, 0, FMOD_TOLERANCE, 0},
+{ 371, 3216727300u, 1859175955u, 1079949560u, 4258450607u, 3216727300u, 1859175955u, 0, FMOD_TOLERANCE, 0},
+{ 372, 1048277388u, 4128020197u, 1076266146u, 4122840980u, 1048277388u, 4128020197u, 0, FMOD_TOLERANCE, 0},
+{ 373, 3193183163u, 2454653987u, 3229487005u, 2977478685u, 3193183163u, 2454653987u, 0, FMOD_TOLERANCE, 0},
+{ 374, 3253556483u, 1355181872u, 1095308770u, 436846481u, 3241244190u, 3025145350u, 0, FMOD_TOLERANCE, 0},
+{ 375, 3246605302u, 2592856453u, 3247825559u, 3195234082u, 3246605302u, 2592856453u, 0, FMOD_TOLERANCE, 0},
+{ 376, 3222118023u, 3554670043u, 1091621009u, 3321236467u, 3222118023u, 3554670043u, 0, FMOD_TOLERANCE, 0},
+{ 377, 1069012833u, 1936670355u, 1095715713u, 2958468553u, 1069012833u, 1936670355u, 0, FMOD_TOLERANCE, 0},
+{ 378, 3192291109u, 2960339502u, 1098808013u, 1044068983u, 3192291109u, 2960339502u, 0, FMOD_TOLERANCE, 0},
+{ 379, 3196691185u, 4093388677u, 1095478112u, 1735930261u, 3196691185u, 4093388677u, 0, FMOD_TOLERANCE, 0},
+{ 380, 1091040302u, 1807398746u, 3195743135u, 4261616162u, 1045958323u, 3424358216u, 0, FMOD_TOLERANCE, 0},
+{ 381, 3209294194u, 3250576797u, 1059002384u, 3043079652u, 3205823281u, 3451169168u, 0, FMOD_TOLERANCE, 0},
+{ 382, 1069207109u, 666051428u, 3208765404u, 1912684117u, 1061231898u, 3399757973u, 0, FMOD_TOLERANCE, 0},
+{ 383, 1103487420u, 1949030179u, 1096388934u, 896459246u, 1095501482u, 2875899476u, 0, FMOD_TOLERANCE, 0},
+{ 384, 1054300653u, 622499767u, 1066707637u, 1490260486u, 1054300653u, 622499767u, 0, FMOD_TOLERANCE, 0},
+{ 385, 1106688493u, 1490616165u, 3251242436u, 795675736u, 1103736017u, 2855907608u, 0, FMOD_TOLERANCE, 0},
+{ 386, 1080943896u, 3662877092u, 3234317146u, 3200513112u, 1080943896u, 3662877092u, 0, FMOD_TOLERANCE, 0},
+{ 387, 1084088786u, 1356101968u, 3236536816u, 3062844611u, 1084088786u, 1356101968u, 0, FMOD_TOLERANCE, 0},
+{ 388, 3219922640u, 2284484846u, 3219498359u, 3240896015u, 3217679715u, 469322620u, 0, FMOD_TOLERANCE, 0},
+{ 389, 3235759689u, 494503287u, 1092811254u, 142673998u, 3235759689u, 494503287u, 0, FMOD_TOLERANCE, 0},
+{ 390, 3252125916u, 3394882641u, 3225306538u, 364852125u, 3223911532u, 173791494u, 0, FMOD_TOLERANCE, 0},
+{ 391, 3225261763u, 193885269u, 1088149839u, 1359805831u, 3225261763u, 193885269u, 0, FMOD_TOLERANCE, 0},
+{ 392, 3200484782u, 592580907u, 3199560872u, 3086438952u, 3199311539u, 2393690158u, 0, FMOD_TOLERANCE, 0},
+{ 393, 1059518664u, 1778008540u, 1049064687u, 73581647u, 1048801824u, 3195212490u, 0, FMOD_TOLERANCE, 0},
+{ 394, 3246733598u, 233240285u, 1081923320u, 2710903921u, 3228816181u, 1359670313u, 0, FMOD_TOLERANCE, 0},
+{ 395, 1069513767u, 3719878805u, 1079866720u, 3615458228u, 1069513767u, 3719878805u, 0, FMOD_TOLERANCE, 0},
+{ 396, 3221194724u, 3647632375u, 3247225271u, 3839959621u, 3221194724u, 3647632375u, 0, FMOD_TOLERANCE, 0},
+{ 397, 1103401096u, 2232210456u, 3235434773u, 224271737u, 1086804271u, 489677294u, 0, FMOD_TOLERANCE, 0},
+{ 398, 3193003684u, 2134662911u, 3190390590u, 4239009051u, 3189174738u, 354450658u, 0, FMOD_TOLERANCE, 0},
+{ 399, 1080526145u, 2305279897u, 1077668039u, 1854523320u, 1077196127u, 3020131960u, 0, FMOD_TOLERANCE, 0},
+{ 400, 3219864259u, 538224650u, 3206153057u, 1379649610u, 3201479185u, 1215665312u, 0, FMOD_TOLERANCE, 0},
+{ 401, 3196410507u, 3683897920u, 3244167599u, 3647579469u, 3196410507u, 3683897920u, 0, FMOD_TOLERANCE, 0},
+{ 402, 1090280933u, 2694093608u, 1042775347u, 598406111u, 1042429296u, 1703038013u, 0, FMOD_TOLERANCE, 0},
+{ 403, 3211635392u, 872706833u, 1084802480u, 2200602798u, 3211635392u, 872706833u, 0, FMOD_TOLERANCE, 0},
+{ 404, 1042339597u, 904146293u, 1060867322u, 1729685598u, 1042339597u, 904146293u, 0, FMOD_TOLERANCE, 0},
+{ 405, 3195694970u, 1894173462u, 3232800651u, 191960416u, 3195694970u, 1894173462u, 0, FMOD_TOLERANCE, 0},
+{ 406, 1091225343u, 3521028551u, 1054522089u, 3287274359u, 1053758667u, 3875143628u, 0, FMOD_TOLERANCE, 0},
+{ 407, 1095386964u, 959640601u, 3201578263u, 4136915018u, 1054021633u, 1928931314u, 0, FMOD_TOLERANCE, 0},
+{ 408, 1064005451u, 1553716379u, 1106027987u, 984725765u, 1064005451u, 1553716379u, 0, FMOD_TOLERANCE, 0},
+{ 409, 3238832641u, 2287646644u, 3240329321u, 2276183378u, 3238832641u, 2287646644u, 0, FMOD_TOLERANCE, 0},
+{ 410, 1068209174u, 3940225170u, 3199544434u, 997572161u, 1047989319u, 614577280u, 0, FMOD_TOLERANCE, 0},
+{ 411, 3212768361u, 36116288u, 3206886566u, 4196602670u, 3206426174u, 2771053432u, 0, FMOD_TOLERANCE, 0},
+{ 412, 3241695853u, 3550227562u, 3207257983u, 2747744117u, 3207255028u, 3340483506u, 0, FMOD_TOLERANCE, 0},
+{ 413, 1104236126u, 507130047u, 1048359321u, 3229888373u, 1045678438u, 3816317612u, 0, FMOD_TOLERANCE, 0},
+{ 414, 3222996778u, 2210969014u, 1081031001u, 1946786091u, 3222996778u, 2210969014u, 0, FMOD_TOLERANCE, 0},
+{ 415, 3236306990u, 4059150589u, 3189759234u, 1177045799u, 3185418975u, 3516238752u, 0, FMOD_TOLERANCE, 0},
+{ 416, 1093103612u, 2664812822u, 1050343198u, 2034180320u, 1047986576u, 2771970048u, 0, FMOD_TOLERANCE, 0},
+{ 417, 3213779117u, 1175750283u, 3235559706u, 1424491340u, 3213779117u, 1175750283u, 0, FMOD_TOLERANCE, 0},
+{ 418, 3213904193u, 1630036121u, 3231972785u, 3195479448u, 3213904193u, 1630036121u, 0, FMOD_TOLERANCE, 0},
+{ 419, 1090429875u, 2527029044u, 1046927050u, 4000723255u, 1045724540u, 750040168u, 0, FMOD_TOLERANCE, 0},
+{ 420, 1085208677u, 3335703647u, 3237349676u, 3869440059u, 1085208677u, 3335703647u, 0, FMOD_TOLERANCE, 0},
+{ 421, 1091433848u, 3888398377u, 3196041693u, 1290567220u, 1048513329u, 2169633852u, 0, FMOD_TOLERANCE, 0},
+{ 422, 1066679070u, 3242451480u, 3248384948u, 707431021u, 1066679070u, 3242451480u, 0, FMOD_TOLERANCE, 0},
+{ 423, 1083230509u, 2739665123u, 1060777905u, 1733073225u, 1059241906u, 897557388u, 0, FMOD_TOLERANCE, 0},
+{ 424, 1078517061u, 1297274853u, 3208848704u, 3341639139u, 1061024718u, 3625447158u, 0, FMOD_TOLERANCE, 0},
+{ 425, 1046570941u, 2228057309u, 1084318902u, 1317851136u, 1046570941u, 2228057309u, 0, FMOD_TOLERANCE, 0},
+{ 426, 1088255327u, 270039934u, 3241414679u, 3063626339u, 1088255327u, 270039934u, 0, FMOD_TOLERANCE, 0},
+{ 427, 3219178350u, 83062251u, 3211262173u, 2659016437u, 3205153736u, 1898015808u, 0, FMOD_TOLERANCE, 0},
+{ 428, 1095743886u, 3833539373u, 3206667189u, 1567476111u, 1059049552u, 2531004602u, 0, FMOD_TOLERANCE, 0},
+{ 429, 3205195072u, 2382776852u, 3249232579u, 1546622468u, 3205195072u, 2382776852u, 0, FMOD_TOLERANCE, 0},
+{ 430, 1085536439u, 1714300821u, 1104130938u, 4167591598u, 1085536439u, 1714300821u, 0, FMOD_TOLERANCE, 0},
+{ 431, 1051092760u, 2798720100u, 1086978789u, 449990704u, 1051092760u, 2798720100u, 0, FMOD_TOLERANCE, 0},
+{ 432, 3231198415u, 4039516226u, 3244344107u, 4272932619u, 3231198415u, 4039516226u, 0, FMOD_TOLERANCE, 0},
+{ 433, 3222708441u, 1683007544u, 1091105663u, 3805494321u, 3222708441u, 1683007544u, 0, FMOD_TOLERANCE, 0},
+{ 434, 3220852948u, 2072627412u, 1094383324u, 3394151662u, 3220852948u, 2072627412u, 0, FMOD_TOLERANCE, 0},
+{ 435, 3220570024u, 1120106427u, 3223631624u, 3404608264u, 3220570024u, 1120106427u, 0, FMOD_TOLERANCE, 0},
+{ 436, 1097859997u, 559918757u, 3205077053u, 908100198u, 1056109503u, 2716202508u, 0, FMOD_TOLERANCE, 0},
+{ 437, 1042677918u, 2026673913u, 3244833635u, 2844573214u, 1042677918u, 2026673913u, 0, FMOD_TOLERANCE, 0},
+{ 438, 3254567259u, 3946837259u, 3234993796u, 3850406820u, 3234910977u, 2872262312u, 0, FMOD_TOLERANCE, 0},
+{ 439, 1057479809u, 3139330994u, 1046133568u, 1539650690u, 1042788941u, 932511168u, 0, FMOD_TOLERANCE, 0},
+{ 440, 3236705500u, 1554593884u, 3228899878u, 2813752562u, 3225380292u, 3686860192u, 0, FMOD_TOLERANCE, 0},
+{ 441, 1056505004u, 3804703138u, 1072931071u, 2053677923u, 1056505004u, 3804703138u, 0, FMOD_TOLERANCE, 0},
+{ 442, 3244864299u, 289355864u, 1078453818u, 2143066338u, 3225823157u, 2240583912u, 0, FMOD_TOLERANCE, 0},
+{ 443, 3203939880u, 2157691971u, 1106629150u, 110806409u, 3203939880u, 2157691971u, 0, FMOD_TOLERANCE, 0},
+{ 444, 1082157019u, 3570399481u, 1085637605u, 180265334u, 1082157019u, 3570399481u, 0, FMOD_TOLERANCE, 0},
+{ 445, 3200980182u, 558779875u, 3202046748u, 2338464653u, 3200980182u, 558779875u, 0, FMOD_TOLERANCE, 0},
+{ 446, 1045705464u, 1703969219u, 3229797258u, 1417521063u, 1045705464u, 1703969219u, 0, FMOD_TOLERANCE, 0},
+{ 447, 3237782261u, 3917440951u, 1051668894u, 3736066983u, 3196348449u, 216650340u, 0, FMOD_TOLERANCE, 0},
+{ 448, 1064752080u, 3106613409u, 1066627453u, 2735392257u, 1064752080u, 3106613409u, 0, FMOD_TOLERANCE, 0},
+{ 449, 1065665372u, 2229777605u, 1065061963u, 2405869925u, 1064038618u, 4107370570u, 0, FMOD_TOLERANCE, 0},
+{ 450, 3239463229u, 3967957902u, 1057416138u, 3459188071u, 3204196577u, 4124519344u, 0, FMOD_TOLERANCE, 0},
+{ 451, 1068639210u, 3699016825u, 3249713090u, 796144848u, 1068639210u, 3699016825u, 0, FMOD_TOLERANCE, 0},
+{ 452, 3228816396u, 3285165564u, 3211948811u, 401510871u, 3209840260u, 3330978248u, 0, FMOD_TOLERANCE, 0},
+{ 453, 1094257658u, 634857910u, 3199607513u, 914218057u, 1052048505u, 3710809328u, 0, FMOD_TOLERANCE, 0},
+{ 454, 1083743336u, 2030735578u, 3233855943u, 965677531u, 1083743336u, 2030735578u, 0, FMOD_TOLERANCE, 0},
+{ 455, 1079556815u, 3957229084u, 1051050470u, 3123776651u, 1049160814u, 783877892u, 0, FMOD_TOLERANCE, 0},
+{ 456, 3221863333u, 162122081u, 3239376395u, 108064594u, 3221863333u, 162122081u, 0, FMOD_TOLERANCE, 0},
+{ 457, 3237271786u, 869031839u, 3225020876u, 1344301606u, 3222903301u, 3540960152u, 0, FMOD_TOLERANCE, 0},
+{ 458, 3214433474u, 946696117u, 3231825228u, 1700703647u, 3214433474u, 946696117u, 0, FMOD_TOLERANCE, 0},
+{ 459, 1075492875u, 3394168074u, 1076939786u, 1666995668u, 1075492875u, 3394168074u, 0, FMOD_TOLERANCE, 0},
+{ 460, 3208774795u, 2488789804u, 3238508333u, 1506943664u, 3208774795u, 2488789804u, 0, FMOD_TOLERANCE, 0},
+{ 461, 1072788663u, 3844072288u, 3202592279u, 2630019853u, 1050791994u, 3020747664u, 0, FMOD_TOLERANCE, 0},
+{ 462, 3219934542u, 1244307192u, 3191297711u, 2540916692u, 3190874175u, 3436568192u, 0, FMOD_TOLERANCE, 0},
+{ 463, 3200062692u, 2871645739u, 3239081581u, 1440249115u, 3200062692u, 2871645739u, 0, FMOD_TOLERANCE, 0},
+{ 464, 1068350633u, 1231934926u, 3236746788u, 603977748u, 1068350633u, 1231934926u, 0, FMOD_TOLERANCE, 0},
+{ 465, 3195449689u, 2386312545u, 1063169277u, 2715234268u, 3195449689u, 2386312545u, 0, FMOD_TOLERANCE, 0},
+{ 466, 1087803418u, 915867083u, 1046790892u, 3347417612u, 1045638702u, 1901110664u, 0, FMOD_TOLERANCE, 0},
+{ 467, 1105984188u, 3553288373u, 1065698616u, 2906680663u, 1065654333u, 394374333u, 0, FMOD_TOLERANCE, 0},
+{ 468, 1045506226u, 2342364630u, 1051356723u, 4019093203u, 1045506226u, 2342364630u, 0, FMOD_TOLERANCE, 0},
+{ 469, 3201169162u, 2911548084u, 1105282515u, 2476735795u, 3201169162u, 2911548084u, 0, FMOD_TOLERANCE, 0},
+{ 470, 1050472772u, 1836216409u, 1101062307u, 2519592554u, 1050472772u, 1836216409u, 0, FMOD_TOLERANCE, 0},
+{ 471, 1070178161u, 1235369496u, 3222946447u, 668087854u, 1070178161u, 1235369496u, 0, FMOD_TOLERANCE, 0},
+{ 472, 3208554596u, 2981820811u, 1059838516u, 2845580478u, 3204870528u, 1089922664u, 0, FMOD_TOLERANCE, 0},
+{ 473, 3193931414u, 1565550570u, 3217165795u, 4162017137u, 3193931414u, 1565550570u, 0, FMOD_TOLERANCE, 0},
+{ 474, 3237251378u, 2808968027u, 1055630096u, 1782326814u, 3202912790u, 180991026u, 0, FMOD_TOLERANCE, 0},
+{ 475, 1053576974u, 1492622658u, 3216653077u, 3972512122u, 1053576974u, 1492622658u, 0, FMOD_TOLERANCE, 0},
+{ 476, 3222171679u, 2722693603u, 3227814791u, 3169731970u, 3222171679u, 2722693603u, 0, FMOD_TOLERANCE, 0},
+{ 477, 3217906631u, 899763203u, 3207606001u, 2804747833u, 3207251162u, 2122903232u, 0, FMOD_TOLERANCE, 0},
+{ 478, 3230670325u, 3789058912u, 3228095081u, 4135937628u, 3225636468u, 4171394256u, 0, FMOD_TOLERANCE, 0},
+{ 479, 1060199382u, 1682808307u, 3206960335u, 232877759u, 1058588091u, 1970510414u, 0, FMOD_TOLERANCE, 0},
+{ 480, 3242091486u, 2851963139u, 3246852961u, 2590862592u, 3242091486u, 2851963139u, 0, FMOD_TOLERANCE, 0},
+{ 481, 1081200406u, 2422232642u, 3234779662u, 290458310u, 1081200406u, 2422232642u, 0, FMOD_TOLERANCE, 0},
+{ 482, 3210671078u, 1082582386u, 1075605675u, 2602133689u, 3210671078u, 1082582386u, 0, FMOD_TOLERANCE, 0},
+{ 483, 3239818611u, 1789635787u, 1059414278u, 1048286093u, 3206731454u, 161965426u, 0, FMOD_TOLERANCE, 0},
+{ 484, 1098330542u, 231339448u, 1055573265u, 504907415u, 1051746624u, 967485912u, 0, FMOD_TOLERANCE, 0},
+{ 485, 1063211461u, 1153251200u, 3204617090u, 1772013857u, 1057074856u, 3116846123u, 0, FMOD_TOLERANCE, 0},
+{ 486, 1099551055u, 1082898276u, 3212089272u, 1449080862u, 1062378436u, 616033392u, 0, FMOD_TOLERANCE, 0},
+{ 487, 1086008285u, 3177299045u, 1058862813u, 809400815u, 1057989685u, 820293200u, 0, FMOD_TOLERANCE, 0},
+{ 488, 3230854550u, 1924429710u, 1056464743u, 3349283177u, 3203738102u, 3383038049u, 0, FMOD_TOLERANCE, 0},
+{ 489, 3245473391u, 42238036u, 1042379500u, 2113559863u, 3188554021u, 400599972u, 0, FMOD_TOLERANCE, 0},
+{ 490, 1064761243u, 3304403230u, 3217556703u, 58952646u, 1064761243u, 3304403230u, 0, FMOD_TOLERANCE, 0},
+{ 491, 3212669530u, 1645486982u, 3224301095u, 3636267471u, 3212669530u, 1645486982u, 0, FMOD_TOLERANCE, 0},
+{ 492, 1062762009u, 619402181u, 3235208235u, 557360557u, 1062762009u, 619402181u, 0, FMOD_TOLERANCE, 0},
+{ 493, 3238238394u, 110029735u, 1046937383u, 984375729u, 3193133439u, 1179097756u, 0, FMOD_TOLERANCE, 0},
+{ 494, 3189496738u, 4063688092u, 3203235744u, 1049950343u, 3189496738u, 4063688092u, 0, FMOD_TOLERANCE, 0},
+{ 495, 1062350619u, 650996069u, 1054971928u, 3953359826u, 1053065959u, 2577623264u, 0, FMOD_TOLERANCE, 0},
+{ 496, 3227055805u, 66926332u, 1090561839u, 1379780888u, 3227055805u, 66926332u, 0, FMOD_TOLERANCE, 0},
+{ 497, 3233453307u, 2803378256u, 1086057989u, 498534626u, 3233453307u, 2803378256u, 0, FMOD_TOLERANCE, 0},
+{ 498, 1082618553u, 2846400785u, 1047142525u, 1375153550u, 1045619713u, 827121532u, 0, FMOD_TOLERANCE, 0},
+{ 499, 1044581201u, 2869128958u, 1070972315u, 4246440273u, 1044581201u, 2869128958u, 0, FMOD_TOLERANCE, 0},
+{ 500, 1051832506u, 3112381207u, 1044430965u, 3981604561u, 1041693028u, 3636927048u, 0, FMOD_TOLERANCE, 0},
+{ 501, 3231254997u, 243303420u, 1093735824u, 1575581926u, 3231254997u, 243303420u, 0, FMOD_TOLERANCE, 0},
+{ 502, 3239137997u, 3218865041u, 3204803496u, 3840388050u, 3204798666u, 787476908u, 0, FMOD_TOLERANCE, 0},
+{ 503, 1048415431u, 336846959u, 1052664471u, 3798336786u, 1048415431u, 336846959u, 0, FMOD_TOLERANCE, 0},
+{ 504, 1055954236u, 3639240976u, 1081202165u, 1844741676u, 1055954236u, 3639240976u, 0, FMOD_TOLERANCE, 0},
+{ 505, 3211904793u, 717293069u, 3211534283u, 582401011u, 3209542044u, 3408740508u, 0, FMOD_TOLERANCE, 0},
+{ 506, 3251962512u, 3766248610u, 3196520332u, 1174437546u, 3196014770u, 4109085092u, 0, FMOD_TOLERANCE, 0},
+{ 507, 1083431226u, 756959182u, 3204099341u, 1581804034u, 1055393679u, 3734226980u, 0, FMOD_TOLERANCE, 0},
+{ 508, 3205806444u, 3560686300u, 3220980617u, 4277975772u, 3205806444u, 3560686300u, 0, FMOD_TOLERANCE, 0},
+{ 509, 3209906076u, 2598148853u, 3217622194u, 3460421008u, 3209906076u, 2598148853u, 0, FMOD_TOLERANCE, 0},
+{ 510, 1066720824u, 136600515u, 3209934920u, 3340653128u, 1062362868u, 274765744u, 0, FMOD_TOLERANCE, 0},
+{ 511, 1096820310u, 1045480938u, 3251354609u, 4133432965u, 1096820310u, 1045480938u, 0, FMOD_TOLERANCE, 0},
+{ 512, 1091599431u, 1630207738u, 3239996829u, 2393354808u, 1091599431u, 1630207738u, 0, FMOD_TOLERANCE, 0},
+{ 513, 3190626018u, 3739770117u, 1059520750u, 3959551225u, 3190626018u, 3739770117u, 0, FMOD_TOLERANCE, 0},
+{ 514, 3230730505u, 1498861716u, 1091297147u, 847410798u, 3230730505u, 1498861716u, 0, FMOD_TOLERANCE, 0},
+{ 515, 1073516688u, 983275314u, 3232538664u, 2244973629u, 1073516688u, 983275314u, 0, FMOD_TOLERANCE, 0},
+{ 516, 1054849265u, 2353103845u, 3235718771u, 2978889966u, 1054849265u, 2353103845u, 0, FMOD_TOLERANCE, 0},
+{ 517, 3251357992u, 1546972125u, 3249076079u, 1987349196u, 3247869383u, 771950728u, 0, FMOD_TOLERANCE, 0},
+{ 518, 3238219513u, 2769161072u, 1075207126u, 292616282u, 3222233842u, 1259919276u, 0, FMOD_TOLERANCE, 0},
+{ 519, 3199712298u, 36855311u, 1052128202u, 1479039342u, 3195569658u, 2694859280u, 0, FMOD_TOLERANCE, 0},
+{ 520, 1083757053u, 2027463605u, 1066023013u, 3369686340u, 1064734089u, 2507689016u, 0, FMOD_TOLERANCE, 0},
+{ 521, 3197852749u, 3808681655u, 1054161346u, 1821773119u, 3197852749u, 3808681655u, 0, FMOD_TOLERANCE, 0},
+{ 522, 1040685928u, 3175490326u, 3226879970u, 845687760u, 1040685928u, 3175490326u, 0, FMOD_TOLERANCE, 0},
+{ 523, 1042302993u, 3124482451u, 3242748377u, 3259417226u, 1042302993u, 3124482451u, 0, FMOD_TOLERANCE, 0},
+{ 524, 1045245695u, 2751606436u, 3236210939u, 3923142740u, 1045245695u, 2751606436u, 0, FMOD_TOLERANCE, 0},
+{ 525, 1095694737u, 2016872044u, 3228408064u, 4201274408u, 1079338259u, 2482332128u, 0, FMOD_TOLERANCE, 0},
+{ 526, 3199349254u, 1019916843u, 3219974785u, 1977881787u, 3199349254u, 1019916843u, 0, FMOD_TOLERANCE, 0},
+{ 527, 3199478752u, 2060433318u, 1075872515u, 366073725u, 3199478752u, 2060433318u, 0, FMOD_TOLERANCE, 0},
+{ 528, 3191180557u, 1098469906u, 1082900695u, 2349346832u, 3191180557u, 1098469906u, 0, FMOD_TOLERANCE, 0},
+{ 529, 3209974707u, 3011196295u, 3252479932u, 2459281672u, 3209974707u, 3011196295u, 0, FMOD_TOLERANCE, 0},
+{ 530, 3221334323u, 2843222682u, 1089275809u, 298982001u, 3221334323u, 2843222682u, 0, FMOD_TOLERANCE, 0},
+{ 531, 1101737698u, 914741728u, 3203468059u, 2833809843u, 1055493013u, 3780280494u, 0, FMOD_TOLERANCE, 0},
+{ 532, 3236763878u, 1274901962u, 3241535845u, 3759113509u, 3236763878u, 1274901962u, 0, FMOD_TOLERANCE, 0},
+{ 533, 3245916442u, 2134927252u, 3253802671u, 3013731444u, 3245916442u, 2134927252u, 0, FMOD_TOLERANCE, 0},
+{ 534, 1099201341u, 2230655177u, 3254510616u, 1249674366u, 1099201341u, 2230655177u, 0, FMOD_TOLERANCE, 0},
+{ 535, 1062971253u, 717357389u, 1083533731u, 3746683362u, 1062971253u, 717357389u, 0, FMOD_TOLERANCE, 0},
+{ 536, 3213773114u, 834976849u, 3217357661u, 2465861779u, 3213773114u, 834976849u, 0, FMOD_TOLERANCE, 0},
+{ 537, 1045656117u, 1385714428u, 1053358395u, 3007113740u, 1045656117u, 1385714428u, 0, FMOD_TOLERANCE, 0},
+{ 538, 1050527919u, 599268545u, 3201368210u, 2309854744u, 1050527919u, 599268545u, 0, FMOD_TOLERANCE, 0},
+{ 539, 1069954454u, 2840234388u, 3232496515u, 333365983u, 1069954454u, 2840234388u, 0, FMOD_TOLERANCE, 0},
+{ 540, 1045922781u, 3136078996u, 3194520860u, 2650572904u, 1045922781u, 3136078996u, 0, FMOD_TOLERANCE, 0},
+{ 541, 3233687691u, 2405805086u, 3251640319u, 324233833u, 3233687691u, 2405805086u, 0, FMOD_TOLERANCE, 0},
+{ 542, 1106699146u, 2589598340u, 3254677807u, 952438812u, 1106699146u, 2589598340u, 0, FMOD_TOLERANCE, 0},
+{ 543, 3189114773u, 1922837702u, 3216892718u, 3535907549u, 3189114773u, 1922837702u, 0, FMOD_TOLERANCE, 0},
+{ 544, 3243615868u, 261447440u, 3209805849u, 1150571079u, 3209751028u, 448279323u, 0, FMOD_TOLERANCE, 0},
+{ 545, 1095805232u, 4026487528u, 1073152064u, 27340691u, 1072528272u, 4241782692u, 0, FMOD_TOLERANCE, 0},
+{ 546, 3229123692u, 338765118u, 1086225786u, 3207238249u, 3229123692u, 338765118u, 0, FMOD_TOLERANCE, 0},
+{ 547, 3196182703u, 1085283176u, 3187775111u, 1601194210u, 3185471006u, 277550016u, 0, FMOD_TOLERANCE, 0},
+{ 548, 1091520173u, 3031712790u, 3252307859u, 170666844u, 1091520173u, 3031712790u, 0, FMOD_TOLERANCE, 0},
+{ 549, 3218862231u, 3148395674u, 1041913758u, 3306391490u, 3188988265u, 2020178358u, 0, FMOD_TOLERANCE, 0},
+{ 550, 3201277070u, 2205233857u, 3208100078u, 3993195511u, 3201277070u, 2205233857u, 0, FMOD_TOLERANCE, 0},
+{ 551, 1067699608u, 4282766727u, 1072820377u, 1874778218u, 1067699608u, 4282766727u, 0, FMOD_TOLERANCE, 0},
+{ 552, 3210833092u, 2920860798u, 3218070226u, 3104066154u, 3210833092u, 2920860798u, 0, FMOD_TOLERANCE, 0},
+{ 553, 3204950351u, 969991373u, 3250596895u, 1734386152u, 3204950351u, 969991373u, 0, FMOD_TOLERANCE, 0},
+{ 554, 3238915818u, 1218740205u, 3239802737u, 2610078504u, 3238915818u, 1218740205u, 0, FMOD_TOLERANCE, 0},
+{ 555, 3206031242u, 1485218325u, 3220870240u, 3591664613u, 3206031242u, 1485218325u, 0, FMOD_TOLERANCE, 0},
+{ 556, 3202074143u, 690157417u, 3190850619u, 4192347699u, 3190754019u, 1427484234u, 0, FMOD_TOLERANCE, 0},
+{ 557, 1096053810u, 4009839784u, 1079670252u, 394167192u, 1079518848u, 867425232u, 0, FMOD_TOLERANCE, 0},
+{ 558, 3234559237u, 961532417u, 1092588071u, 2923790239u, 3234559237u, 961532417u, 0, FMOD_TOLERANCE, 0},
+{ 559, 3203879091u, 4174125604u, 1050682630u, 2169701868u, 3195763358u, 3837894848u, 0, FMOD_TOLERANCE, 0},
+{ 560, 3243092475u, 4146748230u, 1087373950u, 2481478351u, 3232069221u, 948734696u, 0, FMOD_TOLERANCE, 0},
+{ 561, 1076987866u, 3984715440u, 1050421618u, 2446142566u, 1049869649u, 4014532372u, 0, FMOD_TOLERANCE, 0},
+{ 562, 1084172406u, 936290150u, 1100614426u, 3625806370u, 1084172406u, 936290150u, 0, FMOD_TOLERANCE, 0},
+{ 563, 1099787952u, 1866615265u, 3215651428u, 2337013350u, 1068112940u, 2065541092u, 0, FMOD_TOLERANCE, 0},
+{ 564, 3253198302u, 712227971u, 1106004723u, 973148499u, 3253198302u, 712227971u, 0, FMOD_TOLERANCE, 0},
+{ 565, 3230088199u, 3409813738u, 3244817008u, 1933503498u, 3230088199u, 3409813738u, 0, FMOD_TOLERANCE, 0},
+{ 566, 1079943733u, 3180389060u, 3228735703u, 83422217u, 1079943733u, 3180389060u, 0, FMOD_TOLERANCE, 0},
+{ 567, 1077878724u, 556972671u, 3204582372u, 841555801u, 1055208115u, 591272876u, 0, FMOD_TOLERANCE, 0},
+{ 568, 1070767721u, 4189151332u, 1080874032u, 706326922u, 1070767721u, 4189151332u, 0, FMOD_TOLERANCE, 0},
+{ 569, 1096151307u, 198291836u, 1057281892u, 2188836928u, 1055499771u, 875289856u, 0, FMOD_TOLERANCE, 0},
+{ 570, 1078091995u, 1219449298u, 3228734687u, 3504562743u, 1078091995u, 1219449298u, 0, FMOD_TOLERANCE, 0},
+{ 571, 3204570464u, 1776099219u, 1094316777u, 4188083896u, 3204570464u, 1776099219u, 0, FMOD_TOLERANCE, 0},
+{ 572, 3193845708u, 2614400266u, 1073750227u, 3003203347u, 3193845708u, 2614400266u, 0, FMOD_TOLERANCE, 0},
+{ 573, 3213982678u, 2959351406u, 1105603716u, 311851587u, 3213982678u, 2959351406u, 0, FMOD_TOLERANCE, 0},
+{ 574, 1084544434u, 865443613u, 1097532516u, 3622237781u, 1084544434u, 865443613u, 0, FMOD_TOLERANCE, 0},
+{ 575, 3231786666u, 447506102u, 3195759295u, 3603669725u, 3195388962u, 48097524u, 0, FMOD_TOLERANCE, 0},
+{ 576, 1097890173u, 3934398273u, 1040996422u, 2968621268u, 1032218095u, 1642424320u, 0, FMOD_TOLERANCE, 0},
+{ 577, 3196739825u, 784208771u, 1088764788u, 2182296421u, 3196739825u, 784208771u, 0, FMOD_TOLERANCE, 0},
+{ 578, 3248332291u, 1527590526u, 3206961556u, 2823164069u, 3202606342u, 467945328u, 0, FMOD_TOLERANCE, 0},
+{ 579, 3236644131u, 3876699591u, 3207481130u, 4028148535u, 3207025197u, 2389472u, 0, FMOD_TOLERANCE, 0},
+{ 580, 1083576186u, 2164249756u, 1059857743u, 1785169952u, 1057168829u, 1285739008u, 0, FMOD_TOLERANCE, 0},
+{ 581, 1091804009u, 2079273665u, 1080303860u, 625760474u, 1080204852u, 4108973564u, 0, FMOD_TOLERANCE, 0},
+{ 582, 3226486108u, 3636214836u, 1068367620u, 2932621925u, 3215665271u, 4164533778u, 0, FMOD_TOLERANCE, 0},
+{ 583, 1043995372u, 4274131512u, 1047707755u, 92550763u, 1043995372u, 4274131512u, 0, FMOD_TOLERANCE, 0},
+{ 584, 3198822121u, 2648933384u, 1084603503u, 3534304873u, 3198822121u, 2648933384u, 0, FMOD_TOLERANCE, 0},
+{ 585, 1064563235u, 3216750767u, 3191088629u, 547482628u, 1043331165u, 1682911544u, 0, FMOD_TOLERANCE, 0},
+{ 586, 1061084774u, 1420360746u, 1080063101u, 1690029499u, 1061084774u, 1420360746u, 0, FMOD_TOLERANCE, 0},
+{ 587, 3229855364u, 1908572179u, 1080112083u, 1228319033u, 3226719625u, 1147057872u, 0, FMOD_TOLERANCE, 0},
+{ 588, 1048158178u, 500312015u, 3212368508u, 3864619086u, 1048158178u, 500312015u, 0, FMOD_TOLERANCE, 0},
+{ 589, 3221335610u, 4211343447u, 1087492676u, 4272583781u, 3221335610u, 4211343447u, 0, FMOD_TOLERANCE, 0},
+{ 590, 1099392394u, 2382118000u, 1042665328u, 567154882u, 1040869806u, 453051744u, 0, FMOD_TOLERANCE, 0},
+{ 591, 1058013442u, 1435344339u, 3216303171u, 2275988178u, 1058013442u, 1435344339u, 0, FMOD_TOLERANCE, 0},
+{ 592, 3214538619u, 3403659753u, 3218043030u, 1926480488u, 3214538619u, 3403659753u, 0, FMOD_TOLERANCE, 0},
+{ 593, 1076840383u, 1198845185u, 3225556149u, 1130089684u, 1076840383u, 1198845185u, 0, FMOD_TOLERANCE, 0},
+{ 594, 3222663042u, 2183928090u, 1048403956u, 963834821u, 3195363473u, 3195485470u, 0, FMOD_TOLERANCE, 0},
+{ 595, 1101672960u, 2120625396u, 1041006976u, 2137548527u, 1040260673u, 1412589497u, 0, FMOD_TOLERANCE, 0},
+{ 596, 1099230238u, 586700956u, 1059670521u, 303891699u, 1058907437u, 671754624u, 0, FMOD_TOLERANCE, 0},
+{ 597, 3218994498u, 2509132460u, 1102827530u, 2205707903u, 3218994498u, 2509132460u, 0, FMOD_TOLERANCE, 0},
+{ 598, 3204860597u, 1229308263u, 3209170414u, 4206576047u, 3204860597u, 1229308263u, 0, FMOD_TOLERANCE, 0},
+{ 599, 3224076289u, 4078010749u, 3199236456u, 733478972u, 3194080982u, 4202642048u, 0, FMOD_TOLERANCE, 0},
+{ 600, 3197712584u, 4277541051u, 3199806921u, 397102023u, 3197712584u, 4277541051u, 0, FMOD_TOLERANCE, 0},
+{ 601, 3195975013u, 900999594u, 3234720188u, 2530214248u, 3195975013u, 900999594u, 0, FMOD_TOLERANCE, 0},
+{ 602, 1076543548u, 4000609478u, 1096577064u, 4148592328u, 1076543548u, 4000609478u, 0, FMOD_TOLERANCE, 0},
+{ 603, 1048668084u, 2154187873u, 3224392607u, 3957250362u, 1048668084u, 2154187873u, 0, FMOD_TOLERANCE, 0},
+{ 604, 3223413488u, 2867079200u, 1101870326u, 921212001u, 3223413488u, 2867079200u, 0, FMOD_TOLERANCE, 0},
+{ 605, 3233221890u, 674547716u, 1063216239u, 3929755226u, 3209670490u, 2459169696u, 0, FMOD_TOLERANCE, 0},
+{ 606, 3240415851u, 3158182449u, 1043794244u, 3259056345u, 3187937981u, 192140832u, 0, FMOD_TOLERANCE, 0},
+{ 607, 3236776656u, 3002823940u, 1059511739u, 2832435794u, 3204553045u, 1016263584u, 0, FMOD_TOLERANCE, 0},
+{ 608, 3217304822u, 2196511929u, 1049973941u, 3672092877u, 3190009780u, 1471223680u, 0, FMOD_TOLERANCE, 0},
+{ 609, 1050438056u, 3655292191u, 1086438127u, 3567072906u, 1050438056u, 3655292191u, 0, FMOD_TOLERANCE, 0},
+{ 610, 3243186948u, 1617573614u, 3201863123u, 3090723732u, 3201825032u, 683072336u, 0, FMOD_TOLERANCE, 0},
+{ 611, 3233201380u, 679893506u, 3211547753u, 824081024u, 3211397784u, 2944964096u, 0, FMOD_TOLERANCE, 0},
+{ 612, 1089530525u, 2285242807u, 1084999409u, 2221731406u, 1083907976u, 1700204076u, 0, FMOD_TOLERANCE, 0},
+{ 613, 3206733664u, 1935990727u, 1088822246u, 1058156518u, 3206733664u, 1935990727u, 0, FMOD_TOLERANCE, 0},
+{ 614, 1102839166u, 521023584u, 1059186903u, 4245163857u, 1055362223u, 1655370368u, 0, FMOD_TOLERANCE, 0},
+{ 615, 1103891140u, 2312887617u, 3191771354u, 1885370807u, 1041541300u, 2718621452u, 0, FMOD_TOLERANCE, 0},
+{ 616, 3252953815u, 1796441468u, 1100030327u, 2772711004u, 3246721348u, 4280920168u, 0, FMOD_TOLERANCE, 0},
+{ 617, 3204276820u, 2095685003u, 1077984448u, 2100773742u, 3204276820u, 2095685003u, 0, FMOD_TOLERANCE, 0},
+{ 618, 3192954620u, 2892538035u, 1042396334u, 4162200338u, 3188854329u, 894705716u, 0, FMOD_TOLERANCE, 0},
+{ 619, 3242725751u, 2177698116u, 3227557177u, 150832500u, 3227202903u, 2218581776u, 0, FMOD_TOLERANCE, 0},
+{ 620, 3191562216u, 607966734u, 3236250630u, 4164600559u, 3191562216u, 607966734u, 0, FMOD_TOLERANCE, 0},
+{ 621, 3216389812u, 2830122967u, 1046096700u, 3713346883u, 3190040120u, 1259669816u, 0, FMOD_TOLERANCE, 0},
+{ 622, 3237197963u, 2314640506u, 3203696416u, 3276228872u, 3202693343u, 3819577136u, 0, FMOD_TOLERANCE, 0},
+{ 623, 3212912307u, 469331883u, 3249037349u, 2999233437u, 3212912307u, 469331883u, 0, FMOD_TOLERANCE, 0},
+{ 624, 1097382011u, 560886625u, 1091899487u, 748795120u, 1091003205u, 1960741600u, 0, FMOD_TOLERANCE, 0},
+{ 625, 1049886858u, 2958421324u, 1092569414u, 3235243477u, 1049886858u, 2958421324u, 0, FMOD_TOLERANCE, 0},
+{ 626, 3193026497u, 3221475559u, 1043038304u, 915608434u, 3187732659u, 3170670584u, 0, FMOD_TOLERANCE, 0},
+{ 627, 1071197530u, 3007808652u, 3216682290u, 2531019474u, 1068805587u, 143208890u, 0, FMOD_TOLERANCE, 0},
+{ 628, 3242028999u, 1767658578u, 3237045269u, 2313128318u, 3233211152u, 3004976480u, 0, FMOD_TOLERANCE, 0},
+{ 629, 3210617892u, 1926845182u, 1066835624u, 1783256828u, 3210617892u, 1926845182u, 0, FMOD_TOLERANCE, 0},
+{ 630, 1040575629u, 90378038u, 1057168870u, 164358218u, 1040575629u, 90378038u, 0, FMOD_TOLERANCE, 0},
+{ 631, 1106859172u, 1610524680u, 1085283851u, 2903496007u, 1084994804u, 440348838u, 0, FMOD_TOLERANCE, 0},
+{ 632, 1078635586u, 4274321404u, 3202913591u, 720121831u, 1055010561u, 2898139117u, 0, FMOD_TOLERANCE, 0},
+{ 633, 1051205256u, 2034778236u, 1071133763u, 1413236391u, 1051205256u, 2034778236u, 0, FMOD_TOLERANCE, 0},
+{ 634, 1051063028u, 1489112261u, 1076691395u, 348210906u, 1051063028u, 1489112261u, 0, FMOD_TOLERANCE, 0},
+{ 635, 3206743917u, 2797651324u, 3224410527u, 2374818327u, 3206743917u, 2797651324u, 0, FMOD_TOLERANCE, 0},
+{ 636, 1088287256u, 1823161666u, 3197810695u, 3119680047u, 1050267207u, 2986447262u, 0, FMOD_TOLERANCE, 0},
+{ 637, 1065927336u, 3420950657u, 1087084743u, 2136638961u, 1065927336u, 3420950657u, 0, FMOD_TOLERANCE, 0},
+{ 638, 1069902224u, 3554566429u, 1062907717u, 2736702589u, 1062400682u, 4042146994u, 0, FMOD_TOLERANCE, 0},
+{ 639, 3244888667u, 2928437580u, 3187765027u, 1393427873u, 3186712505u, 567458542u, 0, FMOD_TOLERANCE, 0},
+{ 640, 3209301561u, 189447067u, 1051643315u, 828663513u, 3196334080u, 1428817848u, 0, FMOD_TOLERANCE, 0},
+{ 641, 1052313869u, 2852350928u, 1045683757u, 673354280u, 1045015195u, 3961163520u, 0, FMOD_TOLERANCE, 0},
+{ 642, 1043946301u, 3589563265u, 3248741629u, 812657927u, 1043946301u, 3589563265u, 0, FMOD_TOLERANCE, 0},
+{ 643, 3190610826u, 1766416701u, 1100392103u, 2185373290u, 3190610826u, 1766416701u, 0, FMOD_TOLERANCE, 0},
+{ 644, 3220275389u, 3763582673u, 3191965790u, 388374829u, 3188237498u, 3752050608u, 0, FMOD_TOLERANCE, 0},
+{ 645, 1079635136u, 1187403069u, 1075300235u, 336640304u, 1074075536u, 781324096u, 0, FMOD_TOLERANCE, 0},
+{ 646, 1103926251u, 1718795752u, 3243118752u, 683369237u, 1093945023u, 2445129250u, 0, FMOD_TOLERANCE, 0},
+{ 647, 3210792097u, 1863545307u, 1069449477u, 3418627399u, 3210792097u, 1863545307u, 0, FMOD_TOLERANCE, 0},
+{ 648, 1069601294u, 3295607249u, 1068878592u, 1633297809u, 1067954746u, 1325898786u, 0, FMOD_TOLERANCE, 0},
+{ 649, 1058947127u, 2585980994u, 3236670483u, 1286750688u, 1058947127u, 2585980994u, 0, FMOD_TOLERANCE, 0},
+{ 650, 1046157033u, 15816845u, 3233249283u, 2491924775u, 1046157033u, 15816845u, 0, FMOD_TOLERANCE, 0},
+{ 651, 1042413021u, 1051983351u, 1049180786u, 1474421917u, 1042413021u, 1051983351u, 0, FMOD_TOLERANCE, 0},
+{ 652, 3201249525u, 2003816032u, 1086050104u, 668090487u, 3201249525u, 2003816032u, 0, FMOD_TOLERANCE, 0},
+{ 653, 1052556037u, 3671484625u, 1067020039u, 430024694u, 1052556037u, 3671484625u, 0, FMOD_TOLERANCE, 0},
+{ 654, 1067397110u, 3991830201u, 3207808714u, 1021245839u, 1059390649u, 4224879470u, 0, FMOD_TOLERANCE, 0},
+{ 655, 1064194391u, 4255801807u, 3207681716u, 1926756877u, 1060184982u, 408640463u, 0, FMOD_TOLERANCE, 0},
+{ 656, 1052140785u, 4167786896u, 1077097744u, 1775517981u, 1052140785u, 4167786896u, 0, FMOD_TOLERANCE, 0},
+{ 657, 1085601978u, 3187518564u, 1082437406u, 944672491u, 1079142177u, 1808227904u, 0, FMOD_TOLERANCE, 0},
+{ 658, 1049366282u, 953085192u, 3227310828u, 3459155777u, 1049366282u, 953085192u, 0, FMOD_TOLERANCE, 0},
+{ 659, 1069502506u, 1908555460u, 1073640207u, 260441967u, 1069502506u, 1908555460u, 0, FMOD_TOLERANCE, 0},
+{ 660, 1067219606u, 250762477u, 1072582645u, 2886742039u, 1067219606u, 250762477u, 0, FMOD_TOLERANCE, 0},
+{ 661, 3250906006u, 786180031u, 3197734769u, 2788918312u, 3197718341u, 1660002464u, 0, FMOD_TOLERANCE, 0},
+{ 662, 3234511827u, 2055912467u, 3244244909u, 1394142937u, 3234511827u, 2055912467u, 0, FMOD_TOLERANCE, 0},
+{ 663, 1069612985u, 91984146u, 3222252812u, 4126276047u, 1069612985u, 91984146u, 0, FMOD_TOLERANCE, 0},
+{ 664, 1081340139u, 3942715706u, 3239316352u, 410676547u, 1081340139u, 3942715706u, 0, FMOD_TOLERANCE, 0},
+{ 665, 3198557846u, 86296211u, 1085850694u, 649202596u, 3198557846u, 86296211u, 0, FMOD_TOLERANCE, 0},
+{ 666, 3245366392u, 3069064472u, 3237358008u, 23209276u, 3237336469u, 3928080368u, 0, FMOD_TOLERANCE, 0},
+{ 667, 1081235288u, 1867297860u, 1072956607u, 2513414118u, 1072038560u, 3116996488u, 0, FMOD_TOLERANCE, 0},
+{ 668, 3250533347u, 3171788768u, 3235208783u, 162138697u, 3233674177u, 213600176u, 0, FMOD_TOLERANCE, 0},
+{ 669, 1081728455u, 1245110700u, 1081653954u, 2584994077u, 1077030987u, 36702448u, 0, FMOD_TOLERANCE, 0},
+{ 670, 3245510120u, 3347226587u, 1058962932u, 2291943376u, 3204328645u, 501177472u, 0, FMOD_TOLERANCE, 0},
+{ 671, 1058899062u, 966940828u, 1060726420u, 2798041096u, 1058899062u, 966940828u, 0, FMOD_TOLERANCE, 0},
+{ 672, 1072793759u, 2487340727u, 3223786370u, 4105954991u, 1072793759u, 2487340727u, 0, FMOD_TOLERANCE, 0},
+{ 673, 3248116497u, 1671039260u, 1086395032u, 3745833360u, 3232128780u, 3325632576u, 0, FMOD_TOLERANCE, 0},
+{ 674, 1057078797u, 651714217u, 1047070645u, 2130549237u, 1046831002u, 3175457063u, 0, FMOD_TOLERANCE, 0},
+{ 675, 3207115731u, 1423000172u, 3247822717u, 1551488170u, 3207115731u, 1423000172u, 0, FMOD_TOLERANCE, 0},
+{ 676, 3201597307u, 921077236u, 3213332351u, 1431049019u, 3201597307u, 921077236u, 0, FMOD_TOLERANCE, 0},
+{ 677, 1067510295u, 655715547u, 3190985373u, 1527556471u, 1041178029u, 1042162176u, 0, FMOD_TOLERANCE, 0},
+{ 678, 3227654979u, 4110878657u, 3251297180u, 879739345u, 3227654979u, 4110878657u, 0, FMOD_TOLERANCE, 0},
+{ 679, 1085804762u, 2623955764u, 1093699897u, 1216444475u, 1085804762u, 2623955764u, 0, FMOD_TOLERANCE, 0},
+{ 680, 1091905603u, 107442539u, 3239767031u, 1149813329u, 1091905603u, 107442539u, 0, FMOD_TOLERANCE, 0},
+{ 681, 3233445240u, 1761361082u, 3226030205u, 1121849716u, 3225676576u, 3233762236u, 0, FMOD_TOLERANCE, 0},
+{ 682, 3240087115u, 2534144722u, 1044223733u, 3512285706u, 3190415678u, 3596436140u, 0, FMOD_TOLERANCE, 0},
+{ 683, 3211846077u, 4073670723u, 1050729852u, 3034818849u, 3194207612u, 3429855104u, 0, FMOD_TOLERANCE, 0},
+{ 684, 1101984574u, 1421423503u, 1060278048u, 1397153092u, 1059882635u, 2568378152u, 0, FMOD_TOLERANCE, 0},
+{ 685, 3217421829u, 1649206019u, 1104525577u, 1267104290u, 3217421829u, 1649206019u, 0, FMOD_TOLERANCE, 0},
+{ 686, 3189302097u, 3775270392u, 1040251850u, 68667319u, 3187645983u, 1941510404u, 0, FMOD_TOLERANCE, 0},
+{ 687, 3204330900u, 3099226694u, 3254103006u, 4020102648u, 3204330900u, 3099226694u, 0, FMOD_TOLERANCE, 0},
+{ 688, 3201591712u, 3718441177u, 3215643451u, 4032951536u, 3201591712u, 3718441177u, 0, FMOD_TOLERANCE, 0},
+{ 689, 1044131371u, 508048351u, 3210196713u, 1707937896u, 1044131371u, 508048351u, 0, FMOD_TOLERANCE, 0},
+{ 690, 3198611627u, 2784738160u, 1073435430u, 1109346010u, 3198611627u, 2784738160u, 0, FMOD_TOLERANCE, 0},
+{ 691, 3225725290u, 3331916473u, 3238794568u, 2707019594u, 3225725290u, 3331916473u, 0, FMOD_TOLERANCE, 0},
+{ 692, 1093182670u, 3093165197u, 1072894805u, 2853215019u, 1072144665u, 522903412u, 0, FMOD_TOLERANCE, 0},
+{ 693, 3216582139u, 2135797997u, 1048399559u, 2941926126u, 3195240398u, 1149654386u, 0, FMOD_TOLERANCE, 0},
+{ 694, 1048430980u, 2083412145u, 3249335391u, 507212448u, 1048430980u, 2083412145u, 0, FMOD_TOLERANCE, 0},
+{ 695, 1075363751u, 4270176401u, 3246546709u, 3288753319u, 1075363751u, 4270176401u, 0, FMOD_TOLERANCE, 0},
+{ 696, 3247932863u, 3692175292u, 3197271515u, 3989064196u, 3195385746u, 1804687120u, 0, FMOD_TOLERANCE, 0},
+{ 697, 3251691738u, 3111924274u, 1066772558u, 59281695u, 3213394999u, 381330476u, 0, FMOD_TOLERANCE, 0},
+{ 698, 1067683911u, 2135245466u, 3208804313u, 3846547392u, 1060988849u, 2687204992u, 0, FMOD_TOLERANCE, 0},
+{ 699, 1094877811u, 972051266u, 3222814246u, 3539700586u, 1073938217u, 1705671480u, 0, FMOD_TOLERANCE, 0},
+{ 700, 3202965930u, 330951080u, 1079189813u, 583922384u, 3202965930u, 330951080u, 0, FMOD_TOLERANCE, 0},
+{ 701, 1089640092u, 1711944085u, 1104170032u, 643991456u, 1089640092u, 1711944085u, 0, FMOD_TOLERANCE, 0},
+{ 702, 3234429549u, 2072550721u, 3250147641u, 4280263530u, 3234429549u, 2072550721u, 0, FMOD_TOLERANCE, 0},
+{ 703, 3192972706u, 1566376352u, 1067251433u, 72984588u, 3192972706u, 1566376352u, 0, FMOD_TOLERANCE, 0},
+{ 704, 1095276569u, 3103043079u, 1045853123u, 410067497u, 1045654090u, 2757379143u, 0, FMOD_TOLERANCE, 0},
+{ 705, 3216672493u, 1910366299u, 1081770885u, 634683073u, 3216672493u, 1910366299u, 0, FMOD_TOLERANCE, 0},
+{ 706, 1081530688u, 2226525875u, 3224149290u, 2126302825u, 1075813844u, 1822776382u, 0, FMOD_TOLERANCE, 0},
+{ 707, 1073150247u, 1383818978u, 3193885723u, 1220372650u, 1045096906u, 3892678396u, 0, FMOD_TOLERANCE, 0},
+{ 708, 1066482943u, 1953339096u, 1077176252u, 1476516558u, 1066482943u, 1953339096u, 0, FMOD_TOLERANCE, 0},
+{ 709, 1066092000u, 1306277326u, 1079089150u, 4093716191u, 1066092000u, 1306277326u, 0, FMOD_TOLERANCE, 0},
+{ 710, 3233148787u, 51750045u, 3242913901u, 4256866157u, 3233148787u, 51750045u, 0, FMOD_TOLERANCE, 0},
+{ 711, 3195084967u, 2163853087u, 3232053146u, 2962422808u, 3195084967u, 2163853087u, 0, FMOD_TOLERANCE, 0},
+{ 712, 1075516945u, 1618388148u, 3233154824u, 3711953164u, 1075516945u, 1618388148u, 0, FMOD_TOLERANCE, 0},
+{ 713, 3246868002u, 357108214u, 3202294604u, 2306775262u, 3202248567u, 2697674194u, 0, FMOD_TOLERANCE, 0},
+{ 714, 3201904086u, 2571356437u, 3249064063u, 2394851808u, 3201904086u, 2571356437u, 0, FMOD_TOLERANCE, 0},
+{ 715, 3230488091u, 4273880094u, 1103698617u, 3578832032u, 3230488091u, 4273880094u, 0, FMOD_TOLERANCE, 0},
+{ 716, 3233426701u, 2091068742u, 3228270226u, 3980489730u, 3227097327u, 2373198088u, 0, FMOD_TOLERANCE, 0},
+{ 717, 3229016752u, 2772307714u, 1051008486u, 32546576u, 3198396666u, 2143313456u, 0, FMOD_TOLERANCE, 0},
+{ 718, 3241229215u, 2143788498u, 3195498043u, 3630119231u, 3190991165u, 3498199328u, 0, FMOD_TOLERANCE, 0},
+{ 719, 3198632935u, 2527385594u, 3240503648u, 3482095012u, 3198632935u, 2527385594u, 0, FMOD_TOLERANCE, 0},
+{ 720, 3242168799u, 2690097362u, 1068598730u, 2360266862u, 3209603524u, 1892561408u, 0, FMOD_TOLERANCE, 0},
+{ 721, 1058857869u, 2673272949u, 1082639557u, 522449749u, 1058857869u, 2673272949u, 0, FMOD_TOLERANCE, 0},
+{ 722, 1104424147u, 3596379400u, 3242016775u, 2002293002u, 1092711812u, 2661827800u, 0, FMOD_TOLERANCE, 0},
+{ 723, 1099439656u, 4113224369u, 3222122439u, 2152316893u, 1073445325u, 3816878350u, 0, FMOD_TOLERANCE, 0},
+{ 724, 3220796716u, 31662602u, 1047721249u, 1747087514u, 3195088561u, 1859026178u, 0, FMOD_TOLERANCE, 0},
+{ 725, 3250463757u, 2489659568u, 1097051253u, 277506957u, 3239039640u, 2313158848u, 0, FMOD_TOLERANCE, 0},
+{ 726, 3191401834u, 3850162281u, 3213841942u, 438724093u, 3191401834u, 3850162281u, 0, FMOD_TOLERANCE, 0},
+{ 727, 1095392535u, 2431814052u, 1075518084u, 2672434118u, 1074809013u, 4104449276u, 0, FMOD_TOLERANCE, 0},
+{ 728, 3243162735u, 391606792u, 1048184750u, 4168944276u, 3195430506u, 719698312u, 0, FMOD_TOLERANCE, 0},
+{ 729, 3247792416u, 457529672u, 3201090276u, 72407935u, 3199420611u, 2859325692u, 0, FMOD_TOLERANCE, 0},
+{ 730, 3218720719u, 3954981400u, 1052053242u, 2411049585u, 3197400969u, 3459903180u, 0, FMOD_TOLERANCE, 0},
+{ 731, 1086180091u, 485456950u, 1088415093u, 1655397424u, 1086180091u, 485456950u, 0, FMOD_TOLERANCE, 0},
+{ 732, 3198234428u, 1551748070u, 3236871640u, 1329701152u, 3198234428u, 1551748070u, 0, FMOD_TOLERANCE, 0},
+{ 733, 3224639122u, 3099222537u, 1104984570u, 4293792842u, 3224639122u, 3099222537u, 0, FMOD_TOLERANCE, 0},
+{ 734, 3203949705u, 3603065260u, 3197735968u, 2402359253u, 3192575602u, 1022863328u, 0, FMOD_TOLERANCE, 0},
+{ 735, 3198824584u, 3961208159u, 3219057584u, 2340553876u, 3198824584u, 3961208159u, 0, FMOD_TOLERANCE, 0},
+{ 736, 1074881909u, 4014841779u, 3197672877u, 3697233334u, 1044445505u, 1497930304u, 0, FMOD_TOLERANCE, 0},
+{ 737, 3213275657u, 1403876392u, 3254028950u, 921363393u, 3213275657u, 1403876392u, 0, FMOD_TOLERANCE, 0},
+{ 738, 1107251806u, 1862576361u, 3194031708u, 2476290925u, 1046486580u, 3816855315u, 0, FMOD_TOLERANCE, 0},
+{ 739, 1049661768u, 1454212851u, 1088378861u, 3400401866u, 1049661768u, 1454212851u, 0, FMOD_TOLERANCE, 0},
+{ 740, 1074406809u, 552676385u, 3188635745u, 3778112968u, 1040987798u, 1349226184u, 0, FMOD_TOLERANCE, 0},
+{ 741, 3216409282u, 1199568671u, 3225679997u, 46947405u, 3216409282u, 1199568671u, 0, FMOD_TOLERANCE, 0},
+{ 742, 1077685537u, 2596231448u, 3253943728u, 2219151748u, 1077685537u, 2596231448u, 0, FMOD_TOLERANCE, 0},
+{ 743, 1066527035u, 4119719558u, 3222036299u, 1275474618u, 1066527035u, 4119719558u, 0, FMOD_TOLERANCE, 0},
+{ 744, 3239908663u, 3347296825u, 1101507910u, 1254014794u, 3239908663u, 3347296825u, 0, FMOD_TOLERANCE, 0},
+{ 745, 1084119992u, 673775040u, 1070743626u, 244126093u, 1067744490u, 2088719416u, 0, FMOD_TOLERANCE, 0},
+{ 746, 3203199850u, 1832066983u, 1051358028u, 3262483417u, 3197836571u, 3536282126u, 0, FMOD_TOLERANCE, 0},
+{ 747, 1077559600u, 3962610501u, 3198598777u, 849269178u, 1050089150u, 3840253476u, 0, FMOD_TOLERANCE, 0},
+{ 748, 3235473900u, 2497516122u, 3254374111u, 2821429629u, 3235473900u, 2497516122u, 0, FMOD_TOLERANCE, 0},
+{ 749, 1076236288u, 2805941787u, 3217785843u, 779131141u, 1068592495u, 516298114u, 0, FMOD_TOLERANCE, 0},
+{ 750, 3226908686u, 723423605u, 1084533420u, 627282213u, 3226908686u, 723423605u, 0, FMOD_TOLERANCE, 0},
+{ 751, 3215947680u, 4292778869u, 1078101071u, 1676860147u, 3215947680u, 4292778869u, 0, FMOD_TOLERANCE, 0},
+{ 752, 1076288502u, 3528118587u, 3194648564u, 2363260897u, 1047069637u, 3428852854u, 0, FMOD_TOLERANCE, 0},
+{ 753, 3192897879u, 1307010018u, 1061248120u, 1468743108u, 3192897879u, 1307010018u, 0, FMOD_TOLERANCE, 0},
+{ 754, 3246583139u, 107905661u, 3226089788u, 1943427674u, 3225566744u, 1395459164u, 0, FMOD_TOLERANCE, 0},
+{ 755, 3188230541u, 760006940u, 1054265604u, 1749976597u, 3188230541u, 760006940u, 0, FMOD_TOLERANCE, 0},
+{ 756, 3237773384u, 2787503556u, 1081282610u, 1195841206u, 3228318527u, 2478031064u, 0, FMOD_TOLERANCE, 0},
+{ 757, 3191802156u, 545462045u, 3208381743u, 1981311808u, 3191802156u, 545462045u, 0, FMOD_TOLERANCE, 0},
+{ 758, 1061232136u, 3657978397u, 1104463616u, 3501253426u, 1061232136u, 3657978397u, 0, FMOD_TOLERANCE, 0},
+{ 759, 1049883857u, 1804177501u, 3210693633u, 3606766729u, 1049883857u, 1804177501u, 0, FMOD_TOLERANCE, 0},
+{ 760, 1076856879u, 1336278526u, 1043741618u, 3165279431u, 1038757582u, 3406902432u, 0, FMOD_TOLERANCE, 0},
+{ 761, 1055471915u, 1599382075u, 1058018527u, 4212580517u, 1055471915u, 1599382075u, 0, FMOD_TOLERANCE, 0},
+{ 762, 3207502326u, 3007589929u, 3202026547u, 2792028313u, 3199606348u, 99303024u, 0, FMOD_TOLERANCE, 0},
+{ 763, 3253082770u, 1866066996u, 1060329048u, 3727175322u, 3203161499u, 2504659264u, 0, FMOD_TOLERANCE, 0},
+{ 764, 3198416643u, 150890940u, 1056025306u, 3082724735u, 3198416643u, 150890940u, 0, FMOD_TOLERANCE, 0},
+{ 765, 1062008939u, 80400395u, 1093584426u, 3478941315u, 1062008939u, 80400395u, 0, FMOD_TOLERANCE, 0},
+{ 766, 3251640614u, 4050954182u, 3219263194u, 2537475930u, 3218559725u, 2540175624u, 0, FMOD_TOLERANCE, 0},
+{ 767, 1064841871u, 2881752155u, 3212589299u, 2559651278u, 1064841871u, 2881752155u, 0, FMOD_TOLERANCE, 0},
+{ 768, 3249016304u, 440309030u, 3214267461u, 3788040806u, 3214176671u, 1411815940u, 0, FMOD_TOLERANCE, 0},
+{ 769, 1100476615u, 918813144u, 3208535698u, 1607035904u, 1060344586u, 1448022016u, 0, FMOD_TOLERANCE, 0},
+{ 770, 1042137451u, 2497054124u, 1089139147u, 2549609010u, 1042137451u, 2497054124u, 0, FMOD_TOLERANCE, 0},
+{ 771, 1047037641u, 790219083u, 1054657139u, 2797979479u, 1047037641u, 790219083u, 0, FMOD_TOLERANCE, 0},
+{ 772, 1057781400u, 1149462078u, 1095765205u, 3879963182u, 1057781400u, 1149462078u, 0, FMOD_TOLERANCE, 0},
+{ 773, 3202729813u, 2684353926u, 3205212854u, 1732474928u, 3202729813u, 2684353926u, 0, FMOD_TOLERANCE, 0},
+{ 774, 1095236965u, 2742237025u, 1051317716u, 3386396147u, 1049869952u, 1036183440u, 0, FMOD_TOLERANCE, 0},
+{ 775, 1063230986u, 3408320912u, 1103071166u, 4233059513u, 1063230986u, 3408320912u, 0, FMOD_TOLERANCE, 0},
+{ 776, 1064863548u, 1077495917u, 1088399968u, 433115118u, 1064863548u, 1077495917u, 0, FMOD_TOLERANCE, 0},
+{ 777, 3204547572u, 841366493u, 1051716814u, 4121125128u, 3195856391u, 2714081600u, 0, FMOD_TOLERANCE, 0},
+{ 778, 1064632084u, 321857207u, 1089128010u, 1149988239u, 1064632084u, 321857207u, 0, FMOD_TOLERANCE, 0},
+{ 779, 3245542663u, 799866606u, 3197637091u, 3924438208u, 3192404734u, 1720608768u, 0, FMOD_TOLERANCE, 0},
+{ 780, 3191062890u, 2002049816u, 1077053447u, 2240354761u, 3191062890u, 2002049816u, 0, FMOD_TOLERANCE, 0},
+{ 781, 3229006283u, 478939968u, 1097035749u, 1066716440u, 3229006283u, 478939968u, 0, FMOD_TOLERANCE, 0},
+{ 782, 3232473641u, 1653104725u, 1088548129u, 81977716u, 3232473641u, 1653104725u, 0, FMOD_TOLERANCE, 0},
+{ 783, 3196861276u, 3899475018u, 3189694084u, 3330093036u, 3185556567u, 4138984000u, 0, FMOD_TOLERANCE, 0},
+{ 784, 1089312583u, 2612450289u, 1079065127u, 603380842u, 1077906251u, 3290712104u, 0, FMOD_TOLERANCE, 0},
+{ 785, 1100636791u, 3962735564u, 1101570429u, 1372490825u, 1100636791u, 3962735564u, 0, FMOD_TOLERANCE, 0},
+{ 786, 1054806016u, 1479841439u, 1059312257u, 541504905u, 1054806016u, 1479841439u, 0, FMOD_TOLERANCE, 0},
+{ 787, 1078662178u, 2626148789u, 1057571099u, 4121656076u, 1057471230u, 1851951976u, 0, FMOD_TOLERANCE, 0},
+{ 788, 1081613389u, 1902560314u, 1043130231u, 3557671562u, 1042983411u, 1223161218u, 0, FMOD_TOLERANCE, 0},
+{ 789, 3193829772u, 41779312u, 1081626342u, 831171823u, 3193829772u, 41779312u, 0, FMOD_TOLERANCE, 0},
+{ 790, 1058131100u, 1393168821u, 1066457405u, 1381616968u, 1058131100u, 1393168821u, 0, FMOD_TOLERANCE, 0},
+{ 791, 1072338141u, 3756584649u, 3222267229u, 1423157432u, 1072338141u, 3756584649u, 0, FMOD_TOLERANCE, 0},
+{ 792, 3254435674u, 1894912556u, 1042426694u, 155024547u, 3188467821u, 4070759148u, 0, FMOD_TOLERANCE, 0},
+{ 793, 3195453512u, 35164295u, 3203391785u, 1037041084u, 3195453512u, 35164295u, 0, FMOD_TOLERANCE, 0},
+{ 794, 1084777479u, 3957875950u, 3232195211u, 1590756436u, 1080039368u, 3514173856u, 0, FMOD_TOLERANCE, 0},
+{ 795, 1068844322u, 1447585080u, 1071279485u, 1107922438u, 1068844322u, 1447585080u, 0, FMOD_TOLERANCE, 0},
+{ 796, 1046252518u, 981897615u, 1051856116u, 430357614u, 1046252518u, 981897615u, 0, FMOD_TOLERANCE, 0},
+{ 797, 3227524215u, 395145384u, 3219821938u, 50586510u, 3217021053u, 3501131824u, 0, FMOD_TOLERANCE, 0},
+{ 798, 1069775912u, 750827797u, 1082862669u, 230466783u, 1069775912u, 750827797u, 0, FMOD_TOLERANCE, 0},
+{ 799, 1086668819u, 1365083575u, 3204848310u, 1700831722u, 1055284199u, 3831394504u, 0, FMOD_TOLERANCE, 0},
+{ 800, 3218090390u, 344241827u, 1071538935u, 2715566077u, 3218090390u, 344241827u, 0, FMOD_TOLERANCE, 0},
+{ 801, 3247582856u, 4069301823u, 3193208760u, 2949125229u, 3190824936u, 2390491228u, 0, FMOD_TOLERANCE, 0},
+{ 802, 1103231387u, 3585711710u, 1065801594u, 2302229267u, 1065055518u, 2933509260u, 0, FMOD_TOLERANCE, 0},
+{ 803, 3194118956u, 709803845u, 1048741487u, 2296910194u, 3194118956u, 709803845u, 0, FMOD_TOLERANCE, 0},
+{ 804, 3193280779u, 744421179u, 1069302001u, 2659232829u, 3193280779u, 744421179u, 0, FMOD_TOLERANCE, 0},
+{ 805, 1092835968u, 1799949903u, 3192522886u, 4212149209u, 1040654015u, 1507901104u, 0, FMOD_TOLERANCE, 0},
+{ 806, 3206108502u, 145234164u, 3250614064u, 912384201u, 3206108502u, 145234164u, 0, FMOD_TOLERANCE, 0},
+{ 807, 3240510664u, 2784620507u, 1102812948u, 3531481022u, 3240510664u, 2784620507u, 0, FMOD_TOLERANCE, 0},
+{ 808, 3251159663u, 383952592u, 3205659905u, 3633194728u, 3204710211u, 363221200u, 0, FMOD_TOLERANCE, 0},
+{ 809, 3203476252u, 3792395543u, 1070072378u, 3864816376u, 3203476252u, 3792395543u, 0, FMOD_TOLERANCE, 0},
+{ 810, 3205316273u, 2115553675u, 1066288499u, 3538377867u, 3205316273u, 2115553675u, 0, FMOD_TOLERANCE, 0},
+{ 811, 3252075185u, 1230026762u, 1090719723u, 440819880u, 3238123122u, 2750387816u, 0, FMOD_TOLERANCE, 0},
+{ 812, 3194595076u, 2991290482u, 1096886719u, 1097971167u, 3194595076u, 2991290482u, 0, FMOD_TOLERANCE, 0},
+{ 813, 1090048600u, 1098035020u, 3230900504u, 1479059095u, 1083326068u, 3489121232u, 0, FMOD_TOLERANCE, 0},
+{ 814, 3251056964u, 1719428427u, 3188631907u, 3707377409u, 3187008922u, 1860425162u, 0, FMOD_TOLERANCE, 0},
+{ 815, 1053236165u, 3748932896u, 1084908557u, 1325384361u, 1053236165u, 3748932896u, 0, FMOD_TOLERANCE, 0},
+{ 816, 1084704076u, 3979168763u, 1057455255u, 2454615952u, 1055551388u, 1609430208u, 0, FMOD_TOLERANCE, 0},
+{ 817, 1053106984u, 1449164578u, 1056960316u, 1654931641u, 1053106984u, 1449164578u, 0, FMOD_TOLERANCE, 0},
+{ 818, 1071439010u, 2120487381u, 3226298974u, 2364226633u, 1071439010u, 2120487381u, 0, FMOD_TOLERANCE, 0},
+{ 819, 1075071428u, 1074268944u, 1065730444u, 280016852u, 1064553737u, 3986633720u, 0, FMOD_TOLERANCE, 0},
+{ 820, 3200308256u, 3315127889u, 3236295594u, 2900924954u, 3200308256u, 3315127889u, 0, FMOD_TOLERANCE, 0},
+{ 821, 3196425891u, 2246037502u, 1049691002u, 1496066550u, 3196425891u, 2246037502u, 0, FMOD_TOLERANCE, 0},
+{ 822, 3193006859u, 4191285446u, 3217936236u, 2382392789u, 3193006859u, 4191285446u, 0, FMOD_TOLERANCE, 0},
+{ 823, 1092833308u, 640099844u, 1042152237u, 2064279383u, 1041890111u, 1071039699u, 0, FMOD_TOLERANCE, 0},
+{ 824, 1079913438u, 3468560824u, 1093251038u, 310958750u, 1079913438u, 3468560824u, 0, FMOD_TOLERANCE, 0},
+{ 825, 1096788400u, 1413568905u, 1100941106u, 1627289946u, 1096788400u, 1413568905u, 0, FMOD_TOLERANCE, 0},
+{ 826, 3191549550u, 3797143370u, 3195497539u, 3843275034u, 3191549550u, 3797143370u, 0, FMOD_TOLERANCE, 0},
+{ 827, 3252077393u, 2806642640u, 3201943068u, 2515980718u, 3197416778u, 967813984u, 0, FMOD_TOLERANCE, 0},
+{ 828, 1086877316u, 632580632u, 1078673506u, 3259601317u, 1077663643u, 3509952206u, 0, FMOD_TOLERANCE, 0},
+{ 829, 3200980575u, 3309678799u, 1049337078u, 3056787074u, 3196269447u, 2808087378u, 0, FMOD_TOLERANCE, 0},
+{ 830, 3221495289u, 2341164249u, 1080834967u, 2810890005u, 3221495289u, 2341164249u, 0, FMOD_TOLERANCE, 0},
+{ 831, 1067019674u, 932124675u, 1093915797u, 662682630u, 1067019674u, 932124675u, 0, FMOD_TOLERANCE, 0},
+{ 832, 3249230091u, 1367996113u, 3251723684u, 2974064663u, 3249230091u, 1367996113u, 0, FMOD_TOLERANCE, 0},
+{ 833, 1080230731u, 323437999u, 1090499064u, 901457511u, 1080230731u, 323437999u, 0, FMOD_TOLERANCE, 0},
+{ 834, 3235778876u, 4184941840u, 3196770014u, 2458988443u, 3196438794u, 755364647u, 0, FMOD_TOLERANCE, 0},
+{ 835, 1087618284u, 2023065054u, 3211994098u, 2734612965u, 1064167956u, 768614710u, 0, FMOD_TOLERANCE, 0},
+{ 836, 1064074694u, 3679267365u, 3237728785u, 1699558211u, 1064074694u, 3679267365u, 0, FMOD_TOLERANCE, 0},
+{ 837, 1088079010u, 1826799031u, 1078709629u, 3986905229u, 1078613717u, 260914948u, 0, FMOD_TOLERANCE, 0},
+{ 838, 1052843785u, 351061688u, 3194386466u, 4105857588u, 1046559671u, 1480442944u, 0, FMOD_TOLERANCE, 0},
+{ 839, 1054128006u, 1365244058u, 1064457319u, 1452191426u, 1054128006u, 1365244058u, 0, FMOD_TOLERANCE, 0},
+{ 840, 1064122385u, 2463030625u, 3215975031u, 3773488326u, 1064122385u, 2463030625u, 0, FMOD_TOLERANCE, 0},
+{ 841, 3251276671u, 752664055u, 1065110394u, 1835931663u, 3212400136u, 742911191u, 0, FMOD_TOLERANCE, 0},
+{ 842, 1088045088u, 3496172149u, 1089617208u, 109068701u, 1088045088u, 3496172149u, 0, FMOD_TOLERANCE, 0},
+{ 843, 3198135087u, 1636966254u, 1086098766u, 2016598298u, 3198135087u, 1636966254u, 0, FMOD_TOLERANCE, 0},
+{ 844, 1050931318u, 3551516956u, 1097969102u, 1317953425u, 1050931318u, 3551516956u, 0, FMOD_TOLERANCE, 0},
+{ 845, 3229832217u, 2977627788u, 1045339018u, 516058480u, 3192139324u, 2635921568u, 0, FMOD_TOLERANCE, 0},
+{ 846, 3237408578u, 3901731263u, 3189566462u, 32272932u, 3188585597u, 845876272u, 0, FMOD_TOLERANCE, 0},
+{ 847, 1077281796u, 1956025297u, 3246628529u, 3840733905u, 1077281796u, 1956025297u, 0, FMOD_TOLERANCE, 0},
+{ 848, 1099818036u, 561057891u, 3198494340u, 4271027193u, 1049943530u, 1535558178u, 0, FMOD_TOLERANCE, 0},
+{ 849, 3250929921u, 692989850u, 3242630588u, 2492225971u, 3241820348u, 355927136u, 0, FMOD_TOLERANCE, 0},
+{ 850, 3205479397u, 3439913962u, 1067477011u, 2973333638u, 3205479397u, 3439913962u, 0, FMOD_TOLERANCE, 0},
+{ 851, 3213993989u, 877613377u, 1044917899u, 809672798u, 3192062120u, 1110251106u, 0, FMOD_TOLERANCE, 0},
+{ 852, 3222171454u, 905426932u, 1046417457u, 1086320855u, 3193217147u, 1062836691u, 0, FMOD_TOLERANCE, 0},
+{ 853, 3246346629u, 2645567288u, 1051258339u, 557182478u, 3197126611u, 2398767696u, 0, FMOD_TOLERANCE, 0},
+{ 854, 3204057950u, 186287752u, 1061342054u, 4054003419u, 3204057950u, 186287752u, 0, FMOD_TOLERANCE, 0},
+{ 855, 1097266673u, 3506889716u, 3243866036u, 519056371u, 1096053807u, 2199755765u, 0, FMOD_TOLERANCE, 0},
+{ 856, 1042654053u, 2171898436u, 3246911982u, 1091500784u, 1042654053u, 2171898436u, 0, FMOD_TOLERANCE, 0},
+{ 857, 3243647673u, 368493885u, 3222871893u, 1419055230u, 3222068912u, 1934515232u, 0, FMOD_TOLERANCE, 0},
+{ 858, 1091950572u, 2010971245u, 3188804530u, 1518695799u, 1041051937u, 1749583618u, 0, FMOD_TOLERANCE, 0},
+{ 859, 3205426509u, 1239207795u, 1040192984u, 2199481342u, 3187243994u, 2776223952u, 0, FMOD_TOLERANCE, 0},
+{ 860, 3210978637u, 4264613432u, 3203460972u, 3558930895u, 3202381864u, 3937755304u, 0, FMOD_TOLERANCE, 0},
+{ 861, 1050299283u, 3772748958u, 3227667376u, 309688336u, 1050299283u, 3772748958u, 0, FMOD_TOLERANCE, 0},
+{ 862, 3230743041u, 1077949160u, 1075769893u, 2405271377u, 3222233301u, 1956885028u, 0, FMOD_TOLERANCE, 0},
+{ 863, 1091835152u, 3751608506u, 3232278094u, 930375071u, 1082909349u, 484200864u, 0, FMOD_TOLERANCE, 0},
+{ 864, 3198617153u, 1518334131u, 3205247482u, 791756713u, 3198617153u, 1518334131u, 0, FMOD_TOLERANCE, 0},
+{ 865, 1047317453u, 2825203170u, 3245054001u, 1822981827u, 1047317453u, 2825203170u, 0, FMOD_TOLERANCE, 0},
+{ 866, 1100016363u, 514474738u, 1089072073u, 3300845441u, 1088476154u, 2379179720u, 0, FMOD_TOLERANCE, 0},
+{ 867, 3216391250u, 247369460u, 3197320093u, 687450958u, 3196590451u, 2540481052u, 0, FMOD_TOLERANCE, 0},
+{ 868, 1104161422u, 2722237629u, 1058272368u, 90602316u, 1058098611u, 4127624576u, 0, FMOD_TOLERANCE, 0},
+{ 869, 3208098435u, 1845900544u, 3231520830u, 3389751458u, 3208098435u, 1845900544u, 0, FMOD_TOLERANCE, 0},
+{ 870, 3247535245u, 737689911u, 3195377751u, 3462616966u, 3193419705u, 1974083544u, 0, FMOD_TOLERANCE, 0},
+{ 871, 3223538384u, 3620285831u, 1055501023u, 2708056059u, 3200659149u, 3599459556u, 0, FMOD_TOLERANCE, 0},
+{ 872, 3219464996u, 4073430285u, 1056206159u, 172017902u, 3202431797u, 2544044588u, 0, FMOD_TOLERANCE, 0},
+{ 873, 3212869638u, 2799176222u, 1052706894u, 4083892667u, 3199630788u, 128225231u, 0, FMOD_TOLERANCE, 0},
+{ 874, 3202279557u, 1562351330u, 1069705601u, 1247765260u, 3202279557u, 1562351330u, 0, FMOD_TOLERANCE, 0},
+{ 875, 3232717299u, 51853475u, 3189080201u, 2783553144u, 3188818396u, 807301880u, 0, FMOD_TOLERANCE, 0},
+{ 876, 3219454353u, 3851781549u, 3241598113u, 514064046u, 3219454353u, 3851781549u, 0, FMOD_TOLERANCE, 0},
+{ 877, 1100045965u, 934745487u, 3248182437u, 2798581921u, 1100045965u, 934745487u, 0, FMOD_TOLERANCE, 0},
+{ 878, 3213082493u, 2948648757u, 3232177250u, 4278702895u, 3213082493u, 2948648757u, 0, FMOD_TOLERANCE, 0},
+{ 879, 1072485724u, 4259101461u, 1061606772u, 84229920u, 1057329057u, 1992816128u, 0, FMOD_TOLERANCE, 0},
+{ 880, 3198075559u, 3891230598u, 1095924595u, 3049217547u, 3198075559u, 3891230598u, 0, FMOD_TOLERANCE, 0},
+{ 881, 1077353053u, 3806018919u, 3243191216u, 280177341u, 1077353053u, 3806018919u, 0, FMOD_TOLERANCE, 0},
+{ 882, 1060624530u, 3900344258u, 1063647809u, 4206745890u, 1060624530u, 3900344258u, 0, FMOD_TOLERANCE, 0},
+{ 883, 3227707336u, 2126253040u, 3207248026u, 808507485u, 3205264840u, 1073047920u, 0, FMOD_TOLERANCE, 0},
+{ 884, 1086090317u, 3465685634u, 3230391053u, 3754958214u, 1080174589u, 3628179328u, 0, FMOD_TOLERANCE, 0},
+{ 885, 1102861084u, 461094531u, 1101110393u, 1316091396u, 1098810978u, 1561122768u, 0, FMOD_TOLERANCE, 0},
+{ 886, 1064980314u, 4197635149u, 1091873113u, 1240127141u, 1064980314u, 4197635149u, 0, FMOD_TOLERANCE, 0},
+{ 887, 1074333893u, 118603800u, 1105304898u, 4291425557u, 1074333893u, 118603800u, 0, FMOD_TOLERANCE, 0},
+{ 888, 3213429165u, 3744663425u, 3212482771u, 953662066u, 3212278408u, 2240697488u, 0, FMOD_TOLERANCE, 0},
+{ 889, 1085171305u, 3564196690u, 3228101916u, 904305212u, 1079614218u, 2381284696u, 0, FMOD_TOLERANCE, 0},
+{ 890, 1048333111u, 3566257266u, 3235138829u, 2734275140u, 1048333111u, 3566257266u, 0, FMOD_TOLERANCE, 0},
+{ 891, 3243948477u, 606044282u, 3241318094u, 2446416887u, 3240880599u, 1859021866u, 0, FMOD_TOLERANCE, 0},
+{ 892, 1041627284u, 2336116589u, 3197594053u, 2296925138u, 1041627284u, 2336116589u, 0, FMOD_TOLERANCE, 0},
+{ 893, 1058567659u, 907670625u, 3240769036u, 1827119006u, 1058567659u, 907670625u, 0, FMOD_TOLERANCE, 0},
+{ 894, 1044467183u, 2818710946u, 3246059905u, 553394170u, 1044467183u, 2818710946u, 0, FMOD_TOLERANCE, 0},
+{ 895, 3189504094u, 4099522736u, 3232742168u, 3718083858u, 3189504094u, 4099522736u, 0, FMOD_TOLERANCE, 0},
+{ 896, 1092371276u, 1059279404u, 1080245336u, 175941677u, 1076943150u, 3135584408u, 0, FMOD_TOLERANCE, 0},
+{ 897, 1105189691u, 1650862428u, 1061816101u, 1723201723u, 1061353780u, 3104585775u, 0, FMOD_TOLERANCE, 0},
+{ 898, 3239012814u, 2462163405u, 3218946201u, 3876535372u, 3218677731u, 188478288u, 0, FMOD_TOLERANCE, 0},
+{ 899, 1084392886u, 495844137u, 1073721460u, 772777946u, 1069161233u, 173480672u, 0, FMOD_TOLERANCE, 0},
+{ 900, 1052415330u, 458757721u, 3245680321u, 3609892707u, 1052415330u, 458757721u, 0, FMOD_TOLERANCE, 0},
+{ 901, 3193282956u, 2533012202u, 1079980803u, 3592268374u, 3193282956u, 2533012202u, 0, FMOD_TOLERANCE, 0},
+{ 902, 3203364780u, 4108274117u, 1063045844u, 571992389u, 3203364780u, 4108274117u, 0, FMOD_TOLERANCE, 0},
+{ 903, 1090567271u, 3541110973u, 1096296754u, 3118427427u, 1090567271u, 3541110973u, 0, FMOD_TOLERANCE, 0},
+{ 904, 3193980043u, 1213941007u, 1105433735u, 2172963370u, 3193980043u, 1213941007u, 0, FMOD_TOLERANCE, 0},
+{ 905, 1096853359u, 272190288u, 1095452370u, 4026581530u, 1094197292u, 3251065368u, 0, FMOD_TOLERANCE, 0},
+{ 906, 1095583909u, 2843638672u, 1100510986u, 3190536898u, 1095583909u, 2843638672u, 0, FMOD_TOLERANCE, 0},
+{ 907, 1083757094u, 2014317727u, 3247389683u, 2428462015u, 1083757094u, 2014317727u, 0, FMOD_TOLERANCE, 0},
+{ 908, 1093976717u, 688442200u, 1047852515u, 3035186380u, 1045500899u, 421513072u, 0, FMOD_TOLERANCE, 0},
+{ 909, 1076664212u, 1010095511u, 3221288076u, 405287991u, 1073301008u, 3217308196u, 0, FMOD_TOLERANCE, 0},
+{ 910, 3252294615u, 2983070435u, 1089546472u, 2907918480u, 3236064660u, 2205078976u, 0, FMOD_TOLERANCE, 0},
+{ 911, 1082988121u, 81928569u, 1056007286u, 2740556321u, 1055991332u, 437977800u, 0, FMOD_TOLERANCE, 0},
+{ 912, 1041110867u, 2076689028u, 1081558619u, 3039159031u, 1041110867u, 2076689028u, 0, FMOD_TOLERANCE, 0},
+{ 913, 1047307438u, 1376882094u, 3211003208u, 1296286481u, 1047307438u, 1376882094u, 0, FMOD_TOLERANCE, 0},
+{ 914, 1080114314u, 744133164u, 3200943494u, 955832216u, 1052083979u, 4015079392u, 0, FMOD_TOLERANCE, 0},
+{ 915, 3226290326u, 176522478u, 1069999908u, 2891249491u, 3215808713u, 2482244588u, 0, FMOD_TOLERANCE, 0},
+{ 916, 1043564602u, 3685851715u, 3187829932u, 2363997529u, 1039251684u, 3969797792u, 0, FMOD_TOLERANCE, 0},
+{ 917, 1040244055u, 3974431579u, 1052505165u, 2589067816u, 1040244055u, 3974431579u, 0, FMOD_TOLERANCE, 0},
+{ 918, 3191496789u, 3819109588u, 1048561488u, 969143351u, 3191496789u, 3819109588u, 0, FMOD_TOLERANCE, 0},
+{ 919, 1072639397u, 4246896124u, 1104584799u, 1940097860u, 1072639397u, 4246896124u, 0, FMOD_TOLERANCE, 0},
+{ 920, 1048038468u, 2228686199u, 3220231833u, 777624847u, 1048038468u, 2228686199u, 0, FMOD_TOLERANCE, 0},
+{ 921, 3231467306u, 4189906558u, 3203004203u, 854242364u, 3202788389u, 3454301200u, 0, FMOD_TOLERANCE, 0},
+{ 922, 1103910407u, 4089051094u, 3227282692u, 2693170723u, 1079132077u, 508475625u, 0, FMOD_TOLERANCE, 0},
+{ 923, 1045883607u, 1278581412u, 3239296746u, 1774588717u, 1045883607u, 1278581412u, 0, FMOD_TOLERANCE, 0},
+{ 924, 3222372686u, 1794845306u, 1104879344u, 4135865182u, 3222372686u, 1794845306u, 0, FMOD_TOLERANCE, 0},
+{ 925, 1106449055u, 754938390u, 1061291430u, 2010786993u, 1061210897u, 1687650186u, 0, FMOD_TOLERANCE, 0},
+{ 926, 1073581409u, 2034303731u, 3240176537u, 314147356u, 1073581409u, 2034303731u, 0, FMOD_TOLERANCE, 0},
+{ 927, 3231449194u, 567588900u, 3195452230u, 1421366017u, 3192961019u, 4075721988u, 0, FMOD_TOLERANCE, 0},
+{ 928, 3225089755u, 2708717091u, 1071975971u, 1364590470u, 3219432943u, 2030557040u, 0, FMOD_TOLERANCE, 0},
+{ 929, 3252137283u, 3461956134u, 3207820115u, 1605709634u, 3207648055u, 2266319054u, 0, FMOD_TOLERANCE, 0},
+{ 930, 1065302996u, 1497124553u, 1051715442u, 916736957u, 1051438209u, 3983060665u, 0, FMOD_TOLERANCE, 0},
+{ 931, 1058468363u, 834914365u, 1064667143u, 2839166298u, 1058468363u, 834914365u, 0, FMOD_TOLERANCE, 0},
+{ 932, 1057279949u, 2139295776u, 1062816721u, 914592523u, 1057279949u, 2139295776u, 0, FMOD_TOLERANCE, 0},
+{ 933, 3189636931u, 851569132u, 1058503154u, 1399378677u, 3189636931u, 851569132u, 0, FMOD_TOLERANCE, 0},
+{ 934, 3233537697u, 3897202342u, 3245382590u, 246600375u, 3233537697u, 3897202342u, 0, FMOD_TOLERANCE, 0},
+{ 935, 3225460308u, 3620429520u, 1055627557u, 229305u, 3202369936u, 3700438080u, 0, FMOD_TOLERANCE, 0},
+{ 936, 1083958833u, 3641997865u, 3206673888u, 93720614u, 1056236607u, 2751419008u, 0, FMOD_TOLERANCE, 0},
+{ 937, 3227808435u, 32766320u, 1062084905u, 3668443038u, 3208488956u, 1745097620u, 0, FMOD_TOLERANCE, 0},
+{ 938, 3223298996u, 2039713492u, 3248699388u, 1346210821u, 3223298996u, 2039713492u, 0, FMOD_TOLERANCE, 0},
+{ 939, 1093050016u, 1335820726u, 3191756860u, 1808427032u, 1043729435u, 812513712u, 0, FMOD_TOLERANCE, 0},
+{ 940, 1061442763u, 650692001u, 1103515670u, 2253348763u, 1061442763u, 650692001u, 0, FMOD_TOLERANCE, 0},
+{ 941, 3191395187u, 2372623300u, 3210185343u, 3200572848u, 3191395187u, 2372623300u, 0, FMOD_TOLERANCE, 0},
+{ 942, 1100796069u, 762317532u, 3194595095u, 3192607437u, 1046114830u, 3115332966u, 0, FMOD_TOLERANCE, 0},
+{ 943, 1062262701u, 217775356u, 3232827087u, 2969367386u, 1062262701u, 217775356u, 0, FMOD_TOLERANCE, 0},
+{ 944, 1057172551u, 3621353969u, 1077994795u, 3873976266u, 1057172551u, 3621353969u, 0, FMOD_TOLERANCE, 0},
+{ 945, 1091301987u, 268372152u, 3221764390u, 3216978962u, 1071287122u, 1408736608u, 0, FMOD_TOLERANCE, 0},
+{ 946, 3246437611u, 142942404u, 1075322987u, 1746449109u, 3220255228u, 3977195008u, 0, FMOD_TOLERANCE, 0},
+{ 947, 1104006296u, 496534875u, 3254522293u, 2532372502u, 1104006296u, 496534875u, 0, FMOD_TOLERANCE, 0},
+{ 948, 3250225541u, 2999955409u, 3222793392u, 1868977643u, 3221335855u, 3732438666u, 0, FMOD_TOLERANCE, 0},
+{ 949, 1074319042u, 3353193428u, 3218469191u, 3326244297u, 1066357256u, 3538375136u, 0, FMOD_TOLERANCE, 0},
+{ 950, 1068218799u, 73646871u, 3231442171u, 3711510104u, 1068218799u, 73646871u, 0, FMOD_TOLERANCE, 0},
+{ 951, 1090483524u, 218135177u, 3198908856u, 3082199105u, 1050815447u, 1272533715u, 0, FMOD_TOLERANCE, 0},
+{ 952, 1068068480u, 1061628117u, 3248859043u, 86776158u, 1068068480u, 1061628117u, 0, FMOD_TOLERANCE, 0},
+{ 953, 3208484674u, 938869114u, 1087911145u, 2416710759u, 3208484674u, 938869114u, 0, FMOD_TOLERANCE, 0},
+{ 954, 1095576832u, 2970853959u, 3239543429u, 1887505029u, 1091948884u, 2484319115u, 0, FMOD_TOLERANCE, 0},
+{ 955, 3237728787u, 1337895935u, 1076463812u, 1172733328u, 3222965885u, 3249583456u, 0, FMOD_TOLERANCE, 0},
+{ 956, 1049139928u, 1469010822u, 3229583535u, 551399515u, 1049139928u, 1469010822u, 0, FMOD_TOLERANCE, 0},
+{ 957, 1074118123u, 1849711538u, 1049053713u, 1744276190u, 1047839869u, 2663116324u, 0, FMOD_TOLERANCE, 0},
+{ 958, 3242138780u, 2976596113u, 3192137295u, 3033242648u, 3190927649u, 800563616u, 0, FMOD_TOLERANCE, 0},
+{ 959, 1098698481u, 876810930u, 3197470945u, 2571587447u, 1048300491u, 2603592096u, 0, FMOD_TOLERANCE, 0},
+{ 960, 3241770810u, 4007797282u, 3225853845u, 4069319648u, 3223311050u, 1149370880u, 0, FMOD_TOLERANCE, 0},
+{ 961, 1047279982u, 3840538373u, 1043189552u, 3668774580u, 1040305221u, 4193144592u, 0, FMOD_TOLERANCE, 0},
+{ 962, 3217611704u, 200857661u, 3229758439u, 3359367736u, 3217611704u, 200857661u, 0, FMOD_TOLERANCE, 0},
+{ 963, 3248797869u, 111868139u, 3227902082u, 2366064003u, 3226509645u, 697667886u, 0, FMOD_TOLERANCE, 0},
+{ 964, 1044195166u, 3510904416u, 3222131653u, 3822770497u, 1044195166u, 3510904416u, 0, FMOD_TOLERANCE, 0},
+{ 965, 3242675715u, 789151814u, 1099269239u, 2958956055u, 3242675715u, 789151814u, 0, FMOD_TOLERANCE, 0},
+{ 966, 1084679320u, 722163228u, 1105524559u, 1534462169u, 1084679320u, 722163228u, 0, FMOD_TOLERANCE, 0},
+{ 967, 1046586062u, 2207037106u, 3208952465u, 1231254630u, 1046586062u, 2207037106u, 0, FMOD_TOLERANCE, 0},
+{ 968, 3197884060u, 3838689849u, 3198769679u, 1302617170u, 3197884060u, 3838689849u, 0, FMOD_TOLERANCE, 0},
+{ 969, 1085938906u, 2527556476u, 3240373426u, 124352692u, 1085938906u, 2527556476u, 0, FMOD_TOLERANCE, 0},
+{ 970, 3199540805u, 3502371499u, 1043411944u, 4190072016u, 3188877369u, 3030175616u, 0, FMOD_TOLERANCE, 0},
+{ 971, 1064676142u, 1798470077u, 3200116917u, 3421833729u, 1051567976u, 2773073106u, 0, FMOD_TOLERANCE, 0},
+{ 972, 3193514956u, 3653237931u, 3204255012u, 3683870669u, 3193514956u, 3653237931u, 0, FMOD_TOLERANCE, 0},
+{ 973, 1053588582u, 376530104u, 1073853547u, 565755892u, 1053588582u, 376530104u, 0, FMOD_TOLERANCE, 0},
+{ 974, 3242503851u, 558292492u, 1051772749u, 4267873474u, 3198654037u, 980579176u, 0, FMOD_TOLERANCE, 0},
+{ 975, 3224772709u, 509637100u, 3212030069u, 215050379u, 3206621457u, 3145766624u, 0, FMOD_TOLERANCE, 0},
+{ 976, 1092057101u, 3571665665u, 3188628584u, 757824767u, 1040375936u, 413495854u, 0, FMOD_TOLERANCE, 0},
+{ 977, 3214799337u, 998858159u, 1063077962u, 436029885u, 3208983524u, 830635584u, 0, FMOD_TOLERANCE, 0},
+{ 978, 3205946965u, 996300405u, 3193842624u, 80548098u, 3193101179u, 4009301952u, 0, FMOD_TOLERANCE, 0},
+{ 979, 3228848840u, 3876129407u, 3215332180u, 2226970413u, 3215045687u, 297125743u, 0, FMOD_TOLERANCE, 0},
+{ 980, 3237608953u, 200013509u, 3224552716u, 414878724u, 3220949933u, 2749462016u, 0, FMOD_TOLERANCE, 0},
+{ 981, 3230617093u, 309319541u, 1048979765u, 1261662434u, 3194126693u, 2049616152u, 0, FMOD_TOLERANCE, 0},
+{ 982, 1089252639u, 4062255924u, 3224274128u, 4289485681u, 1076205982u, 4210345336u, 0, FMOD_TOLERANCE, 0},
+{ 983, 3236136084u, 1611969213u, 1053890378u, 3774617276u, 3200305473u, 2749663976u, 0, FMOD_TOLERANCE, 0},
+{ 984, 1080412763u, 1752164782u, 3239587974u, 612223386u, 1080412763u, 1752164782u, 0, FMOD_TOLERANCE, 0},
+{ 985, 1041545782u, 2024044989u, 1074932678u, 3259111307u, 1041545782u, 2024044989u, 0, FMOD_TOLERANCE, 0},
+{ 986, 1053207518u, 2564965629u, 1093571065u, 169360454u, 1053207518u, 2564965629u, 0, FMOD_TOLERANCE, 0},
+{ 987, 1089599090u, 1860101737u, 3191222372u, 1676437468u, 1042893353u, 1428552520u, 0, FMOD_TOLERANCE, 0},
+{ 988, 1059802968u, 588387057u, 3192103292u, 2495288012u, 1040235236u, 167423296u, 0, FMOD_TOLERANCE, 0},
+{ 989, 3193155705u, 659070058u, 1073095700u, 1393632068u, 3193155705u, 659070058u, 0, FMOD_TOLERANCE, 0},
+{ 990, 3217683263u, 4276187829u, 3217553330u, 1868253275u, 3213867224u, 4167214496u, 0, FMOD_TOLERANCE, 0},
+{ 991, 3223220272u, 2085481575u, 3215994784u, 800910002u, 3214337058u, 3417594176u, 0, FMOD_TOLERANCE, 0},
+{ 992, 1056934836u, 1950570756u, 3200582211u, 941022151u, 1046519616u, 1109308160u, 0, FMOD_TOLERANCE, 0},
+{ 993, 1057530368u, 2075610870u, 3250142022u, 3605152103u, 1057530368u, 2075610870u, 0, FMOD_TOLERANCE, 0},
+{ 994, 3200839250u, 3792931748u, 3204857863u, 804393211u, 3200839250u, 3792931748u, 0, FMOD_TOLERANCE, 0},
+{ 995, 3253646370u, 3430071177u, 3226288311u, 3652522729u, 3225596618u, 2476652436u, 0, FMOD_TOLERANCE, 0},
+{ 996, 3201314702u, 236884699u, 3227874605u, 2193269825u, 3201314702u, 236884699u, 0, FMOD_TOLERANCE, 0},
+{ 997, 1064936593u, 2744231849u, 1046186036u, 771053722u, 1043407738u, 512136096u, 0, FMOD_TOLERANCE, 0},
+{ 998, 1083996036u, 3000189819u, 1096500901u, 2057239777u, 1083996036u, 3000189819u, 0, FMOD_TOLERANCE, 0},
+{ 999, 1093835581u, 205759408u, 3244643377u, 2702292618u, 1093835581u, 205759408u, 0, FMOD_TOLERANCE, 0},
+
+
+// AUTOMATICALLY GENERATED VECTORS STOP
+
+};
+
+#endif // CYGONCE_LIBM_FMOD_H multiple inclusion protection
+
+// EOF fmod.h
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/fmodf.c b/ecos/packages/language/c/libm/current/tests/vectors/fmodf.c
new file mode 100644
index 0000000..cf3d140
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/fmodf.c
@@ -0,0 +1,115 @@
+//===========================================================================
+//
+// fmod.c
+//
+// Test of fmod() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// Declarations for test system:
+//
+// TESTCASE_TYPE=CYG_TEST_MODULE
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include <cyg/infra/testcase.h> // Test infrastructure
+#include <math.h> // Header for this package
+#include <sys/ieeefp.h> // Cyg_libm_ieee_double_shape_type
+#include "vectors/vector_support_float.h"// extra support for math tests
+
+#include "vectors/fmodf.h"
+
+// FUNCTIONS
+
+static void
+test( CYG_ADDRWORD data )
+{
+ cyg_ucount32 vec_size;
+ cyg_bool ret;
+
+ vec_size = sizeof(fmodf_vec) / sizeof(Cyg_libm_test_float_vec_t);
+ ret = doTestVecFloat( (CYG_ADDRWORD) &fmodf, CYG_LIBM_TEST_VEC_FLOAT,
+ CYG_LIBM_TEST_VEC_FLOAT, CYG_LIBM_TEST_VEC_FLOAT,
+ &fmodf_vec[0], vec_size );
+
+ if (ret==true)
+ {
+ CYG_TEST_PASS("fmodf() is stable");
+ } // if
+ else
+ {
+ CYG_TEST_FAIL("fmodf() failed tests");
+ } // else
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for Math "
+ "library fmodf() function");
+} // test()
+
+
+int
+main(int argc, char *argv[])
+{
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for Math library "
+ "fmod() function");
+
+ START_TEST( test );
+
+ CYG_TEST_PASS_FINISH("Testing is not applicable to this configuration");
+
+} // main()
+
+
+// EOF fmod.c
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/fmodf.h b/ecos/packages/language/c/libm/current/tests/vectors/fmodf.h
new file mode 100644
index 0000000..fef7fa3
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/fmodf.h
@@ -0,0 +1,629 @@
+#ifndef CYGONCE_LIBM_FMOD_H
+#define CYGONCE_LIBM_FMOD_H
+//===========================================================================
+//
+// fmod.h
+//
+// Test vectors for testing of fmod() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage: #include "vectors/fmod.h"
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include "vectors/vector_support_float.h"// extra support for math tests
+
+#define FMOD_TOLERANCE 2.0E-04
+
+static const Cyg_libm_test_float_vec_t fmodf_vec[] = {
+
+// AUTOMATICALLY GENERATED VECTORS START
+
+{0, 3214514586u, 1077097267u, 3214514586u, 0, FMOD_TOLERANCE, 0},
+{1, 3214430700u, 1077139210u, 3214430700u, 0, FMOD_TOLERANCE, 0},
+{2, 3214346813u, 1077181153u, 3214346813u, 0, FMOD_TOLERANCE, 0},
+{3, 3214262927u, 1077223096u, 3214262927u, 0, FMOD_TOLERANCE, 0},
+{4, 3214179041u, 1077265039u, 3214179041u, 0, FMOD_TOLERANCE, 0},
+{5, 3214095155u, 1077306982u, 3214095155u, 0, FMOD_TOLERANCE, 0},
+{6, 3214011269u, 1077348925u, 3214011269u, 0, FMOD_TOLERANCE, 0},
+{7, 3213927383u, 1077390868u, 3213927383u, 0, FMOD_TOLERANCE, 0},
+{8, 3213843497u, 1077432812u, 3213843497u, 0, FMOD_TOLERANCE, 0},
+{9, 3213759611u, 1077474755u, 3213759611u, 0, FMOD_TOLERANCE, 0},
+{10, 3213675725u, 1077516698u, 3213675725u, 0, FMOD_TOLERANCE, 0},
+{11, 3213591839u, 1077558641u, 3213591839u, 0, FMOD_TOLERANCE, 0},
+{12, 3213507953u, 1077600584u, 3213507953u, 0, FMOD_TOLERANCE, 0},
+{13, 3213424067u, 1077642527u, 3213424067u, 0, FMOD_TOLERANCE, 0},
+{14, 3213340180u, 1077684470u, 3213340180u, 0, FMOD_TOLERANCE, 0},
+{15, 3213256294u, 1077726413u, 3213256294u, 0, FMOD_TOLERANCE, 0},
+{16, 3213172408u, 1077768356u, 3213172408u, 0, FMOD_TOLERANCE, 0},
+{17, 3213088522u, 1077810299u, 3213088522u, 0, FMOD_TOLERANCE, 0},
+{18, 3213004636u, 1077852242u, 3213004636u, 0, FMOD_TOLERANCE, 0},
+{19, 3212920750u, 1077894185u, 3212920750u, 0, FMOD_TOLERANCE, 0},
+{20, 3212836864u, 1077936128u, 3212836864u, 0, FMOD_TOLERANCE, 0},
+{21, 3212669092u, 1077978071u, 3212669092u, 0, FMOD_TOLERANCE, 0},
+{22, 3212501320u, 1078020014u, 3212501320u, 0, FMOD_TOLERANCE, 0},
+{23, 3212333548u, 1078061957u, 3212333548u, 0, FMOD_TOLERANCE, 0},
+{24, 3212165775u, 1078103900u, 3212165775u, 0, FMOD_TOLERANCE, 0},
+{25, 3211998003u, 1078145843u, 3211998003u, 0, FMOD_TOLERANCE, 0},
+{26, 3211830231u, 1078187786u, 3211830231u, 0, FMOD_TOLERANCE, 0},
+{27, 3211662459u, 1078229729u, 3211662459u, 0, FMOD_TOLERANCE, 0},
+{28, 3211494687u, 1078271672u, 3211494687u, 0, FMOD_TOLERANCE, 0},
+{29, 3211326915u, 1078313615u, 3211326915u, 0, FMOD_TOLERANCE, 0},
+{30, 3211159142u, 1078355558u, 3211159142u, 0, FMOD_TOLERANCE, 0},
+{31, 3210991370u, 1078397501u, 3210991370u, 0, FMOD_TOLERANCE, 0},
+{32, 3210823598u, 1078439444u, 3210823598u, 0, FMOD_TOLERANCE, 0},
+{33, 3210655826u, 1078481388u, 3210655826u, 0, FMOD_TOLERANCE, 0},
+{34, 3210488054u, 1078523331u, 3210488054u, 0, FMOD_TOLERANCE, 0},
+{35, 3210320282u, 1078565274u, 3210320282u, 0, FMOD_TOLERANCE, 0},
+{36, 3210152509u, 1078607217u, 3210152509u, 0, FMOD_TOLERANCE, 0},
+{37, 3209984737u, 1078649160u, 3209984737u, 0, FMOD_TOLERANCE, 0},
+{38, 3209816965u, 1078691103u, 3209816965u, 0, FMOD_TOLERANCE, 0},
+{39, 3209649193u, 1078733046u, 3209649193u, 0, FMOD_TOLERANCE, 0},
+{40, 3209481421u, 1078774989u, 3209481421u, 0, FMOD_TOLERANCE, 0},
+{41, 3209313649u, 1078816932u, 3209313649u, 0, FMOD_TOLERANCE, 0},
+{42, 3209145876u, 1078858875u, 3209145876u, 0, FMOD_TOLERANCE, 0},
+{43, 3208978104u, 1078900818u, 3208978104u, 0, FMOD_TOLERANCE, 0},
+{44, 3208810332u, 1078942761u, 3208810332u, 0, FMOD_TOLERANCE, 0},
+{45, 3208642560u, 1078984704u, 3208642560u, 0, FMOD_TOLERANCE, 0},
+{46, 3208474788u, 1079026647u, 3208474788u, 0, FMOD_TOLERANCE, 0},
+{47, 3208307016u, 1079068590u, 3208307016u, 0, FMOD_TOLERANCE, 0},
+{48, 3208139244u, 1079110533u, 3208139244u, 0, FMOD_TOLERANCE, 0},
+{49, 3207971471u, 1079152476u, 3207971471u, 0, FMOD_TOLERANCE, 0},
+{50, 3207803699u, 1079194419u, 3207803699u, 0, FMOD_TOLERANCE, 0},
+{51, 3207635927u, 1079236362u, 3207635927u, 0, FMOD_TOLERANCE, 0},
+{52, 3207468155u, 1079278305u, 3207468155u, 0, FMOD_TOLERANCE, 0},
+{53, 3207300383u, 1079320248u, 3207300383u, 0, FMOD_TOLERANCE, 0},
+{54, 3207132611u, 1079362191u, 3207132611u, 0, FMOD_TOLERANCE, 0},
+{55, 3206964838u, 1079404134u, 3206964838u, 0, FMOD_TOLERANCE, 0},
+{56, 3206797066u, 1079446077u, 3206797066u, 0, FMOD_TOLERANCE, 0},
+{57, 3206629294u, 1079488020u, 3206629294u, 0, FMOD_TOLERANCE, 0},
+{58, 3206461522u, 1079529964u, 3206461522u, 0, FMOD_TOLERANCE, 0},
+{59, 3206293750u, 1079571907u, 3206293750u, 0, FMOD_TOLERANCE, 0},
+{60, 3206125978u, 1079613850u, 3206125978u, 0, FMOD_TOLERANCE, 0},
+{61, 3205958205u, 1079655793u, 3205958205u, 0, FMOD_TOLERANCE, 0},
+{62, 3205790433u, 1079697736u, 3205790433u, 0, FMOD_TOLERANCE, 0},
+{63, 3205622661u, 1079739679u, 3205622661u, 0, FMOD_TOLERANCE, 0},
+{64, 3205454889u, 1079781622u, 3205454889u, 0, FMOD_TOLERANCE, 0},
+{65, 3205287117u, 1079823565u, 3205287117u, 0, FMOD_TOLERANCE, 0},
+{66, 3205119345u, 1079865508u, 3205119345u, 0, FMOD_TOLERANCE, 0},
+{67, 3204951572u, 1079907451u, 3204951572u, 0, FMOD_TOLERANCE, 0},
+{68, 3204783800u, 1079949394u, 3204783800u, 0, FMOD_TOLERANCE, 0},
+{69, 3204616028u, 1079991337u, 3204616028u, 0, FMOD_TOLERANCE, 0},
+{70, 3204448256u, 1080033280u, 3204448256u, 0, FMOD_TOLERANCE, 0},
+{71, 3204112712u, 1080075223u, 3204112712u, 0, FMOD_TOLERANCE, 0},
+{72, 3203777167u, 1080117166u, 3203777167u, 0, FMOD_TOLERANCE, 0},
+{73, 3203441623u, 1080159109u, 3203441623u, 0, FMOD_TOLERANCE, 0},
+{74, 3203106079u, 1080201052u, 3203106079u, 0, FMOD_TOLERANCE, 0},
+{75, 3202770534u, 1080242995u, 3202770534u, 0, FMOD_TOLERANCE, 0},
+{76, 3202434990u, 1080284938u, 3202434990u, 0, FMOD_TOLERANCE, 0},
+{77, 3202099446u, 1080326881u, 3202099446u, 0, FMOD_TOLERANCE, 0},
+{78, 3201763901u, 1080368824u, 3201763901u, 0, FMOD_TOLERANCE, 0},
+{79, 3201428357u, 1080410767u, 3201428357u, 0, FMOD_TOLERANCE, 0},
+{80, 3201092813u, 1080452710u, 3201092813u, 0, FMOD_TOLERANCE, 0},
+{81, 3200757268u, 1080494653u, 3200757268u, 0, FMOD_TOLERANCE, 0},
+{82, 3200421724u, 1080536596u, 3200421724u, 0, FMOD_TOLERANCE, 0},
+{83, 3200086180u, 1080578540u, 3200086180u, 0, FMOD_TOLERANCE, 0},
+{84, 3199750636u, 1080620483u, 3199750636u, 0, FMOD_TOLERANCE, 0},
+{85, 3199415091u, 1080662426u, 3199415091u, 0, FMOD_TOLERANCE, 0},
+{86, 3199079547u, 1080704369u, 3199079547u, 0, FMOD_TOLERANCE, 0},
+{87, 3198744003u, 1080746312u, 3198744003u, 0, FMOD_TOLERANCE, 0},
+{88, 3198408458u, 1080788255u, 3198408458u, 0, FMOD_TOLERANCE, 0},
+{89, 3198072914u, 1080830198u, 3198072914u, 0, FMOD_TOLERANCE, 0},
+{90, 3197737370u, 1080872141u, 3197737370u, 0, FMOD_TOLERANCE, 0},
+{91, 3197401825u, 1080914084u, 3197401825u, 0, FMOD_TOLERANCE, 0},
+{92, 3197066281u, 1080956027u, 3197066281u, 0, FMOD_TOLERANCE, 0},
+{93, 3196730737u, 1080997970u, 3196730737u, 0, FMOD_TOLERANCE, 0},
+{94, 3196395192u, 1081039913u, 3196395192u, 0, FMOD_TOLERANCE, 0},
+{95, 3196059648u, 1081081856u, 3196059648u, 0, FMOD_TOLERANCE, 0},
+{96, 3195388559u, 1081123799u, 3195388559u, 0, FMOD_TOLERANCE, 0},
+{97, 3194717471u, 1081165742u, 3194717471u, 0, FMOD_TOLERANCE, 0},
+{98, 3194046382u, 1081207685u, 3194046382u, 0, FMOD_TOLERANCE, 0},
+{99, 3193375293u, 1081249628u, 3193375293u, 0, FMOD_TOLERANCE, 0},
+{100, 3192704205u, 1081291571u, 3192704205u, 0, FMOD_TOLERANCE, 0},
+{101, 3192033116u, 1081333514u, 3192033116u, 0, FMOD_TOLERANCE, 0},
+{102, 3191362028u, 1081375457u, 3191362028u, 0, FMOD_TOLERANCE, 0},
+{103, 3190690939u, 1081417400u, 3190690939u, 0, FMOD_TOLERANCE, 0},
+{104, 3190019850u, 1081459343u, 3190019850u, 0, FMOD_TOLERANCE, 0},
+{105, 3189348762u, 1081501286u, 3189348762u, 0, FMOD_TOLERANCE, 0},
+{106, 3188677673u, 1081543229u, 3188677673u, 0, FMOD_TOLERANCE, 0},
+{107, 3188006584u, 1081585172u, 3188006584u, 0, FMOD_TOLERANCE, 0},
+{108, 3186999951u, 1081627116u, 3186999951u, 0, FMOD_TOLERANCE, 0},
+{109, 3185657774u, 1081669059u, 3185657774u, 0, FMOD_TOLERANCE, 0},
+{110, 3184315597u, 1081711002u, 3184315597u, 0, FMOD_TOLERANCE, 0},
+{111, 3182973420u, 1081752945u, 3182973420u, 0, FMOD_TOLERANCE, 0},
+{112, 3181631242u, 1081794888u, 3181631242u, 0, FMOD_TOLERANCE, 0},
+{113, 3180289065u, 1081836831u, 3180289065u, 0, FMOD_TOLERANCE, 0},
+{114, 3178611343u, 1081878774u, 3178611343u, 0, FMOD_TOLERANCE, 0},
+{115, 3175926989u, 1081920717u, 3175926989u, 0, FMOD_TOLERANCE, 0},
+{116, 3173242634u, 1081962660u, 3173242634u, 0, FMOD_TOLERANCE, 0},
+{117, 3170222735u, 1082004603u, 3170222735u, 0, FMOD_TOLERANCE, 0},
+{118, 3164854026u, 1082046546u, 3164854026u, 0, FMOD_TOLERANCE, 0},
+{119, 3156465418u, 1082088489u, 3156465418u, 0, FMOD_TOLERANCE, 0},
+{120, 1008981770u, 1082151404u, 1008981770u, 0, FMOD_TOLERANCE, 0},
+{121, 1017370378u, 1082172375u, 1017370378u, 0, FMOD_TOLERANCE, 0},
+{122, 1022739087u, 1082193347u, 1022739087u, 0, FMOD_TOLERANCE, 0},
+{123, 1025758986u, 1082214318u, 1025758986u, 0, FMOD_TOLERANCE, 0},
+{124, 1028443341u, 1082235290u, 1028443341u, 0, FMOD_TOLERANCE, 0},
+{125, 1031127695u, 1082256261u, 1031127695u, 0, FMOD_TOLERANCE, 0},
+{126, 1032805417u, 1082277233u, 1032805417u, 0, FMOD_TOLERANCE, 0},
+{127, 1034147594u, 1082298204u, 1034147594u, 0, FMOD_TOLERANCE, 0},
+{128, 1035489772u, 1082319176u, 1035489772u, 0, FMOD_TOLERANCE, 0},
+{129, 1036831949u, 1082340147u, 1036831949u, 0, FMOD_TOLERANCE, 0},
+{130, 1038174126u, 1082361119u, 1038174126u, 0, FMOD_TOLERANCE, 0},
+{131, 1039516303u, 1082382090u, 1039516303u, 0, FMOD_TOLERANCE, 0},
+{132, 1040522936u, 1082403062u, 1040522936u, 0, FMOD_TOLERANCE, 0},
+{133, 1041194025u, 1082424033u, 1041194025u, 0, FMOD_TOLERANCE, 0},
+{134, 1041865114u, 1082445005u, 1041865114u, 0, FMOD_TOLERANCE, 0},
+{135, 1042536202u, 1082465976u, 1042536202u, 0, FMOD_TOLERANCE, 0},
+{136, 1043207291u, 1082486948u, 1043207291u, 0, FMOD_TOLERANCE, 0},
+{137, 1043878380u, 1082507919u, 1043878380u, 0, FMOD_TOLERANCE, 0},
+{138, 1044549468u, 1082528891u, 1044549468u, 0, FMOD_TOLERANCE, 0},
+{139, 1045220557u, 1082549862u, 1045220557u, 0, FMOD_TOLERANCE, 0},
+{140, 1045891645u, 1082570834u, 1045891645u, 0, FMOD_TOLERANCE, 0},
+{141, 1046562734u, 1082591805u, 1046562734u, 0, FMOD_TOLERANCE, 0},
+{142, 1047233823u, 1082612777u, 1047233823u, 0, FMOD_TOLERANCE, 0},
+{143, 1047904911u, 1082633748u, 1047904911u, 0, FMOD_TOLERANCE, 0},
+{144, 1048576000u, 1082654720u, 1048576000u, 0, FMOD_TOLERANCE, 0},
+{145, 1048911544u, 1082675692u, 1048911544u, 0, FMOD_TOLERANCE, 0},
+{146, 1049247089u, 1082696663u, 1049247089u, 0, FMOD_TOLERANCE, 0},
+{147, 1049582633u, 1082717635u, 1049582633u, 0, FMOD_TOLERANCE, 0},
+{148, 1049918177u, 1082738606u, 1049918177u, 0, FMOD_TOLERANCE, 0},
+{149, 1050253722u, 1082759578u, 1050253722u, 0, FMOD_TOLERANCE, 0},
+{150, 1050589266u, 1082780549u, 1050589266u, 0, FMOD_TOLERANCE, 0},
+{151, 1050924810u, 1082801521u, 1050924810u, 0, FMOD_TOLERANCE, 0},
+{152, 1051260355u, 1082822492u, 1051260355u, 0, FMOD_TOLERANCE, 0},
+{153, 1051595899u, 1082843464u, 1051595899u, 0, FMOD_TOLERANCE, 0},
+{154, 1051931443u, 1082864435u, 1051931443u, 0, FMOD_TOLERANCE, 0},
+{155, 1052266988u, 1082885407u, 1052266988u, 0, FMOD_TOLERANCE, 0},
+{156, 1052602532u, 1082906378u, 1052602532u, 0, FMOD_TOLERANCE, 0},
+{157, 1052938076u, 1082927350u, 1052938076u, 0, FMOD_TOLERANCE, 0},
+{158, 1053273620u, 1082948321u, 1053273620u, 0, FMOD_TOLERANCE, 0},
+{159, 1053609165u, 1082969293u, 1053609165u, 0, FMOD_TOLERANCE, 0},
+{160, 1053944709u, 1082990264u, 1053944709u, 0, FMOD_TOLERANCE, 0},
+{161, 1054280253u, 1083011236u, 1054280253u, 0, FMOD_TOLERANCE, 0},
+{162, 1054615798u, 1083032207u, 1054615798u, 0, FMOD_TOLERANCE, 0},
+{163, 1054951342u, 1083053179u, 1054951342u, 0, FMOD_TOLERANCE, 0},
+{164, 1055286886u, 1083074150u, 1055286886u, 0, FMOD_TOLERANCE, 0},
+{165, 1055622431u, 1083095122u, 1055622431u, 0, FMOD_TOLERANCE, 0},
+{166, 1055957975u, 1083116093u, 1055957975u, 0, FMOD_TOLERANCE, 0},
+{167, 1056293519u, 1083137065u, 1056293519u, 0, FMOD_TOLERANCE, 0},
+{168, 1056629064u, 1083158036u, 1056629064u, 0, FMOD_TOLERANCE, 0},
+{169, 1056964608u, 1083179008u, 1056964608u, 0, FMOD_TOLERANCE, 0},
+{170, 1057132380u, 1083199980u, 1057132380u, 0, FMOD_TOLERANCE, 0},
+{171, 1057300152u, 1083220951u, 1057300152u, 0, FMOD_TOLERANCE, 0},
+{172, 1057467924u, 1083241923u, 1057467924u, 0, FMOD_TOLERANCE, 0},
+{173, 1057635697u, 1083262894u, 1057635697u, 0, FMOD_TOLERANCE, 0},
+{174, 1057803469u, 1083283866u, 1057803469u, 0, FMOD_TOLERANCE, 0},
+{175, 1057971241u, 1083304837u, 1057971241u, 0, FMOD_TOLERANCE, 0},
+{176, 1058139013u, 1083325809u, 1058139013u, 0, FMOD_TOLERANCE, 0},
+{177, 1058306785u, 1083346780u, 1058306785u, 0, FMOD_TOLERANCE, 0},
+{178, 1058474557u, 1083367752u, 1058474557u, 0, FMOD_TOLERANCE, 0},
+{179, 1058642330u, 1083388723u, 1058642330u, 0, FMOD_TOLERANCE, 0},
+{180, 1058810102u, 1083409695u, 1058810102u, 0, FMOD_TOLERANCE, 0},
+{181, 1058977874u, 1083430666u, 1058977874u, 0, FMOD_TOLERANCE, 0},
+{182, 1059145646u, 1083451638u, 1059145646u, 0, FMOD_TOLERANCE, 0},
+{183, 1059313418u, 1083472609u, 1059313418u, 0, FMOD_TOLERANCE, 0},
+{184, 1059481190u, 1083493581u, 1059481190u, 0, FMOD_TOLERANCE, 0},
+{185, 1059648963u, 1083514552u, 1059648963u, 0, FMOD_TOLERANCE, 0},
+{186, 1059816735u, 1083535524u, 1059816735u, 0, FMOD_TOLERANCE, 0},
+{187, 1059984507u, 1083556495u, 1059984507u, 0, FMOD_TOLERANCE, 0},
+{188, 1060152279u, 1083577467u, 1060152279u, 0, FMOD_TOLERANCE, 0},
+{189, 1060320051u, 1083598438u, 1060320051u, 0, FMOD_TOLERANCE, 0},
+{190, 1060487823u, 1083619410u, 1060487823u, 0, FMOD_TOLERANCE, 0},
+{191, 1060655596u, 1083640381u, 1060655596u, 0, FMOD_TOLERANCE, 0},
+{192, 1060823368u, 1083661353u, 1060823368u, 0, FMOD_TOLERANCE, 0},
+{193, 1060991140u, 1083682324u, 1060991140u, 0, FMOD_TOLERANCE, 0},
+{194, 1061158912u, 1083703296u, 1061158912u, 0, FMOD_TOLERANCE, 0},
+{195, 1061326684u, 1083724268u, 1061326684u, 0, FMOD_TOLERANCE, 0},
+{196, 1061494456u, 1083745239u, 1061494456u, 0, FMOD_TOLERANCE, 0},
+{197, 1061662228u, 1083766211u, 1061662228u, 0, FMOD_TOLERANCE, 0},
+{198, 1061830001u, 1083787182u, 1061830001u, 0, FMOD_TOLERANCE, 0},
+{199, 1061997773u, 1083808154u, 1061997773u, 0, FMOD_TOLERANCE, 0},
+{200, 1062165545u, 1083829125u, 1062165545u, 0, FMOD_TOLERANCE, 0},
+{201, 1062333317u, 1083850097u, 1062333317u, 0, FMOD_TOLERANCE, 0},
+{202, 1062501089u, 1083871068u, 1062501089u, 0, FMOD_TOLERANCE, 0},
+{203, 1062668861u, 1083892040u, 1062668861u, 0, FMOD_TOLERANCE, 0},
+{204, 1062836634u, 1083913011u, 1062836634u, 0, FMOD_TOLERANCE, 0},
+{205, 1063004406u, 1083933983u, 1063004406u, 0, FMOD_TOLERANCE, 0},
+{206, 1063172178u, 1083954954u, 1063172178u, 0, FMOD_TOLERANCE, 0},
+{207, 1063339950u, 1083975926u, 1063339950u, 0, FMOD_TOLERANCE, 0},
+{208, 1063507722u, 1083996897u, 1063507722u, 0, FMOD_TOLERANCE, 0},
+{209, 1063675494u, 1084017869u, 1063675494u, 0, FMOD_TOLERANCE, 0},
+{210, 1063843267u, 1084038840u, 1063843267u, 0, FMOD_TOLERANCE, 0},
+{211, 1064011039u, 1084059812u, 1064011039u, 0, FMOD_TOLERANCE, 0},
+{212, 1064178811u, 1084080783u, 1064178811u, 0, FMOD_TOLERANCE, 0},
+{213, 1064346583u, 1084101755u, 1064346583u, 0, FMOD_TOLERANCE, 0},
+{214, 1064514355u, 1084122726u, 1064514355u, 0, FMOD_TOLERANCE, 0},
+{215, 1064682127u, 1084143698u, 1064682127u, 0, FMOD_TOLERANCE, 0},
+{216, 1064849900u, 1084164669u, 1064849900u, 0, FMOD_TOLERANCE, 0},
+{217, 1065017672u, 1084185641u, 1065017672u, 0, FMOD_TOLERANCE, 0},
+{218, 1065185444u, 1084206612u, 1065185444u, 0, FMOD_TOLERANCE, 0},
+{219, 1065353216u, 1084227584u, 1065353216u, 0, FMOD_TOLERANCE, 0},
+{220, 1065437102u, 1084248556u, 1065437102u, 0, FMOD_TOLERANCE, 0},
+{221, 1065520988u, 1084269527u, 1065520988u, 0, FMOD_TOLERANCE, 0},
+{222, 1065604874u, 1084290499u, 1065604874u, 0, FMOD_TOLERANCE, 0},
+{223, 1065688760u, 1084311470u, 1065688760u, 0, FMOD_TOLERANCE, 0},
+{224, 1065772646u, 1084332442u, 1065772646u, 0, FMOD_TOLERANCE, 0},
+{225, 1065856532u, 1084353413u, 1065856532u, 0, FMOD_TOLERANCE, 0},
+{226, 1065940419u, 1084374385u, 1065940419u, 0, FMOD_TOLERANCE, 0},
+{227, 1066024305u, 1084395356u, 1066024305u, 0, FMOD_TOLERANCE, 0},
+{228, 1066108191u, 1084416328u, 1066108191u, 0, FMOD_TOLERANCE, 0},
+{229, 1066192077u, 1084437299u, 1066192077u, 0, FMOD_TOLERANCE, 0},
+{230, 1066275963u, 1084458271u, 1066275963u, 0, FMOD_TOLERANCE, 0},
+{231, 1066359849u, 1084479242u, 1066359849u, 0, FMOD_TOLERANCE, 0},
+{232, 1066443735u, 1084500214u, 1066443735u, 0, FMOD_TOLERANCE, 0},
+{233, 1066527621u, 1084521185u, 1066527621u, 0, FMOD_TOLERANCE, 0},
+{234, 1066611507u, 1084542157u, 1066611507u, 0, FMOD_TOLERANCE, 0},
+{235, 1066695393u, 1084563128u, 1066695393u, 0, FMOD_TOLERANCE, 0},
+{236, 1066779279u, 1084584100u, 1066779279u, 0, FMOD_TOLERANCE, 0},
+{237, 1066863165u, 1084605071u, 1066863165u, 0, FMOD_TOLERANCE, 0},
+{238, 1066947052u, 1084626043u, 1066947052u, 0, FMOD_TOLERANCE, 0},
+{239, 3234402267u, 3222413237u, 3218849944u, 0, FMOD_TOLERANCE, 0},
+{240, 3231108068u, 3208011552u, 3202369728u, 0, FMOD_TOLERANCE, 0},
+{241, 3226013659u, 1062977685u, 3205561773u, 0, FMOD_TOLERANCE, 0},
+{242, 3217625051u, 1075542035u, 3217625051u, 0, FMOD_TOLERANCE, 0},
+{243, 1070141403u, 1085424631u, 1070141403u, 0, FMOD_TOLERANCE, 0},
+{244, 1078530011u, 1088718829u, 1078530011u, 0, FMOD_TOLERANCE, 0},
+{245, 1083624420u, 1091266034u, 1083624420u, 0, FMOD_TOLERANCE, 0},
+{246, 3253731328u, 3251634176u, 3229614080u, 0, FMOD_TOLERANCE, 0},
+{247, 3252840038u, 3250742886u, 3229614080u, 0, FMOD_TOLERANCE, 0},
+{248, 3251948749u, 3249851597u, 3229614080u, 0, FMOD_TOLERANCE, 0},
+{249, 3251057459u, 3248960307u, 3229614080u, 0, FMOD_TOLERANCE, 0},
+{250, 3250166170u, 3248069018u, 3229614080u, 0, FMOD_TOLERANCE, 0},
+{251, 3249274880u, 3247177728u, 3229614080u, 0, FMOD_TOLERANCE, 0},
+{252, 3248383590u, 3246181581u, 3229614076u, 0, FMOD_TOLERANCE, 0},
+{253, 3247492301u, 3244399002u, 3229614080u, 0, FMOD_TOLERANCE, 0},
+{254, 3246601011u, 3242616422u, 3229614080u, 0, FMOD_TOLERANCE, 0},
+{255, 3245028147u, 3240833843u, 3229614080u, 0, FMOD_TOLERANCE, 0},
+{256, 3243245568u, 3239051264u, 3229614080u, 0, FMOD_TOLERANCE, 0},
+{257, 3241462989u, 3236534682u, 3229614080u, 0, FMOD_TOLERANCE, 0},
+{258, 3239680410u, 3232969523u, 3229614081u, 0, FMOD_TOLERANCE, 0},
+{259, 3237792973u, 3229194650u, 3184315584u, 0, FMOD_TOLERANCE, 0},
+{260, 3234227814u, 3222064333u, 3219547748u, 0, FMOD_TOLERANCE, 0},
+{261, 3224580915u, 1067030938u, 3201092808u, 0, FMOD_TOLERANCE, 0},
+{262, 3213675725u, 1077516698u, 3213675725u, 0, FMOD_TOLERANCE, 0},
+{263, 1058642330u, 1083388723u, 1058642330u, 0, FMOD_TOLERANCE, 0},
+{264, 1075000115u, 1086953882u, 1075000115u, 0, FMOD_TOLERANCE, 0},
+{265, 1082130432u, 1090519040u, 1082130432u, 0, FMOD_TOLERANCE, 0},
+{266, 1085695590u, 1092301619u, 1085695590u, 0, FMOD_TOLERANCE, 0},
+{267, 1089260749u, 1094084198u, 1089260749u, 0, FMOD_TOLERANCE, 0},
+{268, 1091672474u, 1095866778u, 1091672474u, 0, FMOD_TOLERANCE, 0},
+{269, 1093455053u, 1097649357u, 1093455053u, 0, FMOD_TOLERANCE, 0},
+{270, 1095237632u, 1099169792u, 1095237632u, 0, FMOD_TOLERANCE, 0},
+{271, 1097020211u, 1100061082u, 1097020211u, 0, FMOD_TOLERANCE, 0},
+{272, 1098802790u, 1100952371u, 1098802790u, 0, FMOD_TOLERANCE, 0},
+{273, 1099746509u, 1101843661u, 1099746509u, 0, FMOD_TOLERANCE, 0},
+{274, 1100637798u, 1102734950u, 1100637798u, 0, FMOD_TOLERANCE, 0},
+{275, 1101529088u, 1103626240u, 1101529088u, 0, FMOD_TOLERANCE, 0},
+{276, 1102420378u, 1104517530u, 1102420378u, 0, FMOD_TOLERANCE, 0},
+{277, 1103311667u, 1105408819u, 1103311667u, 0, FMOD_TOLERANCE, 0},
+{278, 1104202957u, 1106300109u, 1104202957u, 0, FMOD_TOLERANCE, 0},
+{279, 1105094246u, 1107191398u, 1105094246u, 0, FMOD_TOLERANCE, 0},
+{280, 1105985536u, 1107689472u, 1105985536u, 0, FMOD_TOLERANCE, 0},
+{281, 1107800421u, 1203999711u, 1107800421u, 0, FMOD_TOLERANCE, 0},
+{282, 3221027117u, 1284201705u, 3221027117u, 0, FMOD_TOLERANCE, 0},
+{283, 966554515u, 3234538174u, 966554515u, 0, FMOD_TOLERANCE, 0},
+{284, 3111900019u, 1130472166u, 3111900019u, 0, FMOD_TOLERANCE, 0},
+{285, 3181522772u, 3305392896u, 3181522772u, 0, FMOD_TOLERANCE, 0},
+{286, 3122346862u, 1111584337u, 3122346862u, 0, FMOD_TOLERANCE, 0},
+{287, 1052361612u, 1280025214u, 1052361612u, 0, FMOD_TOLERANCE, 0},
+{288, 3319724992u, 3354615790u, 3319724992u, 0, FMOD_TOLERANCE, 0},
+{289, 1001673627u, 3462631271u, 1001673627u, 0, FMOD_TOLERANCE, 0},
+{290, 976098044u, 1151967422u, 976098044u, 0, FMOD_TOLERANCE, 0},
+{291, 1139941253u, 1147688821u, 1139941253u, 0, FMOD_TOLERANCE, 0},
+{292, 3143717025u, 3234638157u, 3143717025u, 0, FMOD_TOLERANCE, 0},
+{293, 1333134799u, 1338107877u, 1333134799u, 0, FMOD_TOLERANCE, 0},
+{294, 1187847971u, 1317663644u, 1187847971u, 0, FMOD_TOLERANCE, 0},
+{295, 1038851706u, 1327544110u, 1038851706u, 0, FMOD_TOLERANCE, 0},
+{296, 1106778573u, 3304487767u, 1106778573u, 0, FMOD_TOLERANCE, 0},
+{297, 3154871957u, 1276671061u, 3154871957u, 0, FMOD_TOLERANCE, 0},
+{298, 1082692850u, 1211581107u, 1082692850u, 0, FMOD_TOLERANCE, 0},
+{299, 974547519u, 3475164509u, 974547519u, 0, FMOD_TOLERANCE, 0},
+{300, 3182301130u, 3460764044u, 3182301130u, 0, FMOD_TOLERANCE, 0},
+{301, 3239231622u, 3302723069u, 3239231622u, 0, FMOD_TOLERANCE, 0},
+{302, 3417964312u, 1321337529u, 3417964312u, 0, FMOD_TOLERANCE, 0},
+{303, 3109481038u, 1143864063u, 3109481038u, 0, FMOD_TOLERANCE, 0},
+{304, 1148867223u, 1256486202u, 1148867223u, 0, FMOD_TOLERANCE, 0},
+{305, 989687421u, 3372681320u, 989687421u, 0, FMOD_TOLERANCE, 0},
+{306, 1109627625u, 1314158257u, 1109627625u, 0, FMOD_TOLERANCE, 0},
+{307, 1077234132u, 3272167130u, 1077234132u, 0, FMOD_TOLERANCE, 0},
+{308, 1009535440u, 3381353228u, 1009535440u, 0, FMOD_TOLERANCE, 0},
+{309, 3126820946u, 1077903063u, 3126820946u, 0, FMOD_TOLERANCE, 0},
+{310, 3152729489u, 1060398533u, 3152729489u, 0, FMOD_TOLERANCE, 0},
+{311, 976791751u, 3230678102u, 976791751u, 0, FMOD_TOLERANCE, 0},
+{312, 3212952285u, 3329407365u, 3212952285u, 0, FMOD_TOLERANCE, 0},
+{313, 3319315516u, 3422089012u, 3319315516u, 0, FMOD_TOLERANCE, 0},
+{314, 3212614372u, 1152633030u, 3212614372u, 0, FMOD_TOLERANCE, 0},
+{315, 1134593658u, 3456812581u, 1134593658u, 0, FMOD_TOLERANCE, 0},
+{316, 1135271264u, 3284878412u, 1135271264u, 0, FMOD_TOLERANCE, 0},
+{317, 3316278408u, 3455589207u, 3316278408u, 0, FMOD_TOLERANCE, 0},
+{318, 1030934236u, 1045139240u, 1030934236u, 0, FMOD_TOLERANCE, 0},
+{319, 3131791114u, 3408392958u, 3131791114u, 0, FMOD_TOLERANCE, 0},
+{320, 3180213739u, 1108793820u, 3180213739u, 0, FMOD_TOLERANCE, 0},
+{321, 1268194719u, 1332489410u, 1268194719u, 0, FMOD_TOLERANCE, 0},
+{322, 1133420220u, 1245770860u, 1133420220u, 0, FMOD_TOLERANCE, 0},
+{323, 3184462258u, 1263529646u, 3184462258u, 0, FMOD_TOLERANCE, 0},
+{324, 3295996963u, 3453334307u, 3295996963u, 0, FMOD_TOLERANCE, 0},
+{325, 3116607482u, 3224327456u, 3116607482u, 0, FMOD_TOLERANCE, 0},
+{326, 3224857113u, 3398166843u, 3224857113u, 0, FMOD_TOLERANCE, 0},
+{327, 3424831780u, 1304806106u, 3424831780u, 0, FMOD_TOLERANCE, 0},
+{328, 1257596246u, 3420832544u, 1257596246u, 0, FMOD_TOLERANCE, 0},
+{329, 1090870906u, 3294742905u, 1090870906u, 0, FMOD_TOLERANCE, 0},
+{330, 1137854355u, 3335041917u, 1137854355u, 0, FMOD_TOLERANCE, 0},
+{331, 1131196082u, 1164573183u, 1131196082u, 0, FMOD_TOLERANCE, 0},
+{332, 3177294154u, 1282436638u, 3177294154u, 0, FMOD_TOLERANCE, 0},
+{333, 3258097678u, 1305882290u, 3258097678u, 0, FMOD_TOLERANCE, 0},
+{334, 1053698677u, 3284313107u, 1053698677u, 0, FMOD_TOLERANCE, 0},
+{335, 1065761827u, 3333928591u, 1065761827u, 0, FMOD_TOLERANCE, 0},
+{336, 1080781593u, 1213908300u, 1080781593u, 0, FMOD_TOLERANCE, 0},
+{337, 3235326590u, 1271705594u, 3235326590u, 0, FMOD_TOLERANCE, 0},
+{338, 3118883815u, 1051802647u, 3118883815u, 0, FMOD_TOLERANCE, 0},
+{339, 965378004u, 1292594138u, 965378004u, 0, FMOD_TOLERANCE, 0},
+{340, 3226990408u, 1110755136u, 3226990408u, 0, FMOD_TOLERANCE, 0},
+{341, 3117098218u, 1122474770u, 3117098218u, 0, FMOD_TOLERANCE, 0},
+{342, 970649315u, 1078286437u, 970649315u, 0, FMOD_TOLERANCE, 0},
+{343, 1106502045u, 1290849316u, 1106502045u, 0, FMOD_TOLERANCE, 0},
+{344, 1157598381u, 3309023746u, 1157598381u, 0, FMOD_TOLERANCE, 0},
+{345, 3157416480u, 1309984610u, 3157416480u, 0, FMOD_TOLERANCE, 0},
+{346, 1109198803u, 1221754614u, 1109198803u, 0, FMOD_TOLERANCE, 0},
+{347, 3361149474u, 3387342069u, 3361149474u, 0, FMOD_TOLERANCE, 0},
+{348, 1207502108u, 3388073586u, 1207502108u, 0, FMOD_TOLERANCE, 0},
+{349, 3160728744u, 3382954009u, 3160728744u, 0, FMOD_TOLERANCE, 0},
+{350, 1017843965u, 1193076204u, 1017843965u, 0, FMOD_TOLERANCE, 0},
+{351, 970094304u, 3344590506u, 970094304u, 0, FMOD_TOLERANCE, 0},
+{352, 1125551064u, 3331248076u, 1125551064u, 0, FMOD_TOLERANCE, 0},
+{353, 3427296372u, 3455289118u, 3427296372u, 0, FMOD_TOLERANCE, 0},
+{354, 1198917460u, 1327195159u, 1198917460u, 0, FMOD_TOLERANCE, 0},
+{355, 3114686212u, 3476082461u, 3114686212u, 0, FMOD_TOLERANCE, 0},
+{356, 3224245428u, 3271307999u, 3224245428u, 0, FMOD_TOLERANCE, 0},
+{357, 1120124467u, 1135619937u, 1120124467u, 0, FMOD_TOLERANCE, 0},
+{358, 1165195428u, 3390323168u, 1165195428u, 0, FMOD_TOLERANCE, 0},
+{359, 3149469534u, 1278465842u, 3149469534u, 0, FMOD_TOLERANCE, 0},
+{360, 3215244648u, 1083988595u, 3215244648u, 0, FMOD_TOLERANCE, 0},
+{361, 3275973009u, 3450721670u, 3275973009u, 0, FMOD_TOLERANCE, 0},
+{362, 3391162308u, 1291220039u, 3391162308u, 0, FMOD_TOLERANCE, 0},
+{363, 1044867873u, 3369493273u, 1044867873u, 0, FMOD_TOLERANCE, 0},
+{364, 1089986803u, 3462160118u, 1089986803u, 0, FMOD_TOLERANCE, 0},
+{365, 3262169538u, 1268270462u, 3262169538u, 0, FMOD_TOLERANCE, 0},
+{366, 989762529u, 3362011135u, 989762529u, 0, FMOD_TOLERANCE, 0},
+{367, 1002632518u, 3330388441u, 1002632518u, 0, FMOD_TOLERANCE, 0},
+{368, 3404372005u, 3450484255u, 3404372005u, 0, FMOD_TOLERANCE, 0},
+{369, 999985470u, 3409354318u, 999985470u, 0, FMOD_TOLERANCE, 0},
+{370, 3132541814u, 3444521949u, 3132541814u, 0, FMOD_TOLERANCE, 0},
+{371, 1164046161u, 3440635788u, 1164046161u, 0, FMOD_TOLERANCE, 0},
+{372, 1181604787u, 3363067409u, 1181604787u, 0, FMOD_TOLERANCE, 0},
+{373, 1043691622u, 3402603223u, 1043691622u, 0, FMOD_TOLERANCE, 0},
+{374, 3157534378u, 3451674717u, 3157534378u, 0, FMOD_TOLERANCE, 0},
+{375, 969804941u, 3355439348u, 969804941u, 0, FMOD_TOLERANCE, 0},
+{376, 3162548604u, 3461790298u, 3162548604u, 0, FMOD_TOLERANCE, 0},
+{377, 3185240099u, 1123403720u, 3185240099u, 0, FMOD_TOLERANCE, 0},
+{378, 3424264117u, 3434026174u, 3424264117u, 0, FMOD_TOLERANCE, 0},
+{379, 3228365887u, 1216775310u, 3228365887u, 0, FMOD_TOLERANCE, 0},
+{380, 1035909900u, 1249532942u, 1035909900u, 0, FMOD_TOLERANCE, 0},
+{381, 1131358407u, 3325958870u, 1131358407u, 0, FMOD_TOLERANCE, 0},
+{382, 1156517523u, 3343716230u, 1156517523u, 0, FMOD_TOLERANCE, 0},
+{383, 3337499209u, 1226297264u, 3337499209u, 0, FMOD_TOLERANCE, 0},
+{384, 3253515800u, 1189005947u, 3253515800u, 0, FMOD_TOLERANCE, 0},
+{385, 1039917375u, 1122740999u, 1039917375u, 0, FMOD_TOLERANCE, 0},
+{386, 3220979495u, 3429223871u, 3220979495u, 0, FMOD_TOLERANCE, 0},
+{387, 1128016396u, 1105151547u, 1101376254u, 0, FMOD_TOLERANCE, 0},
+{388, 3144504834u, 1162227076u, 3144504834u, 0, FMOD_TOLERANCE, 0},
+{389, 995850843u, 1332031130u, 995850843u, 0, FMOD_TOLERANCE, 0},
+{390, 3362082828u, 3374056268u, 3362082828u, 0, FMOD_TOLERANCE, 0},
+{391, 3235395924u, 1132055244u, 3235395924u, 0, FMOD_TOLERANCE, 0},
+{392, 3161654634u, 3335899347u, 3161654634u, 0, FMOD_TOLERANCE, 0},
+{393, 3162655243u, 3307203982u, 3162655243u, 0, FMOD_TOLERANCE, 0},
+{394, 1165476654u, 3350219111u, 1165476654u, 0, FMOD_TOLERANCE, 0},
+{395, 1017239798u, 3438501281u, 1017239798u, 0, FMOD_TOLERANCE, 0},
+{396, 1189849849u, 3382739134u, 1189849849u, 0, FMOD_TOLERANCE, 0},
+{397, 1168098747u, 1316854744u, 1168098747u, 0, FMOD_TOLERANCE, 0},
+{398, 3301009024u, 3406174560u, 3301009024u, 0, FMOD_TOLERANCE, 0},
+{399, 3233089227u, 1212652543u, 3233089227u, 0, FMOD_TOLERANCE, 0},
+{400, 3218245284u, 1238873830u, 3218245284u, 0, FMOD_TOLERANCE, 0},
+{401, 3215981890u, 3240474694u, 3215981890u, 0, FMOD_TOLERANCE, 0},
+{402, 1141063391u, 1168908072u, 1141063391u, 0, FMOD_TOLERANCE, 0},
+{403, 1001823878u, 1016826861u, 1001823878u, 0, FMOD_TOLERANCE, 0},
+{404, 1009130212u, 1004302940u, 996116184u, 0, FMOD_TOLERANCE, 0},
+{405, 1032920919u, 3449126417u, 1032920919u, 0, FMOD_TOLERANCE, 0},
+{406, 1153753924u, 3322269242u, 1153753924u, 0, FMOD_TOLERANCE, 0},
+{407, 3226328360u, 3366432856u, 3226328360u, 0, FMOD_TOLERANCE, 0},
+{408, 3166889490u, 3306023523u, 3166889490u, 0, FMOD_TOLERANCE, 0},
+{409, 1087750238u, 1099325523u, 1087750238u, 0, FMOD_TOLERANCE, 0},
+{410, 3121620061u, 3359488363u, 3121620061u, 0, FMOD_TOLERANCE, 0},
+{411, 1030612298u, 3345396001u, 1030612298u, 0, FMOD_TOLERANCE, 0},
+{412, 1045232522u, 3234993273u, 1045232522u, 0, FMOD_TOLERANCE, 0},
+{413, 3228795133u, 3273940030u, 3228795133u, 0, FMOD_TOLERANCE, 0},
+{414, 3388153589u, 3426245389u, 3388153589u, 0, FMOD_TOLERANCE, 0},
+{415, 1133410485u, 3329658993u, 1133410485u, 0, FMOD_TOLERANCE, 0},
+{416, 3136790322u, 1088652637u, 3136790322u, 0, FMOD_TOLERANCE, 0},
+{417, 1001897182u, 3191875320u, 1001897182u, 0, FMOD_TOLERANCE, 0},
+{418, 3152777939u, 3245830463u, 3152777939u, 0, FMOD_TOLERANCE, 0},
+{419, 985903305u, 3333087577u, 985903305u, 0, FMOD_TOLERANCE, 0},
+{420, 3267868136u, 1208301947u, 3267868136u, 0, FMOD_TOLERANCE, 0},
+{421, 3319048157u, 1172271145u, 3319048157u, 0, FMOD_TOLERANCE, 0},
+{422, 3301461672u, 1233693827u, 3301461672u, 0, FMOD_TOLERANCE, 0},
+{423, 3130670309u, 3192399254u, 3130670309u, 0, FMOD_TOLERANCE, 0},
+{424, 1258369714u, 3462258576u, 1258369714u, 0, FMOD_TOLERANCE, 0},
+{425, 1216602683u, 3371396332u, 1216602683u, 0, FMOD_TOLERANCE, 0},
+{426, 3297265739u, 1214184410u, 3297265739u, 0, FMOD_TOLERANCE, 0},
+{427, 1071940738u, 3311731012u, 1071940738u, 0, FMOD_TOLERANCE, 0},
+{428, 3131219358u, 3471261157u, 3131219358u, 0, FMOD_TOLERANCE, 0},
+{429, 3222096285u, 1198013705u, 3222096285u, 0, FMOD_TOLERANCE, 0},
+{430, 3345532722u, 3383708463u, 3345532722u, 0, FMOD_TOLERANCE, 0},
+{431, 3418753236u, 3481843070u, 3418753236u, 0, FMOD_TOLERANCE, 0},
+{432, 1277417964u, 3487506626u, 1277417964u, 0, FMOD_TOLERANCE, 0},
+{433, 987577257u, 1152077087u, 987577257u, 0, FMOD_TOLERANCE, 0},
+{434, 3161606610u, 3190282989u, 3161606610u, 0, FMOD_TOLERANCE, 0},
+{435, 1043442869u, 3311393817u, 1043442869u, 0, FMOD_TOLERANCE, 0},
+{436, 3320923228u, 3464544249u, 3320923228u, 0, FMOD_TOLERANCE, 0},
+{437, 1337400405u, 3488844154u, 1337400405u, 0, FMOD_TOLERANCE, 0},
+{438, 3284411233u, 1173613526u, 3284411233u, 0, FMOD_TOLERANCE, 0},
+{439, 1215968622u, 3469884568u, 1215968622u, 0, FMOD_TOLERANCE, 0},
+{440, 1025404104u, 1066370251u, 1025404104u, 0, FMOD_TOLERANCE, 0},
+{441, 3138086437u, 3195983510u, 3138086437u, 0, FMOD_TOLERANCE, 0},
+{442, 3362748242u, 3369843597u, 3362748242u, 0, FMOD_TOLERANCE, 0},
+{443, 3327895594u, 1224511805u, 3327895594u, 0, FMOD_TOLERANCE, 0},
+{444, 1157186482u, 1288722647u, 1157186482u, 0, FMOD_TOLERANCE, 0},
+{445, 3477008113u, 1331845018u, 3477008113u, 0, FMOD_TOLERANCE, 0},
+{446, 3292127294u, 3409957764u, 3292127294u, 0, FMOD_TOLERANCE, 0},
+{447, 1123357102u, 3281307320u, 1123357102u, 0, FMOD_TOLERANCE, 0},
+{448, 1049949008u, 1130799489u, 1049949008u, 0, FMOD_TOLERANCE, 0},
+{449, 1108543194u, 3281299199u, 1108543194u, 0, FMOD_TOLERANCE, 0},
+{450, 3163283126u, 1328636961u, 3163283126u, 0, FMOD_TOLERANCE, 0},
+{451, 1160162706u, 1264067367u, 1160162706u, 0, FMOD_TOLERANCE, 0},
+{452, 972485427u, 1124312043u, 972485427u, 0, FMOD_TOLERANCE, 0},
+{453, 3222106584u, 1183748648u, 3222106584u, 0, FMOD_TOLERANCE, 0},
+{454, 3167730654u, 3195765940u, 3167730654u, 0, FMOD_TOLERANCE, 0},
+{455, 1098530298u, 3255870890u, 1098530298u, 0, FMOD_TOLERANCE, 0},
+{456, 3203377685u, 1306427476u, 3203377685u, 0, FMOD_TOLERANCE, 0},
+{457, 1096155623u, 1256423752u, 1096155623u, 0, FMOD_TOLERANCE, 0},
+{458, 3238729605u, 1298769842u, 3238729605u, 0, FMOD_TOLERANCE, 0},
+{459, 3154720153u, 3443720494u, 3154720153u, 0, FMOD_TOLERANCE, 0},
+{460, 3136364836u, 1018492227u, 3136364836u, 0, FMOD_TOLERANCE, 0},
+{461, 1011225926u, 1180485180u, 1011225926u, 0, FMOD_TOLERANCE, 0},
+{462, 3137758475u, 1039403054u, 3137758475u, 0, FMOD_TOLERANCE, 0},
+{463, 1040617590u, 1034835971u, 1027445202u, 0, FMOD_TOLERANCE, 0},
+{464, 1039827284u, 1072928888u, 1039827284u, 0, FMOD_TOLERANCE, 0},
+{465, 1021564080u, 1064468397u, 1021564080u, 0, FMOD_TOLERANCE, 0},
+{466, 3327516316u, 3405380971u, 3327516316u, 0, FMOD_TOLERANCE, 0},
+{467, 1040711112u, 3229444200u, 1040711112u, 0, FMOD_TOLERANCE, 0},
+{468, 1134528351u, 3365952513u, 1134528351u, 0, FMOD_TOLERANCE, 0},
+{469, 1066157309u, 3241712664u, 1066157309u, 0, FMOD_TOLERANCE, 0},
+{470, 3272661536u, 3461799138u, 3272661536u, 0, FMOD_TOLERANCE, 0},
+{471, 1170245333u, 1233406410u, 1170245333u, 0, FMOD_TOLERANCE, 0},
+{472, 1219052056u, 3369557946u, 1219052056u, 0, FMOD_TOLERANCE, 0},
+{473, 3190796331u, 1320011850u, 3190796331u, 0, FMOD_TOLERANCE, 0},
+{474, 3257224022u, 3361778245u, 3257224022u, 0, FMOD_TOLERANCE, 0},
+{475, 1086717248u, 3423795374u, 1086717248u, 0, FMOD_TOLERANCE, 0},
+{476, 1200927971u, 1317167489u, 1200927971u, 0, FMOD_TOLERANCE, 0},
+{477, 3326858092u, 3452602832u, 3326858092u, 0, FMOD_TOLERANCE, 0},
+{478, 3184801644u, 1137974313u, 3184801644u, 0, FMOD_TOLERANCE, 0},
+{479, 1015670780u, 1101217251u, 1015670780u, 0, FMOD_TOLERANCE, 0},
+{480, 1012543234u, 1116520440u, 1012543234u, 0, FMOD_TOLERANCE, 0},
+{481, 3316611992u, 3394732912u, 3316611992u, 0, FMOD_TOLERANCE, 0},
+{482, 1087942795u, 3316660295u, 1087942795u, 0, FMOD_TOLERANCE, 0},
+{483, 3295326432u, 1313396175u, 3295326432u, 0, FMOD_TOLERANCE, 0},
+{484, 1173247961u, 1191127979u, 1173247961u, 0, FMOD_TOLERANCE, 0},
+{485, 3248534678u, 1323683800u, 3248534678u, 0, FMOD_TOLERANCE, 0},
+{486, 3157626955u, 3483653298u, 3157626955u, 0, FMOD_TOLERANCE, 0},
+{487, 3182695954u, 3256861672u, 3182695954u, 0, FMOD_TOLERANCE, 0},
+{488, 1105291533u, 3482971524u, 1105291533u, 0, FMOD_TOLERANCE, 0},
+{489, 1016023520u, 3227712090u, 1016023520u, 0, FMOD_TOLERANCE, 0},
+{490, 3370691006u, 1295870514u, 3370691006u, 0, FMOD_TOLERANCE, 0},
+{491, 3335212901u, 3486414589u, 3335212901u, 0, FMOD_TOLERANCE, 0},
+{492, 3266691185u, 1160074593u, 3266691185u, 0, FMOD_TOLERANCE, 0},
+{493, 3179003144u, 1108615803u, 3179003144u, 0, FMOD_TOLERANCE, 0},
+{494, 973664327u, 1319516167u, 973664327u, 0, FMOD_TOLERANCE, 0},
+{495, 979878744u, 1232482646u, 979878744u, 0, FMOD_TOLERANCE, 0},
+{496, 1002542205u, 3152136093u, 1002542205u, 0, FMOD_TOLERANCE, 0},
+{497, 989655126u, 1308376568u, 989655126u, 0, FMOD_TOLERANCE, 0},
+{498, 1002715618u, 1191006977u, 1002715618u, 0, FMOD_TOLERANCE, 0},
+{499, 1000863905u, 1196831314u, 1000863905u, 0, FMOD_TOLERANCE, 0},
+{500, 3283471961u, 1260093226u, 3283471961u, 0, FMOD_TOLERANCE, 0},
+{501, 3311210827u, 1192192264u, 3311210827u, 0, FMOD_TOLERANCE, 0},
+{502, 1288901567u, 1296370667u, 1288901567u, 0, FMOD_TOLERANCE, 0},
+{503, 1062512367u, 3229559531u, 1062512367u, 0, FMOD_TOLERANCE, 0},
+{504, 1034561811u, 1054043114u, 1034561811u, 0, FMOD_TOLERANCE, 0},
+{505, 1042014529u, 1146708584u, 1042014529u, 0, FMOD_TOLERANCE, 0},
+{506, 3196144817u, 1056118717u, 3196144817u, 0, FMOD_TOLERANCE, 0},
+{507, 3375507013u, 1306310823u, 3375507013u, 0, FMOD_TOLERANCE, 0},
+{508, 1055319316u, 3261813492u, 1055319316u, 0, FMOD_TOLERANCE, 0},
+{509, 1123114742u, 1229815537u, 1123114742u, 0, FMOD_TOLERANCE, 0},
+{510, 1258114435u, 1291336083u, 1258114435u, 0, FMOD_TOLERANCE, 0},
+{511, 3223384012u, 1130486973u, 3223384012u, 0, FMOD_TOLERANCE, 0},
+{512, 1019964626u, 1235133609u, 1019964626u, 0, FMOD_TOLERANCE, 0},
+{513, 3445262427u, 3465211174u, 3445262427u, 0, FMOD_TOLERANCE, 0},
+{514, 1125653081u, 1207799746u, 1125653081u, 0, FMOD_TOLERANCE, 0},
+{515, 996404791u, 3353251979u, 996404791u, 0, FMOD_TOLERANCE, 0},
+{516, 996786317u, 3179221951u, 996786317u, 0, FMOD_TOLERANCE, 0},
+{517, 1188167943u, 1200744896u, 1188167943u, 0, FMOD_TOLERANCE, 0},
+{518, 1102061604u, 3424449935u, 1102061604u, 0, FMOD_TOLERANCE, 0},
+{519, 3116209179u, 3303588342u, 3116209179u, 0, FMOD_TOLERANCE, 0},
+{520, 3207056527u, 3384206601u, 3207056527u, 0, FMOD_TOLERANCE, 0},
+{521, 1284174954u, 3436881197u, 1284174954u, 0, FMOD_TOLERANCE, 0},
+{522, 3156081645u, 3308839704u, 3156081645u, 0, FMOD_TOLERANCE, 0},
+{523, 1102631663u, 3396951425u, 1102631663u, 0, FMOD_TOLERANCE, 0},
+{524, 968803479u, 992989712u, 968803479u, 0, FMOD_TOLERANCE, 0},
+{525, 1003649752u, 1218792138u, 1003649752u, 0, FMOD_TOLERANCE, 0},
+{526, 1078478376u, 1326246424u, 1078478376u, 0, FMOD_TOLERANCE, 0},
+{527, 3158855023u, 3151283866u, 3149648964u, 0, FMOD_TOLERANCE, 0},
+{528, 1165177679u, 3276237026u, 1120720980u, 0, FMOD_TOLERANCE, 0},
+{529, 1208345407u, 1254181270u, 1208345407u, 0, FMOD_TOLERANCE, 0},
+{530, 1248478509u, 1287895126u, 1248478509u, 0, FMOD_TOLERANCE, 0},
+{531, 1153863988u, 3430539165u, 1153863988u, 0, FMOD_TOLERANCE, 0},
+{532, 1064922416u, 1320485628u, 1064922416u, 0, FMOD_TOLERANCE, 0},
+{533, 3230403187u, 1322841992u, 3230403187u, 0, FMOD_TOLERANCE, 0},
+{534, 1072458508u, 3372833993u, 1072458508u, 0, FMOD_TOLERANCE, 0},
+{535, 3319723279u, 3414482416u, 3319723279u, 0, FMOD_TOLERANCE, 0},
+{536, 3237813668u, 3441016803u, 3237813668u, 0, FMOD_TOLERANCE, 0},
+{537, 975349337u, 1311932596u, 975349337u, 0, FMOD_TOLERANCE, 0},
+{538, 981908840u, 3314038398u, 981908840u, 0, FMOD_TOLERANCE, 0},
+{539, 1315857601u, 3487600045u, 1315857601u, 0, FMOD_TOLERANCE, 0},
+{540, 1029557624u, 3302959071u, 1029557624u, 0, FMOD_TOLERANCE, 0},
+{541, 1028355074u, 3442294040u, 1028355074u, 0, FMOD_TOLERANCE, 0},
+{542, 3119299090u, 1187096397u, 3119299090u, 0, FMOD_TOLERANCE, 0},
+{543, 3192315328u, 3289489214u, 3192315328u, 0, FMOD_TOLERANCE, 0},
+{544, 3392827417u, 1277961150u, 3392827417u, 0, FMOD_TOLERANCE, 0},
+{545, 1161241793u, 1328003707u, 1161241793u, 0, FMOD_TOLERANCE, 0},
+{546, 1171318485u, 3374409104u, 1171318485u, 0, FMOD_TOLERANCE, 0},
+{547, 1127109339u, 3368125489u, 1127109339u, 0, FMOD_TOLERANCE, 0},
+{548, 1155775526u, 1255814444u, 1155775526u, 0, FMOD_TOLERANCE, 0},
+{549, 1234491880u, 3408568717u, 1234491880u, 0, FMOD_TOLERANCE, 0}
+
+// AUTOMATICALLY GENERATED VECTORS STOP
+
+};
+
+#endif // CYGONCE_LIBM_FMOD_H multiple inclusion protection
+
+// EOF fmod.h
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/frexp.c b/ecos/packages/language/c/libm/current/tests/vectors/frexp.c
new file mode 100644
index 0000000..9f239a5
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/frexp.c
@@ -0,0 +1,115 @@
+//===========================================================================
+//
+// frexp.c
+//
+// Test of frexp() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// Declarations for test system:
+//
+// TESTCASE_TYPE=CYG_TEST_MODULE
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include <cyg/infra/testcase.h> // Test infrastructure
+#include <math.h> // Header for this package
+#include <sys/ieeefp.h> // Cyg_libm_ieee_double_shape_type
+#include "vectors/vector_support.h"// extra support for math tests
+
+#include "vectors/frexp.h"
+
+// FUNCTIONS
+
+static void
+test( CYG_ADDRWORD data )
+{
+ cyg_ucount32 vec_size;
+ cyg_bool ret;
+
+ vec_size = sizeof(frexp_vec) / sizeof(Cyg_libm_test_double_vec_t);
+ ret = doTestVec( (CYG_ADDRWORD) &frexp, CYG_LIBM_TEST_VEC_DOUBLE,
+ CYG_LIBM_TEST_VEC_INT_P, CYG_LIBM_TEST_VEC_DOUBLE,
+ &frexp_vec[0], vec_size );
+
+ if (ret==true)
+ {
+ CYG_TEST_PASS("frexp() is stable");
+ } // if
+ else
+ {
+ CYG_TEST_FAIL("frexp() failed tests");
+ } // else
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for Math "
+ "library frexp() function");
+} // test()
+
+
+int
+main(int argc, char *argv[])
+{
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for Math library "
+ "frexp() function");
+
+ START_TEST( test );
+
+ CYG_TEST_PASS_FINISH("Testing is not applicable to this configuration");
+
+} // main()
+
+
+// EOF frexp.c
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/frexp.h b/ecos/packages/language/c/libm/current/tests/vectors/frexp.h
new file mode 100644
index 0000000..06a13ad
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/frexp.h
@@ -0,0 +1,1079 @@
+#ifndef CYGONCE_LIBM_FREXP_H
+#define CYGONCE_LIBM_FREXP_H
+//===========================================================================
+//
+// frexp.h
+//
+// Test vectors for testing of frexp() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage: #include "vectors/frexp.h"
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include "vectors/vector_support.h"// extra support for math tests
+
+#define FREXP_TOLERANCE 1.0E-04
+
+static const Cyg_libm_test_double_vec_t frexp_vec[] = {
+
+// AUTOMATICALLY GENERATED VECTORS START
+
+{ 1, 1077999148u, 2506787616u, 0u, 6u, 1071707692u, 2506787616u, 0, FREXP_TOLERANCE, 0},
+{ 2, 1090024059u, 3619148316u, 0u, 17u, 1072198267u, 3619148316u, 0, FREXP_TOLERANCE, 0},
+{ 3, 3218153654u, 3176730980u, 0u, 4294967295u, 3219202230u, 3176730980u, 0, FREXP_TOLERANCE, 0},
+{ 4, 1051524793u, 2993920299u, 0u, 4294967276u, 1072496313u, 2993920299u, 0, FREXP_TOLERANCE, 0},
+{ 5, 3239659803u, 2725707538u, 0u, 19u, 3219736859u, 2725707538u, 0, FREXP_TOLERANCE, 0},
+{ 6, 3232101343u, 2346810316u, 0u, 12u, 3219518431u, 2346810316u, 0, FREXP_TOLERANCE, 0},
+{ 7, 1092554362u, 2088062470u, 0u, 19u, 1072631418u, 2088062470u, 0, FREXP_TOLERANCE, 0},
+{ 8, 3201242716u, 420891118u, 0u, 4294967278u, 3220117084u, 420891118u, 0, FREXP_TOLERANCE, 0},
+{ 9, 3221200677u, 2636405208u, 0u, 1u, 3220152101u, 2636405208u, 0, FREXP_TOLERANCE, 0},
+{ 10, 1100049309u, 471635570u, 0u, 27u, 1071737757u, 471635570u, 0, FREXP_TOLERANCE, 0},
+{ 11, 1089363191u, 1746012320u, 0u, 16u, 1072585975u, 1746012320u, 0, FREXP_TOLERANCE, 0},
+{ 12, 1054478713u, 3333988501u, 0u, 4294967279u, 1072304505u, 3333988501u, 0, FREXP_TOLERANCE, 0},
+{ 13, 1047953160u, 183014794u, 0u, 4294967273u, 1072070408u, 183014794u, 0, FREXP_TOLERANCE, 0},
+{ 14, 3202039382u, 2016785810u, 0u, 4294967279u, 3219865174u, 2016785810u, 0, FREXP_TOLERANCE, 0},
+{ 15, 3213486034u, 2688957927u, 0u, 4294967290u, 3219777490u, 2688957927u, 0, FREXP_TOLERANCE, 0},
+{ 16, 1046089230u, 2709029994u, 0u, 4294967271u, 1072303630u, 2709029994u, 0, FREXP_TOLERANCE, 0},
+{ 17, 1058795730u, 624574473u, 0u, 4294967283u, 1072427218u, 624574473u, 0, FREXP_TOLERANCE, 0},
+{ 18, 1045840574u, 3473266330u, 0u, 4294967271u, 1072054974u, 3473266330u, 0, FREXP_TOLERANCE, 0},
+{ 19, 3204919842u, 1605286142u, 0u, 4294967282u, 3219599906u, 1605286142u, 0, FREXP_TOLERANCE, 0},
+{ 20, 1068931671u, 4233776869u, 0u, 4294967293u, 1072077399u, 4233776869u, 0, FREXP_TOLERANCE, 0},
+{ 21, 1060343410u, 1857607719u, 0u, 4294967285u, 1071877746u, 1857607719u, 0, FREXP_TOLERANCE, 0},
+{ 22, 3222889559u, 3417070006u, 0u, 3u, 3219743831u, 3417070006u, 0, FREXP_TOLERANCE, 0},
+{ 23, 1103599987u, 3981151660u, 0u, 30u, 1072142707u, 3981151660u, 0, FREXP_TOLERANCE, 0},
+{ 24, 1088899021u, 1332651746u, 0u, 16u, 1072121805u, 1332651746u, 0, FREXP_TOLERANCE, 0},
+{ 25, 1085298022u, 3824988054u, 0u, 13u, 1071666534u, 3824988054u, 0, FREXP_TOLERANCE, 0},
+{ 26, 1066856791u, 2070129652u, 0u, 4294967291u, 1072099671u, 2070129652u, 0, FREXP_TOLERANCE, 0},
+{ 27, 3207559790u, 1372884064u, 0u, 4294967284u, 3220142702u, 1372884064u, 0, FREXP_TOLERANCE, 0},
+{ 28, 1080833116u, 3229926662u, 0u, 8u, 1072444508u, 3229926662u, 0, FREXP_TOLERANCE, 0},
+{ 29, 1093826501u, 3217805330u, 0u, 21u, 1071806405u, 3217805330u, 0, FREXP_TOLERANCE, 0},
+{ 30, 3191644264u, 2014578707u, 0u, 4294967269u, 3219955816u, 2014578707u, 0, FREXP_TOLERANCE, 0},
+{ 31, 1102287487u, 265058758u, 0u, 29u, 1071878783u, 265058758u, 0, FREXP_TOLERANCE, 0},
+{ 32, 3239903247u, 1630600647u, 0u, 19u, 3219980303u, 1630600647u, 0, FREXP_TOLERANCE, 0},
+{ 33, 1071124229u, 1946677669u, 0u, 4294967295u, 1072172805u, 1946677669u, 0, FREXP_TOLERANCE, 0},
+{ 34, 3198462609u, 926009897u, 0u, 4294967276u, 3219434129u, 926009897u, 0, FREXP_TOLERANCE, 0},
+{ 35, 1072130299u, 2271884183u, 0u, 0u, 1072130299u, 2271884183u, 0, FREXP_TOLERANCE, 0},
+{ 36, 3203741999u, 2118617783u, 0u, 4294967281u, 3219470639u, 2118617783u, 0, FREXP_TOLERANCE, 0},
+{ 37, 3194849109u, 213658772u, 0u, 4294967272u, 3220014933u, 213658772u, 0, FREXP_TOLERANCE, 0},
+{ 38, 3249401130u, 314151656u, 0u, 28u, 3220041002u, 314151656u, 0, FREXP_TOLERANCE, 0},
+{ 39, 3254112288u, 1564829925u, 0u, 33u, 3219509280u, 1564829925u, 0, FREXP_TOLERANCE, 0},
+{ 40, 3197817016u, 497230814u, 0u, 4294967275u, 3219837112u, 497230814u, 0, FREXP_TOLERANCE, 0},
+{ 41, 3216262634u, 2075329122u, 0u, 4294967293u, 3219408362u, 2075329122u, 0, FREXP_TOLERANCE, 0},
+{ 42, 3231746400u, 169900577u, 0u, 12u, 3219163488u, 169900577u, 0, FREXP_TOLERANCE, 0},
+{ 43, 1049848642u, 541549344u, 0u, 4294967275u, 1071868738u, 541549344u, 0, FREXP_TOLERANCE, 0},
+{ 44, 1096608669u, 3119070100u, 0u, 23u, 1072491421u, 3119070100u, 0, FREXP_TOLERANCE, 0},
+{ 45, 1085427055u, 567496114u, 0u, 13u, 1071795567u, 567496114u, 0, FREXP_TOLERANCE, 0},
+{ 46, 1045286891u, 1969998540u, 0u, 4294967270u, 1072549867u, 1969998540u, 0, FREXP_TOLERANCE, 0},
+{ 47, 1060548195u, 1299369769u, 0u, 4294967285u, 1072082531u, 1299369769u, 0, FREXP_TOLERANCE, 0},
+{ 48, 1049342524u, 4167404066u, 0u, 4294967274u, 1072411196u, 4167404066u, 0, FREXP_TOLERANCE, 0},
+{ 49, 3208865645u, 3348930841u, 0u, 4294967286u, 3219351405u, 3348930841u, 0, FREXP_TOLERANCE, 0},
+{ 50, 1078472138u, 358457347u, 0u, 6u, 1072180682u, 358457347u, 0, FREXP_TOLERANCE, 0},
+{ 51, 1071069297u, 2192461366u, 0u, 4294967295u, 1072117873u, 2192461366u, 0, FREXP_TOLERANCE, 0},
+{ 52, 1099527247u, 3184735642u, 0u, 26u, 1072264271u, 3184735642u, 0, FREXP_TOLERANCE, 0},
+{ 53, 1052861772u, 331696577u, 0u, 4294967278u, 1071736140u, 331696577u, 0, FREXP_TOLERANCE, 0},
+{ 54, 3189610016u, 793242270u, 0u, 4294967267u, 3220018720u, 793242270u, 0, FREXP_TOLERANCE, 0},
+{ 55, 3252528934u, 2322696981u, 0u, 31u, 3220023078u, 2322696981u, 0, FREXP_TOLERANCE, 0},
+{ 56, 1083791358u, 3020766674u, 0u, 11u, 1072257022u, 3020766674u, 0, FREXP_TOLERANCE, 0},
+{ 57, 1044902177u, 252085215u, 0u, 4294967270u, 1072165153u, 252085215u, 0, FREXP_TOLERANCE, 0},
+{ 58, 3214426435u, 4139068910u, 0u, 4294967291u, 3219669315u, 4139068910u, 0, FREXP_TOLERANCE, 0},
+{ 59, 3222505725u, 105589263u, 0u, 3u, 3219359997u, 105589263u, 0, FREXP_TOLERANCE, 0},
+{ 60, 1056316170u, 261630827u, 0u, 4294967281u, 1072044810u, 261630827u, 0, FREXP_TOLERANCE, 0},
+{ 61, 1107213408u, 428765703u, 0u, 33u, 1072610400u, 428765703u, 0, FREXP_TOLERANCE, 0},
+{ 62, 3251828686u, 2009972239u, 0u, 31u, 3219322830u, 2009972239u, 0, FREXP_TOLERANCE, 0},
+{ 63, 1098568019u, 3517376586u, 0u, 25u, 1072353619u, 3517376586u, 0, FREXP_TOLERANCE, 0},
+{ 64, 3240257920u, 3304487302u, 0u, 20u, 3219286400u, 3304487302u, 0, FREXP_TOLERANCE, 0},
+{ 65, 3233537912u, 237004814u, 0u, 13u, 3219906424u, 237004814u, 0, FREXP_TOLERANCE, 0},
+{ 66, 3237899261u, 3364008659u, 0u, 17u, 3220073469u, 3364008659u, 0, FREXP_TOLERANCE, 0},
+{ 67, 3195247552u, 472004928u, 0u, 4294967273u, 3219364800u, 472004928u, 0, FREXP_TOLERANCE, 0},
+{ 68, 3226869477u, 1186387580u, 0u, 7u, 3219529445u, 1186387580u, 0, FREXP_TOLERANCE, 0},
+{ 69, 1054226850u, 4085763910u, 0u, 4294967279u, 1072052642u, 4085763910u, 0, FREXP_TOLERANCE, 0},
+{ 70, 1106394906u, 2684738273u, 0u, 33u, 1071791898u, 2684738273u, 0, FREXP_TOLERANCE, 0},
+{ 71, 1057053639u, 2055490142u, 0u, 4294967282u, 1071733703u, 2055490142u, 0, FREXP_TOLERANCE, 0},
+{ 72, 3231581370u, 3879040079u, 0u, 11u, 3220047034u, 3879040079u, 0, FREXP_TOLERANCE, 0},
+{ 73, 3188976647u, 3725731239u, 0u, 4294967267u, 3219385351u, 3725731239u, 0, FREXP_TOLERANCE, 0},
+{ 74, 1061652681u, 591292963u, 0u, 4294967286u, 1072138441u, 591292963u, 0, FREXP_TOLERANCE, 0},
+{ 75, 3225014981u, 1147041027u, 0u, 5u, 3219772101u, 1147041027u, 0, FREXP_TOLERANCE, 0},
+{ 76, 3215417793u, 624695933u, 0u, 4294967292u, 3219612097u, 624695933u, 0, FREXP_TOLERANCE, 0},
+{ 77, 3206052774u, 705725219u, 0u, 4294967283u, 3219684262u, 705725219u, 0, FREXP_TOLERANCE, 0},
+{ 78, 3238067573u, 1116238321u, 0u, 18u, 3219193205u, 1116238321u, 0, FREXP_TOLERANCE, 0},
+{ 79, 3207367088u, 7287411u, 0u, 4294967284u, 3219950000u, 7287411u, 0, FREXP_TOLERANCE, 0},
+{ 80, 1045917232u, 116067742u, 0u, 4294967271u, 1072131632u, 116067742u, 0, FREXP_TOLERANCE, 0},
+{ 81, 3240055222u, 3604989074u, 0u, 19u, 3220132278u, 3604989074u, 0, FREXP_TOLERANCE, 0},
+{ 82, 1066381836u, 545298780u, 0u, 4294967290u, 1072673292u, 545298780u, 0, FREXP_TOLERANCE, 0},
+{ 83, 3219080936u, 1681476121u, 0u, 4294967295u, 3220129512u, 1681476121u, 0, FREXP_TOLERANCE, 0},
+{ 84, 1060345752u, 3553822398u, 0u, 4294967285u, 1071880088u, 3553822398u, 0, FREXP_TOLERANCE, 0},
+{ 85, 1102831658u, 3410480388u, 0u, 29u, 1072422954u, 3410480388u, 0, FREXP_TOLERANCE, 0},
+{ 86, 1052460275u, 1660607230u, 0u, 4294967277u, 1072383219u, 1660607230u, 0, FREXP_TOLERANCE, 0},
+{ 87, 1089216869u, 1494984673u, 0u, 16u, 1072439653u, 1494984673u, 0, FREXP_TOLERANCE, 0},
+{ 88, 3196647153u, 287894723u, 0u, 4294967274u, 3219715825u, 287894723u, 0, FREXP_TOLERANCE, 0},
+{ 89, 1054885127u, 644548665u, 0u, 4294967280u, 1071662343u, 644548665u, 0, FREXP_TOLERANCE, 0},
+{ 90, 1081948134u, 2442134629u, 0u, 9u, 1072510950u, 2442134629u, 0, FREXP_TOLERANCE, 0},
+{ 91, 1087554095u, 2312530895u, 0u, 15u, 1071825455u, 2312530895u, 0, FREXP_TOLERANCE, 0},
+{ 92, 3221584595u, 3379665576u, 0u, 2u, 3219487443u, 3379665576u, 0, FREXP_TOLERANCE, 0},
+{ 93, 1096085375u, 3018463866u, 0u, 23u, 1071968127u, 3018463866u, 0, FREXP_TOLERANCE, 0},
+{ 94, 1086226574u, 404012923u, 0u, 13u, 1072595086u, 404012923u, 0, FREXP_TOLERANCE, 0},
+{ 95, 1064733299u, 1710279345u, 0u, 4294967289u, 1072073331u, 1710279345u, 0, FREXP_TOLERANCE, 0},
+{ 96, 3251401196u, 3528946000u, 0u, 30u, 3219943916u, 3528946000u, 0, FREXP_TOLERANCE, 0},
+{ 97, 1061536351u, 2164450219u, 0u, 4294967286u, 1072022111u, 2164450219u, 0, FREXP_TOLERANCE, 0},
+{ 98, 1083520023u, 3312018966u, 0u, 11u, 1071985687u, 3312018966u, 0, FREXP_TOLERANCE, 0},
+{ 99, 1057248676u, 2648986431u, 0u, 4294967282u, 1071928740u, 2648986431u, 0, FREXP_TOLERANCE, 0},
+{ 100, 1050330591u, 1474376550u, 0u, 4294967275u, 1072350687u, 1474376550u, 0, FREXP_TOLERANCE, 0},
+{ 101, 3194422028u, 1839068700u, 0u, 4294967272u, 3219587852u, 1839068700u, 0, FREXP_TOLERANCE, 0},
+{ 102, 1077406406u, 3013052171u, 0u, 5u, 1072163526u, 3013052171u, 0, FREXP_TOLERANCE, 0},
+{ 103, 1046493630u, 772102380u, 0u, 4294967272u, 1071659454u, 772102380u, 0, FREXP_TOLERANCE, 0},
+{ 104, 3220729740u, 4219039958u, 0u, 1u, 3219681164u, 4219039958u, 0, FREXP_TOLERANCE, 0},
+{ 105, 3229472221u, 3058618779u, 0u, 9u, 3220035037u, 3058618779u, 0, FREXP_TOLERANCE, 0},
+{ 106, 1046304788u, 3338676024u, 0u, 4294967271u, 1072519188u, 3338676024u, 0, FREXP_TOLERANCE, 0},
+{ 107, 1051172137u, 506286854u, 0u, 4294967276u, 1072143657u, 506286854u, 0, FREXP_TOLERANCE, 0},
+{ 108, 1094907481u, 2217000199u, 0u, 22u, 1071838809u, 2217000199u, 0, FREXP_TOLERANCE, 0},
+{ 109, 1082428310u, 1147428263u, 0u, 10u, 1071942550u, 1147428263u, 0, FREXP_TOLERANCE, 0},
+{ 110, 1065432625u, 3034786717u, 0u, 4294967290u, 1071724081u, 3034786717u, 0, FREXP_TOLERANCE, 0},
+{ 111, 1082016752u, 2844125311u, 0u, 9u, 1072579568u, 2844125311u, 0, FREXP_TOLERANCE, 0},
+{ 112, 1082985198u, 2561492677u, 0u, 10u, 1072499438u, 2561492677u, 0, FREXP_TOLERANCE, 0},
+{ 113, 3211536916u, 704542600u, 0u, 4294967288u, 3219925524u, 704542600u, 0, FREXP_TOLERANCE, 0},
+{ 114, 3222902057u, 2762779203u, 0u, 3u, 3219756329u, 2762779203u, 0, FREXP_TOLERANCE, 0},
+{ 115, 3199680614u, 184131949u, 0u, 4294967277u, 3219603558u, 184131949u, 0, FREXP_TOLERANCE, 0},
+{ 116, 3249723525u, 1667366082u, 0u, 29u, 3219314821u, 1667366082u, 0, FREXP_TOLERANCE, 0},
+{ 117, 3223609598u, 3904224140u, 0u, 4u, 3219415294u, 3904224140u, 0, FREXP_TOLERANCE, 0},
+{ 118, 1067056698u, 2942159914u, 0u, 4294967291u, 1072299578u, 2942159914u, 0, FREXP_TOLERANCE, 0},
+{ 119, 1100636863u, 426114282u, 0u, 27u, 1072325311u, 426114282u, 0, FREXP_TOLERANCE, 0},
+{ 120, 3209056785u, 1083606355u, 0u, 4294967286u, 3219542545u, 1083606355u, 0, FREXP_TOLERANCE, 0},
+{ 121, 1106165945u, 3774123863u, 0u, 32u, 1072611513u, 3774123863u, 0, FREXP_TOLERANCE, 0},
+{ 122, 1106787580u, 2722107965u, 0u, 33u, 1072184572u, 2722107965u, 0, FREXP_TOLERANCE, 0},
+{ 123, 1088005092u, 1377734762u, 0u, 15u, 1072276452u, 1377734762u, 0, FREXP_TOLERANCE, 0},
+{ 124, 1104232051u, 2377063483u, 0u, 31u, 1071726195u, 2377063483u, 0, FREXP_TOLERANCE, 0},
+{ 125, 1069380559u, 1029739074u, 0u, 4294967293u, 1072526287u, 1029739074u, 0, FREXP_TOLERANCE, 0},
+{ 126, 1105467109u, 3062201018u, 0u, 32u, 1071912677u, 3062201018u, 0, FREXP_TOLERANCE, 0},
+{ 127, 3234741597u, 773857656u, 0u, 14u, 3220061533u, 773857656u, 0, FREXP_TOLERANCE, 0},
+{ 128, 3214251949u, 335833884u, 0u, 4294967291u, 3219494829u, 335833884u, 0, FREXP_TOLERANCE, 0},
+{ 129, 3203224610u, 1473865960u, 0u, 4294967280u, 3220001826u, 1473865960u, 0, FREXP_TOLERANCE, 0},
+{ 130, 1103073830u, 4000427507u, 0u, 29u, 1072665126u, 4000427507u, 0, FREXP_TOLERANCE, 0},
+{ 131, 1103185231u, 4242092620u, 0u, 30u, 1071727951u, 4242092620u, 0, FREXP_TOLERANCE, 0},
+{ 132, 1067009473u, 14539161u, 0u, 4294967291u, 1072252353u, 14539161u, 0, FREXP_TOLERANCE, 0},
+{ 133, 3192516074u, 1732245037u, 0u, 4294967270u, 3219779050u, 1732245037u, 0, FREXP_TOLERANCE, 0},
+{ 134, 1101371955u, 1533536108u, 0u, 28u, 1072011827u, 1533536108u, 0, FREXP_TOLERANCE, 0},
+{ 135, 3249153995u, 1833841275u, 0u, 28u, 3219793867u, 1833841275u, 0, FREXP_TOLERANCE, 0},
+{ 136, 1099430098u, 4144145552u, 0u, 26u, 1072167122u, 4144145552u, 0, FREXP_TOLERANCE, 0},
+{ 137, 3244270463u, 935007012u, 0u, 23u, 3220153215u, 935007012u, 0, FREXP_TOLERANCE, 0},
+{ 138, 3188865420u, 604442938u, 0u, 4294967267u, 3219274124u, 604442938u, 0, FREXP_TOLERANCE, 0},
+{ 139, 3206903253u, 2211464602u, 0u, 4294967284u, 3219486165u, 2211464602u, 0, FREXP_TOLERANCE, 0},
+{ 140, 1046255144u, 1635910526u, 0u, 4294967271u, 1072469544u, 1635910526u, 0, FREXP_TOLERANCE, 0},
+{ 141, 1077871417u, 2549219008u, 0u, 5u, 1072628537u, 2549219008u, 0, FREXP_TOLERANCE, 0},
+{ 142, 3231633258u, 3733639385u, 0u, 11u, 3220098922u, 3733639385u, 0, FREXP_TOLERANCE, 0},
+{ 143, 1082095089u, 1819374372u, 0u, 9u, 1072657905u, 1819374372u, 0, FREXP_TOLERANCE, 0},
+{ 144, 3202219056u, 2617077637u, 0u, 4294967279u, 3220044848u, 2617077637u, 0, FREXP_TOLERANCE, 0},
+{ 145, 1094345280u, 546465680u, 0u, 21u, 1072325184u, 546465680u, 0, FREXP_TOLERANCE, 0},
+{ 146, 1048653554u, 532401530u, 0u, 4294967274u, 1071722226u, 532401530u, 0, FREXP_TOLERANCE, 0},
+{ 147, 1044571091u, 2759019783u, 0u, 4294967270u, 1071834067u, 2759019783u, 0, FREXP_TOLERANCE, 0},
+{ 148, 3221570188u, 3554409630u, 0u, 2u, 3219473036u, 3554409630u, 0, FREXP_TOLERANCE, 0},
+{ 149, 3212931282u, 2527221960u, 0u, 4294967290u, 3219222738u, 2527221960u, 0, FREXP_TOLERANCE, 0},
+{ 150, 1099107978u, 2696971136u, 0u, 26u, 1071845002u, 2696971136u, 0, FREXP_TOLERANCE, 0},
+{ 151, 1097158000u, 173134582u, 0u, 24u, 1071992176u, 173134582u, 0, FREXP_TOLERANCE, 0},
+{ 152, 1087299442u, 2877794600u, 0u, 14u, 1072619378u, 2877794600u, 0, FREXP_TOLERANCE, 0},
+{ 153, 1086400474u, 547642046u, 0u, 14u, 1071720410u, 547642046u, 0, FREXP_TOLERANCE, 0},
+{ 154, 3197285510u, 3521286127u, 0u, 4294967275u, 3219305606u, 3521286127u, 0, FREXP_TOLERANCE, 0},
+{ 155, 1074860702u, 1231582831u, 0u, 3u, 1071714974u, 1231582831u, 0, FREXP_TOLERANCE, 0},
+{ 156, 1090971734u, 1653446832u, 0u, 18u, 1072097366u, 1653446832u, 0, FREXP_TOLERANCE, 0},
+{ 157, 1061342535u, 3762182190u, 0u, 4294967286u, 1071828295u, 3762182190u, 0, FREXP_TOLERANCE, 0},
+{ 158, 3252967851u, 2615360375u, 0u, 32u, 3219413419u, 2615360375u, 0, FREXP_TOLERANCE, 0},
+{ 159, 3200834423u, 2588067350u, 0u, 4294967278u, 3219708791u, 2588067350u, 0, FREXP_TOLERANCE, 0},
+{ 160, 3206610957u, 3551059728u, 0u, 4294967284u, 3219193869u, 3551059728u, 0, FREXP_TOLERANCE, 0},
+{ 161, 3206978856u, 845263327u, 0u, 4294967284u, 3219561768u, 845263327u, 0, FREXP_TOLERANCE, 0},
+{ 162, 1073415902u, 1749010288u, 0u, 1u, 1072367326u, 1749010288u, 0, FREXP_TOLERANCE, 0},
+{ 163, 3205576370u, 3092685191u, 0u, 4294967283u, 3219207858u, 3092685191u, 0, FREXP_TOLERANCE, 0},
+{ 164, 3190678390u, 2872219490u, 0u, 4294967268u, 3220038518u, 2872219490u, 0, FREXP_TOLERANCE, 0},
+{ 165, 3218315055u, 4107255722u, 0u, 4294967295u, 3219363631u, 4107255722u, 0, FREXP_TOLERANCE, 0},
+{ 166, 3205337291u, 3069068345u, 0u, 4294967282u, 3220017355u, 3069068345u, 0, FREXP_TOLERANCE, 0},
+{ 167, 3243990857u, 2294867524u, 0u, 23u, 3219873609u, 2294867524u, 0, FREXP_TOLERANCE, 0},
+{ 168, 3216653996u, 2860384670u, 0u, 4294967293u, 3219799724u, 2860384670u, 0, FREXP_TOLERANCE, 0},
+{ 169, 3193326350u, 2265437201u, 0u, 4294967271u, 3219540750u, 2265437201u, 0, FREXP_TOLERANCE, 0},
+{ 170, 3240198679u, 1234948614u, 0u, 20u, 3219227159u, 1234948614u, 0, FREXP_TOLERANCE, 0},
+{ 171, 3216359929u, 1186945904u, 0u, 4294967293u, 3219505657u, 1186945904u, 0, FREXP_TOLERANCE, 0},
+{ 172, 3251167793u, 1896750851u, 0u, 30u, 3219710513u, 1896750851u, 0, FREXP_TOLERANCE, 0},
+{ 173, 1081575478u, 3686084548u, 0u, 9u, 1072138294u, 3686084548u, 0, FREXP_TOLERANCE, 0},
+{ 174, 1079286273u, 3309277689u, 0u, 7u, 1071946241u, 3309277689u, 0, FREXP_TOLERANCE, 0},
+{ 175, 3223476240u, 3006860614u, 0u, 4u, 3219281936u, 3006860614u, 0, FREXP_TOLERANCE, 0},
+{ 176, 3231412671u, 2504194724u, 0u, 11u, 3219878335u, 2504194724u, 0, FREXP_TOLERANCE, 0},
+{ 177, 3236149260u, 1948717780u, 0u, 16u, 3219372044u, 1948717780u, 0, FREXP_TOLERANCE, 0},
+{ 178, 1048317852u, 3791803982u, 0u, 4294967273u, 1072435100u, 3791803982u, 0, FREXP_TOLERANCE, 0},
+{ 179, 1064345015u, 4272034420u, 0u, 4294967289u, 1071685047u, 4272034420u, 0, FREXP_TOLERANCE, 0},
+{ 180, 3192982124u, 1526175922u, 0u, 4294967271u, 3219196524u, 1526175922u, 0, FREXP_TOLERANCE, 0},
+{ 181, 3245817826u, 4108948538u, 0u, 25u, 3219603426u, 4108948538u, 0, FREXP_TOLERANCE, 0},
+{ 182, 1104691287u, 640541190u, 0u, 31u, 1072185431u, 640541190u, 0, FREXP_TOLERANCE, 0},
+{ 183, 3207257417u, 3259274853u, 0u, 4294967284u, 3219840329u, 3259274853u, 0, FREXP_TOLERANCE, 0},
+{ 184, 1082507103u, 3677038020u, 0u, 10u, 1072021343u, 3677038020u, 0, FREXP_TOLERANCE, 0},
+{ 185, 1083132498u, 3781708548u, 0u, 10u, 1072646738u, 3781708548u, 0, FREXP_TOLERANCE, 0},
+{ 186, 1096584871u, 1207386447u, 0u, 23u, 1072467623u, 1207386447u, 0, FREXP_TOLERANCE, 0},
+{ 187, 3188695272u, 3011191657u, 0u, 4294967266u, 3220152552u, 3011191657u, 0, FREXP_TOLERANCE, 0},
+{ 188, 1103798670u, 1096124830u, 0u, 30u, 1072341390u, 1096124830u, 0, FREXP_TOLERANCE, 0},
+{ 189, 1063235023u, 2540404725u, 0u, 4294967287u, 1072672207u, 2540404725u, 0, FREXP_TOLERANCE, 0},
+{ 190, 3240157452u, 4122845725u, 0u, 20u, 3219185932u, 4122845725u, 0, FREXP_TOLERANCE, 0},
+{ 191, 1083643710u, 311336721u, 0u, 11u, 1072109374u, 311336721u, 0, FREXP_TOLERANCE, 0},
+{ 192, 3214382367u, 4212533768u, 0u, 4294967291u, 3219625247u, 4212533768u, 0, FREXP_TOLERANCE, 0},
+{ 193, 1051139427u, 1769686293u, 0u, 4294967276u, 1072110947u, 1769686293u, 0, FREXP_TOLERANCE, 0},
+{ 194, 3240200923u, 3538602249u, 0u, 20u, 3219229403u, 3538602249u, 0, FREXP_TOLERANCE, 0},
+{ 195, 1078227549u, 508056696u, 0u, 6u, 1071936093u, 508056696u, 0, FREXP_TOLERANCE, 0},
+{ 196, 1103793878u, 776520138u, 0u, 30u, 1072336598u, 776520138u, 0, FREXP_TOLERANCE, 0},
+{ 197, 1102910577u, 4064962760u, 0u, 29u, 1072501873u, 4064962760u, 0, FREXP_TOLERANCE, 0},
+{ 198, 1077424413u, 819766631u, 0u, 5u, 1072181533u, 819766631u, 0, FREXP_TOLERANCE, 0},
+{ 199, 1074178362u, 2112385259u, 0u, 2u, 1072081210u, 2112385259u, 0, FREXP_TOLERANCE, 0},
+{ 200, 3227593179u, 1187058516u, 0u, 8u, 3219204571u, 1187058516u, 0, FREXP_TOLERANCE, 0},
+{ 201, 1082295059u, 2514398118u, 0u, 10u, 1071809299u, 2514398118u, 0, FREXP_TOLERANCE, 0},
+{ 202, 1076579751u, 870169764u, 0u, 4u, 1072385447u, 870169764u, 0, FREXP_TOLERANCE, 0},
+{ 203, 3246851392u, 1190259653u, 0u, 26u, 3219588416u, 1190259653u, 0, FREXP_TOLERANCE, 0},
+{ 204, 1069112254u, 3417249840u, 0u, 4294967293u, 1072257982u, 3417249840u, 0, FREXP_TOLERANCE, 0},
+{ 205, 3193663083u, 3467757357u, 0u, 4294967271u, 3219877483u, 3467757357u, 0, FREXP_TOLERANCE, 0},
+{ 206, 3215075200u, 2168175352u, 0u, 4294967292u, 3219269504u, 2168175352u, 0, FREXP_TOLERANCE, 0},
+{ 207, 3239643135u, 1508888184u, 0u, 19u, 3219720191u, 1508888184u, 0, FREXP_TOLERANCE, 0},
+{ 208, 1060430241u, 3524949092u, 0u, 4294967285u, 1071964577u, 3524949092u, 0, FREXP_TOLERANCE, 0},
+{ 209, 3197412883u, 166402802u, 0u, 4294967275u, 3219432979u, 166402802u, 0, FREXP_TOLERANCE, 0},
+{ 210, 3237198975u, 3572369260u, 0u, 17u, 3219373183u, 3572369260u, 0, FREXP_TOLERANCE, 0},
+{ 211, 1081866822u, 2441536203u, 0u, 9u, 1072429638u, 2441536203u, 0, FREXP_TOLERANCE, 0},
+{ 212, 3202753937u, 3658194573u, 0u, 4294967280u, 3219531153u, 3658194573u, 0, FREXP_TOLERANCE, 0},
+{ 213, 1062392908u, 2479742828u, 0u, 4294967287u, 1071830092u, 2479742828u, 0, FREXP_TOLERANCE, 0},
+{ 214, 1062342831u, 4214154303u, 0u, 4294967287u, 1071780015u, 4214154303u, 0, FREXP_TOLERANCE, 0},
+{ 215, 1082396794u, 426896765u, 0u, 10u, 1071911034u, 426896765u, 0, FREXP_TOLERANCE, 0},
+{ 216, 1066474375u, 2201754442u, 0u, 4294967291u, 1071717255u, 2201754442u, 0, FREXP_TOLERANCE, 0},
+{ 217, 3195629021u, 2055773734u, 0u, 4294967273u, 3219746269u, 2055773734u, 0, FREXP_TOLERANCE, 0},
+{ 218, 3239267288u, 291396537u, 0u, 19u, 3219344344u, 291396537u, 0, FREXP_TOLERANCE, 0},
+{ 219, 3236968033u, 874125203u, 0u, 17u, 3219142241u, 874125203u, 0, FREXP_TOLERANCE, 0},
+{ 220, 3210508124u, 4091098764u, 0u, 4294967287u, 3219945308u, 4091098764u, 0, FREXP_TOLERANCE, 0},
+{ 221, 1065716026u, 120488169u, 0u, 4294967290u, 1072007482u, 120488169u, 0, FREXP_TOLERANCE, 0},
+{ 222, 3241241441u, 1985269424u, 0u, 21u, 3219221345u, 1985269424u, 0, FREXP_TOLERANCE, 0},
+{ 223, 3206539410u, 2243036871u, 0u, 4294967283u, 3220170898u, 2243036871u, 0, FREXP_TOLERANCE, 0},
+{ 224, 3243941101u, 740033495u, 0u, 23u, 3219823853u, 740033495u, 0, FREXP_TOLERANCE, 0},
+{ 225, 3209424906u, 1176656356u, 0u, 4294967286u, 3219910666u, 1176656356u, 0, FREXP_TOLERANCE, 0},
+{ 226, 1074261978u, 3588756231u, 0u, 2u, 1072164826u, 3588756231u, 0, FREXP_TOLERANCE, 0},
+{ 227, 3252816791u, 3037249392u, 0u, 32u, 3219262359u, 3037249392u, 0, FREXP_TOLERANCE, 0},
+{ 228, 1061635587u, 1173102190u, 0u, 4294967286u, 1072121347u, 1173102190u, 0, FREXP_TOLERANCE, 0},
+{ 229, 3237209581u, 2882725208u, 0u, 17u, 3219383789u, 2882725208u, 0, FREXP_TOLERANCE, 0},
+{ 230, 1071440059u, 69225090u, 0u, 4294967295u, 1072488635u, 69225090u, 0, FREXP_TOLERANCE, 0},
+{ 231, 3212663474u, 272319256u, 0u, 4294967289u, 3220003506u, 272319256u, 0, FREXP_TOLERANCE, 0},
+{ 232, 1072073912u, 2493997123u, 0u, 0u, 1072073912u, 2493997123u, 0, FREXP_TOLERANCE, 0},
+{ 233, 1057720186u, 188610379u, 0u, 4294967282u, 1072400250u, 188610379u, 0, FREXP_TOLERANCE, 0},
+{ 234, 3232757923u, 2209647371u, 0u, 12u, 3220175011u, 2209647371u, 0, FREXP_TOLERANCE, 0},
+{ 235, 3236758517u, 1990439193u, 0u, 16u, 3219981301u, 1990439193u, 0, FREXP_TOLERANCE, 0},
+{ 236, 1078073146u, 622849962u, 0u, 6u, 1071781690u, 622849962u, 0, FREXP_TOLERANCE, 0},
+{ 237, 1057135741u, 756052458u, 0u, 4294967282u, 1071815805u, 756052458u, 0, FREXP_TOLERANCE, 0},
+{ 238, 1081649113u, 2247475162u, 0u, 9u, 1072211929u, 2247475162u, 0, FREXP_TOLERANCE, 0},
+{ 239, 1061623064u, 3878055211u, 0u, 4294967286u, 1072108824u, 3878055211u, 0, FREXP_TOLERANCE, 0},
+{ 240, 3222407050u, 2979438623u, 0u, 3u, 3219261322u, 2979438623u, 0, FREXP_TOLERANCE, 0},
+{ 241, 3195290997u, 2676398686u, 0u, 4294967273u, 3219408245u, 2676398686u, 0, FREXP_TOLERANCE, 0},
+{ 242, 1105124431u, 3631096636u, 0u, 31u, 1072618575u, 3631096636u, 0, FREXP_TOLERANCE, 0},
+{ 243, 1065079390u, 1697791764u, 0u, 4294967289u, 1072419422u, 1697791764u, 0, FREXP_TOLERANCE, 0},
+{ 244, 3198136112u, 2299842819u, 0u, 4294967275u, 3220156208u, 2299842819u, 0, FREXP_TOLERANCE, 0},
+{ 245, 1078084768u, 1931502677u, 0u, 6u, 1071793312u, 1931502677u, 0, FREXP_TOLERANCE, 0},
+{ 246, 3215264397u, 3016456382u, 0u, 4294967292u, 3219458701u, 3016456382u, 0, FREXP_TOLERANCE, 0},
+{ 247, 1072253426u, 343404215u, 0u, 0u, 1072253426u, 343404215u, 0, FREXP_TOLERANCE, 0},
+{ 248, 1061072607u, 4266232536u, 0u, 4294967285u, 1072606943u, 4266232536u, 0, FREXP_TOLERANCE, 0},
+{ 249, 3241230836u, 4140316002u, 0u, 21u, 3219210740u, 4140316002u, 0, FREXP_TOLERANCE, 0},
+{ 250, 1082896196u, 868256971u, 0u, 10u, 1072410436u, 868256971u, 0, FREXP_TOLERANCE, 0},
+{ 251, 1075422810u, 1864139509u, 0u, 3u, 1072277082u, 1864139509u, 0, FREXP_TOLERANCE, 0},
+{ 252, 3187675097u, 3084482407u, 0u, 4294967266u, 3219132377u, 3084482407u, 0, FREXP_TOLERANCE, 0},
+{ 253, 3220191323u, 2427162817u, 0u, 1u, 3219142747u, 2427162817u, 0, FREXP_TOLERANCE, 0},
+{ 254, 3234748208u, 2715105792u, 0u, 14u, 3220068144u, 2715105792u, 0, FREXP_TOLERANCE, 0},
+{ 255, 1064600512u, 3943389284u, 0u, 4294967289u, 1071940544u, 3943389284u, 0, FREXP_TOLERANCE, 0},
+{ 256, 1046724025u, 3626825684u, 0u, 4294967272u, 1071889849u, 3626825684u, 0, FREXP_TOLERANCE, 0},
+{ 257, 1045423002u, 967350972u, 0u, 4294967270u, 1072685978u, 967350972u, 0, FREXP_TOLERANCE, 0},
+{ 258, 1093012318u, 448002663u, 0u, 20u, 1072040798u, 448002663u, 0, FREXP_TOLERANCE, 0},
+{ 259, 3251845859u, 105058217u, 0u, 31u, 3219340003u, 105058217u, 0, FREXP_TOLERANCE, 0},
+{ 260, 1069733884u, 171786224u, 0u, 4294967294u, 1071831036u, 171786224u, 0, FREXP_TOLERANCE, 0},
+{ 261, 3189614508u, 2863482262u, 0u, 4294967267u, 3220023212u, 2863482262u, 0, FREXP_TOLERANCE, 0},
+{ 262, 3204997271u, 877784425u, 0u, 4294967282u, 3219677335u, 877784425u, 0, FREXP_TOLERANCE, 0},
+{ 263, 3202629313u, 2801782962u, 0u, 4294967280u, 3219406529u, 2801782962u, 0, FREXP_TOLERANCE, 0},
+{ 264, 3213604117u, 762347195u, 0u, 4294967290u, 3219895573u, 762347195u, 0, FREXP_TOLERANCE, 0},
+{ 265, 3233486727u, 2317950339u, 0u, 13u, 3219855239u, 2317950339u, 0, FREXP_TOLERANCE, 0},
+{ 266, 3246333414u, 2135700283u, 0u, 25u, 3220119014u, 2135700283u, 0, FREXP_TOLERANCE, 0},
+{ 267, 1056516397u, 4171919805u, 0u, 4294967281u, 1072245037u, 4171919805u, 0, FREXP_TOLERANCE, 0},
+{ 268, 1082858682u, 2180920863u, 0u, 10u, 1072372922u, 2180920863u, 0, FREXP_TOLERANCE, 0},
+{ 269, 3220149084u, 1918836931u, 0u, 0u, 3220149084u, 1918836931u, 0, FREXP_TOLERANCE, 0},
+{ 270, 1083603224u, 3137821660u, 0u, 11u, 1072068888u, 3137821660u, 0, FREXP_TOLERANCE, 0},
+{ 271, 1103902874u, 3456203663u, 0u, 30u, 1072445594u, 3456203663u, 0, FREXP_TOLERANCE, 0},
+{ 272, 3235600523u, 2335688936u, 0u, 15u, 3219871883u, 2335688936u, 0, FREXP_TOLERANCE, 0},
+{ 273, 1042279322u, 4170235262u, 0u, 4294967267u, 1072688026u, 4170235262u, 0, FREXP_TOLERANCE, 0},
+{ 274, 1051824459u, 521583737u, 0u, 4294967277u, 1071747403u, 521583737u, 0, FREXP_TOLERANCE, 0},
+{ 275, 1081348303u, 1296623194u, 0u, 9u, 1071911119u, 1296623194u, 0, FREXP_TOLERANCE, 0},
+{ 276, 3250673860u, 2442872540u, 0u, 30u, 3219216580u, 2442872540u, 0, FREXP_TOLERANCE, 0},
+{ 277, 1061684277u, 289979405u, 0u, 4294967286u, 1072170037u, 289979405u, 0, FREXP_TOLERANCE, 0},
+{ 278, 1049514449u, 3865737145u, 0u, 4294967274u, 1072583121u, 3865737145u, 0, FREXP_TOLERANCE, 0},
+{ 279, 1075298944u, 3699090239u, 0u, 3u, 1072153216u, 3699090239u, 0, FREXP_TOLERANCE, 0},
+{ 280, 1054539840u, 3259249360u, 0u, 4294967279u, 1072365632u, 3259249360u, 0, FREXP_TOLERANCE, 0},
+{ 281, 1096418100u, 1619819023u, 0u, 23u, 1072300852u, 1619819023u, 0, FREXP_TOLERANCE, 0},
+{ 282, 1045993352u, 1022642459u, 0u, 4294967271u, 1072207752u, 1022642459u, 0, FREXP_TOLERANCE, 0},
+{ 283, 1081433004u, 19455098u, 0u, 9u, 1071995820u, 19455098u, 0, FREXP_TOLERANCE, 0},
+{ 284, 3229182089u, 2096003654u, 0u, 9u, 3219744905u, 2096003654u, 0, FREXP_TOLERANCE, 0},
+{ 285, 1076297936u, 3803689997u, 0u, 4u, 1072103632u, 3803689997u, 0, FREXP_TOLERANCE, 0},
+{ 286, 1071630912u, 2263729518u, 0u, 4294967295u, 1072679488u, 2263729518u, 0, FREXP_TOLERANCE, 0},
+{ 287, 1101357261u, 2816837387u, 0u, 28u, 1071997133u, 2816837387u, 0, FREXP_TOLERANCE, 0},
+{ 288, 1063422305u, 2597606398u, 0u, 4294967288u, 1071810913u, 2597606398u, 0, FREXP_TOLERANCE, 0},
+{ 289, 1069100169u, 3680967506u, 0u, 4294967293u, 1072245897u, 3680967506u, 0, FREXP_TOLERANCE, 0},
+{ 290, 1040201163u, 179224723u, 0u, 4294967266u, 1071658443u, 179224723u, 0, FREXP_TOLERANCE, 0},
+{ 291, 3188629767u, 978126928u, 0u, 4294967266u, 3220087047u, 978126928u, 0, FREXP_TOLERANCE, 0},
+{ 292, 1101553990u, 4047893399u, 0u, 28u, 1072193862u, 4047893399u, 0, FREXP_TOLERANCE, 0},
+{ 293, 3222322045u, 4059818629u, 0u, 3u, 3219176317u, 4059818629u, 0, FREXP_TOLERANCE, 0},
+{ 294, 1042678728u, 3640293589u, 0u, 4294967268u, 1072038856u, 3640293589u, 0, FREXP_TOLERANCE, 0},
+{ 295, 3248464040u, 3383497159u, 0u, 27u, 3220152488u, 3383497159u, 0, FREXP_TOLERANCE, 0},
+{ 296, 1070002807u, 1527313008u, 0u, 4294967294u, 1072099959u, 1527313008u, 0, FREXP_TOLERANCE, 0},
+{ 297, 3202707679u, 2599946514u, 0u, 4294967280u, 3219484895u, 2599946514u, 0, FREXP_TOLERANCE, 0},
+{ 298, 1104170406u, 2738675352u, 0u, 31u, 1071664550u, 2738675352u, 0, FREXP_TOLERANCE, 0},
+{ 299, 1105232623u, 3616571377u, 0u, 32u, 1071678191u, 3616571377u, 0, FREXP_TOLERANCE, 0},
+{ 300, 1060859316u, 1130603218u, 0u, 4294967285u, 1072393652u, 1130603218u, 0, FREXP_TOLERANCE, 0},
+{ 301, 1076028796u, 3859211180u, 0u, 4u, 1071834492u, 3859211180u, 0, FREXP_TOLERANCE, 0},
+{ 302, 1067940450u, 1744531824u, 0u, 4294967292u, 1072134754u, 1744531824u, 0, FREXP_TOLERANCE, 0},
+{ 303, 1042831340u, 1958025850u, 0u, 4294967268u, 1072191468u, 1958025850u, 0, FREXP_TOLERANCE, 0},
+{ 304, 3236511256u, 2472176453u, 0u, 16u, 3219734040u, 2472176453u, 0, FREXP_TOLERANCE, 0},
+{ 305, 3233107089u, 182132862u, 0u, 13u, 3219475601u, 182132862u, 0, FREXP_TOLERANCE, 0},
+{ 306, 3250520938u, 3924356991u, 0u, 29u, 3220112234u, 3924356991u, 0, FREXP_TOLERANCE, 0},
+{ 307, 3230501884u, 35632886u, 0u, 10u, 3220016124u, 35632886u, 0, FREXP_TOLERANCE, 0},
+{ 308, 3209806504u, 1453402523u, 0u, 4294967287u, 3219243688u, 1453402523u, 0, FREXP_TOLERANCE, 0},
+{ 309, 1083522102u, 743225214u, 0u, 11u, 1071987766u, 743225214u, 0, FREXP_TOLERANCE, 0},
+{ 310, 3202890678u, 142917400u, 0u, 4294967280u, 3219667894u, 142917400u, 0, FREXP_TOLERANCE, 0},
+{ 311, 1080684976u, 1472665012u, 0u, 8u, 1072296368u, 1472665012u, 0, FREXP_TOLERANCE, 0},
+{ 312, 3203138231u, 256588219u, 0u, 4294967280u, 3219915447u, 256588219u, 0, FREXP_TOLERANCE, 0},
+{ 313, 1094982162u, 1062927000u, 0u, 22u, 1071913490u, 1062927000u, 0, FREXP_TOLERANCE, 0},
+{ 314, 1061134072u, 931677439u, 0u, 4294967285u, 1072668408u, 931677439u, 0, FREXP_TOLERANCE, 0},
+{ 315, 1058377732u, 2320910576u, 0u, 4294967283u, 1072009220u, 2320910576u, 0, FREXP_TOLERANCE, 0},
+{ 316, 1055663370u, 288059864u, 0u, 4294967280u, 1072440586u, 288059864u, 0, FREXP_TOLERANCE, 0},
+{ 317, 1078958093u, 1448349062u, 0u, 6u, 1072666637u, 1448349062u, 0, FREXP_TOLERANCE, 0},
+{ 318, 3199478070u, 3454027134u, 0u, 4294967277u, 3219401014u, 3454027134u, 0, FREXP_TOLERANCE, 0},
+{ 319, 3237458798u, 4215445172u, 0u, 17u, 3219633006u, 4215445172u, 0, FREXP_TOLERANCE, 0},
+{ 320, 3196654963u, 2231888973u, 0u, 4294967274u, 3219723635u, 2231888973u, 0, FREXP_TOLERANCE, 0},
+{ 321, 3246632231u, 40413554u, 0u, 26u, 3219369255u, 40413554u, 0, FREXP_TOLERANCE, 0},
+{ 322, 3232578253u, 983832844u, 0u, 12u, 3219995341u, 983832844u, 0, FREXP_TOLERANCE, 0},
+{ 323, 3223721534u, 3995725873u, 0u, 4u, 3219527230u, 3995725873u, 0, FREXP_TOLERANCE, 0},
+{ 324, 1050082319u, 777231627u, 0u, 4294967275u, 1072102415u, 777231627u, 0, FREXP_TOLERANCE, 0},
+{ 325, 1040986626u, 672789828u, 0u, 4294967266u, 1072443906u, 672789828u, 0, FREXP_TOLERANCE, 0},
+{ 326, 3253385962u, 2982787335u, 0u, 32u, 3219831530u, 2982787335u, 0, FREXP_TOLERANCE, 0},
+{ 327, 1068390875u, 2075971825u, 0u, 4294967292u, 1072585179u, 2075971825u, 0, FREXP_TOLERANCE, 0},
+{ 328, 1070166500u, 4034633931u, 0u, 4294967294u, 1072263652u, 4034633931u, 0, FREXP_TOLERANCE, 0},
+{ 329, 3210046177u, 1018222907u, 0u, 4294967287u, 3219483361u, 1018222907u, 0, FREXP_TOLERANCE, 0},
+{ 330, 3244621407u, 3090050495u, 0u, 24u, 3219455583u, 3090050495u, 0, FREXP_TOLERANCE, 0},
+{ 331, 1067680885u, 937732557u, 0u, 4294967292u, 1071875189u, 937732557u, 0, FREXP_TOLERANCE, 0},
+{ 332, 3200798890u, 2557898276u, 0u, 4294967278u, 3219673258u, 2557898276u, 0, FREXP_TOLERANCE, 0},
+{ 333, 1078342316u, 130346162u, 0u, 6u, 1072050860u, 130346162u, 0, FREXP_TOLERANCE, 0},
+{ 334, 3223590310u, 275568693u, 0u, 4u, 3219396006u, 275568693u, 0, FREXP_TOLERANCE, 0},
+{ 335, 1042898869u, 3807416441u, 0u, 4294967268u, 1072258997u, 3807416441u, 0, FREXP_TOLERANCE, 0},
+{ 336, 1075961161u, 3706820266u, 0u, 4u, 1071766857u, 3706820266u, 0, FREXP_TOLERANCE, 0},
+{ 337, 3216099005u, 1710131411u, 0u, 4294967293u, 3219244733u, 1710131411u, 0, FREXP_TOLERANCE, 0},
+{ 338, 1078123323u, 1900790503u, 0u, 6u, 1071831867u, 1900790503u, 0, FREXP_TOLERANCE, 0},
+{ 339, 3238819361u, 3420420033u, 0u, 18u, 3219944993u, 3420420033u, 0, FREXP_TOLERANCE, 0},
+{ 340, 3210844787u, 588423066u, 0u, 4294967288u, 3219233395u, 588423066u, 0, FREXP_TOLERANCE, 0},
+{ 341, 1049684114u, 1160162008u, 0u, 4294967275u, 1071704210u, 1160162008u, 0, FREXP_TOLERANCE, 0},
+{ 342, 3246307879u, 4265764460u, 0u, 25u, 3220093479u, 4265764460u, 0, FREXP_TOLERANCE, 0},
+{ 343, 1102543434u, 366653268u, 0u, 29u, 1072134730u, 366653268u, 0, FREXP_TOLERANCE, 0},
+{ 344, 3188814424u, 466059202u, 0u, 4294967267u, 3219223128u, 466059202u, 0, FREXP_TOLERANCE, 0},
+{ 345, 3226627739u, 1325936170u, 0u, 7u, 3219287707u, 1325936170u, 0, FREXP_TOLERANCE, 0},
+{ 346, 3221436876u, 680097612u, 0u, 2u, 3219339724u, 680097612u, 0, FREXP_TOLERANCE, 0},
+{ 347, 3240391116u, 1827735934u, 0u, 20u, 3219419596u, 1827735934u, 0, FREXP_TOLERANCE, 0},
+{ 348, 3200554324u, 2875599271u, 0u, 4294967278u, 3219428692u, 2875599271u, 0, FREXP_TOLERANCE, 0},
+{ 349, 3191030402u, 3117037091u, 0u, 4294967269u, 3219341954u, 3117037091u, 0, FREXP_TOLERANCE, 0},
+{ 350, 3239246636u, 15838845u, 0u, 19u, 3219323692u, 15838845u, 0, FREXP_TOLERANCE, 0},
+{ 351, 1051974004u, 749718883u, 0u, 4294967277u, 1071896948u, 749718883u, 0, FREXP_TOLERANCE, 0},
+{ 352, 3223587064u, 1523766569u, 0u, 4u, 3219392760u, 1523766569u, 0, FREXP_TOLERANCE, 0},
+{ 353, 1044833651u, 1966536294u, 0u, 4294967270u, 1072096627u, 1966536294u, 0, FREXP_TOLERANCE, 0},
+{ 354, 3250158026u, 699164258u, 0u, 29u, 3219749322u, 699164258u, 0, FREXP_TOLERANCE, 0},
+{ 355, 1098048435u, 3759049394u, 0u, 25u, 1071834035u, 3759049394u, 0, FREXP_TOLERANCE, 0},
+{ 356, 1106085272u, 1183789499u, 0u, 32u, 1072530840u, 1183789499u, 0, FREXP_TOLERANCE, 0},
+{ 357, 1081201623u, 1970107747u, 0u, 9u, 1071764439u, 1970107747u, 0, FREXP_TOLERANCE, 0},
+{ 358, 1095245453u, 2308233883u, 0u, 22u, 1072176781u, 2308233883u, 0, FREXP_TOLERANCE, 0},
+{ 359, 1084756444u, 1491017852u, 0u, 12u, 1072173532u, 1491017852u, 0, FREXP_TOLERANCE, 0},
+{ 360, 1041444355u, 1723375725u, 0u, 4294967267u, 1071853059u, 1723375725u, 0, FREXP_TOLERANCE, 0},
+{ 361, 3216630070u, 1141349287u, 0u, 4294967293u, 3219775798u, 1141349287u, 0, FREXP_TOLERANCE, 0},
+{ 362, 1097465301u, 3403438584u, 0u, 24u, 1072299477u, 3403438584u, 0, FREXP_TOLERANCE, 0},
+{ 363, 3230571908u, 1711085243u, 0u, 10u, 3220086148u, 1711085243u, 0, FREXP_TOLERANCE, 0},
+{ 364, 3250239076u, 1377484108u, 0u, 29u, 3219830372u, 1377484108u, 0, FREXP_TOLERANCE, 0},
+{ 365, 1098385019u, 2880275004u, 0u, 25u, 1072170619u, 2880275004u, 0, FREXP_TOLERANCE, 0},
+{ 366, 1084039594u, 1611394950u, 0u, 11u, 1072505258u, 1611394950u, 0, FREXP_TOLERANCE, 0},
+{ 367, 3234221435u, 2626629370u, 0u, 14u, 3219541371u, 2626629370u, 0, FREXP_TOLERANCE, 0},
+{ 368, 1063771493u, 1499080813u, 0u, 4294967288u, 1072160101u, 1499080813u, 0, FREXP_TOLERANCE, 0},
+{ 369, 1055231263u, 3936262414u, 0u, 4294967280u, 1072008479u, 3936262414u, 0, FREXP_TOLERANCE, 0},
+{ 370, 1103919063u, 3175668759u, 0u, 30u, 1072461783u, 3175668759u, 0, FREXP_TOLERANCE, 0},
+{ 371, 3207981719u, 1270950554u, 0u, 4294967285u, 3219516055u, 1270950554u, 0, FREXP_TOLERANCE, 0},
+{ 372, 3194616071u, 3680565379u, 0u, 4294967272u, 3219781895u, 3680565379u, 0, FREXP_TOLERANCE, 0},
+{ 373, 3208148223u, 1066985223u, 0u, 4294967285u, 3219682559u, 1066985223u, 0, FREXP_TOLERANCE, 0},
+{ 374, 3221613219u, 4089383168u, 0u, 2u, 3219516067u, 4089383168u, 0, FREXP_TOLERANCE, 0},
+{ 375, 3217058839u, 4017329311u, 0u, 4294967294u, 3219155991u, 4017329311u, 0, FREXP_TOLERANCE, 0},
+{ 376, 3208334452u, 1667591498u, 0u, 4294967285u, 3219868788u, 1667591498u, 0, FREXP_TOLERANCE, 0},
+{ 377, 1088164157u, 3154656624u, 0u, 15u, 1072435517u, 3154656624u, 0, FREXP_TOLERANCE, 0},
+{ 378, 1061894279u, 3886344038u, 0u, 4294967286u, 1072380039u, 3886344038u, 0, FREXP_TOLERANCE, 0},
+{ 379, 1050652945u, 977586119u, 0u, 4294967275u, 1072673041u, 977586119u, 0, FREXP_TOLERANCE, 0},
+{ 380, 3209762784u, 953839852u, 0u, 4294967287u, 3219199968u, 953839852u, 0, FREXP_TOLERANCE, 0},
+{ 381, 1104965247u, 143071571u, 0u, 31u, 1072459391u, 143071571u, 0, FREXP_TOLERANCE, 0},
+{ 382, 3206165386u, 913097445u, 0u, 4294967283u, 3219796874u, 913097445u, 0, FREXP_TOLERANCE, 0},
+{ 383, 3190565456u, 1371169579u, 0u, 4294967268u, 3219925584u, 1371169579u, 0, FREXP_TOLERANCE, 0},
+{ 384, 1057079837u, 2594818628u, 0u, 4294967282u, 1071759901u, 2594818628u, 0, FREXP_TOLERANCE, 0},
+{ 385, 3251793336u, 2259342224u, 0u, 31u, 3219287480u, 2259342224u, 0, FREXP_TOLERANCE, 0},
+{ 386, 3217432469u, 1824221478u, 0u, 4294967294u, 3219529621u, 1824221478u, 0, FREXP_TOLERANCE, 0},
+{ 387, 3246834775u, 1576604497u, 0u, 26u, 3219571799u, 1576604497u, 0, FREXP_TOLERANCE, 0},
+{ 388, 1079368611u, 185078728u, 0u, 7u, 1072028579u, 185078728u, 0, FREXP_TOLERANCE, 0},
+{ 389, 3221679427u, 444800035u, 0u, 2u, 3219582275u, 444800035u, 0, FREXP_TOLERANCE, 0},
+{ 390, 3243343143u, 1734989302u, 0u, 23u, 3219225895u, 1734989302u, 0, FREXP_TOLERANCE, 0},
+{ 391, 1072748883u, 130452005u, 0u, 1u, 1071700307u, 130452005u, 0, FREXP_TOLERANCE, 0},
+{ 392, 1041548088u, 2158433515u, 0u, 4294967267u, 1071956792u, 2158433515u, 0, FREXP_TOLERANCE, 0},
+{ 393, 3234695968u, 1941318385u, 0u, 14u, 3220015904u, 1941318385u, 0, FREXP_TOLERANCE, 0},
+{ 394, 1045807374u, 792193370u, 0u, 4294967271u, 1072021774u, 792193370u, 0, FREXP_TOLERANCE, 0},
+{ 395, 3238299666u, 1299392207u, 0u, 18u, 3219425298u, 1299392207u, 0, FREXP_TOLERANCE, 0},
+{ 396, 3212131720u, 3205732280u, 0u, 4294967289u, 3219471752u, 3205732280u, 0, FREXP_TOLERANCE, 0},
+{ 397, 1098698804u, 3035093505u, 0u, 25u, 1072484404u, 3035093505u, 0, FREXP_TOLERANCE, 0},
+{ 398, 1052187689u, 3287702190u, 0u, 4294967277u, 1072110633u, 3287702190u, 0, FREXP_TOLERANCE, 0},
+{ 399, 3246676260u, 2160225215u, 0u, 26u, 3219413284u, 2160225215u, 0, FREXP_TOLERANCE, 0},
+{ 400, 1102624859u, 836655570u, 0u, 29u, 1072216155u, 836655570u, 0, FREXP_TOLERANCE, 0},
+{ 401, 1096723626u, 3360816360u, 0u, 23u, 1072606378u, 3360816360u, 0, FREXP_TOLERANCE, 0},
+{ 402, 3246176356u, 172860634u, 0u, 25u, 3219961956u, 172860634u, 0, FREXP_TOLERANCE, 0},
+{ 403, 1070995788u, 146831910u, 0u, 4294967295u, 1072044364u, 146831910u, 0, FREXP_TOLERANCE, 0},
+{ 404, 1051558014u, 2340722078u, 0u, 4294967276u, 1072529534u, 2340722078u, 0, FREXP_TOLERANCE, 0},
+{ 405, 3230416351u, 1603798153u, 0u, 10u, 3219930591u, 1603798153u, 0, FREXP_TOLERANCE, 0},
+{ 406, 3207725532u, 1099413093u, 0u, 4294967285u, 3219259868u, 1099413093u, 0, FREXP_TOLERANCE, 0},
+{ 407, 3246678378u, 2429340443u, 0u, 26u, 3219415402u, 2429340443u, 0, FREXP_TOLERANCE, 0},
+{ 408, 3190303581u, 3223770005u, 0u, 4294967268u, 3219663709u, 3223770005u, 0, FREXP_TOLERANCE, 0},
+{ 409, 1075882959u, 955542166u, 0u, 4u, 1071688655u, 955542166u, 0, FREXP_TOLERANCE, 0},
+{ 410, 3230415151u, 275583938u, 0u, 10u, 3219929391u, 275583938u, 0, FREXP_TOLERANCE, 0},
+{ 411, 1092971882u, 513397822u, 0u, 20u, 1072000362u, 513397822u, 0, FREXP_TOLERANCE, 0},
+{ 412, 1090646554u, 2089321329u, 0u, 18u, 1071772186u, 2089321329u, 0, FREXP_TOLERANCE, 0},
+{ 413, 3193169876u, 2782073372u, 0u, 4294967271u, 3219384276u, 2782073372u, 0, FREXP_TOLERANCE, 0},
+{ 414, 1046063872u, 4023829068u, 0u, 4294967271u, 1072278272u, 4023829068u, 0, FREXP_TOLERANCE, 0},
+{ 415, 1098564822u, 3242223094u, 0u, 25u, 1072350422u, 3242223094u, 0, FREXP_TOLERANCE, 0},
+{ 416, 3194111199u, 4264674108u, 0u, 4294967272u, 3219277023u, 4264674108u, 0, FREXP_TOLERANCE, 0},
+{ 417, 3238510821u, 3506346169u, 0u, 18u, 3219636453u, 3506346169u, 0, FREXP_TOLERANCE, 0},
+{ 418, 1047020885u, 1742757458u, 0u, 4294967272u, 1072186709u, 1742757458u, 0, FREXP_TOLERANCE, 0},
+{ 419, 3192664477u, 1265459564u, 0u, 4294967270u, 3219927453u, 1265459564u, 0, FREXP_TOLERANCE, 0},
+{ 420, 3193450280u, 3650514880u, 0u, 4294967271u, 3219664680u, 3650514880u, 0, FREXP_TOLERANCE, 0},
+{ 421, 1081755890u, 1525260440u, 0u, 9u, 1072318706u, 1525260440u, 0, FREXP_TOLERANCE, 0},
+{ 422, 3235452527u, 2612331392u, 0u, 15u, 3219723887u, 2612331392u, 0, FREXP_TOLERANCE, 0},
+{ 423, 3248668920u, 1263613754u, 0u, 28u, 3219308792u, 1263613754u, 0, FREXP_TOLERANCE, 0},
+{ 424, 3219096387u, 635677201u, 0u, 4294967295u, 3220144963u, 635677201u, 0, FREXP_TOLERANCE, 0},
+{ 425, 3206272087u, 4140947288u, 0u, 4294967283u, 3219903575u, 4140947288u, 0, FREXP_TOLERANCE, 0},
+{ 426, 3200792376u, 2013265346u, 0u, 4294967278u, 3219666744u, 2013265346u, 0, FREXP_TOLERANCE, 0},
+{ 427, 3249974392u, 1912759945u, 0u, 29u, 3219565688u, 1912759945u, 0, FREXP_TOLERANCE, 0},
+{ 428, 3237045253u, 1351396825u, 0u, 17u, 3219219461u, 1351396825u, 0, FREXP_TOLERANCE, 0},
+{ 429, 3248205162u, 1001433078u, 0u, 27u, 3219893610u, 1001433078u, 0, FREXP_TOLERANCE, 0},
+{ 430, 3206926643u, 2741676659u, 0u, 4294967284u, 3219509555u, 2741676659u, 0, FREXP_TOLERANCE, 0},
+{ 431, 1080923606u, 1088945233u, 0u, 8u, 1072534998u, 1088945233u, 0, FREXP_TOLERANCE, 0},
+{ 432, 1085095743u, 3986114865u, 0u, 12u, 1072512831u, 3986114865u, 0, FREXP_TOLERANCE, 0},
+{ 433, 3215734057u, 831239754u, 0u, 4294967292u, 3219928361u, 831239754u, 0, FREXP_TOLERANCE, 0},
+{ 434, 1099828675u, 3071308141u, 0u, 26u, 1072565699u, 3071308141u, 0, FREXP_TOLERANCE, 0},
+{ 435, 3225834497u, 3473592372u, 0u, 6u, 3219543041u, 3473592372u, 0, FREXP_TOLERANCE, 0},
+{ 436, 1102759382u, 1309576357u, 0u, 29u, 1072350678u, 1309576357u, 0, FREXP_TOLERANCE, 0},
+{ 437, 3251186706u, 2042340367u, 0u, 30u, 3219729426u, 2042340367u, 0, FREXP_TOLERANCE, 0},
+{ 438, 1091945628u, 2062772374u, 0u, 19u, 1072022684u, 2062772374u, 0, FREXP_TOLERANCE, 0},
+{ 439, 3194765687u, 1840632537u, 0u, 4294967272u, 3219931511u, 1840632537u, 0, FREXP_TOLERANCE, 0},
+{ 440, 1096533424u, 807510337u, 0u, 23u, 1072416176u, 807510337u, 0, FREXP_TOLERANCE, 0},
+{ 441, 3231451722u, 144814872u, 0u, 11u, 3219917386u, 144814872u, 0, FREXP_TOLERANCE, 0},
+{ 442, 3212698915u, 2282965697u, 0u, 4294967289u, 3220038947u, 2282965697u, 0, FREXP_TOLERANCE, 0},
+{ 443, 1071236430u, 2552499583u, 0u, 4294967295u, 1072285006u, 2552499583u, 0, FREXP_TOLERANCE, 0},
+{ 444, 3229111426u, 1470130815u, 0u, 9u, 3219674242u, 1470130815u, 0, FREXP_TOLERANCE, 0},
+{ 445, 3243093065u, 2858583811u, 0u, 22u, 3220024393u, 2858583811u, 0, FREXP_TOLERANCE, 0},
+{ 446, 1089760910u, 6360994u, 0u, 17u, 1071935118u, 6360994u, 0, FREXP_TOLERANCE, 0},
+{ 447, 3198264929u, 1614537194u, 0u, 4294967276u, 3219236449u, 1614537194u, 0, FREXP_TOLERANCE, 0},
+{ 448, 1075198900u, 4088705365u, 0u, 3u, 1072053172u, 4088705365u, 0, FREXP_TOLERANCE, 0},
+{ 449, 3250939070u, 3545570051u, 0u, 30u, 3219481790u, 3545570051u, 0, FREXP_TOLERANCE, 0},
+{ 450, 1065221325u, 1629217700u, 0u, 4294967289u, 1072561357u, 1629217700u, 0, FREXP_TOLERANCE, 0},
+{ 451, 1072744324u, 1813392963u, 0u, 1u, 1071695748u, 1813392963u, 0, FREXP_TOLERANCE, 0},
+{ 452, 3235313361u, 3772501596u, 0u, 15u, 3219584721u, 3772501596u, 0, FREXP_TOLERANCE, 0},
+{ 453, 3196802686u, 2406734491u, 0u, 4294967274u, 3219871358u, 2406734491u, 0, FREXP_TOLERANCE, 0},
+{ 454, 1042055360u, 89226663u, 0u, 4294967267u, 1072464064u, 89226663u, 0, FREXP_TOLERANCE, 0},
+{ 455, 3195751081u, 1618759139u, 0u, 4294967273u, 3219868329u, 1618759139u, 0, FREXP_TOLERANCE, 0},
+{ 456, 3194723421u, 3888234802u, 0u, 4294967272u, 3219889245u, 3888234802u, 0, FREXP_TOLERANCE, 0},
+{ 457, 1055357248u, 3590035633u, 0u, 4294967280u, 1072134464u, 3590035633u, 0, FREXP_TOLERANCE, 0},
+{ 458, 3212424262u, 2892456615u, 0u, 4294967289u, 3219764294u, 2892456615u, 0, FREXP_TOLERANCE, 0},
+{ 459, 3189943060u, 2431246964u, 0u, 4294967268u, 3219303188u, 2431246964u, 0, FREXP_TOLERANCE, 0},
+{ 460, 3241512456u, 183850734u, 0u, 21u, 3219492360u, 183850734u, 0, FREXP_TOLERANCE, 0},
+{ 461, 1089501101u, 3088319870u, 0u, 17u, 1071675309u, 3088319870u, 0, FREXP_TOLERANCE, 0},
+{ 462, 3211544311u, 862225364u, 0u, 4294967288u, 3219932919u, 862225364u, 0, FREXP_TOLERANCE, 0},
+{ 463, 3235294664u, 3495352775u, 0u, 15u, 3219566024u, 3495352775u, 0, FREXP_TOLERANCE, 0},
+{ 464, 1058576726u, 596957268u, 0u, 4294967283u, 1072208214u, 596957268u, 0, FREXP_TOLERANCE, 0},
+{ 465, 1046553348u, 1839214511u, 0u, 4294967272u, 1071719172u, 1839214511u, 0, FREXP_TOLERANCE, 0},
+{ 466, 3205004060u, 1923240983u, 0u, 4294967282u, 3219684124u, 1923240983u, 0, FREXP_TOLERANCE, 0},
+{ 467, 1058073864u, 739619702u, 0u, 4294967283u, 1071705352u, 739619702u, 0, FREXP_TOLERANCE, 0},
+{ 468, 3223356436u, 2689885273u, 0u, 4u, 3219162132u, 2689885273u, 0, FREXP_TOLERANCE, 0},
+{ 469, 3200324971u, 2143376228u, 0u, 4294967278u, 3219199339u, 2143376228u, 0, FREXP_TOLERANCE, 0},
+{ 470, 1098306332u, 3760236188u, 0u, 25u, 1072091932u, 3760236188u, 0, FREXP_TOLERANCE, 0},
+{ 471, 1074621795u, 671680995u, 0u, 2u, 1072524643u, 671680995u, 0, FREXP_TOLERANCE, 0},
+{ 472, 1091262633u, 2315535361u, 0u, 18u, 1072388265u, 2315535361u, 0, FREXP_TOLERANCE, 0},
+{ 473, 3214165989u, 2493598049u, 0u, 4294967291u, 3219408869u, 2493598049u, 0, FREXP_TOLERANCE, 0},
+{ 474, 3194927008u, 1689107592u, 0u, 4294967272u, 3220092832u, 1689107592u, 0, FREXP_TOLERANCE, 0},
+{ 475, 3189989959u, 1578976988u, 0u, 4294967268u, 3219350087u, 1578976988u, 0, FREXP_TOLERANCE, 0},
+{ 476, 1066368383u, 2117279163u, 0u, 4294967290u, 1072659839u, 2117279163u, 0, FREXP_TOLERANCE, 0},
+{ 477, 3222988111u, 3425290087u, 0u, 3u, 3219842383u, 3425290087u, 0, FREXP_TOLERANCE, 0},
+{ 478, 1098487295u, 1263412017u, 0u, 25u, 1072272895u, 1263412017u, 0, FREXP_TOLERANCE, 0},
+{ 479, 3208432764u, 3635396812u, 0u, 4294967285u, 3219967100u, 3635396812u, 0, FREXP_TOLERANCE, 0},
+{ 480, 1070999426u, 3965655689u, 0u, 4294967295u, 1072048002u, 3965655689u, 0, FREXP_TOLERANCE, 0},
+{ 481, 1060196346u, 2183973116u, 0u, 4294967285u, 1071730682u, 2183973116u, 0, FREXP_TOLERANCE, 0},
+{ 482, 1101098363u, 1118613350u, 0u, 28u, 1071738235u, 1118613350u, 0, FREXP_TOLERANCE, 0},
+{ 483, 3221946089u, 199516350u, 0u, 2u, 3219848937u, 199516350u, 0, FREXP_TOLERANCE, 0},
+{ 484, 1078368488u, 164621458u, 0u, 6u, 1072077032u, 164621458u, 0, FREXP_TOLERANCE, 0},
+{ 485, 3187706018u, 3570940805u, 0u, 4294967266u, 3219163298u, 3570940805u, 0, FREXP_TOLERANCE, 0},
+{ 486, 3230316437u, 3596080877u, 0u, 10u, 3219830677u, 3596080877u, 0, FREXP_TOLERANCE, 0},
+{ 487, 3208209565u, 980880313u, 0u, 4294967285u, 3219743901u, 980880313u, 0, FREXP_TOLERANCE, 0},
+{ 488, 1079833442u, 884465057u, 0u, 7u, 1072493410u, 884465057u, 0, FREXP_TOLERANCE, 0},
+{ 489, 1099977124u, 2558179220u, 0u, 27u, 1071665572u, 2558179220u, 0, FREXP_TOLERANCE, 0},
+{ 490, 1052873711u, 1233598120u, 0u, 4294967278u, 1071748079u, 1233598120u, 0, FREXP_TOLERANCE, 0},
+{ 491, 1047115221u, 1909994277u, 0u, 4294967272u, 1072281045u, 1909994277u, 0, FREXP_TOLERANCE, 0},
+{ 492, 1085015978u, 2991527452u, 0u, 12u, 1072433066u, 2991527452u, 0, FREXP_TOLERANCE, 0},
+{ 493, 1060855260u, 1680290941u, 0u, 4294967285u, 1072389596u, 1680290941u, 0, FREXP_TOLERANCE, 0},
+{ 494, 1074309900u, 2943870846u, 0u, 2u, 1072212748u, 2943870846u, 0, FREXP_TOLERANCE, 0},
+{ 495, 1059496132u, 1451927357u, 0u, 4294967284u, 1072079044u, 1451927357u, 0, FREXP_TOLERANCE, 0},
+{ 496, 3228615456u, 1502585517u, 0u, 9u, 3219178272u, 1502585517u, 0, FREXP_TOLERANCE, 0},
+{ 497, 3236211951u, 751136990u, 0u, 16u, 3219434735u, 751136990u, 0, FREXP_TOLERANCE, 0},
+{ 498, 3230392165u, 3493275472u, 0u, 10u, 3219906405u, 3493275472u, 0, FREXP_TOLERANCE, 0},
+{ 499, 1098365967u, 1209623292u, 0u, 25u, 1072151567u, 1209623292u, 0, FREXP_TOLERANCE, 0},
+{ 500, 3238056647u, 979495322u, 0u, 18u, 3219182279u, 979495322u, 0, FREXP_TOLERANCE, 0},
+{ 501, 3250424296u, 1717672108u, 0u, 29u, 3220015592u, 1717672108u, 0, FREXP_TOLERANCE, 0},
+{ 502, 1048120593u, 531240316u, 0u, 4294967273u, 1072237841u, 531240316u, 0, FREXP_TOLERANCE, 0},
+{ 503, 1054174923u, 3548721654u, 0u, 4294967279u, 1072000715u, 3548721654u, 0, FREXP_TOLERANCE, 0},
+{ 504, 1086112947u, 3391817224u, 0u, 13u, 1072481459u, 3391817224u, 0, FREXP_TOLERANCE, 0},
+{ 505, 1077836851u, 2758195125u, 0u, 5u, 1072593971u, 2758195125u, 0, FREXP_TOLERANCE, 0},
+{ 506, 1100880260u, 2028440924u, 0u, 27u, 1072568708u, 2028440924u, 0, FREXP_TOLERANCE, 0},
+{ 507, 1084223893u, 2750123373u, 0u, 11u, 1072689557u, 2750123373u, 0, FREXP_TOLERANCE, 0},
+{ 508, 3232200256u, 1086294931u, 0u, 12u, 3219617344u, 1086294931u, 0, FREXP_TOLERANCE, 0},
+{ 509, 1043958672u, 2986160931u, 0u, 4294967269u, 1072270224u, 2986160931u, 0, FREXP_TOLERANCE, 0},
+{ 510, 1076097908u, 2540046258u, 0u, 4u, 1071903604u, 2540046258u, 0, FREXP_TOLERANCE, 0},
+{ 511, 3235476602u, 451471221u, 0u, 15u, 3219747962u, 451471221u, 0, FREXP_TOLERANCE, 0},
+{ 512, 1064816262u, 4187644495u, 0u, 4294967289u, 1072156294u, 4187644495u, 0, FREXP_TOLERANCE, 0},
+{ 513, 1099460228u, 2439500162u, 0u, 26u, 1072197252u, 2439500162u, 0, FREXP_TOLERANCE, 0},
+{ 514, 1065280276u, 1979490284u, 0u, 4294967289u, 1072620308u, 1979490284u, 0, FREXP_TOLERANCE, 0},
+{ 515, 1040415832u, 2283342035u, 0u, 4294967266u, 1071873112u, 2283342035u, 0, FREXP_TOLERANCE, 0},
+{ 516, 1078398157u, 1345997553u, 0u, 6u, 1072106701u, 1345997553u, 0, FREXP_TOLERANCE, 0},
+{ 517, 3213249348u, 179066662u, 0u, 4294967290u, 3219540804u, 179066662u, 0, FREXP_TOLERANCE, 0},
+{ 518, 1103272172u, 1217337578u, 0u, 30u, 1071814892u, 1217337578u, 0, FREXP_TOLERANCE, 0},
+{ 519, 3211562377u, 3779303391u, 0u, 4294967288u, 3219950985u, 3779303391u, 0, FREXP_TOLERANCE, 0},
+{ 520, 3210023352u, 3115946280u, 0u, 4294967287u, 3219460536u, 3115946280u, 0, FREXP_TOLERANCE, 0},
+{ 521, 3192989874u, 286247089u, 0u, 4294967271u, 3219204274u, 286247089u, 0, FREXP_TOLERANCE, 0},
+{ 522, 1085153597u, 713645369u, 0u, 12u, 1072570685u, 713645369u, 0, FREXP_TOLERANCE, 0},
+{ 523, 1093670500u, 1468283899u, 0u, 21u, 1071650404u, 1468283899u, 0, FREXP_TOLERANCE, 0},
+{ 524, 1042831668u, 2022736418u, 0u, 4294967268u, 1072191796u, 2022736418u, 0, FREXP_TOLERANCE, 0},
+{ 525, 1083139105u, 3305564080u, 0u, 10u, 1072653345u, 3305564080u, 0, FREXP_TOLERANCE, 0},
+{ 526, 1065483445u, 482392433u, 0u, 4294967290u, 1071774901u, 482392433u, 0, FREXP_TOLERANCE, 0},
+{ 527, 3201695807u, 2256346551u, 0u, 4294967279u, 3219521599u, 2256346551u, 0, FREXP_TOLERANCE, 0},
+{ 528, 3222430705u, 2071674991u, 0u, 3u, 3219284977u, 2071674991u, 0, FREXP_TOLERANCE, 0},
+{ 529, 3204024695u, 2295269094u, 0u, 4294967281u, 3219753335u, 2295269094u, 0, FREXP_TOLERANCE, 0},
+{ 530, 1084451053u, 2773103941u, 0u, 12u, 1071868141u, 2773103941u, 0, FREXP_TOLERANCE, 0},
+{ 531, 1078173946u, 1482721827u, 0u, 6u, 1071882490u, 1482721827u, 0, FREXP_TOLERANCE, 0},
+{ 532, 1092243422u, 3125409590u, 0u, 19u, 1072320478u, 3125409590u, 0, FREXP_TOLERANCE, 0},
+{ 533, 3221065973u, 1381740563u, 0u, 1u, 3220017397u, 1381740563u, 0, FREXP_TOLERANCE, 0},
+{ 534, 1071545057u, 2918235653u, 0u, 4294967295u, 1072593633u, 2918235653u, 0, FREXP_TOLERANCE, 0},
+{ 535, 3238715972u, 1105857967u, 0u, 18u, 3219841604u, 1105857967u, 0, FREXP_TOLERANCE, 0},
+{ 536, 3241990046u, 2703723225u, 0u, 21u, 3219969950u, 2703723225u, 0, FREXP_TOLERANCE, 0},
+{ 537, 1043015571u, 174689677u, 0u, 4294967268u, 1072375699u, 174689677u, 0, FREXP_TOLERANCE, 0},
+{ 538, 1079333374u, 3947057014u, 0u, 7u, 1071993342u, 3947057014u, 0, FREXP_TOLERANCE, 0},
+{ 539, 1090461859u, 2023082423u, 0u, 17u, 1072636067u, 2023082423u, 0, FREXP_TOLERANCE, 0},
+{ 540, 3242081486u, 1169047927u, 0u, 21u, 3220061390u, 1169047927u, 0, FREXP_TOLERANCE, 0},
+{ 541, 1064525899u, 3742487766u, 0u, 4294967289u, 1071865931u, 3742487766u, 0, FREXP_TOLERANCE, 0},
+{ 542, 1043425732u, 194972788u, 0u, 4294967269u, 1071737284u, 194972788u, 0, FREXP_TOLERANCE, 0},
+{ 543, 3213791827u, 2136071361u, 0u, 4294967290u, 3220083283u, 2136071361u, 0, FREXP_TOLERANCE, 0},
+{ 544, 3211529757u, 993675115u, 0u, 4294967288u, 3219918365u, 993675115u, 0, FREXP_TOLERANCE, 0},
+{ 545, 3213663381u, 210772141u, 0u, 4294967290u, 3219954837u, 210772141u, 0, FREXP_TOLERANCE, 0},
+{ 546, 3241441539u, 580731413u, 0u, 21u, 3219421443u, 580731413u, 0, FREXP_TOLERANCE, 0},
+{ 547, 1093840413u, 1751560711u, 0u, 21u, 1071820317u, 1751560711u, 0, FREXP_TOLERANCE, 0},
+{ 548, 1074522705u, 180987057u, 0u, 2u, 1072425553u, 180987057u, 0, FREXP_TOLERANCE, 0},
+{ 549, 1066754591u, 2552236599u, 0u, 4294967291u, 1071997471u, 2552236599u, 0, FREXP_TOLERANCE, 0},
+{ 550, 1088658621u, 2112468655u, 0u, 16u, 1071881405u, 2112468655u, 0, FREXP_TOLERANCE, 0},
+{ 551, 3189290617u, 1578223762u, 0u, 4294967267u, 3219699321u, 1578223762u, 0, FREXP_TOLERANCE, 0},
+{ 552, 3224596567u, 2456166162u, 0u, 5u, 3219353687u, 2456166162u, 0, FREXP_TOLERANCE, 0},
+{ 553, 1058506965u, 2110924310u, 0u, 4294967283u, 1072138453u, 2110924310u, 0, FREXP_TOLERANCE, 0},
+{ 554, 1086207177u, 3161208323u, 0u, 13u, 1072575689u, 3161208323u, 0, FREXP_TOLERANCE, 0},
+{ 555, 3231863394u, 2352173188u, 0u, 12u, 3219280482u, 2352173188u, 0, FREXP_TOLERANCE, 0},
+{ 556, 1079361728u, 4070222179u, 0u, 7u, 1072021696u, 4070222179u, 0, FREXP_TOLERANCE, 0},
+{ 557, 1101012904u, 2481562701u, 0u, 28u, 1071652776u, 2481562701u, 0, FREXP_TOLERANCE, 0},
+{ 558, 1090937016u, 3809489716u, 0u, 18u, 1072062648u, 3809489716u, 0, FREXP_TOLERANCE, 0},
+{ 559, 3197002651u, 330905705u, 0u, 4294967274u, 3220071323u, 330905705u, 0, FREXP_TOLERANCE, 0},
+{ 560, 1086260896u, 90264431u, 0u, 13u, 1072629408u, 90264431u, 0, FREXP_TOLERANCE, 0},
+{ 561, 1040729961u, 4162008079u, 0u, 4294967266u, 1072187241u, 4162008079u, 0, FREXP_TOLERANCE, 0},
+{ 562, 3194387916u, 759522153u, 0u, 4294967272u, 3219553740u, 759522153u, 0, FREXP_TOLERANCE, 0},
+{ 563, 1081015037u, 1839697482u, 0u, 8u, 1072626429u, 1839697482u, 0, FREXP_TOLERANCE, 0},
+{ 564, 3216442625u, 2211508949u, 0u, 4294967293u, 3219588353u, 2211508949u, 0, FREXP_TOLERANCE, 0},
+{ 565, 3249807211u, 3736863454u, 0u, 29u, 3219398507u, 3736863454u, 0, FREXP_TOLERANCE, 0},
+{ 566, 1063475914u, 3150741666u, 0u, 4294967288u, 1071864522u, 3150741666u, 0, FREXP_TOLERANCE, 0},
+{ 567, 1060785883u, 4200269406u, 0u, 4294967285u, 1072320219u, 4200269406u, 0, FREXP_TOLERANCE, 0},
+{ 568, 3236646101u, 1061812176u, 0u, 16u, 3219868885u, 1061812176u, 0, FREXP_TOLERANCE, 0},
+{ 569, 1080217979u, 106027290u, 0u, 8u, 1071829371u, 106027290u, 0, FREXP_TOLERANCE, 0},
+{ 570, 3234978297u, 2245237549u, 0u, 15u, 3219249657u, 2245237549u, 0, FREXP_TOLERANCE, 0},
+{ 571, 3246984334u, 2132131375u, 0u, 26u, 3219721358u, 2132131375u, 0, FREXP_TOLERANCE, 0},
+{ 572, 3250483427u, 3449276437u, 0u, 29u, 3220074723u, 3449276437u, 0, FREXP_TOLERANCE, 0},
+{ 573, 1089388778u, 2334440944u, 0u, 16u, 1072611562u, 2334440944u, 0, FREXP_TOLERANCE, 0},
+{ 574, 1105423490u, 4004336184u, 0u, 32u, 1071869058u, 4004336184u, 0, FREXP_TOLERANCE, 0},
+{ 575, 3218772704u, 4090088208u, 0u, 4294967295u, 3219821280u, 4090088208u, 0, FREXP_TOLERANCE, 0},
+{ 576, 1042030013u, 3898658299u, 0u, 4294967267u, 1072438717u, 3898658299u, 0, FREXP_TOLERANCE, 0},
+{ 577, 3207908064u, 2272831437u, 0u, 4294967285u, 3219442400u, 2272831437u, 0, FREXP_TOLERANCE, 0},
+{ 578, 3253082595u, 2639188641u, 0u, 32u, 3219528163u, 2639188641u, 0, FREXP_TOLERANCE, 0},
+{ 579, 1054766684u, 1856594168u, 0u, 4294967279u, 1072592476u, 1856594168u, 0, FREXP_TOLERANCE, 0},
+{ 580, 3189515294u, 4101853676u, 0u, 4294967267u, 3219923998u, 4101853676u, 0, FREXP_TOLERANCE, 0},
+{ 581, 1076012412u, 2211699255u, 0u, 4u, 1071818108u, 2211699255u, 0, FREXP_TOLERANCE, 0},
+{ 582, 3195060344u, 3865018604u, 0u, 4294967273u, 3219177592u, 3865018604u, 0, FREXP_TOLERANCE, 0},
+{ 583, 3242767010u, 996259334u, 0u, 22u, 3219698338u, 996259334u, 0, FREXP_TOLERANCE, 0},
+{ 584, 3241496889u, 3782673116u, 0u, 21u, 3219476793u, 3782673116u, 0, FREXP_TOLERANCE, 0},
+{ 585, 1099130747u, 3840380763u, 0u, 26u, 1071867771u, 3840380763u, 0, FREXP_TOLERANCE, 0},
+{ 586, 1048674041u, 550040067u, 0u, 4294967274u, 1071742713u, 550040067u, 0, FREXP_TOLERANCE, 0},
+{ 587, 3251419593u, 95874100u, 0u, 30u, 3219962313u, 95874100u, 0, FREXP_TOLERANCE, 0},
+{ 588, 3237232828u, 2645647822u, 0u, 17u, 3219407036u, 2645647822u, 0, FREXP_TOLERANCE, 0},
+{ 589, 1043665640u, 3441419500u, 0u, 4294967269u, 1071977192u, 3441419500u, 0, FREXP_TOLERANCE, 0},
+{ 590, 3252367038u, 876710419u, 0u, 31u, 3219861182u, 876710419u, 0, FREXP_TOLERANCE, 0},
+{ 591, 3238593552u, 2560836004u, 0u, 18u, 3219719184u, 2560836004u, 0, FREXP_TOLERANCE, 0},
+{ 592, 3199616543u, 1180840586u, 0u, 4294967277u, 3219539487u, 1180840586u, 0, FREXP_TOLERANCE, 0},
+{ 593, 3221602966u, 2218230392u, 0u, 2u, 3219505814u, 2218230392u, 0, FREXP_TOLERANCE, 0},
+{ 594, 3227485787u, 3947214579u, 0u, 7u, 3220145755u, 3947214579u, 0, FREXP_TOLERANCE, 0},
+{ 595, 1079539654u, 1447312532u, 0u, 7u, 1072199622u, 1447312532u, 0, FREXP_TOLERANCE, 0},
+{ 596, 1081476588u, 780366847u, 0u, 9u, 1072039404u, 780366847u, 0, FREXP_TOLERANCE, 0},
+{ 597, 1072569643u, 2842113832u, 0u, 0u, 1072569643u, 2842113832u, 0, FREXP_TOLERANCE, 0},
+{ 598, 3216156731u, 225159029u, 0u, 4294967293u, 3219302459u, 225159029u, 0, FREXP_TOLERANCE, 0},
+{ 599, 1098117193u, 1601981129u, 0u, 25u, 1071902793u, 1601981129u, 0, FREXP_TOLERANCE, 0},
+{ 600, 3234628869u, 2236538344u, 0u, 14u, 3219948805u, 2236538344u, 0, FREXP_TOLERANCE, 0},
+{ 601, 1085173524u, 2194185737u, 0u, 12u, 1072590612u, 2194185737u, 0, FREXP_TOLERANCE, 0},
+{ 602, 3242362684u, 87913366u, 0u, 22u, 3219294012u, 87913366u, 0, FREXP_TOLERANCE, 0},
+{ 603, 3199083880u, 1346862963u, 0u, 4294967276u, 3220055400u, 1346862963u, 0, FREXP_TOLERANCE, 0},
+{ 604, 1077836259u, 3604666660u, 0u, 5u, 1072593379u, 3604666660u, 0, FREXP_TOLERANCE, 0},
+{ 605, 3212255979u, 3115209742u, 0u, 4294967289u, 3219596011u, 3115209742u, 0, FREXP_TOLERANCE, 0},
+{ 606, 1099332326u, 1325101950u, 0u, 26u, 1072069350u, 1325101950u, 0, FREXP_TOLERANCE, 0},
+{ 607, 3224546042u, 3889223100u, 0u, 5u, 3219303162u, 3889223100u, 0, FREXP_TOLERANCE, 0},
+{ 608, 1053247613u, 3371396923u, 0u, 4294967278u, 1072121981u, 3371396923u, 0, FREXP_TOLERANCE, 0},
+{ 609, 3220477868u, 4163120793u, 0u, 1u, 3219429292u, 4163120793u, 0, FREXP_TOLERANCE, 0},
+{ 610, 1075022670u, 1387631215u, 0u, 3u, 1071876942u, 1387631215u, 0, FREXP_TOLERANCE, 0},
+{ 611, 3205481779u, 1532426189u, 0u, 4294967282u, 3220161843u, 1532426189u, 0, FREXP_TOLERANCE, 0},
+{ 612, 1063168268u, 3397022615u, 0u, 4294967287u, 1072605452u, 3397022615u, 0, FREXP_TOLERANCE, 0},
+{ 613, 3201033321u, 89324166u, 0u, 4294967278u, 3219907689u, 89324166u, 0, FREXP_TOLERANCE, 0},
+{ 614, 1079206060u, 3429424710u, 0u, 7u, 1071866028u, 3429424710u, 0, FREXP_TOLERANCE, 0},
+{ 615, 3192325102u, 747591401u, 0u, 4294967270u, 3219588078u, 747591401u, 0, FREXP_TOLERANCE, 0},
+{ 616, 1072238381u, 2803213904u, 0u, 0u, 1072238381u, 2803213904u, 0, FREXP_TOLERANCE, 0},
+{ 617, 1091113780u, 271904221u, 0u, 18u, 1072239412u, 271904221u, 0, FREXP_TOLERANCE, 0},
+{ 618, 1044258318u, 1858545114u, 0u, 4294967269u, 1072569870u, 1858545114u, 0, FREXP_TOLERANCE, 0},
+{ 619, 3228068914u, 314958082u, 0u, 8u, 3219680306u, 314958082u, 0, FREXP_TOLERANCE, 0},
+{ 620, 3249912496u, 2966213175u, 0u, 29u, 3219503792u, 2966213175u, 0, FREXP_TOLERANCE, 0},
+{ 621, 3197179414u, 3119528953u, 0u, 4294967275u, 3219199510u, 3119528953u, 0, FREXP_TOLERANCE, 0},
+{ 622, 3217179014u, 2908718240u, 0u, 4294967294u, 3219276166u, 2908718240u, 0, FREXP_TOLERANCE, 0},
+{ 623, 3242467576u, 2018361566u, 0u, 22u, 3219398904u, 2018361566u, 0, FREXP_TOLERANCE, 0},
+{ 624, 1100926600u, 3985805054u, 0u, 27u, 1072615048u, 3985805054u, 0, FREXP_TOLERANCE, 0},
+{ 625, 1070132580u, 409584884u, 0u, 4294967294u, 1072229732u, 409584884u, 0, FREXP_TOLERANCE, 0},
+{ 626, 3239758947u, 755795129u, 0u, 19u, 3219836003u, 755795129u, 0, FREXP_TOLERANCE, 0},
+{ 627, 1075772446u, 1819156379u, 0u, 3u, 1072626718u, 1819156379u, 0, FREXP_TOLERANCE, 0},
+{ 628, 3251342302u, 2982669005u, 0u, 30u, 3219885022u, 2982669005u, 0, FREXP_TOLERANCE, 0},
+{ 629, 1101563433u, 2080534280u, 0u, 28u, 1072203305u, 2080534280u, 0, FREXP_TOLERANCE, 0},
+{ 630, 3188254060u, 449171797u, 0u, 4294967266u, 3219711340u, 449171797u, 0, FREXP_TOLERANCE, 0},
+{ 631, 1095956900u, 168744837u, 0u, 23u, 1071839652u, 168744837u, 0, FREXP_TOLERANCE, 0},
+{ 632, 3214950009u, 1322217822u, 0u, 4294967292u, 3219144313u, 1322217822u, 0, FREXP_TOLERANCE, 0},
+{ 633, 3254226900u, 3250487255u, 0u, 33u, 3219623892u, 3250487255u, 0, FREXP_TOLERANCE, 0},
+{ 634, 1062120700u, 1876195180u, 0u, 4294967286u, 1072606460u, 1876195180u, 0, FREXP_TOLERANCE, 0},
+{ 635, 3226343480u, 1336400247u, 0u, 6u, 3220052024u, 1336400247u, 0, FREXP_TOLERANCE, 0},
+{ 636, 1098057903u, 3314079581u, 0u, 25u, 1071843503u, 3314079581u, 0, FREXP_TOLERANCE, 0},
+{ 637, 3203678820u, 265025555u, 0u, 4294967281u, 3219407460u, 265025555u, 0, FREXP_TOLERANCE, 0},
+{ 638, 1063854282u, 3779482256u, 0u, 4294967288u, 1072242890u, 3779482256u, 0, FREXP_TOLERANCE, 0},
+{ 639, 1067300501u, 887044257u, 0u, 4294967291u, 1072543381u, 887044257u, 0, FREXP_TOLERANCE, 0},
+{ 640, 1054789618u, 2732056261u, 0u, 4294967279u, 1072615410u, 2732056261u, 0, FREXP_TOLERANCE, 0},
+{ 641, 1050106742u, 4027115185u, 0u, 4294967275u, 1072126838u, 4027115185u, 0, FREXP_TOLERANCE, 0},
+{ 642, 3191764868u, 2940199511u, 0u, 4294967269u, 3220076420u, 2940199511u, 0, FREXP_TOLERANCE, 0},
+{ 643, 3202500155u, 2875684421u, 0u, 4294967280u, 3219277371u, 2875684421u, 0, FREXP_TOLERANCE, 0},
+{ 644, 3227459837u, 2251967570u, 0u, 7u, 3220119805u, 2251967570u, 0, FREXP_TOLERANCE, 0},
+{ 645, 1063244412u, 284173546u, 0u, 4294967287u, 1072681596u, 284173546u, 0, FREXP_TOLERANCE, 0},
+{ 646, 3238823679u, 3557800647u, 0u, 18u, 3219949311u, 3557800647u, 0, FREXP_TOLERANCE, 0},
+{ 647, 1101458560u, 3147771266u, 0u, 28u, 1072098432u, 3147771266u, 0, FREXP_TOLERANCE, 0},
+{ 648, 3220110464u, 2933364246u, 0u, 0u, 3220110464u, 2933364246u, 0, FREXP_TOLERANCE, 0},
+{ 649, 1064853160u, 3366183281u, 0u, 4294967289u, 1072193192u, 3366183281u, 0, FREXP_TOLERANCE, 0},
+{ 650, 3234870843u, 537442654u, 0u, 15u, 3219142203u, 537442654u, 0, FREXP_TOLERANCE, 0},
+{ 651, 3244118788u, 2529029548u, 0u, 23u, 3220001540u, 2529029548u, 0, FREXP_TOLERANCE, 0},
+{ 652, 3249882819u, 3781513577u, 0u, 29u, 3219474115u, 3781513577u, 0, FREXP_TOLERANCE, 0},
+{ 653, 3213436354u, 1080845539u, 0u, 4294967290u, 3219727810u, 1080845539u, 0, FREXP_TOLERANCE, 0},
+{ 654, 3206760016u, 911778687u, 0u, 4294967284u, 3219342928u, 911778687u, 0, FREXP_TOLERANCE, 0},
+{ 655, 3191951036u, 469586759u, 0u, 4294967270u, 3219214012u, 469586759u, 0, FREXP_TOLERANCE, 0},
+{ 656, 1091830022u, 3080528840u, 0u, 19u, 1071907078u, 3080528840u, 0, FREXP_TOLERANCE, 0},
+{ 657, 1080249104u, 2863108169u, 0u, 8u, 1071860496u, 2863108169u, 0, FREXP_TOLERANCE, 0},
+{ 658, 3225605506u, 2508274250u, 0u, 6u, 3219314050u, 2508274250u, 0, FREXP_TOLERANCE, 0},
+{ 659, 3210826984u, 4080017377u, 0u, 4294967288u, 3219215592u, 4080017377u, 0, FREXP_TOLERANCE, 0},
+{ 660, 3206492941u, 1470284690u, 0u, 4294967283u, 3220124429u, 1470284690u, 0, FREXP_TOLERANCE, 0},
+{ 661, 3207120390u, 3867917386u, 0u, 4294967284u, 3219703302u, 3867917386u, 0, FREXP_TOLERANCE, 0},
+{ 662, 1102054928u, 3504746045u, 0u, 29u, 1071646224u, 3504746045u, 0, FREXP_TOLERANCE, 0},
+{ 663, 1064522279u, 2962134101u, 0u, 4294967289u, 1071862311u, 2962134101u, 0, FREXP_TOLERANCE, 0},
+{ 664, 3244741577u, 3390537350u, 0u, 24u, 3219575753u, 3390537350u, 0, FREXP_TOLERANCE, 0},
+{ 665, 1088201813u, 1702237980u, 0u, 15u, 1072473173u, 1702237980u, 0, FREXP_TOLERANCE, 0},
+{ 666, 1071598971u, 1102587474u, 0u, 4294967295u, 1072647547u, 1102587474u, 0, FREXP_TOLERANCE, 0},
+{ 667, 3202970118u, 2180218657u, 0u, 4294967280u, 3219747334u, 2180218657u, 0, FREXP_TOLERANCE, 0},
+{ 668, 3211592260u, 1206527853u, 0u, 4294967288u, 3219980868u, 1206527853u, 0, FREXP_TOLERANCE, 0},
+{ 669, 3197084744u, 394130786u, 0u, 4294967274u, 3220153416u, 394130786u, 0, FREXP_TOLERANCE, 0},
+{ 670, 3242511482u, 2437699868u, 0u, 22u, 3219442810u, 2437699868u, 0, FREXP_TOLERANCE, 0},
+{ 671, 1044237059u, 849581558u, 0u, 4294967269u, 1072548611u, 849581558u, 0, FREXP_TOLERANCE, 0},
+{ 672, 3252006507u, 2008614943u, 0u, 31u, 3219500651u, 2008614943u, 0, FREXP_TOLERANCE, 0},
+{ 673, 3210140014u, 3128971673u, 0u, 4294967287u, 3219577198u, 3128971673u, 0, FREXP_TOLERANCE, 0},
+{ 674, 3249137531u, 2773583059u, 0u, 28u, 3219777403u, 2773583059u, 0, FREXP_TOLERANCE, 0},
+{ 675, 1085029866u, 590727700u, 0u, 12u, 1072446954u, 590727700u, 0, FREXP_TOLERANCE, 0},
+{ 676, 3248651761u, 2183878539u, 0u, 28u, 3219291633u, 2183878539u, 0, FREXP_TOLERANCE, 0},
+{ 677, 1101098629u, 820687580u, 0u, 28u, 1071738501u, 820687580u, 0, FREXP_TOLERANCE, 0},
+{ 678, 3208143496u, 1402434664u, 0u, 4294967285u, 3219677832u, 1402434664u, 0, FREXP_TOLERANCE, 0},
+{ 679, 3252290835u, 1873709254u, 0u, 31u, 3219784979u, 1873709254u, 0, FREXP_TOLERANCE, 0},
+{ 680, 3245167989u, 44275991u, 0u, 24u, 3220002165u, 44275991u, 0, FREXP_TOLERANCE, 0},
+{ 681, 3189668753u, 1174874204u, 0u, 4294967267u, 3220077457u, 1174874204u, 0, FREXP_TOLERANCE, 0},
+{ 682, 3208263730u, 2360372288u, 0u, 4294967285u, 3219798066u, 2360372288u, 0, FREXP_TOLERANCE, 0},
+{ 683, 1103854676u, 937573440u, 0u, 30u, 1072397396u, 937573440u, 0, FREXP_TOLERANCE, 0},
+{ 684, 3208953761u, 211240241u, 0u, 4294967286u, 3219439521u, 211240241u, 0, FREXP_TOLERANCE, 0},
+{ 685, 3243548934u, 2469774991u, 0u, 23u, 3219431686u, 2469774991u, 0, FREXP_TOLERANCE, 0},
+{ 686, 1043117070u, 3380071805u, 0u, 4294967268u, 1072477198u, 3380071805u, 0, FREXP_TOLERANCE, 0},
+{ 687, 1058121042u, 442507560u, 0u, 4294967283u, 1071752530u, 442507560u, 0, FREXP_TOLERANCE, 0},
+{ 688, 3254252803u, 3257889649u, 0u, 33u, 3219649795u, 3257889649u, 0, FREXP_TOLERANCE, 0},
+{ 689, 1068850520u, 1854921625u, 0u, 4294967293u, 1071996248u, 1854921625u, 0, FREXP_TOLERANCE, 0},
+{ 690, 1049810168u, 2729627545u, 0u, 4294967275u, 1071830264u, 2729627545u, 0, FREXP_TOLERANCE, 0},
+{ 691, 3254712629u, 4001809575u, 0u, 33u, 3220109621u, 4001809575u, 0, FREXP_TOLERANCE, 0},
+{ 692, 3240128649u, 278261523u, 0u, 20u, 3219157129u, 278261523u, 0, FREXP_TOLERANCE, 0},
+{ 693, 1087224694u, 1793907966u, 0u, 14u, 1072544630u, 1793907966u, 0, FREXP_TOLERANCE, 0},
+{ 694, 3238955714u, 398859249u, 0u, 18u, 3220081346u, 398859249u, 0, FREXP_TOLERANCE, 0},
+{ 695, 3200952547u, 2511916952u, 0u, 4294967278u, 3219826915u, 2511916952u, 0, FREXP_TOLERANCE, 0},
+{ 696, 3219195283u, 1697158299u, 0u, 0u, 3219195283u, 1697158299u, 0, FREXP_TOLERANCE, 0},
+{ 697, 1069985548u, 3230931724u, 0u, 4294967294u, 1072082700u, 3230931724u, 0, FREXP_TOLERANCE, 0},
+{ 698, 3243897690u, 3508781585u, 0u, 23u, 3219780442u, 3508781585u, 0, FREXP_TOLERANCE, 0},
+{ 699, 1103847606u, 1674254897u, 0u, 30u, 1072390326u, 1674254897u, 0, FREXP_TOLERANCE, 0},
+{ 700, 1046547577u, 217148561u, 0u, 4294967272u, 1071713401u, 217148561u, 0, FREXP_TOLERANCE, 0},
+{ 701, 3211263954u, 3275604304u, 0u, 4294967288u, 3219652562u, 3275604304u, 0, FREXP_TOLERANCE, 0},
+{ 702, 3194840159u, 2991205850u, 0u, 4294967272u, 3220005983u, 2991205850u, 0, FREXP_TOLERANCE, 0},
+{ 703, 3195249375u, 3509997278u, 0u, 4294967273u, 3219366623u, 3509997278u, 0, FREXP_TOLERANCE, 0},
+{ 704, 3248888030u, 3897986511u, 0u, 28u, 3219527902u, 3897986511u, 0, FREXP_TOLERANCE, 0},
+{ 705, 1047182435u, 2156824613u, 0u, 4294967272u, 1072348259u, 2156824613u, 0, FREXP_TOLERANCE, 0},
+{ 706, 1042295665u, 1239257646u, 0u, 4294967268u, 1071655793u, 1239257646u, 0, FREXP_TOLERANCE, 0},
+{ 707, 3213264085u, 1073153314u, 0u, 4294967290u, 3219555541u, 1073153314u, 0, FREXP_TOLERANCE, 0},
+{ 708, 3250031627u, 2567234990u, 0u, 29u, 3219622923u, 2567234990u, 0, FREXP_TOLERANCE, 0},
+{ 709, 3190593412u, 4261696995u, 0u, 4294967268u, 3219953540u, 4261696995u, 0, FREXP_TOLERANCE, 0},
+{ 710, 3197784432u, 323702024u, 0u, 4294967275u, 3219804528u, 323702024u, 0, FREXP_TOLERANCE, 0},
+{ 711, 3243690997u, 4075177615u, 0u, 23u, 3219573749u, 4075177615u, 0, FREXP_TOLERANCE, 0},
+{ 712, 3202791065u, 1919006082u, 0u, 4294967280u, 3219568281u, 1919006082u, 0, FREXP_TOLERANCE, 0},
+{ 713, 3239270013u, 386429966u, 0u, 19u, 3219347069u, 386429966u, 0, FREXP_TOLERANCE, 0},
+{ 714, 1086504491u, 3698826164u, 0u, 14u, 1071824427u, 3698826164u, 0, FREXP_TOLERANCE, 0},
+{ 715, 1078327190u, 1681986446u, 0u, 6u, 1072035734u, 1681986446u, 0, FREXP_TOLERANCE, 0},
+{ 716, 3194985869u, 3072950140u, 0u, 4294967272u, 3220151693u, 3072950140u, 0, FREXP_TOLERANCE, 0},
+{ 717, 3217311933u, 3719038997u, 0u, 4294967294u, 3219409085u, 3719038997u, 0, FREXP_TOLERANCE, 0},
+{ 718, 1055433962u, 3331415058u, 0u, 4294967280u, 1072211178u, 3331415058u, 0, FREXP_TOLERANCE, 0},
+{ 719, 1060749713u, 2420250111u, 0u, 4294967285u, 1072284049u, 2420250111u, 0, FREXP_TOLERANCE, 0},
+{ 720, 3238002206u, 1928661079u, 0u, 17u, 3220176414u, 1928661079u, 0, FREXP_TOLERANCE, 0},
+{ 721, 1081914210u, 3679866727u, 0u, 9u, 1072477026u, 3679866727u, 0, FREXP_TOLERANCE, 0},
+{ 722, 3227386672u, 1273835792u, 0u, 7u, 3220046640u, 1273835792u, 0, FREXP_TOLERANCE, 0},
+{ 723, 1041622738u, 2682092368u, 0u, 4294967267u, 1072031442u, 2682092368u, 0, FREXP_TOLERANCE, 0},
+{ 724, 3234222284u, 1325425811u, 0u, 14u, 3219542220u, 1325425811u, 0, FREXP_TOLERANCE, 0},
+{ 725, 1056312613u, 4175172697u, 0u, 4294967281u, 1072041253u, 4175172697u, 0, FREXP_TOLERANCE, 0},
+{ 726, 3208346191u, 2130706153u, 0u, 4294967285u, 3219880527u, 2130706153u, 0, FREXP_TOLERANCE, 0},
+{ 727, 1092089624u, 1200784450u, 0u, 19u, 1072166680u, 1200784450u, 0, FREXP_TOLERANCE, 0},
+{ 728, 1083605096u, 1248595607u, 0u, 11u, 1072070760u, 1248595607u, 0, FREXP_TOLERANCE, 0},
+{ 729, 3213890863u, 1897285171u, 0u, 4294967291u, 3219133743u, 1897285171u, 0, FREXP_TOLERANCE, 0},
+{ 730, 3251296075u, 944966123u, 0u, 30u, 3219838795u, 944966123u, 0, FREXP_TOLERANCE, 0},
+{ 731, 3241371250u, 2270747330u, 0u, 21u, 3219351154u, 2270747330u, 0, FREXP_TOLERANCE, 0},
+{ 732, 3230692631u, 422503284u, 0u, 11u, 3219158295u, 422503284u, 0, FREXP_TOLERANCE, 0},
+{ 733, 1084120037u, 2857564741u, 0u, 11u, 1072585701u, 2857564741u, 0, FREXP_TOLERANCE, 0},
+{ 734, 1075647403u, 3308906709u, 0u, 3u, 1072501675u, 3308906709u, 0, FREXP_TOLERANCE, 0},
+{ 735, 3203475098u, 1380066948u, 0u, 4294967281u, 3219203738u, 1380066948u, 0, FREXP_TOLERANCE, 0},
+{ 736, 3232612906u, 2613634294u, 0u, 12u, 3220029994u, 2613634294u, 0, FREXP_TOLERANCE, 0},
+{ 737, 1063890856u, 4022784584u, 0u, 4294967288u, 1072279464u, 4022784584u, 0, FREXP_TOLERANCE, 0},
+{ 738, 1060483857u, 3264056381u, 0u, 4294967285u, 1072018193u, 3264056381u, 0, FREXP_TOLERANCE, 0},
+{ 739, 1044637404u, 1778509100u, 0u, 4294967270u, 1071900380u, 1778509100u, 0, FREXP_TOLERANCE, 0},
+{ 740, 3213146285u, 2665833973u, 0u, 4294967290u, 3219437741u, 2665833973u, 0, FREXP_TOLERANCE, 0},
+{ 741, 3216727300u, 1859175955u, 0u, 4294967293u, 3219873028u, 1859175955u, 0, FREXP_TOLERANCE, 0},
+{ 742, 1079949560u, 4258450607u, 0u, 7u, 1072609528u, 4258450607u, 0, FREXP_TOLERANCE, 0},
+{ 743, 1048277388u, 4128020197u, 0u, 4294967273u, 1072394636u, 4128020197u, 0, FREXP_TOLERANCE, 0},
+{ 744, 1076266146u, 4122840980u, 0u, 4u, 1072071842u, 4122840980u, 0, FREXP_TOLERANCE, 0},
+{ 745, 3193183163u, 2454653987u, 0u, 4294967271u, 3219397563u, 2454653987u, 0, FREXP_TOLERANCE, 0},
+{ 746, 3229487005u, 2977478685u, 0u, 9u, 3220049821u, 2977478685u, 0, FREXP_TOLERANCE, 0},
+{ 747, 3253556483u, 1355181872u, 0u, 32u, 3220002051u, 1355181872u, 0, FREXP_TOLERANCE, 0},
+{ 748, 1095308770u, 436846481u, 0u, 22u, 1072240098u, 436846481u, 0, FREXP_TOLERANCE, 0},
+{ 749, 3246605302u, 2592856453u, 0u, 26u, 3219342326u, 2592856453u, 0, FREXP_TOLERANCE, 0},
+{ 750, 3247825559u, 3195234082u, 0u, 27u, 3219514007u, 3195234082u, 0, FREXP_TOLERANCE, 0},
+{ 751, 3222118023u, 3554670043u, 0u, 2u, 3220020871u, 3554670043u, 0, FREXP_TOLERANCE, 0},
+{ 752, 1091621009u, 3321236467u, 0u, 19u, 1071698065u, 3321236467u, 0, FREXP_TOLERANCE, 0},
+{ 753, 1069012833u, 1936670355u, 0u, 4294967293u, 1072158561u, 1936670355u, 0, FREXP_TOLERANCE, 0},
+{ 754, 1095715713u, 2958468553u, 0u, 22u, 1072647041u, 2958468553u, 0, FREXP_TOLERANCE, 0},
+{ 755, 3192291109u, 2960339502u, 0u, 4294967270u, 3219554085u, 2960339502u, 0, FREXP_TOLERANCE, 0},
+{ 756, 1098808013u, 1044068983u, 0u, 25u, 1072593613u, 1044068983u, 0, FREXP_TOLERANCE, 0},
+{ 757, 3196691185u, 4093388677u, 0u, 4294967274u, 3219759857u, 4093388677u, 0, FREXP_TOLERANCE, 0},
+{ 758, 1095478112u, 1735930261u, 0u, 22u, 1072409440u, 1735930261u, 0, FREXP_TOLERANCE, 0},
+{ 759, 1091040302u, 1807398746u, 0u, 18u, 1072165934u, 1807398746u, 0, FREXP_TOLERANCE, 0},
+{ 760, 3195743135u, 4261616162u, 0u, 4294967273u, 3219860383u, 4261616162u, 0, FREXP_TOLERANCE, 0},
+{ 761, 3209294194u, 3250576797u, 0u, 4294967286u, 3219779954u, 3250576797u, 0, FREXP_TOLERANCE, 0},
+{ 762, 1059002384u, 3043079652u, 0u, 4294967283u, 1072633872u, 3043079652u, 0, FREXP_TOLERANCE, 0},
+{ 763, 1069207109u, 666051428u, 0u, 4294967293u, 1072352837u, 666051428u, 0, FREXP_TOLERANCE, 0},
+{ 764, 3208765404u, 1912684117u, 0u, 4294967286u, 3219251164u, 1912684117u, 0, FREXP_TOLERANCE, 0},
+{ 765, 1103487420u, 1949030179u, 0u, 30u, 1072030140u, 1949030179u, 0, FREXP_TOLERANCE, 0},
+{ 766, 1096388934u, 896459246u, 0u, 23u, 1072271686u, 896459246u, 0, FREXP_TOLERANCE, 0},
+{ 767, 1054300653u, 622499767u, 0u, 4294967279u, 1072126445u, 622499767u, 0, FREXP_TOLERANCE, 0},
+{ 768, 1066707637u, 1490260486u, 0u, 4294967291u, 1071950517u, 1490260486u, 0, FREXP_TOLERANCE, 0},
+{ 769, 1106688493u, 1490616165u, 0u, 33u, 1072085485u, 1490616165u, 0, FREXP_TOLERANCE, 0},
+{ 770, 3251242436u, 795675736u, 0u, 30u, 3219785156u, 795675736u, 0, FREXP_TOLERANCE, 0},
+{ 771, 1080943896u, 3662877092u, 0u, 8u, 1072555288u, 3662877092u, 0, FREXP_TOLERANCE, 0},
+{ 772, 3234317146u, 3200513112u, 0u, 14u, 3219637082u, 3200513112u, 0, FREXP_TOLERANCE, 0},
+{ 773, 1084088786u, 1356101968u, 0u, 11u, 1072554450u, 1356101968u, 0, FREXP_TOLERANCE, 0},
+{ 774, 3236536816u, 3062844611u, 0u, 16u, 3219759600u, 3062844611u, 0, FREXP_TOLERANCE, 0},
+{ 775, 3219922640u, 2284484846u, 0u, 0u, 3219922640u, 2284484846u, 0, FREXP_TOLERANCE, 0},
+{ 776, 3219498359u, 3240896015u, 0u, 0u, 3219498359u, 3240896015u, 0, FREXP_TOLERANCE, 0},
+{ 777, 3235759689u, 494503287u, 0u, 15u, 3220031049u, 494503287u, 0, FREXP_TOLERANCE, 0},
+{ 778, 1092811254u, 142673998u, 0u, 20u, 1071839734u, 142673998u, 0, FREXP_TOLERANCE, 0},
+{ 779, 3252125916u, 3394882641u, 0u, 31u, 3219620060u, 3394882641u, 0, FREXP_TOLERANCE, 0},
+{ 780, 3225306538u, 364852125u, 0u, 5u, 3220063658u, 364852125u, 0, FREXP_TOLERANCE, 0},
+{ 781, 3225261763u, 193885269u, 0u, 5u, 3220018883u, 193885269u, 0, FREXP_TOLERANCE, 0},
+{ 782, 1088149839u, 1359805831u, 0u, 15u, 1072421199u, 1359805831u, 0, FREXP_TOLERANCE, 0},
+{ 783, 3200484782u, 592580907u, 0u, 4294967278u, 3219359150u, 592580907u, 0, FREXP_TOLERANCE, 0},
+{ 784, 3199560872u, 3086438952u, 0u, 4294967277u, 3219483816u, 3086438952u, 0, FREXP_TOLERANCE, 0},
+{ 785, 1059518664u, 1778008540u, 0u, 4294967284u, 1072101576u, 1778008540u, 0, FREXP_TOLERANCE, 0},
+{ 786, 1049064687u, 73581647u, 0u, 4294967274u, 1072133359u, 73581647u, 0, FREXP_TOLERANCE, 0},
+{ 787, 3246733598u, 233240285u, 0u, 26u, 3219470622u, 233240285u, 0, FREXP_TOLERANCE, 0},
+{ 788, 1081923320u, 2710903921u, 0u, 9u, 1072486136u, 2710903921u, 0, FREXP_TOLERANCE, 0},
+{ 789, 1069513767u, 3719878805u, 0u, 4294967293u, 1072659495u, 3719878805u, 0, FREXP_TOLERANCE, 0},
+{ 790, 1079866720u, 3615458228u, 0u, 7u, 1072526688u, 3615458228u, 0, FREXP_TOLERANCE, 0},
+{ 791, 3221194724u, 3647632375u, 0u, 1u, 3220146148u, 3647632375u, 0, FREXP_TOLERANCE, 0},
+{ 792, 3247225271u, 3839959621u, 0u, 26u, 3219962295u, 3839959621u, 0, FREXP_TOLERANCE, 0},
+{ 793, 1103401096u, 2232210456u, 0u, 30u, 1071943816u, 2232210456u, 0, FREXP_TOLERANCE, 0},
+{ 794, 3235434773u, 224271737u, 0u, 15u, 3219706133u, 224271737u, 0, FREXP_TOLERANCE, 0},
+{ 795, 3193003684u, 2134662911u, 0u, 4294967271u, 3219218084u, 2134662911u, 0, FREXP_TOLERANCE, 0},
+{ 796, 3190390590u, 4239009051u, 0u, 4294967268u, 3219750718u, 4239009051u, 0, FREXP_TOLERANCE, 0},
+{ 797, 1080526145u, 2305279897u, 0u, 8u, 1072137537u, 2305279897u, 0, FREXP_TOLERANCE, 0},
+{ 798, 1077668039u, 1854523320u, 0u, 5u, 1072425159u, 1854523320u, 0, FREXP_TOLERANCE, 0},
+{ 799, 3219864259u, 538224650u, 0u, 0u, 3219864259u, 538224650u, 0, FREXP_TOLERANCE, 0},
+{ 800, 3206153057u, 1379649610u, 0u, 4294967283u, 3219784545u, 1379649610u, 0, FREXP_TOLERANCE, 0},
+{ 801, 3196410507u, 3683897920u, 0u, 4294967274u, 3219479179u, 3683897920u, 0, FREXP_TOLERANCE, 0},
+{ 802, 3244167599u, 3647579469u, 0u, 23u, 3220050351u, 3647579469u, 0, FREXP_TOLERANCE, 0},
+{ 803, 1090280933u, 2694093608u, 0u, 17u, 1072455141u, 2694093608u, 0, FREXP_TOLERANCE, 0},
+{ 804, 1042775347u, 598406111u, 0u, 4294967268u, 1072135475u, 598406111u, 0, FREXP_TOLERANCE, 0},
+{ 805, 3211635392u, 872706833u, 0u, 4294967288u, 3220024000u, 872706833u, 0, FREXP_TOLERANCE, 0},
+{ 806, 1084802480u, 2200602798u, 0u, 12u, 1072219568u, 2200602798u, 0, FREXP_TOLERANCE, 0},
+{ 807, 1042339597u, 904146293u, 0u, 4294967268u, 1071699725u, 904146293u, 0, FREXP_TOLERANCE, 0},
+{ 808, 1060867322u, 1729685598u, 0u, 4294967285u, 1072401658u, 1729685598u, 0, FREXP_TOLERANCE, 0},
+{ 809, 3195694970u, 1894173462u, 0u, 4294967273u, 3219812218u, 1894173462u, 0, FREXP_TOLERANCE, 0},
+{ 810, 3232800651u, 191960416u, 0u, 13u, 3219169163u, 191960416u, 0, FREXP_TOLERANCE, 0},
+{ 811, 1091225343u, 3521028551u, 0u, 18u, 1072350975u, 3521028551u, 0, FREXP_TOLERANCE, 0},
+{ 812, 1054522089u, 3287274359u, 0u, 4294967279u, 1072347881u, 3287274359u, 0, FREXP_TOLERANCE, 0},
+{ 813, 1095386964u, 959640601u, 0u, 22u, 1072318292u, 959640601u, 0, FREXP_TOLERANCE, 0},
+{ 814, 3201578263u, 4136915018u, 0u, 4294967279u, 3219404055u, 4136915018u, 0, FREXP_TOLERANCE, 0},
+{ 815, 1064005451u, 1553716379u, 0u, 4294967288u, 1072394059u, 1553716379u, 0, FREXP_TOLERANCE, 0},
+{ 816, 1106027987u, 984725765u, 0u, 32u, 1072473555u, 984725765u, 0, FREXP_TOLERANCE, 0},
+{ 817, 3238832641u, 2287646644u, 0u, 18u, 3219958273u, 2287646644u, 0, FREXP_TOLERANCE, 0},
+{ 818, 3240329321u, 2276183378u, 0u, 20u, 3219357801u, 2276183378u, 0, FREXP_TOLERANCE, 0},
+{ 819, 1068209174u, 3940225170u, 0u, 4294967292u, 1072403478u, 3940225170u, 0, FREXP_TOLERANCE, 0},
+{ 820, 3199544434u, 997572161u, 0u, 4294967277u, 3219467378u, 997572161u, 0, FREXP_TOLERANCE, 0},
+{ 821, 3212768361u, 36116288u, 0u, 4294967289u, 3220108393u, 36116288u, 0, FREXP_TOLERANCE, 0},
+{ 822, 3206886566u, 4196602670u, 0u, 4294967284u, 3219469478u, 4196602670u, 0, FREXP_TOLERANCE, 0},
+{ 823, 3241695853u, 3550227562u, 0u, 21u, 3219675757u, 3550227562u, 0, FREXP_TOLERANCE, 0},
+{ 824, 3207257983u, 2747744117u, 0u, 4294967284u, 3219840895u, 2747744117u, 0, FREXP_TOLERANCE, 0},
+{ 825, 1104236126u, 507130047u, 0u, 31u, 1071730270u, 507130047u, 0, FREXP_TOLERANCE, 0},
+{ 826, 1048359321u, 3229888373u, 0u, 4294967273u, 1072476569u, 3229888373u, 0, FREXP_TOLERANCE, 0},
+{ 827, 3222996778u, 2210969014u, 0u, 3u, 3219851050u, 2210969014u, 0, FREXP_TOLERANCE, 0},
+{ 828, 1081031001u, 1946786091u, 0u, 8u, 1072642393u, 1946786091u, 0, FREXP_TOLERANCE, 0},
+{ 829, 3236306990u, 4059150589u, 0u, 16u, 3219529774u, 4059150589u, 0, FREXP_TOLERANCE, 0},
+{ 830, 3189759234u, 1177045799u, 0u, 4294967267u, 3220167938u, 1177045799u, 0, FREXP_TOLERANCE, 0},
+{ 831, 1093103612u, 2664812822u, 0u, 20u, 1072132092u, 2664812822u, 0, FREXP_TOLERANCE, 0},
+{ 832, 1050343198u, 2034180320u, 0u, 4294967275u, 1072363294u, 2034180320u, 0, FREXP_TOLERANCE, 0},
+{ 833, 3213779117u, 1175750283u, 0u, 4294967290u, 3220070573u, 1175750283u, 0, FREXP_TOLERANCE, 0},
+{ 834, 3235559706u, 1424491340u, 0u, 15u, 3219831066u, 1424491340u, 0, FREXP_TOLERANCE, 0},
+{ 835, 3213904193u, 1630036121u, 0u, 4294967291u, 3219147073u, 1630036121u, 0, FREXP_TOLERANCE, 0},
+{ 836, 3231972785u, 3195479448u, 0u, 12u, 3219389873u, 3195479448u, 0, FREXP_TOLERANCE, 0},
+{ 837, 1090429875u, 2527029044u, 0u, 17u, 1072604083u, 2527029044u, 0, FREXP_TOLERANCE, 0},
+{ 838, 1046927050u, 4000723255u, 0u, 4294967272u, 1072092874u, 4000723255u, 0, FREXP_TOLERANCE, 0},
+{ 839, 1085208677u, 3335703647u, 0u, 12u, 1072625765u, 3335703647u, 0, FREXP_TOLERANCE, 0},
+{ 840, 3237349676u, 3869440059u, 0u, 17u, 3219523884u, 3869440059u, 0, FREXP_TOLERANCE, 0},
+{ 841, 1091433848u, 3888398377u, 0u, 18u, 1072559480u, 3888398377u, 0, FREXP_TOLERANCE, 0},
+{ 842, 3196041693u, 1290567220u, 0u, 4294967273u, 3220158941u, 1290567220u, 0, FREXP_TOLERANCE, 0},
+{ 843, 1066679070u, 3242451480u, 0u, 4294967291u, 1071921950u, 3242451480u, 0, FREXP_TOLERANCE, 0},
+{ 844, 3248384948u, 707431021u, 0u, 27u, 3220073396u, 707431021u, 0, FREXP_TOLERANCE, 0},
+{ 845, 1083230509u, 2739665123u, 0u, 11u, 1071696173u, 2739665123u, 0, FREXP_TOLERANCE, 0},
+{ 846, 1060777905u, 1733073225u, 0u, 4294967285u, 1072312241u, 1733073225u, 0, FREXP_TOLERANCE, 0},
+{ 847, 1078517061u, 1297274853u, 0u, 6u, 1072225605u, 1297274853u, 0, FREXP_TOLERANCE, 0},
+{ 848, 3208848704u, 3341639139u, 0u, 4294967286u, 3219334464u, 3341639139u, 0, FREXP_TOLERANCE, 0},
+{ 849, 1046570941u, 2228057309u, 0u, 4294967272u, 1071736765u, 2228057309u, 0, FREXP_TOLERANCE, 0},
+{ 850, 1084318902u, 1317851136u, 0u, 12u, 1071735990u, 1317851136u, 0, FREXP_TOLERANCE, 0},
+{ 851, 1088255327u, 270039934u, 0u, 15u, 1072526687u, 270039934u, 0, FREXP_TOLERANCE, 0},
+{ 852, 3241414679u, 3063626339u, 0u, 21u, 3219394583u, 3063626339u, 0, FREXP_TOLERANCE, 0},
+{ 853, 3219178350u, 83062251u, 0u, 0u, 3219178350u, 83062251u, 0, FREXP_TOLERANCE, 0},
+{ 854, 3211262173u, 2659016437u, 0u, 4294967288u, 3219650781u, 2659016437u, 0, FREXP_TOLERANCE, 0},
+{ 855, 1095743886u, 3833539373u, 0u, 22u, 1072675214u, 3833539373u, 0, FREXP_TOLERANCE, 0},
+{ 856, 3206667189u, 1567476111u, 0u, 4294967284u, 3219250101u, 1567476111u, 0, FREXP_TOLERANCE, 0},
+{ 857, 3205195072u, 2382776852u, 0u, 4294967282u, 3219875136u, 2382776852u, 0, FREXP_TOLERANCE, 0},
+{ 858, 3249232579u, 1546622468u, 0u, 28u, 3219872451u, 1546622468u, 0, FREXP_TOLERANCE, 0},
+{ 859, 1085536439u, 1714300821u, 0u, 13u, 1071904951u, 1714300821u, 0, FREXP_TOLERANCE, 0},
+{ 860, 1104130938u, 4167591598u, 0u, 30u, 1072673658u, 4167591598u, 0, FREXP_TOLERANCE, 0},
+{ 861, 1051092760u, 2798720100u, 0u, 4294967276u, 1072064280u, 2798720100u, 0, FREXP_TOLERANCE, 0},
+{ 862, 1086978789u, 449990704u, 0u, 14u, 1072298725u, 449990704u, 0, FREXP_TOLERANCE, 0},
+{ 863, 3231198415u, 4039516226u, 0u, 11u, 3219664079u, 4039516226u, 0, FREXP_TOLERANCE, 0},
+{ 864, 3244344107u, 4272932619u, 0u, 24u, 3219178283u, 4272932619u, 0, FREXP_TOLERANCE, 0},
+{ 865, 3222708441u, 1683007544u, 0u, 3u, 3219562713u, 1683007544u, 0, FREXP_TOLERANCE, 0},
+{ 866, 1091105663u, 3805494321u, 0u, 18u, 1072231295u, 3805494321u, 0, FREXP_TOLERANCE, 0},
+{ 867, 3220852948u, 2072627412u, 0u, 1u, 3219804372u, 2072627412u, 0, FREXP_TOLERANCE, 0},
+{ 868, 1094383324u, 3394151662u, 0u, 21u, 1072363228u, 3394151662u, 0, FREXP_TOLERANCE, 0},
+{ 869, 3220570024u, 1120106427u, 0u, 1u, 3219521448u, 1120106427u, 0, FREXP_TOLERANCE, 0},
+{ 870, 3223631624u, 3404608264u, 0u, 4u, 3219437320u, 3404608264u, 0, FREXP_TOLERANCE, 0},
+{ 871, 1097859997u, 559918757u, 0u, 25u, 1071645597u, 559918757u, 0, FREXP_TOLERANCE, 0},
+{ 872, 3205077053u, 908100198u, 0u, 4294967282u, 3219757117u, 908100198u, 0, FREXP_TOLERANCE, 0},
+{ 873, 1042677918u, 2026673913u, 0u, 4294967268u, 1072038046u, 2026673913u, 0, FREXP_TOLERANCE, 0},
+{ 874, 3244833635u, 2844573214u, 0u, 24u, 3219667811u, 2844573214u, 0, FREXP_TOLERANCE, 0},
+{ 875, 3254567259u, 3946837259u, 0u, 33u, 3219964251u, 3946837259u, 0, FREXP_TOLERANCE, 0},
+{ 876, 3234993796u, 3850406820u, 0u, 15u, 3219265156u, 3850406820u, 0, FREXP_TOLERANCE, 0},
+{ 877, 1057479809u, 3139330994u, 0u, 4294967282u, 1072159873u, 3139330994u, 0, FREXP_TOLERANCE, 0},
+{ 878, 1046133568u, 1539650690u, 0u, 4294967271u, 1072347968u, 1539650690u, 0, FREXP_TOLERANCE, 0},
+{ 879, 3236705500u, 1554593884u, 0u, 16u, 3219928284u, 1554593884u, 0, FREXP_TOLERANCE, 0},
+{ 880, 3228899878u, 2813752562u, 0u, 9u, 3219462694u, 2813752562u, 0, FREXP_TOLERANCE, 0},
+{ 881, 1056505004u, 3804703138u, 0u, 4294967281u, 1072233644u, 3804703138u, 0, FREXP_TOLERANCE, 0},
+{ 882, 1072931071u, 2053677923u, 0u, 1u, 1071882495u, 2053677923u, 0, FREXP_TOLERANCE, 0},
+{ 883, 3244864299u, 289355864u, 0u, 24u, 3219698475u, 289355864u, 0, FREXP_TOLERANCE, 0},
+{ 884, 1078453818u, 2143066338u, 0u, 6u, 1072162362u, 2143066338u, 0, FREXP_TOLERANCE, 0},
+{ 885, 3203939880u, 2157691971u, 0u, 4294967281u, 3219668520u, 2157691971u, 0, FREXP_TOLERANCE, 0},
+{ 886, 1106629150u, 110806409u, 0u, 33u, 1072026142u, 110806409u, 0, FREXP_TOLERANCE, 0},
+{ 887, 1082157019u, 3570399481u, 0u, 10u, 1071671259u, 3570399481u, 0, FREXP_TOLERANCE, 0},
+{ 888, 1085637605u, 180265334u, 0u, 13u, 1072006117u, 180265334u, 0, FREXP_TOLERANCE, 0},
+{ 889, 3200980182u, 558779875u, 0u, 4294967278u, 3219854550u, 558779875u, 0, FREXP_TOLERANCE, 0},
+{ 890, 3202046748u, 2338464653u, 0u, 4294967279u, 3219872540u, 2338464653u, 0, FREXP_TOLERANCE, 0},
+{ 891, 1045705464u, 1703969219u, 0u, 4294967271u, 1071919864u, 1703969219u, 0, FREXP_TOLERANCE, 0},
+{ 892, 3229797258u, 1417521063u, 0u, 10u, 3219311498u, 1417521063u, 0, FREXP_TOLERANCE, 0},
+{ 893, 3237782261u, 3917440951u, 0u, 17u, 3219956469u, 3917440951u, 0, FREXP_TOLERANCE, 0},
+{ 894, 1051668894u, 3736066983u, 0u, 4294967276u, 1072640414u, 3736066983u, 0, FREXP_TOLERANCE, 0},
+{ 895, 1064752080u, 3106613409u, 0u, 4294967289u, 1072092112u, 3106613409u, 0, FREXP_TOLERANCE, 0},
+{ 896, 1066627453u, 2735392257u, 0u, 4294967291u, 1071870333u, 2735392257u, 0, FREXP_TOLERANCE, 0},
+{ 897, 1065665372u, 2229777605u, 0u, 4294967290u, 1071956828u, 2229777605u, 0, FREXP_TOLERANCE, 0},
+{ 898, 1065061963u, 2405869925u, 0u, 4294967289u, 1072401995u, 2405869925u, 0, FREXP_TOLERANCE, 0},
+{ 899, 3239463229u, 3967957902u, 0u, 19u, 3219540285u, 3967957902u, 0, FREXP_TOLERANCE, 0},
+{ 900, 1057416138u, 3459188071u, 0u, 4294967282u, 1072096202u, 3459188071u, 0, FREXP_TOLERANCE, 0},
+{ 901, 1068639210u, 3699016825u, 0u, 4294967293u, 1071784938u, 3699016825u, 0, FREXP_TOLERANCE, 0},
+{ 902, 3249713090u, 796144848u, 0u, 29u, 3219304386u, 796144848u, 0, FREXP_TOLERANCE, 0},
+{ 903, 3228816396u, 3285165564u, 0u, 9u, 3219379212u, 3285165564u, 0, FREXP_TOLERANCE, 0},
+{ 904, 3211948811u, 401510871u, 0u, 4294967289u, 3219288843u, 401510871u, 0, FREXP_TOLERANCE, 0},
+{ 905, 1094257658u, 634857910u, 0u, 21u, 1072237562u, 634857910u, 0, FREXP_TOLERANCE, 0},
+{ 906, 3199607513u, 914218057u, 0u, 4294967277u, 3219530457u, 914218057u, 0, FREXP_TOLERANCE, 0},
+{ 907, 1083743336u, 2030735578u, 0u, 11u, 1072209000u, 2030735578u, 0, FREXP_TOLERANCE, 0},
+{ 908, 3233855943u, 965677531u, 0u, 14u, 3219175879u, 965677531u, 0, FREXP_TOLERANCE, 0},
+{ 909, 1079556815u, 3957229084u, 0u, 7u, 1072216783u, 3957229084u, 0, FREXP_TOLERANCE, 0},
+{ 910, 1051050470u, 3123776651u, 0u, 4294967276u, 1072021990u, 3123776651u, 0, FREXP_TOLERANCE, 0},
+{ 911, 3221863333u, 162122081u, 0u, 2u, 3219766181u, 162122081u, 0, FREXP_TOLERANCE, 0},
+{ 912, 3239376395u, 108064594u, 0u, 19u, 3219453451u, 108064594u, 0, FREXP_TOLERANCE, 0},
+{ 913, 3237271786u, 869031839u, 0u, 17u, 3219445994u, 869031839u, 0, FREXP_TOLERANCE, 0},
+{ 914, 3225020876u, 1344301606u, 0u, 5u, 3219777996u, 1344301606u, 0, FREXP_TOLERANCE, 0},
+{ 915, 3214433474u, 946696117u, 0u, 4294967291u, 3219676354u, 946696117u, 0, FREXP_TOLERANCE, 0},
+{ 916, 3231825228u, 1700703647u, 0u, 12u, 3219242316u, 1700703647u, 0, FREXP_TOLERANCE, 0},
+{ 917, 1075492875u, 3394168074u, 0u, 3u, 1072347147u, 3394168074u, 0, FREXP_TOLERANCE, 0},
+{ 918, 1076939786u, 1666995668u, 0u, 5u, 1071696906u, 1666995668u, 0, FREXP_TOLERANCE, 0},
+{ 919, 3208774795u, 2488789804u, 0u, 4294967286u, 3219260555u, 2488789804u, 0, FREXP_TOLERANCE, 0},
+{ 920, 3238508333u, 1506943664u, 0u, 18u, 3219633965u, 1506943664u, 0, FREXP_TOLERANCE, 0},
+{ 921, 1072788663u, 3844072288u, 0u, 1u, 1071740087u, 3844072288u, 0, FREXP_TOLERANCE, 0},
+{ 922, 3202592279u, 2630019853u, 0u, 4294967280u, 3219369495u, 2630019853u, 0, FREXP_TOLERANCE, 0},
+{ 923, 3219934542u, 1244307192u, 0u, 0u, 3219934542u, 1244307192u, 0, FREXP_TOLERANCE, 0},
+{ 924, 3191297711u, 2540916692u, 0u, 4294967269u, 3219609263u, 2540916692u, 0, FREXP_TOLERANCE, 0},
+{ 925, 3200062692u, 2871645739u, 0u, 4294967277u, 3219985636u, 2871645739u, 0, FREXP_TOLERANCE, 0},
+{ 926, 3239081581u, 1440249115u, 0u, 19u, 3219158637u, 1440249115u, 0, FREXP_TOLERANCE, 0},
+{ 927, 1068350633u, 1231934926u, 0u, 4294967292u, 1072544937u, 1231934926u, 0, FREXP_TOLERANCE, 0},
+{ 928, 3236746788u, 603977748u, 0u, 16u, 3219969572u, 603977748u, 0, FREXP_TOLERANCE, 0},
+{ 929, 3195449689u, 2386312545u, 0u, 4294967273u, 3219566937u, 2386312545u, 0, FREXP_TOLERANCE, 0},
+{ 930, 1063169277u, 2715234268u, 0u, 4294967287u, 1072606461u, 2715234268u, 0, FREXP_TOLERANCE, 0},
+{ 931, 1087803418u, 915867083u, 0u, 15u, 1072074778u, 915867083u, 0, FREXP_TOLERANCE, 0},
+{ 932, 1046790892u, 3347417612u, 0u, 4294967272u, 1071956716u, 3347417612u, 0, FREXP_TOLERANCE, 0},
+{ 933, 1105984188u, 3553288373u, 0u, 32u, 1072429756u, 3553288373u, 0, FREXP_TOLERANCE, 0},
+{ 934, 1065698616u, 2906680663u, 0u, 4294967290u, 1071990072u, 2906680663u, 0, FREXP_TOLERANCE, 0},
+{ 935, 1045506226u, 2342364630u, 0u, 4294967271u, 1071720626u, 2342364630u, 0, FREXP_TOLERANCE, 0},
+{ 936, 1051356723u, 4019093203u, 0u, 4294967276u, 1072328243u, 4019093203u, 0, FREXP_TOLERANCE, 0},
+{ 937, 3201169162u, 2911548084u, 0u, 4294967278u, 3220043530u, 2911548084u, 0, FREXP_TOLERANCE, 0},
+{ 938, 1105282515u, 2476735795u, 0u, 32u, 1071728083u, 2476735795u, 0, FREXP_TOLERANCE, 0},
+{ 939, 1050472772u, 1836216409u, 0u, 4294967275u, 1072492868u, 1836216409u, 0, FREXP_TOLERANCE, 0},
+{ 940, 1101062307u, 2519592554u, 0u, 28u, 1071702179u, 2519592554u, 0, FREXP_TOLERANCE, 0},
+{ 941, 1070178161u, 1235369496u, 0u, 4294967294u, 1072275313u, 1235369496u, 0, FREXP_TOLERANCE, 0},
+{ 942, 3222946447u, 668087854u, 0u, 3u, 3219800719u, 668087854u, 0, FREXP_TOLERANCE, 0},
+{ 943, 3208554596u, 2981820811u, 0u, 4294967285u, 3220088932u, 2981820811u, 0, FREXP_TOLERANCE, 0},
+{ 944, 1059838516u, 2845580478u, 0u, 4294967284u, 1072421428u, 2845580478u, 0, FREXP_TOLERANCE, 0},
+{ 945, 3193931414u, 1565550570u, 0u, 4294967271u, 3220145814u, 1565550570u, 0, FREXP_TOLERANCE, 0},
+{ 946, 3217165795u, 4162017137u, 0u, 4294967294u, 3219262947u, 4162017137u, 0, FREXP_TOLERANCE, 0},
+{ 947, 3237251378u, 2808968027u, 0u, 17u, 3219425586u, 2808968027u, 0, FREXP_TOLERANCE, 0},
+{ 948, 1055630096u, 1782326814u, 0u, 4294967280u, 1072407312u, 1782326814u, 0, FREXP_TOLERANCE, 0},
+{ 949, 1053576974u, 1492622658u, 0u, 4294967278u, 1072451342u, 1492622658u, 0, FREXP_TOLERANCE, 0},
+{ 950, 3216653077u, 3972512122u, 0u, 4294967293u, 3219798805u, 3972512122u, 0, FREXP_TOLERANCE, 0},
+{ 951, 3222171679u, 2722693603u, 0u, 2u, 3220074527u, 2722693603u, 0, FREXP_TOLERANCE, 0},
+{ 952, 3227814791u, 3169731970u, 0u, 8u, 3219426183u, 3169731970u, 0, FREXP_TOLERANCE, 0},
+{ 953, 3217906631u, 899763203u, 0u, 4294967294u, 3220003783u, 899763203u, 0, FREXP_TOLERANCE, 0},
+{ 954, 3207606001u, 2804747833u, 0u, 4294967285u, 3219140337u, 2804747833u, 0, FREXP_TOLERANCE, 0},
+{ 955, 3230670325u, 3789058912u, 0u, 11u, 3219135989u, 3789058912u, 0, FREXP_TOLERANCE, 0},
+{ 956, 3228095081u, 4135937628u, 0u, 8u, 3219706473u, 4135937628u, 0, FREXP_TOLERANCE, 0},
+{ 957, 1060199382u, 1682808307u, 0u, 4294967285u, 1071733718u, 1682808307u, 0, FREXP_TOLERANCE, 0},
+{ 958, 3206960335u, 232877759u, 0u, 4294967284u, 3219543247u, 232877759u, 0, FREXP_TOLERANCE, 0},
+{ 959, 3242091486u, 2851963139u, 0u, 21u, 3220071390u, 2851963139u, 0, FREXP_TOLERANCE, 0},
+{ 960, 3246852961u, 2590862592u, 0u, 26u, 3219589985u, 2590862592u, 0, FREXP_TOLERANCE, 0},
+{ 961, 1081200406u, 2422232642u, 0u, 9u, 1071763222u, 2422232642u, 0, FREXP_TOLERANCE, 0},
+{ 962, 3234779662u, 290458310u, 0u, 14u, 3220099598u, 290458310u, 0, FREXP_TOLERANCE, 0},
+{ 963, 3210671078u, 1082582386u, 0u, 4294967287u, 3220108262u, 1082582386u, 0, FREXP_TOLERANCE, 0},
+{ 964, 1075605675u, 2602133689u, 0u, 3u, 1072459947u, 2602133689u, 0, FREXP_TOLERANCE, 0},
+{ 965, 3239818611u, 1789635787u, 0u, 19u, 3219895667u, 1789635787u, 0, FREXP_TOLERANCE, 0},
+{ 966, 1059414278u, 1048286093u, 0u, 4294967284u, 1071997190u, 1048286093u, 0, FREXP_TOLERANCE, 0},
+{ 967, 1098330542u, 231339448u, 0u, 25u, 1072116142u, 231339448u, 0, FREXP_TOLERANCE, 0},
+{ 968, 1055573265u, 504907415u, 0u, 4294967280u, 1072350481u, 504907415u, 0, FREXP_TOLERANCE, 0},
+{ 969, 1063211461u, 1153251200u, 0u, 4294967287u, 1072648645u, 1153251200u, 0, FREXP_TOLERANCE, 0},
+{ 970, 3204617090u, 1772013857u, 0u, 4294967282u, 3219297154u, 1772013857u, 0, FREXP_TOLERANCE, 0},
+{ 971, 1099551055u, 1082898276u, 0u, 26u, 1072288079u, 1082898276u, 0, FREXP_TOLERANCE, 0},
+{ 972, 3212089272u, 1449080862u, 0u, 4294967289u, 3219429304u, 1449080862u, 0, FREXP_TOLERANCE, 0},
+{ 973, 1086008285u, 3177299045u, 0u, 13u, 1072376797u, 3177299045u, 0, FREXP_TOLERANCE, 0},
+{ 974, 1058862813u, 809400815u, 0u, 4294967283u, 1072494301u, 809400815u, 0, FREXP_TOLERANCE, 0},
+{ 975, 3230854550u, 1924429710u, 0u, 11u, 3219320214u, 1924429710u, 0, FREXP_TOLERANCE, 0},
+{ 976, 1056464743u, 3349283177u, 0u, 4294967281u, 1072193383u, 3349283177u, 0, FREXP_TOLERANCE, 0},
+{ 977, 3245473391u, 42238036u, 0u, 25u, 3219258991u, 42238036u, 0, FREXP_TOLERANCE, 0},
+{ 978, 1042379500u, 2113559863u, 0u, 4294967268u, 1071739628u, 2113559863u, 0, FREXP_TOLERANCE, 0},
+{ 979, 1064761243u, 3304403230u, 0u, 4294967289u, 1072101275u, 3304403230u, 0, FREXP_TOLERANCE, 0},
+{ 980, 3217556703u, 58952646u, 0u, 4294967294u, 3219653855u, 58952646u, 0, FREXP_TOLERANCE, 0},
+{ 981, 3212669530u, 1645486982u, 0u, 4294967289u, 3220009562u, 1645486982u, 0, FREXP_TOLERANCE, 0},
+{ 982, 3224301095u, 3636267471u, 0u, 4u, 3220106791u, 3636267471u, 0, FREXP_TOLERANCE, 0},
+{ 983, 1062762009u, 619402181u, 0u, 4294967287u, 1072199193u, 619402181u, 0, FREXP_TOLERANCE, 0},
+{ 984, 3235208235u, 557360557u, 0u, 15u, 3219479595u, 557360557u, 0, FREXP_TOLERANCE, 0},
+{ 985, 3238238394u, 110029735u, 0u, 18u, 3219364026u, 110029735u, 0, FREXP_TOLERANCE, 0},
+{ 986, 1046937383u, 984375729u, 0u, 4294967272u, 1072103207u, 984375729u, 0, FREXP_TOLERANCE, 0},
+{ 987, 3189496738u, 4063688092u, 0u, 4294967267u, 3219905442u, 4063688092u, 0, FREXP_TOLERANCE, 0},
+{ 988, 3203235744u, 1049950343u, 0u, 4294967280u, 3220012960u, 1049950343u, 0, FREXP_TOLERANCE, 0},
+{ 989, 1062350619u, 650996069u, 0u, 4294967287u, 1071787803u, 650996069u, 0, FREXP_TOLERANCE, 0},
+{ 990, 1054971928u, 3953359826u, 0u, 4294967280u, 1071749144u, 3953359826u, 0, FREXP_TOLERANCE, 0},
+{ 991, 3227055805u, 66926332u, 0u, 7u, 3219715773u, 66926332u, 0, FREXP_TOLERANCE, 0},
+{ 992, 1090561839u, 1379780888u, 0u, 18u, 1071687471u, 1379780888u, 0, FREXP_TOLERANCE, 0},
+{ 993, 3233453307u, 2803378256u, 0u, 13u, 3219821819u, 2803378256u, 0, FREXP_TOLERANCE, 0},
+{ 994, 1086057989u, 498534626u, 0u, 13u, 1072426501u, 498534626u, 0, FREXP_TOLERANCE, 0},
+{ 995, 1082618553u, 2846400785u, 0u, 10u, 1072132793u, 2846400785u, 0, FREXP_TOLERANCE, 0},
+{ 996, 1047142525u, 1375153550u, 0u, 4294967272u, 1072308349u, 1375153550u, 0, FREXP_TOLERANCE, 0},
+{ 997, 1044581201u, 2869128958u, 0u, 4294967270u, 1071844177u, 2869128958u, 0, FREXP_TOLERANCE, 0},
+{ 998, 1070972315u, 4246440273u, 0u, 4294967295u, 1072020891u, 4246440273u, 0, FREXP_TOLERANCE, 0},
+{ 999, 1051832506u, 3112381207u, 0u, 4294967277u, 1071755450u, 3112381207u, 0, FREXP_TOLERANCE, 0},
+
+
+// AUTOMATICALLY GENERATED VECTORS STOP
+
+};
+
+#endif // CYGONCE_LIBM_FREXP_H multiple inclusion protection
+
+// EOF frexp.h
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/frexpf.c b/ecos/packages/language/c/libm/current/tests/vectors/frexpf.c
new file mode 100644
index 0000000..87a0435
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/frexpf.c
@@ -0,0 +1,115 @@
+//===========================================================================
+//
+// frexpf.c
+//
+// Test of frexpf() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// Declarations for test system:
+//
+// TESTCASE_TYPE=CYG_TEST_MODULE
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include <cyg/infra/testcase.h> // Test infrastructure
+#include <math.h> // Header for this package
+#include <sys/ieeefp.h> // Cyg_libm_ieee_float_shape_type
+#include "vectors/vector_support_float.h"// extra support for math tests
+
+#include "vectors/frexpf.h"
+
+// FUNCTIONS
+
+static void
+test( CYG_ADDRWORD data )
+{
+ cyg_ucount32 vec_size;
+ cyg_bool ret;
+
+ vec_size = sizeof(frexpf_vec) / sizeof(Cyg_libm_test_float_vec_t);
+ ret = doTestVecFloat( (CYG_ADDRWORD) &frexpf, CYG_LIBM_TEST_VEC_FLOAT,
+ CYG_LIBM_TEST_VEC_INT_P, CYG_LIBM_TEST_VEC_FLOAT,
+ &frexpf_vec[0], vec_size );
+
+ if (ret==true)
+ {
+ CYG_TEST_PASS("frexpf() is stable");
+ } // if
+ else
+ {
+ CYG_TEST_FAIL("frexpf() failed tests");
+ } // else
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for Math "
+ "library frexpf() function");
+} // test()
+
+
+int
+main(int argc, char *argv[])
+{
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for Math library "
+ "frexpf() function");
+
+ START_TEST( test );
+
+ CYG_TEST_PASS_FINISH("Testing is not applicable to this configuration");
+
+} // main()
+
+
+// EOF frexpf.c
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/frexpf.h b/ecos/packages/language/c/libm/current/tests/vectors/frexpf.h
new file mode 100644
index 0000000..95921df
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/frexpf.h
@@ -0,0 +1,528 @@
+#ifndef CYGONCE_LIBM_FREXPF_H
+#define CYGONCE_LIBM_FREXPF_H
+//===========================================================================
+//
+// frexpf.h
+//
+// Test vectors for testing of frexpf() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2013 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: ilijak
+// Date: 2013-06-26
+// Purpose:
+// Description:
+// Usage: #include "vectors/frexpf.h"
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include "vectors/vector_support_float.h"// extra support for math tests
+
+#define FREXPF_TOLERANCE 1.0E-04
+
+static const Cyg_libm_test_float_vec_t frexpf_vec[] = {
+
+// AUTOMATICALLY GENERATED VECTORS START
+{0, 3519987949u, 37u, 3209609453u, 0, FREXPF_TOLERANCE, 0 }, // -1.1100E+11=F( -0.8076, +37)
+{1, 3518632969u, 37u, 3208254473u, 0, FREXPF_TOLERANCE, 0 }, // -9.9900E+10=F( -0.7269, +37)
+{2, 3517277989u, 37u, 3206899493u, 0, FREXPF_TOLERANCE, 0 }, // -8.8800E+10=F( -0.6461, +37)
+{3, 3515923009u, 37u, 3205544513u, 0, FREXPF_TOLERANCE, 0 }, // -7.7700E+10=F( -0.5653, +37)
+{4, 3514309305u, 36u, 3212319417u, 0, FREXPF_TOLERANCE, 0 }, // -6.6600E+10=F( -0.9692, +36)
+{5, 3511599344u, 36u, 3209609456u, 0, FREXPF_TOLERANCE, 0 }, // -5.5500E+10=F( -0.8076, +36)
+{6, 3508889383u, 36u, 3206899495u, 0, FREXPF_TOLERANCE, 0 }, // -4.4400E+10=F( -0.6461, +36)
+{7, 3505920700u, 35u, 3212319420u, 0, FREXPF_TOLERANCE, 0 }, // -3.3300E+10=F( -0.9692, +35)
+{8, 3500500778u, 35u, 3206899498u, 0, FREXPF_TOLERANCE, 0 }, // -2.2200E+10=F( -0.6461, +35)
+{9, 3492112176u, 34u, 3206899504u, 0, FREXPF_TOLERANCE, 0 }, // -1.1100E+10=F( -0.6461, +34)
+{10, 3326345216u, 14u, 3208904704u, 0, FREXPF_TOLERANCE, 0 }, // -1.2544E+04=F( -0.7656, +14)
+{11, 3297435648u, 11u, 3205160960u, 0, FREXPF_TOLERANCE, 0 }, // -1.1110E+03=F( -0.5425, +11)
+{12, 3296329728u, 10u, 3212443648u, 0, FREXPF_TOLERANCE, 0 }, // -1.0000E+03=F( -0.9766, +10)
+{13, 3294511104u, 10u, 3210625024u, 0, FREXPF_TOLERANCE, 0 }, // -8.8900E+02=F( -0.8682, +10)
+{14, 3292692480u, 10u, 3208806400u, 0, FREXPF_TOLERANCE, 0 }, // -7.7800E+02=F( -0.7598, +10)
+{15, 3290873856u, 10u, 3206987776u, 0, FREXPF_TOLERANCE, 0 }, // -6.6700E+02=F( -0.6514, +10)
+{16, 3289055232u, 10u, 3205169152u, 0, FREXPF_TOLERANCE, 0 }, // -5.5600E+02=F( -0.543, +10)
+{17, 3286138880u, 9u, 3210641408u, 0, FREXPF_TOLERANCE, 0 }, // -4.4500E+02=F( -0.8691, +9)
+{18, 3282501632u, 9u, 3207004160u, 0, FREXPF_TOLERANCE, 0 }, // -3.3400E+02=F( -0.6523, +9)
+{19, 3277783040u, 8u, 3210674176u, 0, FREXPF_TOLERANCE, 0 }, // -2.2300E+02=F( -0.8711, +8)
+{20, 3269459968u, 7u, 3210739712u, 0, FREXPF_TOLERANCE, 0 }, // -1.1200E+02=F( -0.875, +7)
+{21, 3269328896u, 7u, 3210608640u, 0, FREXPF_TOLERANCE, 0 }, // -1.1100E+02=F( -0.8672, +7)
+{22, 3269184717u, 7u, 3210464461u, 0, FREXPF_TOLERANCE, 0 }, // -1.0990E+02=F( -0.8586, +7)
+{23, 3269040538u, 7u, 3210320282u, 0, FREXPF_TOLERANCE, 0 }, // -1.0880E+02=F( -0.85, +7)
+{24, 3268896359u, 7u, 3210176103u, 0, FREXPF_TOLERANCE, 0 }, // -1.0770E+02=F( -0.8414, +7)
+{25, 3268752180u, 7u, 3210031924u, 0, FREXPF_TOLERANCE, 0 }, // -1.0660E+02=F( -0.8328, +7)
+{26, 3268608001u, 7u, 3209887745u, 0, FREXPF_TOLERANCE, 0 }, // -1.0550E+02=F( -0.8242, +7)
+{27, 3268463822u, 7u, 3209743566u, 0, FREXPF_TOLERANCE, 0 }, // -1.0440E+02=F( -0.8156, +7)
+{28, 3268319643u, 7u, 3209599387u, 0, FREXPF_TOLERANCE, 0 }, // -1.0330E+02=F( -0.807, +7)
+{29, 3268175464u, 7u, 3209455208u, 0, FREXPF_TOLERANCE, 0 }, // -1.0220E+02=F( -0.7984, +7)
+{30, 3268031285u, 7u, 3209311029u, 0, FREXPF_TOLERANCE, 0 }, // -1.0110E+02=F( -0.7898, +7)
+{31, 3267887106u, 7u, 3209166850u, 0, FREXPF_TOLERANCE, 0 }, // -1.0000E+02=F( -0.7813, +7)
+{32, 3267742927u, 7u, 3209022671u, 0, FREXPF_TOLERANCE, 0 }, // -9.8900E+01=F( -0.7727, +7)
+{33, 3267598748u, 7u, 3208878492u, 0, FREXPF_TOLERANCE, 0 }, // -9.7800E+01=F( -0.7641, +7)
+{34, 3267454569u, 7u, 3208734313u, 0, FREXPF_TOLERANCE, 0 }, // -9.6700E+01=F( -0.7555, +7)
+{35, 3267310390u, 7u, 3208590134u, 0, FREXPF_TOLERANCE, 0 }, // -9.5600E+01=F( -0.7469, +7)
+{36, 3267166211u, 7u, 3208445955u, 0, FREXPF_TOLERANCE, 0 }, // -9.4500E+01=F( -0.7383, +7)
+{37, 3267022032u, 7u, 3208301776u, 0, FREXPF_TOLERANCE, 0 }, // -9.3400E+01=F( -0.7297, +7)
+{38, 3266877853u, 7u, 3208157597u, 0, FREXPF_TOLERANCE, 0 }, // -9.2300E+01=F( -0.7211, +7)
+{39, 3266733674u, 7u, 3208013418u, 0, FREXPF_TOLERANCE, 0 }, // -9.1200E+01=F( -0.7125, +7)
+{40, 3266589495u, 7u, 3207869239u, 0, FREXPF_TOLERANCE, 0 }, // -9.0100E+01=F( -0.7039, +7)
+{41, 3266445316u, 7u, 3207725060u, 0, FREXPF_TOLERANCE, 0 }, // -8.9000E+01=F( -0.6953, +7)
+{42, 3266301137u, 7u, 3207580881u, 0, FREXPF_TOLERANCE, 0 }, // -8.7900E+01=F( -0.6867, +7)
+{43, 3266156958u, 7u, 3207436702u, 0, FREXPF_TOLERANCE, 0 }, // -8.6800E+01=F( -0.6781, +7)
+{44, 3266012779u, 7u, 3207292523u, 0, FREXPF_TOLERANCE, 0 }, // -8.5700E+01=F( -0.6695, +7)
+{45, 3265868600u, 7u, 3207148344u, 0, FREXPF_TOLERANCE, 0 }, // -8.4600E+01=F( -0.6609, +7)
+{46, 3265724421u, 7u, 3207004165u, 0, FREXPF_TOLERANCE, 0 }, // -8.3500E+01=F( -0.6523, +7)
+{47, 3265580242u, 7u, 3206859986u, 0, FREXPF_TOLERANCE, 0 }, // -8.2400E+01=F( -0.6438, +7)
+{48, 3265436063u, 7u, 3206715807u, 0, FREXPF_TOLERANCE, 0 }, // -8.1300E+01=F( -0.6352, +7)
+{49, 3265291884u, 7u, 3206571628u, 0, FREXPF_TOLERANCE, 0 }, // -8.0200E+01=F( -0.6266, +7)
+{50, 3265147705u, 7u, 3206427449u, 0, FREXPF_TOLERANCE, 0 }, // -7.9100E+01=F( -0.618, +7)
+{51, 3265003526u, 7u, 3206283270u, 0, FREXPF_TOLERANCE, 0 }, // -7.8000E+01=F( -0.6094, +7)
+{52, 3264859347u, 7u, 3206139091u, 0, FREXPF_TOLERANCE, 0 }, // -7.6900E+01=F( -0.6008, +7)
+{53, 3264715168u, 7u, 3205994912u, 0, FREXPF_TOLERANCE, 0 }, // -7.5800E+01=F( -0.5922, +7)
+{54, 3264570989u, 7u, 3205850733u, 0, FREXPF_TOLERANCE, 0 }, // -7.4700E+01=F( -0.5836, +7)
+{55, 3264426810u, 7u, 3205706554u, 0, FREXPF_TOLERANCE, 0 }, // -7.3600E+01=F( -0.575, +7)
+{56, 3264282631u, 7u, 3205562375u, 0, FREXPF_TOLERANCE, 0 }, // -7.2500E+01=F( -0.5664, +7)
+{57, 3264138452u, 7u, 3205418196u, 0, FREXPF_TOLERANCE, 0 }, // -7.1400E+01=F( -0.5578, +7)
+{58, 3263994273u, 7u, 3205274017u, 0, FREXPF_TOLERANCE, 0 }, // -7.0300E+01=F( -0.5492, +7)
+{59, 3263850094u, 7u, 3205129838u, 0, FREXPF_TOLERANCE, 0 }, // -6.9200E+01=F( -0.5406, +7)
+{60, 3263705915u, 7u, 3204985659u, 0, FREXPF_TOLERANCE, 0 }, // -6.8100E+01=F( -0.532, +7)
+{61, 3263561736u, 7u, 3204841480u, 0, FREXPF_TOLERANCE, 0 }, // -6.7000E+01=F( -0.5234, +7)
+{62, 3263417557u, 7u, 3204697301u, 0, FREXPF_TOLERANCE, 0 }, // -6.5900E+01=F( -0.5148, +7)
+{63, 3263273378u, 7u, 3204553122u, 0, FREXPF_TOLERANCE, 0 }, // -6.4800E+01=F( -0.5063, +7)
+{64, 3263089886u, 6u, 3212758238u, 0, FREXPF_TOLERANCE, 0 }, // -6.3700E+01=F( -0.9953, +6)
+{65, 3262801528u, 6u, 3212469880u, 0, FREXPF_TOLERANCE, 0 }, // -6.2600E+01=F( -0.9781, +6)
+{66, 3262513170u, 6u, 3212181522u, 0, FREXPF_TOLERANCE, 0 }, // -6.1500E+01=F( -0.9609, +6)
+{67, 3262224812u, 6u, 3211893164u, 0, FREXPF_TOLERANCE, 0 }, // -6.0400E+01=F( -0.9438, +6)
+{68, 3261936454u, 6u, 3211604806u, 0, FREXPF_TOLERANCE, 0 }, // -5.9300E+01=F( -0.9266, +6)
+{69, 3261648096u, 6u, 3211316448u, 0, FREXPF_TOLERANCE, 0 }, // -5.8200E+01=F( -0.9094, +6)
+{70, 3261359738u, 6u, 3211028090u, 0, FREXPF_TOLERANCE, 0 }, // -5.7100E+01=F( -0.8922, +6)
+{71, 3261071380u, 6u, 3210739732u, 0, FREXPF_TOLERANCE, 0 }, // -5.6000E+01=F( -0.875, +6)
+{72, 3260783022u, 6u, 3210451374u, 0, FREXPF_TOLERANCE, 0 }, // -5.4900E+01=F( -0.8578, +6)
+{73, 3260494664u, 6u, 3210163016u, 0, FREXPF_TOLERANCE, 0 }, // -5.3800E+01=F( -0.8406, +6)
+{74, 3260206306u, 6u, 3209874658u, 0, FREXPF_TOLERANCE, 0 }, // -5.2700E+01=F( -0.8234, +6)
+{75, 3259917948u, 6u, 3209586300u, 0, FREXPF_TOLERANCE, 0 }, // -5.1600E+01=F( -0.8063, +6)
+{76, 3259629590u, 6u, 3209297942u, 0, FREXPF_TOLERANCE, 0 }, // -5.0500E+01=F( -0.7891, +6)
+{77, 3259341232u, 6u, 3209009584u, 0, FREXPF_TOLERANCE, 0 }, // -4.9400E+01=F( -0.7719, +6)
+{78, 3259052874u, 6u, 3208721226u, 0, FREXPF_TOLERANCE, 0 }, // -4.8300E+01=F( -0.7547, +6)
+{79, 3258764516u, 6u, 3208432868u, 0, FREXPF_TOLERANCE, 0 }, // -4.7200E+01=F( -0.7375, +6)
+{80, 3258476158u, 6u, 3208144510u, 0, FREXPF_TOLERANCE, 0 }, // -4.6100E+01=F( -0.7203, +6)
+{81, 3258187800u, 6u, 3207856152u, 0, FREXPF_TOLERANCE, 0 }, // -4.5000E+01=F( -0.7031, +6)
+{82, 3257899442u, 6u, 3207567794u, 0, FREXPF_TOLERANCE, 0 }, // -4.3900E+01=F( -0.6859, +6)
+{83, 3257611084u, 6u, 3207279436u, 0, FREXPF_TOLERANCE, 0 }, // -4.2800E+01=F( -0.6688, +6)
+{84, 3257322726u, 6u, 3206991078u, 0, FREXPF_TOLERANCE, 0 }, // -4.1700E+01=F( -0.6516, +6)
+{85, 3257034368u, 6u, 3206702720u, 0, FREXPF_TOLERANCE, 0 }, // -4.0600E+01=F( -0.6344, +6)
+{86, 3256746010u, 6u, 3206414362u, 0, FREXPF_TOLERANCE, 0 }, // -3.9500E+01=F( -0.6172, +6)
+{87, 3256457652u, 6u, 3206126004u, 0, FREXPF_TOLERANCE, 0 }, // -3.8400E+01=F( -0.6, +6)
+{88, 3256169294u, 6u, 3205837646u, 0, FREXPF_TOLERANCE, 0 }, // -3.7300E+01=F( -0.5828, +6)
+{89, 3255880936u, 6u, 3205549288u, 0, FREXPF_TOLERANCE, 0 }, // -3.6200E+01=F( -0.5656, +6)
+{90, 3255592578u, 6u, 3205260930u, 0, FREXPF_TOLERANCE, 0 }, // -3.5100E+01=F( -0.5484, +6)
+{91, 3255304220u, 6u, 3204972572u, 0, FREXPF_TOLERANCE, 0 }, // -3.4000E+01=F( -0.5313, +6)
+{92, 3255015862u, 6u, 3204684214u, 0, FREXPF_TOLERANCE, 0 }, // -3.2900E+01=F( -0.5141, +6)
+{93, 3254675103u, 5u, 3212732063u, 0, FREXPF_TOLERANCE, 0 }, // -3.1800E+01=F( -0.9938, +5)
+{94, 3254098386u, 5u, 3212155346u, 0, FREXPF_TOLERANCE, 0 }, // -3.0700E+01=F( -0.9594, +5)
+{95, 3253521669u, 5u, 3211578629u, 0, FREXPF_TOLERANCE, 0 }, // -2.9600E+01=F( -0.925, +5)
+{96, 3252944952u, 5u, 3211001912u, 0, FREXPF_TOLERANCE, 0 }, // -2.8500E+01=F( -0.8906, +5)
+{97, 3252368235u, 5u, 3210425195u, 0, FREXPF_TOLERANCE, 0 }, // -2.7400E+01=F( -0.8563, +5)
+{98, 3251791518u, 5u, 3209848478u, 0, FREXPF_TOLERANCE, 0 }, // -2.6300E+01=F( -0.8219, +5)
+{99, 3251214801u, 5u, 3209271761u, 0, FREXPF_TOLERANCE, 0 }, // -2.5200E+01=F( -0.7875, +5)
+{100, 3250638084u, 5u, 3208695044u, 0, FREXPF_TOLERANCE, 0 }, // -2.4100E+01=F( -0.7531, +5)
+{101, 3250061367u, 5u, 3208118327u, 0, FREXPF_TOLERANCE, 0 }, // -2.3000E+01=F( -0.7188, +5)
+{102, 3249484650u, 5u, 3207541610u, 0, FREXPF_TOLERANCE, 0 }, // -2.1900E+01=F( -0.6844, +5)
+{103, 3248907933u, 5u, 3206964893u, 0, FREXPF_TOLERANCE, 0 }, // -2.0800E+01=F( -0.65, +5)
+{104, 3248331216u, 5u, 3206388176u, 0, FREXPF_TOLERANCE, 0 }, // -1.9700E+01=F( -0.6156, +5)
+{105, 3247754499u, 5u, 3205811459u, 0, FREXPF_TOLERANCE, 0 }, // -1.8600E+01=F( -0.5813, +5)
+{106, 3247177782u, 5u, 3205234742u, 0, FREXPF_TOLERANCE, 0 }, // -1.7500E+01=F( -0.5469, +5)
+{107, 3246601065u, 5u, 3204658025u, 0, FREXPF_TOLERANCE, 0 }, // -1.6400E+01=F( -0.5125, +5)
+{108, 3245657400u, 4u, 3212102968u, 0, FREXPF_TOLERANCE, 0 }, // -1.5300E+01=F( -0.9563, +4)
+{109, 3244503966u, 4u, 3210949534u, 0, FREXPF_TOLERANCE, 0 }, // -1.4200E+01=F( -0.8875, +4)
+{110, 3243350532u, 4u, 3209796100u, 0, FREXPF_TOLERANCE, 0 }, // -1.3100E+01=F( -0.8188, +4)
+{111, 3242197098u, 4u, 3208642666u, 0, FREXPF_TOLERANCE, 0 }, // -1.2000E+01=F( -0.75, +4)
+{112, 3241043664u, 4u, 3207489232u, 0, FREXPF_TOLERANCE, 0 }, // -1.0900E+01=F( -0.6813, +4)
+{113, 3239890230u, 4u, 3206335798u, 0, FREXPF_TOLERANCE, 0 }, // -9.8001E+00=F( -0.6125, +4)
+{114, 3238736796u, 4u, 3205182364u, 0, FREXPF_TOLERANCE, 0 }, // -8.7001E+00=F( -0.5438, +4)
+{115, 3237164037u, 3u, 3211998213u, 0, FREXPF_TOLERANCE, 0 }, // -7.6001E+00=F( -0.95, +3)
+{116, 3234857170u, 3u, 3209691346u, 0, FREXPF_TOLERANCE, 0 }, // -6.5001E+00=F( -0.8125, +3)
+{117, 3232550303u, 3u, 3207384479u, 0, FREXPF_TOLERANCE, 0 }, // -5.4001E+00=F( -0.675, +3)
+{118, 3230243436u, 3u, 3205077612u, 0, FREXPF_TOLERANCE, 0 }, // -4.3001E+00=F( -0.5375, +3)
+{119, 3226259058u, 2u, 3209481842u, 0, FREXPF_TOLERANCE, 0 }, // -3.2001E+00=F( -0.8, +2)
+{120, 3221645324u, 2u, 3204868108u, 0, FREXPF_TOLERANCE, 0 }, // -2.1001E+00=F( -0.525, +2)
+{121, 3213675725u, 1u, 3205287117u, 0, FREXPF_TOLERANCE, 0 }, // -1.1000E+00=F( -0.55, +1)
+{122, 3213583450u, 1u, 3205194842u, 0, FREXPF_TOLERANCE, 0 }, // -1.0890E+00=F( -0.5445, +1)
+{123, 3213491175u, 1u, 3205102567u, 0, FREXPF_TOLERANCE, 0 }, // -1.0780E+00=F( -0.539, +1)
+{124, 3213398900u, 1u, 3205010292u, 0, FREXPF_TOLERANCE, 0 }, // -1.0670E+00=F( -0.5335, +1)
+{125, 3213306625u, 1u, 3204918017u, 0, FREXPF_TOLERANCE, 0 }, // -1.0560E+00=F( -0.528, +1)
+{126, 3213214350u, 1u, 3204825742u, 0, FREXPF_TOLERANCE, 0 }, // -1.0450E+00=F( -0.5225, +1)
+{127, 3213122075u, 1u, 3204733467u, 0, FREXPF_TOLERANCE, 0 }, // -1.0340E+00=F( -0.517, +1)
+{128, 3213029800u, 1u, 3204641192u, 0, FREXPF_TOLERANCE, 0 }, // -1.0230E+00=F( -0.5115, +1)
+{129, 3212937525u, 1u, 3204548917u, 0, FREXPF_TOLERANCE, 0 }, // -1.0120E+00=F( -0.506, +1)
+{130, 3212845250u, 1u, 3204456642u, 0, FREXPF_TOLERANCE, 0 }, // -1.0010E+00=F( -0.5005, +1)
+{131, 3212669087u, 0u, 3212669087u, 0, FREXPF_TOLERANCE, 0 }, // -9.9000E-01=F( -0.99, +0)
+{132, 3212484538u, 0u, 3212484538u, 0, FREXPF_TOLERANCE, 0 }, // -9.7900E-01=F( -0.979, +0)
+{133, 3212299989u, 0u, 3212299989u, 0, FREXPF_TOLERANCE, 0 }, // -9.6800E-01=F( -0.968, +0)
+{134, 3212115440u, 0u, 3212115440u, 0, FREXPF_TOLERANCE, 0 }, // -9.5700E-01=F( -0.957, +0)
+{135, 3211930891u, 0u, 3211930891u, 0, FREXPF_TOLERANCE, 0 }, // -9.4600E-01=F( -0.946, +0)
+{136, 3211746342u, 0u, 3211746342u, 0, FREXPF_TOLERANCE, 0 }, // -9.3500E-01=F( -0.935, +0)
+{137, 3211561793u, 0u, 3211561793u, 0, FREXPF_TOLERANCE, 0 }, // -9.2400E-01=F( -0.924, +0)
+{138, 3211377244u, 0u, 3211377244u, 0, FREXPF_TOLERANCE, 0 }, // -9.1300E-01=F( -0.913, +0)
+{139, 3211192695u, 0u, 3211192695u, 0, FREXPF_TOLERANCE, 0 }, // -9.0200E-01=F( -0.902, +0)
+{140, 3211008146u, 0u, 3211008146u, 0, FREXPF_TOLERANCE, 0 }, // -8.9100E-01=F( -0.891, +0)
+{141, 3210823597u, 0u, 3210823597u, 0, FREXPF_TOLERANCE, 0 }, // -8.8000E-01=F( -0.88, +0)
+{142, 3210639048u, 0u, 3210639048u, 0, FREXPF_TOLERANCE, 0 }, // -8.6900E-01=F( -0.869, +0)
+{143, 3210454499u, 0u, 3210454499u, 0, FREXPF_TOLERANCE, 0 }, // -8.5800E-01=F( -0.858, +0)
+{144, 3210269950u, 0u, 3210269950u, 0, FREXPF_TOLERANCE, 0 }, // -8.4700E-01=F( -0.847, +0)
+{145, 3210085401u, 0u, 3210085401u, 0, FREXPF_TOLERANCE, 0 }, // -8.3600E-01=F( -0.836, +0)
+{146, 3209900852u, 0u, 3209900852u, 0, FREXPF_TOLERANCE, 0 }, // -8.2500E-01=F( -0.825, +0)
+{147, 3209716303u, 0u, 3209716303u, 0, FREXPF_TOLERANCE, 0 }, // -8.1400E-01=F( -0.814, +0)
+{148, 3209531754u, 0u, 3209531754u, 0, FREXPF_TOLERANCE, 0 }, // -8.0300E-01=F( -0.803, +0)
+{149, 3209347205u, 0u, 3209347205u, 0, FREXPF_TOLERANCE, 0 }, // -7.9200E-01=F( -0.792, +0)
+{150, 3209162656u, 0u, 3209162656u, 0, FREXPF_TOLERANCE, 0 }, // -7.8100E-01=F( -0.781, +0)
+{151, 3208978107u, 0u, 3208978107u, 0, FREXPF_TOLERANCE, 0 }, // -7.7000E-01=F( -0.77, +0)
+{152, 3208793558u, 0u, 3208793558u, 0, FREXPF_TOLERANCE, 0 }, // -7.5900E-01=F( -0.759, +0)
+{153, 3208609009u, 0u, 3208609009u, 0, FREXPF_TOLERANCE, 0 }, // -7.4800E-01=F( -0.748, +0)
+{154, 3208424460u, 0u, 3208424460u, 0, FREXPF_TOLERANCE, 0 }, // -7.3700E-01=F( -0.737, +0)
+{155, 3208239911u, 0u, 3208239911u, 0, FREXPF_TOLERANCE, 0 }, // -7.2600E-01=F( -0.726, +0)
+{156, 3208055362u, 0u, 3208055362u, 0, FREXPF_TOLERANCE, 0 }, // -7.1500E-01=F( -0.715, +0)
+{157, 3207870813u, 0u, 3207870813u, 0, FREXPF_TOLERANCE, 0 }, // -7.0400E-01=F( -0.704, +0)
+{158, 3207686264u, 0u, 3207686264u, 0, FREXPF_TOLERANCE, 0 }, // -6.9300E-01=F( -0.693, +0)
+{159, 3207501715u, 0u, 3207501715u, 0, FREXPF_TOLERANCE, 0 }, // -6.8200E-01=F( -0.682, +0)
+{160, 3207317166u, 0u, 3207317166u, 0, FREXPF_TOLERANCE, 0 }, // -6.7100E-01=F( -0.671, +0)
+{161, 3207132617u, 0u, 3207132617u, 0, FREXPF_TOLERANCE, 0 }, // -6.6000E-01=F( -0.66, +0)
+{162, 3206948068u, 0u, 3206948068u, 0, FREXPF_TOLERANCE, 0 }, // -6.4900E-01=F( -0.649, +0)
+{163, 3206763519u, 0u, 3206763519u, 0, FREXPF_TOLERANCE, 0 }, // -6.3800E-01=F( -0.638, +0)
+{164, 3206578970u, 0u, 3206578970u, 0, FREXPF_TOLERANCE, 0 }, // -6.2700E-01=F( -0.627, +0)
+{165, 3206394421u, 0u, 3206394421u, 0, FREXPF_TOLERANCE, 0 }, // -6.1600E-01=F( -0.616, +0)
+{166, 3206209872u, 0u, 3206209872u, 0, FREXPF_TOLERANCE, 0 }, // -6.0500E-01=F( -0.605, +0)
+{167, 3206025323u, 0u, 3206025323u, 0, FREXPF_TOLERANCE, 0 }, // -5.9400E-01=F( -0.594, +0)
+{168, 3205840774u, 0u, 3205840774u, 0, FREXPF_TOLERANCE, 0 }, // -5.8300E-01=F( -0.583, +0)
+{169, 3205656225u, 0u, 3205656225u, 0, FREXPF_TOLERANCE, 0 }, // -5.7200E-01=F( -0.572, +0)
+{170, 3205471676u, 0u, 3205471676u, 0, FREXPF_TOLERANCE, 0 }, // -5.6100E-01=F( -0.561, +0)
+{171, 3205287127u, 0u, 3205287127u, 0, FREXPF_TOLERANCE, 0 }, // -5.5000E-01=F( -0.55, +0)
+{172, 3205102578u, 0u, 3205102578u, 0, FREXPF_TOLERANCE, 0 }, // -5.3900E-01=F( -0.539, +0)
+{173, 3204918029u, 0u, 3204918029u, 0, FREXPF_TOLERANCE, 0 }, // -5.2800E-01=F( -0.528, +0)
+{174, 3204733480u, 0u, 3204733480u, 0, FREXPF_TOLERANCE, 0 }, // -5.1700E-01=F( -0.517, +0)
+{175, 3204548931u, 0u, 3204548931u, 0, FREXPF_TOLERANCE, 0 }, // -5.0600E-01=F( -0.506, +0)
+{176, 3204280507u, 4294967295u, 3212669115u, 0, FREXPF_TOLERANCE, 0 }, // -4.9500E-01=F( -0.99, -1)
+{177, 3203911408u, 4294967295u, 3212300016u, 0, FREXPF_TOLERANCE, 0 }, // -4.8400E-01=F( -0.968, -1)
+{178, 3203542309u, 4294967295u, 3211930917u, 0, FREXPF_TOLERANCE, 0 }, // -4.7300E-01=F( -0.946, -1)
+{179, 3203173210u, 4294967295u, 3211561818u, 0, FREXPF_TOLERANCE, 0 }, // -4.6200E-01=F( -0.924, -1)
+{180, 3202804111u, 4294967295u, 3211192719u, 0, FREXPF_TOLERANCE, 0 }, // -4.5100E-01=F( -0.902, -1)
+{181, 3202435012u, 4294967295u, 3210823620u, 0, FREXPF_TOLERANCE, 0 }, // -4.4000E-01=F( -0.88, -1)
+{182, 3202065913u, 4294967295u, 3210454521u, 0, FREXPF_TOLERANCE, 0 }, // -4.2900E-01=F( -0.858, -1)
+{183, 3201696814u, 4294967295u, 3210085422u, 0, FREXPF_TOLERANCE, 0 }, // -4.1800E-01=F( -0.836, -1)
+{184, 3201327715u, 4294967295u, 3209716323u, 0, FREXPF_TOLERANCE, 0 }, // -4.0700E-01=F( -0.814, -1)
+{185, 3200958616u, 4294967295u, 3209347224u, 0, FREXPF_TOLERANCE, 0 }, // -3.9600E-01=F( -0.792, -1)
+{186, 3200589517u, 4294967295u, 3208978125u, 0, FREXPF_TOLERANCE, 0 }, // -3.8500E-01=F( -0.77, -1)
+{187, 3200220418u, 4294967295u, 3208609026u, 0, FREXPF_TOLERANCE, 0 }, // -3.7400E-01=F( -0.748, -1)
+{188, 3199851319u, 4294967295u, 3208239927u, 0, FREXPF_TOLERANCE, 0 }, // -3.6300E-01=F( -0.726, -1)
+{189, 3199482220u, 4294967295u, 3207870828u, 0, FREXPF_TOLERANCE, 0 }, // -3.5200E-01=F( -0.704, -1)
+{190, 3199113121u, 4294967295u, 3207501729u, 0, FREXPF_TOLERANCE, 0 }, // -3.4100E-01=F( -0.682, -1)
+{191, 3198744022u, 4294967295u, 3207132630u, 0, FREXPF_TOLERANCE, 0 }, // -3.3000E-01=F( -0.66, -1)
+{192, 3198374923u, 4294967295u, 3206763531u, 0, FREXPF_TOLERANCE, 0 }, // -3.1900E-01=F( -0.638, -1)
+{193, 3198005824u, 4294967295u, 3206394432u, 0, FREXPF_TOLERANCE, 0 }, // -3.0800E-01=F( -0.616, -1)
+{194, 3197636725u, 4294967295u, 3206025333u, 0, FREXPF_TOLERANCE, 0 }, // -2.9700E-01=F( -0.594, -1)
+{195, 3197267626u, 4294967295u, 3205656234u, 0, FREXPF_TOLERANCE, 0 }, // -2.8600E-01=F( -0.572, -1)
+{196, 3196898527u, 4294967295u, 3205287135u, 0, FREXPF_TOLERANCE, 0 }, // -2.7500E-01=F( -0.55, -1)
+{197, 3196529428u, 4294967295u, 3204918036u, 0, FREXPF_TOLERANCE, 0 }, // -2.6400E-01=F( -0.528, -1)
+{198, 3196160329u, 4294967295u, 3204548937u, 0, FREXPF_TOLERANCE, 0 }, // -2.5300E-01=F( -0.506, -1)
+{199, 3195522812u, 4294967294u, 3212300028u, 0, FREXPF_TOLERANCE, 0 }, // -2.4200E-01=F( -0.968, -2)
+{200, 3194784614u, 4294967294u, 3211561830u, 0, FREXPF_TOLERANCE, 0 }, // -2.3100E-01=F( -0.924, -2)
+{201, 3194046416u, 4294967294u, 3210823632u, 0, FREXPF_TOLERANCE, 0 }, // -2.2000E-01=F( -0.88, -2)
+{202, 3193308218u, 4294967294u, 3210085434u, 0, FREXPF_TOLERANCE, 0 }, // -2.0900E-01=F( -0.836, -2)
+{203, 3192570020u, 4294967294u, 3209347236u, 0, FREXPF_TOLERANCE, 0 }, // -1.9800E-01=F( -0.792, -2)
+{204, 3191831822u, 4294967294u, 3208609038u, 0, FREXPF_TOLERANCE, 0 }, // -1.8700E-01=F( -0.748, -2)
+{205, 3191093624u, 4294967294u, 3207870840u, 0, FREXPF_TOLERANCE, 0 }, // -1.7600E-01=F( -0.704, -2)
+{206, 3190355426u, 4294967294u, 3207132642u, 0, FREXPF_TOLERANCE, 0 }, // -1.6500E-01=F( -0.66, -2)
+{207, 3189617228u, 4294967294u, 3206394444u, 0, FREXPF_TOLERANCE, 0 }, // -1.5400E-01=F( -0.616, -2)
+{208, 3188879030u, 4294967294u, 3205656246u, 0, FREXPF_TOLERANCE, 0 }, // -1.4300E-01=F( -0.572, -2)
+{209, 3188140832u, 4294967294u, 3204918048u, 0, FREXPF_TOLERANCE, 0 }, // -1.3200E-01=F( -0.528, -2)
+{210, 3187134229u, 4294967293u, 3212300053u, 0, FREXPF_TOLERANCE, 0 }, // -1.2100E-01=F( -0.968, -3)
+{211, 3185657834u, 4294967293u, 3210823658u, 0, FREXPF_TOLERANCE, 0 }, // -1.1000E-01=F( -0.88, -3)
+{212, 3184181439u, 4294967293u, 3209347263u, 0, FREXPF_TOLERANCE, 0 }, // -9.9000E-02=F( -0.792, -3)
+{213, 3182705044u, 4294967293u, 3207870868u, 0, FREXPF_TOLERANCE, 0 }, // -8.8000E-02=F( -0.704, -3)
+{214, 3181228649u, 4294967293u, 3206394473u, 0, FREXPF_TOLERANCE, 0 }, // -7.7000E-02=F( -0.616, -3)
+{215, 3179752254u, 4294967293u, 3204918078u, 0, FREXPF_TOLERANCE, 0 }, // -6.6000E-02=F( -0.528, -3)
+{216, 3177269286u, 4294967292u, 3210823718u, 0, FREXPF_TOLERANCE, 0 }, // -5.5000E-02=F( -0.88, -4)
+{217, 3174316496u, 4294967292u, 3207870928u, 0, FREXPF_TOLERANCE, 0 }, // -4.4000E-02=F( -0.704, -4)
+{218, 3171363706u, 4294967292u, 3204918138u, 0, FREXPF_TOLERANCE, 0 }, // -3.3000E-02=F( -0.528, -4)
+{219, 3165928008u, 4294967291u, 3207871048u, 0, FREXPF_TOLERANCE, 0 }, // -2.2000E-02=F( -0.704, -5)
+{220, 3157539640u, 4294967290u, 3207871288u, 0, FREXPF_TOLERANCE, 0 }, // -1.1000E-02=F( -0.704, -6)
+{221, 3035625423u, 4294967275u, 3211786191u, 0, FREXPF_TOLERANCE, 0 }, // -4.4698E-07=F( -0.9374, -21)
+{222, 1010055032u, 4294967290u, 1060386680u, 0, FREXPF_TOLERANCE, 0 }, // +1.1000E-02=F( +0.704, -6)
+{223, 1018443880u, 4294967291u, 1060386920u, 0, FREXPF_TOLERANCE, 0 }, // +2.2000E-02=F( +0.704, -5)
+{224, 1023879818u, 4294967292u, 1057434250u, 0, FREXPF_TOLERANCE, 0 }, // +3.3000E-02=F( +0.528, -4)
+{225, 1026832608u, 4294967292u, 1060387040u, 0, FREXPF_TOLERANCE, 0 }, // +4.4000E-02=F( +0.704, -4)
+{226, 1029785398u, 4294967292u, 1063339830u, 0, FREXPF_TOLERANCE, 0 }, // +5.5000E-02=F( +0.88, -4)
+{227, 1032268486u, 4294967293u, 1057434310u, 0, FREXPF_TOLERANCE, 0 }, // +6.6000E-02=F( +0.528, -3)
+{228, 1033744881u, 4294967293u, 1058910705u, 0, FREXPF_TOLERANCE, 0 }, // +7.7000E-02=F( +0.616, -3)
+{229, 1035221276u, 4294967293u, 1060387100u, 0, FREXPF_TOLERANCE, 0 }, // +8.8000E-02=F( +0.704, -3)
+{230, 1036697671u, 4294967293u, 1061863495u, 0, FREXPF_TOLERANCE, 0 }, // +9.9000E-02=F( +0.792, -3)
+{231, 1038174066u, 4294967293u, 1063339890u, 0, FREXPF_TOLERANCE, 0 }, // +1.1000E-01=F( +0.88, -3)
+{232, 1039650461u, 4294967293u, 1064816285u, 0, FREXPF_TOLERANCE, 0 }, // +1.2100E-01=F( +0.968, -3)
+{233, 1040657124u, 4294967294u, 1057434340u, 0, FREXPF_TOLERANCE, 0 }, // +1.3200E-01=F( +0.528, -2)
+{234, 1041395322u, 4294967294u, 1058172538u, 0, FREXPF_TOLERANCE, 0 }, // +1.4300E-01=F( +0.572, -2)
+{235, 1042133520u, 4294967294u, 1058910736u, 0, FREXPF_TOLERANCE, 0 }, // +1.5400E-01=F( +0.616, -2)
+{236, 1042871718u, 4294967294u, 1059648934u, 0, FREXPF_TOLERANCE, 0 }, // +1.6500E-01=F( +0.66, -2)
+{237, 1043609916u, 4294967294u, 1060387132u, 0, FREXPF_TOLERANCE, 0 }, // +1.7600E-01=F( +0.704, -2)
+{238, 1044348114u, 4294967294u, 1061125330u, 0, FREXPF_TOLERANCE, 0 }, // +1.8700E-01=F( +0.748, -2)
+{239, 1045086312u, 4294967294u, 1061863528u, 0, FREXPF_TOLERANCE, 0 }, // +1.9800E-01=F( +0.792, -2)
+{240, 1045824510u, 4294967294u, 1062601726u, 0, FREXPF_TOLERANCE, 0 }, // +2.0900E-01=F( +0.836, -2)
+{241, 1046562708u, 4294967294u, 1063339924u, 0, FREXPF_TOLERANCE, 0 }, // +2.2000E-01=F( +0.88, -2)
+{242, 1047300906u, 4294967294u, 1064078122u, 0, FREXPF_TOLERANCE, 0 }, // +2.3100E-01=F( +0.924, -2)
+{243, 1048039104u, 4294967294u, 1064816320u, 0, FREXPF_TOLERANCE, 0 }, // +2.4200E-01=F( +0.968, -2)
+{244, 1048676651u, 4294967295u, 1057065259u, 0, FREXPF_TOLERANCE, 0 }, // +2.5300E-01=F( +0.506, -1)
+{245, 1049045750u, 4294967295u, 1057434358u, 0, FREXPF_TOLERANCE, 0 }, // +2.6400E-01=F( +0.528, -1)
+{246, 1049414849u, 4294967295u, 1057803457u, 0, FREXPF_TOLERANCE, 0 }, // +2.7500E-01=F( +0.55, -1)
+{247, 1049783948u, 4294967295u, 1058172556u, 0, FREXPF_TOLERANCE, 0 }, // +2.8600E-01=F( +0.572, -1)
+{248, 1050153047u, 4294967295u, 1058541655u, 0, FREXPF_TOLERANCE, 0 }, // +2.9700E-01=F( +0.594, -1)
+{249, 1050522146u, 4294967295u, 1058910754u, 0, FREXPF_TOLERANCE, 0 }, // +3.0800E-01=F( +0.616, -1)
+{250, 1050891245u, 4294967295u, 1059279853u, 0, FREXPF_TOLERANCE, 0 }, // +3.1900E-01=F( +0.638, -1)
+{251, 1051260344u, 4294967295u, 1059648952u, 0, FREXPF_TOLERANCE, 0 }, // +3.3000E-01=F( +0.66, -1)
+{252, 1051629443u, 4294967295u, 1060018051u, 0, FREXPF_TOLERANCE, 0 }, // +3.4100E-01=F( +0.682, -1)
+{253, 1051998542u, 4294967295u, 1060387150u, 0, FREXPF_TOLERANCE, 0 }, // +3.5200E-01=F( +0.704, -1)
+{254, 1052367641u, 4294967295u, 1060756249u, 0, FREXPF_TOLERANCE, 0 }, // +3.6300E-01=F( +0.726, -1)
+{255, 1052736740u, 4294967295u, 1061125348u, 0, FREXPF_TOLERANCE, 0 }, // +3.7400E-01=F( +0.748, -1)
+{256, 1053105839u, 4294967295u, 1061494447u, 0, FREXPF_TOLERANCE, 0 }, // +3.8500E-01=F( +0.77, -1)
+{257, 1053474938u, 4294967295u, 1061863546u, 0, FREXPF_TOLERANCE, 0 }, // +3.9600E-01=F( +0.792, -1)
+{258, 1053844037u, 4294967295u, 1062232645u, 0, FREXPF_TOLERANCE, 0 }, // +4.0700E-01=F( +0.814, -1)
+{259, 1054213136u, 4294967295u, 1062601744u, 0, FREXPF_TOLERANCE, 0 }, // +4.1800E-01=F( +0.836, -1)
+{260, 1054582235u, 4294967295u, 1062970843u, 0, FREXPF_TOLERANCE, 0 }, // +4.2900E-01=F( +0.858, -1)
+{261, 1054951334u, 4294967295u, 1063339942u, 0, FREXPF_TOLERANCE, 0 }, // +4.4000E-01=F( +0.88, -1)
+{262, 1055320433u, 4294967295u, 1063709041u, 0, FREXPF_TOLERANCE, 0 }, // +4.5100E-01=F( +0.902, -1)
+{263, 1055689532u, 4294967295u, 1064078140u, 0, FREXPF_TOLERANCE, 0 }, // +4.6200E-01=F( +0.924, -1)
+{264, 1056058631u, 4294967295u, 1064447239u, 0, FREXPF_TOLERANCE, 0 }, // +4.7300E-01=F( +0.946, -1)
+{265, 1056427730u, 4294967295u, 1064816338u, 0, FREXPF_TOLERANCE, 0 }, // +4.8400E-01=F( +0.968, -1)
+{266, 1056796829u, 4294967295u, 1065185437u, 0, FREXPF_TOLERANCE, 0 }, // +4.9500E-01=F( +0.99, -1)
+{267, 1057065268u, 0u, 1057065268u, 0, FREXPF_TOLERANCE, 0 }, // +5.0600E-01=F( +0.506, +0)
+{268, 1057249817u, 0u, 1057249817u, 0, FREXPF_TOLERANCE, 0 }, // +5.1700E-01=F( +0.517, +0)
+{269, 1057434366u, 0u, 1057434366u, 0, FREXPF_TOLERANCE, 0 }, // +5.2800E-01=F( +0.528, +0)
+{270, 1057618915u, 0u, 1057618915u, 0, FREXPF_TOLERANCE, 0 }, // +5.3900E-01=F( +0.539, +0)
+{271, 1057803464u, 0u, 1057803464u, 0, FREXPF_TOLERANCE, 0 }, // +5.5000E-01=F( +0.55, +0)
+{272, 1057988013u, 0u, 1057988013u, 0, FREXPF_TOLERANCE, 0 }, // +5.6100E-01=F( +0.561, +0)
+{273, 1058172562u, 0u, 1058172562u, 0, FREXPF_TOLERANCE, 0 }, // +5.7200E-01=F( +0.572, +0)
+{274, 1058357111u, 0u, 1058357111u, 0, FREXPF_TOLERANCE, 0 }, // +5.8300E-01=F( +0.583, +0)
+{275, 1058541660u, 0u, 1058541660u, 0, FREXPF_TOLERANCE, 0 }, // +5.9400E-01=F( +0.594, +0)
+{276, 1058726209u, 0u, 1058726209u, 0, FREXPF_TOLERANCE, 0 }, // +6.0500E-01=F( +0.605, +0)
+{277, 1058910758u, 0u, 1058910758u, 0, FREXPF_TOLERANCE, 0 }, // +6.1600E-01=F( +0.616, +0)
+{278, 1059095307u, 0u, 1059095307u, 0, FREXPF_TOLERANCE, 0 }, // +6.2700E-01=F( +0.627, +0)
+{279, 1059279856u, 0u, 1059279856u, 0, FREXPF_TOLERANCE, 0 }, // +6.3800E-01=F( +0.638, +0)
+{280, 1059464405u, 0u, 1059464405u, 0, FREXPF_TOLERANCE, 0 }, // +6.4900E-01=F( +0.649, +0)
+{281, 1059648954u, 0u, 1059648954u, 0, FREXPF_TOLERANCE, 0 }, // +6.6000E-01=F( +0.66, +0)
+{282, 1059833503u, 0u, 1059833503u, 0, FREXPF_TOLERANCE, 0 }, // +6.7100E-01=F( +0.671, +0)
+{283, 1060018052u, 0u, 1060018052u, 0, FREXPF_TOLERANCE, 0 }, // +6.8200E-01=F( +0.682, +0)
+{284, 1060202601u, 0u, 1060202601u, 0, FREXPF_TOLERANCE, 0 }, // +6.9300E-01=F( +0.693, +0)
+{285, 1060387150u, 0u, 1060387150u, 0, FREXPF_TOLERANCE, 0 }, // +7.0400E-01=F( +0.704, +0)
+{286, 1060571699u, 0u, 1060571699u, 0, FREXPF_TOLERANCE, 0 }, // +7.1500E-01=F( +0.715, +0)
+{287, 1060756248u, 0u, 1060756248u, 0, FREXPF_TOLERANCE, 0 }, // +7.2600E-01=F( +0.726, +0)
+{288, 1060940797u, 0u, 1060940797u, 0, FREXPF_TOLERANCE, 0 }, // +7.3700E-01=F( +0.737, +0)
+{289, 1061125346u, 0u, 1061125346u, 0, FREXPF_TOLERANCE, 0 }, // +7.4800E-01=F( +0.748, +0)
+{290, 1061309895u, 0u, 1061309895u, 0, FREXPF_TOLERANCE, 0 }, // +7.5900E-01=F( +0.759, +0)
+{291, 1061494444u, 0u, 1061494444u, 0, FREXPF_TOLERANCE, 0 }, // +7.7000E-01=F( +0.77, +0)
+{292, 1061678993u, 0u, 1061678993u, 0, FREXPF_TOLERANCE, 0 }, // +7.8100E-01=F( +0.781, +0)
+{293, 1061863542u, 0u, 1061863542u, 0, FREXPF_TOLERANCE, 0 }, // +7.9200E-01=F( +0.792, +0)
+{294, 1062048091u, 0u, 1062048091u, 0, FREXPF_TOLERANCE, 0 }, // +8.0300E-01=F( +0.803, +0)
+{295, 1062232640u, 0u, 1062232640u, 0, FREXPF_TOLERANCE, 0 }, // +8.1400E-01=F( +0.814, +0)
+{296, 1062417189u, 0u, 1062417189u, 0, FREXPF_TOLERANCE, 0 }, // +8.2500E-01=F( +0.825, +0)
+{297, 1062601738u, 0u, 1062601738u, 0, FREXPF_TOLERANCE, 0 }, // +8.3600E-01=F( +0.836, +0)
+{298, 1062786287u, 0u, 1062786287u, 0, FREXPF_TOLERANCE, 0 }, // +8.4700E-01=F( +0.847, +0)
+{299, 1062970836u, 0u, 1062970836u, 0, FREXPF_TOLERANCE, 0 }, // +8.5800E-01=F( +0.858, +0)
+{300, 1063155385u, 0u, 1063155385u, 0, FREXPF_TOLERANCE, 0 }, // +8.6900E-01=F( +0.869, +0)
+{301, 1063339934u, 0u, 1063339934u, 0, FREXPF_TOLERANCE, 0 }, // +8.8000E-01=F( +0.88, +0)
+{302, 1063524483u, 0u, 1063524483u, 0, FREXPF_TOLERANCE, 0 }, // +8.9100E-01=F( +0.891, +0)
+{303, 1063709032u, 0u, 1063709032u, 0, FREXPF_TOLERANCE, 0 }, // +9.0200E-01=F( +0.902, +0)
+{304, 1063893581u, 0u, 1063893581u, 0, FREXPF_TOLERANCE, 0 }, // +9.1300E-01=F( +0.913, +0)
+{305, 1064078130u, 0u, 1064078130u, 0, FREXPF_TOLERANCE, 0 }, // +9.2400E-01=F( +0.924, +0)
+{306, 1064262679u, 0u, 1064262679u, 0, FREXPF_TOLERANCE, 0 }, // +9.3500E-01=F( +0.935, +0)
+{307, 1064447228u, 0u, 1064447228u, 0, FREXPF_TOLERANCE, 0 }, // +9.4600E-01=F( +0.946, +0)
+{308, 1064631777u, 0u, 1064631777u, 0, FREXPF_TOLERANCE, 0 }, // +9.5700E-01=F( +0.957, +0)
+{309, 1064816326u, 0u, 1064816326u, 0, FREXPF_TOLERANCE, 0 }, // +9.6800E-01=F( +0.968, +0)
+{310, 1065000875u, 0u, 1065000875u, 0, FREXPF_TOLERANCE, 0 }, // +9.7900E-01=F( +0.979, +0)
+{311, 1065185424u, 0u, 1065185424u, 0, FREXPF_TOLERANCE, 0 }, // +9.9000E-01=F( +0.99, +0)
+{312, 1065361595u, 1u, 1056972987u, 0, FREXPF_TOLERANCE, 0 }, // +1.0010E+00=F( +0.5005, +1)
+{313, 1065453870u, 1u, 1057065262u, 0, FREXPF_TOLERANCE, 0 }, // +1.0120E+00=F( +0.506, +1)
+{314, 1065546145u, 1u, 1057157537u, 0, FREXPF_TOLERANCE, 0 }, // +1.0230E+00=F( +0.5115, +1)
+{315, 1065638420u, 1u, 1057249812u, 0, FREXPF_TOLERANCE, 0 }, // +1.0340E+00=F( +0.517, +1)
+{316, 1065730695u, 1u, 1057342087u, 0, FREXPF_TOLERANCE, 0 }, // +1.0450E+00=F( +0.5225, +1)
+{317, 1065822970u, 1u, 1057434362u, 0, FREXPF_TOLERANCE, 0 }, // +1.0560E+00=F( +0.528, +1)
+{318, 1065915245u, 1u, 1057526637u, 0, FREXPF_TOLERANCE, 0 }, // +1.0670E+00=F( +0.5335, +1)
+{319, 1066007520u, 1u, 1057618912u, 0, FREXPF_TOLERANCE, 0 }, // +1.0780E+00=F( +0.539, +1)
+{320, 1066099795u, 1u, 1057711187u, 0, FREXPF_TOLERANCE, 0 }, // +1.0890E+00=F( +0.5445, +1)
+{321, 1066192070u, 1u, 1057803462u, 0, FREXPF_TOLERANCE, 0 }, // +1.1000E+00=F( +0.55, +1)
+{322, 3213675725u, 1u, 3205287117u, 0, FREXPF_TOLERANCE, 0 }, // -1.1000E+00=F( -0.55, +1)
+{323, 2999766221u, 4294967271u, 3209481421u, 0, FREXPF_TOLERANCE, 0 }, // -2.3842E-08=F( -0.8, -25)
+{324, 1066192077u, 1u, 1057803469u, 0, FREXPF_TOLERANCE, 0 }, // +1.1000E+00=F( +0.55, +1)
+{325, 1074580685u, 2u, 1057803469u, 0, FREXPF_TOLERANCE, 0 }, // +2.2000E+00=F( +0.55, +2)
+{326, 1079194419u, 2u, 1062417203u, 0, FREXPF_TOLERANCE, 0 }, // +3.3000E+00=F( +0.825, +2)
+{327, 1082969293u, 3u, 1057803469u, 0, FREXPF_TOLERANCE, 0 }, // +4.4000E+00=F( +0.55, +3)
+{328, 1085276160u, 3u, 1060110336u, 0, FREXPF_TOLERANCE, 0 }, // +5.5000E+00=F( +0.6875, +3)
+{329, 1087583027u, 3u, 1062417203u, 0, FREXPF_TOLERANCE, 0 }, // +6.6000E+00=F( +0.825, +3)
+{330, 1089889894u, 3u, 1064724070u, 0, FREXPF_TOLERANCE, 0 }, // +7.7000E+00=F( +0.9625, +3)
+{331, 1091357901u, 4u, 1057803469u, 0, FREXPF_TOLERANCE, 0 }, // +8.8000E+00=F( +0.55, +4)
+{332, 1092511335u, 4u, 1058956903u, 0, FREXPF_TOLERANCE, 0 }, // +9.9000E+00=F( +0.6188, +4)
+{333, 1093664769u, 4u, 1060110337u, 0, FREXPF_TOLERANCE, 0 }, // +1.1000E+01=F( +0.6875, +4)
+{334, 1094818203u, 4u, 1061263771u, 0, FREXPF_TOLERANCE, 0 }, // +1.2100E+01=F( +0.7563, +4)
+{335, 1095971637u, 4u, 1062417205u, 0, FREXPF_TOLERANCE, 0 }, // +1.3200E+01=F( +0.825, +4)
+{336, 1097125071u, 4u, 1063570639u, 0, FREXPF_TOLERANCE, 0 }, // +1.4300E+01=F( +0.8938, +4)
+{337, 1098278505u, 4u, 1064724073u, 0, FREXPF_TOLERANCE, 0 }, // +1.5400E+01=F( +0.9625, +4)
+{338, 1099169793u, 5u, 1057226753u, 0, FREXPF_TOLERANCE, 0 }, // +1.6500E+01=F( +0.5156, +5)
+{339, 1099746510u, 5u, 1057803470u, 0, FREXPF_TOLERANCE, 0 }, // +1.7600E+01=F( +0.55, +5)
+{340, 1100323227u, 5u, 1058380187u, 0, FREXPF_TOLERANCE, 0 }, // +1.8700E+01=F( +0.5844, +5)
+{341, 1100899944u, 5u, 1058956904u, 0, FREXPF_TOLERANCE, 0 }, // +1.9800E+01=F( +0.6188, +5)
+{342, 1101476661u, 5u, 1059533621u, 0, FREXPF_TOLERANCE, 0 }, // +2.0900E+01=F( +0.6531, +5)
+{343, 1102053378u, 5u, 1060110338u, 0, FREXPF_TOLERANCE, 0 }, // +2.2000E+01=F( +0.6875, +5)
+{344, 1102630095u, 5u, 1060687055u, 0, FREXPF_TOLERANCE, 0 }, // +2.3100E+01=F( +0.7219, +5)
+{345, 1103206812u, 5u, 1061263772u, 0, FREXPF_TOLERANCE, 0 }, // +2.4200E+01=F( +0.7563, +5)
+{346, 1103783529u, 5u, 1061840489u, 0, FREXPF_TOLERANCE, 0 }, // +2.5300E+01=F( +0.7906, +5)
+{347, 1104360246u, 5u, 1062417206u, 0, FREXPF_TOLERANCE, 0 }, // +2.6400E+01=F( +0.825, +5)
+{348, 1104936963u, 5u, 1062993923u, 0, FREXPF_TOLERANCE, 0 }, // +2.7500E+01=F( +0.8594, +5)
+{349, 1105513680u, 5u, 1063570640u, 0, FREXPF_TOLERANCE, 0 }, // +2.8600E+01=F( +0.8938, +5)
+{350, 1106090397u, 5u, 1064147357u, 0, FREXPF_TOLERANCE, 0 }, // +2.9700E+01=F( +0.9281, +5)
+{351, 1106667114u, 5u, 1064724074u, 0, FREXPF_TOLERANCE, 0 }, // +3.0800E+01=F( +0.9625, +5)
+{352, 1107243831u, 5u, 1065300791u, 0, FREXPF_TOLERANCE, 0 }, // +3.1900E+01=F( +0.9969, +5)
+{353, 1107558402u, 6u, 1057226754u, 0, FREXPF_TOLERANCE, 0 }, // +3.3000E+01=F( +0.5156, +6)
+{354, 1107846760u, 6u, 1057515112u, 0, FREXPF_TOLERANCE, 0 }, // +3.4100E+01=F( +0.5328, +6)
+{355, 1108135118u, 6u, 1057803470u, 0, FREXPF_TOLERANCE, 0 }, // +3.5200E+01=F( +0.55, +6)
+{356, 1108423476u, 6u, 1058091828u, 0, FREXPF_TOLERANCE, 0 }, // +3.6300E+01=F( +0.5672, +6)
+{357, 1108711834u, 6u, 1058380186u, 0, FREXPF_TOLERANCE, 0 }, // +3.7400E+01=F( +0.5844, +6)
+{358, 1109000192u, 6u, 1058668544u, 0, FREXPF_TOLERANCE, 0 }, // +3.8500E+01=F( +0.6016, +6)
+{359, 1109288550u, 6u, 1058956902u, 0, FREXPF_TOLERANCE, 0 }, // +3.9600E+01=F( +0.6187, +6)
+{360, 1109576908u, 6u, 1059245260u, 0, FREXPF_TOLERANCE, 0 }, // +4.0700E+01=F( +0.6359, +6)
+{361, 1109865266u, 6u, 1059533618u, 0, FREXPF_TOLERANCE, 0 }, // +4.1800E+01=F( +0.6531, +6)
+{362, 1110153624u, 6u, 1059821976u, 0, FREXPF_TOLERANCE, 0 }, // +4.2900E+01=F( +0.6703, +6)
+{363, 1110441982u, 6u, 1060110334u, 0, FREXPF_TOLERANCE, 0 }, // +4.4000E+01=F( +0.6875, +6)
+{364, 1110730340u, 6u, 1060398692u, 0, FREXPF_TOLERANCE, 0 }, // +4.5100E+01=F( +0.7047, +6)
+{365, 1111018698u, 6u, 1060687050u, 0, FREXPF_TOLERANCE, 0 }, // +4.6200E+01=F( +0.7219, +6)
+{366, 1111307056u, 6u, 1060975408u, 0, FREXPF_TOLERANCE, 0 }, // +4.7300E+01=F( +0.7391, +6)
+{367, 1111595414u, 6u, 1061263766u, 0, FREXPF_TOLERANCE, 0 }, // +4.8400E+01=F( +0.7562, +6)
+{368, 1111883772u, 6u, 1061552124u, 0, FREXPF_TOLERANCE, 0 }, // +4.9500E+01=F( +0.7734, +6)
+{369, 1112172130u, 6u, 1061840482u, 0, FREXPF_TOLERANCE, 0 }, // +5.0600E+01=F( +0.7906, +6)
+{370, 1112460488u, 6u, 1062128840u, 0, FREXPF_TOLERANCE, 0 }, // +5.1700E+01=F( +0.8078, +6)
+{371, 1112748846u, 6u, 1062417198u, 0, FREXPF_TOLERANCE, 0 }, // +5.2800E+01=F( +0.825, +6)
+{372, 1113037204u, 6u, 1062705556u, 0, FREXPF_TOLERANCE, 0 }, // +5.3900E+01=F( +0.8422, +6)
+{373, 1113325562u, 6u, 1062993914u, 0, FREXPF_TOLERANCE, 0 }, // +5.5000E+01=F( +0.8594, +6)
+{374, 1113613920u, 6u, 1063282272u, 0, FREXPF_TOLERANCE, 0 }, // +5.6100E+01=F( +0.8766, +6)
+{375, 1113902278u, 6u, 1063570630u, 0, FREXPF_TOLERANCE, 0 }, // +5.7200E+01=F( +0.8937, +6)
+{376, 1114190636u, 6u, 1063858988u, 0, FREXPF_TOLERANCE, 0 }, // +5.8300E+01=F( +0.9109, +6)
+{377, 1114478994u, 6u, 1064147346u, 0, FREXPF_TOLERANCE, 0 }, // +5.9400E+01=F( +0.9281, +6)
+{378, 1114767352u, 6u, 1064435704u, 0, FREXPF_TOLERANCE, 0 }, // +6.0500E+01=F( +0.9453, +6)
+{379, 1115055710u, 6u, 1064724062u, 0, FREXPF_TOLERANCE, 0 }, // +6.1600E+01=F( +0.9625, +6)
+{380, 1115344068u, 6u, 1065012420u, 0, FREXPF_TOLERANCE, 0 }, // +6.2700E+01=F( +0.9797, +6)
+{381, 1115632426u, 6u, 1065300778u, 0, FREXPF_TOLERANCE, 0 }, // +6.3800E+01=F( +0.9969, +6)
+{382, 1115802824u, 7u, 1057082568u, 0, FREXPF_TOLERANCE, 0 }, // +6.4900E+01=F( +0.507, +7)
+{383, 1115947003u, 7u, 1057226747u, 0, FREXPF_TOLERANCE, 0 }, // +6.6000E+01=F( +0.5156, +7)
+{384, 1116091182u, 7u, 1057370926u, 0, FREXPF_TOLERANCE, 0 }, // +6.7100E+01=F( +0.5242, +7)
+{385, 1116235361u, 7u, 1057515105u, 0, FREXPF_TOLERANCE, 0 }, // +6.8200E+01=F( +0.5328, +7)
+{386, 1116379540u, 7u, 1057659284u, 0, FREXPF_TOLERANCE, 0 }, // +6.9300E+01=F( +0.5414, +7)
+{387, 1116523719u, 7u, 1057803463u, 0, FREXPF_TOLERANCE, 0 }, // +7.0400E+01=F( +0.55, +7)
+{388, 1116667898u, 7u, 1057947642u, 0, FREXPF_TOLERANCE, 0 }, // +7.1500E+01=F( +0.5586, +7)
+{389, 1116812077u, 7u, 1058091821u, 0, FREXPF_TOLERANCE, 0 }, // +7.2600E+01=F( +0.5672, +7)
+{390, 1116956256u, 7u, 1058236000u, 0, FREXPF_TOLERANCE, 0 }, // +7.3700E+01=F( +0.5758, +7)
+{391, 1117100435u, 7u, 1058380179u, 0, FREXPF_TOLERANCE, 0 }, // +7.4800E+01=F( +0.5844, +7)
+{392, 1117244614u, 7u, 1058524358u, 0, FREXPF_TOLERANCE, 0 }, // +7.5900E+01=F( +0.593, +7)
+{393, 1117388793u, 7u, 1058668537u, 0, FREXPF_TOLERANCE, 0 }, // +7.7000E+01=F( +0.6016, +7)
+{394, 1117532972u, 7u, 1058812716u, 0, FREXPF_TOLERANCE, 0 }, // +7.8100E+01=F( +0.6102, +7)
+{395, 1117677151u, 7u, 1058956895u, 0, FREXPF_TOLERANCE, 0 }, // +7.9200E+01=F( +0.6187, +7)
+{396, 1117821330u, 7u, 1059101074u, 0, FREXPF_TOLERANCE, 0 }, // +8.0300E+01=F( +0.6273, +7)
+{397, 1117965509u, 7u, 1059245253u, 0, FREXPF_TOLERANCE, 0 }, // +8.1400E+01=F( +0.6359, +7)
+{398, 1118109688u, 7u, 1059389432u, 0, FREXPF_TOLERANCE, 0 }, // +8.2500E+01=F( +0.6445, +7)
+{399, 1118253867u, 7u, 1059533611u, 0, FREXPF_TOLERANCE, 0 }, // +8.3600E+01=F( +0.6531, +7)
+{400, 1118398046u, 7u, 1059677790u, 0, FREXPF_TOLERANCE, 0 }, // +8.4700E+01=F( +0.6617, +7)
+{401, 1118542225u, 7u, 1059821969u, 0, FREXPF_TOLERANCE, 0 }, // +8.5800E+01=F( +0.6703, +7)
+{402, 1118686404u, 7u, 1059966148u, 0, FREXPF_TOLERANCE, 0 }, // +8.6900E+01=F( +0.6789, +7)
+{403, 1118830583u, 7u, 1060110327u, 0, FREXPF_TOLERANCE, 0 }, // +8.8000E+01=F( +0.6875, +7)
+{404, 1118974762u, 7u, 1060254506u, 0, FREXPF_TOLERANCE, 0 }, // +8.9100E+01=F( +0.6961, +7)
+{405, 1119118941u, 7u, 1060398685u, 0, FREXPF_TOLERANCE, 0 }, // +9.0200E+01=F( +0.7047, +7)
+{406, 1119263120u, 7u, 1060542864u, 0, FREXPF_TOLERANCE, 0 }, // +9.1300E+01=F( +0.7133, +7)
+{407, 1119407299u, 7u, 1060687043u, 0, FREXPF_TOLERANCE, 0 }, // +9.2400E+01=F( +0.7219, +7)
+{408, 1119551478u, 7u, 1060831222u, 0, FREXPF_TOLERANCE, 0 }, // +9.3500E+01=F( +0.7305, +7)
+{409, 1119695657u, 7u, 1060975401u, 0, FREXPF_TOLERANCE, 0 }, // +9.4600E+01=F( +0.7391, +7)
+{410, 1119839836u, 7u, 1061119580u, 0, FREXPF_TOLERANCE, 0 }, // +9.5700E+01=F( +0.7477, +7)
+{411, 1119984015u, 7u, 1061263759u, 0, FREXPF_TOLERANCE, 0 }, // +9.6800E+01=F( +0.7562, +7)
+{412, 1120128194u, 7u, 1061407938u, 0, FREXPF_TOLERANCE, 0 }, // +9.7900E+01=F( +0.7648, +7)
+{413, 1120272373u, 7u, 1061552117u, 0, FREXPF_TOLERANCE, 0 }, // +9.9000E+01=F( +0.7734, +7)
+{414, 1120416552u, 7u, 1061696296u, 0, FREXPF_TOLERANCE, 0 }, // +1.0010E+02=F( +0.782, +7)
+{415, 1120560731u, 7u, 1061840475u, 0, FREXPF_TOLERANCE, 0 }, // +1.0120E+02=F( +0.7906, +7)
+{416, 1120704910u, 7u, 1061984654u, 0, FREXPF_TOLERANCE, 0 }, // +1.0230E+02=F( +0.7992, +7)
+{417, 1120849089u, 7u, 1062128833u, 0, FREXPF_TOLERANCE, 0 }, // +1.0340E+02=F( +0.8078, +7)
+{418, 1120993268u, 7u, 1062273012u, 0, FREXPF_TOLERANCE, 0 }, // +1.0450E+02=F( +0.8164, +7)
+{419, 1121137447u, 7u, 1062417191u, 0, FREXPF_TOLERANCE, 0 }, // +1.0560E+02=F( +0.825, +7)
+{420, 1121281626u, 7u, 1062561370u, 0, FREXPF_TOLERANCE, 0 }, // +1.0670E+02=F( +0.8336, +7)
+{421, 1121425805u, 7u, 1062705549u, 0, FREXPF_TOLERANCE, 0 }, // +1.0780E+02=F( +0.8422, +7)
+{422, 1121569984u, 7u, 1062849728u, 0, FREXPF_TOLERANCE, 0 }, // +1.0890E+02=F( +0.8508, +7)
+{423, 1121714163u, 7u, 1062993907u, 0, FREXPF_TOLERANCE, 0 }, // +1.1000E+02=F( +0.8594, +7)
+{424, 1121845248u, 7u, 1063124992u, 0, FREXPF_TOLERANCE, 0 }, // +1.1100E+02=F( +0.8672, +7)
+{425, 1130233856u, 8u, 1063124992u, 0, FREXPF_TOLERANCE, 0 }, // +2.2200E+02=F( +0.8672, +8)
+{426, 1134985216u, 9u, 1059487744u, 0, FREXPF_TOLERANCE, 0 }, // +3.3300E+02=F( +0.6504, +9)
+{427, 1138622464u, 9u, 1063124992u, 0, FREXPF_TOLERANCE, 0 }, // +4.4400E+02=F( +0.8672, +9)
+{428, 1141555200u, 10u, 1057669120u, 0, FREXPF_TOLERANCE, 0 }, // +5.5500E+02=F( +0.542, +10)
+{429, 1143373824u, 10u, 1059487744u, 0, FREXPF_TOLERANCE, 0 }, // +6.6600E+02=F( +0.6504, +10)
+{430, 1145192448u, 10u, 1061306368u, 0, FREXPF_TOLERANCE, 0 }, // +7.7700E+02=F( +0.7588, +10)
+{431, 1147011072u, 10u, 1063124992u, 0, FREXPF_TOLERANCE, 0 }, // +8.8800E+02=F( +0.8672, +10)
+{432, 1148829696u, 10u, 1064943616u, 0, FREXPF_TOLERANCE, 0 }, // +9.9900E+02=F( +0.9756, +10)
+{433, 1149943808u, 11u, 1057669120u, 0, FREXPF_TOLERANCE, 0 }, // +1.1100E+03=F( +0.542, +11)
+{434, 1149952000u, 11u, 1057677312u, 0, FREXPF_TOLERANCE, 0 }, // +1.1110E+03=F( +0.5425, +11)
+{435, 1344628517u, 34u, 1059415845u, 0, FREXPF_TOLERANCE, 0 }, // +1.1100E+10=F( +0.6461, +34)
+{436, 1353017124u, 35u, 1059415844u, 0, FREXPF_TOLERANCE, 0 }, // +2.2200E+10=F( +0.6461, +35)
+{437, 1358437046u, 35u, 1064835766u, 0, FREXPF_TOLERANCE, 0 }, // +3.3300E+10=F( +0.9692, +35)
+{438, 1361405732u, 36u, 1059415844u, 0, FREXPF_TOLERANCE, 0 }, // +4.4400E+10=F( +0.6461, +36)
+{439, 1364115693u, 36u, 1062125805u, 0, FREXPF_TOLERANCE, 0 }, // +5.5500E+10=F( +0.8076, +36)
+{440, 1366825654u, 36u, 1064835766u, 0, FREXPF_TOLERANCE, 0 }, // +6.6600E+10=F( +0.9692, +36)
+{441, 1368439359u, 37u, 1058060863u, 0, FREXPF_TOLERANCE, 0 }, // +7.7700E+10=F( +0.5653, +37)
+{442, 1369794339u, 37u, 1059415843u, 0, FREXPF_TOLERANCE, 0 }, // +8.8800E+10=F( +0.6461, +37)
+{443, 1371149319u, 37u, 1060770823u, 0, FREXPF_TOLERANCE, 0 }, // +9.9900E+10=F( +0.7269, +37)
+{444, 1372504299u, 37u, 1062125803u, 0, FREXPF_TOLERANCE, 0 }, // +1.1100E+11=F( +0.8076, +37)
+{445, 0u, 0u, 0u, 0, FREXPF_TOLERANCE, 0 }, // +0.0000E+00=F( +0, +0)
+{446, 8388608u, 4294967171u, 1056964608u, 0, FREXPF_TOLERANCE, 0 }, // +1.1755E-38=F( +0.5, -125)
+{447, 2139095039u, 128u, 1065353215u, 0, FREXPF_TOLERANCE, 0 }, // +3.4028E+38=F( +1, +128)
+{448, 2143289344u, 0u, 2143289344u, 0, FREXPF_TOLERANCE, 0 }, // +NAN =F( +nan, +0)
+{449, 2139095040u, 0u, 2139095040u, 0, FREXPF_TOLERANCE, 0 }, // +INF =F( +inf, +0)
+
+// AUTOMATICALLY GENERATED VECTORS STOP
+
+};
+
+#endif // CYGONCE_LIBM_FREXPF_H multiple inclusion protection
+
+// EOF frexpf.h
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/gammaf.c b/ecos/packages/language/c/libm/current/tests/vectors/gammaf.c
new file mode 100644
index 0000000..e9c095e
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/gammaf.c
@@ -0,0 +1,115 @@
+//===========================================================================
+//
+// gammaf.c
+//
+// Test of gammaf() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// Declarations for test system:
+//
+// TESTCASE_TYPE=CYG_TEST_MODULE
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include <cyg/infra/testcase.h> // Test infrastructure
+#include <math.h> // Header for this package
+#include <sys/ieeefp.h> // Cyg_libm_ieee_float_shape_type
+#include "vectors/vector_support_float.h"// extra support for math tests
+
+#include "vectors/gammaf.h"
+
+// FUNCTIONS
+
+static void
+test( CYG_ADDRWORD data )
+{
+ cyg_ucount32 vec_size;
+ cyg_bool ret;
+
+ vec_size = sizeof(gammaf_vec) / sizeof(Cyg_libm_test_float_vec_t);
+ ret = doTestVecFloat( (CYG_ADDRWORD) &gammaf, CYG_LIBM_TEST_VEC_FLOAT,
+ CYG_LIBM_TEST_VEC_NONE, CYG_LIBM_TEST_VEC_FLOAT,
+ &gammaf_vec[0], vec_size );
+
+ if (ret==true)
+ {
+ CYG_TEST_PASS("gammaf() is stable");
+ } // if
+ else
+ {
+ CYG_TEST_FAIL("gammaf() failed tests");
+ } // else
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for Math "
+ "library gammaf() function");
+} // test()
+
+
+int
+main(int argc, char *argv[])
+{
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for Math library "
+ "gammaf() function");
+
+ START_TEST( test );
+
+ CYG_TEST_PASS_FINISH("Testing is not applicable to this configuration");
+
+} // main()
+
+
+// EOF gammaf.c
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/gammaf.h b/ecos/packages/language/c/libm/current/tests/vectors/gammaf.h
new file mode 100644
index 0000000..b2aa882
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/gammaf.h
@@ -0,0 +1,363 @@
+#ifndef CYGONCE_LIBM_GAMMA_H
+#define CYGONCE_LIBM_GAMMA_H
+//===========================================================================
+//
+// gammaf.h
+//
+// Test vectors for testing of gammaf() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage: #include "vectors/gammaf.h"
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include "vectors/vector_support_float.h"// extra support for math tests
+
+#define GAMMA_TOLERANCE 1.0E-04
+
+static const Cyg_libm_test_float_vec_t gammaf_vec[] = {
+
+// AUTOMATICALLY GENERATED VECTORS START
+
+{0, 3214514586u, 2147508200u, 3182352542u, 0, GAMMA_TOLERANCE, 0},
+{1, 3214430700u, 2147508200u, 3181956062u, 0, GAMMA_TOLERANCE, 0},
+{2, 3214346813u, 2147508200u, 3181542364u, 0, GAMMA_TOLERANCE, 0},
+{3, 3214262927u, 2147508200u, 3181111256u, 0, GAMMA_TOLERANCE, 0},
+{4, 3214179041u, 2147508200u, 3180662520u, 0, GAMMA_TOLERANCE, 0},
+{5, 3214095155u, 2147508200u, 3180195945u, 0, GAMMA_TOLERANCE, 0},
+{6, 3214011269u, 2147508200u, 3179711309u, 0, GAMMA_TOLERANCE, 0},
+{7, 3213927383u, 2147508200u, 3179134344u, 0, GAMMA_TOLERANCE, 0},
+{8, 3213843497u, 2147508200u, 3178091474u, 0, GAMMA_TOLERANCE, 0},
+{9, 3213759611u, 2147508200u, 3177011103u, 0, GAMMA_TOLERANCE, 0},
+{10, 3213675725u, 2147508200u, 3175892750u, 0, GAMMA_TOLERANCE, 0},
+{11, 3213591839u, 2147508200u, 3174735922u, 0, GAMMA_TOLERANCE, 0},
+{12, 3213507953u, 2147508200u, 3173540112u, 0, GAMMA_TOLERANCE, 0},
+{13, 3213424067u, 2147508200u, 3172304802u, 0, GAMMA_TOLERANCE, 0},
+{14, 3213340180u, 2147508200u, 3171029445u, 0, GAMMA_TOLERANCE, 0},
+{15, 3213256294u, 2147508200u, 3168533229u, 0, GAMMA_TOLERANCE, 0},
+{16, 3213172408u, 2147508200u, 3165819122u, 0, GAMMA_TOLERANCE, 0},
+{17, 3213088522u, 2147508200u, 3163021599u, 0, GAMMA_TOLERANCE, 0},
+{18, 3213004636u, 2147508200u, 3157773750u, 0, GAMMA_TOLERANCE, 0},
+{19, 3212920750u, 2147508200u, 3149559224u, 0, GAMMA_TOLERANCE, 0},
+{20, 3212836864u, 2147508200u, 0u, 0, GAMMA_TOLERANCE, 0},
+{21, 3212669092u, 2147508200u, 1002428834u, 0, GAMMA_TOLERANCE, 0},
+{22, 3212501320u, 2147508200u, 1010996688u, 0, GAMMA_TOLERANCE, 0},
+{23, 3212333548u, 2147508200u, 1016332991u, 0, GAMMA_TOLERANCE, 0},
+{24, 3212165775u, 2147508200u, 1019749225u, 0, GAMMA_TOLERANCE, 0},
+{25, 3211998003u, 2147508200u, 1023259210u, 0, GAMMA_TOLERANCE, 0},
+{26, 3211830231u, 2147508200u, 1025137303u, 0, GAMMA_TOLERANCE, 0},
+{27, 3211662459u, 2147508200u, 1026988282u, 0, GAMMA_TOLERANCE, 0},
+{28, 3211494687u, 2147508200u, 1028888405u, 0, GAMMA_TOLERANCE, 0},
+{29, 3211326915u, 2147508200u, 1030838469u, 0, GAMMA_TOLERANCE, 0},
+{30, 3211159142u, 2147508200u, 1032319047u, 0, GAMMA_TOLERANCE, 0},
+{31, 3210991370u, 2147508200u, 1033345266u, 0, GAMMA_TOLERANCE, 0},
+{32, 3210823598u, 2147508200u, 1034397726u, 0, GAMMA_TOLERANCE, 0},
+{33, 3210655826u, 2147508200u, 1035476878u, 0, GAMMA_TOLERANCE, 0},
+{34, 3210488054u, 2147508200u, 1036583185u, 0, GAMMA_TOLERANCE, 0},
+{35, 3210320282u, 2147508200u, 1037717128u, 0, GAMMA_TOLERANCE, 0},
+{36, 3210152509u, 2147508200u, 1038879207u, 0, GAMMA_TOLERANCE, 0},
+{37, 3209984737u, 2147508200u, 1040069921u, 0, GAMMA_TOLERANCE, 0},
+{38, 3209816965u, 2147508200u, 1040738598u, 0, GAMMA_TOLERANCE, 0},
+{39, 3209649193u, 2147508200u, 1041363397u, 0, GAMMA_TOLERANCE, 0},
+{40, 3209481421u, 2147508200u, 1042003336u, 0, GAMMA_TOLERANCE, 0},
+{41, 3209313649u, 2147508200u, 1042658707u, 0, GAMMA_TOLERANCE, 0},
+{42, 3209145876u, 2147508200u, 1043329818u, 0, GAMMA_TOLERANCE, 0},
+{43, 3208978104u, 2147508200u, 1044016973u, 0, GAMMA_TOLERANCE, 0},
+{44, 3208810332u, 2147508200u, 1044720500u, 0, GAMMA_TOLERANCE, 0},
+{45, 3208642560u, 2147508200u, 1045440738u, 0, GAMMA_TOLERANCE, 0},
+{46, 3208474788u, 2147508200u, 1046178035u, 0, GAMMA_TOLERANCE, 0},
+{47, 3208307016u, 2147508200u, 1046932755u, 0, GAMMA_TOLERANCE, 0},
+{48, 3208139244u, 2147508200u, 1047705272u, 0, GAMMA_TOLERANCE, 0},
+{49, 3207971471u, 2147508200u, 1048495986u, 0, GAMMA_TOLERANCE, 0},
+{50, 3207803699u, 2147508200u, 1048940645u, 0, GAMMA_TOLERANCE, 0},
+{51, 3207635927u, 2147508200u, 1049354808u, 0, GAMMA_TOLERANCE, 0},
+{52, 3207468155u, 2147508200u, 1049778702u, 0, GAMMA_TOLERANCE, 0},
+{53, 3207300383u, 2147508200u, 1050212555u, 0, GAMMA_TOLERANCE, 0},
+{54, 3207132611u, 2147508200u, 1050656608u, 0, GAMMA_TOLERANCE, 0},
+{55, 3206964838u, 2147508200u, 1051111112u, 0, GAMMA_TOLERANCE, 0},
+{56, 3206797066u, 2147508200u, 1051576324u, 0, GAMMA_TOLERANCE, 0},
+{57, 3206629294u, 2147508200u, 1052052518u, 0, GAMMA_TOLERANCE, 0},
+{58, 3206461522u, 2147508200u, 1052539978u, 0, GAMMA_TOLERANCE, 0},
+{59, 3206293750u, 2147508200u, 1053039002u, 0, GAMMA_TOLERANCE, 0},
+{60, 3206125978u, 2147508200u, 1053549901u, 0, GAMMA_TOLERANCE, 0},
+{61, 3205958205u, 2147508200u, 1054073007u, 0, GAMMA_TOLERANCE, 0},
+{62, 3205790433u, 2147508200u, 1054608655u, 0, GAMMA_TOLERANCE, 0},
+{63, 3205622661u, 2147508200u, 1055157205u, 0, GAMMA_TOLERANCE, 0},
+{64, 3205454889u, 2147508200u, 1055719041u, 0, GAMMA_TOLERANCE, 0},
+{65, 3205287117u, 2147508200u, 1056294554u, 0, GAMMA_TOLERANCE, 0},
+{66, 3205119345u, 2147508200u, 1056884165u, 0, GAMMA_TOLERANCE, 0},
+{67, 3204951572u, 2147508200u, 1057226463u, 0, GAMMA_TOLERANCE, 0},
+{68, 3204783800u, 2147508200u, 1057536039u, 0, GAMMA_TOLERANCE, 0},
+{69, 3204616028u, 2147508200u, 1057853361u, 0, GAMMA_TOLERANCE, 0},
+{70, 3204448256u, 2147508200u, 1058178690u, 0, GAMMA_TOLERANCE, 0},
+{71, 3204112712u, 2147508200u, 1058512300u, 0, GAMMA_TOLERANCE, 0},
+{72, 3203777167u, 2147508200u, 1058854482u, 0, GAMMA_TOLERANCE, 0},
+{73, 3203441623u, 2147508200u, 1059205542u, 0, GAMMA_TOLERANCE, 0},
+{74, 3203106079u, 2147508200u, 1059565811u, 0, GAMMA_TOLERANCE, 0},
+{75, 3202770534u, 2147508200u, 1059935636u, 0, GAMMA_TOLERANCE, 0},
+{76, 3202434990u, 2147508200u, 1060315390u, 0, GAMMA_TOLERANCE, 0},
+{77, 3202099446u, 2147508200u, 1060705468u, 0, GAMMA_TOLERANCE, 0},
+{78, 3201763901u, 2147508200u, 1061106295u, 0, GAMMA_TOLERANCE, 0},
+{79, 3201428357u, 2147508200u, 1061518321u, 0, GAMMA_TOLERANCE, 0},
+{80, 3201092813u, 2147508200u, 1061942035u, 0, GAMMA_TOLERANCE, 0},
+{81, 3200757268u, 2147508200u, 1062377960u, 0, GAMMA_TOLERANCE, 0},
+{82, 3200421724u, 2147508200u, 1062826654u, 0, GAMMA_TOLERANCE, 0},
+{83, 3200086180u, 2147508200u, 1063288726u, 0, GAMMA_TOLERANCE, 0},
+{84, 3199750636u, 2147508200u, 1063764827u, 0, GAMMA_TOLERANCE, 0},
+{85, 3199415091u, 2147508200u, 1064255670u, 0, GAMMA_TOLERANCE, 0},
+{86, 3199079547u, 2147508200u, 1064762021u, 0, GAMMA_TOLERANCE, 0},
+{87, 3198744003u, 2147508200u, 1065284717u, 0, GAMMA_TOLERANCE, 0},
+{88, 3198408458u, 2147508200u, 1065588944u, 0, GAMMA_TOLERANCE, 0},
+{89, 3198072914u, 2147508200u, 1065868048u, 0, GAMMA_TOLERANCE, 0},
+{90, 3197737370u, 2147508200u, 1066156828u, 0, GAMMA_TOLERANCE, 0},
+{91, 3197401825u, 2147508200u, 1066455885u, 0, GAMMA_TOLERANCE, 0},
+{92, 3197066281u, 2147508200u, 1066765884u, 0, GAMMA_TOLERANCE, 0},
+{93, 3196730737u, 2147508200u, 1067087562u, 0, GAMMA_TOLERANCE, 0},
+{94, 3196395192u, 2147508200u, 1067421737u, 0, GAMMA_TOLERANCE, 0},
+{95, 3196059648u, 2147508200u, 1067769324u, 0, GAMMA_TOLERANCE, 0},
+{96, 3195388559u, 2147508200u, 1068131348u, 0, GAMMA_TOLERANCE, 0},
+{97, 3194717471u, 2147508200u, 1068508963u, 0, GAMMA_TOLERANCE, 0},
+{98, 3194046382u, 2147508200u, 1068903479u, 0, GAMMA_TOLERANCE, 0},
+{99, 3193375293u, 2147508200u, 1069316383u, 0, GAMMA_TOLERANCE, 0},
+{100, 3192704205u, 2147508200u, 1069749382u, 0, GAMMA_TOLERANCE, 0},
+{101, 3192033116u, 2147508200u, 1070204441u, 0, GAMMA_TOLERANCE, 0},
+{102, 3191362028u, 2147508200u, 1070683845u, 0, GAMMA_TOLERANCE, 0},
+{103, 3190690939u, 2147508200u, 1071190269u, 0, GAMMA_TOLERANCE, 0},
+{104, 3190019850u, 2147508200u, 1071726872u, 0, GAMMA_TOLERANCE, 0},
+{105, 3189348762u, 2147508200u, 1072297421u, 0, GAMMA_TOLERANCE, 0},
+{106, 3188677673u, 2147508200u, 1072906465u, 0, GAMMA_TOLERANCE, 0},
+{107, 3188006584u, 2147508200u, 1073559562u, 0, GAMMA_TOLERANCE, 0},
+{108, 3186999951u, 2147508200u, 1074002711u, 0, GAMMA_TOLERANCE, 0},
+{109, 3185657774u, 2147508200u, 1074384544u, 0, GAMMA_TOLERANCE, 0},
+{110, 3184315597u, 2147508200u, 1074801778u, 0, GAMMA_TOLERANCE, 0},
+{111, 3182973420u, 2147508200u, 1075261767u, 0, GAMMA_TOLERANCE, 0},
+{112, 3181631242u, 2147508200u, 1075774470u, 0, GAMMA_TOLERANCE, 0},
+{113, 3180289065u, 2147508200u, 1076353843u, 0, GAMMA_TOLERANCE, 0},
+{114, 3178611343u, 2147508200u, 1077020325u, 0, GAMMA_TOLERANCE, 0},
+{115, 3175926989u, 2147508200u, 1077805598u, 0, GAMMA_TOLERANCE, 0},
+{116, 3173242634u, 2147508200u, 1078762734u, 0, GAMMA_TOLERANCE, 0},
+{117, 3170222735u, 2147508200u, 1079991216u, 0, GAMMA_TOLERANCE, 0},
+{118, 3164854026u, 2147508200u, 1081714376u, 0, GAMMA_TOLERANCE, 0},
+{119, 3156465418u, 2147508200u, 1083387633u, 0, GAMMA_TOLERANCE, 0},
+{120, 646742016u, 2147508200u, 1107968441u, 0, GAMMA_TOLERANCE, 0},
+{121, 1008981770u, 2147508200u, 1083387633u, 0, GAMMA_TOLERANCE, 0},
+{122, 1017370378u, 2147508200u, 1081714376u, 0, GAMMA_TOLERANCE, 0},
+{123, 1022739087u, 2147508200u, 1079991216u, 0, GAMMA_TOLERANCE, 0},
+{124, 1025758986u, 2147508200u, 1078762734u, 0, GAMMA_TOLERANCE, 0},
+{125, 1028443341u, 2147508200u, 1077805598u, 0, GAMMA_TOLERANCE, 0},
+{126, 1031127695u, 2147508200u, 1077020325u, 0, GAMMA_TOLERANCE, 0},
+{127, 1032805417u, 2147508200u, 1076353843u, 0, GAMMA_TOLERANCE, 0},
+{128, 1034147594u, 2147508200u, 1075774470u, 0, GAMMA_TOLERANCE, 0},
+{129, 1035489772u, 2147508200u, 1075261767u, 0, GAMMA_TOLERANCE, 0},
+{130, 1036831949u, 2147508200u, 1074801778u, 0, GAMMA_TOLERANCE, 0},
+{131, 1038174126u, 2147508200u, 1074384544u, 0, GAMMA_TOLERANCE, 0},
+{132, 1039516303u, 2147508200u, 1074002711u, 0, GAMMA_TOLERANCE, 0},
+{133, 1040522936u, 2147508200u, 1073559562u, 0, GAMMA_TOLERANCE, 0},
+{134, 1041194025u, 2147508200u, 1072906465u, 0, GAMMA_TOLERANCE, 0},
+{135, 1041865114u, 2147508200u, 1072297421u, 0, GAMMA_TOLERANCE, 0},
+{136, 1042536202u, 2147508200u, 1071726872u, 0, GAMMA_TOLERANCE, 0},
+{137, 1043207291u, 2147508200u, 1071190269u, 0, GAMMA_TOLERANCE, 0},
+{138, 1043878380u, 2147508200u, 1070683845u, 0, GAMMA_TOLERANCE, 0},
+{139, 1044549468u, 2147508200u, 1070204441u, 0, GAMMA_TOLERANCE, 0},
+{140, 1045220557u, 2147508200u, 1069749382u, 0, GAMMA_TOLERANCE, 0},
+{141, 1045891645u, 2147508200u, 1069316383u, 0, GAMMA_TOLERANCE, 0},
+{142, 1046562734u, 2147508200u, 1068903479u, 0, GAMMA_TOLERANCE, 0},
+{143, 1047233823u, 2147508200u, 1068508963u, 0, GAMMA_TOLERANCE, 0},
+{144, 1047904911u, 2147508200u, 1068131348u, 0, GAMMA_TOLERANCE, 0},
+{145, 1048576000u, 2147508200u, 1067769324u, 0, GAMMA_TOLERANCE, 0},
+{146, 1048911544u, 2147508200u, 1067421737u, 0, GAMMA_TOLERANCE, 0},
+{147, 1049247089u, 2147508200u, 1067087562u, 0, GAMMA_TOLERANCE, 0},
+{148, 1049582633u, 2147508200u, 1066765884u, 0, GAMMA_TOLERANCE, 0},
+{149, 1049918177u, 2147508200u, 1066455885u, 0, GAMMA_TOLERANCE, 0},
+{150, 1050253722u, 2147508200u, 1066156828u, 0, GAMMA_TOLERANCE, 0},
+{151, 1050589266u, 2147508200u, 1065868048u, 0, GAMMA_TOLERANCE, 0},
+{152, 1050924810u, 2147508200u, 1065588944u, 0, GAMMA_TOLERANCE, 0},
+{153, 1051260355u, 2147508200u, 1065284717u, 0, GAMMA_TOLERANCE, 0},
+{154, 1051595899u, 2147508200u, 1064762021u, 0, GAMMA_TOLERANCE, 0},
+{155, 1051931443u, 2147508200u, 1064255670u, 0, GAMMA_TOLERANCE, 0},
+{156, 1052266988u, 2147508200u, 1063764827u, 0, GAMMA_TOLERANCE, 0},
+{157, 1052602532u, 2147508200u, 1063288726u, 0, GAMMA_TOLERANCE, 0},
+{158, 1052938076u, 2147508200u, 1062826654u, 0, GAMMA_TOLERANCE, 0},
+{159, 1053273620u, 2147508200u, 1062377960u, 0, GAMMA_TOLERANCE, 0},
+{160, 1053609165u, 2147508200u, 1061942035u, 0, GAMMA_TOLERANCE, 0},
+{161, 1053944709u, 2147508200u, 1061518321u, 0, GAMMA_TOLERANCE, 0},
+{162, 1054280253u, 2147508200u, 1061106295u, 0, GAMMA_TOLERANCE, 0},
+{163, 1054615798u, 2147508200u, 1060705468u, 0, GAMMA_TOLERANCE, 0},
+{164, 1054951342u, 2147508200u, 1060315390u, 0, GAMMA_TOLERANCE, 0},
+{165, 1055286886u, 2147508200u, 1059935636u, 0, GAMMA_TOLERANCE, 0},
+{166, 1055622431u, 2147508200u, 1059565811u, 0, GAMMA_TOLERANCE, 0},
+{167, 1055957975u, 2147508200u, 1059205542u, 0, GAMMA_TOLERANCE, 0},
+{168, 1056293519u, 2147508200u, 1058854482u, 0, GAMMA_TOLERANCE, 0},
+{169, 1056629064u, 2147508200u, 1058512300u, 0, GAMMA_TOLERANCE, 0},
+{170, 1056964608u, 2147508200u, 1058178690u, 0, GAMMA_TOLERANCE, 0},
+{171, 1057132380u, 2147508200u, 1057853361u, 0, GAMMA_TOLERANCE, 0},
+{172, 1057300152u, 2147508200u, 1057536039u, 0, GAMMA_TOLERANCE, 0},
+{173, 1057467924u, 2147508200u, 1057226463u, 0, GAMMA_TOLERANCE, 0},
+{174, 1057635697u, 2147508200u, 1056884165u, 0, GAMMA_TOLERANCE, 0},
+{175, 1057803469u, 2147508200u, 1056294554u, 0, GAMMA_TOLERANCE, 0},
+{176, 1057971241u, 2147508200u, 1055719041u, 0, GAMMA_TOLERANCE, 0},
+{177, 1058139013u, 2147508200u, 1055157205u, 0, GAMMA_TOLERANCE, 0},
+{178, 1058306785u, 2147508200u, 1054608655u, 0, GAMMA_TOLERANCE, 0},
+{179, 1058474557u, 2147508200u, 1054073007u, 0, GAMMA_TOLERANCE, 0},
+{180, 1058642330u, 2147508200u, 1053549901u, 0, GAMMA_TOLERANCE, 0},
+{181, 1058810102u, 2147508200u, 1053039002u, 0, GAMMA_TOLERANCE, 0},
+{182, 1058977874u, 2147508200u, 1052539978u, 0, GAMMA_TOLERANCE, 0},
+{183, 1059145646u, 2147508200u, 1052052518u, 0, GAMMA_TOLERANCE, 0},
+{184, 1059313418u, 2147508200u, 1051576324u, 0, GAMMA_TOLERANCE, 0},
+{185, 1059481190u, 2147508200u, 1051111112u, 0, GAMMA_TOLERANCE, 0},
+{186, 1059648963u, 2147508200u, 1050656608u, 0, GAMMA_TOLERANCE, 0},
+{187, 1059816735u, 2147508200u, 1050212555u, 0, GAMMA_TOLERANCE, 0},
+{188, 1059984507u, 2147508200u, 1049778702u, 0, GAMMA_TOLERANCE, 0},
+{189, 1060152279u, 2147508200u, 1049354808u, 0, GAMMA_TOLERANCE, 0},
+{190, 1060320051u, 2147508200u, 1048940645u, 0, GAMMA_TOLERANCE, 0},
+{191, 1060487823u, 2147508200u, 1048495986u, 0, GAMMA_TOLERANCE, 0},
+{192, 1060655596u, 2147508200u, 1047705272u, 0, GAMMA_TOLERANCE, 0},
+{193, 1060823368u, 2147508200u, 1046932755u, 0, GAMMA_TOLERANCE, 0},
+{194, 1060991140u, 2147508200u, 1046178035u, 0, GAMMA_TOLERANCE, 0},
+{195, 1061158912u, 2147508200u, 1045440738u, 0, GAMMA_TOLERANCE, 0},
+{196, 1061326684u, 2147508200u, 1044720500u, 0, GAMMA_TOLERANCE, 0},
+{197, 1061494456u, 2147508200u, 1044016973u, 0, GAMMA_TOLERANCE, 0},
+{198, 1061662228u, 2147508200u, 1043329818u, 0, GAMMA_TOLERANCE, 0},
+{199, 1061830001u, 2147508200u, 1042658707u, 0, GAMMA_TOLERANCE, 0},
+{200, 1061997773u, 2147508200u, 1042003336u, 0, GAMMA_TOLERANCE, 0},
+{201, 1062165545u, 2147508200u, 1041363397u, 0, GAMMA_TOLERANCE, 0},
+{202, 1062333317u, 2147508200u, 1040738598u, 0, GAMMA_TOLERANCE, 0},
+{203, 1062501089u, 2147508200u, 1040069921u, 0, GAMMA_TOLERANCE, 0},
+{204, 1062668861u, 2147508200u, 1038879207u, 0, GAMMA_TOLERANCE, 0},
+{205, 1062836634u, 2147508200u, 1037717128u, 0, GAMMA_TOLERANCE, 0},
+{206, 1063004406u, 2147508200u, 1036583185u, 0, GAMMA_TOLERANCE, 0},
+{207, 1063172178u, 2147508200u, 1035476878u, 0, GAMMA_TOLERANCE, 0},
+{208, 1063339950u, 2147508200u, 1034397726u, 0, GAMMA_TOLERANCE, 0},
+{209, 1063507722u, 2147508200u, 1033345266u, 0, GAMMA_TOLERANCE, 0},
+{210, 1063675494u, 2147508200u, 1032319047u, 0, GAMMA_TOLERANCE, 0},
+{211, 1063843267u, 2147508200u, 1030838469u, 0, GAMMA_TOLERANCE, 0},
+{212, 1064011039u, 2147508200u, 1028888405u, 0, GAMMA_TOLERANCE, 0},
+{213, 1064178811u, 2147508200u, 1026988282u, 0, GAMMA_TOLERANCE, 0},
+{214, 1064346583u, 2147508200u, 1025137303u, 0, GAMMA_TOLERANCE, 0},
+{215, 1064514355u, 2147508200u, 1023259210u, 0, GAMMA_TOLERANCE, 0},
+{216, 1064682127u, 2147508200u, 1019749225u, 0, GAMMA_TOLERANCE, 0},
+{217, 1064849900u, 2147508200u, 1016332991u, 0, GAMMA_TOLERANCE, 0},
+{218, 1065017672u, 2147508200u, 1010996688u, 0, GAMMA_TOLERANCE, 0},
+{219, 1065185444u, 2147508200u, 1002428834u, 0, GAMMA_TOLERANCE, 0},
+{220, 1065353216u, 2147508200u, 0u, 0, GAMMA_TOLERANCE, 0},
+{221, 1065437102u, 2147508200u, 3149559224u, 0, GAMMA_TOLERANCE, 0},
+{222, 1065520988u, 2147508200u, 3157773750u, 0, GAMMA_TOLERANCE, 0},
+{223, 1065604874u, 2147508200u, 3163021599u, 0, GAMMA_TOLERANCE, 0},
+{224, 1065688760u, 2147508200u, 3165819122u, 0, GAMMA_TOLERANCE, 0},
+{225, 1065772646u, 2147508200u, 3168533229u, 0, GAMMA_TOLERANCE, 0},
+{226, 1065856532u, 2147508200u, 3171029445u, 0, GAMMA_TOLERANCE, 0},
+{227, 1065940419u, 2147508200u, 3172304802u, 0, GAMMA_TOLERANCE, 0},
+{228, 1066024305u, 2147508200u, 3173540112u, 0, GAMMA_TOLERANCE, 0},
+{229, 1066108191u, 2147508200u, 3174735922u, 0, GAMMA_TOLERANCE, 0},
+{230, 1066192077u, 2147508200u, 3175892750u, 0, GAMMA_TOLERANCE, 0},
+{231, 1066275963u, 2147508200u, 3177011103u, 0, GAMMA_TOLERANCE, 0},
+{232, 1066359849u, 2147508200u, 3178091474u, 0, GAMMA_TOLERANCE, 0},
+{233, 1066443735u, 2147508200u, 3179134344u, 0, GAMMA_TOLERANCE, 0},
+{234, 1066527621u, 2147508200u, 3179711309u, 0, GAMMA_TOLERANCE, 0},
+{235, 1066611507u, 2147508200u, 3180195945u, 0, GAMMA_TOLERANCE, 0},
+{236, 1066695393u, 2147508200u, 3180662520u, 0, GAMMA_TOLERANCE, 0},
+{237, 1066779279u, 2147508200u, 3181111256u, 0, GAMMA_TOLERANCE, 0},
+{238, 1066863165u, 2147508200u, 3181542364u, 0, GAMMA_TOLERANCE, 0},
+{239, 1066947052u, 2147508200u, 3181956062u, 0, GAMMA_TOLERANCE, 0},
+{240, 3234402267u, 2147508200u, 1084810150u, 0, GAMMA_TOLERANCE, 0},
+{241, 3231108068u, 2147508200u, 1076905300u, 0, GAMMA_TOLERANCE, 0},
+{242, 3226013659u, 2147508200u, 1062462412u, 0, GAMMA_TOLERANCE, 0},
+{243, 3217625051u, 2147508200u, 3186450168u, 0, GAMMA_TOLERANCE, 0},
+{244, 0u, 2147508200u, 1115684864u, 0, GAMMA_TOLERANCE, 0},
+{245, 1070141403u, 2147508200u, 3186450168u, 0, GAMMA_TOLERANCE, 0},
+{246, 1078530011u, 2147508200u, 1062462412u, 0, GAMMA_TOLERANCE, 0},
+{247, 1083624420u, 2147508200u, 1076905300u, 0, GAMMA_TOLERANCE, 0},
+{248, 3253731328u, 2147508200u, 1116636059u, 0, GAMMA_TOLERANCE, 0},
+{249, 3252840038u, 2147508200u, 1115888477u, 0, GAMMA_TOLERANCE, 0},
+{250, 3251948749u, 2147508200u, 1114624191u, 0, GAMMA_TOLERANCE, 0},
+{251, 3251057459u, 2147508200u, 1113185337u, 0, GAMMA_TOLERANCE, 0},
+{252, 3250166170u, 2147508200u, 1111777553u, 0, GAMMA_TOLERANCE, 0},
+{253, 3249274880u, 2147508200u, 1110403168u, 0, GAMMA_TOLERANCE, 0},
+{254, 3248383590u, 2147508200u, 1109064891u, 0, GAMMA_TOLERANCE, 0},
+{255, 3247492301u, 2147508200u, 1107765911u, 0, GAMMA_TOLERANCE, 0},
+{256, 3246601011u, 2147508200u, 1105723807u, 0, GAMMA_TOLERANCE, 0},
+{257, 3245028147u, 2147508200u, 1103307493u, 0, GAMMA_TOLERANCE, 0},
+{258, 3243245568u, 2147508200u, 1100998096u, 0, GAMMA_TOLERANCE, 0},
+{259, 3241462989u, 2147508200u, 1098712804u, 0, GAMMA_TOLERANCE, 0},
+{260, 3239680410u, 2147508200u, 1094618617u, 0, GAMMA_TOLERANCE, 0},
+{261, 3237792973u, 2147508200u, 1090859057u, 0, GAMMA_TOLERANCE, 0},
+{262, 3234227814u, 2147508200u, 1084505034u, 0, GAMMA_TOLERANCE, 0},
+{263, 3230662656u, 2147508200u, 1075644933u, 0, GAMMA_TOLERANCE, 0},
+{264, 3224580915u, 2147508200u, 1057244834u, 0, GAMMA_TOLERANCE, 0},
+{265, 3213675725u, 2147508200u, 3175892750u, 0, GAMMA_TOLERANCE, 0},
+{266, 1058642330u, 2147508200u, 1053549901u, 0, GAMMA_TOLERANCE, 0},
+{267, 1075000115u, 2147508200u, 1042146261u, 0, GAMMA_TOLERANCE, 0},
+{268, 1082130432u, 2147508200u, 1071994976u, 0, GAMMA_TOLERANCE, 0},
+{269, 1085695590u, 2147508200u, 1082725955u, 0, GAMMA_TOLERANCE, 0},
+{270, 1089260749u, 2147508200u, 1089135769u, 0, GAMMA_TOLERANCE, 0},
+{271, 1091672474u, 2147508200u, 1093475241u, 0, GAMMA_TOLERANCE, 0},
+{272, 1093455053u, 2147508200u, 1097477367u, 0, GAMMA_TOLERANCE, 0},
+{273, 1095237632u, 2147508200u, 1100341234u, 0, GAMMA_TOLERANCE, 0},
+{274, 1097020211u, 2147508200u, 1102616576u, 0, GAMMA_TOLERANCE, 0},
+{275, 1098802790u, 2147508200u, 1105002754u, 0, GAMMA_TOLERANCE, 0},
+{276, 1099746509u, 2147508200u, 1107391872u, 0, GAMMA_TOLERANCE, 0},
+{277, 1100637798u, 2147508200u, 1108678601u, 0, GAMMA_TOLERANCE, 0},
+{278, 1101529088u, 2147508200u, 1110005676u, 0, GAMMA_TOLERANCE, 0},
+{279, 1102420378u, 2147508200u, 1111369741u, 0, GAMMA_TOLERANCE, 0},
+{280, 1103311667u, 2147508200u, 1112767959u, 0, GAMMA_TOLERANCE, 0},
+{281, 1104202957u, 2147508200u, 1114197898u, 0, GAMMA_TOLERANCE, 0},
+{282, 1105094246u, 2147508200u, 1115657449u, 0, GAMMA_TOLERANCE, 0},
+{283, 1105985536u, 2147508200u, 1116414815u, 0, GAMMA_TOLERANCE, 0}
+
+// AUTOMATICALLY GENERATED VECTORS STOP
+
+};
+
+#endif // CYGONCE_LIBM_GAMMA_H multiple inclusion protection
+
+// EOF gammaf.h
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/hypotf.c b/ecos/packages/language/c/libm/current/tests/vectors/hypotf.c
new file mode 100644
index 0000000..d0c5861
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/hypotf.c
@@ -0,0 +1,58 @@
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include <cyg/infra/testcase.h> // Test infrastructure
+#include <math.h> // Header for this package
+#include <sys/ieeefp.h> // Cyg_libm_ieee_double_shape_type
+#include "vectors/vector_support_float.h"// extra support for math tests
+
+#include "vectors/hypotf.h"
+
+// FUNCTIONS
+
+static void
+test( CYG_ADDRWORD data )
+{
+ cyg_ucount32 vec_size;
+ cyg_bool ret;
+
+ vec_size = sizeof(hypotf_vec) / sizeof(Cyg_libm_test_float_vec_t);
+ ret = doTestVecFloat( (CYG_ADDRWORD) &hypotf, CYG_LIBM_TEST_VEC_FLOAT,
+ CYG_LIBM_TEST_VEC_FLOAT, CYG_LIBM_TEST_VEC_FLOAT,
+ &hypotf_vec[0], vec_size );
+
+ if (ret==true)
+ {
+ CYG_TEST_PASS("hypotf() is stable");
+ } // if
+ else
+ {
+ CYG_TEST_FAIL("hypotf() failed tests");
+ } // else
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for Math "
+ "library hypotf() function");
+} // test()
+
+
+int
+main(int argc, char *argv[])
+{
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for Math library "
+ "hypotf() function");
+
+ START_TEST( test );
+
+ CYG_TEST_PASS_FINISH("Testing is not applicable to this configuration");
+
+} // main()
+
+
+// EOF log10.c
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/hypotf.h b/ecos/packages/language/c/libm/current/tests/vectors/hypotf.h
new file mode 100644
index 0000000..f87aa38
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/hypotf.h
@@ -0,0 +1,310 @@
+#ifndef CYGONCE_LIBM_LOG10_H
+#define CYGONCE_LIBM_LOG10_H
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include "vectors/vector_support_float.h"// extra support for math tests
+
+#define HYPOT_TOLERANCE 1.0E-04
+
+static const Cyg_libm_test_float_vec_t hypotf_vec[] = {
+
+// AUTOMATICALLY GENERATED VECTORS START
+
+{0, 3214514586u, 1077097267u, 1078130363u, 0, HYPOT_TOLERANCE, 0},
+{1, 3214430700u, 1077139210u, 1078152510u, 0, HYPOT_TOLERANCE, 0},
+{2, 3214346813u, 1077181153u, 1078174894u, 0, HYPOT_TOLERANCE, 0},
+{3, 3214262927u, 1077223096u, 1078197514u, 0, HYPOT_TOLERANCE, 0},
+{4, 3214179041u, 1077265039u, 1078220367u, 0, HYPOT_TOLERANCE, 0},
+{5, 3214095155u, 1077306982u, 1078243452u, 0, HYPOT_TOLERANCE, 0},
+{6, 3214011269u, 1077348925u, 1078266769u, 0, HYPOT_TOLERANCE, 0},
+{7, 3213927383u, 1077390868u, 1078290314u, 0, HYPOT_TOLERANCE, 0},
+{8, 3213843497u, 1077432812u, 1078314091u, 0, HYPOT_TOLERANCE, 0},
+{9, 3213759611u, 1077474755u, 1078338093u, 0, HYPOT_TOLERANCE, 0},
+{10, 3213675725u, 1077516698u, 1078362322u, 0, HYPOT_TOLERANCE, 0},
+{11, 3213591839u, 1077558641u, 1078386776u, 0, HYPOT_TOLERANCE, 0},
+{12, 3213507953u, 1077600584u, 1078411453u, 0, HYPOT_TOLERANCE, 0},
+{13, 3213424067u, 1077642527u, 1078436352u, 0, HYPOT_TOLERANCE, 0},
+{14, 3213340180u, 1077684470u, 1078461474u, 0, HYPOT_TOLERANCE, 0},
+{15, 3213256294u, 1077726413u, 1078486814u, 0, HYPOT_TOLERANCE, 0},
+{16, 3213172408u, 1077768356u, 1078512373u, 0, HYPOT_TOLERANCE, 0},
+{17, 3213088522u, 1077810299u, 1078538149u, 0, HYPOT_TOLERANCE, 0},
+{18, 3213004636u, 1077852242u, 1078564142u, 0, HYPOT_TOLERANCE, 0},
+{19, 3212920750u, 1077894185u, 1078590350u, 0, HYPOT_TOLERANCE, 0},
+{20, 3212836864u, 1077936128u, 1078616770u, 0, HYPOT_TOLERANCE, 0},
+{21, 3212669092u, 1077978071u, 1078643403u, 0, HYPOT_TOLERANCE, 0},
+{22, 3212501320u, 1078020014u, 1078670247u, 0, HYPOT_TOLERANCE, 0},
+{23, 3212333548u, 1078061957u, 1078697300u, 0, HYPOT_TOLERANCE, 0},
+{24, 3212165775u, 1078103900u, 1078724562u, 0, HYPOT_TOLERANCE, 0},
+{25, 3211998003u, 1078145843u, 1078752032u, 0, HYPOT_TOLERANCE, 0},
+{26, 3211830231u, 1078187786u, 1078779706u, 0, HYPOT_TOLERANCE, 0},
+{27, 3211662459u, 1078229729u, 1078807586u, 0, HYPOT_TOLERANCE, 0},
+{28, 3211494687u, 1078271672u, 1078835668u, 0, HYPOT_TOLERANCE, 0},
+{29, 3211326915u, 1078313615u, 1078863953u, 0, HYPOT_TOLERANCE, 0},
+{30, 3211159142u, 1078355558u, 1078892439u, 0, HYPOT_TOLERANCE, 0},
+{31, 3210991370u, 1078397501u, 1078921124u, 0, HYPOT_TOLERANCE, 0},
+{32, 3210823598u, 1078439444u, 1078950007u, 0, HYPOT_TOLERANCE, 0},
+{33, 3210655826u, 1078481388u, 1078979089u, 0, HYPOT_TOLERANCE, 0},
+{34, 3210488054u, 1078523331u, 1079008365u, 0, HYPOT_TOLERANCE, 0},
+{35, 3210320282u, 1078565274u, 1079037837u, 0, HYPOT_TOLERANCE, 0},
+{36, 3210152509u, 1078607217u, 1079067501u, 0, HYPOT_TOLERANCE, 0},
+{37, 3209984737u, 1078649160u, 1079097355u, 0, HYPOT_TOLERANCE, 0},
+{38, 3209816965u, 1078691103u, 1079127402u, 0, HYPOT_TOLERANCE, 0},
+{39, 3209649193u, 1078733046u, 1079157638u, 0, HYPOT_TOLERANCE, 0},
+{40, 3209481421u, 1078774989u, 1079188063u, 0, HYPOT_TOLERANCE, 0},
+{41, 3209313649u, 1078816932u, 1079218675u, 0, HYPOT_TOLERANCE, 0},
+{42, 3209145876u, 1078858875u, 1079249471u, 0, HYPOT_TOLERANCE, 0},
+{43, 3208978104u, 1078900818u, 1079280453u, 0, HYPOT_TOLERANCE, 0},
+{44, 3208810332u, 1078942761u, 1079311617u, 0, HYPOT_TOLERANCE, 0},
+{45, 3208642560u, 1078984704u, 1079342964u, 0, HYPOT_TOLERANCE, 0},
+{46, 3208474788u, 1079026647u, 1079374492u, 0, HYPOT_TOLERANCE, 0},
+{47, 3208307016u, 1079068590u, 1079406200u, 0, HYPOT_TOLERANCE, 0},
+{48, 3208139244u, 1079110533u, 1079438085u, 0, HYPOT_TOLERANCE, 0},
+{49, 3207971471u, 1079152476u, 1079470149u, 0, HYPOT_TOLERANCE, 0},
+{50, 3207803699u, 1079194419u, 1079502388u, 0, HYPOT_TOLERANCE, 0},
+{51, 3207635927u, 1079236362u, 1079534802u, 0, HYPOT_TOLERANCE, 0},
+{52, 3207468155u, 1079278305u, 1079567389u, 0, HYPOT_TOLERANCE, 0},
+{53, 3207300383u, 1079320248u, 1079600149u, 0, HYPOT_TOLERANCE, 0},
+{54, 3207132611u, 1079362191u, 1079633082u, 0, HYPOT_TOLERANCE, 0},
+{55, 3206964838u, 1079404134u, 1079666183u, 0, HYPOT_TOLERANCE, 0},
+{56, 3206797066u, 1079446077u, 1079699453u, 0, HYPOT_TOLERANCE, 0},
+{57, 3206629294u, 1079488020u, 1079732889u, 0, HYPOT_TOLERANCE, 0},
+{58, 3206461522u, 1079529964u, 1079766495u, 0, HYPOT_TOLERANCE, 0},
+{59, 3206293750u, 1079571907u, 1079800266u, 0, HYPOT_TOLERANCE, 0},
+{60, 3206125978u, 1079613850u, 1079834199u, 0, HYPOT_TOLERANCE, 0},
+{61, 3205958205u, 1079655793u, 1079868296u, 0, HYPOT_TOLERANCE, 0},
+{62, 3205790433u, 1079697736u, 1079902555u, 0, HYPOT_TOLERANCE, 0},
+{63, 3205622661u, 1079739679u, 1079936974u, 0, HYPOT_TOLERANCE, 0},
+{64, 3205454889u, 1079781622u, 1079971555u, 0, HYPOT_TOLERANCE, 0},
+{65, 3205287117u, 1079823565u, 1080006293u, 0, HYPOT_TOLERANCE, 0},
+{66, 3205119345u, 1079865508u, 1080041188u, 0, HYPOT_TOLERANCE, 0},
+{67, 3204951572u, 1079907451u, 1080076239u, 0, HYPOT_TOLERANCE, 0},
+{68, 3204783800u, 1079949394u, 1080111445u, 0, HYPOT_TOLERANCE, 0},
+{69, 3204616028u, 1079991337u, 1080146806u, 0, HYPOT_TOLERANCE, 0},
+{70, 3204448256u, 1080033280u, 1080182320u, 0, HYPOT_TOLERANCE, 0},
+{71, 3204112712u, 1080075223u, 1080217985u, 0, HYPOT_TOLERANCE, 0},
+{72, 3203777167u, 1080117166u, 1080253802u, 0, HYPOT_TOLERANCE, 0},
+{73, 3203441623u, 1080159109u, 1080289768u, 0, HYPOT_TOLERANCE, 0},
+{74, 3203106079u, 1080201052u, 1080325883u, 0, HYPOT_TOLERANCE, 0},
+{75, 3202770534u, 1080242995u, 1080362144u, 0, HYPOT_TOLERANCE, 0},
+{76, 3202434990u, 1080284938u, 1080398554u, 0, HYPOT_TOLERANCE, 0},
+{77, 3202099446u, 1080326881u, 1080435107u, 0, HYPOT_TOLERANCE, 0},
+{78, 3201763901u, 1080368824u, 1080471806u, 0, HYPOT_TOLERANCE, 0},
+{79, 3201428357u, 1080410767u, 1080508647u, 0, HYPOT_TOLERANCE, 0},
+{80, 3201092813u, 1080452710u, 1080545631u, 0, HYPOT_TOLERANCE, 0},
+{81, 3200757268u, 1080494653u, 1080582755u, 0, HYPOT_TOLERANCE, 0},
+{82, 3200421724u, 1080536596u, 1080620021u, 0, HYPOT_TOLERANCE, 0},
+{83, 3200086180u, 1080578540u, 1080657427u, 0, HYPOT_TOLERANCE, 0},
+{84, 3199750636u, 1080620483u, 1080694970u, 0, HYPOT_TOLERANCE, 0},
+{85, 3199415091u, 1080662426u, 1080732648u, 0, HYPOT_TOLERANCE, 0},
+{86, 3199079547u, 1080704369u, 1080770465u, 0, HYPOT_TOLERANCE, 0},
+{87, 3198744003u, 1080746312u, 1080808416u, 0, HYPOT_TOLERANCE, 0},
+{88, 3198408458u, 1080788255u, 1080846500u, 0, HYPOT_TOLERANCE, 0},
+{89, 3198072914u, 1080830198u, 1080884718u, 0, HYPOT_TOLERANCE, 0},
+{90, 3197737370u, 1080872141u, 1080923070u, 0, HYPOT_TOLERANCE, 0},
+{91, 3197401825u, 1080914084u, 1080961550u, 0, HYPOT_TOLERANCE, 0},
+{92, 3197066281u, 1080956027u, 1081000163u, 0, HYPOT_TOLERANCE, 0},
+{93, 3196730737u, 1080997970u, 1081038903u, 0, HYPOT_TOLERANCE, 0},
+{94, 3196395192u, 1081039913u, 1081077773u, 0, HYPOT_TOLERANCE, 0},
+{95, 3196059648u, 1081081856u, 1081116770u, 0, HYPOT_TOLERANCE, 0},
+{96, 3195388559u, 1081123799u, 1081155892u, 0, HYPOT_TOLERANCE, 0},
+{97, 3194717471u, 1081165742u, 1081195142u, 0, HYPOT_TOLERANCE, 0},
+{98, 3194046382u, 1081207685u, 1081234514u, 0, HYPOT_TOLERANCE, 0},
+{99, 3193375293u, 1081249628u, 1081274011u, 0, HYPOT_TOLERANCE, 0},
+{100, 3192704205u, 1081291571u, 1081313630u, 0, HYPOT_TOLERANCE, 0},
+{101, 3192033116u, 1081333514u, 1081353374u, 0, HYPOT_TOLERANCE, 0},
+{102, 3191362028u, 1081375457u, 1081393235u, 0, HYPOT_TOLERANCE, 0},
+{103, 3190690939u, 1081417400u, 1081433216u, 0, HYPOT_TOLERANCE, 0},
+{104, 3190019850u, 1081459343u, 1081473319u, 0, HYPOT_TOLERANCE, 0},
+{105, 3189348762u, 1081501286u, 1081513539u, 0, HYPOT_TOLERANCE, 0},
+{106, 3188677673u, 1081543229u, 1081553875u, 0, HYPOT_TOLERANCE, 0},
+{107, 3188006584u, 1081585172u, 1081594328u, 0, HYPOT_TOLERANCE, 0},
+{108, 3186999951u, 1081627116u, 1081634897u, 0, HYPOT_TOLERANCE, 0},
+{109, 3185657774u, 1081669059u, 1081675581u, 0, HYPOT_TOLERANCE, 0},
+{110, 3184315597u, 1081711002u, 1081716378u, 0, HYPOT_TOLERANCE, 0},
+{111, 3182973420u, 1081752945u, 1081757289u, 0, HYPOT_TOLERANCE, 0},
+{112, 3181631242u, 1081794888u, 1081798312u, 0, HYPOT_TOLERANCE, 0},
+{113, 3180289065u, 1081836831u, 1081839444u, 0, HYPOT_TOLERANCE, 0},
+{114, 3178611343u, 1081878774u, 1081880689u, 0, HYPOT_TOLERANCE, 0},
+{115, 3175926989u, 1081920717u, 1081922044u, 0, HYPOT_TOLERANCE, 0},
+{116, 3173242634u, 1081962660u, 1081963507u, 0, HYPOT_TOLERANCE, 0},
+{117, 3170222735u, 1082004603u, 1082005077u, 0, HYPOT_TOLERANCE, 0},
+{118, 3164854026u, 1082046546u, 1082046757u, 0, HYPOT_TOLERANCE, 0},
+{119, 3156465418u, 1082088489u, 1082088541u, 0, HYPOT_TOLERANCE, 0},
+{120, 646742016u, 1082130432u, 1082130432u, 0, HYPOT_TOLERANCE, 0},
+{121, 1008981770u, 1082151404u, 1082151430u, 0, HYPOT_TOLERANCE, 0},
+{122, 1017370378u, 1082172375u, 1082172480u, 0, HYPOT_TOLERANCE, 0},
+{123, 1022739087u, 1082193347u, 1082193581u, 0, HYPOT_TOLERANCE, 0},
+{124, 1025758986u, 1082214318u, 1082214733u, 0, HYPOT_TOLERANCE, 0},
+{125, 1028443341u, 1082235290u, 1082235937u, 0, HYPOT_TOLERANCE, 0},
+{126, 1031127695u, 1082256261u, 1082257191u, 0, HYPOT_TOLERANCE, 0},
+{127, 1032805417u, 1082277233u, 1082278495u, 0, HYPOT_TOLERANCE, 0},
+{128, 1034147594u, 1082298204u, 1082299848u, 0, HYPOT_TOLERANCE, 0},
+{129, 1035489772u, 1082319176u, 1082321253u, 0, HYPOT_TOLERANCE, 0},
+{130, 1036831949u, 1082340147u, 1082342704u, 0, HYPOT_TOLERANCE, 0},
+{131, 1038174126u, 1082361119u, 1082364206u, 0, HYPOT_TOLERANCE, 0},
+{132, 1039516303u, 1082382090u, 1082385754u, 0, HYPOT_TOLERANCE, 0},
+{133, 1040522936u, 1082403062u, 1082407351u, 0, HYPOT_TOLERANCE, 0},
+{134, 1041194025u, 1082424033u, 1082428996u, 0, HYPOT_TOLERANCE, 0},
+{135, 1041865114u, 1082445005u, 1082450688u, 0, HYPOT_TOLERANCE, 0},
+{136, 1042536202u, 1082465976u, 1082472426u, 0, HYPOT_TOLERANCE, 0},
+{137, 1043207291u, 1082486948u, 1082494212u, 0, HYPOT_TOLERANCE, 0},
+{138, 1043878380u, 1082507919u, 1082516043u, 0, HYPOT_TOLERANCE, 0},
+{139, 1044549468u, 1082528891u, 1082537920u, 0, HYPOT_TOLERANCE, 0},
+{140, 1045220557u, 1082549862u, 1082559843u, 0, HYPOT_TOLERANCE, 0},
+{141, 1045891645u, 1082570834u, 1082581812u, 0, HYPOT_TOLERANCE, 0},
+{142, 1046562734u, 1082591805u, 1082603824u, 0, HYPOT_TOLERANCE, 0},
+{143, 1047233823u, 1082612777u, 1082625880u, 0, HYPOT_TOLERANCE, 0},
+{144, 1047904911u, 1082633748u, 1082647982u, 0, HYPOT_TOLERANCE, 0},
+{145, 1048576000u, 1082654720u, 1082670126u, 0, HYPOT_TOLERANCE, 0},
+{146, 1048911544u, 1082675692u, 1082692316u, 0, HYPOT_TOLERANCE, 0},
+{147, 1049247089u, 1082696663u, 1082714547u, 0, HYPOT_TOLERANCE, 0},
+{148, 1049582633u, 1082717635u, 1082736822u, 0, HYPOT_TOLERANCE, 0},
+{149, 1049918177u, 1082738606u, 1082759139u, 0, HYPOT_TOLERANCE, 0},
+{150, 1050253722u, 1082759578u, 1082781498u, 0, HYPOT_TOLERANCE, 0},
+{151, 1050589266u, 1082780549u, 1082803900u, 0, HYPOT_TOLERANCE, 0},
+{152, 1050924810u, 1082801521u, 1082826343u, 0, HYPOT_TOLERANCE, 0},
+{153, 1051260355u, 1082822492u, 1082848826u, 0, HYPOT_TOLERANCE, 0},
+{154, 1051595899u, 1082843464u, 1082871352u, 0, HYPOT_TOLERANCE, 0},
+{155, 1051931443u, 1082864435u, 1082893916u, 0, HYPOT_TOLERANCE, 0},
+{156, 1052266988u, 1082885407u, 1082916522u, 0, HYPOT_TOLERANCE, 0},
+{157, 1052602532u, 1082906378u, 1082939168u, 0, HYPOT_TOLERANCE, 0},
+{158, 1052938076u, 1082927350u, 1082961855u, 0, HYPOT_TOLERANCE, 0},
+{159, 1053273620u, 1082948321u, 1082984579u, 0, HYPOT_TOLERANCE, 0},
+{160, 1053609165u, 1082969293u, 1083007344u, 0, HYPOT_TOLERANCE, 0},
+{161, 1053944709u, 1082990264u, 1083030147u, 0, HYPOT_TOLERANCE, 0},
+{162, 1054280253u, 1083011236u, 1083052990u, 0, HYPOT_TOLERANCE, 0},
+{163, 1054615798u, 1083032207u, 1083075870u, 0, HYPOT_TOLERANCE, 0},
+{164, 1054951342u, 1083053179u, 1083098789u, 0, HYPOT_TOLERANCE, 0},
+{165, 1055286886u, 1083074150u, 1083121745u, 0, HYPOT_TOLERANCE, 0},
+{166, 1055622431u, 1083095122u, 1083144738u, 0, HYPOT_TOLERANCE, 0},
+{167, 1055957975u, 1083116093u, 1083167770u, 0, HYPOT_TOLERANCE, 0},
+{168, 1056293519u, 1083137065u, 1083190838u, 0, HYPOT_TOLERANCE, 0},
+{169, 1056629064u, 1083158036u, 1083213942u, 0, HYPOT_TOLERANCE, 0},
+{170, 1056964608u, 1083179008u, 1083237084u, 0, HYPOT_TOLERANCE, 0},
+{171, 1057132380u, 1083199980u, 1083260262u, 0, HYPOT_TOLERANCE, 0},
+{172, 1057300152u, 1083220951u, 1083283474u, 0, HYPOT_TOLERANCE, 0},
+{173, 1057467924u, 1083241923u, 1083306722u, 0, HYPOT_TOLERANCE, 0},
+{174, 1057635697u, 1083262894u, 1083330007u, 0, HYPOT_TOLERANCE, 0},
+{175, 1057803469u, 1083283866u, 1083353326u, 0, HYPOT_TOLERANCE, 0},
+{176, 1057971241u, 1083304837u, 1083376680u, 0, HYPOT_TOLERANCE, 0},
+{177, 1058139013u, 1083325809u, 1083400069u, 0, HYPOT_TOLERANCE, 0},
+{178, 1058306785u, 1083346780u, 1083423492u, 0, HYPOT_TOLERANCE, 0},
+{179, 1058474557u, 1083367752u, 1083446949u, 0, HYPOT_TOLERANCE, 0},
+{180, 1058642330u, 1083388723u, 1083470440u, 0, HYPOT_TOLERANCE, 0},
+{181, 1058810102u, 1083409695u, 1083493965u, 0, HYPOT_TOLERANCE, 0},
+{182, 1058977874u, 1083430666u, 1083517522u, 0, HYPOT_TOLERANCE, 0},
+{183, 1059145646u, 1083451638u, 1083541113u, 0, HYPOT_TOLERANCE, 0},
+{184, 1059313418u, 1083472609u, 1083564737u, 0, HYPOT_TOLERANCE, 0},
+{185, 1059481190u, 1083493581u, 1083588395u, 0, HYPOT_TOLERANCE, 0},
+{186, 1059648963u, 1083514552u, 1083612082u, 0, HYPOT_TOLERANCE, 0},
+{187, 1059816735u, 1083535524u, 1083635804u, 0, HYPOT_TOLERANCE, 0},
+{188, 1059984507u, 1083556495u, 1083659557u, 0, HYPOT_TOLERANCE, 0},
+{189, 1060152279u, 1083577467u, 1083683341u, 0, HYPOT_TOLERANCE, 0},
+{190, 1060320051u, 1083598438u, 1083707158u, 0, HYPOT_TOLERANCE, 0},
+{191, 1060487823u, 1083619410u, 1083731006u, 0, HYPOT_TOLERANCE, 0},
+{192, 1060655596u, 1083640381u, 1083754885u, 0, HYPOT_TOLERANCE, 0},
+{193, 1060823368u, 1083661353u, 1083778794u, 0, HYPOT_TOLERANCE, 0},
+{194, 1060991140u, 1083682324u, 1083802734u, 0, HYPOT_TOLERANCE, 0},
+{195, 1061158912u, 1083703296u, 1083826705u, 0, HYPOT_TOLERANCE, 0},
+{196, 1061326684u, 1083724268u, 1083850707u, 0, HYPOT_TOLERANCE, 0},
+{197, 1061494456u, 1083745239u, 1083874736u, 0, HYPOT_TOLERANCE, 0},
+{198, 1061662228u, 1083766211u, 1083898797u, 0, HYPOT_TOLERANCE, 0},
+{199, 1061830001u, 1083787182u, 1083922887u, 0, HYPOT_TOLERANCE, 0},
+{200, 1061997773u, 1083808154u, 1083947006u, 0, HYPOT_TOLERANCE, 0},
+{201, 1062165545u, 1083829125u, 1083971153u, 0, HYPOT_TOLERANCE, 0},
+{202, 1062333317u, 1083850097u, 1083995332u, 0, HYPOT_TOLERANCE, 0},
+{203, 1062501089u, 1083871068u, 1084019537u, 0, HYPOT_TOLERANCE, 0},
+{204, 1062668861u, 1083892040u, 1084043773u, 0, HYPOT_TOLERANCE, 0},
+{205, 1062836634u, 1083913011u, 1084068035u, 0, HYPOT_TOLERANCE, 0},
+{206, 1063004406u, 1083933983u, 1084092327u, 0, HYPOT_TOLERANCE, 0},
+{207, 1063172178u, 1083954954u, 1084116645u, 0, HYPOT_TOLERANCE, 0},
+{208, 1063339950u, 1083975926u, 1084140992u, 0, HYPOT_TOLERANCE, 0},
+{209, 1063507722u, 1083996897u, 1084165366u, 0, HYPOT_TOLERANCE, 0},
+{210, 1063675494u, 1084017869u, 1084189767u, 0, HYPOT_TOLERANCE, 0},
+{211, 1063843267u, 1084038840u, 1084214196u, 0, HYPOT_TOLERANCE, 0},
+{212, 1064011039u, 1084059812u, 1084238652u, 0, HYPOT_TOLERANCE, 0},
+{213, 1064178811u, 1084080783u, 1084263133u, 0, HYPOT_TOLERANCE, 0},
+{214, 1064346583u, 1084101755u, 1084287642u, 0, HYPOT_TOLERANCE, 0},
+{215, 1064514355u, 1084122726u, 1084312177u, 0, HYPOT_TOLERANCE, 0},
+{216, 1064682127u, 1084143698u, 1084336739u, 0, HYPOT_TOLERANCE, 0},
+{217, 1064849900u, 1084164669u, 1084361326u, 0, HYPOT_TOLERANCE, 0},
+{218, 1065017672u, 1084185641u, 1084385939u, 0, HYPOT_TOLERANCE, 0},
+{219, 1065185444u, 1084206612u, 1084410578u, 0, HYPOT_TOLERANCE, 0},
+{220, 1065353216u, 1084227584u, 1084435243u, 0, HYPOT_TOLERANCE, 0},
+{221, 1065437102u, 1084248556u, 1084459933u, 0, HYPOT_TOLERANCE, 0},
+{222, 1065520988u, 1084269527u, 1084484648u, 0, HYPOT_TOLERANCE, 0},
+{223, 1065604874u, 1084290499u, 1084509388u, 0, HYPOT_TOLERANCE, 0},
+{224, 1065688760u, 1084311470u, 1084534152u, 0, HYPOT_TOLERANCE, 0},
+{225, 1065772646u, 1084332442u, 1084558942u, 0, HYPOT_TOLERANCE, 0},
+{226, 1065856532u, 1084353413u, 1084583754u, 0, HYPOT_TOLERANCE, 0},
+{227, 1065940419u, 1084374385u, 1084608594u, 0, HYPOT_TOLERANCE, 0},
+{228, 1066024305u, 1084395356u, 1084633454u, 0, HYPOT_TOLERANCE, 0},
+{229, 1066108191u, 1084416328u, 1084658342u, 0, HYPOT_TOLERANCE, 0},
+{230, 1066192077u, 1084437299u, 1084683252u, 0, HYPOT_TOLERANCE, 0},
+{231, 1066275963u, 1084458271u, 1084708184u, 0, HYPOT_TOLERANCE, 0},
+{232, 1066359849u, 1084479242u, 1084733142u, 0, HYPOT_TOLERANCE, 0},
+{233, 1066443735u, 1084500214u, 1084758122u, 0, HYPOT_TOLERANCE, 0},
+{234, 1066527621u, 1084521185u, 1084783125u, 0, HYPOT_TOLERANCE, 0},
+{235, 1066611507u, 1084542157u, 1084808152u, 0, HYPOT_TOLERANCE, 0},
+{236, 1066695393u, 1084563128u, 1084833200u, 0, HYPOT_TOLERANCE, 0},
+{237, 1066779279u, 1084584100u, 1084858273u, 0, HYPOT_TOLERANCE, 0},
+{238, 1066863165u, 1084605071u, 1084883366u, 0, HYPOT_TOLERANCE, 0},
+{239, 1066947052u, 1084626043u, 1084908484u, 0, HYPOT_TOLERANCE, 0},
+{240, 3234402267u, 3222413237u, 1087761618u, 0, HYPOT_TOLERANCE, 0},
+{241, 3231108068u, 3208011552u, 1083736708u, 0, HYPOT_TOLERANCE, 0},
+{242, 3226013659u, 1062977685u, 1079013047u, 0, HYPOT_TOLERANCE, 0},
+{243, 3217625051u, 1075542035u, 1077486600u, 0, HYPOT_TOLERANCE, 0},
+{244, 0u, 1082130432u, 1082130432u, 0, HYPOT_TOLERANCE, 0},
+{245, 1070141403u, 1085424631u, 1085880181u, 0, HYPOT_TOLERANCE, 0},
+{246, 1078530011u, 1088718829u, 1090103903u, 0, HYPOT_TOLERANCE, 0},
+{247, 1083624420u, 1091266034u, 1092516752u, 0, HYPOT_TOLERANCE, 0},
+{248, 3253731328u, 3251634176u, 1109314468u, 0, HYPOT_TOLERANCE, 0},
+{249, 3252840038u, 3250742886u, 1108685935u, 0, HYPOT_TOLERANCE, 0},
+{250, 3251948749u, 3249851597u, 1108057637u, 0, HYPOT_TOLERANCE, 0},
+{251, 3251057459u, 3248960307u, 1107429626u, 0, HYPOT_TOLERANCE, 0},
+{252, 3250166170u, 3248069018u, 1106307685u, 0, HYPOT_TOLERANCE, 0},
+{253, 3249274880u, 3247177728u, 1105053264u, 0, HYPOT_TOLERANCE, 0},
+{254, 3248383590u, 3246181581u, 1103799991u, 0, HYPOT_TOLERANCE, 0},
+{255, 3247492301u, 3244399002u, 1102548223u, 0, HYPOT_TOLERANCE, 0},
+{256, 3246601011u, 3242616422u, 1101298483u, 0, HYPOT_TOLERANCE, 0},
+{257, 3245028147u, 3240833843u, 1100051571u, 0, HYPOT_TOLERANCE, 0},
+{258, 3243245568u, 3239051264u, 1098709875u, 0, HYPOT_TOLERANCE, 0},
+{259, 3241462989u, 3236534682u, 1096236800u, 0, HYPOT_TOLERANCE, 0},
+{260, 3239680410u, 3232969523u, 1093784259u, 0, HYPOT_TOLERANCE, 0},
+{261, 3237792973u, 3229194650u, 1091368619u, 0, HYPOT_TOLERANCE, 0},
+{262, 3234227814u, 3222064333u, 1087538470u, 0, HYPOT_TOLERANCE, 0},
+{263, 3230662656u, 3204448256u, 1083237084u, 0, HYPOT_TOLERANCE, 0},
+{264, 3224580915u, 1067030938u, 1078130363u, 0, HYPOT_TOLERANCE, 0},
+{265, 3213675725u, 1077516698u, 1078362322u, 0, HYPOT_TOLERANCE, 0},
+{266, 1058642330u, 1083388723u, 1083470440u, 0, HYPOT_TOLERANCE, 0},
+{267, 1075000115u, 1086953882u, 1087806820u, 0, HYPOT_TOLERANCE, 0},
+{268, 1082130432u, 1090519040u, 1091509181u, 0, HYPOT_TOLERANCE, 0},
+{269, 1085695590u, 1092301619u, 1093927727u, 0, HYPOT_TOLERANCE, 0},
+{270, 1089260749u, 1094084198u, 1096381811u, 0, HYPOT_TOLERANCE, 0},
+{271, 1091672474u, 1095866778u, 1098855795u, 0, HYPOT_TOLERANCE, 0},
+{272, 1093455053u, 1097649357u, 1100124820u, 0, HYPOT_TOLERANCE, 0},
+{273, 1095237632u, 1099169792u, 1101371928u, 0, HYPOT_TOLERANCE, 0},
+{274, 1097020211u, 1100061082u, 1102621806u, 0, HYPOT_TOLERANCE, 0},
+{275, 1098802790u, 1100952371u, 1103873675u, 0, HYPOT_TOLERANCE, 0},
+{276, 1099746509u, 1101843661u, 1105127024u, 0, HYPOT_TOLERANCE, 0},
+{277, 1100637798u, 1102734950u, 1106381502u, 0, HYPOT_TOLERANCE, 0},
+{278, 1101529088u, 1103626240u, 1107466559u, 0, HYPOT_TOLERANCE, 0},
+{279, 1102420378u, 1104517530u, 1108094589u, 0, HYPOT_TOLERANCE, 0},
+{280, 1103311667u, 1105408819u, 1108722902u, 0, HYPOT_TOLERANCE, 0},
+{281, 1104202957u, 1106300109u, 1109351447u, 0, HYPOT_TOLERANCE, 0},
+{282, 1105094246u, 1107191398u, 1109980183u, 0, HYPOT_TOLERANCE, 0},
+{283, 1105985536u, 1107689472u, 1110609082u, 0, HYPOT_TOLERANCE, 0}
+
+// AUTOMATICALLY GENERATED VECTORS STOP
+
+};
+
+#endif // CYGONCE_LIBM_LOG10_H multiple inclusion protection
+
+// EOF log10.h
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/ilogbf.c b/ecos/packages/language/c/libm/current/tests/vectors/ilogbf.c
new file mode 100644
index 0000000..7dd0490
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/ilogbf.c
@@ -0,0 +1,115 @@
+//===========================================================================
+//
+// ilogbf.c
+//
+// Test of ilogbf() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// Declarations for test system:
+//
+// TESTCASE_TYPE=CYG_TEST_MODULE
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include <cyg/infra/testcase.h> // Test infrastructure
+#include <math.h> // Header for this package
+#include <sys/ieeefp.h> // Cyg_libm_ieee_float_shape_type
+#include "vectors/vector_support_float.h"// extra support for math tests
+
+#include "vetors/ilogbf.h"
+
+// FUNCTIONS
+
+static void
+test( CYG_ADDRWORD data )
+{
+ cyg_ucount32 vec_size;
+ cyg_bool ret;
+
+ vec_size = sizeof(ilogbf_vec) / sizeof(Cyg_libm_test_float_vec_t);
+ ret = doTestVecFloat( (CYG_ADDRWORD) &ilogbf, CYG_LIBM_TEST_VEC_FLOAT,
+ CYG_LIBM_TEST_VEC_NONE, CYG_LIBM_TEST_VEC_INT,
+ &ilogbf_vec[0], vec_size );
+
+ if (ret==true)
+ {
+ CYG_TEST_PASS("ilogbf() is stable");
+ } // if
+ else
+ {
+ CYG_TEST_FAIL("ilogbf() failed tests");
+ } // else
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for Math "
+ "library ilogbf() function");
+} // test()
+
+
+int
+main(int argc, char *argv[])
+{
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for Math library "
+ "ilogbf() function");
+
+ START_TEST( test );
+
+ CYG_TEST_PASS_FINISH("Testing is not applicable to this configuration");
+
+} // main()
+
+
+// EOF ilogbf.c
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/ilogbf.h b/ecos/packages/language/c/libm/current/tests/vectors/ilogbf.h
new file mode 100644
index 0000000..c1433d7
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/ilogbf.h
@@ -0,0 +1,1361 @@
+#ifndef CYGONCE_LIBM_ILOGBF_H
+#define CYGONCE_LIBM_ILOGBF_H
+//===========================================================================
+//
+// ilogbf.h
+//
+// Test vectors for testing of ilogbf() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage: #include "vectors/ilogbf.h"
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include "vectors/vector_support_float.h"// extra support for math tests
+
+#define ILOGBF_TOLERANCE 1.0E-04
+
+static const Cyg_libm_test_float_vec_t ilogbf_vec[] = {
+
+// AUTOMATICALLY GENERATED VECTORS START
+/*
+{0, 3214514586u, 0u, 0u, 0, ILOGBF_TOLERANCE, 0},
+{1, 3214430700u, 0u, 0u, 0, ILOGBF_TOLERANCE, 0},
+{2, 3214346813u, 0u, 0u, 0, ILOGBF_TOLERANCE, 0},
+{3, 3214262927u, 0u, 0u, 0, ILOGBF_TOLERANCE, 0},
+{4, 3214179041u, 0u, 0u, 0, ILOGBF_TOLERANCE, 0},
+{5, 3214095155u, 0u, 0u, 0, ILOGBF_TOLERANCE, 0},
+{6, 3214011269u, 0u, 0u, 0, ILOGBF_TOLERANCE, 0},
+{7, 3213927383u, 0u, 0u, 0, ILOGBF_TOLERANCE, 0},
+{8, 3213843497u, 0u, 0u, 0, ILOGBF_TOLERANCE, 0},
+{9, 3213759611u, 0u, 0u, 0, ILOGBF_TOLERANCE, 0},
+{10, 3213675725u, 0u, 0u, 0, ILOGBF_TOLERANCE, 0},
+{11, 3213591839u, 0u, 0u, 0, ILOGBF_TOLERANCE, 0},
+{12, 3213507953u, 0u, 0u, 0, ILOGBF_TOLERANCE, 0},
+{13, 3213424067u, 0u, 0u, 0, ILOGBF_TOLERANCE, 0},
+{14, 3213340180u, 0u, 0u, 0, ILOGBF_TOLERANCE, 0},
+{15, 3213256294u, 0u, 0u, 0, ILOGBF_TOLERANCE, 0},
+{16, 3213172408u, 0u, 0u, 0, ILOGBF_TOLERANCE, 0},
+{17, 3213088522u, 0u, 0u, 0, ILOGBF_TOLERANCE, 0},
+{18, 3213004636u, 0u, 0u, 0, ILOGBF_TOLERANCE, 0},
+{19, 3212920750u, 0u, 0u, 0, ILOGBF_TOLERANCE, 0},
+{20, 3212836864u, 0u, 0u, 0, ILOGBF_TOLERANCE, 0},*/
+{21, 3212669092u, 0u, 3212836864u, 0, ILOGBF_TOLERANCE, 0},
+{22, 3212501320u, 0u, 3212836864u, 0, ILOGBF_TOLERANCE, 0},
+{23, 3212333548u, 0u, 3212836864u, 0, ILOGBF_TOLERANCE, 0},
+{24, 3212165775u, 0u, 3212836864u, 0, ILOGBF_TOLERANCE, 0},
+{25, 3211998003u, 0u, 3212836864u, 0, ILOGBF_TOLERANCE, 0},
+{26, 3211830231u, 0u, 3212836864u, 0, ILOGBF_TOLERANCE, 0},
+{27, 3211662459u, 0u, 3212836864u, 0, ILOGBF_TOLERANCE, 0},
+{28, 3211494687u, 0u, 3212836864u, 0, ILOGBF_TOLERANCE, 0},
+{29, 3211326915u, 0u, 3212836864u, 0, ILOGBF_TOLERANCE, 0},
+{30, 3211159142u, 0u, 3212836864u, 0, ILOGBF_TOLERANCE, 0},
+{31, 3210991370u, 0u, 3212836864u, 0, ILOGBF_TOLERANCE, 0},
+{32, 3210823598u, 0u, 3212836864u, 0, ILOGBF_TOLERANCE, 0},
+{33, 3210655826u, 0u, 3212836864u, 0, ILOGBF_TOLERANCE, 0},
+{34, 3210488054u, 0u, 3212836864u, 0, ILOGBF_TOLERANCE, 0},
+{35, 3210320282u, 0u, 3212836864u, 0, ILOGBF_TOLERANCE, 0},
+{36, 3210152509u, 0u, 3212836864u, 0, ILOGBF_TOLERANCE, 0},
+{37, 3209984737u, 0u, 3212836864u, 0, ILOGBF_TOLERANCE, 0},
+{38, 3209816965u, 0u, 3212836864u, 0, ILOGBF_TOLERANCE, 0},
+{39, 3209649193u, 0u, 3212836864u, 0, ILOGBF_TOLERANCE, 0},
+{40, 3209481421u, 0u, 3212836864u, 0, ILOGBF_TOLERANCE, 0},
+{41, 3209313649u, 0u, 3212836864u, 0, ILOGBF_TOLERANCE, 0},
+{42, 3209145876u, 0u, 3212836864u, 0, ILOGBF_TOLERANCE, 0},
+{43, 3208978104u, 0u, 3212836864u, 0, ILOGBF_TOLERANCE, 0},
+{44, 3208810332u, 0u, 3212836864u, 0, ILOGBF_TOLERANCE, 0},
+{45, 3208642560u, 0u, 3212836864u, 0, ILOGBF_TOLERANCE, 0},
+{46, 3208474788u, 0u, 3212836864u, 0, ILOGBF_TOLERANCE, 0},
+{47, 3208307016u, 0u, 3212836864u, 0, ILOGBF_TOLERANCE, 0},
+{48, 3208139244u, 0u, 3212836864u, 0, ILOGBF_TOLERANCE, 0},
+{49, 3207971471u, 0u, 3212836864u, 0, ILOGBF_TOLERANCE, 0},
+{50, 3207803699u, 0u, 3212836864u, 0, ILOGBF_TOLERANCE, 0},
+{51, 3207635927u, 0u, 3212836864u, 0, ILOGBF_TOLERANCE, 0},
+{52, 3207468155u, 0u, 3212836864u, 0, ILOGBF_TOLERANCE, 0},
+{53, 3207300383u, 0u, 3212836864u, 0, ILOGBF_TOLERANCE, 0},
+{54, 3207132611u, 0u, 3212836864u, 0, ILOGBF_TOLERANCE, 0},
+{55, 3206964838u, 0u, 3212836864u, 0, ILOGBF_TOLERANCE, 0},
+{56, 3206797066u, 0u, 3212836864u, 0, ILOGBF_TOLERANCE, 0},
+{57, 3206629294u, 0u, 3212836864u, 0, ILOGBF_TOLERANCE, 0},
+{58, 3206461522u, 0u, 3212836864u, 0, ILOGBF_TOLERANCE, 0},
+{59, 3206293750u, 0u, 3212836864u, 0, ILOGBF_TOLERANCE, 0},
+{60, 3206125978u, 0u, 3212836864u, 0, ILOGBF_TOLERANCE, 0},
+{61, 3205958205u, 0u, 3212836864u, 0, ILOGBF_TOLERANCE, 0},
+{62, 3205790433u, 0u, 3212836864u, 0, ILOGBF_TOLERANCE, 0},
+{63, 3205622661u, 0u, 3212836864u, 0, ILOGBF_TOLERANCE, 0},
+{64, 3205454889u, 0u, 3212836864u, 0, ILOGBF_TOLERANCE, 0},
+{65, 3205287117u, 0u, 3212836864u, 0, ILOGBF_TOLERANCE, 0},
+{66, 3205119345u, 0u, 3212836864u, 0, ILOGBF_TOLERANCE, 0},
+{67, 3204951572u, 0u, 3212836864u, 0, ILOGBF_TOLERANCE, 0},
+{68, 3204783800u, 0u, 3212836864u, 0, ILOGBF_TOLERANCE, 0},
+{69, 3204616028u, 0u, 3212836864u, 0, ILOGBF_TOLERANCE, 0},
+{70, 3204448256u, 0u, 3212836864u, 0, ILOGBF_TOLERANCE, 0},
+{71, 3204112712u, 0u, 3221225472u, 0, ILOGBF_TOLERANCE, 0},
+{72, 3203777167u, 0u, 3221225472u, 0, ILOGBF_TOLERANCE, 0},
+{73, 3203441623u, 0u, 3221225472u, 0, ILOGBF_TOLERANCE, 0},
+{74, 3203106079u, 0u, 3221225472u, 0, ILOGBF_TOLERANCE, 0},
+{75, 3202770534u, 0u, 3221225472u, 0, ILOGBF_TOLERANCE, 0},
+{76, 3202434990u, 0u, 3221225472u, 0, ILOGBF_TOLERANCE, 0},
+{77, 3202099446u, 0u, 3221225472u, 0, ILOGBF_TOLERANCE, 0},
+{78, 3201763901u, 0u, 3221225472u, 0, ILOGBF_TOLERANCE, 0},
+{79, 3201428357u, 0u, 3221225472u, 0, ILOGBF_TOLERANCE, 0},
+{80, 3201092813u, 0u, 3221225472u, 0, ILOGBF_TOLERANCE, 0},
+{81, 3200757268u, 0u, 3221225472u, 0, ILOGBF_TOLERANCE, 0},
+{82, 3200421724u, 0u, 3221225472u, 0, ILOGBF_TOLERANCE, 0},
+{83, 3200086180u, 0u, 3221225472u, 0, ILOGBF_TOLERANCE, 0},
+{84, 3199750636u, 0u, 3221225472u, 0, ILOGBF_TOLERANCE, 0},
+{85, 3199415091u, 0u, 3221225472u, 0, ILOGBF_TOLERANCE, 0},
+{86, 3199079547u, 0u, 3221225472u, 0, ILOGBF_TOLERANCE, 0},
+{87, 3198744003u, 0u, 3221225472u, 0, ILOGBF_TOLERANCE, 0},
+{88, 3198408458u, 0u, 3221225472u, 0, ILOGBF_TOLERANCE, 0},
+{89, 3198072914u, 0u, 3221225472u, 0, ILOGBF_TOLERANCE, 0},
+{90, 3197737370u, 0u, 3221225472u, 0, ILOGBF_TOLERANCE, 0},
+{91, 3197401825u, 0u, 3221225472u, 0, ILOGBF_TOLERANCE, 0},
+{92, 3197066281u, 0u, 3221225472u, 0, ILOGBF_TOLERANCE, 0},
+{93, 3196730737u, 0u, 3221225472u, 0, ILOGBF_TOLERANCE, 0},
+{94, 3196395192u, 0u, 3221225472u, 0, ILOGBF_TOLERANCE, 0},
+{95, 3196059648u, 0u, 3221225472u, 0, ILOGBF_TOLERANCE, 0},
+{96, 3195388559u, 0u, 3225419776u, 0, ILOGBF_TOLERANCE, 0},
+{97, 3194717471u, 0u, 3225419776u, 0, ILOGBF_TOLERANCE, 0},
+{98, 3194046382u, 0u, 3225419776u, 0, ILOGBF_TOLERANCE, 0},
+{99, 3193375293u, 0u, 3225419776u, 0, ILOGBF_TOLERANCE, 0},
+{100, 3192704205u, 0u, 3225419776u, 0, ILOGBF_TOLERANCE, 0},
+{101, 3192033116u, 0u, 3225419776u, 0, ILOGBF_TOLERANCE, 0},
+{102, 3191362028u, 0u, 3225419776u, 0, ILOGBF_TOLERANCE, 0},
+{103, 3190690939u, 0u, 3225419776u, 0, ILOGBF_TOLERANCE, 0},
+{104, 3190019850u, 0u, 3225419776u, 0, ILOGBF_TOLERANCE, 0},
+{105, 3189348762u, 0u, 3225419776u, 0, ILOGBF_TOLERANCE, 0},
+{106, 3188677673u, 0u, 3225419776u, 0, ILOGBF_TOLERANCE, 0},
+{107, 3188006584u, 0u, 3225419776u, 0, ILOGBF_TOLERANCE, 0},
+{108, 3186999951u, 0u, 3229614080u, 0, ILOGBF_TOLERANCE, 0},
+{109, 3185657774u, 0u, 3229614080u, 0, ILOGBF_TOLERANCE, 0},
+{110, 3184315597u, 0u, 3229614080u, 0, ILOGBF_TOLERANCE, 0},
+{111, 3182973420u, 0u, 3229614080u, 0, ILOGBF_TOLERANCE, 0},
+{112, 3181631242u, 0u, 3229614080u, 0, ILOGBF_TOLERANCE, 0},
+{113, 3180289065u, 0u, 3229614080u, 0, ILOGBF_TOLERANCE, 0},
+{114, 3178611343u, 0u, 3231711232u, 0, ILOGBF_TOLERANCE, 0},
+{115, 3175926989u, 0u, 3231711232u, 0, ILOGBF_TOLERANCE, 0},
+{116, 3173242634u, 0u, 3231711232u, 0, ILOGBF_TOLERANCE, 0},
+{117, 3170222735u, 0u, 3233808384u, 0, ILOGBF_TOLERANCE, 0},
+{118, 3164854026u, 0u, 3233808384u, 0, ILOGBF_TOLERANCE, 0},
+{119, 3156465418u, 0u, 3235905536u, 0, ILOGBF_TOLERANCE, 0},
+{120, 1008981770u, 0u, 3235905536u, 0, ILOGBF_TOLERANCE, 0},
+{121, 1017370378u, 0u, 3233808384u, 0, ILOGBF_TOLERANCE, 0},
+{122, 1022739087u, 0u, 3233808384u, 0, ILOGBF_TOLERANCE, 0},
+{123, 1025758986u, 0u, 3231711232u, 0, ILOGBF_TOLERANCE, 0},
+{124, 1028443341u, 0u, 3231711232u, 0, ILOGBF_TOLERANCE, 0},
+{125, 1031127695u, 0u, 3231711232u, 0, ILOGBF_TOLERANCE, 0},
+{126, 1032805417u, 0u, 3229614080u, 0, ILOGBF_TOLERANCE, 0},
+{127, 1034147594u, 0u, 3229614080u, 0, ILOGBF_TOLERANCE, 0},
+{128, 1035489772u, 0u, 3229614080u, 0, ILOGBF_TOLERANCE, 0},
+{129, 1036831949u, 0u, 3229614080u, 0, ILOGBF_TOLERANCE, 0},
+{130, 1038174126u, 0u, 3229614080u, 0, ILOGBF_TOLERANCE, 0},
+{131, 1039516303u, 0u, 3229614080u, 0, ILOGBF_TOLERANCE, 0},
+{132, 1040522936u, 0u, 3225419776u, 0, ILOGBF_TOLERANCE, 0},
+{133, 1041194025u, 0u, 3225419776u, 0, ILOGBF_TOLERANCE, 0},
+{134, 1041865114u, 0u, 3225419776u, 0, ILOGBF_TOLERANCE, 0},
+{135, 1042536202u, 0u, 3225419776u, 0, ILOGBF_TOLERANCE, 0},
+{136, 1043207291u, 0u, 3225419776u, 0, ILOGBF_TOLERANCE, 0},
+{137, 1043878380u, 0u, 3225419776u, 0, ILOGBF_TOLERANCE, 0},
+{138, 1044549468u, 0u, 3225419776u, 0, ILOGBF_TOLERANCE, 0},
+{139, 1045220557u, 0u, 3225419776u, 0, ILOGBF_TOLERANCE, 0},
+{140, 1045891645u, 0u, 3225419776u, 0, ILOGBF_TOLERANCE, 0},
+{141, 1046562734u, 0u, 3225419776u, 0, ILOGBF_TOLERANCE, 0},
+{142, 1047233823u, 0u, 3225419776u, 0, ILOGBF_TOLERANCE, 0},
+{143, 1047904911u, 0u, 3225419776u, 0, ILOGBF_TOLERANCE, 0},
+{144, 1048576000u, 0u, 3221225472u, 0, ILOGBF_TOLERANCE, 0},
+{145, 1048911544u, 0u, 3221225472u, 0, ILOGBF_TOLERANCE, 0},
+{146, 1049247089u, 0u, 3221225472u, 0, ILOGBF_TOLERANCE, 0},
+{147, 1049582633u, 0u, 3221225472u, 0, ILOGBF_TOLERANCE, 0},
+{148, 1049918177u, 0u, 3221225472u, 0, ILOGBF_TOLERANCE, 0},
+{149, 1050253722u, 0u, 3221225472u, 0, ILOGBF_TOLERANCE, 0},
+{150, 1050589266u, 0u, 3221225472u, 0, ILOGBF_TOLERANCE, 0},
+{151, 1050924810u, 0u, 3221225472u, 0, ILOGBF_TOLERANCE, 0},
+{152, 1051260355u, 0u, 3221225472u, 0, ILOGBF_TOLERANCE, 0},
+{153, 1051595899u, 0u, 3221225472u, 0, ILOGBF_TOLERANCE, 0},
+{154, 1051931443u, 0u, 3221225472u, 0, ILOGBF_TOLERANCE, 0},
+{155, 1052266988u, 0u, 3221225472u, 0, ILOGBF_TOLERANCE, 0},
+{156, 1052602532u, 0u, 3221225472u, 0, ILOGBF_TOLERANCE, 0},
+{157, 1052938076u, 0u, 3221225472u, 0, ILOGBF_TOLERANCE, 0},
+{158, 1053273620u, 0u, 3221225472u, 0, ILOGBF_TOLERANCE, 0},
+{159, 1053609165u, 0u, 3221225472u, 0, ILOGBF_TOLERANCE, 0},
+{160, 1053944709u, 0u, 3221225472u, 0, ILOGBF_TOLERANCE, 0},
+{161, 1054280253u, 0u, 3221225472u, 0, ILOGBF_TOLERANCE, 0},
+{162, 1054615798u, 0u, 3221225472u, 0, ILOGBF_TOLERANCE, 0},
+{163, 1054951342u, 0u, 3221225472u, 0, ILOGBF_TOLERANCE, 0},
+{164, 1055286886u, 0u, 3221225472u, 0, ILOGBF_TOLERANCE, 0},
+{165, 1055622431u, 0u, 3221225472u, 0, ILOGBF_TOLERANCE, 0},
+{166, 1055957975u, 0u, 3221225472u, 0, ILOGBF_TOLERANCE, 0},
+{167, 1056293519u, 0u, 3221225472u, 0, ILOGBF_TOLERANCE, 0},
+{168, 1056629064u, 0u, 3221225472u, 0, ILOGBF_TOLERANCE, 0},
+{169, 1056964608u, 0u, 3212836864u, 0, ILOGBF_TOLERANCE, 0},
+{170, 1057132380u, 0u, 3212836864u, 0, ILOGBF_TOLERANCE, 0},
+{171, 1057300152u, 0u, 3212836864u, 0, ILOGBF_TOLERANCE, 0},
+{172, 1057467924u, 0u, 3212836864u, 0, ILOGBF_TOLERANCE, 0},
+{173, 1057635697u, 0u, 3212836864u, 0, ILOGBF_TOLERANCE, 0},
+{174, 1057803469u, 0u, 3212836864u, 0, ILOGBF_TOLERANCE, 0},
+{175, 1057971241u, 0u, 3212836864u, 0, ILOGBF_TOLERANCE, 0},
+{176, 1058139013u, 0u, 3212836864u, 0, ILOGBF_TOLERANCE, 0},
+{177, 1058306785u, 0u, 3212836864u, 0, ILOGBF_TOLERANCE, 0},
+{178, 1058474557u, 0u, 3212836864u, 0, ILOGBF_TOLERANCE, 0},
+{179, 1058642330u, 0u, 3212836864u, 0, ILOGBF_TOLERANCE, 0},
+{180, 1058810102u, 0u, 3212836864u, 0, ILOGBF_TOLERANCE, 0},
+{181, 1058977874u, 0u, 3212836864u, 0, ILOGBF_TOLERANCE, 0},
+{182, 1059145646u, 0u, 3212836864u, 0, ILOGBF_TOLERANCE, 0},
+{183, 1059313418u, 0u, 3212836864u, 0, ILOGBF_TOLERANCE, 0},
+{184, 1059481190u, 0u, 3212836864u, 0, ILOGBF_TOLERANCE, 0},
+{185, 1059648963u, 0u, 3212836864u, 0, ILOGBF_TOLERANCE, 0},
+{186, 1059816735u, 0u, 3212836864u, 0, ILOGBF_TOLERANCE, 0},
+{187, 1059984507u, 0u, 3212836864u, 0, ILOGBF_TOLERANCE, 0},
+{188, 1060152279u, 0u, 3212836864u, 0, ILOGBF_TOLERANCE, 0},
+{189, 1060320051u, 0u, 3212836864u, 0, ILOGBF_TOLERANCE, 0},
+{190, 1060487823u, 0u, 3212836864u, 0, ILOGBF_TOLERANCE, 0},
+{191, 1060655596u, 0u, 3212836864u, 0, ILOGBF_TOLERANCE, 0},
+{192, 1060823368u, 0u, 3212836864u, 0, ILOGBF_TOLERANCE, 0},
+{193, 1060991140u, 0u, 3212836864u, 0, ILOGBF_TOLERANCE, 0},
+{194, 1061158912u, 0u, 3212836864u, 0, ILOGBF_TOLERANCE, 0},
+{195, 1061326684u, 0u, 3212836864u, 0, ILOGBF_TOLERANCE, 0},
+{196, 1061494456u, 0u, 3212836864u, 0, ILOGBF_TOLERANCE, 0},
+{197, 1061662228u, 0u, 3212836864u, 0, ILOGBF_TOLERANCE, 0},
+{198, 1061830001u, 0u, 3212836864u, 0, ILOGBF_TOLERANCE, 0},
+{199, 1061997773u, 0u, 3212836864u, 0, ILOGBF_TOLERANCE, 0},
+{200, 1062165545u, 0u, 3212836864u, 0, ILOGBF_TOLERANCE, 0},
+{201, 1062333317u, 0u, 3212836864u, 0, ILOGBF_TOLERANCE, 0},
+{202, 1062501089u, 0u, 3212836864u, 0, ILOGBF_TOLERANCE, 0},
+{203, 1062668861u, 0u, 3212836864u, 0, ILOGBF_TOLERANCE, 0},
+{204, 1062836634u, 0u, 3212836864u, 0, ILOGBF_TOLERANCE, 0},
+{205, 1063004406u, 0u, 3212836864u, 0, ILOGBF_TOLERANCE, 0},
+{206, 1063172178u, 0u, 3212836864u, 0, ILOGBF_TOLERANCE, 0},
+{207, 1063339950u, 0u, 3212836864u, 0, ILOGBF_TOLERANCE, 0},
+{208, 1063507722u, 0u, 3212836864u, 0, ILOGBF_TOLERANCE, 0},
+{209, 1063675494u, 0u, 3212836864u, 0, ILOGBF_TOLERANCE, 0},
+{210, 1063843267u, 0u, 3212836864u, 0, ILOGBF_TOLERANCE, 0},
+{211, 1064011039u, 0u, 3212836864u, 0, ILOGBF_TOLERANCE, 0},
+{212, 1064178811u, 0u, 3212836864u, 0, ILOGBF_TOLERANCE, 0},
+{213, 1064346583u, 0u, 3212836864u, 0, ILOGBF_TOLERANCE, 0},
+{214, 1064514355u, 0u, 3212836864u, 0, ILOGBF_TOLERANCE, 0},
+{215, 1064682127u, 0u, 3212836864u, 0, ILOGBF_TOLERANCE, 0},
+{216, 1064849900u, 0u, 3212836864u, 0, ILOGBF_TOLERANCE, 0},
+{217, 1065017672u, 0u, 3212836864u, 0, ILOGBF_TOLERANCE, 0},
+{218, 1065185444u, 0u, 3212836864u, 0, ILOGBF_TOLERANCE, 0},
+{219, 1065353216u, 0u, 0u, 0, ILOGBF_TOLERANCE, 0},
+{220, 1065437102u, 0u, 0u, 0, ILOGBF_TOLERANCE, 0},
+{221, 1065520988u, 0u, 0u, 0, ILOGBF_TOLERANCE, 0},
+{222, 1065604874u, 0u, 0u, 0, ILOGBF_TOLERANCE, 0},
+{223, 1065688760u, 0u, 0u, 0, ILOGBF_TOLERANCE, 0},
+{224, 1065772646u, 0u, 0u, 0, ILOGBF_TOLERANCE, 0},
+{225, 1065856532u, 0u, 0u, 0, ILOGBF_TOLERANCE, 0},
+{226, 1065940419u, 0u, 0u, 0, ILOGBF_TOLERANCE, 0},
+{227, 1066024305u, 0u, 0u, 0, ILOGBF_TOLERANCE, 0},
+{228, 1066108191u, 0u, 0u, 0, ILOGBF_TOLERANCE, 0},
+{229, 1066192077u, 0u, 0u, 0, ILOGBF_TOLERANCE, 0},
+{230, 1066275963u, 0u, 0u, 0, ILOGBF_TOLERANCE, 0},
+{231, 1066359849u, 0u, 0u, 0, ILOGBF_TOLERANCE, 0},
+{232, 1066443735u, 0u, 0u, 0, ILOGBF_TOLERANCE, 0},
+{233, 1066527621u, 0u, 0u, 0, ILOGBF_TOLERANCE, 0},
+{234, 1066611507u, 0u, 0u, 0, ILOGBF_TOLERANCE, 0},
+{235, 1066695393u, 0u, 0u, 0, ILOGBF_TOLERANCE, 0},
+{236, 1066779279u, 0u, 0u, 0, ILOGBF_TOLERANCE, 0},
+{237, 1066863165u, 0u, 0u, 0, ILOGBF_TOLERANCE, 0},
+{238, 1066947052u, 0u, 0u, 0, ILOGBF_TOLERANCE, 0},
+{239, 3234402267u, 0u, 1073741824u, 0, ILOGBF_TOLERANCE, 0},
+{240, 3231108068u, 0u, 1073741824u, 0, ILOGBF_TOLERANCE, 0},
+{241, 3226013659u, 0u, 1065353216u, 0, ILOGBF_TOLERANCE, 0},
+{242, 3217625051u, 0u, 0u, 0, ILOGBF_TOLERANCE, 0},
+{243, 0u, 0u, 3472883712u, 0, ILOGBF_TOLERANCE, 0},
+{244, 1070141403u, 0u, 0u, 0, ILOGBF_TOLERANCE, 0},
+{245, 1078530011u, 0u, 1065353216u, 0, ILOGBF_TOLERANCE, 0},
+{246, 1083624420u, 0u, 1073741824u, 0, ILOGBF_TOLERANCE, 0},
+{247, 3253731328u, 0u, 1082130432u, 0, ILOGBF_TOLERANCE, 0},
+{248, 3252840038u, 0u, 1082130432u, 0, ILOGBF_TOLERANCE, 0},
+{249, 3251948749u, 0u, 1082130432u, 0, ILOGBF_TOLERANCE, 0},
+{250, 3251057459u, 0u, 1082130432u, 0, ILOGBF_TOLERANCE, 0},
+{251, 3250166170u, 0u, 1082130432u, 0, ILOGBF_TOLERANCE, 0},
+{252, 3249274880u, 0u, 1082130432u, 0, ILOGBF_TOLERANCE, 0},
+{253, 3248383590u, 0u, 1082130432u, 0, ILOGBF_TOLERANCE, 0},
+{254, 3247492301u, 0u, 1082130432u, 0, ILOGBF_TOLERANCE, 0},
+{255, 3246601011u, 0u, 1082130432u, 0, ILOGBF_TOLERANCE, 0},
+{256, 3245028147u, 0u, 1077936128u, 0, ILOGBF_TOLERANCE, 0},
+{257, 3243245568u, 0u, 1077936128u, 0, ILOGBF_TOLERANCE, 0},
+{258, 3241462989u, 0u, 1077936128u, 0, ILOGBF_TOLERANCE, 0},
+{259, 3239680410u, 0u, 1077936128u, 0, ILOGBF_TOLERANCE, 0},
+{260, 3237792973u, 0u, 1073741824u, 0, ILOGBF_TOLERANCE, 0},
+{261, 3234227814u, 0u, 1073741824u, 0, ILOGBF_TOLERANCE, 0},
+{262, 3230662656u, 0u, 1073741824u, 0, ILOGBF_TOLERANCE, 0},
+{263, 3224580915u, 0u, 1065353216u, 0, ILOGBF_TOLERANCE, 0},
+{264, 3213675725u, 0u, 0u, 0, ILOGBF_TOLERANCE, 0},
+{265, 1058642330u, 0u, 3212836864u, 0, ILOGBF_TOLERANCE, 0},
+{266, 1075000115u, 0u, 1065353216u, 0, ILOGBF_TOLERANCE, 0},
+{267, 1082130432u, 0u, 1073741824u, 0, ILOGBF_TOLERANCE, 0},
+{268, 1085695590u, 0u, 1073741824u, 0, ILOGBF_TOLERANCE, 0},
+{269, 1089260749u, 0u, 1073741824u, 0, ILOGBF_TOLERANCE, 0},
+{270, 1091672474u, 0u, 1077936128u, 0, ILOGBF_TOLERANCE, 0},
+{271, 1093455053u, 0u, 1077936128u, 0, ILOGBF_TOLERANCE, 0},
+{272, 1095237632u, 0u, 1077936128u, 0, ILOGBF_TOLERANCE, 0},
+{273, 1097020211u, 0u, 1077936128u, 0, ILOGBF_TOLERANCE, 0},
+{274, 1098802790u, 0u, 1077936128u, 0, ILOGBF_TOLERANCE, 0},
+{275, 1099746509u, 0u, 1082130432u, 0, ILOGBF_TOLERANCE, 0},
+{276, 1100637798u, 0u, 1082130432u, 0, ILOGBF_TOLERANCE, 0},
+{277, 1101529088u, 0u, 1082130432u, 0, ILOGBF_TOLERANCE, 0},
+{278, 1102420378u, 0u, 1082130432u, 0, ILOGBF_TOLERANCE, 0},
+{279, 1103311667u, 0u, 1082130432u, 0, ILOGBF_TOLERANCE, 0},
+{280, 1104202957u, 0u, 1082130432u, 0, ILOGBF_TOLERANCE, 0},
+{281, 1105094246u, 0u, 1082130432u, 0, ILOGBF_TOLERANCE, 0},
+{282, 1105985536u, 0u, 1082130432u, 0, ILOGBF_TOLERANCE, 0},
+{283, 1107800421u, 1203999711u, 1084227584u, 0, ILOGBF_TOLERANCE, 0},
+{284, 3196650934u, 896005582u, 3221225472u, 0, ILOGBF_TOLERANCE, 0},
+{285, 3368700125u, 3308232444u, 1099956224u, 0, ILOGBF_TOLERANCE, 0},
+{286, 1224242132u, 3061363425u, 1099956224u, 0, ILOGBF_TOLERANCE, 0},
+{287, 3221027117u, 1284201705u, 0u, 0, ILOGBF_TOLERANCE, 0},
+{288, 1198712763u, 919636942u, 1097859072u, 0, ILOGBF_TOLERANCE, 0},
+{289, 867432512u, 3067736756u, 3250585600u, 0, ILOGBF_TOLERANCE, 0},
+{290, 3159309973u, 852521077u, 3235905536u, 0, ILOGBF_TOLERANCE, 0},
+{291, 954173073u, 850531830u, 3244294144u, 0, ILOGBF_TOLERANCE, 0},
+{292, 3090780435u, 1035260608u, 3245342720u, 0, ILOGBF_TOLERANCE, 0},
+{293, 966554515u, 3234538174u, 3242196992u, 0, ILOGBF_TOLERANCE, 0},
+{294, 1312607135u, 1194999402u, 1105723392u, 0, ILOGBF_TOLERANCE, 0},
+{295, 1166191415u, 1018661564u, 1094713344u, 0, ILOGBF_TOLERANCE, 0},
+{296, 3111900019u, 1130472166u, 3243245568u, 0, ILOGBF_TOLERANCE, 0},
+{297, 1234419246u, 2984575812u, 1101004800u, 0, ILOGBF_TOLERANCE, 0},
+{298, 1302107128u, 3370647675u, 1105199104u, 0, ILOGBF_TOLERANCE, 0},
+{299, 1052801068u, 3039122570u, 3221225472u, 0, ILOGBF_TOLERANCE, 0},
+{300, 1060849628u, 3081357692u, 3212836864u, 0, ILOGBF_TOLERANCE, 0},
+{301, 3010214568u, 3446630737u, 3251109888u, 0, ILOGBF_TOLERANCE, 0},
+{302, 3484320003u, 3033957825u, 1107296256u, 0, ILOGBF_TOLERANCE, 0},
+{303, 3181522772u, 3305392896u, 3229614080u, 0, ILOGBF_TOLERANCE, 0},
+{304, 882596369u, 1256676590u, 3249537024u, 0, ILOGBF_TOLERANCE, 0},
+{305, 1167223673u, 846102364u, 1094713344u, 0, ILOGBF_TOLERANCE, 0},
+{306, 968192794u, 878547432u, 3242196992u, 0, ILOGBF_TOLERANCE, 0},
+{307, 3122346862u, 1111584337u, 3241148416u, 0, ILOGBF_TOLERANCE, 0},
+{308, 1052361612u, 1280025214u, 3221225472u, 0, ILOGBF_TOLERANCE, 0},
+{309, 906701409u, 2968301825u, 3247964160u, 0, ILOGBF_TOLERANCE, 0},
+{310, 3471653172u, 1154138102u, 1106247680u, 0, ILOGBF_TOLERANCE, 0},
+{311, 843024648u, 3166833184u, 3252158464u, 0, ILOGBF_TOLERANCE, 0},
+{312, 3231467496u, 934336592u, 1073741824u, 0, ILOGBF_TOLERANCE, 0},
+{313, 1341514497u, 3466051188u, 1107296256u, 0, ILOGBF_TOLERANCE, 0},
+{314, 1272351391u, 3373485062u, 1103101952u, 0, ILOGBF_TOLERANCE, 0},
+{315, 3319724992u, 3354615790u, 1094713344u, 0, ILOGBF_TOLERANCE, 0},
+{316, 3013402113u, 3266377514u, 3250585600u, 0, ILOGBF_TOLERANCE, 0},
+{317, 917622040u, 1334966485u, 3247439872u, 0, ILOGBF_TOLERANCE, 0},
+{318, 940236348u, 3304072663u, 3245342720u, 0, ILOGBF_TOLERANCE, 0},
+{319, 2963234879u, 977028681u, 3253731328u, 0, ILOGBF_TOLERANCE, 0},
+{320, 3251541546u, 3174764041u, 1082130432u, 0, ILOGBF_TOLERANCE, 0},
+{321, 3099843889u, 3355962282u, 3244294144u, 0, ILOGBF_TOLERANCE, 0},
+{322, 3110358400u, 851145088u, 3243245568u, 0, ILOGBF_TOLERANCE, 0},
+{323, 3371863479u, 1014861921u, 1099956224u, 0, ILOGBF_TOLERANCE, 0},
+{324, 3204069187u, 966573255u, 3221225472u, 0, ILOGBF_TOLERANCE, 0},
+{325, 1306460502u, 903489435u, 1105199104u, 0, ILOGBF_TOLERANCE, 0},
+{326, 1197542187u, 3024598921u, 1097859072u, 0, ILOGBF_TOLERANCE, 0},
+{327, 922888249u, 1139392309u, 3246915584u, 0, ILOGBF_TOLERANCE, 0},
+{328, 1184239996u, 3224098462u, 1096810496u, 0, ILOGBF_TOLERANCE, 0},
+{329, 1252490238u, 1173619825u, 1102053376u, 0, ILOGBF_TOLERANCE, 0},
+{330, 1001673627u, 3462631271u, 3238002688u, 0, ILOGBF_TOLERANCE, 0},
+{331, 976098044u, 1151967422u, 3241148416u, 0, ILOGBF_TOLERANCE, 0},
+{332, 941796645u, 886451963u, 3245342720u, 0, ILOGBF_TOLERANCE, 0},
+{333, 3006797923u, 1103058486u, 3251109888u, 0, ILOGBF_TOLERANCE, 0},
+{334, 855756273u, 3217259624u, 3251109888u, 0, ILOGBF_TOLERANCE, 0},
+{335, 3287199470u, 854245542u, 1090519040u, 0, ILOGBF_TOLERANCE, 0},
+{336, 893184329u, 1243067084u, 3249012736u, 0, ILOGBF_TOLERANCE, 0},
+{337, 1143233714u, 1007268238u, 1091567616u, 0, ILOGBF_TOLERANCE, 0},
+{338, 1139941253u, 1147688821u, 1090519040u, 0, ILOGBF_TOLERANCE, 0},
+{339, 3143717025u, 3234638157u, 3239051264u, 0, ILOGBF_TOLERANCE, 0},
+{340, 3048866608u, 3449209899u, 3248488448u, 0, ILOGBF_TOLERANCE, 0},
+{341, 3240298487u, 1020260821u, 1077936128u, 0, ILOGBF_TOLERANCE, 0},
+{342, 1288902137u, 3123875978u, 1104150528u, 0, ILOGBF_TOLERANCE, 0},
+{343, 1333134799u, 1338107877u, 1106771968u, 0, ILOGBF_TOLERANCE, 0},
+{344, 1187847971u, 1317663644u, 1096810496u, 0, ILOGBF_TOLERANCE, 0},
+{345, 1038851706u, 1327544110u, 3229614080u, 0, ILOGBF_TOLERANCE, 0},
+{346, 3329354473u, 3165437289u, 1095761920u, 0, ILOGBF_TOLERANCE, 0},
+{347, 3077218579u, 1308397879u, 3246915584u, 0, ILOGBF_TOLERANCE, 0},
+{348, 1309289088u, 1019883016u, 1105723392u, 0, ILOGBF_TOLERANCE, 0},
+{349, 2991550291u, 1294782875u, 3252158464u, 0, ILOGBF_TOLERANCE, 0},
+{350, 3444653659u, 1279248024u, 1104674816u, 0, ILOGBF_TOLERANCE, 0},
+{351, 3405585402u, 2962345057u, 1102053376u, 0, ILOGBF_TOLERANCE, 0},
+{352, 3106647724u, 853848387u, 3243245568u, 0, ILOGBF_TOLERANCE, 0},
+{353, 1106778573u, 3304487767u, 1082130432u, 0, ILOGBF_TOLERANCE, 0},
+{354, 1140567947u, 3069174149u, 1090519040u, 0, ILOGBF_TOLERANCE, 0},
+{355, 1238569473u, 873035665u, 1101004800u, 0, ILOGBF_TOLERANCE, 0},
+{356, 840375965u, 3223983207u, 3252158464u, 0, ILOGBF_TOLERANCE, 0},
+{357, 3154871957u, 1276671061u, 3235905536u, 0, ILOGBF_TOLERANCE, 0},
+{358, 1261071232u, 1182202773u, 1102577664u, 0, ILOGBF_TOLERANCE, 0},
+{359, 1175011025u, 3029705783u, 1095761920u, 0, ILOGBF_TOLERANCE, 0},
+{360, 1082692850u, 1211581107u, 1073741824u, 0, ILOGBF_TOLERANCE, 0},
+{361, 974547519u, 3475164509u, 3241148416u, 0, ILOGBF_TOLERANCE, 0},
+{362, 3058097085u, 3104309359u, 3247964160u, 0, ILOGBF_TOLERANCE, 0},
+{363, 3107252546u, 1071134451u, 3243245568u, 0, ILOGBF_TOLERANCE, 0},
+{364, 3096032662u, 2976848821u, 3244294144u, 0, ILOGBF_TOLERANCE, 0},
+{365, 3197942144u, 3094120030u, 3221225472u, 0, ILOGBF_TOLERANCE, 0},
+{366, 3403348556u, 3184653669u, 1102053376u, 0, ILOGBF_TOLERANCE, 0},
+{367, 2998032500u, 3373011130u, 3251634176u, 0, ILOGBF_TOLERANCE, 0},
+{368, 3182301130u, 3460764044u, 3229614080u, 0, ILOGBF_TOLERANCE, 0},
+{369, 1136411063u, 1118097422u, 1090519040u, 0, ILOGBF_TOLERANCE, 0},
+{370, 3239231622u, 3302723069u, 1077936128u, 0, ILOGBF_TOLERANCE, 0},
+{371, 3340615780u, 870350055u, 1097859072u, 0, ILOGBF_TOLERANCE, 0},
+{372, 998567360u, 2995278691u, 3238002688u, 0, ILOGBF_TOLERANCE, 0},
+{373, 3417964312u, 1321337529u, 1103101952u, 0, ILOGBF_TOLERANCE, 0},
+{374, 3109481038u, 1143864063u, 3243245568u, 0, ILOGBF_TOLERANCE, 0},
+{375, 1148867223u, 1256486202u, 1091567616u, 0, ILOGBF_TOLERANCE, 0},
+{376, 2960983878u, 1314196594u, 3254255616u, 0, ILOGBF_TOLERANCE, 0},
+{377, 989687421u, 3372681320u, 3240099840u, 0, ILOGBF_TOLERANCE, 0},
+{378, 1152956913u, 3166480640u, 1092616192u, 0, ILOGBF_TOLERANCE, 0},
+{379, 892922651u, 3373029087u, 3249012736u, 0, ILOGBF_TOLERANCE, 0},
+{380, 1109627625u, 1314158257u, 1084227584u, 0, ILOGBF_TOLERANCE, 0},
+{381, 1307091856u, 1103202538u, 1105199104u, 0, ILOGBF_TOLERANCE, 0},
+{382, 1077234132u, 3272167130u, 1065353216u, 0, ILOGBF_TOLERANCE, 0},
+{383, 1142167709u, 1096445242u, 1091567616u, 0, ILOGBF_TOLERANCE, 0},
+{384, 3426232834u, 1036705270u, 1103626240u, 0, ILOGBF_TOLERANCE, 0},
+{385, 3000726366u, 3172023300u, 3251634176u, 0, ILOGBF_TOLERANCE, 0},
+{386, 3368566779u, 967249167u, 1099956224u, 0, ILOGBF_TOLERANCE, 0},
+{387, 3030724760u, 3349013503u, 3249537024u, 0, ILOGBF_TOLERANCE, 0},
+{388, 1138741813u, 3073453199u, 1090519040u, 0, ILOGBF_TOLERANCE, 0},
+{389, 982950501u, 982549888u, 3240099840u, 0, ILOGBF_TOLERANCE, 0},
+{390, 1142981585u, 1015602236u, 1091567616u, 0, ILOGBF_TOLERANCE, 0},
+{391, 3016453868u, 3365560001u, 3250585600u, 0, ILOGBF_TOLERANCE, 0},
+{392, 3347165962u, 3135486696u, 1098907648u, 0, ILOGBF_TOLERANCE, 0},
+{393, 1009535440u, 3381353228u, 3235905536u, 0, ILOGBF_TOLERANCE, 0},
+{394, 3103736980u, 3402950505u, 3244294144u, 0, ILOGBF_TOLERANCE, 0},
+{395, 3126820946u, 1077903063u, 3241148416u, 0, ILOGBF_TOLERANCE, 0},
+{396, 3473956030u, 976891930u, 1106771968u, 0, ILOGBF_TOLERANCE, 0},
+{397, 3349098349u, 1055327704u, 1098907648u, 0, ILOGBF_TOLERANCE, 0},
+{398, 3152729489u, 1060398533u, 3238002688u, 0, ILOGBF_TOLERANCE, 0},
+{399, 945568720u, 3313485084u, 3245342720u, 0, ILOGBF_TOLERANCE, 0},
+{400, 3345489836u, 1108392401u, 1097859072u, 0, ILOGBF_TOLERANCE, 0},
+{401, 940893161u, 1137000140u, 3245342720u, 0, ILOGBF_TOLERANCE, 0},
+{402, 976791751u, 3230678102u, 3241148416u, 0, ILOGBF_TOLERANCE, 0},
+{403, 3013749677u, 1324802687u, 3250585600u, 0, ILOGBF_TOLERANCE, 0},
+{404, 1004442355u, 3036510596u, 3238002688u, 0, ILOGBF_TOLERANCE, 0},
+{405, 1108485380u, 3173536878u, 1084227584u, 0, ILOGBF_TOLERANCE, 0},
+{406, 1061834641u, 972388096u, 3212836864u, 0, ILOGBF_TOLERANCE, 0},
+{407, 3381268392u, 1146976802u, 1101004800u, 0, ILOGBF_TOLERANCE, 0},
+{408, 1087189715u, 2952822478u, 1073741824u, 0, ILOGBF_TOLERANCE, 0},
+{409, 3212952285u, 3329407365u, 0u, 0, ILOGBF_TOLERANCE, 0},
+{410, 1000611335u, 857599439u, 3238002688u, 0, ILOGBF_TOLERANCE, 0},
+{411, 847191250u, 1227905777u, 3252158464u, 0, ILOGBF_TOLERANCE, 0},
+{412, 3466188568u, 1041678304u, 1106247680u, 0, ILOGBF_TOLERANCE, 0},
+{413, 2968337765u, 3091399866u, 3253731328u, 0, ILOGBF_TOLERANCE, 0},
+{414, 3072456205u, 3160254633u, 3246915584u, 0, ILOGBF_TOLERANCE, 0},
+{415, 3319315516u, 3422089012u, 1094713344u, 0, ILOGBF_TOLERANCE, 0},
+{416, 935938416u, 1146676692u, 3246391296u, 0, ILOGBF_TOLERANCE, 0},
+{417, 3212614372u, 1152633030u, 3212836864u, 0, ILOGBF_TOLERANCE, 0},
+{418, 1315030230u, 3336225884u, 1105723392u, 0, ILOGBF_TOLERANCE, 0},
+{419, 822041816u, 898402905u, 3253731328u, 0, ILOGBF_TOLERANCE, 0},
+{420, 1134593658u, 3456812581u, 1090519040u, 0, ILOGBF_TOLERANCE, 0},
+{421, 977281449u, 879922831u, 3241148416u, 0, ILOGBF_TOLERANCE, 0},
+{422, 1086198791u, 920125958u, 1073741824u, 0, ILOGBF_TOLERANCE, 0},
+{423, 1255152035u, 851754050u, 1102053376u, 0, ILOGBF_TOLERANCE, 0},
+{424, 1135271264u, 3284878412u, 1090519040u, 0, ILOGBF_TOLERANCE, 0},
+{425, 1094190727u, 1056854532u, 1077936128u, 0, ILOGBF_TOLERANCE, 0},
+{426, 1294665325u, 991185677u, 1104674816u, 0, ILOGBF_TOLERANCE, 0},
+{427, 1036608591u, 805416536u, 3229614080u, 0, ILOGBF_TOLERANCE, 0},
+{428, 2960459834u, 1296239160u, 3254255616u, 0, ILOGBF_TOLERANCE, 0},
+{429, 3229998064u, 825237063u, 1073741824u, 0, ILOGBF_TOLERANCE, 0},
+{430, 3439134022u, 1043829691u, 1104150528u, 0, ILOGBF_TOLERANCE, 0},
+{431, 3073083133u, 1317170485u, 3246915584u, 0, ILOGBF_TOLERANCE, 0},
+{432, 1325668223u, 970681762u, 1106771968u, 0, ILOGBF_TOLERANCE, 0},
+{433, 1092037607u, 1027330835u, 1077936128u, 0, ILOGBF_TOLERANCE, 0},
+{434, 826457956u, 3343511749u, 3253207040u, 0, ILOGBF_TOLERANCE, 0},
+{435, 3316278408u, 3455589207u, 1094713344u, 0, ILOGBF_TOLERANCE, 0},
+{436, 3295436768u, 3129873731u, 1091567616u, 0, ILOGBF_TOLERANCE, 0},
+{437, 1151984049u, 3074547120u, 1092616192u, 0, ILOGBF_TOLERANCE, 0},
+{438, 1129287043u, 3076527544u, 1088421888u, 0, ILOGBF_TOLERANCE, 0},
+{439, 1243664530u, 972879810u, 1101529088u, 0, ILOGBF_TOLERANCE, 0},
+{440, 950829092u, 929114193u, 3244294144u, 0, ILOGBF_TOLERANCE, 0},
+{441, 1115471979u, 3047246262u, 1084227584u, 0, ILOGBF_TOLERANCE, 0},
+{442, 3351092088u, 3024661404u, 1098907648u, 0, ILOGBF_TOLERANCE, 0},
+{443, 3424479544u, 3312047722u, 1103626240u, 0, ILOGBF_TOLERANCE, 0},
+{444, 3241193975u, 884465785u, 1077936128u, 0, ILOGBF_TOLERANCE, 0},
+{445, 811700241u, 3478509398u, 3254255616u, 0, ILOGBF_TOLERANCE, 0},
+{446, 1030934236u, 1045139240u, 3231711232u, 0, ILOGBF_TOLERANCE, 0},
+{447, 3131791114u, 3408392958u, 3240099840u, 0, ILOGBF_TOLERANCE, 0},
+{448, 1025254314u, 3057812821u, 3231711232u, 0, ILOGBF_TOLERANCE, 0},
+{449, 1110545760u, 3240144177u, 1084227584u, 0, ILOGBF_TOLERANCE, 0},
+{450, 826998191u, 1091496527u, 3253207040u, 0, ILOGBF_TOLERANCE, 0},
+{451, 3180213739u, 1108793820u, 3229614080u, 0, ILOGBF_TOLERANCE, 0},
+{452, 3361976590u, 3138179993u, 1099431936u, 0, ILOGBF_TOLERANCE, 0},
+{453, 881280146u, 3421884736u, 3249537024u, 0, ILOGBF_TOLERANCE, 0},
+{454, 1304154705u, 2961937089u, 1105199104u, 0, ILOGBF_TOLERANCE, 0},
+{455, 3264443610u, 3222916705u, 1086324736u, 0, ILOGBF_TOLERANCE, 0},
+{456, 3374550627u, 3055856293u, 1100480512u, 0, ILOGBF_TOLERANCE, 0},
+{457, 2979664918u, 3365394784u, 3252682752u, 0, ILOGBF_TOLERANCE, 0},
+{458, 899599265u, 3240118211u, 3248488448u, 0, ILOGBF_TOLERANCE, 0},
+{459, 842476444u, 3452685905u, 3252158464u, 0, ILOGBF_TOLERANCE, 0},
+{460, 1268194719u, 1332489410u, 1103101952u, 0, ILOGBF_TOLERANCE, 0},
+{461, 1133420220u, 1245770860u, 1090519040u, 0, ILOGBF_TOLERANCE, 0},
+{462, 1161858787u, 815362075u, 1093664768u, 0, ILOGBF_TOLERANCE, 0},
+{463, 3184462258u, 1263529646u, 3229614080u, 0, ILOGBF_TOLERANCE, 0},
+{464, 3295996963u, 3453334307u, 1091567616u, 0, ILOGBF_TOLERANCE, 0},
+{465, 1270887389u, 1156123987u, 1103101952u, 0, ILOGBF_TOLERANCE, 0},
+{466, 3325193181u, 993979179u, 1095761920u, 0, ILOGBF_TOLERANCE, 0},
+{467, 925657343u, 1315159742u, 3246915584u, 0, ILOGBF_TOLERANCE, 0},
+{468, 3115275450u, 3008350271u, 3242196992u, 0, ILOGBF_TOLERANCE, 0},
+{469, 3116607482u, 3224327456u, 3242196992u, 0, ILOGBF_TOLERANCE, 0},
+{470, 3187892415u, 3118097315u, 3225419776u, 0, ILOGBF_TOLERANCE, 0},
+{471, 1189120494u, 978961471u, 1096810496u, 0, ILOGBF_TOLERANCE, 0},
+{472, 889030794u, 3129523970u, 3249537024u, 0, ILOGBF_TOLERANCE, 0},
+{473, 1323529208u, 3100744786u, 1106247680u, 0, ILOGBF_TOLERANCE, 0},
+{474, 2975945347u, 940445933u, 3253207040u, 0, ILOGBF_TOLERANCE, 0},
+{475, 3465768388u, 3190881451u, 1106247680u, 0, ILOGBF_TOLERANCE, 0},
+{476, 3426099899u, 1118756120u, 1103626240u, 0, ILOGBF_TOLERANCE, 0},
+{477, 3224857113u, 3398166843u, 1065353216u, 0, ILOGBF_TOLERANCE, 0},
+{478, 1065798296u, 816191940u, 0u, 0, ILOGBF_TOLERANCE, 0},
+{479, 3328989444u, 850266225u, 1095761920u, 0, ILOGBF_TOLERANCE, 0},
+{480, 3357819026u, 3148475462u, 1099431936u, 0, ILOGBF_TOLERANCE, 0},
+{481, 1273397670u, 901308750u, 1103101952u, 0, ILOGBF_TOLERANCE, 0},
+{482, 3424831780u, 1304806106u, 1103626240u, 0, ILOGBF_TOLERANCE, 0},
+{483, 1257596246u, 3420832544u, 1102053376u, 0, ILOGBF_TOLERANCE, 0},
+{484, 1051773536u, 896271348u, 3221225472u, 0, ILOGBF_TOLERANCE, 0},
+{485, 3294752507u, 3113225954u, 1091567616u, 0, ILOGBF_TOLERANCE, 0},
+{486, 3424848725u, 2973850350u, 1103626240u, 0, ILOGBF_TOLERANCE, 0},
+{487, 1090870906u, 3294742905u, 1077936128u, 0, ILOGBF_TOLERANCE, 0},
+{488, 1227582289u, 1208979668u, 1100480512u, 0, ILOGBF_TOLERANCE, 0},
+{489, 2996780709u, 852318215u, 3251634176u, 0, ILOGBF_TOLERANCE, 0},
+{490, 1272325814u, 3004311296u, 1103101952u, 0, ILOGBF_TOLERANCE, 0},
+{491, 3359508271u, 859974315u, 1099431936u, 0, ILOGBF_TOLERANCE, 0},
+{492, 2992737514u, 2999023943u, 3252158464u, 0, ILOGBF_TOLERANCE, 0},
+{493, 1137854355u, 3335041917u, 1090519040u, 0, ILOGBF_TOLERANCE, 0},
+{494, 3440773058u, 3204192793u, 1104674816u, 0, ILOGBF_TOLERANCE, 0},
+{495, 3101598400u, 3057760708u, 3244294144u, 0, ILOGBF_TOLERANCE, 0},
+{496, 3451216836u, 3347783723u, 1105199104u, 0, ILOGBF_TOLERANCE, 0},
+{497, 3437062994u, 3106834845u, 1104150528u, 0, ILOGBF_TOLERANCE, 0},
+{498, 1131196082u, 1164573183u, 1088421888u, 0, ILOGBF_TOLERANCE, 0},
+{499, 3177294154u, 1282436638u, 3231711232u, 0, ILOGBF_TOLERANCE, 0},
+{500, 3258097678u, 1305882290u, 1084227584u, 0, ILOGBF_TOLERANCE, 0},
+{501, 3460915348u, 1219372260u, 1105723392u, 0, ILOGBF_TOLERANCE, 0},
+{502, 3009547195u, 1256074626u, 3251109888u, 0, ILOGBF_TOLERANCE, 0},
+{503, 3303035472u, 3153013020u, 1092616192u, 0, ILOGBF_TOLERANCE, 0},
+{504, 1053698677u, 3284313107u, 3221225472u, 0, ILOGBF_TOLERANCE, 0},
+{505, 3396166221u, 1201894512u, 1101529088u, 0, ILOGBF_TOLERANCE, 0},
+{506, 3037541131u, 1085398440u, 3249012736u, 0, ILOGBF_TOLERANCE, 0},
+{507, 3458934263u, 1005577835u, 1105723392u, 0, ILOGBF_TOLERANCE, 0},
+{508, 1065761827u, 3333928591u, 0u, 0, ILOGBF_TOLERANCE, 0},
+{509, 3025843188u, 820250112u, 3250061312u, 0, ILOGBF_TOLERANCE, 0},
+{510, 3017430347u, 3009209071u, 3250585600u, 0, ILOGBF_TOLERANCE, 0},
+{511, 926665223u, 3150815797u, 3246915584u, 0, ILOGBF_TOLERANCE, 0},
+{512, 2970966181u, 3383521344u, 3253207040u, 0, ILOGBF_TOLERANCE, 0},
+{513, 1199816046u, 3143776186u, 1098907648u, 0, ILOGBF_TOLERANCE, 0},
+{514, 3333779015u, 952421041u, 1096810496u, 0, ILOGBF_TOLERANCE, 0},
+{515, 856234019u, 3091454180u, 3251109888u, 0, ILOGBF_TOLERANCE, 0},
+{516, 948398145u, 3238273189u, 3244294144u, 0, ILOGBF_TOLERANCE, 0},
+{517, 3054021468u, 1270257895u, 3247964160u, 0, ILOGBF_TOLERANCE, 0},
+{518, 1080781593u, 1213908300u, 1065353216u, 0, ILOGBF_TOLERANCE, 0},
+{519, 3164749613u, 3010837763u, 3233808384u, 0, ILOGBF_TOLERANCE, 0},
+{520, 2971341371u, 1014754300u, 3253207040u, 0, ILOGBF_TOLERANCE, 0},
+{521, 3235326590u, 1271705594u, 1073741824u, 0, ILOGBF_TOLERANCE, 0},
+{522, 3118883815u, 1051802647u, 3242196992u, 0, ILOGBF_TOLERANCE, 0},
+{523, 965378004u, 1292594138u, 3242196992u, 0, ILOGBF_TOLERANCE, 0},
+{524, 3226990408u, 1110755136u, 1065353216u, 0, ILOGBF_TOLERANCE, 0},
+{525, 2953069847u, 3293953199u, 3254255616u, 0, ILOGBF_TOLERANCE, 0},
+{526, 3117098218u, 1122474770u, 3242196992u, 0, ILOGBF_TOLERANCE, 0},
+{527, 1283624229u, 906796922u, 1104150528u, 0, ILOGBF_TOLERANCE, 0},
+{528, 860729004u, 1163935062u, 3251109888u, 0, ILOGBF_TOLERANCE, 0},
+{529, 970649315u, 1078286437u, 3242196992u, 0, ILOGBF_TOLERANCE, 0},
+{530, 959776291u, 3280345347u, 3243245568u, 0, ILOGBF_TOLERANCE, 0},
+{531, 3341117305u, 3294559023u, 1097859072u, 0, ILOGBF_TOLERANCE, 0},
+{532, 1270734970u, 3355874874u, 1103101952u, 0, ILOGBF_TOLERANCE, 0},
+{533, 3454816067u, 868771977u, 1105199104u, 0, ILOGBF_TOLERANCE, 0},
+{534, 917206623u, 1172710814u, 3247439872u, 0, ILOGBF_TOLERANCE, 0},
+{535, 1106502045u, 1290849316u, 1082130432u, 0, ILOGBF_TOLERANCE, 0},
+{536, 1157598381u, 3309023746u, 1092616192u, 0, ILOGBF_TOLERANCE, 0},
+{537, 835476614u, 1092590501u, 3252682752u, 0, ILOGBF_TOLERANCE, 0},
+{538, 3335234513u, 1002337336u, 1096810496u, 0, ILOGBF_TOLERANCE, 0},
+{539, 1279489061u, 1006049444u, 1103626240u, 0, ILOGBF_TOLERANCE, 0},
+{540, 807133892u, 1110992491u, 3254255616u, 0, ILOGBF_TOLERANCE, 0},
+{541, 3157416480u, 1309984610u, 3235905536u, 0, ILOGBF_TOLERANCE, 0},
+{542, 3143920719u, 3131608518u, 3239051264u, 0, ILOGBF_TOLERANCE, 0},
+{543, 2995340689u, 1165036009u, 3251634176u, 0, ILOGBF_TOLERANCE, 0},
+{544, 1233171235u, 826460580u, 1101004800u, 0, ILOGBF_TOLERANCE, 0},
+{545, 1148920078u, 1007674793u, 1091567616u, 0, ILOGBF_TOLERANCE, 0},
+{546, 3064988156u, 3230867340u, 3247439872u, 0, ILOGBF_TOLERANCE, 0},
+{547, 3083619260u, 1159415661u, 3246391296u, 0, ILOGBF_TOLERANCE, 0},
+{548, 1109198803u, 1221754614u, 1084227584u, 0, ILOGBF_TOLERANCE, 0},
+{549, 3219949483u, 1056167693u, 0u, 0, ILOGBF_TOLERANCE, 0},
+{550, 3361149474u, 3387342069u, 1099431936u, 0, ILOGBF_TOLERANCE, 0},
+{551, 827931800u, 1118474231u, 3253207040u, 0, ILOGBF_TOLERANCE, 0},
+{552, 1207502108u, 3388073586u, 1098907648u, 0, ILOGBF_TOLERANCE, 0},
+{553, 1000014431u, 831213088u, 3238002688u, 0, ILOGBF_TOLERANCE, 0},
+{554, 3161756316u, 3143659754u, 3235905536u, 0, ILOGBF_TOLERANCE, 0},
+{555, 3160728744u, 3382954009u, 3235905536u, 0, ILOGBF_TOLERANCE, 0},
+{556, 1234530539u, 1079988872u, 1101004800u, 0, ILOGBF_TOLERANCE, 0},
+{557, 1017843965u, 1193076204u, 3233808384u, 0, ILOGBF_TOLERANCE, 0},
+{558, 2965746635u, 3248194237u, 3253731328u, 0, ILOGBF_TOLERANCE, 0},
+{559, 951862956u, 1173464654u, 3244294144u, 0, ILOGBF_TOLERANCE, 0},
+{560, 3306328852u, 1118701064u, 1093664768u, 0, ILOGBF_TOLERANCE, 0},
+{561, 1291910469u, 1211303367u, 1104674816u, 0, ILOGBF_TOLERANCE, 0},
+{562, 3027442905u, 1173894400u, 3250061312u, 0, ILOGBF_TOLERANCE, 0},
+{563, 809646928u, 3006525025u, 3254255616u, 0, ILOGBF_TOLERANCE, 0},
+{564, 1131927531u, 3182962700u, 1088421888u, 0, ILOGBF_TOLERANCE, 0},
+{565, 3449879391u, 991614550u, 1105199104u, 0, ILOGBF_TOLERANCE, 0},
+{566, 970094304u, 3344590506u, 3242196992u, 0, ILOGBF_TOLERANCE, 0},
+{567, 1125551064u, 3331248076u, 1088421888u, 0, ILOGBF_TOLERANCE, 0},
+{568, 3427296372u, 3455289118u, 1103626240u, 0, ILOGBF_TOLERANCE, 0},
+{569, 1198917460u, 1327195159u, 1097859072u, 0, ILOGBF_TOLERANCE, 0},
+{570, 3201603336u, 820047343u, 3221225472u, 0, ILOGBF_TOLERANCE, 0},
+{571, 3114686212u, 3476082461u, 3242196992u, 0, ILOGBF_TOLERANCE, 0},
+{572, 921940707u, 2967544056u, 3247439872u, 0, ILOGBF_TOLERANCE, 0},
+{573, 1091906532u, 3011904455u, 1077936128u, 0, ILOGBF_TOLERANCE, 0},
+{574, 3393557778u, 3383396815u, 1101529088u, 0, ILOGBF_TOLERANCE, 0},
+{575, 1276853215u, 873199561u, 1103626240u, 0, ILOGBF_TOLERANCE, 0},
+{576, 3462778440u, 3349284325u, 1105723392u, 0, ILOGBF_TOLERANCE, 0},
+{577, 833132358u, 3470358002u, 3252682752u, 0, ILOGBF_TOLERANCE, 0},
+{578, 3360170117u, 3048354042u, 1099431936u, 0, ILOGBF_TOLERANCE, 0},
+{579, 3224245428u, 3271307999u, 1065353216u, 0, ILOGBF_TOLERANCE, 0},
+{580, 1120124467u, 1135619937u, 1086324736u, 0, ILOGBF_TOLERANCE, 0},
+{581, 1064364381u, 3180675544u, 3212836864u, 0, ILOGBF_TOLERANCE, 0},
+{582, 1268744779u, 3328452652u, 1103101952u, 0, ILOGBF_TOLERANCE, 0},
+{583, 1165195428u, 3390323168u, 1093664768u, 0, ILOGBF_TOLERANCE, 0},
+{584, 3044092739u, 1106497311u, 3249012736u, 0, ILOGBF_TOLERANCE, 0},
+{585, 3149469534u, 1278465842u, 3238002688u, 0, ILOGBF_TOLERANCE, 0},
+{586, 3247790039u, 909788142u, 1082130432u, 0, ILOGBF_TOLERANCE, 0},
+{587, 3215244648u, 1083988595u, 0u, 0, ILOGBF_TOLERANCE, 0},
+{588, 3095275931u, 989153382u, 3245342720u, 0, ILOGBF_TOLERANCE, 0},
+{589, 3059688264u, 1117455718u, 3247964160u, 0, ILOGBF_TOLERANCE, 0},
+{590, 2990022513u, 1061714285u, 3252158464u, 0, ILOGBF_TOLERANCE, 0},
+{591, 1212717473u, 837873779u, 1099431936u, 0, ILOGBF_TOLERANCE, 0},
+{592, 3275973009u, 3450721670u, 1088421888u, 0, ILOGBF_TOLERANCE, 0},
+{593, 3028857014u, 3188853813u, 3249537024u, 0, ILOGBF_TOLERANCE, 0},
+{594, 3391162308u, 1291220039u, 1101529088u, 0, ILOGBF_TOLERANCE, 0},
+{595, 1044867873u, 3369493273u, 3225419776u, 0, ILOGBF_TOLERANCE, 0},
+{596, 1089986803u, 3462160118u, 1073741824u, 0, ILOGBF_TOLERANCE, 0},
+{597, 1296314700u, 2957454177u, 1104674816u, 0, ILOGBF_TOLERANCE, 0},
+{598, 1251462432u, 3171021770u, 1102053376u, 0, ILOGBF_TOLERANCE, 0},
+{599, 3485236902u, 980772835u, 1107296256u, 0, ILOGBF_TOLERANCE, 0},
+{600, 3262169538u, 1268270462u, 1084227584u, 0, ILOGBF_TOLERANCE, 0},
+{601, 3080852256u, 994641495u, 3246391296u, 0, ILOGBF_TOLERANCE, 0},
+{602, 1022211242u, 922124181u, 3233808384u, 0, ILOGBF_TOLERANCE, 0},
+{603, 884661176u, 2985540645u, 3249537024u, 0, ILOGBF_TOLERANCE, 0},
+{604, 3071422941u, 3271100396u, 3246915584u, 0, ILOGBF_TOLERANCE, 0},
+{605, 989762529u, 3362011135u, 3240099840u, 0, ILOGBF_TOLERANCE, 0},
+{606, 1295475718u, 3212305413u, 1104674816u, 0, ILOGBF_TOLERANCE, 0},
+{607, 1002632518u, 3330388441u, 3238002688u, 0, ILOGBF_TOLERANCE, 0},
+{608, 3404372005u, 3450484255u, 1102053376u, 0, ILOGBF_TOLERANCE, 0},
+{609, 3158912530u, 3105501826u, 3235905536u, 0, ILOGBF_TOLERANCE, 0},
+{610, 2987029985u, 1218447414u, 3252158464u, 0, ILOGBF_TOLERANCE, 0},
+{611, 1125800069u, 3256265749u, 1088421888u, 0, ILOGBF_TOLERANCE, 0},
+{612, 3138037576u, 3103365227u, 3239051264u, 0, ILOGBF_TOLERANCE, 0},
+{613, 3108384823u, 1300246663u, 3243245568u, 0, ILOGBF_TOLERANCE, 0},
+{614, 999985470u, 3409354318u, 3238002688u, 0, ILOGBF_TOLERANCE, 0},
+{615, 1189421739u, 1056599002u, 1096810496u, 0, ILOGBF_TOLERANCE, 0},
+{616, 3075182644u, 3144159778u, 3246915584u, 0, ILOGBF_TOLERANCE, 0},
+{617, 3028099649u, 3391513557u, 3250061312u, 0, ILOGBF_TOLERANCE, 0},
+{618, 837703706u, 3467473756u, 3252682752u, 0, ILOGBF_TOLERANCE, 0},
+{619, 3132541814u, 3444521949u, 3240099840u, 0, ILOGBF_TOLERANCE, 0},
+{620, 1164046161u, 3440635788u, 1093664768u, 0, ILOGBF_TOLERANCE, 0},
+{621, 1292596266u, 3116569667u, 1104674816u, 0, ILOGBF_TOLERANCE, 0},
+{622, 3469748379u, 3412765608u, 1106247680u, 0, ILOGBF_TOLERANCE, 0},
+{623, 2968771722u, 3117531540u, 3253731328u, 0, ILOGBF_TOLERANCE, 0},
+{624, 1314644642u, 3123051784u, 1105723392u, 0, ILOGBF_TOLERANCE, 0},
+{625, 3399813173u, 828743798u, 1102053376u, 0, ILOGBF_TOLERANCE, 0},
+{626, 948775569u, 3485444126u, 3244294144u, 0, ILOGBF_TOLERANCE, 0},
+{627, 1034611395u, 882288581u, 3229614080u, 0, ILOGBF_TOLERANCE, 0},
+{628, 3489122735u, 3372450889u, 1107296256u, 0, ILOGBF_TOLERANCE, 0},
+{629, 1181604787u, 3363067409u, 1095761920u, 0, ILOGBF_TOLERANCE, 0},
+{630, 3059042077u, 3204983963u, 3247964160u, 0, ILOGBF_TOLERANCE, 0},
+{631, 1043691622u, 3402603223u, 3225419776u, 0, ILOGBF_TOLERANCE, 0},
+{632, 1314588083u, 856187848u, 1105723392u, 0, ILOGBF_TOLERANCE, 0},
+{633, 3141533334u, 3010142974u, 3239051264u, 0, ILOGBF_TOLERANCE, 0},
+{634, 3013416703u, 3442525943u, 3250585600u, 0, ILOGBF_TOLERANCE, 0},
+{635, 861266716u, 822172554u, 3251109888u, 0, ILOGBF_TOLERANCE, 0},
+{636, 3157534378u, 3451674717u, 3235905536u, 0, ILOGBF_TOLERANCE, 0},
+{637, 2976169000u, 3033697153u, 3253207040u, 0, ILOGBF_TOLERANCE, 0},
+{638, 3400949680u, 3073750220u, 1102053376u, 0, ILOGBF_TOLERANCE, 0},
+{639, 3365581801u, 1175843167u, 1099956224u, 0, ILOGBF_TOLERANCE, 0},
+{640, 1110424755u, 3011308654u, 1084227584u, 0, ILOGBF_TOLERANCE, 0},
+{641, 3189917167u, 927278934u, 3225419776u, 0, ILOGBF_TOLERANCE, 0},
+{642, 969804941u, 3355439348u, 3242196992u, 0, ILOGBF_TOLERANCE, 0},
+{643, 1139120919u, 3270515074u, 1090519040u, 0, ILOGBF_TOLERANCE, 0},
+{644, 816789141u, 3325199970u, 3253731328u, 0, ILOGBF_TOLERANCE, 0},
+{645, 934308144u, 3118191228u, 3246391296u, 0, ILOGBF_TOLERANCE, 0},
+{646, 1220524226u, 1152648002u, 1099956224u, 0, ILOGBF_TOLERANCE, 0},
+{647, 3162548604u, 3461790298u, 3233808384u, 0, ILOGBF_TOLERANCE, 0},
+{648, 3382391700u, 3296962745u, 1101004800u, 0, ILOGBF_TOLERANCE, 0},
+{649, 1156767533u, 1088986462u, 1092616192u, 0, ILOGBF_TOLERANCE, 0},
+{650, 3079222483u, 3312324949u, 3246391296u, 0, ILOGBF_TOLERANCE, 0},
+{651, 994934087u, 967678094u, 3239051264u, 0, ILOGBF_TOLERANCE, 0},
+{652, 840906467u, 3156591981u, 3252158464u, 0, ILOGBF_TOLERANCE, 0},
+{653, 3185240099u, 1123403720u, 3229614080u, 0, ILOGBF_TOLERANCE, 0},
+{654, 870026344u, 1093936408u, 3250585600u, 0, ILOGBF_TOLERANCE, 0},
+{655, 2996887005u, 3287317742u, 3251634176u, 0, ILOGBF_TOLERANCE, 0},
+{656, 3479873563u, 1246277393u, 1106771968u, 0, ILOGBF_TOLERANCE, 0},
+{657, 3424264117u, 3434026174u, 1103626240u, 0, ILOGBF_TOLERANCE, 0},
+{658, 3228365887u, 1216775310u, 1065353216u, 0, ILOGBF_TOLERANCE, 0},
+{659, 1035909900u, 1249532942u, 3229614080u, 0, ILOGBF_TOLERANCE, 0},
+{660, 2989750574u, 1274271338u, 3252158464u, 0, ILOGBF_TOLERANCE, 0},
+{661, 3024951184u, 1247632131u, 3250061312u, 0, ILOGBF_TOLERANCE, 0},
+{662, 1212129651u, 3017366784u, 1099431936u, 0, ILOGBF_TOLERANCE, 0},
+{663, 3125775254u, 955826310u, 3241148416u, 0, ILOGBF_TOLERANCE, 0},
+{664, 1037464105u, 3121544932u, 3229614080u, 0, ILOGBF_TOLERANCE, 0},
+{665, 1311706596u, 1254918706u, 1105723392u, 0, ILOGBF_TOLERANCE, 0},
+{666, 918212457u, 1017468331u, 3247439872u, 0, ILOGBF_TOLERANCE, 0},
+{667, 1337315179u, 3461361185u, 1107296256u, 0, ILOGBF_TOLERANCE, 0},
+{668, 1131358407u, 3325958870u, 1088421888u, 0, ILOGBF_TOLERANCE, 0},
+{669, 1156517523u, 3343716230u, 1092616192u, 0, ILOGBF_TOLERANCE, 0},
+{670, 3210802820u, 3207408574u, 3212836864u, 0, ILOGBF_TOLERANCE, 0},
+{671, 3337499209u, 1226297264u, 1096810496u, 0, ILOGBF_TOLERANCE, 0},
+{672, 3468429030u, 3253874001u, 1106247680u, 0, ILOGBF_TOLERANCE, 0},
+{673, 3253515800u, 1189005947u, 1082130432u, 0, ILOGBF_TOLERANCE, 0},
+{674, 3055299953u, 3047908678u, 3247964160u, 0, ILOGBF_TOLERANCE, 0},
+{675, 959956547u, 876324728u, 3243245568u, 0, ILOGBF_TOLERANCE, 0},
+{676, 3425290480u, 1139193797u, 1103626240u, 0, ILOGBF_TOLERANCE, 0},
+{677, 1039917375u, 1122740999u, 3229614080u, 0, ILOGBF_TOLERANCE, 0},
+{678, 3220979495u, 3429223871u, 0u, 0, ILOGBF_TOLERANCE, 0},
+{679, 1311016004u, 3334899880u, 1105723392u, 0, ILOGBF_TOLERANCE, 0},
+{680, 2995451172u, 2974546424u, 3251634176u, 0, ILOGBF_TOLERANCE, 0},
+{681, 1128016396u, 1105151547u, 1088421888u, 0, ILOGBF_TOLERANCE, 0},
+{682, 3210335769u, 3100646155u, 3212836864u, 0, ILOGBF_TOLERANCE, 0},
+{683, 3022705759u, 3404762495u, 3250061312u, 0, ILOGBF_TOLERANCE, 0},
+{684, 1206054701u, 826010009u, 1098907648u, 0, ILOGBF_TOLERANCE, 0},
+{685, 3144504834u, 1162227076u, 3239051264u, 0, ILOGBF_TOLERANCE, 0},
+{686, 822524010u, 970745811u, 3253207040u, 0, ILOGBF_TOLERANCE, 0},
+{687, 3016981460u, 3313826904u, 3250585600u, 0, ILOGBF_TOLERANCE, 0},
+{688, 1213609983u, 919983950u, 1099431936u, 0, ILOGBF_TOLERANCE, 0},
+{689, 1246902946u, 3064047808u, 1101529088u, 0, ILOGBF_TOLERANCE, 0},
+{690, 995850843u, 1332031130u, 3239051264u, 0, ILOGBF_TOLERANCE, 0},
+{691, 3362082828u, 3374056268u, 1099431936u, 0, ILOGBF_TOLERANCE, 0},
+{692, 1029480631u, 3047777170u, 3231711232u, 0, ILOGBF_TOLERANCE, 0},
+{693, 3153568584u, 3106514232u, 3238002688u, 0, ILOGBF_TOLERANCE, 0},
+{694, 3384988527u, 3109485565u, 1101004800u, 0, ILOGBF_TOLERANCE, 0},
+{695, 1317696241u, 870681806u, 1106247680u, 0, ILOGBF_TOLERANCE, 0},
+{696, 3235395924u, 1132055244u, 1073741824u, 0, ILOGBF_TOLERANCE, 0},
+{697, 3341877624u, 2969495570u, 1097859072u, 0, ILOGBF_TOLERANCE, 0},
+{698, 1228636133u, 886552820u, 1100480512u, 0, ILOGBF_TOLERANCE, 0},
+{699, 3161654634u, 3335899347u, 3235905536u, 0, ILOGBF_TOLERANCE, 0},
+{700, 3162655243u, 3307203982u, 3233808384u, 0, ILOGBF_TOLERANCE, 0},
+{701, 1207246237u, 859223639u, 1098907648u, 0, ILOGBF_TOLERANCE, 0},
+{702, 1165476654u, 3350219111u, 1093664768u, 0, ILOGBF_TOLERANCE, 0},
+{703, 1215278023u, 3019755242u, 1099431936u, 0, ILOGBF_TOLERANCE, 0},
+{704, 1017239798u, 3438501281u, 3233808384u, 0, ILOGBF_TOLERANCE, 0},
+{705, 1149651309u, 970030475u, 1092616192u, 0, ILOGBF_TOLERANCE, 0},
+{706, 1111943722u, 3122211334u, 1084227584u, 0, ILOGBF_TOLERANCE, 0},
+{707, 856374764u, 1158358450u, 3251109888u, 0, ILOGBF_TOLERANCE, 0},
+{708, 1189849849u, 3382739134u, 1096810496u, 0, ILOGBF_TOLERANCE, 0},
+{709, 3204848496u, 3141519085u, 3212836864u, 0, ILOGBF_TOLERANCE, 0},
+{710, 1249758327u, 3104759211u, 1101529088u, 0, ILOGBF_TOLERANCE, 0},
+{711, 3092982276u, 3445282331u, 3245342720u, 0, ILOGBF_TOLERANCE, 0},
+{712, 1168098747u, 1316854744u, 1094713344u, 0, ILOGBF_TOLERANCE, 0},
+{713, 892549317u, 1179637545u, 3249012736u, 0, ILOGBF_TOLERANCE, 0},
+{714, 3301009024u, 3406174560u, 1092616192u, 0, ILOGBF_TOLERANCE, 0},
+{715, 3233089227u, 1212652543u, 1073741824u, 0, ILOGBF_TOLERANCE, 0},
+{716, 3218245284u, 1238873830u, 0u, 0, ILOGBF_TOLERANCE, 0},
+{717, 3215981890u, 3240474694u, 0u, 0, ILOGBF_TOLERANCE, 0},
+{718, 1266687209u, 3092038122u, 1103101952u, 0, ILOGBF_TOLERANCE, 0},
+{719, 825230580u, 3410090781u, 3253207040u, 0, ILOGBF_TOLERANCE, 0},
+{720, 3487959775u, 3331372071u, 1107296256u, 0, ILOGBF_TOLERANCE, 0},
+{721, 943645710u, 852875779u, 3245342720u, 0, ILOGBF_TOLERANCE, 0},
+{722, 3345065699u, 3282620725u, 1097859072u, 0, ILOGBF_TOLERANCE, 0},
+{723, 935847271u, 1067255804u, 3246391296u, 0, ILOGBF_TOLERANCE, 0},
+{724, 3410336089u, 1111437780u, 1102577664u, 0, ILOGBF_TOLERANCE, 0},
+{725, 3082940740u, 1336840432u, 3246391296u, 0, ILOGBF_TOLERANCE, 0},
+{726, 1141063391u, 1168908072u, 1091567616u, 0, ILOGBF_TOLERANCE, 0},
+{727, 3059263153u, 3067795684u, 3247964160u, 0, ILOGBF_TOLERANCE, 0},
+{728, 849450947u, 3289799763u, 3251634176u, 0, ILOGBF_TOLERANCE, 0},
+{729, 3353679791u, 897158391u, 1098907648u, 0, ILOGBF_TOLERANCE, 0},
+{730, 1001823878u, 1016826861u, 3238002688u, 0, ILOGBF_TOLERANCE, 0},
+{731, 1009130212u, 1004302940u, 3235905536u, 0, ILOGBF_TOLERANCE, 0},
+{732, 3367127535u, 943136342u, 1099956224u, 0, ILOGBF_TOLERANCE, 0},
+{733, 1032920919u, 3449126417u, 3229614080u, 0, ILOGBF_TOLERANCE, 0},
+{734, 3281952870u, 3147012185u, 1090519040u, 0, ILOGBF_TOLERANCE, 0},
+{735, 1237868497u, 3048281802u, 1101004800u, 0, ILOGBF_TOLERANCE, 0},
+{736, 1153753924u, 3322269242u, 1092616192u, 0, ILOGBF_TOLERANCE, 0},
+{737, 1120261759u, 892210998u, 1086324736u, 0, ILOGBF_TOLERANCE, 0},
+{738, 3226328360u, 3366432856u, 1065353216u, 0, ILOGBF_TOLERANCE, 0},
+{739, 3349595986u, 3251588707u, 1098907648u, 0, ILOGBF_TOLERANCE, 0},
+{740, 3166889490u, 3306023523u, 3233808384u, 0, ILOGBF_TOLERANCE, 0},
+{741, 1087750238u, 1099325523u, 1073741824u, 0, ILOGBF_TOLERANCE, 0},
+{742, 3121620061u, 3359488363u, 3241148416u, 0, ILOGBF_TOLERANCE, 0},
+{743, 1066116543u, 3072159933u, 0u, 0, ILOGBF_TOLERANCE, 0},
+{744, 3210898034u, 2981803389u, 3212836864u, 0, ILOGBF_TOLERANCE, 0},
+{745, 3051923237u, 3364074347u, 3248488448u, 0, ILOGBF_TOLERANCE, 0},
+{746, 1030612298u, 3345396001u, 3231711232u, 0, ILOGBF_TOLERANCE, 0},
+{747, 3015019212u, 989161453u, 3250585600u, 0, ILOGBF_TOLERANCE, 0},
+{748, 1186234578u, 858134374u, 1096810496u, 0, ILOGBF_TOLERANCE, 0},
+{749, 1331680743u, 1009396165u, 1106771968u, 0, ILOGBF_TOLERANCE, 0},
+{750, 847857044u, 894661023u, 3251634176u, 0, ILOGBF_TOLERANCE, 0},
+{751, 3060774997u, 1326067357u, 3247964160u, 0, ILOGBF_TOLERANCE, 0},
+{752, 887589411u, 1292305693u, 3249537024u, 0, ILOGBF_TOLERANCE, 0},
+{753, 1045232522u, 3234993273u, 3225419776u, 0, ILOGBF_TOLERANCE, 0},
+{754, 3119858470u, 962515365u, 3242196992u, 0, ILOGBF_TOLERANCE, 0},
+{755, 3002873011u, 3188748064u, 3251634176u, 0, ILOGBF_TOLERANCE, 0},
+{756, 3349432725u, 928848003u, 1098907648u, 0, ILOGBF_TOLERANCE, 0},
+{757, 912423027u, 3184646319u, 3247964160u, 0, ILOGBF_TOLERANCE, 0},
+{758, 3228795133u, 3273940030u, 1065353216u, 0, ILOGBF_TOLERANCE, 0},
+{759, 3194674746u, 3112269709u, 3225419776u, 0, ILOGBF_TOLERANCE, 0},
+{760, 3296784303u, 3276182352u, 1092616192u, 0, ILOGBF_TOLERANCE, 0},
+{761, 965402291u, 3107104376u, 3242196992u, 0, ILOGBF_TOLERANCE, 0},
+{762, 3388153589u, 3426245389u, 1101004800u, 0, ILOGBF_TOLERANCE, 0},
+{763, 1133410485u, 3329658993u, 1090519040u, 0, ILOGBF_TOLERANCE, 0},
+{764, 3136790322u, 1088652637u, 3240099840u, 0, ILOGBF_TOLERANCE, 0},
+{765, 3369970587u, 959121458u, 1099956224u, 0, ILOGBF_TOLERANCE, 0},
+{766, 1270451568u, 928393353u, 1103101952u, 0, ILOGBF_TOLERANCE, 0},
+{767, 989498922u, 3088358419u, 3240099840u, 0, ILOGBF_TOLERANCE, 0},
+{768, 1280215674u, 3148135875u, 1103626240u, 0, ILOGBF_TOLERANCE, 0},
+{769, 1171873518u, 954709738u, 1094713344u, 0, ILOGBF_TOLERANCE, 0},
+{770, 3298258100u, 935525182u, 1092616192u, 0, ILOGBF_TOLERANCE, 0},
+{771, 3415208824u, 822843236u, 1103101952u, 0, ILOGBF_TOLERANCE, 0},
+{772, 1001897182u, 3191875320u, 3238002688u, 0, ILOGBF_TOLERANCE, 0},
+{773, 3152777939u, 3245830463u, 3238002688u, 0, ILOGBF_TOLERANCE, 0},
+{774, 985903305u, 3333087577u, 3240099840u, 0, ILOGBF_TOLERANCE, 0},
+{775, 3357328848u, 859306298u, 1099431936u, 0, ILOGBF_TOLERANCE, 0},
+{776, 2967395608u, 3077307650u, 3253731328u, 0, ILOGBF_TOLERANCE, 0},
+{777, 982612185u, 923582663u, 3240099840u, 0, ILOGBF_TOLERANCE, 0},
+{778, 3267868136u, 1208301947u, 1086324736u, 0, ILOGBF_TOLERANCE, 0},
+{779, 3319048157u, 1172271145u, 1094713344u, 0, ILOGBF_TOLERANCE, 0},
+{780, 1144755661u, 860947435u, 1091567616u, 0, ILOGBF_TOLERANCE, 0},
+{781, 840456845u, 1051585760u, 3252158464u, 0, ILOGBF_TOLERANCE, 0},
+{782, 898467286u, 839254959u, 3248488448u, 0, ILOGBF_TOLERANCE, 0},
+{783, 3301461672u, 1233693827u, 1092616192u, 0, ILOGBF_TOLERANCE, 0},
+{784, 3364525678u, 3089849671u, 1099956224u, 0, ILOGBF_TOLERANCE, 0},
+{785, 871130681u, 905123007u, 3250585600u, 0, ILOGBF_TOLERANCE, 0},
+{786, 931441127u, 1133424555u, 3246391296u, 0, ILOGBF_TOLERANCE, 0},
+{787, 3146660041u, 3143695961u, 3238002688u, 0, ILOGBF_TOLERANCE, 0},
+{788, 3467121799u, 3023584354u, 1106247680u, 0, ILOGBF_TOLERANCE, 0},
+{789, 1151257041u, 3084216427u, 1092616192u, 0, ILOGBF_TOLERANCE, 0},
+{790, 3097873255u, 3219266640u, 3244294144u, 0, ILOGBF_TOLERANCE, 0},
+{791, 3130670309u, 3192399254u, 3240099840u, 0, ILOGBF_TOLERANCE, 0},
+{792, 1017573824u, 3130901062u, 3233808384u, 0, ILOGBF_TOLERANCE, 0},
+{793, 1258369714u, 3462258576u, 1102577664u, 0, ILOGBF_TOLERANCE, 0},
+{794, 1216602683u, 3371396332u, 1099956224u, 0, ILOGBF_TOLERANCE, 0},
+{795, 2976429847u, 959973239u, 3253207040u, 0, ILOGBF_TOLERANCE, 0},
+{796, 3297265739u, 1214184410u, 1092616192u, 0, ILOGBF_TOLERANCE, 0},
+{797, 1071940738u, 3311731012u, 0u, 0, ILOGBF_TOLERANCE, 0},
+{798, 922601356u, 3337171870u, 3247439872u, 0, ILOGBF_TOLERANCE, 0},
+{799, 3462285635u, 3444030332u, 1105723392u, 0, ILOGBF_TOLERANCE, 0},
+{800, 3357177805u, 1085464241u, 1099431936u, 0, ILOGBF_TOLERANCE, 0},
+{801, 3049120080u, 900832851u, 3248488448u, 0, ILOGBF_TOLERANCE, 0},
+{802, 1153863660u, 1011991342u, 1092616192u, 0, ILOGBF_TOLERANCE, 0},
+{803, 3034243695u, 917098003u, 3249537024u, 0, ILOGBF_TOLERANCE, 0},
+{804, 809294662u, 3266461458u, 3254255616u, 0, ILOGBF_TOLERANCE, 0},
+{805, 822231182u, 3393408718u, 3253207040u, 0, ILOGBF_TOLERANCE, 0},
+{806, 845772797u, 3341109215u, 3252158464u, 0, ILOGBF_TOLERANCE, 0},
+{807, 1249365132u, 3278686216u, 1101529088u, 0, ILOGBF_TOLERANCE, 0},
+{808, 3046215730u, 3211219980u, 3248488448u, 0, ILOGBF_TOLERANCE, 0},
+{809, 3047251716u, 1090787353u, 3248488448u, 0, ILOGBF_TOLERANCE, 0},
+{810, 2980866154u, 1147012796u, 3252682752u, 0, ILOGBF_TOLERANCE, 0},
+{811, 3131219358u, 3471261157u, 3240099840u, 0, ILOGBF_TOLERANCE, 0},
+{812, 3222096285u, 1198013705u, 1065353216u, 0, ILOGBF_TOLERANCE, 0},
+{813, 1297708818u, 3079166173u, 1104674816u, 0, ILOGBF_TOLERANCE, 0},
+{814, 3345532722u, 3383708463u, 1097859072u, 0, ILOGBF_TOLERANCE, 0},
+{815, 3418753236u, 3481843070u, 1103101952u, 0, ILOGBF_TOLERANCE, 0},
+{816, 1277417964u, 3487506626u, 1103626240u, 0, ILOGBF_TOLERANCE, 0},
+{817, 987577257u, 1152077087u, 3240099840u, 0, ILOGBF_TOLERANCE, 0},
+{818, 3161606610u, 3190282989u, 3235905536u, 0, ILOGBF_TOLERANCE, 0},
+{819, 849056171u, 910674398u, 3251634176u, 0, ILOGBF_TOLERANCE, 0},
+{820, 888030585u, 3062367380u, 3249537024u, 0, ILOGBF_TOLERANCE, 0},
+{821, 1043442869u, 3311393817u, 3225419776u, 0, ILOGBF_TOLERANCE, 0},
+{822, 851189486u, 3007588581u, 3251634176u, 0, ILOGBF_TOLERANCE, 0},
+{823, 3320923228u, 3464544249u, 1094713344u, 0, ILOGBF_TOLERANCE, 0},
+{824, 1337400405u, 3488844154u, 1107296256u, 0, ILOGBF_TOLERANCE, 0},
+{825, 2964339884u, 3186563447u, 3253731328u, 0, ILOGBF_TOLERANCE, 0},
+{826, 3400348640u, 3129868490u, 1102053376u, 0, ILOGBF_TOLERANCE, 0},
+{827, 1250249095u, 1069023744u, 1102053376u, 0, ILOGBF_TOLERANCE, 0},
+{828, 3284411233u, 1173613526u, 1090519040u, 0, ILOGBF_TOLERANCE, 0},
+{829, 3020883322u, 2953622587u, 3250061312u, 0, ILOGBF_TOLERANCE, 0},
+{830, 1215968622u, 3469884568u, 1099431936u, 0, ILOGBF_TOLERANCE, 0},
+{831, 3202319550u, 819117302u, 3221225472u, 0, ILOGBF_TOLERANCE, 0},
+{832, 3061638260u, 3116222327u, 3247964160u, 0, ILOGBF_TOLERANCE, 0},
+{833, 1025404104u, 1066370251u, 3231711232u, 0, ILOGBF_TOLERANCE, 0},
+{834, 3138086437u, 3195983510u, 3239051264u, 0, ILOGBF_TOLERANCE, 0},
+{835, 3091024506u, 3456196859u, 3245342720u, 0, ILOGBF_TOLERANCE, 0},
+{836, 3362748242u, 3369843597u, 1099431936u, 0, ILOGBF_TOLERANCE, 0},
+{837, 3099671635u, 3218383623u, 3244294144u, 0, ILOGBF_TOLERANCE, 0},
+{838, 3068014841u, 2978226656u, 3247439872u, 0, ILOGBF_TOLERANCE, 0},
+{839, 1252237719u, 1121169249u, 1102053376u, 0, ILOGBF_TOLERANCE, 0},
+{840, 3327895594u, 1224511805u, 1095761920u, 0, ILOGBF_TOLERANCE, 0},
+{841, 3082454432u, 889268276u, 3246391296u, 0, ILOGBF_TOLERANCE, 0},
+{842, 3396161504u, 1182798837u, 1101529088u, 0, ILOGBF_TOLERANCE, 0},
+{843, 1099710167u, 887180181u, 1082130432u, 0, ILOGBF_TOLERANCE, 0},
+{844, 1157186482u, 1288722647u, 1092616192u, 0, ILOGBF_TOLERANCE, 0},
+{845, 1282110851u, 3176633124u, 1103626240u, 0, ILOGBF_TOLERANCE, 0},
+{846, 3477008113u, 1331845018u, 1106771968u, 0, ILOGBF_TOLERANCE, 0},
+{847, 3292127294u, 3409957764u, 1091567616u, 0, ILOGBF_TOLERANCE, 0},
+{848, 1123357102u, 3281307320u, 1086324736u, 0, ILOGBF_TOLERANCE, 0},
+{849, 1106837025u, 3088080674u, 1082130432u, 0, ILOGBF_TOLERANCE, 0},
+{850, 1049949008u, 1130799489u, 3221225472u, 0, ILOGBF_TOLERANCE, 0},
+{851, 1253017688u, 942062372u, 1102053376u, 0, ILOGBF_TOLERANCE, 0},
+{852, 1108543194u, 3281299199u, 1084227584u, 0, ILOGBF_TOLERANCE, 0},
+{853, 3087985411u, 1238341456u, 3245342720u, 0, ILOGBF_TOLERANCE, 0},
+{854, 3002187365u, 1073809054u, 3251634176u, 0, ILOGBF_TOLERANCE, 0},
+{855, 3163283126u, 1328636961u, 3233808384u, 0, ILOGBF_TOLERANCE, 0},
+{856, 1160162706u, 1264067367u, 1093664768u, 0, ILOGBF_TOLERANCE, 0},
+{857, 3305715025u, 3017496063u, 1093664768u, 0, ILOGBF_TOLERANCE, 0},
+{858, 1266928623u, 811778614u, 1103101952u, 0, ILOGBF_TOLERANCE, 0},
+{859, 3025340297u, 1193925540u, 3250061312u, 0, ILOGBF_TOLERANCE, 0},
+{860, 3438080027u, 3107114149u, 1104150528u, 0, ILOGBF_TOLERANCE, 0},
+{861, 3344574751u, 3111270744u, 1097859072u, 0, ILOGBF_TOLERANCE, 0},
+{862, 1152416724u, 962669179u, 1092616192u, 0, ILOGBF_TOLERANCE, 0},
+{863, 1218239308u, 1126238113u, 1099956224u, 0, ILOGBF_TOLERANCE, 0},
+{864, 3263310567u, 1030748197u, 1086324736u, 0, ILOGBF_TOLERANCE, 0},
+{865, 835770216u, 865469272u, 3252682752u, 0, ILOGBF_TOLERANCE, 0},
+{866, 3041998669u, 1160635263u, 3249012736u, 0, ILOGBF_TOLERANCE, 0},
+{867, 1000313118u, 2980130729u, 3238002688u, 0, ILOGBF_TOLERANCE, 0},
+{868, 972485427u, 1124312043u, 3242196992u, 0, ILOGBF_TOLERANCE, 0},
+{869, 3290264612u, 1124703898u, 1091567616u, 0, ILOGBF_TOLERANCE, 0},
+{870, 869072657u, 3150369767u, 3250585600u, 0, ILOGBF_TOLERANCE, 0},
+{871, 3222106584u, 1183748648u, 1065353216u, 0, ILOGBF_TOLERANCE, 0},
+{872, 1278946388u, 825129857u, 1103626240u, 0, ILOGBF_TOLERANCE, 0},
+{873, 947914771u, 3181847068u, 3244294144u, 0, ILOGBF_TOLERANCE, 0},
+{874, 3167730654u, 3195765940u, 3233808384u, 0, ILOGBF_TOLERANCE, 0},
+{875, 1098530298u, 3255870890u, 1077936128u, 0, ILOGBF_TOLERANCE, 0},
+{876, 3232726036u, 871038882u, 1073741824u, 0, ILOGBF_TOLERANCE, 0},
+{877, 1297190916u, 811863044u, 1104674816u, 0, ILOGBF_TOLERANCE, 0},
+{878, 1277649137u, 961171401u, 1103626240u, 0, ILOGBF_TOLERANCE, 0},
+{879, 3203377685u, 1306427476u, 3221225472u, 0, ILOGBF_TOLERANCE, 0},
+{880, 3090306474u, 3124785016u, 3245342720u, 0, ILOGBF_TOLERANCE, 0},
+{881, 3244032016u, 3045313345u, 1077936128u, 0, ILOGBF_TOLERANCE, 0},
+{882, 3033122376u, 3049877065u, 3249537024u, 0, ILOGBF_TOLERANCE, 0},
+{883, 3019221802u, 3329183205u, 3250585600u, 0, ILOGBF_TOLERANCE, 0},
+{884, 1096155623u, 1256423752u, 1077936128u, 0, ILOGBF_TOLERANCE, 0},
+{885, 873151908u, 3246562559u, 3250061312u, 0, ILOGBF_TOLERANCE, 0},
+{886, 3238729605u, 1298769842u, 1077936128u, 0, ILOGBF_TOLERANCE, 0},
+{887, 3317196817u, 989537151u, 1094713344u, 0, ILOGBF_TOLERANCE, 0},
+{888, 3374748510u, 834161190u, 1100480512u, 0, ILOGBF_TOLERANCE, 0},
+{889, 3345634950u, 959901149u, 1097859072u, 0, ILOGBF_TOLERANCE, 0},
+{890, 3189860276u, 883598767u, 3225419776u, 0, ILOGBF_TOLERANCE, 0},
+{891, 887311687u, 1175312255u, 3249537024u, 0, ILOGBF_TOLERANCE, 0},
+{892, 3396917283u, 3066326686u, 1101529088u, 0, ILOGBF_TOLERANCE, 0},
+{893, 3317032737u, 3143803722u, 1094713344u, 0, ILOGBF_TOLERANCE, 0},
+{894, 1200051436u, 1163802508u, 1098907648u, 0, ILOGBF_TOLERANCE, 0},
+{895, 3105291012u, 1194385202u, 3243245568u, 0, ILOGBF_TOLERANCE, 0},
+{896, 1306520561u, 957302464u, 1105199104u, 0, ILOGBF_TOLERANCE, 0},
+{897, 1314936356u, 2985592532u, 1105723392u, 0, ILOGBF_TOLERANCE, 0},
+{898, 3475052219u, 1284049853u, 1106771968u, 0, ILOGBF_TOLERANCE, 0},
+{899, 3085636260u, 1107682820u, 3246391296u, 0, ILOGBF_TOLERANCE, 0},
+{900, 2995058661u, 822977912u, 3251634176u, 0, ILOGBF_TOLERANCE, 0},
+{901, 3393227708u, 3271879112u, 1101529088u, 0, ILOGBF_TOLERANCE, 0},
+{902, 2983919425u, 3341426744u, 3252682752u, 0, ILOGBF_TOLERANCE, 0},
+{903, 3182540197u, 852580839u, 3229614080u, 0, ILOGBF_TOLERANCE, 0},
+{904, 3349005404u, 3080993030u, 1098907648u, 0, ILOGBF_TOLERANCE, 0},
+{905, 3154720153u, 3443720494u, 3235905536u, 0, ILOGBF_TOLERANCE, 0},
+{906, 1262863321u, 1219003129u, 1102577664u, 0, ILOGBF_TOLERANCE, 0},
+{907, 882902102u, 1224362550u, 3249537024u, 0, ILOGBF_TOLERANCE, 0},
+{908, 2995633678u, 828113666u, 3251634176u, 0, ILOGBF_TOLERANCE, 0},
+{909, 1053387478u, 3184880021u, 3221225472u, 0, ILOGBF_TOLERANCE, 0},
+{910, 3387653691u, 3347783852u, 1101004800u, 0, ILOGBF_TOLERANCE, 0},
+{911, 3136364836u, 1018492227u, 3240099840u, 0, ILOGBF_TOLERANCE, 0},
+{912, 808412264u, 941158192u, 3254255616u, 0, ILOGBF_TOLERANCE, 0},
+{913, 1338680611u, 1166078045u, 1107296256u, 0, ILOGBF_TOLERANCE, 0},
+{914, 1112891928u, 3074730425u, 1084227584u, 0, ILOGBF_TOLERANCE, 0},
+{915, 893449284u, 1052877339u, 3249012736u, 0, ILOGBF_TOLERANCE, 0},
+{916, 892311459u, 1097338393u, 3249012736u, 0, ILOGBF_TOLERANCE, 0},
+{917, 3105373037u, 3246705916u, 3243245568u, 0, ILOGBF_TOLERANCE, 0},
+{918, 1190105283u, 3033907262u, 1096810496u, 0, ILOGBF_TOLERANCE, 0},
+{919, 1011225926u, 1180485180u, 3235905536u, 0, ILOGBF_TOLERANCE, 0},
+{920, 1043025031u, 987068973u, 3225419776u, 0, ILOGBF_TOLERANCE, 0},
+{921, 3410531037u, 2953541915u, 1102577664u, 0, ILOGBF_TOLERANCE, 0},
+{922, 3125834184u, 896953754u, 3241148416u, 0, ILOGBF_TOLERANCE, 0},
+{923, 902318189u, 849277289u, 3248488448u, 0, ILOGBF_TOLERANCE, 0},
+{924, 835377647u, 3441354730u, 3252682752u, 0, ILOGBF_TOLERANCE, 0},
+{925, 2976308307u, 1286944060u, 3253207040u, 0, ILOGBF_TOLERANCE, 0},
+{926, 3213624815u, 2987148017u, 0u, 0, ILOGBF_TOLERANCE, 0},
+{927, 1120888322u, 1086209113u, 1086324736u, 0, ILOGBF_TOLERANCE, 0},
+{928, 1315217243u, 3396371713u, 1105723392u, 0, ILOGBF_TOLERANCE, 0},
+{929, 3137758475u, 1039403054u, 3239051264u, 0, ILOGBF_TOLERANCE, 0},
+{930, 1040617590u, 1034835971u, 3225419776u, 0, ILOGBF_TOLERANCE, 0},
+{931, 955384253u, 3344785562u, 3244294144u, 0, ILOGBF_TOLERANCE, 0},
+{932, 853063496u, 3317415965u, 3251634176u, 0, ILOGBF_TOLERANCE, 0},
+{933, 823111402u, 877253523u, 3253207040u, 0, ILOGBF_TOLERANCE, 0},
+{934, 3061417900u, 1172208065u, 3247964160u, 0, ILOGBF_TOLERANCE, 0},
+{935, 904255535u, 1019967545u, 3248488448u, 0, ILOGBF_TOLERANCE, 0},
+{936, 1022984119u, 3113891410u, 3233808384u, 0, ILOGBF_TOLERANCE, 0},
+{937, 997362368u, 3112875428u, 3239051264u, 0, ILOGBF_TOLERANCE, 0},
+{938, 900933520u, 1100589187u, 3248488448u, 0, ILOGBF_TOLERANCE, 0},
+{939, 1168623062u, 1143306482u, 1094713344u, 0, ILOGBF_TOLERANCE, 0},
+{940, 878737490u, 3269908326u, 3250061312u, 0, ILOGBF_TOLERANCE, 0},
+{941, 1039827284u, 1072928888u, 3229614080u, 0, ILOGBF_TOLERANCE, 0},
+{942, 1021564080u, 1064468397u, 3233808384u, 0, ILOGBF_TOLERANCE, 0},
+{943, 3458669745u, 3033299853u, 1105723392u, 0, ILOGBF_TOLERANCE, 0},
+{944, 3327516316u, 3405380971u, 1095761920u, 0, ILOGBF_TOLERANCE, 0},
+{945, 1040711112u, 3229444200u, 3225419776u, 0, ILOGBF_TOLERANCE, 0},
+{946, 1134528351u, 3365952513u, 1090519040u, 0, ILOGBF_TOLERANCE, 0},
+{947, 3039884464u, 1170612785u, 3249012736u, 0, ILOGBF_TOLERANCE, 0},
+{948, 3414352838u, 3350285760u, 1103101952u, 0, ILOGBF_TOLERANCE, 0},
+{949, 1133689539u, 1067460093u, 1090519040u, 0, ILOGBF_TOLERANCE, 0},
+{950, 3455688478u, 3333091960u, 1105199104u, 0, ILOGBF_TOLERANCE, 0},
+{951, 1137634874u, 1137038869u, 1090519040u, 0, ILOGBF_TOLERANCE, 0},
+{952, 3415502662u, 955510692u, 1103101952u, 0, ILOGBF_TOLERANCE, 0},
+{953, 954999730u, 969618597u, 3244294144u, 0, ILOGBF_TOLERANCE, 0},
+{954, 1066157309u, 3241712664u, 0u, 0, ILOGBF_TOLERANCE, 0},
+{955, 3436353675u, 1174967495u, 1104150528u, 0, ILOGBF_TOLERANCE, 0},
+{956, 940437609u, 860372396u, 3245342720u, 0, ILOGBF_TOLERANCE, 0},
+{957, 3108347547u, 3434003435u, 3243245568u, 0, ILOGBF_TOLERANCE, 0},
+{958, 3064200154u, 3158080507u, 3247439872u, 0, ILOGBF_TOLERANCE, 0},
+{959, 1023889593u, 2979304683u, 3231711232u, 0, ILOGBF_TOLERANCE, 0},
+{960, 3272661536u, 3461799138u, 1088421888u, 0, ILOGBF_TOLERANCE, 0},
+{961, 1170245333u, 1233406410u, 1094713344u, 0, ILOGBF_TOLERANCE, 0},
+{962, 1219052056u, 3369557946u, 1099956224u, 0, ILOGBF_TOLERANCE, 0},
+{963, 3318983619u, 3259663338u, 1094713344u, 0, ILOGBF_TOLERANCE, 0},
+{964, 3372118621u, 837597103u, 1099956224u, 0, ILOGBF_TOLERANCE, 0},
+{965, 3146190320u, 889646054u, 3238002688u, 0, ILOGBF_TOLERANCE, 0},
+{966, 1299683827u, 966031619u, 1104674816u, 0, ILOGBF_TOLERANCE, 0},
+{967, 3190796331u, 1320011850u, 3225419776u, 0, ILOGBF_TOLERANCE, 0},
+{968, 2965838479u, 805822032u, 3253731328u, 0, ILOGBF_TOLERANCE, 0},
+{969, 3086068902u, 3484245751u, 3246391296u, 0, ILOGBF_TOLERANCE, 0},
+{970, 3064155399u, 3176569312u, 3247439872u, 0, ILOGBF_TOLERANCE, 0},
+{971, 836858201u, 3132995403u, 3252682752u, 0, ILOGBF_TOLERANCE, 0},
+{972, 3040314717u, 1071290674u, 3249012736u, 0, ILOGBF_TOLERANCE, 0},
+{973, 3257224022u, 3361778245u, 1084227584u, 0, ILOGBF_TOLERANCE, 0},
+{974, 1229268598u, 1066965677u, 1100480512u, 0, ILOGBF_TOLERANCE, 0},
+{975, 3184078812u, 871003709u, 3229614080u, 0, ILOGBF_TOLERANCE, 0},
+{976, 871255076u, 3446104825u, 3250585600u, 0, ILOGBF_TOLERANCE, 0},
+{977, 1086717248u, 3423795374u, 1073741824u, 0, ILOGBF_TOLERANCE, 0},
+{978, 3434884607u, 3029593823u, 1104150528u, 0, ILOGBF_TOLERANCE, 0},
+{979, 3464955606u, 1017987696u, 1106247680u, 0, ILOGBF_TOLERANCE, 0},
+{980, 1025278524u, 3121856207u, 3231711232u, 0, ILOGBF_TOLERANCE, 0},
+{981, 1242829722u, 3233935671u, 1101529088u, 0, ILOGBF_TOLERANCE, 0},
+{982, 3075149137u, 1117325737u, 3246915584u, 0, ILOGBF_TOLERANCE, 0},
+{983, 1200927971u, 1317167489u, 1098907648u, 0, ILOGBF_TOLERANCE, 0},
+{984, 3326858092u, 3452602832u, 1095761920u, 0, ILOGBF_TOLERANCE, 0},
+{985, 2995203347u, 1021818696u, 3251634176u, 0, ILOGBF_TOLERANCE, 0},
+{986, 1246019790u, 850632217u, 1101529088u, 0, ILOGBF_TOLERANCE, 0},
+{987, 3184801644u, 1137974313u, 3229614080u, 0, ILOGBF_TOLERANCE, 0},
+{988, 1136052740u, 3244616020u, 1090519040u, 0, ILOGBF_TOLERANCE, 0},
+{989, 1069009211u, 3002507482u, 0u, 0, ILOGBF_TOLERANCE, 0},
+{990, 1015670780u, 1101217251u, 3233808384u, 0, ILOGBF_TOLERANCE, 0},
+{991, 1012543234u, 1116520440u, 3235905536u, 0, ILOGBF_TOLERANCE, 0},
+{992, 3316611992u, 3394732912u, 1094713344u, 0, ILOGBF_TOLERANCE, 0},
+{993, 3012101436u, 3307846870u, 3250585600u, 0, ILOGBF_TOLERANCE, 0},
+{994, 1087942795u, 3316660295u, 1073741824u, 0, ILOGBF_TOLERANCE, 0},
+{995, 3426365713u, 3069778532u, 1103626240u, 0, ILOGBF_TOLERANCE, 0},
+{996, 3066654389u, 3443934204u, 3247439872u, 0, ILOGBF_TOLERANCE, 0},
+{997, 3295326432u, 1313396175u, 1091567616u, 0, ILOGBF_TOLERANCE, 0},
+{998, 3318835308u, 3277583511u, 1094713344u, 0, ILOGBF_TOLERANCE, 0},
+{999, 3283555717u, 891875120u, 1090519040u, 0, ILOGBF_TOLERANCE, 0},
+{1000, 3381255420u, 3015406047u, 1101004800u, 0, ILOGBF_TOLERANCE, 0},
+{1001, 3040485181u, 3375450886u, 3249012736u, 0, ILOGBF_TOLERANCE, 0},
+{1002, 3388772093u, 1032597076u, 1101004800u, 0, ILOGBF_TOLERANCE, 0},
+{1003, 954670189u, 1144923689u, 3244294144u, 0, ILOGBF_TOLERANCE, 0},
+{1004, 1319200415u, 3387555900u, 1106247680u, 0, ILOGBF_TOLERANCE, 0},
+{1005, 1279324488u, 3228401212u, 1103626240u, 0, ILOGBF_TOLERANCE, 0},
+{1006, 3217795424u, 865577227u, 0u, 0, ILOGBF_TOLERANCE, 0},
+{1007, 3455131757u, 1260217257u, 1105199104u, 0, ILOGBF_TOLERANCE, 0},
+{1008, 2982636375u, 3162157233u, 3252682752u, 0, ILOGBF_TOLERANCE, 0},
+{1009, 1246947517u, 1087951909u, 1101529088u, 0, ILOGBF_TOLERANCE, 0},
+{1010, 3396723577u, 869285240u, 1101529088u, 0, ILOGBF_TOLERANCE, 0},
+{1011, 3433761025u, 3060143904u, 1104150528u, 0, ILOGBF_TOLERANCE, 0},
+{1012, 3201187455u, 900233172u, 3221225472u, 0, ILOGBF_TOLERANCE, 0},
+{1013, 1173247961u, 1191127979u, 1094713344u, 0, ILOGBF_TOLERANCE, 0},
+{1014, 3037297123u, 3346394818u, 3249012736u, 0, ILOGBF_TOLERANCE, 0},
+{1015, 3248534678u, 1323683800u, 1082130432u, 0, ILOGBF_TOLERANCE, 0},
+{1016, 3083019343u, 3033309444u, 3246391296u, 0, ILOGBF_TOLERANCE, 0},
+{1017, 3042018375u, 3203882372u, 3249012736u, 0, ILOGBF_TOLERANCE, 0},
+{1018, 1082862511u, 3032804719u, 1073741824u, 0, ILOGBF_TOLERANCE, 0},
+{1019, 3157626955u, 3483653298u, 3235905536u, 0, ILOGBF_TOLERANCE, 0},
+{1020, 1341821683u, 3003675365u, 1107296256u, 0, ILOGBF_TOLERANCE, 0},
+{1021, 881101379u, 1190838126u, 3249537024u, 0, ILOGBF_TOLERANCE, 0},
+{1022, 1079061705u, 2960507663u, 1065353216u, 0, ILOGBF_TOLERANCE, 0},
+{1023, 3182695954u, 3256861672u, 3229614080u, 0, ILOGBF_TOLERANCE, 0},
+{1024, 1105291533u, 3482971524u, 1082130432u, 0, ILOGBF_TOLERANCE, 0},
+{1025, 1016023520u, 3227712090u, 3233808384u, 0, ILOGBF_TOLERANCE, 0},
+{1026, 3370691006u, 1295870514u, 1099956224u, 0, ILOGBF_TOLERANCE, 0},
+{1027, 1156767169u, 1049756240u, 1092616192u, 0, ILOGBF_TOLERANCE, 0},
+{1028, 3077020499u, 894671462u, 3246915584u, 0, ILOGBF_TOLERANCE, 0},
+{1029, 1104284039u, 3040211914u, 1082130432u, 0, ILOGBF_TOLERANCE, 0},
+{1030, 3335212901u, 3486414589u, 1096810496u, 0, ILOGBF_TOLERANCE, 0},
+{1031, 1093697541u, 3193708441u, 1077936128u, 0, ILOGBF_TOLERANCE, 0},
+{1032, 3266691185u, 1160074593u, 1086324736u, 0, ILOGBF_TOLERANCE, 0},
+{1033, 3179003144u, 1108615803u, 3231711232u, 0, ILOGBF_TOLERANCE, 0},
+{1034, 1094115255u, 3008610212u, 1077936128u, 0, ILOGBF_TOLERANCE, 0},
+{1035, 2994604730u, 973792195u, 3252158464u, 0, ILOGBF_TOLERANCE, 0},
+{1036, 3424086808u, 3260140004u, 1103626240u, 0, ILOGBF_TOLERANCE, 0},
+{1037, 2957266025u, 917932067u, 3254255616u, 0, ILOGBF_TOLERANCE, 0},
+{1038, 3353608773u, 1134068114u, 1098907648u, 0, ILOGBF_TOLERANCE, 0},
+{1039, 2985838945u, 3118475644u, 3252682752u, 0, ILOGBF_TOLERANCE, 0},
+{1040, 973664327u, 1319516167u, 3241148416u, 0, ILOGBF_TOLERANCE, 0},
+{1041, 882878091u, 3136970767u, 3249537024u, 0, ILOGBF_TOLERANCE, 0},
+{1042, 1098662266u, 833740182u, 1077936128u, 0, ILOGBF_TOLERANCE, 0},
+{1043, 927582555u, 947955456u, 3246915584u, 0, ILOGBF_TOLERANCE, 0},
+{1044, 3111440310u, 3067634077u, 3243245568u, 0, ILOGBF_TOLERANCE, 0},
+{1045, 3476083859u, 966439623u, 1106771968u, 0, ILOGBF_TOLERANCE, 0},
+{1046, 3038754840u, 932009686u, 3249012736u, 0, ILOGBF_TOLERANCE, 0},
+{1047, 979878744u, 1232482646u, 3241148416u, 0, ILOGBF_TOLERANCE, 0},
+{1048, 3464546616u, 3205527253u, 1106247680u, 0, ILOGBF_TOLERANCE, 0},
+{1049, 1002542205u, 3152136093u, 3238002688u, 0, ILOGBF_TOLERANCE, 0},
+{1050, 3443552129u, 3165561391u, 1104674816u, 0, ILOGBF_TOLERANCE, 0},
+{1051, 1287620154u, 3119707283u, 1104150528u, 0, ILOGBF_TOLERANCE, 0},
+{1052, 820906845u, 1196920413u, 3253731328u, 0, ILOGBF_TOLERANCE, 0},
+{1053, 860108361u, 921064349u, 3251109888u, 0, ILOGBF_TOLERANCE, 0},
+{1054, 946058434u, 1249928879u, 3245342720u, 0, ILOGBF_TOLERANCE, 0},
+{1055, 3073260205u, 3093124531u, 3246915584u, 0, ILOGBF_TOLERANCE, 0},
+{1056, 1245702957u, 894348966u, 1101529088u, 0, ILOGBF_TOLERANCE, 0},
+{1057, 989655126u, 1308376568u, 3240099840u, 0, ILOGBF_TOLERANCE, 0},
+{1058, 1002715618u, 1191006977u, 3238002688u, 0, ILOGBF_TOLERANCE, 0},
+{1059, 3087802274u, 897541752u, 3245342720u, 0, ILOGBF_TOLERANCE, 0},
+{1060, 1000863905u, 1196831314u, 3238002688u, 0, ILOGBF_TOLERANCE, 0},
+{1061, 3415763001u, 3032518431u, 1103101952u, 0, ILOGBF_TOLERANCE, 0},
+{1062, 2979924820u, 1100234812u, 3252682752u, 0, ILOGBF_TOLERANCE, 0},
+{1063, 3283471961u, 1260093226u, 1090519040u, 0, ILOGBF_TOLERANCE, 0},
+{1064, 3311210827u, 1192192264u, 1093664768u, 0, ILOGBF_TOLERANCE, 0},
+{1065, 3026311911u, 2968974374u, 3250061312u, 0, ILOGBF_TOLERANCE, 0},
+{1066, 1198307901u, 1116328249u, 1097859072u, 0, ILOGBF_TOLERANCE, 0},
+{1067, 1288901567u, 1296370667u, 1104150528u, 0, ILOGBF_TOLERANCE, 0},
+{1068, 922255363u, 958305289u, 3247439872u, 0, ILOGBF_TOLERANCE, 0},
+{1069, 1113104661u, 944376032u, 1084227584u, 0, ILOGBF_TOLERANCE, 0},
+{1070, 1136714348u, 828849087u, 1090519040u, 0, ILOGBF_TOLERANCE, 0},
+{1071, 3002059872u, 1136817970u, 3251634176u, 0, ILOGBF_TOLERANCE, 0},
+{1072, 948856035u, 1015466475u, 3244294144u, 0, ILOGBF_TOLERANCE, 0},
+{1073, 1062512367u, 3229559531u, 3212836864u, 0, ILOGBF_TOLERANCE, 0},
+{1074, 3486907092u, 823220784u, 1107296256u, 0, ILOGBF_TOLERANCE, 0},
+{1075, 3015049792u, 3078555978u, 3250585600u, 0, ILOGBF_TOLERANCE, 0},
+{1076, 1162027071u, 3308983387u, 1093664768u, 0, ILOGBF_TOLERANCE, 0},
+{1077, 1034561811u, 1054043114u, 3229614080u, 0, ILOGBF_TOLERANCE, 0},
+{1078, 853827378u, 898656161u, 3251634176u, 0, ILOGBF_TOLERANCE, 0},
+{1079, 3271615417u, 3209997200u, 1088421888u, 0, ILOGBF_TOLERANCE, 0},
+{1080, 1042014529u, 1146708584u, 3225419776u, 0, ILOGBF_TOLERANCE, 0},
+{1081, 1177157787u, 3090208179u, 1095761920u, 0, ILOGBF_TOLERANCE, 0},
+{1082, 3196144817u, 1056118717u, 3221225472u, 0, ILOGBF_TOLERANCE, 0},
+{1083, 3432084552u, 2997091781u, 1104150528u, 0, ILOGBF_TOLERANCE, 0},
+{1084, 1309658335u, 1010219988u, 1105723392u, 0, ILOGBF_TOLERANCE, 0},
+{1085, 3004373345u, 873739132u, 3251109888u, 0, ILOGBF_TOLERANCE, 0},
+{1086, 2997667929u, 1038223245u, 3251634176u, 0, ILOGBF_TOLERANCE, 0},
+{1087, 1226494979u, 2991604792u, 1100480512u, 0, ILOGBF_TOLERANCE, 0},
+{1088, 3100289712u, 3456334210u, 3244294144u, 0, ILOGBF_TOLERANCE, 0},
+{1089, 3375507013u, 1306310823u, 1100480512u, 0, ILOGBF_TOLERANCE, 0},
+{1090, 3460699001u, 3096700943u, 1105723392u, 0, ILOGBF_TOLERANCE, 0},
+{1091, 3079231719u, 1044386263u, 3246391296u, 0, ILOGBF_TOLERANCE, 0},
+{1092, 3093951884u, 1014115231u, 3245342720u, 0, ILOGBF_TOLERANCE, 0},
+{1093, 3468023178u, 1209565017u, 1106247680u, 0, ILOGBF_TOLERANCE, 0},
+{1094, 3008182310u, 1258900986u, 3251109888u, 0, ILOGBF_TOLERANCE, 0},
+{1095, 1204196034u, 3298625731u, 1098907648u, 0, ILOGBF_TOLERANCE, 0},
+{1096, 3459877411u, 2960476959u, 1105723392u, 0, ILOGBF_TOLERANCE, 0},
+{1097, 909696559u, 1163075690u, 3247964160u, 0, ILOGBF_TOLERANCE, 0},
+{1098, 1161439847u, 943449277u, 1093664768u, 0, ILOGBF_TOLERANCE, 0},
+{1099, 908663107u, 939489763u, 3247964160u, 0, ILOGBF_TOLERANCE, 0},
+{1100, 1055319316u, 3261813492u, 3221225472u, 0, ILOGBF_TOLERANCE, 0},
+{1101, 1084378658u, 1009650785u, 1073741824u, 0, ILOGBF_TOLERANCE, 0},
+{1102, 3053887750u, 3341786453u, 3247964160u, 0, ILOGBF_TOLERANCE, 0},
+{1103, 3022828828u, 881335251u, 3250061312u, 0, ILOGBF_TOLERANCE, 0},
+{1104, 2995476576u, 3194911588u, 3251634176u, 0, ILOGBF_TOLERANCE, 0},
+{1105, 1226473697u, 821025132u, 1100480512u, 0, ILOGBF_TOLERANCE, 0},
+{1106, 1123114742u, 1229815537u, 1086324736u, 0, ILOGBF_TOLERANCE, 0},
+{1107, 1258114435u, 1291336083u, 1102053376u, 0, ILOGBF_TOLERANCE, 0},
+{1108, 2983818103u, 3015402015u, 3252682752u, 0, ILOGBF_TOLERANCE, 0},
+{1109, 3468040845u, 3066966245u, 1106247680u, 0, ILOGBF_TOLERANCE, 0},
+{1110, 1178825761u, 1113195286u, 1095761920u, 0, ILOGBF_TOLERANCE, 0},
+{1111, 3059266302u, 878503862u, 3247964160u, 0, ILOGBF_TOLERANCE, 0},
+{1112, 3223384012u, 1130486973u, 1065353216u, 0, ILOGBF_TOLERANCE, 0},
+{1113, 1019964626u, 1235133609u, 3233808384u, 0, ILOGBF_TOLERANCE, 0},
+{1114, 3445262427u, 3465211174u, 1104674816u, 0, ILOGBF_TOLERANCE, 0},
+{1115, 1125653081u, 1207799746u, 1088421888u, 0, ILOGBF_TOLERANCE, 0},
+{1116, 3337652712u, 3025581813u, 1096810496u, 0, ILOGBF_TOLERANCE, 0},
+{1117, 1184753508u, 3147374485u, 1096810496u, 0, ILOGBF_TOLERANCE, 0},
+{1118, 996404791u, 3353251979u, 3239051264u, 0, ILOGBF_TOLERANCE, 0},
+{1119, 1188439315u, 1113484271u, 1096810496u, 0, ILOGBF_TOLERANCE, 0},
+{1120, 906557513u, 3006513432u, 3247964160u, 0, ILOGBF_TOLERANCE, 0},
+{1121, 916831283u, 999465787u, 3247439872u, 0, ILOGBF_TOLERANCE, 0},
+{1122, 996786317u, 3179221951u, 3239051264u, 0, ILOGBF_TOLERANCE, 0},
+{1123, 3461635065u, 1004690387u, 1105723392u, 0, ILOGBF_TOLERANCE, 0},
+{1124, 1188167943u, 1200744896u, 1096810496u, 0, ILOGBF_TOLERANCE, 0},
+{1125, 3036502395u, 1172597364u, 3249537024u, 0, ILOGBF_TOLERANCE, 0},
+{1126, 891257783u, 1267560050u, 3249012736u, 0, ILOGBF_TOLERANCE, 0},
+{1127, 3290079438u, 846519377u, 1091567616u, 0, ILOGBF_TOLERANCE, 0},
+{1128, 3350690327u, 2967953392u, 1098907648u, 0, ILOGBF_TOLERANCE, 0},
+{1129, 1102061604u, 3424449935u, 1082130432u, 0, ILOGBF_TOLERANCE, 0},
+{1130, 1282351521u, 3039376424u, 1103626240u, 0, ILOGBF_TOLERANCE, 0},
+{1131, 3458861065u, 3392466405u, 1105723392u, 0, ILOGBF_TOLERANCE, 0},
+{1132, 3095256878u, 1023623326u, 3245342720u, 0, ILOGBF_TOLERANCE, 0},
+{1133, 3163373610u, 843150426u, 3233808384u, 0, ILOGBF_TOLERANCE, 0},
+{1134, 3228793330u, 855146890u, 1065353216u, 0, ILOGBF_TOLERANCE, 0},
+{1135, 3422194733u, 893873945u, 1103101952u, 0, ILOGBF_TOLERANCE, 0},
+{1136, 3083885296u, 974543672u, 3246391296u, 0, ILOGBF_TOLERANCE, 0},
+{1137, 1261940623u, 3402349985u, 1102577664u, 0, ILOGBF_TOLERANCE, 0},
+{1138, 825039660u, 3426717554u, 3253207040u, 0, ILOGBF_TOLERANCE, 0},
+{1139, 3400603081u, 3234396843u, 1102053376u, 0, ILOGBF_TOLERANCE, 0},
+{1140, 1219411812u, 2961857939u, 1099956224u, 0, ILOGBF_TOLERANCE, 0},
+{1141, 3094833770u, 805351108u, 3245342720u, 0, ILOGBF_TOLERANCE, 0},
+{1142, 3139250800u, 3079109479u, 3239051264u, 0, ILOGBF_TOLERANCE, 0},
+{1143, 886201503u, 3272760705u, 3249537024u, 0, ILOGBF_TOLERANCE, 0},
+{1144, 3297366026u, 1089966380u, 1092616192u, 0, ILOGBF_TOLERANCE, 0},
+{1145, 1218488455u, 3309646450u, 1099956224u, 0, ILOGBF_TOLERANCE, 0},
+{1146, 3040358923u, 3093401553u, 3249012736u, 0, ILOGBF_TOLERANCE, 0},
+{1147, 862346861u, 3411853707u, 3251109888u, 0, ILOGBF_TOLERANCE, 0},
+{1148, 1283938137u, 1196383822u, 1104150528u, 0, ILOGBF_TOLERANCE, 0},
+{1149, 3182551696u, 3029982441u, 3229614080u, 0, ILOGBF_TOLERANCE, 0},
+{1150, 1317098613u, 949986176u, 1106247680u, 0, ILOGBF_TOLERANCE, 0},
+{1151, 3116209179u, 3303588342u, 3242196992u, 0, ILOGBF_TOLERANCE, 0},
+{1152, 3431703657u, 3014443710u, 1104150528u, 0, ILOGBF_TOLERANCE, 0},
+{1153, 3239728775u, 927815421u, 1077936128u, 0, ILOGBF_TOLERANCE, 0},
+{1154, 3207141672u, 933456504u, 3212836864u, 0, ILOGBF_TOLERANCE, 0},
+{1155, 3154378805u, 905462392u, 3235905536u, 0, ILOGBF_TOLERANCE, 0},
+{1156, 3069658155u, 1041452042u, 3247439872u, 0, ILOGBF_TOLERANCE, 0},
+{1157, 3313160088u, 2964063309u, 1093664768u, 0, ILOGBF_TOLERANCE, 0},
+{1158, 3207056527u, 3384206601u, 3212836864u, 0, ILOGBF_TOLERANCE, 0},
+{1159, 1284174954u, 3436881197u, 1104150528u, 0, ILOGBF_TOLERANCE, 0},
+{1160, 3156081645u, 3308839704u, 3235905536u, 0, ILOGBF_TOLERANCE, 0},
+{1161, 1063693032u, 976661408u, 3212836864u, 0, ILOGBF_TOLERANCE, 0},
+{1162, 3036026175u, 1251203998u, 3249537024u, 0, ILOGBF_TOLERANCE, 0},
+{1163, 1102631663u, 3396951425u, 1082130432u, 0, ILOGBF_TOLERANCE, 0},
+{1164, 968803479u, 992989712u, 3242196992u, 0, ILOGBF_TOLERANCE, 0},
+{1165, 3273080388u, 3109405906u, 1088421888u, 0, ILOGBF_TOLERANCE, 0},
+{1166, 1172529774u, 3294550127u, 1094713344u, 0, ILOGBF_TOLERANCE, 0},
+{1167, 1306695905u, 1292690378u, 1105199104u, 0, ILOGBF_TOLERANCE, 0},
+{1168, 1003649752u, 1218792138u, 3238002688u, 0, ILOGBF_TOLERANCE, 0},
+{1169, 1078478376u, 1326246424u, 1065353216u, 0, ILOGBF_TOLERANCE, 0},
+{1170, 3158855023u, 3151283866u, 3235905536u, 0, ILOGBF_TOLERANCE, 0},
+{1171, 1165177679u, 3276237026u, 1093664768u, 0, ILOGBF_TOLERANCE, 0},
+{1172, 870472127u, 3332532333u, 3250585600u, 0, ILOGBF_TOLERANCE, 0},
+{1173, 3403009513u, 3381966453u, 1102053376u, 0, ILOGBF_TOLERANCE, 0},
+{1174, 816825508u, 3032174124u, 3253731328u, 0, ILOGBF_TOLERANCE, 0},
+{1175, 952348506u, 3377573987u, 3244294144u, 0, ILOGBF_TOLERANCE, 0},
+{1176, 839544701u, 3419900937u, 3252158464u, 0, ILOGBF_TOLERANCE, 0},
+{1177, 2967454456u, 3313359047u, 3253731328u, 0, ILOGBF_TOLERANCE, 0},
+{1178, 1222777442u, 1125769920u, 1099956224u, 0, ILOGBF_TOLERANCE, 0},
+{1179, 1325324763u, 978336043u, 1106247680u, 0, ILOGBF_TOLERANCE, 0},
+{1180, 3363524213u, 3202991311u, 1099431936u, 0, ILOGBF_TOLERANCE, 0},
+{1181, 1158950321u, 1073578913u, 1093664768u, 0, ILOGBF_TOLERANCE, 0},
+{1182, 903129873u, 3416864271u, 3248488448u, 0, ILOGBF_TOLERANCE, 0},
+{1183, 2997685349u, 1123653663u, 3251634176u, 0, ILOGBF_TOLERANCE, 0},
+{1184, 3078339944u, 988173985u, 3246915584u, 0, ILOGBF_TOLERANCE, 0},
+{1185, 1208345407u, 1254181270u, 1099431936u, 0, ILOGBF_TOLERANCE, 0},
+{1186, 3003262042u, 1327277116u, 3251109888u, 0, ILOGBF_TOLERANCE, 0},
+{1187, 1258634105u, 1247426200u, 1102577664u, 0, ILOGBF_TOLERANCE, 0},
+{1188, 1248478509u, 1287895126u, 1101529088u, 0, ILOGBF_TOLERANCE, 0},
+{1189, 1153863988u, 3430539165u, 1092616192u, 0, ILOGBF_TOLERANCE, 0},
+{1190, 1235620969u, 866627358u, 1101004800u, 0, ILOGBF_TOLERANCE, 0},
+{1191, 1097120930u, 3221726305u, 1077936128u, 0, ILOGBF_TOLERANCE, 0},
+{1192, 3469778622u, 1200179013u, 1106247680u, 0, ILOGBF_TOLERANCE, 0},
+{1193, 1147712200u, 931865525u, 1091567616u, 0, ILOGBF_TOLERANCE, 0},
+{1194, 812694172u, 1136276190u, 3254255616u, 0, ILOGBF_TOLERANCE, 0},
+{1195, 862266739u, 3139447362u, 3251109888u, 0, ILOGBF_TOLERANCE, 0},
+{1196, 1124721745u, 3058969650u, 1088421888u, 0, ILOGBF_TOLERANCE, 0},
+{1197, 3261744304u, 1043806501u, 1084227584u, 0, ILOGBF_TOLERANCE, 0},
+{1198, 832324055u, 2954061156u, 3252682752u, 0, ILOGBF_TOLERANCE, 0},
+{1199, 805759679u, 903848557u, 3254255616u, 0, ILOGBF_TOLERANCE, 0},
+{1200, 2983396015u, 872299138u, 3252682752u, 0, ILOGBF_TOLERANCE, 0},
+{1201, 1064922416u, 1320485628u, 3212836864u, 0, ILOGBF_TOLERANCE, 0},
+{1202, 868114980u, 3213276361u, 3250585600u, 0, ILOGBF_TOLERANCE, 0},
+{1203, 3303160152u, 3075455322u, 1092616192u, 0, ILOGBF_TOLERANCE, 0},
+{1204, 1315090496u, 3269683237u, 1105723392u, 0, ILOGBF_TOLERANCE, 0},
+{1205, 850876090u, 3365795667u, 3251634176u, 0, ILOGBF_TOLERANCE, 0},
+{1206, 3230403187u, 1322841992u, 1073741824u, 0, ILOGBF_TOLERANCE, 0},
+{1207, 1335399673u, 974138676u, 1107296256u, 0, ILOGBF_TOLERANCE, 0},
+{1208, 1072458508u, 3372833993u, 0u, 0, ILOGBF_TOLERANCE, 0},
+{1209, 3303015249u, 3015039539u, 1092616192u, 0, ILOGBF_TOLERANCE, 0},
+{1210, 3252139741u, 1059615003u, 1082130432u, 0, ILOGBF_TOLERANCE, 0},
+{1211, 3468519966u, 3113982619u, 1106247680u, 0, ILOGBF_TOLERANCE, 0},
+{1212, 1006231203u, 897530770u, 3238002688u, 0, ILOGBF_TOLERANCE, 0},
+{1213, 951554138u, 1001144381u, 3244294144u, 0, ILOGBF_TOLERANCE, 0},
+{1214, 942046828u, 986341002u, 3245342720u, 0, ILOGBF_TOLERANCE, 0},
+{1215, 2968517146u, 951832467u, 3253731328u, 0, ILOGBF_TOLERANCE, 0},
+{1216, 3319723279u, 3414482416u, 1094713344u, 0, ILOGBF_TOLERANCE, 0},
+{1217, 3255104167u, 928827688u, 1084227584u, 0, ILOGBF_TOLERANCE, 0},
+{1218, 1155477903u, 3104812800u, 1092616192u, 0, ILOGBF_TOLERANCE, 0},
+{1219, 3273889176u, 980486479u, 1088421888u, 0, ILOGBF_TOLERANCE, 0},
+{1220, 3237813668u, 3441016803u, 1073741824u, 0, ILOGBF_TOLERANCE, 0},
+{1221, 1228207362u, 2985476579u, 1100480512u, 0, ILOGBF_TOLERANCE, 0},
+{1222, 975349337u, 1311932596u, 3241148416u, 0, ILOGBF_TOLERANCE, 0},
+{1223, 2982583196u, 3132904446u, 3252682752u, 0, ILOGBF_TOLERANCE, 0},
+{1224, 1290175785u, 3008182462u, 1104150528u, 0, ILOGBF_TOLERANCE, 0},
+{1225, 981908840u, 3314038398u, 3240099840u, 0, ILOGBF_TOLERANCE, 0},
+{1226, 941187647u, 1107765599u, 3245342720u, 0, ILOGBF_TOLERANCE, 0},
+{1227, 1214223128u, 3225536822u, 1099431936u, 0, ILOGBF_TOLERANCE, 0},
+{1228, 3422922584u, 1086391131u, 1103626240u, 0, ILOGBF_TOLERANCE, 0},
+{1229, 1315857601u, 3487600045u, 1105723392u, 0, ILOGBF_TOLERANCE, 0},
+{1230, 3453226030u, 3233768835u, 1105199104u, 0, ILOGBF_TOLERANCE, 0},
+{1231, 1078359574u, 3199175230u, 1065353216u, 0, ILOGBF_TOLERANCE, 0},
+{1232, 1029557624u, 3302959071u, 3231711232u, 0, ILOGBF_TOLERANCE, 0},
+{1233, 1207675424u, 3042692550u, 1098907648u, 0, ILOGBF_TOLERANCE, 0},
+{1234, 1028355074u, 3442294040u, 3231711232u, 0, ILOGBF_TOLERANCE, 0},
+{1235, 3119299090u, 1187096397u, 3242196992u, 0, ILOGBF_TOLERANCE, 0},
+{1236, 1248421894u, 3367769132u, 1101529088u, 0, ILOGBF_TOLERANCE, 0},
+{1237, 3353251994u, 1095517730u, 1098907648u, 0, ILOGBF_TOLERANCE, 0},
+{1238, 876926659u, 3288089977u, 3250061312u, 0, ILOGBF_TOLERANCE, 0},
+{1239, 1076752219u, 876236939u, 1065353216u, 0, ILOGBF_TOLERANCE, 0},
+{1240, 3388531942u, 2988520062u, 1101004800u, 0, ILOGBF_TOLERANCE, 0},
+{1241, 1273395082u, 3031189261u, 1103101952u, 0, ILOGBF_TOLERANCE, 0},
+{1242, 3385588183u, 3258252464u, 1101004800u, 0, ILOGBF_TOLERANCE, 0},
+{1243, 862047095u, 829323655u, 3251109888u, 0, ILOGBF_TOLERANCE, 0},
+{1244, 3192315328u, 3289489214u, 3225419776u, 0, ILOGBF_TOLERANCE, 0},
+{1245, 3441804648u, 3274638356u, 1104674816u, 0, ILOGBF_TOLERANCE, 0},
+{1246, 837368567u, 3228474927u, 3252682752u, 0, ILOGBF_TOLERANCE, 0},
+{1247, 3392827417u, 1277961150u, 1101529088u, 0, ILOGBF_TOLERANCE, 0},
+{1248, 1161241793u, 1328003707u, 1093664768u, 0, ILOGBF_TOLERANCE, 0},
+{1249, 856495732u, 3123041418u, 3251109888u, 0, ILOGBF_TOLERANCE, 0},
+{1250, 3034494183u, 3041579130u, 3249537024u, 0, ILOGBF_TOLERANCE, 0},
+{1251, 1171318485u, 3374409104u, 1094713344u, 0, ILOGBF_TOLERANCE, 0},
+{1252, 3047748143u, 831102792u, 3248488448u, 0, ILOGBF_TOLERANCE, 0},
+{1253, 1001216371u, 3052357038u, 3238002688u, 0, ILOGBF_TOLERANCE, 0},
+{1254, 2999541351u, 3085461799u, 3251634176u, 0, ILOGBF_TOLERANCE, 0},
+{1255, 912515889u, 1074635609u, 3247964160u, 0, ILOGBF_TOLERANCE, 0},
+{1256, 3391452505u, 897989232u, 1101529088u, 0, ILOGBF_TOLERANCE, 0},
+{1257, 3249603369u, 3147662248u, 1082130432u, 0, ILOGBF_TOLERANCE, 0},
+{1258, 1220264047u, 2960450369u, 1099956224u, 0, ILOGBF_TOLERANCE, 0},
+{1259, 3169816394u, 988430929u, 3233808384u, 0, ILOGBF_TOLERANCE, 0},
+{1260, 3098997418u, 3002162688u, 3244294144u, 0, ILOGBF_TOLERANCE, 0},
+{1261, 3282212423u, 3174079140u, 1090519040u, 0, ILOGBF_TOLERANCE, 0},
+{1262, 3352293320u, 3247843425u, 1098907648u, 0, ILOGBF_TOLERANCE, 0},
+{1263, 3296358441u, 875645354u, 1091567616u, 0, ILOGBF_TOLERANCE, 0},
+{1264, 1197828352u, 3245614728u, 1097859072u, 0, ILOGBF_TOLERANCE, 0},
+{1265, 3340510371u, 914930263u, 1097859072u, 0, ILOGBF_TOLERANCE, 0},
+{1266, 1127109339u, 3368125489u, 1088421888u, 0, ILOGBF_TOLERANCE, 0},
+{1267, 816173492u, 1083268662u, 3253731328u, 0, ILOGBF_TOLERANCE, 0},
+{1268, 909467381u, 1232375752u, 3247964160u, 0, ILOGBF_TOLERANCE, 0},
+{1269, 1200599955u, 2981200675u, 1098907648u, 0, ILOGBF_TOLERANCE, 0},
+{1270, 962230977u, 2988248037u, 3243245568u, 0, ILOGBF_TOLERANCE, 0},
+{1271, 2996667337u, 1068572835u, 3251634176u, 0, ILOGBF_TOLERANCE, 0},
+{1272, 3192887808u, 3191848339u, 3225419776u, 0, ILOGBF_TOLERANCE, 0},
+{1273, 3237183876u, 3179379969u, 1073741824u, 0, ILOGBF_TOLERANCE, 0},
+{1274, 939285924u, 3056079386u, 3246391296u, 0, ILOGBF_TOLERANCE, 0},
+{1275, 944050180u, 3452557879u, 3245342720u, 0, ILOGBF_TOLERANCE, 0},
+{1276, 3058135703u, 3090284601u, 3247964160u, 0, ILOGBF_TOLERANCE, 0},
+{1277, 3480592662u, 3261728191u, 1106771968u, 0, ILOGBF_TOLERANCE, 0},
+{1278, 3061939312u, 3274418540u, 3247439872u, 0, ILOGBF_TOLERANCE, 0},
+{1279, 1003299981u, 853295521u, 3238002688u, 0, ILOGBF_TOLERANCE, 0},
+{1280, 1155775526u, 1255814444u, 1092616192u, 0, ILOGBF_TOLERANCE, 0},
+{1281, 1234491880u, 3408568717u, 1101004800u, 0, ILOGBF_TOLERANCE, 0}
+
+// AUTOMATICALLY GENERATED VECTORS STOP
+
+};
+
+#endif // CYGONCE_LIBM_ILOGBF_H multiple inclusion protection
+
+// EOF ilogbf.h
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/isnanf.c b/ecos/packages/language/c/libm/current/tests/vectors/isnanf.c
new file mode 100644
index 0000000..6f5e63e
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/isnanf.c
@@ -0,0 +1,115 @@
+//===========================================================================
+//
+// isnanf.c
+//
+// Test of isnanf() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// Declarations for test system:
+//
+// TESTCASE_TYPE=CYG_TEST_MODULE
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include <cyg/infra/testcase.h> // Test infrastructure
+#include <math.h> // Header for this package
+#include <sys/ieeefp.h> // Cyg_libm_ieee_float_shape_type
+#include "vectors/vector_support_float.h"// extra support for math tests
+
+#include "vectors/isnanf.h"
+
+// FUNCTIONS
+
+static void
+test( CYG_ADDRWORD data )
+{
+ cyg_ucount32 vec_size;
+ cyg_bool ret;
+
+ vec_size = sizeof(isnanf_vec) / sizeof(Cyg_libm_test_float_vec_t);
+ ret = doTestVecFloat( (CYG_ADDRWORD) &isnanf, CYG_LIBM_TEST_VEC_FLOAT,
+ CYG_LIBM_TEST_VEC_NONE, CYG_LIBM_TEST_VEC_INT,
+ &isnanf_vec[0], vec_size );
+
+ if (ret==true)
+ {
+ CYG_TEST_PASS("isnanf() is stable");
+ } // if
+ else
+ {
+ CYG_TEST_FAIL("isnanf() failed tests");
+ } // else
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for Math "
+ "library isnanf() function");
+} // test()
+
+
+int
+main(int argc, char *argv[])
+{
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for Math library "
+ "isnanf() function");
+
+ START_TEST( test );
+
+ CYG_TEST_PASS_FINISH("Testing is not applicable to this configuration");
+
+} // main()
+
+
+// EOF isnanf.c
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/isnanf.h b/ecos/packages/language/c/libm/current/tests/vectors/isnanf.h
new file mode 100644
index 0000000..2874ffd
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/isnanf.h
@@ -0,0 +1,1401 @@
+#ifndef CYGONCE_LIBM_ISNANF_H
+#define CYGONCE_LIBM_ISNANF_H
+//===========================================================================
+//
+// isnanf.h
+//
+// Test vectors for testing of isnanf() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage: #include "vectors/isnanf.h"
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include "vectors/vector_support_float.h"// extra support for math tests
+
+#define ISNANF_TOLERANCE 1.0E-04
+
+static const Cyg_libm_test_float_vec_t isnanf_vec[] = {
+
+// AUTOMATICALLY GENERATED VECTORS START
+
+{0, 3214514586u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1, 3214430700u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{2, 3214346813u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{3, 3214262927u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{4, 3214179041u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{5, 3214095155u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{6, 3214011269u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{7, 3213927383u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{8, 3213843497u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{9, 3213759611u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{10, 3213675725u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{11, 3213591839u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{12, 3213507953u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{13, 3213424067u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{14, 3213340180u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{15, 3213256294u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{16, 3213172408u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{17, 3213088522u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{18, 3213004636u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{19, 3212920750u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{20, 3212836864u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{21, 3212669092u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{22, 3212501320u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{23, 3212333548u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{24, 3212165775u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{25, 3211998003u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{26, 3211830231u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{27, 3211662459u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{28, 3211494687u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{29, 3211326915u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{30, 3211159142u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{31, 3210991370u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{32, 3210823598u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{33, 3210655826u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{34, 3210488054u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{35, 3210320282u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{36, 3210152509u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{37, 3209984737u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{38, 3209816965u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{39, 3209649193u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{40, 3209481421u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{41, 3209313649u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{42, 3209145876u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{43, 3208978104u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{44, 3208810332u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{45, 3208642560u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{46, 3208474788u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{47, 3208307016u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{48, 3208139244u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{49, 3207971471u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{50, 3207803699u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{51, 3207635927u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{52, 3207468155u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{53, 3207300383u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{54, 3207132611u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{55, 3206964838u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{56, 3206797066u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{57, 3206629294u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{58, 3206461522u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{59, 3206293750u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{60, 3206125978u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{61, 3205958205u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{62, 3205790433u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{63, 3205622661u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{64, 3205454889u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{65, 3205287117u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{66, 3205119345u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{67, 3204951572u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{68, 3204783800u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{69, 3204616028u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{70, 3204448256u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{71, 3204112712u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{72, 3203777167u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{73, 3203441623u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{74, 3203106079u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{75, 3202770534u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{76, 3202434990u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{77, 3202099446u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{78, 3201763901u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{79, 3201428357u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{80, 3201092813u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{81, 3200757268u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{82, 3200421724u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{83, 3200086180u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{84, 3199750636u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{85, 3199415091u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{86, 3199079547u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{87, 3198744003u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{88, 3198408458u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{89, 3198072914u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{90, 3197737370u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{91, 3197401825u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{92, 3197066281u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{93, 3196730737u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{94, 3196395192u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{95, 3196059648u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{96, 3195388559u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{97, 3194717471u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{98, 3194046382u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{99, 3193375293u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{100, 3192704205u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{101, 3192033116u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{102, 3191362028u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{103, 3190690939u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{104, 3190019850u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{105, 3189348762u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{106, 3188677673u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{107, 3188006584u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{108, 3186999951u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{109, 3185657774u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{110, 3184315597u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{111, 3182973420u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{112, 3181631242u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{113, 3180289065u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{114, 3178611343u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{115, 3175926989u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{116, 3173242634u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{117, 3170222735u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{118, 3164854026u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{119, 3156465418u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{120, 1008981770u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{121, 1017370378u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{122, 1022739087u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{123, 1025758986u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{124, 1028443341u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{125, 1031127695u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{126, 1032805417u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{127, 1034147594u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{128, 1035489772u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{129, 1036831949u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{130, 1038174126u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{131, 1039516303u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{132, 1040522936u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{133, 1041194025u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{134, 1041865114u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{135, 1042536202u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{136, 1043207291u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{137, 1043878380u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{138, 1044549468u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{139, 1045220557u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{140, 1045891645u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{141, 1046562734u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{142, 1047233823u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{143, 1047904911u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{144, 1048576000u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{145, 1048911544u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{146, 1049247089u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{147, 1049582633u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{148, 1049918177u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{149, 1050253722u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{150, 1050589266u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{151, 1050924810u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{152, 1051260355u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{153, 1051595899u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{154, 1051931443u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{155, 1052266988u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{156, 1052602532u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{157, 1052938076u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{158, 1053273620u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{159, 1053609165u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{160, 1053944709u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{161, 1054280253u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{162, 1054615798u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{163, 1054951342u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{164, 1055286886u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{165, 1055622431u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{166, 1055957975u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{167, 1056293519u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{168, 1056629064u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{169, 1056964608u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{170, 1057132380u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{171, 1057300152u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{172, 1057467924u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{173, 1057635697u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{174, 1057803469u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{175, 1057971241u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{176, 1058139013u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{177, 1058306785u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{178, 1058474557u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{179, 1058642330u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{180, 1058810102u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{181, 1058977874u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{182, 1059145646u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{183, 1059313418u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{184, 1059481190u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{185, 1059648963u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{186, 1059816735u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{187, 1059984507u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{188, 1060152279u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{189, 1060320051u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{190, 1060487823u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{191, 1060655596u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{192, 1060823368u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{193, 1060991140u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{194, 1061158912u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{195, 1061326684u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{196, 1061494456u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{197, 1061662228u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{198, 1061830001u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{199, 1061997773u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{200, 1062165545u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{201, 1062333317u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{202, 1062501089u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{203, 1062668861u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{204, 1062836634u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{205, 1063004406u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{206, 1063172178u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{207, 1063339950u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{208, 1063507722u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{209, 1063675494u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{210, 1063843267u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{211, 1064011039u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{212, 1064178811u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{213, 1064346583u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{214, 1064514355u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{215, 1064682127u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{216, 1064849900u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{217, 1065017672u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{218, 1065185444u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{219, 1065353216u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{220, 1065437102u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{221, 1065520988u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{222, 1065604874u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{223, 1065688760u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{224, 1065772646u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{225, 1065856532u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{226, 1065940419u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{227, 1066024305u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{228, 1066108191u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{229, 1066192077u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{230, 1066275963u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{231, 1066359849u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{232, 1066443735u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{233, 1066527621u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{234, 1066611507u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{235, 1066695393u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{236, 1066779279u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{237, 1066863165u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{238, 1066947052u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{239, 3234402267u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{240, 3231108068u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{241, 3226013659u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{242, 3217625051u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{243, 0u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{244, 1070141403u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{245, 1078530011u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{246, 1083624420u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{247, 3253731328u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{248, 3252840038u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{249, 3251948749u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{250, 3251057459u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{251, 3250166170u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{252, 3249274880u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{253, 3248383590u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{254, 3247492301u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{255, 3246601011u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{256, 3245028147u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{257, 3243245568u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{258, 3241462989u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{259, 3239680410u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{260, 3237792973u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{261, 3234227814u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{262, 3230662656u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{263, 3224580915u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{264, 3213675725u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{265, 1058642330u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{266, 1075000115u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{267, 1082130432u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{268, 1085695590u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{269, 1089260749u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{270, 1091672474u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{271, 1093455053u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{272, 1095237632u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{273, 1097020211u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{274, 1098802790u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{275, 1099746509u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{276, 1100637798u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{277, 1101529088u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{278, 1102420378u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{279, 1103311667u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{280, 1104202957u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{281, 1105094246u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{282, 1105985536u, 0u, 0u, 0, ISNANF_TOLERANCE, 0},
+{283, 1107800421u, 1203999711u, 0u, 0, ISNANF_TOLERANCE, 0},
+{284, 3196650934u, 896005582u, 0u, 0, ISNANF_TOLERANCE, 0},
+{285, 3368700125u, 3308232444u, 0u, 0, ISNANF_TOLERANCE, 0},
+{286, 1224242132u, 3061363425u, 0u, 0, ISNANF_TOLERANCE, 0},
+{287, 3221027117u, 1284201705u, 0u, 0, ISNANF_TOLERANCE, 0},
+{288, 1198712763u, 919636942u, 0u, 0, ISNANF_TOLERANCE, 0},
+{289, 867432512u, 3067736756u, 0u, 0, ISNANF_TOLERANCE, 0},
+{290, 3159309973u, 852521077u, 0u, 0, ISNANF_TOLERANCE, 0},
+{291, 954173073u, 850531830u, 0u, 0, ISNANF_TOLERANCE, 0},
+{292, 3090780435u, 1035260608u, 0u, 0, ISNANF_TOLERANCE, 0},
+{293, 966554515u, 3234538174u, 0u, 0, ISNANF_TOLERANCE, 0},
+{294, 1312607135u, 1194999402u, 0u, 0, ISNANF_TOLERANCE, 0},
+{295, 1166191415u, 1018661564u, 0u, 0, ISNANF_TOLERANCE, 0},
+{296, 3111900019u, 1130472166u, 0u, 0, ISNANF_TOLERANCE, 0},
+{297, 1234419246u, 2984575812u, 0u, 0, ISNANF_TOLERANCE, 0},
+{298, 1302107128u, 3370647675u, 0u, 0, ISNANF_TOLERANCE, 0},
+{299, 1052801068u, 3039122570u, 0u, 0, ISNANF_TOLERANCE, 0},
+{300, 1060849628u, 3081357692u, 0u, 0, ISNANF_TOLERANCE, 0},
+{301, 3010214568u, 3446630737u, 0u, 0, ISNANF_TOLERANCE, 0},
+{302, 3484320003u, 3033957825u, 0u, 0, ISNANF_TOLERANCE, 0},
+{303, 3181522772u, 3305392896u, 0u, 0, ISNANF_TOLERANCE, 0},
+{304, 882596369u, 1256676590u, 0u, 0, ISNANF_TOLERANCE, 0},
+{305, 1167223673u, 846102364u, 0u, 0, ISNANF_TOLERANCE, 0},
+{306, 968192794u, 878547432u, 0u, 0, ISNANF_TOLERANCE, 0},
+{307, 3122346862u, 1111584337u, 0u, 0, ISNANF_TOLERANCE, 0},
+{308, 1052361612u, 1280025214u, 0u, 0, ISNANF_TOLERANCE, 0},
+{309, 906701409u, 2968301825u, 0u, 0, ISNANF_TOLERANCE, 0},
+{310, 3471653172u, 1154138102u, 0u, 0, ISNANF_TOLERANCE, 0},
+{311, 843024648u, 3166833184u, 0u, 0, ISNANF_TOLERANCE, 0},
+{312, 3231467496u, 934336592u, 0u, 0, ISNANF_TOLERANCE, 0},
+{313, 1341514497u, 3466051188u, 0u, 0, ISNANF_TOLERANCE, 0},
+{314, 1272351391u, 3373485062u, 0u, 0, ISNANF_TOLERANCE, 0},
+{315, 3319724992u, 3354615790u, 0u, 0, ISNANF_TOLERANCE, 0},
+{316, 3013402113u, 3266377514u, 0u, 0, ISNANF_TOLERANCE, 0},
+{317, 917622040u, 1334966485u, 0u, 0, ISNANF_TOLERANCE, 0},
+{318, 940236348u, 3304072663u, 0u, 0, ISNANF_TOLERANCE, 0},
+{319, 2963234879u, 977028681u, 0u, 0, ISNANF_TOLERANCE, 0},
+{320, 3251541546u, 3174764041u, 0u, 0, ISNANF_TOLERANCE, 0},
+{321, 3099843889u, 3355962282u, 0u, 0, ISNANF_TOLERANCE, 0},
+{322, 3110358400u, 851145088u, 0u, 0, ISNANF_TOLERANCE, 0},
+{323, 3371863479u, 1014861921u, 0u, 0, ISNANF_TOLERANCE, 0},
+{324, 3204069187u, 966573255u, 0u, 0, ISNANF_TOLERANCE, 0},
+{325, 1306460502u, 903489435u, 0u, 0, ISNANF_TOLERANCE, 0},
+{326, 1197542187u, 3024598921u, 0u, 0, ISNANF_TOLERANCE, 0},
+{327, 922888249u, 1139392309u, 0u, 0, ISNANF_TOLERANCE, 0},
+{328, 1184239996u, 3224098462u, 0u, 0, ISNANF_TOLERANCE, 0},
+{329, 1252490238u, 1173619825u, 0u, 0, ISNANF_TOLERANCE, 0},
+{330, 1001673627u, 3462631271u, 0u, 0, ISNANF_TOLERANCE, 0},
+{331, 976098044u, 1151967422u, 0u, 0, ISNANF_TOLERANCE, 0},
+{332, 941796645u, 886451963u, 0u, 0, ISNANF_TOLERANCE, 0},
+{333, 3006797923u, 1103058486u, 0u, 0, ISNANF_TOLERANCE, 0},
+{334, 855756273u, 3217259624u, 0u, 0, ISNANF_TOLERANCE, 0},
+{335, 3287199470u, 854245542u, 0u, 0, ISNANF_TOLERANCE, 0},
+{336, 893184329u, 1243067084u, 0u, 0, ISNANF_TOLERANCE, 0},
+{337, 1143233714u, 1007268238u, 0u, 0, ISNANF_TOLERANCE, 0},
+{338, 1139941253u, 1147688821u, 0u, 0, ISNANF_TOLERANCE, 0},
+{339, 3143717025u, 3234638157u, 0u, 0, ISNANF_TOLERANCE, 0},
+{340, 3048866608u, 3449209899u, 0u, 0, ISNANF_TOLERANCE, 0},
+{341, 3240298487u, 1020260821u, 0u, 0, ISNANF_TOLERANCE, 0},
+{342, 1288902137u, 3123875978u, 0u, 0, ISNANF_TOLERANCE, 0},
+{343, 1333134799u, 1338107877u, 0u, 0, ISNANF_TOLERANCE, 0},
+{344, 1187847971u, 1317663644u, 0u, 0, ISNANF_TOLERANCE, 0},
+{345, 1038851706u, 1327544110u, 0u, 0, ISNANF_TOLERANCE, 0},
+{346, 3329354473u, 3165437289u, 0u, 0, ISNANF_TOLERANCE, 0},
+{347, 3077218579u, 1308397879u, 0u, 0, ISNANF_TOLERANCE, 0},
+{348, 1309289088u, 1019883016u, 0u, 0, ISNANF_TOLERANCE, 0},
+{349, 2991550291u, 1294782875u, 0u, 0, ISNANF_TOLERANCE, 0},
+{350, 3444653659u, 1279248024u, 0u, 0, ISNANF_TOLERANCE, 0},
+{351, 3405585402u, 2962345057u, 0u, 0, ISNANF_TOLERANCE, 0},
+{352, 3106647724u, 853848387u, 0u, 0, ISNANF_TOLERANCE, 0},
+{353, 1106778573u, 3304487767u, 0u, 0, ISNANF_TOLERANCE, 0},
+{354, 1140567947u, 3069174149u, 0u, 0, ISNANF_TOLERANCE, 0},
+{355, 1238569473u, 873035665u, 0u, 0, ISNANF_TOLERANCE, 0},
+{356, 840375965u, 3223983207u, 0u, 0, ISNANF_TOLERANCE, 0},
+{357, 3154871957u, 1276671061u, 0u, 0, ISNANF_TOLERANCE, 0},
+{358, 1261071232u, 1182202773u, 0u, 0, ISNANF_TOLERANCE, 0},
+{359, 1175011025u, 3029705783u, 0u, 0, ISNANF_TOLERANCE, 0},
+{360, 1082692850u, 1211581107u, 0u, 0, ISNANF_TOLERANCE, 0},
+{361, 974547519u, 3475164509u, 0u, 0, ISNANF_TOLERANCE, 0},
+{362, 3058097085u, 3104309359u, 0u, 0, ISNANF_TOLERANCE, 0},
+{363, 3107252546u, 1071134451u, 0u, 0, ISNANF_TOLERANCE, 0},
+{364, 3096032662u, 2976848821u, 0u, 0, ISNANF_TOLERANCE, 0},
+{365, 3197942144u, 3094120030u, 0u, 0, ISNANF_TOLERANCE, 0},
+{366, 3403348556u, 3184653669u, 0u, 0, ISNANF_TOLERANCE, 0},
+{367, 2998032500u, 3373011130u, 0u, 0, ISNANF_TOLERANCE, 0},
+{368, 3182301130u, 3460764044u, 0u, 0, ISNANF_TOLERANCE, 0},
+{369, 1136411063u, 1118097422u, 0u, 0, ISNANF_TOLERANCE, 0},
+{370, 3239231622u, 3302723069u, 0u, 0, ISNANF_TOLERANCE, 0},
+{371, 3340615780u, 870350055u, 0u, 0, ISNANF_TOLERANCE, 0},
+{372, 998567360u, 2995278691u, 0u, 0, ISNANF_TOLERANCE, 0},
+{373, 3417964312u, 1321337529u, 0u, 0, ISNANF_TOLERANCE, 0},
+{374, 3109481038u, 1143864063u, 0u, 0, ISNANF_TOLERANCE, 0},
+{375, 1148867223u, 1256486202u, 0u, 0, ISNANF_TOLERANCE, 0},
+{376, 2960983878u, 1314196594u, 0u, 0, ISNANF_TOLERANCE, 0},
+{377, 989687421u, 3372681320u, 0u, 0, ISNANF_TOLERANCE, 0},
+{378, 1152956913u, 3166480640u, 0u, 0, ISNANF_TOLERANCE, 0},
+{379, 892922651u, 3373029087u, 0u, 0, ISNANF_TOLERANCE, 0},
+{380, 1109627625u, 1314158257u, 0u, 0, ISNANF_TOLERANCE, 0},
+{381, 1307091856u, 1103202538u, 0u, 0, ISNANF_TOLERANCE, 0},
+{382, 1077234132u, 3272167130u, 0u, 0, ISNANF_TOLERANCE, 0},
+{383, 1142167709u, 1096445242u, 0u, 0, ISNANF_TOLERANCE, 0},
+{384, 3426232834u, 1036705270u, 0u, 0, ISNANF_TOLERANCE, 0},
+{385, 3000726366u, 3172023300u, 0u, 0, ISNANF_TOLERANCE, 0},
+{386, 3368566779u, 967249167u, 0u, 0, ISNANF_TOLERANCE, 0},
+{387, 3030724760u, 3349013503u, 0u, 0, ISNANF_TOLERANCE, 0},
+{388, 1138741813u, 3073453199u, 0u, 0, ISNANF_TOLERANCE, 0},
+{389, 982950501u, 982549888u, 0u, 0, ISNANF_TOLERANCE, 0},
+{390, 1142981585u, 1015602236u, 0u, 0, ISNANF_TOLERANCE, 0},
+{391, 3016453868u, 3365560001u, 0u, 0, ISNANF_TOLERANCE, 0},
+{392, 3347165962u, 3135486696u, 0u, 0, ISNANF_TOLERANCE, 0},
+{393, 1009535440u, 3381353228u, 0u, 0, ISNANF_TOLERANCE, 0},
+{394, 3103736980u, 3402950505u, 0u, 0, ISNANF_TOLERANCE, 0},
+{395, 3126820946u, 1077903063u, 0u, 0, ISNANF_TOLERANCE, 0},
+{396, 3473956030u, 976891930u, 0u, 0, ISNANF_TOLERANCE, 0},
+{397, 3349098349u, 1055327704u, 0u, 0, ISNANF_TOLERANCE, 0},
+{398, 3152729489u, 1060398533u, 0u, 0, ISNANF_TOLERANCE, 0},
+{399, 945568720u, 3313485084u, 0u, 0, ISNANF_TOLERANCE, 0},
+{400, 3345489836u, 1108392401u, 0u, 0, ISNANF_TOLERANCE, 0},
+{401, 940893161u, 1137000140u, 0u, 0, ISNANF_TOLERANCE, 0},
+{402, 976791751u, 3230678102u, 0u, 0, ISNANF_TOLERANCE, 0},
+{403, 3013749677u, 1324802687u, 0u, 0, ISNANF_TOLERANCE, 0},
+{404, 1004442355u, 3036510596u, 0u, 0, ISNANF_TOLERANCE, 0},
+{405, 1108485380u, 3173536878u, 0u, 0, ISNANF_TOLERANCE, 0},
+{406, 1061834641u, 972388096u, 0u, 0, ISNANF_TOLERANCE, 0},
+{407, 3381268392u, 1146976802u, 0u, 0, ISNANF_TOLERANCE, 0},
+{408, 1087189715u, 2952822478u, 0u, 0, ISNANF_TOLERANCE, 0},
+{409, 3212952285u, 3329407365u, 0u, 0, ISNANF_TOLERANCE, 0},
+{410, 1000611335u, 857599439u, 0u, 0, ISNANF_TOLERANCE, 0},
+{411, 847191250u, 1227905777u, 0u, 0, ISNANF_TOLERANCE, 0},
+{412, 3466188568u, 1041678304u, 0u, 0, ISNANF_TOLERANCE, 0},
+{413, 2968337765u, 3091399866u, 0u, 0, ISNANF_TOLERANCE, 0},
+{414, 3072456205u, 3160254633u, 0u, 0, ISNANF_TOLERANCE, 0},
+{415, 3319315516u, 3422089012u, 0u, 0, ISNANF_TOLERANCE, 0},
+{416, 935938416u, 1146676692u, 0u, 0, ISNANF_TOLERANCE, 0},
+{417, 3212614372u, 1152633030u, 0u, 0, ISNANF_TOLERANCE, 0},
+{418, 1315030230u, 3336225884u, 0u, 0, ISNANF_TOLERANCE, 0},
+{419, 822041816u, 898402905u, 0u, 0, ISNANF_TOLERANCE, 0},
+{420, 1134593658u, 3456812581u, 0u, 0, ISNANF_TOLERANCE, 0},
+{421, 977281449u, 879922831u, 0u, 0, ISNANF_TOLERANCE, 0},
+{422, 1086198791u, 920125958u, 0u, 0, ISNANF_TOLERANCE, 0},
+{423, 1255152035u, 851754050u, 0u, 0, ISNANF_TOLERANCE, 0},
+{424, 1135271264u, 3284878412u, 0u, 0, ISNANF_TOLERANCE, 0},
+{425, 1094190727u, 1056854532u, 0u, 0, ISNANF_TOLERANCE, 0},
+{426, 1294665325u, 991185677u, 0u, 0, ISNANF_TOLERANCE, 0},
+{427, 1036608591u, 805416536u, 0u, 0, ISNANF_TOLERANCE, 0},
+{428, 2960459834u, 1296239160u, 0u, 0, ISNANF_TOLERANCE, 0},
+{429, 3229998064u, 825237063u, 0u, 0, ISNANF_TOLERANCE, 0},
+{430, 3439134022u, 1043829691u, 0u, 0, ISNANF_TOLERANCE, 0},
+{431, 3073083133u, 1317170485u, 0u, 0, ISNANF_TOLERANCE, 0},
+{432, 1325668223u, 970681762u, 0u, 0, ISNANF_TOLERANCE, 0},
+{433, 1092037607u, 1027330835u, 0u, 0, ISNANF_TOLERANCE, 0},
+{434, 826457956u, 3343511749u, 0u, 0, ISNANF_TOLERANCE, 0},
+{435, 3316278408u, 3455589207u, 0u, 0, ISNANF_TOLERANCE, 0},
+{436, 3295436768u, 3129873731u, 0u, 0, ISNANF_TOLERANCE, 0},
+{437, 1151984049u, 3074547120u, 0u, 0, ISNANF_TOLERANCE, 0},
+{438, 1129287043u, 3076527544u, 0u, 0, ISNANF_TOLERANCE, 0},
+{439, 1243664530u, 972879810u, 0u, 0, ISNANF_TOLERANCE, 0},
+{440, 950829092u, 929114193u, 0u, 0, ISNANF_TOLERANCE, 0},
+{441, 1115471979u, 3047246262u, 0u, 0, ISNANF_TOLERANCE, 0},
+{442, 3351092088u, 3024661404u, 0u, 0, ISNANF_TOLERANCE, 0},
+{443, 3424479544u, 3312047722u, 0u, 0, ISNANF_TOLERANCE, 0},
+{444, 3241193975u, 884465785u, 0u, 0, ISNANF_TOLERANCE, 0},
+{445, 811700241u, 3478509398u, 0u, 0, ISNANF_TOLERANCE, 0},
+{446, 1030934236u, 1045139240u, 0u, 0, ISNANF_TOLERANCE, 0},
+{447, 3131791114u, 3408392958u, 0u, 0, ISNANF_TOLERANCE, 0},
+{448, 1025254314u, 3057812821u, 0u, 0, ISNANF_TOLERANCE, 0},
+{449, 1110545760u, 3240144177u, 0u, 0, ISNANF_TOLERANCE, 0},
+{450, 826998191u, 1091496527u, 0u, 0, ISNANF_TOLERANCE, 0},
+{451, 3180213739u, 1108793820u, 0u, 0, ISNANF_TOLERANCE, 0},
+{452, 3361976590u, 3138179993u, 0u, 0, ISNANF_TOLERANCE, 0},
+{453, 881280146u, 3421884736u, 0u, 0, ISNANF_TOLERANCE, 0},
+{454, 1304154705u, 2961937089u, 0u, 0, ISNANF_TOLERANCE, 0},
+{455, 3264443610u, 3222916705u, 0u, 0, ISNANF_TOLERANCE, 0},
+{456, 3374550627u, 3055856293u, 0u, 0, ISNANF_TOLERANCE, 0},
+{457, 2979664918u, 3365394784u, 0u, 0, ISNANF_TOLERANCE, 0},
+{458, 899599265u, 3240118211u, 0u, 0, ISNANF_TOLERANCE, 0},
+{459, 842476444u, 3452685905u, 0u, 0, ISNANF_TOLERANCE, 0},
+{460, 1268194719u, 1332489410u, 0u, 0, ISNANF_TOLERANCE, 0},
+{461, 1133420220u, 1245770860u, 0u, 0, ISNANF_TOLERANCE, 0},
+{462, 1161858787u, 815362075u, 0u, 0, ISNANF_TOLERANCE, 0},
+{463, 3184462258u, 1263529646u, 0u, 0, ISNANF_TOLERANCE, 0},
+{464, 3295996963u, 3453334307u, 0u, 0, ISNANF_TOLERANCE, 0},
+{465, 1270887389u, 1156123987u, 0u, 0, ISNANF_TOLERANCE, 0},
+{466, 3325193181u, 993979179u, 0u, 0, ISNANF_TOLERANCE, 0},
+{467, 925657343u, 1315159742u, 0u, 0, ISNANF_TOLERANCE, 0},
+{468, 3115275450u, 3008350271u, 0u, 0, ISNANF_TOLERANCE, 0},
+{469, 3116607482u, 3224327456u, 0u, 0, ISNANF_TOLERANCE, 0},
+{470, 3187892415u, 3118097315u, 0u, 0, ISNANF_TOLERANCE, 0},
+{471, 1189120494u, 978961471u, 0u, 0, ISNANF_TOLERANCE, 0},
+{472, 889030794u, 3129523970u, 0u, 0, ISNANF_TOLERANCE, 0},
+{473, 1323529208u, 3100744786u, 0u, 0, ISNANF_TOLERANCE, 0},
+{474, 2975945347u, 940445933u, 0u, 0, ISNANF_TOLERANCE, 0},
+{475, 3465768388u, 3190881451u, 0u, 0, ISNANF_TOLERANCE, 0},
+{476, 3426099899u, 1118756120u, 0u, 0, ISNANF_TOLERANCE, 0},
+{477, 3224857113u, 3398166843u, 0u, 0, ISNANF_TOLERANCE, 0},
+{478, 1065798296u, 816191940u, 0u, 0, ISNANF_TOLERANCE, 0},
+{479, 3328989444u, 850266225u, 0u, 0, ISNANF_TOLERANCE, 0},
+{480, 3357819026u, 3148475462u, 0u, 0, ISNANF_TOLERANCE, 0},
+{481, 1273397670u, 901308750u, 0u, 0, ISNANF_TOLERANCE, 0},
+{482, 3424831780u, 1304806106u, 0u, 0, ISNANF_TOLERANCE, 0},
+{483, 1257596246u, 3420832544u, 0u, 0, ISNANF_TOLERANCE, 0},
+{484, 1051773536u, 896271348u, 0u, 0, ISNANF_TOLERANCE, 0},
+{485, 3294752507u, 3113225954u, 0u, 0, ISNANF_TOLERANCE, 0},
+{486, 3424848725u, 2973850350u, 0u, 0, ISNANF_TOLERANCE, 0},
+{487, 1090870906u, 3294742905u, 0u, 0, ISNANF_TOLERANCE, 0},
+{488, 1227582289u, 1208979668u, 0u, 0, ISNANF_TOLERANCE, 0},
+{489, 2996780709u, 852318215u, 0u, 0, ISNANF_TOLERANCE, 0},
+{490, 1272325814u, 3004311296u, 0u, 0, ISNANF_TOLERANCE, 0},
+{491, 3359508271u, 859974315u, 0u, 0, ISNANF_TOLERANCE, 0},
+{492, 2992737514u, 2999023943u, 0u, 0, ISNANF_TOLERANCE, 0},
+{493, 1137854355u, 3335041917u, 0u, 0, ISNANF_TOLERANCE, 0},
+{494, 3440773058u, 3204192793u, 0u, 0, ISNANF_TOLERANCE, 0},
+{495, 3101598400u, 3057760708u, 0u, 0, ISNANF_TOLERANCE, 0},
+{496, 3451216836u, 3347783723u, 0u, 0, ISNANF_TOLERANCE, 0},
+{497, 3437062994u, 3106834845u, 0u, 0, ISNANF_TOLERANCE, 0},
+{498, 1131196082u, 1164573183u, 0u, 0, ISNANF_TOLERANCE, 0},
+{499, 3177294154u, 1282436638u, 0u, 0, ISNANF_TOLERANCE, 0},
+{500, 3258097678u, 1305882290u, 0u, 0, ISNANF_TOLERANCE, 0},
+{501, 3460915348u, 1219372260u, 0u, 0, ISNANF_TOLERANCE, 0},
+{502, 3009547195u, 1256074626u, 0u, 0, ISNANF_TOLERANCE, 0},
+{503, 3303035472u, 3153013020u, 0u, 0, ISNANF_TOLERANCE, 0},
+{504, 1053698677u, 3284313107u, 0u, 0, ISNANF_TOLERANCE, 0},
+{505, 3396166221u, 1201894512u, 0u, 0, ISNANF_TOLERANCE, 0},
+{506, 3037541131u, 1085398440u, 0u, 0, ISNANF_TOLERANCE, 0},
+{507, 3458934263u, 1005577835u, 0u, 0, ISNANF_TOLERANCE, 0},
+{508, 1065761827u, 3333928591u, 0u, 0, ISNANF_TOLERANCE, 0},
+{509, 3025843188u, 820250112u, 0u, 0, ISNANF_TOLERANCE, 0},
+{510, 3017430347u, 3009209071u, 0u, 0, ISNANF_TOLERANCE, 0},
+{511, 926665223u, 3150815797u, 0u, 0, ISNANF_TOLERANCE, 0},
+{512, 2970966181u, 3383521344u, 0u, 0, ISNANF_TOLERANCE, 0},
+{513, 1199816046u, 3143776186u, 0u, 0, ISNANF_TOLERANCE, 0},
+{514, 3333779015u, 952421041u, 0u, 0, ISNANF_TOLERANCE, 0},
+{515, 856234019u, 3091454180u, 0u, 0, ISNANF_TOLERANCE, 0},
+{516, 948398145u, 3238273189u, 0u, 0, ISNANF_TOLERANCE, 0},
+{517, 3054021468u, 1270257895u, 0u, 0, ISNANF_TOLERANCE, 0},
+{518, 1080781593u, 1213908300u, 0u, 0, ISNANF_TOLERANCE, 0},
+{519, 3164749613u, 3010837763u, 0u, 0, ISNANF_TOLERANCE, 0},
+{520, 2971341371u, 1014754300u, 0u, 0, ISNANF_TOLERANCE, 0},
+{521, 3235326590u, 1271705594u, 0u, 0, ISNANF_TOLERANCE, 0},
+{522, 3118883815u, 1051802647u, 0u, 0, ISNANF_TOLERANCE, 0},
+{523, 965378004u, 1292594138u, 0u, 0, ISNANF_TOLERANCE, 0},
+{524, 3226990408u, 1110755136u, 0u, 0, ISNANF_TOLERANCE, 0},
+{525, 2953069847u, 3293953199u, 0u, 0, ISNANF_TOLERANCE, 0},
+{526, 3117098218u, 1122474770u, 0u, 0, ISNANF_TOLERANCE, 0},
+{527, 1283624229u, 906796922u, 0u, 0, ISNANF_TOLERANCE, 0},
+{528, 860729004u, 1163935062u, 0u, 0, ISNANF_TOLERANCE, 0},
+{529, 970649315u, 1078286437u, 0u, 0, ISNANF_TOLERANCE, 0},
+{530, 959776291u, 3280345347u, 0u, 0, ISNANF_TOLERANCE, 0},
+{531, 3341117305u, 3294559023u, 0u, 0, ISNANF_TOLERANCE, 0},
+{532, 1270734970u, 3355874874u, 0u, 0, ISNANF_TOLERANCE, 0},
+{533, 3454816067u, 868771977u, 0u, 0, ISNANF_TOLERANCE, 0},
+{534, 917206623u, 1172710814u, 0u, 0, ISNANF_TOLERANCE, 0},
+{535, 1106502045u, 1290849316u, 0u, 0, ISNANF_TOLERANCE, 0},
+{536, 1157598381u, 3309023746u, 0u, 0, ISNANF_TOLERANCE, 0},
+{537, 835476614u, 1092590501u, 0u, 0, ISNANF_TOLERANCE, 0},
+{538, 3335234513u, 1002337336u, 0u, 0, ISNANF_TOLERANCE, 0},
+{539, 1279489061u, 1006049444u, 0u, 0, ISNANF_TOLERANCE, 0},
+{540, 807133892u, 1110992491u, 0u, 0, ISNANF_TOLERANCE, 0},
+{541, 3157416480u, 1309984610u, 0u, 0, ISNANF_TOLERANCE, 0},
+{542, 3143920719u, 3131608518u, 0u, 0, ISNANF_TOLERANCE, 0},
+{543, 2995340689u, 1165036009u, 0u, 0, ISNANF_TOLERANCE, 0},
+{544, 1233171235u, 826460580u, 0u, 0, ISNANF_TOLERANCE, 0},
+{545, 1148920078u, 1007674793u, 0u, 0, ISNANF_TOLERANCE, 0},
+{546, 3064988156u, 3230867340u, 0u, 0, ISNANF_TOLERANCE, 0},
+{547, 3083619260u, 1159415661u, 0u, 0, ISNANF_TOLERANCE, 0},
+{548, 1109198803u, 1221754614u, 0u, 0, ISNANF_TOLERANCE, 0},
+{549, 3219949483u, 1056167693u, 0u, 0, ISNANF_TOLERANCE, 0},
+{550, 3361149474u, 3387342069u, 0u, 0, ISNANF_TOLERANCE, 0},
+{551, 827931800u, 1118474231u, 0u, 0, ISNANF_TOLERANCE, 0},
+{552, 1207502108u, 3388073586u, 0u, 0, ISNANF_TOLERANCE, 0},
+{553, 1000014431u, 831213088u, 0u, 0, ISNANF_TOLERANCE, 0},
+{554, 3161756316u, 3143659754u, 0u, 0, ISNANF_TOLERANCE, 0},
+{555, 3160728744u, 3382954009u, 0u, 0, ISNANF_TOLERANCE, 0},
+{556, 1234530539u, 1079988872u, 0u, 0, ISNANF_TOLERANCE, 0},
+{557, 1017843965u, 1193076204u, 0u, 0, ISNANF_TOLERANCE, 0},
+{558, 2965746635u, 3248194237u, 0u, 0, ISNANF_TOLERANCE, 0},
+{559, 951862956u, 1173464654u, 0u, 0, ISNANF_TOLERANCE, 0},
+{560, 3306328852u, 1118701064u, 0u, 0, ISNANF_TOLERANCE, 0},
+{561, 1291910469u, 1211303367u, 0u, 0, ISNANF_TOLERANCE, 0},
+{562, 3027442905u, 1173894400u, 0u, 0, ISNANF_TOLERANCE, 0},
+{563, 809646928u, 3006525025u, 0u, 0, ISNANF_TOLERANCE, 0},
+{564, 1131927531u, 3182962700u, 0u, 0, ISNANF_TOLERANCE, 0},
+{565, 3449879391u, 991614550u, 0u, 0, ISNANF_TOLERANCE, 0},
+{566, 970094304u, 3344590506u, 0u, 0, ISNANF_TOLERANCE, 0},
+{567, 1125551064u, 3331248076u, 0u, 0, ISNANF_TOLERANCE, 0},
+{568, 3427296372u, 3455289118u, 0u, 0, ISNANF_TOLERANCE, 0},
+{569, 1198917460u, 1327195159u, 0u, 0, ISNANF_TOLERANCE, 0},
+{570, 3201603336u, 820047343u, 0u, 0, ISNANF_TOLERANCE, 0},
+{571, 3114686212u, 3476082461u, 0u, 0, ISNANF_TOLERANCE, 0},
+{572, 921940707u, 2967544056u, 0u, 0, ISNANF_TOLERANCE, 0},
+{573, 1091906532u, 3011904455u, 0u, 0, ISNANF_TOLERANCE, 0},
+{574, 3393557778u, 3383396815u, 0u, 0, ISNANF_TOLERANCE, 0},
+{575, 1276853215u, 873199561u, 0u, 0, ISNANF_TOLERANCE, 0},
+{576, 3462778440u, 3349284325u, 0u, 0, ISNANF_TOLERANCE, 0},
+{577, 833132358u, 3470358002u, 0u, 0, ISNANF_TOLERANCE, 0},
+{578, 3360170117u, 3048354042u, 0u, 0, ISNANF_TOLERANCE, 0},
+{579, 3224245428u, 3271307999u, 0u, 0, ISNANF_TOLERANCE, 0},
+{580, 1120124467u, 1135619937u, 0u, 0, ISNANF_TOLERANCE, 0},
+{581, 1064364381u, 3180675544u, 0u, 0, ISNANF_TOLERANCE, 0},
+{582, 1268744779u, 3328452652u, 0u, 0, ISNANF_TOLERANCE, 0},
+{583, 1165195428u, 3390323168u, 0u, 0, ISNANF_TOLERANCE, 0},
+{584, 3044092739u, 1106497311u, 0u, 0, ISNANF_TOLERANCE, 0},
+{585, 3149469534u, 1278465842u, 0u, 0, ISNANF_TOLERANCE, 0},
+{586, 3247790039u, 909788142u, 0u, 0, ISNANF_TOLERANCE, 0},
+{587, 3215244648u, 1083988595u, 0u, 0, ISNANF_TOLERANCE, 0},
+{588, 3095275931u, 989153382u, 0u, 0, ISNANF_TOLERANCE, 0},
+{589, 3059688264u, 1117455718u, 0u, 0, ISNANF_TOLERANCE, 0},
+{590, 2990022513u, 1061714285u, 0u, 0, ISNANF_TOLERANCE, 0},
+{591, 1212717473u, 837873779u, 0u, 0, ISNANF_TOLERANCE, 0},
+{592, 3275973009u, 3450721670u, 0u, 0, ISNANF_TOLERANCE, 0},
+{593, 3028857014u, 3188853813u, 0u, 0, ISNANF_TOLERANCE, 0},
+{594, 3391162308u, 1291220039u, 0u, 0, ISNANF_TOLERANCE, 0},
+{595, 1044867873u, 3369493273u, 0u, 0, ISNANF_TOLERANCE, 0},
+{596, 1089986803u, 3462160118u, 0u, 0, ISNANF_TOLERANCE, 0},
+{597, 1296314700u, 2957454177u, 0u, 0, ISNANF_TOLERANCE, 0},
+{598, 1251462432u, 3171021770u, 0u, 0, ISNANF_TOLERANCE, 0},
+{599, 3485236902u, 980772835u, 0u, 0, ISNANF_TOLERANCE, 0},
+{600, 3262169538u, 1268270462u, 0u, 0, ISNANF_TOLERANCE, 0},
+{601, 3080852256u, 994641495u, 0u, 0, ISNANF_TOLERANCE, 0},
+{602, 1022211242u, 922124181u, 0u, 0, ISNANF_TOLERANCE, 0},
+{603, 884661176u, 2985540645u, 0u, 0, ISNANF_TOLERANCE, 0},
+{604, 3071422941u, 3271100396u, 0u, 0, ISNANF_TOLERANCE, 0},
+{605, 989762529u, 3362011135u, 0u, 0, ISNANF_TOLERANCE, 0},
+{606, 1295475718u, 3212305413u, 0u, 0, ISNANF_TOLERANCE, 0},
+{607, 1002632518u, 3330388441u, 0u, 0, ISNANF_TOLERANCE, 0},
+{608, 3404372005u, 3450484255u, 0u, 0, ISNANF_TOLERANCE, 0},
+{609, 3158912530u, 3105501826u, 0u, 0, ISNANF_TOLERANCE, 0},
+{610, 2987029985u, 1218447414u, 0u, 0, ISNANF_TOLERANCE, 0},
+{611, 1125800069u, 3256265749u, 0u, 0, ISNANF_TOLERANCE, 0},
+{612, 3138037576u, 3103365227u, 0u, 0, ISNANF_TOLERANCE, 0},
+{613, 3108384823u, 1300246663u, 0u, 0, ISNANF_TOLERANCE, 0},
+{614, 999985470u, 3409354318u, 0u, 0, ISNANF_TOLERANCE, 0},
+{615, 1189421739u, 1056599002u, 0u, 0, ISNANF_TOLERANCE, 0},
+{616, 3075182644u, 3144159778u, 0u, 0, ISNANF_TOLERANCE, 0},
+{617, 3028099649u, 3391513557u, 0u, 0, ISNANF_TOLERANCE, 0},
+{618, 837703706u, 3467473756u, 0u, 0, ISNANF_TOLERANCE, 0},
+{619, 3132541814u, 3444521949u, 0u, 0, ISNANF_TOLERANCE, 0},
+{620, 1164046161u, 3440635788u, 0u, 0, ISNANF_TOLERANCE, 0},
+{621, 1292596266u, 3116569667u, 0u, 0, ISNANF_TOLERANCE, 0},
+{622, 3469748379u, 3412765608u, 0u, 0, ISNANF_TOLERANCE, 0},
+{623, 2968771722u, 3117531540u, 0u, 0, ISNANF_TOLERANCE, 0},
+{624, 1314644642u, 3123051784u, 0u, 0, ISNANF_TOLERANCE, 0},
+{625, 3399813173u, 828743798u, 0u, 0, ISNANF_TOLERANCE, 0},
+{626, 948775569u, 3485444126u, 0u, 0, ISNANF_TOLERANCE, 0},
+{627, 1034611395u, 882288581u, 0u, 0, ISNANF_TOLERANCE, 0},
+{628, 3489122735u, 3372450889u, 0u, 0, ISNANF_TOLERANCE, 0},
+{629, 1181604787u, 3363067409u, 0u, 0, ISNANF_TOLERANCE, 0},
+{630, 3059042077u, 3204983963u, 0u, 0, ISNANF_TOLERANCE, 0},
+{631, 1043691622u, 3402603223u, 0u, 0, ISNANF_TOLERANCE, 0},
+{632, 1314588083u, 856187848u, 0u, 0, ISNANF_TOLERANCE, 0},
+{633, 3141533334u, 3010142974u, 0u, 0, ISNANF_TOLERANCE, 0},
+{634, 3013416703u, 3442525943u, 0u, 0, ISNANF_TOLERANCE, 0},
+{635, 861266716u, 822172554u, 0u, 0, ISNANF_TOLERANCE, 0},
+{636, 3157534378u, 3451674717u, 0u, 0, ISNANF_TOLERANCE, 0},
+{637, 2976169000u, 3033697153u, 0u, 0, ISNANF_TOLERANCE, 0},
+{638, 3400949680u, 3073750220u, 0u, 0, ISNANF_TOLERANCE, 0},
+{639, 3365581801u, 1175843167u, 0u, 0, ISNANF_TOLERANCE, 0},
+{640, 1110424755u, 3011308654u, 0u, 0, ISNANF_TOLERANCE, 0},
+{641, 3189917167u, 927278934u, 0u, 0, ISNANF_TOLERANCE, 0},
+{642, 969804941u, 3355439348u, 0u, 0, ISNANF_TOLERANCE, 0},
+{643, 1139120919u, 3270515074u, 0u, 0, ISNANF_TOLERANCE, 0},
+{644, 816789141u, 3325199970u, 0u, 0, ISNANF_TOLERANCE, 0},
+{645, 934308144u, 3118191228u, 0u, 0, ISNANF_TOLERANCE, 0},
+{646, 1220524226u, 1152648002u, 0u, 0, ISNANF_TOLERANCE, 0},
+{647, 3162548604u, 3461790298u, 0u, 0, ISNANF_TOLERANCE, 0},
+{648, 3382391700u, 3296962745u, 0u, 0, ISNANF_TOLERANCE, 0},
+{649, 1156767533u, 1088986462u, 0u, 0, ISNANF_TOLERANCE, 0},
+{650, 3079222483u, 3312324949u, 0u, 0, ISNANF_TOLERANCE, 0},
+{651, 994934087u, 967678094u, 0u, 0, ISNANF_TOLERANCE, 0},
+{652, 840906467u, 3156591981u, 0u, 0, ISNANF_TOLERANCE, 0},
+{653, 3185240099u, 1123403720u, 0u, 0, ISNANF_TOLERANCE, 0},
+{654, 870026344u, 1093936408u, 0u, 0, ISNANF_TOLERANCE, 0},
+{655, 2996887005u, 3287317742u, 0u, 0, ISNANF_TOLERANCE, 0},
+{656, 3479873563u, 1246277393u, 0u, 0, ISNANF_TOLERANCE, 0},
+{657, 3424264117u, 3434026174u, 0u, 0, ISNANF_TOLERANCE, 0},
+{658, 3228365887u, 1216775310u, 0u, 0, ISNANF_TOLERANCE, 0},
+{659, 1035909900u, 1249532942u, 0u, 0, ISNANF_TOLERANCE, 0},
+{660, 2989750574u, 1274271338u, 0u, 0, ISNANF_TOLERANCE, 0},
+{661, 3024951184u, 1247632131u, 0u, 0, ISNANF_TOLERANCE, 0},
+{662, 1212129651u, 3017366784u, 0u, 0, ISNANF_TOLERANCE, 0},
+{663, 3125775254u, 955826310u, 0u, 0, ISNANF_TOLERANCE, 0},
+{664, 1037464105u, 3121544932u, 0u, 0, ISNANF_TOLERANCE, 0},
+{665, 1311706596u, 1254918706u, 0u, 0, ISNANF_TOLERANCE, 0},
+{666, 918212457u, 1017468331u, 0u, 0, ISNANF_TOLERANCE, 0},
+{667, 1337315179u, 3461361185u, 0u, 0, ISNANF_TOLERANCE, 0},
+{668, 1131358407u, 3325958870u, 0u, 0, ISNANF_TOLERANCE, 0},
+{669, 1156517523u, 3343716230u, 0u, 0, ISNANF_TOLERANCE, 0},
+{670, 3210802820u, 3207408574u, 0u, 0, ISNANF_TOLERANCE, 0},
+{671, 3337499209u, 1226297264u, 0u, 0, ISNANF_TOLERANCE, 0},
+{672, 3468429030u, 3253874001u, 0u, 0, ISNANF_TOLERANCE, 0},
+{673, 3253515800u, 1189005947u, 0u, 0, ISNANF_TOLERANCE, 0},
+{674, 3055299953u, 3047908678u, 0u, 0, ISNANF_TOLERANCE, 0},
+{675, 959956547u, 876324728u, 0u, 0, ISNANF_TOLERANCE, 0},
+{676, 3425290480u, 1139193797u, 0u, 0, ISNANF_TOLERANCE, 0},
+{677, 1039917375u, 1122740999u, 0u, 0, ISNANF_TOLERANCE, 0},
+{678, 3220979495u, 3429223871u, 0u, 0, ISNANF_TOLERANCE, 0},
+{679, 1311016004u, 3334899880u, 0u, 0, ISNANF_TOLERANCE, 0},
+{680, 2995451172u, 2974546424u, 0u, 0, ISNANF_TOLERANCE, 0},
+{681, 1128016396u, 1105151547u, 0u, 0, ISNANF_TOLERANCE, 0},
+{682, 3210335769u, 3100646155u, 0u, 0, ISNANF_TOLERANCE, 0},
+{683, 3022705759u, 3404762495u, 0u, 0, ISNANF_TOLERANCE, 0},
+{684, 1206054701u, 826010009u, 0u, 0, ISNANF_TOLERANCE, 0},
+{685, 3144504834u, 1162227076u, 0u, 0, ISNANF_TOLERANCE, 0},
+{686, 822524010u, 970745811u, 0u, 0, ISNANF_TOLERANCE, 0},
+{687, 3016981460u, 3313826904u, 0u, 0, ISNANF_TOLERANCE, 0},
+{688, 1213609983u, 919983950u, 0u, 0, ISNANF_TOLERANCE, 0},
+{689, 1246902946u, 3064047808u, 0u, 0, ISNANF_TOLERANCE, 0},
+{690, 995850843u, 1332031130u, 0u, 0, ISNANF_TOLERANCE, 0},
+{691, 3362082828u, 3374056268u, 0u, 0, ISNANF_TOLERANCE, 0},
+{692, 1029480631u, 3047777170u, 0u, 0, ISNANF_TOLERANCE, 0},
+{693, 3153568584u, 3106514232u, 0u, 0, ISNANF_TOLERANCE, 0},
+{694, 3384988527u, 3109485565u, 0u, 0, ISNANF_TOLERANCE, 0},
+{695, 1317696241u, 870681806u, 0u, 0, ISNANF_TOLERANCE, 0},
+{696, 3235395924u, 1132055244u, 0u, 0, ISNANF_TOLERANCE, 0},
+{697, 3341877624u, 2969495570u, 0u, 0, ISNANF_TOLERANCE, 0},
+{698, 1228636133u, 886552820u, 0u, 0, ISNANF_TOLERANCE, 0},
+{699, 3161654634u, 3335899347u, 0u, 0, ISNANF_TOLERANCE, 0},
+{700, 3162655243u, 3307203982u, 0u, 0, ISNANF_TOLERANCE, 0},
+{701, 1207246237u, 859223639u, 0u, 0, ISNANF_TOLERANCE, 0},
+{702, 1165476654u, 3350219111u, 0u, 0, ISNANF_TOLERANCE, 0},
+{703, 1215278023u, 3019755242u, 0u, 0, ISNANF_TOLERANCE, 0},
+{704, 1017239798u, 3438501281u, 0u, 0, ISNANF_TOLERANCE, 0},
+{705, 1149651309u, 970030475u, 0u, 0, ISNANF_TOLERANCE, 0},
+{706, 1111943722u, 3122211334u, 0u, 0, ISNANF_TOLERANCE, 0},
+{707, 856374764u, 1158358450u, 0u, 0, ISNANF_TOLERANCE, 0},
+{708, 1189849849u, 3382739134u, 0u, 0, ISNANF_TOLERANCE, 0},
+{709, 3204848496u, 3141519085u, 0u, 0, ISNANF_TOLERANCE, 0},
+{710, 1249758327u, 3104759211u, 0u, 0, ISNANF_TOLERANCE, 0},
+{711, 3092982276u, 3445282331u, 0u, 0, ISNANF_TOLERANCE, 0},
+{712, 1168098747u, 1316854744u, 0u, 0, ISNANF_TOLERANCE, 0},
+{713, 892549317u, 1179637545u, 0u, 0, ISNANF_TOLERANCE, 0},
+{714, 3301009024u, 3406174560u, 0u, 0, ISNANF_TOLERANCE, 0},
+{715, 3233089227u, 1212652543u, 0u, 0, ISNANF_TOLERANCE, 0},
+{716, 3218245284u, 1238873830u, 0u, 0, ISNANF_TOLERANCE, 0},
+{717, 3215981890u, 3240474694u, 0u, 0, ISNANF_TOLERANCE, 0},
+{718, 1266687209u, 3092038122u, 0u, 0, ISNANF_TOLERANCE, 0},
+{719, 825230580u, 3410090781u, 0u, 0, ISNANF_TOLERANCE, 0},
+{720, 3487959775u, 3331372071u, 0u, 0, ISNANF_TOLERANCE, 0},
+{721, 943645710u, 852875779u, 0u, 0, ISNANF_TOLERANCE, 0},
+{722, 3345065699u, 3282620725u, 0u, 0, ISNANF_TOLERANCE, 0},
+{723, 935847271u, 1067255804u, 0u, 0, ISNANF_TOLERANCE, 0},
+{724, 3410336089u, 1111437780u, 0u, 0, ISNANF_TOLERANCE, 0},
+{725, 3082940740u, 1336840432u, 0u, 0, ISNANF_TOLERANCE, 0},
+{726, 1141063391u, 1168908072u, 0u, 0, ISNANF_TOLERANCE, 0},
+{727, 3059263153u, 3067795684u, 0u, 0, ISNANF_TOLERANCE, 0},
+{728, 849450947u, 3289799763u, 0u, 0, ISNANF_TOLERANCE, 0},
+{729, 3353679791u, 897158391u, 0u, 0, ISNANF_TOLERANCE, 0},
+{730, 1001823878u, 1016826861u, 0u, 0, ISNANF_TOLERANCE, 0},
+{731, 1009130212u, 1004302940u, 0u, 0, ISNANF_TOLERANCE, 0},
+{732, 3367127535u, 943136342u, 0u, 0, ISNANF_TOLERANCE, 0},
+{733, 1032920919u, 3449126417u, 0u, 0, ISNANF_TOLERANCE, 0},
+{734, 3281952870u, 3147012185u, 0u, 0, ISNANF_TOLERANCE, 0},
+{735, 1237868497u, 3048281802u, 0u, 0, ISNANF_TOLERANCE, 0},
+{736, 1153753924u, 3322269242u, 0u, 0, ISNANF_TOLERANCE, 0},
+{737, 1120261759u, 892210998u, 0u, 0, ISNANF_TOLERANCE, 0},
+{738, 3226328360u, 3366432856u, 0u, 0, ISNANF_TOLERANCE, 0},
+{739, 3349595986u, 3251588707u, 0u, 0, ISNANF_TOLERANCE, 0},
+{740, 3166889490u, 3306023523u, 0u, 0, ISNANF_TOLERANCE, 0},
+{741, 1087750238u, 1099325523u, 0u, 0, ISNANF_TOLERANCE, 0},
+{742, 3121620061u, 3359488363u, 0u, 0, ISNANF_TOLERANCE, 0},
+{743, 1066116543u, 3072159933u, 0u, 0, ISNANF_TOLERANCE, 0},
+{744, 3210898034u, 2981803389u, 0u, 0, ISNANF_TOLERANCE, 0},
+{745, 3051923237u, 3364074347u, 0u, 0, ISNANF_TOLERANCE, 0},
+{746, 1030612298u, 3345396001u, 0u, 0, ISNANF_TOLERANCE, 0},
+{747, 3015019212u, 989161453u, 0u, 0, ISNANF_TOLERANCE, 0},
+{748, 1186234578u, 858134374u, 0u, 0, ISNANF_TOLERANCE, 0},
+{749, 1331680743u, 1009396165u, 0u, 0, ISNANF_TOLERANCE, 0},
+{750, 847857044u, 894661023u, 0u, 0, ISNANF_TOLERANCE, 0},
+{751, 3060774997u, 1326067357u, 0u, 0, ISNANF_TOLERANCE, 0},
+{752, 887589411u, 1292305693u, 0u, 0, ISNANF_TOLERANCE, 0},
+{753, 1045232522u, 3234993273u, 0u, 0, ISNANF_TOLERANCE, 0},
+{754, 3119858470u, 962515365u, 0u, 0, ISNANF_TOLERANCE, 0},
+{755, 3002873011u, 3188748064u, 0u, 0, ISNANF_TOLERANCE, 0},
+{756, 3349432725u, 928848003u, 0u, 0, ISNANF_TOLERANCE, 0},
+{757, 912423027u, 3184646319u, 0u, 0, ISNANF_TOLERANCE, 0},
+{758, 3228795133u, 3273940030u, 0u, 0, ISNANF_TOLERANCE, 0},
+{759, 3194674746u, 3112269709u, 0u, 0, ISNANF_TOLERANCE, 0},
+{760, 3296784303u, 3276182352u, 0u, 0, ISNANF_TOLERANCE, 0},
+{761, 965402291u, 3107104376u, 0u, 0, ISNANF_TOLERANCE, 0},
+{762, 3388153589u, 3426245389u, 0u, 0, ISNANF_TOLERANCE, 0},
+{763, 1133410485u, 3329658993u, 0u, 0, ISNANF_TOLERANCE, 0},
+{764, 3136790322u, 1088652637u, 0u, 0, ISNANF_TOLERANCE, 0},
+{765, 3369970587u, 959121458u, 0u, 0, ISNANF_TOLERANCE, 0},
+{766, 1270451568u, 928393353u, 0u, 0, ISNANF_TOLERANCE, 0},
+{767, 989498922u, 3088358419u, 0u, 0, ISNANF_TOLERANCE, 0},
+{768, 1280215674u, 3148135875u, 0u, 0, ISNANF_TOLERANCE, 0},
+{769, 1171873518u, 954709738u, 0u, 0, ISNANF_TOLERANCE, 0},
+{770, 3298258100u, 935525182u, 0u, 0, ISNANF_TOLERANCE, 0},
+{771, 3415208824u, 822843236u, 0u, 0, ISNANF_TOLERANCE, 0},
+{772, 1001897182u, 3191875320u, 0u, 0, ISNANF_TOLERANCE, 0},
+{773, 3152777939u, 3245830463u, 0u, 0, ISNANF_TOLERANCE, 0},
+{774, 985903305u, 3333087577u, 0u, 0, ISNANF_TOLERANCE, 0},
+{775, 3357328848u, 859306298u, 0u, 0, ISNANF_TOLERANCE, 0},
+{776, 2967395608u, 3077307650u, 0u, 0, ISNANF_TOLERANCE, 0},
+{777, 982612185u, 923582663u, 0u, 0, ISNANF_TOLERANCE, 0},
+{778, 3267868136u, 1208301947u, 0u, 0, ISNANF_TOLERANCE, 0},
+{779, 3319048157u, 1172271145u, 0u, 0, ISNANF_TOLERANCE, 0},
+{780, 1144755661u, 860947435u, 0u, 0, ISNANF_TOLERANCE, 0},
+{781, 840456845u, 1051585760u, 0u, 0, ISNANF_TOLERANCE, 0},
+{782, 898467286u, 839254959u, 0u, 0, ISNANF_TOLERANCE, 0},
+{783, 3301461672u, 1233693827u, 0u, 0, ISNANF_TOLERANCE, 0},
+{784, 3364525678u, 3089849671u, 0u, 0, ISNANF_TOLERANCE, 0},
+{785, 871130681u, 905123007u, 0u, 0, ISNANF_TOLERANCE, 0},
+{786, 931441127u, 1133424555u, 0u, 0, ISNANF_TOLERANCE, 0},
+{787, 3146660041u, 3143695961u, 0u, 0, ISNANF_TOLERANCE, 0},
+{788, 3467121799u, 3023584354u, 0u, 0, ISNANF_TOLERANCE, 0},
+{789, 1151257041u, 3084216427u, 0u, 0, ISNANF_TOLERANCE, 0},
+{790, 3097873255u, 3219266640u, 0u, 0, ISNANF_TOLERANCE, 0},
+{791, 3130670309u, 3192399254u, 0u, 0, ISNANF_TOLERANCE, 0},
+{792, 1017573824u, 3130901062u, 0u, 0, ISNANF_TOLERANCE, 0},
+{793, 1258369714u, 3462258576u, 0u, 0, ISNANF_TOLERANCE, 0},
+{794, 1216602683u, 3371396332u, 0u, 0, ISNANF_TOLERANCE, 0},
+{795, 2976429847u, 959973239u, 0u, 0, ISNANF_TOLERANCE, 0},
+{796, 3297265739u, 1214184410u, 0u, 0, ISNANF_TOLERANCE, 0},
+{797, 1071940738u, 3311731012u, 0u, 0, ISNANF_TOLERANCE, 0},
+{798, 922601356u, 3337171870u, 0u, 0, ISNANF_TOLERANCE, 0},
+{799, 3462285635u, 3444030332u, 0u, 0, ISNANF_TOLERANCE, 0},
+{800, 3357177805u, 1085464241u, 0u, 0, ISNANF_TOLERANCE, 0},
+{801, 3049120080u, 900832851u, 0u, 0, ISNANF_TOLERANCE, 0},
+{802, 1153863660u, 1011991342u, 0u, 0, ISNANF_TOLERANCE, 0},
+{803, 3034243695u, 917098003u, 0u, 0, ISNANF_TOLERANCE, 0},
+{804, 809294662u, 3266461458u, 0u, 0, ISNANF_TOLERANCE, 0},
+{805, 822231182u, 3393408718u, 0u, 0, ISNANF_TOLERANCE, 0},
+{806, 845772797u, 3341109215u, 0u, 0, ISNANF_TOLERANCE, 0},
+{807, 1249365132u, 3278686216u, 0u, 0, ISNANF_TOLERANCE, 0},
+{808, 3046215730u, 3211219980u, 0u, 0, ISNANF_TOLERANCE, 0},
+{809, 3047251716u, 1090787353u, 0u, 0, ISNANF_TOLERANCE, 0},
+{810, 2980866154u, 1147012796u, 0u, 0, ISNANF_TOLERANCE, 0},
+{811, 3131219358u, 3471261157u, 0u, 0, ISNANF_TOLERANCE, 0},
+{812, 3222096285u, 1198013705u, 0u, 0, ISNANF_TOLERANCE, 0},
+{813, 1297708818u, 3079166173u, 0u, 0, ISNANF_TOLERANCE, 0},
+{814, 3345532722u, 3383708463u, 0u, 0, ISNANF_TOLERANCE, 0},
+{815, 3418753236u, 3481843070u, 0u, 0, ISNANF_TOLERANCE, 0},
+{816, 1277417964u, 3487506626u, 0u, 0, ISNANF_TOLERANCE, 0},
+{817, 987577257u, 1152077087u, 0u, 0, ISNANF_TOLERANCE, 0},
+{818, 3161606610u, 3190282989u, 0u, 0, ISNANF_TOLERANCE, 0},
+{819, 849056171u, 910674398u, 0u, 0, ISNANF_TOLERANCE, 0},
+{820, 888030585u, 3062367380u, 0u, 0, ISNANF_TOLERANCE, 0},
+{821, 1043442869u, 3311393817u, 0u, 0, ISNANF_TOLERANCE, 0},
+{822, 851189486u, 3007588581u, 0u, 0, ISNANF_TOLERANCE, 0},
+{823, 3320923228u, 3464544249u, 0u, 0, ISNANF_TOLERANCE, 0},
+{824, 1337400405u, 3488844154u, 0u, 0, ISNANF_TOLERANCE, 0},
+{825, 2964339884u, 3186563447u, 0u, 0, ISNANF_TOLERANCE, 0},
+{826, 3400348640u, 3129868490u, 0u, 0, ISNANF_TOLERANCE, 0},
+{827, 1250249095u, 1069023744u, 0u, 0, ISNANF_TOLERANCE, 0},
+{828, 3284411233u, 1173613526u, 0u, 0, ISNANF_TOLERANCE, 0},
+{829, 3020883322u, 2953622587u, 0u, 0, ISNANF_TOLERANCE, 0},
+{830, 1215968622u, 3469884568u, 0u, 0, ISNANF_TOLERANCE, 0},
+{831, 3202319550u, 819117302u, 0u, 0, ISNANF_TOLERANCE, 0},
+{832, 3061638260u, 3116222327u, 0u, 0, ISNANF_TOLERANCE, 0},
+{833, 1025404104u, 1066370251u, 0u, 0, ISNANF_TOLERANCE, 0},
+{834, 3138086437u, 3195983510u, 0u, 0, ISNANF_TOLERANCE, 0},
+{835, 3091024506u, 3456196859u, 0u, 0, ISNANF_TOLERANCE, 0},
+{836, 3362748242u, 3369843597u, 0u, 0, ISNANF_TOLERANCE, 0},
+{837, 3099671635u, 3218383623u, 0u, 0, ISNANF_TOLERANCE, 0},
+{838, 3068014841u, 2978226656u, 0u, 0, ISNANF_TOLERANCE, 0},
+{839, 1252237719u, 1121169249u, 0u, 0, ISNANF_TOLERANCE, 0},
+{840, 3327895594u, 1224511805u, 0u, 0, ISNANF_TOLERANCE, 0},
+{841, 3082454432u, 889268276u, 0u, 0, ISNANF_TOLERANCE, 0},
+{842, 3396161504u, 1182798837u, 0u, 0, ISNANF_TOLERANCE, 0},
+{843, 1099710167u, 887180181u, 0u, 0, ISNANF_TOLERANCE, 0},
+{844, 1157186482u, 1288722647u, 0u, 0, ISNANF_TOLERANCE, 0},
+{845, 1282110851u, 3176633124u, 0u, 0, ISNANF_TOLERANCE, 0},
+{846, 3477008113u, 1331845018u, 0u, 0, ISNANF_TOLERANCE, 0},
+{847, 3292127294u, 3409957764u, 0u, 0, ISNANF_TOLERANCE, 0},
+{848, 1123357102u, 3281307320u, 0u, 0, ISNANF_TOLERANCE, 0},
+{849, 1106837025u, 3088080674u, 0u, 0, ISNANF_TOLERANCE, 0},
+{850, 1049949008u, 1130799489u, 0u, 0, ISNANF_TOLERANCE, 0},
+{851, 1253017688u, 942062372u, 0u, 0, ISNANF_TOLERANCE, 0},
+{852, 1108543194u, 3281299199u, 0u, 0, ISNANF_TOLERANCE, 0},
+{853, 3087985411u, 1238341456u, 0u, 0, ISNANF_TOLERANCE, 0},
+{854, 3002187365u, 1073809054u, 0u, 0, ISNANF_TOLERANCE, 0},
+{855, 3163283126u, 1328636961u, 0u, 0, ISNANF_TOLERANCE, 0},
+{856, 1160162706u, 1264067367u, 0u, 0, ISNANF_TOLERANCE, 0},
+{857, 3305715025u, 3017496063u, 0u, 0, ISNANF_TOLERANCE, 0},
+{858, 1266928623u, 811778614u, 0u, 0, ISNANF_TOLERANCE, 0},
+{859, 3025340297u, 1193925540u, 0u, 0, ISNANF_TOLERANCE, 0},
+{860, 3438080027u, 3107114149u, 0u, 0, ISNANF_TOLERANCE, 0},
+{861, 3344574751u, 3111270744u, 0u, 0, ISNANF_TOLERANCE, 0},
+{862, 1152416724u, 962669179u, 0u, 0, ISNANF_TOLERANCE, 0},
+{863, 1218239308u, 1126238113u, 0u, 0, ISNANF_TOLERANCE, 0},
+{864, 3263310567u, 1030748197u, 0u, 0, ISNANF_TOLERANCE, 0},
+{865, 835770216u, 865469272u, 0u, 0, ISNANF_TOLERANCE, 0},
+{866, 3041998669u, 1160635263u, 0u, 0, ISNANF_TOLERANCE, 0},
+{867, 1000313118u, 2980130729u, 0u, 0, ISNANF_TOLERANCE, 0},
+{868, 972485427u, 1124312043u, 0u, 0, ISNANF_TOLERANCE, 0},
+{869, 3290264612u, 1124703898u, 0u, 0, ISNANF_TOLERANCE, 0},
+{870, 869072657u, 3150369767u, 0u, 0, ISNANF_TOLERANCE, 0},
+{871, 3222106584u, 1183748648u, 0u, 0, ISNANF_TOLERANCE, 0},
+{872, 1278946388u, 825129857u, 0u, 0, ISNANF_TOLERANCE, 0},
+{873, 947914771u, 3181847068u, 0u, 0, ISNANF_TOLERANCE, 0},
+{874, 3167730654u, 3195765940u, 0u, 0, ISNANF_TOLERANCE, 0},
+{875, 1098530298u, 3255870890u, 0u, 0, ISNANF_TOLERANCE, 0},
+{876, 3232726036u, 871038882u, 0u, 0, ISNANF_TOLERANCE, 0},
+{877, 1297190916u, 811863044u, 0u, 0, ISNANF_TOLERANCE, 0},
+{878, 1277649137u, 961171401u, 0u, 0, ISNANF_TOLERANCE, 0},
+{879, 3203377685u, 1306427476u, 0u, 0, ISNANF_TOLERANCE, 0},
+{880, 3090306474u, 3124785016u, 0u, 0, ISNANF_TOLERANCE, 0},
+{881, 3244032016u, 3045313345u, 0u, 0, ISNANF_TOLERANCE, 0},
+{882, 3033122376u, 3049877065u, 0u, 0, ISNANF_TOLERANCE, 0},
+{883, 3019221802u, 3329183205u, 0u, 0, ISNANF_TOLERANCE, 0},
+{884, 1096155623u, 1256423752u, 0u, 0, ISNANF_TOLERANCE, 0},
+{885, 873151908u, 3246562559u, 0u, 0, ISNANF_TOLERANCE, 0},
+{886, 3238729605u, 1298769842u, 0u, 0, ISNANF_TOLERANCE, 0},
+{887, 3317196817u, 989537151u, 0u, 0, ISNANF_TOLERANCE, 0},
+{888, 3374748510u, 834161190u, 0u, 0, ISNANF_TOLERANCE, 0},
+{889, 3345634950u, 959901149u, 0u, 0, ISNANF_TOLERANCE, 0},
+{890, 3189860276u, 883598767u, 0u, 0, ISNANF_TOLERANCE, 0},
+{891, 887311687u, 1175312255u, 0u, 0, ISNANF_TOLERANCE, 0},
+{892, 3396917283u, 3066326686u, 0u, 0, ISNANF_TOLERANCE, 0},
+{893, 3317032737u, 3143803722u, 0u, 0, ISNANF_TOLERANCE, 0},
+{894, 1200051436u, 1163802508u, 0u, 0, ISNANF_TOLERANCE, 0},
+{895, 3105291012u, 1194385202u, 0u, 0, ISNANF_TOLERANCE, 0},
+{896, 1306520561u, 957302464u, 0u, 0, ISNANF_TOLERANCE, 0},
+{897, 1314936356u, 2985592532u, 0u, 0, ISNANF_TOLERANCE, 0},
+{898, 3475052219u, 1284049853u, 0u, 0, ISNANF_TOLERANCE, 0},
+{899, 3085636260u, 1107682820u, 0u, 0, ISNANF_TOLERANCE, 0},
+{900, 2995058661u, 822977912u, 0u, 0, ISNANF_TOLERANCE, 0},
+{901, 3393227708u, 3271879112u, 0u, 0, ISNANF_TOLERANCE, 0},
+{902, 2983919425u, 3341426744u, 0u, 0, ISNANF_TOLERANCE, 0},
+{903, 3182540197u, 852580839u, 0u, 0, ISNANF_TOLERANCE, 0},
+{904, 3349005404u, 3080993030u, 0u, 0, ISNANF_TOLERANCE, 0},
+{905, 3154720153u, 3443720494u, 0u, 0, ISNANF_TOLERANCE, 0},
+{906, 1262863321u, 1219003129u, 0u, 0, ISNANF_TOLERANCE, 0},
+{907, 882902102u, 1224362550u, 0u, 0, ISNANF_TOLERANCE, 0},
+{908, 2995633678u, 828113666u, 0u, 0, ISNANF_TOLERANCE, 0},
+{909, 1053387478u, 3184880021u, 0u, 0, ISNANF_TOLERANCE, 0},
+{910, 3387653691u, 3347783852u, 0u, 0, ISNANF_TOLERANCE, 0},
+{911, 3136364836u, 1018492227u, 0u, 0, ISNANF_TOLERANCE, 0},
+{912, 808412264u, 941158192u, 0u, 0, ISNANF_TOLERANCE, 0},
+{913, 1338680611u, 1166078045u, 0u, 0, ISNANF_TOLERANCE, 0},
+{914, 1112891928u, 3074730425u, 0u, 0, ISNANF_TOLERANCE, 0},
+{915, 893449284u, 1052877339u, 0u, 0, ISNANF_TOLERANCE, 0},
+{916, 892311459u, 1097338393u, 0u, 0, ISNANF_TOLERANCE, 0},
+{917, 3105373037u, 3246705916u, 0u, 0, ISNANF_TOLERANCE, 0},
+{918, 1190105283u, 3033907262u, 0u, 0, ISNANF_TOLERANCE, 0},
+{919, 1011225926u, 1180485180u, 0u, 0, ISNANF_TOLERANCE, 0},
+{920, 1043025031u, 987068973u, 0u, 0, ISNANF_TOLERANCE, 0},
+{921, 3410531037u, 2953541915u, 0u, 0, ISNANF_TOLERANCE, 0},
+{922, 3125834184u, 896953754u, 0u, 0, ISNANF_TOLERANCE, 0},
+{923, 902318189u, 849277289u, 0u, 0, ISNANF_TOLERANCE, 0},
+{924, 835377647u, 3441354730u, 0u, 0, ISNANF_TOLERANCE, 0},
+{925, 2976308307u, 1286944060u, 0u, 0, ISNANF_TOLERANCE, 0},
+{926, 3213624815u, 2987148017u, 0u, 0, ISNANF_TOLERANCE, 0},
+{927, 1120888322u, 1086209113u, 0u, 0, ISNANF_TOLERANCE, 0},
+{928, 1315217243u, 3396371713u, 0u, 0, ISNANF_TOLERANCE, 0},
+{929, 3137758475u, 1039403054u, 0u, 0, ISNANF_TOLERANCE, 0},
+{930, 1040617590u, 1034835971u, 0u, 0, ISNANF_TOLERANCE, 0},
+{931, 955384253u, 3344785562u, 0u, 0, ISNANF_TOLERANCE, 0},
+{932, 853063496u, 3317415965u, 0u, 0, ISNANF_TOLERANCE, 0},
+{933, 823111402u, 877253523u, 0u, 0, ISNANF_TOLERANCE, 0},
+{934, 3061417900u, 1172208065u, 0u, 0, ISNANF_TOLERANCE, 0},
+{935, 904255535u, 1019967545u, 0u, 0, ISNANF_TOLERANCE, 0},
+{936, 1022984119u, 3113891410u, 0u, 0, ISNANF_TOLERANCE, 0},
+{937, 997362368u, 3112875428u, 0u, 0, ISNANF_TOLERANCE, 0},
+{938, 900933520u, 1100589187u, 0u, 0, ISNANF_TOLERANCE, 0},
+{939, 1168623062u, 1143306482u, 0u, 0, ISNANF_TOLERANCE, 0},
+{940, 878737490u, 3269908326u, 0u, 0, ISNANF_TOLERANCE, 0},
+{941, 1039827284u, 1072928888u, 0u, 0, ISNANF_TOLERANCE, 0},
+{942, 1021564080u, 1064468397u, 0u, 0, ISNANF_TOLERANCE, 0},
+{943, 3458669745u, 3033299853u, 0u, 0, ISNANF_TOLERANCE, 0},
+{944, 3327516316u, 3405380971u, 0u, 0, ISNANF_TOLERANCE, 0},
+{945, 1040711112u, 3229444200u, 0u, 0, ISNANF_TOLERANCE, 0},
+{946, 1134528351u, 3365952513u, 0u, 0, ISNANF_TOLERANCE, 0},
+{947, 3039884464u, 1170612785u, 0u, 0, ISNANF_TOLERANCE, 0},
+{948, 3414352838u, 3350285760u, 0u, 0, ISNANF_TOLERANCE, 0},
+{949, 1133689539u, 1067460093u, 0u, 0, ISNANF_TOLERANCE, 0},
+{950, 3455688478u, 3333091960u, 0u, 0, ISNANF_TOLERANCE, 0},
+{951, 1137634874u, 1137038869u, 0u, 0, ISNANF_TOLERANCE, 0},
+{952, 3415502662u, 955510692u, 0u, 0, ISNANF_TOLERANCE, 0},
+{953, 954999730u, 969618597u, 0u, 0, ISNANF_TOLERANCE, 0},
+{954, 1066157309u, 3241712664u, 0u, 0, ISNANF_TOLERANCE, 0},
+{955, 3436353675u, 1174967495u, 0u, 0, ISNANF_TOLERANCE, 0},
+{956, 940437609u, 860372396u, 0u, 0, ISNANF_TOLERANCE, 0},
+{957, 3108347547u, 3434003435u, 0u, 0, ISNANF_TOLERANCE, 0},
+{958, 3064200154u, 3158080507u, 0u, 0, ISNANF_TOLERANCE, 0},
+{959, 1023889593u, 2979304683u, 0u, 0, ISNANF_TOLERANCE, 0},
+{960, 3272661536u, 3461799138u, 0u, 0, ISNANF_TOLERANCE, 0},
+{961, 1170245333u, 1233406410u, 0u, 0, ISNANF_TOLERANCE, 0},
+{962, 1219052056u, 3369557946u, 0u, 0, ISNANF_TOLERANCE, 0},
+{963, 3318983619u, 3259663338u, 0u, 0, ISNANF_TOLERANCE, 0},
+{964, 3372118621u, 837597103u, 0u, 0, ISNANF_TOLERANCE, 0},
+{965, 3146190320u, 889646054u, 0u, 0, ISNANF_TOLERANCE, 0},
+{966, 1299683827u, 966031619u, 0u, 0, ISNANF_TOLERANCE, 0},
+{967, 3190796331u, 1320011850u, 0u, 0, ISNANF_TOLERANCE, 0},
+{968, 2965838479u, 805822032u, 0u, 0, ISNANF_TOLERANCE, 0},
+{969, 3086068902u, 3484245751u, 0u, 0, ISNANF_TOLERANCE, 0},
+{970, 3064155399u, 3176569312u, 0u, 0, ISNANF_TOLERANCE, 0},
+{971, 836858201u, 3132995403u, 0u, 0, ISNANF_TOLERANCE, 0},
+{972, 3040314717u, 1071290674u, 0u, 0, ISNANF_TOLERANCE, 0},
+{973, 3257224022u, 3361778245u, 0u, 0, ISNANF_TOLERANCE, 0},
+{974, 1229268598u, 1066965677u, 0u, 0, ISNANF_TOLERANCE, 0},
+{975, 3184078812u, 871003709u, 0u, 0, ISNANF_TOLERANCE, 0},
+{976, 871255076u, 3446104825u, 0u, 0, ISNANF_TOLERANCE, 0},
+{977, 1086717248u, 3423795374u, 0u, 0, ISNANF_TOLERANCE, 0},
+{978, 3434884607u, 3029593823u, 0u, 0, ISNANF_TOLERANCE, 0},
+{979, 3464955606u, 1017987696u, 0u, 0, ISNANF_TOLERANCE, 0},
+{980, 1025278524u, 3121856207u, 0u, 0, ISNANF_TOLERANCE, 0},
+{981, 1242829722u, 3233935671u, 0u, 0, ISNANF_TOLERANCE, 0},
+{982, 3075149137u, 1117325737u, 0u, 0, ISNANF_TOLERANCE, 0},
+{983, 1200927971u, 1317167489u, 0u, 0, ISNANF_TOLERANCE, 0},
+{984, 3326858092u, 3452602832u, 0u, 0, ISNANF_TOLERANCE, 0},
+{985, 2995203347u, 1021818696u, 0u, 0, ISNANF_TOLERANCE, 0},
+{986, 1246019790u, 850632217u, 0u, 0, ISNANF_TOLERANCE, 0},
+{987, 3184801644u, 1137974313u, 0u, 0, ISNANF_TOLERANCE, 0},
+{988, 1136052740u, 3244616020u, 0u, 0, ISNANF_TOLERANCE, 0},
+{989, 1069009211u, 3002507482u, 0u, 0, ISNANF_TOLERANCE, 0},
+{990, 1015670780u, 1101217251u, 0u, 0, ISNANF_TOLERANCE, 0},
+{991, 1012543234u, 1116520440u, 0u, 0, ISNANF_TOLERANCE, 0},
+{992, 3316611992u, 3394732912u, 0u, 0, ISNANF_TOLERANCE, 0},
+{993, 3012101436u, 3307846870u, 0u, 0, ISNANF_TOLERANCE, 0},
+{994, 1087942795u, 3316660295u, 0u, 0, ISNANF_TOLERANCE, 0},
+{995, 3426365713u, 3069778532u, 0u, 0, ISNANF_TOLERANCE, 0},
+{996, 3066654389u, 3443934204u, 0u, 0, ISNANF_TOLERANCE, 0},
+{997, 3295326432u, 1313396175u, 0u, 0, ISNANF_TOLERANCE, 0},
+{998, 3318835308u, 3277583511u, 0u, 0, ISNANF_TOLERANCE, 0},
+{999, 3283555717u, 891875120u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1000, 3381255420u, 3015406047u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1001, 3040485181u, 3375450886u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1002, 3388772093u, 1032597076u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1003, 954670189u, 1144923689u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1004, 1319200415u, 3387555900u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1005, 1279324488u, 3228401212u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1006, 3217795424u, 865577227u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1007, 3455131757u, 1260217257u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1008, 2982636375u, 3162157233u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1009, 1246947517u, 1087951909u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1010, 3396723577u, 869285240u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1011, 3433761025u, 3060143904u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1012, 3201187455u, 900233172u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1013, 1173247961u, 1191127979u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1014, 3037297123u, 3346394818u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1015, 3248534678u, 1323683800u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1016, 3083019343u, 3033309444u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1017, 3042018375u, 3203882372u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1018, 1082862511u, 3032804719u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1019, 3157626955u, 3483653298u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1020, 1341821683u, 3003675365u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1021, 881101379u, 1190838126u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1022, 1079061705u, 2960507663u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1023, 3182695954u, 3256861672u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1024, 1105291533u, 3482971524u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1025, 1016023520u, 3227712090u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1026, 3370691006u, 1295870514u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1027, 1156767169u, 1049756240u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1028, 3077020499u, 894671462u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1029, 1104284039u, 3040211914u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1030, 3335212901u, 3486414589u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1031, 1093697541u, 3193708441u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1032, 3266691185u, 1160074593u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1033, 3179003144u, 1108615803u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1034, 1094115255u, 3008610212u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1035, 2994604730u, 973792195u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1036, 3424086808u, 3260140004u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1037, 2957266025u, 917932067u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1038, 3353608773u, 1134068114u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1039, 2985838945u, 3118475644u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1040, 973664327u, 1319516167u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1041, 882878091u, 3136970767u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1042, 1098662266u, 833740182u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1043, 927582555u, 947955456u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1044, 3111440310u, 3067634077u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1045, 3476083859u, 966439623u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1046, 3038754840u, 932009686u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1047, 979878744u, 1232482646u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1048, 3464546616u, 3205527253u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1049, 1002542205u, 3152136093u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1050, 3443552129u, 3165561391u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1051, 1287620154u, 3119707283u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1052, 820906845u, 1196920413u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1053, 860108361u, 921064349u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1054, 946058434u, 1249928879u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1055, 3073260205u, 3093124531u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1056, 1245702957u, 894348966u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1057, 989655126u, 1308376568u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1058, 1002715618u, 1191006977u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1059, 3087802274u, 897541752u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1060, 1000863905u, 1196831314u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1061, 3415763001u, 3032518431u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1062, 2979924820u, 1100234812u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1063, 3283471961u, 1260093226u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1064, 3311210827u, 1192192264u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1065, 3026311911u, 2968974374u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1066, 1198307901u, 1116328249u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1067, 1288901567u, 1296370667u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1068, 922255363u, 958305289u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1069, 1113104661u, 944376032u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1070, 1136714348u, 828849087u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1071, 3002059872u, 1136817970u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1072, 948856035u, 1015466475u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1073, 1062512367u, 3229559531u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1074, 3486907092u, 823220784u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1075, 3015049792u, 3078555978u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1076, 1162027071u, 3308983387u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1077, 1034561811u, 1054043114u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1078, 853827378u, 898656161u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1079, 3271615417u, 3209997200u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1080, 1042014529u, 1146708584u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1081, 1177157787u, 3090208179u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1082, 3196144817u, 1056118717u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1083, 3432084552u, 2997091781u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1084, 1309658335u, 1010219988u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1085, 3004373345u, 873739132u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1086, 2997667929u, 1038223245u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1087, 1226494979u, 2991604792u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1088, 3100289712u, 3456334210u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1089, 3375507013u, 1306310823u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1090, 3460699001u, 3096700943u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1091, 3079231719u, 1044386263u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1092, 3093951884u, 1014115231u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1093, 3468023178u, 1209565017u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1094, 3008182310u, 1258900986u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1095, 1204196034u, 3298625731u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1096, 3459877411u, 2960476959u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1097, 909696559u, 1163075690u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1098, 1161439847u, 943449277u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1099, 908663107u, 939489763u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1100, 1055319316u, 3261813492u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1101, 1084378658u, 1009650785u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1102, 3053887750u, 3341786453u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1103, 3022828828u, 881335251u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1104, 2995476576u, 3194911588u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1105, 1226473697u, 821025132u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1106, 1123114742u, 1229815537u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1107, 1258114435u, 1291336083u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1108, 2983818103u, 3015402015u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1109, 3468040845u, 3066966245u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1110, 1178825761u, 1113195286u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1111, 3059266302u, 878503862u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1112, 3223384012u, 1130486973u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1113, 1019964626u, 1235133609u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1114, 3445262427u, 3465211174u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1115, 1125653081u, 1207799746u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1116, 3337652712u, 3025581813u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1117, 1184753508u, 3147374485u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1118, 996404791u, 3353251979u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1119, 1188439315u, 1113484271u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1120, 906557513u, 3006513432u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1121, 916831283u, 999465787u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1122, 996786317u, 3179221951u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1123, 3461635065u, 1004690387u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1124, 1188167943u, 1200744896u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1125, 3036502395u, 1172597364u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1126, 891257783u, 1267560050u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1127, 3290079438u, 846519377u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1128, 3350690327u, 2967953392u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1129, 1102061604u, 3424449935u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1130, 1282351521u, 3039376424u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1131, 3458861065u, 3392466405u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1132, 3095256878u, 1023623326u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1133, 3163373610u, 843150426u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1134, 3228793330u, 855146890u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1135, 3422194733u, 893873945u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1136, 3083885296u, 974543672u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1137, 1261940623u, 3402349985u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1138, 825039660u, 3426717554u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1139, 3400603081u, 3234396843u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1140, 1219411812u, 2961857939u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1141, 3094833770u, 805351108u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1142, 3139250800u, 3079109479u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1143, 886201503u, 3272760705u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1144, 3297366026u, 1089966380u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1145, 1218488455u, 3309646450u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1146, 3040358923u, 3093401553u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1147, 862346861u, 3411853707u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1148, 1283938137u, 1196383822u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1149, 3182551696u, 3029982441u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1150, 1317098613u, 949986176u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1151, 3116209179u, 3303588342u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1152, 3431703657u, 3014443710u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1153, 3239728775u, 927815421u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1154, 3207141672u, 933456504u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1155, 3154378805u, 905462392u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1156, 3069658155u, 1041452042u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1157, 3313160088u, 2964063309u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1158, 3207056527u, 3384206601u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1159, 1284174954u, 3436881197u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1160, 3156081645u, 3308839704u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1161, 1063693032u, 976661408u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1162, 3036026175u, 1251203998u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1163, 1102631663u, 3396951425u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1164, 968803479u, 992989712u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1165, 3273080388u, 3109405906u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1166, 1172529774u, 3294550127u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1167, 1306695905u, 1292690378u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1168, 1003649752u, 1218792138u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1169, 1078478376u, 1326246424u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1170, 3158855023u, 3151283866u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1171, 1165177679u, 3276237026u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1172, 870472127u, 3332532333u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1173, 3403009513u, 3381966453u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1174, 816825508u, 3032174124u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1175, 952348506u, 3377573987u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1176, 839544701u, 3419900937u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1177, 2967454456u, 3313359047u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1178, 1222777442u, 1125769920u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1179, 1325324763u, 978336043u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1180, 3363524213u, 3202991311u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1181, 1158950321u, 1073578913u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1182, 903129873u, 3416864271u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1183, 2997685349u, 1123653663u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1184, 3078339944u, 988173985u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1185, 1208345407u, 1254181270u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1186, 3003262042u, 1327277116u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1187, 1258634105u, 1247426200u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1188, 1248478509u, 1287895126u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1189, 1153863988u, 3430539165u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1190, 1235620969u, 866627358u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1191, 1097120930u, 3221726305u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1192, 3469778622u, 1200179013u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1193, 1147712200u, 931865525u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1194, 812694172u, 1136276190u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1195, 862266739u, 3139447362u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1196, 1124721745u, 3058969650u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1197, 3261744304u, 1043806501u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1198, 832324055u, 2954061156u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1199, 805759679u, 903848557u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1200, 2983396015u, 872299138u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1201, 1064922416u, 1320485628u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1202, 868114980u, 3213276361u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1203, 3303160152u, 3075455322u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1204, 1315090496u, 3269683237u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1205, 850876090u, 3365795667u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1206, 3230403187u, 1322841992u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1207, 1335399673u, 974138676u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1208, 1072458508u, 3372833993u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1209, 3303015249u, 3015039539u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1210, 3252139741u, 1059615003u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1211, 3468519966u, 3113982619u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1212, 1006231203u, 897530770u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1213, 951554138u, 1001144381u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1214, 942046828u, 986341002u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1215, 2968517146u, 951832467u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1216, 3319723279u, 3414482416u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1217, 3255104167u, 928827688u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1218, 1155477903u, 3104812800u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1219, 3273889176u, 980486479u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1220, 3237813668u, 3441016803u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1221, 1228207362u, 2985476579u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1222, 975349337u, 1311932596u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1223, 2982583196u, 3132904446u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1224, 1290175785u, 3008182462u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1225, 981908840u, 3314038398u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1226, 941187647u, 1107765599u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1227, 1214223128u, 3225536822u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1228, 3422922584u, 1086391131u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1229, 1315857601u, 3487600045u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1230, 3453226030u, 3233768835u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1231, 1078359574u, 3199175230u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1232, 1029557624u, 3302959071u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1233, 1207675424u, 3042692550u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1234, 1028355074u, 3442294040u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1235, 3119299090u, 1187096397u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1236, 1248421894u, 3367769132u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1237, 3353251994u, 1095517730u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1238, 876926659u, 3288089977u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1239, 1076752219u, 876236939u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1240, 3388531942u, 2988520062u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1241, 1273395082u, 3031189261u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1242, 3385588183u, 3258252464u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1243, 862047095u, 829323655u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1244, 3192315328u, 3289489214u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1245, 3441804648u, 3274638356u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1246, 837368567u, 3228474927u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1247, 3392827417u, 1277961150u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1248, 1161241793u, 1328003707u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1249, 856495732u, 3123041418u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1250, 3034494183u, 3041579130u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1251, 1171318485u, 3374409104u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1252, 3047748143u, 831102792u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1253, 1001216371u, 3052357038u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1254, 2999541351u, 3085461799u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1255, 912515889u, 1074635609u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1256, 3391452505u, 897989232u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1257, 3249603369u, 3147662248u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1258, 1220264047u, 2960450369u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1259, 3169816394u, 988430929u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1260, 3098997418u, 3002162688u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1261, 3282212423u, 3174079140u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1262, 3352293320u, 3247843425u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1263, 3296358441u, 875645354u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1264, 1197828352u, 3245614728u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1265, 3340510371u, 914930263u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1266, 1127109339u, 3368125489u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1267, 816173492u, 1083268662u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1268, 909467381u, 1232375752u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1269, 1200599955u, 2981200675u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1270, 962230977u, 2988248037u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1271, 2996667337u, 1068572835u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1272, 3192887808u, 3191848339u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1273, 3237183876u, 3179379969u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1274, 939285924u, 3056079386u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1275, 944050180u, 3452557879u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1276, 3058135703u, 3090284601u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1277, 3480592662u, 3261728191u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1278, 3061939312u, 3274418540u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1279, 1003299981u, 853295521u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1280, 1155775526u, 1255814444u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1281, 1234491880u, 3408568717u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1282, 2143289344u, 2143289344u, 1065353216u, 0, ISNANF_TOLERANCE, 0},
+{1283, 4290772992u, 4290772992u, 1065353216u, 0, ISNANF_TOLERANCE, 0},
+{1284, 2139095040u, 2139095040u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1285, 4286578688u, 4286578688u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1286, 2143289344u, 2143289344u, 1065353216u, 0, ISNANF_TOLERANCE, 0},
+{1287, 4290772992u, 4290772992u, 1065353216u, 0, ISNANF_TOLERANCE, 0},
+{1288, 2139095040u, 2139095040u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1289, 4286578688u, 4286578688u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1290, 2143289344u, 2143289344u, 1065353216u, 0, ISNANF_TOLERANCE, 0},
+{1291, 4290772992u, 4290772992u, 1065353216u, 0, ISNANF_TOLERANCE, 0},
+{1292, 2139095040u, 2139095040u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1293, 4286578688u, 4286578688u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1294, 2143289344u, 2143289344u, 1065353216u, 0, ISNANF_TOLERANCE, 0},
+{1295, 4290772992u, 4290772992u, 1065353216u, 0, ISNANF_TOLERANCE, 0},
+{1296, 2139095040u, 2139095040u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1297, 4286578688u, 4286578688u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1298, 2143289344u, 2143289344u, 1065353216u, 0, ISNANF_TOLERANCE, 0},
+{1299, 4290772992u, 4290772992u, 1065353216u, 0, ISNANF_TOLERANCE, 0},
+{1300, 2139095040u, 2139095040u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1301, 4286578688u, 4286578688u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1302, 2143289344u, 2143289344u, 1065353216u, 0, ISNANF_TOLERANCE, 0},
+{1303, 4290772992u, 4290772992u, 1065353216u, 0, ISNANF_TOLERANCE, 0},
+{1304, 2139095040u, 2139095040u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1305, 4286578688u, 4286578688u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1306, 2143289344u, 2143289344u, 1065353216u, 0, ISNANF_TOLERANCE, 0},
+{1307, 4290772992u, 4290772992u, 1065353216u, 0, ISNANF_TOLERANCE, 0},
+{1308, 2139095040u, 2139095040u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1309, 4286578688u, 4286578688u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1310, 2143289344u, 2143289344u, 1065353216u, 0, ISNANF_TOLERANCE, 0},
+{1311, 4290772992u, 4290772992u, 1065353216u, 0, ISNANF_TOLERANCE, 0},
+{1312, 2139095040u, 2139095040u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1313, 4286578688u, 4286578688u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1314, 2143289344u, 2143289344u, 1065353216u, 0, ISNANF_TOLERANCE, 0},
+{1315, 4290772992u, 4290772992u, 1065353216u, 0, ISNANF_TOLERANCE, 0},
+{1316, 2139095040u, 2139095040u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1317, 4286578688u, 4286578688u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1318, 2143289344u, 2143289344u, 1065353216u, 0, ISNANF_TOLERANCE, 0},
+{1319, 4290772992u, 4290772992u, 1065353216u, 0, ISNANF_TOLERANCE, 0},
+{1320, 2139095040u, 2139095040u, 0u, 0, ISNANF_TOLERANCE, 0},
+{1321, 4286578688u, 4286578688u, 0u, 0, ISNANF_TOLERANCE, 0}
+
+// AUTOMATICALLY GENERATED VECTORS STOP
+
+};
+
+#endif // CYGONCE_LIBM_ISNANF_H multiple inclusion protection
+
+// EOF isnanf.h
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/j0f.c b/ecos/packages/language/c/libm/current/tests/vectors/j0f.c
new file mode 100644
index 0000000..4860e5e
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/j0f.c
@@ -0,0 +1,115 @@
+//===========================================================================
+//
+// j0f.c
+//
+// Test of j0f() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// Declarations for test system:
+//
+// TESTCASE_TYPE=CYG_TEST_MODULE
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include <cyg/infra/testcase.h> // Test infrastructure
+#include <math.h> // Header for this package
+#include <sys/ieeefp.h> // Cyg_libm_ieee_float_shape_type
+#include "vectors/vector_support_float.h"// extra support for math tests
+
+#include "vectors/j0f.h"
+
+// FUNCTIONS
+
+static void
+test( CYG_ADDRWORD data )
+{
+ cyg_ucount32 vec_size;
+ cyg_bool ret;
+
+ vec_size = sizeof(j0f_vec) / sizeof(Cyg_libm_test_float_vec_t);
+ ret = doTestVecFloat( (CYG_ADDRWORD) &j0f, CYG_LIBM_TEST_VEC_FLOAT,
+ CYG_LIBM_TEST_VEC_NONE, CYG_LIBM_TEST_VEC_FLOAT,
+ &j0f_vec[0], vec_size );
+
+ if (ret==true)
+ {
+ CYG_TEST_PASS("j0f() is stable");
+ } // if
+ else
+ {
+ CYG_TEST_FAIL("j0f() failed tests");
+ } // else
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for Math "
+ "library j0f() function");
+} // test()
+
+
+int
+main(int argc, char *argv[])
+{
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for Math library "
+ "j0f() function");
+
+ START_TEST( test );
+
+ CYG_TEST_PASS_FINISH("Testing is not applicable to this configuration");
+
+} // main()
+
+
+// EOF j0f.c
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/j0f.h b/ecos/packages/language/c/libm/current/tests/vectors/j0f.h
new file mode 100644
index 0000000..6ea53aa
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/j0f.h
@@ -0,0 +1,362 @@
+#ifndef CYGONCE_LIBM_J0_H
+#define CYGONCE_LIBM_J0_H
+//===========================================================================
+//
+// j0f.h
+//
+// Test vectors for testing of j0f() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage: #include "vectors/j0f.h"
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include "vectors/vector_support_float.h"// extra support for math tests
+
+#define J0_TOLERANCE 1.0E-04
+
+static const Cyg_libm_test_float_vec_t j0f_vec[] = {
+
+// AUTOMATICALLY GENERATED VECTORS START
+
+{0, 3214514586u, 1059835739u, 1059835739u, 0, J0_TOLERANCE, 0},
+{1, 3214430700u, 1059919122u, 1059919122u, 0, J0_TOLERANCE, 0},
+{2, 3214346813u, 1060002071u, 1060002071u, 0, J0_TOLERANCE, 0},
+{3, 3214262927u, 1060084577u, 1060084577u, 0, J0_TOLERANCE, 0},
+{4, 3214179041u, 1060166635u, 1060166635u, 0, J0_TOLERANCE, 0},
+{5, 3214095155u, 1060248241u, 1060248241u, 0, J0_TOLERANCE, 0},
+{6, 3214011269u, 1060329386u, 1060329386u, 0, J0_TOLERANCE, 0},
+{7, 3213927383u, 1060410067u, 1060410067u, 0, J0_TOLERANCE, 0},
+{8, 3213843497u, 1060490274u, 1060490274u, 0, J0_TOLERANCE, 0},
+{9, 3213759611u, 1060570006u, 1060570006u, 0, J0_TOLERANCE, 0},
+{10, 3213675725u, 1060649254u, 1060649254u, 0, J0_TOLERANCE, 0},
+{11, 3213591839u, 1060728013u, 1060728013u, 0, J0_TOLERANCE, 0},
+{12, 3213507953u, 1060806276u, 1060806276u, 0, J0_TOLERANCE, 0},
+{13, 3213424067u, 1060884039u, 1060884039u, 0, J0_TOLERANCE, 0},
+{14, 3213340180u, 1060961298u, 1060961298u, 0, J0_TOLERANCE, 0},
+{15, 3213256294u, 1061038042u, 1061038042u, 0, J0_TOLERANCE, 0},
+{16, 3213172408u, 1061114269u, 1061114269u, 0, J0_TOLERANCE, 0},
+{17, 3213088522u, 1061189972u, 1061189972u, 0, J0_TOLERANCE, 0},
+{18, 3213004636u, 1061265147u, 1061265147u, 0, J0_TOLERANCE, 0},
+{19, 3212920750u, 1061339787u, 1061339787u, 0, J0_TOLERANCE, 0},
+{20, 3212836864u, 1061413887u, 1061413887u, 0, J0_TOLERANCE, 0},
+{21, 3212669092u, 1061487442u, 1061487442u, 0, J0_TOLERANCE, 0},
+{22, 3212501320u, 1061560445u, 1061560445u, 0, J0_TOLERANCE, 0},
+{23, 3212333548u, 1061632891u, 1061632891u, 0, J0_TOLERANCE, 0},
+{24, 3212165775u, 1061704777u, 1061704777u, 0, J0_TOLERANCE, 0},
+{25, 3211998003u, 1061776097u, 1061776097u, 0, J0_TOLERANCE, 0},
+{26, 3211830231u, 1061846843u, 1061846843u, 0, J0_TOLERANCE, 0},
+{27, 3211662459u, 1061917012u, 1061917012u, 0, J0_TOLERANCE, 0},
+{28, 3211494687u, 1061986598u, 1061986598u, 0, J0_TOLERANCE, 0},
+{29, 3211326915u, 1062055596u, 1062055596u, 0, J0_TOLERANCE, 0},
+{30, 3211159142u, 1062124001u, 1062124001u, 0, J0_TOLERANCE, 0},
+{31, 3210991370u, 1062191808u, 1062191808u, 0, J0_TOLERANCE, 0},
+{32, 3210823598u, 1062259012u, 1062259012u, 0, J0_TOLERANCE, 0},
+{33, 3210655826u, 1062325608u, 1062325608u, 0, J0_TOLERANCE, 0},
+{34, 3210488054u, 1062391591u, 1062391591u, 0, J0_TOLERANCE, 0},
+{35, 3210320282u, 1062456956u, 1062456956u, 0, J0_TOLERANCE, 0},
+{36, 3210152509u, 1062521700u, 1062521700u, 0, J0_TOLERANCE, 0},
+{37, 3209984737u, 1062585814u, 1062585814u, 0, J0_TOLERANCE, 0},
+{38, 3209816965u, 1062649297u, 1062649297u, 0, J0_TOLERANCE, 0},
+{39, 3209649193u, 1062712142u, 1062712142u, 0, J0_TOLERANCE, 0},
+{40, 3209481421u, 1062774345u, 1062774345u, 0, J0_TOLERANCE, 0},
+{41, 3209313649u, 1062835904u, 1062835904u, 0, J0_TOLERANCE, 0},
+{42, 3209145876u, 1062896811u, 1062896811u, 0, J0_TOLERANCE, 0},
+{43, 3208978104u, 1062957061u, 1062957061u, 0, J0_TOLERANCE, 0},
+{44, 3208810332u, 1063016653u, 1063016653u, 0, J0_TOLERANCE, 0},
+{45, 3208642560u, 1063075578u, 1063075578u, 0, J0_TOLERANCE, 0},
+{46, 3208474788u, 1063133838u, 1063133838u, 0, J0_TOLERANCE, 0},
+{47, 3208307016u, 1063191423u, 1063191423u, 0, J0_TOLERANCE, 0},
+{48, 3208139244u, 1063248330u, 1063248330u, 0, J0_TOLERANCE, 0},
+{49, 3207971471u, 1063304557u, 1063304557u, 0, J0_TOLERANCE, 0},
+{50, 3207803699u, 1063360098u, 1063360098u, 0, J0_TOLERANCE, 0},
+{51, 3207635927u, 1063414948u, 1063414948u, 0, J0_TOLERANCE, 0},
+{52, 3207468155u, 1063469104u, 1063469104u, 0, J0_TOLERANCE, 0},
+{53, 3207300383u, 1063522564u, 1063522564u, 0, J0_TOLERANCE, 0},
+{54, 3207132611u, 1063575320u, 1063575320u, 0, J0_TOLERANCE, 0},
+{55, 3206964838u, 1063627371u, 1063627371u, 0, J0_TOLERANCE, 0},
+{56, 3206797066u, 1063678713u, 1063678713u, 0, J0_TOLERANCE, 0},
+{57, 3206629294u, 1063729339u, 1063729339u, 0, J0_TOLERANCE, 0},
+{58, 3206461522u, 1063779249u, 1063779249u, 0, J0_TOLERANCE, 0},
+{59, 3206293750u, 1063828438u, 1063828438u, 0, J0_TOLERANCE, 0},
+{60, 3206125978u, 1063876903u, 1063876903u, 0, J0_TOLERANCE, 0},
+{61, 3205958205u, 1063924638u, 1063924638u, 0, J0_TOLERANCE, 0},
+{62, 3205790433u, 1063971642u, 1063971642u, 0, J0_TOLERANCE, 0},
+{63, 3205622661u, 1064017911u, 1064017911u, 0, J0_TOLERANCE, 0},
+{64, 3205454889u, 1064063439u, 1064063439u, 0, J0_TOLERANCE, 0},
+{65, 3205287117u, 1064108226u, 1064108226u, 0, J0_TOLERANCE, 0},
+{66, 3205119345u, 1064152266u, 1064152266u, 0, J0_TOLERANCE, 0},
+{67, 3204951572u, 1064195560u, 1064195560u, 0, J0_TOLERANCE, 0},
+{68, 3204783800u, 1064238100u, 1064238100u, 0, J0_TOLERANCE, 0},
+{69, 3204616028u, 1064279884u, 1064279884u, 0, J0_TOLERANCE, 0},
+{70, 3204448256u, 1064320911u, 1064320911u, 0, J0_TOLERANCE, 0},
+{71, 3204112712u, 1064361174u, 1064361174u, 0, J0_TOLERANCE, 0},
+{72, 3203777167u, 1064400675u, 1064400675u, 0, J0_TOLERANCE, 0},
+{73, 3203441623u, 1064439408u, 1064439408u, 0, J0_TOLERANCE, 0},
+{74, 3203106079u, 1064477370u, 1064477370u, 0, J0_TOLERANCE, 0},
+{75, 3202770534u, 1064514559u, 1064514559u, 0, J0_TOLERANCE, 0},
+{76, 3202434990u, 1064550972u, 1064550972u, 0, J0_TOLERANCE, 0},
+{77, 3202099446u, 1064586606u, 1064586606u, 0, J0_TOLERANCE, 0},
+{78, 3201763901u, 1064621459u, 1064621459u, 0, J0_TOLERANCE, 0},
+{79, 3201428357u, 1064655526u, 1064655526u, 0, J0_TOLERANCE, 0},
+{80, 3201092813u, 1064688809u, 1064688809u, 0, J0_TOLERANCE, 0},
+{81, 3200757268u, 1064721302u, 1064721302u, 0, J0_TOLERANCE, 0},
+{82, 3200421724u, 1064753003u, 1064753003u, 0, J0_TOLERANCE, 0},
+{83, 3200086180u, 1064783911u, 1064783911u, 0, J0_TOLERANCE, 0},
+{84, 3199750636u, 1064814022u, 1064814022u, 0, J0_TOLERANCE, 0},
+{85, 3199415091u, 1064843334u, 1064843334u, 0, J0_TOLERANCE, 0},
+{86, 3199079547u, 1064871847u, 1064871847u, 0, J0_TOLERANCE, 0},
+{87, 3198744003u, 1064899556u, 1064899556u, 0, J0_TOLERANCE, 0},
+{88, 3198408458u, 1064926461u, 1064926461u, 0, J0_TOLERANCE, 0},
+{89, 3198072914u, 1064952558u, 1064952558u, 0, J0_TOLERANCE, 0},
+{90, 3197737370u, 1064977846u, 1064977846u, 0, J0_TOLERANCE, 0},
+{91, 3197401825u, 1065002325u, 1065002325u, 0, J0_TOLERANCE, 0},
+{92, 3197066281u, 1065025991u, 1065025991u, 0, J0_TOLERANCE, 0},
+{93, 3196730737u, 1065048842u, 1065048842u, 0, J0_TOLERANCE, 0},
+{94, 3196395192u, 1065070877u, 1065070877u, 0, J0_TOLERANCE, 0},
+{95, 3196059648u, 1065092094u, 1065092094u, 0, J0_TOLERANCE, 0},
+{96, 3195388559u, 1065112493u, 1065112493u, 0, J0_TOLERANCE, 0},
+{97, 3194717471u, 1065132069u, 1065132069u, 0, J0_TOLERANCE, 0},
+{98, 3194046382u, 1065150825u, 1065150825u, 0, J0_TOLERANCE, 0},
+{99, 3193375293u, 1065168757u, 1065168757u, 0, J0_TOLERANCE, 0},
+{100, 3192704205u, 1065185863u, 1065185863u, 0, J0_TOLERANCE, 0},
+{101, 3192033116u, 1065202143u, 1065202143u, 0, J0_TOLERANCE, 0},
+{102, 3191362028u, 1065217596u, 1065217596u, 0, J0_TOLERANCE, 0},
+{103, 3190690939u, 1065232219u, 1065232219u, 0, J0_TOLERANCE, 0},
+{104, 3190019850u, 1065246014u, 1065246014u, 0, J0_TOLERANCE, 0},
+{105, 3189348762u, 1065258977u, 1065258977u, 0, J0_TOLERANCE, 0},
+{106, 3188677673u, 1065271109u, 1065271109u, 0, J0_TOLERANCE, 0},
+{107, 3188006584u, 1065282406u, 1065282406u, 0, J0_TOLERANCE, 0},
+{108, 3186999951u, 1065292873u, 1065292873u, 0, J0_TOLERANCE, 0},
+{109, 3185657774u, 1065302503u, 1065302503u, 0, J0_TOLERANCE, 0},
+{110, 3184315597u, 1065311299u, 1065311299u, 0, J0_TOLERANCE, 0},
+{111, 3182973420u, 1065319259u, 1065319259u, 0, J0_TOLERANCE, 0},
+{112, 3181631242u, 1065326383u, 1065326383u, 0, J0_TOLERANCE, 0},
+{113, 3180289065u, 1065332670u, 1065332670u, 0, J0_TOLERANCE, 0},
+{114, 3178611343u, 1065338120u, 1065338120u, 0, J0_TOLERANCE, 0},
+{115, 3175926989u, 1065342731u, 1065342731u, 0, J0_TOLERANCE, 0},
+{116, 3173242634u, 1065346505u, 1065346505u, 0, J0_TOLERANCE, 0},
+{117, 3170222735u, 1065349441u, 1065349441u, 0, J0_TOLERANCE, 0},
+{118, 3164854026u, 1065351539u, 1065351539u, 0, J0_TOLERANCE, 0},
+{119, 3156465418u, 1065352797u, 1065352797u, 0, J0_TOLERANCE, 0},
+{120, 1008981770u, 1065352797u, 1065352797u, 0, J0_TOLERANCE, 0},
+{121, 1017370378u, 1065351539u, 1065351539u, 0, J0_TOLERANCE, 0},
+{122, 1022739087u, 1065349441u, 1065349441u, 0, J0_TOLERANCE, 0},
+{123, 1025758986u, 1065346505u, 1065346505u, 0, J0_TOLERANCE, 0},
+{124, 1028443341u, 1065342731u, 1065342731u, 0, J0_TOLERANCE, 0},
+{125, 1031127695u, 1065338120u, 1065338120u, 0, J0_TOLERANCE, 0},
+{126, 1032805417u, 1065332670u, 1065332670u, 0, J0_TOLERANCE, 0},
+{127, 1034147594u, 1065326383u, 1065326383u, 0, J0_TOLERANCE, 0},
+{128, 1035489772u, 1065319259u, 1065319259u, 0, J0_TOLERANCE, 0},
+{129, 1036831949u, 1065311299u, 1065311299u, 0, J0_TOLERANCE, 0},
+{130, 1038174126u, 1065302503u, 1065302503u, 0, J0_TOLERANCE, 0},
+{131, 1039516303u, 1065292873u, 1065292873u, 0, J0_TOLERANCE, 0},
+{132, 1040522936u, 1065282406u, 1065282406u, 0, J0_TOLERANCE, 0},
+{133, 1041194025u, 1065271109u, 1065271109u, 0, J0_TOLERANCE, 0},
+{134, 1041865114u, 1065258977u, 1065258977u, 0, J0_TOLERANCE, 0},
+{135, 1042536202u, 1065246014u, 1065246014u, 0, J0_TOLERANCE, 0},
+{136, 1043207291u, 1065232219u, 1065232219u, 0, J0_TOLERANCE, 0},
+{137, 1043878380u, 1065217596u, 1065217596u, 0, J0_TOLERANCE, 0},
+{138, 1044549468u, 1065202143u, 1065202143u, 0, J0_TOLERANCE, 0},
+{139, 1045220557u, 1065185863u, 1065185863u, 0, J0_TOLERANCE, 0},
+{140, 1045891645u, 1065168757u, 1065168757u, 0, J0_TOLERANCE, 0},
+{141, 1046562734u, 1065150825u, 1065150825u, 0, J0_TOLERANCE, 0},
+{142, 1047233823u, 1065132069u, 1065132069u, 0, J0_TOLERANCE, 0},
+{143, 1047904911u, 1065112493u, 1065112493u, 0, J0_TOLERANCE, 0},
+{144, 1048576000u, 1065092094u, 1065092094u, 0, J0_TOLERANCE, 0},
+{145, 1048911544u, 1065070877u, 1065070877u, 0, J0_TOLERANCE, 0},
+{146, 1049247089u, 1065048842u, 1065048842u, 0, J0_TOLERANCE, 0},
+{147, 1049582633u, 1065025991u, 1065025991u, 0, J0_TOLERANCE, 0},
+{148, 1049918177u, 1065002325u, 1065002325u, 0, J0_TOLERANCE, 0},
+{149, 1050253722u, 1064977846u, 1064977846u, 0, J0_TOLERANCE, 0},
+{150, 1050589266u, 1064952558u, 1064952558u, 0, J0_TOLERANCE, 0},
+{151, 1050924810u, 1064926461u, 1064926461u, 0, J0_TOLERANCE, 0},
+{152, 1051260355u, 1064899556u, 1064899556u, 0, J0_TOLERANCE, 0},
+{153, 1051595899u, 1064871847u, 1064871847u, 0, J0_TOLERANCE, 0},
+{154, 1051931443u, 1064843334u, 1064843334u, 0, J0_TOLERANCE, 0},
+{155, 1052266988u, 1064814022u, 1064814022u, 0, J0_TOLERANCE, 0},
+{156, 1052602532u, 1064783911u, 1064783911u, 0, J0_TOLERANCE, 0},
+{157, 1052938076u, 1064753003u, 1064753003u, 0, J0_TOLERANCE, 0},
+{158, 1053273620u, 1064721302u, 1064721302u, 0, J0_TOLERANCE, 0},
+{159, 1053609165u, 1064688809u, 1064688809u, 0, J0_TOLERANCE, 0},
+{160, 1053944709u, 1064655526u, 1064655526u, 0, J0_TOLERANCE, 0},
+{161, 1054280253u, 1064621459u, 1064621459u, 0, J0_TOLERANCE, 0},
+{162, 1054615798u, 1064586606u, 1064586606u, 0, J0_TOLERANCE, 0},
+{163, 1054951342u, 1064550972u, 1064550972u, 0, J0_TOLERANCE, 0},
+{164, 1055286886u, 1064514559u, 1064514559u, 0, J0_TOLERANCE, 0},
+{165, 1055622431u, 1064477370u, 1064477370u, 0, J0_TOLERANCE, 0},
+{166, 1055957975u, 1064439408u, 1064439408u, 0, J0_TOLERANCE, 0},
+{167, 1056293519u, 1064400675u, 1064400675u, 0, J0_TOLERANCE, 0},
+{168, 1056629064u, 1064361174u, 1064361174u, 0, J0_TOLERANCE, 0},
+{169, 1056964608u, 1064320911u, 1064320911u, 0, J0_TOLERANCE, 0},
+{170, 1057132380u, 1064279884u, 1064279884u, 0, J0_TOLERANCE, 0},
+{171, 1057300152u, 1064238100u, 1064238100u, 0, J0_TOLERANCE, 0},
+{172, 1057467924u, 1064195560u, 1064195560u, 0, J0_TOLERANCE, 0},
+{173, 1057635697u, 1064152266u, 1064152266u, 0, J0_TOLERANCE, 0},
+{174, 1057803469u, 1064108226u, 1064108226u, 0, J0_TOLERANCE, 0},
+{175, 1057971241u, 1064063439u, 1064063439u, 0, J0_TOLERANCE, 0},
+{176, 1058139013u, 1064017911u, 1064017911u, 0, J0_TOLERANCE, 0},
+{177, 1058306785u, 1063971642u, 1063971642u, 0, J0_TOLERANCE, 0},
+{178, 1058474557u, 1063924638u, 1063924638u, 0, J0_TOLERANCE, 0},
+{179, 1058642330u, 1063876903u, 1063876903u, 0, J0_TOLERANCE, 0},
+{180, 1058810102u, 1063828438u, 1063828438u, 0, J0_TOLERANCE, 0},
+{181, 1058977874u, 1063779249u, 1063779249u, 0, J0_TOLERANCE, 0},
+{182, 1059145646u, 1063729339u, 1063729339u, 0, J0_TOLERANCE, 0},
+{183, 1059313418u, 1063678713u, 1063678713u, 0, J0_TOLERANCE, 0},
+{184, 1059481190u, 1063627371u, 1063627371u, 0, J0_TOLERANCE, 0},
+{185, 1059648963u, 1063575320u, 1063575320u, 0, J0_TOLERANCE, 0},
+{186, 1059816735u, 1063522564u, 1063522564u, 0, J0_TOLERANCE, 0},
+{187, 1059984507u, 1063469104u, 1063469104u, 0, J0_TOLERANCE, 0},
+{188, 1060152279u, 1063414948u, 1063414948u, 0, J0_TOLERANCE, 0},
+{189, 1060320051u, 1063360098u, 1063360098u, 0, J0_TOLERANCE, 0},
+{190, 1060487823u, 1063304557u, 1063304557u, 0, J0_TOLERANCE, 0},
+{191, 1060655596u, 1063248330u, 1063248330u, 0, J0_TOLERANCE, 0},
+{192, 1060823368u, 1063191423u, 1063191423u, 0, J0_TOLERANCE, 0},
+{193, 1060991140u, 1063133838u, 1063133838u, 0, J0_TOLERANCE, 0},
+{194, 1061158912u, 1063075578u, 1063075578u, 0, J0_TOLERANCE, 0},
+{195, 1061326684u, 1063016653u, 1063016653u, 0, J0_TOLERANCE, 0},
+{196, 1061494456u, 1062957061u, 1062957061u, 0, J0_TOLERANCE, 0},
+{197, 1061662228u, 1062896811u, 1062896811u, 0, J0_TOLERANCE, 0},
+{198, 1061830001u, 1062835904u, 1062835904u, 0, J0_TOLERANCE, 0},
+{199, 1061997773u, 1062774345u, 1062774345u, 0, J0_TOLERANCE, 0},
+{200, 1062165545u, 1062712142u, 1062712142u, 0, J0_TOLERANCE, 0},
+{201, 1062333317u, 1062649297u, 1062649297u, 0, J0_TOLERANCE, 0},
+{202, 1062501089u, 1062585814u, 1062585814u, 0, J0_TOLERANCE, 0},
+{203, 1062668861u, 1062521700u, 1062521700u, 0, J0_TOLERANCE, 0},
+{204, 1062836634u, 1062456956u, 1062456956u, 0, J0_TOLERANCE, 0},
+{205, 1063004406u, 1062391591u, 1062391591u, 0, J0_TOLERANCE, 0},
+{206, 1063172178u, 1062325608u, 1062325608u, 0, J0_TOLERANCE, 0},
+{207, 1063339950u, 1062259012u, 1062259012u, 0, J0_TOLERANCE, 0},
+{208, 1063507722u, 1062191808u, 1062191808u, 0, J0_TOLERANCE, 0},
+{209, 1063675494u, 1062124001u, 1062124001u, 0, J0_TOLERANCE, 0},
+{210, 1063843267u, 1062055596u, 1062055596u, 0, J0_TOLERANCE, 0},
+{211, 1064011039u, 1061986598u, 1061986598u, 0, J0_TOLERANCE, 0},
+{212, 1064178811u, 1061917012u, 1061917012u, 0, J0_TOLERANCE, 0},
+{213, 1064346583u, 1061846843u, 1061846843u, 0, J0_TOLERANCE, 0},
+{214, 1064514355u, 1061776097u, 1061776097u, 0, J0_TOLERANCE, 0},
+{215, 1064682127u, 1061704777u, 1061704777u, 0, J0_TOLERANCE, 0},
+{216, 1064849900u, 1061632891u, 1061632891u, 0, J0_TOLERANCE, 0},
+{217, 1065017672u, 1061560445u, 1061560445u, 0, J0_TOLERANCE, 0},
+{218, 1065185444u, 1061487442u, 1061487442u, 0, J0_TOLERANCE, 0},
+{219, 1065353216u, 1061413887u, 1061413887u, 0, J0_TOLERANCE, 0},
+{220, 1065437102u, 1061339787u, 1061339787u, 0, J0_TOLERANCE, 0},
+{221, 1065520988u, 1061265147u, 1061265147u, 0, J0_TOLERANCE, 0},
+{222, 1065604874u, 1061189972u, 1061189972u, 0, J0_TOLERANCE, 0},
+{223, 1065688760u, 1061114269u, 1061114269u, 0, J0_TOLERANCE, 0},
+{224, 1065772646u, 1061038042u, 1061038042u, 0, J0_TOLERANCE, 0},
+{225, 1065856532u, 1060961298u, 1060961298u, 0, J0_TOLERANCE, 0},
+{226, 1065940419u, 1060884039u, 1060884039u, 0, J0_TOLERANCE, 0},
+{227, 1066024305u, 1060806276u, 1060806276u, 0, J0_TOLERANCE, 0},
+{228, 1066108191u, 1060728013u, 1060728013u, 0, J0_TOLERANCE, 0},
+{229, 1066192077u, 1060649254u, 1060649254u, 0, J0_TOLERANCE, 0},
+{230, 1066275963u, 1060570006u, 1060570006u, 0, J0_TOLERANCE, 0},
+{231, 1066359849u, 1060490274u, 1060490274u, 0, J0_TOLERANCE, 0},
+{232, 1066443735u, 1060410067u, 1060410067u, 0, J0_TOLERANCE, 0},
+{233, 1066527621u, 1060329386u, 1060329386u, 0, J0_TOLERANCE, 0},
+{234, 1066611507u, 1060248241u, 1060248241u, 0, J0_TOLERANCE, 0},
+{235, 1066695393u, 1060166635u, 1060166635u, 0, J0_TOLERANCE, 0},
+{236, 1066779279u, 1060084577u, 1060084577u, 0, J0_TOLERANCE, 0},
+{237, 1066863165u, 1060002071u, 1060002071u, 0, J0_TOLERANCE, 0},
+{238, 1066947052u, 1059919122u, 1059919122u, 0, J0_TOLERANCE, 0},
+{239, 3234402267u, 1046581329u, 1046581329u, 0, J0_TOLERANCE, 0},
+{240, 3231108068u, 3196591726u, 3196591726u, 0, J0_TOLERANCE, 0},
+{241, 3226013659u, 3197879715u, 3197879715u, 0, J0_TOLERANCE, 0},
+{242, 3217625051u, 1056025123u, 1056025123u, 0, J0_TOLERANCE, 0},
+{243, 0u, 1065353216u, 1065353216u, 0, J0_TOLERANCE, 0},
+{244, 1070141403u, 1056025123u, 1056025123u, 0, J0_TOLERANCE, 0},
+{245, 1078530011u, 3197879715u, 3197879715u, 0, J0_TOLERANCE, 0},
+{246, 1083624420u, 3196591726u, 3196591726u, 0, J0_TOLERANCE, 0},
+{247, 3253731328u, 3182485944u, 3182485944u, 0, J0_TOLERANCE, 0},
+{248, 3252840038u, 3185426433u, 3185426433u, 0, J0_TOLERANCE, 0},
+{249, 3251948749u, 1039591153u, 1039591153u, 0, J0_TOLERANCE, 0},
+{250, 3251057459u, 1034583247u, 1034583247u, 0, J0_TOLERANCE, 0},
+{251, 3250166170u, 3189440518u, 3189440518u, 0, J0_TOLERANCE, 0},
+{252, 3249274880u, 3175642986u, 3175642986u, 0, J0_TOLERANCE, 0},
+{253, 3248383590u, 1043678978u, 1043678978u, 0, J0_TOLERANCE, 0},
+{254, 3247492301u, 1001510262u, 1001510262u, 0, J0_TOLERANCE, 0},
+{255, 3246601011u, 3192434080u, 3192434080u, 0, J0_TOLERANCE, 0},
+{256, 3245028147u, 1027810392u, 1027810392u, 0, J0_TOLERANCE, 0},
+{257, 3243245568u, 1045685354u, 1045685354u, 0, J0_TOLERANCE, 0},
+{258, 3241462989u, 3185935415u, 3185935415u, 0, J0_TOLERANCE, 0},
+{259, 3239680410u, 3193306751u, 3193306751u, 0, J0_TOLERANCE, 0},
+{260, 3237792973u, 1044842218u, 1044842218u, 0, J0_TOLERANCE, 0},
+{261, 3234227814u, 1045337775u, 1045337775u, 0, J0_TOLERANCE, 0},
+{262, 3230662656u, 3198426660u, 3198426660u, 0, J0_TOLERANCE, 0},
+{263, 3224580915u, 3191699990u, 3191699990u, 0, J0_TOLERANCE, 0},
+{264, 3213675725u, 1060649254u, 1060649254u, 0, J0_TOLERANCE, 0},
+{265, 1058642330u, 1063876903u, 1063876903u, 0, J0_TOLERANCE, 0},
+{266, 1075000115u, 1029930430u, 1029930430u, 0, J0_TOLERANCE, 0},
+{267, 1082130432u, 3200997175u, 3200997175u, 0, J0_TOLERANCE, 0},
+{268, 1085695590u, 1031106245u, 1031106245u, 0, J0_TOLERANCE, 0},
+{269, 1089260749u, 1049535541u, 1049535541u, 0, J0_TOLERANCE, 0},
+{270, 1091672474u, 3186226740u, 3186226740u, 0, J0_TOLERANCE, 0},
+{271, 1093455053u, 3192919090u, 3192919090u, 0, J0_TOLERANCE, 0},
+{272, 1095237632u, 1041655994u, 1041655994u, 0, J0_TOLERANCE, 0},
+{273, 1097020211u, 1041285935u, 1041285935u, 0, J0_TOLERANCE, 0},
+{274, 1098802790u, 3190353411u, 3190353411u, 0, J0_TOLERANCE, 0},
+{275, 1099746509u, 3182480552u, 3182480552u, 0, J0_TOLERANCE, 0},
+{276, 1100637798u, 1043281599u, 1043281599u, 0, J0_TOLERANCE, 0},
+{277, 1101529088u, 1024840698u, 1024840698u, 0, J0_TOLERANCE, 0},
+{278, 1102420378u, 3190481736u, 3190481736u, 0, J0_TOLERANCE, 0},
+{279, 1103311667u, 1006337519u, 1006337519u, 0, J0_TOLERANCE, 0},
+{280, 1104202957u, 1042114878u, 1042114878u, 0, J0_TOLERANCE, 0},
+{281, 1105094246u, 3174763439u, 3174763439u, 0, J0_TOLERANCE, 0},
+{282, 1105985536u, 3188217836u, 3188217836u, 0, J0_TOLERANCE, 0}
+
+// AUTOMATICALLY GENERATED VECTORS STOP
+
+};
+
+#endif // CYGONCE_LIBM_J0_H multiple inclusion protection
+
+// EOF j0f.h
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/j1f.c b/ecos/packages/language/c/libm/current/tests/vectors/j1f.c
new file mode 100644
index 0000000..e7e684d
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/j1f.c
@@ -0,0 +1,115 @@
+//===========================================================================
+//
+// j1f.c
+//
+// Test of j1f() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// Declarations for test system:
+//
+// TESTCASE_TYPE=CYG_TEST_MODULE
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include <cyg/infra/testcase.h> // Test infrastructure
+#include <math.h> // Header for this package
+#include <sys/ieeefp.h> // Cyg_libm_ieee_float_shape_type
+#include "vectors/vector_support_float.h"// extra support for math tests
+
+#include "vectors/j1f.h"
+
+// FUNCTIONS
+
+static void
+test( CYG_ADDRWORD data )
+{
+ cyg_ucount32 vec_size;
+ cyg_bool ret;
+
+ vec_size = sizeof(j1f_vec) / sizeof(Cyg_libm_test_float_vec_t);
+ ret = doTestVecFloat( (CYG_ADDRWORD) &j1f, CYG_LIBM_TEST_VEC_FLOAT,
+ CYG_LIBM_TEST_VEC_NONE, CYG_LIBM_TEST_VEC_FLOAT,
+ &j1f_vec[0], vec_size );
+
+ if (ret==true)
+ {
+ CYG_TEST_PASS("j1f() is stable");
+ } // if
+ else
+ {
+ CYG_TEST_FAIL("j1f() failed tests");
+ } // else
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for Math "
+ "library j1f() function");
+} // test()
+
+
+int
+main(int argc, char *argv[])
+{
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for Math library "
+ "j1f() function");
+
+ START_TEST( test );
+
+ CYG_TEST_PASS_FINISH("Testing is not applicable to this configuration");
+
+} // main()
+
+
+// EOF j1f.c
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/j1f.h b/ecos/packages/language/c/libm/current/tests/vectors/j1f.h
new file mode 100644
index 0000000..099a152
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/j1f.h
@@ -0,0 +1,362 @@
+#ifndef CYGONCE_LIBM_J1_H
+#define CYGONCE_LIBM_J1_H
+//===========================================================================
+//
+// j1f.h
+//
+// Test vectors for testing of j1f() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage: #include "vectors/j1f.h"
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include "vectors/vector_support_float.h"// extra support for math tests
+
+#define J1_TOLERANCE 1.0E-04
+
+static const Cyg_libm_test_float_vec_t j1f_vec[] = {
+
+// AUTOMATICALLY GENERATED VECTORS START
+
+{0, 3214514586u, 3204390847u, 3204390847u, 0, J1_TOLERANCE, 0},
+{1, 3214430700u, 3204304372u, 3204304372u, 0, J1_TOLERANCE, 0},
+{2, 3214346813u, 3204216675u, 3204216675u, 0, J1_TOLERANCE, 0},
+{3, 3214262927u, 3204127764u, 3204127764u, 0, J1_TOLERANCE, 0},
+{4, 3214179041u, 3204037646u, 3204037646u, 0, J1_TOLERANCE, 0},
+{5, 3214095155u, 3203946324u, 3203946324u, 0, J1_TOLERANCE, 0},
+{6, 3214011269u, 3203853807u, 3203853807u, 0, J1_TOLERANCE, 0},
+{7, 3213927383u, 3203760099u, 3203760099u, 0, J1_TOLERANCE, 0},
+{8, 3213843497u, 3203665208u, 3203665208u, 0, J1_TOLERANCE, 0},
+{9, 3213759611u, 3203569140u, 3203569140u, 0, J1_TOLERANCE, 0},
+{10, 3213675725u, 3203471902u, 3203471902u, 0, J1_TOLERANCE, 0},
+{11, 3213591839u, 3203373501u, 3203373501u, 0, J1_TOLERANCE, 0},
+{12, 3213507953u, 3203273943u, 3203273943u, 0, J1_TOLERANCE, 0},
+{13, 3213424067u, 3203173236u, 3203173236u, 0, J1_TOLERANCE, 0},
+{14, 3213340180u, 3203071384u, 3203071384u, 0, J1_TOLERANCE, 0},
+{15, 3213256294u, 3202968397u, 3202968397u, 0, J1_TOLERANCE, 0},
+{16, 3213172408u, 3202864283u, 3202864283u, 0, J1_TOLERANCE, 0},
+{17, 3213088522u, 3202759048u, 3202759048u, 0, J1_TOLERANCE, 0},
+{18, 3213004636u, 3202652698u, 3202652698u, 0, J1_TOLERANCE, 0},
+{19, 3212920750u, 3202545242u, 3202545242u, 0, J1_TOLERANCE, 0},
+{20, 3212836864u, 3202436688u, 3202436688u, 0, J1_TOLERANCE, 0},
+{21, 3212669092u, 3202327042u, 3202327042u, 0, J1_TOLERANCE, 0},
+{22, 3212501320u, 3202216313u, 3202216313u, 0, J1_TOLERANCE, 0},
+{23, 3212333548u, 3202104510u, 3202104510u, 0, J1_TOLERANCE, 0},
+{24, 3212165775u, 3201991637u, 3201991637u, 0, J1_TOLERANCE, 0},
+{25, 3211998003u, 3201877707u, 3201877707u, 0, J1_TOLERANCE, 0},
+{26, 3211830231u, 3201762724u, 3201762724u, 0, J1_TOLERANCE, 0},
+{27, 3211662459u, 3201646699u, 3201646699u, 0, J1_TOLERANCE, 0},
+{28, 3211494687u, 3201529639u, 3201529639u, 0, J1_TOLERANCE, 0},
+{29, 3211326915u, 3201411552u, 3201411552u, 0, J1_TOLERANCE, 0},
+{30, 3211159142u, 3201292447u, 3201292447u, 0, J1_TOLERANCE, 0},
+{31, 3210991370u, 3201172332u, 3201172332u, 0, J1_TOLERANCE, 0},
+{32, 3210823598u, 3201051217u, 3201051217u, 0, J1_TOLERANCE, 0},
+{33, 3210655826u, 3200929110u, 3200929110u, 0, J1_TOLERANCE, 0},
+{34, 3210488054u, 3200806018u, 3200806018u, 0, J1_TOLERANCE, 0},
+{35, 3210320282u, 3200681954u, 3200681954u, 0, J1_TOLERANCE, 0},
+{36, 3210152509u, 3200556922u, 3200556922u, 0, J1_TOLERANCE, 0},
+{37, 3209984737u, 3200430935u, 3200430935u, 0, J1_TOLERANCE, 0},
+{38, 3209816965u, 3200304001u, 3200304001u, 0, J1_TOLERANCE, 0},
+{39, 3209649193u, 3200176127u, 3200176127u, 0, J1_TOLERANCE, 0},
+{40, 3209481421u, 3200047325u, 3200047325u, 0, J1_TOLERANCE, 0},
+{41, 3209313649u, 3199917604u, 3199917604u, 0, J1_TOLERANCE, 0},
+{42, 3209145876u, 3199786971u, 3199786971u, 0, J1_TOLERANCE, 0},
+{43, 3208978104u, 3199655439u, 3199655439u, 0, J1_TOLERANCE, 0},
+{44, 3208810332u, 3199523016u, 3199523016u, 0, J1_TOLERANCE, 0},
+{45, 3208642560u, 3199389711u, 3199389711u, 0, J1_TOLERANCE, 0},
+{46, 3208474788u, 3199255534u, 3199255534u, 0, J1_TOLERANCE, 0},
+{47, 3208307016u, 3199120495u, 3199120495u, 0, J1_TOLERANCE, 0},
+{48, 3208139244u, 3198984604u, 3198984604u, 0, J1_TOLERANCE, 0},
+{49, 3207971471u, 3198847871u, 3198847871u, 0, J1_TOLERANCE, 0},
+{50, 3207803699u, 3198710305u, 3198710305u, 0, J1_TOLERANCE, 0},
+{51, 3207635927u, 3198571918u, 3198571918u, 0, J1_TOLERANCE, 0},
+{52, 3207468155u, 3198432718u, 3198432718u, 0, J1_TOLERANCE, 0},
+{53, 3207300383u, 3198292717u, 3198292717u, 0, J1_TOLERANCE, 0},
+{54, 3207132611u, 3198151925u, 3198151925u, 0, J1_TOLERANCE, 0},
+{55, 3206964838u, 3198010350u, 3198010350u, 0, J1_TOLERANCE, 0},
+{56, 3206797066u, 3197868004u, 3197868004u, 0, J1_TOLERANCE, 0},
+{57, 3206629294u, 3197724900u, 3197724900u, 0, J1_TOLERANCE, 0},
+{58, 3206461522u, 3197581046u, 3197581046u, 0, J1_TOLERANCE, 0},
+{59, 3206293750u, 3197436451u, 3197436451u, 0, J1_TOLERANCE, 0},
+{60, 3206125978u, 3197291130u, 3197291130u, 0, J1_TOLERANCE, 0},
+{61, 3205958205u, 3197145088u, 3197145088u, 0, J1_TOLERANCE, 0},
+{62, 3205790433u, 3196998341u, 3196998341u, 0, J1_TOLERANCE, 0},
+{63, 3205622661u, 3196850897u, 3196850897u, 0, J1_TOLERANCE, 0},
+{64, 3205454889u, 3196702768u, 3196702768u, 0, J1_TOLERANCE, 0},
+{65, 3205287117u, 3196553966u, 3196553966u, 0, J1_TOLERANCE, 0},
+{66, 3205119345u, 3196404499u, 3196404499u, 0, J1_TOLERANCE, 0},
+{67, 3204951572u, 3196254379u, 3196254379u, 0, J1_TOLERANCE, 0},
+{68, 3204783800u, 3196103619u, 3196103619u, 0, J1_TOLERANCE, 0},
+{69, 3204616028u, 3195844811u, 3195844811u, 0, J1_TOLERANCE, 0},
+{70, 3204448256u, 3195540793u, 3195540793u, 0, J1_TOLERANCE, 0},
+{71, 3204112712u, 3195235560u, 3195235560u, 0, J1_TOLERANCE, 0},
+{72, 3203777167u, 3194929135u, 3194929135u, 0, J1_TOLERANCE, 0},
+{73, 3203441623u, 3194621539u, 3194621539u, 0, J1_TOLERANCE, 0},
+{74, 3203106079u, 3194312798u, 3194312798u, 0, J1_TOLERANCE, 0},
+{75, 3202770534u, 3194002931u, 3194002931u, 0, J1_TOLERANCE, 0},
+{76, 3202434990u, 3193691965u, 3193691965u, 0, J1_TOLERANCE, 0},
+{77, 3202099446u, 3193379921u, 3193379921u, 0, J1_TOLERANCE, 0},
+{78, 3201763901u, 3193066821u, 3193066821u, 0, J1_TOLERANCE, 0},
+{79, 3201428357u, 3192752691u, 3192752691u, 0, J1_TOLERANCE, 0},
+{80, 3201092813u, 3192437553u, 3192437553u, 0, J1_TOLERANCE, 0},
+{81, 3200757268u, 3192121430u, 3192121430u, 0, J1_TOLERANCE, 0},
+{82, 3200421724u, 3191804346u, 3191804346u, 0, J1_TOLERANCE, 0},
+{83, 3200086180u, 3191486326u, 3191486326u, 0, J1_TOLERANCE, 0},
+{84, 3199750636u, 3191167393u, 3191167393u, 0, J1_TOLERANCE, 0},
+{85, 3199415091u, 3190847568u, 3190847568u, 0, J1_TOLERANCE, 0},
+{86, 3199079547u, 3190526878u, 3190526878u, 0, J1_TOLERANCE, 0},
+{87, 3198744003u, 3190205347u, 3190205347u, 0, J1_TOLERANCE, 0},
+{88, 3198408458u, 3189882997u, 3189882997u, 0, J1_TOLERANCE, 0},
+{89, 3198072914u, 3189559853u, 3189559853u, 0, J1_TOLERANCE, 0},
+{90, 3197737370u, 3189235939u, 3189235939u, 0, J1_TOLERANCE, 0},
+{91, 3197401825u, 3188911280u, 3188911280u, 0, J1_TOLERANCE, 0},
+{92, 3197066281u, 3188585899u, 3188585899u, 0, J1_TOLERANCE, 0},
+{93, 3196730737u, 3188259823u, 3188259823u, 0, J1_TOLERANCE, 0},
+{94, 3196395192u, 3187933072u, 3187933072u, 0, J1_TOLERANCE, 0},
+{95, 3196059648u, 3187540310u, 3187540310u, 0, J1_TOLERANCE, 0},
+{96, 3195388559u, 3186884265u, 3186884265u, 0, J1_TOLERANCE, 0},
+{97, 3194717471u, 3186227024u, 3186227024u, 0, J1_TOLERANCE, 0},
+{98, 3194046382u, 3185568632u, 3185568632u, 0, J1_TOLERANCE, 0},
+{99, 3193375293u, 3184909141u, 3184909141u, 0, J1_TOLERANCE, 0},
+{100, 3192704205u, 3184248599u, 3184248599u, 0, J1_TOLERANCE, 0},
+{101, 3192033116u, 3183587058u, 3183587058u, 0, J1_TOLERANCE, 0},
+{102, 3191362028u, 3182924563u, 3182924563u, 0, J1_TOLERANCE, 0},
+{103, 3190690939u, 3182261167u, 3182261167u, 0, J1_TOLERANCE, 0},
+{104, 3190019850u, 3181596918u, 3181596918u, 0, J1_TOLERANCE, 0},
+{105, 3189348762u, 3180931869u, 3180931869u, 0, J1_TOLERANCE, 0},
+{106, 3188677673u, 3180266065u, 3180266065u, 0, J1_TOLERANCE, 0},
+{107, 3188006584u, 3179599559u, 3179599559u, 0, J1_TOLERANCE, 0},
+{108, 3186999951u, 3178582370u, 3178582370u, 0, J1_TOLERANCE, 0},
+{109, 3185657774u, 3177246847u, 3177246847u, 0, J1_TOLERANCE, 0},
+{110, 3184315597u, 3175910219u, 3175910219u, 0, J1_TOLERANCE, 0},
+{111, 3182973420u, 3174572585u, 3174572585u, 0, J1_TOLERANCE, 0},
+{112, 3181631242u, 3173234046u, 3173234046u, 0, J1_TOLERANCE, 0},
+{113, 3180289065u, 3171894704u, 3171894704u, 0, J1_TOLERANCE, 0},
+{114, 3178611343u, 3170215488u, 3170215488u, 0, J1_TOLERANCE, 0},
+{115, 3175926989u, 3167534188u, 3167534188u, 0, J1_TOLERANCE, 0},
+{116, 3173242634u, 3164851878u, 3164851878u, 0, J1_TOLERANCE, 0},
+{117, 3170222735u, 3161832315u, 3161832315u, 0, J1_TOLERANCE, 0},
+{118, 3164854026u, 3156464881u, 3156464881u, 0, J1_TOLERANCE, 0},
+{119, 3156465418u, 3148076676u, 3148076676u, 0, J1_TOLERANCE, 0},
+{120, 1008981770u, 1000593028u, 1000593028u, 0, J1_TOLERANCE, 0},
+{121, 1017370378u, 1008981233u, 1008981233u, 0, J1_TOLERANCE, 0},
+{122, 1022739087u, 1014348667u, 1014348667u, 0, J1_TOLERANCE, 0},
+{123, 1025758986u, 1017368230u, 1017368230u, 0, J1_TOLERANCE, 0},
+{124, 1028443341u, 1020050540u, 1020050540u, 0, J1_TOLERANCE, 0},
+{125, 1031127695u, 1022731840u, 1022731840u, 0, J1_TOLERANCE, 0},
+{126, 1032805417u, 1024411056u, 1024411056u, 0, J1_TOLERANCE, 0},
+{127, 1034147594u, 1025750398u, 1025750398u, 0, J1_TOLERANCE, 0},
+{128, 1035489772u, 1027088937u, 1027088937u, 0, J1_TOLERANCE, 0},
+{129, 1036831949u, 1028426571u, 1028426571u, 0, J1_TOLERANCE, 0},
+{130, 1038174126u, 1029763199u, 1029763199u, 0, J1_TOLERANCE, 0},
+{131, 1039516303u, 1031098722u, 1031098722u, 0, J1_TOLERANCE, 0},
+{132, 1040522936u, 1032115911u, 1032115911u, 0, J1_TOLERANCE, 0},
+{133, 1041194025u, 1032782417u, 1032782417u, 0, J1_TOLERANCE, 0},
+{134, 1041865114u, 1033448221u, 1033448221u, 0, J1_TOLERANCE, 0},
+{135, 1042536202u, 1034113270u, 1034113270u, 0, J1_TOLERANCE, 0},
+{136, 1043207291u, 1034777519u, 1034777519u, 0, J1_TOLERANCE, 0},
+{137, 1043878380u, 1035440915u, 1035440915u, 0, J1_TOLERANCE, 0},
+{138, 1044549468u, 1036103410u, 1036103410u, 0, J1_TOLERANCE, 0},
+{139, 1045220557u, 1036764951u, 1036764951u, 0, J1_TOLERANCE, 0},
+{140, 1045891645u, 1037425493u, 1037425493u, 0, J1_TOLERANCE, 0},
+{141, 1046562734u, 1038084984u, 1038084984u, 0, J1_TOLERANCE, 0},
+{142, 1047233823u, 1038743376u, 1038743376u, 0, J1_TOLERANCE, 0},
+{143, 1047904911u, 1039400617u, 1039400617u, 0, J1_TOLERANCE, 0},
+{144, 1048576000u, 1040056662u, 1040056662u, 0, J1_TOLERANCE, 0},
+{145, 1048911544u, 1040449424u, 1040449424u, 0, J1_TOLERANCE, 0},
+{146, 1049247089u, 1040776175u, 1040776175u, 0, J1_TOLERANCE, 0},
+{147, 1049582633u, 1041102251u, 1041102251u, 0, J1_TOLERANCE, 0},
+{148, 1049918177u, 1041427632u, 1041427632u, 0, J1_TOLERANCE, 0},
+{149, 1050253722u, 1041752291u, 1041752291u, 0, J1_TOLERANCE, 0},
+{150, 1050589266u, 1042076205u, 1042076205u, 0, J1_TOLERANCE, 0},
+{151, 1050924810u, 1042399349u, 1042399349u, 0, J1_TOLERANCE, 0},
+{152, 1051260355u, 1042721699u, 1042721699u, 0, J1_TOLERANCE, 0},
+{153, 1051595899u, 1043043230u, 1043043230u, 0, J1_TOLERANCE, 0},
+{154, 1051931443u, 1043363920u, 1043363920u, 0, J1_TOLERANCE, 0},
+{155, 1052266988u, 1043683745u, 1043683745u, 0, J1_TOLERANCE, 0},
+{156, 1052602532u, 1044002678u, 1044002678u, 0, J1_TOLERANCE, 0},
+{157, 1052938076u, 1044320698u, 1044320698u, 0, J1_TOLERANCE, 0},
+{158, 1053273620u, 1044637782u, 1044637782u, 0, J1_TOLERANCE, 0},
+{159, 1053609165u, 1044953905u, 1044953905u, 0, J1_TOLERANCE, 0},
+{160, 1053944709u, 1045269043u, 1045269043u, 0, J1_TOLERANCE, 0},
+{161, 1054280253u, 1045583173u, 1045583173u, 0, J1_TOLERANCE, 0},
+{162, 1054615798u, 1045896273u, 1045896273u, 0, J1_TOLERANCE, 0},
+{163, 1054951342u, 1046208317u, 1046208317u, 0, J1_TOLERANCE, 0},
+{164, 1055286886u, 1046519283u, 1046519283u, 0, J1_TOLERANCE, 0},
+{165, 1055622431u, 1046829150u, 1046829150u, 0, J1_TOLERANCE, 0},
+{166, 1055957975u, 1047137891u, 1047137891u, 0, J1_TOLERANCE, 0},
+{167, 1056293519u, 1047445487u, 1047445487u, 0, J1_TOLERANCE, 0},
+{168, 1056629064u, 1047751912u, 1047751912u, 0, J1_TOLERANCE, 0},
+{169, 1056964608u, 1048057145u, 1048057145u, 0, J1_TOLERANCE, 0},
+{170, 1057132380u, 1048361163u, 1048361163u, 0, J1_TOLERANCE, 0},
+{171, 1057300152u, 1048619971u, 1048619971u, 0, J1_TOLERANCE, 0},
+{172, 1057467924u, 1048770731u, 1048770731u, 0, J1_TOLERANCE, 0},
+{173, 1057635697u, 1048920851u, 1048920851u, 0, J1_TOLERANCE, 0},
+{174, 1057803469u, 1049070318u, 1049070318u, 0, J1_TOLERANCE, 0},
+{175, 1057971241u, 1049219120u, 1049219120u, 0, J1_TOLERANCE, 0},
+{176, 1058139013u, 1049367249u, 1049367249u, 0, J1_TOLERANCE, 0},
+{177, 1058306785u, 1049514693u, 1049514693u, 0, J1_TOLERANCE, 0},
+{178, 1058474557u, 1049661440u, 1049661440u, 0, J1_TOLERANCE, 0},
+{179, 1058642330u, 1049807482u, 1049807482u, 0, J1_TOLERANCE, 0},
+{180, 1058810102u, 1049952803u, 1049952803u, 0, J1_TOLERANCE, 0},
+{181, 1058977874u, 1050097398u, 1050097398u, 0, J1_TOLERANCE, 0},
+{182, 1059145646u, 1050241252u, 1050241252u, 0, J1_TOLERANCE, 0},
+{183, 1059313418u, 1050384356u, 1050384356u, 0, J1_TOLERANCE, 0},
+{184, 1059481190u, 1050526702u, 1050526702u, 0, J1_TOLERANCE, 0},
+{185, 1059648963u, 1050668277u, 1050668277u, 0, J1_TOLERANCE, 0},
+{186, 1059816735u, 1050809069u, 1050809069u, 0, J1_TOLERANCE, 0},
+{187, 1059984507u, 1050949070u, 1050949070u, 0, J1_TOLERANCE, 0},
+{188, 1060152279u, 1051088270u, 1051088270u, 0, J1_TOLERANCE, 0},
+{189, 1060320051u, 1051226657u, 1051226657u, 0, J1_TOLERANCE, 0},
+{190, 1060487823u, 1051364223u, 1051364223u, 0, J1_TOLERANCE, 0},
+{191, 1060655596u, 1051500956u, 1051500956u, 0, J1_TOLERANCE, 0},
+{192, 1060823368u, 1051636847u, 1051636847u, 0, J1_TOLERANCE, 0},
+{193, 1060991140u, 1051771886u, 1051771886u, 0, J1_TOLERANCE, 0},
+{194, 1061158912u, 1051906063u, 1051906063u, 0, J1_TOLERANCE, 0},
+{195, 1061326684u, 1052039368u, 1052039368u, 0, J1_TOLERANCE, 0},
+{196, 1061494456u, 1052171791u, 1052171791u, 0, J1_TOLERANCE, 0},
+{197, 1061662228u, 1052303323u, 1052303323u, 0, J1_TOLERANCE, 0},
+{198, 1061830001u, 1052433956u, 1052433956u, 0, J1_TOLERANCE, 0},
+{199, 1061997773u, 1052563677u, 1052563677u, 0, J1_TOLERANCE, 0},
+{200, 1062165545u, 1052692479u, 1052692479u, 0, J1_TOLERANCE, 0},
+{201, 1062333317u, 1052820353u, 1052820353u, 0, J1_TOLERANCE, 0},
+{202, 1062501089u, 1052947287u, 1052947287u, 0, J1_TOLERANCE, 0},
+{203, 1062668861u, 1053073274u, 1053073274u, 0, J1_TOLERANCE, 0},
+{204, 1062836634u, 1053198306u, 1053198306u, 0, J1_TOLERANCE, 0},
+{205, 1063004406u, 1053322370u, 1053322370u, 0, J1_TOLERANCE, 0},
+{206, 1063172178u, 1053445462u, 1053445462u, 0, J1_TOLERANCE, 0},
+{207, 1063339950u, 1053567569u, 1053567569u, 0, J1_TOLERANCE, 0},
+{208, 1063507722u, 1053688684u, 1053688684u, 0, J1_TOLERANCE, 0},
+{209, 1063675494u, 1053808799u, 1053808799u, 0, J1_TOLERANCE, 0},
+{210, 1063843267u, 1053927904u, 1053927904u, 0, J1_TOLERANCE, 0},
+{211, 1064011039u, 1054045991u, 1054045991u, 0, J1_TOLERANCE, 0},
+{212, 1064178811u, 1054163051u, 1054163051u, 0, J1_TOLERANCE, 0},
+{213, 1064346583u, 1054279076u, 1054279076u, 0, J1_TOLERANCE, 0},
+{214, 1064514355u, 1054394059u, 1054394059u, 0, J1_TOLERANCE, 0},
+{215, 1064682127u, 1054507989u, 1054507989u, 0, J1_TOLERANCE, 0},
+{216, 1064849900u, 1054620862u, 1054620862u, 0, J1_TOLERANCE, 0},
+{217, 1065017672u, 1054732665u, 1054732665u, 0, J1_TOLERANCE, 0},
+{218, 1065185444u, 1054843394u, 1054843394u, 0, J1_TOLERANCE, 0},
+{219, 1065353216u, 1054953040u, 1054953040u, 0, J1_TOLERANCE, 0},
+{220, 1065437102u, 1055061594u, 1055061594u, 0, J1_TOLERANCE, 0},
+{221, 1065520988u, 1055169050u, 1055169050u, 0, J1_TOLERANCE, 0},
+{222, 1065604874u, 1055275400u, 1055275400u, 0, J1_TOLERANCE, 0},
+{223, 1065688760u, 1055380635u, 1055380635u, 0, J1_TOLERANCE, 0},
+{224, 1065772646u, 1055484749u, 1055484749u, 0, J1_TOLERANCE, 0},
+{225, 1065856532u, 1055587736u, 1055587736u, 0, J1_TOLERANCE, 0},
+{226, 1065940419u, 1055689588u, 1055689588u, 0, J1_TOLERANCE, 0},
+{227, 1066024305u, 1055790295u, 1055790295u, 0, J1_TOLERANCE, 0},
+{228, 1066108191u, 1055889853u, 1055889853u, 0, J1_TOLERANCE, 0},
+{229, 1066192077u, 1055988254u, 1055988254u, 0, J1_TOLERANCE, 0},
+{230, 1066275963u, 1056085492u, 1056085492u, 0, J1_TOLERANCE, 0},
+{231, 1066359849u, 1056181560u, 1056181560u, 0, J1_TOLERANCE, 0},
+{232, 1066443735u, 1056276451u, 1056276451u, 0, J1_TOLERANCE, 0},
+{233, 1066527621u, 1056370159u, 1056370159u, 0, J1_TOLERANCE, 0},
+{234, 1066611507u, 1056462676u, 1056462676u, 0, J1_TOLERANCE, 0},
+{235, 1066695393u, 1056553998u, 1056553998u, 0, J1_TOLERANCE, 0},
+{236, 1066779279u, 1056644116u, 1056644116u, 0, J1_TOLERANCE, 0},
+{237, 1066863165u, 1056733027u, 1056733027u, 0, J1_TOLERANCE, 0},
+{238, 1066947052u, 1056820724u, 1056820724u, 0, J1_TOLERANCE, 0},
+{239, 3234402267u, 1046051504u, 1046051504u, 0, J1_TOLERANCE, 0},
+{240, 3231108068u, 1049638262u, 1049638262u, 0, J1_TOLERANCE, 0},
+{241, 3226013659u, 3197221145u, 3197221145u, 0, J1_TOLERANCE, 0},
+{242, 3217625051u, 3205569378u, 3205569378u, 0, J1_TOLERANCE, 0},
+{243, 0u, 0u, 0u, 0, J1_TOLERANCE, 0},
+{244, 1070141403u, 1058085730u, 1058085730u, 0, J1_TOLERANCE, 0},
+{245, 1078530011u, 1049737497u, 1049737497u, 0, J1_TOLERANCE, 0},
+{246, 1083624420u, 3197121910u, 3197121910u, 0, J1_TOLERANCE, 0},
+{247, 3253731328u, 1039348685u, 1039348685u, 0, J1_TOLERANCE, 0},
+{248, 3252840038u, 3184567008u, 3184567008u, 0, J1_TOLERANCE, 0},
+{249, 3251948749u, 3184209412u, 3184209412u, 0, J1_TOLERANCE, 0},
+{250, 3251057459u, 1040848794u, 1040848794u, 0, J1_TOLERANCE, 0},
+{251, 3250166170u, 1032875620u, 1032875620u, 0, J1_TOLERANCE, 0},
+{252, 3249274880u, 3190278356u, 3190278356u, 0, J1_TOLERANCE, 0},
+{253, 3248383590u, 3171314413u, 3171314413u, 0, J1_TOLERANCE, 0},
+{254, 3247492301u, 1044371641u, 1044371641u, 0, J1_TOLERANCE, 0},
+{255, 3246601011u, 3160647523u, 3160647523u, 0, J1_TOLERANCE, 0},
+{256, 3245028147u, 3192989500u, 3192989500u, 0, J1_TOLERANCE, 0},
+{257, 3243245568u, 1032848118u, 1032848118u, 0, J1_TOLERANCE, 0},
+{258, 3241462989u, 1046177193u, 1046177193u, 0, J1_TOLERANCE, 0},
+{259, 3239680410u, 3188645785u, 3188645785u, 0, J1_TOLERANCE, 0},
+{260, 3237792973u, 3193991324u, 3193991324u, 0, J1_TOLERANCE, 0},
+{261, 3234227814u, 1047429570u, 1047429570u, 0, J1_TOLERANCE, 0},
+{262, 3230662656u, 1047304985u, 1047304985u, 0, J1_TOLERANCE, 0},
+{263, 3224580915u, 3201418603u, 3201418603u, 0, J1_TOLERANCE, 0},
+{264, 3213675725u, 3203471902u, 3203471902u, 0, J1_TOLERANCE, 0},
+{265, 1058642330u, 1049807482u, 1049807482u, 0, J1_TOLERANCE, 0},
+{266, 1075000115u, 1057633557u, 1057633557u, 0, J1_TOLERANCE, 0},
+{267, 1082130432u, 3179757989u, 3179757989u, 0, J1_TOLERANCE, 0},
+{268, 1085695590u, 3198547630u, 3198547630u, 0, J1_TOLERANCE, 0},
+{269, 1089260749u, 1038123701u, 1038123701u, 0, J1_TOLERANCE, 0},
+{270, 1091672474u, 1047396948u, 1047396948u, 0, J1_TOLERANCE, 0},
+{271, 1093455053u, 3188823064u, 3188823064u, 0, J1_TOLERANCE, 0},
+{272, 1095237632u, 3190387868u, 3190387868u, 0, J1_TOLERANCE, 0},
+{273, 1097020211u, 1042711397u, 1042711397u, 0, J1_TOLERANCE, 0},
+{274, 1098802790u, 1037909458u, 1037909458u, 0, J1_TOLERANCE, 0},
+{275, 1099746509u, 3190821313u, 3190821313u, 0, J1_TOLERANCE, 0},
+{276, 1100637798u, 3177642610u, 3177642610u, 0, J1_TOLERANCE, 0},
+{277, 1101529088u, 1043282474u, 1043282474u, 0, J1_TOLERANCE, 0},
+{278, 1102420378u, 1009037734u, 1009037734u, 0, J1_TOLERANCE, 0},
+{279, 1103311667u, 3190100663u, 3190100663u, 0, J1_TOLERANCE, 0},
+{280, 1104202957u, 1022984661u, 1022984661u, 0, J1_TOLERANCE, 0},
+{281, 1105094246u, 1041426372u, 1041426372u, 0, J1_TOLERANCE, 0},
+{282, 1105985536u, 3179524627u, 3179524627u, 0, J1_TOLERANCE, 0}
+
+// AUTOMATICALLY GENERATED VECTORS STOP
+
+};
+
+#endif // CYGONCE_LIBM_J1_H multiple inclusion protection
+
+// EOF j1f.h
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/jnf.c b/ecos/packages/language/c/libm/current/tests/vectors/jnf.c
new file mode 100644
index 0000000..623ae52
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/jnf.c
@@ -0,0 +1,115 @@
+//===========================================================================
+//
+// jnf.c
+//
+// Test of jnf() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// Declarations for test system:
+//
+// TESTCASE_TYPE=CYG_TEST_MODULE
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include <cyg/infra/testcase.h> // Test infrastructure
+#include <math.h> // Header for this package
+#include <sys/ieeefp.h> // Cyg_libm_ieee_float_shape_type
+#include "vectors/vector_support_float.h"// extra support for math tests
+
+#include "vectors/jnf.h"
+
+// FUNCTIONS
+
+static void
+test( CYG_ADDRWORD data )
+{
+ cyg_ucount32 vec_size;
+ cyg_bool ret;
+
+ vec_size = sizeof(jnf_vec) / sizeof(Cyg_libm_test_float_vec_t);
+ ret = doTestVecFloat( (CYG_ADDRWORD) &jnf, CYG_LIBM_TEST_VEC_INT,
+ CYG_LIBM_TEST_VEC_FLOAT, CYG_LIBM_TEST_VEC_FLOAT,
+ &jnf_vec[0], vec_size );
+
+ if (ret==true)
+ {
+ CYG_TEST_PASS("jnf() is stable");
+ } // if
+ else
+ {
+ CYG_TEST_FAIL("jnf() failed tests");
+ } // else
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for Math "
+ "library jnf() function");
+} // test()
+
+
+int
+main(int argc, char *argv[])
+{
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for Math library "
+ "jnf() function");
+
+ START_TEST( test );
+
+ CYG_TEST_PASS_FINISH("Testing is not applicable to this configuration");
+
+} // main()
+
+
+// EOF jnf.c
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/jnf.h b/ecos/packages/language/c/libm/current/tests/vectors/jnf.h
new file mode 100644
index 0000000..a22bf12
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/jnf.h
@@ -0,0 +1,279 @@
+#ifndef CYGONCE_LIBM_JN_H
+#define CYGONCE_LIBM_JN_H
+//===========================================================================
+//
+// jnf.h
+//
+// Test vectors for testing of jnf() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage: #include "vectors/jnf.h"
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include "vectors/vector_support_float.h"// extra support for math tests
+
+#define JN_TOLERANCE 1.0E-04
+
+static const Cyg_libm_test_float_vec_t jnf_vec[] = {
+
+// AUTOMATICALLY GENERATED VECTORS START
+
+/*{0, 0u, 0u, 1065353216u, 0, JN_TOLERANCE, 0},
+{1, 1065353216u, 0u, 0u, 0, JN_TOLERANCE, 0},
+{2, 1073741824u, 0u, 0u, 0, JN_TOLERANCE, 0},
+{3, 1077936128u, 0u, 0u, 0, JN_TOLERANCE, 0},
+{4, 1082130432u, 0u, 0u, 0, JN_TOLERANCE, 0},
+{5, 0u, 1028443341u, 1065342732u, 0, JN_TOLERANCE, 0},
+{6, 1065353216u, 1028443341u, 1020050539u, 0, JN_TOLERANCE, 0},
+{7, 1073741824u, 1028443341u, 967036493u, 0, JN_TOLERANCE, 0},
+{8, 1077936128u, 1028443341u, 909032513u, 0, JN_TOLERANCE, 0},
+{9, 1082130432u, 1028443341u, 848022252u, 0, JN_TOLERANCE, 0},
+{10, 0u, 1036831949u, 1065311299u, 0, JN_TOLERANCE, 0},*/
+{11, 1065353216u, 1036831949u, 1028426571u, 0, JN_TOLERANCE, 0},
+{12, 1073741824u, 1036831949u, 983807001u, 0, JN_TOLERANCE, 0},
+{13, 1077936128u, 1036831949u, 934192970u, 0, JN_TOLERANCE, 0},
+{14, 1082130432u, 1036831949u, 881573249u, 0, JN_TOLERANCE, 0},
+{15, 0u, 1041865114u, 1065258977u, 0, JN_TOLERANCE, 0},
+{16, 1065353216u, 1041865114u, 1033448221u, 0, JN_TOLERANCE, 0},
+{17, 1073741824u, 1041865114u, 993524098u, 0, JN_TOLERANCE, 0},
+{18, 1077936128u, 1041865114u, 949174191u, 0, JN_TOLERANCE, 0},
+{19, 1082130432u, 1041865114u, 900775820u, 0, JN_TOLERANCE, 0},
+{20, 0u, 1045220557u, 1065185863u, 0, JN_TOLERANCE, 0},
+{21, 1065353216u, 1045220557u, 1036764952u, 0, JN_TOLERANCE, 0},
+{22, 1073741824u, 1045220557u, 1000557416u, 0, JN_TOLERANCE, 0},
+{23, 1077936128u, 1045220557u, 959337346u, 0, JN_TOLERANCE, 0},
+{24, 1082130432u, 1045220557u, 915113951u, 0, JN_TOLERANCE, 0},
+{25, 0u, 1048576000u, 1065092094u, 0, JN_TOLERANCE, 0},
+{26, 1065353216u, 1048576000u, 1040056661u, 0, JN_TOLERANCE, 0},
+{27, 1073741824u, 1048576000u, 1006545749u, 0, JN_TOLERANCE, 0},
+{28, 1077936128u, 1048576000u, 967442500u, 0, JN_TOLERANCE, 0},
+{29, 1082130432u, 1048576000u, 925508176u, 0, JN_TOLERANCE, 0},
+{30, 0u, 1050253722u, 1064977847u, 0, JN_TOLERANCE, 0},
+{31, 1065353216u, 1050253722u, 1041752291u, 0, JN_TOLERANCE, 0},
+{32, 1073741824u, 1050253722u, 1010233605u, 0, JN_TOLERANCE, 0},
+{33, 1077936128u, 1050253722u, 974299360u, 0, JN_TOLERANCE, 0},
+{34, 1082130432u, 1050253722u, 934291206u, 0, JN_TOLERANCE, 0},
+{35, 0u, 1051931443u, 1064843334u, 0, JN_TOLERANCE, 0},
+{36, 1065353216u, 1051931443u, 1043363920u, 0, JN_TOLERANCE, 0},
+{37, 1073741824u, 1051931443u, 1014518823u, 0, JN_TOLERANCE, 0},
+{38, 1077936128u, 1051931443u, 979918350u, 0, JN_TOLERANCE, 0},
+{39, 1082130432u, 1051931443u, 941811754u, 0, JN_TOLERANCE, 0},
+{40, 0u, 1053609165u, 1064688808u, 0, JN_TOLERANCE, 0},
+{41, 1065353216u, 1053609165u, 1044953905u, 0, JN_TOLERANCE, 0},
+{42, 1073741824u, 1053609165u, 1017227927u, 0, JN_TOLERANCE, 0},
+{43, 1077936128u, 1053609165u, 984417699u, 0, JN_TOLERANCE, 0},
+{44, 1082130432u, 1053609165u, 948613636u, 0, JN_TOLERANCE, 0},
+{45, 0u, 1055286886u, 1064514559u, 0, JN_TOLERANCE, 0},
+{46, 1065353216u, 1055286886u, 1046519284u, 0, JN_TOLERANCE, 0},
+{47, 1073741824u, 1055286886u, 1019994628u, 0, JN_TOLERANCE, 0},
+{48, 1077936128u, 1055286886u, 989180633u, 0, JN_TOLERANCE, 0},
+{49, 1082130432u, 1055286886u, 954052828u, 0, JN_TOLERANCE, 0},
+{50, 0u, 1056964608u, 1064320911u, 0, JN_TOLERANCE, 0},
+{51, 1065353216u, 1056964608u, 1048057145u, 0, JN_TOLERANCE, 0},
+{52, 1073741824u, 1056964608u, 1023063370u, 0, JN_TOLERANCE, 0},
+{53, 1077936128u, 1056964608u, 992478272u, 0, JN_TOLERANCE, 0},
+{54, 1082130432u, 1056964608u, 958958431u, 0, JN_TOLERANCE, 0},
+{55, 0u, 1057803469u, 1064108226u, 0, JN_TOLERANCE, 0},
+{56, 1065353216u, 1057803469u, 1049070317u, 0, JN_TOLERANCE, 0},
+{57, 1073741824u, 1057803469u, 1024918320u, 0, JN_TOLERANCE, 0},
+{58, 1077936128u, 1057803469u, 996074782u, 0, JN_TOLERANCE, 0},
+{59, 1082130432u, 1057803469u, 964042258u, 0, JN_TOLERANCE, 0},
+{60, 0u, 1058642330u, 1063876903u, 0, JN_TOLERANCE, 0},
+{61, 1065353216u, 1058642330u, 1049807481u, 0, JN_TOLERANCE, 0},
+{62, 1073741824u, 1058642330u, 1026742828u, 0, JN_TOLERANCE, 0},
+{63, 1077936128u, 1058642330u, 999303935u, 0, JN_TOLERANCE, 0},
+{64, 1082130432u, 1058642330u, 967690547u, 0, JN_TOLERANCE, 0},
+{65, 0u, 1059481190u, 1063627371u, 0, JN_TOLERANCE, 0},
+{66, 1065353216u, 1059481190u, 1050526702u, 0, JN_TOLERANCE, 0},
+{67, 1073741824u, 1059481190u, 1028705720u, 0, JN_TOLERANCE, 0},
+{68, 1077936128u, 1059481190u, 1001821225u, 0, JN_TOLERANCE, 0},
+{69, 1082130432u, 1059481190u, 971939318u, 0, JN_TOLERANCE, 0},
+{70, 0u, 1060320051u, 1063360098u, 0, JN_TOLERANCE, 0},
+{71, 1065353216u, 1060320051u, 1051226657u, 0, JN_TOLERANCE, 0},
+{72, 1073741824u, 1060320051u, 1030802068u, 0, JN_TOLERANCE, 0},
+{73, 1077936128u, 1060320051u, 1004737064u, 0, JN_TOLERANCE, 0},
+{74, 1082130432u, 1060320051u, 975171307u, 0, JN_TOLERANCE, 0},
+{75, 0u, 1061158912u, 1063075579u, 0, JN_TOLERANCE, 0},
+{76, 1065353216u, 1061158912u, 1051906063u, 0, JN_TOLERANCE, 0},
+{77, 1073741824u, 1061158912u, 1032412696u, 0, JN_TOLERANCE, 0},
+{78, 1077936128u, 1061158912u, 1007354389u, 0, JN_TOLERANCE, 0},
+{79, 1082130432u, 1061158912u, 978452199u, 0, JN_TOLERANCE, 0},
+{80, 0u, 1061997773u, 1062774346u, 0, JN_TOLERANCE, 0},
+{81, 1065353216u, 1061997773u, 1052563677u, 0, JN_TOLERANCE, 0},
+{82, 1073741824u, 1061997773u, 1033586264u, 0, JN_TOLERANCE, 0},
+{83, 1077936128u, 1061997773u, 1009246734u, 0, JN_TOLERANCE, 0},
+{84, 1082130432u, 1061997773u, 981951802u, 0, JN_TOLERANCE, 0},
+{85, 0u, 1062836634u, 1062456957u, 0, JN_TOLERANCE, 0},
+{86, 1065353216u, 1062836634u, 1053198305u, 0, JN_TOLERANCE, 0},
+{87, 1073741824u, 1062836634u, 1034818178u, 0, JN_TOLERANCE, 0},
+{88, 1077936128u, 1062836634u, 1011372844u, 0, JN_TOLERANCE, 0},
+{89, 1082130432u, 1062836634u, 984340071u, 0, JN_TOLERANCE, 0},
+{90, 0u, 1063675494u, 1062124001u, 0, JN_TOLERANCE, 0},
+{91, 1065353216u, 1063675494u, 1053808798u, 0, JN_TOLERANCE, 0},
+{92, 1073741824u, 1063675494u, 1036105335u, 0, JN_TOLERANCE, 0},
+{93, 1077936128u, 1063675494u, 1013742772u, 0, JN_TOLERANCE, 0},
+{94, 1082130432u, 1063675494u, 987170764u, 0, JN_TOLERANCE, 0},
+{95, 0u, 1064514355u, 1061776097u, 0, JN_TOLERANCE, 0},
+{96, 1065353216u, 1064514355u, 1054394058u, 0, JN_TOLERANCE, 0},
+{97, 1073741824u, 1064514355u, 1037444489u, 0, JN_TOLERANCE, 0},
+{98, 1077936128u, 1064514355u, 1015693678u, 0, JN_TOLERANCE, 0},
+{99, 1082130432u, 1064514355u, 990173788u, 0, JN_TOLERANCE, 0},
+{100, 0u, 1065353216u, 1061413887u, 0, JN_TOLERANCE, 0},
+{101, 1065353216u, 1065353216u, 1054953039u, 0, JN_TOLERANCE, 0},
+{102, 1073741824u, 1065353216u, 1038832261u, 0, JN_TOLERANCE, 0},
+{103, 1077936128u, 1065353216u, 1017135956u, 0, JN_TOLERANCE, 0},
+{104, 1082130432u, 1065353216u, 992104219u, 0, JN_TOLERANCE, 0},
+{105, 0u, 1065772646u, 1061038041u, 0, JN_TOLERANCE, 0},
+{106, 1065353216u, 1065772646u, 1055484750u, 0, JN_TOLERANCE, 0},
+{107, 1073741824u, 1065772646u, 1040226267u, 0, JN_TOLERANCE, 0},
+{108, 1077936128u, 1065772646u, 1018712809u, 0, JN_TOLERANCE, 0},
+{109, 1082130432u, 1065772646u, 994329897u, 0, JN_TOLERANCE, 0},
+{110, 0u, 1066192077u, 1060649254u, 0, JN_TOLERANCE, 0},
+{111, 1065353216u, 1066192077u, 1055988254u, 0, JN_TOLERANCE, 0},
+{112, 1073741824u, 1066192077u, 1040963449u, 0, JN_TOLERANCE, 0},
+{113, 1077936128u, 1066192077u, 1020427605u, 0, JN_TOLERANCE, 0},
+{114, 1082130432u, 1066192077u, 996876707u, 0, JN_TOLERANCE, 0},
+{115, 0u, 1066611507u, 1060248241u, 0, JN_TOLERANCE, 0},
+{116, 1065353216u, 1066611507u, 1056462676u, 0, JN_TOLERANCE, 0},
+{117, 1073741824u, 1066611507u, 1041719505u, 0, JN_TOLERANCE, 0},
+{118, 1077936128u, 1066611507u, 1022283262u, 0, JN_TOLERANCE, 0},
+{119, 1082130432u, 1066611507u, 999007660u, 0, JN_TOLERANCE, 0},
+{120, 0u, 1067030938u, 1059835739u, 0, JN_TOLERANCE, 0},
+{121, 1065353216u, 1067030938u, 1056907198u, 0, JN_TOLERANCE, 0},
+{122, 1073741824u, 1067030938u, 1042492516u, 0, JN_TOLERANCE, 0},
+{123, 1077936128u, 1067030938u, 1023846206u, 0, JN_TOLERANCE, 0},
+{124, 1082130432u, 1067030938u, 1000641838u, 0, JN_TOLERANCE, 0},
+{125, 0u, 1067450368u, 1059412506u, 0, JN_TOLERANCE, 0},
+{126, 1065353216u, 1067450368u, 1057142837u, 0, JN_TOLERANCE, 0},
+{127, 1073741824u, 1067450368u, 1043280515u, 0, JN_TOLERANCE, 0},
+{128, 1077936128u, 1067450368u, 1024918343u, 0, JN_TOLERANCE, 0},
+{129, 1082130432u, 1067450368u, 1002476495u, 0, JN_TOLERANCE, 0},
+{130, 0u, 1067869798u, 1058979317u, 0, JN_TOLERANCE, 0},
+{131, 1065353216u, 1067869798u, 1057334097u, 0, JN_TOLERANCE, 0},
+{132, 1073741824u, 1067869798u, 1044081498u, 0, JN_TOLERANCE, 0},
+{133, 1077936128u, 1067869798u, 1026063882u, 0, JN_TOLERANCE, 0},
+{134, 1082130432u, 1067869798u, 1004525115u, 0, JN_TOLERANCE, 0},
+{135, 0u, 1068289229u, 1058536963u, 0, JN_TOLERANCE, 0},
+{136, 1065353216u, 1068289229u, 1057509369u, 0, JN_TOLERANCE, 0},
+{137, 1073741824u, 1068289229u, 1044893419u, 0, JN_TOLERANCE, 0},
+{138, 1077936128u, 1068289229u, 1027283330u, 0, JN_TOLERANCE, 0},
+{139, 1082130432u, 1068289229u, 1006717070u, 0, JN_TOLERANCE, 0},
+{140, 0u, 1068708659u, 1058086251u, 0, JN_TOLERANCE, 0},
+{141, 1065353216u, 1068708659u, 1057668374u, 0, JN_TOLERANCE, 0},
+{142, 1073741824u, 1068708659u, 1045714203u, 0, JN_TOLERANCE, 0},
+{143, 1077936128u, 1068708659u, 1028576945u, 0, JN_TOLERANCE, 0},
+{144, 1082130432u, 1068708659u, 1007975536u, 0, JN_TOLERANCE, 0},
+{145, 0u, 1069128090u, 1057628001u, 0, JN_TOLERANCE, 0},
+{146, 1065353216u, 1069128090u, 1057810862u, 0, JN_TOLERANCE, 0},
+{147, 1073741824u, 1069128090u, 1046541746u, 0, JN_TOLERANCE, 0},
+{148, 1077936128u, 1069128090u, 1029944734u, 0, JN_TOLERANCE, 0},
+{149, 1082130432u, 1069128090u, 1009361087u, 0, JN_TOLERANCE, 0},
+{150, 0u, 1069547520u, 1057163043u, 0, JN_TOLERANCE, 0},
+{151, 1065353216u, 1069547520u, 1057936621u, 0, JN_TOLERANCE, 0},
+{152, 1073741824u, 1069547520u, 1047373924u, 0, JN_TOLERANCE, 0},
+{153, 1077936128u, 1069547520u, 1031386454u, 0, JN_TOLERANCE, 0},
+{154, 1082130432u, 1069547520u, 1010880288u, 0, JN_TOLERANCE, 0},
+{155, 0u, 1069966950u, 1056419833u, 0, JN_TOLERANCE, 0},
+{156, 1065353216u, 1069966950u, 1058045471u, 0, JN_TOLERANCE, 0},
+{157, 1073741824u, 1069966950u, 1048208593u, 0, JN_TOLERANCE, 0},
+{158, 1077936128u, 1069966950u, 1032350194u, 0, JN_TOLERANCE, 0},
+{159, 1082130432u, 1069966950u, 1012539586u, 0, JN_TOLERANCE, 0},
+{160, 0u, 1070386381u, 1055468153u, 0, JN_TOLERANCE, 0},
+{161, 1065353216u, 1070386381u, 1058137267u, 0, JN_TOLERANCE, 0},
+{162, 1073741824u, 1070386381u, 1048809799u, 0, JN_TOLERANCE, 0},
+{163, 1077936128u, 1070386381u, 1033144108u, 0, JN_TOLERANCE, 0},
+{164, 1082130432u, 1070386381u, 1014345284u, 0, JN_TOLERANCE, 0},
+{165, 0u, 1070805811u, 1054508151u, 0, JN_TOLERANCE, 0},
+{166, 1065353216u, 1070805811u, 1058211899u, 0, JN_TOLERANCE, 0},
+{167, 1073741824u, 1070805811u, 1049226388u, 0, JN_TOLERANCE, 0},
+{168, 1077936128u, 1070805811u, 1033973855u, 0, JN_TOLERANCE, 0},
+{169, 1082130432u, 1070805811u, 1015662539u, 0, JN_TOLERANCE, 0},
+{170, 0u, 1071225242u, 1053541548u, 0, JN_TOLERANCE, 0},
+{171, 1065353216u, 1071225242u, 1058269292u, 0, JN_TOLERANCE, 0},
+{172, 1073741824u, 1071225242u, 1049640982u, 0, JN_TOLERANCE, 0},
+{173, 1077936128u, 1071225242u, 1034838806u, 0, JN_TOLERANCE, 0},
+{174, 1082130432u, 1071225242u, 1016720878u, 0, JN_TOLERANCE, 0},
+{175, 0u, 1071644672u, 1052570069u, 0, JN_TOLERANCE, 0},
+{176, 1065353216u, 1071644672u, 1058309406u, 0, JN_TOLERANCE, 0},
+{177, 1073741824u, 1071644672u, 1050052500u, 0, JN_TOLERANCE, 0},
+{178, 1077936128u, 1071644672u, 1035738201u, 0, JN_TOLERANCE, 0},
+{179, 1082130432u, 1071644672u, 1017861291u, 0, JN_TOLERANCE, 0},
+{180, 0u, 1072064102u, 1051595443u, 0, JN_TOLERANCE, 0},
+{181, 1065353216u, 1072064102u, 1058332236u, 0, JN_TOLERANCE, 0},
+{182, 1073741824u, 1072064102u, 1050459864u, 0, JN_TOLERANCE, 0},
+{183, 1077936128u, 1072064102u, 1036671158u, 0, JN_TOLERANCE, 0},
+{184, 1082130432u, 1072064102u, 1019086495u, 0, JN_TOLERANCE, 0},
+{185, 0u, 1072483533u, 1050619397u, 0, JN_TOLERANCE, 0},
+{186, 1065353216u, 1072483533u, 1058337811u, 0, JN_TOLERANCE, 0},
+{187, 1073741824u, 1072483533u, 1050862006u, 0, JN_TOLERANCE, 0},
+{188, 1077936128u, 1072483533u, 1037636670u, 0, JN_TOLERANCE, 0},
+{189, 1082130432u, 1072483533u, 1020399064u, 0, JN_TOLERANCE, 0},
+{190, 0u, 1072902963u, 1049643654u, 0, JN_TOLERANCE, 0},
+{191, 1065353216u, 1072902963u, 1058326198u, 0, JN_TOLERANCE, 0},
+{192, 1073741824u, 1072902963u, 1051257862u, 0, JN_TOLERANCE, 0},
+{193, 1077936128u, 1072902963u, 1038633608u, 0, JN_TOLERANCE, 0},
+{194, 1082130432u, 1072902963u, 1021801416u, 0, JN_TOLERANCE, 0},
+{195, 0u, 1073322394u, 1048669927u, 0, JN_TOLERANCE, 0},
+{196, 1065353216u, 1073322394u, 1058297495u, 0, JN_TOLERANCE, 0},
+{197, 1073741824u, 1073322394u, 1051646385u, 0, JN_TOLERANCE, 0},
+{198, 1077936128u, 1073322394u, 1039660722u, 0, JN_TOLERANCE, 0},
+{199, 1082130432u, 1073322394u, 1023295797u, 0, JN_TOLERANCE, 0}
+
+// AUTOMATICALLY GENERATED VECTORS STOP
+
+};
+
+#endif // CYGONCE_LIBM_JN_H multiple inclusion protection
+
+// EOF jnf.h
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/ldexp.c b/ecos/packages/language/c/libm/current/tests/vectors/ldexp.c
new file mode 100644
index 0000000..d5c428b
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/ldexp.c
@@ -0,0 +1,115 @@
+//===========================================================================
+//
+// ldexp.c
+//
+// Test of ldexp() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// Declarations for test system:
+//
+// TESTCASE_TYPE=CYG_TEST_MODULE
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include <cyg/infra/testcase.h> // Test infrastructure
+#include <math.h> // Header for this package
+#include <sys/ieeefp.h> // Cyg_libm_ieee_double_shape_type
+#include "vectors/vector_support.h"// extra support for math tests
+
+#include "vectors/ldexp.h"
+
+// FUNCTIONS
+
+static void
+test( CYG_ADDRWORD data )
+{
+ cyg_ucount32 vec_size;
+ cyg_bool ret;
+
+ vec_size = sizeof(ldexp_vec) / sizeof(Cyg_libm_test_double_vec_t);
+ ret = doTestVec( (CYG_ADDRWORD) &ldexp, CYG_LIBM_TEST_VEC_DOUBLE,
+ CYG_LIBM_TEST_VEC_INT, CYG_LIBM_TEST_VEC_DOUBLE,
+ &ldexp_vec[0], vec_size );
+
+ if (ret==true)
+ {
+ CYG_TEST_PASS("ldexp() is stable");
+ } // if
+ else
+ {
+ CYG_TEST_FAIL("ldexp() failed tests");
+ } // else
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for Math "
+ "library ldexp() function");
+} // test()
+
+
+int
+main(int argc, char *argv[])
+{
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for Math library "
+ "ldexp() function");
+
+ START_TEST( test );
+
+ CYG_TEST_PASS_FINISH("Testing is not applicable to this configuration");
+
+} // main()
+
+
+// EOF ldexp.c
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/ldexp.h b/ecos/packages/language/c/libm/current/tests/vectors/ldexp.h
new file mode 100644
index 0000000..5f23131
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/ldexp.h
@@ -0,0 +1,1079 @@
+#ifndef CYGONCE_LIBM_LDEXP_H
+#define CYGONCE_LIBM_LDEXP_H
+//===========================================================================
+//
+// ldexp.h
+//
+// Test vectors for testing of ldexp() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage: #include "vectors/ldexp.h"
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include "vectors/vector_support.h"// extra support for math tests
+
+#define LDEXP_TOLERANCE 1.0E-04
+
+static const Cyg_libm_test_double_vec_t ldexp_vec[] = {
+
+// AUTOMATICALLY GENERATED VECTORS START
+
+{ 1, 1077999148u, 2506787616u, 0u, 54u, 1134622252u, 2506787616u, 0, LDEXP_TOLERANCE, 0},
+{ 2, 3214772338u, 2077734866u, 0u, 34u, 3250423922u, 2077734866u, 0, LDEXP_TOLERANCE, 0},
+{ 3, 1080413105u, 548846937u, 0u, 225u, 1316342705u, 548846937u, 0, LDEXP_TOLERANCE, 0},
+{ 4, 3218221902u, 486455730u, 0u, 318u, 3551669070u, 486455730u, 0, LDEXP_TOLERANCE, 0},
+{ 5, 3224095940u, 4065937691u, 0u, 436u, 3681275076u, 4065937691u, 0, LDEXP_TOLERANCE, 0},
+{ 6, 1071992326u, 2845631987u, 0u, 28u, 1101352454u, 2845631987u, 0, LDEXP_TOLERANCE, 0},
+{ 7, 1046025801u, 4006030831u, 0u, 281u, 1340675657u, 4006030831u, 0, LDEXP_TOLERANCE, 0},
+{ 8, 3220544804u, 1507340799u, 0u, 346u, 3583352100u, 1507340799u, 0, LDEXP_TOLERANCE, 0},
+{ 9, 3194723612u, 479621759u, 0u, 449u, 3665534236u, 479621759u, 0, LDEXP_TOLERANCE, 0},
+{ 10, 1089363191u, 1746012320u, 0u, 291u, 1394498807u, 1746012320u, 0, LDEXP_TOLERANCE, 0},
+{ 11, 1076292113u, 2043066528u, 0u, 292u, 1382476305u, 2043066528u, 0, LDEXP_TOLERANCE, 0},
+{ 12, 3235652646u, 2131233512u, 0u, 104u, 3344704550u, 2131233512u, 0, LDEXP_TOLERANCE, 0},
+{ 13, 1058485694u, 2336118392u, 0u, 314u, 1387738558u, 2336118392u, 0, LDEXP_TOLERANCE, 0},
+{ 14, 1082419809u, 2572806098u, 0u, 29u, 1112828513u, 2572806098u, 0, LDEXP_TOLERANCE, 0},
+{ 15, 1095385097u, 370772494u, 0u, 470u, 1588215817u, 370772494u, 0, LDEXP_TOLERANCE, 0},
+{ 16, 3205432790u, 2588298075u, 0u, 44u, 3251570134u, 2588298075u, 0, LDEXP_TOLERANCE, 0},
+{ 17, 1095917486u, 3103659359u, 0u, 383u, 1497522094u, 3103659359u, 0, LDEXP_TOLERANCE, 0},
+{ 18, 1073371132u, 1515119937u, 0u, 213u, 1296717820u, 1515119937u, 0, LDEXP_TOLERANCE, 0},
+{ 19, 1060343410u, 1857607719u, 0u, 356u, 1433636466u, 1857607719u, 0, LDEXP_TOLERANCE, 0},
+{ 20, 3233184100u, 1472965721u, 0u, 277u, 3523639652u, 1472965721u, 0, LDEXP_TOLERANCE, 0},
+{ 21, 3230691143u, 2574511435u, 0u, 215u, 3456134983u, 2574511435u, 0, LDEXP_TOLERANCE, 0},
+{ 22, 3254171964u, 122146127u, 0u, 445u, 3720788284u, 122146127u, 0, LDEXP_TOLERANCE, 0},
+{ 23, 1072428204u, 831542630u, 0u, 171u, 1251734700u, 831542630u, 0, LDEXP_TOLERANCE, 0},
+{ 24, 1068797024u, 1682228977u, 0u, 239u, 1319406688u, 1682228977u, 0, LDEXP_TOLERANCE, 0},
+{ 25, 1053852869u, 105430463u, 0u, 369u, 1440777413u, 105430463u, 0, LDEXP_TOLERANCE, 0},
+{ 26, 1048952779u, 3490880064u, 0u, 127u, 1182121931u, 3490880064u, 0, LDEXP_TOLERANCE, 0},
+{ 27, 1088448632u, 336073679u, 0u, 29u, 1118857336u, 336073679u, 0, LDEXP_TOLERANCE, 0},
+{ 28, 1102287487u, 265058758u, 0u, 389u, 1510183551u, 265058758u, 0, LDEXP_TOLERANCE, 0},
+{ 29, 3231657216u, 258027773u, 0u, 472u, 3726585088u, 258027773u, 0, LDEXP_TOLERANCE, 0},
+{ 30, 1093107080u, 252015623u, 0u, 96u, 1193770376u, 252015623u, 0, LDEXP_TOLERANCE, 0},
+{ 31, 1067920032u, 78287159u, 0u, 263u, 1343695520u, 78287159u, 0, LDEXP_TOLERANCE, 0},
+{ 32, 1073395576u, 1555523835u, 0u, 92u, 1169864568u, 1555523835u, 0, LDEXP_TOLERANCE, 0},
+{ 33, 1063005332u, 1067681081u, 0u, 264u, 1339829396u, 1067681081u, 0, LDEXP_TOLERANCE, 0},
+{ 34, 1102231954u, 3893923133u, 0u, 244u, 1358084498u, 3893923133u, 0, LDEXP_TOLERANCE, 0},
+{ 35, 3230686533u, 1759897777u, 0u, 309u, 3554696517u, 1759897777u, 0, LDEXP_TOLERANCE, 0},
+{ 36, 3239098397u, 2737037055u, 0u, 73u, 3315644445u, 2737037055u, 0, LDEXP_TOLERANCE, 0},
+{ 37, 3216262634u, 2075329122u, 0u, 66u, 3285468650u, 2075329122u, 0, LDEXP_TOLERANCE, 0},
+{ 38, 3196997769u, 1611276410u, 0u, 194u, 3400421513u, 1611276410u, 0, LDEXP_TOLERANCE, 0},
+{ 39, 3202638019u, 1799495751u, 0u, 455u, 3679740099u, 1799495751u, 0, LDEXP_TOLERANCE, 0},
+{ 40, 1094899225u, 1827380665u, 0u, 66u, 1164105241u, 1827380665u, 0, LDEXP_TOLERANCE, 0},
+{ 41, 1071303853u, 2051165551u, 0u, 459u, 1552600237u, 2051165551u, 0, LDEXP_TOLERANCE, 0},
+{ 42, 1065537321u, 302759375u, 0u, 340u, 1422053161u, 302759375u, 0, LDEXP_TOLERANCE, 0},
+{ 43, 1086875018u, 575413558u, 0u, 398u, 1504208266u, 575413558u, 0, LDEXP_TOLERANCE, 0},
+{ 44, 1053673372u, 2702778974u, 0u, 443u, 1518192540u, 2702778974u, 0, LDEXP_TOLERANCE, 0},
+{ 45, 3193817621u, 1570767698u, 0u, 282u, 3489516053u, 1570767698u, 0, LDEXP_TOLERANCE, 0},
+{ 46, 1071069297u, 2192461366u, 0u, 302u, 1387739249u, 2192461366u, 0, LDEXP_TOLERANCE, 0},
+{ 47, 3238418804u, 1337840437u, 0u, 144u, 3389413748u, 1337840437u, 0, LDEXP_TOLERANCE, 0},
+{ 48, 3248513649u, 1699484613u, 0u, 140u, 3395314289u, 1699484613u, 0, LDEXP_TOLERANCE, 0},
+{ 49, 3217360803u, 3717603375u, 0u, 269u, 3499427747u, 3717603375u, 0, LDEXP_TOLERANCE, 0},
+{ 50, 1088279286u, 3814565670u, 0u, 496u, 1608372982u, 3814565670u, 0, LDEXP_TOLERANCE, 0},
+{ 51, 1049002975u, 2752608599u, 0u, 470u, 1541833695u, 2752608599u, 0, LDEXP_TOLERANCE, 0},
+{ 52, 1057404205u, 3994112087u, 0u, 203u, 1270265133u, 3994112087u, 0, LDEXP_TOLERANCE, 0},
+{ 53, 3192718923u, 705652685u, 0u, 346u, 3555526219u, 705652685u, 0, LDEXP_TOLERANCE, 0},
+{ 54, 1047202319u, 2552982406u, 0u, 120u, 1173031439u, 2552982406u, 0, LDEXP_TOLERANCE, 0},
+{ 55, 1107213408u, 428765703u, 0u, 30u, 1138670688u, 428765703u, 0, LDEXP_TOLERANCE, 0},
+{ 56, 3206857463u, 3463957950u, 0u, 454u, 3682910967u, 3463957950u, 0, LDEXP_TOLERANCE, 0},
+{ 57, 3219940202u, 3511931302u, 0u, 482u, 3725353834u, 3511931302u, 0, LDEXP_TOLERANCE, 0},
+{ 58, 1049545113u, 1382645956u, 0u, 27u, 1077856665u, 1382645956u, 0, LDEXP_TOLERANCE, 0},
+{ 59, 3240285101u, 4024164216u, 0u, 494u, 3758281645u, 4024164216u, 0, LDEXP_TOLERANCE, 0},
+{ 60, 1090664768u, 3201265259u, 0u, 304u, 1409431872u, 3201265259u, 0, LDEXP_TOLERANCE, 0},
+{ 61, 3195451094u, 2082243603u, 0u, 200u, 3405166294u, 2082243603u, 0, LDEXP_TOLERANCE, 0},
+{ 62, 1070789511u, 3477510131u, 0u, 209u, 1289941895u, 3477510131u, 0, LDEXP_TOLERANCE, 0},
+{ 63, 3202292384u, 98230582u, 0u, 499u, 3725531808u, 98230582u, 0, LDEXP_TOLERANCE, 0},
+{ 64, 1057053639u, 2055490142u, 0u, 155u, 1219582919u, 2055490142u, 0, LDEXP_TOLERANCE, 0},
+{ 65, 3231608324u, 3135714676u, 0u, 72u, 3307105796u, 3135714676u, 0, LDEXP_TOLERANCE, 0},
+{ 66, 1067886563u, 3959938578u, 0u, 121u, 1194764259u, 3959938578u, 0, LDEXP_TOLERANCE, 0},
+{ 67, 1064521796u, 2810759459u, 0u, 133u, 1203982404u, 2810759459u, 0, LDEXP_TOLERANCE, 0},
+{ 68, 1050312077u, 2893664965u, 0u, 378u, 1446673805u, 2893664965u, 0, LDEXP_TOLERANCE, 0},
+{ 69, 1083212579u, 1755264865u, 0u, 240u, 1334870819u, 1755264865u, 0, LDEXP_TOLERANCE, 0},
+{ 70, 1106413681u, 4047817320u, 0u, 313u, 1434617969u, 4047817320u, 0, LDEXP_TOLERANCE, 0},
+{ 71, 3203399791u, 846447545u, 0u, 417u, 3640655983u, 846447545u, 0, LDEXP_TOLERANCE, 0},
+{ 72, 1064185862u, 3943538251u, 0u, 42u, 1108226054u, 3943538251u, 0, LDEXP_TOLERANCE, 0},
+{ 73, 3240055222u, 3604989074u, 0u, 181u, 3429847478u, 3604989074u, 0, LDEXP_TOLERANCE, 0},
+{ 74, 1047367602u, 203456665u, 0u, 144u, 1198362546u, 203456665u, 0, LDEXP_TOLERANCE, 0},
+{ 75, 3189239631u, 1189635129u, 0u, 412u, 3621252943u, 1189635129u, 0, LDEXP_TOLERANCE, 0},
+{ 76, 3205779054u, 3013056723u, 0u, 397u, 3622063726u, 3013056723u, 0, LDEXP_TOLERANCE, 0},
+{ 77, 3213557485u, 1246486570u, 0u, 474u, 3710582509u, 1246486570u, 0, LDEXP_TOLERANCE, 0},
+{ 78, 1067165665u, 743938884u, 0u, 66u, 1136371681u, 743938884u, 0, LDEXP_TOLERANCE, 0},
+{ 79, 3251710188u, 3283695916u, 0u, 173u, 3433113836u, 3283695916u, 0, LDEXP_TOLERANCE, 0},
+{ 80, 1049044587u, 137961661u, 0u, 205u, 1264002667u, 137961661u, 0, LDEXP_TOLERANCE, 0},
+{ 81, 3203917457u, 2416207160u, 0u, 306u, 3524781713u, 2416207160u, 0, LDEXP_TOLERANCE, 0},
+{ 82, 1087554095u, 2312530895u, 0u, 328u, 1431487023u, 2312530895u, 0, LDEXP_TOLERANCE, 0},
+{ 83, 3219731834u, 3553194394u, 0u, 51u, 3273209210u, 3553194394u, 0, LDEXP_TOLERANCE, 0},
+{ 84, 1089802564u, 4018123754u, 0u, 40u, 1131745604u, 4018123754u, 0, LDEXP_TOLERANCE, 0},
+{ 85, 3250695960u, 4001402392u, 0u, 197u, 3457265432u, 4001402392u, 0, LDEXP_TOLERANCE, 0},
+{ 86, 1094799453u, 1020693107u, 0u, 461u, 1578192989u, 1020693107u, 0, LDEXP_TOLERANCE, 0},
+{ 87, 3211977643u, 4053777521u, 0u, 379u, 3609387947u, 4053777521u, 0, LDEXP_TOLERANCE, 0},
+{ 88, 1054173542u, 374437781u, 0u, 354u, 1425369446u, 374437781u, 0, LDEXP_TOLERANCE, 0},
+{ 89, 1104453092u, 1396680572u, 0u, 231u, 1346674148u, 1396680572u, 0, LDEXP_TOLERANCE, 0},
+{ 90, 1065738071u, 3778242113u, 0u, 72u, 1141235543u, 3778242113u, 0, LDEXP_TOLERANCE, 0},
+{ 91, 3194422028u, 1839068700u, 0u, 22u, 3217490700u, 1839068700u, 0, LDEXP_TOLERANCE, 0},
+{ 92, 3249772522u, 3333658503u, 0u, 172u, 3430127594u, 3333658503u, 0, LDEXP_TOLERANCE, 0},
+{ 93, 3217561104u, 968764933u, 0u, 236u, 3465025040u, 968764933u, 0, LDEXP_TOLERANCE, 0},
+{ 94, 3208346874u, 2557447419u, 0u, 356u, 3581639930u, 2557447419u, 0, LDEXP_TOLERANCE, 0},
+{ 95, 1092040860u, 2421020125u, 0u, 39u, 1132935324u, 2421020125u, 0, LDEXP_TOLERANCE, 0},
+{ 96, 1051546374u, 390319448u, 0u, 307u, 1373459206u, 390319448u, 0, LDEXP_TOLERANCE, 0},
+{ 97, 1104422077u, 120202647u, 0u, 410u, 1534338237u, 120202647u, 0, LDEXP_TOLERANCE, 0},
+{ 98, 3205907556u, 1571279631u, 0u, 183u, 3397796964u, 1571279631u, 0, LDEXP_TOLERANCE, 0},
+{ 99, 3209048500u, 3811286432u, 0u, 188u, 3406180788u, 3811286432u, 0, LDEXP_TOLERANCE, 0},
+{ 100, 1082016752u, 2844125311u, 0u, 384u, 1484669936u, 2844125311u, 0, LDEXP_TOLERANCE, 0},
+{ 101, 3223518474u, 4002983238u, 0u, 232u, 3466788106u, 4002983238u, 0, LDEXP_TOLERANCE, 0},
+{ 102, 1084999692u, 705964542u, 0u, 337u, 1438369804u, 705964542u, 0, LDEXP_TOLERANCE, 0},
+{ 103, 3253568979u, 697641380u, 0u, 20u, 3274540499u, 697641380u, 0, LDEXP_TOLERANCE, 0},
+{ 104, 1066189359u, 4290199654u, 0u, 261u, 1339867695u, 4290199654u, 0, LDEXP_TOLERANCE, 0},
+{ 105, 3254107020u, 3987628760u, 0u, 187u, 3450190732u, 3987628760u, 0, LDEXP_TOLERANCE, 0},
+{ 106, 1107254732u, 713663124u, 0u, 331u, 1454333388u, 713663124u, 0, LDEXP_TOLERANCE, 0},
+{ 107, 1072634213u, 4243219780u, 0u, 67u, 1142888805u, 4243219780u, 0, LDEXP_TOLERANCE, 0},
+{ 108, 3252818240u, 2525320167u, 0u, 158u, 3418493248u, 2525320167u, 0, LDEXP_TOLERANCE, 0},
+{ 109, 1106165945u, 3774123863u, 0u, 119u, 1230946489u, 3774123863u, 0, LDEXP_TOLERANCE, 0},
+{ 110, 3215263804u, 4238491666u, 0u, 282u, 3510962236u, 4238491666u, 0, LDEXP_TOLERANCE, 0},
+{ 111, 1047864809u, 2749649438u, 0u, 342u, 1406477801u, 2749649438u, 0, LDEXP_TOLERANCE, 0},
+{ 112, 3213031252u, 2168353677u, 0u, 119u, 3337811796u, 2168353677u, 0, LDEXP_TOLERANCE, 0},
+{ 113, 3235560047u, 1920824271u, 0u, 448u, 3705322095u, 1920824271u, 0, LDEXP_TOLERANCE, 0},
+{ 114, 1064313208u, 4197962774u, 0u, 119u, 1189093752u, 4197962774u, 0, LDEXP_TOLERANCE, 0},
+{ 115, 3226731627u, 481356510u, 0u, 228u, 3465806955u, 481356510u, 0, LDEXP_TOLERANCE, 0},
+{ 116, 1098012633u, 1760061418u, 0u, 422u, 1540511705u, 1760061418u, 0, LDEXP_TOLERANCE, 0},
+{ 117, 1062348526u, 1907225401u, 0u, 468u, 1553082094u, 1907225401u, 0, LDEXP_TOLERANCE, 0},
+{ 118, 1103185231u, 4242092620u, 0u, 299u, 1416709455u, 4242092620u, 0, LDEXP_TOLERANCE, 0},
+{ 119, 1052367173u, 3238059481u, 0u, 481u, 1556732229u, 3238059481u, 0, LDEXP_TOLERANCE, 0},
+{ 120, 1100208345u, 3991562047u, 0u, 203u, 1313069273u, 3991562047u, 0, LDEXP_TOLERANCE, 0},
+{ 121, 1060891184u, 899298139u, 0u, 214u, 1285286448u, 899298139u, 0, LDEXP_TOLERANCE, 0},
+{ 122, 1104449768u, 3410634699u, 0u, 411u, 1535414504u, 3410634699u, 0, LDEXP_TOLERANCE, 0},
+{ 123, 1073419044u, 3812243448u, 0u, 319u, 1407914788u, 3812243448u, 0, LDEXP_TOLERANCE, 0},
+{ 124, 3202615057u, 987224991u, 0u, 224u, 3437496081u, 987224991u, 0, LDEXP_TOLERANCE, 0},
+{ 125, 1075151824u, 1167721978u, 0u, 399u, 1493533648u, 1167721978u, 0, LDEXP_TOLERANCE, 0},
+{ 126, 1064708193u, 2181267016u, 0u, 42u, 1108748385u, 2181267016u, 0, LDEXP_TOLERANCE, 0},
+{ 127, 1077871417u, 2549219008u, 0u, 424u, 1522467641u, 2549219008u, 0, LDEXP_TOLERANCE, 0},
+{ 128, 3198004943u, 1792969424u, 0u, 225u, 3433934543u, 1792969424u, 0, LDEXP_TOLERANCE, 0},
+{ 129, 3216855791u, 1978756209u, 0u, 494u, 3734852335u, 1978756209u, 0, LDEXP_TOLERANCE, 0},
+{ 130, 1077949895u, 2382114971u, 0u, 63u, 1144010183u, 2382114971u, 0, LDEXP_TOLERANCE, 0},
+{ 131, 3195894477u, 514482752u, 0u, 472u, 3690822349u, 514482752u, 0, LDEXP_TOLERANCE, 0},
+{ 132, 3242413319u, 543068462u, 0u, 443u, 3706932487u, 543068462u, 0, LDEXP_TOLERANCE, 0},
+{ 133, 3204701180u, 2652073890u, 0u, 199u, 3413367804u, 2652073890u, 0, LDEXP_TOLERANCE, 0},
+{ 134, 1061328546u, 1489535917u, 0u, 473u, 1557304994u, 1489535917u, 0, LDEXP_TOLERANCE, 0},
+{ 135, 1052674720u, 3229843554u, 0u, 441u, 1515096736u, 3229843554u, 0, LDEXP_TOLERANCE, 0},
+{ 136, 1097158000u, 173134582u, 0u, 79u, 1179995504u, 173134582u, 0, LDEXP_TOLERANCE, 0},
+{ 137, 3237498591u, 1923844009u, 0u, 176u, 3422047967u, 1923844009u, 0, LDEXP_TOLERANCE, 0},
+{ 138, 3224533985u, 668606628u, 0u, 441u, 3686956001u, 668606628u, 0, LDEXP_TOLERANCE, 0},
+{ 139, 1068442768u, 582256337u, 0u, 144u, 1219437712u, 582256337u, 0, LDEXP_TOLERANCE, 0},
+{ 140, 3213406340u, 1255215774u, 0u, 169u, 3390615684u, 1255215774u, 0, LDEXP_TOLERANCE, 0},
+{ 141, 3206436910u, 3262514920u, 0u, 401u, 3626915886u, 3262514920u, 0, LDEXP_TOLERANCE, 0},
+{ 142, 3211518779u, 2001934786u, 0u, 8u, 3219907387u, 2001934786u, 0, LDEXP_TOLERANCE, 0},
+{ 143, 3198655042u, 3323394293u, 0u, 424u, 3643251266u, 3323394293u, 0, LDEXP_TOLERANCE, 0},
+{ 144, 1102056915u, 2833190961u, 0u, 141u, 1249906131u, 2833190961u, 0, LDEXP_TOLERANCE, 0},
+{ 145, 3206978856u, 845263327u, 0u, 219u, 3436617000u, 845263327u, 0, LDEXP_TOLERANCE, 0},
+{ 146, 1075424006u, 3731374023u, 0u, 315u, 1405725446u, 3731374023u, 0, LDEXP_TOLERANCE, 0},
+{ 147, 1079280993u, 917682262u, 0u, 98u, 1182041441u, 917682262u, 0, LDEXP_TOLERANCE, 0},
+{ 148, 3241806761u, 233010859u, 0u, 477u, 3741977513u, 233010859u, 0, LDEXP_TOLERANCE, 0},
+{ 149, 3235133813u, 2553517871u, 0u, 397u, 3651418485u, 2553517871u, 0, LDEXP_TOLERANCE, 0},
+{ 150, 3207128644u, 1115950480u, 0u, 186u, 3402163780u, 1115950480u, 0, LDEXP_TOLERANCE, 0},
+{ 151, 3204087297u, 2664821947u, 0u, 239u, 3454696961u, 2664821947u, 0, LDEXP_TOLERANCE, 0},
+{ 152, 1071548167u, 3557912224u, 0u, 384u, 1474201351u, 3557912224u, 0, LDEXP_TOLERANCE, 0},
+{ 153, 1081218889u, 2614232599u, 0u, 397u, 1497503561u, 2614232599u, 0, LDEXP_TOLERANCE, 0},
+{ 154, 3216359929u, 1186945904u, 0u, 6u, 3222651385u, 1186945904u, 0, LDEXP_TOLERANCE, 0},
+{ 155, 3239606498u, 829492767u, 0u, 92u, 3336075490u, 829492767u, 0, LDEXP_TOLERANCE, 0},
+{ 156, 3226435447u, 2285296565u, 0u, 124u, 3356458871u, 2285296565u, 0, LDEXP_TOLERANCE, 0},
+{ 157, 1055298632u, 2224685509u, 0u, 351u, 1423348808u, 2224685509u, 0, LDEXP_TOLERANCE, 0},
+{ 158, 1079682185u, 2193774608u, 0u, 373u, 1470801033u, 2193774608u, 0, LDEXP_TOLERANCE, 0},
+{ 159, 1043796692u, 2811972465u, 0u, 360u, 1421284052u, 2811972465u, 0, LDEXP_TOLERANCE, 0},
+{ 160, 3190948438u, 1320866227u, 0u, 55u, 3248620118u, 1320866227u, 0, LDEXP_TOLERANCE, 0},
+{ 161, 3204972194u, 309600080u, 0u, 150u, 3362258594u, 309600080u, 0, LDEXP_TOLERANCE, 0},
+{ 162, 3247074394u, 4153979484u, 0u, 45u, 3294260314u, 4153979484u, 0, LDEXP_TOLERANCE, 0},
+{ 163, 3245817826u, 4108948538u, 0u, 12u, 3258400738u, 4108948538u, 0, LDEXP_TOLERANCE, 0},
+{ 164, 3214264384u, 1462119906u, 0u, 294u, 3522545728u, 1462119906u, 0, LDEXP_TOLERANCE, 0},
+{ 165, 3197805498u, 3712598596u, 0u, 84u, 3285885882u, 3712598596u, 0, LDEXP_TOLERANCE, 0},
+{ 166, 1067754068u, 3317653467u, 0u, 441u, 1530176084u, 3317653467u, 0, LDEXP_TOLERANCE, 0},
+{ 167, 3205582754u, 2014267986u, 0u, 326u, 3547418530u, 2014267986u, 0, LDEXP_TOLERANCE, 0},
+{ 168, 3249218409u, 3614018702u, 0u, 313u, 3577422697u, 3614018702u, 0, LDEXP_TOLERANCE, 0},
+{ 169, 3229701513u, 2650850527u, 0u, 332u, 3577828745u, 2650850527u, 0, LDEXP_TOLERANCE, 0},
+{ 170, 3225393003u, 2146825072u, 0u, 43u, 3270481771u, 2146825072u, 0, LDEXP_TOLERANCE, 0},
+{ 171, 1090587893u, 3181518164u, 0u, 394u, 1503726837u, 3181518164u, 0, LDEXP_TOLERANCE, 0},
+{ 172, 1083643710u, 311336721u, 0u, 16u, 1100420926u, 311336721u, 0, LDEXP_TOLERANCE, 0},
+{ 173, 1045850005u, 536548906u, 0u, 136u, 1188456341u, 536548906u, 0, LDEXP_TOLERANCE, 0},
+{ 174, 1093294119u, 493054331u, 0u, 458u, 1573541927u, 493054331u, 0, LDEXP_TOLERANCE, 0},
+{ 175, 1059637485u, 1636490194u, 0u, 59u, 1121503469u, 1636490194u, 0, LDEXP_TOLERANCE, 0},
+{ 176, 1051839122u, 1496609373u, 0u, 419u, 1491192466u, 1496609373u, 0, LDEXP_TOLERANCE, 0},
+{ 177, 3217713352u, 4047547022u, 0u, 40u, 3259656392u, 4047547022u, 0, LDEXP_TOLERANCE, 0},
+{ 178, 1052826789u, 1743733981u, 0u, 236u, 1300290725u, 1743733981u, 0, LDEXP_TOLERANCE, 0},
+{ 179, 3239738856u, 1894485819u, 0u, 206u, 3455745512u, 1894485819u, 0, LDEXP_TOLERANCE, 0},
+{ 180, 3241794374u, 3239269504u, 0u, 301u, 3557415750u, 3239269504u, 0, LDEXP_TOLERANCE, 0},
+{ 181, 1082295059u, 2514398118u, 0u, 320u, 1417839379u, 2514398118u, 0, LDEXP_TOLERANCE, 0},
+{ 182, 3239385933u, 2805194172u, 0u, 460u, 3721730893u, 2805194172u, 0, LDEXP_TOLERANCE, 0},
+{ 183, 1046578695u, 88098545u, 0u, 342u, 1405191687u, 88098545u, 0, LDEXP_TOLERANCE, 0},
+{ 184, 3234688596u, 2841362123u, 0u, 402u, 3656216148u, 2841362123u, 0, LDEXP_TOLERANCE, 0},
+{ 185, 1074460694u, 2662035051u, 0u, 251u, 1337653270u, 2662035051u, 0, LDEXP_TOLERANCE, 0},
+{ 186, 1107283576u, 1757901351u, 0u, 14u, 1121963640u, 1757901351u, 0, LDEXP_TOLERANCE, 0},
+{ 187, 3246529140u, 1690749449u, 0u, 259u, 3518110324u, 1690749449u, 0, LDEXP_TOLERANCE, 0},
+{ 188, 3205695979u, 452086895u, 0u, 290u, 3509783019u, 452086895u, 0, LDEXP_TOLERANCE, 0},
+{ 189, 3245113300u, 3993463847u, 0u, 367u, 3629940692u, 3993463847u, 0, LDEXP_TOLERANCE, 0},
+{ 190, 1081866822u, 2441536203u, 0u, 276u, 1371273798u, 2441536203u, 0, LDEXP_TOLERANCE, 0},
+{ 191, 1069205029u, 2446986142u, 0u, 436u, 1526384165u, 2446986142u, 0, LDEXP_TOLERANCE, 0},
+{ 192, 1100226690u, 3561788365u, 0u, 90u, 1194598530u, 3561788365u, 0, LDEXP_TOLERANCE, 0},
+{ 193, 3217905473u, 2182131707u, 0u, 49u, 3269285697u, 2182131707u, 0, LDEXP_TOLERANCE, 0},
+{ 194, 1074481825u, 1411649658u, 0u, 265u, 1352354465u, 1411649658u, 0, LDEXP_TOLERANCE, 0},
+{ 195, 1098423846u, 1729843483u, 0u, 213u, 1321770534u, 1729843483u, 0, LDEXP_TOLERANCE, 0},
+{ 196, 3206635099u, 3105740969u, 0u, 255u, 3474021979u, 3105740969u, 0, LDEXP_TOLERANCE, 0},
+{ 197, 1069626394u, 395560434u, 0u, 447u, 1538339866u, 395560434u, 0, LDEXP_TOLERANCE, 0},
+{ 198, 1096244467u, 3644230845u, 0u, 166u, 1270308083u, 3644230845u, 0, LDEXP_TOLERANCE, 0},
+{ 199, 1065716026u, 120488169u, 0u, 345u, 1427474746u, 120488169u, 0, LDEXP_TOLERANCE, 0},
+{ 200, 3239481707u, 1635144910u, 0u, 12u, 3252064619u, 1635144910u, 0, LDEXP_TOLERANCE, 0},
+{ 201, 3188033119u, 3901916594u, 0u, 55u, 3245704799u, 3901916594u, 0, LDEXP_TOLERANCE, 0},
+{ 202, 1048893172u, 1520233772u, 0u, 138u, 1193596660u, 1520233772u, 0, LDEXP_TOLERANCE, 0},
+{ 203, 3243444050u, 2174480394u, 0u, 427u, 3691186002u, 2174480394u, 0, LDEXP_TOLERANCE, 0},
+{ 204, 3227041648u, 2170587119u, 0u, 22u, 3250110320u, 2170587119u, 0, LDEXP_TOLERANCE, 0},
+{ 205, 1058401310u, 1861796818u, 0u, 202u, 1270213662u, 1861796818u, 0, LDEXP_TOLERANCE, 0},
+{ 206, 3226315730u, 3847770185u, 0u, 380u, 3624774610u, 3847770185u, 0, LDEXP_TOLERANCE, 0},
+{ 207, 1069595396u, 541754047u, 0u, 233u, 1313913604u, 541754047u, 0, LDEXP_TOLERANCE, 0},
+{ 208, 3212663474u, 272319256u, 0u, 131u, 3350026930u, 272319256u, 0, LDEXP_TOLERANCE, 0},
+{ 209, 1059284620u, 3096749920u, 0u, 483u, 1565746828u, 3096749920u, 0, LDEXP_TOLERANCE, 0},
+{ 210, 1076067883u, 2272922429u, 0u, 352u, 1445166635u, 2272922429u, 0, LDEXP_TOLERANCE, 0},
+{ 211, 3230247604u, 3220743043u, 0u, 231u, 3472468660u, 3220743043u, 0, LDEXP_TOLERANCE, 0},
+{ 212, 1050651323u, 2300380149u, 0u, 114u, 1170188987u, 2300380149u, 0, LDEXP_TOLERANCE, 0},
+{ 213, 1072722410u, 2437243415u, 0u, 305u, 1392538090u, 2437243415u, 0, LDEXP_TOLERANCE, 0},
+{ 214, 3231053247u, 3661627618u, 0u, 79u, 3313890751u, 3661627618u, 0, LDEXP_TOLERANCE, 0},
+{ 215, 1041819430u, 1831574607u, 0u, 120u, 1167648550u, 1831574607u, 0, LDEXP_TOLERANCE, 0},
+{ 216, 3236399793u, 2527076176u, 0u, 260u, 3509029553u, 2527076176u, 0, LDEXP_TOLERANCE, 0},
+{ 217, 3195290997u, 2676398686u, 0u, 117u, 3317974389u, 2676398686u, 0, LDEXP_TOLERANCE, 0},
+{ 218, 3193437916u, 1339584035u, 0u, 123u, 3322412764u, 1339584035u, 0, LDEXP_TOLERANCE, 0},
+{ 219, 1095503867u, 3529401650u, 0u, 40u, 1137446907u, 3529401650u, 0, LDEXP_TOLERANCE, 0},
+{ 220, 1048913359u, 263139465u, 0u, 226u, 1285891535u, 263139465u, 0, LDEXP_TOLERANCE, 0},
+{ 221, 3234381459u, 2044871840u, 0u, 275u, 3522739859u, 2044871840u, 0, LDEXP_TOLERANCE, 0},
+{ 222, 1103621815u, 1760748810u, 0u, 143u, 1253568183u, 1760748810u, 0, LDEXP_TOLERANCE, 0},
+{ 223, 3233696138u, 3631905577u, 0u, 59u, 3295562122u, 3631905577u, 0, LDEXP_TOLERANCE, 0},
+{ 224, 1090844360u, 895635283u, 0u, 327u, 1433728712u, 895635283u, 0, LDEXP_TOLERANCE, 0},
+{ 225, 3211740211u, 3230452686u, 0u, 315u, 3542041651u, 3230452686u, 0, LDEXP_TOLERANCE, 0},
+{ 226, 1075422810u, 1864139509u, 0u, 202u, 1287235162u, 1864139509u, 0, LDEXP_TOLERANCE, 0},
+{ 227, 1091534863u, 3652704631u, 0u, 282u, 1387233295u, 3652704631u, 0, LDEXP_TOLERANCE, 0},
+{ 228, 1055756112u, 945524907u, 0u, 417u, 1493012304u, 945524907u, 0, LDEXP_TOLERANCE, 0},
+{ 229, 1042592415u, 3193385121u, 0u, 459u, 1523888799u, 3193385121u, 0, LDEXP_TOLERANCE, 0},
+{ 230, 1097323612u, 2009367488u, 0u, 361u, 1475859548u, 2009367488u, 0, LDEXP_TOLERANCE, 0},
+{ 231, 1080597180u, 424248253u, 0u, 445u, 1547213500u, 424248253u, 0, LDEXP_TOLERANCE, 0},
+{ 232, 1042985978u, 1729313551u, 0u, 74u, 1120580602u, 1729313551u, 0, LDEXP_TOLERANCE, 0},
+{ 233, 1052968515u, 262785866u, 0u, 366u, 1436747331u, 262785866u, 0, LDEXP_TOLERANCE, 0},
+{ 234, 3201825802u, 1027600628u, 0u, 222u, 3434609674u, 1027600628u, 0, LDEXP_TOLERANCE, 0},
+{ 235, 3189614508u, 2863482262u, 0u, 205u, 3404572588u, 2863482262u, 0, LDEXP_TOLERANCE, 0},
+{ 236, 1087207520u, 2536788461u, 0u, 408u, 1515026528u, 2536788461u, 0, LDEXP_TOLERANCE, 0},
+{ 237, 3220884452u, 1052878591u, 0u, 219u, 3450522596u, 1052878591u, 0, LDEXP_TOLERANCE, 0},
+{ 238, 1050895039u, 3686077741u, 0u, 270u, 1334010559u, 3686077741u, 0, LDEXP_TOLERANCE, 0},
+{ 239, 1072905134u, 3151697799u, 0u, 450u, 1544764334u, 3151697799u, 0, LDEXP_TOLERANCE, 0},
+{ 240, 3199889853u, 3750592285u, 0u, 80u, 3283775933u, 3750592285u, 0, LDEXP_TOLERANCE, 0},
+{ 241, 3195141686u, 524180329u, 0u, 335u, 3546414646u, 524180329u, 0, LDEXP_TOLERANCE, 0},
+{ 242, 3237769823u, 549692228u, 0u, 429u, 3687608927u, 549692228u, 0, LDEXP_TOLERANCE, 0},
+{ 243, 1044977851u, 123460729u, 0u, 325u, 1385765051u, 123460729u, 0, LDEXP_TOLERANCE, 0},
+{ 244, 1103902874u, 3456203663u, 0u, 454u, 1579956378u, 3456203663u, 0, LDEXP_TOLERANCE, 0},
+{ 245, 3221154648u, 2341156808u, 0u, 369u, 3608079192u, 2341156808u, 0, LDEXP_TOLERANCE, 0},
+{ 246, 1089754623u, 3952801936u, 0u, 43u, 1134843391u, 3952801936u, 0, LDEXP_TOLERANCE, 0},
+{ 247, 3207212058u, 563170079u, 0u, 150u, 3364498458u, 563170079u, 0, LDEXP_TOLERANCE, 0},
+{ 248, 3225869468u, 1535381711u, 0u, 384u, 3628522652u, 1535381711u, 0, LDEXP_TOLERANCE, 0},
+{ 249, 1054391309u, 4072415576u, 0u, 9u, 1063828493u, 4072415576u, 0, LDEXP_TOLERANCE, 0},
+{ 250, 3209063031u, 3109049640u, 0u, 91u, 3304483447u, 3109049640u, 0, LDEXP_TOLERANCE, 0},
+{ 251, 3218136187u, 2738823198u, 0u, 33u, 3252739195u, 2738823198u, 0, LDEXP_TOLERANCE, 0},
+{ 252, 1061175490u, 1144180871u, 0u, 106u, 1172324546u, 1144180871u, 0, LDEXP_TOLERANCE, 0},
+{ 253, 1096418100u, 1619819023u, 0u, 54u, 1153041204u, 1619819023u, 0, LDEXP_TOLERANCE, 0},
+{ 254, 1071954071u, 2285696073u, 0u, 430u, 1522841751u, 2285696073u, 0, LDEXP_TOLERANCE, 0},
+{ 255, 1072459589u, 1537999144u, 0u, 464u, 1558998853u, 1537999144u, 0, LDEXP_TOLERANCE, 0},
+{ 256, 3235749098u, 157845884u, 0u, 443u, 3700268266u, 157845884u, 0, LDEXP_TOLERANCE, 0},
+{ 257, 3222630024u, 232194256u, 0u, 125u, 3353702024u, 232194256u, 0, LDEXP_TOLERANCE, 0},
+{ 258, 3241510667u, 1984016330u, 0u, 187u, 3437594379u, 1984016330u, 0, LDEXP_TOLERANCE, 0},
+{ 259, 1076548691u, 4276701845u, 0u, 160u, 1244320851u, 4276701845u, 0, LDEXP_TOLERANCE, 0},
+{ 260, 1093262183u, 458381635u, 0u, 32u, 1126816615u, 458381635u, 0, LDEXP_TOLERANCE, 0},
+{ 261, 3217410826u, 2931856236u, 0u, 5u, 3222653706u, 2931856236u, 0, LDEXP_TOLERANCE, 0},
+{ 262, 3188629767u, 978126928u, 0u, 295u, 3497959687u, 978126928u, 0, LDEXP_TOLERANCE, 0},
+{ 263, 3222362209u, 1190217203u, 0u, 457u, 3701561441u, 1190217203u, 0, LDEXP_TOLERANCE, 0},
+{ 264, 3219622048u, 3145593339u, 0u, 490u, 3733424288u, 3145593339u, 0, LDEXP_TOLERANCE, 0},
+{ 265, 1085737474u, 637782232u, 0u, 393u, 1497827842u, 637782232u, 0, LDEXP_TOLERANCE, 0},
+{ 266, 1063416038u, 2567938216u, 0u, 233u, 1307734246u, 2567938216u, 0, LDEXP_TOLERANCE, 0},
+{ 267, 3245869330u, 1885951730u, 0u, 220u, 3476556050u, 1885951730u, 0, LDEXP_TOLERANCE, 0},
+{ 268, 3207806174u, 2553919637u, 0u, 157u, 3372432606u, 2553919637u, 0, LDEXP_TOLERANCE, 0},
+{ 269, 3247429520u, 2146563695u, 0u, 146u, 3400521616u, 2146563695u, 0, LDEXP_TOLERANCE, 0},
+{ 270, 1061008451u, 1671615226u, 0u, 151u, 1219343427u, 1671615226u, 0, LDEXP_TOLERANCE, 0},
+{ 271, 1076028796u, 3859211180u, 0u, 219u, 1305666940u, 3859211180u, 0, LDEXP_TOLERANCE, 0},
+{ 272, 1072363386u, 1650981745u, 0u, 51u, 1125840762u, 1650981745u, 0, LDEXP_TOLERANCE, 0},
+{ 273, 1068183512u, 1475114165u, 0u, 177u, 1253781464u, 1475114165u, 0, LDEXP_TOLERANCE, 0},
+{ 274, 1097775870u, 2570983571u, 0u, 19u, 1117698814u, 2570983571u, 0, LDEXP_TOLERANCE, 0},
+{ 275, 3249504174u, 4161096849u, 0u, 207u, 3466559406u, 4161096849u, 0, LDEXP_TOLERANCE, 0},
+{ 276, 1107277558u, 4024344323u, 0u, 272u, 1392490230u, 4024344323u, 0, LDEXP_TOLERANCE, 0},
+{ 277, 3238437161u, 2611187549u, 0u, 97u, 3340149033u, 2611187549u, 0, LDEXP_TOLERANCE, 0},
+{ 278, 1045834828u, 3078509746u, 0u, 63u, 1111895116u, 3078509746u, 0, LDEXP_TOLERANCE, 0},
+{ 279, 1089189384u, 2227116198u, 0u, 109u, 1203484168u, 2227116198u, 0, LDEXP_TOLERANCE, 0},
+{ 280, 1080684976u, 1472665012u, 0u, 366u, 1464463792u, 1472665012u, 0, LDEXP_TOLERANCE, 0},
+{ 281, 1080318978u, 3071232825u, 0u, 488u, 1592024066u, 3071232825u, 0, LDEXP_TOLERANCE, 0},
+{ 282, 3205503940u, 437403482u, 0u, 267u, 3485473732u, 437403482u, 0, LDEXP_TOLERANCE, 0},
+{ 283, 1062227791u, 4288608311u, 0u, 270u, 1345343311u, 4288608311u, 0, LDEXP_TOLERANCE, 0},
+{ 284, 1044502599u, 349540356u, 0u, 19u, 1064425543u, 349540356u, 0, LDEXP_TOLERANCE, 0},
+{ 285, 1043598726u, 944335909u, 0u, 297u, 1355025798u, 944335909u, 0, LDEXP_TOLERANCE, 0},
+{ 286, 1051582533u, 2123384287u, 0u, 71u, 1126031429u, 2123384287u, 0, LDEXP_TOLERANCE, 0},
+{ 287, 3198090050u, 2528390848u, 0u, 251u, 3461282626u, 2528390848u, 0, LDEXP_TOLERANCE, 0},
+{ 288, 3240457093u, 132926909u, 0u, 67u, 3310711685u, 132926909u, 0, LDEXP_TOLERANCE, 0},
+{ 289, 3246632231u, 40413554u, 0u, 24u, 3271798055u, 40413554u, 0, LDEXP_TOLERANCE, 0},
+{ 290, 3200875834u, 3443172377u, 0u, 470u, 3693706554u, 3443172377u, 0, LDEXP_TOLERANCE, 0},
+{ 291, 1081721846u, 373222953u, 0u, 163u, 1252639734u, 373222953u, 0, LDEXP_TOLERANCE, 0},
+{ 292, 3194233874u, 2533101358u, 0u, 78u, 3276022802u, 2533101358u, 0, LDEXP_TOLERANCE, 0},
+{ 293, 3234400000u, 1020015106u, 0u, 458u, 3714647808u, 1020015106u, 0, LDEXP_TOLERANCE, 0},
+{ 294, 1097650417u, 4175026874u, 0u, 175u, 1281151217u, 4175026874u, 0, LDEXP_TOLERANCE, 0},
+{ 295, 3217062816u, 3412658638u, 0u, 18u, 3235937184u, 3412658638u, 0, LDEXP_TOLERANCE, 0},
+{ 296, 1041317040u, 3644551949u, 0u, 286u, 1341209776u, 3644551949u, 0, LDEXP_TOLERANCE, 0},
+{ 297, 1097752504u, 778944340u, 0u, 426u, 1544445880u, 778944340u, 0, LDEXP_TOLERANCE, 0},
+{ 298, 1067680885u, 937732557u, 0u, 71u, 1142129781u, 937732557u, 0, LDEXP_TOLERANCE, 0},
+{ 299, 1086736464u, 2862118510u, 0u, 461u, 1570130000u, 2862118510u, 0, LDEXP_TOLERANCE, 0},
+{ 300, 1096901686u, 850134980u, 0u, 211u, 1318151222u, 850134980u, 0, LDEXP_TOLERANCE, 0},
+{ 301, 3251210973u, 4095059472u, 0u, 442u, 3714681565u, 4095059472u, 0, LDEXP_TOLERANCE, 0},
+{ 302, 3245779466u, 1314480053u, 0u, 144u, 3396774410u, 1314480053u, 0, LDEXP_TOLERANCE, 0},
+{ 303, 1090422995u, 2303828445u, 0u, 388u, 1497270483u, 2303828445u, 0, LDEXP_TOLERANCE, 0},
+{ 304, 1096895426u, 3882733009u, 0u, 191u, 1297173442u, 3882733009u, 0, LDEXP_TOLERANCE, 0},
+{ 305, 1089588191u, 2009174302u, 0u, 496u, 1609681887u, 2009174302u, 0, LDEXP_TOLERANCE, 0},
+{ 306, 1097495331u, 312449728u, 0u, 173u, 1278898979u, 312449728u, 0, LDEXP_TOLERANCE, 0},
+{ 307, 1049684114u, 1160162008u, 0u, 212u, 1271982226u, 1160162008u, 0, LDEXP_TOLERANCE, 0},
+{ 308, 3209944762u, 670974566u, 0u, 343u, 3569606330u, 670974566u, 0, LDEXP_TOLERANCE, 0},
+{ 309, 3221122343u, 2051675610u, 0u, 390u, 3630066983u, 2051675610u, 0, LDEXP_TOLERANCE, 0},
+{ 310, 1042941085u, 1098012699u, 0u, 155u, 1205470365u, 1098012699u, 0, LDEXP_TOLERANCE, 0},
+{ 311, 3198635158u, 2576510619u, 0u, 399u, 3617016982u, 2576510619u, 0, LDEXP_TOLERANCE, 0},
+{ 312, 1093732734u, 2212627257u, 0u, 220u, 1324419454u, 2212627257u, 0, LDEXP_TOLERANCE, 0},
+{ 313, 1079731753u, 2815026996u, 0u, 352u, 1448830505u, 2815026996u, 0, LDEXP_TOLERANCE, 0},
+{ 314, 1057143242u, 908275876u, 0u, 334u, 1407367626u, 908275876u, 0, LDEXP_TOLERANCE, 0},
+{ 315, 3228249088u, 4054744334u, 0u, 389u, 3636145152u, 4054744334u, 0, LDEXP_TOLERANCE, 0},
+{ 316, 1051974004u, 749718883u, 0u, 80u, 1135860084u, 749718883u, 0, LDEXP_TOLERANCE, 0},
+{ 317, 3214025736u, 4166701781u, 0u, 480u, 3717342216u, 4166701781u, 0, LDEXP_TOLERANCE, 0},
+{ 318, 1066562662u, 3849549110u, 0u, 336u, 1418884198u, 3849549110u, 0, LDEXP_TOLERANCE, 0},
+{ 319, 3191009014u, 3648637481u, 0u, 438u, 3650285302u, 3648637481u, 0, LDEXP_TOLERANCE, 0},
+{ 320, 3205610460u, 229827507u, 0u, 298u, 3518086108u, 229827507u, 0, LDEXP_TOLERANCE, 0},
+{ 321, 1096643939u, 4161699205u, 0u, 413u, 1529705827u, 4161699205u, 0, LDEXP_TOLERANCE, 0},
+{ 322, 3195639002u, 2610757921u, 0u, 297u, 3507066074u, 2610757921u, 0, LDEXP_TOLERANCE, 0},
+{ 323, 1101813983u, 545051245u, 0u, 68u, 1173117151u, 545051245u, 0, LDEXP_TOLERANCE, 0},
+{ 324, 3220046694u, 3097521578u, 0u, 11u, 3231581030u, 3097521578u, 0, LDEXP_TOLERANCE, 0},
+{ 325, 3216630070u, 1141349287u, 0u, 485u, 3725189430u, 1141349287u, 0, LDEXP_TOLERANCE, 0},
+{ 326, 3236866557u, 3586841689u, 0u, 44u, 3283003901u, 3586841689u, 0, LDEXP_TOLERANCE, 0},
+{ 327, 1089595934u, 2642699773u, 0u, 52u, 1144121886u, 2642699773u, 0, LDEXP_TOLERANCE, 0},
+{ 328, 3233606825u, 1521902674u, 0u, 334u, 3583831209u, 1521902674u, 0, LDEXP_TOLERANCE, 0},
+{ 329, 1066370780u, 1166542459u, 0u, 333u, 1415546588u, 1166542459u, 0, LDEXP_TOLERANCE, 0},
+{ 330, 3220123386u, 2769313057u, 0u, 150u, 3377409786u, 2769313057u, 0, LDEXP_TOLERANCE, 0},
+{ 331, 1098471976u, 1840369334u, 0u, 14u, 1113152040u, 1840369334u, 0, LDEXP_TOLERANCE, 0},
+{ 332, 3252677278u, 2567854096u, 0u, 248u, 3512724126u, 2567854096u, 0, LDEXP_TOLERANCE, 0},
+{ 333, 1070061501u, 1222383416u, 0u, 474u, 1567086525u, 1222383416u, 0, LDEXP_TOLERANCE, 0},
+{ 334, 3207981719u, 1270950554u, 0u, 256u, 3476417175u, 1270950554u, 0, LDEXP_TOLERANCE, 0},
+{ 335, 1041332729u, 131817720u, 0u, 452u, 1515289081u, 131817720u, 0, LDEXP_TOLERANCE, 0},
+{ 336, 1043119240u, 1962885016u, 0u, 374u, 1435286664u, 1962885016u, 0, LDEXP_TOLERANCE, 0},
+{ 337, 3218047470u, 3052053491u, 0u, 468u, 3708781038u, 3052053491u, 0, LDEXP_TOLERANCE, 0},
+{ 338, 1066224243u, 4082134039u, 0u, 227u, 1304250995u, 4082134039u, 0, LDEXP_TOLERANCE, 0},
+{ 339, 3203939696u, 1286929228u, 0u, 35u, 3240639856u, 1286929228u, 0, LDEXP_TOLERANCE, 0},
+{ 340, 3202852071u, 1723150716u, 0u, 177u, 3388450023u, 1723150716u, 0, LDEXP_TOLERANCE, 0},
+{ 341, 3228645956u, 3351728246u, 0u, 228u, 3467721284u, 3351728246u, 0, LDEXP_TOLERANCE, 0},
+{ 342, 1081598008u, 3664833573u, 0u, 167u, 1256710200u, 3664833573u, 0, LDEXP_TOLERANCE, 0},
+{ 343, 1104965247u, 143071571u, 0u, 448u, 1574727295u, 143071571u, 0, LDEXP_TOLERANCE, 0},
+{ 344, 1050966579u, 2318822594u, 0u, 195u, 1255438899u, 2318822594u, 0, LDEXP_TOLERANCE, 0},
+{ 345, 1093372204u, 709906874u, 0u, 330u, 1439402284u, 709906874u, 0, LDEXP_TOLERANCE, 0},
+{ 346, 3231728166u, 566369690u, 0u, 261u, 3505406502u, 566369690u, 0, LDEXP_TOLERANCE, 0},
+{ 347, 3216582391u, 4025642424u, 0u, 291u, 3521718007u, 4025642424u, 0, LDEXP_TOLERANCE, 0},
+{ 348, 1062802257u, 1894196767u, 0u, 383u, 1464406865u, 1894196767u, 0, LDEXP_TOLERANCE, 0},
+{ 349, 3245017107u, 3370316038u, 0u, 355u, 3617261587u, 3370316038u, 0, LDEXP_TOLERANCE, 0},
+{ 350, 3243448963u, 472093737u, 0u, 342u, 3602061955u, 472093737u, 0, LDEXP_TOLERANCE, 0},
+{ 351, 1075652455u, 1775629954u, 0u, 415u, 1510811495u, 1775629954u, 0, LDEXP_TOLERANCE, 0},
+{ 352, 1072748883u, 130452005u, 0u, 460u, 1555093843u, 130452005u, 0, LDEXP_TOLERANCE, 0},
+{ 353, 1103299779u, 947955476u, 0u, 82u, 1189283011u, 947955476u, 0, LDEXP_TOLERANCE, 0},
+{ 354, 1101236445u, 2334159798u, 0u, 108u, 1214482653u, 2334159798u, 0, LDEXP_TOLERANCE, 0},
+{ 355, 1070535958u, 4123069999u, 0u, 150u, 1227822358u, 4123069999u, 0, LDEXP_TOLERANCE, 0},
+{ 356, 1089976512u, 2465499154u, 0u, 266u, 1368897728u, 2465499154u, 0, LDEXP_TOLERANCE, 0},
+{ 357, 3201817089u, 1593603389u, 0u, 407u, 3628587521u, 1593603389u, 0, LDEXP_TOLERANCE, 0},
+{ 358, 1047787098u, 2933875948u, 0u, 108u, 1161033306u, 2933875948u, 0, LDEXP_TOLERANCE, 0},
+{ 359, 1079279810u, 1807691639u, 0u, 444u, 1544847554u, 1807691639u, 0, LDEXP_TOLERANCE, 0},
+{ 360, 1043880753u, 3730428641u, 0u, 463u, 1529371441u, 3730428641u, 0, LDEXP_TOLERANCE, 0},
+{ 361, 1096723626u, 3360816360u, 0u, 427u, 1544465578u, 3360816360u, 0, LDEXP_TOLERANCE, 0},
+{ 362, 3197488312u, 1678396836u, 0u, 238u, 3447049400u, 1678396836u, 0, LDEXP_TOLERANCE, 0},
+{ 363, 3226762726u, 424413376u, 0u, 258u, 3497295334u, 424413376u, 0, LDEXP_TOLERANCE, 0},
+{ 364, 1080633926u, 3716185739u, 0u, 187u, 1276717638u, 3716185739u, 0, LDEXP_TOLERANCE, 0},
+{ 365, 3204867490u, 3920379359u, 0u, 431u, 3656803746u, 3920379359u, 0, LDEXP_TOLERANCE, 0},
+{ 366, 3215772443u, 1323631105u, 0u, 191u, 3416050459u, 1323631105u, 0, LDEXP_TOLERANCE, 0},
+{ 367, 1050683091u, 2514548244u, 0u, 173u, 1232086739u, 2514548244u, 0, LDEXP_TOLERANCE, 0},
+{ 368, 3239000308u, 1788218301u, 0u, 34u, 3274651892u, 1788218301u, 0, LDEXP_TOLERANCE, 0},
+{ 369, 3237555984u, 1830011528u, 0u, 319u, 3572051728u, 1830011528u, 0, LDEXP_TOLERANCE, 0},
+{ 370, 1092971882u, 513397822u, 0u, 220u, 1323658602u, 513397822u, 0, LDEXP_TOLERANCE, 0},
+{ 371, 3195171314u, 444369027u, 0u, 36u, 3232920050u, 444369027u, 0, LDEXP_TOLERANCE, 0},
+{ 372, 1090970899u, 3889472979u, 0u, 419u, 1530324243u, 3889472979u, 0, LDEXP_TOLERANCE, 0},
+{ 373, 1057363231u, 2309685487u, 0u, 378u, 1453724959u, 2309685487u, 0, LDEXP_TOLERANCE, 0},
+{ 374, 1106459870u, 1380631766u, 0u, 437u, 1564687582u, 1380631766u, 0, LDEXP_TOLERANCE, 0},
+{ 375, 3248396473u, 428200516u, 0u, 376u, 3642661049u, 428200516u, 0, LDEXP_TOLERANCE, 0},
+{ 376, 1058529374u, 1388434855u, 0u, 328u, 1402462302u, 1388434855u, 0, LDEXP_TOLERANCE, 0},
+{ 377, 1073564525u, 1634474775u, 0u, 306u, 1394428781u, 1634474775u, 0, LDEXP_TOLERANCE, 0},
+{ 378, 3253676249u, 2523906064u, 0u, 39u, 3294570713u, 2523906064u, 0, LDEXP_TOLERANCE, 0},
+{ 379, 1081755890u, 1525260440u, 0u, 250u, 1343899890u, 1525260440u, 0, LDEXP_TOLERANCE, 0},
+{ 380, 3203074326u, 1872475395u, 0u, 108u, 3316320534u, 1872475395u, 0, LDEXP_TOLERANCE, 0},
+{ 381, 1084871394u, 3237497681u, 0u, 443u, 1549390562u, 3237497681u, 0, LDEXP_TOLERANCE, 0},
+{ 382, 3242751645u, 260260645u, 0u, 481u, 3747116701u, 260260645u, 0, LDEXP_TOLERANCE, 0},
+{ 383, 3218981444u, 4088124503u, 0u, 110u, 3334324804u, 4088124503u, 0, LDEXP_TOLERANCE, 0},
+{ 384, 1071801993u, 814008375u, 0u, 336u, 1424123529u, 814008375u, 0, LDEXP_TOLERANCE, 0},
+{ 385, 1066437805u, 3656359254u, 0u, 66u, 1135643821u, 3656359254u, 0, LDEXP_TOLERANCE, 0},
+{ 386, 3203021744u, 2817965308u, 0u, 440u, 3664395184u, 2817965308u, 0, LDEXP_TOLERANCE, 0},
+{ 387, 3230741411u, 1789555686u, 0u, 143u, 3380687779u, 1789555686u, 0, LDEXP_TOLERANCE, 0},
+{ 388, 1080923606u, 1088945233u, 0u, 95u, 1180538326u, 1088945233u, 0, LDEXP_TOLERANCE, 0},
+{ 389, 3207306559u, 1072535369u, 0u, 356u, 3580599615u, 1072535369u, 0, LDEXP_TOLERANCE, 0},
+{ 390, 1070189724u, 891892107u, 0u, 31u, 1102695580u, 891892107u, 0, LDEXP_TOLERANCE, 0},
+{ 391, 3190088451u, 2651702199u, 0u, 404u, 3613713155u, 2651702199u, 0, LDEXP_TOLERANCE, 0},
+{ 392, 1060939155u, 4016460801u, 0u, 419u, 1500292499u, 4016460801u, 0, LDEXP_TOLERANCE, 0},
+{ 393, 1045144591u, 3993557701u, 0u, 87u, 1136370703u, 3993557701u, 0, LDEXP_TOLERANCE, 0},
+{ 394, 3239768936u, 2532362633u, 0u, 260u, 3512398696u, 2532362633u, 0, LDEXP_TOLERANCE, 0},
+{ 395, 1073180085u, 3537487468u, 0u, 388u, 1480027573u, 3537487468u, 0, LDEXP_TOLERANCE, 0},
+{ 396, 3198529584u, 564216088u, 0u, 421u, 3639980080u, 564216088u, 0, LDEXP_TOLERANCE, 0},
+{ 397, 3231451722u, 144814872u, 0u, 377u, 3626764874u, 144814872u, 0, LDEXP_TOLERANCE, 0},
+{ 398, 1072709093u, 596120394u, 0u, 25u, 1098923493u, 596120394u, 0, LDEXP_TOLERANCE, 0},
+{ 399, 1067876025u, 3310262308u, 0u, 313u, 1396080313u, 3310262308u, 0, LDEXP_TOLERANCE, 0},
+{ 400, 3213074059u, 4166287959u, 0u, 332u, 3561201291u, 4166287959u, 0, LDEXP_TOLERANCE, 0},
+{ 401, 1041212112u, 3518868553u, 0u, 279u, 1333764816u, 3518868553u, 0, LDEXP_TOLERANCE, 0},
+{ 402, 1066131946u, 3173459054u, 0u, 324u, 1405870570u, 3173459054u, 0, LDEXP_TOLERANCE, 0},
+{ 403, 3202593969u, 1428731905u, 0u, 168u, 3378754737u, 1428731905u, 0, LDEXP_TOLERANCE, 0},
+{ 404, 1054790485u, 453215326u, 0u, 371u, 1443812181u, 453215326u, 0, LDEXP_TOLERANCE, 0},
+{ 405, 3200044385u, 467903731u, 0u, 183u, 3391933793u, 467903731u, 0, LDEXP_TOLERANCE, 0},
+{ 406, 1072744324u, 1813392963u, 0u, 180u, 1261488004u, 1813392963u, 0, LDEXP_TOLERANCE, 0},
+{ 407, 3227858678u, 3521174478u, 0u, 427u, 3675600630u, 3521174478u, 0, LDEXP_TOLERANCE, 0},
+{ 408, 3220431019u, 1451134835u, 0u, 159u, 3387154603u, 1451134835u, 0, LDEXP_TOLERANCE, 0},
+{ 409, 1072890925u, 478199813u, 0u, 188u, 1270023213u, 478199813u, 0, LDEXP_TOLERANCE, 0},
+{ 410, 3247518236u, 2319141545u, 0u, 182u, 3438359068u, 2319141545u, 0, LDEXP_TOLERANCE, 0},
+{ 411, 3205208241u, 468540316u, 0u, 236u, 3452672177u, 468540316u, 0, LDEXP_TOLERANCE, 0},
+{ 412, 1088186210u, 2805548583u, 0u, 80u, 1172072290u, 2805548583u, 0, LDEXP_TOLERANCE, 0},
+{ 413, 3208941801u, 3799277222u, 0u, 491u, 3723792617u, 3799277222u, 0, LDEXP_TOLERANCE, 0},
+{ 414, 1098778634u, 4116114952u, 0u, 403u, 1521354762u, 4116114952u, 0, LDEXP_TOLERANCE, 0},
+{ 415, 1089501101u, 3088319870u, 0u, 415u, 1524660141u, 3088319870u, 0, LDEXP_TOLERANCE, 0},
+{ 416, 1092033606u, 4147340419u, 0u, 424u, 1536629830u, 4147340419u, 0, LDEXP_TOLERANCE, 0},
+{ 417, 1097192134u, 2915618902u, 0u, 289u, 1400230598u, 2915618902u, 0, LDEXP_TOLERANCE, 0},
+{ 418, 1083131407u, 949573155u, 0u, 213u, 1306478095u, 949573155u, 0, LDEXP_TOLERANCE, 0},
+{ 419, 3217299226u, 953230084u, 0u, 56u, 3276019482u, 953230084u, 0, LDEXP_TOLERANCE, 0},
+{ 420, 1042658166u, 1139656827u, 0u, 464u, 1529197430u, 1139656827u, 0, LDEXP_TOLERANCE, 0},
+{ 421, 1074812004u, 1497640128u, 0u, 126u, 1206932580u, 1497640128u, 0, LDEXP_TOLERANCE, 0},
+{ 422, 1049329601u, 1399097473u, 0u, 433u, 1503363009u, 1399097473u, 0, LDEXP_TOLERANCE, 0},
+{ 423, 3206749408u, 547789874u, 0u, 431u, 3658685664u, 547789874u, 0, LDEXP_TOLERANCE, 0},
+{ 424, 1074621795u, 671680995u, 0u, 3u, 1077767523u, 671680995u, 0, LDEXP_TOLERANCE, 0},
+{ 425, 3213380440u, 2844394564u, 0u, 143u, 3363326808u, 2844394564u, 0, LDEXP_TOLERANCE, 0},
+{ 426, 3237267124u, 1206228129u, 0u, 339u, 3592734388u, 1206228129u, 0, LDEXP_TOLERANCE, 0},
+{ 427, 1048320712u, 1857527908u, 0u, 184u, 1241258696u, 1857527908u, 0, LDEXP_TOLERANCE, 0},
+{ 428, 1073593099u, 3529728583u, 0u, 248u, 1333639947u, 3529728583u, 0, LDEXP_TOLERANCE, 0},
+{ 429, 3208234855u, 1662197629u, 0u, 448u, 3677996903u, 1662197629u, 0, LDEXP_TOLERANCE, 0},
+{ 430, 3227209251u, 830911610u, 0u, 206u, 3443215907u, 830911610u, 0, LDEXP_TOLERANCE, 0},
+{ 431, 3191658671u, 3234651229u, 0u, 489u, 3704412335u, 3234651229u, 0, LDEXP_TOLERANCE, 0},
+{ 432, 1060602604u, 1595574604u, 0u, 233u, 1304920812u, 1595574604u, 0, LDEXP_TOLERANCE, 0},
+{ 433, 1060196346u, 2183973116u, 0u, 199u, 1268862970u, 2183973116u, 0, LDEXP_TOLERANCE, 0},
+{ 434, 3237212525u, 2067967151u, 0u, 187u, 3433296237u, 2067967151u, 0, LDEXP_TOLERANCE, 0},
+{ 435, 3249591914u, 4276685796u, 0u, 405u, 3674265194u, 4276685796u, 0, LDEXP_TOLERANCE, 0},
+{ 436, 1097175658u, 915990537u, 0u, 414u, 1531286122u, 915990537u, 0, LDEXP_TOLERANCE, 0},
+{ 437, 1096215811u, 3833628834u, 0u, 292u, 1402400003u, 3833628834u, 0, LDEXP_TOLERANCE, 0},
+{ 438, 1081543609u, 2711665335u, 0u, 195u, 1286015929u, 2711665335u, 0, LDEXP_TOLERANCE, 0},
+{ 439, 1103411165u, 2706155273u, 0u, 24u, 1128576989u, 2706155273u, 0, LDEXP_TOLERANCE, 0},
+{ 440, 1103403130u, 3079968054u, 0u, 241u, 1356109946u, 3079968054u, 0, LDEXP_TOLERANCE, 0},
+{ 441, 3198414665u, 2268506342u, 0u, 95u, 3298029385u, 2268506342u, 0, LDEXP_TOLERANCE, 0},
+{ 442, 1047115221u, 1909994277u, 0u, 56u, 1105835477u, 1909994277u, 0, LDEXP_TOLERANCE, 0},
+{ 443, 3220384775u, 2863812374u, 0u, 101u, 3326290951u, 2863812374u, 0, LDEXP_TOLERANCE, 0},
+{ 444, 1100817899u, 1574724647u, 0u, 234u, 1346184683u, 1574724647u, 0, LDEXP_TOLERANCE, 0},
+{ 445, 3224207486u, 2292911279u, 0u, 169u, 3401416830u, 2292911279u, 0, LDEXP_TOLERANCE, 0},
+{ 446, 3210915147u, 1990631620u, 0u, 63u, 3276975435u, 1990631620u, 0, LDEXP_TOLERANCE, 0},
+{ 447, 1102409950u, 2676261059u, 0u, 337u, 1455780062u, 2676261059u, 0, LDEXP_TOLERANCE, 0},
+{ 448, 1097873191u, 1354342308u, 0u, 178u, 1284519719u, 1354342308u, 0, LDEXP_TOLERANCE, 0},
+{ 449, 3244247065u, 1660724156u, 0u, 204u, 3458156569u, 1660724156u, 0, LDEXP_TOLERANCE, 0},
+{ 450, 1104332602u, 1642699485u, 0u, 379u, 1501742906u, 1642699485u, 0, LDEXP_TOLERANCE, 0},
+{ 451, 3250424296u, 1717672108u, 0u, 243u, 3505228264u, 1717672108u, 0, LDEXP_TOLERANCE, 0},
+{ 452, 1104754957u, 287287829u, 0u, 96u, 1205418253u, 287287829u, 0, LDEXP_TOLERANCE, 0},
+{ 453, 1041630773u, 1858851717u, 0u, 84u, 1129711157u, 1858851717u, 0, LDEXP_TOLERANCE, 0},
+{ 454, 3214257433u, 751088586u, 0u, 320u, 3549801753u, 751088586u, 0, LDEXP_TOLERANCE, 0},
+{ 455, 3220003982u, 1397652531u, 0u, 257u, 3489488014u, 1397652531u, 0, LDEXP_TOLERANCE, 0},
+{ 456, 3227225453u, 3847749145u, 0u, 472u, 3722153325u, 3847749145u, 0, LDEXP_TOLERANCE, 0},
+{ 457, 1070645131u, 2477088719u, 0u, 326u, 1412480907u, 2477088719u, 0, LDEXP_TOLERANCE, 0},
+{ 458, 3227562493u, 857975269u, 0u, 17u, 3245388285u, 857975269u, 0, LDEXP_TOLERANCE, 0},
+{ 459, 3194188951u, 1711780367u, 0u, 268u, 3475207319u, 1711780367u, 0, LDEXP_TOLERANCE, 0},
+{ 460, 3235476602u, 451471221u, 0u, 156u, 3399054458u, 451471221u, 0, LDEXP_TOLERANCE, 0},
+{ 461, 1074264014u, 2264504930u, 0u, 409u, 1503131598u, 2264504930u, 0, LDEXP_TOLERANCE, 0},
+{ 462, 3228769528u, 1854181735u, 0u, 492u, 3744668920u, 1854181735u, 0, LDEXP_TOLERANCE, 0},
+{ 463, 1046699567u, 1591940213u, 0u, 266u, 1325620783u, 1591940213u, 0, LDEXP_TOLERANCE, 0},
+{ 464, 1061875970u, 1378057304u, 0u, 400u, 1481306370u, 1378057304u, 0, LDEXP_TOLERANCE, 0},
+{ 465, 1058821926u, 2422126348u, 0u, 148u, 1214011174u, 2422126348u, 0, LDEXP_TOLERANCE, 0},
+{ 466, 3228077848u, 3932207622u, 0u, 192u, 3429404440u, 3932207622u, 0, LDEXP_TOLERANCE, 0},
+{ 467, 3195658563u, 2548035700u, 0u, 425u, 3641303363u, 2548035700u, 0, LDEXP_TOLERANCE, 0},
+{ 468, 1090631865u, 3113298011u, 0u, 167u, 1265744057u, 3113298011u, 0, LDEXP_TOLERANCE, 0},
+{ 469, 3192989874u, 286247089u, 0u, 112u, 3310430386u, 286247089u, 0, LDEXP_TOLERANCE, 0},
+{ 470, 3253628449u, 1026197853u, 0u, 116u, 3375263265u, 1026197853u, 0, LDEXP_TOLERANCE, 0},
+{ 471, 1074666768u, 375674756u, 0u, 282u, 1370365200u, 375674756u, 0, LDEXP_TOLERANCE, 0},
+{ 472, 3188722502u, 2287547512u, 0u, 386u, 3593472838u, 2287547512u, 0, LDEXP_TOLERANCE, 0},
+{ 473, 3195629985u, 1263494177u, 0u, 354u, 3566825889u, 1263494177u, 0, LDEXP_TOLERANCE, 0},
+{ 474, 3204259255u, 1611440636u, 0u, 0u, 3204259255u, 1611440636u, 0, LDEXP_TOLERANCE, 0},
+{ 475, 3213589312u, 1865725974u, 0u, 254u, 3479927616u, 1865725974u, 0, LDEXP_TOLERANCE, 0},
+{ 476, 3207039183u, 115770551u, 0u, 289u, 3510077647u, 115770551u, 0, LDEXP_TOLERANCE, 0},
+{ 477, 1070132645u, 1245005118u, 0u, 328u, 1414065573u, 1245005118u, 0, LDEXP_TOLERANCE, 0},
+{ 478, 1078173946u, 1482721827u, 0u, 107u, 1190371578u, 1482721827u, 0, LDEXP_TOLERANCE, 0},
+{ 479, 3192359503u, 3736750583u, 0u, 344u, 3553069647u, 3736750583u, 0, LDEXP_TOLERANCE, 0},
+{ 480, 1090362269u, 2431996507u, 0u, 470u, 1583192989u, 2431996507u, 0, LDEXP_TOLERANCE, 0},
+{ 481, 1102017594u, 242934189u, 0u, 127u, 1235186746u, 242934189u, 0, LDEXP_TOLERANCE, 0},
+{ 482, 1082841536u, 4287291972u, 0u, 308u, 1405802944u, 4287291972u, 0, LDEXP_TOLERANCE, 0},
+{ 483, 1078562189u, 3455122647u, 0u, 77u, 1159302541u, 3455122647u, 0, LDEXP_TOLERANCE, 0},
+{ 484, 3209380687u, 1980318203u, 0u, 417u, 3646636879u, 1980318203u, 0, LDEXP_TOLERANCE, 0},
+{ 485, 1081309333u, 3384251967u, 0u, 134u, 1221818517u, 3384251967u, 0, LDEXP_TOLERANCE, 0},
+{ 486, 3245133381u, 2923526078u, 0u, 405u, 3669806661u, 2923526078u, 0, LDEXP_TOLERANCE, 0},
+{ 487, 1064525899u, 3742487766u, 0u, 228u, 1303601227u, 3742487766u, 0, LDEXP_TOLERANCE, 0},
+{ 488, 1091346793u, 3289095948u, 0u, 430u, 1542234473u, 3289095948u, 0, LDEXP_TOLERANCE, 0},
+{ 489, 1058117934u, 2454945617u, 0u, 113u, 1176607022u, 2454945617u, 0, LDEXP_TOLERANCE, 0},
+{ 490, 1078811133u, 1275993403u, 0u, 24u, 1103976957u, 1275993403u, 0, LDEXP_TOLERANCE, 0},
+{ 491, 3196196192u, 2695666837u, 0u, 6u, 3202487648u, 2695666837u, 0, LDEXP_TOLERANCE, 0},
+{ 492, 1047966215u, 3447944313u, 0u, 340u, 1404482055u, 3447944313u, 0, LDEXP_TOLERANCE, 0},
+{ 493, 1101711780u, 2982959266u, 0u, 303u, 1419430308u, 2982959266u, 0, LDEXP_TOLERANCE, 0},
+{ 494, 1054840864u, 171409502u, 0u, 129u, 1190107168u, 171409502u, 0, LDEXP_TOLERANCE, 0},
+{ 495, 3197943165u, 3921063782u, 0u, 362u, 3577527677u, 3921063782u, 0, LDEXP_TOLERANCE, 0},
+{ 496, 3189290617u, 1578223762u, 0u, 36u, 3227039353u, 1578223762u, 0, LDEXP_TOLERANCE, 0},
+{ 497, 3192959856u, 1469212191u, 0u, 74u, 3270554480u, 1469212191u, 0, LDEXP_TOLERANCE, 0},
+{ 498, 1054233191u, 2295692754u, 0u, 211u, 1275482727u, 2295692754u, 0, LDEXP_TOLERANCE, 0},
+{ 499, 1053077031u, 3459566012u, 0u, 275u, 1341435431u, 3459566012u, 0, LDEXP_TOLERANCE, 0},
+{ 500, 3251200938u, 4126298722u, 0u, 375u, 3644416938u, 4126298722u, 0, LDEXP_TOLERANCE, 0},
+{ 501, 3232343117u, 2520630720u, 0u, 62u, 3297354829u, 2520630720u, 0, LDEXP_TOLERANCE, 0},
+{ 502, 3213037619u, 887645440u, 0u, 43u, 3258126387u, 887645440u, 0, LDEXP_TOLERANCE, 0},
+{ 503, 1086002105u, 946455365u, 0u, 277u, 1376457657u, 946455365u, 0, LDEXP_TOLERANCE, 0},
+{ 504, 3201736709u, 1632857891u, 0u, 340u, 3558252549u, 1632857891u, 0, LDEXP_TOLERANCE, 0},
+{ 505, 1040729961u, 4162008079u, 0u, 206u, 1256736617u, 4162008079u, 0, LDEXP_TOLERANCE, 0},
+{ 506, 1059120765u, 3425518947u, 0u, 278u, 1350624893u, 3425518947u, 0, LDEXP_TOLERANCE, 0},
+{ 507, 3251307470u, 4210912679u, 0u, 407u, 3678077902u, 4210912679u, 0, LDEXP_TOLERANCE, 0},
+{ 508, 1090416633u, 2533687683u, 0u, 435u, 1546547193u, 2533687683u, 0, LDEXP_TOLERANCE, 0},
+{ 509, 3235947244u, 2569281387u, 0u, 394u, 3649086188u, 2569281387u, 0, LDEXP_TOLERANCE, 0},
+{ 510, 3245016670u, 1480024922u, 0u, 152u, 3404400222u, 1480024922u, 0, LDEXP_TOLERANCE, 0},
+{ 511, 3208595959u, 3494862794u, 0u, 490u, 3722398199u, 3494862794u, 0, LDEXP_TOLERANCE, 0},
+{ 512, 3242919505u, 3642407092u, 0u, 109u, 3357214289u, 3642407092u, 0, LDEXP_TOLERANCE, 0},
+{ 513, 3252287877u, 3550162331u, 0u, 355u, 3624532357u, 3550162331u, 0, LDEXP_TOLERANCE, 0},
+{ 514, 3246984334u, 2132131375u, 0u, 42u, 3291024526u, 2132131375u, 0, LDEXP_TOLERANCE, 0},
+{ 515, 3251248752u, 3821901768u, 0u, 369u, 3638173296u, 3821901768u, 0, LDEXP_TOLERANCE, 0},
+{ 516, 1061777502u, 3236596516u, 0u, 339u, 1417244766u, 3236596516u, 0, LDEXP_TOLERANCE, 0},
+{ 517, 3240164097u, 57443054u, 0u, 474u, 3737189121u, 57443054u, 0, LDEXP_TOLERANCE, 0},
+{ 518, 1101921141u, 2928317152u, 0u, 370u, 1489894261u, 2928317152u, 0, LDEXP_TOLERANCE, 0},
+{ 519, 3246958541u, 122162205u, 0u, 395u, 3661146061u, 122162205u, 0, LDEXP_TOLERANCE, 0},
+{ 520, 3194834642u, 2706165300u, 0u, 200u, 3404549842u, 2706165300u, 0, LDEXP_TOLERANCE, 0},
+{ 521, 1094479529u, 1626929878u, 0u, 134u, 1234988713u, 1626929878u, 0, LDEXP_TOLERANCE, 0},
+{ 522, 1083449076u, 2102520884u, 0u, 9u, 1092886260u, 2102520884u, 0, LDEXP_TOLERANCE, 0},
+{ 523, 1076012412u, 2211699255u, 0u, 461u, 1559405948u, 2211699255u, 0, LDEXP_TOLERANCE, 0},
+{ 524, 1041731776u, 2028363648u, 0u, 355u, 1413976256u, 2028363648u, 0, LDEXP_TOLERANCE, 0},
+{ 525, 3187775160u, 2996976481u, 0u, 232u, 3431044792u, 2996976481u, 0, LDEXP_TOLERANCE, 0},
+{ 526, 3248213693u, 3041999329u, 0u, 446u, 3715878589u, 3041999329u, 0, LDEXP_TOLERANCE, 0},
+{ 527, 3196191712u, 1648584571u, 0u, 487u, 3706848224u, 1648584571u, 0, LDEXP_TOLERANCE, 0},
+{ 528, 1093069876u, 540311934u, 0u, 362u, 1472654388u, 540311934u, 0, LDEXP_TOLERANCE, 0},
+{ 529, 3205345633u, 3472075644u, 0u, 259u, 3476926817u, 3472075644u, 0, LDEXP_TOLERANCE, 0},
+{ 530, 1079561503u, 3840720032u, 0u, 17u, 1097387295u, 3840720032u, 0, LDEXP_TOLERANCE, 0},
+{ 531, 3240017460u, 1099567884u, 0u, 484u, 3747528244u, 1099567884u, 0, LDEXP_TOLERANCE, 0},
+{ 532, 3238593552u, 2560836004u, 0u, 269u, 3520660496u, 2560836004u, 0, LDEXP_TOLERANCE, 0},
+{ 533, 1072457286u, 524706354u, 0u, 254u, 1338795590u, 524706354u, 0, LDEXP_TOLERANCE, 0},
+{ 534, 3234908869u, 3264644151u, 0u, 135u, 3376466629u, 3264644151u, 0, LDEXP_TOLERANCE, 0},
+{ 535, 1058314227u, 2407947243u, 0u, 168u, 1234474995u, 2407947243u, 0, LDEXP_TOLERANCE, 0},
+{ 536, 3199467414u, 230193094u, 0u, 462u, 3683909526u, 230193094u, 0, LDEXP_TOLERANCE, 0},
+{ 537, 3198629672u, 2624677381u, 0u, 57u, 3258398504u, 2624677381u, 0, LDEXP_TOLERANCE, 0},
+{ 538, 1085107111u, 1970804718u, 0u, 160u, 1252879271u, 1970804718u, 0, LDEXP_TOLERANCE, 0},
+{ 539, 3247005564u, 1254715281u, 0u, 233u, 3491323772u, 1254715281u, 0, LDEXP_TOLERANCE, 0},
+{ 540, 3233088901u, 1323165917u, 0u, 346u, 3595896197u, 1323165917u, 0, LDEXP_TOLERANCE, 0},
+{ 541, 1085173524u, 2194185737u, 0u, 294u, 1393454868u, 2194185737u, 0, LDEXP_TOLERANCE, 0},
+{ 542, 3217851015u, 1006976371u, 0u, 248u, 3477897863u, 1006976371u, 0, LDEXP_TOLERANCE, 0},
+{ 543, 1097592222u, 627593287u, 0u, 427u, 1545334174u, 627593287u, 0, LDEXP_TOLERANCE, 0},
+{ 544, 1086229861u, 2658788310u, 0u, 363u, 1466862949u, 2658788310u, 0, LDEXP_TOLERANCE, 0},
+{ 545, 3207822943u, 4059505387u, 0u, 450u, 3679682143u, 4059505387u, 0, LDEXP_TOLERANCE, 0},
+{ 546, 3252737468u, 3812071034u, 0u, 332u, 3600864700u, 3812071034u, 0, LDEXP_TOLERANCE, 0},
+{ 547, 1059648367u, 999149762u, 0u, 233u, 1303966575u, 999149762u, 0, LDEXP_TOLERANCE, 0},
+{ 548, 3252484132u, 781792055u, 0u, 491u, 3767334948u, 781792055u, 0, LDEXP_TOLERANCE, 0},
+{ 549, 1054559826u, 3046272894u, 0u, 261u, 1328238162u, 3046272894u, 0, LDEXP_TOLERANCE, 0},
+{ 550, 3205481779u, 1532426189u, 0u, 295u, 3514811699u, 1532426189u, 0, LDEXP_TOLERANCE, 0},
+{ 551, 1075179177u, 214596211u, 0u, 488u, 1586884265u, 214596211u, 0, LDEXP_TOLERANCE, 0},
+{ 552, 1098103739u, 3832087890u, 0u, 204u, 1312013243u, 3832087890u, 0, LDEXP_TOLERANCE, 0},
+{ 553, 1077515271u, 593538252u, 0u, 86u, 1167692807u, 593538252u, 0, LDEXP_TOLERANCE, 0},
+{ 554, 1083592720u, 3097953262u, 0u, 88u, 1175867408u, 3097953262u, 0, LDEXP_TOLERANCE, 0},
+{ 555, 1054141917u, 2033383695u, 0u, 38u, 1093987805u, 2033383695u, 0, LDEXP_TOLERANCE, 0},
+{ 556, 1048495909u, 3670016377u, 0u, 497u, 1569638181u, 3670016377u, 0, LDEXP_TOLERANCE, 0},
+{ 557, 1050809029u, 3775007802u, 0u, 425u, 1496453829u, 3775007802u, 0, LDEXP_TOLERANCE, 0},
+{ 558, 3238703280u, 3436328857u, 0u, 466u, 3727339696u, 3436328857u, 0, LDEXP_TOLERANCE, 0},
+{ 559, 3197179414u, 3119528953u, 0u, 313u, 3525383702u, 3119528953u, 0, LDEXP_TOLERANCE, 0},
+{ 560, 1098412609u, 2259509124u, 0u, 375u, 1491628609u, 2259509124u, 0, LDEXP_TOLERANCE, 0},
+{ 561, 3224480068u, 553154637u, 0u, 286u, 3524372804u, 553154637u, 0, LDEXP_TOLERANCE, 0},
+{ 562, 3215254594u, 3738077421u, 0u, 48u, 3265586242u, 3738077421u, 0, LDEXP_TOLERANCE, 0},
+{ 563, 1052031347u, 293137764u, 0u, 193u, 1254406515u, 293137764u, 0, LDEXP_TOLERANCE, 0},
+{ 564, 1048453019u, 3302718156u, 0u, 494u, 1566449563u, 3302718156u, 0, LDEXP_TOLERANCE, 0},
+{ 565, 3223439338u, 3448048638u, 0u, 52u, 3277965290u, 3448048638u, 0, LDEXP_TOLERANCE, 0},
+{ 566, 3223944194u, 1862856951u, 0u, 168u, 3400104962u, 1862856951u, 0, LDEXP_TOLERANCE, 0},
+{ 567, 3244649498u, 3318830570u, 0u, 6u, 3250940954u, 3318830570u, 0, LDEXP_TOLERANCE, 0},
+{ 568, 1095956900u, 168744837u, 0u, 184u, 1288894884u, 168744837u, 0, LDEXP_TOLERANCE, 0},
+{ 569, 1096175678u, 2035208049u, 0u, 248u, 1356222526u, 2035208049u, 0, LDEXP_TOLERANCE, 0},
+{ 570, 1071443591u, 2413085118u, 0u, 415u, 1506602631u, 2413085118u, 0, LDEXP_TOLERANCE, 0},
+{ 571, 3231142151u, 2125266031u, 0u, 154u, 3392622855u, 2125266031u, 0, LDEXP_TOLERANCE, 0},
+{ 572, 3239533970u, 2250119224u, 0u, 342u, 3598146962u, 2250119224u, 0, LDEXP_TOLERANCE, 0},
+{ 573, 1067186195u, 3698426632u, 0u, 130u, 1203501075u, 3698426632u, 0, LDEXP_TOLERANCE, 0},
+{ 574, 3196143186u, 2420102372u, 0u, 268u, 3477161554u, 2420102372u, 0, LDEXP_TOLERANCE, 0},
+{ 575, 3237295327u, 950097945u, 0u, 177u, 3422893279u, 950097945u, 0, LDEXP_TOLERANCE, 0},
+{ 576, 1041232546u, 3621700966u, 0u, 102u, 1148187298u, 3621700966u, 0, LDEXP_TOLERANCE, 0},
+{ 577, 1050106742u, 4027115185u, 0u, 170u, 1228364662u, 4027115185u, 0, LDEXP_TOLERANCE, 0},
+{ 578, 1058573943u, 2226077666u, 0u, 230u, 1299746423u, 2226077666u, 0, LDEXP_TOLERANCE, 0},
+{ 579, 1060691586u, 1178315623u, 0u, 114u, 1180229250u, 1178315623u, 0, LDEXP_TOLERANCE, 0},
+{ 580, 1103796205u, 2401303942u, 0u, 32u, 1137350637u, 2401303942u, 0, LDEXP_TOLERANCE, 0},
+{ 581, 1096468311u, 726651516u, 0u, 499u, 1619707735u, 726651516u, 0, LDEXP_TOLERANCE, 0},
+{ 582, 3222220162u, 3249224838u, 0u, 461u, 3705613698u, 3249224838u, 0, LDEXP_TOLERANCE, 0},
+{ 583, 3254704022u, 384370422u, 0u, 310u, 3579762582u, 384370422u, 0, LDEXP_TOLERANCE, 0},
+{ 584, 1097386147u, 3782310033u, 0u, 243u, 1352190115u, 3782310033u, 0, LDEXP_TOLERANCE, 0},
+{ 585, 3252042528u, 146366045u, 0u, 356u, 3625335584u, 146366045u, 0, LDEXP_TOLERANCE, 0},
+{ 586, 3244118788u, 2529029548u, 0u, 205u, 3459076868u, 2529029548u, 0, LDEXP_TOLERANCE, 0},
+{ 587, 3247146310u, 3286328657u, 0u, 195u, 3451618630u, 3286328657u, 0, LDEXP_TOLERANCE, 0},
+{ 588, 1082254153u, 633487468u, 0u, 173u, 1263657801u, 633487468u, 0, LDEXP_TOLERANCE, 0},
+{ 589, 1106725606u, 4081471542u, 0u, 54u, 1163348710u, 4081471542u, 0, LDEXP_TOLERANCE, 0},
+{ 590, 3235104785u, 2659274428u, 0u, 13u, 3248736273u, 2659274428u, 0, LDEXP_TOLERANCE, 0},
+{ 591, 3192361033u, 3292996609u, 0u, 147u, 3346501705u, 3292996609u, 0, LDEXP_TOLERANCE, 0},
+{ 592, 3243606330u, 1251690243u, 0u, 286u, 3543499066u, 1251690243u, 0, LDEXP_TOLERANCE, 0},
+{ 593, 1078522672u, 534876830u, 0u, 312u, 1405678384u, 534876830u, 0, LDEXP_TOLERANCE, 0},
+{ 594, 3236105559u, 2730725979u, 0u, 133u, 3375566167u, 2730725979u, 0, LDEXP_TOLERANCE, 0},
+{ 595, 3207120390u, 3867917386u, 0u, 120u, 3332949510u, 3867917386u, 0, LDEXP_TOLERANCE, 0},
+{ 596, 3209887750u, 282125870u, 0u, 290u, 3513974790u, 282125870u, 0, LDEXP_TOLERANCE, 0},
+{ 597, 3221192531u, 1378332814u, 0u, 46u, 3269427027u, 1378332814u, 0, LDEXP_TOLERANCE, 0},
+{ 598, 1071438511u, 1456720330u, 0u, 197u, 1278007983u, 1456720330u, 0, LDEXP_TOLERANCE, 0},
+{ 599, 3204862644u, 625779797u, 0u, 242u, 3458618036u, 625779797u, 0, LDEXP_TOLERANCE, 0},
+{ 600, 3188948769u, 1949093709u, 0u, 222u, 3421732641u, 1949093709u, 0, LDEXP_TOLERANCE, 0},
+{ 601, 1040706087u, 1832636825u, 0u, 370u, 1428679207u, 1832636825u, 0, LDEXP_TOLERANCE, 0},
+{ 602, 3241678717u, 4116863145u, 0u, 268u, 3522697085u, 4116863145u, 0, LDEXP_TOLERANCE, 0},
+{ 603, 3254549137u, 1280908320u, 0u, 410u, 3684465297u, 1280908320u, 0, LDEXP_TOLERANCE, 0},
+{ 604, 1044237059u, 849581558u, 0u, 61u, 1108200195u, 849581558u, 0, LDEXP_TOLERANCE, 0},
+{ 605, 3227710894u, 1803008264u, 0u, 159u, 3394434478u, 1803008264u, 0, LDEXP_TOLERANCE, 0},
+{ 606, 3222601478u, 3647912576u, 0u, 158u, 3388276486u, 3647912576u, 0, LDEXP_TOLERANCE, 0},
+{ 607, 3201624749u, 1239907237u, 0u, 69u, 3273976493u, 1239907237u, 0, LDEXP_TOLERANCE, 0},
+{ 608, 1074236329u, 1658600938u, 0u, 471u, 1568115625u, 1658600938u, 0, LDEXP_TOLERANCE, 0},
+{ 609, 1075491548u, 3953853053u, 0u, 216u, 1301983964u, 3953853053u, 0, LDEXP_TOLERANCE, 0},
+{ 610, 3213072244u, 1760177025u, 0u, 266u, 3491993460u, 1760177025u, 0, LDEXP_TOLERANCE, 0},
+{ 611, 1080258478u, 2294697132u, 0u, 293u, 1387491246u, 2294697132u, 0, LDEXP_TOLERANCE, 0},
+{ 612, 3231020290u, 2744719351u, 0u, 429u, 3680859394u, 2744719351u, 0, LDEXP_TOLERANCE, 0},
+{ 613, 3189668753u, 1174874204u, 0u, 125u, 3320740753u, 1174874204u, 0, LDEXP_TOLERANCE, 0},
+{ 614, 1057110584u, 848081004u, 0u, 119u, 1181891128u, 848081004u, 0, LDEXP_TOLERANCE, 0},
+{ 615, 1058101211u, 2085894114u, 0u, 296u, 1368479707u, 2085894114u, 0, LDEXP_TOLERANCE, 0},
+{ 616, 3202306280u, 348102924u, 0u, 288u, 3504296168u, 348102924u, 0, LDEXP_TOLERANCE, 0},
+{ 617, 1093500372u, 2470748422u, 0u, 28u, 1122860500u, 2470748422u, 0, LDEXP_TOLERANCE, 0},
+{ 618, 1061167400u, 138849460u, 0u, 322u, 1398808872u, 138849460u, 0, LDEXP_TOLERANCE, 0},
+{ 619, 1104293747u, 1900437425u, 0u, 483u, 1610755955u, 1900437425u, 0, LDEXP_TOLERANCE, 0},
+{ 620, 1100508815u, 3684301975u, 0u, 67u, 1170763407u, 3684301975u, 0, LDEXP_TOLERANCE, 0},
+{ 621, 1044707490u, 2999949676u, 0u, 75u, 1123350690u, 2999949676u, 0, LDEXP_TOLERANCE, 0},
+{ 622, 3254712629u, 4001809575u, 0u, 38u, 3294558517u, 4001809575u, 0, LDEXP_TOLERANCE, 0},
+{ 623, 3254231152u, 2299565551u, 0u, 431u, 3706167408u, 2299565551u, 0, LDEXP_TOLERANCE, 0},
+{ 624, 3194165277u, 3145100012u, 0u, 387u, 3599964189u, 3145100012u, 0, LDEXP_TOLERANCE, 0},
+{ 625, 3236479153u, 2659893783u, 0u, 292u, 3542663345u, 2659893783u, 0, LDEXP_TOLERANCE, 0},
+{ 626, 1066703665u, 4096436451u, 0u, 287u, 1367644977u, 4096436451u, 0, LDEXP_TOLERANCE, 0},
+{ 627, 3191085836u, 2080198917u, 0u, 342u, 3549698828u, 2080198917u, 0, LDEXP_TOLERANCE, 0},
+{ 628, 1103176642u, 292693126u, 0u, 269u, 1385243586u, 292693126u, 0, LDEXP_TOLERANCE, 0},
+{ 629, 1076257739u, 439474159u, 0u, 53u, 1131832267u, 439474159u, 0, LDEXP_TOLERANCE, 0},
+{ 630, 3203168524u, 4050424307u, 0u, 48u, 3253500172u, 4050424307u, 0, LDEXP_TOLERANCE, 0},
+{ 631, 3211263954u, 3275604304u, 0u, 427u, 3659005906u, 3275604304u, 0, LDEXP_TOLERANCE, 0},
+{ 632, 1098022244u, 1605519917u, 0u, 152u, 1257405796u, 1605519917u, 0, LDEXP_TOLERANCE, 0},
+{ 633, 3225218243u, 2732577078u, 0u, 169u, 3402427587u, 2732577078u, 0, LDEXP_TOLERANCE, 0},
+{ 634, 3224758945u, 639164136u, 0u, 250u, 3486902945u, 639164136u, 0, LDEXP_TOLERANCE, 0},
+{ 635, 3206688283u, 365608035u, 0u, 220u, 3437375003u, 365608035u, 0, LDEXP_TOLERANCE, 0},
+{ 636, 1096221986u, 188907563u, 0u, 258u, 1366754594u, 188907563u, 0, LDEXP_TOLERANCE, 0},
+{ 637, 1077478629u, 2925706902u, 0u, 77u, 1158218981u, 2925706902u, 0, LDEXP_TOLERANCE, 0},
+{ 638, 3245669892u, 1441001355u, 0u, 401u, 3666148868u, 1441001355u, 0, LDEXP_TOLERANCE, 0},
+{ 639, 1086418963u, 1263339528u, 0u, 77u, 1167159315u, 1263339528u, 0, LDEXP_TOLERANCE, 0},
+{ 640, 3243690997u, 4075177615u, 0u, 254u, 3510029301u, 4075177615u, 0, LDEXP_TOLERANCE, 0},
+{ 641, 1043887798u, 2574410165u, 0u, 228u, 1282963126u, 2574410165u, 0, LDEXP_TOLERANCE, 0},
+{ 642, 3228012899u, 1451038472u, 0u, 233u, 3472331107u, 1451038472u, 0, LDEXP_TOLERANCE, 0},
+{ 643, 1057927965u, 3267242972u, 0u, 196u, 1263448861u, 3267242972u, 0, LDEXP_TOLERANCE, 0},
+{ 644, 1088388240u, 147191702u, 0u, 277u, 1378843792u, 147191702u, 0, LDEXP_TOLERANCE, 0},
+{ 645, 3237742613u, 463847325u, 0u, 141u, 3385591829u, 463847325u, 0, LDEXP_TOLERANCE, 0},
+{ 646, 3231093084u, 309566036u, 0u, 15u, 3246821724u, 309566036u, 0, LDEXP_TOLERANCE, 0},
+{ 647, 3236008002u, 369048143u, 0u, 142u, 3384905794u, 369048143u, 0, LDEXP_TOLERANCE, 0},
+{ 648, 1106124402u, 4110964559u, 0u, 367u, 1490951794u, 4110964559u, 0, LDEXP_TOLERANCE, 0},
+{ 649, 1081914210u, 3679866727u, 0u, 33u, 1116517218u, 3679866727u, 0, LDEXP_TOLERANCE, 0},
+{ 650, 3208744451u, 810282289u, 0u, 240u, 3460402691u, 810282289u, 0, LDEXP_TOLERANCE, 0},
+{ 651, 3214165397u, 3872563165u, 0u, 0u, 3214165397u, 3872563165u, 0, LDEXP_TOLERANCE, 0},
+{ 652, 1098494887u, 2790313039u, 0u, 484u, 1606005671u, 2790313039u, 0, LDEXP_TOLERANCE, 0},
+{ 653, 3221154109u, 1894124837u, 0u, 154u, 3382634813u, 1894124837u, 0, LDEXP_TOLERANCE, 0},
+{ 654, 1046643778u, 1307532154u, 0u, 483u, 1553105986u, 1307532154u, 0, LDEXP_TOLERANCE, 0},
+{ 655, 1074424846u, 2546231111u, 0u, 76u, 1154116622u, 2546231111u, 0, LDEXP_TOLERANCE, 0},
+{ 656, 1070559510u, 1177789792u, 0u, 338u, 1424978198u, 1177789792u, 0, LDEXP_TOLERANCE, 0},
+{ 657, 3225897784u, 1393159012u, 0u, 468u, 3716631352u, 1393159012u, 0, LDEXP_TOLERANCE, 0},
+{ 658, 3241371250u, 2270747330u, 0u, 226u, 3478349426u, 2270747330u, 0, LDEXP_TOLERANCE, 0},
+{ 659, 3206099061u, 387526371u, 0u, 489u, 3718852725u, 387526371u, 0, LDEXP_TOLERANCE, 0},
+{ 660, 3248889342u, 1541778002u, 0u, 112u, 3366329854u, 1541778002u, 0, LDEXP_TOLERANCE, 0},
+{ 661, 1057260850u, 487828421u, 0u, 161u, 1226081586u, 487828421u, 0, LDEXP_TOLERANCE, 0},
+{ 662, 3227842110u, 3028362906u, 0u, 82u, 3313825342u, 3028362906u, 0, LDEXP_TOLERANCE, 0},
+{ 663, 3232158280u, 2832526786u, 0u, 342u, 3590771272u, 2832526786u, 0, LDEXP_TOLERANCE, 0},
+{ 664, 1086492044u, 1029336617u, 0u, 11u, 1098026380u, 1029336617u, 0, LDEXP_TOLERANCE, 0},
+{ 665, 3201067521u, 3844885860u, 0u, 233u, 3445385729u, 3844885860u, 0, LDEXP_TOLERANCE, 0},
+{ 666, 1081650590u, 3848664336u, 0u, 190u, 1280880030u, 3848664336u, 0, LDEXP_TOLERANCE, 0},
+{ 667, 3216727300u, 1859175955u, 0u, 342u, 3575340292u, 1859175955u, 0, LDEXP_TOLERANCE, 0},
+{ 668, 3247701688u, 4177384140u, 0u, 294u, 3555983032u, 4177384140u, 0, LDEXP_TOLERANCE, 0},
+{ 669, 3225365211u, 1905063436u, 0u, 369u, 3612289755u, 1905063436u, 0, LDEXP_TOLERANCE, 0},
+{ 670, 1060341776u, 3330581237u, 0u, 285u, 1359185936u, 3330581237u, 0, LDEXP_TOLERANCE, 0},
+{ 671, 1086856468u, 3110345659u, 0u, 307u, 1408769300u, 3110345659u, 0, LDEXP_TOLERANCE, 0},
+{ 672, 1040609072u, 2626928143u, 0u, 167u, 1215721264u, 2626928143u, 0, LDEXP_TOLERANCE, 0},
+{ 673, 3193571775u, 2449013005u, 0u, 206u, 3409578431u, 2449013005u, 0, LDEXP_TOLERANCE, 0},
+{ 674, 1044814475u, 3649425780u, 0u, 329u, 1389795979u, 3649425780u, 0, LDEXP_TOLERANCE, 0},
+{ 675, 3247609790u, 1936138976u, 0u, 449u, 3718420414u, 1936138976u, 0, LDEXP_TOLERANCE, 0},
+{ 676, 3222118023u, 3554670043u, 0u, 474u, 3719143047u, 3554670043u, 0, LDEXP_TOLERANCE, 0},
+{ 677, 3226161360u, 2445669899u, 0u, 122u, 3354087632u, 2445669899u, 0, LDEXP_TOLERANCE, 0},
+{ 678, 3231588583u, 3613487983u, 0u, 168u, 3407749351u, 3613487983u, 0, LDEXP_TOLERANCE, 0},
+{ 679, 1070518869u, 2404090288u, 0u, 343u, 1430180437u, 2404090288u, 0, LDEXP_TOLERANCE, 0},
+{ 680, 1056601872u, 3936780069u, 0u, 401u, 1477080848u, 3936780069u, 0, LDEXP_TOLERANCE, 0},
+{ 681, 3251382149u, 3695226490u, 0u, 317u, 3583780741u, 3695226490u, 0, LDEXP_TOLERANCE, 0},
+{ 682, 1084717105u, 2502140489u, 0u, 428u, 1533507633u, 2502140489u, 0, LDEXP_TOLERANCE, 0},
+{ 683, 3231607738u, 3076182032u, 0u, 212u, 3453905850u, 3076182032u, 0, LDEXP_TOLERANCE, 0},
+{ 684, 3226181630u, 52044482u, 0u, 56u, 3284901886u, 52044482u, 0, LDEXP_TOLERANCE, 0},
+{ 685, 3209294194u, 3250576797u, 0u, 447u, 3678007666u, 3250576797u, 0, LDEXP_TOLERANCE, 0},
+{ 686, 1067216664u, 280322485u, 0u, 68u, 1138519832u, 280322485u, 0, LDEXP_TOLERANCE, 0},
+{ 687, 1056850730u, 3460638643u, 0u, 3u, 1059996458u, 3460638643u, 0, LDEXP_TOLERANCE, 0},
+{ 688, 3198374301u, 836754546u, 0u, 227u, 3436401053u, 836754546u, 0, LDEXP_TOLERANCE, 0},
+{ 689, 1053945586u, 1909842364u, 0u, 137u, 1197600498u, 1909842364u, 0, LDEXP_TOLERANCE, 0},
+{ 690, 1102747575u, 3614304657u, 0u, 175u, 1286248375u, 3614304657u, 0, LDEXP_TOLERANCE, 0},
+{ 691, 3232289682u, 104161319u, 0u, 258u, 3502822290u, 104161319u, 0, LDEXP_TOLERANCE, 0},
+{ 692, 3239925976u, 4284835369u, 0u, 69u, 3312277720u, 4284835369u, 0, LDEXP_TOLERANCE, 0},
+{ 693, 1101382703u, 1829525759u, 0u, 474u, 1598407727u, 1829525759u, 0, LDEXP_TOLERANCE, 0},
+{ 694, 1080943896u, 3662877092u, 0u, 172u, 1261298968u, 3662877092u, 0, LDEXP_TOLERANCE, 0},
+{ 695, 3208812483u, 1522451444u, 0u, 237u, 3457324995u, 1522451444u, 0, LDEXP_TOLERANCE, 0},
+{ 696, 3207922109u, 3788656852u, 0u, 281u, 3502571965u, 3788656852u, 0, LDEXP_TOLERANCE, 0},
+{ 697, 1051638218u, 161607862u, 0u, 267u, 1331608010u, 161607862u, 0, LDEXP_TOLERANCE, 0},
+{ 698, 1090916217u, 2404130512u, 0u, 233u, 1335234425u, 2404130512u, 0, LDEXP_TOLERANCE, 0},
+{ 699, 1059685751u, 2026411429u, 0u, 386u, 1464436087u, 2026411429u, 0, LDEXP_TOLERANCE, 0},
+{ 700, 3253240072u, 1320615853u, 0u, 98u, 3356000520u, 1320615853u, 0, LDEXP_TOLERANCE, 0},
+{ 701, 3252472409u, 3427912319u, 0u, 307u, 3574385241u, 3427912319u, 0, LDEXP_TOLERANCE, 0},
+{ 702, 3239422485u, 3207831031u, 0u, 279u, 3531975189u, 3207831031u, 0, LDEXP_TOLERANCE, 0},
+{ 703, 3225261763u, 193885269u, 0u, 263u, 3501037251u, 193885269u, 0, LDEXP_TOLERANCE, 0},
+{ 704, 3198856153u, 1330711805u, 0u, 34u, 3234507737u, 1330711805u, 0, LDEXP_TOLERANCE, 0},
+{ 705, 1061209059u, 2242782034u, 0u, 484u, 1568719843u, 2242782034u, 0, LDEXP_TOLERANCE, 0},
+{ 706, 1105997747u, 1164748983u, 0u, 205u, 1320955827u, 1164748983u, 0, LDEXP_TOLERANCE, 0},
+{ 707, 1041518408u, 427227336u, 0u, 468u, 1532251976u, 427227336u, 0, LDEXP_TOLERANCE, 0},
+{ 708, 1047983837u, 571692916u, 0u, 112u, 1165424349u, 571692916u, 0, LDEXP_TOLERANCE, 0},
+{ 709, 3243349276u, 1910625797u, 0u, 305u, 3563164956u, 1910625797u, 0, LDEXP_TOLERANCE, 0},
+{ 710, 1056431544u, 3633684065u, 0u, 85u, 1145560504u, 3633684065u, 0, LDEXP_TOLERANCE, 0},
+{ 711, 3216335063u, 2139337836u, 0u, 289u, 3519373527u, 2139337836u, 0, LDEXP_TOLERANCE, 0},
+{ 712, 3221194724u, 3647632375u, 0u, 136u, 3363801060u, 3647632375u, 0, LDEXP_TOLERANCE, 0},
+{ 713, 3194264761u, 3085230370u, 0u, 415u, 3629423801u, 3085230370u, 0, LDEXP_TOLERANCE, 0},
+{ 714, 1047551748u, 2424866060u, 0u, 183u, 1239441156u, 2424866060u, 0, LDEXP_TOLERANCE, 0},
+{ 715, 1056945903u, 2026968333u, 0u, 249u, 1318041327u, 2026968333u, 0, LDEXP_TOLERANCE, 0},
+{ 716, 3254065942u, 2288082596u, 0u, 121u, 3380943638u, 2288082596u, 0, LDEXP_TOLERANCE, 0},
+{ 717, 3204958105u, 146999679u, 0u, 260u, 3477587865u, 146999679u, 0, LDEXP_TOLERANCE, 0},
+{ 718, 3249441223u, 3097120487u, 0u, 334u, 3599665607u, 3097120487u, 0, LDEXP_TOLERANCE, 0},
+{ 719, 1092821012u, 2819263558u, 0u, 374u, 1484988436u, 2819263558u, 0, LDEXP_TOLERANCE, 0},
+{ 720, 3248709970u, 1002982008u, 0u, 133u, 3388170578u, 1002982008u, 0, LDEXP_TOLERANCE, 0},
+{ 721, 3196410507u, 3683897920u, 0u, 150u, 3353696907u, 3683897920u, 0, LDEXP_TOLERANCE, 0},
+{ 722, 3198217745u, 2950261157u, 0u, 303u, 3515936273u, 2950261157u, 0, LDEXP_TOLERANCE, 0},
+{ 723, 3251583196u, 1575329940u, 0u, 333u, 3600759004u, 1575329940u, 0, LDEXP_TOLERANCE, 0},
+{ 724, 1041303822u, 3078435619u, 0u, 101u, 1147209998u, 3078435619u, 0, LDEXP_TOLERANCE, 0},
+{ 725, 1074310746u, 2577246912u, 0u, 345u, 1436069466u, 2577246912u, 0, LDEXP_TOLERANCE, 0},
+{ 726, 1043606901u, 2874218693u, 0u, 420u, 1484008821u, 2874218693u, 0, LDEXP_TOLERANCE, 0},
+{ 727, 3224836328u, 1577726432u, 0u, 210u, 3445037288u, 1577726432u, 0, LDEXP_TOLERANCE, 0},
+{ 728, 1080717542u, 3407236142u, 0u, 495u, 1599762662u, 3407236142u, 0, LDEXP_TOLERANCE, 0},
+{ 729, 3239021323u, 1897226271u, 0u, 337u, 3592391435u, 1897226271u, 0, LDEXP_TOLERANCE, 0},
+{ 730, 1091225343u, 3521028551u, 0u, 232u, 1334494975u, 3521028551u, 0, LDEXP_TOLERANCE, 0},
+{ 731, 1047112378u, 3921932243u, 0u, 476u, 1546234554u, 3921932243u, 0, LDEXP_TOLERANCE, 0},
+{ 732, 1061380266u, 1196702002u, 0u, 289u, 1364418730u, 1196702002u, 0, LDEXP_TOLERANCE, 0},
+{ 733, 3228251369u, 3560249334u, 0u, 180u, 3416995049u, 3560249334u, 0, LDEXP_TOLERANCE, 0},
+{ 734, 3202942296u, 256601931u, 0u, 412u, 3634955608u, 256601931u, 0, LDEXP_TOLERANCE, 0},
+{ 735, 3188373428u, 4178341029u, 0u, 332u, 3536500660u, 4178341029u, 0, LDEXP_TOLERANCE, 0},
+{ 736, 1074244557u, 1388509212u, 0u, 68u, 1145547725u, 1388509212u, 0, LDEXP_TOLERANCE, 0},
+{ 737, 3227970267u, 278055877u, 0u, 158u, 3393645275u, 278055877u, 0, LDEXP_TOLERANCE, 0},
+{ 738, 3253498427u, 1975402856u, 0u, 91u, 3348918843u, 1975402856u, 0, LDEXP_TOLERANCE, 0},
+{ 739, 3212768361u, 36116288u, 0u, 91u, 3308188777u, 36116288u, 0, LDEXP_TOLERANCE, 0},
+{ 740, 1067504948u, 2801410835u, 0u, 86u, 1157682484u, 2801410835u, 0, LDEXP_TOLERANCE, 0},
+{ 741, 1056745800u, 1517147036u, 0u, 390u, 1465690440u, 1517147036u, 0, LDEXP_TOLERANCE, 0},
+{ 742, 1055869313u, 3403644835u, 0u, 58u, 1116686721u, 3403644835u, 0, LDEXP_TOLERANCE, 0},
+{ 743, 3239015924u, 1497452126u, 0u, 300u, 3553588724u, 1497452126u, 0, LDEXP_TOLERANCE, 0},
+{ 744, 3198727606u, 527260849u, 0u, 15u, 3214456246u, 527260849u, 0, LDEXP_TOLERANCE, 0},
+{ 745, 1055132057u, 730320459u, 0u, 341u, 1412696473u, 730320459u, 0, LDEXP_TOLERANCE, 0},
+{ 746, 1071575537u, 3103627383u, 0u, 466u, 1560211953u, 3103627383u, 0, LDEXP_TOLERANCE, 0},
+{ 747, 1075642950u, 676014010u, 0u, 15u, 1091371590u, 676014010u, 0, LDEXP_TOLERANCE, 0},
+{ 748, 1093103612u, 2664812822u, 0u, 439u, 1553428476u, 2664812822u, 0, LDEXP_TOLERANCE, 0},
+{ 749, 1076849399u, 511262496u, 0u, 262u, 1351576311u, 511262496u, 0, LDEXP_TOLERANCE, 0},
+{ 750, 1040381038u, 1621968404u, 0u, 453u, 1515385966u, 1621968404u, 0, LDEXP_TOLERANCE, 0},
+{ 751, 1051309752u, 716773972u, 0u, 190u, 1250539192u, 716773972u, 0, LDEXP_TOLERANCE, 0},
+{ 752, 1089837159u, 3131066689u, 0u, 346u, 1452644455u, 3131066689u, 0, LDEXP_TOLERANCE, 0},
+{ 753, 3234817844u, 2885211133u, 0u, 318u, 3568265012u, 2885211133u, 0, LDEXP_TOLERANCE, 0},
+{ 754, 3244193329u, 935135102u, 0u, 44u, 3290330673u, 935135102u, 0, LDEXP_TOLERANCE, 0},
+{ 755, 3203778258u, 3428784172u, 0u, 71u, 3278227154u, 3428784172u, 0, LDEXP_TOLERANCE, 0},
+{ 756, 3238604006u, 2734177193u, 0u, 368u, 3624479974u, 2734177193u, 0, LDEXP_TOLERANCE, 0},
+{ 757, 1091433848u, 3888398377u, 0u, 102u, 1198388600u, 3888398377u, 0, LDEXP_TOLERANCE, 0},
+{ 758, 1046749113u, 3712806014u, 0u, 443u, 1511268281u, 3712806014u, 0, LDEXP_TOLERANCE, 0},
+{ 759, 1076298852u, 991871299u, 0u, 82u, 1162282084u, 991871299u, 0, LDEXP_TOLERANCE, 0},
+{ 760, 3206800539u, 4000035882u, 0u, 319u, 3541296283u, 4000035882u, 0, LDEXP_TOLERANCE, 0},
+{ 761, 1067010471u, 2056309037u, 0u, 347u, 1430866343u, 2056309037u, 0, LDEXP_TOLERANCE, 0},
+{ 762, 1058199525u, 1299425839u, 0u, 432u, 1511184357u, 1299425839u, 0, LDEXP_TOLERANCE, 0},
+{ 763, 1050094941u, 3817959288u, 0u, 37u, 1088892253u, 3817959288u, 0, LDEXP_TOLERANCE, 0},
+{ 764, 1095599309u, 1960661988u, 0u, 73u, 1172145357u, 1960661988u, 0, LDEXP_TOLERANCE, 0},
+{ 765, 3187979854u, 2362441752u, 0u, 331u, 3535058510u, 2362441752u, 0, LDEXP_TOLERANCE, 0},
+{ 766, 1088255327u, 270039934u, 0u, 194u, 1291679071u, 270039934u, 0, LDEXP_TOLERANCE, 0},
+{ 767, 3249308688u, 397843258u, 0u, 214u, 3473703952u, 397843258u, 0, LDEXP_TOLERANCE, 0},
+{ 768, 3212426640u, 3278767347u, 0u, 244u, 3468279184u, 3278767347u, 0, LDEXP_TOLERANCE, 0},
+{ 769, 1073567981u, 3086540190u, 0u, 445u, 1540184301u, 3086540190u, 0, LDEXP_TOLERANCE, 0},
+{ 770, 1064931281u, 1165998478u, 0u, 354u, 1436127185u, 1165998478u, 0, LDEXP_TOLERANCE, 0},
+{ 771, 3204860436u, 1236881883u, 0u, 197u, 3411429908u, 1236881883u, 0, LDEXP_TOLERANCE, 0},
+{ 772, 3211538326u, 71491083u, 0u, 429u, 3661377430u, 71491083u, 0, LDEXP_TOLERANCE, 0},
+{ 773, 3242681902u, 664136103u, 0u, 40u, 3284624942u, 664136103u, 0, LDEXP_TOLERANCE, 0},
+{ 774, 3189996280u, 1751559854u, 0u, 474u, 3687021304u, 1751559854u, 0, LDEXP_TOLERANCE, 0},
+{ 775, 1051092760u, 2798720100u, 0u, 95u, 1150707480u, 2798720100u, 0, LDEXP_TOLERANCE, 0},
+{ 776, 3205253626u, 3843740240u, 0u, 62u, 3270265338u, 3843740240u, 0, LDEXP_TOLERANCE, 0},
+{ 777, 1092011864u, 751825094u, 0u, 342u, 1450624856u, 751825094u, 0, LDEXP_TOLERANCE, 0},
+{ 778, 3209223122u, 3502451710u, 0u, 195u, 3413695442u, 3502451710u, 0, LDEXP_TOLERANCE, 0},
+{ 779, 3247190406u, 4080443609u, 0u, 248u, 3507237254u, 4080443609u, 0, LDEXP_TOLERANCE, 0},
+{ 780, 1096403156u, 3262097651u, 0u, 157u, 1261029588u, 3262097651u, 0, LDEXP_TOLERANCE, 0},
+{ 781, 3252309668u, 4001157930u, 0u, 52u, 3306835620u, 4001157930u, 0, LDEXP_TOLERANCE, 0},
+{ 782, 3193455299u, 2008796992u, 0u, 272u, 3478667971u, 2008796992u, 0, LDEXP_TOLERANCE, 0},
+{ 783, 1074202826u, 3996321918u, 0u, 272u, 1359415498u, 3996321918u, 0, LDEXP_TOLERANCE, 0},
+{ 784, 1097859997u, 559918757u, 0u, 200u, 1307575197u, 559918757u, 0, LDEXP_TOLERANCE, 0},
+{ 785, 1105263000u, 1026957442u, 0u, 292u, 1411447192u, 1026957442u, 0, LDEXP_TOLERANCE, 0},
+{ 786, 1090021734u, 10385612u, 0u, 274u, 1377331558u, 10385612u, 0, LDEXP_TOLERANCE, 0},
+{ 787, 3204176005u, 138109865u, 0u, 460u, 3686520965u, 138109865u, 0, LDEXP_TOLERANCE, 0},
+{ 788, 3248203007u, 2450309467u, 0u, 259u, 3519784191u, 2450309467u, 0, LDEXP_TOLERANCE, 0},
+{ 789, 3222168498u, 3036525078u, 0u, 430u, 3673056178u, 3036525078u, 0, LDEXP_TOLERANCE, 0},
+{ 790, 1089193268u, 2185243463u, 0u, 302u, 1405863220u, 2185243463u, 0, LDEXP_TOLERANCE, 0},
+{ 791, 1098669225u, 945559339u, 0u, 379u, 1496079529u, 945559339u, 0, LDEXP_TOLERANCE, 0},
+{ 792, 3247056551u, 3061117625u, 0u, 305u, 3566872231u, 3061117625u, 0, LDEXP_TOLERANCE, 0},
+{ 793, 1056505004u, 3804703138u, 0u, 193u, 1258880172u, 3804703138u, 0, LDEXP_TOLERANCE, 0},
+{ 794, 1064051616u, 4286212259u, 0u, 110u, 1179394976u, 4286212259u, 0, LDEXP_TOLERANCE, 0},
+{ 795, 3228226248u, 3005944127u, 0u, 368u, 3614102216u, 3005944127u, 0, LDEXP_TOLERANCE, 0},
+{ 796, 3227751196u, 1206270591u, 0u, 250u, 3489895196u, 1206270591u, 0, LDEXP_TOLERANCE, 0},
+{ 797, 3189082429u, 2733129256u, 0u, 59u, 3250948413u, 2733129256u, 0, LDEXP_TOLERANCE, 0},
+{ 798, 3245340921u, 4247799250u, 0u, 202u, 3457153273u, 4247799250u, 0, LDEXP_TOLERANCE, 0},
+{ 799, 3221929633u, 1990351504u, 0u, 322u, 3559571105u, 1990351504u, 0, LDEXP_TOLERANCE, 0},
+{ 800, 1088823630u, 1306766437u, 0u, 432u, 1541808462u, 1306766437u, 0, LDEXP_TOLERANCE, 0},
+{ 801, 1103830155u, 1646497074u, 0u, 106u, 1214979211u, 1646497074u, 0, LDEXP_TOLERANCE, 0},
+{ 802, 1045705464u, 1703969219u, 0u, 328u, 1389638392u, 1703969219u, 0, LDEXP_TOLERANCE, 0},
+{ 803, 3235685067u, 2320792999u, 0u, 202u, 3447497419u, 2320792999u, 0, LDEXP_TOLERANCE, 0},
+{ 804, 3245310028u, 2734025087u, 0u, 343u, 3604971596u, 2734025087u, 0, LDEXP_TOLERANCE, 0},
+{ 805, 1050749188u, 1865522910u, 0u, 362u, 1430333700u, 1865522910u, 0, LDEXP_TOLERANCE, 0},
+{ 806, 1082523997u, 607572944u, 0u, 246u, 1340473693u, 607572944u, 0, LDEXP_TOLERANCE, 0},
+{ 807, 3212293317u, 1718035313u, 0u, 381u, 3611800773u, 1718035313u, 0, LDEXP_TOLERANCE, 0},
+{ 808, 1077896873u, 1700936244u, 0u, 365u, 1460627113u, 1700936244u, 0, LDEXP_TOLERANCE, 0},
+{ 809, 1105063042u, 999185924u, 0u, 440u, 1566436482u, 999185924u, 0, LDEXP_TOLERANCE, 0},
+{ 810, 3207842510u, 788883399u, 0u, 125u, 3338914510u, 788883399u, 0, LDEXP_TOLERANCE, 0},
+{ 811, 1068639210u, 3699016825u, 0u, 408u, 1496458218u, 3699016825u, 0, LDEXP_TOLERANCE, 0},
+{ 812, 3254694575u, 3257889844u, 0u, 322u, 3592336047u, 3257889844u, 0, LDEXP_TOLERANCE, 0},
+{ 813, 3226459123u, 3557606351u, 0u, 466u, 3715095539u, 3557606351u, 0, LDEXP_TOLERANCE, 0},
+{ 814, 1096179175u, 2457013015u, 0u, 72u, 1171676647u, 2457013015u, 0, LDEXP_TOLERANCE, 0},
+{ 815, 1054624206u, 714673146u, 0u, 423u, 1498171854u, 714673146u, 0, LDEXP_TOLERANCE, 0},
+{ 816, 1068142810u, 798819874u, 0u, 305u, 1387958490u, 798819874u, 0, LDEXP_TOLERANCE, 0},
+{ 817, 3236531985u, 3685187432u, 0u, 32u, 3270086417u, 3685187432u, 0, LDEXP_TOLERANCE, 0},
+{ 818, 3215977438u, 2250028013u, 0u, 12u, 3228560350u, 2250028013u, 0, LDEXP_TOLERANCE, 0},
+{ 819, 3212961466u, 822905748u, 0u, 81u, 3297896122u, 822905748u, 0, LDEXP_TOLERANCE, 0},
+{ 820, 3221863333u, 162122081u, 0u, 161u, 3390684069u, 162122081u, 0, LDEXP_TOLERANCE, 0},
+{ 821, 3229017334u, 184971503u, 0u, 186u, 3424052470u, 184971503u, 0, LDEXP_TOLERANCE, 0},
+{ 822, 1068475748u, 3639227340u, 0u, 63u, 1134536036u, 3639227340u, 0, LDEXP_TOLERANCE, 0},
+{ 823, 1068863190u, 4192848976u, 0u, 110u, 1184206550u, 4192848976u, 0, LDEXP_TOLERANCE, 0},
+{ 824, 1067294567u, 3366476994u, 0u, 150u, 1224580967u, 3366476994u, 0, LDEXP_TOLERANCE, 0},
+{ 825, 3190744330u, 2826973629u, 0u, 361u, 3569280266u, 2826973629u, 0, LDEXP_TOLERANCE, 0},
+{ 826, 1093885013u, 3565509610u, 0u, 406u, 1519606869u, 3565509610u, 0, LDEXP_TOLERANCE, 0},
+{ 827, 1103860823u, 3945565763u, 0u, 470u, 1596691543u, 3945565763u, 0, LDEXP_TOLERANCE, 0},
+{ 828, 3253153113u, 3525488721u, 0u, 381u, 3652660569u, 3525488721u, 0, LDEXP_TOLERANCE, 0},
+{ 829, 1072788663u, 3844072288u, 0u, 27u, 1101100215u, 3844072288u, 0, LDEXP_TOLERANCE, 0},
+{ 830, 1105982382u, 396149483u, 0u, 309u, 1429992366u, 396149483u, 0, LDEXP_TOLERANCE, 0},
+{ 831, 3208357660u, 1296976426u, 0u, 226u, 3445335836u, 1296976426u, 0, LDEXP_TOLERANCE, 0},
+{ 832, 3198881428u, 3075911575u, 0u, 334u, 3549105812u, 3075911575u, 0, LDEXP_TOLERANCE, 0},
+{ 833, 3210025772u, 2171409636u, 0u, 214u, 3434421036u, 2171409636u, 0, LDEXP_TOLERANCE, 0},
+{ 834, 1085134286u, 3317203062u, 0u, 367u, 1469961678u, 3317203062u, 0, LDEXP_TOLERANCE, 0},
+{ 835, 1096024056u, 342573501u, 0u, 150u, 1253310456u, 342573501u, 0, LDEXP_TOLERANCE, 0},
+{ 836, 3214511676u, 1029815247u, 0u, 341u, 3572076092u, 1029815247u, 0, LDEXP_TOLERANCE, 0},
+{ 837, 1058864545u, 3610237982u, 0u, 168u, 1235025313u, 3610237982u, 0, LDEXP_TOLERANCE, 0},
+{ 838, 1087803418u, 915867083u, 0u, 25u, 1114017818u, 915867083u, 0, LDEXP_TOLERANCE, 0},
+{ 839, 1088029890u, 3972498826u, 0u, 437u, 1546257602u, 3972498826u, 0, LDEXP_TOLERANCE, 0},
+{ 840, 1069047467u, 4206678986u, 0u, 125u, 1200119467u, 4206678986u, 0, LDEXP_TOLERANCE, 0},
+{ 841, 3228983407u, 1162164397u, 0u, 273u, 3515244655u, 1162164397u, 0, LDEXP_TOLERANCE, 0},
+{ 842, 3250508564u, 2047944882u, 0u, 101u, 3356414740u, 2047944882u, 0, LDEXP_TOLERANCE, 0},
+{ 843, 3190469300u, 721926766u, 0u, 484u, 3697980084u, 721926766u, 0, LDEXP_TOLERANCE, 0},
+{ 844, 3205734397u, 858830829u, 0u, 96u, 3306397693u, 858830829u, 0, LDEXP_TOLERANCE, 0},
+{ 845, 3254021490u, 1884944479u, 0u, 101u, 3359927666u, 1884944479u, 0, LDEXP_TOLERANCE, 0},
+{ 846, 1061200790u, 770599461u, 0u, 457u, 1540400022u, 770599461u, 0, LDEXP_TOLERANCE, 0},
+{ 847, 1070178161u, 1235369496u, 0u, 91u, 1165598577u, 1235369496u, 0, LDEXP_TOLERANCE, 0},
+{ 848, 3224214082u, 2401751606u, 0u, 487u, 3734870594u, 2401751606u, 0, LDEXP_TOLERANCE, 0},
+{ 849, 3195861982u, 2825171386u, 0u, 305u, 3515677662u, 2825171386u, 0, LDEXP_TOLERANCE, 0},
+{ 850, 1061833598u, 1272591529u, 0u, 181u, 1251625854u, 1272591529u, 0, LDEXP_TOLERANCE, 0},
+{ 851, 1105686806u, 3174008470u, 0u, 444u, 1571254550u, 3174008470u, 0, LDEXP_TOLERANCE, 0},
+{ 852, 3201135451u, 1922413069u, 0u, 268u, 3482153819u, 1922413069u, 0, LDEXP_TOLERANCE, 0},
+{ 853, 1082801190u, 515824452u, 0u, 365u, 1465531430u, 515824452u, 0, LDEXP_TOLERANCE, 0},
+{ 854, 1069439223u, 2638362989u, 0u, 13u, 1083070711u, 2638362989u, 0, LDEXP_TOLERANCE, 0},
+{ 855, 1090196972u, 3350821426u, 0u, 214u, 1314592236u, 3350821426u, 0, LDEXP_TOLERANCE, 0},
+{ 856, 3222171679u, 2722693603u, 0u, 255u, 3489558559u, 2722693603u, 0, LDEXP_TOLERANCE, 0},
+{ 857, 3187717259u, 2277305925u, 0u, 150u, 3345003659u, 2277305925u, 0, LDEXP_TOLERANCE, 0},
+{ 858, 1043379197u, 1539782049u, 0u, 88u, 1135653885u, 1539782049u, 0, LDEXP_TOLERANCE, 0},
+{ 859, 1096830612u, 4029608359u, 0u, 440u, 1558204052u, 4029608359u, 0, LDEXP_TOLERANCE, 0},
+{ 860, 3252051109u, 2999983605u, 0u, 206u, 3468057765u, 2999983605u, 0, LDEXP_TOLERANCE, 0},
+{ 861, 1096654323u, 2577373394u, 0u, 178u, 1283300851u, 2577373394u, 0, LDEXP_TOLERANCE, 0},
+{ 862, 3210600814u, 3209526929u, 0u, 449u, 3681411438u, 3209526929u, 0, LDEXP_TOLERANCE, 0},
+{ 863, 1052682749u, 2164476593u, 0u, 416u, 1488890365u, 2164476593u, 0, LDEXP_TOLERANCE, 0},
+{ 864, 3239797146u, 1835860173u, 0u, 441u, 3702219162u, 1835860173u, 0, LDEXP_TOLERANCE, 0},
+{ 865, 1081200406u, 2422232642u, 0u, 387u, 1486999318u, 2422232642u, 0, LDEXP_TOLERANCE, 0},
+{ 866, 3217493714u, 236015626u, 0u, 448u, 3687255762u, 236015626u, 0, LDEXP_TOLERANCE, 0},
+{ 867, 3215229102u, 4091953286u, 0u, 50u, 3267657902u, 4091953286u, 0, LDEXP_TOLERANCE, 0},
+{ 868, 3232466491u, 4235242395u, 0u, 208u, 3450570299u, 4235242395u, 0, LDEXP_TOLERANCE, 0},
+{ 869, 1056148932u, 2226894195u, 0u, 12u, 1068731844u, 2226894195u, 0, LDEXP_TOLERANCE, 0},
+{ 870, 1085928888u, 1212597601u, 0u, 96u, 1186592184u, 1212597601u, 0, LDEXP_TOLERANCE, 0},
+{ 871, 1092491334u, 2547796519u, 0u, 394u, 1505630278u, 2547796519u, 0, LDEXP_TOLERANCE, 0},
+{ 872, 1089815741u, 931149948u, 0u, 9u, 1099252925u, 931149948u, 0, LDEXP_TOLERANCE, 0},
+{ 873, 1078166121u, 2663981399u, 0u, 128u, 1212383849u, 2663981399u, 0, LDEXP_TOLERANCE, 0},
+{ 874, 1099551055u, 1082898276u, 0u, 59u, 1161417039u, 1082898276u, 0, LDEXP_TOLERANCE, 0},
+{ 875, 1067193495u, 3092668216u, 0u, 368u, 1453069463u, 3092668216u, 0, LDEXP_TOLERANCE, 0},
+{ 876, 3220064091u, 735952225u, 0u, 121u, 3346941787u, 735952225u, 0, LDEXP_TOLERANCE, 0},
+{ 877, 1088308510u, 3170295088u, 0u, 223u, 1322140958u, 3170295088u, 0, LDEXP_TOLERANCE, 0},
+{ 878, 3239143845u, 3990023574u, 0u, 202u, 3450956197u, 3990023574u, 0, LDEXP_TOLERANCE, 0},
+{ 879, 1068793940u, 1025779807u, 0u, 496u, 1588887636u, 1025779807u, 0, LDEXP_TOLERANCE, 0},
+{ 880, 3217947229u, 937205825u, 0u, 96u, 3318610525u, 937205825u, 0, LDEXP_TOLERANCE, 0},
+{ 881, 3214656757u, 824051806u, 0u, 191u, 3414934773u, 824051806u, 0, LDEXP_TOLERANCE, 0},
+{ 882, 3246710531u, 2206975583u, 0u, 226u, 3483688707u, 2206975583u, 0, LDEXP_TOLERANCE, 0},
+{ 883, 3212669530u, 1645486982u, 0u, 405u, 3637342810u, 1645486982u, 0, LDEXP_TOLERANCE, 0},
+{ 884, 3239890670u, 668515593u, 0u, 162u, 3409759982u, 668515593u, 0, LDEXP_TOLERANCE, 0},
+{ 885, 3231063208u, 1981359339u, 0u, 110u, 3346406568u, 1981359339u, 0, LDEXP_TOLERANCE, 0},
+{ 886, 3224876941u, 895232801u, 0u, 11u, 3236411277u, 895232801u, 0, LDEXP_TOLERANCE, 0},
+{ 887, 3202462144u, 2479069370u, 0u, 76u, 3282153920u, 2479069370u, 0, LDEXP_TOLERANCE, 0},
+{ 888, 3230070172u, 424421119u, 0u, 428u, 3678860700u, 424421119u, 0, LDEXP_TOLERANCE, 0},
+{ 889, 3221132536u, 2265367339u, 0u, 401u, 3641611512u, 2265367339u, 0, LDEXP_TOLERANCE, 0},
+{ 890, 1095444173u, 1768241830u, 0u, 167u, 1270556365u, 1768241830u, 0, LDEXP_TOLERANCE, 0},
+{ 891, 1042815211u, 2742800982u, 0u, 114u, 1162352875u, 2742800982u, 0, LDEXP_TOLERANCE, 0},
+{ 892, 3227055805u, 66926332u, 0u, 47u, 3276338877u, 66926332u, 0, LDEXP_TOLERANCE, 0},
+{ 893, 3208978599u, 793918921u, 0u, 79u, 3291816103u, 793918921u, 0, LDEXP_TOLERANCE, 0},
+{ 894, 3190613834u, 2499520280u, 0u, 359u, 3567052618u, 2499520280u, 0, LDEXP_TOLERANCE, 0},
+{ 895, 3231820809u, 468583709u, 0u, 330u, 3577850889u, 468583709u, 0, LDEXP_TOLERANCE, 0},
+{ 896, 3209531041u, 216494777u, 0u, 244u, 3465383585u, 216494777u, 0, LDEXP_TOLERANCE, 0},
+{ 897, 3208867582u, 455371296u, 0u, 23u, 3232984830u, 455371296u, 0, LDEXP_TOLERANCE, 0},
+{ 898, 3237813129u, 1360096867u, 0u, 323u, 3576503177u, 1360096867u, 0, LDEXP_TOLERANCE, 0},
+{ 899, 3234511235u, 722957892u, 0u, 23u, 3258628483u, 722957892u, 0, LDEXP_TOLERANCE, 0},
+{ 900, 3196089837u, 1383518509u, 0u, 35u, 3232789997u, 1383518509u, 0, LDEXP_TOLERANCE, 0},
+{ 901, 3231254997u, 243303420u, 0u, 450u, 3703114197u, 243303420u, 0, LDEXP_TOLERANCE, 0},
+{ 902, 3226132757u, 2422073720u, 0u, 490u, 3739934997u, 2422073720u, 0, LDEXP_TOLERANCE, 0},
+{ 903, 3232217617u, 1389215707u, 0u, 453u, 3707222545u, 1389215707u, 0, LDEXP_TOLERANCE, 0},
+{ 904, 3192865206u, 1701554404u, 0u, 39u, 3233759670u, 1701554404u, 0, LDEXP_TOLERANCE, 0},
+{ 905, 1099239964u, 620596423u, 0u, 296u, 1409618460u, 620596423u, 0, LDEXP_TOLERANCE, 0},
+{ 906, 3204081936u, 794279522u, 0u, 292u, 3510266128u, 794279522u, 0, LDEXP_TOLERANCE, 0},
+{ 907, 3244160134u, 742203584u, 0u, 252u, 3508401286u, 742203584u, 0, LDEXP_TOLERANCE, 0},
+{ 908, 3226020545u, 101555209u, 0u, 493u, 3742968513u, 101555209u, 0, LDEXP_TOLERANCE, 0},
+{ 909, 1084214050u, 3065770846u, 0u, 178u, 1270860578u, 3065770846u, 0, LDEXP_TOLERANCE, 0},
+{ 910, 3251962512u, 3766248610u, 0u, 332u, 3600089744u, 3766248610u, 0, LDEXP_TOLERANCE, 0},
+{ 911, 1094059783u, 2353397886u, 0u, 139u, 1239811847u, 2353397886u, 0, LDEXP_TOLERANCE, 0},
+{ 912, 1067736547u, 3644468510u, 0u, 142u, 1216634339u, 3644468510u, 0, LDEXP_TOLERANCE, 0},
+{ 913, 3203153389u, 3668774238u, 0u, 414u, 3637263853u, 3668774238u, 0, LDEXP_TOLERANCE, 0},
+{ 914, 3254443077u, 3017062764u, 0u, 267u, 3534412869u, 3017062764u, 0, LDEXP_TOLERANCE, 0},
+{ 915, 3229391605u, 2125864003u, 0u, 138u, 3374095093u, 2125864003u, 0, LDEXP_TOLERANCE, 0},
+{ 916, 3189653973u, 2421488611u, 0u, 18u, 3208528341u, 2421488611u, 0, LDEXP_TOLERANCE, 0},
+{ 917, 3189245988u, 1539535238u, 0u, 106u, 3300395044u, 1539535238u, 0, LDEXP_TOLERANCE, 0},
+{ 918, 3246934215u, 508708967u, 0u, 166u, 3420997831u, 508708967u, 0, LDEXP_TOLERANCE, 0},
+{ 919, 1096820310u, 1045480938u, 0u, 260u, 1369450070u, 1045480938u, 0, LDEXP_TOLERANCE, 0},
+{ 920, 3253279675u, 4059455278u, 0u, 497u, 3774421947u, 4059455278u, 0, LDEXP_TOLERANCE, 0},
+{ 921, 1086656128u, 2085052714u, 0u, 327u, 1429540480u, 2085052714u, 0, LDEXP_TOLERANCE, 0},
+{ 922, 1101382876u, 3731725710u, 0u, 433u, 1555416284u, 3731725710u, 0, LDEXP_TOLERANCE, 0},
+{ 923, 1102379272u, 3644659426u, 0u, 465u, 1589967112u, 3644659426u, 0, LDEXP_TOLERANCE, 0},
+{ 924, 1042731156u, 1213208320u, 0u, 18u, 1061605524u, 1213208320u, 0, LDEXP_TOLERANCE, 0},
+{ 925, 1098023542u, 1856411393u, 0u, 54u, 1154646646u, 1856411393u, 0, LDEXP_TOLERANCE, 0},
+{ 926, 3203414683u, 2536686169u, 0u, 245u, 3460315803u, 2536686169u, 0, LDEXP_TOLERANCE, 0},
+{ 927, 3221235845u, 3482598782u, 0u, 332u, 3569363077u, 3482598782u, 0, LDEXP_TOLERANCE, 0},
+{ 928, 1054849265u, 2353103845u, 0u, 466u, 1543485681u, 2353103845u, 0, LDEXP_TOLERANCE, 0},
+{ 929, 3246279974u, 1941016128u, 0u, 459u, 3727576358u, 1941016128u, 0, LDEXP_TOLERANCE, 0},
+{ 930, 3223498027u, 3374865460u, 0u, 227u, 3461524779u, 3374865460u, 0, LDEXP_TOLERANCE, 0},
+{ 931, 1043393020u, 3103223670u, 0u, 323u, 1382083068u, 3103223670u, 0, LDEXP_TOLERANCE, 0},
+{ 932, 1044929218u, 2872266489u, 0u, 418u, 1483233986u, 2872266489u, 0, LDEXP_TOLERANCE, 0},
+{ 933, 1050828303u, 2217887323u, 0u, 367u, 1435655695u, 2217887323u, 0, LDEXP_TOLERANCE, 0},
+{ 934, 3200788569u, 1848418423u, 0u, 200u, 3410503769u, 1848418423u, 0, LDEXP_TOLERANCE, 0},
+{ 935, 3249371352u, 2746559855u, 0u, 29u, 3279780056u, 2746559855u, 0, LDEXP_TOLERANCE, 0},
+{ 936, 3214435784u, 3646244007u, 0u, 192u, 3415762376u, 3646244007u, 0, LDEXP_TOLERANCE, 0},
+{ 937, 3197852749u, 3808681655u, 0u, 123u, 3326827597u, 3808681655u, 0, LDEXP_TOLERANCE, 0},
+{ 938, 1046103353u, 3261896205u, 0u, 69u, 1118455097u, 3261896205u, 0, LDEXP_TOLERANCE, 0},
+{ 939, 3198169239u, 2607332678u, 0u, 203u, 3411030167u, 2607332678u, 0, LDEXP_TOLERANCE, 0},
+{ 940, 3202585798u, 910680626u, 0u, 363u, 3583218886u, 910680626u, 0, LDEXP_TOLERANCE, 0},
+{ 941, 1090685451u, 2102413329u, 0u, 424u, 1535281675u, 2102413329u, 0, LDEXP_TOLERANCE, 0},
+{ 942, 3253874340u, 3516336233u, 0u, 90u, 3348246180u, 3516336233u, 0, LDEXP_TOLERANCE, 0},
+{ 943, 3232355944u, 1410347277u, 0u, 71u, 3306804840u, 1410347277u, 0, LDEXP_TOLERANCE, 0},
+{ 944, 3237050423u, 107788725u, 0u, 162u, 3406919735u, 107788725u, 0, LDEXP_TOLERANCE, 0},
+{ 945, 3231252730u, 1784424659u, 0u, 297u, 3542679802u, 1784424659u, 0, LDEXP_TOLERANCE, 0},
+{ 946, 3199349254u, 1019916843u, 0u, 366u, 3583128070u, 1019916843u, 0, LDEXP_TOLERANCE, 0},
+{ 947, 1083813098u, 2171986964u, 0u, 359u, 1460251882u, 2171986964u, 0, LDEXP_TOLERANCE, 0},
+{ 948, 1096604388u, 736131791u, 0u, 408u, 1524423396u, 736131791u, 0, LDEXP_TOLERANCE, 0},
+{ 949, 1071811135u, 3766682389u, 0u, 127u, 1204980287u, 3766682389u, 0, LDEXP_TOLERANCE, 0},
+{ 950, 1076891662u, 2200276237u, 0u, 420u, 1517293582u, 2200276237u, 0, LDEXP_TOLERANCE, 0},
+{ 951, 3234542983u, 2689686464u, 0u, 162u, 3404412295u, 2689686464u, 0, LDEXP_TOLERANCE, 0},
+{ 952, 3247609257u, 139905412u, 0u, 24u, 3272775081u, 139905412u, 0, LDEXP_TOLERANCE, 0},
+{ 953, 3234048376u, 580580861u, 0u, 373u, 3625167224u, 580580861u, 0, LDEXP_TOLERANCE, 0},
+{ 954, 3210191121u, 3524948352u, 0u, 366u, 3593969937u, 3524948352u, 0, LDEXP_TOLERANCE, 0},
+{ 955, 1101737698u, 914741728u, 0u, 349u, 1467690722u, 914741728u, 0, LDEXP_TOLERANCE, 0},
+{ 956, 1092886795u, 464054401u, 0u, 229u, 1333010699u, 464054401u, 0, LDEXP_TOLERANCE, 0},
+{ 957, 1075509277u, 417745917u, 0u, 31u, 1108015133u, 417745917u, 0, LDEXP_TOLERANCE, 0},
+{ 958, 1057279131u, 1709794784u, 0u, 249u, 1318374555u, 1709794784u, 0, LDEXP_TOLERANCE, 0},
+{ 959, 3234100445u, 3278422298u, 0u, 342u, 3592713437u, 3278422298u, 0, LDEXP_TOLERANCE, 0},
+{ 960, 3203733705u, 4261064982u, 0u, 240u, 3455391945u, 4261064982u, 0, LDEXP_TOLERANCE, 0},
+{ 961, 1100643460u, 2128617108u, 0u, 271u, 1384807556u, 2128617108u, 0, LDEXP_TOLERANCE, 0},
+{ 962, 3240438466u, 21888920u, 0u, 78u, 3322227394u, 21888920u, 0, LDEXP_TOLERANCE, 0},
+{ 963, 3197739999u, 1373233750u, 0u, 325u, 3538527199u, 1373233750u, 0, LDEXP_TOLERANCE, 0},
+{ 964, 3213773114u, 834976849u, 0u, 287u, 3514714426u, 834976849u, 0, LDEXP_TOLERANCE, 0},
+{ 965, 1106728187u, 1569913360u, 0u, 162u, 1276597499u, 1569913360u, 0, LDEXP_TOLERANCE, 0},
+{ 966, 1101338019u, 1916097176u, 0u, 119u, 1226118563u, 1916097176u, 0, LDEXP_TOLERANCE, 0},
+{ 967, 1088500589u, 2029599667u, 0u, 68u, 1159803757u, 2029599667u, 0, LDEXP_TOLERANCE, 0},
+{ 968, 3223722021u, 1092470959u, 0u, 287u, 3524663333u, 1092470959u, 0, LDEXP_TOLERANCE, 0},
+{ 969, 3227158932u, 904208640u, 0u, 104u, 3336210836u, 904208640u, 0, LDEXP_TOLERANCE, 0},
+{ 970, 3252936386u, 3748743654u, 0u, 398u, 3670269634u, 3748743654u, 0, LDEXP_TOLERANCE, 0},
+{ 971, 3214785260u, 3298077351u, 0u, 199u, 3423451884u, 3298077351u, 0, LDEXP_TOLERANCE, 0},
+{ 972, 3239386269u, 4236797974u, 0u, 54u, 3296009373u, 4236797974u, 0, LDEXP_TOLERANCE, 0},
+{ 973, 3233687691u, 2405805086u, 0u, 205u, 3448645771u, 2405805086u, 0, LDEXP_TOLERANCE, 0},
+{ 974, 3222929431u, 4279456618u, 0u, 66u, 3292135447u, 4279456618u, 0, LDEXP_TOLERANCE, 0},
+{ 975, 1045375126u, 3817511514u, 0u, 385u, 1449076886u, 3817511514u, 0, LDEXP_TOLERANCE, 0},
+{ 976, 1081540030u, 2658217784u, 0u, 224u, 1316421054u, 2658217784u, 0, LDEXP_TOLERANCE, 0},
+{ 977, 3242908935u, 2848327573u, 0u, 90u, 3337280775u, 2848327573u, 0, LDEXP_TOLERANCE, 0},
+{ 978, 1073045264u, 1841901027u, 0u, 326u, 1414881040u, 1841901027u, 0, LDEXP_TOLERANCE, 0},
+{ 979, 1090819154u, 1205187797u, 0u, 439u, 1551144018u, 1205187797u, 0, LDEXP_TOLERANCE, 0},
+{ 980, 3233869823u, 1390957964u, 0u, 5u, 3239112703u, 1390957964u, 0, LDEXP_TOLERANCE, 0},
+{ 981, 3208658945u, 2704249815u, 0u, 244u, 3464511489u, 2704249815u, 0, LDEXP_TOLERANCE, 0},
+{ 982, 3229123692u, 338765118u, 0u, 205u, 3444081772u, 338765118u, 0, LDEXP_TOLERANCE, 0},
+{ 983, 3215638141u, 2059348626u, 0u, 53u, 3271212669u, 2059348626u, 0, LDEXP_TOLERANCE, 0},
+{ 984, 3206590689u, 3769581744u, 0u, 220u, 3437277409u, 3769581744u, 0, LDEXP_TOLERANCE, 0},
+{ 985, 1087767451u, 2442561375u, 0u, 352u, 1456866203u, 2442561375u, 0, LDEXP_TOLERANCE, 0},
+{ 986, 1043029185u, 1826571949u, 0u, 287u, 1343970497u, 1826571949u, 0, LDEXP_TOLERANCE, 0},
+{ 987, 3227038874u, 4157848135u, 0u, 470u, 3719869594u, 4157848135u, 0, LDEXP_TOLERANCE, 0},
+{ 988, 3210023815u, 3262641707u, 0u, 239u, 3460633479u, 3262641707u, 0, LDEXP_TOLERANCE, 0},
+{ 989, 3233710961u, 851510610u, 0u, 299u, 3547235185u, 851510610u, 0, LDEXP_TOLERANCE, 0},
+{ 990, 3232296686u, 55834416u, 0u, 155u, 3394825966u, 55834416u, 0, LDEXP_TOLERANCE, 0},
+{ 991, 1067699608u, 4282766727u, 0u, 208u, 1285803416u, 4282766727u, 0, LDEXP_TOLERANCE, 0},
+{ 992, 1073603056u, 2574237400u, 0u, 399u, 1491984880u, 2574237400u, 0, LDEXP_TOLERANCE, 0},
+{ 993, 1059828657u, 1824828952u, 0u, 9u, 1069265841u, 1824828952u, 0, LDEXP_TOLERANCE, 0},
+{ 994, 3243078353u, 4292530873u, 0u, 111u, 3359470289u, 4292530873u, 0, LDEXP_TOLERANCE, 0},
+{ 995, 1066526787u, 3220678991u, 0u, 61u, 1130489923u, 3220678991u, 0, LDEXP_TOLERANCE, 0},
+{ 996, 1101299693u, 4056776748u, 0u, 465u, 1588887533u, 4056776748u, 0, LDEXP_TOLERANCE, 0},
+{ 997, 1071354531u, 683713613u, 0u, 210u, 1291555491u, 683713613u, 0, LDEXP_TOLERANCE, 0},
+{ 998, 1089099910u, 2719336106u, 0u, 473u, 1585076358u, 2719336106u, 0, LDEXP_TOLERANCE, 0},
+{ 999, 1084514518u, 343139655u, 0u, 247u, 1343512790u, 343139655u, 0, LDEXP_TOLERANCE, 0},
+
+
+// AUTOMATICALLY GENERATED VECTORS STOP
+
+};
+
+#endif // CYGONCE_LIBM_LDEXP_H multiple inclusion protection
+
+// EOF ldexp.h
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/ldexpf.c b/ecos/packages/language/c/libm/current/tests/vectors/ldexpf.c
new file mode 100644
index 0000000..1459692
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/ldexpf.c
@@ -0,0 +1,115 @@
+//===========================================================================
+//
+// ldexpf.c
+//
+// Test of ldexpf() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// Declarations for test system:
+//
+// TESTCASE_TYPE=CYG_TEST_MODULE
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include <cyg/infra/testcase.h> // Test infrastructure
+#include <math.h> // Header for this package
+#include <sys/ieeefp.h> // Cyg_libm_ieee_float_shape_type
+#include "vectors/vector_support_float.h"// extra support for math tests
+
+#include "vectors/ldexpf.h"
+
+// FUNCTIONS
+
+static void
+test( CYG_ADDRWORD data )
+{
+ cyg_ucount32 vec_size;
+ cyg_bool ret;
+
+ vec_size = sizeof(ldexpf_vec) / sizeof(Cyg_libm_test_float_vec_t);
+ ret = doTestVecFloat( (CYG_ADDRWORD) &ldexpf, CYG_LIBM_TEST_VEC_FLOAT,
+ CYG_LIBM_TEST_VEC_INT, CYG_LIBM_TEST_VEC_FLOAT,
+ &ldexpf_vec[0], vec_size );
+
+ if (ret==true)
+ {
+ CYG_TEST_PASS("ldexpf() is stable");
+ } // if
+ else
+ {
+ CYG_TEST_FAIL("ldexpf() failed tests");
+ } // else
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for Math "
+ "library ldexpf() function");
+} // test()
+
+
+int
+main(int argc, char *argv[])
+{
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for Math library "
+ "ldexpf() function");
+
+ START_TEST( test );
+
+ CYG_TEST_PASS_FINISH("Testing is not applicable to this configuration");
+
+} // main()
+
+
+// EOF ldexpf.c
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/ldexpf.h b/ecos/packages/language/c/libm/current/tests/vectors/ldexpf.h
new file mode 100644
index 0000000..4b9e2d3
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/ldexpf.h
@@ -0,0 +1,887 @@
+#ifndef CYGONCE_LIBM_LDEXPF_H
+#define CYGONCE_LIBM_LDEXPF_H
+//===========================================================================
+//
+// ldexpf.h
+//
+// Test vectors for testing of ldexpf() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage: #include "vectors/ldexpf.h"
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include "vectors/vector_support_float.h"// extra support for math tests
+
+#define LDEXPF_TOLERANCE 1.0E-04
+
+static const Cyg_libm_test_float_vec_t ldexpf_vec[] = {
+
+// AUTOMATICALLY GENERATED VECTORS START
+
+{0, 3196650934u, 0u, 3196650934u, 0, LDEXPF_TOLERANCE, 0},
+{1, 1224242132u, 0u, 1224242132u, 0, LDEXPF_TOLERANCE, 0},
+{2, 1198712763u, 0u, 1198712763u, 0, LDEXPF_TOLERANCE, 0},
+{3, 3159309973u, 0u, 3159309973u, 0, LDEXPF_TOLERANCE, 0},
+{4, 954173073u, 0u, 954173073u, 0, LDEXPF_TOLERANCE, 0},
+{5, 3090780435u, 0u, 3090780435u, 0, LDEXPF_TOLERANCE, 0},
+{6, 966554515u, 4294967290u, 916222867u, 0, LDEXPF_TOLERANCE, 0},
+{7, 1166191415u, 0u, 1166191415u, 0, LDEXPF_TOLERANCE, 0},
+{8, 1234419246u, 0u, 1234419246u, 0, LDEXPF_TOLERANCE, 0},
+{9, 1302107128u, 4294492157u, 0u, 0, LDEXPF_TOLERANCE, 0},
+{10, 1052801068u, 0u, 1052801068u, 0, LDEXPF_TOLERANCE, 0},
+{11, 1060849628u, 0u, 1060849628u, 0, LDEXPF_TOLERANCE, 0},
+{12, 3484320003u, 0u, 3484320003u, 0, LDEXPF_TOLERANCE, 0},
+{13, 1167223673u, 0u, 1167223673u, 0, LDEXPF_TOLERANCE, 0},
+{14, 968192794u, 0u, 968192794u, 0, LDEXPF_TOLERANCE, 0},
+{15, 3122346862u, 48u, 3525000046u, 0, LDEXPF_TOLERANCE, 0},
+{16, 906701409u, 0u, 906701409u, 0, LDEXPF_TOLERANCE, 0},
+{17, 3231467496u, 0u, 3231467496u, 0, LDEXPF_TOLERANCE, 0},
+{18, 1341514497u, 3022046753u, 0u, 0, LDEXPF_TOLERANCE, 0},
+{19, 1272351391u, 4294363968u, 0u, 0, LDEXPF_TOLERANCE, 0},
+{20, 940236348u, 4294965375u, 0u, 0, LDEXPF_TOLERANCE, 0},
+{21, 3251541546u, 0u, 3251541546u, 0, LDEXPF_TOLERANCE, 0},
+{22, 3110358400u, 0u, 3110358400u, 0, LDEXPF_TOLERANCE, 0},
+{23, 3371863479u, 0u, 3371863479u, 0, LDEXPF_TOLERANCE, 0},
+{24, 3204069187u, 0u, 3204069187u, 0, LDEXPF_TOLERANCE, 0},
+{25, 1306460502u, 0u, 1306460502u, 0, LDEXPF_TOLERANCE, 0},
+{26, 1197542187u, 0u, 1197542187u, 0, LDEXPF_TOLERANCE, 0},
+{27, 1184239996u, 4294967294u, 1167462780u, 0, LDEXPF_TOLERANCE, 0},
+{28, 1001673627u, 3340510812u, 0u, 0, LDEXPF_TOLERANCE, 0},
+{29, 941796645u, 0u, 941796645u, 0, LDEXPF_TOLERANCE, 0},
+{30, 3287199470u, 0u, 3287199470u, 0, LDEXPF_TOLERANCE, 0},
+{31, 1143233714u, 0u, 1143233714u, 0, LDEXPF_TOLERANCE, 0},
+{32, 3143717025u, 4294967290u, 3093385377u, 0, LDEXPF_TOLERANCE, 0},
+{33, 3240298487u, 0u, 3240298487u, 0, LDEXPF_TOLERANCE, 0},
+{34, 1288902137u, 0u, 1288902137u, 0, LDEXPF_TOLERANCE, 0},
+{35, 1333134799u, 2211432996u, 0u, 0, LDEXPF_TOLERANCE, 0},
+{36, 1038851706u, 2696359348u, 0u, 0, LDEXPF_TOLERANCE, 0},
+{37, 3329354473u, 0u, 3329354473u, 0, LDEXPF_TOLERANCE, 0},
+{38, 1309289088u, 0u, 1309289088u, 0, LDEXPF_TOLERANCE, 0},
+{39, 3405585402u, 0u, 3405585402u, 0, LDEXPF_TOLERANCE, 0},
+{40, 3106647724u, 0u, 3106647724u, 0, LDEXPF_TOLERANCE, 0},
+{41, 1106778573u, 4294965325u, 0u, 0, LDEXPF_TOLERANCE, 0},
+{42, 1140567947u, 0u, 1140567947u, 0, LDEXPF_TOLERANCE, 0},
+{43, 1238569473u, 0u, 1238569473u, 0, LDEXPF_TOLERANCE, 0},
+{44, 1175011025u, 0u, 1175011025u, 0, LDEXPF_TOLERANCE, 0},
+{45, 3058097085u, 0u, 3058097085u, 0, LDEXPF_TOLERANCE, 0},
+{46, 3107252546u, 1u, 3115641154u, 0, LDEXPF_TOLERANCE, 0},
+{47, 3096032662u, 0u, 3096032662u, 0, LDEXPF_TOLERANCE, 0},
+{48, 3197942144u, 0u, 3197942144u, 0, LDEXPF_TOLERANCE, 0},
+{49, 3403348556u, 0u, 3403348556u, 0, LDEXPF_TOLERANCE, 0},
+{50, 1136411063u, 82u, 1824276919u, 0, LDEXPF_TOLERANCE, 0},
+{51, 3340615780u, 0u, 3340615780u, 0, LDEXPF_TOLERANCE, 0},
+{52, 998567360u, 0u, 998567360u, 0, LDEXPF_TOLERANCE, 0},
+{53, 989687421u, 4294414202u, 0u, 0, LDEXPF_TOLERANCE, 0},
+{54, 1152956913u, 0u, 1152956913u, 0, LDEXPF_TOLERANCE, 0},
+{55, 892922651u, 4294392467u, 0u, 0, LDEXPF_TOLERANCE, 0},
+{56, 1307091856u, 24u, 1508418448u, 0, LDEXPF_TOLERANCE, 0},
+{57, 1142167709u, 13u, 1251219613u, 0, LDEXPF_TOLERANCE, 0},
+{58, 3426232834u, 0u, 3426232834u, 0, LDEXPF_TOLERANCE, 0},
+{59, 3368566779u, 0u, 3368566779u, 0, LDEXPF_TOLERANCE, 0},
+{60, 1138741813u, 0u, 1138741813u, 0, LDEXPF_TOLERANCE, 0},
+{61, 982950501u, 0u, 982950501u, 0, LDEXPF_TOLERANCE, 0},
+{62, 1142981585u, 0u, 1142981585u, 0, LDEXPF_TOLERANCE, 0},
+{63, 3347165962u, 0u, 3347165962u, 0, LDEXPF_TOLERANCE, 0},
+{64, 1009535440u, 4293825695u, 0u, 0, LDEXPF_TOLERANCE, 0},
+{65, 3126820946u, 2u, 3143598162u, 0, LDEXPF_TOLERANCE, 0},
+{66, 3473956030u, 0u, 3473956030u, 0, LDEXPF_TOLERANCE, 0},
+{67, 3349098349u, 0u, 3349098349u, 0, LDEXPF_TOLERANCE, 0},
+{68, 3152729489u, 0u, 3152729489u, 0, LDEXPF_TOLERANCE, 0},
+{69, 945568720u, 4294963204u, 0u, 0, LDEXPF_TOLERANCE, 0},
+{70, 3345489836u, 36u, 3647479724u, 0, LDEXPF_TOLERANCE, 0},
+{71, 976791751u, 4294967292u, 943237319u, 0, LDEXPF_TOLERANCE, 0},
+{72, 1004442355u, 0u, 1004442355u, 0, LDEXPF_TOLERANCE, 0},
+{73, 1108485380u, 0u, 1108485380u, 0, LDEXPF_TOLERANCE, 0},
+{74, 1061834641u, 0u, 1061834641u, 0, LDEXPF_TOLERANCE, 0},
+{75, 1087189715u, 0u, 1087189715u, 0, LDEXPF_TOLERANCE, 0},
+{76, 1000611335u, 0u, 1000611335u, 0, LDEXPF_TOLERANCE, 0},
+{77, 3466188568u, 0u, 3466188568u, 0, LDEXPF_TOLERANCE, 0},
+{78, 3072456205u, 0u, 3072456205u, 0, LDEXPF_TOLERANCE, 0},
+{79, 1315030230u, 4294939294u, 0u, 0, LDEXPF_TOLERANCE, 0},
+{80, 1134593658u, 3712906973u, 0u, 0, LDEXPF_TOLERANCE, 0},
+{81, 977281449u, 0u, 977281449u, 0, LDEXPF_TOLERANCE, 0},
+{82, 1086198791u, 0u, 1086198791u, 0, LDEXPF_TOLERANCE, 0},
+{83, 1255152035u, 0u, 1255152035u, 0, LDEXPF_TOLERANCE, 0},
+{84, 1135271264u, 4294966890u, 0u, 0, LDEXPF_TOLERANCE, 0},
+{85, 1094190727u, 0u, 1094190727u, 0, LDEXPF_TOLERANCE, 0},
+{86, 1294665325u, 0u, 1294665325u, 0, LDEXPF_TOLERANCE, 0},
+{87, 1036608591u, 0u, 1036608591u, 0, LDEXPF_TOLERANCE, 0},
+{88, 3229998064u, 0u, 3229998064u, 0, LDEXPF_TOLERANCE, 0},
+{89, 3439134022u, 0u, 3439134022u, 0, LDEXPF_TOLERANCE, 0},
+{90, 1325668223u, 0u, 1325668223u, 0, LDEXPF_TOLERANCE, 0},
+{91, 1092037607u, 0u, 1092037607u, 0, LDEXPF_TOLERANCE, 0},
+{92, 3295436768u, 0u, 3295436768u, 0, LDEXPF_TOLERANCE, 0},
+{93, 1151984049u, 0u, 1151984049u, 0, LDEXPF_TOLERANCE, 0},
+{94, 1129287043u, 0u, 1129287043u, 0, LDEXPF_TOLERANCE, 0},
+{95, 1243664530u, 0u, 1243664530u, 0, LDEXPF_TOLERANCE, 0},
+{96, 950829092u, 0u, 950829092u, 0, LDEXPF_TOLERANCE, 0},
+{97, 1115471979u, 0u, 1115471979u, 0, LDEXPF_TOLERANCE, 0},
+{98, 3351092088u, 0u, 3351092088u, 0, LDEXPF_TOLERANCE, 0},
+{99, 3241193975u, 0u, 3241193975u, 0, LDEXPF_TOLERANCE, 0},
+{100, 1030934236u, 0u, 1030934236u, 0, LDEXPF_TOLERANCE, 0},
+{101, 1025254314u, 0u, 1025254314u, 0, LDEXPF_TOLERANCE, 0},
+{102, 1110545760u, 4294967286u, 1026659680u, 0, LDEXPF_TOLERANCE, 0},
+{103, 3180213739u, 37u, 3490592235u, 0, LDEXPF_TOLERANCE, 0},
+{104, 3361976590u, 0u, 3361976590u, 0, LDEXPF_TOLERANCE, 0},
+{105, 881280146u, 4262747521u, 0u, 0, LDEXPF_TOLERANCE, 0},
+{106, 1304154705u, 0u, 1304154705u, 0, LDEXPF_TOLERANCE, 0},
+{107, 3264443610u, 4294967294u, 3247666394u, 0, LDEXPF_TOLERANCE, 0},
+{108, 3374550627u, 0u, 3374550627u, 0, LDEXPF_TOLERANCE, 0},
+{109, 1268194719u, 3962356276u, 0u, 0, LDEXPF_TOLERANCE, 0},
+{110, 1161858787u, 0u, 1161858787u, 0, LDEXPF_TOLERANCE, 0},
+{111, 3325193181u, 0u, 3325193181u, 0, LDEXPF_TOLERANCE, 0},
+{112, 3115275450u, 0u, 3115275450u, 0, LDEXPF_TOLERANCE, 0},
+{113, 3116607482u, 4294967294u, 3099830266u, 0, LDEXPF_TOLERANCE, 0},
+{114, 3187892415u, 0u, 3187892415u, 0, LDEXPF_TOLERANCE, 0},
+{115, 1189120494u, 0u, 1189120494u, 0, LDEXPF_TOLERANCE, 0},
+{116, 889030794u, 0u, 889030794u, 0, LDEXPF_TOLERANCE, 0},
+{117, 1323529208u, 0u, 1323529208u, 0, LDEXPF_TOLERANCE, 0},
+{118, 3465768388u, 0u, 3465768388u, 0, LDEXPF_TOLERANCE, 0},
+{119, 3426099899u, 87u, 4155908795u, 0, LDEXPF_TOLERANCE, 0},
+{120, 1065798296u, 0u, 1065798296u, 0, LDEXPF_TOLERANCE, 0},
+{121, 3328989444u, 0u, 3328989444u, 0, LDEXPF_TOLERANCE, 0},
+{122, 3357819026u, 0u, 3357819026u, 0, LDEXPF_TOLERANCE, 0},
+{123, 1273397670u, 0u, 1273397670u, 0, LDEXPF_TOLERANCE, 0},
+{124, 1257596246u, 4264851904u, 0u, 0, LDEXPF_TOLERANCE, 0},
+{125, 1051773536u, 0u, 1051773536u, 0, LDEXPF_TOLERANCE, 0},
+{126, 3294752507u, 0u, 3294752507u, 0, LDEXPF_TOLERANCE, 0},
+{127, 3424848725u, 0u, 3424848725u, 0, LDEXPF_TOLERANCE, 0},
+{128, 1090870906u, 4294966393u, 0u, 0, LDEXPF_TOLERANCE, 0},
+{129, 1272325814u, 0u, 1272325814u, 0, LDEXPF_TOLERANCE, 0},
+{130, 3359508271u, 0u, 3359508271u, 0, LDEXPF_TOLERANCE, 0},
+{131, 1137854355u, 4294941607u, 0u, 0, LDEXPF_TOLERANCE, 0},
+{132, 3440773058u, 0u, 3440773058u, 0, LDEXPF_TOLERANCE, 0},
+{133, 3101598400u, 0u, 3101598400u, 0, LDEXPF_TOLERANCE, 0},
+{134, 3437062994u, 0u, 3437062994u, 0, LDEXPF_TOLERANCE, 0},
+{135, 3303035472u, 0u, 3303035472u, 0, LDEXPF_TOLERANCE, 0},
+{136, 1053698677u, 4294966907u, 0u, 0, LDEXPF_TOLERANCE, 0},
+{137, 3037541131u, 5u, 3079484171u, 0, LDEXPF_TOLERANCE, 0},
+{138, 3458934263u, 0u, 3458934263u, 0, LDEXPF_TOLERANCE, 0},
+{139, 1065761827u, 4294943781u, 0u, 0, LDEXPF_TOLERANCE, 0},
+{140, 3025843188u, 0u, 3025843188u, 0, LDEXPF_TOLERANCE, 0},
+{141, 926665223u, 0u, 926665223u, 0, LDEXPF_TOLERANCE, 0},
+{142, 1199816046u, 0u, 1199816046u, 0, LDEXPF_TOLERANCE, 0},
+{143, 3333779015u, 0u, 3333779015u, 0, LDEXPF_TOLERANCE, 0},
+{144, 948398145u, 4294967288u, 881289281u, 0, LDEXPF_TOLERANCE, 0},
+{145, 3164749613u, 0u, 3164749613u, 0, LDEXPF_TOLERANCE, 0},
+{146, 3118883815u, 0u, 3118883815u, 0, LDEXPF_TOLERANCE, 0},
+{147, 3226990408u, 45u, 3604477768u, 0, LDEXPF_TOLERANCE, 0},
+{148, 3117098218u, 115u, 4081788138u, 0, LDEXPF_TOLERANCE, 0},
+{149, 1283624229u, 0u, 1283624229u, 0, LDEXPF_TOLERANCE, 0},
+{150, 970649315u, 3u, 995815139u, 0, LDEXPF_TOLERANCE, 0},
+{151, 959776291u, 4294967028u, 0u, 0, LDEXPF_TOLERANCE, 0},
+{152, 1270734970u, 4294829480u, 0u, 0, LDEXPF_TOLERANCE, 0},
+{153, 3454816067u, 0u, 3454816067u, 0, LDEXPF_TOLERANCE, 0},
+{154, 1157598381u, 4294964293u, 0u, 0, LDEXPF_TOLERANCE, 0},
+{155, 3335234513u, 0u, 3335234513u, 0, LDEXPF_TOLERANCE, 0},
+{156, 1279489061u, 0u, 1279489061u, 0, LDEXPF_TOLERANCE, 0},
+{157, 3143920719u, 0u, 3143920719u, 0, LDEXPF_TOLERANCE, 0},
+{158, 1233171235u, 0u, 1233171235u, 0, LDEXPF_TOLERANCE, 0},
+{159, 1148920078u, 0u, 1148920078u, 0, LDEXPF_TOLERANCE, 0},
+{160, 3064988156u, 4294967292u, 3031433724u, 0, LDEXPF_TOLERANCE, 0},
+{161, 3219949483u, 0u, 3219949483u, 0, LDEXPF_TOLERANCE, 0},
+{162, 1207502108u, 4292985650u, 0u, 0, LDEXPF_TOLERANCE, 0},
+{163, 1000014431u, 0u, 1000014431u, 0, LDEXPF_TOLERANCE, 0},
+{164, 3161756316u, 0u, 3161756316u, 0, LDEXPF_TOLERANCE, 0},
+{165, 1234530539u, 3u, 1259696363u, 0, LDEXPF_TOLERANCE, 0},
+{166, 3306328852u, 87u, 4036137748u, 0, LDEXPF_TOLERANCE, 0},
+{167, 1131927531u, 0u, 1131927531u, 0, LDEXPF_TOLERANCE, 0},
+{168, 3449879391u, 0u, 3449879391u, 0, LDEXPF_TOLERANCE, 0},
+{169, 970094304u, 4294911386u, 0u, 0, LDEXPF_TOLERANCE, 0},
+{170, 1125551064u, 4294949017u, 0u, 0, LDEXPF_TOLERANCE, 0},
+{171, 1198917460u, 2607028085u, 0u, 0, LDEXPF_TOLERANCE, 0},
+{172, 3201603336u, 0u, 3201603336u, 0, LDEXPF_TOLERANCE, 0},
+{173, 921940707u, 0u, 921940707u, 0, LDEXPF_TOLERANCE, 0},
+{174, 1091906532u, 0u, 1091906532u, 0, LDEXPF_TOLERANCE, 0},
+{175, 1276853215u, 0u, 1276853215u, 0, LDEXPF_TOLERANCE, 0},
+{176, 3360170117u, 0u, 3360170117u, 0, LDEXPF_TOLERANCE, 0},
+{177, 1064364381u, 0u, 1064364381u, 0, LDEXPF_TOLERANCE, 0},
+{178, 1268744779u, 4294952694u, 0u, 0, LDEXPF_TOLERANCE, 0},
+{179, 1165195428u, 4292538760u, 0u, 0, LDEXPF_TOLERANCE, 0},
+{180, 3044092739u, 30u, 3295750979u, 0, LDEXPF_TOLERANCE, 0},
+{181, 3247790039u, 0u, 3247790039u, 0, LDEXPF_TOLERANCE, 0},
+{182, 3215244648u, 4u, 3248799080u, 0, LDEXPF_TOLERANCE, 0},
+{183, 3095275931u, 0u, 3095275931u, 0, LDEXPF_TOLERANCE, 0},
+{184, 3059688264u, 77u, 3705611080u, 0, LDEXPF_TOLERANCE, 0},
+{185, 1212717473u, 0u, 1212717473u, 0, LDEXPF_TOLERANCE, 0},
+{186, 3028857014u, 0u, 3028857014u, 0, LDEXPF_TOLERANCE, 0},
+{187, 1044867873u, 4294528232u, 0u, 0, LDEXPF_TOLERANCE, 0},
+{188, 1089986803u, 3370664605u, 0u, 0, LDEXPF_TOLERANCE, 0},
+{189, 1296314700u, 0u, 1296314700u, 0, LDEXPF_TOLERANCE, 0},
+{190, 1251462432u, 0u, 1251462432u, 0, LDEXPF_TOLERANCE, 0},
+{191, 3485236902u, 0u, 3485236902u, 0, LDEXPF_TOLERANCE, 0},
+{192, 3080852256u, 0u, 3080852256u, 0, LDEXPF_TOLERANCE, 0},
+{193, 1022211242u, 0u, 1022211242u, 0, LDEXPF_TOLERANCE, 0},
+{194, 884661176u, 0u, 884661176u, 0, LDEXPF_TOLERANCE, 0},
+{195, 989762529u, 4294733601u, 0u, 0, LDEXPF_TOLERANCE, 0},
+{196, 1295475718u, 0u, 1295475718u, 0, LDEXPF_TOLERANCE, 0},
+{197, 1002632518u, 4294950696u, 0u, 0, LDEXPF_TOLERANCE, 0},
+{198, 3158912530u, 0u, 3158912530u, 0, LDEXPF_TOLERANCE, 0},
+{199, 3138037576u, 0u, 3138037576u, 0, LDEXPF_TOLERANCE, 0},
+{200, 999985470u, 4282999218u, 0u, 0, LDEXPF_TOLERANCE, 0},
+{201, 1189421739u, 0u, 1189421739u, 0, LDEXPF_TOLERANCE, 0},
+{202, 3075182644u, 0u, 3075182644u, 0, LDEXPF_TOLERANCE, 0},
+{203, 1164046161u, 4139845439u, 0u, 0, LDEXPF_TOLERANCE, 0},
+{204, 1292596266u, 0u, 1292596266u, 0, LDEXPF_TOLERANCE, 0},
+{205, 1314644642u, 0u, 1314644642u, 0, LDEXPF_TOLERANCE, 0},
+{206, 3399813173u, 0u, 3399813173u, 0, LDEXPF_TOLERANCE, 0},
+{207, 948775569u, 2159002590u, 0u, 0, LDEXPF_TOLERANCE, 0},
+{208, 1034611395u, 0u, 1034611395u, 0, LDEXPF_TOLERANCE, 0},
+{209, 1181604787u, 4294717096u, 0u, 0, LDEXPF_TOLERANCE, 0},
+{210, 3059042077u, 0u, 3059042077u, 0, LDEXPF_TOLERANCE, 0},
+{211, 1043691622u, 4288164501u, 0u, 0, LDEXPF_TOLERANCE, 0},
+{212, 1314588083u, 0u, 1314588083u, 0, LDEXPF_TOLERANCE, 0},
+{213, 3141533334u, 0u, 3141533334u, 0, LDEXPF_TOLERANCE, 0},
+{214, 3400949680u, 0u, 3400949680u, 0, LDEXPF_TOLERANCE, 0},
+{215, 1110424755u, 0u, 1110424755u, 0, LDEXPF_TOLERANCE, 0},
+{216, 3189917167u, 0u, 3189917167u, 0, LDEXPF_TOLERANCE, 0},
+{217, 969804941u, 4294836255u, 0u, 0, LDEXPF_TOLERANCE, 0},
+{218, 934308144u, 0u, 934308144u, 0, LDEXPF_TOLERANCE, 0},
+{219, 1156767533u, 7u, 1215487789u, 0, LDEXPF_TOLERANCE, 0},
+{220, 994934087u, 0u, 994934087u, 0, LDEXPF_TOLERANCE, 0},
+{221, 3185240099u, 122u, 4208650275u, 0, LDEXPF_TOLERANCE, 0},
+{222, 1212129651u, 0u, 1212129651u, 0, LDEXPF_TOLERANCE, 0},
+{223, 3125775254u, 0u, 3125775254u, 0, LDEXPF_TOLERANCE, 0},
+{224, 1037464105u, 0u, 1037464105u, 0, LDEXPF_TOLERANCE, 0},
+{225, 918212457u, 0u, 918212457u, 0, LDEXPF_TOLERANCE, 0},
+{226, 1337315179u, 3421796258u, 0u, 0, LDEXPF_TOLERANCE, 0},
+{227, 1131358407u, 4294955130u, 0u, 0, LDEXPF_TOLERANCE, 0},
+{228, 1156517523u, 4294914801u, 0u, 0, LDEXPF_TOLERANCE, 0},
+{229, 3210802820u, 0u, 3210802820u, 0, LDEXPF_TOLERANCE, 0},
+{230, 3468429030u, 4294967266u, 3216770790u, 0, LDEXPF_TOLERANCE, 0},
+{231, 3055299953u, 0u, 3055299953u, 0, LDEXPF_TOLERANCE, 0},
+{232, 959956547u, 0u, 959956547u, 0, LDEXPF_TOLERANCE, 0},
+{233, 1039917375u, 117u, 2021384511u, 0, LDEXPF_TOLERANCE, 0},
+{234, 1311016004u, 4294941884u, 0u, 0, LDEXPF_TOLERANCE, 0},
+{235, 1128016396u, 27u, 1354508812u, 0, LDEXPF_TOLERANCE, 0},
+{236, 3210335769u, 0u, 3210335769u, 0, LDEXPF_TOLERANCE, 0},
+{237, 1206054701u, 0u, 1206054701u, 0, LDEXPF_TOLERANCE, 0},
+{238, 1213609983u, 0u, 1213609983u, 0, LDEXPF_TOLERANCE, 0},
+{239, 1246902946u, 0u, 1246902946u, 0, LDEXPF_TOLERANCE, 0},
+{240, 995850843u, 3845036501u, 0u, 0, LDEXPF_TOLERANCE, 0},
+{241, 1029480631u, 0u, 1029480631u, 0, LDEXPF_TOLERANCE, 0},
+{242, 3153568584u, 0u, 3153568584u, 0, LDEXPF_TOLERANCE, 0},
+{243, 3384988527u, 0u, 3384988527u, 0, LDEXPF_TOLERANCE, 0},
+{244, 1317696241u, 0u, 1317696241u, 0, LDEXPF_TOLERANCE, 0},
+{245, 3341877624u, 0u, 3341877624u, 0, LDEXPF_TOLERANCE, 0},
+{246, 1228636133u, 0u, 1228636133u, 0, LDEXPF_TOLERANCE, 0},
+{247, 1207246237u, 0u, 1207246237u, 0, LDEXPF_TOLERANCE, 0},
+{248, 1165476654u, 4294877038u, 0u, 0, LDEXPF_TOLERANCE, 0},
+{249, 1215278023u, 0u, 1215278023u, 0, LDEXPF_TOLERANCE, 0},
+{250, 1017239798u, 4167373558u, 0u, 0, LDEXPF_TOLERANCE, 0},
+{251, 1149651309u, 0u, 1149651309u, 0, LDEXPF_TOLERANCE, 0},
+{252, 1111943722u, 0u, 1111943722u, 0, LDEXPF_TOLERANCE, 0},
+{253, 1189849849u, 4293652457u, 0u, 0, LDEXPF_TOLERANCE, 0},
+{254, 3204848496u, 0u, 3204848496u, 0, LDEXPF_TOLERANCE, 0},
+{255, 1249758327u, 0u, 1249758327u, 0, LDEXPF_TOLERANCE, 0},
+{256, 3215981890u, 4294967286u, 3132095810u, 0, LDEXPF_TOLERANCE, 0},
+{257, 1266687209u, 0u, 1266687209u, 0, LDEXPF_TOLERANCE, 0},
+{258, 943645710u, 0u, 943645710u, 0, LDEXPF_TOLERANCE, 0},
+{259, 935847271u, 1u, 944235879u, 0, LDEXPF_TOLERANCE, 0},
+{260, 3410336089u, 47u, 3804600665u, 0, LDEXPF_TOLERANCE, 0},
+{261, 3059263153u, 0u, 3059263153u, 0, LDEXPF_TOLERANCE, 0},
+{262, 3353679791u, 0u, 3353679791u, 0, LDEXPF_TOLERANCE, 0},
+{263, 1001823878u, 0u, 1001823878u, 0, LDEXPF_TOLERANCE, 0},
+{264, 1009130212u, 0u, 1009130212u, 0, LDEXPF_TOLERANCE, 0},
+{265, 3367127535u, 0u, 3367127535u, 0, LDEXPF_TOLERANCE, 0},
+{266, 1032920919u, 3981458897u, 0u, 0, LDEXPF_TOLERANCE, 0},
+{267, 3281952870u, 0u, 3281952870u, 0, LDEXPF_TOLERANCE, 0},
+{268, 1237868497u, 0u, 1237868497u, 0, LDEXPF_TOLERANCE, 0},
+{269, 1153753924u, 4294958733u, 0u, 0, LDEXPF_TOLERANCE, 0},
+{270, 1120261759u, 0u, 1120261759u, 0, LDEXPF_TOLERANCE, 0},
+{271, 3349595986u, 4294967271u, 3139880786u, 0, LDEXPF_TOLERANCE, 0},
+{272, 1087750238u, 16u, 1221967966u, 0, LDEXPF_TOLERANCE, 0},
+{273, 1066116543u, 0u, 1066116543u, 0, LDEXPF_TOLERANCE, 0},
+{274, 3210898034u, 0u, 3210898034u, 0, LDEXPF_TOLERANCE, 0},
+{275, 1030612298u, 4294908239u, 0u, 0, LDEXPF_TOLERANCE, 0},
+{276, 1186234578u, 0u, 1186234578u, 0, LDEXPF_TOLERANCE, 0},
+{277, 1331680743u, 0u, 1331680743u, 0, LDEXPF_TOLERANCE, 0},
+{278, 1045232522u, 4294967290u, 994900874u, 0, LDEXPF_TOLERANCE, 0},
+{279, 3119858470u, 0u, 3119858470u, 0, LDEXPF_TOLERANCE, 0},
+{280, 3349432725u, 0u, 3349432725u, 0, LDEXPF_TOLERANCE, 0},
+{281, 912423027u, 0u, 912423027u, 0, LDEXPF_TOLERANCE, 0},
+{282, 3194674746u, 0u, 3194674746u, 0, LDEXPF_TOLERANCE, 0},
+{283, 965402291u, 0u, 965402291u, 0, LDEXPF_TOLERANCE, 0},
+{284, 1133410485u, 4294951516u, 0u, 0, LDEXPF_TOLERANCE, 0},
+{285, 3136790322u, 7u, 3195510578u, 0, LDEXPF_TOLERANCE, 0},
+{286, 3369970587u, 0u, 3369970587u, 0, LDEXPF_TOLERANCE, 0},
+{287, 1270451568u, 0u, 1270451568u, 0, LDEXPF_TOLERANCE, 0},
+{288, 989498922u, 0u, 989498922u, 0, LDEXPF_TOLERANCE, 0},
+{289, 1280215674u, 0u, 1280215674u, 0, LDEXPF_TOLERANCE, 0},
+{290, 1171873518u, 0u, 1171873518u, 0, LDEXPF_TOLERANCE, 0},
+{291, 3298258100u, 0u, 3298258100u, 0, LDEXPF_TOLERANCE, 0},
+{292, 3415208824u, 0u, 3415208824u, 0, LDEXPF_TOLERANCE, 0},
+{293, 1001897182u, 0u, 1001897182u, 0, LDEXPF_TOLERANCE, 0},
+{294, 3152777939u, 4294967281u, 3026948819u, 0, LDEXPF_TOLERANCE, 0},
+{295, 985903305u, 4294945424u, 0u, 0, LDEXPF_TOLERANCE, 0},
+{296, 3357328848u, 0u, 3357328848u, 0, LDEXPF_TOLERANCE, 0},
+{297, 982612185u, 0u, 982612185u, 0, LDEXPF_TOLERANCE, 0},
+{298, 1144755661u, 0u, 1144755661u, 0, LDEXPF_TOLERANCE, 0},
+{299, 898467286u, 0u, 898467286u, 0, LDEXPF_TOLERANCE, 0},
+{300, 3364525678u, 0u, 3364525678u, 0, LDEXPF_TOLERANCE, 0},
+{301, 3146660041u, 0u, 3146660041u, 0, LDEXPF_TOLERANCE, 0},
+{302, 3467121799u, 0u, 3467121799u, 0, LDEXPF_TOLERANCE, 0},
+{303, 1151257041u, 0u, 1151257041u, 0, LDEXPF_TOLERANCE, 0},
+{304, 3097873255u, 4294967295u, 3089484647u, 0, LDEXPF_TOLERANCE, 0},
+{305, 3130670309u, 0u, 3130670309u, 0, LDEXPF_TOLERANCE, 0},
+{306, 1017573824u, 0u, 1017573824u, 0, LDEXPF_TOLERANCE, 0},
+{307, 1258369714u, 3364363284u, 0u, 0, LDEXPF_TOLERANCE, 0},
+{308, 1216602683u, 4294468761u, 0u, 0, LDEXPF_TOLERANCE, 0},
+{309, 1071940738u, 4294963632u, 0u, 0, LDEXPF_TOLERANCE, 0},
+{310, 922601356u, 4294937447u, 0u, 0, LDEXPF_TOLERANCE, 0},
+{311, 3357177805u, 5u, 3399120845u, 0, LDEXPF_TOLERANCE, 0},
+{312, 3049120080u, 0u, 3049120080u, 0, LDEXPF_TOLERANCE, 0},
+{313, 1153863660u, 0u, 1153863660u, 0, LDEXPF_TOLERANCE, 0},
+{314, 3034243695u, 0u, 3034243695u, 0, LDEXPF_TOLERANCE, 0},
+{315, 1249365132u, 4294967060u, 0u, 0, LDEXPF_TOLERANCE, 0},
+{316, 3046215730u, 0u, 3046215730u, 0, LDEXPF_TOLERANCE, 0},
+{317, 3047251716u, 8u, 3114360580u, 0, LDEXPF_TOLERANCE, 0},
+{318, 1297708818u, 0u, 1297708818u, 0, LDEXPF_TOLERANCE, 0},
+{319, 3161606610u, 0u, 3161606610u, 0, LDEXPF_TOLERANCE, 0},
+{320, 888030585u, 0u, 888030585u, 0, LDEXPF_TOLERANCE, 0},
+{321, 1043442869u, 4294963715u, 0u, 0, LDEXPF_TOLERANCE, 0},
+{322, 3400348640u, 0u, 3400348640u, 0, LDEXPF_TOLERANCE, 0},
+{323, 1250249095u, 1u, 1258637703u, 0, LDEXPF_TOLERANCE, 0},
+{324, 3020883322u, 0u, 3020883322u, 0, LDEXPF_TOLERANCE, 0},
+{325, 1215968622u, 2531374040u, 0u, 0, LDEXPF_TOLERANCE, 0},
+{326, 3202319550u, 0u, 3202319550u, 0, LDEXPF_TOLERANCE, 0},
+{327, 3061638260u, 0u, 3061638260u, 0, LDEXPF_TOLERANCE, 0},
+{328, 1025404104u, 1u, 1033792712u, 0, LDEXPF_TOLERANCE, 0},
+{329, 3138086437u, 0u, 3138086437u, 0, LDEXPF_TOLERANCE, 0},
+{330, 3099671635u, 4294967295u, 3091283027u, 0, LDEXPF_TOLERANCE, 0},
+{331, 3068014841u, 0u, 3068014841u, 0, LDEXPF_TOLERANCE, 0},
+{332, 1252237719u, 105u, 2133041559u, 0, LDEXPF_TOLERANCE, 0},
+{333, 3082454432u, 0u, 3082454432u, 0, LDEXPF_TOLERANCE, 0},
+{334, 1099710167u, 0u, 1099710167u, 0, LDEXPF_TOLERANCE, 0},
+{335, 1282110851u, 0u, 1282110851u, 0, LDEXPF_TOLERANCE, 0},
+{336, 1123357102u, 4294966999u, 0u, 0, LDEXPF_TOLERANCE, 0},
+{337, 1106837025u, 0u, 1106837025u, 0, LDEXPF_TOLERANCE, 0},
+{338, 1253017688u, 0u, 1253017688u, 0, LDEXPF_TOLERANCE, 0},
+{339, 1108543194u, 4294966999u, 0u, 0, LDEXPF_TOLERANCE, 0},
+{340, 3305715025u, 0u, 3305715025u, 0, LDEXPF_TOLERANCE, 0},
+{341, 1266928623u, 0u, 1266928623u, 0, LDEXPF_TOLERANCE, 0},
+{342, 3438080027u, 0u, 3438080027u, 0, LDEXPF_TOLERANCE, 0},
+{343, 3344574751u, 0u, 3344574751u, 0, LDEXPF_TOLERANCE, 0},
+{344, 1152416724u, 0u, 1152416724u, 0, LDEXPF_TOLERANCE, 0},
+{345, 3263310567u, 0u, 3263310567u, 0, LDEXPF_TOLERANCE, 0},
+{346, 1000313118u, 0u, 1000313118u, 0, LDEXPF_TOLERANCE, 0},
+{347, 972485427u, 131u, 2071393075u, 0, LDEXPF_TOLERANCE, 0},
+{348, 1278946388u, 0u, 1278946388u, 0, LDEXPF_TOLERANCE, 0},
+{349, 947914771u, 0u, 947914771u, 0, LDEXPF_TOLERANCE, 0},
+{350, 3167730654u, 0u, 3167730654u, 0, LDEXPF_TOLERANCE, 0},
+{351, 3232726036u, 0u, 3232726036u, 0, LDEXPF_TOLERANCE, 0},
+{352, 1297190916u, 0u, 1297190916u, 0, LDEXPF_TOLERANCE, 0},
+{353, 1277649137u, 0u, 1277649137u, 0, LDEXPF_TOLERANCE, 0},
+{354, 3090306474u, 0u, 3090306474u, 0, LDEXPF_TOLERANCE, 0},
+{355, 3244032016u, 0u, 3244032016u, 0, LDEXPF_TOLERANCE, 0},
+{356, 3033122376u, 0u, 3033122376u, 0, LDEXPF_TOLERANCE, 0},
+{357, 3317196817u, 0u, 3317196817u, 0, LDEXPF_TOLERANCE, 0},
+{358, 3374748510u, 0u, 3374748510u, 0, LDEXPF_TOLERANCE, 0},
+{359, 3345634950u, 0u, 3345634950u, 0, LDEXPF_TOLERANCE, 0},
+{360, 3189860276u, 0u, 3189860276u, 0, LDEXPF_TOLERANCE, 0},
+{361, 3396917283u, 0u, 3396917283u, 0, LDEXPF_TOLERANCE, 0},
+{362, 3317032737u, 0u, 3317032737u, 0, LDEXPF_TOLERANCE, 0},
+{363, 1306520561u, 0u, 1306520561u, 0, LDEXPF_TOLERANCE, 0},
+{364, 1314936356u, 0u, 1314936356u, 0, LDEXPF_TOLERANCE, 0},
+{365, 3085636260u, 33u, 3362460324u, 0, LDEXPF_TOLERANCE, 0},
+{366, 3182540197u, 0u, 3182540197u, 0, LDEXPF_TOLERANCE, 0},
+{367, 3349005404u, 0u, 3349005404u, 0, LDEXPF_TOLERANCE, 0},
+{368, 1053387478u, 0u, 1053387478u, 0, LDEXPF_TOLERANCE, 0},
+{369, 3136364836u, 0u, 3136364836u, 0, LDEXPF_TOLERANCE, 0},
+{370, 1112891928u, 0u, 1112891928u, 0, LDEXPF_TOLERANCE, 0},
+{371, 893449284u, 0u, 893449284u, 0, LDEXPF_TOLERANCE, 0},
+{372, 892311459u, 14u, 1009751971u, 0, LDEXPF_TOLERANCE, 0},
+{373, 1190105283u, 0u, 1190105283u, 0, LDEXPF_TOLERANCE, 0},
+{374, 1043025031u, 0u, 1043025031u, 0, LDEXPF_TOLERANCE, 0},
+{375, 3410531037u, 0u, 3410531037u, 0, LDEXPF_TOLERANCE, 0},
+{376, 3125834184u, 0u, 3125834184u, 0, LDEXPF_TOLERANCE, 0},
+{377, 902318189u, 0u, 902318189u, 0, LDEXPF_TOLERANCE, 0},
+{378, 3213624815u, 0u, 3213624815u, 0, LDEXPF_TOLERANCE, 0},
+{379, 1120888322u, 5u, 1162831362u, 0, LDEXPF_TOLERANCE, 0},
+{380, 1315217243u, 4291026624u, 0u, 0, LDEXPF_TOLERANCE, 0},
+{381, 3137758475u, 0u, 3137758475u, 0, LDEXPF_TOLERANCE, 0},
+{382, 1040617590u, 0u, 1040617590u, 0, LDEXPF_TOLERANCE, 0},
+{383, 955384253u, 4294910624u, 0u, 0, LDEXPF_TOLERANCE, 0},
+{384, 904255535u, 0u, 904255535u, 0, LDEXPF_TOLERANCE, 0},
+{385, 1022984119u, 0u, 1022984119u, 0, LDEXPF_TOLERANCE, 0},
+{386, 997362368u, 0u, 997362368u, 0, LDEXPF_TOLERANCE, 0},
+{387, 900933520u, 19u, 1060317072u, 0, LDEXPF_TOLERANCE, 0},
+{388, 1039827284u, 1u, 1048215892u, 0, LDEXPF_TOLERANCE, 0},
+{389, 1021564080u, 0u, 1021564080u, 0, LDEXPF_TOLERANCE, 0},
+{390, 3458669745u, 0u, 3458669745u, 0, LDEXPF_TOLERANCE, 0},
+{391, 1040711112u, 4294967293u, 1015545288u, 0, LDEXPF_TOLERANCE, 0},
+{392, 1134528351u, 4294638880u, 0u, 0, LDEXPF_TOLERANCE, 0},
+{393, 1133689539u, 1u, 1142078147u, 0, LDEXPF_TOLERANCE, 0},
+{394, 3415502662u, 0u, 3415502662u, 0, LDEXPF_TOLERANCE, 0},
+{395, 954999730u, 0u, 954999730u, 0, LDEXPF_TOLERANCE, 0},
+{396, 1066157309u, 4294967285u, 973882621u, 0, LDEXPF_TOLERANCE, 0},
+{397, 940437609u, 0u, 940437609u, 0, LDEXPF_TOLERANCE, 0},
+{398, 3064200154u, 0u, 3064200154u, 0, LDEXPF_TOLERANCE, 0},
+{399, 1023889593u, 0u, 1023889593u, 0, LDEXPF_TOLERANCE, 0},
+{400, 1219052056u, 4294526211u, 0u, 0, LDEXPF_TOLERANCE, 0},
+{401, 3372118621u, 0u, 3372118621u, 0, LDEXPF_TOLERANCE, 0},
+{402, 3146190320u, 0u, 3146190320u, 0, LDEXPF_TOLERANCE, 0},
+{403, 1299683827u, 0u, 1299683827u, 0, LDEXPF_TOLERANCE, 0},
+{404, 3064155399u, 0u, 3064155399u, 0, LDEXPF_TOLERANCE, 0},
+{405, 3040314717u, 1u, 3048703325u, 0, LDEXPF_TOLERANCE, 0},
+{406, 1229268598u, 1u, 1237657206u, 0, LDEXPF_TOLERANCE, 0},
+{407, 3184078812u, 0u, 3184078812u, 0, LDEXPF_TOLERANCE, 0},
+{408, 1086717248u, 4256439624u, 0u, 0, LDEXPF_TOLERANCE, 0},
+{409, 3434884607u, 0u, 3434884607u, 0, LDEXPF_TOLERANCE, 0},
+{410, 3464955606u, 0u, 3464955606u, 0, LDEXPF_TOLERANCE, 0},
+{411, 1025278524u, 0u, 1025278524u, 0, LDEXPF_TOLERANCE, 0},
+{412, 1242829722u, 4294967290u, 1192498074u, 0, LDEXPF_TOLERANCE, 0},
+{413, 3075149137u, 76u, 3712683345u, 0, LDEXPF_TOLERANCE, 0},
+{414, 1246019790u, 0u, 1246019790u, 0, LDEXPF_TOLERANCE, 0},
+{415, 1136052740u, 4294967282u, 1018612228u, 0, LDEXPF_TOLERANCE, 0},
+{416, 1069009211u, 0u, 1069009211u, 0, LDEXPF_TOLERANCE, 0},
+{417, 1015670780u, 20u, 1183442940u, 0, LDEXPF_TOLERANCE, 0},
+{418, 1012543234u, 70u, 1599745794u, 0, LDEXPF_TOLERANCE, 0},
+{419, 1087942795u, 4294961657u, 0u, 0, LDEXPF_TOLERANCE, 0},
+{420, 3426365713u, 0u, 3426365713u, 0, LDEXPF_TOLERANCE, 0},
+{421, 3283555717u, 0u, 3283555717u, 0, LDEXPF_TOLERANCE, 0},
+{422, 3381255420u, 0u, 3381255420u, 0, LDEXPF_TOLERANCE, 0},
+{423, 3388772093u, 0u, 3388772093u, 0, LDEXPF_TOLERANCE, 0},
+{424, 1319200415u, 4293050361u, 0u, 0, LDEXPF_TOLERANCE, 0},
+{425, 1279324488u, 4294967293u, 1254158664u, 0, LDEXPF_TOLERANCE, 0},
+{426, 3217795424u, 0u, 3217795424u, 0, LDEXPF_TOLERANCE, 0},
+{427, 1246947517u, 6u, 1297279165u, 0, LDEXPF_TOLERANCE, 0},
+{428, 3396723577u, 0u, 3396723577u, 0, LDEXPF_TOLERANCE, 0},
+{429, 3433761025u, 0u, 3433761025u, 0, LDEXPF_TOLERANCE, 0},
+{430, 3201187455u, 0u, 3201187455u, 0, LDEXPF_TOLERANCE, 0},
+{431, 3083019343u, 0u, 3083019343u, 0, LDEXPF_TOLERANCE, 0},
+{432, 3042018375u, 0u, 3042018375u, 0, LDEXPF_TOLERANCE, 0},
+{433, 1082862511u, 0u, 1082862511u, 0, LDEXPF_TOLERANCE, 0},
+{434, 1341821683u, 0u, 1341821683u, 0, LDEXPF_TOLERANCE, 0},
+{435, 1079061705u, 0u, 1079061705u, 0, LDEXPF_TOLERANCE, 0},
+{436, 1105291533u, 3424974780u, 0u, 0, LDEXPF_TOLERANCE, 0},
+{437, 1016023520u, 4294967293u, 990857696u, 0, LDEXPF_TOLERANCE, 0},
+{438, 1156767169u, 0u, 1156767169u, 0, LDEXPF_TOLERANCE, 0},
+{439, 3077020499u, 0u, 3077020499u, 0, LDEXPF_TOLERANCE, 0},
+{440, 1104284039u, 0u, 1104284039u, 0, LDEXPF_TOLERANCE, 0},
+{441, 1093697541u, 0u, 1093697541u, 0, LDEXPF_TOLERANCE, 0},
+{442, 3179003144u, 37u, 3489381640u, 0, LDEXPF_TOLERANCE, 0},
+{443, 1094115255u, 0u, 1094115255u, 0, LDEXPF_TOLERANCE, 0},
+{444, 882878091u, 0u, 882878091u, 0, LDEXPF_TOLERANCE, 0},
+{445, 1098662266u, 0u, 1098662266u, 0, LDEXPF_TOLERANCE, 0},
+{446, 927582555u, 0u, 927582555u, 0, LDEXPF_TOLERANCE, 0},
+{447, 3111440310u, 0u, 3111440310u, 0, LDEXPF_TOLERANCE, 0},
+{448, 3476083859u, 0u, 3476083859u, 0, LDEXPF_TOLERANCE, 0},
+{449, 3038754840u, 0u, 3038754840u, 0, LDEXPF_TOLERANCE, 0},
+{450, 3464546616u, 0u, 3464546616u, 0, LDEXPF_TOLERANCE, 0},
+{451, 1002542205u, 0u, 1002542205u, 0, LDEXPF_TOLERANCE, 0},
+{452, 3443552129u, 0u, 3443552129u, 0, LDEXPF_TOLERANCE, 0},
+{453, 1287620154u, 0u, 1287620154u, 0, LDEXPF_TOLERANCE, 0},
+{454, 3073260205u, 0u, 3073260205u, 0, LDEXPF_TOLERANCE, 0},
+{455, 1245702957u, 0u, 1245702957u, 0, LDEXPF_TOLERANCE, 0},
+{456, 3087802274u, 0u, 3087802274u, 0, LDEXPF_TOLERANCE, 0},
+{457, 3415763001u, 0u, 3415763001u, 0, LDEXPF_TOLERANCE, 0},
+{458, 3026311911u, 0u, 3026311911u, 0, LDEXPF_TOLERANCE, 0},
+{459, 1198307901u, 68u, 1768733245u, 0, LDEXPF_TOLERANCE, 0},
+{460, 922255363u, 0u, 922255363u, 0, LDEXPF_TOLERANCE, 0},
+{461, 1113104661u, 0u, 1113104661u, 0, LDEXPF_TOLERANCE, 0},
+{462, 1136714348u, 0u, 1136714348u, 0, LDEXPF_TOLERANCE, 0},
+{463, 948856035u, 0u, 948856035u, 0, LDEXPF_TOLERANCE, 0},
+{464, 1062512367u, 4294967293u, 1037346543u, 0, LDEXPF_TOLERANCE, 0},
+{465, 3486907092u, 0u, 3486907092u, 0, LDEXPF_TOLERANCE, 0},
+{466, 1162027071u, 4294964303u, 0u, 0, LDEXPF_TOLERANCE, 0},
+{467, 1034561811u, 0u, 1034561811u, 0, LDEXPF_TOLERANCE, 0},
+{468, 3271615417u, 0u, 3271615417u, 0, LDEXPF_TOLERANCE, 0},
+{469, 1177157787u, 0u, 1177157787u, 0, LDEXPF_TOLERANCE, 0},
+{470, 3196144817u, 0u, 3196144817u, 0, LDEXPF_TOLERANCE, 0},
+{471, 3432084552u, 0u, 3432084552u, 0, LDEXPF_TOLERANCE, 0},
+{472, 1309658335u, 0u, 1309658335u, 0, LDEXPF_TOLERANCE, 0},
+{473, 1226494979u, 0u, 1226494979u, 0, LDEXPF_TOLERANCE, 0},
+{474, 3460699001u, 0u, 3460699001u, 0, LDEXPF_TOLERANCE, 0},
+{475, 3079231719u, 0u, 3079231719u, 0, LDEXPF_TOLERANCE, 0},
+{476, 3093951884u, 0u, 3093951884u, 0, LDEXPF_TOLERANCE, 0},
+{477, 1204196034u, 4294966040u, 0u, 0, LDEXPF_TOLERANCE, 0},
+{478, 3459877411u, 0u, 3459877411u, 0, LDEXPF_TOLERANCE, 0},
+{479, 1161439847u, 0u, 1161439847u, 0, LDEXPF_TOLERANCE, 0},
+{480, 908663107u, 0u, 908663107u, 0, LDEXPF_TOLERANCE, 0},
+{481, 1084378658u, 0u, 1084378658u, 0, LDEXPF_TOLERANCE, 0},
+{482, 3022828828u, 0u, 3022828828u, 0, LDEXPF_TOLERANCE, 0},
+{483, 1226473697u, 0u, 1226473697u, 0, LDEXPF_TOLERANCE, 0},
+{484, 3468040845u, 0u, 3468040845u, 0, LDEXPF_TOLERANCE, 0},
+{485, 1178825761u, 54u, 1631810593u, 0, LDEXPF_TOLERANCE, 0},
+{486, 3059266302u, 0u, 3059266302u, 0, LDEXPF_TOLERANCE, 0},
+{487, 3337652712u, 0u, 3337652712u, 0, LDEXPF_TOLERANCE, 0},
+{488, 1184753508u, 0u, 1184753508u, 0, LDEXPF_TOLERANCE, 0},
+{489, 996404791u, 4294853343u, 0u, 0, LDEXPF_TOLERANCE, 0},
+{490, 1188439315u, 55u, 1649812755u, 0, LDEXPF_TOLERANCE, 0},
+{491, 906557513u, 0u, 906557513u, 0, LDEXPF_TOLERANCE, 0},
+{492, 916831283u, 0u, 916831283u, 0, LDEXPF_TOLERANCE, 0},
+{493, 996786317u, 0u, 996786317u, 0, LDEXPF_TOLERANCE, 0},
+{494, 3461635065u, 0u, 3461635065u, 0, LDEXPF_TOLERANCE, 0},
+{495, 3290079438u, 0u, 3290079438u, 0, LDEXPF_TOLERANCE, 0},
+{496, 3350690327u, 0u, 3350690327u, 0, LDEXPF_TOLERANCE, 0},
+{497, 1102061604u, 4253821380u, 0u, 0, LDEXPF_TOLERANCE, 0},
+{498, 1282351521u, 0u, 1282351521u, 0, LDEXPF_TOLERANCE, 0},
+{499, 3095256878u, 0u, 3095256878u, 0, LDEXPF_TOLERANCE, 0},
+{500, 3163373610u, 0u, 3163373610u, 0, LDEXPF_TOLERANCE, 0},
+{501, 3228793330u, 0u, 3228793330u, 0, LDEXPF_TOLERANCE, 0},
+{502, 3422194733u, 0u, 3422194733u, 0, LDEXPF_TOLERANCE, 0},
+{503, 3083885296u, 0u, 3083885296u, 0, LDEXPF_TOLERANCE, 0},
+{504, 1261940623u, 4288291120u, 0u, 0, LDEXPF_TOLERANCE, 0},
+{505, 3400603081u, 4294967290u, 3350271433u, 0, LDEXPF_TOLERANCE, 0},
+{506, 1219411812u, 0u, 1219411812u, 0, LDEXPF_TOLERANCE, 0},
+{507, 3094833770u, 0u, 3094833770u, 0, LDEXPF_TOLERANCE, 0},
+{508, 3139250800u, 0u, 3139250800u, 0, LDEXPF_TOLERANCE, 0},
+{509, 886201503u, 4294967150u, 0u, 0, LDEXPF_TOLERANCE, 0},
+{510, 3297366026u, 7u, 3356086282u, 0, LDEXPF_TOLERANCE, 0},
+{511, 1218488455u, 4294964141u, 0u, 0, LDEXPF_TOLERANCE, 0},
+{512, 3040358923u, 0u, 3040358923u, 0, LDEXPF_TOLERANCE, 0},
+{513, 3182551696u, 0u, 3182551696u, 0, LDEXPF_TOLERANCE, 0},
+{514, 1317098613u, 0u, 1317098613u, 0, LDEXPF_TOLERANCE, 0},
+{515, 3431703657u, 0u, 3431703657u, 0, LDEXPF_TOLERANCE, 0},
+{516, 3239728775u, 0u, 3239728775u, 0, LDEXPF_TOLERANCE, 0},
+{517, 3207141672u, 0u, 3207141672u, 0, LDEXPF_TOLERANCE, 0},
+{518, 3154378805u, 0u, 3154378805u, 0, LDEXPF_TOLERANCE, 0},
+{519, 3069658155u, 0u, 3069658155u, 0, LDEXPF_TOLERANCE, 0},
+{520, 3313160088u, 0u, 3313160088u, 0, LDEXPF_TOLERANCE, 0},
+{521, 1284174954u, 4180334231u, 0u, 0, LDEXPF_TOLERANCE, 0},
+{522, 1063693032u, 0u, 1063693032u, 0, LDEXPF_TOLERANCE, 0},
+{523, 1102631663u, 4290881696u, 0u, 0, LDEXPF_TOLERANCE, 0},
+{524, 968803479u, 0u, 968803479u, 0, LDEXPF_TOLERANCE, 0},
+{525, 3273080388u, 0u, 3273080388u, 0, LDEXPF_TOLERANCE, 0},
+{526, 1172529774u, 4294966405u, 0u, 0, LDEXPF_TOLERANCE, 0},
+{527, 1078478376u, 2364151806u, 0u, 0, LDEXPF_TOLERANCE, 0},
+{528, 3158855023u, 0u, 3158855023u, 0, LDEXPF_TOLERANCE, 0},
+{529, 1165177679u, 4294967097u, 0u, 0, LDEXPF_TOLERANCE, 0},
+{530, 952348506u, 4294108410u, 0u, 0, LDEXPF_TOLERANCE, 0},
+{531, 1325324763u, 0u, 1325324763u, 0, LDEXPF_TOLERANCE, 0},
+{532, 3363524213u, 0u, 3363524213u, 0, LDEXPF_TOLERANCE, 0},
+{533, 1158950321u, 1u, 1167338929u, 0, LDEXPF_TOLERANCE, 0},
+{534, 903129873u, 4272788451u, 0u, 0, LDEXPF_TOLERANCE, 0},
+{535, 3078339944u, 0u, 3078339944u, 0, LDEXPF_TOLERANCE, 0},
+{536, 1153863988u, 4229464462u, 0u, 0, LDEXPF_TOLERANCE, 0},
+{537, 1235620969u, 0u, 1235620969u, 0, LDEXPF_TOLERANCE, 0},
+{538, 1097120930u, 4294967294u, 1080343714u, 0, LDEXPF_TOLERANCE, 0},
+{539, 1147712200u, 0u, 1147712200u, 0, LDEXPF_TOLERANCE, 0},
+{540, 1124721745u, 0u, 1124721745u, 0, LDEXPF_TOLERANCE, 0},
+{541, 3261744304u, 0u, 3261744304u, 0, LDEXPF_TOLERANCE, 0},
+{542, 3303160152u, 0u, 3303160152u, 0, LDEXPF_TOLERANCE, 0},
+{543, 1335399673u, 0u, 1335399673u, 0, LDEXPF_TOLERANCE, 0},
+{544, 1072458508u, 4294404660u, 0u, 0, LDEXPF_TOLERANCE, 0},
+{545, 3303015249u, 0u, 3303015249u, 0, LDEXPF_TOLERANCE, 0},
+{546, 3252139741u, 0u, 3252139741u, 0, LDEXPF_TOLERANCE, 0},
+{547, 3468519966u, 0u, 3468519966u, 0, LDEXPF_TOLERANCE, 0},
+{548, 1006231203u, 0u, 1006231203u, 0, LDEXPF_TOLERANCE, 0},
+{549, 951554138u, 0u, 951554138u, 0, LDEXPF_TOLERANCE, 0},
+{550, 942046828u, 0u, 942046828u, 0, LDEXPF_TOLERANCE, 0},
+{551, 3255104167u, 0u, 3255104167u, 0, LDEXPF_TOLERANCE, 0},
+{552, 1155477903u, 0u, 1155477903u, 0, LDEXPF_TOLERANCE, 0},
+{553, 3273889176u, 0u, 3273889176u, 0, LDEXPF_TOLERANCE, 0},
+{554, 1228207362u, 0u, 1228207362u, 0, LDEXPF_TOLERANCE, 0},
+{555, 1290175785u, 0u, 1290175785u, 0, LDEXPF_TOLERANCE, 0},
+{556, 981908840u, 4294962938u, 0u, 0, LDEXPF_TOLERANCE, 0},
+{557, 941187647u, 33u, 1218011711u, 0, LDEXPF_TOLERANCE, 0},
+{558, 1214223128u, 4294967293u, 1189057304u, 0, LDEXPF_TOLERANCE, 0},
+{559, 3422922584u, 6u, 3473254232u, 0, LDEXPF_TOLERANCE, 0},
+{560, 3453226030u, 4294967291u, 3411282990u, 0, LDEXPF_TOLERANCE, 0},
+{561, 1078359574u, 0u, 1078359574u, 0, LDEXPF_TOLERANCE, 0},
+{562, 1029557624u, 4294965511u, 0u, 0, LDEXPF_TOLERANCE, 0},
+{563, 1207675424u, 0u, 1207675424u, 0, LDEXPF_TOLERANCE, 0},
+{564, 1028355074u, 4113313406u, 0u, 0, LDEXPF_TOLERANCE, 0},
+{565, 1248421894u, 4294582111u, 0u, 0, LDEXPF_TOLERANCE, 0},
+{566, 3353251994u, 12u, 3453915290u, 0, LDEXPF_TOLERANCE, 0},
+{567, 876926659u, 4294966792u, 0u, 0, LDEXPF_TOLERANCE, 0},
+{568, 1076752219u, 0u, 1076752219u, 0, LDEXPF_TOLERANCE, 0},
+{569, 3388531942u, 0u, 3388531942u, 0, LDEXPF_TOLERANCE, 0},
+{570, 1273395082u, 0u, 1273395082u, 0, LDEXPF_TOLERANCE, 0},
+{571, 1161241793u, 2814016219u, 0u, 0, LDEXPF_TOLERANCE, 0},
+{572, 3034494183u, 0u, 3034494183u, 0, LDEXPF_TOLERANCE, 0},
+{573, 1171318485u, 4294306215u, 0u, 0, LDEXPF_TOLERANCE, 0},
+{574, 3047748143u, 0u, 3047748143u, 0, LDEXPF_TOLERANCE, 0},
+{575, 1001216371u, 0u, 1001216371u, 0, LDEXPF_TOLERANCE, 0},
+{576, 912515889u, 2u, 929293105u, 0, LDEXPF_TOLERANCE, 0},
+{577, 3391452505u, 0u, 3391452505u, 0, LDEXPF_TOLERANCE, 0},
+{578, 3249603369u, 0u, 3249603369u, 0, LDEXPF_TOLERANCE, 0},
+{579, 1220264047u, 0u, 1220264047u, 0, LDEXPF_TOLERANCE, 0},
+{580, 3169816394u, 0u, 3169816394u, 0, LDEXPF_TOLERANCE, 0},
+{581, 3098997418u, 0u, 3098997418u, 0, LDEXPF_TOLERANCE, 0},
+{582, 3282212423u, 0u, 3282212423u, 0, LDEXPF_TOLERANCE, 0},
+{583, 3352293320u, 4294967278u, 3201298376u, 0, LDEXPF_TOLERANCE, 0},
+{584, 3296358441u, 0u, 3296358441u, 0, LDEXPF_TOLERANCE, 0},
+{585, 1197828352u, 4294967281u, 1071999232u, 0, LDEXPF_TOLERANCE, 0},
+{586, 3340510371u, 0u, 3340510371u, 0, LDEXPF_TOLERANCE, 0},
+{587, 1127109339u, 4294570975u, 0u, 0, LDEXPF_TOLERANCE, 0},
+{588, 1200599955u, 0u, 1200599955u, 0, LDEXPF_TOLERANCE, 0},
+{589, 962230977u, 0u, 962230977u, 0, LDEXPF_TOLERANCE, 0},
+{590, 3192887808u, 0u, 3192887808u, 0, LDEXPF_TOLERANCE, 0},
+{591, 3237183876u, 0u, 3237183876u, 0, LDEXPF_TOLERANCE, 0},
+{592, 939285924u, 0u, 939285924u, 0, LDEXPF_TOLERANCE, 0},
+{593, 944050180u, 3871652138u, 0u, 0, LDEXPF_TOLERANCE, 0},
+{594, 3058135703u, 0u, 3058135703u, 0, LDEXPF_TOLERANCE, 0},
+{595, 1003299981u, 0u, 1003299981u, 0, LDEXPF_TOLERANCE, 0},
+{596, 1234491880u, 4283784819u, 0u, 0, LDEXPF_TOLERANCE, 0},
+{597, 1107800421u, 0u, 1107800421u, 0, LDEXPF_TOLERANCE, 0},
+{598, 3169600404u, 0u, 3169600404u, 0, LDEXPF_TOLERANCE, 0},
+{599, 1059745845u, 0u, 1059745845u, 0, LDEXPF_TOLERANCE, 0},
+{600, 3336642868u, 0u, 3336642868u, 0, LDEXPF_TOLERANCE, 0},
+{601, 1143165709u, 0u, 1143165709u, 0, LDEXPF_TOLERANCE, 0},
+{602, 3094884021u, 0u, 3094884021u, 0, LDEXPF_TOLERANCE, 0},
+{603, 875429471u, 0u, 875429471u, 0, LDEXPF_TOLERANCE, 0},
+{604, 1191396289u, 0u, 1191396289u, 0, LDEXPF_TOLERANCE, 0},
+{605, 1228663872u, 0u, 1228663872u, 0, LDEXPF_TOLERANCE, 0},
+{606, 1070971843u, 0u, 1070971843u, 0, LDEXPF_TOLERANCE, 0},
+{607, 3364208877u, 0u, 3364208877u, 0, LDEXPF_TOLERANCE, 0},
+{608, 3181522772u, 0u, 3181522772u, 0, LDEXPF_TOLERANCE, 0},
+{609, 1243001035u, 0u, 1243001035u, 0, LDEXPF_TOLERANCE, 0},
+{610, 1341514497u, 0u, 1341514497u, 0, LDEXPF_TOLERANCE, 0},
+{611, 880168139u, 0u, 880168139u, 0, LDEXPF_TOLERANCE, 0},
+{612, 3304288294u, 0u, 3304288294u, 0, LDEXPF_TOLERANCE, 0},
+{613, 1026899743u, 0u, 1026899743u, 0, LDEXPF_TOLERANCE, 0},
+{614, 999981605u, 0u, 999981605u, 0, LDEXPF_TOLERANCE, 0},
+{615, 997294135u, 0u, 997294135u, 0, LDEXPF_TOLERANCE, 0},
+{616, 1021132553u, 0u, 1021132553u, 0, LDEXPF_TOLERANCE, 0},
+{617, 3209276375u, 0u, 3209276375u, 0, LDEXPF_TOLERANCE, 0},
+{618, 1202227751u, 0u, 1202227751u, 0, LDEXPF_TOLERANCE, 0},
+{619, 1009711807u, 0u, 1009711807u, 0, LDEXPF_TOLERANCE, 0},
+{620, 1220134117u, 0u, 1220134117u, 0, LDEXPF_TOLERANCE, 0},
+{621, 3479973529u, 0u, 3479973529u, 0, LDEXPF_TOLERANCE, 0},
+{622, 1064880944u, 0u, 1064880944u, 0, LDEXPF_TOLERANCE, 0},
+{623, 3155671716u, 0u, 3155671716u, 0, LDEXPF_TOLERANCE, 0},
+{624, 998312904u, 0u, 998312904u, 0, LDEXPF_TOLERANCE, 0},
+{625, 1001472780u, 0u, 1001472780u, 0, LDEXPF_TOLERANCE, 0},
+{626, 1107406396u, 0u, 1107406396u, 0, LDEXPF_TOLERANCE, 0},
+{627, 1261071232u, 0u, 1261071232u, 0, LDEXPF_TOLERANCE, 0},
+{628, 3143571932u, 0u, 3143571932u, 0, LDEXPF_TOLERANCE, 0},
+{629, 1118055178u, 0u, 1118055178u, 0, LDEXPF_TOLERANCE, 0},
+{630, 3182301130u, 0u, 3182301130u, 0, LDEXPF_TOLERANCE, 0},
+{631, 3368273682u, 0u, 3368273682u, 0, LDEXPF_TOLERANCE, 0},
+{632, 3428016856u, 0u, 3428016856u, 0, LDEXPF_TOLERANCE, 0},
+{633, 3417964312u, 0u, 3417964312u, 0, LDEXPF_TOLERANCE, 0},
+{634, 3033865687u, 0u, 3033865687u, 0, LDEXPF_TOLERANCE, 0},
+{635, 3254565724u, 0u, 3254565724u, 0, LDEXPF_TOLERANCE, 0},
+{636, 1152956913u, 0u, 1152956913u, 0, LDEXPF_TOLERANCE, 0},
+{637, 960907115u, 0u, 960907115u, 0, LDEXPF_TOLERANCE, 0},
+{638, 3193128520u, 0u, 3193128520u, 0, LDEXPF_TOLERANCE, 0},
+{639, 1342075843u, 0u, 1342075843u, 0, LDEXPF_TOLERANCE, 0},
+{640, 1285620759u, 0u, 1285620759u, 0, LDEXPF_TOLERANCE, 0},
+{641, 3194665484u, 0u, 3194665484u, 0, LDEXPF_TOLERANCE, 0},
+{642, 3367275355u, 0u, 3367275355u, 0, LDEXPF_TOLERANCE, 0},
+{643, 874952611u, 0u, 874952611u, 0, LDEXPF_TOLERANCE, 0},
+{644, 3267754884u, 0u, 3267754884u, 0, LDEXPF_TOLERANCE, 0},
+{645, 3152729489u, 0u, 3152729489u, 0, LDEXPF_TOLERANCE, 0},
+{646, 889017820u, 0u, 889017820u, 0, LDEXPF_TOLERANCE, 0},
+{647, 3299847679u, 0u, 3299847679u, 0, LDEXPF_TOLERANCE, 0},
+{648, 1247838175u, 0u, 1247838175u, 0, LDEXPF_TOLERANCE, 0},
+{649, 3320990807u, 0u, 3320990807u, 0, LDEXPF_TOLERANCE, 0},
+{650, 3050540527u, 0u, 3050540527u, 0, LDEXPF_TOLERANCE, 0},
+{651, 1201844223u, 0u, 1201844223u, 0, LDEXPF_TOLERANCE, 0},
+{652, 918937712u, 0u, 918937712u, 0, LDEXPF_TOLERANCE, 0},
+{653, 3123925950u, 0u, 3123925950u, 0, LDEXPF_TOLERANCE, 0},
+{654, 3196511197u, 0u, 3196511197u, 0, LDEXPF_TOLERANCE, 0},
+{655, 973211154u, 0u, 973211154u, 0, LDEXPF_TOLERANCE, 0},
+{656, 1255152035u, 0u, 1255152035u, 0, LDEXPF_TOLERANCE, 0},
+{657, 3232461888u, 0u, 3232461888u, 0, LDEXPF_TOLERANCE, 0},
+{658, 1229904697u, 0u, 1229904697u, 0, LDEXPF_TOLERANCE, 0},
+{659, 3190708309u, 0u, 3190708309u, 0, LDEXPF_TOLERANCE, 0},
+{660, 1062714323u, 0u, 1062714323u, 0, LDEXPF_TOLERANCE, 0},
+{661, 1266014197u, 0u, 1266014197u, 0, LDEXPF_TOLERANCE, 0},
+{662, 3358918989u, 0u, 3358918989u, 0, LDEXPF_TOLERANCE, 0},
+{663, 1197322308u, 0u, 1197322308u, 0, LDEXPF_TOLERANCE, 0},
+{664, 896467500u, 0u, 896467500u, 0, LDEXPF_TOLERANCE, 0},
+{665, 3375078440u, 0u, 3375078440u, 0, LDEXPF_TOLERANCE, 0},
+{666, 3424479544u, 0u, 3424479544u, 0, LDEXPF_TOLERANCE, 0},
+{667, 3187924230u, 0u, 3187924230u, 0, LDEXPF_TOLERANCE, 0},
+{668, 1025254314u, 0u, 1025254314u, 0, LDEXPF_TOLERANCE, 0},
+{669, 899599265u, 0u, 899599265u, 0, LDEXPF_TOLERANCE, 0},
+{670, 1298319097u, 0u, 1298319097u, 0, LDEXPF_TOLERANCE, 0},
+{671, 3211795254u, 0u, 3211795254u, 0, LDEXPF_TOLERANCE, 0},
+{672, 3346354159u, 0u, 3346354159u, 0, LDEXPF_TOLERANCE, 0},
+{673, 1200574709u, 0u, 1200574709u, 0, LDEXPF_TOLERANCE, 0},
+{674, 1271583043u, 0u, 1271583043u, 0, LDEXPF_TOLERANCE, 0},
+{675, 3082939266u, 0u, 3082939266u, 0, LDEXPF_TOLERANCE, 0},
+{676, 1310205466u, 0u, 1310205466u, 0, LDEXPF_TOLERANCE, 0},
+{677, 3363424163u, 0u, 3363424163u, 0, LDEXPF_TOLERANCE, 0},
+{678, 3480831693u, 0u, 3480831693u, 0, LDEXPF_TOLERANCE, 0},
+{679, 3076016307u, 0u, 3076016307u, 0, LDEXPF_TOLERANCE, 0},
+{680, 3203273256u, 0u, 3203273256u, 0, LDEXPF_TOLERANCE, 0},
+{681, 1015309679u, 0u, 1015309679u, 0, LDEXPF_TOLERANCE, 0},
+{682, 1131196082u, 0u, 1131196082u, 0, LDEXPF_TOLERANCE, 0},
+{683, 1045325026u, 0u, 1045325026u, 0, LDEXPF_TOLERANCE, 0},
+{684, 1065479977u, 0u, 1065479977u, 0, LDEXPF_TOLERANCE, 0},
+{685, 1189296917u, 0u, 1189296917u, 0, LDEXPF_TOLERANCE, 0},
+{686, 3189815506u, 0u, 3189815506u, 0, LDEXPF_TOLERANCE, 0},
+{687, 1080781593u, 0u, 1080781593u, 0, LDEXPF_TOLERANCE, 0},
+{688, 1311096557u, 0u, 1311096557u, 0, LDEXPF_TOLERANCE, 0},
+{689, 3038739020u, 0u, 3038739020u, 0, LDEXPF_TOLERANCE, 0},
+{690, 3214499901u, 0u, 3214499901u, 0, LDEXPF_TOLERANCE, 0},
+{691, 3138742876u, 0u, 3138742876u, 0, LDEXPF_TOLERANCE, 0},
+{692, 1321846889u, 0u, 1321846889u, 0, LDEXPF_TOLERANCE, 0},
+{693, 3271921642u, 0u, 3271921642u, 0, LDEXPF_TOLERANCE, 0},
+{694, 3085495739u, 0u, 3085495739u, 0, LDEXPF_TOLERANCE, 0},
+{695, 1109198803u, 0u, 1109198803u, 0, LDEXPF_TOLERANCE, 0},
+{696, 1112304750u, 0u, 1112304750u, 0, LDEXPF_TOLERANCE, 0},
+{697, 948750709u, 0u, 948750709u, 0, LDEXPF_TOLERANCE, 0},
+{698, 1114296298u, 0u, 1114296298u, 0, LDEXPF_TOLERANCE, 0},
+{699, 3020991237u, 0u, 3020991237u, 0, LDEXPF_TOLERANCE, 0},
+{700, 922534144u, 0u, 922534144u, 0, LDEXPF_TOLERANCE, 0},
+{701, 3310166637u, 0u, 3310166637u, 0, LDEXPF_TOLERANCE, 0},
+{702, 3155722650u, 0u, 3155722650u, 0, LDEXPF_TOLERANCE, 0},
+{703, 3427296372u, 0u, 3427296372u, 0, LDEXPF_TOLERANCE, 0},
+{704, 1151399844u, 0u, 1151399844u, 0, LDEXPF_TOLERANCE, 0},
+{705, 1120299263u, 0u, 1120299263u, 0, LDEXPF_TOLERANCE, 0},
+{706, 3040459077u, 0u, 3040459077u, 0, LDEXPF_TOLERANCE, 0},
+{707, 1103929401u, 0u, 1103929401u, 0, LDEXPF_TOLERANCE, 0},
+{708, 1152548998u, 0u, 1152548998u, 0, LDEXPF_TOLERANCE, 0},
+{709, 916942572u, 0u, 916942572u, 0, LDEXPF_TOLERANCE, 0},
+{710, 3173458455u, 0u, 3173458455u, 0, LDEXPF_TOLERANCE, 0},
+{711, 3238936406u, 0u, 3238936406u, 0, LDEXPF_TOLERANCE, 0},
+{712, 3408617686u, 0u, 3408617686u, 0, LDEXPF_TOLERANCE, 0},
+{713, 1021296799u, 0u, 1021296799u, 0, LDEXPF_TOLERANCE, 0},
+{714, 969339922u, 0u, 969339922u, 0, LDEXPF_TOLERANCE, 0},
+{715, 1314176876u, 0u, 1314176876u, 0, LDEXPF_TOLERANCE, 0},
+{716, 1337612088u, 0u, 1337612088u, 0, LDEXPF_TOLERANCE, 0},
+{717, 3332259981u, 0u, 3332259981u, 0, LDEXPF_TOLERANCE, 0},
+{718, 3108384823u, 0u, 3108384823u, 0, LDEXPF_TOLERANCE, 0},
+{719, 3220961947u, 0u, 3220961947u, 0, LDEXPF_TOLERANCE, 0},
+{720, 3064419690u, 0u, 3064419690u, 0, LDEXPF_TOLERANCE, 0},
+{721, 940691906u, 0u, 940691906u, 0, LDEXPF_TOLERANCE, 0},
+{722, 1231810213u, 0u, 1231810213u, 0, LDEXPF_TOLERANCE, 0},
+{723, 1287877759u, 0u, 1287877759u, 0, LDEXPF_TOLERANCE, 0},
+{724, 3489122735u, 0u, 3489122735u, 0, LDEXPF_TOLERANCE, 0},
+{725, 1093869145u, 0u, 1093869145u, 0, LDEXPF_TOLERANCE, 0},
+{726, 3076769896u, 0u, 3076769896u, 0, LDEXPF_TOLERANCE, 0},
+{727, 1103636269u, 0u, 1103636269u, 0, LDEXPF_TOLERANCE, 0},
+{728, 1175158938u, 0u, 1175158938u, 0, LDEXPF_TOLERANCE, 0},
+{729, 3300166369u, 0u, 3300166369u, 0, LDEXPF_TOLERANCE, 0},
+{730, 1139120919u, 0u, 1139120919u, 0, LDEXPF_TOLERANCE, 0},
+{731, 3164744879u, 0u, 3164744879u, 0, LDEXPF_TOLERANCE, 0},
+{732, 1079206005u, 0u, 1079206005u, 0, LDEXPF_TOLERANCE, 0},
+{733, 3274158582u, 0u, 3274158582u, 0, LDEXPF_TOLERANCE, 0},
+{734, 1175743586u, 0u, 1175743586u, 0, LDEXPF_TOLERANCE, 0},
+{735, 3260712581u, 0u, 3260712581u, 0, LDEXPF_TOLERANCE, 0},
+{736, 3260874736u, 0u, 3260874736u, 0, LDEXPF_TOLERANCE, 0},
+{737, 1021540545u, 0u, 1021540545u, 0, LDEXPF_TOLERANCE, 0},
+{738, 938613078u, 0u, 938613078u, 0, LDEXPF_TOLERANCE, 0},
+{739, 915371924u, 0u, 915371924u, 0, LDEXPF_TOLERANCE, 0},
+{740, 3370829512u, 0u, 3370829512u, 0, LDEXPF_TOLERANCE, 0},
+{741, 3042270922u, 0u, 3042270922u, 0, LDEXPF_TOLERANCE, 0},
+{742, 935259591u, 0u, 935259591u, 0, LDEXPF_TOLERANCE, 0},
+{743, 3022705759u, 0u, 3022705759u, 0, LDEXPF_TOLERANCE, 0},
+{744, 1077763691u, 0u, 1077763691u, 0, LDEXPF_TOLERANCE, 0},
+{745, 3479409116u, 0u, 3479409116u, 0, LDEXPF_TOLERANCE, 0},
+{746, 3153568584u, 0u, 3153568584u, 0, LDEXPF_TOLERANCE, 0},
+{747, 1023846821u, 0u, 1023846821u, 0, LDEXPF_TOLERANCE, 0},
+{748, 930761742u, 0u, 930761742u, 0, LDEXPF_TOLERANCE, 0},
+{749, 3041242545u, 0u, 3041242545u, 0, LDEXPF_TOLERANCE, 0},
+{750, 1088950833u, 0u, 1088950833u, 0, LDEXPF_TOLERANCE, 0},
+{751, 3404968330u, 0u, 3404968330u, 0, LDEXPF_TOLERANCE, 0},
+{752, 3081647766u, 0u, 3081647766u, 0, LDEXPF_TOLERANCE, 0},
+{753, 1215278023u, 0u, 1215278023u, 0, LDEXPF_TOLERANCE, 0},
+{754, 1094198050u, 0u, 1094198050u, 0, LDEXPF_TOLERANCE, 0},
+{755, 884566767u, 0u, 884566767u, 0, LDEXPF_TOLERANCE, 0},
+{756, 1248601708u, 0u, 1248601708u, 0, LDEXPF_TOLERANCE, 0},
+{757, 3392876913u, 0u, 3392876913u, 0, LDEXPF_TOLERANCE, 0},
+{758, 892549317u, 0u, 892549317u, 0, LDEXPF_TOLERANCE, 0},
+{759, 3093450711u, 0u, 3093450711u, 0, LDEXPF_TOLERANCE, 0},
+{760, 3469899047u, 0u, 3469899047u, 0, LDEXPF_TOLERANCE, 0},
+{761, 996220168u, 0u, 996220168u, 0, LDEXPF_TOLERANCE, 0},
+{762, 3114161777u, 0u, 3114161777u, 0, LDEXPF_TOLERANCE, 0},
+{763, 1253240637u, 0u, 1253240637u, 0, LDEXPF_TOLERANCE, 0},
+{764, 3343677583u, 0u, 3343677583u, 0, LDEXPF_TOLERANCE, 0},
+{765, 3179241204u, 0u, 3179241204u, 0, LDEXPF_TOLERANCE, 0},
+{766, 3155113426u, 0u, 3155113426u, 0, LDEXPF_TOLERANCE, 0},
+{767, 1031613223u, 0u, 1031613223u, 0, LDEXPF_TOLERANCE, 0},
+{768, 1034712760u, 0u, 1034712760u, 0, LDEXPF_TOLERANCE, 0},
+{769, 1066116543u, 0u, 1066116543u, 0, LDEXPF_TOLERANCE, 0},
+{770, 1186234578u, 0u, 1186234578u, 0, LDEXPF_TOLERANCE, 0},
+{771, 1036186976u, 0u, 1036186976u, 0, LDEXPF_TOLERANCE, 0},
+{772, 3097296874u, 0u, 3097296874u, 0, LDEXPF_TOLERANCE, 0},
+{773, 1045232522u, 0u, 1045232522u, 0, LDEXPF_TOLERANCE, 0},
+{774, 1039321021u, 0u, 1039321021u, 0, LDEXPF_TOLERANCE, 0},
+{775, 3173254520u, 0u, 3173254520u, 0, LDEXPF_TOLERANCE, 0},
+{776, 932998692u, 0u, 932998692u, 0, LDEXPF_TOLERANCE, 0},
+{777, 1171238338u, 0u, 1171238338u, 0, LDEXPF_TOLERANCE, 0},
+{778, 1202333162u, 0u, 1202333162u, 0, LDEXPF_TOLERANCE, 0},
+{779, 1280215674u, 0u, 1280215674u, 0, LDEXPF_TOLERANCE, 0},
+{780, 3211934425u, 0u, 3211934425u, 0, LDEXPF_TOLERANCE, 0},
+{781, 3194999530u, 0u, 3194999530u, 0, LDEXPF_TOLERANCE, 0},
+{782, 3299927364u, 0u, 3299927364u, 0, LDEXPF_TOLERANCE, 0},
+{783, 3250437226u, 0u, 3250437226u, 0, LDEXPF_TOLERANCE, 0},
+{784, 3071118853u, 0u, 3071118853u, 0, LDEXPF_TOLERANCE, 0},
+{785, 3267868136u, 0u, 3267868136u, 0, LDEXPF_TOLERANCE, 0},
+{786, 3123250489u, 0u, 3123250489u, 0, LDEXPF_TOLERANCE, 0},
+{787, 3122362353u, 0u, 3122362353u, 0, LDEXPF_TOLERANCE, 0},
+{788, 3327511577u, 0u, 3327511577u, 0, LDEXPF_TOLERANCE, 0},
+{789, 3020140395u, 0u, 3020140395u, 0, LDEXPF_TOLERANCE, 0},
+{790, 1267995571u, 0u, 1267995571u, 0, LDEXPF_TOLERANCE, 0},
+{791, 3446392517u, 0u, 3446392517u, 0, LDEXPF_TOLERANCE, 0},
+{792, 3034243695u, 0u, 3034243695u, 0, LDEXPF_TOLERANCE, 0},
+{793, 3482416423u, 0u, 3482416423u, 0, LDEXPF_TOLERANCE, 0},
+{794, 3310269251u, 0u, 3310269251u, 0, LDEXPF_TOLERANCE, 0},
+{795, 1058296319u, 0u, 1058296319u, 0, LDEXPF_TOLERANCE, 0},
+{796, 3432295752u, 0u, 3432295752u, 0, LDEXPF_TOLERANCE, 0},
+{797, 1087881449u, 0u, 1087881449u, 0, LDEXPF_TOLERANCE, 0},
+{798, 3374929424u, 0u, 3374929424u, 0, LDEXPF_TOLERANCE, 0},
+{799, 1191811948u, 0u, 1191811948u, 0, LDEXPF_TOLERANCE, 0},
+{800, 3268693154u, 0u, 3268693154u, 0, LDEXPF_TOLERANCE, 0},
+{801, 3366511856u, 0u, 3366511856u, 0, LDEXPF_TOLERANCE, 0},
+{802, 3234857152u, 0u, 3234857152u, 0, LDEXPF_TOLERANCE, 0},
+{803, 3394693181u, 0u, 3394693181u, 0, LDEXPF_TOLERANCE, 0},
+{804, 3322380283u, 0u, 3322380283u, 0, LDEXPF_TOLERANCE, 0},
+{805, 3176526828u, 0u, 3176526828u, 0, LDEXPF_TOLERANCE, 0},
+{806, 962436491u, 0u, 962436491u, 0, LDEXPF_TOLERANCE, 0},
+{807, 1016021534u, 0u, 1016021534u, 0, LDEXPF_TOLERANCE, 0}
+
+// AUTOMATICALLY GENERATED VECTORS STOP
+
+};
+
+#endif // CYGONCE_LIBM_LDEXPF_H multiple inclusion protection
+
+// EOF ldexpf.h
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/log.c b/ecos/packages/language/c/libm/current/tests/vectors/log.c
new file mode 100644
index 0000000..62c9876
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/log.c
@@ -0,0 +1,115 @@
+//===========================================================================
+//
+// log.c
+//
+// Test of log() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// Declarations for test system:
+//
+// TESTCASE_TYPE=CYG_TEST_MODULE
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include <cyg/infra/testcase.h> // Test infrastructure
+#include <math.h> // Header for this package
+#include <sys/ieeefp.h> // Cyg_libm_ieee_double_shape_type
+#include "vectors/vector_support.h"// extra support for math tests
+
+#include "vectors/log.h"
+
+// FUNCTIONS
+
+static void
+test( CYG_ADDRWORD data )
+{
+ cyg_ucount32 vec_size;
+ cyg_bool ret;
+
+ vec_size = sizeof(log_vec) / sizeof(Cyg_libm_test_double_vec_t);
+ ret = doTestVec( (CYG_ADDRWORD) &log, CYG_LIBM_TEST_VEC_DOUBLE,
+ CYG_LIBM_TEST_VEC_NONE, CYG_LIBM_TEST_VEC_DOUBLE,
+ &log_vec[0], vec_size );
+
+ if (ret==true)
+ {
+ CYG_TEST_PASS("log() is stable");
+ } // if
+ else
+ {
+ CYG_TEST_FAIL("log() failed tests");
+ } // else
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for Math "
+ "library log() function");
+} // test()
+
+
+int
+main(int argc, char *argv[])
+{
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for Math library "
+ "log() function");
+
+ START_TEST( test );
+
+ CYG_TEST_PASS_FINISH("Testing is not applicable to this configuration");
+
+} // main()
+
+
+// EOF log.c
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/log.h b/ecos/packages/language/c/libm/current/tests/vectors/log.h
new file mode 100644
index 0000000..ac1b22d
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/log.h
@@ -0,0 +1,1079 @@
+#ifndef CYGONCE_LIBM_LOG_H
+#define CYGONCE_LIBM_LOG_H
+//===========================================================================
+//
+// log.h
+//
+// Test vectors for testing of log() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage: #include "vectors/log.h"
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include "vectors/vector_support.h"// extra support for math tests
+
+#define LOG_TOLERANCE 1.0E-04
+
+static const Cyg_libm_test_double_vec_t log_vec[] = {
+
+// AUTOMATICALLY GENERATED VECTORS START
+
+{ 1, 1077999148u, 2506787616u, 1090024059u, 3619148316u, 1074540891u, 1903028788u, 0, LOG_TOLERANCE, 0},
+{ 2, 1070670006u, 3176730980u, 1051524793u, 2993920299u, 3220510532u, 3615487687u, 0, LOG_TOLERANCE, 0},
+{ 3, 1092176155u, 2725707538u, 3232101343u, 2346810316u, 1076485723u, 3768096846u, 0, LOG_TOLERANCE, 0},
+{ 4, 1092554362u, 2088062470u, 3201242716u, 420891118u, 1076512669u, 440847476u, 0, LOG_TOLERANCE, 0},
+{ 5, 1073717029u, 2636405208u, 1100049309u, 471635570u, 1072024788u, 3752333164u, 0, LOG_TOLERANCE, 0},
+{ 6, 1089363191u, 1746012320u, 1054478713u, 3333988501u, 1076237152u, 3881795292u, 0, LOG_TOLERANCE, 0},
+{ 7, 1047953160u, 183014794u, 3202039382u, 2016785810u, 3224390518u, 1303331829u, 0, LOG_TOLERANCE, 0},
+{ 8, 1066002386u, 2688957927u, 1046089230u, 2709029994u, 3222371083u, 2601131004u, 0, LOG_TOLERANCE, 0},
+{ 9, 1058795730u, 624574473u, 1045840574u, 3473266330u, 3223472906u, 2217450498u, 0, LOG_TOLERANCE, 0},
+{ 10, 1057436194u, 1605286142u, 1068931671u, 4233776869u, 3223588152u, 3229387891u, 0, LOG_TOLERANCE, 0},
+{ 11, 1060343410u, 1857607719u, 3222889559u, 3417070006u, 3223337966u, 225906160u, 0, LOG_TOLERANCE, 0},
+{ 12, 1103599987u, 3981151660u, 1088899021u, 1332651746u, 1077181802u, 896846388u, 0, LOG_TOLERANCE, 0},
+{ 13, 1085298022u, 3824988054u, 1066856791u, 2070129652u, 1075883331u, 34639343u, 0, LOG_TOLERANCE, 0},
+{ 14, 1060076142u, 1372884064u, 1080833116u, 3229926662u, 3223366428u, 4150257867u, 0, LOG_TOLERANCE, 0},
+{ 15, 1093826501u, 3217805330u, 3191644264u, 2014578707u, 1076626245u, 603858158u, 0, LOG_TOLERANCE, 0},
+{ 16, 1102287487u, 265058758u, 3239903247u, 1630600647u, 1077124113u, 3025164482u, 0, LOG_TOLERANCE, 0},
+{ 17, 1071124229u, 1946677669u, 3198462609u, 926009897u, 3220131571u, 69509414u, 0, LOG_TOLERANCE, 0},
+{ 18, 1072130299u, 2271884183u, 3203741999u, 2118617783u, 3218342176u, 3539920578u, 0, LOG_TOLERANCE, 0},
+{ 19, 1047365461u, 213658772u, 3249401130u, 314151656u, 3224418117u, 3079041052u, 0, LOG_TOLERANCE, 0},
+{ 20, 1106628640u, 1564829925u, 3197817016u, 497230814u, 1077312921u, 3110556593u, 0, LOG_TOLERANCE, 0},
+{ 21, 1068778986u, 2075329122u, 3231746400u, 169900577u, 3221506428u, 2398289983u, 0, LOG_TOLERANCE, 0},
+{ 22, 1049848642u, 541549344u, 1096608669u, 3119070100u, 3224247412u, 1892715843u, 0, LOG_TOLERANCE, 0},
+{ 23, 1085427055u, 567496114u, 1045286891u, 1969998540u, 1075898248u, 2464173132u, 0, LOG_TOLERANCE, 0},
+{ 24, 1060548195u, 1299369769u, 1049342524u, 4167404066u, 3223314449u, 3975492231u, 0, LOG_TOLERANCE, 0},
+{ 25, 1061381997u, 3348930841u, 1078472138u, 358457347u, 3223173654u, 3330331685u, 0, LOG_TOLERANCE, 0},
+{ 26, 1071069297u, 2192461366u, 1099527247u, 3184735642u, 3220191417u, 194538985u, 0, LOG_TOLERANCE, 0},
+{ 27, 1052861772u, 331696577u, 3189610016u, 793242270u, 3223989277u, 2142326960u, 0, LOG_TOLERANCE, 0},
+{ 28, 1105045286u, 2322696981u, 1083791358u, 3020766674u, 1077242192u, 3024017455u, 0, LOG_TOLERANCE, 0},
+{ 29, 1044902177u, 252085215u, 3214426435u, 4139068910u, 3224522714u, 3356017132u, 0, LOG_TOLERANCE, 0},
+{ 30, 1075022077u, 105589263u, 1056316170u, 261630827u, 1073307628u, 2770724689u, 0, LOG_TOLERANCE, 0},
+{ 31, 1107213408u, 428765703u, 3251828686u, 2009972239u, 1077335395u, 2429249706u, 0, LOG_TOLERANCE, 0},
+{ 32, 1098568019u, 3517376586u, 3240257920u, 3304487302u, 1076963049u, 3484578711u, 0, LOG_TOLERANCE, 0},
+{ 33, 1086054264u, 237004814u, 3237899261u, 3364008659u, 1075953380u, 1844071u, 0, LOG_TOLERANCE, 0},
+{ 34, 1047763904u, 472004928u, 3226869477u, 1186387580u, 3224399522u, 1007725918u, 0, LOG_TOLERANCE, 0},
+{ 35, 1054226850u, 4085763910u, 1106394906u, 2684738273u, 3223866312u, 1979790125u, 0, LOG_TOLERANCE, 0},
+{ 36, 1057053639u, 2055490142u, 3231581370u, 3879040079u, 3223626149u, 806421346u, 0, LOG_TOLERANCE, 0},
+{ 37, 1041492999u, 3725731239u, 1061652681u, 591292963u, 3224671038u, 4206351851u, 0, LOG_TOLERANCE, 0},
+{ 38, 1077531333u, 1147041027u, 3215417793u, 624695933u, 1074397854u, 304138034u, 0, LOG_TOLERANCE, 0},
+{ 39, 1058569126u, 705725219u, 3238067573u, 1116238321u, 3223490221u, 3627345304u, 0, LOG_TOLERANCE, 0},
+{ 40, 1059883440u, 7287411u, 1045917232u, 116067742u, 3223379282u, 2727133729u, 0, LOG_TOLERANCE, 0},
+{ 41, 1092571574u, 3604989074u, 1066381836u, 545298780u, 1076513772u, 3839904761u, 0, LOG_TOLERANCE, 0},
+{ 42, 1071597288u, 1681476121u, 1060345752u, 3553822398u, 3219581306u, 453941245u, 0, LOG_TOLERANCE, 0},
+{ 43, 1102831658u, 3410480388u, 1052460275u, 1660607230u, 1077147289u, 3910731824u, 0, LOG_TOLERANCE, 0},
+{ 44, 1089216869u, 1494984673u, 3196647153u, 287894723u, 1076227142u, 81073844u, 0, LOG_TOLERANCE, 0},
+{ 45, 1054885127u, 644548665u, 1081948134u, 2442134629u, 3223816344u, 2988035667u, 0, LOG_TOLERANCE, 0},
+{ 46, 1087554095u, 2312530895u, 3221584595u, 3379665576u, 1076083178u, 4168414754u, 0, LOG_TOLERANCE, 0},
+{ 47, 1096085375u, 3018463866u, 1086226574u, 404012923u, 1076824388u, 355380855u, 0, LOG_TOLERANCE, 0},
+{ 48, 1064733299u, 1710279345u, 3251401196u, 3528946000u, 3222589259u, 4043295995u, 0, LOG_TOLERANCE, 0},
+{ 49, 1061536351u, 2164450219u, 1083520023u, 3312018966u, 3223143623u, 2781389049u, 0, LOG_TOLERANCE, 0},
+{ 50, 1057248676u, 2648986431u, 1050330591u, 1474376550u, 3223605408u, 2621621078u, 0, LOG_TOLERANCE, 0},
+{ 51, 1046938380u, 1839068700u, 1077406406u, 3013052171u, 3224434459u, 186039155u, 0, LOG_TOLERANCE, 0},
+{ 52, 1046493630u, 772102380u, 3220729740u, 4219039958u, 3224457358u, 3891328709u, 0, LOG_TOLERANCE, 0},
+{ 53, 1081988573u, 3058618779u, 1046304788u, 3338676024u, 1075358802u, 3664366177u, 0, LOG_TOLERANCE, 0},
+{ 54, 1051172137u, 506286854u, 1094907481u, 2217000199u, 3224130924u, 2266434652u, 0, LOG_TOLERANCE, 0},
+{ 55, 1082428310u, 1147428263u, 1065432625u, 3034786717u, 1075442710u, 1201247296u, 0, LOG_TOLERANCE, 0},
+{ 56, 1082016752u, 2844125311u, 1082985198u, 2561492677u, 1075362553u, 3473284473u, 0, LOG_TOLERANCE, 0},
+{ 57, 1064053268u, 704542600u, 3222902057u, 2762779203u, 3222712577u, 292535648u, 0, LOG_TOLERANCE, 0},
+{ 58, 1052196966u, 184131949u, 3249723525u, 1667366082u, 3224042099u, 902609229u, 0, LOG_TOLERANCE, 0},
+{ 59, 1076125950u, 3904224140u, 1067056698u, 2942159914u, 1073910305u, 801875395u, 0, LOG_TOLERANCE, 0},
+{ 60, 1100636863u, 426114282u, 3209056785u, 1083606355u, 1077052837u, 3461243802u, 0, LOG_TOLERANCE, 0},
+{ 61, 1106165945u, 3774123863u, 1106787580u, 2722107965u, 1077290005u, 3002616544u, 0, LOG_TOLERANCE, 0},
+{ 62, 1088005092u, 1377734762u, 1104232051u, 2377063483u, 1076124140u, 2634112070u, 0, LOG_TOLERANCE, 0},
+{ 63, 1069380559u, 1029739074u, 1105467109u, 3062201018u, 3221310617u, 3355564135u, 0, LOG_TOLERANCE, 0},
+{ 64, 1087257949u, 773857656u, 3214251949u, 335833884u, 1076054914u, 2342316503u, 0, LOG_TOLERANCE, 0},
+{ 65, 1055740962u, 1473865960u, 1103073830u, 4000427507u, 3223739108u, 2937886411u, 0, LOG_TOLERANCE, 0},
+{ 66, 1103185231u, 4242092620u, 1067009473u, 14539161u, 1077161341u, 1502148359u, 0, LOG_TOLERANCE, 0},
+{ 67, 1045032426u, 1732245037u, 1101371955u, 1533536108u, 3224517488u, 2540091285u, 0, LOG_TOLERANCE, 0},
+{ 68, 1101670347u, 1833841275u, 1099430098u, 4144145552u, 1077097689u, 1827704426u, 0, LOG_TOLERANCE, 0},
+{ 69, 1096786815u, 935007012u, 3188865420u, 604442938u, 1076878511u, 3599854352u, 0, LOG_TOLERANCE, 0},
+{ 70, 1059419605u, 2211464602u, 1046255144u, 1635910526u, 3223416641u, 2853698743u, 0, LOG_TOLERANCE, 0},
+{ 71, 1077871417u, 2549219008u, 3231633258u, 3733639385u, 1074493859u, 1273814856u, 0, LOG_TOLERANCE, 0},
+{ 72, 1082095089u, 1819374372u, 3202219056u, 2617077637u, 1075372707u, 3860522421u, 0, LOG_TOLERANCE, 0},
+{ 73, 1094345280u, 546465680u, 1048653554u, 532401530u, 1076673000u, 3709218343u, 0, LOG_TOLERANCE, 0},
+{ 74, 1044571091u, 2759019783u, 3221570188u, 3554409630u, 3224538246u, 3654279494u, 0, LOG_TOLERANCE, 0},
+{ 75, 1065447634u, 2527221960u, 1099107978u, 2696971136u, 3222474800u, 4009812961u, 0, LOG_TOLERANCE, 0},
+{ 76, 1097158000u, 173134582u, 1087299442u, 2877794600u, 1076902534u, 3732378643u, 0, LOG_TOLERANCE, 0},
+{ 77, 1086400474u, 547642046u, 3197285510u, 3521286127u, 1075980619u, 1773153190u, 0, LOG_TOLERANCE, 0},
+{ 78, 1074860702u, 1231582831u, 1090971734u, 1653446832u, 1073166352u, 3728304610u, 0, LOG_TOLERANCE, 0},
+{ 79, 1061342535u, 3762182190u, 3252967851u, 2615360375u, 3223181918u, 1963485299u, 0, LOG_TOLERANCE, 0},
+{ 80, 1053350775u, 2588067350u, 3206610957u, 3551059728u, 3223942494u, 644369098u, 0, LOG_TOLERANCE, 0},
+{ 81, 1059495208u, 845263327u, 1073415902u, 1749010288u, 3223409778u, 2981196663u, 0, LOG_TOLERANCE, 0},
+{ 82, 1058092722u, 3092685191u, 3190678390u, 2872219490u, 3223536395u, 1369453498u, 0, LOG_TOLERANCE, 0},
+{ 83, 1070831407u, 4107255722u, 3205337291u, 3069068345u, 3220369660u, 1794319742u, 0, LOG_TOLERANCE, 0},
+{ 84, 1096507209u, 2294867524u, 3216653996u, 2860384670u, 1076859525u, 3809728678u, 0, LOG_TOLERANCE, 0},
+{ 85, 1045842702u, 2265437201u, 3240198679u, 1234948614u, 3224481964u, 2712155181u, 0, LOG_TOLERANCE, 0},
+{ 86, 1068876281u, 1186945904u, 3251167793u, 1896750851u, 3221469375u, 2742155072u, 0, LOG_TOLERANCE, 0},
+{ 87, 1081575478u, 3686084548u, 1079286273u, 3309277689u, 1075296587u, 3889440640u, 0, LOG_TOLERANCE, 0},
+{ 88, 1075992592u, 3006860614u, 3231412671u, 2504194724u, 1073855151u, 3443930242u, 0, LOG_TOLERANCE, 0},
+{ 89, 1088665612u, 1948717780u, 1048317852u, 3791803982u, 1076180575u, 2837452927u, 0, LOG_TOLERANCE, 0},
+{ 90, 1064345015u, 4272034420u, 3192982124u, 1526175922u, 3222669202u, 2086824310u, 0, LOG_TOLERANCE, 0},
+{ 91, 1098334178u, 4108948538u, 1104691287u, 640541190u, 1076953692u, 3764323674u, 0, LOG_TOLERANCE, 0},
+{ 92, 1059773769u, 3259274853u, 1082507103u, 3677038020u, 3223387203u, 652947737u, 0, LOG_TOLERANCE, 0},
+{ 93, 1083132498u, 3781708548u, 1096584871u, 1207386447u, 1075552988u, 2879643514u, 0, LOG_TOLERANCE, 0},
+{ 94, 1041211624u, 3011191657u, 1103798670u, 1096124830u, 3224686171u, 4236981062u, 0, LOG_TOLERANCE, 0},
+{ 95, 1063235023u, 2540404725u, 3240157452u, 4122845725u, 3222863454u, 3023388900u, 0, LOG_TOLERANCE, 0},
+{ 96, 1083643710u, 311336721u, 3214382367u, 4212533768u, 1075655034u, 3985941u, 0, LOG_TOLERANCE, 0},
+{ 97, 1051139427u, 1769686293u, 3240200923u, 3538602249u, 3224133724u, 2580792529u, 0, LOG_TOLERANCE, 0},
+{ 98, 1078227549u, 508056696u, 1103793878u, 776520138u, 1074638865u, 873855649u, 0, LOG_TOLERANCE, 0},
+{ 99, 1102910577u, 4064962760u, 1077424413u, 819766631u, 1077150061u, 2488377505u, 0, LOG_TOLERANCE, 0},
+{ 100, 1074178362u, 2112385259u, 3227593179u, 1187058516u, 1072736455u, 2653940335u, 0, LOG_TOLERANCE, 0},
+{ 101, 1082295059u, 2514398118u, 1076579751u, 870169764u, 1075415392u, 845037314u, 0, LOG_TOLERANCE, 0},
+{ 102, 1099367744u, 1190259653u, 1069112254u, 3417249840u, 1076998470u, 583465987u, 0, LOG_TOLERANCE, 0},
+{ 103, 1046179435u, 3467757357u, 3215075200u, 2168175352u, 3224468372u, 699090977u, 0, LOG_TOLERANCE, 0},
+{ 104, 1092159487u, 1508888184u, 1060430241u, 3524949092u, 1076484398u, 3433728995u, 0, LOG_TOLERANCE, 0},
+{ 105, 1049929235u, 166402802u, 3237198975u, 3572369260u, 3224239364u, 1031401866u, 0, LOG_TOLERANCE, 0},
+{ 106, 1081866822u, 2441536203u, 3202753937u, 3658194573u, 1075341949u, 2087866809u, 0, LOG_TOLERANCE, 0},
+{ 107, 1062392908u, 2479742828u, 1062342831u, 4214154303u, 3222999832u, 525496360u, 0, LOG_TOLERANCE, 0},
+{ 108, 1082396794u, 426896765u, 1066474375u, 2201754442u, 1075436501u, 1627606965u, 0, LOG_TOLERANCE, 0},
+{ 109, 1048145373u, 2055773734u, 3239267288u, 291396537u, 3224382486u, 3880399396u, 0, LOG_TOLERANCE, 0},
+{ 110, 1089484385u, 874125203u, 3210508124u, 4091098764u, 1076245763u, 2990601621u, 0, LOG_TOLERANCE, 0},
+{ 111, 1065716026u, 120488169u, 3241241441u, 1985269424u, 3222419509u, 1596544603u, 0, LOG_TOLERANCE, 0},
+{ 112, 1059055762u, 2243036871u, 3243941101u, 740033495u, 3223455501u, 3494510298u, 0, LOG_TOLERANCE, 0},
+{ 113, 1061941258u, 1176656356u, 1074261978u, 3588756231u, 3223078104u, 2251846605u, 0, LOG_TOLERANCE, 0},
+{ 114, 1105333143u, 3037249392u, 1061635587u, 1173102190u, 1077255068u, 2564022463u, 0, LOG_TOLERANCE, 0},
+{ 115, 1089725933u, 2882725208u, 1071440059u, 69225090u, 1076272613u, 3133483140u, 0, LOG_TOLERANCE, 0},
+{ 116, 1065179826u, 272319256u, 1072073912u, 2493997123u, 3222520025u, 35444247u, 0, LOG_TOLERANCE, 0},
+{ 117, 1057720186u, 188610379u, 3232757923u, 2209647371u, 3223565703u, 1891613632u, 0, LOG_TOLERANCE, 0},
+{ 118, 1089274869u, 1990439193u, 1078073146u, 622849962u, 1076231202u, 576311790u, 0, LOG_TOLERANCE, 0},
+{ 119, 1057135741u, 756052458u, 1081649113u, 2247475162u, 3223617015u, 1816165507u, 0, LOG_TOLERANCE, 0},
+{ 120, 1061623064u, 3878055211u, 3222407050u, 2979438623u, 3223128149u, 56153389u, 0, LOG_TOLERANCE, 0},
+{ 121, 1047807349u, 2676398686u, 1105124431u, 3631096636u, 3224397343u, 888392923u, 0, LOG_TOLERANCE, 0},
+{ 122, 1065079390u, 1697791764u, 3198136112u, 2299842819u, 3222534081u, 901870173u, 0, LOG_TOLERANCE, 0},
+{ 123, 1078084768u, 1931502677u, 3215264397u, 3016456382u, 1074579794u, 2595838239u, 0, LOG_TOLERANCE, 0},
+{ 124, 1072253426u, 343404215u, 1061072607u, 4266232536u, 3217957038u, 249307172u, 0, LOG_TOLERANCE, 0},
+{ 125, 1093747188u, 4140316002u, 1082896196u, 868256971u, 1076617361u, 2144012240u, 0, LOG_TOLERANCE, 0},
+{ 126, 1075422810u, 1864139509u, 3187675097u, 3084482407u, 1073593180u, 257551340u, 0, LOG_TOLERANCE, 0},
+{ 127, 1072707675u, 2427162817u, 3234748208u, 2715105792u, 1066138778u, 4007247913u, 0, LOG_TOLERANCE, 0},
+{ 128, 1064600512u, 3943389284u, 1046724025u, 3626825684u, 3222613950u, 3450803557u, 0, LOG_TOLERANCE, 0},
+{ 129, 1045423002u, 967350972u, 1093012318u, 448002663u, 3224503930u, 40325151u, 0, LOG_TOLERANCE, 0},
+{ 130, 1104362211u, 105058217u, 1069733884u, 171786224u, 1077213809u, 3629677324u, 0, LOG_TOLERANCE, 0},
+{ 131, 1042130860u, 2863482262u, 3204997271u, 877784425u, 3224644968u, 1676714437u, 0, LOG_TOLERANCE, 0},
+{ 132, 1055145665u, 2801782962u, 3213604117u, 762347195u, 3223787690u, 2201912701u, 0, LOG_TOLERANCE, 0},
+{ 133, 1086003079u, 2317950339u, 3246333414u, 2135700283u, 1075949654u, 3685526240u, 0, LOG_TOLERANCE, 0},
+{ 134, 1056516397u, 4171919805u, 1082858682u, 2180920863u, 3223668346u, 2563284746u, 0, LOG_TOLERANCE, 0},
+{ 135, 1072665436u, 1918836931u, 1083603224u, 3137821660u, 3213580135u, 893380042u, 0, LOG_TOLERANCE, 0},
+{ 136, 1103902874u, 3456203663u, 3235600523u, 2335688936u, 1077193523u, 822124921u, 0, LOG_TOLERANCE, 0},
+{ 137, 1042279322u, 4170235262u, 1051824459u, 521583737u, 3224640144u, 325222787u, 0, LOG_TOLERANCE, 0},
+{ 138, 1081348303u, 1296623194u, 3250673860u, 2442872540u, 1075254813u, 4250911823u, 0, LOG_TOLERANCE, 0},
+{ 139, 1061684277u, 289979405u, 1049514449u, 3865737145u, 3223117750u, 1822741563u, 0, LOG_TOLERANCE, 0},
+{ 140, 1075298944u, 3699090239u, 1054539840u, 3259249360u, 1073512919u, 2889360534u, 0, LOG_TOLERANCE, 0},
+{ 141, 1096418100u, 1619819023u, 1045993352u, 1022642459u, 1076852847u, 2966471226u, 0, LOG_TOLERANCE, 0},
+{ 142, 1081433004u, 19455098u, 3229182089u, 2096003654u, 1075271177u, 857411703u, 0, LOG_TOLERANCE, 0},
+{ 143, 1076297936u, 3803689997u, 1071630912u, 2263729518u, 1073973813u, 3836746166u, 0, LOG_TOLERANCE, 0},
+{ 144, 1101357261u, 2816837387u, 1063422305u, 2597606398u, 1077084471u, 2387840489u, 0, LOG_TOLERANCE, 0},
+{ 145, 1069100169u, 3680967506u, 1040201163u, 179224723u, 3221392912u, 284483311u, 0, LOG_TOLERANCE, 0},
+{ 146, 1041146119u, 978126928u, 1101553990u, 4047893399u, 3224688276u, 2169141442u, 0, LOG_TOLERANCE, 0},
+{ 147, 1074838397u, 4059818629u, 1042678728u, 3640293589u, 1073145238u, 3502645173u, 0, LOG_TOLERANCE, 0},
+{ 148, 1100980392u, 3383497159u, 1070002807u, 1527313008u, 1077064713u, 1414579044u, 0, LOG_TOLERANCE, 0},
+{ 149, 1055224031u, 2599946514u, 1104170406u, 2738675352u, 3223780168u, 3507302766u, 0, LOG_TOLERANCE, 0},
+{ 150, 1105232623u, 3616571377u, 1060859316u, 1130603218u, 1077249247u, 447338991u, 0, LOG_TOLERANCE, 0},
+{ 151, 1076028796u, 3859211180u, 1067940450u, 1744531824u, 1073870707u, 3139112125u, 0, LOG_TOLERANCE, 0},
+{ 152, 1042831340u, 1958025850u, 3236511256u, 2472176453u, 3224612476u, 4074628725u, 0, LOG_TOLERANCE, 0},
+{ 153, 1085623441u, 182132862u, 3250520938u, 3924356991u, 1075918122u, 3179461172u, 0, LOG_TOLERANCE, 0},
+{ 154, 1083018236u, 35632886u, 3209806504u, 1453402523u, 1075537959u, 623164823u, 0, LOG_TOLERANCE, 0},
+{ 155, 1083522102u, 743225214u, 3202890678u, 142917400u, 1075633073u, 1072570609u, 0, LOG_TOLERANCE, 0},
+{ 156, 1080684976u, 1472665012u, 3203138231u, 256588219u, 1075140463u, 1443082546u, 0, LOG_TOLERANCE, 0},
+{ 157, 1094982162u, 1062927000u, 1061134072u, 931677439u, 1076728209u, 2297940933u, 0, LOG_TOLERANCE, 0},
+{ 158, 1058377732u, 2320910576u, 1055663370u, 288059864u, 3223506870u, 2768289813u, 0, LOG_TOLERANCE, 0},
+{ 159, 1078958093u, 1448349062u, 3199478070u, 3454027134u, 1074828702u, 2706157180u, 0, LOG_TOLERANCE, 0},
+{ 160, 1089975150u, 4215445172u, 3196654963u, 2231888973u, 1076295536u, 1878052368u, 0, LOG_TOLERANCE, 0},
+{ 161, 1099148583u, 40413554u, 3232578253u, 983832844u, 1076988183u, 659398356u, 0, LOG_TOLERANCE, 0},
+{ 162, 1076237886u, 3995725873u, 1050082319u, 777231627u, 1073952502u, 2239349650u, 0, LOG_TOLERANCE, 0},
+{ 163, 1040986626u, 672789828u, 3253385962u, 2982787335u, 3224693702u, 1244542645u, 0, LOG_TOLERANCE, 0},
+{ 164, 1068390875u, 2075971825u, 1070166500u, 4034633931u, 3221658269u, 491532286u, 0, LOG_TOLERANCE, 0},
+{ 165, 1062562529u, 1018222907u, 3244621407u, 3090050495u, 3222966069u, 1798186974u, 0, LOG_TOLERANCE, 0},
+{ 166, 1067680885u, 937732557u, 3200798890u, 2557898276u, 3221889754u, 422952393u, 0, LOG_TOLERANCE, 0},
+{ 167, 1078342316u, 130346162u, 3223590310u, 275568693u, 1074681949u, 957372433u, 0, LOG_TOLERANCE, 0},
+{ 168, 1042898869u, 3807416441u, 1075961161u, 3706820266u, 3224609760u, 104190259u, 0, LOG_TOLERANCE, 0},
+{ 169, 1068615357u, 1710131411u, 1078123323u, 1900790503u, 3221575334u, 2209933262u, 0, LOG_TOLERANCE, 0},
+{ 170, 1091335713u, 3420420033u, 3210844787u, 588423066u, 1076410379u, 2857617467u, 0, LOG_TOLERANCE, 0},
+{ 171, 1049684114u, 1160162008u, 3246307879u, 4265764460u, 3224265557u, 1934933585u, 0, LOG_TOLERANCE, 0},
+{ 172, 1102543434u, 366653268u, 3188814424u, 466059202u, 1077136037u, 807141120u, 0, LOG_TOLERANCE, 0},
+{ 173, 1079144091u, 1325936170u, 3221436876u, 680097612u, 1074869144u, 1389489581u, 0, LOG_TOLERANCE, 0},
+{ 174, 1092907468u, 1827735934u, 3200554324u, 2875599271u, 1076548720u, 3300536450u, 0, LOG_TOLERANCE, 0},
+{ 175, 1043546754u, 3117037091u, 3239246636u, 15838845u, 3224582402u, 735648025u, 0, LOG_TOLERANCE, 0},
+{ 176, 1051974004u, 749718883u, 3223587064u, 1523766569u, 3224062834u, 1671881275u, 0, LOG_TOLERANCE, 0},
+{ 177, 1044833651u, 1966536294u, 3250158026u, 699164258u, 3224525641u, 1389402172u, 0, LOG_TOLERANCE, 0},
+{ 178, 1098048435u, 3759049394u, 1106085272u, 1183789499u, 1076940082u, 1040831789u, 0, LOG_TOLERANCE, 0},
+{ 179, 1081201623u, 1970107747u, 1095245453u, 2308233883u, 1075223810u, 3769104780u, 0, LOG_TOLERANCE, 0},
+{ 180, 1084756444u, 1491017852u, 1041444355u, 1723375725u, 1075843299u, 2828558175u, 0, LOG_TOLERANCE, 0},
+{ 181, 1069146422u, 1141349287u, 1097465301u, 3403438584u, 3221378415u, 3648723478u, 0, LOG_TOLERANCE, 0},
+{ 182, 1083088260u, 1711085243u, 3250239076u, 1377484108u, 1075547271u, 2365864324u, 0, LOG_TOLERANCE, 0},
+{ 183, 1098385019u, 2880275004u, 1084039594u, 1611394950u, 1076955843u, 3972039239u, 0, LOG_TOLERANCE, 0},
+{ 184, 1086737787u, 2626629370u, 1063771493u, 1499080813u, 1076015009u, 3210927368u, 0, LOG_TOLERANCE, 0},
+{ 185, 1055231263u, 3936262414u, 1103919063u, 3175668759u, 3223779495u, 3949784643u, 0, LOG_TOLERANCE, 0},
+{ 186, 1060498071u, 1270950554u, 3194616071u, 3680565379u, 3223323033u, 321203519u, 0, LOG_TOLERANCE, 0},
+{ 187, 1060664575u, 1066985223u, 3221613219u, 4089383168u, 3223294689u, 1322613376u, 0, LOG_TOLERANCE, 0},
+{ 188, 1069575191u, 4017329311u, 3208334452u, 1667591498u, 3221253465u, 2986438966u, 0, LOG_TOLERANCE, 0},
+{ 189, 1088164157u, 3154656624u, 1061894279u, 3886344038u, 1076135995u, 2019766276u, 0, LOG_TOLERANCE, 0},
+{ 190, 1050652945u, 977586119u, 3209762784u, 953839852u, 3224183212u, 4205833787u, 0, LOG_TOLERANCE, 0},
+{ 191, 1104965247u, 143071571u, 3206165386u, 913097445u, 1077239436u, 1428994741u, 0, LOG_TOLERANCE, 0},
+{ 192, 1043081808u, 1371169579u, 1057079837u, 2594818628u, 3224602920u, 15908725u, 0, LOG_TOLERANCE, 0},
+{ 193, 1104309688u, 2259342224u, 3217432469u, 1824221478u, 1077211020u, 98865074u, 0, LOG_TOLERANCE, 0},
+{ 194, 1099351127u, 1576604497u, 1079368611u, 185078728u, 1076997744u, 1291065544u, 0, LOG_TOLERANCE, 0},
+{ 195, 1074195779u, 444800035u, 3243343143u, 1734989302u, 1072748681u, 843810783u, 0, LOG_TOLERANCE, 0},
+{ 196, 1072748883u, 130452005u, 1041548088u, 2158433515u, 1068136489u, 4008523687u, 0, LOG_TOLERANCE, 0},
+{ 197, 1087212320u, 1941318385u, 1045807374u, 792193370u, 1076051861u, 1971888733u, 0, LOG_TOLERANCE, 0},
+{ 198, 1090816018u, 1299392207u, 3212131720u, 3205732280u, 1076367573u, 2393072u, 0, LOG_TOLERANCE, 0},
+{ 199, 1098698804u, 3035093505u, 1052187689u, 3287702190u, 1076967753u, 3012582896u, 0, LOG_TOLERANCE, 0},
+{ 200, 1099192612u, 2160225215u, 1102624859u, 836655570u, 1076990383u, 2071736056u, 0, LOG_TOLERANCE, 0},
+{ 201, 1096723626u, 3360816360u, 3246176356u, 172860634u, 1076874455u, 1406950864u, 0, LOG_TOLERANCE, 0},
+{ 202, 1070995788u, 146831910u, 1051558014u, 2340722078u, 3220243332u, 3261297932u, 0, LOG_TOLERANCE, 0},
+{ 203, 1082932703u, 1603798153u, 3207725532u, 1099413093u, 1075526116u, 1499961334u, 0, LOG_TOLERANCE, 0},
+{ 204, 1099194730u, 2429340443u, 3190303581u, 3223770005u, 1076990487u, 2107238709u, 0, LOG_TOLERANCE, 0},
+{ 205, 1075882959u, 955542166u, 3230415151u, 275583938u, 1073805017u, 587786177u, 0, LOG_TOLERANCE, 0},
+{ 206, 1092971882u, 513397822u, 1090646554u, 2089321329u, 1076554875u, 1291039930u, 0, LOG_TOLERANCE, 0},
+{ 207, 1045686228u, 2782073372u, 1046063872u, 4023829068u, 3224489388u, 2570927601u, 0, LOG_TOLERANCE, 0},
+{ 208, 1098564822u, 3242223094u, 3194111199u, 4264674108u, 1076962930u, 2095896905u, 0, LOG_TOLERANCE, 0},
+{ 209, 1091027173u, 3506346169u, 1047020885u, 1742757458u, 1076386679u, 701024000u, 0, LOG_TOLERANCE, 0},
+{ 210, 1045180829u, 1265459564u, 3193450280u, 3650514880u, 3224512001u, 2115795402u, 0, LOG_TOLERANCE, 0},
+{ 211, 1081755890u, 1525260440u, 3235452527u, 2612331392u, 1075325589u, 1311722038u, 0, LOG_TOLERANCE, 0},
+{ 212, 1101185272u, 1263613754u, 3219096387u, 635677201u, 1077075888u, 464532810u, 0, LOG_TOLERANCE, 0},
+{ 213, 1058788439u, 4140947288u, 3200792376u, 2013265346u, 3223473429u, 1675510139u, 0, LOG_TOLERANCE, 0},
+{ 214, 1102490744u, 1912759945u, 3237045253u, 1351396825u, 1077133753u, 2656194917u, 0, LOG_TOLERANCE, 0},
+{ 215, 1100721514u, 1001433078u, 3206926643u, 2741676659u, 1077055969u, 4157777791u, 0, LOG_TOLERANCE, 0},
+{ 216, 1080923606u, 1088945233u, 1085095743u, 3986114865u, 1075174891u, 2711796576u, 0, LOG_TOLERANCE, 0},
+{ 217, 1068250409u, 831239754u, 1099828675u, 3071308141u, 3221696665u, 3906974917u, 0, LOG_TOLERANCE, 0},
+{ 218, 1078350849u, 3473592372u, 1102759382u, 1309576357u, 1074685015u, 3258092383u, 0, LOG_TOLERANCE, 0},
+{ 219, 1103703058u, 2042340367u, 1091945628u, 2062772374u, 1077186030u, 1455653889u, 0, LOG_TOLERANCE, 0},
+{ 220, 1047282039u, 1840632537u, 1096533424u, 807510337u, 3224421005u, 2259729181u, 0, LOG_TOLERANCE, 0},
+{ 221, 1083968074u, 144814872u, 3212698915u, 2282965697u, 1075705943u, 2949949432u, 0, LOG_TOLERANCE, 0},
+{ 222, 1071236430u, 2552499583u, 3229111426u, 1470130815u, 3219987405u, 558247611u, 0, LOG_TOLERANCE, 0},
+{ 223, 1095609417u, 2858583811u, 1089760910u, 6360994u, 1076779252u, 1692550517u, 0, LOG_TOLERANCE, 0},
+{ 224, 1050781281u, 1614537194u, 1075198900u, 4088705365u, 3224169080u, 729983519u, 0, LOG_TOLERANCE, 0},
+{ 225, 1103455422u, 3545570051u, 1065221325u, 1629217700u, 1077175370u, 4002504631u, 0, LOG_TOLERANCE, 0},
+{ 226, 1072744324u, 1813392963u, 3235313361u, 3772501596u, 1067997677u, 2531803269u, 0, LOG_TOLERANCE, 0},
+{ 227, 1049319038u, 2406734491u, 1042055360u, 89226663u, 3224293435u, 489486239u, 0, LOG_TOLERANCE, 0},
+{ 228, 1048267433u, 1618759139u, 3194723421u, 3888234802u, 3224377854u, 2361316317u, 0, LOG_TOLERANCE, 0},
+{ 229, 1055357248u, 3590035633u, 3212424262u, 2892456615u, 3223768296u, 2784142069u, 0, LOG_TOLERANCE, 0},
+{ 230, 1042459412u, 2431246964u, 3241512456u, 183850734u, 3224629872u, 2676796459u, 0, LOG_TOLERANCE, 0},
+{ 231, 1089501101u, 3088319870u, 3211544311u, 862225364u, 1076247809u, 3557509436u, 0, LOG_TOLERANCE, 0},
+{ 232, 1087811016u, 3495352775u, 1058576726u, 596957268u, 1076108054u, 1212781005u, 0, LOG_TOLERANCE, 0},
+{ 233, 1046553348u, 1839214511u, 3205004060u, 1923240983u, 3224453778u, 155767862u, 0, LOG_TOLERANCE, 0},
+{ 234, 1058073864u, 739619702u, 3223356436u, 2689885273u, 3223538604u, 4095262392u, 0, LOG_TOLERANCE, 0},
+{ 235, 1052841323u, 2143376228u, 1098306332u, 3760236188u, 3223991649u, 3574225414u, 0, LOG_TOLERANCE, 0},
+{ 236, 1074621795u, 671680995u, 1091262633u, 2315535361u, 1073010422u, 1713289607u, 0, LOG_TOLERANCE, 0},
+{ 237, 1066682341u, 2493598049u, 3194927008u, 1689107592u, 3222233045u, 4244143336u, 0, LOG_TOLERANCE, 0},
+{ 238, 1042506311u, 1578976988u, 1066368383u, 2117279163u, 3224627407u, 1544732865u, 0, LOG_TOLERANCE, 0},
+{ 239, 1075504463u, 3425290087u, 1098487295u, 1263412017u, 1073642915u, 3833207621u, 0, LOG_TOLERANCE, 0},
+{ 240, 1060949116u, 3635396812u, 1070999426u, 3965655689u, 3223251850u, 3656828940u, 0, LOG_TOLERANCE, 0},
+{ 241, 1060196346u, 2183973116u, 1101098363u, 1118613350u, 3223353941u, 673602059u, 0, LOG_TOLERANCE, 0},
+{ 242, 1074462441u, 199516350u, 1078368488u, 164621458u, 1072919989u, 2683332925u, 0, LOG_TOLERANCE, 0},
+{ 243, 1040222370u, 3570940805u, 3230316437u, 3596080877u, 3224728682u, 1709229047u, 0, LOG_TOLERANCE, 0},
+{ 244, 1060725917u, 980880313u, 1079833442u, 884465057u, 3223284843u, 3908226837u, 0, LOG_TOLERANCE, 0},
+{ 245, 1099977124u, 2558179220u, 1052873711u, 1233598120u, 1077021347u, 3750522257u, 0, LOG_TOLERANCE, 0},
+{ 246, 1047115221u, 1909994277u, 1085015978u, 2991527452u, 3224427192u, 1939315825u, 0, LOG_TOLERANCE, 0},
+{ 247, 1060855260u, 1680290941u, 1074309900u, 2943870846u, 3223265222u, 1391917703u, 0, LOG_TOLERANCE, 0},
+{ 248, 1059496132u, 1451927357u, 3228615456u, 1502585517u, 3223409696u, 4240953644u, 0, LOG_TOLERANCE, 0},
+{ 249, 1088728303u, 751136990u, 3230392165u, 3493275472u, 1076186784u, 2895449770u, 0, LOG_TOLERANCE, 0},
+{ 250, 1098365967u, 1209623292u, 3238056647u, 979495322u, 1076955046u, 322553682u, 0, LOG_TOLERANCE, 0},
+{ 251, 1102940648u, 1717672108u, 1048120593u, 531240316u, 1077151087u, 2450752868u, 0, LOG_TOLERANCE, 0},
+{ 252, 1054174923u, 3548721654u, 1086112947u, 3391817224u, 3223871070u, 2651694237u, 0, LOG_TOLERANCE, 0},
+{ 253, 1077836851u, 2758195125u, 1100880260u, 2028440924u, 1074484865u, 4212387521u, 0, LOG_TOLERANCE, 0},
+{ 254, 1084223893u, 2750123373u, 3232200256u, 1086294931u, 1075740110u, 1796153641u, 0, LOG_TOLERANCE, 0},
+{ 255, 1043958672u, 2986160931u, 1076097908u, 2540046258u, 3224563892u, 4131735963u, 0, LOG_TOLERANCE, 0},
+{ 256, 1087992954u, 451471221u, 1064816262u, 4187644495u, 1076123190u, 1571278527u, 0, LOG_TOLERANCE, 0},
+{ 257, 1099460228u, 2439500162u, 1065280276u, 1979490284u, 1077002369u, 1210365152u, 0, LOG_TOLERANCE, 0},
+{ 258, 1040415832u, 2283342035u, 1078398157u, 1345997553u, 3224717916u, 793577502u, 0, LOG_TOLERANCE, 0},
+{ 259, 1065765700u, 179066662u, 1103272172u, 1217337578u, 3222410441u, 3473154820u, 0, LOG_TOLERANCE, 0},
+{ 260, 1064078729u, 3779303391u, 3210023352u, 3115946280u, 3222708985u, 2675466261u, 0, LOG_TOLERANCE, 0},
+{ 261, 1045506226u, 286247089u, 1085153597u, 713645369u, 3224499119u, 1542442198u, 0, LOG_TOLERANCE, 0},
+{ 262, 1093670500u, 1468283899u, 1042831668u, 2022736418u, 1076608158u, 1444206071u, 0, LOG_TOLERANCE, 0},
+{ 263, 1083139105u, 3305564080u, 1065483445u, 482392433u, 1075553831u, 3885636882u, 0, LOG_TOLERANCE, 0},
+{ 264, 1054212159u, 2256346551u, 3222430705u, 2071674991u, 3223867641u, 979926413u, 0, LOG_TOLERANCE, 0},
+{ 265, 1056541047u, 2295269094u, 1084451053u, 2773103941u, 3223666401u, 3176085154u, 0, LOG_TOLERANCE, 0},
+{ 266, 1078173946u, 1482721827u, 1092243422u, 3125409590u, 1074617461u, 2338252184u, 0, LOG_TOLERANCE, 0},
+{ 267, 1073582325u, 1381740563u, 1071545057u, 2918235653u, 1071883840u, 3334584948u, 0, LOG_TOLERANCE, 0},
+{ 268, 1091232324u, 1105857967u, 3241990046u, 2703723225u, 1076402905u, 1352770697u, 0, LOG_TOLERANCE, 0},
+{ 269, 1043015571u, 174689677u, 1079333374u, 3947057014u, 3224605314u, 4170986094u, 0, LOG_TOLERANCE, 0},
+{ 270, 1090461859u, 2023082423u, 3242081486u, 1169047927u, 1076331263u, 3328774237u, 0, LOG_TOLERANCE, 0},
+{ 271, 1064525899u, 3742487766u, 1043425732u, 194972788u, 3222628918u, 1375948702u, 0, LOG_TOLERANCE, 0},
+{ 272, 1066308179u, 2136071361u, 3211529757u, 993675115u, 3222327669u, 78816142u, 0, LOG_TOLERANCE, 0},
+{ 273, 1066179733u, 210772141u, 3241441539u, 580731413u, 3222345037u, 3927815368u, 0, LOG_TOLERANCE, 0},
+{ 274, 1093840413u, 1751560711u, 1074522705u, 180987057u, 1076627743u, 550680420u, 0, LOG_TOLERANCE, 0},
+{ 275, 1066754591u, 2552236599u, 1088658621u, 2112468655u, 3222205293u, 3536028076u, 0, LOG_TOLERANCE, 0},
+{ 276, 1041806969u, 1578223762u, 3224596567u, 2456166162u, 3224656916u, 862250271u, 0, LOG_TOLERANCE, 0},
+{ 277, 1058506965u, 2110924310u, 1086207177u, 3161208323u, 3223495400u, 2942554941u, 0, LOG_TOLERANCE, 0},
+{ 278, 1084379746u, 2352173188u, 1079361728u, 4070222179u, 1075776093u, 2662684686u, 0, LOG_TOLERANCE, 0},
+{ 279, 1101012904u, 2481562701u, 1090937016u, 3809489716u, 1077065985u, 500272335u, 0, LOG_TOLERANCE, 0},
+{ 280, 1049519003u, 330905705u, 1086260896u, 90264431u, 3224279566u, 1302925296u, 0, LOG_TOLERANCE, 0},
+{ 281, 1040729961u, 4162008079u, 3194387916u, 759522153u, 3224703502u, 4232165330u, 0, LOG_TOLERANCE, 0},
+{ 282, 1081015037u, 1839697482u, 3216442625u, 2211508949u, 1075186970u, 3091760478u, 0, LOG_TOLERANCE, 0},
+{ 283, 1102323563u, 3736863454u, 1063475914u, 3150741666u, 1077125931u, 2240619440u, 0, LOG_TOLERANCE, 0},
+{ 284, 1060785883u, 4200269406u, 3236646101u, 1061812176u, 3223275563u, 4059264129u, 0, LOG_TOLERANCE, 0},
+{ 285, 1080217979u, 106027290u, 3234978297u, 2245237549u, 1075056284u, 3935577174u, 0, LOG_TOLERANCE, 0},
+{ 286, 1099500686u, 2132131375u, 3250483427u, 3449276437u, 1077004004u, 2860765758u, 0, LOG_TOLERANCE, 0},
+{ 287, 1089388778u, 2334440944u, 1105423490u, 4004336184u, 1076238827u, 2435489549u, 0, LOG_TOLERANCE, 0},
+{ 288, 1071289056u, 4090088208u, 1042030013u, 3898658299u, 3219923055u, 1857017027u, 0, LOG_TOLERANCE, 0},
+{ 289, 1060424416u, 2272831437u, 3253082595u, 2639188641u, 3223329932u, 4210841791u, 0, LOG_TOLERANCE, 0},
+{ 290, 1054766684u, 1856594168u, 3189515294u, 4101853676u, 3223824989u, 3244034946u, 0, LOG_TOLERANCE, 0},
+{ 291, 1076012412u, 2211699255u, 3195060344u, 3865018604u, 1073863724u, 4035608178u, 0, LOG_TOLERANCE, 0},
+{ 292, 1095283362u, 996259334u, 3241496889u, 3782673116u, 1076755197u, 2401647281u, 0, LOG_TOLERANCE, 0},
+{ 293, 1099130747u, 3840380763u, 1048674041u, 550040067u, 1076987270u, 1735374993u, 0, LOG_TOLERANCE, 0},
+{ 294, 1103935945u, 95874100u, 3237232828u, 2645647822u, 1077194684u, 2850194252u, 0, LOG_TOLERANCE, 0},
+{ 295, 1043665640u, 3441419500u, 3252367038u, 876710419u, 3224576503u, 273309740u, 0, LOG_TOLERANCE, 0},
+{ 296, 1091109904u, 2560836004u, 3199616543u, 1180840586u, 1076393466u, 634133261u, 0, LOG_TOLERANCE, 0},
+{ 297, 1074119318u, 2218230392u, 3227485787u, 3947214579u, 1072693915u, 3593274056u, 0, LOG_TOLERANCE, 0},
+{ 298, 1079539654u, 1447312532u, 1081476588u, 780366847u, 1074943401u, 3038225178u, 0, LOG_TOLERANCE, 0},
+{ 299, 1072569643u, 2842113832u, 3216156731u, 225159029u, 3215923786u, 3238443975u, 0, LOG_TOLERANCE, 0},
+{ 300, 1098117193u, 1601981129u, 3234628869u, 2236538344u, 1076943624u, 3187559764u, 0, LOG_TOLERANCE, 0},
+{ 301, 1085173524u, 2194185737u, 3242362684u, 87913366u, 1075874049u, 1040928910u, 0, LOG_TOLERANCE, 0},
+{ 302, 1051600232u, 1346862963u, 1077836259u, 3604666660u, 3224098914u, 287386136u, 0, LOG_TOLERANCE, 0},
+{ 303, 1064772331u, 3115209742u, 1099332326u, 1325101950u, 3222582423u, 1527830367u, 0, LOG_TOLERANCE, 0},
+{ 304, 1077062394u, 3889223100u, 1053247613u, 3371396923u, 1074227736u, 3155029876u, 0, LOG_TOLERANCE, 0},
+{ 305, 1072994220u, 4163120793u, 1075022670u, 1387631215u, 1070605899u, 3048914167u, 0, LOG_TOLERANCE, 0},
+{ 306, 1057998131u, 1532426189u, 1063168268u, 3397022615u, 3223546922u, 3454376569u, 0, LOG_TOLERANCE, 0},
+{ 307, 1053549673u, 89324166u, 1079206060u, 3429424710u, 3223927395u, 296891673u, 0, LOG_TOLERANCE, 0},
+{ 308, 1044841454u, 747591401u, 1072238381u, 2803213904u, 3224525301u, 1809647640u, 0, LOG_TOLERANCE, 0},
+{ 309, 1091113780u, 271904221u, 1044258318u, 1858545114u, 1076393775u, 2673972484u, 0, LOG_TOLERANCE, 0},
+{ 310, 1080585266u, 314958082u, 3249912496u, 2966213175u, 1075124621u, 156791433u, 0, LOG_TOLERANCE, 0},
+{ 311, 1049695766u, 3119528953u, 3217179014u, 2908718240u, 3224264186u, 1502162494u, 0, LOG_TOLERANCE, 0},
+{ 312, 1094983928u, 2018361566u, 1100926600u, 3985805054u, 1076728385u, 621786893u, 0, LOG_TOLERANCE, 0},
+{ 313, 1070132580u, 409584884u, 3239758947u, 755795129u, 3220843859u, 3819242064u, 0, LOG_TOLERANCE, 0},
+{ 314, 1075772446u, 1819156379u, 3251342302u, 2982669005u, 1073766572u, 1356860078u, 0, LOG_TOLERANCE, 0},
+{ 315, 1101563433u, 2080534280u, 3188254060u, 449171797u, 1077093468u, 3222605176u, 0, LOG_TOLERANCE, 0},
+{ 316, 1095956900u, 168744837u, 3214950009u, 1322217822u, 1076811501u, 1717897709u, 0, LOG_TOLERANCE, 0},
+{ 317, 1106743252u, 3250487255u, 1062120700u, 1876195180u, 1077317976u, 138849911u, 0, LOG_TOLERANCE, 0},
+{ 318, 1078859832u, 1336400247u, 1098057903u, 3314079581u, 1074815957u, 1152068432u, 0, LOG_TOLERANCE, 0},
+{ 319, 1056195172u, 265025555u, 1063854282u, 3779482256u, 3223696746u, 1903973229u, 0, LOG_TOLERANCE, 0},
+{ 320, 1067300501u, 887044257u, 1054789618u, 2732056261u, 3222032812u, 2455803958u, 0, LOG_TOLERANCE, 0},
+{ 321, 1050106742u, 4027115185u, 3191764868u, 2940199511u, 3224223208u, 4043849432u, 0, LOG_TOLERANCE, 0},
+{ 322, 1055016507u, 2875684421u, 3227459837u, 2251967570u, 3223801114u, 1956518469u, 0, LOG_TOLERANCE, 0},
+{ 323, 1063244412u, 284173546u, 3238823679u, 3557800647u, 3222862271u, 3966292736u, 0, LOG_TOLERANCE, 0},
+{ 324, 1101458560u, 3147771266u, 3220110464u, 2933364246u, 1077089046u, 2278939221u, 0, LOG_TOLERANCE, 0},
+{ 325, 1064853160u, 3366183281u, 3234870843u, 537442654u, 3222568808u, 3221004128u, 0, LOG_TOLERANCE, 0},
+{ 326, 1096635140u, 2529029548u, 3249882819u, 3781513577u, 1076868555u, 562313644u, 0, LOG_TOLERANCE, 0},
+{ 327, 1065952706u, 1080845539u, 3206760016u, 911778687u, 3222378869u, 341314984u, 0, LOG_TOLERANCE, 0},
+{ 328, 1044467388u, 469586759u, 1091830022u, 3080528840u, 3224543980u, 1618140319u, 0, LOG_TOLERANCE, 0},
+{ 329, 1080249104u, 2863108169u, 3225605506u, 2508274250u, 1075062818u, 3647419175u, 0, LOG_TOLERANCE, 0},
+{ 330, 1063343336u, 4080017377u, 3206492941u, 1470284690u, 3222839853u, 2867700472u, 0, LOG_TOLERANCE, 0},
+{ 331, 1059636742u, 3867917386u, 1102054928u, 3504746045u, 3223397823u, 1671545983u, 0, LOG_TOLERANCE, 0},
+{ 332, 1064522279u, 2962134101u, 3244741577u, 3390537350u, 3222629666u, 3158492516u, 0, LOG_TOLERANCE, 0},
+{ 333, 1088201813u, 1702237980u, 1071598971u, 1102587474u, 1076138651u, 2622934639u, 0, LOG_TOLERANCE, 0},
+{ 334, 1055486470u, 2180218657u, 3211592260u, 1206527853u, 3223757724u, 3258037863u, 0, LOG_TOLERANCE, 0},
+{ 335, 1049601096u, 394130786u, 3242511482u, 2437699868u, 3224274271u, 3825574203u, 0, LOG_TOLERANCE, 0},
+{ 336, 1044237059u, 849581558u, 3252006507u, 2008614943u, 3224553811u, 3657190491u, 0, LOG_TOLERANCE, 0},
+{ 337, 1062656366u, 3128971673u, 3249137531u, 2773583059u, 3222949104u, 4235986512u, 0, LOG_TOLERANCE, 0},
+{ 338, 1085029866u, 590727700u, 3248651761u, 2183878539u, 1075864251u, 1337466743u, 0, LOG_TOLERANCE, 0},
+{ 339, 1101098629u, 820687580u, 3208143496u, 1402434664u, 1077071097u, 630507849u, 0, LOG_TOLERANCE, 0},
+{ 340, 1104807187u, 1873709254u, 3245167989u, 44275991u, 1077233627u, 35393437u, 0, LOG_TOLERANCE, 0},
+{ 341, 1042185105u, 1174874204u, 3208263730u, 2360372288u, 3224643164u, 1125405730u, 0, LOG_TOLERANCE, 0},
+{ 342, 1103854676u, 937573440u, 3208953761u, 211240241u, 1077191792u, 2799624452u, 0, LOG_TOLERANCE, 0},
+{ 343, 1096065286u, 2469774991u, 1043117070u, 3380071805u, 1076822454u, 3235225443u, 0, LOG_TOLERANCE, 0},
+{ 344, 1058121042u, 442507560u, 3254252803u, 3257889649u, 3223533145u, 2585938391u, 0, LOG_TOLERANCE, 0},
+{ 345, 1068850520u, 1854921625u, 1049810168u, 2729627545u, 3221478934u, 598289984u, 0, LOG_TOLERANCE, 0},
+{ 346, 1107228981u, 4001809575u, 3240128649u, 278261523u, 1077335900u, 1358170156u, 0, LOG_TOLERANCE, 0},
+{ 347, 1087224694u, 1793907966u, 3238955714u, 398859249u, 1076052696u, 2028953044u, 0, LOG_TOLERANCE, 0},
+{ 348, 1053468899u, 2511916952u, 3219195283u, 1697158299u, 3223933318u, 3252060136u, 0, LOG_TOLERANCE, 0},
+{ 349, 1069985548u, 3230931724u, 3243897690u, 3508781585u, 3220942754u, 2973571582u, 0, LOG_TOLERANCE, 0},
+{ 350, 1103847606u, 1674254897u, 1046547577u, 217148561u, 1077191534u, 3981186583u, 0, LOG_TOLERANCE, 0},
+{ 351, 1063780306u, 3275604304u, 3194840159u, 2991205850u, 3222754528u, 2855600771u, 0, LOG_TOLERANCE, 0},
+{ 352, 1047765727u, 3509997278u, 3248888030u, 3897986511u, 3224399429u, 1263281156u, 0, LOG_TOLERANCE, 0},
+{ 353, 1047182435u, 2156824613u, 1042295665u, 1239257646u, 3224424628u, 4130330871u, 0, LOG_TOLERANCE, 0},
+{ 354, 1065780437u, 1073153314u, 3250031627u, 2567234990u, 3222407810u, 3861114186u, 0, LOG_TOLERANCE, 0},
+{ 355, 1043109764u, 4261696995u, 3197784432u, 323702024u, 3224601934u, 3660455745u, 0, LOG_TOLERANCE, 0},
+{ 356, 1096207349u, 4075177615u, 3202791065u, 1919006082u, 1076835551u, 1200557086u, 0, LOG_TOLERANCE, 0},
+{ 357, 1091786365u, 386429966u, 1086504491u, 3698826164u, 1076450574u, 1244797795u, 0, LOG_TOLERANCE, 0},
+{ 358, 1078327190u, 1681986446u, 3194985869u, 3072950140u, 1074676469u, 2143197479u, 0, LOG_TOLERANCE, 0},
+{ 359, 1069828285u, 3719038997u, 1055433962u, 3331415058u, 3221059996u, 3710963779u, 0, LOG_TOLERANCE, 0},
+{ 360, 1060749713u, 2420250111u, 3238002206u, 1928661079u, 3223281121u, 4182204469u, 0, LOG_TOLERANCE, 0},
+{ 361, 1081914210u, 3679866727u, 3227386672u, 1273835792u, 1075348638u, 2488201983u, 0, LOG_TOLERANCE, 0},
+{ 362, 1041622738u, 2682092368u, 3234222284u, 1325425811u, 3224664830u, 1088579835u, 0, LOG_TOLERANCE, 0},
+{ 363, 1056312613u, 4175172697u, 3208346191u, 2130706153u, 3223685636u, 4242260445u, 0, LOG_TOLERANCE, 0},
+{ 364, 1092089624u, 1200784450u, 1083605096u, 1248595607u, 1076478694u, 1626266244u, 0, LOG_TOLERANCE, 0},
+{ 365, 1066407215u, 1897285171u, 3251296075u, 944966123u, 3222314345u, 3783490951u, 0, LOG_TOLERANCE, 0},
+{ 366, 1093887602u, 2270747330u, 3230692631u, 422503284u, 1076632700u, 2223491330u, 0, LOG_TOLERANCE, 0},
+{ 367, 1084120037u, 2857564741u, 1075647403u, 3308906709u, 1075726771u, 3738019719u, 0, LOG_TOLERANCE, 0},
+{ 368, 1055991450u, 1380066948u, 3232612906u, 2613634294u, 3223718579u, 1312415733u, 0, LOG_TOLERANCE, 0},
+{ 369, 1063890856u, 4022784584u, 1060483857u, 3264056381u, 3222736721u, 3541437472u, 0, LOG_TOLERANCE, 0},
+{ 370, 1044637404u, 1778509100u, 3213146285u, 2665833973u, 3224534827u, 704175941u, 0, LOG_TOLERANCE, 0},
+{ 371, 1069243652u, 1859175955u, 1079949560u, 4258450607u, 3221349189u, 3394474619u, 0, LOG_TOLERANCE, 0},
+{ 372, 1048277388u, 4128020197u, 1076266146u, 4122840980u, 3224377490u, 3333906039u, 0, LOG_TOLERANCE, 0},
+{ 373, 1045699515u, 2454653987u, 3229487005u, 2977478685u, 3224488724u, 2052223869u, 0, LOG_TOLERANCE, 0},
+{ 374, 1106072835u, 1355181872u, 1095308770u, 436846481u, 1077286905u, 3531674556u, 0, LOG_TOLERANCE, 0},
+{ 375, 1099121654u, 2592856453u, 3247825559u, 3195234082u, 1076986800u, 414496240u, 0, LOG_TOLERANCE, 0},
+{ 376, 1074634375u, 3554670043u, 1091621009u, 3321236467u, 1073017240u, 1967217478u, 0, LOG_TOLERANCE, 0},
+{ 377, 1069012833u, 1936670355u, 1095715713u, 2958468553u, 3221421428u, 846254916u, 0, LOG_TOLERANCE, 0},
+{ 378, 1044807461u, 2960339502u, 1098808013u, 1044068983u, 3224526795u, 1144583180u, 0, LOG_TOLERANCE, 0},
+{ 379, 1049207537u, 4093388677u, 1095478112u, 1735930261u, 3224301857u, 951820485u, 0, LOG_TOLERANCE, 0},
+{ 380, 1091040302u, 1807398746u, 3195743135u, 4261616162u, 1076387779u, 4000737953u, 0, LOG_TOLERANCE, 0},
+{ 381, 1061810546u, 3250576797u, 1059002384u, 3043079652u, 3223097520u, 3867116202u, 0, LOG_TOLERANCE, 0},
+{ 382, 1069207109u, 666051428u, 3208765404u, 1912684117u, 3221359984u, 44859516u, 0, LOG_TOLERANCE, 0},
+{ 383, 1103487420u, 1949030179u, 1096388934u, 896459246u, 1077176849u, 3384776839u, 0, LOG_TOLERANCE, 0},
+{ 384, 1054300653u, 622499767u, 1066707637u, 1490260486u, 3223859833u, 3933837574u, 0, LOG_TOLERANCE, 0},
+{ 385, 1106688493u, 1490616165u, 3251242436u, 795675736u, 1077315609u, 3224780635u, 0, LOG_TOLERANCE, 0},
+{ 386, 1080943896u, 3662877092u, 3234317146u, 3200513112u, 1075177620u, 3055843857u, 0, LOG_TOLERANCE, 0},
+{ 387, 1084088786u, 1356101968u, 3236536816u, 3062844611u, 1075722621u, 2632841302u, 0, LOG_TOLERANCE, 0},
+{ 388, 1072438992u, 2284484846u, 3219498359u, 3240896015u, 3217066749u, 4038143420u, 0, LOG_TOLERANCE, 0},
+{ 389, 1088276041u, 494503287u, 1092811254u, 142673998u, 1076143734u, 3881294548u, 0, LOG_TOLERANCE, 0},
+{ 390, 1104642268u, 3394882641u, 3225306538u, 364852125u, 1077226961u, 36589885u, 0, LOG_TOLERANCE, 0},
+{ 391, 1077778115u, 193885269u, 1088149839u, 1359805831u, 1074469221u, 177780347u, 0, LOG_TOLERANCE, 0},
+{ 392, 1053001134u, 592580907u, 3199560872u, 3086438952u, 3223974161u, 362317677u, 0, LOG_TOLERANCE, 0},
+{ 393, 1059518664u, 1778008540u, 1049064687u, 73581647u, 3223407720u, 1905177841u, 0, LOG_TOLERANCE, 0},
+{ 394, 1099249950u, 233240285u, 1081923320u, 2710903921u, 1076993142u, 1735323538u, 0, LOG_TOLERANCE, 0},
+{ 395, 1069513767u, 3719878805u, 1079866720u, 3615458228u, 3221275628u, 3951131729u, 0, LOG_TOLERANCE, 0},
+{ 396, 1073711076u, 3647632375u, 3247225271u, 3839959621u, 1072018756u, 943970224u, 0, LOG_TOLERANCE, 0},
+{ 397, 1103401096u, 2232210456u, 3235434773u, 224271737u, 1077172781u, 196725945u, 0, LOG_TOLERANCE, 0},
+{ 398, 1045520036u, 2134662911u, 3190390590u, 4239009051u, 3224498319u, 1757386403u, 0, LOG_TOLERANCE, 0},
+{ 399, 1080526145u, 2305279897u, 1077668039u, 1854523320u, 1075114754u, 3304741914u, 0, LOG_TOLERANCE, 0},
+{ 400, 1072380611u, 538224650u, 3206153057u, 1379649610u, 3217336794u, 1283130523u, 0, LOG_TOLERANCE, 0},
+{ 401, 1048926859u, 3683897920u, 3244167599u, 3647579469u, 3224325816u, 816770831u, 0, LOG_TOLERANCE, 0},
+{ 402, 1090280933u, 2694093608u, 1042775347u, 598406111u, 1076319090u, 3356403737u, 0, LOG_TOLERANCE, 0},
+{ 403, 1064151744u, 872706833u, 1084802480u, 2200602798u, 3222698951u, 2113199186u, 0, LOG_TOLERANCE, 0},
+{ 404, 1042339597u, 904146293u, 1060867322u, 1729685598u, 3224636627u, 746916981u, 0, LOG_TOLERANCE, 0},
+{ 405, 1048211322u, 1894173462u, 3232800651u, 191960416u, 3224379943u, 1996947825u, 0, LOG_TOLERANCE, 0},
+{ 406, 1091225343u, 3521028551u, 1054522089u, 3287274359u, 1076402384u, 4209768157u, 0, LOG_TOLERANCE, 0},
+{ 407, 1095386964u, 959640601u, 3201578263u, 4136915018u, 1076763329u, 2457717894u, 0, LOG_TOLERANCE, 0},
+{ 408, 1064005451u, 1553716379u, 1106027987u, 984725765u, 3222719457u, 2955792047u, 0, LOG_TOLERANCE, 0},
+{ 409, 1091348993u, 2287646644u, 3240329321u, 2276183378u, 1076411309u, 2287451717u, 0, LOG_TOLERANCE, 0},
+{ 410, 1068209174u, 3940225170u, 3199544434u, 997572161u, 3221708492u, 3428245006u, 0, LOG_TOLERANCE, 0},
+{ 411, 1065284713u, 36116288u, 3206886566u, 4196602670u, 3222506108u, 2017444572u, 0, LOG_TOLERANCE, 0},
+{ 412, 1094212205u, 3550227562u, 3207257983u, 2747744117u, 1076662503u, 4126480558u, 0, LOG_TOLERANCE, 0},
+{ 413, 1104236126u, 507130047u, 1048359321u, 3229888373u, 1077206901u, 2272076931u, 0, LOG_TOLERANCE, 0},
+{ 414, 1075513130u, 2210969014u, 1081031001u, 1946786091u, 1073648058u, 4287756280u, 0, LOG_TOLERANCE, 0},
+{ 415, 1088823342u, 4059150589u, 3189759234u, 1177045799u, 1076195670u, 168819796u, 0, LOG_TOLERANCE, 0},
+{ 416, 1093103612u, 2664812822u, 1050343198u, 2034180320u, 1076566627u, 3519473592u, 0, LOG_TOLERANCE, 0},
+{ 417, 1066295469u, 1175750283u, 3235559706u, 1424491340u, 3222329337u, 1404700686u, 0, LOG_TOLERANCE, 0},
+{ 418, 1066420545u, 1630036121u, 3231972785u, 3195479448u, 3222311051u, 1432321875u, 0, LOG_TOLERANCE, 0},
+{ 419, 1090429875u, 2527029044u, 1046927050u, 4000723255u, 1076329192u, 2019252442u, 0, LOG_TOLERANCE, 0},
+{ 420, 1085208677u, 3335703647u, 3237349676u, 3869440059u, 1075876339u, 1110855580u, 0, LOG_TOLERANCE, 0},
+{ 421, 1091433848u, 3888398377u, 3196041693u, 1290567220u, 1076417100u, 1637354096u, 0, LOG_TOLERANCE, 0},
+{ 422, 1066679070u, 3242451480u, 3248384948u, 707431021u, 3222234337u, 3397134035u, 0, LOG_TOLERANCE, 0},
+{ 423, 1083230509u, 2739665123u, 1060777905u, 1733073225u, 1075571436u, 4071268588u, 0, LOG_TOLERANCE, 0},
+{ 424, 1078517061u, 1297274853u, 3208848704u, 3341639139u, 1074741421u, 4066881444u, 0, LOG_TOLERANCE, 0},
+{ 425, 1046570941u, 2228057309u, 1084318902u, 1317851136u, 3224452759u, 1577079524u, 0, LOG_TOLERANCE, 0},
+{ 426, 1088255327u, 270039934u, 3241414679u, 3063626339u, 1076142336u, 312904438u, 0, LOG_TOLERANCE, 0},
+{ 427, 1071694702u, 83062251u, 3211262173u, 2659016437u, 3219435632u, 2990582226u, 0, LOG_TOLERANCE, 0},
+{ 428, 1095743886u, 3833539373u, 3206667189u, 1567476111u, 1076788016u, 758411032u, 0, LOG_TOLERANCE, 0},
+{ 429, 1057711424u, 2382776852u, 3249232579u, 1546622468u, 3223566341u, 2208541704u, 0, LOG_TOLERANCE, 0},
+{ 430, 1085536439u, 1714300821u, 1104130938u, 4167591598u, 1075909687u, 2257964757u, 0, LOG_TOLERANCE, 0},
+{ 431, 1051092760u, 2798720100u, 1086978789u, 449990704u, 3224137825u, 3989600554u, 0, LOG_TOLERANCE, 0},
+{ 432, 1083714767u, 4039516226u, 3244344107u, 4272932619u, 1075667063u, 177846584u, 0, LOG_TOLERANCE, 0},
+{ 433, 1075224793u, 1683007544u, 1091105663u, 3805494321u, 1073461757u, 1964735653u, 0, LOG_TOLERANCE, 0},
+{ 434, 1073369300u, 2072627412u, 1094383324u, 3394151662u, 1071634515u, 3947641912u, 0, LOG_TOLERANCE, 0},
+{ 435, 1073086376u, 1120106427u, 3223631624u, 3404608264u, 1070882956u, 2186806101u, 0, LOG_TOLERANCE, 0},
+{ 436, 1097859997u, 559918757u, 3205077053u, 908100198u, 1076929260u, 181077198u, 0, LOG_TOLERANCE, 0},
+{ 437, 1042677918u, 2026673913u, 3244833635u, 2844573214u, 3224619103u, 1411053414u, 0, LOG_TOLERANCE, 0},
+{ 438, 1107083611u, 3946837259u, 3234993796u, 3850406820u, 1077331030u, 1746464057u, 0, LOG_TOLERANCE, 0},
+{ 439, 1057479809u, 3139330994u, 1046133568u, 1539650690u, 3223584445u, 303889266u, 0, LOG_TOLERANCE, 0},
+{ 440, 1089221852u, 1554593884u, 3228899878u, 2813752562u, 1076227495u, 3521483973u, 0, LOG_TOLERANCE, 0},
+{ 441, 1056505004u, 3804703138u, 1072931071u, 2053677923u, 3223669255u, 1544957199u, 0, LOG_TOLERANCE, 0},
+{ 442, 1097380651u, 289355864u, 1078453818u, 2143066338u, 1076912232u, 2177531595u, 0, LOG_TOLERANCE, 0},
+{ 443, 1056456232u, 2157691971u, 1106629150u, 110806409u, 3223673218u, 2123023082u, 0, LOG_TOLERANCE, 0},
+{ 444, 1082157019u, 3570399481u, 1085637605u, 180265334u, 1075383727u, 1957330776u, 0, LOG_TOLERANCE, 0},
+{ 445, 1053496534u, 558779875u, 3202046748u, 2338464653u, 3223931261u, 3653586452u, 0, LOG_TOLERANCE, 0},
+{ 446, 1045705464u, 1703969219u, 3229797258u, 1417521063u, 3224488429u, 1308720282u, 0, LOG_TOLERANCE, 0},
+{ 447, 1090298613u, 3917440951u, 1051668894u, 3736066983u, 1076320331u, 1887921718u, 0, LOG_TOLERANCE, 0},
+{ 448, 1064752080u, 3106613409u, 1066627453u, 2735392257u, 3222585948u, 408014405u, 0, LOG_TOLERANCE, 0},
+{ 449, 1065665372u, 2229777605u, 1065061963u, 2405869925u, 3222429090u, 2085078273u, 0, LOG_TOLERANCE, 0},
+{ 450, 1091979581u, 3967957902u, 1057416138u, 3459188071u, 1076469173u, 1237933408u, 0, LOG_TOLERANCE, 0},
+{ 451, 1068639210u, 3699016825u, 3249713090u, 796144848u, 3221564708u, 13809233u, 0, LOG_TOLERANCE, 0},
+{ 452, 1081332748u, 3285165564u, 3211948811u, 401510871u, 1075251694u, 3343192796u, 0, LOG_TOLERANCE, 0},
+{ 453, 1094257658u, 634857910u, 3199607513u, 914218057u, 1076666184u, 2365285189u, 0, LOG_TOLERANCE, 0},
+{ 454, 1083743336u, 2030735578u, 3233855943u, 965677531u, 1075671747u, 3755425130u, 0, LOG_TOLERANCE, 0},
+{ 455, 1079556815u, 3957229084u, 1051050470u, 3123776651u, 1074946192u, 1593874845u, 0, LOG_TOLERANCE, 0},
+{ 456, 1074379685u, 162122081u, 3239376395u, 108064594u, 1072869757u, 311403082u, 0, LOG_TOLERANCE, 0},
+{ 457, 1089788138u, 869031839u, 3225020876u, 1344301606u, 1076278721u, 2052619875u, 0, LOG_TOLERANCE, 0},
+{ 458, 1066949826u, 946696117u, 3231825228u, 1700703647u, 3222136911u, 3234660715u, 0, LOG_TOLERANCE, 0},
+{ 459, 1075492875u, 3394168074u, 1076939786u, 1666995668u, 1073635999u, 2354579684u, 0, LOG_TOLERANCE, 0},
+{ 460, 1061291147u, 2488789804u, 3238508333u, 1506943664u, 3223193085u, 2395026729u, 0, LOG_TOLERANCE, 0},
+{ 461, 1072788663u, 3844072288u, 3202592279u, 2630019853u, 1068911508u, 1747838674u, 0, LOG_TOLERANCE, 0},
+{ 462, 1072450894u, 1244307192u, 3191297711u, 2540916692u, 3216994329u, 4168950885u, 0, LOG_TOLERANCE, 0},
+{ 463, 1052579044u, 2871645739u, 3239081581u, 1440249115u, 3224012773u, 4034559683u, 0, LOG_TOLERANCE, 0},
+{ 464, 1068350633u, 1231934926u, 3236746788u, 603977748u, 3221668985u, 130084003u, 0, LOG_TOLERANCE, 0},
+{ 465, 1047966041u, 2386312545u, 1063169277u, 2715234268u, 3224389948u, 783950888u, 0, LOG_TOLERANCE, 0},
+{ 466, 1087803418u, 915867083u, 1046790892u, 3347417612u, 1076107382u, 1970735447u, 0, LOG_TOLERANCE, 0},
+{ 467, 1105984188u, 3553288373u, 1065698616u, 2906680663u, 1077283811u, 3228434780u, 0, LOG_TOLERANCE, 0},
+{ 468, 1045506226u, 2342364630u, 1051356723u, 4019093203u, 3224499119u, 1422614641u, 0, LOG_TOLERANCE, 0},
+{ 469, 1053685514u, 2911548084u, 1105282515u, 2476735795u, 3223917999u, 2323260261u, 0, LOG_TOLERANCE, 0},
+{ 470, 1050472772u, 1836216409u, 1101062307u, 2519592554u, 3224195107u, 156157416u, 0, LOG_TOLERANCE, 0},
+{ 471, 1070178161u, 1235369496u, 3222946447u, 668087854u, 3220815003u, 2491682284u, 0, LOG_TOLERANCE, 0},
+{ 472, 1061070948u, 2981820811u, 1059838516u, 2845580478u, 3223235452u, 3382317431u, 0, LOG_TOLERANCE, 0},
+{ 473, 1046447766u, 1565550570u, 3217165795u, 4162017137u, 3224459254u, 3914539253u, 0, LOG_TOLERANCE, 0},
+{ 474, 1089767730u, 2808968027u, 1055630096u, 1782326814u, 1076276748u, 3860952757u, 0, LOG_TOLERANCE, 0},
+{ 475, 1053576974u, 1492622658u, 3216653077u, 3972512122u, 3223925451u, 3928061943u, 0, LOG_TOLERANCE, 0},
+{ 476, 1074688031u, 2722693603u, 3227814791u, 3169731970u, 1073045831u, 1648821496u, 0, LOG_TOLERANCE, 0},
+{ 477, 1070422983u, 899763203u, 3207606001u, 2804747833u, 3220672293u, 2109485257u, 0, LOG_TOLERANCE, 0},
+{ 478, 1083186677u, 3789058912u, 3228095081u, 4135937628u, 1075560778u, 1017192561u, 0, LOG_TOLERANCE, 0},
+{ 479, 1060199382u, 1682808307u, 3206960335u, 232877759u, 3223353590u, 3898794040u, 0, LOG_TOLERANCE, 0},
+{ 480, 1094607838u, 2851963139u, 3246852961u, 2590862592u, 1076691530u, 843693284u, 0, LOG_TOLERANCE, 0},
+{ 481, 1081200406u, 2422232642u, 3234779662u, 290458310u, 1075223537u, 2996632407u, 0, LOG_TOLERANCE, 0},
+{ 482, 1063187430u, 1082582386u, 1075605675u, 2602133689u, 3222869534u, 497064377u, 0, LOG_TOLERANCE, 0},
+{ 483, 1092334963u, 1789635787u, 1059414278u, 1048286093u, 1076497719u, 35468346u, 0, LOG_TOLERANCE, 0},
+{ 484, 1098330542u, 231339448u, 1055573265u, 504907415u, 1076953536u, 1119059296u, 0, LOG_TOLERANCE, 0},
+{ 485, 1063211461u, 1153251200u, 3204617090u, 1772013857u, 3222866446u, 3672537745u, 0, LOG_TOLERANCE, 0},
+{ 486, 1099551055u, 1082898276u, 3212089272u, 1449080862u, 1077005985u, 1029802319u, 0, LOG_TOLERANCE, 0},
+{ 487, 1086008285u, 3177299045u, 1058862813u, 809400815u, 1075950038u, 2713697878u, 0, LOG_TOLERANCE, 0},
+{ 488, 1083370902u, 1924429710u, 1056464743u, 3349283177u, 1075602923u, 210852422u, 0, LOG_TOLERANCE, 0},
+{ 489, 1097989743u, 42238036u, 1042379500u, 2113559863u, 1076936898u, 4273537346u, 0, LOG_TOLERANCE, 0},
+{ 490, 1064761243u, 3304403230u, 3217556703u, 58952646u, 3222584347u, 1589474103u, 0, LOG_TOLERANCE, 0},
+{ 491, 1065185882u, 1645486982u, 3224301095u, 3636267471u, 3222519201u, 137895691u, 0, LOG_TOLERANCE, 0},
+{ 492, 1062762009u, 619402181u, 3235208235u, 557360557u, 3222931234u, 1968443211u, 0, LOG_TOLERANCE, 0},
+{ 493, 1090754746u, 110029735u, 1046937383u, 984375729u, 1076361464u, 987250933u, 0, LOG_TOLERANCE, 0},
+{ 494, 1042013090u, 4063688092u, 3203235744u, 1049950343u, 3224649065u, 604966936u, 0, LOG_TOLERANCE, 0},
+{ 495, 1062350619u, 650996069u, 1054971928u, 3953359826u, 3223008973u, 1813427148u, 0, LOG_TOLERANCE, 0},
+{ 496, 1079572157u, 66926332u, 1090561839u, 1379780888u, 1074948662u, 433676492u, 0, LOG_TOLERANCE, 0},
+{ 497, 1085969659u, 2803378256u, 1086057989u, 498534626u, 1075947164u, 835461350u, 0, LOG_TOLERANCE, 0},
+{ 498, 1082618553u, 2846400785u, 1047142525u, 1375153550u, 1075477355u, 2196414547u, 0, LOG_TOLERANCE, 0},
+{ 499, 1044581201u, 2869128958u, 1070972315u, 4246440273u, 3224537713u, 3512318899u, 0, LOG_TOLERANCE, 0},
+{ 500, 1051832506u, 3112381207u, 1044430965u, 3981604561u, 3224077928u, 494780876u, 0, LOG_TOLERANCE, 0},
+{ 501, 1083771349u, 243303420u, 1093735824u, 1575581926u, 1075676261u, 2797159781u, 0, LOG_TOLERANCE, 0},
+{ 502, 1091654349u, 3218865041u, 3204803496u, 3840388050u, 1076436155u, 4233818719u, 0, LOG_TOLERANCE, 0},
+{ 503, 1048415431u, 336846959u, 1052664471u, 3798336786u, 3224372644u, 1850665100u, 0, LOG_TOLERANCE, 0},
+{ 504, 1055954236u, 3639240976u, 1081202165u, 1844741676u, 3223722992u, 1428253868u, 0, LOG_TOLERANCE, 0},
+{ 505, 1064421145u, 717293069u, 3211534283u, 582401011u, 3222651488u, 457041754u, 0, LOG_TOLERANCE, 0},
+{ 506, 1104478864u, 3766248610u, 3196520332u, 1174437546u, 1077219611u, 2272566305u, 0, LOG_TOLERANCE, 0},
+{ 507, 1083431226u, 756959182u, 3204099341u, 1581804034u, 1075615370u, 3301009964u, 0, LOG_TOLERANCE, 0},
+{ 508, 1058322796u, 3560686300u, 3220980617u, 4277975772u, 3223512067u, 3447536936u, 0, LOG_TOLERANCE, 0},
+{ 509, 1062422428u, 2598148853u, 3217622194u, 3460421008u, 3222993634u, 3740783369u, 0, LOG_TOLERANCE, 0},
+{ 510, 1066720824u, 136600515u, 3209934920u, 3340653128u, 3222218081u, 3300781843u, 0, LOG_TOLERANCE, 0},
+{ 511, 1096820310u, 1045480938u, 3251354609u, 4133432965u, 1076881221u, 1639289155u, 0, LOG_TOLERANCE, 0},
+{ 512, 1091599431u, 1630207738u, 3239996829u, 2393354808u, 1076429657u, 658484818u, 0, LOG_TOLERANCE, 0},
+{ 513, 1043142370u, 3739770117u, 1059520750u, 3959551225u, 3224600804u, 1163315162u, 0, LOG_TOLERANCE, 0},
+{ 514, 1083246857u, 1498861716u, 1091297147u, 847410798u, 1075575303u, 3775039354u, 0, LOG_TOLERANCE, 0},
+{ 515, 1073516688u, 983275314u, 3232538664u, 2244973629u, 1071811569u, 2728229451u, 0, LOG_TOLERANCE, 0},
+{ 516, 1054849265u, 2353103845u, 3235718771u, 2978889966u, 3223819677u, 197121532u, 0, LOG_TOLERANCE, 0},
+{ 517, 1103874344u, 1546972125u, 3249076079u, 1987349196u, 1077192504u, 1510519247u, 0, LOG_TOLERANCE, 0},
+{ 518, 1090735865u, 2769161072u, 1075207126u, 292616282u, 1076359523u, 89361979u, 0, LOG_TOLERANCE, 0},
+{ 519, 1052228650u, 36855311u, 1052128202u, 1479039342u, 3224039401u, 3593532843u, 0, LOG_TOLERANCE, 0},
+{ 520, 1083757053u, 2027463605u, 1066023013u, 3369686340u, 1075673967u, 3693747671u, 0, LOG_TOLERANCE, 0},
+{ 521, 1050369101u, 3808681655u, 1054161346u, 1821773119u, 3224202474u, 692132331u, 0, LOG_TOLERANCE, 0},
+{ 522, 1040685928u, 3175490326u, 3226879970u, 845687760u, 3224705342u, 819266546u, 0, LOG_TOLERANCE, 0},
+{ 523, 1042302993u, 3124482451u, 3242748377u, 3259417226u, 3224638837u, 2723875780u, 0, LOG_TOLERANCE, 0},
+{ 524, 1045245695u, 2751606436u, 3236210939u, 3923142740u, 3224509740u, 972503631u, 0, LOG_TOLERANCE, 0},
+{ 525, 1095694737u, 2016872044u, 3228408064u, 4201274408u, 1076784880u, 2075690093u, 0, LOG_TOLERANCE, 0},
+{ 526, 1051865606u, 1019916843u, 3219974785u, 1977881787u, 3224074238u, 1888960312u, 0, LOG_TOLERANCE, 0},
+{ 527, 1051995104u, 2060433318u, 1075872515u, 366073725u, 3224060725u, 1765681116u, 0, LOG_TOLERANCE, 0},
+{ 528, 1043696909u, 1098469906u, 1082900695u, 2349346832u, 3224575035u, 3674662655u, 0, LOG_TOLERANCE, 0},
+{ 529, 1062491059u, 3011196295u, 3252479932u, 2459281672u, 3222979769u, 492196641u, 0, LOG_TOLERANCE, 0},
+{ 530, 1073850675u, 2843222682u, 1089275809u, 298982001u, 1072256860u, 1361015105u, 0, LOG_TOLERANCE, 0},
+{ 531, 1101737698u, 914741728u, 3203468059u, 2833809843u, 1077100215u, 617711599u, 0, LOG_TOLERANCE, 0},
+{ 532, 1089280230u, 1274901962u, 3241535845u, 3759113509u, 1076231571u, 557911230u, 0, LOG_TOLERANCE, 0},
+{ 533, 1098432794u, 2134927252u, 3253802671u, 3013731444u, 1076957802u, 3748566065u, 0, LOG_TOLERANCE, 0},
+{ 534, 1099201341u, 2230655177u, 3254510616u, 1249674366u, 1076990811u, 285259783u, 0, LOG_TOLERANCE, 0},
+{ 535, 1062971253u, 717357389u, 1083533731u, 3746683362u, 3222899074u, 465863828u, 0, LOG_TOLERANCE, 0},
+{ 536, 1066289466u, 834976849u, 3217357661u, 2465861779u, 3222330128u, 4215014023u, 0, LOG_TOLERANCE, 0},
+{ 537, 1045656117u, 1385714428u, 1053358395u, 3007113740u, 3224490919u, 160169310u, 0, LOG_TOLERANCE, 0},
+{ 538, 1050527919u, 599268545u, 3201368210u, 2309854744u, 3224191350u, 2572280436u, 0, LOG_TOLERANCE, 0},
+{ 539, 1069954454u, 2840234388u, 3232496515u, 333365983u, 3220964919u, 2207069711u, 0, LOG_TOLERANCE, 0},
+{ 540, 1045922781u, 3136078996u, 3194520860u, 2650572904u, 3224478467u, 2261318089u, 0, LOG_TOLERANCE, 0},
+{ 541, 1086204043u, 2405805086u, 3251640319u, 324233833u, 1075963709u, 1682447551u, 0, LOG_TOLERANCE, 0},
+{ 542, 1106699146u, 2589598340u, 3254677807u, 952438812u, 1077316076u, 3633878054u, 0, LOG_TOLERANCE, 0},
+{ 543, 1041631125u, 1922837702u, 3216892718u, 3535907549u, 3224664448u, 1875921049u, 0, LOG_TOLERANCE, 0},
+{ 544, 1096132220u, 261447440u, 3209805849u, 1150571079u, 1076828788u, 2089162237u, 0, LOG_TOLERANCE, 0},
+{ 545, 1095805232u, 4026487528u, 1073152064u, 27340691u, 1076794453u, 1737884956u, 0, LOG_TOLERANCE, 0},
+{ 546, 1081640044u, 338765118u, 1086225786u, 3207238249u, 1075307339u, 978420089u, 0, LOG_TOLERANCE, 0},
+{ 547, 1048699055u, 1085283176u, 3187775111u, 1601194210u, 3224349104u, 167106457u, 0, LOG_TOLERANCE, 0},
+{ 548, 1091520173u, 3031712790u, 3252307859u, 170666844u, 1076422740u, 744995018u, 0, LOG_TOLERANCE, 0},
+{ 549, 1071378583u, 3148395674u, 1041913758u, 3306391490u, 3219817927u, 894704365u, 0, LOG_TOLERANCE, 0},
+{ 550, 1053793422u, 2205233857u, 3208100078u, 3993195511u, 3223910988u, 856785751u, 0, LOG_TOLERANCE, 0},
+{ 551, 1067699608u, 4282766727u, 1072820377u, 1874778218u, 3221882135u, 136784904u, 0, LOG_TOLERANCE, 0},
+{ 552, 1063349444u, 2920860798u, 3218070226u, 3104066154u, 3222838447u, 3579382968u, 0, LOG_TOLERANCE, 0},
+{ 553, 1057466703u, 969991373u, 3250596895u, 1734386152u, 3223585548u, 1096500115u, 0, LOG_TOLERANCE, 0},
+{ 554, 1091432170u, 1218740205u, 3239802737u, 2610078504u, 1076416988u, 1166408302u, 0, LOG_TOLERANCE, 0},
+{ 555, 1058547594u, 1485218325u, 3220870240u, 3591664613u, 3223491992u, 2889488052u, 0, LOG_TOLERANCE, 0},
+{ 556, 1054590495u, 690157417u, 3190850619u, 4192347699u, 3223837100u, 221540590u, 0, LOG_TOLERANCE, 0},
+{ 557, 1096053810u, 4009839784u, 1079670252u, 394167192u, 1076821337u, 1851630736u, 0, LOG_TOLERANCE, 0},
+{ 558, 1087075589u, 961532417u, 1092588071u, 2923790239u, 1076042262u, 402021294u, 0, LOG_TOLERANCE, 0},
+{ 559, 1056395443u, 4174125604u, 1050682630u, 2169701868u, 3223678331u, 3987244812u, 0, LOG_TOLERANCE, 0},
+{ 560, 1095608827u, 4146748230u, 1087373950u, 2481478351u, 1076779212u, 2755104011u, 0, LOG_TOLERANCE, 0},
+{ 561, 1076987866u, 3984715440u, 1050421618u, 2446142566u, 1074194784u, 222203740u, 0, LOG_TOLERANCE, 0},
+{ 562, 1084172406u, 936290150u, 1100614426u, 3625806370u, 1075733582u, 2307849831u, 0, LOG_TOLERANCE, 0},
+{ 563, 1099787952u, 1866615265u, 3215651428u, 2337013350u, 1077014572u, 4172289639u, 0, LOG_TOLERANCE, 0},
+{ 564, 1105714654u, 712227971u, 1106004723u, 973148499u, 1077273392u, 1598723415u, 0, LOG_TOLERANCE, 0},
+{ 565, 1082604551u, 3409813738u, 3244817008u, 1933503498u, 1075474955u, 4275872054u, 0, LOG_TOLERANCE, 0},
+{ 566, 1079943733u, 3180389060u, 3228735703u, 83422217u, 1075002315u, 1460579331u, 0, LOG_TOLERANCE, 0},
+{ 567, 1077878724u, 556972671u, 3204582372u, 841555801u, 1074495740u, 3043398158u, 0, LOG_TOLERANCE, 0},
+{ 568, 1070767721u, 4189151332u, 1080874032u, 706326922u, 3220423008u, 1451854222u, 0, LOG_TOLERANCE, 0},
+{ 569, 1096151307u, 198291836u, 1057281892u, 2188836928u, 1076830539u, 4025310681u, 0, LOG_TOLERANCE, 0},
+{ 570, 1078091995u, 1219449298u, 3228734687u, 3504562743u, 1074582949u, 3796387511u, 0, LOG_TOLERANCE, 0},
+{ 571, 1057086816u, 1776099219u, 1094316777u, 4188083896u, 3223622381u, 1340974487u, 0, LOG_TOLERANCE, 0},
+{ 572, 1046362060u, 2614400266u, 1073750227u, 3003203347u, 3224462031u, 2168733507u, 0, LOG_TOLERANCE, 0},
+{ 573, 1066499030u, 2959351406u, 1105603716u, 311851587u, 3222292450u, 2448510388u, 0, LOG_TOLERANCE, 0},
+{ 574, 1084544434u, 865443613u, 1097532516u, 3622237781u, 1075809786u, 4009940215u, 0, LOG_TOLERANCE, 0},
+{ 575, 1084303018u, 447506102u, 3195759295u, 3603669725u, 1075758783u, 778755463u, 0, LOG_TOLERANCE, 0},
+{ 576, 1097890173u, 3934398273u, 1040996422u, 2968621268u, 1076931117u, 3632567756u, 0, LOG_TOLERANCE, 0},
+{ 577, 1049256177u, 784208771u, 1088764788u, 2182296421u, 3224298116u, 2494467149u, 0, LOG_TOLERANCE, 0},
+{ 578, 1100848643u, 1527590526u, 3206961556u, 2823164069u, 1077060409u, 1703424684u, 0, LOG_TOLERANCE, 0},
+{ 579, 1089160483u, 3876699591u, 3207481130u, 4028148535u, 1076223070u, 2488144317u, 0, LOG_TOLERANCE, 0},
+{ 580, 1083576186u, 2164249756u, 1059857743u, 1785169952u, 1075643067u, 4067087010u, 0, LOG_TOLERANCE, 0},
+{ 581, 1091804009u, 2079273665u, 1080303860u, 625760474u, 1076452386u, 2402517231u, 0, LOG_TOLERANCE, 0},
+{ 582, 1079002460u, 3636214836u, 1068367620u, 2932621925u, 1074836452u, 1246949188u, 0, LOG_TOLERANCE, 0},
+{ 583, 1043995372u, 4274131512u, 1047707755u, 92550763u, 3224562471u, 3439797135u, 0, LOG_TOLERANCE, 0},
+{ 584, 1051338473u, 2648933384u, 1084603503u, 3534304873u, 3224117543u, 1738801372u, 0, LOG_TOLERANCE, 0},
+{ 585, 1064563235u, 3216750767u, 3191088629u, 547482628u, 3222621321u, 3716790217u, 0, LOG_TOLERANCE, 0},
+{ 586, 1061084774u, 1420360746u, 1080063101u, 1690029499u, 3223233655u, 426639274u, 0, LOG_TOLERANCE, 0},
+{ 587, 1082371716u, 1908572179u, 1080112083u, 1228319033u, 1075431453u, 2787108747u, 0, LOG_TOLERANCE, 0},
+{ 588, 1048158178u, 500312015u, 3212368508u, 3864619086u, 3224381985u, 1230868351u, 0, LOG_TOLERANCE, 0},
+{ 589, 1073851962u, 4211343447u, 1087492676u, 4272583781u, 1072259191u, 2246212895u, 0, LOG_TOLERANCE, 0},
+{ 590, 1099392394u, 2382118000u, 1042665328u, 567154882u, 1076999532u, 1195356221u, 0, LOG_TOLERANCE, 0},
+{ 591, 1058013442u, 1435344339u, 3216303171u, 2275988178u, 3223545946u, 1433265295u, 0, LOG_TOLERANCE, 0},
+{ 592, 1067054971u, 3403659753u, 3218043030u, 1926480488u, 3222103473u, 3585903650u, 0, LOG_TOLERANCE, 0},
+{ 593, 1076840383u, 1198845185u, 3225556149u, 1130089684u, 1074134956u, 770846098u, 0, LOG_TOLERANCE, 0},
+{ 594, 1075179394u, 2183928090u, 1048403956u, 963834821u, 1073429155u, 1101532312u, 0, LOG_TOLERANCE, 0},
+{ 595, 1101672960u, 2120625396u, 1041006976u, 2137548527u, 1077097789u, 1094065157u, 0, LOG_TOLERANCE, 0},
+{ 596, 1099230238u, 586700956u, 1059670521u, 303891699u, 1076992206u, 4144042493u, 0, LOG_TOLERANCE, 0},
+{ 597, 1071510850u, 2509132460u, 1102827530u, 2205707903u, 3219671660u, 3639433009u, 0, LOG_TOLERANCE, 0},
+{ 598, 1057376949u, 1229308263u, 3209170414u, 4206576047u, 3223593363u, 900139131u, 0, LOG_TOLERANCE, 0},
+{ 599, 1076592641u, 4078010749u, 3199236456u, 733478972u, 1074067427u, 3307722640u, 0, LOG_TOLERANCE, 0},
+{ 600, 1050228936u, 4277541051u, 3199806921u, 397102023u, 3224213142u, 2343694908u, 0, LOG_TOLERANCE, 0},
+{ 601, 1048491365u, 900999594u, 3234720188u, 2530214248u, 3224369047u, 2922487944u, 0, LOG_TOLERANCE, 0},
+{ 602, 1076543548u, 4000609478u, 1096577064u, 4148592328u, 1074052948u, 253985069u, 0, LOG_TOLERANCE, 0},
+{ 603, 1048668084u, 2154187873u, 3224392607u, 3957250362u, 3224352615u, 1700962361u, 0, LOG_TOLERANCE, 0},
+{ 604, 1075929840u, 2867079200u, 1101870326u, 921212001u, 1073827044u, 3912397586u, 0, LOG_TOLERANCE, 0},
+{ 605, 1085738242u, 674547716u, 1063216239u, 3929755226u, 1075928482u, 1096646355u, 0, LOG_TOLERANCE, 0},
+{ 606, 1092932203u, 3158182449u, 1043794244u, 3259056345u, 1076551118u, 1944847734u, 0, LOG_TOLERANCE, 0},
+{ 607, 1089293008u, 3002823940u, 1059511739u, 2832435794u, 1076232446u, 2248040348u, 0, LOG_TOLERANCE, 0},
+{ 608, 1069821174u, 2196511929u, 1049973941u, 3672092877u, 3221065621u, 1333818035u, 0, LOG_TOLERANCE, 0},
+{ 609, 1050438056u, 3655292191u, 1086438127u, 3567072906u, 3224197528u, 856774981u, 0, LOG_TOLERANCE, 0},
+{ 610, 1095703300u, 1617573614u, 3201863123u, 3090723732u, 1076785432u, 919734899u, 0, LOG_TOLERANCE, 0},
+{ 611, 1085717732u, 679893506u, 3211547753u, 824081024u, 1075926690u, 2224601098u, 0, LOG_TOLERANCE, 0},
+{ 612, 1089530525u, 2285242807u, 1084999409u, 2221731406u, 1076251335u, 2335692597u, 0, LOG_TOLERANCE, 0},
+{ 613, 1059250016u, 1935990727u, 1088822246u, 1058156518u, 3223433483u, 3217816881u, 0, LOG_TOLERANCE, 0},
+{ 614, 1102839166u, 521023584u, 1059186903u, 4245163857u, 1077147558u, 2892805731u, 0, LOG_TOLERANCE, 0},
+{ 615, 1103891140u, 2312887617u, 3191771354u, 1885370807u, 1077193106u, 297823039u, 0, LOG_TOLERANCE, 0},
+{ 616, 1105470167u, 1796441468u, 1100030327u, 2772711004u, 1077262253u, 1282095196u, 0, LOG_TOLERANCE, 0},
+{ 617, 1056793172u, 2095685003u, 1077984448u, 2100773742u, 3223648008u, 3902380592u, 0, LOG_TOLERANCE, 0},
+{ 618, 1045470972u, 2892538035u, 1042396334u, 4162200338u, 3224501206u, 3305443403u, 0, LOG_TOLERANCE, 0},
+{ 619, 1095242103u, 2177698116u, 3227557177u, 150832500u, 1076751813u, 652084626u, 0, LOG_TOLERANCE, 0},
+{ 620, 1044078568u, 607966734u, 3236250630u, 4164600559u, 3224559359u, 4052486987u, 0, LOG_TOLERANCE, 0},
+{ 621, 1068906164u, 2830122967u, 1046096700u, 3713346883u, 3221458501u, 2135199639u, 0, LOG_TOLERANCE, 0},
+{ 622, 1089714315u, 2314640506u, 3203696416u, 3276228872u, 1076271440u, 3165050519u, 0, LOG_TOLERANCE, 0},
+{ 623, 1065428659u, 469331883u, 3249037349u, 2999233437u, 3222479189u, 1973618642u, 0, LOG_TOLERANCE, 0},
+{ 624, 1097382011u, 560886625u, 1091899487u, 748795120u, 1076912287u, 2351244050u, 0, LOG_TOLERANCE, 0},
+{ 625, 1049886858u, 2958421324u, 1092569414u, 3235243477u, 3224243534u, 1631239268u, 0, LOG_TOLERANCE, 0},
+{ 626, 1045542849u, 3221475559u, 1043038304u, 915608434u, 3224497019u, 12328601u, 0, LOG_TOLERANCE, 0},
+{ 627, 1071197530u, 3007808652u, 3216682290u, 2531019474u, 3220036272u, 3512463986u, 0, LOG_TOLERANCE, 0},
+{ 628, 1094545351u, 1767658578u, 3237045269u, 2313128318u, 1076687351u, 4133464776u, 0, LOG_TOLERANCE, 0},
+{ 629, 1063134244u, 1926845182u, 1066835624u, 1783256828u, 3222876498u, 4254270569u, 0, LOG_TOLERANCE, 0},
+{ 630, 1040575629u, 90378038u, 1057168870u, 164358218u, 3224710189u, 1836351366u, 0, LOG_TOLERANCE, 0},
+{ 631, 1106859172u, 1610524680u, 1085283851u, 2903496007u, 1077322719u, 3956409329u, 0, LOG_TOLERANCE, 0},
+{ 632, 1078635586u, 4274321404u, 3202913591u, 720121831u, 1074778233u, 4182823459u, 0, LOG_TOLERANCE, 0},
+{ 633, 1051205256u, 2034778236u, 1071133763u, 1413236391u, 3224128149u, 214647840u, 0, LOG_TOLERANCE, 0},
+{ 634, 1051063028u, 1489112261u, 1076691395u, 348210906u, 3224140507u, 2241216118u, 0, LOG_TOLERANCE, 0},
+{ 635, 1059260269u, 2797651324u, 3224410527u, 2374818327u, 3223432401u, 2818559991u, 0, LOG_TOLERANCE, 0},
+{ 636, 1088287256u, 1823161666u, 3197810695u, 3119680047u, 1076144486u, 410596024u, 0, LOG_TOLERANCE, 0},
+{ 637, 1065927336u, 3420950657u, 1087084743u, 2136638961u, 3222382935u, 3289438458u, 0, LOG_TOLERANCE, 0},
+{ 638, 1069902224u, 3554566429u, 1062907717u, 2736702589u, 3221003238u, 2295141582u, 0, LOG_TOLERANCE, 0},
+{ 639, 1097405019u, 2928437580u, 3187765027u, 1393427873u, 1076913211u, 3191623646u, 0, LOG_TOLERANCE, 0},
+{ 640, 1061817913u, 189447067u, 1051643315u, 828663513u, 3223096387u, 2558305145u, 0, LOG_TOLERANCE, 0},
+{ 641, 1052313869u, 2852350928u, 1045683757u, 673354280u, 3224032410u, 3091433288u, 0, LOG_TOLERANCE, 0},
+{ 642, 1043946301u, 3589563265u, 3248741629u, 812657927u, 3224564379u, 145610791u, 0, LOG_TOLERANCE, 0},
+{ 643, 1043127178u, 1766416701u, 1100392103u, 2185373290u, 3224601328u, 2709694091u, 0, LOG_TOLERANCE, 0},
+{ 644, 1072791741u, 3763582673u, 3191965790u, 388374829u, 1068956587u, 4000095759u, 0, LOG_TOLERANCE, 0},
+{ 645, 1079635136u, 1187403069u, 1075300235u, 336640304u, 1074958563u, 4287311234u, 0, LOG_TOLERANCE, 0},
+{ 646, 1103926251u, 1718795752u, 3243118752u, 683369237u, 1077194346u, 1449151468u, 0, LOG_TOLERANCE, 0},
+{ 647, 1063308449u, 1863545307u, 1069449477u, 3418627399u, 3222848031u, 2779607712u, 0, LOG_TOLERANCE, 0},
+{ 648, 1069601294u, 3295607249u, 1068878592u, 1633297809u, 3221240901u, 2594350627u, 0, LOG_TOLERANCE, 0},
+{ 649, 1058947127u, 2585980994u, 3236670483u, 1286750688u, 3223462494u, 904067198u, 0, LOG_TOLERANCE, 0},
+{ 650, 1046157033u, 15816845u, 3233249283u, 2491924775u, 3224469193u, 4212288781u, 0, LOG_TOLERANCE, 0},
+{ 651, 1042413021u, 1051983351u, 1049180786u, 1474421917u, 3224632405u, 4286106996u, 0, LOG_TOLERANCE, 0},
+{ 652, 1053765877u, 2003816032u, 1086050104u, 668090487u, 3223912742u, 2616410283u, 0, LOG_TOLERANCE, 0},
+{ 653, 1052556037u, 3671484625u, 1067020039u, 430024694u, 3224014365u, 3396241137u, 0, LOG_TOLERANCE, 0},
+{ 654, 1067397110u, 3991830201u, 3207808714u, 1021245839u, 3222007425u, 4243502376u, 0, LOG_TOLERANCE, 0},
+{ 655, 1064194391u, 4255801807u, 3207681716u, 1926756877u, 3222693263u, 1936878201u, 0, LOG_TOLERANCE, 0},
+{ 656, 1052140785u, 4167786896u, 1077097744u, 1775517981u, 3224047022u, 3920752385u, 0, LOG_TOLERANCE, 0},
+{ 657, 1085601978u, 3187518564u, 1082437406u, 944672491u, 1075916091u, 3265610257u, 0, LOG_TOLERANCE, 0},
+{ 658, 1049366282u, 953085192u, 3227310828u, 3459155777u, 3224290023u, 2656300300u, 0, LOG_TOLERANCE, 0},
+{ 659, 1069502506u, 1908555460u, 1073640207u, 260441967u, 3221278498u, 706663362u, 0, LOG_TOLERANCE, 0},
+{ 660, 1067219606u, 250762477u, 1072582645u, 2886742039u, 3222055058u, 672407782u, 0, LOG_TOLERANCE, 0},
+{ 661, 1103422358u, 786180031u, 3197734769u, 2788918312u, 1077173806u, 3746531445u, 0, LOG_TOLERANCE, 0},
+{ 662, 1087028179u, 2055912467u, 3244244909u, 1394142937u, 1076038762u, 1795047243u, 0, LOG_TOLERANCE, 0},
+{ 663, 1069612985u, 91984146u, 3222252812u, 4126276047u, 3221235370u, 3814066775u, 0, LOG_TOLERANCE, 0},
+{ 664, 1081340139u, 3942715706u, 3239316352u, 410676547u, 1075253181u, 2506903412u, 0, LOG_TOLERANCE, 0},
+{ 665, 1051074198u, 86296211u, 1085850694u, 649202596u, 3224139493u, 2880611269u, 0, LOG_TOLERANCE, 0},
+{ 666, 1097882744u, 3069064472u, 3237358008u, 23209276u, 1076930665u, 1450427370u, 0, LOG_TOLERANCE, 0},
+{ 667, 1081235288u, 1867297860u, 1072956607u, 2513414118u, 1075231257u, 2535725157u, 0, LOG_TOLERANCE, 0},
+{ 668, 1103049699u, 3171788768u, 3235208783u, 162138697u, 1077154679u, 624087679u, 0, LOG_TOLERANCE, 0},
+{ 669, 1081728455u, 1245110700u, 1081653954u, 2584994077u, 1075321380u, 2914390661u, 0, LOG_TOLERANCE, 0},
+{ 670, 1098026472u, 3347226587u, 1058962932u, 2291943376u, 1076938909u, 376541139u, 0, LOG_TOLERANCE, 0},
+{ 671, 1058899062u, 966940828u, 1060726420u, 2798041096u, 3223465711u, 660497085u, 0, LOG_TOLERANCE, 0},
+{ 672, 1072793759u, 2487340727u, 3223786370u, 4105954991u, 1068986073u, 992013529u, 0, LOG_TOLERANCE, 0},
+{ 673, 1100632849u, 1671039260u, 1086395032u, 3745833360u, 1077052685u, 2200577415u, 0, LOG_TOLERANCE, 0},
+{ 674, 1057078797u, 651714217u, 1047070645u, 2130549237u, 3223623282u, 754729227u, 0, LOG_TOLERANCE, 0},
+{ 675, 1059632083u, 1423000172u, 3247822717u, 1551488170u, 3223398200u, 442592399u, 0, LOG_TOLERANCE, 0},
+{ 676, 1054113659u, 921077236u, 3213332351u, 1431049019u, 3223876915u, 4055130359u, 0, LOG_TOLERANCE, 0},
+{ 677, 1067510295u, 655715547u, 3190985373u, 1527556471u, 3221964801u, 460556857u, 0, LOG_TOLERANCE, 0},
+{ 678, 1080171331u, 4110878657u, 3251297180u, 879739345u, 1075046177u, 1152302381u, 0, LOG_TOLERANCE, 0},
+{ 679, 1085804762u, 2623955764u, 1093699897u, 1216444475u, 1075934130u, 1839592766u, 0, LOG_TOLERANCE, 0},
+{ 680, 1091905603u, 107442539u, 3239767031u, 1149813329u, 1076462360u, 989447787u, 0, LOG_TOLERANCE, 0},
+{ 681, 1085961592u, 1761361082u, 3226030205u, 1121849716u, 1075946555u, 3494606763u, 0, LOG_TOLERANCE, 0},
+{ 682, 1092603467u, 2534144722u, 1044223733u, 3512285706u, 1076515793u, 3692269602u, 0, LOG_TOLERANCE, 0},
+{ 683, 1064362429u, 4073670723u, 1050729852u, 3034818849u, 3222665043u, 2495345955u, 0, LOG_TOLERANCE, 0},
+{ 684, 1101984574u, 1421423503u, 1060278048u, 1397153092u, 1077108720u, 2189969898u, 0, LOG_TOLERANCE, 0},
+{ 685, 1069938181u, 1649206019u, 1104525577u, 1267104290u, 3220976709u, 450530095u, 0, LOG_TOLERANCE, 0},
+{ 686, 1041818449u, 3775270392u, 1040251850u, 68667319u, 3224656453u, 1211401134u, 0, LOG_TOLERANCE, 0},
+{ 687, 1056847252u, 3099226694u, 3254103006u, 4020102648u, 3223644378u, 3130345782u, 0, LOG_TOLERANCE, 0},
+{ 688, 1054108064u, 3718441177u, 3215643451u, 4032951536u, 3223877462u, 3985566266u, 0, LOG_TOLERANCE, 0},
+{ 689, 1044131371u, 508048351u, 3210196713u, 1707937896u, 3224557458u, 3794348307u, 0, LOG_TOLERANCE, 0},
+{ 690, 1051127979u, 2784738160u, 1073435430u, 1109346010u, 3224134718u, 3763898383u, 0, LOG_TOLERANCE, 0},
+{ 691, 1078241642u, 3331916473u, 3238794568u, 2707019594u, 1074644350u, 3000068445u, 0, LOG_TOLERANCE, 0},
+{ 692, 1093182670u, 3093165197u, 1072894805u, 2853215019u, 1076573206u, 1052317797u, 0, LOG_TOLERANCE, 0},
+{ 693, 1069098491u, 2135797997u, 1048399559u, 2941926126u, 3221393445u, 3011165202u, 0, LOG_TOLERANCE, 0},
+{ 694, 1048430980u, 2083412145u, 3249335391u, 507212448u, 3224372120u, 1391497455u, 0, LOG_TOLERANCE, 0},
+{ 695, 1075363751u, 4270176401u, 3246546709u, 3288753319u, 1073555677u, 2172392844u, 0, LOG_TOLERANCE, 0},
+{ 696, 1100449215u, 3692175292u, 3197271515u, 3989064196u, 1077045309u, 3615376251u, 0, LOG_TOLERANCE, 0},
+{ 697, 1104208090u, 3111924274u, 1066772558u, 59281695u, 1077205261u, 865144419u, 0, LOG_TOLERANCE, 0},
+{ 698, 1067683911u, 2135245466u, 3208804313u, 3846547392u, 3221888515u, 519778435u, 0, LOG_TOLERANCE, 0},
+{ 699, 1094877811u, 972051266u, 3222814246u, 3539700586u, 1076717393u, 83189865u, 0, LOG_TOLERANCE, 0},
+{ 700, 1055482282u, 330951080u, 1079189813u, 583922384u, 3223758054u, 1639805153u, 0, LOG_TOLERANCE, 0},
+{ 701, 1089640092u, 1711944085u, 1104170032u, 643991456u, 1076263688u, 2474566662u, 0, LOG_TOLERANCE, 0},
+{ 702, 1086945901u, 2072550721u, 3250147641u, 4280263530u, 1076032457u, 3503982552u, 0, LOG_TOLERANCE, 0},
+{ 703, 1045489058u, 1566376352u, 1067251433u, 72984588u, 3224500127u, 2508162584u, 0, LOG_TOLERANCE, 0},
+{ 704, 1095276569u, 3103043079u, 1045853123u, 410067497u, 1076754646u, 1510773583u, 0, LOG_TOLERANCE, 0},
+{ 705, 1069188845u, 1910366299u, 1081770885u, 634683073u, 3221365463u, 978597306u, 0, LOG_TOLERANCE, 0},
+{ 706, 1081530688u, 2226525875u, 3224149290u, 2126302825u, 1075288861u, 2856541718u, 0, LOG_TOLERANCE, 0},
+{ 707, 1073150247u, 1383818978u, 3193885723u, 1220372650u, 1071064776u, 471056163u, 0, LOG_TOLERANCE, 0},
+{ 708, 1066482943u, 1953339096u, 1077176252u, 1476516558u, 3222296157u, 654778802u, 0, LOG_TOLERANCE, 0},
+{ 709, 1066092000u, 1306277326u, 1079089150u, 4093716191u, 3222357599u, 1919559441u, 0, LOG_TOLERANCE, 0},
+{ 710, 1085665139u, 51750045u, 3242913901u, 4256866157u, 1075921980u, 3722237157u, 0, LOG_TOLERANCE, 0},
+{ 711, 1047601319u, 2163853087u, 3232053146u, 2962422808u, 3224408387u, 1081948641u, 0, LOG_TOLERANCE, 0},
+{ 712, 1075516945u, 1618388148u, 3233154824u, 3711953164u, 1073650314u, 3812165070u, 0, LOG_TOLERANCE, 0},
+{ 713, 1099384354u, 357108214u, 3202294604u, 2306775262u, 1076999187u, 3070689462u, 0, LOG_TOLERANCE, 0},
+{ 714, 1054420438u, 2571356437u, 3249064063u, 2394851808u, 3223849956u, 882036239u, 0, LOG_TOLERANCE, 0},
+{ 715, 1083004443u, 4273880094u, 1103698617u, 3578832032u, 1075536085u, 1389153068u, 0, LOG_TOLERANCE, 0},
+{ 716, 1085943053u, 2091068742u, 3228270226u, 3980489730u, 1075945146u, 3992739543u, 0, LOG_TOLERANCE, 0},
+{ 717, 1081533104u, 2772307714u, 1051008486u, 32546576u, 1075289284u, 1304738751u, 0, LOG_TOLERANCE, 0},
+{ 718, 1093745567u, 2143788498u, 3195498043u, 3630119231u, 1076617173u, 1940068716u, 0, LOG_TOLERANCE, 0},
+{ 719, 1051149287u, 2527385594u, 3240503648u, 3482095012u, 3224132874u, 932358108u, 0, LOG_TOLERANCE, 0},
+{ 720, 1094685151u, 2690097362u, 1068598730u, 2360266862u, 1076696521u, 4114952864u, 0, LOG_TOLERANCE, 0},
+{ 721, 1058857869u, 2673272949u, 1082639557u, 522449749u, 3223468532u, 1585235010u, 0, LOG_TOLERANCE, 0},
+{ 722, 1104424147u, 3596379400u, 3242016775u, 2002293002u, 1077216954u, 167880927u, 0, LOG_TOLERANCE, 0},
+{ 723, 1099439656u, 4113224369u, 3222122439u, 2152316893u, 1077001521u, 3528290140u, 0, LOG_TOLERANCE, 0},
+{ 724, 1073313068u, 31662602u, 1047721249u, 1747087514u, 1071495479u, 361856717u, 0, LOG_TOLERANCE, 0},
+{ 725, 1102980109u, 2489659568u, 1097051253u, 277506957u, 1077152410u, 220731815u, 0, LOG_TOLERANCE, 0},
+{ 726, 1043918186u, 3850162281u, 3213841942u, 438724093u, 3224565497u, 1335181127u, 0, LOG_TOLERANCE, 0},
+{ 727, 1095392535u, 2431814052u, 1075518084u, 2672434118u, 1076763752u, 3902665789u, 0, LOG_TOLERANCE, 0},
+{ 728, 1095679087u, 391606792u, 1048184750u, 4168944276u, 1076783866u, 201632535u, 0, LOG_TOLERANCE, 0},
+{ 729, 1100308768u, 457529672u, 3201090276u, 72407935u, 1077039049u, 1370091833u, 0, LOG_TOLERANCE, 0},
+{ 730, 1071237071u, 3954981400u, 1052053242u, 2411049585u, 3219986608u, 4011189326u, 0, LOG_TOLERANCE, 0},
+{ 731, 1086180091u, 485456950u, 1088415093u, 1655397424u, 1075962111u, 1049136648u, 0, LOG_TOLERANCE, 0},
+{ 732, 1050750780u, 1551748070u, 3236871640u, 1329701152u, 3224172582u, 3333561594u, 0, LOG_TOLERANCE, 0},
+{ 733, 1077155474u, 3099222537u, 1104984570u, 4293792842u, 1074266180u, 3823978682u, 0, LOG_TOLERANCE, 0},
+{ 734, 1056466057u, 3603065260u, 3197735968u, 2402359253u, 3223672410u, 1773379774u, 0, LOG_TOLERANCE, 0},
+{ 735, 1051340936u, 3961208159u, 3219057584u, 2340553876u, 3224117355u, 671685669u, 0, LOG_TOLERANCE, 0},
+{ 736, 1074881909u, 4014841779u, 3197672877u, 3697233334u, 1073186041u, 4149752821u, 0, LOG_TOLERANCE, 0},
+{ 737, 1065792009u, 1403876392u, 3254028950u, 921363393u, 3222405763u, 1643497528u, 0, LOG_TOLERANCE, 0},
+{ 738, 1107251806u, 1862576361u, 3194031708u, 2476290925u, 1077336633u, 466978083u, 0, LOG_TOLERANCE, 0},
+{ 739, 1049661768u, 1454212851u, 1088378861u, 3400401866u, 3224268227u, 2694325211u, 0, LOG_TOLERANCE, 0},
+{ 740, 1074406809u, 552676385u, 3188635745u, 3778112968u, 1072886487u, 3569287692u, 0, LOG_TOLERANCE, 0},
+{ 741, 1068925634u, 1199568671u, 3225679997u, 46947405u, 3221451536u, 928442461u, 0, LOG_TOLERANCE, 0},
+{ 742, 1077685537u, 2596231448u, 3253943728u, 2219151748u, 1074443573u, 2231242182u, 0, LOG_TOLERANCE, 0},
+{ 743, 1066527035u, 4119719558u, 3222036299u, 1275474618u, 3222286120u, 1979658371u, 0, LOG_TOLERANCE, 0},
+{ 744, 1092425015u, 3347296825u, 1101507910u, 1254014794u, 1076504062u, 3829864000u, 0, LOG_TOLERANCE, 0},
+{ 745, 1084119992u, 673775040u, 1070743626u, 244126093u, 1075726765u, 3754705647u, 0, LOG_TOLERANCE, 0},
+{ 746, 1055716202u, 1832066983u, 1051358028u, 3262483417u, 3223740808u, 426169343u, 0, LOG_TOLERANCE, 0},
+{ 747, 1077559600u, 3962610501u, 3198598777u, 849269178u, 1074406538u, 4237515409u, 0, LOG_TOLERANCE, 0},
+{ 748, 1087990252u, 2497516122u, 3254374111u, 2821429629u, 1076122977u, 4015412349u, 0, LOG_TOLERANCE, 0},
+{ 749, 1076236288u, 2805941787u, 3217785843u, 779131141u, 1073951923u, 1273545107u, 0, LOG_TOLERANCE, 0},
+{ 750, 1079425038u, 723423605u, 1084533420u, 627282213u, 1074923960u, 3923850419u, 0, LOG_TOLERANCE, 0},
+{ 751, 1068464032u, 4292778869u, 1078101071u, 1676860147u, 3221639332u, 890635976u, 0, LOG_TOLERANCE, 0},
+{ 752, 1076288502u, 3528118587u, 3194648564u, 2363260897u, 1073970522u, 2685750176u, 0, LOG_TOLERANCE, 0},
+{ 753, 1045414231u, 1307010018u, 1061248120u, 1468743108u, 3224504205u, 2718243292u, 0, LOG_TOLERANCE, 0},
+{ 754, 1099099491u, 107905661u, 3226089788u, 1943427674u, 1076985639u, 1932047369u, 0, LOG_TOLERANCE, 0},
+{ 755, 1040746893u, 760006940u, 1054265604u, 1749976597u, 3224702809u, 1323817312u, 0, LOG_TOLERANCE, 0},
+{ 756, 1090289736u, 2787503556u, 1081282610u, 1195841206u, 1076319709u, 4181618500u, 0, LOG_TOLERANCE, 0},
+{ 757, 1044318508u, 545462045u, 3208381743u, 1981311808u, 3224551133u, 2183045557u, 0, LOG_TOLERANCE, 0},
+{ 758, 1061232136u, 3657978397u, 1104463616u, 3501253426u, 3223206524u, 3484237357u, 0, LOG_TOLERANCE, 0},
+{ 759, 1049883857u, 1804177501u, 3210693633u, 3606766729u, 3224243834u, 3517531742u, 0, LOG_TOLERANCE, 0},
+{ 760, 1076856879u, 1336278526u, 1043741618u, 3165279431u, 1074139158u, 833486214u, 0, LOG_TOLERANCE, 0},
+{ 761, 1055471915u, 1599382075u, 1058018527u, 4212580517u, 3223758873u, 3473614230u, 0, LOG_TOLERANCE, 0},
+{ 762, 1060018678u, 3007589929u, 3202026547u, 2792028313u, 3223370131u, 3372574984u, 0, LOG_TOLERANCE, 0},
+{ 763, 1105599122u, 1866066996u, 1060329048u, 3727175322u, 1077268363u, 2407515951u, 0, LOG_TOLERANCE, 0},
+{ 764, 1050932995u, 150890940u, 1056025306u, 3082724735u, 3224152926u, 1543567732u, 0, LOG_TOLERANCE, 0},
+{ 765, 1062008939u, 80400395u, 1093584426u, 3478941315u, 3223068589u, 334202438u, 0, LOG_TOLERANCE, 0},
+{ 766, 1104156966u, 4050954182u, 3219263194u, 2537475930u, 1077202160u, 52121861u, 0, LOG_TOLERANCE, 0},
+{ 767, 1064841871u, 2881752155u, 3212589299u, 2559651278u, 3222570668u, 1289897413u, 0, LOG_TOLERANCE, 0},
+{ 768, 1101532656u, 440309030u, 3214267461u, 3788040806u, 1077092201u, 2541610027u, 0, LOG_TOLERANCE, 0},
+{ 769, 1100476615u, 918813144u, 3208535698u, 1607035904u, 1077046464u, 1838368906u, 0, LOG_TOLERANCE, 0},
+{ 770, 1042137451u, 2497054124u, 1089139147u, 2549609010u, 3224644746u, 2204082529u, 0, LOG_TOLERANCE, 0},
+{ 771, 1047037641u, 790219083u, 1054657139u, 2797979479u, 3224430281u, 2605152109u, 0, LOG_TOLERANCE, 0},
+{ 772, 1057781400u, 1149462078u, 1095765205u, 3879963182u, 3223561330u, 8173155u, 0, LOG_TOLERANCE, 0},
+{ 773, 1055246165u, 2684353926u, 3205212854u, 1732474928u, 3223778120u, 1100684416u, 0, LOG_TOLERANCE, 0},
+{ 774, 1095236965u, 2742237025u, 1051317716u, 3386396147u, 1076751385u, 2203378921u, 0, LOG_TOLERANCE, 0},
+{ 775, 1063230986u, 3408320912u, 1103071166u, 4233059513u, 3222863964u, 3924505576u, 0, LOG_TOLERANCE, 0},
+{ 776, 1064863548u, 1077495917u, 1088399968u, 433115118u, 3222567109u, 1263879149u, 0, LOG_TOLERANCE, 0},
+{ 777, 1057063924u, 841366493u, 1051716814u, 4121125128u, 3223624969u, 2299430516u, 0, LOG_TOLERANCE, 0},
+{ 778, 1064632084u, 321857207u, 1089128010u, 1149988239u, 3222607866u, 627293357u, 0, LOG_TOLERANCE, 0},
+{ 779, 1098059015u, 799866606u, 3197637091u, 3924438208u, 1076940639u, 3980982339u, 0, LOG_TOLERANCE, 0},
+{ 780, 1043579242u, 2002049816u, 1077053447u, 2240354761u, 3224580736u, 3000679411u, 0, LOG_TOLERANCE, 0},
+{ 781, 1081522635u, 478939968u, 1097035749u, 1066716440u, 1075287447u, 4249888900u, 0, LOG_TOLERANCE, 0},
+{ 782, 1084989993u, 1653104725u, 1088548129u, 81977716u, 1075861396u, 3386829085u, 0, LOG_TOLERANCE, 0},
+{ 783, 1049377628u, 3899475018u, 3189694084u, 3330093036u, 3224289217u, 1387095058u, 0, LOG_TOLERANCE, 0},
+{ 784, 1089312583u, 2612450289u, 1079065127u, 603380842u, 1076233776u, 1203102347u, 0, LOG_TOLERANCE, 0},
+{ 785, 1100636791u, 3962735564u, 1101570429u, 1372490825u, 1077052835u, 465092515u, 0, LOG_TOLERANCE, 0},
+{ 786, 1054806016u, 1479841439u, 1059312257u, 541504905u, 3223822432u, 2295334392u, 0, LOG_TOLERANCE, 0},
+{ 787, 1078662178u, 2626148789u, 1057571099u, 4121656076u, 1074786149u, 2318575113u, 0, LOG_TOLERANCE, 0},
+{ 788, 1081613389u, 1902560314u, 1043130231u, 3557671562u, 1075302954u, 181613322u, 0, LOG_TOLERANCE, 0},
+{ 789, 1046346124u, 41779312u, 1081626342u, 831171823u, 3224462561u, 114420931u, 0, LOG_TOLERANCE, 0},
+{ 790, 1058131100u, 1393168821u, 1066457405u, 1381616968u, 3223532010u, 2221031919u, 0, LOG_TOLERANCE, 0},
+{ 791, 1072338141u, 3756584649u, 3222267229u, 1423157432u, 3217538846u, 3153950627u, 0, LOG_TOLERANCE, 0},
+{ 792, 1106952026u, 1894912556u, 1042426694u, 155024547u, 1077326286u, 3244175068u, 0, LOG_TOLERANCE, 0},
+{ 793, 1047969864u, 35164295u, 3203391785u, 1037041084u, 3224389779u, 4101769333u, 0, LOG_TOLERANCE, 0},
+{ 794, 1084777479u, 3957875950u, 3232195211u, 1590756436u, 1075845035u, 4253257181u, 0, LOG_TOLERANCE, 0},
+{ 795, 1068844322u, 1447585080u, 1071279485u, 1107922438u, 3221481260u, 739417708u, 0, LOG_TOLERANCE, 0},
+{ 796, 1046252518u, 981897615u, 1051856116u, 430357614u, 3224465760u, 2990774932u, 0, LOG_TOLERANCE, 0},
+{ 797, 1080040567u, 395145384u, 3219821938u, 50586510u, 1075015570u, 401425942u, 0, LOG_TOLERANCE, 0},
+{ 798, 1069775912u, 750827797u, 1082862669u, 230466783u, 3221102144u, 3089938357u, 0, LOG_TOLERANCE, 0},
+{ 799, 1086668819u, 1365083575u, 3204848310u, 1700831722u, 1076008674u, 1350249998u, 0, LOG_TOLERANCE, 0},
+{ 800, 1070606742u, 344241827u, 1071538935u, 2715566077u, 3220571362u, 2564406257u, 0, LOG_TOLERANCE, 0},
+{ 801, 1100099208u, 4069301823u, 3193208760u, 2949125229u, 1077028431u, 4184156688u, 0, LOG_TOLERANCE, 0},
+{ 802, 1103231387u, 3585711710u, 1065801594u, 2302229267u, 1077163960u, 3362941620u, 0, LOG_TOLERANCE, 0},
+{ 803, 1046635308u, 709803845u, 1048741487u, 2296910194u, 3224449161u, 3527999523u, 0, LOG_TOLERANCE, 0},
+{ 804, 1045797131u, 744421179u, 1069302001u, 2659232829u, 3224484041u, 1605643857u, 0, LOG_TOLERANCE, 0},
+{ 805, 1092835968u, 1799949903u, 3192522886u, 4212149209u, 1076541532u, 2940590139u, 0, LOG_TOLERANCE, 0},
+{ 806, 1058624854u, 145234164u, 3250614064u, 912384201u, 3223485746u, 3198580186u, 0, LOG_TOLERANCE, 0},
+{ 807, 1093027016u, 2784620507u, 1102812948u, 3531481022u, 1076559923u, 64675630u, 0, LOG_TOLERANCE, 0},
+{ 808, 1103676015u, 383952592u, 3205659905u, 3633194728u, 1077184947u, 422506066u, 0, LOG_TOLERANCE, 0},
+{ 809, 1055992604u, 3792395543u, 1070072378u, 3864816376u, 3223718444u, 3170253965u, 0, LOG_TOLERANCE, 0},
+{ 810, 1057832625u, 2115553675u, 1066288499u, 3538377867u, 3223557779u, 620943456u, 0, LOG_TOLERANCE, 0},
+{ 811, 1104591537u, 1230026762u, 1090719723u, 440819880u, 1077224766u, 793358222u, 0, LOG_TOLERANCE, 0},
+{ 812, 1047111428u, 2991290482u, 1096886719u, 1097971167u, 3224427340u, 586302082u, 0, LOG_TOLERANCE, 0},
+{ 813, 1090048600u, 1098035020u, 3230900504u, 1479059095u, 1076301592u, 1583059249u, 0, LOG_TOLERANCE, 0},
+{ 814, 1103573316u, 1719428427u, 3188631907u, 3707377409u, 1077180662u, 744410774u, 0, LOG_TOLERANCE, 0},
+{ 815, 1053236165u, 3748932896u, 1084908557u, 1325384361u, 3223952056u, 54146495u, 0, LOG_TOLERANCE, 0},
+{ 816, 1084704076u, 3979168763u, 1057455255u, 2454615952u, 1075838772u, 4208492007u, 0, LOG_TOLERANCE, 0},
+{ 817, 1053106984u, 1449164578u, 1056960316u, 1654931641u, 3223963742u, 1191827742u, 0, LOG_TOLERANCE, 0},
+{ 818, 1071439010u, 2120487381u, 3226298974u, 2364226633u, 3219749836u, 3169186900u, 0, LOG_TOLERANCE, 0},
+{ 819, 1075071428u, 1074268944u, 1065730444u, 280016852u, 1073347289u, 2458807329u, 0, LOG_TOLERANCE, 0},
+{ 820, 1052824608u, 3315127889u, 3236295594u, 2900924954u, 3223993621u, 1689734749u, 0, LOG_TOLERANCE, 0},
+{ 821, 1048942243u, 2246037502u, 1049691002u, 1496066550u, 3224324383u, 896522170u, 0, LOG_TOLERANCE, 0},
+{ 822, 1045523211u, 4191285446u, 3217936236u, 2382392789u, 3224498136u, 3635803563u, 0, LOG_TOLERANCE, 0},
+{ 823, 1092833308u, 640099844u, 1042152237u, 2064279383u, 1076541257u, 2073083715u, 0, LOG_TOLERANCE, 0},
+{ 824, 1079913438u, 3468560824u, 1093251038u, 310958750u, 1074998329u, 1785611289u, 0, LOG_TOLERANCE, 0},
+{ 825, 1096788400u, 1413568905u, 1100941106u, 1627289946u, 1076878612u, 3418590u, 0, LOG_TOLERANCE, 0},
+{ 826, 1044065902u, 3797143370u, 3195497539u, 3843275034u, 3224559824u, 1066708699u, 0, LOG_TOLERANCE, 0},
+{ 827, 1104593745u, 2806642640u, 3201943068u, 2515980718u, 1077224863u, 1169910650u, 0, LOG_TOLERANCE, 0},
+{ 828, 1086877316u, 632580632u, 1078673506u, 3259601317u, 1076026960u, 1211939235u, 0, LOG_TOLERANCE, 0},
+{ 829, 1053496927u, 3309678799u, 1049337078u, 3056787074u, 3223931232u, 3362832351u, 0, LOG_TOLERANCE, 0},
+{ 830, 1074011641u, 2341164249u, 1080834967u, 2810890005u, 1072529938u, 3492796186u, 0, LOG_TOLERANCE, 0},
+{ 831, 1067019674u, 932124675u, 1093915797u, 662682630u, 3222114462u, 3894149768u, 0, LOG_TOLERANCE, 0},
+{ 832, 1101746443u, 1367996113u, 3251723684u, 2974064663u, 1077100536u, 289595985u, 0, LOG_TOLERANCE, 0},
+{ 833, 1080230731u, 323437999u, 1090499064u, 901457511u, 1075058981u, 2425521271u, 0, LOG_TOLERANCE, 0},
+{ 834, 1088295228u, 4184941840u, 3196770014u, 2458988443u, 1076145017u, 2080164599u, 0, LOG_TOLERANCE, 0},
+{ 835, 1087618284u, 2023065054u, 3211994098u, 2734612965u, 1076089849u, 4264391451u, 0, LOG_TOLERANCE, 0},
+{ 836, 1064074694u, 3679267365u, 3237728785u, 1699558211u, 3222709551u, 2162071350u, 0, LOG_TOLERANCE, 0},
+{ 837, 1088079010u, 1826799031u, 1078709629u, 3986905229u, 1076129783u, 831887257u, 0, LOG_TOLERANCE, 0},
+{ 838, 1052843785u, 351061688u, 3194386466u, 4105857588u, 3223991361u, 4161570046u, 0, LOG_TOLERANCE, 0},
+{ 839, 1054128006u, 1365244058u, 1064457319u, 1452191426u, 3223875523u, 2194127603u, 0, LOG_TOLERANCE, 0},
+{ 840, 1064122385u, 2463030625u, 3215975031u, 3773488326u, 3222702940u, 454708982u, 0, LOG_TOLERANCE, 0},
+{ 841, 1103793023u, 752664055u, 1065110394u, 1835931663u, 1077189510u, 1147034722u, 0, LOG_TOLERANCE, 0},
+{ 842, 1088045088u, 3496172149u, 1089617208u, 109068701u, 1076127223u, 3818699807u, 0, LOG_TOLERANCE, 0},
+{ 843, 1050651439u, 1636966254u, 1086098766u, 2016598298u, 3224183308u, 192307776u, 0, LOG_TOLERANCE, 0},
+{ 844, 1050931318u, 3551516956u, 1097969102u, 1317953425u, 3224153094u, 1643417671u, 0, LOG_TOLERANCE, 0},
+{ 845, 1082348569u, 2977627788u, 1045339018u, 516058480u, 1075426706u, 3059244798u, 0, LOG_TOLERANCE, 0},
+{ 846, 1089924930u, 3901731263u, 3189566462u, 32272932u, 1076291228u, 2566529534u, 0, LOG_TOLERANCE, 0},
+{ 847, 1077281796u, 1956025297u, 3246628529u, 3840733905u, 1074314218u, 1358305666u, 0, LOG_TOLERANCE, 0},
+{ 848, 1099818036u, 561057891u, 3198494340u, 4271027193u, 1077015587u, 909699399u, 0, LOG_TOLERANCE, 0},
+{ 849, 1103446273u, 692989850u, 3242630588u, 2492225971u, 1077174941u, 3636625117u, 0, LOG_TOLERANCE, 0},
+{ 850, 1057995749u, 3439913962u, 1067477011u, 2973333638u, 3223547072u, 3493673504u, 0, LOG_TOLERANCE, 0},
+{ 851, 1066510341u, 877613377u, 1044917899u, 809672798u, 3222289875u, 2551263584u, 0, LOG_TOLERANCE, 0},
+{ 852, 1074687806u, 905426932u, 1046417457u, 1086320855u, 1073045712u, 3786045969u, 0, LOG_TOLERANCE, 0},
+{ 853, 1098862981u, 2645567288u, 1051258339u, 557182478u, 1076973217u, 1877277898u, 0, LOG_TOLERANCE, 0},
+{ 854, 1056574302u, 186287752u, 1061342054u, 4054003419u, 3223663822u, 3680860005u, 0, LOG_TOLERANCE, 0},
+{ 855, 1097266673u, 3506889716u, 3243866036u, 519056371u, 1076907447u, 2195222634u, 0, LOG_TOLERANCE, 0},
+{ 856, 1042654053u, 2171898436u, 3246911982u, 1091500784u, 3224620197u, 242852427u, 0, LOG_TOLERANCE, 0},
+{ 857, 1096164025u, 368493885u, 3222871893u, 1419055230u, 1076831694u, 449968426u, 0, LOG_TOLERANCE, 0},
+{ 858, 1091950572u, 2010971245u, 3188804530u, 1518695799u, 1076466543u, 3088120894u, 0, LOG_TOLERANCE, 0},
+{ 859, 1057942861u, 1239207795u, 1040192984u, 2199481342u, 3223550449u, 736007617u, 0, LOG_TOLERANCE, 0},
+{ 860, 1063494989u, 4264613432u, 3203460972u, 3558930895u, 3222807000u, 3647579418u, 0, LOG_TOLERANCE, 0},
+{ 861, 1050299283u, 3772748958u, 3227667376u, 309688336u, 3224207679u, 3122404269u, 0, LOG_TOLERANCE, 0},
+{ 862, 1083259393u, 1077949160u, 1075769893u, 2405271377u, 1075578230u, 4243093929u, 0, LOG_TOLERANCE, 0},
+{ 863, 1091835152u, 3751608506u, 3232278094u, 930375071u, 1076455525u, 1816836840u, 0, LOG_TOLERANCE, 0},
+{ 864, 1051133505u, 1518334131u, 3205247482u, 791756713u, 3224134238u, 39391912u, 0, LOG_TOLERANCE, 0},
+{ 865, 1047317453u, 2825203170u, 3245054001u, 1822981827u, 3224419764u, 57817157u, 0, LOG_TOLERANCE, 0},
+{ 866, 1100016363u, 514474738u, 1089072073u, 3300845441u, 1077023709u, 1264961045u, 0, LOG_TOLERANCE, 0},
+{ 867, 1068907602u, 247369460u, 3197320093u, 687450958u, 3221457984u, 388074873u, 0, LOG_TOLERANCE, 0},
+{ 868, 1104161422u, 2722237629u, 1058272368u, 90602316u, 1077202436u, 903459361u, 0, LOG_TOLERANCE, 0},
+{ 869, 1060614787u, 1845900544u, 3231520830u, 3389751458u, 3223302961u, 1582822839u, 0, LOG_TOLERANCE, 0},
+{ 870, 1100051597u, 737689911u, 3195377751u, 3462616966u, 1077025759u, 2432802595u, 0, LOG_TOLERANCE, 0},
+{ 871, 1076054736u, 3620285831u, 1055501023u, 2708056059u, 1073881576u, 1018222756u, 0, LOG_TOLERANCE, 0},
+{ 872, 1071981348u, 4073430285u, 1056206159u, 172017902u, 3218770535u, 1223482098u, 0, LOG_TOLERANCE, 0},
+{ 873, 1065385990u, 2799176222u, 1052706894u, 4083892667u, 3222489334u, 1732069215u, 0, LOG_TOLERANCE, 0},
+{ 874, 1054795909u, 1562351330u, 1069705601u, 1247765260u, 3223823084u, 3892941165u, 0, LOG_TOLERANCE, 0},
+{ 875, 1085233651u, 51853475u, 3189080201u, 2783553144u, 1075877942u, 597698047u, 0, LOG_TOLERANCE, 0},
+{ 876, 1071970705u, 3851781549u, 3241598113u, 514064046u, 3218802885u, 83380447u, 0, LOG_TOLERANCE, 0},
+{ 877, 1100045965u, 934745487u, 3248182437u, 2798581921u, 1077025436u, 511499556u, 0, LOG_TOLERANCE, 0},
+{ 878, 1065598845u, 2948648757u, 3232177250u, 4278702895u, 3222442230u, 3112138043u, 0, LOG_TOLERANCE, 0},
+{ 879, 1072485724u, 4259101461u, 1061606772u, 84229920u, 3216682197u, 1239324620u, 0, LOG_TOLERANCE, 0},
+{ 880, 1050591911u, 3891230598u, 1095924595u, 3049217547u, 3224187122u, 1722764368u, 0, LOG_TOLERANCE, 0},
+{ 881, 1077353053u, 3806018919u, 3243191216u, 280177341u, 1074339492u, 2305804754u, 0, LOG_TOLERANCE, 0},
+{ 882, 1060624530u, 3900344258u, 1063647809u, 4206745890u, 3223301321u, 3655805288u, 0, LOG_TOLERANCE, 0},
+{ 883, 1080223688u, 2126253040u, 3207248026u, 808507485u, 1075057495u, 3077099285u, 0, LOG_TOLERANCE, 0},
+{ 884, 1086090317u, 3465685634u, 3230391053u, 3754958214u, 1075955941u, 3478718566u, 0, LOG_TOLERANCE, 0},
+{ 885, 1102861084u, 461094531u, 1101110393u, 1316091396u, 1077148337u, 392520667u, 0, LOG_TOLERANCE, 0},
+{ 886, 1064980314u, 4197635149u, 1091873113u, 1240127141u, 3222548727u, 593733443u, 0, LOG_TOLERANCE, 0},
+{ 887, 1074333893u, 118603800u, 1105304898u, 4291425557u, 1072840891u, 1190118690u, 0, LOG_TOLERANCE, 0},
+{ 888, 1065945517u, 3744663425u, 3212482771u, 953662066u, 3222380014u, 4188749851u, 0, LOG_TOLERANCE, 0},
+{ 889, 1085171305u, 3564196690u, 3228101916u, 904305212u, 1075873903u, 1537471083u, 0, LOG_TOLERANCE, 0},
+{ 890, 1048333111u, 3566257266u, 3235138829u, 2734275140u, 3224375491u, 608683477u, 0, LOG_TOLERANCE, 0},
+{ 891, 1096464829u, 606044282u, 3241318094u, 2446416887u, 1076856392u, 525104051u, 0, LOG_TOLERANCE, 0},
+{ 892, 1041627284u, 2336116589u, 3197594053u, 2296925138u, 3224664623u, 89627721u, 0, LOG_TOLERANCE, 0},
+{ 893, 1058567659u, 907670625u, 3240769036u, 1827119006u, 3223490341u, 3151493257u, 0, LOG_TOLERANCE, 0},
+{ 894, 1044467183u, 2818710946u, 3246059905u, 553394170u, 3224543992u, 819274532u, 0, LOG_TOLERANCE, 0},
+{ 895, 1042020446u, 4099522736u, 3232742168u, 3718083858u, 3224648801u, 2651059661u, 0, LOG_TOLERANCE, 0},
+{ 896, 1092371276u, 1059279404u, 1080245336u, 175941677u, 1076500314u, 769778733u, 0, LOG_TOLERANCE, 0},
+{ 897, 1105189691u, 1650862428u, 1061816101u, 1723201723u, 1077246890u, 412568919u, 0, LOG_TOLERANCE, 0},
+{ 898, 1091529166u, 2462163405u, 3218946201u, 3876535372u, 1076423313u, 4205043249u, 0, LOG_TOLERANCE, 0},
+{ 899, 1084392886u, 495844137u, 1073721460u, 772777946u, 1075778946u, 2812768446u, 0, LOG_TOLERANCE, 0},
+{ 900, 1052415330u, 458757721u, 3245680321u, 3609892707u, 3224024546u, 383002261u, 0, LOG_TOLERANCE, 0},
+{ 901, 1045799308u, 2533012202u, 1079980803u, 3592268374u, 3224483940u, 2726652976u, 0, LOG_TOLERANCE, 0},
+{ 902, 1055881132u, 4108274117u, 1063045844u, 571992389u, 3223729882u, 2314481097u, 0, LOG_TOLERANCE, 0},
+{ 903, 1090567271u, 3541110973u, 1096296754u, 3118427427u, 1076340781u, 2632740799u, 0, LOG_TOLERANCE, 0},
+{ 904, 1046496395u, 1213941007u, 1105433735u, 2172963370u, 3224457188u, 3052458673u, 0, LOG_TOLERANCE, 0},
+{ 905, 1096853359u, 272190288u, 1095452370u, 4026581530u, 1076885251u, 2478993271u, 0, LOG_TOLERANCE, 0},
+{ 906, 1095583909u, 2843638672u, 1100510986u, 3190536898u, 1076777521u, 3199401103u, 0, LOG_TOLERANCE, 0},
+{ 907, 1083757094u, 2014317727u, 3247389683u, 2428462015u, 1075673974u, 2005503768u, 0, LOG_TOLERANCE, 0},
+{ 908, 1093976717u, 688442200u, 1047852515u, 3035186380u, 1076641579u, 3598085678u, 0, LOG_TOLERANCE, 0},
+{ 909, 1076664212u, 1010095511u, 3221288076u, 405287991u, 1074087845u, 1781834194u, 0, LOG_TOLERANCE, 0},
+{ 910, 1104810967u, 2983070435u, 1089546472u, 2907918480u, 1077233772u, 563486515u, 0, LOG_TOLERANCE, 0},
+{ 911, 1082988121u, 81928569u, 1056007286u, 2740556321u, 1075533850u, 821769330u, 0, LOG_TOLERANCE, 0},
+{ 912, 1041110867u, 2076689028u, 1081558619u, 3039159031u, 3224689437u, 2823928781u, 0, LOG_TOLERANCE, 0},
+{ 913, 1047307438u, 1376882094u, 3211003208u, 1296286481u, 3224420112u, 3184365003u, 0, LOG_TOLERANCE, 0},
+{ 914, 1080114314u, 744133164u, 3200943494u, 955832216u, 1075033268u, 2149302111u, 0, LOG_TOLERANCE, 0},
+{ 915, 1078806678u, 176522478u, 1069999908u, 2891249491u, 1074808795u, 1563703192u, 0, LOG_TOLERANCE, 0},
+{ 916, 1043564602u, 3685851715u, 3187829932u, 2363997529u, 3224581481u, 4116919064u, 0, LOG_TOLERANCE, 0},
+{ 917, 1040244055u, 3974431579u, 1052505165u, 2589067816u, 3224727383u, 3362925734u, 0, LOG_TOLERANCE, 0},
+{ 918, 1044013141u, 3819109588u, 1048561488u, 969143351u, 3224561794u, 2773963981u, 0, LOG_TOLERANCE, 0},
+{ 919, 1072639397u, 4246896124u, 1104584799u, 1940097860u, 3214582574u, 1851284834u, 0, LOG_TOLERANCE, 0},
+{ 920, 1048038468u, 2228686199u, 3220231833u, 777624847u, 3224386831u, 3580440236u, 0, LOG_TOLERANCE, 0},
+{ 921, 1083983658u, 4189906558u, 3203004203u, 854242364u, 1075708157u, 2324538567u, 0, LOG_TOLERANCE, 0},
+{ 922, 1103910407u, 4089051094u, 3227282692u, 2693170723u, 1077193789u, 2501009459u, 0, LOG_TOLERANCE, 0},
+{ 923, 1045883607u, 1278581412u, 3239296746u, 1774588717u, 3224480154u, 4264010772u, 0, LOG_TOLERANCE, 0},
+{ 924, 1074889038u, 1794845306u, 1104879344u, 4135865182u, 1073192577u, 3710212999u, 0, LOG_TOLERANCE, 0},
+{ 925, 1106449055u, 754938390u, 1061291430u, 2010786993u, 1077304123u, 3433234321u, 0, LOG_TOLERANCE, 0},
+{ 926, 1073581409u, 2034303731u, 3240176537u, 314147356u, 1071882849u, 1312596997u, 0, LOG_TOLERANCE, 0},
+{ 927, 1083965546u, 567588900u, 3195452230u, 1421366017u, 1075705582u, 3553729720u, 0, LOG_TOLERANCE, 0},
+{ 928, 1077606107u, 2708717091u, 1071975971u, 1364590470u, 1074420521u, 3509197008u, 0, LOG_TOLERANCE, 0},
+{ 929, 1104653635u, 3461956134u, 3207820115u, 1605709634u, 1077227442u, 3720226522u, 0, LOG_TOLERANCE, 0},
+{ 930, 1065302996u, 1497124553u, 1051715442u, 916736957u, 3222503756u, 1982876219u, 0, LOG_TOLERANCE, 0},
+{ 931, 1058468363u, 834914365u, 1064667143u, 2839166298u, 3223498722u, 3952086370u, 0, LOG_TOLERANCE, 0},
+{ 932, 1057279949u, 2139295776u, 1062816721u, 914592523u, 3223602368u, 1320433153u, 0, LOG_TOLERANCE, 0},
+{ 933, 1042153283u, 851569132u, 1058503154u, 1399378677u, 3224644216u, 2599935008u, 0, LOG_TOLERANCE, 0},
+{ 934, 1086054049u, 3897202342u, 3245382590u, 246600375u, 1075953364u, 2720951838u, 0, LOG_TOLERANCE, 0},
+{ 935, 1077976660u, 3620429520u, 1055627557u, 229305u, 1074530176u, 1186149429u, 0, LOG_TOLERANCE, 0},
+{ 936, 1083958833u, 3641997865u, 3206673888u, 93720614u, 1075704622u, 976119397u, 0, LOG_TOLERANCE, 0},
+{ 937, 1080324787u, 32766320u, 1062084905u, 3668443038u, 1075078058u, 656045965u, 0, LOG_TOLERANCE, 0},
+{ 938, 1075815348u, 2039713492u, 3248699388u, 1346210821u, 1073777533u, 3602564129u, 0, LOG_TOLERANCE, 0},
+{ 939, 1093050016u, 1335820726u, 3191756860u, 1808427032u, 1076561972u, 2395175349u, 0, LOG_TOLERANCE, 0},
+{ 940, 1061442763u, 650692001u, 1103515670u, 2253348763u, 3223161418u, 2163727770u, 0, LOG_TOLERANCE, 0},
+{ 941, 1043911539u, 2372623300u, 3210185343u, 3200572848u, 3224565764u, 2245925970u, 0, LOG_TOLERANCE, 0},
+{ 942, 1100796069u, 762317532u, 3194595095u, 3192607437u, 1077058609u, 3401569473u, 0, LOG_TOLERANCE, 0},
+{ 943, 1062262701u, 217775356u, 3232827087u, 2969367386u, 3223029063u, 2646417681u, 0, LOG_TOLERANCE, 0},
+{ 944, 1057172551u, 3621353969u, 1077994795u, 3873976266u, 3223613118u, 876167905u, 0, LOG_TOLERANCE, 0},
+{ 945, 1091301987u, 268372152u, 3221764390u, 3216978962u, 1076407987u, 4222096695u, 0, LOG_TOLERANCE, 0},
+{ 946, 1098953963u, 142942404u, 1075322987u, 1746449109u, 1076977460u, 3968533829u, 0, LOG_TOLERANCE, 0},
+{ 947, 1104006296u, 496534875u, 3254522293u, 2532372502u, 1077197089u, 321049357u, 0, LOG_TOLERANCE, 0},
+{ 948, 1102741893u, 2999955409u, 3222793392u, 1868977643u, 1077143987u, 3900599294u, 0, LOG_TOLERANCE, 0},
+{ 949, 1074319042u, 3353193428u, 3218469191u, 3326244297u, 1072831356u, 3904079980u, 0, LOG_TOLERANCE, 0},
+{ 950, 1068218799u, 73646871u, 3231442171u, 3711510104u, 3221705708u, 1861471009u, 0, LOG_TOLERANCE, 0},
+{ 951, 1090483524u, 218135177u, 3198908856u, 3082199105u, 1076332648u, 1827165077u, 0, LOG_TOLERANCE, 0},
+{ 952, 1068068480u, 1061628117u, 3248859043u, 86776158u, 3221750981u, 3403288718u, 0, LOG_TOLERANCE, 0},
+{ 953, 1061001026u, 938869114u, 1087911145u, 2416710759u, 3223244738u, 1201893107u, 0, LOG_TOLERANCE, 0},
+{ 954, 1095576832u, 2970853959u, 3239543429u, 1887505029u, 1076777037u, 2208889702u, 0, LOG_TOLERANCE, 0},
+{ 955, 1090245139u, 1337895935u, 1076463812u, 1172733328u, 1076316542u, 2110621613u, 0, LOG_TOLERANCE, 0},
+{ 956, 1049139928u, 1469010822u, 3229583535u, 551399515u, 3224307240u, 3275195384u, 0, LOG_TOLERANCE, 0},
+{ 957, 1074118123u, 1849711538u, 1049053713u, 1744276190u, 1072692825u, 2002018797u, 0, LOG_TOLERANCE, 0},
+{ 958, 1094655132u, 2976596113u, 3192137295u, 3033242648u, 1076694606u, 1193490101u, 0, LOG_TOLERANCE, 0},
+{ 959, 1098698481u, 876810930u, 3197470945u, 2571587447u, 1076967742u, 2031176632u, 0, LOG_TOLERANCE, 0},
+{ 960, 1094287162u, 4007797282u, 3225853845u, 4069319648u, 1076668519u, 2581068705u, 0, LOG_TOLERANCE, 0},
+{ 961, 1047279982u, 3840538373u, 1043189552u, 3668774580u, 3224421078u, 1501078949u, 0, LOG_TOLERANCE, 0},
+{ 962, 1070128056u, 200857661u, 3229758439u, 3359367736u, 3220846767u, 3229574488u, 0, LOG_TOLERANCE, 0},
+{ 963, 1101314221u, 111868139u, 3227902082u, 2366064003u, 1077082426u, 2927706018u, 0, LOG_TOLERANCE, 0},
+{ 964, 1044195166u, 3510904416u, 3222131653u, 3822770497u, 3224555233u, 1156872369u, 0, LOG_TOLERANCE, 0},
+{ 965, 1095192067u, 789151814u, 1099269239u, 2958956055u, 1076747587u, 3873229381u, 0, LOG_TOLERANCE, 0},
+{ 966, 1084679320u, 722163228u, 1105524559u, 1534462169u, 1075834482u, 2680752836u, 0, LOG_TOLERANCE, 0},
+{ 967, 1046586062u, 2207037106u, 3208952465u, 1231254630u, 3224451896u, 1347588545u, 0, LOG_TOLERANCE, 0},
+{ 968, 1050400412u, 3838689849u, 3198769679u, 1302617170u, 3224200205u, 624983689u, 0, LOG_TOLERANCE, 0},
+{ 969, 1085938906u, 2527556476u, 3240373426u, 124352692u, 1075944829u, 3000124945u, 0, LOG_TOLERANCE, 0},
+{ 970, 1052057157u, 3502371499u, 1043411944u, 4190072016u, 3224054712u, 3615113505u, 0, LOG_TOLERANCE, 0},
+{ 971, 1064676142u, 1798470077u, 3200116917u, 3421833729u, 3222599604u, 923411291u, 0, LOG_TOLERANCE, 0},
+{ 972, 1046031308u, 3653237931u, 3204255012u, 3683870669u, 3224474007u, 2475930530u, 0, LOG_TOLERANCE, 0},
+{ 973, 1053588582u, 376530104u, 1073853547u, 565755892u, 3223924634u, 1674199212u, 0, LOG_TOLERANCE, 0},
+{ 974, 1095020203u, 558292492u, 1051772749u, 4267873474u, 1076731940u, 3159412483u, 0, LOG_TOLERANCE, 0},
+{ 975, 1077289061u, 509637100u, 3212030069u, 215050379u, 1074316851u, 2170640386u, 0, LOG_TOLERANCE, 0},
+{ 976, 1092057101u, 3571665665u, 3188628584u, 757824767u, 1076475951u, 3202156800u, 0, LOG_TOLERANCE, 0},
+{ 977, 1067315689u, 998858159u, 1063077962u, 436029885u, 3222028739u, 880987246u, 0, LOG_TOLERANCE, 0},
+{ 978, 1058463317u, 996300405u, 3193842624u, 80548098u, 3223499163u, 2068439612u, 0, LOG_TOLERANCE, 0},
+{ 979, 1081365192u, 3876129407u, 3215332180u, 2226970413u, 1075258159u, 1795164616u, 0, LOG_TOLERANCE, 0},
+{ 980, 1090125305u, 200013509u, 3224552716u, 414878724u, 1076307631u, 2365929600u, 0, LOG_TOLERANCE, 0},
+{ 981, 1083133445u, 309319541u, 1048979765u, 1261662434u, 1075553109u, 2572671155u, 0, LOG_TOLERANCE, 0},
+{ 982, 1089252639u, 4062255924u, 3224274128u, 4289485681u, 1076229660u, 3670107739u, 0, LOG_TOLERANCE, 0},
+{ 983, 1088652436u, 1611969213u, 1053890378u, 3774617276u, 1076179232u, 1774190741u, 0, LOG_TOLERANCE, 0},
+{ 984, 1080412763u, 1752164782u, 3239587974u, 612223386u, 1075094726u, 2382279992u, 0, LOG_TOLERANCE, 0},
+{ 985, 1041545782u, 2024044989u, 1074932678u, 3259111307u, 3224668441u, 2879048600u, 0, LOG_TOLERANCE, 0},
+{ 986, 1053207518u, 2564965629u, 1093571065u, 169360454u, 3223954559u, 580679173u, 0, LOG_TOLERANCE, 0},
+{ 987, 1089599090u, 1860101737u, 3191222372u, 1676437468u, 1076259201u, 181860389u, 0, LOG_TOLERANCE, 0},
+{ 988, 1059802968u, 588387057u, 3192103292u, 2495288012u, 3223385047u, 949677917u, 0, LOG_TOLERANCE, 0},
+{ 989, 1045672057u, 659070058u, 1073095700u, 1393632068u, 3224490104u, 1843660721u, 0, LOG_TOLERANCE, 0},
+{ 990, 1070199615u, 4276187829u, 3217553330u, 1868253275u, 3220801691u, 837195521u, 0, LOG_TOLERANCE, 0},
+{ 991, 1075736624u, 2085481575u, 3215994784u, 800910002u, 1073757240u, 3736786376u, 0, LOG_TOLERANCE, 0},
+{ 992, 1056934836u, 1950570756u, 3200582211u, 941022151u, 3223638704u, 3712070612u, 0, LOG_TOLERANCE, 0},
+{ 993, 1057530368u, 2075610870u, 3250142022u, 3605152103u, 3223580274u, 1820961897u, 0, LOG_TOLERANCE, 0},
+{ 994, 1053355602u, 3792931748u, 3204857863u, 804393211u, 3223942106u, 1395149486u, 0, LOG_TOLERANCE, 0},
+{ 995, 1106162722u, 3430071177u, 3226288311u, 3652522729u, 1077289900u, 3475753848u, 0, LOG_TOLERANCE, 0},
+{ 996, 1053831054u, 236884699u, 3227874605u, 2193269825u, 3223907874u, 1630755670u, 0, LOG_TOLERANCE, 0},
+{ 997, 1064936593u, 2744231849u, 1046186036u, 771053722u, 3222555459u, 4188901663u, 0, LOG_TOLERANCE, 0},
+{ 998, 1083996036u, 3000189819u, 1096500901u, 2057239777u, 1075709902u, 2502775335u, 0, LOG_TOLERANCE, 0},
+{ 999, 1093835581u, 205759408u, 3244643377u, 2702292618u, 1076627224u, 3113340835u, 0, LOG_TOLERANCE, 0},
+
+
+// AUTOMATICALLY GENERATED VECTORS STOP
+
+};
+
+#endif // CYGONCE_LIBM_LOG_H multiple inclusion protection
+
+// EOF log.h
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/log10.c b/ecos/packages/language/c/libm/current/tests/vectors/log10.c
new file mode 100644
index 0000000..e5c3773
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/log10.c
@@ -0,0 +1,115 @@
+//===========================================================================
+//
+// log10.c
+//
+// Test of log10() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// Declarations for test system:
+//
+// TESTCASE_TYPE=CYG_TEST_MODULE
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include <cyg/infra/testcase.h> // Test infrastructure
+#include <math.h> // Header for this package
+#include <sys/ieeefp.h> // Cyg_libm_ieee_double_shape_type
+#include "vectors/vector_support.h"// extra support for math tests
+
+#include "vectors/log10.h"
+
+// FUNCTIONS
+
+static void
+test( CYG_ADDRWORD data )
+{
+ cyg_ucount32 vec_size;
+ cyg_bool ret;
+
+ vec_size = sizeof(log10_vec) / sizeof(Cyg_libm_test_double_vec_t);
+ ret = doTestVec( (CYG_ADDRWORD) &log10, CYG_LIBM_TEST_VEC_DOUBLE,
+ CYG_LIBM_TEST_VEC_NONE, CYG_LIBM_TEST_VEC_DOUBLE,
+ &log10_vec[0], vec_size );
+
+ if (ret==true)
+ {
+ CYG_TEST_PASS("log10() is stable");
+ } // if
+ else
+ {
+ CYG_TEST_FAIL("log10() failed tests");
+ } // else
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for Math "
+ "library log10() function");
+} // test()
+
+
+int
+main(int argc, char *argv[])
+{
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for Math library "
+ "log10() function");
+
+ START_TEST( test );
+
+ CYG_TEST_PASS_FINISH("Testing is not applicable to this configuration");
+
+} // main()
+
+
+// EOF log10.c
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/log10.h b/ecos/packages/language/c/libm/current/tests/vectors/log10.h
new file mode 100644
index 0000000..5911216
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/log10.h
@@ -0,0 +1,1079 @@
+#ifndef CYGONCE_LIBM_LOG10_H
+#define CYGONCE_LIBM_LOG10_H
+//===========================================================================
+//
+// log10.h
+//
+// Test vectors for testing of log10() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage: #include "vectors/log10.h"
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include "vectors/vector_support.h"// extra support for math tests
+
+#define LOG10_TOLERANCE 1.0E-04
+
+static const Cyg_libm_test_double_vec_t log10_vec[] = {
+
+// AUTOMATICALLY GENERATED VECTORS START
+
+{ 1, 1077999148u, 2506787616u, 1090024059u, 3619148316u, 1073249514u, 3022418765u, 0, LOG10_TOLERANCE, 0},
+{ 2, 1070670006u, 3176730980u, 1051524793u, 2993920299u, 3219280318u, 3521941528u, 0, LOG10_TOLERANCE, 0},
+{ 3, 1092176155u, 2725707538u, 3232101343u, 2346810316u, 1075214363u, 2619608406u, 0, LOG10_TOLERANCE, 0},
+{ 4, 1092554362u, 2088062470u, 3201242716u, 420891118u, 1075237767u, 4016913123u, 0, LOG10_TOLERANCE, 0},
+{ 5, 1073717029u, 2636405208u, 1100049309u, 471635570u, 1070788466u, 3705390542u, 0, LOG10_TOLERANCE, 0},
+{ 6, 1089363191u, 1746012320u, 1054478713u, 3333988501u, 1074998457u, 2601017037u, 0, LOG10_TOLERANCE, 0},
+{ 7, 1047953160u, 183014794u, 3202039382u, 2016785810u, 3223080594u, 1773764437u, 0, LOG10_TOLERANCE, 0},
+{ 8, 1066002386u, 2688957927u, 1046089230u, 2709029994u, 3221118451u, 837113105u, 0, LOG10_TOLERANCE, 0},
+{ 9, 1058795730u, 624574473u, 1045840574u, 3473266330u, 3222259526u, 2374389383u, 0, LOG10_TOLERANCE, 0},
+{ 10, 1057436194u, 1605286142u, 1068931671u, 4233776869u, 3222366888u, 3800128756u, 0, LOG10_TOLERANCE, 0},
+{ 11, 1060343410u, 1857607719u, 3222889559u, 3417070006u, 3222025110u, 4113556665u, 0, LOG10_TOLERANCE, 0},
+{ 12, 1103599987u, 3981151660u, 1088899021u, 1332651746u, 1075956764u, 108599875u, 0, LOG10_TOLERANCE, 0},
+{ 13, 1085298022u, 3824988054u, 1066856791u, 2070129652u, 1074591863u, 2678403996u, 0, LOG10_TOLERANCE, 0},
+{ 14, 1060076142u, 1372884064u, 1080833116u, 3229926662u, 3222074556u, 443298410u, 0, LOG10_TOLERANCE, 0},
+{ 15, 1093826501u, 3217805330u, 3191644264u, 2014578707u, 1075336418u, 3557865346u, 0, LOG10_TOLERANCE, 0},
+{ 16, 1102287487u, 265058758u, 3239903247u, 1630600647u, 1075906656u, 1833826044u, 0, LOG10_TOLERANCE, 0},
+{ 17, 1071124229u, 1946677669u, 3198462609u, 926009897u, 3218813362u, 1296639386u, 0, LOG10_TOLERANCE, 0},
+{ 18, 1072130299u, 2271884183u, 3203741999u, 2118617783u, 3217121319u, 3419458770u, 0, LOG10_TOLERANCE, 0},
+{ 19, 1047365461u, 213658772u, 3249401130u, 314151656u, 3223128539u, 2168223691u, 0, LOG10_TOLERANCE, 0},
+{ 20, 1106628640u, 1564829925u, 3197817016u, 497230814u, 1076070652u, 4249090498u, 0, LOG10_TOLERANCE, 0},
+{ 21, 1068778986u, 2075329122u, 3231746400u, 169900577u, 3220283137u, 1319601517u, 0, LOG10_TOLERANCE, 0},
+{ 22, 1049848642u, 541549344u, 1096608669u, 3119070100u, 3222939514u, 2468510095u, 0, LOG10_TOLERANCE, 0},
+{ 23, 1085427055u, 567496114u, 1045286891u, 1969998540u, 1074617778u, 384099018u, 0, LOG10_TOLERANCE, 0},
+{ 24, 1060548195u, 1299369769u, 1049342524u, 4167404066u, 3221991359u, 737986283u, 0, LOG10_TOLERANCE, 0},
+{ 25, 1061381997u, 3348930841u, 1078472138u, 358457347u, 3221869066u, 249937911u, 0, LOG10_TOLERANCE, 0},
+{ 26, 1071069297u, 2192461366u, 1099527247u, 3184735642u, 3218877956u, 3100951136u, 0, LOG10_TOLERANCE, 0},
+{ 27, 1052861772u, 331696577u, 3189610016u, 793242270u, 3222715301u, 1774046932u, 0, LOG10_TOLERANCE, 0},
+{ 28, 1105045286u, 2322696981u, 1083791358u, 3020766674u, 1076009218u, 2332151086u, 0, LOG10_TOLERANCE, 0},
+{ 29, 1044902177u, 252085215u, 3214426435u, 4139068910u, 3223310243u, 930081556u, 0, LOG10_TOLERANCE, 0},
+{ 30, 1075022077u, 105589263u, 1056316170u, 261630827u, 1072040521u, 3389720896u, 0, LOG10_TOLERANCE, 0},
+{ 31, 1107213408u, 428765703u, 3251828686u, 2009972239u, 1076090173u, 2232985963u, 0, LOG10_TOLERANCE, 0},
+{ 32, 1098568019u, 3517376586u, 3240257920u, 3304487302u, 1075694540u, 919239854u, 0, LOG10_TOLERANCE, 0},
+{ 33, 1086054264u, 237004814u, 3237899261u, 3364008659u, 1074713551u, 803164225u, 0, LOG10_TOLERANCE, 0},
+{ 34, 1047763904u, 472004928u, 3226869477u, 1186387580u, 3223096235u, 3622735061u, 0, LOG10_TOLERANCE, 0},
+{ 35, 1054226850u, 4085763910u, 1106394906u, 2684738273u, 3222608495u, 1452762068u, 0, LOG10_TOLERANCE, 0},
+{ 36, 1057053639u, 2055490142u, 3231581370u, 3879040079u, 3222399892u, 728588179u, 0, LOG10_TOLERANCE, 0},
+{ 37, 1041492999u, 3725731239u, 1061652681u, 591292963u, 3223445266u, 1587892700u, 0, LOG10_TOLERANCE, 0},
+{ 38, 1077531333u, 1147041027u, 3215417793u, 624695933u, 1073125274u, 89100982u, 0, LOG10_TOLERANCE, 0},
+{ 39, 1058569126u, 705725219u, 3238067573u, 1116238321u, 3222281827u, 770742446u, 0, LOG10_TOLERANCE, 0},
+{ 40, 1059883440u, 7287411u, 1045917232u, 116067742u, 3222096885u, 913481370u, 0, LOG10_TOLERANCE, 0},
+{ 41, 1092571574u, 3604989074u, 1066381836u, 545298780u, 1075238726u, 2904656021u, 0, LOG10_TOLERANCE, 0},
+{ 42, 1071597288u, 1681476121u, 1060345752u, 3553822398u, 3218335408u, 1174560309u, 0, LOG10_TOLERANCE, 0},
+{ 43, 1102831658u, 3410480388u, 1052460275u, 1660607230u, 1075926787u, 102598250u, 0, LOG10_TOLERANCE, 0},
+{ 44, 1089216869u, 1494984673u, 3196647153u, 287894723u, 1074989762u, 1122846966u, 0, LOG10_TOLERANCE, 0},
+{ 45, 1054885127u, 644548665u, 1081948134u, 2442134629u, 3222565093u, 3817391420u, 0, LOG10_TOLERANCE, 0},
+{ 46, 1087554095u, 2312530895u, 3221584595u, 3379665576u, 1074864717u, 2346974421u, 0, LOG10_TOLERANCE, 0},
+{ 47, 1096085375u, 3018463866u, 1086226574u, 404012923u, 1075508523u, 2582069913u, 0, LOG10_TOLERANCE, 0},
+{ 48, 1064733299u, 1710279345u, 3251401196u, 3528946000u, 3221361467u, 665183996u, 0, LOG10_TOLERANCE, 0},
+{ 49, 1061536351u, 2164450219u, 1083520023u, 3312018966u, 3221842981u, 1511855102u, 0, LOG10_TOLERANCE, 0},
+{ 50, 1057248676u, 2648986431u, 1050330591u, 1474376550u, 3222381877u, 571379592u, 0, LOG10_TOLERANCE, 0},
+{ 51, 1046938380u, 1839068700u, 1077406406u, 3013052171u, 3223156927u, 1273004858u, 0, LOG10_TOLERANCE, 0},
+{ 52, 1046493630u, 772102380u, 3220729740u, 4219039958u, 3223196708u, 1857276792u, 0, LOG10_TOLERANCE, 0},
+{ 53, 1081988573u, 3058618779u, 1046304788u, 3338676024u, 1074097737u, 4237319426u, 0, LOG10_TOLERANCE, 0},
+{ 54, 1051172137u, 506286854u, 1094907481u, 2217000199u, 3222838334u, 1971852126u, 0, LOG10_TOLERANCE, 0},
+{ 55, 1082428310u, 1147428263u, 1065432625u, 3034786717u, 1074170619u, 220014801u, 0, LOG10_TOLERANCE, 0},
+{ 56, 1082016752u, 2844125311u, 1082985198u, 2561492677u, 1074100996u, 107966054u, 0, LOG10_TOLERANCE, 0},
+{ 57, 1064053268u, 704542600u, 3222902057u, 2762779203u, 3221468579u, 215530745u, 0, LOG10_TOLERANCE, 0},
+{ 58, 1052196966u, 184131949u, 3249723525u, 1667366082u, 3222761181u, 3301049340u, 0, LOG10_TOLERANCE, 0},
+{ 59, 1076125950u, 3904224140u, 1067056698u, 2942159914u, 1072701794u, 1892749236u, 0, LOG10_TOLERANCE, 0},
+{ 60, 1100636863u, 426114282u, 3209056785u, 1083606355u, 1075844746u, 4158287464u, 0, LOG10_TOLERANCE, 0},
+{ 61, 1106165945u, 3774123863u, 1106787580u, 2722107965u, 1076050748u, 1644090822u, 0, LOG10_TOLERANCE, 0},
+{ 62, 1088005092u, 1377734762u, 1104232051u, 2377063483u, 1074900296u, 1620468150u, 0, LOG10_TOLERANCE, 0},
+{ 63, 1069380559u, 1029739074u, 1105467109u, 3062201018u, 3220049220u, 1952021905u, 0, LOG10_TOLERANCE, 0},
+{ 64, 1087257949u, 773857656u, 3214251949u, 335833884u, 1074840167u, 1626397392u, 0, LOG10_TOLERANCE, 0},
+{ 65, 1055740962u, 1473865960u, 1103073830u, 4000427507u, 3222498007u, 2325532597u, 0, LOG10_TOLERANCE, 0},
+{ 66, 1103185231u, 4242092620u, 1067009473u, 14539161u, 1075938991u, 4075535913u, 0, LOG10_TOLERANCE, 0},
+{ 67, 1045032426u, 1732245037u, 1101371955u, 1533536108u, 3223301164u, 1695162079u, 0, LOG10_TOLERANCE, 0},
+{ 68, 1101670347u, 1833841275u, 1099430098u, 4144145552u, 1075883704u, 2534133722u, 0, LOG10_TOLERANCE, 0},
+{ 69, 1096786815u, 935007012u, 3188865420u, 604442938u, 1075555534u, 3856091931u, 0, LOG10_TOLERANCE, 0},
+{ 70, 1059419605u, 2211464602u, 1046255144u, 1635910526u, 3222161784u, 2122038886u, 0, LOG10_TOLERANCE, 0},
+{ 71, 1077871417u, 2549219008u, 3231633258u, 3733639385u, 1073208663u, 430860074u, 0, LOG10_TOLERANCE, 0},
+{ 72, 1082095089u, 1819374372u, 3202219056u, 2617077637u, 1074109815u, 3246089147u, 0, LOG10_TOLERANCE, 0},
+{ 73, 1094345280u, 546465680u, 1048653554u, 532401530u, 1075377030u, 1431910568u, 0, LOG10_TOLERANCE, 0},
+{ 74, 1044571091u, 2759019783u, 3221570188u, 3554409630u, 3223329924u, 2544254508u, 0, LOG10_TOLERANCE, 0},
+{ 75, 1065447634u, 2527221960u, 1099107978u, 2696971136u, 3221262049u, 1391120482u, 0, LOG10_TOLERANCE, 0},
+{ 76, 1097158000u, 173134582u, 1087299442u, 2877794600u, 1075589414u, 4260456854u, 0, LOG10_TOLERANCE, 0},
+{ 77, 1086400474u, 547642046u, 3197285510u, 3521286127u, 1074760870u, 3835447898u, 0, LOG10_TOLERANCE, 0},
+{ 78, 1074860702u, 1231582831u, 1090971734u, 1653446832u, 1071917811u, 895223700u, 0, LOG10_TOLERANCE, 0},
+{ 79, 1061342535u, 3762182190u, 3252967851u, 2615360375u, 3221876243u, 3440127565u, 0, LOG10_TOLERANCE, 0},
+{ 80, 1053350775u, 2588067350u, 3206610957u, 3551059728u, 3222674665u, 3919675322u, 0, LOG10_TOLERANCE, 0},
+{ 81, 1059495208u, 845263327u, 1073415902u, 1749010288u, 3222149862u, 1260690295u, 0, LOG10_TOLERANCE, 0},
+{ 82, 1058092722u, 3092685191u, 3190678390u, 2872219490u, 3222321932u, 4078691992u, 0, LOG10_TOLERANCE, 0},
+{ 83, 1070831407u, 4107255722u, 3205337291u, 3069068345u, 3219157958u, 2522023062u, 0, LOG10_TOLERANCE, 0},
+{ 84, 1096507209u, 2294867524u, 3216653996u, 2860384670u, 1075539043u, 3909250401u, 0, LOG10_TOLERANCE, 0},
+{ 85, 1045842702u, 2265437201u, 3240198679u, 1234948614u, 3223239452u, 4104182862u, 0, LOG10_TOLERANCE, 0},
+{ 86, 1068876281u, 1186945904u, 3251167793u, 1896750851u, 3220250953u, 2361841191u, 0, LOG10_TOLERANCE, 0},
+{ 87, 1081575478u, 3686084548u, 1079286273u, 3309277689u, 1074043698u, 3305889265u, 0, LOG10_TOLERANCE, 0},
+{ 88, 1075992592u, 3006860614u, 3231412671u, 2504194724u, 1072614529u, 2742713680u, 0, LOG10_TOLERANCE, 0},
+{ 89, 1088665612u, 1948717780u, 1048317852u, 3791803982u, 1074949315u, 1016144265u, 0, LOG10_TOLERANCE, 0},
+{ 90, 1064345015u, 4272034420u, 3192982124u, 1526175922u, 3221430904u, 1575151155u, 0, LOG10_TOLERANCE, 0},
+{ 91, 1098334178u, 4108948538u, 1104691287u, 640541190u, 1075678285u, 2376433274u, 0, LOG10_TOLERANCE, 0},
+{ 92, 1059773769u, 3259274853u, 1082507103u, 3677038020u, 3222110644u, 2405648502u, 0, LOG10_TOLERANCE, 0},
+{ 93, 1083132498u, 3781708548u, 1096584871u, 1207386447u, 1074266405u, 2767701991u, 0, LOG10_TOLERANCE, 0},
+{ 94, 1041211624u, 3011191657u, 1103798670u, 1096124830u, 3223458410u, 3146895201u, 0, LOG10_TOLERANCE, 0},
+{ 95, 1063235023u, 2540404725u, 3240157452u, 4122845725u, 3221599629u, 3004527711u, 0, LOG10_TOLERANCE, 0},
+{ 96, 1083643710u, 311336721u, 3214382367u, 4212533768u, 1074355041u, 396212168u, 0, LOG10_TOLERANCE, 0},
+{ 97, 1051139427u, 1769686293u, 3240200923u, 3538602249u, 3222840766u, 2455777040u, 0, LOG10_TOLERANCE, 0},
+{ 98, 1078227549u, 508056696u, 1103793878u, 776520138u, 1073334613u, 2708912122u, 0, LOG10_TOLERANCE, 0},
+{ 99, 1102910577u, 4064962760u, 1077424413u, 819766631u, 1075929194u, 1996503108u, 0, LOG10_TOLERANCE, 0},
+{ 100, 1074178362u, 2112385259u, 3227593179u, 1187058516u, 1071444142u, 1729917169u, 0, LOG10_TOLERANCE, 0},
+{ 101, 1082295059u, 2514398118u, 1076579751u, 870169764u, 1074146890u, 3718905266u, 0, LOG10_TOLERANCE, 0},
+{ 102, 1099367744u, 1190259653u, 1069112254u, 3417249840u, 1075756071u, 2662850456u, 0, LOG10_TOLERANCE, 0},
+{ 103, 1046179435u, 3467757357u, 3215075200u, 2168175352u, 3223215840u, 1799448942u, 0, LOG10_TOLERANCE, 0},
+{ 104, 1092159487u, 1508888184u, 1060430241u, 3524949092u, 1075213212u, 2842956866u, 0, LOG10_TOLERANCE, 0},
+{ 105, 1049929235u, 166402802u, 3237198975u, 3572369260u, 3222932523u, 4280265619u, 0, LOG10_TOLERANCE, 0},
+{ 106, 1081866822u, 2441536203u, 3202753937u, 3658194573u, 1074083099u, 1451479062u, 0, LOG10_TOLERANCE, 0},
+{ 107, 1062392908u, 2479742828u, 1062342831u, 4214154303u, 3221718085u, 2663279180u, 0, LOG10_TOLERANCE, 0},
+{ 108, 1082396794u, 426896765u, 1066474375u, 2201754442u, 1074165226u, 294524756u, 0, LOG10_TOLERANCE, 0},
+{ 109, 1048145373u, 2055773734u, 3239267288u, 291396537u, 3223066642u, 1899295311u, 0, LOG10_TOLERANCE, 0},
+{ 110, 1089484385u, 874125203u, 3210508124u, 4091098764u, 1075005936u, 3628964044u, 0, LOG10_TOLERANCE, 0},
+{ 111, 1065716026u, 120488169u, 3241241441u, 1985269424u, 3221202575u, 1575844383u, 0, LOG10_TOLERANCE, 0},
+{ 112, 1059055762u, 2243036871u, 3243941101u, 740033495u, 3222229291u, 2093928209u, 0, LOG10_TOLERANCE, 0},
+{ 113, 1061941258u, 1176656356u, 1074261978u, 3588756231u, 3221786072u, 706930159u, 0, LOG10_TOLERANCE, 0},
+{ 114, 1105333143u, 3037249392u, 1061635587u, 1173102190u, 1076020402u, 1724289891u, 0, LOG10_TOLERANCE, 0},
+{ 115, 1089725933u, 2882725208u, 1071440059u, 69225090u, 1075029258u, 2093829877u, 0, LOG10_TOLERANCE, 0},
+{ 116, 1065179826u, 272319256u, 1072073912u, 2493997123u, 3221301330u, 1958636672u, 0, LOG10_TOLERANCE, 0},
+{ 117, 1057720186u, 188610379u, 3232757923u, 2209647371u, 3222347389u, 2837231009u, 0, LOG10_TOLERANCE, 0},
+{ 118, 1089274869u, 1990439193u, 1078073146u, 622849962u, 1074993288u, 3576763939u, 0, LOG10_TOLERANCE, 0},
+{ 119, 1057135741u, 756052458u, 1081649113u, 2247475162u, 3222391958u, 2930228447u, 0, LOG10_TOLERANCE, 0},
+{ 120, 1061623064u, 3878055211u, 3222407050u, 2979438623u, 3221829540u, 1096267203u, 0, LOG10_TOLERANCE, 0},
+{ 121, 1047807349u, 2676398686u, 1105124431u, 3631096636u, 3223092450u, 2080967742u, 0, LOG10_TOLERANCE, 0},
+{ 122, 1065079390u, 1697791764u, 3198136112u, 2299842819u, 3221313539u, 2223619642u, 0, LOG10_TOLERANCE, 0},
+{ 123, 1078084768u, 1931502677u, 3215264397u, 3016456382u, 1073283305u, 2406385933u, 0, LOG10_TOLERANCE, 0},
+{ 124, 1072253426u, 343404215u, 1061072607u, 4266232536u, 3216648998u, 239016280u, 0, LOG10_TOLERANCE, 0},
+{ 125, 1093747188u, 4140316002u, 1082896196u, 868256971u, 1075328702u, 2557641593u, 0, LOG10_TOLERANCE, 0},
+{ 126, 1075422810u, 1864139509u, 3187675097u, 3084482407u, 1072288548u, 2563126331u, 0, LOG10_TOLERANCE, 0},
+{ 127, 1072707675u, 2427162817u, 3234748208u, 2715105792u, 1064849176u, 3587587979u, 0, LOG10_TOLERANCE, 0},
+{ 128, 1064600512u, 3943389284u, 1046724025u, 3626825684u, 3221382913u, 1568343271u, 0, LOG10_TOLERANCE, 0},
+{ 129, 1045423002u, 967350972u, 1093012318u, 448002663u, 3223277610u, 3114998281u, 0, LOG10_TOLERANCE, 0},
+{ 130, 1104362211u, 105058217u, 1069733884u, 171786224u, 1075984565u, 2168621818u, 0, LOG10_TOLERANCE, 0},
+{ 131, 1042130860u, 2863482262u, 3204997271u, 877784425u, 3223422621u, 3194788353u, 0, LOG10_TOLERANCE, 0},
+{ 132, 1055145665u, 2801782962u, 3213604117u, 762347195u, 3222540205u, 780206140u, 0, LOG10_TOLERANCE, 0},
+{ 133, 1086003079u, 2317950339u, 3246333414u, 2135700283u, 1074707079u, 4088703451u, 0, LOG10_TOLERANCE, 0},
+{ 134, 1056516397u, 4171919805u, 1082858682u, 2180920863u, 3222436544u, 1603917460u, 0, LOG10_TOLERANCE, 0},
+{ 135, 1072665436u, 1918836931u, 1083603224u, 3137821660u, 3212296090u, 3048145701u, 0, LOG10_TOLERANCE, 0},
+{ 136, 1103902874u, 3456203663u, 3235600523u, 2335688936u, 1075966944u, 3184370032u, 0, LOG10_TOLERANCE, 0},
+{ 137, 1042279322u, 4170235262u, 1051824459u, 521583737u, 3223418431u, 1706671790u, 0, LOG10_TOLERANCE, 0},
+{ 138, 1081348303u, 1296623194u, 3250673860u, 2442872540u, 1074007414u, 1749941826u, 0, LOG10_TOLERANCE, 0},
+{ 139, 1061684277u, 289979405u, 1049514449u, 3865737145u, 3221820508u, 669475419u, 0, LOG10_TOLERANCE, 0},
+{ 140, 1075298944u, 3699090239u, 1054539840u, 3259249360u, 1072218835u, 1332264134u, 0, LOG10_TOLERANCE, 0},
+{ 141, 1096418100u, 1619819023u, 1045993352u, 1022642459u, 1075533243u, 1299474792u, 0, LOG10_TOLERANCE, 0},
+{ 142, 1081433004u, 19455098u, 3229182089u, 2096003654u, 1074021627u, 1335572803u, 0, LOG10_TOLERANCE, 0},
+{ 143, 1076297936u, 3803689997u, 1071630912u, 2263729518u, 1072756957u, 1728113973u, 0, LOG10_TOLERANCE, 0},
+{ 144, 1101357261u, 2816837387u, 1063422305u, 2597606398u, 1075872223u, 2982335179u, 0, LOG10_TOLERANCE, 0},
+{ 145, 1069100169u, 3680967506u, 1040201163u, 179224723u, 3220184538u, 579581628u, 0, LOG10_TOLERANCE, 0},
+{ 146, 1041146119u, 978126928u, 1101553990u, 4047893399u, 3223460238u, 2981887158u, 0, LOG10_TOLERANCE, 0},
+{ 147, 1074838397u, 4059818629u, 1042678728u, 3640293589u, 1071899471u, 3330393492u, 0, LOG10_TOLERANCE, 0},
+{ 148, 1100980392u, 3383497159u, 1070002807u, 1527313008u, 1075855061u, 3937649430u, 0, LOG10_TOLERANCE, 0},
+{ 149, 1055224031u, 2599946514u, 1104170406u, 2738675352u, 3222533671u, 3949070241u, 0, LOG10_TOLERANCE, 0},
+{ 150, 1105232623u, 3616571377u, 1060859316u, 1130603218u, 1076015345u, 3938672152u, 0, LOG10_TOLERANCE, 0},
+{ 151, 1076028796u, 3859211180u, 1067940450u, 1744531824u, 1072641553u, 236826591u, 0, LOG10_TOLERANCE, 0},
+{ 152, 1042831340u, 1958025850u, 3236511256u, 2472176453u, 3223394400u, 155360699u, 0, LOG10_TOLERANCE, 0},
+{ 153, 1085623441u, 182132862u, 3250520938u, 3924356991u, 1074652303u, 227095142u, 0, LOG10_TOLERANCE, 0},
+{ 154, 1083018236u, 35632886u, 3209806504u, 1453402523u, 1074253351u, 706658652u, 0, LOG10_TOLERANCE, 0},
+{ 155, 1083522102u, 743225214u, 3202890678u, 142917400u, 1074335966u, 971180013u, 0, LOG10_TOLERANCE, 0},
+{ 156, 1080684976u, 1472665012u, 3203138231u, 256588219u, 1073908090u, 2970356020u, 0, LOG10_TOLERANCE, 0},
+{ 157, 1094982162u, 1062927000u, 1061134072u, 931677439u, 1075424983u, 4192261729u, 0, LOG10_TOLERANCE, 0},
+{ 158, 1058377732u, 2320910576u, 1055663370u, 288059864u, 3222296288u, 615814715u, 0, LOG10_TOLERANCE, 0},
+{ 159, 1078958093u, 1448349062u, 3199478070u, 3454027134u, 1073532773u, 2431650893u, 0, LOG10_TOLERANCE, 0},
+{ 160, 1089975150u, 4215445172u, 3196654963u, 2231888973u, 1075049168u, 3858745282u, 0, LOG10_TOLERANCE, 0},
+{ 161, 1099148583u, 40413554u, 3232578253u, 983832844u, 1075738201u, 1294348798u, 0, LOG10_TOLERANCE, 0},
+{ 162, 1076237886u, 3995725873u, 1050082319u, 777231627u, 1072738446u, 2490660630u, 0, LOG10_TOLERANCE, 0},
+{ 163, 1040986626u, 672789828u, 3253385962u, 2982787335u, 3223464951u, 2022959186u, 0, LOG10_TOLERANCE, 0},
+{ 164, 1068390875u, 2075971825u, 1070166500u, 4034633931u, 3220415024u, 1453784302u, 0, LOG10_TOLERANCE, 0},
+{ 165, 1062562529u, 1018222907u, 3244621407u, 3090050495u, 3221688759u, 3042080164u, 0, LOG10_TOLERANCE, 0},
+{ 166, 1067680885u, 937732557u, 3200798890u, 2557898276u, 3220616089u, 2752657805u, 0, LOG10_TOLERANCE, 0},
+{ 167, 1078342316u, 130346162u, 3223590310u, 275568693u, 1073372035u, 4013751462u, 0, LOG10_TOLERANCE, 0},
+{ 168, 1042898869u, 3807416441u, 1075961161u, 3706820266u, 3223392040u, 625299453u, 0, LOG10_TOLERANCE, 0},
+{ 169, 1068615357u, 1710131411u, 1078123323u, 1900790503u, 3220342988u, 1117943757u, 0, LOG10_TOLERANCE, 0},
+{ 170, 1091335713u, 3420420033u, 3210844787u, 588423066u, 1075148920u, 1970986568u, 0, LOG10_TOLERANCE, 0},
+{ 171, 1049684114u, 1160162008u, 3246307879u, 4265764460u, 3222955275u, 558478599u, 0, LOG10_TOLERANCE, 0},
+{ 172, 1102543434u, 366653268u, 3188814424u, 466059202u, 1075917013u, 142658660u, 0, LOG10_TOLERANCE, 0},
+{ 173, 1079144091u, 1325936170u, 3221436876u, 680097612u, 1073603027u, 4223503858u, 0, LOG10_TOLERANCE, 0},
+{ 174, 1092907468u, 1827735934u, 3200554324u, 2875599271u, 1075269082u, 61509776u, 0, LOG10_TOLERANCE, 0},
+{ 175, 1043546754u, 3117037091u, 3239246636u, 15838845u, 3223368277u, 1788507559u, 0, LOG10_TOLERANCE, 0},
+{ 176, 1051974004u, 749718883u, 3223587064u, 1523766569u, 3222779192u, 499603616u, 0, LOG10_TOLERANCE, 0},
+{ 177, 1044833651u, 1966536294u, 3250158026u, 699164258u, 3223315327u, 605213675u, 0, LOG10_TOLERANCE, 0},
+{ 178, 1098048435u, 3759049394u, 1106085272u, 1183789499u, 1075654641u, 1976310585u, 0, LOG10_TOLERANCE, 0},
+{ 179, 1081201623u, 1970107747u, 1095245453u, 2308233883u, 1073980485u, 1917090271u, 0, LOG10_TOLERANCE, 0},
+{ 180, 1084756444u, 1491017852u, 1041444355u, 1723375725u, 1074522322u, 201295655u, 0, LOG10_TOLERANCE, 0},
+{ 181, 1069146422u, 1141349287u, 1097465301u, 3403438584u, 3220166997u, 3273626097u, 0, LOG10_TOLERANCE, 0},
+{ 182, 1083088260u, 1711085243u, 3250239076u, 1377484108u, 1074261439u, 3510689380u, 0, LOG10_TOLERANCE, 0},
+{ 183, 1098385019u, 2880275004u, 1084039594u, 1611394950u, 1075682022u, 1318740231u, 0, LOG10_TOLERANCE, 0},
+{ 184, 1086737787u, 2626629370u, 1063771493u, 1499080813u, 1074805506u, 2197894595u, 0, LOG10_TOLERANCE, 0},
+{ 185, 1055231263u, 3936262414u, 1103919063u, 3175668759u, 3222533087u, 1926622946u, 0, LOG10_TOLERANCE, 0},
+{ 186, 1060498071u, 1270950554u, 3194616071u, 3680565379u, 3221999169u, 3085134097u, 0, LOG10_TOLERANCE, 0},
+{ 187, 1060664575u, 1066985223u, 3221613219u, 4089383168u, 3221974195u, 1363215594u, 0, LOG10_TOLERANCE, 0},
+{ 188, 1069575191u, 4017329311u, 3208334452u, 1667591498u, 3219949937u, 482205278u, 0, LOG10_TOLERANCE, 0},
+{ 189, 1088164157u, 3154656624u, 1061894279u, 3886344038u, 1074910593u, 1611552831u, 0, LOG10_TOLERANCE, 0},
+{ 190, 1050652945u, 977586119u, 3209762784u, 953839852u, 3222883751u, 2710381229u, 0, LOG10_TOLERANCE, 0},
+{ 191, 1104965247u, 143071571u, 3206165386u, 913097445u, 1076006824u, 1671790082u, 0, LOG10_TOLERANCE, 0},
+{ 192, 1043081808u, 1371169579u, 1057079837u, 2594818628u, 3223386098u, 4205730324u, 0, LOG10_TOLERANCE, 0},
+{ 193, 1104309688u, 2259342224u, 3217432469u, 1824221478u, 1075982142u, 1272387594u, 0, LOG10_TOLERANCE, 0},
+{ 194, 1099351127u, 1576604497u, 1079368611u, 185078728u, 1075754810u, 3070984497u, 0, LOG10_TOLERANCE, 0},
+{ 195, 1074195779u, 444800035u, 3243343143u, 1734989302u, 1071465380u, 1752264123u, 0, LOG10_TOLERANCE, 0},
+{ 196, 1072748883u, 130452005u, 1041548088u, 2158433515u, 1066859955u, 2063338972u, 0, LOG10_TOLERANCE, 0},
+{ 197, 1087212320u, 1941318385u, 1045807374u, 792193370u, 1074837515u, 2154594024u, 0, LOG10_TOLERANCE, 0},
+{ 198, 1090816018u, 1299392207u, 3212131720u, 3205732280u, 1075111739u, 267565964u, 0, LOG10_TOLERANCE, 0},
+{ 199, 1098698804u, 3035093505u, 1052187689u, 3287702190u, 1075702711u, 3041229296u, 0, LOG10_TOLERANCE, 0},
+{ 200, 1099192612u, 2160225215u, 1102624859u, 836655570u, 1075742023u, 2852075512u, 0, LOG10_TOLERANCE, 0},
+{ 201, 1096723626u, 3360816360u, 3246176356u, 172860634u, 1075552011u, 1964944288u, 0, LOG10_TOLERANCE, 0},
+{ 202, 1070995788u, 146831910u, 1051558014u, 2340722078u, 3218968143u, 2381624297u, 0, LOG10_TOLERANCE, 0},
+{ 203, 1082932703u, 1603798153u, 3207725532u, 1099413093u, 1074243064u, 2760597126u, 0, LOG10_TOLERANCE, 0},
+{ 204, 1099194730u, 2429340443u, 3190303581u, 3223770005u, 1075742204u, 1481397550u, 0, LOG10_TOLERANCE, 0},
+{ 205, 1075882959u, 955542166u, 3230415151u, 275583938u, 1072527436u, 3458072453u, 0, LOG10_TOLERANCE, 0},
+{ 206, 1092971882u, 513397822u, 1090646554u, 2089321329u, 1075274427u, 3320030397u, 0, LOG10_TOLERANCE, 0},
+{ 207, 1045686228u, 2782073372u, 1046063872u, 4023829068u, 3223252349u, 3038225778u, 0, LOG10_TOLERANCE, 0},
+{ 208, 1098564822u, 3242223094u, 3194111199u, 4264674108u, 1075694332u, 3986486054u, 0, LOG10_TOLERANCE, 0},
+{ 209, 1091027173u, 3506346169u, 1047020885u, 1742757458u, 1075128334u, 1994269532u, 0, LOG10_TOLERANCE, 0},
+{ 210, 1045180829u, 1265459564u, 3193450280u, 3650514880u, 3223291632u, 1407815761u, 0, LOG10_TOLERANCE, 0},
+{ 211, 1081755890u, 1525260440u, 3235452527u, 2612331392u, 1074068889u, 281483434u, 0, LOG10_TOLERANCE, 0},
+{ 212, 1101185272u, 1263613754u, 3219096387u, 635677201u, 1075864768u, 886241666u, 0, LOG10_TOLERANCE, 0},
+{ 213, 1058788439u, 4140947288u, 3200792376u, 2013265346u, 3222260434u, 3769645888u, 0, LOG10_TOLERANCE, 0},
+{ 214, 1102490744u, 1912759945u, 3237045253u, 1351396825u, 1075915029u, 2362076341u, 0, LOG10_TOLERANCE, 0},
+{ 215, 1100721514u, 1001433078u, 3206926643u, 2741676659u, 1075847467u, 2274933934u, 0, LOG10_TOLERANCE, 0},
+{ 216, 1080923606u, 1088945233u, 1085095743u, 3986114865u, 1073937994u, 3131087463u, 0, LOG10_TOLERANCE, 0},
+{ 217, 1068250409u, 831239754u, 1099828675u, 3071308141u, 3220448375u, 1593685882u, 0, LOG10_TOLERANCE, 0},
+{ 218, 1078350849u, 3473592372u, 1102759382u, 1309576357u, 1073374699u, 2119873274u, 0, LOG10_TOLERANCE, 0},
+{ 219, 1103703058u, 2042340367u, 1091945628u, 2062772374u, 1075960436u, 2286787906u, 0, LOG10_TOLERANCE, 0},
+{ 220, 1047282039u, 1840632537u, 1096533424u, 807510337u, 3223133556u, 615461173u, 0, LOG10_TOLERANCE, 0},
+{ 221, 1083968074u, 144814872u, 3212698915u, 2282965697u, 1074399260u, 2935967126u, 0, LOG10_TOLERANCE, 0},
+{ 222, 1071236430u, 2552499583u, 3229111426u, 1470130815u, 3218688141u, 1735943305u, 0, LOG10_TOLERANCE, 0},
+{ 223, 1095609417u, 2858583811u, 1089760910u, 6360994u, 1075469319u, 1031376135u, 0, LOG10_TOLERANCE, 0},
+{ 224, 1050781281u, 1614537194u, 1075198900u, 4088705365u, 3222871476u, 124071926u, 0, LOG10_TOLERANCE, 0},
+{ 225, 1103455422u, 3545570051u, 1065221325u, 1629217700u, 1075951177u, 3818828341u, 0, LOG10_TOLERANCE, 0},
+{ 226, 1072744324u, 1813392963u, 3235313361u, 3772501596u, 1066739384u, 2622169306u, 0, LOG10_TOLERANCE, 0},
+{ 227, 1049319038u, 2406734491u, 1042055360u, 89226663u, 3222979489u, 1549818103u, 0, LOG10_TOLERANCE, 0},
+{ 228, 1048267433u, 1618759139u, 3194723421u, 3888234802u, 3223058595u, 943314679u, 0, LOG10_TOLERANCE, 0},
+{ 229, 1055357248u, 3590035633u, 3212424262u, 2892456615u, 3222523359u, 3801211338u, 0, LOG10_TOLERANCE, 0},
+{ 230, 1042459412u, 2431246964u, 3241512456u, 183850734u, 3223409509u, 3122860931u, 0, LOG10_TOLERANCE, 0},
+{ 231, 1089501101u, 3088319870u, 3211544311u, 862225364u, 1075007714u, 397722947u, 0, LOG10_TOLERANCE, 0},
+{ 232, 1087811016u, 3495352775u, 1058576726u, 596957268u, 1074886323u, 4156588618u, 0, LOG10_TOLERANCE, 0},
+{ 233, 1046553348u, 1839214511u, 3205004060u, 1923240983u, 3223190487u, 3541347935u, 0, LOG10_TOLERANCE, 0},
+{ 234, 1058073864u, 739619702u, 3223356436u, 2689885273u, 3222323852u, 918767008u, 0, LOG10_TOLERANCE, 0},
+{ 235, 1052841323u, 2143376228u, 1098306332u, 3760236188u, 3222717361u, 4276298674u, 0, LOG10_TOLERANCE, 0},
+{ 236, 1074621795u, 671680995u, 1091262633u, 2315535361u, 1071782371u, 3108716060u, 0, LOG10_TOLERANCE, 0},
+{ 237, 1066682341u, 2493598049u, 3194927008u, 1689107592u, 3220914269u, 805960935u, 0, LOG10_TOLERANCE, 0},
+{ 238, 1042506311u, 1578976988u, 1066368383u, 2117279163u, 3223407368u, 1831202447u, 0, LOG10_TOLERANCE, 0},
+{ 239, 1075504463u, 3425290087u, 1098487295u, 1263412017u, 1072331748u, 2542659286u, 0, LOG10_TOLERANCE, 0},
+{ 240, 1060949116u, 3635396812u, 1070999426u, 3965655689u, 3221936986u, 1317850179u, 0, LOG10_TOLERANCE, 0},
+{ 241, 1060196346u, 2183973116u, 1101098363u, 1118613350u, 3222052862u, 2389008740u, 0, LOG10_TOLERANCE, 0},
+{ 242, 1074462441u, 199516350u, 1078368488u, 164621458u, 1071703822u, 3497032431u, 0, LOG10_TOLERANCE, 0},
+{ 243, 1040222370u, 3570940805u, 3230316437u, 3596080877u, 3223495334u, 3465764975u, 0, LOG10_TOLERANCE, 0},
+{ 244, 1060725917u, 980880313u, 1079833442u, 884465057u, 3221965643u, 3063857904u, 0, LOG10_TOLERANCE, 0},
+{ 245, 1099977124u, 2558179220u, 1052873711u, 1233598120u, 1075795814u, 1376180157u, 0, LOG10_TOLERANCE, 0},
+{ 246, 1047115221u, 1909994277u, 1085015978u, 2991527452u, 3223144303u, 4009520900u, 0, LOG10_TOLERANCE, 0},
+{ 247, 1060855260u, 1680290941u, 1074309900u, 2943870846u, 3221948600u, 2664673208u, 0, LOG10_TOLERANCE, 0},
+{ 248, 1059496132u, 1451927357u, 3228615456u, 1502585517u, 3222149720u, 1522432661u, 0, LOG10_TOLERANCE, 0},
+{ 249, 1088728303u, 751136990u, 3230392165u, 3493275472u, 1074954708u, 1362341029u, 0, LOG10_TOLERANCE, 0},
+{ 250, 1098365967u, 1209623292u, 3238056647u, 979495322u, 1075680636u, 1289064744u, 0, LOG10_TOLERANCE, 0},
+{ 251, 1102940648u, 1717672108u, 1048120593u, 531240316u, 1075930085u, 2703746266u, 0, LOG10_TOLERANCE, 0},
+{ 252, 1054174923u, 3548721654u, 1086112947u, 3391817224u, 3222612628u, 946693516u, 0, LOG10_TOLERANCE, 0},
+{ 253, 1077836851u, 2758195125u, 1100880260u, 2028440924u, 1073200851u, 2600416432u, 0, LOG10_TOLERANCE, 0},
+{ 254, 1084223893u, 2750123373u, 3232200256u, 1086294931u, 1074428937u, 2273638036u, 0, LOG10_TOLERANCE, 0},
+{ 255, 1043958672u, 2986160931u, 1076097908u, 2540046258u, 3223352200u, 2239843435u, 0, LOG10_TOLERANCE, 0},
+{ 256, 1087992954u, 451471221u, 1064816262u, 4187644495u, 1074899471u, 12188310u, 0, LOG10_TOLERANCE, 0},
+{ 257, 1099460228u, 2439500162u, 1065280276u, 1979490284u, 1075762845u, 559607440u, 0, LOG10_TOLERANCE, 0},
+{ 258, 1040415832u, 2283342035u, 1078398157u, 1345997553u, 3223485983u, 1687818887u, 0, LOG10_TOLERANCE, 0},
+{ 259, 1065765700u, 179066662u, 1103272172u, 1217337578u, 3221186823u, 1702896667u, 0, LOG10_TOLERANCE, 0},
+{ 260, 1064078729u, 3779303391u, 3210023352u, 3115946280u, 3221465459u, 2407475467u, 0, LOG10_TOLERANCE, 0},
+{ 261, 1045506226u, 286247089u, 1085153597u, 713645369u, 3223269253u, 3306334413u, 0, LOG10_TOLERANCE, 0},
+{ 262, 1093670500u, 1468283899u, 1042831668u, 2022736418u, 1075320708u, 3563700741u, 0, LOG10_TOLERANCE, 0},
+{ 263, 1083139105u, 3305564080u, 1065483445u, 482392433u, 1074267138u, 293554640u, 0, LOG10_TOLERANCE, 0},
+{ 264, 1054212159u, 2256346551u, 3222430705u, 2071674991u, 3222609649u, 2107857682u, 0, LOG10_TOLERANCE, 0},
+{ 265, 1056541047u, 2295269094u, 1084451053u, 2773103941u, 3222434855u, 394431272u, 0, LOG10_TOLERANCE, 0},
+{ 266, 1078173946u, 1482721827u, 1092243422u, 3125409590u, 1073316022u, 2786091143u, 0, LOG10_TOLERANCE, 0},
+{ 267, 1073582325u, 1381740563u, 1071545057u, 2918235653u, 1070666040u, 3869657815u, 0, LOG10_TOLERANCE, 0},
+{ 268, 1091232324u, 1105857967u, 3241990046u, 2703723225u, 1075142428u, 1377220811u, 0, LOG10_TOLERANCE, 0},
+{ 269, 1043015571u, 174689677u, 1079333374u, 3947057014u, 3223388179u, 951338253u, 0, LOG10_TOLERANCE, 0},
+{ 270, 1090461859u, 2023082423u, 3242081486u, 1169047927u, 1075080201u, 1158479528u, 0, LOG10_TOLERANCE, 0},
+{ 271, 1064525899u, 3742487766u, 1043425732u, 194972788u, 3221395913u, 4231239291u, 0, LOG10_TOLERANCE, 0},
+{ 272, 1066308179u, 2136071361u, 3211529757u, 993675115u, 3221043032u, 1426615912u, 0, LOG10_TOLERANCE, 0},
+{ 273, 1066179733u, 210772141u, 3241441539u, 580731413u, 3221073205u, 838397735u, 0, LOG10_TOLERANCE, 0},
+{ 274, 1093840413u, 1751560711u, 1074522705u, 180987057u, 1075337719u, 4139891090u, 0, LOG10_TOLERANCE, 0},
+{ 275, 1066754591u, 2552236599u, 1088658621u, 2112468655u, 3220890163u, 4138303096u, 0, LOG10_TOLERANCE, 0},
+{ 276, 1041806969u, 1578223762u, 3224596567u, 2456166162u, 3223432999u, 2061892417u, 0, LOG10_TOLERANCE, 0},
+{ 277, 1058506965u, 2110924310u, 1086207177u, 3161208323u, 3222286325u, 1989463349u, 0, LOG10_TOLERANCE, 0},
+{ 278, 1084379746u, 2352173188u, 1079361728u, 4070222179u, 1074460192u, 606876331u, 0, LOG10_TOLERANCE, 0},
+{ 279, 1101012904u, 2481562701u, 1090937016u, 3809489716u, 1075856166u, 2478468402u, 0, LOG10_TOLERANCE, 0},
+{ 280, 1049519003u, 330905705u, 1086260896u, 90264431u, 3222967443u, 279221201u, 0, LOG10_TOLERANCE, 0},
+{ 281, 1040729961u, 4162008079u, 3194387916u, 759522153u, 3223473464u, 1061077941u, 0, LOG10_TOLERANCE, 0},
+{ 282, 1081015037u, 1839697482u, 3216442625u, 2211508949u, 1073948486u, 2112903132u, 0, LOG10_TOLERANCE, 0},
+{ 283, 1102323563u, 3736863454u, 1063475914u, 3150741666u, 1075908235u, 1559267761u, 0, LOG10_TOLERANCE, 0},
+{ 284, 1060785883u, 4200269406u, 3236646101u, 1061812176u, 3221957583u, 1023579949u, 0, LOG10_TOLERANCE, 0},
+{ 285, 1080217979u, 106027290u, 3234978297u, 2245237549u, 1073834974u, 1053439998u, 0, LOG10_TOLERANCE, 0},
+{ 286, 1099500686u, 2132131375u, 3250483427u, 3449276437u, 1075765686u, 359660823u, 0, LOG10_TOLERANCE, 0},
+{ 287, 1089388778u, 2334440944u, 1105423490u, 4004336184u, 1074999912u, 857354786u, 0, LOG10_TOLERANCE, 0},
+{ 288, 1071289056u, 4090088208u, 1042030013u, 3898658299u, 3218632247u, 4153299296u, 0, LOG10_TOLERANCE, 0},
+{ 289, 1060424416u, 2272831437u, 3253082595u, 2639188641u, 3222011156u, 352494683u, 0, LOG10_TOLERANCE, 0},
+{ 290, 1054766684u, 1856594168u, 3189515294u, 4101853676u, 3222572602u, 3831839253u, 0, LOG10_TOLERANCE, 0},
+{ 291, 1076012412u, 2211699255u, 3195060344u, 3865018604u, 1072629422u, 3024843075u, 0, LOG10_TOLERANCE, 0},
+{ 292, 1095283362u, 996259334u, 3241496889u, 3782673116u, 1075448425u, 2044469585u, 0, LOG10_TOLERANCE, 0},
+{ 293, 1099130747u, 3840380763u, 1048674041u, 550040067u, 1075736615u, 2976904307u, 0, LOG10_TOLERANCE, 0},
+{ 294, 1103935945u, 95874100u, 3237232828u, 2645647822u, 1075967953u, 2505472330u, 0, LOG10_TOLERANCE, 0},
+{ 295, 1043665640u, 3441419500u, 3252367038u, 876710419u, 3223363153u, 2218871553u, 0, LOG10_TOLERANCE, 0},
+{ 296, 1091109904u, 2560836004u, 3199616543u, 1180840586u, 1075134229u, 2422777408u, 0, LOG10_TOLERANCE, 0},
+{ 297, 1074119318u, 2218230392u, 3227485787u, 3947214579u, 1071370243u, 1003595310u, 0, LOG10_TOLERANCE, 0},
+{ 298, 1079539654u, 1447312532u, 1081476588u, 780366847u, 1073732026u, 1166483442u, 0, LOG10_TOLERANCE, 0},
+{ 299, 1072569643u, 2842113832u, 3216156731u, 225159029u, 3214607349u, 2125764098u, 0, LOG10_TOLERANCE, 0},
+{ 300, 1098117193u, 1601981129u, 3234628869u, 2236538344u, 1075660795u, 1772312193u, 0, LOG10_TOLERANCE, 0},
+{ 301, 1085173524u, 2194185737u, 3242362684u, 87913366u, 1074575739u, 2341197873u, 0, LOG10_TOLERANCE, 0},
+{ 302, 1051600232u, 1346862963u, 1077836259u, 3604666660u, 3222810530u, 2259775583u, 0, LOG10_TOLERANCE, 0},
+{ 303, 1064772331u, 3115209742u, 1099332326u, 1325101950u, 3221355528u, 4174732436u, 0, LOG10_TOLERANCE, 0},
+{ 304, 1077062394u, 3889223100u, 1053247613u, 3371396923u, 1072977511u, 4208845593u, 0, LOG10_TOLERANCE, 0},
+{ 305, 1072994220u, 4163120793u, 1075022670u, 1387631215u, 1069288961u, 3741080239u, 0, LOG10_TOLERANCE, 0},
+{ 306, 1057998131u, 1532426189u, 1063168268u, 3397022615u, 3222331077u, 31392221u, 0, LOG10_TOLERANCE, 0},
+{ 307, 1053549673u, 89324166u, 1079206060u, 3429424710u, 3222661551u, 75523650u, 0, LOG10_TOLERANCE, 0},
+{ 308, 1044841454u, 747591401u, 1072238381u, 2803213904u, 3223314736u, 2879315374u, 0, LOG10_TOLERANCE, 0},
+{ 309, 1091113780u, 271904221u, 1044258318u, 1858545114u, 1075134498u, 1591765325u, 0, LOG10_TOLERANCE, 0},
+{ 310, 1080585266u, 314958082u, 3249912496u, 2966213175u, 1073894330u, 1052667796u, 0, LOG10_TOLERANCE, 0},
+{ 311, 1049695766u, 3119528953u, 3217179014u, 2908718240u, 3222954084u, 889232043u, 0, LOG10_TOLERANCE, 0},
+{ 312, 1094983928u, 2018361566u, 1100926600u, 3985805054u, 1075425136u, 2185146546u, 0, LOG10_TOLERANCE, 0},
+{ 313, 1070132580u, 409584884u, 3239758947u, 755795129u, 3219569843u, 63396861u, 0, LOG10_TOLERANCE, 0},
+{ 314, 1075772446u, 1819156379u, 3251342302u, 2982669005u, 1072460651u, 1334807680u, 0, LOG10_TOLERANCE, 0},
+{ 315, 1101563433u, 2080534280u, 3188254060u, 449171797u, 1075880038u, 2397039693u, 0, LOG10_TOLERANCE, 0},
+{ 316, 1095956900u, 168744837u, 3214950009u, 1322217822u, 1075497330u, 1592384176u, 0, LOG10_TOLERANCE, 0},
+{ 317, 1106743252u, 3250487255u, 1062120700u, 1876195180u, 1076075043u, 453333839u, 0, LOG10_TOLERANCE, 0},
+{ 318, 1078859832u, 1336400247u, 1098057903u, 3314079581u, 1073510632u, 2598007896u, 0, LOG10_TOLERANCE, 0},
+{ 319, 1056195172u, 265025555u, 1063854282u, 3779482256u, 3222461212u, 715876344u, 0, LOG10_TOLERANCE, 0},
+{ 320, 1067300501u, 887044257u, 1054789618u, 2732056261u, 3220740348u, 2800315593u, 0, LOG10_TOLERANCE, 0},
+{ 321, 1050106742u, 4027115185u, 3191764868u, 2940199511u, 3222918491u, 2931304212u, 0, LOG10_TOLERANCE, 0},
+{ 322, 1055016507u, 2875684421u, 3227459837u, 2251967570u, 3222551865u, 301845783u, 0, LOG10_TOLERANCE, 0},
+{ 323, 1063244412u, 284173546u, 3238823679u, 3557800647u, 3221598602u, 1501044995u, 0, LOG10_TOLERANCE, 0},
+{ 324, 1101458560u, 3147771266u, 3220110464u, 2933364246u, 1075876197u, 2005169396u, 0, LOG10_TOLERANCE, 0},
+{ 325, 1064853160u, 3366183281u, 3234870843u, 537442654u, 3221343703u, 2043034050u, 0, LOG10_TOLERANCE, 0},
+{ 326, 1096635140u, 2529029548u, 3249882819u, 3781513577u, 1075546886u, 2627653749u, 0, LOG10_TOLERANCE, 0},
+{ 327, 1065952706u, 1080845539u, 3206760016u, 911778687u, 3221131975u, 4072600242u, 0, LOG10_TOLERANCE, 0},
+{ 328, 1044467388u, 469586759u, 1091830022u, 3080528840u, 3223334904u, 2876434309u, 0, LOG10_TOLERANCE, 0},
+{ 329, 1080249104u, 2863108169u, 3225605506u, 2508274250u, 1073840649u, 2350580810u, 0, LOG10_TOLERANCE, 0},
+{ 330, 1063343336u, 4080017377u, 3206492941u, 1470284690u, 3221579130u, 429178087u, 0, LOG10_TOLERANCE, 0},
+{ 331, 1059636742u, 3867917386u, 1102054928u, 3504746045u, 3222129093u, 3443234884u, 0, LOG10_TOLERANCE, 0},
+{ 332, 1064522279u, 2962134101u, 3244741577u, 3390537350u, 3221396564u, 215600004u, 0, LOG10_TOLERANCE, 0},
+{ 333, 1088201813u, 1702237980u, 1071598971u, 1102587474u, 1074912900u, 2016435523u, 0, LOG10_TOLERANCE, 0},
+{ 334, 1055486470u, 2180218657u, 3211592260u, 1206527853u, 3222514177u, 1109609194u, 0, LOG10_TOLERANCE, 0},
+{ 335, 1049601096u, 394130786u, 3242511482u, 2437699868u, 3222962844u, 1703442430u, 0, LOG10_TOLERANCE, 0},
+{ 336, 1044237059u, 849581558u, 3252006507u, 2008614943u, 3223343444u, 773913446u, 0, LOG10_TOLERANCE, 0},
+{ 337, 1062656366u, 3128971673u, 3249137531u, 2773583059u, 3221674024u, 2531989598u, 0, LOG10_TOLERANCE, 0},
+{ 338, 1085029866u, 590727700u, 3248651761u, 2183878539u, 1074558718u, 3417539816u, 0, LOG10_TOLERANCE, 0},
+{ 339, 1101098629u, 820687580u, 3208143496u, 1402434664u, 1075860606u, 3565615010u, 0, LOG10_TOLERANCE, 0},
+{ 340, 1104807187u, 1873709254u, 3245167989u, 44275991u, 1076001778u, 2036327596u, 0, LOG10_TOLERANCE, 0},
+{ 341, 1042185105u, 1174874204u, 3208263730u, 2360372288u, 3223421054u, 2997287966u, 0, LOG10_TOLERANCE, 0},
+{ 342, 1103854676u, 937573440u, 3208953761u, 211240241u, 1075965441u, 2636424733u, 0, LOG10_TOLERANCE, 0},
+{ 343, 1096065286u, 2469774991u, 1043117070u, 3380071805u, 1075506844u, 1428213445u, 0, LOG10_TOLERANCE, 0},
+{ 344, 1058121042u, 442507560u, 3254252803u, 3257889649u, 3222319110u, 1209148707u, 0, LOG10_TOLERANCE, 0},
+{ 345, 1068850520u, 1854921625u, 1049810168u, 2729627545u, 3220259255u, 4115658190u, 0, LOG10_TOLERANCE, 0},
+{ 346, 1107228981u, 4001809575u, 3240128649u, 278261523u, 1076090611u, 4040385013u, 0, LOG10_TOLERANCE, 0},
+{ 347, 1087224694u, 1793907966u, 3238955714u, 398859249u, 1074838240u, 3371466190u, 0, LOG10_TOLERANCE, 0},
+{ 348, 1053468899u, 2511916952u, 3219195283u, 1697158299u, 3222666696u, 1149559858u, 0, LOG10_TOLERANCE, 0},
+{ 349, 1069985548u, 3230931724u, 3243897690u, 3508781585u, 3219655741u, 4077268049u, 0, LOG10_TOLERANCE, 0},
+{ 350, 1103847606u, 1674254897u, 1046547577u, 217148561u, 1075965217u, 3250603014u, 0, LOG10_TOLERANCE, 0},
+{ 351, 1063780306u, 3275604304u, 3194840159u, 2991205850u, 3221505017u, 3196065758u, 0, LOG10_TOLERANCE, 0},
+{ 352, 1047765727u, 3509997278u, 3248888030u, 3897986511u, 3223096074u, 1672032697u, 0, LOG10_TOLERANCE, 0},
+{ 353, 1047182435u, 2156824613u, 1042295665u, 1239257646u, 3223139850u, 2987274156u, 0, LOG10_TOLERANCE, 0},
+{ 354, 1065780437u, 1073153314u, 3250031627u, 2567234990u, 3221182253u, 164395135u, 0, LOG10_TOLERANCE, 0},
+{ 355, 1043109764u, 4261696995u, 3197784432u, 323702024u, 3223385243u, 1235045213u, 0, LOG10_TOLERANCE, 0},
+{ 356, 1096207349u, 4075177615u, 3202791065u, 1919006082u, 1075518219u, 3567878508u, 0, LOG10_TOLERANCE, 0},
+{ 357, 1091786365u, 386429966u, 1086504491u, 3698826164u, 1075183833u, 284065248u, 0, LOG10_TOLERANCE, 0},
+{ 358, 1078327190u, 1681986446u, 3194985869u, 3072950140u, 1073367276u, 1317768853u, 0, LOG10_TOLERANCE, 0},
+{ 359, 1069828285u, 3719038997u, 1055433962u, 3331415058u, 3219757577u, 883618285u, 0, LOG10_TOLERANCE, 0},
+{ 360, 1060749713u, 2420250111u, 3238002206u, 1928661079u, 3221962410u, 3782338671u, 0, LOG10_TOLERANCE, 0},
+{ 361, 1081914210u, 3679866727u, 3227386672u, 1273835792u, 1074088909u, 1763037434u, 0, LOG10_TOLERANCE, 0},
+{ 362, 1041622738u, 2682092368u, 3234222284u, 1325425811u, 3223439873u, 2314570182u, 0, LOG10_TOLERANCE, 0},
+{ 363, 1056312613u, 4175172697u, 3208346191u, 2130706153u, 3222451562u, 2646436590u, 0, LOG10_TOLERANCE, 0},
+{ 364, 1092089624u, 1200784450u, 1083605096u, 1248595607u, 1075208257u, 3714920247u, 0, LOG10_TOLERANCE, 0},
+{ 365, 1066407215u, 1897285171u, 3251296075u, 944966123u, 3221019887u, 2885684334u, 0, LOG10_TOLERANCE, 0},
+{ 366, 1093887602u, 2270747330u, 3230692631u, 422503284u, 1075342025u, 3855534378u, 0, LOG10_TOLERANCE, 0},
+{ 367, 1084120037u, 2857564741u, 1075647403u, 3308906709u, 1074417351u, 3495656636u, 0, LOG10_TOLERANCE, 0},
+{ 368, 1055991450u, 1380066948u, 3232612906u, 2613634294u, 3222480175u, 4079753456u, 0, LOG10_TOLERANCE, 0},
+{ 369, 1063890856u, 4022784584u, 1060483857u, 3264056381u, 3221489550u, 3947775592u, 0, LOG10_TOLERANCE, 0},
+{ 370, 1044637404u, 1778509100u, 3213146285u, 2665833973u, 3223326954u, 1245976636u, 0, LOG10_TOLERANCE, 0},
+{ 371, 1069243652u, 1859175955u, 1079949560u, 4258450607u, 3220116226u, 3853669976u, 0, LOG10_TOLERANCE, 0},
+{ 372, 1048277388u, 4128020197u, 1076266146u, 4122840980u, 3223057963u, 1203658489u, 0, LOG10_TOLERANCE, 0},
+{ 373, 1045699515u, 2454653987u, 3229487005u, 2977478685u, 3223251196u, 49172802u, 0, LOG10_TOLERANCE, 0},
+{ 374, 1106072835u, 1355181872u, 1095308770u, 436846481u, 1076048055u, 3710853932u, 0, LOG10_TOLERANCE, 0},
+{ 375, 1099121654u, 2592856453u, 3247825559u, 3195234082u, 1075735798u, 2943062101u, 0, LOG10_TOLERANCE, 0},
+{ 376, 1074634375u, 3554670043u, 1091621009u, 3321236467u, 1071788293u, 3499163438u, 0, LOG10_TOLERANCE, 0},
+{ 377, 1069012833u, 1936670355u, 1095715713u, 2958468553u, 3220209306u, 4000528649u, 0, LOG10_TOLERANCE, 0},
+{ 378, 1044807461u, 2960339502u, 1098808013u, 1044068983u, 3223317331u, 3200692282u, 0, LOG10_TOLERANCE, 0},
+{ 379, 1049207537u, 4093388677u, 1095478112u, 1735930261u, 3222986804u, 3051995548u, 0, LOG10_TOLERANCE, 0},
+{ 380, 1091040302u, 1807398746u, 3195743135u, 4261616162u, 1075129290u, 2488942216u, 0, LOG10_TOLERANCE, 0},
+{ 381, 1061810546u, 3250576797u, 1059002384u, 3043079652u, 3221802937u, 62615936u, 0, LOG10_TOLERANCE, 0},
+{ 382, 1069207109u, 666051428u, 3208765404u, 1912684117u, 3220134978u, 1624219483u, 0, LOG10_TOLERANCE, 0},
+{ 383, 1103487420u, 1949030179u, 1096388934u, 896459246u, 1075952462u, 1749306203u, 0, LOG10_TOLERANCE, 0},
+{ 384, 1054300653u, 622499767u, 1066707637u, 1490260486u, 3222602868u, 625029866u, 0, LOG10_TOLERANCE, 0},
+{ 385, 1106688493u, 1490616165u, 3251242436u, 795675736u, 1076072987u, 3348155444u, 0, LOG10_TOLERANCE, 0},
+{ 386, 1080943896u, 3662877092u, 3234317146u, 3200513112u, 1073940365u, 763960603u, 0, LOG10_TOLERANCE, 0},
+{ 387, 1084088786u, 1356101968u, 3236536816u, 3062844611u, 1074413746u, 4063861095u, 0, LOG10_TOLERANCE, 0},
+{ 388, 1072438992u, 2284484846u, 3219498359u, 3240896015u, 3215768815u, 1046975407u, 0, LOG10_TOLERANCE, 0},
+{ 389, 1088276041u, 494503287u, 1092811254u, 142673998u, 1074917315u, 3271366326u, 0, LOG10_TOLERANCE, 0},
+{ 390, 1104642268u, 3394882641u, 3225306538u, 364852125u, 1075995988u, 1977096684u, 0, LOG10_TOLERANCE, 0},
+{ 391, 1077778115u, 193885269u, 1088149839u, 1359805831u, 1073187262u, 2507279849u, 0, LOG10_TOLERANCE, 0},
+{ 392, 1053001134u, 592580907u, 3199560872u, 3086438952u, 3222702171u, 1985550349u, 0, LOG10_TOLERANCE, 0},
+{ 393, 1059518664u, 1778008540u, 1049064687u, 73581647u, 3222146286u, 3204633369u, 0, LOG10_TOLERANCE, 0},
+{ 394, 1099249950u, 233240285u, 1081923320u, 2710903921u, 1075746816u, 1726081546u, 0, LOG10_TOLERANCE, 0},
+{ 395, 1069513767u, 3719878805u, 1079866720u, 3615458228u, 3219988438u, 2477635424u, 0, LOG10_TOLERANCE, 0},
+{ 396, 1073711076u, 3647632375u, 3247225271u, 3839959621u, 1070783226u, 4149591050u, 0, LOG10_TOLERANCE, 0},
+{ 397, 1103401096u, 2232210456u, 3235434773u, 224271737u, 1075948928u, 1471690445u, 0, LOG10_TOLERANCE, 0},
+{ 398, 1045520036u, 2134662911u, 3190390590u, 4239009051u, 3223267864u, 491395740u, 0, LOG10_TOLERANCE, 0},
+{ 399, 1080526145u, 2305279897u, 1077668039u, 1854523320u, 1073885760u, 2209376105u, 0, LOG10_TOLERANCE, 0},
+{ 400, 1072380611u, 538224650u, 3206153057u, 1379649610u, 3216110261u, 736404255u, 0, LOG10_TOLERANCE, 0},
+{ 401, 1048926859u, 3683897920u, 3244167599u, 3647579469u, 3223007615u, 885924102u, 0, LOG10_TOLERANCE, 0},
+{ 402, 1090280933u, 2694093608u, 1042775347u, 598406111u, 1075069627u, 4045261099u, 0, LOG10_TOLERANCE, 0},
+{ 403, 1064151744u, 872706833u, 1084802480u, 2200602798u, 3221456744u, 108068407u, 0, LOG10_TOLERANCE, 0},
+{ 404, 1042339597u, 904146293u, 1060867322u, 1729685598u, 3223415376u, 2814323454u, 0, LOG10_TOLERANCE, 0},
+{ 405, 1048211322u, 1894173462u, 3232800651u, 191960416u, 3223062224u, 158689847u, 0, LOG10_TOLERANCE, 0},
+{ 406, 1091225343u, 3521028551u, 1054522089u, 3287274359u, 1075141976u, 1561613401u, 0, LOG10_TOLERANCE, 0},
+{ 407, 1095386964u, 959640601u, 3201578263u, 4136915018u, 1075455488u, 3662783481u, 0, LOG10_TOLERANCE, 0},
+{ 408, 1064005451u, 1553716379u, 1106027987u, 984725765u, 3221474555u, 2065254288u, 0, LOG10_TOLERANCE, 0},
+{ 409, 1091348993u, 2287646644u, 3240329321u, 2276183378u, 1075149728u, 564081412u, 0, LOG10_TOLERANCE, 0},
+{ 410, 1068209174u, 3940225170u, 3199544434u, 997572161u, 3220458648u, 326066716u, 0, LOG10_TOLERANCE, 0},
+{ 411, 1065284713u, 36116288u, 3206886566u, 4196602670u, 3221289242u, 3024728349u, 0, LOG10_TOLERANCE, 0},
+{ 412, 1094212205u, 3550227562u, 3207257983u, 2747744117u, 1075367912u, 3605299668u, 0, LOG10_TOLERANCE, 0},
+{ 413, 1104236126u, 507130047u, 1048359321u, 3229888373u, 1075978565u, 76478367u, 0, LOG10_TOLERANCE, 0},
+{ 414, 1075513130u, 2210969014u, 1081031001u, 1946786091u, 1072336215u, 3594780710u, 0, LOG10_TOLERANCE, 0},
+{ 415, 1088823342u, 4059150589u, 3189759234u, 1177045799u, 1074962426u, 203192711u, 0, LOG10_TOLERANCE, 0},
+{ 416, 1093103612u, 2664812822u, 1050343198u, 2034180320u, 1075284635u, 3784608382u, 0, LOG10_TOLERANCE, 0},
+{ 417, 1066295469u, 1175750283u, 3235559706u, 1424491340u, 3221045930u, 2066830035u, 0, LOG10_TOLERANCE, 0},
+{ 418, 1066420545u, 1630036121u, 3231972785u, 3195479448u, 3221014164u, 1961979416u, 0, LOG10_TOLERANCE, 0},
+{ 419, 1090429875u, 2527029044u, 1046927050u, 4000723255u, 1075078402u, 674977703u, 0, LOG10_TOLERANCE, 0},
+{ 420, 1085208677u, 3335703647u, 3237349676u, 3869440059u, 1074579717u, 3053034379u, 0, LOG10_TOLERANCE, 0},
+{ 421, 1091433848u, 3888398377u, 3196041693u, 1290567220u, 1075154757u, 4288752120u, 0, LOG10_TOLERANCE, 0},
+{ 422, 1066679070u, 3242451480u, 3248384948u, 707431021u, 3220915391u, 1002013526u, 0, LOG10_TOLERANCE, 0},
+{ 423, 1083230509u, 2739665123u, 1060777905u, 1733073225u, 1074282429u, 2639675714u, 0, LOG10_TOLERANCE, 0},
+{ 424, 1078517061u, 1297274853u, 3208848704u, 3341639139u, 1073423693u, 1229342814u, 0, LOG10_TOLERANCE, 0},
+{ 425, 1046570941u, 2228057309u, 1084318902u, 1317851136u, 3223188718u, 923854032u, 0, LOG10_TOLERANCE, 0},
+{ 426, 1088255327u, 270039934u, 3241414679u, 3063626339u, 1074916100u, 3232618583u, 0, LOG10_TOLERANCE, 0},
+{ 427, 1071694702u, 83062251u, 3211262173u, 2659016437u, 3218208877u, 4113528378u, 0, LOG10_TOLERANCE, 0},
+{ 428, 1095743886u, 3833539373u, 3206667189u, 1567476111u, 1075476931u, 1567233076u, 0, LOG10_TOLERANCE, 0},
+{ 429, 1057711424u, 2382776852u, 3249232579u, 1546622468u, 3222347943u, 3798670522u, 0, LOG10_TOLERANCE, 0},
+{ 430, 1085536439u, 1714300821u, 1104130938u, 4167591598u, 1074637649u, 2509717948u, 0, LOG10_TOLERANCE, 0},
+{ 431, 1051092760u, 2798720100u, 1086978789u, 449990704u, 3222844328u, 4037397167u, 0, LOG10_TOLERANCE, 0},
+{ 432, 1083714767u, 4039516226u, 3244344107u, 4272932619u, 1074365489u, 1649510185u, 0, LOG10_TOLERANCE, 0},
+{ 433, 1075224793u, 1683007544u, 1091105663u, 3805494321u, 1072174396u, 1609044821u, 0, LOG10_TOLERANCE, 0},
+{ 434, 1073369300u, 2072627412u, 1094383324u, 3394151662u, 1070311685u, 2675194563u, 0, LOG10_TOLERANCE, 0},
+{ 435, 1073086376u, 1120106427u, 3223631624u, 3404608264u, 1069658889u, 1776899808u, 0, LOG10_TOLERANCE, 0},
+{ 436, 1097859997u, 559918757u, 3205077053u, 908100198u, 1075635841u, 1601462731u, 0, LOG10_TOLERANCE, 0},
+{ 437, 1042677918u, 2026673913u, 3244833635u, 2844573214u, 3223400155u, 2734047538u, 0, LOG10_TOLERANCE, 0},
+{ 438, 1107083611u, 3946837259u, 3234993796u, 3850406820u, 1076086381u, 4256303931u, 0, LOG10_TOLERANCE, 0},
+{ 439, 1057479809u, 3139330994u, 1046133568u, 1539650690u, 3222363668u, 1863422807u, 0, LOG10_TOLERANCE, 0},
+{ 440, 1089221852u, 1554593884u, 3228899878u, 2813752562u, 1074990069u, 2444290568u, 0, LOG10_TOLERANCE, 0},
+{ 441, 1056505004u, 3804703138u, 1072931071u, 2053677923u, 3222437333u, 3070337480u, 0, LOG10_TOLERANCE, 0},
+{ 442, 1097380651u, 289355864u, 1078453818u, 2143066338u, 1075606261u, 2210278777u, 0, LOG10_TOLERANCE, 0},
+{ 443, 1056456232u, 2157691971u, 1106629150u, 110806409u, 3222440776u, 214047711u, 0, LOG10_TOLERANCE, 0},
+{ 444, 1082157019u, 3570399481u, 1085637605u, 180265334u, 1074119387u, 950389812u, 0, LOG10_TOLERANCE, 0},
+{ 445, 1053496534u, 558779875u, 3202046748u, 2338464653u, 3222664909u, 2840504692u, 0, LOG10_TOLERANCE, 0},
+{ 446, 1045705464u, 1703969219u, 3229797258u, 1417521063u, 3223250683u, 1044693633u, 0, LOG10_TOLERANCE, 0},
+{ 447, 1090298613u, 3917440951u, 1051668894u, 3736066983u, 1075070705u, 2421449516u, 0, LOG10_TOLERANCE, 0},
+{ 448, 1064752080u, 3106613409u, 1066627453u, 2735392257u, 3221358590u, 2240418382u, 0, LOG10_TOLERANCE, 0},
+{ 449, 1065665372u, 2229777605u, 1065061963u, 2405869925u, 3221219219u, 2002424062u, 0, LOG10_TOLERANCE, 0},
+{ 450, 1091979581u, 3967957902u, 1057416138u, 3459188071u, 1075199987u, 4084035947u, 0, LOG10_TOLERANCE, 0},
+{ 451, 1068639210u, 3699016825u, 3249713090u, 796144848u, 3220333758u, 815317634u, 0, LOG10_TOLERANCE, 0},
+{ 452, 1081332748u, 3285165564u, 3211948811u, 401510871u, 1074004705u, 407550323u, 0, LOG10_TOLERANCE, 0},
+{ 453, 1094257658u, 634857910u, 3199607513u, 914218057u, 1075371109u, 3260851721u, 0, LOG10_TOLERANCE, 0},
+{ 454, 1083743336u, 2030735578u, 3233855943u, 965677531u, 1074369558u, 2483657024u, 0, LOG10_TOLERANCE, 0},
+{ 455, 1079556815u, 3957229084u, 1051050470u, 3123776651u, 1073736874u, 648519445u, 0, LOG10_TOLERANCE, 0},
+{ 456, 1074379685u, 162122081u, 3239376395u, 108064594u, 1071660191u, 1605034523u, 0, LOG10_TOLERANCE, 0},
+{ 457, 1089788138u, 869031839u, 3225020876u, 1344301606u, 1075034563u, 2621266855u, 0, LOG10_TOLERANCE, 0},
+{ 458, 1066949826u, 946696117u, 3231825228u, 1700703647u, 3220830768u, 223570193u, 0, LOG10_TOLERANCE, 0},
+{ 459, 1075492875u, 3394168074u, 1076939786u, 1666995668u, 1072325741u, 565674172u, 0, LOG10_TOLERANCE, 0},
+{ 460, 1061291147u, 2488789804u, 3238508333u, 1506943664u, 3221885943u, 1809033126u, 0, LOG10_TOLERANCE, 0},
+{ 461, 1072788663u, 3844072288u, 3202592279u, 2630019853u, 1067670922u, 1855635741u, 0, LOG10_TOLERANCE, 0},
+{ 462, 1072450894u, 1244307192u, 3191297711u, 2540916692u, 3215675005u, 4195715816u, 0, LOG10_TOLERANCE, 0},
+{ 463, 1052579044u, 2871645739u, 3239081581u, 1440249115u, 3222735710u, 695871118u, 0, LOG10_TOLERANCE, 0},
+{ 464, 1068350633u, 1231934926u, 3236746788u, 603977748u, 3220424332u, 277989641u, 0, LOG10_TOLERANCE, 0},
+{ 465, 1047966041u, 2386312545u, 1063169277u, 2715234268u, 3223079604u, 49370105u, 0, LOG10_TOLERANCE, 0},
+{ 466, 1087803418u, 915867083u, 1046790892u, 3347417612u, 1074885740u, 1843751208u, 0, LOG10_TOLERANCE, 0},
+{ 467, 1105984188u, 3553288373u, 1065698616u, 2906680663u, 1076045368u, 1668255753u, 0, LOG10_TOLERANCE, 0},
+{ 468, 1045506226u, 2342364630u, 1051356723u, 4019093203u, 3223269253u, 3098172626u, 0, LOG10_TOLERANCE, 0},
+{ 469, 1053685514u, 2911548084u, 1105282515u, 2476735795u, 3222653390u, 710736245u, 0, LOG10_TOLERANCE, 0},
+{ 470, 1050472772u, 1836216409u, 1101062307u, 2519592554u, 3222894082u, 2911135348u, 0, LOG10_TOLERANCE, 0},
+{ 471, 1070178161u, 1235369496u, 3222946447u, 668087854u, 3219544778u, 3191775902u, 0, LOG10_TOLERANCE, 0},
+{ 472, 1061070948u, 2981820811u, 1059838516u, 2845580478u, 3221922743u, 556163093u, 0, LOG10_TOLERANCE, 0},
+{ 473, 1046447766u, 1565550570u, 3217165795u, 4162017137u, 3223200002u, 563369286u, 0, LOG10_TOLERANCE, 0},
+{ 474, 1089767730u, 2808968027u, 1055630096u, 1782326814u, 1075032850u, 1073708672u, 0, LOG10_TOLERANCE, 0},
+{ 475, 1053576974u, 1492622658u, 3216653077u, 3972512122u, 3222659863u, 923354108u, 0, LOG10_TOLERANCE, 0},
+{ 476, 1074688031u, 2722693603u, 3227814791u, 3169731970u, 1071813127u, 2479854561u, 0, LOG10_TOLERANCE, 0},
+{ 477, 1070422983u, 899763203u, 3207606001u, 2804747833u, 3219420822u, 1438062981u, 0, LOG10_TOLERANCE, 0},
+{ 478, 1083186677u, 3789058912u, 3228095081u, 4135937628u, 1074273171u, 2472968060u, 0, LOG10_TOLERANCE, 0},
+{ 479, 1060199382u, 1682808307u, 3206960335u, 232877759u, 3222052254u, 477899392u, 0, LOG10_TOLERANCE, 0},
+{ 480, 1094607838u, 2851963139u, 3246852961u, 2590862592u, 1075393124u, 3038195584u, 0, LOG10_TOLERANCE, 0},
+{ 481, 1081200406u, 2422232642u, 3234779662u, 290458310u, 1073980248u, 710172697u, 0, LOG10_TOLERANCE, 0},
+{ 482, 1063187430u, 1082582386u, 1075605675u, 2602133689u, 3221604910u, 899954685u, 0, LOG10_TOLERANCE, 0},
+{ 483, 1092334963u, 1789635787u, 1059414278u, 1048286093u, 1075224782u, 1925305273u, 0, LOG10_TOLERANCE, 0},
+{ 484, 1098330542u, 231339448u, 1055573265u, 504907415u, 1075678013u, 2077150613u, 0, LOG10_TOLERANCE, 0},
+{ 485, 1063211461u, 1153251200u, 3204617090u, 1772013857u, 3221602228u, 2787459030u, 0, LOG10_TOLERANCE, 0},
+{ 486, 1099551055u, 1082898276u, 3212089272u, 1449080862u, 1075769126u, 2974900830u, 0, LOG10_TOLERANCE, 0},
+{ 487, 1086008285u, 3177299045u, 1058862813u, 809400815u, 1074707746u, 2728274629u, 0, LOG10_TOLERANCE, 0},
+{ 488, 1083370902u, 1924429710u, 1056464743u, 3349283177u, 1074309778u, 406273308u, 0, LOG10_TOLERANCE, 0},
+{ 489, 1097989743u, 42238036u, 1042379500u, 2113559863u, 1075649111u, 2547563809u, 0, LOG10_TOLERANCE, 0},
+{ 490, 1064761243u, 3304403230u, 3217556703u, 58952646u, 3221357200u, 642692340u, 0, LOG10_TOLERANCE, 0},
+{ 491, 1065185882u, 1645486982u, 3224301095u, 3636267471u, 3221300614u, 3261785592u, 0, LOG10_TOLERANCE, 0},
+{ 492, 1062762009u, 619402181u, 3235208235u, 557360557u, 3221658502u, 1916272264u, 0, LOG10_TOLERANCE, 0},
+{ 493, 1090754746u, 110029735u, 1046937383u, 984375729u, 1075106433u, 221145856u, 0, LOG10_TOLERANCE, 0},
+{ 494, 1042013090u, 4063688092u, 3203235744u, 1049950343u, 3223426180u, 584482441u, 0, LOG10_TOLERANCE, 0},
+{ 495, 1062350619u, 650996069u, 1054971928u, 3953359826u, 3221726025u, 2801498591u, 0, LOG10_TOLERANCE, 0},
+{ 496, 1079572157u, 66926332u, 1090561839u, 1379780888u, 1073741164u, 2195643118u, 0, LOG10_TOLERANCE, 0},
+{ 497, 1085969659u, 2803378256u, 1086057989u, 498534626u, 1074702753u, 971413916u, 0, LOG10_TOLERANCE, 0},
+{ 498, 1082618553u, 2846400785u, 1047142525u, 1375153550u, 1074200711u, 2221073810u, 0, LOG10_TOLERANCE, 0},
+{ 499, 1044581201u, 2869128958u, 1070972315u, 4246440273u, 3223329461u, 2601691166u, 0, LOG10_TOLERANCE, 0},
+{ 500, 1051832506u, 3112381207u, 1044430965u, 3981604561u, 3222792302u, 1546587034u, 0, LOG10_TOLERANCE, 0},
+{ 501, 1083771349u, 243303420u, 1093735824u, 1575581926u, 1074373479u, 837776877u, 0, LOG10_TOLERANCE, 0},
+{ 502, 1091654349u, 3218865041u, 3204803496u, 3840388050u, 1075171309u, 2088865965u, 0, LOG10_TOLERANCE, 0},
+{ 503, 1048415431u, 336846959u, 1052664471u, 3798336786u, 3223049544u, 1357585448u, 0, LOG10_TOLERANCE, 0},
+{ 504, 1055954236u, 3639240976u, 1081202165u, 1844741676u, 3222484009u, 242301978u, 0, LOG10_TOLERANCE, 0},
+{ 505, 1064421145u, 717293069u, 3211534283u, 582401011u, 3221415517u, 3660346947u, 0, LOG10_TOLERANCE, 0},
+{ 506, 1104478864u, 3766248610u, 3196520332u, 1174437546u, 1075989604u, 3365688656u, 0, LOG10_TOLERANCE, 0},
+{ 507, 1083431226u, 756959182u, 3204099341u, 1581804034u, 1074320590u, 199117646u, 0, LOG10_TOLERANCE, 0},
+{ 508, 1058322796u, 3560686300u, 3220980617u, 4277975772u, 3222300802u, 1449948266u, 0, LOG10_TOLERANCE, 0},
+{ 509, 1062422428u, 2598148853u, 3217622194u, 3460421008u, 3221712702u, 3246720810u, 0, LOG10_TOLERANCE, 0},
+{ 510, 1066720824u, 136600515u, 3209934920u, 3340653128u, 3220901271u, 1853785686u, 0, LOG10_TOLERANCE, 0},
+{ 511, 1096820310u, 1045480938u, 3251354609u, 4133432965u, 1075557888u, 1620985468u, 0, LOG10_TOLERANCE, 0},
+{ 512, 1091599431u, 1630207738u, 3239996829u, 2393354808u, 1075165664u, 2887122802u, 0, LOG10_TOLERANCE, 0},
+{ 513, 1043142370u, 3739770117u, 1059520750u, 3959551225u, 3223384261u, 1189792801u, 0, LOG10_TOLERANCE, 0},
+{ 514, 1083246857u, 1498861716u, 1091297147u, 847410798u, 1074285788u, 1667361171u, 0, LOG10_TOLERANCE, 0},
+{ 515, 1073516688u, 983275314u, 3232538664u, 2244973629u, 1070603266u, 4232028352u, 0, LOG10_TOLERANCE, 0},
+{ 516, 1054849265u, 2353103845u, 3235718771u, 2978889966u, 3222567988u, 1423369271u, 0, LOG10_TOLERANCE, 0},
+{ 517, 1103874344u, 1546972125u, 3249076079u, 1987349196u, 1075966059u, 3386502820u, 0, LOG10_TOLERANCE, 0},
+{ 518, 1090735865u, 2769161072u, 1075207126u, 292616282u, 1075104746u, 4031801740u, 0, LOG10_TOLERANCE, 0},
+{ 519, 1052228650u, 36855311u, 1052128202u, 1479039342u, 3222758838u, 3692631126u, 0, LOG10_TOLERANCE, 0},
+{ 520, 1083757053u, 2027463605u, 1066023013u, 3369686340u, 1074371486u, 3578986915u, 0, LOG10_TOLERANCE, 0},
+{ 521, 1050369101u, 3808681655u, 1054161346u, 1821773119u, 3222900481u, 2925260558u, 0, LOG10_TOLERANCE, 0},
+{ 522, 1040685928u, 3175490326u, 3226879970u, 845687760u, 3223475061u, 3266495528u, 0, LOG10_TOLERANCE, 0},
+{ 523, 1042302993u, 3124482451u, 3242748377u, 3259417226u, 3223417296u, 2734516734u, 0, LOG10_TOLERANCE, 0},
+{ 524, 1045245695u, 2751606436u, 3236210939u, 3923142740u, 3223287704u, 455537501u, 0, LOG10_TOLERANCE, 0},
+{ 525, 1095694737u, 2016872044u, 3228408064u, 4201274408u, 1075474207u, 3162419511u, 0, LOG10_TOLERANCE, 0},
+{ 526, 1051865606u, 1019916843u, 3219974785u, 1977881787u, 3222789097u, 2356936620u, 0, LOG10_TOLERANCE, 0},
+{ 527, 1051995104u, 2060433318u, 1075872515u, 366073725u, 3222777360u, 1207606903u, 0, LOG10_TOLERANCE, 0},
+{ 528, 1043696909u, 1098469906u, 1082900695u, 2349346832u, 3223361879u, 497752621u, 0, LOG10_TOLERANCE, 0},
+{ 529, 1062491059u, 3011196295u, 3252479932u, 2459281672u, 3221700659u, 485236026u, 0, LOG10_TOLERANCE, 0},
+{ 530, 1073850675u, 2843222682u, 1089275809u, 298982001u, 1070990041u, 2392858765u, 0, LOG10_TOLERANCE, 0},
+{ 531, 1101737698u, 914741728u, 3203468059u, 2833809843u, 1075885898u, 1722473944u, 0, LOG10_TOLERANCE, 0},
+{ 532, 1089280230u, 1274901962u, 3241535845u, 3759113509u, 1074993609u, 1453359696u, 0, LOG10_TOLERANCE, 0},
+{ 533, 1098432794u, 2134927252u, 3253802671u, 3013731444u, 1075685425u, 1495574294u, 0, LOG10_TOLERANCE, 0},
+{ 534, 1099201341u, 2230655177u, 3254510616u, 1249674366u, 1075742766u, 1948328827u, 0, LOG10_TOLERANCE, 0},
+{ 535, 1062971253u, 717357389u, 1083533731u, 3746683362u, 3221630568u, 1379621049u, 0, LOG10_TOLERANCE, 0},
+{ 536, 1066289466u, 834976849u, 3217357661u, 2465861779u, 3221047305u, 3116620001u, 0, LOG10_TOLERANCE, 0},
+{ 537, 1045656117u, 1385714428u, 1053358395u, 3007113740u, 3223255008u, 1510643247u, 0, LOG10_TOLERANCE, 0},
+{ 538, 1050527919u, 599268545u, 3201368210u, 2309854744u, 3222890819u, 3769637076u, 0, LOG10_TOLERANCE, 0},
+{ 539, 1069954454u, 2840234388u, 3232496515u, 333365983u, 3219674994u, 294990716u, 0, LOG10_TOLERANCE, 0},
+{ 540, 1045922781u, 3136078996u, 3194520860u, 2650572904u, 3223233377u, 3702336467u, 0, LOG10_TOLERANCE, 0},
+{ 541, 1086204043u, 2405805086u, 3251640319u, 324233833u, 1074731495u, 762641516u, 0, LOG10_TOLERANCE, 0},
+{ 542, 1106699146u, 2589598340u, 3254677807u, 952438812u, 1076073393u, 2118848003u, 0, LOG10_TOLERANCE, 0},
+{ 543, 1041631125u, 1922837702u, 3216892718u, 3535907549u, 3223439541u, 3853212535u, 0, LOG10_TOLERANCE, 0},
+{ 544, 1096132220u, 261447440u, 3209805849u, 1150571079u, 1075512345u, 3192258124u, 0, LOG10_TOLERANCE, 0},
+{ 545, 1095805232u, 4026487528u, 1073152064u, 27340691u, 1075482522u, 2878242110u, 0, LOG10_TOLERANCE, 0},
+{ 546, 1081640044u, 338765118u, 1086225786u, 3207238249u, 1074053037u, 1071781049u, 0, LOG10_TOLERANCE, 0},
+{ 547, 1048699055u, 1085283176u, 3187775111u, 1601194210u, 3223027842u, 3327204206u, 0, LOG10_TOLERANCE, 0},
+{ 548, 1091520173u, 3031712790u, 3252307859u, 170666844u, 1075159656u, 2834005504u, 0, LOG10_TOLERANCE, 0},
+{ 549, 1071378583u, 3148395674u, 1041913758u, 3306391490u, 3218540934u, 3229024431u, 0, LOG10_TOLERANCE, 0},
+{ 550, 1053793422u, 2205233857u, 3208100078u, 3993195511u, 3222647300u, 823279676u, 0, LOG10_TOLERANCE, 0},
+{ 551, 1067699608u, 4282766727u, 1072820377u, 1874778218u, 3220609471u, 3451929701u, 0, LOG10_TOLERANCE, 0},
+{ 552, 1063349444u, 2920860798u, 3218070226u, 3104066154u, 3221577909u, 33368404u, 0, LOG10_TOLERANCE, 0},
+{ 553, 1057466703u, 969991373u, 3250596895u, 1734386152u, 3222364626u, 2782202392u, 0, LOG10_TOLERANCE, 0},
+{ 554, 1091432170u, 1218740205u, 3239802737u, 2610078504u, 1075154660u, 2668667873u, 0, LOG10_TOLERANCE, 0},
+{ 555, 1058547594u, 1485218325u, 3220870240u, 3591664613u, 3222283365u, 1294019716u, 0, LOG10_TOLERANCE, 0},
+{ 556, 1054590495u, 690157417u, 3190850619u, 4192347699u, 3222583121u, 3272158420u, 0, LOG10_TOLERANCE, 0},
+{ 557, 1096053810u, 4009839784u, 1079670252u, 394167192u, 1075505873u, 3602829947u, 0, LOG10_TOLERANCE, 0},
+{ 558, 1087075589u, 961532417u, 1092588071u, 2923790239u, 1074829177u, 2571444864u, 0, LOG10_TOLERANCE, 0},
+{ 559, 1056395443u, 4174125604u, 1050682630u, 2169701868u, 3222445217u, 2242909506u, 0, LOG10_TOLERANCE, 0},
+{ 560, 1095608827u, 4146748230u, 1087373950u, 2481478351u, 1075469284u, 3055706006u, 0, LOG10_TOLERANCE, 0},
+{ 561, 1076987866u, 3984715440u, 1050421618u, 2446142566u, 1072948889u, 2762932455u, 0, LOG10_TOLERANCE, 0},
+{ 562, 1084172406u, 936290150u, 1100614426u, 3625806370u, 1074423267u, 2079190709u, 0, LOG10_TOLERANCE, 0},
+{ 563, 1099787952u, 1866615265u, 3215651428u, 2337013350u, 1075784045u, 474803698u, 0, LOG10_TOLERANCE, 0},
+{ 564, 1105714654u, 712227971u, 1106004723u, 973148499u, 1076036318u, 989663135u, 0, LOG10_TOLERANCE, 0},
+{ 565, 1082604551u, 3409813738u, 3244817008u, 1933503498u, 1074198627u, 1392248798u, 0, LOG10_TOLERANCE, 0},
+{ 566, 1079943733u, 3180389060u, 3228735703u, 83422217u, 1073788096u, 3723549429u, 0, LOG10_TOLERANCE, 0},
+{ 567, 1077878724u, 556972671u, 3204582372u, 841555801u, 1073210297u, 1176943375u, 0, LOG10_TOLERANCE, 0},
+{ 568, 1070767721u, 4189151332u, 1080874032u, 706326922u, 3219204296u, 8534901u, 0, LOG10_TOLERANCE, 0},
+{ 569, 1096151307u, 198291836u, 1057281892u, 2188836928u, 1075513867u, 146400103u, 0, LOG10_TOLERANCE, 0},
+{ 570, 1078091995u, 1219449298u, 3228734687u, 3504562743u, 1073286046u, 864376040u, 0, LOG10_TOLERANCE, 0},
+{ 571, 1057086816u, 1776099219u, 1094316777u, 4188083896u, 3222396619u, 1866278910u, 0, LOG10_TOLERANCE, 0},
+{ 572, 1046362060u, 2614400266u, 1073750227u, 3003203347u, 3223204825u, 2440192588u, 0, LOG10_TOLERANCE, 0},
+{ 573, 1066499030u, 2959351406u, 1105603716u, 311851587u, 3220981851u, 2668005317u, 0, LOG10_TOLERANCE, 0},
+{ 574, 1084544434u, 865443613u, 1097532516u, 3622237781u, 1074489457u, 3357453183u, 0, LOG10_TOLERANCE, 0},
+{ 575, 1084303018u, 447506102u, 3195759295u, 3603669725u, 1074445156u, 2084524296u, 0, LOG10_TOLERANCE, 0},
+{ 576, 1097890173u, 3934398273u, 1040996422u, 2968621268u, 1075639068u, 3042123355u, 0, LOG10_TOLERANCE, 0},
+{ 577, 1049256177u, 784208771u, 1088764788u, 2182296421u, 3222983555u, 2711242300u, 0, LOG10_TOLERANCE, 0},
+{ 578, 1100848643u, 1527590526u, 3206961556u, 2823164069u, 1075851323u, 2440914413u, 0, LOG10_TOLERANCE, 0},
+{ 579, 1089160483u, 3876699591u, 3207481130u, 4028148535u, 1074986225u, 3667748993u, 0, LOG10_TOLERANCE, 0},
+{ 580, 1083576186u, 2164249756u, 1059857743u, 1785169952u, 1074344647u, 2189652330u, 0, LOG10_TOLERANCE, 0},
+{ 581, 1091804009u, 2079273665u, 1080303860u, 625760474u, 1075185407u, 788005775u, 0, LOG10_TOLERANCE, 0},
+{ 582, 1079002460u, 3636214836u, 1068367620u, 2932621925u, 1073546236u, 450535769u, 0, LOG10_TOLERANCE, 0},
+{ 583, 1043995372u, 4274131512u, 1047707755u, 92550763u, 3223350966u, 501020710u, 0, LOG10_TOLERANCE, 0},
+{ 584, 1051338473u, 2648933384u, 1084603503u, 3534304873u, 3222826711u, 3279110674u, 0, LOG10_TOLERANCE, 0},
+{ 585, 1064563235u, 3216750767u, 3191088629u, 547482628u, 3221389315u, 3385302547u, 0, LOG10_TOLERANCE, 0},
+{ 586, 1061084774u, 1420360746u, 1080063101u, 1690029499u, 3221921181u, 2909345809u, 0, LOG10_TOLERANCE, 0},
+{ 587, 1082371716u, 1908572179u, 1080112083u, 1228319033u, 1074160841u, 2860344817u, 0, LOG10_TOLERANCE, 0},
+{ 588, 1048158178u, 500312015u, 3212368508u, 3864619086u, 3223065771u, 190787676u, 0, LOG10_TOLERANCE, 0},
+{ 589, 1073851962u, 4211343447u, 1087492676u, 4272583781u, 1070992066u, 1791098782u, 0, LOG10_TOLERANCE, 0},
+{ 590, 1099392394u, 2382118000u, 1042665328u, 567154882u, 1075757916u, 3223125935u, 0, LOG10_TOLERANCE, 0},
+{ 591, 1058013442u, 1435344339u, 3216303171u, 2275988178u, 3222330228u, 3675387000u, 0, LOG10_TOLERANCE, 0},
+{ 592, 1067054971u, 3403659753u, 3218043030u, 1926480488u, 3220801724u, 1053622215u, 0, LOG10_TOLERANCE, 0},
+{ 593, 1076840383u, 1198845185u, 3225556149u, 1130089684u, 1072896923u, 3494913394u, 0, LOG10_TOLERANCE, 0},
+{ 594, 1075179394u, 2183928090u, 1048403956u, 963834821u, 1072146078u, 1987142843u, 0, LOG10_TOLERANCE, 0},
+{ 595, 1101672960u, 2120625396u, 1041006976u, 2137548527u, 1075883791u, 1290867319u, 0, LOG10_TOLERANCE, 0},
+{ 596, 1099230238u, 586700956u, 1059670521u, 303891699u, 1075745191u, 1621757249u, 0, LOG10_TOLERANCE, 0},
+{ 597, 1071510850u, 2509132460u, 1102827530u, 2205707903u, 3218413889u, 1739137714u, 0, LOG10_TOLERANCE, 0},
+{ 598, 1057376949u, 1229308263u, 3209170414u, 4206576047u, 3222371414u, 2709365139u, 0, LOG10_TOLERANCE, 0},
+{ 599, 1076592641u, 4078010749u, 3199236456u, 733478972u, 1072838269u, 1643379297u, 0, LOG10_TOLERANCE, 0},
+{ 600, 1050228936u, 4277541051u, 3199806921u, 397102023u, 3222909748u, 524666777u, 0, LOG10_TOLERANCE, 0},
+{ 601, 1048491365u, 900999594u, 3234720188u, 2530214248u, 3223045165u, 2583905845u, 0, LOG10_TOLERANCE, 0},
+{ 602, 1076543548u, 4000609478u, 1096577064u, 4148592328u, 1072825692u, 1999101770u, 0, LOG10_TOLERANCE, 0},
+{ 603, 1048668084u, 2154187873u, 3224392607u, 3957250362u, 3223030892u, 3009591096u, 0, LOG10_TOLERANCE, 0},
+{ 604, 1075929840u, 2867079200u, 1101870326u, 921212001u, 1072565702u, 4157771188u, 0, LOG10_TOLERANCE, 0},
+{ 605, 1085738242u, 674547716u, 1063216239u, 3929755226u, 1074670299u, 1605339823u, 0, LOG10_TOLERANCE, 0},
+{ 606, 1092932203u, 3158182449u, 1043794244u, 3259056345u, 1075271164u, 2647804578u, 0, LOG10_TOLERANCE, 0},
+{ 607, 1089293008u, 3002823940u, 1059511739u, 2832435794u, 1074994369u, 2987286299u, 0, LOG10_TOLERANCE, 0},
+{ 608, 1069821174u, 2196511929u, 1049973941u, 3672092877u, 3219762462u, 2310326603u, 0, LOG10_TOLERANCE, 0},
+{ 609, 1050438056u, 3655292191u, 1086438127u, 3567072906u, 3222896185u, 2892109320u, 0, LOG10_TOLERANCE, 0},
+{ 610, 1095703300u, 1617573614u, 3201863123u, 3090723732u, 1075474686u, 4138813458u, 0, LOG10_TOLERANCE, 0},
+{ 611, 1085717732u, 679893506u, 3211547753u, 824081024u, 1074667186u, 3466673869u, 0, LOG10_TOLERANCE, 0},
+{ 612, 1089530525u, 2285242807u, 1084999409u, 2221731406u, 1075010776u, 2105373250u, 0, LOG10_TOLERANCE, 0},
+{ 613, 1059250016u, 1935990727u, 1088822246u, 1058156518u, 3222191042u, 824662780u, 0, LOG10_TOLERANCE, 0},
+{ 614, 1102839166u, 521023584u, 1059186903u, 4245163857u, 1075927020u, 2012019887u, 0, LOG10_TOLERANCE, 0},
+{ 615, 1103891140u, 2312887617u, 3191771354u, 1885370807u, 1075966582u, 1863110785u, 0, LOG10_TOLERANCE, 0},
+{ 616, 1105470167u, 1796441468u, 1100030327u, 2772711004u, 1076026642u, 4097068227u, 0, LOG10_TOLERANCE, 0},
+{ 617, 1056793172u, 2095685003u, 1077984448u, 2100773742u, 3222418879u, 1210777557u, 0, LOG10_TOLERANCE, 0},
+{ 618, 1045470972u, 2892538035u, 1042396334u, 4162200338u, 3223272879u, 4179986377u, 0, LOG10_TOLERANCE, 0},
+{ 619, 1095242103u, 2177698116u, 3227557177u, 150832500u, 1075445485u, 3509591170u, 0, LOG10_TOLERANCE, 0},
+{ 620, 1044078568u, 607966734u, 3236250630u, 4164600559u, 3223348263u, 823364156u, 0, LOG10_TOLERANCE, 0},
+{ 621, 1068906164u, 2830122967u, 1046096700u, 3713346883u, 3220241508u, 1678342095u, 0, LOG10_TOLERANCE, 0},
+{ 622, 1089714315u, 2314640506u, 3203696416u, 3276228872u, 1075028239u, 2744643937u, 0, LOG10_TOLERANCE, 0},
+{ 623, 1065428659u, 469331883u, 3249037349u, 2999233437u, 3221265861u, 640249239u, 0, LOG10_TOLERANCE, 0},
+{ 624, 1097382011u, 560886625u, 1091899487u, 748795120u, 1075606357u, 556919058u, 0, LOG10_TOLERANCE, 0},
+{ 625, 1049886858u, 2958421324u, 1092569414u, 3235243477u, 3222936146u, 574940066u, 0, LOG10_TOLERANCE, 0},
+{ 626, 1045542849u, 3221475559u, 1043038304u, 915608434u, 3223265605u, 331939149u, 0, LOG10_TOLERANCE, 0},
+{ 627, 1071197530u, 3007808652u, 3216682290u, 2531019474u, 3218730587u, 1453925889u, 0, LOG10_TOLERANCE, 0},
+{ 628, 1094545351u, 1767658578u, 3237045269u, 2313128318u, 1075389495u, 2316745533u, 0, LOG10_TOLERANCE, 0},
+{ 629, 1063134244u, 1926845182u, 1066835624u, 1783256828u, 3221610959u, 3534398567u, 0, LOG10_TOLERANCE, 0},
+{ 630, 1040575629u, 90378038u, 1057168870u, 164358218u, 3223479272u, 72744237u, 0, LOG10_TOLERANCE, 0},
+{ 631, 1106859172u, 1610524680u, 1085283851u, 2903496007u, 1076079163u, 2555703719u, 0, LOG10_TOLERANCE, 0},
+{ 632, 1078635586u, 4274321404u, 3202913591u, 720121831u, 1073455667u, 3464371112u, 0, LOG10_TOLERANCE, 0},
+{ 633, 1051205256u, 2034778236u, 1071133763u, 1413236391u, 3222835923u, 3048532228u, 0, LOG10_TOLERANCE, 0},
+{ 634, 1051063028u, 1489112261u, 1076691395u, 348210906u, 3222846658u, 610090266u, 0, LOG10_TOLERANCE, 0},
+{ 635, 1059260269u, 2797651324u, 3224410527u, 2374818327u, 3222189162u, 1735176885u, 0, LOG10_TOLERANCE, 0},
+{ 636, 1088287256u, 1823161666u, 3197810695u, 3119680047u, 1074917968u, 1025128902u, 0, LOG10_TOLERANCE, 0},
+{ 637, 1065927336u, 3420950657u, 1087084743u, 2136638961u, 3221139040u, 2173692258u, 0, LOG10_TOLERANCE, 0},
+{ 638, 1069902224u, 3554566429u, 1062907717u, 2736702589u, 3219708277u, 2349339026u, 0, LOG10_TOLERANCE, 0},
+{ 639, 1097405019u, 2928437580u, 3187765027u, 1393427873u, 1075607962u, 2671382925u, 0, LOG10_TOLERANCE, 0},
+{ 640, 1061817913u, 189447067u, 1051643315u, 828663513u, 3221801952u, 2742751743u, 0, LOG10_TOLERANCE, 0},
+{ 641, 1052313869u, 2852350928u, 1045683757u, 673354280u, 3222752766u, 1944632537u, 0, LOG10_TOLERANCE, 0},
+{ 642, 1043946301u, 3589563265u, 3248741629u, 812657927u, 3223352622u, 3084641287u, 0, LOG10_TOLERANCE, 0},
+{ 643, 1043127178u, 1766416701u, 1100392103u, 2185373290u, 3223384716u, 3136906037u, 0, LOG10_TOLERANCE, 0},
+{ 644, 1072791741u, 3763582673u, 3191965790u, 388374829u, 1067710078u, 40508173u, 0, LOG10_TOLERANCE, 0},
+{ 645, 1079635136u, 1187403069u, 1075300235u, 336640304u, 1073750094u, 4012674593u, 0, LOG10_TOLERANCE, 0},
+{ 646, 1103926251u, 1718795752u, 3243118752u, 683369237u, 1075967659u, 3079243747u, 0, LOG10_TOLERANCE, 0},
+{ 647, 1063308449u, 1863545307u, 1069449477u, 3418627399u, 3221586233u, 1729396316u, 0, LOG10_TOLERANCE, 0},
+{ 648, 1069601294u, 3295607249u, 1068878592u, 1633297809u, 3219928111u, 215617447u, 0, LOG10_TOLERANCE, 0},
+{ 649, 1058947127u, 2585980994u, 3236670483u, 1286750688u, 3222241438u, 2254971432u, 0, LOG10_TOLERANCE, 0},
+{ 650, 1046157033u, 15816845u, 3233249283u, 2491924775u, 3223217268u, 270679194u, 0, LOG10_TOLERANCE, 0},
+{ 651, 1042413021u, 1051983351u, 1049180786u, 1474421917u, 3223411710u, 809174222u, 0, LOG10_TOLERANCE, 0},
+{ 652, 1053765877u, 2003816032u, 1086050104u, 668090487u, 3222648824u, 225843921u, 0, LOG10_TOLERANCE, 0},
+{ 653, 1052556037u, 3671484625u, 1067020039u, 430024694u, 3222737092u, 3550051201u, 0, LOG10_TOLERANCE, 0},
+{ 654, 1067397110u, 3991830201u, 3207808714u, 1021245839u, 3220718298u, 624955348u, 0, LOG10_TOLERANCE, 0},
+{ 655, 1064194391u, 4255801807u, 3207681716u, 1926756877u, 3221451803u, 1956260472u, 0, LOG10_TOLERANCE, 0},
+{ 656, 1052140785u, 4167786896u, 1077097744u, 1775517981u, 3222765458u, 1900204384u, 0, LOG10_TOLERANCE, 0},
+{ 657, 1085601978u, 3187518564u, 1082437406u, 944672491u, 1074648774u, 3776772173u, 0, LOG10_TOLERANCE, 0},
+{ 658, 1049366282u, 953085192u, 3227310828u, 3459155777u, 3222976526u, 745195680u, 0, LOG10_TOLERANCE, 0},
+{ 659, 1069502506u, 1908555460u, 1073640207u, 260441967u, 3219993422u, 4145662383u, 0, LOG10_TOLERANCE, 0},
+{ 660, 1067219606u, 250762477u, 1072582645u, 2886742039u, 3220759670u, 3957488315u, 0, LOG10_TOLERANCE, 0},
+{ 661, 1103422358u, 786180031u, 3197734769u, 2788918312u, 1075949819u, 1564374635u, 0, LOG10_TOLERANCE, 0},
+{ 662, 1087028179u, 2055912467u, 3244244909u, 1394142937u, 1074826137u, 3517815416u, 0, LOG10_TOLERANCE, 0},
+{ 663, 1069612985u, 91984146u, 3222252812u, 4126276047u, 3219918503u, 912342035u, 0, LOG10_TOLERANCE, 0},
+{ 664, 1081340139u, 3942715706u, 3239316352u, 410676547u, 1074005996u, 2222873768u, 0, LOG10_TOLERANCE, 0},
+{ 665, 1051074198u, 86296211u, 1085850694u, 649202596u, 3222845777u, 2242599693u, 0, LOG10_TOLERANCE, 0},
+{ 666, 1097882744u, 3069064472u, 3237358008u, 23209276u, 1075638282u, 2668333231u, 0, LOG10_TOLERANCE, 0},
+{ 667, 1081235288u, 1867297860u, 1072956607u, 2513414118u, 1073986953u, 2486525690u, 0, LOG10_TOLERANCE, 0},
+{ 668, 1103049699u, 3171788768u, 3235208783u, 162138697u, 1075933205u, 994967552u, 0, LOG10_TOLERANCE, 0},
+{ 669, 1081728455u, 1245110700u, 1081653954u, 2584994077u, 1074065233u, 2141915645u, 0, LOG10_TOLERANCE, 0},
+{ 670, 1098026472u, 3347226587u, 1058962932u, 2291943376u, 1075652603u, 2069109495u, 0, LOG10_TOLERANCE, 0},
+{ 671, 1058899062u, 966940828u, 1060726420u, 2798041096u, 3222247026u, 3985313909u, 0, LOG10_TOLERANCE, 0},
+{ 672, 1072793759u, 2487340727u, 3223786370u, 4105954991u, 1067735688u, 2642613737u, 0, LOG10_TOLERANCE, 0},
+{ 673, 1100632849u, 1671039260u, 1086395032u, 3745833360u, 1075844614u, 2953668257u, 0, LOG10_TOLERANCE, 0},
+{ 674, 1057078797u, 651714217u, 1047070645u, 2130549237u, 3222397401u, 3928282362u, 0, LOG10_TOLERANCE, 0},
+{ 675, 1059632083u, 1423000172u, 3247822717u, 1551488170u, 3222129748u, 947884649u, 0, LOG10_TOLERANCE, 0},
+{ 676, 1054113659u, 921077236u, 3213332351u, 1431049019u, 3222617705u, 1746915195u, 0, LOG10_TOLERANCE, 0},
+{ 677, 1067510295u, 655715547u, 3190985373u, 1527556471u, 3220681274u, 2767998108u, 0, LOG10_TOLERANCE, 0},
+{ 678, 1080171331u, 4110878657u, 3251297180u, 879739345u, 1073826194u, 3666797281u, 0, LOG10_TOLERANCE, 0},
+{ 679, 1085804762u, 2623955764u, 1093699897u, 1216444475u, 1074680111u, 1096100139u, 0, LOG10_TOLERANCE, 0},
+{ 680, 1091905603u, 107442539u, 3239767031u, 1149813329u, 1075194070u, 876285134u, 0, LOG10_TOLERANCE, 0},
+{ 681, 1085961592u, 1761361082u, 3226030205u, 1121849716u, 1074701696u, 1547721169u, 0, LOG10_TOLERANCE, 0},
+{ 682, 1092603467u, 2534144722u, 1044223733u, 3512285706u, 1075240482u, 278021464u, 0, LOG10_TOLERANCE, 0},
+{ 683, 1064362429u, 4073670723u, 1050729852u, 3034818849u, 3221427291u, 4242826412u, 0, LOG10_TOLERANCE, 0},
+{ 684, 1101984574u, 1421423503u, 1060278048u, 1397153092u, 1075893286u, 292685601u, 0, LOG10_TOLERANCE, 0},
+{ 685, 1069938181u, 1649206019u, 1104525577u, 1267104290u, 3219685234u, 1620636761u, 0, LOG10_TOLERANCE, 0},
+{ 686, 1041818449u, 3775270392u, 1040251850u, 68667319u, 3223432597u, 1692181536u, 0, LOG10_TOLERANCE, 0},
+{ 687, 1056847252u, 3099226694u, 3254103006u, 4020102648u, 3222415726u, 634949558u, 0, LOG10_TOLERANCE, 0},
+{ 688, 1054108064u, 3718441177u, 3215643451u, 4032951536u, 3222618180u, 2193999680u, 0, LOG10_TOLERANCE, 0},
+{ 689, 1044131371u, 508048351u, 3210196713u, 1707937896u, 3223346611u, 4088292437u, 0, LOG10_TOLERANCE, 0},
+{ 690, 1051127979u, 2784738160u, 1073435430u, 1109346010u, 3222841630u, 809492040u, 0, LOG10_TOLERANCE, 0},
+{ 691, 1078241642u, 3331916473u, 3238794568u, 2707019594u, 1073339378u, 1164696438u, 0, LOG10_TOLERANCE, 0},
+{ 692, 1093182670u, 3093165197u, 1072894805u, 2853215019u, 1075290349u, 3560624908u, 0, LOG10_TOLERANCE, 0},
+{ 693, 1069098491u, 2135797997u, 1048399559u, 2941926126u, 3220185001u, 2767205362u, 0, LOG10_TOLERANCE, 0},
+{ 694, 1048430980u, 2083412145u, 3249335391u, 507212448u, 3223048633u, 3647005715u, 0, LOG10_TOLERANCE, 0},
+{ 695, 1075363751u, 4270176401u, 3246546709u, 3288753319u, 1072255974u, 1254607273u, 0, LOG10_TOLERANCE, 0},
+{ 696, 1100449215u, 3692175292u, 3197271515u, 3989064196u, 1075837440u, 2247367861u, 0, LOG10_TOLERANCE, 0},
+{ 697, 1104208090u, 3111924274u, 1066772558u, 59281695u, 1075977140u, 1062472240u, 0, LOG10_TOLERANCE, 0},
+{ 698, 1067683911u, 2135245466u, 3208804313u, 3846547392u, 3220615013u, 2056251939u, 0, LOG10_TOLERANCE, 0},
+{ 699, 1094877811u, 972051266u, 3222814246u, 3539700586u, 1075415588u, 3736433495u, 0, LOG10_TOLERANCE, 0},
+{ 700, 1055482282u, 330951080u, 1079189813u, 583922384u, 3222514463u, 2428577226u, 0, LOG10_TOLERANCE, 0},
+{ 701, 1089640092u, 1711944085u, 1104170032u, 643991456u, 1075021506u, 849331440u, 0, LOG10_TOLERANCE, 0},
+{ 702, 1086945901u, 2072550721u, 3250147641u, 4280263530u, 1074820661u, 3054767438u, 0, LOG10_TOLERANCE, 0},
+{ 703, 1045489058u, 1566376352u, 1067251433u, 72984588u, 3223271005u, 1012625481u, 0, LOG10_TOLERANCE, 0},
+{ 704, 1095276569u, 3103043079u, 1045853123u, 410067497u, 1075447946u, 3020783845u, 0, LOG10_TOLERANCE, 0},
+{ 705, 1069188845u, 1910366299u, 1081770885u, 634683073u, 3220144496u, 3237120090u, 0, LOG10_TOLERANCE, 0},
+{ 706, 1081530688u, 2226525875u, 3224149290u, 2126302825u, 1074036987u, 3618469334u, 0, LOG10_TOLERANCE, 0},
+{ 707, 1073150247u, 1383818978u, 3193885723u, 1220372650u, 1069816815u, 3917580686u, 0, LOG10_TOLERANCE, 0},
+{ 708, 1066482943u, 1953339096u, 1077176252u, 1476516558u, 3220988290u, 2638241953u, 0, LOG10_TOLERANCE, 0},
+{ 709, 1066092000u, 1306277326u, 1079089150u, 4093716191u, 3221095026u, 3487752196u, 0, LOG10_TOLERANCE, 0},
+{ 710, 1085665139u, 51750045u, 3242913901u, 4256866157u, 1074659005u, 1309342661u, 0, LOG10_TOLERANCE, 0},
+{ 711, 1047601319u, 2163853087u, 3232053146u, 2962422808u, 3223111635u, 4105270447u, 0, LOG10_TOLERANCE, 0},
+{ 712, 1075516945u, 1618388148u, 3233154824u, 3711953164u, 1072338175u, 1191839168u, 0, LOG10_TOLERANCE, 0},
+{ 713, 1099384354u, 357108214u, 3202294604u, 2306775262u, 1075757318u, 784133138u, 0, LOG10_TOLERANCE, 0},
+{ 714, 1054420438u, 2571356437u, 3249064063u, 2394851808u, 3222594288u, 2040763197u, 0, LOG10_TOLERANCE, 0},
+{ 715, 1083004443u, 4273880094u, 1103698617u, 3578832032u, 1074251723u, 2507069390u, 0, LOG10_TOLERANCE, 0},
+{ 716, 1085943053u, 2091068742u, 3228270226u, 3980489730u, 1074699248u, 3771564566u, 0, LOG10_TOLERANCE, 0},
+{ 717, 1081533104u, 2772307714u, 1051008486u, 32546576u, 1074037354u, 4044977501u, 0, LOG10_TOLERANCE, 0},
+{ 718, 1093745567u, 2143788498u, 3195498043u, 3630119231u, 1075328539u, 1114663423u, 0, LOG10_TOLERANCE, 0},
+{ 719, 1051149287u, 2527385594u, 3240503648u, 3482095012u, 3222840027u, 4027782605u, 0, LOG10_TOLERANCE, 0},
+{ 720, 1094685151u, 2690097362u, 1068598730u, 2360266862u, 1075397460u, 2132295436u, 0, LOG10_TOLERANCE, 0},
+{ 721, 1058857869u, 2673272949u, 1082639557u, 522449749u, 3222251927u, 3783282647u, 0, LOG10_TOLERANCE, 0},
+{ 722, 1104424147u, 3596379400u, 3242016775u, 2002293002u, 1075987296u, 2221010959u, 0, LOG10_TOLERANCE, 0},
+{ 723, 1099439656u, 4113224369u, 3222122439u, 2152316893u, 1075761372u, 4041298882u, 0, LOG10_TOLERANCE, 0},
+{ 724, 1073313068u, 31662602u, 1047721249u, 1747087514u, 1070190919u, 3275029946u, 0, LOG10_TOLERANCE, 0},
+{ 725, 1102980109u, 2489659568u, 1097051253u, 277506957u, 1075931234u, 1381810110u, 0, LOG10_TOLERANCE, 0},
+{ 726, 1043918186u, 3850162281u, 3213841942u, 438724093u, 3223353594u, 177091255u, 0, LOG10_TOLERANCE, 0},
+{ 727, 1095392535u, 2431814052u, 1075518084u, 2672434118u, 1075455856u, 2397269078u, 0, LOG10_TOLERANCE, 0},
+{ 728, 1095679087u, 391606792u, 1048184750u, 4168944276u, 1075473326u, 2611771655u, 0, LOG10_TOLERANCE, 0},
+{ 729, 1100308768u, 457529672u, 3201090276u, 72407935u, 1075826564u, 3785081567u, 0, LOG10_TOLERANCE, 0},
+{ 730, 1071237071u, 3954981400u, 1052053242u, 2411049585u, 3218687449u, 3595228211u, 0, LOG10_TOLERANCE, 0},
+{ 731, 1086180091u, 485456950u, 1088415093u, 1655397424u, 1074728718u, 3913075270u, 0, LOG10_TOLERANCE, 0},
+{ 732, 1050750780u, 1551748070u, 3236871640u, 1329701152u, 3222874518u, 1520295316u, 0, LOG10_TOLERANCE, 0},
+{ 733, 1077155474u, 3099222537u, 1104984570u, 4293792842u, 1073010904u, 641483791u, 0, LOG10_TOLERANCE, 0},
+{ 734, 1056466057u, 3603065260u, 3197735968u, 2402359253u, 3222440074u, 683949067u, 0, LOG10_TOLERANCE, 0},
+{ 735, 1051340936u, 3961208159u, 3219057584u, 2340553876u, 3222826548u, 1086390675u, 0, LOG10_TOLERANCE, 0},
+{ 736, 1074881909u, 4014841779u, 3197672877u, 3697233334u, 1071934912u, 4044893289u, 0, LOG10_TOLERANCE, 0},
+{ 737, 1065792009u, 1403876392u, 3254028950u, 921363393u, 3221178696u, 593147272u, 0, LOG10_TOLERANCE, 0},
+{ 738, 1107251806u, 1862576361u, 3194031708u, 2476290925u, 1076091248u, 1873492489u, 0, LOG10_TOLERANCE, 0},
+{ 739, 1049661768u, 1454212851u, 1088378861u, 3400401866u, 3222957594u, 1787304246u, 0, LOG10_TOLERANCE, 0},
+{ 740, 1074406809u, 552676385u, 3188635745u, 3778112968u, 1071674723u, 2258814163u, 0, LOG10_TOLERANCE, 0},
+{ 741, 1068925634u, 1199568671u, 3225679997u, 46947405u, 3220235458u, 1823596182u, 0, LOG10_TOLERANCE, 0},
+{ 742, 1077685537u, 2596231448u, 3253943728u, 2219151748u, 1073164985u, 1843863539u, 0, LOG10_TOLERANCE, 0},
+{ 743, 1066527035u, 4119719558u, 3222036299u, 1275474618u, 3220970855u, 409206651u, 0, LOG10_TOLERANCE, 0},
+{ 744, 1092425015u, 3347296825u, 1101507910u, 1254014794u, 1075230292u, 2900923068u, 0, LOG10_TOLERANCE, 0},
+{ 745, 1084119992u, 673775040u, 1070743626u, 244126093u, 1074417346u, 2601619170u, 0, LOG10_TOLERANCE, 0},
+{ 746, 1055716202u, 1832066983u, 1051358028u, 3262483417u, 3222499483u, 2726182442u, 0, LOG10_TOLERANCE, 0},
+{ 747, 1077559600u, 3962610501u, 3198598777u, 849269178u, 1073132817u, 2760677315u, 0, LOG10_TOLERANCE, 0},
+{ 748, 1087990252u, 2497516122u, 3254374111u, 2821429629u, 1074899286u, 2094551578u, 0, LOG10_TOLERANCE, 0},
+{ 749, 1076236288u, 2805941787u, 3217785843u, 779131141u, 1072737943u, 2025392479u, 0, LOG10_TOLERANCE, 0},
+{ 750, 1079425038u, 723423605u, 1084533420u, 627282213u, 1073698254u, 660177971u, 0, LOG10_TOLERANCE, 0},
+{ 751, 1068464032u, 4292778869u, 1078101071u, 1676860147u, 3220398575u, 4080177346u, 0, LOG10_TOLERANCE, 0},
+{ 752, 1076288502u, 3528118587u, 3194648564u, 2363260897u, 1072754098u, 2762983951u, 0, LOG10_TOLERANCE, 0},
+{ 753, 1045414231u, 1307010018u, 1061248120u, 1468743108u, 3223278089u, 2286340052u, 0, LOG10_TOLERANCE, 0},
+{ 754, 1099099491u, 107905661u, 3226089788u, 1943427674u, 1075733782u, 1870296517u, 0, LOG10_TOLERANCE, 0},
+{ 755, 1040746893u, 760006940u, 1054265604u, 1749976597u, 3223472861u, 3121291541u, 0, LOG10_TOLERANCE, 0},
+{ 756, 1090289736u, 2787503556u, 1081282610u, 1195841206u, 1075070165u, 3287006887u, 0, LOG10_TOLERANCE, 0},
+{ 757, 1044318508u, 545462045u, 3208381743u, 1981311808u, 3223341117u, 3439509787u, 0, LOG10_TOLERANCE, 0},
+{ 758, 1061232136u, 3657978397u, 1104463616u, 3501253426u, 3221897616u, 2613738871u, 0, LOG10_TOLERANCE, 0},
+{ 759, 1049883857u, 1804177501u, 3210693633u, 3606766729u, 3222936407u, 395246601u, 0, LOG10_TOLERANCE, 0},
+{ 760, 1076856879u, 1336278526u, 1043741618u, 3165279431u, 1072900573u, 2736825398u, 0, LOG10_TOLERANCE, 0},
+{ 761, 1055471915u, 1599382075u, 1058018527u, 4212580517u, 3222515175u, 1334306044u, 0, LOG10_TOLERANCE, 0},
+{ 762, 1060018678u, 3007589929u, 3202026547u, 2792028313u, 3222080988u, 2398873954u, 0, LOG10_TOLERANCE, 0},
+{ 763, 1105599122u, 1866066996u, 1060329048u, 3727175322u, 1076031950u, 1117079653u, 0, LOG10_TOLERANCE, 0},
+{ 764, 1050932995u, 150890940u, 1056025306u, 3082724735u, 3222857445u, 31357167u, 0, LOG10_TOLERANCE, 0},
+{ 765, 1062008939u, 80400395u, 1093584426u, 3478941315u, 3221777807u, 656233594u, 0, LOG10_TOLERANCE, 0},
+{ 766, 1104156966u, 4050954182u, 3219263194u, 2537475930u, 1075974446u, 2527925082u, 0, LOG10_TOLERANCE, 0},
+{ 767, 1064841871u, 2881752155u, 3212589299u, 2559651278u, 3221345318u, 2837332410u, 0, LOG10_TOLERANCE, 0},
+{ 768, 1101532656u, 440309030u, 3214267461u, 3788040806u, 1075878937u, 3943495913u, 0, LOG10_TOLERANCE, 0},
+{ 769, 1100476615u, 918813144u, 3208535698u, 1607035904u, 1075839211u, 526175238u, 0, LOG10_TOLERANCE, 0},
+{ 770, 1042137451u, 2497054124u, 1089139147u, 2549609010u, 3223422429u, 101990395u, 0, LOG10_TOLERANCE, 0},
+{ 771, 1047037641u, 790219083u, 1054657139u, 2797979479u, 3223149670u, 1483771049u, 0, LOG10_TOLERANCE, 0},
+{ 772, 1057781400u, 1149462078u, 1095765205u, 3879963182u, 3222343590u, 4037954969u, 0, LOG10_TOLERANCE, 0},
+{ 773, 1055246165u, 2684353926u, 3205212854u, 1732474928u, 3222531892u, 2416203981u, 0, LOG10_TOLERANCE, 0},
+{ 774, 1095236965u, 2742237025u, 1051317716u, 3386396147u, 1075445114u, 1609704394u, 0, LOG10_TOLERANCE, 0},
+{ 775, 1063230986u, 3408320912u, 1103071166u, 4233059513u, 3221600072u, 3702924123u, 0, LOG10_TOLERANCE, 0},
+{ 776, 1064863548u, 1077495917u, 1088399968u, 433115118u, 3221342227u, 1491358516u, 0, LOG10_TOLERANCE, 0},
+{ 777, 1057063924u, 841366493u, 1051716814u, 4121125128u, 3222398867u, 2304669873u, 0, LOG10_TOLERANCE, 0},
+{ 778, 1064632084u, 321857207u, 1089128010u, 1149988239u, 3221377628u, 1283733309u, 0, LOG10_TOLERANCE, 0},
+{ 779, 1098059015u, 799866606u, 3197637091u, 3924438208u, 1075655610u, 1105734641u, 0, LOG10_TOLERANCE, 0},
+{ 780, 1043579242u, 2002049816u, 1077053447u, 2240354761u, 3223366830u, 3458618238u, 0, LOG10_TOLERANCE, 0},
+{ 781, 1081522635u, 478939968u, 1097035749u, 1066716440u, 1074035759u, 4035027600u, 0, LOG10_TOLERANCE, 0},
+{ 782, 1084989993u, 1653104725u, 1088548129u, 81977716u, 1074553759u, 4216054447u, 0, LOG10_TOLERANCE, 0},
+{ 783, 1049377628u, 3899475018u, 3189694084u, 3330093036u, 3222975825u, 3582530778u, 0, LOG10_TOLERANCE, 0},
+{ 784, 1089312583u, 2612450289u, 1079065127u, 603380842u, 1074995524u, 3038824780u, 0, LOG10_TOLERANCE, 0},
+{ 785, 1100636791u, 3962735564u, 1101570429u, 1372490825u, 1075844744u, 2684675728u, 0, LOG10_TOLERANCE, 0},
+{ 786, 1054806016u, 1479841439u, 1059312257u, 541504905u, 3222570381u, 3085201785u, 0, LOG10_TOLERANCE, 0},
+{ 787, 1078662178u, 2626148789u, 1057571099u, 4121656076u, 1073462543u, 772383770u, 0, LOG10_TOLERANCE, 0},
+{ 788, 1081613389u, 1902560314u, 1043130231u, 3557671562u, 1074049228u, 1399281699u, 0, LOG10_TOLERANCE, 0},
+{ 789, 1046346124u, 41779312u, 1081626342u, 831171823u, 3223205745u, 1896438613u, 0, LOG10_TOLERANCE, 0},
+{ 790, 1058131100u, 1393168821u, 1066457405u, 1381616968u, 3222318124u, 1542994528u, 0, LOG10_TOLERANCE, 0},
+{ 791, 1072338141u, 3756584649u, 3222267229u, 1423157432u, 3216285761u, 2951141520u, 0, LOG10_TOLERANCE, 0},
+{ 792, 1106952026u, 1894912556u, 1042426694u, 155024547u, 1076082261u, 3040158092u, 0, LOG10_TOLERANCE, 0},
+{ 793, 1047969864u, 35164295u, 3203391785u, 1037041084u, 3223079311u, 3308745497u, 0, LOG10_TOLERANCE, 0},
+{ 794, 1084777479u, 3957875950u, 3232195211u, 1590756436u, 1074525338u, 1563349431u, 0, LOG10_TOLERANCE, 0},
+{ 795, 1068844322u, 1447585080u, 1071279485u, 1107922438u, 3220261276u, 1394670376u, 0, LOG10_TOLERANCE, 0},
+{ 796, 1046252518u, 981897615u, 1051856116u, 430357614u, 3223211303u, 3595460321u, 0, LOG10_TOLERANCE, 0},
+{ 797, 1080040567u, 395145384u, 3219821938u, 50586510u, 1073799609u, 3433717707u, 0, LOG10_TOLERANCE, 0},
+{ 798, 1069775912u, 750827797u, 1082862669u, 230466783u, 3219794186u, 1579634838u, 0, LOG10_TOLERANCE, 0},
+{ 799, 1086668819u, 1365083575u, 3204848310u, 1700831722u, 1074800003u, 2681601635u, 0, LOG10_TOLERANCE, 0},
+{ 800, 1070606742u, 344241827u, 1071538935u, 2715566077u, 3219333154u, 3754315639u, 0, LOG10_TOLERANCE, 0},
+{ 801, 1100099208u, 4069301823u, 3193208760u, 2949125229u, 1075808120u, 2852921220u, 0, LOG10_TOLERANCE, 0},
+{ 802, 1103231387u, 3585711710u, 1065801594u, 2302229267u, 1075941267u, 685999740u, 0, LOG10_TOLERANCE, 0},
+{ 803, 1046635308u, 709803845u, 1048741487u, 2296910194u, 3223182468u, 2740202815u, 0, LOG10_TOLERANCE, 0},
+{ 804, 1045797131u, 744421179u, 1069302001u, 2659232829u, 3223243060u, 2691168462u, 0, LOG10_TOLERANCE, 0},
+{ 805, 1092835968u, 1799949903u, 3192522886u, 4212149209u, 1075262838u, 2250803774u, 0, LOG10_TOLERANCE, 0},
+{ 806, 1058624854u, 145234164u, 3250614064u, 912384201u, 3222277940u, 674861709u, 0, LOG10_TOLERANCE, 0},
+{ 807, 1093027016u, 2784620507u, 1102812948u, 3531481022u, 1075278812u, 696134292u, 0, LOG10_TOLERANCE, 0},
+{ 808, 1103676015u, 383952592u, 3205659905u, 3633194728u, 1075959495u, 2755860393u, 0, LOG10_TOLERANCE, 0},
+{ 809, 1055992604u, 3792395543u, 1070072378u, 3864816376u, 3222480059u, 283896494u, 0, LOG10_TOLERANCE, 0},
+{ 810, 1057832625u, 2115553675u, 1066288499u, 3538377867u, 3222340506u, 3026544246u, 0, LOG10_TOLERANCE, 0},
+{ 811, 1104591537u, 1230026762u, 1090719723u, 440819880u, 1075994082u, 260264377u, 0, LOG10_TOLERANCE, 0},
+{ 812, 1047111428u, 2991290482u, 1096886719u, 1097971167u, 3223144560u, 2098613411u, 0, LOG10_TOLERANCE, 0},
+{ 813, 1090048600u, 1098035020u, 3230900504u, 1479059095u, 1075054429u, 58159371u, 0, LOG10_TOLERANCE, 0},
+{ 814, 1103573316u, 1719428427u, 3188631907u, 3707377409u, 1075955773u, 3449026054u, 0, LOG10_TOLERANCE, 0},
+{ 815, 1053236165u, 3748932896u, 1084908557u, 1325384361u, 3222682971u, 1034783433u, 0, LOG10_TOLERANCE, 0},
+{ 816, 1084704076u, 3979168763u, 1057455255u, 2454615952u, 1074514634u, 3185048229u, 0, LOG10_TOLERANCE, 0},
+{ 817, 1053106984u, 1449164578u, 1056960316u, 1654931641u, 3222693121u, 3443010324u, 0, LOG10_TOLERANCE, 0},
+{ 818, 1071439010u, 2120487381u, 3226298974u, 2364226633u, 3218481792u, 518227657u, 0, LOG10_TOLERANCE, 0},
+{ 819, 1075071428u, 1074268944u, 1065730444u, 280016852u, 1072074970u, 3577897135u, 0, LOG10_TOLERANCE, 0},
+{ 820, 1052824608u, 3315127889u, 3236295594u, 2900924954u, 3222719074u, 2027145852u, 0, LOG10_TOLERANCE, 0},
+{ 821, 1048942243u, 2246037502u, 1049691002u, 1496066550u, 3223006370u, 2295288876u, 0, LOG10_TOLERANCE, 0},
+{ 822, 1045523211u, 4191285446u, 3217936236u, 2382392789u, 3223267546u, 4168743981u, 0, LOG10_TOLERANCE, 0},
+{ 823, 1092833308u, 640099844u, 1042152237u, 2064279383u, 1075262599u, 2090152878u, 0, LOG10_TOLERANCE, 0},
+{ 824, 1079913438u, 3468560824u, 1093251038u, 310958750u, 1073784634u, 3165731196u, 0, LOG10_TOLERANCE, 0},
+{ 825, 1096788400u, 1413568905u, 1100941106u, 1627289946u, 1075555621u, 3856793281u, 0, LOG10_TOLERANCE, 0},
+{ 826, 1044065902u, 3797143370u, 3195497539u, 3843275034u, 3223348666u, 2069084644u, 0, LOG10_TOLERANCE, 0},
+{ 827, 1104593745u, 2806642640u, 3201943068u, 2515980718u, 1075994166u, 1674516539u, 0, LOG10_TOLERANCE, 0},
+{ 828, 1086877316u, 632580632u, 1078673506u, 3259601317u, 1074815886u, 2637883203u, 0, LOG10_TOLERANCE, 0},
+{ 829, 1053496927u, 3309678799u, 1049337078u, 3056787074u, 3222664884u, 1775866686u, 0, LOG10_TOLERANCE, 0},
+{ 830, 1074011641u, 2341164249u, 1080834967u, 2810890005u, 1071227234u, 2256181049u, 0, LOG10_TOLERANCE, 0},
+{ 831, 1067019674u, 932124675u, 1093915797u, 662682630u, 3220811269u, 995473316u, 0, LOG10_TOLERANCE, 0},
+{ 832, 1101746443u, 1367996113u, 3251723684u, 2974064663u, 1075886177u, 651743782u, 0, LOG10_TOLERANCE, 0},
+{ 833, 1080230731u, 323437999u, 1090499064u, 901457511u, 1073837316u, 2251952976u, 0, LOG10_TOLERANCE, 0},
+{ 834, 1088295228u, 4184941840u, 3196770014u, 2458988443u, 1074918429u, 3423367882u, 0, LOG10_TOLERANCE, 0},
+{ 835, 1087618284u, 2023065054u, 3211994098u, 2734612965u, 1074870511u, 3963545637u, 0, LOG10_TOLERANCE, 0},
+{ 836, 1064074694u, 3679267365u, 3237728785u, 1699558211u, 3221465951u, 335272041u, 0, LOG10_TOLERANCE, 0},
+{ 837, 1088079010u, 1826799031u, 1078709629u, 3986905229u, 1074905197u, 1977171186u, 0, LOG10_TOLERANCE, 0},
+{ 838, 1052843785u, 351061688u, 3194386466u, 4105857588u, 3222717111u, 4126660092u, 0, LOG10_TOLERANCE, 0},
+{ 839, 1054128006u, 1365244058u, 1064457319u, 1452191426u, 3222616495u, 4099715943u, 0, LOG10_TOLERANCE, 0},
+{ 840, 1064122385u, 2463030625u, 3215975031u, 3773488326u, 3221460208u, 2109408512u, 0, LOG10_TOLERANCE, 0},
+{ 841, 1103793023u, 752664055u, 1065110394u, 1835931663u, 1075963459u, 685541286u, 0, LOG10_TOLERANCE, 0},
+{ 842, 1088045088u, 3496172149u, 1089617208u, 109068701u, 1074902974u, 2047127981u, 0, LOG10_TOLERANCE, 0},
+{ 843, 1050651439u, 1636966254u, 1086098766u, 2016598298u, 3222883834u, 875865810u, 0, LOG10_TOLERANCE, 0},
+{ 844, 1050931318u, 3551516956u, 1097969102u, 1317953425u, 3222857590u, 4082108263u, 0, LOG10_TOLERANCE, 0},
+{ 845, 1082348569u, 2977627788u, 1045339018u, 516058480u, 1074156718u, 2272896401u, 0, LOG10_TOLERANCE, 0},
+{ 846, 1089924930u, 3901731263u, 3189566462u, 32272932u, 1075045427u, 671782915u, 0, LOG10_TOLERANCE, 0},
+{ 847, 1077281796u, 1956025297u, 3246628529u, 3840733905u, 1073052628u, 3982968800u, 0, LOG10_TOLERANCE, 0},
+{ 848, 1099818036u, 561057891u, 3198494340u, 4271027193u, 1075785807u, 113950622u, 0, LOG10_TOLERANCE, 0},
+{ 849, 1103446273u, 692989850u, 3242630588u, 2492225971u, 1075950805u, 818111655u, 0, LOG10_TOLERANCE, 0},
+{ 850, 1057995749u, 3439913962u, 1067477011u, 2973333638u, 3222331207u, 1303955608u, 0, LOG10_TOLERANCE, 0},
+{ 851, 1066510341u, 877613377u, 1044917899u, 809672798u, 3220977378u, 1845075850u, 0, LOG10_TOLERANCE, 0},
+{ 852, 1074687806u, 905426932u, 1046417457u, 1086320855u, 1071813024u, 2781073646u, 0, LOG10_TOLERANCE, 0},
+{ 853, 1098862981u, 2645567288u, 1051258339u, 557182478u, 1075712203u, 812148340u, 0, LOG10_TOLERANCE, 0},
+{ 854, 1056574302u, 186287752u, 1061342054u, 4054003419u, 3222432615u, 442298873u, 0, LOG10_TOLERANCE, 0},
+{ 855, 1097266673u, 3506889716u, 3243866036u, 519056371u, 1075597949u, 538556539u, 0, LOG10_TOLERANCE, 0},
+{ 856, 1042654053u, 2171898436u, 3246911982u, 1091500784u, 3223401105u, 2734375231u, 0, LOG10_TOLERANCE, 0},
+{ 857, 1096164025u, 368493885u, 3222871893u, 1419055230u, 1075514869u, 2281844850u, 0, LOG10_TOLERANCE, 0},
+{ 858, 1091950572u, 2010971245u, 3188804530u, 1518695799u, 1075197703u, 4020454285u, 0, LOG10_TOLERANCE, 0},
+{ 859, 1057942861u, 1239207795u, 1040192984u, 2199481342u, 3222334139u, 4169715069u, 0, LOG10_TOLERANCE, 0},
+{ 860, 1063494989u, 4264613432u, 3203460972u, 3558930895u, 3221550594u, 2166450280u, 0, LOG10_TOLERANCE, 0},
+{ 861, 1050299283u, 3772748958u, 3227667376u, 309688336u, 3222905003u, 765066117u, 0, LOG10_TOLERANCE, 0},
+{ 862, 1083259393u, 1077949160u, 1075769893u, 2405271377u, 1074288330u, 3619654319u, 0, LOG10_TOLERANCE, 0},
+{ 863, 1091835152u, 3751608506u, 3232278094u, 930375071u, 1075188133u, 2430026858u, 0, LOG10_TOLERANCE, 0},
+{ 864, 1051133505u, 1518334131u, 3205247482u, 791756713u, 3222841212u, 2201383808u, 0, LOG10_TOLERANCE, 0},
+{ 865, 1047317453u, 2825203170u, 3245054001u, 1822981827u, 3223131399u, 1781924118u, 0, LOG10_TOLERANCE, 0},
+{ 866, 1100016363u, 514474738u, 1089072073u, 3300845441u, 1075799916u, 2273546640u, 0, LOG10_TOLERANCE, 0},
+{ 867, 1068907602u, 247369460u, 3197320093u, 687450958u, 3220241058u, 4195955112u, 0, LOG10_TOLERANCE, 0},
+{ 868, 1104161422u, 2722237629u, 1058272368u, 90602316u, 1075974686u, 2110125726u, 0, LOG10_TOLERANCE, 0},
+{ 869, 1060614787u, 1845900544u, 3231520830u, 3389751458u, 3221981380u, 1451399181u, 0, LOG10_TOLERANCE, 0},
+{ 870, 1100051597u, 737689911u, 3195377751u, 3462616966u, 1075803478u, 929679035u, 0, LOG10_TOLERANCE, 0},
+{ 871, 1076054736u, 3620285831u, 1055501023u, 2708056059u, 1072660433u, 2509134029u, 0, LOG10_TOLERANCE, 0},
+{ 872, 1071981348u, 4073430285u, 1056206159u, 172017902u, 3217493387u, 977702324u, 0, LOG10_TOLERANCE, 0},
+{ 873, 1065385990u, 2799176222u, 1052706894u, 4083892667u, 3221274672u, 4016902187u, 0, LOG10_TOLERANCE, 0},
+{ 874, 1054795909u, 1562351330u, 1069705601u, 1247765260u, 3222570948u, 1552306542u, 0, LOG10_TOLERANCE, 0},
+{ 875, 1085233651u, 51853475u, 3189080201u, 2783553144u, 1074582502u, 856854528u, 0, LOG10_TOLERANCE, 0},
+{ 876, 1071970705u, 3851781549u, 3241598113u, 514064046u, 3217521485u, 3650940125u, 0, LOG10_TOLERANCE, 0},
+{ 877, 1100045965u, 934745487u, 3248182437u, 2798581921u, 1075802916u, 1421123339u, 0, LOG10_TOLERANCE, 0},
+{ 878, 1065598845u, 2948648757u, 3232177250u, 4278702895u, 3221233759u, 858150767u, 0, LOG10_TOLERANCE, 0},
+{ 879, 1072485724u, 4259101461u, 1061606772u, 84229920u, 3215403890u, 4183169085u, 0, LOG10_TOLERANCE, 0},
+{ 880, 1050591911u, 3891230598u, 1095924595u, 3049217547u, 3222887147u, 1338942792u, 0, LOG10_TOLERANCE, 0},
+{ 881, 1077353053u, 3806018919u, 3243191216u, 280177341u, 1073074581u, 3592504291u, 0, LOG10_TOLERANCE, 0},
+{ 882, 1060624530u, 3900344258u, 1063647809u, 4206745890u, 3221979956u, 1165041488u, 0, LOG10_TOLERANCE, 0},
+{ 883, 1080223688u, 2126253040u, 3207248026u, 808507485u, 1073836025u, 4006752466u, 0, LOG10_TOLERANCE, 0},
+{ 884, 1086090317u, 3465685634u, 3230391053u, 3754958214u, 1074718001u, 2173078304u, 0, LOG10_TOLERANCE, 0},
+{ 885, 1102861084u, 461094531u, 1101110393u, 1316091396u, 1075927696u, 2549577293u, 0, LOG10_TOLERANCE, 0},
+{ 886, 1064980314u, 4197635149u, 1091873113u, 1240127141u, 3221326260u, 3476238897u, 0, LOG10_TOLERANCE, 0},
+{ 887, 1074333893u, 118603800u, 1105304898u, 4291425557u, 1071625565u, 3112805610u, 0, LOG10_TOLERANCE, 0},
+{ 888, 1065945517u, 3744663425u, 3212482771u, 953662066u, 3221133966u, 2461525298u, 0, LOG10_TOLERANCE, 0},
+{ 889, 1085171305u, 3564196690u, 3228101916u, 904305212u, 1074575486u, 506637444u, 0, LOG10_TOLERANCE, 0},
+{ 890, 1048333111u, 3566257266u, 3235138829u, 2734275140u, 3223054489u, 2402197835u, 0, LOG10_TOLERANCE, 0},
+{ 891, 1096464829u, 606044282u, 3241318094u, 2446416887u, 1075536321u, 4109023068u, 0, LOG10_TOLERANCE, 0},
+{ 892, 1041627284u, 2336116589u, 3197594053u, 2296925138u, 3223439693u, 2314837685u, 0, LOG10_TOLERANCE, 0},
+{ 893, 1058567659u, 907670625u, 3240769036u, 1827119006u, 3222281931u, 1348167011u, 0, LOG10_TOLERANCE, 0},
+{ 894, 1044467183u, 2818710946u, 3246059905u, 553394170u, 3223334914u, 3999609662u, 0, LOG10_TOLERANCE, 0},
+{ 895, 1042020446u, 4099522736u, 3232742168u, 3718083858u, 3223425951u, 1041051776u, 0, LOG10_TOLERANCE, 0},
+{ 896, 1092371276u, 1059279404u, 1080245336u, 175941677u, 1075227036u, 2513130381u, 0, LOG10_TOLERANCE, 0},
+{ 897, 1105189691u, 1650862428u, 1061816101u, 1723201723u, 1076013298u, 2773793754u, 0, LOG10_TOLERANCE, 0},
+{ 898, 1091529166u, 2462163405u, 3218946201u, 3876535372u, 1075160155u, 262248220u, 0, LOG10_TOLERANCE, 0},
+{ 899, 1084392886u, 495844137u, 1073721460u, 772777946u, 1074462670u, 1099362184u, 0, LOG10_TOLERANCE, 0},
+{ 900, 1052415330u, 458757721u, 3245680321u, 3609892707u, 3222745935u, 1380494767u, 0, LOG10_TOLERANCE, 0},
+{ 901, 1045799308u, 2533012202u, 1079980803u, 3592268374u, 3223242885u, 2684476530u, 0, LOG10_TOLERANCE, 0},
+{ 902, 1055881132u, 4108274117u, 1063045844u, 571992389u, 3222489993u, 3494391159u, 0, LOG10_TOLERANCE, 0},
+{ 903, 1090567271u, 3541110973u, 1096296754u, 3118427427u, 1075088468u, 1540713558u, 0, LOG10_TOLERANCE, 0},
+{ 904, 1046496395u, 1213941007u, 1105433735u, 2172963370u, 3223196412u, 3319524204u, 0, LOG10_TOLERANCE, 0},
+{ 905, 1096853359u, 272190288u, 1095452370u, 4026581530u, 1075561388u, 4126415854u, 0, LOG10_TOLERANCE, 0},
+{ 906, 1095583909u, 2843638672u, 1100510986u, 3190536898u, 1075467816u, 74630356u, 0, LOG10_TOLERANCE, 0},
+{ 907, 1083757094u, 2014317727u, 3247389683u, 2428462015u, 1074371492u, 2456721468u, 0, LOG10_TOLERANCE, 0},
+{ 908, 1093976717u, 688442200u, 1047852515u, 3035186380u, 1075349738u, 1619572370u, 0, LOG10_TOLERANCE, 0},
+{ 909, 1076664212u, 1010095511u, 3221288076u, 405287991u, 1072856003u, 3966425243u, 0, LOG10_TOLERANCE, 0},
+{ 910, 1104810967u, 2983070435u, 1089546472u, 2907918480u, 1076001904u, 2260517137u, 0, LOG10_TOLERANCE, 0},
+{ 911, 1082988121u, 81928569u, 1056007286u, 2740556321u, 1074249782u, 741500836u, 0, LOG10_TOLERANCE, 0},
+{ 912, 1041110867u, 2076689028u, 1081558619u, 3039159031u, 3223461247u, 1110171873u, 0, LOG10_TOLERANCE, 0},
+{ 913, 1047307438u, 1376882094u, 3211003208u, 1296286481u, 3223132005u, 933703128u, 0, LOG10_TOLERANCE, 0},
+{ 914, 1080114314u, 744133164u, 3200943494u, 955832216u, 1073814982u, 1891659777u, 0, LOG10_TOLERANCE, 0},
+{ 915, 1078806678u, 176522478u, 1069999908u, 2891249491u, 1073498191u, 442688633u, 0, LOG10_TOLERANCE, 0},
+{ 916, 1043564602u, 3685851715u, 3187829932u, 2363997529u, 3223367478u, 557452820u, 0, LOG10_TOLERANCE, 0},
+{ 917, 1040244055u, 3974431579u, 1052505165u, 2589067816u, 3223494206u, 3626267569u, 0, LOG10_TOLERANCE, 0},
+{ 918, 1044013141u, 3819109588u, 1048561488u, 969143351u, 3223350377u, 4068494919u, 0, LOG10_TOLERANCE, 0},
+{ 919, 1072639397u, 4246896124u, 1104584799u, 1940097860u, 3213304592u, 3497819754u, 0, LOG10_TOLERANCE, 0},
+{ 920, 1048038468u, 2228686199u, 3220231833u, 777624847u, 3223074190u, 1541831713u, 0, LOG10_TOLERANCE, 0},
+{ 921, 1083983658u, 4189906558u, 3203004203u, 854242364u, 1074401183u, 2633113722u, 0, LOG10_TOLERANCE, 0},
+{ 922, 1103910407u, 4089051094u, 3227282692u, 2693170723u, 1075967176u, 539495337u, 0, LOG10_TOLERANCE, 0},
+{ 923, 1045883607u, 1278581412u, 3239296746u, 1774588717u, 3223236309u, 1250724029u, 0, LOG10_TOLERANCE, 0},
+{ 924, 1074889038u, 1794845306u, 1104879344u, 4135865182u, 1071940589u, 4081733314u, 0, LOG10_TOLERANCE, 0},
+{ 925, 1106449055u, 754938390u, 1061291430u, 2010786993u, 1076063011u, 897095638u, 0, LOG10_TOLERANCE, 0},
+{ 926, 1073581409u, 2034303731u, 3240176537u, 314147356u, 1070665179u, 3094080775u, 0, LOG10_TOLERANCE, 0},
+{ 927, 1083965546u, 567588900u, 3195452230u, 1421366017u, 1074398947u, 1052576918u, 0, LOG10_TOLERANCE, 0},
+{ 928, 1077606107u, 2708717091u, 1071975971u, 1364590470u, 1073144962u, 4187422802u, 0, LOG10_TOLERANCE, 0},
+{ 929, 1104653635u, 3461956134u, 3207820115u, 1605709634u, 1075996406u, 4280267022u, 0, LOG10_TOLERANCE, 0},
+{ 930, 1065302996u, 1497124553u, 1051715442u, 916736957u, 3221287199u, 3332961944u, 0, LOG10_TOLERANCE, 0},
+{ 931, 1058468363u, 834914365u, 1064667143u, 2839166298u, 3222289211u, 514998812u, 0, LOG10_TOLERANCE, 0},
+{ 932, 1057279949u, 2139295776u, 1062816721u, 914592523u, 3222379236u, 1543783481u, 0, LOG10_TOLERANCE, 0},
+{ 933, 1042153283u, 851569132u, 1058503154u, 1399378677u, 3223421968u, 3228314542u, 0, LOG10_TOLERANCE, 0},
+{ 934, 1086054049u, 3897202342u, 3245382590u, 246600375u, 1074713524u, 2112897030u, 0, LOG10_TOLERANCE, 0},
+{ 935, 1077976660u, 3620429520u, 1055627557u, 229305u, 1073240207u, 2697183834u, 0, LOG10_TOLERANCE, 0},
+{ 936, 1083958833u, 3641997865u, 3206673888u, 93720614u, 1074398112u, 3772639712u, 0, LOG10_TOLERANCE, 0},
+{ 937, 1080324787u, 32766320u, 1062084905u, 3668443038u, 1073853886u, 1022794505u, 0, LOG10_TOLERANCE, 0},
+{ 938, 1075815348u, 2039713492u, 3248699388u, 1346210821u, 1072479693u, 1831222428u, 0, LOG10_TOLERANCE, 0},
+{ 939, 1093050016u, 1335820726u, 3191756860u, 1808427032u, 1075280592u, 1598478647u, 0, LOG10_TOLERANCE, 0},
+{ 940, 1061442763u, 650692001u, 1103515670u, 2253348763u, 3221858437u, 3297267625u, 0, LOG10_TOLERANCE, 0},
+{ 941, 1043911539u, 2372623300u, 3210185343u, 3200572848u, 3223353826u, 595580091u, 0, LOG10_TOLERANCE, 0},
+{ 942, 1100796069u, 762317532u, 3194595095u, 3192607437u, 1075849760u, 1939640096u, 0, LOG10_TOLERANCE, 0},
+{ 943, 1062262701u, 217775356u, 3232827087u, 2969367386u, 3221743475u, 3320081474u, 0, LOG10_TOLERANCE, 0},
+{ 944, 1057172551u, 3621353969u, 1077994795u, 3873976266u, 3222388573u, 2581083904u, 0, LOG10_TOLERANCE, 0},
+{ 945, 1091301987u, 268372152u, 3221764390u, 3216978962u, 1075146843u, 300857787u, 0, LOG10_TOLERANCE, 0},
+{ 946, 1098953963u, 142942404u, 1075322987u, 1746449109u, 1075719574u, 3783378795u, 0, LOG10_TOLERANCE, 0},
+{ 947, 1104006296u, 496534875u, 3254522293u, 2532372502u, 1075970042u, 121673326u, 0, LOG10_TOLERANCE, 0},
+{ 948, 1102741893u, 2999955409u, 3222793392u, 1868977643u, 1075923918u, 4041909473u, 0, LOG10_TOLERANCE, 0},
+{ 949, 1074319042u, 3353193428u, 3218469191u, 3326244297u, 1071609002u, 3568808289u, 0, LOG10_TOLERANCE, 0},
+{ 950, 1068218799u, 73646871u, 3231442171u, 3711510104u, 3220456229u, 2608711226u, 0, LOG10_TOLERANCE, 0},
+{ 951, 1090483524u, 218135177u, 3198908856u, 3082199105u, 1075081403u, 4130761195u, 0, LOG10_TOLERANCE, 0},
+{ 952, 1068068480u, 1061628117u, 3248859043u, 86776158u, 3220495553u, 2350869612u, 0, LOG10_TOLERANCE, 0},
+{ 953, 1061001026u, 938869114u, 1087911145u, 2416710759u, 3221930808u, 1742268548u, 0, LOG10_TOLERANCE, 0},
+{ 954, 1095576832u, 2970853959u, 3239543429u, 1887505029u, 1075467395u, 1803897185u, 0, LOG10_TOLERANCE, 0},
+{ 955, 1090245139u, 1337895935u, 1076463812u, 1172733328u, 1075067414u, 2255894230u, 0, LOG10_TOLERANCE, 0},
+{ 956, 1049139928u, 1469010822u, 3229583535u, 551399515u, 3222991480u, 3413880326u, 0, LOG10_TOLERANCE, 0},
+{ 957, 1074118123u, 1849711538u, 1049053713u, 1744276190u, 1071368716u, 319414877u, 0, LOG10_TOLERANCE, 0},
+{ 958, 1094655132u, 2976596113u, 3192137295u, 3033242648u, 1075395796u, 2395640658u, 0, LOG10_TOLERANCE, 0},
+{ 959, 1098698481u, 876810930u, 3197470945u, 2571587447u, 1075702692u, 868384370u, 0, LOG10_TOLERANCE, 0},
+{ 960, 1094287162u, 4007797282u, 3225853845u, 4069319648u, 1075373137u, 4114988772u, 0, LOG10_TOLERANCE, 0},
+{ 961, 1047279982u, 3840538373u, 1043189552u, 3668774580u, 3223133682u, 2793605649u, 0, LOG10_TOLERANCE, 0},
+{ 962, 1070128056u, 200857661u, 3229758439u, 3359367736u, 3219572368u, 3230745583u, 0, LOG10_TOLERANCE, 0},
+{ 963, 1101314221u, 111868139u, 3227902082u, 2366064003u, 1075870447u, 2315533989u, 0, LOG10_TOLERANCE, 0},
+{ 964, 1044195166u, 3510904416u, 3222131653u, 3822770497u, 3223344678u, 3470538208u, 0, LOG10_TOLERANCE, 0},
+{ 965, 1095192067u, 789151814u, 1099269239u, 2958956055u, 1075441815u, 3485815747u, 0, LOG10_TOLERANCE, 0},
+{ 966, 1084679320u, 722163228u, 1105524559u, 1534462169u, 1074510908u, 798696848u, 0, LOG10_TOLERANCE, 0},
+{ 967, 1046586062u, 2207037106u, 3208952465u, 1231254630u, 3223187218u, 4027511879u, 0, LOG10_TOLERANCE, 0},
+{ 968, 1050400412u, 3838689849u, 3198769679u, 1302617170u, 3222898510u, 3604128999u, 0, LOG10_TOLERANCE, 0},
+{ 969, 1085938906u, 2527556476u, 3240373426u, 124352692u, 1074698697u, 3398399993u, 0, LOG10_TOLERANCE, 0},
+{ 970, 1052057157u, 3502371499u, 1043411944u, 4190072016u, 3222772137u, 3563735668u, 0, LOG10_TOLERANCE, 0},
+{ 971, 1064676142u, 1798470077u, 3200116917u, 3421833729u, 3221370452u, 329675828u, 0, LOG10_TOLERANCE, 0},
+{ 972, 1046031308u, 3653237931u, 3204255012u, 3683870669u, 3223225630u, 580955093u, 0, LOG10_TOLERANCE, 0},
+{ 973, 1053588582u, 376530104u, 1073853547u, 565755892u, 3222659153u, 523959117u, 0, LOG10_TOLERANCE, 0},
+{ 974, 1095020203u, 558292492u, 1051772749u, 4267873474u, 1075428224u, 3675331960u, 0, LOG10_TOLERANCE, 0},
+{ 975, 1077289061u, 509637100u, 3212030069u, 215050379u, 1073054916u, 371002261u, 0, LOG10_TOLERANCE, 0},
+{ 976, 1092057101u, 3571665665u, 3188628584u, 757824767u, 1075205875u, 2766467475u, 0, LOG10_TOLERANCE, 0},
+{ 977, 1067315689u, 998858159u, 1063077962u, 436029885u, 3220736810u, 2451000458u, 0, LOG10_TOLERANCE, 0},
+{ 978, 1058463317u, 996300405u, 3193842624u, 80548098u, 3222289593u, 3378863163u, 0, LOG10_TOLERANCE, 0},
+{ 979, 1081365192u, 3876129407u, 3215332180u, 2226970413u, 1074010320u, 899697228u, 0, LOG10_TOLERANCE, 0},
+{ 980, 1090125305u, 200013509u, 3224552716u, 414878724u, 1075059674u, 2493730227u, 0, LOG10_TOLERANCE, 0},
+{ 981, 1083133445u, 309319541u, 1048979765u, 1261662434u, 1074266510u, 2927407487u, 0, LOG10_TOLERANCE, 0},
+{ 982, 1089252639u, 4062255924u, 3224274128u, 4289485681u, 1074991950u, 404883066u, 0, LOG10_TOLERANCE, 0},
+{ 983, 1088652436u, 1611969213u, 1053890378u, 3774617276u, 1074948148u, 2175758408u, 0, LOG10_TOLERANCE, 0},
+{ 984, 1080412763u, 1752164782u, 3239587974u, 612223386u, 1073868364u, 979639357u, 0, LOG10_TOLERANCE, 0},
+{ 985, 1041545782u, 2024044989u, 1074932678u, 3259111307u, 3223443010u, 1613812740u, 0, LOG10_TOLERANCE, 0},
+{ 986, 1053207518u, 2564965629u, 1093571065u, 169360454u, 3222685145u, 1827889021u, 0, LOG10_TOLERANCE, 0},
+{ 987, 1089599090u, 1860101737u, 3191222372u, 1676437468u, 1075017608u, 1612357925u, 0, LOG10_TOLERANCE, 0},
+{ 988, 1059802968u, 588387057u, 3192103292u, 2495288012u, 3222106899u, 1393779995u, 0, LOG10_TOLERANCE, 0},
+{ 989, 1045672057u, 659070058u, 1073095700u, 1393632068u, 3223253593u, 999146267u, 0, LOG10_TOLERANCE, 0},
+{ 990, 1070199615u, 4276187829u, 3217553330u, 1868253275u, 3219533215u, 3230946523u, 0, LOG10_TOLERANCE, 0},
+{ 991, 1075736624u, 2085481575u, 3215994784u, 800910002u, 1072444440u, 3989888399u, 0, LOG10_TOLERANCE, 0},
+{ 992, 1056934836u, 1950570756u, 3200582211u, 941022151u, 3222410797u, 3829821005u, 0, LOG10_TOLERANCE, 0},
+{ 993, 1057530368u, 2075610870u, 3250142022u, 3605152103u, 3222360045u, 3676911858u, 0, LOG10_TOLERANCE, 0},
+{ 994, 1053355602u, 3792931748u, 3204857863u, 804393211u, 3222674329u, 223063370u, 0, LOG10_TOLERANCE, 0},
+{ 995, 1106162722u, 3430071177u, 3226288311u, 3652522729u, 1076050657u, 1188151311u, 0, LOG10_TOLERANCE, 0},
+{ 996, 1053831054u, 236884699u, 3227874605u, 2193269825u, 3222644595u, 2414521413u, 0, LOG10_TOLERANCE, 0},
+{ 997, 1064936593u, 2744231849u, 1046186036u, 771053722u, 3221332108u, 3768168054u, 0, LOG10_TOLERANCE, 0},
+{ 998, 1083996036u, 3000189819u, 1096500901u, 2057239777u, 1074402699u, 1446789637u, 0, LOG10_TOLERANCE, 0},
+{ 999, 1093835581u, 205759408u, 3244643377u, 2702292618u, 1075337269u, 2939813565u, 0, LOG10_TOLERANCE, 0},
+
+
+// AUTOMATICALLY GENERATED VECTORS STOP
+
+};
+
+#endif // CYGONCE_LIBM_LOG10_H multiple inclusion protection
+
+// EOF log10.h
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/log10f.c b/ecos/packages/language/c/libm/current/tests/vectors/log10f.c
new file mode 100644
index 0000000..c1e12c2
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/log10f.c
@@ -0,0 +1,115 @@
+//===========================================================================
+//
+// log10.c
+//
+// Test of log10() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// Declarations for test system:
+//
+// TESTCASE_TYPE=CYG_TEST_MODULE
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include <cyg/infra/testcase.h> // Test infrastructure
+#include <math.h> // Header for this package
+#include <sys/ieeefp.h> // Cyg_libm_ieee_double_shape_type
+#include "vectors/vector_support_float.h"// extra support for math tests
+
+#include "vectors/log10f.h"
+
+// FUNCTIONS
+
+static void
+test( CYG_ADDRWORD data )
+{
+ cyg_ucount32 vec_size;
+ cyg_bool ret;
+
+ vec_size = sizeof(log10f_vec) / sizeof(Cyg_libm_test_float_vec_t);
+ ret = doTestVecFloat( (CYG_ADDRWORD) &log10f, CYG_LIBM_TEST_VEC_FLOAT,
+ CYG_LIBM_TEST_VEC_NONE, CYG_LIBM_TEST_VEC_FLOAT,
+ &log10f_vec[0], vec_size );
+
+ if (ret==true)
+ {
+ CYG_TEST_PASS("log10f() is stable");
+ } // if
+ else
+ {
+ CYG_TEST_FAIL("log10f() failed tests");
+ } // else
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for Math "
+ "library log10f() function");
+} // test()
+
+
+int
+main(int argc, char *argv[])
+{
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for Math library "
+ "log10() function");
+
+ START_TEST( test );
+
+ CYG_TEST_PASS_FINISH("Testing is not applicable to this configuration");
+
+} // main()
+
+
+// EOF log10.c
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/log10f.h b/ecos/packages/language/c/libm/current/tests/vectors/log10f.h
new file mode 100644
index 0000000..dabfaf3
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/log10f.h
@@ -0,0 +1,875 @@
+#ifndef CYGONCE_LIBM_LOG10_H
+#define CYGONCE_LIBM_LOG10_H
+//===========================================================================
+//
+// log10.h
+//
+// Test vectors for testing of log10() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage: #include "vectors/log10.h"
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include "vectors/vector_support_float.h"// extra support for math tests
+
+#define LOG10_TOLERANCE 1.0E-04
+
+static const Cyg_libm_test_float_vec_t log10f_vec[] = {
+
+// AUTOMATICALLY GENERATED VECTORS START
+
+{0, 3214514586u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{1, 3214430700u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{2, 3214346813u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{3, 3214262927u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{4, 3214179041u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{5, 3214095155u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{6, 3214011269u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{7, 3213927383u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{8, 3213843497u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{9, 3213759611u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{10, 3213675725u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{11, 3213591839u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{12, 3213507953u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{13, 3213424067u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{14, 3213340180u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{15, 3213256294u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{16, 3213172408u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{17, 3213088522u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{18, 3213004636u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{19, 3212920750u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{20, 3212836864u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{21, 3212669092u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{22, 3212501320u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{23, 3212333548u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{24, 3212165775u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{25, 3211998003u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{26, 3211830231u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{27, 3211662459u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{28, 3211494687u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{29, 3211326915u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{30, 3211159142u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{31, 3210991370u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{32, 3210823598u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{33, 3210655826u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{34, 3210488054u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{35, 3210320282u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{36, 3210152509u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{37, 3209984737u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{38, 3209816965u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{39, 3209649193u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{40, 3209481421u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{41, 3209313649u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{42, 3209145876u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{43, 3208978104u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{44, 3208810332u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{45, 3208642560u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{46, 3208474788u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{47, 3208307016u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{48, 3208139244u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{49, 3207971471u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{50, 3207803699u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{51, 3207635927u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{52, 3207468155u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{53, 3207300383u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{54, 3207132611u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{55, 3206964838u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{56, 3206797066u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{57, 3206629294u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{58, 3206461522u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{59, 3206293750u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{60, 3206125978u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{61, 3205958205u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{62, 3205790433u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{63, 3205622661u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{64, 3205454889u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{65, 3205287117u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{66, 3205119345u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{67, 3204951572u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{68, 3204783800u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{69, 3204616028u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{70, 3204448256u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{71, 3204112712u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{72, 3203777167u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{73, 3203441623u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{74, 3203106079u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{75, 3202770534u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{76, 3202434990u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{77, 3202099446u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{78, 3201763901u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{79, 3201428357u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{80, 3201092813u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{81, 3200757268u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{82, 3200421724u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{83, 3200086180u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{84, 3199750636u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{85, 3199415091u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{86, 3199079547u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{87, 3198744003u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{88, 3198408458u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{89, 3198072914u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{90, 3197737370u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{91, 3197401825u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{92, 3197066281u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{93, 3196730737u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{94, 3196395192u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{95, 3196059648u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{96, 3195388559u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{97, 3194717471u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{98, 3194046382u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{99, 3193375293u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{100, 3192704205u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{101, 3192033116u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{102, 3191362028u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{103, 3190690939u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{104, 3190019850u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{105, 3189348762u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{106, 3188677673u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{107, 3188006584u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{108, 3186999951u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{109, 3185657774u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{110, 3184315597u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{111, 3182973420u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{112, 3181631242u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{113, 3180289065u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{114, 3178611343u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{115, 3175926989u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{116, 3173242634u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{117, 3170222735u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{118, 3164854026u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{119, 3156465418u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{120, 646742016u, 3245354289u, 3245354289u, 0, LOG10_TOLERANCE, 0},
+{121, 1008981770u, 3221225472u, 3221225472u, 0, LOG10_TOLERANCE, 0},
+{122, 1017370378u, 3218700250u, 3218700250u, 0, LOG10_TOLERANCE, 0},
+{123, 1022739087u, 3217223089u, 3217223089u, 0, LOG10_TOLERANCE, 0},
+{124, 1025758986u, 3216175027u, 3216175027u, 0, LOG10_TOLERANCE, 0},
+{125, 1028443341u, 3215362087u, 3215362087u, 0, LOG10_TOLERANCE, 0},
+{126, 1031127695u, 3214697866u, 3214697866u, 0, LOG10_TOLERANCE, 0},
+{127, 1032805417u, 3214136276u, 3214136276u, 0, LOG10_TOLERANCE, 0},
+{128, 1034147594u, 3213649804u, 3213649804u, 0, LOG10_TOLERANCE, 0},
+{129, 1035489772u, 3213220706u, 3213220706u, 0, LOG10_TOLERANCE, 0},
+{130, 1036831949u, 3212836864u, 3212836864u, 0, LOG10_TOLERANCE, 0},
+{131, 1038174126u, 3212142410u, 3212142410u, 0, LOG10_TOLERANCE, 0},
+{132, 1039516303u, 3211508423u, 3211508423u, 0, LOG10_TOLERANCE, 0},
+{133, 1040522936u, 3210925212u, 3210925212u, 0, LOG10_TOLERANCE, 0},
+{134, 1041194025u, 3210385242u, 3210385242u, 0, LOG10_TOLERANCE, 0},
+{135, 1041865114u, 3209882543u, 3209882543u, 0, LOG10_TOLERANCE, 0},
+{136, 1042536202u, 3209412299u, 3209412299u, 0, LOG10_TOLERANCE, 0},
+{137, 1043207291u, 3208970573u, 3208970573u, 0, LOG10_TOLERANCE, 0},
+{138, 1043878380u, 3208554102u, 3208554102u, 0, LOG10_TOLERANCE, 0},
+{139, 1044549468u, 3208160155u, 3208160155u, 0, LOG10_TOLERANCE, 0},
+{140, 1045220557u, 3207786419u, 3207786419u, 0, LOG10_TOLERANCE, 0},
+{141, 1045891645u, 3207430922u, 3207430922u, 0, LOG10_TOLERANCE, 0},
+{142, 1046562734u, 3207091965u, 3207091965u, 0, LOG10_TOLERANCE, 0},
+{143, 1047233823u, 3206768078u, 3206768078u, 0, LOG10_TOLERANCE, 0},
+{144, 1047904911u, 3206457978u, 3206457978u, 0, LOG10_TOLERANCE, 0},
+{145, 1048576000u, 3206160539u, 3206160539u, 0, LOG10_TOLERANCE, 0},
+{146, 1048911544u, 3205874767u, 3205874767u, 0, LOG10_TOLERANCE, 0},
+{147, 1049247089u, 3205599781u, 3205599781u, 0, LOG10_TOLERANCE, 0},
+{148, 1049582633u, 3205334797u, 3205334797u, 0, LOG10_TOLERANCE, 0},
+{149, 1049918177u, 3205079113u, 3205079113u, 0, LOG10_TOLERANCE, 0},
+{150, 1050253722u, 3204832097u, 3204832097u, 0, LOG10_TOLERANCE, 0},
+{151, 1050589266u, 3204593183u, 3204593183u, 0, LOG10_TOLERANCE, 0},
+{152, 1050924810u, 3204275452u, 3204275452u, 0, LOG10_TOLERANCE, 0},
+{153, 1051260355u, 3203827031u, 3203827031u, 0, LOG10_TOLERANCE, 0},
+{154, 1051595899u, 3203391999u, 3203391999u, 0, LOG10_TOLERANCE, 0},
+{155, 1051931443u, 3202969578u, 3202969578u, 0, LOG10_TOLERANCE, 0},
+{156, 1052266988u, 3202559057u, 3202559057u, 0, LOG10_TOLERANCE, 0},
+{157, 1052602532u, 3202159786u, 3202159786u, 0, LOG10_TOLERANCE, 0},
+{158, 1052938076u, 3201771163u, 3201771163u, 0, LOG10_TOLERANCE, 0},
+{159, 1053273620u, 3201392635u, 3201392635u, 0, LOG10_TOLERANCE, 0},
+{160, 1053609165u, 3201023691u, 3201023691u, 0, LOG10_TOLERANCE, 0},
+{161, 1053944709u, 3200663858u, 3200663858u, 0, LOG10_TOLERANCE, 0},
+{162, 1054280253u, 3200312697u, 3200312697u, 0, LOG10_TOLERANCE, 0},
+{163, 1054615798u, 3199969798u, 3199969798u, 0, LOG10_TOLERANCE, 0},
+{164, 1054951342u, 3199634783u, 3199634783u, 0, LOG10_TOLERANCE, 0},
+{165, 1055286886u, 3199307297u, 3199307297u, 0, LOG10_TOLERANCE, 0},
+{166, 1055622431u, 3198987009u, 3198987009u, 0, LOG10_TOLERANCE, 0},
+{167, 1055957975u, 3198673610u, 3198673610u, 0, LOG10_TOLERANCE, 0},
+{168, 1056293519u, 3198366810u, 3198366810u, 0, LOG10_TOLERANCE, 0},
+{169, 1056629064u, 3198066334u, 3198066334u, 0, LOG10_TOLERANCE, 0},
+{170, 1056964608u, 3197771931u, 3197771931u, 0, LOG10_TOLERANCE, 0},
+{171, 1057132380u, 3197483357u, 3197483357u, 0, LOG10_TOLERANCE, 0},
+{172, 1057300152u, 3197200387u, 3197200387u, 0, LOG10_TOLERANCE, 0},
+{173, 1057467924u, 3196922807u, 3196922807u, 0, LOG10_TOLERANCE, 0},
+{174, 1057635697u, 3196650415u, 3196650415u, 0, LOG10_TOLERANCE, 0},
+{175, 1057803469u, 3196383022u, 3196383022u, 0, LOG10_TOLERANCE, 0},
+{176, 1057971241u, 3196120448u, 3196120448u, 0, LOG10_TOLERANCE, 0},
+{177, 1058139013u, 3195665393u, 3195665393u, 0, LOG10_TOLERANCE, 0},
+{178, 1058306785u, 3195158511u, 3195158511u, 0, LOG10_TOLERANCE, 0},
+{179, 1058474557u, 3194660294u, 3194660294u, 0, LOG10_TOLERANCE, 0},
+{180, 1058642330u, 3194170449u, 3194170449u, 0, LOG10_TOLERANCE, 0},
+{181, 1058810102u, 3193688703u, 3193688703u, 0, LOG10_TOLERANCE, 0},
+{182, 1058977874u, 3193214790u, 3193214790u, 0, LOG10_TOLERANCE, 0},
+{183, 1059145646u, 3192748460u, 3192748460u, 0, LOG10_TOLERANCE, 0},
+{184, 1059313418u, 3192289475u, 3192289475u, 0, LOG10_TOLERANCE, 0},
+{185, 1059481190u, 3191837605u, 3191837605u, 0, LOG10_TOLERANCE, 0},
+{186, 1059648963u, 3191392633u, 3191392633u, 0, LOG10_TOLERANCE, 0},
+{187, 1059816735u, 3190954354u, 3190954354u, 0, LOG10_TOLERANCE, 0},
+{188, 1059984507u, 3190522569u, 3190522569u, 0, LOG10_TOLERANCE, 0},
+{189, 1060152279u, 3190097087u, 3190097087u, 0, LOG10_TOLERANCE, 0},
+{190, 1060320051u, 3189677727u, 3189677727u, 0, LOG10_TOLERANCE, 0},
+{191, 1060487823u, 3189264315u, 3189264315u, 0, LOG10_TOLERANCE, 0},
+{192, 1060655596u, 3188856685u, 3188856685u, 0, LOG10_TOLERANCE, 0},
+{193, 1060823368u, 3188454679u, 3188454679u, 0, LOG10_TOLERANCE, 0},
+{194, 1060991140u, 3188058142u, 3188058142u, 0, LOG10_TOLERANCE, 0},
+{195, 1061158912u, 3187662818u, 3187662818u, 0, LOG10_TOLERANCE, 0},
+{196, 1061326684u, 3186890754u, 3186890754u, 0, LOG10_TOLERANCE, 0},
+{197, 1061494456u, 3186128782u, 3186128782u, 0, LOG10_TOLERANCE, 0},
+{198, 1061662228u, 3185376643u, 3185376643u, 0, LOG10_TOLERANCE, 0},
+{199, 1061830001u, 3184634082u, 3184634082u, 0, LOG10_TOLERANCE, 0},
+{200, 1061997773u, 3183900865u, 3183900865u, 0, LOG10_TOLERANCE, 0},
+{201, 1062165545u, 3183176757u, 3183176757u, 0, LOG10_TOLERANCE, 0},
+{202, 1062333317u, 3182461534u, 3182461534u, 0, LOG10_TOLERANCE, 0},
+{203, 1062501089u, 3181754980u, 3181754980u, 0, LOG10_TOLERANCE, 0},
+{204, 1062668861u, 3181056888u, 3181056888u, 0, LOG10_TOLERANCE, 0},
+{205, 1062836634u, 3180367054u, 3180367054u, 0, LOG10_TOLERANCE, 0},
+{206, 1063004406u, 3179685292u, 3179685292u, 0, LOG10_TOLERANCE, 0},
+{207, 1063172178u, 3178740393u, 3178740393u, 0, LOG10_TOLERANCE, 0},
+{208, 1063339950u, 3177408035u, 3177408035u, 0, LOG10_TOLERANCE, 0},
+{209, 1063507722u, 3176090734u, 3176090734u, 0, LOG10_TOLERANCE, 0},
+{210, 1063675494u, 3174788151u, 3174788151u, 0, LOG10_TOLERANCE, 0},
+{211, 1063843267u, 3173499955u, 3173499955u, 0, LOG10_TOLERANCE, 0},
+{212, 1064011039u, 3172225844u, 3172225844u, 0, LOG10_TOLERANCE, 0},
+{213, 1064178811u, 3170965510u, 3170965510u, 0, LOG10_TOLERANCE, 0},
+{214, 1064346583u, 3168543482u, 3168543482u, 0, LOG10_TOLERANCE, 0},
+{215, 1064514355u, 3166076159u, 3166076159u, 0, LOG10_TOLERANCE, 0},
+{216, 1064682127u, 3163634672u, 3163634672u, 0, LOG10_TOLERANCE, 0},
+{217, 1064849900u, 3159931729u, 3159931729u, 0, LOG10_TOLERANCE, 0},
+{218, 1065017672u, 3155148921u, 3155148921u, 0, LOG10_TOLERANCE, 0},
+{219, 1065185444u, 3146712732u, 3146712732u, 0, LOG10_TOLERANCE, 0},
+{220, 1065353216u, 0u, 0u, 0, LOG10_TOLERANCE, 0},
+{221, 1065437102u, 999135815u, 999135815u, 0, LOG10_TOLERANCE, 0},
+{222, 1065520988u, 1007478707u, 1007478707u, 0, LOG10_TOLERANCE, 0},
+{223, 1065604874u, 1012028204u, 1012028204u, 0, LOG10_TOLERANCE, 0},
+{224, 1065688760u, 1015777656u, 1015777656u, 0, LOG10_TOLERANCE, 0},
+{225, 1065772646u, 1018008867u, 1018008867u, 0, LOG10_TOLERANCE, 0},
+{226, 1065856532u, 1020218930u, 1020218930u, 0, LOG10_TOLERANCE, 0},
+{227, 1065940419u, 1022408268u, 1022408268u, 0, LOG10_TOLERANCE, 0},
+{228, 1066024305u, 1023993694u, 1023993694u, 0, LOG10_TOLERANCE, 0},
+{229, 1066108191u, 1025068170u, 1025068170u, 0, LOG10_TOLERANCE, 0},
+{230, 1066192077u, 1026132835u, 1026132835u, 0, LOG10_TOLERANCE, 0},
+{231, 1066275963u, 1027187863u, 1027187863u, 0, LOG10_TOLERANCE, 0},
+{232, 1066359849u, 1028233432u, 1028233432u, 0, LOG10_TOLERANCE, 0},
+{233, 1066443735u, 1029269702u, 1029269702u, 0, LOG10_TOLERANCE, 0},
+{234, 1066527621u, 1030296848u, 1030296848u, 0, LOG10_TOLERANCE, 0},
+{235, 1066611507u, 1031315018u, 1031315018u, 0, LOG10_TOLERANCE, 0},
+{236, 1066695393u, 1032061580u, 1032061580u, 0, LOG10_TOLERANCE, 0},
+{237, 1066779279u, 1032561925u, 1032561925u, 0, LOG10_TOLERANCE, 0},
+{238, 1066863165u, 1033058013u, 1033058013u, 0, LOG10_TOLERANCE, 0},
+{239, 1066947052u, 1033549920u, 1033549920u, 0, LOG10_TOLERANCE, 0},
+{240, 3234402267u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{241, 3231108068u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{242, 3226013659u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{243, 3217625051u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{244, 0u, 1115684864u, 4286578688u, EDOM, LOG10_TOLERANCE, 0},
+{245, 1070141403u, 1044960167u, 1044960167u, 0, LOG10_TOLERANCE, 0},
+{246, 1078530011u, 1056868974u, 1056868974u, 0, LOG10_TOLERANCE, 0},
+{247, 1083624420u, 1059871112u, 1059871112u, 0, LOG10_TOLERANCE, 0},
+{248, 3253731328u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{249, 3252840038u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{250, 3251948749u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{251, 3251057459u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{252, 3250166170u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{253, 3249274880u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{254, 3248383590u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{255, 3247492301u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{256, 3246601011u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{257, 3245028147u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{258, 3243245568u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{259, 3241462989u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{260, 3239680410u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{261, 3237792973u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{262, 3234227814u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{263, 3230662656u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{264, 3224580915u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{265, 3213675725u, 1115684864u, 2143289344u, EDOM, LOG10_TOLERANCE, 0},
+{266, 1058642330u, 3194170449u, 3194170449u, 0, LOG10_TOLERANCE, 0},
+{267, 1075000115u, 1052324964u, 1052324964u, 0, LOG10_TOLERANCE, 0},
+{268, 1082130432u, 1058676891u, 1058676891u, 0, LOG10_TOLERANCE, 0},
+{269, 1085695590u, 1061257475u, 1061257475u, 0, LOG10_TOLERANCE, 0},
+{270, 1089260749u, 1063159288u, 1063159288u, 0, LOG10_TOLERANCE, 0},
+{271, 1091672474u, 1064666045u, 1064666045u, 0, LOG10_TOLERANCE, 0},
+{272, 1093455053u, 1065633595u, 1065633595u, 0, LOG10_TOLERANCE, 0},
+{273, 1095237632u, 1066166156u, 1066166156u, 0, LOG10_TOLERANCE, 0},
+{274, 1097020211u, 1066630703u, 1066630703u, 0, LOG10_TOLERANCE, 0},
+{275, 1098802790u, 1067042657u, 1067042657u, 0, LOG10_TOLERANCE, 0},
+{276, 1099746509u, 1067412726u, 1067412726u, 0, LOG10_TOLERANCE, 0},
+{277, 1100637798u, 1067748644u, 1067748644u, 0, LOG10_TOLERANCE, 0},
+{278, 1101529088u, 1068056187u, 1068056187u, 0, LOG10_TOLERANCE, 0},
+{279, 1102420378u, 1068339777u, 1068339777u, 0, LOG10_TOLERANCE, 0},
+{280, 1103311667u, 1068602877u, 1068602877u, 0, LOG10_TOLERANCE, 0},
+{281, 1104202957u, 1068848250u, 1068848250u, 0, LOG10_TOLERANCE, 0},
+{282, 1105094246u, 1069078134u, 1069078134u, 0, LOG10_TOLERANCE, 0},
+{283, 1105985536u, 1069294369u, 1069294369u, 0, LOG10_TOLERANCE, 0},
+{284, 1107800421u, 1069803350u, 1069803350u, 0, LOG10_TOLERANCE, 0},
+{285, 1221216477u, 1085522141u, 1085522141u, 0, LOG10_TOLERANCE, 0},
+{286, 1224242132u, 1085709375u, 1085709375u, 0, LOG10_TOLERANCE, 0},
+{287, 1073543469u, 1050114967u, 1050114967u, 0, LOG10_TOLERANCE, 0},
+{288, 1198712763u, 1083794893u, 1083794893u, 0, LOG10_TOLERANCE, 0},
+{289, 1312607135u, 1091461344u, 1091461344u, 0, LOG10_TOLERANCE, 0},
+{290, 1166191415u, 1080542141u, 1080542141u, 0, LOG10_TOLERANCE, 0},
+{291, 1234419246u, 1086498583u, 1086498583u, 0, LOG10_TOLERANCE, 0},
+{292, 1302107128u, 1091060483u, 1091060483u, 0, LOG10_TOLERANCE, 0},
+{293, 1336836355u, 1092372456u, 1092372456u, 0, LOG10_TOLERANCE, 0},
+{294, 1167223673u, 1080749457u, 1080749457u, 0, LOG10_TOLERANCE, 0},
+{295, 1324169524u, 1091880980u, 1091880980u, 0, LOG10_TOLERANCE, 0},
+{296, 1083983848u, 1060131406u, 1060131406u, 0, LOG10_TOLERANCE, 0},
+{297, 1341514497u, 1092528620u, 1092528620u, 0, LOG10_TOLERANCE, 0},
+{298, 1272351391u, 1089363554u, 1089363554u, 0, LOG10_TOLERANCE, 0},
+{299, 1172241344u, 1081515641u, 1081515641u, 0, LOG10_TOLERANCE, 0},
+{300, 1104057898u, 1068809424u, 1068809424u, 0, LOG10_TOLERANCE, 0},
+{301, 1224379831u, 1085717045u, 1085717045u, 0, LOG10_TOLERANCE, 0},
+{302, 1306460502u, 1091221528u, 1091221528u, 0, LOG10_TOLERANCE, 0},
+{303, 1197542187u, 1083725330u, 1083725330u, 0, LOG10_TOLERANCE, 0},
+{304, 1184239996u, 1082724972u, 1082724972u, 0, LOG10_TOLERANCE, 0},
+{305, 1252490238u, 1087875421u, 1087875421u, 0, LOG10_TOLERANCE, 0},
+{306, 1139715822u, 1076589136u, 1076589136u, 0, LOG10_TOLERANCE, 0},
+{307, 1143233714u, 1077172184u, 1077172184u, 0, LOG10_TOLERANCE, 0},
+{308, 1139941253u, 1076615200u, 1076615200u, 0, LOG10_TOLERANCE, 0},
+{309, 1092814839u, 1065421588u, 1065421588u, 0, LOG10_TOLERANCE, 0},
+{310, 1288902137u, 1090565208u, 1090565208u, 0, LOG10_TOLERANCE, 0},
+{311, 1333134799u, 1092213219u, 1092213219u, 0, LOG10_TOLERANCE, 0},
+{312, 1187847971u, 1083009603u, 1083009603u, 0, LOG10_TOLERANCE, 0},
+{313, 1181870825u, 1082528571u, 1082528571u, 0, LOG10_TOLERANCE, 0},
+{314, 1309289088u, 1091319168u, 1091319168u, 0, LOG10_TOLERANCE, 0},
+{315, 1297170011u, 1090876869u, 1090876869u, 0, LOG10_TOLERANCE, 0},
+{316, 1258101754u, 1088251511u, 1088251511u, 0, LOG10_TOLERANCE, 0},
+{317, 1106778573u, 1069476537u, 1069476537u, 0, LOG10_TOLERANCE, 0},
+{318, 1140567947u, 1076685758u, 1076685758u, 0, LOG10_TOLERANCE, 0},
+{319, 1238569473u, 1086823475u, 1086823475u, 0, LOG10_TOLERANCE, 0},
+{320, 1261071232u, 1088522552u, 1088522552u, 0, LOG10_TOLERANCE, 0},
+{321, 1175011025u, 1081894199u, 1081894199u, 0, LOG10_TOLERANCE, 0},
+{322, 1082692850u, 1059149722u, 1059149722u, 0, LOG10_TOLERANCE, 0},
+{323, 1255864908u, 1088119583u, 1088119583u, 0, LOG10_TOLERANCE, 0},
+{324, 1136411063u, 1076156822u, 1076156822u, 0, LOG10_TOLERANCE, 0},
+{325, 1091747974u, 1064723469u, 1064723469u, 0, LOG10_TOLERANCE, 0},
+{326, 1193132132u, 1083401754u, 1083401754u, 0, LOG10_TOLERANCE, 0},
+{327, 1270480664u, 1089233516u, 1089233516u, 0, LOG10_TOLERANCE, 0},
+{328, 1148867223u, 1077938477u, 1077938477u, 0, LOG10_TOLERANCE, 0},
+{329, 1152956913u, 1078647561u, 1078647561u, 0, LOG10_TOLERANCE, 0},
+{330, 1109627625u, 1070484141u, 1070484141u, 0, LOG10_TOLERANCE, 0},
+{331, 1307091856u, 1091240788u, 1091240788u, 0, LOG10_TOLERANCE, 0},
+{332, 1077234132u, 1055360371u, 1055360371u, 0, LOG10_TOLERANCE, 0},
+{333, 1142167709u, 1076982359u, 1076982359u, 0, LOG10_TOLERANCE, 0},
+{334, 1278749186u, 1089855805u, 1089855805u, 0, LOG10_TOLERANCE, 0},
+{335, 1221083131u, 1085512933u, 1085512933u, 0, LOG10_TOLERANCE, 0},
+{336, 1138741813u, 1076472027u, 1076472027u, 0, LOG10_TOLERANCE, 0},
+{337, 1142981585u, 1077129041u, 1077129041u, 0, LOG10_TOLERANCE, 0},
+{338, 1199682314u, 1083854727u, 1083854727u, 0, LOG10_TOLERANCE, 0},
+{339, 1326472382u, 1091970451u, 1091970451u, 0, LOG10_TOLERANCE, 0},
+{340, 1201614701u, 1084041300u, 1084041300u, 0, LOG10_TOLERANCE, 0},
+{341, 1198006188u, 1083753543u, 1083753543u, 0, LOG10_TOLERANCE, 0},
+{342, 1108485380u, 1070073676u, 1070073676u, 0, LOG10_TOLERANCE, 0},
+{343, 1233784744u, 1086436853u, 1086436853u, 0, LOG10_TOLERANCE, 0},
+{344, 1087189715u, 1062115621u, 1062115621u, 0, LOG10_TOLERANCE, 0},
+{345, 1065468637u, 1002600647u, 1002600647u, 0, LOG10_TOLERANCE, 0},
+{346, 1318704920u, 1091683756u, 1091683756u, 0, LOG10_TOLERANCE, 0},
+{347, 1171831868u, 1081463872u, 1081463872u, 0, LOG10_TOLERANCE, 0},
+{348, 1315030230u, 1091542790u, 1091542790u, 0, LOG10_TOLERANCE, 0},
+{349, 1134593658u, 1075866547u, 1075866547u, 0, LOG10_TOLERANCE, 0},
+{350, 1086198791u, 1061557914u, 1061557914u, 0, LOG10_TOLERANCE, 0},
+{351, 1255152035u, 1088073178u, 1088073178u, 0, LOG10_TOLERANCE, 0},
+{352, 1135271264u, 1075980250u, 1075980250u, 0, LOG10_TOLERANCE, 0},
+{353, 1094190727u, 1065862891u, 1065862891u, 0, LOG10_TOLERANCE, 0},
+{354, 1294665325u, 1090785022u, 1090785022u, 0, LOG10_TOLERANCE, 0},
+{355, 1082514416u, 1059003006u, 1059003006u, 0, LOG10_TOLERANCE, 0},
+{356, 1291650374u, 1090647727u, 1090647727u, 0, LOG10_TOLERANCE, 0},
+{357, 1325668223u, 1091929999u, 1091929999u, 0, LOG10_TOLERANCE, 0},
+{358, 1092037607u, 1064939656u, 1064939656u, 0, LOG10_TOLERANCE, 0},
+{359, 1168794760u, 1081025656u, 1081025656u, 0, LOG10_TOLERANCE, 0},
+{360, 1147953120u, 1077834041u, 1077834041u, 0, LOG10_TOLERANCE, 0},
+{361, 1151984049u, 1078494962u, 1078494962u, 0, LOG10_TOLERANCE, 0},
+{362, 1129287043u, 1075071958u, 1075071958u, 0, LOG10_TOLERANCE, 0},
+{363, 1243664530u, 1087207104u, 1087207104u, 0, LOG10_TOLERANCE, 0},
+{364, 1115471979u, 1072069421u, 1072069421u, 0, LOG10_TOLERANCE, 0},
+{365, 1203608440u, 1084200583u, 1084200583u, 0, LOG10_TOLERANCE, 0},
+{366, 1276995896u, 1089712842u, 1089712842u, 0, LOG10_TOLERANCE, 0},
+{367, 1093710327u, 1065714805u, 1065714805u, 0, LOG10_TOLERANCE, 0},
+{368, 1110545760u, 1070783519u, 1070783519u, 0, LOG10_TOLERANCE, 0},
+{369, 1214492942u, 1084998596u, 1084998596u, 0, LOG10_TOLERANCE, 0},
+{370, 1304154705u, 1091143336u, 1091143336u, 0, LOG10_TOLERANCE, 0},
+{371, 1116959962u, 1072631456u, 1072631456u, 0, LOG10_TOLERANCE, 0},
+{372, 1227066979u, 1085959888u, 1085959888u, 0, LOG10_TOLERANCE, 0},
+{373, 1268194719u, 1089044364u, 1089044364u, 0, LOG10_TOLERANCE, 0},
+{374, 1133420220u, 1075651116u, 1075651116u, 0, LOG10_TOLERANCE, 0},
+{375, 1161858787u, 1079985808u, 1079985808u, 0, LOG10_TOLERANCE, 0},
+{376, 1148513315u, 1077898751u, 1077898751u, 0, LOG10_TOLERANCE, 0},
+{377, 1270887389u, 1089263410u, 1089263410u, 0, LOG10_TOLERANCE, 0},
+{378, 1177709533u, 1082251284u, 1082251284u, 0, LOG10_TOLERANCE, 0},
+{379, 1189120494u, 1083091979u, 1083091979u, 0, LOG10_TOLERANCE, 0},
+{380, 1323529208u, 1091861827u, 1091861827u, 0, LOG10_TOLERANCE, 0},
+{381, 1318284740u, 1091664370u, 1091664370u, 0, LOG10_TOLERANCE, 0},
+{382, 1278616251u, 1089845718u, 1089845718u, 0, LOG10_TOLERANCE, 0},
+{383, 1077373465u, 1055530275u, 1055530275u, 0, LOG10_TOLERANCE, 0},
+{384, 1065798296u, 1018686876u, 1018686876u, 0, LOG10_TOLERANCE, 0},
+{385, 1181505796u, 1082507356u, 1082507356u, 0, LOG10_TOLERANCE, 0},
+{386, 1210335378u, 1084701144u, 1084701144u, 0, LOG10_TOLERANCE, 0},
+{387, 1273397670u, 1089428926u, 1089428926u, 0, LOG10_TOLERANCE, 0},
+{388, 1277348132u, 1089743421u, 1089743421u, 0, LOG10_TOLERANCE, 0},
+{389, 1257596246u, 1088223324u, 1088223324u, 0, LOG10_TOLERANCE, 0},
+{390, 1147268859u, 1077751749u, 1077751749u, 0, LOG10_TOLERANCE, 0},
+{391, 1277365077u, 1089744867u, 1089744867u, 0, LOG10_TOLERANCE, 0},
+{392, 1090870906u, 1064026726u, 1064026726u, 0, LOG10_TOLERANCE, 0},
+{393, 1227582289u, 1086002654u, 1086002654u, 0, LOG10_TOLERANCE, 0},
+{394, 1272325814u, 1089361895u, 1089361895u, 0, LOG10_TOLERANCE, 0},
+{395, 1212024623u, 1084833908u, 1084833908u, 0, LOG10_TOLERANCE, 0},
+{396, 1137854355u, 1076358345u, 1076358345u, 0, LOG10_TOLERANCE, 0},
+{397, 1293289410u, 1090725378u, 1090725378u, 0, LOG10_TOLERANCE, 0},
+{398, 1303733188u, 1091127468u, 1091127468u, 0, LOG10_TOLERANCE, 0},
+{399, 1289579346u, 1090586972u, 1090586972u, 0, LOG10_TOLERANCE, 0},
+{400, 1131196082u, 1075311190u, 1075311190u, 0, LOG10_TOLERANCE, 0},
+{401, 1110614030u, 1070804828u, 1070804828u, 0, LOG10_TOLERANCE, 0},
+{402, 1313431700u, 1091490724u, 1091490724u, 0, LOG10_TOLERANCE, 0},
+{403, 1155551824u, 1079001317u, 1079001317u, 0, LOG10_TOLERANCE, 0},
+{404, 1248682573u, 1087561786u, 1087561786u, 0, LOG10_TOLERANCE, 0},
+{405, 1311450615u, 1091416655u, 1091416655u, 0, LOG10_TOLERANCE, 0},
+{406, 1065761827u, 1017722309u, 1017722309u, 0, LOG10_TOLERANCE, 0},
+{407, 1199816046u, 1083868945u, 1083868945u, 0, LOG10_TOLERANCE, 0},
+{408, 1186295367u, 1082897824u, 1082897824u, 0, LOG10_TOLERANCE, 0},
+{409, 1080781593u, 1058066206u, 1058066206u, 0, LOG10_TOLERANCE, 0},
+{410, 1087842942u, 1062461221u, 1062461221u, 0, LOG10_TOLERANCE, 0},
+{411, 1079506760u, 1057437815u, 1057437815u, 0, LOG10_TOLERANCE, 0},
+{412, 1283624229u, 1090173747u, 1090173747u, 0, LOG10_TOLERANCE, 0},
+{413, 1193633657u, 1083444899u, 1083444899u, 0, LOG10_TOLERANCE, 0},
+{414, 1270734970u, 1089252322u, 1089252322u, 0, LOG10_TOLERANCE, 0},
+{415, 1307332419u, 1091247917u, 1091247917u, 0, LOG10_TOLERANCE, 0},
+{416, 1106502045u, 1069414045u, 1069414045u, 0, LOG10_TOLERANCE, 0},
+{417, 1157598381u, 1079238732u, 1079238732u, 0, LOG10_TOLERANCE, 0},
+{418, 1187750865u, 1083003000u, 1083003000u, 0, LOG10_TOLERANCE, 0},
+{419, 1279489061u, 1089909993u, 1089909993u, 0, LOG10_TOLERANCE, 0},
+{420, 1233171235u, 1086372903u, 1086372903u, 0, LOG10_TOLERANCE, 0},
+{421, 1148920078u, 1077944337u, 1077944337u, 0, LOG10_TOLERANCE, 0},
+{422, 1109198803u, 1070335413u, 1070335413u, 0, LOG10_TOLERANCE, 0},
+{423, 1072465835u, 1049135559u, 1049135559u, 0, LOG10_TOLERANCE, 0},
+{424, 1213665826u, 1084946659u, 1084946659u, 0, LOG10_TOLERANCE, 0},
+{425, 1207502108u, 1084448842u, 1084448842u, 0, LOG10_TOLERANCE, 0},
+{426, 1234530539u, 1086508992u, 1086508992u, 0, LOG10_TOLERANCE, 0},
+{427, 1158845204u, 1079488769u, 1079488769u, 0, LOG10_TOLERANCE, 0},
+{428, 1291910469u, 1090656565u, 1090656565u, 0, LOG10_TOLERANCE, 0},
+{429, 1131927531u, 1075395124u, 1075395124u, 0, LOG10_TOLERANCE, 0},
+{430, 1302395743u, 1091073115u, 1091073115u, 0, LOG10_TOLERANCE, 0},
+{431, 1125551064u, 1074487026u, 1074487026u, 0, LOG10_TOLERANCE, 0},
+{432, 1279812724u, 1089932721u, 1089932721u, 0, LOG10_TOLERANCE, 0},
+{433, 1198917460u, 1083806530u, 1083806530u, 0, LOG10_TOLERANCE, 0},
+{434, 1091906532u, 1064842614u, 1064842614u, 0, LOG10_TOLERANCE, 0},
+{435, 1246074130u, 1087394636u, 1087394636u, 0, LOG10_TOLERANCE, 0},
+{436, 1276853215u, 1089700158u, 1089700158u, 0, LOG10_TOLERANCE, 0},
+{437, 1315294792u, 1091550861u, 1091550861u, 0, LOG10_TOLERANCE, 0},
+{438, 1212686469u, 1084881069u, 1084881069u, 0, LOG10_TOLERANCE, 0},
+{439, 1076761780u, 1054769178u, 1054769178u, 0, LOG10_TOLERANCE, 0},
+{440, 1120124467u, 1073663442u, 1073663442u, 0, LOG10_TOLERANCE, 0},
+{441, 1268744779u, 1089093595u, 1089093595u, 0, LOG10_TOLERANCE, 0},
+{442, 1165195428u, 1080413148u, 1080413148u, 0, LOG10_TOLERANCE, 0},
+{443, 1100306391u, 1067627328u, 1067627328u, 0, LOG10_TOLERANCE, 0},
+{444, 1067761000u, 1038118927u, 1038118927u, 0, LOG10_TOLERANCE, 0},
+{445, 1212717473u, 1084883219u, 1084883219u, 0, LOG10_TOLERANCE, 0},
+{446, 1128489361u, 1074961874u, 1074961874u, 0, LOG10_TOLERANCE, 0},
+{447, 1243678660u, 1087208324u, 1087208324u, 0, LOG10_TOLERANCE, 0},
+{448, 1089986803u, 1063492442u, 1063492442u, 0, LOG10_TOLERANCE, 0},
+{449, 1296314700u, 1090847540u, 1090847540u, 0, LOG10_TOLERANCE, 0},
+{450, 1251462432u, 1087785875u, 1087785875u, 0, LOG10_TOLERANCE, 0},
+{451, 1337753254u, 1092407577u, 1092407577u, 0, LOG10_TOLERANCE, 0},
+{452, 1114685890u, 1071892293u, 1071892293u, 0, LOG10_TOLERANCE, 0},
+{453, 1295475718u, 1090816812u, 1090816812u, 0, LOG10_TOLERANCE, 0},
+{454, 1256888357u, 1088182325u, 1088182325u, 0, LOG10_TOLERANCE, 0},
+{455, 1125800069u, 1074532428u, 1074532428u, 0, LOG10_TOLERANCE, 0},
+{456, 1189421739u, 1083110436u, 1083110436u, 0, LOG10_TOLERANCE, 0},
+{457, 1164046161u, 1080276982u, 1080276982u, 0, LOG10_TOLERANCE, 0},
+{458, 1292596266u, 1090692087u, 1090692087u, 0, LOG10_TOLERANCE, 0},
+{459, 1322264731u, 1091821460u, 1091821460u, 0, LOG10_TOLERANCE, 0},
+{460, 1314644642u, 1091530765u, 1091530765u, 0, LOG10_TOLERANCE, 0},
+{461, 1252329525u, 1087861987u, 1087861987u, 0, LOG10_TOLERANCE, 0},
+{462, 1341639087u, 1092532128u, 1092532128u, 0, LOG10_TOLERANCE, 0},
+{463, 1181604787u, 1082513158u, 1082513158u, 0, LOG10_TOLERANCE, 0},
+{464, 1314588083u, 1091528974u, 1091528974u, 0, LOG10_TOLERANCE, 0},
+{465, 1253466032u, 1087952991u, 1087952991u, 0, LOG10_TOLERANCE, 0},
+{466, 1218098153u, 1085277897u, 1085277897u, 0, LOG10_TOLERANCE, 0},
+{467, 1110424755u, 1070745442u, 1070745442u, 0, LOG10_TOLERANCE, 0},
+{468, 1139120919u, 1076518507u, 1076518507u, 0, LOG10_TOLERANCE, 0},
+{469, 1220524226u, 1085473295u, 1085473295u, 0, LOG10_TOLERANCE, 0},
+{470, 1234908052u, 1086543439u, 1086543439u, 0, LOG10_TOLERANCE, 0},
+{471, 1156767533u, 1079146047u, 1079146047u, 0, LOG10_TOLERANCE, 0},
+{472, 1332389915u, 1092191679u, 1092191679u, 0, LOG10_TOLERANCE, 0},
+{473, 1276780469u, 1089693621u, 1089693621u, 0, LOG10_TOLERANCE, 0},
+{474, 1080882239u, 1058113583u, 1058113583u, 0, LOG10_TOLERANCE, 0},
+{475, 1212129651u, 1084841557u, 1084841557u, 0, LOG10_TOLERANCE, 0},
+{476, 1311706596u, 1091426931u, 1091426931u, 0, LOG10_TOLERANCE, 0},
+{477, 1337315179u, 1092391134u, 1092391134u, 0, LOG10_TOLERANCE, 0},
+{478, 1131358407u, 1075330153u, 1075330153u, 0, LOG10_TOLERANCE, 0},
+{479, 1156517523u, 1079117208u, 1079117208u, 0, LOG10_TOLERANCE, 0},
+{480, 1190015561u, 1083145758u, 1083145758u, 0, LOG10_TOLERANCE, 0},
+{481, 1320945382u, 1091775140u, 1091775140u, 0, LOG10_TOLERANCE, 0},
+{482, 1106032152u, 1069305333u, 1069305333u, 0, LOG10_TOLERANCE, 0},
+{483, 1277806832u, 1089781763u, 1089781763u, 0, LOG10_TOLERANCE, 0},
+{484, 1073495847u, 1050073048u, 1050073048u, 0, LOG10_TOLERANCE, 0},
+{485, 1311016004u, 1091398659u, 1091398659u, 0, LOG10_TOLERANCE, 0},
+{486, 1128016396u, 1074893316u, 1074893316u, 0, LOG10_TOLERANCE, 0},
+{487, 1206054701u, 1084364256u, 1084364256u, 0, LOG10_TOLERANCE, 0},
+{488, 1213609983u, 1084943043u, 1084943043u, 0, LOG10_TOLERANCE, 0},
+{489, 1246902946u, 1087451143u, 1087451143u, 0, LOG10_TOLERANCE, 0},
+{490, 1214599180u, 1085005057u, 1085005057u, 0, LOG10_TOLERANCE, 0},
+{491, 1237504879u, 1086750535u, 1086750535u, 0, LOG10_TOLERANCE, 0},
+{492, 1317696241u, 1091635752u, 1091635752u, 0, LOG10_TOLERANCE, 0},
+{493, 1087912276u, 1062496959u, 1062496959u, 0, LOG10_TOLERANCE, 0},
+{494, 1194393976u, 1083506640u, 1083506640u, 0, LOG10_TOLERANCE, 0},
+{495, 1228636133u, 1086084319u, 1086084319u, 0, LOG10_TOLERANCE, 0},
+{496, 1207246237u, 1084434449u, 1084434449u, 0, LOG10_TOLERANCE, 0},
+{497, 1165476654u, 1080444974u, 1080444974u, 0, LOG10_TOLERANCE, 0},
+{498, 1215278023u, 1085045296u, 1085045296u, 0, LOG10_TOLERANCE, 0},
+{499, 1149651309u, 1078066669u, 1078066669u, 0, LOG10_TOLERANCE, 0},
+{500, 1111943722u, 1071196778u, 1071196778u, 0, LOG10_TOLERANCE, 0},
+{501, 1189849849u, 1083136038u, 1083136038u, 0, LOG10_TOLERANCE, 0},
+{502, 1249758327u, 1087622683u, 1087622683u, 0, LOG10_TOLERANCE, 0},
+{503, 1168098747u, 1080908429u, 1080908429u, 0, LOG10_TOLERANCE, 0},
+{504, 1153525376u, 1078731147u, 1078731147u, 0, LOG10_TOLERANCE, 0},
+{505, 1085605579u, 1061202403u, 1061202403u, 0, LOG10_TOLERANCE, 0},
+{506, 1070761636u, 1046300717u, 1046300717u, 0, LOG10_TOLERANCE, 0},
+{507, 1068498242u, 1041078347u, 1041078347u, 0, LOG10_TOLERANCE, 0},
+{508, 1266687209u, 1088893963u, 1088893963u, 0, LOG10_TOLERANCE, 0},
+{509, 1340476127u, 1092498288u, 1092498288u, 0, LOG10_TOLERANCE, 0},
+{510, 1197582051u, 1083727789u, 1083727789u, 0, LOG10_TOLERANCE, 0},
+{511, 1262852441u, 1088657324u, 1088657324u, 0, LOG10_TOLERANCE, 0},
+{512, 1141063391u, 1076762330u, 1076762330u, 0, LOG10_TOLERANCE, 0},
+{513, 1206196143u, 1084372877u, 1084372877u, 0, LOG10_TOLERANCE, 0},
+{514, 1219643887u, 1085407136u, 1085407136u, 0, LOG10_TOLERANCE, 0},
+{515, 1134469222u, 1075844873u, 1075844873u, 0, LOG10_TOLERANCE, 0},
+{516, 1237868497u, 1086776110u, 1086776110u, 0, LOG10_TOLERANCE, 0},
+{517, 1153753924u, 1078763701u, 1078763701u, 0, LOG10_TOLERANCE, 0},
+{518, 1120261759u, 1073702225u, 1073702225u, 0, LOG10_TOLERANCE, 0},
+{519, 1078844712u, 1057088763u, 1057088763u, 0, LOG10_TOLERANCE, 0},
+{520, 1202112338u, 1084083741u, 1084083741u, 0, LOG10_TOLERANCE, 0},
+{521, 1087750238u, 1062413161u, 1062413161u, 0, LOG10_TOLERANCE, 0},
+{522, 1066116543u, 1025174611u, 1025174611u, 0, LOG10_TOLERANCE, 0},
+{523, 1186234578u, 1082893155u, 1082893155u, 0, LOG10_TOLERANCE, 0},
+{524, 1331680743u, 1092170179u, 1092170179u, 0, LOG10_TOLERANCE, 0},
+{525, 1201949077u, 1084070034u, 1084070034u, 0, LOG10_TOLERANCE, 0},
+{526, 1081311485u, 1058312253u, 1058312253u, 0, LOG10_TOLERANCE, 0},
+{527, 1149300655u, 1077992605u, 1077992605u, 0, LOG10_TOLERANCE, 0},
+{528, 1240669941u, 1086952230u, 1086952230u, 0, LOG10_TOLERANCE, 0},
+{529, 1133410485u, 1075649217u, 1075649217u, 0, LOG10_TOLERANCE, 0},
+{530, 1222486939u, 1085605492u, 1085605492u, 0, LOG10_TOLERANCE, 0},
+{531, 1270451568u, 1089231340u, 1089231340u, 0, LOG10_TOLERANCE, 0},
+{532, 1280215674u, 1089960246u, 1089960246u, 0, LOG10_TOLERANCE, 0},
+{533, 1171873518u, 1081469205u, 1081469205u, 0, LOG10_TOLERANCE, 0},
+{534, 1150774452u, 1078285457u, 1078285457u, 0, LOG10_TOLERANCE, 0},
+{535, 1267725176u, 1089000125u, 1089000125u, 0, LOG10_TOLERANCE, 0},
+{536, 1209845200u, 1084658696u, 1084658696u, 0, LOG10_TOLERANCE, 0},
+{537, 1120384488u, 1073736548u, 1073736548u, 0, LOG10_TOLERANCE, 0},
+{538, 1171564509u, 1081429258u, 1081429258u, 0, LOG10_TOLERANCE, 0},
+{539, 1144755661u, 1077412924u, 1077412924u, 0, LOG10_TOLERANCE, 0},
+{540, 1153978024u, 1078795066u, 1078795066u, 0, LOG10_TOLERANCE, 0},
+{541, 1217042030u, 1085177708u, 1085177708u, 0, LOG10_TOLERANCE, 0},
+{542, 1319638151u, 1091724070u, 1091724070u, 0, LOG10_TOLERANCE, 0},
+{543, 1151257041u, 1078371952u, 1078371952u, 0, LOG10_TOLERANCE, 0},
+{544, 1258369714u, 1088270339u, 1088270339u, 0, LOG10_TOLERANCE, 0},
+{545, 1216602683u, 1085132549u, 1085132549u, 0, LOG10_TOLERANCE, 0},
+{546, 1149782091u, 1078093539u, 1078093539u, 0, LOG10_TOLERANCE, 0},
+{547, 1071940738u, 1048633368u, 1048633368u, 0, LOG10_TOLERANCE, 0},
+{548, 1314801987u, 1091535710u, 1091535710u, 0, LOG10_TOLERANCE, 0},
+{549, 1209694157u, 1084645208u, 1084645208u, 0, LOG10_TOLERANCE, 0},
+{550, 1153863660u, 1078779127u, 1078779127u, 0, LOG10_TOLERANCE, 0},
+{551, 1249365132u, 1087600894u, 1087600894u, 0, LOG10_TOLERANCE, 0},
+{552, 1074612637u, 1051727564u, 1051727564u, 0, LOG10_TOLERANCE, 0},
+{553, 1297708818u, 1090894419u, 1090894419u, 0, LOG10_TOLERANCE, 0},
+{554, 1198049074u, 1083756107u, 1083756107u, 0, LOG10_TOLERANCE, 0},
+{555, 1271269588u, 1089290635u, 1089290635u, 0, LOG10_TOLERANCE, 0},
+{556, 1277417964u, 1089749364u, 1089749364u, 0, LOG10_TOLERANCE, 0},
+{557, 1173439580u, 1081659193u, 1081659193u, 0, LOG10_TOLERANCE, 0},
+{558, 1337400405u, 1092394380u, 1092394380u, 0, LOG10_TOLERANCE, 0},
+{559, 1252864992u, 1087905998u, 1087905998u, 0, LOG10_TOLERANCE, 0},
+{560, 1250249095u, 1087667413u, 1087667413u, 0, LOG10_TOLERANCE, 0},
+{561, 1136927585u, 1076231530u, 1076231530u, 0, LOG10_TOLERANCE, 0},
+{562, 1215968622u, 1085084485u, 1085084485u, 0, LOG10_TOLERANCE, 0},
+{563, 1215264594u, 1085044517u, 1085044517u, 0, LOG10_TOLERANCE, 0},
+{564, 1252237719u, 1087854223u, 1087854223u, 0, LOG10_TOLERANCE, 0},
+{565, 1180411946u, 1082440653u, 1082440653u, 0, LOG10_TOLERANCE, 0},
+{566, 1248677856u, 1087561510u, 1087561510u, 0, LOG10_TOLERANCE, 0},
+{567, 1099710167u, 1067398349u, 1067398349u, 0, LOG10_TOLERANCE, 0},
+{568, 1157186482u, 1079193372u, 1079193372u, 0, LOG10_TOLERANCE, 0},
+{569, 1282110851u, 1090079593u, 1090079593u, 0, LOG10_TOLERANCE, 0},
+{570, 1329524465u, 1092097778u, 1092097778u, 0, LOG10_TOLERANCE, 0},
+{571, 1144643646u, 1077396251u, 1077396251u, 0, LOG10_TOLERANCE, 0},
+{572, 1123357102u, 1074112007u, 1074112007u, 0, LOG10_TOLERANCE, 0},
+{573, 1106837025u, 1069489610u, 1069489610u, 0, LOG10_TOLERANCE, 0},
+{574, 1253017688u, 1087918168u, 1087918168u, 0, LOG10_TOLERANCE, 0},
+{575, 1108543194u, 1070095602u, 1070095602u, 0, LOG10_TOLERANCE, 0},
+{576, 1160162706u, 1079722894u, 1079722894u, 0, LOG10_TOLERANCE, 0},
+{577, 1158231377u, 1079368484u, 1079368484u, 0, LOG10_TOLERANCE, 0},
+{578, 1266928623u, 1088919782u, 1088919782u, 0, LOG10_TOLERANCE, 0},
+{579, 1290596379u, 1090617821u, 1090617821u, 0, LOG10_TOLERANCE, 0},
+{580, 1197091103u, 1083697039u, 1083697039u, 0, LOG10_TOLERANCE, 0},
+{581, 1152416724u, 1078564412u, 1078564412u, 0, LOG10_TOLERANCE, 0},
+{582, 1218239308u, 1085290489u, 1085290489u, 0, LOG10_TOLERANCE, 0},
+{583, 1115826919u, 1072177121u, 1072177121u, 0, LOG10_TOLERANCE, 0},
+{584, 1142780964u, 1077093965u, 1077093965u, 0, LOG10_TOLERANCE, 0},
+{585, 1074622936u, 1051743763u, 1051743763u, 0, LOG10_TOLERANCE, 0},
+{586, 1278946388u, 1089870566u, 1089870566u, 0, LOG10_TOLERANCE, 0},
+{587, 1098530298u, 1066982623u, 1066982623u, 0, LOG10_TOLERANCE, 0},
+{588, 1085242388u, 1060975860u, 1060975860u, 0, LOG10_TOLERANCE, 0},
+{589, 1297190916u, 1090877562u, 1090877562u, 0, LOG10_TOLERANCE, 0},
+{590, 1277649137u, 1089768763u, 1089768763u, 0, LOG10_TOLERANCE, 0},
+{591, 1096548368u, 1066513387u, 1066513387u, 0, LOG10_TOLERANCE, 0},
+{592, 1096155623u, 1066412772u, 1066412772u, 0, LOG10_TOLERANCE, 0},
+{593, 1091245957u, 1064332856u, 1064332856u, 0, LOG10_TOLERANCE, 0},
+{594, 1169713169u, 1081169627u, 1081169627u, 0, LOG10_TOLERANCE, 0},
+{595, 1227264862u, 1085976549u, 1085976549u, 0, LOG10_TOLERANCE, 0},
+{596, 1198151302u, 1083762190u, 1083762190u, 0, LOG10_TOLERANCE, 0},
+{597, 1249433635u, 1087604728u, 1087604728u, 0, LOG10_TOLERANCE, 0},
+{598, 1169549089u, 1081144726u, 1081144726u, 0, LOG10_TOLERANCE, 0},
+{599, 1200051436u, 1083893444u, 1083893444u, 0, LOG10_TOLERANCE, 0},
+{600, 1306520561u, 1091223396u, 1091223396u, 0, LOG10_TOLERANCE, 0},
+{601, 1314936356u, 1091539891u, 1091539891u, 0, LOG10_TOLERANCE, 0},
+{602, 1327568571u, 1092020376u, 1092020376u, 0, LOG10_TOLERANCE, 0},
+{603, 1245744060u, 1087371119u, 1087371119u, 0, LOG10_TOLERANCE, 0},
+{604, 1201521756u, 1084033149u, 1084033149u, 0, LOG10_TOLERANCE, 0},
+{605, 1262863321u, 1088658089u, 1088658089u, 0, LOG10_TOLERANCE, 0},
+{606, 1240170043u, 1086923196u, 1086923196u, 0, LOG10_TOLERANCE, 0},
+{607, 1338680611u, 1092440541u, 1092440541u, 0, LOG10_TOLERANCE, 0},
+{608, 1112891928u, 1071452574u, 1071452574u, 0, LOG10_TOLERANCE, 0},
+{609, 1190105283u, 1083150978u, 1083150978u, 0, LOG10_TOLERANCE, 0},
+{610, 1263047389u, 1088670933u, 1088670933u, 0, LOG10_TOLERANCE, 0},
+{611, 1066141167u, 1025487856u, 1025487856u, 0, LOG10_TOLERANCE, 0},
+{612, 1120888322u, 1073807991u, 1073807991u, 0, LOG10_TOLERANCE, 0},
+{613, 1315217243u, 1091548510u, 1091548510u, 0, LOG10_TOLERANCE, 0},
+{614, 1168623062u, 1080997431u, 1080997431u, 0, LOG10_TOLERANCE, 0},
+{615, 1311186097u, 1091405787u, 1091405787u, 0, LOG10_TOLERANCE, 0},
+{616, 1180032668u, 1082416335u, 1082416335u, 0, LOG10_TOLERANCE, 0},
+{617, 1134528351u, 1075855204u, 1075855204u, 0, LOG10_TOLERANCE, 0},
+{618, 1266869190u, 1088913493u, 1088913493u, 0, LOG10_TOLERANCE, 0},
+{619, 1133689539u, 1075702861u, 1075702861u, 0, LOG10_TOLERANCE, 0},
+{620, 1308204830u, 1091272874u, 1091272874u, 0, LOG10_TOLERANCE, 0},
+{621, 1137634874u, 1076329100u, 1076329100u, 0, LOG10_TOLERANCE, 0},
+{622, 1268019014u, 1089028060u, 1089028060u, 0, LOG10_TOLERANCE, 0},
+{623, 1066157309u, 1025692741u, 1025692741u, 0, LOG10_TOLERANCE, 0},
+{624, 1288870027u, 1090564150u, 1090564150u, 0, LOG10_TOLERANCE, 0},
+{625, 1125177888u, 1074416791u, 1074416791u, 0, LOG10_TOLERANCE, 0},
+{626, 1170245333u, 1081248122u, 1081248122u, 0, LOG10_TOLERANCE, 0},
+{627, 1219052056u, 1085359794u, 1085359794u, 0, LOG10_TOLERANCE, 0},
+{628, 1171499971u, 1081420803u, 1081420803u, 0, LOG10_TOLERANCE, 0},
+{629, 1224634973u, 1085731089u, 1085731089u, 0, LOG10_TOLERANCE, 0},
+{630, 1299683827u, 1090953521u, 1090953521u, 0, LOG10_TOLERANCE, 0},
+{631, 1109740374u, 1070522258u, 1070522258u, 0, LOG10_TOLERANCE, 0},
+{632, 1229268598u, 1086130031u, 1086130031u, 0, LOG10_TOLERANCE, 0},
+{633, 1086717248u, 1061855026u, 1061855026u, 0, LOG10_TOLERANCE, 0},
+{634, 1287400959u, 1090506756u, 1090506756u, 0, LOG10_TOLERANCE, 0},
+{635, 1317471958u, 1091624354u, 1091624354u, 0, LOG10_TOLERANCE, 0},
+{636, 1242829722u, 1087131943u, 1087131943u, 0, LOG10_TOLERANCE, 0},
+{637, 1200927971u, 1083979282u, 1083979282u, 0, LOG10_TOLERANCE, 0},
+{638, 1179374444u, 1082372526u, 1082372526u, 0, LOG10_TOLERANCE, 0},
+{639, 1246019790u, 1087390806u, 1087390806u, 0, LOG10_TOLERANCE, 0},
+{640, 1136052740u, 1076103135u, 1076103135u, 0, LOG10_TOLERANCE, 0},
+{641, 1069009211u, 1042341759u, 1042341759u, 0, LOG10_TOLERANCE, 0},
+{642, 1169128344u, 1081079274u, 1081079274u, 0, LOG10_TOLERANCE, 0},
+{643, 1087942795u, 1062512634u, 1062512634u, 0, LOG10_TOLERANCE, 0},
+{644, 1278882065u, 1089865777u, 1089865777u, 0, LOG10_TOLERANCE, 0},
+{645, 1147842784u, 1077821021u, 1077821021u, 0, LOG10_TOLERANCE, 0},
+{646, 1171351660u, 1081401223u, 1081401223u, 0, LOG10_TOLERANCE, 0},
+{647, 1136072069u, 1076106072u, 1076106072u, 0, LOG10_TOLERANCE, 0},
+{648, 1233771772u, 1086435546u, 1086435546u, 0, LOG10_TOLERANCE, 0},
+{649, 1241288445u, 1086986916u, 1086986916u, 0, LOG10_TOLERANCE, 0},
+{650, 1319200415u, 1091705604u, 1091705604u, 0, LOG10_TOLERANCE, 0},
+{651, 1279324488u, 1089898216u, 1089898216u, 0, LOG10_TOLERANCE, 0},
+{652, 1070311776u, 1045334590u, 1045334590u, 0, LOG10_TOLERANCE, 0},
+{653, 1307648109u, 1091257107u, 1091257107u, 0, LOG10_TOLERANCE, 0},
+{654, 1246947517u, 1087454084u, 1087454084u, 0, LOG10_TOLERANCE, 0},
+{655, 1249239929u, 1087593845u, 1087593845u, 0, LOG10_TOLERANCE, 0},
+{656, 1286277377u, 1090419751u, 1090419751u, 0, LOG10_TOLERANCE, 0},
+{657, 1173247961u, 1081636983u, 1081636983u, 0, LOG10_TOLERANCE, 0},
+{658, 1101051030u, 1067894465u, 1067894465u, 0, LOG10_TOLERANCE, 0},
+{659, 1082862511u, 1059286536u, 1059286536u, 0, LOG10_TOLERANCE, 0},
+{660, 1341821683u, 1092537219u, 1092537219u, 0, LOG10_TOLERANCE, 0},
+{661, 1079061705u, 1057205020u, 1057205020u, 0, LOG10_TOLERANCE, 0},
+{662, 1105291533u, 1069127115u, 1069127115u, 0, LOG10_TOLERANCE, 0},
+{663, 1223207358u, 1085649573u, 1085649573u, 0, LOG10_TOLERANCE, 0},
+{664, 1156767169u, 1079146005u, 1079146005u, 0, LOG10_TOLERANCE, 0},
+{665, 1104284039u, 1068869773u, 1068869773u, 0, LOG10_TOLERANCE, 0},
+{666, 1187729253u, 1083001524u, 1083001524u, 0, LOG10_TOLERANCE, 0},
+{667, 1093697541u, 1065710780u, 1065710780u, 0, LOG10_TOLERANCE, 0},
+{668, 1119207537u, 1073393265u, 1073393265u, 0, LOG10_TOLERANCE, 0},
+{669, 1094115255u, 1065840021u, 1065840021u, 0, LOG10_TOLERANCE, 0},
+{670, 1276603160u, 1089677491u, 1089677491u, 0, LOG10_TOLERANCE, 0},
+{671, 1206125125u, 1084368558u, 1084368558u, 0, LOG10_TOLERANCE, 0},
+{672, 1098662266u, 1067011821u, 1067011821u, 0, LOG10_TOLERANCE, 0},
+{673, 1328600211u, 1092062834u, 1092062834u, 0, LOG10_TOLERANCE, 0},
+{674, 1317062968u, 1091602805u, 1091602805u, 0, LOG10_TOLERANCE, 0},
+{675, 1296068481u, 1090838735u, 1090838735u, 0, LOG10_TOLERANCE, 0},
+{676, 1287620154u, 1090520921u, 1090520921u, 0, LOG10_TOLERANCE, 0},
+{677, 1245702957u, 1087368147u, 1087368147u, 0, LOG10_TOLERANCE, 0},
+{678, 1268279353u, 1089052114u, 1089052114u, 0, LOG10_TOLERANCE, 0},
+{679, 1135988313u, 1076093312u, 1076093312u, 0, LOG10_TOLERANCE, 0},
+{680, 1163727179u, 1080237312u, 1080237312u, 0, LOG10_TOLERANCE, 0},
+{681, 1198307901u, 1083771430u, 1083771430u, 0, LOG10_TOLERANCE, 0},
+{682, 1288901567u, 1090565189u, 1090565189u, 0, LOG10_TOLERANCE, 0},
+{683, 1113104661u, 1071507577u, 1071507577u, 0, LOG10_TOLERANCE, 0},
+{684, 1136714348u, 1076201059u, 1076201059u, 0, LOG10_TOLERANCE, 0},
+{685, 1339423444u, 1092465326u, 1092465326u, 0, LOG10_TOLERANCE, 0},
+{686, 1162027071u, 1080009939u, 1080009939u, 0, LOG10_TOLERANCE, 0},
+{687, 1124131769u, 1074204110u, 1074204110u, 0, LOG10_TOLERANCE, 0},
+{688, 1177157787u, 1082207261u, 1082207261u, 0, LOG10_TOLERANCE, 0},
+{689, 1284600904u, 1090272197u, 1090272197u, 0, LOG10_TOLERANCE, 0},
+{690, 1309658335u, 1091337369u, 1091337369u, 0, LOG10_TOLERANCE, 0},
+{691, 1226494979u, 1085909940u, 1085909940u, 0, LOG10_TOLERANCE, 0},
+{692, 1228023365u, 1086037729u, 1086037729u, 0, LOG10_TOLERANCE, 0},
+{693, 1313215353u, 1091483197u, 1091483197u, 0, LOG10_TOLERANCE, 0},
+{694, 1320539530u, 1091759888u, 1091759888u, 0, LOG10_TOLERANCE, 0},
+{695, 1204196034u, 1084242664u, 1084242664u, 0, LOG10_TOLERANCE, 0},
+{696, 1312393763u, 1091453422u, 1091453422u, 0, LOG10_TOLERANCE, 0},
+{697, 1161439847u, 1079924310u, 1079924310u, 0, LOG10_TOLERANCE, 0},
+{698, 1084378658u, 1060406999u, 1060406999u, 0, LOG10_TOLERANCE, 0},
+{699, 1226473697u, 1085908028u, 1085908028u, 0, LOG10_TOLERANCE, 0},
+{700, 1123114742u, 1074084310u, 1074084310u, 0, LOG10_TOLERANCE, 0},
+{701, 1258114435u, 1088252207u, 1088252207u, 0, LOG10_TOLERANCE, 0},
+{702, 1320557197u, 1091760563u, 1091760563u, 0, LOG10_TOLERANCE, 0},
+{703, 1178825761u, 1082334325u, 1082334325u, 0, LOG10_TOLERANCE, 0},
+{704, 1075900364u, 1053625108u, 1053625108u, 0, LOG10_TOLERANCE, 0},
+{705, 1297778779u, 1090896649u, 1090896649u, 0, LOG10_TOLERANCE, 0},
+{706, 1125653081u, 1074505764u, 1074505764u, 0, LOG10_TOLERANCE, 0},
+{707, 1190169064u, 1083154670u, 1083154670u, 0, LOG10_TOLERANCE, 0},
+{708, 1184753508u, 1082771327u, 1082771327u, 0, LOG10_TOLERANCE, 0},
+{709, 1188439315u, 1083048812u, 1083048812u, 0, LOG10_TOLERANCE, 0},
+{710, 1314151417u, 1091514905u, 1091514905u, 0, LOG10_TOLERANCE, 0},
+{711, 1188167943u, 1083031028u, 1083031028u, 0, LOG10_TOLERANCE, 0},
+{712, 1142595790u, 1077060980u, 1077060980u, 0, LOG10_TOLERANCE, 0},
+{713, 1203206679u, 1084170649u, 1084170649u, 0, LOG10_TOLERANCE, 0},
+{714, 1102061604u, 1068228263u, 1068228263u, 0, LOG10_TOLERANCE, 0},
+{715, 1282351521u, 1090093688u, 1090093688u, 0, LOG10_TOLERANCE, 0},
+{716, 1311377417u, 1091413674u, 1091413674u, 0, LOG10_TOLERANCE, 0},
+{717, 1081309682u, 1058311429u, 1058311429u, 0, LOG10_TOLERANCE, 0},
+{718, 1274711085u, 1089504858u, 1089504858u, 0, LOG10_TOLERANCE, 0},
+{719, 1261940623u, 1088590825u, 1088590825u, 0, LOG10_TOLERANCE, 0},
+{720, 1253119433u, 1087926188u, 1087926188u, 0, LOG10_TOLERANCE, 0},
+{721, 1219411812u, 1085388863u, 1085388863u, 0, LOG10_TOLERANCE, 0},
+{722, 1149882378u, 1078113879u, 1078113879u, 0, LOG10_TOLERANCE, 0},
+{723, 1218488455u, 1085312301u, 1085312301u, 0, LOG10_TOLERANCE, 0},
+{724, 1283938137u, 1090206564u, 1090206564u, 0, LOG10_TOLERANCE, 0},
+{725, 1317098613u, 1091604724u, 1091604724u, 0, LOG10_TOLERANCE, 0},
+{726, 1284220009u, 1090235058u, 1090235058u, 0, LOG10_TOLERANCE, 0},
+{727, 1092245127u, 1065090701u, 1065090701u, 0, LOG10_TOLERANCE, 0},
+{728, 1165676440u, 1080467250u, 1080467250u, 0, LOG10_TOLERANCE, 0},
+{729, 1284174954u, 1090230563u, 1090230563u, 0, LOG10_TOLERANCE, 0},
+{730, 1102631663u, 1068403887u, 1068403887u, 0, LOG10_TOLERANCE, 0},
+{731, 1125596740u, 1074495439u, 1074495439u, 0, LOG10_TOLERANCE, 0},
+{732, 1172529774u, 1081551244u, 1081551244u, 0, LOG10_TOLERANCE, 0},
+{733, 1306695905u, 1091228805u, 1091228805u, 0, LOG10_TOLERANCE, 0},
+{734, 1078478376u, 1056811758u, 1056811758u, 0, LOG10_TOLERANCE, 0},
+{735, 1165177679u, 1080411121u, 1080411121u, 0, LOG10_TOLERANCE, 0},
+{736, 1255525865u, 1088097808u, 1088097808u, 0, LOG10_TOLERANCE, 0},
+{737, 1222777442u, 1085623525u, 1085623525u, 0, LOG10_TOLERANCE, 0},
+{738, 1325324763u, 1091913621u, 1091913621u, 0, LOG10_TOLERANCE, 0},
+{739, 1216040565u, 1085088472u, 1085088472u, 0, LOG10_TOLERANCE, 0},
+{740, 1158950321u, 1079508594u, 1079508594u, 0, LOG10_TOLERANCE, 0},
+{741, 1208345407u, 1084514979u, 1084514979u, 0, LOG10_TOLERANCE, 0},
+{742, 1258634105u, 1088298344u, 1088298344u, 0, LOG10_TOLERANCE, 0},
+{743, 1248478509u, 1087549760u, 1087549760u, 0, LOG10_TOLERANCE, 0},
+{744, 1153863988u, 1078779173u, 1078779173u, 0, LOG10_TOLERANCE, 0},
+{745, 1235620969u, 1086605139u, 1086605139u, 0, LOG10_TOLERANCE, 0},
+{746, 1097120930u, 1066655263u, 1066655263u, 0, LOG10_TOLERANCE, 0},
+{747, 1322294974u, 1091822468u, 1091822468u, 0, LOG10_TOLERANCE, 0},
+{748, 1147712200u, 1077805489u, 1077805489u, 0, LOG10_TOLERANCE, 0},
+{749, 1124721745u, 1074327092u, 1074327092u, 0, LOG10_TOLERANCE, 0},
+{750, 1114260656u, 1071792761u, 1071792761u, 0, LOG10_TOLERANCE, 0},
+{751, 1155676504u, 1079016701u, 1079016701u, 0, LOG10_TOLERANCE, 0},
+{752, 1315090496u, 1091544641u, 1091544641u, 0, LOG10_TOLERANCE, 0},
+{753, 1082919539u, 1059331952u, 1059331952u, 0, LOG10_TOLERANCE, 0},
+{754, 1335399673u, 1092311322u, 1092311322u, 0, LOG10_TOLERANCE, 0},
+{755, 1072458508u, 1049128670u, 1049128670u, 0, LOG10_TOLERANCE, 0},
+{756, 1155531601u, 1078998810u, 1078998810u, 0, LOG10_TOLERANCE, 0},
+{757, 1104656093u, 1068966936u, 1068966936u, 0, LOG10_TOLERANCE, 0},
+{758, 1321036318u, 1091778488u, 1091778488u, 0, LOG10_TOLERANCE, 0},
+{759, 1172239631u, 1081515428u, 1081515428u, 0, LOG10_TOLERANCE, 0},
+{760, 1107620519u, 1069728893u, 1069728893u, 0, LOG10_TOLERANCE, 0},
+{761, 1155477903u, 1078992135u, 1078992135u, 0, LOG10_TOLERANCE, 0},
+{762, 1126405528u, 1074638322u, 1074638322u, 0, LOG10_TOLERANCE, 0},
+{763, 1090330020u, 1063644779u, 1063644779u, 0, LOG10_TOLERANCE, 0},
+{764, 1228207362u, 1086051971u, 1086051971u, 0, LOG10_TOLERANCE, 0},
+{765, 1290175785u, 1090605316u, 1090605316u, 0, LOG10_TOLERANCE, 0},
+{766, 1214223128u, 1084981977u, 1084981977u, 0, LOG10_TOLERANCE, 0},
+{767, 1275438936u, 1089563831u, 1089563831u, 0, LOG10_TOLERANCE, 0},
+{768, 1315857601u, 1091567568u, 1091567568u, 0, LOG10_TOLERANCE, 0},
+{769, 1305742382u, 1091198584u, 1091198584u, 0, LOG10_TOLERANCE, 0},
+{770, 1078359574u, 1056679255u, 1056679255u, 0, LOG10_TOLERANCE, 0},
+{771, 1207675424u, 1084458464u, 1084458464u, 0, LOG10_TOLERANCE, 0},
+{772, 1248421894u, 1087546395u, 1087546395u, 0, LOG10_TOLERANCE, 0},
+{773, 1205768346u, 1084346548u, 1084346548u, 0, LOG10_TOLERANCE, 0},
+{774, 1076752219u, 1054756961u, 1054756961u, 0, LOG10_TOLERANCE, 0},
+{775, 1241048294u, 1086973604u, 1086973604u, 0, LOG10_TOLERANCE, 0},
+{776, 1273395082u, 1089428770u, 1089428770u, 0, LOG10_TOLERANCE, 0},
+{777, 1238104535u, 1086792336u, 1086792336u, 0, LOG10_TOLERANCE, 0},
+{778, 1294321000u, 1090770812u, 1090770812u, 0, LOG10_TOLERANCE, 0},
+{779, 1245343769u, 1087341758u, 1087341758u, 0, LOG10_TOLERANCE, 0},
+{780, 1161241793u, 1079894497u, 1079894497u, 0, LOG10_TOLERANCE, 0},
+{781, 1171318485u, 1081396814u, 1081396814u, 0, LOG10_TOLERANCE, 0},
+{782, 1243968857u, 1087233031u, 1087233031u, 0, LOG10_TOLERANCE, 0},
+{783, 1102119721u, 1068246561u, 1068246561u, 0, LOG10_TOLERANCE, 0},
+{784, 1220264047u, 1085454237u, 1085454237u, 0, LOG10_TOLERANCE, 0},
+{785, 1134728775u, 1075889794u, 1075889794u, 0, LOG10_TOLERANCE, 0},
+{786, 1204809672u, 1084284629u, 1084284629u, 0, LOG10_TOLERANCE, 0},
+{787, 1148874793u, 1077939317u, 1077939317u, 0, LOG10_TOLERANCE, 0},
+{788, 1197828352u, 1083742833u, 1083742833u, 0, LOG10_TOLERANCE, 0},
+{789, 1193026723u, 1083392420u, 1083392420u, 0, LOG10_TOLERANCE, 0},
+{790, 1127109339u, 1074754146u, 1074754146u, 0, LOG10_TOLERANCE, 0},
+{791, 1200599955u, 1083948099u, 1083948099u, 0, LOG10_TOLERANCE, 0},
+{792, 1089700228u, 1063362759u, 1063362759u, 0, LOG10_TOLERANCE, 0},
+{793, 1333109014u, 1092212490u, 1092212490u, 0, LOG10_TOLERANCE, 0},
+{794, 1155775526u, 1079028827u, 1079028827u, 0, LOG10_TOLERANCE, 0},
+{795, 1234491880u, 1086505389u, 1086505389u, 0, LOG10_TOLERANCE, 0}
+
+// AUTOMATICALLY GENERATED VECTORS STOP
+
+};
+
+#endif // CYGONCE_LIBM_LOG10_H multiple inclusion protection
+
+// EOF log10.h
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/log1pf.c b/ecos/packages/language/c/libm/current/tests/vectors/log1pf.c
new file mode 100644
index 0000000..be11ad8
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/log1pf.c
@@ -0,0 +1,115 @@
+//===========================================================================
+//
+// log1pf.c
+//
+// Test of log1pf() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// Declarations for test system:
+//
+// TESTCASE_TYPE=CYG_TEST_MODULE
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include <cyg/infra/testcase.h> // Test infrastructure
+#include <math.h> // Header for this package
+#include <sys/ieeefp.h> // Cyg_libm_ieee_float_shape_type
+#include "vectors/vector_support_float.h"// extra support for math tests
+
+#include "vectors/log1pf.h"
+
+// FUNCTIONS
+
+static void
+test( CYG_ADDRWORD data )
+{
+ cyg_ucount32 vec_size;
+ cyg_bool ret;
+
+ vec_size = sizeof(log1pf_vec) / sizeof(Cyg_libm_test_float_vec_t);
+ ret = doTestVecFloat( (CYG_ADDRWORD) &log1pf, CYG_LIBM_TEST_VEC_FLOAT,
+ CYG_LIBM_TEST_VEC_NONE, CYG_LIBM_TEST_VEC_FLOAT,
+ &log1pf_vec[0], vec_size );
+
+ if (ret==true)
+ {
+ CYG_TEST_PASS("log1pf() is stable");
+ } // if
+ else
+ {
+ CYG_TEST_FAIL("log1pf() failed tests");
+ } // else
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for Math "
+ "library log1pf() function");
+} // test()
+
+
+int
+main(int argc, char *argv[])
+{
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for Math library "
+ "log1pf() function");
+
+ START_TEST( test );
+
+ CYG_TEST_PASS_FINISH("Testing is not applicable to this configuration");
+
+} // main()
+
+
+// EOF log1pf.c
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/log1pf.h b/ecos/packages/language/c/libm/current/tests/vectors/log1pf.h
new file mode 100644
index 0000000..45bcafe
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/log1pf.h
@@ -0,0 +1,1360 @@
+#ifndef CYGONCE_LIBM_LOG1PFF_H
+#define CYGONCE_LIBM_LOG1PFF_H
+//===========================================================================
+//
+// log1pf.h
+//
+// Test vectors for testing of log1pf() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage: #include "vectors/log1pf.h"
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include "vectors/vector_support_float.h"// extra support for math tests
+
+#define LOG1PF_TOLERANCE 1.0E-04
+
+static const Cyg_libm_test_float_vec_t log1pf_vec[] = {
+
+// AUTOMATICALLY GENERATED VECTORS START
+
+{0, 3214514586u, 0u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{1, 3214430700u, 0u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{2, 3214346813u, 0u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{3, 3214262927u, 0u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{4, 3214179041u, 0u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{5, 3214095155u, 0u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{6, 3214011269u, 0u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{7, 3213927383u, 0u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{8, 3213843497u, 0u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{9, 3213759611u, 0u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{10, 3213675725u, 0u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{11, 3213591839u, 0u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{12, 3213507953u, 0u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{13, 3213424067u, 0u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{14, 3213340180u, 0u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{15, 3213256294u, 0u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{16, 3213172408u, 0u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{17, 3213088522u, 0u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{18, 3213004636u, 0u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{19, 3212920750u, 0u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{20, 3212669092u, 0u, 3230883216u, 0, LOG1PF_TOLERANCE, 0},
+{21, 3212501320u, 0u, 3229245082u, 0, LOG1PF_TOLERANCE, 0},
+{22, 3212333548u, 0u, 3227544438u, 0, LOG1PF_TOLERANCE, 0},
+{23, 3212165775u, 0u, 3226337805u, 0, LOG1PF_TOLERANCE, 0},
+{24, 3211998003u, 0u, 3225401875u, 0, LOG1PF_TOLERANCE, 0},
+{25, 3211830231u, 0u, 3224637164u, 0, LOG1PF_TOLERANCE, 0},
+{26, 3211662459u, 0u, 3223990609u, 0, LOG1PF_TOLERANCE, 0},
+{27, 3211494687u, 0u, 3223430539u, 0, LOG1PF_TOLERANCE, 0},
+{28, 3211326915u, 0u, 3222936521u, 0, LOG1PF_TOLERANCE, 0},
+{29, 3211159142u, 0u, 3222494605u, 0, LOG1PF_TOLERANCE, 0},
+{30, 3210991370u, 0u, 3222094845u, 0, LOG1PF_TOLERANCE, 0},
+{31, 3210823598u, 0u, 3221729894u, 0, LOG1PF_TOLERANCE, 0},
+{32, 3210655826u, 0u, 3221394171u, 0, LOG1PF_TOLERANCE, 0},
+{33, 3210488054u, 0u, 3220941207u, 0, LOG1PF_TOLERANCE, 0},
+{34, 3210320282u, 0u, 3220362453u, 0, LOG1PF_TOLERANCE, 0},
+{35, 3210152509u, 0u, 3219821062u, 0, LOG1PF_TOLERANCE, 0},
+{36, 3209984737u, 0u, 3219312507u, 0, LOG1PF_TOLERANCE, 0},
+{37, 3209816965u, 0u, 3218833027u, 0, LOG1PF_TOLERANCE, 0},
+{38, 3209649193u, 0u, 3218379479u, 0, LOG1PF_TOLERANCE, 0},
+{39, 3209481421u, 0u, 3217949200u, 0, LOG1PF_TOLERANCE, 0},
+{40, 3209313649u, 0u, 3217539919u, 0, LOG1PF_TOLERANCE, 0},
+{41, 3209145876u, 0u, 3217149679u, 0, LOG1PF_TOLERANCE, 0},
+{42, 3208978104u, 0u, 3216776791u, 0, LOG1PF_TOLERANCE, 0},
+{43, 3208810332u, 0u, 3216419775u, 0, LOG1PF_TOLERANCE, 0},
+{44, 3208642560u, 0u, 3216077336u, 0, LOG1PF_TOLERANCE, 0},
+{45, 3208474788u, 0u, 3215748329u, 0, LOG1PF_TOLERANCE, 0},
+{46, 3208307016u, 0u, 3215431741u, 0, LOG1PF_TOLERANCE, 0},
+{47, 3208139244u, 0u, 3215126667u, 0, LOG1PF_TOLERANCE, 0},
+{48, 3207971471u, 0u, 3214832298u, 0, LOG1PF_TOLERANCE, 0},
+{49, 3207803699u, 0u, 3214547912u, 0, LOG1PF_TOLERANCE, 0},
+{50, 3207635927u, 0u, 3214272851u, 0, LOG1PF_TOLERANCE, 0},
+{51, 3207468155u, 0u, 3214006524u, 0, LOG1PF_TOLERANCE, 0},
+{52, 3207300383u, 0u, 3213748393u, 0, LOG1PF_TOLERANCE, 0},
+{53, 3207132611u, 0u, 3213497968u, 0, LOG1PF_TOLERANCE, 0},
+{54, 3206964838u, 0u, 3213254802u, 0, LOG1PF_TOLERANCE, 0},
+{55, 3206797066u, 0u, 3213018487u, 0, LOG1PF_TOLERANCE, 0},
+{56, 3206629294u, 0u, 3212740433u, 0, LOG1PF_TOLERANCE, 0},
+{57, 3206461522u, 0u, 3212293014u, 0, LOG1PF_TOLERANCE, 0},
+{58, 3206293750u, 0u, 3211857218u, 0, LOG1PF_TOLERANCE, 0},
+{59, 3206125978u, 0u, 3211432457u, 0, LOG1PF_TOLERANCE, 0},
+{60, 3205958205u, 0u, 3211018181u, 0, LOG1PF_TOLERANCE, 0},
+{61, 3205790433u, 0u, 3210613892u, 0, LOG1PF_TOLERANCE, 0},
+{62, 3205622661u, 0u, 3210219116u, 0, LOG1PF_TOLERANCE, 0},
+{63, 3205454889u, 0u, 3209833416u, 0, LOG1PF_TOLERANCE, 0},
+{64, 3205287117u, 0u, 3209456385u, 0, LOG1PF_TOLERANCE, 0},
+{65, 3205119345u, 0u, 3209087640u, 0, LOG1PF_TOLERANCE, 0},
+{66, 3204951572u, 0u, 3208726824u, 0, LOG1PF_TOLERANCE, 0},
+{67, 3204783800u, 0u, 3208373607u, 0, LOG1PF_TOLERANCE, 0},
+{68, 3204616028u, 0u, 3208027673u, 0, LOG1PF_TOLERANCE, 0},
+{69, 3204448256u, 0u, 3207688728u, 0, LOG1PF_TOLERANCE, 0},
+{70, 3204112712u, 0u, 3207356495u, 0, LOG1PF_TOLERANCE, 0},
+{71, 3203777167u, 0u, 3207030713u, 0, LOG1PF_TOLERANCE, 0},
+{72, 3203441623u, 0u, 3206711138u, 0, LOG1PF_TOLERANCE, 0},
+{73, 3203106079u, 0u, 3206397536u, 0, LOG1PF_TOLERANCE, 0},
+{74, 3202770534u, 0u, 3206089688u, 0, LOG1PF_TOLERANCE, 0},
+{75, 3202434990u, 0u, 3205787388u, 0, LOG1PF_TOLERANCE, 0},
+{76, 3202099446u, 0u, 3205490439u, 0, LOG1PF_TOLERANCE, 0},
+{77, 3201763901u, 0u, 3205198653u, 0, LOG1PF_TOLERANCE, 0},
+{78, 3201428357u, 0u, 3204911856u, 0, LOG1PF_TOLERANCE, 0},
+{79, 3201092813u, 0u, 3204629880u, 0, LOG1PF_TOLERANCE, 0},
+{80, 3200757268u, 0u, 3204256872u, 0, LOG1PF_TOLERANCE, 0},
+{81, 3200421724u, 0u, 3203711260u, 0, LOG1PF_TOLERANCE, 0},
+{82, 3200086180u, 0u, 3203174378u, 0, LOG1PF_TOLERANCE, 0},
+{83, 3199750636u, 0u, 3202645951u, 0, LOG1PF_TOLERANCE, 0},
+{84, 3199415091u, 0u, 3202125716u, 0, LOG1PF_TOLERANCE, 0},
+{85, 3199079547u, 0u, 3201613425u, 0, LOG1PF_TOLERANCE, 0},
+{86, 3198744003u, 0u, 3201108838u, 0, LOG1PF_TOLERANCE, 0},
+{87, 3198408458u, 0u, 3200611725u, 0, LOG1PF_TOLERANCE, 0},
+{88, 3198072914u, 0u, 3200121871u, 0, LOG1PF_TOLERANCE, 0},
+{89, 3197737370u, 0u, 3199639066u, 0, LOG1PF_TOLERANCE, 0},
+{90, 3197401825u, 0u, 3199163107u, 0, LOG1PF_TOLERANCE, 0},
+{91, 3197066281u, 0u, 3198693807u, 0, LOG1PF_TOLERANCE, 0},
+{92, 3196730737u, 0u, 3198230981u, 0, LOG1PF_TOLERANCE, 0},
+{93, 3196395192u, 0u, 3197774450u, 0, LOG1PF_TOLERANCE, 0},
+{94, 3196059648u, 0u, 3197324049u, 0, LOG1PF_TOLERANCE, 0},
+{95, 3195388559u, 0u, 3196879612u, 0, LOG1PF_TOLERANCE, 0},
+{96, 3194717471u, 0u, 3196440986u, 0, LOG1PF_TOLERANCE, 0},
+{97, 3194046382u, 0u, 3195956391u, 0, LOG1PF_TOLERANCE, 0},
+{98, 3193375293u, 0u, 3195101489u, 0, LOG1PF_TOLERANCE, 0},
+{99, 3192704205u, 0u, 3194257342u, 0, LOG1PF_TOLERANCE, 0},
+{100, 3192033116u, 0u, 3193423681u, 0, LOG1PF_TOLERANCE, 0},
+{101, 3191362028u, 0u, 3192600250u, 0, LOG1PF_TOLERANCE, 0},
+{102, 3190690939u, 0u, 3191786798u, 0, LOG1PF_TOLERANCE, 0},
+{103, 3190019850u, 0u, 3190983089u, 0, LOG1PF_TOLERANCE, 0},
+{104, 3189348762u, 0u, 3190188893u, 0, LOG1PF_TOLERANCE, 0},
+{105, 3188677673u, 0u, 3189403985u, 0, LOG1PF_TOLERANCE, 0},
+{106, 3188006584u, 0u, 3188628151u, 0, LOG1PF_TOLERANCE, 0},
+{107, 3186999951u, 0u, 3187861184u, 0, LOG1PF_TOLERANCE, 0},
+{108, 3185657774u, 0u, 3186534728u, 0, LOG1PF_TOLERANCE, 0},
+{109, 3184315597u, 0u, 3185035073u, 0, LOG1PF_TOLERANCE, 0},
+{110, 3182973420u, 0u, 3183551990u, 0, LOG1PF_TOLERANCE, 0},
+{111, 3181631242u, 0u, 3182085114u, 0, LOG1PF_TOLERANCE, 0},
+{112, 3180289065u, 0u, 3180634098u, 0, LOG1PF_TOLERANCE, 0},
+{113, 3178611343u, 0u, 3179114768u, 0, LOG1PF_TOLERANCE, 0},
+{114, 3175926989u, 0u, 3176274155u, 0, LOG1PF_TOLERANCE, 0},
+{115, 3173242634u, 0u, 3173463286u, 0, LOG1PF_TOLERANCE, 0},
+{116, 3170222735u, 0u, 3170469270u, 0, LOG1PF_TOLERANCE, 0},
+{117, 3164854026u, 0u, 3164962854u, 0, LOG1PF_TOLERANCE, 0},
+{118, 3156465418u, 0u, 3156519466u, 0, LOG1PF_TOLERANCE, 0},
+{119, 1008981770u, 0u, 1008928438u, 0, LOG1PF_TOLERANCE, 0},
+{120, 1017370378u, 0u, 1017264414u, 0, LOG1PF_TOLERANCE, 0},
+{121, 1022739087u, 0u, 1022502221u, 0, LOG1PF_TOLERANCE, 0},
+{122, 1025758986u, 0u, 1025549798u, 0, LOG1PF_TOLERANCE, 0},
+{123, 1028443341u, 0u, 1028118578u, 0, LOG1PF_TOLERANCE, 0},
+{124, 1031127695u, 0u, 1030663009u, 0, LOG1PF_TOLERANCE, 0},
+{125, 1032805417u, 0u, 1032491166u, 0, LOG1PF_TOLERANCE, 0},
+{126, 1034147594u, 0u, 1033739712u, 0, LOG1PF_TOLERANCE, 0},
+{127, 1035489772u, 0u, 1034976751u, 0, LOG1PF_TOLERANCE, 0},
+{128, 1036831949u, 0u, 1036202492u, 0, LOG1PF_TOLERANCE, 0},
+{129, 1038174126u, 0u, 1037417140u, 0, LOG1PF_TOLERANCE, 0},
+{130, 1039516303u, 0u, 1038620894u, 0, LOG1PF_TOLERANCE, 0},
+{131, 1040522936u, 0u, 1039813948u, 0, LOG1PF_TOLERANCE, 0},
+{132, 1041194025u, 0u, 1040591942u, 0, LOG1PF_TOLERANCE, 0},
+{133, 1041865114u, 0u, 1041178050u, 0, LOG1PF_TOLERANCE, 0},
+{134, 1042536202u, 0u, 1041759082u, 0, LOG1PF_TOLERANCE, 0},
+{135, 1043207291u, 0u, 1042335127u, 0, LOG1PF_TOLERANCE, 0},
+{136, 1043878380u, 0u, 1042906270u, 0, LOG1PF_TOLERANCE, 0},
+{137, 1044549468u, 0u, 1043472593u, 0, LOG1PF_TOLERANCE, 0},
+{138, 1045220557u, 0u, 1044034177u, 0, LOG1PF_TOLERANCE, 0},
+{139, 1045891645u, 0u, 1044591099u, 0, LOG1PF_TOLERANCE, 0},
+{140, 1046562734u, 0u, 1045143439u, 0, LOG1PF_TOLERANCE, 0},
+{141, 1047233823u, 0u, 1045691270u, 0, LOG1PF_TOLERANCE, 0},
+{142, 1047904911u, 0u, 1046234664u, 0, LOG1PF_TOLERANCE, 0},
+{143, 1048576000u, 0u, 1046773694u, 0, LOG1PF_TOLERANCE, 0},
+{144, 1048911544u, 0u, 1047308429u, 0, LOG1PF_TOLERANCE, 0},
+{145, 1049247089u, 0u, 1047838937u, 0, LOG1PF_TOLERANCE, 0},
+{146, 1049582633u, 0u, 1048365283u, 0, LOG1PF_TOLERANCE, 0},
+{147, 1049918177u, 0u, 1048731767u, 0, LOG1PF_TOLERANCE, 0},
+{148, 1050253722u, 0u, 1048990876u, 0, LOG1PF_TOLERANCE, 0},
+{149, 1050589266u, 0u, 1049247999u, 0, LOG1PF_TOLERANCE, 0},
+{150, 1050924810u, 0u, 1049503167u, 0, LOG1PF_TOLERANCE, 0},
+{151, 1051260355u, 0u, 1049756410u, 0, LOG1PF_TOLERANCE, 0},
+{152, 1051595899u, 0u, 1050007755u, 0, LOG1PF_TOLERANCE, 0},
+{153, 1051931443u, 0u, 1050257231u, 0, LOG1PF_TOLERANCE, 0},
+{154, 1052266988u, 0u, 1050504867u, 0, LOG1PF_TOLERANCE, 0},
+{155, 1052602532u, 0u, 1050750688u, 0, LOG1PF_TOLERANCE, 0},
+{156, 1052938076u, 0u, 1050994721u, 0, LOG1PF_TOLERANCE, 0},
+{157, 1053273620u, 0u, 1051236992u, 0, LOG1PF_TOLERANCE, 0},
+{158, 1053609165u, 0u, 1051477527u, 0, LOG1PF_TOLERANCE, 0},
+{159, 1053944709u, 0u, 1051716349u, 0, LOG1PF_TOLERANCE, 0},
+{160, 1054280253u, 0u, 1051953484u, 0, LOG1PF_TOLERANCE, 0},
+{161, 1054615798u, 0u, 1052188955u, 0, LOG1PF_TOLERANCE, 0},
+{162, 1054951342u, 0u, 1052422785u, 0, LOG1PF_TOLERANCE, 0},
+{163, 1055286886u, 0u, 1052654996u, 0, LOG1PF_TOLERANCE, 0},
+{164, 1055622431u, 0u, 1052885612u, 0, LOG1PF_TOLERANCE, 0},
+{165, 1055957975u, 0u, 1053114653u, 0, LOG1PF_TOLERANCE, 0},
+{166, 1056293519u, 0u, 1053342141u, 0, LOG1PF_TOLERANCE, 0},
+{167, 1056629064u, 0u, 1053568098u, 0, LOG1PF_TOLERANCE, 0},
+{168, 1056964608u, 0u, 1053792543u, 0, LOG1PF_TOLERANCE, 0},
+{169, 1057132380u, 0u, 1054015497u, 0, LOG1PF_TOLERANCE, 0},
+{170, 1057300152u, 0u, 1054236979u, 0, LOG1PF_TOLERANCE, 0},
+{171, 1057467924u, 0u, 1054457009u, 0, LOG1PF_TOLERANCE, 0},
+{172, 1057635697u, 0u, 1054675606u, 0, LOG1PF_TOLERANCE, 0},
+{173, 1057803469u, 0u, 1054892788u, 0, LOG1PF_TOLERANCE, 0},
+{174, 1057971241u, 0u, 1055108572u, 0, LOG1PF_TOLERANCE, 0},
+{175, 1058139013u, 0u, 1055322978u, 0, LOG1PF_TOLERANCE, 0},
+{176, 1058306785u, 0u, 1055536023u, 0, LOG1PF_TOLERANCE, 0},
+{177, 1058474557u, 0u, 1055747723u, 0, LOG1PF_TOLERANCE, 0},
+{178, 1058642330u, 0u, 1055958097u, 0, LOG1PF_TOLERANCE, 0},
+{179, 1058810102u, 0u, 1056167160u, 0, LOG1PF_TOLERANCE, 0},
+{180, 1058977874u, 0u, 1056374928u, 0, LOG1PF_TOLERANCE, 0},
+{181, 1059145646u, 0u, 1056581417u, 0, LOG1PF_TOLERANCE, 0},
+{182, 1059313418u, 0u, 1056786643u, 0, LOG1PF_TOLERANCE, 0},
+{183, 1059481190u, 0u, 1056977615u, 0, LOG1PF_TOLERANCE, 0},
+{184, 1059648963u, 0u, 1057078989u, 0, LOG1PF_TOLERANCE, 0},
+{185, 1059816735u, 0u, 1057179753u, 0, LOG1PF_TOLERANCE, 0},
+{186, 1059984507u, 0u, 1057279916u, 0, LOG1PF_TOLERANCE, 0},
+{187, 1060152279u, 0u, 1057379484u, 0, LOG1PF_TOLERANCE, 0},
+{188, 1060320051u, 0u, 1057478465u, 0, LOG1PF_TOLERANCE, 0},
+{189, 1060487823u, 0u, 1057576865u, 0, LOG1PF_TOLERANCE, 0},
+{190, 1060655596u, 0u, 1057674692u, 0, LOG1PF_TOLERANCE, 0},
+{191, 1060823368u, 0u, 1057771951u, 0, LOG1PF_TOLERANCE, 0},
+{192, 1060991140u, 0u, 1057868650u, 0, LOG1PF_TOLERANCE, 0},
+{193, 1061158912u, 0u, 1057964795u, 0, LOG1PF_TOLERANCE, 0},
+{194, 1061326684u, 0u, 1058060392u, 0, LOG1PF_TOLERANCE, 0},
+{195, 1061494456u, 0u, 1058155447u, 0, LOG1PF_TOLERANCE, 0},
+{196, 1061662228u, 0u, 1058249967u, 0, LOG1PF_TOLERANCE, 0},
+{197, 1061830001u, 0u, 1058343957u, 0, LOG1PF_TOLERANCE, 0},
+{198, 1061997773u, 0u, 1058437424u, 0, LOG1PF_TOLERANCE, 0},
+{199, 1062165545u, 0u, 1058530373u, 0, LOG1PF_TOLERANCE, 0},
+{200, 1062333317u, 0u, 1058622809u, 0, LOG1PF_TOLERANCE, 0},
+{201, 1062501089u, 0u, 1058714739u, 0, LOG1PF_TOLERANCE, 0},
+{202, 1062668861u, 0u, 1058806168u, 0, LOG1PF_TOLERANCE, 0},
+{203, 1062836634u, 0u, 1058897103u, 0, LOG1PF_TOLERANCE, 0},
+{204, 1063004406u, 0u, 1058987546u, 0, LOG1PF_TOLERANCE, 0},
+{205, 1063172178u, 0u, 1059077504u, 0, LOG1PF_TOLERANCE, 0},
+{206, 1063339950u, 0u, 1059166983u, 0, LOG1PF_TOLERANCE, 0},
+{207, 1063507722u, 0u, 1059255987u, 0, LOG1PF_TOLERANCE, 0},
+{208, 1063675494u, 0u, 1059344521u, 0, LOG1PF_TOLERANCE, 0},
+{209, 1063843267u, 0u, 1059432591u, 0, LOG1PF_TOLERANCE, 0},
+{210, 1064011039u, 0u, 1059520201u, 0, LOG1PF_TOLERANCE, 0},
+{211, 1064178811u, 0u, 1059607355u, 0, LOG1PF_TOLERANCE, 0},
+{212, 1064346583u, 0u, 1059694059u, 0, LOG1PF_TOLERANCE, 0},
+{213, 1064514355u, 0u, 1059780318u, 0, LOG1PF_TOLERANCE, 0},
+{214, 1064682127u, 0u, 1059866135u, 0, LOG1PF_TOLERANCE, 0},
+{215, 1064849900u, 0u, 1059951515u, 0, LOG1PF_TOLERANCE, 0},
+{216, 1065017672u, 0u, 1060036463u, 0, LOG1PF_TOLERANCE, 0},
+{217, 1065185444u, 0u, 1060120984u, 0, LOG1PF_TOLERANCE, 0},
+{218, 1065353216u, 0u, 1060205080u, 0, LOG1PF_TOLERANCE, 0},
+{219, 1065437102u, 0u, 1060288757u, 0, LOG1PF_TOLERANCE, 0},
+{220, 1065520988u, 0u, 1060372019u, 0, LOG1PF_TOLERANCE, 0},
+{221, 1065604874u, 0u, 1060454869u, 0, LOG1PF_TOLERANCE, 0},
+{222, 1065688760u, 0u, 1060537313u, 0, LOG1PF_TOLERANCE, 0},
+{223, 1065772646u, 0u, 1060619353u, 0, LOG1PF_TOLERANCE, 0},
+{224, 1065856532u, 0u, 1060700994u, 0, LOG1PF_TOLERANCE, 0},
+{225, 1065940419u, 0u, 1060782241u, 0, LOG1PF_TOLERANCE, 0},
+{226, 1066024305u, 0u, 1060863095u, 0, LOG1PF_TOLERANCE, 0},
+{227, 1066108191u, 0u, 1060943561u, 0, LOG1PF_TOLERANCE, 0},
+{228, 1066192077u, 0u, 1061023643u, 0, LOG1PF_TOLERANCE, 0},
+{229, 1066275963u, 0u, 1061103345u, 0, LOG1PF_TOLERANCE, 0},
+{230, 1066359849u, 0u, 1061182670u, 0, LOG1PF_TOLERANCE, 0},
+{231, 1066443735u, 0u, 1061261622u, 0, LOG1PF_TOLERANCE, 0},
+{232, 1066527621u, 0u, 1061340204u, 0, LOG1PF_TOLERANCE, 0},
+{233, 1066611507u, 0u, 1061418419u, 0, LOG1PF_TOLERANCE, 0},
+{234, 1066695393u, 0u, 1061496272u, 0, LOG1PF_TOLERANCE, 0},
+{235, 1066779279u, 0u, 1061573765u, 0, LOG1PF_TOLERANCE, 0},
+{236, 1066863165u, 0u, 1061650901u, 0, LOG1PF_TOLERANCE, 0},
+{237, 1066947052u, 0u, 1061727686u, 0, LOG1PF_TOLERANCE, 0},
+{238, 3234402267u, 0u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{239, 3231108068u, 0u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{240, 3226013659u, 0u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{241, 3217625051u, 0u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{242, 0u, 0u, 0u, 0, LOG1PF_TOLERANCE, 0},
+{243, 1070141403u, 0u, 1064417311u, 0, LOG1PF_TOLERANCE, 0},
+{244, 1078530011u, 0u, 1068885495u, 0, LOG1PF_TOLERANCE, 0},
+{245, 1083624420u, 0u, 1071582909u, 0, LOG1PF_TOLERANCE, 0},
+{246, 3253731328u, 0u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{247, 3252840038u, 0u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{248, 3251948749u, 0u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{249, 3251057459u, 0u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{250, 3250166170u, 0u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{251, 3249274880u, 0u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{252, 3248383590u, 0u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{253, 3247492301u, 0u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{254, 3246601011u, 0u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{255, 3245028147u, 0u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{256, 3243245568u, 0u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{257, 3241462989u, 0u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{258, 3239680410u, 0u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{259, 3237792973u, 0u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{260, 3234227814u, 0u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{261, 3230662656u, 0u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{262, 3224580915u, 0u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{263, 3213675725u, 0u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{264, 1058642330u, 0u, 1055958097u, 0, LOG1PF_TOLERANCE, 0},
+{265, 1075000115u, 0u, 1066979955u, 0, LOG1PF_TOLERANCE, 0},
+{266, 1082130432u, 0u, 1070465552u, 0, LOG1PF_TOLERANCE, 0},
+{267, 1085695590u, 0u, 1072920642u, 0, LOG1PF_TOLERANCE, 0},
+{268, 1089260749u, 0u, 1074279667u, 0, LOG1PF_TOLERANCE, 0},
+{269, 1091672474u, 0u, 1075052693u, 0, LOG1PF_TOLERANCE, 0},
+{270, 1093455053u, 0u, 1075705176u, 0, LOG1PF_TOLERANCE, 0},
+{271, 1095237632u, 0u, 1076269688u, 0, LOG1PF_TOLERANCE, 0},
+{272, 1097020211u, 0u, 1076767156u, 0, LOG1PF_TOLERANCE, 0},
+{273, 1098802790u, 0u, 1077211829u, 0, LOG1PF_TOLERANCE, 0},
+{274, 1099746509u, 0u, 1077613844u, 0, LOG1PF_TOLERANCE, 0},
+{275, 1100637798u, 0u, 1077980675u, 0, LOG1PF_TOLERANCE, 0},
+{276, 1101529088u, 0u, 1078317988u, 0, LOG1PF_TOLERANCE, 0},
+{277, 1102420378u, 0u, 1078630181u, 0, LOG1PF_TOLERANCE, 0},
+{278, 1103311667u, 0u, 1078920737u, 0, LOG1PF_TOLERANCE, 0},
+{279, 1104202957u, 0u, 1079192464u, 0, LOG1PF_TOLERANCE, 0},
+{280, 1105094246u, 0u, 1079447652u, 0, LOG1PF_TOLERANCE, 0},
+{281, 1105985536u, 0u, 1079688201u, 0, LOG1PF_TOLERANCE, 0},
+{282, 1107800421u, 1203999711u, 1080256217u, 0, LOG1PF_TOLERANCE, 0},
+{283, 3196650934u, 896005582u, 3198121839u, 0, LOG1PF_TOLERANCE, 0},
+{284, 3368700125u, 3308232444u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{285, 1224242132u, 3061363425u, 1095908587u, 0, LOG1PF_TOLERANCE, 0},
+{286, 3221027117u, 1284201705u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{287, 1198712763u, 919636942u, 1093704472u, 0, LOG1PF_TOLERANCE, 0},
+{288, 867432512u, 3067736756u, 867432512u, 0, LOG1PF_TOLERANCE, 0},
+{289, 3159309973u, 852521077u, 3159396605u, 0, LOG1PF_TOLERANCE, 0},
+{290, 954173073u, 850531830u, 954172292u, 0, LOG1PF_TOLERANCE, 0},
+{291, 3090780435u, 1035260608u, 3090780704u, 0, LOG1PF_TOLERANCE, 0},
+{292, 966554515u, 3234538174u, 966552985u, 0, LOG1PF_TOLERANCE, 0},
+{293, 1312607135u, 1194999402u, 1101261650u, 0, LOG1PF_TOLERANCE, 0},
+{294, 1166191415u, 1018661564u, 1090874131u, 0, LOG1PF_TOLERANCE, 0},
+{295, 3111900019u, 1130472166u, 3111902001u, 0, LOG1PF_TOLERANCE, 0},
+{296, 1234419246u, 2984575812u, 1096817194u, 0, LOG1PF_TOLERANCE, 0},
+{297, 1302107128u, 3370647675u, 1100800142u, 0, LOG1PF_TOLERANCE, 0},
+{298, 1052801068u, 3039122570u, 1050895292u, 0, LOG1PF_TOLERANCE, 0},
+{299, 1060849628u, 3081357692u, 1057787124u, 0, LOG1PF_TOLERANCE, 0},
+{300, 3010214568u, 3446630737u, 3010214568u, 0, LOG1PF_TOLERANCE, 0},
+{301, 3484320003u, 3033957825u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{302, 3181522772u, 3305392896u, 3181967263u, 0, LOG1PF_TOLERANCE, 0},
+{303, 882596369u, 1256676590u, 882596368u, 0, LOG1PF_TOLERANCE, 0},
+{304, 1167223673u, 846102364u, 1090993444u, 0, LOG1PF_TOLERANCE, 0},
+{305, 968192794u, 878547432u, 968190737u, 0, LOG1PF_TOLERANCE, 0},
+{306, 3122346862u, 1111584337u, 3122349875u, 0, LOG1PF_TOLERANCE, 0},
+{307, 1052361612u, 1280025214u, 1050574371u, 0, LOG1PF_TOLERANCE, 0},
+{308, 906701409u, 2968301825u, 906701400u, 0, LOG1PF_TOLERANCE, 0},
+{309, 3471653172u, 1154138102u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{310, 843024648u, 3166833184u, 843024648u, 0, LOG1PF_TOLERANCE, 0},
+{311, 3231467496u, 934336592u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{312, 1341514497u, 3466051188u, 1102490397u, 0, LOG1PF_TOLERANCE, 0},
+{313, 1272351391u, 3373485062u, 1099511631u, 0, LOG1PF_TOLERANCE, 0},
+{314, 3319724992u, 3354615790u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{315, 3013402113u, 3266377514u, 3013402113u, 0, LOG1PF_TOLERANCE, 0},
+{316, 917622040u, 1334966485u, 917622009u, 0, LOG1PF_TOLERANCE, 0},
+{317, 940236348u, 3304072663u, 940236197u, 0, LOG1PF_TOLERANCE, 0},
+{318, 2963234879u, 977028681u, 2963234879u, 0, LOG1PF_TOLERANCE, 0},
+{319, 3251541546u, 3174764041u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{320, 3099843889u, 3355962282u, 3099844488u, 0, LOG1PF_TOLERANCE, 0},
+{321, 3110358400u, 851145088u, 3110360029u, 0, LOG1PF_TOLERANCE, 0},
+{322, 3371863479u, 1014861921u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{323, 3204069187u, 966573255u, 3207313878u, 0, LOG1PF_TOLERANCE, 0},
+{324, 1306460502u, 903489435u, 1100985551u, 0, LOG1PF_TOLERANCE, 0},
+{325, 1197542187u, 3024598921u, 1093624386u, 0, LOG1PF_TOLERANCE, 0},
+{326, 922888249u, 1139392309u, 922888216u, 0, LOG1PF_TOLERANCE, 0},
+{327, 1184239996u, 3224098462u, 1092472718u, 0, LOG1PF_TOLERANCE, 0},
+{328, 1252490238u, 1173619825u, 1098402337u, 0, LOG1PF_TOLERANCE, 0},
+{329, 1001673627u, 3462631271u, 1001641228u, 0, LOG1PF_TOLERANCE, 0},
+{330, 976098044u, 1151967422u, 976094258u, 0, LOG1PF_TOLERANCE, 0},
+{331, 941796645u, 886451963u, 941796438u, 0, LOG1PF_TOLERANCE, 0},
+{332, 3006797923u, 1103058486u, 3006797923u, 0, LOG1PF_TOLERANCE, 0},
+{333, 855756273u, 3217259624u, 855756273u, 0, LOG1PF_TOLERANCE, 0},
+{334, 3287199470u, 854245542u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{335, 893184329u, 1243067084u, 893184325u, 0, LOG1PF_TOLERANCE, 0},
+{336, 1143233714u, 1007268238u, 1087352102u, 0, LOG1PF_TOLERANCE, 0},
+{337, 1139941253u, 1147688821u, 1086711989u, 0, LOG1PF_TOLERANCE, 0},
+{338, 3143717025u, 3234638157u, 3143742467u, 0, LOG1PF_TOLERANCE, 0},
+{339, 3048866608u, 3449209899u, 3048866616u, 0, LOG1PF_TOLERANCE, 0},
+{340, 3240298487u, 1020260821u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{341, 1288902137u, 3123875978u, 1100229934u, 0, LOG1PF_TOLERANCE, 0},
+{342, 1333134799u, 1338107877u, 1102127278u, 0, LOG1PF_TOLERANCE, 0},
+{343, 1187847971u, 1317663644u, 1092800397u, 0, LOG1PF_TOLERANCE, 0},
+{344, 1038851706u, 1327544110u, 1038026189u, 0, LOG1PF_TOLERANCE, 0},
+{345, 3329354473u, 3165437289u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{346, 3077218579u, 1308397879u, 3077218687u, 0, LOG1PF_TOLERANCE, 0},
+{347, 1309289088u, 1019883016u, 1101097963u, 0, LOG1PF_TOLERANCE, 0},
+{348, 2991550291u, 1294782875u, 2991550291u, 0, LOG1PF_TOLERANCE, 0},
+{349, 3444653659u, 1279248024u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{350, 3405585402u, 2962345057u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{351, 3106647724u, 853848387u, 3106648645u, 0, LOG1PF_TOLERANCE, 0},
+{352, 1106778573u, 3304487767u, 1079891217u, 0, LOG1PF_TOLERANCE, 0},
+{353, 1140567947u, 3069174149u, 1086793057u, 0, LOG1PF_TOLERANCE, 0},
+{354, 1238569473u, 873035665u, 1097191240u, 0, LOG1PF_TOLERANCE, 0},
+{355, 840375965u, 3223983207u, 840375965u, 0, LOG1PF_TOLERANCE, 0},
+{356, 3154871957u, 1276671061u, 3154911114u, 0, LOG1PF_TOLERANCE, 0},
+{357, 1261071232u, 1182202773u, 1099027511u, 0, LOG1PF_TOLERANCE, 0},
+{358, 1175011025u, 3029705783u, 1091652307u, 0, LOG1PF_TOLERANCE, 0},
+{359, 1082692850u, 1211581107u, 1070903835u, 0, LOG1PF_TOLERANCE, 0},
+{360, 974547519u, 3475164509u, 974544692u, 0, LOG1PF_TOLERANCE, 0},
+{361, 3058097085u, 3104309359u, 3058097104u, 0, LOG1PF_TOLERANCE, 0},
+{362, 3107252546u, 1071134451u, 3107253569u, 0, LOG1PF_TOLERANCE, 0},
+{363, 3096032662u, 2976848821u, 3096032958u, 0, LOG1PF_TOLERANCE, 0},
+{364, 3197942144u, 3094120030u, 3199932883u, 0, LOG1PF_TOLERANCE, 0},
+{365, 3403348556u, 3184653669u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{366, 2998032500u, 3373011130u, 2998032500u, 0, LOG1PF_TOLERANCE, 0},
+{367, 3182301130u, 3460764044u, 3182815235u, 0, LOG1PF_TOLERANCE, 0},
+{368, 1136411063u, 1118097422u, 1086185498u, 0, LOG1PF_TOLERANCE, 0},
+{369, 3239231622u, 3302723069u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{370, 3340615780u, 870350055u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{371, 998567360u, 2995278691u, 998549738u, 0, LOG1PF_TOLERANCE, 0},
+{372, 3417964312u, 1321337529u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{373, 3109481038u, 1143864063u, 3109482482u, 0, LOG1PF_TOLERANCE, 0},
+{374, 1148867223u, 1256486202u, 1088233235u, 0, LOG1PF_TOLERANCE, 0},
+{375, 2960983878u, 1314196594u, 2960983878u, 0, LOG1PF_TOLERANCE, 0},
+{376, 989687421u, 3372681320u, 989671385u, 0, LOG1PF_TOLERANCE, 0},
+{377, 1152956913u, 3166480640u, 1089048923u, 0, LOG1PF_TOLERANCE, 0},
+{378, 892922651u, 3373029087u, 892922647u, 0, LOG1PF_TOLERANCE, 0},
+{379, 1109627625u, 1314158257u, 1081019486u, 0, LOG1PF_TOLERANCE, 0},
+{380, 1307091856u, 1103202538u, 1101007725u, 0, LOG1PF_TOLERANCE, 0},
+{381, 1077234132u, 3272167130u, 1068235135u, 0, LOG1PF_TOLERANCE, 0},
+{382, 1142167709u, 1096445242u, 1087133907u, 0, LOG1PF_TOLERANCE, 0},
+{383, 3426232834u, 1036705270u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{384, 3000726366u, 3172023300u, 3000726366u, 0, LOG1PF_TOLERANCE, 0},
+{385, 3368566779u, 967249167u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{386, 3030724760u, 3349013503u, 3030724762u, 0, LOG1PF_TOLERANCE, 0},
+{387, 1138741813u, 3073453199u, 1086547508u, 0, LOG1PF_TOLERANCE, 0},
+{388, 982950501u, 982549888u, 982944833u, 0, LOG1PF_TOLERANCE, 0},
+{389, 1142981585u, 1015602236u, 1087302507u, 0, LOG1PF_TOLERANCE, 0},
+{390, 3016453868u, 3365560001u, 3016453869u, 0, LOG1PF_TOLERANCE, 0},
+{391, 3347165962u, 3135486696u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{392, 1009535440u, 3381353228u, 1009476486u, 0, LOG1PF_TOLERANCE, 0},
+{393, 3103736980u, 3402950505u, 3103737998u, 0, LOG1PF_TOLERANCE, 0},
+{394, 3126820946u, 1077903063u, 3126827194u, 0, LOG1PF_TOLERANCE, 0},
+{395, 3473956030u, 976891930u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{396, 3349098349u, 1055327704u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{397, 3152729489u, 1060398533u, 3152784901u, 0, LOG1PF_TOLERANCE, 0},
+{398, 945568720u, 3313485084u, 945568341u, 0, LOG1PF_TOLERANCE, 0},
+{399, 3345489836u, 1108392401u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{400, 940893161u, 1137000140u, 940892988u, 0, LOG1PF_TOLERANCE, 0},
+{401, 976791751u, 3230678102u, 976787491u, 0, LOG1PF_TOLERANCE, 0},
+{402, 3013749677u, 1324802687u, 3013749677u, 0, LOG1PF_TOLERANCE, 0},
+{403, 1004442355u, 3036510596u, 1004393039u, 0, LOG1PF_TOLERANCE, 0},
+{404, 1108485380u, 3173536878u, 1080558845u, 0, LOG1PF_TOLERANCE, 0},
+{405, 1061834641u, 972388096u, 1058346549u, 0, LOG1PF_TOLERANCE, 0},
+{406, 3381268392u, 1146976802u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{407, 1087189715u, 2952822478u, 1073755085u, 0, LOG1PF_TOLERANCE, 0},
+{408, 3212952285u, 3329407365u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{409, 1000611335u, 857599439u, 1000584490u, 0, LOG1PF_TOLERANCE, 0},
+{410, 847191250u, 1227905777u, 847191250u, 0, LOG1PF_TOLERANCE, 0},
+{411, 3466188568u, 1041678304u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{412, 2968337765u, 3091399866u, 2968337765u, 0, LOG1PF_TOLERANCE, 0},
+{413, 3072456205u, 3160254633u, 3072456256u, 0, LOG1PF_TOLERANCE, 0},
+{414, 3319315516u, 3422089012u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{415, 935938416u, 1146676692u, 935938258u, 0, LOG1PF_TOLERANCE, 0},
+{416, 3212614372u, 1152633030u, 3230291221u, 0, LOG1PF_TOLERANCE, 0},
+{417, 1315030230u, 3336225884u, 1101355418u, 0, LOG1PF_TOLERANCE, 0},
+{418, 822041816u, 898402905u, 822041816u, 0, LOG1PF_TOLERANCE, 0},
+{419, 1134593658u, 3456812581u, 1085852266u, 0, LOG1PF_TOLERANCE, 0},
+{420, 977281449u, 879922831u, 977276837u, 0, LOG1PF_TOLERANCE, 0},
+{421, 1086198791u, 920125958u, 1073215806u, 0, LOG1PF_TOLERANCE, 0},
+{422, 1255152035u, 851754050u, 1098630014u, 0, LOG1PF_TOLERANCE, 0},
+{423, 1135271264u, 3284878412u, 1085982778u, 0, LOG1PF_TOLERANCE, 0},
+{424, 1094190727u, 1056854532u, 1075947424u, 0, LOG1PF_TOLERANCE, 0},
+{425, 1294665325u, 991185677u, 1100483004u, 0, LOG1PF_TOLERANCE, 0},
+{426, 1036608591u, 805416536u, 1035999285u, 0, LOG1PF_TOLERANCE, 0},
+{427, 2960459834u, 1296239160u, 2960459834u, 0, LOG1PF_TOLERANCE, 0},
+{428, 3229998064u, 825237063u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{429, 3439134022u, 1043829691u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{430, 3073083133u, 1317170485u, 3073083190u, 0, LOG1PF_TOLERANCE, 0},
+{431, 1325668223u, 970681762u, 1101801209u, 0, LOG1PF_TOLERANCE, 0},
+{432, 1092037607u, 1027330835u, 1075194863u, 0, LOG1PF_TOLERANCE, 0},
+{433, 826457956u, 3343511749u, 826457956u, 0, LOG1PF_TOLERANCE, 0},
+{434, 3316278408u, 3455589207u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{435, 3295436768u, 3129873731u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{436, 1151984049u, 3074547120u, 1088873360u, 0, LOG1PF_TOLERANCE, 0},
+{437, 1129287043u, 3076527544u, 1084941019u, 0, LOG1PF_TOLERANCE, 0},
+{438, 1243664530u, 972879810u, 1097632909u, 0, LOG1PF_TOLERANCE, 0},
+{439, 950829092u, 929114193u, 950828627u, 0, LOG1PF_TOLERANCE, 0},
+{440, 1115471979u, 3047246262u, 1082469782u, 0, LOG1PF_TOLERANCE, 0},
+{441, 3351092088u, 3024661404u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{442, 3424479544u, 3312047722u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{443, 3241193975u, 884465785u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{444, 811700241u, 3478509398u, 811700241u, 0, LOG1PF_TOLERANCE, 0},
+{445, 1030934236u, 1045139240u, 1030480438u, 0, LOG1PF_TOLERANCE, 0},
+{446, 3131791114u, 3408392958u, 3131798460u, 0, LOG1PF_TOLERANCE, 0},
+{447, 1025254314u, 3057812821u, 1025064097u, 0, LOG1PF_TOLERANCE, 0},
+{448, 1110545760u, 3240144177u, 1081356252u, 0, LOG1PF_TOLERANCE, 0},
+{449, 826998191u, 1091496527u, 826998191u, 0, LOG1PF_TOLERANCE, 0},
+{450, 3180213739u, 1108793820u, 3180553126u, 0, LOG1PF_TOLERANCE, 0},
+{451, 3361976590u, 3138179993u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{452, 881280146u, 3421884736u, 881280145u, 0, LOG1PF_TOLERANCE, 0},
+{453, 1304154705u, 2961937089u, 1100895530u, 0, LOG1PF_TOLERANCE, 0},
+{454, 3264443610u, 3222916705u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{455, 3374550627u, 3055856293u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{456, 2979664918u, 3365394784u, 2979664918u, 0, LOG1PF_TOLERANCE, 0},
+{457, 899599265u, 3240118211u, 899599259u, 0, LOG1PF_TOLERANCE, 0},
+{458, 842476444u, 3452685905u, 842476444u, 0, LOG1PF_TOLERANCE, 0},
+{459, 1268194719u, 1332489410u, 1099327890u, 0, LOG1PF_TOLERANCE, 0},
+{460, 1133420220u, 1245770860u, 1085605058u, 0, LOG1PF_TOLERANCE, 0},
+{461, 1161858787u, 815362075u, 1090553970u, 0, LOG1PF_TOLERANCE, 0},
+{462, 3184462258u, 1263529646u, 3185198129u, 0, LOG1PF_TOLERANCE, 0},
+{463, 3295996963u, 3453334307u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{464, 1270887389u, 1156123987u, 1099453983u, 0, LOG1PF_TOLERANCE, 0},
+{465, 3325193181u, 993979179u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{466, 925657343u, 1315159742u, 925657285u, 0, LOG1PF_TOLERANCE, 0},
+{467, 3115275450u, 3008350271u, 3115277372u, 0, LOG1PF_TOLERANCE, 0},
+{468, 3116607482u, 3224327456u, 3116609875u, 0, LOG1PF_TOLERANCE, 0},
+{469, 3187892415u, 3118097315u, 3188497050u, 0, LOG1PF_TOLERANCE, 0},
+{470, 1189120494u, 978961471u, 1092895232u, 0, LOG1PF_TOLERANCE, 0},
+{471, 889030794u, 3129523970u, 889030790u, 0, LOG1PF_TOLERANCE, 0},
+{472, 1323529208u, 3100744786u, 1101722723u, 0, LOG1PF_TOLERANCE, 0},
+{473, 2975945347u, 940445933u, 2975945347u, 0, LOG1PF_TOLERANCE, 0},
+{474, 3465768388u, 3190881451u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{475, 3426099899u, 1118756120u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{476, 3224857113u, 3398166843u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{477, 1065798296u, 816191940u, 1060644359u, 0, LOG1PF_TOLERANCE, 0},
+{478, 3328989444u, 850266225u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{479, 3357819026u, 3148475462u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{480, 1273397670u, 901308750u, 1099549262u, 0, LOG1PF_TOLERANCE, 0},
+{481, 3424831780u, 1304806106u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{482, 1257596246u, 3420832544u, 1098802875u, 0, LOG1PF_TOLERANCE, 0},
+{483, 1051773536u, 896271348u, 1050140058u, 0, LOG1PF_TOLERANCE, 0},
+{484, 3294752507u, 3113225954u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{485, 3424848725u, 2973850350u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{486, 1090870906u, 3294742905u, 1074722584u, 0, LOG1PF_TOLERANCE, 0},
+{487, 1227582289u, 1208979668u, 1096246236u, 0, LOG1PF_TOLERANCE, 0},
+{488, 2996780709u, 852318215u, 2996780709u, 0, LOG1PF_TOLERANCE, 0},
+{489, 1272325814u, 3004311296u, 1099510676u, 0, LOG1PF_TOLERANCE, 0},
+{490, 3359508271u, 859974315u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{491, 2992737514u, 2999023943u, 2992737514u, 0, LOG1PF_TOLERANCE, 0},
+{492, 1137854355u, 3335041917u, 1086416927u, 0, LOG1PF_TOLERANCE, 0},
+{493, 3440773058u, 3204192793u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{494, 3101598400u, 3057760708u, 3101599175u, 0, LOG1PF_TOLERANCE, 0},
+{495, 3451216836u, 3347783723u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{496, 3437062994u, 3106834845u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{497, 1131196082u, 1164573183u, 1085215207u, 0, LOG1PF_TOLERANCE, 0},
+{498, 3177294154u, 1282436638u, 3177717148u, 0, LOG1PF_TOLERANCE, 0},
+{499, 3258097678u, 1305882290u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{500, 3460915348u, 1219372260u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{501, 3009547195u, 1256074626u, 3009547195u, 0, LOG1PF_TOLERANCE, 0},
+{502, 3303035472u, 3153013020u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{503, 1053698677u, 3284313107u, 1051541403u, 0, LOG1PF_TOLERANCE, 0},
+{504, 3396166221u, 1201894512u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{505, 3037541131u, 1085398440u, 3037541133u, 0, LOG1PF_TOLERANCE, 0},
+{506, 3458934263u, 1005577835u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{507, 1065761827u, 3333928591u, 1060608794u, 0, LOG1PF_TOLERANCE, 0},
+{508, 3025843188u, 820250112u, 3025843189u, 0, LOG1PF_TOLERANCE, 0},
+{509, 3017430347u, 3009209071u, 3017430348u, 0, LOG1PF_TOLERANCE, 0},
+{510, 926665223u, 3150815797u, 926665154u, 0, LOG1PF_TOLERANCE, 0},
+{511, 2970966181u, 3383521344u, 2970966181u, 0, LOG1PF_TOLERANCE, 0},
+{512, 1199816046u, 3143776186u, 1093789726u, 0, LOG1PF_TOLERANCE, 0},
+{513, 3333779015u, 952421041u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{514, 856234019u, 3091454180u, 856234019u, 0, LOG1PF_TOLERANCE, 0},
+{515, 948398145u, 3238273189u, 948397859u, 0, LOG1PF_TOLERANCE, 0},
+{516, 3054021468u, 1270257895u, 3054021477u, 0, LOG1PF_TOLERANCE, 0},
+{517, 1080781593u, 1213908300u, 1069907883u, 0, LOG1PF_TOLERANCE, 0},
+{518, 3164749613u, 3010837763u, 3164856320u, 0, LOG1PF_TOLERANCE, 0},
+{519, 2971341371u, 1014754300u, 2971341371u, 0, LOG1PF_TOLERANCE, 0},
+{520, 3235326590u, 1271705594u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{521, 3118883815u, 1051802647u, 3118887133u, 0, LOG1PF_TOLERANCE, 0},
+{522, 965378004u, 1292594138u, 965376805u, 0, LOG1PF_TOLERANCE, 0},
+{523, 3226990408u, 1110755136u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{524, 2953069847u, 3293953199u, 2953069847u, 0, LOG1PF_TOLERANCE, 0},
+{525, 3117098218u, 1122474770u, 3117100798u, 0, LOG1PF_TOLERANCE, 0},
+{526, 1283624229u, 906796922u, 1099978015u, 0, LOG1PF_TOLERANCE, 0},
+{527, 860729004u, 1163935062u, 860729004u, 0, LOG1PF_TOLERANCE, 0},
+{528, 970649315u, 1078286437u, 970646320u, 0, LOG1PF_TOLERANCE, 0},
+{529, 959776291u, 3280345347u, 959775267u, 0, LOG1PF_TOLERANCE, 0},
+{530, 3341117305u, 3294559023u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{531, 1270734970u, 3355874874u, 1099447601u, 0, LOG1PF_TOLERANCE, 0},
+{532, 3454816067u, 868771977u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{533, 917206623u, 1172710814u, 917206594u, 0, LOG1PF_TOLERANCE, 0},
+{534, 1106502045u, 1290849316u, 1079821536u, 0, LOG1PF_TOLERANCE, 0},
+{535, 1157598381u, 3309023746u, 1089729141u, 0, LOG1PF_TOLERANCE, 0},
+{536, 835476614u, 1092590501u, 835476614u, 0, LOG1PF_TOLERANCE, 0},
+{537, 3335234513u, 1002337336u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{538, 1279489061u, 1006049444u, 1099826186u, 0, LOG1PF_TOLERANCE, 0},
+{539, 807133892u, 1110992491u, 807133892u, 0, LOG1PF_TOLERANCE, 0},
+{540, 3157416480u, 1309984610u, 3157480564u, 0, LOG1PF_TOLERANCE, 0},
+{541, 3143920719u, 3131608518u, 3143946868u, 0, LOG1PF_TOLERANCE, 0},
+{542, 2995340689u, 1165036009u, 2995340689u, 0, LOG1PF_TOLERANCE, 0},
+{543, 1233171235u, 826460580u, 1096672500u, 0, LOG1PF_TOLERANCE, 0},
+{544, 1148920078u, 1007674793u, 1088239974u, 0, LOG1PF_TOLERANCE, 0},
+{545, 3064988156u, 3230867340u, 3064988186u, 0, LOG1PF_TOLERANCE, 0},
+{546, 3083619260u, 1159415661u, 3083619423u, 0, LOG1PF_TOLERANCE, 0},
+{547, 1109198803u, 1221754614u, 1080852427u, 0, LOG1PF_TOLERANCE, 0},
+{548, 3219949483u, 1056167693u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{549, 3361149474u, 3387342069u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{550, 827931800u, 1118474231u, 827931800u, 0, LOG1PF_TOLERANCE, 0},
+{551, 1207502108u, 3388073586u, 1094457350u, 0, LOG1PF_TOLERANCE, 0},
+{552, 1000014431u, 831213088u, 999990479u, 0, LOG1PF_TOLERANCE, 0},
+{553, 3161756316u, 3143659754u, 3161877152u, 0, LOG1PF_TOLERANCE, 0},
+{554, 3160728744u, 3382954009u, 3160834514u, 0, LOG1PF_TOLERANCE, 0},
+{555, 1234530539u, 1079988872u, 1096829178u, 0, LOG1PF_TOLERANCE, 0},
+{556, 1017843965u, 1193076204u, 1017728515u, 0, LOG1PF_TOLERANCE, 0},
+{557, 2965746635u, 3248194237u, 2965746635u, 0, LOG1PF_TOLERANCE, 0},
+{558, 951862956u, 1173464654u, 951862402u, 0, LOG1PF_TOLERANCE, 0},
+{559, 3306328852u, 1118701064u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{560, 1291910469u, 1211303367u, 1100335113u, 0, LOG1PF_TOLERANCE, 0},
+{561, 3027442905u, 1173894400u, 3027442907u, 0, LOG1PF_TOLERANCE, 0},
+{562, 809646928u, 3006525025u, 809646928u, 0, LOG1PF_TOLERANCE, 0},
+{563, 1131927531u, 3182962700u, 1085311442u, 0, LOG1PF_TOLERANCE, 0},
+{564, 3449879391u, 991614550u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{565, 970094304u, 3344590506u, 970091536u, 0, LOG1PF_TOLERANCE, 0},
+{566, 1125551064u, 3331248076u, 1084271396u, 0, LOG1PF_TOLERANCE, 0},
+{567, 3427296372u, 3455289118u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{568, 1198917460u, 1327195159u, 1093717869u, 0, LOG1PF_TOLERANCE, 0},
+{569, 3201603336u, 820047343u, 3205060803u, 0, LOG1PF_TOLERANCE, 0},
+{570, 3114686212u, 3476082461u, 3114687942u, 0, LOG1PF_TOLERANCE, 0},
+{571, 921940707u, 2967544056u, 921940649u, 0, LOG1PF_TOLERANCE, 0},
+{572, 1091906532u, 3011904455u, 1075144380u, 0, LOG1PF_TOLERANCE, 0},
+{573, 3393557778u, 3383396815u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{574, 1276853215u, 873199561u, 1099705395u, 0, LOG1PF_TOLERANCE, 0},
+{575, 3462778440u, 3349284325u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{576, 833132358u, 3470358002u, 833132358u, 0, LOG1PF_TOLERANCE, 0},
+{577, 3360170117u, 3048354042u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{578, 3224245428u, 3271307999u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{579, 1120124467u, 1135619937u, 1083375765u, 0, LOG1PF_TOLERANCE, 0},
+{580, 1064364381u, 3180675544u, 1059703231u, 0, LOG1PF_TOLERANCE, 0},
+{581, 1268744779u, 3328452652u, 1099356230u, 0, LOG1PF_TOLERANCE, 0},
+{582, 1165195428u, 3390323168u, 1090799895u, 0, LOG1PF_TOLERANCE, 0},
+{583, 3044092739u, 1106497311u, 3044092746u, 0, LOG1PF_TOLERANCE, 0},
+{584, 3149469534u, 1278465842u, 3149503922u, 0, LOG1PF_TOLERANCE, 0},
+{585, 3247790039u, 909788142u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{586, 3215244648u, 1083988595u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{587, 3095275931u, 989153382u, 3095276436u, 0, LOG1PF_TOLERANCE, 0},
+{588, 3059688264u, 1117455718u, 3059688288u, 0, LOG1PF_TOLERANCE, 0},
+{589, 2990022513u, 1061714285u, 2990022513u, 0, LOG1PF_TOLERANCE, 0},
+{590, 1212717473u, 837873779u, 1094957442u, 0, LOG1PF_TOLERANCE, 0},
+{591, 3275973009u, 3450721670u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{592, 3028857014u, 3188853813u, 3028857015u, 0, LOG1PF_TOLERANCE, 0},
+{593, 3391162308u, 1291220039u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{594, 1044867873u, 3369493273u, 1043739628u, 0, LOG1PF_TOLERANCE, 0},
+{595, 1089986803u, 3462160118u, 1074449069u, 0, LOG1PF_TOLERANCE, 0},
+{596, 1296314700u, 2957454177u, 1100554982u, 0, LOG1PF_TOLERANCE, 0},
+{597, 1251462432u, 3171021770u, 1098299243u, 0, LOG1PF_TOLERANCE, 0},
+{598, 3485236902u, 980772835u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{599, 3262169538u, 1268270462u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{600, 3080852256u, 994641495u, 3080852359u, 0, LOG1PF_TOLERANCE, 0},
+{601, 1022211242u, 922124181u, 1021989505u, 0, LOG1PF_TOLERANCE, 0},
+{602, 884661176u, 2985540645u, 884661174u, 0, LOG1PF_TOLERANCE, 0},
+{603, 3071422941u, 3271100396u, 3071422983u, 0, LOG1PF_TOLERANCE, 0},
+{604, 989762529u, 3362011135u, 989746348u, 0, LOG1PF_TOLERANCE, 0},
+{605, 1295475718u, 3212305413u, 1100519604u, 0, LOG1PF_TOLERANCE, 0},
+{606, 1002632518u, 3330388441u, 1002594659u, 0, LOG1PF_TOLERANCE, 0},
+{607, 3404372005u, 3450484255u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{608, 3158912530u, 3105501826u, 3158994146u, 0, LOG1PF_TOLERANCE, 0},
+{609, 2987029985u, 1218447414u, 2987029985u, 0, LOG1PF_TOLERANCE, 0},
+{610, 1125800069u, 3256265749u, 1084323326u, 0, LOG1PF_TOLERANCE, 0},
+{611, 3138037576u, 3103365227u, 3138047202u, 0, LOG1PF_TOLERANCE, 0},
+{612, 3108384823u, 1300246663u, 3108386051u, 0, LOG1PF_TOLERANCE, 0},
+{613, 999985470u, 3409354318u, 999961654u, 0, LOG1PF_TOLERANCE, 0},
+{614, 1189421739u, 1056599002u, 1092916481u, 0, LOG1PF_TOLERANCE, 0},
+{615, 3075182644u, 3144159778u, 3075182725u, 0, LOG1PF_TOLERANCE, 0},
+{616, 3028099649u, 3391513557u, 3028099651u, 0, LOG1PF_TOLERANCE, 0},
+{617, 837703706u, 3467473756u, 837703706u, 0, LOG1PF_TOLERANCE, 0},
+{618, 3132541814u, 3444521949u, 3132550175u, 0, LOG1PF_TOLERANCE, 0},
+{619, 1164046161u, 3440635788u, 1090721533u, 0, LOG1PF_TOLERANCE, 0},
+{620, 1292596266u, 3116569667u, 1100376009u, 0, LOG1PF_TOLERANCE, 0},
+{621, 3469748379u, 3412765608u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{622, 2968771722u, 3117531540u, 2968771722u, 0, LOG1PF_TOLERANCE, 0},
+{623, 1314644642u, 3123051784u, 1101341573u, 0, LOG1PF_TOLERANCE, 0},
+{624, 3399813173u, 828743798u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{625, 948775569u, 3485444126u, 948775258u, 0, LOG1PF_TOLERANCE, 0},
+{626, 1034611395u, 882288581u, 1034168472u, 0, LOG1PF_TOLERANCE, 0},
+{627, 3489122735u, 3372450889u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{628, 1181604787u, 3363067409u, 1092228873u, 0, LOG1PF_TOLERANCE, 0},
+{629, 3059042077u, 3204983963u, 3059042099u, 0, LOG1PF_TOLERANCE, 0},
+{630, 1043691622u, 3402603223u, 1042747814u, 0, LOG1PF_TOLERANCE, 0},
+{631, 1314588083u, 856187848u, 1101339511u, 0, LOG1PF_TOLERANCE, 0},
+{632, 3141533334u, 3010142974u, 3141551801u, 0, LOG1PF_TOLERANCE, 0},
+{633, 3013416703u, 3442525943u, 3013416703u, 0, LOG1PF_TOLERANCE, 0},
+{634, 861266716u, 822172554u, 861266716u, 0, LOG1PF_TOLERANCE, 0},
+{635, 3157534378u, 3451674717u, 3157599767u, 0, LOG1PF_TOLERANCE, 0},
+{636, 2976169000u, 3033697153u, 2976169000u, 0, LOG1PF_TOLERANCE, 0},
+{637, 3400949680u, 3073750220u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{638, 3365581801u, 1175843167u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{639, 1110424755u, 3011308654u, 1081313385u, 0, LOG1PF_TOLERANCE, 0},
+{640, 3189917167u, 927278934u, 3190860959u, 0, LOG1PF_TOLERANCE, 0},
+{641, 969804941u, 3355439348u, 969802288u, 0, LOG1PF_TOLERANCE, 0},
+{642, 1139120919u, 3270515074u, 1086600903u, 0, LOG1PF_TOLERANCE, 0},
+{643, 816789141u, 3325199970u, 816789141u, 0, LOG1PF_TOLERANCE, 0},
+{644, 934308144u, 3118191228u, 934308022u, 0, LOG1PF_TOLERANCE, 0},
+{645, 1220524226u, 1152648002u, 1095636790u, 0, LOG1PF_TOLERANCE, 0},
+{646, 3162548604u, 3461790298u, 3162615521u, 0, LOG1PF_TOLERANCE, 0},
+{647, 3382391700u, 3296962745u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{648, 1156767533u, 1088986462u, 1089622486u, 0, LOG1PF_TOLERANCE, 0},
+{649, 3079222483u, 3312324949u, 3079222557u, 0, LOG1PF_TOLERANCE, 0},
+{650, 994934087u, 967678094u, 994913018u, 0, LOG1PF_TOLERANCE, 0},
+{651, 840906467u, 3156591981u, 840906467u, 0, LOG1PF_TOLERANCE, 0},
+{652, 3185240099u, 1123403720u, 3186066249u, 0, LOG1PF_TOLERANCE, 0},
+{653, 870026344u, 1093936408u, 870026343u, 0, LOG1PF_TOLERANCE, 0},
+{654, 2996887005u, 3287317742u, 2996887005u, 0, LOG1PF_TOLERANCE, 0},
+{655, 3479873563u, 1246277393u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{656, 3424264117u, 3434026174u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{657, 3228365887u, 1216775310u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{658, 1035909900u, 1249532942u, 1035361637u, 0, LOG1PF_TOLERANCE, 0},
+{659, 2989750574u, 1274271338u, 2989750574u, 0, LOG1PF_TOLERANCE, 0},
+{660, 3024951184u, 1247632131u, 3024951185u, 0, LOG1PF_TOLERANCE, 0},
+{661, 1212129651u, 3017366784u, 1094909477u, 0, LOG1PF_TOLERANCE, 0},
+{662, 3125775254u, 955826310u, 3125780641u, 0, LOG1PF_TOLERANCE, 0},
+{663, 1037464105u, 3121544932u, 1036775952u, 0, LOG1PF_TOLERANCE, 0},
+{664, 1311706596u, 1254918706u, 1101222030u, 0, LOG1PF_TOLERANCE, 0},
+{665, 918212457u, 1017468331u, 918212423u, 0, LOG1PF_TOLERANCE, 0},
+{666, 1337315179u, 3461361185u, 1102332110u, 0, LOG1PF_TOLERANCE, 0},
+{667, 1131358407u, 3325958870u, 1085236948u, 0, LOG1PF_TOLERANCE, 0},
+{668, 1156517523u, 3343716230u, 1089589301u, 0, LOG1PF_TOLERANCE, 0},
+{669, 3210802820u, 3207408574u, 3221686828u, 0, LOG1PF_TOLERANCE, 0},
+{670, 3337499209u, 1226297264u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{671, 3468429030u, 3253874001u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{672, 3253515800u, 1189005947u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{673, 3055299953u, 3047908678u, 3055299965u, 0, LOG1PF_TOLERANCE, 0},
+{674, 959956547u, 876324728u, 959955492u, 0, LOG1PF_TOLERANCE, 0},
+{675, 3425290480u, 1139193797u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{676, 1039917375u, 1122740999u, 1038978517u, 0, LOG1PF_TOLERANCE, 0},
+{677, 3220979495u, 3429223871u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{678, 1311016004u, 3334899880u, 1101189480u, 0, LOG1PF_TOLERANCE, 0},
+{679, 2995451172u, 2974546424u, 2995451172u, 0, LOG1PF_TOLERANCE, 0},
+{680, 1128016396u, 1105151547u, 1084736386u, 0, LOG1PF_TOLERANCE, 0},
+{681, 3210335769u, 3100646155u, 3220414236u, 0, LOG1PF_TOLERANCE, 0},
+{682, 3022705759u, 3404762495u, 3022705760u, 0, LOG1PF_TOLERANCE, 0},
+{683, 1206054701u, 826010009u, 1094359967u, 0, LOG1PF_TOLERANCE, 0},
+{684, 3144504834u, 1162227076u, 3144533066u, 0, LOG1PF_TOLERANCE, 0},
+{685, 822524010u, 970745811u, 822524010u, 0, LOG1PF_TOLERANCE, 0},
+{686, 3016981460u, 3313826904u, 3016981461u, 0, LOG1PF_TOLERANCE, 0},
+{687, 1213609983u, 919983950u, 1095026317u, 0, LOG1PF_TOLERANCE, 0},
+{688, 1246902946u, 3064047808u, 1097913869u, 0, LOG1PF_TOLERANCE, 0},
+{689, 995850843u, 1332031130u, 995826811u, 0, LOG1PF_TOLERANCE, 0},
+{690, 3362082828u, 3374056268u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{691, 1029480631u, 3047777170u, 1029104660u, 0, LOG1PF_TOLERANCE, 0},
+{692, 3153568584u, 3106514232u, 3153630219u, 0, LOG1PF_TOLERANCE, 0},
+{693, 3384988527u, 3109485565u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{694, 1317696241u, 870681806u, 1101462444u, 0, LOG1PF_TOLERANCE, 0},
+{695, 3235395924u, 1132055244u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{696, 3341877624u, 2969495570u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{697, 1228636133u, 886552820u, 1096340256u, 0, LOG1PF_TOLERANCE, 0},
+{698, 3161654634u, 3335899347u, 3161773934u, 0, LOG1PF_TOLERANCE, 0},
+{699, 3162655243u, 3307203982u, 3162723873u, 0, LOG1PF_TOLERANCE, 0},
+{700, 1207246237u, 859223639u, 1094440780u, 0, LOG1PF_TOLERANCE, 0},
+{701, 1165476654u, 3350219111u, 1090818211u, 0, LOG1PF_TOLERANCE, 0},
+{702, 1215278023u, 3019755242u, 1095144039u, 0, LOG1PF_TOLERANCE, 0},
+{703, 1017239798u, 3438501281u, 1017136379u, 0, LOG1PF_TOLERANCE, 0},
+{704, 1149651309u, 970030475u, 1088380679u, 0, LOG1PF_TOLERANCE, 0},
+{705, 1111943722u, 3122211334u, 1081822114u, 0, LOG1PF_TOLERANCE, 0},
+{706, 856374764u, 1158358450u, 856374764u, 0, LOG1PF_TOLERANCE, 0},
+{707, 1189849849u, 3382739134u, 1092945955u, 0, LOG1PF_TOLERANCE, 0},
+{708, 3204848496u, 3141519085u, 3208508934u, 0, LOG1PF_TOLERANCE, 0},
+{709, 1249758327u, 3104759211u, 1098111362u, 0, LOG1PF_TOLERANCE, 0},
+{710, 3092982276u, 3445282331u, 3092982651u, 0, LOG1PF_TOLERANCE, 0},
+{711, 1168098747u, 1316854744u, 1091084937u, 0, LOG1PF_TOLERANCE, 0},
+{712, 892549317u, 1179637545u, 892549313u, 0, LOG1PF_TOLERANCE, 0},
+{713, 3301009024u, 3406174560u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{714, 3233089227u, 1212652543u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{715, 3218245284u, 1238873830u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{716, 3215981890u, 3240474694u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{717, 1266687209u, 3092038122u, 1099241312u, 0, LOG1PF_TOLERANCE, 0},
+{718, 825230580u, 3410090781u, 825230580u, 0, LOG1PF_TOLERANCE, 0},
+{719, 3487959775u, 3331372071u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{720, 943645710u, 852875779u, 943645425u, 0, LOG1PF_TOLERANCE, 0},
+{721, 3345065699u, 3282620725u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{722, 935847271u, 1067255804u, 935847115u, 0, LOG1PF_TOLERANCE, 0},
+{723, 3410336089u, 1111437780u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{724, 3082940740u, 1336840432u, 3082940887u, 0, LOG1PF_TOLERANCE, 0},
+{725, 1141063391u, 1168908072u, 1086881043u, 0, LOG1PF_TOLERANCE, 0},
+{726, 3059263153u, 3067795684u, 3059263176u, 0, LOG1PF_TOLERANCE, 0},
+{727, 849450947u, 3289799763u, 849450947u, 0, LOG1PF_TOLERANCE, 0},
+{728, 3353679791u, 897158391u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{729, 1001823878u, 1016826861u, 1001790652u, 0, LOG1PF_TOLERANCE, 0},
+{730, 1009130212u, 1004302940u, 1009075400u, 0, LOG1PF_TOLERANCE, 0},
+{731, 3367127535u, 943136342u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{732, 1032920919u, 3449126417u, 1032599069u, 0, LOG1PF_TOLERANCE, 0},
+{733, 3281952870u, 3147012185u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{734, 1237868497u, 3048281802u, 1097136709u, 0, LOG1PF_TOLERANCE, 0},
+{735, 1153753924u, 3322269242u, 1089182546u, 0, LOG1PF_TOLERANCE, 0},
+{736, 1120261759u, 892210998u, 1083397865u, 0, LOG1PF_TOLERANCE, 0},
+{737, 3226328360u, 3366432856u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{738, 3349595986u, 3251588707u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{739, 3166889490u, 3306023523u, 3167043886u, 0, LOG1PF_TOLERANCE, 0},
+{740, 1087750238u, 1099325523u, 1073903660u, 0, LOG1PF_TOLERANCE, 0},
+{741, 3121620061u, 3359488363u, 3121622659u, 0, LOG1PF_TOLERANCE, 0},
+{742, 1066116543u, 3072159933u, 1060951551u, 0, LOG1PF_TOLERANCE, 0},
+{743, 3210898034u, 2981803389u, 3221887908u, 0, LOG1PF_TOLERANCE, 0},
+{744, 3051923237u, 3364074347u, 3051923250u, 0, LOG1PF_TOLERANCE, 0},
+{745, 1030612298u, 3345396001u, 1030176344u, 0, LOG1PF_TOLERANCE, 0},
+{746, 3015019212u, 989161453u, 3015019213u, 0, LOG1PF_TOLERANCE, 0},
+{747, 1186234578u, 858134374u, 1092666337u, 0, LOG1PF_TOLERANCE, 0},
+{748, 1331680743u, 1009396165u, 1102077726u, 0, LOG1PF_TOLERANCE, 0},
+{749, 847857044u, 894661023u, 847857044u, 0, LOG1PF_TOLERANCE, 0},
+{750, 3060774997u, 1326067357u, 3060775025u, 0, LOG1PF_TOLERANCE, 0},
+{751, 887589411u, 1292305693u, 887589408u, 0, LOG1PF_TOLERANCE, 0},
+{752, 1045232522u, 3234993273u, 1044044147u, 0, LOG1PF_TOLERANCE, 0},
+{753, 3119858470u, 962515365u, 3119862231u, 0, LOG1PF_TOLERANCE, 0},
+{754, 3002873011u, 3188748064u, 3002873011u, 0, LOG1PF_TOLERANCE, 0},
+{755, 3349432725u, 928848003u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{756, 912423027u, 3184646319u, 912423002u, 0, LOG1PF_TOLERANCE, 0},
+{757, 3228795133u, 3273940030u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{758, 3194674746u, 3112269709u, 3196413254u, 0, LOG1PF_TOLERANCE, 0},
+{759, 3296784303u, 3276182352u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{760, 965402291u, 3107104376u, 965401086u, 0, LOG1PF_TOLERANCE, 0},
+{761, 3388153589u, 3426245389u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{762, 1133410485u, 3329658993u, 1085602881u, 0, LOG1PF_TOLERANCE, 0},
+{763, 3136790322u, 1088652637u, 3136805670u, 0, LOG1PF_TOLERANCE, 0},
+{764, 3369970587u, 959121458u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{765, 1270451568u, 928393353u, 1099435522u, 0, LOG1PF_TOLERANCE, 0},
+{766, 989498922u, 3088358419u, 989483247u, 0, LOG1PF_TOLERANCE, 0},
+{767, 1280215674u, 3148135875u, 1099855114u, 0, LOG1PF_TOLERANCE, 0},
+{768, 1171873518u, 954709738u, 1091407692u, 0, LOG1PF_TOLERANCE, 0},
+{769, 3298258100u, 935525182u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{770, 3415208824u, 822843236u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{771, 1001897182u, 3191875320u, 1001863548u, 0, LOG1PF_TOLERANCE, 0},
+{772, 3152777939u, 3245830463u, 3152833701u, 0, LOG1PF_TOLERANCE, 0},
+{773, 985903305u, 3333087577u, 985893741u, 0, LOG1PF_TOLERANCE, 0},
+{774, 3357328848u, 859306298u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{775, 2967395608u, 3077307650u, 2967395608u, 0, LOG1PF_TOLERANCE, 0},
+{776, 982612185u, 923582663u, 982606898u, 0, LOG1PF_TOLERANCE, 0},
+{777, 3267868136u, 1208301947u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{778, 3319048157u, 1172271145u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{779, 1144755661u, 860947435u, 1087628869u, 0, LOG1PF_TOLERANCE, 0},
+{780, 840456845u, 1051585760u, 840456845u, 0, LOG1PF_TOLERANCE, 0},
+{781, 898467286u, 839254959u, 898467281u, 0, LOG1PF_TOLERANCE, 0},
+{782, 3301461672u, 1233693827u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{783, 3364525678u, 3089849671u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{784, 871130681u, 905123007u, 871130680u, 0, LOG1PF_TOLERANCE, 0},
+{785, 931441127u, 1133424555u, 931441058u, 0, LOG1PF_TOLERANCE, 0},
+{786, 3146660041u, 3143695961u, 3146680327u, 0, LOG1PF_TOLERANCE, 0},
+{787, 3467121799u, 3023584354u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{788, 1151257041u, 3084216427u, 1088731848u, 0, LOG1PF_TOLERANCE, 0},
+{789, 3097873255u, 3219266640u, 3097873685u, 0, LOG1PF_TOLERANCE, 0},
+{790, 3130670309u, 3192399254u, 3130676261u, 0, LOG1PF_TOLERANCE, 0},
+{791, 1017573824u, 3130901062u, 1017463834u, 0, LOG1PF_TOLERANCE, 0},
+{792, 1258369714u, 3462258576u, 1098857003u, 0, LOG1PF_TOLERANCE, 0},
+{793, 1216602683u, 3371396332u, 1095244493u, 0, LOG1PF_TOLERANCE, 0},
+{794, 2976429847u, 959973239u, 2976429847u, 0, LOG1PF_TOLERANCE, 0},
+{795, 3297265739u, 1214184410u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{796, 1071940738u, 3311731012u, 1065557507u, 0, LOG1PF_TOLERANCE, 0},
+{797, 922601356u, 3337171870u, 922601293u, 0, LOG1PF_TOLERANCE, 0},
+{798, 3462285635u, 3444030332u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{799, 3357177805u, 1085464241u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{800, 3049120080u, 900832851u, 3049120089u, 0, LOG1PF_TOLERANCE, 0},
+{801, 1153863660u, 1011991342u, 1089200295u, 0, LOG1PF_TOLERANCE, 0},
+{802, 3034243695u, 917098003u, 3034243698u, 0, LOG1PF_TOLERANCE, 0},
+{803, 809294662u, 3266461458u, 809294662u, 0, LOG1PF_TOLERANCE, 0},
+{804, 822231182u, 3393408718u, 822231182u, 0, LOG1PF_TOLERANCE, 0},
+{805, 845772797u, 3341109215u, 845772797u, 0, LOG1PF_TOLERANCE, 0},
+{806, 1249365132u, 3278686216u, 1098086276u, 0, LOG1PF_TOLERANCE, 0},
+{807, 3046215730u, 3211219980u, 3046215735u, 0, LOG1PF_TOLERANCE, 0},
+{808, 3047251716u, 1090787353u, 3047251722u, 0, LOG1PF_TOLERANCE, 0},
+{809, 2980866154u, 1147012796u, 2980866154u, 0, LOG1PF_TOLERANCE, 0},
+{810, 3131219358u, 3471261157u, 3131225974u, 0, LOG1PF_TOLERANCE, 0},
+{811, 3222096285u, 1198013705u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{812, 1297708818u, 3079166173u, 1100608953u, 0, LOG1PF_TOLERANCE, 0},
+{813, 3345532722u, 3383708463u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{814, 3418753236u, 3481843070u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{815, 1277417964u, 3487506626u, 1099733721u, 0, LOG1PF_TOLERANCE, 0},
+{816, 987577257u, 1152077087u, 987565035u, 0, LOG1PF_TOLERANCE, 0},
+{817, 3161606610u, 3190282989u, 3161725188u, 0, LOG1PF_TOLERANCE, 0},
+{818, 849056171u, 910674398u, 849056171u, 0, LOG1PF_TOLERANCE, 0},
+{819, 888030585u, 3062367380u, 888030582u, 0, LOG1PF_TOLERANCE, 0},
+{820, 1043442869u, 3311393817u, 1042536175u, 0, LOG1PF_TOLERANCE, 0},
+{821, 851189486u, 3007588581u, 851189486u, 0, LOG1PF_TOLERANCE, 0},
+{822, 3320923228u, 3464544249u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{823, 1337400405u, 3488844154u, 1102335847u, 0, LOG1PF_TOLERANCE, 0},
+{824, 2964339884u, 3186563447u, 2964339884u, 0, LOG1PF_TOLERANCE, 0},
+{825, 3400348640u, 3129868490u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{826, 1250249095u, 1069023744u, 1098162859u, 0, LOG1PF_TOLERANCE, 0},
+{827, 3284411233u, 1173613526u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{828, 3020883322u, 2953622587u, 3020883323u, 0, LOG1PF_TOLERANCE, 0},
+{829, 1215968622u, 3469884568u, 1095189158u, 0, LOG1PF_TOLERANCE, 0},
+{830, 3202319550u, 819117302u, 3205684632u, 0, LOG1PF_TOLERANCE, 0},
+{831, 3061638260u, 3116222327u, 3061638291u, 0, LOG1PF_TOLERANCE, 0},
+{832, 1025404104u, 1066370251u, 1025208348u, 0, LOG1PF_TOLERANCE, 0},
+{833, 3138086437u, 3195983510u, 3138096167u, 0, LOG1PF_TOLERANCE, 0},
+{834, 3091024506u, 3456196859u, 3091024786u, 0, LOG1PF_TOLERANCE, 0},
+{835, 3362748242u, 3369843597u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{836, 3099671635u, 3218383623u, 3099672218u, 0, LOG1PF_TOLERANCE, 0},
+{837, 3068014841u, 2978226656u, 3068014889u, 0, LOG1PF_TOLERANCE, 0},
+{838, 1252237719u, 1121169249u, 1098377932u, 0, LOG1PF_TOLERANCE, 0},
+{839, 3327895594u, 1224511805u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{840, 3082454432u, 889268276u, 3082454568u, 0, LOG1PF_TOLERANCE, 0},
+{841, 3396161504u, 1182798837u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{842, 1099710167u, 887180181u, 1077598184u, 0, LOG1PF_TOLERANCE, 0},
+{843, 1157186482u, 1288722647u, 1089676944u, 0, LOG1PF_TOLERANCE, 0},
+{844, 1282110851u, 3176633124u, 1099923816u, 0, LOG1PF_TOLERANCE, 0},
+{845, 3477008113u, 1331845018u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{846, 3292127294u, 3409957764u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{847, 1123357102u, 3281307320u, 1083842800u, 0, LOG1PF_TOLERANCE, 0},
+{848, 1106837025u, 3088080674u, 1079905799u, 0, LOG1PF_TOLERANCE, 0},
+{849, 1049949008u, 1130799489u, 1048755658u, 0, LOG1PF_TOLERANCE, 0},
+{850, 1253017688u, 942062372u, 1098451552u, 0, LOG1PF_TOLERANCE, 0},
+{851, 1108543194u, 3281299199u, 1080583416u, 0, LOG1PF_TOLERANCE, 0},
+{852, 3087985411u, 1238341456u, 3087985571u, 0, LOG1PF_TOLERANCE, 0},
+{853, 3002187365u, 1073809054u, 3002187365u, 0, LOG1PF_TOLERANCE, 0},
+{854, 3163283126u, 1328636961u, 3163362283u, 0, LOG1PF_TOLERANCE, 0},
+{855, 1160162706u, 1264067367u, 1090286314u, 0, LOG1PF_TOLERANCE, 0},
+{856, 3305715025u, 3017496063u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{857, 1266928623u, 811778614u, 1099256175u, 0, LOG1PF_TOLERANCE, 0},
+{858, 3025340297u, 1193925540u, 3025340298u, 0, LOG1PF_TOLERANCE, 0},
+{859, 3438080027u, 3107114149u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{860, 3344574751u, 3111270744u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{861, 1152416724u, 962669179u, 1088953260u, 0, LOG1PF_TOLERANCE, 0},
+{862, 1218239308u, 1126238113u, 1095426328u, 0, LOG1PF_TOLERANCE, 0},
+{863, 3263310567u, 1030748197u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{864, 835770216u, 865469272u, 835770216u, 0, LOG1PF_TOLERANCE, 0},
+{865, 3041998669u, 1160635263u, 3041998674u, 0, LOG1PF_TOLERANCE, 0},
+{866, 1000313118u, 2980130729u, 1000287739u, 0, LOG1PF_TOLERANCE, 0},
+{867, 972485427u, 1124312043u, 972481617u, 0, LOG1PF_TOLERANCE, 0},
+{868, 3290264612u, 1124703898u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{869, 869072657u, 3150369767u, 869072656u, 0, LOG1PF_TOLERANCE, 0},
+{870, 3222106584u, 1183748648u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{871, 1278946388u, 825129857u, 1099803490u, 0, LOG1PF_TOLERANCE, 0},
+{872, 947914771u, 3181847068u, 947914515u, 0, LOG1PF_TOLERANCE, 0},
+{873, 3167730654u, 3195765940u, 3167906242u, 0, LOG1PF_TOLERANCE, 0},
+{874, 1098530298u, 3255870890u, 1077146833u, 0, LOG1PF_TOLERANCE, 0},
+{875, 3232726036u, 871038882u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{876, 1297190916u, 811863044u, 1100589546u, 0, LOG1PF_TOLERANCE, 0},
+{877, 1277649137u, 961171401u, 1099744888u, 0, LOG1PF_TOLERANCE, 0},
+{878, 3203377685u, 1306427476u, 3206650927u, 0, LOG1PF_TOLERANCE, 0},
+{879, 3090306474u, 3124785016u, 3090306722u, 0, LOG1PF_TOLERANCE, 0},
+{880, 3244032016u, 3045313345u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{881, 3033122376u, 3049877065u, 3033122378u, 0, LOG1PF_TOLERANCE, 0},
+{882, 3019221802u, 3329183205u, 3019221803u, 0, LOG1PF_TOLERANCE, 0},
+{883, 1096155623u, 1256423752u, 1076533229u, 0, LOG1PF_TOLERANCE, 0},
+{884, 873151908u, 3246562559u, 873151907u, 0, LOG1PF_TOLERANCE, 0},
+{885, 3238729605u, 1298769842u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{886, 3317196817u, 989537151u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{887, 3374748510u, 834161190u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{888, 3345634950u, 959901149u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{889, 3189860276u, 883598767u, 3190793389u, 0, LOG1PF_TOLERANCE, 0},
+{890, 887311687u, 1175312255u, 887311684u, 0, LOG1PF_TOLERANCE, 0},
+{891, 3396917283u, 3066326686u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{892, 3317032737u, 3143803722u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{893, 1200051436u, 1163802508u, 1093817931u, 0, LOG1PF_TOLERANCE, 0},
+{894, 3105291012u, 1194385202u, 3105291724u, 0, LOG1PF_TOLERANCE, 0},
+{895, 1306520561u, 957302464u, 1100987701u, 0, LOG1PF_TOLERANCE, 0},
+{896, 1314936356u, 2985592532u, 1101352081u, 0, LOG1PF_TOLERANCE, 0},
+{897, 3475052219u, 1284049853u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{898, 3085636260u, 1107682820u, 3085636476u, 0, LOG1PF_TOLERANCE, 0},
+{899, 2995058661u, 822977912u, 2995058661u, 0, LOG1PF_TOLERANCE, 0},
+{900, 3393227708u, 3271879112u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{901, 2983919425u, 3341426744u, 2983919425u, 0, LOG1PF_TOLERANCE, 0},
+{902, 3182540197u, 852580839u, 3183076763u, 0, LOG1PF_TOLERANCE, 0},
+{903, 3349005404u, 3080993030u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{904, 3154720153u, 3443720494u, 3154758017u, 0, LOG1PF_TOLERANCE, 0},
+{905, 1262863321u, 1219003129u, 1099105532u, 0, LOG1PF_TOLERANCE, 0},
+{906, 882902102u, 1224362550u, 882902100u, 0, LOG1PF_TOLERANCE, 0},
+{907, 2995633678u, 828113666u, 2995633678u, 0, LOG1PF_TOLERANCE, 0},
+{908, 1053387478u, 3184880021u, 1051318804u, 0, LOG1PF_TOLERANCE, 0},
+{909, 3387653691u, 3347783852u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{910, 3136364836u, 1018492227u, 3136379390u, 0, LOG1PF_TOLERANCE, 0},
+{911, 808412264u, 941158192u, 808412264u, 0, LOG1PF_TOLERANCE, 0},
+{912, 1338680611u, 1166078045u, 1102388991u, 0, LOG1PF_TOLERANCE, 0},
+{913, 1112891928u, 3074730425u, 1082111001u, 0, LOG1PF_TOLERANCE, 0},
+{914, 893449284u, 1052877339u, 893449279u, 0, LOG1PF_TOLERANCE, 0},
+{915, 892311459u, 1097338393u, 892311455u, 0, LOG1PF_TOLERANCE, 0},
+{916, 3105373037u, 3246705916u, 3105373761u, 0, LOG1PF_TOLERANCE, 0},
+{917, 1190105283u, 3033907262u, 1092963155u, 0, LOG1PF_TOLERANCE, 0},
+{918, 1011225926u, 1180485180u, 1011148079u, 0, LOG1PF_TOLERANCE, 0},
+{919, 1043025031u, 987068973u, 1042179168u, 0, LOG1PF_TOLERANCE, 0},
+{920, 3410531037u, 2953541915u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{921, 3125834184u, 896953754u, 3125839618u, 0, LOG1PF_TOLERANCE, 0},
+{922, 902318189u, 849277289u, 902318179u, 0, LOG1PF_TOLERANCE, 0},
+{923, 835377647u, 3441354730u, 835377647u, 0, LOG1PF_TOLERANCE, 0},
+{924, 2976308307u, 1286944060u, 2976308307u, 0, LOG1PF_TOLERANCE, 0},
+{925, 3213624815u, 2987148017u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{926, 1120888322u, 1086209113u, 1083495870u, 0, LOG1PF_TOLERANCE, 0},
+{927, 1315217243u, 3396371713u, 1101362003u, 0, LOG1PF_TOLERANCE, 0},
+{928, 3137758475u, 1039403054u, 3137767518u, 0, LOG1PF_TOLERANCE, 0},
+{929, 1040617590u, 1034835971u, 1039981373u, 0, LOG1PF_TOLERANCE, 0},
+{930, 955384253u, 3344785562u, 955383338u, 0, LOG1PF_TOLERANCE, 0},
+{931, 853063496u, 3317415965u, 853063496u, 0, LOG1PF_TOLERANCE, 0},
+{932, 823111402u, 877253523u, 823111402u, 0, LOG1PF_TOLERANCE, 0},
+{933, 3061417900u, 1172208065u, 3061417930u, 0, LOG1PF_TOLERANCE, 0},
+{934, 904255535u, 1019967545u, 904255522u, 0, LOG1PF_TOLERANCE, 0},
+{935, 1022984119u, 3113891410u, 1022740063u, 0, LOG1PF_TOLERANCE, 0},
+{936, 997362368u, 3112875428u, 997333027u, 0, LOG1PF_TOLERANCE, 0},
+{937, 900933520u, 1100589187u, 900933512u, 0, LOG1PF_TOLERANCE, 0},
+{938, 1168623062u, 1143306482u, 1091136161u, 0, LOG1PF_TOLERANCE, 0},
+{939, 878737490u, 3269908326u, 878737488u, 0, LOG1PF_TOLERANCE, 0},
+{940, 1039827284u, 1072928888u, 1038898269u, 0, LOG1PF_TOLERANCE, 0},
+{941, 1021564080u, 1064468397u, 1021360224u, 0, LOG1PF_TOLERANCE, 0},
+{942, 3458669745u, 3033299853u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{943, 3327516316u, 3405380971u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{944, 1040711112u, 3229444200u, 1040146591u, 0, LOG1PF_TOLERANCE, 0},
+{945, 1134528351u, 3365952513u, 1085839247u, 0, LOG1PF_TOLERANCE, 0},
+{946, 3039884464u, 1170612785u, 3039884468u, 0, LOG1PF_TOLERANCE, 0},
+{947, 3414352838u, 3350285760u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{948, 1133689539u, 1067460093u, 1085664427u, 0, LOG1PF_TOLERANCE, 0},
+{949, 3455688478u, 3333091960u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{950, 1137634874u, 1137038869u, 1086383339u, 0, LOG1PF_TOLERANCE, 0},
+{951, 3415502662u, 955510692u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{952, 954999730u, 969618597u, 954998859u, 0, LOG1PF_TOLERANCE, 0},
+{953, 1066157309u, 3241712664u, 1060990498u, 0, LOG1PF_TOLERANCE, 0},
+{954, 3436353675u, 1174967495u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{955, 940437609u, 860372396u, 940437452u, 0, LOG1PF_TOLERANCE, 0},
+{956, 3108347547u, 3434003435u, 3108348768u, 0, LOG1PF_TOLERANCE, 0},
+{957, 3064200154u, 3158080507u, 3064200180u, 0, LOG1PF_TOLERANCE, 0},
+{958, 1023889593u, 2979304683u, 1023746259u, 0, LOG1PF_TOLERANCE, 0},
+{959, 3272661536u, 3461799138u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{960, 1170245333u, 1233406410u, 1091280446u, 0, LOG1PF_TOLERANCE, 0},
+{961, 1219052056u, 3369557946u, 1095506117u, 0, LOG1PF_TOLERANCE, 0},
+{962, 3318983619u, 3259663338u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{963, 3372118621u, 837597103u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{964, 3146190320u, 889646054u, 3146208610u, 0, LOG1PF_TOLERANCE, 0},
+{965, 1299683827u, 966031619u, 1100676996u, 0, LOG1PF_TOLERANCE, 0},
+{966, 3190796331u, 1320011850u, 3191913897u, 0, LOG1PF_TOLERANCE, 0},
+{967, 2965838479u, 805822032u, 2965838479u, 0, LOG1PF_TOLERANCE, 0},
+{968, 3086068902u, 3484245751u, 3086069130u, 0, LOG1PF_TOLERANCE, 0},
+{969, 3064155399u, 3176569312u, 3064155425u, 0, LOG1PF_TOLERANCE, 0},
+{970, 836858201u, 3132995403u, 836858201u, 0, LOG1PF_TOLERANCE, 0},
+{971, 3040314717u, 1071290674u, 3040314721u, 0, LOG1PF_TOLERANCE, 0},
+{972, 3257224022u, 3361778245u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{973, 1229268598u, 1066965677u, 1096392883u, 0, LOG1PF_TOLERANCE, 0},
+{974, 3184078812u, 871003709u, 3184772236u, 0, LOG1PF_TOLERANCE, 0},
+{975, 871255076u, 3446104825u, 871255075u, 0, LOG1PF_TOLERANCE, 0},
+{976, 1086717248u, 3423795374u, 1073509432u, 0, LOG1PF_TOLERANCE, 0},
+{977, 3434884607u, 3029593823u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{978, 3464955606u, 1017987696u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{979, 1025278524u, 3121856207u, 1025087417u, 0, LOG1PF_TOLERANCE, 0},
+{980, 1242829722u, 3233935671u, 1097546377u, 0, LOG1PF_TOLERANCE, 0},
+{981, 3075149137u, 1117325737u, 3075149218u, 0, LOG1PF_TOLERANCE, 0},
+{982, 1200927971u, 1317167489u, 1093916754u, 0, LOG1PF_TOLERANCE, 0},
+{983, 3326858092u, 3452602832u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{984, 2995203347u, 1021818696u, 2995203347u, 0, LOG1PF_TOLERANCE, 0},
+{985, 1246019790u, 850632217u, 1097844403u, 0, LOG1PF_TOLERANCE, 0},
+{986, 3184801644u, 1137974313u, 3185576215u, 0, LOG1PF_TOLERANCE, 0},
+{987, 1136052740u, 3244616020u, 1086123854u, 0, LOG1PF_TOLERANCE, 0},
+{988, 1069009211u, 3002507482u, 1063512537u, 0, LOG1PF_TOLERANCE, 0},
+{989, 1015670780u, 1101217251u, 1015595551u, 0, LOG1PF_TOLERANCE, 0},
+{990, 1012543234u, 1116520440u, 1012448863u, 0, LOG1PF_TOLERANCE, 0},
+{991, 3316611992u, 3394732912u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{992, 3012101436u, 3307846870u, 3012101436u, 0, LOG1PF_TOLERANCE, 0},
+{993, 1087942795u, 3316660295u, 1073953509u, 0, LOG1PF_TOLERANCE, 0},
+{994, 3426365713u, 3069778532u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{995, 3066654389u, 3443934204u, 3066654429u, 0, LOG1PF_TOLERANCE, 0},
+{996, 3295326432u, 1313396175u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{997, 3318835308u, 3277583511u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{998, 3283555717u, 891875120u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{999, 3381255420u, 3015406047u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{1000, 3040485181u, 3375450886u, 3040485185u, 0, LOG1PF_TOLERANCE, 0},
+{1001, 3388772093u, 1032597076u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{1002, 954670189u, 1144923689u, 954669354u, 0, LOG1PF_TOLERANCE, 0},
+{1003, 1319200415u, 3387555900u, 1101542864u, 0, LOG1PF_TOLERANCE, 0},
+{1004, 1279324488u, 3228401212u, 1099819407u, 0, LOG1PF_TOLERANCE, 0},
+{1005, 3217795424u, 865577227u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{1006, 3455131757u, 1260217257u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{1007, 2982636375u, 3162157233u, 2982636375u, 0, LOG1PF_TOLERANCE, 0},
+{1008, 1246947517u, 1087951909u, 1097917256u, 0, LOG1PF_TOLERANCE, 0},
+{1009, 3396723577u, 869285240u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{1010, 3433761025u, 3060143904u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{1011, 3201187455u, 900233172u, 3204708934u, 0, LOG1PF_TOLERANCE, 0},
+{1012, 1173247961u, 1191127979u, 1091504259u, 0, LOG1PF_TOLERANCE, 0},
+{1013, 3037297123u, 3346394818u, 3037297125u, 0, LOG1PF_TOLERANCE, 0},
+{1014, 3248534678u, 1323683800u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{1015, 3083019343u, 3033309444u, 3083019492u, 0, LOG1PF_TOLERANCE, 0},
+{1016, 3042018375u, 3203882372u, 3042018380u, 0, LOG1PF_TOLERANCE, 0},
+{1017, 1082862511u, 3032804719u, 1071031675u, 0, LOG1PF_TOLERANCE, 0},
+{1018, 3157626955u, 3483653298u, 3157693377u, 0, LOG1PF_TOLERANCE, 0},
+{1019, 1341821683u, 3003675365u, 1102500297u, 0, LOG1PF_TOLERANCE, 0},
+{1020, 881101379u, 1190838126u, 881101378u, 0, LOG1PF_TOLERANCE, 0},
+{1021, 1079061705u, 2960507663u, 1069138402u, 0, LOG1PF_TOLERANCE, 0},
+{1022, 3182695954u, 3256861672u, 3183247428u, 0, LOG1PF_TOLERANCE, 0},
+{1023, 1105291533u, 3482971524u, 1079502099u, 0, LOG1PF_TOLERANCE, 0},
+{1024, 1016023520u, 3227712090u, 1015942339u, 0, LOG1PF_TOLERANCE, 0},
+{1025, 3370691006u, 1295870514u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{1026, 1156767169u, 1049756240u, 1089622438u, 0, LOG1PF_TOLERANCE, 0},
+{1027, 3077020499u, 894671462u, 3077020604u, 0, LOG1PF_TOLERANCE, 0},
+{1028, 1104284039u, 3040211914u, 1079216331u, 0, LOG1PF_TOLERANCE, 0},
+{1029, 3335212901u, 3486414589u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{1030, 1093697541u, 3193708441u, 1075786580u, 0, LOG1PF_TOLERANCE, 0},
+{1031, 3266691185u, 1160074593u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{1032, 3179003144u, 1108615803u, 3179407167u, 0, LOG1PF_TOLERANCE, 0},
+{1033, 1094115255u, 3008610212u, 1075923207u, 0, LOG1PF_TOLERANCE, 0},
+{1034, 2994604730u, 973792195u, 2994604730u, 0, LOG1PF_TOLERANCE, 0},
+{1035, 3424086808u, 3260140004u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{1036, 2957266025u, 917932067u, 2957266025u, 0, LOG1PF_TOLERANCE, 0},
+{1037, 3353608773u, 1134068114u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{1038, 2985838945u, 3118475644u, 2985838945u, 0, LOG1PF_TOLERANCE, 0},
+{1039, 973664327u, 1319516167u, 973661984u, 0, LOG1PF_TOLERANCE, 0},
+{1040, 882878091u, 3136970767u, 882878089u, 0, LOG1PF_TOLERANCE, 0},
+{1041, 1098662266u, 833740182u, 1077178436u, 0, LOG1PF_TOLERANCE, 0},
+{1042, 927582555u, 947955456u, 927582475u, 0, LOG1PF_TOLERANCE, 0},
+{1043, 3111440310u, 3067634077u, 3111442183u, 0, LOG1PF_TOLERANCE, 0},
+{1044, 3476083859u, 966439623u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{1045, 3038754840u, 932009686u, 3038754843u, 0, LOG1PF_TOLERANCE, 0},
+{1046, 979878744u, 1232482646u, 979872034u, 0, LOG1PF_TOLERANCE, 0},
+{1047, 3464546616u, 3205527253u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{1048, 1002542205u, 3152136093u, 1002504879u, 0, LOG1PF_TOLERANCE, 0},
+{1049, 3443552129u, 3165561391u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{1050, 1287620154u, 3119707283u, 1100178947u, 0, LOG1PF_TOLERANCE, 0},
+{1051, 820906845u, 1196920413u, 820906845u, 0, LOG1PF_TOLERANCE, 0},
+{1052, 860108361u, 921064349u, 860108361u, 0, LOG1PF_TOLERANCE, 0},
+{1053, 946058434u, 1249928879u, 946058029u, 0, LOG1PF_TOLERANCE, 0},
+{1054, 3073260205u, 3093124531u, 3073260264u, 0, LOG1PF_TOLERANCE, 0},
+{1055, 1245702957u, 894348966u, 1097818316u, 0, LOG1PF_TOLERANCE, 0},
+{1056, 989655126u, 1308376568u, 989639152u, 0, LOG1PF_TOLERANCE, 0},
+{1057, 1002715618u, 1191006977u, 1002677266u, 0, LOG1PF_TOLERANCE, 0},
+{1058, 3087802274u, 897541752u, 3087802427u, 0, LOG1PF_TOLERANCE, 0},
+{1059, 1000863905u, 1196831314u, 1000835787u, 0, LOG1PF_TOLERANCE, 0},
+{1060, 3415763001u, 3032518431u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{1061, 2979924820u, 1100234812u, 2979924820u, 0, LOG1PF_TOLERANCE, 0},
+{1062, 3283471961u, 1260093226u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{1063, 3311210827u, 1192192264u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{1064, 3026311911u, 2968974374u, 3026311913u, 0, LOG1PF_TOLERANCE, 0},
+{1065, 1198307901u, 1116328249u, 1093677460u, 0, LOG1PF_TOLERANCE, 0},
+{1066, 1288901567u, 1296370667u, 1100229913u, 0, LOG1PF_TOLERANCE, 0},
+{1067, 922255363u, 958305289u, 922255303u, 0, LOG1PF_TOLERANCE, 0},
+{1068, 1113104661u, 944376032u, 1082151800u, 0, LOG1PF_TOLERANCE, 0},
+{1069, 1136714348u, 828849087u, 1086236294u, 0, LOG1PF_TOLERANCE, 0},
+{1070, 3002059872u, 1136817970u, 3002059872u, 0, LOG1PF_TOLERANCE, 0},
+{1071, 948856035u, 1015466475u, 948855718u, 0, LOG1PF_TOLERANCE, 0},
+{1072, 1062512367u, 3229559531u, 1058720901u, 0, LOG1PF_TOLERANCE, 0},
+{1073, 3486907092u, 823220784u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{1074, 3015049792u, 3078555978u, 3015049793u, 0, LOG1PF_TOLERANCE, 0},
+{1075, 1162027071u, 3308983387u, 1090567856u, 0, LOG1PF_TOLERANCE, 0},
+{1076, 1034561811u, 1054043114u, 1034122699u, 0, LOG1PF_TOLERANCE, 0},
+{1077, 853827378u, 898656161u, 853827378u, 0, LOG1PF_TOLERANCE, 0},
+{1078, 3271615417u, 3209997200u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{1079, 1042014529u, 1146708584u, 1041307850u, 0, LOG1PF_TOLERANCE, 0},
+{1080, 1177157787u, 3090208179u, 1091876723u, 0, LOG1PF_TOLERANCE, 0},
+{1081, 3196144817u, 1056118717u, 3197437800u, 0, LOG1PF_TOLERANCE, 0},
+{1082, 3432084552u, 2997091781u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{1083, 1309658335u, 1010219988u, 1101118918u, 0, LOG1PF_TOLERANCE, 0},
+{1084, 3004373345u, 873739132u, 3004373345u, 0, LOG1PF_TOLERANCE, 0},
+{1085, 2997667929u, 1038223245u, 2997667929u, 0, LOG1PF_TOLERANCE, 0},
+{1086, 1226494979u, 2991604792u, 1096139495u, 0, LOG1PF_TOLERANCE, 0},
+{1087, 3100289712u, 3456334210u, 3100290354u, 0, LOG1PF_TOLERANCE, 0},
+{1088, 3375507013u, 1306310823u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{1089, 3460699001u, 3096700943u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{1090, 3079231719u, 1044386263u, 3079231793u, 0, LOG1PF_TOLERANCE, 0},
+{1091, 3093951884u, 1014115231u, 3093952312u, 0, LOG1PF_TOLERANCE, 0},
+{1092, 3468023178u, 1209565017u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{1093, 3008182310u, 1258900986u, 3008182310u, 0, LOG1PF_TOLERANCE, 0},
+{1094, 1204196034u, 3298625731u, 1094219981u, 0, LOG1PF_TOLERANCE, 0},
+{1095, 3459877411u, 2960476959u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{1096, 909696559u, 1163075690u, 909696542u, 0, LOG1PF_TOLERANCE, 0},
+{1097, 1161439847u, 943449277u, 1090518120u, 0, LOG1PF_TOLERANCE, 0},
+{1098, 908663107u, 939489763u, 908663093u, 0, LOG1PF_TOLERANCE, 0},
+{1099, 1055319316u, 3261813492u, 1052677354u, 0, LOG1PF_TOLERANCE, 0},
+{1100, 1084378658u, 1009650785u, 1072095092u, 0, LOG1PF_TOLERANCE, 0},
+{1101, 3053887750u, 3341786453u, 3053887759u, 0, LOG1PF_TOLERANCE, 0},
+{1102, 3022828828u, 881335251u, 3022828829u, 0, LOG1PF_TOLERANCE, 0},
+{1103, 2995476576u, 3194911588u, 2995476576u, 0, LOG1PF_TOLERANCE, 0},
+{1104, 1226473697u, 821025132u, 1096137293u, 0, LOG1PF_TOLERANCE, 0},
+{1105, 1123114742u, 1229815537u, 1083811173u, 0, LOG1PF_TOLERANCE, 0},
+{1106, 1258114435u, 1291336083u, 1098836128u, 0, LOG1PF_TOLERANCE, 0},
+{1107, 2983818103u, 3015402015u, 2983818103u, 0, LOG1PF_TOLERANCE, 0},
+{1108, 3468040845u, 3066966245u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{1109, 1178825761u, 1113195286u, 1092022998u, 0, LOG1PF_TOLERANCE, 0},
+{1110, 3059266302u, 878503862u, 3059266325u, 0, LOG1PF_TOLERANCE, 0},
+{1111, 3223384012u, 1130486973u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{1112, 1019964626u, 1235133609u, 1019801789u, 0, LOG1PF_TOLERANCE, 0},
+{1113, 3445262427u, 3465211174u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{1114, 1125653081u, 1207799746u, 1084292827u, 0, LOG1PF_TOLERANCE, 0},
+{1115, 3337652712u, 3025581813u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{1116, 1184753508u, 3147374485u, 1092526084u, 0, LOG1PF_TOLERANCE, 0},
+{1117, 996404791u, 3353251979u, 996378875u, 0, LOG1PF_TOLERANCE, 0},
+{1118, 1188439315u, 1113484271u, 1092845536u, 0, LOG1PF_TOLERANCE, 0},
+{1119, 906557513u, 3006513432u, 906557504u, 0, LOG1PF_TOLERANCE, 0},
+{1120, 916831283u, 999465787u, 916831256u, 0, LOG1PF_TOLERANCE, 0},
+{1121, 996786317u, 3179221951u, 996759062u, 0, LOG1PF_TOLERANCE, 0},
+{1122, 3461635065u, 1004690387u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{1123, 1188167943u, 1200744896u, 1092825062u, 0, LOG1PF_TOLERANCE, 0},
+{1124, 3036502395u, 1172597364u, 3036502399u, 0, LOG1PF_TOLERANCE, 0},
+{1125, 891257783u, 1267560050u, 891257780u, 0, LOG1PF_TOLERANCE, 0},
+{1126, 3290079438u, 846519377u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{1127, 3350690327u, 2967953392u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{1128, 1102061604u, 3424449935u, 1078507293u, 0, LOG1PF_TOLERANCE, 0},
+{1129, 1282351521u, 3039376424u, 1099931930u, 0, LOG1PF_TOLERANCE, 0},
+{1130, 3458861065u, 3392466405u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{1131, 3095256878u, 1023623326u, 3095257382u, 0, LOG1PF_TOLERANCE, 0},
+{1132, 3163373610u, 843150426u, 3163454346u, 0, LOG1PF_TOLERANCE, 0},
+{1133, 3228793330u, 855146890u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{1134, 3422194733u, 893873945u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{1135, 3083885296u, 974543672u, 3083885466u, 0, LOG1PF_TOLERANCE, 0},
+{1136, 1261940623u, 3402349985u, 1099066812u, 0, LOG1PF_TOLERANCE, 0},
+{1137, 825039660u, 3426717554u, 825039660u, 0, LOG1PF_TOLERANCE, 0},
+{1138, 3400603081u, 3234396843u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{1139, 1219411812u, 2961857939u, 1095539585u, 0, LOG1PF_TOLERANCE, 0},
+{1140, 3094833770u, 805351108u, 3094834248u, 0, LOG1PF_TOLERANCE, 0},
+{1141, 3139250800u, 3079109479u, 3139263170u, 0, LOG1PF_TOLERANCE, 0},
+{1142, 886201503u, 3272760705u, 886201500u, 0, LOG1PF_TOLERANCE, 0},
+{1143, 3297366026u, 1089966380u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{1144, 1218488455u, 3309646450u, 1095451439u, 0, LOG1PF_TOLERANCE, 0},
+{1145, 3040358923u, 3093401553u, 3040358927u, 0, LOG1PF_TOLERANCE, 0},
+{1146, 862346861u, 3411853707u, 862346861u, 0, LOG1PF_TOLERANCE, 0},
+{1147, 1283938137u, 1196383822u, 1099996906u, 0, LOG1PF_TOLERANCE, 0},
+{1148, 3182551696u, 3029982441u, 3183089355u, 0, LOG1PF_TOLERANCE, 0},
+{1149, 1317098613u, 949986176u, 1101426722u, 0, LOG1PF_TOLERANCE, 0},
+{1150, 3116209179u, 3303588342u, 3116211426u, 0, LOG1PF_TOLERANCE, 0},
+{1151, 3431703657u, 3014443710u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{1152, 3239728775u, 927815421u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{1153, 3207141672u, 933456504u, 3213511304u, 0, LOG1PF_TOLERANCE, 0},
+{1154, 3154378805u, 905462392u, 3154413842u, 0, LOG1PF_TOLERANCE, 0},
+{1155, 3069658155u, 1041452042u, 3069658215u, 0, LOG1PF_TOLERANCE, 0},
+{1156, 3313160088u, 2964063309u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{1157, 3207056527u, 3384206601u, 3213386819u, 0, LOG1PF_TOLERANCE, 0},
+{1158, 1284174954u, 3436881197u, 1100010721u, 0, LOG1PF_TOLERANCE, 0},
+{1159, 3156081645u, 3308839704u, 3156131886u, 0, LOG1PF_TOLERANCE, 0},
+{1160, 1063693032u, 976661408u, 1059353749u, 0, LOG1PF_TOLERANCE, 0},
+{1161, 3036026175u, 1251203998u, 3036026179u, 0, LOG1PF_TOLERANCE, 0},
+{1162, 1102631663u, 3396951425u, 1078700901u, 0, LOG1PF_TOLERANCE, 0},
+{1163, 968803479u, 992989712u, 968801205u, 0, LOG1PF_TOLERANCE, 0},
+{1164, 3273080388u, 3109405906u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{1165, 1172529774u, 3294550127u, 1091454911u, 0, LOG1PF_TOLERANCE, 0},
+{1166, 1306695905u, 1292690378u, 1100993929u, 0, LOG1PF_TOLERANCE, 0},
+{1167, 1003649752u, 1218792138u, 1003605639u, 0, LOG1PF_TOLERANCE, 0},
+{1168, 1078478376u, 1326246424u, 1068860523u, 0, LOG1PF_TOLERANCE, 0},
+{1169, 3158855023u, 3151283866u, 3158935925u, 0, LOG1PF_TOLERANCE, 0},
+{1170, 1165177679u, 3276237026u, 1090798728u, 0, LOG1PF_TOLERANCE, 0},
+{1171, 870472127u, 3332532333u, 870472126u, 0, LOG1PF_TOLERANCE, 0},
+{1172, 3403009513u, 3381966453u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{1173, 816825508u, 3032174124u, 816825508u, 0, LOG1PF_TOLERANCE, 0},
+{1174, 952348506u, 3377573987u, 952347908u, 0, LOG1PF_TOLERANCE, 0},
+{1175, 839544701u, 3419900937u, 839544701u, 0, LOG1PF_TOLERANCE, 0},
+{1176, 2967454456u, 3313359047u, 2967454456u, 0, LOG1PF_TOLERANCE, 0},
+{1177, 1222777442u, 1125769920u, 1095809748u, 0, LOG1PF_TOLERANCE, 0},
+{1178, 1325324763u, 978336043u, 1101782353u, 0, LOG1PF_TOLERANCE, 0},
+{1179, 3363524213u, 3202991311u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{1180, 1158950321u, 1073578913u, 1090039690u, 0, LOG1PF_TOLERANCE, 0},
+{1181, 903129873u, 3416864271u, 903129862u, 0, LOG1PF_TOLERANCE, 0},
+{1182, 2997685349u, 1123653663u, 2997685349u, 0, LOG1PF_TOLERANCE, 0},
+{1183, 3078339944u, 988173985u, 3078340068u, 0, LOG1PF_TOLERANCE, 0},
+{1184, 1208345407u, 1254181270u, 1094533493u, 0, LOG1PF_TOLERANCE, 0},
+{1185, 3003262042u, 1327277116u, 3003262042u, 0, LOG1PF_TOLERANCE, 0},
+{1186, 1258634105u, 1247426200u, 1098889245u, 0, LOG1PF_TOLERANCE, 0},
+{1187, 1248478509u, 1287895126u, 1098027406u, 0, LOG1PF_TOLERANCE, 0},
+{1188, 1153863988u, 3430539165u, 1089200348u, 0, LOG1PF_TOLERANCE, 0},
+{1189, 1235620969u, 866627358u, 1096939871u, 0, LOG1PF_TOLERANCE, 0},
+{1190, 1097120930u, 3221726305u, 1076793578u, 0, LOG1PF_TOLERANCE, 0},
+{1191, 3469778622u, 1200179013u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{1192, 1147712200u, 931865525u, 1088080285u, 0, LOG1PF_TOLERANCE, 0},
+{1193, 812694172u, 1136276190u, 812694172u, 0, LOG1PF_TOLERANCE, 0},
+{1194, 862266739u, 3139447362u, 862266739u, 0, LOG1PF_TOLERANCE, 0},
+{1195, 1124721745u, 3058969650u, 1084088534u, 0, LOG1PF_TOLERANCE, 0},
+{1196, 3261744304u, 1043806501u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{1197, 832324055u, 2954061156u, 832324055u, 0, LOG1PF_TOLERANCE, 0},
+{1198, 805759679u, 903848557u, 805759679u, 0, LOG1PF_TOLERANCE, 0},
+{1199, 2983396015u, 872299138u, 2983396015u, 0, LOG1PF_TOLERANCE, 0},
+{1200, 1064922416u, 1320485628u, 1059988285u, 0, LOG1PF_TOLERANCE, 0},
+{1201, 868114980u, 3213276361u, 868114979u, 0, LOG1PF_TOLERANCE, 0},
+{1202, 3303160152u, 3075455322u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{1203, 1315090496u, 3269683237u, 1101357549u, 0, LOG1PF_TOLERANCE, 0},
+{1204, 850876090u, 3365795667u, 850876090u, 0, LOG1PF_TOLERANCE, 0},
+{1205, 3230403187u, 1322841992u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{1206, 1335399673u, 974138676u, 1102240222u, 0, LOG1PF_TOLERANCE, 0},
+{1207, 1072458508u, 3372833993u, 1065741371u, 0, LOG1PF_TOLERANCE, 0},
+{1208, 3303015249u, 3015039539u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{1209, 3252139741u, 1059615003u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{1210, 3468519966u, 3113982619u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{1211, 1006231203u, 897530770u, 1006169084u, 0, LOG1PF_TOLERANCE, 0},
+{1212, 951554138u, 1001144381u, 951553612u, 0, LOG1PF_TOLERANCE, 0},
+{1213, 942046828u, 986341002u, 942046611u, 0, LOG1PF_TOLERANCE, 0},
+{1214, 2968517146u, 951832467u, 2968517146u, 0, LOG1PF_TOLERANCE, 0},
+{1215, 3319723279u, 3414482416u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{1216, 3255104167u, 928827688u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{1217, 1155477903u, 3104812800u, 1089445384u, 0, LOG1PF_TOLERANCE, 0},
+{1218, 3273889176u, 980486479u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{1219, 3237813668u, 3441016803u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{1220, 1228207362u, 2985476579u, 1096303014u, 0, LOG1PF_TOLERANCE, 0},
+{1221, 975349337u, 1311932596u, 975346031u, 0, LOG1PF_TOLERANCE, 0},
+{1222, 2982583196u, 3132904446u, 2982583196u, 0, LOG1PF_TOLERANCE, 0},
+{1223, 1290175785u, 3008182462u, 1100276110u, 0, LOG1PF_TOLERANCE, 0},
+{1224, 981908840u, 3314038398u, 981904304u, 0, LOG1PF_TOLERANCE, 0},
+{1225, 941187647u, 1107765599u, 941187463u, 0, LOG1PF_TOLERANCE, 0},
+{1226, 1214223128u, 3225536822u, 1095071140u, 0, LOG1PF_TOLERANCE, 0},
+{1227, 3422922584u, 1086391131u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{1228, 1315857601u, 3487600045u, 1101383945u, 0, LOG1PF_TOLERANCE, 0},
+{1229, 3453226030u, 3233768835u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{1230, 1078359574u, 3199175230u, 1068802783u, 0, LOG1PF_TOLERANCE, 0},
+{1231, 1029557624u, 3302959071u, 1029177708u, 0, LOG1PF_TOLERANCE, 0},
+{1232, 1207675424u, 3042692550u, 1094468428u, 0, LOG1PF_TOLERANCE, 0},
+{1233, 1028355074u, 3442294040u, 1028034501u, 0, LOG1PF_TOLERANCE, 0},
+{1234, 3119299090u, 1187096397u, 3119302594u, 0, LOG1PF_TOLERANCE, 0},
+{1235, 1248421894u, 3367769132u, 1098023532u, 0, LOG1PF_TOLERANCE, 0},
+{1236, 3353251994u, 1095517730u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{1237, 876926659u, 3288089977u, 876926658u, 0, LOG1PF_TOLERANCE, 0},
+{1238, 1076752219u, 876236939u, 1067979810u, 0, LOG1PF_TOLERANCE, 0},
+{1239, 3388531942u, 2988520062u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{1240, 1273395082u, 3031189261u, 1099549172u, 0, LOG1PF_TOLERANCE, 0},
+{1241, 3385588183u, 3258252464u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{1242, 862047095u, 829323655u, 862047095u, 0, LOG1PF_TOLERANCE, 0},
+{1243, 3192315328u, 3289489214u, 3193772998u, 0, LOG1PF_TOLERANCE, 0},
+{1244, 3441804648u, 3274638356u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{1245, 837368567u, 3228474927u, 837368567u, 0, LOG1PF_TOLERANCE, 0},
+{1246, 3392827417u, 1277961150u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{1247, 1161241793u, 1328003707u, 1090483808u, 0, LOG1PF_TOLERANCE, 0},
+{1248, 856495732u, 3123041418u, 856495732u, 0, LOG1PF_TOLERANCE, 0},
+{1249, 3034494183u, 3041579130u, 3034494186u, 0, LOG1PF_TOLERANCE, 0},
+{1250, 1171318485u, 3374409104u, 1091366026u, 0, LOG1PF_TOLERANCE, 0},
+{1251, 3047748143u, 831102792u, 3047748150u, 0, LOG1PF_TOLERANCE, 0},
+{1252, 1001216371u, 3052357038u, 1001186427u, 0, LOG1PF_TOLERANCE, 0},
+{1253, 2999541351u, 3085461799u, 2999541351u, 0, LOG1PF_TOLERANCE, 0},
+{1254, 912515889u, 1074635609u, 912515864u, 0, LOG1PF_TOLERANCE, 0},
+{1255, 3391452505u, 897989232u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{1256, 3249603369u, 3147662248u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{1257, 1220264047u, 2960450369u, 1095614849u, 0, LOG1PF_TOLERANCE, 0},
+{1258, 3169816394u, 988430929u, 3170050525u, 0, LOG1PF_TOLERANCE, 0},
+{1259, 3098997418u, 3002162688u, 3098997941u, 0, LOG1PF_TOLERANCE, 0},
+{1260, 3282212423u, 3174079140u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{1261, 3352293320u, 3247843425u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{1262, 3296358441u, 875645354u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{1263, 1197828352u, 3245614728u, 1093644537u, 0, LOG1PF_TOLERANCE, 0},
+{1264, 3340510371u, 914930263u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{1265, 1127109339u, 3368125489u, 1084577040u, 0, LOG1PF_TOLERANCE, 0},
+{1266, 816173492u, 1083268662u, 816173492u, 0, LOG1PF_TOLERANCE, 0},
+{1267, 909467381u, 1232375752u, 909467365u, 0, LOG1PF_TOLERANCE, 0},
+{1268, 1200599955u, 2981200675u, 1093880855u, 0, LOG1PF_TOLERANCE, 0},
+{1269, 962230977u, 2988248037u, 962229486u, 0, LOG1PF_TOLERANCE, 0},
+{1270, 2996667337u, 1068572835u, 2996667337u, 0, LOG1PF_TOLERANCE, 0},
+{1271, 3192887808u, 3191848339u, 3194487240u, 0, LOG1PF_TOLERANCE, 0},
+{1272, 3237183876u, 3179379969u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{1273, 939285924u, 3056079386u, 939285675u, 0, LOG1PF_TOLERANCE, 0},
+{1274, 944050180u, 3452557879u, 944049877u, 0, LOG1PF_TOLERANCE, 0},
+{1275, 3058135703u, 3090284601u, 3058135722u, 0, LOG1PF_TOLERANCE, 0},
+{1276, 3480592662u, 3261728191u, 2143289344u, 0, LOG1PF_TOLERANCE, 0},
+{1277, 3061939312u, 3274418540u, 3061939328u, 0, LOG1PF_TOLERANCE, 0},
+{1278, 1003299981u, 853295521u, 1003258072u, 0, LOG1PF_TOLERANCE, 0},
+{1279, 1155775526u, 1255814444u, 1089487603u, 0, LOG1PF_TOLERANCE, 0},
+{1280, 1234491880u, 3408568717u, 1096825031u, 0, LOG1PF_TOLERANCE, 0}
+
+// AUTOMATICALLY GENERATED VECTORS STOP
+
+};
+
+#endif // CYGONCE_LIBM_LOG1PFF_H multiple inclusion protection
+
+// EOF log1pf.h
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/logbf.c b/ecos/packages/language/c/libm/current/tests/vectors/logbf.c
new file mode 100644
index 0000000..e38b3d4
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/logbf.c
@@ -0,0 +1,115 @@
+//===========================================================================
+//
+// logbf.c
+//
+// Test of logbf() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// Declarations for test system:
+//
+// TESTCASE_TYPE=CYG_TEST_MODULE
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include <cyg/infra/testcase.h> // Test infrastructure
+#include <math.h> // Header for this package
+#include <sys/ieeefp.h> // Cyg_libm_ieee_float_shape_type
+#include "vectors/vector_support_float.h"// extra support for math tests
+
+#include "vectors/logbf.h"
+
+// FUNCTIONS
+
+static void
+test( CYG_ADDRWORD data )
+{
+ cyg_ucount32 vec_size;
+ cyg_bool ret;
+
+ vec_size = sizeof(logbf_vec) / sizeof(Cyg_libm_test_float_vec_t);
+ ret = doTestVecFloat( (CYG_ADDRWORD) &logbf, CYG_LIBM_TEST_VEC_FLOAT,
+ CYG_LIBM_TEST_VEC_NONE, CYG_LIBM_TEST_VEC_FLOAT,
+ &logbf_vec[0], vec_size );
+
+ if (ret==true)
+ {
+ CYG_TEST_PASS("logbf() is stable");
+ } // if
+ else
+ {
+ CYG_TEST_FAIL("logbf() failed tests");
+ } // else
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for Math "
+ "library logbf() function");
+} // test()
+
+
+int
+main(int argc, char *argv[])
+{
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for Math library "
+ "logbf() function");
+
+ START_TEST( test );
+
+ CYG_TEST_PASS_FINISH("Testing is not applicable to this configuration");
+
+} // main()
+
+
+// EOF logbf.c
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/logbf.h b/ecos/packages/language/c/libm/current/tests/vectors/logbf.h
new file mode 100644
index 0000000..debd524
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/logbf.h
@@ -0,0 +1,1360 @@
+#ifndef CYGONCE_LIBM_LOGBF_H
+#define CYGONCE_LIBM_LOGBF_H
+//===========================================================================
+//
+// logbf.h
+//
+// Test vectors for testing of logbf() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage: #include "vectors/logbf.h"
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include "vectors/vector_support_float.h"// extra support for math tests
+
+#define LOGBF_TOLERANCE 1.0E-04
+
+static const Cyg_libm_test_float_vec_t logbf_vec[] = {
+
+// AUTOMATICALLY GENERATED VECTORS START
+
+{0, 3214514586u, 0u, 0u, 0, LOGBF_TOLERANCE, 0},
+{1, 3214430700u, 0u, 0u, 0, LOGBF_TOLERANCE, 0},
+{2, 3214346813u, 0u, 0u, 0, LOGBF_TOLERANCE, 0},
+{3, 3214262927u, 0u, 0u, 0, LOGBF_TOLERANCE, 0},
+{4, 3214179041u, 0u, 0u, 0, LOGBF_TOLERANCE, 0},
+{5, 3214095155u, 0u, 0u, 0, LOGBF_TOLERANCE, 0},
+{6, 3214011269u, 0u, 0u, 0, LOGBF_TOLERANCE, 0},
+{7, 3213927383u, 0u, 0u, 0, LOGBF_TOLERANCE, 0},
+{8, 3213843497u, 0u, 0u, 0, LOGBF_TOLERANCE, 0},
+{9, 3213759611u, 0u, 0u, 0, LOGBF_TOLERANCE, 0},
+{10, 3213675725u, 0u, 0u, 0, LOGBF_TOLERANCE, 0},
+{11, 3213591839u, 0u, 0u, 0, LOGBF_TOLERANCE, 0},
+{12, 3213507953u, 0u, 0u, 0, LOGBF_TOLERANCE, 0},
+{13, 3213424067u, 0u, 0u, 0, LOGBF_TOLERANCE, 0},
+{14, 3213340180u, 0u, 0u, 0, LOGBF_TOLERANCE, 0},
+{15, 3213256294u, 0u, 0u, 0, LOGBF_TOLERANCE, 0},
+{16, 3213172408u, 0u, 0u, 0, LOGBF_TOLERANCE, 0},
+{17, 3213088522u, 0u, 0u, 0, LOGBF_TOLERANCE, 0},
+{18, 3213004636u, 0u, 0u, 0, LOGBF_TOLERANCE, 0},
+{19, 3212920750u, 0u, 0u, 0, LOGBF_TOLERANCE, 0},
+{20, 3212836864u, 0u, 0u, 0, LOGBF_TOLERANCE, 0},
+{21, 3212669092u, 0u, 3212836864u, 0, LOGBF_TOLERANCE, 0},
+{22, 3212501320u, 0u, 3212836864u, 0, LOGBF_TOLERANCE, 0},
+{23, 3212333548u, 0u, 3212836864u, 0, LOGBF_TOLERANCE, 0},
+{24, 3212165775u, 0u, 3212836864u, 0, LOGBF_TOLERANCE, 0},
+{25, 3211998003u, 0u, 3212836864u, 0, LOGBF_TOLERANCE, 0},
+{26, 3211830231u, 0u, 3212836864u, 0, LOGBF_TOLERANCE, 0},
+{27, 3211662459u, 0u, 3212836864u, 0, LOGBF_TOLERANCE, 0},
+{28, 3211494687u, 0u, 3212836864u, 0, LOGBF_TOLERANCE, 0},
+{29, 3211326915u, 0u, 3212836864u, 0, LOGBF_TOLERANCE, 0},
+{30, 3211159142u, 0u, 3212836864u, 0, LOGBF_TOLERANCE, 0},
+{31, 3210991370u, 0u, 3212836864u, 0, LOGBF_TOLERANCE, 0},
+{32, 3210823598u, 0u, 3212836864u, 0, LOGBF_TOLERANCE, 0},
+{33, 3210655826u, 0u, 3212836864u, 0, LOGBF_TOLERANCE, 0},
+{34, 3210488054u, 0u, 3212836864u, 0, LOGBF_TOLERANCE, 0},
+{35, 3210320282u, 0u, 3212836864u, 0, LOGBF_TOLERANCE, 0},
+{36, 3210152509u, 0u, 3212836864u, 0, LOGBF_TOLERANCE, 0},
+{37, 3209984737u, 0u, 3212836864u, 0, LOGBF_TOLERANCE, 0},
+{38, 3209816965u, 0u, 3212836864u, 0, LOGBF_TOLERANCE, 0},
+{39, 3209649193u, 0u, 3212836864u, 0, LOGBF_TOLERANCE, 0},
+{40, 3209481421u, 0u, 3212836864u, 0, LOGBF_TOLERANCE, 0},
+{41, 3209313649u, 0u, 3212836864u, 0, LOGBF_TOLERANCE, 0},
+{42, 3209145876u, 0u, 3212836864u, 0, LOGBF_TOLERANCE, 0},
+{43, 3208978104u, 0u, 3212836864u, 0, LOGBF_TOLERANCE, 0},
+{44, 3208810332u, 0u, 3212836864u, 0, LOGBF_TOLERANCE, 0},
+{45, 3208642560u, 0u, 3212836864u, 0, LOGBF_TOLERANCE, 0},
+{46, 3208474788u, 0u, 3212836864u, 0, LOGBF_TOLERANCE, 0},
+{47, 3208307016u, 0u, 3212836864u, 0, LOGBF_TOLERANCE, 0},
+{48, 3208139244u, 0u, 3212836864u, 0, LOGBF_TOLERANCE, 0},
+{49, 3207971471u, 0u, 3212836864u, 0, LOGBF_TOLERANCE, 0},
+{50, 3207803699u, 0u, 3212836864u, 0, LOGBF_TOLERANCE, 0},
+{51, 3207635927u, 0u, 3212836864u, 0, LOGBF_TOLERANCE, 0},
+{52, 3207468155u, 0u, 3212836864u, 0, LOGBF_TOLERANCE, 0},
+{53, 3207300383u, 0u, 3212836864u, 0, LOGBF_TOLERANCE, 0},
+{54, 3207132611u, 0u, 3212836864u, 0, LOGBF_TOLERANCE, 0},
+{55, 3206964838u, 0u, 3212836864u, 0, LOGBF_TOLERANCE, 0},
+{56, 3206797066u, 0u, 3212836864u, 0, LOGBF_TOLERANCE, 0},
+{57, 3206629294u, 0u, 3212836864u, 0, LOGBF_TOLERANCE, 0},
+{58, 3206461522u, 0u, 3212836864u, 0, LOGBF_TOLERANCE, 0},
+{59, 3206293750u, 0u, 3212836864u, 0, LOGBF_TOLERANCE, 0},
+{60, 3206125978u, 0u, 3212836864u, 0, LOGBF_TOLERANCE, 0},
+{61, 3205958205u, 0u, 3212836864u, 0, LOGBF_TOLERANCE, 0},
+{62, 3205790433u, 0u, 3212836864u, 0, LOGBF_TOLERANCE, 0},
+{63, 3205622661u, 0u, 3212836864u, 0, LOGBF_TOLERANCE, 0},
+{64, 3205454889u, 0u, 3212836864u, 0, LOGBF_TOLERANCE, 0},
+{65, 3205287117u, 0u, 3212836864u, 0, LOGBF_TOLERANCE, 0},
+{66, 3205119345u, 0u, 3212836864u, 0, LOGBF_TOLERANCE, 0},
+{67, 3204951572u, 0u, 3212836864u, 0, LOGBF_TOLERANCE, 0},
+{68, 3204783800u, 0u, 3212836864u, 0, LOGBF_TOLERANCE, 0},
+{69, 3204616028u, 0u, 3212836864u, 0, LOGBF_TOLERANCE, 0},
+{70, 3204448256u, 0u, 3212836864u, 0, LOGBF_TOLERANCE, 0},
+{71, 3204112712u, 0u, 3221225472u, 0, LOGBF_TOLERANCE, 0},
+{72, 3203777167u, 0u, 3221225472u, 0, LOGBF_TOLERANCE, 0},
+{73, 3203441623u, 0u, 3221225472u, 0, LOGBF_TOLERANCE, 0},
+{74, 3203106079u, 0u, 3221225472u, 0, LOGBF_TOLERANCE, 0},
+{75, 3202770534u, 0u, 3221225472u, 0, LOGBF_TOLERANCE, 0},
+{76, 3202434990u, 0u, 3221225472u, 0, LOGBF_TOLERANCE, 0},
+{77, 3202099446u, 0u, 3221225472u, 0, LOGBF_TOLERANCE, 0},
+{78, 3201763901u, 0u, 3221225472u, 0, LOGBF_TOLERANCE, 0},
+{79, 3201428357u, 0u, 3221225472u, 0, LOGBF_TOLERANCE, 0},
+{80, 3201092813u, 0u, 3221225472u, 0, LOGBF_TOLERANCE, 0},
+{81, 3200757268u, 0u, 3221225472u, 0, LOGBF_TOLERANCE, 0},
+{82, 3200421724u, 0u, 3221225472u, 0, LOGBF_TOLERANCE, 0},
+{83, 3200086180u, 0u, 3221225472u, 0, LOGBF_TOLERANCE, 0},
+{84, 3199750636u, 0u, 3221225472u, 0, LOGBF_TOLERANCE, 0},
+{85, 3199415091u, 0u, 3221225472u, 0, LOGBF_TOLERANCE, 0},
+{86, 3199079547u, 0u, 3221225472u, 0, LOGBF_TOLERANCE, 0},
+{87, 3198744003u, 0u, 3221225472u, 0, LOGBF_TOLERANCE, 0},
+{88, 3198408458u, 0u, 3221225472u, 0, LOGBF_TOLERANCE, 0},
+{89, 3198072914u, 0u, 3221225472u, 0, LOGBF_TOLERANCE, 0},
+{90, 3197737370u, 0u, 3221225472u, 0, LOGBF_TOLERANCE, 0},
+{91, 3197401825u, 0u, 3221225472u, 0, LOGBF_TOLERANCE, 0},
+{92, 3197066281u, 0u, 3221225472u, 0, LOGBF_TOLERANCE, 0},
+{93, 3196730737u, 0u, 3221225472u, 0, LOGBF_TOLERANCE, 0},
+{94, 3196395192u, 0u, 3221225472u, 0, LOGBF_TOLERANCE, 0},
+{95, 3196059648u, 0u, 3221225472u, 0, LOGBF_TOLERANCE, 0},
+{96, 3195388559u, 0u, 3225419776u, 0, LOGBF_TOLERANCE, 0},
+{97, 3194717471u, 0u, 3225419776u, 0, LOGBF_TOLERANCE, 0},
+{98, 3194046382u, 0u, 3225419776u, 0, LOGBF_TOLERANCE, 0},
+{99, 3193375293u, 0u, 3225419776u, 0, LOGBF_TOLERANCE, 0},
+{100, 3192704205u, 0u, 3225419776u, 0, LOGBF_TOLERANCE, 0},
+{101, 3192033116u, 0u, 3225419776u, 0, LOGBF_TOLERANCE, 0},
+{102, 3191362028u, 0u, 3225419776u, 0, LOGBF_TOLERANCE, 0},
+{103, 3190690939u, 0u, 3225419776u, 0, LOGBF_TOLERANCE, 0},
+{104, 3190019850u, 0u, 3225419776u, 0, LOGBF_TOLERANCE, 0},
+{105, 3189348762u, 0u, 3225419776u, 0, LOGBF_TOLERANCE, 0},
+{106, 3188677673u, 0u, 3225419776u, 0, LOGBF_TOLERANCE, 0},
+{107, 3188006584u, 0u, 3225419776u, 0, LOGBF_TOLERANCE, 0},
+{108, 3186999951u, 0u, 3229614080u, 0, LOGBF_TOLERANCE, 0},
+{109, 3185657774u, 0u, 3229614080u, 0, LOGBF_TOLERANCE, 0},
+{110, 3184315597u, 0u, 3229614080u, 0, LOGBF_TOLERANCE, 0},
+{111, 3182973420u, 0u, 3229614080u, 0, LOGBF_TOLERANCE, 0},
+{112, 3181631242u, 0u, 3229614080u, 0, LOGBF_TOLERANCE, 0},
+{113, 3180289065u, 0u, 3229614080u, 0, LOGBF_TOLERANCE, 0},
+{114, 3178611343u, 0u, 3231711232u, 0, LOGBF_TOLERANCE, 0},
+{115, 3175926989u, 0u, 3231711232u, 0, LOGBF_TOLERANCE, 0},
+{116, 3173242634u, 0u, 3231711232u, 0, LOGBF_TOLERANCE, 0},
+{117, 3170222735u, 0u, 3233808384u, 0, LOGBF_TOLERANCE, 0},
+{118, 3164854026u, 0u, 3233808384u, 0, LOGBF_TOLERANCE, 0},
+{119, 3156465418u, 0u, 3235905536u, 0, LOGBF_TOLERANCE, 0},
+{120, 1008981770u, 0u, 3235905536u, 0, LOGBF_TOLERANCE, 0},
+{121, 1017370378u, 0u, 3233808384u, 0, LOGBF_TOLERANCE, 0},
+{122, 1022739087u, 0u, 3233808384u, 0, LOGBF_TOLERANCE, 0},
+{123, 1025758986u, 0u, 3231711232u, 0, LOGBF_TOLERANCE, 0},
+{124, 1028443341u, 0u, 3231711232u, 0, LOGBF_TOLERANCE, 0},
+{125, 1031127695u, 0u, 3231711232u, 0, LOGBF_TOLERANCE, 0},
+{126, 1032805417u, 0u, 3229614080u, 0, LOGBF_TOLERANCE, 0},
+{127, 1034147594u, 0u, 3229614080u, 0, LOGBF_TOLERANCE, 0},
+{128, 1035489772u, 0u, 3229614080u, 0, LOGBF_TOLERANCE, 0},
+{129, 1036831949u, 0u, 3229614080u, 0, LOGBF_TOLERANCE, 0},
+{130, 1038174126u, 0u, 3229614080u, 0, LOGBF_TOLERANCE, 0},
+{131, 1039516303u, 0u, 3229614080u, 0, LOGBF_TOLERANCE, 0},
+{132, 1040522936u, 0u, 3225419776u, 0, LOGBF_TOLERANCE, 0},
+{133, 1041194025u, 0u, 3225419776u, 0, LOGBF_TOLERANCE, 0},
+{134, 1041865114u, 0u, 3225419776u, 0, LOGBF_TOLERANCE, 0},
+{135, 1042536202u, 0u, 3225419776u, 0, LOGBF_TOLERANCE, 0},
+{136, 1043207291u, 0u, 3225419776u, 0, LOGBF_TOLERANCE, 0},
+{137, 1043878380u, 0u, 3225419776u, 0, LOGBF_TOLERANCE, 0},
+{138, 1044549468u, 0u, 3225419776u, 0, LOGBF_TOLERANCE, 0},
+{139, 1045220557u, 0u, 3225419776u, 0, LOGBF_TOLERANCE, 0},
+{140, 1045891645u, 0u, 3225419776u, 0, LOGBF_TOLERANCE, 0},
+{141, 1046562734u, 0u, 3225419776u, 0, LOGBF_TOLERANCE, 0},
+{142, 1047233823u, 0u, 3225419776u, 0, LOGBF_TOLERANCE, 0},
+{143, 1047904911u, 0u, 3225419776u, 0, LOGBF_TOLERANCE, 0},
+{144, 1048576000u, 0u, 3221225472u, 0, LOGBF_TOLERANCE, 0},
+{145, 1048911544u, 0u, 3221225472u, 0, LOGBF_TOLERANCE, 0},
+{146, 1049247089u, 0u, 3221225472u, 0, LOGBF_TOLERANCE, 0},
+{147, 1049582633u, 0u, 3221225472u, 0, LOGBF_TOLERANCE, 0},
+{148, 1049918177u, 0u, 3221225472u, 0, LOGBF_TOLERANCE, 0},
+{149, 1050253722u, 0u, 3221225472u, 0, LOGBF_TOLERANCE, 0},
+{150, 1050589266u, 0u, 3221225472u, 0, LOGBF_TOLERANCE, 0},
+{151, 1050924810u, 0u, 3221225472u, 0, LOGBF_TOLERANCE, 0},
+{152, 1051260355u, 0u, 3221225472u, 0, LOGBF_TOLERANCE, 0},
+{153, 1051595899u, 0u, 3221225472u, 0, LOGBF_TOLERANCE, 0},
+{154, 1051931443u, 0u, 3221225472u, 0, LOGBF_TOLERANCE, 0},
+{155, 1052266988u, 0u, 3221225472u, 0, LOGBF_TOLERANCE, 0},
+{156, 1052602532u, 0u, 3221225472u, 0, LOGBF_TOLERANCE, 0},
+{157, 1052938076u, 0u, 3221225472u, 0, LOGBF_TOLERANCE, 0},
+{158, 1053273620u, 0u, 3221225472u, 0, LOGBF_TOLERANCE, 0},
+{159, 1053609165u, 0u, 3221225472u, 0, LOGBF_TOLERANCE, 0},
+{160, 1053944709u, 0u, 3221225472u, 0, LOGBF_TOLERANCE, 0},
+{161, 1054280253u, 0u, 3221225472u, 0, LOGBF_TOLERANCE, 0},
+{162, 1054615798u, 0u, 3221225472u, 0, LOGBF_TOLERANCE, 0},
+{163, 1054951342u, 0u, 3221225472u, 0, LOGBF_TOLERANCE, 0},
+{164, 1055286886u, 0u, 3221225472u, 0, LOGBF_TOLERANCE, 0},
+{165, 1055622431u, 0u, 3221225472u, 0, LOGBF_TOLERANCE, 0},
+{166, 1055957975u, 0u, 3221225472u, 0, LOGBF_TOLERANCE, 0},
+{167, 1056293519u, 0u, 3221225472u, 0, LOGBF_TOLERANCE, 0},
+{168, 1056629064u, 0u, 3221225472u, 0, LOGBF_TOLERANCE, 0},
+{169, 1056964608u, 0u, 3212836864u, 0, LOGBF_TOLERANCE, 0},
+{170, 1057132380u, 0u, 3212836864u, 0, LOGBF_TOLERANCE, 0},
+{171, 1057300152u, 0u, 3212836864u, 0, LOGBF_TOLERANCE, 0},
+{172, 1057467924u, 0u, 3212836864u, 0, LOGBF_TOLERANCE, 0},
+{173, 1057635697u, 0u, 3212836864u, 0, LOGBF_TOLERANCE, 0},
+{174, 1057803469u, 0u, 3212836864u, 0, LOGBF_TOLERANCE, 0},
+{175, 1057971241u, 0u, 3212836864u, 0, LOGBF_TOLERANCE, 0},
+{176, 1058139013u, 0u, 3212836864u, 0, LOGBF_TOLERANCE, 0},
+{177, 1058306785u, 0u, 3212836864u, 0, LOGBF_TOLERANCE, 0},
+{178, 1058474557u, 0u, 3212836864u, 0, LOGBF_TOLERANCE, 0},
+{179, 1058642330u, 0u, 3212836864u, 0, LOGBF_TOLERANCE, 0},
+{180, 1058810102u, 0u, 3212836864u, 0, LOGBF_TOLERANCE, 0},
+{181, 1058977874u, 0u, 3212836864u, 0, LOGBF_TOLERANCE, 0},
+{182, 1059145646u, 0u, 3212836864u, 0, LOGBF_TOLERANCE, 0},
+{183, 1059313418u, 0u, 3212836864u, 0, LOGBF_TOLERANCE, 0},
+{184, 1059481190u, 0u, 3212836864u, 0, LOGBF_TOLERANCE, 0},
+{185, 1059648963u, 0u, 3212836864u, 0, LOGBF_TOLERANCE, 0},
+{186, 1059816735u, 0u, 3212836864u, 0, LOGBF_TOLERANCE, 0},
+{187, 1059984507u, 0u, 3212836864u, 0, LOGBF_TOLERANCE, 0},
+{188, 1060152279u, 0u, 3212836864u, 0, LOGBF_TOLERANCE, 0},
+{189, 1060320051u, 0u, 3212836864u, 0, LOGBF_TOLERANCE, 0},
+{190, 1060487823u, 0u, 3212836864u, 0, LOGBF_TOLERANCE, 0},
+{191, 1060655596u, 0u, 3212836864u, 0, LOGBF_TOLERANCE, 0},
+{192, 1060823368u, 0u, 3212836864u, 0, LOGBF_TOLERANCE, 0},
+{193, 1060991140u, 0u, 3212836864u, 0, LOGBF_TOLERANCE, 0},
+{194, 1061158912u, 0u, 3212836864u, 0, LOGBF_TOLERANCE, 0},
+{195, 1061326684u, 0u, 3212836864u, 0, LOGBF_TOLERANCE, 0},
+{196, 1061494456u, 0u, 3212836864u, 0, LOGBF_TOLERANCE, 0},
+{197, 1061662228u, 0u, 3212836864u, 0, LOGBF_TOLERANCE, 0},
+{198, 1061830001u, 0u, 3212836864u, 0, LOGBF_TOLERANCE, 0},
+{199, 1061997773u, 0u, 3212836864u, 0, LOGBF_TOLERANCE, 0},
+{200, 1062165545u, 0u, 3212836864u, 0, LOGBF_TOLERANCE, 0},
+{201, 1062333317u, 0u, 3212836864u, 0, LOGBF_TOLERANCE, 0},
+{202, 1062501089u, 0u, 3212836864u, 0, LOGBF_TOLERANCE, 0},
+{203, 1062668861u, 0u, 3212836864u, 0, LOGBF_TOLERANCE, 0},
+{204, 1062836634u, 0u, 3212836864u, 0, LOGBF_TOLERANCE, 0},
+{205, 1063004406u, 0u, 3212836864u, 0, LOGBF_TOLERANCE, 0},
+{206, 1063172178u, 0u, 3212836864u, 0, LOGBF_TOLERANCE, 0},
+{207, 1063339950u, 0u, 3212836864u, 0, LOGBF_TOLERANCE, 0},
+{208, 1063507722u, 0u, 3212836864u, 0, LOGBF_TOLERANCE, 0},
+{209, 1063675494u, 0u, 3212836864u, 0, LOGBF_TOLERANCE, 0},
+{210, 1063843267u, 0u, 3212836864u, 0, LOGBF_TOLERANCE, 0},
+{211, 1064011039u, 0u, 3212836864u, 0, LOGBF_TOLERANCE, 0},
+{212, 1064178811u, 0u, 3212836864u, 0, LOGBF_TOLERANCE, 0},
+{213, 1064346583u, 0u, 3212836864u, 0, LOGBF_TOLERANCE, 0},
+{214, 1064514355u, 0u, 3212836864u, 0, LOGBF_TOLERANCE, 0},
+{215, 1064682127u, 0u, 3212836864u, 0, LOGBF_TOLERANCE, 0},
+{216, 1064849900u, 0u, 3212836864u, 0, LOGBF_TOLERANCE, 0},
+{217, 1065017672u, 0u, 3212836864u, 0, LOGBF_TOLERANCE, 0},
+{218, 1065185444u, 0u, 3212836864u, 0, LOGBF_TOLERANCE, 0},
+{219, 1065353216u, 0u, 0u, 0, LOGBF_TOLERANCE, 0},
+{220, 1065437102u, 0u, 0u, 0, LOGBF_TOLERANCE, 0},
+{221, 1065520988u, 0u, 0u, 0, LOGBF_TOLERANCE, 0},
+{222, 1065604874u, 0u, 0u, 0, LOGBF_TOLERANCE, 0},
+{223, 1065688760u, 0u, 0u, 0, LOGBF_TOLERANCE, 0},
+{224, 1065772646u, 0u, 0u, 0, LOGBF_TOLERANCE, 0},
+{225, 1065856532u, 0u, 0u, 0, LOGBF_TOLERANCE, 0},
+{226, 1065940419u, 0u, 0u, 0, LOGBF_TOLERANCE, 0},
+{227, 1066024305u, 0u, 0u, 0, LOGBF_TOLERANCE, 0},
+{228, 1066108191u, 0u, 0u, 0, LOGBF_TOLERANCE, 0},
+{229, 1066192077u, 0u, 0u, 0, LOGBF_TOLERANCE, 0},
+{230, 1066275963u, 0u, 0u, 0, LOGBF_TOLERANCE, 0},
+{231, 1066359849u, 0u, 0u, 0, LOGBF_TOLERANCE, 0},
+{232, 1066443735u, 0u, 0u, 0, LOGBF_TOLERANCE, 0},
+{233, 1066527621u, 0u, 0u, 0, LOGBF_TOLERANCE, 0},
+{234, 1066611507u, 0u, 0u, 0, LOGBF_TOLERANCE, 0},
+{235, 1066695393u, 0u, 0u, 0, LOGBF_TOLERANCE, 0},
+{236, 1066779279u, 0u, 0u, 0, LOGBF_TOLERANCE, 0},
+{237, 1066863165u, 0u, 0u, 0, LOGBF_TOLERANCE, 0},
+{238, 1066947052u, 0u, 0u, 0, LOGBF_TOLERANCE, 0},
+{239, 3234402267u, 0u, 1073741824u, 0, LOGBF_TOLERANCE, 0},
+{240, 3231108068u, 0u, 1073741824u, 0, LOGBF_TOLERANCE, 0},
+{241, 3226013659u, 0u, 1065353216u, 0, LOGBF_TOLERANCE, 0},
+{242, 3217625051u, 0u, 0u, 0, LOGBF_TOLERANCE, 0},
+{243, 1070141403u, 0u, 0u, 0, LOGBF_TOLERANCE, 0},
+{244, 1078530011u, 0u, 1065353216u, 0, LOGBF_TOLERANCE, 0},
+{245, 1083624420u, 0u, 1073741824u, 0, LOGBF_TOLERANCE, 0},
+{246, 3253731328u, 0u, 1082130432u, 0, LOGBF_TOLERANCE, 0},
+{247, 3252840038u, 0u, 1082130432u, 0, LOGBF_TOLERANCE, 0},
+{248, 3251948749u, 0u, 1082130432u, 0, LOGBF_TOLERANCE, 0},
+{249, 3251057459u, 0u, 1082130432u, 0, LOGBF_TOLERANCE, 0},
+{250, 3250166170u, 0u, 1082130432u, 0, LOGBF_TOLERANCE, 0},
+{251, 3249274880u, 0u, 1082130432u, 0, LOGBF_TOLERANCE, 0},
+{252, 3248383590u, 0u, 1082130432u, 0, LOGBF_TOLERANCE, 0},
+{253, 3247492301u, 0u, 1082130432u, 0, LOGBF_TOLERANCE, 0},
+{254, 3246601011u, 0u, 1082130432u, 0, LOGBF_TOLERANCE, 0},
+{255, 3245028147u, 0u, 1077936128u, 0, LOGBF_TOLERANCE, 0},
+{256, 3243245568u, 0u, 1077936128u, 0, LOGBF_TOLERANCE, 0},
+{257, 3241462989u, 0u, 1077936128u, 0, LOGBF_TOLERANCE, 0},
+{258, 3239680410u, 0u, 1077936128u, 0, LOGBF_TOLERANCE, 0},
+{259, 3237792973u, 0u, 1073741824u, 0, LOGBF_TOLERANCE, 0},
+{260, 3234227814u, 0u, 1073741824u, 0, LOGBF_TOLERANCE, 0},
+{261, 3230662656u, 0u, 1073741824u, 0, LOGBF_TOLERANCE, 0},
+{262, 3224580915u, 0u, 1065353216u, 0, LOGBF_TOLERANCE, 0},
+{263, 3213675725u, 0u, 0u, 0, LOGBF_TOLERANCE, 0},
+{264, 1058642330u, 0u, 3212836864u, 0, LOGBF_TOLERANCE, 0},
+{265, 1075000115u, 0u, 1065353216u, 0, LOGBF_TOLERANCE, 0},
+{266, 1082130432u, 0u, 1073741824u, 0, LOGBF_TOLERANCE, 0},
+{267, 1085695590u, 0u, 1073741824u, 0, LOGBF_TOLERANCE, 0},
+{268, 1089260749u, 0u, 1073741824u, 0, LOGBF_TOLERANCE, 0},
+{269, 1091672474u, 0u, 1077936128u, 0, LOGBF_TOLERANCE, 0},
+{270, 1093455053u, 0u, 1077936128u, 0, LOGBF_TOLERANCE, 0},
+{271, 1095237632u, 0u, 1077936128u, 0, LOGBF_TOLERANCE, 0},
+{272, 1097020211u, 0u, 1077936128u, 0, LOGBF_TOLERANCE, 0},
+{273, 1098802790u, 0u, 1077936128u, 0, LOGBF_TOLERANCE, 0},
+{274, 1099746509u, 0u, 1082130432u, 0, LOGBF_TOLERANCE, 0},
+{275, 1100637798u, 0u, 1082130432u, 0, LOGBF_TOLERANCE, 0},
+{276, 1101529088u, 0u, 1082130432u, 0, LOGBF_TOLERANCE, 0},
+{277, 1102420378u, 0u, 1082130432u, 0, LOGBF_TOLERANCE, 0},
+{278, 1103311667u, 0u, 1082130432u, 0, LOGBF_TOLERANCE, 0},
+{279, 1104202957u, 0u, 1082130432u, 0, LOGBF_TOLERANCE, 0},
+{280, 1105094246u, 0u, 1082130432u, 0, LOGBF_TOLERANCE, 0},
+{281, 1105985536u, 0u, 1082130432u, 0, LOGBF_TOLERANCE, 0},
+{282, 1107800421u, 1203999711u, 1084227584u, 0, LOGBF_TOLERANCE, 0},
+{283, 3196650934u, 896005582u, 3221225472u, 0, LOGBF_TOLERANCE, 0},
+{284, 3368700125u, 3308232444u, 1099956224u, 0, LOGBF_TOLERANCE, 0},
+{285, 1224242132u, 3061363425u, 1099956224u, 0, LOGBF_TOLERANCE, 0},
+{286, 3221027117u, 1284201705u, 0u, 0, LOGBF_TOLERANCE, 0},
+{287, 1198712763u, 919636942u, 1097859072u, 0, LOGBF_TOLERANCE, 0},
+{288, 867432512u, 3067736756u, 3250585600u, 0, LOGBF_TOLERANCE, 0},
+{289, 3159309973u, 852521077u, 3235905536u, 0, LOGBF_TOLERANCE, 0},
+{290, 954173073u, 850531830u, 3244294144u, 0, LOGBF_TOLERANCE, 0},
+{291, 3090780435u, 1035260608u, 3245342720u, 0, LOGBF_TOLERANCE, 0},
+{292, 966554515u, 3234538174u, 3242196992u, 0, LOGBF_TOLERANCE, 0},
+{293, 1312607135u, 1194999402u, 1105723392u, 0, LOGBF_TOLERANCE, 0},
+{294, 1166191415u, 1018661564u, 1094713344u, 0, LOGBF_TOLERANCE, 0},
+{295, 3111900019u, 1130472166u, 3243245568u, 0, LOGBF_TOLERANCE, 0},
+{296, 1234419246u, 2984575812u, 1101004800u, 0, LOGBF_TOLERANCE, 0},
+{297, 1302107128u, 3370647675u, 1105199104u, 0, LOGBF_TOLERANCE, 0},
+{298, 1052801068u, 3039122570u, 3221225472u, 0, LOGBF_TOLERANCE, 0},
+{299, 1060849628u, 3081357692u, 3212836864u, 0, LOGBF_TOLERANCE, 0},
+{300, 3010214568u, 3446630737u, 3251109888u, 0, LOGBF_TOLERANCE, 0},
+{301, 3484320003u, 3033957825u, 1107296256u, 0, LOGBF_TOLERANCE, 0},
+{302, 3181522772u, 3305392896u, 3229614080u, 0, LOGBF_TOLERANCE, 0},
+{303, 882596369u, 1256676590u, 3249537024u, 0, LOGBF_TOLERANCE, 0},
+{304, 1167223673u, 846102364u, 1094713344u, 0, LOGBF_TOLERANCE, 0},
+{305, 968192794u, 878547432u, 3242196992u, 0, LOGBF_TOLERANCE, 0},
+{306, 3122346862u, 1111584337u, 3241148416u, 0, LOGBF_TOLERANCE, 0},
+{307, 1052361612u, 1280025214u, 3221225472u, 0, LOGBF_TOLERANCE, 0},
+{308, 906701409u, 2968301825u, 3247964160u, 0, LOGBF_TOLERANCE, 0},
+{309, 3471653172u, 1154138102u, 1106247680u, 0, LOGBF_TOLERANCE, 0},
+{310, 843024648u, 3166833184u, 3252158464u, 0, LOGBF_TOLERANCE, 0},
+{311, 3231467496u, 934336592u, 1073741824u, 0, LOGBF_TOLERANCE, 0},
+{312, 1341514497u, 3466051188u, 1107296256u, 0, LOGBF_TOLERANCE, 0},
+{313, 1272351391u, 3373485062u, 1103101952u, 0, LOGBF_TOLERANCE, 0},
+{314, 3319724992u, 3354615790u, 1094713344u, 0, LOGBF_TOLERANCE, 0},
+{315, 3013402113u, 3266377514u, 3250585600u, 0, LOGBF_TOLERANCE, 0},
+{316, 917622040u, 1334966485u, 3247439872u, 0, LOGBF_TOLERANCE, 0},
+{317, 940236348u, 3304072663u, 3245342720u, 0, LOGBF_TOLERANCE, 0},
+{318, 2963234879u, 977028681u, 3253731328u, 0, LOGBF_TOLERANCE, 0},
+{319, 3251541546u, 3174764041u, 1082130432u, 0, LOGBF_TOLERANCE, 0},
+{320, 3099843889u, 3355962282u, 3244294144u, 0, LOGBF_TOLERANCE, 0},
+{321, 3110358400u, 851145088u, 3243245568u, 0, LOGBF_TOLERANCE, 0},
+{322, 3371863479u, 1014861921u, 1099956224u, 0, LOGBF_TOLERANCE, 0},
+{323, 3204069187u, 966573255u, 3221225472u, 0, LOGBF_TOLERANCE, 0},
+{324, 1306460502u, 903489435u, 1105199104u, 0, LOGBF_TOLERANCE, 0},
+{325, 1197542187u, 3024598921u, 1097859072u, 0, LOGBF_TOLERANCE, 0},
+{326, 922888249u, 1139392309u, 3246915584u, 0, LOGBF_TOLERANCE, 0},
+{327, 1184239996u, 3224098462u, 1096810496u, 0, LOGBF_TOLERANCE, 0},
+{328, 1252490238u, 1173619825u, 1102053376u, 0, LOGBF_TOLERANCE, 0},
+{329, 1001673627u, 3462631271u, 3238002688u, 0, LOGBF_TOLERANCE, 0},
+{330, 976098044u, 1151967422u, 3241148416u, 0, LOGBF_TOLERANCE, 0},
+{331, 941796645u, 886451963u, 3245342720u, 0, LOGBF_TOLERANCE, 0},
+{332, 3006797923u, 1103058486u, 3251109888u, 0, LOGBF_TOLERANCE, 0},
+{333, 855756273u, 3217259624u, 3251109888u, 0, LOGBF_TOLERANCE, 0},
+{334, 3287199470u, 854245542u, 1090519040u, 0, LOGBF_TOLERANCE, 0},
+{335, 893184329u, 1243067084u, 3249012736u, 0, LOGBF_TOLERANCE, 0},
+{336, 1143233714u, 1007268238u, 1091567616u, 0, LOGBF_TOLERANCE, 0},
+{337, 1139941253u, 1147688821u, 1090519040u, 0, LOGBF_TOLERANCE, 0},
+{338, 3143717025u, 3234638157u, 3239051264u, 0, LOGBF_TOLERANCE, 0},
+{339, 3048866608u, 3449209899u, 3248488448u, 0, LOGBF_TOLERANCE, 0},
+{340, 3240298487u, 1020260821u, 1077936128u, 0, LOGBF_TOLERANCE, 0},
+{341, 1288902137u, 3123875978u, 1104150528u, 0, LOGBF_TOLERANCE, 0},
+{342, 1333134799u, 1338107877u, 1106771968u, 0, LOGBF_TOLERANCE, 0},
+{343, 1187847971u, 1317663644u, 1096810496u, 0, LOGBF_TOLERANCE, 0},
+{344, 1038851706u, 1327544110u, 3229614080u, 0, LOGBF_TOLERANCE, 0},
+{345, 3329354473u, 3165437289u, 1095761920u, 0, LOGBF_TOLERANCE, 0},
+{346, 3077218579u, 1308397879u, 3246915584u, 0, LOGBF_TOLERANCE, 0},
+{347, 1309289088u, 1019883016u, 1105723392u, 0, LOGBF_TOLERANCE, 0},
+{348, 2991550291u, 1294782875u, 3252158464u, 0, LOGBF_TOLERANCE, 0},
+{349, 3444653659u, 1279248024u, 1104674816u, 0, LOGBF_TOLERANCE, 0},
+{350, 3405585402u, 2962345057u, 1102053376u, 0, LOGBF_TOLERANCE, 0},
+{351, 3106647724u, 853848387u, 3243245568u, 0, LOGBF_TOLERANCE, 0},
+{352, 1106778573u, 3304487767u, 1082130432u, 0, LOGBF_TOLERANCE, 0},
+{353, 1140567947u, 3069174149u, 1090519040u, 0, LOGBF_TOLERANCE, 0},
+{354, 1238569473u, 873035665u, 1101004800u, 0, LOGBF_TOLERANCE, 0},
+{355, 840375965u, 3223983207u, 3252158464u, 0, LOGBF_TOLERANCE, 0},
+{356, 3154871957u, 1276671061u, 3235905536u, 0, LOGBF_TOLERANCE, 0},
+{357, 1261071232u, 1182202773u, 1102577664u, 0, LOGBF_TOLERANCE, 0},
+{358, 1175011025u, 3029705783u, 1095761920u, 0, LOGBF_TOLERANCE, 0},
+{359, 1082692850u, 1211581107u, 1073741824u, 0, LOGBF_TOLERANCE, 0},
+{360, 974547519u, 3475164509u, 3241148416u, 0, LOGBF_TOLERANCE, 0},
+{361, 3058097085u, 3104309359u, 3247964160u, 0, LOGBF_TOLERANCE, 0},
+{362, 3107252546u, 1071134451u, 3243245568u, 0, LOGBF_TOLERANCE, 0},
+{363, 3096032662u, 2976848821u, 3244294144u, 0, LOGBF_TOLERANCE, 0},
+{364, 3197942144u, 3094120030u, 3221225472u, 0, LOGBF_TOLERANCE, 0},
+{365, 3403348556u, 3184653669u, 1102053376u, 0, LOGBF_TOLERANCE, 0},
+{366, 2998032500u, 3373011130u, 3251634176u, 0, LOGBF_TOLERANCE, 0},
+{367, 3182301130u, 3460764044u, 3229614080u, 0, LOGBF_TOLERANCE, 0},
+{368, 1136411063u, 1118097422u, 1090519040u, 0, LOGBF_TOLERANCE, 0},
+{369, 3239231622u, 3302723069u, 1077936128u, 0, LOGBF_TOLERANCE, 0},
+{370, 3340615780u, 870350055u, 1097859072u, 0, LOGBF_TOLERANCE, 0},
+{371, 998567360u, 2995278691u, 3238002688u, 0, LOGBF_TOLERANCE, 0},
+{372, 3417964312u, 1321337529u, 1103101952u, 0, LOGBF_TOLERANCE, 0},
+{373, 3109481038u, 1143864063u, 3243245568u, 0, LOGBF_TOLERANCE, 0},
+{374, 1148867223u, 1256486202u, 1091567616u, 0, LOGBF_TOLERANCE, 0},
+{375, 2960983878u, 1314196594u, 3254255616u, 0, LOGBF_TOLERANCE, 0},
+{376, 989687421u, 3372681320u, 3240099840u, 0, LOGBF_TOLERANCE, 0},
+{377, 1152956913u, 3166480640u, 1092616192u, 0, LOGBF_TOLERANCE, 0},
+{378, 892922651u, 3373029087u, 3249012736u, 0, LOGBF_TOLERANCE, 0},
+{379, 1109627625u, 1314158257u, 1084227584u, 0, LOGBF_TOLERANCE, 0},
+{380, 1307091856u, 1103202538u, 1105199104u, 0, LOGBF_TOLERANCE, 0},
+{381, 1077234132u, 3272167130u, 1065353216u, 0, LOGBF_TOLERANCE, 0},
+{382, 1142167709u, 1096445242u, 1091567616u, 0, LOGBF_TOLERANCE, 0},
+{383, 3426232834u, 1036705270u, 1103626240u, 0, LOGBF_TOLERANCE, 0},
+{384, 3000726366u, 3172023300u, 3251634176u, 0, LOGBF_TOLERANCE, 0},
+{385, 3368566779u, 967249167u, 1099956224u, 0, LOGBF_TOLERANCE, 0},
+{386, 3030724760u, 3349013503u, 3249537024u, 0, LOGBF_TOLERANCE, 0},
+{387, 1138741813u, 3073453199u, 1090519040u, 0, LOGBF_TOLERANCE, 0},
+{388, 982950501u, 982549888u, 3240099840u, 0, LOGBF_TOLERANCE, 0},
+{389, 1142981585u, 1015602236u, 1091567616u, 0, LOGBF_TOLERANCE, 0},
+{390, 3016453868u, 3365560001u, 3250585600u, 0, LOGBF_TOLERANCE, 0},
+{391, 3347165962u, 3135486696u, 1098907648u, 0, LOGBF_TOLERANCE, 0},
+{392, 1009535440u, 3381353228u, 3235905536u, 0, LOGBF_TOLERANCE, 0},
+{393, 3103736980u, 3402950505u, 3244294144u, 0, LOGBF_TOLERANCE, 0},
+{394, 3126820946u, 1077903063u, 3241148416u, 0, LOGBF_TOLERANCE, 0},
+{395, 3473956030u, 976891930u, 1106771968u, 0, LOGBF_TOLERANCE, 0},
+{396, 3349098349u, 1055327704u, 1098907648u, 0, LOGBF_TOLERANCE, 0},
+{397, 3152729489u, 1060398533u, 3238002688u, 0, LOGBF_TOLERANCE, 0},
+{398, 945568720u, 3313485084u, 3245342720u, 0, LOGBF_TOLERANCE, 0},
+{399, 3345489836u, 1108392401u, 1097859072u, 0, LOGBF_TOLERANCE, 0},
+{400, 940893161u, 1137000140u, 3245342720u, 0, LOGBF_TOLERANCE, 0},
+{401, 976791751u, 3230678102u, 3241148416u, 0, LOGBF_TOLERANCE, 0},
+{402, 3013749677u, 1324802687u, 3250585600u, 0, LOGBF_TOLERANCE, 0},
+{403, 1004442355u, 3036510596u, 3238002688u, 0, LOGBF_TOLERANCE, 0},
+{404, 1108485380u, 3173536878u, 1084227584u, 0, LOGBF_TOLERANCE, 0},
+{405, 1061834641u, 972388096u, 3212836864u, 0, LOGBF_TOLERANCE, 0},
+{406, 3381268392u, 1146976802u, 1101004800u, 0, LOGBF_TOLERANCE, 0},
+{407, 1087189715u, 2952822478u, 1073741824u, 0, LOGBF_TOLERANCE, 0},
+{408, 3212952285u, 3329407365u, 0u, 0, LOGBF_TOLERANCE, 0},
+{409, 1000611335u, 857599439u, 3238002688u, 0, LOGBF_TOLERANCE, 0},
+{410, 847191250u, 1227905777u, 3252158464u, 0, LOGBF_TOLERANCE, 0},
+{411, 3466188568u, 1041678304u, 1106247680u, 0, LOGBF_TOLERANCE, 0},
+{412, 2968337765u, 3091399866u, 3253731328u, 0, LOGBF_TOLERANCE, 0},
+{413, 3072456205u, 3160254633u, 3246915584u, 0, LOGBF_TOLERANCE, 0},
+{414, 3319315516u, 3422089012u, 1094713344u, 0, LOGBF_TOLERANCE, 0},
+{415, 935938416u, 1146676692u, 3246391296u, 0, LOGBF_TOLERANCE, 0},
+{416, 3212614372u, 1152633030u, 3212836864u, 0, LOGBF_TOLERANCE, 0},
+{417, 1315030230u, 3336225884u, 1105723392u, 0, LOGBF_TOLERANCE, 0},
+{418, 822041816u, 898402905u, 3253731328u, 0, LOGBF_TOLERANCE, 0},
+{419, 1134593658u, 3456812581u, 1090519040u, 0, LOGBF_TOLERANCE, 0},
+{420, 977281449u, 879922831u, 3241148416u, 0, LOGBF_TOLERANCE, 0},
+{421, 1086198791u, 920125958u, 1073741824u, 0, LOGBF_TOLERANCE, 0},
+{422, 1255152035u, 851754050u, 1102053376u, 0, LOGBF_TOLERANCE, 0},
+{423, 1135271264u, 3284878412u, 1090519040u, 0, LOGBF_TOLERANCE, 0},
+{424, 1094190727u, 1056854532u, 1077936128u, 0, LOGBF_TOLERANCE, 0},
+{425, 1294665325u, 991185677u, 1104674816u, 0, LOGBF_TOLERANCE, 0},
+{426, 1036608591u, 805416536u, 3229614080u, 0, LOGBF_TOLERANCE, 0},
+{427, 2960459834u, 1296239160u, 3254255616u, 0, LOGBF_TOLERANCE, 0},
+{428, 3229998064u, 825237063u, 1073741824u, 0, LOGBF_TOLERANCE, 0},
+{429, 3439134022u, 1043829691u, 1104150528u, 0, LOGBF_TOLERANCE, 0},
+{430, 3073083133u, 1317170485u, 3246915584u, 0, LOGBF_TOLERANCE, 0},
+{431, 1325668223u, 970681762u, 1106771968u, 0, LOGBF_TOLERANCE, 0},
+{432, 1092037607u, 1027330835u, 1077936128u, 0, LOGBF_TOLERANCE, 0},
+{433, 826457956u, 3343511749u, 3253207040u, 0, LOGBF_TOLERANCE, 0},
+{434, 3316278408u, 3455589207u, 1094713344u, 0, LOGBF_TOLERANCE, 0},
+{435, 3295436768u, 3129873731u, 1091567616u, 0, LOGBF_TOLERANCE, 0},
+{436, 1151984049u, 3074547120u, 1092616192u, 0, LOGBF_TOLERANCE, 0},
+{437, 1129287043u, 3076527544u, 1088421888u, 0, LOGBF_TOLERANCE, 0},
+{438, 1243664530u, 972879810u, 1101529088u, 0, LOGBF_TOLERANCE, 0},
+{439, 950829092u, 929114193u, 3244294144u, 0, LOGBF_TOLERANCE, 0},
+{440, 1115471979u, 3047246262u, 1084227584u, 0, LOGBF_TOLERANCE, 0},
+{441, 3351092088u, 3024661404u, 1098907648u, 0, LOGBF_TOLERANCE, 0},
+{442, 3424479544u, 3312047722u, 1103626240u, 0, LOGBF_TOLERANCE, 0},
+{443, 3241193975u, 884465785u, 1077936128u, 0, LOGBF_TOLERANCE, 0},
+{444, 811700241u, 3478509398u, 3254255616u, 0, LOGBF_TOLERANCE, 0},
+{445, 1030934236u, 1045139240u, 3231711232u, 0, LOGBF_TOLERANCE, 0},
+{446, 3131791114u, 3408392958u, 3240099840u, 0, LOGBF_TOLERANCE, 0},
+{447, 1025254314u, 3057812821u, 3231711232u, 0, LOGBF_TOLERANCE, 0},
+{448, 1110545760u, 3240144177u, 1084227584u, 0, LOGBF_TOLERANCE, 0},
+{449, 826998191u, 1091496527u, 3253207040u, 0, LOGBF_TOLERANCE, 0},
+{450, 3180213739u, 1108793820u, 3229614080u, 0, LOGBF_TOLERANCE, 0},
+{451, 3361976590u, 3138179993u, 1099431936u, 0, LOGBF_TOLERANCE, 0},
+{452, 881280146u, 3421884736u, 3249537024u, 0, LOGBF_TOLERANCE, 0},
+{453, 1304154705u, 2961937089u, 1105199104u, 0, LOGBF_TOLERANCE, 0},
+{454, 3264443610u, 3222916705u, 1086324736u, 0, LOGBF_TOLERANCE, 0},
+{455, 3374550627u, 3055856293u, 1100480512u, 0, LOGBF_TOLERANCE, 0},
+{456, 2979664918u, 3365394784u, 3252682752u, 0, LOGBF_TOLERANCE, 0},
+{457, 899599265u, 3240118211u, 3248488448u, 0, LOGBF_TOLERANCE, 0},
+{458, 842476444u, 3452685905u, 3252158464u, 0, LOGBF_TOLERANCE, 0},
+{459, 1268194719u, 1332489410u, 1103101952u, 0, LOGBF_TOLERANCE, 0},
+{460, 1133420220u, 1245770860u, 1090519040u, 0, LOGBF_TOLERANCE, 0},
+{461, 1161858787u, 815362075u, 1093664768u, 0, LOGBF_TOLERANCE, 0},
+{462, 3184462258u, 1263529646u, 3229614080u, 0, LOGBF_TOLERANCE, 0},
+{463, 3295996963u, 3453334307u, 1091567616u, 0, LOGBF_TOLERANCE, 0},
+{464, 1270887389u, 1156123987u, 1103101952u, 0, LOGBF_TOLERANCE, 0},
+{465, 3325193181u, 993979179u, 1095761920u, 0, LOGBF_TOLERANCE, 0},
+{466, 925657343u, 1315159742u, 3246915584u, 0, LOGBF_TOLERANCE, 0},
+{467, 3115275450u, 3008350271u, 3242196992u, 0, LOGBF_TOLERANCE, 0},
+{468, 3116607482u, 3224327456u, 3242196992u, 0, LOGBF_TOLERANCE, 0},
+{469, 3187892415u, 3118097315u, 3225419776u, 0, LOGBF_TOLERANCE, 0},
+{470, 1189120494u, 978961471u, 1096810496u, 0, LOGBF_TOLERANCE, 0},
+{471, 889030794u, 3129523970u, 3249537024u, 0, LOGBF_TOLERANCE, 0},
+{472, 1323529208u, 3100744786u, 1106247680u, 0, LOGBF_TOLERANCE, 0},
+{473, 2975945347u, 940445933u, 3253207040u, 0, LOGBF_TOLERANCE, 0},
+{474, 3465768388u, 3190881451u, 1106247680u, 0, LOGBF_TOLERANCE, 0},
+{475, 3426099899u, 1118756120u, 1103626240u, 0, LOGBF_TOLERANCE, 0},
+{476, 3224857113u, 3398166843u, 1065353216u, 0, LOGBF_TOLERANCE, 0},
+{477, 1065798296u, 816191940u, 0u, 0, LOGBF_TOLERANCE, 0},
+{478, 3328989444u, 850266225u, 1095761920u, 0, LOGBF_TOLERANCE, 0},
+{479, 3357819026u, 3148475462u, 1099431936u, 0, LOGBF_TOLERANCE, 0},
+{480, 1273397670u, 901308750u, 1103101952u, 0, LOGBF_TOLERANCE, 0},
+{481, 3424831780u, 1304806106u, 1103626240u, 0, LOGBF_TOLERANCE, 0},
+{482, 1257596246u, 3420832544u, 1102053376u, 0, LOGBF_TOLERANCE, 0},
+{483, 1051773536u, 896271348u, 3221225472u, 0, LOGBF_TOLERANCE, 0},
+{484, 3294752507u, 3113225954u, 1091567616u, 0, LOGBF_TOLERANCE, 0},
+{485, 3424848725u, 2973850350u, 1103626240u, 0, LOGBF_TOLERANCE, 0},
+{486, 1090870906u, 3294742905u, 1077936128u, 0, LOGBF_TOLERANCE, 0},
+{487, 1227582289u, 1208979668u, 1100480512u, 0, LOGBF_TOLERANCE, 0},
+{488, 2996780709u, 852318215u, 3251634176u, 0, LOGBF_TOLERANCE, 0},
+{489, 1272325814u, 3004311296u, 1103101952u, 0, LOGBF_TOLERANCE, 0},
+{490, 3359508271u, 859974315u, 1099431936u, 0, LOGBF_TOLERANCE, 0},
+{491, 2992737514u, 2999023943u, 3252158464u, 0, LOGBF_TOLERANCE, 0},
+{492, 1137854355u, 3335041917u, 1090519040u, 0, LOGBF_TOLERANCE, 0},
+{493, 3440773058u, 3204192793u, 1104674816u, 0, LOGBF_TOLERANCE, 0},
+{494, 3101598400u, 3057760708u, 3244294144u, 0, LOGBF_TOLERANCE, 0},
+{495, 3451216836u, 3347783723u, 1105199104u, 0, LOGBF_TOLERANCE, 0},
+{496, 3437062994u, 3106834845u, 1104150528u, 0, LOGBF_TOLERANCE, 0},
+{497, 1131196082u, 1164573183u, 1088421888u, 0, LOGBF_TOLERANCE, 0},
+{498, 3177294154u, 1282436638u, 3231711232u, 0, LOGBF_TOLERANCE, 0},
+{499, 3258097678u, 1305882290u, 1084227584u, 0, LOGBF_TOLERANCE, 0},
+{500, 3460915348u, 1219372260u, 1105723392u, 0, LOGBF_TOLERANCE, 0},
+{501, 3009547195u, 1256074626u, 3251109888u, 0, LOGBF_TOLERANCE, 0},
+{502, 3303035472u, 3153013020u, 1092616192u, 0, LOGBF_TOLERANCE, 0},
+{503, 1053698677u, 3284313107u, 3221225472u, 0, LOGBF_TOLERANCE, 0},
+{504, 3396166221u, 1201894512u, 1101529088u, 0, LOGBF_TOLERANCE, 0},
+{505, 3037541131u, 1085398440u, 3249012736u, 0, LOGBF_TOLERANCE, 0},
+{506, 3458934263u, 1005577835u, 1105723392u, 0, LOGBF_TOLERANCE, 0},
+{507, 1065761827u, 3333928591u, 0u, 0, LOGBF_TOLERANCE, 0},
+{508, 3025843188u, 820250112u, 3250061312u, 0, LOGBF_TOLERANCE, 0},
+{509, 3017430347u, 3009209071u, 3250585600u, 0, LOGBF_TOLERANCE, 0},
+{510, 926665223u, 3150815797u, 3246915584u, 0, LOGBF_TOLERANCE, 0},
+{511, 2970966181u, 3383521344u, 3253207040u, 0, LOGBF_TOLERANCE, 0},
+{512, 1199816046u, 3143776186u, 1098907648u, 0, LOGBF_TOLERANCE, 0},
+{513, 3333779015u, 952421041u, 1096810496u, 0, LOGBF_TOLERANCE, 0},
+{514, 856234019u, 3091454180u, 3251109888u, 0, LOGBF_TOLERANCE, 0},
+{515, 948398145u, 3238273189u, 3244294144u, 0, LOGBF_TOLERANCE, 0},
+{516, 3054021468u, 1270257895u, 3247964160u, 0, LOGBF_TOLERANCE, 0},
+{517, 1080781593u, 1213908300u, 1065353216u, 0, LOGBF_TOLERANCE, 0},
+{518, 3164749613u, 3010837763u, 3233808384u, 0, LOGBF_TOLERANCE, 0},
+{519, 2971341371u, 1014754300u, 3253207040u, 0, LOGBF_TOLERANCE, 0},
+{520, 3235326590u, 1271705594u, 1073741824u, 0, LOGBF_TOLERANCE, 0},
+{521, 3118883815u, 1051802647u, 3242196992u, 0, LOGBF_TOLERANCE, 0},
+{522, 965378004u, 1292594138u, 3242196992u, 0, LOGBF_TOLERANCE, 0},
+{523, 3226990408u, 1110755136u, 1065353216u, 0, LOGBF_TOLERANCE, 0},
+{524, 2953069847u, 3293953199u, 3254255616u, 0, LOGBF_TOLERANCE, 0},
+{525, 3117098218u, 1122474770u, 3242196992u, 0, LOGBF_TOLERANCE, 0},
+{526, 1283624229u, 906796922u, 1104150528u, 0, LOGBF_TOLERANCE, 0},
+{527, 860729004u, 1163935062u, 3251109888u, 0, LOGBF_TOLERANCE, 0},
+{528, 970649315u, 1078286437u, 3242196992u, 0, LOGBF_TOLERANCE, 0},
+{529, 959776291u, 3280345347u, 3243245568u, 0, LOGBF_TOLERANCE, 0},
+{530, 3341117305u, 3294559023u, 1097859072u, 0, LOGBF_TOLERANCE, 0},
+{531, 1270734970u, 3355874874u, 1103101952u, 0, LOGBF_TOLERANCE, 0},
+{532, 3454816067u, 868771977u, 1105199104u, 0, LOGBF_TOLERANCE, 0},
+{533, 917206623u, 1172710814u, 3247439872u, 0, LOGBF_TOLERANCE, 0},
+{534, 1106502045u, 1290849316u, 1082130432u, 0, LOGBF_TOLERANCE, 0},
+{535, 1157598381u, 3309023746u, 1092616192u, 0, LOGBF_TOLERANCE, 0},
+{536, 835476614u, 1092590501u, 3252682752u, 0, LOGBF_TOLERANCE, 0},
+{537, 3335234513u, 1002337336u, 1096810496u, 0, LOGBF_TOLERANCE, 0},
+{538, 1279489061u, 1006049444u, 1103626240u, 0, LOGBF_TOLERANCE, 0},
+{539, 807133892u, 1110992491u, 3254255616u, 0, LOGBF_TOLERANCE, 0},
+{540, 3157416480u, 1309984610u, 3235905536u, 0, LOGBF_TOLERANCE, 0},
+{541, 3143920719u, 3131608518u, 3239051264u, 0, LOGBF_TOLERANCE, 0},
+{542, 2995340689u, 1165036009u, 3251634176u, 0, LOGBF_TOLERANCE, 0},
+{543, 1233171235u, 826460580u, 1101004800u, 0, LOGBF_TOLERANCE, 0},
+{544, 1148920078u, 1007674793u, 1091567616u, 0, LOGBF_TOLERANCE, 0},
+{545, 3064988156u, 3230867340u, 3247439872u, 0, LOGBF_TOLERANCE, 0},
+{546, 3083619260u, 1159415661u, 3246391296u, 0, LOGBF_TOLERANCE, 0},
+{547, 1109198803u, 1221754614u, 1084227584u, 0, LOGBF_TOLERANCE, 0},
+{548, 3219949483u, 1056167693u, 0u, 0, LOGBF_TOLERANCE, 0},
+{549, 3361149474u, 3387342069u, 1099431936u, 0, LOGBF_TOLERANCE, 0},
+{550, 827931800u, 1118474231u, 3253207040u, 0, LOGBF_TOLERANCE, 0},
+{551, 1207502108u, 3388073586u, 1098907648u, 0, LOGBF_TOLERANCE, 0},
+{552, 1000014431u, 831213088u, 3238002688u, 0, LOGBF_TOLERANCE, 0},
+{553, 3161756316u, 3143659754u, 3235905536u, 0, LOGBF_TOLERANCE, 0},
+{554, 3160728744u, 3382954009u, 3235905536u, 0, LOGBF_TOLERANCE, 0},
+{555, 1234530539u, 1079988872u, 1101004800u, 0, LOGBF_TOLERANCE, 0},
+{556, 1017843965u, 1193076204u, 3233808384u, 0, LOGBF_TOLERANCE, 0},
+{557, 2965746635u, 3248194237u, 3253731328u, 0, LOGBF_TOLERANCE, 0},
+{558, 951862956u, 1173464654u, 3244294144u, 0, LOGBF_TOLERANCE, 0},
+{559, 3306328852u, 1118701064u, 1093664768u, 0, LOGBF_TOLERANCE, 0},
+{560, 1291910469u, 1211303367u, 1104674816u, 0, LOGBF_TOLERANCE, 0},
+{561, 3027442905u, 1173894400u, 3250061312u, 0, LOGBF_TOLERANCE, 0},
+{562, 809646928u, 3006525025u, 3254255616u, 0, LOGBF_TOLERANCE, 0},
+{563, 1131927531u, 3182962700u, 1088421888u, 0, LOGBF_TOLERANCE, 0},
+{564, 3449879391u, 991614550u, 1105199104u, 0, LOGBF_TOLERANCE, 0},
+{565, 970094304u, 3344590506u, 3242196992u, 0, LOGBF_TOLERANCE, 0},
+{566, 1125551064u, 3331248076u, 1088421888u, 0, LOGBF_TOLERANCE, 0},
+{567, 3427296372u, 3455289118u, 1103626240u, 0, LOGBF_TOLERANCE, 0},
+{568, 1198917460u, 1327195159u, 1097859072u, 0, LOGBF_TOLERANCE, 0},
+{569, 3201603336u, 820047343u, 3221225472u, 0, LOGBF_TOLERANCE, 0},
+{570, 3114686212u, 3476082461u, 3242196992u, 0, LOGBF_TOLERANCE, 0},
+{571, 921940707u, 2967544056u, 3247439872u, 0, LOGBF_TOLERANCE, 0},
+{572, 1091906532u, 3011904455u, 1077936128u, 0, LOGBF_TOLERANCE, 0},
+{573, 3393557778u, 3383396815u, 1101529088u, 0, LOGBF_TOLERANCE, 0},
+{574, 1276853215u, 873199561u, 1103626240u, 0, LOGBF_TOLERANCE, 0},
+{575, 3462778440u, 3349284325u, 1105723392u, 0, LOGBF_TOLERANCE, 0},
+{576, 833132358u, 3470358002u, 3252682752u, 0, LOGBF_TOLERANCE, 0},
+{577, 3360170117u, 3048354042u, 1099431936u, 0, LOGBF_TOLERANCE, 0},
+{578, 3224245428u, 3271307999u, 1065353216u, 0, LOGBF_TOLERANCE, 0},
+{579, 1120124467u, 1135619937u, 1086324736u, 0, LOGBF_TOLERANCE, 0},
+{580, 1064364381u, 3180675544u, 3212836864u, 0, LOGBF_TOLERANCE, 0},
+{581, 1268744779u, 3328452652u, 1103101952u, 0, LOGBF_TOLERANCE, 0},
+{582, 1165195428u, 3390323168u, 1093664768u, 0, LOGBF_TOLERANCE, 0},
+{583, 3044092739u, 1106497311u, 3249012736u, 0, LOGBF_TOLERANCE, 0},
+{584, 3149469534u, 1278465842u, 3238002688u, 0, LOGBF_TOLERANCE, 0},
+{585, 3247790039u, 909788142u, 1082130432u, 0, LOGBF_TOLERANCE, 0},
+{586, 3215244648u, 1083988595u, 0u, 0, LOGBF_TOLERANCE, 0},
+{587, 3095275931u, 989153382u, 3245342720u, 0, LOGBF_TOLERANCE, 0},
+{588, 3059688264u, 1117455718u, 3247964160u, 0, LOGBF_TOLERANCE, 0},
+{589, 2990022513u, 1061714285u, 3252158464u, 0, LOGBF_TOLERANCE, 0},
+{590, 1212717473u, 837873779u, 1099431936u, 0, LOGBF_TOLERANCE, 0},
+{591, 3275973009u, 3450721670u, 1088421888u, 0, LOGBF_TOLERANCE, 0},
+{592, 3028857014u, 3188853813u, 3249537024u, 0, LOGBF_TOLERANCE, 0},
+{593, 3391162308u, 1291220039u, 1101529088u, 0, LOGBF_TOLERANCE, 0},
+{594, 1044867873u, 3369493273u, 3225419776u, 0, LOGBF_TOLERANCE, 0},
+{595, 1089986803u, 3462160118u, 1073741824u, 0, LOGBF_TOLERANCE, 0},
+{596, 1296314700u, 2957454177u, 1104674816u, 0, LOGBF_TOLERANCE, 0},
+{597, 1251462432u, 3171021770u, 1102053376u, 0, LOGBF_TOLERANCE, 0},
+{598, 3485236902u, 980772835u, 1107296256u, 0, LOGBF_TOLERANCE, 0},
+{599, 3262169538u, 1268270462u, 1084227584u, 0, LOGBF_TOLERANCE, 0},
+{600, 3080852256u, 994641495u, 3246391296u, 0, LOGBF_TOLERANCE, 0},
+{601, 1022211242u, 922124181u, 3233808384u, 0, LOGBF_TOLERANCE, 0},
+{602, 884661176u, 2985540645u, 3249537024u, 0, LOGBF_TOLERANCE, 0},
+{603, 3071422941u, 3271100396u, 3246915584u, 0, LOGBF_TOLERANCE, 0},
+{604, 989762529u, 3362011135u, 3240099840u, 0, LOGBF_TOLERANCE, 0},
+{605, 1295475718u, 3212305413u, 1104674816u, 0, LOGBF_TOLERANCE, 0},
+{606, 1002632518u, 3330388441u, 3238002688u, 0, LOGBF_TOLERANCE, 0},
+{607, 3404372005u, 3450484255u, 1102053376u, 0, LOGBF_TOLERANCE, 0},
+{608, 3158912530u, 3105501826u, 3235905536u, 0, LOGBF_TOLERANCE, 0},
+{609, 2987029985u, 1218447414u, 3252158464u, 0, LOGBF_TOLERANCE, 0},
+{610, 1125800069u, 3256265749u, 1088421888u, 0, LOGBF_TOLERANCE, 0},
+{611, 3138037576u, 3103365227u, 3239051264u, 0, LOGBF_TOLERANCE, 0},
+{612, 3108384823u, 1300246663u, 3243245568u, 0, LOGBF_TOLERANCE, 0},
+{613, 999985470u, 3409354318u, 3238002688u, 0, LOGBF_TOLERANCE, 0},
+{614, 1189421739u, 1056599002u, 1096810496u, 0, LOGBF_TOLERANCE, 0},
+{615, 3075182644u, 3144159778u, 3246915584u, 0, LOGBF_TOLERANCE, 0},
+{616, 3028099649u, 3391513557u, 3250061312u, 0, LOGBF_TOLERANCE, 0},
+{617, 837703706u, 3467473756u, 3252682752u, 0, LOGBF_TOLERANCE, 0},
+{618, 3132541814u, 3444521949u, 3240099840u, 0, LOGBF_TOLERANCE, 0},
+{619, 1164046161u, 3440635788u, 1093664768u, 0, LOGBF_TOLERANCE, 0},
+{620, 1292596266u, 3116569667u, 1104674816u, 0, LOGBF_TOLERANCE, 0},
+{621, 3469748379u, 3412765608u, 1106247680u, 0, LOGBF_TOLERANCE, 0},
+{622, 2968771722u, 3117531540u, 3253731328u, 0, LOGBF_TOLERANCE, 0},
+{623, 1314644642u, 3123051784u, 1105723392u, 0, LOGBF_TOLERANCE, 0},
+{624, 3399813173u, 828743798u, 1102053376u, 0, LOGBF_TOLERANCE, 0},
+{625, 948775569u, 3485444126u, 3244294144u, 0, LOGBF_TOLERANCE, 0},
+{626, 1034611395u, 882288581u, 3229614080u, 0, LOGBF_TOLERANCE, 0},
+{627, 3489122735u, 3372450889u, 1107296256u, 0, LOGBF_TOLERANCE, 0},
+{628, 1181604787u, 3363067409u, 1095761920u, 0, LOGBF_TOLERANCE, 0},
+{629, 3059042077u, 3204983963u, 3247964160u, 0, LOGBF_TOLERANCE, 0},
+{630, 1043691622u, 3402603223u, 3225419776u, 0, LOGBF_TOLERANCE, 0},
+{631, 1314588083u, 856187848u, 1105723392u, 0, LOGBF_TOLERANCE, 0},
+{632, 3141533334u, 3010142974u, 3239051264u, 0, LOGBF_TOLERANCE, 0},
+{633, 3013416703u, 3442525943u, 3250585600u, 0, LOGBF_TOLERANCE, 0},
+{634, 861266716u, 822172554u, 3251109888u, 0, LOGBF_TOLERANCE, 0},
+{635, 3157534378u, 3451674717u, 3235905536u, 0, LOGBF_TOLERANCE, 0},
+{636, 2976169000u, 3033697153u, 3253207040u, 0, LOGBF_TOLERANCE, 0},
+{637, 3400949680u, 3073750220u, 1102053376u, 0, LOGBF_TOLERANCE, 0},
+{638, 3365581801u, 1175843167u, 1099956224u, 0, LOGBF_TOLERANCE, 0},
+{639, 1110424755u, 3011308654u, 1084227584u, 0, LOGBF_TOLERANCE, 0},
+{640, 3189917167u, 927278934u, 3225419776u, 0, LOGBF_TOLERANCE, 0},
+{641, 969804941u, 3355439348u, 3242196992u, 0, LOGBF_TOLERANCE, 0},
+{642, 1139120919u, 3270515074u, 1090519040u, 0, LOGBF_TOLERANCE, 0},
+{643, 816789141u, 3325199970u, 3253731328u, 0, LOGBF_TOLERANCE, 0},
+{644, 934308144u, 3118191228u, 3246391296u, 0, LOGBF_TOLERANCE, 0},
+{645, 1220524226u, 1152648002u, 1099956224u, 0, LOGBF_TOLERANCE, 0},
+{646, 3162548604u, 3461790298u, 3233808384u, 0, LOGBF_TOLERANCE, 0},
+{647, 3382391700u, 3296962745u, 1101004800u, 0, LOGBF_TOLERANCE, 0},
+{648, 1156767533u, 1088986462u, 1092616192u, 0, LOGBF_TOLERANCE, 0},
+{649, 3079222483u, 3312324949u, 3246391296u, 0, LOGBF_TOLERANCE, 0},
+{650, 994934087u, 967678094u, 3239051264u, 0, LOGBF_TOLERANCE, 0},
+{651, 840906467u, 3156591981u, 3252158464u, 0, LOGBF_TOLERANCE, 0},
+{652, 3185240099u, 1123403720u, 3229614080u, 0, LOGBF_TOLERANCE, 0},
+{653, 870026344u, 1093936408u, 3250585600u, 0, LOGBF_TOLERANCE, 0},
+{654, 2996887005u, 3287317742u, 3251634176u, 0, LOGBF_TOLERANCE, 0},
+{655, 3479873563u, 1246277393u, 1106771968u, 0, LOGBF_TOLERANCE, 0},
+{656, 3424264117u, 3434026174u, 1103626240u, 0, LOGBF_TOLERANCE, 0},
+{657, 3228365887u, 1216775310u, 1065353216u, 0, LOGBF_TOLERANCE, 0},
+{658, 1035909900u, 1249532942u, 3229614080u, 0, LOGBF_TOLERANCE, 0},
+{659, 2989750574u, 1274271338u, 3252158464u, 0, LOGBF_TOLERANCE, 0},
+{660, 3024951184u, 1247632131u, 3250061312u, 0, LOGBF_TOLERANCE, 0},
+{661, 1212129651u, 3017366784u, 1099431936u, 0, LOGBF_TOLERANCE, 0},
+{662, 3125775254u, 955826310u, 3241148416u, 0, LOGBF_TOLERANCE, 0},
+{663, 1037464105u, 3121544932u, 3229614080u, 0, LOGBF_TOLERANCE, 0},
+{664, 1311706596u, 1254918706u, 1105723392u, 0, LOGBF_TOLERANCE, 0},
+{665, 918212457u, 1017468331u, 3247439872u, 0, LOGBF_TOLERANCE, 0},
+{666, 1337315179u, 3461361185u, 1107296256u, 0, LOGBF_TOLERANCE, 0},
+{667, 1131358407u, 3325958870u, 1088421888u, 0, LOGBF_TOLERANCE, 0},
+{668, 1156517523u, 3343716230u, 1092616192u, 0, LOGBF_TOLERANCE, 0},
+{669, 3210802820u, 3207408574u, 3212836864u, 0, LOGBF_TOLERANCE, 0},
+{670, 3337499209u, 1226297264u, 1096810496u, 0, LOGBF_TOLERANCE, 0},
+{671, 3468429030u, 3253874001u, 1106247680u, 0, LOGBF_TOLERANCE, 0},
+{672, 3253515800u, 1189005947u, 1082130432u, 0, LOGBF_TOLERANCE, 0},
+{673, 3055299953u, 3047908678u, 3247964160u, 0, LOGBF_TOLERANCE, 0},
+{674, 959956547u, 876324728u, 3243245568u, 0, LOGBF_TOLERANCE, 0},
+{675, 3425290480u, 1139193797u, 1103626240u, 0, LOGBF_TOLERANCE, 0},
+{676, 1039917375u, 1122740999u, 3229614080u, 0, LOGBF_TOLERANCE, 0},
+{677, 3220979495u, 3429223871u, 0u, 0, LOGBF_TOLERANCE, 0},
+{678, 1311016004u, 3334899880u, 1105723392u, 0, LOGBF_TOLERANCE, 0},
+{679, 2995451172u, 2974546424u, 3251634176u, 0, LOGBF_TOLERANCE, 0},
+{680, 1128016396u, 1105151547u, 1088421888u, 0, LOGBF_TOLERANCE, 0},
+{681, 3210335769u, 3100646155u, 3212836864u, 0, LOGBF_TOLERANCE, 0},
+{682, 3022705759u, 3404762495u, 3250061312u, 0, LOGBF_TOLERANCE, 0},
+{683, 1206054701u, 826010009u, 1098907648u, 0, LOGBF_TOLERANCE, 0},
+{684, 3144504834u, 1162227076u, 3239051264u, 0, LOGBF_TOLERANCE, 0},
+{685, 822524010u, 970745811u, 3253207040u, 0, LOGBF_TOLERANCE, 0},
+{686, 3016981460u, 3313826904u, 3250585600u, 0, LOGBF_TOLERANCE, 0},
+{687, 1213609983u, 919983950u, 1099431936u, 0, LOGBF_TOLERANCE, 0},
+{688, 1246902946u, 3064047808u, 1101529088u, 0, LOGBF_TOLERANCE, 0},
+{689, 995850843u, 1332031130u, 3239051264u, 0, LOGBF_TOLERANCE, 0},
+{690, 3362082828u, 3374056268u, 1099431936u, 0, LOGBF_TOLERANCE, 0},
+{691, 1029480631u, 3047777170u, 3231711232u, 0, LOGBF_TOLERANCE, 0},
+{692, 3153568584u, 3106514232u, 3238002688u, 0, LOGBF_TOLERANCE, 0},
+{693, 3384988527u, 3109485565u, 1101004800u, 0, LOGBF_TOLERANCE, 0},
+{694, 1317696241u, 870681806u, 1106247680u, 0, LOGBF_TOLERANCE, 0},
+{695, 3235395924u, 1132055244u, 1073741824u, 0, LOGBF_TOLERANCE, 0},
+{696, 3341877624u, 2969495570u, 1097859072u, 0, LOGBF_TOLERANCE, 0},
+{697, 1228636133u, 886552820u, 1100480512u, 0, LOGBF_TOLERANCE, 0},
+{698, 3161654634u, 3335899347u, 3235905536u, 0, LOGBF_TOLERANCE, 0},
+{699, 3162655243u, 3307203982u, 3233808384u, 0, LOGBF_TOLERANCE, 0},
+{700, 1207246237u, 859223639u, 1098907648u, 0, LOGBF_TOLERANCE, 0},
+{701, 1165476654u, 3350219111u, 1093664768u, 0, LOGBF_TOLERANCE, 0},
+{702, 1215278023u, 3019755242u, 1099431936u, 0, LOGBF_TOLERANCE, 0},
+{703, 1017239798u, 3438501281u, 3233808384u, 0, LOGBF_TOLERANCE, 0},
+{704, 1149651309u, 970030475u, 1092616192u, 0, LOGBF_TOLERANCE, 0},
+{705, 1111943722u, 3122211334u, 1084227584u, 0, LOGBF_TOLERANCE, 0},
+{706, 856374764u, 1158358450u, 3251109888u, 0, LOGBF_TOLERANCE, 0},
+{707, 1189849849u, 3382739134u, 1096810496u, 0, LOGBF_TOLERANCE, 0},
+{708, 3204848496u, 3141519085u, 3212836864u, 0, LOGBF_TOLERANCE, 0},
+{709, 1249758327u, 3104759211u, 1101529088u, 0, LOGBF_TOLERANCE, 0},
+{710, 3092982276u, 3445282331u, 3245342720u, 0, LOGBF_TOLERANCE, 0},
+{711, 1168098747u, 1316854744u, 1094713344u, 0, LOGBF_TOLERANCE, 0},
+{712, 892549317u, 1179637545u, 3249012736u, 0, LOGBF_TOLERANCE, 0},
+{713, 3301009024u, 3406174560u, 1092616192u, 0, LOGBF_TOLERANCE, 0},
+{714, 3233089227u, 1212652543u, 1073741824u, 0, LOGBF_TOLERANCE, 0},
+{715, 3218245284u, 1238873830u, 0u, 0, LOGBF_TOLERANCE, 0},
+{716, 3215981890u, 3240474694u, 0u, 0, LOGBF_TOLERANCE, 0},
+{717, 1266687209u, 3092038122u, 1103101952u, 0, LOGBF_TOLERANCE, 0},
+{718, 825230580u, 3410090781u, 3253207040u, 0, LOGBF_TOLERANCE, 0},
+{719, 3487959775u, 3331372071u, 1107296256u, 0, LOGBF_TOLERANCE, 0},
+{720, 943645710u, 852875779u, 3245342720u, 0, LOGBF_TOLERANCE, 0},
+{721, 3345065699u, 3282620725u, 1097859072u, 0, LOGBF_TOLERANCE, 0},
+{722, 935847271u, 1067255804u, 3246391296u, 0, LOGBF_TOLERANCE, 0},
+{723, 3410336089u, 1111437780u, 1102577664u, 0, LOGBF_TOLERANCE, 0},
+{724, 3082940740u, 1336840432u, 3246391296u, 0, LOGBF_TOLERANCE, 0},
+{725, 1141063391u, 1168908072u, 1091567616u, 0, LOGBF_TOLERANCE, 0},
+{726, 3059263153u, 3067795684u, 3247964160u, 0, LOGBF_TOLERANCE, 0},
+{727, 849450947u, 3289799763u, 3251634176u, 0, LOGBF_TOLERANCE, 0},
+{728, 3353679791u, 897158391u, 1098907648u, 0, LOGBF_TOLERANCE, 0},
+{729, 1001823878u, 1016826861u, 3238002688u, 0, LOGBF_TOLERANCE, 0},
+{730, 1009130212u, 1004302940u, 3235905536u, 0, LOGBF_TOLERANCE, 0},
+{731, 3367127535u, 943136342u, 1099956224u, 0, LOGBF_TOLERANCE, 0},
+{732, 1032920919u, 3449126417u, 3229614080u, 0, LOGBF_TOLERANCE, 0},
+{733, 3281952870u, 3147012185u, 1090519040u, 0, LOGBF_TOLERANCE, 0},
+{734, 1237868497u, 3048281802u, 1101004800u, 0, LOGBF_TOLERANCE, 0},
+{735, 1153753924u, 3322269242u, 1092616192u, 0, LOGBF_TOLERANCE, 0},
+{736, 1120261759u, 892210998u, 1086324736u, 0, LOGBF_TOLERANCE, 0},
+{737, 3226328360u, 3366432856u, 1065353216u, 0, LOGBF_TOLERANCE, 0},
+{738, 3349595986u, 3251588707u, 1098907648u, 0, LOGBF_TOLERANCE, 0},
+{739, 3166889490u, 3306023523u, 3233808384u, 0, LOGBF_TOLERANCE, 0},
+{740, 1087750238u, 1099325523u, 1073741824u, 0, LOGBF_TOLERANCE, 0},
+{741, 3121620061u, 3359488363u, 3241148416u, 0, LOGBF_TOLERANCE, 0},
+{742, 1066116543u, 3072159933u, 0u, 0, LOGBF_TOLERANCE, 0},
+{743, 3210898034u, 2981803389u, 3212836864u, 0, LOGBF_TOLERANCE, 0},
+{744, 3051923237u, 3364074347u, 3248488448u, 0, LOGBF_TOLERANCE, 0},
+{745, 1030612298u, 3345396001u, 3231711232u, 0, LOGBF_TOLERANCE, 0},
+{746, 3015019212u, 989161453u, 3250585600u, 0, LOGBF_TOLERANCE, 0},
+{747, 1186234578u, 858134374u, 1096810496u, 0, LOGBF_TOLERANCE, 0},
+{748, 1331680743u, 1009396165u, 1106771968u, 0, LOGBF_TOLERANCE, 0},
+{749, 847857044u, 894661023u, 3251634176u, 0, LOGBF_TOLERANCE, 0},
+{750, 3060774997u, 1326067357u, 3247964160u, 0, LOGBF_TOLERANCE, 0},
+{751, 887589411u, 1292305693u, 3249537024u, 0, LOGBF_TOLERANCE, 0},
+{752, 1045232522u, 3234993273u, 3225419776u, 0, LOGBF_TOLERANCE, 0},
+{753, 3119858470u, 962515365u, 3242196992u, 0, LOGBF_TOLERANCE, 0},
+{754, 3002873011u, 3188748064u, 3251634176u, 0, LOGBF_TOLERANCE, 0},
+{755, 3349432725u, 928848003u, 1098907648u, 0, LOGBF_TOLERANCE, 0},
+{756, 912423027u, 3184646319u, 3247964160u, 0, LOGBF_TOLERANCE, 0},
+{757, 3228795133u, 3273940030u, 1065353216u, 0, LOGBF_TOLERANCE, 0},
+{758, 3194674746u, 3112269709u, 3225419776u, 0, LOGBF_TOLERANCE, 0},
+{759, 3296784303u, 3276182352u, 1092616192u, 0, LOGBF_TOLERANCE, 0},
+{760, 965402291u, 3107104376u, 3242196992u, 0, LOGBF_TOLERANCE, 0},
+{761, 3388153589u, 3426245389u, 1101004800u, 0, LOGBF_TOLERANCE, 0},
+{762, 1133410485u, 3329658993u, 1090519040u, 0, LOGBF_TOLERANCE, 0},
+{763, 3136790322u, 1088652637u, 3240099840u, 0, LOGBF_TOLERANCE, 0},
+{764, 3369970587u, 959121458u, 1099956224u, 0, LOGBF_TOLERANCE, 0},
+{765, 1270451568u, 928393353u, 1103101952u, 0, LOGBF_TOLERANCE, 0},
+{766, 989498922u, 3088358419u, 3240099840u, 0, LOGBF_TOLERANCE, 0},
+{767, 1280215674u, 3148135875u, 1103626240u, 0, LOGBF_TOLERANCE, 0},
+{768, 1171873518u, 954709738u, 1094713344u, 0, LOGBF_TOLERANCE, 0},
+{769, 3298258100u, 935525182u, 1092616192u, 0, LOGBF_TOLERANCE, 0},
+{770, 3415208824u, 822843236u, 1103101952u, 0, LOGBF_TOLERANCE, 0},
+{771, 1001897182u, 3191875320u, 3238002688u, 0, LOGBF_TOLERANCE, 0},
+{772, 3152777939u, 3245830463u, 3238002688u, 0, LOGBF_TOLERANCE, 0},
+{773, 985903305u, 3333087577u, 3240099840u, 0, LOGBF_TOLERANCE, 0},
+{774, 3357328848u, 859306298u, 1099431936u, 0, LOGBF_TOLERANCE, 0},
+{775, 2967395608u, 3077307650u, 3253731328u, 0, LOGBF_TOLERANCE, 0},
+{776, 982612185u, 923582663u, 3240099840u, 0, LOGBF_TOLERANCE, 0},
+{777, 3267868136u, 1208301947u, 1086324736u, 0, LOGBF_TOLERANCE, 0},
+{778, 3319048157u, 1172271145u, 1094713344u, 0, LOGBF_TOLERANCE, 0},
+{779, 1144755661u, 860947435u, 1091567616u, 0, LOGBF_TOLERANCE, 0},
+{780, 840456845u, 1051585760u, 3252158464u, 0, LOGBF_TOLERANCE, 0},
+{781, 898467286u, 839254959u, 3248488448u, 0, LOGBF_TOLERANCE, 0},
+{782, 3301461672u, 1233693827u, 1092616192u, 0, LOGBF_TOLERANCE, 0},
+{783, 3364525678u, 3089849671u, 1099956224u, 0, LOGBF_TOLERANCE, 0},
+{784, 871130681u, 905123007u, 3250585600u, 0, LOGBF_TOLERANCE, 0},
+{785, 931441127u, 1133424555u, 3246391296u, 0, LOGBF_TOLERANCE, 0},
+{786, 3146660041u, 3143695961u, 3238002688u, 0, LOGBF_TOLERANCE, 0},
+{787, 3467121799u, 3023584354u, 1106247680u, 0, LOGBF_TOLERANCE, 0},
+{788, 1151257041u, 3084216427u, 1092616192u, 0, LOGBF_TOLERANCE, 0},
+{789, 3097873255u, 3219266640u, 3244294144u, 0, LOGBF_TOLERANCE, 0},
+{790, 3130670309u, 3192399254u, 3240099840u, 0, LOGBF_TOLERANCE, 0},
+{791, 1017573824u, 3130901062u, 3233808384u, 0, LOGBF_TOLERANCE, 0},
+{792, 1258369714u, 3462258576u, 1102577664u, 0, LOGBF_TOLERANCE, 0},
+{793, 1216602683u, 3371396332u, 1099956224u, 0, LOGBF_TOLERANCE, 0},
+{794, 2976429847u, 959973239u, 3253207040u, 0, LOGBF_TOLERANCE, 0},
+{795, 3297265739u, 1214184410u, 1092616192u, 0, LOGBF_TOLERANCE, 0},
+{796, 1071940738u, 3311731012u, 0u, 0, LOGBF_TOLERANCE, 0},
+{797, 922601356u, 3337171870u, 3247439872u, 0, LOGBF_TOLERANCE, 0},
+{798, 3462285635u, 3444030332u, 1105723392u, 0, LOGBF_TOLERANCE, 0},
+{799, 3357177805u, 1085464241u, 1099431936u, 0, LOGBF_TOLERANCE, 0},
+{800, 3049120080u, 900832851u, 3248488448u, 0, LOGBF_TOLERANCE, 0},
+{801, 1153863660u, 1011991342u, 1092616192u, 0, LOGBF_TOLERANCE, 0},
+{802, 3034243695u, 917098003u, 3249537024u, 0, LOGBF_TOLERANCE, 0},
+{803, 809294662u, 3266461458u, 3254255616u, 0, LOGBF_TOLERANCE, 0},
+{804, 822231182u, 3393408718u, 3253207040u, 0, LOGBF_TOLERANCE, 0},
+{805, 845772797u, 3341109215u, 3252158464u, 0, LOGBF_TOLERANCE, 0},
+{806, 1249365132u, 3278686216u, 1101529088u, 0, LOGBF_TOLERANCE, 0},
+{807, 3046215730u, 3211219980u, 3248488448u, 0, LOGBF_TOLERANCE, 0},
+{808, 3047251716u, 1090787353u, 3248488448u, 0, LOGBF_TOLERANCE, 0},
+{809, 2980866154u, 1147012796u, 3252682752u, 0, LOGBF_TOLERANCE, 0},
+{810, 3131219358u, 3471261157u, 3240099840u, 0, LOGBF_TOLERANCE, 0},
+{811, 3222096285u, 1198013705u, 1065353216u, 0, LOGBF_TOLERANCE, 0},
+{812, 1297708818u, 3079166173u, 1104674816u, 0, LOGBF_TOLERANCE, 0},
+{813, 3345532722u, 3383708463u, 1097859072u, 0, LOGBF_TOLERANCE, 0},
+{814, 3418753236u, 3481843070u, 1103101952u, 0, LOGBF_TOLERANCE, 0},
+{815, 1277417964u, 3487506626u, 1103626240u, 0, LOGBF_TOLERANCE, 0},
+{816, 987577257u, 1152077087u, 3240099840u, 0, LOGBF_TOLERANCE, 0},
+{817, 3161606610u, 3190282989u, 3235905536u, 0, LOGBF_TOLERANCE, 0},
+{818, 849056171u, 910674398u, 3251634176u, 0, LOGBF_TOLERANCE, 0},
+{819, 888030585u, 3062367380u, 3249537024u, 0, LOGBF_TOLERANCE, 0},
+{820, 1043442869u, 3311393817u, 3225419776u, 0, LOGBF_TOLERANCE, 0},
+{821, 851189486u, 3007588581u, 3251634176u, 0, LOGBF_TOLERANCE, 0},
+{822, 3320923228u, 3464544249u, 1094713344u, 0, LOGBF_TOLERANCE, 0},
+{823, 1337400405u, 3488844154u, 1107296256u, 0, LOGBF_TOLERANCE, 0},
+{824, 2964339884u, 3186563447u, 3253731328u, 0, LOGBF_TOLERANCE, 0},
+{825, 3400348640u, 3129868490u, 1102053376u, 0, LOGBF_TOLERANCE, 0},
+{826, 1250249095u, 1069023744u, 1102053376u, 0, LOGBF_TOLERANCE, 0},
+{827, 3284411233u, 1173613526u, 1090519040u, 0, LOGBF_TOLERANCE, 0},
+{828, 3020883322u, 2953622587u, 3250061312u, 0, LOGBF_TOLERANCE, 0},
+{829, 1215968622u, 3469884568u, 1099431936u, 0, LOGBF_TOLERANCE, 0},
+{830, 3202319550u, 819117302u, 3221225472u, 0, LOGBF_TOLERANCE, 0},
+{831, 3061638260u, 3116222327u, 3247964160u, 0, LOGBF_TOLERANCE, 0},
+{832, 1025404104u, 1066370251u, 3231711232u, 0, LOGBF_TOLERANCE, 0},
+{833, 3138086437u, 3195983510u, 3239051264u, 0, LOGBF_TOLERANCE, 0},
+{834, 3091024506u, 3456196859u, 3245342720u, 0, LOGBF_TOLERANCE, 0},
+{835, 3362748242u, 3369843597u, 1099431936u, 0, LOGBF_TOLERANCE, 0},
+{836, 3099671635u, 3218383623u, 3244294144u, 0, LOGBF_TOLERANCE, 0},
+{837, 3068014841u, 2978226656u, 3247439872u, 0, LOGBF_TOLERANCE, 0},
+{838, 1252237719u, 1121169249u, 1102053376u, 0, LOGBF_TOLERANCE, 0},
+{839, 3327895594u, 1224511805u, 1095761920u, 0, LOGBF_TOLERANCE, 0},
+{840, 3082454432u, 889268276u, 3246391296u, 0, LOGBF_TOLERANCE, 0},
+{841, 3396161504u, 1182798837u, 1101529088u, 0, LOGBF_TOLERANCE, 0},
+{842, 1099710167u, 887180181u, 1082130432u, 0, LOGBF_TOLERANCE, 0},
+{843, 1157186482u, 1288722647u, 1092616192u, 0, LOGBF_TOLERANCE, 0},
+{844, 1282110851u, 3176633124u, 1103626240u, 0, LOGBF_TOLERANCE, 0},
+{845, 3477008113u, 1331845018u, 1106771968u, 0, LOGBF_TOLERANCE, 0},
+{846, 3292127294u, 3409957764u, 1091567616u, 0, LOGBF_TOLERANCE, 0},
+{847, 1123357102u, 3281307320u, 1086324736u, 0, LOGBF_TOLERANCE, 0},
+{848, 1106837025u, 3088080674u, 1082130432u, 0, LOGBF_TOLERANCE, 0},
+{849, 1049949008u, 1130799489u, 3221225472u, 0, LOGBF_TOLERANCE, 0},
+{850, 1253017688u, 942062372u, 1102053376u, 0, LOGBF_TOLERANCE, 0},
+{851, 1108543194u, 3281299199u, 1084227584u, 0, LOGBF_TOLERANCE, 0},
+{852, 3087985411u, 1238341456u, 3245342720u, 0, LOGBF_TOLERANCE, 0},
+{853, 3002187365u, 1073809054u, 3251634176u, 0, LOGBF_TOLERANCE, 0},
+{854, 3163283126u, 1328636961u, 3233808384u, 0, LOGBF_TOLERANCE, 0},
+{855, 1160162706u, 1264067367u, 1093664768u, 0, LOGBF_TOLERANCE, 0},
+{856, 3305715025u, 3017496063u, 1093664768u, 0, LOGBF_TOLERANCE, 0},
+{857, 1266928623u, 811778614u, 1103101952u, 0, LOGBF_TOLERANCE, 0},
+{858, 3025340297u, 1193925540u, 3250061312u, 0, LOGBF_TOLERANCE, 0},
+{859, 3438080027u, 3107114149u, 1104150528u, 0, LOGBF_TOLERANCE, 0},
+{860, 3344574751u, 3111270744u, 1097859072u, 0, LOGBF_TOLERANCE, 0},
+{861, 1152416724u, 962669179u, 1092616192u, 0, LOGBF_TOLERANCE, 0},
+{862, 1218239308u, 1126238113u, 1099956224u, 0, LOGBF_TOLERANCE, 0},
+{863, 3263310567u, 1030748197u, 1086324736u, 0, LOGBF_TOLERANCE, 0},
+{864, 835770216u, 865469272u, 3252682752u, 0, LOGBF_TOLERANCE, 0},
+{865, 3041998669u, 1160635263u, 3249012736u, 0, LOGBF_TOLERANCE, 0},
+{866, 1000313118u, 2980130729u, 3238002688u, 0, LOGBF_TOLERANCE, 0},
+{867, 972485427u, 1124312043u, 3242196992u, 0, LOGBF_TOLERANCE, 0},
+{868, 3290264612u, 1124703898u, 1091567616u, 0, LOGBF_TOLERANCE, 0},
+{869, 869072657u, 3150369767u, 3250585600u, 0, LOGBF_TOLERANCE, 0},
+{870, 3222106584u, 1183748648u, 1065353216u, 0, LOGBF_TOLERANCE, 0},
+{871, 1278946388u, 825129857u, 1103626240u, 0, LOGBF_TOLERANCE, 0},
+{872, 947914771u, 3181847068u, 3244294144u, 0, LOGBF_TOLERANCE, 0},
+{873, 3167730654u, 3195765940u, 3233808384u, 0, LOGBF_TOLERANCE, 0},
+{874, 1098530298u, 3255870890u, 1077936128u, 0, LOGBF_TOLERANCE, 0},
+{875, 3232726036u, 871038882u, 1073741824u, 0, LOGBF_TOLERANCE, 0},
+{876, 1297190916u, 811863044u, 1104674816u, 0, LOGBF_TOLERANCE, 0},
+{877, 1277649137u, 961171401u, 1103626240u, 0, LOGBF_TOLERANCE, 0},
+{878, 3203377685u, 1306427476u, 3221225472u, 0, LOGBF_TOLERANCE, 0},
+{879, 3090306474u, 3124785016u, 3245342720u, 0, LOGBF_TOLERANCE, 0},
+{880, 3244032016u, 3045313345u, 1077936128u, 0, LOGBF_TOLERANCE, 0},
+{881, 3033122376u, 3049877065u, 3249537024u, 0, LOGBF_TOLERANCE, 0},
+{882, 3019221802u, 3329183205u, 3250585600u, 0, LOGBF_TOLERANCE, 0},
+{883, 1096155623u, 1256423752u, 1077936128u, 0, LOGBF_TOLERANCE, 0},
+{884, 873151908u, 3246562559u, 3250061312u, 0, LOGBF_TOLERANCE, 0},
+{885, 3238729605u, 1298769842u, 1077936128u, 0, LOGBF_TOLERANCE, 0},
+{886, 3317196817u, 989537151u, 1094713344u, 0, LOGBF_TOLERANCE, 0},
+{887, 3374748510u, 834161190u, 1100480512u, 0, LOGBF_TOLERANCE, 0},
+{888, 3345634950u, 959901149u, 1097859072u, 0, LOGBF_TOLERANCE, 0},
+{889, 3189860276u, 883598767u, 3225419776u, 0, LOGBF_TOLERANCE, 0},
+{890, 887311687u, 1175312255u, 3249537024u, 0, LOGBF_TOLERANCE, 0},
+{891, 3396917283u, 3066326686u, 1101529088u, 0, LOGBF_TOLERANCE, 0},
+{892, 3317032737u, 3143803722u, 1094713344u, 0, LOGBF_TOLERANCE, 0},
+{893, 1200051436u, 1163802508u, 1098907648u, 0, LOGBF_TOLERANCE, 0},
+{894, 3105291012u, 1194385202u, 3243245568u, 0, LOGBF_TOLERANCE, 0},
+{895, 1306520561u, 957302464u, 1105199104u, 0, LOGBF_TOLERANCE, 0},
+{896, 1314936356u, 2985592532u, 1105723392u, 0, LOGBF_TOLERANCE, 0},
+{897, 3475052219u, 1284049853u, 1106771968u, 0, LOGBF_TOLERANCE, 0},
+{898, 3085636260u, 1107682820u, 3246391296u, 0, LOGBF_TOLERANCE, 0},
+{899, 2995058661u, 822977912u, 3251634176u, 0, LOGBF_TOLERANCE, 0},
+{900, 3393227708u, 3271879112u, 1101529088u, 0, LOGBF_TOLERANCE, 0},
+{901, 2983919425u, 3341426744u, 3252682752u, 0, LOGBF_TOLERANCE, 0},
+{902, 3182540197u, 852580839u, 3229614080u, 0, LOGBF_TOLERANCE, 0},
+{903, 3349005404u, 3080993030u, 1098907648u, 0, LOGBF_TOLERANCE, 0},
+{904, 3154720153u, 3443720494u, 3235905536u, 0, LOGBF_TOLERANCE, 0},
+{905, 1262863321u, 1219003129u, 1102577664u, 0, LOGBF_TOLERANCE, 0},
+{906, 882902102u, 1224362550u, 3249537024u, 0, LOGBF_TOLERANCE, 0},
+{907, 2995633678u, 828113666u, 3251634176u, 0, LOGBF_TOLERANCE, 0},
+{908, 1053387478u, 3184880021u, 3221225472u, 0, LOGBF_TOLERANCE, 0},
+{909, 3387653691u, 3347783852u, 1101004800u, 0, LOGBF_TOLERANCE, 0},
+{910, 3136364836u, 1018492227u, 3240099840u, 0, LOGBF_TOLERANCE, 0},
+{911, 808412264u, 941158192u, 3254255616u, 0, LOGBF_TOLERANCE, 0},
+{912, 1338680611u, 1166078045u, 1107296256u, 0, LOGBF_TOLERANCE, 0},
+{913, 1112891928u, 3074730425u, 1084227584u, 0, LOGBF_TOLERANCE, 0},
+{914, 893449284u, 1052877339u, 3249012736u, 0, LOGBF_TOLERANCE, 0},
+{915, 892311459u, 1097338393u, 3249012736u, 0, LOGBF_TOLERANCE, 0},
+{916, 3105373037u, 3246705916u, 3243245568u, 0, LOGBF_TOLERANCE, 0},
+{917, 1190105283u, 3033907262u, 1096810496u, 0, LOGBF_TOLERANCE, 0},
+{918, 1011225926u, 1180485180u, 3235905536u, 0, LOGBF_TOLERANCE, 0},
+{919, 1043025031u, 987068973u, 3225419776u, 0, LOGBF_TOLERANCE, 0},
+{920, 3410531037u, 2953541915u, 1102577664u, 0, LOGBF_TOLERANCE, 0},
+{921, 3125834184u, 896953754u, 3241148416u, 0, LOGBF_TOLERANCE, 0},
+{922, 902318189u, 849277289u, 3248488448u, 0, LOGBF_TOLERANCE, 0},
+{923, 835377647u, 3441354730u, 3252682752u, 0, LOGBF_TOLERANCE, 0},
+{924, 2976308307u, 1286944060u, 3253207040u, 0, LOGBF_TOLERANCE, 0},
+{925, 3213624815u, 2987148017u, 0u, 0, LOGBF_TOLERANCE, 0},
+{926, 1120888322u, 1086209113u, 1086324736u, 0, LOGBF_TOLERANCE, 0},
+{927, 1315217243u, 3396371713u, 1105723392u, 0, LOGBF_TOLERANCE, 0},
+{928, 3137758475u, 1039403054u, 3239051264u, 0, LOGBF_TOLERANCE, 0},
+{929, 1040617590u, 1034835971u, 3225419776u, 0, LOGBF_TOLERANCE, 0},
+{930, 955384253u, 3344785562u, 3244294144u, 0, LOGBF_TOLERANCE, 0},
+{931, 853063496u, 3317415965u, 3251634176u, 0, LOGBF_TOLERANCE, 0},
+{932, 823111402u, 877253523u, 3253207040u, 0, LOGBF_TOLERANCE, 0},
+{933, 3061417900u, 1172208065u, 3247964160u, 0, LOGBF_TOLERANCE, 0},
+{934, 904255535u, 1019967545u, 3248488448u, 0, LOGBF_TOLERANCE, 0},
+{935, 1022984119u, 3113891410u, 3233808384u, 0, LOGBF_TOLERANCE, 0},
+{936, 997362368u, 3112875428u, 3239051264u, 0, LOGBF_TOLERANCE, 0},
+{937, 900933520u, 1100589187u, 3248488448u, 0, LOGBF_TOLERANCE, 0},
+{938, 1168623062u, 1143306482u, 1094713344u, 0, LOGBF_TOLERANCE, 0},
+{939, 878737490u, 3269908326u, 3250061312u, 0, LOGBF_TOLERANCE, 0},
+{940, 1039827284u, 1072928888u, 3229614080u, 0, LOGBF_TOLERANCE, 0},
+{941, 1021564080u, 1064468397u, 3233808384u, 0, LOGBF_TOLERANCE, 0},
+{942, 3458669745u, 3033299853u, 1105723392u, 0, LOGBF_TOLERANCE, 0},
+{943, 3327516316u, 3405380971u, 1095761920u, 0, LOGBF_TOLERANCE, 0},
+{944, 1040711112u, 3229444200u, 3225419776u, 0, LOGBF_TOLERANCE, 0},
+{945, 1134528351u, 3365952513u, 1090519040u, 0, LOGBF_TOLERANCE, 0},
+{946, 3039884464u, 1170612785u, 3249012736u, 0, LOGBF_TOLERANCE, 0},
+{947, 3414352838u, 3350285760u, 1103101952u, 0, LOGBF_TOLERANCE, 0},
+{948, 1133689539u, 1067460093u, 1090519040u, 0, LOGBF_TOLERANCE, 0},
+{949, 3455688478u, 3333091960u, 1105199104u, 0, LOGBF_TOLERANCE, 0},
+{950, 1137634874u, 1137038869u, 1090519040u, 0, LOGBF_TOLERANCE, 0},
+{951, 3415502662u, 955510692u, 1103101952u, 0, LOGBF_TOLERANCE, 0},
+{952, 954999730u, 969618597u, 3244294144u, 0, LOGBF_TOLERANCE, 0},
+{953, 1066157309u, 3241712664u, 0u, 0, LOGBF_TOLERANCE, 0},
+{954, 3436353675u, 1174967495u, 1104150528u, 0, LOGBF_TOLERANCE, 0},
+{955, 940437609u, 860372396u, 3245342720u, 0, LOGBF_TOLERANCE, 0},
+{956, 3108347547u, 3434003435u, 3243245568u, 0, LOGBF_TOLERANCE, 0},
+{957, 3064200154u, 3158080507u, 3247439872u, 0, LOGBF_TOLERANCE, 0},
+{958, 1023889593u, 2979304683u, 3231711232u, 0, LOGBF_TOLERANCE, 0},
+{959, 3272661536u, 3461799138u, 1088421888u, 0, LOGBF_TOLERANCE, 0},
+{960, 1170245333u, 1233406410u, 1094713344u, 0, LOGBF_TOLERANCE, 0},
+{961, 1219052056u, 3369557946u, 1099956224u, 0, LOGBF_TOLERANCE, 0},
+{962, 3318983619u, 3259663338u, 1094713344u, 0, LOGBF_TOLERANCE, 0},
+{963, 3372118621u, 837597103u, 1099956224u, 0, LOGBF_TOLERANCE, 0},
+{964, 3146190320u, 889646054u, 3238002688u, 0, LOGBF_TOLERANCE, 0},
+{965, 1299683827u, 966031619u, 1104674816u, 0, LOGBF_TOLERANCE, 0},
+{966, 3190796331u, 1320011850u, 3225419776u, 0, LOGBF_TOLERANCE, 0},
+{967, 2965838479u, 805822032u, 3253731328u, 0, LOGBF_TOLERANCE, 0},
+{968, 3086068902u, 3484245751u, 3246391296u, 0, LOGBF_TOLERANCE, 0},
+{969, 3064155399u, 3176569312u, 3247439872u, 0, LOGBF_TOLERANCE, 0},
+{970, 836858201u, 3132995403u, 3252682752u, 0, LOGBF_TOLERANCE, 0},
+{971, 3040314717u, 1071290674u, 3249012736u, 0, LOGBF_TOLERANCE, 0},
+{972, 3257224022u, 3361778245u, 1084227584u, 0, LOGBF_TOLERANCE, 0},
+{973, 1229268598u, 1066965677u, 1100480512u, 0, LOGBF_TOLERANCE, 0},
+{974, 3184078812u, 871003709u, 3229614080u, 0, LOGBF_TOLERANCE, 0},
+{975, 871255076u, 3446104825u, 3250585600u, 0, LOGBF_TOLERANCE, 0},
+{976, 1086717248u, 3423795374u, 1073741824u, 0, LOGBF_TOLERANCE, 0},
+{977, 3434884607u, 3029593823u, 1104150528u, 0, LOGBF_TOLERANCE, 0},
+{978, 3464955606u, 1017987696u, 1106247680u, 0, LOGBF_TOLERANCE, 0},
+{979, 1025278524u, 3121856207u, 3231711232u, 0, LOGBF_TOLERANCE, 0},
+{980, 1242829722u, 3233935671u, 1101529088u, 0, LOGBF_TOLERANCE, 0},
+{981, 3075149137u, 1117325737u, 3246915584u, 0, LOGBF_TOLERANCE, 0},
+{982, 1200927971u, 1317167489u, 1098907648u, 0, LOGBF_TOLERANCE, 0},
+{983, 3326858092u, 3452602832u, 1095761920u, 0, LOGBF_TOLERANCE, 0},
+{984, 2995203347u, 1021818696u, 3251634176u, 0, LOGBF_TOLERANCE, 0},
+{985, 1246019790u, 850632217u, 1101529088u, 0, LOGBF_TOLERANCE, 0},
+{986, 3184801644u, 1137974313u, 3229614080u, 0, LOGBF_TOLERANCE, 0},
+{987, 1136052740u, 3244616020u, 1090519040u, 0, LOGBF_TOLERANCE, 0},
+{988, 1069009211u, 3002507482u, 0u, 0, LOGBF_TOLERANCE, 0},
+{989, 1015670780u, 1101217251u, 3233808384u, 0, LOGBF_TOLERANCE, 0},
+{990, 1012543234u, 1116520440u, 3235905536u, 0, LOGBF_TOLERANCE, 0},
+{991, 3316611992u, 3394732912u, 1094713344u, 0, LOGBF_TOLERANCE, 0},
+{992, 3012101436u, 3307846870u, 3250585600u, 0, LOGBF_TOLERANCE, 0},
+{993, 1087942795u, 3316660295u, 1073741824u, 0, LOGBF_TOLERANCE, 0},
+{994, 3426365713u, 3069778532u, 1103626240u, 0, LOGBF_TOLERANCE, 0},
+{995, 3066654389u, 3443934204u, 3247439872u, 0, LOGBF_TOLERANCE, 0},
+{996, 3295326432u, 1313396175u, 1091567616u, 0, LOGBF_TOLERANCE, 0},
+{997, 3318835308u, 3277583511u, 1094713344u, 0, LOGBF_TOLERANCE, 0},
+{998, 3283555717u, 891875120u, 1090519040u, 0, LOGBF_TOLERANCE, 0},
+{999, 3381255420u, 3015406047u, 1101004800u, 0, LOGBF_TOLERANCE, 0},
+{1000, 3040485181u, 3375450886u, 3249012736u, 0, LOGBF_TOLERANCE, 0},
+{1001, 3388772093u, 1032597076u, 1101004800u, 0, LOGBF_TOLERANCE, 0},
+{1002, 954670189u, 1144923689u, 3244294144u, 0, LOGBF_TOLERANCE, 0},
+{1003, 1319200415u, 3387555900u, 1106247680u, 0, LOGBF_TOLERANCE, 0},
+{1004, 1279324488u, 3228401212u, 1103626240u, 0, LOGBF_TOLERANCE, 0},
+{1005, 3217795424u, 865577227u, 0u, 0, LOGBF_TOLERANCE, 0},
+{1006, 3455131757u, 1260217257u, 1105199104u, 0, LOGBF_TOLERANCE, 0},
+{1007, 2982636375u, 3162157233u, 3252682752u, 0, LOGBF_TOLERANCE, 0},
+{1008, 1246947517u, 1087951909u, 1101529088u, 0, LOGBF_TOLERANCE, 0},
+{1009, 3396723577u, 869285240u, 1101529088u, 0, LOGBF_TOLERANCE, 0},
+{1010, 3433761025u, 3060143904u, 1104150528u, 0, LOGBF_TOLERANCE, 0},
+{1011, 3201187455u, 900233172u, 3221225472u, 0, LOGBF_TOLERANCE, 0},
+{1012, 1173247961u, 1191127979u, 1094713344u, 0, LOGBF_TOLERANCE, 0},
+{1013, 3037297123u, 3346394818u, 3249012736u, 0, LOGBF_TOLERANCE, 0},
+{1014, 3248534678u, 1323683800u, 1082130432u, 0, LOGBF_TOLERANCE, 0},
+{1015, 3083019343u, 3033309444u, 3246391296u, 0, LOGBF_TOLERANCE, 0},
+{1016, 3042018375u, 3203882372u, 3249012736u, 0, LOGBF_TOLERANCE, 0},
+{1017, 1082862511u, 3032804719u, 1073741824u, 0, LOGBF_TOLERANCE, 0},
+{1018, 3157626955u, 3483653298u, 3235905536u, 0, LOGBF_TOLERANCE, 0},
+{1019, 1341821683u, 3003675365u, 1107296256u, 0, LOGBF_TOLERANCE, 0},
+{1020, 881101379u, 1190838126u, 3249537024u, 0, LOGBF_TOLERANCE, 0},
+{1021, 1079061705u, 2960507663u, 1065353216u, 0, LOGBF_TOLERANCE, 0},
+{1022, 3182695954u, 3256861672u, 3229614080u, 0, LOGBF_TOLERANCE, 0},
+{1023, 1105291533u, 3482971524u, 1082130432u, 0, LOGBF_TOLERANCE, 0},
+{1024, 1016023520u, 3227712090u, 3233808384u, 0, LOGBF_TOLERANCE, 0},
+{1025, 3370691006u, 1295870514u, 1099956224u, 0, LOGBF_TOLERANCE, 0},
+{1026, 1156767169u, 1049756240u, 1092616192u, 0, LOGBF_TOLERANCE, 0},
+{1027, 3077020499u, 894671462u, 3246915584u, 0, LOGBF_TOLERANCE, 0},
+{1028, 1104284039u, 3040211914u, 1082130432u, 0, LOGBF_TOLERANCE, 0},
+{1029, 3335212901u, 3486414589u, 1096810496u, 0, LOGBF_TOLERANCE, 0},
+{1030, 1093697541u, 3193708441u, 1077936128u, 0, LOGBF_TOLERANCE, 0},
+{1031, 3266691185u, 1160074593u, 1086324736u, 0, LOGBF_TOLERANCE, 0},
+{1032, 3179003144u, 1108615803u, 3231711232u, 0, LOGBF_TOLERANCE, 0},
+{1033, 1094115255u, 3008610212u, 1077936128u, 0, LOGBF_TOLERANCE, 0},
+{1034, 2994604730u, 973792195u, 3252158464u, 0, LOGBF_TOLERANCE, 0},
+{1035, 3424086808u, 3260140004u, 1103626240u, 0, LOGBF_TOLERANCE, 0},
+{1036, 2957266025u, 917932067u, 3254255616u, 0, LOGBF_TOLERANCE, 0},
+{1037, 3353608773u, 1134068114u, 1098907648u, 0, LOGBF_TOLERANCE, 0},
+{1038, 2985838945u, 3118475644u, 3252682752u, 0, LOGBF_TOLERANCE, 0},
+{1039, 973664327u, 1319516167u, 3241148416u, 0, LOGBF_TOLERANCE, 0},
+{1040, 882878091u, 3136970767u, 3249537024u, 0, LOGBF_TOLERANCE, 0},
+{1041, 1098662266u, 833740182u, 1077936128u, 0, LOGBF_TOLERANCE, 0},
+{1042, 927582555u, 947955456u, 3246915584u, 0, LOGBF_TOLERANCE, 0},
+{1043, 3111440310u, 3067634077u, 3243245568u, 0, LOGBF_TOLERANCE, 0},
+{1044, 3476083859u, 966439623u, 1106771968u, 0, LOGBF_TOLERANCE, 0},
+{1045, 3038754840u, 932009686u, 3249012736u, 0, LOGBF_TOLERANCE, 0},
+{1046, 979878744u, 1232482646u, 3241148416u, 0, LOGBF_TOLERANCE, 0},
+{1047, 3464546616u, 3205527253u, 1106247680u, 0, LOGBF_TOLERANCE, 0},
+{1048, 1002542205u, 3152136093u, 3238002688u, 0, LOGBF_TOLERANCE, 0},
+{1049, 3443552129u, 3165561391u, 1104674816u, 0, LOGBF_TOLERANCE, 0},
+{1050, 1287620154u, 3119707283u, 1104150528u, 0, LOGBF_TOLERANCE, 0},
+{1051, 820906845u, 1196920413u, 3253731328u, 0, LOGBF_TOLERANCE, 0},
+{1052, 860108361u, 921064349u, 3251109888u, 0, LOGBF_TOLERANCE, 0},
+{1053, 946058434u, 1249928879u, 3245342720u, 0, LOGBF_TOLERANCE, 0},
+{1054, 3073260205u, 3093124531u, 3246915584u, 0, LOGBF_TOLERANCE, 0},
+{1055, 1245702957u, 894348966u, 1101529088u, 0, LOGBF_TOLERANCE, 0},
+{1056, 989655126u, 1308376568u, 3240099840u, 0, LOGBF_TOLERANCE, 0},
+{1057, 1002715618u, 1191006977u, 3238002688u, 0, LOGBF_TOLERANCE, 0},
+{1058, 3087802274u, 897541752u, 3245342720u, 0, LOGBF_TOLERANCE, 0},
+{1059, 1000863905u, 1196831314u, 3238002688u, 0, LOGBF_TOLERANCE, 0},
+{1060, 3415763001u, 3032518431u, 1103101952u, 0, LOGBF_TOLERANCE, 0},
+{1061, 2979924820u, 1100234812u, 3252682752u, 0, LOGBF_TOLERANCE, 0},
+{1062, 3283471961u, 1260093226u, 1090519040u, 0, LOGBF_TOLERANCE, 0},
+{1063, 3311210827u, 1192192264u, 1093664768u, 0, LOGBF_TOLERANCE, 0},
+{1064, 3026311911u, 2968974374u, 3250061312u, 0, LOGBF_TOLERANCE, 0},
+{1065, 1198307901u, 1116328249u, 1097859072u, 0, LOGBF_TOLERANCE, 0},
+{1066, 1288901567u, 1296370667u, 1104150528u, 0, LOGBF_TOLERANCE, 0},
+{1067, 922255363u, 958305289u, 3247439872u, 0, LOGBF_TOLERANCE, 0},
+{1068, 1113104661u, 944376032u, 1084227584u, 0, LOGBF_TOLERANCE, 0},
+{1069, 1136714348u, 828849087u, 1090519040u, 0, LOGBF_TOLERANCE, 0},
+{1070, 3002059872u, 1136817970u, 3251634176u, 0, LOGBF_TOLERANCE, 0},
+{1071, 948856035u, 1015466475u, 3244294144u, 0, LOGBF_TOLERANCE, 0},
+{1072, 1062512367u, 3229559531u, 3212836864u, 0, LOGBF_TOLERANCE, 0},
+{1073, 3486907092u, 823220784u, 1107296256u, 0, LOGBF_TOLERANCE, 0},
+{1074, 3015049792u, 3078555978u, 3250585600u, 0, LOGBF_TOLERANCE, 0},
+{1075, 1162027071u, 3308983387u, 1093664768u, 0, LOGBF_TOLERANCE, 0},
+{1076, 1034561811u, 1054043114u, 3229614080u, 0, LOGBF_TOLERANCE, 0},
+{1077, 853827378u, 898656161u, 3251634176u, 0, LOGBF_TOLERANCE, 0},
+{1078, 3271615417u, 3209997200u, 1088421888u, 0, LOGBF_TOLERANCE, 0},
+{1079, 1042014529u, 1146708584u, 3225419776u, 0, LOGBF_TOLERANCE, 0},
+{1080, 1177157787u, 3090208179u, 1095761920u, 0, LOGBF_TOLERANCE, 0},
+{1081, 3196144817u, 1056118717u, 3221225472u, 0, LOGBF_TOLERANCE, 0},
+{1082, 3432084552u, 2997091781u, 1104150528u, 0, LOGBF_TOLERANCE, 0},
+{1083, 1309658335u, 1010219988u, 1105723392u, 0, LOGBF_TOLERANCE, 0},
+{1084, 3004373345u, 873739132u, 3251109888u, 0, LOGBF_TOLERANCE, 0},
+{1085, 2997667929u, 1038223245u, 3251634176u, 0, LOGBF_TOLERANCE, 0},
+{1086, 1226494979u, 2991604792u, 1100480512u, 0, LOGBF_TOLERANCE, 0},
+{1087, 3100289712u, 3456334210u, 3244294144u, 0, LOGBF_TOLERANCE, 0},
+{1088, 3375507013u, 1306310823u, 1100480512u, 0, LOGBF_TOLERANCE, 0},
+{1089, 3460699001u, 3096700943u, 1105723392u, 0, LOGBF_TOLERANCE, 0},
+{1090, 3079231719u, 1044386263u, 3246391296u, 0, LOGBF_TOLERANCE, 0},
+{1091, 3093951884u, 1014115231u, 3245342720u, 0, LOGBF_TOLERANCE, 0},
+{1092, 3468023178u, 1209565017u, 1106247680u, 0, LOGBF_TOLERANCE, 0},
+{1093, 3008182310u, 1258900986u, 3251109888u, 0, LOGBF_TOLERANCE, 0},
+{1094, 1204196034u, 3298625731u, 1098907648u, 0, LOGBF_TOLERANCE, 0},
+{1095, 3459877411u, 2960476959u, 1105723392u, 0, LOGBF_TOLERANCE, 0},
+{1096, 909696559u, 1163075690u, 3247964160u, 0, LOGBF_TOLERANCE, 0},
+{1097, 1161439847u, 943449277u, 1093664768u, 0, LOGBF_TOLERANCE, 0},
+{1098, 908663107u, 939489763u, 3247964160u, 0, LOGBF_TOLERANCE, 0},
+{1099, 1055319316u, 3261813492u, 3221225472u, 0, LOGBF_TOLERANCE, 0},
+{1100, 1084378658u, 1009650785u, 1073741824u, 0, LOGBF_TOLERANCE, 0},
+{1101, 3053887750u, 3341786453u, 3247964160u, 0, LOGBF_TOLERANCE, 0},
+{1102, 3022828828u, 881335251u, 3250061312u, 0, LOGBF_TOLERANCE, 0},
+{1103, 2995476576u, 3194911588u, 3251634176u, 0, LOGBF_TOLERANCE, 0},
+{1104, 1226473697u, 821025132u, 1100480512u, 0, LOGBF_TOLERANCE, 0},
+{1105, 1123114742u, 1229815537u, 1086324736u, 0, LOGBF_TOLERANCE, 0},
+{1106, 1258114435u, 1291336083u, 1102053376u, 0, LOGBF_TOLERANCE, 0},
+{1107, 2983818103u, 3015402015u, 3252682752u, 0, LOGBF_TOLERANCE, 0},
+{1108, 3468040845u, 3066966245u, 1106247680u, 0, LOGBF_TOLERANCE, 0},
+{1109, 1178825761u, 1113195286u, 1095761920u, 0, LOGBF_TOLERANCE, 0},
+{1110, 3059266302u, 878503862u, 3247964160u, 0, LOGBF_TOLERANCE, 0},
+{1111, 3223384012u, 1130486973u, 1065353216u, 0, LOGBF_TOLERANCE, 0},
+{1112, 1019964626u, 1235133609u, 3233808384u, 0, LOGBF_TOLERANCE, 0},
+{1113, 3445262427u, 3465211174u, 1104674816u, 0, LOGBF_TOLERANCE, 0},
+{1114, 1125653081u, 1207799746u, 1088421888u, 0, LOGBF_TOLERANCE, 0},
+{1115, 3337652712u, 3025581813u, 1096810496u, 0, LOGBF_TOLERANCE, 0},
+{1116, 1184753508u, 3147374485u, 1096810496u, 0, LOGBF_TOLERANCE, 0},
+{1117, 996404791u, 3353251979u, 3239051264u, 0, LOGBF_TOLERANCE, 0},
+{1118, 1188439315u, 1113484271u, 1096810496u, 0, LOGBF_TOLERANCE, 0},
+{1119, 906557513u, 3006513432u, 3247964160u, 0, LOGBF_TOLERANCE, 0},
+{1120, 916831283u, 999465787u, 3247439872u, 0, LOGBF_TOLERANCE, 0},
+{1121, 996786317u, 3179221951u, 3239051264u, 0, LOGBF_TOLERANCE, 0},
+{1122, 3461635065u, 1004690387u, 1105723392u, 0, LOGBF_TOLERANCE, 0},
+{1123, 1188167943u, 1200744896u, 1096810496u, 0, LOGBF_TOLERANCE, 0},
+{1124, 3036502395u, 1172597364u, 3249537024u, 0, LOGBF_TOLERANCE, 0},
+{1125, 891257783u, 1267560050u, 3249012736u, 0, LOGBF_TOLERANCE, 0},
+{1126, 3290079438u, 846519377u, 1091567616u, 0, LOGBF_TOLERANCE, 0},
+{1127, 3350690327u, 2967953392u, 1098907648u, 0, LOGBF_TOLERANCE, 0},
+{1128, 1102061604u, 3424449935u, 1082130432u, 0, LOGBF_TOLERANCE, 0},
+{1129, 1282351521u, 3039376424u, 1103626240u, 0, LOGBF_TOLERANCE, 0},
+{1130, 3458861065u, 3392466405u, 1105723392u, 0, LOGBF_TOLERANCE, 0},
+{1131, 3095256878u, 1023623326u, 3245342720u, 0, LOGBF_TOLERANCE, 0},
+{1132, 3163373610u, 843150426u, 3233808384u, 0, LOGBF_TOLERANCE, 0},
+{1133, 3228793330u, 855146890u, 1065353216u, 0, LOGBF_TOLERANCE, 0},
+{1134, 3422194733u, 893873945u, 1103101952u, 0, LOGBF_TOLERANCE, 0},
+{1135, 3083885296u, 974543672u, 3246391296u, 0, LOGBF_TOLERANCE, 0},
+{1136, 1261940623u, 3402349985u, 1102577664u, 0, LOGBF_TOLERANCE, 0},
+{1137, 825039660u, 3426717554u, 3253207040u, 0, LOGBF_TOLERANCE, 0},
+{1138, 3400603081u, 3234396843u, 1102053376u, 0, LOGBF_TOLERANCE, 0},
+{1139, 1219411812u, 2961857939u, 1099956224u, 0, LOGBF_TOLERANCE, 0},
+{1140, 3094833770u, 805351108u, 3245342720u, 0, LOGBF_TOLERANCE, 0},
+{1141, 3139250800u, 3079109479u, 3239051264u, 0, LOGBF_TOLERANCE, 0},
+{1142, 886201503u, 3272760705u, 3249537024u, 0, LOGBF_TOLERANCE, 0},
+{1143, 3297366026u, 1089966380u, 1092616192u, 0, LOGBF_TOLERANCE, 0},
+{1144, 1218488455u, 3309646450u, 1099956224u, 0, LOGBF_TOLERANCE, 0},
+{1145, 3040358923u, 3093401553u, 3249012736u, 0, LOGBF_TOLERANCE, 0},
+{1146, 862346861u, 3411853707u, 3251109888u, 0, LOGBF_TOLERANCE, 0},
+{1147, 1283938137u, 1196383822u, 1104150528u, 0, LOGBF_TOLERANCE, 0},
+{1148, 3182551696u, 3029982441u, 3229614080u, 0, LOGBF_TOLERANCE, 0},
+{1149, 1317098613u, 949986176u, 1106247680u, 0, LOGBF_TOLERANCE, 0},
+{1150, 3116209179u, 3303588342u, 3242196992u, 0, LOGBF_TOLERANCE, 0},
+{1151, 3431703657u, 3014443710u, 1104150528u, 0, LOGBF_TOLERANCE, 0},
+{1152, 3239728775u, 927815421u, 1077936128u, 0, LOGBF_TOLERANCE, 0},
+{1153, 3207141672u, 933456504u, 3212836864u, 0, LOGBF_TOLERANCE, 0},
+{1154, 3154378805u, 905462392u, 3235905536u, 0, LOGBF_TOLERANCE, 0},
+{1155, 3069658155u, 1041452042u, 3247439872u, 0, LOGBF_TOLERANCE, 0},
+{1156, 3313160088u, 2964063309u, 1093664768u, 0, LOGBF_TOLERANCE, 0},
+{1157, 3207056527u, 3384206601u, 3212836864u, 0, LOGBF_TOLERANCE, 0},
+{1158, 1284174954u, 3436881197u, 1104150528u, 0, LOGBF_TOLERANCE, 0},
+{1159, 3156081645u, 3308839704u, 3235905536u, 0, LOGBF_TOLERANCE, 0},
+{1160, 1063693032u, 976661408u, 3212836864u, 0, LOGBF_TOLERANCE, 0},
+{1161, 3036026175u, 1251203998u, 3249537024u, 0, LOGBF_TOLERANCE, 0},
+{1162, 1102631663u, 3396951425u, 1082130432u, 0, LOGBF_TOLERANCE, 0},
+{1163, 968803479u, 992989712u, 3242196992u, 0, LOGBF_TOLERANCE, 0},
+{1164, 3273080388u, 3109405906u, 1088421888u, 0, LOGBF_TOLERANCE, 0},
+{1165, 1172529774u, 3294550127u, 1094713344u, 0, LOGBF_TOLERANCE, 0},
+{1166, 1306695905u, 1292690378u, 1105199104u, 0, LOGBF_TOLERANCE, 0},
+{1167, 1003649752u, 1218792138u, 3238002688u, 0, LOGBF_TOLERANCE, 0},
+{1168, 1078478376u, 1326246424u, 1065353216u, 0, LOGBF_TOLERANCE, 0},
+{1169, 3158855023u, 3151283866u, 3235905536u, 0, LOGBF_TOLERANCE, 0},
+{1170, 1165177679u, 3276237026u, 1093664768u, 0, LOGBF_TOLERANCE, 0},
+{1171, 870472127u, 3332532333u, 3250585600u, 0, LOGBF_TOLERANCE, 0},
+{1172, 3403009513u, 3381966453u, 1102053376u, 0, LOGBF_TOLERANCE, 0},
+{1173, 816825508u, 3032174124u, 3253731328u, 0, LOGBF_TOLERANCE, 0},
+{1174, 952348506u, 3377573987u, 3244294144u, 0, LOGBF_TOLERANCE, 0},
+{1175, 839544701u, 3419900937u, 3252158464u, 0, LOGBF_TOLERANCE, 0},
+{1176, 2967454456u, 3313359047u, 3253731328u, 0, LOGBF_TOLERANCE, 0},
+{1177, 1222777442u, 1125769920u, 1099956224u, 0, LOGBF_TOLERANCE, 0},
+{1178, 1325324763u, 978336043u, 1106247680u, 0, LOGBF_TOLERANCE, 0},
+{1179, 3363524213u, 3202991311u, 1099431936u, 0, LOGBF_TOLERANCE, 0},
+{1180, 1158950321u, 1073578913u, 1093664768u, 0, LOGBF_TOLERANCE, 0},
+{1181, 903129873u, 3416864271u, 3248488448u, 0, LOGBF_TOLERANCE, 0},
+{1182, 2997685349u, 1123653663u, 3251634176u, 0, LOGBF_TOLERANCE, 0},
+{1183, 3078339944u, 988173985u, 3246915584u, 0, LOGBF_TOLERANCE, 0},
+{1184, 1208345407u, 1254181270u, 1099431936u, 0, LOGBF_TOLERANCE, 0},
+{1185, 3003262042u, 1327277116u, 3251109888u, 0, LOGBF_TOLERANCE, 0},
+{1186, 1258634105u, 1247426200u, 1102577664u, 0, LOGBF_TOLERANCE, 0},
+{1187, 1248478509u, 1287895126u, 1101529088u, 0, LOGBF_TOLERANCE, 0},
+{1188, 1153863988u, 3430539165u, 1092616192u, 0, LOGBF_TOLERANCE, 0},
+{1189, 1235620969u, 866627358u, 1101004800u, 0, LOGBF_TOLERANCE, 0},
+{1190, 1097120930u, 3221726305u, 1077936128u, 0, LOGBF_TOLERANCE, 0},
+{1191, 3469778622u, 1200179013u, 1106247680u, 0, LOGBF_TOLERANCE, 0},
+{1192, 1147712200u, 931865525u, 1091567616u, 0, LOGBF_TOLERANCE, 0},
+{1193, 812694172u, 1136276190u, 3254255616u, 0, LOGBF_TOLERANCE, 0},
+{1194, 862266739u, 3139447362u, 3251109888u, 0, LOGBF_TOLERANCE, 0},
+{1195, 1124721745u, 3058969650u, 1088421888u, 0, LOGBF_TOLERANCE, 0},
+{1196, 3261744304u, 1043806501u, 1084227584u, 0, LOGBF_TOLERANCE, 0},
+{1197, 832324055u, 2954061156u, 3252682752u, 0, LOGBF_TOLERANCE, 0},
+{1198, 805759679u, 903848557u, 3254255616u, 0, LOGBF_TOLERANCE, 0},
+{1199, 2983396015u, 872299138u, 3252682752u, 0, LOGBF_TOLERANCE, 0},
+{1200, 1064922416u, 1320485628u, 3212836864u, 0, LOGBF_TOLERANCE, 0},
+{1201, 868114980u, 3213276361u, 3250585600u, 0, LOGBF_TOLERANCE, 0},
+{1202, 3303160152u, 3075455322u, 1092616192u, 0, LOGBF_TOLERANCE, 0},
+{1203, 1315090496u, 3269683237u, 1105723392u, 0, LOGBF_TOLERANCE, 0},
+{1204, 850876090u, 3365795667u, 3251634176u, 0, LOGBF_TOLERANCE, 0},
+{1205, 3230403187u, 1322841992u, 1073741824u, 0, LOGBF_TOLERANCE, 0},
+{1206, 1335399673u, 974138676u, 1107296256u, 0, LOGBF_TOLERANCE, 0},
+{1207, 1072458508u, 3372833993u, 0u, 0, LOGBF_TOLERANCE, 0},
+{1208, 3303015249u, 3015039539u, 1092616192u, 0, LOGBF_TOLERANCE, 0},
+{1209, 3252139741u, 1059615003u, 1082130432u, 0, LOGBF_TOLERANCE, 0},
+{1210, 3468519966u, 3113982619u, 1106247680u, 0, LOGBF_TOLERANCE, 0},
+{1211, 1006231203u, 897530770u, 3238002688u, 0, LOGBF_TOLERANCE, 0},
+{1212, 951554138u, 1001144381u, 3244294144u, 0, LOGBF_TOLERANCE, 0},
+{1213, 942046828u, 986341002u, 3245342720u, 0, LOGBF_TOLERANCE, 0},
+{1214, 2968517146u, 951832467u, 3253731328u, 0, LOGBF_TOLERANCE, 0},
+{1215, 3319723279u, 3414482416u, 1094713344u, 0, LOGBF_TOLERANCE, 0},
+{1216, 3255104167u, 928827688u, 1084227584u, 0, LOGBF_TOLERANCE, 0},
+{1217, 1155477903u, 3104812800u, 1092616192u, 0, LOGBF_TOLERANCE, 0},
+{1218, 3273889176u, 980486479u, 1088421888u, 0, LOGBF_TOLERANCE, 0},
+{1219, 3237813668u, 3441016803u, 1073741824u, 0, LOGBF_TOLERANCE, 0},
+{1220, 1228207362u, 2985476579u, 1100480512u, 0, LOGBF_TOLERANCE, 0},
+{1221, 975349337u, 1311932596u, 3241148416u, 0, LOGBF_TOLERANCE, 0},
+{1222, 2982583196u, 3132904446u, 3252682752u, 0, LOGBF_TOLERANCE, 0},
+{1223, 1290175785u, 3008182462u, 1104150528u, 0, LOGBF_TOLERANCE, 0},
+{1224, 981908840u, 3314038398u, 3240099840u, 0, LOGBF_TOLERANCE, 0},
+{1225, 941187647u, 1107765599u, 3245342720u, 0, LOGBF_TOLERANCE, 0},
+{1226, 1214223128u, 3225536822u, 1099431936u, 0, LOGBF_TOLERANCE, 0},
+{1227, 3422922584u, 1086391131u, 1103626240u, 0, LOGBF_TOLERANCE, 0},
+{1228, 1315857601u, 3487600045u, 1105723392u, 0, LOGBF_TOLERANCE, 0},
+{1229, 3453226030u, 3233768835u, 1105199104u, 0, LOGBF_TOLERANCE, 0},
+{1230, 1078359574u, 3199175230u, 1065353216u, 0, LOGBF_TOLERANCE, 0},
+{1231, 1029557624u, 3302959071u, 3231711232u, 0, LOGBF_TOLERANCE, 0},
+{1232, 1207675424u, 3042692550u, 1098907648u, 0, LOGBF_TOLERANCE, 0},
+{1233, 1028355074u, 3442294040u, 3231711232u, 0, LOGBF_TOLERANCE, 0},
+{1234, 3119299090u, 1187096397u, 3242196992u, 0, LOGBF_TOLERANCE, 0},
+{1235, 1248421894u, 3367769132u, 1101529088u, 0, LOGBF_TOLERANCE, 0},
+{1236, 3353251994u, 1095517730u, 1098907648u, 0, LOGBF_TOLERANCE, 0},
+{1237, 876926659u, 3288089977u, 3250061312u, 0, LOGBF_TOLERANCE, 0},
+{1238, 1076752219u, 876236939u, 1065353216u, 0, LOGBF_TOLERANCE, 0},
+{1239, 3388531942u, 2988520062u, 1101004800u, 0, LOGBF_TOLERANCE, 0},
+{1240, 1273395082u, 3031189261u, 1103101952u, 0, LOGBF_TOLERANCE, 0},
+{1241, 3385588183u, 3258252464u, 1101004800u, 0, LOGBF_TOLERANCE, 0},
+{1242, 862047095u, 829323655u, 3251109888u, 0, LOGBF_TOLERANCE, 0},
+{1243, 3192315328u, 3289489214u, 3225419776u, 0, LOGBF_TOLERANCE, 0},
+{1244, 3441804648u, 3274638356u, 1104674816u, 0, LOGBF_TOLERANCE, 0},
+{1245, 837368567u, 3228474927u, 3252682752u, 0, LOGBF_TOLERANCE, 0},
+{1246, 3392827417u, 1277961150u, 1101529088u, 0, LOGBF_TOLERANCE, 0},
+{1247, 1161241793u, 1328003707u, 1093664768u, 0, LOGBF_TOLERANCE, 0},
+{1248, 856495732u, 3123041418u, 3251109888u, 0, LOGBF_TOLERANCE, 0},
+{1249, 3034494183u, 3041579130u, 3249537024u, 0, LOGBF_TOLERANCE, 0},
+{1250, 1171318485u, 3374409104u, 1094713344u, 0, LOGBF_TOLERANCE, 0},
+{1251, 3047748143u, 831102792u, 3248488448u, 0, LOGBF_TOLERANCE, 0},
+{1252, 1001216371u, 3052357038u, 3238002688u, 0, LOGBF_TOLERANCE, 0},
+{1253, 2999541351u, 3085461799u, 3251634176u, 0, LOGBF_TOLERANCE, 0},
+{1254, 912515889u, 1074635609u, 3247964160u, 0, LOGBF_TOLERANCE, 0},
+{1255, 3391452505u, 897989232u, 1101529088u, 0, LOGBF_TOLERANCE, 0},
+{1256, 3249603369u, 3147662248u, 1082130432u, 0, LOGBF_TOLERANCE, 0},
+{1257, 1220264047u, 2960450369u, 1099956224u, 0, LOGBF_TOLERANCE, 0},
+{1258, 3169816394u, 988430929u, 3233808384u, 0, LOGBF_TOLERANCE, 0},
+{1259, 3098997418u, 3002162688u, 3244294144u, 0, LOGBF_TOLERANCE, 0},
+{1260, 3282212423u, 3174079140u, 1090519040u, 0, LOGBF_TOLERANCE, 0},
+{1261, 3352293320u, 3247843425u, 1098907648u, 0, LOGBF_TOLERANCE, 0},
+{1262, 3296358441u, 875645354u, 1091567616u, 0, LOGBF_TOLERANCE, 0},
+{1263, 1197828352u, 3245614728u, 1097859072u, 0, LOGBF_TOLERANCE, 0},
+{1264, 3340510371u, 914930263u, 1097859072u, 0, LOGBF_TOLERANCE, 0},
+{1265, 1127109339u, 3368125489u, 1088421888u, 0, LOGBF_TOLERANCE, 0},
+{1266, 816173492u, 1083268662u, 3253731328u, 0, LOGBF_TOLERANCE, 0},
+{1267, 909467381u, 1232375752u, 3247964160u, 0, LOGBF_TOLERANCE, 0},
+{1268, 1200599955u, 2981200675u, 1098907648u, 0, LOGBF_TOLERANCE, 0},
+{1269, 962230977u, 2988248037u, 3243245568u, 0, LOGBF_TOLERANCE, 0},
+{1270, 2996667337u, 1068572835u, 3251634176u, 0, LOGBF_TOLERANCE, 0},
+{1271, 3192887808u, 3191848339u, 3225419776u, 0, LOGBF_TOLERANCE, 0},
+{1272, 3237183876u, 3179379969u, 1073741824u, 0, LOGBF_TOLERANCE, 0},
+{1273, 939285924u, 3056079386u, 3246391296u, 0, LOGBF_TOLERANCE, 0},
+{1274, 944050180u, 3452557879u, 3245342720u, 0, LOGBF_TOLERANCE, 0},
+{1275, 3058135703u, 3090284601u, 3247964160u, 0, LOGBF_TOLERANCE, 0},
+{1276, 3480592662u, 3261728191u, 1106771968u, 0, LOGBF_TOLERANCE, 0},
+{1277, 3061939312u, 3274418540u, 3247439872u, 0, LOGBF_TOLERANCE, 0},
+{1278, 1003299981u, 853295521u, 3238002688u, 0, LOGBF_TOLERANCE, 0},
+{1279, 1155775526u, 1255814444u, 1092616192u, 0, LOGBF_TOLERANCE, 0},
+{1280, 1234491880u, 3408568717u, 1101004800u, 0, LOGBF_TOLERANCE, 0}
+
+// AUTOMATICALLY GENERATED VECTORS STOP
+
+};
+
+#endif // CYGONCE_LIBM_LOGBF_H multiple inclusion protection
+
+// EOF logbf.h
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/logf.c b/ecos/packages/language/c/libm/current/tests/vectors/logf.c
new file mode 100644
index 0000000..be63cd3
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/logf.c
@@ -0,0 +1,115 @@
+//===========================================================================
+//
+// log.c
+//
+// Test of log() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// Declarations for test system:
+//
+// TESTCASE_TYPE=CYG_TEST_MODULE
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include <cyg/infra/testcase.h> // Test infrastructure
+#include <math.h> // Header for this package
+#include <sys/ieeefp.h> // Cyg_libm_ieee_double_shape_type
+#include "vectors/vector_support_float.h"// extra support for math tests
+
+#include "vectors/logf.h"
+
+// FUNCTIONS
+
+static void
+test( CYG_ADDRWORD data )
+{
+ cyg_ucount32 vec_size;
+ cyg_bool ret;
+
+ vec_size = sizeof(logf_vec) / sizeof(Cyg_libm_test_float_vec_t);
+ ret = doTestVecFloat( (CYG_ADDRWORD) &logf, CYG_LIBM_TEST_VEC_FLOAT,
+ CYG_LIBM_TEST_VEC_NONE, CYG_LIBM_TEST_VEC_FLOAT,
+ &logf_vec[0], vec_size );
+
+ if (ret==true)
+ {
+ CYG_TEST_PASS("logf() is stable");
+ } // if
+ else
+ {
+ CYG_TEST_FAIL("logf() failed tests");
+ } // else
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for Math "
+ "library log() function");
+} // test()
+
+
+int
+main(int argc, char *argv[])
+{
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for Math library "
+ "log() function");
+
+ START_TEST( test );
+
+ CYG_TEST_PASS_FINISH("Testing is not applicable to this configuration");
+
+} // main()
+
+
+// EOF log.c
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/logf.h b/ecos/packages/language/c/libm/current/tests/vectors/logf.h
new file mode 100644
index 0000000..4485f64
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/logf.h
@@ -0,0 +1,874 @@
+#ifndef CYGONCE_LIBM_LOG_H
+#define CYGONCE_LIBM_LOG_H
+//===========================================================================
+//
+// log.h
+//
+// Test vectors for testing of log() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage: #include "vectors/log.h"
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include "vectors/vector_support_float.h"// extra support for math tests
+
+#define LOG_TOLERANCE 1.0E-04
+
+static const Cyg_libm_test_float_vec_t logf_vec[] = {
+
+// AUTOMATICALLY GENERATED VECTORS START
+{0, 3214514586u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{1, 3214430700u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{2, 3214346813u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{3, 3214262927u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{4, 3214179041u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{5, 3214095155u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{6, 3214011269u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{7, 3213927383u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{8, 3213843497u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{9, 3213759611u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{10, 3213675725u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{11, 3213591839u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{12, 3213507953u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{13, 3213424067u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{14, 3213340180u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{15, 3213256294u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{16, 3213172408u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{17, 3213088522u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{18, 3213004636u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{19, 3212920750u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{20, 3212836864u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{21, 3212669092u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{22, 3212501320u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{23, 3212333548u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{24, 3212165775u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{25, 3211998003u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{26, 3211830231u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{27, 3211662459u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{28, 3211494687u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{29, 3211326915u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{30, 3211159142u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{31, 3210991370u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{32, 3210823598u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{33, 3210655826u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{34, 3210488054u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{35, 3210320282u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{36, 3210152509u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{37, 3209984737u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{38, 3209816965u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{39, 3209649193u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{40, 3209481421u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{41, 3209313649u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{42, 3209145876u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{43, 3208978104u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{44, 3208810332u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{45, 3208642560u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{46, 3208474788u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{47, 3208307016u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{48, 3208139244u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{49, 3207971471u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{50, 3207803699u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{51, 3207635927u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{52, 3207468155u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{53, 3207300383u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{54, 3207132611u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{55, 3206964838u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{56, 3206797066u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{57, 3206629294u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{58, 3206461522u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{59, 3206293750u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{60, 3206125978u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{61, 3205958205u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{62, 3205790433u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{63, 3205622661u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{64, 3205454889u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{65, 3205287117u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{66, 3205119345u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{67, 3204951572u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{68, 3204783800u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{69, 3204616028u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{70, 3204448256u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{71, 3204112712u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{72, 3203777167u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{73, 3203441623u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{74, 3203106079u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{75, 3202770534u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{76, 3202434990u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{77, 3202099446u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{78, 3201763901u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{79, 3201428357u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{80, 3201092813u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{81, 3200757268u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{82, 3200421724u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{83, 3200086180u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{84, 3199750636u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{85, 3199415091u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{86, 3199079547u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{87, 3198744003u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{88, 3198408458u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{89, 3198072914u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{90, 3197737370u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{91, 3197401825u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{92, 3197066281u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{93, 3196730737u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{94, 3196395192u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{95, 3196059648u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{96, 3195388559u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{97, 3194717471u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{98, 3194046382u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{99, 3193375293u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{100, 3192704205u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{101, 3192033116u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{102, 3191362028u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{103, 3190690939u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{104, 3190019850u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{105, 3189348762u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{106, 3188677673u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{107, 3188006584u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{108, 3186999951u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{109, 3185657774u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{110, 3184315597u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{111, 3182973420u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{112, 3181631242u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{113, 3180289065u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{114, 3178611343u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{115, 3175926989u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{116, 3173242634u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{117, 3170222735u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{118, 3164854026u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{119, 3156465418u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{120, 646742016u, 3255452089u, 3255452089u, 0, LOG_TOLERANCE, 0},
+{121, 1008981770u, 3230883214u, 3230883214u, 0, LOG_TOLERANCE, 0},
+{122, 1017370378u, 3229245078u, 3229245078u, 0, LOG_TOLERANCE, 0},
+{123, 1022739087u, 3227544434u, 3227544434u, 0, LOG_TOLERANCE, 0},
+{124, 1025758986u, 3226337808u, 3226337808u, 0, LOG_TOLERANCE, 0},
+{125, 1028443341u, 3225401876u, 3225401876u, 0, LOG_TOLERANCE, 0},
+{126, 1031127695u, 3224637164u, 3224637164u, 0, LOG_TOLERANCE, 0},
+{127, 1032805417u, 3223990609u, 3223990609u, 0, LOG_TOLERANCE, 0},
+{128, 1034147594u, 3223430538u, 3223430538u, 0, LOG_TOLERANCE, 0},
+{129, 1035489772u, 3222936520u, 3222936520u, 0, LOG_TOLERANCE, 0},
+{130, 1036831949u, 3222494606u, 3222494606u, 0, LOG_TOLERANCE, 0},
+{131, 1038174126u, 3222094846u, 3222094846u, 0, LOG_TOLERANCE, 0},
+{132, 1039516303u, 3221729894u, 3221729894u, 0, LOG_TOLERANCE, 0},
+{133, 1040522936u, 3221394171u, 3221394171u, 0, LOG_TOLERANCE, 0},
+{134, 1041194025u, 3220941206u, 3220941206u, 0, LOG_TOLERANCE, 0},
+{135, 1041865114u, 3220362452u, 3220362452u, 0, LOG_TOLERANCE, 0},
+{136, 1042536202u, 3219821064u, 3219821064u, 0, LOG_TOLERANCE, 0},
+{137, 1043207291u, 3219312507u, 3219312507u, 0, LOG_TOLERANCE, 0},
+{138, 1043878380u, 3218833027u, 3218833027u, 0, LOG_TOLERANCE, 0},
+{139, 1044549468u, 3218379479u, 3218379479u, 0, LOG_TOLERANCE, 0},
+{140, 1045220557u, 3217949200u, 3217949200u, 0, LOG_TOLERANCE, 0},
+{141, 1045891645u, 3217539918u, 3217539918u, 0, LOG_TOLERANCE, 0},
+{142, 1046562734u, 3217149680u, 3217149680u, 0, LOG_TOLERANCE, 0},
+{143, 1047233823u, 3216776791u, 3216776791u, 0, LOG_TOLERANCE, 0},
+{144, 1047904911u, 3216419776u, 3216419776u, 0, LOG_TOLERANCE, 0},
+{145, 1048576000u, 3216077336u, 3216077336u, 0, LOG_TOLERANCE, 0},
+{146, 1048911544u, 3215748329u, 3215748329u, 0, LOG_TOLERANCE, 0},
+{147, 1049247089u, 3215431740u, 3215431740u, 0, LOG_TOLERANCE, 0},
+{148, 1049582633u, 3215126666u, 3215126666u, 0, LOG_TOLERANCE, 0},
+{149, 1049918177u, 3214832299u, 3214832299u, 0, LOG_TOLERANCE, 0},
+{150, 1050253722u, 3214547912u, 3214547912u, 0, LOG_TOLERANCE, 0},
+{151, 1050589266u, 3214272851u, 3214272851u, 0, LOG_TOLERANCE, 0},
+{152, 1050924810u, 3214006524u, 3214006524u, 0, LOG_TOLERANCE, 0},
+{153, 1051260355u, 3213748392u, 3213748392u, 0, LOG_TOLERANCE, 0},
+{154, 1051595899u, 3213497967u, 3213497967u, 0, LOG_TOLERANCE, 0},
+{155, 1051931443u, 3213254802u, 3213254802u, 0, LOG_TOLERANCE, 0},
+{156, 1052266988u, 3213018487u, 3213018487u, 0, LOG_TOLERANCE, 0},
+{157, 1052602532u, 3212740433u, 3212740433u, 0, LOG_TOLERANCE, 0},
+{158, 1052938076u, 3212293014u, 3212293014u, 0, LOG_TOLERANCE, 0},
+{159, 1053273620u, 3211857218u, 3211857218u, 0, LOG_TOLERANCE, 0},
+{160, 1053609165u, 3211432455u, 3211432455u, 0, LOG_TOLERANCE, 0},
+{161, 1053944709u, 3211018182u, 3211018182u, 0, LOG_TOLERANCE, 0},
+{162, 1054280253u, 3210613893u, 3210613893u, 0, LOG_TOLERANCE, 0},
+{163, 1054615798u, 3210219116u, 3210219116u, 0, LOG_TOLERANCE, 0},
+{164, 1054951342u, 3209833416u, 3209833416u, 0, LOG_TOLERANCE, 0},
+{165, 1055286886u, 3209456384u, 3209456384u, 0, LOG_TOLERANCE, 0},
+{166, 1055622431u, 3209087639u, 3209087639u, 0, LOG_TOLERANCE, 0},
+{167, 1055957975u, 3208726825u, 3208726825u, 0, LOG_TOLERANCE, 0},
+{168, 1056293519u, 3208373608u, 3208373608u, 0, LOG_TOLERANCE, 0},
+{169, 1056629064u, 3208027673u, 3208027673u, 0, LOG_TOLERANCE, 0},
+{170, 1056964608u, 3207688728u, 3207688728u, 0, LOG_TOLERANCE, 0},
+{171, 1057132380u, 3207356495u, 3207356495u, 0, LOG_TOLERANCE, 0},
+{172, 1057300152u, 3207030714u, 3207030714u, 0, LOG_TOLERANCE, 0},
+{173, 1057467924u, 3206711139u, 3206711139u, 0, LOG_TOLERANCE, 0},
+{174, 1057635697u, 3206397535u, 3206397535u, 0, LOG_TOLERANCE, 0},
+{175, 1057803469u, 3206089688u, 3206089688u, 0, LOG_TOLERANCE, 0},
+{176, 1057971241u, 3205787388u, 3205787388u, 0, LOG_TOLERANCE, 0},
+{177, 1058139013u, 3205490438u, 3205490438u, 0, LOG_TOLERANCE, 0},
+{178, 1058306785u, 3205198654u, 3205198654u, 0, LOG_TOLERANCE, 0},
+{179, 1058474557u, 3204911857u, 3204911857u, 0, LOG_TOLERANCE, 0},
+{180, 1058642330u, 3204629879u, 3204629879u, 0, LOG_TOLERANCE, 0},
+{181, 1058810102u, 3204256872u, 3204256872u, 0, LOG_TOLERANCE, 0},
+{182, 1058977874u, 3203711260u, 3203711260u, 0, LOG_TOLERANCE, 0},
+{183, 1059145646u, 3203174378u, 3203174378u, 0, LOG_TOLERANCE, 0},
+{184, 1059313418u, 3202645951u, 3202645951u, 0, LOG_TOLERANCE, 0},
+{185, 1059481190u, 3202125717u, 3202125717u, 0, LOG_TOLERANCE, 0},
+{186, 1059648963u, 3201613424u, 3201613424u, 0, LOG_TOLERANCE, 0},
+{187, 1059816735u, 3201108837u, 3201108837u, 0, LOG_TOLERANCE, 0},
+{188, 1059984507u, 3200611726u, 3200611726u, 0, LOG_TOLERANCE, 0},
+{189, 1060152279u, 3200121872u, 3200121872u, 0, LOG_TOLERANCE, 0},
+{190, 1060320051u, 3199639066u, 3199639066u, 0, LOG_TOLERANCE, 0},
+{191, 1060487823u, 3199163108u, 3199163108u, 0, LOG_TOLERANCE, 0},
+{192, 1060655596u, 3198693806u, 3198693806u, 0, LOG_TOLERANCE, 0},
+{193, 1060823368u, 3198230980u, 3198230980u, 0, LOG_TOLERANCE, 0},
+{194, 1060991140u, 3197774450u, 3197774450u, 0, LOG_TOLERANCE, 0},
+{195, 1061158912u, 3197324049u, 3197324049u, 0, LOG_TOLERANCE, 0},
+{196, 1061326684u, 3196879613u, 3196879613u, 0, LOG_TOLERANCE, 0},
+{197, 1061494456u, 3196440987u, 3196440987u, 0, LOG_TOLERANCE, 0},
+{198, 1061662228u, 3195956394u, 3195956394u, 0, LOG_TOLERANCE, 0},
+{199, 1061830001u, 3195101489u, 3195101489u, 0, LOG_TOLERANCE, 0},
+{200, 1061997773u, 3194257341u, 3194257341u, 0, LOG_TOLERANCE, 0},
+{201, 1062165545u, 3193423681u, 3193423681u, 0, LOG_TOLERANCE, 0},
+{202, 1062333317u, 3192600250u, 3192600250u, 0, LOG_TOLERANCE, 0},
+{203, 1062501089u, 3191786800u, 3191786800u, 0, LOG_TOLERANCE, 0},
+{204, 1062668861u, 3190983092u, 3190983092u, 0, LOG_TOLERANCE, 0},
+{205, 1062836634u, 3190188891u, 3190188891u, 0, LOG_TOLERANCE, 0},
+{206, 1063004406u, 3189403984u, 3189403984u, 0, LOG_TOLERANCE, 0},
+{207, 1063172178u, 3188628151u, 3188628151u, 0, LOG_TOLERANCE, 0},
+{208, 1063339950u, 3187861184u, 3187861184u, 0, LOG_TOLERANCE, 0},
+{209, 1063507722u, 3186534730u, 3186534730u, 0, LOG_TOLERANCE, 0},
+{210, 1063675494u, 3185035076u, 3185035076u, 0, LOG_TOLERANCE, 0},
+{211, 1063843267u, 3183551985u, 3183551985u, 0, LOG_TOLERANCE, 0},
+{212, 1064011039u, 3182085111u, 3182085111u, 0, LOG_TOLERANCE, 0},
+{213, 1064178811u, 3180634097u, 3180634097u, 0, LOG_TOLERANCE, 0},
+{214, 1064346583u, 3179114768u, 3179114768u, 0, LOG_TOLERANCE, 0},
+{215, 1064514355u, 3176274158u, 3176274158u, 0, LOG_TOLERANCE, 0},
+{216, 1064682127u, 3173463292u, 3173463292u, 0, LOG_TOLERANCE, 0},
+{217, 1064849900u, 3170469255u, 3170469255u, 0, LOG_TOLERANCE, 0},
+{218, 1065017672u, 3164962844u, 3164962844u, 0, LOG_TOLERANCE, 0},
+{219, 1065185444u, 3156519456u, 3156519456u, 0, LOG_TOLERANCE, 0},
+{220, 1065353216u, 0u, 0u, 0, LOG_TOLERANCE, 0},
+{221, 1065437102u, 1008928428u, 1008928428u, 0, LOG_TOLERANCE, 0},
+{222, 1065520988u, 1017264404u, 1017264404u, 0, LOG_TOLERANCE, 0},
+{223, 1065604874u, 1022502206u, 1022502206u, 0, LOG_TOLERANCE, 0},
+{224, 1065688760u, 1025549788u, 1025549788u, 0, LOG_TOLERANCE, 0},
+{225, 1065772646u, 1028118565u, 1028118565u, 0, LOG_TOLERANCE, 0},
+{226, 1065856532u, 1030662994u, 1030662994u, 0, LOG_TOLERANCE, 0},
+{227, 1065940419u, 1032491173u, 1032491173u, 0, LOG_TOLERANCE, 0},
+{228, 1066024305u, 1033739718u, 1033739718u, 0, LOG_TOLERANCE, 0},
+{229, 1066108191u, 1034976754u, 1034976754u, 0, LOG_TOLERANCE, 0},
+{230, 1066192077u, 1036202495u, 1036202495u, 0, LOG_TOLERANCE, 0},
+{231, 1066275963u, 1037417141u, 1037417141u, 0, LOG_TOLERANCE, 0},
+{232, 1066359849u, 1038620896u, 1038620896u, 0, LOG_TOLERANCE, 0},
+{233, 1066443735u, 1039813947u, 1039813947u, 0, LOG_TOLERANCE, 0},
+{234, 1066527621u, 1040591942u, 1040591942u, 0, LOG_TOLERANCE, 0},
+{235, 1066611507u, 1041178048u, 1041178048u, 0, LOG_TOLERANCE, 0},
+{236, 1066695393u, 1041759081u, 1041759081u, 0, LOG_TOLERANCE, 0},
+{237, 1066779279u, 1042335124u, 1042335124u, 0, LOG_TOLERANCE, 0},
+{238, 1066863165u, 1042906267u, 1042906267u, 0, LOG_TOLERANCE, 0},
+{239, 1066947052u, 1043472596u, 1043472596u, 0, LOG_TOLERANCE, 0},
+{240, 3234402267u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{241, 3231108068u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{242, 3226013659u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{243, 3217625051u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{244, 0u, 1115684864u, 4286578688u, EDOM, LOG_TOLERANCE, 0},
+{245, 1070141403u, 1055339994u, 1055339994u, 0, LOG_TOLERANCE, 0},
+{246, 1078530011u, 1066567299u, 1066567299u, 0, LOG_TOLERANCE, 0},
+{247, 1083624420u, 1069968586u, 1069968586u, 0, LOG_TOLERANCE, 0},
+{248, 3253731328u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{249, 3252840038u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{250, 3251948749u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{251, 3251057459u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{252, 3250166170u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{253, 3249274880u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{254, 3248383590u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{255, 3247492301u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{256, 3246601011u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{257, 3245028147u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{258, 3243245568u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{259, 3241462989u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{260, 3239680410u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{261, 3237792973u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{262, 3234227814u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{263, 3230662656u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{264, 3224580915u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{265, 3213675725u, 1115684864u, 2143289344u, EDOM, LOG_TOLERANCE, 0},
+{266, 1058642330u, 3204629879u, 3204629879u, 0, LOG_TOLERANCE, 0},
+{267, 1075000115u, 1062549896u, 1062549896u, 0, LOG_TOLERANCE, 0},
+{268, 1082130432u, 1068593688u, 1068593688u, 0, LOG_TOLERANCE, 0},
+{269, 1085695590u, 1071564696u, 1071564696u, 0, LOG_TOLERANCE, 0},
+{270, 1089260749u, 1073748032u, 1073748032u, 0, LOG_TOLERANCE, 0},
+{271, 1091672474u, 1074615390u, 1074615390u, 0, LOG_TOLERANCE, 0},
+{272, 1093455053u, 1075333756u, 1075333756u, 0, LOG_TOLERANCE, 0},
+{273, 1095237632u, 1075946890u, 1075946890u, 0, LOG_TOLERANCE, 0},
+{274, 1097020211u, 1076481719u, 1076481719u, 0, LOG_TOLERANCE, 0},
+{275, 1098802790u, 1076955999u, 1076955999u, 0, LOG_TOLERANCE, 0},
+{276, 1099746509u, 1077382056u, 1077382056u, 0, LOG_TOLERANCE, 0},
+{277, 1100637798u, 1077768796u, 1077768796u, 0, LOG_TOLERANCE, 0},
+{278, 1101529088u, 1078122869u, 1078122869u, 0, LOG_TOLERANCE, 0},
+{279, 1102420378u, 1078449364u, 1078449364u, 0, LOG_TOLERANCE, 0},
+{280, 1103311667u, 1078752269u, 1078752269u, 0, LOG_TOLERANCE, 0},
+{281, 1104202957u, 1079034764u, 1079034764u, 0, LOG_TOLERANCE, 0},
+{282, 1105094246u, 1079299428u, 1079299428u, 0, LOG_TOLERANCE, 0},
+{283, 1105985536u, 1079548378u, 1079548378u, 0, LOG_TOLERANCE, 0},
+{284, 1107800421u, 1080134364u, 1080134364u, 0, LOG_TOLERANCE, 0},
+{285, 1221216477u, 1095693023u, 1095693023u, 0, LOG_TOLERANCE, 0},
+{286, 1224242132u, 1095908585u, 1095908585u, 0, LOG_TOLERANCE, 0},
+{287, 1073543469u, 1060005543u, 1060005543u, 0, LOG_TOLERANCE, 0},
+{288, 1198712763u, 1093704455u, 1093704455u, 0, LOG_TOLERANCE, 0},
+{289, 1312607135u, 1101261650u, 1101261650u, 0, LOG_TOLERANCE, 0},
+{290, 1166191415u, 1090873880u, 1090873880u, 0, LOG_TOLERANCE, 0},
+{291, 1234419246u, 1096817193u, 1096817193u, 0, LOG_TOLERANCE, 0},
+{292, 1302107128u, 1100800142u, 1100800142u, 0, LOG_TOLERANCE, 0},
+{293, 1336836355u, 1102310606u, 1102310606u, 0, LOG_TOLERANCE, 0},
+{294, 1167223673u, 1090993221u, 1090993221u, 0, LOG_TOLERANCE, 0},
+{295, 1324169524u, 1101744774u, 1101744774u, 0, LOG_TOLERANCE, 0},
+{296, 1083983848u, 1070268261u, 1070268261u, 0, LOG_TOLERANCE, 0},
+{297, 1341514497u, 1102490397u, 1102490397u, 0, LOG_TOLERANCE, 0},
+{298, 1272351391u, 1099511630u, 1099511630u, 0, LOG_TOLERANCE, 0},
+{299, 1172241344u, 1091434272u, 1091434272u, 0, LOG_TOLERANCE, 0},
+{300, 1104057898u, 1078990065u, 1078990065u, 0, LOG_TOLERANCE, 0},
+{301, 1224379831u, 1095917415u, 1095917415u, 0, LOG_TOLERANCE, 0},
+{302, 1306460502u, 1100985551u, 1100985551u, 0, LOG_TOLERANCE, 0},
+{303, 1197542187u, 1093624368u, 1093624368u, 0, LOG_TOLERANCE, 0},
+{304, 1184239996u, 1092472664u, 1092472664u, 0, LOG_TOLERANCE, 0},
+{305, 1252490238u, 1098402337u, 1098402337u, 0, LOG_TOLERANCE, 0},
+{306, 1139715822u, 1086677655u, 1086677655u, 0, LOG_TOLERANCE, 0},
+{307, 1143233714u, 1087348914u, 1087348914u, 0, LOG_TOLERANCE, 0},
+{308, 1139941253u, 1086707662u, 1086707662u, 0, LOG_TOLERANCE, 0},
+{309, 1092814839u, 1075089673u, 1075089673u, 0, LOG_TOLERANCE, 0},
+{310, 1288902137u, 1100229934u, 1100229934u, 0, LOG_TOLERANCE, 0},
+{311, 1333134799u, 1102127278u, 1102127278u, 0, LOG_TOLERANCE, 0},
+{312, 1187847971u, 1092800357u, 1092800357u, 0, LOG_TOLERANCE, 0},
+{313, 1181870825u, 1092246548u, 1092246548u, 0, LOG_TOLERANCE, 0},
+{314, 1309289088u, 1101097963u, 1101097963u, 0, LOG_TOLERANCE, 0},
+{315, 1297170011u, 1100588747u, 1100588747u, 0, LOG_TOLERANCE, 0},
+{316, 1258101754u, 1098835327u, 1098835327u, 0, LOG_TOLERANCE, 0},
+{317, 1106778573u, 1079758106u, 1079758106u, 0, LOG_TOLERANCE, 0},
+{318, 1140567947u, 1086788895u, 1086788895u, 0, LOG_TOLERANCE, 0},
+{319, 1238569473u, 1097191239u, 1097191239u, 0, LOG_TOLERANCE, 0},
+{320, 1261071232u, 1099027511u, 1099027511u, 0, LOG_TOLERANCE, 0},
+{321, 1175011025u, 1091652187u, 1091652187u, 0, LOG_TOLERANCE, 0},
+{322, 1082692850u, 1069138055u, 1069138055u, 0, LOG_TOLERANCE, 0},
+{323, 1255864908u, 1098683439u, 1098683439u, 0, LOG_TOLERANCE, 0},
+{324, 1136411063u, 1086179935u, 1086179935u, 0, LOG_TOLERANCE, 0},
+{325, 1091747974u, 1074648446u, 1074648446u, 0, LOG_TOLERANCE, 0},
+{326, 1193132132u, 1093251837u, 1093251837u, 0, LOG_TOLERANCE, 0},
+{327, 1270480664u, 1099436775u, 1099436775u, 0, LOG_TOLERANCE, 0},
+{328, 1148867223u, 1088231141u, 1088231141u, 0, LOG_TOLERANCE, 0},
+{329, 1152956913u, 1089047504u, 1089047504u, 0, LOG_TOLERANCE, 0},
+{330, 1109627625u, 1080918154u, 1080918154u, 0, LOG_TOLERANCE, 0},
+{331, 1307091856u, 1101007725u, 1101007725u, 0, LOG_TOLERANCE, 0},
+{332, 1077234132u, 1065698877u, 1065698877u, 0, LOG_TOLERANCE, 0},
+{333, 1142167709u, 1087130370u, 1087130370u, 0, LOG_TOLERANCE, 0},
+{334, 1278749186u, 1099794993u, 1099794993u, 0, LOG_TOLERANCE, 0},
+{335, 1221083131u, 1095682422u, 1095682422u, 0, LOG_TOLERANCE, 0},
+{336, 1138741813u, 1086542828u, 1086542828u, 0, LOG_TOLERANCE, 0},
+{337, 1142981585u, 1087299243u, 1087299243u, 0, LOG_TOLERANCE, 0},
+{338, 1199682314u, 1093773342u, 1093773342u, 0, LOG_TOLERANCE, 0},
+{339, 1326472382u, 1101847781u, 1101847781u, 0, LOG_TOLERANCE, 0},
+{340, 1201614701u, 1093988142u, 1093988142u, 0, LOG_TOLERANCE, 0},
+{341, 1198006188u, 1093656849u, 1093656849u, 0, LOG_TOLERANCE, 0},
+{342, 1108485380u, 1080445589u, 1080445589u, 0, LOG_TOLERANCE, 0},
+{343, 1233784744u, 1096746124u, 1096746124u, 0, LOG_TOLERANCE, 0},
+{344, 1087189715u, 1072552672u, 1072552672u, 0, LOG_TOLERANCE, 0},
+{345, 1065468637u, 1012917463u, 1012917463u, 0, LOG_TOLERANCE, 0},
+{346, 1318704920u, 1101517711u, 1101517711u, 0, LOG_TOLERANCE, 0},
+{347, 1171831868u, 1091404471u, 1091404471u, 0, LOG_TOLERANCE, 0},
+{348, 1315030230u, 1101355418u, 1101355418u, 0, LOG_TOLERANCE, 0},
+{349, 1134593658u, 1085845744u, 1085845744u, 0, LOG_TOLERANCE, 0},
+{350, 1086198791u, 1071910589u, 1071910589u, 0, LOG_TOLERANCE, 0},
+{351, 1255152035u, 1098630014u, 1098630014u, 0, LOG_TOLERANCE, 0},
+{352, 1135271264u, 1085976650u, 1085976650u, 0, LOG_TOLERANCE, 0},
+{353, 1094190727u, 1075597743u, 1075597743u, 0, LOG_TOLERANCE, 0},
+{354, 1294665325u, 1100483004u, 1100483004u, 0, LOG_TOLERANCE, 0},
+{355, 1082514416u, 1068969143u, 1068969143u, 0, LOG_TOLERANCE, 0},
+{356, 1291650374u, 1100324939u, 1100324939u, 0, LOG_TOLERANCE, 0},
+{357, 1325668223u, 1101801209u, 1101801209u, 0, LOG_TOLERANCE, 0},
+{358, 1092037607u, 1074772894u, 1074772894u, 0, LOG_TOLERANCE, 0},
+{359, 1168794760u, 1091152214u, 1091152214u, 0, LOG_TOLERANCE, 0},
+{360, 1147953120u, 1088110905u, 1088110905u, 0, LOG_TOLERANCE, 0},
+{361, 1151984049u, 1088871818u, 1088871818u, 0, LOG_TOLERANCE, 0},
+{362, 1129287043u, 1084930939u, 1084930939u, 0, LOG_TOLERANCE, 0},
+{363, 1243664530u, 1097632908u, 1097632908u, 0, LOG_TOLERANCE, 0},
+{364, 1115471979u, 1082436853u, 1082436853u, 0, LOG_TOLERANCE, 0},
+{365, 1203608440u, 1094171523u, 1094171523u, 0, LOG_TOLERANCE, 0},
+{366, 1276995896u, 1099712697u, 1099712697u, 0, LOG_TOLERANCE, 0},
+{367, 1093710327u, 1075427252u, 1075427252u, 0, LOG_TOLERANCE, 0},
+{368, 1110545760u, 1081262826u, 1081262826u, 0, LOG_TOLERANCE, 0},
+{369, 1214492942u, 1095090269u, 1095090269u, 0, LOG_TOLERANCE, 0},
+{370, 1304154705u, 1100895530u, 1100895530u, 0, LOG_TOLERANCE, 0},
+{371, 1116959962u, 1082760387u, 1082760387u, 0, LOG_TOLERANCE, 0},
+{372, 1227066979u, 1096196998u, 1096196998u, 0, LOG_TOLERANCE, 0},
+{373, 1268194719u, 1099327890u, 1099327890u, 0, LOG_TOLERANCE, 0},
+{374, 1133420220u, 1085597719u, 1085597719u, 0, LOG_TOLERANCE, 0},
+{375, 1161858787u, 1090553629u, 1090553629u, 0, LOG_TOLERANCE, 0},
+{376, 1148513315u, 1088185404u, 1088185404u, 0, LOG_TOLERANCE, 0},
+{377, 1270887389u, 1099453983u, 1099453983u, 0, LOG_TOLERANCE, 0},
+{378, 1177709533u, 1091927310u, 1091927310u, 0, LOG_TOLERANCE, 0},
+{379, 1189120494u, 1092895196u, 1092895196u, 0, LOG_TOLERANCE, 0},
+{380, 1323529208u, 1101722723u, 1101722723u, 0, LOG_TOLERANCE, 0},
+{381, 1318284740u, 1101495392u, 1101495392u, 0, LOG_TOLERANCE, 0},
+{382, 1278616251u, 1099789186u, 1099789186u, 0, LOG_TOLERANCE, 0},
+{383, 1077373465u, 1065796682u, 1065796682u, 0, LOG_TOLERANCE, 0},
+{384, 1065798296u, 1028899151u, 1028899151u, 0, LOG_TOLERANCE, 0},
+{385, 1181505796u, 1092222124u, 1092222124u, 0, LOG_TOLERANCE, 0},
+{386, 1210335378u, 1094747816u, 1094747816u, 0, LOG_TOLERANCE, 0},
+{387, 1273397670u, 1099549262u, 1099549262u, 0, LOG_TOLERANCE, 0},
+{388, 1277348132u, 1099730300u, 1099730300u, 0, LOG_TOLERANCE, 0},
+{389, 1257596246u, 1098802875u, 1098802875u, 0, LOG_TOLERANCE, 0},
+{390, 1147268859u, 1088016163u, 1088016163u, 0, LOG_TOLERANCE, 0},
+{391, 1277365077u, 1099731132u, 1099731132u, 0, LOG_TOLERANCE, 0},
+{392, 1090870906u, 1074247369u, 1074247369u, 0, LOG_TOLERANCE, 0},
+{393, 1227582289u, 1096246234u, 1096246234u, 0, LOG_TOLERANCE, 0},
+{394, 1272325814u, 1099510676u, 1099510676u, 0, LOG_TOLERANCE, 0},
+{395, 1212024623u, 1094900665u, 1094900665u, 0, LOG_TOLERANCE, 0},
+{396, 1137854355u, 1086411946u, 1086411946u, 0, LOG_TOLERANCE, 0},
+{397, 1293289410u, 1100414337u, 1100414337u, 0, LOG_TOLERANCE, 0},
+{398, 1303733188u, 1100877261u, 1100877261u, 0, LOG_TOLERANCE, 0},
+{399, 1289579346u, 1100254992u, 1100254992u, 0, LOG_TOLERANCE, 0},
+{400, 1131196082u, 1085206365u, 1085206365u, 0, LOG_TOLERANCE, 0},
+{401, 1110614030u, 1081287358u, 1081287358u, 0, LOG_TOLERANCE, 0},
+{402, 1313431700u, 1101295475u, 1101295475u, 0, LOG_TOLERANCE, 0},
+{403, 1155551824u, 1089454781u, 1089454781u, 0, LOG_TOLERANCE, 0},
+{404, 1248682573u, 1098041251u, 1098041251u, 0, LOG_TOLERANCE, 0},
+{405, 1311450615u, 1101210199u, 1101210199u, 0, LOG_TOLERANCE, 0},
+{406, 1065761827u, 1027788653u, 1027788653u, 0, LOG_TOLERANCE, 0},
+{407, 1199816046u, 1093789711u, 1093789711u, 0, LOG_TOLERANCE, 0},
+{408, 1186295367u, 1092671666u, 1092671666u, 0, LOG_TOLERANCE, 0},
+{409, 1080781593u, 1067890611u, 1067890611u, 0, LOG_TOLERANCE, 0},
+{410, 1087842942u, 1072950559u, 1072950559u, 0, LOG_TOLERANCE, 0},
+{411, 1079506760u, 1067167149u, 1067167149u, 0, LOG_TOLERANCE, 0},
+{412, 1283624229u, 1099978015u, 1099978015u, 0, LOG_TOLERANCE, 0},
+{413, 1193633657u, 1093301509u, 1093301509u, 0, LOG_TOLERANCE, 0},
+{414, 1270734970u, 1099447601u, 1099447601u, 0, LOG_TOLERANCE, 0},
+{415, 1307332419u, 1101015933u, 1101015933u, 0, LOG_TOLERANCE, 0},
+{416, 1106502045u, 1079686160u, 1079686160u, 0, LOG_TOLERANCE, 0},
+{417, 1157598381u, 1089728115u, 1089728115u, 0, LOG_TOLERANCE, 0},
+{418, 1187750865u, 1092792755u, 1092792755u, 0, LOG_TOLERANCE, 0},
+{419, 1279489061u, 1099826186u, 1099826186u, 0, LOG_TOLERANCE, 0},
+{420, 1233171235u, 1096672499u, 1096672499u, 0, LOG_TOLERANCE, 0},
+{421, 1148920078u, 1088237887u, 1088237887u, 0, LOG_TOLERANCE, 0},
+{422, 1109198803u, 1080746924u, 1080746924u, 0, LOG_TOLERANCE, 0},
+{423, 1072465835u, 1058877958u, 1058877958u, 0, LOG_TOLERANCE, 0},
+{424, 1213665826u, 1095030475u, 1095030475u, 0, LOG_TOLERANCE, 0},
+{425, 1207502108u, 1094457342u, 1094457342u, 0, LOG_TOLERANCE, 0},
+{426, 1234530539u, 1096829177u, 1096829177u, 0, LOG_TOLERANCE, 0},
+{427, 1158845204u, 1090015981u, 1090015981u, 0, LOG_TOLERANCE, 0},
+{428, 1291910469u, 1100335113u, 1100335113u, 0, LOG_TOLERANCE, 0},
+{429, 1131927531u, 1085302998u, 1085302998u, 0, LOG_TOLERANCE, 0},
+{430, 1302395743u, 1100814684u, 1100814684u, 0, LOG_TOLERANCE, 0},
+{431, 1125551064u, 1084257511u, 1084257511u, 0, LOG_TOLERANCE, 0},
+{432, 1279812724u, 1099839269u, 1099839269u, 0, LOG_TOLERANCE, 0},
+{433, 1198917460u, 1093717853u, 1093717853u, 0, LOG_TOLERANCE, 0},
+{434, 1091906532u, 1074717032u, 1074717032u, 0, LOG_TOLERANCE, 0},
+{435, 1246074130u, 1097848812u, 1097848812u, 0, LOG_TOLERANCE, 0},
+{436, 1276853215u, 1099705395u, 1099705395u, 0, LOG_TOLERANCE, 0},
+{437, 1315294792u, 1101364709u, 1101364709u, 0, LOG_TOLERANCE, 0},
+{438, 1212686469u, 1094954961u, 1094954961u, 0, LOG_TOLERANCE, 0},
+{439, 1076761780u, 1065358559u, 1065358559u, 0, LOG_TOLERANCE, 0},
+{440, 1120124467u, 1083354446u, 1083354446u, 0, LOG_TOLERANCE, 0},
+{441, 1268744779u, 1099356230u, 1099356230u, 0, LOG_TOLERANCE, 0},
+{442, 1165195428u, 1090799626u, 1090799626u, 0, LOG_TOLERANCE, 0},
+{443, 1100306391u, 1077629126u, 1077629126u, 0, LOG_TOLERANCE, 0},
+{444, 1067761000u, 1048654430u, 1048654430u, 0, LOG_TOLERANCE, 0},
+{445, 1212717473u, 1094957437u, 1094957437u, 0, LOG_TOLERANCE, 0},
+{446, 1128489361u, 1084804200u, 1084804200u, 0, LOG_TOLERANCE, 0},
+{447, 1243678660u, 1097634313u, 1097634313u, 0, LOG_TOLERANCE, 0},
+{448, 1089986803u, 1073939811u, 1073939811u, 0, LOG_TOLERANCE, 0},
+{449, 1296314700u, 1100554982u, 1100554982u, 0, LOG_TOLERANCE, 0},
+{450, 1251462432u, 1098299243u, 1098299243u, 0, LOG_TOLERANCE, 0},
+{451, 1337753254u, 1102351040u, 1102351040u, 0, LOG_TOLERANCE, 0},
+{452, 1114685890u, 1082334890u, 1082334890u, 0, LOG_TOLERANCE, 0},
+{453, 1295475718u, 1100519604u, 1100519604u, 0, LOG_TOLERANCE, 0},
+{454, 1256888357u, 1098755673u, 1098755673u, 0, LOG_TOLERANCE, 0},
+{455, 1125800069u, 1084309783u, 1084309783u, 0, LOG_TOLERANCE, 0},
+{456, 1189421739u, 1092916445u, 1092916445u, 0, LOG_TOLERANCE, 0},
+{457, 1164046161u, 1090721242u, 1090721242u, 0, LOG_TOLERANCE, 0},
+{458, 1292596266u, 1100376009u, 1100376009u, 0, LOG_TOLERANCE, 0},
+{459, 1322264731u, 1101676248u, 1101676248u, 0, LOG_TOLERANCE, 0},
+{460, 1314644642u, 1101341573u, 1101341573u, 0, LOG_TOLERANCE, 0},
+{461, 1252329525u, 1098386870u, 1098386870u, 0, LOG_TOLERANCE, 0},
+{462, 1341639087u, 1102494435u, 1102494435u, 0, LOG_TOLERANCE, 0},
+{463, 1181604787u, 1092228804u, 1092228804u, 0, LOG_TOLERANCE, 0},
+{464, 1314588083u, 1101339511u, 1101339511u, 0, LOG_TOLERANCE, 0},
+{465, 1253466032u, 1098491642u, 1098491642u, 0, LOG_TOLERANCE, 0},
+{466, 1218098153u, 1095411826u, 1095411826u, 0, LOG_TOLERANCE, 0},
+{467, 1110424755u, 1081218988u, 1081218988u, 0, LOG_TOLERANCE, 0},
+{468, 1139120919u, 1086596341u, 1086596341u, 0, LOG_TOLERANCE, 0},
+{469, 1220524226u, 1095636787u, 1095636787u, 0, LOG_TOLERANCE, 0},
+{470, 1234908052u, 1096868836u, 1096868836u, 0, LOG_TOLERANCE, 0},
+{471, 1156767533u, 1089621407u, 1089621407u, 0, LOG_TOLERANCE, 0},
+{472, 1332389915u, 1102102479u, 1102102479u, 0, LOG_TOLERANCE, 0},
+{473, 1276780469u, 1099701633u, 1099701633u, 0, LOG_TOLERANCE, 0},
+{474, 1080882239u, 1067945156u, 1067945156u, 0, LOG_TOLERANCE, 0},
+{475, 1212129651u, 1094909471u, 1094909471u, 0, LOG_TOLERANCE, 0},
+{476, 1311706596u, 1101222030u, 1101222030u, 0, LOG_TOLERANCE, 0},
+{477, 1337315179u, 1102332110u, 1102332110u, 0, LOG_TOLERANCE, 0},
+{478, 1131358407u, 1085228198u, 1085228198u, 0, LOG_TOLERANCE, 0},
+{479, 1156517523u, 1089588205u, 1089588205u, 0, LOG_TOLERANCE, 0},
+{480, 1190015561u, 1092957111u, 1092957111u, 0, LOG_TOLERANCE, 0},
+{481, 1320945382u, 1101622920u, 1101622920u, 0, LOG_TOLERANCE, 0},
+{482, 1106032152u, 1079561000u, 1079561000u, 0, LOG_TOLERANCE, 0},
+{483, 1277806832u, 1099752371u, 1099752371u, 0, LOG_TOLERANCE, 0},
+{484, 1073495847u, 1059957282u, 1059957282u, 0, LOG_TOLERANCE, 0},
+{485, 1311016004u, 1101189480u, 1101189480u, 0, LOG_TOLERANCE, 0},
+{486, 1128016396u, 1084725270u, 1084725270u, 0, LOG_TOLERANCE, 0},
+{487, 1206054701u, 1094359958u, 1094359958u, 0, LOG_TOLERANCE, 0},
+{488, 1213609983u, 1095026312u, 1095026312u, 0, LOG_TOLERANCE, 0},
+{489, 1246902946u, 1097913869u, 1097913869u, 0, LOG_TOLERANCE, 0},
+{490, 1214599180u, 1095097708u, 1095097708u, 0, LOG_TOLERANCE, 0},
+{491, 1237504879u, 1097107264u, 1097107264u, 0, LOG_TOLERANCE, 0},
+{492, 1317696241u, 1101462444u, 1101462444u, 0, LOG_TOLERANCE, 0},
+{493, 1087912276u, 1072991704u, 1072991704u, 0, LOG_TOLERANCE, 0},
+{494, 1194393976u, 1093372592u, 1093372592u, 0, LOG_TOLERANCE, 0},
+{495, 1228636133u, 1096340255u, 1096340255u, 0, LOG_TOLERANCE, 0},
+{496, 1207246237u, 1094440772u, 1094440772u, 0, LOG_TOLERANCE, 0},
+{497, 1165476654u, 1090817946u, 1090817946u, 0, LOG_TOLERANCE, 0},
+{498, 1215278023u, 1095144035u, 1095144035u, 0, LOG_TOLERANCE, 0},
+{499, 1149651309u, 1088378728u, 1088378728u, 0, LOG_TOLERANCE, 0},
+{500, 1111943722u, 1081738608u, 1081738608u, 0, LOG_TOLERANCE, 0},
+{501, 1189849849u, 1092945921u, 1092945921u, 0, LOG_TOLERANCE, 0},
+{502, 1249758327u, 1098111361u, 1098111361u, 0, LOG_TOLERANCE, 0},
+{503, 1168098747u, 1091084732u, 1091084732u, 0, LOG_TOLERANCE, 0},
+{504, 1153525376u, 1089143736u, 1089143736u, 0, LOG_TOLERANCE, 0},
+{505, 1085605579u, 1071501292u, 1071501292u, 0, LOG_TOLERANCE, 0},
+{506, 1070761636u, 1056883359u, 1056883359u, 0, LOG_TOLERANCE, 0},
+{507, 1068498242u, 1050870884u, 1050870884u, 0, LOG_TOLERANCE, 0},
+{508, 1266687209u, 1099241312u, 1099241312u, 0, LOG_TOLERANCE, 0},
+{509, 1340476127u, 1102455475u, 1102455475u, 0, LOG_TOLERANCE, 0},
+{510, 1197582051u, 1093627199u, 1093627199u, 0, LOG_TOLERANCE, 0},
+{511, 1262852441u, 1099105092u, 1099105092u, 0, LOG_TOLERANCE, 0},
+{512, 1141063391u, 1086877052u, 1086877052u, 0, LOG_TOLERANCE, 0},
+{513, 1206196143u, 1094369884u, 1094369884u, 0, LOG_TOLERANCE, 0},
+{514, 1219643887u, 1095560618u, 1095560618u, 0, LOG_TOLERANCE, 0},
+{515, 1134469222u, 1085820790u, 1085820790u, 0, LOG_TOLERANCE, 0},
+{516, 1237868497u, 1097136708u, 1097136708u, 0, LOG_TOLERANCE, 0},
+{517, 1153753924u, 1089181215u, 1089181215u, 0, LOG_TOLERANCE, 0},
+{518, 1120261759u, 1083376771u, 1083376771u, 0, LOG_TOLERANCE, 0},
+{519, 1078844712u, 1066765289u, 1066765289u, 0, LOG_TOLERANCE, 0},
+{520, 1202112338u, 1094037004u, 1094037004u, 0, LOG_TOLERANCE, 0},
+{521, 1087750238u, 1072895228u, 1072895228u, 0, LOG_TOLERANCE, 0},
+{522, 1066116543u, 1035099299u, 1035099299u, 0, LOG_TOLERANCE, 0},
+{523, 1186234578u, 1092666292u, 1092666292u, 0, LOG_TOLERANCE, 0},
+{524, 1331680743u, 1102077726u, 1102077726u, 0, LOG_TOLERANCE, 0},
+{525, 1201949077u, 1094021223u, 1094021223u, 0, LOG_TOLERANCE, 0},
+{526, 1081311485u, 1068173883u, 1068173883u, 0, LOG_TOLERANCE, 0},
+{527, 1149300655u, 1088293458u, 1088293458u, 0, LOG_TOLERANCE, 0},
+{528, 1240669941u, 1097339474u, 1097339474u, 0, LOG_TOLERANCE, 0},
+{529, 1133410485u, 1085595534u, 1085595534u, 0, LOG_TOLERANCE, 0},
+{530, 1222486939u, 1095788984u, 1095788984u, 0, LOG_TOLERANCE, 0},
+{531, 1270451568u, 1099435522u, 1099435522u, 0, LOG_TOLERANCE, 0},
+{532, 1280215674u, 1099855114u, 1099855114u, 0, LOG_TOLERANCE, 0},
+{533, 1171873518u, 1091407541u, 1091407541u, 0, LOG_TOLERANCE, 0},
+{534, 1150774452u, 1088630616u, 1088630616u, 0, LOG_TOLERANCE, 0},
+{535, 1267725176u, 1099302424u, 1099302424u, 0, LOG_TOLERANCE, 0},
+{536, 1209845200u, 1094698946u, 1094698946u, 0, LOG_TOLERANCE, 0},
+{537, 1120384488u, 1083396529u, 1083396529u, 0, LOG_TOLERANCE, 0},
+{538, 1171564509u, 1091384546u, 1091384546u, 0, LOG_TOLERANCE, 0},
+{539, 1144755661u, 1087626076u, 1087626076u, 0, LOG_TOLERANCE, 0},
+{540, 1153978024u, 1089217325u, 1089217325u, 0, LOG_TOLERANCE, 0},
+{541, 1217042030u, 1095296480u, 1095296480u, 0, LOG_TOLERANCE, 0},
+{542, 1319638151u, 1101564124u, 1101564124u, 0, LOG_TOLERANCE, 0},
+{543, 1151257041u, 1088730198u, 1088730198u, 0, LOG_TOLERANCE, 0},
+{544, 1258369714u, 1098857003u, 1098857003u, 0, LOG_TOLERANCE, 0},
+{545, 1216602683u, 1095244489u, 1095244489u, 0, LOG_TOLERANCE, 0},
+{546, 1149782091u, 1088409663u, 1088409663u, 0, LOG_TOLERANCE, 0},
+{547, 1071940738u, 1058299789u, 1058299789u, 0, LOG_TOLERANCE, 0},
+{548, 1314801987u, 1101347267u, 1101347267u, 0, LOG_TOLERANCE, 0},
+{549, 1209694157u, 1094683416u, 1094683416u, 0, LOG_TOLERANCE, 0},
+{550, 1153863660u, 1089198975u, 1089198975u, 0, LOG_TOLERANCE, 0},
+{551, 1249365132u, 1098086276u, 1098086276u, 0, LOG_TOLERANCE, 0},
+{552, 1074612637u, 1061862115u, 1061862115u, 0, LOG_TOLERANCE, 0},
+{553, 1297708818u, 1100608953u, 1100608953u, 0, LOG_TOLERANCE, 0},
+{554, 1198049074u, 1093659801u, 1093659801u, 0, LOG_TOLERANCE, 0},
+{555, 1271269588u, 1099469655u, 1099469655u, 0, LOG_TOLERANCE, 0},
+{556, 1277417964u, 1099733721u, 1099733721u, 0, LOG_TOLERANCE, 0},
+{557, 1173439580u, 1091516907u, 1091516907u, 0, LOG_TOLERANCE, 0},
+{558, 1337400405u, 1102335847u, 1102335847u, 0, LOG_TOLERANCE, 0},
+{559, 1252864992u, 1098437540u, 1098437540u, 0, LOG_TOLERANCE, 0},
+{560, 1250249095u, 1098162859u, 1098162859u, 0, LOG_TOLERANCE, 0},
+{561, 1136927585u, 1086265946u, 1086265946u, 0, LOG_TOLERANCE, 0},
+{562, 1215968622u, 1095189153u, 1095189153u, 0, LOG_TOLERANCE, 0},
+{563, 1215264594u, 1095143138u, 1095143138u, 0, LOG_TOLERANCE, 0},
+{564, 1252237719u, 1098377931u, 1098377931u, 0, LOG_TOLERANCE, 0},
+{565, 1180411946u, 1092145329u, 1092145329u, 0, LOG_TOLERANCE, 0},
+{566, 1248677856u, 1098040933u, 1098040933u, 0, LOG_TOLERANCE, 0},
+{567, 1099710167u, 1077365504u, 1077365504u, 0, LOG_TOLERANCE, 0},
+{568, 1157186482u, 1089675892u, 1089675892u, 0, LOG_TOLERANCE, 0},
+{569, 1282110851u, 1099923816u, 1099923816u, 0, LOG_TOLERANCE, 0},
+{570, 1329524465u, 1101994371u, 1101994371u, 0, LOG_TOLERANCE, 0},
+{571, 1144643646u, 1087606880u, 1087606880u, 0, LOG_TOLERANCE, 0},
+{572, 1123357102u, 1083825755u, 1083825755u, 0, LOG_TOLERANCE, 0},
+{573, 1106837025u, 1079773158u, 1079773158u, 0, LOG_TOLERANCE, 0},
+{574, 1253017688u, 1098451551u, 1098451551u, 0, LOG_TOLERANCE, 0},
+{575, 1108543194u, 1080470831u, 1080470831u, 0, LOG_TOLERANCE, 0},
+{576, 1160162706u, 1090285527u, 1090285527u, 0, LOG_TOLERANCE, 0},
+{577, 1158231377u, 1089877497u, 1089877497u, 0, LOG_TOLERANCE, 0},
+{578, 1266928623u, 1099256175u, 1099256175u, 0, LOG_TOLERANCE, 0},
+{579, 1290596379u, 1100290507u, 1100290507u, 0, LOG_TOLERANCE, 0},
+{580, 1197091103u, 1093591797u, 1093591797u, 0, LOG_TOLERANCE, 0},
+{581, 1152416724u, 1088951776u, 1088951776u, 0, LOG_TOLERANCE, 0},
+{582, 1218239308u, 1095426324u, 1095426324u, 0, LOG_TOLERANCE, 0},
+{583, 1115826919u, 1082498850u, 1082498850u, 0, LOG_TOLERANCE, 0},
+{584, 1142780964u, 1087258861u, 1087258861u, 0, LOG_TOLERANCE, 0},
+{585, 1074622936u, 1061880764u, 1061880764u, 0, LOG_TOLERANCE, 0},
+{586, 1278946388u, 1099803490u, 1099803490u, 0, LOG_TOLERANCE, 0},
+{587, 1098530298u, 1076886881u, 1076886881u, 0, LOG_TOLERANCE, 0},
+{588, 1085242388u, 1071240474u, 1071240474u, 0, LOG_TOLERANCE, 0},
+{589, 1297190916u, 1100589546u, 1100589546u, 0, LOG_TOLERANCE, 0},
+{590, 1277649137u, 1099744888u, 1099744888u, 0, LOG_TOLERANCE, 0},
+{591, 1096548368u, 1076346654u, 1076346654u, 0, LOG_TOLERANCE, 0},
+{592, 1096155623u, 1076230816u, 1076230816u, 0, LOG_TOLERANCE, 0},
+{593, 1091245957u, 1074423591u, 1074423591u, 0, LOG_TOLERANCE, 0},
+{594, 1169713169u, 1091235090u, 1091235090u, 0, LOG_TOLERANCE, 0},
+{595, 1227264862u, 1096216180u, 1096216180u, 0, LOG_TOLERANCE, 0},
+{596, 1198151302u, 1093666804u, 1093666804u, 0, LOG_TOLERANCE, 0},
+{597, 1249433635u, 1098090690u, 1098090690u, 0, LOG_TOLERANCE, 0},
+{598, 1169549089u, 1091220756u, 1091220756u, 0, LOG_TOLERANCE, 0},
+{599, 1200051436u, 1093817916u, 1093817916u, 0, LOG_TOLERANCE, 0},
+{600, 1306520561u, 1100987701u, 1100987701u, 0, LOG_TOLERANCE, 0},
+{601, 1314936356u, 1101352081u, 1101352081u, 0, LOG_TOLERANCE, 0},
+{602, 1327568571u, 1101905258u, 1101905258u, 0, LOG_TOLERANCE, 0},
+{603, 1245744060u, 1097821737u, 1097821737u, 0, LOG_TOLERANCE, 0},
+{604, 1201521756u, 1093978758u, 1093978758u, 0, LOG_TOLERANCE, 0},
+{605, 1262863321u, 1099105532u, 1099105532u, 0, LOG_TOLERANCE, 0},
+{606, 1240170043u, 1097306048u, 1097306048u, 0, LOG_TOLERANCE, 0},
+{607, 1338680611u, 1102388991u, 1102388991u, 0, LOG_TOLERANCE, 0},
+{608, 1112891928u, 1082033104u, 1082033104u, 0, LOG_TOLERANCE, 0},
+{609, 1190105283u, 1092963121u, 1092963121u, 0, LOG_TOLERANCE, 0},
+{610, 1263047389u, 1099112926u, 1099112926u, 0, LOG_TOLERANCE, 0},
+{611, 1066141167u, 1035459935u, 1035459935u, 0, LOG_TOLERANCE, 0},
+{612, 1120888322u, 1083475744u, 1083475744u, 0, LOG_TOLERANCE, 0},
+{613, 1315217243u, 1101362003u, 1101362003u, 0, LOG_TOLERANCE, 0},
+{614, 1168623062u, 1091135966u, 1091135966u, 0, LOG_TOLERANCE, 0},
+{615, 1311186097u, 1101197687u, 1101197687u, 0, LOG_TOLERANCE, 0},
+{616, 1180032668u, 1092117331u, 1092117331u, 0, LOG_TOLERANCE, 0},
+{617, 1134528351u, 1085832685u, 1085832685u, 0, LOG_TOLERANCE, 0},
+{618, 1266869190u, 1099252555u, 1099252555u, 0, LOG_TOLERANCE, 0},
+{619, 1133689539u, 1085657293u, 1085657293u, 0, LOG_TOLERANCE, 0},
+{620, 1308204830u, 1101044665u, 1101044665u, 0, LOG_TOLERANCE, 0},
+{621, 1137634874u, 1086378277u, 1086378277u, 0, LOG_TOLERANCE, 0},
+{622, 1268019014u, 1099318505u, 1099318505u, 0, LOG_TOLERANCE, 0},
+{623, 1066157309u, 1035695818u, 1035695818u, 0, LOG_TOLERANCE, 0},
+{624, 1288870027u, 1100228716u, 1100228716u, 0, LOG_TOLERANCE, 0},
+{625, 1125177888u, 1084176650u, 1084176650u, 0, LOG_TOLERANCE, 0},
+{626, 1170245333u, 1091280275u, 1091280275u, 0, LOG_TOLERANCE, 0},
+{627, 1219052056u, 1095506114u, 1095506114u, 0, LOG_TOLERANCE, 0},
+{628, 1171499971u, 1091379679u, 1091379679u, 0, LOG_TOLERANCE, 0},
+{629, 1224634973u, 1095933583u, 1095933583u, 0, LOG_TOLERANCE, 0},
+{630, 1299683827u, 1100676996u, 1100676996u, 0, LOG_TOLERANCE, 0},
+{631, 1109740374u, 1080962038u, 1080962038u, 0, LOG_TOLERANCE, 0},
+{632, 1229268598u, 1096392882u, 1096392882u, 0, LOG_TOLERANCE, 0},
+{633, 1086717248u, 1072252652u, 1072252652u, 0, LOG_TOLERANCE, 0},
+{634, 1287400959u, 1100169711u, 1100169711u, 0, LOG_TOLERANCE, 0},
+{635, 1317471958u, 1101449322u, 1101449322u, 0, LOG_TOLERANCE, 0},
+{636, 1242829722u, 1097546376u, 1097546376u, 0, LOG_TOLERANCE, 0},
+{637, 1200927971u, 1093916741u, 1093916741u, 0, LOG_TOLERANCE, 0},
+{638, 1179374444u, 1092066895u, 1092066895u, 0, LOG_TOLERANCE, 0},
+{639, 1246019790u, 1097844403u, 1097844403u, 0, LOG_TOLERANCE, 0},
+{640, 1136052740u, 1086118125u, 1086118125u, 0, LOG_TOLERANCE, 0},
+{641, 1069009211u, 1052325441u, 1052325441u, 0, LOG_TOLERANCE, 0},
+{642, 1169128344u, 1091183079u, 1091183079u, 0, LOG_TOLERANCE, 0},
+{643, 1087942795u, 1073009751u, 1073009751u, 0, LOG_TOLERANCE, 0},
+{644, 1278882065u, 1099800734u, 1099800734u, 0, LOG_TOLERANCE, 0},
+{645, 1147842784u, 1088095915u, 1088095915u, 0, LOG_TOLERANCE, 0},
+{646, 1171351660u, 1091368407u, 1091368407u, 0, LOG_TOLERANCE, 0},
+{647, 1136072069u, 1086121506u, 1086121506u, 0, LOG_TOLERANCE, 0},
+{648, 1233771772u, 1096744620u, 1096744620u, 0, LOG_TOLERANCE, 0},
+{649, 1241288445u, 1097379408u, 1097379408u, 0, LOG_TOLERANCE, 0},
+{650, 1319200415u, 1101542864u, 1101542864u, 0, LOG_TOLERANCE, 0},
+{651, 1279324488u, 1099819407u, 1099819407u, 0, LOG_TOLERANCE, 0},
+{652, 1070311776u, 1055771065u, 1055771065u, 0, LOG_TOLERANCE, 0},
+{653, 1307648109u, 1101026512u, 1101026512u, 0, LOG_TOLERANCE, 0},
+{654, 1246947517u, 1097917255u, 1097917255u, 0, LOG_TOLERANCE, 0},
+{655, 1249239929u, 1098078160u, 1098078160u, 0, LOG_TOLERANCE, 0},
+{656, 1286277377u, 1100119627u, 1100119627u, 0, LOG_TOLERANCE, 0},
+{657, 1173247961u, 1091504122u, 1091504122u, 0, LOG_TOLERANCE, 0},
+{658, 1101051030u, 1077936679u, 1077936679u, 0, LOG_TOLERANCE, 0},
+{659, 1082862511u, 1069295568u, 1069295568u, 0, LOG_TOLERANCE, 0},
+{660, 1341821683u, 1102500297u, 1102500297u, 0, LOG_TOLERANCE, 0},
+{661, 1079061705u, 1066899135u, 1066899135u, 0, LOG_TOLERANCE, 0},
+{662, 1105291533u, 1079355820u, 1079355820u, 0, LOG_TOLERANCE, 0},
+{663, 1223207358u, 1095839735u, 1095839735u, 0, LOG_TOLERANCE, 0},
+{664, 1156767169u, 1089621359u, 1089621359u, 0, LOG_TOLERANCE, 0},
+{665, 1104284039u, 1079059544u, 1079059544u, 0, LOG_TOLERANCE, 0},
+{666, 1187729253u, 1092791055u, 1092791055u, 0, LOG_TOLERANCE, 0},
+{667, 1093697541u, 1075422618u, 1075422618u, 0, LOG_TOLERANCE, 0},
+{668, 1119207537u, 1083198919u, 1083198919u, 0, LOG_TOLERANCE, 0},
+{669, 1094115255u, 1075571413u, 1075571413u, 0, LOG_TOLERANCE, 0},
+{670, 1276603160u, 1099692348u, 1099692348u, 0, LOG_TOLERANCE, 0},
+{671, 1206125125u, 1094364912u, 1094364912u, 0, LOG_TOLERANCE, 0},
+{672, 1098662266u, 1076920498u, 1076920498u, 0, LOG_TOLERANCE, 0},
+{673, 1328600211u, 1101954140u, 1101954140u, 0, LOG_TOLERANCE, 0},
+{674, 1317062968u, 1101424512u, 1101424512u, 0, LOG_TOLERANCE, 0},
+{675, 1296068481u, 1100544845u, 1100544845u, 0, LOG_TOLERANCE, 0},
+{676, 1287620154u, 1100178947u, 1100178947u, 0, LOG_TOLERANCE, 0},
+{677, 1245702957u, 1097818316u, 1097818316u, 0, LOG_TOLERANCE, 0},
+{678, 1268279353u, 1099332351u, 1099332351u, 0, LOG_TOLERANCE, 0},
+{679, 1135988313u, 1086106816u, 1086106816u, 0, LOG_TOLERANCE, 0},
+{680, 1163727179u, 1090698406u, 1090698406u, 0, LOG_TOLERANCE, 0},
+{681, 1198307901u, 1093677442u, 1093677442u, 0, LOG_TOLERANCE, 0},
+{682, 1288901567u, 1100229913u, 1100229913u, 0, LOG_TOLERANCE, 0},
+{683, 1113104661u, 1082096428u, 1082096428u, 0, LOG_TOLERANCE, 0},
+{684, 1136714348u, 1086230864u, 1086230864u, 0, LOG_TOLERANCE, 0},
+{685, 1339423444u, 1102417526u, 1102417526u, 0, LOG_TOLERANCE, 0},
+{686, 1162027071u, 1090567520u, 1090567520u, 0, LOG_TOLERANCE, 0},
+{687, 1124131769u, 1083931793u, 1083931793u, 0, LOG_TOLERANCE, 0},
+{688, 1177157787u, 1091876627u, 1091876627u, 0, LOG_TOLERANCE, 0},
+{689, 1284600904u, 1100034688u, 1100034688u, 0, LOG_TOLERANCE, 0},
+{690, 1309658335u, 1101118918u, 1101118918u, 0, LOG_TOLERANCE, 0},
+{691, 1226494979u, 1096139493u, 1096139493u, 0, LOG_TOLERANCE, 0},
+{692, 1228023365u, 1096286616u, 1096286616u, 0, LOG_TOLERANCE, 0},
+{693, 1313215353u, 1101286809u, 1101286809u, 0, LOG_TOLERANCE, 0},
+{694, 1320539530u, 1101605361u, 1101605361u, 0, LOG_TOLERANCE, 0},
+{695, 1204196034u, 1094219971u, 1094219971u, 0, LOG_TOLERANCE, 0},
+{696, 1312393763u, 1101252529u, 1101252529u, 0, LOG_TOLERANCE, 0},
+{697, 1161439847u, 1090517416u, 1090517416u, 0, LOG_TOLERANCE, 0},
+{698, 1084378658u, 1070585549u, 1070585549u, 0, LOG_TOLERANCE, 0},
+{699, 1226473697u, 1096137292u, 1096137292u, 0, LOG_TOLERANCE, 0},
+{700, 1123114742u, 1083793867u, 1083793867u, 0, LOG_TOLERANCE, 0},
+{701, 1258114435u, 1098836128u, 1098836128u, 0, LOG_TOLERANCE, 0},
+{702, 1320557197u, 1101606138u, 1101606138u, 0, LOG_TOLERANCE, 0},
+{703, 1178825761u, 1092022914u, 1092022914u, 0, LOG_TOLERANCE, 0},
+{704, 1075900364u, 1064046743u, 1064046743u, 0, LOG_TOLERANCE, 0},
+{705, 1297778779u, 1100611521u, 1100611521u, 0, LOG_TOLERANCE, 0},
+{706, 1125653081u, 1084279085u, 1084279085u, 0, LOG_TOLERANCE, 0},
+{707, 1190169064u, 1092967372u, 1092967372u, 0, LOG_TOLERANCE, 0},
+{708, 1184753508u, 1092526032u, 1092526032u, 0, LOG_TOLERANCE, 0},
+{709, 1188439315u, 1092845498u, 1092845498u, 0, LOG_TOLERANCE, 0},
+{710, 1314151417u, 1101323314u, 1101323314u, 0, LOG_TOLERANCE, 0},
+{711, 1188167943u, 1092825023u, 1092825023u, 0, LOG_TOLERANCE, 0},
+{712, 1142595790u, 1087220886u, 1087220886u, 0, LOG_TOLERANCE, 0},
+{713, 1203206679u, 1094137061u, 1094137061u, 0, LOG_TOLERANCE, 0},
+{714, 1102061604u, 1078320979u, 1078320979u, 0, LOG_TOLERANCE, 0},
+{715, 1282351521u, 1099931930u, 1099931930u, 0, LOG_TOLERANCE, 0},
+{716, 1311377417u, 1101206767u, 1101206767u, 0, LOG_TOLERANCE, 0},
+{717, 1081309682u, 1068172935u, 1068172935u, 0, LOG_TOLERANCE, 0},
+{718, 1274711085u, 1099592971u, 1099592971u, 0, LOG_TOLERANCE, 0},
+{719, 1261940623u, 1099066812u, 1099066812u, 0, LOG_TOLERANCE, 0},
+{720, 1253119433u, 1098460785u, 1098460785u, 0, LOG_TOLERANCE, 0},
+{721, 1219411812u, 1095539582u, 1095539582u, 0, LOG_TOLERANCE, 0},
+{722, 1149882378u, 1088433080u, 1088433080u, 0, LOG_TOLERANCE, 0},
+{723, 1218488455u, 1095451435u, 1095451435u, 0, LOG_TOLERANCE, 0},
+{724, 1283938137u, 1099996906u, 1099996906u, 0, LOG_TOLERANCE, 0},
+{725, 1317098613u, 1101426722u, 1101426722u, 0, LOG_TOLERANCE, 0},
+{726, 1284220009u, 1100013309u, 1100013309u, 0, LOG_TOLERANCE, 0},
+{727, 1092245127u, 1074859842u, 1074859842u, 0, LOG_TOLERANCE, 0},
+{728, 1165676440u, 1090830769u, 1090830769u, 0, LOG_TOLERANCE, 0},
+{729, 1284174954u, 1100010721u, 1100010721u, 0, LOG_TOLERANCE, 0},
+{730, 1102631663u, 1078523172u, 1078523172u, 0, LOG_TOLERANCE, 0},
+{731, 1125596740u, 1084267198u, 1084267198u, 0, LOG_TOLERANCE, 0},
+{732, 1172529774u, 1091454766u, 1091454766u, 0, LOG_TOLERANCE, 0},
+{733, 1306695905u, 1100993929u, 1100993929u, 0, LOG_TOLERANCE, 0},
+{734, 1078478376u, 1066534362u, 1066534362u, 0, LOG_TOLERANCE, 0},
+{735, 1165177679u, 1090798459u, 1090798459u, 0, LOG_TOLERANCE, 0},
+{736, 1255525865u, 1098658369u, 1098658369u, 0, LOG_TOLERANCE, 0},
+{737, 1222777442u, 1095809745u, 1095809745u, 0, LOG_TOLERANCE, 0},
+{738, 1325324763u, 1101782353u, 1101782353u, 0, LOG_TOLERANCE, 0},
+{739, 1216040565u, 1095193744u, 1095193744u, 0, LOG_TOLERANCE, 0},
+{740, 1158950321u, 1090038805u, 1090038805u, 0, LOG_TOLERANCE, 0},
+{741, 1208345407u, 1094533485u, 1094533485u, 0, LOG_TOLERANCE, 0},
+{742, 1258634105u, 1098889245u, 1098889245u, 0, LOG_TOLERANCE, 0},
+{743, 1248478509u, 1098027406u, 1098027406u, 0, LOG_TOLERANCE, 0},
+{744, 1153863988u, 1089199028u, 1089199028u, 0, LOG_TOLERANCE, 0},
+{745, 1235620969u, 1096939871u, 1096939871u, 0, LOG_TOLERANCE, 0},
+{746, 1097120930u, 1076509995u, 1076509995u, 0, LOG_TOLERANCE, 0},
+{747, 1322294974u, 1101677409u, 1101677409u, 0, LOG_TOLERANCE, 0},
+{748, 1147712200u, 1088078034u, 1088078034u, 0, LOG_TOLERANCE, 0},
+{749, 1124721745u, 1084073380u, 1084073380u, 0, LOG_TOLERANCE, 0},
+{750, 1114260656u, 1082277595u, 1082277595u, 0, LOG_TOLERANCE, 0},
+{751, 1155676504u, 1089472492u, 1089472492u, 0, LOG_TOLERANCE, 0},
+{752, 1315090496u, 1101357549u, 1101357549u, 0, LOG_TOLERANCE, 0},
+{753, 1082919539u, 1069347855u, 1069347855u, 0, LOG_TOLERANCE, 0},
+{754, 1335399673u, 1102240222u, 1102240222u, 0, LOG_TOLERANCE, 0},
+{755, 1072458508u, 1058870026u, 1058870026u, 0, LOG_TOLERANCE, 0},
+{756, 1155531601u, 1089451895u, 1089451895u, 0, LOG_TOLERANCE, 0},
+{757, 1104656093u, 1079171407u, 1079171407u, 0, LOG_TOLERANCE, 0},
+{758, 1321036318u, 1101626775u, 1101626775u, 0, LOG_TOLERANCE, 0},
+{759, 1172239631u, 1091434149u, 1091434149u, 0, LOG_TOLERANCE, 0},
+{760, 1107620519u, 1080048642u, 1080048642u, 0, LOG_TOLERANCE, 0},
+{761, 1155477903u, 1089444210u, 1089444210u, 0, LOG_TOLERANCE, 0},
+{762, 1126405528u, 1084431697u, 1084431697u, 0, LOG_TOLERANCE, 0},
+{763, 1090330020u, 1074027503u, 1074027503u, 0, LOG_TOLERANCE, 0},
+{764, 1228207362u, 1096303012u, 1096303012u, 0, LOG_TOLERANCE, 0},
+{765, 1290175785u, 1100276110u, 1100276110u, 0, LOG_TOLERANCE, 0},
+{766, 1214223128u, 1095071136u, 1095071136u, 0, LOG_TOLERANCE, 0},
+{767, 1275438936u, 1099626919u, 1099626919u, 0, LOG_TOLERANCE, 0},
+{768, 1315857601u, 1101383945u, 1101383945u, 0, LOG_TOLERANCE, 0},
+{769, 1305742382u, 1100959135u, 1100959135u, 0, LOG_TOLERANCE, 0},
+{770, 1078359574u, 1066458087u, 1066458087u, 0, LOG_TOLERANCE, 0},
+{771, 1207675424u, 1094468419u, 1094468419u, 0, LOG_TOLERANCE, 0},
+{772, 1248421894u, 1098023532u, 1098023532u, 0, LOG_TOLERANCE, 0},
+{773, 1205768346u, 1094339572u, 1094339572u, 0, LOG_TOLERANCE, 0},
+{774, 1076752219u, 1065349836u, 1065349836u, 0, LOG_TOLERANCE, 0},
+{775, 1241048294u, 1097364082u, 1097364082u, 0, LOG_TOLERANCE, 0},
+{776, 1273395082u, 1099549172u, 1099549172u, 0, LOG_TOLERANCE, 0},
+{777, 1238104535u, 1097155389u, 1097155389u, 0, LOG_TOLERANCE, 0},
+{778, 1294321000u, 1100466645u, 1100466645u, 0, LOG_TOLERANCE, 0},
+{779, 1245343769u, 1097787935u, 1097787935u, 0, LOG_TOLERANCE, 0},
+{780, 1161241793u, 1090483093u, 1090483093u, 0, LOG_TOLERANCE, 0},
+{781, 1171318485u, 1091365870u, 1091365870u, 0, LOG_TOLERANCE, 0},
+{782, 1243968857u, 1097662758u, 1097662758u, 0, LOG_TOLERANCE, 0},
+{783, 1102119721u, 1078342044u, 1078342044u, 0, LOG_TOLERANCE, 0},
+{784, 1220264047u, 1095614846u, 1095614846u, 0, LOG_TOLERANCE, 0},
+{785, 1134728775u, 1085872507u, 1085872507u, 0, LOG_TOLERANCE, 0},
+{786, 1204809672u, 1094268284u, 1094268284u, 0, LOG_TOLERANCE, 0},
+{787, 1148874793u, 1088232109u, 1088232109u, 0, LOG_TOLERANCE, 0},
+{788, 1197828352u, 1093644519u, 1093644519u, 0, LOG_TOLERANCE, 0},
+{789, 1193026723u, 1093241091u, 1093241091u, 0, LOG_TOLERANCE, 0},
+{790, 1127109339u, 1084565044u, 1084565044u, 0, LOG_TOLERANCE, 0},
+{791, 1200599955u, 1093880840u, 1093880840u, 0, LOG_TOLERANCE, 0},
+{792, 1089700228u, 1073865159u, 1073865159u, 0, LOG_TOLERANCE, 0},
+{793, 1333109014u, 1102126438u, 1102126438u, 0, LOG_TOLERANCE, 0},
+{794, 1155775526u, 1089486453u, 1089486453u, 0, LOG_TOLERANCE, 0},
+{795, 1234491880u, 1096825030u, 1096825030u, 0, LOG_TOLERANCE, 0}
+
+// AUTOMATICALLY GENERATED VECTORS STOP
+
+};
+
+#endif // CYGONCE_LIBM_LOG_H multiple inclusion protection
+
+// EOF log.h
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/modf.c b/ecos/packages/language/c/libm/current/tests/vectors/modf.c
new file mode 100644
index 0000000..f5e194c
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/modf.c
@@ -0,0 +1,115 @@
+//===========================================================================
+//
+// modf.c
+//
+// Test of modf() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// Declarations for test system:
+//
+// TESTCASE_TYPE=CYG_TEST_MODULE
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include <cyg/infra/testcase.h> // Test infrastructure
+#include <math.h> // Header for this package
+#include <sys/ieeefp.h> // Cyg_libm_ieee_double_shape_type
+#include "vectors/vector_support.h"// extra support for math tests
+
+#include "vectors/modf.h"
+
+// FUNCTIONS
+
+static void
+test( CYG_ADDRWORD data )
+{
+ cyg_ucount32 vec_size;
+ cyg_bool ret;
+
+ vec_size = sizeof(modf_vec) / sizeof(Cyg_libm_test_double_vec_t);
+ ret = doTestVec( (CYG_ADDRWORD) &modf, CYG_LIBM_TEST_VEC_DOUBLE,
+ CYG_LIBM_TEST_VEC_DOUBLE_P, CYG_LIBM_TEST_VEC_DOUBLE,
+ &modf_vec[0], vec_size );
+
+ if (ret==true)
+ {
+ CYG_TEST_PASS("modf() is stable");
+ } // if
+ else
+ {
+ CYG_TEST_FAIL("modf() failed tests");
+ } // else
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for Math "
+ "library modf() function");
+} // test()
+
+
+int
+main(int argc, char *argv[])
+{
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for Math library "
+ "modf() function");
+
+ START_TEST( test );
+
+ CYG_TEST_PASS_FINISH("Testing is not applicable to this configuration");
+
+} // main()
+
+
+// EOF modf.c
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/modf.h b/ecos/packages/language/c/libm/current/tests/vectors/modf.h
new file mode 100644
index 0000000..7f6b83e
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/modf.h
@@ -0,0 +1,1079 @@
+#ifndef CYGONCE_LIBM_MODF_H
+#define CYGONCE_LIBM_MODF_H
+//===========================================================================
+//
+// modf.h
+//
+// Test vectors for testing of modf() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage: #include "vectors/modf.h"
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include "vectors/vector_support.h"// extra support for math tests
+
+#define MODF_TOLERANCE 1.0E-04
+
+static const Cyg_libm_test_double_vec_t modf_vec[] = {
+
+// AUTOMATICALLY GENERATED VECTORS START
+
+{ 1, 1077999148u, 2506787616u, 1077968896u, 0u, 1072532261u, 1520617472u, 0, MODF_TOLERANCE, 0},
+{ 2, 1090024059u, 3619148316u, 1090024048u, 0u, 1072148335u, 2755133440u, 0, MODF_TOLERANCE, 0},
+{ 3, 3218153654u, 3176730980u, 2147483648u, 0u, 3218153654u, 3176730980u, 0, MODF_TOLERANCE, 0},
+{ 4, 1051524793u, 2993920299u, 0u, 0u, 1051524793u, 2993920299u, 0, MODF_TOLERANCE, 0},
+{ 5, 3239659803u, 2725707538u, 3239659800u, 0u, 3219985335u, 4170186752u, 0, MODF_TOLERANCE, 0},
+{ 6, 3232101343u, 2346810316u, 3232100864u, 0u, 3220043966u, 398245888u, 0, MODF_TOLERANCE, 0},
+{ 7, 1092554362u, 2088062470u, 1092554360u, 0u, 1071899562u, 1882193920u, 0, MODF_TOLERANCE, 0},
+{ 8, 3201242716u, 420891118u, 2147483648u, 0u, 3201242716u, 420891118u, 0, MODF_TOLERANCE, 0},
+{ 9, 3221200677u, 2636405208u, 3220176896u, 0u, 3220127307u, 977843120u, 0, MODF_TOLERANCE, 0},
+{ 10, 1100049309u, 471635570u, 1100049309u, 469762048u, 1067226738u, 0u, 0, MODF_TOLERANCE, 0},
+{ 11, 1089363191u, 1746012320u, 1089363168u, 0u, 1072130066u, 144703488u, 0, MODF_TOLERANCE, 0},
+{ 12, 1054478713u, 3333988501u, 0u, 0u, 1054478713u, 3333988501u, 0, MODF_TOLERANCE, 0},
+{ 13, 1047953160u, 183014794u, 0u, 0u, 1047953160u, 183014794u, 0, MODF_TOLERANCE, 0},
+{ 14, 3202039382u, 2016785810u, 2147483648u, 0u, 3202039382u, 2016785810u, 0, MODF_TOLERANCE, 0},
+{ 15, 3213486034u, 2688957927u, 2147483648u, 0u, 3213486034u, 2688957927u, 0, MODF_TOLERANCE, 0},
+{ 16, 1046089230u, 2709029994u, 0u, 0u, 1046089230u, 2709029994u, 0, MODF_TOLERANCE, 0},
+{ 17, 1058795730u, 624574473u, 0u, 0u, 1058795730u, 624574473u, 0, MODF_TOLERANCE, 0},
+{ 18, 1045840574u, 3473266330u, 0u, 0u, 1045840574u, 3473266330u, 0, MODF_TOLERANCE, 0},
+{ 19, 3204919842u, 1605286142u, 2147483648u, 0u, 3204919842u, 1605286142u, 0, MODF_TOLERANCE, 0},
+{ 20, 1068931671u, 4233776869u, 0u, 0u, 1068931671u, 4233776869u, 0, MODF_TOLERANCE, 0},
+{ 21, 1060343410u, 1857607719u, 0u, 0u, 1060343410u, 1857607719u, 0, MODF_TOLERANCE, 0},
+{ 22, 3222889559u, 3417070006u, 3222798336u, 0u, 3218490748u, 3133512544u, 0, MODF_TOLERANCE, 0},
+{ 23, 1103599987u, 3981151660u, 1103599987u, 3976200192u, 1071833963u, 0u, 0, MODF_TOLERANCE, 0},
+{ 24, 1088899021u, 1332651746u, 1088899008u, 0u, 1071292125u, 1304690688u, 0, MODF_TOLERANCE, 0},
+{ 25, 1085298022u, 3824988054u, 1085297920u, 0u, 1071233279u, 736460800u, 0, MODF_TOLERANCE, 0},
+{ 26, 1066856791u, 2070129652u, 0u, 0u, 1066856791u, 2070129652u, 0, MODF_TOLERANCE, 0},
+{ 27, 3207559790u, 1372884064u, 2147483648u, 0u, 3207559790u, 1372884064u, 0, MODF_TOLERANCE, 0},
+{ 28, 1080833116u, 3229926662u, 1080827904u, 0u, 1071930560u, 2227504640u, 0, MODF_TOLERANCE, 0},
+{ 29, 1093826501u, 3217805330u, 1093826501u, 0u, 1072167290u, 37748736u, 0, MODF_TOLERANCE, 0},
+{ 30, 3191644264u, 2014578707u, 2147483648u, 0u, 3191644264u, 2014578707u, 0, MODF_TOLERANCE, 0},
+{ 31, 1102287487u, 265058758u, 1102287487u, 251658240u, 1072271160u, 3221225472u, 0, MODF_TOLERANCE, 0},
+{ 32, 3239903247u, 1630600647u, 3239903244u, 0u, 3219851655u, 3996647424u, 0, MODF_TOLERANCE, 0},
+{ 33, 1071124229u, 1946677669u, 0u, 0u, 1071124229u, 1946677669u, 0, MODF_TOLERANCE, 0},
+{ 34, 3198462609u, 926009897u, 2147483648u, 0u, 3198462609u, 926009897u, 0, MODF_TOLERANCE, 0},
+{ 35, 1072130299u, 2271884183u, 0u, 0u, 1072130299u, 2271884183u, 0, MODF_TOLERANCE, 0},
+{ 36, 3203741999u, 2118617783u, 2147483648u, 0u, 3203741999u, 2118617783u, 0, MODF_TOLERANCE, 0},
+{ 37, 3194849109u, 213658772u, 2147483648u, 0u, 3194849109u, 213658772u, 0, MODF_TOLERANCE, 0},
+{ 38, 3249401130u, 314151656u, 3249401130u, 301989888u, 3218551389u, 0u, 0, MODF_TOLERANCE, 0},
+{ 39, 3254112288u, 1564829925u, 3254112288u, 1564475392u, 3218449300u, 0u, 0, MODF_TOLERANCE, 0},
+{ 40, 3197817016u, 497230814u, 2147483648u, 0u, 3197817016u, 497230814u, 0, MODF_TOLERANCE, 0},
+{ 41, 3216262634u, 2075329122u, 2147483648u, 0u, 3216262634u, 2075329122u, 0, MODF_TOLERANCE, 0},
+{ 42, 3231746400u, 169900577u, 3231746048u, 0u, 3219521698u, 128061440u, 0, MODF_TOLERANCE, 0},
+{ 43, 1049848642u, 541549344u, 0u, 0u, 1049848642u, 541549344u, 0, MODF_TOLERANCE, 0},
+{ 44, 1096608669u, 3119070100u, 1096608669u, 2147483648u, 1072493725u, 3388997632u, 0, MODF_TOLERANCE, 0},
+{ 45, 1085427055u, 567496114u, 1085426944u, 0u, 1071368308u, 3547103232u, 0, MODF_TOLERANCE, 0},
+{ 46, 1045286891u, 1969998540u, 0u, 0u, 1045286891u, 1969998540u, 0, MODF_TOLERANCE, 0},
+{ 47, 1060548195u, 1299369769u, 0u, 0u, 1060548195u, 1299369769u, 0, MODF_TOLERANCE, 0},
+{ 48, 1049342524u, 4167404066u, 0u, 0u, 1049342524u, 4167404066u, 0, MODF_TOLERANCE, 0},
+{ 49, 3208865645u, 3348930841u, 2147483648u, 0u, 3208865645u, 3348930841u, 0, MODF_TOLERANCE, 0},
+{ 50, 1078472138u, 358457347u, 1078460416u, 0u, 1071047946u, 2932867456u, 0, MODF_TOLERANCE, 0},
+{ 51, 1071069297u, 2192461366u, 0u, 0u, 1071069297u, 2192461366u, 0, MODF_TOLERANCE, 0},
+{ 52, 1099527247u, 3184735642u, 1099527247u, 3087007744u, 1072123094u, 1744830464u, 0, MODF_TOLERANCE, 0},
+{ 53, 1052861772u, 331696577u, 0u, 0u, 1052861772u, 331696577u, 0, MODF_TOLERANCE, 0},
+{ 54, 3189610016u, 793242270u, 2147483648u, 0u, 3189610016u, 793242270u, 0, MODF_TOLERANCE, 0},
+{ 55, 3252528934u, 2322696981u, 3252528934u, 2319450112u, 3219703178u, 2147483648u, 0, MODF_TOLERANCE, 0},
+{ 56, 1083791358u, 3020766674u, 1083790336u, 0u, 1072690592u, 1777242112u, 0, MODF_TOLERANCE, 0},
+{ 57, 1044902177u, 252085215u, 0u, 0u, 1044902177u, 252085215u, 0, MODF_TOLERANCE, 0},
+{ 58, 3214426435u, 4139068910u, 2147483648u, 0u, 3214426435u, 4139068910u, 0, MODF_TOLERANCE, 0},
+{ 59, 3222505725u, 105589263u, 3222274048u, 0u, 3219933160u, 844714104u, 0, MODF_TOLERANCE, 0},
+{ 60, 1056316170u, 261630827u, 0u, 0u, 1056316170u, 261630827u, 0, MODF_TOLERANCE, 0},
+{ 61, 1107213408u, 428765703u, 1107213408u, 427819008u, 1072489486u, 0u, 0, MODF_TOLERANCE, 0},
+{ 62, 3251828686u, 2009972239u, 3251828686u, 2009071616u, 3217783838u, 0u, 0, MODF_TOLERANCE, 0},
+{ 63, 1098568019u, 3517376586u, 1098568019u, 3489660928u, 1069182596u, 2684354560u, 0, MODF_TOLERANCE, 0},
+{ 64, 3240257920u, 3304487302u, 3240257920u, 0u, 3218644687u, 817889280u, 0, MODF_TOLERANCE, 0},
+{ 65, 3233537912u, 237004814u, 3233537792u, 0u, 3218998152u, 436436992u, 0, MODF_TOLERANCE, 0},
+{ 66, 3237899261u, 3364008659u, 3237899248u, 0u, 3219886341u, 1705377792u, 0, MODF_TOLERANCE, 0},
+{ 67, 3195247552u, 472004928u, 2147483648u, 0u, 3195247552u, 472004928u, 0, MODF_TOLERANCE, 0},
+{ 68, 3226869477u, 1186387580u, 3226861568u, 0u, 3219055942u, 3067509760u, 0, MODF_TOLERANCE, 0},
+{ 69, 1054226850u, 4085763910u, 0u, 0u, 1054226850u, 4085763910u, 0, MODF_TOLERANCE, 0},
+{ 70, 1106394906u, 2684738273u, 1106394906u, 2684354560u, 1071082372u, 0u, 0, MODF_TOLERANCE, 0},
+{ 71, 1057053639u, 2055490142u, 0u, 0u, 1057053639u, 2055490142u, 0, MODF_TOLERANCE, 0},
+{ 72, 3231581370u, 3879040079u, 3231581184u, 0u, 3217513702u, 2928271360u, 0, MODF_TOLERANCE, 0},
+{ 73, 3188976647u, 3725731239u, 2147483648u, 0u, 3188976647u, 3725731239u, 0, MODF_TOLERANCE, 0},
+{ 74, 1061652681u, 591292963u, 0u, 0u, 1061652681u, 591292963u, 0, MODF_TOLERANCE, 0},
+{ 75, 3225014981u, 1147041027u, 3224961024u, 0u, 3219806376u, 2345574496u, 0, MODF_TOLERANCE, 0},
+{ 76, 3215417793u, 624695933u, 2147483648u, 0u, 3215417793u, 624695933u, 0, MODF_TOLERANCE, 0},
+{ 77, 3206052774u, 705725219u, 2147483648u, 0u, 3206052774u, 705725219u, 0, MODF_TOLERANCE, 0},
+{ 78, 3238067573u, 1116238321u, 3238067568u, 0u, 3219458593u, 3351511040u, 0, MODF_TOLERANCE, 0},
+{ 79, 3207367088u, 7287411u, 2147483648u, 0u, 3207367088u, 7287411u, 0, MODF_TOLERANCE, 0},
+{ 80, 1045917232u, 116067742u, 0u, 0u, 1045917232u, 116067742u, 0, MODF_TOLERANCE, 0},
+{ 81, 3240055222u, 3604989074u, 3240055220u, 0u, 3219568382u, 613416960u, 0, MODF_TOLERANCE, 0},
+{ 82, 1066381836u, 545298780u, 0u, 0u, 1066381836u, 545298780u, 0, MODF_TOLERANCE, 0},
+{ 83, 3219080936u, 1681476121u, 2147483648u, 0u, 3219080936u, 1681476121u, 0, MODF_TOLERANCE, 0},
+{ 84, 1060345752u, 3553822398u, 0u, 0u, 1060345752u, 3553822398u, 0, MODF_TOLERANCE, 0},
+{ 85, 1102831658u, 3410480388u, 1102831658u, 3405774848u, 1070723905u, 0u, 0, MODF_TOLERANCE, 0},
+{ 86, 1052460275u, 1660607230u, 0u, 0u, 1052460275u, 1660607230u, 0, MODF_TOLERANCE, 0},
+{ 87, 1089216869u, 1494984673u, 1089216864u, 0u, 1069900910u, 2676228096u, 0, MODF_TOLERANCE, 0},
+{ 88, 3196647153u, 287894723u, 2147483648u, 0u, 3196647153u, 287894723u, 0, MODF_TOLERANCE, 0},
+{ 89, 1054885127u, 644548665u, 0u, 0u, 1054885127u, 644548665u, 0, MODF_TOLERANCE, 0},
+{ 90, 1081948134u, 2442134629u, 1081946112u, 0u, 1071618630u, 1074893824u, 0, MODF_TOLERANCE, 0},
+{ 91, 1087554095u, 2312530895u, 1087554048u, 0u, 1072153835u, 904364032u, 0, MODF_TOLERANCE, 0},
+{ 92, 3221584595u, 3379665576u, 3221225472u, 0u, 3219516239u, 633760416u, 0, MODF_TOLERANCE, 0},
+{ 93, 1096085375u, 3018463866u, 1096085375u, 2147483648u, 1072297229u, 1023410176u, 0, MODF_TOLERANCE, 0},
+{ 94, 1086226574u, 404012923u, 1086226432u, 0u, 1071760130u, 2549047296u, 0, MODF_TOLERANCE, 0},
+{ 95, 1064733299u, 1710279345u, 0u, 0u, 1064733299u, 1710279345u, 0, MODF_TOLERANCE, 0},
+{ 96, 3251401196u, 3528946000u, 3251401196u, 3523215360u, 3219512404u, 0u, 0, MODF_TOLERANCE, 0},
+{ 97, 1061536351u, 2164450219u, 0u, 0u, 1061536351u, 2164450219u, 0, MODF_TOLERANCE, 0},
+{ 98, 1083520023u, 3312018966u, 1083520000u, 0u, 1066911081u, 1712717824u, 0, MODF_TOLERANCE, 0},
+{ 99, 1057248676u, 2648986431u, 0u, 0u, 1057248676u, 2648986431u, 0, MODF_TOLERANCE, 0},
+{ 100, 1050330591u, 1474376550u, 0u, 0u, 1050330591u, 1474376550u, 0, MODF_TOLERANCE, 0},
+{ 101, 3194422028u, 1839068700u, 2147483648u, 0u, 3194422028u, 1839068700u, 0, MODF_TOLERANCE, 0},
+{ 102, 1077406406u, 3013052171u, 1077346304u, 0u, 1072519382u, 1928388960u, 0, MODF_TOLERANCE, 0},
+{ 103, 1046493630u, 772102380u, 0u, 0u, 1046493630u, 772102380u, 0, MODF_TOLERANCE, 0},
+{ 104, 3220729740u, 4219039958u, 3220176896u, 0u, 3219185433u, 4143112620u, 0, MODF_TOLERANCE, 0},
+{ 105, 3229472221u, 3058618779u, 3229470720u, 0u, 3218568921u, 994470912u, 0, MODF_TOLERANCE, 0},
+{ 106, 1046304788u, 3338676024u, 0u, 0u, 1046304788u, 3338676024u, 0, MODF_TOLERANCE, 0},
+{ 107, 1051172137u, 506286854u, 0u, 0u, 1051172137u, 506286854u, 0, MODF_TOLERANCE, 0},
+{ 108, 1094907481u, 2217000199u, 1094907481u, 2147483648u, 1067487988u, 469762048u, 0, MODF_TOLERANCE, 0},
+{ 109, 1082428310u, 1147428263u, 1082427392u, 0u, 1071428131u, 585971712u, 0, MODF_TOLERANCE, 0},
+{ 110, 1065432625u, 3034786717u, 0u, 0u, 1065432625u, 3034786717u, 0, MODF_TOLERANCE, 0},
+{ 111, 1082016752u, 2844125311u, 1082015744u, 0u, 1070564684u, 792983552u, 0, MODF_TOLERANCE, 0},
+{ 112, 1082985198u, 2561492677u, 1082984448u, 0u, 1071084741u, 1781934080u, 0, MODF_TOLERANCE, 0},
+{ 113, 3211536916u, 704542600u, 2147483648u, 0u, 3211536916u, 704542600u, 0, MODF_TOLERANCE, 0},
+{ 114, 3222902057u, 2762779203u, 3222798336u, 0u, 3218690714u, 1254794288u, 0, MODF_TOLERANCE, 0},
+{ 115, 3199680614u, 184131949u, 2147483648u, 0u, 3199680614u, 184131949u, 0, MODF_TOLERANCE, 0},
+{ 116, 3249723525u, 1667366082u, 3249723525u, 1660944384u, 3218636592u, 2147483648u, 0, MODF_TOLERANCE, 0},
+{ 117, 3223609598u, 3904224140u, 3223584768u, 0u, 3217571770u, 762241792u, 0, MODF_TOLERANCE, 0},
+{ 118, 1067056698u, 2942159914u, 0u, 0u, 1067056698u, 2942159914u, 0, MODF_TOLERANCE, 0},
+{ 119, 1100636863u, 426114282u, 1100636863u, 402653184u, 1071013838u, 2684354560u, 0, MODF_TOLERANCE, 0},
+{ 120, 3209056785u, 1083606355u, 2147483648u, 0u, 3209056785u, 1083606355u, 0, MODF_TOLERANCE, 0},
+{ 121, 1106165945u, 3774123863u, 1106165945u, 3772776448u, 1071943511u, 0u, 0, MODF_TOLERANCE, 0},
+{ 122, 1106787580u, 2722107965u, 1106787580u, 2722103296u, 1064451328u, 0u, 0, MODF_TOLERANCE, 0},
+{ 123, 1088005092u, 1377734762u, 1088005056u, 0u, 1071786255u, 1211432960u, 0, MODF_TOLERANCE, 0},
+{ 124, 1104232051u, 2377063483u, 1104232051u, 2373976064u, 1072139805u, 2147483648u, 0, MODF_TOLERANCE, 0},
+{ 125, 1069380559u, 1029739074u, 0u, 0u, 1069380559u, 1029739074u, 0, MODF_TOLERANCE, 0},
+{ 126, 1105467109u, 3062201018u, 1105467109u, 3061841920u, 1069935336u, 0u, 0, MODF_TOLERANCE, 0},
+{ 127, 3234741597u, 773857656u, 3234741504u, 0u, 3219606408u, 140378112u, 0, MODF_TOLERANCE, 0},
+{ 128, 3214251949u, 335833884u, 2147483648u, 0u, 3214251949u, 335833884u, 0, MODF_TOLERANCE, 0},
+{ 129, 3203224610u, 1473865960u, 2147483648u, 0u, 3203224610u, 1473865960u, 0, MODF_TOLERANCE, 0},
+{ 130, 1103073830u, 4000427507u, 1103073830u, 3992977408u, 1071410044u, 3221225472u, 0, MODF_TOLERANCE, 0},
+{ 131, 1103185231u, 4242092620u, 1103185231u, 4236247040u, 1072057491u, 0u, 0, MODF_TOLERANCE, 0},
+{ 132, 1067009473u, 14539161u, 0u, 0u, 1067009473u, 14539161u, 0, MODF_TOLERANCE, 0},
+{ 133, 3192516074u, 1732245037u, 2147483648u, 0u, 3192516074u, 1732245037u, 0, MODF_TOLERANCE, 0},
+{ 134, 1101371955u, 1533536108u, 1101371955u, 1509949440u, 1072070262u, 3221225472u, 0, MODF_TOLERANCE, 0},
+{ 135, 3249153995u, 1833841275u, 3249153995u, 1811939328u, 3219448615u, 2952790016u, 0, MODF_TOLERANCE, 0},
+{ 136, 1099430098u, 4144145552u, 1099430098u, 4026531840u, 1072433810u, 1073741824u, 0, MODF_TOLERANCE, 0},
+{ 137, 3244270463u, 935007012u, 3244270463u, 0u, 3219905929u, 2449473536u, 0, MODF_TOLERANCE, 0},
+{ 138, 3188865420u, 604442938u, 2147483648u, 0u, 3188865420u, 604442938u, 0, MODF_TOLERANCE, 0},
+{ 139, 3206903253u, 2211464602u, 2147483648u, 0u, 3206903253u, 2211464602u, 0, MODF_TOLERANCE, 0},
+{ 140, 1046255144u, 1635910526u, 0u, 0u, 1046255144u, 1635910526u, 0, MODF_TOLERANCE, 0},
+{ 141, 1077871417u, 2549219008u, 1077870592u, 0u, 1065995455u, 2415263744u, 0, MODF_TOLERANCE, 0},
+{ 142, 3231633258u, 3733639385u, 3231632384u, 0u, 3219871476u, 1451673600u, 0, MODF_TOLERANCE, 0},
+{ 143, 1082095089u, 1819374372u, 1082093568u, 0u, 1071105457u, 3318517760u, 0, MODF_TOLERANCE, 0},
+{ 144, 3202219056u, 2617077637u, 2147483648u, 0u, 3202219056u, 2617077637u, 0, MODF_TOLERANCE, 0},
+{ 145, 1094345280u, 546465680u, 1094345280u, 0u, 1069566259u, 3355443200u, 0, MODF_TOLERANCE, 0},
+{ 146, 1048653554u, 532401530u, 0u, 0u, 1048653554u, 532401530u, 0, MODF_TOLERANCE, 0},
+{ 147, 1044571091u, 2759019783u, 0u, 0u, 1044571091u, 2759019783u, 0, MODF_TOLERANCE, 0},
+{ 148, 3221570188u, 3554409630u, 3221225472u, 0u, 3219458611u, 1332736632u, 0, MODF_TOLERANCE, 0},
+{ 149, 3212931282u, 2527221960u, 2147483648u, 0u, 3212931282u, 2527221960u, 0, MODF_TOLERANCE, 0},
+{ 150, 1099107978u, 2696971136u, 1099107978u, 2684354560u, 1069027440u, 0u, 0, MODF_TOLERANCE, 0},
+{ 151, 1097158000u, 173134582u, 1097158000u, 0u, 1070900133u, 3959422976u, 0, MODF_TOLERANCE, 0},
+{ 152, 1087299442u, 2877794600u, 1087299328u, 0u, 1072474849u, 3930718208u, 0, MODF_TOLERANCE, 0},
+{ 153, 1086400474u, 547642046u, 1086400384u, 0u, 1072072745u, 380600320u, 0, MODF_TOLERANCE, 0},
+{ 154, 3197285510u, 3521286127u, 2147483648u, 0u, 3197285510u, 3521286127u, 0, MODF_TOLERANCE, 0},
+{ 155, 1074860702u, 1231582831u, 1074790400u, 0u, 1070672356u, 2525456112u, 0, MODF_TOLERANCE, 0},
+{ 156, 1090971734u, 1653446832u, 1090971728u, 0u, 1072269878u, 1656750080u, 0, MODF_TOLERANCE, 0},
+{ 157, 1061342535u, 3762182190u, 0u, 0u, 1061342535u, 3762182190u, 0, MODF_TOLERANCE, 0},
+{ 158, 3252967851u, 2615360375u, 3252967851u, 2615148544u, 3216628664u, 0u, 0, MODF_TOLERANCE, 0},
+{ 159, 3200834423u, 2588067350u, 2147483648u, 0u, 3200834423u, 2588067350u, 0, MODF_TOLERANCE, 0},
+{ 160, 3206610957u, 3551059728u, 2147483648u, 0u, 3206610957u, 3551059728u, 0, MODF_TOLERANCE, 0},
+{ 161, 3206978856u, 845263327u, 2147483648u, 0u, 3206978856u, 845263327u, 0, MODF_TOLERANCE, 0},
+{ 162, 1073415902u, 1749010288u, 1072693248u, 0u, 1072041404u, 3498020576u, 0, MODF_TOLERANCE, 0},
+{ 163, 3205576370u, 3092685191u, 2147483648u, 0u, 3205576370u, 3092685191u, 0, MODF_TOLERANCE, 0},
+{ 164, 3190678390u, 2872219490u, 2147483648u, 0u, 3190678390u, 2872219490u, 0, MODF_TOLERANCE, 0},
+{ 165, 3218315055u, 4107255722u, 2147483648u, 0u, 3218315055u, 4107255722u, 0, MODF_TOLERANCE, 0},
+{ 166, 3205337291u, 3069068345u, 2147483648u, 0u, 3205337291u, 3069068345u, 0, MODF_TOLERANCE, 0},
+{ 167, 3243990857u, 2294867524u, 3243990857u, 2147483648u, 3217134028u, 2281701376u, 0, MODF_TOLERANCE, 0},
+{ 168, 3216653996u, 2860384670u, 2147483648u, 0u, 3216653996u, 2860384670u, 0, MODF_TOLERANCE, 0},
+{ 169, 3193326350u, 2265437201u, 2147483648u, 0u, 3193326350u, 2265437201u, 0, MODF_TOLERANCE, 0},
+{ 170, 3240198679u, 1234948614u, 3240198678u, 0u, 3219429821u, 543162368u, 0, MODF_TOLERANCE, 0},
+{ 171, 3216359929u, 1186945904u, 2147483648u, 0u, 3216359929u, 1186945904u, 0, MODF_TOLERANCE, 0},
+{ 172, 3251167793u, 1896750851u, 3251167793u, 1895825408u, 3216784902u, 0u, 0, MODF_TOLERANCE, 0},
+{ 173, 1081575478u, 3686084548u, 1081573376u, 0u, 1071672759u, 1784645632u, 0, MODF_TOLERANCE, 0},
+{ 174, 1079286273u, 3309277689u, 1079279616u, 0u, 1071251909u, 1066531072u, 0, MODF_TOLERANCE, 0},
+{ 175, 3223476240u, 3006860614u, 3223453696u, 0u, 3217425452u, 3460518272u, 0, MODF_TOLERANCE, 0},
+{ 176, 3231412671u, 2504194724u, 3231412224u, 0u, 3218864468u, 799686656u, 0, MODF_TOLERANCE, 0},
+{ 177, 3236149260u, 1948717780u, 3236149248u, 0u, 3218663502u, 631767040u, 0, MODF_TOLERANCE, 0},
+{ 178, 1048317852u, 3791803982u, 0u, 0u, 1048317852u, 3791803982u, 0, MODF_TOLERANCE, 0},
+{ 179, 1064345015u, 4272034420u, 0u, 0u, 1064345015u, 4272034420u, 0, MODF_TOLERANCE, 0},
+{ 180, 3192982124u, 1526175922u, 2147483648u, 0u, 3192982124u, 1526175922u, 0, MODF_TOLERANCE, 0},
+{ 181, 3245817826u, 4108948538u, 3245817826u, 4026531840u, 3218318928u, 3892314112u, 0, MODF_TOLERANCE, 0},
+{ 182, 1104691287u, 640541190u, 1104691287u, 637534208u, 1072099587u, 0u, 0, MODF_TOLERANCE, 0},
+{ 183, 3207257417u, 3259274853u, 2147483648u, 0u, 3207257417u, 3259274853u, 0, MODF_TOLERANCE, 0},
+{ 184, 1082507103u, 3677038020u, 1082505216u, 0u, 1072529260u, 2895581184u, 0, MODF_TOLERANCE, 0},
+{ 185, 1083132498u, 3781708548u, 1083131904u, 0u, 1070765835u, 1113071616u, 0, MODF_TOLERANCE, 0},
+{ 186, 1096584871u, 1207386447u, 1096584871u, 1073741824u, 1069538565u, 1006632960u, 0, MODF_TOLERANCE, 0},
+{ 187, 3188695272u, 3011191657u, 2147483648u, 0u, 3188695272u, 3011191657u, 0, MODF_TOLERANCE, 0},
+{ 188, 1103798670u, 1096124830u, 1103798670u, 1090519040u, 1071997543u, 2147483648u, 0, MODF_TOLERANCE, 0},
+{ 189, 1063235023u, 2540404725u, 0u, 0u, 1063235023u, 2540404725u, 0, MODF_TOLERANCE, 0},
+{ 190, 3240157452u, 4122845725u, 3240157452u, 0u, 3219044276u, 1134559232u, 0, MODF_TOLERANCE, 0},
+{ 191, 1083643710u, 311336721u, 1083642880u, 0u, 1072296084u, 1962444800u, 0, MODF_TOLERANCE, 0},
+{ 192, 3214382367u, 4212533768u, 2147483648u, 0u, 3214382367u, 4212533768u, 0, MODF_TOLERANCE, 0},
+{ 193, 1051139427u, 1769686293u, 0u, 0u, 1051139427u, 1769686293u, 0, MODF_TOLERANCE, 0},
+{ 194, 3240200923u, 3538602249u, 3240200922u, 0u, 3219992236u, 2425356288u, 0, MODF_TOLERANCE, 0},
+{ 195, 1078227549u, 508056696u, 1078198272u, 0u, 1072469831u, 2450857472u, 0, MODF_TOLERANCE, 0},
+{ 196, 1103793878u, 776520138u, 1103793878u, 771751936u, 1071788146u, 2147483648u, 0, MODF_TOLERANCE, 0},
+{ 197, 1102910577u, 4064962760u, 1102910577u, 4060086272u, 1070766642u, 0u, 0, MODF_TOLERANCE, 0},
+{ 198, 1077424413u, 819766631u, 1077411840u, 0u, 1070108312u, 1850913664u, 0, MODF_TOLERANCE, 0},
+{ 199, 1074178362u, 2112385259u, 1073741824u, 0u, 1072342249u, 4154573740u, 0, MODF_TOLERANCE, 0},
+{ 200, 3227593179u, 1187058516u, 3227590656u, 0u, 3218323085u, 2183571456u, 0, MODF_TOLERANCE, 0},
+{ 201, 1082295059u, 2514398118u, 1082294272u, 0u, 1071160494u, 4116525056u, 0, MODF_TOLERANCE, 0},
+{ 202, 1076579751u, 870169764u, 1076494336u, 0u, 1071962739u, 1037814336u, 0, MODF_TOLERANCE, 0},
+{ 203, 3246851392u, 1190259653u, 3246851392u, 1073741824u, 3219900335u, 335544320u, 0, MODF_TOLERANCE, 0},
+{ 204, 1069112254u, 3417249840u, 0u, 0u, 1069112254u, 3417249840u, 0, MODF_TOLERANCE, 0},
+{ 205, 3193663083u, 3467757357u, 2147483648u, 0u, 3193663083u, 3467757357u, 0, MODF_TOLERANCE, 0},
+{ 206, 3215075200u, 2168175352u, 2147483648u, 0u, 3215075200u, 2168175352u, 0, MODF_TOLERANCE, 0},
+{ 207, 3239643135u, 1508888184u, 3239643132u, 0u, 3219836798u, 1941962752u, 0, MODF_TOLERANCE, 0},
+{ 208, 1060430241u, 3524949092u, 0u, 0u, 1060430241u, 3524949092u, 0, MODF_TOLERANCE, 0},
+{ 209, 3197412883u, 166402802u, 2147483648u, 0u, 3197412883u, 166402802u, 0, MODF_TOLERANCE, 0},
+{ 210, 3237198975u, 3572369260u, 3237198960u, 0u, 3220154844u, 249036800u, 0, MODF_TOLERANCE, 0},
+{ 211, 1081866822u, 2441536203u, 1081864192u, 0u, 1071942947u, 231052800u, 0, MODF_TOLERANCE, 0},
+{ 212, 3202753937u, 3658194573u, 2147483648u, 0u, 3202753937u, 3658194573u, 0, MODF_TOLERANCE, 0},
+{ 213, 1062392908u, 2479742828u, 0u, 0u, 1062392908u, 2479742828u, 0, MODF_TOLERANCE, 0},
+{ 214, 1062342831u, 4214154303u, 0u, 0u, 1062342831u, 4214154303u, 0, MODF_TOLERANCE, 0},
+{ 215, 1082396794u, 426896765u, 1082396672u, 0u, 1068402268u, 2069839872u, 0, MODF_TOLERANCE, 0},
+{ 216, 1066474375u, 2201754442u, 0u, 0u, 1066474375u, 2201754442u, 0, MODF_TOLERANCE, 0},
+{ 217, 3195629021u, 2055773734u, 2147483648u, 0u, 3195629021u, 2055773734u, 0, MODF_TOLERANCE, 0},
+{ 218, 3239267288u, 291396537u, 3239267288u, 0u, 3213975131u, 3103784960u, 0, MODF_TOLERANCE, 0},
+{ 219, 3236968033u, 874125203u, 3236968032u, 0u, 3216196001u, 2033188864u, 0, MODF_TOLERANCE, 0},
+{ 220, 3210508124u, 4091098764u, 2147483648u, 0u, 3210508124u, 4091098764u, 0, MODF_TOLERANCE, 0},
+{ 221, 1065716026u, 120488169u, 0u, 0u, 1065716026u, 120488169u, 0, MODF_TOLERANCE, 0},
+{ 222, 3241241441u, 1985269424u, 3241241441u, 0u, 3218969907u, 2885681152u, 0, MODF_TOLERANCE, 0},
+{ 223, 3206539410u, 2243036871u, 2147483648u, 0u, 3206539410u, 2243036871u, 0, MODF_TOLERANCE, 0},
+{ 224, 3243941101u, 740033495u, 3243941101u, 0u, 3219525121u, 3951034368u, 0, MODF_TOLERANCE, 0},
+{ 225, 3209424906u, 1176656356u, 2147483648u, 0u, 3209424906u, 1176656356u, 0, MODF_TOLERANCE, 0},
+{ 226, 1074261978u, 3588756231u, 1073741824u, 0u, 1072676715u, 1470123036u, 0, MODF_TOLERANCE, 0},
+{ 227, 3252816791u, 3037249392u, 3252816791u, 3036676096u, 3218177760u, 0u, 0, MODF_TOLERANCE, 0},
+{ 228, 1061635587u, 1173102190u, 0u, 0u, 1061635587u, 1173102190u, 0, MODF_TOLERANCE, 0},
+{ 229, 3237209581u, 2882725208u, 3237209568u, 0u, 3219871653u, 3400531968u, 0, MODF_TOLERANCE, 0},
+{ 230, 1071440059u, 69225090u, 0u, 0u, 1071440059u, 69225090u, 0, MODF_TOLERANCE, 0},
+{ 231, 3212663474u, 272319256u, 2147483648u, 0u, 3212663474u, 272319256u, 0, MODF_TOLERANCE, 0},
+{ 232, 1072073912u, 2493997123u, 0u, 0u, 1072073912u, 2493997123u, 0, MODF_TOLERANCE, 0},
+{ 233, 1057720186u, 188610379u, 0u, 0u, 1057720186u, 188610379u, 0, MODF_TOLERANCE, 0},
+{ 234, 3232757923u, 2209647371u, 3232757760u, 0u, 3218370678u, 2439077888u, 0, MODF_TOLERANCE, 0},
+{ 235, 3236758517u, 1990439193u, 3236758496u, 0u, 3219486371u, 2971205632u, 0, MODF_TOLERANCE, 0},
+{ 236, 1078073146u, 622849962u, 1078067200u, 0u, 1070021157u, 535800320u, 0, MODF_TOLERANCE, 0},
+{ 237, 1057135741u, 756052458u, 0u, 0u, 1057135741u, 756052458u, 0, MODF_TOLERANCE, 0},
+{ 238, 1081649113u, 2247475162u, 1081647104u, 0u, 1071605271u, 3607062528u, 0, MODF_TOLERANCE, 0},
+{ 239, 1061623064u, 3878055211u, 0u, 0u, 1061623064u, 3878055211u, 0, MODF_TOLERANCE, 0},
+{ 240, 3222407050u, 2979438623u, 3222274048u, 0u, 3219143765u, 2360672504u, 0, MODF_TOLERANCE, 0},
+{ 241, 3195290997u, 2676398686u, 2147483648u, 0u, 3195290997u, 2676398686u, 0, MODF_TOLERANCE, 0},
+{ 242, 1105124431u, 3631096636u, 1105124431u, 3628072960u, 1072107934u, 0u, 0, MODF_TOLERANCE, 0},
+{ 243, 1065079390u, 1697791764u, 0u, 0u, 1065079390u, 1697791764u, 0, MODF_TOLERANCE, 0},
+{ 244, 3198136112u, 2299842819u, 2147483648u, 0u, 3198136112u, 2299842819u, 0, MODF_TOLERANCE, 0},
+{ 245, 1078084768u, 1931502677u, 1078067200u, 0u, 1071720476u, 3357087040u, 0, MODF_TOLERANCE, 0},
+{ 246, 3215264397u, 3016456382u, 2147483648u, 0u, 3215264397u, 3016456382u, 0, MODF_TOLERANCE, 0},
+{ 247, 1072253426u, 343404215u, 0u, 0u, 1072253426u, 343404215u, 0, MODF_TOLERANCE, 0},
+{ 248, 1061072607u, 4266232536u, 0u, 0u, 1061072607u, 4266232536u, 0, MODF_TOLERANCE, 0},
+{ 249, 3241230836u, 4140316002u, 3241230836u, 0u, 3220101382u, 2889875456u, 0, MODF_TOLERANCE, 0},
+{ 250, 1082896196u, 868256971u, 1082894336u, 0u, 1072500943u, 36908032u, 0, MODF_TOLERANCE, 0},
+{ 251, 1075422810u, 1864139509u, 1075314688u, 0u, 1071277478u, 4056428368u, 0, MODF_TOLERANCE, 0},
+{ 252, 3187675097u, 3084482407u, 2147483648u, 0u, 3187675097u, 3084482407u, 0, MODF_TOLERANCE, 0},
+{ 253, 3220191323u, 2427162817u, 3220176896u, 0u, 3213635016u, 1439195264u, 0, MODF_TOLERANCE, 0},
+{ 254, 3234748208u, 2715105792u, 3234748160u, 0u, 3218624746u, 2634022912u, 0, MODF_TOLERANCE, 0},
+{ 255, 1064600512u, 3943389284u, 0u, 0u, 1064600512u, 3943389284u, 0, MODF_TOLERANCE, 0},
+{ 256, 1046724025u, 3626825684u, 0u, 0u, 1046724025u, 3626825684u, 0, MODF_TOLERANCE, 0},
+{ 257, 1045423002u, 967350972u, 0u, 0u, 1045423002u, 967350972u, 0, MODF_TOLERANCE, 0},
+{ 258, 1093012318u, 448002663u, 1093012318u, 0u, 1068151802u, 1728053248u, 0, MODF_TOLERANCE, 0},
+{ 259, 3251845859u, 105058217u, 3251845859u, 104857600u, 3215490376u, 0u, 0, MODF_TOLERANCE, 0},
+{ 260, 1069733884u, 171786224u, 0u, 0u, 1069733884u, 171786224u, 0, MODF_TOLERANCE, 0},
+{ 261, 3189614508u, 2863482262u, 2147483648u, 0u, 3189614508u, 2863482262u, 0, MODF_TOLERANCE, 0},
+{ 262, 3204997271u, 877784425u, 2147483648u, 0u, 3204997271u, 877784425u, 0, MODF_TOLERANCE, 0},
+{ 263, 3202629313u, 2801782962u, 2147483648u, 0u, 3202629313u, 2801782962u, 0, MODF_TOLERANCE, 0},
+{ 264, 3213604117u, 762347195u, 2147483648u, 0u, 3213604117u, 762347195u, 0, MODF_TOLERANCE, 0},
+{ 265, 3233486727u, 2317950339u, 3233486592u, 0u, 3219190085u, 598761472u, 0, MODF_TOLERANCE, 0},
+{ 266, 3246333414u, 2135700283u, 3246333414u, 1879048192u, 3220084838u, 1979711488u, 0, MODF_TOLERANCE, 0},
+{ 267, 1056516397u, 4171919805u, 0u, 0u, 1056516397u, 4171919805u, 0, MODF_TOLERANCE, 0},
+{ 268, 1082858682u, 2180920863u, 1082857472u, 0u, 1071835655u, 4174937088u, 0, MODF_TOLERANCE, 0},
+{ 269, 3220149084u, 1918836931u, 2147483648u, 0u, 3220149084u, 1918836931u, 0, MODF_TOLERANCE, 0},
+{ 270, 1083603224u, 3137821660u, 1083602944u, 0u, 1070697392u, 1975369728u, 0, MODF_TOLERANCE, 0},
+{ 271, 1103902874u, 3456203663u, 1103902874u, 3456106496u, 1065859312u, 0u, 0, MODF_TOLERANCE, 0},
+{ 272, 3235600523u, 2335688936u, 3235600512u, 0u, 3217495663u, 2446327808u, 0, MODF_TOLERANCE, 0},
+{ 273, 1042279322u, 4170235262u, 0u, 0u, 1042279322u, 4170235262u, 0, MODF_TOLERANCE, 0},
+{ 274, 1051824459u, 521583737u, 0u, 0u, 1051824459u, 521583737u, 0, MODF_TOLERANCE, 0},
+{ 275, 1081348303u, 1296623194u, 1081348096u, 0u, 1068100009u, 483082240u, 0, MODF_TOLERANCE, 0},
+{ 276, 3250673860u, 2442872540u, 3250673860u, 2441084928u, 3217770204u, 0u, 0, MODF_TOLERANCE, 0},
+{ 277, 1061684277u, 289979405u, 0u, 0u, 1061684277u, 289979405u, 0, MODF_TOLERANCE, 0},
+{ 278, 1049514449u, 3865737145u, 0u, 0u, 1049514449u, 3865737145u, 0, MODF_TOLERANCE, 0},
+{ 279, 1075298944u, 3699090239u, 1075052544u, 0u, 1072567302u, 3822918136u, 0, MODF_TOLERANCE, 0},
+{ 280, 1054539840u, 3259249360u, 0u, 0u, 1054539840u, 3259249360u, 0, MODF_TOLERANCE, 0},
+{ 281, 1096418100u, 1619819023u, 1096418100u, 1073741824u, 1071662653u, 125829120u, 0, MODF_TOLERANCE, 0},
+{ 282, 1045993352u, 1022642459u, 0u, 0u, 1045993352u, 1022642459u, 0, MODF_TOLERANCE, 0},
+{ 283, 1081433004u, 19455098u, 1081430016u, 0u, 1072125954u, 1371075584u, 0, MODF_TOLERANCE, 0},
+{ 284, 3229182089u, 2096003654u, 3229179904u, 0u, 3219198713u, 3707014144u, 0, MODF_TOLERANCE, 0},
+{ 285, 1076297936u, 3803689997u, 1076232192u, 0u, 1071648014u, 729497808u, 0, MODF_TOLERANCE, 0},
+{ 286, 1071630912u, 2263729518u, 0u, 0u, 1071630912u, 2263729518u, 0, MODF_TOLERANCE, 0},
+{ 287, 1101357261u, 2816837387u, 1101357261u, 2785017856u, 1072584816u, 2952790016u, 0, MODF_TOLERANCE, 0},
+{ 288, 1063422305u, 2597606398u, 0u, 0u, 1063422305u, 2597606398u, 0, MODF_TOLERANCE, 0},
+{ 289, 1069100169u, 3680967506u, 0u, 0u, 1069100169u, 3680967506u, 0, MODF_TOLERANCE, 0},
+{ 290, 1040201163u, 179224723u, 0u, 0u, 1040201163u, 179224723u, 0, MODF_TOLERANCE, 0},
+{ 291, 3188629767u, 978126928u, 2147483648u, 0u, 3188629767u, 978126928u, 0, MODF_TOLERANCE, 0},
+{ 292, 1101553990u, 4047893399u, 1101553990u, 4026531840u, 1071931193u, 1879048192u, 0, MODF_TOLERANCE, 0},
+{ 293, 3222322045u, 4059818629u, 3222274048u, 0u, 3217518526u, 1065177248u, 0, MODF_TOLERANCE, 0},
+{ 294, 1042678728u, 3640293589u, 0u, 0u, 1042678728u, 3640293589u, 0, MODF_TOLERANCE, 0},
+{ 295, 3248464040u, 3383497159u, 3248464040u, 3355443200u, 3218784540u, 1879048192u, 0, MODF_TOLERANCE, 0},
+{ 296, 1070002807u, 1527313008u, 0u, 0u, 1070002807u, 1527313008u, 0, MODF_TOLERANCE, 0},
+{ 297, 3202707679u, 2599946514u, 2147483648u, 0u, 3202707679u, 2599946514u, 0, MODF_TOLERANCE, 0},
+{ 298, 1104170406u, 2738675352u, 1104170406u, 2734686208u, 1072590668u, 0u, 0, MODF_TOLERANCE, 0},
+{ 299, 1105232623u, 3616571377u, 1105232623u, 3615490048u, 1071677425u, 0u, 0, MODF_TOLERANCE, 0},
+{ 300, 1060859316u, 1130603218u, 0u, 0u, 1060859316u, 1130603218u, 0, MODF_TOLERANCE, 0},
+{ 301, 1076028796u, 3859211180u, 1075970048u, 0u, 1071427484u, 3235673472u, 0, MODF_TOLERANCE, 0},
+{ 302, 1067940450u, 1744531824u, 0u, 0u, 1067940450u, 1744531824u, 0, MODF_TOLERANCE, 0},
+{ 303, 1042831340u, 1958025850u, 0u, 0u, 1042831340u, 1958025850u, 0, MODF_TOLERANCE, 0},
+{ 304, 3236511256u, 2472176453u, 3236511232u, 0u, 3219690330u, 1799684096u, 0, MODF_TOLERANCE, 0},
+{ 305, 3233107089u, 182132862u, 3233106944u, 0u, 3219267931u, 1678753792u, 0, MODF_TOLERANCE, 0},
+{ 306, 3250520938u, 3924356991u, 3250520938u, 3909091328u, 3219987951u, 3758096384u, 0, MODF_TOLERANCE, 0},
+{ 307, 3230501884u, 35632886u, 3230500864u, 0u, 3219120144u, 4256673792u, 0, MODF_TOLERANCE, 0},
+{ 308, 3209806504u, 1453402523u, 2147483648u, 0u, 3209806504u, 1453402523u, 0, MODF_TOLERANCE, 0},
+{ 309, 1083522102u, 743225214u, 1083522048u, 0u, 1068176934u, 1539244032u, 0, MODF_TOLERANCE, 0},
+{ 310, 3202890678u, 142917400u, 2147483648u, 0u, 3202890678u, 142917400u, 0, MODF_TOLERANCE, 0},
+{ 311, 1080684976u, 1472665012u, 1080680448u, 0u, 1071755351u, 3340088320u, 0, MODF_TOLERANCE, 0},
+{ 312, 3203138231u, 256588219u, 2147483648u, 0u, 3203138231u, 256588219u, 0, MODF_TOLERANCE, 0},
+{ 313, 1094982162u, 1062927000u, 1094982162u, 0u, 1071623549u, 1275068416u, 0, MODF_TOLERANCE, 0},
+{ 314, 1061134072u, 931677439u, 0u, 0u, 1061134072u, 931677439u, 0, MODF_TOLERANCE, 0},
+{ 315, 1058377732u, 2320910576u, 0u, 0u, 1058377732u, 2320910576u, 0, MODF_TOLERANCE, 0},
+{ 316, 1055663370u, 288059864u, 0u, 0u, 1055663370u, 288059864u, 0, MODF_TOLERANCE, 0},
+{ 317, 1078958093u, 1448349062u, 1078951936u, 0u, 1070075222u, 1410172416u, 0, MODF_TOLERANCE, 0},
+{ 318, 3199478070u, 3454027134u, 2147483648u, 0u, 3199478070u, 3454027134u, 0, MODF_TOLERANCE, 0},
+{ 319, 3237458798u, 4215445172u, 3237458784u, 0u, 3220043397u, 761790464u, 0, MODF_TOLERANCE, 0},
+{ 320, 3196654963u, 2231888973u, 2147483648u, 0u, 3196654963u, 2231888973u, 0, MODF_TOLERANCE, 0},
+{ 321, 3246632231u, 40413554u, 3246632231u, 0u, 3218294091u, 2415919104u, 0, MODF_TOLERANCE, 0},
+{ 322, 3232578253u, 983832844u, 3232578048u, 0u, 3218712404u, 2200010752u, 0, MODF_TOLERANCE, 0},
+{ 323, 3223721534u, 3995725873u, 3223715840u, 0u, 3215343342u, 703607040u, 0, MODF_TOLERANCE, 0},
+{ 324, 1050082319u, 777231627u, 0u, 0u, 1050082319u, 777231627u, 0, MODF_TOLERANCE, 0},
+{ 325, 1040986626u, 672789828u, 0u, 0u, 1040986626u, 672789828u, 0, MODF_TOLERANCE, 0},
+{ 326, 3253385962u, 2982787335u, 3253385962u, 2982150144u, 3218305550u, 0u, 0, MODF_TOLERANCE, 0},
+{ 327, 1068390875u, 2075971825u, 0u, 0u, 1068390875u, 2075971825u, 0, MODF_TOLERANCE, 0},
+{ 328, 1070166500u, 4034633931u, 0u, 0u, 1070166500u, 4034633931u, 0, MODF_TOLERANCE, 0},
+{ 329, 3210046177u, 1018222907u, 2147483648u, 0u, 3210046177u, 1018222907u, 0, MODF_TOLERANCE, 0},
+{ 330, 3244621407u, 3090050495u, 3244621407u, 2684354560u, 3219664493u, 3204448256u, 0, MODF_TOLERANCE, 0},
+{ 331, 1067680885u, 937732557u, 0u, 0u, 1067680885u, 937732557u, 0, MODF_TOLERANCE, 0},
+{ 332, 3200798890u, 2557898276u, 2147483648u, 0u, 3200798890u, 2557898276u, 0, MODF_TOLERANCE, 0},
+{ 333, 1078342316u, 130346162u, 1078329344u, 0u, 1071207939u, 3799406848u, 0, MODF_TOLERANCE, 0},
+{ 334, 3223590310u, 275568693u, 3223584768u, 0u, 3215304208u, 1826108672u, 0, MODF_TOLERANCE, 0},
+{ 335, 1042898869u, 3807416441u, 0u, 0u, 1042898869u, 3807416441u, 0, MODF_TOLERANCE, 0},
+{ 336, 1075961161u, 3706820266u, 1075838976u, 0u, 1072551069u, 3474549408u, 0, MODF_TOLERANCE, 0},
+{ 337, 3216099005u, 1710131411u, 2147483648u, 0u, 3216099005u, 1710131411u, 0, MODF_TOLERANCE, 0},
+{ 338, 1078123323u, 1900790503u, 1078099968u, 0u, 1072090844u, 1391507904u, 0, MODF_TOLERANCE, 0},
+{ 339, 3238819361u, 3420420033u, 3238819360u, 0u, 3217866231u, 2081423360u, 0, MODF_TOLERANCE, 0},
+{ 340, 3210844787u, 588423066u, 2147483648u, 0u, 3210844787u, 588423066u, 0, MODF_TOLERANCE, 0},
+{ 341, 1049684114u, 1160162008u, 0u, 0u, 1049684114u, 1160162008u, 0, MODF_TOLERANCE, 0},
+{ 342, 3246307879u, 4265764460u, 3246307879u, 4026531840u, 3219948748u, 3623878656u, 0, MODF_TOLERANCE, 0},
+{ 343, 1102543434u, 366653268u, 1102543434u, 352321536u, 1072387562u, 2147483648u, 0, MODF_TOLERANCE, 0},
+{ 344, 3188814424u, 466059202u, 2147483648u, 0u, 3188814424u, 466059202u, 0, MODF_TOLERANCE, 0},
+{ 345, 3226627739u, 1325936170u, 3226615808u, 0u, 3219606951u, 2216105216u, 0, MODF_TOLERANCE, 0},
+{ 346, 3221436876u, 680097612u, 3221225472u, 0u, 3218722401u, 1145813600u, 0, MODF_TOLERANCE, 0},
+{ 347, 3240391116u, 1827735934u, 3240391116u, 0u, 3217767490u, 1602224128u, 0, MODF_TOLERANCE, 0},
+{ 348, 3200554324u, 2875599271u, 2147483648u, 0u, 3200554324u, 2875599271u, 0, MODF_TOLERANCE, 0},
+{ 349, 3191030402u, 3117037091u, 2147483648u, 0u, 3191030402u, 3117037091u, 0, MODF_TOLERANCE, 0},
+{ 350, 3239246636u, 15838845u, 3239246636u, 0u, 3209573839u, 2684354560u, 0, MODF_TOLERANCE, 0},
+{ 351, 1051974004u, 749718883u, 0u, 0u, 1051974004u, 749718883u, 0, MODF_TOLERANCE, 0},
+{ 352, 3223587064u, 1523766569u, 3223584768u, 0u, 3214012597u, 2779402752u, 0, MODF_TOLERANCE, 0},
+{ 353, 1044833651u, 1966536294u, 0u, 0u, 1044833651u, 1966536294u, 0, MODF_TOLERANCE, 0},
+{ 354, 3250158026u, 699164258u, 3250158026u, 687865856u, 3219492044u, 1073741824u, 0, MODF_TOLERANCE, 0},
+{ 355, 1098048435u, 3759049394u, 1098048435u, 3758096384u, 1064113508u, 0u, 0, MODF_TOLERANCE, 0},
+{ 356, 1106085272u, 1183789499u, 1106085272u, 1182793728u, 1071539062u, 0u, 0, MODF_TOLERANCE, 0},
+{ 357, 1081201623u, 1970107747u, 1081200640u, 0u, 1070513067u, 1806374912u, 0, MODF_TOLERANCE, 0},
+{ 358, 1095245453u, 2308233883u, 1095245453u, 2147483648u, 1068706229u, 905969664u, 0, MODF_TOLERANCE, 0},
+{ 359, 1084756444u, 1491017852u, 1084755968u, 0u, 1072547213u, 4060594176u, 0, MODF_TOLERANCE, 0},
+{ 360, 1041444355u, 1723375725u, 0u, 0u, 1041444355u, 1723375725u, 0, MODF_TOLERANCE, 0},
+{ 361, 3216630070u, 1141349287u, 2147483648u, 0u, 3216630070u, 1141349287u, 0, MODF_TOLERANCE, 0},
+{ 362, 1097465301u, 3403438584u, 1097465301u, 3221225472u, 1070971059u, 4026531840u, 0, MODF_TOLERANCE, 0},
+{ 363, 3230571908u, 1711085243u, 3230570496u, 0u, 3219526039u, 4099599360u, 0, MODF_TOLERANCE, 0},
+{ 364, 3250239076u, 1377484108u, 3250239076u, 1375731712u, 3216686412u, 0u, 0, MODF_TOLERANCE, 0},
+{ 365, 1098385019u, 2880275004u, 1098385019u, 2684354560u, 1072126724u, 2013265920u, 0, MODF_TOLERANCE, 0},
+{ 366, 1084039594u, 1611394950u, 1084039168u, 0u, 1071293952u, 3203948544u, 0, MODF_TOLERANCE, 0},
+{ 367, 3234221435u, 2626629370u, 3234221312u, 0u, 3220104995u, 3418259456u, 0, MODF_TOLERANCE, 0},
+{ 368, 1063771493u, 1499080813u, 0u, 0u, 1063771493u, 1499080813u, 0, MODF_TOLERANCE, 0},
+{ 369, 1055231263u, 3936262414u, 0u, 0u, 1055231263u, 3936262414u, 0, MODF_TOLERANCE, 0},
+{ 370, 1103919063u, 3175668759u, 1103919063u, 3170893824u, 1071789829u, 3221225472u, 0, MODF_TOLERANCE, 0},
+{ 371, 3207981719u, 1270950554u, 2147483648u, 0u, 3207981719u, 1270950554u, 0, MODF_TOLERANCE, 0},
+{ 372, 3194616071u, 3680565379u, 2147483648u, 0u, 3194616071u, 3680565379u, 0, MODF_TOLERANCE, 0},
+{ 373, 3208148223u, 1066985223u, 2147483648u, 0u, 3208148223u, 1066985223u, 0, MODF_TOLERANCE, 0},
+{ 374, 3221613219u, 4089383168u, 3221225472u, 0u, 3219630735u, 3472630784u, 0, MODF_TOLERANCE, 0},
+{ 375, 3217058839u, 4017329311u, 2147483648u, 0u, 3217058839u, 4017329311u, 0, MODF_TOLERANCE, 0},
+{ 376, 3208334452u, 1667591498u, 2147483648u, 0u, 3208334452u, 1667591498u, 0, MODF_TOLERANCE, 0},
+{ 377, 1088164157u, 3154656624u, 1088164096u, 0u, 1072619012u, 515375104u, 0, MODF_TOLERANCE, 0},
+{ 378, 1061894279u, 3886344038u, 0u, 0u, 1061894279u, 3886344038u, 0, MODF_TOLERANCE, 0},
+{ 379, 1050652945u, 977586119u, 0u, 0u, 1050652945u, 977586119u, 0, MODF_TOLERANCE, 0},
+{ 380, 3209762784u, 953839852u, 2147483648u, 0u, 3209762784u, 953839852u, 0, MODF_TOLERANCE, 0},
+{ 381, 1104965247u, 143071571u, 1104965247u, 142606336u, 1069311308u, 0u, 0, MODF_TOLERANCE, 0},
+{ 382, 3206165386u, 913097445u, 2147483648u, 0u, 3206165386u, 913097445u, 0, MODF_TOLERANCE, 0},
+{ 383, 3190565456u, 1371169579u, 2147483648u, 0u, 3190565456u, 1371169579u, 0, MODF_TOLERANCE, 0},
+{ 384, 1057079837u, 2594818628u, 0u, 0u, 1057079837u, 2594818628u, 0, MODF_TOLERANCE, 0},
+{ 385, 3251793336u, 2259342224u, 3251793336u, 2256535552u, 3219483080u, 0u, 0, MODF_TOLERANCE, 0},
+{ 386, 3217432469u, 1824221478u, 2147483648u, 0u, 3217432469u, 1824221478u, 0, MODF_TOLERANCE, 0},
+{ 387, 3246834775u, 1576604497u, 3246834775u, 1476395008u, 3219645517u, 1140850688u, 0, MODF_TOLERANCE, 0},
+{ 388, 1079368611u, 185078728u, 1079361536u, 0u, 1071358731u, 135514112u, 0, MODF_TOLERANCE, 0},
+{ 389, 3221679427u, 444800035u, 3221225472u, 0u, 3219895564u, 1779200140u, 0, MODF_TOLERANCE, 0},
+{ 390, 3243343143u, 1734989302u, 3243343143u, 1073741824u, 3219371242u, 4211081216u, 0, MODF_TOLERANCE, 0},
+{ 391, 1072748883u, 130452005u, 1072693248u, 0u, 1068182112u, 4174464160u, 0, MODF_TOLERANCE, 0},
+{ 392, 1041548088u, 2158433515u, 0u, 0u, 1041548088u, 2158433515u, 0, MODF_TOLERANCE, 0},
+{ 393, 3234695968u, 1941318385u, 3234695936u, 0u, 3218094555u, 360218624u, 0, MODF_TOLERANCE, 0},
+{ 394, 1045807374u, 792193370u, 0u, 0u, 1045807374u, 792193370u, 0, MODF_TOLERANCE, 0},
+{ 395, 3238299666u, 1299392207u, 3238299664u, 0u, 3218238361u, 913833984u, 0, MODF_TOLERANCE, 0},
+{ 396, 3212131720u, 3205732280u, 2147483648u, 0u, 3212131720u, 3205732280u, 0, MODF_TOLERANCE, 0},
+{ 397, 1098698804u, 3035093505u, 1098698804u, 2952790016u, 1070833512u, 67108864u, 0, MODF_TOLERANCE, 0},
+{ 398, 1052187689u, 3287702190u, 0u, 0u, 1052187689u, 3287702190u, 0, MODF_TOLERANCE, 0},
+{ 399, 3246676260u, 2160225215u, 3246676260u, 2147483648u, 3216526711u, 3758096384u, 0, MODF_TOLERANCE, 0},
+{ 400, 1102624859u, 836655570u, 1102624859u, 822083584u, 1072417594u, 1073741824u, 0, MODF_TOLERANCE, 0},
+{ 401, 1096723626u, 3360816360u, 1096723626u, 3221225472u, 1069589497u, 3489660928u, 0, MODF_TOLERANCE, 0},
+{ 402, 3246176356u, 172860634u, 3246176356u, 0u, 3219430217u, 3019898880u, 0, MODF_TOLERANCE, 0},
+{ 403, 1070995788u, 146831910u, 0u, 0u, 1070995788u, 146831910u, 0, MODF_TOLERANCE, 0},
+{ 404, 1051558014u, 2340722078u, 0u, 0u, 1051558014u, 2340722078u, 0, MODF_TOLERANCE, 0},
+{ 405, 3230416351u, 1603798153u, 3230414848u, 0u, 3219619198u, 1611801600u, 0, MODF_TOLERANCE, 0},
+{ 406, 3207725532u, 1099413093u, 2147483648u, 0u, 3207725532u, 1099413093u, 0, MODF_TOLERANCE, 0},
+{ 407, 3246678378u, 2429340443u, 3246678378u, 2415919104u, 3216611683u, 1610612736u, 0, MODF_TOLERANCE, 0},
+{ 408, 3190303581u, 3223770005u, 2147483648u, 0u, 3190303581u, 3223770005u, 0, MODF_TOLERANCE, 0},
+{ 409, 1075882959u, 955542166u, 1075838976u, 0u, 1070954983u, 512578240u, 0, MODF_TOLERANCE, 0},
+{ 410, 3230415151u, 275583938u, 3230414848u, 0u, 3217223942u, 3510378496u, 0, MODF_TOLERANCE, 0},
+{ 411, 1092971882u, 513397822u, 1092971882u, 0u, 1068407252u, 1040187392u, 0, MODF_TOLERANCE, 0},
+{ 412, 1090646554u, 2089321329u, 1090646552u, 0u, 1070851140u, 461897728u, 0, MODF_TOLERANCE, 0},
+{ 413, 3193169876u, 2782073372u, 2147483648u, 0u, 3193169876u, 2782073372u, 0, MODF_TOLERANCE, 0},
+{ 414, 1046063872u, 4023829068u, 0u, 0u, 1046063872u, 4023829068u, 0, MODF_TOLERANCE, 0},
+{ 415, 1098564822u, 3242223094u, 1098564822u, 3221225472u, 1068762719u, 1610612736u, 0, MODF_TOLERANCE, 0},
+{ 416, 3194111199u, 4264674108u, 2147483648u, 0u, 3194111199u, 4264674108u, 0, MODF_TOLERANCE, 0},
+{ 417, 3238510821u, 3506346169u, 3238510816u, 0u, 3219604474u, 1659109376u, 0, MODF_TOLERANCE, 0},
+{ 418, 1047020885u, 1742757458u, 0u, 0u, 1047020885u, 1742757458u, 0, MODF_TOLERANCE, 0},
+{ 419, 3192664477u, 1265459564u, 2147483648u, 0u, 3192664477u, 1265459564u, 0, MODF_TOLERANCE, 0},
+{ 420, 3193450280u, 3650514880u, 2147483648u, 0u, 3193450280u, 3650514880u, 0, MODF_TOLERANCE, 0},
+{ 421, 1081755890u, 1525260440u, 1081753600u, 0u, 1071768757u, 3544264704u, 0, MODF_TOLERANCE, 0},
+{ 422, 3235452527u, 2612331392u, 3235452480u, 0u, 3219639770u, 2176843776u, 0, MODF_TOLERANCE, 0},
+{ 423, 3248668920u, 1263613754u, 3248668920u, 1241513984u, 3219460979u, 2684354560u, 0, MODF_TOLERANCE, 0},
+{ 424, 3219096387u, 635677201u, 2147483648u, 0u, 3219096387u, 635677201u, 0, MODF_TOLERANCE, 0},
+{ 425, 3206272087u, 4140947288u, 2147483648u, 0u, 3206272087u, 4140947288u, 0, MODF_TOLERANCE, 0},
+{ 426, 3200792376u, 2013265346u, 2147483648u, 0u, 3200792376u, 2013265346u, 0, MODF_TOLERANCE, 0},
+{ 427, 3249974392u, 1912759945u, 3249974392u, 1912602624u, 3213046856u, 0u, 0, MODF_TOLERANCE, 0},
+{ 428, 3237045253u, 1351396825u, 3237045248u, 0u, 3218424370u, 3076784128u, 0, MODF_TOLERANCE, 0},
+{ 429, 3248205162u, 1001433078u, 3248205162u, 939524096u, 3220014399u, 2952790016u, 0, MODF_TOLERANCE, 0},
+{ 430, 3206926643u, 2741676659u, 2147483648u, 0u, 3206926643u, 2741676659u, 0, MODF_TOLERANCE, 0},
+{ 431, 1080923606u, 1088945233u, 1080918016u, 0u, 1072027200u, 3892072704u, 0, MODF_TOLERANCE, 0},
+{ 432, 1085095743u, 3986114865u, 1085095424u, 0u, 1071906521u, 1955794944u, 0, MODF_TOLERANCE, 0},
+{ 433, 3215734057u, 831239754u, 2147483648u, 0u, 3215734057u, 831239754u, 0, MODF_TOLERANCE, 0},
+{ 434, 1099828675u, 3071308141u, 1099828675u, 2952790016u, 1072447941u, 3019898880u, 0, MODF_TOLERANCE, 0},
+{ 435, 3225834497u, 3473592372u, 3225812992u, 0u, 3219456115u, 3266579712u, 0, MODF_TOLERANCE, 0},
+{ 436, 1102759382u, 1309576357u, 1102759382u, 1308622848u, 1068308810u, 0u, 0, MODF_TOLERANCE, 0},
+{ 437, 3251186706u, 2042340367u, 3251186706u, 2038431744u, 3218985479u, 2147483648u, 0, MODF_TOLERANCE, 0},
+{ 438, 1091945628u, 2062772374u, 1091945628u, 0u, 1069464794u, 629145600u, 0, MODF_TOLERANCE, 0},
+{ 439, 3194765687u, 1840632537u, 2147483648u, 0u, 3194765687u, 1840632537u, 0, MODF_TOLERANCE, 0},
+{ 440, 1096533424u, 807510337u, 1096533424u, 0u, 1072173264u, 2692743168u, 0, MODF_TOLERANCE, 0},
+{ 441, 3231451722u, 144814872u, 3231451136u, 0u, 3219279941u, 228114432u, 0, MODF_TOLERANCE, 0},
+{ 442, 3212698915u, 2282965697u, 2147483648u, 0u, 3212698915u, 2282965697u, 0, MODF_TOLERANCE, 0},
+{ 443, 1071236430u, 2552499583u, 0u, 0u, 1071236430u, 2552499583u, 0, MODF_TOLERANCE, 0},
+{ 444, 3229111426u, 1470130815u, 3229110272u, 0u, 3218213214u, 2175400960u, 0, MODF_TOLERANCE, 0},
+{ 445, 3243093065u, 2858583811u, 3243093065u, 2147483648u, 3218420035u, 2172649472u, 0, MODF_TOLERANCE, 0},
+{ 446, 1089760910u, 6360994u, 1089760896u, 0u, 1072431298u, 524550144u, 0, MODF_TOLERANCE, 0},
+{ 447, 3198264929u, 1614537194u, 2147483648u, 0u, 3198264929u, 1614537194u, 0, MODF_TOLERANCE, 0},
+{ 448, 1075198900u, 4088705365u, 1075052544u, 0u, 1071766951u, 2644871848u, 0, MODF_TOLERANCE, 0},
+{ 449, 3250939070u, 3545570051u, 3250939070u, 3539992576u, 3219474112u, 3221225472u, 0, MODF_TOLERANCE, 0},
+{ 450, 1065221325u, 1629217700u, 0u, 0u, 1065221325u, 1629217700u, 0, MODF_TOLERANCE, 0},
+{ 451, 1072744324u, 1813392963u, 1072693248u, 0u, 1068036237u, 2193999968u, 0, MODF_TOLERANCE, 0},
+{ 452, 3235313361u, 3772501596u, 3235313344u, 0u, 3218202843u, 3462135808u, 0, MODF_TOLERANCE, 0},
+{ 453, 3196802686u, 2406734491u, 2147483648u, 0u, 3196802686u, 2406734491u, 0, MODF_TOLERANCE, 0},
+{ 454, 1042055360u, 89226663u, 0u, 0u, 1042055360u, 89226663u, 0, MODF_TOLERANCE, 0},
+{ 455, 3195751081u, 1618759139u, 2147483648u, 0u, 3195751081u, 1618759139u, 0, MODF_TOLERANCE, 0},
+{ 456, 3194723421u, 3888234802u, 2147483648u, 0u, 3194723421u, 3888234802u, 0, MODF_TOLERANCE, 0},
+{ 457, 1055357248u, 3590035633u, 0u, 0u, 1055357248u, 3590035633u, 0, MODF_TOLERANCE, 0},
+{ 458, 3212424262u, 2892456615u, 2147483648u, 0u, 3212424262u, 2892456615u, 0, MODF_TOLERANCE, 0},
+{ 459, 3189943060u, 2431246964u, 2147483648u, 0u, 3189943060u, 2431246964u, 0, MODF_TOLERANCE, 0},
+{ 460, 3241512456u, 183850734u, 3241512456u, 0u, 3215321773u, 3690987520u, 0, MODF_TOLERANCE, 0},
+{ 461, 1089501101u, 3088319870u, 1089501088u, 0u, 1072394280u, 184287232u, 0, MODF_TOLERANCE, 0},
+{ 462, 3211544311u, 862225364u, 2147483648u, 0u, 3211544311u, 862225364u, 0, MODF_TOLERANCE, 0},
+{ 463, 3235294664u, 3495352775u, 3235294656u, 0u, 3217137837u, 3012427776u, 0, MODF_TOLERANCE, 0},
+{ 464, 1058576726u, 596957268u, 0u, 0u, 1058576726u, 596957268u, 0, MODF_TOLERANCE, 0},
+{ 465, 1046553348u, 1839214511u, 0u, 0u, 1046553348u, 1839214511u, 0, MODF_TOLERANCE, 0},
+{ 466, 3205004060u, 1923240983u, 2147483648u, 0u, 3205004060u, 1923240983u, 0, MODF_TOLERANCE, 0},
+{ 467, 1058073864u, 739619702u, 0u, 0u, 1058073864u, 739619702u, 0, MODF_TOLERANCE, 0},
+{ 468, 3223356436u, 2689885273u, 3223322624u, 0u, 3218113172u, 176982816u, 0, MODF_TOLERANCE, 0},
+{ 469, 3200324971u, 2143376228u, 2147483648u, 0u, 3200324971u, 2143376228u, 0, MODF_TOLERANCE, 0},
+{ 470, 1098306332u, 3760236188u, 1098306332u, 3758096384u, 1065374542u, 0u, 0, MODF_TOLERANCE, 0},
+{ 471, 1074621795u, 671680995u, 1074266112u, 0u, 1072018828u, 2686723980u, 0, MODF_TOLERANCE, 0},
+{ 472, 1091262633u, 2315535361u, 1091262632u, 0u, 1070112836u, 1074790400u, 0, MODF_TOLERANCE, 0},
+{ 473, 3214165989u, 2493598049u, 2147483648u, 0u, 3214165989u, 2493598049u, 0, MODF_TOLERANCE, 0},
+{ 474, 3194927008u, 1689107592u, 2147483648u, 0u, 3194927008u, 1689107592u, 0, MODF_TOLERANCE, 0},
+{ 475, 3189989959u, 1578976988u, 2147483648u, 0u, 3189989959u, 1578976988u, 0, MODF_TOLERANCE, 0},
+{ 476, 1066368383u, 2117279163u, 0u, 0u, 1066368383u, 2117279163u, 0, MODF_TOLERANCE, 0},
+{ 477, 3222988111u, 3425290087u, 3222798336u, 0u, 3219597950u, 1632516920u, 0, MODF_TOLERANCE, 0},
+{ 478, 1098487295u, 1263412017u, 1098487295u, 1073741824u, 1072077894u, 1644167168u, 0, MODF_TOLERANCE, 0},
+{ 479, 3208432764u, 3635396812u, 2147483648u, 0u, 3208432764u, 3635396812u, 0, MODF_TOLERANCE, 0},
+{ 480, 1070999426u, 3965655689u, 0u, 0u, 1070999426u, 3965655689u, 0, MODF_TOLERANCE, 0},
+{ 481, 1060196346u, 2183973116u, 0u, 0u, 1060196346u, 2183973116u, 0, MODF_TOLERANCE, 0},
+{ 482, 1101098363u, 1118613350u, 1101098363u, 1107296256u, 1070962156u, 3221225472u, 0, MODF_TOLERANCE, 0},
+{ 483, 3221946089u, 199516350u, 3221749760u, 0u, 3218601800u, 1596130800u, 0, MODF_TOLERANCE, 0},
+{ 484, 1078368488u, 164621458u, 1078362112u, 0u, 1070131209u, 3488387584u, 0, MODF_TOLERANCE, 0},
+{ 485, 3187706018u, 3570940805u, 2147483648u, 0u, 3187706018u, 3570940805u, 0, MODF_TOLERANCE, 0},
+{ 486, 3230316437u, 3596080877u, 3230314496u, 0u, 3220068185u, 1599845376u, 0, MODF_TOLERANCE, 0},
+{ 487, 3208209565u, 980880313u, 2147483648u, 0u, 3208209565u, 980880313u, 0, MODF_TOLERANCE, 0},
+{ 488, 1079833442u, 884465057u, 1079820288u, 0u, 1072279834u, 1542377600u, 0, MODF_TOLERANCE, 0},
+{ 489, 1099977124u, 2558179220u, 1099977124u, 2550136832u, 1069460965u, 0u, 0, MODF_TOLERANCE, 0},
+{ 490, 1052873711u, 1233598120u, 0u, 0u, 1052873711u, 1233598120u, 0, MODF_TOLERANCE, 0},
+{ 491, 1047115221u, 1909994277u, 0u, 0u, 1047115221u, 1909994277u, 0, MODF_TOLERANCE, 0},
+{ 492, 1085015978u, 2991527452u, 1085015552u, 0u, 1072343844u, 4049715200u, 0, MODF_TOLERANCE, 0},
+{ 493, 1060855260u, 1680290941u, 0u, 0u, 1060855260u, 1680290941u, 0, MODF_TOLERANCE, 0},
+{ 494, 1074309900u, 2943870846u, 1074266112u, 0u, 1068851605u, 4009553856u, 0, MODF_TOLERANCE, 0},
+{ 495, 1059496132u, 1451927357u, 0u, 0u, 1059496132u, 1451927357u, 0, MODF_TOLERANCE, 0},
+{ 496, 3228615456u, 1502585517u, 3228614656u, 0u, 3217621708u, 2098554880u, 0, MODF_TOLERANCE, 0},
+{ 497, 3236211951u, 751136990u, 3236211936u, 0u, 3219020170u, 3787194368u, 0, MODF_TOLERANCE, 0},
+{ 498, 3230392165u, 3493275472u, 3230390272u, 0u, 3220019008u, 3701293056u, 0, MODF_TOLERANCE, 0},
+{ 499, 1098365967u, 1209623292u, 1098365967u, 1073741824u, 1071657669u, 4160749568u, 0, MODF_TOLERANCE, 0},
+{ 500, 3238056647u, 979495322u, 3238056640u, 0u, 3219974535u, 2791833600u, 0, MODF_TOLERANCE, 0},
+{ 501, 3250424296u, 1717672108u, 3250424296u, 1711276032u, 3218630187u, 0u, 0, MODF_TOLERANCE, 0},
+{ 502, 1048120593u, 531240316u, 0u, 0u, 1048120593u, 531240316u, 0, MODF_TOLERANCE, 0},
+{ 503, 1054174923u, 3548721654u, 0u, 0u, 1054174923u, 3548721654u, 0, MODF_TOLERANCE, 0},
+{ 504, 1086112947u, 3391817224u, 1086112768u, 0u, 1072068933u, 1623261184u, 0, MODF_TOLERANCE, 0},
+{ 505, 1077836851u, 2758195125u, 1077805056u, 0u, 1071582441u, 430828864u, 0, MODF_TOLERANCE, 0},
+{ 506, 1100880260u, 2028440924u, 1100880260u, 2013265920u, 1070395819u, 2147483648u, 0, MODF_TOLERANCE, 0},
+{ 507, 1084223893u, 2750123373u, 1084223488u, 0u, 1071209022u, 3101085696u, 0, MODF_TOLERANCE, 0},
+{ 508, 3232200256u, 1086294931u, 3232200192u, 0u, 3217035311u, 3806642176u, 0, MODF_TOLERANCE, 0},
+{ 509, 1043958672u, 2986160931u, 0u, 0u, 1043958672u, 2986160931u, 0, MODF_TOLERANCE, 0},
+{ 510, 1076097908u, 2540046258u, 1075970048u, 0u, 1072641865u, 1986034464u, 0, MODF_TOLERANCE, 0},
+{ 511, 3235476602u, 451471221u, 3235476544u, 0u, 3219983732u, 1941602304u, 0, MODF_TOLERANCE, 0},
+{ 512, 1064816262u, 4187644495u, 0u, 0u, 1064816262u, 4187644495u, 0, MODF_TOLERANCE, 0},
+{ 513, 1099460228u, 2439500162u, 1099460228u, 2415919104u, 1069972760u, 536870912u, 0, MODF_TOLERANCE, 0},
+{ 514, 1065280276u, 1979490284u, 0u, 0u, 1065280276u, 1979490284u, 0, MODF_TOLERANCE, 0},
+{ 515, 1040415832u, 2283342035u, 0u, 0u, 1040415832u, 2283342035u, 0, MODF_TOLERANCE, 0},
+{ 516, 1078398157u, 1345997553u, 1078394880u, 0u, 1069128352u, 1955979776u, 0, MODF_TOLERANCE, 0},
+{ 517, 3213249348u, 179066662u, 2147483648u, 0u, 3213249348u, 179066662u, 0, MODF_TOLERANCE, 0},
+{ 518, 1103272172u, 1217337578u, 1103272172u, 1216348160u, 1069429204u, 0u, 0, MODF_TOLERANCE, 0},
+{ 519, 3211562377u, 3779303391u, 2147483648u, 0u, 3211562377u, 3779303391u, 0, MODF_TOLERANCE, 0},
+{ 520, 3210023352u, 3115946280u, 2147483648u, 0u, 3210023352u, 3115946280u, 0, MODF_TOLERANCE, 0},
+{ 521, 3192989874u, 286247089u, 2147483648u, 0u, 3192989874u, 286247089u, 0, MODF_TOLERANCE, 0},
+{ 522, 1085153597u, 713645369u, 1085153280u, 0u, 1071895208u, 2513670144u, 0, MODF_TOLERANCE, 0},
+{ 523, 1093670500u, 1468283899u, 1093670500u, 0u, 1070981390u, 4273995776u, 0, MODF_TOLERANCE, 0},
+{ 524, 1042831668u, 2022736418u, 0u, 0u, 1042831668u, 2022736418u, 0, MODF_TOLERANCE, 0},
+{ 525, 1083139105u, 3305564080u, 1083138048u, 0u, 1071679252u, 463388672u, 0, MODF_TOLERANCE, 0},
+{ 526, 1065483445u, 482392433u, 0u, 0u, 1065483445u, 482392433u, 0, MODF_TOLERANCE, 0},
+{ 527, 3201695807u, 2256346551u, 2147483648u, 0u, 3201695807u, 2256346551u, 0, MODF_TOLERANCE, 0},
+{ 528, 3222430705u, 2071674991u, 3222274048u, 0u, 3219333003u, 3688498040u, 0, MODF_TOLERANCE, 0},
+{ 529, 3204024695u, 2295269094u, 2147483648u, 0u, 3204024695u, 2295269094u, 0, MODF_TOLERANCE, 0},
+{ 530, 1084451053u, 2773103941u, 1084450816u, 0u, 1071494313u, 1185456128u, 0, MODF_TOLERANCE, 0},
+{ 531, 1078173946u, 1482721827u, 1078165504u, 0u, 1070628140u, 809832832u, 0, MODF_TOLERANCE, 0},
+{ 532, 1092243422u, 3125409590u, 1092243420u, 0u, 1072026191u, 3115319296u, 0, MODF_TOLERANCE, 0},
+{ 533, 3221065973u, 1381740563u, 3220176896u, 0u, 3219857898u, 2763481126u, 0, MODF_TOLERANCE, 0},
+{ 534, 1071545057u, 2918235653u, 0u, 0u, 1071545057u, 2918235653u, 0, MODF_TOLERANCE, 0},
+{ 535, 3238715972u, 1105857967u, 3238715968u, 0u, 3219195816u, 918290432u, 0, MODF_TOLERANCE, 0},
+{ 536, 3241990046u, 2703723225u, 3241990046u, 0u, 3219399921u, 1528823808u, 0, MODF_TOLERANCE, 0},
+{ 537, 1043015571u, 174689677u, 0u, 0u, 1043015571u, 174689677u, 0, MODF_TOLERANCE, 0},
+{ 538, 1079333374u, 3947057014u, 1079328768u, 0u, 1070726891u, 1129281024u, 0, MODF_TOLERANCE, 0},
+{ 539, 1090461859u, 2023082423u, 1090461856u, 0u, 1070318766u, 1303904256u, 0, MODF_TOLERANCE, 0},
+{ 540, 3242081486u, 1169047927u, 3242081486u, 0u, 3218172816u, 1572864000u, 0, MODF_TOLERANCE, 0},
+{ 541, 1064525899u, 3742487766u, 0u, 0u, 1064525899u, 3742487766u, 0, MODF_TOLERANCE, 0},
+{ 542, 1043425732u, 194972788u, 0u, 0u, 1043425732u, 194972788u, 0, MODF_TOLERANCE, 0},
+{ 543, 3213791827u, 2136071361u, 2147483648u, 0u, 3213791827u, 2136071361u, 0, MODF_TOLERANCE, 0},
+{ 544, 3211529757u, 993675115u, 2147483648u, 0u, 3211529757u, 993675115u, 0, MODF_TOLERANCE, 0},
+{ 545, 3213663381u, 210772141u, 2147483648u, 0u, 3213663381u, 210772141u, 0, MODF_TOLERANCE, 0},
+{ 546, 3241441539u, 580731413u, 3241441539u, 0u, 3217116833u, 176160768u, 0, MODF_TOLERANCE, 0},
+{ 547, 1093840413u, 1751560711u, 1093840413u, 0u, 1071258028u, 2176843776u, 0, MODF_TOLERANCE, 0},
+{ 548, 1074522705u, 180987057u, 1074266112u, 0u, 1071600264u, 1447896456u, 0, MODF_TOLERANCE, 0},
+{ 549, 1066754591u, 2552236599u, 0u, 0u, 1066754591u, 2552236599u, 0, MODF_TOLERANCE, 0},
+{ 550, 1088658621u, 2112468655u, 1088658592u, 0u, 1072528873u, 3064922112u, 0, MODF_TOLERANCE, 0},
+{ 551, 3189290617u, 1578223762u, 2147483648u, 0u, 3189290617u, 1578223762u, 0, MODF_TOLERANCE, 0},
+{ 552, 3224596567u, 2456166162u, 3224567808u, 0u, 3218871780u, 2575811712u, 0, MODF_TOLERANCE, 0},
+{ 553, 1058506965u, 2110924310u, 0u, 0u, 1058506965u, 2110924310u, 0, MODF_TOLERANCE, 0},
+{ 554, 1086207177u, 3161208323u, 1086206976u, 0u, 1072248717u, 2260754432u, 0, MODF_TOLERANCE, 0},
+{ 555, 3231863394u, 2352173188u, 3231863296u, 0u, 3217597196u, 3558932480u, 0, MODF_TOLERANCE, 0},
+{ 556, 1079361728u, 4070222179u, 1079361536u, 0u, 1065885267u, 1428971520u, 0, MODF_TOLERANCE, 0},
+{ 557, 1101012904u, 2481562701u, 1101012904u, 2449473536u, 1072601668u, 3489660928u, 0, MODF_TOLERANCE, 0},
+{ 558, 1090937016u, 3809489716u, 1090937016u, 0u, 1069310470u, 1719664640u, 0, MODF_TOLERANCE, 0},
+{ 559, 3197002651u, 330905705u, 2147483648u, 0u, 3197002651u, 330905705u, 0, MODF_TOLERANCE, 0},
+{ 560, 1086260896u, 90264431u, 1086260736u, 0u, 1071906988u, 711843840u, 0, MODF_TOLERANCE, 0},
+{ 561, 1040729961u, 4162008079u, 0u, 0u, 1040729961u, 4162008079u, 0, MODF_TOLERANCE, 0},
+{ 562, 3194387916u, 759522153u, 2147483648u, 0u, 3194387916u, 759522153u, 0, MODF_TOLERANCE, 0},
+{ 563, 1081015037u, 1839697482u, 1081008128u, 0u, 1072364909u, 2811120128u, 0, MODF_TOLERANCE, 0},
+{ 564, 3216442625u, 2211508949u, 2147483648u, 0u, 3216442625u, 2211508949u, 0, MODF_TOLERANCE, 0},
+{ 565, 3249807211u, 3736863454u, 3249807211u, 3724541952u, 3219619931u, 3221225472u, 0, MODF_TOLERANCE, 0},
+{ 566, 1063475914u, 3150741666u, 0u, 0u, 1063475914u, 3150741666u, 0, MODF_TOLERANCE, 0},
+{ 567, 1060785883u, 4200269406u, 0u, 0u, 1060785883u, 4200269406u, 0, MODF_TOLERANCE, 0},
+{ 568, 3236646101u, 1061812176u, 3236646080u, 0u, 3219472201u, 4157603840u, 0, MODF_TOLERANCE, 0},
+{ 569, 1080217979u, 106027290u, 1080213504u, 0u, 1071741702u, 1373182464u, 0, MODF_TOLERANCE, 0},
+{ 570, 3234978297u, 2245237549u, 3234978240u, 0u, 3219964649u, 3449192448u, 0, MODF_TOLERANCE, 0},
+{ 571, 3246984334u, 2132131375u, 3246984334u, 2013265920u, 3219937016u, 3154116608u, 0, MODF_TOLERANCE, 0},
+{ 572, 3250483427u, 3449276437u, 3250483427u, 3439329280u, 3219323138u, 2684354560u, 0, MODF_TOLERANCE, 0},
+{ 573, 1089388778u, 2334440944u, 1089388768u, 0u, 1070929481u, 2078277632u, 0, MODF_TOLERANCE, 0},
+{ 574, 1105423490u, 4004336184u, 1105423490u, 4003463168u, 1071293552u, 0u, 0, MODF_TOLERANCE, 0},
+{ 575, 3218772704u, 4090088208u, 2147483648u, 0u, 3218772704u, 4090088208u, 0, MODF_TOLERANCE, 0},
+{ 576, 1042030013u, 3898658299u, 0u, 0u, 1042030013u, 3898658299u, 0, MODF_TOLERANCE, 0},
+{ 577, 3207908064u, 2272831437u, 2147483648u, 0u, 3207908064u, 2272831437u, 0, MODF_TOLERANCE, 0},
+{ 578, 3253082595u, 2639188641u, 3253082595u, 2638217216u, 3218974018u, 0u, 0, MODF_TOLERANCE, 0},
+{ 579, 1054766684u, 1856594168u, 0u, 0u, 1054766684u, 1856594168u, 0, MODF_TOLERANCE, 0},
+{ 580, 3189515294u, 4101853676u, 2147483648u, 0u, 3189515294u, 4101853676u, 0, MODF_TOLERANCE, 0},
+{ 581, 1076012412u, 2211699255u, 1075970048u, 0u, 1070903184u, 2054899424u, 0, MODF_TOLERANCE, 0},
+{ 582, 3195060344u, 3865018604u, 2147483648u, 0u, 3195060344u, 3865018604u, 0, MODF_TOLERANCE, 0},
+{ 583, 3242767010u, 996259334u, 3242767010u, 0u, 3218976987u, 50331648u, 0, MODF_TOLERANCE, 0},
+{ 584, 3241496889u, 3782673116u, 3241496889u, 0u, 3219926752u, 1535115264u, 0, MODF_TOLERANCE, 0},
+{ 585, 1099130747u, 3840380763u, 1099130747u, 3758096384u, 1071881789u, 1811939328u, 0, MODF_TOLERANCE, 0},
+{ 586, 1048674041u, 550040067u, 0u, 0u, 1048674041u, 550040067u, 0, MODF_TOLERANCE, 0},
+{ 587, 3251419593u, 95874100u, 3251419593u, 92274688u, 3218830874u, 0u, 0, MODF_TOLERANCE, 0},
+{ 588, 3237232828u, 2645647822u, 3237232816u, 0u, 3219733346u, 3281780736u, 0, MODF_TOLERANCE, 0},
+{ 589, 1043665640u, 3441419500u, 0u, 0u, 1043665640u, 3441419500u, 0, MODF_TOLERANCE, 0},
+{ 590, 3252367038u, 876710419u, 3252367038u, 876609536u, 3214450992u, 0u, 0, MODF_TOLERANCE, 0},
+{ 591, 3238593552u, 2560836004u, 3238593552u, 0u, 3216184424u, 880803840u, 0, MODF_TOLERANCE, 0},
+{ 592, 3199616543u, 1180840586u, 2147483648u, 0u, 3199616543u, 1180840586u, 0, MODF_TOLERANCE, 0},
+{ 593, 3221602966u, 2218230392u, 3221225472u, 0u, 3219589722u, 282986976u, 0, MODF_TOLERANCE, 0},
+{ 594, 3227485787u, 3947214579u, 3227484160u, 0u, 3216601005u, 383503360u, 0, MODF_TOLERANCE, 0},
+{ 595, 1079539654u, 1447312532u, 1079525376u, 0u, 1072423723u, 572410368u, 0, MODF_TOLERANCE, 0},
+{ 596, 1081476588u, 780366847u, 1081475072u, 0u, 1071100090u, 231734272u, 0, MODF_TOLERANCE, 0},
+{ 597, 1072569643u, 2842113832u, 0u, 0u, 1072569643u, 2842113832u, 0, MODF_TOLERANCE, 0},
+{ 598, 3216156731u, 225159029u, 2147483648u, 0u, 3216156731u, 225159029u, 0, MODF_TOLERANCE, 0},
+{ 599, 1098117193u, 1601981129u, 1098117193u, 1342177280u, 1072625813u, 2449473536u, 0, MODF_TOLERANCE, 0},
+{ 600, 3234628869u, 2236538344u, 3234628864u, 0u, 3215332667u, 2006974464u, 0, MODF_TOLERANCE, 0},
+{ 601, 1085173524u, 2194185737u, 1085173248u, 0u, 1071728684u, 2313195520u, 0, MODF_TOLERANCE, 0},
+{ 602, 3242362684u, 87913366u, 3242362684u, 0u, 3215259086u, 1476395008u, 0, MODF_TOLERANCE, 0},
+{ 603, 3199083880u, 1346862963u, 2147483648u, 0u, 3199083880u, 1346862963u, 0, MODF_TOLERANCE, 0},
+{ 604, 1077836259u, 3604666660u, 1077805056u, 0u, 1071544565u, 3065399552u, 0, MODF_TOLERANCE, 0},
+{ 605, 3212255979u, 3115209742u, 2147483648u, 0u, 3212255979u, 3115209742u, 0, MODF_TOLERANCE, 0},
+{ 606, 1099332326u, 1325101950u, 1099332326u, 1207959552u, 1072426445u, 4160749568u, 0, MODF_TOLERANCE, 0},
+{ 607, 3224546042u, 3889223100u, 3224502272u, 0u, 3219480412u, 4196054912u, 0, MODF_TOLERANCE, 0},
+{ 608, 1053247613u, 3371396923u, 0u, 0u, 1053247613u, 3371396923u, 0, MODF_TOLERANCE, 0},
+{ 609, 3220477868u, 4163120793u, 3220176896u, 0u, 3218235059u, 3767581284u, 0, MODF_TOLERANCE, 0},
+{ 610, 1075022670u, 1387631215u, 1074790400u, 0u, 1072454258u, 2511115128u, 0, MODF_TOLERANCE, 0},
+{ 611, 3205481779u, 1532426189u, 2147483648u, 0u, 3205481779u, 1532426189u, 0, MODF_TOLERANCE, 0},
+{ 612, 1063168268u, 3397022615u, 0u, 0u, 1063168268u, 3397022615u, 0, MODF_TOLERANCE, 0},
+{ 613, 3201033321u, 89324166u, 2147483648u, 0u, 3201033321u, 89324166u, 0, MODF_TOLERANCE, 0},
+{ 614, 1079206060u, 3429424710u, 1079197696u, 0u, 1071666790u, 879698688u, 0, MODF_TOLERANCE, 0},
+{ 615, 3192325102u, 747591401u, 2147483648u, 0u, 3192325102u, 747591401u, 0, MODF_TOLERANCE, 0},
+{ 616, 1072238381u, 2803213904u, 0u, 0u, 1072238381u, 2803213904u, 0, MODF_TOLERANCE, 0},
+{ 617, 1091113780u, 271904221u, 1091113776u, 0u, 1071661267u, 3077832704u, 0, MODF_TOLERANCE, 0},
+{ 618, 1044258318u, 1858545114u, 0u, 0u, 1044258318u, 1858545114u, 0, MODF_TOLERANCE, 0},
+{ 619, 3228068914u, 314958082u, 3228065792u, 0u, 3218629669u, 2344748032u, 0, MODF_TOLERANCE, 0},
+{ 620, 3249912496u, 2966213175u, 3249912496u, 2952790016u, 3219757638u, 3758096384u, 0, MODF_TOLERANCE, 0},
+{ 621, 3197179414u, 3119528953u, 2147483648u, 0u, 3197179414u, 3119528953u, 0, MODF_TOLERANCE, 0},
+{ 622, 3217179014u, 2908718240u, 2147483648u, 0u, 3217179014u, 2908718240u, 0, MODF_TOLERANCE, 0},
+{ 623, 3242467576u, 2018361566u, 3242467576u, 0u, 3220050800u, 931135488u, 0, MODF_TOLERANCE, 0},
+{ 624, 1100926600u, 3985805054u, 1100926600u, 3959422976u, 1071196399u, 3758096384u, 0, MODF_TOLERANCE, 0},
+{ 625, 1070132580u, 409584884u, 0u, 0u, 1070132580u, 409584884u, 0, MODF_TOLERANCE, 0},
+{ 626, 3239758947u, 755795129u, 3239758944u, 0u, 3219744868u, 633864192u, 0, MODF_TOLERANCE, 0},
+{ 627, 1075772446u, 1819156379u, 1075576832u, 0u, 1072161011u, 1668349144u, 0, MODF_TOLERANCE, 0},
+{ 628, 3251342302u, 2982669005u, 3251342302u, 2977955840u, 3219258035u, 1073741824u, 0, MODF_TOLERANCE, 0},
+{ 629, 1101563433u, 2080534280u, 1101563433u, 2080374784u, 1064532032u, 0u, 0, MODF_TOLERANCE, 0},
+{ 630, 3188254060u, 449171797u, 2147483648u, 0u, 3188254060u, 449171797u, 0, MODF_TOLERANCE, 0},
+{ 631, 1095956900u, 168744837u, 1095956900u, 0u, 1069817263u, 167772160u, 0, MODF_TOLERANCE, 0},
+{ 632, 3214950009u, 1322217822u, 2147483648u, 0u, 3214950009u, 1322217822u, 0, MODF_TOLERANCE, 0},
+{ 633, 3254226900u, 3250487255u, 3254226900u, 3249537024u, 3219980206u, 0u, 0, MODF_TOLERANCE, 0},
+{ 634, 1062120700u, 1876195180u, 0u, 0u, 1062120700u, 1876195180u, 0, MODF_TOLERANCE, 0},
+{ 635, 3226343480u, 1336400247u, 3226337280u, 0u, 3217569871u, 2816046848u, 0, MODF_TOLERANCE, 0},
+{ 636, 1098057903u, 3314079581u, 1098057903u, 3221225472u, 1070998365u, 1946157056u, 0, MODF_TOLERANCE, 0},
+{ 637, 3203678820u, 265025555u, 2147483648u, 0u, 3203678820u, 265025555u, 0, MODF_TOLERANCE, 0},
+{ 638, 1063854282u, 3779482256u, 0u, 0u, 1063854282u, 3779482256u, 0, MODF_TOLERANCE, 0},
+{ 639, 1067300501u, 887044257u, 0u, 0u, 1067300501u, 887044257u, 0, MODF_TOLERANCE, 0},
+{ 640, 1054789618u, 2732056261u, 0u, 0u, 1054789618u, 2732056261u, 0, MODF_TOLERANCE, 0},
+{ 641, 1050106742u, 4027115185u, 0u, 0u, 1050106742u, 4027115185u, 0, MODF_TOLERANCE, 0},
+{ 642, 3191764868u, 2940199511u, 2147483648u, 0u, 3191764868u, 2940199511u, 0, MODF_TOLERANCE, 0},
+{ 643, 3202500155u, 2875684421u, 2147483648u, 0u, 3202500155u, 2875684421u, 0, MODF_TOLERANCE, 0},
+{ 644, 3227459837u, 2251967570u, 3227451392u, 0u, 3219160771u, 489040128u, 0, MODF_TOLERANCE, 0},
+{ 645, 1063244412u, 284173546u, 0u, 0u, 1063244412u, 284173546u, 0, MODF_TOLERANCE, 0},
+{ 646, 3238823679u, 3557800647u, 3238823672u, 0u, 3220131902u, 3944480768u, 0, MODF_TOLERANCE, 0},
+{ 647, 1101458560u, 3147771266u, 1101458560u, 3120562176u, 1072296664u, 536870912u, 0, MODF_TOLERANCE, 0},
+{ 648, 3220110464u, 2933364246u, 2147483648u, 0u, 3220110464u, 2933364246u, 0, MODF_TOLERANCE, 0},
+{ 649, 1064853160u, 3366183281u, 0u, 0u, 1064853160u, 3366183281u, 0, MODF_TOLERANCE, 0},
+{ 650, 3234870843u, 537442654u, 3234870784u, 0u, 3220017156u, 1554972672u, 0, MODF_TOLERANCE, 0},
+{ 651, 3244118788u, 2529029548u, 3244118788u, 2147483648u, 3218521581u, 2885681152u, 0, MODF_TOLERANCE, 0},
+{ 652, 3249882819u, 3781513577u, 3249882819u, 3774873600u, 3218691162u, 1073741824u, 0, MODF_TOLERANCE, 0},
+{ 653, 3213436354u, 1080845539u, 2147483648u, 0u, 3213436354u, 1080845539u, 0, MODF_TOLERANCE, 0},
+{ 654, 3206760016u, 911778687u, 2147483648u, 0u, 3206760016u, 911778687u, 0, MODF_TOLERANCE, 0},
+{ 655, 3191951036u, 469586759u, 2147483648u, 0u, 3191951036u, 469586759u, 0, MODF_TOLERANCE, 0},
+{ 656, 1091830022u, 3080528840u, 1091830020u, 0u, 1072020713u, 507510784u, 0, MODF_TOLERANCE, 0},
+{ 657, 1080249104u, 2863108169u, 1080246272u, 0u, 1070997845u, 1327534592u, 0, MODF_TOLERANCE, 0},
+{ 658, 3225605506u, 2508274250u, 3225583616u, 0u, 3219480741u, 1615762048u, 0, MODF_TOLERANCE, 0},
+{ 659, 3210826984u, 4080017377u, 2147483648u, 0u, 3210826984u, 4080017377u, 0, MODF_TOLERANCE, 0},
+{ 660, 3206492941u, 1470284690u, 2147483648u, 0u, 3206492941u, 1470284690u, 0, MODF_TOLERANCE, 0},
+{ 661, 3207120390u, 3867917386u, 2147483648u, 0u, 3207120390u, 3867917386u, 0, MODF_TOLERANCE, 0},
+{ 662, 1102054928u, 3504746045u, 1102054928u, 3489660928u, 1072481735u, 2684354560u, 0, MODF_TOLERANCE, 0},
+{ 663, 1064522279u, 2962134101u, 0u, 0u, 1064522279u, 2962134101u, 0, MODF_TOLERANCE, 0},
+{ 664, 3244741577u, 3390537350u, 3244741577u, 3221225472u, 3218353917u, 201326592u, 0, MODF_TOLERANCE, 0},
+{ 665, 1088201813u, 1702237980u, 1088201792u, 0u, 1070949750u, 387710976u, 0, MODF_TOLERANCE, 0},
+{ 666, 1071598971u, 1102587474u, 0u, 0u, 1071598971u, 1102587474u, 0, MODF_TOLERANCE, 0},
+{ 667, 3202970118u, 2180218657u, 2147483648u, 0u, 3202970118u, 2180218657u, 0, MODF_TOLERANCE, 0},
+{ 668, 3211592260u, 1206527853u, 2147483648u, 0u, 3211592260u, 1206527853u, 0, MODF_TOLERANCE, 0},
+{ 669, 3197084744u, 394130786u, 2147483648u, 0u, 3197084744u, 394130786u, 0, MODF_TOLERANCE, 0},
+{ 670, 3242511482u, 2437699868u, 3242511482u, 2147483648u, 3217116249u, 469762048u, 0, MODF_TOLERANCE, 0},
+{ 671, 1044237059u, 849581558u, 0u, 0u, 1044237059u, 849581558u, 0, MODF_TOLERANCE, 0},
+{ 672, 3252006507u, 2008614943u, 3252006507u, 2004877312u, 3219948559u, 2147483648u, 0, MODF_TOLERANCE, 0},
+{ 673, 3210140014u, 3128971673u, 2147483648u, 0u, 3210140014u, 3128971673u, 0, MODF_TOLERANCE, 0},
+{ 674, 3249137531u, 2773583059u, 3249137531u, 2751463424u, 3219462221u, 805306368u, 0, MODF_TOLERANCE, 0},
+{ 675, 1085029866u, 590727700u, 1085029376u, 0u, 1072603699u, 1554071552u, 0, MODF_TOLERANCE, 0},
+{ 676, 3248651761u, 2183878539u, 3248651761u, 2181038080u, 3216354245u, 2147483648u, 0, MODF_TOLERANCE, 0},
+{ 677, 1101098629u, 820687580u, 1101098629u, 805306368u, 1071470171u, 2147483648u, 0, MODF_TOLERANCE, 0},
+{ 678, 3208143496u, 1402434664u, 2147483648u, 0u, 3208143496u, 1402434664u, 0, MODF_TOLERANCE, 0},
+{ 679, 3252290835u, 1873709254u, 3252290835u, 1870659584u, 3219604579u, 0u, 0, MODF_TOLERANCE, 0},
+{ 680, 3245167989u, 44275991u, 3245167989u, 0u, 3216317640u, 3087007744u, 0, MODF_TOLERANCE, 0},
+{ 681, 3189668753u, 1174874204u, 2147483648u, 0u, 3189668753u, 1174874204u, 0, MODF_TOLERANCE, 0},
+{ 682, 3208263730u, 2360372288u, 2147483648u, 0u, 3208263730u, 2360372288u, 0, MODF_TOLERANCE, 0},
+{ 683, 1103854676u, 937573440u, 1103854676u, 931135488u, 1072205584u, 0u, 0, MODF_TOLERANCE, 0},
+{ 684, 3208953761u, 211240241u, 2147483648u, 0u, 3208953761u, 211240241u, 0, MODF_TOLERANCE, 0},
+{ 685, 3243548934u, 2469774991u, 3243548934u, 2147483648u, 3218290118u, 2399141888u, 0, MODF_TOLERANCE, 0},
+{ 686, 1043117070u, 3380071805u, 0u, 0u, 1043117070u, 3380071805u, 0, MODF_TOLERANCE, 0},
+{ 687, 1058121042u, 442507560u, 0u, 0u, 1058121042u, 442507560u, 0, MODF_TOLERANCE, 0},
+{ 688, 3254252803u, 3257889649u, 3254252803u, 3256877056u, 3220104930u, 0u, 0, MODF_TOLERANCE, 0},
+{ 689, 1068850520u, 1854921625u, 0u, 0u, 1068850520u, 1854921625u, 0, MODF_TOLERANCE, 0},
+{ 690, 1049810168u, 2729627545u, 0u, 0u, 1049810168u, 2729627545u, 0, MODF_TOLERANCE, 0},
+{ 691, 3254712629u, 4001809575u, 3254712629u, 4001366016u, 3218805404u, 0u, 0, MODF_TOLERANCE, 0},
+{ 692, 3240128649u, 278261523u, 3240128648u, 0u, 3219196254u, 4046454784u, 0, MODF_TOLERANCE, 0},
+{ 693, 1087224694u, 1793907966u, 1087224576u, 0u, 1072536251u, 926908416u, 0, MODF_TOLERANCE, 0},
+{ 694, 3238955714u, 398859249u, 3238955712u, 0u, 3218128432u, 3750232064u, 0, MODF_TOLERANCE, 0},
+{ 695, 3200952547u, 2511916952u, 2147483648u, 0u, 3200952547u, 2511916952u, 0, MODF_TOLERANCE, 0},
+{ 696, 3219195283u, 1697158299u, 2147483648u, 0u, 3219195283u, 1697158299u, 0, MODF_TOLERANCE, 0},
+{ 697, 1069985548u, 3230931724u, 0u, 0u, 1069985548u, 3230931724u, 0, MODF_TOLERANCE, 0},
+{ 698, 3243897690u, 3508781585u, 3243897690u, 3221225472u, 3218154434u, 285212672u, 0, MODF_TOLERANCE, 0},
+{ 699, 1103847606u, 1674254897u, 1103847606u, 1669332992u, 1071826572u, 1073741824u, 0, MODF_TOLERANCE, 0},
+{ 700, 1046547577u, 217148561u, 0u, 0u, 1046547577u, 217148561u, 0, MODF_TOLERANCE, 0},
+{ 701, 3211263954u, 3275604304u, 2147483648u, 0u, 3211263954u, 3275604304u, 0, MODF_TOLERANCE, 0},
+{ 702, 3194840159u, 2991205850u, 2147483648u, 0u, 3194840159u, 2991205850u, 0, MODF_TOLERANCE, 0},
+{ 703, 3195249375u, 3509997278u, 2147483648u, 0u, 3195249375u, 3509997278u, 0, MODF_TOLERANCE, 0},
+{ 704, 3248888030u, 3897986511u, 3248888030u, 3892314112u, 3217400691u, 3221225472u, 0, MODF_TOLERANCE, 0},
+{ 705, 1047182435u, 2156824613u, 0u, 0u, 1047182435u, 2156824613u, 0, MODF_TOLERANCE, 0},
+{ 706, 1042295665u, 1239257646u, 0u, 0u, 1042295665u, 1239257646u, 0, MODF_TOLERANCE, 0},
+{ 707, 3213264085u, 1073153314u, 2147483648u, 0u, 3213264085u, 1073153314u, 0, MODF_TOLERANCE, 0},
+{ 708, 3250031627u, 2567234990u, 3250031627u, 2566914048u, 3214120632u, 0u, 0, MODF_TOLERANCE, 0},
+{ 709, 3190593412u, 4261696995u, 2147483648u, 0u, 3190593412u, 4261696995u, 0, MODF_TOLERANCE, 0},
+{ 710, 3197784432u, 323702024u, 2147483648u, 0u, 3197784432u, 323702024u, 0, MODF_TOLERANCE, 0},
+{ 711, 3243690997u, 4075177615u, 3243690997u, 3221225472u, 3219747619u, 1199570944u, 0, MODF_TOLERANCE, 0},
+{ 712, 3202791065u, 1919006082u, 2147483648u, 0u, 3202791065u, 1919006082u, 0, MODF_TOLERANCE, 0},
+{ 713, 3239270013u, 386429966u, 3239270012u, 0u, 3218174087u, 1088421888u, 0, MODF_TOLERANCE, 0},
+{ 714, 1086504491u, 3698826164u, 1086504448u, 0u, 1070984763u, 3453616128u, 0, MODF_TOLERANCE, 0},
+{ 715, 1078327190u, 1681986446u, 1078296576u, 0u, 1072555417u, 272950144u, 0, MODF_TOLERANCE, 0},
+{ 716, 3194985869u, 3072950140u, 2147483648u, 0u, 3194985869u, 3072950140u, 0, MODF_TOLERANCE, 0},
+{ 717, 3217311933u, 3719038997u, 2147483648u, 0u, 3217311933u, 3719038997u, 0, MODF_TOLERANCE, 0},
+{ 718, 1055433962u, 3331415058u, 0u, 0u, 1055433962u, 3331415058u, 0, MODF_TOLERANCE, 0},
+{ 719, 1060749713u, 2420250111u, 0u, 0u, 1060749713u, 2420250111u, 0, MODF_TOLERANCE, 0},
+{ 720, 3238002206u, 1928661079u, 3238002192u, 0u, 3219973610u, 279838720u, 0, MODF_TOLERANCE, 0},
+{ 721, 1081914210u, 3679866727u, 1081913344u, 0u, 1070274266u, 2994419712u, 0, MODF_TOLERANCE, 0},
+{ 722, 3227386672u, 1273835792u, 3227385856u, 0u, 3215557215u, 1770553344u, 0, MODF_TOLERANCE, 0},
+{ 723, 1041622738u, 2682092368u, 0u, 0u, 1041622738u, 2682092368u, 0, MODF_TOLERANCE, 0},
+{ 724, 3234222284u, 1325425811u, 3234222208u, 0u, 3219329984u, 421838848u, 0, MODF_TOLERANCE, 0},
+{ 725, 1056312613u, 4175172697u, 0u, 0u, 1056312613u, 4175172697u, 0, MODF_TOLERANCE, 0},
+{ 726, 3208346191u, 2130706153u, 2147483648u, 0u, 3208346191u, 2130706153u, 0, MODF_TOLERANCE, 0},
+{ 727, 1092089624u, 1200784450u, 1092089624u, 0u, 1068623009u, 276824064u, 0, MODF_TOLERANCE, 0},
+{ 728, 1083605096u, 1248595607u, 1083604992u, 0u, 1069159067u, 61194240u, 0, MODF_TOLERANCE, 0},
+{ 729, 3213890863u, 1897285171u, 2147483648u, 0u, 3213890863u, 1897285171u, 0, MODF_TOLERANCE, 0},
+{ 730, 3251296075u, 944966123u, 3251296075u, 939524096u, 3219440250u, 3221225472u, 0, MODF_TOLERANCE, 0},
+{ 731, 3241371250u, 2270747330u, 3241371250u, 0u, 3219188507u, 1480589312u, 0, MODF_TOLERANCE, 0},
+{ 732, 3230692631u, 422503284u, 3230692352u, 0u, 3218174354u, 3996598272u, 0, MODF_TOLERANCE, 0},
+{ 733, 1084120037u, 2857564741u, 1084119040u, 0u, 1072639314u, 2547132416u, 0, MODF_TOLERANCE, 0},
+{ 734, 1075647403u, 3308906709u, 1075576832u, 0u, 1070676668u, 1402899792u, 0, MODF_TOLERANCE, 0},
+{ 735, 3203475098u, 1380066948u, 2147483648u, 0u, 3203475098u, 1380066948u, 0, MODF_TOLERANCE, 0},
+{ 736, 3232612906u, 2613634294u, 3232612864u, 0u, 3216330212u, 1920663552u, 0, MODF_TOLERANCE, 0},
+{ 737, 1063890856u, 4022784584u, 0u, 0u, 1063890856u, 4022784584u, 0, MODF_TOLERANCE, 0},
+{ 738, 1060483857u, 3264056381u, 0u, 0u, 1060483857u, 3264056381u, 0, MODF_TOLERANCE, 0},
+{ 739, 1044637404u, 1778509100u, 0u, 0u, 1044637404u, 1778509100u, 0, MODF_TOLERANCE, 0},
+{ 740, 3213146285u, 2665833973u, 2147483648u, 0u, 3213146285u, 2665833973u, 0, MODF_TOLERANCE, 0},
+{ 741, 3216727300u, 1859175955u, 2147483648u, 0u, 3216727300u, 1859175955u, 0, MODF_TOLERANCE, 0},
+{ 742, 1079949560u, 4258450607u, 1079934976u, 0u, 1072462974u, 3915798400u, 0, MODF_TOLERANCE, 0},
+{ 743, 1048277388u, 4128020197u, 0u, 0u, 1048277388u, 4128020197u, 0, MODF_TOLERANCE, 0},
+{ 744, 1076266146u, 4122840980u, 1076232192u, 0u, 1070634078u, 3081892480u, 0, MODF_TOLERANCE, 0},
+{ 745, 3193183163u, 2454653987u, 2147483648u, 0u, 3193183163u, 2454653987u, 0, MODF_TOLERANCE, 0},
+{ 746, 3229487005u, 2977478685u, 3229483008u, 0u, 3220126562u, 4050663936u, 0, MODF_TOLERANCE, 0},
+{ 747, 3253556483u, 1355181872u, 3253556483u, 1354760192u, 3217669312u, 0u, 0, MODF_TOLERANCE, 0},
+{ 748, 1095308770u, 436846481u, 1095308770u, 0u, 1070205375u, 2432696320u, 0, MODF_TOLERANCE, 0},
+{ 749, 3246605302u, 2592856453u, 3246605302u, 2550136832u, 3218366156u, 671088640u, 0, MODF_TOLERANCE, 0},
+{ 750, 3247825559u, 3195234082u, 3247825559u, 3154116608u, 3219364665u, 268435456u, 0, MODF_TOLERANCE, 0},
+{ 751, 3222118023u, 3554670043u, 3221749760u, 0u, 3219552799u, 1333778284u, 0, MODF_TOLERANCE, 0},
+{ 752, 1091621009u, 3321236467u, 1091621008u, 0u, 1071406944u, 3207593984u, 0, MODF_TOLERANCE, 0},
+{ 753, 1069012833u, 1936670355u, 0u, 0u, 1069012833u, 1936670355u, 0, MODF_TOLERANCE, 0},
+{ 754, 1095715713u, 2958468553u, 1095715713u, 2147483648u, 1071131474u, 3833593856u, 0, MODF_TOLERANCE, 0},
+{ 755, 3192291109u, 2960339502u, 2147483648u, 0u, 3192291109u, 2960339502u, 0, MODF_TOLERANCE, 0},
+{ 756, 1098808013u, 1044068983u, 1098808013u, 805306368u, 1072461428u, 3992977408u, 0, MODF_TOLERANCE, 0},
+{ 757, 3196691185u, 4093388677u, 2147483648u, 0u, 3196691185u, 4093388677u, 0, MODF_TOLERANCE, 0},
+{ 758, 1095478112u, 1735930261u, 1095478112u, 0u, 1072291340u, 1698693120u, 0, MODF_TOLERANCE, 0},
+{ 759, 1091040302u, 1807398746u, 1091040296u, 0u, 1072279274u, 3714580480u, 0, MODF_TOLERANCE, 0},
+{ 760, 3195743135u, 4261616162u, 2147483648u, 0u, 3195743135u, 4261616162u, 0, MODF_TOLERANCE, 0},
+{ 761, 3209294194u, 3250576797u, 2147483648u, 0u, 3209294194u, 3250576797u, 0, MODF_TOLERANCE, 0},
+{ 762, 1059002384u, 3043079652u, 0u, 0u, 1059002384u, 3043079652u, 0, MODF_TOLERANCE, 0},
+{ 763, 1069207109u, 666051428u, 0u, 0u, 1069207109u, 666051428u, 0, MODF_TOLERANCE, 0},
+{ 764, 3208765404u, 1912684117u, 2147483648u, 0u, 3208765404u, 1912684117u, 0, MODF_TOLERANCE, 0},
+{ 765, 1103487420u, 1949030179u, 1103487420u, 1946157056u, 1070984081u, 2147483648u, 0, MODF_TOLERANCE, 0},
+{ 766, 1096388934u, 896459246u, 1096388934u, 0u, 1072346992u, 4143972352u, 0, MODF_TOLERANCE, 0},
+{ 767, 1054300653u, 622499767u, 0u, 0u, 1054300653u, 622499767u, 0, MODF_TOLERANCE, 0},
+{ 768, 1066707637u, 1490260486u, 0u, 0u, 1066707637u, 1490260486u, 0, MODF_TOLERANCE, 0},
+{ 769, 1106688493u, 1490616165u, 1106688493u, 1490026496u, 1071775434u, 0u, 0, MODF_TOLERANCE, 0},
+{ 770, 3251242436u, 795675736u, 3251242436u, 788529152u, 3219866390u, 0u, 0, MODF_TOLERANCE, 0},
+{ 771, 1080943896u, 3662877092u, 1080942592u, 0u, 1069835113u, 1279692800u, 0, MODF_TOLERANCE, 0},
+{ 772, 3234317146u, 3200513112u, 3234317056u, 0u, 3219566512u, 4246077440u, 0, MODF_TOLERANCE, 0},
+{ 773, 1084088786u, 1356101968u, 1084088320u, 0u, 1071457549u, 1200947200u, 0, MODF_TOLERANCE, 0},
+{ 774, 3236536816u, 3062844611u, 3236536800u, 0u, 3219175055u, 1287847936u, 0, MODF_TOLERANCE, 0},
+{ 775, 3219922640u, 2284484846u, 2147483648u, 0u, 3219922640u, 2284484846u, 0, MODF_TOLERANCE, 0},
+{ 776, 3219498359u, 3240896015u, 2147483648u, 0u, 3219498359u, 3240896015u, 0, MODF_TOLERANCE, 0},
+{ 777, 3235759689u, 494503287u, 3235759680u, 0u, 3217177331u, 183369728u, 0, MODF_TOLERANCE, 0},
+{ 778, 1092811254u, 142673998u, 1092811254u, 0u, 1066467856u, 2617245696u, 0, MODF_TOLERANCE, 0},
+{ 779, 3252125916u, 3394882641u, 3252125916u, 3393191936u, 3218721873u, 0u, 0, MODF_TOLERANCE, 0},
+{ 780, 3225306538u, 364852125u, 3225288704u, 0u, 3218172549u, 1875699520u, 0, MODF_TOLERANCE, 0},
+{ 781, 3225261763u, 193885269u, 3225223168u, 0u, 3219314785u, 1909361312u, 0, MODF_TOLERANCE, 0},
+{ 782, 1088149839u, 1359805831u, 1088149824u, 0u, 1070506521u, 4211998720u, 0, MODF_TOLERANCE, 0},
+{ 783, 3200484782u, 592580907u, 2147483648u, 0u, 3200484782u, 592580907u, 0, MODF_TOLERANCE, 0},
+{ 784, 3199560872u, 3086438952u, 2147483648u, 0u, 3199560872u, 3086438952u, 0, MODF_TOLERANCE, 0},
+{ 785, 1059518664u, 1778008540u, 0u, 0u, 1059518664u, 1778008540u, 0, MODF_TOLERANCE, 0},
+{ 786, 1049064687u, 73581647u, 0u, 0u, 1049064687u, 73581647u, 0, MODF_TOLERANCE, 0},
+{ 787, 3246733598u, 233240285u, 3246733598u, 134217728u, 3219626971u, 1946157056u, 0, MODF_TOLERANCE, 0},
+{ 788, 1081923320u, 2710903921u, 1081921536u, 0u, 1071374982u, 1416741888u, 0, MODF_TOLERANCE, 0},
+{ 789, 1069513767u, 3719878805u, 0u, 0u, 1069513767u, 3719878805u, 0, MODF_TOLERANCE, 0},
+{ 790, 1079866720u, 3615458228u, 1079853056u, 0u, 1072345195u, 3217152512u, 0, MODF_TOLERANCE, 0},
+{ 791, 3221194724u, 3647632375u, 3220176896u, 0u, 3220115401u, 3000297454u, 0, MODF_TOLERANCE, 0},
+{ 792, 3247225271u, 3839959621u, 3247225271u, 3758096384u, 3219358857u, 335544320u, 0, MODF_TOLERANCE, 0},
+{ 793, 1103401096u, 2232210456u, 1103401096u, 2231369728u, 1069131824u, 0u, 0, MODF_TOLERANCE, 0},
+{ 794, 3235434773u, 224271737u, 3235434752u, 0u, 3218410846u, 494469120u, 0, MODF_TOLERANCE, 0},
+{ 795, 3193003684u, 2134662911u, 2147483648u, 0u, 3193003684u, 2134662911u, 0, MODF_TOLERANCE, 0},
+{ 796, 3190390590u, 4239009051u, 2147483648u, 0u, 3190390590u, 4239009051u, 0, MODF_TOLERANCE, 0},
+{ 797, 1080526145u, 2305279897u, 1080524800u, 0u, 1069876773u, 2669569024u, 0, MODF_TOLERANCE, 0},
+{ 798, 1077668039u, 1854523320u, 1077608448u, 0u, 1072503021u, 3510171392u, 0, MODF_TOLERANCE, 0},
+{ 799, 3219864259u, 538224650u, 2147483648u, 0u, 3219864259u, 538224650u, 0, MODF_TOLERANCE, 0},
+{ 800, 3206153057u, 1379649610u, 2147483648u, 0u, 3206153057u, 1379649610u, 0, MODF_TOLERANCE, 0},
+{ 801, 3196410507u, 3683897920u, 2147483648u, 0u, 3196410507u, 3683897920u, 0, MODF_TOLERANCE, 0},
+{ 802, 3244167599u, 3647579469u, 3244167599u, 3221225472u, 3218696613u, 1291845632u, 0, MODF_TOLERANCE, 0},
+{ 803, 1090280933u, 2694093608u, 1090280928u, 0u, 1071022674u, 1822425088u, 0, MODF_TOLERANCE, 0},
+{ 804, 1042775347u, 598406111u, 0u, 0u, 1042775347u, 598406111u, 0, MODF_TOLERANCE, 0},
+{ 805, 3211635392u, 872706833u, 2147483648u, 0u, 3211635392u, 872706833u, 0, MODF_TOLERANCE, 0},
+{ 806, 1084802480u, 2200602798u, 1084802048u, 0u, 1072367666u, 2827673600u, 0, MODF_TOLERANCE, 0},
+{ 807, 1042339597u, 904146293u, 0u, 0u, 1042339597u, 904146293u, 0, MODF_TOLERANCE, 0},
+{ 808, 1060867322u, 1729685598u, 0u, 0u, 1060867322u, 1729685598u, 0, MODF_TOLERANCE, 0},
+{ 809, 3195694970u, 1894173462u, 2147483648u, 0u, 3195694970u, 1894173462u, 0, MODF_TOLERANCE, 0},
+{ 810, 3232800651u, 191960416u, 3232800512u, 0u, 3219218798u, 581697536u, 0, MODF_TOLERANCE, 0},
+{ 811, 1091225343u, 3521028551u, 1091225336u, 0u, 1072646010u, 2266759168u, 0, MODF_TOLERANCE, 0},
+{ 812, 1054522089u, 3287274359u, 0u, 0u, 1054522089u, 3287274359u, 0, MODF_TOLERANCE, 0},
+{ 813, 1095386964u, 959640601u, 1095386964u, 0u, 1071421818u, 209715200u, 0, MODF_TOLERANCE, 0},
+{ 814, 3201578263u, 4136915018u, 2147483648u, 0u, 3201578263u, 4136915018u, 0, MODF_TOLERANCE, 0},
+{ 815, 1064005451u, 1553716379u, 0u, 0u, 1064005451u, 1553716379u, 0, MODF_TOLERANCE, 0},
+{ 816, 1106027987u, 984725765u, 1106027987u, 983564288u, 1071757573u, 0u, 0, MODF_TOLERANCE, 0},
+{ 817, 3238832641u, 2287646644u, 3238832640u, 0u, 3217589675u, 2067791872u, 0, MODF_TOLERANCE, 0},
+{ 818, 3240329321u, 2276183378u, 3240329320u, 0u, 3219684028u, 3575644160u, 0, MODF_TOLERANCE, 0},
+{ 819, 1068209174u, 3940225170u, 0u, 0u, 1068209174u, 3940225170u, 0, MODF_TOLERANCE, 0},
+{ 820, 3199544434u, 997572161u, 2147483648u, 0u, 3199544434u, 997572161u, 0, MODF_TOLERANCE, 0},
+{ 821, 3212768361u, 36116288u, 2147483648u, 0u, 3212768361u, 36116288u, 0, MODF_TOLERANCE, 0},
+{ 822, 3206886566u, 4196602670u, 2147483648u, 0u, 3206886566u, 4196602670u, 0, MODF_TOLERANCE, 0},
+{ 823, 3241695853u, 3550227562u, 3241695853u, 0u, 3219813253u, 2369781760u, 0, MODF_TOLERANCE, 0},
+{ 824, 3207257983u, 2747744117u, 2147483648u, 0u, 3207257983u, 2747744117u, 0, MODF_TOLERANCE, 0},
+{ 825, 1104236126u, 507130047u, 1104236126u, 503316480u, 1072502879u, 2147483648u, 0, MODF_TOLERANCE, 0},
+{ 826, 1048359321u, 3229888373u, 0u, 0u, 1048359321u, 3229888373u, 0, MODF_TOLERANCE, 0},
+{ 827, 3222996778u, 2210969014u, 3222798336u, 0u, 3219667284u, 507882928u, 0, MODF_TOLERANCE, 0},
+{ 828, 1081031001u, 1946786091u, 1081024512u, 0u, 1072257396u, 161032960u, 0, MODF_TOLERANCE, 0},
+{ 829, 3236306990u, 4059150589u, 3236306976u, 0u, 3218990051u, 1912209408u, 0, MODF_TOLERANCE, 0},
+{ 830, 3189759234u, 1177045799u, 2147483648u, 0u, 3189759234u, 1177045799u, 0, MODF_TOLERANCE, 0},
+{ 831, 1093103612u, 2664812822u, 1093103612u, 0u, 1070848698u, 583008256u, 0, MODF_TOLERANCE, 0},
+{ 832, 1050343198u, 2034180320u, 0u, 0u, 1050343198u, 2034180320u, 0, MODF_TOLERANCE, 0},
+{ 833, 3213779117u, 1175750283u, 2147483648u, 0u, 3213779117u, 1175750283u, 0, MODF_TOLERANCE, 0},
+{ 834, 3235559706u, 1424491340u, 3235559680u, 0u, 3218756840u, 55312384u, 0, MODF_TOLERANCE, 0},
+{ 835, 3213904193u, 1630036121u, 2147483648u, 0u, 3213904193u, 1630036121u, 0, MODF_TOLERANCE, 0},
+{ 836, 3231972785u, 3195479448u, 3231972352u, 0u, 3219856359u, 1918468096u, 0, MODF_TOLERANCE, 0},
+{ 837, 1090429875u, 2527029044u, 1090429872u, 0u, 1070380283u, 966787072u, 0, MODF_TOLERANCE, 0},
+{ 838, 1046927050u, 4000723255u, 0u, 0u, 1046927050u, 4000723255u, 0, MODF_TOLERANCE, 0},
+{ 839, 1085208677u, 3335703647u, 1085208576u, 0u, 1070166452u, 3004678144u, 0, MODF_TOLERANCE, 0},
+{ 840, 3237349676u, 3869440059u, 3237349664u, 0u, 3219770693u, 4034265088u, 0, MODF_TOLERANCE, 0},
+{ 841, 1091433848u, 3888398377u, 1091433848u, 0u, 1069349000u, 85983232u, 0, MODF_TOLERANCE, 0},
+{ 842, 3196041693u, 1290567220u, 2147483648u, 0u, 3196041693u, 1290567220u, 0, MODF_TOLERANCE, 0},
+{ 843, 1066679070u, 3242451480u, 0u, 0u, 1066679070u, 3242451480u, 0, MODF_TOLERANCE, 0},
+{ 844, 3248384948u, 707431021u, 3248384948u, 671088640u, 3219215443u, 1744830464u, 0, MODF_TOLERANCE, 0},
+{ 845, 1083230509u, 2739665123u, 1083230208u, 0u, 1070783028u, 3213766656u, 0, MODF_TOLERANCE, 0},
+{ 846, 1060777905u, 1733073225u, 0u, 0u, 1060777905u, 1733073225u, 0, MODF_TOLERANCE, 0},
+{ 847, 1078517061u, 1297274853u, 1078493184u, 0u, 1072124243u, 1421211968u, 0, MODF_TOLERANCE, 0},
+{ 848, 3208848704u, 3341639139u, 2147483648u, 0u, 3208848704u, 3341639139u, 0, MODF_TOLERANCE, 0},
+{ 849, 1046570941u, 2228057309u, 0u, 0u, 1046570941u, 2228057309u, 0, MODF_TOLERANCE, 0},
+{ 850, 1084318902u, 1317851136u, 1084318720u, 0u, 1071040977u, 2583691264u, 0, MODF_TOLERANCE, 0},
+{ 851, 1088255327u, 270039934u, 1088255296u, 0u, 1071583256u, 2071855104u, 0, MODF_TOLERANCE, 0},
+{ 852, 3241414679u, 3063626339u, 3241414679u, 0u, 3219575655u, 1281359872u, 0, MODF_TOLERANCE, 0},
+{ 853, 3219178350u, 83062251u, 2147483648u, 0u, 3219178350u, 83062251u, 0, MODF_TOLERANCE, 0},
+{ 854, 3211262173u, 2659016437u, 2147483648u, 0u, 3211262173u, 2659016437u, 0, MODF_TOLERANCE, 0},
+{ 855, 1095743886u, 3833539373u, 1095743886u, 2147483648u, 1072242634u, 3409969152u, 0, MODF_TOLERANCE, 0},
+{ 856, 3206667189u, 1567476111u, 2147483648u, 0u, 3206667189u, 1567476111u, 0, MODF_TOLERANCE, 0},
+{ 857, 3205195072u, 2382776852u, 2147483648u, 0u, 3205195072u, 2382776852u, 0, MODF_TOLERANCE, 0},
+{ 858, 3249232579u, 1546622468u, 3249232579u, 1543503872u, 3216493314u, 0u, 0, MODF_TOLERANCE, 0},
+{ 859, 1085536439u, 1714300821u, 1085536256u, 0u, 1072098501u, 3304235008u, 0, MODF_TOLERANCE, 0},
+{ 860, 1104130938u, 4167591598u, 1104130938u, 4160749568u, 1072306603u, 2147483648u, 0, MODF_TOLERANCE, 0},
+{ 861, 1051092760u, 2798720100u, 0u, 0u, 1051092760u, 2798720100u, 0, MODF_TOLERANCE, 0},
+{ 862, 1086978789u, 449990704u, 1086978688u, 0u, 1072252596u, 2483814400u, 0, MODF_TOLERANCE, 0},
+{ 863, 3231198415u, 4039516226u, 3231198208u, 0u, 3217686040u, 3288875008u, 0, MODF_TOLERANCE, 0},
+{ 864, 3244344107u, 4272932619u, 3244344107u, 3758096384u, 3220090823u, 184549376u, 0, MODF_TOLERANCE, 0},
+{ 865, 3222708441u, 1683007544u, 3222536192u, 0u, 3219457739u, 579158464u, 0, MODF_TOLERANCE, 0},
+{ 866, 1091105663u, 3805494321u, 1091105656u, 0u, 1072663372u, 4039376896u, 0, MODF_TOLERANCE, 0},
+{ 867, 3220852948u, 2072627412u, 3220176896u, 0u, 3219431848u, 4145254824u, 0, MODF_TOLERANCE, 0},
+{ 868, 1094383324u, 3394151662u, 1094383324u, 0u, 1072253396u, 2646605824u, 0, MODF_TOLERANCE, 0},
+{ 869, 3220570024u, 1120106427u, 3220176896u, 0u, 3218603681u, 185458412u, 0, MODF_TOLERANCE, 0},
+{ 870, 3223631624u, 3404608264u, 3223584768u, 0u, 3218530585u, 1573282048u, 0, MODF_TOLERANCE, 0},
+{ 871, 1097859997u, 559918757u, 1097859997u, 536870912u, 1068890858u, 1342177280u, 0, MODF_TOLERANCE, 0},
+{ 872, 3205077053u, 908100198u, 2147483648u, 0u, 3205077053u, 908100198u, 0, MODF_TOLERANCE, 0},
+{ 873, 1042677918u, 2026673913u, 0u, 0u, 1042677918u, 2026673913u, 0, MODF_TOLERANCE, 0},
+{ 874, 3244833635u, 2844573214u, 3244833635u, 2684354560u, 3218282876u, 1006632960u, 0, MODF_TOLERANCE, 0},
+{ 875, 3254567259u, 3946837259u, 3254567259u, 3945791488u, 3220171286u, 0u, 0, MODF_TOLERANCE, 0},
+{ 876, 3234993796u, 3850406820u, 3234993792u, 0u, 3216217602u, 781189120u, 0, MODF_TOLERANCE, 0},
+{ 877, 1057479809u, 3139330994u, 0u, 0u, 1057479809u, 3139330994u, 0, MODF_TOLERANCE, 0},
+{ 878, 1046133568u, 1539650690u, 0u, 0u, 1046133568u, 1539650690u, 0, MODF_TOLERANCE, 0},
+{ 879, 3236705500u, 1554593884u, 3236705472u, 0u, 3219938473u, 945553408u, 0, MODF_TOLERANCE, 0},
+{ 880, 3228899878u, 2813752562u, 3228897280u, 0u, 3219410255u, 1827267584u, 0, MODF_TOLERANCE, 0},
+{ 881, 1056505004u, 3804703138u, 0u, 0u, 1056505004u, 3804703138u, 0, MODF_TOLERANCE, 0},
+{ 882, 1072931071u, 2053677923u, 1072693248u, 0u, 1070401531u, 3544521496u, 0, MODF_TOLERANCE, 0},
+{ 883, 3244864299u, 289355864u, 3244864299u, 0u, 3219210040u, 1476395008u, 0, MODF_TOLERANCE, 0},
+{ 884, 1078453818u, 2143066338u, 1078427648u, 0u, 1072271007u, 4012259456u, 0, MODF_TOLERANCE, 0},
+{ 885, 3203939880u, 2157691971u, 2147483648u, 0u, 3203939880u, 2157691971u, 0, MODF_TOLERANCE, 0},
+{ 886, 1106629150u, 110806409u, 1106629150u, 110100480u, 1072007954u, 0u, 0, MODF_TOLERANCE, 0},
+{ 887, 1082157019u, 3570399481u, 1082155008u, 0u, 1072656211u, 1071899648u, 0, MODF_TOLERANCE, 0},
+{ 888, 1085637605u, 180265334u, 1085637376u, 0u, 1072472407u, 3559833600u, 0, MODF_TOLERANCE, 0},
+{ 889, 3200980182u, 558779875u, 2147483648u, 0u, 3200980182u, 558779875u, 0, MODF_TOLERANCE, 0},
+{ 890, 3202046748u, 2338464653u, 2147483648u, 0u, 3202046748u, 2338464653u, 0, MODF_TOLERANCE, 0},
+{ 891, 1045705464u, 1703969219u, 0u, 0u, 1045705464u, 1703969219u, 0, MODF_TOLERANCE, 0},
+{ 892, 3229797258u, 1417521063u, 3229796352u, 0u, 3218887331u, 3980212224u, 0, MODF_TOLERANCE, 0},
+{ 893, 3237782261u, 3917440951u, 3237782256u, 0u, 3218580989u, 2665218048u, 0, MODF_TOLERANCE, 0},
+{ 894, 1051668894u, 3736066983u, 0u, 0u, 1051668894u, 3736066983u, 0, MODF_TOLERANCE, 0},
+{ 895, 1064752080u, 3106613409u, 0u, 0u, 1064752080u, 3106613409u, 0, MODF_TOLERANCE, 0},
+{ 896, 1066627453u, 2735392257u, 0u, 0u, 1066627453u, 2735392257u, 0, MODF_TOLERANCE, 0},
+{ 897, 1065665372u, 2229777605u, 0u, 0u, 1065665372u, 2229777605u, 0, MODF_TOLERANCE, 0},
+{ 898, 1065061963u, 2405869925u, 0u, 0u, 1065061963u, 2405869925u, 0, MODF_TOLERANCE, 0},
+{ 899, 3239463229u, 3967957902u, 3239463228u, 0u, 3219048483u, 3101687808u, 0, MODF_TOLERANCE, 0},
+{ 900, 1057416138u, 3459188071u, 0u, 0u, 1057416138u, 3459188071u, 0, MODF_TOLERANCE, 0},
+{ 901, 1068639210u, 3699016825u, 0u, 0u, 1068639210u, 3699016825u, 0, MODF_TOLERANCE, 0},
+{ 902, 3249713090u, 796144848u, 3249713090u, 788529152u, 3218935092u, 0u, 0, MODF_TOLERANCE, 0},
+{ 903, 3228816396u, 3285165564u, 3228815360u, 0u, 3218092815u, 1050144768u, 0, MODF_TOLERANCE, 0},
+{ 904, 3211948811u, 401510871u, 2147483648u, 0u, 3211948811u, 401510871u, 0, MODF_TOLERANCE, 0},
+{ 905, 1094257658u, 634857910u, 1094257658u, 0u, 1069738900u, 3674210304u, 0, MODF_TOLERANCE, 0},
+{ 906, 3199607513u, 914218057u, 2147483648u, 0u, 3199607513u, 914218057u, 0, MODF_TOLERANCE, 0},
+{ 907, 1083743336u, 2030735578u, 1083743232u, 0u, 1069162050u, 2755035136u, 0, MODF_TOLERANCE, 0},
+{ 908, 3233855943u, 965677531u, 3233855872u, 0u, 3219246691u, 3296116736u, 0, MODF_TOLERANCE, 0},
+{ 909, 1079556815u, 3957229084u, 1079541760u, 0u, 1072523253u, 4014149120u, 0, MODF_TOLERANCE, 0},
+{ 910, 1051050470u, 3123776651u, 0u, 0u, 1051050470u, 3123776651u, 0, MODF_TOLERANCE, 0},
+{ 911, 3221863333u, 162122081u, 3221749760u, 0u, 3217799760u, 2593953296u, 0, MODF_TOLERANCE, 0},
+{ 912, 3239376395u, 108064594u, 3239376392u, 0u, 3219665799u, 2056257536u, 0, MODF_TOLERANCE, 0},
+{ 913, 3237271786u, 869031839u, 3237271776u, 0u, 3219416984u, 3208511488u, 0, MODF_TOLERANCE, 0},
+{ 914, 3225020876u, 1344301606u, 3224961024u, 0u, 3219995018u, 67978432u, 0, MODF_TOLERANCE, 0},
+{ 915, 3214433474u, 946696117u, 2147483648u, 0u, 3214433474u, 946696117u, 0, MODF_TOLERANCE, 0},
+{ 916, 3231825228u, 1700703647u, 3231824896u, 0u, 3219441237u, 3940151296u, 0, MODF_TOLERANCE, 0},
+{ 917, 1075492875u, 3394168074u, 1075314688u, 0u, 1072021598u, 1383540816u, 0, MODF_TOLERANCE, 0},
+{ 918, 1076939786u, 1666995668u, 1076887552u, 0u, 1072267596u, 1804253824u, 0, MODF_TOLERANCE, 0},
+{ 919, 3208774795u, 2488789804u, 2147483648u, 0u, 3208774795u, 2488789804u, 0, MODF_TOLERANCE, 0},
+{ 920, 3238508333u, 1506943664u, 3238508328u, 0u, 3219482440u, 2327838720u, 0, MODF_TOLERANCE, 0},
+{ 921, 1072788663u, 3844072288u, 1072693248u, 0u, 1068977022u, 1375614464u, 0, MODF_TOLERANCE, 0},
+{ 922, 3202592279u, 2630019853u, 2147483648u, 0u, 3202592279u, 2630019853u, 0, MODF_TOLERANCE, 0},
+{ 923, 3219934542u, 1244307192u, 2147483648u, 0u, 3219934542u, 1244307192u, 0, MODF_TOLERANCE, 0},
+{ 924, 3191297711u, 2540916692u, 2147483648u, 0u, 3191297711u, 2540916692u, 0, MODF_TOLERANCE, 0},
+{ 925, 3200062692u, 2871645739u, 2147483648u, 0u, 3200062692u, 2871645739u, 0, MODF_TOLERANCE, 0},
+{ 926, 3239081581u, 1440249115u, 3239081580u, 0u, 3218431367u, 1370488832u, 0, MODF_TOLERANCE, 0},
+{ 927, 1068350633u, 1231934926u, 0u, 0u, 1068350633u, 1231934926u, 0, MODF_TOLERANCE, 0},
+{ 928, 3236746788u, 603977748u, 3236746784u, 0u, 3217068031u, 3763339264u, 0, MODF_TOLERANCE, 0},
+{ 929, 3195449689u, 2386312545u, 2147483648u, 0u, 3195449689u, 2386312545u, 0, MODF_TOLERANCE, 0},
+{ 930, 1063169277u, 2715234268u, 0u, 0u, 1063169277u, 2715234268u, 0, MODF_TOLERANCE, 0},
+{ 931, 1087803418u, 915867083u, 1087803392u, 0u, 1071265431u, 97189888u, 0, MODF_TOLERANCE, 0},
+{ 932, 1046790892u, 3347417612u, 0u, 0u, 1046790892u, 3347417612u, 0, MODF_TOLERANCE, 0},
+{ 933, 1105984188u, 3553288373u, 1105984188u, 3552575488u, 1070973290u, 0u, 0, MODF_TOLERANCE, 0},
+{ 934, 1065698616u, 2906680663u, 0u, 0u, 1065698616u, 2906680663u, 0, MODF_TOLERANCE, 0},
+{ 935, 1045506226u, 2342364630u, 0u, 0u, 1045506226u, 2342364630u, 0, MODF_TOLERANCE, 0},
+{ 936, 1051356723u, 4019093203u, 0u, 0u, 1051356723u, 4019093203u, 0, MODF_TOLERANCE, 0},
+{ 937, 3201169162u, 2911548084u, 2147483648u, 0u, 3201169162u, 2911548084u, 0, MODF_TOLERANCE, 0},
+{ 938, 1105282515u, 2476735795u, 1105282515u, 2474639360u, 1072692531u, 0u, 0, MODF_TOLERANCE, 0},
+{ 939, 1050472772u, 1836216409u, 0u, 0u, 1050472772u, 1836216409u, 0, MODF_TOLERANCE, 0},
+{ 940, 1101062307u, 2519592554u, 1101062307u, 2516582400u, 1068955445u, 0u, 0, MODF_TOLERANCE, 0},
+{ 941, 1070178161u, 1235369496u, 0u, 0u, 1070178161u, 1235369496u, 0, MODF_TOLERANCE, 0},
+{ 942, 3222946447u, 668087854u, 3222798336u, 0u, 3219264633u, 1049735536u, 0, MODF_TOLERANCE, 0},
+{ 943, 3208554596u, 2981820811u, 2147483648u, 0u, 3208554596u, 2981820811u, 0, MODF_TOLERANCE, 0},
+{ 944, 1059838516u, 2845580478u, 0u, 0u, 1059838516u, 2845580478u, 0, MODF_TOLERANCE, 0},
+{ 945, 3193931414u, 1565550570u, 2147483648u, 0u, 3193931414u, 1565550570u, 0, MODF_TOLERANCE, 0},
+{ 946, 3217165795u, 4162017137u, 2147483648u, 0u, 3217165795u, 4162017137u, 0, MODF_TOLERANCE, 0},
+{ 947, 3237251378u, 2808968027u, 3237251376u, 0u, 3217374059u, 2597847040u, 0, MODF_TOLERANCE, 0},
+{ 948, 1055630096u, 1782326814u, 0u, 0u, 1055630096u, 1782326814u, 0, MODF_TOLERANCE, 0},
+{ 949, 1053576974u, 1492622658u, 0u, 0u, 1053576974u, 1492622658u, 0, MODF_TOLERANCE, 0},
+{ 950, 3216653077u, 3972512122u, 2147483648u, 0u, 3216653077u, 3972512122u, 0, MODF_TOLERANCE, 0},
+{ 951, 3222171679u, 2722693603u, 3221749760u, 0u, 3219767422u, 2300839820u, 0, MODF_TOLERANCE, 0},
+{ 952, 3227814791u, 3169731970u, 3227811840u, 0u, 3218542457u, 3700098048u, 0, MODF_TOLERANCE, 0},
+{ 953, 3217906631u, 899763203u, 2147483648u, 0u, 3217906631u, 899763203u, 0, MODF_TOLERANCE, 0},
+{ 954, 3207606001u, 2804747833u, 2147483648u, 0u, 3207606001u, 2804747833u, 0, MODF_TOLERANCE, 0},
+{ 955, 3230670325u, 3789058912u, 3230669824u, 0u, 3219086877u, 2268463104u, 0, MODF_TOLERANCE, 0},
+{ 956, 3228095081u, 4135937628u, 3228090368u, 0u, 3219286518u, 2238077952u, 0, MODF_TOLERANCE, 0},
+{ 957, 1060199382u, 1682808307u, 0u, 0u, 1060199382u, 1682808307u, 0, MODF_TOLERANCE, 0},
+{ 958, 3206960335u, 232877759u, 2147483648u, 0u, 3206960335u, 232877759u, 0, MODF_TOLERANCE, 0},
+{ 959, 3242091486u, 2851963139u, 3242091486u, 0u, 3219472304u, 543162368u, 0, MODF_TOLERANCE, 0},
+{ 960, 3246852961u, 2590862592u, 3246852961u, 2550136832u, 3218303848u, 0u, 0, MODF_TOLERANCE, 0},
+{ 961, 1081200406u, 2422232642u, 1081196544u, 0u, 1072573728u, 3232531456u, 0, MODF_TOLERANCE, 0},
+{ 962, 3234779662u, 290458310u, 3234779648u, 0u, 3216777888u, 361496576u, 0, MODF_TOLERANCE, 0},
+{ 963, 3210671078u, 1082582386u, 2147483648u, 0u, 3210671078u, 1082582386u, 0, MODF_TOLERANCE, 0},
+{ 964, 1075605675u, 2602133689u, 1075576832u, 0u, 1069296358u, 3327798848u, 0, MODF_TOLERANCE, 0},
+{ 965, 3239818611u, 1789635787u, 3239818608u, 0u, 3219871069u, 1717043200u, 0, MODF_TOLERANCE, 0},
+{ 966, 1059414278u, 1048286093u, 0u, 0u, 1059414278u, 1048286093u, 0, MODF_TOLERANCE, 0},
+{ 967, 1098330542u, 231339448u, 1098330542u, 0u, 1072403435u, 1879048192u, 0, MODF_TOLERANCE, 0},
+{ 968, 1055573265u, 504907415u, 0u, 0u, 1055573265u, 504907415u, 0, MODF_TOLERANCE, 0},
+{ 969, 1063211461u, 1153251200u, 0u, 0u, 1063211461u, 1153251200u, 0, MODF_TOLERANCE, 0},
+{ 970, 3204617090u, 1772013857u, 2147483648u, 0u, 3204617090u, 1772013857u, 0, MODF_TOLERANCE, 0},
+{ 971, 1099551055u, 1082898276u, 1099551055u, 1073741824u, 1068594924u, 2147483648u, 0, MODF_TOLERANCE, 0},
+{ 972, 3212089272u, 1449080862u, 2147483648u, 0u, 3212089272u, 1449080862u, 0, MODF_TOLERANCE, 0},
+{ 973, 1086008285u, 3177299045u, 1086008064u, 0u, 1072412588u, 931962880u, 0, MODF_TOLERANCE, 0},
+{ 974, 1058862813u, 809400815u, 0u, 0u, 1058862813u, 809400815u, 0, MODF_TOLERANCE, 0},
+{ 975, 3230854550u, 1924429710u, 3230854144u, 0u, 3218695979u, 1199104000u, 0, MODF_TOLERANCE, 0},
+{ 976, 1056464743u, 3349283177u, 0u, 0u, 1056464743u, 3349283177u, 0, MODF_TOLERANCE, 0},
+{ 977, 3245473391u, 42238036u, 3245473391u, 0u, 3217302530u, 2684354560u, 0, MODF_TOLERANCE, 0},
+{ 978, 1042379500u, 2113559863u, 0u, 0u, 1042379500u, 2113559863u, 0, MODF_TOLERANCE, 0},
+{ 979, 1064761243u, 3304403230u, 0u, 0u, 1064761243u, 3304403230u, 0, MODF_TOLERANCE, 0},
+{ 980, 3217556703u, 58952646u, 2147483648u, 0u, 3217556703u, 58952646u, 0, MODF_TOLERANCE, 0},
+{ 981, 3212669530u, 1645486982u, 2147483648u, 0u, 3212669530u, 1645486982u, 0, MODF_TOLERANCE, 0},
+{ 982, 3224301095u, 3636267471u, 3224240128u, 0u, 3218982139u, 396442080u, 0, MODF_TOLERANCE, 0},
+{ 983, 1062762009u, 619402181u, 0u, 0u, 1062762009u, 619402181u, 0, MODF_TOLERANCE, 0},
+{ 984, 3235208235u, 557360557u, 3235208192u, 0u, 3219493020u, 1389789184u, 0, MODF_TOLERANCE, 0},
+{ 985, 3238238394u, 110029735u, 3238238392u, 0u, 3218093175u, 1563951104u, 0, MODF_TOLERANCE, 0},
+{ 986, 1046937383u, 984375729u, 0u, 0u, 1046937383u, 984375729u, 0, MODF_TOLERANCE, 0},
+{ 987, 3189496738u, 4063688092u, 2147483648u, 0u, 3189496738u, 4063688092u, 0, MODF_TOLERANCE, 0},
+{ 988, 3203235744u, 1049950343u, 2147483648u, 0u, 3203235744u, 1049950343u, 0, MODF_TOLERANCE, 0},
+{ 989, 1062350619u, 650996069u, 0u, 0u, 1062350619u, 650996069u, 0, MODF_TOLERANCE, 0},
+{ 990, 1054971928u, 3953359826u, 0u, 0u, 1054971928u, 3953359826u, 0, MODF_TOLERANCE, 0},
+{ 991, 3227055805u, 66926332u, 3227041792u, 0u, 3219873409u, 4271603200u, 0, MODF_TOLERANCE, 0},
+{ 992, 1090561839u, 1379780888u, 1090561832u, 0u, 1072515319u, 610271232u, 0, MODF_TOLERANCE, 0},
+{ 993, 3233453307u, 2803378256u, 3233453056u, 0u, 3220141283u, 84541440u, 0, MODF_TOLERANCE, 0},
+{ 994, 1086057989u, 498534626u, 1086057984u, 0u, 1066694364u, 596115456u, 0, MODF_TOLERANCE, 0},
+{ 995, 1082618553u, 2846400785u, 1082617856u, 0u, 1070976333u, 1158187008u, 0, MODF_TOLERANCE, 0},
+{ 996, 1047142525u, 1375153550u, 0u, 0u, 1047142525u, 1375153550u, 0, MODF_TOLERANCE, 0},
+{ 997, 1044581201u, 2869128958u, 0u, 0u, 1044581201u, 2869128958u, 0, MODF_TOLERANCE, 0},
+{ 998, 1070972315u, 4246440273u, 0u, 0u, 1070972315u, 4246440273u, 0, MODF_TOLERANCE, 0},
+{ 999, 1051832506u, 3112381207u, 0u, 0u, 1051832506u, 3112381207u, 0, MODF_TOLERANCE, 0},
+
+
+// AUTOMATICALLY GENERATED VECTORS STOP
+
+};
+
+#endif // CYGONCE_LIBM_MODF_H multiple inclusion protection
+
+// EOF modf.h
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/modff.c b/ecos/packages/language/c/libm/current/tests/vectors/modff.c
new file mode 100644
index 0000000..35d201a
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/modff.c
@@ -0,0 +1,115 @@
+//===========================================================================
+//
+// modff.c
+//
+// Test of modff() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// Declarations for test system:
+//
+// TESTCASE_TYPE=CYG_TEST_MODULE
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include <cyg/infra/testcase.h> // Test infrastructure
+#include <math.h> // Header for this package
+#include <sys/ieeefp.h> // Cyg_libm_ieee_float_shape_type
+#include "vectors/vector_support_float.h"// extra support for math tests
+
+#include "vectors/modff.h"
+
+// FUNCTIONS
+
+static void
+test( CYG_ADDRWORD data )
+{
+ cyg_ucount32 vec_size;
+ cyg_bool ret;
+
+ vec_size = sizeof(modff_vec) / sizeof(Cyg_libm_test_float_vec_t);
+ ret = doTestVecFloat( (CYG_ADDRWORD) &modff, CYG_LIBM_TEST_VEC_FLOAT,
+ CYG_LIBM_TEST_VEC_FLOAT_P, CYG_LIBM_TEST_VEC_FLOAT,
+ &modff_vec[0], vec_size );
+
+ if (ret==true)
+ {
+ CYG_TEST_PASS("modff() is stable");
+ } // if
+ else
+ {
+ CYG_TEST_FAIL("modff() failed tests");
+ } // else
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for Math "
+ "library modff() function");
+} // test()
+
+
+int
+main(int argc, char *argv[])
+{
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for Math library "
+ "modff() function");
+
+ START_TEST( test );
+
+ CYG_TEST_PASS_FINISH("Testing is not applicable to this configuration");
+
+} // main()
+
+
+// EOF modff.c
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/modff.h b/ecos/packages/language/c/libm/current/tests/vectors/modff.h
new file mode 100644
index 0000000..44af72b
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/modff.h
@@ -0,0 +1,777 @@
+#ifndef CYGONCE_LIBM_MODFF_H
+#define CYGONCE_LIBM_MODFF_H
+//===========================================================================
+//
+// modff.h
+//
+// Test vectors for testing of modff() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage: #include "vectors/modff.h"
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include "vectors/vector_support_float.h"// extra support for math tests
+
+#define MODFF_TOLERANCE 1.0E-04
+
+static const Cyg_libm_test_float_vec_t modff_vec[] = {
+
+// AUTOMATICALLY GENERATED VECTORS START
+
+{0, 1107800421u, 1107558400u, 1064065344u, 0, MODFF_TOLERANCE, 0},
+{1, 1203999711u, 1203999616u, 1061027840u, 0, MODFF_TOLERANCE, 0},
+{2, 896005582u, 0u, 896005582u, 0, MODFF_TOLERANCE, 0},
+{3, 3368700125u, 3368700096u, 3211264000u, 0, MODFF_TOLERANCE, 0},
+{4, 3308232444u, 3308228608u, 3211771904u, 0, MODFF_TOLERANCE, 0},
+{5, 1224242132u, 1224242112u, 1059061760u, 0, MODFF_TOLERANCE, 0},
+{6, 3221027117u, 3212836864u, 3212440154u, 0, MODFF_TOLERANCE, 0},
+{7, 1284201705u, 1284201705u, 0u, 0, MODFF_TOLERANCE, 0},
+{8, 1198712763u, 1198712576u, 1060831232u, 0, MODFF_TOLERANCE, 0},
+{9, 919636942u, 0u, 919636942u, 0, MODFF_TOLERANCE, 0},
+{10, 954173073u, 0u, 954173073u, 0, MODFF_TOLERANCE, 0},
+{11, 1035260608u, 0u, 1035260608u, 0, MODFF_TOLERANCE, 0},
+{12, 966554515u, 0u, 966554515u, 0, MODFF_TOLERANCE, 0},
+{13, 3234538174u, 3233808384u, 3199347680u, 0, MODFF_TOLERANCE, 0},
+{14, 1312607135u, 1312607135u, 0u, 0, MODFF_TOLERANCE, 0},
+{15, 1194999402u, 1194999296u, 1054081024u, 0, MODFF_TOLERANCE, 0},
+{16, 1166191415u, 1166190592u, 1053671424u, 0, MODFF_TOLERANCE, 0},
+{17, 1018661564u, 0u, 1018661564u, 0, MODFF_TOLERANCE, 0},
+{18, 1130472166u, 1130430464u, 1059251712u, 0, MODFF_TOLERANCE, 0},
+{19, 1234419246u, 1234419240u, 1061158912u, 0, MODFF_TOLERANCE, 0},
+{20, 1302107128u, 1302107128u, 0u, 0, MODFF_TOLERANCE, 0},
+{21, 3370647675u, 3370647648u, 3210215424u, 0, MODFF_TOLERANCE, 0},
+{22, 1052801068u, 0u, 1052801068u, 0, MODFF_TOLERANCE, 0},
+{23, 1060849628u, 0u, 1060849628u, 0, MODFF_TOLERANCE, 0},
+{24, 3446630737u, 3446630737u, 2147483648u, 0, MODFF_TOLERANCE, 0},
+{25, 3484320003u, 3484320003u, 2147483648u, 0, MODFF_TOLERANCE, 0},
+{26, 3305392896u, 3305390080u, 3207593984u, 0, MODFF_TOLERANCE, 0},
+{27, 882596369u, 0u, 882596369u, 0, MODFF_TOLERANCE, 0},
+{28, 1256676590u, 1256676590u, 0u, 0, MODFF_TOLERANCE, 0},
+{29, 1167223673u, 1167222784u, 1054752768u, 0, MODFF_TOLERANCE, 0},
+{30, 968192794u, 0u, 968192794u, 0, MODFF_TOLERANCE, 0},
+{31, 878547432u, 0u, 878547432u, 0, MODFF_TOLERANCE, 0},
+{32, 1111584337u, 1111490560u, 1052190848u, 0, MODFF_TOLERANCE, 0},
+{33, 1052361612u, 0u, 1052361612u, 0, MODFF_TOLERANCE, 0},
+{34, 1280025214u, 1280025214u, 0u, 0, MODFF_TOLERANCE, 0},
+{35, 906701409u, 0u, 906701409u, 0, MODFF_TOLERANCE, 0},
+{36, 3471653172u, 3471653172u, 2147483648u, 0, MODFF_TOLERANCE, 0},
+{37, 1154138102u, 1154129920u, 1065332736u, 0, MODFF_TOLERANCE, 0},
+{38, 3231467496u, 3229614080u, 3210886976u, 0, MODFF_TOLERANCE, 0},
+{39, 934336592u, 0u, 934336592u, 0, MODFF_TOLERANCE, 0},
+{40, 1341514497u, 1341514497u, 0u, 0, MODFF_TOLERANCE, 0},
+{41, 3466051188u, 3466051188u, 2147483648u, 0, MODFF_TOLERANCE, 0},
+{42, 1272351391u, 1272351391u, 0u, 0, MODFF_TOLERANCE, 0},
+{43, 3373485062u, 3373485056u, 3200253952u, 0, MODFF_TOLERANCE, 0},
+{44, 3319724992u, 3319724032u, 3203399680u, 0, MODFF_TOLERANCE, 0},
+{45, 3354615790u, 3354615680u, 3210477568u, 0, MODFF_TOLERANCE, 0},
+{46, 3266377514u, 3266314240u, 3203869184u, 0, MODFF_TOLERANCE, 0},
+{47, 917622040u, 0u, 917622040u, 0, MODFF_TOLERANCE, 0},
+{48, 1334966485u, 1334966485u, 0u, 0, MODFF_TOLERANCE, 0},
+{49, 940236348u, 0u, 940236348u, 0, MODFF_TOLERANCE, 0},
+{50, 3304072663u, 3304071168u, 3191529472u, 0, MODFF_TOLERANCE, 0},
+{51, 977028681u, 0u, 977028681u, 0, MODFF_TOLERANCE, 0},
+{52, 3251541546u, 3251109888u, 3209872704u, 0, MODFF_TOLERANCE, 0},
+{53, 3355962282u, 3355962240u, 3207069696u, 0, MODFF_TOLERANCE, 0},
+{54, 3371863479u, 3371863456u, 3208118272u, 0, MODFF_TOLERANCE, 0},
+{55, 1014861921u, 0u, 1014861921u, 0, MODFF_TOLERANCE, 0},
+{56, 966573255u, 0u, 966573255u, 0, MODFF_TOLERANCE, 0},
+{57, 1306460502u, 1306460502u, 0u, 0, MODFF_TOLERANCE, 0},
+{58, 903489435u, 0u, 903489435u, 0, MODFF_TOLERANCE, 0},
+{59, 1197542187u, 1197542144u, 1043070976u, 0, MODFF_TOLERANCE, 0},
+{60, 922888249u, 0u, 922888249u, 0, MODFF_TOLERANCE, 0},
+{61, 1139392309u, 1139376128u, 1056756736u, 0, MODFF_TOLERANCE, 0},
+{62, 1184239996u, 1184239616u, 1061027840u, 0, MODFF_TOLERANCE, 0},
+{63, 3224098462u, 3221225472u, 3207551608u, 0, MODFF_TOLERANCE, 0},
+{64, 1252490238u, 1252490238u, 0u, 0, MODFF_TOLERANCE, 0},
+{65, 1173619825u, 1173618688u, 1057890304u, 0, MODFF_TOLERANCE, 0},
+{66, 1001673627u, 0u, 1001673627u, 0, MODFF_TOLERANCE, 0},
+{67, 3462631271u, 3462631271u, 2147483648u, 0, MODFF_TOLERANCE, 0},
+{68, 976098044u, 0u, 976098044u, 0, MODFF_TOLERANCE, 0},
+{69, 1151967422u, 1151967232u, 1019084800u, 0, MODFF_TOLERANCE, 0},
+{70, 941796645u, 0u, 941796645u, 0, MODFF_TOLERANCE, 0},
+{71, 886451963u, 0u, 886451963u, 0, MODFF_TOLERANCE, 0},
+{72, 1103058486u, 1102577664u, 1063962304u, 0, MODFF_TOLERANCE, 0},
+{73, 3217259624u, 3212836864u, 3204905168u, 0, MODFF_TOLERANCE, 0},
+{74, 3287199470u, 3287187456u, 3199973376u, 0, MODFF_TOLERANCE, 0},
+{75, 893184329u, 0u, 893184329u, 0, MODFF_TOLERANCE, 0},
+{76, 1243067084u, 1243067084u, 0u, 0, MODFF_TOLERANCE, 0},
+{77, 1143233714u, 1143226368u, 1055232000u, 0, MODFF_TOLERANCE, 0},
+{78, 1007268238u, 0u, 1007268238u, 0, MODFF_TOLERANCE, 0},
+{79, 1139941253u, 1139933184u, 1048324096u, 0, MODFF_TOLERANCE, 0},
+{80, 1147688821u, 1147682816u, 1052485632u, 0, MODFF_TOLERANCE, 0},
+{81, 3234638157u, 3233808384u, 3200947408u, 0, MODFF_TOLERANCE, 0},
+{82, 3449209899u, 3449209899u, 2147483648u, 0, MODFF_TOLERANCE, 0},
+{83, 3240298487u, 3240099840u, 3191995840u, 0, MODFF_TOLERANCE, 0},
+{84, 1020260821u, 0u, 1020260821u, 0, MODFF_TOLERANCE, 0},
+{85, 1288902137u, 1288902137u, 0u, 0, MODFF_TOLERANCE, 0},
+{86, 1333134799u, 1333134799u, 0u, 0, MODFF_TOLERANCE, 0},
+{87, 1338107877u, 1338107877u, 0u, 0, MODFF_TOLERANCE, 0},
+{88, 1187847971u, 1187847680u, 1058111488u, 0, MODFF_TOLERANCE, 0},
+{89, 1317663644u, 1317663644u, 0u, 0, MODFF_TOLERANCE, 0},
+{90, 1038851706u, 0u, 1038851706u, 0, MODFF_TOLERANCE, 0},
+{91, 1327544110u, 1327544110u, 0u, 0, MODFF_TOLERANCE, 0},
+{92, 3329354473u, 3329353728u, 3208265728u, 0, MODFF_TOLERANCE, 0},
+{93, 1308397879u, 1308397879u, 0u, 0, MODFF_TOLERANCE, 0},
+{94, 1309289088u, 1309289088u, 0u, 0, MODFF_TOLERANCE, 0},
+{95, 1019883016u, 0u, 1019883016u, 0, MODFF_TOLERANCE, 0},
+{96, 1294782875u, 1294782875u, 0u, 0, MODFF_TOLERANCE, 0},
+{97, 3444653659u, 3444653659u, 2147483648u, 0, MODFF_TOLERANCE, 0},
+{98, 1279248024u, 1279248024u, 0u, 0, MODFF_TOLERANCE, 0},
+{99, 3405585402u, 3405585402u, 2147483648u, 0, MODFF_TOLERANCE, 0},
+{100, 1106778573u, 1106771968u, 1011771392u, 0, MODFF_TOLERANCE, 0},
+{101, 3304487767u, 3304480768u, 3210393600u, 0, MODFF_TOLERANCE, 0},
+{102, 1140567947u, 1140555776u, 1052650496u, 0, MODFF_TOLERANCE, 0},
+{103, 1238569473u, 1238569472u, 1040187392u, 0, MODFF_TOLERANCE, 0},
+{104, 873035665u, 0u, 873035665u, 0, MODFF_TOLERANCE, 0},
+{105, 3223983207u, 3221225472u, 3207090588u, 0, MODFF_TOLERANCE, 0},
+{106, 1276671061u, 1276671061u, 0u, 0, MODFF_TOLERANCE, 0},
+{107, 1261071232u, 1261071232u, 0u, 0, MODFF_TOLERANCE, 0},
+{108, 1182202773u, 1182201856u, 1063600128u, 0, MODFF_TOLERANCE, 0},
+{109, 1175011025u, 1175010304u, 1060388864u, 0, MODFF_TOLERANCE, 0},
+{110, 1082692850u, 1082130432u, 1049186080u, 0, MODFF_TOLERANCE, 0},
+{111, 1211581107u, 1211581056u, 1061945344u, 0, MODFF_TOLERANCE, 0},
+{112, 974547519u, 0u, 974547519u, 0, MODFF_TOLERANCE, 0},
+{113, 3475164509u, 3475164509u, 2147483648u, 0, MODFF_TOLERANCE, 0},
+{114, 1071134451u, 1065353216u, 1060138470u, 0, MODFF_TOLERANCE, 0},
+{115, 3403348556u, 3403348556u, 2147483648u, 0, MODFF_TOLERANCE, 0},
+{116, 3373011130u, 3373011120u, 3206545408u, 0, MODFF_TOLERANCE, 0},
+{117, 3460764044u, 3460764044u, 2147483648u, 0, MODFF_TOLERANCE, 0},
+{118, 1136411063u, 1136394240u, 1057189376u, 0, MODFF_TOLERANCE, 0},
+{119, 1118097422u, 1118044160u, 1053822464u, 0, MODFF_TOLERANCE, 0},
+{120, 3239231622u, 3239051264u, 3190825344u, 0, MODFF_TOLERANCE, 0},
+{121, 3302723069u, 3302719488u, 3202338816u, 0, MODFF_TOLERANCE, 0},
+{122, 3340615780u, 3340615680u, 3200778240u, 0, MODFF_TOLERANCE, 0},
+{123, 998567360u, 0u, 998567360u, 0, MODFF_TOLERANCE, 0},
+{124, 3417964312u, 3417964312u, 2147483648u, 0, MODFF_TOLERANCE, 0},
+{125, 1321337529u, 1321337529u, 0u, 0, MODFF_TOLERANCE, 0},
+{126, 1143864063u, 1143848960u, 1064041472u, 0, MODFF_TOLERANCE, 0},
+{127, 1148867223u, 1148862464u, 1049933824u, 0, MODFF_TOLERANCE, 0},
+{128, 1256486202u, 1256486202u, 0u, 0, MODFF_TOLERANCE, 0},
+{129, 1314196594u, 1314196594u, 0u, 0, MODFF_TOLERANCE, 0},
+{130, 989687421u, 0u, 989687421u, 0, MODFF_TOLERANCE, 0},
+{131, 3372681320u, 3372681312u, 3204448256u, 0, MODFF_TOLERANCE, 0},
+{132, 1152956913u, 1152950272u, 1062176768u, 0, MODFF_TOLERANCE, 0},
+{133, 892922651u, 0u, 892922651u, 0, MODFF_TOLERANCE, 0},
+{134, 3373029087u, 3373029072u, 3211788288u, 0, MODFF_TOLERANCE, 0},
+{135, 1109627625u, 1109393408u, 1063565888u, 0, MODFF_TOLERANCE, 0},
+{136, 1314158257u, 1314158257u, 0u, 0, MODFF_TOLERANCE, 0},
+{137, 1307091856u, 1307091856u, 0u, 0, MODFF_TOLERANCE, 0},
+{138, 1103202538u, 1103101952u, 1044673792u, 0, MODFF_TOLERANCE, 0},
+{139, 1077234132u, 1073741824u, 1062545232u, 0, MODFF_TOLERANCE, 0},
+{140, 3272167130u, 3272146944u, 3198006272u, 0, MODFF_TOLERANCE, 0},
+{141, 1142167709u, 1142161408u, 1053091840u, 0, MODFF_TOLERANCE, 0},
+{142, 1096445242u, 1095761920u, 1059509152u, 0, MODFF_TOLERANCE, 0},
+{143, 3426232834u, 3426232834u, 2147483648u, 0, MODFF_TOLERANCE, 0},
+{144, 1036705270u, 0u, 1036705270u, 0, MODFF_TOLERANCE, 0},
+{145, 3368566779u, 3368566752u, 3210215424u, 0, MODFF_TOLERANCE, 0},
+{146, 967249167u, 0u, 967249167u, 0, MODFF_TOLERANCE, 0},
+{147, 3349013503u, 3349013376u, 3212705792u, 0, MODFF_TOLERANCE, 0},
+{148, 1138741813u, 1138720768u, 1059351040u, 0, MODFF_TOLERANCE, 0},
+{149, 982950501u, 0u, 982950501u, 0, MODFF_TOLERANCE, 0},
+{150, 982549888u, 0u, 982549888u, 0, MODFF_TOLERANCE, 0},
+{151, 1142981585u, 1142980608u, 1031028736u, 0, MODFF_TOLERANCE, 0},
+{152, 1015602236u, 0u, 1015602236u, 0, MODFF_TOLERANCE, 0},
+{153, 3365560001u, 3365560000u, 3170893824u, 0, MODFF_TOLERANCE, 0},
+{154, 3347165962u, 3347165952u, 3181379584u, 0, MODFF_TOLERANCE, 0},
+{155, 1009535440u, 0u, 1009535440u, 0, MODFF_TOLERANCE, 0},
+{156, 3381353228u, 3381353224u, 3204448256u, 0, MODFF_TOLERANCE, 0},
+{157, 3402950505u, 3402950504u, 3204448256u, 0, MODFF_TOLERANCE, 0},
+{158, 1077903063u, 1073741824u, 1065220956u, 0, MODFF_TOLERANCE, 0},
+{159, 3473956030u, 3473956030u, 2147483648u, 0, MODFF_TOLERANCE, 0},
+{160, 976891930u, 0u, 976891930u, 0, MODFF_TOLERANCE, 0},
+{161, 3349098349u, 3349098240u, 3210346496u, 0, MODFF_TOLERANCE, 0},
+{162, 1055327704u, 0u, 1055327704u, 0, MODFF_TOLERANCE, 0},
+{163, 1060398533u, 0u, 1060398533u, 0, MODFF_TOLERANCE, 0},
+{164, 945568720u, 0u, 945568720u, 0, MODFF_TOLERANCE, 0},
+{165, 3313485084u, 3313483776u, 3198386176u, 0, MODFF_TOLERANCE, 0},
+{166, 3345489836u, 3345489664u, 3207331840u, 0, MODFF_TOLERANCE, 0},
+{167, 1108392401u, 1108344832u, 1043976448u, 0, MODFF_TOLERANCE, 0},
+{168, 940893161u, 0u, 940893161u, 0, MODFF_TOLERANCE, 0},
+{169, 1137000140u, 1136984064u, 1056649216u, 0, MODFF_TOLERANCE, 0},
+{170, 976791751u, 0u, 976791751u, 0, MODFF_TOLERANCE, 0},
+{171, 3230678102u, 3229614080u, 3204571824u, 0, MODFF_TOLERANCE, 0},
+{172, 1324802687u, 1324802687u, 0u, 0, MODFF_TOLERANCE, 0},
+{173, 1004442355u, 0u, 1004442355u, 0, MODFF_TOLERANCE, 0},
+{174, 1108485380u, 1108344832u, 1057571072u, 0, MODFF_TOLERANCE, 0},
+{175, 1061834641u, 0u, 1061834641u, 0, MODFF_TOLERANCE, 0},
+{176, 972388096u, 0u, 972388096u, 0, MODFF_TOLERANCE, 0},
+{177, 3381268392u, 3381268392u, 2147483648u, 0, MODFF_TOLERANCE, 0},
+{178, 1146976802u, 1146961920u, 1063815168u, 0, MODFF_TOLERANCE, 0},
+{179, 1087189715u, 1086324736u, 1054027056u, 0, MODFF_TOLERANCE, 0},
+{180, 3212952285u, 3212836864u, 3160501888u, 0, MODFF_TOLERANCE, 0},
+{181, 3329407365u, 3329406976u, 3200417792u, 0, MODFF_TOLERANCE, 0},
+{182, 1000611335u, 0u, 1000611335u, 0, MODFF_TOLERANCE, 0},
+{183, 1227905777u, 1227905776u, 1031798784u, 0, MODFF_TOLERANCE, 0},
+{184, 3466188568u, 3466188568u, 2147483648u, 0, MODFF_TOLERANCE, 0},
+{185, 1041678304u, 0u, 1041678304u, 0, MODFF_TOLERANCE, 0},
+{186, 3319315516u, 3319314432u, 3204939776u, 0, MODFF_TOLERANCE, 0},
+{187, 3422089012u, 3422089012u, 2147483648u, 0, MODFF_TOLERANCE, 0},
+{188, 935938416u, 0u, 935938416u, 0, MODFF_TOLERANCE, 0},
+{189, 1146676692u, 1146667008u, 1058492416u, 0, MODFF_TOLERANCE, 0},
+{190, 1152633030u, 1152630784u, 1049387008u, 0, MODFF_TOLERANCE, 0},
+{191, 1315030230u, 1315030230u, 0u, 0, MODFF_TOLERANCE, 0},
+{192, 3336225884u, 3336225792u, 3191341056u, 0, MODFF_TOLERANCE, 0},
+{193, 898402905u, 0u, 898402905u, 0, MODFF_TOLERANCE, 0},
+{194, 1134593658u, 1134592000u, 1028603904u, 0, MODFF_TOLERANCE, 0},
+{195, 3456812581u, 3456812581u, 2147483648u, 0, MODFF_TOLERANCE, 0},
+{196, 977281449u, 0u, 977281449u, 0, MODFF_TOLERANCE, 0},
+{197, 879922831u, 0u, 879922831u, 0, MODFF_TOLERANCE, 0},
+{198, 1086198791u, 1084227584u, 1064345656u, 0, MODFF_TOLERANCE, 0},
+{199, 920125958u, 0u, 920125958u, 0, MODFF_TOLERANCE, 0},
+{200, 1255152035u, 1255152034u, 1056964608u, 0, MODFF_TOLERANCE, 0},
+{201, 1135271264u, 1135247360u, 1060814848u, 0, MODFF_TOLERANCE, 0},
+{202, 3284878412u, 3284860928u, 3205011456u, 0, MODFF_TOLERANCE, 0},
+{203, 1094190727u, 1093664768u, 1056991344u, 0, MODFF_TOLERANCE, 0},
+{204, 1056854532u, 0u, 1056854532u, 0, MODFF_TOLERANCE, 0},
+{205, 1294665325u, 1294665325u, 0u, 0, MODFF_TOLERANCE, 0},
+{206, 991185677u, 0u, 991185677u, 0, MODFF_TOLERANCE, 0},
+{207, 1036608591u, 0u, 1036608591u, 0, MODFF_TOLERANCE, 0},
+{208, 1296239160u, 1296239160u, 0u, 0, MODFF_TOLERANCE, 0},
+{209, 3229998064u, 3229614080u, 3191569920u, 0, MODFF_TOLERANCE, 0},
+{210, 3439134022u, 3439134022u, 2147483648u, 0, MODFF_TOLERANCE, 0},
+{211, 1043829691u, 0u, 1043829691u, 0, MODFF_TOLERANCE, 0},
+{212, 1317170485u, 1317170485u, 0u, 0, MODFF_TOLERANCE, 0},
+{213, 1325668223u, 1325668223u, 0u, 0, MODFF_TOLERANCE, 0},
+{214, 970681762u, 0u, 970681762u, 0, MODFF_TOLERANCE, 0},
+{215, 1092037607u, 1091567616u, 1055227104u, 0, MODFF_TOLERANCE, 0},
+{216, 1027330835u, 0u, 1027330835u, 0, MODFF_TOLERANCE, 0},
+{217, 3343511749u, 3343511552u, 3208970240u, 0, MODFF_TOLERANCE, 0},
+{218, 3316278408u, 3316277248u, 3205562368u, 0, MODFF_TOLERANCE, 0},
+{219, 3455589207u, 3455589207u, 2147483648u, 0, MODFF_TOLERANCE, 0},
+{220, 3295436768u, 3295428608u, 3204382720u, 0, MODFF_TOLERANCE, 0},
+{221, 1151984049u, 1151983616u, 1029210112u, 0, MODFF_TOLERANCE, 0},
+{222, 1129287043u, 1129250816u, 1057850112u, 0, MODFF_TOLERANCE, 0},
+{223, 1243664530u, 1243664528u, 1056964608u, 0, MODFF_TOLERANCE, 0},
+{224, 972879810u, 0u, 972879810u, 0, MODFF_TOLERANCE, 0},
+{225, 950829092u, 0u, 950829092u, 0, MODFF_TOLERANCE, 0},
+{226, 929114193u, 0u, 929114193u, 0, MODFF_TOLERANCE, 0},
+{227, 1115471979u, 1115422720u, 1044409088u, 0, MODFF_TOLERANCE, 0},
+{228, 3351092088u, 3351091968u, 3211788288u, 0, MODFF_TOLERANCE, 0},
+{229, 3424479544u, 3424479544u, 2147483648u, 0, MODFF_TOLERANCE, 0},
+{230, 3312047722u, 3312046080u, 3201122304u, 0, MODFF_TOLERANCE, 0},
+{231, 3241193975u, 3241148416u, 3174168320u, 0, MODFF_TOLERANCE, 0},
+{232, 884465785u, 0u, 884465785u, 0, MODFF_TOLERANCE, 0},
+{233, 3478509398u, 3478509398u, 2147483648u, 0, MODFF_TOLERANCE, 0},
+{234, 1030934236u, 0u, 1030934236u, 0, MODFF_TOLERANCE, 0},
+{235, 1045139240u, 0u, 1045139240u, 0, MODFF_TOLERANCE, 0},
+{236, 3408392958u, 3408392958u, 2147483648u, 0, MODFF_TOLERANCE, 0},
+{237, 1025254314u, 0u, 1025254314u, 0, MODFF_TOLERANCE, 0},
+{238, 1110545760u, 1110441984u, 1053470720u, 0, MODFF_TOLERANCE, 0},
+{239, 3240144177u, 3240099840u, 3173855488u, 0, MODFF_TOLERANCE, 0},
+{240, 1091496527u, 1090519040u, 1064215792u, 0, MODFF_TOLERANCE, 0},
+{241, 1108793820u, 1108606976u, 1060534016u, 0, MODFF_TOLERANCE, 0},
+{242, 3361976590u, 3361976576u, 3193962496u, 0, MODFF_TOLERANCE, 0},
+{243, 881280146u, 0u, 881280146u, 0, MODFF_TOLERANCE, 0},
+{244, 3421884736u, 3421884736u, 2147483648u, 0, MODFF_TOLERANCE, 0},
+{245, 1304154705u, 1304154705u, 0u, 0, MODFF_TOLERANCE, 0},
+{246, 3264443610u, 3264348160u, 3208277248u, 0, MODFF_TOLERANCE, 0},
+{247, 3222916705u, 3221225472u, 3201200904u, 0, MODFF_TOLERANCE, 0},
+{248, 3374550627u, 3374550624u, 3191865344u, 0, MODFF_TOLERANCE, 0},
+{249, 3365394784u, 3365394784u, 2147483648u, 0, MODFF_TOLERANCE, 0},
+{250, 899599265u, 0u, 899599265u, 0, MODFF_TOLERANCE, 0},
+{251, 3240118211u, 3240099840u, 3163522560u, 0, MODFF_TOLERANCE, 0},
+{252, 3452685905u, 3452685905u, 2147483648u, 0, MODFF_TOLERANCE, 0},
+{253, 1268194719u, 1268194719u, 0u, 0, MODFF_TOLERANCE, 0},
+{254, 1332489410u, 1332489410u, 0u, 0, MODFF_TOLERANCE, 0},
+{255, 1133420220u, 1133412352u, 1047912448u, 0, MODFF_TOLERANCE, 0},
+{256, 1245770860u, 1245770860u, 0u, 0, MODFF_TOLERANCE, 0},
+{257, 1161858787u, 1161854976u, 1064185856u, 0, MODFF_TOLERANCE, 0},
+{258, 1263529646u, 1263529646u, 0u, 0, MODFF_TOLERANCE, 0},
+{259, 3295996963u, 3295985664u, 3207629824u, 0, MODFF_TOLERANCE, 0},
+{260, 3453334307u, 3453334307u, 2147483648u, 0, MODFF_TOLERANCE, 0},
+{261, 1270887389u, 1270887389u, 0u, 0, MODFF_TOLERANCE, 0},
+{262, 1156123987u, 1156120576u, 1054158848u, 0, MODFF_TOLERANCE, 0},
+{263, 3325193181u, 3325192192u, 3212263424u, 0, MODFF_TOLERANCE, 0},
+{264, 993979179u, 0u, 993979179u, 0, MODFF_TOLERANCE, 0},
+{265, 925657343u, 0u, 925657343u, 0, MODFF_TOLERANCE, 0},
+{266, 1315159742u, 1315159742u, 0u, 0, MODFF_TOLERANCE, 0},
+{267, 3224327456u, 3221225472u, 3208467584u, 0, MODFF_TOLERANCE, 0},
+{268, 1189120494u, 1189120000u, 1064763392u, 0, MODFF_TOLERANCE, 0},
+{269, 978961471u, 0u, 978961471u, 0, MODFF_TOLERANCE, 0},
+{270, 889030794u, 0u, 889030794u, 0, MODFF_TOLERANCE, 0},
+{271, 1323529208u, 1323529208u, 0u, 0, MODFF_TOLERANCE, 0},
+{272, 940445933u, 0u, 940445933u, 0, MODFF_TOLERANCE, 0},
+{273, 3465768388u, 3465768388u, 2147483648u, 0, MODFF_TOLERANCE, 0},
+{274, 3426099899u, 3426099899u, 2147483648u, 0, MODFF_TOLERANCE, 0},
+{275, 1118756120u, 1118699520u, 1054676992u, 0, MODFF_TOLERANCE, 0},
+{276, 3224857113u, 3221225472u, 3210586212u, 0, MODFF_TOLERANCE, 0},
+{277, 3398166843u, 3398166842u, 3204448256u, 0, MODFF_TOLERANCE, 0},
+{278, 1065798296u, 1065353216u, 1029264128u, 0, MODFF_TOLERANCE, 0},
+{279, 3328989444u, 3328989184u, 3196190720u, 0, MODFF_TOLERANCE, 0},
+{280, 3357819026u, 3357819008u, 3197108224u, 0, MODFF_TOLERANCE, 0},
+{281, 1273397670u, 1273397670u, 0u, 0, MODFF_TOLERANCE, 0},
+{282, 901308750u, 0u, 901308750u, 0, MODFF_TOLERANCE, 0},
+{283, 3424831780u, 3424831780u, 2147483648u, 0, MODFF_TOLERANCE, 0},
+{284, 1304806106u, 1304806106u, 0u, 0, MODFF_TOLERANCE, 0},
+{285, 1257596246u, 1257596246u, 0u, 0, MODFF_TOLERANCE, 0},
+{286, 3420832544u, 3420832544u, 2147483648u, 0, MODFF_TOLERANCE, 0},
+{287, 1051773536u, 0u, 1051773536u, 0, MODFF_TOLERANCE, 0},
+{288, 896271348u, 0u, 896271348u, 0, MODFF_TOLERANCE, 0},
+{289, 3294752507u, 3294740480u, 3208375296u, 0, MODFF_TOLERANCE, 0},
+{290, 3424848725u, 3424848725u, 2147483648u, 0, MODFF_TOLERANCE, 0},
+{291, 1090870906u, 1090519040u, 1051447104u, 0, MODFF_TOLERANCE, 0},
+{292, 3294742905u, 3294740480u, 3189215232u, 0, MODFF_TOLERANCE, 0},
+{293, 1227582289u, 1227582288u, 1031798784u, 0, MODFF_TOLERANCE, 0},
+{294, 1208979668u, 1208979648u, 1050673152u, 0, MODFF_TOLERANCE, 0},
+{295, 1272325814u, 1272325814u, 0u, 0, MODFF_TOLERANCE, 0},
+{296, 3359508271u, 3359508224u, 3208380416u, 0, MODFF_TOLERANCE, 0},
+{297, 1137854355u, 1137836032u, 1057957376u, 0, MODFF_TOLERANCE, 0},
+{298, 3335041917u, 3335041536u, 3208544256u, 0, MODFF_TOLERANCE, 0},
+{299, 3440773058u, 3440773058u, 2147483648u, 0, MODFF_TOLERANCE, 0},
+{300, 3451216836u, 3451216836u, 2147483648u, 0, MODFF_TOLERANCE, 0},
+{301, 3347783723u, 3347783680u, 3198943232u, 0, MODFF_TOLERANCE, 0},
+{302, 3437062994u, 3437062994u, 2147483648u, 0, MODFF_TOLERANCE, 0},
+{303, 1131196082u, 1131151360u, 1060024832u, 0, MODFF_TOLERANCE, 0},
+{304, 1164573183u, 1164570624u, 1059057664u, 0, MODFF_TOLERANCE, 0},
+{305, 1282436638u, 1282436638u, 0u, 0, MODFF_TOLERANCE, 0},
+{306, 3258097678u, 3257925632u, 3207070592u, 0, MODFF_TOLERANCE, 0},
+{307, 1305882290u, 1305882290u, 0u, 0, MODFF_TOLERANCE, 0},
+{308, 3460915348u, 3460915348u, 2147483648u, 0, MODFF_TOLERANCE, 0},
+{309, 1219372260u, 1219372256u, 1040187392u, 0, MODFF_TOLERANCE, 0},
+{310, 1256074626u, 1256074626u, 0u, 0, MODFF_TOLERANCE, 0},
+{311, 3303035472u, 3303030784u, 3205660672u, 0, MODFF_TOLERANCE, 0},
+{312, 1053698677u, 0u, 1053698677u, 0, MODFF_TOLERANCE, 0},
+{313, 3284313107u, 3284303872u, 3197127680u, 0, MODFF_TOLERANCE, 0},
+{314, 3396166221u, 3396166220u, 3196059648u, 0, MODFF_TOLERANCE, 0},
+{315, 1201894512u, 1201894400u, 1063256064u, 0, MODFF_TOLERANCE, 0},
+{316, 1085398440u, 1084227584u, 1057942848u, 0, MODFF_TOLERANCE, 0},
+{317, 3458934263u, 3458934263u, 2147483648u, 0, MODFF_TOLERANCE, 0},
+{318, 1005577835u, 0u, 1005577835u, 0, MODFF_TOLERANCE, 0},
+{319, 1065761827u, 1065353216u, 1028097120u, 0, MODFF_TOLERANCE, 0},
+{320, 3333928591u, 3333928448u, 3197042688u, 0, MODFF_TOLERANCE, 0},
+{321, 926665223u, 0u, 926665223u, 0, MODFF_TOLERANCE, 0},
+{322, 3383521344u, 3383521344u, 2147483648u, 0, MODFF_TOLERANCE, 0},
+{323, 1199816046u, 1199815936u, 1062993920u, 0, MODFF_TOLERANCE, 0},
+{324, 3333779015u, 3333778944u, 3188588544u, 0, MODFF_TOLERANCE, 0},
+{325, 952421041u, 0u, 952421041u, 0, MODFF_TOLERANCE, 0},
+{326, 948398145u, 0u, 948398145u, 0, MODFF_TOLERANCE, 0},
+{327, 3238273189u, 3238002688u, 3196327072u, 0, MODFF_TOLERANCE, 0},
+{328, 1270257895u, 1270257895u, 0u, 0, MODFF_TOLERANCE, 0},
+{329, 1080781593u, 1077936128u, 1059957860u, 0, MODFF_TOLERANCE, 0},
+{330, 1213908300u, 1213908288u, 1044381696u, 0, MODFF_TOLERANCE, 0},
+{331, 1014754300u, 0u, 1014754300u, 0, MODFF_TOLERANCE, 0},
+{332, 3235326590u, 3233808384u, 3208205296u, 0, MODFF_TOLERANCE, 0},
+{333, 1271705594u, 1271705594u, 0u, 0, MODFF_TOLERANCE, 0},
+{334, 1051802647u, 0u, 1051802647u, 0, MODFF_TOLERANCE, 0},
+{335, 965378004u, 0u, 965378004u, 0, MODFF_TOLERANCE, 0},
+{336, 1292594138u, 1292594138u, 0u, 0, MODFF_TOLERANCE, 0},
+{337, 3226990408u, 3225419776u, 3200236096u, 0, MODFF_TOLERANCE, 0},
+{338, 1110755136u, 1110704128u, 1044856832u, 0, MODFF_TOLERANCE, 0},
+{339, 3293953199u, 3293937664u, 3211967488u, 0, MODFF_TOLERANCE, 0},
+{340, 1122474770u, 1122369536u, 1062045952u, 0, MODFF_TOLERANCE, 0},
+{341, 1283624229u, 1283624229u, 0u, 0, MODFF_TOLERANCE, 0},
+{342, 906796922u, 0u, 906796922u, 0, MODFF_TOLERANCE, 0},
+{343, 1163935062u, 1163931648u, 1062559744u, 0, MODFF_TOLERANCE, 0},
+{344, 970649315u, 0u, 970649315u, 0, MODFF_TOLERANCE, 0},
+{345, 1078286437u, 1077936128u, 1034620064u, 0, MODFF_TOLERANCE, 0},
+{346, 959776291u, 0u, 959776291u, 0, MODFF_TOLERANCE, 0},
+{347, 3280345347u, 3280338944u, 3192395776u, 0, MODFF_TOLERANCE, 0},
+{348, 3341117305u, 3341117184u, 3203530752u, 0, MODFF_TOLERANCE, 0},
+{349, 3294559023u, 3294543872u, 3211574272u, 0, MODFF_TOLERANCE, 0},
+{350, 1270734970u, 1270734970u, 0u, 0, MODFF_TOLERANCE, 0},
+{351, 3355874874u, 3355874816u, 3211264000u, 0, MODFF_TOLERANCE, 0},
+{352, 3454816067u, 3454816067u, 2147483648u, 0, MODFF_TOLERANCE, 0},
+{353, 917206623u, 0u, 917206623u, 0, MODFF_TOLERANCE, 0},
+{354, 1172710814u, 1172709376u, 1060356096u, 0, MODFF_TOLERANCE, 0},
+{355, 1106502045u, 1106247680u, 1056466752u, 0, MODFF_TOLERANCE, 0},
+{356, 1290849316u, 1290849316u, 0u, 0, MODFF_TOLERANCE, 0},
+{357, 1157598381u, 1157595136u, 1053478912u, 0, MODFF_TOLERANCE, 0},
+{358, 3309023746u, 3309023232u, 3187703808u, 0, MODFF_TOLERANCE, 0},
+{359, 1092590501u, 1091567616u, 1064942160u, 0, MODFF_TOLERANCE, 0},
+{360, 3335234513u, 3335234048u, 3211296768u, 0, MODFF_TOLERANCE, 0},
+{361, 1002337336u, 0u, 1002337336u, 0, MODFF_TOLERANCE, 0},
+{362, 1279489061u, 1279489061u, 0u, 0, MODFF_TOLERANCE, 0},
+{363, 1006049444u, 0u, 1006049444u, 0, MODFF_TOLERANCE, 0},
+{364, 1110992491u, 1110966272u, 1036834304u, 0, MODFF_TOLERANCE, 0},
+{365, 1309984610u, 1309984610u, 0u, 0, MODFF_TOLERANCE, 0},
+{366, 1165036009u, 1165033472u, 1058967552u, 0, MODFF_TOLERANCE, 0},
+{367, 1233171235u, 1233171232u, 1052770304u, 0, MODFF_TOLERANCE, 0},
+{368, 1148920078u, 1148911616u, 1057241088u, 0, MODFF_TOLERANCE, 0},
+{369, 1007674793u, 0u, 1007674793u, 0, MODFF_TOLERANCE, 0},
+{370, 3230867340u, 3229614080u, 3206085728u, 0, MODFF_TOLERANCE, 0},
+{371, 1159415661u, 1159413760u, 1055760384u, 0, MODFF_TOLERANCE, 0},
+{372, 1109198803u, 1109131264u, 1048832384u, 0, MODFF_TOLERANCE, 0},
+{373, 1221754614u, 1221754592u, 1060110336u, 0, MODFF_TOLERANCE, 0},
+{374, 3219949483u, 3212836864u, 3210284886u, 0, MODFF_TOLERANCE, 0},
+{375, 1056167693u, 0u, 1056167693u, 0, MODFF_TOLERANCE, 0},
+{376, 3361149474u, 3361149440u, 3204972544u, 0, MODFF_TOLERANCE, 0},
+{377, 3387342069u, 3387342064u, 3206545408u, 0, MODFF_TOLERANCE, 0},
+{378, 1118474231u, 1118437376u, 1049622272u, 0, MODFF_TOLERANCE, 0},
+{379, 1207502108u, 1207502080u, 1046478848u, 0, MODFF_TOLERANCE, 0},
+{380, 3388073586u, 3388073584u, 3196059648u, 0, MODFF_TOLERANCE, 0},
+{381, 1000014431u, 0u, 1000014431u, 0, MODFF_TOLERANCE, 0},
+{382, 3382954009u, 3382954008u, 3187671040u, 0, MODFF_TOLERANCE, 0},
+{383, 1234530539u, 1234530536u, 1052770304u, 0, MODFF_TOLERANCE, 0},
+{384, 1079988872u, 1077936128u, 1056609344u, 0, MODFF_TOLERANCE, 0},
+{385, 1017843965u, 0u, 1017843965u, 0, MODFF_TOLERANCE, 0},
+{386, 1193076204u, 1193075968u, 1064042496u, 0, MODFF_TOLERANCE, 0},
+{387, 3248194237u, 3247964160u, 3202395968u, 0, MODFF_TOLERANCE, 0},
+{388, 951862956u, 0u, 951862956u, 0, MODFF_TOLERANCE, 0},
+{389, 1173464654u, 1173463040u, 1061797888u, 0, MODFF_TOLERANCE, 0},
+{390, 3306328852u, 3306328064u, 3192193024u, 0, MODFF_TOLERANCE, 0},
+{391, 1118701064u, 1118699520u, 1010892800u, 0, MODFF_TOLERANCE, 0},
+{392, 1291910469u, 1291910469u, 0u, 0, MODFF_TOLERANCE, 0},
+{393, 1211303367u, 1211303360u, 1038090240u, 0, MODFF_TOLERANCE, 0},
+{394, 1173894400u, 1173893120u, 1059061760u, 0, MODFF_TOLERANCE, 0},
+{395, 1131927531u, 1131872256u, 1062726400u, 0, MODFF_TOLERANCE, 0},
+{396, 3449879391u, 3449879391u, 2147483648u, 0, MODFF_TOLERANCE, 0},
+{397, 991614550u, 0u, 991614550u, 0, MODFF_TOLERANCE, 0},
+{398, 970094304u, 0u, 970094304u, 0, MODFF_TOLERANCE, 0},
+{399, 3344590506u, 3344590336u, 3207200768u, 0, MODFF_TOLERANCE, 0},
+{400, 1125551064u, 1125515264u, 1057740800u, 0, MODFF_TOLERANCE, 0},
+{401, 3331248076u, 3331247616u, 3211132928u, 0, MODFF_TOLERANCE, 0},
+{402, 3427296372u, 3427296372u, 2147483648u, 0, MODFF_TOLERANCE, 0},
+{403, 3455289118u, 3455289118u, 2147483648u, 0, MODFF_TOLERANCE, 0},
+{404, 1198917460u, 1198917376u, 1051197440u, 0, MODFF_TOLERANCE, 0},
+{405, 1327195159u, 1327195159u, 0u, 0, MODFF_TOLERANCE, 0},
+{406, 3476082461u, 3476082461u, 2147483648u, 0, MODFF_TOLERANCE, 0},
+{407, 921940707u, 0u, 921940707u, 0, MODFF_TOLERANCE, 0},
+{408, 1091906532u, 1091567616u, 1051032704u, 0, MODFF_TOLERANCE, 0},
+{409, 3393557778u, 3393557776u, 3204448256u, 0, MODFF_TOLERANCE, 0},
+{410, 3383396815u, 3383396808u, 3210739712u, 0, MODFF_TOLERANCE, 0},
+{411, 1276853215u, 1276853215u, 0u, 0, MODFF_TOLERANCE, 0},
+{412, 873199561u, 0u, 873199561u, 0, MODFF_TOLERANCE, 0},
+{413, 3462778440u, 3462778440u, 2147483648u, 0, MODFF_TOLERANCE, 0},
+{414, 3349284325u, 3349284224u, 3209297920u, 0, MODFF_TOLERANCE, 0},
+{415, 3470358002u, 3470358002u, 2147483648u, 0, MODFF_TOLERANCE, 0},
+{416, 3360170117u, 3360170112u, 3181379584u, 0, MODFF_TOLERANCE, 0},
+{417, 3224245428u, 3221225472u, 3208139472u, 0, MODFF_TOLERANCE, 0},
+{418, 3271307999u, 3271294976u, 3184229376u, 0, MODFF_TOLERANCE, 0},
+{419, 1120124467u, 1120010240u, 1063197056u, 0, MODFF_TOLERANCE, 0},
+{420, 1135619937u, 1135607808u, 1052607488u, 0, MODFF_TOLERANCE, 0},
+{421, 1064364381u, 0u, 1064364381u, 0, MODFF_TOLERANCE, 0},
+{422, 1268744779u, 1268744779u, 0u, 0, MODFF_TOLERANCE, 0},
+{423, 3328452652u, 3328452608u, 3174039552u, 0, MODFF_TOLERANCE, 0},
+{424, 1165195428u, 1165193216u, 1057636352u, 0, MODFF_TOLERANCE, 0},
+{425, 3390323168u, 3390323168u, 2147483648u, 0, MODFF_TOLERANCE, 0},
+{426, 1106497311u, 1106247680u, 1056163776u, 0, MODFF_TOLERANCE, 0},
+{427, 1278465842u, 1278465842u, 0u, 0, MODFF_TOLERANCE, 0},
+{428, 3247790039u, 3247439872u, 3207264992u, 0, MODFF_TOLERANCE, 0},
+{429, 909788142u, 0u, 909788142u, 0, MODFF_TOLERANCE, 0},
+{430, 3215244648u, 3212836864u, 3197302176u, 0, MODFF_TOLERANCE, 0},
+{431, 1083988595u, 1082130432u, 1063441304u, 0, MODFF_TOLERANCE, 0},
+{432, 989153382u, 0u, 989153382u, 0, MODFF_TOLERANCE, 0},
+{433, 1117455718u, 1117388800u, 1057141504u, 0, MODFF_TOLERANCE, 0},
+{434, 1061714285u, 0u, 1061714285u, 0, MODFF_TOLERANCE, 0},
+{435, 1212717473u, 1212717440u, 1057226752u, 0, MODFF_TOLERANCE, 0},
+{436, 3275973009u, 3275948032u, 3200459264u, 0, MODFF_TOLERANCE, 0},
+{437, 3450721670u, 3450721670u, 2147483648u, 0, MODFF_TOLERANCE, 0},
+{438, 3391162308u, 3391162308u, 2147483648u, 0, MODFF_TOLERANCE, 0},
+{439, 1291220039u, 1291220039u, 0u, 0, MODFF_TOLERANCE, 0},
+{440, 1044867873u, 0u, 1044867873u, 0, MODFF_TOLERANCE, 0},
+{441, 3369493273u, 3369493248u, 3209166848u, 0, MODFF_TOLERANCE, 0},
+{442, 1089986803u, 1088421888u, 1061095320u, 0, MODFF_TOLERANCE, 0},
+{443, 3462160118u, 3462160118u, 2147483648u, 0, MODFF_TOLERANCE, 0},
+{444, 1296314700u, 1296314700u, 0u, 0, MODFF_TOLERANCE, 0},
+{445, 1251462432u, 1251462432u, 0u, 0, MODFF_TOLERANCE, 0},
+{446, 3485236902u, 3485236902u, 2147483648u, 0, MODFF_TOLERANCE, 0},
+{447, 980772835u, 0u, 980772835u, 0, MODFF_TOLERANCE, 0},
+{448, 3262169538u, 3262119936u, 3191980544u, 0, MODFF_TOLERANCE, 0},
+{449, 1268270462u, 1268270462u, 0u, 0, MODFF_TOLERANCE, 0},
+{450, 994641495u, 0u, 994641495u, 0, MODFF_TOLERANCE, 0},
+{451, 1022211242u, 0u, 1022211242u, 0, MODFF_TOLERANCE, 0},
+{452, 922124181u, 0u, 922124181u, 0, MODFF_TOLERANCE, 0},
+{453, 884661176u, 0u, 884661176u, 0, MODFF_TOLERANCE, 0},
+{454, 3271100396u, 3271032832u, 3204707840u, 0, MODFF_TOLERANCE, 0},
+{455, 989762529u, 0u, 989762529u, 0, MODFF_TOLERANCE, 0},
+{456, 3362011135u, 3362011072u, 3212574720u, 0, MODFF_TOLERANCE, 0},
+{457, 1295475718u, 1295475718u, 0u, 0, MODFF_TOLERANCE, 0},
+{458, 1002632518u, 0u, 1002632518u, 0, MODFF_TOLERANCE, 0},
+{459, 3330388441u, 3330387968u, 3211558912u, 0, MODFF_TOLERANCE, 0},
+{460, 3404372005u, 3404372004u, 3204448256u, 0, MODFF_TOLERANCE, 0},
+{461, 3450484255u, 3450484255u, 2147483648u, 0, MODFF_TOLERANCE, 0},
+{462, 1218447414u, 1218447392u, 1060110336u, 0, MODFF_TOLERANCE, 0},
+{463, 1125800069u, 1125777408u, 1051789824u, 0, MODFF_TOLERANCE, 0},
+{464, 3256265749u, 3256090624u, 3207267648u, 0, MODFF_TOLERANCE, 0},
+{465, 1300246663u, 1300246663u, 0u, 0, MODFF_TOLERANCE, 0},
+{466, 999985470u, 0u, 999985470u, 0, MODFF_TOLERANCE, 0},
+{467, 3409354318u, 3409354318u, 2147483648u, 0, MODFF_TOLERANCE, 0},
+{468, 1189421739u, 1189421568u, 1051394048u, 0, MODFF_TOLERANCE, 0},
+{469, 1056599002u, 0u, 1056599002u, 0, MODFF_TOLERANCE, 0},
+{470, 3391513557u, 3391513556u, 3196059648u, 0, MODFF_TOLERANCE, 0},
+{471, 3467473756u, 3467473756u, 2147483648u, 0, MODFF_TOLERANCE, 0},
+{472, 3444521949u, 3444521949u, 2147483648u, 0, MODFF_TOLERANCE, 0},
+{473, 1164046161u, 1164042240u, 1064636416u, 0, MODFF_TOLERANCE, 0},
+{474, 3440635788u, 3440635788u, 2147483648u, 0, MODFF_TOLERANCE, 0},
+{475, 1292596266u, 1292596266u, 0u, 0, MODFF_TOLERANCE, 0},
+{476, 3469748379u, 3469748379u, 2147483648u, 0, MODFF_TOLERANCE, 0},
+{477, 3412765608u, 3412765608u, 2147483648u, 0, MODFF_TOLERANCE, 0},
+{478, 1314644642u, 1314644642u, 0u, 0, MODFF_TOLERANCE, 0},
+{479, 3399813173u, 3399813172u, 3204448256u, 0, MODFF_TOLERANCE, 0},
+{480, 948775569u, 0u, 948775569u, 0, MODFF_TOLERANCE, 0},
+{481, 3485444126u, 3485444126u, 2147483648u, 0, MODFF_TOLERANCE, 0},
+{482, 1034611395u, 0u, 1034611395u, 0, MODFF_TOLERANCE, 0},
+{483, 882288581u, 0u, 882288581u, 0, MODFF_TOLERANCE, 0},
+{484, 3489122735u, 3489122735u, 2147483648u, 0, MODFF_TOLERANCE, 0},
+{485, 3372450889u, 3372450880u, 3205496832u, 0, MODFF_TOLERANCE, 0},
+{486, 1181604787u, 1181603840u, 1064091648u, 0, MODFF_TOLERANCE, 0},
+{487, 3363067409u, 3363067392u, 3196583936u, 0, MODFF_TOLERANCE, 0},
+{488, 1043691622u, 0u, 1043691622u, 0, MODFF_TOLERANCE, 0},
+{489, 3402603223u, 3402603222u, 3204448256u, 0, MODFF_TOLERANCE, 0},
+{490, 1314588083u, 1314588083u, 0u, 0, MODFF_TOLERANCE, 0},
+{491, 3442525943u, 3442525943u, 2147483648u, 0, MODFF_TOLERANCE, 0},
+{492, 3451674717u, 3451674717u, 2147483648u, 0, MODFF_TOLERANCE, 0},
+{493, 3400949680u, 3400949680u, 2147483648u, 0, MODFF_TOLERANCE, 0},
+{494, 3365581801u, 3365581792u, 3197108224u, 0, MODFF_TOLERANCE, 0},
+{495, 1175843167u, 1175842816u, 1051688960u, 0, MODFF_TOLERANCE, 0},
+{496, 1110424755u, 1110179840u, 1064250560u, 0, MODFF_TOLERANCE, 0},
+{497, 927278934u, 0u, 927278934u, 0, MODFF_TOLERANCE, 0},
+{498, 969804941u, 0u, 969804941u, 0, MODFF_TOLERANCE, 0},
+{499, 3355439348u, 3355439232u, 3211264000u, 0, MODFF_TOLERANCE, 0},
+{500, 1139120919u, 1139113984u, 1046001664u, 0, MODFF_TOLERANCE, 0},
+{501, 3270515074u, 3270508544u, 3175878656u, 0, MODFF_TOLERANCE, 0},
+{502, 3325199970u, 3325199360u, 3206053888u, 0, MODFF_TOLERANCE, 0},
+{503, 934308144u, 0u, 934308144u, 0, MODFF_TOLERANCE, 0},
+{504, 1220524226u, 1220524224u, 1031798784u, 0, MODFF_TOLERANCE, 0},
+{505, 1152648002u, 1152647168u, 1037074432u, 0, MODFF_TOLERANCE, 0},
+{506, 3461790298u, 3461790298u, 2147483648u, 0, MODFF_TOLERANCE, 0},
+{507, 3382391700u, 3382391696u, 3204448256u, 0, MODFF_TOLERANCE, 0},
+{508, 3296962745u, 3296960512u, 3196817408u, 0, MODFF_TOLERANCE, 0},
+{509, 1156767533u, 1156759552u, 1064921088u, 0, MODFF_TOLERANCE, 0},
+{510, 1088986462u, 1088421888u, 1049220576u, 0, MODFF_TOLERANCE, 0},
+{511, 3312324949u, 3312324608u, 3182067712u, 0, MODFF_TOLERANCE, 0},
+{512, 994934087u, 0u, 994934087u, 0, MODFF_TOLERANCE, 0},
+{513, 967678094u, 0u, 967678094u, 0, MODFF_TOLERANCE, 0},
+{514, 1123403720u, 1123287040u, 1063511040u, 0, MODFF_TOLERANCE, 0},
+{515, 1093936408u, 1093664768u, 1048879872u, 0, MODFF_TOLERANCE, 0},
+{516, 3287317742u, 3287285760u, 3212434432u, 0, MODFF_TOLERANCE, 0},
+{517, 3479873563u, 3479873563u, 2147483648u, 0, MODFF_TOLERANCE, 0},
+{518, 1246277393u, 1246277392u, 1048576000u, 0, MODFF_TOLERANCE, 0},
+{519, 3424264117u, 3424264117u, 2147483648u, 0, MODFF_TOLERANCE, 0},
+{520, 3434026174u, 3434026174u, 2147483648u, 0, MODFF_TOLERANCE, 0},
+{521, 3228365887u, 3225419776u, 3207844092u, 0, MODFF_TOLERANCE, 0},
+{522, 1216775310u, 1216775296u, 1054867456u, 0, MODFF_TOLERANCE, 0},
+{523, 1035909900u, 0u, 1035909900u, 0, MODFF_TOLERANCE, 0},
+{524, 1249532942u, 1249532940u, 1056964608u, 0, MODFF_TOLERANCE, 0},
+{525, 1274271338u, 1274271338u, 0u, 0, MODFF_TOLERANCE, 0},
+{526, 1247632131u, 1247632128u, 1061158912u, 0, MODFF_TOLERANCE, 0},
+{527, 1212129651u, 1212129600u, 1061945344u, 0, MODFF_TOLERANCE, 0},
+{528, 955826310u, 0u, 955826310u, 0, MODFF_TOLERANCE, 0},
+{529, 1037464105u, 0u, 1037464105u, 0, MODFF_TOLERANCE, 0},
+{530, 1311706596u, 1311706596u, 0u, 0, MODFF_TOLERANCE, 0},
+{531, 1254918706u, 1254918706u, 0u, 0, MODFF_TOLERANCE, 0},
+{532, 918212457u, 0u, 918212457u, 0, MODFF_TOLERANCE, 0},
+{533, 1017468331u, 0u, 1017468331u, 0, MODFF_TOLERANCE, 0},
+{534, 1337315179u, 1337315179u, 0u, 0, MODFF_TOLERANCE, 0},
+{535, 3461361185u, 3461361185u, 2147483648u, 0, MODFF_TOLERANCE, 0},
+{536, 1131358407u, 1131347968u, 1042488320u, 0, MODFF_TOLERANCE, 0},
+{537, 3325958870u, 3325958144u, 3207954432u, 0, MODFF_TOLERANCE, 0},
+{538, 1156517523u, 1156513792u, 1055469568u, 0, MODFF_TOLERANCE, 0},
+{539, 3343716230u, 3343716096u, 3204841472u, 0, MODFF_TOLERANCE, 0},
+{540, 3337499209u, 3337499136u, 3188850688u, 0, MODFF_TOLERANCE, 0},
+{541, 1226297264u, 1226297264u, 0u, 0, MODFF_TOLERANCE, 0},
+{542, 3468429030u, 3468429030u, 2147483648u, 0, MODFF_TOLERANCE, 0},
+{543, 3253874001u, 3253731328u, 3196802112u, 0, MODFF_TOLERANCE, 0},
+{544, 3253515800u, 3253207040u, 3205939968u, 0, MODFF_TOLERANCE, 0},
+{545, 1189005947u, 1189005824u, 1047920640u, 0, MODFF_TOLERANCE, 0},
+{546, 959956547u, 0u, 959956547u, 0, MODFF_TOLERANCE, 0},
+{547, 876324728u, 0u, 876324728u, 0, MODFF_TOLERANCE, 0},
+{548, 3425290480u, 3425290480u, 2147483648u, 0, MODFF_TOLERANCE, 0},
+{549, 1139193797u, 1139179520u, 1054807040u, 0, MODFF_TOLERANCE, 0},
+{550, 1039917375u, 0u, 1039917375u, 0, MODFF_TOLERANCE, 0},
+{551, 1122740999u, 1122631680u, 1062568832u, 0, MODFF_TOLERANCE, 0},
+{552, 3220979495u, 3212836864u, 3212344910u, 0, MODFF_TOLERANCE, 0},
+{553, 3429223871u, 3429223871u, 2147483648u, 0, MODFF_TOLERANCE, 0},
+{554, 1311016004u, 1311016004u, 0u, 0, MODFF_TOLERANCE, 0},
+{555, 3334899880u, 3334899712u, 3198681088u, 0, MODFF_TOLERANCE, 0},
+{556, 1128016396u, 1128005632u, 1042821120u, 0, MODFF_TOLERANCE, 0},
+{557, 1105151547u, 1104674816u, 1063831392u, 0, MODFF_TOLERANCE, 0},
+{558, 3404762495u, 3404762494u, 3204448256u, 0, MODFF_TOLERANCE, 0},
+{559, 1206054701u, 1206054656u, 1051983872u, 0, MODFF_TOLERANCE, 0},
+{560, 1162227076u, 1162223616u, 1062748160u, 0, MODFF_TOLERANCE, 0},
+{561, 970745811u, 0u, 970745811u, 0, MODFF_TOLERANCE, 0},
+{562, 3313826904u, 3313825792u, 3205169152u, 0, MODFF_TOLERANCE, 0},
+{563, 1213609983u, 1213609920u, 1065091072u, 0, MODFF_TOLERANCE, 0},
+{564, 919983950u, 0u, 919983950u, 0, MODFF_TOLERANCE, 0},
+{565, 1246902946u, 1246902944u, 1056964608u, 0, MODFF_TOLERANCE, 0},
+{566, 995850843u, 0u, 995850843u, 0, MODFF_TOLERANCE, 0},
+{567, 1332031130u, 1332031130u, 0u, 0, MODFF_TOLERANCE, 0},
+{568, 3362082828u, 3362082816u, 3191865344u, 0, MODFF_TOLERANCE, 0},
+{569, 3374056268u, 3374056256u, 3208642560u, 0, MODFF_TOLERANCE, 0},
+{570, 1029480631u, 0u, 1029480631u, 0, MODFF_TOLERANCE, 0},
+{571, 3384988527u, 3384988520u, 3210739712u, 0, MODFF_TOLERANCE, 0},
+{572, 1317696241u, 1317696241u, 0u, 0, MODFF_TOLERANCE, 0},
+{573, 3235395924u, 3233808384u, 3208759968u, 0, MODFF_TOLERANCE, 0},
+{574, 1132055244u, 1132003328u, 1061866496u, 0, MODFF_TOLERANCE, 0},
+{575, 3341877624u, 3341877504u, 3203399680u, 0, MODFF_TOLERANCE, 0},
+{576, 1228636133u, 1228636128u, 1050673152u, 0, MODFF_TOLERANCE, 0},
+{577, 886552820u, 0u, 886552820u, 0, MODFF_TOLERANCE, 0},
+{578, 3335899347u, 3335899136u, 3201499136u, 0, MODFF_TOLERANCE, 0},
+{579, 3307203982u, 3307200512u, 3210272768u, 0, MODFF_TOLERANCE, 0},
+{580, 1207246237u, 1207246208u, 1047003136u, 0, MODFF_TOLERANCE, 0},
+{581, 1165476654u, 1165475840u, 1045135360u, 0, MODFF_TOLERANCE, 0},
+{582, 3350219111u, 3350219008u, 3209560064u, 0, MODFF_TOLERANCE, 0},
+{583, 1215278023u, 1215278016u, 1038090240u, 0, MODFF_TOLERANCE, 0},
+{584, 1017239798u, 0u, 1017239798u, 0, MODFF_TOLERANCE, 0},
+{585, 3438501281u, 3438501281u, 2147483648u, 0, MODFF_TOLERANCE, 0},
+{586, 1149651309u, 1149648896u, 1050071040u, 0, MODFF_TOLERANCE, 0},
+{587, 970030475u, 0u, 970030475u, 0, MODFF_TOLERANCE, 0},
+{588, 1111943722u, 1111752704u, 1060801152u, 0, MODFF_TOLERANCE, 0},
+{589, 1158358450u, 1158356992u, 1052131328u, 0, MODFF_TOLERANCE, 0},
+{590, 1189849849u, 1189849600u, 1056505856u, 0, MODFF_TOLERANCE, 0},
+{591, 3382739134u, 3382739128u, 3208642560u, 0, MODFF_TOLERANCE, 0},
+{592, 1249758327u, 1249758324u, 1061158912u, 0, MODFF_TOLERANCE, 0},
+{593, 3445282331u, 3445282331u, 2147483648u, 0, MODFF_TOLERANCE, 0},
+{594, 1168098747u, 1168097280u, 1060593664u, 0, MODFF_TOLERANCE, 0},
+{595, 1316854744u, 1316854744u, 0u, 0, MODFF_TOLERANCE, 0},
+{596, 892549317u, 0u, 892549317u, 0, MODFF_TOLERANCE, 0},
+{597, 1179637545u, 1179636736u, 1061830656u, 0, MODFF_TOLERANCE, 0},
+{598, 3301009024u, 3301007360u, 3192913920u, 0, MODFF_TOLERANCE, 0},
+{599, 3406174560u, 3406174560u, 2147483648u, 0, MODFF_TOLERANCE, 0},
+{600, 3233089227u, 3231711232u, 3207083608u, 0, MODFF_TOLERANCE, 0},
+{601, 1212652543u, 1212652480u, 1065091072u, 0, MODFF_TOLERANCE, 0},
+{602, 3218245284u, 3212836864u, 3206876488u, 0, MODFF_TOLERANCE, 0},
+{603, 1238873830u, 1238873824u, 1061158912u, 0, MODFF_TOLERANCE, 0},
+{604, 3215981890u, 3212836864u, 3200251144u, 0, MODFF_TOLERANCE, 0},
+{605, 3240474694u, 3240099840u, 3199666368u, 0, MODFF_TOLERANCE, 0},
+{606, 1266687209u, 1266687209u, 0u, 0, MODFF_TOLERANCE, 0},
+{607, 3410090781u, 3410090781u, 2147483648u, 0, MODFF_TOLERANCE, 0},
+{608, 3487959775u, 3487959775u, 2147483648u, 0, MODFF_TOLERANCE, 0},
+{609, 3331372071u, 3331372032u, 3181117440u, 0, MODFF_TOLERANCE, 0},
+{610, 943645710u, 0u, 943645710u, 0, MODFF_TOLERANCE, 0},
+{611, 3345065699u, 3345065472u, 3210936320u, 0, MODFF_TOLERANCE, 0},
+{612, 3282620725u, 3282599936u, 3206703616u, 0, MODFF_TOLERANCE, 0},
+{613, 935847271u, 0u, 935847271u, 0, MODFF_TOLERANCE, 0},
+{614, 1067255804u, 1065353216u, 1047019488u, 0, MODFF_TOLERANCE, 0},
+{615, 3410336089u, 3410336089u, 2147483648u, 0, MODFF_TOLERANCE, 0},
+{616, 1111437780u, 1111228416u, 1061975296u, 0, MODFF_TOLERANCE, 0},
+{617, 1336840432u, 1336840432u, 0u, 0, MODFF_TOLERANCE, 0},
+{618, 1141063391u, 1141047296u, 1065057280u, 0, MODFF_TOLERANCE, 0},
+{619, 1168908072u, 1168906240u, 1063583744u, 0, MODFF_TOLERANCE, 0},
+{620, 3289799763u, 3289792512u, 3202521088u, 0, MODFF_TOLERANCE, 0},
+{621, 3353679791u, 3353679744u, 3199991808u, 0, MODFF_TOLERANCE, 0},
+{622, 897158391u, 0u, 897158391u, 0, MODFF_TOLERANCE, 0},
+{623, 1001823878u, 0u, 1001823878u, 0, MODFF_TOLERANCE, 0},
+{624, 1016826861u, 0u, 1016826861u, 0, MODFF_TOLERANCE, 0},
+{625, 1009130212u, 0u, 1009130212u, 0, MODFF_TOLERANCE, 0},
+{626, 1004302940u, 0u, 1004302940u, 0, MODFF_TOLERANCE, 0},
+{627, 3367127535u, 3367127520u, 3203399680u, 0, MODFF_TOLERANCE, 0},
+{628, 943136342u, 0u, 943136342u, 0, MODFF_TOLERANCE, 0},
+{629, 1032920919u, 0u, 1032920919u, 0, MODFF_TOLERANCE, 0},
+{630, 3449126417u, 3449126417u, 2147483648u, 0, MODFF_TOLERANCE, 0},
+{631, 3281952870u, 3281944576u, 3196164096u, 0, MODFF_TOLERANCE, 0},
+{632, 1237868497u, 1237868496u, 1040187392u, 0, MODFF_TOLERANCE, 0},
+{633, 1153753924u, 1153753088u, 1037107200u, 0, MODFF_TOLERANCE, 0},
+{634, 3322269242u, 3322268672u, 3205398528u, 0, MODFF_TOLERANCE, 0},
+{635, 1120261759u, 1120141312u, 1063993216u, 0, MODFF_TOLERANCE, 0},
+{636, 892210998u, 0u, 892210998u, 0, MODFF_TOLERANCE, 0},
+{637, 3226328360u, 3225419776u, 3193819776u, 0, MODFF_TOLERANCE, 0},
+{638, 3366432856u, 3366432832u, 3208642560u, 0, MODFF_TOLERANCE, 0},
+{639, 3349595986u, 3349595904u, 3206807552u, 0, MODFF_TOLERANCE, 0},
+{640, 3251588707u, 3251109888u, 3211381856u, 0, MODFF_TOLERANCE, 0},
+{641, 3306023523u, 3306020864u, 3206950912u, 0, MODFF_TOLERANCE, 0},
+{642, 1087750238u, 1086324736u, 1059980016u, 0, MODFF_TOLERANCE, 0},
+{643, 1099325523u, 1098907648u, 1061948000u, 0, MODFF_TOLERANCE, 0},
+{644, 3359488363u, 3359488320u, 3207331840u, 0, MODFF_TOLERANCE, 0},
+{645, 1066116543u, 1065353216u, 1035623408u, 0, MODFF_TOLERANCE, 0},
+{646, 3364074347u, 3364074336u, 3199205376u, 0, MODFF_TOLERANCE, 0},
+{647, 1030612298u, 0u, 1030612298u, 0, MODFF_TOLERANCE, 0},
+{648, 3345396001u, 3345395968u, 3187933184u, 0, MODFF_TOLERANCE, 0},
+{649, 989161453u, 0u, 989161453u, 0, MODFF_TOLERANCE, 0},
+{650, 1186234578u, 1186234368u, 1053949952u, 0, MODFF_TOLERANCE, 0},
+{651, 1331680743u, 1331680743u, 0u, 0, MODFF_TOLERANCE, 0},
+{652, 1009396165u, 0u, 1009396165u, 0, MODFF_TOLERANCE, 0},
+{653, 894661023u, 0u, 894661023u, 0, MODFF_TOLERANCE, 0},
+{654, 1326067357u, 1326067357u, 0u, 0, MODFF_TOLERANCE, 0},
+{655, 887589411u, 0u, 887589411u, 0, MODFF_TOLERANCE, 0},
+{656, 1292305693u, 1292305693u, 0u, 0, MODFF_TOLERANCE, 0},
+{657, 1045232522u, 0u, 1045232522u, 0, MODFF_TOLERANCE, 0},
+{658, 3234993273u, 3233808384u, 3205538760u, 0, MODFF_TOLERANCE, 0},
+{659, 962515365u, 0u, 962515365u, 0, MODFF_TOLERANCE, 0},
+{660, 3349432725u, 3349432704u, 3190292480u, 0, MODFF_TOLERANCE, 0},
+{661, 928848003u, 0u, 928848003u, 0, MODFF_TOLERANCE, 0},
+{662, 912423027u, 0u, 912423027u, 0, MODFF_TOLERANCE, 0},
+{663, 3228795133u, 3225419776u, 3209561076u, 0, MODFF_TOLERANCE, 0},
+{664, 3273940030u, 3273916416u, 3199761408u, 0, MODFF_TOLERANCE, 0},
+{665, 3296784303u, 3296780288u, 3204116480u, 0, MODFF_TOLERANCE, 0},
+{666, 3276182352u, 3276144640u, 3205713920u, 0, MODFF_TOLERANCE, 0},
+{667, 965402291u, 0u, 965402291u, 0, MODFF_TOLERANCE, 0},
+{668, 3388153589u, 3388153584u, 3206545408u, 0, MODFF_TOLERANCE, 0},
+{669, 3426245389u, 3426245389u, 2147483648u, 0, MODFF_TOLERANCE, 0},
+{670, 1133410485u, 1133379584u, 1064397312u, 0, MODFF_TOLERANCE, 0},
+{671, 3329658993u, 3329658880u, 3185704960u, 0, MODFF_TOLERANCE, 0},
+{672, 1088652637u, 1088421888u, 1038178112u, 0, MODFF_TOLERANCE, 0},
+{673, 3369970587u, 3369970560u, 3210215424u, 0, MODFF_TOLERANCE, 0},
+{674, 959121458u, 0u, 959121458u, 0, MODFF_TOLERANCE, 0},
+{675, 1270451568u, 1270451568u, 0u, 0, MODFF_TOLERANCE, 0},
+{676, 928393353u, 0u, 928393353u, 0, MODFF_TOLERANCE, 0},
+{677, 989498922u, 0u, 989498922u, 0, MODFF_TOLERANCE, 0},
+{678, 1280215674u, 1280215674u, 0u, 0, MODFF_TOLERANCE, 0},
+{679, 1171873518u, 1171871744u, 1063108608u, 0, MODFF_TOLERANCE, 0},
+{680, 954709738u, 0u, 954709738u, 0, MODFF_TOLERANCE, 0},
+{681, 3298258100u, 3298254848u, 3200991232u, 0, MODFF_TOLERANCE, 0},
+{682, 935525182u, 0u, 935525182u, 0, MODFF_TOLERANCE, 0},
+{683, 3415208824u, 3415208824u, 2147483648u, 0, MODFF_TOLERANCE, 0},
+{684, 1001897182u, 0u, 1001897182u, 0, MODFF_TOLERANCE, 0},
+{685, 3245830463u, 3245342720u, 3203278816u, 0, MODFF_TOLERANCE, 0},
+{686, 985903305u, 0u, 985903305u, 0, MODFF_TOLERANCE, 0},
+{687, 3333087577u, 3333087232u, 3207364608u, 0, MODFF_TOLERANCE, 0},
+{688, 3357328848u, 3357328832u, 3196059648u, 0, MODFF_TOLERANCE, 0},
+{689, 982612185u, 0u, 982612185u, 0, MODFF_TOLERANCE, 0},
+{690, 923582663u, 0u, 923582663u, 0, MODFF_TOLERANCE, 0},
+{691, 3267868136u, 3267756032u, 3210408960u, 0, MODFF_TOLERANCE, 0},
+{692, 1208301947u, 1208301888u, 1064042496u, 0, MODFF_TOLERANCE, 0},
+{693, 3319048157u, 3319046144u, 3212550144u, 0, MODFF_TOLERANCE, 0},
+{694, 1172271145u, 1172271104u, 1017380864u, 0, MODFF_TOLERANCE, 0},
+{695, 1144755661u, 1144750080u, 1051617280u, 0, MODFF_TOLERANCE, 0},
+{696, 1051585760u, 0u, 1051585760u, 0, MODFF_TOLERANCE, 0},
+{697, 898467286u, 0u, 898467286u, 0, MODFF_TOLERANCE, 0}
+
+// AUTOMATICALLY GENERATED VECTORS STOP
+
+};
+
+#endif // CYGONCE_LIBM_MODFF_H multiple inclusion protection
+
+// EOF modff.h
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/nextafterf.c b/ecos/packages/language/c/libm/current/tests/vectors/nextafterf.c
new file mode 100644
index 0000000..2d83716
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/nextafterf.c
@@ -0,0 +1,115 @@
+//===========================================================================
+//
+// nextafterf.c
+//
+// Test of nextafterf() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// Declarations for test system:
+//
+// TESTCASE_TYPE=CYG_TEST_MODULE
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include <cyg/infra/testcase.h> // Test infrastructure
+#include <math.h> // Header for this package
+#include <sys/ieeefp.h> // Cyg_libm_ieee_float_shape_type
+#include "vectors/vector_support_float.h"// extra support for math tests
+
+#include "vectors/nextafterf.h"
+
+// FUNCTIONS
+
+static void
+test( CYG_ADDRWORD data )
+{
+ cyg_ucount32 vec_size;
+ cyg_bool ret;
+
+ vec_size = sizeof(nextafterf_vec) / sizeof(Cyg_libm_test_float_vec_t);
+ ret = doTestVecFloat( (CYG_ADDRWORD) &nextafterf, CYG_LIBM_TEST_VEC_FLOAT,
+ CYG_LIBM_TEST_VEC_FLOAT, CYG_LIBM_TEST_VEC_FLOAT,
+ &nextafterf_vec[0], vec_size );
+
+ if (ret==true)
+ {
+ CYG_TEST_PASS("nextafterf() is stable");
+ } // if
+ else
+ {
+ CYG_TEST_FAIL("nextafterf() failed tests");
+ } // else
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for Math "
+ "library nextafterf() function");
+} // test()
+
+
+int
+main(int argc, char *argv[])
+{
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for Math library "
+ "nextafterf() function");
+
+ START_TEST( test );
+
+ CYG_TEST_PASS_FINISH("Testing is not applicable to this configuration");
+
+} // main()
+
+
+// EOF nextafterf.c
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/nextafterf.h b/ecos/packages/language/c/libm/current/tests/vectors/nextafterf.h
new file mode 100644
index 0000000..878ce9e
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/nextafterf.h
@@ -0,0 +1,1126 @@
+#ifndef CYGONCE_LIBM_NEXTAFTERF_H
+#define CYGONCE_LIBM_NEXTAFTERF_H
+//===========================================================================
+//
+// nextafterf.h
+//
+// Test vectors for testing of nextafterf() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage: #include "vectors/nextafterf.h"
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include "vectors/vector_support_float.h"// extra support for math tests
+
+#define NEXTAFTERF_TOLERANCE 1.0E-04
+
+static const Cyg_libm_test_float_vec_t nextafterf_vec[] = {
+
+// AUTOMATICALLY GENERATED VECTORS START
+
+{0, 3214514586u, 0u, 3214514585u, 0, NEXTAFTERF_TOLERANCE, 0},
+{1, 3214430700u, 0u, 3214430699u, 0, NEXTAFTERF_TOLERANCE, 0},
+{2, 3214346813u, 0u, 3214346812u, 0, NEXTAFTERF_TOLERANCE, 0},
+{3, 3214262927u, 0u, 3214262926u, 0, NEXTAFTERF_TOLERANCE, 0},
+{4, 3214179041u, 0u, 3214179040u, 0, NEXTAFTERF_TOLERANCE, 0},
+{5, 3214095155u, 0u, 3214095154u, 0, NEXTAFTERF_TOLERANCE, 0},
+{6, 3214011269u, 0u, 3214011268u, 0, NEXTAFTERF_TOLERANCE, 0},
+{7, 3213927383u, 0u, 3213927382u, 0, NEXTAFTERF_TOLERANCE, 0},
+{8, 3213843497u, 0u, 3213843496u, 0, NEXTAFTERF_TOLERANCE, 0},
+{9, 3213759611u, 0u, 3213759610u, 0, NEXTAFTERF_TOLERANCE, 0},
+{10, 3213675725u, 0u, 3213675724u, 0, NEXTAFTERF_TOLERANCE, 0},
+{11, 3213591839u, 0u, 3213591838u, 0, NEXTAFTERF_TOLERANCE, 0},
+{12, 3213507953u, 0u, 3213507952u, 0, NEXTAFTERF_TOLERANCE, 0},
+{13, 3213424067u, 0u, 3213424066u, 0, NEXTAFTERF_TOLERANCE, 0},
+{14, 3213340180u, 0u, 3213340179u, 0, NEXTAFTERF_TOLERANCE, 0},
+{15, 3213256294u, 0u, 3213256293u, 0, NEXTAFTERF_TOLERANCE, 0},
+{16, 3213172408u, 0u, 3213172407u, 0, NEXTAFTERF_TOLERANCE, 0},
+{17, 3213088522u, 0u, 3213088521u, 0, NEXTAFTERF_TOLERANCE, 0},
+{18, 3213004636u, 0u, 3213004635u, 0, NEXTAFTERF_TOLERANCE, 0},
+{19, 3212920750u, 0u, 3212920749u, 0, NEXTAFTERF_TOLERANCE, 0},
+{20, 3212836864u, 0u, 3212836863u, 0, NEXTAFTERF_TOLERANCE, 0},
+{21, 3212669092u, 0u, 3212669091u, 0, NEXTAFTERF_TOLERANCE, 0},
+{22, 3212501320u, 0u, 3212501319u, 0, NEXTAFTERF_TOLERANCE, 0},
+{23, 3212333548u, 0u, 3212333547u, 0, NEXTAFTERF_TOLERANCE, 0},
+{24, 3212165775u, 0u, 3212165774u, 0, NEXTAFTERF_TOLERANCE, 0},
+{25, 3211998003u, 0u, 3211998002u, 0, NEXTAFTERF_TOLERANCE, 0},
+{26, 3211830231u, 0u, 3211830230u, 0, NEXTAFTERF_TOLERANCE, 0},
+{27, 3211662459u, 0u, 3211662458u, 0, NEXTAFTERF_TOLERANCE, 0},
+{28, 3211494687u, 0u, 3211494686u, 0, NEXTAFTERF_TOLERANCE, 0},
+{29, 3211326915u, 0u, 3211326914u, 0, NEXTAFTERF_TOLERANCE, 0},
+{30, 3211159142u, 0u, 3211159141u, 0, NEXTAFTERF_TOLERANCE, 0},
+{31, 3210991370u, 0u, 3210991369u, 0, NEXTAFTERF_TOLERANCE, 0},
+{32, 3210823598u, 0u, 3210823597u, 0, NEXTAFTERF_TOLERANCE, 0},
+{33, 3210655826u, 0u, 3210655825u, 0, NEXTAFTERF_TOLERANCE, 0},
+{34, 3210488054u, 0u, 3210488053u, 0, NEXTAFTERF_TOLERANCE, 0},
+{35, 3210320282u, 0u, 3210320281u, 0, NEXTAFTERF_TOLERANCE, 0},
+{36, 3210152509u, 0u, 3210152508u, 0, NEXTAFTERF_TOLERANCE, 0},
+{37, 3209984737u, 0u, 3209984736u, 0, NEXTAFTERF_TOLERANCE, 0},
+{38, 3209816965u, 0u, 3209816964u, 0, NEXTAFTERF_TOLERANCE, 0},
+{39, 3209649193u, 0u, 3209649192u, 0, NEXTAFTERF_TOLERANCE, 0},
+{40, 3209481421u, 0u, 3209481420u, 0, NEXTAFTERF_TOLERANCE, 0},
+{41, 3209313649u, 0u, 3209313648u, 0, NEXTAFTERF_TOLERANCE, 0},
+{42, 3209145876u, 0u, 3209145875u, 0, NEXTAFTERF_TOLERANCE, 0},
+{43, 3208978104u, 0u, 3208978103u, 0, NEXTAFTERF_TOLERANCE, 0},
+{44, 3208810332u, 0u, 3208810331u, 0, NEXTAFTERF_TOLERANCE, 0},
+{45, 3208642560u, 0u, 3208642559u, 0, NEXTAFTERF_TOLERANCE, 0},
+{46, 3208474788u, 0u, 3208474787u, 0, NEXTAFTERF_TOLERANCE, 0},
+{47, 3208307016u, 0u, 3208307015u, 0, NEXTAFTERF_TOLERANCE, 0},
+{48, 3208139244u, 0u, 3208139243u, 0, NEXTAFTERF_TOLERANCE, 0},
+{49, 3207971471u, 0u, 3207971470u, 0, NEXTAFTERF_TOLERANCE, 0},
+{50, 3207803699u, 0u, 3207803698u, 0, NEXTAFTERF_TOLERANCE, 0},
+{51, 3207635927u, 0u, 3207635926u, 0, NEXTAFTERF_TOLERANCE, 0},
+{52, 3207468155u, 0u, 3207468154u, 0, NEXTAFTERF_TOLERANCE, 0},
+{53, 3207300383u, 0u, 3207300382u, 0, NEXTAFTERF_TOLERANCE, 0},
+{54, 3207132611u, 0u, 3207132610u, 0, NEXTAFTERF_TOLERANCE, 0},
+{55, 3206964838u, 0u, 3206964837u, 0, NEXTAFTERF_TOLERANCE, 0},
+{56, 3206797066u, 0u, 3206797065u, 0, NEXTAFTERF_TOLERANCE, 0},
+{57, 3206629294u, 0u, 3206629293u, 0, NEXTAFTERF_TOLERANCE, 0},
+{58, 3206461522u, 0u, 3206461521u, 0, NEXTAFTERF_TOLERANCE, 0},
+{59, 3206293750u, 0u, 3206293749u, 0, NEXTAFTERF_TOLERANCE, 0},
+{60, 3206125978u, 0u, 3206125977u, 0, NEXTAFTERF_TOLERANCE, 0},
+{61, 3205958205u, 0u, 3205958204u, 0, NEXTAFTERF_TOLERANCE, 0},
+{62, 3205790433u, 0u, 3205790432u, 0, NEXTAFTERF_TOLERANCE, 0},
+{63, 3205622661u, 0u, 3205622660u, 0, NEXTAFTERF_TOLERANCE, 0},
+{64, 3205454889u, 0u, 3205454888u, 0, NEXTAFTERF_TOLERANCE, 0},
+{65, 3205287117u, 0u, 3205287116u, 0, NEXTAFTERF_TOLERANCE, 0},
+{66, 3205119345u, 0u, 3205119344u, 0, NEXTAFTERF_TOLERANCE, 0},
+{67, 3204951572u, 0u, 3204951571u, 0, NEXTAFTERF_TOLERANCE, 0},
+{68, 3204783800u, 0u, 3204783799u, 0, NEXTAFTERF_TOLERANCE, 0},
+{69, 3204616028u, 0u, 3204616027u, 0, NEXTAFTERF_TOLERANCE, 0},
+{70, 3204448256u, 0u, 3204448255u, 0, NEXTAFTERF_TOLERANCE, 0},
+{71, 3204112712u, 0u, 3204112711u, 0, NEXTAFTERF_TOLERANCE, 0},
+{72, 3203777167u, 0u, 3203777166u, 0, NEXTAFTERF_TOLERANCE, 0},
+{73, 3203441623u, 0u, 3203441622u, 0, NEXTAFTERF_TOLERANCE, 0},
+{74, 3203106079u, 0u, 3203106078u, 0, NEXTAFTERF_TOLERANCE, 0},
+{75, 3202770534u, 0u, 3202770533u, 0, NEXTAFTERF_TOLERANCE, 0},
+{76, 3202434990u, 0u, 3202434989u, 0, NEXTAFTERF_TOLERANCE, 0},
+{77, 3202099446u, 0u, 3202099445u, 0, NEXTAFTERF_TOLERANCE, 0},
+{78, 3201763901u, 0u, 3201763900u, 0, NEXTAFTERF_TOLERANCE, 0},
+{79, 3201428357u, 0u, 3201428356u, 0, NEXTAFTERF_TOLERANCE, 0},
+{80, 3201092813u, 0u, 3201092812u, 0, NEXTAFTERF_TOLERANCE, 0},
+{81, 3200757268u, 0u, 3200757267u, 0, NEXTAFTERF_TOLERANCE, 0},
+{82, 3200421724u, 0u, 3200421723u, 0, NEXTAFTERF_TOLERANCE, 0},
+{83, 3200086180u, 0u, 3200086179u, 0, NEXTAFTERF_TOLERANCE, 0},
+{84, 3199750636u, 0u, 3199750635u, 0, NEXTAFTERF_TOLERANCE, 0},
+{85, 3199415091u, 0u, 3199415090u, 0, NEXTAFTERF_TOLERANCE, 0},
+{86, 3199079547u, 0u, 3199079546u, 0, NEXTAFTERF_TOLERANCE, 0},
+{87, 3198744003u, 0u, 3198744002u, 0, NEXTAFTERF_TOLERANCE, 0},
+{88, 3198408458u, 0u, 3198408457u, 0, NEXTAFTERF_TOLERANCE, 0},
+{89, 3198072914u, 0u, 3198072913u, 0, NEXTAFTERF_TOLERANCE, 0},
+{90, 3197737370u, 0u, 3197737369u, 0, NEXTAFTERF_TOLERANCE, 0},
+{91, 3197401825u, 0u, 3197401824u, 0, NEXTAFTERF_TOLERANCE, 0},
+{92, 3197066281u, 0u, 3197066280u, 0, NEXTAFTERF_TOLERANCE, 0},
+{93, 3196730737u, 0u, 3196730736u, 0, NEXTAFTERF_TOLERANCE, 0},
+{94, 3196395192u, 0u, 3196395191u, 0, NEXTAFTERF_TOLERANCE, 0},
+{95, 3196059648u, 0u, 3196059647u, 0, NEXTAFTERF_TOLERANCE, 0},
+{96, 3195388559u, 0u, 3195388558u, 0, NEXTAFTERF_TOLERANCE, 0},
+{97, 3194717471u, 0u, 3194717470u, 0, NEXTAFTERF_TOLERANCE, 0},
+{98, 3194046382u, 0u, 3194046381u, 0, NEXTAFTERF_TOLERANCE, 0},
+{99, 3193375293u, 0u, 3193375292u, 0, NEXTAFTERF_TOLERANCE, 0},
+{100, 3192704205u, 0u, 3192704204u, 0, NEXTAFTERF_TOLERANCE, 0},
+{101, 3192033116u, 0u, 3192033115u, 0, NEXTAFTERF_TOLERANCE, 0},
+{102, 3191362028u, 0u, 3191362027u, 0, NEXTAFTERF_TOLERANCE, 0},
+{103, 3190690939u, 0u, 3190690938u, 0, NEXTAFTERF_TOLERANCE, 0},
+{104, 3190019850u, 0u, 3190019849u, 0, NEXTAFTERF_TOLERANCE, 0},
+{105, 3189348762u, 0u, 3189348761u, 0, NEXTAFTERF_TOLERANCE, 0},
+{106, 3188677673u, 0u, 3188677672u, 0, NEXTAFTERF_TOLERANCE, 0},
+{107, 3188006584u, 0u, 3188006583u, 0, NEXTAFTERF_TOLERANCE, 0},
+{108, 3186999951u, 0u, 3186999950u, 0, NEXTAFTERF_TOLERANCE, 0},
+{109, 3185657774u, 0u, 3185657773u, 0, NEXTAFTERF_TOLERANCE, 0},
+{110, 3184315597u, 0u, 3184315596u, 0, NEXTAFTERF_TOLERANCE, 0},
+{111, 3182973420u, 0u, 3182973419u, 0, NEXTAFTERF_TOLERANCE, 0},
+{112, 3181631242u, 0u, 3181631241u, 0, NEXTAFTERF_TOLERANCE, 0},
+{113, 3180289065u, 0u, 3180289064u, 0, NEXTAFTERF_TOLERANCE, 0},
+{114, 3178611343u, 0u, 3178611342u, 0, NEXTAFTERF_TOLERANCE, 0},
+{115, 3175926989u, 0u, 3175926988u, 0, NEXTAFTERF_TOLERANCE, 0},
+{116, 3173242634u, 0u, 3173242633u, 0, NEXTAFTERF_TOLERANCE, 0},
+{117, 3170222735u, 0u, 3170222734u, 0, NEXTAFTERF_TOLERANCE, 0},
+{118, 3164854026u, 0u, 3164854025u, 0, NEXTAFTERF_TOLERANCE, 0},
+{119, 3156465418u, 0u, 3156465417u, 0, NEXTAFTERF_TOLERANCE, 0},
+{120, 1008981770u, 0u, 1008981769u, 0, NEXTAFTERF_TOLERANCE, 0},
+{121, 1017370378u, 0u, 1017370377u, 0, NEXTAFTERF_TOLERANCE, 0},
+{122, 1022739087u, 0u, 1022739086u, 0, NEXTAFTERF_TOLERANCE, 0},
+{123, 1025758986u, 0u, 1025758985u, 0, NEXTAFTERF_TOLERANCE, 0},
+{124, 1028443341u, 0u, 1028443340u, 0, NEXTAFTERF_TOLERANCE, 0},
+{125, 1031127695u, 0u, 1031127694u, 0, NEXTAFTERF_TOLERANCE, 0},
+{126, 1032805417u, 0u, 1032805416u, 0, NEXTAFTERF_TOLERANCE, 0},
+{127, 1034147594u, 0u, 1034147593u, 0, NEXTAFTERF_TOLERANCE, 0},
+{128, 1035489772u, 0u, 1035489771u, 0, NEXTAFTERF_TOLERANCE, 0},
+{129, 1036831949u, 0u, 1036831948u, 0, NEXTAFTERF_TOLERANCE, 0},
+{130, 1038174126u, 0u, 1038174125u, 0, NEXTAFTERF_TOLERANCE, 0},
+{131, 1039516303u, 0u, 1039516302u, 0, NEXTAFTERF_TOLERANCE, 0},
+{132, 1040522936u, 0u, 1040522935u, 0, NEXTAFTERF_TOLERANCE, 0},
+{133, 1041194025u, 0u, 1041194024u, 0, NEXTAFTERF_TOLERANCE, 0},
+{134, 1041865114u, 0u, 1041865113u, 0, NEXTAFTERF_TOLERANCE, 0},
+{135, 1042536202u, 0u, 1042536201u, 0, NEXTAFTERF_TOLERANCE, 0},
+{136, 1043207291u, 0u, 1043207290u, 0, NEXTAFTERF_TOLERANCE, 0},
+{137, 1043878380u, 0u, 1043878379u, 0, NEXTAFTERF_TOLERANCE, 0},
+{138, 1044549468u, 0u, 1044549467u, 0, NEXTAFTERF_TOLERANCE, 0},
+{139, 1045220557u, 0u, 1045220556u, 0, NEXTAFTERF_TOLERANCE, 0},
+{140, 1045891645u, 0u, 1045891644u, 0, NEXTAFTERF_TOLERANCE, 0},
+{141, 1046562734u, 0u, 1046562733u, 0, NEXTAFTERF_TOLERANCE, 0},
+{142, 1047233823u, 0u, 1047233822u, 0, NEXTAFTERF_TOLERANCE, 0},
+{143, 1047904911u, 0u, 1047904910u, 0, NEXTAFTERF_TOLERANCE, 0},
+{144, 1048576000u, 0u, 1048575999u, 0, NEXTAFTERF_TOLERANCE, 0},
+{145, 1048911544u, 0u, 1048911543u, 0, NEXTAFTERF_TOLERANCE, 0},
+{146, 1049247089u, 0u, 1049247088u, 0, NEXTAFTERF_TOLERANCE, 0},
+{147, 1049582633u, 0u, 1049582632u, 0, NEXTAFTERF_TOLERANCE, 0},
+{148, 1049918177u, 0u, 1049918176u, 0, NEXTAFTERF_TOLERANCE, 0},
+{149, 1050253722u, 0u, 1050253721u, 0, NEXTAFTERF_TOLERANCE, 0},
+{150, 1050589266u, 0u, 1050589265u, 0, NEXTAFTERF_TOLERANCE, 0},
+{151, 1050924810u, 0u, 1050924809u, 0, NEXTAFTERF_TOLERANCE, 0},
+{152, 1051260355u, 0u, 1051260354u, 0, NEXTAFTERF_TOLERANCE, 0},
+{153, 1051595899u, 0u, 1051595898u, 0, NEXTAFTERF_TOLERANCE, 0},
+{154, 1051931443u, 0u, 1051931442u, 0, NEXTAFTERF_TOLERANCE, 0},
+{155, 1052266988u, 0u, 1052266987u, 0, NEXTAFTERF_TOLERANCE, 0},
+{156, 1052602532u, 0u, 1052602531u, 0, NEXTAFTERF_TOLERANCE, 0},
+{157, 1052938076u, 0u, 1052938075u, 0, NEXTAFTERF_TOLERANCE, 0},
+{158, 1053273620u, 0u, 1053273619u, 0, NEXTAFTERF_TOLERANCE, 0},
+{159, 1053609165u, 0u, 1053609164u, 0, NEXTAFTERF_TOLERANCE, 0},
+{160, 1053944709u, 0u, 1053944708u, 0, NEXTAFTERF_TOLERANCE, 0},
+{161, 1054280253u, 0u, 1054280252u, 0, NEXTAFTERF_TOLERANCE, 0},
+{162, 1054615798u, 0u, 1054615797u, 0, NEXTAFTERF_TOLERANCE, 0},
+{163, 1054951342u, 0u, 1054951341u, 0, NEXTAFTERF_TOLERANCE, 0},
+{164, 1055286886u, 0u, 1055286885u, 0, NEXTAFTERF_TOLERANCE, 0},
+{165, 1055622431u, 0u, 1055622430u, 0, NEXTAFTERF_TOLERANCE, 0},
+{166, 1055957975u, 0u, 1055957974u, 0, NEXTAFTERF_TOLERANCE, 0},
+{167, 1056293519u, 0u, 1056293518u, 0, NEXTAFTERF_TOLERANCE, 0},
+{168, 1056629064u, 0u, 1056629063u, 0, NEXTAFTERF_TOLERANCE, 0},
+{169, 1056964608u, 0u, 1056964607u, 0, NEXTAFTERF_TOLERANCE, 0},
+{170, 1057132380u, 0u, 1057132379u, 0, NEXTAFTERF_TOLERANCE, 0},
+{171, 1057300152u, 0u, 1057300151u, 0, NEXTAFTERF_TOLERANCE, 0},
+{172, 1057467924u, 0u, 1057467923u, 0, NEXTAFTERF_TOLERANCE, 0},
+{173, 1057635697u, 0u, 1057635696u, 0, NEXTAFTERF_TOLERANCE, 0},
+{174, 1057803469u, 0u, 1057803468u, 0, NEXTAFTERF_TOLERANCE, 0},
+{175, 1057971241u, 0u, 1057971240u, 0, NEXTAFTERF_TOLERANCE, 0},
+{176, 1058139013u, 0u, 1058139012u, 0, NEXTAFTERF_TOLERANCE, 0},
+{177, 1058306785u, 0u, 1058306784u, 0, NEXTAFTERF_TOLERANCE, 0},
+{178, 1058474557u, 0u, 1058474556u, 0, NEXTAFTERF_TOLERANCE, 0},
+{179, 1058642330u, 0u, 1058642329u, 0, NEXTAFTERF_TOLERANCE, 0},
+{180, 1058810102u, 0u, 1058810101u, 0, NEXTAFTERF_TOLERANCE, 0},
+{181, 1058977874u, 0u, 1058977873u, 0, NEXTAFTERF_TOLERANCE, 0},
+{182, 1059145646u, 0u, 1059145645u, 0, NEXTAFTERF_TOLERANCE, 0},
+{183, 1059313418u, 0u, 1059313417u, 0, NEXTAFTERF_TOLERANCE, 0},
+{184, 1059481190u, 0u, 1059481189u, 0, NEXTAFTERF_TOLERANCE, 0},
+{185, 1059648963u, 0u, 1059648962u, 0, NEXTAFTERF_TOLERANCE, 0},
+{186, 1059816735u, 0u, 1059816734u, 0, NEXTAFTERF_TOLERANCE, 0},
+{187, 1059984507u, 0u, 1059984506u, 0, NEXTAFTERF_TOLERANCE, 0},
+{188, 1060152279u, 0u, 1060152278u, 0, NEXTAFTERF_TOLERANCE, 0},
+{189, 1060320051u, 0u, 1060320050u, 0, NEXTAFTERF_TOLERANCE, 0},
+{190, 1060487823u, 0u, 1060487822u, 0, NEXTAFTERF_TOLERANCE, 0},
+{191, 1060655596u, 0u, 1060655595u, 0, NEXTAFTERF_TOLERANCE, 0},
+{192, 1060823368u, 0u, 1060823367u, 0, NEXTAFTERF_TOLERANCE, 0},
+{193, 1060991140u, 0u, 1060991139u, 0, NEXTAFTERF_TOLERANCE, 0},
+{194, 1061158912u, 0u, 1061158911u, 0, NEXTAFTERF_TOLERANCE, 0},
+{195, 1061326684u, 0u, 1061326683u, 0, NEXTAFTERF_TOLERANCE, 0},
+{196, 1061494456u, 0u, 1061494455u, 0, NEXTAFTERF_TOLERANCE, 0},
+{197, 1061662228u, 0u, 1061662227u, 0, NEXTAFTERF_TOLERANCE, 0},
+{198, 1061830001u, 0u, 1061830000u, 0, NEXTAFTERF_TOLERANCE, 0},
+{199, 1061997773u, 0u, 1061997772u, 0, NEXTAFTERF_TOLERANCE, 0},
+{200, 1062165545u, 0u, 1062165544u, 0, NEXTAFTERF_TOLERANCE, 0},
+{201, 1062333317u, 0u, 1062333316u, 0, NEXTAFTERF_TOLERANCE, 0},
+{202, 1062501089u, 0u, 1062501088u, 0, NEXTAFTERF_TOLERANCE, 0},
+{203, 1062668861u, 0u, 1062668860u, 0, NEXTAFTERF_TOLERANCE, 0},
+{204, 1062836634u, 0u, 1062836633u, 0, NEXTAFTERF_TOLERANCE, 0},
+{205, 1063004406u, 0u, 1063004405u, 0, NEXTAFTERF_TOLERANCE, 0},
+{206, 1063172178u, 0u, 1063172177u, 0, NEXTAFTERF_TOLERANCE, 0},
+{207, 1063339950u, 0u, 1063339949u, 0, NEXTAFTERF_TOLERANCE, 0},
+{208, 1063507722u, 0u, 1063507721u, 0, NEXTAFTERF_TOLERANCE, 0},
+{209, 1063675494u, 0u, 1063675493u, 0, NEXTAFTERF_TOLERANCE, 0},
+{210, 1063843267u, 0u, 1063843266u, 0, NEXTAFTERF_TOLERANCE, 0},
+{211, 1064011039u, 0u, 1064011038u, 0, NEXTAFTERF_TOLERANCE, 0},
+{212, 1064178811u, 0u, 1064178810u, 0, NEXTAFTERF_TOLERANCE, 0},
+{213, 1064346583u, 0u, 1064346582u, 0, NEXTAFTERF_TOLERANCE, 0},
+{214, 1064514355u, 0u, 1064514354u, 0, NEXTAFTERF_TOLERANCE, 0},
+{215, 1064682127u, 0u, 1064682126u, 0, NEXTAFTERF_TOLERANCE, 0},
+{216, 1064849900u, 0u, 1064849899u, 0, NEXTAFTERF_TOLERANCE, 0},
+{217, 1065017672u, 0u, 1065017671u, 0, NEXTAFTERF_TOLERANCE, 0},
+{218, 1065185444u, 0u, 1065185443u, 0, NEXTAFTERF_TOLERANCE, 0},
+{219, 1065353216u, 0u, 1065353215u, 0, NEXTAFTERF_TOLERANCE, 0},
+{220, 1065437102u, 0u, 1065437101u, 0, NEXTAFTERF_TOLERANCE, 0},
+{221, 1065520988u, 0u, 1065520987u, 0, NEXTAFTERF_TOLERANCE, 0},
+{222, 1065604874u, 0u, 1065604873u, 0, NEXTAFTERF_TOLERANCE, 0},
+{223, 1065688760u, 0u, 1065688759u, 0, NEXTAFTERF_TOLERANCE, 0},
+{224, 1065772646u, 0u, 1065772645u, 0, NEXTAFTERF_TOLERANCE, 0},
+{225, 1065856532u, 0u, 1065856531u, 0, NEXTAFTERF_TOLERANCE, 0},
+{226, 1065940419u, 0u, 1065940418u, 0, NEXTAFTERF_TOLERANCE, 0},
+{227, 1066024305u, 0u, 1066024304u, 0, NEXTAFTERF_TOLERANCE, 0},
+{228, 1066108191u, 0u, 1066108190u, 0, NEXTAFTERF_TOLERANCE, 0},
+{229, 1066192077u, 0u, 1066192076u, 0, NEXTAFTERF_TOLERANCE, 0},
+{230, 1066275963u, 0u, 1066275962u, 0, NEXTAFTERF_TOLERANCE, 0},
+{231, 1066359849u, 0u, 1066359848u, 0, NEXTAFTERF_TOLERANCE, 0},
+{232, 1066443735u, 0u, 1066443734u, 0, NEXTAFTERF_TOLERANCE, 0},
+{233, 1066527621u, 0u, 1066527620u, 0, NEXTAFTERF_TOLERANCE, 0},
+{234, 1066611507u, 0u, 1066611506u, 0, NEXTAFTERF_TOLERANCE, 0},
+{235, 1066695393u, 0u, 1066695392u, 0, NEXTAFTERF_TOLERANCE, 0},
+{236, 1066779279u, 0u, 1066779278u, 0, NEXTAFTERF_TOLERANCE, 0},
+{237, 1066863165u, 0u, 1066863164u, 0, NEXTAFTERF_TOLERANCE, 0},
+{238, 1066947052u, 0u, 1066947051u, 0, NEXTAFTERF_TOLERANCE, 0},
+{239, 3234402267u, 0u, 3234402266u, 0, NEXTAFTERF_TOLERANCE, 0},
+{240, 3231108068u, 0u, 3231108067u, 0, NEXTAFTERF_TOLERANCE, 0},
+{241, 3226013659u, 0u, 3226013658u, 0, NEXTAFTERF_TOLERANCE, 0},
+{242, 3217625051u, 0u, 3217625050u, 0, NEXTAFTERF_TOLERANCE, 0},
+{243, 0u, 0u, 0u, 0, NEXTAFTERF_TOLERANCE, 0},
+{244, 1070141403u, 0u, 1070141402u, 0, NEXTAFTERF_TOLERANCE, 0},
+{245, 1078530011u, 0u, 1078530010u, 0, NEXTAFTERF_TOLERANCE, 0},
+{246, 1083624420u, 0u, 1083624419u, 0, NEXTAFTERF_TOLERANCE, 0},
+{247, 3253731328u, 0u, 3253731327u, 0, NEXTAFTERF_TOLERANCE, 0},
+{248, 3252840038u, 0u, 3252840037u, 0, NEXTAFTERF_TOLERANCE, 0},
+{249, 3251948749u, 0u, 3251948748u, 0, NEXTAFTERF_TOLERANCE, 0},
+{250, 3251057459u, 0u, 3251057458u, 0, NEXTAFTERF_TOLERANCE, 0},
+{251, 3250166170u, 0u, 3250166169u, 0, NEXTAFTERF_TOLERANCE, 0},
+{252, 3249274880u, 0u, 3249274879u, 0, NEXTAFTERF_TOLERANCE, 0},
+{253, 3248383590u, 0u, 3248383589u, 0, NEXTAFTERF_TOLERANCE, 0},
+{254, 3247492301u, 0u, 3247492300u, 0, NEXTAFTERF_TOLERANCE, 0},
+{255, 3246601011u, 0u, 3246601010u, 0, NEXTAFTERF_TOLERANCE, 0},
+{256, 3245028147u, 0u, 3245028146u, 0, NEXTAFTERF_TOLERANCE, 0},
+{257, 3243245568u, 0u, 3243245567u, 0, NEXTAFTERF_TOLERANCE, 0},
+{258, 3241462989u, 0u, 3241462988u, 0, NEXTAFTERF_TOLERANCE, 0},
+{259, 3239680410u, 0u, 3239680409u, 0, NEXTAFTERF_TOLERANCE, 0},
+{260, 3237792973u, 0u, 3237792972u, 0, NEXTAFTERF_TOLERANCE, 0},
+{261, 3234227814u, 0u, 3234227813u, 0, NEXTAFTERF_TOLERANCE, 0},
+{262, 3230662656u, 0u, 3230662655u, 0, NEXTAFTERF_TOLERANCE, 0},
+{263, 3224580915u, 0u, 3224580914u, 0, NEXTAFTERF_TOLERANCE, 0},
+{264, 3213675725u, 0u, 3213675724u, 0, NEXTAFTERF_TOLERANCE, 0},
+{265, 1058642330u, 0u, 1058642329u, 0, NEXTAFTERF_TOLERANCE, 0},
+{266, 1075000115u, 0u, 1075000114u, 0, NEXTAFTERF_TOLERANCE, 0},
+{267, 1082130432u, 0u, 1082130431u, 0, NEXTAFTERF_TOLERANCE, 0},
+{268, 1085695590u, 0u, 1085695589u, 0, NEXTAFTERF_TOLERANCE, 0},
+{269, 1089260749u, 0u, 1089260748u, 0, NEXTAFTERF_TOLERANCE, 0},
+{270, 1091672474u, 0u, 1091672473u, 0, NEXTAFTERF_TOLERANCE, 0},
+{271, 1093455053u, 0u, 1093455052u, 0, NEXTAFTERF_TOLERANCE, 0},
+{272, 1095237632u, 0u, 1095237631u, 0, NEXTAFTERF_TOLERANCE, 0},
+{273, 1097020211u, 0u, 1097020210u, 0, NEXTAFTERF_TOLERANCE, 0},
+{274, 1098802790u, 0u, 1098802789u, 0, NEXTAFTERF_TOLERANCE, 0},
+{275, 1099746509u, 0u, 1099746508u, 0, NEXTAFTERF_TOLERANCE, 0},
+{276, 1100637798u, 0u, 1100637797u, 0, NEXTAFTERF_TOLERANCE, 0},
+{277, 1101529088u, 0u, 1101529087u, 0, NEXTAFTERF_TOLERANCE, 0},
+{278, 1102420378u, 0u, 1102420377u, 0, NEXTAFTERF_TOLERANCE, 0},
+{279, 1103311667u, 0u, 1103311666u, 0, NEXTAFTERF_TOLERANCE, 0},
+{280, 1104202957u, 0u, 1104202956u, 0, NEXTAFTERF_TOLERANCE, 0},
+{281, 1105094246u, 0u, 1105094245u, 0, NEXTAFTERF_TOLERANCE, 0},
+{282, 1105985536u, 0u, 1105985535u, 0, NEXTAFTERF_TOLERANCE, 0},
+{283, 1107800421u, 1203999711u, 1107800422u, 0, NEXTAFTERF_TOLERANCE, 0},
+{284, 3196650934u, 896005582u, 3196650933u, 0, NEXTAFTERF_TOLERANCE, 0},
+{285, 3368700125u, 3308232444u, 3368700124u, 0, NEXTAFTERF_TOLERANCE, 0},
+{286, 1224242132u, 3061363425u, 1224242131u, 0, NEXTAFTERF_TOLERANCE, 0},
+{287, 3221027117u, 1284201705u, 3221027116u, 0, NEXTAFTERF_TOLERANCE, 0},
+{288, 1198712763u, 919636942u, 1198712762u, 0, NEXTAFTERF_TOLERANCE, 0},
+{289, 3090780435u, 1035260608u, 3090780434u, 0, NEXTAFTERF_TOLERANCE, 0},
+{290, 966554515u, 3234538174u, 966554514u, 0, NEXTAFTERF_TOLERANCE, 0},
+{291, 1312607135u, 1194999402u, 1312607134u, 0, NEXTAFTERF_TOLERANCE, 0},
+{292, 1166191415u, 1018661564u, 1166191414u, 0, NEXTAFTERF_TOLERANCE, 0},
+{293, 3111900019u, 1130472166u, 3111900018u, 0, NEXTAFTERF_TOLERANCE, 0},
+{294, 1302107128u, 3370647675u, 1302107127u, 0, NEXTAFTERF_TOLERANCE, 0},
+{295, 1052801068u, 3039122570u, 1052801067u, 0, NEXTAFTERF_TOLERANCE, 0},
+{296, 1060849628u, 3081357692u, 1060849627u, 0, NEXTAFTERF_TOLERANCE, 0},
+{297, 3484320003u, 3033957825u, 3484320002u, 0, NEXTAFTERF_TOLERANCE, 0},
+{298, 3181522772u, 3305392896u, 3181522773u, 0, NEXTAFTERF_TOLERANCE, 0},
+{299, 882596369u, 1256676590u, 882596370u, 0, NEXTAFTERF_TOLERANCE, 0},
+{300, 968192794u, 878547432u, 968192793u, 0, NEXTAFTERF_TOLERANCE, 0},
+{301, 3122346862u, 1111584337u, 3122346861u, 0, NEXTAFTERF_TOLERANCE, 0},
+{302, 1052361612u, 1280025214u, 1052361613u, 0, NEXTAFTERF_TOLERANCE, 0},
+{303, 3471653172u, 1154138102u, 3471653171u, 0, NEXTAFTERF_TOLERANCE, 0},
+{304, 3231467496u, 934336592u, 3231467495u, 0, NEXTAFTERF_TOLERANCE, 0},
+{305, 1341514497u, 3466051188u, 1341514496u, 0, NEXTAFTERF_TOLERANCE, 0},
+{306, 1272351391u, 3373485062u, 1272351390u, 0, NEXTAFTERF_TOLERANCE, 0},
+{307, 3319724992u, 3354615790u, 3319724993u, 0, NEXTAFTERF_TOLERANCE, 0},
+{308, 917622040u, 1334966485u, 917622041u, 0, NEXTAFTERF_TOLERANCE, 0},
+{309, 940236348u, 3304072663u, 940236347u, 0, NEXTAFTERF_TOLERANCE, 0},
+{310, 3251541546u, 3174764041u, 3251541545u, 0, NEXTAFTERF_TOLERANCE, 0},
+{311, 3099843889u, 3355962282u, 3099843890u, 0, NEXTAFTERF_TOLERANCE, 0},
+{312, 3371863479u, 1014861921u, 3371863478u, 0, NEXTAFTERF_TOLERANCE, 0},
+{313, 3204069187u, 966573255u, 3204069186u, 0, NEXTAFTERF_TOLERANCE, 0},
+{314, 1306460502u, 903489435u, 1306460501u, 0, NEXTAFTERF_TOLERANCE, 0},
+{315, 1197542187u, 3024598921u, 1197542186u, 0, NEXTAFTERF_TOLERANCE, 0},
+{316, 922888249u, 1139392309u, 922888250u, 0, NEXTAFTERF_TOLERANCE, 0},
+{317, 1184239996u, 3224098462u, 1184239995u, 0, NEXTAFTERF_TOLERANCE, 0},
+{318, 1252490238u, 1173619825u, 1252490237u, 0, NEXTAFTERF_TOLERANCE, 0},
+{319, 1001673627u, 3462631271u, 1001673626u, 0, NEXTAFTERF_TOLERANCE, 0},
+{320, 976098044u, 1151967422u, 976098045u, 0, NEXTAFTERF_TOLERANCE, 0},
+{321, 941796645u, 886451963u, 941796644u, 0, NEXTAFTERF_TOLERANCE, 0},
+{322, 893184329u, 1243067084u, 893184330u, 0, NEXTAFTERF_TOLERANCE, 0},
+{323, 1143233714u, 1007268238u, 1143233713u, 0, NEXTAFTERF_TOLERANCE, 0},
+{324, 1139941253u, 1147688821u, 1139941254u, 0, NEXTAFTERF_TOLERANCE, 0},
+{325, 3143717025u, 3234638157u, 3143717026u, 0, NEXTAFTERF_TOLERANCE, 0},
+{326, 3048866608u, 3449209899u, 3048866609u, 0, NEXTAFTERF_TOLERANCE, 0},
+{327, 3240298487u, 1020260821u, 3240298486u, 0, NEXTAFTERF_TOLERANCE, 0},
+{328, 1288902137u, 3123875978u, 1288902136u, 0, NEXTAFTERF_TOLERANCE, 0},
+{329, 1333134799u, 1338107877u, 1333134800u, 0, NEXTAFTERF_TOLERANCE, 0},
+{330, 1187847971u, 1317663644u, 1187847972u, 0, NEXTAFTERF_TOLERANCE, 0},
+{331, 1038851706u, 1327544110u, 1038851707u, 0, NEXTAFTERF_TOLERANCE, 0},
+{332, 3329354473u, 3165437289u, 3329354472u, 0, NEXTAFTERF_TOLERANCE, 0},
+{333, 3077218579u, 1308397879u, 3077218578u, 0, NEXTAFTERF_TOLERANCE, 0},
+{334, 1309289088u, 1019883016u, 1309289087u, 0, NEXTAFTERF_TOLERANCE, 0},
+{335, 3444653659u, 1279248024u, 3444653658u, 0, NEXTAFTERF_TOLERANCE, 0},
+{336, 1106778573u, 3304487767u, 1106778572u, 0, NEXTAFTERF_TOLERANCE, 0},
+{337, 1140567947u, 3069174149u, 1140567946u, 0, NEXTAFTERF_TOLERANCE, 0},
+{338, 1238569473u, 873035665u, 1238569472u, 0, NEXTAFTERF_TOLERANCE, 0},
+{339, 3154871957u, 1276671061u, 3154871956u, 0, NEXTAFTERF_TOLERANCE, 0},
+{340, 1261071232u, 1182202773u, 1261071231u, 0, NEXTAFTERF_TOLERANCE, 0},
+{341, 1175011025u, 3029705783u, 1175011024u, 0, NEXTAFTERF_TOLERANCE, 0},
+{342, 1082692850u, 1211581107u, 1082692851u, 0, NEXTAFTERF_TOLERANCE, 0},
+{343, 974547519u, 3475164509u, 974547518u, 0, NEXTAFTERF_TOLERANCE, 0},
+{344, 3058097085u, 3104309359u, 3058097086u, 0, NEXTAFTERF_TOLERANCE, 0},
+{345, 3107252546u, 1071134451u, 3107252545u, 0, NEXTAFTERF_TOLERANCE, 0},
+{346, 3197942144u, 3094120030u, 3197942143u, 0, NEXTAFTERF_TOLERANCE, 0},
+{347, 3403348556u, 3184653669u, 3403348555u, 0, NEXTAFTERF_TOLERANCE, 0},
+{348, 3182301130u, 3460764044u, 3182301131u, 0, NEXTAFTERF_TOLERANCE, 0},
+{349, 1136411063u, 1118097422u, 1136411062u, 0, NEXTAFTERF_TOLERANCE, 0},
+{350, 3239231622u, 3302723069u, 3239231623u, 0, NEXTAFTERF_TOLERANCE, 0},
+{351, 3417964312u, 1321337529u, 3417964311u, 0, NEXTAFTERF_TOLERANCE, 0},
+{352, 3109481038u, 1143864063u, 3109481037u, 0, NEXTAFTERF_TOLERANCE, 0},
+{353, 1148867223u, 1256486202u, 1148867224u, 0, NEXTAFTERF_TOLERANCE, 0},
+{354, 989687421u, 3372681320u, 989687420u, 0, NEXTAFTERF_TOLERANCE, 0},
+{355, 1152956913u, 3166480640u, 1152956912u, 0, NEXTAFTERF_TOLERANCE, 0},
+{356, 892922651u, 3373029087u, 892922650u, 0, NEXTAFTERF_TOLERANCE, 0},
+{357, 1109627625u, 1314158257u, 1109627626u, 0, NEXTAFTERF_TOLERANCE, 0},
+{358, 1307091856u, 1103202538u, 1307091855u, 0, NEXTAFTERF_TOLERANCE, 0},
+{359, 1077234132u, 3272167130u, 1077234131u, 0, NEXTAFTERF_TOLERANCE, 0},
+{360, 1142167709u, 1096445242u, 1142167708u, 0, NEXTAFTERF_TOLERANCE, 0},
+{361, 3426232834u, 1036705270u, 3426232833u, 0, NEXTAFTERF_TOLERANCE, 0},
+{362, 3368566779u, 967249167u, 3368566778u, 0, NEXTAFTERF_TOLERANCE, 0},
+{363, 3030724760u, 3349013503u, 3030724761u, 0, NEXTAFTERF_TOLERANCE, 0},
+{364, 1138741813u, 3073453199u, 1138741812u, 0, NEXTAFTERF_TOLERANCE, 0},
+{365, 982950501u, 982549888u, 982950500u, 0, NEXTAFTERF_TOLERANCE, 0},
+{366, 1142981585u, 1015602236u, 1142981584u, 0, NEXTAFTERF_TOLERANCE, 0},
+{367, 3347165962u, 3135486696u, 3347165961u, 0, NEXTAFTERF_TOLERANCE, 0},
+{368, 1009535440u, 3381353228u, 1009535439u, 0, NEXTAFTERF_TOLERANCE, 0},
+{369, 3103736980u, 3402950505u, 3103736981u, 0, NEXTAFTERF_TOLERANCE, 0},
+{370, 3126820946u, 1077903063u, 3126820945u, 0, NEXTAFTERF_TOLERANCE, 0},
+{371, 3473956030u, 976891930u, 3473956029u, 0, NEXTAFTERF_TOLERANCE, 0},
+{372, 3349098349u, 1055327704u, 3349098348u, 0, NEXTAFTERF_TOLERANCE, 0},
+{373, 3152729489u, 1060398533u, 3152729488u, 0, NEXTAFTERF_TOLERANCE, 0},
+{374, 945568720u, 3313485084u, 945568719u, 0, NEXTAFTERF_TOLERANCE, 0},
+{375, 3345489836u, 1108392401u, 3345489835u, 0, NEXTAFTERF_TOLERANCE, 0},
+{376, 940893161u, 1137000140u, 940893162u, 0, NEXTAFTERF_TOLERANCE, 0},
+{377, 976791751u, 3230678102u, 976791750u, 0, NEXTAFTERF_TOLERANCE, 0},
+{378, 1004442355u, 3036510596u, 1004442354u, 0, NEXTAFTERF_TOLERANCE, 0},
+{379, 1108485380u, 3173536878u, 1108485379u, 0, NEXTAFTERF_TOLERANCE, 0},
+{380, 1061834641u, 972388096u, 1061834640u, 0, NEXTAFTERF_TOLERANCE, 0},
+{381, 3381268392u, 1146976802u, 3381268391u, 0, NEXTAFTERF_TOLERANCE, 0},
+{382, 3212952285u, 3329407365u, 3212952286u, 0, NEXTAFTERF_TOLERANCE, 0},
+{383, 3466188568u, 1041678304u, 3466188567u, 0, NEXTAFTERF_TOLERANCE, 0},
+{384, 3072456205u, 3160254633u, 3072456206u, 0, NEXTAFTERF_TOLERANCE, 0},
+{385, 3319315516u, 3422089012u, 3319315517u, 0, NEXTAFTERF_TOLERANCE, 0},
+{386, 935938416u, 1146676692u, 935938417u, 0, NEXTAFTERF_TOLERANCE, 0},
+{387, 3212614372u, 1152633030u, 3212614371u, 0, NEXTAFTERF_TOLERANCE, 0},
+{388, 1315030230u, 3336225884u, 1315030229u, 0, NEXTAFTERF_TOLERANCE, 0},
+{389, 1134593658u, 3456812581u, 1134593657u, 0, NEXTAFTERF_TOLERANCE, 0},
+{390, 977281449u, 879922831u, 977281448u, 0, NEXTAFTERF_TOLERANCE, 0},
+{391, 1086198791u, 920125958u, 1086198790u, 0, NEXTAFTERF_TOLERANCE, 0},
+{392, 1135271264u, 3284878412u, 1135271263u, 0, NEXTAFTERF_TOLERANCE, 0},
+{393, 1094190727u, 1056854532u, 1094190726u, 0, NEXTAFTERF_TOLERANCE, 0},
+{394, 1294665325u, 991185677u, 1294665324u, 0, NEXTAFTERF_TOLERANCE, 0},
+{395, 3439134022u, 1043829691u, 3439134021u, 0, NEXTAFTERF_TOLERANCE, 0},
+{396, 3073083133u, 1317170485u, 3073083132u, 0, NEXTAFTERF_TOLERANCE, 0},
+{397, 1325668223u, 970681762u, 1325668222u, 0, NEXTAFTERF_TOLERANCE, 0},
+{398, 1092037607u, 1027330835u, 1092037606u, 0, NEXTAFTERF_TOLERANCE, 0},
+{399, 3316278408u, 3455589207u, 3316278409u, 0, NEXTAFTERF_TOLERANCE, 0},
+{400, 3295436768u, 3129873731u, 3295436767u, 0, NEXTAFTERF_TOLERANCE, 0},
+{401, 1151984049u, 3074547120u, 1151984048u, 0, NEXTAFTERF_TOLERANCE, 0},
+{402, 1129287043u, 3076527544u, 1129287042u, 0, NEXTAFTERF_TOLERANCE, 0},
+{403, 1243664530u, 972879810u, 1243664529u, 0, NEXTAFTERF_TOLERANCE, 0},
+{404, 950829092u, 929114193u, 950829091u, 0, NEXTAFTERF_TOLERANCE, 0},
+{405, 1115471979u, 3047246262u, 1115471978u, 0, NEXTAFTERF_TOLERANCE, 0},
+{406, 3351092088u, 3024661404u, 3351092087u, 0, NEXTAFTERF_TOLERANCE, 0},
+{407, 3424479544u, 3312047722u, 3424479543u, 0, NEXTAFTERF_TOLERANCE, 0},
+{408, 3241193975u, 884465785u, 3241193974u, 0, NEXTAFTERF_TOLERANCE, 0},
+{409, 1030934236u, 1045139240u, 1030934237u, 0, NEXTAFTERF_TOLERANCE, 0},
+{410, 3131791114u, 3408392958u, 3131791115u, 0, NEXTAFTERF_TOLERANCE, 0},
+{411, 1025254314u, 3057812821u, 1025254313u, 0, NEXTAFTERF_TOLERANCE, 0},
+{412, 1110545760u, 3240144177u, 1110545759u, 0, NEXTAFTERF_TOLERANCE, 0},
+{413, 3180213739u, 1108793820u, 3180213738u, 0, NEXTAFTERF_TOLERANCE, 0},
+{414, 3361976590u, 3138179993u, 3361976589u, 0, NEXTAFTERF_TOLERANCE, 0},
+{415, 881280146u, 3421884736u, 881280145u, 0, NEXTAFTERF_TOLERANCE, 0},
+{416, 3264443610u, 3222916705u, 3264443609u, 0, NEXTAFTERF_TOLERANCE, 0},
+{417, 3374550627u, 3055856293u, 3374550626u, 0, NEXTAFTERF_TOLERANCE, 0},
+{418, 899599265u, 3240118211u, 899599264u, 0, NEXTAFTERF_TOLERANCE, 0},
+{419, 1268194719u, 1332489410u, 1268194720u, 0, NEXTAFTERF_TOLERANCE, 0},
+{420, 1133420220u, 1245770860u, 1133420221u, 0, NEXTAFTERF_TOLERANCE, 0},
+{421, 3184462258u, 1263529646u, 3184462257u, 0, NEXTAFTERF_TOLERANCE, 0},
+{422, 3295996963u, 3453334307u, 3295996964u, 0, NEXTAFTERF_TOLERANCE, 0},
+{423, 1270887389u, 1156123987u, 1270887388u, 0, NEXTAFTERF_TOLERANCE, 0},
+{424, 3325193181u, 993979179u, 3325193180u, 0, NEXTAFTERF_TOLERANCE, 0},
+{425, 925657343u, 1315159742u, 925657344u, 0, NEXTAFTERF_TOLERANCE, 0},
+{426, 3116607482u, 3224327456u, 3116607483u, 0, NEXTAFTERF_TOLERANCE, 0},
+{427, 3187892415u, 3118097315u, 3187892414u, 0, NEXTAFTERF_TOLERANCE, 0},
+{428, 1189120494u, 978961471u, 1189120493u, 0, NEXTAFTERF_TOLERANCE, 0},
+{429, 889030794u, 3129523970u, 889030793u, 0, NEXTAFTERF_TOLERANCE, 0},
+{430, 1323529208u, 3100744786u, 1323529207u, 0, NEXTAFTERF_TOLERANCE, 0},
+{431, 3465768388u, 3190881451u, 3465768387u, 0, NEXTAFTERF_TOLERANCE, 0},
+{432, 3426099899u, 1118756120u, 3426099898u, 0, NEXTAFTERF_TOLERANCE, 0},
+{433, 3224857113u, 3398166843u, 3224857114u, 0, NEXTAFTERF_TOLERANCE, 0},
+{434, 3357819026u, 3148475462u, 3357819025u, 0, NEXTAFTERF_TOLERANCE, 0},
+{435, 1273397670u, 901308750u, 1273397669u, 0, NEXTAFTERF_TOLERANCE, 0},
+{436, 3424831780u, 1304806106u, 3424831779u, 0, NEXTAFTERF_TOLERANCE, 0},
+{437, 1257596246u, 3420832544u, 1257596245u, 0, NEXTAFTERF_TOLERANCE, 0},
+{438, 1051773536u, 896271348u, 1051773535u, 0, NEXTAFTERF_TOLERANCE, 0},
+{439, 3294752507u, 3113225954u, 3294752506u, 0, NEXTAFTERF_TOLERANCE, 0},
+{440, 1090870906u, 3294742905u, 1090870905u, 0, NEXTAFTERF_TOLERANCE, 0},
+{441, 1227582289u, 1208979668u, 1227582288u, 0, NEXTAFTERF_TOLERANCE, 0},
+{442, 1137854355u, 3335041917u, 1137854354u, 0, NEXTAFTERF_TOLERANCE, 0},
+{443, 3440773058u, 3204192793u, 3440773057u, 0, NEXTAFTERF_TOLERANCE, 0},
+{444, 3101598400u, 3057760708u, 3101598399u, 0, NEXTAFTERF_TOLERANCE, 0},
+{445, 3451216836u, 3347783723u, 3451216835u, 0, NEXTAFTERF_TOLERANCE, 0},
+{446, 3437062994u, 3106834845u, 3437062993u, 0, NEXTAFTERF_TOLERANCE, 0},
+{447, 1131196082u, 1164573183u, 1131196083u, 0, NEXTAFTERF_TOLERANCE, 0},
+{448, 3177294154u, 1282436638u, 3177294153u, 0, NEXTAFTERF_TOLERANCE, 0},
+{449, 3258097678u, 1305882290u, 3258097677u, 0, NEXTAFTERF_TOLERANCE, 0},
+{450, 3460915348u, 1219372260u, 3460915347u, 0, NEXTAFTERF_TOLERANCE, 0},
+{451, 3303035472u, 3153013020u, 3303035471u, 0, NEXTAFTERF_TOLERANCE, 0},
+{452, 1053698677u, 3284313107u, 1053698676u, 0, NEXTAFTERF_TOLERANCE, 0},
+{453, 3396166221u, 1201894512u, 3396166220u, 0, NEXTAFTERF_TOLERANCE, 0},
+{454, 3037541131u, 1085398440u, 3037541130u, 0, NEXTAFTERF_TOLERANCE, 0},
+{455, 3458934263u, 1005577835u, 3458934262u, 0, NEXTAFTERF_TOLERANCE, 0},
+{456, 1065761827u, 3333928591u, 1065761826u, 0, NEXTAFTERF_TOLERANCE, 0},
+{457, 926665223u, 3150815797u, 926665222u, 0, NEXTAFTERF_TOLERANCE, 0},
+{458, 1199816046u, 3143776186u, 1199816045u, 0, NEXTAFTERF_TOLERANCE, 0},
+{459, 3333779015u, 952421041u, 3333779014u, 0, NEXTAFTERF_TOLERANCE, 0},
+{460, 948398145u, 3238273189u, 948398144u, 0, NEXTAFTERF_TOLERANCE, 0},
+{461, 3054021468u, 1270257895u, 3054021467u, 0, NEXTAFTERF_TOLERANCE, 0},
+{462, 1080781593u, 1213908300u, 1080781594u, 0, NEXTAFTERF_TOLERANCE, 0},
+{463, 3235326590u, 1271705594u, 3235326589u, 0, NEXTAFTERF_TOLERANCE, 0},
+{464, 3118883815u, 1051802647u, 3118883814u, 0, NEXTAFTERF_TOLERANCE, 0},
+{465, 965378004u, 1292594138u, 965378005u, 0, NEXTAFTERF_TOLERANCE, 0},
+{466, 3226990408u, 1110755136u, 3226990407u, 0, NEXTAFTERF_TOLERANCE, 0},
+{467, 3117098218u, 1122474770u, 3117098217u, 0, NEXTAFTERF_TOLERANCE, 0},
+{468, 1283624229u, 906796922u, 1283624228u, 0, NEXTAFTERF_TOLERANCE, 0},
+{469, 970649315u, 1078286437u, 970649316u, 0, NEXTAFTERF_TOLERANCE, 0},
+{470, 959776291u, 3280345347u, 959776290u, 0, NEXTAFTERF_TOLERANCE, 0},
+{471, 3341117305u, 3294559023u, 3341117304u, 0, NEXTAFTERF_TOLERANCE, 0},
+{472, 1270734970u, 3355874874u, 1270734969u, 0, NEXTAFTERF_TOLERANCE, 0},
+{473, 917206623u, 1172710814u, 917206624u, 0, NEXTAFTERF_TOLERANCE, 0},
+{474, 1106502045u, 1290849316u, 1106502046u, 0, NEXTAFTERF_TOLERANCE, 0},
+{475, 1157598381u, 3309023746u, 1157598380u, 0, NEXTAFTERF_TOLERANCE, 0},
+{476, 3335234513u, 1002337336u, 3335234512u, 0, NEXTAFTERF_TOLERANCE, 0},
+{477, 1279489061u, 1006049444u, 1279489060u, 0, NEXTAFTERF_TOLERANCE, 0},
+{478, 3157416480u, 1309984610u, 3157416479u, 0, NEXTAFTERF_TOLERANCE, 0},
+{479, 3143920719u, 3131608518u, 3143920718u, 0, NEXTAFTERF_TOLERANCE, 0},
+{480, 1148920078u, 1007674793u, 1148920077u, 0, NEXTAFTERF_TOLERANCE, 0},
+{481, 3064988156u, 3230867340u, 3064988157u, 0, NEXTAFTERF_TOLERANCE, 0},
+{482, 3083619260u, 1159415661u, 3083619259u, 0, NEXTAFTERF_TOLERANCE, 0},
+{483, 1109198803u, 1221754614u, 1109198804u, 0, NEXTAFTERF_TOLERANCE, 0},
+{484, 3219949483u, 1056167693u, 3219949482u, 0, NEXTAFTERF_TOLERANCE, 0},
+{485, 3361149474u, 3387342069u, 3361149475u, 0, NEXTAFTERF_TOLERANCE, 0},
+{486, 1207502108u, 3388073586u, 1207502107u, 0, NEXTAFTERF_TOLERANCE, 0},
+{487, 3161756316u, 3143659754u, 3161756315u, 0, NEXTAFTERF_TOLERANCE, 0},
+{488, 3160728744u, 3382954009u, 3160728745u, 0, NEXTAFTERF_TOLERANCE, 0},
+{489, 1234530539u, 1079988872u, 1234530538u, 0, NEXTAFTERF_TOLERANCE, 0},
+{490, 1017843965u, 1193076204u, 1017843966u, 0, NEXTAFTERF_TOLERANCE, 0},
+{491, 951862956u, 1173464654u, 951862957u, 0, NEXTAFTERF_TOLERANCE, 0},
+{492, 3306328852u, 1118701064u, 3306328851u, 0, NEXTAFTERF_TOLERANCE, 0},
+{493, 1291910469u, 1211303367u, 1291910468u, 0, NEXTAFTERF_TOLERANCE, 0},
+{494, 3027442905u, 1173894400u, 3027442904u, 0, NEXTAFTERF_TOLERANCE, 0},
+{495, 1131927531u, 3182962700u, 1131927530u, 0, NEXTAFTERF_TOLERANCE, 0},
+{496, 3449879391u, 991614550u, 3449879390u, 0, NEXTAFTERF_TOLERANCE, 0},
+{497, 970094304u, 3344590506u, 970094303u, 0, NEXTAFTERF_TOLERANCE, 0},
+{498, 1125551064u, 3331248076u, 1125551063u, 0, NEXTAFTERF_TOLERANCE, 0},
+{499, 3427296372u, 3455289118u, 3427296373u, 0, NEXTAFTERF_TOLERANCE, 0},
+{500, 1198917460u, 1327195159u, 1198917461u, 0, NEXTAFTERF_TOLERANCE, 0},
+{501, 3114686212u, 3476082461u, 3114686213u, 0, NEXTAFTERF_TOLERANCE, 0},
+{502, 3393557778u, 3383396815u, 3393557777u, 0, NEXTAFTERF_TOLERANCE, 0},
+{503, 1276853215u, 873199561u, 1276853214u, 0, NEXTAFTERF_TOLERANCE, 0},
+{504, 3462778440u, 3349284325u, 3462778439u, 0, NEXTAFTERF_TOLERANCE, 0},
+{505, 3360170117u, 3048354042u, 3360170116u, 0, NEXTAFTERF_TOLERANCE, 0},
+{506, 3224245428u, 3271307999u, 3224245429u, 0, NEXTAFTERF_TOLERANCE, 0},
+{507, 1120124467u, 1135619937u, 1120124468u, 0, NEXTAFTERF_TOLERANCE, 0},
+{508, 1064364381u, 3180675544u, 1064364380u, 0, NEXTAFTERF_TOLERANCE, 0},
+{509, 1268744779u, 3328452652u, 1268744778u, 0, NEXTAFTERF_TOLERANCE, 0},
+{510, 1165195428u, 3390323168u, 1165195427u, 0, NEXTAFTERF_TOLERANCE, 0},
+{511, 3044092739u, 1106497311u, 3044092738u, 0, NEXTAFTERF_TOLERANCE, 0},
+{512, 3149469534u, 1278465842u, 3149469533u, 0, NEXTAFTERF_TOLERANCE, 0},
+{513, 3247790039u, 909788142u, 3247790038u, 0, NEXTAFTERF_TOLERANCE, 0},
+{514, 3215244648u, 1083988595u, 3215244647u, 0, NEXTAFTERF_TOLERANCE, 0},
+{515, 3095275931u, 989153382u, 3095275930u, 0, NEXTAFTERF_TOLERANCE, 0},
+{516, 3059688264u, 1117455718u, 3059688263u, 0, NEXTAFTERF_TOLERANCE, 0},
+{517, 3275973009u, 3450721670u, 3275973010u, 0, NEXTAFTERF_TOLERANCE, 0},
+{518, 3028857014u, 3188853813u, 3028857015u, 0, NEXTAFTERF_TOLERANCE, 0},
+{519, 3391162308u, 1291220039u, 3391162307u, 0, NEXTAFTERF_TOLERANCE, 0},
+{520, 1044867873u, 3369493273u, 1044867872u, 0, NEXTAFTERF_TOLERANCE, 0},
+{521, 1089986803u, 3462160118u, 1089986802u, 0, NEXTAFTERF_TOLERANCE, 0},
+{522, 1251462432u, 3171021770u, 1251462431u, 0, NEXTAFTERF_TOLERANCE, 0},
+{523, 3485236902u, 980772835u, 3485236901u, 0, NEXTAFTERF_TOLERANCE, 0},
+{524, 3262169538u, 1268270462u, 3262169537u, 0, NEXTAFTERF_TOLERANCE, 0},
+{525, 3080852256u, 994641495u, 3080852255u, 0, NEXTAFTERF_TOLERANCE, 0},
+{526, 1022211242u, 922124181u, 1022211241u, 0, NEXTAFTERF_TOLERANCE, 0},
+{527, 3071422941u, 3271100396u, 3071422942u, 0, NEXTAFTERF_TOLERANCE, 0},
+{528, 989762529u, 3362011135u, 989762528u, 0, NEXTAFTERF_TOLERANCE, 0},
+{529, 1295475718u, 3212305413u, 1295475717u, 0, NEXTAFTERF_TOLERANCE, 0},
+{530, 1002632518u, 3330388441u, 1002632517u, 0, NEXTAFTERF_TOLERANCE, 0},
+{531, 3404372005u, 3450484255u, 3404372006u, 0, NEXTAFTERF_TOLERANCE, 0},
+{532, 3158912530u, 3105501826u, 3158912529u, 0, NEXTAFTERF_TOLERANCE, 0},
+{533, 1125800069u, 3256265749u, 1125800068u, 0, NEXTAFTERF_TOLERANCE, 0},
+{534, 3138037576u, 3103365227u, 3138037575u, 0, NEXTAFTERF_TOLERANCE, 0},
+{535, 3108384823u, 1300246663u, 3108384822u, 0, NEXTAFTERF_TOLERANCE, 0},
+{536, 999985470u, 3409354318u, 999985469u, 0, NEXTAFTERF_TOLERANCE, 0},
+{537, 1189421739u, 1056599002u, 1189421738u, 0, NEXTAFTERF_TOLERANCE, 0},
+{538, 3075182644u, 3144159778u, 3075182645u, 0, NEXTAFTERF_TOLERANCE, 0},
+{539, 3028099649u, 3391513557u, 3028099650u, 0, NEXTAFTERF_TOLERANCE, 0},
+{540, 3132541814u, 3444521949u, 3132541815u, 0, NEXTAFTERF_TOLERANCE, 0},
+{541, 1164046161u, 3440635788u, 1164046160u, 0, NEXTAFTERF_TOLERANCE, 0},
+{542, 1292596266u, 3116569667u, 1292596265u, 0, NEXTAFTERF_TOLERANCE, 0},
+{543, 3469748379u, 3412765608u, 3469748378u, 0, NEXTAFTERF_TOLERANCE, 0},
+{544, 1314644642u, 3123051784u, 1314644641u, 0, NEXTAFTERF_TOLERANCE, 0},
+{545, 948775569u, 3485444126u, 948775568u, 0, NEXTAFTERF_TOLERANCE, 0},
+{546, 1034611395u, 882288581u, 1034611394u, 0, NEXTAFTERF_TOLERANCE, 0},
+{547, 3489122735u, 3372450889u, 3489122734u, 0, NEXTAFTERF_TOLERANCE, 0},
+{548, 1181604787u, 3363067409u, 1181604786u, 0, NEXTAFTERF_TOLERANCE, 0},
+{549, 3059042077u, 3204983963u, 3059042078u, 0, NEXTAFTERF_TOLERANCE, 0},
+{550, 1043691622u, 3402603223u, 1043691621u, 0, NEXTAFTERF_TOLERANCE, 0},
+{551, 3157534378u, 3451674717u, 3157534379u, 0, NEXTAFTERF_TOLERANCE, 0},
+{552, 3400949680u, 3073750220u, 3400949679u, 0, NEXTAFTERF_TOLERANCE, 0},
+{553, 3365581801u, 1175843167u, 3365581800u, 0, NEXTAFTERF_TOLERANCE, 0},
+{554, 3189917167u, 927278934u, 3189917166u, 0, NEXTAFTERF_TOLERANCE, 0},
+{555, 969804941u, 3355439348u, 969804940u, 0, NEXTAFTERF_TOLERANCE, 0},
+{556, 1139120919u, 3270515074u, 1139120918u, 0, NEXTAFTERF_TOLERANCE, 0},
+{557, 934308144u, 3118191228u, 934308143u, 0, NEXTAFTERF_TOLERANCE, 0},
+{558, 1220524226u, 1152648002u, 1220524225u, 0, NEXTAFTERF_TOLERANCE, 0},
+{559, 3162548604u, 3461790298u, 3162548605u, 0, NEXTAFTERF_TOLERANCE, 0},
+{560, 3382391700u, 3296962745u, 3382391699u, 0, NEXTAFTERF_TOLERANCE, 0},
+{561, 1156767533u, 1088986462u, 1156767532u, 0, NEXTAFTERF_TOLERANCE, 0},
+{562, 3079222483u, 3312324949u, 3079222484u, 0, NEXTAFTERF_TOLERANCE, 0},
+{563, 994934087u, 967678094u, 994934086u, 0, NEXTAFTERF_TOLERANCE, 0},
+{564, 3185240099u, 1123403720u, 3185240098u, 0, NEXTAFTERF_TOLERANCE, 0},
+{565, 3479873563u, 1246277393u, 3479873562u, 0, NEXTAFTERF_TOLERANCE, 0},
+{566, 3424264117u, 3434026174u, 3424264118u, 0, NEXTAFTERF_TOLERANCE, 0},
+{567, 3228365887u, 1216775310u, 3228365886u, 0, NEXTAFTERF_TOLERANCE, 0},
+{568, 1035909900u, 1249532942u, 1035909901u, 0, NEXTAFTERF_TOLERANCE, 0},
+{569, 3024951184u, 1247632131u, 3024951183u, 0, NEXTAFTERF_TOLERANCE, 0},
+{570, 3125775254u, 955826310u, 3125775253u, 0, NEXTAFTERF_TOLERANCE, 0},
+{571, 1037464105u, 3121544932u, 1037464104u, 0, NEXTAFTERF_TOLERANCE, 0},
+{572, 1311706596u, 1254918706u, 1311706595u, 0, NEXTAFTERF_TOLERANCE, 0},
+{573, 918212457u, 1017468331u, 918212458u, 0, NEXTAFTERF_TOLERANCE, 0},
+{574, 1337315179u, 3461361185u, 1337315178u, 0, NEXTAFTERF_TOLERANCE, 0},
+{575, 1131358407u, 3325958870u, 1131358406u, 0, NEXTAFTERF_TOLERANCE, 0},
+{576, 1156517523u, 3343716230u, 1156517522u, 0, NEXTAFTERF_TOLERANCE, 0},
+{577, 3210802820u, 3207408574u, 3210802819u, 0, NEXTAFTERF_TOLERANCE, 0},
+{578, 3337499209u, 1226297264u, 3337499208u, 0, NEXTAFTERF_TOLERANCE, 0},
+{579, 3468429030u, 3253874001u, 3468429029u, 0, NEXTAFTERF_TOLERANCE, 0},
+{580, 3253515800u, 1189005947u, 3253515799u, 0, NEXTAFTERF_TOLERANCE, 0},
+{581, 3055299953u, 3047908678u, 3055299952u, 0, NEXTAFTERF_TOLERANCE, 0},
+{582, 959956547u, 876324728u, 959956546u, 0, NEXTAFTERF_TOLERANCE, 0},
+{583, 3425290480u, 1139193797u, 3425290479u, 0, NEXTAFTERF_TOLERANCE, 0},
+{584, 1039917375u, 1122740999u, 1039917376u, 0, NEXTAFTERF_TOLERANCE, 0},
+{585, 3220979495u, 3429223871u, 3220979496u, 0, NEXTAFTERF_TOLERANCE, 0},
+{586, 1311016004u, 3334899880u, 1311016003u, 0, NEXTAFTERF_TOLERANCE, 0},
+{587, 1128016396u, 1105151547u, 1128016395u, 0, NEXTAFTERF_TOLERANCE, 0},
+{588, 3210335769u, 3100646155u, 3210335768u, 0, NEXTAFTERF_TOLERANCE, 0},
+{589, 3022705759u, 3404762495u, 3022705760u, 0, NEXTAFTERF_TOLERANCE, 0},
+{590, 3144504834u, 1162227076u, 3144504833u, 0, NEXTAFTERF_TOLERANCE, 0},
+{591, 1213609983u, 919983950u, 1213609982u, 0, NEXTAFTERF_TOLERANCE, 0},
+{592, 1246902946u, 3064047808u, 1246902945u, 0, NEXTAFTERF_TOLERANCE, 0},
+{593, 995850843u, 1332031130u, 995850844u, 0, NEXTAFTERF_TOLERANCE, 0},
+{594, 3362082828u, 3374056268u, 3362082829u, 0, NEXTAFTERF_TOLERANCE, 0},
+{595, 1029480631u, 3047777170u, 1029480630u, 0, NEXTAFTERF_TOLERANCE, 0},
+{596, 3153568584u, 3106514232u, 3153568583u, 0, NEXTAFTERF_TOLERANCE, 0},
+{597, 3384988527u, 3109485565u, 3384988526u, 0, NEXTAFTERF_TOLERANCE, 0},
+{598, 3235395924u, 1132055244u, 3235395923u, 0, NEXTAFTERF_TOLERANCE, 0},
+{599, 1228636133u, 886552820u, 1228636132u, 0, NEXTAFTERF_TOLERANCE, 0},
+{600, 3161654634u, 3335899347u, 3161654635u, 0, NEXTAFTERF_TOLERANCE, 0},
+{601, 3162655243u, 3307203982u, 3162655244u, 0, NEXTAFTERF_TOLERANCE, 0},
+{602, 1165476654u, 3350219111u, 1165476653u, 0, NEXTAFTERF_TOLERANCE, 0},
+{603, 1017239798u, 3438501281u, 1017239797u, 0, NEXTAFTERF_TOLERANCE, 0},
+{604, 1149651309u, 970030475u, 1149651308u, 0, NEXTAFTERF_TOLERANCE, 0},
+{605, 1111943722u, 3122211334u, 1111943721u, 0, NEXTAFTERF_TOLERANCE, 0},
+{606, 1189849849u, 3382739134u, 1189849848u, 0, NEXTAFTERF_TOLERANCE, 0},
+{607, 3204848496u, 3141519085u, 3204848495u, 0, NEXTAFTERF_TOLERANCE, 0},
+{608, 1249758327u, 3104759211u, 1249758326u, 0, NEXTAFTERF_TOLERANCE, 0},
+{609, 3092982276u, 3445282331u, 3092982277u, 0, NEXTAFTERF_TOLERANCE, 0},
+{610, 1168098747u, 1316854744u, 1168098748u, 0, NEXTAFTERF_TOLERANCE, 0},
+{611, 892549317u, 1179637545u, 892549318u, 0, NEXTAFTERF_TOLERANCE, 0},
+{612, 3301009024u, 3406174560u, 3301009025u, 0, NEXTAFTERF_TOLERANCE, 0},
+{613, 3233089227u, 1212652543u, 3233089226u, 0, NEXTAFTERF_TOLERANCE, 0},
+{614, 3218245284u, 1238873830u, 3218245283u, 0, NEXTAFTERF_TOLERANCE, 0},
+{615, 3215981890u, 3240474694u, 3215981891u, 0, NEXTAFTERF_TOLERANCE, 0},
+{616, 1266687209u, 3092038122u, 1266687208u, 0, NEXTAFTERF_TOLERANCE, 0},
+{617, 3487959775u, 3331372071u, 3487959774u, 0, NEXTAFTERF_TOLERANCE, 0},
+{618, 3345065699u, 3282620725u, 3345065698u, 0, NEXTAFTERF_TOLERANCE, 0},
+{619, 935847271u, 1067255804u, 935847272u, 0, NEXTAFTERF_TOLERANCE, 0},
+{620, 3410336089u, 1111437780u, 3410336088u, 0, NEXTAFTERF_TOLERANCE, 0},
+{621, 3082940740u, 1336840432u, 3082940739u, 0, NEXTAFTERF_TOLERANCE, 0},
+{622, 1141063391u, 1168908072u, 1141063392u, 0, NEXTAFTERF_TOLERANCE, 0},
+{623, 3059263153u, 3067795684u, 3059263154u, 0, NEXTAFTERF_TOLERANCE, 0},
+{624, 3353679791u, 897158391u, 3353679790u, 0, NEXTAFTERF_TOLERANCE, 0},
+{625, 1001823878u, 1016826861u, 1001823879u, 0, NEXTAFTERF_TOLERANCE, 0},
+{626, 1009130212u, 1004302940u, 1009130211u, 0, NEXTAFTERF_TOLERANCE, 0},
+{627, 3367127535u, 943136342u, 3367127534u, 0, NEXTAFTERF_TOLERANCE, 0},
+{628, 1032920919u, 3449126417u, 1032920918u, 0, NEXTAFTERF_TOLERANCE, 0},
+{629, 3281952870u, 3147012185u, 3281952869u, 0, NEXTAFTERF_TOLERANCE, 0},
+{630, 1237868497u, 3048281802u, 1237868496u, 0, NEXTAFTERF_TOLERANCE, 0},
+{631, 1153753924u, 3322269242u, 1153753923u, 0, NEXTAFTERF_TOLERANCE, 0},
+{632, 1120261759u, 892210998u, 1120261758u, 0, NEXTAFTERF_TOLERANCE, 0},
+{633, 3226328360u, 3366432856u, 3226328361u, 0, NEXTAFTERF_TOLERANCE, 0},
+{634, 3349595986u, 3251588707u, 3349595985u, 0, NEXTAFTERF_TOLERANCE, 0},
+{635, 3166889490u, 3306023523u, 3166889491u, 0, NEXTAFTERF_TOLERANCE, 0},
+{636, 1087750238u, 1099325523u, 1087750239u, 0, NEXTAFTERF_TOLERANCE, 0},
+{637, 3121620061u, 3359488363u, 3121620062u, 0, NEXTAFTERF_TOLERANCE, 0},
+{638, 1066116543u, 3072159933u, 1066116542u, 0, NEXTAFTERF_TOLERANCE, 0},
+{639, 3051923237u, 3364074347u, 3051923238u, 0, NEXTAFTERF_TOLERANCE, 0},
+{640, 1030612298u, 3345396001u, 1030612297u, 0, NEXTAFTERF_TOLERANCE, 0},
+{641, 1331680743u, 1009396165u, 1331680742u, 0, NEXTAFTERF_TOLERANCE, 0},
+{642, 3060774997u, 1326067357u, 3060774996u, 0, NEXTAFTERF_TOLERANCE, 0},
+{643, 887589411u, 1292305693u, 887589412u, 0, NEXTAFTERF_TOLERANCE, 0},
+{644, 1045232522u, 3234993273u, 1045232521u, 0, NEXTAFTERF_TOLERANCE, 0},
+{645, 3119858470u, 962515365u, 3119858469u, 0, NEXTAFTERF_TOLERANCE, 0},
+{646, 3349432725u, 928848003u, 3349432724u, 0, NEXTAFTERF_TOLERANCE, 0},
+{647, 912423027u, 3184646319u, 912423026u, 0, NEXTAFTERF_TOLERANCE, 0},
+{648, 3228795133u, 3273940030u, 3228795134u, 0, NEXTAFTERF_TOLERANCE, 0},
+{649, 3194674746u, 3112269709u, 3194674745u, 0, NEXTAFTERF_TOLERANCE, 0},
+{650, 3296784303u, 3276182352u, 3296784302u, 0, NEXTAFTERF_TOLERANCE, 0},
+{651, 965402291u, 3107104376u, 965402290u, 0, NEXTAFTERF_TOLERANCE, 0},
+{652, 3388153589u, 3426245389u, 3388153590u, 0, NEXTAFTERF_TOLERANCE, 0},
+{653, 1133410485u, 3329658993u, 1133410484u, 0, NEXTAFTERF_TOLERANCE, 0},
+{654, 3136790322u, 1088652637u, 3136790321u, 0, NEXTAFTERF_TOLERANCE, 0},
+{655, 3369970587u, 959121458u, 3369970586u, 0, NEXTAFTERF_TOLERANCE, 0},
+{656, 1270451568u, 928393353u, 1270451567u, 0, NEXTAFTERF_TOLERANCE, 0},
+{657, 989498922u, 3088358419u, 989498921u, 0, NEXTAFTERF_TOLERANCE, 0},
+{658, 1280215674u, 3148135875u, 1280215673u, 0, NEXTAFTERF_TOLERANCE, 0},
+{659, 1171873518u, 954709738u, 1171873517u, 0, NEXTAFTERF_TOLERANCE, 0},
+{660, 3298258100u, 935525182u, 3298258099u, 0, NEXTAFTERF_TOLERANCE, 0},
+{661, 1001897182u, 3191875320u, 1001897181u, 0, NEXTAFTERF_TOLERANCE, 0},
+{662, 3152777939u, 3245830463u, 3152777940u, 0, NEXTAFTERF_TOLERANCE, 0},
+{663, 985903305u, 3333087577u, 985903304u, 0, NEXTAFTERF_TOLERANCE, 0},
+{664, 982612185u, 923582663u, 982612184u, 0, NEXTAFTERF_TOLERANCE, 0},
+{665, 3267868136u, 1208301947u, 3267868135u, 0, NEXTAFTERF_TOLERANCE, 0},
+{666, 3319048157u, 1172271145u, 3319048156u, 0, NEXTAFTERF_TOLERANCE, 0},
+{667, 3301461672u, 1233693827u, 3301461671u, 0, NEXTAFTERF_TOLERANCE, 0},
+{668, 3364525678u, 3089849671u, 3364525677u, 0, NEXTAFTERF_TOLERANCE, 0},
+{669, 931441127u, 1133424555u, 931441128u, 0, NEXTAFTERF_TOLERANCE, 0},
+{670, 3146660041u, 3143695961u, 3146660040u, 0, NEXTAFTERF_TOLERANCE, 0},
+{671, 3467121799u, 3023584354u, 3467121798u, 0, NEXTAFTERF_TOLERANCE, 0},
+{672, 1151257041u, 3084216427u, 1151257040u, 0, NEXTAFTERF_TOLERANCE, 0},
+{673, 3097873255u, 3219266640u, 3097873256u, 0, NEXTAFTERF_TOLERANCE, 0},
+{674, 3130670309u, 3192399254u, 3130670310u, 0, NEXTAFTERF_TOLERANCE, 0},
+{675, 1017573824u, 3130901062u, 1017573823u, 0, NEXTAFTERF_TOLERANCE, 0},
+{676, 1258369714u, 3462258576u, 1258369713u, 0, NEXTAFTERF_TOLERANCE, 0},
+{677, 1216602683u, 3371396332u, 1216602682u, 0, NEXTAFTERF_TOLERANCE, 0},
+{678, 3297265739u, 1214184410u, 3297265738u, 0, NEXTAFTERF_TOLERANCE, 0},
+{679, 1071940738u, 3311731012u, 1071940737u, 0, NEXTAFTERF_TOLERANCE, 0},
+{680, 922601356u, 3337171870u, 922601355u, 0, NEXTAFTERF_TOLERANCE, 0},
+{681, 3462285635u, 3444030332u, 3462285634u, 0, NEXTAFTERF_TOLERANCE, 0},
+{682, 3357177805u, 1085464241u, 3357177804u, 0, NEXTAFTERF_TOLERANCE, 0},
+{683, 3049120080u, 900832851u, 3049120079u, 0, NEXTAFTERF_TOLERANCE, 0},
+{684, 1153863660u, 1011991342u, 1153863659u, 0, NEXTAFTERF_TOLERANCE, 0},
+{685, 3034243695u, 917098003u, 3034243694u, 0, NEXTAFTERF_TOLERANCE, 0},
+{686, 1249365132u, 3278686216u, 1249365131u, 0, NEXTAFTERF_TOLERANCE, 0},
+{687, 3046215730u, 3211219980u, 3046215731u, 0, NEXTAFTERF_TOLERANCE, 0},
+{688, 3047251716u, 1090787353u, 3047251715u, 0, NEXTAFTERF_TOLERANCE, 0},
+{689, 3131219358u, 3471261157u, 3131219359u, 0, NEXTAFTERF_TOLERANCE, 0},
+{690, 3222096285u, 1198013705u, 3222096284u, 0, NEXTAFTERF_TOLERANCE, 0},
+{691, 1297708818u, 3079166173u, 1297708817u, 0, NEXTAFTERF_TOLERANCE, 0},
+{692, 3345532722u, 3383708463u, 3345532723u, 0, NEXTAFTERF_TOLERANCE, 0},
+{693, 3418753236u, 3481843070u, 3418753237u, 0, NEXTAFTERF_TOLERANCE, 0},
+{694, 1277417964u, 3487506626u, 1277417963u, 0, NEXTAFTERF_TOLERANCE, 0},
+{695, 987577257u, 1152077087u, 987577258u, 0, NEXTAFTERF_TOLERANCE, 0},
+{696, 3161606610u, 3190282989u, 3161606611u, 0, NEXTAFTERF_TOLERANCE, 0},
+{697, 888030585u, 3062367380u, 888030584u, 0, NEXTAFTERF_TOLERANCE, 0},
+{698, 1043442869u, 3311393817u, 1043442868u, 0, NEXTAFTERF_TOLERANCE, 0},
+{699, 3320923228u, 3464544249u, 3320923229u, 0, NEXTAFTERF_TOLERANCE, 0},
+{700, 1337400405u, 3488844154u, 1337400404u, 0, NEXTAFTERF_TOLERANCE, 0},
+{701, 3400348640u, 3129868490u, 3400348639u, 0, NEXTAFTERF_TOLERANCE, 0},
+{702, 1250249095u, 1069023744u, 1250249094u, 0, NEXTAFTERF_TOLERANCE, 0},
+{703, 3284411233u, 1173613526u, 3284411232u, 0, NEXTAFTERF_TOLERANCE, 0},
+{704, 1215968622u, 3469884568u, 1215968621u, 0, NEXTAFTERF_TOLERANCE, 0},
+{705, 3061638260u, 3116222327u, 3061638261u, 0, NEXTAFTERF_TOLERANCE, 0},
+{706, 1025404104u, 1066370251u, 1025404105u, 0, NEXTAFTERF_TOLERANCE, 0},
+{707, 3138086437u, 3195983510u, 3138086438u, 0, NEXTAFTERF_TOLERANCE, 0},
+{708, 3091024506u, 3456196859u, 3091024507u, 0, NEXTAFTERF_TOLERANCE, 0},
+{709, 3362748242u, 3369843597u, 3362748243u, 0, NEXTAFTERF_TOLERANCE, 0},
+{710, 3099671635u, 3218383623u, 3099671636u, 0, NEXTAFTERF_TOLERANCE, 0},
+{711, 1252237719u, 1121169249u, 1252237718u, 0, NEXTAFTERF_TOLERANCE, 0},
+{712, 3327895594u, 1224511805u, 3327895593u, 0, NEXTAFTERF_TOLERANCE, 0},
+{713, 3082454432u, 889268276u, 3082454431u, 0, NEXTAFTERF_TOLERANCE, 0},
+{714, 3396161504u, 1182798837u, 3396161503u, 0, NEXTAFTERF_TOLERANCE, 0},
+{715, 1099710167u, 887180181u, 1099710166u, 0, NEXTAFTERF_TOLERANCE, 0},
+{716, 1157186482u, 1288722647u, 1157186483u, 0, NEXTAFTERF_TOLERANCE, 0},
+{717, 1282110851u, 3176633124u, 1282110850u, 0, NEXTAFTERF_TOLERANCE, 0},
+{718, 3477008113u, 1331845018u, 3477008112u, 0, NEXTAFTERF_TOLERANCE, 0},
+{719, 3292127294u, 3409957764u, 3292127295u, 0, NEXTAFTERF_TOLERANCE, 0},
+{720, 1123357102u, 3281307320u, 1123357101u, 0, NEXTAFTERF_TOLERANCE, 0},
+{721, 1106837025u, 3088080674u, 1106837024u, 0, NEXTAFTERF_TOLERANCE, 0},
+{722, 1049949008u, 1130799489u, 1049949009u, 0, NEXTAFTERF_TOLERANCE, 0},
+{723, 1253017688u, 942062372u, 1253017687u, 0, NEXTAFTERF_TOLERANCE, 0},
+{724, 1108543194u, 3281299199u, 1108543193u, 0, NEXTAFTERF_TOLERANCE, 0},
+{725, 3087985411u, 1238341456u, 3087985410u, 0, NEXTAFTERF_TOLERANCE, 0},
+{726, 3163283126u, 1328636961u, 3163283125u, 0, NEXTAFTERF_TOLERANCE, 0},
+{727, 1160162706u, 1264067367u, 1160162707u, 0, NEXTAFTERF_TOLERANCE, 0},
+{728, 3025340297u, 1193925540u, 3025340296u, 0, NEXTAFTERF_TOLERANCE, 0},
+{729, 3438080027u, 3107114149u, 3438080026u, 0, NEXTAFTERF_TOLERANCE, 0},
+{730, 3344574751u, 3111270744u, 3344574750u, 0, NEXTAFTERF_TOLERANCE, 0},
+{731, 1152416724u, 962669179u, 1152416723u, 0, NEXTAFTERF_TOLERANCE, 0},
+{732, 1218239308u, 1126238113u, 1218239307u, 0, NEXTAFTERF_TOLERANCE, 0},
+{733, 3263310567u, 1030748197u, 3263310566u, 0, NEXTAFTERF_TOLERANCE, 0},
+{734, 3041998669u, 1160635263u, 3041998668u, 0, NEXTAFTERF_TOLERANCE, 0},
+{735, 972485427u, 1124312043u, 972485428u, 0, NEXTAFTERF_TOLERANCE, 0},
+{736, 3290264612u, 1124703898u, 3290264611u, 0, NEXTAFTERF_TOLERANCE, 0},
+{737, 3222106584u, 1183748648u, 3222106583u, 0, NEXTAFTERF_TOLERANCE, 0},
+{738, 947914771u, 3181847068u, 947914770u, 0, NEXTAFTERF_TOLERANCE, 0},
+{739, 3167730654u, 3195765940u, 3167730655u, 0, NEXTAFTERF_TOLERANCE, 0},
+{740, 1098530298u, 3255870890u, 1098530297u, 0, NEXTAFTERF_TOLERANCE, 0},
+{741, 1277649137u, 961171401u, 1277649136u, 0, NEXTAFTERF_TOLERANCE, 0},
+{742, 3203377685u, 1306427476u, 3203377684u, 0, NEXTAFTERF_TOLERANCE, 0},
+{743, 3090306474u, 3124785016u, 3090306475u, 0, NEXTAFTERF_TOLERANCE, 0},
+{744, 3244032016u, 3045313345u, 3244032015u, 0, NEXTAFTERF_TOLERANCE, 0},
+{745, 3033122376u, 3049877065u, 3033122377u, 0, NEXTAFTERF_TOLERANCE, 0},
+{746, 1096155623u, 1256423752u, 1096155624u, 0, NEXTAFTERF_TOLERANCE, 0},
+{747, 873151908u, 3246562559u, 873151907u, 0, NEXTAFTERF_TOLERANCE, 0},
+{748, 3238729605u, 1298769842u, 3238729604u, 0, NEXTAFTERF_TOLERANCE, 0},
+{749, 3317196817u, 989537151u, 3317196816u, 0, NEXTAFTERF_TOLERANCE, 0},
+{750, 3345634950u, 959901149u, 3345634949u, 0, NEXTAFTERF_TOLERANCE, 0},
+{751, 3189860276u, 883598767u, 3189860275u, 0, NEXTAFTERF_TOLERANCE, 0},
+{752, 887311687u, 1175312255u, 887311688u, 0, NEXTAFTERF_TOLERANCE, 0},
+{753, 3396917283u, 3066326686u, 3396917282u, 0, NEXTAFTERF_TOLERANCE, 0},
+{754, 3317032737u, 3143803722u, 3317032736u, 0, NEXTAFTERF_TOLERANCE, 0},
+{755, 1200051436u, 1163802508u, 1200051435u, 0, NEXTAFTERF_TOLERANCE, 0},
+{756, 3105291012u, 1194385202u, 3105291011u, 0, NEXTAFTERF_TOLERANCE, 0},
+{757, 1306520561u, 957302464u, 1306520560u, 0, NEXTAFTERF_TOLERANCE, 0},
+{758, 3475052219u, 1284049853u, 3475052218u, 0, NEXTAFTERF_TOLERANCE, 0},
+{759, 3085636260u, 1107682820u, 3085636259u, 0, NEXTAFTERF_TOLERANCE, 0},
+{760, 3393227708u, 3271879112u, 3393227707u, 0, NEXTAFTERF_TOLERANCE, 0},
+{761, 3349005404u, 3080993030u, 3349005403u, 0, NEXTAFTERF_TOLERANCE, 0},
+{762, 3154720153u, 3443720494u, 3154720154u, 0, NEXTAFTERF_TOLERANCE, 0},
+{763, 1262863321u, 1219003129u, 1262863320u, 0, NEXTAFTERF_TOLERANCE, 0},
+{764, 882902102u, 1224362550u, 882902103u, 0, NEXTAFTERF_TOLERANCE, 0},
+{765, 1053387478u, 3184880021u, 1053387477u, 0, NEXTAFTERF_TOLERANCE, 0},
+{766, 3387653691u, 3347783852u, 3387653690u, 0, NEXTAFTERF_TOLERANCE, 0},
+{767, 3136364836u, 1018492227u, 3136364835u, 0, NEXTAFTERF_TOLERANCE, 0},
+{768, 1338680611u, 1166078045u, 1338680610u, 0, NEXTAFTERF_TOLERANCE, 0},
+{769, 1112891928u, 3074730425u, 1112891927u, 0, NEXTAFTERF_TOLERANCE, 0},
+{770, 893449284u, 1052877339u, 893449285u, 0, NEXTAFTERF_TOLERANCE, 0},
+{771, 892311459u, 1097338393u, 892311460u, 0, NEXTAFTERF_TOLERANCE, 0},
+{772, 3105373037u, 3246705916u, 3105373038u, 0, NEXTAFTERF_TOLERANCE, 0},
+{773, 1190105283u, 3033907262u, 1190105282u, 0, NEXTAFTERF_TOLERANCE, 0},
+{774, 1011225926u, 1180485180u, 1011225927u, 0, NEXTAFTERF_TOLERANCE, 0},
+{775, 1043025031u, 987068973u, 1043025030u, 0, NEXTAFTERF_TOLERANCE, 0},
+{776, 3125834184u, 896953754u, 3125834183u, 0, NEXTAFTERF_TOLERANCE, 0},
+{777, 1120888322u, 1086209113u, 1120888321u, 0, NEXTAFTERF_TOLERANCE, 0},
+{778, 1315217243u, 3396371713u, 1315217242u, 0, NEXTAFTERF_TOLERANCE, 0},
+{779, 3137758475u, 1039403054u, 3137758474u, 0, NEXTAFTERF_TOLERANCE, 0},
+{780, 1040617590u, 1034835971u, 1040617589u, 0, NEXTAFTERF_TOLERANCE, 0},
+{781, 955384253u, 3344785562u, 955384252u, 0, NEXTAFTERF_TOLERANCE, 0},
+{782, 3061417900u, 1172208065u, 3061417899u, 0, NEXTAFTERF_TOLERANCE, 0},
+{783, 904255535u, 1019967545u, 904255536u, 0, NEXTAFTERF_TOLERANCE, 0},
+{784, 1022984119u, 3113891410u, 1022984118u, 0, NEXTAFTERF_TOLERANCE, 0},
+{785, 997362368u, 3112875428u, 997362367u, 0, NEXTAFTERF_TOLERANCE, 0},
+{786, 900933520u, 1100589187u, 900933521u, 0, NEXTAFTERF_TOLERANCE, 0},
+{787, 1168623062u, 1143306482u, 1168623061u, 0, NEXTAFTERF_TOLERANCE, 0},
+{788, 878737490u, 3269908326u, 878737489u, 0, NEXTAFTERF_TOLERANCE, 0},
+{789, 1039827284u, 1072928888u, 1039827285u, 0, NEXTAFTERF_TOLERANCE, 0},
+{790, 1021564080u, 1064468397u, 1021564081u, 0, NEXTAFTERF_TOLERANCE, 0},
+{791, 3458669745u, 3033299853u, 3458669744u, 0, NEXTAFTERF_TOLERANCE, 0},
+{792, 3327516316u, 3405380971u, 3327516317u, 0, NEXTAFTERF_TOLERANCE, 0},
+{793, 1040711112u, 3229444200u, 1040711111u, 0, NEXTAFTERF_TOLERANCE, 0},
+{794, 1134528351u, 3365952513u, 1134528350u, 0, NEXTAFTERF_TOLERANCE, 0},
+{795, 3039884464u, 1170612785u, 3039884463u, 0, NEXTAFTERF_TOLERANCE, 0},
+{796, 3414352838u, 3350285760u, 3414352837u, 0, NEXTAFTERF_TOLERANCE, 0},
+{797, 1133689539u, 1067460093u, 1133689538u, 0, NEXTAFTERF_TOLERANCE, 0},
+{798, 3455688478u, 3333091960u, 3455688477u, 0, NEXTAFTERF_TOLERANCE, 0},
+{799, 1137634874u, 1137038869u, 1137634873u, 0, NEXTAFTERF_TOLERANCE, 0},
+{800, 3415502662u, 955510692u, 3415502661u, 0, NEXTAFTERF_TOLERANCE, 0},
+{801, 954999730u, 969618597u, 954999731u, 0, NEXTAFTERF_TOLERANCE, 0},
+{802, 1066157309u, 3241712664u, 1066157308u, 0, NEXTAFTERF_TOLERANCE, 0},
+{803, 3436353675u, 1174967495u, 3436353674u, 0, NEXTAFTERF_TOLERANCE, 0},
+{804, 3108347547u, 3434003435u, 3108347548u, 0, NEXTAFTERF_TOLERANCE, 0},
+{805, 3064200154u, 3158080507u, 3064200155u, 0, NEXTAFTERF_TOLERANCE, 0},
+{806, 3272661536u, 3461799138u, 3272661537u, 0, NEXTAFTERF_TOLERANCE, 0},
+{807, 1170245333u, 1233406410u, 1170245334u, 0, NEXTAFTERF_TOLERANCE, 0},
+{808, 1219052056u, 3369557946u, 1219052055u, 0, NEXTAFTERF_TOLERANCE, 0},
+{809, 3318983619u, 3259663338u, 3318983618u, 0, NEXTAFTERF_TOLERANCE, 0},
+{810, 3146190320u, 889646054u, 3146190319u, 0, NEXTAFTERF_TOLERANCE, 0},
+{811, 1299683827u, 966031619u, 1299683826u, 0, NEXTAFTERF_TOLERANCE, 0},
+{812, 3190796331u, 1320011850u, 3190796330u, 0, NEXTAFTERF_TOLERANCE, 0},
+{813, 3086068902u, 3484245751u, 3086068903u, 0, NEXTAFTERF_TOLERANCE, 0},
+{814, 3064155399u, 3176569312u, 3064155400u, 0, NEXTAFTERF_TOLERANCE, 0},
+{815, 3040314717u, 1071290674u, 3040314716u, 0, NEXTAFTERF_TOLERANCE, 0},
+{816, 3257224022u, 3361778245u, 3257224023u, 0, NEXTAFTERF_TOLERANCE, 0},
+{817, 1229268598u, 1066965677u, 1229268597u, 0, NEXTAFTERF_TOLERANCE, 0},
+{818, 1086717248u, 3423795374u, 1086717247u, 0, NEXTAFTERF_TOLERANCE, 0},
+{819, 3434884607u, 3029593823u, 3434884606u, 0, NEXTAFTERF_TOLERANCE, 0},
+{820, 3464955606u, 1017987696u, 3464955605u, 0, NEXTAFTERF_TOLERANCE, 0},
+{821, 1025278524u, 3121856207u, 1025278523u, 0, NEXTAFTERF_TOLERANCE, 0},
+{822, 1242829722u, 3233935671u, 1242829721u, 0, NEXTAFTERF_TOLERANCE, 0},
+{823, 3075149137u, 1117325737u, 3075149136u, 0, NEXTAFTERF_TOLERANCE, 0},
+{824, 1200927971u, 1317167489u, 1200927972u, 0, NEXTAFTERF_TOLERANCE, 0},
+{825, 3326858092u, 3452602832u, 3326858093u, 0, NEXTAFTERF_TOLERANCE, 0},
+{826, 3184801644u, 1137974313u, 3184801643u, 0, NEXTAFTERF_TOLERANCE, 0},
+{827, 1136052740u, 3244616020u, 1136052739u, 0, NEXTAFTERF_TOLERANCE, 0},
+{828, 1015670780u, 1101217251u, 1015670781u, 0, NEXTAFTERF_TOLERANCE, 0},
+{829, 1012543234u, 1116520440u, 1012543235u, 0, NEXTAFTERF_TOLERANCE, 0},
+{830, 3316611992u, 3394732912u, 3316611993u, 0, NEXTAFTERF_TOLERANCE, 0},
+{831, 1087942795u, 3316660295u, 1087942794u, 0, NEXTAFTERF_TOLERANCE, 0},
+{832, 3426365713u, 3069778532u, 3426365712u, 0, NEXTAFTERF_TOLERANCE, 0},
+{833, 3066654389u, 3443934204u, 3066654390u, 0, NEXTAFTERF_TOLERANCE, 0},
+{834, 3295326432u, 1313396175u, 3295326431u, 0, NEXTAFTERF_TOLERANCE, 0},
+{835, 3318835308u, 3277583511u, 3318835307u, 0, NEXTAFTERF_TOLERANCE, 0},
+{836, 3283555717u, 891875120u, 3283555716u, 0, NEXTAFTERF_TOLERANCE, 0},
+{837, 3040485181u, 3375450886u, 3040485182u, 0, NEXTAFTERF_TOLERANCE, 0},
+{838, 3388772093u, 1032597076u, 3388772092u, 0, NEXTAFTERF_TOLERANCE, 0},
+{839, 954670189u, 1144923689u, 954670190u, 0, NEXTAFTERF_TOLERANCE, 0},
+{840, 1319200415u, 3387555900u, 1319200414u, 0, NEXTAFTERF_TOLERANCE, 0},
+{841, 1279324488u, 3228401212u, 1279324487u, 0, NEXTAFTERF_TOLERANCE, 0},
+{842, 3455131757u, 1260217257u, 3455131756u, 0, NEXTAFTERF_TOLERANCE, 0},
+{843, 1246947517u, 1087951909u, 1246947516u, 0, NEXTAFTERF_TOLERANCE, 0},
+{844, 3433761025u, 3060143904u, 3433761024u, 0, NEXTAFTERF_TOLERANCE, 0},
+{845, 3201187455u, 900233172u, 3201187454u, 0, NEXTAFTERF_TOLERANCE, 0},
+{846, 1173247961u, 1191127979u, 1173247962u, 0, NEXTAFTERF_TOLERANCE, 0},
+{847, 3037297123u, 3346394818u, 3037297124u, 0, NEXTAFTERF_TOLERANCE, 0},
+{848, 3248534678u, 1323683800u, 3248534677u, 0, NEXTAFTERF_TOLERANCE, 0},
+{849, 3083019343u, 3033309444u, 3083019342u, 0, NEXTAFTERF_TOLERANCE, 0},
+{850, 3042018375u, 3203882372u, 3042018376u, 0, NEXTAFTERF_TOLERANCE, 0},
+{851, 1082862511u, 3032804719u, 1082862510u, 0, NEXTAFTERF_TOLERANCE, 0},
+{852, 3157626955u, 3483653298u, 3157626956u, 0, NEXTAFTERF_TOLERANCE, 0},
+{853, 881101379u, 1190838126u, 881101380u, 0, NEXTAFTERF_TOLERANCE, 0},
+{854, 3182695954u, 3256861672u, 3182695955u, 0, NEXTAFTERF_TOLERANCE, 0},
+{855, 1105291533u, 3482971524u, 1105291532u, 0, NEXTAFTERF_TOLERANCE, 0},
+{856, 1016023520u, 3227712090u, 1016023519u, 0, NEXTAFTERF_TOLERANCE, 0},
+{857, 3370691006u, 1295870514u, 3370691005u, 0, NEXTAFTERF_TOLERANCE, 0},
+{858, 1156767169u, 1049756240u, 1156767168u, 0, NEXTAFTERF_TOLERANCE, 0},
+{859, 3077020499u, 894671462u, 3077020498u, 0, NEXTAFTERF_TOLERANCE, 0},
+{860, 1104284039u, 3040211914u, 1104284038u, 0, NEXTAFTERF_TOLERANCE, 0},
+{861, 3335212901u, 3486414589u, 3335212902u, 0, NEXTAFTERF_TOLERANCE, 0},
+{862, 1093697541u, 3193708441u, 1093697540u, 0, NEXTAFTERF_TOLERANCE, 0},
+{863, 3266691185u, 1160074593u, 3266691184u, 0, NEXTAFTERF_TOLERANCE, 0},
+{864, 3179003144u, 1108615803u, 3179003143u, 0, NEXTAFTERF_TOLERANCE, 0},
+{865, 3424086808u, 3260140004u, 3424086807u, 0, NEXTAFTERF_TOLERANCE, 0},
+{866, 3353608773u, 1134068114u, 3353608772u, 0, NEXTAFTERF_TOLERANCE, 0},
+{867, 973664327u, 1319516167u, 973664328u, 0, NEXTAFTERF_TOLERANCE, 0},
+{868, 882878091u, 3136970767u, 882878090u, 0, NEXTAFTERF_TOLERANCE, 0},
+{869, 927582555u, 947955456u, 927582556u, 0, NEXTAFTERF_TOLERANCE, 0},
+{870, 3111440310u, 3067634077u, 3111440309u, 0, NEXTAFTERF_TOLERANCE, 0},
+{871, 3476083859u, 966439623u, 3476083858u, 0, NEXTAFTERF_TOLERANCE, 0},
+{872, 3038754840u, 932009686u, 3038754839u, 0, NEXTAFTERF_TOLERANCE, 0},
+{873, 979878744u, 1232482646u, 979878745u, 0, NEXTAFTERF_TOLERANCE, 0},
+{874, 3464546616u, 3205527253u, 3464546615u, 0, NEXTAFTERF_TOLERANCE, 0},
+{875, 1002542205u, 3152136093u, 1002542204u, 0, NEXTAFTERF_TOLERANCE, 0},
+{876, 3443552129u, 3165561391u, 3443552128u, 0, NEXTAFTERF_TOLERANCE, 0},
+{877, 1287620154u, 3119707283u, 1287620153u, 0, NEXTAFTERF_TOLERANCE, 0},
+{878, 946058434u, 1249928879u, 946058435u, 0, NEXTAFTERF_TOLERANCE, 0},
+{879, 3073260205u, 3093124531u, 3073260206u, 0, NEXTAFTERF_TOLERANCE, 0},
+{880, 1245702957u, 894348966u, 1245702956u, 0, NEXTAFTERF_TOLERANCE, 0},
+{881, 989655126u, 1308376568u, 989655127u, 0, NEXTAFTERF_TOLERANCE, 0},
+{882, 1002715618u, 1191006977u, 1002715619u, 0, NEXTAFTERF_TOLERANCE, 0},
+{883, 3087802274u, 897541752u, 3087802273u, 0, NEXTAFTERF_TOLERANCE, 0},
+{884, 1000863905u, 1196831314u, 1000863906u, 0, NEXTAFTERF_TOLERANCE, 0},
+{885, 3415763001u, 3032518431u, 3415763000u, 0, NEXTAFTERF_TOLERANCE, 0},
+{886, 3283471961u, 1260093226u, 3283471960u, 0, NEXTAFTERF_TOLERANCE, 0},
+{887, 3311210827u, 1192192264u, 3311210826u, 0, NEXTAFTERF_TOLERANCE, 0},
+{888, 1198307901u, 1116328249u, 1198307900u, 0, NEXTAFTERF_TOLERANCE, 0},
+{889, 1288901567u, 1296370667u, 1288901568u, 0, NEXTAFTERF_TOLERANCE, 0},
+{890, 922255363u, 958305289u, 922255364u, 0, NEXTAFTERF_TOLERANCE, 0},
+{891, 1113104661u, 944376032u, 1113104660u, 0, NEXTAFTERF_TOLERANCE, 0},
+{892, 948856035u, 1015466475u, 948856036u, 0, NEXTAFTERF_TOLERANCE, 0},
+{893, 1062512367u, 3229559531u, 1062512366u, 0, NEXTAFTERF_TOLERANCE, 0},
+{894, 1162027071u, 3308983387u, 1162027070u, 0, NEXTAFTERF_TOLERANCE, 0},
+{895, 1034561811u, 1054043114u, 1034561812u, 0, NEXTAFTERF_TOLERANCE, 0},
+{896, 3271615417u, 3209997200u, 3271615416u, 0, NEXTAFTERF_TOLERANCE, 0},
+{897, 1042014529u, 1146708584u, 1042014530u, 0, NEXTAFTERF_TOLERANCE, 0},
+{898, 1177157787u, 3090208179u, 1177157786u, 0, NEXTAFTERF_TOLERANCE, 0},
+{899, 3196144817u, 1056118717u, 3196144816u, 0, NEXTAFTERF_TOLERANCE, 0},
+{900, 1309658335u, 1010219988u, 1309658334u, 0, NEXTAFTERF_TOLERANCE, 0},
+{901, 3100289712u, 3456334210u, 3100289713u, 0, NEXTAFTERF_TOLERANCE, 0},
+{902, 3375507013u, 1306310823u, 3375507012u, 0, NEXTAFTERF_TOLERANCE, 0},
+{903, 3460699001u, 3096700943u, 3460699000u, 0, NEXTAFTERF_TOLERANCE, 0},
+{904, 3079231719u, 1044386263u, 3079231718u, 0, NEXTAFTERF_TOLERANCE, 0},
+{905, 3093951884u, 1014115231u, 3093951883u, 0, NEXTAFTERF_TOLERANCE, 0},
+{906, 3468023178u, 1209565017u, 3468023177u, 0, NEXTAFTERF_TOLERANCE, 0},
+{907, 1204196034u, 3298625731u, 1204196033u, 0, NEXTAFTERF_TOLERANCE, 0},
+{908, 909696559u, 1163075690u, 909696560u, 0, NEXTAFTERF_TOLERANCE, 0},
+{909, 1161439847u, 943449277u, 1161439846u, 0, NEXTAFTERF_TOLERANCE, 0},
+{910, 908663107u, 939489763u, 908663108u, 0, NEXTAFTERF_TOLERANCE, 0},
+{911, 1055319316u, 3261813492u, 1055319315u, 0, NEXTAFTERF_TOLERANCE, 0},
+{912, 1084378658u, 1009650785u, 1084378657u, 0, NEXTAFTERF_TOLERANCE, 0},
+{913, 3053887750u, 3341786453u, 3053887751u, 0, NEXTAFTERF_TOLERANCE, 0},
+{914, 3022828828u, 881335251u, 3022828827u, 0, NEXTAFTERF_TOLERANCE, 0},
+{915, 1123114742u, 1229815537u, 1123114743u, 0, NEXTAFTERF_TOLERANCE, 0},
+{916, 1258114435u, 1291336083u, 1258114436u, 0, NEXTAFTERF_TOLERANCE, 0},
+{917, 3468040845u, 3066966245u, 3468040844u, 0, NEXTAFTERF_TOLERANCE, 0},
+{918, 1178825761u, 1113195286u, 1178825760u, 0, NEXTAFTERF_TOLERANCE, 0},
+{919, 3059266302u, 878503862u, 3059266301u, 0, NEXTAFTERF_TOLERANCE, 0},
+{920, 3223384012u, 1130486973u, 3223384011u, 0, NEXTAFTERF_TOLERANCE, 0},
+{921, 1019964626u, 1235133609u, 1019964627u, 0, NEXTAFTERF_TOLERANCE, 0},
+{922, 3445262427u, 3465211174u, 3445262428u, 0, NEXTAFTERF_TOLERANCE, 0},
+{923, 1125653081u, 1207799746u, 1125653082u, 0, NEXTAFTERF_TOLERANCE, 0},
+{924, 3337652712u, 3025581813u, 3337652711u, 0, NEXTAFTERF_TOLERANCE, 0},
+{925, 1184753508u, 3147374485u, 1184753507u, 0, NEXTAFTERF_TOLERANCE, 0},
+{926, 996404791u, 3353251979u, 996404790u, 0, NEXTAFTERF_TOLERANCE, 0},
+{927, 1188439315u, 1113484271u, 1188439314u, 0, NEXTAFTERF_TOLERANCE, 0},
+{928, 916831283u, 999465787u, 916831284u, 0, NEXTAFTERF_TOLERANCE, 0},
+{929, 996786317u, 3179221951u, 996786316u, 0, NEXTAFTERF_TOLERANCE, 0},
+{930, 3461635065u, 1004690387u, 3461635064u, 0, NEXTAFTERF_TOLERANCE, 0},
+{931, 1188167943u, 1200744896u, 1188167944u, 0, NEXTAFTERF_TOLERANCE, 0},
+{932, 3036502395u, 1172597364u, 3036502394u, 0, NEXTAFTERF_TOLERANCE, 0},
+{933, 891257783u, 1267560050u, 891257784u, 0, NEXTAFTERF_TOLERANCE, 0},
+{934, 1102061604u, 3424449935u, 1102061603u, 0, NEXTAFTERF_TOLERANCE, 0},
+{935, 1282351521u, 3039376424u, 1282351520u, 0, NEXTAFTERF_TOLERANCE, 0},
+{936, 3458861065u, 3392466405u, 3458861064u, 0, NEXTAFTERF_TOLERANCE, 0},
+{937, 3095256878u, 1023623326u, 3095256877u, 0, NEXTAFTERF_TOLERANCE, 0},
+{938, 3422194733u, 893873945u, 3422194732u, 0, NEXTAFTERF_TOLERANCE, 0},
+{939, 3083885296u, 974543672u, 3083885295u, 0, NEXTAFTERF_TOLERANCE, 0},
+{940, 1261940623u, 3402349985u, 1261940622u, 0, NEXTAFTERF_TOLERANCE, 0},
+{941, 3400603081u, 3234396843u, 3400603080u, 0, NEXTAFTERF_TOLERANCE, 0},
+{942, 3139250800u, 3079109479u, 3139250799u, 0, NEXTAFTERF_TOLERANCE, 0},
+{943, 886201503u, 3272760705u, 886201502u, 0, NEXTAFTERF_TOLERANCE, 0},
+{944, 3297366026u, 1089966380u, 3297366025u, 0, NEXTAFTERF_TOLERANCE, 0},
+{945, 1218488455u, 3309646450u, 1218488454u, 0, NEXTAFTERF_TOLERANCE, 0},
+{946, 3040358923u, 3093401553u, 3040358924u, 0, NEXTAFTERF_TOLERANCE, 0},
+{947, 1283938137u, 1196383822u, 1283938136u, 0, NEXTAFTERF_TOLERANCE, 0},
+{948, 3182551696u, 3029982441u, 3182551695u, 0, NEXTAFTERF_TOLERANCE, 0},
+{949, 1317098613u, 949986176u, 1317098612u, 0, NEXTAFTERF_TOLERANCE, 0},
+{950, 3116209179u, 3303588342u, 3116209180u, 0, NEXTAFTERF_TOLERANCE, 0},
+{951, 3239728775u, 927815421u, 3239728774u, 0, NEXTAFTERF_TOLERANCE, 0},
+{952, 3207141672u, 933456504u, 3207141671u, 0, NEXTAFTERF_TOLERANCE, 0},
+{953, 3154378805u, 905462392u, 3154378804u, 0, NEXTAFTERF_TOLERANCE, 0},
+{954, 3069658155u, 1041452042u, 3069658154u, 0, NEXTAFTERF_TOLERANCE, 0},
+{955, 3207056527u, 3384206601u, 3207056528u, 0, NEXTAFTERF_TOLERANCE, 0},
+{956, 1284174954u, 3436881197u, 1284174953u, 0, NEXTAFTERF_TOLERANCE, 0},
+{957, 3156081645u, 3308839704u, 3156081646u, 0, NEXTAFTERF_TOLERANCE, 0},
+{958, 1063693032u, 976661408u, 1063693031u, 0, NEXTAFTERF_TOLERANCE, 0},
+{959, 3036026175u, 1251203998u, 3036026174u, 0, NEXTAFTERF_TOLERANCE, 0},
+{960, 1102631663u, 3396951425u, 1102631662u, 0, NEXTAFTERF_TOLERANCE, 0},
+{961, 968803479u, 992989712u, 968803480u, 0, NEXTAFTERF_TOLERANCE, 0},
+{962, 3273080388u, 3109405906u, 3273080387u, 0, NEXTAFTERF_TOLERANCE, 0},
+{963, 1172529774u, 3294550127u, 1172529773u, 0, NEXTAFTERF_TOLERANCE, 0},
+{964, 1306695905u, 1292690378u, 1306695904u, 0, NEXTAFTERF_TOLERANCE, 0},
+{965, 1003649752u, 1218792138u, 1003649753u, 0, NEXTAFTERF_TOLERANCE, 0},
+{966, 1078478376u, 1326246424u, 1078478377u, 0, NEXTAFTERF_TOLERANCE, 0},
+{967, 3158855023u, 3151283866u, 3158855022u, 0, NEXTAFTERF_TOLERANCE, 0},
+{968, 1165177679u, 3276237026u, 1165177678u, 0, NEXTAFTERF_TOLERANCE, 0},
+{969, 3403009513u, 3381966453u, 3403009512u, 0, NEXTAFTERF_TOLERANCE, 0},
+{970, 952348506u, 3377573987u, 952348505u, 0, NEXTAFTERF_TOLERANCE, 0},
+{971, 1222777442u, 1125769920u, 1222777441u, 0, NEXTAFTERF_TOLERANCE, 0},
+{972, 1325324763u, 978336043u, 1325324762u, 0, NEXTAFTERF_TOLERANCE, 0},
+{973, 3363524213u, 3202991311u, 3363524212u, 0, NEXTAFTERF_TOLERANCE, 0},
+{974, 1158950321u, 1073578913u, 1158950320u, 0, NEXTAFTERF_TOLERANCE, 0},
+{975, 903129873u, 3416864271u, 903129872u, 0, NEXTAFTERF_TOLERANCE, 0},
+{976, 3078339944u, 988173985u, 3078339943u, 0, NEXTAFTERF_TOLERANCE, 0},
+{977, 1208345407u, 1254181270u, 1208345408u, 0, NEXTAFTERF_TOLERANCE, 0},
+{978, 1258634105u, 1247426200u, 1258634104u, 0, NEXTAFTERF_TOLERANCE, 0},
+{979, 1248478509u, 1287895126u, 1248478510u, 0, NEXTAFTERF_TOLERANCE, 0},
+{980, 1153863988u, 3430539165u, 1153863987u, 0, NEXTAFTERF_TOLERANCE, 0},
+{981, 1097120930u, 3221726305u, 1097120929u, 0, NEXTAFTERF_TOLERANCE, 0},
+{982, 3469778622u, 1200179013u, 3469778621u, 0, NEXTAFTERF_TOLERANCE, 0},
+{983, 1147712200u, 931865525u, 1147712199u, 0, NEXTAFTERF_TOLERANCE, 0},
+{984, 1124721745u, 3058969650u, 1124721744u, 0, NEXTAFTERF_TOLERANCE, 0},
+{985, 3261744304u, 1043806501u, 3261744303u, 0, NEXTAFTERF_TOLERANCE, 0},
+{986, 1064922416u, 1320485628u, 1064922417u, 0, NEXTAFTERF_TOLERANCE, 0},
+{987, 3303160152u, 3075455322u, 3303160151u, 0, NEXTAFTERF_TOLERANCE, 0},
+{988, 1315090496u, 3269683237u, 1315090495u, 0, NEXTAFTERF_TOLERANCE, 0},
+{989, 3230403187u, 1322841992u, 3230403186u, 0, NEXTAFTERF_TOLERANCE, 0},
+{990, 1335399673u, 974138676u, 1335399672u, 0, NEXTAFTERF_TOLERANCE, 0},
+{991, 1072458508u, 3372833993u, 1072458507u, 0, NEXTAFTERF_TOLERANCE, 0},
+{992, 3252139741u, 1059615003u, 3252139740u, 0, NEXTAFTERF_TOLERANCE, 0},
+{993, 3468519966u, 3113982619u, 3468519965u, 0, NEXTAFTERF_TOLERANCE, 0},
+{994, 1006231203u, 897530770u, 1006231202u, 0, NEXTAFTERF_TOLERANCE, 0},
+{995, 951554138u, 1001144381u, 951554139u, 0, NEXTAFTERF_TOLERANCE, 0},
+{996, 942046828u, 986341002u, 942046829u, 0, NEXTAFTERF_TOLERANCE, 0},
+{997, 3319723279u, 3414482416u, 3319723280u, 0, NEXTAFTERF_TOLERANCE, 0},
+{998, 3255104167u, 928827688u, 3255104166u, 0, NEXTAFTERF_TOLERANCE, 0},
+{999, 1155477903u, 3104812800u, 1155477902u, 0, NEXTAFTERF_TOLERANCE, 0},
+{1000, 3273889176u, 980486479u, 3273889175u, 0, NEXTAFTERF_TOLERANCE, 0},
+{1001, 3237813668u, 3441016803u, 3237813669u, 0, NEXTAFTERF_TOLERANCE, 0},
+{1002, 975349337u, 1311932596u, 975349338u, 0, NEXTAFTERF_TOLERANCE, 0},
+{1003, 981908840u, 3314038398u, 981908839u, 0, NEXTAFTERF_TOLERANCE, 0},
+{1004, 941187647u, 1107765599u, 941187648u, 0, NEXTAFTERF_TOLERANCE, 0},
+{1005, 1214223128u, 3225536822u, 1214223127u, 0, NEXTAFTERF_TOLERANCE, 0},
+{1006, 3422922584u, 1086391131u, 3422922583u, 0, NEXTAFTERF_TOLERANCE, 0},
+{1007, 1315857601u, 3487600045u, 1315857600u, 0, NEXTAFTERF_TOLERANCE, 0},
+{1008, 3453226030u, 3233768835u, 3453226029u, 0, NEXTAFTERF_TOLERANCE, 0},
+{1009, 1078359574u, 3199175230u, 1078359573u, 0, NEXTAFTERF_TOLERANCE, 0},
+{1010, 1029557624u, 3302959071u, 1029557623u, 0, NEXTAFTERF_TOLERANCE, 0},
+{1011, 1207675424u, 3042692550u, 1207675423u, 0, NEXTAFTERF_TOLERANCE, 0},
+{1012, 1028355074u, 3442294040u, 1028355073u, 0, NEXTAFTERF_TOLERANCE, 0},
+{1013, 3119299090u, 1187096397u, 3119299089u, 0, NEXTAFTERF_TOLERANCE, 0},
+{1014, 1248421894u, 3367769132u, 1248421893u, 0, NEXTAFTERF_TOLERANCE, 0},
+{1015, 3353251994u, 1095517730u, 3353251993u, 0, NEXTAFTERF_TOLERANCE, 0},
+{1016, 876926659u, 3288089977u, 876926658u, 0, NEXTAFTERF_TOLERANCE, 0},
+{1017, 1076752219u, 876236939u, 1076752218u, 0, NEXTAFTERF_TOLERANCE, 0},
+{1018, 1273395082u, 3031189261u, 1273395081u, 0, NEXTAFTERF_TOLERANCE, 0},
+{1019, 3385588183u, 3258252464u, 3385588182u, 0, NEXTAFTERF_TOLERANCE, 0},
+{1020, 3192315328u, 3289489214u, 3192315329u, 0, NEXTAFTERF_TOLERANCE, 0},
+{1021, 3441804648u, 3274638356u, 3441804647u, 0, NEXTAFTERF_TOLERANCE, 0},
+{1022, 3392827417u, 1277961150u, 3392827416u, 0, NEXTAFTERF_TOLERANCE, 0},
+{1023, 1161241793u, 1328003707u, 1161241794u, 0, NEXTAFTERF_TOLERANCE, 0},
+{1024, 3034494183u, 3041579130u, 3034494184u, 0, NEXTAFTERF_TOLERANCE, 0},
+{1025, 1171318485u, 3374409104u, 1171318484u, 0, NEXTAFTERF_TOLERANCE, 0},
+{1026, 1001216371u, 3052357038u, 1001216370u, 0, NEXTAFTERF_TOLERANCE, 0},
+{1027, 912515889u, 1074635609u, 912515890u, 0, NEXTAFTERF_TOLERANCE, 0},
+{1028, 3391452505u, 897989232u, 3391452504u, 0, NEXTAFTERF_TOLERANCE, 0},
+{1029, 3249603369u, 3147662248u, 3249603368u, 0, NEXTAFTERF_TOLERANCE, 0},
+{1030, 3169816394u, 988430929u, 3169816393u, 0, NEXTAFTERF_TOLERANCE, 0},
+{1031, 3282212423u, 3174079140u, 3282212422u, 0, NEXTAFTERF_TOLERANCE, 0},
+{1032, 3352293320u, 3247843425u, 3352293319u, 0, NEXTAFTERF_TOLERANCE, 0},
+{1033, 3296358441u, 875645354u, 3296358440u, 0, NEXTAFTERF_TOLERANCE, 0},
+{1034, 1197828352u, 3245614728u, 1197828351u, 0, NEXTAFTERF_TOLERANCE, 0},
+{1035, 3340510371u, 914930263u, 3340510370u, 0, NEXTAFTERF_TOLERANCE, 0},
+{1036, 1127109339u, 3368125489u, 1127109338u, 0, NEXTAFTERF_TOLERANCE, 0},
+{1037, 909467381u, 1232375752u, 909467382u, 0, NEXTAFTERF_TOLERANCE, 0},
+{1038, 3192887808u, 3191848339u, 3192887807u, 0, NEXTAFTERF_TOLERANCE, 0},
+{1039, 3237183876u, 3179379969u, 3237183875u, 0, NEXTAFTERF_TOLERANCE, 0},
+{1040, 939285924u, 3056079386u, 939285923u, 0, NEXTAFTERF_TOLERANCE, 0},
+{1041, 944050180u, 3452557879u, 944050179u, 0, NEXTAFTERF_TOLERANCE, 0},
+{1042, 3058135703u, 3090284601u, 3058135704u, 0, NEXTAFTERF_TOLERANCE, 0},
+{1043, 3480592662u, 3261728191u, 3480592661u, 0, NEXTAFTERF_TOLERANCE, 0},
+{1044, 3061939312u, 3274418540u, 3061939313u, 0, NEXTAFTERF_TOLERANCE, 0},
+{1045, 1155775526u, 1255814444u, 1155775527u, 0, NEXTAFTERF_TOLERANCE, 0},
+{1046, 1234491880u, 3408568717u, 1234491879u, 0, NEXTAFTERF_TOLERANCE, 0}
+
+// AUTOMATICALLY GENERATED VECTORS STOP
+
+};
+
+#endif // CYGONCE_LIBM_NEXTAFTERF_H multiple inclusion protection
+
+// EOF nextafterf.h
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/pow.c b/ecos/packages/language/c/libm/current/tests/vectors/pow.c
new file mode 100644
index 0000000..da14aba
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/pow.c
@@ -0,0 +1,114 @@
+//===========================================================================
+//
+// pow.c
+//
+// Test of pow() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// Declarations for test system:
+//
+// TESTCASE_TYPE=CYG_TEST_MODULE
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include <cyg/infra/testcase.h> // Test infrastructure
+#include <math.h> // Header for this package
+#include <sys/ieeefp.h> // Cyg_libm_ieee_double_shape_type
+#include "vectors/vector_support.h"// extra support for math tests
+
+#include "vectors/pow.h"
+
+// FUNCTIONS
+
+static void
+test( CYG_ADDRWORD data )
+{
+ cyg_ucount32 vec_size;
+ cyg_bool ret;
+
+ vec_size = sizeof(pow_vec) / sizeof(Cyg_libm_test_double_vec_t);
+ ret = doTestVec( (CYG_ADDRWORD) &pow, CYG_LIBM_TEST_VEC_DOUBLE,
+ CYG_LIBM_TEST_VEC_DOUBLE,
+ CYG_LIBM_TEST_VEC_DOUBLE,
+ &pow_vec[0], vec_size );
+
+ if (ret==true) {
+ CYG_TEST_PASS("pow() is stable");
+ } // if
+ else {
+ CYG_TEST_FAIL("pow() failed tests");
+ } // else
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for Math "
+ "library pow() function");
+} // test()
+
+
+int
+main(int argc, char *argv[])
+{
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for Math library "
+ "pow() function");
+
+ START_TEST( test );
+
+ CYG_TEST_PASS_FINISH("Testing is not applicable to this configuration");
+
+} // main()
+
+
+// EOF pow.c
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/pow.h b/ecos/packages/language/c/libm/current/tests/vectors/pow.h
new file mode 100644
index 0000000..bdc11ba
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/pow.h
@@ -0,0 +1,1079 @@
+#ifndef CYGONCE_LIBM_POW_H
+#define CYGONCE_LIBM_POW_H
+//===========================================================================
+//
+// pow.h
+//
+// Test vectors for testing of pow() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage: #include "vectors/pow.h"
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include "vectors/vector_support.h"// extra support for math tests
+
+#define POW_TOLERANCE 2.0E-04
+
+static const Cyg_libm_test_double_vec_t pow_vec[] = {
+
+// AUTOMATICALLY GENERATED VECTORS START
+
+{ 1, 1077999148u, 2506787616u, 1090024059u, 3619148316u, 2146435072u, 0u, 34, POW_TOLERANCE, 0},
+{ 2, 3218153654u, 3176730980u, 1051524793u, 2993920299u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 3, 3239659803u, 2725707538u, 3232101343u, 2346810316u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 4, 1092554362u, 2088062470u, 3201242716u, 420891118u, 1072693145u, 3786322490u, 0, POW_TOLERANCE, 0},
+{ 5, 3221200677u, 2636405208u, 1100049309u, 471635570u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 6, 1089363191u, 1746012320u, 1054478713u, 3333988501u, 1072693319u, 4023770303u, 0, POW_TOLERANCE, 0},
+{ 7, 1047953160u, 183014794u, 3202039382u, 2016785810u, 1072693358u, 4241580334u, 0, POW_TOLERANCE, 0},
+{ 8, 3213486034u, 2688957927u, 1046089230u, 2709029994u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 9, 1058795730u, 624574473u, 1045840574u, 3473266330u, 1072693247u, 2586970110u, 0, POW_TOLERANCE, 0},
+{ 10, 3204919842u, 1605286142u, 1068931671u, 4233776869u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 11, 1060343410u, 1857607719u, 3222889559u, 3417070006u, 1150564421u, 1162045912u, 0, POW_TOLERANCE, 0},
+{ 12, 1103599987u, 3981151660u, 1088899021u, 1332651746u, 2146435072u, 0u, 34, POW_TOLERANCE, 0},
+{ 13, 1085298022u, 3824988054u, 1066856791u, 2070129652u, 1072908638u, 3920397298u, 0, POW_TOLERANCE, 0},
+{ 14, 3207559790u, 1372884064u, 1080833116u, 3229926662u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 15, 1093826501u, 3217805330u, 3191644264u, 2014578707u, 1072693247u, 3454103437u, 0, POW_TOLERANCE, 0},
+{ 16, 1102287487u, 265058758u, 3239903247u, 1630600647u, 0u, 0u, 0, POW_TOLERANCE, 0},
+{ 17, 1071124229u, 1946677669u, 3198462609u, 926009897u, 1072693248u, 2713833020u, 0, POW_TOLERANCE, 0},
+{ 18, 1072130299u, 2271884183u, 3203741999u, 2118617783u, 1072693254u, 2722102995u, 0, POW_TOLERANCE, 0},
+{ 19, 3194849109u, 213658772u, 3249401130u, 314151656u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 20, 3254112288u, 1564829925u, 3197817016u, 497230814u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 21, 3216262634u, 2075329122u, 3231746400u, 169900577u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 22, 1049848642u, 541549344u, 1096608669u, 3119070100u, 0u, 0u, 0, POW_TOLERANCE, 0},
+{ 23, 1085427055u, 567496114u, 1045286891u, 1969998540u, 1072693248u, 528438245u, 0, POW_TOLERANCE, 0},
+{ 24, 1060548195u, 1299369769u, 1049342524u, 4167404066u, 1072693244u, 2368530347u, 0, POW_TOLERANCE, 0},
+{ 25, 3208865645u, 3348930841u, 1078472138u, 358457347u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 26, 1071069297u, 2192461366u, 1099527247u, 3184735642u, 0u, 0u, 0, POW_TOLERANCE, 0},
+{ 27, 1052861772u, 331696577u, 3189610016u, 793242270u, 1072693248u, 101495031u, 0, POW_TOLERANCE, 0},
+{ 28, 3252528934u, 2322696981u, 1083791358u, 3020766674u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 29, 1044902177u, 252085215u, 3214426435u, 4139068910u, 1073262651u, 1446941025u, 0, POW_TOLERANCE, 0},
+{ 30, 3222505725u, 105589263u, 1056316170u, 261630827u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 31, 1107213408u, 428765703u, 3251828686u, 2009972239u, 0u, 0u, 0, POW_TOLERANCE, 0},
+{ 32, 1098568019u, 3517376586u, 3240257920u, 3304487302u, 0u, 0u, 0, POW_TOLERANCE, 0},
+{ 33, 3233537912u, 237004814u, 3237899261u, 3364008659u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 34, 3195247552u, 472004928u, 3226869477u, 1186387580u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 35, 1054226850u, 4085763910u, 1106394906u, 2684738273u, 0u, 0u, 0, POW_TOLERANCE, 0},
+{ 36, 1057053639u, 2055490142u, 3231581370u, 3879040079u, 2146435072u, 0u, 34, POW_TOLERANCE, 0},
+{ 37, 3188976647u, 3725731239u, 1061652681u, 591292963u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 38, 3225014981u, 1147041027u, 3215417793u, 624695933u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 39, 3206052774u, 705725219u, 3238067573u, 1116238321u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 40, 3207367088u, 7287411u, 1045917232u, 116067742u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 41, 3240055222u, 3604989074u, 1066381836u, 545298780u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 42, 3219080936u, 1681476121u, 1060345752u, 3553822398u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 43, 1102831658u, 3410480388u, 1052460275u, 1660607230u, 1072693282u, 105881969u, 0, POW_TOLERANCE, 0},
+{ 44, 1089216869u, 1494984673u, 3196647153u, 287894723u, 1072693243u, 3110586331u, 0, POW_TOLERANCE, 0},
+{ 45, 1054885127u, 644548665u, 1081948134u, 2442134629u, 0u, 0u, 0, POW_TOLERANCE, 0},
+{ 46, 1087554095u, 2312530895u, 3221584595u, 3379665576u, 1032568590u, 3663273235u, 0, POW_TOLERANCE, 0},
+{ 47, 1096085375u, 3018463866u, 1086226574u, 404012923u, 2146435072u, 0u, 34, POW_TOLERANCE, 0},
+{ 48, 1064733299u, 1710279345u, 3251401196u, 3528946000u, 2146435072u, 0u, 34, POW_TOLERANCE, 0},
+{ 49, 1061536351u, 2164450219u, 1083520023u, 3312018966u, 0u, 0u, 0, POW_TOLERANCE, 0},
+{ 50, 1057248676u, 2648986431u, 1050330591u, 1474376550u, 1072693239u, 2154876465u, 0, POW_TOLERANCE, 0},
+{ 51, 3194422028u, 1839068700u, 1077406406u, 3013052171u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 52, 1046493630u, 772102380u, 3220729740u, 4219039958u, 1112654033u, 3065397925u, 0, POW_TOLERANCE, 0},
+{ 53, 3229472221u, 3058618779u, 1046304788u, 3338676024u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 54, 1051172137u, 506286854u, 1094907481u, 2217000199u, 0u, 0u, 0, POW_TOLERANCE, 0},
+{ 55, 1082428310u, 1147428263u, 1065432625u, 3034786717u, 1072752013u, 2853960467u, 0, POW_TOLERANCE, 0},
+{ 56, 1082016752u, 2844125311u, 1082985198u, 2561492677u, 2146435072u, 0u, 34, POW_TOLERANCE, 0},
+{ 57, 3211536916u, 704542600u, 3222902057u, 2762779203u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 58, 3199680614u, 184131949u, 3249723525u, 1667366082u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 59, 3223609598u, 3904224140u, 1067056698u, 2942159914u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 60, 1100636863u, 426114282u, 3209056785u, 1083606355u, 1072666955u, 585952463u, 0, POW_TOLERANCE, 0},
+{ 61, 1106165945u, 3774123863u, 1106787580u, 2722107965u, 2146435072u, 0u, 34, POW_TOLERANCE, 0},
+{ 62, 1088005092u, 1377734762u, 1104232051u, 2377063483u, 2146435072u, 0u, 34, POW_TOLERANCE, 0},
+{ 63, 1069380559u, 1029739074u, 1105467109u, 3062201018u, 0u, 0u, 0, POW_TOLERANCE, 0},
+{ 64, 3234741597u, 773857656u, 3214251949u, 335833884u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 65, 3203224610u, 1473865960u, 1103073830u, 4000427507u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 66, 1103185231u, 4242092620u, 1067009473u, 14539161u, 1073370007u, 2844524197u, 0, POW_TOLERANCE, 0},
+{ 67, 3192516074u, 1732245037u, 1101371955u, 1533536108u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 68, 3249153995u, 1833841275u, 1099430098u, 4144145552u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 69, 3244270463u, 935007012u, 3188865420u, 604442938u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 70, 3206903253u, 2211464602u, 1046255144u, 1635910526u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 71, 1077871417u, 2549219008u, 3231633258u, 3733639385u, 0u, 0u, 0, POW_TOLERANCE, 0},
+{ 72, 1082095089u, 1819374372u, 3202219056u, 2617077637u, 1072693154u, 3128651096u, 0, POW_TOLERANCE, 0},
+{ 73, 1094345280u, 546465680u, 1048653554u, 532401530u, 1072693249u, 3986499474u, 0, POW_TOLERANCE, 0},
+{ 74, 1044571091u, 2759019783u, 3221570188u, 3554409630u, 1147229759u, 3625827792u, 0, POW_TOLERANCE, 0},
+{ 75, 3212931282u, 2527221960u, 1099107978u, 2696971136u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 76, 1097158000u, 173134582u, 1087299442u, 2877794600u, 2146435072u, 0u, 34, POW_TOLERANCE, 0},
+{ 77, 1086400474u, 547642046u, 3197285510u, 3521286127u, 1072693242u, 2972243163u, 0, POW_TOLERANCE, 0},
+{ 78, 1074860702u, 1231582831u, 1090971734u, 1653446832u, 2146435072u, 0u, 34, POW_TOLERANCE, 0},
+{ 79, 1061342535u, 3762182190u, 3252967851u, 2615360375u, 2146435072u, 0u, 34, POW_TOLERANCE, 0},
+{ 80, 3200834423u, 2588067350u, 3206610957u, 3551059728u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 81, 3206978856u, 845263327u, 1073415902u, 1749010288u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 82, 3205576370u, 3092685191u, 3190678390u, 2872219490u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 83, 3218315055u, 4107255722u, 3205337291u, 3069068345u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 84, 3243990857u, 2294867524u, 3216653996u, 2860384670u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 85, 3193326350u, 2265437201u, 3240198679u, 1234948614u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 86, 3216359929u, 1186945904u, 3251167793u, 1896750851u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 87, 1081575478u, 3686084548u, 1079286273u, 3309277689u, 1812026121u, 3205070032u, 0, POW_TOLERANCE, 0},
+{ 88, 3223476240u, 3006860614u, 3231412671u, 2504194724u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 89, 3236149260u, 1948717780u, 1048317852u, 3791803982u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 90, 1064345015u, 4272034420u, 3192982124u, 1526175922u, 1072693248u, 393635233u, 0, POW_TOLERANCE, 0},
+{ 91, 3245817826u, 4108948538u, 1104691287u, 640541190u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 92, 3207257417u, 3259274853u, 1082507103u, 3677038020u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 93, 1083132498u, 3781708548u, 1096584871u, 1207386447u, 2146435072u, 0u, 34, POW_TOLERANCE, 0},
+{ 94, 3188695272u, 3011191657u, 1103798670u, 1096124830u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 95, 1063235023u, 2540404725u, 3240157452u, 4122845725u, 2146435072u, 0u, 34, POW_TOLERANCE, 0},
+{ 96, 1083643710u, 311336721u, 3214382367u, 4212533768u, 1072368791u, 3331967454u, 0, POW_TOLERANCE, 0},
+{ 97, 1051139427u, 1769686293u, 3240200923u, 3538602249u, 2146435072u, 0u, 34, POW_TOLERANCE, 0},
+{ 98, 1078227549u, 508056696u, 1103793878u, 776520138u, 2146435072u, 0u, 34, POW_TOLERANCE, 0},
+{ 99, 1102910577u, 4064962760u, 1077424413u, 819766631u, 1804775405u, 367049631u, 0, POW_TOLERANCE, 0},
+{ 100, 1074178362u, 2112385259u, 3227593179u, 1187058516u, 856345317u, 2349026083u, 0, POW_TOLERANCE, 0},
+{ 101, 1082295059u, 2514398118u, 1076579751u, 870169764u, 1204464550u, 3895468816u, 0, POW_TOLERANCE, 0},
+{ 102, 3246851392u, 1190259653u, 1069112254u, 3417249840u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 103, 3193663083u, 3467757357u, 3215075200u, 2168175352u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 104, 3239643135u, 1508888184u, 1060430241u, 3524949092u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 105, 3197412883u, 166402802u, 3237198975u, 3572369260u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 106, 1081866822u, 2441536203u, 3202753937u, 3658194573u, 1072693112u, 3524791428u, 0, POW_TOLERANCE, 0},
+{ 107, 1062392908u, 2479742828u, 1062342831u, 4214154303u, 1072677654u, 3530973200u, 0, POW_TOLERANCE, 0},
+{ 108, 1082396794u, 426896765u, 1066474375u, 2201754442u, 1072812838u, 3811918015u, 0, POW_TOLERANCE, 0},
+{ 109, 3195629021u, 2055773734u, 3239267288u, 291396537u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 110, 3236968033u, 874125203u, 3210508124u, 4091098764u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 111, 1065716026u, 120488169u, 3241241441u, 1985269424u, 2146435072u, 0u, 34, POW_TOLERANCE, 0},
+{ 112, 3206539410u, 2243036871u, 3243941101u, 740033495u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 113, 3209424906u, 1176656356u, 1074261978u, 3588756231u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 114, 3252816791u, 3037249392u, 1061635587u, 1173102190u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 115, 3237209581u, 2882725208u, 1071440059u, 69225090u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 116, 3212663474u, 272319256u, 1072073912u, 2493997123u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 117, 1057720186u, 188610379u, 3232757923u, 2209647371u, 2146435072u, 0u, 34, POW_TOLERANCE, 0},
+{ 118, 3236758517u, 1990439193u, 1078073146u, 622849962u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 119, 1057135741u, 756052458u, 1081649113u, 2247475162u, 0u, 0u, 0, POW_TOLERANCE, 0},
+{ 120, 1061623064u, 3878055211u, 3222407050u, 2979438623u, 1122130466u, 549133024u, 0, POW_TOLERANCE, 0},
+{ 121, 3195290997u, 2676398686u, 1105124431u, 3631096636u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 122, 1065079390u, 1697791764u, 3198136112u, 2299842819u, 1072693250u, 2024455320u, 0, POW_TOLERANCE, 0},
+{ 123, 1078084768u, 1931502677u, 3215264397u, 3016456382u, 1072404968u, 3524704578u, 0, POW_TOLERANCE, 0},
+{ 124, 1072253426u, 343404215u, 1061072607u, 4266232536u, 1072693016u, 3909377404u, 0, POW_TOLERANCE, 0},
+{ 125, 3241230836u, 4140316002u, 1082896196u, 868256971u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 126, 1075422810u, 1864139509u, 3187675097u, 3084482407u, 1072693247u, 4287143103u, 0, POW_TOLERANCE, 0},
+{ 127, 3220191323u, 2427162817u, 3234748208u, 2715105792u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 128, 1064600512u, 3943389284u, 1046724025u, 3626825684u, 1072693247u, 2540719625u, 0, POW_TOLERANCE, 0},
+{ 129, 1045423002u, 967350972u, 1093012318u, 448002663u, 0u, 0u, 0, POW_TOLERANCE, 0},
+{ 130, 3251845859u, 105058217u, 1069733884u, 171786224u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 131, 3189614508u, 2863482262u, 3204997271u, 877784425u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 132, 3202629313u, 2801782962u, 3213604117u, 762347195u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 133, 3233486727u, 2317950339u, 3246333414u, 2135700283u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 134, 1056516397u, 4171919805u, 1082858682u, 2180920863u, 0u, 0u, 0, POW_TOLERANCE, 0},
+{ 135, 3220149084u, 1918836931u, 1083603224u, 3137821660u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 136, 1103902874u, 3456203663u, 3235600523u, 2335688936u, 0u, 0u, 0, POW_TOLERANCE, 0},
+{ 137, 1042279322u, 4170235262u, 1051824459u, 521583737u, 1072693203u, 3666743287u, 0, POW_TOLERANCE, 0},
+{ 138, 1081348303u, 1296623194u, 3250673860u, 2442872540u, 0u, 0u, 0, POW_TOLERANCE, 0},
+{ 139, 1061684277u, 289979405u, 1049514449u, 3865737145u, 1072693244u, 2492356786u, 0, POW_TOLERANCE, 0},
+{ 140, 1075298944u, 3699090239u, 1054539840u, 3259249360u, 1072693260u, 115890741u, 0, POW_TOLERANCE, 0},
+{ 141, 1096418100u, 1619819023u, 1045993352u, 1022642459u, 1072693248u, 1623026018u, 0, POW_TOLERANCE, 0},
+{ 142, 1081433004u, 19455098u, 3229182089u, 2096003654u, 0u, 0u, 0, POW_TOLERANCE, 0},
+{ 143, 1076297936u, 3803689997u, 1071630912u, 2263729518u, 1074457128u, 1055623878u, 0, POW_TOLERANCE, 0},
+{ 144, 1101357261u, 2816837387u, 1063422305u, 2597606398u, 1072739324u, 66323243u, 0, POW_TOLERANCE, 0},
+{ 145, 1069100169u, 3680967506u, 1040201163u, 179224723u, 1072693247u, 4285111407u, 0, POW_TOLERANCE, 0},
+{ 146, 3188629767u, 978126928u, 1101553990u, 4047893399u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 147, 3222322045u, 4059818629u, 1042678728u, 3640293589u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 148, 3248464040u, 3383497159u, 1070002807u, 1527313008u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 149, 3202707679u, 2599946514u, 1104170406u, 2738675352u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 150, 1105232623u, 3616571377u, 1060859316u, 1130603218u, 1072702734u, 1806600566u, 0, POW_TOLERANCE, 0},
+{ 151, 1076028796u, 3859211180u, 1067940450u, 1744531824u, 1072806990u, 2299535735u, 0, POW_TOLERANCE, 0},
+{ 152, 1042831340u, 1958025850u, 3236511256u, 2472176453u, 2146435072u, 0u, 34, POW_TOLERANCE, 0},
+{ 153, 3233107089u, 182132862u, 3250520938u, 3924356991u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 154, 3230501884u, 35632886u, 3209806504u, 1453402523u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 155, 1083522102u, 743225214u, 3202890678u, 142917400u, 1072693073u, 753685957u, 0, POW_TOLERANCE, 0},
+{ 156, 1080684976u, 1472665012u, 3203138231u, 256588219u, 1072693098u, 2396337266u, 0, POW_TOLERANCE, 0},
+{ 157, 1094982162u, 1062927000u, 1061134072u, 931677439u, 1072700754u, 2803085140u, 0, POW_TOLERANCE, 0},
+{ 158, 1058377732u, 2320910576u, 1055663370u, 288059864u, 1072692983u, 1273527884u, 0, POW_TOLERANCE, 0},
+{ 159, 1078958093u, 1448349062u, 3199478070u, 3454027134u, 1072693237u, 2367845751u, 0, POW_TOLERANCE, 0},
+{ 160, 3237458798u, 4215445172u, 3196654963u, 2231888973u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 161, 3246632231u, 40413554u, 3232578253u, 983832844u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 162, 3223721534u, 3995725873u, 1050082319u, 777231627u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 163, 1040986626u, 672789828u, 3253385962u, 2982787335u, 2146435072u, 0u, 34, POW_TOLERANCE, 0},
+{ 164, 1068390875u, 2075971825u, 1070166500u, 4034633931u, 1071792003u, 297563882u, 0, POW_TOLERANCE, 0},
+{ 165, 3210046177u, 1018222907u, 3244621407u, 3090050495u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 166, 1067680885u, 937732557u, 3200798890u, 2557898276u, 1072693257u, 3993377207u, 0, POW_TOLERANCE, 0},
+{ 167, 1078342316u, 130346162u, 3223590310u, 275568693u, 1015054848u, 1104031833u, 0, POW_TOLERANCE, 0},
+{ 168, 1042898869u, 3807416441u, 1075961161u, 3706820266u, 807274535u, 1215766468u, 0, POW_TOLERANCE, 0},
+{ 169, 3216099005u, 1710131411u, 1078123323u, 1900790503u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 170, 3238819361u, 3420420033u, 3210844787u, 588423066u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 171, 1049684114u, 1160162008u, 3246307879u, 4265764460u, 2146435072u, 0u, 34, POW_TOLERANCE, 0},
+{ 172, 1102543434u, 366653268u, 3188814424u, 466059202u, 1072693247u, 4113932245u, 0, POW_TOLERANCE, 0},
+{ 173, 3226627739u, 1325936170u, 3221436876u, 680097612u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 174, 3240391116u, 1827735934u, 3200554324u, 2875599271u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 175, 3191030402u, 3117037091u, 3239246636u, 15838845u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 176, 1051974004u, 749718883u, 3223587064u, 1523766569u, 1279447955u, 3223881881u, 0, POW_TOLERANCE, 0},
+{ 177, 1044833651u, 1966536294u, 3250158026u, 699164258u, 2146435072u, 0u, 34, POW_TOLERANCE, 0},
+{ 178, 1098048435u, 3759049394u, 1106085272u, 1183789499u, 2146435072u, 0u, 34, POW_TOLERANCE, 0},
+{ 179, 1081201623u, 1970107747u, 1095245453u, 2308233883u, 2146435072u, 0u, 34, POW_TOLERANCE, 0},
+{ 180, 1084756444u, 1491017852u, 1041444355u, 1723375725u, 1072693248u, 40388682u, 0, POW_TOLERANCE, 0},
+{ 181, 3216630070u, 1141349287u, 1097465301u, 3403438584u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 182, 3230571908u, 1711085243u, 3250239076u, 1377484108u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 183, 1098385019u, 2880275004u, 1084039594u, 1611394950u, 2146435072u, 0u, 34, POW_TOLERANCE, 0},
+{ 184, 3234221435u, 2626629370u, 1063771493u, 1499080813u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 185, 1055231263u, 3936262414u, 1103919063u, 3175668759u, 0u, 0u, 0, POW_TOLERANCE, 0},
+{ 186, 3207981719u, 1270950554u, 3194616071u, 3680565379u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 187, 3208148223u, 1066985223u, 3221613219u, 4089383168u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 188, 3217058839u, 4017329311u, 3208334452u, 1667591498u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 189, 1088164157u, 3154656624u, 1061894279u, 3886344038u, 1072702228u, 2902378676u, 0, POW_TOLERANCE, 0},
+{ 190, 1050652945u, 977586119u, 3209762784u, 953839852u, 1072709304u, 824909217u, 0, POW_TOLERANCE, 0},
+{ 191, 1104965247u, 143071571u, 3206165386u, 913097445u, 1072688773u, 2327140958u, 0, POW_TOLERANCE, 0},
+{ 192, 3190565456u, 1371169579u, 1057079837u, 2594818628u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 193, 3251793336u, 2259342224u, 3217432469u, 1824221478u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 194, 3246834775u, 1576604497u, 1079368611u, 185078728u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 195, 3221679427u, 444800035u, 3243343143u, 1734989302u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 196, 1072748883u, 130452005u, 1041548088u, 2158433515u, 1072693248u, 281381u, 0, POW_TOLERANCE, 0},
+{ 197, 3234695968u, 1941318385u, 1045807374u, 792193370u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 198, 3238299666u, 1299392207u, 3212131720u, 3205732280u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 199, 1098698804u, 3035093505u, 1052187689u, 3287702190u, 1072693272u, 3770581006u, 0, POW_TOLERANCE, 0},
+{ 200, 3246676260u, 2160225215u, 1102624859u, 836655570u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 201, 1096723626u, 3360816360u, 3246176356u, 172860634u, 0u, 0u, 0, POW_TOLERANCE, 0},
+{ 202, 1070995788u, 146831910u, 1051558014u, 2340722078u, 1072693246u, 168811001u, 0, POW_TOLERANCE, 0},
+{ 203, 3230416351u, 1603798153u, 3207725532u, 1099413093u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 204, 3246678378u, 2429340443u, 3190303581u, 3223770005u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 205, 1075882959u, 955542166u, 3230415151u, 275583938u, 0u, 0u, 0, POW_TOLERANCE, 0},
+{ 206, 1092971882u, 513397822u, 1090646554u, 2089321329u, 2146435072u, 0u, 34, POW_TOLERANCE, 0},
+{ 207, 3193169876u, 2782073372u, 1046063872u, 4023829068u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 208, 1098564822u, 3242223094u, 3194111199u, 4264674108u, 1072693246u, 3333341511u, 0, POW_TOLERANCE, 0},
+{ 209, 3238510821u, 3506346169u, 1047020885u, 1742757458u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 210, 3192664477u, 1265459564u, 3193450280u, 3650514880u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 211, 1081755890u, 1525260440u, 3235452527u, 2612331392u, 0u, 0u, 0, POW_TOLERANCE, 0},
+{ 212, 3248668920u, 1263613754u, 3219096387u, 635677201u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 213, 3206272087u, 4140947288u, 3200792376u, 2013265346u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 214, 3249974392u, 1912759945u, 3237045253u, 1351396825u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 215, 3248205162u, 1001433078u, 3206926643u, 2741676659u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 216, 1080923606u, 1088945233u, 1085095743u, 3986114865u, 2146435072u, 0u, 34, POW_TOLERANCE, 0},
+{ 217, 3215734057u, 831239754u, 1099828675u, 3071308141u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 218, 3225834497u, 3473592372u, 1102759382u, 1309576357u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 219, 3251186706u, 2042340367u, 1091945628u, 2062772374u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 220, 3194765687u, 1840632537u, 1096533424u, 807510337u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 221, 3231451722u, 144814872u, 3212698915u, 2282965697u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 222, 1071236430u, 2552499583u, 3229111426u, 1470130815u, 1608334226u, 2161970735u, 0, POW_TOLERANCE, 0},
+{ 223, 3243093065u, 2858583811u, 1089760910u, 6360994u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 224, 3198264929u, 1614537194u, 1075198900u, 4088705365u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 225, 3250939070u, 3545570051u, 1065221325u, 1629217700u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 226, 1072744324u, 1813392963u, 3235313361u, 3772501596u, 0u, 0u, 0, POW_TOLERANCE, 0},
+{ 227, 3196802686u, 2406734491u, 1042055360u, 89226663u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 228, 3195751081u, 1618759139u, 3194723421u, 3888234802u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 229, 1055357248u, 3590035633u, 3212424262u, 2892456615u, 1072771013u, 386828558u, 0, POW_TOLERANCE, 0},
+{ 230, 3189943060u, 2431246964u, 3241512456u, 183850734u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 231, 1089501101u, 3088319870u, 3211544311u, 862225364u, 1072614281u, 3958437556u, 0, POW_TOLERANCE, 0},
+{ 232, 3235294664u, 3495352775u, 1058576726u, 596957268u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 233, 1046553348u, 1839214511u, 3205004060u, 1923240983u, 1072694093u, 1818476007u, 0, POW_TOLERANCE, 0},
+{ 234, 1058073864u, 739619702u, 3223356436u, 2689885273u, 1193195944u, 2224143502u, 0, POW_TOLERANCE, 0},
+{ 235, 3200324971u, 2143376228u, 1098306332u, 3760236188u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 236, 1074621795u, 671680995u, 1091262633u, 2315535361u, 2146435072u, 0u, 34, POW_TOLERANCE, 0},
+{ 237, 3214165989u, 2493598049u, 3194927008u, 1689107592u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 238, 3189989959u, 1578976988u, 1066368383u, 2117279163u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 239, 3222988111u, 3425290087u, 1098487295u, 1263412017u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 240, 3208432764u, 3635396812u, 1070999426u, 3965655689u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 241, 1060196346u, 2183973116u, 1101098363u, 1118613350u, 0u, 0u, 0, POW_TOLERANCE, 0},
+{ 242, 3221946089u, 199516350u, 1078368488u, 164621458u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 243, 3187706018u, 3570940805u, 3230316437u, 3596080877u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 244, 3208209565u, 980880313u, 1079833442u, 884465057u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 245, 1099977124u, 2558179220u, 1052873711u, 1233598120u, 1072693287u, 2758573484u, 0, POW_TOLERANCE, 0},
+{ 246, 1047115221u, 1909994277u, 1085015978u, 2991527452u, 0u, 0u, 0, POW_TOLERANCE, 0},
+{ 247, 1060855260u, 1680290941u, 1074309900u, 2943870846u, 1036314251u, 1973715692u, 0, POW_TOLERANCE, 0},
+{ 248, 1059496132u, 1451927357u, 3228615456u, 1502585517u, 2146435072u, 0u, 34, POW_TOLERANCE, 0},
+{ 249, 3236211951u, 751136990u, 3230392165u, 3493275472u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 250, 1098365967u, 1209623292u, 3238056647u, 979495322u, 0u, 0u, 0, POW_TOLERANCE, 0},
+{ 251, 3250424296u, 1717672108u, 1048120593u, 531240316u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 252, 1054174923u, 3548721654u, 1086112947u, 3391817224u, 0u, 0u, 0, POW_TOLERANCE, 0},
+{ 253, 1077836851u, 2758195125u, 1100880260u, 2028440924u, 2146435072u, 0u, 34, POW_TOLERANCE, 0},
+{ 254, 1084223893u, 2750123373u, 3232200256u, 1086294931u, 0u, 0u, 0, POW_TOLERANCE, 0},
+{ 255, 1043958672u, 2986160931u, 1076097908u, 2540046258u, 786785645u, 3762814253u, 0, POW_TOLERANCE, 0},
+{ 256, 3235476602u, 451471221u, 1064816262u, 4187644495u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 257, 1099460228u, 2439500162u, 1065280276u, 1979490284u, 1072843442u, 3736351208u, 0, POW_TOLERANCE, 0},
+{ 258, 1040415832u, 2283342035u, 1078398157u, 1345997553u, 0u, 0u, 0, POW_TOLERANCE, 0},
+{ 259, 3213249348u, 179066662u, 1103272172u, 1217337578u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 260, 3211562377u, 3779303391u, 3210023352u, 3115946280u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 261, 3192989874u, 286247089u, 1085153597u, 713645369u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 262, 1093670500u, 1468283899u, 1042831668u, 2022736418u, 1072693248u, 177038445u, 0, POW_TOLERANCE, 0},
+{ 263, 1083139105u, 3305564080u, 1065483445u, 482392433u, 1072758877u, 3815495041u, 0, POW_TOLERANCE, 0},
+{ 264, 3201695807u, 2256346551u, 3222430705u, 2071674991u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 265, 3204024695u, 2295269094u, 1084451053u, 2773103941u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 266, 1078173946u, 1482721827u, 1092243422u, 3125409590u, 2146435072u, 0u, 34, POW_TOLERANCE, 0},
+{ 267, 3221065973u, 1381740563u, 1071545057u, 2918235653u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 268, 3238715972u, 1105857967u, 3241990046u, 2703723225u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 269, 1043015571u, 174689677u, 1079333374u, 3947057014u, 0u, 0u, 0, POW_TOLERANCE, 0},
+{ 270, 1090461859u, 2023082423u, 3242081486u, 1169047927u, 0u, 0u, 0, POW_TOLERANCE, 0},
+{ 271, 1064525899u, 3742487766u, 1043425732u, 194972788u, 1072693247u, 4099459954u, 0, POW_TOLERANCE, 0},
+{ 272, 3213791827u, 2136071361u, 3211529757u, 993675115u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 273, 3213663381u, 210772141u, 3241441539u, 580731413u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 274, 1093840413u, 1751560711u, 1074522705u, 180987057u, 1146599361u, 1320817502u, 0, POW_TOLERANCE, 0},
+{ 275, 1066754591u, 2552236599u, 1088658621u, 2112468655u, 0u, 0u, 0, POW_TOLERANCE, 0},
+{ 276, 3189290617u, 1578223762u, 3224596567u, 2456166162u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 277, 1058506965u, 2110924310u, 1086207177u, 3161208323u, 0u, 0u, 0, POW_TOLERANCE, 0},
+{ 278, 3231863394u, 2352173188u, 1079361728u, 4070222179u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 279, 1101012904u, 2481562701u, 1090937016u, 3809489716u, 2146435072u, 0u, 34, POW_TOLERANCE, 0},
+{ 280, 3197002651u, 330905705u, 1086260896u, 90264431u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 281, 1040729961u, 4162008079u, 3194387916u, 759522153u, 1072693248u, 3975412585u, 0, POW_TOLERANCE, 0},
+{ 282, 1081015037u, 1839697482u, 3216442625u, 2211508949u, 1071873549u, 2820448966u, 0, POW_TOLERANCE, 0},
+{ 283, 3249807211u, 3736863454u, 1063475914u, 3150741666u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 284, 1060785883u, 4200269406u, 3236646101u, 1061812176u, 2146435072u, 0u, 34, POW_TOLERANCE, 0},
+{ 285, 1080217979u, 106027290u, 3234978297u, 2245237549u, 0u, 0u, 0, POW_TOLERANCE, 0},
+{ 286, 3246984334u, 2132131375u, 3250483427u, 3449276437u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 287, 1089388778u, 2334440944u, 1105423490u, 4004336184u, 2146435072u, 0u, 34, POW_TOLERANCE, 0},
+{ 288, 3218772704u, 4090088208u, 1042030013u, 3898658299u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 289, 3207908064u, 2272831437u, 3253082595u, 2639188641u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 290, 1054766684u, 1856594168u, 3189515294u, 4101853676u, 1072693248u, 87290407u, 0, POW_TOLERANCE, 0},
+{ 291, 1076012412u, 2211699255u, 3195060344u, 3865018604u, 1072693247u, 3040077910u, 0, POW_TOLERANCE, 0},
+{ 292, 3242767010u, 996259334u, 3241496889u, 3782673116u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 293, 1099130747u, 3840380763u, 1048674041u, 550040067u, 1072693250u, 1696436778u, 0, POW_TOLERANCE, 0},
+{ 294, 3251419593u, 95874100u, 3237232828u, 2645647822u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 295, 1043665640u, 3441419500u, 3252367038u, 876710419u, 2146435072u, 0u, 34, POW_TOLERANCE, 0},
+{ 296, 3238593552u, 2560836004u, 3199616543u, 1180840586u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 297, 3221602966u, 2218230392u, 3227485787u, 3947214579u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 298, 1079539654u, 1447312532u, 1081476588u, 780366847u, 2146435072u, 0u, 34, POW_TOLERANCE, 0},
+{ 299, 1072569643u, 2842113832u, 3216156731u, 225159029u, 1072697900u, 2551805421u, 0, POW_TOLERANCE, 0},
+{ 300, 1098117193u, 1601981129u, 3234628869u, 2236538344u, 0u, 0u, 0, POW_TOLERANCE, 0},
+{ 301, 1085173524u, 2194185737u, 3242362684u, 87913366u, 0u, 0u, 0, POW_TOLERANCE, 0},
+{ 302, 3199083880u, 1346862963u, 1077836259u, 3604666660u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 303, 3212255979u, 3115209742u, 1099332326u, 1325101950u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 304, 3224546042u, 3889223100u, 1053247613u, 3371396923u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 305, 3220477868u, 4163120793u, 1075022670u, 1387631215u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 306, 3205481779u, 1532426189u, 1063168268u, 3397022615u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 307, 3201033321u, 89324166u, 1079206060u, 3429424710u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 308, 3192325102u, 747591401u, 1072238381u, 2803213904u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 309, 1091113780u, 271904221u, 1044258318u, 1858545114u, 1072693248u, 386316155u, 0, POW_TOLERANCE, 0},
+{ 310, 3228068914u, 314958082u, 3249912496u, 2966213175u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 311, 3197179414u, 3119528953u, 3217179014u, 2908718240u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 312, 3242467576u, 2018361566u, 1100926600u, 3985805054u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 313, 1070132580u, 409584884u, 3239758947u, 755795129u, 2146435072u, 0u, 34, POW_TOLERANCE, 0},
+{ 314, 1075772446u, 1819156379u, 3251342302u, 2982669005u, 0u, 0u, 0, POW_TOLERANCE, 0},
+{ 315, 1101563433u, 2080534280u, 3188254060u, 449171797u, 1072693247u, 4170038984u, 0, POW_TOLERANCE, 0},
+{ 316, 1095956900u, 168744837u, 3214950009u, 1322217822u, 1071881872u, 187466493u, 0, POW_TOLERANCE, 0},
+{ 317, 3254226900u, 3250487255u, 1062120700u, 1876195180u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 318, 3226343480u, 1336400247u, 1098057903u, 3314079581u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 319, 3203678820u, 265025555u, 1063854282u, 3779482256u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 320, 1067300501u, 887044257u, 1054789618u, 2732056261u, 1072693193u, 1996278249u, 0, POW_TOLERANCE, 0},
+{ 321, 1050106742u, 4027115185u, 3191764868u, 2940199511u, 1072693248u, 475078664u, 0, POW_TOLERANCE, 0},
+{ 322, 3202500155u, 2875684421u, 3227459837u, 2251967570u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 323, 1063244412u, 284173546u, 3238823679u, 3557800647u, 2146435072u, 0u, 34, POW_TOLERANCE, 0},
+{ 324, 1101458560u, 3147771266u, 3220110464u, 2933364246u, 1044672313u, 3419723780u, 0, POW_TOLERANCE, 0},
+{ 325, 1064853160u, 3366183281u, 3234870843u, 537442654u, 2146435072u, 0u, 34, POW_TOLERANCE, 0},
+{ 326, 3244118788u, 2529029548u, 3249882819u, 3781513577u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 327, 3213436354u, 1080845539u, 3206760016u, 911778687u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 328, 3191951036u, 469586759u, 1091830022u, 3080528840u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 329, 1080249104u, 2863108169u, 3225605506u, 2508274250u, 785500297u, 1983771784u, 0, POW_TOLERANCE, 0},
+{ 330, 3210826984u, 4080017377u, 3206492941u, 1470284690u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 331, 3207120390u, 3867917386u, 1102054928u, 3504746045u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 332, 1064522279u, 2962134101u, 3244741577u, 3390537350u, 2146435072u, 0u, 34, POW_TOLERANCE, 0},
+{ 333, 1088201813u, 1702237980u, 1071598971u, 1102587474u, 1080238900u, 4082329047u, 0, POW_TOLERANCE, 0},
+{ 334, 3202970118u, 2180218657u, 3211592260u, 1206527853u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 335, 3197084744u, 394130786u, 3242511482u, 2437699868u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 336, 1044237059u, 849581558u, 3252006507u, 2008614943u, 2146435072u, 0u, 34, POW_TOLERANCE, 0},
+{ 337, 3210140014u, 3128971673u, 3249137531u, 2773583059u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 338, 1085029866u, 590727700u, 3248651761u, 2183878539u, 0u, 0u, 0, POW_TOLERANCE, 0},
+{ 339, 1101098629u, 820687580u, 3208143496u, 1402434664u, 1072678628u, 3067689733u, 0, POW_TOLERANCE, 0},
+{ 340, 3252290835u, 1873709254u, 3245167989u, 44275991u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 341, 3189668753u, 1174874204u, 3208263730u, 2360372288u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 342, 1103854676u, 937573440u, 3208953761u, 211240241u, 1072666015u, 1047161720u, 0, POW_TOLERANCE, 0},
+{ 343, 3243548934u, 2469774991u, 1043117070u, 3380071805u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 344, 1058121042u, 442507560u, 3254252803u, 3257889649u, 2146435072u, 0u, 34, POW_TOLERANCE, 0},
+{ 345, 1068850520u, 1854921625u, 1049810168u, 2729627545u, 1072693246u, 2312848366u, 0, POW_TOLERANCE, 0},
+{ 346, 3254712629u, 4001809575u, 3240128649u, 278261523u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 347, 1087224694u, 1793907966u, 3238955714u, 398859249u, 0u, 0u, 0, POW_TOLERANCE, 0},
+{ 348, 3200952547u, 2511916952u, 3219195283u, 1697158299u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 349, 1069985548u, 3230931724u, 3243897690u, 3508781585u, 2146435072u, 0u, 34, POW_TOLERANCE, 0},
+{ 350, 1103847606u, 1674254897u, 1046547577u, 217148561u, 1072693248u, 2951604327u, 0, POW_TOLERANCE, 0},
+{ 351, 3211263954u, 3275604304u, 3194840159u, 2991205850u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 352, 3195249375u, 3509997278u, 3248888030u, 3897986511u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 353, 1047182435u, 2156824613u, 1042295665u, 1239257646u, 1072693247u, 4009861912u, 0, POW_TOLERANCE, 0},
+{ 354, 3213264085u, 1073153314u, 3250031627u, 2567234990u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 355, 3190593412u, 4261696995u, 3197784432u, 323702024u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 356, 3243690997u, 4075177615u, 3202791065u, 1919006082u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 357, 3239270013u, 386429966u, 1086504491u, 3698826164u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 358, 1078327190u, 1681986446u, 3194985869u, 3072950140u, 1072693247u, 2288553838u, 0, POW_TOLERANCE, 0},
+{ 359, 3217311933u, 3719038997u, 1055433962u, 3331415058u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 360, 1060749713u, 2420250111u, 3238002206u, 1928661079u, 2146435072u, 0u, 34, POW_TOLERANCE, 0},
+{ 361, 1081914210u, 3679866727u, 3227386672u, 1273835792u, 0u, 5396u, 0, POW_TOLERANCE, 0},
+{ 362, 1041622738u, 2682092368u, 3234222284u, 1325425811u, 2146435072u, 0u, 34, POW_TOLERANCE, 0},
+{ 363, 1056312613u, 4175172697u, 3208346191u, 2130706153u, 1072697993u, 2090954347u, 0, POW_TOLERANCE, 0},
+{ 364, 1092089624u, 1200784450u, 1083605096u, 1248595607u, 2146435072u, 0u, 34, POW_TOLERANCE, 0},
+{ 365, 3213890863u, 1897285171u, 3251296075u, 944966123u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 366, 3241371250u, 2270747330u, 3230692631u, 422503284u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 367, 1084120037u, 2857564741u, 1075647403u, 3308906709u, 1155874651u, 3188353547u, 0, POW_TOLERANCE, 0},
+{ 368, 3203475098u, 1380066948u, 3232612906u, 2613634294u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 369, 1063890856u, 4022784584u, 1060483857u, 3264056381u, 1072689248u, 3108185928u, 0, POW_TOLERANCE, 0},
+{ 370, 1044637404u, 1778509100u, 3213146285u, 2665833973u, 1072909050u, 2720463137u, 0, POW_TOLERANCE, 0},
+{ 371, 3216727300u, 1859175955u, 1079949560u, 4258450607u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 372, 1048277388u, 4128020197u, 1076266146u, 4122840980u, 798449415u, 2426252462u, 0, POW_TOLERANCE, 0},
+{ 373, 3193183163u, 2454653987u, 3229487005u, 2977478685u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 374, 3253556483u, 1355181872u, 1095308770u, 436846481u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 375, 3246605302u, 2592856453u, 3247825559u, 3195234082u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 376, 3222118023u, 3554670043u, 1091621009u, 3321236467u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 377, 1069012833u, 1936670355u, 1095715713u, 2958468553u, 0u, 0u, 0, POW_TOLERANCE, 0},
+{ 378, 3192291109u, 2960339502u, 1098808013u, 1044068983u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 379, 3196691185u, 4093388677u, 1095478112u, 1735930261u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 380, 1091040302u, 1807398746u, 3195743135u, 4261616162u, 1072693245u, 1774133003u, 0, POW_TOLERANCE, 0},
+{ 381, 3209294194u, 3250576797u, 1059002384u, 3043079652u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 382, 1069207109u, 666051428u, 3208765404u, 1912684117u, 1072694539u, 2184407358u, 0, POW_TOLERANCE, 0},
+{ 383, 1103487420u, 1949030179u, 1096388934u, 896459246u, 2146435072u, 0u, 34, POW_TOLERANCE, 0},
+{ 384, 1054300653u, 622499767u, 1066707637u, 1490260486u, 1072238894u, 1575406057u, 0, POW_TOLERANCE, 0},
+{ 385, 1106688493u, 1490616165u, 3251242436u, 795675736u, 0u, 0u, 0, POW_TOLERANCE, 0},
+{ 386, 1080943896u, 3662877092u, 3234317146u, 3200513112u, 0u, 0u, 0, POW_TOLERANCE, 0},
+{ 387, 1084088786u, 1356101968u, 3236536816u, 3062844611u, 0u, 0u, 0, POW_TOLERANCE, 0},
+{ 388, 3219922640u, 2284484846u, 3219498359u, 3240896015u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 389, 3235759689u, 494503287u, 1092811254u, 142673998u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 390, 3252125916u, 3394882641u, 3225306538u, 364852125u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 391, 3225261763u, 193885269u, 1088149839u, 1359805831u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 392, 3200484782u, 592580907u, 3199560872u, 3086438952u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 393, 1059518664u, 1778008540u, 1049064687u, 73581647u, 1072693244u, 3564623841u, 0, POW_TOLERANCE, 0},
+{ 394, 3246733598u, 233240285u, 1081923320u, 2710903921u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 395, 1069513767u, 3719878805u, 1079866720u, 3615458228u, 699053901u, 1047947444u, 0, POW_TOLERANCE, 0},
+{ 396, 3221194724u, 3647632375u, 3247225271u, 3839959621u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 397, 1103401096u, 2232210456u, 3235434773u, 224271737u, 0u, 0u, 0, POW_TOLERANCE, 0},
+{ 398, 3193003684u, 2134662911u, 3190390590u, 4239009051u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 399, 1080526145u, 2305279897u, 1077668039u, 1854523320u, 1293773262u, 1900362721u, 0, POW_TOLERANCE, 0},
+{ 400, 3219864259u, 538224650u, 3206153057u, 1379649610u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 401, 3196410507u, 3683897920u, 3244167599u, 3647579469u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 402, 1090280933u, 2694093608u, 1042775347u, 598406111u, 1072693248u, 143630050u, 0, POW_TOLERANCE, 0},
+{ 403, 3211635392u, 872706833u, 1084802480u, 2200602798u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 404, 1042339597u, 904146293u, 1060867322u, 1729685598u, 1072675645u, 2902661197u, 0, POW_TOLERANCE, 0},
+{ 405, 3195694970u, 1894173462u, 3232800651u, 191960416u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 406, 1091225343u, 3521028551u, 1054522089u, 3287274359u, 1072693330u, 808057802u, 0, POW_TOLERANCE, 0},
+{ 407, 1095386964u, 959640601u, 3201578263u, 4136915018u, 1072693095u, 3960121440u, 0, POW_TOLERANCE, 0},
+{ 408, 1064005451u, 1553716379u, 1106027987u, 984725765u, 0u, 0u, 0, POW_TOLERANCE, 0},
+{ 409, 3238832641u, 2287646644u, 3240329321u, 2276183378u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 410, 1068209174u, 3940225170u, 3199544434u, 997572161u, 1072693251u, 3719004870u, 0, POW_TOLERANCE, 0},
+{ 411, 3212768361u, 36116288u, 3206886566u, 4196602670u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 412, 3241695853u, 3550227562u, 3207257983u, 2747744117u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 413, 1104236126u, 507130047u, 1048359321u, 3229888373u, 1072693250u, 1458311196u, 0, POW_TOLERANCE, 0},
+{ 414, 3222996778u, 2210969014u, 1081031001u, 1946786091u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 415, 3236306990u, 4059150589u, 3189759234u, 1177045799u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 416, 1093103612u, 2664812822u, 1050343198u, 2034180320u, 1072693253u, 3048254437u, 0, POW_TOLERANCE, 0},
+{ 417, 3213779117u, 1175750283u, 3235559706u, 1424491340u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 418, 3213904193u, 1630036121u, 3231972785u, 3195479448u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 419, 1090429875u, 2527029044u, 1046927050u, 4000723255u, 1072693248u, 2249250707u, 0, POW_TOLERANCE, 0},
+{ 420, 1085208677u, 3335703647u, 3237349676u, 3869440059u, 0u, 0u, 0, POW_TOLERANCE, 0},
+{ 421, 1091433848u, 3888398377u, 3196041693u, 1290567220u, 1072693244u, 3968038868u, 0, POW_TOLERANCE, 0},
+{ 422, 1066679070u, 3242451480u, 3248384948u, 707431021u, 2146435072u, 0u, 34, POW_TOLERANCE, 0},
+{ 423, 1083230509u, 2739665123u, 1060777905u, 1733073225u, 1072696176u, 1392301465u, 0, POW_TOLERANCE, 0},
+{ 424, 1078517061u, 1297274853u, 3208848704u, 3341639139u, 1072688466u, 2887746621u, 0, POW_TOLERANCE, 0},
+{ 425, 1046570941u, 2228057309u, 1084318902u, 1317851136u, 0u, 0u, 0, POW_TOLERANCE, 0},
+{ 426, 1088255327u, 270039934u, 3241414679u, 3063626339u, 0u, 0u, 0, POW_TOLERANCE, 0},
+{ 427, 3219178350u, 83062251u, 3211262173u, 2659016437u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 428, 1095743886u, 3833539373u, 3206667189u, 1567476111u, 1072688897u, 3409584618u, 0, POW_TOLERANCE, 0},
+{ 429, 3205195072u, 2382776852u, 3249232579u, 1546622468u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 430, 1085536439u, 1714300821u, 1104130938u, 4167591598u, 2146435072u, 0u, 34, POW_TOLERANCE, 0},
+{ 431, 1051092760u, 2798720100u, 1086978789u, 449990704u, 0u, 0u, 0, POW_TOLERANCE, 0},
+{ 432, 3231198415u, 4039516226u, 3244344107u, 4272932619u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 433, 3222708441u, 1683007544u, 1091105663u, 3805494321u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 434, 3220852948u, 2072627412u, 1094383324u, 3394151662u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 435, 3220570024u, 1120106427u, 3223631624u, 3404608264u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 436, 1097859997u, 559918757u, 3205077053u, 908100198u, 1072691545u, 2046084509u, 0, POW_TOLERANCE, 0},
+{ 437, 1042677918u, 2026673913u, 3244833635u, 2844573214u, 2146435072u, 0u, 34, POW_TOLERANCE, 0},
+{ 438, 3254567259u, 3946837259u, 3234993796u, 3850406820u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 439, 1057479809u, 3139330994u, 1046133568u, 1539650690u, 1072693247u, 2053123428u, 0, POW_TOLERANCE, 0},
+{ 440, 3236705500u, 1554593884u, 3228899878u, 2813752562u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 441, 1056505004u, 3804703138u, 1072931071u, 2053677923u, 1052893344u, 1407379810u, 0, POW_TOLERANCE, 0},
+{ 442, 3244864299u, 289355864u, 1078453818u, 2143066338u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 443, 3203939880u, 2157691971u, 1106629150u, 110806409u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 444, 1082157019u, 3570399481u, 1085637605u, 180265334u, 2146435072u, 0u, 34, POW_TOLERANCE, 0},
+{ 445, 3200980182u, 558779875u, 3202046748u, 2338464653u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 446, 1045705464u, 1703969219u, 3229797258u, 1417521063u, 2146435072u, 0u, 34, POW_TOLERANCE, 0},
+{ 447, 3237782261u, 3917440951u, 1051668894u, 3736066983u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 448, 1064752080u, 3106613409u, 1066627453u, 2735392257u, 1072496446u, 957191870u, 0, POW_TOLERANCE, 0},
+{ 449, 1065665372u, 2229777605u, 1065061963u, 2405869925u, 1072629459u, 2158296239u, 0, POW_TOLERANCE, 0},
+{ 450, 3239463229u, 3967957902u, 1057416138u, 3459188071u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 451, 1068639210u, 3699016825u, 3249713090u, 796144848u, 2146435072u, 0u, 34, POW_TOLERANCE, 0},
+{ 452, 3228816396u, 3285165564u, 3211948811u, 401510871u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 453, 1094257658u, 634857910u, 3199607513u, 914218057u, 1072693208u, 1723708036u, 0, POW_TOLERANCE, 0},
+{ 454, 1083743336u, 2030735578u, 3233855943u, 965677531u, 0u, 0u, 0, POW_TOLERANCE, 0},
+{ 455, 1079556815u, 3957229084u, 1051050470u, 3123776651u, 1072693251u, 531543956u, 0, POW_TOLERANCE, 0},
+{ 456, 3221863333u, 162122081u, 3239376395u, 108064594u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 457, 3237271786u, 869031839u, 3225020876u, 1344301606u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 458, 3214433474u, 946696117u, 3231825228u, 1700703647u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 459, 1075492875u, 3394168074u, 1076939786u, 1666995668u, 1120942639u, 1957855996u, 0, POW_TOLERANCE, 0},
+{ 460, 3208774795u, 2488789804u, 3238508333u, 1506943664u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 461, 1072788663u, 3844072288u, 3202592279u, 2630019853u, 1072693246u, 1228577461u, 0, POW_TOLERANCE, 0},
+{ 462, 3219934542u, 1244307192u, 3191297711u, 2540916692u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 463, 3200062692u, 2871645739u, 3239081581u, 1440249115u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 464, 1068350633u, 1231934926u, 3236746788u, 603977748u, 2146435072u, 0u, 34, POW_TOLERANCE, 0},
+{ 465, 3195449689u, 2386312545u, 1063169277u, 2715234268u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 466, 1087803418u, 915867083u, 1046790892u, 3347417612u, 1072693248u, 1749916062u, 0, POW_TOLERANCE, 0},
+{ 467, 1105984188u, 3553288373u, 1065698616u, 2906680663u, 1072963055u, 81307323u, 0, POW_TOLERANCE, 0},
+{ 468, 1045506226u, 2342364630u, 1051356723u, 4019093203u, 1072693218u, 1483421926u, 0, POW_TOLERANCE, 0},
+{ 469, 3201169162u, 2911548084u, 1105282515u, 2476735795u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 470, 1050472772u, 1836216409u, 1101062307u, 2519592554u, 0u, 0u, 0, POW_TOLERANCE, 0},
+{ 471, 1070178161u, 1235369496u, 3222946447u, 668087854u, 1088607402u, 230317747u, 0, POW_TOLERANCE, 0},
+{ 472, 3208554596u, 2981820811u, 1059838516u, 2845580478u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 473, 3193931414u, 1565550570u, 3217165795u, 4162017137u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 474, 3237251378u, 2808968027u, 1055630096u, 1782326814u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 475, 1053576974u, 1492622658u, 3216653077u, 3972512122u, 1074599716u, 1349128967u, 0, POW_TOLERANCE, 0},
+{ 476, 3222171679u, 2722693603u, 3227814791u, 3169731970u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 477, 3217906631u, 899763203u, 3207606001u, 2804747833u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 478, 3230670325u, 3789058912u, 3228095081u, 4135937628u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 479, 1060199382u, 1682808307u, 3206960335u, 232877759u, 1072694720u, 1901602099u, 0, POW_TOLERANCE, 0},
+{ 480, 3242091486u, 2851963139u, 3246852961u, 2590862592u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 481, 1081200406u, 2422232642u, 3234779662u, 290458310u, 0u, 0u, 0, POW_TOLERANCE, 0},
+{ 482, 3210671078u, 1082582386u, 1075605675u, 2602133689u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 483, 3239818611u, 1789635787u, 1059414278u, 1048286093u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 484, 1098330542u, 231339448u, 1055573265u, 504907415u, 1072693475u, 2832520792u, 0, POW_TOLERANCE, 0},
+{ 485, 1063211461u, 1153251200u, 3204617090u, 1772013857u, 1072693480u, 2548304715u, 0, POW_TOLERANCE, 0},
+{ 486, 1099551055u, 1082898276u, 3212089272u, 1449080862u, 1072513658u, 1143197041u, 0, POW_TOLERANCE, 0},
+{ 487, 1086008285u, 3177299045u, 1058862813u, 809400815u, 1072694273u, 2275158180u, 0, POW_TOLERANCE, 0},
+{ 488, 3230854550u, 1924429710u, 1056464743u, 3349283177u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 489, 3245473391u, 42238036u, 1042379500u, 2113559863u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 490, 1064761243u, 3304403230u, 3217556703u, 58952646u, 1074080049u, 1235076998u, 0, POW_TOLERANCE, 0},
+{ 491, 3212669530u, 1645486982u, 3224301095u, 3636267471u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 492, 1062762009u, 619402181u, 3235208235u, 557360557u, 2146435072u, 0u, 34, POW_TOLERANCE, 0},
+{ 493, 3238238394u, 110029735u, 1046937383u, 984375729u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 494, 3189496738u, 4063688092u, 3203235744u, 1049950343u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 495, 1062350619u, 650996069u, 1054971928u, 3953359826u, 1072693128u, 1294650307u, 0, POW_TOLERANCE, 0},
+{ 496, 3227055805u, 66926332u, 1090561839u, 1379780888u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 497, 3233453307u, 2803378256u, 1086057989u, 498534626u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 498, 1082618553u, 2846400785u, 1047142525u, 1375153550u, 1072693248u, 1451010777u, 0, POW_TOLERANCE, 0},
+{ 499, 1044581201u, 2869128958u, 1070972315u, 4246440273u, 1063134044u, 2290995554u, 0, POW_TOLERANCE, 0},
+{ 500, 1051832506u, 3112381207u, 1044430965u, 3981604561u, 1072693247u, 3327983736u, 0, POW_TOLERANCE, 0},
+{ 501, 3231254997u, 243303420u, 1093735824u, 1575581926u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 502, 3239137997u, 3218865041u, 3204803496u, 3840388050u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 503, 1048415431u, 336846959u, 1052664471u, 3798336786u, 1072693187u, 630976724u, 0, POW_TOLERANCE, 0},
+{ 504, 1055954236u, 3639240976u, 1081202165u, 1844741676u, 0u, 0u, 0, POW_TOLERANCE, 0},
+{ 505, 3211904793u, 717293069u, 3211534283u, 582401011u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 506, 3251962512u, 3766248610u, 3196520332u, 1174437546u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 507, 1083431226u, 756959182u, 3204099341u, 1581804034u, 1072692866u, 3124146731u, 0, POW_TOLERANCE, 0},
+{ 508, 3205806444u, 3560686300u, 3220980617u, 4277975772u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 509, 3209906076u, 2598148853u, 3217622194u, 3460421008u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 510, 1066720824u, 136600515u, 3209934920u, 3340653128u, 1072698173u, 395857824u, 0, POW_TOLERANCE, 0},
+{ 511, 1096820310u, 1045480938u, 3251354609u, 4133432965u, 0u, 0u, 0, POW_TOLERANCE, 0},
+{ 512, 1091599431u, 1630207738u, 3239996829u, 2393354808u, 0u, 0u, 0, POW_TOLERANCE, 0},
+{ 513, 3190626018u, 3739770117u, 1059520750u, 3959551225u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 514, 3230730505u, 1498861716u, 1091297147u, 847410798u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 515, 1073516688u, 983275314u, 3232538664u, 2244973629u, 0u, 0u, 0, POW_TOLERANCE, 0},
+{ 516, 1054849265u, 2353103845u, 3235718771u, 2978889966u, 2146435072u, 0u, 34, POW_TOLERANCE, 0},
+{ 517, 3251357992u, 1546972125u, 3249076079u, 1987349196u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 518, 3238219513u, 2769161072u, 1075207126u, 292616282u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 519, 3199712298u, 36855311u, 1052128202u, 1479039342u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 520, 1083757053u, 2027463605u, 1066023013u, 3369686340u, 1072797014u, 4289163029u, 0, POW_TOLERANCE, 0},
+{ 521, 3197852749u, 3808681655u, 1054161346u, 1821773119u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 522, 1040685928u, 3175490326u, 3226879970u, 845687760u, 2146435072u, 0u, 34, POW_TOLERANCE, 0},
+{ 523, 1042302993u, 3124482451u, 3242748377u, 3259417226u, 2146435072u, 0u, 34, POW_TOLERANCE, 0},
+{ 524, 1045245695u, 2751606436u, 3236210939u, 3923142740u, 2146435072u, 0u, 34, POW_TOLERANCE, 0},
+{ 525, 1095694737u, 2016872044u, 3228408064u, 4201274408u, 0u, 0u, 0, POW_TOLERANCE, 0},
+{ 526, 3199349254u, 1019916843u, 3219974785u, 1977881787u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 527, 3199478752u, 2060433318u, 1075872515u, 366073725u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 528, 3191180557u, 1098469906u, 1082900695u, 2349346832u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 529, 3209974707u, 3011196295u, 3252479932u, 2459281672u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 530, 3221334323u, 2843222682u, 1089275809u, 298982001u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 531, 1101737698u, 914741728u, 3203468059u, 2833809843u, 1072692592u, 442763524u, 0, POW_TOLERANCE, 0},
+{ 532, 3236763878u, 1274901962u, 3241535845u, 3759113509u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 533, 3245916442u, 2134927252u, 3253802671u, 3013731444u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 534, 1099201341u, 2230655177u, 3254510616u, 1249674366u, 0u, 0u, 0, POW_TOLERANCE, 0},
+{ 535, 1062971253u, 717357389u, 1083533731u, 3746683362u, 0u, 0u, 0, POW_TOLERANCE, 0},
+{ 536, 3213773114u, 834976849u, 3217357661u, 2465861779u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 537, 1045656117u, 1385714428u, 1053358395u, 3007113740u, 1072693136u, 3021333862u, 0, POW_TOLERANCE, 0},
+{ 538, 1050527919u, 599268545u, 3201368210u, 2309854744u, 1072693310u, 766294020u, 0, POW_TOLERANCE, 0},
+{ 539, 1069954454u, 2840234388u, 3232496515u, 333365983u, 2146435072u, 0u, 34, POW_TOLERANCE, 0},
+{ 540, 1045922781u, 3136078996u, 3194520860u, 2650572904u, 1072693248u, 3627680972u, 0, POW_TOLERANCE, 0},
+{ 541, 3233687691u, 2405805086u, 3251640319u, 324233833u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 542, 1106699146u, 2589598340u, 3254677807u, 952438812u, 0u, 0u, 0, POW_TOLERANCE, 0},
+{ 543, 3189114773u, 1922837702u, 3216892718u, 3535907549u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 544, 3243615868u, 261447440u, 3209805849u, 1150571079u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 545, 1095805232u, 4026487528u, 1073152064u, 27340691u, 1105866136u, 1622177461u, 0, POW_TOLERANCE, 0},
+{ 546, 3229123692u, 338765118u, 1086225786u, 3207238249u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 547, 3196182703u, 1085283176u, 3187775111u, 1601194210u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 548, 1091520173u, 3031712790u, 3252307859u, 170666844u, 0u, 0u, 0, POW_TOLERANCE, 0},
+{ 549, 3218862231u, 3148395674u, 1041913758u, 3306391490u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 550, 3201277070u, 2205233857u, 3208100078u, 3993195511u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 551, 1067699608u, 4282766727u, 1072820377u, 1874778218u, 1067103012u, 101891501u, 0, POW_TOLERANCE, 0},
+{ 552, 3210833092u, 2920860798u, 3218070226u, 3104066154u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 553, 3204950351u, 969991373u, 3250596895u, 1734386152u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 554, 3238915818u, 1218740205u, 3239802737u, 2610078504u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 555, 3206031242u, 1485218325u, 3220870240u, 3591664613u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 556, 3202074143u, 690157417u, 3190850619u, 4192347699u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 557, 1096053810u, 4009839784u, 1079670252u, 394167192u, 2146435072u, 0u, 34, POW_TOLERANCE, 0},
+{ 558, 3234559237u, 961532417u, 1092588071u, 2923790239u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 559, 3203879091u, 4174125604u, 1050682630u, 2169701868u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 560, 3243092475u, 4146748230u, 1087373950u, 2481478351u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 561, 1076987866u, 3984715440u, 1050421618u, 2446142566u, 1072693249u, 1117658652u, 0, POW_TOLERANCE, 0},
+{ 562, 1084172406u, 936290150u, 1100614426u, 3625806370u, 2146435072u, 0u, 34, POW_TOLERANCE, 0},
+{ 563, 1099787952u, 1866615265u, 3215651428u, 2337013350u, 1071179233u, 1730069180u, 0, POW_TOLERANCE, 0},
+{ 564, 3253198302u, 712227971u, 1106004723u, 973148499u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 565, 3230088199u, 3409813738u, 3244817008u, 1933503498u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 566, 1079943733u, 3180389060u, 3228735703u, 83422217u, 0u, 0u, 0, POW_TOLERANCE, 0},
+{ 567, 1077878724u, 556972671u, 3204582372u, 841555801u, 1072692999u, 3612892612u, 0, POW_TOLERANCE, 0},
+{ 568, 1070767721u, 4189151332u, 1080874032u, 706326922u, 641863389u, 2038944281u, 0, POW_TOLERANCE, 0},
+{ 569, 1096151307u, 198291836u, 1057281892u, 2188836928u, 1072693896u, 4270014993u, 0, POW_TOLERANCE, 0},
+{ 570, 1078091995u, 1219449298u, 3228734687u, 3504562743u, 0u, 0u, 0, POW_TOLERANCE, 0},
+{ 571, 3204570464u, 1776099219u, 1094316777u, 4188083896u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 572, 3193845708u, 2614400266u, 1073750227u, 3003203347u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 573, 3213982678u, 2959351406u, 1105603716u, 311851587u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 574, 1084544434u, 865443613u, 1097532516u, 3622237781u, 2146435072u, 0u, 34, POW_TOLERANCE, 0},
+{ 575, 3231786666u, 447506102u, 3195759295u, 3603669725u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 576, 1097890173u, 3934398273u, 1040996422u, 2968621268u, 1072693248u, 61913147u, 0, POW_TOLERANCE, 0},
+{ 577, 3196739825u, 784208771u, 1088764788u, 2182296421u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 578, 3248332291u, 1527590526u, 3206961556u, 2823164069u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 579, 3236644131u, 3876699591u, 3207481130u, 4028148535u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 580, 1083576186u, 2164249756u, 1059857743u, 1785169952u, 1072694882u, 1402864683u, 0, POW_TOLERANCE, 0},
+{ 581, 1091804009u, 2079273665u, 1080303860u, 625760474u, 2146435072u, 0u, 34, POW_TOLERANCE, 0},
+{ 582, 3226486108u, 3636214836u, 1068367620u, 2932621925u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 583, 1043995372u, 4274131512u, 1047707755u, 92550763u, 1072693245u, 981334221u, 0, POW_TOLERANCE, 0},
+{ 584, 3198822121u, 2648933384u, 1084603503u, 3534304873u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 585, 1064563235u, 3216750767u, 3191088629u, 547482628u, 1072693248u, 112495850u, 0, POW_TOLERANCE, 0},
+{ 586, 1061084774u, 1420360746u, 1080063101u, 1690029499u, 0u, 0u, 0, POW_TOLERANCE, 0},
+{ 587, 3229855364u, 1908572179u, 1080112083u, 1228319033u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 588, 1048158178u, 500312015u, 3212368508u, 3864619086u, 1072801307u, 2767779869u, 0, POW_TOLERANCE, 0},
+{ 589, 3221335610u, 4211343447u, 1087492676u, 4272583781u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 590, 1099392394u, 2382118000u, 1042665328u, 567154882u, 1072693248u, 202496693u, 0, POW_TOLERANCE, 0},
+{ 591, 1058013442u, 1435344339u, 3216303171u, 2275988178u, 1073850669u, 3820511026u, 0, POW_TOLERANCE, 0},
+{ 592, 3214538619u, 3403659753u, 3218043030u, 1926480488u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 593, 1076840383u, 1198845185u, 3225556149u, 1130089684u, 922173987u, 2098764000u, 0, POW_TOLERANCE, 0},
+{ 594, 3222663042u, 2183928090u, 1048403956u, 963834821u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 595, 1101672960u, 2120625396u, 1041006976u, 2137548527u, 1072693248u, 71767127u, 0, POW_TOLERANCE, 0},
+{ 596, 1099230238u, 586700956u, 1059670521u, 303891699u, 1072696814u, 471857713u, 0, POW_TOLERANCE, 0},
+{ 597, 3218994498u, 2509132460u, 1102827530u, 2205707903u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 598, 3204860597u, 1229308263u, 3209170414u, 4206576047u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 599, 3224076289u, 4078010749u, 3199236456u, 733478972u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 600, 3197712584u, 4277541051u, 3199806921u, 397102023u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 601, 3195975013u, 900999594u, 3234720188u, 2530214248u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 602, 1076543548u, 4000609478u, 1096577064u, 4148592328u, 2146435072u, 0u, 34, POW_TOLERANCE, 0},
+{ 603, 1048668084u, 2154187873u, 3224392607u, 3957250362u, 1464278091u, 4074807235u, 0, POW_TOLERANCE, 0},
+{ 604, 3223413488u, 2867079200u, 1101870326u, 921212001u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 605, 3233221890u, 674547716u, 1063216239u, 3929755226u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 606, 3240415851u, 3158182449u, 1043794244u, 3259056345u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 607, 3236776656u, 3002823940u, 1059511739u, 2832435794u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 608, 3217304822u, 2196511929u, 1049973941u, 3672092877u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 609, 1050438056u, 3655292191u, 1086438127u, 3567072906u, 0u, 0u, 0, POW_TOLERANCE, 0},
+{ 610, 3243186948u, 1617573614u, 3201863123u, 3090723732u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 611, 3233201380u, 679893506u, 3211547753u, 824081024u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 612, 1089530525u, 2285242807u, 1084999409u, 2221731406u, 2146435072u, 0u, 34, POW_TOLERANCE, 0},
+{ 613, 3206733664u, 1935990727u, 1088822246u, 1058156518u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 614, 1102839166u, 521023584u, 1059186903u, 4245163857u, 1072696112u, 3267875854u, 0, POW_TOLERANCE, 0},
+{ 615, 1103891140u, 2312887617u, 3191771354u, 1885370807u, 1072693247u, 2970483755u, 0, POW_TOLERANCE, 0},
+{ 616, 3252953815u, 1796441468u, 1100030327u, 2772711004u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 617, 3204276820u, 2095685003u, 1077984448u, 2100773742u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 618, 3192954620u, 2892538035u, 1042396334u, 4162200338u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 619, 3242725751u, 2177698116u, 3227557177u, 150832500u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 620, 3191562216u, 607966734u, 3236250630u, 4164600559u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 621, 3216389812u, 2830122967u, 1046096700u, 3713346883u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 622, 3237197963u, 2314640506u, 3203696416u, 3276228872u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 623, 3212912307u, 469331883u, 3249037349u, 2999233437u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 624, 1097382011u, 560886625u, 1091899487u, 748795120u, 2146435072u, 0u, 34, POW_TOLERANCE, 0},
+{ 625, 1049886858u, 2958421324u, 1092569414u, 3235243477u, 0u, 0u, 0, POW_TOLERANCE, 0},
+{ 626, 3193026497u, 3221475559u, 1043038304u, 915608434u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 627, 1071197530u, 3007808652u, 3216682290u, 2531019474u, 1072800308u, 390736839u, 0, POW_TOLERANCE, 0},
+{ 628, 3242028999u, 1767658578u, 3237045269u, 2313128318u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 629, 3210617892u, 1926845182u, 1066835624u, 1783256828u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 630, 1040575629u, 90378038u, 1057168870u, 164358218u, 1072691629u, 2656458388u, 0, POW_TOLERANCE, 0},
+{ 631, 1106859172u, 1610524680u, 1085283851u, 2903496007u, 2146435072u, 0u, 34, POW_TOLERANCE, 0},
+{ 632, 1078635586u, 4274321404u, 3202913591u, 720121831u, 1072693150u, 1036067998u, 0, POW_TOLERANCE, 0},
+{ 633, 1051205256u, 2034778236u, 1071133763u, 1413236391u, 1064530956u, 2085643682u, 0, POW_TOLERANCE, 0},
+{ 634, 1051063028u, 1489112261u, 1076691395u, 348210906u, 760248983u, 1522623444u, 0, POW_TOLERANCE, 0},
+{ 635, 3206743917u, 2797651324u, 3224410527u, 2374818327u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 636, 1088287256u, 1823161666u, 3197810695u, 3119680047u, 1072693239u, 1606822809u, 0, POW_TOLERANCE, 0},
+{ 637, 1065927336u, 3420950657u, 1087084743u, 2136638961u, 0u, 0u, 0, POW_TOLERANCE, 0},
+{ 638, 1069902224u, 3554566429u, 1062907717u, 2736702589u, 1072687149u, 2218809813u, 0, POW_TOLERANCE, 0},
+{ 639, 3244888667u, 2928437580u, 3187765027u, 1393427873u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 640, 3209301561u, 189447067u, 1051643315u, 828663513u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 641, 1052313869u, 2852350928u, 1045683757u, 673354280u, 1072693247u, 2059131834u, 0, POW_TOLERANCE, 0},
+{ 642, 1043946301u, 3589563265u, 3248741629u, 812657927u, 2146435072u, 0u, 34, POW_TOLERANCE, 0},
+{ 643, 3190610826u, 1766416701u, 1100392103u, 2185373290u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 644, 3220275389u, 3763582673u, 3191965790u, 388374829u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 645, 1079635136u, 1187403069u, 1075300235u, 336640304u, 1114375448u, 2508341866u, 0, POW_TOLERANCE, 0},
+{ 646, 1103926251u, 1718795752u, 3243118752u, 683369237u, 0u, 0u, 0, POW_TOLERANCE, 0},
+{ 647, 3210792097u, 1863545307u, 1069449477u, 3418627399u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 648, 1069601294u, 3295607249u, 1068878592u, 1633297809u, 1072360507u, 2931321086u, 0, POW_TOLERANCE, 0},
+{ 649, 1058947127u, 2585980994u, 3236670483u, 1286750688u, 2146435072u, 0u, 34, POW_TOLERANCE, 0},
+{ 650, 1046157033u, 15816845u, 3233249283u, 2491924775u, 2146435072u, 0u, 34, POW_TOLERANCE, 0},
+{ 651, 1042413021u, 1051983351u, 1049180786u, 1474421917u, 1072693240u, 523173278u, 0, POW_TOLERANCE, 0},
+{ 652, 3201249525u, 2003816032u, 1086050104u, 668090487u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 653, 1052556037u, 3671484625u, 1067020039u, 430024694u, 1072104115u, 2399684722u, 0, POW_TOLERANCE, 0},
+{ 654, 1067397110u, 3991830201u, 3207808714u, 1021245839u, 1072694325u, 1735817410u, 0, POW_TOLERANCE, 0},
+{ 655, 1064194391u, 4255801807u, 3207681716u, 1926756877u, 1072694802u, 2019984739u, 0, POW_TOLERANCE, 0},
+{ 656, 1052140785u, 4167786896u, 1077097744u, 1775517981u, 679609252u, 1942553467u, 0, POW_TOLERANCE, 0},
+{ 657, 1085601978u, 3187518564u, 1082437406u, 944672491u, 2146435072u, 0u, 34, POW_TOLERANCE, 0},
+{ 658, 1049366282u, 953085192u, 3227310828u, 3459155777u, 2146435072u, 0u, 34, POW_TOLERANCE, 0},
+{ 659, 1069502506u, 1908555460u, 1073640207u, 260441967u, 1066584007u, 3242786919u, 0, POW_TOLERANCE, 0},
+{ 660, 1067219606u, 250762477u, 1072582645u, 2886742039u, 1067529049u, 1008600260u, 0, POW_TOLERANCE, 0},
+{ 661, 3250906006u, 786180031u, 3197734769u, 2788918312u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 662, 3234511827u, 2055912467u, 3244244909u, 1394142937u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 663, 1069612985u, 91984146u, 3222252812u, 4126276047u, 1084695753u, 238746516u, 0, POW_TOLERANCE, 0},
+{ 664, 1081340139u, 3942715706u, 3239316352u, 410676547u, 0u, 0u, 0, POW_TOLERANCE, 0},
+{ 665, 3198557846u, 86296211u, 1085850694u, 649202596u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 666, 3245366392u, 3069064472u, 3237358008u, 23209276u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 667, 1081235288u, 1867297860u, 1072956607u, 2513414118u, 1083382405u, 154259724u, 0, POW_TOLERANCE, 0},
+{ 668, 3250533347u, 3171788768u, 3235208783u, 162138697u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 669, 1081728455u, 1245110700u, 1081653954u, 2584994077u, 2146435072u, 0u, 34, POW_TOLERANCE, 0},
+{ 670, 3245510120u, 3347226587u, 1058962932u, 2291943376u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 671, 1058899062u, 966940828u, 1060726420u, 2798041096u, 1072685871u, 393403851u, 0, POW_TOLERANCE, 0},
+{ 672, 1072793759u, 2487340727u, 3223786370u, 4105954991u, 1071006277u, 309120623u, 0, POW_TOLERANCE, 0},
+{ 673, 3248116497u, 1671039260u, 1086395032u, 3745833360u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 674, 1057078797u, 651714217u, 1047070645u, 2130549237u, 1072693246u, 4267185665u, 0, POW_TOLERANCE, 0},
+{ 675, 3207115731u, 1423000172u, 3247822717u, 1551488170u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 676, 3201597307u, 921077236u, 3213332351u, 1431049019u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 677, 1067510295u, 655715547u, 3190985373u, 1527556471u, 1072693248u, 66412499u, 0, POW_TOLERANCE, 0},
+{ 678, 3227654979u, 4110878657u, 3251297180u, 879739345u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 679, 1085804762u, 2623955764u, 1093699897u, 1216444475u, 2146435072u, 0u, 34, POW_TOLERANCE, 0},
+{ 680, 1091905603u, 107442539u, 3239767031u, 1149813329u, 0u, 0u, 0, POW_TOLERANCE, 0},
+{ 681, 3233445240u, 1761361082u, 3226030205u, 1121849716u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 682, 3240087115u, 2534144722u, 1044223733u, 3512285706u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 683, 3211846077u, 4073670723u, 1050729852u, 3034818849u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 684, 1101984574u, 1421423503u, 1060278048u, 1397153092u, 1072699017u, 253084263u, 0, POW_TOLERANCE, 0},
+{ 685, 3217421829u, 1649206019u, 1104525577u, 1267104290u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 686, 3189302097u, 3775270392u, 1040251850u, 68667319u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 687, 3204330900u, 3099226694u, 3254103006u, 4020102648u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 688, 3201591712u, 3718441177u, 3215643451u, 4032951536u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 689, 1044131371u, 508048351u, 3210196713u, 1707937896u, 1072722238u, 2938514689u, 0, POW_TOLERANCE, 0},
+{ 690, 3198611627u, 2784738160u, 1073435430u, 1109346010u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 691, 3225725290u, 3331916473u, 3238794568u, 2707019594u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 692, 1093182670u, 3093165197u, 1072894805u, 2853215019u, 1097140853u, 432263137u, 0, POW_TOLERANCE, 0},
+{ 693, 3216582139u, 2135797997u, 1048399559u, 2941926126u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 694, 1048430980u, 2083412145u, 3249335391u, 507212448u, 2146435072u, 0u, 34, POW_TOLERANCE, 0},
+{ 695, 1075363751u, 4270176401u, 3246546709u, 3288753319u, 0u, 0u, 0, POW_TOLERANCE, 0},
+{ 696, 3247932863u, 3692175292u, 3197271515u, 3989064196u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 697, 3251691738u, 3111924274u, 1066772558u, 59281695u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 698, 1067683911u, 2135245466u, 3208804313u, 3846547392u, 1072695179u, 541455052u, 0, POW_TOLERANCE, 0},
+{ 699, 1094877811u, 972051266u, 3222814246u, 3539700586u, 937812205u, 2732262850u, 0, POW_TOLERANCE, 0},
+{ 700, 3202965930u, 330951080u, 1079189813u, 583922384u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 701, 1089640092u, 1711944085u, 1104170032u, 643991456u, 2146435072u, 0u, 34, POW_TOLERANCE, 0},
+{ 702, 3234429549u, 2072550721u, 3250147641u, 4280263530u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 703, 3192972706u, 1566376352u, 1067251433u, 72984588u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 704, 1095276569u, 3103043079u, 1045853123u, 410067497u, 1072693248u, 1411252811u, 0, POW_TOLERANCE, 0},
+{ 705, 3216672493u, 1910366299u, 1081770885u, 634683073u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 706, 1081530688u, 2226525875u, 3224149290u, 2126302825u, 944914560u, 4069413743u, 0, POW_TOLERANCE, 0},
+{ 707, 1073150247u, 1383818978u, 3193885723u, 1220372650u, 1072693247u, 4201417711u, 0, POW_TOLERANCE, 0},
+{ 708, 1066482943u, 1953339096u, 1077176252u, 1476516558u, 946546597u, 3640510442u, 0, POW_TOLERANCE, 0},
+{ 709, 1066092000u, 1306277326u, 1079089150u, 4093716191u, 612825355u, 2217080555u, 0, POW_TOLERANCE, 0},
+{ 710, 3233148787u, 51750045u, 3242913901u, 4256866157u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 711, 3195084967u, 2163853087u, 3232053146u, 2962422808u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 712, 1075516945u, 1618388148u, 3233154824u, 3711953164u, 0u, 0u, 0, POW_TOLERANCE, 0},
+{ 713, 3246868002u, 357108214u, 3202294604u, 2306775262u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 714, 3201904086u, 2571356437u, 3249064063u, 2394851808u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 715, 3230488091u, 4273880094u, 1103698617u, 3578832032u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 716, 3233426701u, 2091068742u, 3228270226u, 3980489730u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 717, 3229016752u, 2772307714u, 1051008486u, 32546576u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 718, 3241229215u, 2143788498u, 3195498043u, 3630119231u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 719, 3198632935u, 2527385594u, 3240503648u, 3482095012u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 720, 3242168799u, 2690097362u, 1068598730u, 2360266862u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 721, 1058857869u, 2673272949u, 1082639557u, 522449749u, 0u, 0u, 0, POW_TOLERANCE, 0},
+{ 722, 1104424147u, 3596379400u, 3242016775u, 2002293002u, 0u, 0u, 0, POW_TOLERANCE, 0},
+{ 723, 1099439656u, 4113224369u, 3222122439u, 2152316893u, 973102302u, 593041218u, 0, POW_TOLERANCE, 0},
+{ 724, 3220796716u, 31662602u, 1047721249u, 1747087514u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 725, 3250463757u, 2489659568u, 1097051253u, 277506957u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 726, 3191401834u, 3850162281u, 3213841942u, 438724093u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 727, 1095392535u, 2431814052u, 1075518084u, 2672434118u, 1226969731u, 2279514813u, 0, POW_TOLERANCE, 0},
+{ 728, 3243162735u, 391606792u, 1048184750u, 4168944276u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 729, 3247792416u, 457529672u, 3201090276u, 72407935u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 730, 3218720719u, 3954981400u, 1052053242u, 2411049585u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 731, 1086180091u, 485456950u, 1088415093u, 1655397424u, 2146435072u, 0u, 34, POW_TOLERANCE, 0},
+{ 732, 3198234428u, 1551748070u, 3236871640u, 1329701152u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 733, 3224639122u, 3099222537u, 1104984570u, 4293792842u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 734, 3203949705u, 3603065260u, 3197735968u, 2402359253u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 735, 3198824584u, 3961208159u, 3219057584u, 2340553876u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 736, 1074881909u, 4014841779u, 3197672877u, 3697233334u, 1072693246u, 3733326417u, 0, POW_TOLERANCE, 0},
+{ 737, 3213275657u, 1403876392u, 3254028950u, 921363393u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 738, 1107251806u, 1862576361u, 3194031708u, 2476290925u, 1072693246u, 2050624436u, 0, POW_TOLERANCE, 0},
+{ 739, 1049661768u, 1454212851u, 1088378861u, 3400401866u, 0u, 0u, 0, POW_TOLERANCE, 0},
+{ 740, 1074406809u, 552676385u, 3188635745u, 3778112968u, 1072693247u, 4285430075u, 0, POW_TOLERANCE, 0},
+{ 741, 3216409282u, 1199568671u, 3225679997u, 46947405u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 742, 1077685537u, 2596231448u, 3253943728u, 2219151748u, 0u, 0u, 0, POW_TOLERANCE, 0},
+{ 743, 1066527035u, 4119719558u, 3222036299u, 1275474618u, 1094321828u, 2344281964u, 0, POW_TOLERANCE, 0},
+{ 744, 3239908663u, 3347296825u, 1101507910u, 1254014794u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 745, 1084119992u, 673775040u, 1070743626u, 244126093u, 1075926174u, 1870920115u, 0, POW_TOLERANCE, 0},
+{ 746, 3203199850u, 1832066983u, 1051358028u, 3262483417u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 747, 1077559600u, 3962610501u, 3198598777u, 849269178u, 1072693243u, 1523676086u, 0, POW_TOLERANCE, 0},
+{ 748, 3235473900u, 2497516122u, 3254374111u, 2821429629u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 749, 1076236288u, 2805941787u, 3217785843u, 779131141u, 1071847803u, 1229064437u, 0, POW_TOLERANCE, 0},
+{ 750, 3226908686u, 723423605u, 1084533420u, 627282213u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 751, 3215947680u, 4292778869u, 1078101071u, 1676860147u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 752, 1076288502u, 3528118587u, 3194648564u, 2363260897u, 1072693247u, 3213122894u, 0, POW_TOLERANCE, 0},
+{ 753, 3192897879u, 1307010018u, 1061248120u, 1468743108u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 754, 3246583139u, 107905661u, 3226089788u, 1943427674u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 755, 3188230541u, 760006940u, 1054265604u, 1749976597u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 756, 3237773384u, 2787503556u, 1081282610u, 1195841206u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 757, 3191802156u, 545462045u, 3208381743u, 1981311808u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 758, 1061232136u, 3657978397u, 1104463616u, 3501253426u, 0u, 0u, 0, POW_TOLERANCE, 0},
+{ 759, 1049883857u, 1804177501u, 3210693633u, 3606766729u, 1072723785u, 3886972153u, 0, POW_TOLERANCE, 0},
+{ 760, 1076856879u, 1336278526u, 1043741618u, 3165279431u, 1072693248u, 64294410u, 0, POW_TOLERANCE, 0},
+{ 761, 1055471915u, 1599382075u, 1058018527u, 4212580517u, 1072691791u, 391531247u, 0, POW_TOLERANCE, 0},
+{ 762, 3207502326u, 3007589929u, 3202026547u, 2792028313u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 763, 3253082770u, 1866066996u, 1060329048u, 3727175322u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 764, 3198416643u, 150890940u, 1056025306u, 3082724735u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 765, 1062008939u, 80400395u, 1093584426u, 3478941315u, 0u, 0u, 0, POW_TOLERANCE, 0},
+{ 766, 3251640614u, 4050954182u, 3219263194u, 2537475930u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 767, 1064841871u, 2881752155u, 3212589299u, 2559651278u, 1072730986u, 818344641u, 0, POW_TOLERANCE, 0},
+{ 768, 3249016304u, 440309030u, 3214267461u, 3788040806u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 769, 1100476615u, 918813144u, 3208535698u, 1607035904u, 1072675418u, 2557624176u, 0, POW_TOLERANCE, 0},
+{ 770, 1042137451u, 2497054124u, 1089139147u, 2549609010u, 0u, 0u, 0, POW_TOLERANCE, 0},
+{ 771, 1047037641u, 790219083u, 1054657139u, 2797979479u, 1072693004u, 3048704750u, 0, POW_TOLERANCE, 0},
+{ 772, 1057781400u, 1149462078u, 1095765205u, 3879963182u, 0u, 0u, 0, POW_TOLERANCE, 0},
+{ 773, 3202729813u, 2684353926u, 3205212854u, 1732474928u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 774, 1095236965u, 2742237025u, 1051317716u, 3386396147u, 1072693260u, 339199966u, 0, POW_TOLERANCE, 0},
+{ 775, 1063230986u, 3408320912u, 1103071166u, 4233059513u, 0u, 0u, 0, POW_TOLERANCE, 0},
+{ 776, 1064863548u, 1077495917u, 1088399968u, 433115118u, 0u, 0u, 0, POW_TOLERANCE, 0},
+{ 777, 3204547572u, 841366493u, 1051716814u, 4121125128u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 778, 1064632084u, 321857207u, 1089128010u, 1149988239u, 0u, 0u, 0, POW_TOLERANCE, 0},
+{ 779, 3245542663u, 799866606u, 3197637091u, 3924438208u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 780, 3191062890u, 2002049816u, 1077053447u, 2240354761u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 781, 3229006283u, 478939968u, 1097035749u, 1066716440u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 782, 3232473641u, 1653104725u, 1088548129u, 81977716u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 783, 3196861276u, 3899475018u, 3189694084u, 3330093036u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 784, 1089312583u, 2612450289u, 1079065127u, 603380842u, 2146435072u, 0u, 34, POW_TOLERANCE, 0},
+{ 785, 1100636791u, 3962735564u, 1101570429u, 1372490825u, 2146435072u, 0u, 34, POW_TOLERANCE, 0},
+{ 786, 1054806016u, 1479841439u, 1059312257u, 541504905u, 1072689504u, 3005345343u, 0, POW_TOLERANCE, 0},
+{ 787, 1078662178u, 2626148789u, 1057571099u, 4121656076u, 1072693449u, 2768405920u, 0, POW_TOLERANCE, 0},
+{ 788, 1081613389u, 1902560314u, 1043130231u, 3557671562u, 1072693248u, 90246344u, 0, POW_TOLERANCE, 0},
+{ 789, 3193829772u, 41779312u, 1081626342u, 831171823u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 790, 1058131100u, 1393168821u, 1066457405u, 1381616968u, 1072386902u, 1127776707u, 0, POW_TOLERANCE, 0},
+{ 791, 1072338141u, 3756584649u, 3222267229u, 1423157432u, 1073791756u, 1259701110u, 0, POW_TOLERANCE, 0},
+{ 792, 3254435674u, 1894912556u, 1042426694u, 155024547u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 793, 3195453512u, 35164295u, 3203391785u, 1037041084u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 794, 1084777479u, 3957875950u, 3232195211u, 1590756436u, 0u, 0u, 0, POW_TOLERANCE, 0},
+{ 795, 1068844322u, 1447585080u, 1071279485u, 1107922438u, 1071048925u, 1485581625u, 0, POW_TOLERANCE, 0},
+{ 796, 1046252518u, 981897615u, 1051856116u, 430357614u, 1072693208u, 2764068789u, 0, POW_TOLERANCE, 0},
+{ 797, 3227524215u, 395145384u, 3219821938u, 50586510u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 798, 1069775912u, 750827797u, 1082862669u, 230466783u, 0u, 0u, 0, POW_TOLERANCE, 0},
+{ 799, 1086668819u, 1365083575u, 3204848310u, 1700831722u, 1072692426u, 1496207054u, 0, POW_TOLERANCE, 0},
+{ 800, 3218090390u, 344241827u, 1071538935u, 2715566077u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 801, 3247582856u, 4069301823u, 3193208760u, 2949125229u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 802, 1103231387u, 3585711710u, 1065801594u, 2302229267u, 1072958472u, 3376559785u, 0, POW_TOLERANCE, 0},
+{ 803, 3194118956u, 709803845u, 1048741487u, 2296910194u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 804, 3193280779u, 744421179u, 1069302001u, 2659232829u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 805, 1092835968u, 1799949903u, 3192522886u, 4212149209u, 1072693247u, 2836158473u, 0, POW_TOLERANCE, 0},
+{ 806, 3206108502u, 145234164u, 3250614064u, 912384201u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 807, 3240510664u, 2784620507u, 1102812948u, 3531481022u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 808, 3251159663u, 383952592u, 3205659905u, 3633194728u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 809, 3203476252u, 3792395543u, 1070072378u, 3864816376u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 810, 3205316273u, 2115553675u, 1066288499u, 3538377867u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 811, 3252075185u, 1230026762u, 1090719723u, 440819880u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 812, 3194595076u, 2991290482u, 1096886719u, 1097971167u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 813, 1090048600u, 1098035020u, 3230900504u, 1479059095u, 0u, 0u, 0, POW_TOLERANCE, 0},
+{ 814, 3251056964u, 1719428427u, 3188631907u, 3707377409u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 815, 1053236165u, 3748932896u, 1084908557u, 1325384361u, 0u, 0u, 0, POW_TOLERANCE, 0},
+{ 816, 1084704076u, 3979168763u, 1057455255u, 2454615952u, 1072693623u, 3513101689u, 0, POW_TOLERANCE, 0},
+{ 817, 1053106984u, 1449164578u, 1056960316u, 1654931641u, 1072692424u, 3452932260u, 0, POW_TOLERANCE, 0},
+{ 818, 1071439010u, 2120487381u, 3226298974u, 2364226633u, 1143479176u, 908596309u, 0, POW_TOLERANCE, 0},
+{ 819, 1075071428u, 1074268944u, 1065730444u, 280016852u, 1072711491u, 3933800051u, 0, POW_TOLERANCE, 0},
+{ 820, 3200308256u, 3315127889u, 3236295594u, 2900924954u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 821, 3196425891u, 2246037502u, 1049691002u, 1496066550u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 822, 3193006859u, 4191285446u, 3217936236u, 2382392789u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 823, 1092833308u, 640099844u, 1042152237u, 2064279383u, 1072693248u, 104985487u, 0, POW_TOLERANCE, 0},
+{ 824, 1079913438u, 3468560824u, 1093251038u, 310958750u, 2146435072u, 0u, 34, POW_TOLERANCE, 0},
+{ 825, 1096788400u, 1413568905u, 1100941106u, 1627289946u, 2146435072u, 0u, 34, POW_TOLERANCE, 0},
+{ 826, 3191549550u, 3797143370u, 3195497539u, 3843275034u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 827, 3252077393u, 2806642640u, 3201943068u, 2515980718u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 828, 1086877316u, 632580632u, 1078673506u, 3259601317u, 1850494788u, 2499984423u, 0, POW_TOLERANCE, 0},
+{ 829, 3200980575u, 3309678799u, 1049337078u, 3056787074u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 830, 3221495289u, 2341164249u, 1080834967u, 2810890005u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 831, 1067019674u, 932124675u, 1093915797u, 662682630u, 0u, 0u, 0, POW_TOLERANCE, 0},
+{ 832, 3249230091u, 1367996113u, 3251723684u, 2974064663u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 833, 1080230731u, 323437999u, 1090499064u, 901457511u, 2146435072u, 0u, 34, POW_TOLERANCE, 0},
+{ 834, 3235778876u, 4184941840u, 3196770014u, 2458988443u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 835, 1087618284u, 2023065054u, 3211994098u, 2734612965u, 1072598307u, 3580358468u, 0, POW_TOLERANCE, 0},
+{ 836, 1064074694u, 3679267365u, 3237728785u, 1699558211u, 2146435072u, 0u, 34, POW_TOLERANCE, 0},
+{ 837, 1088079010u, 1826799031u, 1078709629u, 3986905229u, 1932203582u, 19627262u, 0, POW_TOLERANCE, 0},
+{ 838, 1052843785u, 351061688u, 3194386466u, 4105857588u, 1072693248u, 2469556788u, 0, POW_TOLERANCE, 0},
+{ 839, 1054128006u, 1365244058u, 1064457319u, 1452191426u, 1072581660u, 718583915u, 0, POW_TOLERANCE, 0},
+{ 840, 1064122385u, 2463030625u, 3215975031u, 3773488326u, 1073134140u, 172036208u, 0, POW_TOLERANCE, 0},
+{ 841, 3251276671u, 752664055u, 1065110394u, 1835931663u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 842, 1088045088u, 3496172149u, 1089617208u, 109068701u, 2146435072u, 0u, 34, POW_TOLERANCE, 0},
+{ 843, 3198135087u, 1636966254u, 1086098766u, 2016598298u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 844, 1050931318u, 3551516956u, 1097969102u, 1317953425u, 0u, 0u, 0, POW_TOLERANCE, 0},
+{ 845, 3229832217u, 2977627788u, 1045339018u, 516058480u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 846, 3237408578u, 3901731263u, 3189566462u, 32272932u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 847, 1077281796u, 1956025297u, 3246628529u, 3840733905u, 0u, 0u, 0, POW_TOLERANCE, 0},
+{ 848, 1099818036u, 561057891u, 3198494340u, 4271027193u, 1072693224u, 1147242094u, 0, POW_TOLERANCE, 0},
+{ 849, 3250929921u, 692989850u, 3242630588u, 2492225971u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 850, 3205479397u, 3439913962u, 1067477011u, 2973333638u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 851, 3213993989u, 877613377u, 1044917899u, 809672798u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 852, 3222171454u, 905426932u, 1046417457u, 1086320855u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 853, 3246346629u, 2645567288u, 1051258339u, 557182478u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 854, 3204057950u, 186287752u, 1061342054u, 4054003419u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 855, 1097266673u, 3506889716u, 3243866036u, 519056371u, 0u, 0u, 0, POW_TOLERANCE, 0},
+{ 856, 1042654053u, 2171898436u, 3246911982u, 1091500784u, 2146435072u, 0u, 34, POW_TOLERANCE, 0},
+{ 857, 3243647673u, 368493885u, 3222871893u, 1419055230u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 858, 1091950572u, 2010971245u, 3188804530u, 1518695799u, 1072693247u, 4179007047u, 0, POW_TOLERANCE, 0},
+{ 859, 3205426509u, 1239207795u, 1040192984u, 2199481342u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 860, 3210978637u, 4264613432u, 3203460972u, 3558930895u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 861, 1050299283u, 3772748958u, 3227667376u, 309688336u, 2146435072u, 0u, 34, POW_TOLERANCE, 0},
+{ 862, 3230743041u, 1077949160u, 1075769893u, 2405271377u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 863, 1091835152u, 3751608506u, 3232278094u, 930375071u, 0u, 0u, 0, POW_TOLERANCE, 0},
+{ 864, 3198617153u, 1518334131u, 3205247482u, 791756713u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 865, 1047317453u, 2825203170u, 3245054001u, 1822981827u, 2146435072u, 0u, 34, POW_TOLERANCE, 0},
+{ 866, 1100016363u, 514474738u, 1089072073u, 3300845441u, 2146435072u, 0u, 34, POW_TOLERANCE, 0},
+{ 867, 3216391250u, 247369460u, 3197320093u, 687450958u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 868, 1104161422u, 2722237629u, 1058272368u, 90602316u, 1072694909u, 4025013104u, 0, POW_TOLERANCE, 0},
+{ 869, 3208098435u, 1845900544u, 3231520830u, 3389751458u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 870, 3247535245u, 737689911u, 3195377751u, 3462616966u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 871, 3223538384u, 3620285831u, 1055501023u, 2708056059u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 872, 3219464996u, 4073430285u, 1056206159u, 172017902u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 873, 3212869638u, 2799176222u, 1052706894u, 4083892667u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 874, 3202279557u, 1562351330u, 1069705601u, 1247765260u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 875, 3232717299u, 51853475u, 3189080201u, 2783553144u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 876, 3219454353u, 3851781549u, 3241598113u, 514064046u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 877, 1100045965u, 934745487u, 3248182437u, 2798581921u, 0u, 0u, 0, POW_TOLERANCE, 0},
+{ 878, 3213082493u, 2948648757u, 3232177250u, 4278702895u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 879, 1072485724u, 4259101461u, 1061606772u, 84229920u, 1072693095u, 3143377223u, 0, POW_TOLERANCE, 0},
+{ 880, 3198075559u, 3891230598u, 1095924595u, 3049217547u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 881, 1077353053u, 3806018919u, 3243191216u, 280177341u, 0u, 0u, 0, POW_TOLERANCE, 0},
+{ 882, 1060624530u, 3900344258u, 1063647809u, 4206745890u, 1072649165u, 223733263u, 0, POW_TOLERANCE, 0},
+{ 883, 3227707336u, 2126253040u, 3207248026u, 808507485u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 884, 1086090317u, 3465685634u, 3230391053u, 3754958214u, 0u, 0u, 0, POW_TOLERANCE, 0},
+{ 885, 1102861084u, 461094531u, 1101110393u, 1316091396u, 2146435072u, 0u, 34, POW_TOLERANCE, 0},
+{ 886, 1064980314u, 4197635149u, 1091873113u, 1240127141u, 0u, 0u, 0, POW_TOLERANCE, 0},
+{ 887, 1074333893u, 118603800u, 1105304898u, 4291425557u, 2146435072u, 0u, 34, POW_TOLERANCE, 0},
+{ 888, 3213429165u, 3744663425u, 3212482771u, 953662066u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 889, 1085171305u, 3564196690u, 3228101916u, 904305212u, 0u, 0u, 0, POW_TOLERANCE, 0},
+{ 890, 1048333111u, 3566257266u, 3235138829u, 2734275140u, 2146435072u, 0u, 34, POW_TOLERANCE, 0},
+{ 891, 3243948477u, 606044282u, 3241318094u, 2446416887u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 892, 1041627284u, 2336116589u, 3197594053u, 2296925138u, 1072693255u, 2109886442u, 0, POW_TOLERANCE, 0},
+{ 893, 1058567659u, 907670625u, 3240769036u, 1827119006u, 2146435072u, 0u, 34, POW_TOLERANCE, 0},
+{ 894, 1044467183u, 2818710946u, 3246059905u, 553394170u, 2146435072u, 0u, 34, POW_TOLERANCE, 0},
+{ 895, 3189504094u, 4099522736u, 3232742168u, 3718083858u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 896, 1092371276u, 1059279404u, 1080245336u, 175941677u, 2146435072u, 0u, 34, POW_TOLERANCE, 0},
+{ 897, 1105189691u, 1650862428u, 1061816101u, 1723201723u, 1072711294u, 2736502671u, 0, POW_TOLERANCE, 0},
+{ 898, 3239012814u, 2462163405u, 3218946201u, 3876535372u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 899, 1084392886u, 495844137u, 1073721460u, 772777946u, 1095921736u, 2692187065u, 0, POW_TOLERANCE, 0},
+{ 900, 1052415330u, 458757721u, 3245680321u, 3609892707u, 2146435072u, 0u, 34, POW_TOLERANCE, 0},
+{ 901, 3193282956u, 2533012202u, 1079980803u, 3592268374u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 902, 3203364780u, 4108274117u, 1063045844u, 571992389u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 903, 1090567271u, 3541110973u, 1096296754u, 3118427427u, 2146435072u, 0u, 34, POW_TOLERANCE, 0},
+{ 904, 3193980043u, 1213941007u, 1105433735u, 2172963370u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 905, 1096853359u, 272190288u, 1095452370u, 4026581530u, 2146435072u, 0u, 34, POW_TOLERANCE, 0},
+{ 906, 1095583909u, 2843638672u, 1100510986u, 3190536898u, 2146435072u, 0u, 34, POW_TOLERANCE, 0},
+{ 907, 1083757094u, 2014317727u, 3247389683u, 2428462015u, 0u, 0u, 0, POW_TOLERANCE, 0},
+{ 908, 1093976717u, 688442200u, 1047852515u, 3035186380u, 1072693249u, 671648650u, 0, POW_TOLERANCE, 0},
+{ 909, 1076664212u, 1010095511u, 3221288076u, 405287991u, 1064119522u, 2232525786u, 0, POW_TOLERANCE, 0},
+{ 910, 3252294615u, 2983070435u, 1089546472u, 2907918480u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 911, 1082988121u, 81928569u, 1056007286u, 2740556321u, 1072693366u, 3874400185u, 0, POW_TOLERANCE, 0},
+{ 912, 1041110867u, 2076689028u, 1081558619u, 3039159031u, 0u, 0u, 0, POW_TOLERANCE, 0},
+{ 913, 1047307438u, 1376882094u, 3211003208u, 1296286481u, 1072737053u, 745790878u, 0, POW_TOLERANCE, 0},
+{ 914, 1080114314u, 744133164u, 3200943494u, 955832216u, 1072693215u, 1442312111u, 0, POW_TOLERANCE, 0},
+{ 915, 3226290326u, 176522478u, 1069999908u, 2891249491u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 916, 1043564602u, 3685851715u, 3187829932u, 2363997529u, 1072693248u, 46387677u, 0, POW_TOLERANCE, 0},
+{ 917, 1040244055u, 3974431579u, 1052505165u, 2589067816u, 1072693173u, 435912867u, 0, POW_TOLERANCE, 0},
+{ 918, 3191496789u, 3819109588u, 1048561488u, 969143351u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 919, 1072639397u, 4246896124u, 1104584799u, 1940097860u, 0u, 0u, 0, POW_TOLERANCE, 0},
+{ 920, 1048038468u, 2228686199u, 3220231833u, 777624847u, 1098461188u, 4021617747u, 0, POW_TOLERANCE, 0},
+{ 921, 3231467306u, 4189906558u, 3203004203u, 854242364u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 922, 1103910407u, 4089051094u, 3227282692u, 2693170723u, 0u, 0u, 0, POW_TOLERANCE, 0},
+{ 923, 1045883607u, 1278581412u, 3239296746u, 1774588717u, 2146435072u, 0u, 34, POW_TOLERANCE, 0},
+{ 924, 3222372686u, 1794845306u, 1104879344u, 4135865182u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 925, 1106449055u, 754938390u, 1061291430u, 2010786993u, 1072706220u, 2819987205u, 0, POW_TOLERANCE, 0},
+{ 926, 1073581409u, 2034303731u, 3240176537u, 314147356u, 0u, 0u, 0, POW_TOLERANCE, 0},
+{ 927, 3231449194u, 567588900u, 3195452230u, 1421366017u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 928, 3225089755u, 2708717091u, 1071975971u, 1364590470u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 929, 3252137283u, 3461956134u, 3207820115u, 1605709634u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 930, 1065302996u, 1497124553u, 1051715442u, 916736957u, 1072693238u, 1188491770u, 0, POW_TOLERANCE, 0},
+{ 931, 1058468363u, 834914365u, 1064667143u, 2839166298u, 1072592733u, 156344305u, 0, POW_TOLERANCE, 0},
+{ 932, 1057279949u, 2139295776u, 1062816721u, 914592523u, 1072660689u, 2198900733u, 0, POW_TOLERANCE, 0},
+{ 933, 3189636931u, 851569132u, 1058503154u, 1399378677u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 934, 3233537697u, 3897202342u, 3245382590u, 246600375u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 935, 3225460308u, 3620429520u, 1055627557u, 229305u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 936, 1083958833u, 3641997865u, 3206673888u, 93720614u, 1072691097u, 1919876975u, 0, POW_TOLERANCE, 0},
+{ 937, 3227808435u, 32766320u, 1062084905u, 3668443038u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 938, 3223298996u, 2039713492u, 3248699388u, 1346210821u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 939, 1093050016u, 1335820726u, 3191756860u, 1808427032u, 1072693247u, 3434842727u, 0, POW_TOLERANCE, 0},
+{ 940, 1061442763u, 650692001u, 1103515670u, 2253348763u, 0u, 0u, 0, POW_TOLERANCE, 0},
+{ 941, 3191395187u, 2372623300u, 3210185343u, 3200572848u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 942, 1100796069u, 762317532u, 3194595095u, 3192607437u, 1072693246u, 580489923u, 0, POW_TOLERANCE, 0},
+{ 943, 1062262701u, 217775356u, 3232827087u, 2969367386u, 2146435072u, 0u, 34, POW_TOLERANCE, 0},
+{ 944, 1057172551u, 3621353969u, 1077994795u, 3873976266u, 550449765u, 3209472673u, 0, POW_TOLERANCE, 0},
+{ 945, 1091301987u, 268372152u, 3221764390u, 3216978962u, 1016137106u, 101377175u, 0, POW_TOLERANCE, 0},
+{ 946, 3246437611u, 142942404u, 1075322987u, 1746449109u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 947, 1104006296u, 496534875u, 3254522293u, 2532372502u, 0u, 0u, 0, POW_TOLERANCE, 0},
+{ 948, 3250225541u, 2999955409u, 3222793392u, 1868977643u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 949, 1074319042u, 3353193428u, 3218469191u, 3326244297u, 1072018817u, 709267635u, 0, POW_TOLERANCE, 0},
+{ 950, 1068218799u, 73646871u, 3231442171u, 3711510104u, 2146435072u, 0u, 34, POW_TOLERANCE, 0},
+{ 951, 1090483524u, 218135177u, 3198908856u, 3082199105u, 1072693227u, 3412763353u, 0, POW_TOLERANCE, 0},
+{ 952, 1068068480u, 1061628117u, 3248859043u, 86776158u, 2146435072u, 0u, 34, POW_TOLERANCE, 0},
+{ 953, 3208484674u, 938869114u, 1087911145u, 2416710759u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 954, 1095576832u, 2970853959u, 3239543429u, 1887505029u, 0u, 0u, 0, POW_TOLERANCE, 0},
+{ 955, 3237728787u, 1337895935u, 1076463812u, 1172733328u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 956, 1049139928u, 1469010822u, 3229583535u, 551399515u, 2146435072u, 0u, 34, POW_TOLERANCE, 0},
+{ 957, 1074118123u, 1849711538u, 1049053713u, 1744276190u, 1072693248u, 781302795u, 0, POW_TOLERANCE, 0},
+{ 958, 3242138780u, 2976596113u, 3192137295u, 3033242648u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 959, 1098698481u, 876810930u, 3197470945u, 2571587447u, 1072693236u, 1757700973u, 0, POW_TOLERANCE, 0},
+{ 960, 3241770810u, 4007797282u, 3225853845u, 4069319648u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 961, 1047279982u, 3840538373u, 1043189552u, 3668774580u, 1072693247u, 3771060138u, 0, POW_TOLERANCE, 0},
+{ 962, 3217611704u, 200857661u, 3229758439u, 3359367736u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 963, 3248797869u, 111868139u, 3227902082u, 2366064003u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 964, 1044195166u, 3510904416u, 3222131653u, 3822770497u, 1178728909u, 3380778923u, 0, POW_TOLERANCE, 0},
+{ 965, 3242675715u, 789151814u, 1099269239u, 2958956055u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 966, 1084679320u, 722163228u, 1105524559u, 1534462169u, 2146435072u, 0u, 34, POW_TOLERANCE, 0},
+{ 967, 1046586062u, 2207037106u, 3208952465u, 1231254630u, 1072704740u, 1816538639u, 0, POW_TOLERANCE, 0},
+{ 968, 3197884060u, 3838689849u, 3198769679u, 1302617170u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 969, 1085938906u, 2527556476u, 3240373426u, 124352692u, 0u, 0u, 0, POW_TOLERANCE, 0},
+{ 970, 3199540805u, 3502371499u, 1043411944u, 4190072016u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 971, 1064676142u, 1798470077u, 3200116917u, 3421833729u, 1072693257u, 3430819252u, 0, POW_TOLERANCE, 0},
+{ 972, 3193514956u, 3653237931u, 3204255012u, 3683870669u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 973, 1053588582u, 376530104u, 1073853547u, 565755892u, 1030469750u, 395871138u, 0, POW_TOLERANCE, 0},
+{ 974, 3242503851u, 558292492u, 1051772749u, 4267873474u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 975, 3224772709u, 509637100u, 3212030069u, 215050379u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 976, 1092057101u, 3571665665u, 3188628584u, 757824767u, 1072693247u, 4191774567u, 0, POW_TOLERANCE, 0},
+{ 977, 3214799337u, 998858159u, 1063077962u, 436029885u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 978, 3205946965u, 996300405u, 3193842624u, 80548098u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 979, 3228848840u, 3876129407u, 3215332180u, 2226970413u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 980, 3237608953u, 200013509u, 3224552716u, 414878724u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 981, 3230617093u, 309319541u, 1048979765u, 1261662434u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 982, 1089252639u, 4062255924u, 3224274128u, 4289485681u, 819148193u, 4205109975u, 0, POW_TOLERANCE, 0},
+{ 983, 3236136084u, 1611969213u, 1053890378u, 3774617276u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 984, 1080412763u, 1752164782u, 3239587974u, 612223386u, 0u, 0u, 0, POW_TOLERANCE, 0},
+{ 985, 1041545782u, 2024044989u, 1074932678u, 3259111307u, 931484061u, 1205710889u, 0, POW_TOLERANCE, 0},
+{ 986, 1053207518u, 2564965629u, 1093571065u, 169360454u, 0u, 0u, 0, POW_TOLERANCE, 0},
+{ 987, 1089599090u, 1860101737u, 3191222372u, 1676437468u, 1072693247u, 3773506942u, 0, POW_TOLERANCE, 0},
+{ 988, 1059802968u, 588387057u, 3192103292u, 2495288012u, 1072693248u, 348956998u, 0, POW_TOLERANCE, 0},
+{ 989, 3193155705u, 659070058u, 1073095700u, 1393632068u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 990, 3217683263u, 4276187829u, 3217553330u, 1868253275u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 991, 3223220272u, 2085481575u, 3215994784u, 800910002u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 992, 1056934836u, 1950570756u, 3200582211u, 941022151u, 1072693275u, 1469141088u, 0, POW_TOLERANCE, 0},
+{ 993, 1057530368u, 2075610870u, 3250142022u, 3605152103u, 2146435072u, 0u, 34, POW_TOLERANCE, 0},
+{ 994, 3200839250u, 3792931748u, 3204857863u, 804393211u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 995, 3253646370u, 3430071177u, 3226288311u, 3652522729u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 996, 3201314702u, 236884699u, 3227874605u, 2193269825u, 2146959360u, 0u, 33, POW_TOLERANCE, 0},
+{ 997, 1064936593u, 2744231849u, 1046186036u, 771053722u, 1072693247u, 3123214080u, 0, POW_TOLERANCE, 0},
+{ 998, 1083996036u, 3000189819u, 1096500901u, 2057239777u, 2146435072u, 0u, 34, POW_TOLERANCE, 0},
+{ 999, 1093835581u, 205759408u, 3244643377u, 2702292618u, 0u, 0u, 0, POW_TOLERANCE, 0},
+
+
+// AUTOMATICALLY GENERATED VECTORS STOP
+
+};
+
+#endif // CYGONCE_LIBM_POW_H multiple inclusion protection
+
+// EOF pow.h
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/powf.c b/ecos/packages/language/c/libm/current/tests/vectors/powf.c
new file mode 100644
index 0000000..7ecb5e5
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/powf.c
@@ -0,0 +1,114 @@
+//===========================================================================
+//
+// pow.c
+//
+// Test of pow() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// Declarations for test system:
+//
+// TESTCASE_TYPE=CYG_TEST_MODULE
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include <cyg/infra/testcase.h> // Test infrastructure
+#include <math.h> // Header for this package
+#include <sys/ieeefp.h> // Cyg_libm_ieee_double_shape_type
+#include "vectors/vector_support_float.h"// extra support for math tests
+
+#include "vectors/powf.h"
+
+// FUNCTIONS
+
+static void
+test( CYG_ADDRWORD data )
+{
+ cyg_ucount32 vec_size;
+ cyg_bool ret;
+
+ vec_size = sizeof(pow_vec) / sizeof(Cyg_libm_test_float_vec_t);
+ ret = doTestVecFloat( (CYG_ADDRWORD) &powf, CYG_LIBM_TEST_VEC_FLOAT,
+ CYG_LIBM_TEST_VEC_FLOAT,
+ CYG_LIBM_TEST_VEC_FLOAT,
+ &pow_vec[0], vec_size );
+
+ if (ret==true) {
+ CYG_TEST_PASS("powf() is stable");
+ } // if
+ else {
+ CYG_TEST_FAIL("powf() failed tests");
+ } // else
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for Math "
+ "library powf() function");
+} // test()
+
+
+int
+main(int argc, char *argv[])
+{
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for Math library "
+ "pow() function");
+
+ START_TEST( test );
+
+ CYG_TEST_PASS_FINISH("Testing is not applicable to this configuration");
+
+} // main()
+
+
+// EOF pow.c
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/powf.h b/ecos/packages/language/c/libm/current/tests/vectors/powf.h
new file mode 100644
index 0000000..21ffa47
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/powf.h
@@ -0,0 +1,215 @@
+#ifndef CYGONCE_LIBM_POW_H
+#define CYGONCE_LIBM_POW_H
+//===========================================================================
+//
+// pow.h
+//
+// Test vectors for testing of pow() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage: #include "vectors/pow.h"
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include "vectors/vector_support_float.h"// extra support for math tests
+
+#define POW_TOLERANCE 2.0E-04
+
+static const Cyg_libm_test_float_vec_t pow_vec[] = {
+
+// AUTOMATICALLY GENERATED VECTORS START
+
+{0, 1198712763u, 919636942u, 1065353791u, 0, POW_TOLERANCE, 0},
+{1, 954173073u, 850531830u, 1065353213u, 0, POW_TOLERANCE, 0},
+{2, 1166191415u, 1018661564u, 1067076343u, 0, POW_TOLERANCE, 0},
+{3, 1167223673u, 846102364u, 1065353217u, 0, POW_TOLERANCE, 0},
+{4, 968192794u, 878547432u, 1065353188u, 0, POW_TOLERANCE, 0},
+{5, 1306460502u, 903489435u, 1065353488u, 0, POW_TOLERANCE, 0},
+{6, 941796645u, 886451963u, 1065353148u, 0, POW_TOLERANCE, 0},
+{7, 1143233714u, 1007268238u, 1065823341u, 0, POW_TOLERANCE, 0},
+{8, 1309289088u, 1019883016u, 1070767293u, 0, POW_TOLERANCE, 0},
+{9, 1238569473u, 873035665u, 1065353231u, 0, POW_TOLERANCE, 0},
+{10, 1142167709u, 1096445242u, 2119523639u, 0, POW_TOLERANCE, 0},
+{11, 982950501u, 982549888u, 1065228471u, 0, POW_TOLERANCE, 0},
+{12, 1142981585u, 1015602236u, 1066309943u, 0, POW_TOLERANCE, 0},
+{13, 1061834641u, 972388096u, 1065351367u, 0, POW_TOLERANCE, 0},
+{14, 1000611335u, 857599439u, 1065353213u, 0, POW_TOLERANCE, 0},
+{15, 822041816u, 898402905u, 1065352863u, 0, POW_TOLERANCE, 0},
+{16, 977281449u, 879922831u, 1065353189u, 0, POW_TOLERANCE, 0},
+{17, 1086198791u, 920125958u, 1065353312u, 0, POW_TOLERANCE, 0},
+{18, 1255152035u, 851754050u, 1065353219u, 0, POW_TOLERANCE, 0},
+{19, 1094190727u, 1056854532u, 1079464258u, 0, POW_TOLERANCE, 0},
+{20, 1294665325u, 991185677u, 1065721824u, 0, POW_TOLERANCE, 0},
+{21, 1036608591u, 805416536u, 1065353216u, 0, POW_TOLERANCE, 0},
+{22, 1325668223u, 970681762u, 1065429107u, 0, POW_TOLERANCE, 0},
+{23, 1092037607u, 1027330835u, 1066263156u, 0, POW_TOLERANCE, 0},
+{24, 1243664530u, 972879810u, 1065413269u, 0, POW_TOLERANCE, 0},
+{25, 950829092u, 929114193u, 1065351098u, 0, POW_TOLERANCE, 0},
+{26, 1030934236u, 1045139240u, 1058143257u, 0, POW_TOLERANCE, 0},
+{27, 1161858787u, 815362075u, 1065353216u, 0, POW_TOLERANCE, 0},
+{28, 1189120494u, 978961471u, 1065425061u, 0, POW_TOLERANCE, 0},
+{29, 1065798296u, 816191940u, 1065353216u, 0, POW_TOLERANCE, 0},
+{30, 1273397670u, 901308750u, 1065353415u, 0, POW_TOLERANCE, 0},
+{31, 1051773536u, 896271348u, 1065353200u, 0, POW_TOLERANCE, 0},
+{32, 1283624229u, 906796922u, 1065353533u, 0, POW_TOLERANCE, 0},
+{33, 970649315u, 1078286437u, 774321244u, 0, POW_TOLERANCE, 0},
+{34, 1279489061u, 1006049444u, 1066554775u, 0, POW_TOLERANCE, 0},
+{35, 1233171235u, 826460580u, 1065353216u, 0, POW_TOLERANCE, 0},
+{36, 1148920078u, 1007674793u, 1065878255u, 0, POW_TOLERANCE, 0},
+{37, 1000014431u, 831213088u, 1065353216u, 0, POW_TOLERANCE, 0},
+{38, 1234530539u, 1079988872u, 1656602122u, 0, POW_TOLERANCE, 0},
+{39, 1276853215u, 873199561u, 1065353235u, 0, POW_TOLERANCE, 0},
+{40, 1212717473u, 837873779u, 1065353217u, 0, POW_TOLERANCE, 0},
+{41, 1022211242u, 922124181u, 1065352780u, 0, POW_TOLERANCE, 0},
+{42, 1189421739u, 1056599002u, 1125718440u, 0, POW_TOLERANCE, 0},
+{43, 1034611395u, 882288581u, 1065353204u, 0, POW_TOLERANCE, 0},
+{44, 1314588083u, 856187848u, 1065353221u, 0, POW_TOLERANCE, 0},
+{45, 861266716u, 822172554u, 1065353215u, 0, POW_TOLERANCE, 0},
+{46, 1156767533u, 1088986462u, 1730804446u, 0, POW_TOLERANCE, 0},
+{47, 994934087u, 967678094u, 1065321222u, 0, POW_TOLERANCE, 0},
+{48, 918212457u, 1017468331u, 1061718387u, 0, POW_TOLERANCE, 0},
+{49, 959956547u, 876324728u, 1065353191u, 0, POW_TOLERANCE, 0},
+{50, 1206054701u, 826010009u, 1065353216u, 0, POW_TOLERANCE, 0},
+{51, 822524010u, 970745811u, 1065212397u, 0, POW_TOLERANCE, 0},
+{52, 1213609983u, 919983950u, 1065353874u, 0, POW_TOLERANCE, 0},
+{53, 1317696241u, 870681806u, 1065353235u, 0, POW_TOLERANCE, 0},
+{54, 1228636133u, 886552820u, 1065353262u, 0, POW_TOLERANCE, 0},
+{55, 1207246237u, 859223639u, 1065353220u, 0, POW_TOLERANCE, 0},
+{56, 1149651309u, 970030475u, 1065376643u, 0, POW_TOLERANCE, 0},
+{57, 943645710u, 852875779u, 1065353212u, 0, POW_TOLERANCE, 0},
+{58, 935847271u, 1067255804u, 906953987u, 0, POW_TOLERANCE, 0},
+{59, 1001823878u, 1016826861u, 1063778802u, 0, POW_TOLERANCE, 0},
+{60, 1009130212u, 1004302940u, 1064842908u, 0, POW_TOLERANCE, 0},
+{61, 1120261759u, 892210998u, 1065353241u, 0, POW_TOLERANCE, 0},
+{62, 1087750238u, 1099325523u, 1451348348u, 0, POW_TOLERANCE, 0},
+{63, 1186234578u, 858134374u, 1065353219u, 0, POW_TOLERANCE, 0},
+{64, 1331680743u, 1009396165u, 1067511672u, 0, POW_TOLERANCE, 0},
+{65, 847857044u, 894661023u, 1065352979u, 0, POW_TOLERANCE, 0},
+{66, 1270451568u, 928393353u, 1065355037u, 0, POW_TOLERANCE, 0},
+{67, 1171873518u, 954709738u, 1065361420u, 0, POW_TOLERANCE, 0},
+{68, 982612185u, 923582663u, 1065352258u, 0, POW_TOLERANCE, 0},
+{69, 1144755661u, 860947435u, 1065353219u, 0, POW_TOLERANCE, 0},
+{70, 840456845u, 1051585760u, 988879588u, 0, POW_TOLERANCE, 0},
+{71, 898467286u, 839254959u, 1065353214u, 0, POW_TOLERANCE, 0},
+{72, 871130681u, 905123007u, 1065352729u, 0, POW_TOLERANCE, 0},
+{73, 1153863660u, 1011991342u, 1066183352u, 0, POW_TOLERANCE, 0},
+{74, 849056171u, 910674398u, 1065352326u, 0, POW_TOLERANCE, 0},
+{75, 1250249095u, 1069023744u, 1330736323u, 0, POW_TOLERANCE, 0},
+{76, 1025404104u, 1066370251u, 1020631328u, 0, POW_TOLERANCE, 0},
+{77, 1099710167u, 887180181u, 1065353226u, 0, POW_TOLERANCE, 0},
+{78, 1253017688u, 942062372u, 1065358408u, 0, POW_TOLERANCE, 0},
+{79, 1266928623u, 811778614u, 1065353216u, 0, POW_TOLERANCE, 0},
+{80, 1152416724u, 962669179u, 1065366291u, 0, POW_TOLERANCE, 0},
+{81, 835770216u, 865469272u, 1065353194u, 0, POW_TOLERANCE, 0},
+{82, 1278946388u, 825129857u, 1065353216u, 0, POW_TOLERANCE, 0},
+{83, 1297190916u, 811863044u, 1065353216u, 0, POW_TOLERANCE, 0},
+{84, 1277649137u, 961171401u, 1065381745u, 0, POW_TOLERANCE, 0},
+{85, 1306520561u, 957302464u, 1065376134u, 0, POW_TOLERANCE, 0},
+{86, 808412264u, 941158192u, 1065340269u, 0, POW_TOLERANCE, 0},
+{87, 893449284u, 1052877339u, 1000054884u, 0, POW_TOLERANCE, 0},
+{88, 1043025031u, 987068973u, 1065304428u, 0, POW_TOLERANCE, 0},
+{89, 902318189u, 849277289u, 1065353212u, 0, POW_TOLERANCE, 0},
+{90, 1120888322u, 1086209113u, 1398810821u, 0, POW_TOLERANCE, 0},
+{91, 1040617590u, 1034835971u, 1062691293u, 0, POW_TOLERANCE, 0},
+{92, 823111402u, 877253523u, 1065353153u, 0, POW_TOLERANCE, 0},
+{93, 904255535u, 1019967545u, 1060640156u, 0, POW_TOLERANCE, 0},
+{94, 1039827284u, 1072928888u, 1016479294u, 0, POW_TOLERANCE, 0},
+{95, 1021564080u, 1064468397u, 1024039626u, 0, POW_TOLERANCE, 0},
+{96, 1133689539u, 1067460093u, 1150866472u, 0, POW_TOLERANCE, 0},
+{97, 954999730u, 969618597u, 1065294201u, 0, POW_TOLERANCE, 0},
+{98, 940437609u, 860372396u, 1065353208u, 0, POW_TOLERANCE, 0},
+{99, 1299683827u, 966031619u, 1065399368u, 0, POW_TOLERANCE, 0},
+{100, 1229268598u, 1066965677u, 1260934057u, 0, POW_TOLERANCE, 0},
+{101, 1246019790u, 850632217u, 1065353219u, 0, POW_TOLERANCE, 0},
+{102, 1015670780u, 1101217251u, 56180015u, 0, POW_TOLERANCE, 0},
+{103, 1156767169u, 1049756240u, 1091216627u, 0, POW_TOLERANCE, 0},
+{104, 1098662266u, 833740182u, 1065353216u, 0, POW_TOLERANCE, 0},
+{105, 927582555u, 947955456u, 1065341561u, 0, POW_TOLERANCE, 0},
+{106, 860108361u, 921064349u, 1065351270u, 0, POW_TOLERANCE, 0},
+{107, 1245702957u, 894348966u, 1065353313u, 0, POW_TOLERANCE, 0},
+{108, 922255363u, 958305289u, 1065323270u, 0, POW_TOLERANCE, 0},
+{109, 1113104661u, 944376032u, 1065354829u, 0, POW_TOLERANCE, 0},
+{110, 1136714348u, 828849087u, 1065353216u, 0, POW_TOLERANCE, 0},
+{111, 948856035u, 1015466475u, 1062902450u, 0, POW_TOLERANCE, 0},
+{112, 1034561811u, 1054043114u, 1052198635u, 0, POW_TOLERANCE, 0},
+{113, 853827378u, 898656161u, 1065352901u, 0, POW_TOLERANCE, 0},
+{114, 1309658335u, 1010219988u, 1067475014u, 0, POW_TOLERANCE, 0},
+{115, 1161439847u, 943449277u, 1065356223u, 0, POW_TOLERANCE, 0},
+{116, 908663107u, 939489763u, 1065346630u, 0, POW_TOLERANCE, 0},
+{117, 1084378658u, 1009650785u, 1065499167u, 0, POW_TOLERANCE, 0},
+{118, 1226473697u, 821025132u, 1065353216u, 0, POW_TOLERANCE, 0},
+{119, 916831283u, 999465787u, 1064460513u, 0, POW_TOLERANCE, 0},
+{120, 1317098613u, 949986176u, 1065366511u, 0, POW_TOLERANCE, 0},
+{121, 1063693032u, 976661408u, 1065351998u, 0, POW_TOLERANCE, 0},
+{122, 968803479u, 992989712u, 1065000552u, 0, POW_TOLERANCE, 0},
+{123, 1325324763u, 978336043u, 1065497589u, 0, POW_TOLERANCE, 0},
+{124, 1158950321u, 1073578913u, 1251181125u, 0, POW_TOLERANCE, 0},
+{125, 1235620969u, 866627358u, 1065353225u, 0, POW_TOLERANCE, 0},
+{126, 1147712200u, 931865525u, 1065354167u, 0, POW_TOLERANCE, 0},
+{127, 805759679u, 903848557u, 1065352617u, 0, POW_TOLERANCE, 0},
+{128, 1335399673u, 974138676u, 1065456997u, 0, POW_TOLERANCE, 0},
+{129, 1006231203u, 897530770u, 1065353138u, 0, POW_TOLERANCE, 0},
+{130, 951554138u, 1001144381u, 1064549096u, 0, POW_TOLERANCE, 0},
+{131, 942046828u, 986341002u, 1065092748u, 0, POW_TOLERANCE, 0},
+{132, 1076752219u, 876236939u, 1065353217u, 0, POW_TOLERANCE, 0},
+{133, 862047095u, 829323655u, 1065353215u, 0, POW_TOLERANCE, 0},
+{134, 912515889u, 1074635609u, 727565233u, 0, POW_TOLERANCE, 0},
+{135, 1003299981u, 853295521u, 1065353214u, 0, POW_TOLERANCE, 0}
+
+// AUTOMATICALLY GENERATED VECTORS STOP
+
+};
+
+#endif // CYGONCE_LIBM_POW_H multiple inclusion protection
+
+// EOF pow.h
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/remainderf.c b/ecos/packages/language/c/libm/current/tests/vectors/remainderf.c
new file mode 100644
index 0000000..0783f58
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/remainderf.c
@@ -0,0 +1,115 @@
+//===========================================================================
+//
+// remainderf.c
+//
+// Test of remainderf() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// Declarations for test system:
+//
+// TESTCASE_TYPE=CYG_TEST_MODULE
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include <cyg/infra/testcase.h> // Test infrastructure
+#include <math.h> // Header for this package
+#include <sys/ieeefp.h> // Cyg_libm_ieee_float_shape_type
+#include "vectors/vector_support_float.h"// extra support for math tests
+
+#include "vectors/remainderf.h"
+
+// FUNCTIONS
+
+static void
+test( CYG_ADDRWORD data )
+{
+ cyg_ucount32 vec_size;
+ cyg_bool ret;
+
+ vec_size = sizeof(remainderf_vec) / sizeof(Cyg_libm_test_float_vec_t);
+ ret = doTestVecFloat( (CYG_ADDRWORD) &remainderf, CYG_LIBM_TEST_VEC_FLOAT,
+ CYG_LIBM_TEST_VEC_FLOAT, CYG_LIBM_TEST_VEC_FLOAT,
+ &remainderf_vec[0], vec_size );
+
+ if (ret==true)
+ {
+ CYG_TEST_PASS("remainderf() is stable");
+ } // if
+ else
+ {
+ CYG_TEST_FAIL("remainderf() failed tests");
+ } // else
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for Math "
+ "library remainderf() function");
+} // test()
+
+
+int
+main(int argc, char *argv[])
+{
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for Math library "
+ "remainderf() function");
+
+ START_TEST( test );
+
+ CYG_TEST_PASS_FINISH("Testing is not applicable to this configuration");
+
+} // main()
+
+
+// EOF remainderf.c
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/remainderf.h b/ecos/packages/language/c/libm/current/tests/vectors/remainderf.h
new file mode 100644
index 0000000..1c7ca9e
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/remainderf.h
@@ -0,0 +1,2441 @@
+#ifndef CYGONCE_LIBM_SCABNF_H
+#define CYGONCE_LIBM_SCABNF_H
+//===========================================================================
+//
+// remainderf.h
+//
+// Test vectors for testing of remainderf() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage: #include "vectors/remainderf.h"
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include "vectors/vector_support_float.h"// extra support for math tests
+
+#define REMAINDERF_TOLERANCE 1.0E-04
+
+static const Cyg_libm_test_float_vec_t remainderf_vec[] = {
+
+// AUTOMATICALLY GENERATED VECTORS START
+
+{0, 3212836864u, 3212836864u, 2147483648u, 0, REMAINDERF_TOLERANCE, 0},
+{1, 3212836864u, 3211998003u, 3175926992u, 0, REMAINDERF_TOLERANCE, 0},
+{2, 3212836864u, 3211159142u, 3184315600u, 0, REMAINDERF_TOLERANCE, 0},
+{3, 3212836864u, 3210320282u, 3189348760u, 0, REMAINDERF_TOLERANCE, 0},
+{4, 3212836864u, 3209481421u, 3192704204u, 0, REMAINDERF_TOLERANCE, 0},
+{5, 3212836864u, 3208642560u, 3196059648u, 0, REMAINDERF_TOLERANCE, 0},
+{6, 3212836864u, 3207803699u, 3197737370u, 0, REMAINDERF_TOLERANCE, 0},
+{7, 3212836864u, 3206964838u, 1050253720u, 0, REMAINDERF_TOLERANCE, 0},
+{8, 3212836864u, 3206125978u, 1045220560u, 0, REMAINDERF_TOLERANCE, 0},
+{9, 3212836864u, 3205287117u, 1036831952u, 0, REMAINDERF_TOLERANCE, 0},
+{10, 3212836864u, 3204448256u, 2147483648u, 0, REMAINDERF_TOLERANCE, 0},
+{11, 3212836864u, 3202770534u, 3184315600u, 0, REMAINDERF_TOLERANCE, 0},
+{12, 3212836864u, 3201092813u, 3192704204u, 0, REMAINDERF_TOLERANCE, 0},
+{13, 3212836864u, 3199415091u, 1028443336u, 0, REMAINDERF_TOLERANCE, 0},
+{14, 3212836864u, 3197737370u, 3184315592u, 0, REMAINDERF_TOLERANCE, 0},
+{15, 3212836864u, 3196059648u, 2147483648u, 0, REMAINDERF_TOLERANCE, 0},
+{16, 3212836864u, 3192704205u, 847249408u, 0, REMAINDERF_TOLERANCE, 0},
+{17, 3212836864u, 3189348762u, 1028443352u, 0, REMAINDERF_TOLERANCE, 0},
+{18, 3212836864u, 3184315597u, 847249408u, 0, REMAINDERF_TOLERANCE, 0},
+{19, 3212836864u, 3175926989u, 847249408u, 0, REMAINDERF_TOLERANCE, 0},
+{20, 3212836864u, 632815616u, 2751463424u, 0, REMAINDERF_TOLERANCE, 0},
+{21, 3212836864u, 1028443341u, 847249408u, 0, REMAINDERF_TOLERANCE, 0},
+{22, 3212836864u, 1036831949u, 847249408u, 0, REMAINDERF_TOLERANCE, 0},
+{23, 3212836864u, 1041865114u, 1028443352u, 0, REMAINDERF_TOLERANCE, 0},
+{24, 3212836864u, 1045220557u, 847249408u, 0, REMAINDERF_TOLERANCE, 0},
+{25, 3212836864u, 1048576000u, 2147483648u, 0, REMAINDERF_TOLERANCE, 0},
+{26, 3212836864u, 1050253722u, 3184315592u, 0, REMAINDERF_TOLERANCE, 0},
+{27, 3212836864u, 1051931443u, 1028443336u, 0, REMAINDERF_TOLERANCE, 0},
+{28, 3212836864u, 1053609165u, 3192704204u, 0, REMAINDERF_TOLERANCE, 0},
+{29, 3212836864u, 1055286886u, 3184315600u, 0, REMAINDERF_TOLERANCE, 0},
+{30, 3212836864u, 1056964608u, 2147483648u, 0, REMAINDERF_TOLERANCE, 0},
+{31, 3212836864u, 1057803469u, 1036831952u, 0, REMAINDERF_TOLERANCE, 0},
+{32, 3212836864u, 1058642330u, 1045220560u, 0, REMAINDERF_TOLERANCE, 0},
+{33, 3212836864u, 1059481190u, 1050253720u, 0, REMAINDERF_TOLERANCE, 0},
+{34, 3212836864u, 1060320051u, 3197737370u, 0, REMAINDERF_TOLERANCE, 0},
+{35, 3212836864u, 1061158912u, 3196059648u, 0, REMAINDERF_TOLERANCE, 0},
+{36, 3212836864u, 1061997773u, 3192704204u, 0, REMAINDERF_TOLERANCE, 0},
+{37, 3212836864u, 1062836634u, 3189348760u, 0, REMAINDERF_TOLERANCE, 0},
+{38, 3212836864u, 1063675494u, 3184315600u, 0, REMAINDERF_TOLERANCE, 0},
+{39, 3212836864u, 1064514355u, 3175926992u, 0, REMAINDERF_TOLERANCE, 0},
+{40, 3211998003u, 3212836864u, 1028443344u, 0, REMAINDERF_TOLERANCE, 0},
+{41, 3211998003u, 3211998003u, 2147483648u, 0, REMAINDERF_TOLERANCE, 0},
+{42, 3211998003u, 3211159142u, 3175926992u, 0, REMAINDERF_TOLERANCE, 0},
+{43, 3211998003u, 3210320282u, 3184315592u, 0, REMAINDERF_TOLERANCE, 0},
+{44, 3211998003u, 3209481421u, 3189348760u, 0, REMAINDERF_TOLERANCE, 0},
+{45, 3211998003u, 3208642560u, 3192704204u, 0, REMAINDERF_TOLERANCE, 0},
+{46, 3211998003u, 3207803699u, 3196059648u, 0, REMAINDERF_TOLERANCE, 0},
+{47, 3211998003u, 3206964838u, 3197737370u, 0, REMAINDERF_TOLERANCE, 0},
+{48, 3211998003u, 3206125978u, 1048576002u, 0, REMAINDERF_TOLERANCE, 0},
+{49, 3211998003u, 3205287117u, 1041865116u, 0, REMAINDERF_TOLERANCE, 0},
+{50, 3211998003u, 3204448256u, 1028443344u, 0, REMAINDERF_TOLERANCE, 0},
+{51, 3211998003u, 3202770534u, 3175926992u, 0, REMAINDERF_TOLERANCE, 0},
+{52, 3211998003u, 3201092813u, 3189348760u, 0, REMAINDERF_TOLERANCE, 0},
+{53, 3211998003u, 3199415091u, 1036831948u, 0, REMAINDERF_TOLERANCE, 0},
+{54, 3211998003u, 3197737370u, 3175926976u, 0, REMAINDERF_TOLERANCE, 0},
+{55, 3211998003u, 3196059648u, 1028443344u, 0, REMAINDERF_TOLERANCE, 0},
+{56, 3211998003u, 3192704205u, 1028443348u, 0, REMAINDERF_TOLERANCE, 0},
+{57, 3211998003u, 3189348762u, 3175926976u, 0, REMAINDERF_TOLERANCE, 0},
+{58, 3211998003u, 3184315597u, 3175926982u, 0, REMAINDERF_TOLERANCE, 0},
+{59, 3211998003u, 3175926989u, 853540864u, 0, REMAINDERF_TOLERANCE, 0},
+{60, 3211998003u, 632815616u, 2771386368u, 0, REMAINDERF_TOLERANCE, 0},
+{61, 3211998003u, 1028443341u, 853540864u, 0, REMAINDERF_TOLERANCE, 0},
+{62, 3211998003u, 1036831949u, 3175926982u, 0, REMAINDERF_TOLERANCE, 0},
+{63, 3211998003u, 1041865114u, 3175926976u, 0, REMAINDERF_TOLERANCE, 0},
+{64, 3211998003u, 1045220557u, 1028443348u, 0, REMAINDERF_TOLERANCE, 0},
+{65, 3211998003u, 1048576000u, 1028443344u, 0, REMAINDERF_TOLERANCE, 0},
+{66, 3211998003u, 1050253722u, 3175926976u, 0, REMAINDERF_TOLERANCE, 0},
+{67, 3211998003u, 1051931443u, 1036831948u, 0, REMAINDERF_TOLERANCE, 0},
+{68, 3211998003u, 1053609165u, 3189348760u, 0, REMAINDERF_TOLERANCE, 0},
+{69, 3211998003u, 1055286886u, 3175926992u, 0, REMAINDERF_TOLERANCE, 0},
+{70, 3211998003u, 1056964608u, 1028443344u, 0, REMAINDERF_TOLERANCE, 0},
+{71, 3211998003u, 1057803469u, 1041865116u, 0, REMAINDERF_TOLERANCE, 0},
+{72, 3211998003u, 1058642330u, 1048576002u, 0, REMAINDERF_TOLERANCE, 0},
+{73, 3211998003u, 1059481190u, 3197737370u, 0, REMAINDERF_TOLERANCE, 0},
+{74, 3211998003u, 1060320051u, 3196059648u, 0, REMAINDERF_TOLERANCE, 0},
+{75, 3211998003u, 1061158912u, 3192704204u, 0, REMAINDERF_TOLERANCE, 0},
+{76, 3211998003u, 1061997773u, 3189348760u, 0, REMAINDERF_TOLERANCE, 0},
+{77, 3211998003u, 1062836634u, 3184315592u, 0, REMAINDERF_TOLERANCE, 0},
+{78, 3211998003u, 1063675494u, 3175926992u, 0, REMAINDERF_TOLERANCE, 0},
+{79, 3211998003u, 1064514355u, 2147483648u, 0, REMAINDERF_TOLERANCE, 0},
+{80, 3211159142u, 3212836864u, 1036831952u, 0, REMAINDERF_TOLERANCE, 0},
+{81, 3211159142u, 3211998003u, 1028443344u, 0, REMAINDERF_TOLERANCE, 0},
+{82, 3211159142u, 3211159142u, 2147483648u, 0, REMAINDERF_TOLERANCE, 0},
+{83, 3211159142u, 3210320282u, 3175926976u, 0, REMAINDERF_TOLERANCE, 0},
+{84, 3211159142u, 3209481421u, 3184315592u, 0, REMAINDERF_TOLERANCE, 0},
+{85, 3211159142u, 3208642560u, 3189348760u, 0, REMAINDERF_TOLERANCE, 0},
+{86, 3211159142u, 3207803699u, 3192704204u, 0, REMAINDERF_TOLERANCE, 0},
+{87, 3211159142u, 3206964838u, 3196059648u, 0, REMAINDERF_TOLERANCE, 0},
+{88, 3211159142u, 3206125978u, 3197737368u, 0, REMAINDERF_TOLERANCE, 0},
+{89, 3211159142u, 3205287117u, 1045220560u, 0, REMAINDERF_TOLERANCE, 0},
+{90, 3211159142u, 3204448256u, 1036831952u, 0, REMAINDERF_TOLERANCE, 0},
+{91, 3211159142u, 3202770534u, 2147483648u, 0, REMAINDERF_TOLERANCE, 0},
+{92, 3211159142u, 3201092813u, 3184315592u, 0, REMAINDERF_TOLERANCE, 0},
+{93, 3211159142u, 3199415091u, 1041865114u, 0, REMAINDERF_TOLERANCE, 0},
+{94, 3211159142u, 3197737370u, 864026624u, 0, REMAINDERF_TOLERANCE, 0},
+{95, 3211159142u, 3196059648u, 1036831952u, 0, REMAINDERF_TOLERANCE, 0},
+{96, 3211159142u, 3192704205u, 3184315592u, 0, REMAINDERF_TOLERANCE, 0},
+{97, 3211159142u, 3189348762u, 864026624u, 0, REMAINDERF_TOLERANCE, 0},
+{98, 3211159142u, 3184315597u, 857735168u, 0, REMAINDERF_TOLERANCE, 0},
+{99, 3211159142u, 3175926989u, 857735168u, 0, REMAINDERF_TOLERANCE, 0},
+{100, 3211159142u, 632815616u, 608174080u, 0, REMAINDERF_TOLERANCE, 0},
+{101, 3211159142u, 1028443341u, 857735168u, 0, REMAINDERF_TOLERANCE, 0},
+{102, 3211159142u, 1036831949u, 857735168u, 0, REMAINDERF_TOLERANCE, 0},
+{103, 3211159142u, 1041865114u, 864026624u, 0, REMAINDERF_TOLERANCE, 0},
+{104, 3211159142u, 1045220557u, 3184315592u, 0, REMAINDERF_TOLERANCE, 0},
+{105, 3211159142u, 1048576000u, 1036831952u, 0, REMAINDERF_TOLERANCE, 0},
+{106, 3211159142u, 1050253722u, 864026624u, 0, REMAINDERF_TOLERANCE, 0},
+{107, 3211159142u, 1051931443u, 1041865114u, 0, REMAINDERF_TOLERANCE, 0},
+{108, 3211159142u, 1053609165u, 3184315592u, 0, REMAINDERF_TOLERANCE, 0},
+{109, 3211159142u, 1055286886u, 2147483648u, 0, REMAINDERF_TOLERANCE, 0},
+{110, 3211159142u, 1056964608u, 1036831952u, 0, REMAINDERF_TOLERANCE, 0},
+{111, 3211159142u, 1057803469u, 1045220560u, 0, REMAINDERF_TOLERANCE, 0},
+{112, 3211159142u, 1058642330u, 3197737368u, 0, REMAINDERF_TOLERANCE, 0},
+{113, 3211159142u, 1059481190u, 3196059648u, 0, REMAINDERF_TOLERANCE, 0},
+{114, 3211159142u, 1060320051u, 3192704204u, 0, REMAINDERF_TOLERANCE, 0},
+{115, 3211159142u, 1061158912u, 3189348760u, 0, REMAINDERF_TOLERANCE, 0},
+{116, 3211159142u, 1061997773u, 3184315592u, 0, REMAINDERF_TOLERANCE, 0},
+{117, 3211159142u, 1062836634u, 3175926976u, 0, REMAINDERF_TOLERANCE, 0},
+{118, 3211159142u, 1063675494u, 2147483648u, 0, REMAINDERF_TOLERANCE, 0},
+{119, 3211159142u, 1064514355u, 1028443344u, 0, REMAINDERF_TOLERANCE, 0},
+{120, 3210320282u, 3212836864u, 1041865112u, 0, REMAINDERF_TOLERANCE, 0},
+{121, 3210320282u, 3211998003u, 1036831944u, 0, REMAINDERF_TOLERANCE, 0},
+{122, 3210320282u, 3211159142u, 1028443328u, 0, REMAINDERF_TOLERANCE, 0},
+{123, 3210320282u, 3210320282u, 2147483648u, 0, REMAINDERF_TOLERANCE, 0},
+{124, 3210320282u, 3209481421u, 3175926992u, 0, REMAINDERF_TOLERANCE, 0},
+{125, 3210320282u, 3208642560u, 3184315600u, 0, REMAINDERF_TOLERANCE, 0},
+{126, 3210320282u, 3207803699u, 3189348764u, 0, REMAINDERF_TOLERANCE, 0},
+{127, 3210320282u, 3206964838u, 3192704208u, 0, REMAINDERF_TOLERANCE, 0},
+{128, 3210320282u, 3206125978u, 3196059648u, 0, REMAINDERF_TOLERANCE, 0},
+{129, 3210320282u, 3205287117u, 1048576000u, 0, REMAINDERF_TOLERANCE, 0},
+{130, 3210320282u, 3204448256u, 1041865112u, 0, REMAINDERF_TOLERANCE, 0},
+{131, 3210320282u, 3202770534u, 1028443328u, 0, REMAINDERF_TOLERANCE, 0},
+{132, 3210320282u, 3201092813u, 3175926992u, 0, REMAINDERF_TOLERANCE, 0},
+{133, 3210320282u, 3199415091u, 3189348764u, 0, REMAINDERF_TOLERANCE, 0},
+{134, 3210320282u, 3197737370u, 1028443344u, 0, REMAINDERF_TOLERANCE, 0},
+{135, 3210320282u, 3196059648u, 3184315600u, 0, REMAINDERF_TOLERANCE, 0},
+{136, 3210320282u, 3192704205u, 3175926992u, 0, REMAINDERF_TOLERANCE, 0},
+{137, 3210320282u, 3189348762u, 1028443344u, 0, REMAINDERF_TOLERANCE, 0},
+{138, 3210320282u, 3184315597u, 1028443338u, 0, REMAINDERF_TOLERANCE, 0},
+{139, 3210320282u, 3175926989u, 2990538752u, 0, REMAINDERF_TOLERANCE, 0},
+{140, 3210320282u, 632815616u, 614465536u, 0, REMAINDERF_TOLERANCE, 0},
+{141, 3210320282u, 1028443341u, 2990538752u, 0, REMAINDERF_TOLERANCE, 0},
+{142, 3210320282u, 1036831949u, 1028443338u, 0, REMAINDERF_TOLERANCE, 0},
+{143, 3210320282u, 1041865114u, 1028443344u, 0, REMAINDERF_TOLERANCE, 0},
+{144, 3210320282u, 1045220557u, 3175926992u, 0, REMAINDERF_TOLERANCE, 0},
+{145, 3210320282u, 1048576000u, 3184315600u, 0, REMAINDERF_TOLERANCE, 0},
+{146, 3210320282u, 1050253722u, 1028443344u, 0, REMAINDERF_TOLERANCE, 0},
+{147, 3210320282u, 1051931443u, 3189348764u, 0, REMAINDERF_TOLERANCE, 0},
+{148, 3210320282u, 1053609165u, 3175926992u, 0, REMAINDERF_TOLERANCE, 0},
+{149, 3210320282u, 1055286886u, 1028443328u, 0, REMAINDERF_TOLERANCE, 0},
+{150, 3210320282u, 1056964608u, 1041865112u, 0, REMAINDERF_TOLERANCE, 0},
+{151, 3210320282u, 1057803469u, 1048576000u, 0, REMAINDERF_TOLERANCE, 0},
+{152, 3210320282u, 1058642330u, 3196059648u, 0, REMAINDERF_TOLERANCE, 0},
+{153, 3210320282u, 1059481190u, 3192704208u, 0, REMAINDERF_TOLERANCE, 0},
+{154, 3210320282u, 1060320051u, 3189348764u, 0, REMAINDERF_TOLERANCE, 0},
+{155, 3210320282u, 1061158912u, 3184315600u, 0, REMAINDERF_TOLERANCE, 0},
+{156, 3210320282u, 1061997773u, 3175926992u, 0, REMAINDERF_TOLERANCE, 0},
+{157, 3210320282u, 1062836634u, 2147483648u, 0, REMAINDERF_TOLERANCE, 0},
+{158, 3210320282u, 1063675494u, 1028443328u, 0, REMAINDERF_TOLERANCE, 0},
+{159, 3210320282u, 1064514355u, 1036831944u, 0, REMAINDERF_TOLERANCE, 0},
+{160, 3209481421u, 3212836864u, 1045220556u, 0, REMAINDERF_TOLERANCE, 0},
+{161, 3209481421u, 3211998003u, 1041865112u, 0, REMAINDERF_TOLERANCE, 0},
+{162, 3209481421u, 3211159142u, 1036831944u, 0, REMAINDERF_TOLERANCE, 0},
+{163, 3209481421u, 3210320282u, 1028443344u, 0, REMAINDERF_TOLERANCE, 0},
+{164, 3209481421u, 3209481421u, 2147483648u, 0, REMAINDERF_TOLERANCE, 0},
+{165, 3209481421u, 3208642560u, 3175926992u, 0, REMAINDERF_TOLERANCE, 0},
+{166, 3209481421u, 3207803699u, 3184315600u, 0, REMAINDERF_TOLERANCE, 0},
+{167, 3209481421u, 3206964838u, 3189348764u, 0, REMAINDERF_TOLERANCE, 0},
+{168, 3209481421u, 3206125978u, 3192704204u, 0, REMAINDERF_TOLERANCE, 0},
+{169, 3209481421u, 3205287117u, 3196059648u, 0, REMAINDERF_TOLERANCE, 0},
+{170, 3209481421u, 3204448256u, 1045220556u, 0, REMAINDERF_TOLERANCE, 0},
+{171, 3209481421u, 3202770534u, 1036831944u, 0, REMAINDERF_TOLERANCE, 0},
+{172, 3209481421u, 3201092813u, 2147483648u, 0, REMAINDERF_TOLERANCE, 0},
+{173, 3209481421u, 3199415091u, 3184315600u, 0, REMAINDERF_TOLERANCE, 0},
+{174, 3209481421u, 3197737370u, 1036831952u, 0, REMAINDERF_TOLERANCE, 0},
+{175, 3209481421u, 3196059648u, 3175926992u, 0, REMAINDERF_TOLERANCE, 0},
+{176, 3209481421u, 3192704205u, 2147483648u, 0, REMAINDERF_TOLERANCE, 0},
+{177, 3209481421u, 3189348762u, 3175926984u, 0, REMAINDERF_TOLERANCE, 0},
+{178, 3209481421u, 3184315597u, 2147483648u, 0, REMAINDERF_TOLERANCE, 0},
+{179, 3209481421u, 3175926989u, 2147483648u, 0, REMAINDERF_TOLERANCE, 0},
+{180, 3209481421u, 632815616u, 2759852032u, 0, REMAINDERF_TOLERANCE, 0},
+{181, 3209481421u, 1028443341u, 2147483648u, 0, REMAINDERF_TOLERANCE, 0},
+{182, 3209481421u, 1036831949u, 2147483648u, 0, REMAINDERF_TOLERANCE, 0},
+{183, 3209481421u, 1041865114u, 3175926984u, 0, REMAINDERF_TOLERANCE, 0},
+{184, 3209481421u, 1045220557u, 2147483648u, 0, REMAINDERF_TOLERANCE, 0},
+{185, 3209481421u, 1048576000u, 3175926992u, 0, REMAINDERF_TOLERANCE, 0},
+{186, 3209481421u, 1050253722u, 1036831952u, 0, REMAINDERF_TOLERANCE, 0},
+{187, 3209481421u, 1051931443u, 3184315600u, 0, REMAINDERF_TOLERANCE, 0},
+{188, 3209481421u, 1053609165u, 2147483648u, 0, REMAINDERF_TOLERANCE, 0},
+{189, 3209481421u, 1055286886u, 1036831944u, 0, REMAINDERF_TOLERANCE, 0},
+{190, 3209481421u, 1056964608u, 1045220556u, 0, REMAINDERF_TOLERANCE, 0},
+{191, 3209481421u, 1057803469u, 3196059648u, 0, REMAINDERF_TOLERANCE, 0},
+{192, 3209481421u, 1058642330u, 3192704204u, 0, REMAINDERF_TOLERANCE, 0},
+{193, 3209481421u, 1059481190u, 3189348764u, 0, REMAINDERF_TOLERANCE, 0},
+{194, 3209481421u, 1060320051u, 3184315600u, 0, REMAINDERF_TOLERANCE, 0},
+{195, 3209481421u, 1061158912u, 3175926992u, 0, REMAINDERF_TOLERANCE, 0},
+{196, 3209481421u, 1061997773u, 2147483648u, 0, REMAINDERF_TOLERANCE, 0},
+{197, 3209481421u, 1062836634u, 1028443344u, 0, REMAINDERF_TOLERANCE, 0},
+{198, 3209481421u, 1063675494u, 1036831944u, 0, REMAINDERF_TOLERANCE, 0},
+{199, 3209481421u, 1064514355u, 1041865112u, 0, REMAINDERF_TOLERANCE, 0},
+{200, 3208642560u, 3212836864u, 1048576000u, 0, REMAINDERF_TOLERANCE, 0},
+{201, 3208642560u, 3211998003u, 1045220556u, 0, REMAINDERF_TOLERANCE, 0},
+{202, 3208642560u, 3211159142u, 1041865112u, 0, REMAINDERF_TOLERANCE, 0},
+{203, 3208642560u, 3210320282u, 1036831952u, 0, REMAINDERF_TOLERANCE, 0},
+{204, 3208642560u, 3209481421u, 1028443344u, 0, REMAINDERF_TOLERANCE, 0},
+{205, 3208642560u, 3208642560u, 2147483648u, 0, REMAINDERF_TOLERANCE, 0},
+{206, 3208642560u, 3207803699u, 3175926992u, 0, REMAINDERF_TOLERANCE, 0},
+{207, 3208642560u, 3206964838u, 3184315600u, 0, REMAINDERF_TOLERANCE, 0},
+{208, 3208642560u, 3206125978u, 3189348760u, 0, REMAINDERF_TOLERANCE, 0},
+{209, 3208642560u, 3205287117u, 3192704204u, 0, REMAINDERF_TOLERANCE, 0},
+{210, 3208642560u, 3204448256u, 1048576000u, 0, REMAINDERF_TOLERANCE, 0},
+{211, 3208642560u, 3202770534u, 1041865112u, 0, REMAINDERF_TOLERANCE, 0},
+{212, 3208642560u, 3201092813u, 1028443344u, 0, REMAINDERF_TOLERANCE, 0},
+{213, 3208642560u, 3199415091u, 3175926992u, 0, REMAINDERF_TOLERANCE, 0},
+{214, 3208642560u, 3197737370u, 3189348760u, 0, REMAINDERF_TOLERANCE, 0},
+{215, 3208642560u, 3196059648u, 2147483648u, 0, REMAINDERF_TOLERANCE, 0},
+{216, 3208642560u, 3192704205u, 1028443344u, 0, REMAINDERF_TOLERANCE, 0},
+{217, 3208642560u, 3189348762u, 855638016u, 0, REMAINDERF_TOLERANCE, 0},
+{218, 3208642560u, 3184315597u, 3175926986u, 0, REMAINDERF_TOLERANCE, 0},
+{219, 3208642560u, 3175926989u, 843055104u, 0, REMAINDERF_TOLERANCE, 0},
+{220, 3208642560u, 632815616u, 622854144u, 0, REMAINDERF_TOLERANCE, 0},
+{221, 3208642560u, 1028443341u, 843055104u, 0, REMAINDERF_TOLERANCE, 0},
+{222, 3208642560u, 1036831949u, 3175926986u, 0, REMAINDERF_TOLERANCE, 0},
+{223, 3208642560u, 1041865114u, 855638016u, 0, REMAINDERF_TOLERANCE, 0},
+{224, 3208642560u, 1045220557u, 1028443344u, 0, REMAINDERF_TOLERANCE, 0},
+{225, 3208642560u, 1048576000u, 2147483648u, 0, REMAINDERF_TOLERANCE, 0},
+{226, 3208642560u, 1050253722u, 3189348760u, 0, REMAINDERF_TOLERANCE, 0},
+{227, 3208642560u, 1051931443u, 3175926992u, 0, REMAINDERF_TOLERANCE, 0},
+{228, 3208642560u, 1053609165u, 1028443344u, 0, REMAINDERF_TOLERANCE, 0},
+{229, 3208642560u, 1055286886u, 1041865112u, 0, REMAINDERF_TOLERANCE, 0},
+{230, 3208642560u, 1056964608u, 1048576000u, 0, REMAINDERF_TOLERANCE, 0},
+{231, 3208642560u, 1057803469u, 3192704204u, 0, REMAINDERF_TOLERANCE, 0},
+{232, 3208642560u, 1058642330u, 3189348760u, 0, REMAINDERF_TOLERANCE, 0},
+{233, 3208642560u, 1059481190u, 3184315600u, 0, REMAINDERF_TOLERANCE, 0},
+{234, 3208642560u, 1060320051u, 3175926992u, 0, REMAINDERF_TOLERANCE, 0},
+{235, 3208642560u, 1061158912u, 2147483648u, 0, REMAINDERF_TOLERANCE, 0},
+{236, 3208642560u, 1061997773u, 1028443344u, 0, REMAINDERF_TOLERANCE, 0},
+{237, 3208642560u, 1062836634u, 1036831952u, 0, REMAINDERF_TOLERANCE, 0},
+{238, 3208642560u, 1063675494u, 1041865112u, 0, REMAINDERF_TOLERANCE, 0},
+{239, 3208642560u, 1064514355u, 1045220556u, 0, REMAINDERF_TOLERANCE, 0},
+{240, 3207803699u, 3212836864u, 1050253722u, 0, REMAINDERF_TOLERANCE, 0},
+{241, 3207803699u, 3211998003u, 1048576000u, 0, REMAINDERF_TOLERANCE, 0},
+{242, 3207803699u, 3211159142u, 1045220556u, 0, REMAINDERF_TOLERANCE, 0},
+{243, 3207803699u, 3210320282u, 1041865116u, 0, REMAINDERF_TOLERANCE, 0},
+{244, 3207803699u, 3209481421u, 1036831952u, 0, REMAINDERF_TOLERANCE, 0},
+{245, 3207803699u, 3208642560u, 1028443344u, 0, REMAINDERF_TOLERANCE, 0},
+{246, 3207803699u, 3207803699u, 2147483648u, 0, REMAINDERF_TOLERANCE, 0},
+{247, 3207803699u, 3206964838u, 3175926992u, 0, REMAINDERF_TOLERANCE, 0},
+{248, 3207803699u, 3206125978u, 3184315592u, 0, REMAINDERF_TOLERANCE, 0},
+{249, 3207803699u, 3205287117u, 3189348760u, 0, REMAINDERF_TOLERANCE, 0},
+{250, 3207803699u, 3204448256u, 3192704204u, 0, REMAINDERF_TOLERANCE, 0},
+{251, 3207803699u, 3202770534u, 1045220556u, 0, REMAINDERF_TOLERANCE, 0},
+{252, 3207803699u, 3201092813u, 1036831952u, 0, REMAINDERF_TOLERANCE, 0},
+{253, 3207803699u, 3199415091u, 2147483648u, 0, REMAINDERF_TOLERANCE, 0},
+{254, 3207803699u, 3197737370u, 3184315592u, 0, REMAINDERF_TOLERANCE, 0},
+{255, 3207803699u, 3196059648u, 1028443344u, 0, REMAINDERF_TOLERANCE, 0},
+{256, 3207803699u, 3192704205u, 3184315594u, 0, REMAINDERF_TOLERANCE, 0},
+{257, 3207803699u, 3189348762u, 1028443352u, 0, REMAINDERF_TOLERANCE, 0},
+{258, 3207803699u, 3184315597u, 851443712u, 0, REMAINDERF_TOLERANCE, 0},
+{259, 3207803699u, 3175926989u, 851443712u, 0, REMAINDERF_TOLERANCE, 0},
+{260, 3207803699u, 632815616u, 595591168u, 0, REMAINDERF_TOLERANCE, 0},
+{261, 3207803699u, 1028443341u, 851443712u, 0, REMAINDERF_TOLERANCE, 0},
+{262, 3207803699u, 1036831949u, 851443712u, 0, REMAINDERF_TOLERANCE, 0},
+{263, 3207803699u, 1041865114u, 1028443352u, 0, REMAINDERF_TOLERANCE, 0},
+{264, 3207803699u, 1045220557u, 3184315594u, 0, REMAINDERF_TOLERANCE, 0},
+{265, 3207803699u, 1048576000u, 1028443344u, 0, REMAINDERF_TOLERANCE, 0},
+{266, 3207803699u, 1050253722u, 3184315592u, 0, REMAINDERF_TOLERANCE, 0},
+{267, 3207803699u, 1051931443u, 2147483648u, 0, REMAINDERF_TOLERANCE, 0},
+{268, 3207803699u, 1053609165u, 1036831952u, 0, REMAINDERF_TOLERANCE, 0},
+{269, 3207803699u, 1055286886u, 1045220556u, 0, REMAINDERF_TOLERANCE, 0},
+{270, 3207803699u, 1056964608u, 3192704204u, 0, REMAINDERF_TOLERANCE, 0},
+{271, 3207803699u, 1057803469u, 3189348760u, 0, REMAINDERF_TOLERANCE, 0},
+{272, 3207803699u, 1058642330u, 3184315592u, 0, REMAINDERF_TOLERANCE, 0},
+{273, 3207803699u, 1059481190u, 3175926992u, 0, REMAINDERF_TOLERANCE, 0},
+{274, 3207803699u, 1060320051u, 2147483648u, 0, REMAINDERF_TOLERANCE, 0},
+{275, 3207803699u, 1061158912u, 1028443344u, 0, REMAINDERF_TOLERANCE, 0},
+{276, 3207803699u, 1061997773u, 1036831952u, 0, REMAINDERF_TOLERANCE, 0},
+{277, 3207803699u, 1062836634u, 1041865116u, 0, REMAINDERF_TOLERANCE, 0},
+{278, 3207803699u, 1063675494u, 1045220556u, 0, REMAINDERF_TOLERANCE, 0},
+{279, 3207803699u, 1064514355u, 1048576000u, 0, REMAINDERF_TOLERANCE, 0},
+{280, 3206964838u, 3212836864u, 1051931444u, 0, REMAINDERF_TOLERANCE, 0},
+{281, 3206964838u, 3211998003u, 1050253722u, 0, REMAINDERF_TOLERANCE, 0},
+{282, 3206964838u, 3211159142u, 1048576000u, 0, REMAINDERF_TOLERANCE, 0},
+{283, 3206964838u, 3210320282u, 1045220560u, 0, REMAINDERF_TOLERANCE, 0},
+{284, 3206964838u, 3209481421u, 1041865116u, 0, REMAINDERF_TOLERANCE, 0},
+{285, 3206964838u, 3208642560u, 1036831952u, 0, REMAINDERF_TOLERANCE, 0},
+{286, 3206964838u, 3207803699u, 1028443344u, 0, REMAINDERF_TOLERANCE, 0},
+{287, 3206964838u, 3206964838u, 2147483648u, 0, REMAINDERF_TOLERANCE, 0},
+{288, 3206964838u, 3206125978u, 3175926976u, 0, REMAINDERF_TOLERANCE, 0},
+{289, 3206964838u, 3205287117u, 3184315592u, 0, REMAINDERF_TOLERANCE, 0},
+{290, 3206964838u, 3204448256u, 3189348760u, 0, REMAINDERF_TOLERANCE, 0},
+{291, 3206964838u, 3202770534u, 3192704204u, 0, REMAINDERF_TOLERANCE, 0},
+{292, 3206964838u, 3201092813u, 1041865116u, 0, REMAINDERF_TOLERANCE, 0},
+{293, 3206964838u, 3199415091u, 1028443344u, 0, REMAINDERF_TOLERANCE, 0},
+{294, 3206964838u, 3197737370u, 3175926976u, 0, REMAINDERF_TOLERANCE, 0},
+{295, 3206964838u, 3196059648u, 1036831952u, 0, REMAINDERF_TOLERANCE, 0},
+{296, 3206964838u, 3192704205u, 3175926980u, 0, REMAINDERF_TOLERANCE, 0},
+{297, 3206964838u, 3189348762u, 3175926976u, 0, REMAINDERF_TOLERANCE, 0},
+{298, 3206964838u, 3184315597u, 3175926980u, 0, REMAINDERF_TOLERANCE, 0},
+{299, 3206964838u, 3175926989u, 856686592u, 0, REMAINDERF_TOLERANCE, 0},
+{300, 3206964838u, 632815616u, 2768240640u, 0, REMAINDERF_TOLERANCE, 0},
+{301, 3206964838u, 1028443341u, 856686592u, 0, REMAINDERF_TOLERANCE, 0},
+{302, 3206964838u, 1036831949u, 3175926980u, 0, REMAINDERF_TOLERANCE, 0},
+{303, 3206964838u, 1041865114u, 3175926976u, 0, REMAINDERF_TOLERANCE, 0},
+{304, 3206964838u, 1045220557u, 3175926980u, 0, REMAINDERF_TOLERANCE, 0},
+{305, 3206964838u, 1048576000u, 1036831952u, 0, REMAINDERF_TOLERANCE, 0},
+{306, 3206964838u, 1050253722u, 3175926976u, 0, REMAINDERF_TOLERANCE, 0},
+{307, 3206964838u, 1051931443u, 1028443344u, 0, REMAINDERF_TOLERANCE, 0},
+{308, 3206964838u, 1053609165u, 1041865116u, 0, REMAINDERF_TOLERANCE, 0},
+{309, 3206964838u, 1055286886u, 3192704204u, 0, REMAINDERF_TOLERANCE, 0},
+{310, 3206964838u, 1056964608u, 3189348760u, 0, REMAINDERF_TOLERANCE, 0},
+{311, 3206964838u, 1057803469u, 3184315592u, 0, REMAINDERF_TOLERANCE, 0},
+{312, 3206964838u, 1058642330u, 3175926976u, 0, REMAINDERF_TOLERANCE, 0},
+{313, 3206964838u, 1059481190u, 2147483648u, 0, REMAINDERF_TOLERANCE, 0},
+{314, 3206964838u, 1060320051u, 1028443344u, 0, REMAINDERF_TOLERANCE, 0},
+{315, 3206964838u, 1061158912u, 1036831952u, 0, REMAINDERF_TOLERANCE, 0},
+{316, 3206964838u, 1061997773u, 1041865116u, 0, REMAINDERF_TOLERANCE, 0},
+{317, 3206964838u, 1062836634u, 1045220560u, 0, REMAINDERF_TOLERANCE, 0},
+{318, 3206964838u, 1063675494u, 1048576000u, 0, REMAINDERF_TOLERANCE, 0},
+{319, 3206964838u, 1064514355u, 1050253722u, 0, REMAINDERF_TOLERANCE, 0},
+{320, 3206125978u, 3212836864u, 1053609164u, 0, REMAINDERF_TOLERANCE, 0},
+{321, 3206125978u, 3211998003u, 1051931442u, 0, REMAINDERF_TOLERANCE, 0},
+{322, 3206125978u, 3211159142u, 1050253720u, 0, REMAINDERF_TOLERANCE, 0},
+{323, 3206125978u, 3210320282u, 1048576000u, 0, REMAINDERF_TOLERANCE, 0},
+{324, 3206125978u, 3209481421u, 1045220556u, 0, REMAINDERF_TOLERANCE, 0},
+{325, 3206125978u, 3208642560u, 1041865112u, 0, REMAINDERF_TOLERANCE, 0},
+{326, 3206125978u, 3207803699u, 1036831944u, 0, REMAINDERF_TOLERANCE, 0},
+{327, 3206125978u, 3206964838u, 1028443328u, 0, REMAINDERF_TOLERANCE, 0},
+{328, 3206125978u, 3206125978u, 2147483648u, 0, REMAINDERF_TOLERANCE, 0},
+{329, 3206125978u, 3205287117u, 3175926992u, 0, REMAINDERF_TOLERANCE, 0},
+{330, 3206125978u, 3204448256u, 3184315600u, 0, REMAINDERF_TOLERANCE, 0},
+{331, 3206125978u, 3202770534u, 3189348764u, 0, REMAINDERF_TOLERANCE, 0},
+{332, 3206125978u, 3201092813u, 1045220556u, 0, REMAINDERF_TOLERANCE, 0},
+{333, 3206125978u, 3199415091u, 1036831944u, 0, REMAINDERF_TOLERANCE, 0},
+{334, 3206125978u, 3197737370u, 2147483648u, 0, REMAINDERF_TOLERANCE, 0},
+{335, 3206125978u, 3196059648u, 3184315600u, 0, REMAINDERF_TOLERANCE, 0},
+{336, 3206125978u, 3192704205u, 2994733056u, 0, REMAINDERF_TOLERANCE, 0},
+{337, 3206125978u, 3189348762u, 2147483648u, 0, REMAINDERF_TOLERANCE, 0},
+{338, 3206125978u, 3184315597u, 2994733056u, 0, REMAINDERF_TOLERANCE, 0},
+{339, 3206125978u, 3175926989u, 2994733056u, 0, REMAINDERF_TOLERANCE, 0},
+{340, 3206125978u, 632815616u, 2764046336u, 0, REMAINDERF_TOLERANCE, 0},
+{341, 3206125978u, 1028443341u, 2994733056u, 0, REMAINDERF_TOLERANCE, 0},
+{342, 3206125978u, 1036831949u, 2994733056u, 0, REMAINDERF_TOLERANCE, 0},
+{343, 3206125978u, 1041865114u, 2147483648u, 0, REMAINDERF_TOLERANCE, 0},
+{344, 3206125978u, 1045220557u, 2994733056u, 0, REMAINDERF_TOLERANCE, 0},
+{345, 3206125978u, 1048576000u, 3184315600u, 0, REMAINDERF_TOLERANCE, 0},
+{346, 3206125978u, 1050253722u, 2147483648u, 0, REMAINDERF_TOLERANCE, 0},
+{347, 3206125978u, 1051931443u, 1036831944u, 0, REMAINDERF_TOLERANCE, 0},
+{348, 3206125978u, 1053609165u, 1045220556u, 0, REMAINDERF_TOLERANCE, 0},
+{349, 3206125978u, 1055286886u, 3189348764u, 0, REMAINDERF_TOLERANCE, 0},
+{350, 3206125978u, 1056964608u, 3184315600u, 0, REMAINDERF_TOLERANCE, 0},
+{351, 3206125978u, 1057803469u, 3175926992u, 0, REMAINDERF_TOLERANCE, 0},
+{352, 3206125978u, 1058642330u, 2147483648u, 0, REMAINDERF_TOLERANCE, 0},
+{353, 3206125978u, 1059481190u, 1028443328u, 0, REMAINDERF_TOLERANCE, 0},
+{354, 3206125978u, 1060320051u, 1036831944u, 0, REMAINDERF_TOLERANCE, 0},
+{355, 3206125978u, 1061158912u, 1041865112u, 0, REMAINDERF_TOLERANCE, 0},
+{356, 3206125978u, 1061997773u, 1045220556u, 0, REMAINDERF_TOLERANCE, 0},
+{357, 3206125978u, 1062836634u, 1048576000u, 0, REMAINDERF_TOLERANCE, 0},
+{358, 3206125978u, 1063675494u, 1050253720u, 0, REMAINDERF_TOLERANCE, 0},
+{359, 3206125978u, 1064514355u, 1051931442u, 0, REMAINDERF_TOLERANCE, 0},
+{360, 3205287117u, 3212836864u, 1055286886u, 0, REMAINDERF_TOLERANCE, 0},
+{361, 3205287117u, 3211998003u, 1053609164u, 0, REMAINDERF_TOLERANCE, 0},
+{362, 3205287117u, 3211159142u, 1051931442u, 0, REMAINDERF_TOLERANCE, 0},
+{363, 3205287117u, 3210320282u, 1050253722u, 0, REMAINDERF_TOLERANCE, 0},
+{364, 3205287117u, 3209481421u, 1048576000u, 0, REMAINDERF_TOLERANCE, 0},
+{365, 3205287117u, 3208642560u, 1045220556u, 0, REMAINDERF_TOLERANCE, 0},
+{366, 3205287117u, 3207803699u, 1041865112u, 0, REMAINDERF_TOLERANCE, 0},
+{367, 3205287117u, 3206964838u, 1036831944u, 0, REMAINDERF_TOLERANCE, 0},
+{368, 3205287117u, 3206125978u, 1028443344u, 0, REMAINDERF_TOLERANCE, 0},
+{369, 3205287117u, 3205287117u, 2147483648u, 0, REMAINDERF_TOLERANCE, 0},
+{370, 3205287117u, 3204448256u, 3175926992u, 0, REMAINDERF_TOLERANCE, 0},
+{371, 3205287117u, 3202770534u, 3184315600u, 0, REMAINDERF_TOLERANCE, 0},
+{372, 3205287117u, 3201092813u, 3189348762u, 0, REMAINDERF_TOLERANCE, 0},
+{373, 3205287117u, 3199415091u, 1041865112u, 0, REMAINDERF_TOLERANCE, 0},
+{374, 3205287117u, 3197737370u, 1028443344u, 0, REMAINDERF_TOLERANCE, 0},
+{375, 3205287117u, 3196059648u, 3175926992u, 0, REMAINDERF_TOLERANCE, 0},
+{376, 3205287117u, 3192704205u, 1028443340u, 0, REMAINDERF_TOLERANCE, 0},
+{377, 3205287117u, 3189348762u, 1028443344u, 0, REMAINDERF_TOLERANCE, 0},
+{378, 3205287117u, 3184315597u, 1028443340u, 0, REMAINDERF_TOLERANCE, 0},
+{379, 3205287117u, 3175926989u, 2977955840u, 0, REMAINDERF_TOLERANCE, 0},
+{380, 3205287117u, 632815616u, 620756992u, 0, REMAINDERF_TOLERANCE, 0},
+{381, 3205287117u, 1028443341u, 2977955840u, 0, REMAINDERF_TOLERANCE, 0},
+{382, 3205287117u, 1036831949u, 1028443340u, 0, REMAINDERF_TOLERANCE, 0},
+{383, 3205287117u, 1041865114u, 1028443344u, 0, REMAINDERF_TOLERANCE, 0},
+{384, 3205287117u, 1045220557u, 1028443340u, 0, REMAINDERF_TOLERANCE, 0},
+{385, 3205287117u, 1048576000u, 3175926992u, 0, REMAINDERF_TOLERANCE, 0},
+{386, 3205287117u, 1050253722u, 1028443344u, 0, REMAINDERF_TOLERANCE, 0},
+{387, 3205287117u, 1051931443u, 1041865112u, 0, REMAINDERF_TOLERANCE, 0},
+{388, 3205287117u, 1053609165u, 3189348762u, 0, REMAINDERF_TOLERANCE, 0},
+{389, 3205287117u, 1055286886u, 3184315600u, 0, REMAINDERF_TOLERANCE, 0},
+{390, 3205287117u, 1056964608u, 3175926992u, 0, REMAINDERF_TOLERANCE, 0},
+{391, 3205287117u, 1057803469u, 2147483648u, 0, REMAINDERF_TOLERANCE, 0},
+{392, 3205287117u, 1058642330u, 1028443344u, 0, REMAINDERF_TOLERANCE, 0},
+{393, 3205287117u, 1059481190u, 1036831944u, 0, REMAINDERF_TOLERANCE, 0},
+{394, 3205287117u, 1060320051u, 1041865112u, 0, REMAINDERF_TOLERANCE, 0},
+{395, 3205287117u, 1061158912u, 1045220556u, 0, REMAINDERF_TOLERANCE, 0},
+{396, 3205287117u, 1061997773u, 1048576000u, 0, REMAINDERF_TOLERANCE, 0},
+{397, 3205287117u, 1062836634u, 1050253722u, 0, REMAINDERF_TOLERANCE, 0},
+{398, 3205287117u, 1063675494u, 1051931442u, 0, REMAINDERF_TOLERANCE, 0},
+{399, 3205287117u, 1064514355u, 1053609164u, 0, REMAINDERF_TOLERANCE, 0},
+{400, 3204448256u, 3212836864u, 3204448256u, 0, REMAINDERF_TOLERANCE, 0},
+{401, 3204448256u, 3211998003u, 1055286886u, 0, REMAINDERF_TOLERANCE, 0},
+{402, 3204448256u, 3211159142u, 1053609164u, 0, REMAINDERF_TOLERANCE, 0},
+{403, 3204448256u, 3210320282u, 1051931444u, 0, REMAINDERF_TOLERANCE, 0},
+{404, 3204448256u, 3209481421u, 1050253722u, 0, REMAINDERF_TOLERANCE, 0},
+{405, 3204448256u, 3208642560u, 1048576000u, 0, REMAINDERF_TOLERANCE, 0},
+{406, 3204448256u, 3207803699u, 1045220556u, 0, REMAINDERF_TOLERANCE, 0},
+{407, 3204448256u, 3206964838u, 1041865112u, 0, REMAINDERF_TOLERANCE, 0},
+{408, 3204448256u, 3206125978u, 1036831952u, 0, REMAINDERF_TOLERANCE, 0},
+{409, 3204448256u, 3205287117u, 1028443344u, 0, REMAINDERF_TOLERANCE, 0},
+{410, 3204448256u, 3204448256u, 2147483648u, 0, REMAINDERF_TOLERANCE, 0},
+{411, 3204448256u, 3202770534u, 3175926992u, 0, REMAINDERF_TOLERANCE, 0},
+{412, 3204448256u, 3201092813u, 3184315596u, 0, REMAINDERF_TOLERANCE, 0},
+{413, 3204448256u, 3199415091u, 3189348762u, 0, REMAINDERF_TOLERANCE, 0},
+{414, 3204448256u, 3197737370u, 1036831952u, 0, REMAINDERF_TOLERANCE, 0},
+{415, 3204448256u, 3196059648u, 2147483648u, 0, REMAINDERF_TOLERANCE, 0},
+{416, 3204448256u, 3192704205u, 3184315596u, 0, REMAINDERF_TOLERANCE, 0},
+{417, 3204448256u, 3189348762u, 3175926984u, 0, REMAINDERF_TOLERANCE, 0},
+{418, 3204448256u, 3184315597u, 838860800u, 0, REMAINDERF_TOLERANCE, 0},
+{419, 3204448256u, 3175926989u, 838860800u, 0, REMAINDERF_TOLERANCE, 0},
+{420, 3204448256u, 632815616u, 2743074816u, 0, REMAINDERF_TOLERANCE, 0},
+{421, 3204448256u, 1028443341u, 838860800u, 0, REMAINDERF_TOLERANCE, 0},
+{422, 3204448256u, 1036831949u, 838860800u, 0, REMAINDERF_TOLERANCE, 0},
+{423, 3204448256u, 1041865114u, 3175926984u, 0, REMAINDERF_TOLERANCE, 0},
+{424, 3204448256u, 1045220557u, 3184315596u, 0, REMAINDERF_TOLERANCE, 0},
+{425, 3204448256u, 1048576000u, 2147483648u, 0, REMAINDERF_TOLERANCE, 0},
+{426, 3204448256u, 1050253722u, 1036831952u, 0, REMAINDERF_TOLERANCE, 0},
+{427, 3204448256u, 1051931443u, 3189348762u, 0, REMAINDERF_TOLERANCE, 0},
+{428, 3204448256u, 1053609165u, 3184315596u, 0, REMAINDERF_TOLERANCE, 0},
+{429, 3204448256u, 1055286886u, 3175926992u, 0, REMAINDERF_TOLERANCE, 0},
+{430, 3204448256u, 1056964608u, 2147483648u, 0, REMAINDERF_TOLERANCE, 0},
+{431, 3204448256u, 1057803469u, 1028443344u, 0, REMAINDERF_TOLERANCE, 0},
+{432, 3204448256u, 1058642330u, 1036831952u, 0, REMAINDERF_TOLERANCE, 0},
+{433, 3204448256u, 1059481190u, 1041865112u, 0, REMAINDERF_TOLERANCE, 0},
+{434, 3204448256u, 1060320051u, 1045220556u, 0, REMAINDERF_TOLERANCE, 0},
+{435, 3204448256u, 1061158912u, 1048576000u, 0, REMAINDERF_TOLERANCE, 0},
+{436, 3204448256u, 1061997773u, 1050253722u, 0, REMAINDERF_TOLERANCE, 0},
+{437, 3204448256u, 1062836634u, 1051931444u, 0, REMAINDERF_TOLERANCE, 0},
+{438, 3204448256u, 1063675494u, 1053609164u, 0, REMAINDERF_TOLERANCE, 0},
+{439, 3204448256u, 1064514355u, 1055286886u, 0, REMAINDERF_TOLERANCE, 0},
+{440, 3202770534u, 3212836864u, 3202770534u, 0, REMAINDERF_TOLERANCE, 0},
+{441, 3202770534u, 3211998003u, 3202770534u, 0, REMAINDERF_TOLERANCE, 0},
+{442, 3202770534u, 3211159142u, 3202770534u, 0, REMAINDERF_TOLERANCE, 0},
+{443, 3202770534u, 3210320282u, 1053609166u, 0, REMAINDERF_TOLERANCE, 0},
+{444, 3202770534u, 3209481421u, 1051931444u, 0, REMAINDERF_TOLERANCE, 0},
+{445, 3202770534u, 3208642560u, 1050253722u, 0, REMAINDERF_TOLERANCE, 0},
+{446, 3202770534u, 3207803699u, 1048576000u, 0, REMAINDERF_TOLERANCE, 0},
+{447, 3202770534u, 3206964838u, 1045220556u, 0, REMAINDERF_TOLERANCE, 0},
+{448, 3202770534u, 3206125978u, 1041865116u, 0, REMAINDERF_TOLERANCE, 0},
+{449, 3202770534u, 3205287117u, 1036831952u, 0, REMAINDERF_TOLERANCE, 0},
+{450, 3202770534u, 3204448256u, 1028443344u, 0, REMAINDERF_TOLERANCE, 0},
+{451, 3202770534u, 3202770534u, 2147483648u, 0, REMAINDERF_TOLERANCE, 0},
+{452, 3202770534u, 3201092813u, 3175926984u, 0, REMAINDERF_TOLERANCE, 0},
+{453, 3202770534u, 3199415091u, 3184315596u, 0, REMAINDERF_TOLERANCE, 0},
+{454, 3202770534u, 3197737370u, 3189348760u, 0, REMAINDERF_TOLERANCE, 0},
+{455, 3202770534u, 3196059648u, 1028443344u, 0, REMAINDERF_TOLERANCE, 0},
+{456, 3202770534u, 3192704205u, 3175926984u, 0, REMAINDERF_TOLERANCE, 0},
+{457, 3202770534u, 3189348762u, 855638016u, 0, REMAINDERF_TOLERANCE, 0},
+{458, 3202770534u, 3184315597u, 3175926984u, 0, REMAINDERF_TOLERANCE, 0},
+{459, 3202770534u, 3175926989u, 849346560u, 0, REMAINDERF_TOLERANCE, 0},
+{460, 3202770534u, 632815616u, 2770337792u, 0, REMAINDERF_TOLERANCE, 0},
+{461, 3202770534u, 1028443341u, 849346560u, 0, REMAINDERF_TOLERANCE, 0},
+{462, 3202770534u, 1036831949u, 3175926984u, 0, REMAINDERF_TOLERANCE, 0},
+{463, 3202770534u, 1041865114u, 855638016u, 0, REMAINDERF_TOLERANCE, 0},
+{464, 3202770534u, 1045220557u, 3175926984u, 0, REMAINDERF_TOLERANCE, 0},
+{465, 3202770534u, 1048576000u, 1028443344u, 0, REMAINDERF_TOLERANCE, 0},
+{466, 3202770534u, 1050253722u, 3189348760u, 0, REMAINDERF_TOLERANCE, 0},
+{467, 3202770534u, 1051931443u, 3184315596u, 0, REMAINDERF_TOLERANCE, 0},
+{468, 3202770534u, 1053609165u, 3175926984u, 0, REMAINDERF_TOLERANCE, 0},
+{469, 3202770534u, 1055286886u, 2147483648u, 0, REMAINDERF_TOLERANCE, 0},
+{470, 3202770534u, 1056964608u, 1028443344u, 0, REMAINDERF_TOLERANCE, 0},
+{471, 3202770534u, 1057803469u, 1036831952u, 0, REMAINDERF_TOLERANCE, 0},
+{472, 3202770534u, 1058642330u, 1041865116u, 0, REMAINDERF_TOLERANCE, 0},
+{473, 3202770534u, 1059481190u, 1045220556u, 0, REMAINDERF_TOLERANCE, 0},
+{474, 3202770534u, 1060320051u, 1048576000u, 0, REMAINDERF_TOLERANCE, 0},
+{475, 3202770534u, 1061158912u, 1050253722u, 0, REMAINDERF_TOLERANCE, 0},
+{476, 3202770534u, 1061997773u, 1051931444u, 0, REMAINDERF_TOLERANCE, 0},
+{477, 3202770534u, 1062836634u, 1053609166u, 0, REMAINDERF_TOLERANCE, 0},
+{478, 3202770534u, 1063675494u, 3202770534u, 0, REMAINDERF_TOLERANCE, 0},
+{479, 3202770534u, 1064514355u, 3202770534u, 0, REMAINDERF_TOLERANCE, 0},
+{480, 3201092813u, 3212836864u, 3201092813u, 0, REMAINDERF_TOLERANCE, 0},
+{481, 3201092813u, 3211998003u, 3201092813u, 0, REMAINDERF_TOLERANCE, 0},
+{482, 3201092813u, 3211159142u, 3201092813u, 0, REMAINDERF_TOLERANCE, 0},
+{483, 3201092813u, 3210320282u, 3201092813u, 0, REMAINDERF_TOLERANCE, 0},
+{484, 3201092813u, 3209481421u, 3201092813u, 0, REMAINDERF_TOLERANCE, 0},
+{485, 3201092813u, 3208642560u, 1051931443u, 0, REMAINDERF_TOLERANCE, 0},
+{486, 3201092813u, 3207803699u, 1050253721u, 0, REMAINDERF_TOLERANCE, 0},
+{487, 3201092813u, 3206964838u, 1048575998u, 0, REMAINDERF_TOLERANCE, 0},
+{488, 3201092813u, 3206125978u, 1045220558u, 0, REMAINDERF_TOLERANCE, 0},
+{489, 3201092813u, 3205287117u, 1041865114u, 0, REMAINDERF_TOLERANCE, 0},
+{490, 3201092813u, 3204448256u, 1036831948u, 0, REMAINDERF_TOLERANCE, 0},
+{491, 3201092813u, 3202770534u, 1028443336u, 0, REMAINDERF_TOLERANCE, 0},
+{492, 3201092813u, 3201092813u, 2147483648u, 0, REMAINDERF_TOLERANCE, 0},
+{493, 3201092813u, 3199415091u, 3175926992u, 0, REMAINDERF_TOLERANCE, 0},
+{494, 3201092813u, 3197737370u, 3184315596u, 0, REMAINDERF_TOLERANCE, 0},
+{495, 3201092813u, 3196059648u, 1036831948u, 0, REMAINDERF_TOLERANCE, 0},
+{496, 3201092813u, 3192704205u, 2147483648u, 0, REMAINDERF_TOLERANCE, 0},
+{497, 3201092813u, 3189348762u, 1028443344u, 0, REMAINDERF_TOLERANCE, 0},
+{498, 3201092813u, 3184315597u, 2147483648u, 0, REMAINDERF_TOLERANCE, 0},
+{499, 3201092813u, 3175926989u, 2147483648u, 0, REMAINDERF_TOLERANCE, 0},
+{500, 3201092813u, 632815616u, 2751463424u, 0, REMAINDERF_TOLERANCE, 0},
+{501, 3201092813u, 1028443341u, 2147483648u, 0, REMAINDERF_TOLERANCE, 0},
+{502, 3201092813u, 1036831949u, 2147483648u, 0, REMAINDERF_TOLERANCE, 0},
+{503, 3201092813u, 1041865114u, 1028443344u, 0, REMAINDERF_TOLERANCE, 0},
+{504, 3201092813u, 1045220557u, 2147483648u, 0, REMAINDERF_TOLERANCE, 0},
+{505, 3201092813u, 1048576000u, 1036831948u, 0, REMAINDERF_TOLERANCE, 0},
+{506, 3201092813u, 1050253722u, 3184315596u, 0, REMAINDERF_TOLERANCE, 0},
+{507, 3201092813u, 1051931443u, 3175926992u, 0, REMAINDERF_TOLERANCE, 0},
+{508, 3201092813u, 1053609165u, 2147483648u, 0, REMAINDERF_TOLERANCE, 0},
+{509, 3201092813u, 1055286886u, 1028443336u, 0, REMAINDERF_TOLERANCE, 0},
+{510, 3201092813u, 1056964608u, 1036831948u, 0, REMAINDERF_TOLERANCE, 0},
+{511, 3201092813u, 1057803469u, 1041865114u, 0, REMAINDERF_TOLERANCE, 0},
+{512, 3201092813u, 1058642330u, 1045220558u, 0, REMAINDERF_TOLERANCE, 0},
+{513, 3201092813u, 1059481190u, 1048575998u, 0, REMAINDERF_TOLERANCE, 0},
+{514, 3201092813u, 1060320051u, 1050253721u, 0, REMAINDERF_TOLERANCE, 0},
+{515, 3201092813u, 1061158912u, 1051931443u, 0, REMAINDERF_TOLERANCE, 0},
+{516, 3201092813u, 1061997773u, 3201092813u, 0, REMAINDERF_TOLERANCE, 0},
+{517, 3201092813u, 1062836634u, 3201092813u, 0, REMAINDERF_TOLERANCE, 0},
+{518, 3201092813u, 1063675494u, 3201092813u, 0, REMAINDERF_TOLERANCE, 0},
+{519, 3201092813u, 1064514355u, 3201092813u, 0, REMAINDERF_TOLERANCE, 0},
+{520, 3199415091u, 3212836864u, 3199415091u, 0, REMAINDERF_TOLERANCE, 0},
+{521, 3199415091u, 3211998003u, 3199415091u, 0, REMAINDERF_TOLERANCE, 0},
+{522, 3199415091u, 3211159142u, 3199415091u, 0, REMAINDERF_TOLERANCE, 0},
+{523, 3199415091u, 3210320282u, 3199415091u, 0, REMAINDERF_TOLERANCE, 0},
+{524, 3199415091u, 3209481421u, 3199415091u, 0, REMAINDERF_TOLERANCE, 0},
+{525, 3199415091u, 3208642560u, 3199415091u, 0, REMAINDERF_TOLERANCE, 0},
+{526, 3199415091u, 3207803699u, 3199415091u, 0, REMAINDERF_TOLERANCE, 0},
+{527, 3199415091u, 3206964838u, 1050253721u, 0, REMAINDERF_TOLERANCE, 0},
+{528, 3199415091u, 3206125978u, 1048576001u, 0, REMAINDERF_TOLERANCE, 0},
+{529, 3199415091u, 3205287117u, 1045220558u, 0, REMAINDERF_TOLERANCE, 0},
+{530, 3199415091u, 3204448256u, 1041865114u, 0, REMAINDERF_TOLERANCE, 0},
+{531, 3199415091u, 3202770534u, 1036831948u, 0, REMAINDERF_TOLERANCE, 0},
+{532, 3199415091u, 3201092813u, 1028443344u, 0, REMAINDERF_TOLERANCE, 0},
+{533, 3199415091u, 3199415091u, 2147483648u, 0, REMAINDERF_TOLERANCE, 0},
+{534, 3199415091u, 3197737370u, 3175926984u, 0, REMAINDERF_TOLERANCE, 0},
+{535, 3199415091u, 3196059648u, 3184315596u, 0, REMAINDERF_TOLERANCE, 0},
+{536, 3199415091u, 3192704205u, 1028443344u, 0, REMAINDERF_TOLERANCE, 0},
+{537, 3199415091u, 3189348762u, 3175926984u, 0, REMAINDERF_TOLERANCE, 0},
+{538, 3199415091u, 3184315597u, 3175926986u, 0, REMAINDERF_TOLERANCE, 0},
+{539, 3199415091u, 3175926989u, 843055104u, 0, REMAINDERF_TOLERANCE, 0},
+{540, 3199415091u, 632815616u, 2771386368u, 0, REMAINDERF_TOLERANCE, 0},
+{541, 3199415091u, 1028443341u, 843055104u, 0, REMAINDERF_TOLERANCE, 0},
+{542, 3199415091u, 1036831949u, 3175926986u, 0, REMAINDERF_TOLERANCE, 0},
+{543, 3199415091u, 1041865114u, 3175926984u, 0, REMAINDERF_TOLERANCE, 0},
+{544, 3199415091u, 1045220557u, 1028443344u, 0, REMAINDERF_TOLERANCE, 0},
+{545, 3199415091u, 1048576000u, 3184315596u, 0, REMAINDERF_TOLERANCE, 0},
+{546, 3199415091u, 1050253722u, 3175926984u, 0, REMAINDERF_TOLERANCE, 0},
+{547, 3199415091u, 1051931443u, 2147483648u, 0, REMAINDERF_TOLERANCE, 0},
+{548, 3199415091u, 1053609165u, 1028443344u, 0, REMAINDERF_TOLERANCE, 0},
+{549, 3199415091u, 1055286886u, 1036831948u, 0, REMAINDERF_TOLERANCE, 0},
+{550, 3199415091u, 1056964608u, 1041865114u, 0, REMAINDERF_TOLERANCE, 0},
+{551, 3199415091u, 1057803469u, 1045220558u, 0, REMAINDERF_TOLERANCE, 0},
+{552, 3199415091u, 1058642330u, 1048576001u, 0, REMAINDERF_TOLERANCE, 0},
+{553, 3199415091u, 1059481190u, 1050253721u, 0, REMAINDERF_TOLERANCE, 0},
+{554, 3199415091u, 1060320051u, 3199415091u, 0, REMAINDERF_TOLERANCE, 0},
+{555, 3199415091u, 1061158912u, 3199415091u, 0, REMAINDERF_TOLERANCE, 0},
+{556, 3199415091u, 1061997773u, 3199415091u, 0, REMAINDERF_TOLERANCE, 0},
+{557, 3199415091u, 1062836634u, 3199415091u, 0, REMAINDERF_TOLERANCE, 0},
+{558, 3199415091u, 1063675494u, 3199415091u, 0, REMAINDERF_TOLERANCE, 0},
+{559, 3199415091u, 1064514355u, 3199415091u, 0, REMAINDERF_TOLERANCE, 0},
+{560, 3197737370u, 3212836864u, 3197737370u, 0, REMAINDERF_TOLERANCE, 0},
+{561, 3197737370u, 3211998003u, 3197737370u, 0, REMAINDERF_TOLERANCE, 0},
+{562, 3197737370u, 3211159142u, 3197737370u, 0, REMAINDERF_TOLERANCE, 0},
+{563, 3197737370u, 3210320282u, 3197737370u, 0, REMAINDERF_TOLERANCE, 0},
+{564, 3197737370u, 3209481421u, 3197737370u, 0, REMAINDERF_TOLERANCE, 0},
+{565, 3197737370u, 3208642560u, 3197737370u, 0, REMAINDERF_TOLERANCE, 0},
+{566, 3197737370u, 3207803699u, 3197737370u, 0, REMAINDERF_TOLERANCE, 0},
+{567, 3197737370u, 3206964838u, 3197737370u, 0, REMAINDERF_TOLERANCE, 0},
+{568, 3197737370u, 3206125978u, 3197737370u, 0, REMAINDERF_TOLERANCE, 0},
+{569, 3197737370u, 3205287117u, 1048576000u, 0, REMAINDERF_TOLERANCE, 0},
+{570, 3197737370u, 3204448256u, 1045220556u, 0, REMAINDERF_TOLERANCE, 0},
+{571, 3197737370u, 3202770534u, 1041865112u, 0, REMAINDERF_TOLERANCE, 0},
+{572, 3197737370u, 3201092813u, 1036831948u, 0, REMAINDERF_TOLERANCE, 0},
+{573, 3197737370u, 3199415091u, 1028443336u, 0, REMAINDERF_TOLERANCE, 0},
+{574, 3197737370u, 3197737370u, 2147483648u, 0, REMAINDERF_TOLERANCE, 0},
+{575, 3197737370u, 3196059648u, 3175926992u, 0, REMAINDERF_TOLERANCE, 0},
+{576, 3197737370u, 3192704205u, 1036831948u, 0, REMAINDERF_TOLERANCE, 0},
+{577, 3197737370u, 3189348762u, 2147483648u, 0, REMAINDERF_TOLERANCE, 0},
+{578, 3197737370u, 3184315597u, 2986344448u, 0, REMAINDERF_TOLERANCE, 0},
+{579, 3197737370u, 3175926989u, 2986344448u, 0, REMAINDERF_TOLERANCE, 0},
+{580, 3197737370u, 632815616u, 2755657728u, 0, REMAINDERF_TOLERANCE, 0},
+{581, 3197737370u, 1028443341u, 2986344448u, 0, REMAINDERF_TOLERANCE, 0},
+{582, 3197737370u, 1036831949u, 2986344448u, 0, REMAINDERF_TOLERANCE, 0},
+{583, 3197737370u, 1041865114u, 2147483648u, 0, REMAINDERF_TOLERANCE, 0},
+{584, 3197737370u, 1045220557u, 1036831948u, 0, REMAINDERF_TOLERANCE, 0},
+{585, 3197737370u, 1048576000u, 3175926992u, 0, REMAINDERF_TOLERANCE, 0},
+{586, 3197737370u, 1050253722u, 2147483648u, 0, REMAINDERF_TOLERANCE, 0},
+{587, 3197737370u, 1051931443u, 1028443336u, 0, REMAINDERF_TOLERANCE, 0},
+{588, 3197737370u, 1053609165u, 1036831948u, 0, REMAINDERF_TOLERANCE, 0},
+{589, 3197737370u, 1055286886u, 1041865112u, 0, REMAINDERF_TOLERANCE, 0},
+{590, 3197737370u, 1056964608u, 1045220556u, 0, REMAINDERF_TOLERANCE, 0},
+{591, 3197737370u, 1057803469u, 1048576000u, 0, REMAINDERF_TOLERANCE, 0},
+{592, 3197737370u, 1058642330u, 3197737370u, 0, REMAINDERF_TOLERANCE, 0},
+{593, 3197737370u, 1059481190u, 3197737370u, 0, REMAINDERF_TOLERANCE, 0},
+{594, 3197737370u, 1060320051u, 3197737370u, 0, REMAINDERF_TOLERANCE, 0},
+{595, 3197737370u, 1061158912u, 3197737370u, 0, REMAINDERF_TOLERANCE, 0},
+{596, 3197737370u, 1061997773u, 3197737370u, 0, REMAINDERF_TOLERANCE, 0},
+{597, 3197737370u, 1062836634u, 3197737370u, 0, REMAINDERF_TOLERANCE, 0},
+{598, 3197737370u, 1063675494u, 3197737370u, 0, REMAINDERF_TOLERANCE, 0},
+{599, 3197737370u, 1064514355u, 3197737370u, 0, REMAINDERF_TOLERANCE, 0},
+{600, 3196059648u, 3212836864u, 3196059648u, 0, REMAINDERF_TOLERANCE, 0},
+{601, 3196059648u, 3211998003u, 3196059648u, 0, REMAINDERF_TOLERANCE, 0},
+{602, 3196059648u, 3211159142u, 3196059648u, 0, REMAINDERF_TOLERANCE, 0},
+{603, 3196059648u, 3210320282u, 3196059648u, 0, REMAINDERF_TOLERANCE, 0},
+{604, 3196059648u, 3209481421u, 3196059648u, 0, REMAINDERF_TOLERANCE, 0},
+{605, 3196059648u, 3208642560u, 3196059648u, 0, REMAINDERF_TOLERANCE, 0},
+{606, 3196059648u, 3207803699u, 3196059648u, 0, REMAINDERF_TOLERANCE, 0},
+{607, 3196059648u, 3206964838u, 3196059648u, 0, REMAINDERF_TOLERANCE, 0},
+{608, 3196059648u, 3206125978u, 3196059648u, 0, REMAINDERF_TOLERANCE, 0},
+{609, 3196059648u, 3205287117u, 3196059648u, 0, REMAINDERF_TOLERANCE, 0},
+{610, 3196059648u, 3204448256u, 3196059648u, 0, REMAINDERF_TOLERANCE, 0},
+{611, 3196059648u, 3202770534u, 1045220556u, 0, REMAINDERF_TOLERANCE, 0},
+{612, 3196059648u, 3201092813u, 1041865114u, 0, REMAINDERF_TOLERANCE, 0},
+{613, 3196059648u, 3199415091u, 1036831948u, 0, REMAINDERF_TOLERANCE, 0},
+{614, 3196059648u, 3197737370u, 1028443344u, 0, REMAINDERF_TOLERANCE, 0},
+{615, 3196059648u, 3196059648u, 2147483648u, 0, REMAINDERF_TOLERANCE, 0},
+{616, 3196059648u, 3192704205u, 3175926988u, 0, REMAINDERF_TOLERANCE, 0},
+{617, 3196059648u, 3189348762u, 1028443344u, 0, REMAINDERF_TOLERANCE, 0},
+{618, 3196059648u, 3184315597u, 3175926988u, 0, REMAINDERF_TOLERANCE, 0},
+{619, 3196059648u, 3175926989u, 830472192u, 0, REMAINDERF_TOLERANCE, 0},
+{620, 3196059648u, 632815616u, 623902720u, 0, REMAINDERF_TOLERANCE, 0},
+{621, 3196059648u, 1028443341u, 830472192u, 0, REMAINDERF_TOLERANCE, 0},
+{622, 3196059648u, 1036831949u, 3175926988u, 0, REMAINDERF_TOLERANCE, 0},
+{623, 3196059648u, 1041865114u, 1028443344u, 0, REMAINDERF_TOLERANCE, 0},
+{624, 3196059648u, 1045220557u, 3175926988u, 0, REMAINDERF_TOLERANCE, 0},
+{625, 3196059648u, 1048576000u, 2147483648u, 0, REMAINDERF_TOLERANCE, 0},
+{626, 3196059648u, 1050253722u, 1028443344u, 0, REMAINDERF_TOLERANCE, 0},
+{627, 3196059648u, 1051931443u, 1036831948u, 0, REMAINDERF_TOLERANCE, 0},
+{628, 3196059648u, 1053609165u, 1041865114u, 0, REMAINDERF_TOLERANCE, 0},
+{629, 3196059648u, 1055286886u, 1045220556u, 0, REMAINDERF_TOLERANCE, 0},
+{630, 3196059648u, 1056964608u, 3196059648u, 0, REMAINDERF_TOLERANCE, 0},
+{631, 3196059648u, 1057803469u, 3196059648u, 0, REMAINDERF_TOLERANCE, 0},
+{632, 3196059648u, 1058642330u, 3196059648u, 0, REMAINDERF_TOLERANCE, 0},
+{633, 3196059648u, 1059481190u, 3196059648u, 0, REMAINDERF_TOLERANCE, 0},
+{634, 3196059648u, 1060320051u, 3196059648u, 0, REMAINDERF_TOLERANCE, 0},
+{635, 3196059648u, 1061158912u, 3196059648u, 0, REMAINDERF_TOLERANCE, 0},
+{636, 3196059648u, 1061997773u, 3196059648u, 0, REMAINDERF_TOLERANCE, 0},
+{637, 3196059648u, 1062836634u, 3196059648u, 0, REMAINDERF_TOLERANCE, 0},
+{638, 3196059648u, 1063675494u, 3196059648u, 0, REMAINDERF_TOLERANCE, 0},
+{639, 3196059648u, 1064514355u, 3196059648u, 0, REMAINDERF_TOLERANCE, 0},
+{640, 3192704205u, 3212836864u, 3192704205u, 0, REMAINDERF_TOLERANCE, 0},
+{641, 3192704205u, 3211998003u, 3192704205u, 0, REMAINDERF_TOLERANCE, 0},
+{642, 3192704205u, 3211159142u, 3192704205u, 0, REMAINDERF_TOLERANCE, 0},
+{643, 3192704205u, 3210320282u, 3192704205u, 0, REMAINDERF_TOLERANCE, 0},
+{644, 3192704205u, 3209481421u, 3192704205u, 0, REMAINDERF_TOLERANCE, 0},
+{645, 3192704205u, 3208642560u, 3192704205u, 0, REMAINDERF_TOLERANCE, 0},
+{646, 3192704205u, 3207803699u, 3192704205u, 0, REMAINDERF_TOLERANCE, 0},
+{647, 3192704205u, 3206964838u, 3192704205u, 0, REMAINDERF_TOLERANCE, 0},
+{648, 3192704205u, 3206125978u, 3192704205u, 0, REMAINDERF_TOLERANCE, 0},
+{649, 3192704205u, 3205287117u, 3192704205u, 0, REMAINDERF_TOLERANCE, 0},
+{650, 3192704205u, 3204448256u, 3192704205u, 0, REMAINDERF_TOLERANCE, 0},
+{651, 3192704205u, 3202770534u, 3192704205u, 0, REMAINDERF_TOLERANCE, 0},
+{652, 3192704205u, 3201092813u, 3192704205u, 0, REMAINDERF_TOLERANCE, 0},
+{653, 3192704205u, 3199415091u, 1041865113u, 0, REMAINDERF_TOLERANCE, 0},
+{654, 3192704205u, 3197737370u, 1036831950u, 0, REMAINDERF_TOLERANCE, 0},
+{655, 3192704205u, 3196059648u, 1028443340u, 0, REMAINDERF_TOLERANCE, 0},
+{656, 3192704205u, 3192704205u, 2147483648u, 0, REMAINDERF_TOLERANCE, 0},
+{657, 3192704205u, 3189348762u, 3175926988u, 0, REMAINDERF_TOLERANCE, 0},
+{658, 3192704205u, 3184315597u, 2147483648u, 0, REMAINDERF_TOLERANCE, 0},
+{659, 3192704205u, 3175926989u, 2147483648u, 0, REMAINDERF_TOLERANCE, 0},
+{660, 3192704205u, 632815616u, 2743074816u, 0, REMAINDERF_TOLERANCE, 0},
+{661, 3192704205u, 1028443341u, 2147483648u, 0, REMAINDERF_TOLERANCE, 0},
+{662, 3192704205u, 1036831949u, 2147483648u, 0, REMAINDERF_TOLERANCE, 0},
+{663, 3192704205u, 1041865114u, 3175926988u, 0, REMAINDERF_TOLERANCE, 0},
+{664, 3192704205u, 1045220557u, 2147483648u, 0, REMAINDERF_TOLERANCE, 0},
+{665, 3192704205u, 1048576000u, 1028443340u, 0, REMAINDERF_TOLERANCE, 0},
+{666, 3192704205u, 1050253722u, 1036831950u, 0, REMAINDERF_TOLERANCE, 0},
+{667, 3192704205u, 1051931443u, 1041865113u, 0, REMAINDERF_TOLERANCE, 0},
+{668, 3192704205u, 1053609165u, 3192704205u, 0, REMAINDERF_TOLERANCE, 0},
+{669, 3192704205u, 1055286886u, 3192704205u, 0, REMAINDERF_TOLERANCE, 0},
+{670, 3192704205u, 1056964608u, 3192704205u, 0, REMAINDERF_TOLERANCE, 0},
+{671, 3192704205u, 1057803469u, 3192704205u, 0, REMAINDERF_TOLERANCE, 0},
+{672, 3192704205u, 1058642330u, 3192704205u, 0, REMAINDERF_TOLERANCE, 0},
+{673, 3192704205u, 1059481190u, 3192704205u, 0, REMAINDERF_TOLERANCE, 0},
+{674, 3192704205u, 1060320051u, 3192704205u, 0, REMAINDERF_TOLERANCE, 0},
+{675, 3192704205u, 1061158912u, 3192704205u, 0, REMAINDERF_TOLERANCE, 0},
+{676, 3192704205u, 1061997773u, 3192704205u, 0, REMAINDERF_TOLERANCE, 0},
+{677, 3192704205u, 1062836634u, 3192704205u, 0, REMAINDERF_TOLERANCE, 0},
+{678, 3192704205u, 1063675494u, 3192704205u, 0, REMAINDERF_TOLERANCE, 0},
+{679, 3192704205u, 1064514355u, 3192704205u, 0, REMAINDERF_TOLERANCE, 0},
+{680, 3189348762u, 3212836864u, 3189348762u, 0, REMAINDERF_TOLERANCE, 0},
+{681, 3189348762u, 3211998003u, 3189348762u, 0, REMAINDERF_TOLERANCE, 0},
+{682, 3189348762u, 3211159142u, 3189348762u, 0, REMAINDERF_TOLERANCE, 0},
+{683, 3189348762u, 3210320282u, 3189348762u, 0, REMAINDERF_TOLERANCE, 0},
+{684, 3189348762u, 3209481421u, 3189348762u, 0, REMAINDERF_TOLERANCE, 0},
+{685, 3189348762u, 3208642560u, 3189348762u, 0, REMAINDERF_TOLERANCE, 0},
+{686, 3189348762u, 3207803699u, 3189348762u, 0, REMAINDERF_TOLERANCE, 0},
+{687, 3189348762u, 3206964838u, 3189348762u, 0, REMAINDERF_TOLERANCE, 0},
+{688, 3189348762u, 3206125978u, 3189348762u, 0, REMAINDERF_TOLERANCE, 0},
+{689, 3189348762u, 3205287117u, 3189348762u, 0, REMAINDERF_TOLERANCE, 0},
+{690, 3189348762u, 3204448256u, 3189348762u, 0, REMAINDERF_TOLERANCE, 0},
+{691, 3189348762u, 3202770534u, 3189348762u, 0, REMAINDERF_TOLERANCE, 0},
+{692, 3189348762u, 3201092813u, 3189348762u, 0, REMAINDERF_TOLERANCE, 0},
+{693, 3189348762u, 3199415091u, 3189348762u, 0, REMAINDERF_TOLERANCE, 0},
+{694, 3189348762u, 3197737370u, 3189348762u, 0, REMAINDERF_TOLERANCE, 0},
+{695, 3189348762u, 3196059648u, 1036831948u, 0, REMAINDERF_TOLERANCE, 0},
+{696, 3189348762u, 3192704205u, 1028443340u, 0, REMAINDERF_TOLERANCE, 0},
+{697, 3189348762u, 3189348762u, 2147483648u, 0, REMAINDERF_TOLERANCE, 0},
+{698, 3189348762u, 3184315597u, 1028443340u, 0, REMAINDERF_TOLERANCE, 0},
+{699, 3189348762u, 3175926989u, 2977955840u, 0, REMAINDERF_TOLERANCE, 0},
+{700, 3189348762u, 632815616u, 622854144u, 0, REMAINDERF_TOLERANCE, 0},
+{701, 3189348762u, 1028443341u, 2977955840u, 0, REMAINDERF_TOLERANCE, 0},
+{702, 3189348762u, 1036831949u, 1028443340u, 0, REMAINDERF_TOLERANCE, 0},
+{703, 3189348762u, 1041865114u, 2147483648u, 0, REMAINDERF_TOLERANCE, 0},
+{704, 3189348762u, 1045220557u, 1028443340u, 0, REMAINDERF_TOLERANCE, 0},
+{705, 3189348762u, 1048576000u, 1036831948u, 0, REMAINDERF_TOLERANCE, 0},
+{706, 3189348762u, 1050253722u, 3189348762u, 0, REMAINDERF_TOLERANCE, 0},
+{707, 3189348762u, 1051931443u, 3189348762u, 0, REMAINDERF_TOLERANCE, 0},
+{708, 3189348762u, 1053609165u, 3189348762u, 0, REMAINDERF_TOLERANCE, 0},
+{709, 3189348762u, 1055286886u, 3189348762u, 0, REMAINDERF_TOLERANCE, 0},
+{710, 3189348762u, 1056964608u, 3189348762u, 0, REMAINDERF_TOLERANCE, 0},
+{711, 3189348762u, 1057803469u, 3189348762u, 0, REMAINDERF_TOLERANCE, 0},
+{712, 3189348762u, 1058642330u, 3189348762u, 0, REMAINDERF_TOLERANCE, 0},
+{713, 3189348762u, 1059481190u, 3189348762u, 0, REMAINDERF_TOLERANCE, 0},
+{714, 3189348762u, 1060320051u, 3189348762u, 0, REMAINDERF_TOLERANCE, 0},
+{715, 3189348762u, 1061158912u, 3189348762u, 0, REMAINDERF_TOLERANCE, 0},
+{716, 3189348762u, 1061997773u, 3189348762u, 0, REMAINDERF_TOLERANCE, 0},
+{717, 3189348762u, 1062836634u, 3189348762u, 0, REMAINDERF_TOLERANCE, 0},
+{718, 3189348762u, 1063675494u, 3189348762u, 0, REMAINDERF_TOLERANCE, 0},
+{719, 3189348762u, 1064514355u, 3189348762u, 0, REMAINDERF_TOLERANCE, 0},
+{720, 3184315597u, 3212836864u, 3184315597u, 0, REMAINDERF_TOLERANCE, 0},
+{721, 3184315597u, 3211998003u, 3184315597u, 0, REMAINDERF_TOLERANCE, 0},
+{722, 3184315597u, 3211159142u, 3184315597u, 0, REMAINDERF_TOLERANCE, 0},
+{723, 3184315597u, 3210320282u, 3184315597u, 0, REMAINDERF_TOLERANCE, 0},
+{724, 3184315597u, 3209481421u, 3184315597u, 0, REMAINDERF_TOLERANCE, 0},
+{725, 3184315597u, 3208642560u, 3184315597u, 0, REMAINDERF_TOLERANCE, 0},
+{726, 3184315597u, 3207803699u, 3184315597u, 0, REMAINDERF_TOLERANCE, 0},
+{727, 3184315597u, 3206964838u, 3184315597u, 0, REMAINDERF_TOLERANCE, 0},
+{728, 3184315597u, 3206125978u, 3184315597u, 0, REMAINDERF_TOLERANCE, 0},
+{729, 3184315597u, 3205287117u, 3184315597u, 0, REMAINDERF_TOLERANCE, 0},
+{730, 3184315597u, 3204448256u, 3184315597u, 0, REMAINDERF_TOLERANCE, 0},
+{731, 3184315597u, 3202770534u, 3184315597u, 0, REMAINDERF_TOLERANCE, 0},
+{732, 3184315597u, 3201092813u, 3184315597u, 0, REMAINDERF_TOLERANCE, 0},
+{733, 3184315597u, 3199415091u, 3184315597u, 0, REMAINDERF_TOLERANCE, 0},
+{734, 3184315597u, 3197737370u, 3184315597u, 0, REMAINDERF_TOLERANCE, 0},
+{735, 3184315597u, 3196059648u, 3184315597u, 0, REMAINDERF_TOLERANCE, 0},
+{736, 3184315597u, 3192704205u, 3184315597u, 0, REMAINDERF_TOLERANCE, 0},
+{737, 3184315597u, 3189348762u, 1028443342u, 0, REMAINDERF_TOLERANCE, 0},
+{738, 3184315597u, 3184315597u, 2147483648u, 0, REMAINDERF_TOLERANCE, 0},
+{739, 3184315597u, 3175926989u, 2147483648u, 0, REMAINDERF_TOLERANCE, 0},
+{740, 3184315597u, 632815616u, 623902720u, 0, REMAINDERF_TOLERANCE, 0},
+{741, 3184315597u, 1028443341u, 2147483648u, 0, REMAINDERF_TOLERANCE, 0},
+{742, 3184315597u, 1036831949u, 2147483648u, 0, REMAINDERF_TOLERANCE, 0},
+{743, 3184315597u, 1041865114u, 1028443342u, 0, REMAINDERF_TOLERANCE, 0},
+{744, 3184315597u, 1045220557u, 3184315597u, 0, REMAINDERF_TOLERANCE, 0},
+{745, 3184315597u, 1048576000u, 3184315597u, 0, REMAINDERF_TOLERANCE, 0},
+{746, 3184315597u, 1050253722u, 3184315597u, 0, REMAINDERF_TOLERANCE, 0},
+{747, 3184315597u, 1051931443u, 3184315597u, 0, REMAINDERF_TOLERANCE, 0},
+{748, 3184315597u, 1053609165u, 3184315597u, 0, REMAINDERF_TOLERANCE, 0},
+{749, 3184315597u, 1055286886u, 3184315597u, 0, REMAINDERF_TOLERANCE, 0},
+{750, 3184315597u, 1056964608u, 3184315597u, 0, REMAINDERF_TOLERANCE, 0},
+{751, 3184315597u, 1057803469u, 3184315597u, 0, REMAINDERF_TOLERANCE, 0},
+{752, 3184315597u, 1058642330u, 3184315597u, 0, REMAINDERF_TOLERANCE, 0},
+{753, 3184315597u, 1059481190u, 3184315597u, 0, REMAINDERF_TOLERANCE, 0},
+{754, 3184315597u, 1060320051u, 3184315597u, 0, REMAINDERF_TOLERANCE, 0},
+{755, 3184315597u, 1061158912u, 3184315597u, 0, REMAINDERF_TOLERANCE, 0},
+{756, 3184315597u, 1061997773u, 3184315597u, 0, REMAINDERF_TOLERANCE, 0},
+{757, 3184315597u, 1062836634u, 3184315597u, 0, REMAINDERF_TOLERANCE, 0},
+{758, 3184315597u, 1063675494u, 3184315597u, 0, REMAINDERF_TOLERANCE, 0},
+{759, 3184315597u, 1064514355u, 3184315597u, 0, REMAINDERF_TOLERANCE, 0},
+{760, 3175926989u, 3212836864u, 3175926989u, 0, REMAINDERF_TOLERANCE, 0},
+{761, 3175926989u, 3211998003u, 3175926989u, 0, REMAINDERF_TOLERANCE, 0},
+{762, 3175926989u, 3211159142u, 3175926989u, 0, REMAINDERF_TOLERANCE, 0},
+{763, 3175926989u, 3210320282u, 3175926989u, 0, REMAINDERF_TOLERANCE, 0},
+{764, 3175926989u, 3209481421u, 3175926989u, 0, REMAINDERF_TOLERANCE, 0},
+{765, 3175926989u, 3208642560u, 3175926989u, 0, REMAINDERF_TOLERANCE, 0},
+{766, 3175926989u, 3207803699u, 3175926989u, 0, REMAINDERF_TOLERANCE, 0},
+{767, 3175926989u, 3206964838u, 3175926989u, 0, REMAINDERF_TOLERANCE, 0},
+{768, 3175926989u, 3206125978u, 3175926989u, 0, REMAINDERF_TOLERANCE, 0},
+{769, 3175926989u, 3205287117u, 3175926989u, 0, REMAINDERF_TOLERANCE, 0},
+{770, 3175926989u, 3204448256u, 3175926989u, 0, REMAINDERF_TOLERANCE, 0},
+{771, 3175926989u, 3202770534u, 3175926989u, 0, REMAINDERF_TOLERANCE, 0},
+{772, 3175926989u, 3201092813u, 3175926989u, 0, REMAINDERF_TOLERANCE, 0},
+{773, 3175926989u, 3199415091u, 3175926989u, 0, REMAINDERF_TOLERANCE, 0},
+{774, 3175926989u, 3197737370u, 3175926989u, 0, REMAINDERF_TOLERANCE, 0},
+{775, 3175926989u, 3196059648u, 3175926989u, 0, REMAINDERF_TOLERANCE, 0},
+{776, 3175926989u, 3192704205u, 3175926989u, 0, REMAINDERF_TOLERANCE, 0},
+{777, 3175926989u, 3189348762u, 3175926989u, 0, REMAINDERF_TOLERANCE, 0},
+{778, 3175926989u, 3184315597u, 3175926989u, 0, REMAINDERF_TOLERANCE, 0},
+{779, 3175926989u, 3175926989u, 2147483648u, 0, REMAINDERF_TOLERANCE, 0},
+{780, 3175926989u, 632815616u, 2764046336u, 0, REMAINDERF_TOLERANCE, 0},
+{781, 3175926989u, 1028443341u, 2147483648u, 0, REMAINDERF_TOLERANCE, 0},
+{782, 3175926989u, 1036831949u, 3175926989u, 0, REMAINDERF_TOLERANCE, 0},
+{783, 3175926989u, 1041865114u, 3175926989u, 0, REMAINDERF_TOLERANCE, 0},
+{784, 3175926989u, 1045220557u, 3175926989u, 0, REMAINDERF_TOLERANCE, 0},
+{785, 3175926989u, 1048576000u, 3175926989u, 0, REMAINDERF_TOLERANCE, 0},
+{786, 3175926989u, 1050253722u, 3175926989u, 0, REMAINDERF_TOLERANCE, 0},
+{787, 3175926989u, 1051931443u, 3175926989u, 0, REMAINDERF_TOLERANCE, 0},
+{788, 3175926989u, 1053609165u, 3175926989u, 0, REMAINDERF_TOLERANCE, 0},
+{789, 3175926989u, 1055286886u, 3175926989u, 0, REMAINDERF_TOLERANCE, 0},
+{790, 3175926989u, 1056964608u, 3175926989u, 0, REMAINDERF_TOLERANCE, 0},
+{791, 3175926989u, 1057803469u, 3175926989u, 0, REMAINDERF_TOLERANCE, 0},
+{792, 3175926989u, 1058642330u, 3175926989u, 0, REMAINDERF_TOLERANCE, 0},
+{793, 3175926989u, 1059481190u, 3175926989u, 0, REMAINDERF_TOLERANCE, 0},
+{794, 3175926989u, 1060320051u, 3175926989u, 0, REMAINDERF_TOLERANCE, 0},
+{795, 3175926989u, 1061158912u, 3175926989u, 0, REMAINDERF_TOLERANCE, 0},
+{796, 3175926989u, 1061997773u, 3175926989u, 0, REMAINDERF_TOLERANCE, 0},
+{797, 3175926989u, 1062836634u, 3175926989u, 0, REMAINDERF_TOLERANCE, 0},
+{798, 3175926989u, 1063675494u, 3175926989u, 0, REMAINDERF_TOLERANCE, 0},
+{799, 3175926989u, 1064514355u, 3175926989u, 0, REMAINDERF_TOLERANCE, 0},
+{800, 1028443341u, 3212836864u, 1028443341u, 0, REMAINDERF_TOLERANCE, 0},
+{801, 1028443341u, 3211998003u, 1028443341u, 0, REMAINDERF_TOLERANCE, 0},
+{802, 1028443341u, 3211159142u, 1028443341u, 0, REMAINDERF_TOLERANCE, 0},
+{803, 1028443341u, 3210320282u, 1028443341u, 0, REMAINDERF_TOLERANCE, 0},
+{804, 1028443341u, 3209481421u, 1028443341u, 0, REMAINDERF_TOLERANCE, 0},
+{805, 1028443341u, 3208642560u, 1028443341u, 0, REMAINDERF_TOLERANCE, 0},
+{806, 1028443341u, 3207803699u, 1028443341u, 0, REMAINDERF_TOLERANCE, 0},
+{807, 1028443341u, 3206964838u, 1028443341u, 0, REMAINDERF_TOLERANCE, 0},
+{808, 1028443341u, 3206125978u, 1028443341u, 0, REMAINDERF_TOLERANCE, 0},
+{809, 1028443341u, 3205287117u, 1028443341u, 0, REMAINDERF_TOLERANCE, 0},
+{810, 1028443341u, 3204448256u, 1028443341u, 0, REMAINDERF_TOLERANCE, 0},
+{811, 1028443341u, 3202770534u, 1028443341u, 0, REMAINDERF_TOLERANCE, 0},
+{812, 1028443341u, 3201092813u, 1028443341u, 0, REMAINDERF_TOLERANCE, 0},
+{813, 1028443341u, 3199415091u, 1028443341u, 0, REMAINDERF_TOLERANCE, 0},
+{814, 1028443341u, 3197737370u, 1028443341u, 0, REMAINDERF_TOLERANCE, 0},
+{815, 1028443341u, 3196059648u, 1028443341u, 0, REMAINDERF_TOLERANCE, 0},
+{816, 1028443341u, 3192704205u, 1028443341u, 0, REMAINDERF_TOLERANCE, 0},
+{817, 1028443341u, 3189348762u, 1028443341u, 0, REMAINDERF_TOLERANCE, 0},
+{818, 1028443341u, 3184315597u, 1028443341u, 0, REMAINDERF_TOLERANCE, 0},
+{819, 1028443341u, 3175926989u, 0u, 0, REMAINDERF_TOLERANCE, 0},
+{820, 1028443341u, 632815616u, 616562688u, 0, REMAINDERF_TOLERANCE, 0},
+{821, 1028443341u, 1028443341u, 0u, 0, REMAINDERF_TOLERANCE, 0},
+{822, 1028443341u, 1036831949u, 1028443341u, 0, REMAINDERF_TOLERANCE, 0},
+{823, 1028443341u, 1041865114u, 1028443341u, 0, REMAINDERF_TOLERANCE, 0},
+{824, 1028443341u, 1045220557u, 1028443341u, 0, REMAINDERF_TOLERANCE, 0},
+{825, 1028443341u, 1048576000u, 1028443341u, 0, REMAINDERF_TOLERANCE, 0},
+{826, 1028443341u, 1050253722u, 1028443341u, 0, REMAINDERF_TOLERANCE, 0},
+{827, 1028443341u, 1051931443u, 1028443341u, 0, REMAINDERF_TOLERANCE, 0},
+{828, 1028443341u, 1053609165u, 1028443341u, 0, REMAINDERF_TOLERANCE, 0},
+{829, 1028443341u, 1055286886u, 1028443341u, 0, REMAINDERF_TOLERANCE, 0},
+{830, 1028443341u, 1056964608u, 1028443341u, 0, REMAINDERF_TOLERANCE, 0},
+{831, 1028443341u, 1057803469u, 1028443341u, 0, REMAINDERF_TOLERANCE, 0},
+{832, 1028443341u, 1058642330u, 1028443341u, 0, REMAINDERF_TOLERANCE, 0},
+{833, 1028443341u, 1059481190u, 1028443341u, 0, REMAINDERF_TOLERANCE, 0},
+{834, 1028443341u, 1060320051u, 1028443341u, 0, REMAINDERF_TOLERANCE, 0},
+{835, 1028443341u, 1061158912u, 1028443341u, 0, REMAINDERF_TOLERANCE, 0},
+{836, 1028443341u, 1061997773u, 1028443341u, 0, REMAINDERF_TOLERANCE, 0},
+{837, 1028443341u, 1062836634u, 1028443341u, 0, REMAINDERF_TOLERANCE, 0},
+{838, 1028443341u, 1063675494u, 1028443341u, 0, REMAINDERF_TOLERANCE, 0},
+{839, 1028443341u, 1064514355u, 1028443341u, 0, REMAINDERF_TOLERANCE, 0},
+{840, 1036831949u, 3212836864u, 1036831949u, 0, REMAINDERF_TOLERANCE, 0},
+{841, 1036831949u, 3211998003u, 1036831949u, 0, REMAINDERF_TOLERANCE, 0},
+{842, 1036831949u, 3211159142u, 1036831949u, 0, REMAINDERF_TOLERANCE, 0},
+{843, 1036831949u, 3210320282u, 1036831949u, 0, REMAINDERF_TOLERANCE, 0},
+{844, 1036831949u, 3209481421u, 1036831949u, 0, REMAINDERF_TOLERANCE, 0},
+{845, 1036831949u, 3208642560u, 1036831949u, 0, REMAINDERF_TOLERANCE, 0},
+{846, 1036831949u, 3207803699u, 1036831949u, 0, REMAINDERF_TOLERANCE, 0},
+{847, 1036831949u, 3206964838u, 1036831949u, 0, REMAINDERF_TOLERANCE, 0},
+{848, 1036831949u, 3206125978u, 1036831949u, 0, REMAINDERF_TOLERANCE, 0},
+{849, 1036831949u, 3205287117u, 1036831949u, 0, REMAINDERF_TOLERANCE, 0},
+{850, 1036831949u, 3204448256u, 1036831949u, 0, REMAINDERF_TOLERANCE, 0},
+{851, 1036831949u, 3202770534u, 1036831949u, 0, REMAINDERF_TOLERANCE, 0},
+{852, 1036831949u, 3201092813u, 1036831949u, 0, REMAINDERF_TOLERANCE, 0},
+{853, 1036831949u, 3199415091u, 1036831949u, 0, REMAINDERF_TOLERANCE, 0},
+{854, 1036831949u, 3197737370u, 1036831949u, 0, REMAINDERF_TOLERANCE, 0},
+{855, 1036831949u, 3196059648u, 1036831949u, 0, REMAINDERF_TOLERANCE, 0},
+{856, 1036831949u, 3192704205u, 1036831949u, 0, REMAINDERF_TOLERANCE, 0},
+{857, 1036831949u, 3189348762u, 3175926990u, 0, REMAINDERF_TOLERANCE, 0},
+{858, 1036831949u, 3184315597u, 0u, 0, REMAINDERF_TOLERANCE, 0},
+{859, 1036831949u, 3175926989u, 0u, 0, REMAINDERF_TOLERANCE, 0},
+{860, 1036831949u, 632815616u, 2771386368u, 0, REMAINDERF_TOLERANCE, 0},
+{861, 1036831949u, 1028443341u, 0u, 0, REMAINDERF_TOLERANCE, 0},
+{862, 1036831949u, 1036831949u, 0u, 0, REMAINDERF_TOLERANCE, 0},
+{863, 1036831949u, 1041865114u, 3175926990u, 0, REMAINDERF_TOLERANCE, 0},
+{864, 1036831949u, 1045220557u, 1036831949u, 0, REMAINDERF_TOLERANCE, 0},
+{865, 1036831949u, 1048576000u, 1036831949u, 0, REMAINDERF_TOLERANCE, 0},
+{866, 1036831949u, 1050253722u, 1036831949u, 0, REMAINDERF_TOLERANCE, 0},
+{867, 1036831949u, 1051931443u, 1036831949u, 0, REMAINDERF_TOLERANCE, 0},
+{868, 1036831949u, 1053609165u, 1036831949u, 0, REMAINDERF_TOLERANCE, 0},
+{869, 1036831949u, 1055286886u, 1036831949u, 0, REMAINDERF_TOLERANCE, 0},
+{870, 1036831949u, 1056964608u, 1036831949u, 0, REMAINDERF_TOLERANCE, 0},
+{871, 1036831949u, 1057803469u, 1036831949u, 0, REMAINDERF_TOLERANCE, 0},
+{872, 1036831949u, 1058642330u, 1036831949u, 0, REMAINDERF_TOLERANCE, 0},
+{873, 1036831949u, 1059481190u, 1036831949u, 0, REMAINDERF_TOLERANCE, 0},
+{874, 1036831949u, 1060320051u, 1036831949u, 0, REMAINDERF_TOLERANCE, 0},
+{875, 1036831949u, 1061158912u, 1036831949u, 0, REMAINDERF_TOLERANCE, 0},
+{876, 1036831949u, 1061997773u, 1036831949u, 0, REMAINDERF_TOLERANCE, 0},
+{877, 1036831949u, 1062836634u, 1036831949u, 0, REMAINDERF_TOLERANCE, 0},
+{878, 1036831949u, 1063675494u, 1036831949u, 0, REMAINDERF_TOLERANCE, 0},
+{879, 1036831949u, 1064514355u, 1036831949u, 0, REMAINDERF_TOLERANCE, 0},
+{880, 1041865114u, 3212836864u, 1041865114u, 0, REMAINDERF_TOLERANCE, 0},
+{881, 1041865114u, 3211998003u, 1041865114u, 0, REMAINDERF_TOLERANCE, 0},
+{882, 1041865114u, 3211159142u, 1041865114u, 0, REMAINDERF_TOLERANCE, 0},
+{883, 1041865114u, 3210320282u, 1041865114u, 0, REMAINDERF_TOLERANCE, 0},
+{884, 1041865114u, 3209481421u, 1041865114u, 0, REMAINDERF_TOLERANCE, 0},
+{885, 1041865114u, 3208642560u, 1041865114u, 0, REMAINDERF_TOLERANCE, 0},
+{886, 1041865114u, 3207803699u, 1041865114u, 0, REMAINDERF_TOLERANCE, 0},
+{887, 1041865114u, 3206964838u, 1041865114u, 0, REMAINDERF_TOLERANCE, 0},
+{888, 1041865114u, 3206125978u, 1041865114u, 0, REMAINDERF_TOLERANCE, 0},
+{889, 1041865114u, 3205287117u, 1041865114u, 0, REMAINDERF_TOLERANCE, 0},
+{890, 1041865114u, 3204448256u, 1041865114u, 0, REMAINDERF_TOLERANCE, 0},
+{891, 1041865114u, 3202770534u, 1041865114u, 0, REMAINDERF_TOLERANCE, 0},
+{892, 1041865114u, 3201092813u, 1041865114u, 0, REMAINDERF_TOLERANCE, 0},
+{893, 1041865114u, 3199415091u, 1041865114u, 0, REMAINDERF_TOLERANCE, 0},
+{894, 1041865114u, 3197737370u, 1041865114u, 0, REMAINDERF_TOLERANCE, 0},
+{895, 1041865114u, 3196059648u, 3184315596u, 0, REMAINDERF_TOLERANCE, 0},
+{896, 1041865114u, 3192704205u, 3175926988u, 0, REMAINDERF_TOLERANCE, 0},
+{897, 1041865114u, 3189348762u, 0u, 0, REMAINDERF_TOLERANCE, 0},
+{898, 1041865114u, 3184315597u, 3175926988u, 0, REMAINDERF_TOLERANCE, 0},
+{899, 1041865114u, 3175926989u, 830472192u, 0, REMAINDERF_TOLERANCE, 0},
+{900, 1041865114u, 632815616u, 2770337792u, 0, REMAINDERF_TOLERANCE, 0},
+{901, 1041865114u, 1028443341u, 830472192u, 0, REMAINDERF_TOLERANCE, 0},
+{902, 1041865114u, 1036831949u, 3175926988u, 0, REMAINDERF_TOLERANCE, 0},
+{903, 1041865114u, 1041865114u, 0u, 0, REMAINDERF_TOLERANCE, 0},
+{904, 1041865114u, 1045220557u, 3175926988u, 0, REMAINDERF_TOLERANCE, 0},
+{905, 1041865114u, 1048576000u, 3184315596u, 0, REMAINDERF_TOLERANCE, 0},
+{906, 1041865114u, 1050253722u, 1041865114u, 0, REMAINDERF_TOLERANCE, 0},
+{907, 1041865114u, 1051931443u, 1041865114u, 0, REMAINDERF_TOLERANCE, 0},
+{908, 1041865114u, 1053609165u, 1041865114u, 0, REMAINDERF_TOLERANCE, 0},
+{909, 1041865114u, 1055286886u, 1041865114u, 0, REMAINDERF_TOLERANCE, 0},
+{910, 1041865114u, 1056964608u, 1041865114u, 0, REMAINDERF_TOLERANCE, 0},
+{911, 1041865114u, 1057803469u, 1041865114u, 0, REMAINDERF_TOLERANCE, 0},
+{912, 1041865114u, 1058642330u, 1041865114u, 0, REMAINDERF_TOLERANCE, 0},
+{913, 1041865114u, 1059481190u, 1041865114u, 0, REMAINDERF_TOLERANCE, 0},
+{914, 1041865114u, 1060320051u, 1041865114u, 0, REMAINDERF_TOLERANCE, 0},
+{915, 1041865114u, 1061158912u, 1041865114u, 0, REMAINDERF_TOLERANCE, 0},
+{916, 1041865114u, 1061997773u, 1041865114u, 0, REMAINDERF_TOLERANCE, 0},
+{917, 1041865114u, 1062836634u, 1041865114u, 0, REMAINDERF_TOLERANCE, 0},
+{918, 1041865114u, 1063675494u, 1041865114u, 0, REMAINDERF_TOLERANCE, 0},
+{919, 1041865114u, 1064514355u, 1041865114u, 0, REMAINDERF_TOLERANCE, 0},
+{920, 1045220557u, 3212836864u, 1045220557u, 0, REMAINDERF_TOLERANCE, 0},
+{921, 1045220557u, 3211998003u, 1045220557u, 0, REMAINDERF_TOLERANCE, 0},
+{922, 1045220557u, 3211159142u, 1045220557u, 0, REMAINDERF_TOLERANCE, 0},
+{923, 1045220557u, 3210320282u, 1045220557u, 0, REMAINDERF_TOLERANCE, 0},
+{924, 1045220557u, 3209481421u, 1045220557u, 0, REMAINDERF_TOLERANCE, 0},
+{925, 1045220557u, 3208642560u, 1045220557u, 0, REMAINDERF_TOLERANCE, 0},
+{926, 1045220557u, 3207803699u, 1045220557u, 0, REMAINDERF_TOLERANCE, 0},
+{927, 1045220557u, 3206964838u, 1045220557u, 0, REMAINDERF_TOLERANCE, 0},
+{928, 1045220557u, 3206125978u, 1045220557u, 0, REMAINDERF_TOLERANCE, 0},
+{929, 1045220557u, 3205287117u, 1045220557u, 0, REMAINDERF_TOLERANCE, 0},
+{930, 1045220557u, 3204448256u, 1045220557u, 0, REMAINDERF_TOLERANCE, 0},
+{931, 1045220557u, 3202770534u, 1045220557u, 0, REMAINDERF_TOLERANCE, 0},
+{932, 1045220557u, 3201092813u, 1045220557u, 0, REMAINDERF_TOLERANCE, 0},
+{933, 1045220557u, 3199415091u, 3189348761u, 0, REMAINDERF_TOLERANCE, 0},
+{934, 1045220557u, 3197737370u, 3184315598u, 0, REMAINDERF_TOLERANCE, 0},
+{935, 1045220557u, 3196059648u, 3175926988u, 0, REMAINDERF_TOLERANCE, 0},
+{936, 1045220557u, 3192704205u, 0u, 0, REMAINDERF_TOLERANCE, 0},
+{937, 1045220557u, 3189348762u, 1028443340u, 0, REMAINDERF_TOLERANCE, 0},
+{938, 1045220557u, 3184315597u, 0u, 0, REMAINDERF_TOLERANCE, 0},
+{939, 1045220557u, 3175926989u, 0u, 0, REMAINDERF_TOLERANCE, 0},
+{940, 1045220557u, 632815616u, 595591168u, 0, REMAINDERF_TOLERANCE, 0},
+{941, 1045220557u, 1028443341u, 0u, 0, REMAINDERF_TOLERANCE, 0},
+{942, 1045220557u, 1036831949u, 0u, 0, REMAINDERF_TOLERANCE, 0},
+{943, 1045220557u, 1041865114u, 1028443340u, 0, REMAINDERF_TOLERANCE, 0},
+{944, 1045220557u, 1045220557u, 0u, 0, REMAINDERF_TOLERANCE, 0},
+{945, 1045220557u, 1048576000u, 3175926988u, 0, REMAINDERF_TOLERANCE, 0},
+{946, 1045220557u, 1050253722u, 3184315598u, 0, REMAINDERF_TOLERANCE, 0},
+{947, 1045220557u, 1051931443u, 3189348761u, 0, REMAINDERF_TOLERANCE, 0},
+{948, 1045220557u, 1053609165u, 1045220557u, 0, REMAINDERF_TOLERANCE, 0},
+{949, 1045220557u, 1055286886u, 1045220557u, 0, REMAINDERF_TOLERANCE, 0},
+{950, 1045220557u, 1056964608u, 1045220557u, 0, REMAINDERF_TOLERANCE, 0},
+{951, 1045220557u, 1057803469u, 1045220557u, 0, REMAINDERF_TOLERANCE, 0},
+{952, 1045220557u, 1058642330u, 1045220557u, 0, REMAINDERF_TOLERANCE, 0},
+{953, 1045220557u, 1059481190u, 1045220557u, 0, REMAINDERF_TOLERANCE, 0},
+{954, 1045220557u, 1060320051u, 1045220557u, 0, REMAINDERF_TOLERANCE, 0},
+{955, 1045220557u, 1061158912u, 1045220557u, 0, REMAINDERF_TOLERANCE, 0},
+{956, 1045220557u, 1061997773u, 1045220557u, 0, REMAINDERF_TOLERANCE, 0},
+{957, 1045220557u, 1062836634u, 1045220557u, 0, REMAINDERF_TOLERANCE, 0},
+{958, 1045220557u, 1063675494u, 1045220557u, 0, REMAINDERF_TOLERANCE, 0},
+{959, 1045220557u, 1064514355u, 1045220557u, 0, REMAINDERF_TOLERANCE, 0},
+{960, 1048576000u, 3212836864u, 1048576000u, 0, REMAINDERF_TOLERANCE, 0},
+{961, 1048576000u, 3211998003u, 1048576000u, 0, REMAINDERF_TOLERANCE, 0},
+{962, 1048576000u, 3211159142u, 1048576000u, 0, REMAINDERF_TOLERANCE, 0},
+{963, 1048576000u, 3210320282u, 1048576000u, 0, REMAINDERF_TOLERANCE, 0},
+{964, 1048576000u, 3209481421u, 1048576000u, 0, REMAINDERF_TOLERANCE, 0},
+{965, 1048576000u, 3208642560u, 1048576000u, 0, REMAINDERF_TOLERANCE, 0},
+{966, 1048576000u, 3207803699u, 1048576000u, 0, REMAINDERF_TOLERANCE, 0},
+{967, 1048576000u, 3206964838u, 1048576000u, 0, REMAINDERF_TOLERANCE, 0},
+{968, 1048576000u, 3206125978u, 1048576000u, 0, REMAINDERF_TOLERANCE, 0},
+{969, 1048576000u, 3205287117u, 1048576000u, 0, REMAINDERF_TOLERANCE, 0},
+{970, 1048576000u, 3204448256u, 1048576000u, 0, REMAINDERF_TOLERANCE, 0},
+{971, 1048576000u, 3202770534u, 3192704204u, 0, REMAINDERF_TOLERANCE, 0},
+{972, 1048576000u, 3201092813u, 3189348762u, 0, REMAINDERF_TOLERANCE, 0},
+{973, 1048576000u, 3199415091u, 3184315596u, 0, REMAINDERF_TOLERANCE, 0},
+{974, 1048576000u, 3197737370u, 3175926992u, 0, REMAINDERF_TOLERANCE, 0},
+{975, 1048576000u, 3196059648u, 0u, 0, REMAINDERF_TOLERANCE, 0},
+{976, 1048576000u, 3192704205u, 1028443340u, 0, REMAINDERF_TOLERANCE, 0},
+{977, 1048576000u, 3189348762u, 3175926992u, 0, REMAINDERF_TOLERANCE, 0},
+{978, 1048576000u, 3184315597u, 1028443340u, 0, REMAINDERF_TOLERANCE, 0},
+{979, 1048576000u, 3175926989u, 2977955840u, 0, REMAINDERF_TOLERANCE, 0},
+{980, 1048576000u, 632815616u, 2771386368u, 0, REMAINDERF_TOLERANCE, 0},
+{981, 1048576000u, 1028443341u, 2977955840u, 0, REMAINDERF_TOLERANCE, 0},
+{982, 1048576000u, 1036831949u, 1028443340u, 0, REMAINDERF_TOLERANCE, 0},
+{983, 1048576000u, 1041865114u, 3175926992u, 0, REMAINDERF_TOLERANCE, 0},
+{984, 1048576000u, 1045220557u, 1028443340u, 0, REMAINDERF_TOLERANCE, 0},
+{985, 1048576000u, 1048576000u, 0u, 0, REMAINDERF_TOLERANCE, 0},
+{986, 1048576000u, 1050253722u, 3175926992u, 0, REMAINDERF_TOLERANCE, 0},
+{987, 1048576000u, 1051931443u, 3184315596u, 0, REMAINDERF_TOLERANCE, 0},
+{988, 1048576000u, 1053609165u, 3189348762u, 0, REMAINDERF_TOLERANCE, 0},
+{989, 1048576000u, 1055286886u, 3192704204u, 0, REMAINDERF_TOLERANCE, 0},
+{990, 1048576000u, 1056964608u, 1048576000u, 0, REMAINDERF_TOLERANCE, 0},
+{991, 1048576000u, 1057803469u, 1048576000u, 0, REMAINDERF_TOLERANCE, 0},
+{992, 1048576000u, 1058642330u, 1048576000u, 0, REMAINDERF_TOLERANCE, 0},
+{993, 1048576000u, 1059481190u, 1048576000u, 0, REMAINDERF_TOLERANCE, 0},
+{994, 1048576000u, 1060320051u, 1048576000u, 0, REMAINDERF_TOLERANCE, 0},
+{995, 1048576000u, 1061158912u, 1048576000u, 0, REMAINDERF_TOLERANCE, 0},
+{996, 1048576000u, 1061997773u, 1048576000u, 0, REMAINDERF_TOLERANCE, 0},
+{997, 1048576000u, 1062836634u, 1048576000u, 0, REMAINDERF_TOLERANCE, 0},
+{998, 1048576000u, 1063675494u, 1048576000u, 0, REMAINDERF_TOLERANCE, 0},
+{999, 1048576000u, 1064514355u, 1048576000u, 0, REMAINDERF_TOLERANCE, 0},
+{1000, 1050253722u, 3212836864u, 1050253722u, 0, REMAINDERF_TOLERANCE, 0},
+{1001, 1050253722u, 3211998003u, 1050253722u, 0, REMAINDERF_TOLERANCE, 0},
+{1002, 1050253722u, 3211159142u, 1050253722u, 0, REMAINDERF_TOLERANCE, 0},
+{1003, 1050253722u, 3210320282u, 1050253722u, 0, REMAINDERF_TOLERANCE, 0},
+{1004, 1050253722u, 3209481421u, 1050253722u, 0, REMAINDERF_TOLERANCE, 0},
+{1005, 1050253722u, 3208642560u, 1050253722u, 0, REMAINDERF_TOLERANCE, 0},
+{1006, 1050253722u, 3207803699u, 1050253722u, 0, REMAINDERF_TOLERANCE, 0},
+{1007, 1050253722u, 3206964838u, 1050253722u, 0, REMAINDERF_TOLERANCE, 0},
+{1008, 1050253722u, 3206125978u, 1050253722u, 0, REMAINDERF_TOLERANCE, 0},
+{1009, 1050253722u, 3205287117u, 3196059648u, 0, REMAINDERF_TOLERANCE, 0},
+{1010, 1050253722u, 3204448256u, 3192704204u, 0, REMAINDERF_TOLERANCE, 0},
+{1011, 1050253722u, 3202770534u, 3189348760u, 0, REMAINDERF_TOLERANCE, 0},
+{1012, 1050253722u, 3201092813u, 3184315596u, 0, REMAINDERF_TOLERANCE, 0},
+{1013, 1050253722u, 3199415091u, 3175926984u, 0, REMAINDERF_TOLERANCE, 0},
+{1014, 1050253722u, 3197737370u, 0u, 0, REMAINDERF_TOLERANCE, 0},
+{1015, 1050253722u, 3196059648u, 1028443344u, 0, REMAINDERF_TOLERANCE, 0},
+{1016, 1050253722u, 3192704205u, 3184315596u, 0, REMAINDERF_TOLERANCE, 0},
+{1017, 1050253722u, 3189348762u, 0u, 0, REMAINDERF_TOLERANCE, 0},
+{1018, 1050253722u, 3184315597u, 838860800u, 0, REMAINDERF_TOLERANCE, 0},
+{1019, 1050253722u, 3175926989u, 838860800u, 0, REMAINDERF_TOLERANCE, 0},
+{1020, 1050253722u, 632815616u, 608174080u, 0, REMAINDERF_TOLERANCE, 0},
+{1021, 1050253722u, 1028443341u, 838860800u, 0, REMAINDERF_TOLERANCE, 0},
+{1022, 1050253722u, 1036831949u, 838860800u, 0, REMAINDERF_TOLERANCE, 0},
+{1023, 1050253722u, 1041865114u, 0u, 0, REMAINDERF_TOLERANCE, 0},
+{1024, 1050253722u, 1045220557u, 3184315596u, 0, REMAINDERF_TOLERANCE, 0},
+{1025, 1050253722u, 1048576000u, 1028443344u, 0, REMAINDERF_TOLERANCE, 0},
+{1026, 1050253722u, 1050253722u, 0u, 0, REMAINDERF_TOLERANCE, 0},
+{1027, 1050253722u, 1051931443u, 3175926984u, 0, REMAINDERF_TOLERANCE, 0},
+{1028, 1050253722u, 1053609165u, 3184315596u, 0, REMAINDERF_TOLERANCE, 0},
+{1029, 1050253722u, 1055286886u, 3189348760u, 0, REMAINDERF_TOLERANCE, 0},
+{1030, 1050253722u, 1056964608u, 3192704204u, 0, REMAINDERF_TOLERANCE, 0},
+{1031, 1050253722u, 1057803469u, 3196059648u, 0, REMAINDERF_TOLERANCE, 0},
+{1032, 1050253722u, 1058642330u, 1050253722u, 0, REMAINDERF_TOLERANCE, 0},
+{1033, 1050253722u, 1059481190u, 1050253722u, 0, REMAINDERF_TOLERANCE, 0},
+{1034, 1050253722u, 1060320051u, 1050253722u, 0, REMAINDERF_TOLERANCE, 0},
+{1035, 1050253722u, 1061158912u, 1050253722u, 0, REMAINDERF_TOLERANCE, 0},
+{1036, 1050253722u, 1061997773u, 1050253722u, 0, REMAINDERF_TOLERANCE, 0},
+{1037, 1050253722u, 1062836634u, 1050253722u, 0, REMAINDERF_TOLERANCE, 0},
+{1038, 1050253722u, 1063675494u, 1050253722u, 0, REMAINDERF_TOLERANCE, 0},
+{1039, 1050253722u, 1064514355u, 1050253722u, 0, REMAINDERF_TOLERANCE, 0},
+{1040, 1051931443u, 3212836864u, 1051931443u, 0, REMAINDERF_TOLERANCE, 0},
+{1041, 1051931443u, 3211998003u, 1051931443u, 0, REMAINDERF_TOLERANCE, 0},
+{1042, 1051931443u, 3211159142u, 1051931443u, 0, REMAINDERF_TOLERANCE, 0},
+{1043, 1051931443u, 3210320282u, 1051931443u, 0, REMAINDERF_TOLERANCE, 0},
+{1044, 1051931443u, 3209481421u, 1051931443u, 0, REMAINDERF_TOLERANCE, 0},
+{1045, 1051931443u, 3208642560u, 1051931443u, 0, REMAINDERF_TOLERANCE, 0},
+{1046, 1051931443u, 3207803699u, 1051931443u, 0, REMAINDERF_TOLERANCE, 0},
+{1047, 1051931443u, 3206964838u, 3197737369u, 0, REMAINDERF_TOLERANCE, 0},
+{1048, 1051931443u, 3206125978u, 3196059649u, 0, REMAINDERF_TOLERANCE, 0},
+{1049, 1051931443u, 3205287117u, 3192704206u, 0, REMAINDERF_TOLERANCE, 0},
+{1050, 1051931443u, 3204448256u, 3189348762u, 0, REMAINDERF_TOLERANCE, 0},
+{1051, 1051931443u, 3202770534u, 3184315596u, 0, REMAINDERF_TOLERANCE, 0},
+{1052, 1051931443u, 3201092813u, 3175926992u, 0, REMAINDERF_TOLERANCE, 0},
+{1053, 1051931443u, 3199415091u, 0u, 0, REMAINDERF_TOLERANCE, 0},
+{1054, 1051931443u, 3197737370u, 1028443336u, 0, REMAINDERF_TOLERANCE, 0},
+{1055, 1051931443u, 3196059648u, 1036831948u, 0, REMAINDERF_TOLERANCE, 0},
+{1056, 1051931443u, 3192704205u, 3175926992u, 0, REMAINDERF_TOLERANCE, 0},
+{1057, 1051931443u, 3189348762u, 1028443336u, 0, REMAINDERF_TOLERANCE, 0},
+{1058, 1051931443u, 3184315597u, 1028443338u, 0, REMAINDERF_TOLERANCE, 0},
+{1059, 1051931443u, 3175926989u, 2990538752u, 0, REMAINDERF_TOLERANCE, 0},
+{1060, 1051931443u, 632815616u, 623902720u, 0, REMAINDERF_TOLERANCE, 0},
+{1061, 1051931443u, 1028443341u, 2990538752u, 0, REMAINDERF_TOLERANCE, 0},
+{1062, 1051931443u, 1036831949u, 1028443338u, 0, REMAINDERF_TOLERANCE, 0},
+{1063, 1051931443u, 1041865114u, 1028443336u, 0, REMAINDERF_TOLERANCE, 0},
+{1064, 1051931443u, 1045220557u, 3175926992u, 0, REMAINDERF_TOLERANCE, 0},
+{1065, 1051931443u, 1048576000u, 1036831948u, 0, REMAINDERF_TOLERANCE, 0},
+{1066, 1051931443u, 1050253722u, 1028443336u, 0, REMAINDERF_TOLERANCE, 0},
+{1067, 1051931443u, 1051931443u, 0u, 0, REMAINDERF_TOLERANCE, 0},
+{1068, 1051931443u, 1053609165u, 3175926992u, 0, REMAINDERF_TOLERANCE, 0},
+{1069, 1051931443u, 1055286886u, 3184315596u, 0, REMAINDERF_TOLERANCE, 0},
+{1070, 1051931443u, 1056964608u, 3189348762u, 0, REMAINDERF_TOLERANCE, 0},
+{1071, 1051931443u, 1057803469u, 3192704206u, 0, REMAINDERF_TOLERANCE, 0},
+{1072, 1051931443u, 1058642330u, 3196059649u, 0, REMAINDERF_TOLERANCE, 0},
+{1073, 1051931443u, 1059481190u, 3197737369u, 0, REMAINDERF_TOLERANCE, 0},
+{1074, 1051931443u, 1060320051u, 1051931443u, 0, REMAINDERF_TOLERANCE, 0},
+{1075, 1051931443u, 1061158912u, 1051931443u, 0, REMAINDERF_TOLERANCE, 0},
+{1076, 1051931443u, 1061997773u, 1051931443u, 0, REMAINDERF_TOLERANCE, 0},
+{1077, 1051931443u, 1062836634u, 1051931443u, 0, REMAINDERF_TOLERANCE, 0},
+{1078, 1051931443u, 1063675494u, 1051931443u, 0, REMAINDERF_TOLERANCE, 0},
+{1079, 1051931443u, 1064514355u, 1051931443u, 0, REMAINDERF_TOLERANCE, 0},
+{1080, 1053609165u, 3212836864u, 1053609165u, 0, REMAINDERF_TOLERANCE, 0},
+{1081, 1053609165u, 3211998003u, 1053609165u, 0, REMAINDERF_TOLERANCE, 0},
+{1082, 1053609165u, 3211159142u, 1053609165u, 0, REMAINDERF_TOLERANCE, 0},
+{1083, 1053609165u, 3210320282u, 1053609165u, 0, REMAINDERF_TOLERANCE, 0},
+{1084, 1053609165u, 3209481421u, 1053609165u, 0, REMAINDERF_TOLERANCE, 0},
+{1085, 1053609165u, 3208642560u, 3199415091u, 0, REMAINDERF_TOLERANCE, 0},
+{1086, 1053609165u, 3207803699u, 3197737369u, 0, REMAINDERF_TOLERANCE, 0},
+{1087, 1053609165u, 3206964838u, 3196059646u, 0, REMAINDERF_TOLERANCE, 0},
+{1088, 1053609165u, 3206125978u, 3192704206u, 0, REMAINDERF_TOLERANCE, 0},
+{1089, 1053609165u, 3205287117u, 3189348762u, 0, REMAINDERF_TOLERANCE, 0},
+{1090, 1053609165u, 3204448256u, 3184315596u, 0, REMAINDERF_TOLERANCE, 0},
+{1091, 1053609165u, 3202770534u, 3175926984u, 0, REMAINDERF_TOLERANCE, 0},
+{1092, 1053609165u, 3201092813u, 0u, 0, REMAINDERF_TOLERANCE, 0},
+{1093, 1053609165u, 3199415091u, 1028443344u, 0, REMAINDERF_TOLERANCE, 0},
+{1094, 1053609165u, 3197737370u, 1036831948u, 0, REMAINDERF_TOLERANCE, 0},
+{1095, 1053609165u, 3196059648u, 3184315596u, 0, REMAINDERF_TOLERANCE, 0},
+{1096, 1053609165u, 3192704205u, 0u, 0, REMAINDERF_TOLERANCE, 0},
+{1097, 1053609165u, 3189348762u, 3175926992u, 0, REMAINDERF_TOLERANCE, 0},
+{1098, 1053609165u, 3184315597u, 0u, 0, REMAINDERF_TOLERANCE, 0},
+{1099, 1053609165u, 3175926989u, 0u, 0, REMAINDERF_TOLERANCE, 0},
+{1100, 1053609165u, 632815616u, 603979776u, 0, REMAINDERF_TOLERANCE, 0},
+{1101, 1053609165u, 1028443341u, 0u, 0, REMAINDERF_TOLERANCE, 0},
+{1102, 1053609165u, 1036831949u, 0u, 0, REMAINDERF_TOLERANCE, 0},
+{1103, 1053609165u, 1041865114u, 3175926992u, 0, REMAINDERF_TOLERANCE, 0},
+{1104, 1053609165u, 1045220557u, 0u, 0, REMAINDERF_TOLERANCE, 0},
+{1105, 1053609165u, 1048576000u, 3184315596u, 0, REMAINDERF_TOLERANCE, 0},
+{1106, 1053609165u, 1050253722u, 1036831948u, 0, REMAINDERF_TOLERANCE, 0},
+{1107, 1053609165u, 1051931443u, 1028443344u, 0, REMAINDERF_TOLERANCE, 0},
+{1108, 1053609165u, 1053609165u, 0u, 0, REMAINDERF_TOLERANCE, 0},
+{1109, 1053609165u, 1055286886u, 3175926984u, 0, REMAINDERF_TOLERANCE, 0},
+{1110, 1053609165u, 1056964608u, 3184315596u, 0, REMAINDERF_TOLERANCE, 0},
+{1111, 1053609165u, 1057803469u, 3189348762u, 0, REMAINDERF_TOLERANCE, 0},
+{1112, 1053609165u, 1058642330u, 3192704206u, 0, REMAINDERF_TOLERANCE, 0},
+{1113, 1053609165u, 1059481190u, 3196059646u, 0, REMAINDERF_TOLERANCE, 0},
+{1114, 1053609165u, 1060320051u, 3197737369u, 0, REMAINDERF_TOLERANCE, 0},
+{1115, 1053609165u, 1061158912u, 3199415091u, 0, REMAINDERF_TOLERANCE, 0},
+{1116, 1053609165u, 1061997773u, 1053609165u, 0, REMAINDERF_TOLERANCE, 0},
+{1117, 1053609165u, 1062836634u, 1053609165u, 0, REMAINDERF_TOLERANCE, 0},
+{1118, 1053609165u, 1063675494u, 1053609165u, 0, REMAINDERF_TOLERANCE, 0},
+{1119, 1053609165u, 1064514355u, 1053609165u, 0, REMAINDERF_TOLERANCE, 0},
+{1120, 1055286886u, 3212836864u, 1055286886u, 0, REMAINDERF_TOLERANCE, 0},
+{1121, 1055286886u, 3211998003u, 1055286886u, 0, REMAINDERF_TOLERANCE, 0},
+{1122, 1055286886u, 3211159142u, 1055286886u, 0, REMAINDERF_TOLERANCE, 0},
+{1123, 1055286886u, 3210320282u, 3201092814u, 0, REMAINDERF_TOLERANCE, 0},
+{1124, 1055286886u, 3209481421u, 3199415092u, 0, REMAINDERF_TOLERANCE, 0},
+{1125, 1055286886u, 3208642560u, 3197737370u, 0, REMAINDERF_TOLERANCE, 0},
+{1126, 1055286886u, 3207803699u, 3196059648u, 0, REMAINDERF_TOLERANCE, 0},
+{1127, 1055286886u, 3206964838u, 3192704204u, 0, REMAINDERF_TOLERANCE, 0},
+{1128, 1055286886u, 3206125978u, 3189348764u, 0, REMAINDERF_TOLERANCE, 0},
+{1129, 1055286886u, 3205287117u, 3184315600u, 0, REMAINDERF_TOLERANCE, 0},
+{1130, 1055286886u, 3204448256u, 3175926992u, 0, REMAINDERF_TOLERANCE, 0},
+{1131, 1055286886u, 3202770534u, 0u, 0, REMAINDERF_TOLERANCE, 0},
+{1132, 1055286886u, 3201092813u, 1028443336u, 0, REMAINDERF_TOLERANCE, 0},
+{1133, 1055286886u, 3199415091u, 1036831948u, 0, REMAINDERF_TOLERANCE, 0},
+{1134, 1055286886u, 3197737370u, 1041865112u, 0, REMAINDERF_TOLERANCE, 0},
+{1135, 1055286886u, 3196059648u, 3175926992u, 0, REMAINDERF_TOLERANCE, 0},
+{1136, 1055286886u, 3192704205u, 1028443336u, 0, REMAINDERF_TOLERANCE, 0},
+{1137, 1055286886u, 3189348762u, 3003121664u, 0, REMAINDERF_TOLERANCE, 0},
+{1138, 1055286886u, 3184315597u, 1028443336u, 0, REMAINDERF_TOLERANCE, 0},
+{1139, 1055286886u, 3175926989u, 2996830208u, 0, REMAINDERF_TOLERANCE, 0},
+{1140, 1055286886u, 632815616u, 622854144u, 0, REMAINDERF_TOLERANCE, 0},
+{1141, 1055286886u, 1028443341u, 2996830208u, 0, REMAINDERF_TOLERANCE, 0},
+{1142, 1055286886u, 1036831949u, 1028443336u, 0, REMAINDERF_TOLERANCE, 0},
+{1143, 1055286886u, 1041865114u, 3003121664u, 0, REMAINDERF_TOLERANCE, 0},
+{1144, 1055286886u, 1045220557u, 1028443336u, 0, REMAINDERF_TOLERANCE, 0},
+{1145, 1055286886u, 1048576000u, 3175926992u, 0, REMAINDERF_TOLERANCE, 0},
+{1146, 1055286886u, 1050253722u, 1041865112u, 0, REMAINDERF_TOLERANCE, 0},
+{1147, 1055286886u, 1051931443u, 1036831948u, 0, REMAINDERF_TOLERANCE, 0},
+{1148, 1055286886u, 1053609165u, 1028443336u, 0, REMAINDERF_TOLERANCE, 0},
+{1149, 1055286886u, 1055286886u, 0u, 0, REMAINDERF_TOLERANCE, 0},
+{1150, 1055286886u, 1056964608u, 3175926992u, 0, REMAINDERF_TOLERANCE, 0},
+{1151, 1055286886u, 1057803469u, 3184315600u, 0, REMAINDERF_TOLERANCE, 0},
+{1152, 1055286886u, 1058642330u, 3189348764u, 0, REMAINDERF_TOLERANCE, 0},
+{1153, 1055286886u, 1059481190u, 3192704204u, 0, REMAINDERF_TOLERANCE, 0},
+{1154, 1055286886u, 1060320051u, 3196059648u, 0, REMAINDERF_TOLERANCE, 0},
+{1155, 1055286886u, 1061158912u, 3197737370u, 0, REMAINDERF_TOLERANCE, 0},
+{1156, 1055286886u, 1061997773u, 3199415092u, 0, REMAINDERF_TOLERANCE, 0},
+{1157, 1055286886u, 1062836634u, 3201092814u, 0, REMAINDERF_TOLERANCE, 0},
+{1158, 1055286886u, 1063675494u, 1055286886u, 0, REMAINDERF_TOLERANCE, 0},
+{1159, 1055286886u, 1064514355u, 1055286886u, 0, REMAINDERF_TOLERANCE, 0},
+{1160, 1056964608u, 3212836864u, 1056964608u, 0, REMAINDERF_TOLERANCE, 0},
+{1161, 1056964608u, 3211998003u, 3202770534u, 0, REMAINDERF_TOLERANCE, 0},
+{1162, 1056964608u, 3211159142u, 3201092812u, 0, REMAINDERF_TOLERANCE, 0},
+{1163, 1056964608u, 3210320282u, 3199415092u, 0, REMAINDERF_TOLERANCE, 0},
+{1164, 1056964608u, 3209481421u, 3197737370u, 0, REMAINDERF_TOLERANCE, 0},
+{1165, 1056964608u, 3208642560u, 3196059648u, 0, REMAINDERF_TOLERANCE, 0},
+{1166, 1056964608u, 3207803699u, 3192704204u, 0, REMAINDERF_TOLERANCE, 0},
+{1167, 1056964608u, 3206964838u, 3189348760u, 0, REMAINDERF_TOLERANCE, 0},
+{1168, 1056964608u, 3206125978u, 3184315600u, 0, REMAINDERF_TOLERANCE, 0},
+{1169, 1056964608u, 3205287117u, 3175926992u, 0, REMAINDERF_TOLERANCE, 0},
+{1170, 1056964608u, 3204448256u, 0u, 0, REMAINDERF_TOLERANCE, 0},
+{1171, 1056964608u, 3202770534u, 1028443344u, 0, REMAINDERF_TOLERANCE, 0},
+{1172, 1056964608u, 3201092813u, 1036831948u, 0, REMAINDERF_TOLERANCE, 0},
+{1173, 1056964608u, 3199415091u, 1041865114u, 0, REMAINDERF_TOLERANCE, 0},
+{1174, 1056964608u, 3197737370u, 3184315600u, 0, REMAINDERF_TOLERANCE, 0},
+{1175, 1056964608u, 3196059648u, 0u, 0, REMAINDERF_TOLERANCE, 0},
+{1176, 1056964608u, 3192704205u, 1036831948u, 0, REMAINDERF_TOLERANCE, 0},
+{1177, 1056964608u, 3189348762u, 1028443336u, 0, REMAINDERF_TOLERANCE, 0},
+{1178, 1056964608u, 3184315597u, 2986344448u, 0, REMAINDERF_TOLERANCE, 0},
+{1179, 1056964608u, 3175926989u, 2986344448u, 0, REMAINDERF_TOLERANCE, 0},
+{1180, 1056964608u, 632815616u, 595591168u, 0, REMAINDERF_TOLERANCE, 0},
+{1181, 1056964608u, 1028443341u, 2986344448u, 0, REMAINDERF_TOLERANCE, 0},
+{1182, 1056964608u, 1036831949u, 2986344448u, 0, REMAINDERF_TOLERANCE, 0},
+{1183, 1056964608u, 1041865114u, 1028443336u, 0, REMAINDERF_TOLERANCE, 0},
+{1184, 1056964608u, 1045220557u, 1036831948u, 0, REMAINDERF_TOLERANCE, 0},
+{1185, 1056964608u, 1048576000u, 0u, 0, REMAINDERF_TOLERANCE, 0},
+{1186, 1056964608u, 1050253722u, 3184315600u, 0, REMAINDERF_TOLERANCE, 0},
+{1187, 1056964608u, 1051931443u, 1041865114u, 0, REMAINDERF_TOLERANCE, 0},
+{1188, 1056964608u, 1053609165u, 1036831948u, 0, REMAINDERF_TOLERANCE, 0},
+{1189, 1056964608u, 1055286886u, 1028443344u, 0, REMAINDERF_TOLERANCE, 0},
+{1190, 1056964608u, 1056964608u, 0u, 0, REMAINDERF_TOLERANCE, 0},
+{1191, 1056964608u, 1057803469u, 3175926992u, 0, REMAINDERF_TOLERANCE, 0},
+{1192, 1056964608u, 1058642330u, 3184315600u, 0, REMAINDERF_TOLERANCE, 0},
+{1193, 1056964608u, 1059481190u, 3189348760u, 0, REMAINDERF_TOLERANCE, 0},
+{1194, 1056964608u, 1060320051u, 3192704204u, 0, REMAINDERF_TOLERANCE, 0},
+{1195, 1056964608u, 1061158912u, 3196059648u, 0, REMAINDERF_TOLERANCE, 0},
+{1196, 1056964608u, 1061997773u, 3197737370u, 0, REMAINDERF_TOLERANCE, 0},
+{1197, 1056964608u, 1062836634u, 3199415092u, 0, REMAINDERF_TOLERANCE, 0},
+{1198, 1056964608u, 1063675494u, 3201092812u, 0, REMAINDERF_TOLERANCE, 0},
+{1199, 1056964608u, 1064514355u, 3202770534u, 0, REMAINDERF_TOLERANCE, 0},
+{1200, 1057803469u, 3212836864u, 3202770534u, 0, REMAINDERF_TOLERANCE, 0},
+{1201, 1057803469u, 3211998003u, 3201092812u, 0, REMAINDERF_TOLERANCE, 0},
+{1202, 1057803469u, 3211159142u, 3199415090u, 0, REMAINDERF_TOLERANCE, 0},
+{1203, 1057803469u, 3210320282u, 3197737370u, 0, REMAINDERF_TOLERANCE, 0},
+{1204, 1057803469u, 3209481421u, 3196059648u, 0, REMAINDERF_TOLERANCE, 0},
+{1205, 1057803469u, 3208642560u, 3192704204u, 0, REMAINDERF_TOLERANCE, 0},
+{1206, 1057803469u, 3207803699u, 3189348760u, 0, REMAINDERF_TOLERANCE, 0},
+{1207, 1057803469u, 3206964838u, 3184315592u, 0, REMAINDERF_TOLERANCE, 0},
+{1208, 1057803469u, 3206125978u, 3175926992u, 0, REMAINDERF_TOLERANCE, 0},
+{1209, 1057803469u, 3205287117u, 0u, 0, REMAINDERF_TOLERANCE, 0},
+{1210, 1057803469u, 3204448256u, 1028443344u, 0, REMAINDERF_TOLERANCE, 0},
+{1211, 1057803469u, 3202770534u, 1036831952u, 0, REMAINDERF_TOLERANCE, 0},
+{1212, 1057803469u, 3201092813u, 1041865114u, 0, REMAINDERF_TOLERANCE, 0},
+{1213, 1057803469u, 3199415091u, 3189348760u, 0, REMAINDERF_TOLERANCE, 0},
+{1214, 1057803469u, 3197737370u, 3175926992u, 0, REMAINDERF_TOLERANCE, 0},
+{1215, 1057803469u, 3196059648u, 1028443344u, 0, REMAINDERF_TOLERANCE, 0},
+{1216, 1057803469u, 3192704205u, 3175926988u, 0, REMAINDERF_TOLERANCE, 0},
+{1217, 1057803469u, 3189348762u, 3175926992u, 0, REMAINDERF_TOLERANCE, 0},
+{1218, 1057803469u, 3184315597u, 3175926988u, 0, REMAINDERF_TOLERANCE, 0},
+{1219, 1057803469u, 3175926989u, 830472192u, 0, REMAINDERF_TOLERANCE, 0},
+{1220, 1057803469u, 632815616u, 2768240640u, 0, REMAINDERF_TOLERANCE, 0},
+{1221, 1057803469u, 1028443341u, 830472192u, 0, REMAINDERF_TOLERANCE, 0},
+{1222, 1057803469u, 1036831949u, 3175926988u, 0, REMAINDERF_TOLERANCE, 0},
+{1223, 1057803469u, 1041865114u, 3175926992u, 0, REMAINDERF_TOLERANCE, 0},
+{1224, 1057803469u, 1045220557u, 3175926988u, 0, REMAINDERF_TOLERANCE, 0},
+{1225, 1057803469u, 1048576000u, 1028443344u, 0, REMAINDERF_TOLERANCE, 0},
+{1226, 1057803469u, 1050253722u, 3175926992u, 0, REMAINDERF_TOLERANCE, 0},
+{1227, 1057803469u, 1051931443u, 3189348760u, 0, REMAINDERF_TOLERANCE, 0},
+{1228, 1057803469u, 1053609165u, 1041865114u, 0, REMAINDERF_TOLERANCE, 0},
+{1229, 1057803469u, 1055286886u, 1036831952u, 0, REMAINDERF_TOLERANCE, 0},
+{1230, 1057803469u, 1056964608u, 1028443344u, 0, REMAINDERF_TOLERANCE, 0},
+{1231, 1057803469u, 1057803469u, 0u, 0, REMAINDERF_TOLERANCE, 0},
+{1232, 1057803469u, 1058642330u, 3175926992u, 0, REMAINDERF_TOLERANCE, 0},
+{1233, 1057803469u, 1059481190u, 3184315592u, 0, REMAINDERF_TOLERANCE, 0},
+{1234, 1057803469u, 1060320051u, 3189348760u, 0, REMAINDERF_TOLERANCE, 0},
+{1235, 1057803469u, 1061158912u, 3192704204u, 0, REMAINDERF_TOLERANCE, 0},
+{1236, 1057803469u, 1061997773u, 3196059648u, 0, REMAINDERF_TOLERANCE, 0},
+{1237, 1057803469u, 1062836634u, 3197737370u, 0, REMAINDERF_TOLERANCE, 0},
+{1238, 1057803469u, 1063675494u, 3199415090u, 0, REMAINDERF_TOLERANCE, 0},
+{1239, 1057803469u, 1064514355u, 3201092812u, 0, REMAINDERF_TOLERANCE, 0},
+{1240, 1058642330u, 3212836864u, 3201092812u, 0, REMAINDERF_TOLERANCE, 0},
+{1241, 1058642330u, 3211998003u, 3199415090u, 0, REMAINDERF_TOLERANCE, 0},
+{1242, 1058642330u, 3211159142u, 3197737368u, 0, REMAINDERF_TOLERANCE, 0},
+{1243, 1058642330u, 3210320282u, 3196059648u, 0, REMAINDERF_TOLERANCE, 0},
+{1244, 1058642330u, 3209481421u, 3192704204u, 0, REMAINDERF_TOLERANCE, 0},
+{1245, 1058642330u, 3208642560u, 3189348760u, 0, REMAINDERF_TOLERANCE, 0},
+{1246, 1058642330u, 3207803699u, 3184315592u, 0, REMAINDERF_TOLERANCE, 0},
+{1247, 1058642330u, 3206964838u, 3175926976u, 0, REMAINDERF_TOLERANCE, 0},
+{1248, 1058642330u, 3206125978u, 0u, 0, REMAINDERF_TOLERANCE, 0},
+{1249, 1058642330u, 3205287117u, 1028443344u, 0, REMAINDERF_TOLERANCE, 0},
+{1250, 1058642330u, 3204448256u, 1036831952u, 0, REMAINDERF_TOLERANCE, 0},
+{1251, 1058642330u, 3202770534u, 1041865116u, 0, REMAINDERF_TOLERANCE, 0},
+{1252, 1058642330u, 3201092813u, 3192704204u, 0, REMAINDERF_TOLERANCE, 0},
+{1253, 1058642330u, 3199415091u, 3184315592u, 0, REMAINDERF_TOLERANCE, 0},
+{1254, 1058642330u, 3197737370u, 0u, 0, REMAINDERF_TOLERANCE, 0},
+{1255, 1058642330u, 3196059648u, 1036831952u, 0, REMAINDERF_TOLERANCE, 0},
+{1256, 1058642330u, 3192704205u, 847249408u, 0, REMAINDERF_TOLERANCE, 0},
+{1257, 1058642330u, 3189348762u, 0u, 0, REMAINDERF_TOLERANCE, 0},
+{1258, 1058642330u, 3184315597u, 847249408u, 0, REMAINDERF_TOLERANCE, 0},
+{1259, 1058642330u, 3175926989u, 847249408u, 0, REMAINDERF_TOLERANCE, 0},
+{1260, 1058642330u, 632815616u, 616562688u, 0, REMAINDERF_TOLERANCE, 0},
+{1261, 1058642330u, 1028443341u, 847249408u, 0, REMAINDERF_TOLERANCE, 0},
+{1262, 1058642330u, 1036831949u, 847249408u, 0, REMAINDERF_TOLERANCE, 0},
+{1263, 1058642330u, 1041865114u, 0u, 0, REMAINDERF_TOLERANCE, 0},
+{1264, 1058642330u, 1045220557u, 847249408u, 0, REMAINDERF_TOLERANCE, 0},
+{1265, 1058642330u, 1048576000u, 1036831952u, 0, REMAINDERF_TOLERANCE, 0},
+{1266, 1058642330u, 1050253722u, 0u, 0, REMAINDERF_TOLERANCE, 0},
+{1267, 1058642330u, 1051931443u, 3184315592u, 0, REMAINDERF_TOLERANCE, 0},
+{1268, 1058642330u, 1053609165u, 3192704204u, 0, REMAINDERF_TOLERANCE, 0},
+{1269, 1058642330u, 1055286886u, 1041865116u, 0, REMAINDERF_TOLERANCE, 0},
+{1270, 1058642330u, 1056964608u, 1036831952u, 0, REMAINDERF_TOLERANCE, 0},
+{1271, 1058642330u, 1057803469u, 1028443344u, 0, REMAINDERF_TOLERANCE, 0},
+{1272, 1058642330u, 1058642330u, 0u, 0, REMAINDERF_TOLERANCE, 0},
+{1273, 1058642330u, 1059481190u, 3175926976u, 0, REMAINDERF_TOLERANCE, 0},
+{1274, 1058642330u, 1060320051u, 3184315592u, 0, REMAINDERF_TOLERANCE, 0},
+{1275, 1058642330u, 1061158912u, 3189348760u, 0, REMAINDERF_TOLERANCE, 0},
+{1276, 1058642330u, 1061997773u, 3192704204u, 0, REMAINDERF_TOLERANCE, 0},
+{1277, 1058642330u, 1062836634u, 3196059648u, 0, REMAINDERF_TOLERANCE, 0},
+{1278, 1058642330u, 1063675494u, 3197737368u, 0, REMAINDERF_TOLERANCE, 0},
+{1279, 1058642330u, 1064514355u, 3199415090u, 0, REMAINDERF_TOLERANCE, 0},
+{1280, 1059481190u, 3212836864u, 3199415092u, 0, REMAINDERF_TOLERANCE, 0},
+{1281, 1059481190u, 3211998003u, 3197737370u, 0, REMAINDERF_TOLERANCE, 0},
+{1282, 1059481190u, 3211159142u, 3196059648u, 0, REMAINDERF_TOLERANCE, 0},
+{1283, 1059481190u, 3210320282u, 3192704208u, 0, REMAINDERF_TOLERANCE, 0},
+{1284, 1059481190u, 3209481421u, 3189348764u, 0, REMAINDERF_TOLERANCE, 0},
+{1285, 1059481190u, 3208642560u, 3184315600u, 0, REMAINDERF_TOLERANCE, 0},
+{1286, 1059481190u, 3207803699u, 3175926992u, 0, REMAINDERF_TOLERANCE, 0},
+{1287, 1059481190u, 3206964838u, 0u, 0, REMAINDERF_TOLERANCE, 0},
+{1288, 1059481190u, 3206125978u, 1028443328u, 0, REMAINDERF_TOLERANCE, 0},
+{1289, 1059481190u, 3205287117u, 1036831944u, 0, REMAINDERF_TOLERANCE, 0},
+{1290, 1059481190u, 3204448256u, 1041865112u, 0, REMAINDERF_TOLERANCE, 0},
+{1291, 1059481190u, 3202770534u, 1045220556u, 0, REMAINDERF_TOLERANCE, 0},
+{1292, 1059481190u, 3201092813u, 3189348764u, 0, REMAINDERF_TOLERANCE, 0},
+{1293, 1059481190u, 3199415091u, 3175926992u, 0, REMAINDERF_TOLERANCE, 0},
+{1294, 1059481190u, 3197737370u, 1028443328u, 0, REMAINDERF_TOLERANCE, 0},
+{1295, 1059481190u, 3196059648u, 3184315600u, 0, REMAINDERF_TOLERANCE, 0},
+{1296, 1059481190u, 3192704205u, 1028443332u, 0, REMAINDERF_TOLERANCE, 0},
+{1297, 1059481190u, 3189348762u, 1028443328u, 0, REMAINDERF_TOLERANCE, 0},
+{1298, 1059481190u, 3184315597u, 1028443332u, 0, REMAINDERF_TOLERANCE, 0},
+{1299, 1059481190u, 3175926989u, 3004170240u, 0, REMAINDERF_TOLERANCE, 0},
+{1300, 1059481190u, 632815616u, 620756992u, 0, REMAINDERF_TOLERANCE, 0},
+{1301, 1059481190u, 1028443341u, 3004170240u, 0, REMAINDERF_TOLERANCE, 0},
+{1302, 1059481190u, 1036831949u, 1028443332u, 0, REMAINDERF_TOLERANCE, 0},
+{1303, 1059481190u, 1041865114u, 1028443328u, 0, REMAINDERF_TOLERANCE, 0},
+{1304, 1059481190u, 1045220557u, 1028443332u, 0, REMAINDERF_TOLERANCE, 0},
+{1305, 1059481190u, 1048576000u, 3184315600u, 0, REMAINDERF_TOLERANCE, 0},
+{1306, 1059481190u, 1050253722u, 1028443328u, 0, REMAINDERF_TOLERANCE, 0},
+{1307, 1059481190u, 1051931443u, 3175926992u, 0, REMAINDERF_TOLERANCE, 0},
+{1308, 1059481190u, 1053609165u, 3189348764u, 0, REMAINDERF_TOLERANCE, 0},
+{1309, 1059481190u, 1055286886u, 1045220556u, 0, REMAINDERF_TOLERANCE, 0},
+{1310, 1059481190u, 1056964608u, 1041865112u, 0, REMAINDERF_TOLERANCE, 0},
+{1311, 1059481190u, 1057803469u, 1036831944u, 0, REMAINDERF_TOLERANCE, 0},
+{1312, 1059481190u, 1058642330u, 1028443328u, 0, REMAINDERF_TOLERANCE, 0},
+{1313, 1059481190u, 1059481190u, 0u, 0, REMAINDERF_TOLERANCE, 0},
+{1314, 1059481190u, 1060320051u, 3175926992u, 0, REMAINDERF_TOLERANCE, 0},
+{1315, 1059481190u, 1061158912u, 3184315600u, 0, REMAINDERF_TOLERANCE, 0},
+{1316, 1059481190u, 1061997773u, 3189348764u, 0, REMAINDERF_TOLERANCE, 0},
+{1317, 1059481190u, 1062836634u, 3192704208u, 0, REMAINDERF_TOLERANCE, 0},
+{1318, 1059481190u, 1063675494u, 3196059648u, 0, REMAINDERF_TOLERANCE, 0},
+{1319, 1059481190u, 1064514355u, 3197737370u, 0, REMAINDERF_TOLERANCE, 0},
+{1320, 1060320051u, 3212836864u, 3197737370u, 0, REMAINDERF_TOLERANCE, 0},
+{1321, 1060320051u, 3211998003u, 3196059648u, 0, REMAINDERF_TOLERANCE, 0},
+{1322, 1060320051u, 3211159142u, 3192704204u, 0, REMAINDERF_TOLERANCE, 0},
+{1323, 1060320051u, 3210320282u, 3189348764u, 0, REMAINDERF_TOLERANCE, 0},
+{1324, 1060320051u, 3209481421u, 3184315600u, 0, REMAINDERF_TOLERANCE, 0},
+{1325, 1060320051u, 3208642560u, 3175926992u, 0, REMAINDERF_TOLERANCE, 0},
+{1326, 1060320051u, 3207803699u, 0u, 0, REMAINDERF_TOLERANCE, 0},
+{1327, 1060320051u, 3206964838u, 1028443344u, 0, REMAINDERF_TOLERANCE, 0},
+{1328, 1060320051u, 3206125978u, 1036831944u, 0, REMAINDERF_TOLERANCE, 0},
+{1329, 1060320051u, 3205287117u, 1041865112u, 0, REMAINDERF_TOLERANCE, 0},
+{1330, 1060320051u, 3204448256u, 1045220556u, 0, REMAINDERF_TOLERANCE, 0},
+{1331, 1060320051u, 3202770534u, 3192704204u, 0, REMAINDERF_TOLERANCE, 0},
+{1332, 1060320051u, 3201092813u, 3184315600u, 0, REMAINDERF_TOLERANCE, 0},
+{1333, 1060320051u, 3199415091u, 0u, 0, REMAINDERF_TOLERANCE, 0},
+{1334, 1060320051u, 3197737370u, 1036831944u, 0, REMAINDERF_TOLERANCE, 0},
+{1335, 1060320051u, 3196059648u, 3175926992u, 0, REMAINDERF_TOLERANCE, 0},
+{1336, 1060320051u, 3192704205u, 1036831946u, 0, REMAINDERF_TOLERANCE, 0},
+{1337, 1060320051u, 3189348762u, 3175927000u, 0, REMAINDERF_TOLERANCE, 0},
+{1338, 1060320051u, 3184315597u, 2998927360u, 0, REMAINDERF_TOLERANCE, 0},
+{1339, 1060320051u, 3175926989u, 2998927360u, 0, REMAINDERF_TOLERANCE, 0},
+{1340, 1060320051u, 632815616u, 2743074816u, 0, REMAINDERF_TOLERANCE, 0},
+{1341, 1060320051u, 1028443341u, 2998927360u, 0, REMAINDERF_TOLERANCE, 0},
+{1342, 1060320051u, 1036831949u, 2998927360u, 0, REMAINDERF_TOLERANCE, 0},
+{1343, 1060320051u, 1041865114u, 3175927000u, 0, REMAINDERF_TOLERANCE, 0},
+{1344, 1060320051u, 1045220557u, 1036831946u, 0, REMAINDERF_TOLERANCE, 0},
+{1345, 1060320051u, 1048576000u, 3175926992u, 0, REMAINDERF_TOLERANCE, 0},
+{1346, 1060320051u, 1050253722u, 1036831944u, 0, REMAINDERF_TOLERANCE, 0},
+{1347, 1060320051u, 1051931443u, 0u, 0, REMAINDERF_TOLERANCE, 0},
+{1348, 1060320051u, 1053609165u, 3184315600u, 0, REMAINDERF_TOLERANCE, 0},
+{1349, 1060320051u, 1055286886u, 3192704204u, 0, REMAINDERF_TOLERANCE, 0},
+{1350, 1060320051u, 1056964608u, 1045220556u, 0, REMAINDERF_TOLERANCE, 0},
+{1351, 1060320051u, 1057803469u, 1041865112u, 0, REMAINDERF_TOLERANCE, 0},
+{1352, 1060320051u, 1058642330u, 1036831944u, 0, REMAINDERF_TOLERANCE, 0},
+{1353, 1060320051u, 1059481190u, 1028443344u, 0, REMAINDERF_TOLERANCE, 0},
+{1354, 1060320051u, 1060320051u, 0u, 0, REMAINDERF_TOLERANCE, 0},
+{1355, 1060320051u, 1061158912u, 3175926992u, 0, REMAINDERF_TOLERANCE, 0},
+{1356, 1060320051u, 1061997773u, 3184315600u, 0, REMAINDERF_TOLERANCE, 0},
+{1357, 1060320051u, 1062836634u, 3189348764u, 0, REMAINDERF_TOLERANCE, 0},
+{1358, 1060320051u, 1063675494u, 3192704204u, 0, REMAINDERF_TOLERANCE, 0},
+{1359, 1060320051u, 1064514355u, 3196059648u, 0, REMAINDERF_TOLERANCE, 0},
+{1360, 1061158912u, 3212836864u, 3196059648u, 0, REMAINDERF_TOLERANCE, 0},
+{1361, 1061158912u, 3211998003u, 3192704204u, 0, REMAINDERF_TOLERANCE, 0},
+{1362, 1061158912u, 3211159142u, 3189348760u, 0, REMAINDERF_TOLERANCE, 0},
+{1363, 1061158912u, 3210320282u, 3184315600u, 0, REMAINDERF_TOLERANCE, 0},
+{1364, 1061158912u, 3209481421u, 3175926992u, 0, REMAINDERF_TOLERANCE, 0},
+{1365, 1061158912u, 3208642560u, 0u, 0, REMAINDERF_TOLERANCE, 0},
+{1366, 1061158912u, 3207803699u, 1028443344u, 0, REMAINDERF_TOLERANCE, 0},
+{1367, 1061158912u, 3206964838u, 1036831952u, 0, REMAINDERF_TOLERANCE, 0},
+{1368, 1061158912u, 3206125978u, 1041865112u, 0, REMAINDERF_TOLERANCE, 0},
+{1369, 1061158912u, 3205287117u, 1045220556u, 0, REMAINDERF_TOLERANCE, 0},
+{1370, 1061158912u, 3204448256u, 3196059648u, 0, REMAINDERF_TOLERANCE, 0},
+{1371, 1061158912u, 3202770534u, 3189348760u, 0, REMAINDERF_TOLERANCE, 0},
+{1372, 1061158912u, 3201092813u, 3175926992u, 0, REMAINDERF_TOLERANCE, 0},
+{1373, 1061158912u, 3199415091u, 1028443344u, 0, REMAINDERF_TOLERANCE, 0},
+{1374, 1061158912u, 3197737370u, 1041865112u, 0, REMAINDERF_TOLERANCE, 0},
+{1375, 1061158912u, 3196059648u, 0u, 0, REMAINDERF_TOLERANCE, 0},
+{1376, 1061158912u, 3192704205u, 3175926992u, 0, REMAINDERF_TOLERANCE, 0},
+{1377, 1061158912u, 3189348762u, 3003121664u, 0, REMAINDERF_TOLERANCE, 0},
+{1378, 1061158912u, 3184315597u, 1028443338u, 0, REMAINDERF_TOLERANCE, 0},
+{1379, 1061158912u, 3175926989u, 2990538752u, 0, REMAINDERF_TOLERANCE, 0},
+{1380, 1061158912u, 632815616u, 2770337792u, 0, REMAINDERF_TOLERANCE, 0},
+{1381, 1061158912u, 1028443341u, 2990538752u, 0, REMAINDERF_TOLERANCE, 0},
+{1382, 1061158912u, 1036831949u, 1028443338u, 0, REMAINDERF_TOLERANCE, 0},
+{1383, 1061158912u, 1041865114u, 3003121664u, 0, REMAINDERF_TOLERANCE, 0},
+{1384, 1061158912u, 1045220557u, 3175926992u, 0, REMAINDERF_TOLERANCE, 0},
+{1385, 1061158912u, 1048576000u, 0u, 0, REMAINDERF_TOLERANCE, 0},
+{1386, 1061158912u, 1050253722u, 1041865112u, 0, REMAINDERF_TOLERANCE, 0},
+{1387, 1061158912u, 1051931443u, 1028443344u, 0, REMAINDERF_TOLERANCE, 0},
+{1388, 1061158912u, 1053609165u, 3175926992u, 0, REMAINDERF_TOLERANCE, 0},
+{1389, 1061158912u, 1055286886u, 3189348760u, 0, REMAINDERF_TOLERANCE, 0},
+{1390, 1061158912u, 1056964608u, 3196059648u, 0, REMAINDERF_TOLERANCE, 0},
+{1391, 1061158912u, 1057803469u, 1045220556u, 0, REMAINDERF_TOLERANCE, 0},
+{1392, 1061158912u, 1058642330u, 1041865112u, 0, REMAINDERF_TOLERANCE, 0},
+{1393, 1061158912u, 1059481190u, 1036831952u, 0, REMAINDERF_TOLERANCE, 0},
+{1394, 1061158912u, 1060320051u, 1028443344u, 0, REMAINDERF_TOLERANCE, 0},
+{1395, 1061158912u, 1061158912u, 0u, 0, REMAINDERF_TOLERANCE, 0},
+{1396, 1061158912u, 1061997773u, 3175926992u, 0, REMAINDERF_TOLERANCE, 0},
+{1397, 1061158912u, 1062836634u, 3184315600u, 0, REMAINDERF_TOLERANCE, 0},
+{1398, 1061158912u, 1063675494u, 3189348760u, 0, REMAINDERF_TOLERANCE, 0},
+{1399, 1061158912u, 1064514355u, 3192704204u, 0, REMAINDERF_TOLERANCE, 0},
+{1400, 1061997773u, 3212836864u, 3192704204u, 0, REMAINDERF_TOLERANCE, 0},
+{1401, 1061997773u, 3211998003u, 3189348760u, 0, REMAINDERF_TOLERANCE, 0},
+{1402, 1061997773u, 3211159142u, 3184315592u, 0, REMAINDERF_TOLERANCE, 0},
+{1403, 1061997773u, 3210320282u, 3175926992u, 0, REMAINDERF_TOLERANCE, 0},
+{1404, 1061997773u, 3209481421u, 0u, 0, REMAINDERF_TOLERANCE, 0},
+{1405, 1061997773u, 3208642560u, 1028443344u, 0, REMAINDERF_TOLERANCE, 0},
+{1406, 1061997773u, 3207803699u, 1036831952u, 0, REMAINDERF_TOLERANCE, 0},
+{1407, 1061997773u, 3206964838u, 1041865116u, 0, REMAINDERF_TOLERANCE, 0},
+{1408, 1061997773u, 3206125978u, 1045220556u, 0, REMAINDERF_TOLERANCE, 0},
+{1409, 1061997773u, 3205287117u, 1048576000u, 0, REMAINDERF_TOLERANCE, 0},
+{1410, 1061997773u, 3204448256u, 3192704204u, 0, REMAINDERF_TOLERANCE, 0},
+{1411, 1061997773u, 3202770534u, 3184315592u, 0, REMAINDERF_TOLERANCE, 0},
+{1412, 1061997773u, 3201092813u, 0u, 0, REMAINDERF_TOLERANCE, 0},
+{1413, 1061997773u, 3199415091u, 1036831952u, 0, REMAINDERF_TOLERANCE, 0},
+{1414, 1061997773u, 3197737370u, 3184315600u, 0, REMAINDERF_TOLERANCE, 0},
+{1415, 1061997773u, 3196059648u, 1028443344u, 0, REMAINDERF_TOLERANCE, 0},
+{1416, 1061997773u, 3192704205u, 0u, 0, REMAINDERF_TOLERANCE, 0},
+{1417, 1061997773u, 3189348762u, 1028443336u, 0, REMAINDERF_TOLERANCE, 0},
+{1418, 1061997773u, 3184315597u, 0u, 0, REMAINDERF_TOLERANCE, 0},
+{1419, 1061997773u, 3175926989u, 0u, 0, REMAINDERF_TOLERANCE, 0},
+{1420, 1061997773u, 632815616u, 612368384u, 0, REMAINDERF_TOLERANCE, 0},
+{1421, 1061997773u, 1028443341u, 0u, 0, REMAINDERF_TOLERANCE, 0},
+{1422, 1061997773u, 1036831949u, 0u, 0, REMAINDERF_TOLERANCE, 0},
+{1423, 1061997773u, 1041865114u, 1028443336u, 0, REMAINDERF_TOLERANCE, 0},
+{1424, 1061997773u, 1045220557u, 0u, 0, REMAINDERF_TOLERANCE, 0},
+{1425, 1061997773u, 1048576000u, 1028443344u, 0, REMAINDERF_TOLERANCE, 0},
+{1426, 1061997773u, 1050253722u, 3184315600u, 0, REMAINDERF_TOLERANCE, 0},
+{1427, 1061997773u, 1051931443u, 1036831952u, 0, REMAINDERF_TOLERANCE, 0},
+{1428, 1061997773u, 1053609165u, 0u, 0, REMAINDERF_TOLERANCE, 0},
+{1429, 1061997773u, 1055286886u, 3184315592u, 0, REMAINDERF_TOLERANCE, 0},
+{1430, 1061997773u, 1056964608u, 3192704204u, 0, REMAINDERF_TOLERANCE, 0},
+{1431, 1061997773u, 1057803469u, 1048576000u, 0, REMAINDERF_TOLERANCE, 0},
+{1432, 1061997773u, 1058642330u, 1045220556u, 0, REMAINDERF_TOLERANCE, 0},
+{1433, 1061997773u, 1059481190u, 1041865116u, 0, REMAINDERF_TOLERANCE, 0},
+{1434, 1061997773u, 1060320051u, 1036831952u, 0, REMAINDERF_TOLERANCE, 0},
+{1435, 1061997773u, 1061158912u, 1028443344u, 0, REMAINDERF_TOLERANCE, 0},
+{1436, 1061997773u, 1061997773u, 0u, 0, REMAINDERF_TOLERANCE, 0},
+{1437, 1061997773u, 1062836634u, 3175926992u, 0, REMAINDERF_TOLERANCE, 0},
+{1438, 1061997773u, 1063675494u, 3184315592u, 0, REMAINDERF_TOLERANCE, 0},
+{1439, 1061997773u, 1064514355u, 3189348760u, 0, REMAINDERF_TOLERANCE, 0},
+{1440, 1062836634u, 3212836864u, 3189348760u, 0, REMAINDERF_TOLERANCE, 0},
+{1441, 1062836634u, 3211998003u, 3184315592u, 0, REMAINDERF_TOLERANCE, 0},
+{1442, 1062836634u, 3211159142u, 3175926976u, 0, REMAINDERF_TOLERANCE, 0},
+{1443, 1062836634u, 3210320282u, 0u, 0, REMAINDERF_TOLERANCE, 0},
+{1444, 1062836634u, 3209481421u, 1028443344u, 0, REMAINDERF_TOLERANCE, 0},
+{1445, 1062836634u, 3208642560u, 1036831952u, 0, REMAINDERF_TOLERANCE, 0},
+{1446, 1062836634u, 3207803699u, 1041865116u, 0, REMAINDERF_TOLERANCE, 0},
+{1447, 1062836634u, 3206964838u, 1045220560u, 0, REMAINDERF_TOLERANCE, 0},
+{1448, 1062836634u, 3206125978u, 1048576000u, 0, REMAINDERF_TOLERANCE, 0},
+{1449, 1062836634u, 3205287117u, 3196059648u, 0, REMAINDERF_TOLERANCE, 0},
+{1450, 1062836634u, 3204448256u, 3189348760u, 0, REMAINDERF_TOLERANCE, 0},
+{1451, 1062836634u, 3202770534u, 3175926976u, 0, REMAINDERF_TOLERANCE, 0},
+{1452, 1062836634u, 3201092813u, 1028443344u, 0, REMAINDERF_TOLERANCE, 0},
+{1453, 1062836634u, 3199415091u, 1041865116u, 0, REMAINDERF_TOLERANCE, 0},
+{1454, 1062836634u, 3197737370u, 3175926992u, 0, REMAINDERF_TOLERANCE, 0},
+{1455, 1062836634u, 3196059648u, 1036831952u, 0, REMAINDERF_TOLERANCE, 0},
+{1456, 1062836634u, 3192704205u, 1028443344u, 0, REMAINDERF_TOLERANCE, 0},
+{1457, 1062836634u, 3189348762u, 3175926992u, 0, REMAINDERF_TOLERANCE, 0},
+{1458, 1062836634u, 3184315597u, 3175926986u, 0, REMAINDERF_TOLERANCE, 0},
+{1459, 1062836634u, 3175926989u, 843055104u, 0, REMAINDERF_TOLERANCE, 0},
+{1460, 1062836634u, 632815616u, 2761949184u, 0, REMAINDERF_TOLERANCE, 0},
+{1461, 1062836634u, 1028443341u, 843055104u, 0, REMAINDERF_TOLERANCE, 0},
+{1462, 1062836634u, 1036831949u, 3175926986u, 0, REMAINDERF_TOLERANCE, 0},
+{1463, 1062836634u, 1041865114u, 3175926992u, 0, REMAINDERF_TOLERANCE, 0},
+{1464, 1062836634u, 1045220557u, 1028443344u, 0, REMAINDERF_TOLERANCE, 0},
+{1465, 1062836634u, 1048576000u, 1036831952u, 0, REMAINDERF_TOLERANCE, 0},
+{1466, 1062836634u, 1050253722u, 3175926992u, 0, REMAINDERF_TOLERANCE, 0},
+{1467, 1062836634u, 1051931443u, 1041865116u, 0, REMAINDERF_TOLERANCE, 0},
+{1468, 1062836634u, 1053609165u, 1028443344u, 0, REMAINDERF_TOLERANCE, 0},
+{1469, 1062836634u, 1055286886u, 3175926976u, 0, REMAINDERF_TOLERANCE, 0},
+{1470, 1062836634u, 1056964608u, 3189348760u, 0, REMAINDERF_TOLERANCE, 0},
+{1471, 1062836634u, 1057803469u, 3196059648u, 0, REMAINDERF_TOLERANCE, 0},
+{1472, 1062836634u, 1058642330u, 1048576000u, 0, REMAINDERF_TOLERANCE, 0},
+{1473, 1062836634u, 1059481190u, 1045220560u, 0, REMAINDERF_TOLERANCE, 0},
+{1474, 1062836634u, 1060320051u, 1041865116u, 0, REMAINDERF_TOLERANCE, 0},
+{1475, 1062836634u, 1061158912u, 1036831952u, 0, REMAINDERF_TOLERANCE, 0},
+{1476, 1062836634u, 1061997773u, 1028443344u, 0, REMAINDERF_TOLERANCE, 0},
+{1477, 1062836634u, 1062836634u, 0u, 0, REMAINDERF_TOLERANCE, 0},
+{1478, 1062836634u, 1063675494u, 3175926976u, 0, REMAINDERF_TOLERANCE, 0},
+{1479, 1062836634u, 1064514355u, 3184315592u, 0, REMAINDERF_TOLERANCE, 0},
+{1480, 1063675494u, 3212836864u, 3184315600u, 0, REMAINDERF_TOLERANCE, 0},
+{1481, 1063675494u, 3211998003u, 3175926992u, 0, REMAINDERF_TOLERANCE, 0},
+{1482, 1063675494u, 3211159142u, 0u, 0, REMAINDERF_TOLERANCE, 0},
+{1483, 1063675494u, 3210320282u, 1028443328u, 0, REMAINDERF_TOLERANCE, 0},
+{1484, 1063675494u, 3209481421u, 1036831944u, 0, REMAINDERF_TOLERANCE, 0},
+{1485, 1063675494u, 3208642560u, 1041865112u, 0, REMAINDERF_TOLERANCE, 0},
+{1486, 1063675494u, 3207803699u, 1045220556u, 0, REMAINDERF_TOLERANCE, 0},
+{1487, 1063675494u, 3206964838u, 1048576000u, 0, REMAINDERF_TOLERANCE, 0},
+{1488, 1063675494u, 3206125978u, 1050253720u, 0, REMAINDERF_TOLERANCE, 0},
+{1489, 1063675494u, 3205287117u, 3192704208u, 0, REMAINDERF_TOLERANCE, 0},
+{1490, 1063675494u, 3204448256u, 3184315600u, 0, REMAINDERF_TOLERANCE, 0},
+{1491, 1063675494u, 3202770534u, 0u, 0, REMAINDERF_TOLERANCE, 0},
+{1492, 1063675494u, 3201092813u, 1036831944u, 0, REMAINDERF_TOLERANCE, 0},
+{1493, 1063675494u, 3199415091u, 3189348762u, 0, REMAINDERF_TOLERANCE, 0},
+{1494, 1063675494u, 3197737370u, 3011510272u, 0, REMAINDERF_TOLERANCE, 0},
+{1495, 1063675494u, 3196059648u, 3184315600u, 0, REMAINDERF_TOLERANCE, 0},
+{1496, 1063675494u, 3192704205u, 1036831944u, 0, REMAINDERF_TOLERANCE, 0},
+{1497, 1063675494u, 3189348762u, 3011510272u, 0, REMAINDERF_TOLERANCE, 0},
+{1498, 1063675494u, 3184315597u, 3005218816u, 0, REMAINDERF_TOLERANCE, 0},
+{1499, 1063675494u, 3175926989u, 3005218816u, 0, REMAINDERF_TOLERANCE, 0},
+{1500, 1063675494u, 632815616u, 2755657728u, 0, REMAINDERF_TOLERANCE, 0},
+{1501, 1063675494u, 1028443341u, 3005218816u, 0, REMAINDERF_TOLERANCE, 0},
+{1502, 1063675494u, 1036831949u, 3005218816u, 0, REMAINDERF_TOLERANCE, 0},
+{1503, 1063675494u, 1041865114u, 3011510272u, 0, REMAINDERF_TOLERANCE, 0},
+{1504, 1063675494u, 1045220557u, 1036831944u, 0, REMAINDERF_TOLERANCE, 0},
+{1505, 1063675494u, 1048576000u, 3184315600u, 0, REMAINDERF_TOLERANCE, 0},
+{1506, 1063675494u, 1050253722u, 3011510272u, 0, REMAINDERF_TOLERANCE, 0},
+{1507, 1063675494u, 1051931443u, 3189348762u, 0, REMAINDERF_TOLERANCE, 0},
+{1508, 1063675494u, 1053609165u, 1036831944u, 0, REMAINDERF_TOLERANCE, 0},
+{1509, 1063675494u, 1055286886u, 0u, 0, REMAINDERF_TOLERANCE, 0},
+{1510, 1063675494u, 1056964608u, 3184315600u, 0, REMAINDERF_TOLERANCE, 0},
+{1511, 1063675494u, 1057803469u, 3192704208u, 0, REMAINDERF_TOLERANCE, 0},
+{1512, 1063675494u, 1058642330u, 1050253720u, 0, REMAINDERF_TOLERANCE, 0},
+{1513, 1063675494u, 1059481190u, 1048576000u, 0, REMAINDERF_TOLERANCE, 0},
+{1514, 1063675494u, 1060320051u, 1045220556u, 0, REMAINDERF_TOLERANCE, 0},
+{1515, 1063675494u, 1061158912u, 1041865112u, 0, REMAINDERF_TOLERANCE, 0},
+{1516, 1063675494u, 1061997773u, 1036831944u, 0, REMAINDERF_TOLERANCE, 0},
+{1517, 1063675494u, 1062836634u, 1028443328u, 0, REMAINDERF_TOLERANCE, 0},
+{1518, 1063675494u, 1063675494u, 0u, 0, REMAINDERF_TOLERANCE, 0},
+{1519, 1063675494u, 1064514355u, 3175926992u, 0, REMAINDERF_TOLERANCE, 0},
+{1520, 1064514355u, 3212836864u, 3175926992u, 0, REMAINDERF_TOLERANCE, 0},
+{1521, 1064514355u, 3211998003u, 0u, 0, REMAINDERF_TOLERANCE, 0},
+{1522, 1064514355u, 3211159142u, 1028443344u, 0, REMAINDERF_TOLERANCE, 0},
+{1523, 1064514355u, 3210320282u, 1036831944u, 0, REMAINDERF_TOLERANCE, 0},
+{1524, 1064514355u, 3209481421u, 1041865112u, 0, REMAINDERF_TOLERANCE, 0},
+{1525, 1064514355u, 3208642560u, 1045220556u, 0, REMAINDERF_TOLERANCE, 0},
+{1526, 1064514355u, 3207803699u, 1048576000u, 0, REMAINDERF_TOLERANCE, 0},
+{1527, 1064514355u, 3206964838u, 1050253722u, 0, REMAINDERF_TOLERANCE, 0},
+{1528, 1064514355u, 3206125978u, 3196059650u, 0, REMAINDERF_TOLERANCE, 0},
+{1529, 1064514355u, 3205287117u, 3189348764u, 0, REMAINDERF_TOLERANCE, 0},
+{1530, 1064514355u, 3204448256u, 3175926992u, 0, REMAINDERF_TOLERANCE, 0},
+{1531, 1064514355u, 3202770534u, 1028443344u, 0, REMAINDERF_TOLERANCE, 0},
+{1532, 1064514355u, 3201092813u, 1041865112u, 0, REMAINDERF_TOLERANCE, 0},
+{1533, 1064514355u, 3199415091u, 3184315596u, 0, REMAINDERF_TOLERANCE, 0},
+{1534, 1064514355u, 3197737370u, 1028443328u, 0, REMAINDERF_TOLERANCE, 0},
+{1535, 1064514355u, 3196059648u, 3175926992u, 0, REMAINDERF_TOLERANCE, 0},
+{1536, 1064514355u, 3192704205u, 3175926996u, 0, REMAINDERF_TOLERANCE, 0},
+{1537, 1064514355u, 3189348762u, 1028443328u, 0, REMAINDERF_TOLERANCE, 0},
+{1538, 1064514355u, 3184315597u, 1028443334u, 0, REMAINDERF_TOLERANCE, 0},
+{1539, 1064514355u, 3175926989u, 3001024512u, 0, REMAINDERF_TOLERANCE, 0},
+{1540, 1064514355u, 632815616u, 623902720u, 0, REMAINDERF_TOLERANCE, 0},
+{1541, 1064514355u, 1028443341u, 3001024512u, 0, REMAINDERF_TOLERANCE, 0},
+{1542, 1064514355u, 1036831949u, 1028443334u, 0, REMAINDERF_TOLERANCE, 0},
+{1543, 1064514355u, 1041865114u, 1028443328u, 0, REMAINDERF_TOLERANCE, 0},
+{1544, 1064514355u, 1045220557u, 3175926996u, 0, REMAINDERF_TOLERANCE, 0},
+{1545, 1064514355u, 1048576000u, 3175926992u, 0, REMAINDERF_TOLERANCE, 0},
+{1546, 1064514355u, 1050253722u, 1028443328u, 0, REMAINDERF_TOLERANCE, 0},
+{1547, 1064514355u, 1051931443u, 3184315596u, 0, REMAINDERF_TOLERANCE, 0},
+{1548, 1064514355u, 1053609165u, 1041865112u, 0, REMAINDERF_TOLERANCE, 0},
+{1549, 1064514355u, 1055286886u, 1028443344u, 0, REMAINDERF_TOLERANCE, 0},
+{1550, 1064514355u, 1056964608u, 3175926992u, 0, REMAINDERF_TOLERANCE, 0},
+{1551, 1064514355u, 1057803469u, 3189348764u, 0, REMAINDERF_TOLERANCE, 0},
+{1552, 1064514355u, 1058642330u, 3196059650u, 0, REMAINDERF_TOLERANCE, 0},
+{1553, 1064514355u, 1059481190u, 1050253722u, 0, REMAINDERF_TOLERANCE, 0},
+{1554, 1064514355u, 1060320051u, 1048576000u, 0, REMAINDERF_TOLERANCE, 0},
+{1555, 1064514355u, 1061158912u, 1045220556u, 0, REMAINDERF_TOLERANCE, 0},
+{1556, 1064514355u, 1061997773u, 1041865112u, 0, REMAINDERF_TOLERANCE, 0},
+{1557, 1064514355u, 1062836634u, 1036831944u, 0, REMAINDERF_TOLERANCE, 0},
+{1558, 1064514355u, 1063675494u, 1028443344u, 0, REMAINDERF_TOLERANCE, 0},
+{1559, 1064514355u, 1064514355u, 0u, 0, REMAINDERF_TOLERANCE, 0},
+{1560, 1107800421u, 1203999711u, 1107800421u, 0, REMAINDERF_TOLERANCE, 0},
+{1561, 3196650934u, 896005582u, 882096508u, 0, REMAINDERF_TOLERANCE, 0},
+{1562, 3368700125u, 3308232444u, 3298314136u, 0, REMAINDERF_TOLERANCE, 0},
+{1563, 1224242132u, 3061363425u, 3044549332u, 0, REMAINDERF_TOLERANCE, 0},
+{1564, 1198712763u, 919636942u, 885884832u, 0, REMAINDERF_TOLERANCE, 0},
+{1565, 3159309973u, 852521077u, 839902526u, 0, REMAINDERF_TOLERANCE, 0},
+{1566, 954173073u, 850531830u, 825251472u, 0, REMAINDERF_TOLERANCE, 0},
+{1567, 3090780435u, 1035260608u, 3090780435u, 0, REMAINDERF_TOLERANCE, 0},
+{1568, 966554515u, 3234538174u, 966554515u, 0, REMAINDERF_TOLERANCE, 0},
+{1569, 1312607135u, 1194999402u, 1185760896u, 0, REMAINDERF_TOLERANCE, 0},
+{1570, 1166191415u, 1018661564u, 3139188608u, 0, REMAINDERF_TOLERANCE, 0},
+{1571, 3111900019u, 1130472166u, 3111900019u, 0, REMAINDERF_TOLERANCE, 0},
+{1572, 1234419246u, 2984575812u, 2976175128u, 0, REMAINDERF_TOLERANCE, 0},
+{1573, 1302107128u, 3370647675u, 1194631160u, 0, REMAINDERF_TOLERANCE, 0},
+{1574, 1052801068u, 3039122570u, 3028194648u, 0, REMAINDERF_TOLERANCE, 0},
+{1575, 1060849628u, 3081357692u, 913794560u, 0, REMAINDERF_TOLERANCE, 0},
+{1576, 3484320003u, 3033957825u, 3023031010u, 0, REMAINDERF_TOLERANCE, 0},
+{1577, 3181522772u, 3305392896u, 3181522772u, 0, REMAINDERF_TOLERANCE, 0},
+{1578, 1167223673u, 846102364u, 2976462032u, 0, REMAINDERF_TOLERANCE, 0},
+{1579, 968192794u, 878547432u, 856689888u, 0, REMAINDERF_TOLERANCE, 0},
+{1580, 3122346862u, 1111584337u, 3122346862u, 0, REMAINDERF_TOLERANCE, 0},
+{1581, 906701409u, 2968301825u, 797588784u, 0, REMAINDERF_TOLERANCE, 0},
+{1582, 3471653172u, 1154138102u, 1142724376u, 0, REMAINDERF_TOLERANCE, 0},
+{1583, 3231467496u, 934336592u, 3050561280u, 0, REMAINDERF_TOLERANCE, 0},
+{1584, 1341514497u, 3466051188u, 1309813400u, 0, REMAINDERF_TOLERANCE, 0},
+{1585, 1272351391u, 3373485062u, 3362161896u, 0, REMAINDERF_TOLERANCE, 0},
+{1586, 3319724992u, 3354615790u, 3319724992u, 0, REMAINDERF_TOLERANCE, 0},
+{1587, 940236348u, 3304072663u, 940236348u, 0, REMAINDERF_TOLERANCE, 0},
+{1588, 3251541546u, 3174764041u, 3165434950u, 0, REMAINDERF_TOLERANCE, 0},
+{1589, 3099843889u, 3355962282u, 3099843889u, 0, REMAINDERF_TOLERANCE, 0},
+{1590, 3110358400u, 851145088u, 836197376u, 0, REMAINDERF_TOLERANCE, 0},
+{1591, 3371863479u, 1014861921u, 3143714060u, 0, REMAINDERF_TOLERANCE, 0},
+{1592, 3204069187u, 966573255u, 951221204u, 0, REMAINDERF_TOLERANCE, 0},
+{1593, 1306460502u, 903489435u, 3040775560u, 0, REMAINDERF_TOLERANCE, 0},
+{1594, 1197542187u, 3024598921u, 3000922096u, 0, REMAINDERF_TOLERANCE, 0},
+{1595, 1184239996u, 3224098462u, 1054844192u, 0, REMAINDERF_TOLERANCE, 0},
+{1596, 1252490238u, 1173619825u, 3298879804u, 0, REMAINDERF_TOLERANCE, 0},
+{1597, 1001673627u, 3462631271u, 1001673627u, 0, REMAINDERF_TOLERANCE, 0},
+{1598, 976098044u, 1151967422u, 976098044u, 0, REMAINDERF_TOLERANCE, 0},
+{1599, 941796645u, 886451963u, 867898772u, 0, REMAINDERF_TOLERANCE, 0},
+{1600, 3287199470u, 854245542u, 841079712u, 0, REMAINDERF_TOLERANCE, 0},
+{1601, 1143233714u, 1007268238u, 962500224u, 0, REMAINDERF_TOLERANCE, 0},
+{1602, 1139941253u, 1147688821u, 3286142821u, 0, REMAINDERF_TOLERANCE, 0},
+{1603, 3143717025u, 3234638157u, 3143717025u, 0, REMAINDERF_TOLERANCE, 0},
+{1604, 3048866608u, 3449209899u, 3048866608u, 0, REMAINDERF_TOLERANCE, 0},
+{1605, 3240298487u, 1020260821u, 3157016246u, 0, REMAINDERF_TOLERANCE, 0},
+{1606, 1288902137u, 3123875978u, 3108655544u, 0, REMAINDERF_TOLERANCE, 0},
+{1607, 1333134799u, 1338107877u, 3473787387u, 0, REMAINDERF_TOLERANCE, 0},
+{1608, 1187847971u, 1317663644u, 1187847971u, 0, REMAINDERF_TOLERANCE, 0},
+{1609, 3329354473u, 3165437289u, 3155146426u, 0, REMAINDERF_TOLERANCE, 0},
+{1610, 1309289088u, 1019883016u, 984572800u, 0, REMAINDERF_TOLERANCE, 0},
+{1611, 3444653659u, 1279248024u, 3414933016u, 0, REMAINDERF_TOLERANCE, 0},
+{1612, 3405585402u, 2962345057u, 805631426u, 0, REMAINDERF_TOLERANCE, 0},
+{1613, 3106647724u, 853848387u, 831766088u, 0, REMAINDERF_TOLERANCE, 0},
+{1614, 1106778573u, 3304487767u, 1106778573u, 0, REMAINDERF_TOLERANCE, 0},
+{1615, 1140567947u, 3069174149u, 3046837080u, 0, REMAINDERF_TOLERANCE, 0},
+{1616, 1238569473u, 873035665u, 2979712896u, 0, REMAINDERF_TOLERANCE, 0},
+{1617, 1261071232u, 1182202773u, 3319109886u, 0, REMAINDERF_TOLERANCE, 0},
+{1618, 1175011025u, 3029705783u, 3017221104u, 0, REMAINDERF_TOLERANCE, 0},
+{1619, 1082692850u, 1211581107u, 1082692850u, 0, REMAINDERF_TOLERANCE, 0},
+{1620, 974547519u, 3475164509u, 974547519u, 0, REMAINDERF_TOLERANCE, 0},
+{1621, 3058097085u, 3104309359u, 3058097085u, 0, REMAINDERF_TOLERANCE, 0},
+{1622, 3107252546u, 1071134451u, 3107252546u, 0, REMAINDERF_TOLERANCE, 0},
+{1623, 3096032662u, 2976848821u, 2936508032u, 0, REMAINDERF_TOLERANCE, 0},
+{1624, 3197942144u, 3094120030u, 3069704000u, 0, REMAINDERF_TOLERANCE, 0},
+{1625, 3403348556u, 3184653669u, 3175976148u, 0, REMAINDERF_TOLERANCE, 0},
+{1626, 3182301130u, 3460764044u, 3182301130u, 0, REMAINDERF_TOLERANCE, 0},
+{1627, 1136411063u, 1118097422u, 3255702228u, 0, REMAINDERF_TOLERANCE, 0},
+{1628, 3239231622u, 3302723069u, 3239231622u, 0, REMAINDERF_TOLERANCE, 0},
+{1629, 3340615780u, 870350055u, 3007060526u, 0, REMAINDERF_TOLERANCE, 0},
+{1630, 998567360u, 2995278691u, 2976034720u, 0, REMAINDERF_TOLERANCE, 0},
+{1631, 3417964312u, 1321337529u, 3417964312u, 0, REMAINDERF_TOLERANCE, 0},
+{1632, 3109481038u, 1143864063u, 3109481038u, 0, REMAINDERF_TOLERANCE, 0},
+{1633, 1148867223u, 1256486202u, 1148867223u, 0, REMAINDERF_TOLERANCE, 0},
+{1634, 989687421u, 3372681320u, 989687421u, 0, REMAINDERF_TOLERANCE, 0},
+{1635, 1152956913u, 3166480640u, 1010228736u, 0, REMAINDERF_TOLERANCE, 0},
+{1636, 892922651u, 3373029087u, 892922651u, 0, REMAINDERF_TOLERANCE, 0},
+{1637, 1307091856u, 1103202538u, 3226552416u, 0, REMAINDERF_TOLERANCE, 0},
+{1638, 1077234132u, 3272167130u, 1077234132u, 0, REMAINDERF_TOLERANCE, 0},
+{1639, 1142167709u, 1096445242u, 1084988676u, 0, REMAINDERF_TOLERANCE, 0},
+{1640, 3426232834u, 1036705270u, 1027717904u, 0, REMAINDERF_TOLERANCE, 0},
+{1641, 3368566779u, 967249167u, 3090485704u, 0, REMAINDERF_TOLERANCE, 0},
+{1642, 3030724760u, 3349013503u, 3030724760u, 0, REMAINDERF_TOLERANCE, 0},
+{1643, 1138741813u, 3073453199u, 913937868u, 0, REMAINDERF_TOLERANCE, 0},
+{1644, 982950501u, 982549888u, 943955104u, 0, REMAINDERF_TOLERANCE, 0},
+{1645, 1142981585u, 1015602236u, 3153640960u, 0, REMAINDERF_TOLERANCE, 0},
+{1646, 3347165962u, 3135486696u, 967160064u, 0, REMAINDERF_TOLERANCE, 0},
+{1647, 1009535440u, 3381353228u, 1009535440u, 0, REMAINDERF_TOLERANCE, 0},
+{1648, 3103736980u, 3402950505u, 3103736980u, 0, REMAINDERF_TOLERANCE, 0},
+{1649, 3126820946u, 1077903063u, 3126820946u, 0, REMAINDERF_TOLERANCE, 0},
+{1650, 3473956030u, 976891930u, 3114088028u, 0, REMAINDERF_TOLERANCE, 0},
+{1651, 3349098349u, 1055327704u, 3180791072u, 0, REMAINDERF_TOLERANCE, 0},
+{1652, 3152729489u, 1060398533u, 3152729489u, 0, REMAINDERF_TOLERANCE, 0},
+{1653, 945568720u, 3313485084u, 945568720u, 0, REMAINDERF_TOLERANCE, 0},
+{1654, 3345489836u, 1108392401u, 3243992536u, 0, REMAINDERF_TOLERANCE, 0},
+{1655, 976791751u, 3230678102u, 976791751u, 0, REMAINDERF_TOLERANCE, 0},
+{1656, 1004442355u, 3036510596u, 3022957208u, 0, REMAINDERF_TOLERANCE, 0},
+{1657, 1108485380u, 3173536878u, 987480128u, 0, REMAINDERF_TOLERANCE, 0},
+{1658, 1061834641u, 972388096u, 3082944512u, 0, REMAINDERF_TOLERANCE, 0},
+{1659, 3381268392u, 1146976802u, 1134163764u, 0, REMAINDERF_TOLERANCE, 0},
+{1660, 1087189715u, 2952822478u, 789171392u, 0, REMAINDERF_TOLERANCE, 0},
+{1661, 3212952285u, 3329407365u, 3212952285u, 0, REMAINDERF_TOLERANCE, 0},
+{1662, 1000611335u, 857599439u, 2957130752u, 0, REMAINDERF_TOLERANCE, 0},
+{1663, 3466188568u, 1041678304u, 3175744512u, 0, REMAINDERF_TOLERANCE, 0},
+{1664, 3072456205u, 3160254633u, 3072456205u, 0, REMAINDERF_TOLERANCE, 0},
+{1665, 3319315516u, 3422089012u, 3319315516u, 0, REMAINDERF_TOLERANCE, 0},
+{1666, 3212614372u, 1152633030u, 3212614372u, 0, REMAINDERF_TOLERANCE, 0},
+{1667, 1315030230u, 3336225884u, 3318117360u, 0, REMAINDERF_TOLERANCE, 0},
+{1668, 1134593658u, 3456812581u, 1134593658u, 0, REMAINDERF_TOLERANCE, 0},
+{1669, 977281449u, 879922831u, 870852568u, 0, REMAINDERF_TOLERANCE, 0},
+{1670, 1086198791u, 920125958u, 3058317260u, 0, REMAINDERF_TOLERANCE, 0},
+{1671, 1255152035u, 851754050u, 2941965824u, 0, REMAINDERF_TOLERANCE, 0},
+{1672, 1135271264u, 3284878412u, 3263273904u, 0, REMAINDERF_TOLERANCE, 0},
+{1673, 1094190727u, 1056854532u, 1033751056u, 0, REMAINDERF_TOLERANCE, 0},
+{1674, 1294665325u, 991185677u, 3117296032u, 0, REMAINDERF_TOLERANCE, 0},
+{1675, 1036608591u, 805416536u, 2936971008u, 0, REMAINDERF_TOLERANCE, 0},
+{1676, 3229998064u, 825237063u, 815291510u, 0, REMAINDERF_TOLERANCE, 0},
+{1677, 3439134022u, 1043829691u, 3176027496u, 0, REMAINDERF_TOLERANCE, 0},
+{1678, 1325668223u, 970681762u, 927876224u, 0, REMAINDERF_TOLERANCE, 0},
+{1679, 1092037607u, 1027330835u, 989911904u, 0, REMAINDERF_TOLERANCE, 0},
+{1680, 3316278408u, 3455589207u, 3316278408u, 0, REMAINDERF_TOLERANCE, 0},
+{1681, 3295436768u, 3129873731u, 3121435968u, 0, REMAINDERF_TOLERANCE, 0},
+{1682, 1151984049u, 3074547120u, 916078880u, 0, REMAINDERF_TOLERANCE, 0},
+{1683, 1129287043u, 3076527544u, 3043337472u, 0, REMAINDERF_TOLERANCE, 0},
+{1684, 1243664530u, 972879810u, 961936076u, 0, REMAINDERF_TOLERANCE, 0},
+{1685, 950829092u, 929114193u, 904427984u, 0, REMAINDERF_TOLERANCE, 0},
+{1686, 1115471979u, 3047246262u, 882754776u, 0, REMAINDERF_TOLERANCE, 0},
+{1687, 3351092088u, 3024661404u, 857377760u, 0, REMAINDERF_TOLERANCE, 0},
+{1688, 3424479544u, 3312047722u, 3286030960u, 0, REMAINDERF_TOLERANCE, 0},
+{1689, 3241193975u, 884465785u, 865361832u, 0, REMAINDERF_TOLERANCE, 0},
+{1690, 1030934236u, 1045139240u, 1030934236u, 0, REMAINDERF_TOLERANCE, 0},
+{1691, 3131791114u, 3408392958u, 3131791114u, 0, REMAINDERF_TOLERANCE, 0},
+{1692, 1025254314u, 3057812821u, 892099028u, 0, REMAINDERF_TOLERANCE, 0},
+{1693, 1110545760u, 3240144177u, 1082605944u, 0, REMAINDERF_TOLERANCE, 0},
+{1694, 3180213739u, 1108793820u, 3180213739u, 0, REMAINDERF_TOLERANCE, 0},
+{1695, 3361976590u, 3138179993u, 3123449732u, 0, REMAINDERF_TOLERANCE, 0},
+{1696, 881280146u, 3421884736u, 881280146u, 0, REMAINDERF_TOLERANCE, 0},
+{1697, 1304154705u, 2961937089u, 806053242u, 0, REMAINDERF_TOLERANCE, 0},
+{1698, 3264443610u, 3222916705u, 1061521916u, 0, REMAINDERF_TOLERANCE, 0},
+{1699, 3374550627u, 3055856293u, 3046700470u, 0, REMAINDERF_TOLERANCE, 0},
+{1700, 899599265u, 3240118211u, 899599265u, 0, REMAINDERF_TOLERANCE, 0},
+{1701, 1268194719u, 1332489410u, 1268194719u, 0, REMAINDERF_TOLERANCE, 0},
+{1702, 1133420220u, 1245770860u, 1133420220u, 0, REMAINDERF_TOLERANCE, 0},
+{1703, 1161858787u, 815362075u, 2940727152u, 0, REMAINDERF_TOLERANCE, 0},
+{1704, 3295996963u, 3453334307u, 3295996963u, 0, REMAINDERF_TOLERANCE, 0},
+{1705, 1270887389u, 1156123987u, 1136651424u, 0, REMAINDERF_TOLERANCE, 0},
+{1706, 3325193181u, 993979179u, 3128968444u, 0, REMAINDERF_TOLERANCE, 0},
+{1707, 3115275450u, 3008350271u, 850287230u, 0, REMAINDERF_TOLERANCE, 0},
+{1708, 3116607482u, 3224327456u, 3116607482u, 0, REMAINDERF_TOLERANCE, 0},
+{1709, 3187892415u, 3118097315u, 3058627072u, 0, REMAINDERF_TOLERANCE, 0},
+{1710, 1189120494u, 978961471u, 3116486970u, 0, REMAINDERF_TOLERANCE, 0},
+{1711, 889030794u, 3129523970u, 889030794u, 0, REMAINDERF_TOLERANCE, 0},
+{1712, 1323529208u, 3100744786u, 933418032u, 0, REMAINDERF_TOLERANCE, 0},
+{1713, 3465768388u, 3190881451u, 3088019456u, 0, REMAINDERF_TOLERANCE, 0},
+{1714, 3426099899u, 1118756120u, 3256863216u, 0, REMAINDERF_TOLERANCE, 0},
+{1715, 3224857113u, 3398166843u, 3224857113u, 0, REMAINDERF_TOLERANCE, 0},
+{1716, 1065798296u, 816191940u, 802953808u, 0, REMAINDERF_TOLERANCE, 0},
+{1717, 3328989444u, 850266225u, 2989327724u, 0, REMAINDERF_TOLERANCE, 0},
+{1718, 3357819026u, 3148475462u, 3131211808u, 0, REMAINDERF_TOLERANCE, 0},
+{1719, 1273397670u, 901308750u, 3030947488u, 0, REMAINDERF_TOLERANCE, 0},
+{1720, 3424831780u, 1304806106u, 3424831780u, 0, REMAINDERF_TOLERANCE, 0},
+{1721, 1257596246u, 3420832544u, 1257596246u, 0, REMAINDERF_TOLERANCE, 0},
+{1722, 1051773536u, 896271348u, 3007754304u, 0, REMAINDERF_TOLERANCE, 0},
+{1723, 3294752507u, 3113225954u, 3104157972u, 0, REMAINDERF_TOLERANCE, 0},
+{1724, 3424848725u, 2973850350u, 816846232u, 0, REMAINDERF_TOLERANCE, 0},
+{1725, 1090870906u, 3294742905u, 1090870906u, 0, REMAINDERF_TOLERANCE, 0},
+{1726, 1227582289u, 1208979668u, 3338705792u, 0, REMAINDERF_TOLERANCE, 0},
+{1727, 1272325814u, 3004311296u, 2994725888u, 0, REMAINDERF_TOLERANCE, 0},
+{1728, 3359508271u, 859974315u, 848405304u, 0, REMAINDERF_TOLERANCE, 0},
+{1729, 1137854355u, 3335041917u, 1137854355u, 0, REMAINDERF_TOLERANCE, 0},
+{1730, 3440773058u, 3204192793u, 1030651208u, 0, REMAINDERF_TOLERANCE, 0},
+{1731, 3101598400u, 3057760708u, 892208464u, 0, REMAINDERF_TOLERANCE, 0},
+{1732, 3451216836u, 3347783723u, 3332701232u, 0, REMAINDERF_TOLERANCE, 0},
+{1733, 3437062994u, 3106834845u, 3071458160u, 0, REMAINDERF_TOLERANCE, 0},
+{1734, 1131196082u, 1164573183u, 1131196082u, 0, REMAINDERF_TOLERANCE, 0},
+{1735, 3460915348u, 1219372260u, 3351088128u, 0, REMAINDERF_TOLERANCE, 0},
+{1736, 3303035472u, 3153013020u, 975757344u, 0, REMAINDERF_TOLERANCE, 0},
+{1737, 1053698677u, 3284313107u, 1053698677u, 0, REMAINDERF_TOLERANCE, 0},
+{1738, 3396166221u, 1201894512u, 3340417792u, 0, REMAINDERF_TOLERANCE, 0},
+{1739, 3458934263u, 1005577835u, 995171350u, 0, REMAINDERF_TOLERANCE, 0},
+{1740, 1065761827u, 3333928591u, 1065761827u, 0, REMAINDERF_TOLERANCE, 0},
+{1741, 3025843188u, 820250112u, 802398208u, 0, REMAINDERF_TOLERANCE, 0},
+{1742, 926665223u, 3150815797u, 926665223u, 0, REMAINDERF_TOLERANCE, 0},
+{1743, 1199816046u, 3143776186u, 3118363744u, 0, REMAINDERF_TOLERANCE, 0},
+{1744, 3333779015u, 952421041u, 3088442550u, 0, REMAINDERF_TOLERANCE, 0},
+{1745, 948398145u, 3238273189u, 948398145u, 0, REMAINDERF_TOLERANCE, 0},
+{1746, 1080781593u, 1213908300u, 1080781593u, 0, REMAINDERF_TOLERANCE, 0},
+{1747, 3164749613u, 3010837763u, 805593536u, 0, REMAINDERF_TOLERANCE, 0},
+{1748, 3235326590u, 1271705594u, 3235326590u, 0, REMAINDERF_TOLERANCE, 0},
+{1749, 3118883815u, 1051802647u, 3118883815u, 0, REMAINDERF_TOLERANCE, 0},
+{1750, 3226990408u, 1110755136u, 3226990408u, 0, REMAINDERF_TOLERANCE, 0},
+{1751, 3117098218u, 1122474770u, 3117098218u, 0, REMAINDERF_TOLERANCE, 0},
+{1752, 1283624229u, 906796922u, 893859424u, 0, REMAINDERF_TOLERANCE, 0},
+{1753, 970649315u, 1078286437u, 970649315u, 0, REMAINDERF_TOLERANCE, 0},
+{1754, 959776291u, 3280345347u, 959776291u, 0, REMAINDERF_TOLERANCE, 0},
+{1755, 3341117305u, 3294559023u, 3285418302u, 0, REMAINDERF_TOLERANCE, 0},
+{1756, 1270734970u, 3355874874u, 3344951304u, 0, REMAINDERF_TOLERANCE, 0},
+{1757, 3454816067u, 868771977u, 843230680u, 0, REMAINDERF_TOLERANCE, 0},
+{1758, 1106502045u, 1290849316u, 1106502045u, 0, REMAINDERF_TOLERANCE, 0},
+{1759, 1157598381u, 3309023746u, 3295653550u, 0, REMAINDERF_TOLERANCE, 0},
+{1760, 3335234513u, 1002337336u, 3134023072u, 0, REMAINDERF_TOLERANCE, 0},
+{1761, 1279489061u, 1006049444u, 3142664432u, 0, REMAINDERF_TOLERANCE, 0},
+{1762, 3143920719u, 3131608518u, 969097936u, 0, REMAINDERF_TOLERANCE, 0},
+{1763, 1233171235u, 826460580u, 789268992u, 0, REMAINDERF_TOLERANCE, 0},
+{1764, 1148920078u, 1007674793u, 995580876u, 0, REMAINDERF_TOLERANCE, 0},
+{1765, 3064988156u, 3230867340u, 3064988156u, 0, REMAINDERF_TOLERANCE, 0},
+{1766, 1109198803u, 1221754614u, 1109198803u, 0, REMAINDERF_TOLERANCE, 0},
+{1767, 3219949483u, 1056167693u, 1030351936u, 0, REMAINDERF_TOLERANCE, 0},
+{1768, 3361149474u, 3387342069u, 3361149474u, 0, REMAINDERF_TOLERANCE, 0},
+{1769, 1207502108u, 3388073586u, 1207502108u, 0, REMAINDERF_TOLERANCE, 0},
+{1770, 1000014431u, 831213088u, 2968051712u, 0, REMAINDERF_TOLERANCE, 0},
+{1771, 3161756316u, 3143659754u, 3131116944u, 0, REMAINDERF_TOLERANCE, 0},
+{1772, 3160728744u, 3382954009u, 3160728744u, 0, REMAINDERF_TOLERANCE, 0},
+{1773, 1234530539u, 1079988872u, 3205280992u, 0, REMAINDERF_TOLERANCE, 0},
+{1774, 1017843965u, 1193076204u, 1017843965u, 0, REMAINDERF_TOLERANCE, 0},
+{1775, 3306328852u, 1118701064u, 1082393984u, 0, REMAINDERF_TOLERANCE, 0},
+{1776, 1291910469u, 1211303367u, 3339079352u, 0, REMAINDERF_TOLERANCE, 0},
+{1777, 1131927531u, 3182962700u, 1019272000u, 0, REMAINDERF_TOLERANCE, 0},
+{1778, 3449879391u, 991614550u, 3126666016u, 0, REMAINDERF_TOLERANCE, 0},
+{1779, 970094304u, 3344590506u, 970094304u, 0, REMAINDERF_TOLERANCE, 0},
+{1780, 1125551064u, 3331248076u, 1125551064u, 0, REMAINDERF_TOLERANCE, 0},
+{1781, 3427296372u, 3455289118u, 3427296372u, 0, REMAINDERF_TOLERANCE, 0},
+{1782, 1198917460u, 1327195159u, 1198917460u, 0, REMAINDERF_TOLERANCE, 0},
+{1783, 3201603336u, 820047343u, 2945749204u, 0, REMAINDERF_TOLERANCE, 0},
+{1784, 3114686212u, 3476082461u, 3114686212u, 0, REMAINDERF_TOLERANCE, 0},
+{1785, 921940707u, 2967544056u, 2943794048u, 0, REMAINDERF_TOLERANCE, 0},
+{1786, 1091906532u, 3011904455u, 841227264u, 0, REMAINDERF_TOLERANCE, 0},
+{1787, 3393557778u, 3383396815u, 3369622040u, 0, REMAINDERF_TOLERANCE, 0},
+{1788, 1276853215u, 873199561u, 863650072u, 0, REMAINDERF_TOLERANCE, 0},
+{1789, 3462778440u, 3349284325u, 3325803400u, 0, REMAINDERF_TOLERANCE, 0},
+{1790, 3360170117u, 3048354042u, 870847968u, 0, REMAINDERF_TOLERANCE, 0},
+{1791, 3224245428u, 3271307999u, 3224245428u, 0, REMAINDERF_TOLERANCE, 0},
+{1792, 1120124467u, 1135619937u, 1120124467u, 0, REMAINDERF_TOLERANCE, 0},
+{1793, 1064364381u, 3180675544u, 3151024384u, 0, REMAINDERF_TOLERANCE, 0},
+{1794, 1268744779u, 3328452652u, 3308877952u, 0, REMAINDERF_TOLERANCE, 0},
+{1795, 1165195428u, 3390323168u, 1165195428u, 0, REMAINDERF_TOLERANCE, 0},
+{1796, 3247790039u, 909788142u, 3039398736u, 0, REMAINDERF_TOLERANCE, 0},
+{1797, 3215244648u, 1083988595u, 3215244648u, 0, REMAINDERF_TOLERANCE, 0},
+{1798, 3095275931u, 989153382u, 3095275931u, 0, REMAINDERF_TOLERANCE, 0},
+{1799, 1212717473u, 837873779u, 826399162u, 0, REMAINDERF_TOLERANCE, 0},
+{1800, 3275973009u, 3450721670u, 3275973009u, 0, REMAINDERF_TOLERANCE, 0},
+{1801, 3028857014u, 3188853813u, 3028857014u, 0, REMAINDERF_TOLERANCE, 0},
+{1802, 3391162308u, 1291220039u, 3391162308u, 0, REMAINDERF_TOLERANCE, 0},
+{1803, 1044867873u, 3369493273u, 1044867873u, 0, REMAINDERF_TOLERANCE, 0},
+{1804, 1089986803u, 3462160118u, 1089986803u, 0, REMAINDERF_TOLERANCE, 0},
+{1805, 1296314700u, 2957454177u, 794053992u, 0, REMAINDERF_TOLERANCE, 0},
+{1806, 1251462432u, 3171021770u, 3158130160u, 0, REMAINDERF_TOLERANCE, 0},
+{1807, 3485236902u, 980772835u, 966641182u, 0, REMAINDERF_TOLERANCE, 0},
+{1808, 3262169538u, 1268270462u, 3262169538u, 0, REMAINDERF_TOLERANCE, 0},
+{1809, 3080852256u, 994641495u, 3080852256u, 0, REMAINDERF_TOLERANCE, 0},
+{1810, 1022211242u, 922124181u, 3041880112u, 0, REMAINDERF_TOLERANCE, 0},
+{1811, 884661176u, 2985540645u, 805220016u, 0, REMAINDERF_TOLERANCE, 0},
+{1812, 3071422941u, 3271100396u, 3071422941u, 0, REMAINDERF_TOLERANCE, 0},
+{1813, 989762529u, 3362011135u, 989762529u, 0, REMAINDERF_TOLERANCE, 0},
+{1814, 1295475718u, 3212305413u, 3203032832u, 0, REMAINDERF_TOLERANCE, 0},
+{1815, 1002632518u, 3330388441u, 1002632518u, 0, REMAINDERF_TOLERANCE, 0},
+{1816, 3404372005u, 3450484255u, 3404372005u, 0, REMAINDERF_TOLERANCE, 0},
+{1817, 3158912530u, 3105501826u, 949623888u, 0, REMAINDERF_TOLERANCE, 0},
+{1818, 1125800069u, 3256265749u, 1080761344u, 0, REMAINDERF_TOLERANCE, 0},
+{1819, 3138037576u, 3103365227u, 937376280u, 0, REMAINDERF_TOLERANCE, 0},
+{1820, 999985470u, 3409354318u, 999985470u, 0, REMAINDERF_TOLERANCE, 0},
+{1821, 1189421739u, 1056599002u, 1045697052u, 0, REMAINDERF_TOLERANCE, 0},
+{1822, 3075182644u, 3144159778u, 3075182644u, 0, REMAINDERF_TOLERANCE, 0},
+{1823, 3028099649u, 3391513557u, 3028099649u, 0, REMAINDERF_TOLERANCE, 0},
+{1824, 3132541814u, 3444521949u, 3132541814u, 0, REMAINDERF_TOLERANCE, 0},
+{1825, 1164046161u, 3440635788u, 1164046161u, 0, REMAINDERF_TOLERANCE, 0},
+{1826, 1292596266u, 3116569667u, 3096394216u, 0, REMAINDERF_TOLERANCE, 0},
+{1827, 3469748379u, 3412765608u, 1255687840u, 0, REMAINDERF_TOLERANCE, 0},
+{1828, 1314644642u, 3123051784u, 3111935360u, 0, REMAINDERF_TOLERANCE, 0},
+{1829, 3399813173u, 828743798u, 819389240u, 0, REMAINDERF_TOLERANCE, 0},
+{1830, 948775569u, 3485444126u, 948775569u, 0, REMAINDERF_TOLERANCE, 0},
+{1831, 1034611395u, 882288581u, 3007845568u, 0, REMAINDERF_TOLERANCE, 0},
+{1832, 3489122735u, 3372450889u, 3359775640u, 0, REMAINDERF_TOLERANCE, 0},
+{1833, 1181604787u, 3363067409u, 1181604787u, 0, REMAINDERF_TOLERANCE, 0},
+{1834, 3059042077u, 3204983963u, 3059042077u, 0, REMAINDERF_TOLERANCE, 0},
+{1835, 1043691622u, 3402603223u, 1043691622u, 0, REMAINDERF_TOLERANCE, 0},
+{1836, 1314588083u, 856187848u, 816680192u, 0, REMAINDERF_TOLERANCE, 0},
+{1837, 3141533334u, 3010142974u, 849931232u, 0, REMAINDERF_TOLERANCE, 0},
+{1838, 3157534378u, 3451674717u, 3157534378u, 0, REMAINDERF_TOLERANCE, 0},
+{1839, 3400949680u, 3073750220u, 3046724288u, 0, REMAINDERF_TOLERANCE, 0},
+{1840, 3365581801u, 1175843167u, 3273128000u, 0, REMAINDERF_TOLERANCE, 0},
+{1841, 1110424755u, 3011308654u, 2979891760u, 0, REMAINDERF_TOLERANCE, 0},
+{1842, 3189917167u, 927278934u, 3062195652u, 0, REMAINDERF_TOLERANCE, 0},
+{1843, 969804941u, 3355439348u, 969804941u, 0, REMAINDERF_TOLERANCE, 0},
+{1844, 1139120919u, 3270515074u, 3249006256u, 0, REMAINDERF_TOLERANCE, 0},
+{1845, 934308144u, 3118191228u, 934308144u, 0, REMAINDERF_TOLERANCE, 0},
+{1846, 1220524226u, 1152648002u, 3287997832u, 0, REMAINDERF_TOLERANCE, 0},
+{1847, 3162548604u, 3461790298u, 3162548604u, 0, REMAINDERF_TOLERANCE, 0},
+{1848, 3382391700u, 3296962745u, 3269262352u, 0, REMAINDERF_TOLERANCE, 0},
+{1849, 1156767533u, 1088986462u, 1074141164u, 0, REMAINDERF_TOLERANCE, 0},
+{1850, 3079222483u, 3312324949u, 3079222483u, 0, REMAINDERF_TOLERANCE, 0},
+{1851, 994934087u, 967678094u, 958601844u, 0, REMAINDERF_TOLERANCE, 0},
+{1852, 3185240099u, 1123403720u, 3185240099u, 0, REMAINDERF_TOLERANCE, 0},
+{1853, 3479873563u, 1246277393u, 3381375750u, 0, REMAINDERF_TOLERANCE, 0},
+{1854, 3424264117u, 3434026174u, 3424264117u, 0, REMAINDERF_TOLERANCE, 0},
+{1855, 3228365887u, 1216775310u, 3228365887u, 0, REMAINDERF_TOLERANCE, 0},
+{1856, 1212129651u, 3017366784u, 3007833088u, 0, REMAINDERF_TOLERANCE, 0},
+{1857, 3125775254u, 955826310u, 941739508u, 0, REMAINDERF_TOLERANCE, 0},
+{1858, 1037464105u, 3121544932u, 3082997760u, 0, REMAINDERF_TOLERANCE, 0},
+{1859, 1311706596u, 1254918706u, 3392724728u, 0, REMAINDERF_TOLERANCE, 0},
+{1860, 918212457u, 1017468331u, 918212457u, 0, REMAINDERF_TOLERANCE, 0},
+{1861, 1337315179u, 3461361185u, 3409044416u, 0, REMAINDERF_TOLERANCE, 0},
+{1862, 1131358407u, 3325958870u, 1131358407u, 0, REMAINDERF_TOLERANCE, 0},
+{1863, 1156517523u, 3343716230u, 1156517523u, 0, REMAINDERF_TOLERANCE, 0},
+{1864, 3210802820u, 3207408574u, 3192859416u, 0, REMAINDERF_TOLERANCE, 0},
+{1865, 3337499209u, 1226297264u, 3337499209u, 0, REMAINDERF_TOLERANCE, 0},
+{1866, 3468429030u, 3253874001u, 1045759872u, 0, REMAINDERF_TOLERANCE, 0},
+{1867, 3253515800u, 1189005947u, 3253515800u, 0, REMAINDERF_TOLERANCE, 0},
+{1868, 3055299953u, 3047908678u, 879983952u, 0, REMAINDERF_TOLERANCE, 0},
+{1869, 959956547u, 876324728u, 3003145376u, 0, REMAINDERF_TOLERANCE, 0},
+{1870, 3425290480u, 1139193797u, 1125241808u, 0, REMAINDERF_TOLERANCE, 0},
+{1871, 1039917375u, 1122740999u, 1039917375u, 0, REMAINDERF_TOLERANCE, 0},
+{1872, 3220979495u, 3429223871u, 3220979495u, 0, REMAINDERF_TOLERANCE, 0},
+{1873, 1311016004u, 3334899880u, 1178253744u, 0, REMAINDERF_TOLERANCE, 0},
+{1874, 1128016396u, 1105151547u, 3236326644u, 0, REMAINDERF_TOLERANCE, 0},
+{1875, 3210335769u, 3100646155u, 3063195824u, 0, REMAINDERF_TOLERANCE, 0},
+{1876, 3022705759u, 3404762495u, 3022705759u, 0, REMAINDERF_TOLERANCE, 0},
+{1877, 1206054701u, 826010009u, 805457284u, 0, REMAINDERF_TOLERANCE, 0},
+{1878, 3144504834u, 1162227076u, 3144504834u, 0, REMAINDERF_TOLERANCE, 0},
+{1879, 1213609983u, 919983950u, 908176668u, 0, REMAINDERF_TOLERANCE, 0},
+{1880, 1246902946u, 3064047808u, 895564800u, 0, REMAINDERF_TOLERANCE, 0},
+{1881, 3362082828u, 3374056268u, 3362082828u, 0, REMAINDERF_TOLERANCE, 0},
+{1882, 1029480631u, 3047777170u, 867447040u, 0, REMAINDERF_TOLERANCE, 0},
+{1883, 3153568584u, 3106514232u, 943960352u, 0, REMAINDERF_TOLERANCE, 0},
+{1884, 3384988527u, 3109485565u, 3095242288u, 0, REMAINDERF_TOLERANCE, 0},
+{1885, 1317696241u, 870681806u, 2971687040u, 0, REMAINDERF_TOLERANCE, 0},
+{1886, 3235395924u, 1132055244u, 3235395924u, 0, REMAINDERF_TOLERANCE, 0},
+{1887, 3341877624u, 2969495570u, 2960140912u, 0, REMAINDERF_TOLERANCE, 0},
+{1888, 1228636133u, 886552820u, 3003200064u, 0, REMAINDERF_TOLERANCE, 0},
+{1889, 3161654634u, 3335899347u, 3161654634u, 0, REMAINDERF_TOLERANCE, 0},
+{1890, 3162655243u, 3307203982u, 3162655243u, 0, REMAINDERF_TOLERANCE, 0},
+{1891, 1207246237u, 859223639u, 845699204u, 0, REMAINDERF_TOLERANCE, 0},
+{1892, 1165476654u, 3350219111u, 1165476654u, 0, REMAINDERF_TOLERANCE, 0},
+{1893, 1215278023u, 3019755242u, 855540272u, 0, REMAINDERF_TOLERANCE, 0},
+{1894, 1017239798u, 3438501281u, 1017239798u, 0, REMAINDERF_TOLERANCE, 0},
+{1895, 1149651309u, 970030475u, 958104804u, 0, REMAINDERF_TOLERANCE, 0},
+{1896, 1111943722u, 3122211334u, 3104172864u, 0, REMAINDERF_TOLERANCE, 0},
+{1897, 1189849849u, 3382739134u, 1189849849u, 0, REMAINDERF_TOLERANCE, 0},
+{1898, 3204848496u, 3141519085u, 3092648512u, 0, REMAINDERF_TOLERANCE, 0},
+{1899, 1249758327u, 3104759211u, 933001456u, 0, REMAINDERF_TOLERANCE, 0},
+{1900, 3092982276u, 3445282331u, 3092982276u, 0, REMAINDERF_TOLERANCE, 0},
+{1901, 1168098747u, 1316854744u, 1168098747u, 0, REMAINDERF_TOLERANCE, 0},
+{1902, 3301009024u, 3406174560u, 3301009024u, 0, REMAINDERF_TOLERANCE, 0},
+{1903, 3233089227u, 1212652543u, 3233089227u, 0, REMAINDERF_TOLERANCE, 0},
+{1904, 3218245284u, 1238873830u, 3218245284u, 0, REMAINDERF_TOLERANCE, 0},
+{1905, 3215981890u, 3240474694u, 3215981890u, 0, REMAINDERF_TOLERANCE, 0},
+{1906, 1266687209u, 3092038122u, 3059402624u, 0, REMAINDERF_TOLERANCE, 0},
+{1907, 3487959775u, 3331372071u, 1151779600u, 0, REMAINDERF_TOLERANCE, 0},
+{1908, 943645710u, 852875779u, 826119328u, 0, REMAINDERF_TOLERANCE, 0},
+{1909, 3345065699u, 3282620725u, 3254464912u, 0, REMAINDERF_TOLERANCE, 0},
+{1910, 935847271u, 1067255804u, 935847271u, 0, REMAINDERF_TOLERANCE, 0},
+{1911, 3410336089u, 1111437780u, 1078086720u, 0, REMAINDERF_TOLERANCE, 0},
+{1912, 1141063391u, 1168908072u, 1141063391u, 0, REMAINDERF_TOLERANCE, 0},
+{1913, 3059263153u, 3067795684u, 3059263153u, 0, REMAINDERF_TOLERANCE, 0},
+{1914, 3353679791u, 897158391u, 3031717612u, 0, REMAINDERF_TOLERANCE, 0},
+{1915, 1001823878u, 1016826861u, 1001823878u, 0, REMAINDERF_TOLERANCE, 0},
+{1916, 1009130212u, 1004302940u, 3143196128u, 0, REMAINDERF_TOLERANCE, 0},
+{1917, 3367127535u, 943136342u, 928140432u, 0, REMAINDERF_TOLERANCE, 0},
+{1918, 1032920919u, 3449126417u, 1032920919u, 0, REMAINDERF_TOLERANCE, 0},
+{1919, 3281952870u, 3147012185u, 3130041528u, 0, REMAINDERF_TOLERANCE, 0},
+{1920, 1237868497u, 3048281802u, 3023784992u, 0, REMAINDERF_TOLERANCE, 0},
+{1921, 1153753924u, 3322269242u, 1153753924u, 0, REMAINDERF_TOLERANCE, 0},
+{1922, 1120261759u, 892210998u, 883701944u, 0, REMAINDERF_TOLERANCE, 0},
+{1923, 3226328360u, 3366432856u, 3226328360u, 0, REMAINDERF_TOLERANCE, 0},
+{1924, 3349595986u, 3251588707u, 3234647820u, 0, REMAINDERF_TOLERANCE, 0},
+{1925, 3166889490u, 3306023523u, 3166889490u, 0, REMAINDERF_TOLERANCE, 0},
+{1926, 1087750238u, 1099325523u, 1087750238u, 0, REMAINDERF_TOLERANCE, 0},
+{1927, 3121620061u, 3359488363u, 3121620061u, 0, REMAINDERF_TOLERANCE, 0},
+{1928, 1066116543u, 3072159933u, 889619088u, 0, REMAINDERF_TOLERANCE, 0},
+{1929, 3210898034u, 2981803389u, 820754888u, 0, REMAINDERF_TOLERANCE, 0},
+{1930, 3051923237u, 3364074347u, 3051923237u, 0, REMAINDERF_TOLERANCE, 0},
+{1931, 1030612298u, 3345396001u, 1030612298u, 0, REMAINDERF_TOLERANCE, 0},
+{1932, 1186234578u, 858134374u, 824693856u, 0, REMAINDERF_TOLERANCE, 0},
+{1933, 1331680743u, 1009396165u, 975246528u, 0, REMAINDERF_TOLERANCE, 0},
+{1934, 1045232522u, 3234993273u, 1045232522u, 0, REMAINDERF_TOLERANCE, 0},
+{1935, 3119858470u, 962515365u, 3090385928u, 0, REMAINDERF_TOLERANCE, 0},
+{1936, 3349432725u, 928848003u, 3055503844u, 0, REMAINDERF_TOLERANCE, 0},
+{1937, 912423027u, 3184646319u, 912423027u, 0, REMAINDERF_TOLERANCE, 0},
+{1938, 3228795133u, 3273940030u, 3228795133u, 0, REMAINDERF_TOLERANCE, 0},
+{1939, 3194674746u, 3112269709u, 942871912u, 0, REMAINDERF_TOLERANCE, 0},
+{1940, 3296784303u, 3276182352u, 3256513440u, 0, REMAINDERF_TOLERANCE, 0},
+{1941, 965402291u, 3107104376u, 3097435924u, 0, REMAINDERF_TOLERANCE, 0},
+{1942, 3388153589u, 3426245389u, 3388153589u, 0, REMAINDERF_TOLERANCE, 0},
+{1943, 1133410485u, 3329658993u, 1133410485u, 0, REMAINDERF_TOLERANCE, 0},
+{1944, 3136790322u, 1088652637u, 3136790322u, 0, REMAINDERF_TOLERANCE, 0},
+{1945, 3369970587u, 959121458u, 3088503784u, 0, REMAINDERF_TOLERANCE, 0},
+{1946, 1270451568u, 928393353u, 3061279676u, 0, REMAINDERF_TOLERANCE, 0},
+{1947, 989498922u, 3088358419u, 3051673664u, 0, REMAINDERF_TOLERANCE, 0},
+{1948, 1280215674u, 3148135875u, 3139032254u, 0, REMAINDERF_TOLERANCE, 0},
+{1949, 1171873518u, 954709738u, 3078051120u, 0, REMAINDERF_TOLERANCE, 0},
+{1950, 3298258100u, 935525182u, 3037756096u, 0, REMAINDERF_TOLERANCE, 0},
+{1951, 3415208824u, 822843236u, 806916432u, 0, REMAINDERF_TOLERANCE, 0},
+{1952, 1001897182u, 3191875320u, 1001897182u, 0, REMAINDERF_TOLERANCE, 0},
+{1953, 3152777939u, 3245830463u, 3152777939u, 0, REMAINDERF_TOLERANCE, 0},
+{1954, 985903305u, 3333087577u, 985903305u, 0, REMAINDERF_TOLERANCE, 0},
+{1955, 3357328848u, 859306298u, 2991993656u, 0, REMAINDERF_TOLERANCE, 0},
+{1956, 982612185u, 923582663u, 908334992u, 0, REMAINDERF_TOLERANCE, 0},
+{1957, 3267868136u, 1208301947u, 3267868136u, 0, REMAINDERF_TOLERANCE, 0},
+{1958, 3319048157u, 1172271145u, 1135379648u, 0, REMAINDERF_TOLERANCE, 0},
+{1959, 1144755661u, 860947435u, 837949656u, 0, REMAINDERF_TOLERANCE, 0},
+{1960, 898467286u, 839254959u, 817352120u, 0, REMAINDERF_TOLERANCE, 0},
+{1961, 3301461672u, 1233693827u, 3301461672u, 0, REMAINDERF_TOLERANCE, 0},
+{1962, 3364525678u, 3089849671u, 3069169320u, 0, REMAINDERF_TOLERANCE, 0},
+{1963, 3146660041u, 3143695961u, 3127758052u, 0, REMAINDERF_TOLERANCE, 0},
+{1964, 3467121799u, 3023584354u, 865329844u, 0, REMAINDERF_TOLERANCE, 0},
+{1965, 1151257041u, 3084216427u, 922291812u, 0, REMAINDERF_TOLERANCE, 0},
+{1966, 3097873255u, 3219266640u, 3097873255u, 0, REMAINDERF_TOLERANCE, 0},
+{1967, 3130670309u, 3192399254u, 3130670309u, 0, REMAINDERF_TOLERANCE, 0},
+{1968, 1017573824u, 3130901062u, 3098323552u, 0, REMAINDERF_TOLERANCE, 0},
+{1969, 1258369714u, 3462258576u, 1258369714u, 0, REMAINDERF_TOLERANCE, 0},
+{1970, 1216602683u, 3371396332u, 3361674594u, 0, REMAINDERF_TOLERANCE, 0},
+{1971, 3297265739u, 1214184410u, 3297265739u, 0, REMAINDERF_TOLERANCE, 0},
+{1972, 1071940738u, 3311731012u, 1071940738u, 0, REMAINDERF_TOLERANCE, 0},
+{1973, 922601356u, 3337171870u, 922601356u, 0, REMAINDERF_TOLERANCE, 0},
+{1974, 3462285635u, 3444030332u, 3434376760u, 0, REMAINDERF_TOLERANCE, 0},
+{1975, 3357177805u, 1085464241u, 1071015336u, 0, REMAINDERF_TOLERANCE, 0},
+{1976, 3049120080u, 900832851u, 3015978960u, 0, REMAINDERF_TOLERANCE, 0},
+{1977, 1153863660u, 1011991342u, 1001807172u, 0, REMAINDERF_TOLERANCE, 0},
+{1978, 3034243695u, 917098003u, 3034243695u, 0, REMAINDERF_TOLERANCE, 0},
+{1979, 1249365132u, 3278686216u, 1118515296u, 0, REMAINDERF_TOLERANCE, 0},
+{1980, 3046215730u, 3211219980u, 3046215730u, 0, REMAINDERF_TOLERANCE, 0},
+{1981, 3047251716u, 1090787353u, 3047251716u, 0, REMAINDERF_TOLERANCE, 0},
+{1982, 3131219358u, 3471261157u, 3131219358u, 0, REMAINDERF_TOLERANCE, 0},
+{1983, 3222096285u, 1198013705u, 3222096285u, 0, REMAINDERF_TOLERANCE, 0},
+{1984, 1297708818u, 3079166173u, 906966632u, 0, REMAINDERF_TOLERANCE, 0},
+{1985, 3345532722u, 3383708463u, 3345532722u, 0, REMAINDERF_TOLERANCE, 0},
+{1986, 3418753236u, 3481843070u, 3418753236u, 0, REMAINDERF_TOLERANCE, 0},
+{1987, 1277417964u, 3487506626u, 1277417964u, 0, REMAINDERF_TOLERANCE, 0},
+{1988, 987577257u, 1152077087u, 987577257u, 0, REMAINDERF_TOLERANCE, 0},
+{1989, 3161606610u, 3190282989u, 3161606610u, 0, REMAINDERF_TOLERANCE, 0},
+{1990, 888030585u, 3062367380u, 888030585u, 0, REMAINDERF_TOLERANCE, 0},
+{1991, 1043442869u, 3311393817u, 1043442869u, 0, REMAINDERF_TOLERANCE, 0},
+{1992, 3320923228u, 3464544249u, 3320923228u, 0, REMAINDERF_TOLERANCE, 0},
+{1993, 1337400405u, 3488844154u, 3471946900u, 0, REMAINDERF_TOLERANCE, 0},
+{1994, 3400348640u, 3129868490u, 965234592u, 0, REMAINDERF_TOLERANCE, 0},
+{1995, 1250249095u, 1069023744u, 1060149248u, 0, REMAINDERF_TOLERANCE, 0},
+{1996, 3284411233u, 1173613526u, 3284411233u, 0, REMAINDERF_TOLERANCE, 0},
+{1997, 3020883322u, 2953622587u, 2935189664u, 0, REMAINDERF_TOLERANCE, 0},
+{1998, 1215968622u, 3469884568u, 1215968622u, 0, REMAINDERF_TOLERANCE, 0},
+{1999, 3202319550u, 819117302u, 806034448u, 0, REMAINDERF_TOLERANCE, 0},
+{2000, 3061638260u, 3116222327u, 3061638260u, 0, REMAINDERF_TOLERANCE, 0},
+{2001, 1025404104u, 1066370251u, 1025404104u, 0, REMAINDERF_TOLERANCE, 0},
+{2002, 3138086437u, 3195983510u, 3138086437u, 0, REMAINDERF_TOLERANCE, 0},
+{2003, 3091024506u, 3456196859u, 3091024506u, 0, REMAINDERF_TOLERANCE, 0},
+{2004, 3362748242u, 3369843597u, 1212678088u, 0, REMAINDERF_TOLERANCE, 0},
+{2005, 3099671635u, 3218383623u, 3099671635u, 0, REMAINDERF_TOLERANCE, 0},
+{2006, 3068014841u, 2978226656u, 796858368u, 0, REMAINDERF_TOLERANCE, 0},
+{2007, 1252237719u, 1121169249u, 3239657496u, 0, REMAINDERF_TOLERANCE, 0},
+{2008, 3327895594u, 1224511805u, 3327895594u, 0, REMAINDERF_TOLERANCE, 0},
+{2009, 3082454432u, 889268276u, 3017528640u, 0, REMAINDERF_TOLERANCE, 0},
+{2010, 3396161504u, 1182798837u, 3307975032u, 0, REMAINDERF_TOLERANCE, 0},
+{2011, 1099710167u, 887180181u, 3025478368u, 0, REMAINDERF_TOLERANCE, 0},
+{2012, 1157186482u, 1288722647u, 1157186482u, 0, REMAINDERF_TOLERANCE, 0},
+{2013, 1282110851u, 3176633124u, 988272128u, 0, REMAINDERF_TOLERANCE, 0},
+{2014, 3477008113u, 1331845018u, 1309516452u, 0, REMAINDERF_TOLERANCE, 0},
+{2015, 3292127294u, 3409957764u, 3292127294u, 0, REMAINDERF_TOLERANCE, 0},
+{2016, 1123357102u, 3281307320u, 1123357102u, 0, REMAINDERF_TOLERANCE, 0},
+{2017, 1106837025u, 3088080674u, 923829400u, 0, REMAINDERF_TOLERANCE, 0},
+{2018, 1049949008u, 1130799489u, 1049949008u, 0, REMAINDERF_TOLERANCE, 0},
+{2019, 1253017688u, 942062372u, 3078263968u, 0, REMAINDERF_TOLERANCE, 0},
+{2020, 1108543194u, 3281299199u, 1108543194u, 0, REMAINDERF_TOLERANCE, 0},
+{2021, 1160162706u, 1264067367u, 1160162706u, 0, REMAINDERF_TOLERANCE, 0},
+{2022, 3305715025u, 3017496063u, 859763526u, 0, REMAINDERF_TOLERANCE, 0},
+{2023, 1266928623u, 811778614u, 2944546360u, 0, REMAINDERF_TOLERANCE, 0},
+{2024, 3438080027u, 3107114149u, 932701080u, 0, REMAINDERF_TOLERANCE, 0},
+{2025, 3344574751u, 3111270744u, 3101782928u, 0, REMAINDERF_TOLERANCE, 0},
+{2026, 1152416724u, 962669179u, 948286872u, 0, REMAINDERF_TOLERANCE, 0},
+{2027, 1218239308u, 1126238113u, 3242277552u, 0, REMAINDERF_TOLERANCE, 0},
+{2028, 3263310567u, 1030748197u, 1001751704u, 0, REMAINDERF_TOLERANCE, 0},
+{2029, 1000313118u, 2980130729u, 2961403816u, 0, REMAINDERF_TOLERANCE, 0},
+{2030, 972485427u, 1124312043u, 972485427u, 0, REMAINDERF_TOLERANCE, 0},
+{2031, 3290264612u, 1124703898u, 1114186184u, 0, REMAINDERF_TOLERANCE, 0},
+{2032, 3222106584u, 1183748648u, 3222106584u, 0, REMAINDERF_TOLERANCE, 0},
+{2033, 1278946388u, 825129857u, 2955667752u, 0, REMAINDERF_TOLERANCE, 0},
+{2034, 947914771u, 3181847068u, 947914771u, 0, REMAINDERF_TOLERANCE, 0},
+{2035, 3167730654u, 3195765940u, 3167730654u, 0, REMAINDERF_TOLERANCE, 0},
+{2036, 1098530298u, 3255870890u, 1098530298u, 0, REMAINDERF_TOLERANCE, 0},
+{2037, 3232726036u, 871038882u, 853288144u, 0, REMAINDERF_TOLERANCE, 0},
+{2038, 1297190916u, 811863044u, 801786168u, 0, REMAINDERF_TOLERANCE, 0},
+{2039, 1277649137u, 961171401u, 923065584u, 0, REMAINDERF_TOLERANCE, 0},
+{2040, 3090306474u, 3124785016u, 3090306474u, 0, REMAINDERF_TOLERANCE, 0},
+{2041, 3244032016u, 3045313345u, 2997382784u, 0, REMAINDERF_TOLERANCE, 0},
+{2042, 3033122376u, 3049877065u, 3033122376u, 0, REMAINDERF_TOLERANCE, 0},
+{2043, 1096155623u, 1256423752u, 1096155623u, 0, REMAINDERF_TOLERANCE, 0},
+{2044, 873151908u, 3246562559u, 873151908u, 0, REMAINDERF_TOLERANCE, 0},
+{2045, 3317196817u, 989537151u, 3128603888u, 0, REMAINDERF_TOLERANCE, 0},
+{2046, 3374748510u, 834161190u, 2962771824u, 0, REMAINDERF_TOLERANCE, 0},
+{2047, 3345634950u, 959901149u, 3088828252u, 0, REMAINDERF_TOLERANCE, 0},
+{2048, 3189860276u, 883598767u, 817257216u, 0, REMAINDERF_TOLERANCE, 0},
+{2049, 3396917283u, 3066326686u, 893564336u, 0, REMAINDERF_TOLERANCE, 0},
+{2050, 3317032737u, 3143803722u, 974854600u, 0, REMAINDERF_TOLERANCE, 0},
+{2051, 1200051436u, 1163802508u, 1155071032u, 0, REMAINDERF_TOLERANCE, 0},
+{2052, 1306520561u, 957302464u, 944812800u, 0, REMAINDERF_TOLERANCE, 0},
+{2053, 1314936356u, 2985592532u, 810494176u, 0, REMAINDERF_TOLERANCE, 0},
+{2054, 3475052219u, 1284049853u, 1272158904u, 0, REMAINDERF_TOLERANCE, 0},
+{2055, 3085636260u, 1107682820u, 3085636260u, 0, REMAINDERF_TOLERANCE, 0},
+{2056, 3393227708u, 3271879112u, 1103097792u, 0, REMAINDERF_TOLERANCE, 0},
+{2057, 3182540197u, 852580839u, 794870400u, 0, REMAINDERF_TOLERANCE, 0},
+{2058, 3349005404u, 3080993030u, 924182316u, 0, REMAINDERF_TOLERANCE, 0},
+{2059, 3154720153u, 3443720494u, 3154720153u, 0, REMAINDERF_TOLERANCE, 0},
+{2060, 1262863321u, 1219003129u, 3356879788u, 0, REMAINDERF_TOLERANCE, 0},
+{2061, 1053387478u, 3184880021u, 3166694384u, 0, REMAINDERF_TOLERANCE, 0},
+{2062, 3387653691u, 3347783852u, 3317110976u, 0, REMAINDERF_TOLERANCE, 0},
+{2063, 3136364836u, 1018492227u, 3136364836u, 0, REMAINDERF_TOLERANCE, 0},
+{2064, 1338680611u, 1166078045u, 3279619968u, 0, REMAINDERF_TOLERANCE, 0},
+{2065, 1112891928u, 3074730425u, 3049799216u, 0, REMAINDERF_TOLERANCE, 0},
+{2066, 893449284u, 1052877339u, 893449284u, 0, REMAINDERF_TOLERANCE, 0},
+{2067, 3105373037u, 3246705916u, 3105373037u, 0, REMAINDERF_TOLERANCE, 0},
+{2068, 1190105283u, 3033907262u, 3005110384u, 0, REMAINDERF_TOLERANCE, 0},
+{2069, 1011225926u, 1180485180u, 1011225926u, 0, REMAINDERF_TOLERANCE, 0},
+{2070, 1043025031u, 987068973u, 3120009836u, 0, REMAINDERF_TOLERANCE, 0},
+{2071, 3410531037u, 2953541915u, 2915509408u, 0, REMAINDERF_TOLERANCE, 0},
+{2072, 3125834184u, 896953754u, 3022091312u, 0, REMAINDERF_TOLERANCE, 0},
+{2073, 902318189u, 849277289u, 2984319972u, 0, REMAINDERF_TOLERANCE, 0},
+{2074, 3213624815u, 2987148017u, 810618448u, 0, REMAINDERF_TOLERANCE, 0},
+{2075, 1120888322u, 1086209113u, 1076411502u, 0, REMAINDERF_TOLERANCE, 0},
+{2076, 1315217243u, 3396371713u, 1235367450u, 0, REMAINDERF_TOLERANCE, 0},
+{2077, 3137758475u, 1039403054u, 3137758475u, 0, REMAINDERF_TOLERANCE, 0},
+{2078, 1040617590u, 1034835971u, 3172933172u, 0, REMAINDERF_TOLERANCE, 0},
+{2079, 955384253u, 3344785562u, 955384253u, 0, REMAINDERF_TOLERANCE, 0},
+{2080, 904255535u, 1019967545u, 904255535u, 0, REMAINDERF_TOLERANCE, 0},
+{2081, 1022984119u, 3113891410u, 3104589600u, 0, REMAINDERF_TOLERANCE, 0},
+{2082, 997362368u, 3112875428u, 3058465792u, 0, REMAINDERF_TOLERANCE, 0},
+{2083, 1168623062u, 1143306482u, 1116944640u, 0, REMAINDERF_TOLERANCE, 0},
+{2084, 878737490u, 3269908326u, 878737490u, 0, REMAINDERF_TOLERANCE, 0},
+{2085, 1039827284u, 1072928888u, 1039827284u, 0, REMAINDERF_TOLERANCE, 0},
+{2086, 1021564080u, 1064468397u, 1021564080u, 0, REMAINDERF_TOLERANCE, 0},
+{2087, 3458669745u, 3033299853u, 874931060u, 0, REMAINDERF_TOLERANCE, 0},
+{2088, 3327516316u, 3405380971u, 3327516316u, 0, REMAINDERF_TOLERANCE, 0},
+{2089, 1040711112u, 3229444200u, 1040711112u, 0, REMAINDERF_TOLERANCE, 0},
+{2090, 1134528351u, 3365952513u, 1134528351u, 0, REMAINDERF_TOLERANCE, 0},
+{2091, 3414352838u, 3350285760u, 1151873024u, 0, REMAINDERF_TOLERANCE, 0},
+{2092, 1133689539u, 1067460093u, 3205511294u, 0, REMAINDERF_TOLERANCE, 0},
+{2093, 3455688478u, 3333091960u, 3320850048u, 0, REMAINDERF_TOLERANCE, 0},
+{2094, 1137634874u, 1137038869u, 1100055120u, 0, REMAINDERF_TOLERANCE, 0},
+{2095, 3415502662u, 955510692u, 3074734528u, 0, REMAINDERF_TOLERANCE, 0},
+{2096, 954999730u, 969618597u, 954999730u, 0, REMAINDERF_TOLERANCE, 0},
+{2097, 1066157309u, 3241712664u, 1066157309u, 0, REMAINDERF_TOLERANCE, 0},
+{2098, 3436353675u, 1174967495u, 3308447100u, 0, REMAINDERF_TOLERANCE, 0},
+{2099, 940437609u, 860372396u, 2984906304u, 0, REMAINDERF_TOLERANCE, 0},
+{2100, 3108347547u, 3434003435u, 3108347547u, 0, REMAINDERF_TOLERANCE, 0},
+{2101, 3064200154u, 3158080507u, 3064200154u, 0, REMAINDERF_TOLERANCE, 0},
+{2102, 1023889593u, 2979304683u, 2952006656u, 0, REMAINDERF_TOLERANCE, 0},
+{2103, 3272661536u, 3461799138u, 3272661536u, 0, REMAINDERF_TOLERANCE, 0},
+{2104, 1170245333u, 1233406410u, 1170245333u, 0, REMAINDERF_TOLERANCE, 0},
+{2105, 1219052056u, 3369557946u, 3350754952u, 0, REMAINDERF_TOLERANCE, 0},
+{2106, 3318983619u, 3259663338u, 1093446640u, 0, REMAINDERF_TOLERANCE, 0},
+{2107, 3372118621u, 837597103u, 2969878364u, 0, REMAINDERF_TOLERANCE, 0},
+{2108, 3146190320u, 889646054u, 3005091072u, 0, REMAINDERF_TOLERANCE, 0},
+{2109, 1299683827u, 966031619u, 951225020u, 0, REMAINDERF_TOLERANCE, 0},
+{2110, 3086068902u, 3484245751u, 3086068902u, 0, REMAINDERF_TOLERANCE, 0},
+{2111, 3064155399u, 3176569312u, 3064155399u, 0, REMAINDERF_TOLERANCE, 0},
+{2112, 3040314717u, 1071290674u, 3040314717u, 0, REMAINDERF_TOLERANCE, 0},
+{2113, 3257224022u, 3361778245u, 3257224022u, 0, REMAINDERF_TOLERANCE, 0},
+{2114, 1229268598u, 1066965677u, 3201545820u, 0, REMAINDERF_TOLERANCE, 0},
+{2115, 3184078812u, 871003709u, 856625364u, 0, REMAINDERF_TOLERANCE, 0},
+{2116, 1086717248u, 3423795374u, 1086717248u, 0, REMAINDERF_TOLERANCE, 0},
+{2117, 3434884607u, 3029593823u, 3012614440u, 0, REMAINDERF_TOLERANCE, 0},
+{2118, 3464955606u, 1017987696u, 1009465856u, 0, REMAINDERF_TOLERANCE, 0},
+{2119, 1025278524u, 3121856207u, 3102801888u, 0, REMAINDERF_TOLERANCE, 0},
+{2120, 1242829722u, 3233935671u, 1075185908u, 0, REMAINDERF_TOLERANCE, 0},
+{2121, 3075149137u, 1117325737u, 3075149137u, 0, REMAINDERF_TOLERANCE, 0},
+{2122, 1200927971u, 1317167489u, 1200927971u, 0, REMAINDERF_TOLERANCE, 0},
+{2123, 3326858092u, 3452602832u, 3326858092u, 0, REMAINDERF_TOLERANCE, 0},
+{2124, 1246019790u, 850632217u, 830042472u, 0, REMAINDERF_TOLERANCE, 0},
+{2125, 3184801644u, 1137974313u, 3184801644u, 0, REMAINDERF_TOLERANCE, 0},
+{2126, 1136052740u, 3244616020u, 3234653200u, 0, REMAINDERF_TOLERANCE, 0},
+{2127, 1069009211u, 3002507482u, 814487552u, 0, REMAINDERF_TOLERANCE, 0},
+{2128, 1015670780u, 1101217251u, 1015670780u, 0, REMAINDERF_TOLERANCE, 0},
+{2129, 1012543234u, 1116520440u, 1012543234u, 0, REMAINDERF_TOLERANCE, 0},
+{2130, 3316611992u, 3394732912u, 3316611992u, 0, REMAINDERF_TOLERANCE, 0},
+{2131, 1087942795u, 3316660295u, 1087942795u, 0, REMAINDERF_TOLERANCE, 0},
+{2132, 3426365713u, 3069778532u, 899297264u, 0, REMAINDERF_TOLERANCE, 0},
+{2133, 3066654389u, 3443934204u, 3066654389u, 0, REMAINDERF_TOLERANCE, 0},
+{2134, 3295326432u, 1313396175u, 3295326432u, 0, REMAINDERF_TOLERANCE, 0},
+{2135, 3318835308u, 3277583511u, 3268200348u, 0, REMAINDERF_TOLERANCE, 0},
+{2136, 3283555717u, 891875120u, 3018418816u, 0, REMAINDERF_TOLERANCE, 0},
+{2137, 3381255420u, 3015406047u, 3003470174u, 0, REMAINDERF_TOLERANCE, 0},
+{2138, 3040485181u, 3375450886u, 3040485181u, 0, REMAINDERF_TOLERANCE, 0},
+{2139, 3388772093u, 1032597076u, 3165073936u, 0, REMAINDERF_TOLERANCE, 0},
+{2140, 954670189u, 1144923689u, 954670189u, 0, REMAINDERF_TOLERANCE, 0},
+{2141, 1319200415u, 3387555900u, 1225501968u, 0, REMAINDERF_TOLERANCE, 0},
+{2142, 1279324488u, 3228401212u, 3206297888u, 0, REMAINDERF_TOLERANCE, 0},
+{2143, 3217795424u, 865577227u, 3001572528u, 0, REMAINDERF_TOLERANCE, 0},
+{2144, 3455131757u, 1260217257u, 3363738048u, 0, REMAINDERF_TOLERANCE, 0},
+{2145, 1246947517u, 1087951909u, 3223711398u, 0, REMAINDERF_TOLERANCE, 0},
+{2146, 3396723577u, 869285240u, 856565232u, 0, REMAINDERF_TOLERANCE, 0},
+{2147, 3433761025u, 3060143904u, 889916032u, 0, REMAINDERF_TOLERANCE, 0},
+{2148, 3201187455u, 900233172u, 3030875120u, 0, REMAINDERF_TOLERANCE, 0},
+{2149, 1173247961u, 1191127979u, 1173247961u, 0, REMAINDERF_TOLERANCE, 0},
+{2150, 3037297123u, 3346394818u, 3037297123u, 0, REMAINDERF_TOLERANCE, 0},
+{2151, 3083019343u, 3033309444u, 2992028032u, 0, REMAINDERF_TOLERANCE, 0},
+{2152, 3042018375u, 3203882372u, 3042018375u, 0, REMAINDERF_TOLERANCE, 0},
+{2153, 1082862511u, 3032804719u, 870904016u, 0, REMAINDERF_TOLERANCE, 0},
+{2154, 3157626955u, 3483653298u, 3157626955u, 0, REMAINDERF_TOLERANCE, 0},
+{2155, 1341821683u, 3003675365u, 2982557440u, 0, REMAINDERF_TOLERANCE, 0},
+{2156, 1079061705u, 2960507663u, 2951154782u, 0, REMAINDERF_TOLERANCE, 0},
+{2157, 3182695954u, 3256861672u, 3182695954u, 0, REMAINDERF_TOLERANCE, 0},
+{2158, 1105291533u, 3482971524u, 1105291533u, 0, REMAINDERF_TOLERANCE, 0},
+{2159, 1016023520u, 3227712090u, 1016023520u, 0, REMAINDERF_TOLERANCE, 0},
+{2160, 3370691006u, 1295870514u, 3370691006u, 0, REMAINDERF_TOLERANCE, 0},
+{2161, 1156767169u, 1049756240u, 1025779584u, 0, REMAINDERF_TOLERANCE, 0},
+{2162, 3077020499u, 894671462u, 885935096u, 0, REMAINDERF_TOLERANCE, 0},
+{2163, 1104284039u, 3040211914u, 862037856u, 0, REMAINDERF_TOLERANCE, 0},
+{2164, 3335212901u, 3486414589u, 3335212901u, 0, REMAINDERF_TOLERANCE, 0},
+{2165, 1093697541u, 3193708441u, 1032547210u, 0, REMAINDERF_TOLERANCE, 0},
+{2166, 3266691185u, 1160074593u, 3266691185u, 0, REMAINDERF_TOLERANCE, 0},
+{2167, 3179003144u, 1108615803u, 3179003144u, 0, REMAINDERF_TOLERANCE, 0},
+{2168, 1094115255u, 3008610212u, 2973244032u, 0, REMAINDERF_TOLERANCE, 0},
+{2169, 3424086808u, 3260140004u, 1099884568u, 0, REMAINDERF_TOLERANCE, 0},
+{2170, 3353608773u, 1134068114u, 1117671864u, 0, REMAINDERF_TOLERANCE, 0},
+{2171, 882878091u, 3136970767u, 882878091u, 0, REMAINDERF_TOLERANCE, 0},
+{2172, 1098662266u, 833740182u, 2965890624u, 0, REMAINDERF_TOLERANCE, 0},
+{2173, 927582555u, 947955456u, 927582555u, 0, REMAINDERF_TOLERANCE, 0},
+{2174, 3111440310u, 3067634077u, 3048272560u, 0, REMAINDERF_TOLERANCE, 0},
+{2175, 3476083859u, 966439623u, 950958600u, 0, REMAINDERF_TOLERANCE, 0},
+{2176, 3038754840u, 932009686u, 3038754840u, 0, REMAINDERF_TOLERANCE, 0},
+{2177, 3464546616u, 3205527253u, 3195154312u, 0, REMAINDERF_TOLERANCE, 0},
+{2178, 1002542205u, 3152136093u, 3129003136u, 0, REMAINDERF_TOLERANCE, 0},
+{2179, 3443552129u, 3165561391u, 3131907072u, 0, REMAINDERF_TOLERANCE, 0},
+{2180, 1287620154u, 3119707283u, 3093984640u, 0, REMAINDERF_TOLERANCE, 0},
+{2181, 3073260205u, 3093124531u, 3073260205u, 0, REMAINDERF_TOLERANCE, 0},
+{2182, 1245702957u, 894348966u, 815923200u, 0, REMAINDERF_TOLERANCE, 0},
+{2183, 1002715618u, 1191006977u, 1002715618u, 0, REMAINDERF_TOLERANCE, 0},
+{2184, 3087802274u, 897541752u, 3018272960u, 0, REMAINDERF_TOLERANCE, 0},
+{2185, 3415763001u, 3032518431u, 846106048u, 0, REMAINDERF_TOLERANCE, 0},
+{2186, 3283471961u, 1260093226u, 3283471961u, 0, REMAINDERF_TOLERANCE, 0},
+{2187, 3311210827u, 1192192264u, 3311210827u, 0, REMAINDERF_TOLERANCE, 0},
+{2188, 3026311911u, 2968974374u, 2935874080u, 0, REMAINDERF_TOLERANCE, 0},
+{2189, 1198307901u, 1116328249u, 1107057956u, 0, REMAINDERF_TOLERANCE, 0},
+{2190, 1288901567u, 1296370667u, 3434546199u, 0, REMAINDERF_TOLERANCE, 0},
+{2191, 922255363u, 958305289u, 922255363u, 0, REMAINDERF_TOLERANCE, 0},
+{2192, 1113104661u, 944376032u, 3061836288u, 0, REMAINDERF_TOLERANCE, 0},
+{2193, 1136714348u, 828849087u, 806528084u, 0, REMAINDERF_TOLERANCE, 0},
+{2194, 948856035u, 1015466475u, 948856035u, 0, REMAINDERF_TOLERANCE, 0},
+{2195, 1062512367u, 3229559531u, 1062512367u, 0, REMAINDERF_TOLERANCE, 0},
+{2196, 3486907092u, 823220784u, 2917834752u, 0, REMAINDERF_TOLERANCE, 0},
+{2197, 1162027071u, 3308983387u, 1124122176u, 0, REMAINDERF_TOLERANCE, 0},
+{2198, 1034561811u, 1054043114u, 1034561811u, 0, REMAINDERF_TOLERANCE, 0},
+{2199, 3271615417u, 3209997200u, 3187590784u, 0, REMAINDERF_TOLERANCE, 0},
+{2200, 1042014529u, 1146708584u, 1042014529u, 0, REMAINDERF_TOLERANCE, 0},
+{2201, 1177157787u, 3090208179u, 3079778204u, 0, REMAINDERF_TOLERANCE, 0},
+{2202, 3196144817u, 1056118717u, 1046713880u, 0, REMAINDERF_TOLERANCE, 0},
+{2203, 3432084552u, 2997091781u, 840592388u, 0, REMAINDERF_TOLERANCE, 0},
+{2204, 1309658335u, 1010219988u, 3143725360u, 0, REMAINDERF_TOLERANCE, 0},
+{2205, 1226494979u, 2991604792u, 824811424u, 0, REMAINDERF_TOLERANCE, 0},
+{2206, 3100289712u, 3456334210u, 3100289712u, 0, REMAINDERF_TOLERANCE, 0},
+{2207, 3375507013u, 1306310823u, 3375507013u, 0, REMAINDERF_TOLERANCE, 0},
+{2208, 3460699001u, 3096700943u, 929697272u, 0, REMAINDERF_TOLERANCE, 0},
+{2209, 3079231719u, 1044386263u, 3079231719u, 0, REMAINDERF_TOLERANCE, 0},
+{2210, 3093951884u, 1014115231u, 3093951884u, 0, REMAINDERF_TOLERANCE, 0},
+{2211, 3468023178u, 1209565017u, 1176354432u, 0, REMAINDERF_TOLERANCE, 0},
+{2212, 1204196034u, 3298625731u, 3266401072u, 0, REMAINDERF_TOLERANCE, 0},
+{2213, 3459877411u, 2960476959u, 802433148u, 0, REMAINDERF_TOLERANCE, 0},
+{2214, 1161439847u, 943449277u, 3075310388u, 0, REMAINDERF_TOLERANCE, 0},
+{2215, 908663107u, 939489763u, 908663107u, 0, REMAINDERF_TOLERANCE, 0},
+{2216, 1055319316u, 3261813492u, 1055319316u, 0, REMAINDERF_TOLERANCE, 0},
+{2217, 1084378658u, 1009650785u, 1000236678u, 0, REMAINDERF_TOLERANCE, 0},
+{2218, 3053887750u, 3341786453u, 3053887750u, 0, REMAINDERF_TOLERANCE, 0},
+{2219, 3022828828u, 881335251u, 868680980u, 0, REMAINDERF_TOLERANCE, 0},
+{2220, 1226473697u, 821025132u, 810787144u, 0, REMAINDERF_TOLERANCE, 0},
+{2221, 1123114742u, 1229815537u, 1123114742u, 0, REMAINDERF_TOLERANCE, 0},
+{2222, 1258114435u, 1291336083u, 1258114435u, 0, REMAINDERF_TOLERANCE, 0},
+{2223, 3468040845u, 3066966245u, 3058342472u, 0, REMAINDERF_TOLERANCE, 0},
+{2224, 1178825761u, 1113195286u, 3251980680u, 0, REMAINDERF_TOLERANCE, 0},
+{2225, 3059266302u, 878503862u, 864458496u, 0, REMAINDERF_TOLERANCE, 0},
+{2226, 3223384012u, 1130486973u, 3223384012u, 0, REMAINDERF_TOLERANCE, 0},
+{2227, 3445262427u, 3465211174u, 3445262427u, 0, REMAINDERF_TOLERANCE, 0},
+{2228, 1125653081u, 1207799746u, 1125653081u, 0, REMAINDERF_TOLERANCE, 0},
+{2229, 3337652712u, 3025581813u, 3012467368u, 0, REMAINDERF_TOLERANCE, 0},
+{2230, 1184753508u, 3147374485u, 3116845728u, 0, REMAINDERF_TOLERANCE, 0},
+{2231, 996404791u, 3353251979u, 996404791u, 0, REMAINDERF_TOLERANCE, 0},
+{2232, 1188439315u, 1113484271u, 3225113648u, 0, REMAINDERF_TOLERANCE, 0},
+{2233, 906557513u, 3006513432u, 2988936544u, 0, REMAINDERF_TOLERANCE, 0},
+{2234, 916831283u, 999465787u, 916831283u, 0, REMAINDERF_TOLERANCE, 0},
+{2235, 996786317u, 3179221951u, 996786317u, 0, REMAINDERF_TOLERANCE, 0},
+{2236, 3461635065u, 1004690387u, 984706768u, 0, REMAINDERF_TOLERANCE, 0},
+{2237, 1188167943u, 1200744896u, 1188167943u, 0, REMAINDERF_TOLERANCE, 0},
+{2238, 3290079438u, 846519377u, 821187528u, 0, REMAINDERF_TOLERANCE, 0},
+{2239, 3350690327u, 2967953392u, 2957315104u, 0, REMAINDERF_TOLERANCE, 0},
+{2240, 1102061604u, 3424449935u, 1102061604u, 0, REMAINDERF_TOLERANCE, 0},
+{2241, 1282351521u, 3039376424u, 867630848u, 0, REMAINDERF_TOLERANCE, 0},
+{2242, 3458861065u, 3392466405u, 1234687786u, 0, REMAINDERF_TOLERANCE, 0},
+{2243, 3095256878u, 1023623326u, 3095256878u, 0, REMAINDERF_TOLERANCE, 0},
+{2244, 3163373610u, 843150426u, 824504784u, 0, REMAINDERF_TOLERANCE, 0},
+{2245, 3228793330u, 855146890u, 2992187816u, 0, REMAINDERF_TOLERANCE, 0},
+{2246, 3422194733u, 893873945u, 881924592u, 0, REMAINDERF_TOLERANCE, 0},
+{2247, 3083885296u, 974543672u, 3083885296u, 0, REMAINDERF_TOLERANCE, 0},
+{2248, 1261940623u, 3402349985u, 3382734992u, 0, REMAINDERF_TOLERANCE, 0},
+{2249, 3400603081u, 3234396843u, 1076561414u, 0, REMAINDERF_TOLERANCE, 0},
+{2250, 1219411812u, 2961857939u, 800538620u, 0, REMAINDERF_TOLERANCE, 0},
+{2251, 3094833770u, 805351108u, 785839264u, 0, REMAINDERF_TOLERANCE, 0},
+{2252, 3139250800u, 3079109479u, 3070476520u, 0, REMAINDERF_TOLERANCE, 0},
+{2253, 886201503u, 3272760705u, 886201503u, 0, REMAINDERF_TOLERANCE, 0},
+{2254, 3297366026u, 1089966380u, 1081350952u, 0, REMAINDERF_TOLERANCE, 0},
+{2255, 1218488455u, 3309646450u, 1147081920u, 0, REMAINDERF_TOLERANCE, 0},
+{2256, 3040358923u, 3093401553u, 3040358923u, 0, REMAINDERF_TOLERANCE, 0},
+{2257, 1283938137u, 1196383822u, 3331422908u, 0, REMAINDERF_TOLERANCE, 0},
+{2258, 3182551696u, 3029982441u, 870845312u, 0, REMAINDERF_TOLERANCE, 0},
+{2259, 1317098613u, 949986176u, 3084154368u, 0, REMAINDERF_TOLERANCE, 0},
+{2260, 3116209179u, 3303588342u, 3116209179u, 0, REMAINDERF_TOLERANCE, 0},
+{2261, 3431703657u, 3014443710u, 842962944u, 0, REMAINDERF_TOLERANCE, 0},
+{2262, 3239728775u, 927815421u, 3057910716u, 0, REMAINDERF_TOLERANCE, 0},
+{2263, 3207141672u, 933456504u, 3070924848u, 0, REMAINDERF_TOLERANCE, 0},
+{2264, 3154378805u, 905462392u, 889766848u, 0, REMAINDERF_TOLERANCE, 0},
+{2265, 3069658155u, 1041452042u, 3069658155u, 0, REMAINDERF_TOLERANCE, 0},
+{2266, 3313160088u, 2964063309u, 803763456u, 0, REMAINDERF_TOLERANCE, 0},
+{2267, 3207056527u, 3384206601u, 3207056527u, 0, REMAINDERF_TOLERANCE, 0},
+{2268, 1284174954u, 3436881197u, 3424608646u, 0, REMAINDERF_TOLERANCE, 0},
+{2269, 3156081645u, 3308839704u, 3156081645u, 0, REMAINDERF_TOLERANCE, 0},
+{2270, 1063693032u, 976661408u, 942444032u, 0, REMAINDERF_TOLERANCE, 0},
+{2271, 1102631663u, 3396951425u, 1102631663u, 0, REMAINDERF_TOLERANCE, 0},
+{2272, 968803479u, 992989712u, 968803479u, 0, REMAINDERF_TOLERANCE, 0},
+{2273, 3273080388u, 3109405906u, 3092240224u, 0, REMAINDERF_TOLERANCE, 0},
+{2274, 1172529774u, 3294550127u, 1125203936u, 0, REMAINDERF_TOLERANCE, 0},
+{2275, 1306695905u, 1292690378u, 1274295072u, 0, REMAINDERF_TOLERANCE, 0},
+{2276, 3158855023u, 3151283866u, 977769136u, 0, REMAINDERF_TOLERANCE, 0},
+{2277, 1165177679u, 3276237026u, 3267492208u, 0, REMAINDERF_TOLERANCE, 0},
+{2278, 3403009513u, 3381966453u, 1217674344u, 0, REMAINDERF_TOLERANCE, 0},
+{2279, 952348506u, 3377573987u, 952348506u, 0, REMAINDERF_TOLERANCE, 0},
+{2280, 1222777442u, 1125769920u, 1099360768u, 0, REMAINDERF_TOLERANCE, 0},
+{2281, 1325324763u, 978336043u, 3113756462u, 0, REMAINDERF_TOLERANCE, 0},
+{2282, 3363524213u, 3202991311u, 1029473112u, 0, REMAINDERF_TOLERANCE, 0},
+{2283, 1158950321u, 1073578913u, 1037108016u, 0, REMAINDERF_TOLERANCE, 0},
+{2284, 903129873u, 3416864271u, 903129873u, 0, REMAINDERF_TOLERANCE, 0},
+{2285, 3078339944u, 988173985u, 3078339944u, 0, REMAINDERF_TOLERANCE, 0},
+{2286, 1208345407u, 1254181270u, 1208345407u, 0, REMAINDERF_TOLERANCE, 0},
+{2287, 1258634105u, 1247426200u, 1237385576u, 0, REMAINDERF_TOLERANCE, 0},
+{2288, 1248478509u, 1287895126u, 1248478509u, 0, REMAINDERF_TOLERANCE, 0},
+{2289, 1153863988u, 3430539165u, 1153863988u, 0, REMAINDERF_TOLERANCE, 0},
+{2290, 1235620969u, 866627358u, 3004237692u, 0, REMAINDERF_TOLERANCE, 0},
+{2291, 1097120930u, 3221726305u, 3205116028u, 0, REMAINDERF_TOLERANCE, 0},
+{2292, 3469778622u, 1200179013u, 1190998076u, 0, REMAINDERF_TOLERANCE, 0},
+{2293, 1147712200u, 931865525u, 899214128u, 0, REMAINDERF_TOLERANCE, 0},
+{2294, 1124721745u, 3058969650u, 3036165440u, 0, REMAINDERF_TOLERANCE, 0},
+{2295, 3261744304u, 1043806501u, 3177891572u, 0, REMAINDERF_TOLERANCE, 0},
+{2296, 3303160152u, 3075455322u, 3064687000u, 0, REMAINDERF_TOLERANCE, 0},
+{2297, 1315090496u, 3269683237u, 3245461936u, 0, REMAINDERF_TOLERANCE, 0},
+{2298, 1335399673u, 974138676u, 3108006224u, 0, REMAINDERF_TOLERANCE, 0},
+{2299, 1072458508u, 3372833993u, 1072458508u, 0, REMAINDERF_TOLERANCE, 0},
+{2300, 3303015249u, 3015039539u, 850147332u, 0, REMAINDERF_TOLERANCE, 0},
+{2301, 3252139741u, 1059615003u, 1011903680u, 0, REMAINDERF_TOLERANCE, 0},
+{2302, 3468519966u, 3113982619u, 3087617688u, 0, REMAINDERF_TOLERANCE, 0},
+{2303, 1006231203u, 897530770u, 3020384160u, 0, REMAINDERF_TOLERANCE, 0},
+{2304, 951554138u, 1001144381u, 951554138u, 0, REMAINDERF_TOLERANCE, 0},
+{2305, 942046828u, 986341002u, 942046828u, 0, REMAINDERF_TOLERANCE, 0},
+{2306, 3319723279u, 3414482416u, 3319723279u, 0, REMAINDERF_TOLERANCE, 0},
+{2307, 3255104167u, 928827688u, 915676752u, 0, REMAINDERF_TOLERANCE, 0},
+{2308, 1155477903u, 3104812800u, 3094453248u, 0, REMAINDERF_TOLERANCE, 0},
+{2309, 3273889176u, 980486479u, 3119241930u, 0, REMAINDERF_TOLERANCE, 0},
+{2310, 3237813668u, 3441016803u, 3237813668u, 0, REMAINDERF_TOLERANCE, 0},
+{2311, 1228207362u, 2985476579u, 2953847432u, 0, REMAINDERF_TOLERANCE, 0},
+{2312, 1290175785u, 3008182462u, 2998391348u, 0, REMAINDERF_TOLERANCE, 0},
+{2313, 981908840u, 3314038398u, 981908840u, 0, REMAINDERF_TOLERANCE, 0},
+{2314, 941187647u, 1107765599u, 941187647u, 0, REMAINDERF_TOLERANCE, 0},
+{2315, 1214223128u, 3225536822u, 1053837344u, 0, REMAINDERF_TOLERANCE, 0},
+{2316, 3422922584u, 1086391131u, 3207980032u, 0, REMAINDERF_TOLERANCE, 0},
+{2317, 1315857601u, 3487600045u, 1315857601u, 0, REMAINDERF_TOLERANCE, 0},
+{2318, 3453226030u, 3233768835u, 3223552828u, 0, REMAINDERF_TOLERANCE, 0},
+{2319, 1078359574u, 3199175230u, 1014665280u, 0, REMAINDERF_TOLERANCE, 0},
+{2320, 1029557624u, 3302959071u, 1029557624u, 0, REMAINDERF_TOLERANCE, 0},
+{2321, 1207675424u, 3042692550u, 876831328u, 0, REMAINDERF_TOLERANCE, 0},
+{2322, 1028355074u, 3442294040u, 1028355074u, 0, REMAINDERF_TOLERANCE, 0},
+{2323, 1248421894u, 3367769132u, 3336083584u, 0, REMAINDERF_TOLERANCE, 0},
+{2324, 3353251994u, 1095517730u, 1086597880u, 0, REMAINDERF_TOLERANCE, 0},
+{2325, 876926659u, 3288089977u, 876926659u, 0, REMAINDERF_TOLERANCE, 0},
+{2326, 1076752219u, 876236939u, 853834344u, 0, REMAINDERF_TOLERANCE, 0},
+{2327, 3388531942u, 2988520062u, 2965920304u, 0, REMAINDERF_TOLERANCE, 0},
+{2328, 1273395082u, 3031189261u, 872233456u, 0, REMAINDERF_TOLERANCE, 0},
+{2329, 3385588183u, 3258252464u, 3237664000u, 0, REMAINDERF_TOLERANCE, 0},
+{2330, 3192315328u, 3289489214u, 3192315328u, 0, REMAINDERF_TOLERANCE, 0},
+{2331, 3441804648u, 3274638356u, 3263870600u, 0, REMAINDERF_TOLERANCE, 0},
+{2332, 3392827417u, 1277961150u, 3392827417u, 0, REMAINDERF_TOLERANCE, 0},
+{2333, 1161241793u, 1328003707u, 1161241793u, 0, REMAINDERF_TOLERANCE, 0},
+{2334, 3034494183u, 3041579130u, 884403213u, 0, REMAINDERF_TOLERANCE, 0},
+{2335, 1171318485u, 3374409104u, 1171318485u, 0, REMAINDERF_TOLERANCE, 0},
+{2336, 3047748143u, 831102792u, 2962440896u, 0, REMAINDERF_TOLERANCE, 0},
+{2337, 1001216371u, 3052357038u, 896350396u, 0, REMAINDERF_TOLERANCE, 0},
+{2338, 912515889u, 1074635609u, 912515889u, 0, REMAINDERF_TOLERANCE, 0},
+{2339, 3391452505u, 897989232u, 888432512u, 0, REMAINDERF_TOLERANCE, 0},
+{2340, 3249603369u, 3147662248u, 3104459008u, 0, REMAINDERF_TOLERANCE, 0},
+{2341, 1220264047u, 2960450369u, 2948790886u, 0, REMAINDERF_TOLERANCE, 0},
+{2342, 3169816394u, 988430929u, 3123289888u, 0, REMAINDERF_TOLERANCE, 0},
+{2343, 3098997418u, 3002162688u, 842333184u, 0, REMAINDERF_TOLERANCE, 0},
+{2344, 3282212423u, 3174079140u, 1007414880u, 0, REMAINDERF_TOLERANCE, 0},
+{2345, 3352293320u, 3247843425u, 3218976128u, 0, REMAINDERF_TOLERANCE, 0},
+{2346, 3296358441u, 875645354u, 862714536u, 0, REMAINDERF_TOLERANCE, 0},
+{2347, 1197828352u, 3245614728u, 3230573968u, 0, REMAINDERF_TOLERANCE, 0},
+{2348, 3340510371u, 914930263u, 897884204u, 0, REMAINDERF_TOLERANCE, 0},
+{2349, 1127109339u, 3368125489u, 1127109339u, 0, REMAINDERF_TOLERANCE, 0},
+{2350, 1200599955u, 2981200675u, 817704344u, 0, REMAINDERF_TOLERANCE, 0},
+{2351, 962230977u, 2988248037u, 805535536u, 0, REMAINDERF_TOLERANCE, 0},
+{2352, 3192887808u, 3191848339u, 3162359504u, 0, REMAINDERF_TOLERANCE, 0},
+{2353, 3237183876u, 3179379969u, 3166118432u, 0, REMAINDERF_TOLERANCE, 0},
+{2354, 939285924u, 3056079386u, 855964160u, 0, REMAINDERF_TOLERANCE, 0},
+{2355, 944050180u, 3452557879u, 944050180u, 0, REMAINDERF_TOLERANCE, 0},
+{2356, 3058135703u, 3090284601u, 3058135703u, 0, REMAINDERF_TOLERANCE, 0},
+{2357, 3480592662u, 3261728191u, 3221094720u, 0, REMAINDERF_TOLERANCE, 0},
+{2358, 3061939312u, 3274418540u, 3061939312u, 0, REMAINDERF_TOLERANCE, 0},
+{2359, 1003299981u, 853295521u, 831378192u, 0, REMAINDERF_TOLERANCE, 0},
+{2360, 1155775526u, 1255814444u, 1155775526u, 0, REMAINDERF_TOLERANCE, 0},
+{2361, 1234491880u, 3408568717u, 1234491880u, 0, REMAINDERF_TOLERANCE, 0}
+
+// AUTOMATICALLY GENERATED VECTORS STOP
+
+};
+
+#endif // CYGONCE_LIBM_SCABNF_H multiple inclusion protection
+
+// EOF remainderf.h
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/rintf.c b/ecos/packages/language/c/libm/current/tests/vectors/rintf.c
new file mode 100644
index 0000000..dd9ceff
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/rintf.c
@@ -0,0 +1,115 @@
+//===========================================================================
+//
+// rintf.c
+//
+// Test of rintf() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// Declarations for test system:
+//
+// TESTCASE_TYPE=CYG_TEST_MODULE
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include <cyg/infra/testcase.h> // Test infrastructure
+#include <math.h> // Header for this package
+#include <sys/ieeefp.h> // Cyg_libm_ieee_float_shape_type
+#include "vectors/vector_support_float.h"// extra support for math tests
+
+#include "vectors/rintf.h"
+
+// FUNCTIONS
+
+static void
+test( CYG_ADDRWORD data )
+{
+ cyg_ucount32 vec_size;
+ cyg_bool ret;
+
+ vec_size = sizeof(rintf_vec) / sizeof(Cyg_libm_test_float_vec_t);
+ ret = doTestVecFloat( (CYG_ADDRWORD) &rintf, CYG_LIBM_TEST_VEC_FLOAT,
+ CYG_LIBM_TEST_VEC_NONE, CYG_LIBM_TEST_VEC_FLOAT,
+ &rintf_vec[0], vec_size );
+
+ if (ret==true)
+ {
+ CYG_TEST_PASS("rintf() is stable");
+ } // if
+ else
+ {
+ CYG_TEST_FAIL("rintf() failed tests");
+ } // else
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for Math "
+ "library rintf() function");
+} // test()
+
+
+int
+main(int argc, char *argv[])
+{
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for Math library "
+ "rintf() function");
+
+ START_TEST( test );
+
+ CYG_TEST_PASS_FINISH("Testing is not applicable to this configuration");
+
+} // main()
+
+
+// EOF rintf.c
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/rintf.h b/ecos/packages/language/c/libm/current/tests/vectors/rintf.h
new file mode 100644
index 0000000..a5f107a
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/rintf.h
@@ -0,0 +1,1004 @@
+#ifndef CYGONCE_LIBM_RINTF_H
+#define CYGONCE_LIBM_RINTF_H
+//===========================================================================
+//
+// rintf.h
+//
+// Test vectors for testing of rintf() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage: #include "vectors/rintf.h"
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include "vectors/vector_support_float.h"// extra support for math tests
+
+#define RINTF_TOLERANCE 1.0E-04
+
+static const Cyg_libm_test_float_vec_t rintf_vec[] = {
+
+// AUTOMATICALLY GENERATED VECTORS START
+
+{0, 3214514586u, 0u, 3212836864u, 0, RINTF_TOLERANCE, 0},
+{1, 3214430700u, 0u, 3212836864u, 0, RINTF_TOLERANCE, 0},
+{2, 3214346813u, 0u, 3212836864u, 0, RINTF_TOLERANCE, 0},
+{3, 3214262927u, 0u, 3212836864u, 0, RINTF_TOLERANCE, 0},
+{4, 3214179041u, 0u, 3212836864u, 0, RINTF_TOLERANCE, 0},
+{5, 3214095155u, 0u, 3212836864u, 0, RINTF_TOLERANCE, 0},
+{6, 3214011269u, 0u, 3212836864u, 0, RINTF_TOLERANCE, 0},
+{7, 3213927383u, 0u, 3212836864u, 0, RINTF_TOLERANCE, 0},
+{8, 3213843497u, 0u, 3212836864u, 0, RINTF_TOLERANCE, 0},
+{9, 3213759611u, 0u, 3212836864u, 0, RINTF_TOLERANCE, 0},
+{10, 3213675725u, 0u, 3212836864u, 0, RINTF_TOLERANCE, 0},
+{11, 3213591839u, 0u, 3212836864u, 0, RINTF_TOLERANCE, 0},
+{12, 3213507953u, 0u, 3212836864u, 0, RINTF_TOLERANCE, 0},
+{13, 3213424067u, 0u, 3212836864u, 0, RINTF_TOLERANCE, 0},
+{14, 3213340180u, 0u, 3212836864u, 0, RINTF_TOLERANCE, 0},
+{15, 3213256294u, 0u, 3212836864u, 0, RINTF_TOLERANCE, 0},
+{16, 3213172408u, 0u, 3212836864u, 0, RINTF_TOLERANCE, 0},
+{17, 3213088522u, 0u, 3212836864u, 0, RINTF_TOLERANCE, 0},
+{18, 3213004636u, 0u, 3212836864u, 0, RINTF_TOLERANCE, 0},
+{19, 3212920750u, 0u, 3212836864u, 0, RINTF_TOLERANCE, 0},
+{20, 3212836864u, 0u, 3212836864u, 0, RINTF_TOLERANCE, 0},
+{21, 3212669092u, 0u, 3212836864u, 0, RINTF_TOLERANCE, 0},
+{22, 3212501320u, 0u, 3212836864u, 0, RINTF_TOLERANCE, 0},
+{23, 3212333548u, 0u, 3212836864u, 0, RINTF_TOLERANCE, 0},
+{24, 3212165775u, 0u, 3212836864u, 0, RINTF_TOLERANCE, 0},
+{25, 3211998003u, 0u, 3212836864u, 0, RINTF_TOLERANCE, 0},
+{26, 3211830231u, 0u, 3212836864u, 0, RINTF_TOLERANCE, 0},
+{27, 3211662459u, 0u, 3212836864u, 0, RINTF_TOLERANCE, 0},
+{28, 3211494687u, 0u, 3212836864u, 0, RINTF_TOLERANCE, 0},
+{29, 3211326915u, 0u, 3212836864u, 0, RINTF_TOLERANCE, 0},
+{30, 3211159142u, 0u, 3212836864u, 0, RINTF_TOLERANCE, 0},
+{31, 3210991370u, 0u, 3212836864u, 0, RINTF_TOLERANCE, 0},
+{32, 3210823598u, 0u, 3212836864u, 0, RINTF_TOLERANCE, 0},
+{33, 3210655826u, 0u, 3212836864u, 0, RINTF_TOLERANCE, 0},
+{34, 3210488054u, 0u, 3212836864u, 0, RINTF_TOLERANCE, 0},
+{35, 3210320282u, 0u, 3212836864u, 0, RINTF_TOLERANCE, 0},
+{36, 3210152509u, 0u, 3212836864u, 0, RINTF_TOLERANCE, 0},
+{37, 3209984737u, 0u, 3212836864u, 0, RINTF_TOLERANCE, 0},
+{38, 3209816965u, 0u, 3212836864u, 0, RINTF_TOLERANCE, 0},
+{39, 3209649193u, 0u, 3212836864u, 0, RINTF_TOLERANCE, 0},
+{40, 3209481421u, 0u, 3212836864u, 0, RINTF_TOLERANCE, 0},
+{41, 3209313649u, 0u, 3212836864u, 0, RINTF_TOLERANCE, 0},
+{42, 3209145876u, 0u, 3212836864u, 0, RINTF_TOLERANCE, 0},
+{43, 3208978104u, 0u, 3212836864u, 0, RINTF_TOLERANCE, 0},
+{44, 3208810332u, 0u, 3212836864u, 0, RINTF_TOLERANCE, 0},
+{45, 3208642560u, 0u, 3212836864u, 0, RINTF_TOLERANCE, 0},
+{46, 3208474788u, 0u, 3212836864u, 0, RINTF_TOLERANCE, 0},
+{47, 3208307016u, 0u, 3212836864u, 0, RINTF_TOLERANCE, 0},
+{48, 3208139244u, 0u, 3212836864u, 0, RINTF_TOLERANCE, 0},
+{49, 3207971471u, 0u, 3212836864u, 0, RINTF_TOLERANCE, 0},
+{50, 3207803699u, 0u, 3212836864u, 0, RINTF_TOLERANCE, 0},
+{51, 3207635927u, 0u, 3212836864u, 0, RINTF_TOLERANCE, 0},
+{52, 3207468155u, 0u, 3212836864u, 0, RINTF_TOLERANCE, 0},
+{53, 3207300383u, 0u, 3212836864u, 0, RINTF_TOLERANCE, 0},
+{54, 3207132611u, 0u, 3212836864u, 0, RINTF_TOLERANCE, 0},
+{55, 3206964838u, 0u, 3212836864u, 0, RINTF_TOLERANCE, 0},
+{56, 3206797066u, 0u, 3212836864u, 0, RINTF_TOLERANCE, 0},
+{57, 3206629294u, 0u, 3212836864u, 0, RINTF_TOLERANCE, 0},
+{58, 3206461522u, 0u, 3212836864u, 0, RINTF_TOLERANCE, 0},
+{59, 3206293750u, 0u, 3212836864u, 0, RINTF_TOLERANCE, 0},
+{60, 3206125978u, 0u, 3212836864u, 0, RINTF_TOLERANCE, 0},
+{61, 3205958205u, 0u, 3212836864u, 0, RINTF_TOLERANCE, 0},
+{62, 3205790433u, 0u, 3212836864u, 0, RINTF_TOLERANCE, 0},
+{63, 3205622661u, 0u, 3212836864u, 0, RINTF_TOLERANCE, 0},
+{64, 3205454889u, 0u, 3212836864u, 0, RINTF_TOLERANCE, 0},
+{65, 3205287117u, 0u, 3212836864u, 0, RINTF_TOLERANCE, 0},
+{66, 3205119345u, 0u, 3212836864u, 0, RINTF_TOLERANCE, 0},
+{67, 3204951572u, 0u, 3212836864u, 0, RINTF_TOLERANCE, 0},
+{68, 3204783800u, 0u, 3212836864u, 0, RINTF_TOLERANCE, 0},
+{69, 3204616028u, 0u, 3212836864u, 0, RINTF_TOLERANCE, 0},
+{70, 1008981770u, 0u, 0u, 0, RINTF_TOLERANCE, 0},
+{71, 1017370378u, 0u, 0u, 0, RINTF_TOLERANCE, 0},
+{72, 1022739087u, 0u, 0u, 0, RINTF_TOLERANCE, 0},
+{73, 1025758986u, 0u, 0u, 0, RINTF_TOLERANCE, 0},
+{74, 1028443341u, 0u, 0u, 0, RINTF_TOLERANCE, 0},
+{75, 1031127695u, 0u, 0u, 0, RINTF_TOLERANCE, 0},
+{76, 1032805417u, 0u, 0u, 0, RINTF_TOLERANCE, 0},
+{77, 1034147594u, 0u, 0u, 0, RINTF_TOLERANCE, 0},
+{78, 1035489772u, 0u, 0u, 0, RINTF_TOLERANCE, 0},
+{79, 1036831949u, 0u, 0u, 0, RINTF_TOLERANCE, 0},
+{80, 1038174126u, 0u, 0u, 0, RINTF_TOLERANCE, 0},
+{81, 1039516303u, 0u, 0u, 0, RINTF_TOLERANCE, 0},
+{82, 1040522936u, 0u, 0u, 0, RINTF_TOLERANCE, 0},
+{83, 1041194025u, 0u, 0u, 0, RINTF_TOLERANCE, 0},
+{84, 1041865114u, 0u, 0u, 0, RINTF_TOLERANCE, 0},
+{85, 1042536202u, 0u, 0u, 0, RINTF_TOLERANCE, 0},
+{86, 1043207291u, 0u, 0u, 0, RINTF_TOLERANCE, 0},
+{87, 1043878380u, 0u, 0u, 0, RINTF_TOLERANCE, 0},
+{88, 1044549468u, 0u, 0u, 0, RINTF_TOLERANCE, 0},
+{89, 1045220557u, 0u, 0u, 0, RINTF_TOLERANCE, 0},
+{90, 1045891645u, 0u, 0u, 0, RINTF_TOLERANCE, 0},
+{91, 1046562734u, 0u, 0u, 0, RINTF_TOLERANCE, 0},
+{92, 1047233823u, 0u, 0u, 0, RINTF_TOLERANCE, 0},
+{93, 1047904911u, 0u, 0u, 0, RINTF_TOLERANCE, 0},
+{94, 1048576000u, 0u, 0u, 0, RINTF_TOLERANCE, 0},
+{95, 1048911544u, 0u, 0u, 0, RINTF_TOLERANCE, 0},
+{96, 1049247089u, 0u, 0u, 0, RINTF_TOLERANCE, 0},
+{97, 1049582633u, 0u, 0u, 0, RINTF_TOLERANCE, 0},
+{98, 1049918177u, 0u, 0u, 0, RINTF_TOLERANCE, 0},
+{99, 1050253722u, 0u, 0u, 0, RINTF_TOLERANCE, 0},
+{100, 1050589266u, 0u, 0u, 0, RINTF_TOLERANCE, 0},
+{101, 1050924810u, 0u, 0u, 0, RINTF_TOLERANCE, 0},
+{102, 1051260355u, 0u, 0u, 0, RINTF_TOLERANCE, 0},
+{103, 1051595899u, 0u, 0u, 0, RINTF_TOLERANCE, 0},
+{104, 1051931443u, 0u, 0u, 0, RINTF_TOLERANCE, 0},
+{105, 1052266988u, 0u, 0u, 0, RINTF_TOLERANCE, 0},
+{106, 1052602532u, 0u, 0u, 0, RINTF_TOLERANCE, 0},
+{107, 1052938076u, 0u, 0u, 0, RINTF_TOLERANCE, 0},
+{108, 1053273620u, 0u, 0u, 0, RINTF_TOLERANCE, 0},
+{109, 1053609165u, 0u, 0u, 0, RINTF_TOLERANCE, 0},
+{110, 1053944709u, 0u, 0u, 0, RINTF_TOLERANCE, 0},
+{111, 1054280253u, 0u, 0u, 0, RINTF_TOLERANCE, 0},
+{112, 1054615798u, 0u, 0u, 0, RINTF_TOLERANCE, 0},
+{113, 1054951342u, 0u, 0u, 0, RINTF_TOLERANCE, 0},
+{114, 1055286886u, 0u, 0u, 0, RINTF_TOLERANCE, 0},
+{115, 1055622431u, 0u, 0u, 0, RINTF_TOLERANCE, 0},
+{116, 1055957975u, 0u, 0u, 0, RINTF_TOLERANCE, 0},
+{117, 1056293519u, 0u, 0u, 0, RINTF_TOLERANCE, 0},
+{118, 1056629064u, 0u, 0u, 0, RINTF_TOLERANCE, 0},
+{119, 1056964608u, 0u, 0u, 0, RINTF_TOLERANCE, 0},
+{120, 1057132380u, 0u, 1065353216u, 0, RINTF_TOLERANCE, 0},
+{121, 1057300152u, 0u, 1065353216u, 0, RINTF_TOLERANCE, 0},
+{122, 1057467924u, 0u, 1065353216u, 0, RINTF_TOLERANCE, 0},
+{123, 1057635697u, 0u, 1065353216u, 0, RINTF_TOLERANCE, 0},
+{124, 1057803469u, 0u, 1065353216u, 0, RINTF_TOLERANCE, 0},
+{125, 1057971241u, 0u, 1065353216u, 0, RINTF_TOLERANCE, 0},
+{126, 1058139013u, 0u, 1065353216u, 0, RINTF_TOLERANCE, 0},
+{127, 1058306785u, 0u, 1065353216u, 0, RINTF_TOLERANCE, 0},
+{128, 1058474557u, 0u, 1065353216u, 0, RINTF_TOLERANCE, 0},
+{129, 1058642330u, 0u, 1065353216u, 0, RINTF_TOLERANCE, 0},
+{130, 1058810102u, 0u, 1065353216u, 0, RINTF_TOLERANCE, 0},
+{131, 1058977874u, 0u, 1065353216u, 0, RINTF_TOLERANCE, 0},
+{132, 1059145646u, 0u, 1065353216u, 0, RINTF_TOLERANCE, 0},
+{133, 1059313418u, 0u, 1065353216u, 0, RINTF_TOLERANCE, 0},
+{134, 1059481190u, 0u, 1065353216u, 0, RINTF_TOLERANCE, 0},
+{135, 1059648963u, 0u, 1065353216u, 0, RINTF_TOLERANCE, 0},
+{136, 1059816735u, 0u, 1065353216u, 0, RINTF_TOLERANCE, 0},
+{137, 1059984507u, 0u, 1065353216u, 0, RINTF_TOLERANCE, 0},
+{138, 1060152279u, 0u, 1065353216u, 0, RINTF_TOLERANCE, 0},
+{139, 1060320051u, 0u, 1065353216u, 0, RINTF_TOLERANCE, 0},
+{140, 1060487823u, 0u, 1065353216u, 0, RINTF_TOLERANCE, 0},
+{141, 1060655596u, 0u, 1065353216u, 0, RINTF_TOLERANCE, 0},
+{142, 1060823368u, 0u, 1065353216u, 0, RINTF_TOLERANCE, 0},
+{143, 1060991140u, 0u, 1065353216u, 0, RINTF_TOLERANCE, 0},
+{144, 1061158912u, 0u, 1065353216u, 0, RINTF_TOLERANCE, 0},
+{145, 1061326684u, 0u, 1065353216u, 0, RINTF_TOLERANCE, 0},
+{146, 1061494456u, 0u, 1065353216u, 0, RINTF_TOLERANCE, 0},
+{147, 1061662228u, 0u, 1065353216u, 0, RINTF_TOLERANCE, 0},
+{148, 1061830001u, 0u, 1065353216u, 0, RINTF_TOLERANCE, 0},
+{149, 1061997773u, 0u, 1065353216u, 0, RINTF_TOLERANCE, 0},
+{150, 1062165545u, 0u, 1065353216u, 0, RINTF_TOLERANCE, 0},
+{151, 1062333317u, 0u, 1065353216u, 0, RINTF_TOLERANCE, 0},
+{152, 1062501089u, 0u, 1065353216u, 0, RINTF_TOLERANCE, 0},
+{153, 1062668861u, 0u, 1065353216u, 0, RINTF_TOLERANCE, 0},
+{154, 1062836634u, 0u, 1065353216u, 0, RINTF_TOLERANCE, 0},
+{155, 1063004406u, 0u, 1065353216u, 0, RINTF_TOLERANCE, 0},
+{156, 1063172178u, 0u, 1065353216u, 0, RINTF_TOLERANCE, 0},
+{157, 1063339950u, 0u, 1065353216u, 0, RINTF_TOLERANCE, 0},
+{158, 1063507722u, 0u, 1065353216u, 0, RINTF_TOLERANCE, 0},
+{159, 1063675494u, 0u, 1065353216u, 0, RINTF_TOLERANCE, 0},
+{160, 1063843267u, 0u, 1065353216u, 0, RINTF_TOLERANCE, 0},
+{161, 1064011039u, 0u, 1065353216u, 0, RINTF_TOLERANCE, 0},
+{162, 1064178811u, 0u, 1065353216u, 0, RINTF_TOLERANCE, 0},
+{163, 1064346583u, 0u, 1065353216u, 0, RINTF_TOLERANCE, 0},
+{164, 1064514355u, 0u, 1065353216u, 0, RINTF_TOLERANCE, 0},
+{165, 1064682127u, 0u, 1065353216u, 0, RINTF_TOLERANCE, 0},
+{166, 1064849900u, 0u, 1065353216u, 0, RINTF_TOLERANCE, 0},
+{167, 1065017672u, 0u, 1065353216u, 0, RINTF_TOLERANCE, 0},
+{168, 1065185444u, 0u, 1065353216u, 0, RINTF_TOLERANCE, 0},
+{169, 1065353216u, 0u, 1065353216u, 0, RINTF_TOLERANCE, 0},
+{170, 1065437102u, 0u, 1065353216u, 0, RINTF_TOLERANCE, 0},
+{171, 1065520988u, 0u, 1065353216u, 0, RINTF_TOLERANCE, 0},
+{172, 1065604874u, 0u, 1065353216u, 0, RINTF_TOLERANCE, 0},
+{173, 1065688760u, 0u, 1065353216u, 0, RINTF_TOLERANCE, 0},
+{174, 1065772646u, 0u, 1065353216u, 0, RINTF_TOLERANCE, 0},
+{175, 1065856532u, 0u, 1065353216u, 0, RINTF_TOLERANCE, 0},
+{176, 1065940419u, 0u, 1065353216u, 0, RINTF_TOLERANCE, 0},
+{177, 1066024305u, 0u, 1065353216u, 0, RINTF_TOLERANCE, 0},
+{178, 1066108191u, 0u, 1065353216u, 0, RINTF_TOLERANCE, 0},
+{179, 1066192077u, 0u, 1065353216u, 0, RINTF_TOLERANCE, 0},
+{180, 1066275963u, 0u, 1065353216u, 0, RINTF_TOLERANCE, 0},
+{181, 1066359849u, 0u, 1065353216u, 0, RINTF_TOLERANCE, 0},
+{182, 1066443735u, 0u, 1065353216u, 0, RINTF_TOLERANCE, 0},
+{183, 1066527621u, 0u, 1065353216u, 0, RINTF_TOLERANCE, 0},
+{184, 1066611507u, 0u, 1065353216u, 0, RINTF_TOLERANCE, 0},
+{185, 1066695393u, 0u, 1065353216u, 0, RINTF_TOLERANCE, 0},
+{186, 1066779279u, 0u, 1065353216u, 0, RINTF_TOLERANCE, 0},
+{187, 1066863165u, 0u, 1065353216u, 0, RINTF_TOLERANCE, 0},
+{188, 1066947052u, 0u, 1065353216u, 0, RINTF_TOLERANCE, 0},
+{189, 3234402267u, 0u, 3233808384u, 0, RINTF_TOLERANCE, 0},
+{190, 3231108068u, 0u, 3231711232u, 0, RINTF_TOLERANCE, 0},
+{191, 3226013659u, 0u, 3225419776u, 0, RINTF_TOLERANCE, 0},
+{192, 3217625051u, 0u, 3221225472u, 0, RINTF_TOLERANCE, 0},
+{193, 0u, 0u, 0u, 0, RINTF_TOLERANCE, 0},
+{194, 1070141403u, 0u, 1073741824u, 0, RINTF_TOLERANCE, 0},
+{195, 1078530011u, 0u, 1077936128u, 0, RINTF_TOLERANCE, 0},
+{196, 1083624420u, 0u, 1084227584u, 0, RINTF_TOLERANCE, 0},
+{197, 3253731328u, 0u, 3253731328u, 0, RINTF_TOLERANCE, 0},
+{198, 3252840038u, 0u, 3252682752u, 0, RINTF_TOLERANCE, 0},
+{199, 3251948749u, 0u, 3252158464u, 0, RINTF_TOLERANCE, 0},
+{200, 3251057459u, 0u, 3251109888u, 0, RINTF_TOLERANCE, 0},
+{201, 3250166170u, 0u, 3250061312u, 0, RINTF_TOLERANCE, 0},
+{202, 3249274880u, 0u, 3249537024u, 0, RINTF_TOLERANCE, 0},
+{203, 3248383590u, 0u, 3248488448u, 0, RINTF_TOLERANCE, 0},
+{204, 3247492301u, 0u, 3247439872u, 0, RINTF_TOLERANCE, 0},
+{205, 3246601011u, 0u, 3246391296u, 0, RINTF_TOLERANCE, 0},
+{206, 3245028147u, 0u, 3245342720u, 0, RINTF_TOLERANCE, 0},
+{207, 3243245568u, 0u, 3243245568u, 0, RINTF_TOLERANCE, 0},
+{208, 3241462989u, 0u, 3241148416u, 0, RINTF_TOLERANCE, 0},
+{209, 3239680410u, 0u, 3240099840u, 0, RINTF_TOLERANCE, 0},
+{210, 3237792973u, 0u, 3238002688u, 0, RINTF_TOLERANCE, 0},
+{211, 3234227814u, 0u, 3233808384u, 0, RINTF_TOLERANCE, 0},
+{212, 3230662656u, 0u, 3229614080u, 0, RINTF_TOLERANCE, 0},
+{213, 3224580915u, 0u, 3225419776u, 0, RINTF_TOLERANCE, 0},
+{214, 3213675725u, 0u, 3212836864u, 0, RINTF_TOLERANCE, 0},
+{215, 1058642330u, 0u, 1065353216u, 0, RINTF_TOLERANCE, 0},
+{216, 1075000115u, 0u, 1073741824u, 0, RINTF_TOLERANCE, 0},
+{217, 1082130432u, 0u, 1082130432u, 0, RINTF_TOLERANCE, 0},
+{218, 1085695590u, 0u, 1086324736u, 0, RINTF_TOLERANCE, 0},
+{219, 1089260749u, 0u, 1088421888u, 0, RINTF_TOLERANCE, 0},
+{220, 1091672474u, 0u, 1091567616u, 0, RINTF_TOLERANCE, 0},
+{221, 1093455053u, 0u, 1093664768u, 0, RINTF_TOLERANCE, 0},
+{222, 1095237632u, 0u, 1094713344u, 0, RINTF_TOLERANCE, 0},
+{223, 1097020211u, 0u, 1096810496u, 0, RINTF_TOLERANCE, 0},
+{224, 1098802790u, 0u, 1098907648u, 0, RINTF_TOLERANCE, 0},
+{225, 1099746509u, 0u, 1099956224u, 0, RINTF_TOLERANCE, 0},
+{226, 1100637798u, 0u, 1100480512u, 0, RINTF_TOLERANCE, 0},
+{227, 1101529088u, 0u, 1101529088u, 0, RINTF_TOLERANCE, 0},
+{228, 1102420378u, 0u, 1102577664u, 0, RINTF_TOLERANCE, 0},
+{229, 1103311667u, 0u, 1103101952u, 0, RINTF_TOLERANCE, 0},
+{230, 1104202957u, 0u, 1104150528u, 0, RINTF_TOLERANCE, 0},
+{231, 1105094246u, 0u, 1105199104u, 0, RINTF_TOLERANCE, 0},
+{232, 1105985536u, 0u, 1106247680u, 0, RINTF_TOLERANCE, 0},
+{233, 1107800421u, 1203999711u, 1107820544u, 0, RINTF_TOLERANCE, 0},
+{234, 3368700125u, 3308232444u, 3368700128u, 0, RINTF_TOLERANCE, 0},
+{235, 1224242132u, 3061363425u, 1224242144u, 0, RINTF_TOLERANCE, 0},
+{236, 3221027117u, 1284201705u, 3221225472u, 0, RINTF_TOLERANCE, 0},
+{237, 1198712763u, 919636942u, 1198712832u, 0, RINTF_TOLERANCE, 0},
+{238, 954173073u, 850531830u, 0u, 0, RINTF_TOLERANCE, 0},
+{239, 966554515u, 3234538174u, 0u, 0, RINTF_TOLERANCE, 0},
+{240, 1312607135u, 1194999402u, 1312607135u, 0, RINTF_TOLERANCE, 0},
+{241, 1166191415u, 1018661564u, 1166190592u, 0, RINTF_TOLERANCE, 0},
+{242, 1234419246u, 2984575812u, 1234419248u, 0, RINTF_TOLERANCE, 0},
+{243, 1302107128u, 3370647675u, 1302107128u, 0, RINTF_TOLERANCE, 0},
+{244, 1052801068u, 3039122570u, 0u, 0, RINTF_TOLERANCE, 0},
+{245, 1060849628u, 3081357692u, 1065353216u, 0, RINTF_TOLERANCE, 0},
+{246, 3484320003u, 3033957825u, 3484320003u, 0, RINTF_TOLERANCE, 0},
+{247, 882596369u, 1256676590u, 0u, 0, RINTF_TOLERANCE, 0},
+{248, 1167223673u, 846102364u, 1167222784u, 0, RINTF_TOLERANCE, 0},
+{249, 968192794u, 878547432u, 0u, 0, RINTF_TOLERANCE, 0},
+{250, 1052361612u, 1280025214u, 0u, 0, RINTF_TOLERANCE, 0},
+{251, 906701409u, 2968301825u, 0u, 0, RINTF_TOLERANCE, 0},
+{252, 3471653172u, 1154138102u, 3471653172u, 0, RINTF_TOLERANCE, 0},
+{253, 3231467496u, 934336592u, 3231711232u, 0, RINTF_TOLERANCE, 0},
+{254, 1341514497u, 3466051188u, 1341514497u, 0, RINTF_TOLERANCE, 0},
+{255, 1272351391u, 3373485062u, 1272351391u, 0, RINTF_TOLERANCE, 0},
+{256, 3319724992u, 3354615790u, 3319724032u, 0, RINTF_TOLERANCE, 0},
+{257, 917622040u, 1334966485u, 0u, 0, RINTF_TOLERANCE, 0},
+{258, 940236348u, 3304072663u, 0u, 0, RINTF_TOLERANCE, 0},
+{259, 3251541546u, 3174764041u, 3251634176u, 0, RINTF_TOLERANCE, 0},
+{260, 3371863479u, 1014861921u, 3371863488u, 0, RINTF_TOLERANCE, 0},
+{261, 1306460502u, 903489435u, 1306460502u, 0, RINTF_TOLERANCE, 0},
+{262, 1197542187u, 3024598921u, 1197542144u, 0, RINTF_TOLERANCE, 0},
+{263, 922888249u, 1139392309u, 0u, 0, RINTF_TOLERANCE, 0},
+{264, 1184239996u, 3224098462u, 1184240128u, 0, RINTF_TOLERANCE, 0},
+{265, 1252490238u, 1173619825u, 1252490238u, 0, RINTF_TOLERANCE, 0},
+{266, 1001673627u, 3462631271u, 0u, 0, RINTF_TOLERANCE, 0},
+{267, 976098044u, 1151967422u, 0u, 0, RINTF_TOLERANCE, 0},
+{268, 941796645u, 886451963u, 0u, 0, RINTF_TOLERANCE, 0},
+{269, 3287199470u, 854245542u, 3287187456u, 0, RINTF_TOLERANCE, 0},
+{270, 893184329u, 1243067084u, 0u, 0, RINTF_TOLERANCE, 0},
+{271, 1143233714u, 1007268238u, 1143226368u, 0, RINTF_TOLERANCE, 0},
+{272, 1139941253u, 1147688821u, 1139933184u, 0, RINTF_TOLERANCE, 0},
+{273, 3240298487u, 1020260821u, 3240099840u, 0, RINTF_TOLERANCE, 0},
+{274, 1288902137u, 3123875978u, 1288902137u, 0, RINTF_TOLERANCE, 0},
+{275, 1333134799u, 1338107877u, 1333134799u, 0, RINTF_TOLERANCE, 0},
+{276, 1187847971u, 1317663644u, 1187848192u, 0, RINTF_TOLERANCE, 0},
+{277, 1038851706u, 1327544110u, 0u, 0, RINTF_TOLERANCE, 0},
+{278, 3329354473u, 3165437289u, 3329354752u, 0, RINTF_TOLERANCE, 0},
+{279, 1309289088u, 1019883016u, 1309289088u, 0, RINTF_TOLERANCE, 0},
+{280, 3444653659u, 1279248024u, 3444653659u, 0, RINTF_TOLERANCE, 0},
+{281, 3405585402u, 2962345057u, 3405585402u, 0, RINTF_TOLERANCE, 0},
+{282, 1106778573u, 3304487767u, 1106771968u, 0, RINTF_TOLERANCE, 0},
+{283, 1140567947u, 3069174149u, 1140555776u, 0, RINTF_TOLERANCE, 0},
+{284, 1238569473u, 873035665u, 1238569472u, 0, RINTF_TOLERANCE, 0},
+{285, 1261071232u, 1182202773u, 1261071232u, 0, RINTF_TOLERANCE, 0},
+{286, 1175011025u, 3029705783u, 1175011328u, 0, RINTF_TOLERANCE, 0},
+{287, 1082692850u, 1211581107u, 1082130432u, 0, RINTF_TOLERANCE, 0},
+{288, 974547519u, 3475164509u, 0u, 0, RINTF_TOLERANCE, 0},
+{289, 3403348556u, 3184653669u, 3403348556u, 0, RINTF_TOLERANCE, 0},
+{290, 1136411063u, 1118097422u, 1136427008u, 0, RINTF_TOLERANCE, 0},
+{291, 3239231622u, 3302723069u, 3239051264u, 0, RINTF_TOLERANCE, 0},
+{292, 3340615780u, 870350055u, 3340615680u, 0, RINTF_TOLERANCE, 0},
+{293, 998567360u, 2995278691u, 0u, 0, RINTF_TOLERANCE, 0},
+{294, 3417964312u, 1321337529u, 3417964312u, 0, RINTF_TOLERANCE, 0},
+{295, 1148867223u, 1256486202u, 1148862464u, 0, RINTF_TOLERANCE, 0},
+{296, 989687421u, 3372681320u, 0u, 0, RINTF_TOLERANCE, 0},
+{297, 1152956913u, 3166480640u, 1152958464u, 0, RINTF_TOLERANCE, 0},
+{298, 892922651u, 3373029087u, 0u, 0, RINTF_TOLERANCE, 0},
+{299, 1109627625u, 1314158257u, 1109655552u, 0, RINTF_TOLERANCE, 0},
+{300, 1307091856u, 1103202538u, 1307091856u, 0, RINTF_TOLERANCE, 0},
+{301, 1077234132u, 3272167130u, 1077936128u, 0, RINTF_TOLERANCE, 0},
+{302, 1142167709u, 1096445242u, 1142161408u, 0, RINTF_TOLERANCE, 0},
+{303, 3426232834u, 1036705270u, 3426232834u, 0, RINTF_TOLERANCE, 0},
+{304, 3368566779u, 967249167u, 3368566784u, 0, RINTF_TOLERANCE, 0},
+{305, 1138741813u, 3073453199u, 1138753536u, 0, RINTF_TOLERANCE, 0},
+{306, 982950501u, 982549888u, 0u, 0, RINTF_TOLERANCE, 0},
+{307, 1142981585u, 1015602236u, 1142980608u, 0, RINTF_TOLERANCE, 0},
+{308, 3347165962u, 3135486696u, 3347165952u, 0, RINTF_TOLERANCE, 0},
+{309, 1009535440u, 3381353228u, 0u, 0, RINTF_TOLERANCE, 0},
+{310, 3473956030u, 976891930u, 3473956030u, 0, RINTF_TOLERANCE, 0},
+{311, 3349098349u, 1055327704u, 3349098368u, 0, RINTF_TOLERANCE, 0},
+{312, 945568720u, 3313485084u, 0u, 0, RINTF_TOLERANCE, 0},
+{313, 3345489836u, 1108392401u, 3345489920u, 0, RINTF_TOLERANCE, 0},
+{314, 940893161u, 1137000140u, 0u, 0, RINTF_TOLERANCE, 0},
+{315, 976791751u, 3230678102u, 0u, 0, RINTF_TOLERANCE, 0},
+{316, 1004442355u, 3036510596u, 0u, 0, RINTF_TOLERANCE, 0},
+{317, 1108485380u, 3173536878u, 1108606976u, 0, RINTF_TOLERANCE, 0},
+{318, 1061834641u, 972388096u, 1065353216u, 0, RINTF_TOLERANCE, 0},
+{319, 3381268392u, 1146976802u, 3381268392u, 0, RINTF_TOLERANCE, 0},
+{320, 1087189715u, 2952822478u, 1086324736u, 0, RINTF_TOLERANCE, 0},
+{321, 3212952285u, 3329407365u, 3212836864u, 0, RINTF_TOLERANCE, 0},
+{322, 1000611335u, 857599439u, 0u, 0, RINTF_TOLERANCE, 0},
+{323, 3466188568u, 1041678304u, 3466188568u, 0, RINTF_TOLERANCE, 0},
+{324, 3319315516u, 3422089012u, 3319316480u, 0, RINTF_TOLERANCE, 0},
+{325, 935938416u, 1146676692u, 0u, 0, RINTF_TOLERANCE, 0},
+{326, 3212614372u, 1152633030u, 3212836864u, 0, RINTF_TOLERANCE, 0},
+{327, 1315030230u, 3336225884u, 1315030230u, 0, RINTF_TOLERANCE, 0},
+{328, 1134593658u, 3456812581u, 1134592000u, 0, RINTF_TOLERANCE, 0},
+{329, 977281449u, 879922831u, 0u, 0, RINTF_TOLERANCE, 0},
+{330, 1086198791u, 920125958u, 1086324736u, 0, RINTF_TOLERANCE, 0},
+{331, 1255152035u, 851754050u, 1255152036u, 0, RINTF_TOLERANCE, 0},
+{332, 1135271264u, 3284878412u, 1135280128u, 0, RINTF_TOLERANCE, 0},
+{333, 1094190727u, 1056854532u, 1094713344u, 0, RINTF_TOLERANCE, 0},
+{334, 1294665325u, 991185677u, 1294665325u, 0, RINTF_TOLERANCE, 0},
+{335, 1036608591u, 805416536u, 0u, 0, RINTF_TOLERANCE, 0},
+{336, 3229998064u, 825237063u, 3229614080u, 0, RINTF_TOLERANCE, 0},
+{337, 3439134022u, 1043829691u, 3439134022u, 0, RINTF_TOLERANCE, 0},
+{338, 1325668223u, 970681762u, 1325668223u, 0, RINTF_TOLERANCE, 0},
+{339, 1092037607u, 1027330835u, 1091567616u, 0, RINTF_TOLERANCE, 0},
+{340, 3316278408u, 3455589207u, 3316279296u, 0, RINTF_TOLERANCE, 0},
+{341, 3295436768u, 3129873731u, 3295428608u, 0, RINTF_TOLERANCE, 0},
+{342, 1151984049u, 3074547120u, 1151983616u, 0, RINTF_TOLERANCE, 0},
+{343, 1129287043u, 3076527544u, 1129316352u, 0, RINTF_TOLERANCE, 0},
+{344, 1243664530u, 972879810u, 1243664528u, 0, RINTF_TOLERANCE, 0},
+{345, 950829092u, 929114193u, 0u, 0, RINTF_TOLERANCE, 0},
+{346, 1115471979u, 3047246262u, 1115422720u, 0, RINTF_TOLERANCE, 0},
+{347, 3351092088u, 3024661404u, 3351092096u, 0, RINTF_TOLERANCE, 0},
+{348, 3424479544u, 3312047722u, 3424479544u, 0, RINTF_TOLERANCE, 0},
+{349, 3241193975u, 884465785u, 3241148416u, 0, RINTF_TOLERANCE, 0},
+{350, 1030934236u, 1045139240u, 0u, 0, RINTF_TOLERANCE, 0},
+{351, 1025254314u, 3057812821u, 0u, 0, RINTF_TOLERANCE, 0},
+{352, 1110545760u, 3240144177u, 1110441984u, 0, RINTF_TOLERANCE, 0},
+{353, 3361976590u, 3138179993u, 3361976576u, 0, RINTF_TOLERANCE, 0},
+{354, 881280146u, 3421884736u, 0u, 0, RINTF_TOLERANCE, 0},
+{355, 1304154705u, 2961937089u, 1304154705u, 0, RINTF_TOLERANCE, 0},
+{356, 3264443610u, 3222916705u, 3264479232u, 0, RINTF_TOLERANCE, 0},
+{357, 3374550627u, 3055856293u, 3374550624u, 0, RINTF_TOLERANCE, 0},
+{358, 899599265u, 3240118211u, 0u, 0, RINTF_TOLERANCE, 0},
+{359, 1268194719u, 1332489410u, 1268194719u, 0, RINTF_TOLERANCE, 0},
+{360, 1133420220u, 1245770860u, 1133412352u, 0, RINTF_TOLERANCE, 0},
+{361, 1161858787u, 815362075u, 1161859072u, 0, RINTF_TOLERANCE, 0},
+{362, 3295996963u, 3453334307u, 3296002048u, 0, RINTF_TOLERANCE, 0},
+{363, 1270887389u, 1156123987u, 1270887389u, 0, RINTF_TOLERANCE, 0},
+{364, 3325193181u, 993979179u, 3325193216u, 0, RINTF_TOLERANCE, 0},
+{365, 925657343u, 1315159742u, 0u, 0, RINTF_TOLERANCE, 0},
+{366, 1189120494u, 978961471u, 1189120512u, 0, RINTF_TOLERANCE, 0},
+{367, 889030794u, 3129523970u, 0u, 0, RINTF_TOLERANCE, 0},
+{368, 1323529208u, 3100744786u, 1323529208u, 0, RINTF_TOLERANCE, 0},
+{369, 3465768388u, 3190881451u, 3465768388u, 0, RINTF_TOLERANCE, 0},
+{370, 3426099899u, 1118756120u, 3426099899u, 0, RINTF_TOLERANCE, 0},
+{371, 3224857113u, 3398166843u, 3225419776u, 0, RINTF_TOLERANCE, 0},
+{372, 1065798296u, 816191940u, 1065353216u, 0, RINTF_TOLERANCE, 0},
+{373, 3328989444u, 850266225u, 3328989184u, 0, RINTF_TOLERANCE, 0},
+{374, 3357819026u, 3148475462u, 3357819008u, 0, RINTF_TOLERANCE, 0},
+{375, 1273397670u, 901308750u, 1273397670u, 0, RINTF_TOLERANCE, 0},
+{376, 3424831780u, 1304806106u, 3424831780u, 0, RINTF_TOLERANCE, 0},
+{377, 1257596246u, 3420832544u, 1257596246u, 0, RINTF_TOLERANCE, 0},
+{378, 1051773536u, 896271348u, 0u, 0, RINTF_TOLERANCE, 0},
+{379, 3294752507u, 3113225954u, 3294756864u, 0, RINTF_TOLERANCE, 0},
+{380, 3424848725u, 2973850350u, 3424848725u, 0, RINTF_TOLERANCE, 0},
+{381, 1090870906u, 3294742905u, 1090519040u, 0, RINTF_TOLERANCE, 0},
+{382, 1227582289u, 1208979668u, 1227582288u, 0, RINTF_TOLERANCE, 0},
+{383, 1272325814u, 3004311296u, 1272325814u, 0, RINTF_TOLERANCE, 0},
+{384, 3359508271u, 859974315u, 3359508288u, 0, RINTF_TOLERANCE, 0},
+{385, 1137854355u, 3335041917u, 1137868800u, 0, RINTF_TOLERANCE, 0},
+{386, 3440773058u, 3204192793u, 3440773058u, 0, RINTF_TOLERANCE, 0},
+{387, 3451216836u, 3347783723u, 3451216836u, 0, RINTF_TOLERANCE, 0},
+{388, 3437062994u, 3106834845u, 3437062994u, 0, RINTF_TOLERANCE, 0},
+{389, 1131196082u, 1164573183u, 1131216896u, 0, RINTF_TOLERANCE, 0},
+{390, 3258097678u, 1305882290u, 3258187776u, 0, RINTF_TOLERANCE, 0},
+{391, 3460915348u, 1219372260u, 3460915348u, 0, RINTF_TOLERANCE, 0},
+{392, 3303035472u, 3153013020u, 3303038976u, 0, RINTF_TOLERANCE, 0},
+{393, 1053698677u, 3284313107u, 0u, 0, RINTF_TOLERANCE, 0},
+{394, 3396166221u, 1201894512u, 3396166220u, 0, RINTF_TOLERANCE, 0},
+{395, 3458934263u, 1005577835u, 3458934263u, 0, RINTF_TOLERANCE, 0},
+{396, 1065761827u, 3333928591u, 1065353216u, 0, RINTF_TOLERANCE, 0},
+{397, 926665223u, 3150815797u, 0u, 0, RINTF_TOLERANCE, 0},
+{398, 1199816046u, 3143776186u, 1199816064u, 0, RINTF_TOLERANCE, 0},
+{399, 3333779015u, 952421041u, 3333778944u, 0, RINTF_TOLERANCE, 0},
+{400, 948398145u, 3238273189u, 0u, 0, RINTF_TOLERANCE, 0},
+{401, 1080781593u, 1213908300u, 1082130432u, 0, RINTF_TOLERANCE, 0},
+{402, 3235326590u, 1271705594u, 3235905536u, 0, RINTF_TOLERANCE, 0},
+{403, 965378004u, 1292594138u, 0u, 0, RINTF_TOLERANCE, 0},
+{404, 3226990408u, 1110755136u, 3225419776u, 0, RINTF_TOLERANCE, 0},
+{405, 1283624229u, 906796922u, 1283624229u, 0, RINTF_TOLERANCE, 0},
+{406, 970649315u, 1078286437u, 0u, 0, RINTF_TOLERANCE, 0},
+{407, 959776291u, 3280345347u, 0u, 0, RINTF_TOLERANCE, 0},
+{408, 3341117305u, 3294559023u, 3341117184u, 0, RINTF_TOLERANCE, 0},
+{409, 1270734970u, 3355874874u, 1270734970u, 0, RINTF_TOLERANCE, 0},
+{410, 3454816067u, 868771977u, 3454816067u, 0, RINTF_TOLERANCE, 0},
+{411, 917206623u, 1172710814u, 0u, 0, RINTF_TOLERANCE, 0},
+{412, 1106502045u, 1290849316u, 1106247680u, 0, RINTF_TOLERANCE, 0},
+{413, 1157598381u, 3309023746u, 1157595136u, 0, RINTF_TOLERANCE, 0},
+{414, 3335234513u, 1002337336u, 3335234560u, 0, RINTF_TOLERANCE, 0},
+{415, 1279489061u, 1006049444u, 1279489061u, 0, RINTF_TOLERANCE, 0},
+{416, 1233171235u, 826460580u, 1233171232u, 0, RINTF_TOLERANCE, 0},
+{417, 1148920078u, 1007674793u, 1148928000u, 0, RINTF_TOLERANCE, 0},
+{418, 1109198803u, 1221754614u, 1109131264u, 0, RINTF_TOLERANCE, 0},
+{419, 3219949483u, 1056167693u, 3221225472u, 0, RINTF_TOLERANCE, 0},
+{420, 3361149474u, 3387342069u, 3361149504u, 0, RINTF_TOLERANCE, 0},
+{421, 1207502108u, 3388073586u, 1207502080u, 0, RINTF_TOLERANCE, 0},
+{422, 1000014431u, 831213088u, 0u, 0, RINTF_TOLERANCE, 0},
+{423, 1234530539u, 1079988872u, 1234530536u, 0, RINTF_TOLERANCE, 0},
+{424, 1017843965u, 1193076204u, 0u, 0, RINTF_TOLERANCE, 0},
+{425, 951862956u, 1173464654u, 0u, 0, RINTF_TOLERANCE, 0},
+{426, 3306328852u, 1118701064u, 3306328064u, 0, RINTF_TOLERANCE, 0},
+{427, 1291910469u, 1211303367u, 1291910469u, 0, RINTF_TOLERANCE, 0},
+{428, 1131927531u, 3182962700u, 1131937792u, 0, RINTF_TOLERANCE, 0},
+{429, 3449879391u, 991614550u, 3449879391u, 0, RINTF_TOLERANCE, 0},
+{430, 970094304u, 3344590506u, 0u, 0, RINTF_TOLERANCE, 0},
+{431, 1125551064u, 3331248076u, 1125580800u, 0, RINTF_TOLERANCE, 0},
+{432, 3427296372u, 3455289118u, 3427296372u, 0, RINTF_TOLERANCE, 0},
+{433, 1198917460u, 1327195159u, 1198917376u, 0, RINTF_TOLERANCE, 0},
+{434, 921940707u, 2967544056u, 0u, 0, RINTF_TOLERANCE, 0},
+{435, 1091906532u, 3011904455u, 1091567616u, 0, RINTF_TOLERANCE, 0},
+{436, 3393557778u, 3383396815u, 3393557776u, 0, RINTF_TOLERANCE, 0},
+{437, 1276853215u, 873199561u, 1276853215u, 0, RINTF_TOLERANCE, 0},
+{438, 3462778440u, 3349284325u, 3462778440u, 0, RINTF_TOLERANCE, 0},
+{439, 3360170117u, 3048354042u, 3360170112u, 0, RINTF_TOLERANCE, 0},
+{440, 3224245428u, 3271307999u, 3225419776u, 0, RINTF_TOLERANCE, 0},
+{441, 1120124467u, 1135619937u, 1120141312u, 0, RINTF_TOLERANCE, 0},
+{442, 1064364381u, 3180675544u, 1065353216u, 0, RINTF_TOLERANCE, 0},
+{443, 1268744779u, 3328452652u, 1268744779u, 0, RINTF_TOLERANCE, 0},
+{444, 1165195428u, 3390323168u, 1165197312u, 0, RINTF_TOLERANCE, 0},
+{445, 3247790039u, 909788142u, 3247964160u, 0, RINTF_TOLERANCE, 0},
+{446, 3215244648u, 1083988595u, 3212836864u, 0, RINTF_TOLERANCE, 0},
+{447, 1212717473u, 837873779u, 1212717504u, 0, RINTF_TOLERANCE, 0},
+{448, 3275973009u, 3450721670u, 3275948032u, 0, RINTF_TOLERANCE, 0},
+{449, 3391162308u, 1291220039u, 3391162308u, 0, RINTF_TOLERANCE, 0},
+{450, 1044867873u, 3369493273u, 0u, 0, RINTF_TOLERANCE, 0},
+{451, 1089986803u, 3462160118u, 1090519040u, 0, RINTF_TOLERANCE, 0},
+{452, 1296314700u, 2957454177u, 1296314700u, 0, RINTF_TOLERANCE, 0},
+{453, 1251462432u, 3171021770u, 1251462432u, 0, RINTF_TOLERANCE, 0},
+{454, 3485236902u, 980772835u, 3485236902u, 0, RINTF_TOLERANCE, 0},
+{455, 3262169538u, 1268270462u, 3262119936u, 0, RINTF_TOLERANCE, 0},
+{456, 1022211242u, 922124181u, 0u, 0, RINTF_TOLERANCE, 0},
+{457, 884661176u, 2985540645u, 0u, 0, RINTF_TOLERANCE, 0},
+{458, 989762529u, 3362011135u, 0u, 0, RINTF_TOLERANCE, 0},
+{459, 1295475718u, 3212305413u, 1295475718u, 0, RINTF_TOLERANCE, 0},
+{460, 1002632518u, 3330388441u, 0u, 0, RINTF_TOLERANCE, 0},
+{461, 3404372005u, 3450484255u, 3404372004u, 0, RINTF_TOLERANCE, 0},
+{462, 1125800069u, 3256265749u, 1125777408u, 0, RINTF_TOLERANCE, 0},
+{463, 999985470u, 3409354318u, 0u, 0, RINTF_TOLERANCE, 0},
+{464, 1189421739u, 1056599002u, 1189421568u, 0, RINTF_TOLERANCE, 0},
+{465, 1164046161u, 3440635788u, 1164046336u, 0, RINTF_TOLERANCE, 0},
+{466, 1292596266u, 3116569667u, 1292596266u, 0, RINTF_TOLERANCE, 0},
+{467, 3469748379u, 3412765608u, 3469748379u, 0, RINTF_TOLERANCE, 0},
+{468, 1314644642u, 3123051784u, 1314644642u, 0, RINTF_TOLERANCE, 0},
+{469, 3399813173u, 828743798u, 3399813172u, 0, RINTF_TOLERANCE, 0},
+{470, 948775569u, 3485444126u, 0u, 0, RINTF_TOLERANCE, 0},
+{471, 1034611395u, 882288581u, 0u, 0, RINTF_TOLERANCE, 0},
+{472, 3489122735u, 3372450889u, 3489122735u, 0, RINTF_TOLERANCE, 0},
+{473, 1181604787u, 3363067409u, 1181604864u, 0, RINTF_TOLERANCE, 0},
+{474, 1043691622u, 3402603223u, 0u, 0, RINTF_TOLERANCE, 0},
+{475, 1314588083u, 856187848u, 1314588083u, 0, RINTF_TOLERANCE, 0},
+{476, 3400949680u, 3073750220u, 3400949680u, 0, RINTF_TOLERANCE, 0},
+{477, 3365581801u, 1175843167u, 3365581792u, 0, RINTF_TOLERANCE, 0},
+{478, 1110424755u, 3011308654u, 1110441984u, 0, RINTF_TOLERANCE, 0},
+{479, 969804941u, 3355439348u, 0u, 0, RINTF_TOLERANCE, 0},
+{480, 1139120919u, 3270515074u, 1139113984u, 0, RINTF_TOLERANCE, 0},
+{481, 934308144u, 3118191228u, 0u, 0, RINTF_TOLERANCE, 0},
+{482, 1220524226u, 1152648002u, 1220524224u, 0, RINTF_TOLERANCE, 0},
+{483, 3382391700u, 3296962745u, 3382391696u, 0, RINTF_TOLERANCE, 0},
+{484, 1156767533u, 1088986462u, 1156767744u, 0, RINTF_TOLERANCE, 0},
+{485, 994934087u, 967678094u, 0u, 0, RINTF_TOLERANCE, 0},
+{486, 3479873563u, 1246277393u, 3479873563u, 0, RINTF_TOLERANCE, 0},
+{487, 3424264117u, 3434026174u, 3424264117u, 0, RINTF_TOLERANCE, 0},
+{488, 3228365887u, 1216775310u, 3229614080u, 0, RINTF_TOLERANCE, 0},
+{489, 1035909900u, 1249532942u, 0u, 0, RINTF_TOLERANCE, 0},
+{490, 1212129651u, 3017366784u, 1212129664u, 0, RINTF_TOLERANCE, 0},
+{491, 1037464105u, 3121544932u, 0u, 0, RINTF_TOLERANCE, 0},
+{492, 1311706596u, 1254918706u, 1311706596u, 0, RINTF_TOLERANCE, 0},
+{493, 918212457u, 1017468331u, 0u, 0, RINTF_TOLERANCE, 0},
+{494, 1337315179u, 3461361185u, 1337315179u, 0, RINTF_TOLERANCE, 0},
+{495, 1131358407u, 3325958870u, 1131347968u, 0, RINTF_TOLERANCE, 0},
+{496, 1156517523u, 3343716230u, 1156513792u, 0, RINTF_TOLERANCE, 0},
+{497, 3210802820u, 3207408574u, 3212836864u, 0, RINTF_TOLERANCE, 0},
+{498, 3337499209u, 1226297264u, 3337499136u, 0, RINTF_TOLERANCE, 0},
+{499, 3468429030u, 3253874001u, 3468429030u, 0, RINTF_TOLERANCE, 0},
+{500, 3253515800u, 1189005947u, 3253731328u, 0, RINTF_TOLERANCE, 0},
+{501, 959956547u, 876324728u, 0u, 0, RINTF_TOLERANCE, 0},
+{502, 3425290480u, 1139193797u, 3425290480u, 0, RINTF_TOLERANCE, 0},
+{503, 1039917375u, 1122740999u, 0u, 0, RINTF_TOLERANCE, 0},
+{504, 3220979495u, 3429223871u, 3221225472u, 0, RINTF_TOLERANCE, 0},
+{505, 1311016004u, 3334899880u, 1311016004u, 0, RINTF_TOLERANCE, 0},
+{506, 1128016396u, 1105151547u, 1128005632u, 0, RINTF_TOLERANCE, 0},
+{507, 3210335769u, 3100646155u, 3212836864u, 0, RINTF_TOLERANCE, 0},
+{508, 1206054701u, 826010009u, 1206054656u, 0, RINTF_TOLERANCE, 0},
+{509, 1213609983u, 919983950u, 1213609984u, 0, RINTF_TOLERANCE, 0},
+{510, 1246902946u, 3064047808u, 1246902944u, 0, RINTF_TOLERANCE, 0},
+{511, 995850843u, 1332031130u, 0u, 0, RINTF_TOLERANCE, 0},
+{512, 3362082828u, 3374056268u, 3362082816u, 0, RINTF_TOLERANCE, 0},
+{513, 1029480631u, 3047777170u, 0u, 0, RINTF_TOLERANCE, 0},
+{514, 3384988527u, 3109485565u, 3384988528u, 0, RINTF_TOLERANCE, 0},
+{515, 1317696241u, 870681806u, 1317696241u, 0, RINTF_TOLERANCE, 0},
+{516, 3235395924u, 1132055244u, 3235905536u, 0, RINTF_TOLERANCE, 0},
+{517, 3341877624u, 2969495570u, 3341877504u, 0, RINTF_TOLERANCE, 0},
+{518, 1228636133u, 886552820u, 1228636128u, 0, RINTF_TOLERANCE, 0},
+{519, 1207246237u, 859223639u, 1207246208u, 0, RINTF_TOLERANCE, 0},
+{520, 1165476654u, 3350219111u, 1165475840u, 0, RINTF_TOLERANCE, 0},
+{521, 1215278023u, 3019755242u, 1215278016u, 0, RINTF_TOLERANCE, 0},
+{522, 1017239798u, 3438501281u, 0u, 0, RINTF_TOLERANCE, 0},
+{523, 1149651309u, 970030475u, 1149648896u, 0, RINTF_TOLERANCE, 0},
+{524, 1111943722u, 3122211334u, 1112014848u, 0, RINTF_TOLERANCE, 0},
+{525, 1189849849u, 3382739134u, 1189849600u, 0, RINTF_TOLERANCE, 0},
+{526, 3204848496u, 3141519085u, 3212836864u, 0, RINTF_TOLERANCE, 0},
+{527, 1249758327u, 3104759211u, 1249758328u, 0, RINTF_TOLERANCE, 0},
+{528, 1168098747u, 1316854744u, 1168099328u, 0, RINTF_TOLERANCE, 0},
+{529, 892549317u, 1179637545u, 0u, 0, RINTF_TOLERANCE, 0},
+{530, 3301009024u, 3406174560u, 3301007360u, 0, RINTF_TOLERANCE, 0},
+{531, 3233089227u, 1212652543u, 3233808384u, 0, RINTF_TOLERANCE, 0},
+{532, 3218245284u, 1238873830u, 3221225472u, 0, RINTF_TOLERANCE, 0},
+{533, 3215981890u, 3240474694u, 3212836864u, 0, RINTF_TOLERANCE, 0},
+{534, 1266687209u, 3092038122u, 1266687209u, 0, RINTF_TOLERANCE, 0},
+{535, 3487959775u, 3331372071u, 3487959775u, 0, RINTF_TOLERANCE, 0},
+{536, 943645710u, 852875779u, 0u, 0, RINTF_TOLERANCE, 0},
+{537, 3345065699u, 3282620725u, 3345065728u, 0, RINTF_TOLERANCE, 0},
+{538, 935847271u, 1067255804u, 0u, 0, RINTF_TOLERANCE, 0},
+{539, 3410336089u, 1111437780u, 3410336089u, 0, RINTF_TOLERANCE, 0},
+{540, 1141063391u, 1168908072u, 1141063680u, 0, RINTF_TOLERANCE, 0},
+{541, 3353679791u, 897158391u, 3353679744u, 0, RINTF_TOLERANCE, 0},
+{542, 1001823878u, 1016826861u, 0u, 0, RINTF_TOLERANCE, 0},
+{543, 1009130212u, 1004302940u, 0u, 0, RINTF_TOLERANCE, 0},
+{544, 3367127535u, 943136342u, 3367127520u, 0, RINTF_TOLERANCE, 0},
+{545, 1032920919u, 3449126417u, 0u, 0, RINTF_TOLERANCE, 0},
+{546, 3281952870u, 3147012185u, 3281944576u, 0, RINTF_TOLERANCE, 0},
+{547, 1237868497u, 3048281802u, 1237868496u, 0, RINTF_TOLERANCE, 0},
+{548, 1153753924u, 3322269242u, 1153753088u, 0, RINTF_TOLERANCE, 0},
+{549, 1120261759u, 892210998u, 1120272384u, 0, RINTF_TOLERANCE, 0},
+{550, 3226328360u, 3366432856u, 3225419776u, 0, RINTF_TOLERANCE, 0},
+{551, 3349595986u, 3251588707u, 3349596032u, 0, RINTF_TOLERANCE, 0},
+{552, 1087750238u, 1099325523u, 1088421888u, 0, RINTF_TOLERANCE, 0},
+{553, 1066116543u, 3072159933u, 1065353216u, 0, RINTF_TOLERANCE, 0},
+{554, 3210898034u, 2981803389u, 3212836864u, 0, RINTF_TOLERANCE, 0},
+{555, 1030612298u, 3345396001u, 0u, 0, RINTF_TOLERANCE, 0},
+{556, 1186234578u, 858134374u, 1186234368u, 0, RINTF_TOLERANCE, 0},
+{557, 1331680743u, 1009396165u, 1331680743u, 0, RINTF_TOLERANCE, 0},
+{558, 887589411u, 1292305693u, 0u, 0, RINTF_TOLERANCE, 0},
+{559, 1045232522u, 3234993273u, 0u, 0, RINTF_TOLERANCE, 0},
+{560, 3349432725u, 928848003u, 3349432704u, 0, RINTF_TOLERANCE, 0},
+{561, 912423027u, 3184646319u, 0u, 0, RINTF_TOLERANCE, 0},
+{562, 3228795133u, 3273940030u, 3229614080u, 0, RINTF_TOLERANCE, 0},
+{563, 3296784303u, 3276182352u, 3296780288u, 0, RINTF_TOLERANCE, 0},
+{564, 965402291u, 3107104376u, 0u, 0, RINTF_TOLERANCE, 0},
+{565, 3388153589u, 3426245389u, 3388153592u, 0, RINTF_TOLERANCE, 0},
+{566, 1133410485u, 3329658993u, 1133412352u, 0, RINTF_TOLERANCE, 0},
+{567, 3369970587u, 959121458u, 3369970592u, 0, RINTF_TOLERANCE, 0},
+{568, 1270451568u, 928393353u, 1270451568u, 0, RINTF_TOLERANCE, 0},
+{569, 989498922u, 3088358419u, 0u, 0, RINTF_TOLERANCE, 0},
+{570, 1280215674u, 3148135875u, 1280215674u, 0, RINTF_TOLERANCE, 0},
+{571, 1171873518u, 954709738u, 1171873792u, 0, RINTF_TOLERANCE, 0},
+{572, 3298258100u, 935525182u, 3298254848u, 0, RINTF_TOLERANCE, 0},
+{573, 3415208824u, 822843236u, 3415208824u, 0, RINTF_TOLERANCE, 0},
+{574, 1001897182u, 3191875320u, 0u, 0, RINTF_TOLERANCE, 0},
+{575, 985903305u, 3333087577u, 0u, 0, RINTF_TOLERANCE, 0},
+{576, 3357328848u, 859306298u, 3357328832u, 0, RINTF_TOLERANCE, 0},
+{577, 982612185u, 923582663u, 0u, 0, RINTF_TOLERANCE, 0},
+{578, 3267868136u, 1208301947u, 3267887104u, 0, RINTF_TOLERANCE, 0},
+{579, 3319048157u, 1172271145u, 3319048192u, 0, RINTF_TOLERANCE, 0},
+{580, 1144755661u, 860947435u, 1144750080u, 0, RINTF_TOLERANCE, 0},
+{581, 898467286u, 839254959u, 0u, 0, RINTF_TOLERANCE, 0},
+{582, 3301461672u, 1233693827u, 3301457920u, 0, RINTF_TOLERANCE, 0},
+{583, 3364525678u, 3089849671u, 3364525664u, 0, RINTF_TOLERANCE, 0},
+{584, 931441127u, 1133424555u, 0u, 0, RINTF_TOLERANCE, 0},
+{585, 3467121799u, 3023584354u, 3467121799u, 0, RINTF_TOLERANCE, 0},
+{586, 1151257041u, 3084216427u, 1151254528u, 0, RINTF_TOLERANCE, 0},
+{587, 1017573824u, 3130901062u, 0u, 0, RINTF_TOLERANCE, 0},
+{588, 1258369714u, 3462258576u, 1258369714u, 0, RINTF_TOLERANCE, 0},
+{589, 1216602683u, 3371396332u, 1216602688u, 0, RINTF_TOLERANCE, 0},
+{590, 3297265739u, 1214184410u, 3297263616u, 0, RINTF_TOLERANCE, 0},
+{591, 1071940738u, 3311731012u, 1073741824u, 0, RINTF_TOLERANCE, 0},
+{592, 922601356u, 3337171870u, 0u, 0, RINTF_TOLERANCE, 0},
+{593, 3462285635u, 3444030332u, 3462285635u, 0, RINTF_TOLERANCE, 0},
+{594, 3357177805u, 1085464241u, 3357177792u, 0, RINTF_TOLERANCE, 0},
+{595, 1153863660u, 1011991342u, 1153859584u, 0, RINTF_TOLERANCE, 0},
+{596, 1249365132u, 3278686216u, 1249365132u, 0, RINTF_TOLERANCE, 0},
+{597, 3222096285u, 1198013705u, 3221225472u, 0, RINTF_TOLERANCE, 0},
+{598, 1297708818u, 3079166173u, 1297708818u, 0, RINTF_TOLERANCE, 0},
+{599, 3345532722u, 3383708463u, 3345532672u, 0, RINTF_TOLERANCE, 0},
+{600, 3418753236u, 3481843070u, 3418753236u, 0, RINTF_TOLERANCE, 0},
+{601, 1277417964u, 3487506626u, 1277417964u, 0, RINTF_TOLERANCE, 0},
+{602, 987577257u, 1152077087u, 0u, 0, RINTF_TOLERANCE, 0},
+{603, 888030585u, 3062367380u, 0u, 0, RINTF_TOLERANCE, 0},
+{604, 1043442869u, 3311393817u, 0u, 0, RINTF_TOLERANCE, 0},
+{605, 3320923228u, 3464544249u, 3320924160u, 0, RINTF_TOLERANCE, 0},
+{606, 1337400405u, 3488844154u, 1337400405u, 0, RINTF_TOLERANCE, 0},
+{607, 3400348640u, 3129868490u, 3400348640u, 0, RINTF_TOLERANCE, 0},
+{608, 1250249095u, 1069023744u, 1250249096u, 0, RINTF_TOLERANCE, 0},
+{609, 3284411233u, 1173613526u, 3284402176u, 0, RINTF_TOLERANCE, 0},
+{610, 1215968622u, 3469884568u, 1215968640u, 0, RINTF_TOLERANCE, 0},
+{611, 1025404104u, 1066370251u, 0u, 0, RINTF_TOLERANCE, 0},
+{612, 3362748242u, 3369843597u, 3362748224u, 0, RINTF_TOLERANCE, 0},
+{613, 1252237719u, 1121169249u, 1252237720u, 0, RINTF_TOLERANCE, 0},
+{614, 3327895594u, 1224511805u, 3327895552u, 0, RINTF_TOLERANCE, 0},
+{615, 3396161504u, 1182798837u, 3396161504u, 0, RINTF_TOLERANCE, 0},
+{616, 1099710167u, 887180181u, 1099956224u, 0, RINTF_TOLERANCE, 0},
+{617, 1157186482u, 1288722647u, 1157185536u, 0, RINTF_TOLERANCE, 0},
+{618, 1282110851u, 3176633124u, 1282110851u, 0, RINTF_TOLERANCE, 0},
+{619, 3477008113u, 1331845018u, 3477008113u, 0, RINTF_TOLERANCE, 0},
+{620, 3292127294u, 3409957764u, 3292135424u, 0, RINTF_TOLERANCE, 0},
+{621, 1123357102u, 3281307320u, 1123418112u, 0, RINTF_TOLERANCE, 0},
+{622, 1106837025u, 3088080674u, 1106771968u, 0, RINTF_TOLERANCE, 0},
+{623, 1049949008u, 1130799489u, 0u, 0, RINTF_TOLERANCE, 0},
+{624, 1253017688u, 942062372u, 1253017688u, 0, RINTF_TOLERANCE, 0},
+{625, 1108543194u, 3281299199u, 1108606976u, 0, RINTF_TOLERANCE, 0},
+{626, 1160162706u, 1264067367u, 1160163328u, 0, RINTF_TOLERANCE, 0},
+{627, 3305715025u, 3017496063u, 3305713664u, 0, RINTF_TOLERANCE, 0},
+{628, 1266928623u, 811778614u, 1266928623u, 0, RINTF_TOLERANCE, 0},
+{629, 3438080027u, 3107114149u, 3438080027u, 0, RINTF_TOLERANCE, 0},
+{630, 3344574751u, 3111270744u, 3344574720u, 0, RINTF_TOLERANCE, 0},
+{631, 1152416724u, 962669179u, 1152417792u, 0, RINTF_TOLERANCE, 0},
+{632, 1218239308u, 1126238113u, 1218239296u, 0, RINTF_TOLERANCE, 0},
+{633, 3263310567u, 1030748197u, 3263299584u, 0, RINTF_TOLERANCE, 0},
+{634, 1000313118u, 2980130729u, 0u, 0, RINTF_TOLERANCE, 0},
+{635, 972485427u, 1124312043u, 0u, 0, RINTF_TOLERANCE, 0},
+{636, 3290264612u, 1124703898u, 3290267648u, 0, RINTF_TOLERANCE, 0},
+{637, 3222106584u, 1183748648u, 3221225472u, 0, RINTF_TOLERANCE, 0},
+{638, 1278946388u, 825129857u, 1278946388u, 0, RINTF_TOLERANCE, 0},
+{639, 947914771u, 3181847068u, 0u, 0, RINTF_TOLERANCE, 0},
+{640, 1098530298u, 3255870890u, 1098907648u, 0, RINTF_TOLERANCE, 0},
+{641, 3232726036u, 871038882u, 3231711232u, 0, RINTF_TOLERANCE, 0},
+{642, 1297190916u, 811863044u, 1297190916u, 0, RINTF_TOLERANCE, 0},
+{643, 1277649137u, 961171401u, 1277649137u, 0, RINTF_TOLERANCE, 0},
+{644, 3244032016u, 3045313345u, 3244294144u, 0, RINTF_TOLERANCE, 0},
+{645, 1096155623u, 1256423752u, 1095761920u, 0, RINTF_TOLERANCE, 0},
+{646, 873151908u, 3246562559u, 0u, 0, RINTF_TOLERANCE, 0},
+{647, 3238729605u, 1298769842u, 3239051264u, 0, RINTF_TOLERANCE, 0},
+{648, 3317196817u, 989537151u, 3317196800u, 0, RINTF_TOLERANCE, 0},
+{649, 3374748510u, 834161190u, 3374748512u, 0, RINTF_TOLERANCE, 0},
+{650, 3345634950u, 959901149u, 3345635072u, 0, RINTF_TOLERANCE, 0},
+{651, 887311687u, 1175312255u, 0u, 0, RINTF_TOLERANCE, 0},
+{652, 3396917283u, 3066326686u, 3396917284u, 0, RINTF_TOLERANCE, 0},
+{653, 3317032737u, 3143803722u, 3317032960u, 0, RINTF_TOLERANCE, 0},
+{654, 1200051436u, 1163802508u, 1200051456u, 0, RINTF_TOLERANCE, 0},
+{655, 1306520561u, 957302464u, 1306520561u, 0, RINTF_TOLERANCE, 0},
+{656, 1314936356u, 2985592532u, 1314936356u, 0, RINTF_TOLERANCE, 0},
+{657, 3475052219u, 1284049853u, 3475052219u, 0, RINTF_TOLERANCE, 0},
+{658, 3393227708u, 3271879112u, 3393227708u, 0, RINTF_TOLERANCE, 0},
+{659, 3349005404u, 3080993030u, 3349005440u, 0, RINTF_TOLERANCE, 0},
+{660, 1262863321u, 1219003129u, 1262863321u, 0, RINTF_TOLERANCE, 0},
+{661, 882902102u, 1224362550u, 0u, 0, RINTF_TOLERANCE, 0},
+{662, 1053387478u, 3184880021u, 0u, 0, RINTF_TOLERANCE, 0},
+{663, 3387653691u, 3347783852u, 3387653688u, 0, RINTF_TOLERANCE, 0},
+{664, 1338680611u, 1166078045u, 1338680611u, 0, RINTF_TOLERANCE, 0},
+{665, 1112891928u, 3074730425u, 1112801280u, 0, RINTF_TOLERANCE, 0},
+{666, 893449284u, 1052877339u, 0u, 0, RINTF_TOLERANCE, 0},
+{667, 892311459u, 1097338393u, 0u, 0, RINTF_TOLERANCE, 0},
+{668, 1190105283u, 3033907262u, 1190105088u, 0, RINTF_TOLERANCE, 0},
+{669, 1011225926u, 1180485180u, 0u, 0, RINTF_TOLERANCE, 0},
+{670, 1043025031u, 987068973u, 0u, 0, RINTF_TOLERANCE, 0},
+{671, 3410531037u, 2953541915u, 3410531037u, 0, RINTF_TOLERANCE, 0},
+{672, 902318189u, 849277289u, 0u, 0, RINTF_TOLERANCE, 0},
+{673, 3213624815u, 2987148017u, 3212836864u, 0, RINTF_TOLERANCE, 0},
+{674, 1120888322u, 1086209113u, 1120927744u, 0, RINTF_TOLERANCE, 0},
+{675, 1315217243u, 3396371713u, 1315217243u, 0, RINTF_TOLERANCE, 0},
+{676, 1040617590u, 1034835971u, 0u, 0, RINTF_TOLERANCE, 0},
+{677, 955384253u, 3344785562u, 0u, 0, RINTF_TOLERANCE, 0},
+{678, 904255535u, 1019967545u, 0u, 0, RINTF_TOLERANCE, 0},
+{679, 1022984119u, 3113891410u, 0u, 0, RINTF_TOLERANCE, 0},
+{680, 997362368u, 3112875428u, 0u, 0, RINTF_TOLERANCE, 0},
+{681, 900933520u, 1100589187u, 0u, 0, RINTF_TOLERANCE, 0},
+{682, 1168623062u, 1143306482u, 1168623616u, 0, RINTF_TOLERANCE, 0},
+{683, 878737490u, 3269908326u, 0u, 0, RINTF_TOLERANCE, 0},
+{684, 1039827284u, 1072928888u, 0u, 0, RINTF_TOLERANCE, 0},
+{685, 1021564080u, 1064468397u, 0u, 0, RINTF_TOLERANCE, 0},
+{686, 3458669745u, 3033299853u, 3458669745u, 0, RINTF_TOLERANCE, 0},
+{687, 3327516316u, 3405380971u, 3327516672u, 0, RINTF_TOLERANCE, 0},
+{688, 1040711112u, 3229444200u, 0u, 0, RINTF_TOLERANCE, 0},
+{689, 1134528351u, 3365952513u, 1134526464u, 0, RINTF_TOLERANCE, 0},
+{690, 3414352838u, 3350285760u, 3414352838u, 0, RINTF_TOLERANCE, 0},
+{691, 1133689539u, 1067460093u, 1133674496u, 0, RINTF_TOLERANCE, 0},
+{692, 3455688478u, 3333091960u, 3455688478u, 0, RINTF_TOLERANCE, 0},
+{693, 1137634874u, 1137038869u, 1137639424u, 0, RINTF_TOLERANCE, 0},
+{694, 3415502662u, 955510692u, 3415502662u, 0, RINTF_TOLERANCE, 0},
+{695, 954999730u, 969618597u, 0u, 0, RINTF_TOLERANCE, 0},
+{696, 1066157309u, 3241712664u, 1065353216u, 0, RINTF_TOLERANCE, 0},
+{697, 3436353675u, 1174967495u, 3436353675u, 0, RINTF_TOLERANCE, 0},
+{698, 940437609u, 860372396u, 0u, 0, RINTF_TOLERANCE, 0},
+{699, 1023889593u, 2979304683u, 0u, 0, RINTF_TOLERANCE, 0},
+{700, 3272661536u, 3461799138u, 3272671232u, 0, RINTF_TOLERANCE, 0},
+{701, 1170245333u, 1233406410u, 1170245632u, 0, RINTF_TOLERANCE, 0},
+{702, 1219052056u, 3369557946u, 1219052064u, 0, RINTF_TOLERANCE, 0},
+{703, 3318983619u, 3259663338u, 3318982656u, 0, RINTF_TOLERANCE, 0},
+{704, 3372118621u, 837597103u, 3372118624u, 0, RINTF_TOLERANCE, 0},
+{705, 1299683827u, 966031619u, 1299683827u, 0, RINTF_TOLERANCE, 0},
+{706, 3257224022u, 3361778245u, 3257139200u, 0, RINTF_TOLERANCE, 0},
+{707, 1229268598u, 1066965677u, 1229268592u, 0, RINTF_TOLERANCE, 0},
+{708, 1086717248u, 3423795374u, 1086324736u, 0, RINTF_TOLERANCE, 0},
+{709, 3434884607u, 3029593823u, 3434884607u, 0, RINTF_TOLERANCE, 0},
+{710, 3464955606u, 1017987696u, 3464955606u, 0, RINTF_TOLERANCE, 0},
+{711, 1025278524u, 3121856207u, 0u, 0, RINTF_TOLERANCE, 0},
+{712, 1242829722u, 3233935671u, 1242829720u, 0, RINTF_TOLERANCE, 0},
+{713, 1200927971u, 1317167489u, 1200928000u, 0, RINTF_TOLERANCE, 0},
+{714, 3326858092u, 3452602832u, 3326858240u, 0, RINTF_TOLERANCE, 0},
+{715, 1246019790u, 850632217u, 1246019792u, 0, RINTF_TOLERANCE, 0},
+{716, 1136052740u, 3244616020u, 1136066560u, 0, RINTF_TOLERANCE, 0},
+{717, 1069009211u, 3002507482u, 1065353216u, 0, RINTF_TOLERANCE, 0},
+{718, 1015670780u, 1101217251u, 0u, 0, RINTF_TOLERANCE, 0},
+{719, 1012543234u, 1116520440u, 0u, 0, RINTF_TOLERANCE, 0},
+{720, 3316611992u, 3394732912u, 3316611072u, 0, RINTF_TOLERANCE, 0},
+{721, 1087942795u, 3316660295u, 1088421888u, 0, RINTF_TOLERANCE, 0},
+{722, 3426365713u, 3069778532u, 3426365713u, 0, RINTF_TOLERANCE, 0},
+{723, 3295326432u, 1313396175u, 3295330304u, 0, RINTF_TOLERANCE, 0},
+{724, 3318835308u, 3277583511u, 3318835200u, 0, RINTF_TOLERANCE, 0},
+{725, 3283555717u, 891875120u, 3283550208u, 0, RINTF_TOLERANCE, 0},
+{726, 3381255420u, 3015406047u, 3381255424u, 0, RINTF_TOLERANCE, 0},
+{727, 3388772093u, 1032597076u, 3388772096u, 0, RINTF_TOLERANCE, 0},
+{728, 954670189u, 1144923689u, 0u, 0, RINTF_TOLERANCE, 0},
+{729, 1319200415u, 3387555900u, 1319200415u, 0, RINTF_TOLERANCE, 0},
+{730, 1279324488u, 3228401212u, 1279324488u, 0, RINTF_TOLERANCE, 0},
+{731, 3217795424u, 865577227u, 3221225472u, 0, RINTF_TOLERANCE, 0},
+{732, 3455131757u, 1260217257u, 3455131757u, 0, RINTF_TOLERANCE, 0},
+{733, 1246947517u, 1087951909u, 1246947516u, 0, RINTF_TOLERANCE, 0},
+{734, 3396723577u, 869285240u, 3396723576u, 0, RINTF_TOLERANCE, 0},
+{735, 3433761025u, 3060143904u, 3433761025u, 0, RINTF_TOLERANCE, 0},
+{736, 1173247961u, 1191127979u, 1173248000u, 0, RINTF_TOLERANCE, 0},
+{737, 3248534678u, 1323683800u, 3248488448u, 0, RINTF_TOLERANCE, 0},
+{738, 1082862511u, 3032804719u, 1082130432u, 0, RINTF_TOLERANCE, 0},
+{739, 1341821683u, 3003675365u, 1341821683u, 0, RINTF_TOLERANCE, 0},
+{740, 881101379u, 1190838126u, 0u, 0, RINTF_TOLERANCE, 0},
+{741, 1079061705u, 2960507663u, 1077936128u, 0, RINTF_TOLERANCE, 0},
+{742, 1105291533u, 3482971524u, 1105199104u, 0, RINTF_TOLERANCE, 0},
+{743, 1016023520u, 3227712090u, 0u, 0, RINTF_TOLERANCE, 0},
+{744, 3370691006u, 1295870514u, 3370691008u, 0, RINTF_TOLERANCE, 0},
+{745, 1156767169u, 1049756240u, 1156767744u, 0, RINTF_TOLERANCE, 0},
+{746, 1104284039u, 3040211914u, 1104150528u, 0, RINTF_TOLERANCE, 0},
+{747, 3335212901u, 3486414589u, 3335213056u, 0, RINTF_TOLERANCE, 0},
+{748, 1093697541u, 3193708441u, 1093664768u, 0, RINTF_TOLERANCE, 0},
+{749, 3266691185u, 1160074593u, 3266707456u, 0, RINTF_TOLERANCE, 0},
+{750, 1094115255u, 3008610212u, 1093664768u, 0, RINTF_TOLERANCE, 0},
+{751, 3424086808u, 3260140004u, 3424086808u, 0, RINTF_TOLERANCE, 0},
+{752, 3353608773u, 1134068114u, 3353608832u, 0, RINTF_TOLERANCE, 0},
+{753, 973664327u, 1319516167u, 0u, 0, RINTF_TOLERANCE, 0},
+{754, 882878091u, 3136970767u, 0u, 0, RINTF_TOLERANCE, 0},
+{755, 1098662266u, 833740182u, 1098907648u, 0, RINTF_TOLERANCE, 0},
+{756, 927582555u, 947955456u, 0u, 0, RINTF_TOLERANCE, 0},
+{757, 3476083859u, 966439623u, 3476083859u, 0, RINTF_TOLERANCE, 0},
+{758, 979878744u, 1232482646u, 0u, 0, RINTF_TOLERANCE, 0},
+{759, 3464546616u, 3205527253u, 3464546616u, 0, RINTF_TOLERANCE, 0},
+{760, 1002542205u, 3152136093u, 0u, 0, RINTF_TOLERANCE, 0},
+{761, 3443552129u, 3165561391u, 3443552129u, 0, RINTF_TOLERANCE, 0},
+{762, 1287620154u, 3119707283u, 1287620154u, 0, RINTF_TOLERANCE, 0},
+{763, 946058434u, 1249928879u, 0u, 0, RINTF_TOLERANCE, 0},
+{764, 1245702957u, 894348966u, 1245702956u, 0, RINTF_TOLERANCE, 0},
+{765, 989655126u, 1308376568u, 0u, 0, RINTF_TOLERANCE, 0},
+{766, 1002715618u, 1191006977u, 0u, 0, RINTF_TOLERANCE, 0},
+{767, 1000863905u, 1196831314u, 0u, 0, RINTF_TOLERANCE, 0},
+{768, 3415763001u, 3032518431u, 3415763001u, 0, RINTF_TOLERANCE, 0},
+{769, 3283471961u, 1260093226u, 3283484672u, 0, RINTF_TOLERANCE, 0},
+{770, 3311210827u, 1192192264u, 3311210496u, 0, RINTF_TOLERANCE, 0},
+{771, 1198307901u, 1116328249u, 1198307840u, 0, RINTF_TOLERANCE, 0},
+{772, 1288901567u, 1296370667u, 1288901567u, 0, RINTF_TOLERANCE, 0},
+{773, 922255363u, 958305289u, 0u, 0, RINTF_TOLERANCE, 0},
+{774, 1113104661u, 944376032u, 1113063424u, 0, RINTF_TOLERANCE, 0},
+{775, 1136714348u, 828849087u, 1136721920u, 0, RINTF_TOLERANCE, 0},
+{776, 948856035u, 1015466475u, 0u, 0, RINTF_TOLERANCE, 0},
+{777, 1062512367u, 3229559531u, 1065353216u, 0, RINTF_TOLERANCE, 0},
+{778, 3486907092u, 823220784u, 3486907092u, 0, RINTF_TOLERANCE, 0},
+{779, 1162027071u, 3308983387u, 1162027008u, 0, RINTF_TOLERANCE, 0},
+{780, 1034561811u, 1054043114u, 0u, 0, RINTF_TOLERANCE, 0},
+{781, 3271615417u, 3209997200u, 3271622656u, 0, RINTF_TOLERANCE, 0},
+{782, 1042014529u, 1146708584u, 0u, 0, RINTF_TOLERANCE, 0},
+{783, 1177157787u, 3090208179u, 1177157632u, 0, RINTF_TOLERANCE, 0},
+{784, 3432084552u, 2997091781u, 3432084552u, 0, RINTF_TOLERANCE, 0},
+{785, 1309658335u, 1010219988u, 1309658335u, 0, RINTF_TOLERANCE, 0},
+{786, 1226494979u, 2991604792u, 1226494976u, 0, RINTF_TOLERANCE, 0},
+{787, 3375507013u, 1306310823u, 3375507008u, 0, RINTF_TOLERANCE, 0},
+{788, 3460699001u, 3096700943u, 3460699001u, 0, RINTF_TOLERANCE, 0},
+{789, 3468023178u, 1209565017u, 3468023178u, 0, RINTF_TOLERANCE, 0},
+{790, 1204196034u, 3298625731u, 1204196096u, 0, RINTF_TOLERANCE, 0},
+{791, 3459877411u, 2960476959u, 3459877411u, 0, RINTF_TOLERANCE, 0},
+{792, 909696559u, 1163075690u, 0u, 0, RINTF_TOLERANCE, 0},
+{793, 1161439847u, 943449277u, 1161441280u, 0, RINTF_TOLERANCE, 0},
+{794, 908663107u, 939489763u, 0u, 0, RINTF_TOLERANCE, 0},
+{795, 1055319316u, 3261813492u, 0u, 0, RINTF_TOLERANCE, 0},
+{796, 1084378658u, 1009650785u, 1084227584u, 0, RINTF_TOLERANCE, 0},
+{797, 1226473697u, 821025132u, 1226473696u, 0, RINTF_TOLERANCE, 0},
+{798, 1123114742u, 1229815537u, 1123155968u, 0, RINTF_TOLERANCE, 0},
+{799, 1258114435u, 1291336083u, 1258114436u, 0, RINTF_TOLERANCE, 0},
+{800, 3468040845u, 3066966245u, 3468040845u, 0, RINTF_TOLERANCE, 0},
+{801, 1178825761u, 1113195286u, 1178825728u, 0, RINTF_TOLERANCE, 0},
+{802, 3223384012u, 1130486973u, 3225419776u, 0, RINTF_TOLERANCE, 0},
+{803, 1019964626u, 1235133609u, 0u, 0, RINTF_TOLERANCE, 0},
+{804, 3445262427u, 3465211174u, 3445262427u, 0, RINTF_TOLERANCE, 0},
+{805, 1125653081u, 1207799746u, 1125646336u, 0, RINTF_TOLERANCE, 0},
+{806, 3337652712u, 3025581813u, 3337652736u, 0, RINTF_TOLERANCE, 0},
+{807, 1184753508u, 3147374485u, 1184753664u, 0, RINTF_TOLERANCE, 0},
+{808, 996404791u, 3353251979u, 0u, 0, RINTF_TOLERANCE, 0},
+{809, 1188439315u, 1113484271u, 1188439552u, 0, RINTF_TOLERANCE, 0},
+{810, 906557513u, 3006513432u, 0u, 0, RINTF_TOLERANCE, 0},
+{811, 916831283u, 999465787u, 0u, 0, RINTF_TOLERANCE, 0},
+{812, 996786317u, 3179221951u, 0u, 0, RINTF_TOLERANCE, 0},
+{813, 3461635065u, 1004690387u, 3461635065u, 0, RINTF_TOLERANCE, 0},
+{814, 1188167943u, 1200744896u, 1188168192u, 0, RINTF_TOLERANCE, 0},
+{815, 891257783u, 1267560050u, 0u, 0, RINTF_TOLERANCE, 0},
+{816, 3290079438u, 846519377u, 3290087424u, 0, RINTF_TOLERANCE, 0},
+{817, 3350690327u, 2967953392u, 3350690304u, 0, RINTF_TOLERANCE, 0},
+{818, 1102061604u, 3424449935u, 1102053376u, 0, RINTF_TOLERANCE, 0},
+{819, 1282351521u, 3039376424u, 1282351521u, 0, RINTF_TOLERANCE, 0},
+{820, 3458861065u, 3392466405u, 3458861065u, 0, RINTF_TOLERANCE, 0},
+{821, 3228793330u, 855146890u, 3229614080u, 0, RINTF_TOLERANCE, 0},
+{822, 3422194733u, 893873945u, 3422194733u, 0, RINTF_TOLERANCE, 0},
+{823, 1261940623u, 3402349985u, 1261940623u, 0, RINTF_TOLERANCE, 0},
+{824, 3400603081u, 3234396843u, 3400603080u, 0, RINTF_TOLERANCE, 0},
+{825, 1219411812u, 2961857939u, 1219411808u, 0, RINTF_TOLERANCE, 0},
+{826, 886201503u, 3272760705u, 0u, 0, RINTF_TOLERANCE, 0},
+{827, 3297366026u, 1089966380u, 3297370112u, 0, RINTF_TOLERANCE, 0},
+{828, 1218488455u, 3309646450u, 1218488448u, 0, RINTF_TOLERANCE, 0},
+{829, 1283938137u, 1196383822u, 1283938137u, 0, RINTF_TOLERANCE, 0},
+{830, 1317098613u, 949986176u, 1317098613u, 0, RINTF_TOLERANCE, 0},
+{831, 3431703657u, 3014443710u, 3431703657u, 0, RINTF_TOLERANCE, 0},
+{832, 3239728775u, 927815421u, 3240099840u, 0, RINTF_TOLERANCE, 0},
+{833, 3207141672u, 933456504u, 3212836864u, 0, RINTF_TOLERANCE, 0},
+{834, 3313160088u, 2964063309u, 3313160192u, 0, RINTF_TOLERANCE, 0},
+{835, 3207056527u, 3384206601u, 3212836864u, 0, RINTF_TOLERANCE, 0},
+{836, 1284174954u, 3436881197u, 1284174954u, 0, RINTF_TOLERANCE, 0},
+{837, 1063693032u, 976661408u, 1065353216u, 0, RINTF_TOLERANCE, 0},
+{838, 1102631663u, 3396951425u, 1102577664u, 0, RINTF_TOLERANCE, 0},
+{839, 968803479u, 992989712u, 0u, 0, RINTF_TOLERANCE, 0},
+{840, 3273080388u, 3109405906u, 3273064448u, 0, RINTF_TOLERANCE, 0},
+{841, 1172529774u, 3294550127u, 1172529152u, 0, RINTF_TOLERANCE, 0},
+{842, 1306695905u, 1292690378u, 1306695905u, 0, RINTF_TOLERANCE, 0},
+{843, 1003649752u, 1218792138u, 0u, 0, RINTF_TOLERANCE, 0},
+{844, 1078478376u, 1326246424u, 1077936128u, 0, RINTF_TOLERANCE, 0},
+{845, 1165177679u, 3276237026u, 1165176832u, 0, RINTF_TOLERANCE, 0},
+{846, 3403009513u, 3381966453u, 3403009512u, 0, RINTF_TOLERANCE, 0},
+{847, 952348506u, 3377573987u, 0u, 0, RINTF_TOLERANCE, 0},
+{848, 1222777442u, 1125769920u, 1222777440u, 0, RINTF_TOLERANCE, 0},
+{849, 1325324763u, 978336043u, 1325324763u, 0, RINTF_TOLERANCE, 0},
+{850, 3363524213u, 3202991311u, 3363524224u, 0, RINTF_TOLERANCE, 0},
+{851, 1158950321u, 1073578913u, 1158950912u, 0, RINTF_TOLERANCE, 0},
+{852, 903129873u, 3416864271u, 0u, 0, RINTF_TOLERANCE, 0},
+{853, 1208345407u, 1254181270u, 1208345408u, 0, RINTF_TOLERANCE, 0},
+{854, 1258634105u, 1247426200u, 1258634105u, 0, RINTF_TOLERANCE, 0},
+{855, 1248478509u, 1287895126u, 1248478508u, 0, RINTF_TOLERANCE, 0},
+{856, 1153863988u, 3430539165u, 1153867776u, 0, RINTF_TOLERANCE, 0},
+{857, 1235620969u, 866627358u, 1235620968u, 0, RINTF_TOLERANCE, 0},
+{858, 1097120930u, 3221726305u, 1096810496u, 0, RINTF_TOLERANCE, 0},
+{859, 3469778622u, 1200179013u, 3469778622u, 0, RINTF_TOLERANCE, 0},
+{860, 1147712200u, 931865525u, 1147715584u, 0, RINTF_TOLERANCE, 0},
+{861, 1124721745u, 3058969650u, 1124728832u, 0, RINTF_TOLERANCE, 0},
+{862, 3261744304u, 1043806501u, 3261857792u, 0, RINTF_TOLERANCE, 0},
+{863, 1064922416u, 1320485628u, 1065353216u, 0, RINTF_TOLERANCE, 0},
+{864, 3303160152u, 3075455322u, 3303161856u, 0, RINTF_TOLERANCE, 0},
+{865, 1315090496u, 3269683237u, 1315090496u, 0, RINTF_TOLERANCE, 0},
+{866, 3230403187u, 1322841992u, 3229614080u, 0, RINTF_TOLERANCE, 0},
+{867, 1335399673u, 974138676u, 1335399673u, 0, RINTF_TOLERANCE, 0},
+{868, 1072458508u, 3372833993u, 1073741824u, 0, RINTF_TOLERANCE, 0},
+{869, 3303015249u, 3015039539u, 3303014400u, 0, RINTF_TOLERANCE, 0},
+{870, 3252139741u, 1059615003u, 3252158464u, 0, RINTF_TOLERANCE, 0},
+{871, 3468519966u, 3113982619u, 3468519966u, 0, RINTF_TOLERANCE, 0},
+{872, 1006231203u, 897530770u, 0u, 0, RINTF_TOLERANCE, 0},
+{873, 951554138u, 1001144381u, 0u, 0, RINTF_TOLERANCE, 0},
+{874, 942046828u, 986341002u, 0u, 0, RINTF_TOLERANCE, 0},
+{875, 3319723279u, 3414482416u, 3319724032u, 0, RINTF_TOLERANCE, 0},
+{876, 3255104167u, 928827688u, 3255042048u, 0, RINTF_TOLERANCE, 0},
+{877, 1155477903u, 3104812800u, 1155481600u, 0, RINTF_TOLERANCE, 0},
+{878, 3273889176u, 980486479u, 3273916416u, 0, RINTF_TOLERANCE, 0},
+{879, 3237813668u, 3441016803u, 3238002688u, 0, RINTF_TOLERANCE, 0},
+{880, 1228207362u, 2985476579u, 1228207360u, 0, RINTF_TOLERANCE, 0},
+{881, 975349337u, 1311932596u, 0u, 0, RINTF_TOLERANCE, 0},
+{882, 1290175785u, 3008182462u, 1290175785u, 0, RINTF_TOLERANCE, 0},
+{883, 981908840u, 3314038398u, 0u, 0, RINTF_TOLERANCE, 0},
+{884, 941187647u, 1107765599u, 0u, 0, RINTF_TOLERANCE, 0},
+{885, 1214223128u, 3225536822u, 1214223104u, 0, RINTF_TOLERANCE, 0},
+{886, 3422922584u, 1086391131u, 3422922584u, 0, RINTF_TOLERANCE, 0},
+{887, 1315857601u, 3487600045u, 1315857601u, 0, RINTF_TOLERANCE, 0},
+{888, 3453226030u, 3233768835u, 3453226030u, 0, RINTF_TOLERANCE, 0},
+{889, 1078359574u, 3199175230u, 1077936128u, 0, RINTF_TOLERANCE, 0},
+{890, 1029557624u, 3302959071u, 0u, 0, RINTF_TOLERANCE, 0},
+{891, 1207675424u, 3042692550u, 1207675392u, 0, RINTF_TOLERANCE, 0},
+{892, 1028355074u, 3442294040u, 0u, 0, RINTF_TOLERANCE, 0},
+{893, 1248421894u, 3367769132u, 1248421896u, 0, RINTF_TOLERANCE, 0},
+{894, 3353251994u, 1095517730u, 3353251968u, 0, RINTF_TOLERANCE, 0},
+{895, 876926659u, 3288089977u, 0u, 0, RINTF_TOLERANCE, 0},
+{896, 1076752219u, 876236939u, 1077936128u, 0, RINTF_TOLERANCE, 0},
+{897, 3388531942u, 2988520062u, 3388531944u, 0, RINTF_TOLERANCE, 0},
+{898, 1273395082u, 3031189261u, 1273395082u, 0, RINTF_TOLERANCE, 0},
+{899, 3385588183u, 3258252464u, 3385588184u, 0, RINTF_TOLERANCE, 0},
+{900, 3441804648u, 3274638356u, 3441804648u, 0, RINTF_TOLERANCE, 0},
+{901, 3392827417u, 1277961150u, 3392827416u, 0, RINTF_TOLERANCE, 0},
+{902, 1161241793u, 1328003707u, 1161240576u, 0, RINTF_TOLERANCE, 0},
+{903, 1171318485u, 3374409104u, 1171318784u, 0, RINTF_TOLERANCE, 0},
+{904, 1001216371u, 3052357038u, 0u, 0, RINTF_TOLERANCE, 0},
+{905, 912515889u, 1074635609u, 0u, 0, RINTF_TOLERANCE, 0},
+{906, 3391452505u, 897989232u, 3391452504u, 0, RINTF_TOLERANCE, 0},
+{907, 3249603369u, 3147662248u, 3249537024u, 0, RINTF_TOLERANCE, 0},
+{908, 1220264047u, 2960450369u, 1220264032u, 0, RINTF_TOLERANCE, 0},
+{909, 3282212423u, 3174079140u, 3282206720u, 0, RINTF_TOLERANCE, 0},
+{910, 3352293320u, 3247843425u, 3352293376u, 0, RINTF_TOLERANCE, 0},
+{911, 3296358441u, 875645354u, 3296362496u, 0, RINTF_TOLERANCE, 0},
+{912, 1197828352u, 3245614728u, 1197828352u, 0, RINTF_TOLERANCE, 0},
+{913, 3340510371u, 914930263u, 3340510464u, 0, RINTF_TOLERANCE, 0},
+{914, 1127109339u, 3368125489u, 1127088128u, 0, RINTF_TOLERANCE, 0},
+{915, 909467381u, 1232375752u, 0u, 0, RINTF_TOLERANCE, 0},
+{916, 1200599955u, 2981200675u, 1200599936u, 0, RINTF_TOLERANCE, 0},
+{917, 962230977u, 2988248037u, 0u, 0, RINTF_TOLERANCE, 0},
+{918, 3237183876u, 3179379969u, 3238002688u, 0, RINTF_TOLERANCE, 0},
+{919, 939285924u, 3056079386u, 0u, 0, RINTF_TOLERANCE, 0},
+{920, 944050180u, 3452557879u, 0u, 0, RINTF_TOLERANCE, 0},
+{921, 3480592662u, 3261728191u, 3480592662u, 0, RINTF_TOLERANCE, 0},
+{922, 1003299981u, 853295521u, 0u, 0, RINTF_TOLERANCE, 0},
+{923, 1155775526u, 1255814444u, 1155776512u, 0, RINTF_TOLERANCE, 0},
+{924, 1234491880u, 3408568717u, 1234491880u, 0, RINTF_TOLERANCE, 0}
+
+// AUTOMATICALLY GENERATED VECTORS STOP
+
+};
+
+#endif // CYGONCE_LIBM_RINTF_H multiple inclusion protection
+
+// EOF rintf.h
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/scalbf.c b/ecos/packages/language/c/libm/current/tests/vectors/scalbf.c
new file mode 100644
index 0000000..0066197
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/scalbf.c
@@ -0,0 +1,115 @@
+//===========================================================================
+//
+// scalbf.c
+//
+// Test of scalbf() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// Declarations for test system:
+//
+// TESTCASE_TYPE=CYG_TEST_MODULE
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include <cyg/infra/testcase.h> // Test infrastructure
+#include <math.h> // Header for this package
+#include <sys/ieeefp.h> // Cyg_libm_ieee_float_shape_type
+#include "vectors/vector_support_float.h"// extra support for math tests
+
+#include "vectors/scalbf.h"
+
+// FUNCTIONS
+
+static void
+test( CYG_ADDRWORD data )
+{
+ cyg_ucount32 vec_size;
+ cyg_bool ret;
+
+ vec_size = sizeof(scalbf_vec) / sizeof(Cyg_libm_test_float_vec_t);
+ ret = doTestVecFloat( (CYG_ADDRWORD) &scalbf, CYG_LIBM_TEST_VEC_FLOAT,
+ CYG_LIBM_TEST_VEC_FLOAT, CYG_LIBM_TEST_VEC_FLOAT,
+ &scalbf_vec[0], vec_size );
+
+ if (ret==true)
+ {
+ CYG_TEST_PASS("scalbf() is stable");
+ } // if
+ else
+ {
+ CYG_TEST_FAIL("scalbf() failed tests");
+ } // else
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for Math "
+ "library scalbf() function");
+} // test()
+
+
+int
+main(int argc, char *argv[])
+{
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for Math library "
+ "scalbf() function");
+
+ START_TEST( test );
+
+ CYG_TEST_PASS_FINISH("Testing is not applicable to this configuration");
+
+} // main()
+
+
+// EOF scalbf.c
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/scalbf.h b/ecos/packages/language/c/libm/current/tests/vectors/scalbf.h
new file mode 100644
index 0000000..b82fa0b
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/scalbf.h
@@ -0,0 +1,221 @@
+#ifndef CYGONCE_LIBM_SCABNF_H
+#define CYGONCE_LIBM_SCABNF_H
+//===========================================================================
+//
+// scalbf.h
+//
+// Test vectors for testing of scalbf() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage: #include "vectors/scalbf.h"
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include "vectors/vector_support_float.h"// extra support for math tests
+
+#define SCALBF_TOLERANCE 1.0E-04
+
+static const Cyg_libm_test_float_vec_t scalbf_vec[] = {
+
+// AUTOMATICALLY GENERATED VECTORS START
+
+{0, 3212836864u, 3212836864u, 3204448256u, 0, SCALBF_TOLERANCE, 0},
+{1, 3211998003u, 3212836864u, 3203609395u, 0, SCALBF_TOLERANCE, 0},
+{2, 3211159142u, 3212836864u, 3202770534u, 0, SCALBF_TOLERANCE, 0},
+{3, 3210320282u, 3212836864u, 3201931674u, 0, SCALBF_TOLERANCE, 0},
+{4, 3209481421u, 3212836864u, 3201092813u, 0, SCALBF_TOLERANCE, 0},
+{5, 3208642560u, 3212836864u, 3200253952u, 0, SCALBF_TOLERANCE, 0},
+{6, 3207803699u, 3212836864u, 3199415091u, 0, SCALBF_TOLERANCE, 0},
+{7, 3206964838u, 3212836864u, 3198576230u, 0, SCALBF_TOLERANCE, 0},
+{8, 3206125978u, 3212836864u, 3197737370u, 0, SCALBF_TOLERANCE, 0},
+{9, 3205287117u, 3212836864u, 3196898509u, 0, SCALBF_TOLERANCE, 0},
+{10, 3204448256u, 3212836864u, 3196059648u, 0, SCALBF_TOLERANCE, 0},
+{11, 3202770534u, 3212836864u, 3194381926u, 0, SCALBF_TOLERANCE, 0},
+{12, 3201092813u, 3212836864u, 3192704205u, 0, SCALBF_TOLERANCE, 0},
+{13, 3199415091u, 3212836864u, 3191026483u, 0, SCALBF_TOLERANCE, 0},
+{14, 3197737370u, 3212836864u, 3189348762u, 0, SCALBF_TOLERANCE, 0},
+{15, 3196059648u, 3212836864u, 3187671040u, 0, SCALBF_TOLERANCE, 0},
+{16, 3192704205u, 3212836864u, 3184315597u, 0, SCALBF_TOLERANCE, 0},
+{17, 3189348762u, 3212836864u, 3180960154u, 0, SCALBF_TOLERANCE, 0},
+{18, 3184315597u, 3212836864u, 3175926989u, 0, SCALBF_TOLERANCE, 0},
+{19, 3175926989u, 3212836864u, 3167538381u, 0, SCALBF_TOLERANCE, 0},
+{20, 1028443341u, 3212836864u, 1020054733u, 0, SCALBF_TOLERANCE, 0},
+{21, 1036831949u, 3212836864u, 1028443341u, 0, SCALBF_TOLERANCE, 0},
+{22, 1041865114u, 3212836864u, 1033476506u, 0, SCALBF_TOLERANCE, 0},
+{23, 1045220557u, 3212836864u, 1036831949u, 0, SCALBF_TOLERANCE, 0},
+{24, 1048576000u, 3212836864u, 1040187392u, 0, SCALBF_TOLERANCE, 0},
+{25, 1050253722u, 3212836864u, 1041865114u, 0, SCALBF_TOLERANCE, 0},
+{26, 1051931443u, 3212836864u, 1043542835u, 0, SCALBF_TOLERANCE, 0},
+{27, 1053609165u, 3212836864u, 1045220557u, 0, SCALBF_TOLERANCE, 0},
+{28, 1055286886u, 3212836864u, 1046898278u, 0, SCALBF_TOLERANCE, 0},
+{29, 1056964608u, 3212836864u, 1048576000u, 0, SCALBF_TOLERANCE, 0},
+{30, 1057803469u, 3212836864u, 1049414861u, 0, SCALBF_TOLERANCE, 0},
+{31, 1058642330u, 3212836864u, 1050253722u, 0, SCALBF_TOLERANCE, 0},
+{32, 1059481190u, 3212836864u, 1051092582u, 0, SCALBF_TOLERANCE, 0},
+{33, 1060320051u, 3212836864u, 1051931443u, 0, SCALBF_TOLERANCE, 0},
+{34, 1061158912u, 3212836864u, 1052770304u, 0, SCALBF_TOLERANCE, 0},
+{35, 1061997773u, 3212836864u, 1053609165u, 0, SCALBF_TOLERANCE, 0},
+{36, 1062836634u, 3212836864u, 1054448026u, 0, SCALBF_TOLERANCE, 0},
+{37, 1063675494u, 3212836864u, 1055286886u, 0, SCALBF_TOLERANCE, 0},
+{38, 1064514355u, 3212836864u, 1056125747u, 0, SCALBF_TOLERANCE, 0},
+{39, 1341514497u, 3466051188u, 0u, 0, SCALBF_TOLERANCE, 0},
+{40, 1001673627u, 3462631271u, 0u, 0, SCALBF_TOLERANCE, 0},
+{41, 3048866608u, 3449209899u, 2147483648u, 0, SCALBF_TOLERANCE, 0},
+{42, 1333134799u, 1338107877u, 2139095040u, 0, SCALBF_TOLERANCE, 0},
+{43, 1187847971u, 1317663644u, 2139095040u, 0, SCALBF_TOLERANCE, 0},
+{44, 3444653659u, 1279248024u, 4286578688u, 0, SCALBF_TOLERANCE, 0},
+{45, 974547519u, 3475164509u, 0u, 0, SCALBF_TOLERANCE, 0},
+{46, 3182301130u, 3460764044u, 2147483648u, 0, SCALBF_TOLERANCE, 0},
+{47, 3417964312u, 1321337529u, 4286578688u, 0, SCALBF_TOLERANCE, 0},
+{48, 1148867223u, 1256486202u, 2139095040u, 0, SCALBF_TOLERANCE, 0},
+{49, 3319315516u, 3422089012u, 2147483648u, 0, SCALBF_TOLERANCE, 0},
+{50, 1134593658u, 3456812581u, 0u, 0, SCALBF_TOLERANCE, 0},
+{51, 3316278408u, 3455589207u, 2147483648u, 0, SCALBF_TOLERANCE, 0},
+{52, 3131791114u, 3408392958u, 2147483648u, 0, SCALBF_TOLERANCE, 0},
+{53, 881280146u, 3421884736u, 0u, 0, SCALBF_TOLERANCE, 0},
+{54, 1268194719u, 1332489410u, 2139095040u, 0, SCALBF_TOLERANCE, 0},
+{55, 1133420220u, 1245770860u, 2139095040u, 0, SCALBF_TOLERANCE, 0},
+{56, 3295996963u, 3453334307u, 2147483648u, 0, SCALBF_TOLERANCE, 0},
+{57, 3424831780u, 1304806106u, 4286578688u, 0, SCALBF_TOLERANCE, 0},
+{58, 1257596246u, 3420832544u, 0u, 0, SCALBF_TOLERANCE, 0},
+{59, 3235326590u, 1271705594u, 4286578688u, 0, SCALBF_TOLERANCE, 0},
+{60, 1106502045u, 1290849316u, 2139095040u, 0, SCALBF_TOLERANCE, 0},
+{61, 3427296372u, 3455289118u, 2147483648u, 0, SCALBF_TOLERANCE, 0},
+{62, 1198917460u, 1327195159u, 2139095040u, 0, SCALBF_TOLERANCE, 0},
+{63, 3114686212u, 3476082461u, 2147483648u, 0, SCALBF_TOLERANCE, 0},
+{64, 1165195428u, 3390323168u, 0u, 0, SCALBF_TOLERANCE, 0},
+{65, 3275973009u, 3450721670u, 2147483648u, 0, SCALBF_TOLERANCE, 0},
+{66, 3391162308u, 1291220039u, 4286578688u, 0, SCALBF_TOLERANCE, 0},
+{67, 1089986803u, 3462160118u, 0u, 0, SCALBF_TOLERANCE, 0},
+{68, 3262169538u, 1268270462u, 4286578688u, 0, SCALBF_TOLERANCE, 0},
+{69, 3404372005u, 3450484255u, 2147483648u, 0, SCALBF_TOLERANCE, 0},
+{70, 999985470u, 3409354318u, 0u, 0, SCALBF_TOLERANCE, 0},
+{71, 3132541814u, 3444521949u, 2147483648u, 0, SCALBF_TOLERANCE, 0},
+{72, 1164046161u, 3440635788u, 0u, 0, SCALBF_TOLERANCE, 0},
+{73, 3469748379u, 3412765608u, 2147483648u, 0, SCALBF_TOLERANCE, 0},
+{74, 948775569u, 3485444126u, 0u, 0, SCALBF_TOLERANCE, 0},
+{75, 3157534378u, 3451674717u, 2147483648u, 0, SCALBF_TOLERANCE, 0},
+{76, 3162548604u, 3461790298u, 2147483648u, 0, SCALBF_TOLERANCE, 0},
+{77, 3424264117u, 3434026174u, 2147483648u, 0, SCALBF_TOLERANCE, 0},
+{78, 1311706596u, 1254918706u, 2139095040u, 0, SCALBF_TOLERANCE, 0},
+{79, 1337315179u, 3461361185u, 0u, 0, SCALBF_TOLERANCE, 0},
+{80, 3337499209u, 1226297264u, 4286578688u, 0, SCALBF_TOLERANCE, 0},
+{81, 3220979495u, 3429223871u, 2147483648u, 0, SCALBF_TOLERANCE, 0},
+{82, 1017239798u, 3438501281u, 0u, 0, SCALBF_TOLERANCE, 0},
+{83, 3092982276u, 3445282331u, 2147483648u, 0, SCALBF_TOLERANCE, 0},
+{84, 1168098747u, 1316854744u, 2139095040u, 0, SCALBF_TOLERANCE, 0},
+{85, 3301009024u, 3406174560u, 2147483648u, 0, SCALBF_TOLERANCE, 0},
+{86, 1032920919u, 3449126417u, 0u, 0, SCALBF_TOLERANCE, 0},
+{87, 3388153589u, 3426245389u, 2147483648u, 0, SCALBF_TOLERANCE, 0},
+{88, 1258369714u, 3462258576u, 0u, 0, SCALBF_TOLERANCE, 0},
+{89, 3462285635u, 3444030332u, 2147483648u, 0, SCALBF_TOLERANCE, 0},
+{90, 3131219358u, 3471261157u, 2147483648u, 0, SCALBF_TOLERANCE, 0},
+{91, 3418753236u, 3481843070u, 2147483648u, 0, SCALBF_TOLERANCE, 0},
+{92, 1277417964u, 3487506626u, 0u, 0, SCALBF_TOLERANCE, 0},
+{93, 3320923228u, 3464544249u, 2147483648u, 0, SCALBF_TOLERANCE, 0},
+{94, 1337400405u, 3488844154u, 0u, 0, SCALBF_TOLERANCE, 0},
+{95, 1215968622u, 3469884568u, 0u, 0, SCALBF_TOLERANCE, 0},
+{96, 3091024506u, 3456196859u, 2147483648u, 0, SCALBF_TOLERANCE, 0},
+{97, 1157186482u, 1288722647u, 2139095040u, 0, SCALBF_TOLERANCE, 0},
+{98, 3477008113u, 1331845018u, 4286578688u, 0, SCALBF_TOLERANCE, 0},
+{99, 3292127294u, 3409957764u, 2147483648u, 0, SCALBF_TOLERANCE, 0},
+{100, 1160162706u, 1264067367u, 2139095040u, 0, SCALBF_TOLERANCE, 0},
+{101, 1096155623u, 1256423752u, 2139095040u, 0, SCALBF_TOLERANCE, 0},
+{102, 3475052219u, 1284049853u, 4286578688u, 0, SCALBF_TOLERANCE, 0},
+{103, 3154720153u, 3443720494u, 2147483648u, 0, SCALBF_TOLERANCE, 0},
+{104, 3108347547u, 3434003435u, 2147483648u, 0, SCALBF_TOLERANCE, 0},
+{105, 3272661536u, 3461799138u, 2147483648u, 0, SCALBF_TOLERANCE, 0},
+{106, 3086068902u, 3484245751u, 2147483648u, 0, SCALBF_TOLERANCE, 0},
+{107, 1086717248u, 3423795374u, 0u, 0, SCALBF_TOLERANCE, 0},
+{108, 1200927971u, 1317167489u, 2139095040u, 0, SCALBF_TOLERANCE, 0},
+{109, 3326858092u, 3452602832u, 2147483648u, 0, SCALBF_TOLERANCE, 0},
+{110, 3316611992u, 3394732912u, 2147483648u, 0, SCALBF_TOLERANCE, 0},
+{111, 3066654389u, 3443934204u, 2147483648u, 0, SCALBF_TOLERANCE, 0},
+{112, 3295326432u, 1313396175u, 4286578688u, 0, SCALBF_TOLERANCE, 0},
+{113, 3455131757u, 1260217257u, 4286578688u, 0, SCALBF_TOLERANCE, 0},
+{114, 3157626955u, 3483653298u, 2147483648u, 0, SCALBF_TOLERANCE, 0},
+{115, 1105291533u, 3482971524u, 0u, 0, SCALBF_TOLERANCE, 0},
+{116, 3370691006u, 1295870514u, 4286578688u, 0, SCALBF_TOLERANCE, 0},
+{117, 3335212901u, 3486414589u, 2147483648u, 0, SCALBF_TOLERANCE, 0},
+{118, 3283471961u, 1260093226u, 4286578688u, 0, SCALBF_TOLERANCE, 0},
+{119, 1288901567u, 1296370667u, 2139095040u, 0, SCALBF_TOLERANCE, 0},
+{120, 3100289712u, 3456334210u, 2147483648u, 0, SCALBF_TOLERANCE, 0},
+{121, 3375507013u, 1306310823u, 4286578688u, 0, SCALBF_TOLERANCE, 0},
+{122, 1258114435u, 1291336083u, 2139095040u, 0, SCALBF_TOLERANCE, 0},
+{123, 3445262427u, 3465211174u, 2147483648u, 0, SCALBF_TOLERANCE, 0},
+{124, 1102061604u, 3424449935u, 0u, 0, SCALBF_TOLERANCE, 0},
+{125, 1284174954u, 3436881197u, 0u, 0, SCALBF_TOLERANCE, 0},
+{126, 1306695905u, 1292690378u, 2139095040u, 0, SCALBF_TOLERANCE, 0},
+{127, 903129873u, 3416864271u, 0u, 0, SCALBF_TOLERANCE, 0},
+{128, 1208345407u, 1254181270u, 2139095040u, 0, SCALBF_TOLERANCE, 0},
+{129, 1258634105u, 1247426200u, 2139095040u, 0, SCALBF_TOLERANCE, 0},
+{130, 1248478509u, 1287895126u, 2139095040u, 0, SCALBF_TOLERANCE, 0},
+{131, 1153863988u, 3430539165u, 0u, 0, SCALBF_TOLERANCE, 0},
+{132, 3319723279u, 3414482416u, 2147483648u, 0, SCALBF_TOLERANCE, 0},
+{133, 3237813668u, 3441016803u, 2147483648u, 0, SCALBF_TOLERANCE, 0},
+{134, 1315857601u, 3487600045u, 0u, 0, SCALBF_TOLERANCE, 0},
+{135, 1028355074u, 3442294040u, 0u, 0, SCALBF_TOLERANCE, 0},
+{136, 3392827417u, 1277961150u, 4286578688u, 0, SCALBF_TOLERANCE, 0},
+{137, 1161241793u, 1328003707u, 2139095040u, 0, SCALBF_TOLERANCE, 0},
+{138, 1171318485u, 3374409104u, 0u, 0, SCALBF_TOLERANCE, 0},
+{139, 944050180u, 3452557879u, 0u, 0, SCALBF_TOLERANCE, 0},
+{140, 1155775526u, 1255814444u, 2139095040u, 0, SCALBF_TOLERANCE, 0},
+{141, 1234491880u, 3408568717u, 0u, 0, SCALBF_TOLERANCE, 0}
+
+// AUTOMATICALLY GENERATED VECTORS STOP
+
+};
+
+#endif // CYGONCE_LIBM_SCABNF_H multiple inclusion protection
+
+// EOF scalbf.h
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/scalbnf.c b/ecos/packages/language/c/libm/current/tests/vectors/scalbnf.c
new file mode 100644
index 0000000..662a9d4
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/scalbnf.c
@@ -0,0 +1,115 @@
+//===========================================================================
+//
+// scalbnf.c
+//
+// Test of scalbnf() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// Declarations for test system:
+//
+// TESTCASE_TYPE=CYG_TEST_MODULE
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include <cyg/infra/testcase.h> // Test infrastructure
+#include <math.h> // Header for this package
+#include <sys/ieeefp.h> // Cyg_libm_ieee_float_shape_type
+#include "vectors/vector_support_float.h"// extra support for math tests
+
+#include "vectors/scalbnf.h"
+
+// FUNCTIONS
+
+static void
+test( CYG_ADDRWORD data )
+{
+ cyg_ucount32 vec_size;
+ cyg_bool ret;
+
+ vec_size = sizeof(scalbnf_vec) / sizeof(Cyg_libm_test_float_vec_t);
+ ret = doTestVecFloat( (CYG_ADDRWORD) &scalbnf, CYG_LIBM_TEST_VEC_FLOAT,
+ CYG_LIBM_TEST_VEC_INT, CYG_LIBM_TEST_VEC_FLOAT,
+ &scalbnf_vec[0], vec_size );
+
+ if (ret==true)
+ {
+ CYG_TEST_PASS("scalbnf() is stable");
+ } // if
+ else
+ {
+ CYG_TEST_FAIL("scalbnf() failed tests");
+ } // else
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for Math "
+ "library scalbnf() function");
+} // test()
+
+
+int
+main(int argc, char *argv[])
+{
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for Math library "
+ "scalbnf() function");
+
+ START_TEST( test );
+
+ CYG_TEST_PASS_FINISH("Testing is not applicable to this configuration");
+
+} // main()
+
+
+// EOF scalbnf.c
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/scalbnf.h b/ecos/packages/language/c/libm/current/tests/vectors/scalbnf.h
new file mode 100644
index 0000000..c138b13
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/scalbnf.h
@@ -0,0 +1,667 @@
+#ifndef CYGONCE_LIBM_SCABNF_H
+#define CYGONCE_LIBM_SCABNF_H
+//===========================================================================
+//
+// scalbnf.h
+//
+// Test vectors for testing of scalbnf() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage: #include "vectors/scalbnf.h"
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include "vectors/vector_support_float.h"// extra support for math tests
+
+#define SCALBNF_TOLERANCE 1.0E-04
+
+static const Cyg_libm_test_float_vec_t scalbnf_vec[] = {
+
+// AUTOMATICALLY GENERATED VECTORS START
+
+{0, 3196650934u, 0u, 3196650934u, 0, SCALBNF_TOLERANCE, 0},
+{1, 1224242132u, 0u, 1224242132u, 0, SCALBNF_TOLERANCE, 0},
+{2, 1198712763u, 0u, 1198712763u, 0, SCALBNF_TOLERANCE, 0},
+{3, 3159309973u, 0u, 3159309973u, 0, SCALBNF_TOLERANCE, 0},
+{4, 954173073u, 0u, 954173073u, 0, SCALBNF_TOLERANCE, 0},
+{5, 3090780435u, 0u, 3090780435u, 0, SCALBNF_TOLERANCE, 0},
+{6, 966554515u, 4294967290u, 916222867u, 0, SCALBNF_TOLERANCE, 0},
+{7, 1166191415u, 0u, 1166191415u, 0, SCALBNF_TOLERANCE, 0},
+{8, 1234419246u, 0u, 1234419246u, 0, SCALBNF_TOLERANCE, 0},
+{9, 1302107128u, 4294492157u, 0u, 0, SCALBNF_TOLERANCE, 0},
+{10, 1052801068u, 0u, 1052801068u, 0, SCALBNF_TOLERANCE, 0},
+{11, 1060849628u, 0u, 1060849628u, 0, SCALBNF_TOLERANCE, 0},
+{12, 3484320003u, 0u, 3484320003u, 0, SCALBNF_TOLERANCE, 0},
+{13, 1167223673u, 0u, 1167223673u, 0, SCALBNF_TOLERANCE, 0},
+{14, 968192794u, 0u, 968192794u, 0, SCALBNF_TOLERANCE, 0},
+{15, 3122346862u, 48u, 3525000046u, 0, SCALBNF_TOLERANCE, 0},
+{16, 906701409u, 0u, 906701409u, 0, SCALBNF_TOLERANCE, 0},
+{17, 3231467496u, 0u, 3231467496u, 0, SCALBNF_TOLERANCE, 0},
+{18, 1341514497u, 3022046720u, 0u, 0, SCALBNF_TOLERANCE, 0},
+{19, 1272351391u, 4294363968u, 0u, 0, SCALBNF_TOLERANCE, 0},
+{20, 940236348u, 4294965375u, 0u, 0, SCALBNF_TOLERANCE, 0},
+{21, 3251541546u, 0u, 3251541546u, 0, SCALBNF_TOLERANCE, 0},
+{22, 3110358400u, 0u, 3110358400u, 0, SCALBNF_TOLERANCE, 0},
+{23, 3371863479u, 0u, 3371863479u, 0, SCALBNF_TOLERANCE, 0},
+{24, 3204069187u, 0u, 3204069187u, 0, SCALBNF_TOLERANCE, 0},
+{25, 1306460502u, 0u, 1306460502u, 0, SCALBNF_TOLERANCE, 0},
+{26, 1197542187u, 0u, 1197542187u, 0, SCALBNF_TOLERANCE, 0},
+{27, 1184239996u, 4294967294u, 1167462780u, 0, SCALBNF_TOLERANCE, 0},
+{28, 1001673627u, 3340510784u, 0u, 0, SCALBNF_TOLERANCE, 0},
+{29, 941796645u, 0u, 941796645u, 0, SCALBNF_TOLERANCE, 0},
+{30, 3287199470u, 0u, 3287199470u, 0, SCALBNF_TOLERANCE, 0},
+{31, 1143233714u, 0u, 1143233714u, 0, SCALBNF_TOLERANCE, 0},
+{32, 3143717025u, 4294967290u, 3093385377u, 0, SCALBNF_TOLERANCE, 0},
+{33, 3240298487u, 0u, 3240298487u, 0, SCALBNF_TOLERANCE, 0},
+{34, 1288902137u, 0u, 1288902137u, 0, SCALBNF_TOLERANCE, 0},
+{35, 3329354473u, 0u, 3329354473u, 0, SCALBNF_TOLERANCE, 0},
+{36, 1309289088u, 0u, 1309289088u, 0, SCALBNF_TOLERANCE, 0},
+{37, 3405585402u, 0u, 3405585402u, 0, SCALBNF_TOLERANCE, 0},
+{38, 3106647724u, 0u, 3106647724u, 0, SCALBNF_TOLERANCE, 0},
+{39, 1106778573u, 4294965325u, 0u, 0, SCALBNF_TOLERANCE, 0},
+{40, 1140567947u, 0u, 1140567947u, 0, SCALBNF_TOLERANCE, 0},
+{41, 1238569473u, 0u, 1238569473u, 0, SCALBNF_TOLERANCE, 0},
+{42, 1175011025u, 0u, 1175011025u, 0, SCALBNF_TOLERANCE, 0},
+{43, 3058097085u, 0u, 3058097085u, 0, SCALBNF_TOLERANCE, 0},
+{44, 3107252546u, 1u, 3115641154u, 0, SCALBNF_TOLERANCE, 0},
+{45, 3096032662u, 0u, 3096032662u, 0, SCALBNF_TOLERANCE, 0},
+{46, 3197942144u, 0u, 3197942144u, 0, SCALBNF_TOLERANCE, 0},
+{47, 3403348556u, 0u, 3403348556u, 0, SCALBNF_TOLERANCE, 0},
+{48, 1136411063u, 82u, 1824276919u, 0, SCALBNF_TOLERANCE, 0},
+{49, 3340615780u, 0u, 3340615780u, 0, SCALBNF_TOLERANCE, 0},
+{50, 998567360u, 0u, 998567360u, 0, SCALBNF_TOLERANCE, 0},
+{51, 989687421u, 4294414202u, 0u, 0, SCALBNF_TOLERANCE, 0},
+{52, 1152956913u, 0u, 1152956913u, 0, SCALBNF_TOLERANCE, 0},
+{53, 892922651u, 4294392467u, 0u, 0, SCALBNF_TOLERANCE, 0},
+{54, 1307091856u, 24u, 1508418448u, 0, SCALBNF_TOLERANCE, 0},
+{55, 1142167709u, 13u, 1251219613u, 0, SCALBNF_TOLERANCE, 0},
+{56, 3426232834u, 0u, 3426232834u, 0, SCALBNF_TOLERANCE, 0},
+{57, 3368566779u, 0u, 3368566779u, 0, SCALBNF_TOLERANCE, 0},
+{58, 1138741813u, 0u, 1138741813u, 0, SCALBNF_TOLERANCE, 0},
+{59, 982950501u, 0u, 982950501u, 0, SCALBNF_TOLERANCE, 0},
+{60, 1142981585u, 0u, 1142981585u, 0, SCALBNF_TOLERANCE, 0},
+{61, 3347165962u, 0u, 3347165962u, 0, SCALBNF_TOLERANCE, 0},
+{62, 1009535440u, 4293825695u, 0u, 0, SCALBNF_TOLERANCE, 0},
+{63, 3126820946u, 2u, 3143598162u, 0, SCALBNF_TOLERANCE, 0},
+{64, 3473956030u, 0u, 3473956030u, 0, SCALBNF_TOLERANCE, 0},
+{65, 3349098349u, 0u, 3349098349u, 0, SCALBNF_TOLERANCE, 0},
+{66, 3152729489u, 0u, 3152729489u, 0, SCALBNF_TOLERANCE, 0},
+{67, 945568720u, 4294963204u, 0u, 0, SCALBNF_TOLERANCE, 0},
+{68, 3345489836u, 36u, 3647479724u, 0, SCALBNF_TOLERANCE, 0},
+{69, 976791751u, 4294967292u, 943237319u, 0, SCALBNF_TOLERANCE, 0},
+{70, 1004442355u, 0u, 1004442355u, 0, SCALBNF_TOLERANCE, 0},
+{71, 1108485380u, 0u, 1108485380u, 0, SCALBNF_TOLERANCE, 0},
+{72, 1061834641u, 0u, 1061834641u, 0, SCALBNF_TOLERANCE, 0},
+{73, 1087189715u, 0u, 1087189715u, 0, SCALBNF_TOLERANCE, 0},
+{74, 1000611335u, 0u, 1000611335u, 0, SCALBNF_TOLERANCE, 0},
+{75, 3466188568u, 0u, 3466188568u, 0, SCALBNF_TOLERANCE, 0},
+{76, 3072456205u, 0u, 3072456205u, 0, SCALBNF_TOLERANCE, 0},
+{77, 1315030230u, 4294939294u, 0u, 0, SCALBNF_TOLERANCE, 0},
+{78, 1134593658u, 3712906944u, 0u, 0, SCALBNF_TOLERANCE, 0},
+{79, 977281449u, 0u, 977281449u, 0, SCALBNF_TOLERANCE, 0},
+{80, 1086198791u, 0u, 1086198791u, 0, SCALBNF_TOLERANCE, 0},
+{81, 1255152035u, 0u, 1255152035u, 0, SCALBNF_TOLERANCE, 0},
+{82, 1135271264u, 4294966890u, 0u, 0, SCALBNF_TOLERANCE, 0},
+{83, 1094190727u, 0u, 1094190727u, 0, SCALBNF_TOLERANCE, 0},
+{84, 1294665325u, 0u, 1294665325u, 0, SCALBNF_TOLERANCE, 0},
+{85, 1036608591u, 0u, 1036608591u, 0, SCALBNF_TOLERANCE, 0},
+{86, 3229998064u, 0u, 3229998064u, 0, SCALBNF_TOLERANCE, 0},
+{87, 3439134022u, 0u, 3439134022u, 0, SCALBNF_TOLERANCE, 0},
+{88, 1325668223u, 0u, 1325668223u, 0, SCALBNF_TOLERANCE, 0},
+{89, 1092037607u, 0u, 1092037607u, 0, SCALBNF_TOLERANCE, 0},
+{90, 3295436768u, 0u, 3295436768u, 0, SCALBNF_TOLERANCE, 0},
+{91, 1151984049u, 0u, 1151984049u, 0, SCALBNF_TOLERANCE, 0},
+{92, 1129287043u, 0u, 1129287043u, 0, SCALBNF_TOLERANCE, 0},
+{93, 1243664530u, 0u, 1243664530u, 0, SCALBNF_TOLERANCE, 0},
+{94, 950829092u, 0u, 950829092u, 0, SCALBNF_TOLERANCE, 0},
+{95, 1115471979u, 0u, 1115471979u, 0, SCALBNF_TOLERANCE, 0},
+{96, 3351092088u, 0u, 3351092088u, 0, SCALBNF_TOLERANCE, 0},
+{97, 3241193975u, 0u, 3241193975u, 0, SCALBNF_TOLERANCE, 0},
+{98, 1030934236u, 0u, 1030934236u, 0, SCALBNF_TOLERANCE, 0},
+{99, 1025254314u, 0u, 1025254314u, 0, SCALBNF_TOLERANCE, 0},
+{100, 1110545760u, 4294967286u, 1026659680u, 0, SCALBNF_TOLERANCE, 0},
+{101, 3180213739u, 37u, 3490592235u, 0, SCALBNF_TOLERANCE, 0},
+{102, 3361976590u, 0u, 3361976590u, 0, SCALBNF_TOLERANCE, 0},
+{103, 881280146u, 4262747520u, 0u, 0, SCALBNF_TOLERANCE, 0},
+{104, 1304154705u, 0u, 1304154705u, 0, SCALBNF_TOLERANCE, 0},
+{105, 3264443610u, 4294967294u, 3247666394u, 0, SCALBNF_TOLERANCE, 0},
+{106, 3374550627u, 0u, 3374550627u, 0, SCALBNF_TOLERANCE, 0},
+{107, 1161858787u, 0u, 1161858787u, 0, SCALBNF_TOLERANCE, 0},
+{108, 3325193181u, 0u, 3325193181u, 0, SCALBNF_TOLERANCE, 0},
+{109, 3115275450u, 0u, 3115275450u, 0, SCALBNF_TOLERANCE, 0},
+{110, 3116607482u, 4294967294u, 3099830266u, 0, SCALBNF_TOLERANCE, 0},
+{111, 3187892415u, 0u, 3187892415u, 0, SCALBNF_TOLERANCE, 0},
+{112, 1189120494u, 0u, 1189120494u, 0, SCALBNF_TOLERANCE, 0},
+{113, 889030794u, 0u, 889030794u, 0, SCALBNF_TOLERANCE, 0},
+{114, 1323529208u, 0u, 1323529208u, 0, SCALBNF_TOLERANCE, 0},
+{115, 3465768388u, 0u, 3465768388u, 0, SCALBNF_TOLERANCE, 0},
+{116, 3426099899u, 87u, 4155908795u, 0, SCALBNF_TOLERANCE, 0},
+{117, 1065798296u, 0u, 1065798296u, 0, SCALBNF_TOLERANCE, 0},
+{118, 3328989444u, 0u, 3328989444u, 0, SCALBNF_TOLERANCE, 0},
+{119, 3357819026u, 0u, 3357819026u, 0, SCALBNF_TOLERANCE, 0},
+{120, 1273397670u, 0u, 1273397670u, 0, SCALBNF_TOLERANCE, 0},
+{121, 1257596246u, 4264851904u, 0u, 0, SCALBNF_TOLERANCE, 0},
+{122, 1051773536u, 0u, 1051773536u, 0, SCALBNF_TOLERANCE, 0},
+{123, 3294752507u, 0u, 3294752507u, 0, SCALBNF_TOLERANCE, 0},
+{124, 3424848725u, 0u, 3424848725u, 0, SCALBNF_TOLERANCE, 0},
+{125, 1090870906u, 4294966393u, 0u, 0, SCALBNF_TOLERANCE, 0},
+{126, 1272325814u, 0u, 1272325814u, 0, SCALBNF_TOLERANCE, 0},
+{127, 3359508271u, 0u, 3359508271u, 0, SCALBNF_TOLERANCE, 0},
+{128, 1137854355u, 4294941607u, 0u, 0, SCALBNF_TOLERANCE, 0},
+{129, 3440773058u, 0u, 3440773058u, 0, SCALBNF_TOLERANCE, 0},
+{130, 3101598400u, 0u, 3101598400u, 0, SCALBNF_TOLERANCE, 0},
+{131, 3437062994u, 0u, 3437062994u, 0, SCALBNF_TOLERANCE, 0},
+{132, 3303035472u, 0u, 3303035472u, 0, SCALBNF_TOLERANCE, 0},
+{133, 1053698677u, 4294966907u, 0u, 0, SCALBNF_TOLERANCE, 0},
+{134, 3037541131u, 5u, 3079484171u, 0, SCALBNF_TOLERANCE, 0},
+{135, 3458934263u, 0u, 3458934263u, 0, SCALBNF_TOLERANCE, 0},
+{136, 1065761827u, 4294943781u, 0u, 0, SCALBNF_TOLERANCE, 0},
+{137, 3025843188u, 0u, 3025843188u, 0, SCALBNF_TOLERANCE, 0},
+{138, 926665223u, 0u, 926665223u, 0, SCALBNF_TOLERANCE, 0},
+{139, 1199816046u, 0u, 1199816046u, 0, SCALBNF_TOLERANCE, 0},
+{140, 3333779015u, 0u, 3333779015u, 0, SCALBNF_TOLERANCE, 0},
+{141, 948398145u, 4294967288u, 881289281u, 0, SCALBNF_TOLERANCE, 0},
+{142, 3164749613u, 0u, 3164749613u, 0, SCALBNF_TOLERANCE, 0},
+{143, 3118883815u, 0u, 3118883815u, 0, SCALBNF_TOLERANCE, 0},
+{144, 3226990408u, 45u, 3604477768u, 0, SCALBNF_TOLERANCE, 0},
+{145, 3117098218u, 115u, 4081788138u, 0, SCALBNF_TOLERANCE, 0},
+{146, 1283624229u, 0u, 1283624229u, 0, SCALBNF_TOLERANCE, 0},
+{147, 970649315u, 3u, 995815139u, 0, SCALBNF_TOLERANCE, 0},
+{148, 959776291u, 4294967028u, 0u, 0, SCALBNF_TOLERANCE, 0},
+{149, 1270734970u, 4294829480u, 0u, 0, SCALBNF_TOLERANCE, 0},
+{150, 3454816067u, 0u, 3454816067u, 0, SCALBNF_TOLERANCE, 0},
+{151, 1157598381u, 4294964293u, 0u, 0, SCALBNF_TOLERANCE, 0},
+{152, 3335234513u, 0u, 3335234513u, 0, SCALBNF_TOLERANCE, 0},
+{153, 1279489061u, 0u, 1279489061u, 0, SCALBNF_TOLERANCE, 0},
+{154, 3143920719u, 0u, 3143920719u, 0, SCALBNF_TOLERANCE, 0},
+{155, 1233171235u, 0u, 1233171235u, 0, SCALBNF_TOLERANCE, 0},
+{156, 1148920078u, 0u, 1148920078u, 0, SCALBNF_TOLERANCE, 0},
+{157, 3064988156u, 4294967292u, 3031433724u, 0, SCALBNF_TOLERANCE, 0},
+{158, 3219949483u, 0u, 3219949483u, 0, SCALBNF_TOLERANCE, 0},
+{159, 1207502108u, 4292985650u, 0u, 0, SCALBNF_TOLERANCE, 0},
+{160, 1000014431u, 0u, 1000014431u, 0, SCALBNF_TOLERANCE, 0},
+{161, 3161756316u, 0u, 3161756316u, 0, SCALBNF_TOLERANCE, 0},
+{162, 1234530539u, 3u, 1259696363u, 0, SCALBNF_TOLERANCE, 0},
+{163, 3306328852u, 87u, 4036137748u, 0, SCALBNF_TOLERANCE, 0},
+{164, 1131927531u, 0u, 1131927531u, 0, SCALBNF_TOLERANCE, 0},
+{165, 3449879391u, 0u, 3449879391u, 0, SCALBNF_TOLERANCE, 0},
+{166, 970094304u, 4294911386u, 0u, 0, SCALBNF_TOLERANCE, 0},
+{167, 1125551064u, 4294949017u, 0u, 0, SCALBNF_TOLERANCE, 0},
+{168, 3201603336u, 0u, 3201603336u, 0, SCALBNF_TOLERANCE, 0},
+{169, 921940707u, 0u, 921940707u, 0, SCALBNF_TOLERANCE, 0},
+{170, 1091906532u, 0u, 1091906532u, 0, SCALBNF_TOLERANCE, 0},
+{171, 1276853215u, 0u, 1276853215u, 0, SCALBNF_TOLERANCE, 0},
+{172, 3360170117u, 0u, 3360170117u, 0, SCALBNF_TOLERANCE, 0},
+{173, 1064364381u, 0u, 1064364381u, 0, SCALBNF_TOLERANCE, 0},
+{174, 1268744779u, 4294952694u, 0u, 0, SCALBNF_TOLERANCE, 0},
+{175, 1165195428u, 4292538760u, 0u, 0, SCALBNF_TOLERANCE, 0},
+{176, 3044092739u, 30u, 3295750979u, 0, SCALBNF_TOLERANCE, 0},
+{177, 3247790039u, 0u, 3247790039u, 0, SCALBNF_TOLERANCE, 0},
+{178, 3215244648u, 4u, 3248799080u, 0, SCALBNF_TOLERANCE, 0},
+{179, 3095275931u, 0u, 3095275931u, 0, SCALBNF_TOLERANCE, 0},
+{180, 3059688264u, 77u, 3705611080u, 0, SCALBNF_TOLERANCE, 0},
+{181, 1212717473u, 0u, 1212717473u, 0, SCALBNF_TOLERANCE, 0},
+{182, 3028857014u, 0u, 3028857014u, 0, SCALBNF_TOLERANCE, 0},
+{183, 1044867873u, 4294528232u, 0u, 0, SCALBNF_TOLERANCE, 0},
+{184, 1089986803u, 3370664576u, 0u, 0, SCALBNF_TOLERANCE, 0},
+{185, 1296314700u, 0u, 1296314700u, 0, SCALBNF_TOLERANCE, 0},
+{186, 1251462432u, 0u, 1251462432u, 0, SCALBNF_TOLERANCE, 0},
+{187, 3485236902u, 0u, 3485236902u, 0, SCALBNF_TOLERANCE, 0},
+{188, 3080852256u, 0u, 3080852256u, 0, SCALBNF_TOLERANCE, 0},
+{189, 1022211242u, 0u, 1022211242u, 0, SCALBNF_TOLERANCE, 0},
+{190, 884661176u, 0u, 884661176u, 0, SCALBNF_TOLERANCE, 0},
+{191, 989762529u, 4294733601u, 0u, 0, SCALBNF_TOLERANCE, 0},
+{192, 1295475718u, 0u, 1295475718u, 0, SCALBNF_TOLERANCE, 0},
+{193, 1002632518u, 4294950696u, 0u, 0, SCALBNF_TOLERANCE, 0},
+{194, 3158912530u, 0u, 3158912530u, 0, SCALBNF_TOLERANCE, 0},
+{195, 3138037576u, 0u, 3138037576u, 0, SCALBNF_TOLERANCE, 0},
+{196, 999985470u, 4282999218u, 0u, 0, SCALBNF_TOLERANCE, 0},
+{197, 1189421739u, 0u, 1189421739u, 0, SCALBNF_TOLERANCE, 0},
+{198, 3075182644u, 0u, 3075182644u, 0, SCALBNF_TOLERANCE, 0},
+{199, 1164046161u, 4139845440u, 0u, 0, SCALBNF_TOLERANCE, 0},
+{200, 1292596266u, 0u, 1292596266u, 0, SCALBNF_TOLERANCE, 0},
+{201, 1314644642u, 0u, 1314644642u, 0, SCALBNF_TOLERANCE, 0},
+{202, 3399813173u, 0u, 3399813173u, 0, SCALBNF_TOLERANCE, 0},
+{203, 1034611395u, 0u, 1034611395u, 0, SCALBNF_TOLERANCE, 0},
+{204, 1181604787u, 4294717096u, 0u, 0, SCALBNF_TOLERANCE, 0},
+{205, 3059042077u, 0u, 3059042077u, 0, SCALBNF_TOLERANCE, 0},
+{206, 1043691622u, 4288164501u, 0u, 0, SCALBNF_TOLERANCE, 0},
+{207, 1314588083u, 0u, 1314588083u, 0, SCALBNF_TOLERANCE, 0},
+{208, 3141533334u, 0u, 3141533334u, 0, SCALBNF_TOLERANCE, 0},
+{209, 3400949680u, 0u, 3400949680u, 0, SCALBNF_TOLERANCE, 0},
+{210, 1110424755u, 0u, 1110424755u, 0, SCALBNF_TOLERANCE, 0},
+{211, 3189917167u, 0u, 3189917167u, 0, SCALBNF_TOLERANCE, 0},
+{212, 969804941u, 4294836255u, 0u, 0, SCALBNF_TOLERANCE, 0},
+{213, 934308144u, 0u, 934308144u, 0, SCALBNF_TOLERANCE, 0},
+{214, 1156767533u, 7u, 1215487789u, 0, SCALBNF_TOLERANCE, 0},
+{215, 994934087u, 0u, 994934087u, 0, SCALBNF_TOLERANCE, 0},
+{216, 3185240099u, 122u, 4208650275u, 0, SCALBNF_TOLERANCE, 0},
+{217, 1212129651u, 0u, 1212129651u, 0, SCALBNF_TOLERANCE, 0},
+{218, 3125775254u, 0u, 3125775254u, 0, SCALBNF_TOLERANCE, 0},
+{219, 1037464105u, 0u, 1037464105u, 0, SCALBNF_TOLERANCE, 0},
+{220, 918212457u, 0u, 918212457u, 0, SCALBNF_TOLERANCE, 0},
+{221, 1337315179u, 3421796288u, 0u, 0, SCALBNF_TOLERANCE, 0},
+{222, 1131358407u, 4294955130u, 0u, 0, SCALBNF_TOLERANCE, 0},
+{223, 1156517523u, 4294914801u, 0u, 0, SCALBNF_TOLERANCE, 0},
+{224, 3210802820u, 0u, 3210802820u, 0, SCALBNF_TOLERANCE, 0},
+{225, 3468429030u, 4294967266u, 3216770790u, 0, SCALBNF_TOLERANCE, 0},
+{226, 3055299953u, 0u, 3055299953u, 0, SCALBNF_TOLERANCE, 0},
+{227, 959956547u, 0u, 959956547u, 0, SCALBNF_TOLERANCE, 0},
+{228, 1039917375u, 117u, 2021384511u, 0, SCALBNF_TOLERANCE, 0},
+{229, 1311016004u, 4294941884u, 0u, 0, SCALBNF_TOLERANCE, 0},
+{230, 1128016396u, 27u, 1354508812u, 0, SCALBNF_TOLERANCE, 0},
+{231, 3210335769u, 0u, 3210335769u, 0, SCALBNF_TOLERANCE, 0},
+{232, 1206054701u, 0u, 1206054701u, 0, SCALBNF_TOLERANCE, 0},
+{233, 1213609983u, 0u, 1213609983u, 0, SCALBNF_TOLERANCE, 0},
+{234, 1246902946u, 0u, 1246902946u, 0, SCALBNF_TOLERANCE, 0},
+{235, 1029480631u, 0u, 1029480631u, 0, SCALBNF_TOLERANCE, 0},
+{236, 3153568584u, 0u, 3153568584u, 0, SCALBNF_TOLERANCE, 0},
+{237, 3384988527u, 0u, 3384988527u, 0, SCALBNF_TOLERANCE, 0},
+{238, 1317696241u, 0u, 1317696241u, 0, SCALBNF_TOLERANCE, 0},
+{239, 3341877624u, 0u, 3341877624u, 0, SCALBNF_TOLERANCE, 0},
+{240, 1228636133u, 0u, 1228636133u, 0, SCALBNF_TOLERANCE, 0},
+{241, 1207246237u, 0u, 1207246237u, 0, SCALBNF_TOLERANCE, 0},
+{242, 1165476654u, 4294877038u, 0u, 0, SCALBNF_TOLERANCE, 0},
+{243, 1215278023u, 0u, 1215278023u, 0, SCALBNF_TOLERANCE, 0},
+{244, 1017239798u, 4167373560u, 0u, 0, SCALBNF_TOLERANCE, 0},
+{245, 1149651309u, 0u, 1149651309u, 0, SCALBNF_TOLERANCE, 0},
+{246, 1111943722u, 0u, 1111943722u, 0, SCALBNF_TOLERANCE, 0},
+{247, 1189849849u, 4293652457u, 0u, 0, SCALBNF_TOLERANCE, 0},
+{248, 3204848496u, 0u, 3204848496u, 0, SCALBNF_TOLERANCE, 0},
+{249, 1249758327u, 0u, 1249758327u, 0, SCALBNF_TOLERANCE, 0},
+{250, 3215981890u, 4294967286u, 3132095810u, 0, SCALBNF_TOLERANCE, 0},
+{251, 1266687209u, 0u, 1266687209u, 0, SCALBNF_TOLERANCE, 0},
+{252, 943645710u, 0u, 943645710u, 0, SCALBNF_TOLERANCE, 0},
+{253, 935847271u, 1u, 944235879u, 0, SCALBNF_TOLERANCE, 0},
+{254, 3410336089u, 47u, 3804600665u, 0, SCALBNF_TOLERANCE, 0},
+{255, 3059263153u, 0u, 3059263153u, 0, SCALBNF_TOLERANCE, 0},
+{256, 3353679791u, 0u, 3353679791u, 0, SCALBNF_TOLERANCE, 0},
+{257, 1001823878u, 0u, 1001823878u, 0, SCALBNF_TOLERANCE, 0},
+{258, 1009130212u, 0u, 1009130212u, 0, SCALBNF_TOLERANCE, 0},
+{259, 3367127535u, 0u, 3367127535u, 0, SCALBNF_TOLERANCE, 0},
+{260, 1032920919u, 3981458912u, 0u, 0, SCALBNF_TOLERANCE, 0},
+{261, 3281952870u, 0u, 3281952870u, 0, SCALBNF_TOLERANCE, 0},
+{262, 1237868497u, 0u, 1237868497u, 0, SCALBNF_TOLERANCE, 0},
+{263, 1153753924u, 4294958733u, 0u, 0, SCALBNF_TOLERANCE, 0},
+{264, 1120261759u, 0u, 1120261759u, 0, SCALBNF_TOLERANCE, 0},
+{265, 3349595986u, 4294967271u, 3139880786u, 0, SCALBNF_TOLERANCE, 0},
+{266, 1087750238u, 16u, 1221967966u, 0, SCALBNF_TOLERANCE, 0},
+{267, 1066116543u, 0u, 1066116543u, 0, SCALBNF_TOLERANCE, 0},
+{268, 3210898034u, 0u, 3210898034u, 0, SCALBNF_TOLERANCE, 0},
+{269, 1030612298u, 4294908239u, 0u, 0, SCALBNF_TOLERANCE, 0},
+{270, 1186234578u, 0u, 1186234578u, 0, SCALBNF_TOLERANCE, 0},
+{271, 1331680743u, 0u, 1331680743u, 0, SCALBNF_TOLERANCE, 0},
+{272, 1045232522u, 4294967290u, 994900874u, 0, SCALBNF_TOLERANCE, 0},
+{273, 3119858470u, 0u, 3119858470u, 0, SCALBNF_TOLERANCE, 0},
+{274, 3349432725u, 0u, 3349432725u, 0, SCALBNF_TOLERANCE, 0},
+{275, 912423027u, 0u, 912423027u, 0, SCALBNF_TOLERANCE, 0},
+{276, 3194674746u, 0u, 3194674746u, 0, SCALBNF_TOLERANCE, 0},
+{277, 965402291u, 0u, 965402291u, 0, SCALBNF_TOLERANCE, 0},
+{278, 1133410485u, 4294951516u, 0u, 0, SCALBNF_TOLERANCE, 0},
+{279, 3136790322u, 7u, 3195510578u, 0, SCALBNF_TOLERANCE, 0},
+{280, 3369970587u, 0u, 3369970587u, 0, SCALBNF_TOLERANCE, 0},
+{281, 1270451568u, 0u, 1270451568u, 0, SCALBNF_TOLERANCE, 0},
+{282, 989498922u, 0u, 989498922u, 0, SCALBNF_TOLERANCE, 0},
+{283, 1280215674u, 0u, 1280215674u, 0, SCALBNF_TOLERANCE, 0},
+{284, 1171873518u, 0u, 1171873518u, 0, SCALBNF_TOLERANCE, 0},
+{285, 3298258100u, 0u, 3298258100u, 0, SCALBNF_TOLERANCE, 0},
+{286, 3415208824u, 0u, 3415208824u, 0, SCALBNF_TOLERANCE, 0},
+{287, 1001897182u, 0u, 1001897182u, 0, SCALBNF_TOLERANCE, 0},
+{288, 3152777939u, 4294967281u, 3026948819u, 0, SCALBNF_TOLERANCE, 0},
+{289, 985903305u, 4294945424u, 0u, 0, SCALBNF_TOLERANCE, 0},
+{290, 3357328848u, 0u, 3357328848u, 0, SCALBNF_TOLERANCE, 0},
+{291, 982612185u, 0u, 982612185u, 0, SCALBNF_TOLERANCE, 0},
+{292, 1144755661u, 0u, 1144755661u, 0, SCALBNF_TOLERANCE, 0},
+{293, 898467286u, 0u, 898467286u, 0, SCALBNF_TOLERANCE, 0},
+{294, 3364525678u, 0u, 3364525678u, 0, SCALBNF_TOLERANCE, 0},
+{295, 3146660041u, 0u, 3146660041u, 0, SCALBNF_TOLERANCE, 0},
+{296, 3467121799u, 0u, 3467121799u, 0, SCALBNF_TOLERANCE, 0},
+{297, 1151257041u, 0u, 1151257041u, 0, SCALBNF_TOLERANCE, 0},
+{298, 3097873255u, 4294967295u, 3089484647u, 0, SCALBNF_TOLERANCE, 0},
+{299, 3130670309u, 0u, 3130670309u, 0, SCALBNF_TOLERANCE, 0},
+{300, 1017573824u, 0u, 1017573824u, 0, SCALBNF_TOLERANCE, 0},
+{301, 1258369714u, 3364363264u, 0u, 0, SCALBNF_TOLERANCE, 0},
+{302, 1216602683u, 4294468761u, 0u, 0, SCALBNF_TOLERANCE, 0},
+{303, 1071940738u, 4294963632u, 0u, 0, SCALBNF_TOLERANCE, 0},
+{304, 922601356u, 4294937447u, 0u, 0, SCALBNF_TOLERANCE, 0},
+{305, 3357177805u, 5u, 3399120845u, 0, SCALBNF_TOLERANCE, 0},
+{306, 3049120080u, 0u, 3049120080u, 0, SCALBNF_TOLERANCE, 0},
+{307, 1153863660u, 0u, 1153863660u, 0, SCALBNF_TOLERANCE, 0},
+{308, 3034243695u, 0u, 3034243695u, 0, SCALBNF_TOLERANCE, 0},
+{309, 1249365132u, 4294967060u, 0u, 0, SCALBNF_TOLERANCE, 0},
+{310, 3046215730u, 0u, 3046215730u, 0, SCALBNF_TOLERANCE, 0},
+{311, 3047251716u, 8u, 3114360580u, 0, SCALBNF_TOLERANCE, 0},
+{312, 1297708818u, 0u, 1297708818u, 0, SCALBNF_TOLERANCE, 0},
+{313, 3161606610u, 0u, 3161606610u, 0, SCALBNF_TOLERANCE, 0},
+{314, 888030585u, 0u, 888030585u, 0, SCALBNF_TOLERANCE, 0},
+{315, 1043442869u, 4294963715u, 0u, 0, SCALBNF_TOLERANCE, 0},
+{316, 3400348640u, 0u, 3400348640u, 0, SCALBNF_TOLERANCE, 0},
+{317, 1250249095u, 1u, 1258637703u, 0, SCALBNF_TOLERANCE, 0},
+{318, 3020883322u, 0u, 3020883322u, 0, SCALBNF_TOLERANCE, 0},
+{319, 1215968622u, 2531374080u, 0u, 0, SCALBNF_TOLERANCE, 0},
+{320, 3202319550u, 0u, 3202319550u, 0, SCALBNF_TOLERANCE, 0},
+{321, 3061638260u, 0u, 3061638260u, 0, SCALBNF_TOLERANCE, 0},
+{322, 1025404104u, 1u, 1033792712u, 0, SCALBNF_TOLERANCE, 0},
+{323, 3138086437u, 0u, 3138086437u, 0, SCALBNF_TOLERANCE, 0},
+{324, 3099671635u, 4294967295u, 3091283027u, 0, SCALBNF_TOLERANCE, 0},
+{325, 3068014841u, 0u, 3068014841u, 0, SCALBNF_TOLERANCE, 0},
+{326, 1252237719u, 105u, 2133041559u, 0, SCALBNF_TOLERANCE, 0},
+{327, 3082454432u, 0u, 3082454432u, 0, SCALBNF_TOLERANCE, 0},
+{328, 1099710167u, 0u, 1099710167u, 0, SCALBNF_TOLERANCE, 0},
+{329, 1282110851u, 0u, 1282110851u, 0, SCALBNF_TOLERANCE, 0},
+{330, 1123357102u, 4294966999u, 0u, 0, SCALBNF_TOLERANCE, 0},
+{331, 1106837025u, 0u, 1106837025u, 0, SCALBNF_TOLERANCE, 0},
+{332, 1253017688u, 0u, 1253017688u, 0, SCALBNF_TOLERANCE, 0},
+{333, 1108543194u, 4294966999u, 0u, 0, SCALBNF_TOLERANCE, 0},
+{334, 3305715025u, 0u, 3305715025u, 0, SCALBNF_TOLERANCE, 0},
+{335, 1266928623u, 0u, 1266928623u, 0, SCALBNF_TOLERANCE, 0},
+{336, 3438080027u, 0u, 3438080027u, 0, SCALBNF_TOLERANCE, 0},
+{337, 3344574751u, 0u, 3344574751u, 0, SCALBNF_TOLERANCE, 0},
+{338, 1152416724u, 0u, 1152416724u, 0, SCALBNF_TOLERANCE, 0},
+{339, 3263310567u, 0u, 3263310567u, 0, SCALBNF_TOLERANCE, 0},
+{340, 1000313118u, 0u, 1000313118u, 0, SCALBNF_TOLERANCE, 0},
+{341, 972485427u, 131u, 2071393075u, 0, SCALBNF_TOLERANCE, 0},
+{342, 1278946388u, 0u, 1278946388u, 0, SCALBNF_TOLERANCE, 0},
+{343, 947914771u, 0u, 947914771u, 0, SCALBNF_TOLERANCE, 0},
+{344, 3167730654u, 0u, 3167730654u, 0, SCALBNF_TOLERANCE, 0},
+{345, 3232726036u, 0u, 3232726036u, 0, SCALBNF_TOLERANCE, 0},
+{346, 1297190916u, 0u, 1297190916u, 0, SCALBNF_TOLERANCE, 0},
+{347, 1277649137u, 0u, 1277649137u, 0, SCALBNF_TOLERANCE, 0},
+{348, 3090306474u, 0u, 3090306474u, 0, SCALBNF_TOLERANCE, 0},
+{349, 3244032016u, 0u, 3244032016u, 0, SCALBNF_TOLERANCE, 0},
+{350, 3033122376u, 0u, 3033122376u, 0, SCALBNF_TOLERANCE, 0},
+{351, 3317196817u, 0u, 3317196817u, 0, SCALBNF_TOLERANCE, 0},
+{352, 3374748510u, 0u, 3374748510u, 0, SCALBNF_TOLERANCE, 0},
+{353, 3345634950u, 0u, 3345634950u, 0, SCALBNF_TOLERANCE, 0},
+{354, 3189860276u, 0u, 3189860276u, 0, SCALBNF_TOLERANCE, 0},
+{355, 3396917283u, 0u, 3396917283u, 0, SCALBNF_TOLERANCE, 0},
+{356, 3317032737u, 0u, 3317032737u, 0, SCALBNF_TOLERANCE, 0},
+{357, 1306520561u, 0u, 1306520561u, 0, SCALBNF_TOLERANCE, 0},
+{358, 1314936356u, 0u, 1314936356u, 0, SCALBNF_TOLERANCE, 0},
+{359, 3085636260u, 33u, 3362460324u, 0, SCALBNF_TOLERANCE, 0},
+{360, 3182540197u, 0u, 3182540197u, 0, SCALBNF_TOLERANCE, 0},
+{361, 3349005404u, 0u, 3349005404u, 0, SCALBNF_TOLERANCE, 0},
+{362, 1053387478u, 0u, 1053387478u, 0, SCALBNF_TOLERANCE, 0},
+{363, 3136364836u, 0u, 3136364836u, 0, SCALBNF_TOLERANCE, 0},
+{364, 1112891928u, 0u, 1112891928u, 0, SCALBNF_TOLERANCE, 0},
+{365, 893449284u, 0u, 893449284u, 0, SCALBNF_TOLERANCE, 0},
+{366, 892311459u, 14u, 1009751971u, 0, SCALBNF_TOLERANCE, 0},
+{367, 1190105283u, 0u, 1190105283u, 0, SCALBNF_TOLERANCE, 0},
+{368, 1043025031u, 0u, 1043025031u, 0, SCALBNF_TOLERANCE, 0},
+{369, 3410531037u, 0u, 3410531037u, 0, SCALBNF_TOLERANCE, 0},
+{370, 3125834184u, 0u, 3125834184u, 0, SCALBNF_TOLERANCE, 0},
+{371, 902318189u, 0u, 902318189u, 0, SCALBNF_TOLERANCE, 0},
+{372, 3213624815u, 0u, 3213624815u, 0, SCALBNF_TOLERANCE, 0},
+{373, 1120888322u, 5u, 1162831362u, 0, SCALBNF_TOLERANCE, 0},
+{374, 1315217243u, 4291026624u, 0u, 0, SCALBNF_TOLERANCE, 0},
+{375, 3137758475u, 0u, 3137758475u, 0, SCALBNF_TOLERANCE, 0},
+{376, 1040617590u, 0u, 1040617590u, 0, SCALBNF_TOLERANCE, 0},
+{377, 955384253u, 4294910624u, 0u, 0, SCALBNF_TOLERANCE, 0},
+{378, 904255535u, 0u, 904255535u, 0, SCALBNF_TOLERANCE, 0},
+{379, 1022984119u, 0u, 1022984119u, 0, SCALBNF_TOLERANCE, 0},
+{380, 997362368u, 0u, 997362368u, 0, SCALBNF_TOLERANCE, 0},
+{381, 900933520u, 19u, 1060317072u, 0, SCALBNF_TOLERANCE, 0},
+{382, 1039827284u, 1u, 1048215892u, 0, SCALBNF_TOLERANCE, 0},
+{383, 1021564080u, 0u, 1021564080u, 0, SCALBNF_TOLERANCE, 0},
+{384, 3458669745u, 0u, 3458669745u, 0, SCALBNF_TOLERANCE, 0},
+{385, 1040711112u, 4294967293u, 1015545288u, 0, SCALBNF_TOLERANCE, 0},
+{386, 1134528351u, 4294638880u, 0u, 0, SCALBNF_TOLERANCE, 0},
+{387, 1133689539u, 1u, 1142078147u, 0, SCALBNF_TOLERANCE, 0},
+{388, 3415502662u, 0u, 3415502662u, 0, SCALBNF_TOLERANCE, 0},
+{389, 954999730u, 0u, 954999730u, 0, SCALBNF_TOLERANCE, 0},
+{390, 1066157309u, 4294967285u, 973882621u, 0, SCALBNF_TOLERANCE, 0},
+{391, 940437609u, 0u, 940437609u, 0, SCALBNF_TOLERANCE, 0},
+{392, 3064200154u, 0u, 3064200154u, 0, SCALBNF_TOLERANCE, 0},
+{393, 1023889593u, 0u, 1023889593u, 0, SCALBNF_TOLERANCE, 0},
+{394, 1219052056u, 4294526211u, 0u, 0, SCALBNF_TOLERANCE, 0},
+{395, 3372118621u, 0u, 3372118621u, 0, SCALBNF_TOLERANCE, 0},
+{396, 3146190320u, 0u, 3146190320u, 0, SCALBNF_TOLERANCE, 0},
+{397, 1299683827u, 0u, 1299683827u, 0, SCALBNF_TOLERANCE, 0},
+{398, 3064155399u, 0u, 3064155399u, 0, SCALBNF_TOLERANCE, 0},
+{399, 3040314717u, 1u, 3048703325u, 0, SCALBNF_TOLERANCE, 0},
+{400, 1229268598u, 1u, 1237657206u, 0, SCALBNF_TOLERANCE, 0},
+{401, 3184078812u, 0u, 3184078812u, 0, SCALBNF_TOLERANCE, 0},
+{402, 1086717248u, 4256439624u, 0u, 0, SCALBNF_TOLERANCE, 0},
+{403, 3434884607u, 0u, 3434884607u, 0, SCALBNF_TOLERANCE, 0},
+{404, 3464955606u, 0u, 3464955606u, 0, SCALBNF_TOLERANCE, 0},
+{405, 1025278524u, 0u, 1025278524u, 0, SCALBNF_TOLERANCE, 0},
+{406, 1242829722u, 4294967290u, 1192498074u, 0, SCALBNF_TOLERANCE, 0},
+{407, 3075149137u, 76u, 3712683345u, 0, SCALBNF_TOLERANCE, 0},
+{408, 1246019790u, 0u, 1246019790u, 0, SCALBNF_TOLERANCE, 0},
+{409, 1136052740u, 4294967282u, 1018612228u, 0, SCALBNF_TOLERANCE, 0},
+{410, 1069009211u, 0u, 1069009211u, 0, SCALBNF_TOLERANCE, 0},
+{411, 1015670780u, 20u, 1183442940u, 0, SCALBNF_TOLERANCE, 0},
+{412, 1012543234u, 70u, 1599745794u, 0, SCALBNF_TOLERANCE, 0},
+{413, 1087942795u, 4294961657u, 0u, 0, SCALBNF_TOLERANCE, 0},
+{414, 3426365713u, 0u, 3426365713u, 0, SCALBNF_TOLERANCE, 0},
+{415, 3283555717u, 0u, 3283555717u, 0, SCALBNF_TOLERANCE, 0},
+{416, 3381255420u, 0u, 3381255420u, 0, SCALBNF_TOLERANCE, 0},
+{417, 3388772093u, 0u, 3388772093u, 0, SCALBNF_TOLERANCE, 0},
+{418, 1319200415u, 4293050361u, 0u, 0, SCALBNF_TOLERANCE, 0},
+{419, 1279324488u, 4294967293u, 1254158664u, 0, SCALBNF_TOLERANCE, 0},
+{420, 3217795424u, 0u, 3217795424u, 0, SCALBNF_TOLERANCE, 0},
+{421, 1246947517u, 6u, 1297279165u, 0, SCALBNF_TOLERANCE, 0},
+{422, 3396723577u, 0u, 3396723577u, 0, SCALBNF_TOLERANCE, 0},
+{423, 3433761025u, 0u, 3433761025u, 0, SCALBNF_TOLERANCE, 0},
+{424, 3201187455u, 0u, 3201187455u, 0, SCALBNF_TOLERANCE, 0},
+{425, 3083019343u, 0u, 3083019343u, 0, SCALBNF_TOLERANCE, 0},
+{426, 3042018375u, 0u, 3042018375u, 0, SCALBNF_TOLERANCE, 0},
+{427, 1082862511u, 0u, 1082862511u, 0, SCALBNF_TOLERANCE, 0},
+{428, 1341821683u, 0u, 1341821683u, 0, SCALBNF_TOLERANCE, 0},
+{429, 1079061705u, 0u, 1079061705u, 0, SCALBNF_TOLERANCE, 0},
+{430, 1016023520u, 4294967293u, 990857696u, 0, SCALBNF_TOLERANCE, 0},
+{431, 1156767169u, 0u, 1156767169u, 0, SCALBNF_TOLERANCE, 0},
+{432, 3077020499u, 0u, 3077020499u, 0, SCALBNF_TOLERANCE, 0},
+{433, 1104284039u, 0u, 1104284039u, 0, SCALBNF_TOLERANCE, 0},
+{434, 1093697541u, 0u, 1093697541u, 0, SCALBNF_TOLERANCE, 0},
+{435, 3179003144u, 37u, 3489381640u, 0, SCALBNF_TOLERANCE, 0},
+{436, 1094115255u, 0u, 1094115255u, 0, SCALBNF_TOLERANCE, 0},
+{437, 882878091u, 0u, 882878091u, 0, SCALBNF_TOLERANCE, 0},
+{438, 1098662266u, 0u, 1098662266u, 0, SCALBNF_TOLERANCE, 0},
+{439, 927582555u, 0u, 927582555u, 0, SCALBNF_TOLERANCE, 0},
+{440, 3111440310u, 0u, 3111440310u, 0, SCALBNF_TOLERANCE, 0},
+{441, 3476083859u, 0u, 3476083859u, 0, SCALBNF_TOLERANCE, 0},
+{442, 3038754840u, 0u, 3038754840u, 0, SCALBNF_TOLERANCE, 0},
+{443, 3464546616u, 0u, 3464546616u, 0, SCALBNF_TOLERANCE, 0},
+{444, 1002542205u, 0u, 1002542205u, 0, SCALBNF_TOLERANCE, 0},
+{445, 3443552129u, 0u, 3443552129u, 0, SCALBNF_TOLERANCE, 0},
+{446, 1287620154u, 0u, 1287620154u, 0, SCALBNF_TOLERANCE, 0},
+{447, 3073260205u, 0u, 3073260205u, 0, SCALBNF_TOLERANCE, 0},
+{448, 1245702957u, 0u, 1245702957u, 0, SCALBNF_TOLERANCE, 0},
+{449, 3087802274u, 0u, 3087802274u, 0, SCALBNF_TOLERANCE, 0},
+{450, 3415763001u, 0u, 3415763001u, 0, SCALBNF_TOLERANCE, 0},
+{451, 3026311911u, 0u, 3026311911u, 0, SCALBNF_TOLERANCE, 0},
+{452, 1198307901u, 68u, 1768733245u, 0, SCALBNF_TOLERANCE, 0},
+{453, 922255363u, 0u, 922255363u, 0, SCALBNF_TOLERANCE, 0},
+{454, 1113104661u, 0u, 1113104661u, 0, SCALBNF_TOLERANCE, 0},
+{455, 1136714348u, 0u, 1136714348u, 0, SCALBNF_TOLERANCE, 0},
+{456, 948856035u, 0u, 948856035u, 0, SCALBNF_TOLERANCE, 0},
+{457, 1062512367u, 4294967293u, 1037346543u, 0, SCALBNF_TOLERANCE, 0},
+{458, 3486907092u, 0u, 3486907092u, 0, SCALBNF_TOLERANCE, 0},
+{459, 1162027071u, 4294964303u, 0u, 0, SCALBNF_TOLERANCE, 0},
+{460, 1034561811u, 0u, 1034561811u, 0, SCALBNF_TOLERANCE, 0},
+{461, 3271615417u, 0u, 3271615417u, 0, SCALBNF_TOLERANCE, 0},
+{462, 1177157787u, 0u, 1177157787u, 0, SCALBNF_TOLERANCE, 0},
+{463, 3196144817u, 0u, 3196144817u, 0, SCALBNF_TOLERANCE, 0},
+{464, 3432084552u, 0u, 3432084552u, 0, SCALBNF_TOLERANCE, 0},
+{465, 1309658335u, 0u, 1309658335u, 0, SCALBNF_TOLERANCE, 0},
+{466, 1226494979u, 0u, 1226494979u, 0, SCALBNF_TOLERANCE, 0},
+{467, 3460699001u, 0u, 3460699001u, 0, SCALBNF_TOLERANCE, 0},
+{468, 3079231719u, 0u, 3079231719u, 0, SCALBNF_TOLERANCE, 0},
+{469, 3093951884u, 0u, 3093951884u, 0, SCALBNF_TOLERANCE, 0},
+{470, 1204196034u, 4294966040u, 0u, 0, SCALBNF_TOLERANCE, 0},
+{471, 3459877411u, 0u, 3459877411u, 0, SCALBNF_TOLERANCE, 0},
+{472, 1161439847u, 0u, 1161439847u, 0, SCALBNF_TOLERANCE, 0},
+{473, 908663107u, 0u, 908663107u, 0, SCALBNF_TOLERANCE, 0},
+{474, 1084378658u, 0u, 1084378658u, 0, SCALBNF_TOLERANCE, 0},
+{475, 3022828828u, 0u, 3022828828u, 0, SCALBNF_TOLERANCE, 0},
+{476, 1226473697u, 0u, 1226473697u, 0, SCALBNF_TOLERANCE, 0},
+{477, 3468040845u, 0u, 3468040845u, 0, SCALBNF_TOLERANCE, 0},
+{478, 1178825761u, 54u, 1631810593u, 0, SCALBNF_TOLERANCE, 0},
+{479, 3059266302u, 0u, 3059266302u, 0, SCALBNF_TOLERANCE, 0},
+{480, 3337652712u, 0u, 3337652712u, 0, SCALBNF_TOLERANCE, 0},
+{481, 1184753508u, 0u, 1184753508u, 0, SCALBNF_TOLERANCE, 0},
+{482, 996404791u, 4294853343u, 0u, 0, SCALBNF_TOLERANCE, 0},
+{483, 1188439315u, 55u, 1649812755u, 0, SCALBNF_TOLERANCE, 0},
+{484, 906557513u, 0u, 906557513u, 0, SCALBNF_TOLERANCE, 0},
+{485, 916831283u, 0u, 916831283u, 0, SCALBNF_TOLERANCE, 0},
+{486, 996786317u, 0u, 996786317u, 0, SCALBNF_TOLERANCE, 0},
+{487, 3461635065u, 0u, 3461635065u, 0, SCALBNF_TOLERANCE, 0},
+{488, 3290079438u, 0u, 3290079438u, 0, SCALBNF_TOLERANCE, 0},
+{489, 3350690327u, 0u, 3350690327u, 0, SCALBNF_TOLERANCE, 0},
+{490, 1102061604u, 4253821380u, 0u, 0, SCALBNF_TOLERANCE, 0},
+{491, 1282351521u, 0u, 1282351521u, 0, SCALBNF_TOLERANCE, 0},
+{492, 3095256878u, 0u, 3095256878u, 0, SCALBNF_TOLERANCE, 0},
+{493, 3163373610u, 0u, 3163373610u, 0, SCALBNF_TOLERANCE, 0},
+{494, 3228793330u, 0u, 3228793330u, 0, SCALBNF_TOLERANCE, 0},
+{495, 3422194733u, 0u, 3422194733u, 0, SCALBNF_TOLERANCE, 0},
+{496, 3083885296u, 0u, 3083885296u, 0, SCALBNF_TOLERANCE, 0},
+{497, 1261940623u, 4288291120u, 0u, 0, SCALBNF_TOLERANCE, 0},
+{498, 3400603081u, 4294967290u, 3350271433u, 0, SCALBNF_TOLERANCE, 0},
+{499, 1219411812u, 0u, 1219411812u, 0, SCALBNF_TOLERANCE, 0},
+{500, 3094833770u, 0u, 3094833770u, 0, SCALBNF_TOLERANCE, 0},
+{501, 3139250800u, 0u, 3139250800u, 0, SCALBNF_TOLERANCE, 0},
+{502, 886201503u, 4294967150u, 0u, 0, SCALBNF_TOLERANCE, 0},
+{503, 3297366026u, 7u, 3356086282u, 0, SCALBNF_TOLERANCE, 0},
+{504, 1218488455u, 4294964141u, 0u, 0, SCALBNF_TOLERANCE, 0},
+{505, 3040358923u, 0u, 3040358923u, 0, SCALBNF_TOLERANCE, 0},
+{506, 3182551696u, 0u, 3182551696u, 0, SCALBNF_TOLERANCE, 0},
+{507, 1317098613u, 0u, 1317098613u, 0, SCALBNF_TOLERANCE, 0},
+{508, 3431703657u, 0u, 3431703657u, 0, SCALBNF_TOLERANCE, 0},
+{509, 3239728775u, 0u, 3239728775u, 0, SCALBNF_TOLERANCE, 0},
+{510, 3207141672u, 0u, 3207141672u, 0, SCALBNF_TOLERANCE, 0},
+{511, 3154378805u, 0u, 3154378805u, 0, SCALBNF_TOLERANCE, 0},
+{512, 3069658155u, 0u, 3069658155u, 0, SCALBNF_TOLERANCE, 0},
+{513, 3313160088u, 0u, 3313160088u, 0, SCALBNF_TOLERANCE, 0},
+{514, 1284174954u, 4180334232u, 0u, 0, SCALBNF_TOLERANCE, 0},
+{515, 1063693032u, 0u, 1063693032u, 0, SCALBNF_TOLERANCE, 0},
+{516, 1102631663u, 4290881696u, 0u, 0, SCALBNF_TOLERANCE, 0},
+{517, 968803479u, 0u, 968803479u, 0, SCALBNF_TOLERANCE, 0},
+{518, 3273080388u, 0u, 3273080388u, 0, SCALBNF_TOLERANCE, 0},
+{519, 1172529774u, 4294966405u, 0u, 0, SCALBNF_TOLERANCE, 0},
+{520, 3158855023u, 0u, 3158855023u, 0, SCALBNF_TOLERANCE, 0},
+{521, 1165177679u, 4294967097u, 0u, 0, SCALBNF_TOLERANCE, 0},
+{522, 952348506u, 4294108410u, 0u, 0, SCALBNF_TOLERANCE, 0},
+{523, 1325324763u, 0u, 1325324763u, 0, SCALBNF_TOLERANCE, 0},
+{524, 3363524213u, 0u, 3363524213u, 0, SCALBNF_TOLERANCE, 0},
+{525, 1158950321u, 1u, 1167338929u, 0, SCALBNF_TOLERANCE, 0},
+{526, 903129873u, 4272788450u, 0u, 0, SCALBNF_TOLERANCE, 0},
+{527, 3078339944u, 0u, 3078339944u, 0, SCALBNF_TOLERANCE, 0},
+{528, 1153863988u, 4229464460u, 0u, 0, SCALBNF_TOLERANCE, 0},
+{529, 1235620969u, 0u, 1235620969u, 0, SCALBNF_TOLERANCE, 0},
+{530, 1097120930u, 4294967294u, 1080343714u, 0, SCALBNF_TOLERANCE, 0},
+{531, 1147712200u, 0u, 1147712200u, 0, SCALBNF_TOLERANCE, 0},
+{532, 1124721745u, 0u, 1124721745u, 0, SCALBNF_TOLERANCE, 0},
+{533, 3261744304u, 0u, 3261744304u, 0, SCALBNF_TOLERANCE, 0},
+{534, 3303160152u, 0u, 3303160152u, 0, SCALBNF_TOLERANCE, 0},
+{535, 1335399673u, 0u, 1335399673u, 0, SCALBNF_TOLERANCE, 0},
+{536, 1072458508u, 4294404660u, 0u, 0, SCALBNF_TOLERANCE, 0},
+{537, 3303015249u, 0u, 3303015249u, 0, SCALBNF_TOLERANCE, 0},
+{538, 3252139741u, 0u, 3252139741u, 0, SCALBNF_TOLERANCE, 0},
+{539, 3468519966u, 0u, 3468519966u, 0, SCALBNF_TOLERANCE, 0},
+{540, 1006231203u, 0u, 1006231203u, 0, SCALBNF_TOLERANCE, 0},
+{541, 951554138u, 0u, 951554138u, 0, SCALBNF_TOLERANCE, 0},
+{542, 942046828u, 0u, 942046828u, 0, SCALBNF_TOLERANCE, 0},
+{543, 3255104167u, 0u, 3255104167u, 0, SCALBNF_TOLERANCE, 0},
+{544, 1155477903u, 0u, 1155477903u, 0, SCALBNF_TOLERANCE, 0},
+{545, 3273889176u, 0u, 3273889176u, 0, SCALBNF_TOLERANCE, 0},
+{546, 1228207362u, 0u, 1228207362u, 0, SCALBNF_TOLERANCE, 0},
+{547, 1290175785u, 0u, 1290175785u, 0, SCALBNF_TOLERANCE, 0},
+{548, 981908840u, 4294962938u, 0u, 0, SCALBNF_TOLERANCE, 0},
+{549, 941187647u, 33u, 1218011711u, 0, SCALBNF_TOLERANCE, 0},
+{550, 1214223128u, 4294967293u, 1189057304u, 0, SCALBNF_TOLERANCE, 0},
+{551, 3422922584u, 6u, 3473254232u, 0, SCALBNF_TOLERANCE, 0},
+{552, 3453226030u, 4294967291u, 3411282990u, 0, SCALBNF_TOLERANCE, 0},
+{553, 1078359574u, 0u, 1078359574u, 0, SCALBNF_TOLERANCE, 0},
+{554, 1029557624u, 4294965511u, 0u, 0, SCALBNF_TOLERANCE, 0},
+{555, 1207675424u, 0u, 1207675424u, 0, SCALBNF_TOLERANCE, 0},
+{556, 1028355074u, 4113313408u, 0u, 0, SCALBNF_TOLERANCE, 0},
+{557, 1248421894u, 4294582111u, 0u, 0, SCALBNF_TOLERANCE, 0},
+{558, 3353251994u, 12u, 3453915290u, 0, SCALBNF_TOLERANCE, 0},
+{559, 876926659u, 4294966792u, 0u, 0, SCALBNF_TOLERANCE, 0},
+{560, 1076752219u, 0u, 1076752219u, 0, SCALBNF_TOLERANCE, 0},
+{561, 3388531942u, 0u, 3388531942u, 0, SCALBNF_TOLERANCE, 0},
+{562, 1273395082u, 0u, 1273395082u, 0, SCALBNF_TOLERANCE, 0},
+{563, 3034494183u, 0u, 3034494183u, 0, SCALBNF_TOLERANCE, 0},
+{564, 1171318485u, 4294306215u, 0u, 0, SCALBNF_TOLERANCE, 0},
+{565, 3047748143u, 0u, 3047748143u, 0, SCALBNF_TOLERANCE, 0},
+{566, 1001216371u, 0u, 1001216371u, 0, SCALBNF_TOLERANCE, 0},
+{567, 912515889u, 2u, 929293105u, 0, SCALBNF_TOLERANCE, 0},
+{568, 3391452505u, 0u, 3391452505u, 0, SCALBNF_TOLERANCE, 0},
+{569, 3249603369u, 0u, 3249603369u, 0, SCALBNF_TOLERANCE, 0},
+{570, 1220264047u, 0u, 1220264047u, 0, SCALBNF_TOLERANCE, 0},
+{571, 3169816394u, 0u, 3169816394u, 0, SCALBNF_TOLERANCE, 0},
+{572, 3098997418u, 0u, 3098997418u, 0, SCALBNF_TOLERANCE, 0},
+{573, 3282212423u, 0u, 3282212423u, 0, SCALBNF_TOLERANCE, 0},
+{574, 3352293320u, 4294967278u, 3201298376u, 0, SCALBNF_TOLERANCE, 0},
+{575, 3296358441u, 0u, 3296358441u, 0, SCALBNF_TOLERANCE, 0},
+{576, 1197828352u, 4294967281u, 1071999232u, 0, SCALBNF_TOLERANCE, 0},
+{577, 3340510371u, 0u, 3340510371u, 0, SCALBNF_TOLERANCE, 0},
+{578, 1127109339u, 4294570975u, 0u, 0, SCALBNF_TOLERANCE, 0},
+{579, 1200599955u, 0u, 1200599955u, 0, SCALBNF_TOLERANCE, 0},
+{580, 962230977u, 0u, 962230977u, 0, SCALBNF_TOLERANCE, 0},
+{581, 3192887808u, 0u, 3192887808u, 0, SCALBNF_TOLERANCE, 0},
+{582, 3237183876u, 0u, 3237183876u, 0, SCALBNF_TOLERANCE, 0},
+{583, 939285924u, 0u, 939285924u, 0, SCALBNF_TOLERANCE, 0},
+{584, 944050180u, 3871652128u, 0u, 0, SCALBNF_TOLERANCE, 0},
+{585, 3058135703u, 0u, 3058135703u, 0, SCALBNF_TOLERANCE, 0},
+{586, 1003299981u, 0u, 1003299981u, 0, SCALBNF_TOLERANCE, 0},
+{587, 1234491880u, 4283784819u, 0u, 0, SCALBNF_TOLERANCE, 0}
+
+// AUTOMATICALLY GENERATED VECTORS STOP
+
+};
+
+#endif // CYGONCE_LIBM_SCABNF_H multiple inclusion protection
+
+// EOF scalbnf.h
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/significandf.c b/ecos/packages/language/c/libm/current/tests/vectors/significandf.c
new file mode 100644
index 0000000..c8c3743
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/significandf.c
@@ -0,0 +1,115 @@
+//===========================================================================
+//
+// significandf.c
+//
+// Test of significandf() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// Declarations for test system:
+//
+// TESTCASE_TYPE=CYG_TEST_MODULE
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include <cyg/infra/testcase.h> // Test infrastructure
+#include <math.h> // Header for this package
+#include <sys/ieeefp.h> // Cyg_libm_ieee_float_shape_type
+#include "vectors/vector_support_float.h"// extra support for math tests
+
+#include "vectors/significandf.h"
+
+// FUNCTIONS
+
+static void
+test( CYG_ADDRWORD data )
+{
+ cyg_ucount32 vec_size;
+ cyg_bool ret;
+
+ vec_size = sizeof(significandf_vec) / sizeof(Cyg_libm_test_float_vec_t);
+ ret = doTestVecFloat( (CYG_ADDRWORD) &significandf, CYG_LIBM_TEST_VEC_FLOAT,
+ CYG_LIBM_TEST_VEC_NONE, CYG_LIBM_TEST_VEC_FLOAT,
+ &significandf_vec[0], vec_size );
+
+ if (ret==true)
+ {
+ CYG_TEST_PASS("significandf() is stable");
+ } // if
+ else
+ {
+ CYG_TEST_FAIL("significandf() failed tests");
+ } // else
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for Math "
+ "library significandf() function");
+} // test()
+
+
+int
+main(int argc, char *argv[])
+{
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for Math library "
+ "significandf() function");
+
+ START_TEST( test );
+
+ CYG_TEST_PASS_FINISH("Testing is not applicable to this configuration");
+
+} // main()
+
+
+// EOF significandf.c
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/significandf.h b/ecos/packages/language/c/libm/current/tests/vectors/significandf.h
new file mode 100644
index 0000000..2755f74
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/significandf.h
@@ -0,0 +1,2441 @@
+#ifndef CYGONCE_LIBM_SCABNF_H
+#define CYGONCE_LIBM_SCABNF_H
+//===========================================================================
+//
+// significandf.h
+//
+// Test vectors for testing of significandf() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage: #include "vectors/significandf.h"
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include "vectors/vector_support_float.h"// extra support for math tests
+
+#define SIGNIFICANDF_TOLERANCE 1.0E-04
+
+static const Cyg_libm_test_float_vec_t significandf_vec[] = {
+
+// AUTOMATICALLY GENERATED VECTORS START
+
+{0, 3212836864u, 3212836864u, 3212836864u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1, 3212836864u, 3211998003u, 3212836864u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2, 3212836864u, 3211159142u, 3212836864u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{3, 3212836864u, 3210320282u, 3212836864u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{4, 3212836864u, 3209481421u, 3212836864u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{5, 3212836864u, 3208642560u, 3212836864u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{6, 3212836864u, 3207803699u, 3212836864u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{7, 3212836864u, 3206964838u, 3212836864u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{8, 3212836864u, 3206125978u, 3212836864u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{9, 3212836864u, 3205287117u, 3212836864u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{10, 3212836864u, 3204448256u, 3212836864u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{11, 3212836864u, 3202770534u, 3212836864u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{12, 3212836864u, 3201092813u, 3212836864u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{13, 3212836864u, 3199415091u, 3212836864u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{14, 3212836864u, 3197737370u, 3212836864u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{15, 3212836864u, 3196059648u, 3212836864u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{16, 3212836864u, 3192704205u, 3212836864u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{17, 3212836864u, 3189348762u, 3212836864u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{18, 3212836864u, 3184315597u, 3212836864u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{19, 3212836864u, 3175926989u, 3212836864u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{20, 3212836864u, 632815616u, 3212836864u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{21, 3212836864u, 1028443341u, 3212836864u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{22, 3212836864u, 1036831949u, 3212836864u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{23, 3212836864u, 1041865114u, 3212836864u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{24, 3212836864u, 1045220557u, 3212836864u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{25, 3212836864u, 1048576000u, 3212836864u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{26, 3212836864u, 1050253722u, 3212836864u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{27, 3212836864u, 1051931443u, 3212836864u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{28, 3212836864u, 1053609165u, 3212836864u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{29, 3212836864u, 1055286886u, 3212836864u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{30, 3212836864u, 1056964608u, 3212836864u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{31, 3212836864u, 1057803469u, 3212836864u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{32, 3212836864u, 1058642330u, 3212836864u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{33, 3212836864u, 1059481190u, 3212836864u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{34, 3212836864u, 1060320051u, 3212836864u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{35, 3212836864u, 1061158912u, 3212836864u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{36, 3212836864u, 1061997773u, 3212836864u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{37, 3212836864u, 1062836634u, 3212836864u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{38, 3212836864u, 1063675494u, 3212836864u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{39, 3212836864u, 1064514355u, 3212836864u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{40, 3211998003u, 3212836864u, 3220386611u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{41, 3211998003u, 3211998003u, 3220386611u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{42, 3211998003u, 3211159142u, 3220386611u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{43, 3211998003u, 3210320282u, 3220386611u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{44, 3211998003u, 3209481421u, 3220386611u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{45, 3211998003u, 3208642560u, 3220386611u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{46, 3211998003u, 3207803699u, 3220386611u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{47, 3211998003u, 3206964838u, 3220386611u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{48, 3211998003u, 3206125978u, 3220386611u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{49, 3211998003u, 3205287117u, 3220386611u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{50, 3211998003u, 3204448256u, 3220386611u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{51, 3211998003u, 3202770534u, 3220386611u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{52, 3211998003u, 3201092813u, 3220386611u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{53, 3211998003u, 3199415091u, 3220386611u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{54, 3211998003u, 3197737370u, 3220386611u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{55, 3211998003u, 3196059648u, 3220386611u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{56, 3211998003u, 3192704205u, 3220386611u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{57, 3211998003u, 3189348762u, 3220386611u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{58, 3211998003u, 3184315597u, 3220386611u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{59, 3211998003u, 3175926989u, 3220386611u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{60, 3211998003u, 632815616u, 3220386611u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{61, 3211998003u, 1028443341u, 3220386611u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{62, 3211998003u, 1036831949u, 3220386611u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{63, 3211998003u, 1041865114u, 3220386611u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{64, 3211998003u, 1045220557u, 3220386611u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{65, 3211998003u, 1048576000u, 3220386611u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{66, 3211998003u, 1050253722u, 3220386611u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{67, 3211998003u, 1051931443u, 3220386611u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{68, 3211998003u, 1053609165u, 3220386611u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{69, 3211998003u, 1055286886u, 3220386611u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{70, 3211998003u, 1056964608u, 3220386611u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{71, 3211998003u, 1057803469u, 3220386611u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{72, 3211998003u, 1058642330u, 3220386611u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{73, 3211998003u, 1059481190u, 3220386611u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{74, 3211998003u, 1060320051u, 3220386611u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{75, 3211998003u, 1061158912u, 3220386611u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{76, 3211998003u, 1061997773u, 3220386611u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{77, 3211998003u, 1062836634u, 3220386611u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{78, 3211998003u, 1063675494u, 3220386611u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{79, 3211998003u, 1064514355u, 3220386611u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{80, 3211159142u, 3212836864u, 3219547750u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{81, 3211159142u, 3211998003u, 3219547750u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{82, 3211159142u, 3211159142u, 3219547750u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{83, 3211159142u, 3210320282u, 3219547750u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{84, 3211159142u, 3209481421u, 3219547750u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{85, 3211159142u, 3208642560u, 3219547750u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{86, 3211159142u, 3207803699u, 3219547750u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{87, 3211159142u, 3206964838u, 3219547750u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{88, 3211159142u, 3206125978u, 3219547750u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{89, 3211159142u, 3205287117u, 3219547750u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{90, 3211159142u, 3204448256u, 3219547750u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{91, 3211159142u, 3202770534u, 3219547750u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{92, 3211159142u, 3201092813u, 3219547750u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{93, 3211159142u, 3199415091u, 3219547750u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{94, 3211159142u, 3197737370u, 3219547750u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{95, 3211159142u, 3196059648u, 3219547750u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{96, 3211159142u, 3192704205u, 3219547750u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{97, 3211159142u, 3189348762u, 3219547750u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{98, 3211159142u, 3184315597u, 3219547750u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{99, 3211159142u, 3175926989u, 3219547750u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{100, 3211159142u, 632815616u, 3219547750u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{101, 3211159142u, 1028443341u, 3219547750u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{102, 3211159142u, 1036831949u, 3219547750u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{103, 3211159142u, 1041865114u, 3219547750u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{104, 3211159142u, 1045220557u, 3219547750u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{105, 3211159142u, 1048576000u, 3219547750u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{106, 3211159142u, 1050253722u, 3219547750u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{107, 3211159142u, 1051931443u, 3219547750u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{108, 3211159142u, 1053609165u, 3219547750u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{109, 3211159142u, 1055286886u, 3219547750u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{110, 3211159142u, 1056964608u, 3219547750u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{111, 3211159142u, 1057803469u, 3219547750u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{112, 3211159142u, 1058642330u, 3219547750u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{113, 3211159142u, 1059481190u, 3219547750u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{114, 3211159142u, 1060320051u, 3219547750u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{115, 3211159142u, 1061158912u, 3219547750u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{116, 3211159142u, 1061997773u, 3219547750u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{117, 3211159142u, 1062836634u, 3219547750u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{118, 3211159142u, 1063675494u, 3219547750u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{119, 3211159142u, 1064514355u, 3219547750u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{120, 3210320282u, 3212836864u, 3218708890u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{121, 3210320282u, 3211998003u, 3218708890u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{122, 3210320282u, 3211159142u, 3218708890u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{123, 3210320282u, 3210320282u, 3218708890u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{124, 3210320282u, 3209481421u, 3218708890u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{125, 3210320282u, 3208642560u, 3218708890u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{126, 3210320282u, 3207803699u, 3218708890u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{127, 3210320282u, 3206964838u, 3218708890u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{128, 3210320282u, 3206125978u, 3218708890u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{129, 3210320282u, 3205287117u, 3218708890u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{130, 3210320282u, 3204448256u, 3218708890u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{131, 3210320282u, 3202770534u, 3218708890u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{132, 3210320282u, 3201092813u, 3218708890u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{133, 3210320282u, 3199415091u, 3218708890u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{134, 3210320282u, 3197737370u, 3218708890u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{135, 3210320282u, 3196059648u, 3218708890u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{136, 3210320282u, 3192704205u, 3218708890u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{137, 3210320282u, 3189348762u, 3218708890u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{138, 3210320282u, 3184315597u, 3218708890u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{139, 3210320282u, 3175926989u, 3218708890u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{140, 3210320282u, 632815616u, 3218708890u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{141, 3210320282u, 1028443341u, 3218708890u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{142, 3210320282u, 1036831949u, 3218708890u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{143, 3210320282u, 1041865114u, 3218708890u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{144, 3210320282u, 1045220557u, 3218708890u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{145, 3210320282u, 1048576000u, 3218708890u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{146, 3210320282u, 1050253722u, 3218708890u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{147, 3210320282u, 1051931443u, 3218708890u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{148, 3210320282u, 1053609165u, 3218708890u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{149, 3210320282u, 1055286886u, 3218708890u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{150, 3210320282u, 1056964608u, 3218708890u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{151, 3210320282u, 1057803469u, 3218708890u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{152, 3210320282u, 1058642330u, 3218708890u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{153, 3210320282u, 1059481190u, 3218708890u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{154, 3210320282u, 1060320051u, 3218708890u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{155, 3210320282u, 1061158912u, 3218708890u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{156, 3210320282u, 1061997773u, 3218708890u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{157, 3210320282u, 1062836634u, 3218708890u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{158, 3210320282u, 1063675494u, 3218708890u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{159, 3210320282u, 1064514355u, 3218708890u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{160, 3209481421u, 3212836864u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{161, 3209481421u, 3211998003u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{162, 3209481421u, 3211159142u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{163, 3209481421u, 3210320282u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{164, 3209481421u, 3209481421u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{165, 3209481421u, 3208642560u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{166, 3209481421u, 3207803699u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{167, 3209481421u, 3206964838u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{168, 3209481421u, 3206125978u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{169, 3209481421u, 3205287117u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{170, 3209481421u, 3204448256u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{171, 3209481421u, 3202770534u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{172, 3209481421u, 3201092813u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{173, 3209481421u, 3199415091u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{174, 3209481421u, 3197737370u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{175, 3209481421u, 3196059648u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{176, 3209481421u, 3192704205u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{177, 3209481421u, 3189348762u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{178, 3209481421u, 3184315597u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{179, 3209481421u, 3175926989u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{180, 3209481421u, 632815616u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{181, 3209481421u, 1028443341u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{182, 3209481421u, 1036831949u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{183, 3209481421u, 1041865114u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{184, 3209481421u, 1045220557u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{185, 3209481421u, 1048576000u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{186, 3209481421u, 1050253722u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{187, 3209481421u, 1051931443u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{188, 3209481421u, 1053609165u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{189, 3209481421u, 1055286886u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{190, 3209481421u, 1056964608u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{191, 3209481421u, 1057803469u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{192, 3209481421u, 1058642330u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{193, 3209481421u, 1059481190u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{194, 3209481421u, 1060320051u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{195, 3209481421u, 1061158912u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{196, 3209481421u, 1061997773u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{197, 3209481421u, 1062836634u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{198, 3209481421u, 1063675494u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{199, 3209481421u, 1064514355u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{200, 3208642560u, 3212836864u, 3217031168u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{201, 3208642560u, 3211998003u, 3217031168u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{202, 3208642560u, 3211159142u, 3217031168u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{203, 3208642560u, 3210320282u, 3217031168u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{204, 3208642560u, 3209481421u, 3217031168u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{205, 3208642560u, 3208642560u, 3217031168u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{206, 3208642560u, 3207803699u, 3217031168u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{207, 3208642560u, 3206964838u, 3217031168u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{208, 3208642560u, 3206125978u, 3217031168u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{209, 3208642560u, 3205287117u, 3217031168u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{210, 3208642560u, 3204448256u, 3217031168u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{211, 3208642560u, 3202770534u, 3217031168u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{212, 3208642560u, 3201092813u, 3217031168u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{213, 3208642560u, 3199415091u, 3217031168u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{214, 3208642560u, 3197737370u, 3217031168u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{215, 3208642560u, 3196059648u, 3217031168u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{216, 3208642560u, 3192704205u, 3217031168u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{217, 3208642560u, 3189348762u, 3217031168u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{218, 3208642560u, 3184315597u, 3217031168u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{219, 3208642560u, 3175926989u, 3217031168u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{220, 3208642560u, 632815616u, 3217031168u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{221, 3208642560u, 1028443341u, 3217031168u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{222, 3208642560u, 1036831949u, 3217031168u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{223, 3208642560u, 1041865114u, 3217031168u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{224, 3208642560u, 1045220557u, 3217031168u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{225, 3208642560u, 1048576000u, 3217031168u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{226, 3208642560u, 1050253722u, 3217031168u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{227, 3208642560u, 1051931443u, 3217031168u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{228, 3208642560u, 1053609165u, 3217031168u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{229, 3208642560u, 1055286886u, 3217031168u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{230, 3208642560u, 1056964608u, 3217031168u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{231, 3208642560u, 1057803469u, 3217031168u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{232, 3208642560u, 1058642330u, 3217031168u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{233, 3208642560u, 1059481190u, 3217031168u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{234, 3208642560u, 1060320051u, 3217031168u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{235, 3208642560u, 1061158912u, 3217031168u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{236, 3208642560u, 1061997773u, 3217031168u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{237, 3208642560u, 1062836634u, 3217031168u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{238, 3208642560u, 1063675494u, 3217031168u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{239, 3208642560u, 1064514355u, 3217031168u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{240, 3207803699u, 3212836864u, 3216192307u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{241, 3207803699u, 3211998003u, 3216192307u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{242, 3207803699u, 3211159142u, 3216192307u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{243, 3207803699u, 3210320282u, 3216192307u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{244, 3207803699u, 3209481421u, 3216192307u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{245, 3207803699u, 3208642560u, 3216192307u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{246, 3207803699u, 3207803699u, 3216192307u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{247, 3207803699u, 3206964838u, 3216192307u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{248, 3207803699u, 3206125978u, 3216192307u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{249, 3207803699u, 3205287117u, 3216192307u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{250, 3207803699u, 3204448256u, 3216192307u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{251, 3207803699u, 3202770534u, 3216192307u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{252, 3207803699u, 3201092813u, 3216192307u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{253, 3207803699u, 3199415091u, 3216192307u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{254, 3207803699u, 3197737370u, 3216192307u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{255, 3207803699u, 3196059648u, 3216192307u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{256, 3207803699u, 3192704205u, 3216192307u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{257, 3207803699u, 3189348762u, 3216192307u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{258, 3207803699u, 3184315597u, 3216192307u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{259, 3207803699u, 3175926989u, 3216192307u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{260, 3207803699u, 632815616u, 3216192307u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{261, 3207803699u, 1028443341u, 3216192307u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{262, 3207803699u, 1036831949u, 3216192307u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{263, 3207803699u, 1041865114u, 3216192307u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{264, 3207803699u, 1045220557u, 3216192307u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{265, 3207803699u, 1048576000u, 3216192307u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{266, 3207803699u, 1050253722u, 3216192307u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{267, 3207803699u, 1051931443u, 3216192307u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{268, 3207803699u, 1053609165u, 3216192307u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{269, 3207803699u, 1055286886u, 3216192307u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{270, 3207803699u, 1056964608u, 3216192307u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{271, 3207803699u, 1057803469u, 3216192307u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{272, 3207803699u, 1058642330u, 3216192307u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{273, 3207803699u, 1059481190u, 3216192307u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{274, 3207803699u, 1060320051u, 3216192307u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{275, 3207803699u, 1061158912u, 3216192307u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{276, 3207803699u, 1061997773u, 3216192307u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{277, 3207803699u, 1062836634u, 3216192307u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{278, 3207803699u, 1063675494u, 3216192307u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{279, 3207803699u, 1064514355u, 3216192307u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{280, 3206964838u, 3212836864u, 3215353446u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{281, 3206964838u, 3211998003u, 3215353446u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{282, 3206964838u, 3211159142u, 3215353446u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{283, 3206964838u, 3210320282u, 3215353446u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{284, 3206964838u, 3209481421u, 3215353446u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{285, 3206964838u, 3208642560u, 3215353446u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{286, 3206964838u, 3207803699u, 3215353446u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{287, 3206964838u, 3206964838u, 3215353446u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{288, 3206964838u, 3206125978u, 3215353446u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{289, 3206964838u, 3205287117u, 3215353446u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{290, 3206964838u, 3204448256u, 3215353446u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{291, 3206964838u, 3202770534u, 3215353446u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{292, 3206964838u, 3201092813u, 3215353446u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{293, 3206964838u, 3199415091u, 3215353446u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{294, 3206964838u, 3197737370u, 3215353446u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{295, 3206964838u, 3196059648u, 3215353446u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{296, 3206964838u, 3192704205u, 3215353446u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{297, 3206964838u, 3189348762u, 3215353446u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{298, 3206964838u, 3184315597u, 3215353446u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{299, 3206964838u, 3175926989u, 3215353446u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{300, 3206964838u, 632815616u, 3215353446u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{301, 3206964838u, 1028443341u, 3215353446u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{302, 3206964838u, 1036831949u, 3215353446u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{303, 3206964838u, 1041865114u, 3215353446u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{304, 3206964838u, 1045220557u, 3215353446u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{305, 3206964838u, 1048576000u, 3215353446u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{306, 3206964838u, 1050253722u, 3215353446u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{307, 3206964838u, 1051931443u, 3215353446u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{308, 3206964838u, 1053609165u, 3215353446u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{309, 3206964838u, 1055286886u, 3215353446u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{310, 3206964838u, 1056964608u, 3215353446u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{311, 3206964838u, 1057803469u, 3215353446u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{312, 3206964838u, 1058642330u, 3215353446u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{313, 3206964838u, 1059481190u, 3215353446u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{314, 3206964838u, 1060320051u, 3215353446u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{315, 3206964838u, 1061158912u, 3215353446u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{316, 3206964838u, 1061997773u, 3215353446u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{317, 3206964838u, 1062836634u, 3215353446u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{318, 3206964838u, 1063675494u, 3215353446u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{319, 3206964838u, 1064514355u, 3215353446u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{320, 3206125978u, 3212836864u, 3214514586u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{321, 3206125978u, 3211998003u, 3214514586u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{322, 3206125978u, 3211159142u, 3214514586u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{323, 3206125978u, 3210320282u, 3214514586u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{324, 3206125978u, 3209481421u, 3214514586u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{325, 3206125978u, 3208642560u, 3214514586u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{326, 3206125978u, 3207803699u, 3214514586u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{327, 3206125978u, 3206964838u, 3214514586u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{328, 3206125978u, 3206125978u, 3214514586u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{329, 3206125978u, 3205287117u, 3214514586u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{330, 3206125978u, 3204448256u, 3214514586u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{331, 3206125978u, 3202770534u, 3214514586u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{332, 3206125978u, 3201092813u, 3214514586u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{333, 3206125978u, 3199415091u, 3214514586u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{334, 3206125978u, 3197737370u, 3214514586u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{335, 3206125978u, 3196059648u, 3214514586u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{336, 3206125978u, 3192704205u, 3214514586u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{337, 3206125978u, 3189348762u, 3214514586u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{338, 3206125978u, 3184315597u, 3214514586u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{339, 3206125978u, 3175926989u, 3214514586u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{340, 3206125978u, 632815616u, 3214514586u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{341, 3206125978u, 1028443341u, 3214514586u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{342, 3206125978u, 1036831949u, 3214514586u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{343, 3206125978u, 1041865114u, 3214514586u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{344, 3206125978u, 1045220557u, 3214514586u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{345, 3206125978u, 1048576000u, 3214514586u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{346, 3206125978u, 1050253722u, 3214514586u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{347, 3206125978u, 1051931443u, 3214514586u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{348, 3206125978u, 1053609165u, 3214514586u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{349, 3206125978u, 1055286886u, 3214514586u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{350, 3206125978u, 1056964608u, 3214514586u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{351, 3206125978u, 1057803469u, 3214514586u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{352, 3206125978u, 1058642330u, 3214514586u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{353, 3206125978u, 1059481190u, 3214514586u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{354, 3206125978u, 1060320051u, 3214514586u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{355, 3206125978u, 1061158912u, 3214514586u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{356, 3206125978u, 1061997773u, 3214514586u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{357, 3206125978u, 1062836634u, 3214514586u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{358, 3206125978u, 1063675494u, 3214514586u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{359, 3206125978u, 1064514355u, 3214514586u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{360, 3205287117u, 3212836864u, 3213675725u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{361, 3205287117u, 3211998003u, 3213675725u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{362, 3205287117u, 3211159142u, 3213675725u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{363, 3205287117u, 3210320282u, 3213675725u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{364, 3205287117u, 3209481421u, 3213675725u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{365, 3205287117u, 3208642560u, 3213675725u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{366, 3205287117u, 3207803699u, 3213675725u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{367, 3205287117u, 3206964838u, 3213675725u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{368, 3205287117u, 3206125978u, 3213675725u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{369, 3205287117u, 3205287117u, 3213675725u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{370, 3205287117u, 3204448256u, 3213675725u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{371, 3205287117u, 3202770534u, 3213675725u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{372, 3205287117u, 3201092813u, 3213675725u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{373, 3205287117u, 3199415091u, 3213675725u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{374, 3205287117u, 3197737370u, 3213675725u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{375, 3205287117u, 3196059648u, 3213675725u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{376, 3205287117u, 3192704205u, 3213675725u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{377, 3205287117u, 3189348762u, 3213675725u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{378, 3205287117u, 3184315597u, 3213675725u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{379, 3205287117u, 3175926989u, 3213675725u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{380, 3205287117u, 632815616u, 3213675725u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{381, 3205287117u, 1028443341u, 3213675725u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{382, 3205287117u, 1036831949u, 3213675725u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{383, 3205287117u, 1041865114u, 3213675725u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{384, 3205287117u, 1045220557u, 3213675725u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{385, 3205287117u, 1048576000u, 3213675725u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{386, 3205287117u, 1050253722u, 3213675725u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{387, 3205287117u, 1051931443u, 3213675725u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{388, 3205287117u, 1053609165u, 3213675725u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{389, 3205287117u, 1055286886u, 3213675725u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{390, 3205287117u, 1056964608u, 3213675725u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{391, 3205287117u, 1057803469u, 3213675725u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{392, 3205287117u, 1058642330u, 3213675725u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{393, 3205287117u, 1059481190u, 3213675725u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{394, 3205287117u, 1060320051u, 3213675725u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{395, 3205287117u, 1061158912u, 3213675725u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{396, 3205287117u, 1061997773u, 3213675725u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{397, 3205287117u, 1062836634u, 3213675725u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{398, 3205287117u, 1063675494u, 3213675725u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{399, 3205287117u, 1064514355u, 3213675725u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{400, 3204448256u, 3212836864u, 3212836864u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{401, 3204448256u, 3211998003u, 3212836864u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{402, 3204448256u, 3211159142u, 3212836864u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{403, 3204448256u, 3210320282u, 3212836864u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{404, 3204448256u, 3209481421u, 3212836864u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{405, 3204448256u, 3208642560u, 3212836864u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{406, 3204448256u, 3207803699u, 3212836864u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{407, 3204448256u, 3206964838u, 3212836864u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{408, 3204448256u, 3206125978u, 3212836864u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{409, 3204448256u, 3205287117u, 3212836864u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{410, 3204448256u, 3204448256u, 3212836864u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{411, 3204448256u, 3202770534u, 3212836864u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{412, 3204448256u, 3201092813u, 3212836864u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{413, 3204448256u, 3199415091u, 3212836864u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{414, 3204448256u, 3197737370u, 3212836864u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{415, 3204448256u, 3196059648u, 3212836864u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{416, 3204448256u, 3192704205u, 3212836864u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{417, 3204448256u, 3189348762u, 3212836864u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{418, 3204448256u, 3184315597u, 3212836864u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{419, 3204448256u, 3175926989u, 3212836864u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{420, 3204448256u, 632815616u, 3212836864u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{421, 3204448256u, 1028443341u, 3212836864u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{422, 3204448256u, 1036831949u, 3212836864u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{423, 3204448256u, 1041865114u, 3212836864u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{424, 3204448256u, 1045220557u, 3212836864u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{425, 3204448256u, 1048576000u, 3212836864u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{426, 3204448256u, 1050253722u, 3212836864u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{427, 3204448256u, 1051931443u, 3212836864u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{428, 3204448256u, 1053609165u, 3212836864u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{429, 3204448256u, 1055286886u, 3212836864u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{430, 3204448256u, 1056964608u, 3212836864u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{431, 3204448256u, 1057803469u, 3212836864u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{432, 3204448256u, 1058642330u, 3212836864u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{433, 3204448256u, 1059481190u, 3212836864u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{434, 3204448256u, 1060320051u, 3212836864u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{435, 3204448256u, 1061158912u, 3212836864u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{436, 3204448256u, 1061997773u, 3212836864u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{437, 3204448256u, 1062836634u, 3212836864u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{438, 3204448256u, 1063675494u, 3212836864u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{439, 3204448256u, 1064514355u, 3212836864u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{440, 3202770534u, 3212836864u, 3219547750u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{441, 3202770534u, 3211998003u, 3219547750u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{442, 3202770534u, 3211159142u, 3219547750u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{443, 3202770534u, 3210320282u, 3219547750u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{444, 3202770534u, 3209481421u, 3219547750u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{445, 3202770534u, 3208642560u, 3219547750u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{446, 3202770534u, 3207803699u, 3219547750u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{447, 3202770534u, 3206964838u, 3219547750u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{448, 3202770534u, 3206125978u, 3219547750u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{449, 3202770534u, 3205287117u, 3219547750u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{450, 3202770534u, 3204448256u, 3219547750u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{451, 3202770534u, 3202770534u, 3219547750u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{452, 3202770534u, 3201092813u, 3219547750u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{453, 3202770534u, 3199415091u, 3219547750u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{454, 3202770534u, 3197737370u, 3219547750u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{455, 3202770534u, 3196059648u, 3219547750u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{456, 3202770534u, 3192704205u, 3219547750u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{457, 3202770534u, 3189348762u, 3219547750u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{458, 3202770534u, 3184315597u, 3219547750u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{459, 3202770534u, 3175926989u, 3219547750u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{460, 3202770534u, 632815616u, 3219547750u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{461, 3202770534u, 1028443341u, 3219547750u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{462, 3202770534u, 1036831949u, 3219547750u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{463, 3202770534u, 1041865114u, 3219547750u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{464, 3202770534u, 1045220557u, 3219547750u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{465, 3202770534u, 1048576000u, 3219547750u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{466, 3202770534u, 1050253722u, 3219547750u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{467, 3202770534u, 1051931443u, 3219547750u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{468, 3202770534u, 1053609165u, 3219547750u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{469, 3202770534u, 1055286886u, 3219547750u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{470, 3202770534u, 1056964608u, 3219547750u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{471, 3202770534u, 1057803469u, 3219547750u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{472, 3202770534u, 1058642330u, 3219547750u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{473, 3202770534u, 1059481190u, 3219547750u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{474, 3202770534u, 1060320051u, 3219547750u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{475, 3202770534u, 1061158912u, 3219547750u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{476, 3202770534u, 1061997773u, 3219547750u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{477, 3202770534u, 1062836634u, 3219547750u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{478, 3202770534u, 1063675494u, 3219547750u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{479, 3202770534u, 1064514355u, 3219547750u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{480, 3201092813u, 3212836864u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{481, 3201092813u, 3211998003u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{482, 3201092813u, 3211159142u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{483, 3201092813u, 3210320282u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{484, 3201092813u, 3209481421u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{485, 3201092813u, 3208642560u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{486, 3201092813u, 3207803699u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{487, 3201092813u, 3206964838u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{488, 3201092813u, 3206125978u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{489, 3201092813u, 3205287117u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{490, 3201092813u, 3204448256u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{491, 3201092813u, 3202770534u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{492, 3201092813u, 3201092813u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{493, 3201092813u, 3199415091u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{494, 3201092813u, 3197737370u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{495, 3201092813u, 3196059648u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{496, 3201092813u, 3192704205u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{497, 3201092813u, 3189348762u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{498, 3201092813u, 3184315597u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{499, 3201092813u, 3175926989u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{500, 3201092813u, 632815616u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{501, 3201092813u, 1028443341u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{502, 3201092813u, 1036831949u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{503, 3201092813u, 1041865114u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{504, 3201092813u, 1045220557u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{505, 3201092813u, 1048576000u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{506, 3201092813u, 1050253722u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{507, 3201092813u, 1051931443u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{508, 3201092813u, 1053609165u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{509, 3201092813u, 1055286886u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{510, 3201092813u, 1056964608u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{511, 3201092813u, 1057803469u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{512, 3201092813u, 1058642330u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{513, 3201092813u, 1059481190u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{514, 3201092813u, 1060320051u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{515, 3201092813u, 1061158912u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{516, 3201092813u, 1061997773u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{517, 3201092813u, 1062836634u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{518, 3201092813u, 1063675494u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{519, 3201092813u, 1064514355u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{520, 3199415091u, 3212836864u, 3216192307u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{521, 3199415091u, 3211998003u, 3216192307u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{522, 3199415091u, 3211159142u, 3216192307u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{523, 3199415091u, 3210320282u, 3216192307u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{524, 3199415091u, 3209481421u, 3216192307u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{525, 3199415091u, 3208642560u, 3216192307u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{526, 3199415091u, 3207803699u, 3216192307u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{527, 3199415091u, 3206964838u, 3216192307u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{528, 3199415091u, 3206125978u, 3216192307u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{529, 3199415091u, 3205287117u, 3216192307u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{530, 3199415091u, 3204448256u, 3216192307u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{531, 3199415091u, 3202770534u, 3216192307u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{532, 3199415091u, 3201092813u, 3216192307u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{533, 3199415091u, 3199415091u, 3216192307u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{534, 3199415091u, 3197737370u, 3216192307u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{535, 3199415091u, 3196059648u, 3216192307u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{536, 3199415091u, 3192704205u, 3216192307u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{537, 3199415091u, 3189348762u, 3216192307u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{538, 3199415091u, 3184315597u, 3216192307u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{539, 3199415091u, 3175926989u, 3216192307u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{540, 3199415091u, 632815616u, 3216192307u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{541, 3199415091u, 1028443341u, 3216192307u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{542, 3199415091u, 1036831949u, 3216192307u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{543, 3199415091u, 1041865114u, 3216192307u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{544, 3199415091u, 1045220557u, 3216192307u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{545, 3199415091u, 1048576000u, 3216192307u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{546, 3199415091u, 1050253722u, 3216192307u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{547, 3199415091u, 1051931443u, 3216192307u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{548, 3199415091u, 1053609165u, 3216192307u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{549, 3199415091u, 1055286886u, 3216192307u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{550, 3199415091u, 1056964608u, 3216192307u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{551, 3199415091u, 1057803469u, 3216192307u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{552, 3199415091u, 1058642330u, 3216192307u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{553, 3199415091u, 1059481190u, 3216192307u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{554, 3199415091u, 1060320051u, 3216192307u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{555, 3199415091u, 1061158912u, 3216192307u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{556, 3199415091u, 1061997773u, 3216192307u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{557, 3199415091u, 1062836634u, 3216192307u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{558, 3199415091u, 1063675494u, 3216192307u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{559, 3199415091u, 1064514355u, 3216192307u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{560, 3197737370u, 3212836864u, 3214514586u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{561, 3197737370u, 3211998003u, 3214514586u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{562, 3197737370u, 3211159142u, 3214514586u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{563, 3197737370u, 3210320282u, 3214514586u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{564, 3197737370u, 3209481421u, 3214514586u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{565, 3197737370u, 3208642560u, 3214514586u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{566, 3197737370u, 3207803699u, 3214514586u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{567, 3197737370u, 3206964838u, 3214514586u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{568, 3197737370u, 3206125978u, 3214514586u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{569, 3197737370u, 3205287117u, 3214514586u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{570, 3197737370u, 3204448256u, 3214514586u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{571, 3197737370u, 3202770534u, 3214514586u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{572, 3197737370u, 3201092813u, 3214514586u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{573, 3197737370u, 3199415091u, 3214514586u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{574, 3197737370u, 3197737370u, 3214514586u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{575, 3197737370u, 3196059648u, 3214514586u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{576, 3197737370u, 3192704205u, 3214514586u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{577, 3197737370u, 3189348762u, 3214514586u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{578, 3197737370u, 3184315597u, 3214514586u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{579, 3197737370u, 3175926989u, 3214514586u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{580, 3197737370u, 632815616u, 3214514586u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{581, 3197737370u, 1028443341u, 3214514586u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{582, 3197737370u, 1036831949u, 3214514586u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{583, 3197737370u, 1041865114u, 3214514586u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{584, 3197737370u, 1045220557u, 3214514586u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{585, 3197737370u, 1048576000u, 3214514586u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{586, 3197737370u, 1050253722u, 3214514586u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{587, 3197737370u, 1051931443u, 3214514586u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{588, 3197737370u, 1053609165u, 3214514586u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{589, 3197737370u, 1055286886u, 3214514586u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{590, 3197737370u, 1056964608u, 3214514586u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{591, 3197737370u, 1057803469u, 3214514586u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{592, 3197737370u, 1058642330u, 3214514586u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{593, 3197737370u, 1059481190u, 3214514586u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{594, 3197737370u, 1060320051u, 3214514586u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{595, 3197737370u, 1061158912u, 3214514586u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{596, 3197737370u, 1061997773u, 3214514586u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{597, 3197737370u, 1062836634u, 3214514586u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{598, 3197737370u, 1063675494u, 3214514586u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{599, 3197737370u, 1064514355u, 3214514586u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{600, 3196059648u, 3212836864u, 3212836864u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{601, 3196059648u, 3211998003u, 3212836864u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{602, 3196059648u, 3211159142u, 3212836864u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{603, 3196059648u, 3210320282u, 3212836864u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{604, 3196059648u, 3209481421u, 3212836864u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{605, 3196059648u, 3208642560u, 3212836864u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{606, 3196059648u, 3207803699u, 3212836864u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{607, 3196059648u, 3206964838u, 3212836864u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{608, 3196059648u, 3206125978u, 3212836864u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{609, 3196059648u, 3205287117u, 3212836864u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{610, 3196059648u, 3204448256u, 3212836864u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{611, 3196059648u, 3202770534u, 3212836864u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{612, 3196059648u, 3201092813u, 3212836864u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{613, 3196059648u, 3199415091u, 3212836864u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{614, 3196059648u, 3197737370u, 3212836864u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{615, 3196059648u, 3196059648u, 3212836864u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{616, 3196059648u, 3192704205u, 3212836864u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{617, 3196059648u, 3189348762u, 3212836864u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{618, 3196059648u, 3184315597u, 3212836864u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{619, 3196059648u, 3175926989u, 3212836864u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{620, 3196059648u, 632815616u, 3212836864u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{621, 3196059648u, 1028443341u, 3212836864u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{622, 3196059648u, 1036831949u, 3212836864u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{623, 3196059648u, 1041865114u, 3212836864u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{624, 3196059648u, 1045220557u, 3212836864u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{625, 3196059648u, 1048576000u, 3212836864u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{626, 3196059648u, 1050253722u, 3212836864u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{627, 3196059648u, 1051931443u, 3212836864u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{628, 3196059648u, 1053609165u, 3212836864u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{629, 3196059648u, 1055286886u, 3212836864u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{630, 3196059648u, 1056964608u, 3212836864u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{631, 3196059648u, 1057803469u, 3212836864u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{632, 3196059648u, 1058642330u, 3212836864u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{633, 3196059648u, 1059481190u, 3212836864u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{634, 3196059648u, 1060320051u, 3212836864u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{635, 3196059648u, 1061158912u, 3212836864u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{636, 3196059648u, 1061997773u, 3212836864u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{637, 3196059648u, 1062836634u, 3212836864u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{638, 3196059648u, 1063675494u, 3212836864u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{639, 3196059648u, 1064514355u, 3212836864u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{640, 3192704205u, 3212836864u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{641, 3192704205u, 3211998003u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{642, 3192704205u, 3211159142u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{643, 3192704205u, 3210320282u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{644, 3192704205u, 3209481421u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{645, 3192704205u, 3208642560u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{646, 3192704205u, 3207803699u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{647, 3192704205u, 3206964838u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{648, 3192704205u, 3206125978u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{649, 3192704205u, 3205287117u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{650, 3192704205u, 3204448256u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{651, 3192704205u, 3202770534u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{652, 3192704205u, 3201092813u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{653, 3192704205u, 3199415091u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{654, 3192704205u, 3197737370u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{655, 3192704205u, 3196059648u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{656, 3192704205u, 3192704205u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{657, 3192704205u, 3189348762u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{658, 3192704205u, 3184315597u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{659, 3192704205u, 3175926989u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{660, 3192704205u, 632815616u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{661, 3192704205u, 1028443341u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{662, 3192704205u, 1036831949u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{663, 3192704205u, 1041865114u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{664, 3192704205u, 1045220557u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{665, 3192704205u, 1048576000u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{666, 3192704205u, 1050253722u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{667, 3192704205u, 1051931443u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{668, 3192704205u, 1053609165u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{669, 3192704205u, 1055286886u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{670, 3192704205u, 1056964608u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{671, 3192704205u, 1057803469u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{672, 3192704205u, 1058642330u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{673, 3192704205u, 1059481190u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{674, 3192704205u, 1060320051u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{675, 3192704205u, 1061158912u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{676, 3192704205u, 1061997773u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{677, 3192704205u, 1062836634u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{678, 3192704205u, 1063675494u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{679, 3192704205u, 1064514355u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{680, 3189348762u, 3212836864u, 3214514586u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{681, 3189348762u, 3211998003u, 3214514586u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{682, 3189348762u, 3211159142u, 3214514586u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{683, 3189348762u, 3210320282u, 3214514586u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{684, 3189348762u, 3209481421u, 3214514586u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{685, 3189348762u, 3208642560u, 3214514586u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{686, 3189348762u, 3207803699u, 3214514586u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{687, 3189348762u, 3206964838u, 3214514586u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{688, 3189348762u, 3206125978u, 3214514586u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{689, 3189348762u, 3205287117u, 3214514586u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{690, 3189348762u, 3204448256u, 3214514586u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{691, 3189348762u, 3202770534u, 3214514586u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{692, 3189348762u, 3201092813u, 3214514586u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{693, 3189348762u, 3199415091u, 3214514586u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{694, 3189348762u, 3197737370u, 3214514586u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{695, 3189348762u, 3196059648u, 3214514586u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{696, 3189348762u, 3192704205u, 3214514586u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{697, 3189348762u, 3189348762u, 3214514586u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{698, 3189348762u, 3184315597u, 3214514586u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{699, 3189348762u, 3175926989u, 3214514586u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{700, 3189348762u, 632815616u, 3214514586u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{701, 3189348762u, 1028443341u, 3214514586u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{702, 3189348762u, 1036831949u, 3214514586u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{703, 3189348762u, 1041865114u, 3214514586u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{704, 3189348762u, 1045220557u, 3214514586u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{705, 3189348762u, 1048576000u, 3214514586u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{706, 3189348762u, 1050253722u, 3214514586u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{707, 3189348762u, 1051931443u, 3214514586u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{708, 3189348762u, 1053609165u, 3214514586u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{709, 3189348762u, 1055286886u, 3214514586u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{710, 3189348762u, 1056964608u, 3214514586u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{711, 3189348762u, 1057803469u, 3214514586u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{712, 3189348762u, 1058642330u, 3214514586u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{713, 3189348762u, 1059481190u, 3214514586u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{714, 3189348762u, 1060320051u, 3214514586u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{715, 3189348762u, 1061158912u, 3214514586u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{716, 3189348762u, 1061997773u, 3214514586u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{717, 3189348762u, 1062836634u, 3214514586u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{718, 3189348762u, 1063675494u, 3214514586u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{719, 3189348762u, 1064514355u, 3214514586u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{720, 3184315597u, 3212836864u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{721, 3184315597u, 3211998003u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{722, 3184315597u, 3211159142u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{723, 3184315597u, 3210320282u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{724, 3184315597u, 3209481421u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{725, 3184315597u, 3208642560u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{726, 3184315597u, 3207803699u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{727, 3184315597u, 3206964838u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{728, 3184315597u, 3206125978u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{729, 3184315597u, 3205287117u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{730, 3184315597u, 3204448256u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{731, 3184315597u, 3202770534u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{732, 3184315597u, 3201092813u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{733, 3184315597u, 3199415091u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{734, 3184315597u, 3197737370u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{735, 3184315597u, 3196059648u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{736, 3184315597u, 3192704205u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{737, 3184315597u, 3189348762u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{738, 3184315597u, 3184315597u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{739, 3184315597u, 3175926989u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{740, 3184315597u, 632815616u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{741, 3184315597u, 1028443341u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{742, 3184315597u, 1036831949u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{743, 3184315597u, 1041865114u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{744, 3184315597u, 1045220557u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{745, 3184315597u, 1048576000u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{746, 3184315597u, 1050253722u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{747, 3184315597u, 1051931443u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{748, 3184315597u, 1053609165u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{749, 3184315597u, 1055286886u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{750, 3184315597u, 1056964608u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{751, 3184315597u, 1057803469u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{752, 3184315597u, 1058642330u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{753, 3184315597u, 1059481190u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{754, 3184315597u, 1060320051u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{755, 3184315597u, 1061158912u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{756, 3184315597u, 1061997773u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{757, 3184315597u, 1062836634u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{758, 3184315597u, 1063675494u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{759, 3184315597u, 1064514355u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{760, 3175926989u, 3212836864u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{761, 3175926989u, 3211998003u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{762, 3175926989u, 3211159142u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{763, 3175926989u, 3210320282u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{764, 3175926989u, 3209481421u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{765, 3175926989u, 3208642560u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{766, 3175926989u, 3207803699u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{767, 3175926989u, 3206964838u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{768, 3175926989u, 3206125978u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{769, 3175926989u, 3205287117u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{770, 3175926989u, 3204448256u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{771, 3175926989u, 3202770534u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{772, 3175926989u, 3201092813u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{773, 3175926989u, 3199415091u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{774, 3175926989u, 3197737370u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{775, 3175926989u, 3196059648u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{776, 3175926989u, 3192704205u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{777, 3175926989u, 3189348762u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{778, 3175926989u, 3184315597u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{779, 3175926989u, 3175926989u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{780, 3175926989u, 632815616u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{781, 3175926989u, 1028443341u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{782, 3175926989u, 1036831949u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{783, 3175926989u, 1041865114u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{784, 3175926989u, 1045220557u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{785, 3175926989u, 1048576000u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{786, 3175926989u, 1050253722u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{787, 3175926989u, 1051931443u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{788, 3175926989u, 1053609165u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{789, 3175926989u, 1055286886u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{790, 3175926989u, 1056964608u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{791, 3175926989u, 1057803469u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{792, 3175926989u, 1058642330u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{793, 3175926989u, 1059481190u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{794, 3175926989u, 1060320051u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{795, 3175926989u, 1061158912u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{796, 3175926989u, 1061997773u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{797, 3175926989u, 1062836634u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{798, 3175926989u, 1063675494u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{799, 3175926989u, 1064514355u, 3217870029u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{800, 1028443341u, 3212836864u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{801, 1028443341u, 3211998003u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{802, 1028443341u, 3211159142u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{803, 1028443341u, 3210320282u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{804, 1028443341u, 3209481421u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{805, 1028443341u, 3208642560u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{806, 1028443341u, 3207803699u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{807, 1028443341u, 3206964838u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{808, 1028443341u, 3206125978u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{809, 1028443341u, 3205287117u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{810, 1028443341u, 3204448256u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{811, 1028443341u, 3202770534u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{812, 1028443341u, 3201092813u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{813, 1028443341u, 3199415091u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{814, 1028443341u, 3197737370u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{815, 1028443341u, 3196059648u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{816, 1028443341u, 3192704205u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{817, 1028443341u, 3189348762u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{818, 1028443341u, 3184315597u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{819, 1028443341u, 3175926989u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{820, 1028443341u, 632815616u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{821, 1028443341u, 1028443341u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{822, 1028443341u, 1036831949u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{823, 1028443341u, 1041865114u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{824, 1028443341u, 1045220557u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{825, 1028443341u, 1048576000u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{826, 1028443341u, 1050253722u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{827, 1028443341u, 1051931443u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{828, 1028443341u, 1053609165u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{829, 1028443341u, 1055286886u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{830, 1028443341u, 1056964608u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{831, 1028443341u, 1057803469u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{832, 1028443341u, 1058642330u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{833, 1028443341u, 1059481190u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{834, 1028443341u, 1060320051u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{835, 1028443341u, 1061158912u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{836, 1028443341u, 1061997773u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{837, 1028443341u, 1062836634u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{838, 1028443341u, 1063675494u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{839, 1028443341u, 1064514355u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{840, 1036831949u, 3212836864u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{841, 1036831949u, 3211998003u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{842, 1036831949u, 3211159142u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{843, 1036831949u, 3210320282u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{844, 1036831949u, 3209481421u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{845, 1036831949u, 3208642560u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{846, 1036831949u, 3207803699u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{847, 1036831949u, 3206964838u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{848, 1036831949u, 3206125978u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{849, 1036831949u, 3205287117u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{850, 1036831949u, 3204448256u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{851, 1036831949u, 3202770534u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{852, 1036831949u, 3201092813u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{853, 1036831949u, 3199415091u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{854, 1036831949u, 3197737370u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{855, 1036831949u, 3196059648u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{856, 1036831949u, 3192704205u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{857, 1036831949u, 3189348762u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{858, 1036831949u, 3184315597u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{859, 1036831949u, 3175926989u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{860, 1036831949u, 632815616u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{861, 1036831949u, 1028443341u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{862, 1036831949u, 1036831949u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{863, 1036831949u, 1041865114u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{864, 1036831949u, 1045220557u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{865, 1036831949u, 1048576000u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{866, 1036831949u, 1050253722u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{867, 1036831949u, 1051931443u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{868, 1036831949u, 1053609165u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{869, 1036831949u, 1055286886u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{870, 1036831949u, 1056964608u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{871, 1036831949u, 1057803469u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{872, 1036831949u, 1058642330u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{873, 1036831949u, 1059481190u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{874, 1036831949u, 1060320051u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{875, 1036831949u, 1061158912u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{876, 1036831949u, 1061997773u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{877, 1036831949u, 1062836634u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{878, 1036831949u, 1063675494u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{879, 1036831949u, 1064514355u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{880, 1041865114u, 3212836864u, 1067030938u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{881, 1041865114u, 3211998003u, 1067030938u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{882, 1041865114u, 3211159142u, 1067030938u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{883, 1041865114u, 3210320282u, 1067030938u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{884, 1041865114u, 3209481421u, 1067030938u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{885, 1041865114u, 3208642560u, 1067030938u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{886, 1041865114u, 3207803699u, 1067030938u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{887, 1041865114u, 3206964838u, 1067030938u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{888, 1041865114u, 3206125978u, 1067030938u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{889, 1041865114u, 3205287117u, 1067030938u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{890, 1041865114u, 3204448256u, 1067030938u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{891, 1041865114u, 3202770534u, 1067030938u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{892, 1041865114u, 3201092813u, 1067030938u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{893, 1041865114u, 3199415091u, 1067030938u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{894, 1041865114u, 3197737370u, 1067030938u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{895, 1041865114u, 3196059648u, 1067030938u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{896, 1041865114u, 3192704205u, 1067030938u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{897, 1041865114u, 3189348762u, 1067030938u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{898, 1041865114u, 3184315597u, 1067030938u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{899, 1041865114u, 3175926989u, 1067030938u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{900, 1041865114u, 632815616u, 1067030938u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{901, 1041865114u, 1028443341u, 1067030938u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{902, 1041865114u, 1036831949u, 1067030938u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{903, 1041865114u, 1041865114u, 1067030938u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{904, 1041865114u, 1045220557u, 1067030938u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{905, 1041865114u, 1048576000u, 1067030938u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{906, 1041865114u, 1050253722u, 1067030938u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{907, 1041865114u, 1051931443u, 1067030938u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{908, 1041865114u, 1053609165u, 1067030938u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{909, 1041865114u, 1055286886u, 1067030938u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{910, 1041865114u, 1056964608u, 1067030938u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{911, 1041865114u, 1057803469u, 1067030938u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{912, 1041865114u, 1058642330u, 1067030938u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{913, 1041865114u, 1059481190u, 1067030938u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{914, 1041865114u, 1060320051u, 1067030938u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{915, 1041865114u, 1061158912u, 1067030938u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{916, 1041865114u, 1061997773u, 1067030938u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{917, 1041865114u, 1062836634u, 1067030938u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{918, 1041865114u, 1063675494u, 1067030938u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{919, 1041865114u, 1064514355u, 1067030938u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{920, 1045220557u, 3212836864u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{921, 1045220557u, 3211998003u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{922, 1045220557u, 3211159142u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{923, 1045220557u, 3210320282u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{924, 1045220557u, 3209481421u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{925, 1045220557u, 3208642560u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{926, 1045220557u, 3207803699u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{927, 1045220557u, 3206964838u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{928, 1045220557u, 3206125978u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{929, 1045220557u, 3205287117u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{930, 1045220557u, 3204448256u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{931, 1045220557u, 3202770534u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{932, 1045220557u, 3201092813u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{933, 1045220557u, 3199415091u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{934, 1045220557u, 3197737370u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{935, 1045220557u, 3196059648u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{936, 1045220557u, 3192704205u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{937, 1045220557u, 3189348762u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{938, 1045220557u, 3184315597u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{939, 1045220557u, 3175926989u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{940, 1045220557u, 632815616u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{941, 1045220557u, 1028443341u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{942, 1045220557u, 1036831949u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{943, 1045220557u, 1041865114u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{944, 1045220557u, 1045220557u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{945, 1045220557u, 1048576000u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{946, 1045220557u, 1050253722u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{947, 1045220557u, 1051931443u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{948, 1045220557u, 1053609165u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{949, 1045220557u, 1055286886u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{950, 1045220557u, 1056964608u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{951, 1045220557u, 1057803469u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{952, 1045220557u, 1058642330u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{953, 1045220557u, 1059481190u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{954, 1045220557u, 1060320051u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{955, 1045220557u, 1061158912u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{956, 1045220557u, 1061997773u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{957, 1045220557u, 1062836634u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{958, 1045220557u, 1063675494u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{959, 1045220557u, 1064514355u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{960, 1048576000u, 3212836864u, 1065353216u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{961, 1048576000u, 3211998003u, 1065353216u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{962, 1048576000u, 3211159142u, 1065353216u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{963, 1048576000u, 3210320282u, 1065353216u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{964, 1048576000u, 3209481421u, 1065353216u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{965, 1048576000u, 3208642560u, 1065353216u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{966, 1048576000u, 3207803699u, 1065353216u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{967, 1048576000u, 3206964838u, 1065353216u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{968, 1048576000u, 3206125978u, 1065353216u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{969, 1048576000u, 3205287117u, 1065353216u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{970, 1048576000u, 3204448256u, 1065353216u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{971, 1048576000u, 3202770534u, 1065353216u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{972, 1048576000u, 3201092813u, 1065353216u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{973, 1048576000u, 3199415091u, 1065353216u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{974, 1048576000u, 3197737370u, 1065353216u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{975, 1048576000u, 3196059648u, 1065353216u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{976, 1048576000u, 3192704205u, 1065353216u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{977, 1048576000u, 3189348762u, 1065353216u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{978, 1048576000u, 3184315597u, 1065353216u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{979, 1048576000u, 3175926989u, 1065353216u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{980, 1048576000u, 632815616u, 1065353216u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{981, 1048576000u, 1028443341u, 1065353216u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{982, 1048576000u, 1036831949u, 1065353216u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{983, 1048576000u, 1041865114u, 1065353216u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{984, 1048576000u, 1045220557u, 1065353216u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{985, 1048576000u, 1048576000u, 1065353216u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{986, 1048576000u, 1050253722u, 1065353216u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{987, 1048576000u, 1051931443u, 1065353216u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{988, 1048576000u, 1053609165u, 1065353216u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{989, 1048576000u, 1055286886u, 1065353216u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{990, 1048576000u, 1056964608u, 1065353216u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{991, 1048576000u, 1057803469u, 1065353216u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{992, 1048576000u, 1058642330u, 1065353216u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{993, 1048576000u, 1059481190u, 1065353216u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{994, 1048576000u, 1060320051u, 1065353216u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{995, 1048576000u, 1061158912u, 1065353216u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{996, 1048576000u, 1061997773u, 1065353216u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{997, 1048576000u, 1062836634u, 1065353216u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{998, 1048576000u, 1063675494u, 1065353216u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{999, 1048576000u, 1064514355u, 1065353216u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1000, 1050253722u, 3212836864u, 1067030938u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1001, 1050253722u, 3211998003u, 1067030938u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1002, 1050253722u, 3211159142u, 1067030938u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1003, 1050253722u, 3210320282u, 1067030938u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1004, 1050253722u, 3209481421u, 1067030938u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1005, 1050253722u, 3208642560u, 1067030938u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1006, 1050253722u, 3207803699u, 1067030938u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1007, 1050253722u, 3206964838u, 1067030938u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1008, 1050253722u, 3206125978u, 1067030938u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1009, 1050253722u, 3205287117u, 1067030938u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1010, 1050253722u, 3204448256u, 1067030938u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1011, 1050253722u, 3202770534u, 1067030938u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1012, 1050253722u, 3201092813u, 1067030938u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1013, 1050253722u, 3199415091u, 1067030938u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1014, 1050253722u, 3197737370u, 1067030938u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1015, 1050253722u, 3196059648u, 1067030938u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1016, 1050253722u, 3192704205u, 1067030938u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1017, 1050253722u, 3189348762u, 1067030938u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1018, 1050253722u, 3184315597u, 1067030938u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1019, 1050253722u, 3175926989u, 1067030938u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1020, 1050253722u, 632815616u, 1067030938u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1021, 1050253722u, 1028443341u, 1067030938u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1022, 1050253722u, 1036831949u, 1067030938u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1023, 1050253722u, 1041865114u, 1067030938u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1024, 1050253722u, 1045220557u, 1067030938u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1025, 1050253722u, 1048576000u, 1067030938u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1026, 1050253722u, 1050253722u, 1067030938u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1027, 1050253722u, 1051931443u, 1067030938u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1028, 1050253722u, 1053609165u, 1067030938u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1029, 1050253722u, 1055286886u, 1067030938u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1030, 1050253722u, 1056964608u, 1067030938u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1031, 1050253722u, 1057803469u, 1067030938u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1032, 1050253722u, 1058642330u, 1067030938u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1033, 1050253722u, 1059481190u, 1067030938u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1034, 1050253722u, 1060320051u, 1067030938u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1035, 1050253722u, 1061158912u, 1067030938u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1036, 1050253722u, 1061997773u, 1067030938u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1037, 1050253722u, 1062836634u, 1067030938u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1038, 1050253722u, 1063675494u, 1067030938u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1039, 1050253722u, 1064514355u, 1067030938u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1040, 1051931443u, 3212836864u, 1068708659u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1041, 1051931443u, 3211998003u, 1068708659u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1042, 1051931443u, 3211159142u, 1068708659u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1043, 1051931443u, 3210320282u, 1068708659u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1044, 1051931443u, 3209481421u, 1068708659u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1045, 1051931443u, 3208642560u, 1068708659u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1046, 1051931443u, 3207803699u, 1068708659u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1047, 1051931443u, 3206964838u, 1068708659u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1048, 1051931443u, 3206125978u, 1068708659u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1049, 1051931443u, 3205287117u, 1068708659u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1050, 1051931443u, 3204448256u, 1068708659u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1051, 1051931443u, 3202770534u, 1068708659u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1052, 1051931443u, 3201092813u, 1068708659u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1053, 1051931443u, 3199415091u, 1068708659u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1054, 1051931443u, 3197737370u, 1068708659u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1055, 1051931443u, 3196059648u, 1068708659u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1056, 1051931443u, 3192704205u, 1068708659u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1057, 1051931443u, 3189348762u, 1068708659u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1058, 1051931443u, 3184315597u, 1068708659u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1059, 1051931443u, 3175926989u, 1068708659u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1060, 1051931443u, 632815616u, 1068708659u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1061, 1051931443u, 1028443341u, 1068708659u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1062, 1051931443u, 1036831949u, 1068708659u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1063, 1051931443u, 1041865114u, 1068708659u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1064, 1051931443u, 1045220557u, 1068708659u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1065, 1051931443u, 1048576000u, 1068708659u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1066, 1051931443u, 1050253722u, 1068708659u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1067, 1051931443u, 1051931443u, 1068708659u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1068, 1051931443u, 1053609165u, 1068708659u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1069, 1051931443u, 1055286886u, 1068708659u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1070, 1051931443u, 1056964608u, 1068708659u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1071, 1051931443u, 1057803469u, 1068708659u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1072, 1051931443u, 1058642330u, 1068708659u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1073, 1051931443u, 1059481190u, 1068708659u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1074, 1051931443u, 1060320051u, 1068708659u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1075, 1051931443u, 1061158912u, 1068708659u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1076, 1051931443u, 1061997773u, 1068708659u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1077, 1051931443u, 1062836634u, 1068708659u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1078, 1051931443u, 1063675494u, 1068708659u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1079, 1051931443u, 1064514355u, 1068708659u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1080, 1053609165u, 3212836864u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1081, 1053609165u, 3211998003u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1082, 1053609165u, 3211159142u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1083, 1053609165u, 3210320282u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1084, 1053609165u, 3209481421u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1085, 1053609165u, 3208642560u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1086, 1053609165u, 3207803699u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1087, 1053609165u, 3206964838u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1088, 1053609165u, 3206125978u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1089, 1053609165u, 3205287117u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1090, 1053609165u, 3204448256u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1091, 1053609165u, 3202770534u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1092, 1053609165u, 3201092813u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1093, 1053609165u, 3199415091u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1094, 1053609165u, 3197737370u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1095, 1053609165u, 3196059648u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1096, 1053609165u, 3192704205u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1097, 1053609165u, 3189348762u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1098, 1053609165u, 3184315597u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1099, 1053609165u, 3175926989u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1100, 1053609165u, 632815616u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1101, 1053609165u, 1028443341u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1102, 1053609165u, 1036831949u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1103, 1053609165u, 1041865114u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1104, 1053609165u, 1045220557u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1105, 1053609165u, 1048576000u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1106, 1053609165u, 1050253722u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1107, 1053609165u, 1051931443u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1108, 1053609165u, 1053609165u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1109, 1053609165u, 1055286886u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1110, 1053609165u, 1056964608u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1111, 1053609165u, 1057803469u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1112, 1053609165u, 1058642330u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1113, 1053609165u, 1059481190u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1114, 1053609165u, 1060320051u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1115, 1053609165u, 1061158912u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1116, 1053609165u, 1061997773u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1117, 1053609165u, 1062836634u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1118, 1053609165u, 1063675494u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1119, 1053609165u, 1064514355u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1120, 1055286886u, 3212836864u, 1072064102u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1121, 1055286886u, 3211998003u, 1072064102u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1122, 1055286886u, 3211159142u, 1072064102u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1123, 1055286886u, 3210320282u, 1072064102u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1124, 1055286886u, 3209481421u, 1072064102u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1125, 1055286886u, 3208642560u, 1072064102u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1126, 1055286886u, 3207803699u, 1072064102u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1127, 1055286886u, 3206964838u, 1072064102u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1128, 1055286886u, 3206125978u, 1072064102u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1129, 1055286886u, 3205287117u, 1072064102u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1130, 1055286886u, 3204448256u, 1072064102u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1131, 1055286886u, 3202770534u, 1072064102u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1132, 1055286886u, 3201092813u, 1072064102u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1133, 1055286886u, 3199415091u, 1072064102u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1134, 1055286886u, 3197737370u, 1072064102u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1135, 1055286886u, 3196059648u, 1072064102u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1136, 1055286886u, 3192704205u, 1072064102u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1137, 1055286886u, 3189348762u, 1072064102u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1138, 1055286886u, 3184315597u, 1072064102u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1139, 1055286886u, 3175926989u, 1072064102u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1140, 1055286886u, 632815616u, 1072064102u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1141, 1055286886u, 1028443341u, 1072064102u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1142, 1055286886u, 1036831949u, 1072064102u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1143, 1055286886u, 1041865114u, 1072064102u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1144, 1055286886u, 1045220557u, 1072064102u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1145, 1055286886u, 1048576000u, 1072064102u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1146, 1055286886u, 1050253722u, 1072064102u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1147, 1055286886u, 1051931443u, 1072064102u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1148, 1055286886u, 1053609165u, 1072064102u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1149, 1055286886u, 1055286886u, 1072064102u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1150, 1055286886u, 1056964608u, 1072064102u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1151, 1055286886u, 1057803469u, 1072064102u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1152, 1055286886u, 1058642330u, 1072064102u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1153, 1055286886u, 1059481190u, 1072064102u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1154, 1055286886u, 1060320051u, 1072064102u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1155, 1055286886u, 1061158912u, 1072064102u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1156, 1055286886u, 1061997773u, 1072064102u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1157, 1055286886u, 1062836634u, 1072064102u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1158, 1055286886u, 1063675494u, 1072064102u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1159, 1055286886u, 1064514355u, 1072064102u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1160, 1056964608u, 3212836864u, 1065353216u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1161, 1056964608u, 3211998003u, 1065353216u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1162, 1056964608u, 3211159142u, 1065353216u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1163, 1056964608u, 3210320282u, 1065353216u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1164, 1056964608u, 3209481421u, 1065353216u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1165, 1056964608u, 3208642560u, 1065353216u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1166, 1056964608u, 3207803699u, 1065353216u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1167, 1056964608u, 3206964838u, 1065353216u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1168, 1056964608u, 3206125978u, 1065353216u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1169, 1056964608u, 3205287117u, 1065353216u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1170, 1056964608u, 3204448256u, 1065353216u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1171, 1056964608u, 3202770534u, 1065353216u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1172, 1056964608u, 3201092813u, 1065353216u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1173, 1056964608u, 3199415091u, 1065353216u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1174, 1056964608u, 3197737370u, 1065353216u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1175, 1056964608u, 3196059648u, 1065353216u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1176, 1056964608u, 3192704205u, 1065353216u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1177, 1056964608u, 3189348762u, 1065353216u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1178, 1056964608u, 3184315597u, 1065353216u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1179, 1056964608u, 3175926989u, 1065353216u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1180, 1056964608u, 632815616u, 1065353216u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1181, 1056964608u, 1028443341u, 1065353216u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1182, 1056964608u, 1036831949u, 1065353216u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1183, 1056964608u, 1041865114u, 1065353216u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1184, 1056964608u, 1045220557u, 1065353216u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1185, 1056964608u, 1048576000u, 1065353216u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1186, 1056964608u, 1050253722u, 1065353216u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1187, 1056964608u, 1051931443u, 1065353216u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1188, 1056964608u, 1053609165u, 1065353216u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1189, 1056964608u, 1055286886u, 1065353216u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1190, 1056964608u, 1056964608u, 1065353216u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1191, 1056964608u, 1057803469u, 1065353216u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1192, 1056964608u, 1058642330u, 1065353216u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1193, 1056964608u, 1059481190u, 1065353216u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1194, 1056964608u, 1060320051u, 1065353216u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1195, 1056964608u, 1061158912u, 1065353216u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1196, 1056964608u, 1061997773u, 1065353216u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1197, 1056964608u, 1062836634u, 1065353216u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1198, 1056964608u, 1063675494u, 1065353216u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1199, 1056964608u, 1064514355u, 1065353216u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1200, 1057803469u, 3212836864u, 1066192077u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1201, 1057803469u, 3211998003u, 1066192077u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1202, 1057803469u, 3211159142u, 1066192077u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1203, 1057803469u, 3210320282u, 1066192077u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1204, 1057803469u, 3209481421u, 1066192077u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1205, 1057803469u, 3208642560u, 1066192077u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1206, 1057803469u, 3207803699u, 1066192077u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1207, 1057803469u, 3206964838u, 1066192077u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1208, 1057803469u, 3206125978u, 1066192077u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1209, 1057803469u, 3205287117u, 1066192077u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1210, 1057803469u, 3204448256u, 1066192077u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1211, 1057803469u, 3202770534u, 1066192077u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1212, 1057803469u, 3201092813u, 1066192077u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1213, 1057803469u, 3199415091u, 1066192077u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1214, 1057803469u, 3197737370u, 1066192077u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1215, 1057803469u, 3196059648u, 1066192077u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1216, 1057803469u, 3192704205u, 1066192077u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1217, 1057803469u, 3189348762u, 1066192077u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1218, 1057803469u, 3184315597u, 1066192077u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1219, 1057803469u, 3175926989u, 1066192077u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1220, 1057803469u, 632815616u, 1066192077u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1221, 1057803469u, 1028443341u, 1066192077u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1222, 1057803469u, 1036831949u, 1066192077u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1223, 1057803469u, 1041865114u, 1066192077u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1224, 1057803469u, 1045220557u, 1066192077u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1225, 1057803469u, 1048576000u, 1066192077u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1226, 1057803469u, 1050253722u, 1066192077u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1227, 1057803469u, 1051931443u, 1066192077u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1228, 1057803469u, 1053609165u, 1066192077u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1229, 1057803469u, 1055286886u, 1066192077u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1230, 1057803469u, 1056964608u, 1066192077u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1231, 1057803469u, 1057803469u, 1066192077u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1232, 1057803469u, 1058642330u, 1066192077u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1233, 1057803469u, 1059481190u, 1066192077u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1234, 1057803469u, 1060320051u, 1066192077u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1235, 1057803469u, 1061158912u, 1066192077u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1236, 1057803469u, 1061997773u, 1066192077u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1237, 1057803469u, 1062836634u, 1066192077u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1238, 1057803469u, 1063675494u, 1066192077u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1239, 1057803469u, 1064514355u, 1066192077u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1240, 1058642330u, 3212836864u, 1067030938u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1241, 1058642330u, 3211998003u, 1067030938u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1242, 1058642330u, 3211159142u, 1067030938u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1243, 1058642330u, 3210320282u, 1067030938u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1244, 1058642330u, 3209481421u, 1067030938u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1245, 1058642330u, 3208642560u, 1067030938u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1246, 1058642330u, 3207803699u, 1067030938u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1247, 1058642330u, 3206964838u, 1067030938u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1248, 1058642330u, 3206125978u, 1067030938u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1249, 1058642330u, 3205287117u, 1067030938u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1250, 1058642330u, 3204448256u, 1067030938u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1251, 1058642330u, 3202770534u, 1067030938u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1252, 1058642330u, 3201092813u, 1067030938u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1253, 1058642330u, 3199415091u, 1067030938u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1254, 1058642330u, 3197737370u, 1067030938u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1255, 1058642330u, 3196059648u, 1067030938u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1256, 1058642330u, 3192704205u, 1067030938u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1257, 1058642330u, 3189348762u, 1067030938u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1258, 1058642330u, 3184315597u, 1067030938u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1259, 1058642330u, 3175926989u, 1067030938u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1260, 1058642330u, 632815616u, 1067030938u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1261, 1058642330u, 1028443341u, 1067030938u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1262, 1058642330u, 1036831949u, 1067030938u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1263, 1058642330u, 1041865114u, 1067030938u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1264, 1058642330u, 1045220557u, 1067030938u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1265, 1058642330u, 1048576000u, 1067030938u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1266, 1058642330u, 1050253722u, 1067030938u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1267, 1058642330u, 1051931443u, 1067030938u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1268, 1058642330u, 1053609165u, 1067030938u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1269, 1058642330u, 1055286886u, 1067030938u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1270, 1058642330u, 1056964608u, 1067030938u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1271, 1058642330u, 1057803469u, 1067030938u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1272, 1058642330u, 1058642330u, 1067030938u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1273, 1058642330u, 1059481190u, 1067030938u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1274, 1058642330u, 1060320051u, 1067030938u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1275, 1058642330u, 1061158912u, 1067030938u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1276, 1058642330u, 1061997773u, 1067030938u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1277, 1058642330u, 1062836634u, 1067030938u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1278, 1058642330u, 1063675494u, 1067030938u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1279, 1058642330u, 1064514355u, 1067030938u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1280, 1059481190u, 3212836864u, 1067869798u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1281, 1059481190u, 3211998003u, 1067869798u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1282, 1059481190u, 3211159142u, 1067869798u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1283, 1059481190u, 3210320282u, 1067869798u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1284, 1059481190u, 3209481421u, 1067869798u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1285, 1059481190u, 3208642560u, 1067869798u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1286, 1059481190u, 3207803699u, 1067869798u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1287, 1059481190u, 3206964838u, 1067869798u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1288, 1059481190u, 3206125978u, 1067869798u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1289, 1059481190u, 3205287117u, 1067869798u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1290, 1059481190u, 3204448256u, 1067869798u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1291, 1059481190u, 3202770534u, 1067869798u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1292, 1059481190u, 3201092813u, 1067869798u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1293, 1059481190u, 3199415091u, 1067869798u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1294, 1059481190u, 3197737370u, 1067869798u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1295, 1059481190u, 3196059648u, 1067869798u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1296, 1059481190u, 3192704205u, 1067869798u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1297, 1059481190u, 3189348762u, 1067869798u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1298, 1059481190u, 3184315597u, 1067869798u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1299, 1059481190u, 3175926989u, 1067869798u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1300, 1059481190u, 632815616u, 1067869798u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1301, 1059481190u, 1028443341u, 1067869798u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1302, 1059481190u, 1036831949u, 1067869798u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1303, 1059481190u, 1041865114u, 1067869798u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1304, 1059481190u, 1045220557u, 1067869798u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1305, 1059481190u, 1048576000u, 1067869798u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1306, 1059481190u, 1050253722u, 1067869798u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1307, 1059481190u, 1051931443u, 1067869798u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1308, 1059481190u, 1053609165u, 1067869798u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1309, 1059481190u, 1055286886u, 1067869798u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1310, 1059481190u, 1056964608u, 1067869798u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1311, 1059481190u, 1057803469u, 1067869798u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1312, 1059481190u, 1058642330u, 1067869798u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1313, 1059481190u, 1059481190u, 1067869798u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1314, 1059481190u, 1060320051u, 1067869798u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1315, 1059481190u, 1061158912u, 1067869798u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1316, 1059481190u, 1061997773u, 1067869798u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1317, 1059481190u, 1062836634u, 1067869798u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1318, 1059481190u, 1063675494u, 1067869798u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1319, 1059481190u, 1064514355u, 1067869798u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1320, 1060320051u, 3212836864u, 1068708659u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1321, 1060320051u, 3211998003u, 1068708659u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1322, 1060320051u, 3211159142u, 1068708659u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1323, 1060320051u, 3210320282u, 1068708659u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1324, 1060320051u, 3209481421u, 1068708659u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1325, 1060320051u, 3208642560u, 1068708659u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1326, 1060320051u, 3207803699u, 1068708659u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1327, 1060320051u, 3206964838u, 1068708659u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1328, 1060320051u, 3206125978u, 1068708659u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1329, 1060320051u, 3205287117u, 1068708659u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1330, 1060320051u, 3204448256u, 1068708659u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1331, 1060320051u, 3202770534u, 1068708659u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1332, 1060320051u, 3201092813u, 1068708659u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1333, 1060320051u, 3199415091u, 1068708659u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1334, 1060320051u, 3197737370u, 1068708659u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1335, 1060320051u, 3196059648u, 1068708659u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1336, 1060320051u, 3192704205u, 1068708659u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1337, 1060320051u, 3189348762u, 1068708659u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1338, 1060320051u, 3184315597u, 1068708659u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1339, 1060320051u, 3175926989u, 1068708659u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1340, 1060320051u, 632815616u, 1068708659u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1341, 1060320051u, 1028443341u, 1068708659u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1342, 1060320051u, 1036831949u, 1068708659u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1343, 1060320051u, 1041865114u, 1068708659u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1344, 1060320051u, 1045220557u, 1068708659u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1345, 1060320051u, 1048576000u, 1068708659u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1346, 1060320051u, 1050253722u, 1068708659u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1347, 1060320051u, 1051931443u, 1068708659u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1348, 1060320051u, 1053609165u, 1068708659u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1349, 1060320051u, 1055286886u, 1068708659u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1350, 1060320051u, 1056964608u, 1068708659u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1351, 1060320051u, 1057803469u, 1068708659u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1352, 1060320051u, 1058642330u, 1068708659u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1353, 1060320051u, 1059481190u, 1068708659u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1354, 1060320051u, 1060320051u, 1068708659u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1355, 1060320051u, 1061158912u, 1068708659u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1356, 1060320051u, 1061997773u, 1068708659u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1357, 1060320051u, 1062836634u, 1068708659u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1358, 1060320051u, 1063675494u, 1068708659u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1359, 1060320051u, 1064514355u, 1068708659u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1360, 1061158912u, 3212836864u, 1069547520u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1361, 1061158912u, 3211998003u, 1069547520u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1362, 1061158912u, 3211159142u, 1069547520u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1363, 1061158912u, 3210320282u, 1069547520u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1364, 1061158912u, 3209481421u, 1069547520u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1365, 1061158912u, 3208642560u, 1069547520u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1366, 1061158912u, 3207803699u, 1069547520u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1367, 1061158912u, 3206964838u, 1069547520u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1368, 1061158912u, 3206125978u, 1069547520u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1369, 1061158912u, 3205287117u, 1069547520u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1370, 1061158912u, 3204448256u, 1069547520u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1371, 1061158912u, 3202770534u, 1069547520u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1372, 1061158912u, 3201092813u, 1069547520u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1373, 1061158912u, 3199415091u, 1069547520u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1374, 1061158912u, 3197737370u, 1069547520u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1375, 1061158912u, 3196059648u, 1069547520u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1376, 1061158912u, 3192704205u, 1069547520u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1377, 1061158912u, 3189348762u, 1069547520u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1378, 1061158912u, 3184315597u, 1069547520u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1379, 1061158912u, 3175926989u, 1069547520u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1380, 1061158912u, 632815616u, 1069547520u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1381, 1061158912u, 1028443341u, 1069547520u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1382, 1061158912u, 1036831949u, 1069547520u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1383, 1061158912u, 1041865114u, 1069547520u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1384, 1061158912u, 1045220557u, 1069547520u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1385, 1061158912u, 1048576000u, 1069547520u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1386, 1061158912u, 1050253722u, 1069547520u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1387, 1061158912u, 1051931443u, 1069547520u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1388, 1061158912u, 1053609165u, 1069547520u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1389, 1061158912u, 1055286886u, 1069547520u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1390, 1061158912u, 1056964608u, 1069547520u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1391, 1061158912u, 1057803469u, 1069547520u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1392, 1061158912u, 1058642330u, 1069547520u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1393, 1061158912u, 1059481190u, 1069547520u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1394, 1061158912u, 1060320051u, 1069547520u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1395, 1061158912u, 1061158912u, 1069547520u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1396, 1061158912u, 1061997773u, 1069547520u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1397, 1061158912u, 1062836634u, 1069547520u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1398, 1061158912u, 1063675494u, 1069547520u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1399, 1061158912u, 1064514355u, 1069547520u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1400, 1061997773u, 3212836864u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1401, 1061997773u, 3211998003u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1402, 1061997773u, 3211159142u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1403, 1061997773u, 3210320282u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1404, 1061997773u, 3209481421u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1405, 1061997773u, 3208642560u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1406, 1061997773u, 3207803699u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1407, 1061997773u, 3206964838u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1408, 1061997773u, 3206125978u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1409, 1061997773u, 3205287117u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1410, 1061997773u, 3204448256u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1411, 1061997773u, 3202770534u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1412, 1061997773u, 3201092813u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1413, 1061997773u, 3199415091u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1414, 1061997773u, 3197737370u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1415, 1061997773u, 3196059648u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1416, 1061997773u, 3192704205u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1417, 1061997773u, 3189348762u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1418, 1061997773u, 3184315597u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1419, 1061997773u, 3175926989u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1420, 1061997773u, 632815616u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1421, 1061997773u, 1028443341u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1422, 1061997773u, 1036831949u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1423, 1061997773u, 1041865114u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1424, 1061997773u, 1045220557u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1425, 1061997773u, 1048576000u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1426, 1061997773u, 1050253722u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1427, 1061997773u, 1051931443u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1428, 1061997773u, 1053609165u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1429, 1061997773u, 1055286886u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1430, 1061997773u, 1056964608u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1431, 1061997773u, 1057803469u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1432, 1061997773u, 1058642330u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1433, 1061997773u, 1059481190u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1434, 1061997773u, 1060320051u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1435, 1061997773u, 1061158912u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1436, 1061997773u, 1061997773u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1437, 1061997773u, 1062836634u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1438, 1061997773u, 1063675494u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1439, 1061997773u, 1064514355u, 1070386381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1440, 1062836634u, 3212836864u, 1071225242u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1441, 1062836634u, 3211998003u, 1071225242u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1442, 1062836634u, 3211159142u, 1071225242u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1443, 1062836634u, 3210320282u, 1071225242u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1444, 1062836634u, 3209481421u, 1071225242u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1445, 1062836634u, 3208642560u, 1071225242u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1446, 1062836634u, 3207803699u, 1071225242u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1447, 1062836634u, 3206964838u, 1071225242u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1448, 1062836634u, 3206125978u, 1071225242u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1449, 1062836634u, 3205287117u, 1071225242u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1450, 1062836634u, 3204448256u, 1071225242u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1451, 1062836634u, 3202770534u, 1071225242u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1452, 1062836634u, 3201092813u, 1071225242u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1453, 1062836634u, 3199415091u, 1071225242u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1454, 1062836634u, 3197737370u, 1071225242u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1455, 1062836634u, 3196059648u, 1071225242u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1456, 1062836634u, 3192704205u, 1071225242u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1457, 1062836634u, 3189348762u, 1071225242u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1458, 1062836634u, 3184315597u, 1071225242u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1459, 1062836634u, 3175926989u, 1071225242u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1460, 1062836634u, 632815616u, 1071225242u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1461, 1062836634u, 1028443341u, 1071225242u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1462, 1062836634u, 1036831949u, 1071225242u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1463, 1062836634u, 1041865114u, 1071225242u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1464, 1062836634u, 1045220557u, 1071225242u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1465, 1062836634u, 1048576000u, 1071225242u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1466, 1062836634u, 1050253722u, 1071225242u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1467, 1062836634u, 1051931443u, 1071225242u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1468, 1062836634u, 1053609165u, 1071225242u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1469, 1062836634u, 1055286886u, 1071225242u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1470, 1062836634u, 1056964608u, 1071225242u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1471, 1062836634u, 1057803469u, 1071225242u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1472, 1062836634u, 1058642330u, 1071225242u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1473, 1062836634u, 1059481190u, 1071225242u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1474, 1062836634u, 1060320051u, 1071225242u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1475, 1062836634u, 1061158912u, 1071225242u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1476, 1062836634u, 1061997773u, 1071225242u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1477, 1062836634u, 1062836634u, 1071225242u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1478, 1062836634u, 1063675494u, 1071225242u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1479, 1062836634u, 1064514355u, 1071225242u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1480, 1063675494u, 3212836864u, 1072064102u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1481, 1063675494u, 3211998003u, 1072064102u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1482, 1063675494u, 3211159142u, 1072064102u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1483, 1063675494u, 3210320282u, 1072064102u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1484, 1063675494u, 3209481421u, 1072064102u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1485, 1063675494u, 3208642560u, 1072064102u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1486, 1063675494u, 3207803699u, 1072064102u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1487, 1063675494u, 3206964838u, 1072064102u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1488, 1063675494u, 3206125978u, 1072064102u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1489, 1063675494u, 3205287117u, 1072064102u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1490, 1063675494u, 3204448256u, 1072064102u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1491, 1063675494u, 3202770534u, 1072064102u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1492, 1063675494u, 3201092813u, 1072064102u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1493, 1063675494u, 3199415091u, 1072064102u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1494, 1063675494u, 3197737370u, 1072064102u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1495, 1063675494u, 3196059648u, 1072064102u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1496, 1063675494u, 3192704205u, 1072064102u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1497, 1063675494u, 3189348762u, 1072064102u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1498, 1063675494u, 3184315597u, 1072064102u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1499, 1063675494u, 3175926989u, 1072064102u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1500, 1063675494u, 632815616u, 1072064102u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1501, 1063675494u, 1028443341u, 1072064102u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1502, 1063675494u, 1036831949u, 1072064102u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1503, 1063675494u, 1041865114u, 1072064102u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1504, 1063675494u, 1045220557u, 1072064102u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1505, 1063675494u, 1048576000u, 1072064102u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1506, 1063675494u, 1050253722u, 1072064102u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1507, 1063675494u, 1051931443u, 1072064102u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1508, 1063675494u, 1053609165u, 1072064102u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1509, 1063675494u, 1055286886u, 1072064102u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1510, 1063675494u, 1056964608u, 1072064102u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1511, 1063675494u, 1057803469u, 1072064102u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1512, 1063675494u, 1058642330u, 1072064102u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1513, 1063675494u, 1059481190u, 1072064102u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1514, 1063675494u, 1060320051u, 1072064102u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1515, 1063675494u, 1061158912u, 1072064102u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1516, 1063675494u, 1061997773u, 1072064102u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1517, 1063675494u, 1062836634u, 1072064102u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1518, 1063675494u, 1063675494u, 1072064102u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1519, 1063675494u, 1064514355u, 1072064102u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1520, 1064514355u, 3212836864u, 1072902963u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1521, 1064514355u, 3211998003u, 1072902963u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1522, 1064514355u, 3211159142u, 1072902963u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1523, 1064514355u, 3210320282u, 1072902963u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1524, 1064514355u, 3209481421u, 1072902963u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1525, 1064514355u, 3208642560u, 1072902963u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1526, 1064514355u, 3207803699u, 1072902963u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1527, 1064514355u, 3206964838u, 1072902963u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1528, 1064514355u, 3206125978u, 1072902963u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1529, 1064514355u, 3205287117u, 1072902963u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1530, 1064514355u, 3204448256u, 1072902963u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1531, 1064514355u, 3202770534u, 1072902963u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1532, 1064514355u, 3201092813u, 1072902963u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1533, 1064514355u, 3199415091u, 1072902963u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1534, 1064514355u, 3197737370u, 1072902963u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1535, 1064514355u, 3196059648u, 1072902963u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1536, 1064514355u, 3192704205u, 1072902963u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1537, 1064514355u, 3189348762u, 1072902963u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1538, 1064514355u, 3184315597u, 1072902963u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1539, 1064514355u, 3175926989u, 1072902963u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1540, 1064514355u, 632815616u, 1072902963u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1541, 1064514355u, 1028443341u, 1072902963u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1542, 1064514355u, 1036831949u, 1072902963u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1543, 1064514355u, 1041865114u, 1072902963u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1544, 1064514355u, 1045220557u, 1072902963u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1545, 1064514355u, 1048576000u, 1072902963u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1546, 1064514355u, 1050253722u, 1072902963u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1547, 1064514355u, 1051931443u, 1072902963u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1548, 1064514355u, 1053609165u, 1072902963u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1549, 1064514355u, 1055286886u, 1072902963u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1550, 1064514355u, 1056964608u, 1072902963u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1551, 1064514355u, 1057803469u, 1072902963u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1552, 1064514355u, 1058642330u, 1072902963u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1553, 1064514355u, 1059481190u, 1072902963u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1554, 1064514355u, 1060320051u, 1072902963u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1555, 1064514355u, 1061158912u, 1072902963u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1556, 1064514355u, 1061997773u, 1072902963u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1557, 1064514355u, 1062836634u, 1072902963u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1558, 1064514355u, 1063675494u, 1072902963u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1559, 1064514355u, 1064514355u, 1072902963u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1560, 1107800421u, 1203999711u, 1065857381u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1561, 3196650934u, 896005582u, 3213428150u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1562, 3368700125u, 3308232444u, 3217705181u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1563, 1224242132u, 3061363425u, 1073247188u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1564, 1198712763u, 919636942u, 1072883643u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1565, 3159309973u, 852521077u, 3218030229u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1566, 954173073u, 850531830u, 1071613585u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1567, 3090780435u, 1035260608u, 3216609555u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1568, 966554515u, 3234538174u, 1067217811u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1569, 1312607135u, 1194999402u, 1069337503u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1570, 1166191415u, 1018661564u, 1065528119u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1571, 3111900019u, 1130472166u, 3220951923u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1572, 1234419246u, 2984575812u, 1066647086u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1573, 1302107128u, 3370647675u, 1067226104u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1574, 1052801068u, 3039122570u, 1069578284u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1575, 1060849628u, 3081357692u, 1069238236u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1576, 3484320003u, 3033957825u, 3215884547u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1577, 3181522772u, 3305392896u, 3215077204u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1578, 1167223673u, 846102364u, 1066560377u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1579, 968192794u, 878547432u, 1068856090u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1580, 3122346862u, 1111584337u, 3214621550u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1581, 906701409u, 2968301825u, 1066084961u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1582, 3471653172u, 1154138102u, 3219994932u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1583, 3231467496u, 934336592u, 3214690280u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1584, 1341514497u, 3466051188u, 1073079041u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1585, 1272351391u, 3373485062u, 1071024799u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1586, 3319724992u, 3354615790u, 3219061696u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1587, 940236348u, 3304072663u, 1066065468u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1588, 3251541546u, 3174764041u, 3217987114u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1589, 3099843889u, 3355962282u, 3217284401u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1590, 3110358400u, 851145088u, 3219410304u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1591, 3371863479u, 1014861921u, 3220868535u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1592, 3204069187u, 966573255u, 3220846403u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1593, 1306460502u, 903489435u, 1071579478u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1594, 1197542187u, 3024598921u, 1071713067u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1595, 1184239996u, 3224098462u, 1066799484u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1596, 1252490238u, 1173619825u, 1067940862u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1597, 1001673627u, 3462631271u, 1068782491u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1598, 976098044u, 1151967422u, 1068372732u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1599, 941796645u, 886451963u, 1067625765u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1600, 3287199470u, 854245542u, 3220090606u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1601, 1143233714u, 1007268238u, 1067736242u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1602, 1139941253u, 1147688821u, 1072832389u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1603, 3143717025u, 3234638157u, 3219214497u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1604, 3048866608u, 3449209899u, 3216638768u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1605, 3240298487u, 1020260821u, 3215132663u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1606, 1288902137u, 3123875978u, 1070798329u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1607, 1333134799u, 1338107877u, 1073087951u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1608, 1187847971u, 1317663644u, 1070407459u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1609, 3329354473u, 3165437289u, 3220302569u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1610, 1309289088u, 1019883016u, 1066019456u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1611, 3444653659u, 1279248024u, 3218161243u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1612, 3405585402u, 2962345057u, 3221036026u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1613, 3106647724u, 853848387u, 3215699628u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1614, 1106778573u, 3304487767u, 1073224141u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1615, 1140567947u, 3069174149u, 1073459083u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1616, 1238569473u, 873035665u, 1070797313u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1617, 1261071232u, 1182202773u, 1068133248u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1618, 1175011025u, 3029705783u, 1065959121u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1619, 1082692850u, 1211581107u, 1065915634u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1620, 974547519u, 3475164509u, 1066822207u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1621, 3058097085u, 3104309359u, 3217480637u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1622, 3107252546u, 1071134451u, 3216304450u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1623, 3096032662u, 2976848821u, 3213473174u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1624, 3197942144u, 3094120030u, 3214719360u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1625, 3403348556u, 3184653669u, 3218799180u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1626, 3182301130u, 3460764044u, 3215855562u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1627, 1136411063u, 1118097422u, 1069302199u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1628, 3239231622u, 3302723069u, 3214065798u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1629, 3340615780u, 870350055u, 3214786660u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1630, 998567360u, 2995278691u, 1065676224u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1631, 3417964312u, 1321337529u, 3216637720u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1632, 3109481038u, 1143864063u, 3218532942u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1633, 1148867223u, 1256486202u, 1073369751u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1634, 989687421u, 3372681320u, 1073573501u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1635, 1152956913u, 3166480640u, 1069070833u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1636, 892922651u, 3373029087u, 1069083419u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1637, 1307091856u, 1103202538u, 1072210832u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1638, 1077234132u, 3272167130u, 1068845524u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1639, 1142167709u, 1096445242u, 1066670237u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1640, 3426232834u, 1036705270u, 3216517634u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1641, 3368566779u, 967249167u, 3217571835u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1642, 3030724760u, 3349013503u, 3215274136u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1643, 1138741813u, 3073453199u, 1071632949u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1644, 982950501u, 982549888u, 1066836581u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1645, 1142981585u, 1015602236u, 1067484113u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1646, 3347165962u, 3135486696u, 3212948234u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1647, 1009535440u, 3381353228u, 1068255696u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1648, 3103736980u, 3402950505u, 3221177492u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1649, 3126820946u, 1077903063u, 3219095634u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1650, 3473956030u, 976891930u, 3213909182u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1651, 3349098349u, 1055327704u, 3214880621u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1652, 3152729489u, 1060398533u, 3219838353u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1653, 945568720u, 3313485084u, 1071397840u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1654, 3345489836u, 1108392401u, 3219660716u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1655, 976791751u, 3230678102u, 1069066439u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1656, 1004442355u, 3036510596u, 1071551219u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1657, 1108485380u, 3173536878u, 1066542340u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1658, 1061834641u, 972388096u, 1070223249u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1659, 3381268392u, 1146976802u, 3213496232u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1660, 1087189715u, 2952822478u, 1070412499u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1661, 3212952285u, 3329407365u, 3212952285u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1662, 1000611335u, 857599439u, 1067720199u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1663, 3466188568u, 1041678304u, 3214530328u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1664, 3072456205u, 3160254633u, 3215062541u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1665, 3319315516u, 3422089012u, 3218652220u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1666, 3212614372u, 1152633030u, 3221002980u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1667, 1315030230u, 3336225884u, 1071760598u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1668, 1134593658u, 3456812581u, 1067484794u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1669, 977281449u, 879922831u, 1069556137u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1670, 1086198791u, 920125958u, 1069421575u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1671, 1255152035u, 851754050u, 1070602659u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1672, 1135271264u, 3284878412u, 1068162400u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1673, 1094190727u, 1056854532u, 1069024903u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1674, 1294665325u, 991185677u, 1068172909u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1675, 1036608591u, 805416536u, 1070163023u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1676, 3229998064u, 825237063u, 3213220848u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1677, 3439134022u, 1043829691u, 3221030214u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1678, 1325668223u, 970681762u, 1065621375u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1679, 1092037607u, 1027330835u, 1066871783u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1680, 3316278408u, 3455589207u, 3215615112u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1681, 3295436768u, 3129873731u, 3219939296u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1682, 1151984049u, 3074547120u, 1068097969u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1683, 1129287043u, 3076527544u, 1070566787u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1684, 1243664530u, 972879810u, 1067503762u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1685, 950829092u, 929114193u, 1068269604u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1686, 1115471979u, 3047246262u, 1073528939u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1687, 3351092088u, 3024661404u, 3216874360u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1688, 3424479544u, 3312047722u, 3214764344u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1689, 3241193975u, 884465785u, 3216028151u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1690, 1030934236u, 1045139240u, 1072877276u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1691, 3131791114u, 3408392958u, 3215677194u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1692, 1025254314u, 3057812821u, 1067197354u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1693, 1110545760u, 3240144177u, 1068602720u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1694, 3180213739u, 1108793820u, 3213768171u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1695, 3361976590u, 3138179993u, 3219370254u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1696, 881280146u, 3421884736u, 1065829522u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1697, 1304154705u, 2961937089u, 1069273681u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1698, 3264443610u, 3222916705u, 3214111962u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1699, 3374550627u, 3055856293u, 3215167075u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1700, 899599265u, 3240118211u, 1067371425u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1701, 1268194719u, 1332489410u, 1066868127u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1702, 1133420220u, 1245770860u, 1066311356u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1703, 1161858787u, 815362075u, 1069584099u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1704, 3295996963u, 3453334307u, 3220499491u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1705, 1270887389u, 1156123987u, 1069560797u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1706, 3325193181u, 993979179u, 3216141277u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1707, 3115275450u, 3008350271u, 3215938746u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1708, 3116607482u, 3224327456u, 3217270778u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1709, 3187892415u, 3118097315u, 3213058239u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1710, 1189120494u, 978961471u, 1071679982u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1711, 889030794u, 3129523970u, 1073580170u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1712, 1323529208u, 3100744786u, 1071870968u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1713, 3465768388u, 3190881451u, 3214110148u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1714, 3426099899u, 1118756120u, 3216384699u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1715, 3224857113u, 3398166843u, 3216468505u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1716, 1065798296u, 816191940u, 1065798296u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1717, 3328989444u, 850266225u, 3219937540u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1718, 3357819026u, 3148475462u, 3215212690u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1719, 1273397670u, 901308750u, 1072071078u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1720, 3424831780u, 1304806106u, 3215116580u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1721, 1257596246u, 3420832544u, 1073046870u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1722, 1051773536u, 896271348u, 1068550752u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1723, 3294752507u, 3113225954u, 3219255035u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1724, 3424848725u, 2973850350u, 3215133525u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1725, 1090870906u, 3294742905u, 1065705082u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1726, 1227582289u, 1208979668u, 1068198737u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1727, 1272325814u, 3004311296u, 1070999222u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1728, 3359508271u, 859974315u, 3216901935u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1729, 1137854355u, 3335041917u, 1070745491u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1730, 3440773058u, 3204192793u, 3214280642u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1731, 3101598400u, 3057760708u, 3219038912u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1732, 3451216836u, 3347783723u, 3216335812u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1733, 3437062994u, 3106834845u, 3218959186u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1734, 1131196082u, 1164573183u, 1072475826u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1735, 3460915348u, 1219372260u, 3217645716u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1736, 3303035472u, 3153013020u, 3219149392u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1737, 1053698677u, 3284313107u, 1070475893u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1738, 3396166221u, 1201894512u, 3220005453u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1739, 3458934263u, 1005577835u, 3215664631u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1740, 1065761827u, 3333928591u, 1065761827u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1741, 3025843188u, 820250112u, 3218781172u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1742, 926665223u, 3150815797u, 1069271559u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1743, 1199816046u, 3143776186u, 1065598318u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1744, 3333779015u, 952421041u, 3216338503u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1745, 948398145u, 3238273189u, 1065838657u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1746, 1080781593u, 1213908300u, 1072392985u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1747, 3164749613u, 3010837763u, 3215081261u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1748, 3235326590u, 1271705594u, 3218549374u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1749, 3118883815u, 1051802647u, 3219547111u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1750, 3226990408u, 1110755136u, 3218601800u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1751, 3117098218u, 1122474770u, 3217761514u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1752, 1283624229u, 906796922u, 1065520421u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1753, 970649315u, 1078286437u, 1071312611u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1754, 959776291u, 3280345347u, 1068828195u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1755, 3341117305u, 3294559023u, 3215288185u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1756, 1270734970u, 3355874874u, 1069408378u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1757, 3454816067u, 868771977u, 3219935043u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1758, 1106502045u, 1290849316u, 1072947613u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1759, 1157598381u, 3309023746u, 1073712301u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1760, 3335234513u, 1002337336u, 3217794001u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1761, 1279489061u, 1006049444u, 1069773861u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1762, 3143920719u, 3131608518u, 3219418191u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1763, 1233171235u, 826460580u, 1065399075u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1764, 1148920078u, 1007674793u, 1073422606u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1765, 3064988156u, 3230867340u, 3215983100u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1766, 1109198803u, 1221754614u, 1067255763u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1767, 3219949483u, 1056167693u, 3219949483u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1768, 3361149474u, 3387342069u, 3218543138u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1769, 1207502108u, 3388073586u, 1073284380u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1770, 1000014431u, 831213088u, 1067123295u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1771, 3161756316u, 3143659754u, 3220476572u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1772, 3160728744u, 3382954009u, 3219449000u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1773, 1234530539u, 1079988872u, 1066758379u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1774, 1017843965u, 1193076204u, 1068175613u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1775, 3306328852u, 1118701064u, 3214054164u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1776, 1291910469u, 1211303367u, 1065418053u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1777, 1131927531u, 3182962700u, 1073207275u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1778, 3449879391u, 991614550u, 3214998367u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1779, 970094304u, 3344590506u, 1070757600u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1780, 1125551064u, 3331248076u, 1066830808u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1781, 3427296372u, 3455289118u, 3217581172u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1782, 1198917460u, 1327195159u, 1073088340u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1783, 3201603336u, 820047343u, 3218380552u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1784, 3114686212u, 3476082461u, 3215349508u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1785, 921940707u, 2967544056u, 1072935651u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1786, 1091906532u, 3011904455u, 1066740708u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1787, 3393557778u, 3383396815u, 3217397010u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1788, 1276853215u, 873199561u, 1067138015u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1789, 3462778440u, 3349284325u, 3219508808u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1790, 3360170117u, 3048354042u, 3217563781u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1791, 3224245428u, 3271307999u, 3215856820u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1792, 1120124467u, 1135619937u, 1069792819u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1793, 1064364381u, 3180675544u, 1072752989u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1794, 1268744779u, 3328452652u, 1067418187u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1795, 1165195428u, 3390323168u, 1072920740u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1796, 3247790039u, 909788142u, 3214235607u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1797, 3215244648u, 1083988595u, 3215244648u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1798, 3095275931u, 989153382u, 3221105051u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1799, 1212717473u, 837873779u, 1070111137u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1800, 3275973009u, 3450721670u, 3217252753u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1801, 3028857014u, 3188853813u, 3213406390u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1802, 3391162308u, 1291220039u, 3215001540u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1803, 1044867873u, 3369493273u, 1070033697u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1804, 1089986803u, 3462160118u, 1073209587u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1805, 1296314700u, 2957454177u, 1069822284u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1806, 1251462432u, 3171021770u, 1066913056u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1807, 3485236902u, 980772835u, 3216801446u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1808, 3262169538u, 1268270462u, 3220226498u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1809, 3080852256u, 994641495u, 3215069984u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1810, 1022211242u, 922124181u, 1072542890u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1811, 884661176u, 2985540645u, 1069210552u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1812, 3071422941u, 3271100396u, 3214029277u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1813, 989762529u, 3362011135u, 1073648609u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1814, 1295475718u, 3212305413u, 1068983302u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1815, 1002632518u, 3330388441u, 1069741382u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1816, 3404372005u, 3450484255u, 3219822629u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1817, 3158912530u, 3105501826u, 3217632786u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1818, 1125800069u, 3256265749u, 1067079813u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1819, 3138037576u, 3103365227u, 3213535048u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1820, 999985470u, 3409354318u, 1067094334u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1821, 1189421739u, 1056599002u, 1071981227u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1822, 3075182644u, 3144159778u, 3217788980u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1823, 3028099649u, 3391513557u, 3221037633u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1824, 3132541814u, 3444521949u, 3216427894u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1825, 1164046161u, 3440635788u, 1071771473u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1826, 1292596266u, 3116569667u, 1066103850u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1827, 3469748379u, 3412765608u, 3218090139u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1828, 1314644642u, 3123051784u, 1071375010u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1829, 3399813173u, 828743798u, 3215263797u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1830, 948775569u, 3485444126u, 1066216081u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1831, 1034611395u, 882288581u, 1068165827u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1832, 3489122735u, 3372450889u, 3220687279u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1833, 1181604787u, 3363067409u, 1072552883u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1834, 3059042077u, 3204983963u, 3218425629u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1835, 1043691622u, 3402603223u, 1068857446u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1836, 1314588083u, 856187848u, 1071318451u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1837, 3141533334u, 3010142974u, 3217030806u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1838, 3157534378u, 3451674717u, 3216254634u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1839, 3400949680u, 3073750220u, 3216400304u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1840, 3365581801u, 1175843167u, 3214586857u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1841, 1110424755u, 3011308654u, 1068481715u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1842, 3189917167u, 927278934u, 3215082991u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1843, 969804941u, 3355439348u, 1070468237u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1844, 1139120919u, 3270515074u, 1072012055u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1845, 934308144u, 3118191228u, 1068525872u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1846, 1220524226u, 1152648002u, 1069529282u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1847, 3162548604u, 3461790298u, 3212880252u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1848, 3382391700u, 3296962745u, 3214619540u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1849, 1156767533u, 1088986462u, 1072881453u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1850, 3079222483u, 3312324949u, 3213440211u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1851, 994934087u, 967678094u, 1070431559u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1852, 3185240099u, 1123403720u, 3218794531u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1853, 3479873563u, 1246277393u, 3219826715u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1854, 3424264117u, 3434026174u, 3214548917u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1855, 3228365887u, 1216775310u, 3219977279u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1856, 1212129651u, 3017366784u, 1069523315u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1857, 3125775254u, 955826310u, 3218049942u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1858, 1037464105u, 3121544932u, 1071018537u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1859, 1311706596u, 1254918706u, 1068436964u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1860, 918212457u, 1017468331u, 1069207401u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1861, 1337315179u, 3461361185u, 1068879723u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1862, 1131358407u, 3325958870u, 1072638151u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1863, 1156517523u, 3343716230u, 1072631443u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1864, 3210802820u, 3207408574u, 3219191428u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1865, 3337499209u, 1226297264u, 3220058697u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1866, 3468429030u, 3253874001u, 3216770790u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1867, 3253515800u, 1189005947u, 3219961368u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1868, 3055299953u, 3047908678u, 3214683505u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1869, 959956547u, 876324728u, 1069008451u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1870, 3425290480u, 1139193797u, 3215575280u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1871, 1039917375u, 1122740999u, 1073471807u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1872, 3220979495u, 3429223871u, 3220979495u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1873, 1311016004u, 3334899880u, 1067746372u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1874, 1128016396u, 1105151547u, 1069296140u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1875, 3210335769u, 3100646155u, 3218724377u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1876, 3022705759u, 3404762495u, 3215643743u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1877, 1206054701u, 826010009u, 1071836973u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1878, 3144504834u, 1162227076u, 3220002306u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1879, 1213609983u, 919983950u, 1071003647u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1880, 1246902946u, 3064047808u, 1070742178u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1881, 3362082828u, 3374056268u, 3219476492u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1882, 1029480631u, 3047777170u, 1071423671u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1883, 3153568584u, 3106514232u, 3220677448u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1884, 3384988527u, 3109485565u, 3217216367u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1885, 1317696241u, 870681806u, 1066038001u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1886, 3235395924u, 1132055244u, 3218618708u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1887, 3341877624u, 2969495570u, 3216048504u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1888, 1228636133u, 886552820u, 1069252581u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1889, 3161654634u, 3335899347u, 3220374890u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1890, 3162655243u, 3307203982u, 3212986891u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1891, 1207246237u, 859223639u, 1073028509u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1892, 1165476654u, 3350219111u, 1073201966u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1893, 1215278023u, 3019755242u, 1072671687u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1894, 1017239798u, 3438501281u, 1067571446u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1895, 1149651309u, 970030475u, 1065765229u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1896, 1111943722u, 3122211334u, 1070000682u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1897, 1189849849u, 3382739134u, 1072409337u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1898, 3204848496u, 3141519085u, 3213237104u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1899, 1249758327u, 3104759211u, 1073597559u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1900, 3092982276u, 3445282331u, 3218811396u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1901, 1168098747u, 1316854744u, 1067435451u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1902, 3301009024u, 3406174560u, 3217122944u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1903, 3233089227u, 1212652543u, 3216312011u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1904, 3218245284u, 1238873830u, 3218245284u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1905, 3215981890u, 3240474694u, 3215981890u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1906, 1266687209u, 3092038122u, 1065360617u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1907, 3487959775u, 3331372071u, 3219524319u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1908, 943645710u, 852875779u, 1069474830u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1909, 3345065699u, 3282620725u, 3219236579u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1910, 935847271u, 1067255804u, 1070064999u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1911, 3410336089u, 1111437780u, 3217398105u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1912, 1141063391u, 1168908072u, 1065565919u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1913, 3059263153u, 3067795684u, 3218646705u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1914, 3353679791u, 897158391u, 3219462063u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1915, 1001823878u, 1016826861u, 1068932742u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1916, 1009130212u, 1004302940u, 1067850468u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1917, 3367127535u, 943136342u, 3216132591u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1918, 1032920919u, 3449126417u, 1066475351u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1919, 3281952870u, 3147012185u, 3214844006u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1920, 1237868497u, 3048281802u, 1070096337u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1921, 1153753924u, 3322269242u, 1069867844u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1922, 1120261759u, 892210998u, 1069930111u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1923, 3226328360u, 3366432856u, 3217939752u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1924, 3349595986u, 3251588707u, 3215378258u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1925, 3166889490u, 3306023523u, 3217221138u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1926, 1087750238u, 1099325523u, 1070973022u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1927, 3121620061u, 3359488363u, 3213894749u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1928, 1066116543u, 3072159933u, 1066116543u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1929, 3210898034u, 2981803389u, 3219286642u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1930, 3051923237u, 3364074347u, 3219695397u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1931, 1030612298u, 3345396001u, 1072555338u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1932, 1186234578u, 858134374u, 1068794066u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1933, 1331680743u, 1009396165u, 1071633895u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1934, 1045232522u, 3234993273u, 1070398346u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1935, 3119858470u, 962515365u, 3220521766u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1936, 3349432725u, 928848003u, 3215214997u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1937, 912423027u, 3184646319u, 1071806579u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1938, 3228795133u, 3273940030u, 3220406525u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1939, 3194674746u, 3112269709u, 3219840570u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1940, 3296784303u, 3276182352u, 3212898223u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1941, 965402291u, 3107104376u, 1066065587u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1942, 3388153589u, 3426245389u, 3220381429u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1943, 1133410485u, 3329658993u, 1066301621u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1944, 3136790322u, 1088652637u, 3220676402u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1945, 3369970587u, 959121458u, 3218975643u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1946, 1270451568u, 928393353u, 1069124976u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1947, 989498922u, 3088358419u, 1073385002u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1948, 1280215674u, 3148135875u, 1070500474u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1949, 1171873518u, 954709738u, 1071210222u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1950, 3298258100u, 935525182u, 3214372020u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1951, 3415208824u, 822843236u, 3213882232u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1952, 1001897182u, 3191875320u, 1069006046u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1953, 3152777939u, 3245830463u, 3219886803u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1954, 985903305u, 3333087577u, 1069789385u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1955, 3357328848u, 859306298u, 3214722512u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1956, 982612185u, 923582663u, 1066498265u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1957, 3267868136u, 1208301947u, 3217536488u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1958, 3319048157u, 1172271145u, 3218384861u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1959, 1144755661u, 860947435u, 1069258189u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1960, 898467286u, 839254959u, 1066239446u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1961, 3301461672u, 1233693827u, 3217575592u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1962, 3364525678u, 3089849671u, 3213530734u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1963, 3146660041u, 3143695961u, 3213768905u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1964, 3467121799u, 3023584354u, 3215463559u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1965, 1151257041u, 3084216427u, 1067370961u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1966, 3097873255u, 3219266640u, 3215313767u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1967, 3130670309u, 3192399254u, 3214556389u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1968, 1017573824u, 3130901062u, 1067905472u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1969, 1258369714u, 3462258576u, 1065431730u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1970, 1216602683u, 3371396332u, 1065607739u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1971, 3297265739u, 1214184410u, 3213379659u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1972, 1071940738u, 3311731012u, 1071940738u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1973, 922601356u, 3337171870u, 1073596300u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1974, 3462285635u, 3444030332u, 3219016003u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1975, 3357177805u, 1085464241u, 3214571469u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1976, 3049120080u, 900832851u, 3216892240u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1977, 1153863660u, 1011991342u, 1069977580u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1978, 3034243695u, 917098003u, 3218793071u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1979, 1249365132u, 3278686216u, 1073204364u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1980, 3046215730u, 3211219980u, 3213987890u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1981, 3047251716u, 1090787353u, 3215023876u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1982, 3131219358u, 3471261157u, 3215105438u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1983, 3222096285u, 1198013705u, 3213707677u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1984, 1297708818u, 3079166173u, 1071216402u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1985, 3345532722u, 3383708463u, 3219703602u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1986, 3418753236u, 3481843070u, 3217426644u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1987, 1277417964u, 3487506626u, 1067702764u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1988, 987577257u, 1152077087u, 1071463337u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1989, 3161606610u, 3190282989u, 3220326866u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1990, 888030585u, 3062367380u, 1072579961u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1991, 1043442869u, 3311393817u, 1068608693u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1992, 3320923228u, 3464544249u, 3220259932u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1993, 1337400405u, 3488844154u, 1068964949u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1994, 3400348640u, 3129868490u, 3215799264u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1995, 1250249095u, 1069023744u, 1065699719u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1996, 3284411233u, 1173613526u, 3217302369u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1997, 3020883322u, 2953622587u, 3213821306u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1998, 1215968622u, 3469884568u, 1073362286u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{1999, 3202319550u, 819117302u, 3219096766u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2000, 3061638260u, 3116222327u, 3221021812u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2001, 1025404104u, 1066370251u, 1067347144u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2002, 3138086437u, 3195983510u, 3213583909u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2003, 3091024506u, 3456196859u, 3216853626u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2004, 3362748242u, 3369843597u, 3220141906u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2005, 3099671635u, 3218383623u, 3217112147u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2006, 3068014841u, 2978226656u, 3219009785u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2007, 1252237719u, 1121169249u, 1067688343u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2008, 3327895594u, 1224511805u, 3218843690u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2009, 3082454432u, 889268276u, 3216672160u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2010, 3396161504u, 1182798837u, 3220000736u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2011, 1099710167u, 887180181u, 1066155735u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2012, 1157186482u, 1288722647u, 1073300402u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2013, 1282110851u, 3176633124u, 1072395651u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2014, 3477008113u, 1331845018u, 3216961265u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2015, 3292127294u, 3409957764u, 3216629822u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2016, 1123357102u, 3281307320u, 1073025454u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2017, 1106837025u, 3088080674u, 1073282593u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2018, 1049949008u, 1130799489u, 1066726224u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2019, 1253017688u, 942062372u, 1068468312u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2020, 1108543194u, 3281299199u, 1066600154u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2021, 1160162706u, 1264067367u, 1067888018u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2022, 3305715025u, 3017496063u, 3213440337u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2023, 1266928623u, 811778614u, 1065602031u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2024, 3438080027u, 3107114149u, 3219976219u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2025, 3344574751u, 3111270744u, 3218745631u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2026, 1152416724u, 962669179u, 1068530644u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2027, 1218239308u, 1126238113u, 1067244364u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2028, 3263310567u, 1030748197u, 3212978919u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2029, 1000313118u, 2980130729u, 1067421982u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2030, 972485427u, 1124312043u, 1073148723u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2031, 3290264612u, 1124703898u, 3214767140u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2032, 3222106584u, 1183748648u, 3213717976u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2033, 1278946388u, 825129857u, 1069231188u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2034, 947914771u, 3181847068u, 1065355283u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2035, 3167730654u, 3195765940u, 3218062302u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2036, 1098530298u, 3255870890u, 1073364474u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2037, 3232726036u, 871038882u, 3215948820u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2038, 1297190916u, 811863044u, 1070698500u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2039, 1277649137u, 961171401u, 1067933937u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2040, 3090306474u, 3124785016u, 3216135594u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2041, 3244032016u, 3045313345u, 3218866192u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2042, 3033122376u, 3049877065u, 3217671752u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2043, 1096155623u, 1256423752u, 1070989799u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2044, 873151908u, 3246562559u, 1066089892u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2045, 3317196817u, 989537151u, 3216533521u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2046, 3374748510u, 834161190u, 3215364958u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2047, 3345634950u, 959901149u, 3219805830u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2048, 3189860276u, 883598767u, 3215026100u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2049, 3396917283u, 3066326686u, 3220756515u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2050, 3317032737u, 3143803722u, 3216369441u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2051, 1200051436u, 1163802508u, 1065833708u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2052, 1306520561u, 957302464u, 1071639537u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2053, 1314936356u, 2985592532u, 1071666724u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2054, 3475052219u, 1284049853u, 3215005371u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2055, 3085636260u, 1107682820u, 3219853988u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2056, 3393227708u, 3271879112u, 3217066940u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2057, 3182540197u, 852580839u, 3216094629u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2058, 3349005404u, 3080993030u, 3214787676u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2059, 3154720153u, 3443720494u, 3213440409u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2060, 1262863321u, 1219003129u, 1069925337u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2061, 1053387478u, 3184880021u, 1070164694u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2062, 3387653691u, 3347783852u, 3219881531u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2063, 3136364836u, 1018492227u, 3220250916u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2064, 1338680611u, 1166078045u, 1070245155u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2065, 1112891928u, 3074730425u, 1070948888u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2066, 893449284u, 1052877339u, 1069610052u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2067, 3105373037u, 3246705916u, 3214424941u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2068, 1190105283u, 3033907262u, 1072664771u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2069, 1011225926u, 1180485180u, 1069946182u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2070, 1043025031u, 987068973u, 1068190855u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2071, 3410531037u, 2953541915u, 3217593053u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2072, 3125834184u, 896953754u, 3218108872u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2073, 902318189u, 849277289u, 1070090349u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2074, 3213624815u, 2987148017u, 3213624815u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2075, 1120888322u, 1086209113u, 1070556674u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2076, 1315217243u, 3396371713u, 1071947611u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2077, 3137758475u, 1039403054u, 3213255947u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2078, 1040617590u, 1034835971u, 1065783414u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2079, 955384253u, 3344785562u, 1072824765u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2080, 904255535u, 1019967545u, 1072027695u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2081, 1022984119u, 3113891410u, 1073315767u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2082, 997362368u, 3112875428u, 1072859840u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2083, 1168623062u, 1143306482u, 1067959766u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2084, 878737490u, 3269908326u, 1071675474u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2085, 1039827284u, 1072928888u, 1073381716u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2086, 1021564080u, 1064468397u, 1071895728u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2087, 3458669745u, 3033299853u, 3215400113u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2088, 3327516316u, 3405380971u, 3218464412u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2089, 1040711112u, 3229444200u, 1065876936u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2090, 1134528351u, 3365952513u, 1067419487u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2091, 3414352838u, 3350285760u, 3213026246u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2092, 1133689539u, 1067460093u, 1066580675u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2093, 3455688478u, 3333091960u, 3220807454u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2094, 1137634874u, 1137038869u, 1070526010u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2095, 3415502662u, 955510692u, 3214176070u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2096, 954999730u, 969618597u, 1072440242u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2097, 1066157309u, 3241712664u, 1066157309u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2098, 3436353675u, 1174967495u, 3218249867u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2099, 940437609u, 860372396u, 1066266729u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2100, 3108347547u, 3434003435u, 3217399451u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2101, 3064200154u, 3158080507u, 3215195098u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2102, 1023889593u, 2979304683u, 1065832633u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2103, 3272661536u, 3461799138u, 3213941280u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2104, 1170245333u, 1233406410u, 1069582037u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2105, 1219052056u, 3369557946u, 1068057112u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2106, 3318983619u, 3259663338u, 3218320323u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2107, 3372118621u, 837597103u, 3221123677u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2108, 3146190320u, 889646054u, 3213299184u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2109, 1299683827u, 966031619u, 1073191411u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2110, 3086068902u, 3484245751u, 3220286630u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2111, 3064155399u, 3176569312u, 3215150343u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2112, 3040314717u, 1071290674u, 3216475485u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2113, 3257224022u, 3361778245u, 3215280982u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2114, 1229268598u, 1066965677u, 1069885046u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2115, 3184078812u, 871003709u, 3217633244u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2116, 1086717248u, 3423795374u, 1069940032u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2117, 3434884607u, 3029593823u, 3216780799u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2118, 3464955606u, 1017987696u, 3213297366u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2119, 1025278524u, 3121856207u, 1067221564u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2120, 1242829722u, 3233935671u, 1066668954u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2121, 3075149137u, 1117325737u, 3217755473u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2122, 1200927971u, 1317167489u, 1066710243u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2123, 3326858092u, 3452602832u, 3217806188u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2124, 1246019790u, 850632217u, 1069859022u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2125, 3184801644u, 1137974313u, 3218356076u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2126, 1136052740u, 3244616020u, 1068943876u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2127, 1069009211u, 3002507482u, 1069009211u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2128, 1015670780u, 1101217251u, 1066002428u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2129, 1012543234u, 1116520440u, 1071263490u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2130, 3316611992u, 3394732912u, 3215948696u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2131, 1087942795u, 3316660295u, 1071165579u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2132, 3426365713u, 3069778532u, 3216650513u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2133, 3066654389u, 3443934204u, 3217649333u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2134, 3295326432u, 1313396175u, 3219828960u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2135, 3318835308u, 3277583511u, 3218172012u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2136, 3283555717u, 891875120u, 3216446853u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2137, 3381255420u, 3015406047u, 3213483260u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2138, 3040485181u, 3375450886u, 3216645949u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2139, 3388772093u, 1032597076u, 3220999933u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2140, 954670189u, 1144923689u, 1072110701u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2141, 1319200415u, 3387555900u, 1067542175u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2142, 1279324488u, 3228401212u, 1069609288u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2143, 3217795424u, 865577227u, 3217795424u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2144, 3455131757u, 1260217257u, 3220250733u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2145, 1246947517u, 1087951909u, 1070786749u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2146, 3396723577u, 869285240u, 3220562809u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2147, 3433761025u, 3060143904u, 3215657217u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2148, 3201187455u, 900233172u, 3217964671u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2149, 1173247961u, 1191127979u, 1072584665u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2150, 3037297123u, 3346394818u, 3213457891u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2151, 3083019343u, 3033309444u, 3217237071u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2152, 3042018375u, 3203882372u, 3218179143u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2153, 1082862511u, 3032804719u, 1066085295u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2154, 3157626955u, 3483653298u, 3216347211u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2155, 1341821683u, 3003675365u, 1073386227u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2156, 1079061705u, 2960507663u, 1070673097u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2157, 3182695954u, 3256861672u, 3216250386u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2158, 1105291533u, 3482971524u, 1071737101u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2159, 1016023520u, 3227712090u, 1066355168u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2160, 3370691006u, 1295870514u, 3219696062u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2161, 1156767169u, 1049756240u, 1072881089u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2162, 3077020499u, 894671462u, 3219626835u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2163, 1104284039u, 3040211914u, 1070729607u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2164, 3335212901u, 3486414589u, 3217772389u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2165, 1093697541u, 3193708441u, 1068531717u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2166, 3266691185u, 1160074593u, 3216359537u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2167, 3179003144u, 1108615803u, 3220946184u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2168, 1094115255u, 3008610212u, 1068949431u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2169, 3424086808u, 3260140004u, 3214371608u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2170, 3353608773u, 1134068114u, 3219391045u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2171, 882878091u, 3136970767u, 1067427467u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2172, 1098662266u, 833740182u, 1073496442u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2173, 927582555u, 947955456u, 1070188891u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2174, 3111440310u, 3067634077u, 3220492214u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2175, 3476083859u, 966439623u, 3216037011u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2176, 3038754840u, 932009686u, 3214915608u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2177, 3464546616u, 3205527253u, 3212888376u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2178, 1002542205u, 3152136093u, 1069651069u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2179, 3443552129u, 3165561391u, 3217059713u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2180, 1287620154u, 3119707283u, 1069516346u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2181, 3073260205u, 3093124531u, 3215866541u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2182, 1245702957u, 894348966u, 1069542189u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2183, 1002715618u, 1191006977u, 1069824482u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2184, 3087802274u, 897541752u, 3213631394u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2185, 3415763001u, 3032518431u, 3214436409u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2186, 3283471961u, 1260093226u, 3216363097u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2187, 3311210827u, 1192192264u, 3218936139u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2188, 3026311911u, 2968974374u, 3219249895u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2189, 1198307901u, 1116328249u, 1072478781u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2190, 1288901567u, 1296370667u, 1070797759u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2191, 922255363u, 958305289u, 1073250307u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2192, 1113104661u, 944376032u, 1071161621u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2193, 1136714348u, 828849087u, 1069605484u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2194, 948856035u, 1015466475u, 1066296547u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2195, 1062512367u, 3229559531u, 1070900975u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2196, 3486907092u, 823220784u, 3218471636u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2197, 1162027071u, 3308983387u, 1069752383u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2198, 1034561811u, 1054043114u, 1068116243u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2199, 3271615417u, 3209997200u, 3212895161u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2200, 1042014529u, 1146708584u, 1067180353u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2201, 1177157787u, 3090208179u, 1068105883u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2202, 3196144817u, 1056118717u, 3212922033u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2203, 3432084552u, 2997091781u, 3213980744u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2204, 1309658335u, 1010219988u, 1066388703u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2205, 1226494979u, 2991604792u, 1067111427u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2206, 3100289712u, 3456334210u, 3217730224u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2207, 3375507013u, 1306310823u, 3216123461u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2208, 3460699001u, 3096700943u, 3217429369u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2209, 3079231719u, 1044386263u, 3213449447u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2210, 3093951884u, 1014115231u, 3219781004u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2211, 3468023178u, 1209565017u, 3216364938u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2212, 1204196034u, 3298625731u, 1069978306u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2213, 3459877411u, 2960476959u, 3216607779u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2214, 1161439847u, 943449277u, 1069165159u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2215, 908663107u, 939489763u, 1068046659u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2216, 1055319316u, 3261813492u, 1072096532u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2217, 1084378658u, 1009650785u, 1067601442u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2218, 3053887750u, 3341786453u, 3213271302u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2219, 3022828828u, 881335251u, 3215766812u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2220, 1226473697u, 821025132u, 1067090145u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2221, 1123114742u, 1229815537u, 1072783094u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2222, 1258114435u, 1291336083u, 1073565059u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2223, 3468040845u, 3066966245u, 3216382605u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2224, 1178825761u, 1113195286u, 1069773857u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2225, 3059266302u, 878503862u, 3218649854u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2226, 3223384012u, 1130486973u, 3214995404u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2227, 3445262427u, 3465211174u, 3218770011u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2228, 1125653081u, 1207799746u, 1066932825u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2229, 3337652712u, 3025581813u, 3220212200u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2230, 1184753508u, 3147374485u, 1067312996u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2231, 996404791u, 3353251979u, 1071902263u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2232, 1188439315u, 1113484271u, 1070998803u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2233, 906557513u, 3006513432u, 1065941065u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2234, 916831283u, 999465787u, 1067826227u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2235, 996786317u, 3179221951u, 1072283789u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2236, 3461635065u, 1004690387u, 3218365433u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2237, 1188167943u, 1200744896u, 1070727431u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2238, 3290079438u, 846519377u, 3214581966u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2239, 3350690327u, 2967953392u, 3216472599u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2240, 1102061604u, 3424449935u, 1068507172u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2241, 1282351521u, 3039376424u, 1072636321u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2242, 3458861065u, 3392466405u, 3215591433u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2243, 3095256878u, 1023623326u, 3221085998u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2244, 3163373610u, 843150426u, 3213705258u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2245, 3228793330u, 855146890u, 3220404722u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2246, 3422194733u, 893873945u, 3220868141u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2247, 3083885296u, 974543672u, 3218103024u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2248, 1261940623u, 3402349985u, 1069002639u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2249, 3400603081u, 3234396843u, 3216053705u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2250, 1219411812u, 2961857939u, 1068416868u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2251, 3094833770u, 805351108u, 3220662890u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2252, 3139250800u, 3079109479u, 3214748272u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2253, 886201503u, 3272760705u, 1070750879u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2254, 3297366026u, 1089966380u, 3213479946u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2255, 1218488455u, 3309646450u, 1067493511u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2256, 3040358923u, 3093401553u, 3216519691u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2257, 1283938137u, 1196383822u, 1065834329u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2258, 3182551696u, 3029982441u, 3216106128u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2259, 1317098613u, 949986176u, 1065440373u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2260, 3116209179u, 3303588342u, 3216872475u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2261, 3431703657u, 3014443710u, 3213599849u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2262, 3239728775u, 927815421u, 3214562951u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2263, 3207141672u, 933456504u, 3215530280u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2264, 3154378805u, 905462392u, 3213099061u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2265, 3069658155u, 1041452042u, 3220653099u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2266, 3313160088u, 2964063309u, 3220885400u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2267, 3207056527u, 3384206601u, 3215445135u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2268, 1284174954u, 3436881197u, 1066071146u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2269, 3156081645u, 3308839704u, 3214801901u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2270, 1063693032u, 976661408u, 1072081640u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2271, 1102631663u, 3396951425u, 1069077231u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2272, 968803479u, 992989712u, 1069466775u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2273, 3273080388u, 3109405906u, 3214360132u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2274, 1172529774u, 3294550127u, 1071866478u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2275, 1306695905u, 1292690378u, 1071814881u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2276, 3158855023u, 3151283866u, 3217575279u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2277, 1165177679u, 3276237026u, 1072902991u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2278, 3403009513u, 3381966453u, 3218460137u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2279, 952348506u, 3377573987u, 1069789018u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2280, 1222777442u, 1125769920u, 1071782498u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2281, 1325324763u, 978336043u, 1073666523u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2282, 3363524213u, 3202991311u, 3220917877u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2283, 1158950321u, 1073578913u, 1066675633u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2284, 903129873u, 3416864271u, 1070902033u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2285, 3078339944u, 988173985u, 3220946280u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2286, 1208345407u, 1254181270u, 1065739071u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2287, 1258634105u, 1247426200u, 1065696121u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2288, 1248478509u, 1287895126u, 1072317741u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2289, 1153863988u, 3430539165u, 1069977908u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2290, 1235620969u, 866627358u, 1067848809u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2291, 1097120930u, 3221726305u, 1071955106u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2292, 3469778622u, 1200179013u, 3218120382u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2293, 1147712200u, 931865525u, 1072214728u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2294, 1124721745u, 3058969650u, 1066001489u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2295, 3261744304u, 1043806501u, 3219801264u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2296, 3303160152u, 3075455322u, 3219274072u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2297, 1315090496u, 3269683237u, 1071820864u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2298, 1335399673u, 974138676u, 1066964217u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2299, 1072458508u, 3372833993u, 1072458508u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2300, 3303015249u, 3015039539u, 3219129169u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2301, 3252139741u, 1059615003u, 3218585309u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2302, 3468519966u, 3113982619u, 3216861726u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2303, 1006231203u, 897530770u, 1073340067u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2304, 951554138u, 1001144381u, 1068994650u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2305, 942046828u, 986341002u, 1067875948u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2306, 3319723279u, 3414482416u, 3219059983u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2307, 3255104167u, 928827688u, 3213161127u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2308, 1155477903u, 3104812800u, 1071591823u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2309, 3273889176u, 980486479u, 3215168920u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2310, 3237813668u, 3441016803u, 3221036452u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2311, 1228207362u, 2985476579u, 1068823810u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2312, 1290175785u, 3008182462u, 1072071977u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2313, 981908840u, 3314038398u, 1065794920u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2314, 941187647u, 1107765599u, 1067016767u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2315, 1214223128u, 3225536822u, 1071616792u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2316, 3422922584u, 1086391131u, 3213207384u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2317, 1315857601u, 3487600045u, 1072587969u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2318, 3453226030u, 3233768835u, 3218345006u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2319, 1078359574u, 3199175230u, 1069970966u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2320, 1029557624u, 3302959071u, 1071500664u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2321, 1207675424u, 3042692550u, 1073457696u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2322, 1028355074u, 3442294040u, 1070298114u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2323, 1248421894u, 3367769132u, 1072261126u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2324, 3353251994u, 1095517730u, 3219034266u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2325, 876926659u, 3288089977u, 1069864643u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2326, 1076752219u, 876236939u, 1068363611u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2327, 3388531942u, 2988520062u, 3220759782u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2328, 1273395082u, 3031189261u, 1072068490u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2329, 3385588183u, 3258252464u, 3217816023u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2330, 3192315328u, 3289489214u, 3217481152u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2331, 3441804648u, 3274638356u, 3215312232u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2332, 3392827417u, 1277961150u, 3216666649u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2333, 1161241793u, 1328003707u, 1068967105u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2334, 3034494183u, 3041579130u, 3219043559u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2335, 1171318485u, 3374409104u, 1070655189u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2336, 3047748143u, 831102792u, 3215520303u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2337, 1001216371u, 3052357038u, 1068325235u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2338, 912515889u, 1074635609u, 1071899441u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2339, 3391452505u, 897989232u, 3215291737u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2340, 3249603369u, 3147662248u, 3216048937u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2341, 1220264047u, 2960450369u, 1069269103u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2342, 3169816394u, 988430929u, 3220148042u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2343, 3098997418u, 3002162688u, 3216437930u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2344, 3282212423u, 3174079140u, 3215103559u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2345, 3352293320u, 3247843425u, 3218075592u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2346, 3296358441u, 875645354u, 3220860969u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2347, 1197828352u, 3245614728u, 1071999232u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2348, 3340510371u, 914930263u, 3214681251u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2349, 1127109339u, 3368125489u, 1068389083u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2350, 1200599955u, 2981200675u, 1066382227u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2351, 962230977u, 2988248037u, 1071282881u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2352, 3192887808u, 3191848339u, 3218053632u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2353, 3237183876u, 3179379969u, 3220406660u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2354, 939285924u, 3056079386u, 1073503652u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2355, 944050180u, 3452557879u, 1069879300u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2356, 3058135703u, 3090284601u, 3217519255u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2357, 3480592662u, 3261728191u, 3220545814u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2358, 3061939312u, 3274418540u, 3212934256u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2359, 1003299981u, 853295521u, 1070408845u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2360, 1155775526u, 1255814444u, 1071889446u, 0, SIGNIFICANDF_TOLERANCE, 0},
+{2361, 1234491880u, 3408568717u, 1066719720u, 0, SIGNIFICANDF_TOLERANCE, 0}
+
+// AUTOMATICALLY GENERATED VECTORS STOP
+
+};
+
+#endif // CYGONCE_LIBM_SCABNF_H multiple inclusion protection
+
+// EOF significandf.h
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/sin.c b/ecos/packages/language/c/libm/current/tests/vectors/sin.c
new file mode 100644
index 0000000..6032ac3
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/sin.c
@@ -0,0 +1,115 @@
+//===========================================================================
+//
+// sin.c
+//
+// Test of sin() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// Declarations for test system:
+//
+// TESTCASE_TYPE=CYG_TEST_MODULE
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include <cyg/infra/testcase.h> // Test infrastructure
+#include <math.h> // Header for this package
+#include <sys/ieeefp.h> // Cyg_libm_ieee_double_shape_type
+#include "vectors/vector_support.h"// extra support for math tests
+
+#include "vectors/sin.h"
+
+// FUNCTIONS
+
+static void
+test( CYG_ADDRWORD data )
+{
+ cyg_ucount32 vec_size;
+ cyg_bool ret;
+
+ vec_size = sizeof(sin_vec) / sizeof(Cyg_libm_test_double_vec_t);
+ ret = doTestVec( (CYG_ADDRWORD) &sin, CYG_LIBM_TEST_VEC_DOUBLE,
+ CYG_LIBM_TEST_VEC_NONE, CYG_LIBM_TEST_VEC_DOUBLE,
+ &sin_vec[0], vec_size );
+
+ if (ret==true)
+ {
+ CYG_TEST_PASS("sin() is stable");
+ } // if
+ else
+ {
+ CYG_TEST_FAIL("sin() failed tests");
+ } // else
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for Math "
+ "library sin() function");
+} // test()
+
+
+int
+main(int argc, char *argv[])
+{
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for Math library "
+ "sin() function");
+
+ START_TEST( test );
+
+ CYG_TEST_PASS_FINISH("Testing is not applicable to this configuration");
+
+} // main()
+
+
+// EOF sin.c
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/sin.h b/ecos/packages/language/c/libm/current/tests/vectors/sin.h
new file mode 100644
index 0000000..b0ef095
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/sin.h
@@ -0,0 +1,1079 @@
+#ifndef CYGONCE_LIBM_SIN_H
+#define CYGONCE_LIBM_SIN_H
+//===========================================================================
+//
+// sin.h
+//
+// Test vectors for testing of sin() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage: #include "vectors/sin.h"
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include "vectors/vector_support.h"// extra support for math tests
+
+#define SIN_TOLERANCE 1.0E-04
+
+static const Cyg_libm_test_double_vec_t sin_vec[] = {
+
+// AUTOMATICALLY GENERATED VECTORS START
+
+{ 1, 1077999148u, 2506787616u, 1090024059u, 3619148316u, 1071838869u, 2401661594u, 0, SIN_TOLERANCE, 0},
+{ 2, 3218153654u, 3176730980u, 1051524793u, 2993920299u, 3218140303u, 2723656211u, 0, SIN_TOLERANCE, 0},
+{ 3, 3239659803u, 2725707538u, 3232101343u, 2346810316u, 1070387016u, 2680769772u, 0, SIN_TOLERANCE, 0},
+{ 4, 1092554362u, 2088062470u, 3201242716u, 420891118u, 3219218822u, 2049472052u, 0, SIN_TOLERANCE, 0},
+{ 5, 3221200677u, 2636405208u, 1100049309u, 471635570u, 3220006780u, 536189369u, 0, SIN_TOLERANCE, 0},
+{ 6, 1089363191u, 1746012320u, 1054478713u, 3333988501u, 3219789896u, 4274610101u, 0, SIN_TOLERANCE, 0},
+{ 7, 1047953160u, 183014794u, 3202039382u, 2016785810u, 1047953160u, 183014787u, 0, SIN_TOLERANCE, 0},
+{ 8, 3213486034u, 2688957927u, 1046089230u, 2709029994u, 3213485989u, 1514254211u, 0, SIN_TOLERANCE, 0},
+{ 9, 1058795730u, 624574473u, 1045840574u, 3473266330u, 1058795730u, 609683576u, 0, SIN_TOLERANCE, 0},
+{ 10, 3204919842u, 1605286142u, 1068931671u, 4233776869u, 3204919842u, 1603156146u, 0, SIN_TOLERANCE, 0},
+{ 11, 1060343410u, 1857607719u, 3222889559u, 3417070006u, 1060343410u, 1775912310u, 0, SIN_TOLERANCE, 0},
+{ 12, 1103599987u, 3981151660u, 1088899021u, 1332651746u, 3220044665u, 516737212u, 0, SIN_TOLERANCE, 0},
+{ 13, 1085298022u, 3824988054u, 1066856791u, 2070129652u, 1068343696u, 2570408587u, 0, SIN_TOLERANCE, 0},
+{ 14, 3207559790u, 1372884064u, 1080833116u, 3229926662u, 3207559790u, 1287711395u, 0, SIN_TOLERANCE, 0},
+{ 15, 1093826501u, 3217805330u, 3191644264u, 2014578707u, 3220141559u, 642968502u, 0, SIN_TOLERANCE, 0},
+{ 16, 1102287487u, 265058758u, 3239903247u, 1630600647u, 1067118390u, 524782221u, 0, SIN_TOLERANCE, 0},
+{ 17, 1071124229u, 1946677669u, 3198462609u, 926009897u, 1071087355u, 3913666151u, 0, SIN_TOLERANCE, 0},
+{ 18, 1072130299u, 2271884183u, 3203741999u, 2118617783u, 1071997067u, 1550277781u, 0, SIN_TOLERANCE, 0},
+{ 19, 3194849109u, 213658772u, 3249401130u, 314151656u, 3194849109u, 213658768u, 0, SIN_TOLERANCE, 0},
+{ 20, 3254112288u, 1564829925u, 3197817016u, 497230814u, 1071974247u, 929901645u, 0, SIN_TOLERANCE, 0},
+{ 21, 3216262634u, 2075329122u, 3231746400u, 169900577u, 3216261246u, 919710895u, 0, SIN_TOLERANCE, 0},
+{ 22, 1049848642u, 541549344u, 1096608669u, 3119070100u, 1049848642u, 541549268u, 0, SIN_TOLERANCE, 0},
+{ 23, 1085427055u, 567496114u, 1045286891u, 1969998540u, 3220111007u, 980283378u, 0, SIN_TOLERANCE, 0},
+{ 24, 1060548195u, 1299369769u, 1049342524u, 4167404066u, 1060548195u, 1171923561u, 0, SIN_TOLERANCE, 0},
+{ 25, 3208865645u, 3348930841u, 1078472138u, 358457347u, 3208865645u, 3029730220u, 0, SIN_TOLERANCE, 0},
+{ 26, 1071069297u, 2192461366u, 1099527247u, 3184735642u, 1071036129u, 813860861u, 0, SIN_TOLERANCE, 0},
+{ 27, 1052861772u, 331696577u, 3189610016u, 793242270u, 1052861772u, 331693068u, 0, SIN_TOLERANCE, 0},
+{ 28, 3252528934u, 2322696981u, 1083791358u, 3020766674u, 3219239726u, 3132111534u, 0, SIN_TOLERANCE, 0},
+{ 29, 1044902177u, 252085215u, 3214426435u, 4139068910u, 1044902177u, 252085215u, 0, SIN_TOLERANCE, 0},
+{ 30, 3222505725u, 105589263u, 1056316170u, 261630827u, 1072662522u, 1497100154u, 0, SIN_TOLERANCE, 0},
+{ 31, 1107213408u, 428765703u, 3251828686u, 2009972239u, 1072151952u, 1213650637u, 0, SIN_TOLERANCE, 0},
+{ 32, 1098568019u, 3517376586u, 3240257920u, 3304487302u, 3219808385u, 472344056u, 0, SIN_TOLERANCE, 0},
+{ 33, 3233537912u, 237004814u, 3237899261u, 3364008659u, 1072254439u, 2138833907u, 0, SIN_TOLERANCE, 0},
+{ 34, 3195247552u, 472004928u, 3226869477u, 1186387580u, 3195247552u, 472004923u, 0, SIN_TOLERANCE, 0},
+{ 35, 1054226850u, 4085763910u, 1106394906u, 2684738273u, 1054226850u, 4085734635u, 0, SIN_TOLERANCE, 0},
+{ 36, 1057053639u, 2055490142u, 3231581370u, 3879040079u, 1057053639u, 2054597482u, 0, SIN_TOLERANCE, 0},
+{ 37, 3188976647u, 3725731239u, 1061652681u, 591292963u, 3188976647u, 3725731239u, 0, SIN_TOLERANCE, 0},
+{ 38, 3225014981u, 1147041027u, 3215417793u, 624695933u, 3219415599u, 1075867927u, 0, SIN_TOLERANCE, 0},
+{ 39, 3206052774u, 705725219u, 3238067573u, 1116238321u, 3206052774u, 695706716u, 0, SIN_TOLERANCE, 0},
+{ 40, 3207367088u, 7287411u, 1045917232u, 116067742u, 3207367087u, 4238790031u, 0, SIN_TOLERANCE, 0},
+{ 41, 3240055222u, 3604989074u, 1066381836u, 545298780u, 1072682140u, 2066217144u, 0, SIN_TOLERANCE, 0},
+{ 42, 3219080936u, 1681476121u, 1060345752u, 3553822398u, 3219000313u, 4267532368u, 0, SIN_TOLERANCE, 0},
+{ 43, 1102831658u, 3410480388u, 1052460275u, 1660607230u, 1067040834u, 487727068u, 0, SIN_TOLERANCE, 0},
+{ 44, 1089216869u, 1494984673u, 3196647153u, 287894723u, 1071850264u, 1206127023u, 0, SIN_TOLERANCE, 0},
+{ 45, 1054885127u, 644548665u, 1081948134u, 2442134629u, 1054885127u, 644502728u, 0, SIN_TOLERANCE, 0},
+{ 46, 1087554095u, 2312530895u, 3221584595u, 3379665576u, 1072410294u, 22046932u, 0, SIN_TOLERANCE, 0},
+{ 47, 1096085375u, 3018463866u, 1086226574u, 404012923u, 3216020271u, 1764000566u, 0, SIN_TOLERANCE, 0},
+{ 48, 1064733299u, 1710279345u, 3251401196u, 3528946000u, 1064733291u, 4045889661u, 0, SIN_TOLERANCE, 0},
+{ 49, 1061536351u, 2164450219u, 1083520023u, 3312018966u, 1061536351u, 1714337161u, 0, SIN_TOLERANCE, 0},
+{ 50, 1057248676u, 2648986431u, 1050330591u, 1474376550u, 1057248676u, 2647551431u, 0, SIN_TOLERANCE, 0},
+{ 51, 3194422028u, 1839068700u, 1077406406u, 3013052171u, 3194422028u, 1839068698u, 0, SIN_TOLERANCE, 0},
+{ 52, 1046493630u, 772102380u, 3220729740u, 4219039958u, 1046493630u, 772102379u, 0, SIN_TOLERANCE, 0},
+{ 53, 3229472221u, 3058618779u, 1046304788u, 3338676024u, 1069797744u, 562818333u, 0, SIN_TOLERANCE, 0},
+{ 54, 1051172137u, 506286854u, 1094907481u, 2217000199u, 1051172137u, 506286305u, 0, SIN_TOLERANCE, 0},
+{ 55, 1082428310u, 1147428263u, 1065432625u, 3034786717u, 3219662892u, 3667710140u, 0, SIN_TOLERANCE, 0},
+{ 56, 1082016752u, 2844125311u, 1082985198u, 2561492677u, 1071337783u, 1367962921u, 0, SIN_TOLERANCE, 0},
+{ 57, 3211536916u, 704542600u, 3222902057u, 2762779203u, 3211536912u, 2267019146u, 0, SIN_TOLERANCE, 0},
+{ 58, 3199680614u, 184131949u, 3249723525u, 1667366082u, 3199680614u, 184129854u, 0, SIN_TOLERANCE, 0},
+{ 59, 3223609598u, 3904224140u, 1067056698u, 2942159914u, 1072047947u, 1080365783u, 0, SIN_TOLERANCE, 0},
+{ 60, 1100636863u, 426114282u, 3209056785u, 1083606355u, 1072166020u, 3340708234u, 0, SIN_TOLERANCE, 0},
+{ 61, 1106165945u, 3774123863u, 1106787580u, 2722107965u, 1070744623u, 2373837450u, 0, SIN_TOLERANCE, 0},
+{ 62, 1088005092u, 1377734762u, 1104232051u, 2377063483u, 3220087464u, 1358458230u, 0, SIN_TOLERANCE, 0},
+{ 63, 1069380559u, 1029739074u, 1105467109u, 3062201018u, 1069376304u, 62267843u, 0, SIN_TOLERANCE, 0},
+{ 64, 3234741597u, 773857656u, 3214251949u, 335833884u, 3219796959u, 290221919u, 0, SIN_TOLERANCE, 0},
+{ 65, 3203224610u, 1473865960u, 1103073830u, 4000427507u, 3203224610u, 1473596865u, 0, SIN_TOLERANCE, 0},
+{ 66, 1103185231u, 4242092620u, 1067009473u, 14539161u, 1072227400u, 4090466752u, 0, SIN_TOLERANCE, 0},
+{ 67, 3192516074u, 1732245037u, 1101371955u, 1533536108u, 3192516074u, 1732245037u, 0, SIN_TOLERANCE, 0},
+{ 68, 3249153995u, 1833841275u, 1099430098u, 4144145552u, 1072622333u, 484555410u, 0, SIN_TOLERANCE, 0},
+{ 69, 3244270463u, 935007012u, 3188865420u, 604442938u, 1072668202u, 1236651337u, 0, SIN_TOLERANCE, 0},
+{ 70, 3206903253u, 2211464602u, 1046255144u, 1635910526u, 3206903253u, 2184476310u, 0, SIN_TOLERANCE, 0},
+{ 71, 1077871417u, 2549219008u, 3231633258u, 3733639385u, 3218677358u, 1624364943u, 0, SIN_TOLERANCE, 0},
+{ 72, 1082095089u, 1819374372u, 3202219056u, 2617077637u, 1071973583u, 3233577778u, 0, SIN_TOLERANCE, 0},
+{ 73, 1094345280u, 546465680u, 1048653554u, 532401530u, 3218994022u, 1472558371u, 0, SIN_TOLERANCE, 0},
+{ 74, 1044571091u, 2759019783u, 3221570188u, 3554409630u, 1044571091u, 2759019783u, 0, SIN_TOLERANCE, 0},
+{ 75, 3212931282u, 2527221960u, 1099107978u, 2696971136u, 3212931268u, 3320555499u, 0, SIN_TOLERANCE, 0},
+{ 76, 1097158000u, 173134582u, 1087299442u, 2877794600u, 1072521083u, 2425421985u, 0, SIN_TOLERANCE, 0},
+{ 77, 1086400474u, 547642046u, 3197285510u, 3521286127u, 3217558108u, 1228670264u, 0, SIN_TOLERANCE, 0},
+{ 78, 1074860702u, 1231582831u, 1090971734u, 1653446832u, 3219973371u, 3322500u, 0, SIN_TOLERANCE, 0},
+{ 79, 1061342535u, 3762182190u, 3252967851u, 2615360375u, 1061342535u, 3471785037u, 0, SIN_TOLERANCE, 0},
+{ 80, 3200834423u, 2588067350u, 3206610957u, 3551059728u, 3200834423u, 2588057111u, 0, SIN_TOLERANCE, 0},
+{ 81, 3206978856u, 845263327u, 1073415902u, 1749010288u, 3206978856u, 813684588u, 0, SIN_TOLERANCE, 0},
+{ 82, 3205576370u, 3092685191u, 3190678390u, 2872219490u, 3205576370u, 3089203192u, 0, SIN_TOLERANCE, 0},
+{ 83, 3218315055u, 4107255722u, 3205337291u, 3069068345u, 3218295099u, 3722832670u, 0, SIN_TOLERANCE, 0},
+{ 84, 3243990857u, 2294867524u, 3216653996u, 2860384670u, 3220163327u, 3978375316u, 0, SIN_TOLERANCE, 0},
+{ 85, 3193326350u, 2265437201u, 3240198679u, 1234948614u, 3193326350u, 2265437201u, 0, SIN_TOLERANCE, 0},
+{ 86, 3216359929u, 1186945904u, 3251167793u, 1896750851u, 3216358213u, 946725939u, 0, SIN_TOLERANCE, 0},
+{ 87, 1081575478u, 3686084548u, 1079286273u, 3309277689u, 3218959542u, 2751578340u, 0, SIN_TOLERANCE, 0},
+{ 88, 3223476240u, 3006860614u, 3231412671u, 2504194724u, 3218080130u, 4276033061u, 0, SIN_TOLERANCE, 0},
+{ 89, 3236149260u, 1948717780u, 1048317852u, 3791803982u, 3219561148u, 1725305302u, 0, SIN_TOLERANCE, 0},
+{ 90, 1064345015u, 4272034420u, 3192982124u, 1526175922u, 1064345013u, 34094566u, 0, SIN_TOLERANCE, 0},
+{ 91, 3245817826u, 4108948538u, 1104691287u, 640541190u, 1072633158u, 589399637u, 0, SIN_TOLERANCE, 0},
+{ 92, 3207257417u, 3259274853u, 1082507103u, 3677038020u, 3207257417u, 3206332840u, 0, SIN_TOLERANCE, 0},
+{ 93, 1083132498u, 3781708548u, 1096584871u, 1207386447u, 1072209224u, 1264489112u, 0, SIN_TOLERANCE, 0},
+{ 94, 3188695272u, 3011191657u, 1103798670u, 1096124830u, 3188695272u, 3011191657u, 0, SIN_TOLERANCE, 0},
+{ 95, 1063235023u, 2540404725u, 3240157452u, 4122845725u, 1063235022u, 1279389516u, 0, SIN_TOLERANCE, 0},
+{ 96, 1083643710u, 311336721u, 3214382367u, 4212533768u, 1072594097u, 3319282857u, 0, SIN_TOLERANCE, 0},
+{ 97, 1051139427u, 1769686293u, 3240200923u, 3538602249u, 1051139427u, 1769685778u, 0, SIN_TOLERANCE, 0},
+{ 98, 1078227549u, 508056696u, 1103793878u, 776520138u, 3215655025u, 4092391317u, 0, SIN_TOLERANCE, 0},
+{ 99, 1102910577u, 4064962760u, 1077424413u, 819766631u, 1070424010u, 2933370624u, 0, SIN_TOLERANCE, 0},
+{ 100, 1074178362u, 2112385259u, 3227593179u, 1187058516u, 1070822880u, 179235259u, 0, SIN_TOLERANCE, 0},
+{ 101, 1082295059u, 2514398118u, 1076579751u, 870169764u, 1072653766u, 2542208304u, 0, SIN_TOLERANCE, 0},
+{ 102, 3246851392u, 1190259653u, 1069112254u, 3417249840u, 1072530344u, 3077286602u, 0, SIN_TOLERANCE, 0},
+{ 103, 3193663083u, 3467757357u, 3215075200u, 2168175352u, 3193663083u, 3467757356u, 0, SIN_TOLERANCE, 0},
+{ 104, 3239643135u, 1508888184u, 1060430241u, 3524949092u, 3219941021u, 4051870273u, 0, SIN_TOLERANCE, 0},
+{ 105, 3197412883u, 166402802u, 3237198975u, 3572369260u, 3197412883u, 166402710u, 0, SIN_TOLERANCE, 0},
+{ 106, 1081866822u, 2441536203u, 3202753937u, 3658194573u, 1072691983u, 3277464136u, 0, SIN_TOLERANCE, 0},
+{ 107, 1062392908u, 2479742828u, 1062342831u, 4214154303u, 1062392908u, 1313065636u, 0, SIN_TOLERANCE, 0},
+{ 108, 1082396794u, 426896765u, 1066474375u, 2201754442u, 1072530888u, 1547899382u, 0, SIN_TOLERANCE, 0},
+{ 109, 3195629021u, 2055773734u, 3239267288u, 291396537u, 3195629021u, 2055773723u, 0, SIN_TOLERANCE, 0},
+{ 110, 3236968033u, 874125203u, 3210508124u, 4091098764u, 1072252180u, 1389729742u, 0, SIN_TOLERANCE, 0},
+{ 111, 1065716026u, 120488169u, 3241241441u, 1985269424u, 1065716000u, 71449286u, 0, SIN_TOLERANCE, 0},
+{ 112, 3206539410u, 2243036871u, 3243941101u, 740033495u, 3206539410u, 2220858621u, 0, SIN_TOLERANCE, 0},
+{ 113, 3209424906u, 1176656356u, 1074261978u, 3588756231u, 3209424906u, 223951041u, 0, SIN_TOLERANCE, 0},
+{ 114, 3252816791u, 3037249392u, 1061635587u, 1173102190u, 1072325341u, 2929676563u, 0, SIN_TOLERANCE, 0},
+{ 115, 3237209581u, 2882725208u, 1071440059u, 69225090u, 1071617875u, 134033807u, 0, SIN_TOLERANCE, 0},
+{ 116, 3212663474u, 272319256u, 1072073912u, 2493997123u, 3212663457u, 2560321906u, 0, SIN_TOLERANCE, 0},
+{ 117, 1057720186u, 188610379u, 3232757923u, 2209647371u, 1057720186u, 185049725u, 0, SIN_TOLERANCE, 0},
+{ 118, 3236758517u, 1990439193u, 1078073146u, 622849962u, 1071355601u, 3706690183u, 0, SIN_TOLERANCE, 0},
+{ 119, 1057135741u, 756052458u, 1081649113u, 2247475162u, 1057135741u, 754952242u, 0, SIN_TOLERANCE, 0},
+{ 120, 1061623064u, 3878055211u, 3222407050u, 2979438623u, 1061623064u, 3340736229u, 0, SIN_TOLERANCE, 0},
+{ 121, 3195290997u, 2676398686u, 1105124431u, 3631096636u, 3195290997u, 2676398681u, 0, SIN_TOLERANCE, 0},
+{ 122, 1065079390u, 1697791764u, 3198136112u, 2299842819u, 1065079376u, 1610057462u, 0, SIN_TOLERANCE, 0},
+{ 123, 1078084768u, 1931502677u, 3215264397u, 3016456382u, 3220004894u, 1668609696u, 0, SIN_TOLERANCE, 0},
+{ 124, 1072253426u, 343404215u, 1061072607u, 4266232536u, 1072086222u, 4119862242u, 0, SIN_TOLERANCE, 0},
+{ 125, 3241230836u, 4140316002u, 1082896196u, 868256971u, 1072690956u, 765035729u, 0, SIN_TOLERANCE, 0},
+{ 126, 1075422810u, 1864139509u, 3187675097u, 3084482407u, 1069580313u, 3312804465u, 0, SIN_TOLERANCE, 0},
+{ 127, 3220191323u, 2427162817u, 3234748208u, 2715105792u, 3219859859u, 2237649499u, 0, SIN_TOLERANCE, 0},
+{ 128, 1064600512u, 3943389284u, 1046724025u, 3626825684u, 1064600507u, 1276893856u, 0, SIN_TOLERANCE, 0},
+{ 129, 1045423002u, 967350972u, 1093012318u, 448002663u, 1045423002u, 967350972u, 0, SIN_TOLERANCE, 0},
+{ 130, 3251845859u, 105058217u, 1069733884u, 171786224u, 3220069145u, 1168790563u, 0, SIN_TOLERANCE, 0},
+{ 131, 3189614508u, 2863482262u, 3204997271u, 877784425u, 3189614508u, 2863482262u, 0, SIN_TOLERANCE, 0},
+{ 132, 3202629313u, 2801782962u, 3213604117u, 762347195u, 3202629313u, 2801694452u, 0, SIN_TOLERANCE, 0},
+{ 133, 3233486727u, 2317950339u, 3246333414u, 2135700283u, 1072471825u, 2589645930u, 0, SIN_TOLERANCE, 0},
+{ 134, 1056516397u, 4171919805u, 1082858682u, 2180920863u, 1056516397u, 4171240187u, 0, SIN_TOLERANCE, 0},
+{ 135, 3220149084u, 1918836931u, 1083603224u, 3137821660u, 3219829255u, 761344608u, 0, SIN_TOLERANCE, 0},
+{ 136, 1103902874u, 3456203663u, 3235600523u, 2335688936u, 1070082723u, 1334614737u, 0, SIN_TOLERANCE, 0},
+{ 137, 1042279322u, 4170235262u, 1051824459u, 521583737u, 1042279322u, 4170235262u, 0, SIN_TOLERANCE, 0},
+{ 138, 1081348303u, 1296623194u, 3250673860u, 2442872540u, 1071794321u, 2307534527u, 0, SIN_TOLERANCE, 0},
+{ 139, 1061684277u, 289979405u, 1049514449u, 3865737145u, 1061684276u, 3979725310u, 0, SIN_TOLERANCE, 0},
+{ 140, 1075298944u, 3699090239u, 1054539840u, 3259249360u, 3218442720u, 3943632230u, 0, SIN_TOLERANCE, 0},
+{ 141, 1096418100u, 1619819023u, 1045993352u, 1022642459u, 3219483919u, 1110725871u, 0, SIN_TOLERANCE, 0},
+{ 142, 1081433004u, 19455098u, 3229182089u, 2096003654u, 1071953692u, 3887415361u, 0, SIN_TOLERANCE, 0},
+{ 143, 1076297936u, 3803689997u, 1071630912u, 2263729518u, 3219914082u, 2841872974u, 0, SIN_TOLERANCE, 0},
+{ 144, 1101357261u, 2816837387u, 1063422305u, 2597606398u, 3220176423u, 214584624u, 0, SIN_TOLERANCE, 0},
+{ 145, 1069100169u, 3680967506u, 1040201163u, 179224723u, 1069097512u, 979815490u, 0, SIN_TOLERANCE, 0},
+{ 146, 3188629767u, 978126928u, 1101553990u, 4047893399u, 3188629767u, 978126928u, 0, SIN_TOLERANCE, 0},
+{ 147, 3222322045u, 4059818629u, 1042678728u, 3640293589u, 1072406284u, 1786742831u, 0, SIN_TOLERANCE, 0},
+{ 148, 3248464040u, 3383497159u, 1070002807u, 1527313008u, 3218047308u, 1285854118u, 0, SIN_TOLERANCE, 0},
+{ 149, 3202707679u, 2599946514u, 1104170406u, 2738675352u, 3202707679u, 2599841376u, 0, SIN_TOLERANCE, 0},
+{ 150, 1105232623u, 3616571377u, 1060859316u, 1130603218u, 3219573748u, 1215925215u, 0, SIN_TOLERANCE, 0},
+{ 151, 1076028796u, 3859211180u, 1067940450u, 1744531824u, 3214409789u, 2584792611u, 0, SIN_TOLERANCE, 0},
+{ 152, 1042831340u, 1958025850u, 3236511256u, 2472176453u, 1042831340u, 1958025850u, 0, SIN_TOLERANCE, 0},
+{ 153, 3233107089u, 182132862u, 3250520938u, 3924356991u, 1072578370u, 2980431846u, 0, SIN_TOLERANCE, 0},
+{ 154, 3230501884u, 35632886u, 3209806504u, 1453402523u, 3216964734u, 4225175528u, 0, SIN_TOLERANCE, 0},
+{ 155, 1083522102u, 743225214u, 3202890678u, 142917400u, 1072590656u, 4260949149u, 0, SIN_TOLERANCE, 0},
+{ 156, 1080684976u, 1472665012u, 3203138231u, 256588219u, 1070228438u, 2092679689u, 0, SIN_TOLERANCE, 0},
+{ 157, 1094982162u, 1062927000u, 1061134072u, 931677439u, 3219446490u, 1081234903u, 0, SIN_TOLERANCE, 0},
+{ 158, 1058377732u, 2320910576u, 1055663370u, 288059864u, 1058377732u, 2314066573u, 0, SIN_TOLERANCE, 0},
+{ 159, 1078958093u, 1448349062u, 3199478070u, 3454027134u, 1071009563u, 3384255603u, 0, SIN_TOLERANCE, 0},
+{ 160, 3237458798u, 4215445172u, 3196654963u, 2231888973u, 1071748460u, 4139037911u, 0, SIN_TOLERANCE, 0},
+{ 161, 3246632231u, 40413554u, 3232578253u, 983832844u, 1072230353u, 3672194469u, 0, SIN_TOLERANCE, 0},
+{ 162, 3223721534u, 3995725873u, 1050082319u, 777231627u, 1072690845u, 636988494u, 0, SIN_TOLERANCE, 0},
+{ 163, 1040986626u, 672789828u, 3253385962u, 2982787335u, 1040986626u, 672789828u, 0, SIN_TOLERANCE, 0},
+{ 164, 1068390875u, 2075971825u, 1070166500u, 4034633931u, 1068389710u, 3161529855u, 0, SIN_TOLERANCE, 0},
+{ 165, 3210046177u, 1018222907u, 3244621407u, 3090050495u, 3210046176u, 3596251017u, 0, SIN_TOLERANCE, 0},
+{ 166, 1067680885u, 937732557u, 3200798890u, 2557898276u, 1067680575u, 1972612994u, 0, SIN_TOLERANCE, 0},
+{ 167, 1078342316u, 130346162u, 3223590310u, 275568693u, 1071233160u, 2708659300u, 0, SIN_TOLERANCE, 0},
+{ 168, 1042898869u, 3807416441u, 1075961161u, 3706820266u, 1042898869u, 3807416441u, 0, SIN_TOLERANCE, 0},
+{ 169, 3216099005u, 1710131411u, 1078123323u, 1900790503u, 3216098069u, 1762662362u, 0, SIN_TOLERANCE, 0},
+{ 170, 3238819361u, 3420420033u, 3210844787u, 588423066u, 1070295445u, 3527565762u, 0, SIN_TOLERANCE, 0},
+{ 171, 1049684114u, 1160162008u, 3246307879u, 4265764460u, 1049684114u, 1160161958u, 0, SIN_TOLERANCE, 0},
+{ 172, 1102543434u, 366653268u, 3188814424u, 466059202u, 1071873325u, 3249019602u, 0, SIN_TOLERANCE, 0},
+{ 173, 3226627739u, 1325936170u, 3221436876u, 680097612u, 1072682938u, 865545992u, 0, SIN_TOLERANCE, 0},
+{ 174, 3240391116u, 1827735934u, 3200554324u, 2875599271u, 3218775663u, 1968078348u, 0, SIN_TOLERANCE, 0},
+{ 175, 3191030402u, 3117037091u, 3239246636u, 15838845u, 3191030402u, 3117037091u, 0, SIN_TOLERANCE, 0},
+{ 176, 1051974004u, 749718883u, 3223587064u, 1523766569u, 1051974004u, 749717580u, 0, SIN_TOLERANCE, 0},
+{ 177, 1044833651u, 1966536294u, 3250158026u, 699164258u, 1044833651u, 1966536294u, 0, SIN_TOLERANCE, 0},
+{ 178, 1098048435u, 3759049394u, 1106085272u, 1183789499u, 1067724198u, 2503264895u, 0, SIN_TOLERANCE, 0},
+{ 179, 1081201623u, 1970107747u, 1095245453u, 2308233883u, 1071856614u, 1496877905u, 0, SIN_TOLERANCE, 0},
+{ 180, 1084756444u, 1491017852u, 1041444355u, 1723375725u, 1072328406u, 4148346279u, 0, SIN_TOLERANCE, 0},
+{ 181, 3216630070u, 1141349287u, 1097465301u, 3403438584u, 3216627182u, 3737898172u, 0, SIN_TOLERANCE, 0},
+{ 182, 3230571908u, 1711085243u, 3250239076u, 1377484108u, 1071511321u, 2243253033u, 0, SIN_TOLERANCE, 0},
+{ 183, 1098385019u, 2880275004u, 1084039594u, 1611394950u, 3219345234u, 1584777341u, 0, SIN_TOLERANCE, 0},
+{ 184, 3234221435u, 2626629370u, 1063771493u, 1499080813u, 3219468210u, 803658459u, 0, SIN_TOLERANCE, 0},
+{ 185, 1055231263u, 3936262414u, 1103919063u, 3175668759u, 1055231263u, 3936155644u, 0, SIN_TOLERANCE, 0},
+{ 186, 3207981719u, 1270950554u, 3194616071u, 3680565379u, 3207981719u, 1155967295u, 0, SIN_TOLERANCE, 0},
+{ 187, 3208148223u, 1066985223u, 3221613219u, 4089383168u, 3208148223u, 907199018u, 0, SIN_TOLERANCE, 0},
+{ 188, 3217058839u, 4017329311u, 3208334452u, 1667591498u, 3217055889u, 3244678034u, 0, SIN_TOLERANCE, 0},
+{ 189, 1088164157u, 3154656624u, 1061894279u, 3886344038u, 1072681871u, 43356682u, 0, SIN_TOLERANCE, 0},
+{ 190, 1050652945u, 977586119u, 3209762784u, 953839852u, 1050652945u, 977585787u, 0, SIN_TOLERANCE, 0},
+{ 191, 1104965247u, 143071571u, 3206165386u, 913097445u, 3220176895u, 642550610u, 0, SIN_TOLERANCE, 0},
+{ 192, 3190565456u, 1371169579u, 1057079837u, 2594818628u, 3190565456u, 1371169579u, 0, SIN_TOLERANCE, 0},
+{ 193, 3251793336u, 2259342224u, 3217432469u, 1824221478u, 1072638954u, 2287566710u, 0, SIN_TOLERANCE, 0},
+{ 194, 3246834775u, 1576604497u, 1079368611u, 185078728u, 1071666033u, 3954975003u, 0, SIN_TOLERANCE, 0},
+{ 195, 3221679427u, 444800035u, 3243343143u, 1734989302u, 3218173113u, 1522075355u, 0, SIN_TOLERANCE, 0},
+{ 196, 1072748883u, 130452005u, 1041548088u, 2158433515u, 1072418396u, 2140187299u, 0, SIN_TOLERANCE, 0},
+{ 197, 3234695968u, 1941318385u, 1045807374u, 792193370u, 3219097358u, 2422945605u, 0, SIN_TOLERANCE, 0},
+{ 198, 3238299666u, 1299392207u, 3212131720u, 3205732280u, 1070785701u, 2665619523u, 0, SIN_TOLERANCE, 0},
+{ 199, 1098698804u, 3035093505u, 1052187689u, 3287702190u, 3219661363u, 3456576138u, 0, SIN_TOLERANCE, 0},
+{ 200, 3246676260u, 2160225215u, 1102624859u, 836655570u, 3216148644u, 3912792675u, 0, SIN_TOLERANCE, 0},
+{ 201, 1096723626u, 3360816360u, 3246176356u, 172860634u, 3220164389u, 1558063129u, 0, SIN_TOLERANCE, 0},
+{ 202, 1070995788u, 146831910u, 1051558014u, 2340722078u, 1070967180u, 455169693u, 0, SIN_TOLERANCE, 0},
+{ 203, 3230416351u, 1603798153u, 3207725532u, 1099413093u, 1072409569u, 201880887u, 0, SIN_TOLERANCE, 0},
+{ 204, 3246678378u, 2429340443u, 3190303581u, 3223770005u, 3220129423u, 1040776768u, 0, SIN_TOLERANCE, 0},
+{ 205, 1075882959u, 955542166u, 3230415151u, 275583938u, 1072454723u, 572297329u, 0, SIN_TOLERANCE, 0},
+{ 206, 1092971882u, 513397822u, 1090646554u, 2089321329u, 3218397995u, 2821464852u, 0, SIN_TOLERANCE, 0},
+{ 207, 3193169876u, 2782073372u, 1046063872u, 4023829068u, 3193169876u, 2782073372u, 0, SIN_TOLERANCE, 0},
+{ 208, 1098564822u, 3242223094u, 3194111199u, 4264674108u, 1071856080u, 3645770997u, 0, SIN_TOLERANCE, 0},
+{ 209, 3238510821u, 3506346169u, 1047020885u, 1742757458u, 1072690743u, 315036582u, 0, SIN_TOLERANCE, 0},
+{ 210, 3192664477u, 1265459564u, 3193450280u, 3650514880u, 3192664477u, 1265459564u, 0, SIN_TOLERANCE, 0},
+{ 211, 1081755890u, 1525260440u, 3235452527u, 2612331392u, 3218719377u, 3676821394u, 0, SIN_TOLERANCE, 0},
+{ 212, 3248668920u, 1263613754u, 3219096387u, 635677201u, 3220176869u, 1842532013u, 0, SIN_TOLERANCE, 0},
+{ 213, 3206272087u, 4140947288u, 3200792376u, 2013265346u, 3206272087u, 4126233538u, 0, SIN_TOLERANCE, 0},
+{ 214, 3249974392u, 1912759945u, 3237045253u, 1351396825u, 3219910220u, 246004999u, 0, SIN_TOLERANCE, 0},
+{ 215, 3248205162u, 1001433078u, 3206926643u, 2741676659u, 1072684426u, 1737390075u, 0, SIN_TOLERANCE, 0},
+{ 216, 1080923606u, 1088945233u, 1085095743u, 3986114865u, 3219912227u, 2624070465u, 0, SIN_TOLERANCE, 0},
+{ 217, 3215734057u, 831239754u, 1099828675u, 3071308141u, 3215733122u, 716489315u, 0, SIN_TOLERANCE, 0},
+{ 218, 3225834497u, 3473592372u, 1102759382u, 1309576357u, 3219388623u, 3993183379u, 0, SIN_TOLERANCE, 0},
+{ 219, 3251186706u, 2042340367u, 1091945628u, 2062772374u, 1072597127u, 2200262097u, 0, SIN_TOLERANCE, 0},
+{ 220, 3194765687u, 1840632537u, 1096533424u, 807510337u, 3194765687u, 1840632533u, 0, SIN_TOLERANCE, 0},
+{ 221, 3231451722u, 144814872u, 3212698915u, 2282965697u, 1071983481u, 3846419649u, 0, SIN_TOLERANCE, 0},
+{ 222, 1071236430u, 2552499583u, 3229111426u, 1470130815u, 1071191158u, 3577871213u, 0, SIN_TOLERANCE, 0},
+{ 223, 3243093065u, 2858583811u, 1089760910u, 6360994u, 3220122625u, 1732563055u, 0, SIN_TOLERANCE, 0},
+{ 224, 3198264929u, 1614537194u, 1075198900u, 4088705365u, 3198264929u, 1614536965u, 0, SIN_TOLERANCE, 0},
+{ 225, 3250939070u, 3545570051u, 1065221325u, 1629217700u, 1071003501u, 2410682589u, 0, SIN_TOLERANCE, 0},
+{ 226, 1072744324u, 1813392963u, 3235313361u, 3772501596u, 1072413867u, 136366712u, 0, SIN_TOLERANCE, 0},
+{ 227, 3196802686u, 2406734491u, 1042055360u, 89226663u, 3196802686u, 2406734438u, 0, SIN_TOLERANCE, 0},
+{ 228, 3195751081u, 1618759139u, 3194723421u, 3888234802u, 3195751081u, 1618759126u, 0, SIN_TOLERANCE, 0},
+{ 229, 1055357248u, 3590035633u, 3212424262u, 2892456615u, 1055357248u, 3589897668u, 0, SIN_TOLERANCE, 0},
+{ 230, 3189943060u, 2431246964u, 3241512456u, 183850734u, 3189943060u, 2431246964u, 0, SIN_TOLERANCE, 0},
+{ 231, 1089501101u, 3088319870u, 3211544311u, 862225364u, 1072189734u, 1087579715u, 0, SIN_TOLERANCE, 0},
+{ 232, 3235294664u, 3495352775u, 1058576726u, 596957268u, 3218985922u, 793083747u, 0, SIN_TOLERANCE, 0},
+{ 233, 1046553348u, 1839214511u, 3205004060u, 1923240983u, 1046553348u, 1839214510u, 0, SIN_TOLERANCE, 0},
+{ 234, 1058073864u, 739619702u, 3223356436u, 2689885273u, 1058073864u, 736309424u, 0, SIN_TOLERANCE, 0},
+{ 235, 3200324971u, 2143376228u, 1098306332u, 3760236188u, 3200324971u, 2143372904u, 0, SIN_TOLERANCE, 0},
+{ 236, 1074621795u, 671680995u, 1091262633u, 2315535361u, 3219152238u, 1287790148u, 0, SIN_TOLERANCE, 0},
+{ 237, 3214165989u, 2493598049u, 3194927008u, 1689107592u, 3214165902u, 2958559986u, 0, SIN_TOLERANCE, 0},
+{ 238, 3189989959u, 1578976988u, 1066368383u, 2117279163u, 3189989959u, 1578976988u, 0, SIN_TOLERANCE, 0},
+{ 239, 3222988111u, 3425290087u, 1098487295u, 1263412017u, 3218820540u, 1900418251u, 0, SIN_TOLERANCE, 0},
+{ 240, 3208432764u, 3635396812u, 1070999426u, 3965655689u, 3208432764u, 3374510708u, 0, SIN_TOLERANCE, 0},
+{ 241, 1060196346u, 2183973116u, 1101098363u, 1118613350u, 1060196346u, 2127296784u, 0, SIN_TOLERANCE, 0},
+{ 242, 3221946089u, 199516350u, 1078368488u, 164621458u, 1070434834u, 2662056578u, 0, SIN_TOLERANCE, 0},
+{ 243, 3187706018u, 3570940805u, 3230316437u, 3596080877u, 3187706018u, 3570940805u, 0, SIN_TOLERANCE, 0},
+{ 244, 3208209565u, 980880313u, 1079833442u, 884465057u, 3208209565u, 802037311u, 0, SIN_TOLERANCE, 0},
+{ 245, 1099977124u, 2558179220u, 1052873711u, 1233598120u, 1072290576u, 1462410304u, 0, SIN_TOLERANCE, 0},
+{ 246, 1047115221u, 1909994277u, 1085015978u, 2991527452u, 1047115221u, 1909994274u, 0, SIN_TOLERANCE, 0},
+{ 247, 1060855260u, 1680290941u, 1074309900u, 2943870846u, 1060855260u, 1456422275u, 0, SIN_TOLERANCE, 0},
+{ 248, 1059496132u, 1451927357u, 3228615456u, 1502585517u, 1059496132u, 1420289507u, 0, SIN_TOLERANCE, 0},
+{ 249, 3236211951u, 751136990u, 3230392165u, 3493275472u, 3219937610u, 2246171886u, 0, SIN_TOLERANCE, 0},
+{ 250, 1098365967u, 1209623292u, 3238056647u, 979495322u, 1071752554u, 1874333801u, 0, SIN_TOLERANCE, 0},
+{ 251, 3250424296u, 1717672108u, 1048120593u, 531240316u, 1070213823u, 2671633378u, 0, SIN_TOLERANCE, 0},
+{ 252, 1054174923u, 3548721654u, 1086112947u, 3391817224u, 1054174923u, 3548695399u, 0, SIN_TOLERANCE, 0},
+{ 253, 1077836851u, 2758195125u, 1100880260u, 2028440924u, 3219761819u, 2824613343u, 0, SIN_TOLERANCE, 0},
+{ 254, 1084223893u, 2750123373u, 3232200256u, 1086294931u, 1072071999u, 3505664549u, 0, SIN_TOLERANCE, 0},
+{ 255, 1043958672u, 2986160931u, 1076097908u, 2540046258u, 1043958672u, 2986160931u, 0, SIN_TOLERANCE, 0},
+{ 256, 3235476602u, 451471221u, 1064816262u, 4187644495u, 1069352923u, 1649353225u, 0, SIN_TOLERANCE, 0},
+{ 257, 1099460228u, 2439500162u, 1065280276u, 1979490284u, 1071123074u, 1626723231u, 0, SIN_TOLERANCE, 0},
+{ 258, 1040415832u, 2283342035u, 1078398157u, 1345997553u, 1040415832u, 2283342035u, 0, SIN_TOLERANCE, 0},
+{ 259, 3213249348u, 179066662u, 1103272172u, 1217337578u, 3213249319u, 799119578u, 0, SIN_TOLERANCE, 0},
+{ 260, 3211562377u, 3779303391u, 3210023352u, 3115946280u, 3211562374u, 391551481u, 0, SIN_TOLERANCE, 0},
+{ 261, 3192989874u, 286247089u, 1085153597u, 713645369u, 3192989874u, 286247089u, 0, SIN_TOLERANCE, 0},
+{ 262, 1093670500u, 1468283899u, 1042831668u, 2022736418u, 1071991346u, 1826432782u, 0, SIN_TOLERANCE, 0},
+{ 263, 1083139105u, 3305564080u, 1065483445u, 482392433u, 3219574119u, 3539231989u, 0, SIN_TOLERANCE, 0},
+{ 264, 3201695807u, 2256346551u, 3222430705u, 2071674991u, 3201695807u, 2256318153u, 0, SIN_TOLERANCE, 0},
+{ 265, 3204024695u, 2295269094u, 1084451053u, 2773103941u, 3204024695u, 2294558540u, 0, SIN_TOLERANCE, 0},
+{ 266, 1078173946u, 1482721827u, 1092243422u, 3125409590u, 1072693090u, 777851873u, 0, SIN_TOLERANCE, 0},
+{ 267, 3221065973u, 1381740563u, 1071545057u, 2918235653u, 3220096899u, 393002564u, 0, SIN_TOLERANCE, 0},
+{ 268, 3238715972u, 1105857967u, 3241990046u, 2703723225u, 3219270769u, 1048619579u, 0, SIN_TOLERANCE, 0},
+{ 269, 1043015571u, 174689677u, 1079333374u, 3947057014u, 1043015571u, 174689677u, 0, SIN_TOLERANCE, 0},
+{ 270, 1090461859u, 2023082423u, 3242081486u, 1169047927u, 3217478735u, 1503114855u, 0, SIN_TOLERANCE, 0},
+{ 271, 1064525899u, 3742487766u, 1043425732u, 194972788u, 1064525895u, 581411206u, 0, SIN_TOLERANCE, 0},
+{ 272, 3213791827u, 2136071361u, 3211529757u, 993675115u, 3213791753u, 385020554u, 0, SIN_TOLERANCE, 0},
+{ 273, 3213663381u, 210772141u, 3241441539u, 580731413u, 3213663320u, 232861266u, 0, SIN_TOLERANCE, 0},
+{ 274, 1093840413u, 1751560711u, 1074522705u, 180987057u, 3219431759u, 1266961775u, 0, SIN_TOLERANCE, 0},
+{ 275, 1066754591u, 2552236599u, 1088658621u, 2112468655u, 1066754489u, 3214488945u, 0, SIN_TOLERANCE, 0},
+{ 276, 3189290617u, 1578223762u, 3224596567u, 2456166162u, 3189290617u, 1578223762u, 0, SIN_TOLERANCE, 0},
+{ 277, 1058506965u, 2110924310u, 1086207177u, 3161208323u, 1058506965u, 2102025662u, 0, SIN_TOLERANCE, 0},
+{ 278, 3231863394u, 2352173188u, 1079361728u, 4070222179u, 3220176852u, 2198122228u, 0, SIN_TOLERANCE, 0},
+{ 279, 1101012904u, 2481562701u, 1090937016u, 3809489716u, 3217832679u, 1979402010u, 0, SIN_TOLERANCE, 0},
+{ 280, 3197002651u, 330905705u, 1086260896u, 90264431u, 3197002651u, 330905632u, 0, SIN_TOLERANCE, 0},
+{ 281, 1040729961u, 4162008079u, 3194387916u, 759522153u, 1040729961u, 4162008079u, 0, SIN_TOLERANCE, 0},
+{ 282, 1081015037u, 1839697482u, 3216442625u, 2211508949u, 1070955687u, 1388259226u, 0, SIN_TOLERANCE, 0},
+{ 283, 3249807211u, 3736863454u, 1063475914u, 3150741666u, 1071777503u, 4068277341u, 0, SIN_TOLERANCE, 0},
+{ 284, 1060785883u, 4200269406u, 3236646101u, 1061812176u, 1060785883u, 4001387918u, 0, SIN_TOLERANCE, 0},
+{ 285, 1080217979u, 106027290u, 3234978297u, 2245237549u, 3218059427u, 1946602808u, 0, SIN_TOLERANCE, 0},
+{ 286, 3246984334u, 2132131375u, 3250483427u, 3449276437u, 1069746729u, 3706777593u, 0, SIN_TOLERANCE, 0},
+{ 287, 1089388778u, 2334440944u, 1105423490u, 4004336184u, 1071914715u, 1322385081u, 0, SIN_TOLERANCE, 0},
+{ 288, 3218772704u, 4090088208u, 1042030013u, 3898658299u, 3218723093u, 1840404530u, 0, SIN_TOLERANCE, 0},
+{ 289, 3207908064u, 2272831437u, 3253082595u, 2639188641u, 3207908064u, 2174645771u, 0, SIN_TOLERANCE, 0},
+{ 290, 1054766684u, 1856594168u, 3189515294u, 4101853676u, 1054766684u, 1856518788u, 0, SIN_TOLERANCE, 0},
+{ 291, 1076012412u, 2211699255u, 3195060344u, 3865018604u, 1069151373u, 3758558462u, 0, SIN_TOLERANCE, 0},
+{ 292, 3242767010u, 996259334u, 3241496889u, 3782673116u, 1070736732u, 1844588698u, 0, SIN_TOLERANCE, 0},
+{ 293, 1099130747u, 3840380763u, 1048674041u, 550040067u, 1072262137u, 3368858202u, 0, SIN_TOLERANCE, 0},
+{ 294, 3251419593u, 95874100u, 3237232828u, 2645647822u, 1072611743u, 4016179233u, 0, SIN_TOLERANCE, 0},
+{ 295, 1043665640u, 3441419500u, 3252367038u, 876710419u, 1043665640u, 3441419500u, 0, SIN_TOLERANCE, 0},
+{ 296, 3238593552u, 2560836004u, 3199616543u, 1180840586u, 1072163512u, 3370547255u, 0, SIN_TOLERANCE, 0},
+{ 297, 3221602966u, 2218230392u, 3227485787u, 3947214579u, 3218747484u, 1674330182u, 0, SIN_TOLERANCE, 0},
+{ 298, 1079539654u, 1447312532u, 1081476588u, 780366847u, 3218975849u, 1610107879u, 0, SIN_TOLERANCE, 0},
+{ 299, 1072569643u, 2842113832u, 3216156731u, 225159029u, 1072290979u, 1210181575u, 0, SIN_TOLERANCE, 0},
+{ 300, 1098117193u, 1601981129u, 3234628869u, 2236538344u, 3217893977u, 3064451299u, 0, SIN_TOLERANCE, 0},
+{ 301, 1085173524u, 2194185737u, 3242362684u, 87913366u, 3215053909u, 2806861459u, 0, SIN_TOLERANCE, 0},
+{ 302, 3199083880u, 1346862963u, 1077836259u, 3604666660u, 3199083880u, 1346861821u, 0, SIN_TOLERANCE, 0},
+{ 303, 3212255979u, 3115209742u, 1099332326u, 1325101950u, 3212255971u, 2844681635u, 0, SIN_TOLERANCE, 0},
+{ 304, 3224546042u, 3889223100u, 1053247613u, 3371396923u, 1070014491u, 1859783173u, 0, SIN_TOLERANCE, 0},
+{ 305, 3220477868u, 4163120793u, 1075022670u, 1387631215u, 3220093026u, 1482317646u, 0, SIN_TOLERANCE, 0},
+{ 306, 3205481779u, 1532426189u, 1063168268u, 3397022615u, 3205481779u, 1526953343u, 0, SIN_TOLERANCE, 0},
+{ 307, 3201033321u, 89324166u, 1079206060u, 3429424710u, 3201033321u, 89309700u, 0, SIN_TOLERANCE, 0},
+{ 308, 3192325102u, 747591401u, 1072238381u, 2803213904u, 3192325102u, 747591401u, 0, SIN_TOLERANCE, 0},
+{ 309, 1091113780u, 271904221u, 1044258318u, 1858545114u, 3220166722u, 3739614867u, 0, SIN_TOLERANCE, 0},
+{ 310, 3228068914u, 314958082u, 3249912496u, 2966213175u, 3219267980u, 1442348823u, 0, SIN_TOLERANCE, 0},
+{ 311, 3197179414u, 3119528953u, 3217179014u, 2908718240u, 3197179414u, 3119528901u, 0, SIN_TOLERANCE, 0},
+{ 312, 3242467576u, 2018361566u, 1100926600u, 3985805054u, 1072498987u, 1114330108u, 0, SIN_TOLERANCE, 0},
+{ 313, 1070132580u, 409584884u, 3239758947u, 755795129u, 1070122273u, 2544291857u, 0, SIN_TOLERANCE, 0},
+{ 314, 1075772446u, 1819156379u, 3251342302u, 2982669005u, 1072681080u, 3512208687u, 0, SIN_TOLERANCE, 0},
+{ 315, 1101563433u, 2080534280u, 3188254060u, 449171797u, 3220175583u, 2151064167u, 0, SIN_TOLERANCE, 0},
+{ 316, 1095956900u, 168744837u, 3214950009u, 1322217822u, 1072189425u, 4007310009u, 0, SIN_TOLERANCE, 0},
+{ 317, 3254226900u, 3250487255u, 1062120700u, 1876195180u, 3220007214u, 3581504613u, 0, SIN_TOLERANCE, 0},
+{ 318, 3226343480u, 1336400247u, 1098057903u, 3314079581u, 1071554540u, 633418165u, 0, SIN_TOLERANCE, 0},
+{ 319, 3203678820u, 265025555u, 1063854282u, 3779482256u, 3203678820u, 264670771u, 0, SIN_TOLERANCE, 0},
+{ 320, 1067300501u, 887044257u, 1054789618u, 2732056261u, 1067300227u, 4110391556u, 0, SIN_TOLERANCE, 0},
+{ 321, 1050106742u, 4027115185u, 3191764868u, 2940199511u, 1050106742u, 4027115052u, 0, SIN_TOLERANCE, 0},
+{ 322, 3202500155u, 2875684421u, 3227459837u, 2251967570u, 3202500155u, 2875619325u, 0, SIN_TOLERANCE, 0},
+{ 323, 1063244412u, 284173546u, 3238823679u, 3557800647u, 1063244410u, 3242409421u, 0, SIN_TOLERANCE, 0},
+{ 324, 1101458560u, 3147771266u, 3220110464u, 2933364246u, 3219368592u, 3568645980u, 0, SIN_TOLERANCE, 0},
+{ 325, 1064853160u, 3366183281u, 3234870843u, 537442654u, 1064853151u, 1551952560u, 0, SIN_TOLERANCE, 0},
+{ 326, 3244118788u, 2529029548u, 3249882819u, 3781513577u, 1072616894u, 43106596u, 0, SIN_TOLERANCE, 0},
+{ 327, 3213436354u, 1080845539u, 3206760016u, 911778687u, 3213436312u, 3596660530u, 0, SIN_TOLERANCE, 0},
+{ 328, 3191951036u, 469586759u, 1091830022u, 3080528840u, 3191951036u, 469586759u, 0, SIN_TOLERANCE, 0},
+{ 329, 1080249104u, 2863108169u, 3225605506u, 2508274250u, 3218694376u, 673605614u, 0, SIN_TOLERANCE, 0},
+{ 330, 3210826984u, 4080017377u, 3206492941u, 1470284690u, 3210826984u, 440611368u, 0, SIN_TOLERANCE, 0},
+{ 331, 3207120390u, 3867917386u, 1102054928u, 3504746045u, 3207120390u, 3826399709u, 0, SIN_TOLERANCE, 0},
+{ 332, 1064522279u, 2962134101u, 3244741577u, 3390537350u, 1064522274u, 4269499531u, 0, SIN_TOLERANCE, 0},
+{ 333, 1088201813u, 1702237980u, 1071598971u, 1102587474u, 3219219713u, 2231984255u, 0, SIN_TOLERANCE, 0},
+{ 334, 3202970118u, 2180218657u, 3211592260u, 1206527853u, 3202970118u, 2180042922u, 0, SIN_TOLERANCE, 0},
+{ 335, 3197084744u, 394130786u, 3242511482u, 2437699868u, 3197084744u, 394130704u, 0, SIN_TOLERANCE, 0},
+{ 336, 1044237059u, 849581558u, 3252006507u, 2008614943u, 1044237059u, 849581558u, 0, SIN_TOLERANCE, 0},
+{ 337, 3210140014u, 3128971673u, 3249137531u, 2773583059u, 3210140014u, 1044145102u, 0, SIN_TOLERANCE, 0},
+{ 338, 1085029866u, 590727700u, 3248651761u, 2183878539u, 1072378519u, 2279746955u, 0, SIN_TOLERANCE, 0},
+{ 339, 1101098629u, 820687580u, 3208143496u, 1402434664u, 1070935377u, 2141380414u, 0, SIN_TOLERANCE, 0},
+{ 340, 3252290835u, 1873709254u, 3245167989u, 44275991u, 3219443403u, 3646165606u, 0, SIN_TOLERANCE, 0},
+{ 341, 3189668753u, 1174874204u, 3208263730u, 2360372288u, 3189668753u, 1174874204u, 0, SIN_TOLERANCE, 0},
+{ 342, 1103854676u, 937573440u, 3208953761u, 211240241u, 3219590734u, 928440172u, 0, SIN_TOLERANCE, 0},
+{ 343, 3243548934u, 2469774991u, 1043117070u, 3380071805u, 3219568461u, 498405354u, 0, SIN_TOLERANCE, 0},
+{ 344, 1058121042u, 442507560u, 3254252803u, 3257889649u, 1058121042u, 438756694u, 0, SIN_TOLERANCE, 0},
+{ 345, 1068850520u, 1854921625u, 1049810168u, 2729627545u, 1068848895u, 2974802106u, 0, SIN_TOLERANCE, 0},
+{ 346, 3254712629u, 4001809575u, 3240128649u, 278261523u, 3219146788u, 1661912448u, 0, SIN_TOLERANCE, 0},
+{ 347, 1087224694u, 1793907966u, 3238955714u, 398859249u, 3220058283u, 3138944076u, 0, SIN_TOLERANCE, 0},
+{ 348, 3200952547u, 2511916952u, 3219195283u, 1697158299u, 3200952547u, 2511904320u, 0, SIN_TOLERANCE, 0},
+{ 349, 1069985548u, 3230931724u, 3243897690u, 3508781585u, 1069977779u, 2586916475u, 0, SIN_TOLERANCE, 0},
+{ 350, 1103847606u, 1674254897u, 1046547577u, 217148561u, 1071576757u, 1023587413u, 0, SIN_TOLERANCE, 0},
+{ 351, 3211263954u, 3275604304u, 3194840159u, 2991205850u, 3211263952u, 2202700417u, 0, SIN_TOLERANCE, 0},
+{ 352, 3195249375u, 3509997278u, 3248888030u, 3897986511u, 3195249375u, 3509997273u, 0, SIN_TOLERANCE, 0},
+{ 353, 1047182435u, 2156824613u, 1042295665u, 1239257646u, 1047182435u, 2156824610u, 0, SIN_TOLERANCE, 0},
+{ 354, 3213264085u, 1073153314u, 3250031627u, 2567234990u, 3213264055u, 2199995967u, 0, SIN_TOLERANCE, 0},
+{ 355, 3190593412u, 4261696995u, 3197784432u, 323702024u, 3190593412u, 4261696995u, 0, SIN_TOLERANCE, 0},
+{ 356, 3243690997u, 4075177615u, 3202791065u, 1919006082u, 1072671496u, 2731841203u, 0, SIN_TOLERANCE, 0},
+{ 357, 3239270013u, 386429966u, 1086504491u, 3698826164u, 3220169748u, 4045379867u, 0, SIN_TOLERANCE, 0},
+{ 358, 1078327190u, 1681986446u, 3194985869u, 3072950140u, 3215496106u, 3159177907u, 0, SIN_TOLERANCE, 0},
+{ 359, 3217311933u, 3719038997u, 1055433962u, 3331415058u, 3217306376u, 4089001786u, 0, SIN_TOLERANCE, 0},
+{ 360, 1060749713u, 2420250111u, 3238002206u, 1928661079u, 1060749713u, 2233624875u, 0, SIN_TOLERANCE, 0},
+{ 361, 1081914210u, 3679866727u, 3227386672u, 1273835792u, 1071672711u, 2463694361u, 0, SIN_TOLERANCE, 0},
+{ 362, 1041622738u, 2682092368u, 3234222284u, 1325425811u, 1041622738u, 2682092368u, 0, SIN_TOLERANCE, 0},
+{ 363, 1056312613u, 4175172697u, 3208346191u, 2130706153u, 1056312613u, 4174715193u, 0, SIN_TOLERANCE, 0},
+{ 364, 1092089624u, 1200784450u, 1083605096u, 1248595607u, 3218646220u, 2271896913u, 0, SIN_TOLERANCE, 0},
+{ 365, 3213890863u, 1897285171u, 3251296075u, 944966123u, 3213890820u, 473058695u, 0, SIN_TOLERANCE, 0},
+{ 366, 3241371250u, 2270747330u, 3230692631u, 422503284u, 3220159790u, 1559521389u, 0, SIN_TOLERANCE, 0},
+{ 367, 1084120037u, 2857564741u, 1075647403u, 3308906709u, 1072682608u, 1566770115u, 0, SIN_TOLERANCE, 0},
+{ 368, 3203475098u, 1380066948u, 3232612906u, 2613634294u, 3203475098u, 1379851699u, 0, SIN_TOLERANCE, 0},
+{ 369, 1063890856u, 4022784584u, 1060483857u, 3264056381u, 1063890854u, 765768635u, 0, SIN_TOLERANCE, 0},
+{ 370, 1044637404u, 1778509100u, 3213146285u, 2665833973u, 1044637404u, 1778509100u, 0, SIN_TOLERANCE, 0},
+{ 371, 3216727300u, 1859175955u, 1079949560u, 4258450607u, 3216723887u, 2800533765u, 0, SIN_TOLERANCE, 0},
+{ 372, 1048277388u, 4128020197u, 1076266146u, 4122840980u, 1048277388u, 4128020184u, 0, SIN_TOLERANCE, 0},
+{ 373, 3193183163u, 2454653987u, 3229487005u, 2977478685u, 3193183163u, 2454653987u, 0, SIN_TOLERANCE, 0},
+{ 374, 3253556483u, 1355181872u, 1095308770u, 436846481u, 1070404584u, 1346890185u, 0, SIN_TOLERANCE, 0},
+{ 375, 3246605302u, 2592856453u, 3247825559u, 3195234082u, 3219332754u, 3289059462u, 0, SIN_TOLERANCE, 0},
+{ 376, 3222118023u, 3554670043u, 1091621009u, 3321236467u, 1071711521u, 2918342783u, 0, SIN_TOLERANCE, 0},
+{ 377, 1069012833u, 1936670355u, 1095715713u, 2958468553u, 1069010575u, 3545442834u, 0, SIN_TOLERANCE, 0},
+{ 378, 3192291109u, 2960339502u, 1098808013u, 1044068983u, 3192291109u, 2960339502u, 0, SIN_TOLERANCE, 0},
+{ 379, 3196691185u, 4093388677u, 1095478112u, 1735930261u, 3196691185u, 4093388633u, 0, SIN_TOLERANCE, 0},
+{ 380, 1091040302u, 1807398746u, 3195743135u, 4261616162u, 3218499784u, 630768479u, 0, SIN_TOLERANCE, 0},
+{ 381, 3209294194u, 3250576797u, 1059002384u, 3043079652u, 3209294194u, 2487695189u, 0, SIN_TOLERANCE, 0},
+{ 382, 1069207109u, 666051428u, 3208765404u, 1912684117u, 1069203900u, 3062493543u, 0, SIN_TOLERANCE, 0},
+{ 383, 1103487420u, 1949030179u, 1096388934u, 896459246u, 3219528448u, 2251950666u, 0, SIN_TOLERANCE, 0},
+{ 384, 1054300653u, 622499767u, 1066707637u, 1490260486u, 1054300653u, 622465812u, 0, SIN_TOLERANCE, 0},
+{ 385, 1106688493u, 1490616165u, 3251242436u, 795675736u, 1071164231u, 1572663486u, 0, SIN_TOLERANCE, 0},
+{ 386, 1080943896u, 3662877092u, 3234317146u, 3200513112u, 1071174065u, 1421883672u, 0, SIN_TOLERANCE, 0},
+{ 387, 1084088786u, 1356101968u, 3236536816u, 3062844611u, 1072062816u, 4171501946u, 0, SIN_TOLERANCE, 0},
+{ 388, 3219922640u, 2284484846u, 3219498359u, 3240896015u, 3219694444u, 2213484574u, 0, SIN_TOLERANCE, 0},
+{ 389, 3235759689u, 494503287u, 1092811254u, 142673998u, 3213704730u, 3260565064u, 0, SIN_TOLERANCE, 0},
+{ 390, 3252125916u, 3394882641u, 3225306538u, 364852125u, 1072108480u, 4038780813u, 0, SIN_TOLERANCE, 0},
+{ 391, 3225261763u, 193885269u, 1088149839u, 1359805831u, 1072624787u, 4121749569u, 0, SIN_TOLERANCE, 0},
+{ 392, 3200484782u, 592580907u, 3199560872u, 3086438952u, 3200484782u, 592575947u, 0, SIN_TOLERANCE, 0},
+{ 393, 1059518664u, 1778008540u, 1049064687u, 73581647u, 1059518664u, 1744906541u, 0, SIN_TOLERANCE, 0},
+{ 394, 3246733598u, 233240285u, 1081923320u, 2710903921u, 1072686695u, 3681926353u, 0, SIN_TOLERANCE, 0},
+{ 395, 1069513767u, 3719878805u, 1079866720u, 3615458228u, 1069508569u, 4007151816u, 0, SIN_TOLERANCE, 0},
+{ 396, 3221194724u, 3647632375u, 3247225271u, 3839959621u, 3220011446u, 657266419u, 0, SIN_TOLERANCE, 0},
+{ 397, 1103401096u, 2232210456u, 3235434773u, 224271737u, 3219291904u, 1056060008u, 0, SIN_TOLERANCE, 0},
+{ 398, 3193003684u, 2134662911u, 3190390590u, 4239009051u, 3193003684u, 2134662911u, 0, SIN_TOLERANCE, 0},
+{ 399, 1080526145u, 2305279897u, 1077668039u, 1854523320u, 3218395496u, 1710236719u, 0, SIN_TOLERANCE, 0},
+{ 400, 3219864259u, 538224650u, 3206153057u, 1379649610u, 3219656570u, 905357172u, 0, SIN_TOLERANCE, 0},
+{ 401, 3196410507u, 3683897920u, 3244167599u, 3647579469u, 3196410507u, 3683897895u, 0, SIN_TOLERANCE, 0},
+{ 402, 1090280933u, 2694093608u, 1042775347u, 598406111u, 1072678613u, 1199374585u, 0, SIN_TOLERANCE, 0},
+{ 403, 3211635392u, 872706833u, 1084802480u, 2200602798u, 3211635387u, 4094761714u, 0, SIN_TOLERANCE, 0},
+{ 404, 1042339597u, 904146293u, 1060867322u, 1729685598u, 1042339597u, 904146293u, 0, SIN_TOLERANCE, 0},
+{ 405, 3195694970u, 1894173462u, 3232800651u, 191960416u, 3195694970u, 1894173450u, 0, SIN_TOLERANCE, 0},
+{ 406, 1091225343u, 3521028551u, 1054522089u, 3287274359u, 1072666872u, 2878943607u, 0, SIN_TOLERANCE, 0},
+{ 407, 1095386964u, 959640601u, 3201578263u, 4136915018u, 1071650759u, 4107877457u, 0, SIN_TOLERANCE, 0},
+{ 408, 1064005451u, 1553716379u, 1106027987u, 984725765u, 1064005448u, 3806280u, 0, SIN_TOLERANCE, 0},
+{ 409, 3238832641u, 2287646644u, 3240329321u, 2276183378u, 3219833338u, 4061144814u, 0, SIN_TOLERANCE, 0},
+{ 410, 1068209174u, 3940225170u, 3199544434u, 997572161u, 1068208301u, 293018899u, 0, SIN_TOLERANCE, 0},
+{ 411, 3212768361u, 36116288u, 3206886566u, 4196602670u, 3212768341u, 2998456369u, 0, SIN_TOLERANCE, 0},
+{ 412, 3241695853u, 3550227562u, 3207257983u, 2747744117u, 3216014115u, 1571426293u, 0, SIN_TOLERANCE, 0},
+{ 413, 1104236126u, 507130047u, 1048359321u, 3229888373u, 1072679610u, 1134166995u, 0, SIN_TOLERANCE, 0},
+{ 414, 3222996778u, 2210969014u, 1081031001u, 1946786091u, 3218944954u, 4108691652u, 0, SIN_TOLERANCE, 0},
+{ 415, 3236306990u, 4059150589u, 3189759234u, 1177045799u, 1072192774u, 164380330u, 0, SIN_TOLERANCE, 0},
+{ 416, 1093103612u, 2664812822u, 1050343198u, 2034180320u, 3220155710u, 2715854652u, 0, SIN_TOLERANCE, 0},
+{ 417, 3213779117u, 1175750283u, 3235559706u, 1424491340u, 3213779044u, 1173295357u, 0, SIN_TOLERANCE, 0},
+{ 418, 3213904193u, 1630036121u, 3231972785u, 3195479448u, 3213904148u, 1645005977u, 0, SIN_TOLERANCE, 0},
+{ 419, 1090429875u, 2527029044u, 1046927050u, 4000723255u, 3219966524u, 3715598854u, 0, SIN_TOLERANCE, 0},
+{ 420, 1085208677u, 3335703647u, 3237349676u, 3869440059u, 3219009356u, 4095114083u, 0, SIN_TOLERANCE, 0},
+{ 421, 1091433848u, 3888398377u, 3196041693u, 1290567220u, 1072583950u, 1011503215u, 0, SIN_TOLERANCE, 0},
+{ 422, 1066679070u, 3242451480u, 3248384948u, 707431021u, 1066678984u, 2160822261u, 0, SIN_TOLERANCE, 0},
+{ 423, 1083230509u, 2739665123u, 1060777905u, 1733073225u, 3217071034u, 903609947u, 0, SIN_TOLERANCE, 0},
+{ 424, 1078517061u, 1297274853u, 3208848704u, 3341639139u, 3219152212u, 3806596794u, 0, SIN_TOLERANCE, 0},
+{ 425, 1046570941u, 2228057309u, 1084318902u, 1317851136u, 1046570941u, 2228057308u, 0, SIN_TOLERANCE, 0},
+{ 426, 1088255327u, 270039934u, 3241414679u, 3063626339u, 3216396846u, 3644353080u, 0, SIN_TOLERANCE, 0},
+{ 427, 3219178350u, 83062251u, 3211262173u, 2659016437u, 3219128787u, 1914189566u, 0, SIN_TOLERANCE, 0},
+{ 428, 1095743886u, 3833539373u, 3206667189u, 1567476111u, 1071807946u, 404285730u, 0, SIN_TOLERANCE, 0},
+{ 429, 3205195072u, 2382776852u, 3249232579u, 1546622468u, 3205195072u, 2379267821u, 0, SIN_TOLERANCE, 0},
+{ 430, 1085536439u, 1714300821u, 1104130938u, 4167591598u, 3220123735u, 685495821u, 0, SIN_TOLERANCE, 0},
+{ 431, 1051092760u, 2798720100u, 1086978789u, 449990704u, 1051092760u, 2798719632u, 0, SIN_TOLERANCE, 0},
+{ 432, 3231198415u, 4039516226u, 3244344107u, 4272932619u, 3220175867u, 3527643160u, 0, SIN_TOLERANCE, 0},
+{ 433, 3222708441u, 1683007544u, 1091105663u, 3805494321u, 1071825014u, 828793735u, 0, SIN_TOLERANCE, 0},
+{ 434, 3220852948u, 2072627412u, 1094383324u, 3394151662u, 3220171166u, 1264193719u, 0, SIN_TOLERANCE, 0},
+{ 435, 3220570024u, 1120106427u, 3223631624u, 3404608264u, 3220136791u, 2964380269u, 0, SIN_TOLERANCE, 0},
+{ 436, 1097859997u, 559918757u, 3205077053u, 908100198u, 3219993005u, 970396619u, 0, SIN_TOLERANCE, 0},
+{ 437, 1042677918u, 2026673913u, 3244833635u, 2844573214u, 1042677918u, 2026673913u, 0, SIN_TOLERANCE, 0},
+{ 438, 3254567259u, 3946837259u, 3234993796u, 3850406820u, 3218559097u, 3013700769u, 0, SIN_TOLERANCE, 0},
+{ 439, 1057479809u, 3139330994u, 1046133568u, 1539650690u, 1057479809u, 3137012350u, 0, SIN_TOLERANCE, 0},
+{ 440, 3236705500u, 1554593884u, 3228899878u, 2813752562u, 1071977984u, 1955826869u, 0, SIN_TOLERANCE, 0},
+{ 441, 1056505004u, 3804703138u, 1072931071u, 2053677923u, 1056505004u, 3804037510u, 0, SIN_TOLERANCE, 0},
+{ 442, 3244864299u, 289355864u, 1078453818u, 2143066338u, 3219233682u, 468401044u, 0, SIN_TOLERANCE, 0},
+{ 443, 3203939880u, 2157691971u, 1106629150u, 110806409u, 3203939880u, 2157084064u, 0, SIN_TOLERANCE, 0},
+{ 444, 1082157019u, 3570399481u, 1085637605u, 180265334u, 3218415536u, 3741238523u, 0, SIN_TOLERANCE, 0},
+{ 445, 3200980182u, 558779875u, 3202046748u, 2338464653u, 3200980182u, 558766634u, 0, SIN_TOLERANCE, 0},
+{ 446, 1045705464u, 1703969219u, 3229797258u, 1417521063u, 1045705464u, 1703969219u, 0, SIN_TOLERANCE, 0},
+{ 447, 3237782261u, 3917440951u, 1051668894u, 3736066983u, 3219677496u, 2476988526u, 0, SIN_TOLERANCE, 0},
+{ 448, 1064752080u, 3106613409u, 1066627453u, 2735392257u, 1064752072u, 4205181601u, 0, SIN_TOLERANCE, 0},
+{ 449, 1065665372u, 2229777605u, 1065061963u, 2405869925u, 1065665349u, 897699253u, 0, SIN_TOLERANCE, 0},
+{ 450, 3239463229u, 3967957902u, 1057416138u, 3459188071u, 3219483279u, 1204805702u, 0, SIN_TOLERANCE, 0},
+{ 451, 1068639210u, 3699016825u, 3249713090u, 796144848u, 1068638216u, 877792013u, 0, SIN_TOLERANCE, 0},
+{ 452, 3228816396u, 3285165564u, 3211948811u, 401510871u, 3215486773u, 1278566204u, 0, SIN_TOLERANCE, 0},
+{ 453, 1094257658u, 634857910u, 3199607513u, 914218057u, 1070809933u, 656420698u, 0, SIN_TOLERANCE, 0},
+{ 454, 1083743336u, 2030735578u, 3233855943u, 965677531u, 3220005840u, 3974123114u, 0, SIN_TOLERANCE, 0},
+{ 455, 1079556815u, 3957229084u, 1051050470u, 3123776651u, 3220175113u, 3998644826u, 0, SIN_TOLERANCE, 0},
+{ 456, 3221863333u, 162122081u, 3239376395u, 108064594u, 1068707993u, 3902663790u, 0, SIN_TOLERANCE, 0},
+{ 457, 3237271786u, 869031839u, 3225020876u, 1344301606u, 3219835626u, 1742181520u, 0, SIN_TOLERANCE, 0},
+{ 458, 3214433474u, 946696117u, 3231825228u, 1700703647u, 3214433323u, 2592553516u, 0, SIN_TOLERANCE, 0},
+{ 459, 1075492875u, 3394168074u, 1076939786u, 1666995668u, 1071167510u, 819576280u, 0, SIN_TOLERANCE, 0},
+{ 460, 3208774795u, 2488789804u, 3238508333u, 1506943664u, 3208774795u, 2233231096u, 0, SIN_TOLERANCE, 0},
+{ 461, 1072788663u, 3844072288u, 3202592279u, 2630019853u, 1072456452u, 882065402u, 0, SIN_TOLERANCE, 0},
+{ 462, 3219934542u, 1244307192u, 3191297711u, 2540916692u, 3219702013u, 192990048u, 0, SIN_TOLERANCE, 0},
+{ 463, 3200062692u, 2871645739u, 3239081581u, 1440249115u, 3200062692u, 2871641640u, 0, SIN_TOLERANCE, 0},
+{ 464, 1068350633u, 1231934926u, 3236746788u, 603977748u, 1068349537u, 3457970651u, 0, SIN_TOLERANCE, 0},
+{ 465, 3195449689u, 2386312545u, 1063169277u, 2715234268u, 3195449689u, 2386312537u, 0, SIN_TOLERANCE, 0},
+{ 466, 1087803418u, 915867083u, 1046790892u, 3347417612u, 1072499185u, 2089737020u, 0, SIN_TOLERANCE, 0},
+{ 467, 1105984188u, 3553288373u, 1065698616u, 2906680663u, 1071870382u, 1073334537u, 0, SIN_TOLERANCE, 0},
+{ 468, 1045506226u, 2342364630u, 1051356723u, 4019093203u, 1045506226u, 2342364630u, 0, SIN_TOLERANCE, 0},
+{ 469, 3201169162u, 2911548084u, 1105282515u, 2476735795u, 3201169162u, 2911530147u, 0, SIN_TOLERANCE, 0},
+{ 470, 1050472772u, 1836216409u, 1101062307u, 2519592554u, 1050472772u, 1836216156u, 0, SIN_TOLERANCE, 0},
+{ 471, 1070178161u, 1235369496u, 3222946447u, 668087854u, 1070166968u, 4228921710u, 0, SIN_TOLERANCE, 0},
+{ 472, 3208554596u, 2981820811u, 1059838516u, 2845580478u, 3208554596u, 2667081449u, 0, SIN_TOLERANCE, 0},
+{ 473, 3193931414u, 1565550570u, 3217165795u, 4162017137u, 3193931414u, 1565550569u, 0, SIN_TOLERANCE, 0},
+{ 474, 3237251378u, 2808968027u, 1055630096u, 1782326814u, 3219818408u, 1142564445u, 0, SIN_TOLERANCE, 0},
+{ 475, 1053576974u, 1492622658u, 3216653077u, 3972512122u, 1053576974u, 1492607534u, 0, SIN_TOLERANCE, 0},
+{ 476, 3222171679u, 2722693603u, 3227814791u, 3169731970u, 1071887116u, 525452416u, 0, SIN_TOLERANCE, 0},
+{ 477, 3217906631u, 899763203u, 3207606001u, 2804747833u, 3217889805u, 2998184084u, 0, SIN_TOLERANCE, 0},
+{ 478, 3230670325u, 3789058912u, 3228095081u, 4135937628u, 3219896487u, 3785128251u, 0, SIN_TOLERANCE, 0},
+{ 479, 1060199382u, 1682808307u, 3206960335u, 232877759u, 1060199382u, 1625675800u, 0, SIN_TOLERANCE, 0},
+{ 480, 3242091486u, 2851963139u, 3246852961u, 2590862592u, 3219187029u, 4160198778u, 0, SIN_TOLERANCE, 0},
+{ 481, 1081200406u, 2422232642u, 3234779662u, 290458310u, 1072292043u, 374164345u, 0, SIN_TOLERANCE, 0},
+{ 482, 3210671078u, 1082582386u, 1075605675u, 2602133689u, 3210671077u, 194975196u, 0, SIN_TOLERANCE, 0},
+{ 483, 3239818611u, 1789635787u, 1059414278u, 1048286093u, 3220086075u, 82631293u, 0, SIN_TOLERANCE, 0},
+{ 484, 1098330542u, 231339448u, 1055573265u, 504907415u, 1068257446u, 2455089238u, 0, SIN_TOLERANCE, 0},
+{ 485, 1063211461u, 1153251200u, 3204617090u, 1772013857u, 1063211460u, 79265977u, 0, SIN_TOLERANCE, 0},
+{ 486, 1099551055u, 1082898276u, 3212089272u, 1449080862u, 3218511880u, 3277707552u, 0, SIN_TOLERANCE, 0},
+{ 487, 1086008285u, 3177299045u, 1058862813u, 809400815u, 1071103413u, 828912693u, 0, SIN_TOLERANCE, 0},
+{ 488, 3230854550u, 1924429710u, 1056464743u, 3349283177u, 1072591385u, 3082809316u, 0, SIN_TOLERANCE, 0},
+{ 489, 3245473391u, 42238036u, 1042379500u, 2113559863u, 1072278178u, 3405273341u, 0, SIN_TOLERANCE, 0},
+{ 490, 1064761243u, 3304403230u, 3217556703u, 58952646u, 1064761235u, 3788050789u, 0, SIN_TOLERANCE, 0},
+{ 491, 3212669530u, 1645486982u, 3224301095u, 3636267471u, 3212669513u, 3263410238u, 0, SIN_TOLERANCE, 0},
+{ 492, 1062762009u, 619402181u, 3235208235u, 557360557u, 1062762008u, 2356441311u, 0, SIN_TOLERANCE, 0},
+{ 493, 3238238394u, 110029735u, 1046937383u, 984375729u, 1069598005u, 3806390758u, 0, SIN_TOLERANCE, 0},
+{ 494, 3189496738u, 4063688092u, 3203235744u, 1049950343u, 3189496738u, 4063688092u, 0, SIN_TOLERANCE, 0},
+{ 495, 1062350619u, 650996069u, 1054971928u, 3953359826u, 1062350618u, 3895169615u, 0, SIN_TOLERANCE, 0},
+{ 496, 3227055805u, 66926332u, 1090561839u, 1379780888u, 1071907710u, 4044840027u, 0, SIN_TOLERANCE, 0},
+{ 497, 3233453307u, 2803378256u, 1086057989u, 498534626u, 3218243918u, 2791615725u, 0, SIN_TOLERANCE, 0},
+{ 498, 1082618553u, 2846400785u, 1047142525u, 1375153550u, 1071558334u, 1773771057u, 0, SIN_TOLERANCE, 0},
+{ 499, 1044581201u, 2869128958u, 1070972315u, 4246440273u, 1044581201u, 2869128958u, 0, SIN_TOLERANCE, 0},
+{ 500, 1051832506u, 3112381207u, 1044430965u, 3981604561u, 1051832506u, 3112380284u, 0, SIN_TOLERANCE, 0},
+{ 501, 3231254997u, 243303420u, 1093735824u, 1575581926u, 3218023891u, 2206751039u, 0, SIN_TOLERANCE, 0},
+{ 502, 3239137997u, 3218865041u, 3204803496u, 3840388050u, 1070566791u, 3693771798u, 0, SIN_TOLERANCE, 0},
+{ 503, 1048415431u, 336846959u, 1052664471u, 3798336786u, 1048415431u, 336846942u, 0, SIN_TOLERANCE, 0},
+{ 504, 1055954236u, 3639240976u, 1081202165u, 1844741676u, 1055954236u, 3639046406u, 0, SIN_TOLERANCE, 0},
+{ 505, 3211904793u, 717293069u, 3211534283u, 582401011u, 3211904789u, 2186409606u, 0, SIN_TOLERANCE, 0},
+{ 506, 3251962512u, 3766248610u, 3196520332u, 1174437546u, 3219859002u, 933735856u, 0, SIN_TOLERANCE, 0},
+{ 507, 1083431226u, 756959182u, 3204099341u, 1581804034u, 1072468298u, 2249202001u, 0, SIN_TOLERANCE, 0},
+{ 508, 3205806444u, 3560686300u, 3220980617u, 4277975772u, 3205806444u, 3554609858u, 0, SIN_TOLERANCE, 0},
+{ 509, 3209906076u, 2598148853u, 3217622194u, 3460421008u, 3209906076u, 1345723928u, 0, SIN_TOLERANCE, 0},
+{ 510, 1066720824u, 136600515u, 3209934920u, 3340653128u, 1066720729u, 1598401379u, 0, SIN_TOLERANCE, 0},
+{ 511, 1096820310u, 1045480938u, 3251354609u, 4133432965u, 1072537699u, 4085430850u, 0, SIN_TOLERANCE, 0},
+{ 512, 1091599431u, 1630207738u, 3239996829u, 2393354808u, 1071751521u, 1124141059u, 0, SIN_TOLERANCE, 0},
+{ 513, 3190626018u, 3739770117u, 1059520750u, 3959551225u, 3190626018u, 3739770117u, 0, SIN_TOLERANCE, 0},
+{ 514, 3230730505u, 1498861716u, 1091297147u, 847410798u, 1069557100u, 3597060909u, 0, SIN_TOLERANCE, 0},
+{ 515, 1073516688u, 983275314u, 3232538664u, 2244973629u, 1072645188u, 2504109125u, 0, SIN_TOLERANCE, 0},
+{ 516, 1054849265u, 2353103845u, 3235718771u, 2978889966u, 1054849265u, 2353018718u, 0, SIN_TOLERANCE, 0},
+{ 517, 3251357992u, 1546972125u, 3249076079u, 1987349196u, 3220174666u, 3270764328u, 0, SIN_TOLERANCE, 0},
+{ 518, 3238219513u, 2769161072u, 1075207126u, 292616282u, 3219645457u, 3531409241u, 0, SIN_TOLERANCE, 0},
+{ 519, 3199712298u, 36855311u, 1052128202u, 1479039342u, 3199712298u, 36853082u, 0, SIN_TOLERANCE, 0},
+{ 520, 1083757053u, 2027463605u, 1066023013u, 3369686340u, 3219992533u, 3618466663u, 0, SIN_TOLERANCE, 0},
+{ 521, 3197852749u, 3808681655u, 1054161346u, 1821773119u, 3197852749u, 3808681442u, 0, SIN_TOLERANCE, 0},
+{ 522, 1040685928u, 3175490326u, 3226879970u, 845687760u, 1040685928u, 3175490326u, 0, SIN_TOLERANCE, 0},
+{ 523, 1042302993u, 3124482451u, 3242748377u, 3259417226u, 1042302993u, 3124482451u, 0, SIN_TOLERANCE, 0},
+{ 524, 1045245695u, 2751606436u, 3236210939u, 3923142740u, 1045245695u, 2751606436u, 0, SIN_TOLERANCE, 0},
+{ 525, 1095694737u, 2016872044u, 3228408064u, 4201274408u, 1072286341u, 1362265118u, 0, SIN_TOLERANCE, 0},
+{ 526, 3199349254u, 1019916843u, 3219974785u, 1977881787u, 3199349254u, 1019915839u, 0, SIN_TOLERANCE, 0},
+{ 527, 3199478752u, 2060433318u, 1075872515u, 366073725u, 3199478752u, 2060431950u, 0, SIN_TOLERANCE, 0},
+{ 528, 3191180557u, 1098469906u, 1082900695u, 2349346832u, 3191180557u, 1098469906u, 0, SIN_TOLERANCE, 0},
+{ 529, 3209974707u, 3011196295u, 3252479932u, 2459281672u, 3209974707u, 1543399360u, 0, SIN_TOLERANCE, 0},
+{ 530, 3221334323u, 2843222682u, 1089275809u, 298982001u, 3219765832u, 3012348119u, 0, SIN_TOLERANCE, 0},
+{ 531, 1101737698u, 914741728u, 3203468059u, 2833809843u, 3219808843u, 3014971771u, 0, SIN_TOLERANCE, 0},
+{ 532, 3236763878u, 1274901962u, 3241535845u, 3759113509u, 3220165679u, 685102012u, 0, SIN_TOLERANCE, 0},
+{ 533, 3245916442u, 2134927252u, 3253802671u, 3013731444u, 3220072965u, 474412391u, 0, SIN_TOLERANCE, 0},
+{ 534, 1099201341u, 2230655177u, 3254510616u, 1249674366u, 3217398459u, 1862039103u, 0, SIN_TOLERANCE, 0},
+{ 535, 1062971253u, 717357389u, 1083533731u, 3746683362u, 1062971252u, 1316352658u, 0, SIN_TOLERANCE, 0},
+{ 536, 3213773114u, 834976849u, 3217357661u, 2465861779u, 3213773041u, 3660226702u, 0, SIN_TOLERANCE, 0},
+{ 537, 1045656117u, 1385714428u, 1053358395u, 3007113740u, 1045656117u, 1385714428u, 0, SIN_TOLERANCE, 0},
+{ 538, 1050527919u, 599268545u, 3201368210u, 2309854744u, 1050527919u, 599268270u, 0, SIN_TOLERANCE, 0},
+{ 539, 1069954454u, 2840234388u, 3232496515u, 333365983u, 1069947162u, 1780277781u, 0, SIN_TOLERANCE, 0},
+{ 540, 1045922781u, 3136078996u, 3194520860u, 2650572904u, 1045922781u, 3136078995u, 0, SIN_TOLERANCE, 0},
+{ 541, 3233687691u, 2405805086u, 3251640319u, 324233833u, 1072686336u, 1152698935u, 0, SIN_TOLERANCE, 0},
+{ 542, 1106699146u, 2589598340u, 3254677807u, 952438812u, 1072324232u, 3449767578u, 0, SIN_TOLERANCE, 0},
+{ 543, 3189114773u, 1922837702u, 3216892718u, 3535907549u, 3189114773u, 1922837702u, 0, SIN_TOLERANCE, 0},
+{ 544, 3243615868u, 261447440u, 3209805849u, 1150571079u, 1070965580u, 3935697264u, 0, SIN_TOLERANCE, 0},
+{ 545, 1095805232u, 4026487528u, 1073152064u, 27340691u, 1071684378u, 548705734u, 0, SIN_TOLERANCE, 0},
+{ 546, 3229123692u, 338765118u, 1086225786u, 3207238249u, 3218751755u, 1233472933u, 0, SIN_TOLERANCE, 0},
+{ 547, 3196182703u, 1085283176u, 3187775111u, 1601194210u, 3196182703u, 1085283161u, 0, SIN_TOLERANCE, 0},
+{ 548, 1091520173u, 3031712790u, 3252307859u, 170666844u, 3219971367u, 394023925u, 0, SIN_TOLERANCE, 0},
+{ 549, 3218862231u, 3148395674u, 1041913758u, 3306391490u, 3218804621u, 1993316150u, 0, SIN_TOLERANCE, 0},
+{ 550, 3201277070u, 2205233857u, 3208100078u, 3993195511u, 3201277070u, 2205212798u, 0, SIN_TOLERANCE, 0},
+{ 551, 1067699608u, 4282766727u, 1072820377u, 1874778218u, 1067699285u, 1871096311u, 0, SIN_TOLERANCE, 0},
+{ 552, 3210833092u, 2920860798u, 3218070226u, 3104066154u, 3210833091u, 3517395975u, 0, SIN_TOLERANCE, 0},
+{ 553, 3204950351u, 969991373u, 3250596895u, 1734386152u, 3204950351u, 967730542u, 0, SIN_TOLERANCE, 0},
+{ 554, 3238915818u, 1218740205u, 3239802737u, 2610078504u, 1071758532u, 2855666981u, 0, SIN_TOLERANCE, 0},
+{ 555, 3206031242u, 1485218325u, 3220870240u, 3591664613u, 3206031242u, 1475597764u, 0, SIN_TOLERANCE, 0},
+{ 556, 3202074143u, 690157417u, 3190850619u, 4192347699u, 3202074143u, 690100285u, 0, SIN_TOLERANCE, 0},
+{ 557, 1096053810u, 4009839784u, 1079670252u, 394167192u, 3220176185u, 1631825320u, 0, SIN_TOLERANCE, 0},
+{ 558, 3234559237u, 961532417u, 1092588071u, 2923790239u, 3219240085u, 1012830439u, 0, SIN_TOLERANCE, 0},
+{ 559, 3203879091u, 4174125604u, 1050682630u, 2169701868u, 3203879091u, 4173584839u, 0, SIN_TOLERANCE, 0},
+{ 560, 3243092475u, 4146748230u, 1087373950u, 2481478351u, 1067740115u, 3998469072u, 0, SIN_TOLERANCE, 0},
+{ 561, 1076987866u, 3984715440u, 1050421618u, 2446142566u, 3220110698u, 974706513u, 0, SIN_TOLERANCE, 0},
+{ 562, 1084172406u, 936290150u, 1100614426u, 3625806370u, 1072094479u, 2895643002u, 0, SIN_TOLERANCE, 0},
+{ 563, 1099787952u, 1866615265u, 3215651428u, 2337013350u, 1071976815u, 3306026822u, 0, SIN_TOLERANCE, 0},
+{ 564, 3253198302u, 712227971u, 1106004723u, 973148499u, 1070735011u, 1291506150u, 0, SIN_TOLERANCE, 0},
+{ 565, 3230088199u, 3409813738u, 3244817008u, 1933503498u, 3219902662u, 1451815939u, 0, SIN_TOLERANCE, 0},
+{ 566, 1079943733u, 3180389060u, 3228735703u, 83422217u, 3213454768u, 3879155175u, 0, SIN_TOLERANCE, 0},
+{ 567, 1077878724u, 556972671u, 3204582372u, 841555801u, 3218237932u, 567370693u, 0, SIN_TOLERANCE, 0},
+{ 568, 1070767721u, 4189151332u, 1080874032u, 706326922u, 1070750582u, 4079109003u, 0, SIN_TOLERANCE, 0},
+{ 569, 1096151307u, 198291836u, 1057281892u, 2188836928u, 3220101257u, 368328880u, 0, SIN_TOLERANCE, 0},
+{ 570, 1078091995u, 1219449298u, 3228734687u, 3504562743u, 3219776304u, 644559464u, 0, SIN_TOLERANCE, 0},
+{ 571, 3204570464u, 1776099219u, 1094316777u, 4188083896u, 3204570464u, 1775126159u, 0, SIN_TOLERANCE, 0},
+{ 572, 3193845708u, 2614400266u, 1073750227u, 3003203347u, 3193845708u, 2614400265u, 0, SIN_TOLERANCE, 0},
+{ 573, 3213982678u, 2959351406u, 1105603716u, 311851587u, 3213982623u, 79201814u, 0, SIN_TOLERANCE, 0},
+{ 574, 1084544434u, 865443613u, 1097532516u, 3622237781u, 1071041198u, 1507254391u, 0, SIN_TOLERANCE, 0},
+{ 575, 3231786666u, 447506102u, 3195759295u, 3603669725u, 3219333885u, 3048377941u, 0, SIN_TOLERANCE, 0},
+{ 576, 1097890173u, 3934398273u, 1040996422u, 2968621268u, 1072685797u, 2235914534u, 0, SIN_TOLERANCE, 0},
+{ 577, 3196739825u, 784208771u, 1088764788u, 2182296421u, 3196739825u, 784208723u, 0, SIN_TOLERANCE, 0},
+{ 578, 3248332291u, 1527590526u, 3206961556u, 2823164069u, 3219822440u, 478287683u, 0, SIN_TOLERANCE, 0},
+{ 579, 3236644131u, 3876699591u, 3207481130u, 4028148535u, 1072393284u, 1209093961u, 0, SIN_TOLERANCE, 0},
+{ 580, 1083576186u, 2164249756u, 1059857743u, 1785169952u, 3220097373u, 3809888698u, 0, SIN_TOLERANCE, 0},
+{ 581, 1091804009u, 2079273665u, 1080303860u, 625760474u, 1072539707u, 298442240u, 0, SIN_TOLERANCE, 0},
+{ 582, 3226486108u, 3636214836u, 1068367620u, 2932621925u, 3219708924u, 2233835753u, 0, SIN_TOLERANCE, 0},
+{ 583, 1043995372u, 4274131512u, 1047707755u, 92550763u, 1043995372u, 4274131512u, 0, SIN_TOLERANCE, 0},
+{ 584, 3198822121u, 2648933384u, 1084603503u, 3534304873u, 3198822121u, 2648932639u, 0, SIN_TOLERANCE, 0},
+{ 585, 1064563235u, 3216750767u, 3191088629u, 547482628u, 1064563230u, 2503171318u, 0, SIN_TOLERANCE, 0},
+{ 586, 1061084774u, 1420360746u, 1080063101u, 1690029499u, 1061084774u, 1099079215u, 0, SIN_TOLERANCE, 0},
+{ 587, 3229855364u, 1908572179u, 1080112083u, 1228319033u, 3220171054u, 1328376247u, 0, SIN_TOLERANCE, 0},
+{ 588, 1048158178u, 500312015u, 3212368508u, 3864619086u, 1048158178u, 500312004u, 0, SIN_TOLERANCE, 0},
+{ 589, 3221335610u, 4211343447u, 1087492676u, 4272583781u, 3219762765u, 2753996887u, 0, SIN_TOLERANCE, 0},
+{ 590, 1099392394u, 2382118000u, 1042665328u, 567154882u, 3219741310u, 1829458081u, 0, SIN_TOLERANCE, 0},
+{ 591, 1058013442u, 1435344339u, 3216303171u, 2275988178u, 1058013442u, 1432546069u, 0, SIN_TOLERANCE, 0},
+{ 592, 3214538619u, 3403659753u, 3218043030u, 1926480488u, 3214538437u, 1790486854u, 0, SIN_TOLERANCE, 0},
+{ 593, 1076840383u, 1198845185u, 3225556149u, 1130089684u, 1068587528u, 1811589707u, 0, SIN_TOLERANCE, 0},
+{ 594, 3222663042u, 2183928090u, 1048403956u, 963834821u, 1072099461u, 2434446950u, 0, SIN_TOLERANCE, 0},
+{ 595, 1101672960u, 2120625396u, 1041006976u, 2137548527u, 3219902375u, 1240074469u, 0, SIN_TOLERANCE, 0},
+{ 596, 1099230238u, 586700956u, 1059670521u, 303891699u, 3220110703u, 2829078942u, 0, SIN_TOLERANCE, 0},
+{ 597, 3218994498u, 2509132460u, 1102827530u, 2205707903u, 3218923581u, 2733939463u, 0, SIN_TOLERANCE, 0},
+{ 598, 3204860597u, 1229308263u, 3209170414u, 4206576047u, 3204860597u, 1227417723u, 0, SIN_TOLERANCE, 0},
+{ 599, 3224076289u, 4078010749u, 3199236456u, 733478972u, 3220021681u, 3043659987u, 0, SIN_TOLERANCE, 0},
+{ 600, 3197712584u, 4277541051u, 3199806921u, 397102023u, 3197712584u, 4277540884u, 0, SIN_TOLERANCE, 0},
+{ 601, 3195975013u, 900999594u, 3234720188u, 2530214248u, 3195975013u, 900999575u, 0, SIN_TOLERANCE, 0},
+{ 602, 1076543548u, 4000609478u, 1096577064u, 4148592328u, 1072113725u, 4220821840u, 0, SIN_TOLERANCE, 0},
+{ 603, 1048668084u, 2154187873u, 3224392607u, 3957250362u, 1048668084u, 2154187859u, 0, SIN_TOLERANCE, 0},
+{ 604, 3223413488u, 2867079200u, 1101870326u, 921212001u, 3219480669u, 133389711u, 0, SIN_TOLERANCE, 0},
+{ 605, 3233221890u, 674547716u, 1063216239u, 3929755226u, 3219946283u, 1171404582u, 0, SIN_TOLERANCE, 0},
+{ 606, 3240415851u, 3158182449u, 1043794244u, 3259056345u, 3218533956u, 783944099u, 0, SIN_TOLERANCE, 0},
+{ 607, 3236776656u, 3002823940u, 1059511739u, 2832435794u, 1072633472u, 88715692u, 0, SIN_TOLERANCE, 0},
+{ 608, 3217304822u, 2196511929u, 1049973941u, 3672092877u, 3217299354u, 982247005u, 0, SIN_TOLERANCE, 0},
+{ 609, 1050438056u, 3655292191u, 1086438127u, 3567072906u, 1050438056u, 3655291952u, 0, SIN_TOLERANCE, 0},
+{ 610, 3243186948u, 1617573614u, 3201863123u, 3090723732u, 3215736442u, 1512978851u, 0, SIN_TOLERANCE, 0},
+{ 611, 3233201380u, 679893506u, 3211547753u, 824081024u, 3218967800u, 4050972393u, 0, SIN_TOLERANCE, 0},
+{ 612, 1089530525u, 2285242807u, 1084999409u, 2221731406u, 3219969044u, 3383509535u, 0, SIN_TOLERANCE, 0},
+{ 613, 3206733664u, 1935990727u, 1088822246u, 1058156518u, 3206733664u, 1917635426u, 0, SIN_TOLERANCE, 0},
+{ 614, 1102839166u, 521023584u, 1059186903u, 4245163857u, 3217325547u, 1587065816u, 0, SIN_TOLERANCE, 0},
+{ 615, 1103891140u, 2312887617u, 3191771354u, 1885370807u, 3213444364u, 1567572359u, 0, SIN_TOLERANCE, 0},
+{ 616, 3252953815u, 1796441468u, 1100030327u, 2772711004u, 1071662076u, 3674672329u, 0, SIN_TOLERANCE, 0},
+{ 617, 3204276820u, 2095685003u, 1077984448u, 2100773742u, 3204276820u, 2094602508u, 0, SIN_TOLERANCE, 0},
+{ 618, 3192954620u, 2892538035u, 1042396334u, 4162200338u, 3192954620u, 2892538035u, 0, SIN_TOLERANCE, 0},
+{ 619, 3242725751u, 2177698116u, 3227557177u, 150832500u, 3216437532u, 3818749185u, 0, SIN_TOLERANCE, 0},
+{ 620, 3191562216u, 607966734u, 3236250630u, 4164600559u, 3191562216u, 607966734u, 0, SIN_TOLERANCE, 0},
+{ 621, 3216389812u, 2830122967u, 1046096700u, 3713346883u, 3216387986u, 1984249858u, 0, SIN_TOLERANCE, 0},
+{ 622, 3237197963u, 2314640506u, 3203696416u, 3276228872u, 3216456520u, 1563473680u, 0, SIN_TOLERANCE, 0},
+{ 623, 3212912307u, 469331883u, 3249037349u, 2999233437u, 3212912293u, 4169087664u, 0, SIN_TOLERANCE, 0},
+{ 624, 1097382011u, 560886625u, 1091899487u, 748795120u, 1071758952u, 1596727108u, 0, SIN_TOLERANCE, 0},
+{ 625, 1049886858u, 2958421324u, 1092569414u, 3235243477u, 1049886858u, 2958421241u, 0, SIN_TOLERANCE, 0},
+{ 626, 3193026497u, 3221475559u, 1043038304u, 915608434u, 3193026497u, 3221475559u, 0, SIN_TOLERANCE, 0},
+{ 627, 1071197530u, 3007808652u, 3216682290u, 2531019474u, 1071155300u, 87724169u, 0, SIN_TOLERANCE, 0},
+{ 628, 3242028999u, 1767658578u, 3237045269u, 2313128318u, 3220175220u, 1174141716u, 0, SIN_TOLERANCE, 0},
+{ 629, 3210617892u, 1926845182u, 1066835624u, 1783256828u, 3210617891u, 1436289661u, 0, SIN_TOLERANCE, 0},
+{ 630, 1040575629u, 90378038u, 1057168870u, 164358218u, 1040575629u, 90378038u, 0, SIN_TOLERANCE, 0},
+{ 631, 1106859172u, 1610524680u, 1085283851u, 2903496007u, 1071615859u, 1847810491u, 0, SIN_TOLERANCE, 0},
+{ 632, 1078635586u, 4274321404u, 3202913591u, 720121831u, 1068456740u, 1414423441u, 0, SIN_TOLERANCE, 0},
+{ 633, 1051205256u, 2034778236u, 1071133763u, 1413236391u, 1051205256u, 2034777651u, 0, SIN_TOLERANCE, 0},
+{ 634, 1051063028u, 1489112261u, 1076691395u, 348210906u, 1051063028u, 1489111820u, 0, SIN_TOLERANCE, 0},
+{ 635, 3206743917u, 2797651324u, 3224410527u, 2374818327u, 3206743917u, 2778835738u, 0, SIN_TOLERANCE, 0},
+{ 636, 1088287256u, 1823161666u, 3197810695u, 3119680047u, 1071953937u, 2742148483u, 0, SIN_TOLERANCE, 0},
+{ 637, 1065927336u, 3420950657u, 1087084743u, 2136638961u, 1065927297u, 1140266162u, 0, SIN_TOLERANCE, 0},
+{ 638, 1069902224u, 3554566429u, 1062907717u, 2736702589u, 1069895689u, 358674981u, 0, SIN_TOLERANCE, 0},
+{ 639, 3244888667u, 2928437580u, 3187765027u, 1393427873u, 3215813938u, 1606543595u, 0, SIN_TOLERANCE, 0},
+{ 640, 3209301561u, 189447067u, 1051643315u, 828663513u, 3209301560u, 3711574012u, 0, SIN_TOLERANCE, 0},
+{ 641, 1052313869u, 2852350928u, 1045683757u, 673354280u, 1052313869u, 2852348313u, 0, SIN_TOLERANCE, 0},
+{ 642, 1043946301u, 3589563265u, 3248741629u, 812657927u, 1043946301u, 3589563265u, 0, SIN_TOLERANCE, 0},
+{ 643, 3190610826u, 1766416701u, 1100392103u, 2185373290u, 3190610826u, 1766416701u, 0, SIN_TOLERANCE, 0},
+{ 644, 3220275389u, 3763582673u, 3191965790u, 388374829u, 3219942933u, 3406162011u, 0, SIN_TOLERANCE, 0},
+{ 645, 1079635136u, 1187403069u, 1075300235u, 336640304u, 3214626985u, 2749575794u, 0, SIN_TOLERANCE, 0},
+{ 646, 1103926251u, 1718795752u, 3243118752u, 683369237u, 1071824356u, 3919108797u, 0, SIN_TOLERANCE, 0},
+{ 647, 3210792097u, 1863545307u, 1069449477u, 3418627399u, 3210792096u, 2844263943u, 0, SIN_TOLERANCE, 0},
+{ 648, 1069601294u, 3295607249u, 1068878592u, 1633297809u, 1069598124u, 3479937974u, 0, SIN_TOLERANCE, 0},
+{ 649, 1058947127u, 2585980994u, 3236670483u, 1286750688u, 1058947127u, 2567082753u, 0, SIN_TOLERANCE, 0},
+{ 650, 1046157033u, 15816845u, 3233249283u, 2491924775u, 1046157033u, 15816844u, 0, SIN_TOLERANCE, 0},
+{ 651, 1042413021u, 1051983351u, 1049180786u, 1474421917u, 1042413021u, 1051983351u, 0, SIN_TOLERANCE, 0},
+{ 652, 3201249525u, 2003816032u, 1086050104u, 668090487u, 3201249525u, 2003795801u, 0, SIN_TOLERANCE, 0},
+{ 653, 1052556037u, 3671484625u, 1067020039u, 430024694u, 1052556037u, 3671480672u, 0, SIN_TOLERANCE, 0},
+{ 654, 1067397110u, 3991830201u, 3207808714u, 1021245839u, 1067396794u, 4124800169u, 0, SIN_TOLERANCE, 0},
+{ 655, 1064194391u, 4255801807u, 3207681716u, 1926756877u, 1064194387u, 1955210840u, 0, SIN_TOLERANCE, 0},
+{ 656, 1052140785u, 4167786896u, 1077097744u, 1775517981u, 1052140785u, 4167785024u, 0, SIN_TOLERANCE, 0},
+{ 657, 1085601978u, 3187518564u, 1082437406u, 944672491u, 1070593685u, 930980615u, 0, SIN_TOLERANCE, 0},
+{ 658, 1049366282u, 953085192u, 3227310828u, 3459155777u, 1049366282u, 953085134u, 0, SIN_TOLERANCE, 0},
+{ 659, 1069502506u, 1908555460u, 1073640207u, 260441967u, 1069497393u, 480300537u, 0, SIN_TOLERANCE, 0},
+{ 660, 1067219606u, 250762477u, 1072582645u, 2886742039u, 1067219365u, 2007310307u, 0, SIN_TOLERANCE, 0},
+{ 661, 3250906006u, 786180031u, 3197734769u, 2788918312u, 3219264568u, 3771674599u, 0, SIN_TOLERANCE, 0},
+{ 662, 3234511827u, 2055912467u, 3244244909u, 1394142937u, 3218137847u, 1567210213u, 0, SIN_TOLERANCE, 0},
+{ 663, 1069612985u, 91984146u, 3222252812u, 4126276047u, 1069609713u, 861651410u, 0, SIN_TOLERANCE, 0},
+{ 664, 1081340139u, 3942715706u, 3239316352u, 410676547u, 3220140746u, 429356827u, 0, SIN_TOLERANCE, 0},
+{ 665, 3198557846u, 86296211u, 1085850694u, 649202596u, 3198557846u, 86295760u, 0, SIN_TOLERANCE, 0},
+{ 666, 3245366392u, 3069064472u, 3237358008u, 23209276u, 1071324547u, 2757010564u, 0, SIN_TOLERANCE, 0},
+{ 667, 1081235288u, 1867297860u, 1072956607u, 2513414118u, 3220095326u, 521246131u, 0, SIN_TOLERANCE, 0},
+{ 668, 3250533347u, 3171788768u, 3235208783u, 162138697u, 1072639725u, 165429234u, 0, SIN_TOLERANCE, 0},
+{ 669, 1081728455u, 1245110700u, 1081653954u, 2584994077u, 3219625989u, 633989636u, 0, SIN_TOLERANCE, 0},
+{ 670, 3245510120u, 3347226587u, 1058962932u, 2291943376u, 3218529442u, 71696266u, 0, SIN_TOLERANCE, 0},
+{ 671, 1058899062u, 966940828u, 1060726420u, 2798041096u, 1058899062u, 949384072u, 0, SIN_TOLERANCE, 0},
+{ 672, 1072793759u, 2487340727u, 3223786370u, 4105954991u, 1072461134u, 2487756616u, 0, SIN_TOLERANCE, 0},
+{ 673, 3248116497u, 1671039260u, 1086395032u, 3745833360u, 3218316220u, 868579447u, 0, SIN_TOLERANCE, 0},
+{ 674, 1057078797u, 651714217u, 1047070645u, 2130549237u, 1057078797u, 650761015u, 0, SIN_TOLERANCE, 0},
+{ 675, 3207115731u, 1423000172u, 3247822717u, 1551488170u, 3207115731u, 1381838934u, 0, SIN_TOLERANCE, 0},
+{ 676, 3201597307u, 921077236u, 3213332351u, 1431049019u, 3201597307u, 921054269u, 0, SIN_TOLERANCE, 0},
+{ 677, 1067510295u, 655715547u, 3190985373u, 1527556471u, 1067510093u, 2282908158u, 0, SIN_TOLERANCE, 0},
+{ 678, 3227654979u, 4110878657u, 3251297180u, 879739345u, 3218425102u, 3708938007u, 0, SIN_TOLERANCE, 0},
+{ 679, 1085804762u, 2623955764u, 1093699897u, 1216444475u, 3217573076u, 2367761568u, 0, SIN_TOLERANCE, 0},
+{ 680, 1091905603u, 107442539u, 3239767031u, 1149813329u, 3219201617u, 765596820u, 0, SIN_TOLERANCE, 0},
+{ 681, 3233445240u, 1761361082u, 3226030205u, 1121849716u, 3217621113u, 873360802u, 0, SIN_TOLERANCE, 0},
+{ 682, 3240087115u, 2534144722u, 1044223733u, 3512285706u, 1072687886u, 3930762827u, 0, SIN_TOLERANCE, 0},
+{ 683, 3211846077u, 4073670723u, 1050729852u, 3034818849u, 3211846074u, 3505394660u, 0, SIN_TOLERANCE, 0},
+{ 684, 1101984574u, 1421423503u, 1060278048u, 1397153092u, 3219618337u, 3705914211u, 0, SIN_TOLERANCE, 0},
+{ 685, 3217421829u, 1649206019u, 1104525577u, 1267104290u, 3217414778u, 3301659344u, 0, SIN_TOLERANCE, 0},
+{ 686, 3189302097u, 3775270392u, 1040251850u, 68667319u, 3189302097u, 3775270392u, 0, SIN_TOLERANCE, 0},
+{ 687, 3204330900u, 3099226694u, 3254103006u, 4020102648u, 3204330900u, 3098050414u, 0, SIN_TOLERANCE, 0},
+{ 688, 3201591712u, 3718441177u, 3215643451u, 4032951536u, 3201591712u, 3718418496u, 0, SIN_TOLERANCE, 0},
+{ 689, 1044131371u, 508048351u, 3210196713u, 1707937896u, 1044131371u, 508048351u, 0, SIN_TOLERANCE, 0},
+{ 690, 3198611627u, 2784738160u, 1073435430u, 1109346010u, 3198611627u, 2784737657u, 0, SIN_TOLERANCE, 0},
+{ 691, 3225725290u, 3331916473u, 3238794568u, 2707019594u, 1071495018u, 3178588094u, 0, SIN_TOLERANCE, 0},
+{ 692, 1093182670u, 3093165197u, 1072894805u, 2853215019u, 3217500553u, 2290438925u, 0, SIN_TOLERANCE, 0},
+{ 693, 3216582139u, 2135797997u, 1048399559u, 2941926126u, 3216579489u, 4159294474u, 0, SIN_TOLERANCE, 0},
+{ 694, 1048430980u, 2083412145u, 3249335391u, 507212448u, 1048430980u, 2083412128u, 0, SIN_TOLERANCE, 0},
+{ 695, 1075363751u, 4270176401u, 3246546709u, 3288753319u, 3216542507u, 215621546u, 0, SIN_TOLERANCE, 0},
+{ 696, 3247932863u, 3692175292u, 3197271515u, 3989064196u, 3220143575u, 2114052675u, 0, SIN_TOLERANCE, 0},
+{ 697, 3251691738u, 3111924274u, 1066772558u, 59281695u, 3218178701u, 29998399u, 0, SIN_TOLERANCE, 0},
+{ 698, 1067683911u, 2135245466u, 3208804313u, 3846547392u, 1067683599u, 2295121613u, 0, SIN_TOLERANCE, 0},
+{ 699, 1094877811u, 972051266u, 3222814246u, 3539700586u, 3219786441u, 533914340u, 0, SIN_TOLERANCE, 0},
+{ 700, 3202965930u, 330951080u, 1079189813u, 583922384u, 3202965930u, 330776666u, 0, SIN_TOLERANCE, 0},
+{ 701, 1089640092u, 1711944085u, 1104170032u, 643991456u, 3220087007u, 95099636u, 0, SIN_TOLERANCE, 0},
+{ 702, 3234429549u, 2072550721u, 3250147641u, 4280263530u, 3219800876u, 983380726u, 0, SIN_TOLERANCE, 0},
+{ 703, 3192972706u, 1566376352u, 1067251433u, 72984588u, 3192972706u, 1566376352u, 0, SIN_TOLERANCE, 0},
+{ 704, 1095276569u, 3103043079u, 1045853123u, 410067497u, 1071502363u, 1641513533u, 0, SIN_TOLERANCE, 0},
+{ 705, 3216672493u, 1910366299u, 1081770885u, 634683073u, 3216669383u, 4291074098u, 0, SIN_TOLERANCE, 0},
+{ 706, 1081530688u, 2226525875u, 3224149290u, 2126302825u, 1072513290u, 2095198212u, 0, SIN_TOLERANCE, 0},
+{ 707, 1073150247u, 1383818978u, 3193885723u, 1220372650u, 1072674175u, 3406438775u, 0, SIN_TOLERANCE, 0},
+{ 708, 1066482943u, 1953339096u, 1077176252u, 1476516558u, 1066482890u, 413456908u, 0, SIN_TOLERANCE, 0},
+{ 709, 1066092000u, 1306277326u, 1079089150u, 4093716191u, 1066091947u, 2046428131u, 0, SIN_TOLERANCE, 0},
+{ 710, 3233148787u, 51750045u, 3242913901u, 4256866157u, 1072670444u, 2809926129u, 0, SIN_TOLERANCE, 0},
+{ 711, 3195084967u, 2163853087u, 3232053146u, 2962422808u, 3195084967u, 2163853084u, 0, SIN_TOLERANCE, 0},
+{ 712, 1075516945u, 1618388148u, 3233154824u, 3711953164u, 1071515415u, 4132615641u, 0, SIN_TOLERANCE, 0},
+{ 713, 3246868002u, 357108214u, 3202294604u, 2306775262u, 1072207361u, 414524426u, 0, SIN_TOLERANCE, 0},
+{ 714, 3201904086u, 2571356437u, 3249064063u, 2394851808u, 3201904086u, 2571313869u, 0, SIN_TOLERANCE, 0},
+{ 715, 3230488091u, 4273880094u, 1103698617u, 3578832032u, 3219215904u, 3059520098u, 0, SIN_TOLERANCE, 0},
+{ 716, 3233426701u, 2091068742u, 3228270226u, 3980489730u, 1067594500u, 166622290u, 0, SIN_TOLERANCE, 0},
+{ 717, 3229016752u, 2772307714u, 1051008486u, 32546576u, 3220145742u, 42617798u, 0, SIN_TOLERANCE, 0},
+{ 718, 3241229215u, 2143788498u, 3195498043u, 3630119231u, 1072561542u, 1965238809u, 0, SIN_TOLERANCE, 0},
+{ 719, 3198632935u, 2527385594u, 3240503648u, 3482095012u, 3198632935u, 2527385069u, 0, SIN_TOLERANCE, 0},
+{ 720, 3242168799u, 2690097362u, 1068598730u, 2360266862u, 3219788598u, 2965776922u, 0, SIN_TOLERANCE, 0},
+{ 721, 1058857869u, 2673272949u, 1082639557u, 522449749u, 1058857869u, 2656814049u, 0, SIN_TOLERANCE, 0},
+{ 722, 1104424147u, 3596379400u, 3242016775u, 2002293002u, 1072450473u, 2447589729u, 0, SIN_TOLERANCE, 0},
+{ 723, 1099439656u, 4113224369u, 3222122439u, 2152316893u, 1071694670u, 2689772186u, 0, SIN_TOLERANCE, 0},
+{ 724, 3220796716u, 31662602u, 1047721249u, 1747087514u, 3220176463u, 2050031094u, 0, SIN_TOLERANCE, 0},
+{ 725, 3250463757u, 2489659568u, 1097051253u, 277506957u, 1072192681u, 1960692440u, 0, SIN_TOLERANCE, 0},
+{ 726, 3191401834u, 3850162281u, 3213841942u, 438724093u, 3191401834u, 3850162281u, 0, SIN_TOLERANCE, 0},
+{ 727, 1095392535u, 2431814052u, 1075518084u, 2672434118u, 1066470796u, 966739062u, 0, SIN_TOLERANCE, 0},
+{ 728, 3243162735u, 391606792u, 1048184750u, 4168944276u, 1072497290u, 3546882296u, 0, SIN_TOLERANCE, 0},
+{ 729, 3247792416u, 457529672u, 3201090276u, 72407935u, 3220118733u, 25015996u, 0, SIN_TOLERANCE, 0},
+{ 730, 3218720719u, 3954981400u, 1052053242u, 2411049585u, 3218675396u, 3635036859u, 0, SIN_TOLERANCE, 0},
+{ 731, 1086180091u, 485456950u, 1088415093u, 1655397424u, 3219592964u, 2876754847u, 0, SIN_TOLERANCE, 0},
+{ 732, 3198234428u, 1551748070u, 3236871640u, 1329701152u, 3198234428u, 1551747859u, 0, SIN_TOLERANCE, 0},
+{ 733, 3224639122u, 3099222537u, 1104984570u, 4293792842u, 3220062255u, 812536194u, 0, SIN_TOLERANCE, 0},
+{ 734, 3203949705u, 3603065260u, 3197735968u, 2402359253u, 3203949705u, 3602446005u, 0, SIN_TOLERANCE, 0},
+{ 735, 3198824584u, 3961208159u, 3219057584u, 2340553876u, 3198824584u, 3961207411u, 0, SIN_TOLERANCE, 0},
+{ 736, 1074881909u, 4014841779u, 3197672877u, 3697233334u, 3220040008u, 2497124737u, 0, SIN_TOLERANCE, 0},
+{ 737, 3213275657u, 1403876392u, 3254028950u, 921363393u, 3213275626u, 3797578388u, 0, SIN_TOLERANCE, 0},
+{ 738, 1107251806u, 1862576361u, 3194031708u, 2476290925u, 1066826084u, 228279643u, 0, SIN_TOLERANCE, 0},
+{ 739, 1049661768u, 1454212851u, 1088378861u, 3400401866u, 1049661768u, 1454212804u, 0, SIN_TOLERANCE, 0},
+{ 740, 1074406809u, 552676385u, 3188635745u, 3778112968u, 3217043135u, 195821175u, 0, SIN_TOLERANCE, 0},
+{ 741, 3216409282u, 1199568671u, 3225679997u, 46947405u, 3216407381u, 3639731911u, 0, SIN_TOLERANCE, 0},
+{ 742, 1077685537u, 2596231448u, 3253943728u, 2219151748u, 1069092570u, 1466027195u, 0, SIN_TOLERANCE, 0},
+{ 743, 1066527035u, 4119719558u, 3222036299u, 1275474618u, 1066526976u, 455592928u, 0, SIN_TOLERANCE, 0},
+{ 744, 3239908663u, 3347296825u, 1101507910u, 1254014794u, 3219638163u, 2955619445u, 0, SIN_TOLERANCE, 0},
+{ 745, 1084119992u, 673775040u, 1070743626u, 244126093u, 1072671174u, 3976384735u, 0, SIN_TOLERANCE, 0},
+{ 746, 3203199850u, 1832066983u, 1051358028u, 3262483417u, 3203199850u, 1831808154u, 0, SIN_TOLERANCE, 0},
+{ 747, 1077559600u, 3962610501u, 3198598777u, 849269178u, 1072485486u, 2297831715u, 0, SIN_TOLERANCE, 0},
+{ 748, 3235473900u, 2497516122u, 3254374111u, 2821429629u, 1072590812u, 4038425279u, 0, SIN_TOLERANCE, 0},
+{ 749, 1076236288u, 2805941787u, 3217785843u, 779131141u, 3220175561u, 802321461u, 0, SIN_TOLERANCE, 0},
+{ 750, 3226908686u, 723423605u, 1084533420u, 627282213u, 3217897637u, 1983010531u, 0, SIN_TOLERANCE, 0},
+{ 751, 3215947680u, 4292778869u, 1078101071u, 1676860147u, 3215946382u, 4157973483u, 0, SIN_TOLERANCE, 0},
+{ 752, 1076288502u, 3528118587u, 3194648564u, 2363260897u, 3219982433u, 206443956u, 0, SIN_TOLERANCE, 0},
+{ 753, 3192897879u, 1307010018u, 1061248120u, 1468743108u, 3192897879u, 1307010018u, 0, SIN_TOLERANCE, 0},
+{ 754, 3246583139u, 107905661u, 3226089788u, 1943427674u, 3220138045u, 3201333477u, 0, SIN_TOLERANCE, 0},
+{ 755, 3188230541u, 760006940u, 1054265604u, 1749976597u, 3188230541u, 760006940u, 0, SIN_TOLERANCE, 0},
+{ 756, 3237773384u, 2787503556u, 1081282610u, 1195841206u, 1072407277u, 3529099003u, 0, SIN_TOLERANCE, 0},
+{ 757, 3191802156u, 545462045u, 3208381743u, 1981311808u, 3191802156u, 545462045u, 0, SIN_TOLERANCE, 0},
+{ 758, 1061232136u, 3657978397u, 1104463616u, 3501253426u, 1061232136u, 3438851257u, 0, SIN_TOLERANCE, 0},
+{ 759, 1049883857u, 1804177501u, 3210693633u, 3606766729u, 1049883857u, 1804177418u, 0, SIN_TOLERANCE, 0},
+{ 760, 1076856879u, 1336278526u, 1043741618u, 3165279431u, 3215831266u, 313798122u, 0, SIN_TOLERANCE, 0},
+{ 761, 1055471915u, 1599382075u, 1058018527u, 4212580517u, 1055471915u, 1599210902u, 0, SIN_TOLERANCE, 0},
+{ 762, 3207502326u, 3007589929u, 3202026547u, 2792028313u, 3207502326u, 2929338288u, 0, SIN_TOLERANCE, 0},
+{ 763, 3253082770u, 1866066996u, 1060329048u, 3727175322u, 1072082805u, 370540720u, 0, SIN_TOLERANCE, 0},
+{ 764, 3198416643u, 150890940u, 1056025306u, 3082724735u, 3198416643u, 150890608u, 0, SIN_TOLERANCE, 0},
+{ 765, 1062008939u, 80400395u, 1093584426u, 3478941315u, 1062008938u, 3313057461u, 0, SIN_TOLERANCE, 0},
+{ 766, 3251640614u, 4050954182u, 3219263194u, 2537475930u, 3216852172u, 4074570681u, 0, SIN_TOLERANCE, 0},
+{ 767, 1064841871u, 2881752155u, 3212589299u, 2559651278u, 1064841862u, 1919635398u, 0, SIN_TOLERANCE, 0},
+{ 768, 3249016304u, 440309030u, 3214267461u, 3788040806u, 3219057401u, 995701688u, 0, SIN_TOLERANCE, 0},
+{ 769, 1100476615u, 918813144u, 3208535698u, 1607035904u, 3220032872u, 3228685377u, 0, SIN_TOLERANCE, 0},
+{ 770, 1042137451u, 2497054124u, 1089139147u, 2549609010u, 1042137451u, 2497054124u, 0, SIN_TOLERANCE, 0},
+{ 771, 1047037641u, 790219083u, 1054657139u, 2797979479u, 1047037641u, 790219081u, 0, SIN_TOLERANCE, 0},
+{ 772, 1057781400u, 1149462078u, 1095765205u, 3879963182u, 1057781400u, 1145526553u, 0, SIN_TOLERANCE, 0},
+{ 773, 3202729813u, 2684353926u, 3205212854u, 1732474928u, 3202729813u, 2684243741u, 0, SIN_TOLERANCE, 0},
+{ 774, 1095236965u, 2742237025u, 1051317716u, 3386396147u, 1070877719u, 2705967942u, 0, SIN_TOLERANCE, 0},
+{ 775, 1063230986u, 3408320912u, 1103071166u, 4233059513u, 1063230985u, 2179651933u, 0, SIN_TOLERANCE, 0},
+{ 776, 1064863548u, 1077495917u, 1088399968u, 433115118u, 1064863538u, 2763460549u, 0, SIN_TOLERANCE, 0},
+{ 777, 3204547572u, 841366493u, 1051716814u, 4121125128u, 3204547572u, 840449402u, 0, SIN_TOLERANCE, 0},
+{ 778, 1064632084u, 321857207u, 1089128010u, 1149988239u, 1064632078u, 209377307u, 0, SIN_TOLERANCE, 0},
+{ 779, 3245542663u, 799866606u, 3197637091u, 3924438208u, 3211532947u, 61380288u, 0, SIN_TOLERANCE, 0},
+{ 780, 3191062890u, 2002049816u, 1077053447u, 2240354761u, 3191062890u, 2002049816u, 0, SIN_TOLERANCE, 0},
+{ 781, 3229006283u, 478939968u, 1097035749u, 1066716440u, 1072118877u, 1278678307u, 0, SIN_TOLERANCE, 0},
+{ 782, 3232473641u, 1653104725u, 1088548129u, 81977716u, 1070995575u, 2527929909u, 0, SIN_TOLERANCE, 0},
+{ 783, 3196861276u, 3899475018u, 3189694084u, 3330093036u, 3196861276u, 3899474959u, 0, SIN_TOLERANCE, 0},
+{ 784, 1089312583u, 2612450289u, 1079065127u, 603380842u, 1072258821u, 2147418766u, 0, SIN_TOLERANCE, 0},
+{ 785, 1100636791u, 3962735564u, 1101570429u, 1372490825u, 1072153286u, 2509034605u, 0, SIN_TOLERANCE, 0},
+{ 786, 1054806016u, 1479841439u, 1059312257u, 541504905u, 1054806016u, 1479761515u, 0, SIN_TOLERANCE, 0},
+{ 787, 1078662178u, 2626148789u, 1057571099u, 4121656076u, 3219509598u, 3162938688u, 0, SIN_TOLERANCE, 0},
+{ 788, 1081613389u, 1902560314u, 1043130231u, 3557671562u, 1071860231u, 4036566694u, 0, SIN_TOLERANCE, 0},
+{ 789, 3193829772u, 41779312u, 1081626342u, 831171823u, 3193829772u, 41779311u, 0, SIN_TOLERANCE, 0},
+{ 790, 1058131100u, 1393168821u, 1066457405u, 1381616968u, 1058131100u, 1389319230u, 0, SIN_TOLERANCE, 0},
+{ 791, 1072338141u, 3756584649u, 3222267229u, 1423157432u, 1072144601u, 1216854602u, 0, SIN_TOLERANCE, 0},
+{ 792, 3254435674u, 1894912556u, 1042426694u, 155024547u, 1070655378u, 1125014315u, 0, SIN_TOLERANCE, 0},
+{ 793, 3195453512u, 35164295u, 3203391785u, 1037041084u, 3195453512u, 35164287u, 0, SIN_TOLERANCE, 0},
+{ 794, 1084777479u, 3957875950u, 3232195211u, 1590756436u, 3219474557u, 145576704u, 0, SIN_TOLERANCE, 0},
+{ 795, 1068844322u, 1447585080u, 1071279485u, 1107922438u, 1068842719u, 319192824u, 0, SIN_TOLERANCE, 0},
+{ 796, 1046252518u, 981897615u, 1051856116u, 430357614u, 1046252518u, 981897614u, 0, SIN_TOLERANCE, 0},
+{ 797, 3227524215u, 395145384u, 3219821938u, 50586510u, 1068861989u, 2803598491u, 0, SIN_TOLERANCE, 0},
+{ 798, 1069775912u, 750827797u, 1082862669u, 230466783u, 1069770986u, 187872487u, 0, SIN_TOLERANCE, 0},
+{ 799, 1086668819u, 1365083575u, 3204848310u, 1700831722u, 3219606702u, 664833781u, 0, SIN_TOLERANCE, 0},
+{ 800, 3218090390u, 344241827u, 1071538935u, 2715566077u, 3218078590u, 1558660632u, 0, SIN_TOLERANCE, 0},
+{ 801, 3247582856u, 4069301823u, 3193208760u, 2949125229u, 3219745876u, 2119491553u, 0, SIN_TOLERANCE, 0},
+{ 802, 1103231387u, 3585711710u, 1065801594u, 2302229267u, 1072278020u, 3712833510u, 0, SIN_TOLERANCE, 0},
+{ 803, 3194118956u, 709803845u, 1048741487u, 2296910194u, 3194118956u, 709803844u, 0, SIN_TOLERANCE, 0},
+{ 804, 3193280779u, 744421179u, 1069302001u, 2659232829u, 3193280779u, 744421179u, 0, SIN_TOLERANCE, 0},
+{ 805, 1092835968u, 1799949903u, 3192522886u, 4212149209u, 1072659620u, 690167108u, 0, SIN_TOLERANCE, 0},
+{ 806, 3206108502u, 145234164u, 3250614064u, 912384201u, 3206108502u, 134135102u, 0, SIN_TOLERANCE, 0},
+{ 807, 3240510664u, 2784620507u, 1102812948u, 3531481022u, 3219163481u, 1790069326u, 0, SIN_TOLERANCE, 0},
+{ 808, 3251159663u, 383952592u, 3205659905u, 3633194728u, 3219784663u, 2266824838u, 0, SIN_TOLERANCE, 0},
+{ 809, 3203476252u, 3792395543u, 1070072378u, 3864816376u, 3203476252u, 3792179630u, 0, SIN_TOLERANCE, 0},
+{ 810, 3205316273u, 2115553675u, 1066288499u, 3538377867u, 3205316273u, 2111284942u, 0, SIN_TOLERANCE, 0},
+{ 811, 3252075185u, 1230026762u, 1090719723u, 440819880u, 3219859189u, 4204717066u, 0, SIN_TOLERANCE, 0},
+{ 812, 3194595076u, 2991290482u, 1096886719u, 1097971167u, 3194595076u, 2991290479u, 0, SIN_TOLERANCE, 0},
+{ 813, 1090048600u, 1098035020u, 3230900504u, 1479059095u, 1072613721u, 801682150u, 0, SIN_TOLERANCE, 0},
+{ 814, 3251056964u, 1719428427u, 3188631907u, 3707377409u, 3220096300u, 2928589051u, 0, SIN_TOLERANCE, 0},
+{ 815, 1053236165u, 3748932896u, 1084908557u, 1325384361u, 1053236165u, 3748924669u, 0, SIN_TOLERANCE, 0},
+{ 816, 1084704076u, 3979168763u, 1057455255u, 2454615952u, 1071259366u, 3324387602u, 0, SIN_TOLERANCE, 0},
+{ 817, 1053106984u, 1449164578u, 1056960316u, 1654931641u, 1053106984u, 1449158282u, 0, SIN_TOLERANCE, 0},
+{ 818, 1071439010u, 2120487381u, 3226298974u, 2364226633u, 1071375546u, 4139155718u, 0, SIN_TOLERANCE, 0},
+{ 819, 1075071428u, 1074268944u, 1065730444u, 280016852u, 3220042721u, 1257491179u, 0, SIN_TOLERANCE, 0},
+{ 820, 3200308256u, 3315127889u, 3236295594u, 2900924954u, 3200308256u, 3315124712u, 0, SIN_TOLERANCE, 0},
+{ 821, 3196425891u, 2246037502u, 1049691002u, 1496066550u, 3196425891u, 2246037476u, 0, SIN_TOLERANCE, 0},
+{ 822, 3193006859u, 4191285446u, 3217936236u, 2382392789u, 3193006859u, 4191285446u, 0, SIN_TOLERANCE, 0},
+{ 823, 1092833308u, 640099844u, 1042152237u, 2064279383u, 3219074285u, 286563280u, 0, SIN_TOLERANCE, 0},
+{ 824, 1079913438u, 3468560824u, 1093251038u, 310958750u, 1072619577u, 3792685792u, 0, SIN_TOLERANCE, 0},
+{ 825, 1096788400u, 1413568905u, 1100941106u, 1627289946u, 3219437766u, 2995392509u, 0, SIN_TOLERANCE, 0},
+{ 826, 3191549550u, 3797143370u, 3195497539u, 3843275034u, 3191549550u, 3797143370u, 0, SIN_TOLERANCE, 0},
+{ 827, 3252077393u, 2806642640u, 3201943068u, 2515980718u, 3218059077u, 1307279186u, 0, SIN_TOLERANCE, 0},
+{ 828, 1086877316u, 632580632u, 1078673506u, 3259601317u, 3219568792u, 1732990341u, 0, SIN_TOLERANCE, 0},
+{ 829, 3200980575u, 3309678799u, 1049337078u, 3056787074u, 3200980575u, 3309665549u, 0, SIN_TOLERANCE, 0},
+{ 830, 3221495289u, 2341164249u, 1080834967u, 2810890005u, 3219310107u, 247678568u, 0, SIN_TOLERANCE, 0},
+{ 831, 1067019674u, 932124675u, 1093915797u, 662682630u, 1067019502u, 4105433546u, 0, SIN_TOLERANCE, 0},
+{ 832, 3249230091u, 1367996113u, 3251723684u, 2974064663u, 3216906899u, 1904351782u, 0, SIN_TOLERANCE, 0},
+{ 833, 1080230731u, 323437999u, 1090499064u, 901457511u, 1072620409u, 2752740672u, 0, SIN_TOLERANCE, 0},
+{ 834, 3235778876u, 4184941840u, 3196770014u, 2458988443u, 3220123530u, 1783233073u, 0, SIN_TOLERANCE, 0},
+{ 835, 1087618284u, 2023065054u, 3211994098u, 2734612965u, 3220107204u, 3311454131u, 0, SIN_TOLERANCE, 0},
+{ 836, 1064074694u, 3679267365u, 3237728785u, 1699558211u, 1064074691u, 396556434u, 0, SIN_TOLERANCE, 0},
+{ 837, 1088079010u, 1826799031u, 1078709629u, 3986905229u, 3217169719u, 1900478768u, 0, SIN_TOLERANCE, 0},
+{ 838, 1052843785u, 351061688u, 3194386466u, 4105857588u, 1052843785u, 351058342u, 0, SIN_TOLERANCE, 0},
+{ 839, 1054128006u, 1365244058u, 1064457319u, 1452191426u, 1054128006u, 1365220347u, 0, SIN_TOLERANCE, 0},
+{ 840, 1064122385u, 2463030625u, 3215975031u, 3773488326u, 1064122381u, 2204556131u, 0, SIN_TOLERANCE, 0},
+{ 841, 3251276671u, 752664055u, 1065110394u, 1835931663u, 1070742515u, 3481964645u, 0, SIN_TOLERANCE, 0},
+{ 842, 1088045088u, 3496172149u, 1089617208u, 109068701u, 1072410999u, 2117102088u, 0, SIN_TOLERANCE, 0},
+{ 843, 3198135087u, 1636966254u, 1086098766u, 2016598298u, 3198135087u, 1636965923u, 0, SIN_TOLERANCE, 0},
+{ 844, 1050931318u, 3551516956u, 1097969102u, 1317953425u, 1050931318u, 3551516626u, 0, SIN_TOLERANCE, 0},
+{ 845, 3229832217u, 2977627788u, 1045339018u, 516058480u, 3218591622u, 1181654978u, 0, SIN_TOLERANCE, 0},
+{ 846, 3237408578u, 3901731263u, 3189566462u, 32272932u, 3218183231u, 3162146735u, 0, SIN_TOLERANCE, 0},
+{ 847, 1077281796u, 1956025297u, 3246628529u, 3840733905u, 3214483846u, 190538678u, 0, SIN_TOLERANCE, 0},
+{ 848, 1099818036u, 561057891u, 3198494340u, 4271027193u, 1071919107u, 1715483804u, 0, SIN_TOLERANCE, 0},
+{ 849, 3250929921u, 692989850u, 3242630588u, 2492225971u, 1072330076u, 3935618552u, 0, SIN_TOLERANCE, 0},
+{ 850, 3205479397u, 3439913962u, 1067477011u, 2973333638u, 3205479397u, 3434459874u, 0, SIN_TOLERANCE, 0},
+{ 851, 3213993989u, 877613377u, 1044917899u, 809672798u, 3213993931u, 3731633135u, 0, SIN_TOLERANCE, 0},
+{ 852, 3222171454u, 905426932u, 1046417457u, 1086320855u, 1071886405u, 1807554190u, 0, SIN_TOLERANCE, 0},
+{ 853, 3246346629u, 2645567288u, 1051258339u, 557182478u, 1072600554u, 3493319746u, 0, SIN_TOLERANCE, 0},
+{ 854, 3204057950u, 186287752u, 1061342054u, 4054003419u, 3204057950u, 185533994u, 0, SIN_TOLERANCE, 0},
+{ 855, 1097266673u, 3506889716u, 3243866036u, 519056371u, 1071195689u, 2201933024u, 0, SIN_TOLERANCE, 0},
+{ 856, 1042654053u, 2171898436u, 3246911982u, 1091500784u, 1042654053u, 2171898436u, 0, SIN_TOLERANCE, 0},
+{ 857, 3243647673u, 368493885u, 3222871893u, 1419055230u, 3220170308u, 3389552159u, 0, SIN_TOLERANCE, 0},
+{ 858, 1091950572u, 2010971245u, 3188804530u, 1518695799u, 3219634155u, 704817172u, 0, SIN_TOLERANCE, 0},
+{ 859, 3205426509u, 1239207795u, 1040192984u, 2199481342u, 3205426509u, 1234159317u, 0, SIN_TOLERANCE, 0},
+{ 860, 3210978637u, 4264613432u, 3203460972u, 3558930895u, 3210978636u, 3259134081u, 0, SIN_TOLERANCE, 0},
+{ 861, 1050299283u, 3772748958u, 3227667376u, 309688336u, 1050299283u, 3772748769u, 0, SIN_TOLERANCE, 0},
+{ 862, 3230743041u, 1077949160u, 1075769893u, 2405271377u, 3217631057u, 4284143378u, 0, SIN_TOLERANCE, 0},
+{ 863, 1091835152u, 3751608506u, 3232278094u, 930375071u, 1070206721u, 167553464u, 0, SIN_TOLERANCE, 0},
+{ 864, 3198617153u, 1518334131u, 3205247482u, 791756713u, 3198617153u, 1518333622u, 0, SIN_TOLERANCE, 0},
+{ 865, 1047317453u, 2825203170u, 3245054001u, 1822981827u, 1047317453u, 2825203166u, 0, SIN_TOLERANCE, 0},
+{ 866, 1100016363u, 514474738u, 1089072073u, 3300845441u, 1069818848u, 883839804u, 0, SIN_TOLERANCE, 0},
+{ 867, 3216391250u, 247369460u, 3197320093u, 687450958u, 3216389418u, 1921207098u, 0, SIN_TOLERANCE, 0},
+{ 868, 1104161422u, 2722237629u, 1058272368u, 90602316u, 1072335096u, 22009225u, 0, SIN_TOLERANCE, 0},
+{ 869, 3208098435u, 1845900544u, 3231520830u, 3389751458u, 3208098435u, 1700546786u, 0, SIN_TOLERANCE, 0},
+{ 870, 3247535245u, 737689911u, 3195377751u, 3462616966u, 1071595394u, 1733207567u, 0, SIN_TOLERANCE, 0},
+{ 871, 3223538384u, 3620285831u, 1055501023u, 2708056059u, 1070340609u, 917475295u, 0, SIN_TOLERANCE, 0},
+{ 872, 3219464996u, 4073430285u, 1056206159u, 172017902u, 3219366437u, 3489378266u, 0, SIN_TOLERANCE, 0},
+{ 873, 3212869638u, 2799176222u, 1052706894u, 4083892667u, 3212869626u, 4094452023u, 0, SIN_TOLERANCE, 0},
+{ 874, 3202279557u, 1562351330u, 1069705601u, 1247765260u, 3202279557u, 1562272590u, 0, SIN_TOLERANCE, 0},
+{ 875, 3232717299u, 51853475u, 3189080201u, 2783553144u, 1072519452u, 3477669547u, 0, SIN_TOLERANCE, 0},
+{ 876, 3219454353u, 3851781549u, 3241598113u, 514064046u, 3219358016u, 3762898794u, 0, SIN_TOLERANCE, 0},
+{ 877, 1100045965u, 934745487u, 3248182437u, 2798581921u, 3217679015u, 4147249967u, 0, SIN_TOLERANCE, 0},
+{ 878, 3213082493u, 2948648757u, 3232177250u, 4278702895u, 3213082473u, 2709607265u, 0, SIN_TOLERANCE, 0},
+{ 879, 1072485724u, 4259101461u, 1061606772u, 84229920u, 1072240213u, 1656142705u, 0, SIN_TOLERANCE, 0},
+{ 880, 3198075559u, 3891230598u, 1095924595u, 3049217547u, 3198075559u, 3891230295u, 0, SIN_TOLERANCE, 0},
+{ 881, 1077353053u, 3806018919u, 3243191216u, 280177341u, 3219959879u, 13294155u, 0, SIN_TOLERANCE, 0},
+{ 882, 1060624530u, 3900344258u, 1063647809u, 4206745890u, 1060624530u, 3752237512u, 0, SIN_TOLERANCE, 0},
+{ 883, 3227707336u, 2126253040u, 3207248026u, 808507485u, 3218843364u, 965003397u, 0, SIN_TOLERANCE, 0},
+{ 884, 1086090317u, 3465685634u, 3230391053u, 3754958214u, 1071085134u, 3025458875u, 0, SIN_TOLERANCE, 0},
+{ 885, 1102861084u, 461094531u, 1101110393u, 1316091396u, 3219476555u, 130294181u, 0, SIN_TOLERANCE, 0},
+{ 886, 1064980314u, 4197635149u, 1091873113u, 1240127141u, 1064980303u, 517467410u, 0, SIN_TOLERANCE, 0},
+{ 887, 1074333893u, 118603800u, 1105304898u, 4291425557u, 1065956899u, 1987089718u, 0, SIN_TOLERANCE, 0},
+{ 888, 3213429165u, 3744663425u, 3212482771u, 953662066u, 3213429124u, 4282849056u, 0, SIN_TOLERANCE, 0},
+{ 889, 1085171305u, 3564196690u, 3228101916u, 904305212u, 1072570242u, 3569860264u, 0, SIN_TOLERANCE, 0},
+{ 890, 1048333111u, 3566257266u, 3235138829u, 2734275140u, 1048333111u, 3566257251u, 0, SIN_TOLERANCE, 0},
+{ 891, 3243948477u, 606044282u, 3241318094u, 2446416887u, 3218860673u, 3554048078u, 0, SIN_TOLERANCE, 0},
+{ 892, 1041627284u, 2336116589u, 3197594053u, 2296925138u, 1041627284u, 2336116589u, 0, SIN_TOLERANCE, 0},
+{ 893, 1058567659u, 907670625u, 3240769036u, 1827119006u, 1058567659u, 897679576u, 0, SIN_TOLERANCE, 0},
+{ 894, 1044467183u, 2818710946u, 3246059905u, 553394170u, 1044467183u, 2818710946u, 0, SIN_TOLERANCE, 0},
+{ 895, 3189504094u, 4099522736u, 3232742168u, 3718083858u, 3189504094u, 4099522736u, 0, SIN_TOLERANCE, 0},
+{ 896, 1092371276u, 1059279404u, 1080245336u, 175941677u, 1072200212u, 1737419341u, 0, SIN_TOLERANCE, 0},
+{ 897, 1105189691u, 1650862428u, 1061816101u, 1723201723u, 3218570766u, 2805783757u, 0, SIN_TOLERANCE, 0},
+{ 898, 3239012814u, 2462163405u, 3218946201u, 3876535372u, 1071679035u, 447938331u, 0, SIN_TOLERANCE, 0},
+{ 899, 1084392886u, 495844137u, 1073721460u, 772777946u, 1072411823u, 499804451u, 0, SIN_TOLERANCE, 0},
+{ 900, 1052415330u, 458757721u, 3245680321u, 3609892707u, 1052415330u, 458754590u, 0, SIN_TOLERANCE, 0},
+{ 901, 3193282956u, 2533012202u, 1079980803u, 3592268374u, 3193282956u, 2533012202u, 0, SIN_TOLERANCE, 0},
+{ 902, 3203364780u, 4108274117u, 1063045844u, 571992389u, 3203364780u, 4107941752u, 0, SIN_TOLERANCE, 0},
+{ 903, 1090567271u, 3541110973u, 1096296754u, 3118427427u, 1072597174u, 435564055u, 0, SIN_TOLERANCE, 0},
+{ 904, 3193980043u, 1213941007u, 1105433735u, 2172963370u, 3193980043u, 1213941006u, 0, SIN_TOLERANCE, 0},
+{ 905, 1096853359u, 272190288u, 1095452370u, 4026581530u, 1072068189u, 225919417u, 0, SIN_TOLERANCE, 0},
+{ 906, 1095583909u, 2843638672u, 1100510986u, 3190536898u, 3220168753u, 3056278709u, 0, SIN_TOLERANCE, 0},
+{ 907, 1083757094u, 2014317727u, 3247389683u, 2428462015u, 3219956586u, 2749317985u, 0, SIN_TOLERANCE, 0},
+{ 908, 1093976717u, 688442200u, 1047852515u, 3035186380u, 1072571659u, 4146519538u, 0, SIN_TOLERANCE, 0},
+{ 909, 1076664212u, 1010095511u, 3221288076u, 405287991u, 1072666832u, 2709716788u, 0, SIN_TOLERANCE, 0},
+{ 910, 3252294615u, 2983070435u, 1089546472u, 2907918480u, 1072605952u, 1232286993u, 0, SIN_TOLERANCE, 0},
+{ 911, 1082988121u, 81928569u, 1056007286u, 2740556321u, 1072215176u, 1059317954u, 0, SIN_TOLERANCE, 0},
+{ 912, 1041110867u, 2076689028u, 1081558619u, 3039159031u, 1041110867u, 2076689028u, 0, SIN_TOLERANCE, 0},
+{ 913, 1047307438u, 1376882094u, 3211003208u, 1296286481u, 1047307438u, 1376882090u, 0, SIN_TOLERANCE, 0},
+{ 914, 1080114314u, 744133164u, 3200943494u, 955832216u, 3218422833u, 2642660829u, 0, SIN_TOLERANCE, 0},
+{ 915, 3226290326u, 176522478u, 1069999908u, 2891249491u, 3219970288u, 3526549197u, 0, SIN_TOLERANCE, 0},
+{ 916, 1043564602u, 3685851715u, 3187829932u, 2363997529u, 1043564602u, 3685851715u, 0, SIN_TOLERANCE, 0},
+{ 917, 1040244055u, 3974431579u, 1052505165u, 2589067816u, 1040244055u, 3974431579u, 0, SIN_TOLERANCE, 0},
+{ 918, 3191496789u, 3819109588u, 1048561488u, 969143351u, 3191496789u, 3819109588u, 0, SIN_TOLERANCE, 0},
+{ 919, 1072639397u, 4246896124u, 1104584799u, 1940097860u, 1072331114u, 3149593052u, 0, SIN_TOLERANCE, 0},
+{ 920, 1048038468u, 2228686199u, 3220231833u, 777624847u, 1048038468u, 2228686190u, 0, SIN_TOLERANCE, 0},
+{ 921, 3231467306u, 4189906558u, 3203004203u, 854242364u, 3217932555u, 3373042203u, 0, SIN_TOLERANCE, 0},
+{ 922, 1103910407u, 4089051094u, 3227282692u, 2693170723u, 1071833840u, 2957860682u, 0, SIN_TOLERANCE, 0},
+{ 923, 1045883607u, 1278581412u, 3239296746u, 1774588717u, 1045883607u, 1278581412u, 0, SIN_TOLERANCE, 0},
+{ 924, 3222372686u, 1794845306u, 1104879344u, 4135865182u, 1072575899u, 692380978u, 0, SIN_TOLERANCE, 0},
+{ 925, 1106449055u, 754938390u, 1061291430u, 2010786993u, 1072509343u, 2661354649u, 0, SIN_TOLERANCE, 0},
+{ 926, 1073581409u, 2034303731u, 3240176537u, 314147356u, 1072613751u, 1733668973u, 0, SIN_TOLERANCE, 0},
+{ 927, 3231449194u, 567588900u, 3195452230u, 1421366017u, 3220144878u, 1302979618u, 0, SIN_TOLERANCE, 0},
+{ 928, 3225089755u, 2708717091u, 1071975971u, 1364590470u, 3220106005u, 347473173u, 0, SIN_TOLERANCE, 0},
+{ 929, 3252137283u, 3461956134u, 3207820115u, 1605709634u, 3219346471u, 1082368428u, 0, SIN_TOLERANCE, 0},
+{ 930, 1065302996u, 1497124553u, 1051715442u, 916736957u, 1065302976u, 2196771713u, 0, SIN_TOLERANCE, 0},
+{ 931, 1058468363u, 834914365u, 1064667143u, 2839166298u, 1058468363u, 826667283u, 0, SIN_TOLERANCE, 0},
+{ 932, 1057279949u, 2139295776u, 1062816721u, 914592523u, 1057279949u, 2137757362u, 0, SIN_TOLERANCE, 0},
+{ 933, 3189636931u, 851569132u, 1058503154u, 1399378677u, 3189636931u, 851569132u, 0, SIN_TOLERANCE, 0},
+{ 934, 3233537697u, 3897202342u, 3245382590u, 246600375u, 1068716420u, 3379072270u, 0, SIN_TOLERANCE, 0},
+{ 935, 3225460308u, 3620429520u, 1055627557u, 229305u, 3220111575u, 1489682636u, 0, SIN_TOLERANCE, 0},
+{ 936, 1083958833u, 3641997865u, 3206673888u, 93720614u, 1072487430u, 2559630632u, 0, SIN_TOLERANCE, 0},
+{ 937, 3227808435u, 32766320u, 1062084905u, 3668443038u, 3217825786u, 3141296516u, 0, SIN_TOLERANCE, 0},
+{ 938, 3223298996u, 2039713492u, 3248699388u, 1346210821u, 3220173621u, 3576513478u, 0, SIN_TOLERANCE, 0},
+{ 939, 1093050016u, 1335820726u, 3191756860u, 1808427032u, 3219908339u, 4273266576u, 0, SIN_TOLERANCE, 0},
+{ 940, 1061442763u, 650692001u, 1103515670u, 2253348763u, 1061442763u, 283511768u, 0, SIN_TOLERANCE, 0},
+{ 941, 3191395187u, 2372623300u, 3210185343u, 3200572848u, 3191395187u, 2372623300u, 0, SIN_TOLERANCE, 0},
+{ 942, 1100796069u, 762317532u, 3194595095u, 3192607437u, 1072383342u, 3738669031u, 0, SIN_TOLERANCE, 0},
+{ 943, 1062262701u, 217775356u, 3232827087u, 2969367386u, 1062262700u, 3677779917u, 0, SIN_TOLERANCE, 0},
+{ 944, 1057172551u, 3621353969u, 1077994795u, 3873976266u, 1057172551u, 3620151104u, 0, SIN_TOLERANCE, 0},
+{ 945, 1091301987u, 268372152u, 3221764390u, 3216978962u, 3215234871u, 2712477825u, 0, SIN_TOLERANCE, 0},
+{ 946, 3246437611u, 142942404u, 1075322987u, 1746449109u, 3220174867u, 1806978771u, 0, SIN_TOLERANCE, 0},
+{ 947, 1104006296u, 496534875u, 3254522293u, 2532372502u, 3219413463u, 3398089452u, 0, SIN_TOLERANCE, 0},
+{ 948, 3250225541u, 2999955409u, 3222793392u, 1868977643u, 3217339456u, 3133783484u, 0, SIN_TOLERANCE, 0},
+{ 949, 1074319042u, 3353193428u, 3218469191u, 3326244297u, 1067764907u, 3839181841u, 0, SIN_TOLERANCE, 0},
+{ 950, 1068218799u, 73646871u, 3231442171u, 3711510104u, 1068217911u, 581741099u, 0, SIN_TOLERANCE, 0},
+{ 951, 1090483524u, 218135177u, 3198908856u, 3082199105u, 1069914119u, 1727818807u, 0, SIN_TOLERANCE, 0},
+{ 952, 1068068480u, 1061628117u, 3248859043u, 86776158u, 1068067794u, 4218705145u, 0, SIN_TOLERANCE, 0},
+{ 953, 3208484674u, 938869114u, 1087911145u, 2416710759u, 3208484674u, 655859505u, 0, SIN_TOLERANCE, 0},
+{ 954, 1095576832u, 2970853959u, 3239543429u, 1887505029u, 1071768245u, 3065994952u, 0, SIN_TOLERANCE, 0},
+{ 955, 3237728787u, 1337895935u, 1076463812u, 1172733328u, 3220129698u, 1382726161u, 0, SIN_TOLERANCE, 0},
+{ 956, 1049139928u, 1469010822u, 3229583535u, 551399515u, 1049139928u, 1469010783u, 0, SIN_TOLERANCE, 0},
+{ 957, 1074118123u, 1849711538u, 1049053713u, 1744276190u, 1071272555u, 2206999416u, 0, SIN_TOLERANCE, 0},
+{ 958, 3242138780u, 2976596113u, 3192137295u, 3033242648u, 3215990730u, 631966881u, 0, SIN_TOLERANCE, 0},
+{ 959, 1098698481u, 876810930u, 3197470945u, 2571587447u, 3219824607u, 3141768906u, 0, SIN_TOLERANCE, 0},
+{ 960, 3241770810u, 4007797282u, 3225853845u, 4069319648u, 3220129859u, 885379396u, 0, SIN_TOLERANCE, 0},
+{ 961, 1047279982u, 3840538373u, 1043189552u, 3668774580u, 1047279982u, 3840538369u, 0, SIN_TOLERANCE, 0},
+{ 962, 3217611704u, 200857661u, 3229758439u, 3359367736u, 3217601482u, 3545288024u, 0, SIN_TOLERANCE, 0},
+{ 963, 3248797869u, 111868139u, 3227902082u, 2366064003u, 3220174936u, 1087612617u, 0, SIN_TOLERANCE, 0},
+{ 964, 1044195166u, 3510904416u, 3222131653u, 3822770497u, 1044195166u, 3510904416u, 0, SIN_TOLERANCE, 0},
+{ 965, 3242675715u, 789151814u, 1099269239u, 2958956055u, 3218832631u, 4285275856u, 0, SIN_TOLERANCE, 0},
+{ 966, 1084679320u, 722163228u, 1105524559u, 1534462169u, 1072113216u, 2678860791u, 0, SIN_TOLERANCE, 0},
+{ 967, 1046586062u, 2207037106u, 3208952465u, 1231254630u, 1046586062u, 2207037105u, 0, SIN_TOLERANCE, 0},
+{ 968, 3197884060u, 3838689849u, 3198769679u, 1302617170u, 3197884060u, 3838689624u, 0, SIN_TOLERANCE, 0},
+{ 969, 1085938906u, 2527556476u, 3240373426u, 124352692u, 3218875557u, 2578651385u, 0, SIN_TOLERANCE, 0},
+{ 970, 3199540805u, 3502371499u, 1043411944u, 4190072016u, 3199540805u, 3502369929u, 0, SIN_TOLERANCE, 0},
+{ 971, 1064676142u, 1798470077u, 3200116917u, 3421833729u, 1064676135u, 3414357561u, 0, SIN_TOLERANCE, 0},
+{ 972, 3193514956u, 3653237931u, 3204255012u, 3683870669u, 3193514956u, 3653237930u, 0, SIN_TOLERANCE, 0},
+{ 973, 1053588582u, 376530104u, 1073853547u, 565755892u, 1053588582u, 376514694u, 0, SIN_TOLERANCE, 0},
+{ 974, 3242503851u, 558292492u, 1051772749u, 4267873474u, 3219291476u, 1962122958u, 0, SIN_TOLERANCE, 0},
+{ 975, 3224772709u, 509637100u, 3212030069u, 215050379u, 1069631247u, 1773886841u, 0, SIN_TOLERANCE, 0},
+{ 976, 1092057101u, 3571665665u, 3188628584u, 757824767u, 3217854652u, 1187254372u, 0, SIN_TOLERANCE, 0},
+{ 977, 3214799337u, 998858159u, 1063077962u, 436029885u, 3214799057u, 2317319704u, 0, SIN_TOLERANCE, 0},
+{ 978, 3205946965u, 996300405u, 3193842624u, 80548098u, 3205946965u, 988136066u, 0, SIN_TOLERANCE, 0},
+{ 979, 3228848840u, 3876129407u, 3215332180u, 2226970413u, 1072692861u, 472379830u, 0, SIN_TOLERANCE, 0},
+{ 980, 3237608953u, 200013509u, 3224552716u, 414878724u, 3220084938u, 2073324112u, 0, SIN_TOLERANCE, 0},
+{ 981, 3230617093u, 309319541u, 1048979765u, 1261662434u, 3218724494u, 3260403043u, 0, SIN_TOLERANCE, 0},
+{ 982, 1089252639u, 4062255924u, 3224274128u, 4289485681u, 1068544147u, 1040823283u, 0, SIN_TOLERANCE, 0},
+{ 983, 3236136084u, 1611969213u, 1053890378u, 3774617276u, 1072347290u, 2008822234u, 0, SIN_TOLERANCE, 0},
+{ 984, 1080412763u, 1752164782u, 3239587974u, 612223386u, 3220175631u, 284831033u, 0, SIN_TOLERANCE, 0},
+{ 985, 1041545782u, 2024044989u, 1074932678u, 3259111307u, 1041545782u, 2024044989u, 0, SIN_TOLERANCE, 0},
+{ 986, 1053207518u, 2564965629u, 1093571065u, 169360454u, 1053207518u, 2564957860u, 0, SIN_TOLERANCE, 0},
+{ 987, 1089599090u, 1860101737u, 3191222372u, 1676437468u, 3219783008u, 3408493261u, 0, SIN_TOLERANCE, 0},
+{ 988, 1059802968u, 588387057u, 3192103292u, 2495288012u, 1059802968u, 532767073u, 0, SIN_TOLERANCE, 0},
+{ 989, 3193155705u, 659070058u, 1073095700u, 1393632068u, 3193155705u, 659070058u, 0, SIN_TOLERANCE, 0},
+{ 990, 3217683263u, 4276187829u, 3217553330u, 1868253275u, 3217671637u, 3384799844u, 0, SIN_TOLERANCE, 0},
+{ 991, 3223220272u, 2085481575u, 3215994784u, 800910002u, 3220114563u, 1165540335u, 0, SIN_TOLERANCE, 0},
+{ 992, 1056934836u, 1950570756u, 3200582211u, 941022151u, 1056934836u, 1949231356u, 0, SIN_TOLERANCE, 0},
+{ 993, 1057530368u, 2075610870u, 3250142022u, 3605152103u, 1057530368u, 2073059984u, 0, SIN_TOLERANCE, 0},
+{ 994, 3200839250u, 3792931748u, 3204857863u, 804393211u, 3200839250u, 3792921417u, 0, SIN_TOLERANCE, 0},
+{ 995, 3253646370u, 3430071177u, 3226288311u, 3652522729u, 3220166202u, 497140450u, 0, SIN_TOLERANCE, 0},
+{ 996, 3201314702u, 236884699u, 3227874605u, 2193269825u, 3201314702u, 236873391u, 0, SIN_TOLERANCE, 0},
+{ 997, 1064936593u, 2744231849u, 1046186036u, 771053722u, 1064936582u, 2840518528u, 0, SIN_TOLERANCE, 0},
+{ 998, 1083996036u, 3000189819u, 1096500901u, 2057239777u, 3218010389u, 1041275114u, 0, SIN_TOLERANCE, 0},
+{ 999, 1093835581u, 205759408u, 3244643377u, 2702292618u, 3220095357u, 2012768440u, 0, SIN_TOLERANCE, 0},
+
+
+// AUTOMATICALLY GENERATED VECTORS STOP
+
+};
+
+#endif // CYGONCE_LIBM_SIN_H multiple inclusion protection
+
+// EOF sin.h
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/sinf.c b/ecos/packages/language/c/libm/current/tests/vectors/sinf.c
new file mode 100644
index 0000000..b137880
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/sinf.c
@@ -0,0 +1,115 @@
+//===========================================================================
+//
+// sinf.c
+//
+// Test of sinf() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// Declarations for test system:
+//
+// TESTCASE_TYPE=CYG_TEST_MODULE
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include <cyg/infra/testcase.h> // Test infrastructure
+#include <math.h> // Header for this package
+#include <sys/ieeefp.h> // Cyg_libm_ieee_float_shape_type
+#include "vectors/vector_support_float.h"// extra support for math tests
+
+#include "vectors/sinf.h"
+
+// FUNCTIONS
+
+static void
+test( CYG_ADDRWORD data )
+{
+ cyg_ucount32 vec_size;
+ cyg_bool ret;
+
+ vec_size = sizeof(sinf_vec) / sizeof(Cyg_libm_test_float_vec_t);
+ ret = doTestVecFloat( (CYG_ADDRWORD) &sinf, CYG_LIBM_TEST_VEC_FLOAT,
+ CYG_LIBM_TEST_VEC_NONE, CYG_LIBM_TEST_VEC_FLOAT,
+ &sinf_vec[0], vec_size );
+
+ if (ret==true)
+ {
+ CYG_TEST_PASS("sinf() is stable");
+ } // if
+ else
+ {
+ CYG_TEST_FAIL("sinf() failed tests");
+ } // else
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for Math "
+ "library sinf() function");
+} // test()
+
+
+int
+main(int argc, char *argv[])
+{
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for Math library "
+ "sinf() function");
+
+ START_TEST( test );
+
+ CYG_TEST_PASS_FINISH("Testing is not applicable to this configuration");
+
+} // main()
+
+
+// EOF sinf.c
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/sinf.h b/ecos/packages/language/c/libm/current/tests/vectors/sinf.h
new file mode 100644
index 0000000..854adc6
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/sinf.h
@@ -0,0 +1,1231 @@
+#ifndef CYGONCE_LIBM_SCABNF_H
+#define CYGONCE_LIBM_SCABNF_H
+//===========================================================================
+//
+// sinf.h
+//
+// Test vectors for testing of sinf() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage: #include "vectors/sinf.h"
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include "vectors/vector_support_float.h"// extra support for math tests
+
+#define SINF_TOLERANCE 1.0E-04
+
+static const Cyg_libm_test_float_vec_t sinf_vec[] = {
+
+// AUTOMATICALLY GENERATED VECTORS START
+
+{0, 3214514586u, 0u, 3211696670u, 0, SINF_TOLERANCE, 0},
+{1, 3214430700u, 0u, 3211635095u, 0, SINF_TOLERANCE, 0},
+{2, 3214346813u, 0u, 3211571962u, 0, SINF_TOLERANCE, 0},
+{3, 3214262927u, 0u, 3211507279u, 0, SINF_TOLERANCE, 0},
+{4, 3214179041u, 0u, 3211441052u, 0, SINF_TOLERANCE, 0},
+{5, 3214095155u, 0u, 3211373285u, 0, SINF_TOLERANCE, 0},
+{6, 3214011269u, 0u, 3211303988u, 0, SINF_TOLERANCE, 0},
+{7, 3213927383u, 0u, 3211233167u, 0, SINF_TOLERANCE, 0},
+{8, 3213843497u, 0u, 3211160828u, 0, SINF_TOLERANCE, 0},
+{9, 3213759611u, 0u, 3211086979u, 0, SINF_TOLERANCE, 0},
+{10, 3213675725u, 0u, 3211011627u, 0, SINF_TOLERANCE, 0},
+{11, 3213591839u, 0u, 3210934780u, 0, SINF_TOLERANCE, 0},
+{12, 3213507953u, 0u, 3210856445u, 0, SINF_TOLERANCE, 0},
+{13, 3213424067u, 0u, 3210776631u, 0, SINF_TOLERANCE, 0},
+{14, 3213340180u, 0u, 3210695344u, 0, SINF_TOLERANCE, 0},
+{15, 3213256294u, 0u, 3210612595u, 0, SINF_TOLERANCE, 0},
+{16, 3213172408u, 0u, 3210528390u, 0, SINF_TOLERANCE, 0},
+{17, 3213088522u, 0u, 3210442738u, 0, SINF_TOLERANCE, 0},
+{18, 3213004636u, 0u, 3210355648u, 0, SINF_TOLERANCE, 0},
+{19, 3212920750u, 0u, 3210267129u, 0, SINF_TOLERANCE, 0},
+{20, 3212836864u, 0u, 3210177188u, 0, SINF_TOLERANCE, 0},
+{21, 3212669092u, 0u, 3210085836u, 0, SINF_TOLERANCE, 0},
+{22, 3212501320u, 0u, 3209993082u, 0, SINF_TOLERANCE, 0},
+{23, 3212333548u, 0u, 3209898934u, 0, SINF_TOLERANCE, 0},
+{24, 3212165775u, 0u, 3209803402u, 0, SINF_TOLERANCE, 0},
+{25, 3211998003u, 0u, 3209706495u, 0, SINF_TOLERANCE, 0},
+{26, 3211830231u, 0u, 3209608225u, 0, SINF_TOLERANCE, 0},
+{27, 3211662459u, 0u, 3209508599u, 0, SINF_TOLERANCE, 0},
+{28, 3211494687u, 0u, 3209407628u, 0, SINF_TOLERANCE, 0},
+{29, 3211326915u, 0u, 3209305323u, 0, SINF_TOLERANCE, 0},
+{30, 3211159142u, 0u, 3209201692u, 0, SINF_TOLERANCE, 0},
+{31, 3210991370u, 0u, 3209096748u, 0, SINF_TOLERANCE, 0},
+{32, 3210823598u, 0u, 3208990501u, 0, SINF_TOLERANCE, 0},
+{33, 3210655826u, 0u, 3208882960u, 0, SINF_TOLERANCE, 0},
+{34, 3210488054u, 0u, 3208774137u, 0, SINF_TOLERANCE, 0},
+{35, 3210320282u, 0u, 3208664042u, 0, SINF_TOLERANCE, 0},
+{36, 3210152509u, 0u, 3208552686u, 0, SINF_TOLERANCE, 0},
+{37, 3209984737u, 0u, 3208440082u, 0, SINF_TOLERANCE, 0},
+{38, 3209816965u, 0u, 3208326239u, 0, SINF_TOLERANCE, 0},
+{39, 3209649193u, 0u, 3208211170u, 0, SINF_TOLERANCE, 0},
+{40, 3209481421u, 0u, 3208094886u, 0, SINF_TOLERANCE, 0},
+{41, 3209313649u, 0u, 3207977399u, 0, SINF_TOLERANCE, 0},
+{42, 3209145876u, 0u, 3207858718u, 0, SINF_TOLERANCE, 0},
+{43, 3208978104u, 0u, 3207738859u, 0, SINF_TOLERANCE, 0},
+{44, 3208810332u, 0u, 3207617832u, 0, SINF_TOLERANCE, 0},
+{45, 3208642560u, 0u, 3207495649u, 0, SINF_TOLERANCE, 0},
+{46, 3208474788u, 0u, 3207372322u, 0, SINF_TOLERANCE, 0},
+{47, 3208307016u, 0u, 3207247864u, 0, SINF_TOLERANCE, 0},
+{48, 3208139244u, 0u, 3207122288u, 0, SINF_TOLERANCE, 0},
+{49, 3207971471u, 0u, 3206995604u, 0, SINF_TOLERANCE, 0},
+{50, 3207803699u, 0u, 3206867827u, 0, SINF_TOLERANCE, 0},
+{51, 3207635927u, 0u, 3206738970u, 0, SINF_TOLERANCE, 0},
+{52, 3207468155u, 0u, 3206609044u, 0, SINF_TOLERANCE, 0},
+{53, 3207300383u, 0u, 3206478064u, 0, SINF_TOLERANCE, 0},
+{54, 3207132611u, 0u, 3206346042u, 0, SINF_TOLERANCE, 0},
+{55, 3206964838u, 0u, 3206212991u, 0, SINF_TOLERANCE, 0},
+{56, 3206797066u, 0u, 3206078925u, 0, SINF_TOLERANCE, 0},
+{57, 3206629294u, 0u, 3205943857u, 0, SINF_TOLERANCE, 0},
+{58, 3206461522u, 0u, 3205807800u, 0, SINF_TOLERANCE, 0},
+{59, 3206293750u, 0u, 3205670769u, 0, SINF_TOLERANCE, 0},
+{60, 3206125978u, 0u, 3205532777u, 0, SINF_TOLERANCE, 0},
+{61, 3205958205u, 0u, 3205393837u, 0, SINF_TOLERANCE, 0},
+{62, 3205790433u, 0u, 3205253964u, 0, SINF_TOLERANCE, 0},
+{63, 3205622661u, 0u, 3205113171u, 0, SINF_TOLERANCE, 0},
+{64, 3205454889u, 0u, 3204971474u, 0, SINF_TOLERANCE, 0},
+{65, 3205287117u, 0u, 3204828885u, 0, SINF_TOLERANCE, 0},
+{66, 3205119345u, 0u, 3204685419u, 0, SINF_TOLERANCE, 0},
+{67, 3204951572u, 0u, 3204541090u, 0, SINF_TOLERANCE, 0},
+{68, 3204783800u, 0u, 3204343570u, 0, SINF_TOLERANCE, 0},
+{69, 3204616028u, 0u, 3204051550u, 0, SINF_TOLERANCE, 0},
+{70, 3204448256u, 0u, 3203757892u, 0, SINF_TOLERANCE, 0},
+{71, 3204112712u, 0u, 3203462625u, 0, SINF_TOLERANCE, 0},
+{72, 3203777167u, 0u, 3203165778u, 0, SINF_TOLERANCE, 0},
+{73, 3203441623u, 0u, 3202867382u, 0, SINF_TOLERANCE, 0},
+{74, 3203106079u, 0u, 3202567467u, 0, SINF_TOLERANCE, 0},
+{75, 3202770534u, 0u, 3202266061u, 0, SINF_TOLERANCE, 0},
+{76, 3202434990u, 0u, 3201963197u, 0, SINF_TOLERANCE, 0},
+{77, 3202099446u, 0u, 3201658903u, 0, SINF_TOLERANCE, 0},
+{78, 3201763901u, 0u, 3201353210u, 0, SINF_TOLERANCE, 0},
+{79, 3201428357u, 0u, 3201046149u, 0, SINF_TOLERANCE, 0},
+{80, 3201092813u, 0u, 3200737751u, 0, SINF_TOLERANCE, 0},
+{81, 3200757268u, 0u, 3200428046u, 0, SINF_TOLERANCE, 0},
+{82, 3200421724u, 0u, 3200117066u, 0, SINF_TOLERANCE, 0},
+{83, 3200086180u, 0u, 3199804841u, 0, SINF_TOLERANCE, 0},
+{84, 3199750636u, 0u, 3199491402u, 0, SINF_TOLERANCE, 0},
+{85, 3199415091u, 0u, 3199176781u, 0, SINF_TOLERANCE, 0},
+{86, 3199079547u, 0u, 3198861010u, 0, SINF_TOLERANCE, 0},
+{87, 3198744003u, 0u, 3198544120u, 0, SINF_TOLERANCE, 0},
+{88, 3198408458u, 0u, 3198226142u, 0, SINF_TOLERANCE, 0},
+{89, 3198072914u, 0u, 3197907109u, 0, SINF_TOLERANCE, 0},
+{90, 3197737370u, 0u, 3197587053u, 0, SINF_TOLERANCE, 0},
+{91, 3197401825u, 0u, 3197266004u, 0, SINF_TOLERANCE, 0},
+{92, 3197066281u, 0u, 3196943997u, 0, SINF_TOLERANCE, 0},
+{93, 3196730737u, 0u, 3196621062u, 0, SINF_TOLERANCE, 0},
+{94, 3196395192u, 0u, 3196297232u, 0, SINF_TOLERANCE, 0},
+{95, 3196059648u, 0u, 3195885431u, 0, SINF_TOLERANCE, 0},
+{96, 3195388559u, 0u, 3195234385u, 0, SINF_TOLERANCE, 0},
+{97, 3194717471u, 0u, 3194581745u, 0, SINF_TOLERANCE, 0},
+{98, 3194046382u, 0u, 3193927574u, 0, SINF_TOLERANCE, 0},
+{99, 3193375293u, 0u, 3193271939u, 0, SINF_TOLERANCE, 0},
+{100, 3192704205u, 0u, 3192614905u, 0, SINF_TOLERANCE, 0},
+{101, 3192033116u, 0u, 3191956538u, 0, SINF_TOLERANCE, 0},
+{102, 3191362028u, 0u, 3191296904u, 0, SINF_TOLERANCE, 0},
+{103, 3190690939u, 0u, 3190636067u, 0, SINF_TOLERANCE, 0},
+{104, 3190019850u, 0u, 3189974096u, 0, SINF_TOLERANCE, 0},
+{105, 3189348762u, 0u, 3189311056u, 0, SINF_TOLERANCE, 0},
+{106, 3188677673u, 0u, 3188647012u, 0, SINF_TOLERANCE, 0},
+{107, 3188006584u, 0u, 3187982032u, 0, SINF_TOLERANCE, 0},
+{108, 3186999951u, 0u, 3186961324u, 0, SINF_TOLERANCE, 0},
+{109, 3185657774u, 0u, 3185628018u, 0, SINF_TOLERANCE, 0},
+{110, 3184315597u, 0u, 3184293239u, 0, SINF_TOLERANCE, 0},
+{111, 3182973420u, 0u, 3182957119u, 0, SINF_TOLERANCE, 0},
+{112, 3181631242u, 0u, 3181619792u, 0, SINF_TOLERANCE, 0},
+{113, 3180289065u, 0u, 3180281394u, 0, SINF_TOLERANCE, 0},
+{114, 3178611343u, 0u, 3178601681u, 0, SINF_TOLERANCE, 0},
+{115, 3175926989u, 0u, 3175921397u, 0, SINF_TOLERANCE, 0},
+{116, 3173242634u, 0u, 3173239771u, 0, SINF_TOLERANCE, 0},
+{117, 3170222735u, 0u, 3170220319u, 0, SINF_TOLERANCE, 0},
+{118, 3164854026u, 0u, 3164853310u, 0, SINF_TOLERANCE, 0},
+{119, 3156465418u, 0u, 3156465239u, 0, SINF_TOLERANCE, 0},
+{120, 1008981770u, 0u, 1008981591u, 0, SINF_TOLERANCE, 0},
+{121, 1017370378u, 0u, 1017369662u, 0, SINF_TOLERANCE, 0},
+{122, 1022739087u, 0u, 1022736671u, 0, SINF_TOLERANCE, 0},
+{123, 1025758986u, 0u, 1025756123u, 0, SINF_TOLERANCE, 0},
+{124, 1028443341u, 0u, 1028437749u, 0, SINF_TOLERANCE, 0},
+{125, 1031127695u, 0u, 1031118033u, 0, SINF_TOLERANCE, 0},
+{126, 1032805417u, 0u, 1032797746u, 0, SINF_TOLERANCE, 0},
+{127, 1034147594u, 0u, 1034136144u, 0, SINF_TOLERANCE, 0},
+{128, 1035489772u, 0u, 1035473471u, 0, SINF_TOLERANCE, 0},
+{129, 1036831949u, 0u, 1036809591u, 0, SINF_TOLERANCE, 0},
+{130, 1038174126u, 0u, 1038144370u, 0, SINF_TOLERANCE, 0},
+{131, 1039516303u, 0u, 1039477676u, 0, SINF_TOLERANCE, 0},
+{132, 1040522936u, 0u, 1040498384u, 0, SINF_TOLERANCE, 0},
+{133, 1041194025u, 0u, 1041163364u, 0, SINF_TOLERANCE, 0},
+{134, 1041865114u, 0u, 1041827408u, 0, SINF_TOLERANCE, 0},
+{135, 1042536202u, 0u, 1042490448u, 0, SINF_TOLERANCE, 0},
+{136, 1043207291u, 0u, 1043152419u, 0, SINF_TOLERANCE, 0},
+{137, 1043878380u, 0u, 1043813256u, 0, SINF_TOLERANCE, 0},
+{138, 1044549468u, 0u, 1044472890u, 0, SINF_TOLERANCE, 0},
+{139, 1045220557u, 0u, 1045131257u, 0, SINF_TOLERANCE, 0},
+{140, 1045891645u, 0u, 1045788291u, 0, SINF_TOLERANCE, 0},
+{141, 1046562734u, 0u, 1046443926u, 0, SINF_TOLERANCE, 0},
+{142, 1047233823u, 0u, 1047098097u, 0, SINF_TOLERANCE, 0},
+{143, 1047904911u, 0u, 1047750737u, 0, SINF_TOLERANCE, 0},
+{144, 1048576000u, 0u, 1048401783u, 0, SINF_TOLERANCE, 0},
+{145, 1048911544u, 0u, 1048813584u, 0, SINF_TOLERANCE, 0},
+{146, 1049247089u, 0u, 1049137414u, 0, SINF_TOLERANCE, 0},
+{147, 1049582633u, 0u, 1049460349u, 0, SINF_TOLERANCE, 0},
+{148, 1049918177u, 0u, 1049782356u, 0, SINF_TOLERANCE, 0},
+{149, 1050253722u, 0u, 1050103405u, 0, SINF_TOLERANCE, 0},
+{150, 1050589266u, 0u, 1050423461u, 0, SINF_TOLERANCE, 0},
+{151, 1050924810u, 0u, 1050742494u, 0, SINF_TOLERANCE, 0},
+{152, 1051260355u, 0u, 1051060472u, 0, SINF_TOLERANCE, 0},
+{153, 1051595899u, 0u, 1051377362u, 0, SINF_TOLERANCE, 0},
+{154, 1051931443u, 0u, 1051693133u, 0, SINF_TOLERANCE, 0},
+{155, 1052266988u, 0u, 1052007754u, 0, SINF_TOLERANCE, 0},
+{156, 1052602532u, 0u, 1052321193u, 0, SINF_TOLERANCE, 0},
+{157, 1052938076u, 0u, 1052633418u, 0, SINF_TOLERANCE, 0},
+{158, 1053273620u, 0u, 1052944398u, 0, SINF_TOLERANCE, 0},
+{159, 1053609165u, 0u, 1053254103u, 0, SINF_TOLERANCE, 0},
+{160, 1053944709u, 0u, 1053562501u, 0, SINF_TOLERANCE, 0},
+{161, 1054280253u, 0u, 1053869562u, 0, SINF_TOLERANCE, 0},
+{162, 1054615798u, 0u, 1054175255u, 0, SINF_TOLERANCE, 0},
+{163, 1054951342u, 0u, 1054479549u, 0, SINF_TOLERANCE, 0},
+{164, 1055286886u, 0u, 1054782413u, 0, SINF_TOLERANCE, 0},
+{165, 1055622431u, 0u, 1055083819u, 0, SINF_TOLERANCE, 0},
+{166, 1055957975u, 0u, 1055383734u, 0, SINF_TOLERANCE, 0},
+{167, 1056293519u, 0u, 1055682130u, 0, SINF_TOLERANCE, 0},
+{168, 1056629064u, 0u, 1055978977u, 0, SINF_TOLERANCE, 0},
+{169, 1056964608u, 0u, 1056274244u, 0, SINF_TOLERANCE, 0},
+{170, 1057132380u, 0u, 1056567902u, 0, SINF_TOLERANCE, 0},
+{171, 1057300152u, 0u, 1056859922u, 0, SINF_TOLERANCE, 0},
+{172, 1057467924u, 0u, 1057057442u, 0, SINF_TOLERANCE, 0},
+{173, 1057635697u, 0u, 1057201771u, 0, SINF_TOLERANCE, 0},
+{174, 1057803469u, 0u, 1057345237u, 0, SINF_TOLERANCE, 0},
+{175, 1057971241u, 0u, 1057487826u, 0, SINF_TOLERANCE, 0},
+{176, 1058139013u, 0u, 1057629523u, 0, SINF_TOLERANCE, 0},
+{177, 1058306785u, 0u, 1057770316u, 0, SINF_TOLERANCE, 0},
+{178, 1058474557u, 0u, 1057910189u, 0, SINF_TOLERANCE, 0},
+{179, 1058642330u, 0u, 1058049129u, 0, SINF_TOLERANCE, 0},
+{180, 1058810102u, 0u, 1058187121u, 0, SINF_TOLERANCE, 0},
+{181, 1058977874u, 0u, 1058324152u, 0, SINF_TOLERANCE, 0},
+{182, 1059145646u, 0u, 1058460209u, 0, SINF_TOLERANCE, 0},
+{183, 1059313418u, 0u, 1058595277u, 0, SINF_TOLERANCE, 0},
+{184, 1059481190u, 0u, 1058729343u, 0, SINF_TOLERANCE, 0},
+{185, 1059648963u, 0u, 1058862394u, 0, SINF_TOLERANCE, 0},
+{186, 1059816735u, 0u, 1058994416u, 0, SINF_TOLERANCE, 0},
+{187, 1059984507u, 0u, 1059125396u, 0, SINF_TOLERANCE, 0},
+{188, 1060152279u, 0u, 1059255322u, 0, SINF_TOLERANCE, 0},
+{189, 1060320051u, 0u, 1059384179u, 0, SINF_TOLERANCE, 0},
+{190, 1060487823u, 0u, 1059511956u, 0, SINF_TOLERANCE, 0},
+{191, 1060655596u, 0u, 1059638640u, 0, SINF_TOLERANCE, 0},
+{192, 1060823368u, 0u, 1059764216u, 0, SINF_TOLERANCE, 0},
+{193, 1060991140u, 0u, 1059888674u, 0, SINF_TOLERANCE, 0},
+{194, 1061158912u, 0u, 1060012001u, 0, SINF_TOLERANCE, 0},
+{195, 1061326684u, 0u, 1060134184u, 0, SINF_TOLERANCE, 0},
+{196, 1061494456u, 0u, 1060255211u, 0, SINF_TOLERANCE, 0},
+{197, 1061662228u, 0u, 1060375070u, 0, SINF_TOLERANCE, 0},
+{198, 1061830001u, 0u, 1060493751u, 0, SINF_TOLERANCE, 0},
+{199, 1061997773u, 0u, 1060611238u, 0, SINF_TOLERANCE, 0},
+{200, 1062165545u, 0u, 1060727522u, 0, SINF_TOLERANCE, 0},
+{201, 1062333317u, 0u, 1060842591u, 0, SINF_TOLERANCE, 0},
+{202, 1062501089u, 0u, 1060956434u, 0, SINF_TOLERANCE, 0},
+{203, 1062668861u, 0u, 1061069038u, 0, SINF_TOLERANCE, 0},
+{204, 1062836634u, 0u, 1061180394u, 0, SINF_TOLERANCE, 0},
+{205, 1063004406u, 0u, 1061290489u, 0, SINF_TOLERANCE, 0},
+{206, 1063172178u, 0u, 1061399312u, 0, SINF_TOLERANCE, 0},
+{207, 1063339950u, 0u, 1061506853u, 0, SINF_TOLERANCE, 0},
+{208, 1063507722u, 0u, 1061613100u, 0, SINF_TOLERANCE, 0},
+{209, 1063675494u, 0u, 1061718044u, 0, SINF_TOLERANCE, 0},
+{210, 1063843267u, 0u, 1061821675u, 0, SINF_TOLERANCE, 0},
+{211, 1064011039u, 0u, 1061923980u, 0, SINF_TOLERANCE, 0},
+{212, 1064178811u, 0u, 1062024951u, 0, SINF_TOLERANCE, 0},
+{213, 1064346583u, 0u, 1062124577u, 0, SINF_TOLERANCE, 0},
+{214, 1064514355u, 0u, 1062222847u, 0, SINF_TOLERANCE, 0},
+{215, 1064682127u, 0u, 1062319754u, 0, SINF_TOLERANCE, 0},
+{216, 1064849900u, 0u, 1062415286u, 0, SINF_TOLERANCE, 0},
+{217, 1065017672u, 0u, 1062509434u, 0, SINF_TOLERANCE, 0},
+{218, 1065185444u, 0u, 1062602188u, 0, SINF_TOLERANCE, 0},
+{219, 1065353216u, 0u, 1062693540u, 0, SINF_TOLERANCE, 0},
+{220, 1065437102u, 0u, 1062783481u, 0, SINF_TOLERANCE, 0},
+{221, 1065520988u, 0u, 1062872000u, 0, SINF_TOLERANCE, 0},
+{222, 1065604874u, 0u, 1062959090u, 0, SINF_TOLERANCE, 0},
+{223, 1065688760u, 0u, 1063044742u, 0, SINF_TOLERANCE, 0},
+{224, 1065772646u, 0u, 1063128947u, 0, SINF_TOLERANCE, 0},
+{225, 1065856532u, 0u, 1063211696u, 0, SINF_TOLERANCE, 0},
+{226, 1065940419u, 0u, 1063292983u, 0, SINF_TOLERANCE, 0},
+{227, 1066024305u, 0u, 1063372797u, 0, SINF_TOLERANCE, 0},
+{228, 1066108191u, 0u, 1063451132u, 0, SINF_TOLERANCE, 0},
+{229, 1066192077u, 0u, 1063527979u, 0, SINF_TOLERANCE, 0},
+{230, 1066275963u, 0u, 1063603331u, 0, SINF_TOLERANCE, 0},
+{231, 1066359849u, 0u, 1063677180u, 0, SINF_TOLERANCE, 0},
+{232, 1066443735u, 0u, 1063749519u, 0, SINF_TOLERANCE, 0},
+{233, 1066527621u, 0u, 1063820340u, 0, SINF_TOLERANCE, 0},
+{234, 1066611507u, 0u, 1063889637u, 0, SINF_TOLERANCE, 0},
+{235, 1066695393u, 0u, 1063957404u, 0, SINF_TOLERANCE, 0},
+{236, 1066779279u, 0u, 1064023631u, 0, SINF_TOLERANCE, 0},
+{237, 1066863165u, 0u, 1064088314u, 0, SINF_TOLERANCE, 0},
+{238, 1066947052u, 0u, 1064151447u, 0, SINF_TOLERANCE, 0},
+{239, 3231108068u, 0u, 1065353216u, 0, SINF_TOLERANCE, 0},
+{240, 3217625051u, 0u, 3212836864u, 0, SINF_TOLERANCE, 0},
+{241, 0u, 0u, 0u, 0, SINF_TOLERANCE, 0},
+{242, 1070141403u, 0u, 1065353216u, 0, SINF_TOLERANCE, 0},
+{243, 1083624420u, 0u, 3212836864u, 0, SINF_TOLERANCE, 0},
+{244, 3253731328u, 0u, 1065152422u, 0, SINF_TOLERANCE, 0},
+{245, 3252840038u, 0u, 1020410054u, 0, SINF_TOLERANCE, 0},
+{246, 3251948749u, 0u, 3212747018u, 0, SINF_TOLERANCE, 0},
+{247, 3251057459u, 0u, 1047277214u, 0, SINF_TOLERANCE, 0},
+{248, 3250166170u, 0u, 1064266220u, 0, SINF_TOLERANCE, 0},
+{249, 3249274880u, 0u, 3203496634u, 0, SINF_TOLERANCE, 0},
+{250, 3248383590u, 0u, 3209710816u, 0, SINF_TOLERANCE, 0},
+{251, 3247492301u, 0u, 1060006548u, 0, SINF_TOLERANCE, 0},
+{252, 3246601011u, 0u, 1059281644u, 0, SINF_TOLERANCE, 0},
+{253, 3245028147u, 0u, 3210248930u, 0, SINF_TOLERANCE, 0},
+{254, 3243245568u, 0u, 3201769496u, 0, SINF_TOLERANCE, 0},
+{255, 3241462989u, 0u, 1064581787u, 0, SINF_TOLERANCE, 0},
+{256, 3239680410u, 0u, 1043497670u, 0, SINF_TOLERANCE, 0},
+{257, 3237792973u, 0u, 3212819103u, 0, SINF_TOLERANCE, 0},
+{258, 3234227814u, 0u, 1034562272u, 0, SINF_TOLERANCE, 0},
+{259, 3230662656u, 0u, 1064976234u, 0, SINF_TOLERANCE, 0},
+{260, 3224580915u, 0u, 3198911379u, 0, SINF_TOLERANCE, 0},
+{261, 3213675725u, 0u, 3211011627u, 0, SINF_TOLERANCE, 0},
+{262, 1058642330u, 0u, 1058049129u, 0, SINF_TOLERANCE, 0},
+{263, 1075000115u, 0u, 1061086858u, 0, SINF_TOLERANCE, 0},
+{264, 1082130432u, 0u, 3208756687u, 0, SINF_TOLERANCE, 0},
+{265, 1085695590u, 0u, 3205298621u, 0, SINF_TOLERANCE, 0},
+{266, 1089260749u, 0u, 1063653819u, 0, SINF_TOLERANCE, 0},
+{267, 1091672474u, 0u, 1050894550u, 0, SINF_TOLERANCE, 0},
+{268, 1093455053u, 0u, 3212517027u, 0, SINF_TOLERANCE, 0},
+{269, 1095237632u, 0u, 3179795422u, 0, SINF_TOLERANCE, 0},
+{270, 1097020211u, 0u, 1065320109u, 0, SINF_TOLERANCE, 0},
+{271, 1098802790u, 0u, 3192090686u, 0, SINF_TOLERANCE, 0},
+{272, 1099746509u, 0u, 3211978617u, 0, SINF_TOLERANCE, 0},
+{273, 1100637798u, 0u, 1054795790u, 0, SINF_TOLERANCE, 0},
+{274, 1101529088u, 0u, 1062612757u, 0, SINF_TOLERANCE, 0},
+{275, 1102420378u, 0u, 3206980986u, 0, SINF_TOLERANCE, 0},
+{276, 1103311667u, 0u, 3207282104u, 0, SINF_TOLERANCE, 0},
+{277, 1104202957u, 0u, 1062389233u, 0, SINF_TOLERANCE, 0},
+{278, 1105094246u, 0u, 1055513287u, 0, SINF_TOLERANCE, 0},
+{279, 1105985536u, 0u, 3211847531u, 0, SINF_TOLERANCE, 0},
+{280, 1107800421u, 100135u, 1058518171u, 0, SINF_TOLERANCE, 0},
+{281, 3196650934u, 0u, 3196544125u, 0, SINF_TOLERANCE, 0},
+{282, 3368700125u, 4294964487u, 1046745931u, 0, SINF_TOLERANCE, 0},
+{283, 1224242132u, 0u, 3205123499u, 0, SINF_TOLERANCE, 0},
+{284, 3221027117u, 73066312u, 3211475937u, 0, SINF_TOLERANCE, 0},
+{285, 1198712763u, 0u, 3209750432u, 0, SINF_TOLERANCE, 0},
+{286, 3159309973u, 0u, 3159309611u, 0, SINF_TOLERANCE, 0},
+{287, 954173073u, 0u, 954173073u, 0, SINF_TOLERANCE, 0},
+{288, 3090780435u, 0u, 3090780435u, 0, SINF_TOLERANCE, 0},
+{289, 966554515u, 4294967290u, 966554515u, 0, SINF_TOLERANCE, 0},
+{290, 1312607135u, 47678u, 3202875829u, 0, SINF_TOLERANCE, 0},
+{291, 1166191415u, 0u, 1030573108u, 0, SINF_TOLERANCE, 0},
+{292, 3111900019u, 225u, 3111900019u, 0, SINF_TOLERANCE, 0},
+{293, 1234419246u, 0u, 3212551722u, 0, SINF_TOLERANCE, 0},
+{294, 1302107128u, 4294492157u, 3186571629u, 0, SINF_TOLERANCE, 0},
+{295, 1052801068u, 0u, 1052506080u, 0, SINF_TOLERANCE, 0},
+{296, 1060849628u, 0u, 1059783771u, 0, SINF_TOLERANCE, 0},
+{297, 3484320003u, 0u, 1053149884u, 0, SINF_TOLERANCE, 0},
+{298, 3181522772u, 4294965180u, 3181511666u, 0, SINF_TOLERANCE, 0},
+{299, 882596369u, 7581303u, 882596369u, 0, SINF_TOLERANCE, 0},
+{300, 1167223673u, 0u, 3212309638u, 0, SINF_TOLERANCE, 0},
+{301, 968192794u, 0u, 968192794u, 0, SINF_TOLERANCE, 0},
+{302, 3122346862u, 48u, 3122346861u, 0, SINF_TOLERANCE, 0},
+{303, 1052361612u, 53381624u, 1052096265u, 0, SINF_TOLERANCE, 0},
+{304, 906701409u, 0u, 906701409u, 0, SINF_TOLERANCE, 0},
+{305, 3471653172u, 1621u, 1065331163u, 0, SINF_TOLERANCE, 0},
+{306, 3231467496u, 0u, 1065107411u, 0, SINF_TOLERANCE, 0},
+{307, 1341514497u, 3022046720u, 3196313073u, 0, SINF_TOLERANCE, 0},
+{308, 1272351391u, 4294363968u, 3212112687u, 0, SINF_TOLERANCE, 0},
+{309, 3319724992u, 4294842689u, 1061840534u, 0, SINF_TOLERANCE, 0},
+{310, 917622040u, 603040256u, 917622040u, 0, SINF_TOLERANCE, 0},
+{311, 940236348u, 4294965375u, 940236348u, 0, SINF_TOLERANCE, 0},
+{312, 3251541546u, 0u, 3206746487u, 0, SINF_TOLERANCE, 0},
+{313, 3099843889u, 4294828114u, 3099843889u, 0, SINF_TOLERANCE, 0},
+{314, 3110358400u, 0u, 3110358400u, 0, SINF_TOLERANCE, 0},
+{315, 3371863479u, 0u, 1065248325u, 0, SINF_TOLERANCE, 0},
+{316, 3204069187u, 0u, 3203424208u, 0, SINF_TOLERANCE, 0},
+{317, 1306460502u, 0u, 3212036909u, 0, SINF_TOLERANCE, 0},
+{318, 1197542187u, 0u, 1058620655u, 0, SINF_TOLERANCE, 0},
+{319, 922888249u, 467u, 922888249u, 0, SINF_TOLERANCE, 0},
+{320, 1184239996u, 4294967294u, 1063084528u, 0, SINF_TOLERANCE, 0},
+{321, 1252490238u, 7808u, 3196090424u, 0, SINF_TOLERANCE, 0},
+{322, 1001673627u, 3340510784u, 1001673567u, 0, SINF_TOLERANCE, 0},
+{323, 976098044u, 1357u, 976098043u, 0, SINF_TOLERANCE, 0},
+{324, 941796645u, 0u, 941796645u, 0, SINF_TOLERANCE, 0},
+{325, 3287199470u, 0u, 1042188572u, 0, SINF_TOLERANCE, 0},
+{326, 893184329u, 2485427u, 893184329u, 0, SINF_TOLERANCE, 0},
+{327, 1143233714u, 0u, 3208724747u, 0, SINF_TOLERANCE, 0},
+{328, 1139941253u, 929u, 1054509223u, 0, SINF_TOLERANCE, 0},
+{329, 3143717025u, 4294967290u, 3143716996u, 0, SINF_TOLERANCE, 0},
+{330, 3048866608u, 3978787488u, 3048866608u, 0, SINF_TOLERANCE, 0},
+{331, 3240298487u, 0u, 1060190807u, 0, SINF_TOLERANCE, 0},
+{332, 1288902137u, 0u, 3208146860u, 0, SINF_TOLERANCE, 0},
+{333, 1333134799u, 2211432960u, 3210775633u, 0, SINF_TOLERANCE, 0},
+{334, 1187847971u, 1157221888u, 3212125511u, 0, SINF_TOLERANCE, 0},
+{335, 1038851706u, 2696359424u, 1038817664u, 0, SINF_TOLERANCE, 0},
+{336, 3329354473u, 0u, 3209793216u, 0, SINF_TOLERANCE, 0},
+{337, 3077218579u, 529671904u, 3077218579u, 0, SINF_TOLERANCE, 0},
+{338, 1309289088u, 0u, 1061413332u, 0, SINF_TOLERANCE, 0},
+{339, 3444653659u, 50272864u, 1062129099u, 0, SINF_TOLERANCE, 0},
+{340, 3405585402u, 0u, 1064681582u, 0, SINF_TOLERANCE, 0},
+{341, 3106647724u, 0u, 3106647724u, 0, SINF_TOLERANCE, 0},
+{342, 1106778573u, 4294965325u, 3200840548u, 0, SINF_TOLERANCE, 0},
+{343, 1140567947u, 0u, 1059595752u, 0, SINF_TOLERANCE, 0},
+{344, 1238569473u, 0u, 3203440080u, 0, SINF_TOLERANCE, 0},
+{345, 3154871957u, 39965012u, 3154871846u, 0, SINF_TOLERANCE, 0},
+{346, 1261071232u, 15806u, 1065291875u, 0, SINF_TOLERANCE, 0},
+{347, 1175011025u, 0u, 3191887854u, 0, SINF_TOLERANCE, 0},
+{348, 1082692850u, 187658u, 3211208663u, 0, SINF_TOLERANCE, 0},
+{349, 974547519u, 1563599616u, 974547518u, 0, SINF_TOLERANCE, 0},
+{350, 3058097085u, 0u, 3058097085u, 0, SINF_TOLERANCE, 0},
+{351, 3107252546u, 1u, 3107252546u, 0, SINF_TOLERANCE, 0},
+{352, 3096032662u, 0u, 3096032662u, 0, SINF_TOLERANCE, 0},
+{353, 3197942144u, 0u, 3197782495u, 0, SINF_TOLERANCE, 0},
+{354, 3403348556u, 0u, 3212832252u, 0, SINF_TOLERANCE, 0},
+{355, 3182301130u, 3460013312u, 3182287402u, 0, SINF_TOLERANCE, 0},
+{356, 1136411063u, 82u, 3203097915u, 0, SINF_TOLERANCE, 0},
+{357, 3239231622u, 4294965540u, 3196062732u, 0, SINF_TOLERANCE, 0},
+{358, 3340615780u, 0u, 3207893697u, 0, SINF_TOLERANCE, 0},
+{359, 998567360u, 0u, 998567336u, 0, SINF_TOLERANCE, 0},
+{360, 3417964312u, 1627479168u, 1058566457u, 0, SINF_TOLERANCE, 0},
+{361, 3109481038u, 695u, 3109481038u, 0, SINF_TOLERANCE, 0},
+{362, 1148867223u, 7486109u, 1061481055u, 0, SINF_TOLERANCE, 0},
+{363, 989687421u, 4294414202u, 989687411u, 0, SINF_TOLERANCE, 0},
+{364, 1152956913u, 0u, 1064560276u, 0, SINF_TOLERANCE, 0},
+{365, 892922651u, 4294392467u, 892922651u, 0, SINF_TOLERANCE, 0},
+{366, 1109627625u, 891137088u, 3176661959u, 0, SINF_TOLERANCE, 0},
+{367, 1307091856u, 24u, 1065031078u, 0, SINF_TOLERANCE, 0},
+{368, 1077234132u, 4294967159u, 1050390272u, 0, SINF_TOLERANCE, 0},
+{369, 1142167709u, 13u, 1065037302u, 0, SINF_TOLERANCE, 0},
+{370, 3426232834u, 0u, 1063523570u, 0, SINF_TOLERANCE, 0},
+{371, 3368566779u, 0u, 3210903839u, 0, SINF_TOLERANCE, 0},
+{372, 3030724760u, 4294886457u, 3030724760u, 0, SINF_TOLERANCE, 0},
+{373, 1138741813u, 0u, 1065343110u, 0, SINF_TOLERANCE, 0},
+{374, 982950501u, 0u, 982950499u, 0, SINF_TOLERANCE, 0},
+{375, 1142981585u, 0u, 1064054420u, 0, SINF_TOLERANCE, 0},
+{376, 3347165962u, 0u, 1061794719u, 0, SINF_TOLERANCE, 0},
+{377, 1009535440u, 4293825695u, 1009535232u, 0, SINF_TOLERANCE, 0},
+{378, 3103736980u, 4287990860u, 3103736980u, 0, SINF_TOLERANCE, 0},
+{379, 3126820946u, 2u, 3126820944u, 0, SINF_TOLERANCE, 0},
+{380, 3473956030u, 0u, 1059782658u, 0, SINF_TOLERANCE, 0},
+{381, 3349098349u, 0u, 1056665925u, 0, SINF_TOLERANCE, 0},
+{382, 3152729489u, 0u, 3152729357u, 0, SINF_TOLERANCE, 0},
+{383, 945568720u, 4294963204u, 945568720u, 0, SINF_TOLERANCE, 0},
+{384, 3345489836u, 36u, 1054686633u, 0, SINF_TOLERANCE, 0},
+{385, 940893161u, 394u, 940893161u, 0, SINF_TOLERANCE, 0},
+{386, 976791751u, 4294967292u, 976791750u, 0, SINF_TOLERANCE, 0},
+{387, 1004442355u, 0u, 1004442243u, 0, SINF_TOLERANCE, 0},
+{388, 1108485380u, 0u, 3211460841u, 0, SINF_TOLERANCE, 0},
+{389, 1061834641u, 0u, 1060497016u, 0, SINF_TOLERANCE, 0},
+{390, 3381268392u, 885u, 1065295790u, 0, SINF_TOLERANCE, 0},
+{391, 1087189715u, 0u, 1040449727u, 0, SINF_TOLERANCE, 0},
+{392, 3212952285u, 4294951762u, 3210300573u, 0, SINF_TOLERANCE, 0},
+{393, 1000611335u, 0u, 1000611290u, 0, SINF_TOLERANCE, 0},
+{394, 3466188568u, 0u, 3212367733u, 0, SINF_TOLERANCE, 0},
+{395, 3072456205u, 0u, 3072456205u, 0, SINF_TOLERANCE, 0},
+{396, 3319315516u, 4262338968u, 1063583000u, 0, SINF_TOLERANCE, 0},
+{397, 935938416u, 867u, 935938416u, 0, SINF_TOLERANCE, 0},
+{398, 3212614372u, 1438u, 3210055738u, 0, SINF_TOLERANCE, 0},
+{399, 1315030230u, 4294939294u, 3202347342u, 0, SINF_TOLERANCE, 0},
+{400, 1134593658u, 3712906944u, 1058161630u, 0, SINF_TOLERANCE, 0},
+{401, 977281449u, 0u, 977281448u, 0, SINF_TOLERANCE, 0},
+{402, 1086198791u, 0u, 3198963462u, 0, SINF_TOLERANCE, 0},
+{403, 1255152035u, 0u, 3207185794u, 0, SINF_TOLERANCE, 0},
+{404, 1135271264u, 4294966890u, 1059436789u, 0, SINF_TOLERANCE, 0},
+{405, 1094190727u, 0u, 3210734358u, 0, SINF_TOLERANCE, 0},
+{406, 1294665325u, 0u, 1060438488u, 0, SINF_TOLERANCE, 0},
+{407, 1036608591u, 0u, 1036587330u, 0, SINF_TOLERANCE, 0},
+{408, 3229998064u, 0u, 1063057509u, 0, SINF_TOLERANCE, 0},
+{409, 3439134022u, 0u, 1062436542u, 0, SINF_TOLERANCE, 0},
+{410, 3073083133u, 1094097536u, 3073083133u, 0, SINF_TOLERANCE, 0},
+{411, 1325668223u, 0u, 1061043796u, 0, SINF_TOLERANCE, 0},
+{412, 1092037607u, 0u, 3166699916u, 0, SINF_TOLERANCE, 0},
+{413, 3316278408u, 3774649632u, 1064435105u, 0, SINF_TOLERANCE, 0},
+{414, 3295436768u, 0u, 3187140116u, 0, SINF_TOLERANCE, 0},
+{415, 1151984049u, 0u, 1064532731u, 0, SINF_TOLERANCE, 0},
+{416, 1129287043u, 0u, 1045634997u, 0, SINF_TOLERANCE, 0},
+{417, 1243664530u, 0u, 3207057562u, 0, SINF_TOLERANCE, 0},
+{418, 950829092u, 0u, 950829092u, 0, SINF_TOLERANCE, 0},
+{419, 1115471979u, 0u, 1051883779u, 0, SINF_TOLERANCE, 0},
+{420, 3351092088u, 0u, 1057811134u, 0, SINF_TOLERANCE, 0},
+{421, 3424479544u, 4294963555u, 1057943668u, 0, SINF_TOLERANCE, 0},
+{422, 3241193975u, 0u, 1065333994u, 0, SINF_TOLERANCE, 0},
+{423, 1030934236u, 0u, 1030924918u, 0, SINF_TOLERANCE, 0},
+{424, 3131791114u, 4283960578u, 3131791111u, 0, SINF_TOLERANCE, 0},
+{425, 1025254314u, 0u, 1025251836u, 0, SINF_TOLERANCE, 0},
+{426, 1110545760u, 4294967286u, 1053672489u, 0, SINF_TOLERANCE, 0},
+{427, 3180213739u, 37u, 3180206251u, 0, SINF_TOLERANCE, 0},
+{428, 3361976590u, 0u, 1046550580u, 0, SINF_TOLERANCE, 0},
+{429, 881280146u, 4262747520u, 881280146u, 0, SINF_TOLERANCE, 0},
+{430, 1304154705u, 0u, 1032281728u, 0, SINF_TOLERANCE, 0},
+{431, 3264443610u, 4294967294u, 1065270732u, 0, SINF_TOLERANCE, 0},
+{432, 3374550627u, 0u, 3200851331u, 0, SINF_TOLERANCE, 0},
+{433, 899599265u, 4294967286u, 899599265u, 0, SINF_TOLERANCE, 0},
+{434, 1268194719u, 3962356224u, 1024648486u, 0, SINF_TOLERANCE, 0},
+{435, 1133420220u, 3161371u, 1058660012u, 0, SINF_TOLERANCE, 0},
+{436, 1161858787u, 0u, 1062433973u, 0, SINF_TOLERANCE, 0},
+{437, 3184462258u, 13627054u, 3184439159u, 0, SINF_TOLERANCE, 0},
+{438, 3295996963u, 3846806432u, 1055898143u, 0, SINF_TOLERANCE, 0},
+{439, 1270887389u, 1864u, 1034411919u, 0, SINF_TOLERANCE, 0},
+{440, 3325193181u, 0u, 3207166057u, 0, SINF_TOLERANCE, 0},
+{441, 925657343u, 955232128u, 925657343u, 0, SINF_TOLERANCE, 0},
+{442, 3115275450u, 0u, 3115275450u, 0, SINF_TOLERANCE, 0},
+{443, 3116607482u, 4294967294u, 3116607482u, 0, SINF_TOLERANCE, 0},
+{444, 3187892415u, 0u, 3187868814u, 0, SINF_TOLERANCE, 0},
+{445, 1189120494u, 0u, 1065261777u, 0, SINF_TOLERANCE, 0},
+{446, 889030794u, 0u, 889030794u, 0, SINF_TOLERANCE, 0},
+{447, 1323529208u, 0u, 1063714250u, 0, SINF_TOLERANCE, 0},
+{448, 3465768388u, 0u, 1048891935u, 0, SINF_TOLERANCE, 0},
+{449, 3426099899u, 87u, 1060479363u, 0, SINF_TOLERANCE, 0},
+{450, 3224857113u, 4290382691u, 3196806602u, 0, SINF_TOLERANCE, 0},
+{451, 1065798296u, 0u, 1063154404u, 0, SINF_TOLERANCE, 0},
+{452, 3328989444u, 0u, 3204189613u, 0, SINF_TOLERANCE, 0},
+{453, 3357819026u, 0u, 1050303171u, 0, SINF_TOLERANCE, 0},
+{454, 1273397670u, 0u, 3212832425u, 0, SINF_TOLERANCE, 0},
+{455, 3424831780u, 414735168u, 1018696053u, 0, SINF_TOLERANCE, 0},
+{456, 1257596246u, 4264851904u, 3212833257u, 0, SINF_TOLERANCE, 0},
+{457, 1051773536u, 0u, 1051544673u, 0, SINF_TOLERANCE, 0},
+{458, 3294752507u, 0u, 1063083778u, 0, SINF_TOLERANCE, 0},
+{459, 3424848725u, 0u, 1038948225u, 0, SINF_TOLERANCE, 0},
+{460, 1090870906u, 4294966393u, 1063445015u, 0, SINF_TOLERANCE, 0},
+{461, 1227582289u, 147011u, 3198518934u, 0, SINF_TOLERANCE, 0},
+{462, 1272325814u, 0u, 1059673072u, 0, SINF_TOLERANCE, 0},
+{463, 3359508271u, 0u, 1065326721u, 0, SINF_TOLERANCE, 0},
+{464, 1137854355u, 4294941607u, 3201176570u, 0, SINF_TOLERANCE, 0},
+{465, 3440773058u, 0u, 3209718873u, 0, SINF_TOLERANCE, 0},
+{466, 3101598400u, 0u, 3101598400u, 0, SINF_TOLERANCE, 0},
+{467, 3451216836u, 4294896064u, 1052110141u, 0, SINF_TOLERANCE, 0},
+{468, 3437062994u, 0u, 1057841295u, 0, SINF_TOLERANCE, 0},
+{469, 1131196082u, 3743u, 3210719513u, 0, SINF_TOLERANCE, 0},
+{470, 3177294154u, 63027320u, 3177286674u, 0, SINF_TOLERANCE, 0},
+{471, 3258097678u, 449173056u, 3206530664u, 0, SINF_TOLERANCE, 0},
+{472, 3460915348u, 356647u, 1064413669u, 0, SINF_TOLERANCE, 0},
+{473, 3303035472u, 0u, 1059674673u, 0, SINF_TOLERANCE, 0},
+{474, 1053698677u, 4294966907u, 1053336503u, 0, SINF_TOLERANCE, 0},
+{475, 3396166221u, 83688u, 3212041622u, 0, SINF_TOLERANCE, 0},
+{476, 3037541131u, 5u, 3037541131u, 0, SINF_TOLERANCE, 0},
+{477, 3458934263u, 0u, 1057443493u, 0, SINF_TOLERANCE, 0},
+{478, 1065761827u, 4294943781u, 1063118168u, 0, SINF_TOLERANCE, 0},
+{479, 3025843188u, 0u, 3025843188u, 0, SINF_TOLERANCE, 0},
+{480, 926665223u, 0u, 926665223u, 0, SINF_TOLERANCE, 0},
+{481, 1199816046u, 0u, 1061346174u, 0, SINF_TOLERANCE, 0},
+{482, 3333779015u, 0u, 3203337443u, 0, SINF_TOLERANCE, 0},
+{483, 948398145u, 4294967288u, 948398145u, 0, SINF_TOLERANCE, 0},
+{484, 3054021468u, 23933390u, 3054021468u, 0, SINF_TOLERANCE, 0},
+{485, 1080781593u, 224021u, 3204639602u, 0, SINF_TOLERANCE, 0},
+{486, 3164749613u, 0u, 3164748918u, 0, SINF_TOLERANCE, 0},
+{487, 3235326590u, 26828788u, 3201986014u, 0, SINF_TOLERANCE, 0},
+{488, 3118883815u, 0u, 3118883815u, 0, SINF_TOLERANCE, 0},
+{489, 965378004u, 146193824u, 965378004u, 0, SINF_TOLERANCE, 0},
+{490, 3226990408u, 45u, 1047285903u, 0, SINF_TOLERANCE, 0},
+{491, 3117098218u, 115u, 3117098218u, 0, SINF_TOLERANCE, 0},
+{492, 1283624229u, 0u, 1050764752u, 0, SINF_TOLERANCE, 0},
+{493, 970649315u, 3u, 970649315u, 0, SINF_TOLERANCE, 0},
+{494, 959776291u, 4294967028u, 959776291u, 0, SINF_TOLERANCE, 0},
+{495, 3341117305u, 4294966405u, 3210910429u, 0, SINF_TOLERANCE, 0},
+{496, 1270734970u, 4294829480u, 1033854408u, 0, SINF_TOLERANCE, 0},
+{497, 3454816067u, 0u, 1037854899u, 0, SINF_TOLERANCE, 0},
+{498, 917206623u, 7364u, 917206623u, 0, SINF_TOLERANCE, 0},
+{499, 1106502045u, 126247200u, 3209516256u, 0, SINF_TOLERANCE, 0},
+{500, 1157598381u, 4294964293u, 1060383409u, 0, SINF_TOLERANCE, 0},
+{501, 3335234513u, 0u, 1038672048u, 0, SINF_TOLERANCE, 0},
+{502, 1279489061u, 0u, 3212691844u, 0, SINF_TOLERANCE, 0},
+{503, 3157416480u, 624023680u, 3157416249u, 0, SINF_TOLERANCE, 0},
+{504, 3143920719u, 0u, 3143920689u, 0, SINF_TOLERANCE, 0},
+{505, 1233171235u, 0u, 1059316879u, 0, SINF_TOLERANCE, 0},
+{506, 1148920078u, 0u, 3208014767u, 0, SINF_TOLERANCE, 0},
+{507, 3064988156u, 4294967292u, 3064988156u, 0, SINF_TOLERANCE, 0},
+{508, 3083619260u, 2484u, 3083619260u, 0, SINF_TOLERANCE, 0},
+{509, 1109198803u, 431095u, 1065351954u, 0, SINF_TOLERANCE, 0},
+{510, 3219949483u, 0u, 3212196888u, 0, SINF_TOLERANCE, 0},
+{511, 3361149474u, 4293077090u, 3205574938u, 0, SINF_TOLERANCE, 0},
+{512, 1207502108u, 4292985650u, 3191132022u, 0, SINF_TOLERANCE, 0},
+{513, 1000014431u, 0u, 1000014393u, 0, SINF_TOLERANCE, 0},
+{514, 3161756316u, 0u, 3161755721u, 0, SINF_TOLERANCE, 0},
+{515, 3160728744u, 4293625597u, 3160728256u, 0, SINF_TOLERANCE, 0},
+{516, 1234530539u, 3u, 3207290757u, 0, SINF_TOLERANCE, 0},
+{517, 1017843965u, 40165u, 1017843150u, 0, SINF_TOLERANCE, 0},
+{518, 951862956u, 7732u, 951862956u, 0, SINF_TOLERANCE, 0},
+{519, 3306328852u, 87u, 3212836506u, 0, SINF_TOLERANCE, 0},
+{520, 1291910469u, 183319u, 3202624350u, 0, SINF_TOLERANCE, 0},
+{521, 3027442905u, 7942u, 3027442905u, 0, SINF_TOLERANCE, 0},
+{522, 1131927531u, 0u, 1051452936u, 0, SINF_TOLERANCE, 0},
+{523, 3449879391u, 0u, 3206440668u, 0, SINF_TOLERANCE, 0},
+{524, 970094304u, 4294911386u, 970094304u, 0, SINF_TOLERANCE, 0},
+{525, 1125551064u, 4294949017u, 3195897312u, 0, SINF_TOLERANCE, 0},
+{526, 3427296372u, 3784252480u, 1024392995u, 0, SINF_TOLERANCE, 0},
+{527, 1198917460u, 2607027968u, 1059107199u, 0, SINF_TOLERANCE, 0},
+{528, 3201603336u, 0u, 3201206444u, 0, SINF_TOLERANCE, 0},
+{529, 3114686212u, 1328603904u, 3114686212u, 0, SINF_TOLERANCE, 0},
+{530, 921940707u, 0u, 921940707u, 0, SINF_TOLERANCE, 0},
+{531, 1091906532u, 0u, 1037018238u, 0, SINF_TOLERANCE, 0},
+{532, 3393557778u, 4293570247u, 1050855630u, 0, SINF_TOLERANCE, 0},
+{533, 1276853215u, 0u, 1050263660u, 0, SINF_TOLERANCE, 0},
+{534, 3462778440u, 4294884341u, 1042079492u, 0, SINF_TOLERANCE, 0},
+{535, 3360170117u, 0u, 1061155323u, 0, SINF_TOLERANCE, 0},
+{536, 3224245428u, 4294967170u, 3201401572u, 0, SINF_TOLERANCE, 0},
+{537, 1120124467u, 352u, 3203228560u, 0, SINF_TOLERANCE, 0},
+{538, 1064364381u, 0u, 1062135066u, 0, SINF_TOLERANCE, 0},
+{539, 1268744779u, 4294952694u, 3196363019u, 0, SINF_TOLERANCE, 0},
+{540, 1165195428u, 4292538760u, 3171858671u, 0, SINF_TOLERANCE, 0},
+{541, 3044092739u, 30u, 3044092739u, 0, SINF_TOLERANCE, 0},
+{542, 3149469534u, 47144136u, 3149469469u, 0, SINF_TOLERANCE, 0},
+{543, 3247790039u, 0u, 1043923194u, 0, SINF_TOLERANCE, 0},
+{544, 3215244648u, 4u, 3212165907u, 0, SINF_TOLERANCE, 0},
+{545, 3095275931u, 0u, 3095275931u, 0, SINF_TOLERANCE, 0},
+{546, 3059688264u, 77u, 3059688264u, 0, SINF_TOLERANCE, 0},
+{547, 1212717473u, 0u, 3212767710u, 0, SINF_TOLERANCE, 0},
+{548, 3275973009u, 3930410816u, 3205565626u, 0, SINF_TOLERANCE, 0},
+{549, 3028857014u, 0u, 3028857014u, 0, SINF_TOLERANCE, 0},
+{550, 3391162308u, 129212984u, 1063347857u, 0, SINF_TOLERANCE, 0},
+{551, 1044867873u, 4294528232u, 1044785421u, 0, SINF_TOLERANCE, 0},
+{552, 1089986803u, 3370664576u, 1065255878u, 0, SINF_TOLERANCE, 0},
+{553, 1296314700u, 0u, 1055078752u, 0, SINF_TOLERANCE, 0},
+{554, 1251462432u, 0u, 1062872862u, 0, SINF_TOLERANCE, 0},
+{555, 3485236902u, 0u, 1065341790u, 0, SINF_TOLERANCE, 0},
+{556, 3262169538u, 19958524u, 1056243498u, 0, SINF_TOLERANCE, 0},
+{557, 3080852256u, 0u, 3080852256u, 0, SINF_TOLERANCE, 0},
+{558, 1022211242u, 0u, 1022209056u, 0, SINF_TOLERANCE, 0},
+{559, 884661176u, 0u, 884661176u, 0, SINF_TOLERANCE, 0},
+{560, 3071422941u, 4294967172u, 3071422941u, 0, SINF_TOLERANCE, 0},
+{561, 989762529u, 4294733601u, 989762519u, 0, SINF_TOLERANCE, 0},
+{562, 1295475718u, 0u, 3197286731u, 0, SINF_TOLERANCE, 0},
+{563, 1002632518u, 4294950696u, 1002632443u, 0, SINF_TOLERANCE, 0},
+{564, 3404372005u, 3938008096u, 1065220186u, 0, SINF_TOLERANCE, 0},
+{565, 3158912530u, 0u, 3158912199u, 0, SINF_TOLERANCE, 0},
+{566, 1125800069u, 4294967259u, 3200976549u, 0, SINF_TOLERANCE, 0},
+{567, 3138037576u, 0u, 3138037569u, 0, SINF_TOLERANCE, 0},
+{568, 3108384823u, 268832992u, 3108384823u, 0, SINF_TOLERANCE, 0},
+{569, 999985470u, 4282999218u, 999985432u, 0, SINF_TOLERANCE, 0},
+{570, 1189421739u, 0u, 3205184098u, 0, SINF_TOLERANCE, 0},
+{571, 3075182644u, 0u, 3075182644u, 0, SINF_TOLERANCE, 0},
+{572, 3028099649u, 4292241163u, 3028099649u, 0, SINF_TOLERANCE, 0},
+{573, 3132541814u, 4077666864u, 3132541810u, 0, SINF_TOLERANCE, 0},
+{574, 1164046161u, 4139845440u, 1062835605u, 0, SINF_TOLERANCE, 0},
+{575, 1292596266u, 0u, 3209419523u, 0, SINF_TOLERANCE, 0},
+{576, 3469748379u, 4279587928u, 3205576348u, 0, SINF_TOLERANCE, 0},
+{577, 1314644642u, 0u, 1049458564u, 0, SINF_TOLERANCE, 0},
+{578, 3399813173u, 0u, 3205386570u, 0, SINF_TOLERANCE, 0},
+{579, 948775569u, 2159002624u, 948775569u, 0, SINF_TOLERANCE, 0},
+{580, 1034611395u, 0u, 1034598397u, 0, SINF_TOLERANCE, 0},
+{581, 3489122735u, 4294428604u, 3205374915u, 0, SINF_TOLERANCE, 0},
+{582, 1181604787u, 4294717096u, 3211889820u, 0, SINF_TOLERANCE, 0},
+{583, 3059042077u, 0u, 3059042077u, 0, SINF_TOLERANCE, 0},
+{584, 1043691622u, 4288164501u, 1043629469u, 0, SINF_TOLERANCE, 0},
+{585, 1314588083u, 0u, 1064881256u, 0, SINF_TOLERANCE, 0},
+{586, 3141533334u, 0u, 3141533316u, 0, SINF_TOLERANCE, 0},
+{587, 3157534378u, 3899913312u, 3157534140u, 0, SINF_TOLERANCE, 0},
+{588, 3400949680u, 0u, 1065322477u, 0, SINF_TOLERANCE, 0},
+{589, 3365581801u, 9596u, 3212766928u, 0, SINF_TOLERANCE, 0},
+{590, 1110424755u, 0u, 3175390686u, 0, SINF_TOLERANCE, 0},
+{591, 3189917167u, 0u, 3189872712u, 0, SINF_TOLERANCE, 0},
+{592, 969804941u, 4294836255u, 969804941u, 0, SINF_TOLERANCE, 0},
+{593, 1139120919u, 4294967176u, 1057188989u, 0, SINF_TOLERANCE, 0},
+{594, 934308144u, 0u, 934308144u, 0, SINF_TOLERANCE, 0},
+{595, 1220524226u, 1440u, 3200362112u, 0, SINF_TOLERANCE, 0},
+{596, 3162548604u, 3394333056u, 3162548257u, 0, SINF_TOLERANCE, 0},
+{597, 3382391700u, 4294966243u, 3212754531u, 0, SINF_TOLERANCE, 0},
+{598, 1156767533u, 7u, 1065268032u, 0, SINF_TOLERANCE, 0},
+{599, 3079222483u, 4294963487u, 3079222483u, 0, SINF_TOLERANCE, 0},
+{600, 994934087u, 0u, 994934065u, 0, SINF_TOLERANCE, 0},
+{601, 3185240099u, 122u, 3185212797u, 0, SINF_TOLERANCE, 0},
+{602, 3479873563u, 3288004u, 3209729459u, 0, SINF_TOLERANCE, 0},
+{603, 3424264117u, 4203174416u, 1026119980u, 0, SINF_TOLERANCE, 0},
+{604, 3228365887u, 275492u, 1057499407u, 0, SINF_TOLERANCE, 0},
+{605, 1035909900u, 4101891u, 1035891839u, 0, SINF_TOLERANCE, 0},
+{606, 3024951184u, 3626688u, 3024951184u, 0, SINF_TOLERANCE, 0},
+{607, 1212129651u, 0u, 3199599784u, 0, SINF_TOLERANCE, 0},
+{608, 3125775254u, 0u, 3125775253u, 0, SINF_TOLERANCE, 0},
+{609, 1037464105u, 0u, 1037438437u, 0, SINF_TOLERANCE, 0},
+{610, 1311706596u, 6702361u, 3209240801u, 0, SINF_TOLERANCE, 0},
+{611, 918212457u, 0u, 918212457u, 0, SINF_TOLERANCE, 0},
+{612, 1337315179u, 3421796288u, 1065124759u, 0, SINF_TOLERANCE, 0},
+{613, 1131358407u, 4294955130u, 1053199838u, 0, SINF_TOLERANCE, 0},
+{614, 1156517523u, 4294914801u, 1060309074u, 0, SINF_TOLERANCE, 0},
+{615, 3210802820u, 0u, 3208977252u, 0, SINF_TOLERANCE, 0},
+{616, 3337499209u, 621819u, 3160894060u, 0, SINF_TOLERANCE, 0},
+{617, 3468429030u, 4294967266u, 3212492606u, 0, SINF_TOLERANCE, 0},
+{618, 3253515800u, 28517u, 1064805533u, 0, SINF_TOLERANCE, 0},
+{619, 3055299953u, 0u, 3055299953u, 0, SINF_TOLERANCE, 0},
+{620, 959956547u, 0u, 959956547u, 0, SINF_TOLERANCE, 0},
+{621, 3425290480u, 461u, 3182677775u, 0, SINF_TOLERANCE, 0},
+{622, 1039917375u, 117u, 1039875792u, 0, SINF_TOLERANCE, 0},
+{623, 3220979495u, 4234725636u, 3211513265u, 0, SINF_TOLERANCE, 0},
+{624, 1311016004u, 4294941884u, 1064704129u, 0, SINF_TOLERANCE, 0},
+{625, 1128016396u, 27u, 3198585809u, 0, SINF_TOLERANCE, 0},
+{626, 3210335769u, 0u, 3208674258u, 0, SINF_TOLERANCE, 0},
+{627, 3022705759u, 4287084865u, 3022705759u, 0, SINF_TOLERANCE, 0},
+{628, 1206054701u, 0u, 1065236418u, 0, SINF_TOLERANCE, 0},
+{629, 3144504834u, 3170u, 3144504800u, 0, SINF_TOLERANCE, 0},
+{630, 1213609983u, 0u, 1065160120u, 0, SINF_TOLERANCE, 0},
+{631, 1246902946u, 0u, 1057771531u, 0, SINF_TOLERANCE, 0},
+{632, 995850843u, 3845036544u, 995850816u, 0, SINF_TOLERANCE, 0},
+{633, 3362082828u, 4294328268u, 3210050755u, 0, SINF_TOLERANCE, 0},
+{634, 1029480631u, 0u, 1029473640u, 0, SINF_TOLERANCE, 0},
+{635, 3153568584u, 0u, 3153568430u, 0, SINF_TOLERANCE, 0},
+{636, 3384988527u, 0u, 3162719737u, 0, SINF_TOLERANCE, 0},
+{637, 1317696241u, 0u, 1061478077u, 0, SINF_TOLERANCE, 0},
+{638, 3235395924u, 249u, 3202981334u, 0, SINF_TOLERANCE, 0},
+{639, 3341877624u, 0u, 1061330742u, 0, SINF_TOLERANCE, 0},
+{640, 1228636133u, 0u, 3212672750u, 0, SINF_TOLERANCE, 0},
+{641, 3161654634u, 4294939932u, 3161654050u, 0, SINF_TOLERANCE, 0},
+{642, 3162655243u, 4294964738u, 3162654883u, 0, SINF_TOLERANCE, 0},
+{643, 1207246237u, 0u, 3211137088u, 0, SINF_TOLERANCE, 0},
+{644, 1165476654u, 4294877038u, 3203498092u, 0, SINF_TOLERANCE, 0},
+{645, 1215278023u, 0u, 1064498991u, 0, SINF_TOLERANCE, 0},
+{646, 1017239798u, 4167373560u, 1017239108u, 0, SINF_TOLERANCE, 0},
+{647, 1149651309u, 0u, 3187990807u, 0, SINF_TOLERANCE, 0},
+{648, 1111943722u, 0u, 3204639422u, 0, SINF_TOLERANCE, 0},
+{649, 1189849849u, 4293652457u, 3182466673u, 0, SINF_TOLERANCE, 0},
+{650, 3204848496u, 0u, 3204451995u, 0, SINF_TOLERANCE, 0},
+{651, 1249758327u, 0u, 1057783887u, 0, SINF_TOLERANCE, 0},
+{652, 3092982276u, 4065500752u, 3092982276u, 0, SINF_TOLERANCE, 0},
+{653, 1168098747u, 1063712256u, 3212411223u, 0, SINF_TOLERANCE, 0},
+{654, 892549317u, 13301u, 892549317u, 0, SINF_TOLERANCE, 0},
+{655, 3301009024u, 4286178976u, 3212828669u, 0, SINF_TOLERANCE, 0},
+{656, 3233089227u, 204399u, 1058407346u, 0, SINF_TOLERANCE, 0},
+{657, 3218245284u, 1767132u, 3212791026u, 0, SINF_TOLERANCE, 0},
+{658, 3215981890u, 4294967286u, 3212516029u, 0, SINF_TOLERANCE, 0},
+{659, 1266687209u, 0u, 3210720211u, 0, SINF_TOLERANCE, 0},
+{660, 3487959775u, 4294948774u, 1064739176u, 0, SINF_TOLERANCE, 0},
+{661, 943645710u, 0u, 943645710u, 0, SINF_TOLERANCE, 0},
+{662, 3345065699u, 4294966959u, 1059625963u, 0, SINF_TOLERANCE, 0},
+{663, 935847271u, 1u, 935847271u, 0, SINF_TOLERANCE, 0},
+{664, 3410336089u, 47u, 3187177121u, 0, SINF_TOLERANCE, 0},
+{665, 3082940740u, 1562501120u, 3082940740u, 0, SINF_TOLERANCE, 0},
+{666, 1141063391u, 5507u, 3198746667u, 0, SINF_TOLERANCE, 0},
+{667, 3059263153u, 0u, 3059263153u, 0, SINF_TOLERANCE, 0},
+{668, 3353679791u, 0u, 3208816436u, 0, SINF_TOLERANCE, 0},
+{669, 1001823878u, 0u, 1001823816u, 0, SINF_TOLERANCE, 0},
+{670, 1009130212u, 0u, 1009130026u, 0, SINF_TOLERANCE, 0},
+{671, 3367127535u, 0u, 3207134818u, 0, SINF_TOLERANCE, 0},
+{672, 1032920919u, 3981458912u, 1032912962u, 0, SINF_TOLERANCE, 0},
+{673, 3281952870u, 0u, 3175316857u, 0, SINF_TOLERANCE, 0},
+{674, 1237868497u, 0u, 1051014031u, 0, SINF_TOLERANCE, 0},
+{675, 1153753924u, 4294958733u, 3211468600u, 0, SINF_TOLERANCE, 0},
+{676, 1120261759u, 0u, 3212822605u, 0, SINF_TOLERANCE, 0},
+{677, 3226328360u, 4294623870u, 1033471174u, 0, SINF_TOLERANCE, 0},
+{678, 3349595986u, 4294967271u, 3210079317u, 0, SINF_TOLERANCE, 0},
+{679, 3166889490u, 4294965026u, 3166888285u, 0, SINF_TOLERANCE, 0},
+{680, 1087750238u, 16u, 1053147309u, 0, SINF_TOLERANCE, 0},
+{681, 3121620061u, 4294773019u, 3121620061u, 0, SINF_TOLERANCE, 0},
+{682, 1066116543u, 0u, 1063458849u, 0, SINF_TOLERANCE, 0},
+{683, 3210898034u, 0u, 3209037800u, 0, SINF_TOLERANCE, 0},
+{684, 3051923237u, 4294697573u, 3051923237u, 0, SINF_TOLERANCE, 0},
+{685, 1030612298u, 4294908239u, 1030603534u, 0, SINF_TOLERANCE, 0},
+{686, 1186234578u, 0u, 1063804762u, 0, SINF_TOLERANCE, 0},
+{687, 1331680743u, 0u, 3209445822u, 0, SINF_TOLERANCE, 0},
+{688, 3060774997u, 2318310656u, 3060774997u, 0, SINF_TOLERANCE, 0},
+{689, 887589411u, 141578704u, 887589411u, 0, SINF_TOLERANCE, 0},
+{690, 1045232522u, 4294967290u, 1045142984u, 0, SINF_TOLERANCE, 0},
+{691, 3119858470u, 0u, 3119858469u, 0, SINF_TOLERANCE, 0},
+{692, 3349432725u, 0u, 3209985951u, 0, SINF_TOLERANCE, 0},
+{693, 912423027u, 0u, 912423027u, 0, SINF_TOLERANCE, 0},
+{694, 3228795133u, 4294967132u, 1058904161u, 0, SINF_TOLERANCE, 0},
+{695, 3194674746u, 0u, 3194540142u, 0, SINF_TOLERANCE, 0},
+{696, 3296784303u, 4294967098u, 3210593540u, 0, SINF_TOLERANCE, 0},
+{697, 965402291u, 0u, 965402291u, 0, SINF_TOLERANCE, 0},
+{698, 3388153589u, 4246639564u, 3205467070u, 0, SINF_TOLERANCE, 0},
+{699, 1133410485u, 4294951516u, 1062143430u, 0, SINF_TOLERANCE, 0},
+{700, 3136790322u, 7u, 3136790312u, 0, SINF_TOLERANCE, 0},
+{701, 3369970587u, 0u, 3212160316u, 0, SINF_TOLERANCE, 0},
+{702, 1270451568u, 0u, 1061894833u, 0, SINF_TOLERANCE, 0},
+{703, 989498922u, 0u, 989498912u, 0, SINF_TOLERANCE, 0},
+{704, 1280215674u, 0u, 3201629248u, 0, SINF_TOLERANCE, 0},
+{705, 1171873518u, 0u, 1052635782u, 0, SINF_TOLERANCE, 0},
+{706, 3298258100u, 0u, 1064538056u, 0, SINF_TOLERANCE, 0},
+{707, 3415208824u, 0u, 1063436503u, 0, SINF_TOLERANCE, 0},
+{708, 1001897182u, 0u, 1001897119u, 0, SINF_TOLERANCE, 0},
+{709, 3152777939u, 4294967281u, 3152777806u, 0, SINF_TOLERANCE, 0},
+{710, 985903305u, 4294945424u, 985903300u, 0, SINF_TOLERANCE, 0},
+{711, 3357328848u, 0u, 1040804283u, 0, SINF_TOLERANCE, 0},
+{712, 982612185u, 0u, 982612183u, 0, SINF_TOLERANCE, 0},
+{713, 3267868136u, 136421u, 1059068932u, 0, SINF_TOLERANCE, 0},
+{714, 3319048157u, 7150u, 3197369568u, 0, SINF_TOLERANCE, 0},
+{715, 1144755661u, 0u, 1056274450u, 0, SINF_TOLERANCE, 0},
+{716, 898467286u, 0u, 898467286u, 0, SINF_TOLERANCE, 0},
+{717, 3301461672u, 1119632u, 3195609227u, 0, SINF_TOLERANCE, 0},
+{718, 3364525678u, 0u, 1048350503u, 0, SINF_TOLERANCE, 0},
+{719, 931441127u, 285u, 931441127u, 0, SINF_TOLERANCE, 0},
+{720, 3146660041u, 0u, 3146660012u, 0, SINF_TOLERANCE, 0},
+{721, 3467121799u, 0u, 3191624506u, 0, SINF_TOLERANCE, 0},
+{722, 1151257041u, 0u, 1063553242u, 0, SINF_TOLERANCE, 0},
+{723, 3097873255u, 4294967295u, 3097873255u, 0, SINF_TOLERANCE, 0},
+{724, 3130670309u, 0u, 3130670307u, 0, SINF_TOLERANCE, 0},
+{725, 1017573824u, 0u, 1017573067u, 0, SINF_TOLERANCE, 0},
+{726, 1258369714u, 3364363264u, 1063753689u, 0, SINF_TOLERANCE, 0},
+{727, 1216602683u, 4294468761u, 1057835366u, 0, SINF_TOLERANCE, 0},
+{728, 3297265739u, 228335u, 1040265730u, 0, SINF_TOLERANCE, 0},
+{729, 1071940738u, 4294963632u, 1064968741u, 0, SINF_TOLERANCE, 0},
+{730, 922601356u, 4294937447u, 922601356u, 0, SINF_TOLERANCE, 0},
+{731, 3462285635u, 4085532736u, 3194013834u, 0, SINF_TOLERANCE, 0},
+{732, 3357177805u, 5u, 3208612869u, 0, SINF_TOLERANCE, 0},
+{733, 3049120080u, 0u, 3049120080u, 0, SINF_TOLERANCE, 0},
+{734, 1153863660u, 0u, 3211361779u, 0, SINF_TOLERANCE, 0},
+{735, 3034243695u, 0u, 3034243695u, 0, SINF_TOLERANCE, 0},
+{736, 1249365132u, 4294967060u, 1061469301u, 0, SINF_TOLERANCE, 0},
+{737, 3046215730u, 0u, 3046215730u, 0, SINF_TOLERANCE, 0},
+{738, 3047251716u, 8u, 3047251716u, 0, SINF_TOLERANCE, 0},
+{739, 3131219358u, 2355170688u, 3131219355u, 0, SINF_TOLERANCE, 0},
+{740, 3222096285u, 59453u, 3209548358u, 0, SINF_TOLERANCE, 0},
+{741, 1297708818u, 0u, 1057704214u, 0, SINF_TOLERANCE, 0},
+{742, 3345532722u, 4293531291u, 3212744575u, 0, SINF_TOLERANCE, 0},
+{743, 3418753236u, 4002743296u, 3212231875u, 0, SINF_TOLERANCE, 0},
+{744, 1277417964u, 1103002624u, 1054784824u, 0, SINF_TOLERANCE, 0},
+{745, 987577257u, 1370u, 987577250u, 0, SINF_TOLERANCE, 0},
+{746, 3161606610u, 0u, 3161606031u, 0, SINF_TOLERANCE, 0},
+{747, 888030585u, 0u, 888030585u, 0, SINF_TOLERANCE, 0},
+{748, 1043442869u, 4294963715u, 1043384531u, 0, SINF_TOLERANCE, 0},
+{749, 3320923228u, 3214934912u, 1065298241u, 0, SINF_TOLERANCE, 0},
+{750, 1337400405u, 418188288u, 3194509316u, 0, SINF_TOLERANCE, 0},
+{751, 3400348640u, 0u, 1036996135u, 0, SINF_TOLERANCE, 0},
+{752, 1250249095u, 1u, 1049963674u, 0, SINF_TOLERANCE, 0},
+{753, 3284411233u, 7805u, 3201435394u, 0, SINF_TOLERANCE, 0},
+{754, 3020883322u, 0u, 3020883322u, 0, SINF_TOLERANCE, 0},
+{755, 1215968622u, 2531374080u, 3211232354u, 0, SINF_TOLERANCE, 0},
+{756, 3202319550u, 0u, 3201858668u, 0, SINF_TOLERANCE, 0},
+{757, 3061638260u, 0u, 3061638260u, 0, SINF_TOLERANCE, 0},
+{758, 1025404104u, 1u, 1025401516u, 0, SINF_TOLERANCE, 0},
+{759, 3138086437u, 0u, 3138086430u, 0, SINF_TOLERANCE, 0},
+{760, 3091024506u, 3752313152u, 3091024506u, 0, SINF_TOLERANCE, 0},
+{761, 3362748242u, 4294517284u, 1057934339u, 0, SINF_TOLERANCE, 0},
+{762, 3099671635u, 4294967295u, 3099671635u, 0, SINF_TOLERANCE, 0},
+{763, 3068014841u, 0u, 3068014841u, 0, SINF_TOLERANCE, 0},
+{764, 1252237719u, 105u, 3212473786u, 0, SINF_TOLERANCE, 0},
+{765, 3327895594u, 517257u, 3205339525u, 0, SINF_TOLERANCE, 0},
+{766, 3082454432u, 0u, 3082454432u, 0, SINF_TOLERANCE, 0},
+{767, 3396161504u, 16393u, 1037999699u, 0, SINF_TOLERANCE, 0},
+{768, 1099710167u, 0u, 3212307285u, 0, SINF_TOLERANCE, 0},
+{769, 1157186482u, 109233848u, 1060562703u, 0, SINF_TOLERANCE, 0},
+{770, 1282110851u, 0u, 1056730550u, 0, SINF_TOLERANCE, 0},
+{771, 3477008113u, 3797391872u, 3212786491u, 0, SINF_TOLERANCE, 0},
+{772, 3292127294u, 4282395772u, 3210643173u, 0, SINF_TOLERANCE, 0},
+{773, 1123357102u, 4294966999u, 3159060470u, 0, SINF_TOLERANCE, 0},
+{774, 1106837025u, 0u, 3197325155u, 0, SINF_TOLERANCE, 0},
+{775, 1049949008u, 230u, 1049811896u, 0, SINF_TOLERANCE, 0},
+{776, 1253017688u, 0u, 3211136840u, 0, SINF_TOLERANCE, 0},
+{777, 1108543194u, 4294966999u, 3209632139u, 0, SINF_TOLERANCE, 0},
+{778, 3087985411u, 1700586u, 3087985411u, 0, SINF_TOLERANCE, 0},
+{779, 3163283126u, 2976129280u, 3163282681u, 0, SINF_TOLERANCE, 0},
+{780, 1160162706u, 14164775u, 1052133849u, 0, SINF_TOLERANCE, 0},
+{781, 3305715025u, 0u, 3206092235u, 0, SINF_TOLERANCE, 0},
+{782, 1266928623u, 0u, 1060953065u, 0, SINF_TOLERANCE, 0},
+{783, 3025340297u, 43483u, 3025340297u, 0, SINF_TOLERANCE, 0},
+{784, 3438080027u, 0u, 1048692127u, 0, SINF_TOLERANCE, 0},
+{785, 3344574751u, 0u, 1062946039u, 0, SINF_TOLERANCE, 0},
+{786, 1152416724u, 0u, 3212200670u, 0, SINF_TOLERANCE, 0},
+{787, 1218239308u, 161u, 1064099748u, 0, SINF_TOLERANCE, 0},
+{788, 3263310567u, 0u, 3209093074u, 0, SINF_TOLERANCE, 0},
+{789, 3041998669u, 2782u, 3041998669u, 0, SINF_TOLERANCE, 0},
+{790, 1000313118u, 0u, 1000313077u, 0, SINF_TOLERANCE, 0},
+{791, 972485427u, 131u, 972485426u, 0, SINF_TOLERANCE, 0},
+{792, 3290264612u, 137u, 3212790164u, 0, SINF_TOLERANCE, 0},
+{793, 3222106584u, 18249u, 3209523821u, 0, SINF_TOLERANCE, 0},
+{794, 1278946388u, 0u, 1060997095u, 0, SINF_TOLERANCE, 0},
+{795, 947914771u, 0u, 947914771u, 0, SINF_TOLERANCE, 0},
+{796, 3167730654u, 0u, 3167729195u, 0, SINF_TOLERANCE, 0},
+{797, 1098530298u, 4294967260u, 1032507489u, 0, SINF_TOLERANCE, 0},
+{798, 3232726036u, 0u, 1060602925u, 0, SINF_TOLERANCE, 0},
+{799, 1297190916u, 0u, 3212169414u, 0, SINF_TOLERANCE, 0},
+{800, 1277649137u, 0u, 3212717518u, 0, SINF_TOLERANCE, 0},
+{801, 3203377685u, 466619008u, 3202810349u, 0, SINF_TOLERANCE, 0},
+{802, 3090306474u, 0u, 3090306474u, 0, SINF_TOLERANCE, 0},
+{803, 3244032016u, 0u, 3211595152u, 0, SINF_TOLERANCE, 0},
+{804, 3033122376u, 0u, 3033122376u, 0, SINF_TOLERANCE, 0},
+{805, 1096155623u, 7454884u, 1060717035u, 0, SINF_TOLERANCE, 0},
+{806, 873151908u, 4294967280u, 873151908u, 0, SINF_TOLERANCE, 0},
+{807, 3238729605u, 245005088u, 3207267052u, 0, SINF_TOLERANCE, 0},
+{808, 3317196817u, 0u, 3210991004u, 0, SINF_TOLERANCE, 0},
+{809, 3374748510u, 0u, 3199463111u, 0, SINF_TOLERANCE, 0},
+{810, 3345634950u, 0u, 1064868668u, 0, SINF_TOLERANCE, 0},
+{811, 3189860276u, 0u, 3189816530u, 0, SINF_TOLERANCE, 0},
+{812, 887311687u, 9077u, 887311687u, 0, SINF_TOLERANCE, 0},
+{813, 3396917283u, 0u, 3176444374u, 0, SINF_TOLERANCE, 0},
+{814, 3317032737u, 0u, 3203167975u, 0, SINF_TOLERANCE, 0},
+{815, 1200051436u, 3555u, 3211188622u, 0, SINF_TOLERANCE, 0},
+{816, 3105291012u, 45279u, 3105291012u, 0, SINF_TOLERANCE, 0},
+{817, 1306520561u, 0u, 3211052194u, 0, SINF_TOLERANCE, 0},
+{818, 1314936356u, 0u, 3208995553u, 0, SINF_TOLERANCE, 0},
+{819, 3475052219u, 71851496u, 3185927000u, 0, SINF_TOLERANCE, 0},
+{820, 3085636260u, 33u, 3085636260u, 0, SINF_TOLERANCE, 0},
+{821, 3393227708u, 4294967164u, 3184801513u, 0, SINF_TOLERANCE, 0},
+{822, 3182540197u, 0u, 3182525587u, 0, SINF_TOLERANCE, 0},
+{823, 3349005404u, 0u, 3182748692u, 0, SINF_TOLERANCE, 0},
+{824, 3154720153u, 4090490144u, 3154720048u, 0, SINF_TOLERANCE, 0},
+{825, 1262863321u, 345111u, 1057245203u, 0, SINF_TOLERANCE, 0},
+{826, 882902102u, 512593u, 882902102u, 0, SINF_TOLERANCE, 0},
+{827, 1053387478u, 0u, 1053049633u, 0, SINF_TOLERANCE, 0},
+{828, 3387653691u, 4294896063u, 3212836766u, 0, SINF_TOLERANCE, 0},
+{829, 3136364836u, 0u, 3136364827u, 0, SINF_TOLERANCE, 0},
+{830, 1338680611u, 4126u, 1054227324u, 0, SINF_TOLERANCE, 0},
+{831, 1112891928u, 0u, 1031461115u, 0, SINF_TOLERANCE, 0},
+{832, 893449284u, 0u, 893449284u, 0, SINF_TOLERANCE, 0},
+{833, 892311459u, 14u, 892311459u, 0, SINF_TOLERANCE, 0},
+{834, 3105373037u, 4294967280u, 3105373037u, 0, SINF_TOLERANCE, 0},
+{835, 1190105283u, 0u, 1059448616u, 0, SINF_TOLERANCE, 0},
+{836, 1011225926u, 14129u, 1011225610u, 0, SINF_TOLERANCE, 0},
+{837, 1043025031u, 0u, 1042972745u, 0, SINF_TOLERANCE, 0},
+{838, 3410531037u, 0u, 3204114341u, 0, SINF_TOLERANCE, 0},
+{839, 3125834184u, 0u, 3125834183u, 0, SINF_TOLERANCE, 0},
+{840, 902318189u, 0u, 902318189u, 0, SINF_TOLERANCE, 0},
+{841, 3213624815u, 0u, 3210965166u, 0, SINF_TOLERANCE, 0},
+{842, 1120888322u, 5u, 3168436714u, 0, SINF_TOLERANCE, 0},
+{843, 1315217243u, 4291026624u, 1062278922u, 0, SINF_TOLERANCE, 0},
+{844, 3137758475u, 0u, 3137758469u, 0, SINF_TOLERANCE, 0},
+{845, 1040617590u, 0u, 1040592230u, 0, SINF_TOLERANCE, 0},
+{846, 955384253u, 4294910624u, 955384253u, 0, SINF_TOLERANCE, 0},
+{847, 3061417900u, 7119u, 3061417900u, 0, SINF_TOLERANCE, 0},
+{848, 904255535u, 0u, 904255535u, 0, SINF_TOLERANCE, 0},
+{849, 1022984119u, 0u, 1022981591u, 0, SINF_TOLERANCE, 0},
+{850, 997362368u, 0u, 997362332u, 0, SINF_TOLERANCE, 0},
+{851, 900933520u, 19u, 900933520u, 0, SINF_TOLERANCE, 0},
+{852, 1168623062u, 661u, 1048554722u, 0, SINF_TOLERANCE, 0},
+{853, 878737490u, 4294967181u, 878737490u, 0, SINF_TOLERANCE, 0},
+{854, 1039827284u, 1u, 1039786377u, 0, SINF_TOLERANCE, 0},
+{855, 1021564080u, 0u, 1021562155u, 0, SINF_TOLERANCE, 0},
+{856, 3458669745u, 0u, 3208611126u, 0, SINF_TOLERANCE, 0},
+{857, 3327516316u, 4286775627u, 3196519084u, 0, SINF_TOLERANCE, 0},
+{858, 1040711112u, 4294967293u, 1040684937u, 0, SINF_TOLERANCE, 0},
+{859, 1134528351u, 4294638880u, 3212547697u, 0, SINF_TOLERANCE, 0},
+{860, 3039884464u, 6340u, 3039884464u, 0, SINF_TOLERANCE, 0},
+{861, 3414352838u, 4294876517u, 3187938361u, 0, SINF_TOLERANCE, 0},
+{862, 1133689539u, 1u, 3212184237u, 0, SINF_TOLERANCE, 0},
+{863, 3455688478u, 4294945415u, 3212828554u, 0, SINF_TOLERANCE, 0},
+{864, 1137634874u, 395u, 3208429720u, 0, SINF_TOLERANCE, 0},
+{865, 3415502662u, 0u, 3208492898u, 0, SINF_TOLERANCE, 0},
+{866, 954999730u, 0u, 954999730u, 0, SINF_TOLERANCE, 0},
+{867, 1066157309u, 4294967285u, 1063496309u, 0, SINF_TOLERANCE, 0},
+{868, 3436353675u, 8741u, 1057896763u, 0, SINF_TOLERANCE, 0},
+{869, 940437609u, 0u, 940437609u, 0, SINF_TOLERANCE, 0},
+{870, 3108347547u, 4203356328u, 3108347547u, 0, SINF_TOLERANCE, 0},
+{871, 3064200154u, 0u, 3064200154u, 0, SINF_TOLERANCE, 0},
+{872, 1023889593u, 0u, 1023887980u, 0, SINF_TOLERANCE, 0},
+{873, 3272661536u, 3393767296u, 3198822684u, 0, SINF_TOLERANCE, 0},
+{874, 1170245333u, 1083705u, 3192009928u, 0, SINF_TOLERANCE, 0},
+{875, 1219052056u, 4294526211u, 3204945810u, 0, SINF_TOLERANCE, 0},
+{876, 3318983619u, 4294967246u, 3192381578u, 0, SINF_TOLERANCE, 0},
+{877, 3372118621u, 0u, 1065320170u, 0, SINF_TOLERANCE, 0},
+{878, 3146190320u, 0u, 3146190295u, 0, SINF_TOLERANCE, 0},
+{879, 1299683827u, 0u, 3191216603u, 0, SINF_TOLERANCE, 0},
+{880, 3190796331u, 1457792256u, 3190739926u, 0, SINF_TOLERANCE, 0},
+{881, 3086068902u, 2772570624u, 3086068902u, 0, SINF_TOLERANCE, 0},
+{882, 3064155399u, 0u, 3064155399u, 0, SINF_TOLERANCE, 0},
+{883, 3040314717u, 1u, 3040314717u, 0, SINF_TOLERANCE, 0},
+{884, 3257224022u, 4294737239u, 1055767359u, 0, SINF_TOLERANCE, 0},
+{885, 1229268598u, 1u, 3190440857u, 0, SINF_TOLERANCE, 0},
+{886, 3184078812u, 0u, 3184057616u, 0, SINF_TOLERANCE, 0},
+{887, 1086717248u, 4256439624u, 3183761749u, 0, SINF_TOLERANCE, 0},
+{888, 3434884607u, 0u, 3201046083u, 0, SINF_TOLERANCE, 0},
+{889, 3464955606u, 0u, 1058723576u, 0, SINF_TOLERANCE, 0},
+{890, 1025278524u, 0u, 1025276028u, 0, SINF_TOLERANCE, 0},
+{891, 1242829722u, 4294967290u, 3210159424u, 0, SINF_TOLERANCE, 0},
+{892, 3075149137u, 76u, 3075149137u, 0, SINF_TOLERANCE, 0},
+{893, 1200927971u, 1093714048u, 3212110569u, 0, SINF_TOLERANCE, 0},
+{894, 3326858092u, 3870213632u, 3209830012u, 0, SINF_TOLERANCE, 0},
+{895, 1246019790u, 0u, 1054169513u, 0, SINF_TOLERANCE, 0},
+{896, 3184801644u, 424u, 3184776768u, 0, SINF_TOLERANCE, 0},
+{897, 1136052740u, 4294967282u, 1063913525u, 0, SINF_TOLERANCE, 0},
+{898, 1069009211u, 0u, 1065200638u, 0, SINF_TOLERANCE, 0},
+{899, 1015670780u, 20u, 1015670353u, 0, SINF_TOLERANCE, 0},
+{900, 1012543234u, 70u, 1012542811u, 0, SINF_TOLERANCE, 0},
+{901, 3316611992u, 4291436324u, 1065170673u, 0, SINF_TOLERANCE, 0},
+{902, 1087942795u, 4294961657u, 1055930559u, 0, SINF_TOLERANCE, 0},
+{903, 3426365713u, 0u, 3202661746u, 0, SINF_TOLERANCE, 0},
+{904, 3066654389u, 4087070784u, 3066654389u, 0, SINF_TOLERANCE, 0},
+{905, 3295326432u, 842363840u, 3205148900u, 0, SINF_TOLERANCE, 0},
+{906, 3318835308u, 4294967077u, 1024576997u, 0, SINF_TOLERANCE, 0},
+{907, 3283555717u, 0u, 3212587646u, 0, SINF_TOLERANCE, 0},
+{908, 3381255420u, 0u, 1064304600u, 0, SINF_TOLERANCE, 0},
+{909, 3040485181u, 4294241104u, 3040485181u, 0, SINF_TOLERANCE, 0},
+{910, 3388772093u, 0u, 3209717469u, 0, SINF_TOLERANCE, 0},
+{911, 954670189u, 760u, 954670189u, 0, SINF_TOLERANCE, 0},
+{912, 1319200415u, 4293050361u, 1046943470u, 0, SINF_TOLERANCE, 0},
+{913, 1279324488u, 4294967293u, 1064422515u, 0, SINF_TOLERANCE, 0},
+{914, 3217795424u, 0u, 3212833404u, 0, SINF_TOLERANCE, 0},
+{915, 3455131757u, 10314665u, 3183800585u, 0, SINF_TOLERANCE, 0},
+{916, 1246947517u, 6u, 3184419344u, 0, SINF_TOLERANCE, 0},
+{917, 3396723577u, 0u, 1064229414u, 0, SINF_TOLERANCE, 0},
+{918, 3433761025u, 0u, 3205870305u, 0, SINF_TOLERANCE, 0},
+{919, 3201187455u, 0u, 3200824870u, 0, SINF_TOLERANCE, 0},
+{920, 1173247961u, 32661u, 3208164870u, 0, SINF_TOLERANCE, 0},
+{921, 3037297123u, 4294904338u, 3037297123u, 0, SINF_TOLERANCE, 0},
+{922, 3248534678u, 1927801856u, 3211919740u, 0, SINF_TOLERANCE, 0},
+{923, 3083019343u, 0u, 3083019343u, 0, SINF_TOLERANCE, 0},
+{924, 3042018375u, 0u, 3042018375u, 0, SINF_TOLERANCE, 0},
+{925, 1082862511u, 0u, 3211741763u, 0, SINF_TOLERANCE, 0},
+{926, 3157626955u, 3075906560u, 3157626711u, 0, SINF_TOLERANCE, 0},
+{927, 1341821683u, 0u, 3212804055u, 0, SINF_TOLERANCE, 0},
+{928, 881101379u, 32095u, 881101379u, 0, SINF_TOLERANCE, 0},
+{929, 1079061705u, 0u, 3187766776u, 0, SINF_TOLERANCE, 0},
+{930, 3182695954u, 4294967257u, 3182680751u, 0, SINF_TOLERANCE, 0},
+{931, 1105291533u, 3424974848u, 1036547753u, 0, SINF_TOLERANCE, 0},
+{932, 1016023520u, 4294967293u, 1016023041u, 0, SINF_TOLERANCE, 0},
+{933, 3370691006u, 198615840u, 3208609055u, 0, SINF_TOLERANCE, 0},
+{934, 1156767169u, 0u, 1065176556u, 0, SINF_TOLERANCE, 0},
+{935, 3077020499u, 0u, 3077020499u, 0, SINF_TOLERANCE, 0},
+{936, 1104284039u, 0u, 1063691119u, 0, SINF_TOLERANCE, 0},
+{937, 3335212901u, 1662125568u, 1064530211u, 0, SINF_TOLERANCE, 0},
+{938, 1093697541u, 0u, 3212826186u, 0, SINF_TOLERANCE, 0},
+{939, 3266691185u, 2645u, 3194602969u, 0, SINF_TOLERANCE, 0},
+{940, 3179003144u, 37u, 3178992760u, 0, SINF_TOLERANCE, 0},
+{941, 1094115255u, 0u, 3211281158u, 0, SINF_TOLERANCE, 0},
+{942, 3424086808u, 4294967244u, 3205170345u, 0, SINF_TOLERANCE, 0},
+{943, 3353608773u, 305u, 1063078133u, 0, SINF_TOLERANCE, 0},
+{944, 973664327u, 1394344832u, 973664327u, 0, SINF_TOLERANCE, 0},
+{945, 882878091u, 0u, 882878091u, 0, SINF_TOLERANCE, 0},
+{946, 1098662266u, 0u, 3178071700u, 0, SINF_TOLERANCE, 0},
+{947, 927582555u, 0u, 927582555u, 0, SINF_TOLERANCE, 0},
+{948, 3111440310u, 0u, 3111440310u, 0, SINF_TOLERANCE, 0},
+{949, 3476083859u, 0u, 3181075587u, 0, SINF_TOLERANCE, 0},
+{950, 3038754840u, 0u, 3038754840u, 0, SINF_TOLERANCE, 0},
+{951, 979878744u, 1008405u, 979878742u, 0, SINF_TOLERANCE, 0},
+{952, 3464546616u, 0u, 1065326173u, 0, SINF_TOLERANCE, 0},
+{953, 1002542205u, 0u, 1002542131u, 0, SINF_TOLERANCE, 0},
+{954, 3443552129u, 0u, 1047774072u, 0, SINF_TOLERANCE, 0},
+{955, 1287620154u, 0u, 1063607690u, 0, SINF_TOLERANCE, 0},
+{956, 946058434u, 4207447u, 946058434u, 0, SINF_TOLERANCE, 0},
+{957, 3073260205u, 0u, 3073260205u, 0, SINF_TOLERANCE, 0},
+{958, 1245702957u, 0u, 1049967502u, 0, SINF_TOLERANCE, 0},
+{959, 989655126u, 528989952u, 989655116u, 0, SINF_TOLERANCE, 0},
+{960, 1002715618u, 32425u, 1002715541u, 0, SINF_TOLERANCE, 0},
+{961, 3087802274u, 0u, 3087802274u, 0, SINF_TOLERANCE, 0},
+{962, 1000863905u, 54834u, 1000863857u, 0, SINF_TOLERANCE, 0},
+{963, 3415763001u, 0u, 1062474805u, 0, SINF_TOLERANCE, 0},
+{964, 3283471961u, 10190634u, 1060758212u, 0, SINF_TOLERANCE, 0},
+{965, 3311210827u, 36713u, 1051772445u, 0, SINF_TOLERANCE, 0},
+{966, 3026311911u, 0u, 3026311911u, 0, SINF_TOLERANCE, 0},
+{967, 1198307901u, 68u, 1061883151u, 0, SINF_TOLERANCE, 0},
+{968, 1288901567u, 206618288u, 3207429230u, 0, SINF_TOLERANCE, 0},
+{969, 922255363u, 0u, 922255363u, 0, SINF_TOLERANCE, 0},
+{970, 1113104661u, 0u, 3207498491u, 0, SINF_TOLERANCE, 0},
+{971, 1136714348u, 0u, 1058688901u, 0, SINF_TOLERANCE, 0},
+{972, 948856035u, 0u, 948856035u, 0, SINF_TOLERANCE, 0},
+{973, 1062512367u, 4294967293u, 1060964042u, 0, SINF_TOLERANCE, 0},
+{974, 3486907092u, 0u, 1060191997u, 0, SINF_TOLERANCE, 0},
+{975, 1162027071u, 4294964303u, 3207219290u, 0, SINF_TOLERANCE, 0},
+{976, 1034561811u, 0u, 1034548985u, 0, SINF_TOLERANCE, 0},
+{977, 3271615417u, 0u, 1034703688u, 0, SINF_TOLERANCE, 0},
+{978, 1042014529u, 869u, 1041975120u, 0, SINF_TOLERANCE, 0},
+{979, 1177157787u, 0u, 3208280448u, 0, SINF_TOLERANCE, 0},
+{980, 3196144817u, 0u, 3196050420u, 0, SINF_TOLERANCE, 0},
+{981, 3432084552u, 0u, 1063814911u, 0, SINF_TOLERANCE, 0},
+{982, 1309658335u, 0u, 1056586960u, 0, SINF_TOLERANCE, 0},
+{983, 1226494979u, 0u, 1065146136u, 0, SINF_TOLERANCE, 0},
+{984, 3100289712u, 3743522688u, 3100289712u, 0, SINF_TOLERANCE, 0},
+{985, 3375507013u, 462886112u, 3204896610u, 0, SINF_TOLERANCE, 0},
+{986, 3460699001u, 0u, 3212836850u, 0, SINF_TOLERANCE, 0},
+{987, 3079231719u, 0u, 3079231719u, 0, SINF_TOLERANCE, 0},
+{988, 3093951884u, 0u, 3093951884u, 0, SINF_TOLERANCE, 0},
+{989, 3468023178u, 156157u, 3212716691u, 0, SINF_TOLERANCE, 0},
+{990, 1204196034u, 4294966040u, 1064715383u, 0, SINF_TOLERANCE, 0},
+{991, 3459877411u, 0u, 3212701032u, 0, SINF_TOLERANCE, 0},
+{992, 909696559u, 3378u, 909696559u, 0, SINF_TOLERANCE, 0},
+{993, 1161439847u, 0u, 1053879087u, 0, SINF_TOLERANCE, 0},
+{994, 908663107u, 0u, 908663107u, 0, SINF_TOLERANCE, 0},
+{995, 1055319316u, 4294967238u, 1054811608u, 0, SINF_TOLERANCE, 0},
+{996, 1084378658u, 0u, 3211763466u, 0, SINF_TOLERANCE, 0},
+{997, 3053887750u, 4294922339u, 3053887750u, 0, SINF_TOLERANCE, 0},
+{998, 3022828828u, 0u, 3022828828u, 0, SINF_TOLERANCE, 0},
+{999, 1226473697u, 0u, 3203662642u, 0, SINF_TOLERANCE, 0},
+{1000, 1123114742u, 841711u, 1064763840u, 0, SINF_TOLERANCE, 0},
+{1001, 1258114435u, 130141336u, 3204368636u, 0, SINF_TOLERANCE, 0},
+{1002, 3468040845u, 0u, 3205961198u, 0, SINF_TOLERANCE, 0},
+{1003, 1178825761u, 54u, 3207974092u, 0, SINF_TOLERANCE, 0},
+{1004, 3059266302u, 0u, 3059266302u, 0, SINF_TOLERANCE, 0},
+{1005, 3223384012u, 225u, 3205902554u, 0, SINF_TOLERANCE, 0},
+{1006, 1019964626u, 1299605u, 1019963256u, 0, SINF_TOLERANCE, 0},
+{1007, 3445262427u, 3129568512u, 1060950633u, 0, SINF_TOLERANCE, 0},
+{1008, 1125653081u, 129823u, 1064770536u, 0, SINF_TOLERANCE, 0},
+{1009, 3337652712u, 0u, 3212411443u, 0, SINF_TOLERANCE, 0},
+{1010, 1184753508u, 0u, 3212277391u, 0, SINF_TOLERANCE, 0},
+{1011, 996404791u, 4294853343u, 996404761u, 0, SINF_TOLERANCE, 0},
+{1012, 1188439315u, 55u, 3188727200u, 0, SINF_TOLERANCE, 0},
+{1013, 906557513u, 0u, 906557513u, 0, SINF_TOLERANCE, 0},
+{1014, 916831283u, 0u, 916831283u, 0, SINF_TOLERANCE, 0},
+{1015, 996786317u, 0u, 996786285u, 0, SINF_TOLERANCE, 0},
+{1016, 3461635065u, 0u, 1061514522u, 0, SINF_TOLERANCE, 0},
+{1017, 1188167943u, 74707u, 1063103232u, 0, SINF_TOLERANCE, 0},
+{1018, 3036502395u, 7309u, 3036502395u, 0, SINF_TOLERANCE, 0},
+{1019, 891257783u, 18537700u, 891257783u, 0, SINF_TOLERANCE, 0},
+{1020, 3290079438u, 0u, 3200153812u, 0, SINF_TOLERANCE, 0},
+{1021, 3350690327u, 0u, 3196820093u, 0, SINF_TOLERANCE, 0},
+{1022, 1102061604u, 4253821380u, 3167292829u, 0, SINF_TOLERANCE, 0},
+{1023, 1282351521u, 0u, 1061321845u, 0, SINF_TOLERANCE, 0},
+{1024, 3458861065u, 4292002951u, 1059823021u, 0, SINF_TOLERANCE, 0},
+{1025, 3095256878u, 0u, 3095256878u, 0, SINF_TOLERANCE, 0},
+{1026, 3163373610u, 0u, 3163373151u, 0, SINF_TOLERANCE, 0},
+{1027, 3228793330u, 0u, 1058898476u, 0, SINF_TOLERANCE, 0},
+{1028, 3422194733u, 0u, 1065154839u, 0, SINF_TOLERANCE, 0},
+{1029, 3083885296u, 0u, 3083885296u, 0, SINF_TOLERANCE, 0},
+{1030, 1261940623u, 4288291120u, 1061418234u, 0, SINF_TOLERANCE, 0},
+{1031, 3400603081u, 4294967290u, 3212371450u, 0, SINF_TOLERANCE, 0},
+{1032, 1219411812u, 0u, 3208405055u, 0, SINF_TOLERANCE, 0},
+{1033, 3094833770u, 0u, 3094833770u, 0, SINF_TOLERANCE, 0},
+{1034, 3139250800u, 0u, 3139250790u, 0, SINF_TOLERANCE, 0},
+{1035, 886201503u, 4294967150u, 886201503u, 0, SINF_TOLERANCE, 0},
+{1036, 3297366026u, 7u, 3192470223u, 0, SINF_TOLERANCE, 0},
+{1037, 1218488455u, 4294964141u, 1045436187u, 0, SINF_TOLERANCE, 0},
+{1038, 3040358923u, 0u, 3040358923u, 0, SINF_TOLERANCE, 0},
+{1039, 1283938137u, 53086u, 3191014709u, 0, SINF_TOLERANCE, 0},
+{1040, 3182551696u, 0u, 3182537043u, 0, SINF_TOLERANCE, 0},
+{1041, 1317098613u, 0u, 3212501318u, 0, SINF_TOLERANCE, 0},
+{1042, 3116209179u, 4294965434u, 3116209179u, 0, SINF_TOLERANCE, 0},
+{1043, 3431703657u, 0u, 3206335982u, 0, SINF_TOLERANCE, 0},
+{1044, 3239728775u, 0u, 1046532122u, 0, SINF_TOLERANCE, 0},
+{1045, 3207141672u, 0u, 3206353199u, 0, SINF_TOLERANCE, 0},
+{1046, 3154378805u, 0u, 3154378711u, 0, SINF_TOLERANCE, 0},
+{1047, 3069658155u, 0u, 3069658155u, 0, SINF_TOLERANCE, 0},
+{1048, 3313160088u, 0u, 1063962697u, 0, SINF_TOLERANCE, 0},
+{1049, 3207056527u, 4293469023u, 3206285831u, 0, SINF_TOLERANCE, 0},
+{1050, 1284174954u, 4180334232u, 1064619785u, 0, SINF_TOLERANCE, 0},
+{1051, 3156081645u, 4294964338u, 3156081485u, 0, SINF_TOLERANCE, 0},
+{1052, 1063693032u, 0u, 1061728939u, 0, SINF_TOLERANCE, 0},
+{1053, 3036026175u, 4845007u, 3036026175u, 0, SINF_TOLERANCE, 0},
+{1054, 1102631663u, 4290881696u, 3211100727u, 0, SINF_TOLERANCE, 0},
+{1055, 968803479u, 0u, 968803479u, 0, SINF_TOLERANCE, 0},
+{1056, 3273080388u, 0u, 3202168628u, 0, SINF_TOLERANCE, 0},
+{1057, 1172529774u, 4294966405u, 1052481368u, 0, SINF_TOLERANCE, 0},
+{1058, 1306695905u, 147733664u, 1063024816u, 0, SINF_TOLERANCE, 0},
+{1059, 1003649752u, 338518u, 1003649657u, 0, SINF_TOLERANCE, 0},
+{1060, 1078478376u, 2364151808u, 1011462484u, 0, SINF_TOLERANCE, 0},
+{1061, 3158855023u, 0u, 3158854696u, 0, SINF_TOLERANCE, 0},
+{1062, 1165177679u, 4294967097u, 1064368675u, 0, SINF_TOLERANCE, 0},
+{1063, 3403009513u, 4293749042u, 3200332882u, 0, SINF_TOLERANCE, 0},
+{1064, 952348506u, 4294108410u, 952348506u, 0, SINF_TOLERANCE, 0},
+{1065, 1222777442u, 153u, 1061418024u, 0, SINF_TOLERANCE, 0},
+{1066, 1325324763u, 0u, 1057307338u, 0, SINF_TOLERANCE, 0},
+{1067, 3363524213u, 0u, 1057332239u, 0, SINF_TOLERANCE, 0},
+{1068, 1158950321u, 1u, 1063101660u, 0, SINF_TOLERANCE, 0},
+{1069, 903129873u, 4272788450u, 903129873u, 0, SINF_TOLERANCE, 0},
+{1070, 3078339944u, 0u, 3078339944u, 0, SINF_TOLERANCE, 0},
+{1071, 1208345407u, 6333643u, 1064552605u, 0, SINF_TOLERANCE, 0},
+{1072, 1258634105u, 3575206u, 1049625456u, 0, SINF_TOLERANCE, 0},
+{1073, 1248478509u, 102613680u, 3212835226u, 0, SINF_TOLERANCE, 0},
+{1074, 1153863988u, 4229464460u, 3211074162u, 0, SINF_TOLERANCE, 0},
+{1075, 1235620969u, 0u, 1064569301u, 0, SINF_TOLERANCE, 0},
+{1076, 1097120930u, 4294967294u, 1065141893u, 0, SINF_TOLERANCE, 0},
+{1077, 3469778622u, 70286u, 1065325367u, 0, SINF_TOLERANCE, 0},
+{1078, 1147712200u, 0u, 1061528543u, 0, SINF_TOLERANCE, 0},
+{1079, 1124721745u, 0u, 3198804551u, 0, SINF_TOLERANCE, 0},
+{1080, 3261744304u, 0u, 3211184016u, 0, SINF_TOLERANCE, 0},
+{1081, 1064922416u, 1518435840u, 1062456150u, 0, SINF_TOLERANCE, 0},
+{1082, 3303160152u, 0u, 3194883701u, 0, SINF_TOLERANCE, 0},
+{1083, 1315090496u, 4294967183u, 1027282864u, 0, SINF_TOLERANCE, 0},
+{1084, 3230403187u, 1820050432u, 1064414424u, 0, SINF_TOLERANCE, 0},
+{1085, 1335399673u, 0u, 1057037838u, 0, SINF_TOLERANCE, 0},
+{1086, 1072458508u, 4294404660u, 1064717243u, 0, SINF_TOLERANCE, 0},
+{1087, 3303015249u, 0u, 3212580702u, 0, SINF_TOLERANCE, 0},
+{1088, 3252139741u, 0u, 3212269737u, 0, SINF_TOLERANCE, 0},
+{1089, 3468519966u, 0u, 3212788099u, 0, SINF_TOLERANCE, 0},
+{1090, 1006231203u, 0u, 1006231044u, 0, SINF_TOLERANCE, 0},
+{1091, 951554138u, 0u, 951554138u, 0, SINF_TOLERANCE, 0},
+{1092, 942046828u, 0u, 942046828u, 0, SINF_TOLERANCE, 0},
+{1093, 3319723279u, 4277552160u, 1033521666u, 0, SINF_TOLERANCE, 0},
+{1094, 3255104167u, 0u, 3212314295u, 0, SINF_TOLERANCE, 0},
+{1095, 1155477903u, 0u, 1063706868u, 0, SINF_TOLERANCE, 0},
+{1096, 3273889176u, 0u, 3194027929u, 0, SINF_TOLERANCE, 0},
+{1097, 3237813668u, 4133749200u, 3212810671u, 0, SINF_TOLERANCE, 0},
+{1098, 1228207362u, 0u, 3210431030u, 0, SINF_TOLERANCE, 0},
+{1099, 975349337u, 748694784u, 975349336u, 0, SINF_TOLERANCE, 0},
+{1100, 1290175785u, 0u, 3208122918u, 0, SINF_TOLERANCE, 0},
+{1101, 981908840u, 4294962938u, 981908838u, 0, SINF_TOLERANCE, 0},
+{1102, 941187647u, 33u, 941187647u, 0, SINF_TOLERANCE, 0},
+{1103, 1214223128u, 4294967293u, 3175395280u, 0, SINF_TOLERANCE, 0},
+{1104, 3422922584u, 6u, 3202621705u, 0, SINF_TOLERANCE, 0},
+{1105, 1315857601u, 1055172096u, 1060440419u, 0, SINF_TOLERANCE, 0},
+{1106, 3453226030u, 4294967291u, 1055080459u, 0, SINF_TOLERANCE, 0},
+{1107, 1078359574u, 0u, 1025926511u, 0, SINF_TOLERANCE, 0},
+{1108, 1029557624u, 4294965511u, 1029550521u, 0, SINF_TOLERANCE, 0},
+{1109, 1207675424u, 0u, 1043330099u, 0, SINF_TOLERANCE, 0},
+{1110, 1028355074u, 4113313408u, 1028349592u, 0, SINF_TOLERANCE, 0},
+{1111, 3119299090u, 24787u, 3119299089u, 0, SINF_TOLERANCE, 0},
+{1112, 1248421894u, 4294582111u, 1059507841u, 0, SINF_TOLERANCE, 0},
+{1113, 3353251994u, 12u, 3212445556u, 0, SINF_TOLERANCE, 0},
+{1114, 876926659u, 4294966792u, 876926659u, 0, SINF_TOLERANCE, 0},
+{1115, 1076752219u, 0u, 1053987679u, 0, SINF_TOLERANCE, 0},
+{1116, 3388531942u, 0u, 3150373635u, 0, SINF_TOLERANCE, 0},
+{1117, 1273395082u, 0u, 3195827353u, 0, SINF_TOLERANCE, 0},
+{1118, 3385588183u, 4294967251u, 3212638167u, 0, SINF_TOLERANCE, 0},
+{1119, 3192315328u, 4294966714u, 3192233558u, 0, SINF_TOLERANCE, 0},
+{1120, 3441804648u, 4294967121u, 1064889844u, 0, SINF_TOLERANCE, 0},
+{1121, 3392827417u, 45125368u, 3204991638u, 0, SINF_TOLERANCE, 0},
+{1122, 1161241793u, 2814016256u, 1060713941u, 0, SINF_TOLERANCE, 0},
+{1123, 3034494183u, 0u, 3034494183u, 0, SINF_TOLERANCE, 0},
+{1124, 1171318485u, 4294306215u, 3202421859u, 0, SINF_TOLERANCE, 0},
+{1125, 3047748143u, 0u, 3047748143u, 0, SINF_TOLERANCE, 0},
+{1126, 1001216371u, 0u, 1001216318u, 0, SINF_TOLERANCE, 0},
+{1127, 912515889u, 2u, 912515889u, 0, SINF_TOLERANCE, 0},
+{1128, 3391452505u, 0u, 3205889616u, 0, SINF_TOLERANCE, 0},
+{1129, 3249603369u, 0u, 1040857218u, 0, SINF_TOLERANCE, 0},
+{1130, 1220264047u, 0u, 3194967897u, 0, SINF_TOLERANCE, 0},
+{1131, 3169816394u, 0u, 3169814156u, 0, SINF_TOLERANCE, 0},
+{1132, 3098997418u, 0u, 3098997418u, 0, SINF_TOLERANCE, 0},
+{1133, 3282212423u, 0u, 1065350123u, 0, SINF_TOLERANCE, 0},
+{1134, 3352293320u, 4294967278u, 3212086835u, 0, SINF_TOLERANCE, 0},
+{1135, 3296358441u, 0u, 3201216860u, 0, SINF_TOLERANCE, 0},
+{1136, 1197828352u, 4294967281u, 1032387171u, 0, SINF_TOLERANCE, 0},
+{1137, 3340510371u, 0u, 1062585647u, 0, SINF_TOLERANCE, 0},
+{1138, 1127109339u, 4294570975u, 3212826742u, 0, SINF_TOLERANCE, 0},
+{1139, 909467381u, 1001724u, 909467381u, 0, SINF_TOLERANCE, 0},
+{1140, 1200599955u, 0u, 3209721212u, 0, SINF_TOLERANCE, 0},
+{1141, 962230977u, 0u, 962230977u, 0, SINF_TOLERANCE, 0},
+{1142, 3192887808u, 0u, 3192794798u, 0, SINF_TOLERANCE, 0},
+{1143, 3237183876u, 0u, 3212338202u, 0, SINF_TOLERANCE, 0},
+{1144, 939285924u, 0u, 939285924u, 0, SINF_TOLERANCE, 0},
+{1145, 944050180u, 3871652128u, 944050180u, 0, SINF_TOLERANCE, 0},
+{1146, 3058135703u, 0u, 3058135703u, 0, SINF_TOLERANCE, 0},
+{1147, 3480592662u, 4294967238u, 3204456894u, 0, SINF_TOLERANCE, 0},
+{1148, 3061939312u, 4294967125u, 3061939312u, 0, SINF_TOLERANCE, 0},
+{1149, 1003299981u, 0u, 1003299893u, 0, SINF_TOLERANCE, 0},
+{1150, 1155775526u, 7150230u, 3195501537u, 0, SINF_TOLERANCE, 0},
+{1151, 1234491880u, 4283784819u, 3212387912u, 0, SINF_TOLERANCE, 0}
+
+// AUTOMATICALLY GENERATED VECTORS STOP
+
+};
+
+#endif // CYGONCE_LIBM_SCABNF_H multiple inclusion protection
+
+// EOF sinf.h
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/sinh.c b/ecos/packages/language/c/libm/current/tests/vectors/sinh.c
new file mode 100644
index 0000000..2f945f2
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/sinh.c
@@ -0,0 +1,115 @@
+//===========================================================================
+//
+// sinh.c
+//
+// Test of sinh() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// Declarations for test system:
+//
+// TESTCASE_TYPE=CYG_TEST_MODULE
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include <cyg/infra/testcase.h> // Test infrastructure
+#include <math.h> // Header for this package
+#include <sys/ieeefp.h> // Cyg_libm_ieee_double_shape_type
+#include "vectors/vector_support.h"// extra support for math tests
+
+#include "vectors/sinh.h"
+
+// FUNCTIONS
+
+static void
+test( CYG_ADDRWORD data )
+{
+ cyg_ucount32 vec_size;
+ cyg_bool ret;
+
+ vec_size = sizeof(sinh_vec) / sizeof(Cyg_libm_test_double_vec_t);
+ ret = doTestVec( (CYG_ADDRWORD) &sinh, CYG_LIBM_TEST_VEC_DOUBLE,
+ CYG_LIBM_TEST_VEC_NONE, CYG_LIBM_TEST_VEC_DOUBLE,
+ &sinh_vec[0], vec_size );
+
+ if (ret==true)
+ {
+ CYG_TEST_PASS("sinh() is stable");
+ } // if
+ else
+ {
+ CYG_TEST_FAIL("sinh() failed tests");
+ } // else
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for Math "
+ "library sinh() function");
+} // test()
+
+
+int
+main(int argc, char *argv[])
+{
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for Math library "
+ "sinh() function");
+
+ START_TEST( test );
+
+ CYG_TEST_PASS_FINISH("Testing is not applicable to this configuration");
+
+} // main()
+
+
+// EOF sinh.c
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/sinh.h b/ecos/packages/language/c/libm/current/tests/vectors/sinh.h
new file mode 100644
index 0000000..6397795
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/sinh.h
@@ -0,0 +1,1079 @@
+#ifndef CYGONCE_LIBM_SINH_H
+#define CYGONCE_LIBM_SINH_H
+//===========================================================================
+//
+// sinh.h
+//
+// Test vectors for testing of sinh() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage: #include "vectors/sinh.h"
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include "vectors/vector_support.h"// extra support for math tests
+
+#define SINH_TOLERANCE 1.0E-04
+
+static const Cyg_libm_test_double_vec_t sinh_vec[] = {
+
+// AUTOMATICALLY GENERATED VECTORS START
+
+{ 1, 1074853420u, 2506787616u, 1090024059u, 3619148316u, 1078024954u, 1325672821u, 0, SINH_TOLERANCE, 0},
+{ 2, 3220250806u, 3176730980u, 1051524793u, 2993920299u, 3220477814u, 4166713187u, 0, SINH_TOLERANCE, 0},
+{ 3, 3226028315u, 2725707538u, 3232101343u, 2346810316u, 3295615262u, 3406370818u, 0, SINH_TOLERANCE, 0},
+{ 4, 1078922874u, 2088062470u, 3201242716u, 420891118u, 1165520069u, 2120331304u, 0, SINH_TOLERANCE, 0},
+{ 5, 3221200677u, 2636405208u, 1100049309u, 471635570u, 3222032301u, 4262763718u, 0, SINH_TOLERANCE, 0},
+{ 6, 1077828855u, 1746012320u, 1054478713u, 3333988501u, 1117516582u, 699114409u, 0, SINH_TOLERANCE, 0},
+{ 7, 1066827528u, 183014794u, 3202039382u, 2016785810u, 1066827646u, 2740062550u, 0, SINH_TOLERANCE, 0},
+{ 8, 3219777490u, 2688957927u, 1046089230u, 2709029994u, 3219969104u, 3103290362u, 0, SINH_TOLERANCE, 0},
+{ 9, 1070330066u, 624574473u, 1045840574u, 3473266330u, 1070344642u, 3098664718u, 0, SINH_TOLERANCE, 0},
+{ 10, 3217502754u, 1605286142u, 1068931671u, 4233776869u, 3217511088u, 1479052898u, 0, SINH_TOLERANCE, 0},
+{ 11, 1069780594u, 1857607719u, 3222889559u, 3417070006u, 1069785586u, 2351965982u, 0, SINH_TOLERANCE, 0},
+{ 12, 1081579891u, 3981151660u, 1088899021u, 1332651746u, 1642782946u, 1345086100u, 0, SINH_TOLERANCE, 0},
+{ 13, 1075860838u, 3824988054u, 1066856791u, 2070129652u, 1083933725u, 1287980412u, 0, SINH_TOLERANCE, 0},
+{ 14, 3218045550u, 1372884064u, 1080833116u, 3229926662u, 3218066407u, 1712809869u, 0, SINH_TOLERANCE, 0},
+{ 15, 1078097861u, 3217805330u, 3191644264u, 2014578707u, 1127449977u, 1807458751u, 0, SINH_TOLERANCE, 0},
+{ 16, 1080267391u, 265058758u, 3239903247u, 1630600647u, 1308474718u, 1523986687u, 0, SINH_TOLERANCE, 0},
+{ 17, 1073221381u, 1946677669u, 3198462609u, 926009897u, 1073814134u, 965164266u, 0, SINH_TOLERANCE, 0},
+{ 18, 1073178875u, 2271884183u, 3203741999u, 2118617783u, 1073764879u, 2502245462u, 0, SINH_TOLERANCE, 0},
+{ 19, 3214772053u, 213658772u, 3249401130u, 314151656u, 3214772321u, 1121595103u, 0, SINH_TOLERANCE, 0},
+{ 20, 3228946464u, 1564829925u, 3197817016u, 497230814u, 3747008735u, 3665494831u, 0, SINH_TOLERANCE, 0},
+{ 21, 3219408362u, 2075329122u, 3231746400u, 169900577u, 3219499040u, 1378507091u, 0, SINH_TOLERANCE, 0},
+{ 22, 1067674434u, 541549344u, 1096608669u, 3119070100u, 1067674739u, 1142681329u, 0, SINH_TOLERANCE, 0},
+{ 23, 1075989871u, 567496114u, 1045286891u, 1969998540u, 1085434125u, 3122029707u, 0, SINH_TOLERANCE, 0},
+{ 24, 1069985379u, 1299369769u, 1049342524u, 4167404066u, 1069993170u, 957868079u, 0, SINH_TOLERANCE, 0},
+{ 25, 3218302829u, 3348930841u, 1078472138u, 358457347u, 3218322401u, 4210136577u, 0, SINH_TOLERANCE, 0},
+{ 26, 1073166449u, 2192461366u, 1099527247u, 3184735642u, 1073750816u, 3805009043u, 0, SINH_TOLERANCE, 0},
+{ 27, 1068590412u, 331696577u, 3189610016u, 793242270u, 1068591289u, 2713729777u, 0, SINH_TOLERANCE, 0},
+{ 28, 3229460262u, 2322696981u, 1083791358u, 3020766674u, 3936770457u, 4287903039u, 0, SINH_TOLERANCE, 0},
+{ 29, 1066922273u, 252085215u, 3214426435u, 4139068910u, 1066922416u, 83845212u, 0, SINH_TOLERANCE, 0},
+{ 30, 3221457149u, 105589263u, 1056316170u, 261630827u, 3222720706u, 3192021150u, 0, SINH_TOLERANCE, 0},
+{ 31, 1082047584u, 428765703u, 3251828686u, 2009972239u, 1815498097u, 3462966019u, 0, SINH_TOLERANCE, 0},
+{ 32, 1079693651u, 3517376586u, 3240257920u, 3304487302u, 1233851281u, 1250614638u, 0, SINH_TOLERANCE, 0},
+{ 33, 3224100728u, 237004814u, 3237899261u, 3364008659u, 3240179835u, 168260289u, 0, SINH_TOLERANCE, 0},
+{ 34, 3214121920u, 472004928u, 3226869477u, 1186387580u, 3214121998u, 2769782808u, 0, SINH_TOLERANCE, 0},
+{ 35, 1068906914u, 4085763910u, 1106394906u, 2684738273u, 1068908745u, 1510279260u, 0, SINH_TOLERANCE, 0},
+{ 36, 1069636551u, 2055490142u, 3231581370u, 3879040079u, 1069640041u, 2752142379u, 0, SINH_TOLERANCE, 0},
+{ 37, 3213093895u, 3725731239u, 1061652681u, 591292963u, 3213093916u, 1967435138u, 0, SINH_TOLERANCE, 0},
+{ 38, 3221869253u, 1147041027u, 3215417793u, 624695933u, 3223924727u, 2571982132u, 0, SINH_TOLERANCE, 0},
+{ 39, 3217587110u, 705725219u, 3238067573u, 1116238321u, 3217596911u, 3311611344u, 0, SINH_TOLERANCE, 0},
+{ 40, 3217852848u, 7287411u, 1045917232u, 116067742u, 3217868380u, 3703123310u, 0, SINH_TOLERANCE, 0},
+{ 41, 3226423734u, 3604989074u, 1066381836u, 545298780u, 3313804928u, 3198996771u, 0, SINH_TOLERANCE, 0},
+{ 42, 3221178088u, 1681476121u, 1060345752u, 3553822398u, 3221991193u, 2715753141u, 0, SINH_TOLERANCE, 0},
+{ 43, 1080811562u, 3410480388u, 1052460275u, 1660607230u, 1408926430u, 2715754844u, 0, SINH_TOLERANCE, 0},
+{ 44, 1077682533u, 1494984673u, 3196647153u, 287894723u, 1114110585u, 2741076212u, 0, SINH_TOLERANCE, 0},
+{ 45, 1068516615u, 644548665u, 1081948134u, 2442134629u, 1068517333u, 260208407u, 0, SINH_TOLERANCE, 0},
+{ 46, 1077068335u, 2312530895u, 3221584595u, 3379665576u, 1100002913u, 3357999193u, 0, SINH_TOLERANCE, 0},
+{ 47, 1079308159u, 3018463866u, 1086226574u, 404012923u, 1198269222u, 2905917257u, 0, SINH_TOLERANCE, 0},
+{ 48, 1071024755u, 1710279345u, 3251401196u, 3528946000u, 1071055486u, 60512890u, 0, SINH_TOLERANCE, 0},
+{ 49, 1070973535u, 2164450219u, 1083520023u, 3312018966u, 1071001167u, 1910140323u, 0, SINH_TOLERANCE, 0},
+{ 50, 1069831588u, 2648986431u, 1050330591u, 1474376550u, 1069837201u, 704378001u, 0, SINH_TOLERANCE, 0},
+{ 51, 3214344972u, 1839068700u, 1077406406u, 3013052171u, 3214345099u, 1580301750u, 0, SINH_TOLERANCE, 0},
+{ 52, 1066416574u, 772102380u, 3220729740u, 4219039958u, 1066416618u, 2907767777u, 0, SINH_TOLERANCE, 0},
+{ 53, 3223180765u, 3058618779u, 1046304788u, 3338676024u, 3230342304u, 3808714856u, 0, SINH_TOLERANCE, 0},
+{ 54, 1067949353u, 506286854u, 1094907481u, 2217000199u, 1067949901u, 3532436019u, 0, SINH_TOLERANCE, 0},
+{ 55, 1076136854u, 1147428263u, 1065432625u, 3034786717u, 1087127673u, 1621780183u, 0, SINH_TOLERANCE, 0},
+{ 56, 1075725296u, 2844125311u, 1082985198u, 2561492677u, 1083060296u, 554895537u, 0, SINH_TOLERANCE, 0},
+{ 57, 3218876948u, 704542600u, 3222902057u, 2762779203u, 3218937103u, 1557942213u, 0, SINH_TOLERANCE, 0},
+{ 58, 3215409254u, 184131949u, 3249723525u, 1667366082u, 3215409777u, 3745315154u, 0, SINH_TOLERANCE, 0},
+{ 59, 3221512446u, 3904224140u, 1067056698u, 2942159914u, 3222889439u, 2388317524u, 0, SINH_TOLERANCE, 0},
+{ 60, 1080713919u, 426114282u, 3209056785u, 1083606355u, 1390879870u, 3657642479u, 0, SINH_TOLERANCE, 0},
+{ 61, 1082048697u, 3774123863u, 1106787580u, 2722107965u, 1815954824u, 2241806278u, 0, SINH_TOLERANCE, 0},
+{ 62, 1077519332u, 1377734762u, 1104232051u, 2377063483u, 1110428932u, 844049504u, 0, SINH_TOLERANCE, 0},
+{ 63, 1072526287u, 1029739074u, 1105467109u, 3062201018u, 1072751914u, 89150669u, 0, SINH_TOLERANCE, 0},
+{ 64, 3225304413u, 773857656u, 3214251949u, 335833884u, 3264787509u, 3714139170u, 0, SINH_TOLERANCE, 0},
+{ 65, 3216856098u, 1473865960u, 1103073830u, 4000427507u, 3216860305u, 3030706697u, 0, SINH_TOLERANCE, 0},
+{ 66, 1081165135u, 4242092620u, 1067009473u, 14539161u, 1489589453u, 1225921132u, 0, SINH_TOLERANCE, 0},
+{ 67, 3214536170u, 1732245037u, 1101371955u, 1533536108u, 3214536352u, 18093930u, 0, SINH_TOLERANCE, 0},
+{ 68, 3228182475u, 1833841275u, 1099430098u, 4144145552u, 3535623788u, 2429748539u, 0, SINH_TOLERANCE, 0},
+{ 69, 3227493247u, 935007012u, 3188865420u, 604442938u, 3410487768u, 3099153891u, 0, SINH_TOLERANCE, 0},
+{ 70, 3217389013u, 2211464602u, 1046255144u, 1635910526u, 3217395611u, 3092963229u, 0, SINH_TOLERANCE, 0},
+{ 71, 1074725689u, 2549219008u, 3231633258u, 3733639385u, 1077419635u, 3503988551u, 0, SINH_TOLERANCE, 0},
+{ 72, 1075803633u, 1819374372u, 3202219056u, 2617077637u, 1083464179u, 2382136690u, 0, SINH_TOLERANCE, 0},
+{ 73, 1078616640u, 546465680u, 1048653554u, 532401530u, 1151433358u, 1660202510u, 0, SINH_TOLERANCE, 0},
+{ 74, 1066591187u, 2759019783u, 3221570188u, 3554409630u, 1066591257u, 3681433865u, 0, SINH_TOLERANCE, 0},
+{ 75, 3219222738u, 2527221960u, 1099107978u, 2696971136u, 3219280172u, 2776033431u, 0, SINH_TOLERANCE, 0},
+{ 76, 1079332208u, 173134582u, 1087299442u, 2877794600u, 1200522954u, 2450291402u, 0, SINH_TOLERANCE, 0},
+{ 77, 1076963290u, 547642046u, 3197285510u, 3521286127u, 1097525900u, 1604458481u, 0, SINH_TOLERANCE, 0},
+{ 78, 1073812126u, 1231582831u, 1090971734u, 1653446832u, 1074833786u, 707719957u, 0, SINH_TOLERANCE, 0},
+{ 79, 1070779719u, 3762182190u, 3252967851u, 2615360375u, 1070797520u, 4104947389u, 0, SINH_TOLERANCE, 0},
+{ 80, 3216563063u, 2588067350u, 3206610957u, 3551059728u, 3216565624u, 2725656040u, 0, SINH_TOLERANCE, 0},
+{ 81, 3217464616u, 845263327u, 1073415902u, 1749010288u, 3217472337u, 3825523119u, 0, SINH_TOLERANCE, 0},
+{ 82, 3217110706u, 3092685191u, 3190678390u, 2872219490u, 3217114110u, 800542468u, 0, SINH_TOLERANCE, 0},
+{ 83, 3220412207u, 4107255722u, 3205337291u, 3069068345u, 3220757928u, 314341153u, 0, SINH_TOLERANCE, 0},
+{ 84, 3227213641u, 2294867524u, 3216653996u, 2860384670u, 3384744624u, 1311152806u, 0, SINH_TOLERANCE, 0},
+{ 85, 3214297870u, 2265437201u, 3240198679u, 1234948614u, 3214297985u, 4040406728u, 0, SINH_TOLERANCE, 0},
+{ 86, 3219505657u, 1186945904u, 3251167793u, 1896750851u, 3219618092u, 1119536396u, 0, SINH_TOLERANCE, 0},
+{ 87, 1075284022u, 3686084548u, 1079286273u, 3309277689u, 1080454714u, 2582453855u, 0, SINH_TOLERANCE, 0},
+{ 88, 3221379088u, 3006860614u, 3231412671u, 2504194724u, 3222510455u, 4288288336u, 0, SINH_TOLERANCE, 0},
+{ 89, 3224614924u, 1948717780u, 1048317852u, 3791803982u, 3248870698u, 776596525u, 0, SINH_TOLERANCE, 0},
+{ 90, 1070636471u, 4272034420u, 3192982124u, 1526175922u, 1070648746u, 3935275670u, 0, SINH_TOLERANCE, 0},
+{ 91, 3226943458u, 4108948538u, 1104691287u, 640541190u, 3359767069u, 2139002760u, 0, SINH_TOLERANCE, 0},
+{ 92, 3217743177u, 3259274853u, 1082507103u, 3677038020u, 3217756131u, 2371296595u, 0, SINH_TOLERANCE, 0},
+{ 93, 1076841042u, 3781708548u, 1096584871u, 1207386447u, 1095222699u, 77086u, 0, SINH_TOLERANCE, 0},
+{ 94, 3213861096u, 3011191657u, 1103798670u, 1096124830u, 3213861179u, 421678587u, 0, SINH_TOLERANCE, 0},
+{ 95, 1071623631u, 2540404725u, 3240157452u, 4122845725u, 1071677062u, 3895505649u, 0, SINH_TOLERANCE, 0},
+{ 96, 1076303678u, 311336721u, 3214382367u, 4212533768u, 1089026116u, 2663248725u, 0, SINH_TOLERANCE, 0},
+{ 97, 1067916643u, 1769686293u, 3240200923u, 3538602249u, 1067917158u, 222451802u, 0, SINH_TOLERANCE, 0},
+{ 98, 1075081821u, 508056696u, 1103793878u, 776520138u, 1079295536u, 2972109436u, 0, SINH_TOLERANCE, 0},
+{ 99, 1080890481u, 4064962760u, 1077424413u, 819766631u, 1423488425u, 3317334315u, 0, SINH_TOLERANCE, 0},
+{ 100, 1074178362u, 2112385259u, 3227593179u, 1187058516u, 1075900006u, 836207848u, 0, SINH_TOLERANCE, 0},
+{ 101, 1076003603u, 2514398118u, 1076579751u, 870169764u, 1085567394u, 3935623416u, 0, SINH_TOLERANCE, 0},
+{ 102, 3227977024u, 1190259653u, 1069112254u, 3417249840u, 3497647119u, 1074619959u, 0, SINH_TOLERANCE, 0},
+{ 103, 3214634603u, 3467757357u, 3215075200u, 2168175352u, 3214634818u, 3566853144u, 0, SINH_TOLERANCE, 0},
+{ 104, 3226011647u, 1508888184u, 1060430241u, 3524949092u, 3294802675u, 4152444040u, 0, SINH_TOLERANCE, 0},
+{ 105, 3215238675u, 166402802u, 3237198975u, 3572369260u, 3215239041u, 3873229460u, 0, SINH_TOLERANCE, 0},
+{ 106, 1075575366u, 2441536203u, 3202753937u, 3658194573u, 1082198547u, 1827858198u, 0, SINH_TOLERANCE, 0},
+{ 107, 1070781516u, 2479742828u, 1062342831u, 4214154303u, 1070799395u, 3712910548u, 0, SINH_TOLERANCE, 0},
+{ 108, 1076105338u, 426896765u, 1066474375u, 2201754442u, 1086731957u, 3444804028u, 0, SINH_TOLERANCE, 0},
+{ 109, 3214503389u, 2055773734u, 3239267288u, 291396537u, 3214503560u, 3311868033u, 0, SINH_TOLERANCE, 0},
+{ 110, 3224385121u, 874125203u, 3210508124u, 4091098764u, 3243570638u, 529374880u, 0, SINH_TOLERANCE, 0},
+{ 111, 1072007482u, 120488169u, 3241241441u, 1985269424u, 1072116464u, 1747805192u, 0, SINH_TOLERANCE, 0},
+{ 112, 3218073746u, 2243036871u, 3243941101u, 740033495u, 3218087608u, 785163442u, 0, SINH_TOLERANCE, 0},
+{ 113, 3218862090u, 1176656356u, 1074261978u, 3588756231u, 3218920795u, 1452796058u, 0, SINH_TOLERANCE, 0},
+{ 114, 3228699543u, 3037249392u, 1061635587u, 1173102190u, 3655813503u, 1211293113u, 0, SINH_TOLERANCE, 0},
+{ 115, 3224626669u, 2882725208u, 1071440059u, 69225090u, 3249151542u, 2351994968u, 0, SINH_TOLERANCE, 0},
+{ 116, 3218954930u, 272319256u, 1072073912u, 2493997123u, 3219023093u, 1135310123u, 0, SINH_TOLERANCE, 0},
+{ 117, 1070303098u, 188610379u, 3232757923u, 2209647371u, 1070317039u, 223028218u, 0, SINH_TOLERANCE, 0},
+{ 118, 3225224181u, 1990439193u, 1078073146u, 622849962u, 3262975180u, 3932839728u, 0, SINH_TOLERANCE, 0},
+{ 119, 1069718653u, 756052458u, 1081649113u, 2247475162u, 1069722955u, 1882814908u, 0, SINH_TOLERANCE, 0},
+{ 120, 1071060248u, 3878055211u, 3222407050u, 2979438623u, 1071093258u, 904197307u, 0, SINH_TOLERANCE, 0},
+{ 121, 3214165365u, 2676398686u, 1105124431u, 3631096636u, 3214165452u, 1700703451u, 0, SINH_TOLERANCE, 0},
+{ 122, 1071370846u, 1697791764u, 3198136112u, 2299842819u, 1071428819u, 1170196391u, 0, SINH_TOLERANCE, 0},
+{ 123, 1074939040u, 1931502677u, 3215264397u, 3016456382u, 1078464451u, 621896109u, 0, SINH_TOLERANCE, 0},
+{ 124, 1073302002u, 343404215u, 1061072607u, 4266232536u, 1073912684u, 1810041008u, 0, SINH_TOLERANCE, 0},
+{ 125, 3225502196u, 4140316002u, 1082896196u, 868256971u, 3271279372u, 3427688141u, 0, SINH_TOLERANCE, 0},
+{ 126, 1074374234u, 1864139509u, 3187675097u, 3084482407u, 1076405552u, 679411243u, 0, SINH_TOLERANCE, 0},
+{ 127, 3220191323u, 2427162817u, 3234748208u, 2715105792u, 3220382988u, 56164501u, 0, SINH_TOLERANCE, 0},
+{ 128, 1070891968u, 3943389284u, 1046724025u, 3626825684u, 1070915110u, 2070530661u, 0, SINH_TOLERANCE, 0},
+{ 129, 1067443098u, 967350972u, 1093012318u, 448002663u, 1067443436u, 161226759u, 0, SINH_TOLERANCE, 0},
+{ 130, 3228777187u, 105058217u, 1069733884u, 171786224u, 3684540794u, 2944133190u, 0, SINH_TOLERANCE, 0},
+{ 131, 3213731756u, 2863482262u, 3204997271u, 877784425u, 3213731824u, 2498719785u, 0, SINH_TOLERANCE, 0},
+{ 132, 3216260801u, 2801782962u, 3213604117u, 762347195u, 3216262185u, 215087844u, 0, SINH_TOLERANCE, 0},
+{ 133, 3224049543u, 2317950339u, 3246333414u, 2135700283u, 3239530127u, 699524600u, 0, SINH_TOLERANCE, 0},
+{ 134, 1069099309u, 4171919805u, 1082858682u, 2180920863u, 1069101966u, 54602163u, 0, SINH_TOLERANCE, 0},
+{ 135, 3221197660u, 1918836931u, 1083603224u, 3137821660u, 3222026761u, 3781661365u, 0, SINH_TOLERANCE, 0},
+{ 136, 1081882778u, 3456203663u, 3235600523u, 2335688936u, 1754633057u, 4057860990u, 0, SINH_TOLERANCE, 0},
+{ 137, 1066396570u, 4170235262u, 1051824459u, 521583737u, 1066396655u, 2875795819u, 0, SINH_TOLERANCE, 0},
+{ 138, 1075056847u, 1296623194u, 3250673860u, 2442872540u, 1079171997u, 1498836646u, 0, SINH_TOLERANCE, 0},
+{ 139, 1071121461u, 289979405u, 1049514449u, 3865737145u, 1071158661u, 3492336834u, 0, SINH_TOLERANCE, 0},
+{ 140, 1074250368u, 3699090239u, 1054539840u, 3259249360u, 1076064424u, 3480543151u, 0, SINH_TOLERANCE, 0},
+{ 141, 1079640884u, 1619819023u, 1045993352u, 1022642459u, 1229016129u, 1444182022u, 0, SINH_TOLERANCE, 0},
+{ 142, 1075141548u, 19455098u, 3229182089u, 2096003654u, 1079643410u, 3425620460u, 0, SINH_TOLERANCE, 0},
+{ 143, 1074200784u, 3803689997u, 1071630912u, 2263729518u, 1075948820u, 2127529538u, 0, SINH_TOLERANCE, 0},
+{ 144, 1080385741u, 2816837387u, 1063422305u, 2597606398u, 1330293545u, 1095829056u, 0, SINH_TOLERANCE, 0},
+{ 145, 1072245897u, 3680967506u, 1040201163u, 179224723u, 1072421412u, 1506861173u, 0, SINH_TOLERANCE, 0},
+{ 146, 3213795591u, 978126928u, 1101553990u, 4047893399u, 3213795666u, 245795167u, 0, SINH_TOLERANCE, 0},
+{ 147, 3221273469u, 4059818629u, 1042678728u, 3640293589u, 3222267219u, 1979827719u, 0, SINH_TOLERANCE, 0},
+{ 148, 3228541096u, 3383497159u, 1070002807u, 1527313008u, 3601881758u, 4173296238u, 0, SINH_TOLERANCE, 0},
+{ 149, 3216339167u, 2599946514u, 1104170406u, 2738675352u, 3216340810u, 4115543106u, 0, SINH_TOLERANCE, 0},
+{ 150, 1081115375u, 3616571377u, 1060859316u, 1130603218u, 1471256027u, 3187069287u, 0, SINH_TOLERANCE, 0},
+{ 151, 1073931644u, 3859211180u, 1067940450u, 1744531824u, 1075120505u, 3725496242u, 0, SINH_TOLERANCE, 0},
+{ 152, 1065900012u, 1958025850u, 3236511256u, 2472176453u, 1065900050u, 102691228u, 0, SINH_TOLERANCE, 0},
+{ 153, 3223669905u, 182132862u, 3250520938u, 3924356991u, 3235157931u, 2605012526u, 0, SINH_TOLERANCE, 0},
+{ 154, 3224210428u, 35632886u, 3209806504u, 1453402523u, 3241402944u, 1099360388u, 0, SINH_TOLERANCE, 0},
+{ 155, 1076182070u, 743225214u, 3202890678u, 142917400u, 1087631855u, 3778664301u, 0, SINH_TOLERANCE, 0},
+{ 156, 1075442096u, 1472665012u, 3203138231u, 256588219u, 1081376581u, 1981675785u, 0, SINH_TOLERANCE, 0},
+{ 157, 1079253522u, 1062927000u, 1061134072u, 931677439u, 1193281892u, 3538812810u, 0, SINH_TOLERANCE, 0},
+{ 158, 1069912068u, 2320910576u, 1055663370u, 288059864u, 1069918761u, 2694094192u, 0, SINH_TOLERANCE, 0},
+{ 159, 1075812365u, 1448349062u, 3199478070u, 3454027134u, 1083509354u, 1611967541u, 0, SINH_TOLERANCE, 0},
+{ 160, 3224875886u, 4215445172u, 3196654963u, 2231888973u, 3254930152u, 159529183u, 0, SINH_TOLERANCE, 0},
+{ 161, 3227757863u, 40413554u, 3232578253u, 983832844u, 3457227287u, 1304081657u, 0, SINH_TOLERANCE, 0},
+{ 162, 3221624382u, 3995725873u, 1050082319u, 777231627u, 3223289886u, 3165308644u, 0, SINH_TOLERANCE, 0},
+{ 163, 1066152450u, 672789828u, 3253385962u, 2982787335u, 1066152508u, 2270849861u, 0, SINH_TOLERANCE, 0},
+{ 164, 1072585179u, 2075971825u, 1070166500u, 4034633931u, 1072795180u, 625760053u, 0, SINH_TOLERANCE, 0},
+{ 165, 3218434785u, 1018222907u, 3244621407u, 3090050495u, 3218461130u, 3184325614u, 0, SINH_TOLERANCE, 0},
+{ 166, 1071875189u, 937732557u, 3200798890u, 2557898276u, 1071955981u, 2106364550u, 0, SINH_TOLERANCE, 0},
+{ 167, 1075196588u, 130346162u, 3223590310u, 275568693u, 1080037789u, 4060643218u, 0, SINH_TOLERANCE, 0},
+{ 168, 1065967541u, 3807416441u, 1075961161u, 3706820266u, 1065967584u, 1846334347u, 0, SINH_TOLERANCE, 0},
+{ 169, 3219244733u, 1710131411u, 1078123323u, 1900790503u, 3219305582u, 1655460974u, 0, SINH_TOLERANCE, 0},
+{ 170, 3226236449u, 3420420033u, 3210844787u, 588423066u, 3305204393u, 774296256u, 0, SINH_TOLERANCE, 0},
+{ 171, 1067509906u, 1160162008u, 3246307879u, 4265764460u, 1067510107u, 3011258957u, 0, SINH_TOLERANCE, 0},
+{ 172, 1080523338u, 366653268u, 3188814424u, 466059202u, 1355764484u, 760636581u, 0, SINH_TOLERANCE, 0},
+{ 173, 3222433435u, 1325936170u, 3221436876u, 680097612u, 3226014103u, 451044771u, 0, SINH_TOLERANCE, 0},
+{ 174, 3225711052u, 1827735934u, 3200554324u, 2875599271u, 3280980440u, 2135776268u, 0, SINH_TOLERANCE, 0},
+{ 175, 3213050498u, 3117037091u, 3239246636u, 15838845u, 3213050517u, 1419941520u, 0, SINH_TOLERANCE, 0},
+{ 176, 1067702644u, 749718883u, 3223587064u, 1523766569u, 1067702970u, 259259635u, 0, SINH_TOLERANCE, 0},
+{ 177, 1066853747u, 1966536294u, 3250158026u, 699164258u, 1066853872u, 2121245996u, 0, SINH_TOLERANCE, 0},
+{ 178, 1079174067u, 3759049394u, 1106085272u, 1183789499u, 1185944512u, 3807740687u, 0, SINH_TOLERANCE, 0},
+{ 179, 1074910167u, 1970107747u, 1095245453u, 2308233883u, 1078299954u, 1401061375u, 0, SINH_TOLERANCE, 0},
+{ 180, 1076367836u, 1491017852u, 1041444355u, 1723375725u, 1089770148u, 2037337769u, 0, SINH_TOLERANCE, 0},
+{ 181, 3219775798u, 1141349287u, 1097465301u, 3403438584u, 3219966827u, 1978333015u, 0, SINH_TOLERANCE, 0},
+{ 182, 3224280452u, 1711085243u, 3250239076u, 1377484108u, 3242260066u, 2040662695u, 0, SINH_TOLERANCE, 0},
+{ 183, 1079510651u, 2880275004u, 1084039594u, 1611394950u, 1216939131u, 2867297031u, 0, SINH_TOLERANCE, 0},
+{ 184, 3224784251u, 2626629370u, 1063771493u, 1499080813u, 3252818758u, 3654476853u, 0, SINH_TOLERANCE, 0},
+{ 185, 1068862751u, 3936262414u, 1103919063u, 3175668759u, 1068864420u, 3355343590u, 0, SINH_TOLERANCE, 0},
+{ 186, 3217418903u, 1270950554u, 3194616071u, 3680565379u, 3217425931u, 2626956574u, 0, SINH_TOLERANCE, 0},
+{ 187, 3217585407u, 1066985223u, 3221613219u, 4089383168u, 3217595177u, 2758529977u, 0, SINH_TOLERANCE, 0},
+{ 188, 3220204567u, 4017329311u, 3208334452u, 1667591498u, 3220403741u, 3773555337u, 0, SINH_TOLERANCE, 0},
+{ 189, 1077678397u, 3154656624u, 1061894279u, 3886344038u, 1114014484u, 1143078455u, 0, SINH_TOLERANCE, 0},
+{ 190, 1068478737u, 977586119u, 3209762784u, 953839852u, 1068480063u, 3125582187u, 0, SINH_TOLERANCE, 0},
+{ 191, 1081896575u, 143071571u, 3206165386u, 913097445u, 1759744561u, 1725664653u, 0, SINH_TOLERANCE, 0},
+{ 192, 3213634128u, 1371169579u, 1057079837u, 2594818628u, 3213634186u, 2168291476u, 0, SINH_TOLERANCE, 0},
+{ 193, 3228724664u, 2259342224u, 3217432469u, 1824221478u, 3665098139u, 1347867273u, 0, SINH_TOLERANCE, 0},
+{ 194, 3227960407u, 1576604497u, 1079368611u, 185078728u, 3494590082u, 3370329867u, 0, SINH_TOLERANCE, 0},
+{ 195, 3221679427u, 444800035u, 3243343143u, 1734989302u, 3223421390u, 942989703u, 0, SINH_TOLERANCE, 0},
+{ 196, 1072748883u, 130452005u, 1041548088u, 2158433515u, 1072964584u, 1354781505u, 0, SINH_TOLERANCE, 0},
+{ 197, 3225258784u, 1941318385u, 1045807374u, 792193370u, 3263733935u, 3103118402u, 0, SINH_TOLERANCE, 0},
+{ 198, 3225716754u, 1299392207u, 3212131720u, 3205732280u, 3281185351u, 3451158556u, 0, SINH_TOLERANCE, 0},
+{ 199, 1079824436u, 3035093505u, 1052187689u, 3287702190u, 1245928697u, 3659026689u, 0, SINH_TOLERANCE, 0},
+{ 200, 3227801892u, 2160225215u, 1102624859u, 836655570u, 3465336758u, 1753278920u, 0, SINH_TOLERANCE, 0},
+{ 201, 1079946410u, 3360816360u, 3246176356u, 172860634u, 1257254087u, 595783054u, 0, SINH_TOLERANCE, 0},
+{ 202, 1073092940u, 146831910u, 1051558014u, 2340722078u, 1073599372u, 3905963492u, 0, SINH_TOLERANCE, 0},
+{ 203, 3224124895u, 1603798153u, 3207725532u, 1099413093u, 3240408342u, 2401373921u, 0, SINH_TOLERANCE, 0},
+{ 204, 3227804010u, 2429340443u, 3190303581u, 3223770005u, 3465719079u, 1901620640u, 0, SINH_TOLERANCE, 0},
+{ 205, 1073785807u, 955542166u, 3230415151u, 275583938u, 1074767130u, 782981864u, 0, SINH_TOLERANCE, 0},
+{ 206, 1078291818u, 513397822u, 1090646554u, 2089321329u, 1136418636u, 351397573u, 0, SINH_TOLERANCE, 0},
+{ 207, 3214141396u, 2782073372u, 1046063872u, 4023829068u, 3214141478u, 3470574014u, 0, SINH_TOLERANCE, 0},
+{ 208, 1079690454u, 3242223094u, 3194111199u, 4264674108u, 1233536710u, 346227329u, 0, SINH_TOLERANCE, 0},
+{ 209, 3225927909u, 3506346169u, 1047020885u, 1742757458u, 3290905540u, 2781434878u, 0, SINH_TOLERANCE, 0},
+{ 210, 3214684573u, 1265459564u, 3193450280u, 3650514880u, 3214684806u, 3227027441u, 0, SINH_TOLERANCE, 0},
+{ 211, 1075464434u, 1525260440u, 3235452527u, 2612331392u, 1081496066u, 4039055639u, 0, SINH_TOLERANCE, 0},
+{ 212, 3227697400u, 1263613754u, 3219096387u, 635677201u, 3446002556u, 459760033u, 0, SINH_TOLERANCE, 0},
+{ 213, 3217806423u, 4140947288u, 3200792376u, 2013265346u, 3217820826u, 3694261486u, 0, SINH_TOLERANCE, 0},
+{ 214, 3227954296u, 1912759945u, 3237045253u, 1351396825u, 3493449759u, 1464931509u, 0, SINH_TOLERANCE, 0},
+{ 215, 3228282218u, 1001433078u, 3206926643u, 2741676659u, 3553998392u, 3156202362u, 0, SINH_TOLERANCE, 0},
+{ 216, 1075680726u, 1088945233u, 1085095743u, 3986114865u, 1082750958u, 1712535816u, 0, SINH_TOLERANCE, 0},
+{ 217, 3219928361u, 831239754u, 1099828675u, 3071308141u, 3220177067u, 3013293181u, 0, SINH_TOLERANCE, 0},
+{ 218, 3222688769u, 3473592372u, 1102759382u, 1309576357u, 3227556285u, 86503062u, 0, SINH_TOLERANCE, 0},
+{ 219, 3229166610u, 2042340367u, 1091945628u, 2062772374u, 3828389411u, 210474498u, 0, SINH_TOLERANCE, 0},
+{ 220, 3214688631u, 1840632537u, 1096533424u, 807510337u, 3214688866u, 1833588338u, 0, SINH_TOLERANCE, 0},
+{ 221, 3224111690u, 144814872u, 3212698915u, 2282965697u, 3240278280u, 1680573330u, 0, SINH_TOLERANCE, 0},
+{ 222, 1073333582u, 2552499583u, 3229111426u, 1470130815u, 1073953220u, 2448530468u, 0, SINH_TOLERANCE, 0},
+{ 223, 3227364425u, 2858583811u, 1089760910u, 6360994u, 3398621475u, 697276436u, 0, SINH_TOLERANCE, 0},
+{ 224, 3215042145u, 1614537194u, 1075198900u, 4088705365u, 3215042374u, 2084690356u, 0, SINH_TOLERANCE, 0},
+{ 225, 3228918974u, 3545570051u, 1065221325u, 1629217700u, 3736891221u, 229769802u, 0, SINH_TOLERANCE, 0},
+{ 226, 1072744324u, 1813392963u, 3235313361u, 3772501596u, 1072957268u, 788993454u, 0, SINH_TOLERANCE, 0},
+{ 227, 3215677054u, 2406734491u, 1042055360u, 89226663u, 3215677905u, 4217154675u, 0, SINH_TOLERANCE, 0},
+{ 228, 3214625449u, 1618759139u, 3194723421u, 3888234802u, 3214625661u, 565975092u, 0, SINH_TOLERANCE, 0},
+{ 229, 1068988736u, 3590035633u, 3212424262u, 2892456615u, 1068990893u, 1943451309u, 0, SINH_TOLERANCE, 0},
+{ 230, 3213011732u, 2431246964u, 3241512456u, 183850734u, 3213011749u, 2185322308u, 0, SINH_TOLERANCE, 0},
+{ 231, 1076918189u, 3088319870u, 3211544311u, 862225364u, 1096486112u, 1720101545u, 0, SINH_TOLERANCE, 0},
+{ 232, 3224808904u, 3495352775u, 1058576726u, 596957268u, 3253359765u, 1924270502u, 0, SINH_TOLERANCE, 0},
+{ 233, 1066476292u, 1839214511u, 3205004060u, 1923240983u, 1066476344u, 3656567561u, 0, SINH_TOLERANCE, 0},
+{ 234, 1069608200u, 739619702u, 3223356436u, 2689885273u, 1069611435u, 2976591864u, 0, SINH_TOLERANCE, 0},
+{ 235, 3216053611u, 2143376228u, 1098306332u, 3760236188u, 3216054442u, 2867204403u, 0, SINH_TOLERANCE, 0},
+{ 236, 1074621795u, 671680995u, 1091262633u, 2315535361u, 1077135219u, 2370927173u, 0, SINH_TOLERANCE, 0},
+{ 237, 3219408869u, 2493598049u, 3194927008u, 1689107592u, 3219499652u, 2900639705u, 0, SINH_TOLERANCE, 0},
+{ 238, 3213058631u, 1578976988u, 1066368383u, 2117279163u, 3213058650u, 1436428687u, 0, SINH_TOLERANCE, 0},
+{ 239, 3221939535u, 3425290087u, 1098487295u, 1263412017u, 3224162222u, 1577636136u, 0, SINH_TOLERANCE, 0},
+{ 240, 3217869948u, 3635396812u, 1070999426u, 3965655689u, 3217885912u, 1810535642u, 0, SINH_TOLERANCE, 0},
+{ 241, 1069633530u, 2183973116u, 1101098363u, 1118613350u, 1069636992u, 3963026814u, 0, SINH_TOLERANCE, 0},
+{ 242, 3221946089u, 199516350u, 1078368488u, 164621458u, 3224186028u, 831736535u, 0, SINH_TOLERANCE, 0},
+{ 243, 3212871842u, 3570940805u, 3230316437u, 3596080877u, 3212871854u, 2583868315u, 0, SINH_TOLERANCE, 0},
+{ 244, 3217646749u, 980880313u, 1079833442u, 884465057u, 3217657686u, 1885631914u, 0, SINH_TOLERANCE, 0},
+{ 245, 1080054180u, 2558179220u, 1052873711u, 1233598120u, 1269060948u, 2524660391u, 0, SINH_TOLERANCE, 0},
+{ 246, 1067038165u, 1909994277u, 1085015978u, 2991527452u, 1067038342u, 2067589378u, 0, SINH_TOLERANCE, 0},
+{ 247, 1070292444u, 1680290941u, 1074309900u, 2943870846u, 1070306139u, 2207543847u, 0, SINH_TOLERANCE, 0},
+{ 248, 1069981892u, 1451927357u, 3228615456u, 1502585517u, 1069989628u, 2151766963u, 0, SINH_TOLERANCE, 0},
+{ 249, 3224677615u, 751136990u, 3230392165u, 3493275472u, 3250350519u, 215829603u, 0, SINH_TOLERANCE, 0},
+{ 250, 1079491599u, 1209623292u, 3238056647u, 979495322u, 1215252451u, 1345426533u, 0, SINH_TOLERANCE, 0},
+{ 251, 3228404200u, 1717672108u, 1048120593u, 531240316u, 3576583348u, 3462906838u, 0, SINH_TOLERANCE, 0},
+{ 252, 1068854987u, 3548721654u, 1086112947u, 3391817224u, 1068856629u, 1346987568u, 0, SINH_TOLERANCE, 0},
+{ 253, 1074691123u, 2758195125u, 1100880260u, 2028440924u, 1077318695u, 1850026137u, 0, SINH_TOLERANCE, 0},
+{ 254, 1076883861u, 2750123373u, 3232200256u, 1086294931u, 1095793270u, 788833141u, 0, SINH_TOLERANCE, 0},
+{ 255, 1065978768u, 2986160931u, 1076097908u, 2540046258u, 1065978812u, 456035946u, 0, SINH_TOLERANCE, 0},
+{ 256, 3224990842u, 451471221u, 1064816262u, 4187644495u, 3257560213u, 655095513u, 0, SINH_TOLERANCE, 0},
+{ 257, 1080585860u, 2439500162u, 1065280276u, 1979490284u, 1367314315u, 4075308906u, 0, SINH_TOLERANCE, 0},
+{ 258, 1065581656u, 2283342035u, 1078398157u, 1345997553u, 1065581675u, 3431319782u, 0, SINH_TOLERANCE, 0},
+{ 259, 3219540804u, 179066662u, 1103272172u, 1217337578u, 3219661899u, 793514991u, 0, SINH_TOLERANCE, 0},
+{ 260, 3218902409u, 3779303391u, 3210023352u, 3115946280u, 3218965105u, 3754433598u, 0, SINH_TOLERANCE, 0},
+{ 261, 3213961394u, 286247089u, 1085153597u, 713645369u, 3213961446u, 2979021742u, 0, SINH_TOLERANCE, 0},
+{ 262, 1077941860u, 1468283899u, 1042831668u, 2022736418u, 1120232171u, 2888650454u, 0, SINH_TOLERANCE, 0},
+{ 263, 1076847649u, 3305564080u, 1065483445u, 482392433u, 1095303241u, 3604886057u, 0, SINH_TOLERANCE, 0},
+{ 264, 3216375871u, 2256346551u, 3222430705u, 2071674991u, 3216377647u, 352947026u, 0, SINH_TOLERANCE, 0},
+{ 265, 3216607607u, 2295269094u, 1084451053u, 2773103941u, 3216610384u, 2228424851u, 0, SINH_TOLERANCE, 0},
+{ 266, 1075028218u, 1482721827u, 1092243422u, 3125409590u, 1079044124u, 678493382u, 0, SINH_TOLERANCE, 0},
+{ 267, 3221065973u, 1381740563u, 1071545057u, 2918235653u, 3221799264u, 4207176249u, 0, SINH_TOLERANCE, 0},
+{ 268, 3226133060u, 1105857967u, 3241990046u, 2703723225u, 3300377169u, 2850491479u, 0, SINH_TOLERANCE, 0},
+{ 269, 1066084243u, 174689677u, 1079333374u, 3947057014u, 1066084295u, 792069421u, 0, SINH_TOLERANCE, 0},
+{ 270, 1077878947u, 2023082423u, 3242081486u, 1169047927u, 1118700325u, 3426525989u, 0, SINH_TOLERANCE, 0},
+{ 271, 1070817355u, 3742487766u, 1043425732u, 194972788u, 1070836843u, 2697250326u, 0, SINH_TOLERANCE, 0},
+{ 272, 3220083283u, 2136071361u, 3211529757u, 993675115u, 3220289585u, 3678611411u, 0, SINH_TOLERANCE, 0},
+{ 273, 3219954837u, 210772141u, 3241441539u, 580731413u, 3220195874u, 2430117404u, 0, SINH_TOLERANCE, 0},
+{ 274, 1078111773u, 1751560711u, 1074522705u, 180987057u, 1128126630u, 2518765659u, 0, SINH_TOLERANCE, 0},
+{ 275, 1071997471u, 2552236599u, 1088658621u, 2112468655u, 1072104117u, 1550733082u, 0, SINH_TOLERANCE, 0},
+{ 276, 3213407865u, 1578223762u, 3224596567u, 2456166162u, 3213407904u, 2884085031u, 0, SINH_TOLERANCE, 0},
+{ 277, 1070041301u, 2110924310u, 1086207177u, 3161208323u, 1070050006u, 1195631688u, 0, SINH_TOLERANCE, 0},
+{ 278, 3223474786u, 2352173188u, 1079361728u, 4070222179u, 3232929497u, 462910145u, 0, SINH_TOLERANCE, 0},
+{ 279, 1080041384u, 2481562701u, 1090937016u, 3809489716u, 1266749058u, 404634930u, 0, SINH_TOLERANCE, 0},
+{ 280, 3215877019u, 330905705u, 1086260896u, 90264431u, 3215878188u, 2685456633u, 0, SINH_TOLERANCE, 0},
+{ 281, 1065895785u, 4162008079u, 3194387916u, 759522153u, 1065895823u, 1027681385u, 0, SINH_TOLERANCE, 0},
+{ 282, 1075772157u, 1839697482u, 3216442625u, 2211508949u, 1083313275u, 2003409679u, 0, SINH_TOLERANCE, 0},
+{ 283, 3227787115u, 3736863454u, 1063475914u, 3150741666u, 3462594462u, 1556023783u, 0, SINH_TOLERANCE, 0},
+{ 284, 1070223067u, 4200269406u, 3236646101u, 1061812176u, 1070235232u, 1741891654u, 0, SINH_TOLERANCE, 0},
+{ 285, 1074975099u, 106027290u, 3234978297u, 2245237549u, 1078697030u, 3526667572u, 0, SINH_TOLERANCE, 0},
+{ 286, 3228109966u, 2132131375u, 3250483427u, 3449276437u, 3522246034u, 2754991195u, 0, SINH_TOLERANCE, 0},
+{ 287, 1077854442u, 2334440944u, 1105423490u, 4004336184u, 1118086726u, 1452344798u, 0, SINH_TOLERANCE, 0},
+{ 288, 3220869856u, 4090088208u, 1042030013u, 3898658299u, 3221506976u, 2943359694u, 0, SINH_TOLERANCE, 0},
+{ 289, 3217345248u, 2272831437u, 3253082595u, 2639188641u, 3217351249u, 937504904u, 0, SINH_TOLERANCE, 0},
+{ 290, 1069446748u, 1856594168u, 3189515294u, 4101853676u, 1069451463u, 207745592u, 0, SINH_TOLERANCE, 0},
+{ 291, 1073915260u, 2211699255u, 3195060344u, 3865018604u, 1075077315u, 1122754602u, 0, SINH_TOLERANCE, 0},
+{ 292, 3227038370u, 996259334u, 3241496889u, 3782673116u, 3368486895u, 1357097126u, 0, SINH_TOLERANCE, 0},
+{ 293, 1080256379u, 3840380763u, 1048674041u, 550040067u, 1306461489u, 928374556u, 0, SINH_TOLERANCE, 0},
+{ 294, 3229399497u, 95874100u, 3237232828u, 2645647822u, 3914393491u, 3490239415u, 0, SINH_TOLERANCE, 0},
+{ 295, 1065685736u, 3441419500u, 3252367038u, 876710419u, 1065685761u, 747186119u, 0, SINH_TOLERANCE, 0},
+{ 296, 3226010640u, 2560836004u, 3199616543u, 1180840586u, 3294765597u, 3335028675u, 0, SINH_TOLERANCE, 0},
+{ 297, 3221602966u, 2218230392u, 3227485787u, 3947214579u, 3223206580u, 596607458u, 0, SINH_TOLERANCE, 0},
+{ 298, 1075345350u, 1447312532u, 1081476588u, 780366847u, 1080842179u, 1919408192u, 0, SINH_TOLERANCE, 0},
+{ 299, 1073618219u, 2842113832u, 3216156731u, 225159029u, 1074374943u, 330409901u, 0, SINH_TOLERANCE, 0},
+{ 300, 1079242825u, 1601981129u, 3234628869u, 2236538344u, 1192276494u, 2364090570u, 0, SINH_TOLERANCE, 0},
+{ 301, 1076784916u, 2194185737u, 3242362684u, 87913366u, 1094646719u, 2239128626u, 0, SINH_TOLERANCE, 0},
+{ 302, 3215861096u, 1346862963u, 1077836259u, 3604666660u, 3215862238u, 131026731u, 0, SINH_TOLERANCE, 0},
+{ 303, 3218547435u, 3115209742u, 1099332326u, 1325101950u, 3218580678u, 1073637587u, 0, SINH_TOLERANCE, 0},
+{ 304, 3221400314u, 3889223100u, 1053247613u, 3371396923u, 3222564618u, 3686805317u, 0, SINH_TOLERANCE, 0},
+{ 305, 3220477868u, 4163120793u, 1075022670u, 1387631215u, 3220882547u, 4294098022u, 0, SINH_TOLERANCE, 0},
+{ 306, 3218064691u, 1532426189u, 1063168268u, 3397022615u, 3218082939u, 3460824787u, 0, SINH_TOLERANCE, 0},
+{ 307, 3216761961u, 89324166u, 1079206060u, 3429424710u, 3216765579u, 3222365633u, 0, SINH_TOLERANCE, 0},
+{ 308, 3214345198u, 747591401u, 1072238381u, 2803213904u, 3214345325u, 733695999u, 0, SINH_TOLERANCE, 0},
+{ 309, 1078530868u, 271904221u, 1044258318u, 1858545114u, 1147431148u, 2228394364u, 0, SINH_TOLERANCE, 0},
+{ 310, 3222826034u, 314958082u, 3249912496u, 2966213175u, 3228304941u, 2781809662u, 0, SINH_TOLERANCE, 0},
+{ 311, 3215005206u, 3119528953u, 3217179014u, 2908718240u, 3215005414u, 2487197027u, 0, SINH_TOLERANCE, 0},
+{ 312, 3226738936u, 2018361566u, 1100926600u, 3985805054u, 3340885170u, 2660715245u, 0, SINH_TOLERANCE, 0},
+{ 313, 1073278308u, 409584884u, 3239758947u, 755795129u, 1073882999u, 2403224777u, 0, SINH_TOLERANCE, 0},
+{ 314, 1074723870u, 1819156379u, 3251342302u, 2982669005u, 1077414156u, 206759069u, 0, SINH_TOLERANCE, 0},
+{ 315, 1080591913u, 2080534280u, 3188254060u, 449171797u, 1368425681u, 3068381489u, 0, SINH_TOLERANCE, 0},
+{ 316, 1079179684u, 168744837u, 3214950009u, 1322217822u, 1186375305u, 280204842u, 0, SINH_TOLERANCE, 0},
+{ 317, 3229061076u, 3250487255u, 1062120700u, 1876195180u, 3789387354u, 3427323764u, 0, SINH_TOLERANCE, 0},
+{ 318, 3223197752u, 1336400247u, 1098057903u, 3314079581u, 3230461251u, 2522157667u, 0, SINH_TOLERANCE, 0},
+{ 319, 3216261732u, 265025555u, 1063854282u, 3779482256u, 3216263118u, 1599530040u, 0, SINH_TOLERANCE, 0},
+{ 320, 1072543381u, 887044257u, 1054789618u, 2732056261u, 1072764380u, 3999798978u, 0, SINH_TOLERANCE, 0},
+{ 321, 1067932534u, 4027115185u, 3191764868u, 2940199511u, 1067933065u, 4060882640u, 0, SINH_TOLERANCE, 0},
+{ 322, 3216131643u, 2875684421u, 3227459837u, 2251967570u, 3216132661u, 231686101u, 0, SINH_TOLERANCE, 0},
+{ 323, 1071633020u, 284173546u, 3238823679u, 3557800647u, 1071682346u, 3259838679u, 0, SINH_TOLERANCE, 0},
+{ 324, 1080487040u, 3147771266u, 3220110464u, 2933364246u, 1348984230u, 3038347863u, 0, SINH_TOLERANCE, 0},
+{ 325, 1071144616u, 3366183281u, 3234870843u, 537442654u, 1071183491u, 3423748941u, 0, SINH_TOLERANCE, 0},
+{ 326, 3227341572u, 2529029548u, 3249882819u, 3781513577u, 3396513810u, 3889526767u, 0, SINH_TOLERANCE, 0},
+{ 327, 3219727810u, 1080845539u, 3206760016u, 911778687u, 3219902760u, 138373121u, 0, SINH_TOLERANCE, 0},
+{ 328, 3213971132u, 469586759u, 1091830022u, 3080528840u, 3213971186u, 495533731u, 0, SINH_TOLERANCE, 0},
+{ 329, 1075006224u, 2863108169u, 3225605506u, 2508274250u, 1078925189u, 2503084824u, 0, SINH_TOLERANCE, 0},
+{ 330, 3218167016u, 4080017377u, 3206492941u, 1470284690u, 3218180951u, 780495425u, 0, SINH_TOLERANCE, 0},
+{ 331, 3217606150u, 3867917386u, 1102054928u, 3504746045u, 3217616306u, 230129894u, 0, SINH_TOLERANCE, 0},
+{ 332, 1070813735u, 2962134101u, 3244741577u, 3390537350u, 1070833056u, 3194305917u, 0, SINH_TOLERANCE, 0},
+{ 333, 1077716053u, 1702237980u, 1071598971u, 1102587474u, 1114898104u, 2058865259u, 0, SINH_TOLERANCE, 0},
+{ 334, 3216601606u, 2180218657u, 3211592260u, 1206527853u, 3216604353u, 3078689379u, 0, SINH_TOLERANCE, 0},
+{ 335, 3215959112u, 394130786u, 3242511482u, 2437699868u, 3215960432u, 1415290187u, 0, SINH_TOLERANCE, 0},
+{ 336, 1066257155u, 849581558u, 3252006507u, 2008614943u, 1066257224u, 282221784u, 0, SINH_TOLERANCE, 0},
+{ 337, 3218528622u, 3128971673u, 3249137531u, 2773583059u, 3218560638u, 88939490u, 0, SINH_TOLERANCE, 0},
+{ 338, 1076641258u, 590727700u, 3248651761u, 2183878539u, 1092924806u, 51929635u, 0, SINH_TOLERANCE, 0},
+{ 339, 1080127109u, 820687580u, 3208143496u, 1402434664u, 1282555424u, 2229435922u, 0, SINH_TOLERANCE, 0},
+{ 340, 3229222163u, 1873709254u, 3245167989u, 44275991u, 3848835562u, 2238140986u, 0, SINH_TOLERANCE, 0},
+{ 341, 3213786001u, 1174874204u, 3208263730u, 2360372288u, 3213786075u, 153092394u, 0, SINH_TOLERANCE, 0},
+{ 342, 1081834580u, 937573440u, 3208953761u, 211240241u, 1736830458u, 1339532059u, 0, SINH_TOLERANCE, 0},
+{ 343, 3226771718u, 2469774991u, 1043117070u, 3380071805u, 3343942432u, 2866315288u, 0, SINH_TOLERANCE, 0},
+{ 344, 1069655378u, 442507560u, 3254252803u, 3257889649u, 1069659044u, 2321832567u, 0, SINH_TOLERANCE, 0},
+{ 345, 1071996248u, 1854921625u, 1049810168u, 2729627545u, 1072102611u, 224823680u, 0, SINH_TOLERANCE, 0},
+{ 346, 3229546805u, 4001809575u, 3240128649u, 278261523u, 3968809266u, 2670070781u, 0, SINH_TOLERANCE, 0},
+{ 347, 1077787510u, 1793907966u, 3238955714u, 398859249u, 1116585698u, 3075914843u, 0, SINH_TOLERANCE, 0},
+{ 348, 3216681187u, 2511916952u, 3219195283u, 1697158299u, 3216684347u, 1388274922u, 0, SINH_TOLERANCE, 0},
+{ 349, 1073131276u, 3230931724u, 3243897690u, 3508781585u, 1073681796u, 922114116u, 0, SINH_TOLERANCE, 0},
+{ 350, 1081827510u, 1674254897u, 1046547577u, 217148561u, 1734293969u, 3735031445u, 0, SINH_TOLERANCE, 0},
+{ 351, 3218603986u, 3275604304u, 3194840159u, 2991205850u, 3218641107u, 2637578362u, 0, SINH_TOLERANCE, 0},
+{ 352, 3214123743u, 3509997278u, 3248888030u, 3897986511u, 3214123822u, 2950940351u, 0, SINH_TOLERANCE, 0},
+{ 353, 1067105379u, 2156824613u, 1042295665u, 1239257646u, 1067105578u, 2500490561u, 0, SINH_TOLERANCE, 0},
+{ 354, 3219555541u, 1073153314u, 3250031627u, 2567234990u, 3219680399u, 691531294u, 0, SINH_TOLERANCE, 0},
+{ 355, 3213662084u, 4261696995u, 3197784432u, 323702024u, 3213662145u, 3701862471u, 0, SINH_TOLERANCE, 0},
+{ 356, 3226913781u, 4075177615u, 3202791065u, 1919006082u, 3356983595u, 316750843u, 0, SINH_TOLERANCE, 0},
+{ 357, 3225638525u, 386429966u, 1086504491u, 3698826164u, 3277573598u, 2126562020u, 0, SINH_TOLERANCE, 0},
+{ 358, 1075181462u, 1681986446u, 3194985869u, 3072950140u, 1079924210u, 784773996u, 0, SINH_TOLERANCE, 0},
+{ 359, 3220457661u, 3719038997u, 1055433962u, 3331415058u, 3220843486u, 2654529157u, 0, SINH_TOLERANCE, 0},
+{ 360, 1070186897u, 2420250111u, 3238002206u, 1928661079u, 1070198311u, 1487723955u, 0, SINH_TOLERANCE, 0},
+{ 361, 1075622754u, 3679866727u, 3227386672u, 1273835792u, 1082419811u, 742653643u, 0, SINH_TOLERANCE, 0},
+{ 362, 1065739986u, 2682092368u, 3234222284u, 1325425811u, 1065740013u, 4224425207u, 0, SINH_TOLERANCE, 0},
+{ 363, 1068895525u, 4175172697u, 3208346191u, 2130706153u, 1068897313u, 3265095977u, 0, SINH_TOLERANCE, 0},
+{ 364, 1078458136u, 1200784450u, 1083605096u, 1248595607u, 1144110494u, 3624009342u, 0, SINH_TOLERANCE, 0},
+{ 365, 3219133743u, 1897285171u, 3251296075u, 944966123u, 3219178679u, 1447338460u, 0, SINH_TOLERANCE, 0},
+{ 366, 3225642610u, 2270747330u, 3230692631u, 422503284u, 3277815552u, 3544140092u, 0, SINH_TOLERANCE, 0},
+{ 367, 1076780005u, 2857564741u, 1075647403u, 3308906709u, 1094572049u, 3220040017u, 0, SINH_TOLERANCE, 0},
+{ 368, 3216058010u, 1380066948u, 3232612906u, 2613634294u, 3216058851u, 1403158136u, 0, SINH_TOLERANCE, 0},
+{ 369, 1071230888u, 4022784584u, 1060483857u, 3264056381u, 1071276446u, 3720296609u, 0, SINH_TOLERANCE, 0},
+{ 370, 1066657500u, 1778509100u, 3213146285u, 2665833973u, 1066657582u, 2265604069u, 0, SINH_TOLERANCE, 0},
+{ 371, 3219873028u, 1859175955u, 1079949560u, 4258450607u, 3220099701u, 3035173045u, 0, SINH_TOLERANCE, 0},
+{ 372, 1067151756u, 4128020197u, 1076266146u, 4122840980u, 1067151972u, 1167410825u, 0, SINH_TOLERANCE, 0},
+{ 373, 3214154683u, 2454653987u, 3229487005u, 2977478685u, 3214154768u, 1150917103u, 0, SINH_TOLERANCE, 0},
+{ 374, 3229439235u, 1355181872u, 1095308770u, 436846481u, 3929070978u, 3622868306u, 0, SINH_TOLERANCE, 0},
+{ 375, 3227730934u, 2592856453u, 3247825559u, 3195234082u, 3452203538u, 3199167818u, 0, SINH_TOLERANCE, 0},
+{ 376, 3222118023u, 3554670043u, 1091621009u, 3321236467u, 3224650387u, 3339361833u, 0, SINH_TOLERANCE, 0},
+{ 377, 1072158561u, 1936670355u, 1095715713u, 2958468553u, 1072307177u, 2128853725u, 0, SINH_TOLERANCE, 0},
+{ 378, 3214311205u, 2960339502u, 1098808013u, 1044068983u, 3214311324u, 1253149122u, 0, SINH_TOLERANCE, 0},
+{ 379, 3215565553u, 4093388677u, 1095478112u, 1735930261u, 3215566256u, 371308307u, 0, SINH_TOLERANCE, 0},
+{ 380, 1078457390u, 1807398746u, 3195743135u, 4261616162u, 1144084329u, 2733988366u, 0, SINH_TOLERANCE, 0},
+{ 381, 3218731378u, 3250576797u, 1059002384u, 3043079652u, 3218778325u, 1763903275u, 0, SINH_TOLERANCE, 0},
+{ 382, 1072352837u, 666051428u, 3208765404u, 1912684117u, 1072565620u, 198637196u, 0, SINH_TOLERANCE, 0},
+{ 383, 1081467324u, 1949030179u, 1096388934u, 896459246u, 1601250663u, 4124280137u, 0, SINH_TOLERANCE, 0},
+{ 384, 1068980717u, 622499767u, 1066707637u, 1490260486u, 1068982840u, 857891073u, 0, SINH_TOLERANCE, 0},
+{ 385, 1081522669u, 1490616165u, 3251242436u, 795675736u, 1621632025u, 1772451300u, 0, SINH_TOLERANCE, 0},
+{ 386, 1075701016u, 3662877092u, 3234317146u, 3200513112u, 1082885282u, 2746304375u, 0, SINH_TOLERANCE, 0},
+{ 387, 1076748754u, 1356101968u, 3236536816u, 3062844611u, 1094157143u, 1389518646u, 0, SINH_TOLERANCE, 0},
+{ 388, 3220971216u, 2284484846u, 3219498359u, 3240896015u, 3221651609u, 3542669521u, 0, SINH_TOLERANCE, 0},
+{ 389, 3225273929u, 494503287u, 1092811254u, 142673998u, 3264153529u, 3833198838u, 0, SINH_TOLERANCE, 0},
+{ 390, 3229057244u, 3394882641u, 3225306538u, 364852125u, 3787923162u, 3261908140u, 0, SINH_TOLERANCE, 0},
+{ 391, 3222116035u, 193885269u, 1088149839u, 1359805831u, 3224645354u, 2483580248u, 0, SINH_TOLERANCE, 0},
+{ 392, 3216213422u, 592580907u, 3199560872u, 3086438952u, 3216214662u, 2295456676u, 0, SINH_TOLERANCE, 0},
+{ 393, 1070004424u, 1778008540u, 1049064687u, 73581647u, 1070012518u, 4215499617u, 0, SINH_TOLERANCE, 0},
+{ 394, 3227859230u, 233240285u, 1081923320u, 2710903921u, 3475955001u, 481819950u, 0, SINH_TOLERANCE, 0},
+{ 395, 1072659495u, 3719878805u, 1079866720u, 3615458228u, 1072851077u, 476577070u, 0, SINH_TOLERANCE, 0},
+{ 396, 3221194724u, 3647632375u, 3247225271u, 3839959621u, 3222021386u, 1060692731u, 0, SINH_TOLERANCE, 0},
+{ 397, 1081381000u, 2232210456u, 3235434773u, 224271737u, 1569318353u, 1467736445u, 0, SINH_TOLERANCE, 0},
+{ 398, 3213975204u, 2134662911u, 3190390590u, 4239009051u, 3213975259u, 373017924u, 0, SINH_TOLERANCE, 0},
+{ 399, 1075283265u, 2305279897u, 1077668039u, 1854523320u, 1080450473u, 3751266535u, 0, SINH_TOLERANCE, 0},
+{ 400, 3220912835u, 538224650u, 3206153057u, 1379649610u, 3221566709u, 621166734u, 0, SINH_TOLERANCE, 0},
+{ 401, 3215284875u, 3683897920u, 3244167599u, 3647579469u, 3215285281u, 2558802378u, 0, SINH_TOLERANCE, 0},
+{ 402, 1077698021u, 2694093608u, 1042775347u, 598406111u, 1114529526u, 2696598259u, 0, SINH_TOLERANCE, 0},
+{ 403, 3218975424u, 872706833u, 1084802480u, 2200602798u, 3219045805u, 4704362u, 0, SINH_TOLERANCE, 0},
+{ 404, 1065408269u, 904146293u, 1060867322u, 1729685598u, 1065408281u, 2779125568u, 0, SINH_TOLERANCE, 0},
+{ 405, 3214569338u, 1894173462u, 3232800651u, 191960416u, 3214569530u, 3800340619u, 0, SINH_TOLERANCE, 0},
+{ 406, 1078642431u, 3521028551u, 1054522089u, 3287274359u, 1152594773u, 3672113002u, 0, SINH_TOLERANCE, 0},
+{ 407, 1079658324u, 959640601u, 3201578263u, 4136915018u, 1230574401u, 2234964481u, 0, SINH_TOLERANCE, 0},
+{ 408, 1071345483u, 1553716379u, 1106027987u, 984725765u, 1071401055u, 4171733850u, 0, SINH_TOLERANCE, 0},
+{ 409, 3226249729u, 2287646644u, 3240329321u, 2276183378u, 3305774759u, 3692605402u, 0, SINH_TOLERANCE, 0},
+{ 410, 1072403478u, 3940225170u, 3199544434u, 997572161u, 1072635674u, 1085220696u, 0, SINH_TOLERANCE, 0},
+{ 411, 3219059817u, 36116288u, 3206886566u, 4196602670u, 3219134081u, 965678204u, 0, SINH_TOLERANCE, 0},
+{ 412, 3225967213u, 3550227562u, 3207257983u, 2747744117u, 3292743212u, 206811308u, 0, SINH_TOLERANCE, 0},
+{ 413, 1081167454u, 507130047u, 1048359321u, 3229888373u, 1490439745u, 2514231187u, 0, SINH_TOLERANCE, 0},
+{ 414, 3221948202u, 2210969014u, 1081031001u, 1946786091u, 3224193769u, 1125681282u, 0, SINH_TOLERANCE, 0},
+{ 415, 3224772654u, 4059150589u, 3189759234u, 1177045799u, 3252570536u, 932381590u, 0, SINH_TOLERANCE, 0},
+{ 416, 1078423548u, 2664812822u, 1050343198u, 2034180320u, 1142469137u, 3731467255u, 0, SINH_TOLERANCE, 0},
+{ 417, 3220070573u, 1175750283u, 3235559706u, 1424491340u, 3220280124u, 1698837364u, 0, SINH_TOLERANCE, 0},
+{ 418, 3219147073u, 1630036121u, 3231972785u, 3195479448u, 3219193750u, 3587877395u, 0, SINH_TOLERANCE, 0},
+{ 419, 1077846963u, 2527029044u, 1046927050u, 4000723255u, 1117940775u, 3673409802u, 0, SINH_TOLERANCE, 0},
+{ 420, 1076820069u, 3335703647u, 3237349676u, 3869440059u, 1094992333u, 786910646u, 0, SINH_TOLERANCE, 0},
+{ 421, 1078850936u, 3888398377u, 3196041693u, 1290567220u, 1162199139u, 1366973945u, 0, SINH_TOLERANCE, 0},
+{ 422, 1071921950u, 3242451480u, 3248384948u, 707431021u, 1072012056u, 1674107560u, 0, SINH_TOLERANCE, 0},
+{ 423, 1075890477u, 2739665123u, 1060777905u, 1733073225u, 1084309432u, 1777081396u, 0, SINH_TOLERANCE, 0},
+{ 424, 1075371333u, 1297274853u, 3208848704u, 3341639139u, 1081035722u, 388538633u, 0, SINH_TOLERANCE, 0},
+{ 425, 1066493885u, 2228057309u, 1084318902u, 1317851136u, 1066493940u, 1908483498u, 0, SINH_TOLERANCE, 0},
+{ 426, 1077769567u, 270039934u, 3241414679u, 3063626339u, 1116118793u, 251426608u, 0, SINH_TOLERANCE, 0},
+{ 427, 3220226926u, 83062251u, 3211262173u, 2659016437u, 3220439240u, 1342941858u, 0, SINH_TOLERANCE, 0},
+{ 428, 1080015246u, 3833539373u, 3206667189u, 1567476111u, 1263591609u, 3066665016u, 0, SINH_TOLERANCE, 0},
+{ 429, 3217777984u, 2382776852u, 3249232579u, 1546622468u, 3217791723u, 580292390u, 0, SINH_TOLERANCE, 0},
+{ 430, 1076099255u, 1714300821u, 1104130938u, 4167591598u, 1086665941u, 3383929735u, 0, SINH_TOLERANCE, 0},
+{ 431, 1067869976u, 2798720100u, 1086978789u, 449990704u, 1067870445u, 757727393u, 0, SINH_TOLERANCE, 0},
+{ 432, 3223858383u, 4039516226u, 3244344107u, 4272932619u, 3237326669u, 3071269738u, 0, SINH_TOLERANCE, 0},
+{ 433, 3221659865u, 1683007544u, 1091105663u, 3805494321u, 3223379092u, 13932268u, 0, SINH_TOLERANCE, 0},
+{ 434, 3220852948u, 2072627412u, 1094383324u, 3394151662u, 3221484094u, 3151331188u, 0, SINH_TOLERANCE, 0},
+{ 435, 3220570024u, 1120106427u, 3223631624u, 3404608264u, 3221069173u, 3891584311u, 0, SINH_TOLERANCE, 0},
+{ 436, 1078985629u, 559918757u, 3205077053u, 908100198u, 1168462131u, 348797896u, 0, SINH_TOLERANCE, 0},
+{ 437, 1065746590u, 2026673913u, 3244833635u, 2844573214u, 1065746618u, 903416048u, 0, SINH_TOLERANCE, 0},
+{ 438, 3229401435u, 3946837259u, 3234993796u, 3850406820u, 3915064173u, 957246048u, 0, SINH_TOLERANCE, 0},
+{ 439, 1070062721u, 3139330994u, 1046133568u, 1539650690u, 1070071794u, 2932344804u, 0, SINH_TOLERANCE, 0},
+{ 440, 3225171164u, 1554593884u, 3228899878u, 2813752562u, 3261718378u, 1205533002u, 0, SINH_TOLERANCE, 0},
+{ 441, 1069087916u, 3804703138u, 1072931071u, 2053677923u, 1069090518u, 1009402951u, 0, SINH_TOLERANCE, 0},
+{ 442, 3227038507u, 289355864u, 1078453818u, 2143066338u, 3368499553u, 3978063874u, 0, SINH_TOLERANCE, 0},
+{ 443, 3216522792u, 2157691971u, 1106629150u, 110806409u, 3216525168u, 881313374u, 0, SINH_TOLERANCE, 0},
+{ 444, 1075865563u, 3570399481u, 1085637605u, 180265334u, 1083999917u, 440877064u, 0, SINH_TOLERANCE, 0},
+{ 445, 3216708822u, 558779875u, 3202046748u, 2338464653u, 3216712134u, 1030194175u, 0, SINH_TOLERANCE, 0},
+{ 446, 1066676984u, 1703969219u, 3229797258u, 1417521063u, 1066677070u, 1053909100u, 0, SINH_TOLERANCE, 0},
+{ 447, 3225199349u, 3917440951u, 1051668894u, 3736066983u, 3262374743u, 1562528722u, 0, SINH_TOLERANCE, 0},
+{ 448, 1071043536u, 3106613409u, 1066627453u, 2735392257u, 1071075459u, 2064952418u, 0, SINH_TOLERANCE, 0},
+{ 449, 1071956828u, 2229777605u, 1065061963u, 2405869925u, 1072054337u, 2105468352u, 0, SINH_TOLERANCE, 0},
+{ 450, 3225831741u, 3967957902u, 1057416138u, 3459188071u, 3286483226u, 515773066u, 0, SINH_TOLERANCE, 0},
+{ 451, 1071784938u, 3699016825u, 3249713090u, 796144848u, 1071849643u, 3676203125u, 0, SINH_TOLERANCE, 0},
+{ 452, 3222524940u, 3285165564u, 3211948811u, 401510871u, 3226584440u, 3149629272u, 0, SINH_TOLERANCE, 0},
+{ 453, 1078529018u, 634857910u, 3199607513u, 914218057u, 1147357727u, 2060143941u, 0, SINH_TOLERANCE, 0},
+{ 454, 1076403304u, 2030735578u, 3233855943u, 965677531u, 1090189121u, 3806338161u, 0, SINH_TOLERANCE, 0},
+{ 455, 1075362511u, 3957229084u, 1051050470u, 3123776651u, 1080967851u, 1261047595u, 0, SINH_TOLERANCE, 0},
+{ 456, 3221863333u, 162122081u, 3239376395u, 108064594u, 3223906134u, 1689176085u, 0, SINH_TOLERANCE, 0},
+{ 457, 3224688874u, 869031839u, 3225020876u, 1344301606u, 3250642572u, 668835625u, 0, SINH_TOLERANCE, 0},
+{ 458, 3219676354u, 946696117u, 3231825228u, 1700703647u, 3219835122u, 962995253u, 0, SINH_TOLERANCE, 0},
+{ 459, 1074444299u, 3394168074u, 1076939786u, 1666995668u, 1076637198u, 2672326558u, 0, SINH_TOLERANCE, 0},
+{ 460, 3218211979u, 2488789804u, 3238508333u, 1506943664u, 3218227639u, 2471579197u, 0, SINH_TOLERANCE, 0},
+{ 461, 1072788663u, 3844072288u, 3202592279u, 2630019853u, 1073029502u, 3371262161u, 0, SINH_TOLERANCE, 0},
+{ 462, 3220983118u, 1244307192u, 3191297711u, 2540916692u, 3221669470u, 654042193u, 0, SINH_TOLERANCE, 0},
+{ 463, 3215791332u, 2871645739u, 3239081581u, 1440249115u, 3215792357u, 2775105375u, 0, SINH_TOLERANCE, 0},
+{ 464, 1072544937u, 1231934926u, 3236746788u, 603977748u, 1072765519u, 2095752684u, 0, SINH_TOLERANCE, 0},
+{ 465, 3214324057u, 2386312545u, 1063169277u, 2715234268u, 3214324179u, 1232090990u, 0, SINH_TOLERANCE, 0},
+{ 466, 1077317658u, 915867083u, 1046790892u, 3347417612u, 1105687206u, 2072797994u, 0, SINH_TOLERANCE, 0},
+{ 467, 1081866940u, 3553288373u, 1065698616u, 2906680663u, 1748821447u, 2025279999u, 0, SINH_TOLERANCE, 0},
+{ 468, 1066477746u, 2342364630u, 1051356723u, 4019093203u, 1066477799u, 740460663u, 0, SINH_TOLERANCE, 0},
+{ 469, 3216897802u, 2911548084u, 1105282515u, 2476735795u, 3216902290u, 95319602u, 0, SINH_TOLERANCE, 0},
+{ 470, 1068298564u, 1836216409u, 1101062307u, 2519592554u, 1068299574u, 3261440104u, 0, SINH_TOLERANCE, 0},
+{ 471, 1073323889u, 1235369496u, 3222946447u, 668087854u, 1073940658u, 2489380437u, 0, SINH_TOLERANCE, 0},
+{ 472, 3217991780u, 2981820811u, 1059838516u, 2845580478u, 3218011046u, 160524385u, 0, SINH_TOLERANCE, 0},
+{ 473, 3214902934u, 1565550570u, 3217165795u, 4162017137u, 3214903260u, 3266531759u, 0, SINH_TOLERANCE, 0},
+{ 474, 3224668466u, 2808968027u, 1055630096u, 1782326814u, 3250107909u, 4229492206u, 0, SINH_TOLERANCE, 0},
+{ 475, 1069305614u, 1492622658u, 3216653077u, 3972512122u, 1069309397u, 3097712363u, 0, SINH_TOLERANCE, 0},
+{ 476, 3222171679u, 2722693603u, 3227814791u, 3169731970u, 3224793633u, 3681855882u, 0, SINH_TOLERANCE, 0},
+{ 477, 3221052359u, 899763203u, 3207606001u, 2804747833u, 3221777264u, 2598378310u, 0, SINH_TOLERANCE, 0},
+{ 478, 3223330293u, 3789058912u, 3228095081u, 4135937628u, 3231232306u, 256130235u, 0, SINH_TOLERANCE, 0},
+{ 479, 1069636566u, 1682808307u, 3206960335u, 232877759u, 1069640056u, 2969359733u, 0, SINH_TOLERANCE, 0},
+{ 480, 3226362846u, 2851963139u, 3246852961u, 2590862592u, 3310994390u, 2280263532u, 0, SINH_TOLERANCE, 0},
+{ 481, 1074908950u, 2422232642u, 3234779662u, 290458310u, 1078293411u, 1136645066u, 0, SINH_TOLERANCE, 0},
+{ 482, 3219059686u, 1082582386u, 1075605675u, 2602133689u, 3219134008u, 214025449u, 0, SINH_TOLERANCE, 0},
+{ 483, 3226187123u, 1789635787u, 1059414278u, 1048286093u, 3302943910u, 3672708776u, 0, SINH_TOLERANCE, 0},
+{ 484, 1079456174u, 231339448u, 1055573265u, 504907415u, 1211943927u, 57355760u, 0, SINH_TOLERANCE, 0},
+{ 485, 1071600069u, 1153251200u, 3204617090u, 1772013857u, 1071663825u, 3349768061u, 0, SINH_TOLERANCE, 0},
+{ 486, 1080676687u, 1082898276u, 3212089272u, 1449080862u, 1384085102u, 3383991944u, 0, SINH_TOLERANCE, 0},
+{ 487, 1076571101u, 3177299045u, 1058862813u, 809400815u, 1092108370u, 1324438680u, 0, SINH_TOLERANCE, 0},
+{ 488, 3223514518u, 1924429710u, 1056464743u, 3349283177u, 3233360873u, 3288266297u, 0, SINH_TOLERANCE, 0},
+{ 489, 3226599023u, 42238036u, 1042379500u, 2113559863u, 3327958428u, 3625179367u, 0, SINH_TOLERANCE, 0},
+{ 490, 1071052699u, 3304403230u, 3217556703u, 58952646u, 1071085215u, 1050226061u, 0, SINH_TOLERANCE, 0},
+{ 491, 3218960986u, 1645486982u, 3224301095u, 3636267471u, 3219029799u, 4045357788u, 0, SINH_TOLERANCE, 0},
+{ 492, 1071150617u, 619402181u, 3235208235u, 557360557u, 1071189934u, 498578636u, 0, SINH_TOLERANCE, 0},
+{ 493, 3225655482u, 110029735u, 1046937383u, 984375729u, 3278328624u, 58252944u, 0, SINH_TOLERANCE, 0},
+{ 494, 3213613986u, 4063688092u, 3203235744u, 1049950343u, 3213614043u, 1063948882u, 0, SINH_TOLERANCE, 0},
+{ 495, 1070739227u, 650996069u, 1054971928u, 3953359826u, 1070755325u, 3588616872u, 0, SINH_TOLERANCE, 0},
+{ 496, 3222861501u, 66926332u, 1090561839u, 1379780888u, 3228568262u, 956132261u, 0, SINH_TOLERANCE, 0},
+{ 497, 3224016123u, 2803378256u, 1086057989u, 498534626u, 3239186357u, 731326335u, 0, SINH_TOLERANCE, 0},
+{ 498, 1076327097u, 2846400785u, 1047142525u, 1375153550u, 1089349462u, 3403878245u, 0, SINH_TOLERANCE, 0},
+{ 499, 1066601297u, 2869128958u, 1070972315u, 4246440273u, 1066601369u, 2650609615u, 0, SINH_TOLERANCE, 0},
+{ 500, 1067561146u, 3112381207u, 1044430965u, 3981604561u, 1067561377u, 1769828869u, 0, SINH_TOLERANCE, 0},
+{ 501, 3223914965u, 243303420u, 1093735824u, 1575581926u, 3238048272u, 2235871958u, 0, SINH_TOLERANCE, 0},
+{ 502, 3225506509u, 3218865041u, 3204803496u, 3840388050u, 3271535308u, 1649385448u, 0, SINH_TOLERANCE, 0},
+{ 503, 1067289799u, 336846959u, 1052664471u, 3798336786u, 1067290067u, 3736114808u, 0, SINH_TOLERANCE, 0},
+{ 504, 1068537148u, 3639240976u, 1081202165u, 1844741676u, 1068537909u, 189262233u, 0, SINH_TOLERANCE, 0},
+{ 505, 3218196249u, 717293069u, 3211534283u, 582401011u, 3218211290u, 141761877u, 0, SINH_TOLERANCE, 0},
+{ 506, 3228893840u, 3766248610u, 3196520332u, 1174437546u, 3727654367u, 1400243038u, 0, SINH_TOLERANCE, 0},
+{ 507, 1076091194u, 756959182u, 3204099341u, 1581804034u, 1086583042u, 1964748553u, 0, SINH_TOLERANCE, 0},
+{ 508, 3217340780u, 3560686300u, 3220980617u, 4277975772u, 3217346722u, 2737152545u, 0, SINH_TOLERANCE, 0},
+{ 509, 3218294684u, 2598148853u, 3217622194u, 3460421008u, 3218313881u, 4271494494u, 0, SINH_TOLERANCE, 0},
+{ 510, 1071963704u, 136600515u, 3209934920u, 3340653128u, 1072062719u, 2822108139u, 0, SINH_TOLERANCE, 0},
+{ 511, 1078994518u, 1045480938u, 3251354609u, 4133432965u, 1169315390u, 1471292306u, 0, SINH_TOLERANCE, 0},
+{ 512, 1077967943u, 1630207738u, 3239996829u, 2393354808u, 1121432564u, 2643918337u, 0, SINH_TOLERANCE, 0},
+{ 513, 3213694690u, 3739770117u, 1059520750u, 3959551225u, 3213694754u, 4181555695u, 0, SINH_TOLERANCE, 0},
+{ 514, 3223390473u, 1498861716u, 1091297147u, 847410798u, 3231943240u, 411045671u, 0, SINH_TOLERANCE, 0},
+{ 515, 1073516688u, 983275314u, 3232538664u, 2244973629u, 1074212001u, 481824735u, 0, SINH_TOLERANCE, 0},
+{ 516, 1069529329u, 2353103845u, 3235718771u, 2978889966u, 1069534654u, 359520824u, 0, SINH_TOLERANCE, 0},
+{ 517, 3229337896u, 1546972125u, 3249076079u, 1987349196u, 3891583721u, 982927834u, 0, SINH_TOLERANCE, 0},
+{ 518, 3225636601u, 2769161072u, 1075207126u, 292616282u, 3277469717u, 2356402899u, 0, SINH_TOLERANCE, 0},
+{ 519, 3215440938u, 36855311u, 1052128202u, 1479039342u, 3215441495u, 856736532u, 0, SINH_TOLERANCE, 0},
+{ 520, 1076417021u, 2027463605u, 1066023013u, 3369686340u, 1090384091u, 1056585399u, 0, SINH_TOLERANCE, 0},
+{ 521, 3215678541u, 3808681655u, 1054161346u, 1821773119u, 3215679395u, 1849884479u, 0, SINH_TOLERANCE, 0},
+{ 522, 1065851752u, 3175490326u, 3226879970u, 845687760u, 1065851787u, 737255u, 0, SINH_TOLERANCE, 0},
+{ 523, 1065371665u, 3124482451u, 3242748377u, 3259417226u, 1065371676u, 4154020522u, 0, SINH_TOLERANCE, 0},
+{ 524, 1067265791u, 2751606436u, 3236210939u, 3923142740u, 1067266050u, 2400005644u, 0, SINH_TOLERANCE, 0},
+{ 525, 1079966097u, 2016872044u, 3228408064u, 4201274408u, 1259005133u, 2351383485u, 0, SINH_TOLERANCE, 0},
+{ 526, 3215077894u, 1019916843u, 3219974785u, 1977881787u, 3215078145u, 1089008109u, 0, SINH_TOLERANCE, 0},
+{ 527, 3215207392u, 2060433318u, 1075872515u, 366073725u, 3215207734u, 2074287516u, 0, SINH_TOLERANCE, 0},
+{ 528, 3213200653u, 1098469906u, 1082900695u, 2349346832u, 3213200679u, 1381441120u, 0, SINH_TOLERANCE, 0},
+{ 529, 3218363315u, 3011196295u, 3252479932u, 2459281672u, 3218385825u, 3189415687u, 0, SINH_TOLERANCE, 0},
+{ 530, 3221334323u, 2843222682u, 1089275809u, 298982001u, 3222403031u, 2683776955u, 0, SINH_TOLERANCE, 0},
+{ 531, 1080766178u, 914741728u, 3203468059u, 2833809843u, 1400546649u, 1543027566u, 0, SINH_TOLERANCE, 0},
+{ 532, 3225229542u, 1274901962u, 3241535845u, 3759113509u, 3263137459u, 3663915975u, 0, SINH_TOLERANCE, 0},
+{ 533, 3227042074u, 2134927252u, 3253802671u, 3013731444u, 3368869803u, 696872014u, 0, SINH_TOLERANCE, 0},
+{ 534, 1080326973u, 2230655177u, 3254510616u, 1249674366u, 1319431604u, 3545707614u, 0, SINH_TOLERANCE, 0},
+{ 535, 1071359861u, 717357389u, 1083533731u, 3746683362u, 1071416786u, 238298886u, 0, SINH_TOLERANCE, 0},
+{ 536, 3220064570u, 834976849u, 3217357661u, 2465861779u, 3220275670u, 1926182485u, 0, SINH_TOLERANCE, 0},
+{ 537, 1066627637u, 1385714428u, 1053358395u, 3007113740u, 1066627713u, 3968091488u, 0, SINH_TOLERANCE, 0},
+{ 538, 1068353711u, 599268545u, 3201368210u, 2309854744u, 1068354812u, 823534625u, 0, SINH_TOLERANCE, 0},
+{ 539, 1073100182u, 2840234388u, 3232496515u, 333365983u, 1073614740u, 4021411949u, 0, SINH_TOLERANCE, 0},
+{ 540, 1066894301u, 3136078996u, 3194520860u, 2650572904u, 1066894437u, 776276983u, 0, SINH_TOLERANCE, 0},
+{ 541, 3224250507u, 2405805086u, 3251640319u, 324233833u, 3241869048u, 243646553u, 0, SINH_TOLERANCE, 0},
+{ 542, 1081533322u, 2589598340u, 3254677807u, 952438812u, 1625576728u, 2555502454u, 0, SINH_TOLERANCE, 0},
+{ 543, 3213232021u, 1922837702u, 3216892718u, 3535907549u, 3213232049u, 1242063580u, 0, SINH_TOLERANCE, 0},
+{ 544, 3226838652u, 261447440u, 3209805849u, 1150571079u, 3350113911u, 3739940447u, 0, SINH_TOLERANCE, 0},
+{ 545, 1079028016u, 4026487528u, 1073152064u, 27340691u, 1172419967u, 273403284u, 0, SINH_TOLERANCE, 0},
+{ 546, 3222832236u, 338765118u, 1086225786u, 3207238249u, 3228348911u, 2664550019u, 0, SINH_TOLERANCE, 0},
+{ 547, 3215057071u, 1085283176u, 3187775111u, 1601194210u, 3215057309u, 1488617841u, 0, SINH_TOLERANCE, 0},
+{ 548, 1078937261u, 3031712790u, 3252307859u, 170666844u, 1166209488u, 3602398320u, 0, SINH_TOLERANCE, 0},
+{ 549, 3220959383u, 3148395674u, 1041913758u, 3306391490u, 3221634041u, 1410967140u, 0, SINH_TOLERANCE, 0},
+{ 550, 3217005710u, 2205233857u, 3208100078u, 3993195511u, 3217010979u, 1632365894u, 0, SINH_TOLERANCE, 0},
+{ 551, 1071893912u, 4282766727u, 1072820377u, 1874778218u, 1071978351u, 3057491263u, 0, SINH_TOLERANCE, 0},
+{ 552, 3218173124u, 2920860798u, 3218070226u, 3104066154u, 3218187285u, 1999634368u, 0, SINH_TOLERANCE, 0},
+{ 553, 3217533263u, 969991373u, 3250596895u, 1734386152u, 3217542109u, 2998394098u, 0, SINH_TOLERANCE, 0},
+{ 554, 3226332906u, 1218740205u, 3239802737u, 2610078504u, 3309611601u, 443854413u, 0, SINH_TOLERANCE, 0},
+{ 555, 3217565578u, 1485218325u, 3220870240u, 3591664613u, 3217574990u, 719188738u, 0, SINH_TOLERANCE, 0},
+{ 556, 3216754207u, 690157417u, 3190850619u, 4192347699u, 3216757780u, 72992630u, 0, SINH_TOLERANCE, 0},
+{ 557, 1079276594u, 4009839784u, 1079670252u, 394167192u, 1195402369u, 2525536651u, 0, SINH_TOLERANCE, 0},
+{ 558, 3225122053u, 961532417u, 1092588071u, 2923790239u, 3260577091u, 609779704u, 0, SINH_TOLERANCE, 0},
+{ 559, 3216462003u, 4174125604u, 1050682630u, 2169701868u, 3216464117u, 911139952u, 0, SINH_TOLERANCE, 0},
+{ 560, 3227363835u, 4146748230u, 1087373950u, 2481478351u, 3398577806u, 2672248790u, 0, SINH_TOLERANCE, 0},
+{ 561, 1073842138u, 3984715440u, 1050421618u, 2446142566u, 1074899895u, 3654171950u, 0, SINH_TOLERANCE, 0},
+{ 562, 1076832374u, 936290150u, 1100614426u, 3625806370u, 1095122996u, 79506021u, 0, SINH_TOLERANCE, 0},
+{ 563, 1080913584u, 1866615265u, 3215651428u, 2337013350u, 1427761572u, 2464900529u, 0, SINH_TOLERANCE, 0},
+{ 564, 3229081054u, 712227971u, 1106004723u, 973148499u, 3796776794u, 2977854696u, 0, SINH_TOLERANCE, 0},
+{ 565, 3223796743u, 3409813738u, 3244817008u, 1933503498u, 3236632891u, 2551711858u, 0, SINH_TOLERANCE, 0},
+{ 566, 1075749429u, 3180389060u, 3228735703u, 83422217u, 1083215043u, 2681278570u, 0, SINH_TOLERANCE, 0},
+{ 567, 1074732996u, 556972671u, 3204582372u, 841555801u, 1077441837u, 873264869u, 0, SINH_TOLERANCE, 0},
+{ 568, 1072864873u, 4189151332u, 1080874032u, 706326922u, 1073159519u, 2839586932u, 0, SINH_TOLERANCE, 0},
+{ 569, 1079374091u, 198291836u, 1057281892u, 2188836928u, 1204328207u, 2535783908u, 0, SINH_TOLERANCE, 0},
+{ 570, 1074946267u, 1219449298u, 3228734687u, 3504562743u, 1078508537u, 2353084821u, 0, SINH_TOLERANCE, 0},
+{ 571, 3217153376u, 1776099219u, 1094316777u, 4188083896u, 3217157181u, 574357456u, 0, SINH_TOLERANCE, 0},
+{ 572, 3214817228u, 2614400266u, 1073750227u, 3003203347u, 3214817516u, 198273910u, 0, SINH_TOLERANCE, 0},
+{ 573, 3219225558u, 2959351406u, 1105603716u, 311851587u, 3219283423u, 684340727u, 0, SINH_TOLERANCE, 0},
+{ 574, 1076155826u, 865443613u, 1097532516u, 3622237781u, 1087394673u, 3539650218u, 0, SINH_TOLERANCE, 0},
+{ 575, 3223398058u, 447506102u, 3195759295u, 3603669725u, 3232019529u, 3527208045u, 0, SINH_TOLERANCE, 0},
+{ 576, 1079015805u, 3934398273u, 1040996422u, 2968621268u, 1171312413u, 1233059955u, 0, SINH_TOLERANCE, 0},
+{ 577, 3215614193u, 784208771u, 1088764788u, 2182296421u, 3215614958u, 361692432u, 0, SINH_TOLERANCE, 0},
+{ 578, 3228409347u, 1527590526u, 3206961556u, 2823164069u, 3577507096u, 2977499390u, 0, SINH_TOLERANCE, 0},
+{ 579, 3225109795u, 3876699591u, 3207481130u, 4028148535u, 3260303666u, 4290703953u, 0, SINH_TOLERANCE, 0},
+{ 580, 1076236154u, 2164249756u, 1059857743u, 1785169952u, 1088299515u, 3026474899u, 0, SINH_TOLERANCE, 0},
+{ 581, 1078172521u, 2079273665u, 1080303860u, 625760474u, 1130877384u, 2820657748u, 0, SINH_TOLERANCE, 0},
+{ 582, 3222291804u, 3636214836u, 1068367620u, 2932621925u, 3225236520u, 1533383205u, 0, SINH_TOLERANCE, 0},
+{ 583, 1066015468u, 4274131512u, 1047707755u, 92550763u, 1066015515u, 1391929877u, 0, SINH_TOLERANCE, 0},
+{ 584, 3215599337u, 2648933384u, 1084603503u, 3534304873u, 3215600082u, 4152085298u, 0, SINH_TOLERANCE, 0},
+{ 585, 1070854691u, 3216750767u, 3191088629u, 547482628u, 1070875955u, 1283090909u, 0, SINH_TOLERANCE, 0},
+{ 586, 1070521958u, 1420360746u, 1080063101u, 1690029499u, 1070541624u, 3873766986u, 0, SINH_TOLERANCE, 0},
+{ 587, 3223563908u, 1908572179u, 1080112083u, 1228319033u, 3233962096u, 1729178347u, 0, SINH_TOLERANCE, 0},
+{ 588, 1067032546u, 500312015u, 3212368508u, 3864619086u, 1067032721u, 1665527175u, 0, SINH_TOLERANCE, 0},
+{ 589, 3221335610u, 4211343447u, 1087492676u, 4272583781u, 3222405997u, 1265770476u, 0, SINH_TOLERANCE, 0},
+{ 590, 1080518026u, 2382118000u, 1042665328u, 567154882u, 1354785044u, 2043686521u, 0, SINH_TOLERANCE, 0},
+{ 591, 1069547778u, 1435344339u, 3216303171u, 2275988178u, 1069550513u, 671516801u, 0, SINH_TOLERANCE, 0},
+{ 592, 3219781499u, 3403659753u, 3218043030u, 1926480488u, 3219974504u, 1809148616u, 0, SINH_TOLERANCE, 0},
+{ 593, 1074743231u, 1198845185u, 3225556149u, 1130089684u, 1077473461u, 3574277356u, 0, SINH_TOLERANCE, 0},
+{ 594, 3221614466u, 2183928090u, 1048403956u, 963834821u, 3223250893u, 2703382364u, 0, SINH_TOLERANCE, 0},
+{ 595, 1080701440u, 2120625396u, 1041006976u, 2137548527u, 1388588575u, 2814596158u, 0, SINH_TOLERANCE, 0},
+{ 596, 1080355870u, 586700956u, 1059670521u, 303891699u, 1324761751u, 2561465523u, 0, SINH_TOLERANCE, 0},
+{ 597, 3221091650u, 2509132460u, 1102827530u, 2205707903u, 3221841506u, 3160409354u, 0, SINH_TOLERANCE, 0},
+{ 598, 3217443509u, 1229308263u, 3209170414u, 4206576047u, 3217450905u, 1778802890u, 0, SINH_TOLERANCE, 0},
+{ 599, 3221979137u, 4078010749u, 3199236456u, 733478972u, 3224310714u, 594776133u, 0, SINH_TOLERANCE, 0},
+{ 600, 3215538376u, 4277541051u, 3199806921u, 397102023u, 3215539045u, 2587253356u, 0, SINH_TOLERANCE, 0},
+{ 601, 3214849381u, 900999594u, 3234720188u, 2530214248u, 3214849682u, 3764275050u, 0, SINH_TOLERANCE, 0},
+{ 602, 1074446396u, 4000609478u, 1096577064u, 4148592328u, 1076644619u, 662306058u, 0, SINH_TOLERANCE, 0},
+{ 603, 1067542452u, 2154187873u, 3224392607u, 3957250362u, 1067542672u, 894406159u, 0, SINH_TOLERANCE, 0},
+{ 604, 3221316336u, 2867079200u, 1101870326u, 921212001u, 3222362328u, 2288191835u, 0, SINH_TOLERANCE, 0},
+{ 605, 3223784706u, 674547716u, 1063216239u, 3929755226u, 3236477055u, 3177865417u, 0, SINH_TOLERANCE, 0},
+{ 606, 3225735787u, 3158182449u, 1043794244u, 3259056345u, 3282102257u, 4149902865u, 0, SINH_TOLERANCE, 0},
+{ 607, 3225242320u, 3002823940u, 1059511739u, 2832435794u, 3263375391u, 2207198717u, 0, SINH_TOLERANCE, 0},
+{ 608, 3220450550u, 2196511929u, 1049973941u, 3672092877u, 3220829892u, 1152024630u, 0, SINH_TOLERANCE, 0},
+{ 609, 1068263848u, 3655292191u, 1086438127u, 3567072906u, 1068264804u, 3057389114u, 0, SINH_TOLERANCE, 0},
+{ 610, 3227458308u, 1617573614u, 3201863123u, 3090723732u, 3407261058u, 3864691446u, 0, SINH_TOLERANCE, 0},
+{ 611, 3223764196u, 679893506u, 3211547753u, 824081024u, 3236242384u, 855992207u, 0, SINH_TOLERANCE, 0},
+{ 612, 1076947613u, 2285242807u, 1084999409u, 2221731406u, 1097150618u, 2093305415u, 0, SINH_TOLERANCE, 0},
+{ 613, 3217219424u, 1935990727u, 1088822246u, 1058156518u, 3217223910u, 2572208563u, 0, SINH_TOLERANCE, 0},
+{ 614, 1080819070u, 521023584u, 1059186903u, 4245163857u, 1410372185u, 1987577595u, 0, SINH_TOLERANCE, 0},
+{ 615, 1081871044u, 2312887617u, 3191771354u, 1885370807u, 1750314185u, 485435265u, 0, SINH_TOLERANCE, 0},
+{ 616, 3228836567u, 1796441468u, 1100030327u, 2772711004u, 3706449772u, 2025534396u, 0, SINH_TOLERANCE, 0},
+{ 617, 3216859732u, 2095685003u, 1077984448u, 2100773742u, 3216863963u, 3311762035u, 0, SINH_TOLERANCE, 0},
+{ 618, 3213926140u, 2892538035u, 1042396334u, 4162200338u, 3213926188u, 2166615565u, 0, SINH_TOLERANCE, 0},
+{ 619, 3226997111u, 2177698116u, 3227557177u, 150832500u, 3364729748u, 1325856495u, 0, SINH_TOLERANCE, 0},
+{ 620, 3213582312u, 607966734u, 3236250630u, 4164600559u, 3213582365u, 2419158638u, 0, SINH_TOLERANCE, 0},
+{ 621, 3219535540u, 2830122967u, 1046096700u, 3713346883u, 3219655310u, 3928628246u, 0, SINH_TOLERANCE, 0},
+{ 622, 3224615051u, 2314640506u, 3203696416u, 3276228872u, 3248873475u, 2072666780u, 0, SINH_TOLERANCE, 0},
+{ 623, 3219203763u, 469331883u, 3249037349u, 2999233437u, 3219258357u, 957120804u, 0, SINH_TOLERANCE, 0},
+{ 624, 1079556219u, 560886625u, 1091899487u, 748795120u, 1221147643u, 1766795176u, 0, SINH_TOLERANCE, 0},
+{ 625, 1067712650u, 2958421324u, 1092569414u, 3235243477u, 1067712984u, 658901815u, 0, SINH_TOLERANCE, 0},
+{ 626, 3213998017u, 3221475559u, 1043038304u, 915608434u, 3213998075u, 2955854477u, 0, SINH_TOLERANCE, 0},
+{ 627, 1073294682u, 3007808652u, 3216682290u, 2531019474u, 1073903448u, 2701925371u, 0, SINH_TOLERANCE, 0},
+{ 628, 3226300359u, 1767658578u, 3237045269u, 2313128318u, 3308166529u, 3225971130u, 0, SINH_TOLERANCE, 0},
+{ 629, 3219006500u, 1926845182u, 1066835624u, 1783256828u, 3219080335u, 3600574508u, 0, SINH_TOLERANCE, 0},
+{ 630, 1065741453u, 90378038u, 1057168870u, 164358218u, 1065741480u, 1993225493u, 0, SINH_TOLERANCE, 0},
+{ 631, 1081693348u, 1610524680u, 1085283851u, 2903496007u, 1684679818u, 520929572u, 0, SINH_TOLERANCE, 0},
+{ 632, 1075489858u, 4274321404u, 3202913591u, 720121831u, 1081645047u, 258345874u, 0, SINH_TOLERANCE, 0},
+{ 633, 1067982472u, 2034778236u, 1071133763u, 1413236391u, 1067983057u, 725045044u, 0, SINH_TOLERANCE, 0},
+{ 634, 1067840244u, 1489112261u, 1076691395u, 348210906u, 1067840684u, 4200379030u, 0, SINH_TOLERANCE, 0},
+{ 635, 3217229677u, 2797651324u, 3224410527u, 2374818327u, 3217234276u, 1628439001u, 0, SINH_TOLERANCE, 0},
+{ 636, 1077801496u, 1823161666u, 3197810695u, 3119680047u, 1116891443u, 2045262415u, 0, SINH_TOLERANCE, 0},
+{ 637, 1072218792u, 3420950657u, 1087084743u, 2136638961u, 1072385629u, 3558873528u, 0, SINH_TOLERANCE, 0},
+{ 638, 1073047952u, 3554566429u, 1062907717u, 2736702589u, 1073505975u, 2786439684u, 0, SINH_TOLERANCE, 0},
+{ 639, 3227062875u, 2928437580u, 3187765027u, 1393427873u, 3370758541u, 1790477232u, 0, SINH_TOLERANCE, 0},
+{ 640, 3218738745u, 189447067u, 1051643315u, 828663513u, 3218786307u, 4024003158u, 0, SINH_TOLERANCE, 0},
+{ 641, 1068042509u, 2852350928u, 1045683757u, 673354280u, 1068043163u, 2365357114u, 0, SINH_TOLERANCE, 0},
+{ 642, 1065966397u, 3589563265u, 3248741629u, 812657927u, 1065966440u, 1251607880u, 0, SINH_TOLERANCE, 0},
+{ 643, 3213679498u, 1766416701u, 1100392103u, 2185373290u, 3213679560u, 4268196279u, 0, SINH_TOLERANCE, 0},
+{ 644, 3220275389u, 3763582673u, 3191965790u, 388374829u, 3220518255u, 2651724555u, 0, SINH_TOLERANCE, 0},
+{ 645, 1075440832u, 1187403069u, 1075300235u, 336640304u, 1081370119u, 2501920895u, 0, SINH_TOLERANCE, 0},
+{ 646, 1081906155u, 1718795752u, 3243118752u, 683369237u, 1763270328u, 2150807698u, 0, SINH_TOLERANCE, 0},
+{ 647, 3218132129u, 1863545307u, 1069449477u, 3418627399u, 3218144815u, 3945086706u, 0, SINH_TOLERANCE, 0},
+{ 648, 1072747022u, 3295607249u, 1068878592u, 1633297809u, 1072961595u, 3287424108u, 0, SINH_TOLERANCE, 0},
+{ 649, 1070481463u, 2585980994u, 3236670483u, 1286750688u, 1070499970u, 2251103968u, 0, SINH_TOLERANCE, 0},
+{ 650, 1067128553u, 15816845u, 3233249283u, 2491924775u, 1067128760u, 376681367u, 0, SINH_TOLERANCE, 0},
+{ 651, 1065481693u, 1051983351u, 1049180786u, 1474421917u, 1065481708u, 1428046274u, 0, SINH_TOLERANCE, 0},
+{ 652, 3216978165u, 2003816032u, 1086050104u, 668090487u, 3216983226u, 3651424116u, 0, SINH_TOLERANCE, 0},
+{ 653, 1068284677u, 3671484625u, 1067020039u, 430024694u, 1068285666u, 670139366u, 0, SINH_TOLERANCE, 0},
+{ 654, 1072639990u, 3991830201u, 3207808714u, 1021245839u, 1072836262u, 3211484111u, 0, SINH_TOLERANCE, 0},
+{ 655, 1071534423u, 4255801807u, 3207681716u, 1926756877u, 1071609574u, 1597467505u, 0, SINH_TOLERANCE, 0},
+{ 656, 1067869425u, 4167786896u, 1077097744u, 1775517981u, 1067869893u, 4158169847u, 0, SINH_TOLERANCE, 0},
+{ 657, 1076164794u, 3187518564u, 1082437406u, 944672491u, 1087470446u, 2664315721u, 0, SINH_TOLERANCE, 0},
+{ 658, 1068240650u, 953085192u, 3227310828u, 3459155777u, 1068241570u, 3420350489u, 0, SINH_TOLERANCE, 0},
+{ 659, 1072648234u, 1908555460u, 1073640207u, 260441967u, 1072842511u, 863537546u, 0, SINH_TOLERANCE, 0},
+{ 660, 1072462486u, 250762477u, 1072582645u, 2886742039u, 1072706025u, 3675872813u, 0, SINH_TOLERANCE, 0},
+{ 661, 3228885910u, 786180031u, 3197734769u, 2788918312u, 3724684214u, 2788902326u, 0, SINH_TOLERANCE, 0},
+{ 662, 3225074643u, 2055912467u, 3244244909u, 1394142937u, 3259480725u, 3336869072u, 0, SINH_TOLERANCE, 0},
+{ 663, 1072758713u, 91984146u, 3222252812u, 4126276047u, 1072980445u, 2544810789u, 0, SINH_TOLERANCE, 0},
+{ 664, 1075048683u, 3942715706u, 3239316352u, 410676547u, 1079134101u, 129626234u, 0, SINH_TOLERANCE, 0},
+{ 665, 3215335062u, 86296211u, 1085850694u, 649202596u, 3215335512u, 4279955597u, 0, SINH_TOLERANCE, 0},
+{ 666, 3226492024u, 3069064472u, 3237358008u, 23209276u, 3318045879u, 633460538u, 0, SINH_TOLERANCE, 0},
+{ 667, 1074943832u, 1867297860u, 1072956607u, 2513414118u, 1078493548u, 514140498u, 0, SINH_TOLERANCE, 0},
+{ 668, 3228513251u, 3171788768u, 3235208783u, 162138697u, 3596712783u, 3375110619u, 0, SINH_TOLERANCE, 0},
+{ 669, 1075436999u, 1245110700u, 1081653954u, 2584994077u, 1081350714u, 3674840752u, 0, SINH_TOLERANCE, 0},
+{ 670, 3226635752u, 3347226587u, 1058962932u, 2291943376u, 3331380358u, 168233073u, 0, SINH_TOLERANCE, 0},
+{ 671, 1070433398u, 966940828u, 1060726420u, 2798041096u, 1070450589u, 604350724u, 0, SINH_TOLERANCE, 0},
+{ 672, 1072793759u, 2487340727u, 3223786370u, 4105954991u, 1073037960u, 2035275026u, 0, SINH_TOLERANCE, 0},
+{ 673, 3228193553u, 1671039260u, 1086395032u, 3745833360u, 3537656661u, 393415964u, 0, SINH_TOLERANCE, 0},
+{ 674, 1069661709u, 651714217u, 1047070645u, 2130549237u, 1069665436u, 754279826u, 0, SINH_TOLERANCE, 0},
+{ 675, 3217601491u, 1423000172u, 3247822717u, 1551488170u, 3217611559u, 824321398u, 0, SINH_TOLERANCE, 0},
+{ 676, 3216277371u, 921077236u, 3213332351u, 1431049019u, 3216278807u, 442955679u, 0, SINH_TOLERANCE, 0},
+{ 677, 1071704599u, 655715547u, 3190985373u, 1527556471u, 1071756942u, 3766934534u, 0, SINH_TOLERANCE, 0},
+{ 678, 3222412099u, 4110878657u, 3251297180u, 879739345u, 3225885660u, 2841565138u, 0, SINH_TOLERANCE, 0},
+{ 679, 1076367578u, 2623955764u, 1093699897u, 1216444475u, 1089767499u, 3859308779u, 0, SINH_TOLERANCE, 0},
+{ 680, 1078274115u, 107442539u, 3239767031u, 1149813329u, 1135642519u, 2525054892u, 0, SINH_TOLERANCE, 0},
+{ 681, 3224008056u, 1761361082u, 3226030205u, 1121849716u, 3239115701u, 723616866u, 0, SINH_TOLERANCE, 0},
+{ 682, 3226455627u, 2534144722u, 1044223733u, 3512285706u, 3315291065u, 2831697989u, 0, SINH_TOLERANCE, 0},
+{ 683, 3218137533u, 4073670723u, 1050729852u, 3034818849u, 3218150408u, 2656123370u, 0, SINH_TOLERANCE, 0},
+{ 684, 1081013054u, 1421423503u, 1060278048u, 1397153092u, 1446153340u, 3645912721u, 0, SINH_TOLERANCE, 0},
+{ 685, 3220567557u, 1649206019u, 1104525577u, 1267104290u, 3221063989u, 1927662701u, 0, SINH_TOLERANCE, 0},
+{ 686, 3213419345u, 3775270392u, 1040251850u, 68667319u, 3213419386u, 106585308u, 0, SINH_TOLERANCE, 0},
+{ 687, 3216913812u, 3099226694u, 3254103006u, 4020102648u, 3216918410u, 3288842332u, 0, SINH_TOLERANCE, 0},
+{ 688, 3216271776u, 3718441177u, 3215643451u, 4032951536u, 3216273194u, 3806066275u, 0, SINH_TOLERANCE, 0},
+{ 689, 1066151467u, 508048351u, 3210196713u, 1707937896u, 1066151525u, 1706190291u, 0, SINH_TOLERANCE, 0},
+{ 690, 3215388843u, 2784738160u, 1073435430u, 1109346010u, 3215389346u, 3040303032u, 0, SINH_TOLERANCE, 0},
+{ 691, 3222579562u, 3331916473u, 3238794568u, 2707019594u, 3226854276u, 1245345318u, 0, SINH_TOLERANCE, 0},
+{ 692, 1078502606u, 3093165197u, 1072894805u, 2853215019u, 1146174228u, 2594603642u, 0, SINH_TOLERANCE, 0},
+{ 693, 3219727867u, 2135797997u, 1048399559u, 2941926126u, 3219902835u, 3796355665u, 0, SINH_TOLERANCE, 0},
+{ 694, 1067305348u, 2083412145u, 3249335391u, 507212448u, 1067305623u, 3450869966u, 0, SINH_TOLERANCE, 0},
+{ 695, 1074315175u, 4270176401u, 3246546709u, 3288753319u, 1076232887u, 16147134u, 0, SINH_TOLERANCE, 0},
+{ 696, 3228009919u, 3692175292u, 3197271515u, 3989064196u, 3503712304u, 3358892546u, 0, SINH_TOLERANCE, 0},
+{ 697, 3228623066u, 3111924274u, 1066772558u, 59281695u, 3627570338u, 2342955533u, 0, SINH_TOLERANCE, 0},
+{ 698, 1071878215u, 2135245466u, 3208804313u, 3846547392u, 1071959589u, 3194780737u, 0, SINH_TOLERANCE, 0},
+{ 699, 1079149171u, 972051266u, 3222814246u, 3539700586u, 1183589479u, 2607924773u, 0, SINH_TOLERANCE, 0},
+{ 700, 3216597418u, 330951080u, 1079189813u, 583922384u, 3216600144u, 2711076987u, 0, SINH_TOLERANCE, 0},
+{ 701, 1077057180u, 1711944085u, 1104170032u, 643991456u, 1099706751u, 436337679u, 0, SINH_TOLERANCE, 0},
+{ 702, 3224992365u, 2072550721u, 3250147641u, 4280263530u, 3257600938u, 2591847584u, 0, SINH_TOLERANCE, 0},
+{ 703, 3213944226u, 1566376352u, 1067251433u, 72984588u, 3213944276u, 2654082615u, 0, SINH_TOLERANCE, 0},
+{ 704, 1079547929u, 3103043079u, 1045853123u, 410067497u, 1220439527u, 692790947u, 0, SINH_TOLERANCE, 0},
+{ 705, 3219818221u, 1910366299u, 1081770885u, 634683073u, 3220024287u, 1039537981u, 0, SINH_TOLERANCE, 0},
+{ 706, 1075239232u, 2226525875u, 3224149290u, 2126302825u, 1080223828u, 982079986u, 0, SINH_TOLERANCE, 0},
+{ 707, 1073150247u, 1383818978u, 3193885723u, 1220372650u, 1073723582u, 3636560076u, 0, SINH_TOLERANCE, 0},
+{ 708, 1071725823u, 1953339096u, 1077176252u, 1476516558u, 1071781261u, 2888702628u, 0, SINH_TOLERANCE, 0},
+{ 709, 1072383456u, 1306277326u, 1079089150u, 4093716191u, 1072607836u, 2231508708u, 0, SINH_TOLERANCE, 0},
+{ 710, 3223711603u, 51750045u, 3242913901u, 4256866157u, 3235663411u, 3510591457u, 0, SINH_TOLERANCE, 0},
+{ 711, 3213959335u, 2163853087u, 3232053146u, 2962422808u, 3213959387u, 3617570856u, 0, SINH_TOLERANCE, 0},
+{ 712, 1074468369u, 1618388148u, 3233154824u, 3711953164u, 1076724173u, 597166289u, 0, SINH_TOLERANCE, 0},
+{ 713, 3227993634u, 357108214u, 3202294604u, 2306775262u, 3500707170u, 1996029149u, 0, SINH_TOLERANCE, 0},
+{ 714, 3216584150u, 2571356437u, 3249064063u, 2394851808u, 3216586812u, 1757386675u, 0, SINH_TOLERANCE, 0},
+{ 715, 3224196635u, 4273880094u, 1103698617u, 3578832032u, 3241272793u, 485626741u, 0, SINH_TOLERANCE, 0},
+{ 716, 3223989517u, 2091068742u, 3228270226u, 3980489730u, 3238886540u, 675743625u, 0, SINH_TOLERANCE, 0},
+{ 717, 3222725296u, 2772307714u, 1051008486u, 32546576u, 3227718950u, 101416453u, 0, SINH_TOLERANCE, 0},
+{ 718, 3225500575u, 2143788498u, 3195498043u, 3630119231u, 3271191534u, 237087314u, 0, SINH_TOLERANCE, 0},
+{ 719, 3215410151u, 2527385594u, 3240503648u, 3482095012u, 3215410676u, 1476782795u, 0, SINH_TOLERANCE, 0},
+{ 720, 3226440159u, 2690097362u, 1068598730u, 2360266862u, 3314617193u, 2847015826u, 0, SINH_TOLERANCE, 0},
+{ 721, 1070392205u, 2673272949u, 1082639557u, 522449749u, 1070408319u, 3234356539u, 0, SINH_TOLERANCE, 0},
+{ 722, 1081355475u, 3596379400u, 3242016775u, 2002293002u, 1559892600u, 3057535830u, 0, SINH_TOLERANCE, 0},
+{ 723, 1080565288u, 4113224369u, 3222122439u, 2152316893u, 1363443372u, 2667631927u, 0, SINH_TOLERANCE, 0},
+{ 724, 3220796716u, 31662602u, 1047721249u, 1747087514u, 3221410408u, 2908771441u, 0, SINH_TOLERANCE, 0},
+{ 725, 3228443661u, 2489659568u, 1097051253u, 277506957u, 3583855028u, 1518851146u, 0, SINH_TOLERANCE, 0},
+{ 726, 3213421930u, 3850162281u, 3213841942u, 438724093u, 3213421971u, 1002595616u, 0, SINH_TOLERANCE, 0},
+{ 727, 1079663895u, 2431814052u, 1075518084u, 2672434118u, 1231134099u, 340027527u, 0, SINH_TOLERANCE, 0},
+{ 728, 3227434095u, 391606792u, 1048184750u, 4168944276u, 3405033863u, 1300409563u, 0, SINH_TOLERANCE, 0},
+{ 729, 3227869472u, 457529672u, 3201090276u, 72407935u, 3477794872u, 3560882185u, 0, SINH_TOLERANCE, 0},
+{ 730, 3220817871u, 3954981400u, 1052053242u, 2411049585u, 3221437703u, 2060096171u, 0, SINH_TOLERANCE, 0},
+{ 731, 1076742907u, 485456950u, 1088415093u, 1655397424u, 1094089911u, 1354369709u, 0, SINH_TOLERANCE, 0},
+{ 732, 3215011644u, 1551748070u, 3236871640u, 1329701152u, 3215011855u, 3520772167u, 0, SINH_TOLERANCE, 0},
+{ 733, 3221493394u, 3099222537u, 1104984570u, 4293792842u, 3222829311u, 3862774079u, 0, SINH_TOLERANCE, 0},
+{ 734, 3216532617u, 3603065260u, 3197735968u, 2402359253u, 3216535037u, 3882208129u, 0, SINH_TOLERANCE, 0},
+{ 735, 3215601800u, 3961208159u, 3219057584u, 2340553876u, 3215602549u, 2108585992u, 0, SINH_TOLERANCE, 0},
+{ 736, 1073833333u, 4014841779u, 3197672877u, 3697233334u, 1074880117u, 1269717825u, 0, SINH_TOLERANCE, 0},
+{ 737, 3219567113u, 1403876392u, 3254028950u, 921363393u, 3219694981u, 977790656u, 0, SINH_TOLERANCE, 0},
+{ 738, 1082085982u, 1862576361u, 3194031708u, 2476290925u, 1829767895u, 2702820797u, 0, SINH_TOLERANCE, 0},
+{ 739, 1067487560u, 1454212851u, 1088378861u, 3400401866u, 1067487749u, 3552988746u, 0, SINH_TOLERANCE, 0},
+{ 740, 1074406809u, 552676385u, 3188635745u, 3778112968u, 1076509416u, 3567151563u, 0, SINH_TOLERANCE, 0},
+{ 741, 3219555010u, 1199568671u, 3225679997u, 46947405u, 3219679731u, 1089077561u, 0, SINH_TOLERANCE, 0},
+{ 742, 1074539809u, 2596231448u, 3253943728u, 2219151748u, 1076947313u, 1250142917u, 0, SINH_TOLERANCE, 0},
+{ 743, 1071769915u, 4119719558u, 3222036299u, 1275474618u, 1071832173u, 3278912590u, 0, SINH_TOLERANCE, 0},
+{ 744, 3226277175u, 3347296825u, 1101507910u, 1254014794u, 3307089345u, 2046925534u, 0, SINH_TOLERANCE, 0},
+{ 745, 1076779960u, 673775040u, 1070743626u, 244126093u, 1094571370u, 3392966696u, 0, SINH_TOLERANCE, 0},
+{ 746, 3216831338u, 1832066983u, 1051358028u, 3262483417u, 3216835385u, 906880532u, 0, SINH_TOLERANCE, 0},
+{ 747, 1074413872u, 3962610501u, 3198598777u, 849269178u, 1076532801u, 1295287247u, 0, SINH_TOLERANCE, 0},
+{ 748, 3224988140u, 2497516122u, 3254374111u, 2821429629u, 3257490278u, 4293280082u, 0, SINH_TOLERANCE, 0},
+{ 749, 1074139136u, 2805941787u, 3217785843u, 779131141u, 1075799904u, 2039643898u, 0, SINH_TOLERANCE, 0},
+{ 750, 3222714382u, 723423605u, 1084533420u, 627282213u, 3227667948u, 3426899714u, 0, SINH_TOLERANCE, 0},
+{ 751, 3220141984u, 4292778869u, 1078101071u, 1676860147u, 3220333842u, 115417948u, 0, SINH_TOLERANCE, 0},
+{ 752, 1074191350u, 3528118587u, 3194648564u, 2363260897u, 1075928029u, 976877107u, 0, SINH_TOLERANCE, 0},
+{ 753, 3214917975u, 1307010018u, 1061248120u, 1468743108u, 3214918308u, 3784163317u, 0, SINH_TOLERANCE, 0},
+{ 754, 3227708771u, 107905661u, 3226089788u, 1943427674u, 3448102191u, 73406449u, 0, SINH_TOLERANCE, 0},
+{ 755, 3213396365u, 760006940u, 1054265604u, 1749976597u, 3213396403u, 2790275751u, 0, SINH_TOLERANCE, 0},
+{ 756, 3225190472u, 2787503556u, 1081282610u, 1195841206u, 3262209627u, 1251355153u, 0, SINH_TOLERANCE, 0},
+{ 757, 3213822252u, 545462045u, 3208381743u, 1981311808u, 3213822329u, 4200203663u, 0, SINH_TOLERANCE, 0},
+{ 758, 1070669320u, 3657978397u, 1104463616u, 3501253426u, 1070682743u, 983473248u, 0, SINH_TOLERANCE, 0},
+{ 759, 1067709649u, 1804177501u, 3210693633u, 3606766729u, 1067709980u, 2574179964u, 0, SINH_TOLERANCE, 0},
+{ 760, 1074759727u, 1336278526u, 1043741618u, 3165279431u, 1077525747u, 3006481726u, 0, SINH_TOLERANCE, 0},
+{ 761, 1069103403u, 1599382075u, 1058018527u, 4212580517u, 1069106079u, 1072511966u, 0, SINH_TOLERANCE, 0},
+{ 762, 3217988086u, 3007589929u, 3202026547u, 2792028313u, 3218007245u, 3332316496u, 0, SINH_TOLERANCE, 0},
+{ 763, 3228965522u, 1866066996u, 1060329048u, 3727175322u, 3754078725u, 1771558986u, 0, SINH_TOLERANCE, 0},
+{ 764, 3215193859u, 150890940u, 1056025306u, 3082724735u, 3215194190u, 2754183182u, 0, SINH_TOLERANCE, 0},
+{ 765, 1071446123u, 80400395u, 1093584426u, 3478941315u, 1071511628u, 3523257202u, 0, SINH_TOLERANCE, 0},
+{ 766, 3228571942u, 4050954182u, 3219263194u, 2537475930u, 3608688426u, 405562207u, 0, SINH_TOLERANCE, 0},
+{ 767, 1071133327u, 2881752155u, 3212589299u, 2559651278u, 1071171380u, 1056997979u, 0, SINH_TOLERANCE, 0},
+{ 768, 3228044784u, 440309030u, 3214267461u, 3788040806u, 3510153348u, 3272529857u, 0, SINH_TOLERANCE, 0},
+{ 769, 1080553671u, 918813144u, 3208535698u, 1607035904u, 1361304066u, 4120585298u, 0, SINH_TOLERANCE, 0},
+{ 770, 1066254699u, 2497054124u, 1089139147u, 2549609010u, 1066254768u, 815089803u, 0, SINH_TOLERANCE, 0},
+{ 771, 1066960585u, 790219083u, 1054657139u, 2797979479u, 1066960738u, 3757904356u, 0, SINH_TOLERANCE, 0},
+{ 772, 1070364312u, 1149462078u, 1095765205u, 3879963182u, 1070379723u, 1998424973u, 0, SINH_TOLERANCE, 0},
+{ 773, 3216361301u, 2684353926u, 3205212854u, 1732474928u, 3216363023u, 3802316127u, 0, SINH_TOLERANCE, 0},
+{ 774, 1079508325u, 2742237025u, 1051317716u, 3386396147u, 1216722133u, 1976234612u, 0, SINH_TOLERANCE, 0},
+{ 775, 1071619594u, 3408320912u, 1103071166u, 4233059513u, 1071674792u, 2816507100u, 0, SINH_TOLERANCE, 0},
+{ 776, 1071155004u, 1077495917u, 1088399968u, 433115118u, 1071194646u, 2074456499u, 0, SINH_TOLERANCE, 0},
+{ 777, 3217130484u, 841366493u, 1051716814u, 4121125128u, 3217134069u, 4021865308u, 0, SINH_TOLERANCE, 0},
+{ 778, 1070923540u, 321857207u, 1089128010u, 1149988239u, 1070948356u, 2360289704u, 0, SINH_TOLERANCE, 0},
+{ 779, 3226668295u, 799866606u, 3197637091u, 3924438208u, 3334384164u, 3227583322u, 0, SINH_TOLERANCE, 0},
+{ 780, 3213082986u, 2002049816u, 1077053447u, 2240354761u, 3213083006u, 2340324638u, 0, SINH_TOLERANCE, 0},
+{ 781, 3222714827u, 478939968u, 1097035749u, 1066716440u, 3227669986u, 2910722967u, 0, SINH_TOLERANCE, 0},
+{ 782, 3224085033u, 1653104725u, 1088548129u, 81977716u, 3240005112u, 1441361965u, 0, SINH_TOLERANCE, 0},
+{ 783, 3215735644u, 3899475018u, 3189694084u, 3330093036u, 3215736582u, 2708903464u, 0, SINH_TOLERANCE, 0},
+{ 784, 1077778247u, 2612450289u, 1079065127u, 603380842u, 1116328756u, 409577748u, 0, SINH_TOLERANCE, 0},
+{ 785, 1080713847u, 3962735564u, 1101570429u, 1372490825u, 1390866750u, 1157784041u, 0, SINH_TOLERANCE, 0},
+{ 786, 1069486080u, 1479841439u, 1059312257u, 541504905u, 1069491079u, 1220268850u, 0, SINH_TOLERANCE, 0},
+{ 787, 1075516450u, 2626148789u, 1057571099u, 4121656076u, 1081817123u, 2807947775u, 0, SINH_TOLERANCE, 0},
+{ 788, 1075321933u, 1902560314u, 1043130231u, 3557671562u, 1080683447u, 2923202064u, 0, SINH_TOLERANCE, 0},
+{ 789, 3214801292u, 41779312u, 1081626342u, 831171823u, 3214801572u, 2419721377u, 0, SINH_TOLERANCE, 0},
+{ 790, 1069665436u, 1393168821u, 1066457405u, 1381616968u, 1069669199u, 1403219285u, 0, SINH_TOLERANCE, 0},
+{ 791, 1073386717u, 3756584649u, 3222267229u, 1423157432u, 1074024022u, 3148225902u, 0, SINH_TOLERANCE, 0},
+{ 792, 3229269850u, 1894912556u, 1042426694u, 155024547u, 3866449360u, 945429025u, 0, SINH_TOLERANCE, 0},
+{ 793, 3214327880u, 35164295u, 3203391785u, 1037041084u, 3214328002u, 2922798137u, 0, SINH_TOLERANCE, 0},
+{ 794, 1076388871u, 3957875950u, 3232195211u, 1590756436u, 1090004859u, 3120429035u, 0, SINH_TOLERANCE, 0},
+{ 795, 1071990050u, 1447585080u, 1071279485u, 1107922438u, 1072094986u, 196039264u, 0, SINH_TOLERANCE, 0},
+{ 796, 1067224038u, 981897615u, 1051856116u, 430357614u, 1067224280u, 2390208411u, 0, SINH_TOLERANCE, 0},
+{ 797, 3222281335u, 395145384u, 3219821938u, 50586510u, 3225161542u, 3740943084u, 0, SINH_TOLERANCE, 0},
+{ 798, 1072921640u, 750827797u, 1082862669u, 230466783u, 1073261527u, 1672613981u, 0, SINH_TOLERANCE, 0},
+{ 799, 1077231635u, 1365083575u, 3204848310u, 1700831722u, 1103707567u, 2384443675u, 0, SINH_TOLERANCE, 0},
+{ 800, 3220187542u, 344241827u, 1071538935u, 2715566077u, 3220377099u, 1385546430u, 0, SINH_TOLERANCE, 0},
+{ 801, 3227659912u, 4069301823u, 3193208760u, 2949125229u, 3439117055u, 3577170264u, 0, SINH_TOLERANCE, 0},
+{ 802, 1081211291u, 3585711710u, 1065801594u, 2302229267u, 1506690422u, 4025253862u, 0, SINH_TOLERANCE, 0},
+{ 803, 3214041900u, 709803845u, 1048741487u, 2296910194u, 3214041964u, 3967177357u, 0, SINH_TOLERANCE, 0},
+{ 804, 3214252299u, 744421179u, 1069302001u, 2659232829u, 3214252404u, 515290522u, 0, SINH_TOLERANCE, 0},
+{ 805, 1078155904u, 1799949903u, 3192522886u, 4212149209u, 1130147983u, 2298972399u, 0, SINH_TOLERANCE, 0},
+{ 806, 3217642838u, 145234164u, 3250614064u, 912384201u, 3217653698u, 899910502u, 0, SINH_TOLERANCE, 0},
+{ 807, 3225830600u, 2784620507u, 1102812948u, 3531481022u, 3286438912u, 414543568u, 0, SINH_TOLERANCE, 0},
+{ 808, 3229139567u, 383952592u, 3205659905u, 3633194728u, 3818327251u, 1189342136u, 0, SINH_TOLERANCE, 0},
+{ 809, 3216059164u, 3792395543u, 1070072378u, 3864816376u, 3216060008u, 2074660971u, 0, SINH_TOLERANCE, 0},
+{ 810, 3217899185u, 2115553675u, 1066288499u, 3538377867u, 3217915903u, 3457964625u, 0, SINH_TOLERANCE, 0},
+{ 811, 3229006513u, 1230026762u, 1090719723u, 440819880u, 3769193195u, 2644861228u, 0, SINH_TOLERANCE, 0},
+{ 812, 3214518020u, 2991290482u, 1096886719u, 1097971167u, 3214518196u, 2320636781u, 0, SINH_TOLERANCE, 0},
+{ 813, 1077465688u, 1098035020u, 3230900504u, 1479059095u, 1109134739u, 1050435763u, 0, SINH_TOLERANCE, 0},
+{ 814, 3229036868u, 1719428427u, 3188631907u, 3707377409u, 3780408200u, 1550018828u, 0, SINH_TOLERANCE, 0},
+{ 815, 1068964805u, 3748932896u, 1084908557u, 1325384361u, 1068966863u, 1610285566u, 0, SINH_TOLERANCE, 0},
+{ 816, 1076315468u, 3979168763u, 1057455255u, 2454615952u, 1089181690u, 2956799202u, 0, SINH_TOLERANCE, 0},
+{ 817, 1068835624u, 1449164578u, 1056960316u, 1654931641u, 1068837198u, 3670878842u, 0, SINH_TOLERANCE, 0},
+{ 818, 1073536162u, 2120487381u, 3226298974u, 2364226633u, 1074242104u, 2525198454u, 0, SINH_TOLERANCE, 0},
+{ 819, 1074022852u, 1074268944u, 1065730444u, 280016852u, 1075386792u, 430163762u, 0, SINH_TOLERANCE, 0},
+{ 820, 3216036896u, 3315127889u, 3236295594u, 2900924954u, 3216037691u, 1125117057u, 0, SINH_TOLERANCE, 0},
+{ 821, 3215300259u, 2246037502u, 1049691002u, 1496066550u, 3215300678u, 3392890991u, 0, SINH_TOLERANCE, 0},
+{ 822, 3213978379u, 4191285446u, 3217936236u, 2382392789u, 3213978435u, 102310527u, 0, SINH_TOLERANCE, 0},
+{ 823, 1078153244u, 640099844u, 1042152237u, 2064279383u, 1130001370u, 3369789477u, 0, SINH_TOLERANCE, 0},
+{ 824, 1075719134u, 3468560824u, 1093251038u, 310958750u, 1083014333u, 4134353953u, 0, SINH_TOLERANCE, 0},
+{ 825, 1080011184u, 1413568905u, 1100941106u, 1627289946u, 1263163319u, 2702685927u, 0, SINH_TOLERANCE, 0},
+{ 826, 3213569646u, 3797143370u, 3195497539u, 3843275034u, 3213569699u, 783110865u, 0, SINH_TOLERANCE, 0},
+{ 827, 3229008721u, 2806642640u, 3201943068u, 2515980718u, 3770004903u, 1495856927u, 0, SINH_TOLERANCE, 0},
+{ 828, 1077440132u, 632580632u, 1078673506u, 3259601317u, 1108541069u, 1728707154u, 0, SINH_TOLERANCE, 0},
+{ 829, 3216709215u, 3309678799u, 1049337078u, 3056787074u, 3216712530u, 367130729u, 0, SINH_TOLERANCE, 0},
+{ 830, 3221495289u, 2341164249u, 1080834967u, 2810890005u, 3222835195u, 3103339375u, 0, SINH_TOLERANCE, 0},
+{ 831, 1072262554u, 932124675u, 1093915797u, 662682630u, 1072443551u, 4229086386u, 0, SINH_TOLERANCE, 0},
+{ 832, 3228258571u, 1367996113u, 3251723684u, 2974064663u, 3549650785u, 835372527u, 0, SINH_TOLERANCE, 0},
+{ 833, 1074987851u, 323437999u, 1090499064u, 901457511u, 1078787243u, 3515686768u, 0, SINH_TOLERANCE, 0},
+{ 834, 3225293116u, 4184941840u, 3196770014u, 2458988443u, 3264531175u, 356853259u, 0, SINH_TOLERANCE, 0},
+{ 835, 1077132524u, 2023065054u, 3211994098u, 2734612965u, 1101414558u, 3575590741u, 0, SINH_TOLERANCE, 0},
+{ 836, 1071414726u, 3679267365u, 3237728785u, 1699558211u, 1071477015u, 2039647773u, 0, SINH_TOLERANCE, 0},
+{ 837, 1077593250u, 1826799031u, 1078709629u, 3986905229u, 1112051516u, 1053308024u, 0, SINH_TOLERANCE, 0},
+{ 838, 1068572425u, 351061688u, 3194386466u, 4105857588u, 1068573261u, 3201727870u, 0, SINH_TOLERANCE, 0},
+{ 839, 1068808070u, 1365244058u, 1064457319u, 1452191426u, 1068809552u, 3074969805u, 0, SINH_TOLERANCE, 0},
+{ 840, 1071462417u, 2463030625u, 3215975031u, 3773488326u, 1071529636u, 1483496502u, 0, SINH_TOLERANCE, 0},
+{ 841, 3229256575u, 752664055u, 1065110394u, 1835931663u, 3861558766u, 149401169u, 0, SINH_TOLERANCE, 0},
+{ 842, 1077559328u, 3496172149u, 1089617208u, 109068701u, 1111311801u, 1798297128u, 0, SINH_TOLERANCE, 0},
+{ 843, 3215960879u, 1636966254u, 1086098766u, 2016598298u, 3215962202u, 4285192238u, 0, SINH_TOLERANCE, 0},
+{ 844, 1067708534u, 3551516956u, 1097969102u, 1317953425u, 1067708865u, 687794695u, 0, SINH_TOLERANCE, 0},
+{ 845, 3223540761u, 2977627788u, 1045339018u, 516058480u, 3233726552u, 2028828902u, 0, SINH_TOLERANCE, 0},
+{ 846, 3224825666u, 3901731263u, 3189566462u, 32272932u, 3253797012u, 1335776681u, 0, SINH_TOLERANCE, 0},
+{ 847, 1074136068u, 1956025297u, 3246628529u, 3840733905u, 1075787798u, 854989918u, 0, SINH_TOLERANCE, 0},
+{ 848, 1080943668u, 561057891u, 3198494340u, 4271027193u, 1433394156u, 930486357u, 0, SINH_TOLERANCE, 0},
+{ 849, 3228909825u, 692989850u, 3242630588u, 2492225971u, 3733478938u, 319542345u, 0, SINH_TOLERANCE, 0},
+{ 850, 3218062309u, 3439913962u, 1067477011u, 2973333638u, 3218081712u, 867511843u, 0, SINH_TOLERANCE, 0},
+{ 851, 3219236869u, 877613377u, 1044917899u, 809672798u, 3219296481u, 3651531999u, 0, SINH_TOLERANCE, 0},
+{ 852, 3222171454u, 905426932u, 1046417457u, 1086320855u, 3224793000u, 3821373822u, 0, SINH_TOLERANCE, 0},
+{ 853, 3227472261u, 2645567288u, 1051258339u, 557182478u, 3408564878u, 3197735669u, 0, SINH_TOLERANCE, 0},
+{ 854, 3216640862u, 186287752u, 1061342054u, 4054003419u, 3216643807u, 4015504910u, 0, SINH_TOLERANCE, 0},
+{ 855, 1079440881u, 3506889716u, 3243866036u, 519056371u, 1210492348u, 931610429u, 0, SINH_TOLERANCE, 0},
+{ 856, 1065722725u, 2171898436u, 3246911982u, 1091500784u, 1065722751u, 3820650239u, 0, SINH_TOLERANCE, 0},
+{ 857, 3226870457u, 368493885u, 3222871893u, 1419055230u, 3353000072u, 2259354588u, 0, SINH_TOLERANCE, 0},
+{ 858, 1078319084u, 2010971245u, 3188804530u, 1518695799u, 1137724679u, 3191526077u, 0, SINH_TOLERANCE, 0},
+{ 859, 3218009421u, 1239207795u, 1040192984u, 2199481342u, 3218029199u, 2350238601u, 0, SINH_TOLERANCE, 0},
+{ 860, 3218318669u, 4264613432u, 3203460972u, 3558930895u, 3218338985u, 317208076u, 0, SINH_TOLERANCE, 0},
+{ 861, 1068125075u, 3772748958u, 3227667376u, 309688336u, 1068125833u, 2330123942u, 0, SINH_TOLERANCE, 0},
+{ 862, 3223403009u, 1077949160u, 1075769893u, 2405271377u, 3232071765u, 350852587u, 0, SINH_TOLERANCE, 0},
+{ 863, 1078203664u, 3751608506u, 3232278094u, 930375071u, 1132383966u, 338172682u, 0, SINH_TOLERANCE, 0},
+{ 864, 3215394369u, 1518334131u, 3205247482u, 791756713u, 3215394877u, 4212233229u, 0, SINH_TOLERANCE, 0},
+{ 865, 1067240397u, 2825203170u, 3245054001u, 1822981827u, 1067240646u, 1712540094u, 0, SINH_TOLERANCE, 0},
+{ 866, 1080093419u, 514474738u, 1089072073u, 3300845441u, 1276320656u, 226623888u, 0, SINH_TOLERANCE, 0},
+{ 867, 3219536978u, 247369460u, 3197320093u, 687450958u, 3219657109u, 624558761u, 0, SINH_TOLERANCE, 0},
+{ 868, 1081092750u, 2722237629u, 1058272368u, 90602316u, 1462892401u, 1953188388u, 0, SINH_TOLERANCE, 0},
+{ 869, 3217535619u, 1845900544u, 3231520830u, 3389751458u, 3217544506u, 1440867092u, 0, SINH_TOLERANCE, 0},
+{ 870, 3227612301u, 737689911u, 3195377751u, 3462616966u, 3430287037u, 893857503u, 0, SINH_TOLERANCE, 0},
+{ 871, 3221441232u, 3620285831u, 1055501023u, 2708056059u, 3222675304u, 2106802669u, 0, SINH_TOLERANCE, 0},
+{ 872, 3220513572u, 4073430285u, 1056206159u, 172017902u, 3220953167u, 1600993442u, 0, SINH_TOLERANCE, 0},
+{ 873, 3219161094u, 2799176222u, 1052706894u, 4083892667u, 3219209652u, 2457225002u, 0, SINH_TOLERANCE, 0},
+{ 874, 3216959621u, 1562351330u, 1069705601u, 1247765260u, 3216964546u, 771831832u, 0, SINH_TOLERANCE, 0},
+{ 875, 3224328691u, 51853475u, 3189080201u, 2783553144u, 3242754625u, 3427601173u, 0, SINH_TOLERANCE, 0},
+{ 876, 3220502929u, 3851781549u, 3241598113u, 514064046u, 3220931898u, 3142654688u, 0, SINH_TOLERANCE, 0},
+{ 877, 1080123021u, 934745487u, 3248182437u, 2798581921u, 1281762996u, 865963855u, 0, SINH_TOLERANCE, 0},
+{ 878, 3219373949u, 2948648757u, 3232177250u, 4278702895u, 3219457676u, 2491307120u, 0, SINH_TOLERANCE, 0},
+{ 879, 1073534300u, 4259101461u, 1061606772u, 84229920u, 1074239204u, 580103907u, 0, SINH_TOLERANCE, 0},
+{ 880, 3215901351u, 3891230598u, 1095924595u, 3049217547u, 3215902564u, 3665629963u, 0, SINH_TOLERANCE, 0},
+{ 881, 1074207325u, 3806018919u, 3243191216u, 280177341u, 1075963455u, 2847923212u, 0, SINH_TOLERANCE, 0},
+{ 882, 1070061714u, 3900344258u, 1063647809u, 4206745890u, 1070070770u, 1401723920u, 0, SINH_TOLERANCE, 0},
+{ 883, 3222464456u, 2126253040u, 3207248026u, 808507485u, 3226220527u, 3700151387u, 0, SINH_TOLERANCE, 0},
+{ 884, 1076653133u, 3465685634u, 3230391053u, 3754958214u, 1093053515u, 3736094795u, 0, SINH_TOLERANCE, 0},
+{ 885, 1080840988u, 461094531u, 1101110393u, 1316091396u, 1414403053u, 3462873770u, 0, SINH_TOLERANCE, 0},
+{ 886, 1071271770u, 4197635149u, 1091873113u, 1240127141u, 1071320748u, 3391833457u, 0, SINH_TOLERANCE, 0},
+{ 887, 1074333893u, 118603800u, 1105304898u, 4291425557u, 1076285526u, 455739145u, 0, SINH_TOLERANCE, 0},
+{ 888, 3219720621u, 3744663425u, 3212482771u, 953662066u, 3219893246u, 213316512u, 0, SINH_TOLERANCE, 0},
+{ 889, 1076782697u, 3564196690u, 3228101916u, 904305212u, 1094612637u, 2831821231u, 0, SINH_TOLERANCE, 0},
+{ 890, 1067207479u, 3566257266u, 3235138829u, 2734275140u, 1067207715u, 3351864665u, 0, SINH_TOLERANCE, 0},
+{ 891, 3227171261u, 606044282u, 3241318094u, 2446416887u, 3380787895u, 534441612u, 0, SINH_TOLERANCE, 0},
+{ 892, 1065744532u, 2336116589u, 3197594053u, 2296925138u, 1065744560u, 703498347u, 0, SINH_TOLERANCE, 0},
+{ 893, 1070101995u, 907670625u, 3240769036u, 1827119006u, 1070111769u, 3977968189u, 0, SINH_TOLERANCE, 0},
+{ 894, 1066487279u, 2818710946u, 3246059905u, 553394170u, 1066487333u, 2719249357u, 0, SINH_TOLERANCE, 0},
+{ 895, 3213621342u, 4099522736u, 3232742168u, 3718083858u, 3213621399u, 4034499170u, 0, SINH_TOLERANCE, 0},
+{ 896, 1078739788u, 1059279404u, 1080245336u, 175941677u, 1157065361u, 1087430260u, 0, SINH_TOLERANCE, 0},
+{ 897, 1082121019u, 1650862428u, 1061816101u, 1723201723u, 1842630885u, 3875297949u, 0, SINH_TOLERANCE, 0},
+{ 898, 3226429902u, 2462163405u, 3218946201u, 3876535372u, 3314085212u, 774021558u, 0, SINH_TOLERANCE, 0},
+{ 899, 1076004278u, 495844137u, 1073721460u, 772777946u, 1085574307u, 2998548290u, 0, SINH_TOLERANCE, 0},
+{ 900, 1068143970u, 458757721u, 3245680321u, 3609892707u, 1068144752u, 4160609393u, 0, SINH_TOLERANCE, 0},
+{ 901, 3214254476u, 2533012202u, 1079980803u, 3592268374u, 3214254582u, 92328355u, 0, SINH_TOLERANCE, 0},
+{ 902, 3216996268u, 4108274117u, 1063045844u, 571992389u, 3217001466u, 334148198u, 0, SINH_TOLERANCE, 0},
+{ 903, 1077984359u, 3541110973u, 1096296754u, 3118427427u, 1122209571u, 2499543662u, 0, SINH_TOLERANCE, 0},
+{ 904, 3213902987u, 1213941007u, 1105433735u, 2172963370u, 3213903032u, 549423227u, 0, SINH_TOLERANCE, 0},
+{ 905, 1079027567u, 272190288u, 1095452370u, 4026581530u, 1172388533u, 1567535437u, 0, SINH_TOLERANCE, 0},
+{ 906, 1079855269u, 2843638672u, 1100510986u, 3190536898u, 1248839882u, 1134925313u, 0, SINH_TOLERANCE, 0},
+{ 907, 1076417062u, 2014317727u, 3247389683u, 2428462015u, 1090384705u, 358670345u, 0, SINH_TOLERANCE, 0},
+{ 908, 1078248077u, 688442200u, 1047852515u, 3035186380u, 1134419607u, 2761855333u, 0, SINH_TOLERANCE, 0},
+{ 909, 1074567060u, 1010095511u, 3221288076u, 405287991u, 1077006544u, 3401859869u, 0, SINH_TOLERANCE, 0},
+{ 910, 3229225943u, 2983070435u, 1089546472u, 2907918480u, 3850300069u, 3410875852u, 0, SINH_TOLERANCE, 0},
+{ 911, 1076696665u, 81928569u, 1056007286u, 2740556321u, 1093638835u, 274382606u, 0, SINH_TOLERANCE, 0},
+{ 912, 1066276691u, 2076689028u, 1081558619u, 3039159031u, 1066276762u, 1887214086u, 0, SINH_TOLERANCE, 0},
+{ 913, 1067230382u, 1376882094u, 3211003208u, 1296286481u, 1067230627u, 524698425u, 0, SINH_TOLERANCE, 0},
+{ 914, 1074871434u, 744133164u, 3200943494u, 955832216u, 1078105892u, 3863653122u, 0, SINH_TOLERANCE, 0},
+{ 915, 3223144598u, 176522478u, 1069999908u, 2891249491u, 3230113321u, 799066876u, 0, SINH_TOLERANCE, 0},
+{ 916, 1065584698u, 3685851715u, 3187829932u, 2363997529u, 1065584718u, 1131714439u, 0, SINH_TOLERANCE, 0},
+{ 917, 1065409879u, 3974431579u, 1052505165u, 2589067816u, 1065409892u, 1788656707u, 0, SINH_TOLERANCE, 0},
+{ 918, 3213516885u, 3819109588u, 1048561488u, 969143351u, 3213516933u, 2906528092u, 0, SINH_TOLERANCE, 0},
+{ 919, 1073687973u, 4246896124u, 1104584799u, 1940097860u, 1074495933u, 3339427809u, 0, SINH_TOLERANCE, 0},
+{ 920, 1066912836u, 2228686199u, 3220231833u, 777624847u, 1066912976u, 3933366482u, 0, SINH_TOLERANCE, 0},
+{ 921, 3224127274u, 4189906558u, 3203004203u, 854242364u, 3240433205u, 959703078u, 0, SINH_TOLERANCE, 0},
+{ 922, 1081890311u, 4089051094u, 3227282692u, 2693170723u, 1757476753u, 2188757040u, 0, SINH_TOLERANCE, 0},
+{ 923, 1066855127u, 1278581412u, 3239296746u, 1774588717u, 1066855252u, 2916172410u, 0, SINH_TOLERANCE, 0},
+{ 924, 3221324110u, 1794845306u, 1104879344u, 4135865182u, 3222379752u, 3960615017u, 0, SINH_TOLERANCE, 0},
+{ 925, 1081283231u, 754938390u, 1061291430u, 2010786993u, 1533223782u, 1531468649u, 0, SINH_TOLERANCE, 0},
+{ 926, 1073581409u, 2034303731u, 3240176537u, 314147356u, 1074314128u, 1858315335u, 0, SINH_TOLERANCE, 0},
+{ 927, 3224109162u, 567588900u, 3195452230u, 1421366017u, 3240254842u, 1959108089u, 0, SINH_TOLERANCE, 0},
+{ 928, 3221944027u, 2708717091u, 1071975971u, 1364590470u, 3224178507u, 3057785531u, 0, SINH_TOLERANCE, 0},
+{ 929, 3229068611u, 3461956134u, 3207820115u, 1605709634u, 3792121353u, 436547866u, 0, SINH_TOLERANCE, 0},
+{ 930, 1071594452u, 1497124553u, 1051715442u, 916736957u, 1071660675u, 979412255u, 0, SINH_TOLERANCE, 0},
+{ 931, 1070002699u, 834914365u, 1064667143u, 2839166298u, 1070010765u, 4019658237u, 0, SINH_TOLERANCE, 0},
+{ 932, 1069862861u, 2139295776u, 1062816721u, 914592523u, 1069868878u, 3762302537u, 0, SINH_TOLERANCE, 0},
+{ 933, 3213754179u, 851569132u, 1058503154u, 1399378677u, 3213754249u, 2109993391u, 0, SINH_TOLERANCE, 0},
+{ 934, 3224100513u, 3897202342u, 3245382590u, 246600375u, 3240177992u, 2855945978u, 0, SINH_TOLERANCE, 0},
+{ 935, 3222314580u, 3620429520u, 1055627557u, 229305u, 3225410341u, 2600224110u, 0, SINH_TOLERANCE, 0},
+{ 936, 1076618801u, 3641997865u, 3206673888u, 93720614u, 1092711110u, 70901104u, 0, SINH_TOLERANCE, 0},
+{ 937, 3222565555u, 32766320u, 1062084905u, 3668443038u, 3226779630u, 843791256u, 0, SINH_TOLERANCE, 0},
+{ 938, 3222250420u, 2039713492u, 3248699388u, 1346210821u, 3225032231u, 3912440241u, 0, SINH_TOLERANCE, 0},
+{ 939, 1078369952u, 1335820726u, 3191756860u, 1808427032u, 1140014824u, 1082588104u, 0, SINH_TOLERANCE, 0},
+{ 940, 1070879947u, 650692001u, 1103515670u, 2253348763u, 1070902471u, 1759700474u, 0, SINH_TOLERANCE, 0},
+{ 941, 3213415283u, 2372623300u, 3210185343u, 3200572848u, 3213415323u, 1713775980u, 0, SINH_TOLERANCE, 0},
+{ 942, 1080873125u, 762317532u, 3194595095u, 3192607437u, 1420280283u, 2571597720u, 0, SINH_TOLERANCE, 0},
+{ 943, 1070651309u, 217775356u, 3232827087u, 2969367386u, 1070664093u, 3271935470u, 0, SINH_TOLERANCE, 0},
+{ 944, 1069755463u, 3621353969u, 1077994795u, 3873976266u, 1069760167u, 3476394269u, 0, SINH_TOLERANCE, 0},
+{ 945, 1078719075u, 268372152u, 3221764390u, 3216978962u, 1156113361u, 77208680u, 0, SINH_TOLERANCE, 0},
+{ 946, 3227563243u, 142942404u, 1075322987u, 1746449109u, 3421259445u, 1613517009u, 0, SINH_TOLERANCE, 0},
+{ 947, 1081986200u, 496534875u, 3254522293u, 2532372502u, 1792868955u, 1796814503u, 0, SINH_TOLERANCE, 0},
+{ 948, 3228205445u, 2999955409u, 3222793392u, 1868977643u, 3539879421u, 861578698u, 0, SINH_TOLERANCE, 0},
+{ 949, 1074319042u, 3353193428u, 3218469191u, 3326244297u, 1076243608u, 4084542960u, 0, SINH_TOLERANCE, 0},
+{ 950, 1072413103u, 73646871u, 3231442171u, 3711510104u, 1072649120u, 3359020356u, 0, SINH_TOLERANCE, 0},
+{ 951, 1077900612u, 218135177u, 3198908856u, 3082199105u, 1119150740u, 3713509082u, 0, SINH_TOLERANCE, 0},
+{ 952, 1072262784u, 1061628117u, 3248859043u, 86776158u, 1072443858u, 2376683037u, 0, SINH_TOLERANCE, 0},
+{ 953, 3217921858u, 938869114u, 1087911145u, 2416710759u, 3217939177u, 4171102818u, 0, SINH_TOLERANCE, 0},
+{ 954, 1079848192u, 2970853959u, 3239543429u, 1887505029u, 1248109254u, 3136433410u, 0, SINH_TOLERANCE, 0},
+{ 955, 3225145875u, 1337895935u, 1076463812u, 1172733328u, 3261175537u, 31768603u, 0, SINH_TOLERANCE, 0},
+{ 956, 1068014296u, 1469010822u, 3229583535u, 551399515u, 1068014917u, 303583273u, 0, SINH_TOLERANCE, 0},
+{ 957, 1074118123u, 1849711538u, 1049053713u, 1744276190u, 1075718382u, 393946761u, 0, SINH_TOLERANCE, 0},
+{ 958, 3226410140u, 2976596113u, 3192137295u, 3033242648u, 3313190593u, 2523414676u, 0, SINH_TOLERANCE, 0},
+{ 959, 1079824113u, 876810930u, 3197470945u, 2571587447u, 1245903887u, 1889039904u, 0, SINH_TOLERANCE, 0},
+{ 960, 3226042170u, 4007797282u, 3225853845u, 4069319648u, 3296181101u, 4203630871u, 0, SINH_TOLERANCE, 0},
+{ 961, 1067202926u, 3840538373u, 1043189552u, 3668774580u, 1067203161u, 474385453u, 0, SINH_TOLERANCE, 0},
+{ 962, 3220757432u, 200857661u, 3229758439u, 3359367736u, 3221361049u, 705632935u, 0, SINH_TOLERANCE, 0},
+{ 963, 3227826349u, 111868139u, 3227902082u, 2366064003u, 3469858676u, 1662095535u, 0, SINH_TOLERANCE, 0},
+{ 964, 1066215262u, 3510904416u, 3222131653u, 3822770497u, 1066215327u, 1490099292u, 0, SINH_TOLERANCE, 0},
+{ 965, 3226947075u, 789151814u, 1099269239u, 2958956055u, 3360058035u, 2807768454u, 0, SINH_TOLERANCE, 0},
+{ 966, 1076290712u, 722163228u, 1105524559u, 1534462169u, 1088870444u, 2167255734u, 0, SINH_TOLERANCE, 0},
+{ 967, 1066509006u, 2207037106u, 3208952465u, 1231254630u, 1066509063u, 2804126656u, 0, SINH_TOLERANCE, 0},
+{ 968, 3215709852u, 3838689849u, 3198769679u, 1302617170u, 3215710751u, 4042008026u, 0, SINH_TOLERANCE, 0},
+{ 969, 1076501722u, 2527556476u, 3240373426u, 124352692u, 1091342710u, 1779709388u, 0, SINH_TOLERANCE, 0},
+{ 970, 3215269445u, 3502371499u, 1043411944u, 4190072016u, 3215269838u, 1199602531u, 0, SINH_TOLERANCE, 0},
+{ 971, 1070967598u, 1798470077u, 3200116917u, 3421833729u, 1070994885u, 1525253159u, 0, SINH_TOLERANCE, 0},
+{ 972, 3214486476u, 3653237931u, 3204255012u, 3683870669u, 3214486642u, 4211787665u, 0, SINH_TOLERANCE, 0},
+{ 973, 1069317222u, 376530104u, 1073853547u, 565755892u, 1069321076u, 4082953569u, 0, SINH_TOLERANCE, 0},
+{ 974, 3226775211u, 558292492u, 1051772749u, 4267873474u, 3344199543u, 131886187u, 0, SINH_TOLERANCE, 0},
+{ 975, 3221626981u, 509637100u, 3212030069u, 215050379u, 3223300224u, 3430243983u, 0, SINH_TOLERANCE, 0},
+{ 976, 1078425613u, 3571665665u, 3188628584u, 757824767u, 1142574424u, 253046892u, 0, SINH_TOLERANCE, 0},
+{ 977, 3220042217u, 998858159u, 1063077962u, 436029885u, 3220259168u, 840166219u, 0, SINH_TOLERANCE, 0},
+{ 978, 3217481301u, 996300405u, 3193842624u, 80548098u, 3217489286u, 4097607243u, 0, SINH_TOLERANCE, 0},
+{ 979, 3222557384u, 3876129407u, 3215332180u, 2226970413u, 3226737898u, 3835235292u, 0, SINH_TOLERANCE, 0},
+{ 980, 3225026041u, 200013509u, 3224552716u, 414878724u, 3258358576u, 1169612687u, 0, SINH_TOLERANCE, 0},
+{ 981, 3224325637u, 309319541u, 1048979765u, 1261662434u, 3242717634u, 817191663u, 0, SINH_TOLERANCE, 0},
+{ 982, 1077718303u, 4062255924u, 3224274128u, 4289485681u, 1114943885u, 3449799183u, 0, SINH_TOLERANCE, 0},
+{ 983, 3224601748u, 1611969213u, 1053890378u, 3774617276u, 3248610102u, 3591228803u, 0, SINH_TOLERANCE, 0},
+{ 984, 1075169883u, 1752164782u, 3239587974u, 612223386u, 1079838304u, 549802351u, 0, SINH_TOLERANCE, 0},
+{ 985, 1065663030u, 2024044989u, 1074932678u, 3259111307u, 1065663053u, 2841083817u, 0, SINH_TOLERANCE, 0},
+{ 986, 1068936158u, 2564965629u, 1093571065u, 169360454u, 1068938101u, 2166799640u, 0, SINH_TOLERANCE, 0},
+{ 987, 1077016178u, 1860101737u, 3191222372u, 1676437468u, 1098787212u, 2272979214u, 0, SINH_TOLERANCE, 0},
+{ 988, 1070288728u, 588387057u, 3192103292u, 2495288012u, 1070302338u, 754215119u, 0, SINH_TOLERANCE, 0},
+{ 989, 3214127225u, 659070058u, 1073095700u, 1393632068u, 3214127304u, 2856651075u, 0, SINH_TOLERANCE, 0},
+{ 990, 3220828991u, 4276187829u, 3217553330u, 1868253275u, 3221452255u, 1644756000u, 0, SINH_TOLERANCE, 0},
+{ 991, 3222171696u, 2085481575u, 3215994784u, 800910002u, 3224793681u, 798995151u, 0, SINH_TOLERANCE, 0},
+{ 992, 1069517748u, 1950570756u, 3200582211u, 941022151u, 1069522984u, 1964003731u, 0, SINH_TOLERANCE, 0},
+{ 993, 1070113280u, 2075610870u, 3250142022u, 3605152103u, 1070123263u, 1505468039u, 0, SINH_TOLERANCE, 0},
+{ 994, 3216567890u, 3792931748u, 3204857863u, 804393211u, 3216570474u, 3250710556u, 0, SINH_TOLERANCE, 0},
+{ 995, 3229529122u, 3430071177u, 3226288311u, 3652522729u, 3962218246u, 874872258u, 0, SINH_TOLERANCE, 0},
+{ 996, 3215994766u, 236884699u, 3227874605u, 2193269825u, 3215995472u, 3941351343u, 0, SINH_TOLERANCE, 0},
+{ 997, 1071228049u, 2744231849u, 1046186036u, 771053722u, 1071273376u, 870874424u, 0, SINH_TOLERANCE, 0},
+{ 998, 1076656004u, 3000189819u, 1096500901u, 2057239777u, 1093086420u, 3545308331u, 0, SINH_TOLERANCE, 0},
+{ 999, 1078106941u, 205759408u, 3244643377u, 2702292618u, 1127858436u, 16441604u, 0, SINH_TOLERANCE, 0},
+
+
+// AUTOMATICALLY GENERATED VECTORS STOP
+
+};
+
+#endif // CYGONCE_LIBM_SINH_H multiple inclusion protection
+
+// EOF sinh.h
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/sinhf.c b/ecos/packages/language/c/libm/current/tests/vectors/sinhf.c
new file mode 100644
index 0000000..acd32f2
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/sinhf.c
@@ -0,0 +1,115 @@
+//===========================================================================
+//
+// sinhf.c
+//
+// Test of sinhf() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// Declarations for test system:
+//
+// TESTCASE_TYPE=CYG_TEST_MODULE
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include <cyg/infra/testcase.h> // Test infrastructure
+#include <math.h> // Header for this package
+#include <sys/ieeefp.h> // Cyg_libm_ieee_float_shape_type
+#include "vectors/vector_support_float.h"// extra support for math tests
+
+#include "vectors/sinhf.h"
+
+// FUNCTIONS
+
+static void
+test( CYG_ADDRWORD data )
+{
+ cyg_ucount32 vec_size;
+ cyg_bool ret;
+
+ vec_size = sizeof(sinhf_vec) / sizeof(Cyg_libm_test_float_vec_t);
+ ret = doTestVecFloat( (CYG_ADDRWORD) &sinhf, CYG_LIBM_TEST_VEC_FLOAT,
+ CYG_LIBM_TEST_VEC_NONE, CYG_LIBM_TEST_VEC_FLOAT,
+ &sinhf_vec[0], vec_size );
+
+ if (ret==true)
+ {
+ CYG_TEST_PASS("sinhf() is stable");
+ } // if
+ else
+ {
+ CYG_TEST_FAIL("sinhf() failed tests");
+ } // else
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for Math "
+ "library sinhf() function");
+} // test()
+
+
+int
+main(int argc, char *argv[])
+{
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for Math library "
+ "sinhf() function");
+
+ START_TEST( test );
+
+ CYG_TEST_PASS_FINISH("Testing is not applicable to this configuration");
+
+} // main()
+
+
+// EOF sinhf.c
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/sinhf.h b/ecos/packages/language/c/libm/current/tests/vectors/sinhf.h
new file mode 100644
index 0000000..92cb1b2
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/sinhf.h
@@ -0,0 +1,363 @@
+#ifndef CYGONCE_LIBM_SINHF_H
+#define CYGONCE_LIBM_SINHF_H
+//===========================================================================
+//
+// sinhf.h
+//
+// Test vectors for testing of sinhf() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage: #include "vectors/sinhf.h"
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include "vectors/vector_support_float.h"// extra support for math tests
+
+#define SINH_TOLERANCE 1.0E-04
+
+static const Cyg_libm_test_float_vec_t sinhf_vec[] = {
+
+// AUTOMATICALLY GENERATED VECTORS START
+
+{0, 3214514586u, 3217110536u, 3217110536u, 0, SINH_TOLERANCE, 0},
+{1, 3214430700u, 3216959278u, 3216959278u, 0, SINH_TOLERANCE, 0},
+{2, 3214346813u, 3216809269u, 3216809269u, 0, SINH_TOLERANCE, 0},
+{3, 3214262927u, 3216660499u, 3216660499u, 0, SINH_TOLERANCE, 0},
+{4, 3214179041u, 3216512949u, 3216512949u, 0, SINH_TOLERANCE, 0},
+{5, 3214095155u, 3216366607u, 3216366607u, 0, SINH_TOLERANCE, 0},
+{6, 3214011269u, 3216221454u, 3216221454u, 0, SINH_TOLERANCE, 0},
+{7, 3213927383u, 3216077481u, 3216077481u, 0, SINH_TOLERANCE, 0},
+{8, 3213843497u, 3215934670u, 3215934670u, 0, SINH_TOLERANCE, 0},
+{9, 3213759611u, 3215793008u, 3215793008u, 0, SINH_TOLERANCE, 0},
+{10, 3213675725u, 3215652480u, 3215652480u, 0, SINH_TOLERANCE, 0},
+{11, 3213591839u, 3215513072u, 3215513072u, 0, SINH_TOLERANCE, 0},
+{12, 3213507953u, 3215374771u, 3215374771u, 0, SINH_TOLERANCE, 0},
+{13, 3213424067u, 3215237562u, 3215237562u, 0, SINH_TOLERANCE, 0},
+{14, 3213340180u, 3215101431u, 3215101431u, 0, SINH_TOLERANCE, 0},
+{15, 3213256294u, 3214966367u, 3214966367u, 0, SINH_TOLERANCE, 0},
+{16, 3213172408u, 3214832356u, 3214832356u, 0, SINH_TOLERANCE, 0},
+{17, 3213088522u, 3214699382u, 3214699382u, 0, SINH_TOLERANCE, 0},
+{18, 3213004636u, 3214567433u, 3214567433u, 0, SINH_TOLERANCE, 0},
+{19, 3212920750u, 3214436496u, 3214436496u, 0, SINH_TOLERANCE, 0},
+{20, 3212836864u, 3214306558u, 3214306558u, 0, SINH_TOLERANCE, 0},
+{21, 3212669092u, 3214177606u, 3214177606u, 0, SINH_TOLERANCE, 0},
+{22, 3212501320u, 3214049627u, 3214049627u, 0, SINH_TOLERANCE, 0},
+{23, 3212333548u, 3213922608u, 3213922608u, 0, SINH_TOLERANCE, 0},
+{24, 3212165775u, 3213796536u, 3213796536u, 0, SINH_TOLERANCE, 0},
+{25, 3211998003u, 3213671399u, 3213671399u, 0, SINH_TOLERANCE, 0},
+{26, 3211830231u, 3213547184u, 3213547184u, 0, SINH_TOLERANCE, 0},
+{27, 3211662459u, 3213423880u, 3213423880u, 0, SINH_TOLERANCE, 0},
+{28, 3211494687u, 3213301473u, 3213301473u, 0, SINH_TOLERANCE, 0},
+{29, 3211326915u, 3213179951u, 3213179951u, 0, SINH_TOLERANCE, 0},
+{30, 3211159142u, 3213059302u, 3213059302u, 0, SINH_TOLERANCE, 0},
+{31, 3210991370u, 3212939515u, 3212939515u, 0, SINH_TOLERANCE, 0},
+{32, 3210823598u, 3212804289u, 3212804289u, 0, SINH_TOLERANCE, 0},
+{33, 3210655826u, 3212568087u, 3212568087u, 0, SINH_TOLERANCE, 0},
+{34, 3210488054u, 3212333536u, 3212333536u, 0, SINH_TOLERANCE, 0},
+{35, 3210320282u, 3212100612u, 3212100612u, 0, SINH_TOLERANCE, 0},
+{36, 3210152509u, 3211869292u, 3211869292u, 0, SINH_TOLERANCE, 0},
+{37, 3209984737u, 3211639553u, 3211639553u, 0, SINH_TOLERANCE, 0},
+{38, 3209816965u, 3211411372u, 3211411372u, 0, SINH_TOLERANCE, 0},
+{39, 3209649193u, 3211184727u, 3211184727u, 0, SINH_TOLERANCE, 0},
+{40, 3209481421u, 3210959594u, 3210959594u, 0, SINH_TOLERANCE, 0},
+{41, 3209313649u, 3210735951u, 3210735951u, 0, SINH_TOLERANCE, 0},
+{42, 3209145876u, 3210513775u, 3210513775u, 0, SINH_TOLERANCE, 0},
+{43, 3208978104u, 3210293045u, 3210293045u, 0, SINH_TOLERANCE, 0},
+{44, 3208810332u, 3210073739u, 3210073739u, 0, SINH_TOLERANCE, 0},
+{45, 3208642560u, 3209855833u, 3209855833u, 0, SINH_TOLERANCE, 0},
+{46, 3208474788u, 3209639308u, 3209639308u, 0, SINH_TOLERANCE, 0},
+{47, 3208307016u, 3209424141u, 3209424141u, 0, SINH_TOLERANCE, 0},
+{48, 3208139244u, 3209210310u, 3209210310u, 0, SINH_TOLERANCE, 0},
+{49, 3207971471u, 3208997792u, 3208997792u, 0, SINH_TOLERANCE, 0},
+{50, 3207803699u, 3208786570u, 3208786570u, 0, SINH_TOLERANCE, 0},
+{51, 3207635927u, 3208576621u, 3208576621u, 0, SINH_TOLERANCE, 0},
+{52, 3207468155u, 3208367923u, 3208367923u, 0, SINH_TOLERANCE, 0},
+{53, 3207300383u, 3208160456u, 3208160456u, 0, SINH_TOLERANCE, 0},
+{54, 3207132611u, 3207954200u, 3207954200u, 0, SINH_TOLERANCE, 0},
+{55, 3206964838u, 3207749131u, 3207749131u, 0, SINH_TOLERANCE, 0},
+{56, 3206797066u, 3207545233u, 3207545233u, 0, SINH_TOLERANCE, 0},
+{57, 3206629294u, 3207342483u, 3207342483u, 0, SINH_TOLERANCE, 0},
+{58, 3206461522u, 3207140862u, 3207140862u, 0, SINH_TOLERANCE, 0},
+{59, 3206293750u, 3206940348u, 3206940348u, 0, SINH_TOLERANCE, 0},
+{60, 3206125978u, 3206740923u, 3206740923u, 0, SINH_TOLERANCE, 0},
+{61, 3205958205u, 3206542565u, 3206542565u, 0, SINH_TOLERANCE, 0},
+{62, 3205790433u, 3206345256u, 3206345256u, 0, SINH_TOLERANCE, 0},
+{63, 3205622661u, 3206148976u, 3206148976u, 0, SINH_TOLERANCE, 0},
+{64, 3205454889u, 3205953704u, 3205953704u, 0, SINH_TOLERANCE, 0},
+{65, 3205287117u, 3205759423u, 3205759423u, 0, SINH_TOLERANCE, 0},
+{66, 3205119345u, 3205566111u, 3205566111u, 0, SINH_TOLERANCE, 0},
+{67, 3204951572u, 3205373748u, 3205373748u, 0, SINH_TOLERANCE, 0},
+{68, 3204783800u, 3205182318u, 3205182318u, 0, SINH_TOLERANCE, 0},
+{69, 3204616028u, 3204991801u, 3204991801u, 0, SINH_TOLERANCE, 0},
+{70, 3204448256u, 3204802176u, 3204802176u, 0, SINH_TOLERANCE, 0},
+{71, 3204112712u, 3204613426u, 3204613426u, 0, SINH_TOLERANCE, 0},
+{72, 3203777167u, 3204402806u, 3204402806u, 0, SINH_TOLERANCE, 0},
+{73, 3203441623u, 3204028690u, 3204028690u, 0, SINH_TOLERANCE, 0},
+{74, 3203106079u, 3203656210u, 3203656210u, 0, SINH_TOLERANCE, 0},
+{75, 3202770534u, 3203285327u, 3203285327u, 0, SINH_TOLERANCE, 0},
+{76, 3202434990u, 3202916006u, 3202916006u, 0, SINH_TOLERANCE, 0},
+{77, 3202099446u, 3202548210u, 3202548210u, 0, SINH_TOLERANCE, 0},
+{78, 3201763901u, 3202181901u, 3202181901u, 0, SINH_TOLERANCE, 0},
+{79, 3201428357u, 3201817044u, 3201817044u, 0, SINH_TOLERANCE, 0},
+{80, 3201092813u, 3201453601u, 3201453601u, 0, SINH_TOLERANCE, 0},
+{81, 3200757268u, 3201091536u, 3201091536u, 0, SINH_TOLERANCE, 0},
+{82, 3200421724u, 3200730814u, 3200730814u, 0, SINH_TOLERANCE, 0},
+{83, 3200086180u, 3200371397u, 3200371397u, 0, SINH_TOLERANCE, 0},
+{84, 3199750636u, 3200013251u, 3200013251u, 0, SINH_TOLERANCE, 0},
+{85, 3199415091u, 3199656338u, 3199656338u, 0, SINH_TOLERANCE, 0},
+{86, 3199079547u, 3199300625u, 3199300625u, 0, SINH_TOLERANCE, 0},
+{87, 3198744003u, 3198946074u, 3198946074u, 0, SINH_TOLERANCE, 0},
+{88, 3198408458u, 3198592650u, 3198592650u, 0, SINH_TOLERANCE, 0},
+{89, 3198072914u, 3198240320u, 3198240320u, 0, SINH_TOLERANCE, 0},
+{90, 3197737370u, 3197889046u, 3197889046u, 0, SINH_TOLERANCE, 0},
+{91, 3197401825u, 3197538793u, 3197538793u, 0, SINH_TOLERANCE, 0},
+{92, 3197066281u, 3197189528u, 3197189528u, 0, SINH_TOLERANCE, 0},
+{93, 3196730737u, 3196841214u, 3196841214u, 0, SINH_TOLERANCE, 0},
+{94, 3196395192u, 3196493817u, 3196493817u, 0, SINH_TOLERANCE, 0},
+{95, 3196059648u, 3196147303u, 3196147303u, 0, SINH_TOLERANCE, 0},
+{96, 3195388559u, 3195543624u, 3195543624u, 0, SINH_TOLERANCE, 0},
+{97, 3194717471u, 3194853917u, 3194853917u, 0, SINH_TOLERANCE, 0},
+{98, 3194046382u, 3194165766u, 3194165766u, 0, SINH_TOLERANCE, 0},
+{99, 3193375293u, 3193479104u, 3193479104u, 0, SINH_TOLERANCE, 0},
+{100, 3192704205u, 3192793863u, 3192793863u, 0, SINH_TOLERANCE, 0},
+{101, 3192033116u, 3192109971u, 3192109971u, 0, SINH_TOLERANCE, 0},
+{102, 3191362028u, 3191427364u, 3191427364u, 0, SINH_TOLERANCE, 0},
+{103, 3190690939u, 3190745969u, 3190745969u, 0, SINH_TOLERANCE, 0},
+{104, 3190019850u, 3190065722u, 3190065722u, 0, SINH_TOLERANCE, 0},
+{105, 3189348762u, 3189386553u, 3189386553u, 0, SINH_TOLERANCE, 0},
+{106, 3188677673u, 3188708394u, 3188708394u, 0, SINH_TOLERANCE, 0},
+{107, 3188006584u, 3188031178u, 3188031178u, 0, SINH_TOLERANCE, 0},
+{108, 3186999951u, 3187038634u, 3187038634u, 0, SINH_TOLERANCE, 0},
+{109, 3185657774u, 3185687566u, 3185687566u, 0, SINH_TOLERANCE, 0},
+{110, 3184315597u, 3184337978u, 3184337978u, 0, SINH_TOLERANCE, 0},
+{111, 3182973420u, 3182989734u, 3182989734u, 0, SINH_TOLERANCE, 0},
+{112, 3181631242u, 3181642699u, 3181642699u, 0, SINH_TOLERANCE, 0},
+{113, 3180289065u, 3180296740u, 3180296740u, 0, SINH_TOLERANCE, 0},
+{114, 3178611343u, 3178621008u, 3178621008u, 0, SINH_TOLERANCE, 0},
+{115, 3175926989u, 3175932582u, 3175932582u, 0, SINH_TOLERANCE, 0},
+{116, 3173242634u, 3173245498u, 3173245498u, 0, SINH_TOLERANCE, 0},
+{117, 3170222735u, 3170225151u, 3170225151u, 0, SINH_TOLERANCE, 0},
+{118, 3164854026u, 3164854742u, 3164854742u, 0, SINH_TOLERANCE, 0},
+{119, 3156465418u, 3156465597u, 3156465597u, 0, SINH_TOLERANCE, 0},
+{120, 646742016u, 646742016u, 646742016u, 0, SINH_TOLERANCE, 0},
+{121, 1008981770u, 1008981949u, 1008981949u, 0, SINH_TOLERANCE, 0},
+{122, 1017370378u, 1017371094u, 1017371094u, 0, SINH_TOLERANCE, 0},
+{123, 1022739087u, 1022741503u, 1022741503u, 0, SINH_TOLERANCE, 0},
+{124, 1025758986u, 1025761850u, 1025761850u, 0, SINH_TOLERANCE, 0},
+{125, 1028443341u, 1028448934u, 1028448934u, 0, SINH_TOLERANCE, 0},
+{126, 1031127695u, 1031137360u, 1031137360u, 0, SINH_TOLERANCE, 0},
+{127, 1032805417u, 1032813092u, 1032813092u, 0, SINH_TOLERANCE, 0},
+{128, 1034147594u, 1034159051u, 1034159051u, 0, SINH_TOLERANCE, 0},
+{129, 1035489772u, 1035506086u, 1035506086u, 0, SINH_TOLERANCE, 0},
+{130, 1036831949u, 1036854330u, 1036854330u, 0, SINH_TOLERANCE, 0},
+{131, 1038174126u, 1038203918u, 1038203918u, 0, SINH_TOLERANCE, 0},
+{132, 1039516303u, 1039554986u, 1039554986u, 0, SINH_TOLERANCE, 0},
+{133, 1040522936u, 1040547530u, 1040547530u, 0, SINH_TOLERANCE, 0},
+{134, 1041194025u, 1041224746u, 1041224746u, 0, SINH_TOLERANCE, 0},
+{135, 1041865114u, 1041902905u, 1041902905u, 0, SINH_TOLERANCE, 0},
+{136, 1042536202u, 1042582074u, 1042582074u, 0, SINH_TOLERANCE, 0},
+{137, 1043207291u, 1043262321u, 1043262321u, 0, SINH_TOLERANCE, 0},
+{138, 1043878380u, 1043943716u, 1043943716u, 0, SINH_TOLERANCE, 0},
+{139, 1044549468u, 1044626323u, 1044626323u, 0, SINH_TOLERANCE, 0},
+{140, 1045220557u, 1045310215u, 1045310215u, 0, SINH_TOLERANCE, 0},
+{141, 1045891645u, 1045995456u, 1045995456u, 0, SINH_TOLERANCE, 0},
+{142, 1046562734u, 1046682118u, 1046682118u, 0, SINH_TOLERANCE, 0},
+{143, 1047233823u, 1047370269u, 1047370269u, 0, SINH_TOLERANCE, 0},
+{144, 1047904911u, 1048059976u, 1048059976u, 0, SINH_TOLERANCE, 0},
+{145, 1048576000u, 1048663655u, 1048663655u, 0, SINH_TOLERANCE, 0},
+{146, 1048911544u, 1049010169u, 1049010169u, 0, SINH_TOLERANCE, 0},
+{147, 1049247089u, 1049357566u, 1049357566u, 0, SINH_TOLERANCE, 0},
+{148, 1049582633u, 1049705880u, 1049705880u, 0, SINH_TOLERANCE, 0},
+{149, 1049918177u, 1050055145u, 1050055145u, 0, SINH_TOLERANCE, 0},
+{150, 1050253722u, 1050405398u, 1050405398u, 0, SINH_TOLERANCE, 0},
+{151, 1050589266u, 1050756672u, 1050756672u, 0, SINH_TOLERANCE, 0},
+{152, 1050924810u, 1051109002u, 1051109002u, 0, SINH_TOLERANCE, 0},
+{153, 1051260355u, 1051462426u, 1051462426u, 0, SINH_TOLERANCE, 0},
+{154, 1051595899u, 1051816977u, 1051816977u, 0, SINH_TOLERANCE, 0},
+{155, 1051931443u, 1052172690u, 1052172690u, 0, SINH_TOLERANCE, 0},
+{156, 1052266988u, 1052529603u, 1052529603u, 0, SINH_TOLERANCE, 0},
+{157, 1052602532u, 1052887749u, 1052887749u, 0, SINH_TOLERANCE, 0},
+{158, 1052938076u, 1053247166u, 1053247166u, 0, SINH_TOLERANCE, 0},
+{159, 1053273620u, 1053607888u, 1053607888u, 0, SINH_TOLERANCE, 0},
+{160, 1053609165u, 1053969953u, 1053969953u, 0, SINH_TOLERANCE, 0},
+{161, 1053944709u, 1054333396u, 1054333396u, 0, SINH_TOLERANCE, 0},
+{162, 1054280253u, 1054698253u, 1054698253u, 0, SINH_TOLERANCE, 0},
+{163, 1054615798u, 1055064562u, 1055064562u, 0, SINH_TOLERANCE, 0},
+{164, 1054951342u, 1055432358u, 1055432358u, 0, SINH_TOLERANCE, 0},
+{165, 1055286886u, 1055801679u, 1055801679u, 0, SINH_TOLERANCE, 0},
+{166, 1055622431u, 1056172562u, 1056172562u, 0, SINH_TOLERANCE, 0},
+{167, 1055957975u, 1056545042u, 1056545042u, 0, SINH_TOLERANCE, 0},
+{168, 1056293519u, 1056919158u, 1056919158u, 0, SINH_TOLERANCE, 0},
+{169, 1056629064u, 1057129778u, 1057129778u, 0, SINH_TOLERANCE, 0},
+{170, 1056964608u, 1057318528u, 1057318528u, 0, SINH_TOLERANCE, 0},
+{171, 1057132380u, 1057508153u, 1057508153u, 0, SINH_TOLERANCE, 0},
+{172, 1057300152u, 1057698670u, 1057698670u, 0, SINH_TOLERANCE, 0},
+{173, 1057467924u, 1057890100u, 1057890100u, 0, SINH_TOLERANCE, 0},
+{174, 1057635697u, 1058082463u, 1058082463u, 0, SINH_TOLERANCE, 0},
+{175, 1057803469u, 1058275775u, 1058275775u, 0, SINH_TOLERANCE, 0},
+{176, 1057971241u, 1058470056u, 1058470056u, 0, SINH_TOLERANCE, 0},
+{177, 1058139013u, 1058665328u, 1058665328u, 0, SINH_TOLERANCE, 0},
+{178, 1058306785u, 1058861608u, 1058861608u, 0, SINH_TOLERANCE, 0},
+{179, 1058474557u, 1059058917u, 1059058917u, 0, SINH_TOLERANCE, 0},
+{180, 1058642330u, 1059257275u, 1059257275u, 0, SINH_TOLERANCE, 0},
+{181, 1058810102u, 1059456700u, 1059456700u, 0, SINH_TOLERANCE, 0},
+{182, 1058977874u, 1059657214u, 1059657214u, 0, SINH_TOLERANCE, 0},
+{183, 1059145646u, 1059858835u, 1059858835u, 0, SINH_TOLERANCE, 0},
+{184, 1059313418u, 1060061585u, 1060061585u, 0, SINH_TOLERANCE, 0},
+{185, 1059481190u, 1060265483u, 1060265483u, 0, SINH_TOLERANCE, 0},
+{186, 1059648963u, 1060470552u, 1060470552u, 0, SINH_TOLERANCE, 0},
+{187, 1059816735u, 1060676808u, 1060676808u, 0, SINH_TOLERANCE, 0},
+{188, 1059984507u, 1060884275u, 1060884275u, 0, SINH_TOLERANCE, 0},
+{189, 1060152279u, 1061092973u, 1061092973u, 0, SINH_TOLERANCE, 0},
+{190, 1060320051u, 1061302922u, 1061302922u, 0, SINH_TOLERANCE, 0},
+{191, 1060487823u, 1061514144u, 1061514144u, 0, SINH_TOLERANCE, 0},
+{192, 1060655596u, 1061726662u, 1061726662u, 0, SINH_TOLERANCE, 0},
+{193, 1060823368u, 1061940493u, 1061940493u, 0, SINH_TOLERANCE, 0},
+{194, 1060991140u, 1062155660u, 1062155660u, 0, SINH_TOLERANCE, 0},
+{195, 1061158912u, 1062372185u, 1062372185u, 0, SINH_TOLERANCE, 0},
+{196, 1061326684u, 1062590091u, 1062590091u, 0, SINH_TOLERANCE, 0},
+{197, 1061494456u, 1062809397u, 1062809397u, 0, SINH_TOLERANCE, 0},
+{198, 1061662228u, 1063030127u, 1063030127u, 0, SINH_TOLERANCE, 0},
+{199, 1061830001u, 1063252303u, 1063252303u, 0, SINH_TOLERANCE, 0},
+{200, 1061997773u, 1063475946u, 1063475946u, 0, SINH_TOLERANCE, 0},
+{201, 1062165545u, 1063701079u, 1063701079u, 0, SINH_TOLERANCE, 0},
+{202, 1062333317u, 1063927724u, 1063927724u, 0, SINH_TOLERANCE, 0},
+{203, 1062501089u, 1064155905u, 1064155905u, 0, SINH_TOLERANCE, 0},
+{204, 1062668861u, 1064385644u, 1064385644u, 0, SINH_TOLERANCE, 0},
+{205, 1062836634u, 1064616964u, 1064616964u, 0, SINH_TOLERANCE, 0},
+{206, 1063004406u, 1064849888u, 1064849888u, 0, SINH_TOLERANCE, 0},
+{207, 1063172178u, 1065084439u, 1065084439u, 0, SINH_TOLERANCE, 0},
+{208, 1063339950u, 1065320641u, 1065320641u, 0, SINH_TOLERANCE, 0},
+{209, 1063507722u, 1065455867u, 1065455867u, 0, SINH_TOLERANCE, 0},
+{210, 1063675494u, 1065575654u, 1065575654u, 0, SINH_TOLERANCE, 0},
+{211, 1063843267u, 1065696303u, 1065696303u, 0, SINH_TOLERANCE, 0},
+{212, 1064011039u, 1065817825u, 1065817825u, 0, SINH_TOLERANCE, 0},
+{213, 1064178811u, 1065940232u, 1065940232u, 0, SINH_TOLERANCE, 0},
+{214, 1064346583u, 1066063536u, 1066063536u, 0, SINH_TOLERANCE, 0},
+{215, 1064514355u, 1066187751u, 1066187751u, 0, SINH_TOLERANCE, 0},
+{216, 1064682127u, 1066312888u, 1066312888u, 0, SINH_TOLERANCE, 0},
+{217, 1064849900u, 1066438960u, 1066438960u, 0, SINH_TOLERANCE, 0},
+{218, 1065017672u, 1066565979u, 1066565979u, 0, SINH_TOLERANCE, 0},
+{219, 1065185444u, 1066693958u, 1066693958u, 0, SINH_TOLERANCE, 0},
+{220, 1065353216u, 1066822910u, 1066822910u, 0, SINH_TOLERANCE, 0},
+{221, 1065437102u, 1066952848u, 1066952848u, 0, SINH_TOLERANCE, 0},
+{222, 1065520988u, 1067083785u, 1067083785u, 0, SINH_TOLERANCE, 0},
+{223, 1065604874u, 1067215734u, 1067215734u, 0, SINH_TOLERANCE, 0},
+{224, 1065688760u, 1067348708u, 1067348708u, 0, SINH_TOLERANCE, 0},
+{225, 1065772646u, 1067482719u, 1067482719u, 0, SINH_TOLERANCE, 0},
+{226, 1065856532u, 1067617783u, 1067617783u, 0, SINH_TOLERANCE, 0},
+{227, 1065940419u, 1067753914u, 1067753914u, 0, SINH_TOLERANCE, 0},
+{228, 1066024305u, 1067891123u, 1067891123u, 0, SINH_TOLERANCE, 0},
+{229, 1066108191u, 1068029424u, 1068029424u, 0, SINH_TOLERANCE, 0},
+{230, 1066192077u, 1068168832u, 1068168832u, 0, SINH_TOLERANCE, 0},
+{231, 1066275963u, 1068309360u, 1068309360u, 0, SINH_TOLERANCE, 0},
+{232, 1066359849u, 1068451022u, 1068451022u, 0, SINH_TOLERANCE, 0},
+{233, 1066443735u, 1068593833u, 1068593833u, 0, SINH_TOLERANCE, 0},
+{234, 1066527621u, 1068737806u, 1068737806u, 0, SINH_TOLERANCE, 0},
+{235, 1066611507u, 1068882959u, 1068882959u, 0, SINH_TOLERANCE, 0},
+{236, 1066695393u, 1069029301u, 1069029301u, 0, SINH_TOLERANCE, 0},
+{237, 1066779279u, 1069176851u, 1069176851u, 0, SINH_TOLERANCE, 0},
+{238, 1066863165u, 1069325621u, 1069325621u, 0, SINH_TOLERANCE, 0},
+{239, 1066947052u, 1069475630u, 1069475630u, 0, SINH_TOLERANCE, 0},
+{240, 3234402267u, 3280330582u, 3280330582u, 0, SINH_TOLERANCE, 0},
+{241, 3231108068u, 3260980762u, 3260980762u, 0, SINH_TOLERANCE, 0},
+{242, 3226013659u, 3241723811u, 3241723811u, 0, SINH_TOLERANCE, 0},
+{243, 3217625051u, 3222489211u, 3222489211u, 0, SINH_TOLERANCE, 0},
+{244, 0u, 0u, 0u, 0, SINH_TOLERANCE, 0},
+{245, 1070141403u, 1075005563u, 1075005563u, 0, SINH_TOLERANCE, 0},
+{246, 1078530011u, 1094240163u, 1094240163u, 0, SINH_TOLERANCE, 0},
+{247, 1083624420u, 1113497114u, 1113497114u, 0, SINH_TOLERANCE, 0},
+{248, 3253731328u, 3566961202u, 3566961202u, 0, SINH_TOLERANCE, 0},
+{249, 3252840038u, 3546498372u, 3546498372u, 0, SINH_TOLERANCE, 0},
+{250, 3251948749u, 3525710617u, 3525710617u, 0, SINH_TOLERANCE, 0},
+{251, 3251057459u, 3505567330u, 3505567330u, 0, SINH_TOLERANCE, 0},
+{252, 3250166170u, 3484507079u, 3484507079u, 0, SINH_TOLERANCE, 0},
+{253, 3249274880u, 3464600087u, 3464600087u, 0, SINH_TOLERANCE, 0},
+{254, 3248383590u, 3443353772u, 3443353772u, 0, SINH_TOLERANCE, 0},
+{255, 3247492301u, 3423234143u, 3423234143u, 0, SINH_TOLERANCE, 0},
+{256, 3246601011u, 3402254137u, 3402254137u, 0, SINH_TOLERANCE, 0},
+{257, 3245028147u, 3381907410u, 3381907410u, 0, SINH_TOLERANCE, 0},
+{258, 3243245568u, 3361211828u, 3361211828u, 0, SINH_TOLERANCE, 0},
+{259, 3241462989u, 3340622545u, 3340622545u, 0, SINH_TOLERANCE, 0},
+{260, 3239680410u, 3320230690u, 3320230690u, 0, SINH_TOLERANCE, 0},
+{261, 3237792973u, 3299382405u, 3299382405u, 0, SINH_TOLERANCE, 0},
+{262, 3234227814u, 3279314841u, 3279314841u, 0, SINH_TOLERANCE, 0},
+{263, 3230662656u, 3258188566u, 3258188566u, 0, SINH_TOLERANCE, 0},
+{264, 3224580915u, 3238203928u, 3238203928u, 0, SINH_TOLERANCE, 0},
+{265, 3213675725u, 3215652480u, 3215652480u, 0, SINH_TOLERANCE, 0},
+{266, 1058642330u, 1059257275u, 1059257275u, 0, SINH_TOLERANCE, 0},
+{267, 1075000115u, 1084095382u, 1084095382u, 0, SINH_TOLERANCE, 0},
+{268, 1082130432u, 1104826815u, 1104826815u, 0, SINH_TOLERANCE, 0},
+{269, 1085695590u, 1125478038u, 1125478038u, 0, SINH_TOLERANCE, 0},
+{270, 1089260749u, 1145864059u, 1145864059u, 0, SINH_TOLERANCE, 0},
+{271, 1091672474u, 1166798129u, 1166798129u, 0, SINH_TOLERANCE, 0},
+{272, 1093455053u, 1186954451u, 1186954451u, 0, SINH_TOLERANCE, 0},
+{273, 1095237632u, 1208157740u, 1208157740u, 0, SINH_TOLERANCE, 0},
+{274, 1097020211u, 1228099076u, 1228099076u, 0, SINH_TOLERANCE, 0},
+{275, 1098802790u, 1249206348u, 1249206348u, 0, SINH_TOLERANCE, 0},
+{276, 1099746509u, 1269294498u, 1269294498u, 0, SINH_TOLERANCE, 0},
+{277, 1100637798u, 1290126283u, 1290126283u, 0, SINH_TOLERANCE, 0},
+{278, 1101529088u, 1310537485u, 1310537485u, 0, SINH_TOLERANCE, 0},
+{279, 1102420378u, 1331111329u, 1331111329u, 0, SINH_TOLERANCE, 0},
+{280, 1103311667u, 1351825023u, 1351825023u, 0, SINH_TOLERANCE, 0},
+{281, 1104202957u, 1372157288u, 1372157288u, 0, SINH_TOLERANCE, 0},
+{282, 1105094246u, 1393154230u, 1393154230u, 0, SINH_TOLERANCE, 0},
+{283, 1105985536u, 1413260339u, 1413260339u, 0, SINH_TOLERANCE, 0}
+
+// AUTOMATICALLY GENERATED VECTORS STOP
+
+};
+
+#endif // CYGONCE_LIBM_SINHF_H multiple inclusion protection
+
+// EOF sinhf.h
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/sqrt.c b/ecos/packages/language/c/libm/current/tests/vectors/sqrt.c
new file mode 100644
index 0000000..0576177
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/sqrt.c
@@ -0,0 +1,115 @@
+//===========================================================================
+//
+// sqrt.c
+//
+// Test of sqrt() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// Declarations for test system:
+//
+// TESTCASE_TYPE=CYG_TEST_MODULE
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include <cyg/infra/testcase.h> // Test infrastructure
+#include <math.h> // Header for this package
+#include <sys/ieeefp.h> // Cyg_libm_ieee_double_shape_type
+#include "vectors/vector_support.h"// extra support for math tests
+
+#include "vectors/sqrt.h"
+
+// FUNCTIONS
+
+static void
+test( CYG_ADDRWORD data )
+{
+ cyg_ucount32 vec_size;
+ cyg_bool ret;
+
+ vec_size = sizeof(sqrt_vec) / sizeof(Cyg_libm_test_double_vec_t);
+ ret = doTestVec( (CYG_ADDRWORD) &sqrt, CYG_LIBM_TEST_VEC_DOUBLE,
+ CYG_LIBM_TEST_VEC_NONE, CYG_LIBM_TEST_VEC_DOUBLE,
+ &sqrt_vec[0], vec_size );
+
+ if (ret==true)
+ {
+ CYG_TEST_PASS("sqrt() is stable");
+ } // if
+ else
+ {
+ CYG_TEST_FAIL("sqrt() failed tests");
+ } // else
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for Math "
+ "library sqrt() function");
+} // test()
+
+
+int
+main(int argc, char *argv[])
+{
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for Math library "
+ "sqrt() function");
+
+ START_TEST( test );
+
+ CYG_TEST_PASS_FINISH("Testing is not applicable to this configuration");
+
+} // main()
+
+
+// EOF sqrt.c
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/sqrt.h b/ecos/packages/language/c/libm/current/tests/vectors/sqrt.h
new file mode 100644
index 0000000..1dd944b
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/sqrt.h
@@ -0,0 +1,1079 @@
+#ifndef CYGONCE_LIBM_SQRT_H
+#define CYGONCE_LIBM_SQRT_H
+//===========================================================================
+//
+// sqrt.h
+//
+// Test vectors for testing of sqrt() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage: #include "vectors/sqrt.h"
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include "vectors/vector_support.h"// extra support for math tests
+
+#define SQRT_TOLERANCE 1.0E-04
+
+static const Cyg_libm_test_double_vec_t sqrt_vec[] = {
+
+// AUTOMATICALLY GENERATED VECTORS START
+
+{ 1, 1077999148u, 2506787616u, 1090024059u, 3619148316u, 1075268646u, 2220766981u, 0, SQRT_TOLERANCE, 0},
+{ 2, 1070670006u, 3176730980u, 1051524793u, 2993920299u, 1071680998u, 605508644u, 0, SQRT_TOLERANCE, 0},
+{ 3, 1092176155u, 2725707538u, 3232101343u, 2346810316u, 1082400040u, 4277814180u, 0, SQRT_TOLERANCE, 0},
+{ 4, 1092554362u, 2088062470u, 3201242716u, 420891118u, 1082542742u, 3537165692u, 0, SQRT_TOLERANCE, 0},
+{ 5, 1073717029u, 2636405208u, 1100049309u, 471635570u, 1073118790u, 844009443u, 0, SQRT_TOLERANCE, 0},
+{ 6, 1089363191u, 1746012320u, 1054478713u, 3333988501u, 1081027515u, 2938668174u, 0, SQRT_TOLERANCE, 0},
+{ 7, 1047953160u, 183014794u, 3202039382u, 2016785810u, 1060305113u, 2662925048u, 0, SQRT_TOLERANCE, 0},
+{ 8, 1066002386u, 2688957927u, 1046089230u, 2709029994u, 1069337278u, 3851609627u, 0, SQRT_TOLERANCE, 0},
+{ 9, 1058795730u, 624574473u, 1045840574u, 3473266330u, 1065690306u, 730258401u, 0, SQRT_TOLERANCE, 0},
+{ 10, 1057436194u, 1605286142u, 1068931671u, 4233776869u, 1065041564u, 1578535776u, 0, SQRT_TOLERANCE, 0},
+{ 11, 1060343410u, 1857607719u, 3222889559u, 3417070006u, 1066512486u, 1761707100u, 0, SQRT_TOLERANCE, 0},
+{ 12, 1103599987u, 3981151660u, 1088899021u, 1332651746u, 1088125702u, 2101780457u, 0, SQRT_TOLERANCE, 0},
+{ 13, 1085298022u, 3824988054u, 1066856791u, 2070129652u, 1078995579u, 220377022u, 0, SQRT_TOLERANCE, 0},
+{ 14, 1060076142u, 1372884064u, 1080833116u, 3229926662u, 1066384624u, 3846619588u, 0, SQRT_TOLERANCE, 0},
+{ 15, 1093826501u, 3217805330u, 3191644264u, 2014578707u, 1083256976u, 708451256u, 0, SQRT_TOLERANCE, 0},
+{ 16, 1102287487u, 265058758u, 3239903247u, 1630600647u, 1087484475u, 593102912u, 0, SQRT_TOLERANCE, 0},
+{ 17, 1071124229u, 1946677669u, 3198462609u, 926009897u, 1071881903u, 84172120u, 0, SQRT_TOLERANCE, 0},
+{ 18, 1072130299u, 2271884183u, 3203741999u, 2118617783u, 1072389823u, 1734345339u, 0, SQRT_TOLERANCE, 0},
+{ 19, 1047365461u, 213658772u, 3249401130u, 314151656u, 1060027727u, 2224939906u, 0, SQRT_TOLERANCE, 0},
+{ 20, 1106628640u, 1564829925u, 3197817016u, 497230814u, 1089646215u, 1613419443u, 0, SQRT_TOLERANCE, 0},
+{ 21, 1068778986u, 2075329122u, 3231746400u, 169900577u, 1070727840u, 3915801428u, 0, SQRT_TOLERANCE, 0},
+{ 22, 1049848642u, 541549344u, 1096608669u, 3119070100u, 1061265525u, 677202126u, 0, SQRT_TOLERANCE, 0},
+{ 23, 1085427055u, 567496114u, 1045286891u, 1969998540u, 1079057616u, 2504053075u, 0, SQRT_TOLERANCE, 0},
+{ 24, 1060548195u, 1299369769u, 1049342524u, 4167404066u, 1066601671u, 854490045u, 0, SQRT_TOLERANCE, 0},
+{ 25, 1061381997u, 3348930841u, 1078472138u, 358457347u, 1066986270u, 3521303658u, 0, SQRT_TOLERANCE, 0},
+{ 26, 1071069297u, 2192461366u, 1099527247u, 3184735642u, 1071859305u, 4075190074u, 0, SQRT_TOLERANCE, 0},
+{ 27, 1052861772u, 331696577u, 3189610016u, 793242270u, 1062705147u, 4224071180u, 0, SQRT_TOLERANCE, 0},
+{ 28, 1105045286u, 2322696981u, 1083791358u, 3020766674u, 1088800804u, 826480684u, 0, SQRT_TOLERANCE, 0},
+{ 29, 1044902177u, 252085215u, 3214426435u, 4139068910u, 1058778595u, 2737745278u, 0, SQRT_TOLERANCE, 0},
+{ 30, 1075022077u, 105589263u, 1056316170u, 261630827u, 1073851886u, 1075861372u, 0, SQRT_TOLERANCE, 0},
+{ 31, 1107213408u, 428765703u, 3251828686u, 2009972239u, 1089875212u, 423796479u, 0, SQRT_TOLERANCE, 0},
+{ 32, 1098568019u, 3517376586u, 3240257920u, 3304487302u, 1085585117u, 2293588450u, 0, SQRT_TOLERANCE, 0},
+{ 33, 1086054264u, 237004814u, 3237899261u, 3364008659u, 1079320112u, 1789517462u, 0, SQRT_TOLERANCE, 0},
+{ 34, 1047763904u, 472004928u, 3226869477u, 1186387580u, 1060222569u, 2702852472u, 0, SQRT_TOLERANCE, 0},
+{ 35, 1054226850u, 4085763910u, 1106394906u, 2684738273u, 1063443327u, 3722225526u, 0, SQRT_TOLERANCE, 0},
+{ 36, 1057053639u, 2055490142u, 3231581370u, 3879040079u, 1064800646u, 3120181293u, 0, SQRT_TOLERANCE, 0},
+{ 37, 1041492999u, 3725731239u, 1061652681u, 591292963u, 1057086087u, 683141772u, 0, SQRT_TOLERANCE, 0},
+{ 38, 1077531333u, 1147041027u, 3215417793u, 624695933u, 1075073952u, 330937519u, 0, SQRT_TOLERANCE, 0},
+{ 39, 1058569126u, 705725219u, 3238067573u, 1116238321u, 1065601736u, 1995750373u, 0, SQRT_TOLERANCE, 0},
+{ 40, 1059883440u, 7287411u, 1045917232u, 116067742u, 1066285097u, 1285613460u, 0, SQRT_TOLERANCE, 0},
+{ 41, 1092571574u, 3604989074u, 1066381836u, 545298780u, 1082548907u, 197771367u, 0, SQRT_TOLERANCE, 0},
+{ 42, 1071597288u, 1681476121u, 1060345752u, 3553822398u, 1072062158u, 224173498u, 0, SQRT_TOLERANCE, 0},
+{ 43, 1102831658u, 3410480388u, 1052460275u, 1660607230u, 1087708788u, 540172385u, 0, SQRT_TOLERANCE, 0},
+{ 44, 1089216869u, 1494984673u, 3196647153u, 287894723u, 1080950974u, 2475641644u, 0, SQRT_TOLERANCE, 0},
+{ 45, 1054885127u, 644548665u, 1081948134u, 2442134629u, 1063702841u, 2511252856u, 0, SQRT_TOLERANCE, 0},
+{ 46, 1087554095u, 2312530895u, 3221584595u, 3379665576u, 1080120079u, 977381325u, 0, SQRT_TOLERANCE, 0},
+{ 47, 1096085375u, 3018463866u, 1086226574u, 404012923u, 1084378457u, 2884650978u, 0, SQRT_TOLERANCE, 0},
+{ 48, 1064733299u, 1710279345u, 3251401196u, 3528946000u, 1068694953u, 3041442149u, 0, SQRT_TOLERANCE, 0},
+{ 49, 1061536351u, 2164450219u, 1083520023u, 3312018966u, 1067082542u, 3541455359u, 0, SQRT_TOLERANCE, 0},
+{ 50, 1057248676u, 2648986431u, 1050330591u, 1474376550u, 1064927817u, 295874224u, 0, SQRT_TOLERANCE, 0},
+{ 51, 1046938380u, 1839068700u, 1077406406u, 3013052171u, 1059791591u, 1387152159u, 0, SQRT_TOLERANCE, 0},
+{ 52, 1046493630u, 772102380u, 3220729740u, 4219039958u, 1059506510u, 1712928068u, 0, SQRT_TOLERANCE, 0},
+{ 53, 1081988573u, 3058618779u, 1046304788u, 3338676024u, 1077270853u, 3474020327u, 0, SQRT_TOLERANCE, 0},
+{ 54, 1051172137u, 506286854u, 1094907481u, 2217000199u, 1061911855u, 221864221u, 0, SQRT_TOLERANCE, 0},
+{ 55, 1082428310u, 1147428263u, 1065432625u, 3034786717u, 1077519368u, 2537543574u, 0, SQRT_TOLERANCE, 0},
+{ 56, 1082016752u, 2844125311u, 1082985198u, 2561492677u, 1077281134u, 3176608248u, 0, SQRT_TOLERANCE, 0},
+{ 57, 1064053268u, 704542600u, 3222902057u, 2762779203u, 1068369247u, 2603835260u, 0, SQRT_TOLERANCE, 0},
+{ 58, 1052196966u, 184131949u, 3249723525u, 1667366082u, 1062422966u, 3939548873u, 0, SQRT_TOLERANCE, 0},
+{ 59, 1076125950u, 3904224140u, 1067056698u, 2942159914u, 1074366822u, 4268449844u, 0, SQRT_TOLERANCE, 0},
+{ 60, 1100636863u, 426114282u, 3209056785u, 1083606355u, 1086622716u, 623144311u, 0, SQRT_TOLERANCE, 0},
+{ 61, 1106165945u, 3774123863u, 1106787580u, 2722107965u, 1089429190u, 3430676340u, 0, SQRT_TOLERANCE, 0},
+{ 62, 1088005092u, 1377734762u, 1104232051u, 2377063483u, 1080312100u, 1890582146u, 0, SQRT_TOLERANCE, 0},
+{ 63, 1069380559u, 1029739074u, 1105467109u, 3062201018u, 1070970176u, 3192690979u, 0, SQRT_TOLERANCE, 0},
+{ 64, 1087257949u, 773857656u, 3214251949u, 335833884u, 1079974782u, 3171811944u, 0, SQRT_TOLERANCE, 0},
+{ 65, 1055740962u, 1473865960u, 1103073830u, 4000427507u, 1064215197u, 3638248407u, 0, SQRT_TOLERANCE, 0},
+{ 66, 1103185231u, 4242092620u, 1067009473u, 14539161u, 1087865409u, 1052873954u, 0, SQRT_TOLERANCE, 0},
+{ 67, 1045032426u, 1732245037u, 1101371955u, 1533536108u, 1058852385u, 2071071226u, 0, SQRT_TOLERANCE, 0},
+{ 68, 1101670347u, 1833841275u, 1099430098u, 4144145552u, 1087172149u, 3494217021u, 0, SQRT_TOLERANCE, 0},
+{ 69, 1096786815u, 935007012u, 3188865420u, 604442938u, 1084653522u, 902055671u, 0, SQRT_TOLERANCE, 0},
+{ 70, 1059419605u, 2211464602u, 1046255144u, 1635910526u, 1066022044u, 3993344749u, 0, SQRT_TOLERANCE, 0},
+{ 71, 1077871417u, 2549219008u, 3231633258u, 3733639385u, 1075201676u, 2374945252u, 0, SQRT_TOLERANCE, 0},
+{ 72, 1082095089u, 1819374372u, 3202219056u, 2617077637u, 1077309337u, 3516693447u, 0, SQRT_TOLERANCE, 0},
+{ 73, 1094345280u, 546465680u, 1048653554u, 532401530u, 1083476938u, 3036711713u, 0, SQRT_TOLERANCE, 0},
+{ 74, 1044571091u, 2759019783u, 3221570188u, 3554409630u, 1058575885u, 1512763431u, 0, SQRT_TOLERANCE, 0},
+{ 75, 1065447634u, 2527221960u, 1099107978u, 2696971136u, 1068998603u, 2457660231u, 0, SQRT_TOLERANCE, 0},
+{ 76, 1097158000u, 173134582u, 1087299442u, 2877794600u, 1084890087u, 884126678u, 0, SQRT_TOLERANCE, 0},
+{ 77, 1086400474u, 547642046u, 3197285510u, 3521286127u, 1079471659u, 3033645540u, 0, SQRT_TOLERANCE, 0},
+{ 78, 1074860702u, 1231582831u, 1090971734u, 1653446832u, 1073776404u, 3961408917u, 0, SQRT_TOLERANCE, 0},
+{ 79, 1061342535u, 3762182190u, 3252967851u, 2615360375u, 1066960732u, 3665707139u, 0, SQRT_TOLERANCE, 0},
+{ 80, 1053350775u, 2588067350u, 3206610957u, 3551059728u, 1063007251u, 3925789760u, 0, SQRT_TOLERANCE, 0},
+{ 81, 1059495208u, 845263327u, 1073415902u, 1749010288u, 1066067600u, 2493200909u, 0, SQRT_TOLERANCE, 0},
+{ 82, 1058092722u, 3092685191u, 3190678390u, 2872219490u, 1065392258u, 2185338120u, 0, SQRT_TOLERANCE, 0},
+{ 83, 1070831407u, 4107255722u, 3205337291u, 3069068345u, 1071756377u, 3884334901u, 0, SQRT_TOLERANCE, 0},
+{ 84, 1096507209u, 2294867524u, 3216653996u, 2860384670u, 1084550505u, 509668549u, 0, SQRT_TOLERANCE, 0},
+{ 85, 1045842702u, 2265437201u, 3240198679u, 1234948614u, 1059250914u, 1435972158u, 0, SQRT_TOLERANCE, 0},
+{ 86, 1068876281u, 1186945904u, 3251167793u, 1896750851u, 1070770294u, 3836667746u, 0, SQRT_TOLERANCE, 0},
+{ 87, 1081575478u, 3686084548u, 1079286273u, 3309277689u, 1077110633u, 1999998138u, 0, SQRT_TOLERANCE, 0},
+{ 88, 1075992592u, 3006860614u, 3231412671u, 2504194724u, 1074281070u, 2869529129u, 0, SQRT_TOLERANCE, 0},
+{ 89, 1088665612u, 1948717780u, 1048317852u, 3791803982u, 1080630957u, 2010332103u, 0, SQRT_TOLERANCE, 0},
+{ 90, 1064345015u, 4272034420u, 3192982124u, 1526175922u, 1068518941u, 1347333963u, 0, SQRT_TOLERANCE, 0},
+{ 91, 1098334178u, 4108948538u, 1104691287u, 640541190u, 1085491584u, 2344550893u, 0, SQRT_TOLERANCE, 0},
+{ 92, 1059773769u, 3259274853u, 1082507103u, 3677038020u, 1066226153u, 4175570532u, 0, SQRT_TOLERANCE, 0},
+{ 93, 1083132498u, 3781708548u, 1096584871u, 1207386447u, 1077912743u, 256642125u, 0, SQRT_TOLERANCE, 0},
+{ 94, 1041211624u, 3011191657u, 1103798670u, 1096124830u, 1056952400u, 3532873116u, 0, SQRT_TOLERANCE, 0},
+{ 95, 1063235023u, 2540404725u, 3240157452u, 4122845725u, 1067877244u, 3178535586u, 0, SQRT_TOLERANCE, 0},
+{ 96, 1083643710u, 311336721u, 3214382367u, 4212533768u, 1078147229u, 1574899206u, 0, SQRT_TOLERANCE, 0},
+{ 97, 1051139427u, 1769686293u, 3240200923u, 3538602249u, 1061892714u, 2811585508u, 0, SQRT_TOLERANCE, 0},
+{ 98, 1078227549u, 508056696u, 1103793878u, 776520138u, 1075418182u, 1911895511u, 0, SQRT_TOLERANCE, 0},
+{ 99, 1102910577u, 4064962760u, 1077424413u, 819766631u, 1087738367u, 625596649u, 0, SQRT_TOLERANCE, 0},
+{ 100, 1074178362u, 2112385259u, 3227593179u, 1187058516u, 1073409469u, 2890683226u, 0, SQRT_TOLERANCE, 0},
+{ 101, 1082295059u, 2514398118u, 1076579751u, 870169764u, 1077434053u, 2274822844u, 0, SQRT_TOLERANCE, 0},
+{ 102, 1099367744u, 1190259653u, 1069112254u, 3417249840u, 1086006323u, 3203231065u, 0, SQRT_TOLERANCE, 0},
+{ 103, 1046179435u, 3467757357u, 3215075200u, 2168175352u, 1059386161u, 1523058021u, 0, SQRT_TOLERANCE, 0},
+{ 104, 1092159487u, 1508888184u, 1060430241u, 3524949092u, 1082393394u, 2941399898u, 0, SQRT_TOLERANCE, 0},
+{ 105, 1049929235u, 166402802u, 3237198975u, 3572369260u, 1061301541u, 778731146u, 0, SQRT_TOLERANCE, 0},
+{ 106, 1081866822u, 2441536203u, 3202753937u, 3658194573u, 1077225557u, 2884892065u, 0, SQRT_TOLERANCE, 0},
+{ 107, 1062392908u, 2479742828u, 1062342831u, 4214154303u, 1067539306u, 2067044587u, 0, SQRT_TOLERANCE, 0},
+{ 108, 1082396794u, 426896765u, 1066474375u, 2201754442u, 1077499585u, 3639218844u, 0, SQRT_TOLERANCE, 0},
+{ 109, 1048145373u, 2055773734u, 3239267288u, 291396537u, 1060383682u, 1374687961u, 0, SQRT_TOLERANCE, 0},
+{ 110, 1089484385u, 874125203u, 3210508124u, 4091098764u, 1081088793u, 2796500043u, 0, SQRT_TOLERANCE, 0},
+{ 111, 1065716026u, 120488169u, 3241241441u, 1985269424u, 1069170801u, 1652665630u, 0, SQRT_TOLERANCE, 0},
+{ 112, 1059055762u, 2243036871u, 3243941101u, 740033495u, 1065785428u, 1948204916u, 0, SQRT_TOLERANCE, 0},
+{ 113, 1061941258u, 1176656356u, 1074261978u, 3588756231u, 1067312736u, 4031115381u, 0, SQRT_TOLERANCE, 0},
+{ 114, 1105333143u, 3037249392u, 1061635587u, 1173102190u, 1088948153u, 982120755u, 0, SQRT_TOLERANCE, 0},
+{ 115, 1089725933u, 2882725208u, 1071440059u, 69225090u, 1081202634u, 4070340257u, 0, SQRT_TOLERANCE, 0},
+{ 116, 1065179826u, 272319256u, 1072073912u, 2493997123u, 1068870653u, 1887245738u, 0, SQRT_TOLERANCE, 0},
+{ 117, 1057720186u, 188610379u, 3232757923u, 2209647371u, 1065201208u, 89168525u, 0, SQRT_TOLERANCE, 0},
+{ 118, 1089274869u, 1990439193u, 1078073146u, 622849962u, 1080981665u, 1937867013u, 0, SQRT_TOLERANCE, 0},
+{ 119, 1057135741u, 756052458u, 1081649113u, 2247475162u, 1064855412u, 2031313836u, 0, SQRT_TOLERANCE, 0},
+{ 120, 1061623064u, 3878055211u, 3222407050u, 2979438623u, 1067134345u, 2326488769u, 0, SQRT_TOLERANCE, 0},
+{ 121, 1047807349u, 2676398686u, 1105124431u, 3631096636u, 1060242029u, 10248528u, 0, SQRT_TOLERANCE, 0},
+{ 122, 1065079390u, 1697791764u, 3198136112u, 2299842819u, 1068833081u, 1643028991u, 0, SQRT_TOLERANCE, 0},
+{ 123, 1078084768u, 1931502677u, 3215264397u, 3016456382u, 1075326357u, 59441897u, 0, SQRT_TOLERANCE, 0},
+{ 124, 1072253426u, 343404215u, 1061072607u, 4266232536u, 1072460411u, 3078552319u, 0, SQRT_TOLERANCE, 0},
+{ 125, 1093747188u, 4140316002u, 1082896196u, 868256971u, 1083219439u, 52190688u, 0, SQRT_TOLERANCE, 0},
+{ 126, 1075422810u, 1864139509u, 3187675097u, 3084482407u, 1074020893u, 1269785421u, 0, SQRT_TOLERANCE, 0},
+{ 127, 1072707675u, 2427162817u, 3234748208u, 2715105792u, 1072700437u, 592056396u, 0, SQRT_TOLERANCE, 0},
+{ 128, 1064600512u, 3943389284u, 1046724025u, 3626825684u, 1068637699u, 3554438189u, 0, SQRT_TOLERANCE, 0},
+{ 129, 1045423002u, 967350972u, 1093012318u, 448002663u, 1059058121u, 4110539679u, 0, SQRT_TOLERANCE, 0},
+{ 130, 1104362211u, 105058217u, 1069733884u, 171786224u, 1088522867u, 1249399999u, 0, SQRT_TOLERANCE, 0},
+{ 131, 1042130860u, 2863482262u, 3204997271u, 877784425u, 1057343573u, 1946563393u, 0, SQRT_TOLERANCE, 0},
+{ 132, 1055145665u, 2801782962u, 3213604117u, 762347195u, 1063875562u, 405405913u, 0, SQRT_TOLERANCE, 0},
+{ 133, 1086003079u, 2317950339u, 3246333414u, 2135700283u, 1079300584u, 2888201937u, 0, SQRT_TOLERANCE, 0},
+{ 134, 1056516397u, 4171919805u, 1082858682u, 2180920863u, 1064570994u, 117017318u, 0, SQRT_TOLERANCE, 0},
+{ 135, 1072665436u, 1918836931u, 1083603224u, 3137821660u, 1072679295u, 3487405472u, 0, SQRT_TOLERANCE, 0},
+{ 136, 1103902874u, 3456203663u, 3235600523u, 2335688936u, 1088294172u, 2136321383u, 0, SQRT_TOLERANCE, 0},
+{ 137, 1042279322u, 4170235262u, 1051824459u, 521583737u, 1057397095u, 1449721404u, 0, SQRT_TOLERANCE, 0},
+{ 138, 1081348303u, 1296623194u, 3250673860u, 2442872540u, 1077013242u, 2258644922u, 0, SQRT_TOLERANCE, 0},
+{ 139, 1061684277u, 289979405u, 1049514449u, 3865737145u, 1067170024u, 2776254693u, 0, SQRT_TOLERANCE, 0},
+{ 140, 1075298944u, 3699090239u, 1054539840u, 3259249360u, 1073971042u, 3458344803u, 0, SQRT_TOLERANCE, 0},
+{ 141, 1096418100u, 1619819023u, 1045993352u, 1022642459u, 1084516007u, 476909761u, 0, SQRT_TOLERANCE, 0},
+{ 142, 1081433004u, 19455098u, 3229182089u, 2096003654u, 1077050469u, 3028872190u, 0, SQRT_TOLERANCE, 0},
+{ 143, 1076297936u, 3803689997u, 1071630912u, 2263729518u, 1074471318u, 1292113974u, 0, SQRT_TOLERANCE, 0},
+{ 144, 1101357261u, 2816837387u, 1063422305u, 2597606398u, 1086990274u, 2652274740u, 0, SQRT_TOLERANCE, 0},
+{ 145, 1069100169u, 3680967506u, 1040201163u, 179224723u, 1070862792u, 3588846007u, 0, SQRT_TOLERANCE, 0},
+{ 146, 1041146119u, 978126928u, 1101553990u, 4047893399u, 1056919191u, 3630293168u, 0, SQRT_TOLERANCE, 0},
+{ 147, 1074838397u, 4059818629u, 1042678728u, 3640293589u, 1073765554u, 1929737386u, 0, SQRT_TOLERANCE, 0},
+{ 148, 1100980392u, 3383497159u, 1070002807u, 1527313008u, 1086750415u, 3836203873u, 0, SQRT_TOLERANCE, 0},
+{ 149, 1055224031u, 2599946514u, 1104170406u, 2738675352u, 1063924117u, 1721130370u, 0, SQRT_TOLERANCE, 0},
+{ 150, 1105232623u, 3616571377u, 1060859316u, 1130603218u, 1088879738u, 236452899u, 0, SQRT_TOLERANCE, 0},
+{ 151, 1076028796u, 3859211180u, 1067940450u, 1744531824u, 1074304802u, 316690193u, 0, SQRT_TOLERANCE, 0},
+{ 152, 1042831340u, 1958025850u, 3236511256u, 2472176453u, 1057745168u, 35356657u, 0, SQRT_TOLERANCE, 0},
+{ 153, 1085623441u, 182132862u, 3250520938u, 3924356991u, 1079145947u, 321881452u, 0, SQRT_TOLERANCE, 0},
+{ 154, 1083018236u, 35632886u, 3209806504u, 1453402523u, 1077854139u, 1375333123u, 0, SQRT_TOLERANCE, 0},
+{ 155, 1083522102u, 743225214u, 3202890678u, 142917400u, 1078095555u, 1236155334u, 0, SQRT_TOLERANCE, 0},
+{ 156, 1080684976u, 1472665012u, 3203138231u, 256588219u, 1076678713u, 4046845340u, 0, SQRT_TOLERANCE, 0},
+{ 157, 1094982162u, 1062927000u, 1061134072u, 931677439u, 1083792592u, 148959679u, 0, SQRT_TOLERANCE, 0},
+{ 158, 1058377732u, 2320910576u, 1055663370u, 288059864u, 1065521919u, 554321687u, 0, SQRT_TOLERANCE, 0},
+{ 159, 1078958093u, 1448349062u, 3199478070u, 3454027134u, 1075825628u, 820343418u, 0, SQRT_TOLERANCE, 0},
+{ 160, 1089975150u, 4215445172u, 3196654963u, 2231888973u, 1081309490u, 3903827118u, 0, SQRT_TOLERANCE, 0},
+{ 161, 1099148583u, 40413554u, 3232578253u, 983832844u, 1085872059u, 3351900855u, 0, SQRT_TOLERANCE, 0},
+{ 162, 1076237886u, 3995725873u, 1050082319u, 777231627u, 1074435545u, 1571143908u, 0, SQRT_TOLERANCE, 0},
+{ 163, 1040986626u, 672789828u, 3253385962u, 2982787335u, 1056835993u, 922098741u, 0, SQRT_TOLERANCE, 0},
+{ 164, 1068390875u, 2075971825u, 1070166500u, 4034633931u, 1070541347u, 410974930u, 0, SQRT_TOLERANCE, 0},
+{ 165, 1062562529u, 1018222907u, 3244621407u, 3090050495u, 1067614969u, 1619055709u, 0, SQRT_TOLERANCE, 0},
+{ 166, 1067680885u, 937732557u, 3200798890u, 2557898276u, 1070136763u, 2391931683u, 0, SQRT_TOLERANCE, 0},
+{ 167, 1078342316u, 130346162u, 3223590310u, 275568693u, 1075488495u, 2106740591u, 0, SQRT_TOLERANCE, 0},
+{ 168, 1042898869u, 3807416441u, 1075961161u, 3706820266u, 1057783478u, 3972097396u, 0, SQRT_TOLERANCE, 0},
+{ 169, 1068615357u, 1710131411u, 1078123323u, 1900790503u, 1070652771u, 291788500u, 0, SQRT_TOLERANCE, 0},
+{ 170, 1091335713u, 3420420033u, 3210844787u, 588423066u, 1082011084u, 3994148752u, 0, SQRT_TOLERANCE, 0},
+{ 171, 1049684114u, 1160162008u, 3246307879u, 4265764460u, 1061188270u, 638608014u, 0, SQRT_TOLERANCE, 0},
+{ 172, 1102543434u, 366653268u, 3188814424u, 466059202u, 1087594922u, 3888746790u, 0, SQRT_TOLERANCE, 0},
+{ 173, 1079144091u, 1325936170u, 3221436876u, 680097612u, 1075915851u, 2635101980u, 0, SQRT_TOLERANCE, 0},
+{ 174, 1092907468u, 1827735934u, 3200554324u, 2875599271u, 1082758123u, 4020975259u, 0, SQRT_TOLERANCE, 0},
+{ 175, 1043546754u, 3117037091u, 3239246636u, 15838845u, 1058115053u, 328401279u, 0, SQRT_TOLERANCE, 0},
+{ 176, 1051974004u, 749718883u, 3223587064u, 1523766569u, 1062326834u, 1051206039u, 0, SQRT_TOLERANCE, 0},
+{ 177, 1044833651u, 1966536294u, 3250158026u, 699164258u, 1058738542u, 861420859u, 0, SQRT_TOLERANCE, 0},
+{ 178, 1098048435u, 3759049394u, 1106085272u, 1183789499u, 1085366914u, 2249964520u, 0, SQRT_TOLERANCE, 0},
+{ 179, 1081201623u, 1970107747u, 1095245453u, 2308233883u, 1076945816u, 4122814742u, 0, SQRT_TOLERANCE, 0},
+{ 180, 1084756444u, 1491017852u, 1041444355u, 1723375725u, 1078706376u, 3597981038u, 0, SQRT_TOLERANCE, 0},
+{ 181, 1069146422u, 1141349287u, 1097465301u, 3403438584u, 1070881102u, 1363982323u, 0, SQRT_TOLERANCE, 0},
+{ 182, 1083088260u, 1711085243u, 3250239076u, 1377484108u, 1077890252u, 1851678165u, 0, SQRT_TOLERANCE, 0},
+{ 183, 1098385019u, 2880275004u, 1084039594u, 1611394950u, 1085512499u, 1964141477u, 0, SQRT_TOLERANCE, 0},
+{ 184, 1086737787u, 2626629370u, 1063771493u, 1499080813u, 1079686915u, 183335811u, 0, SQRT_TOLERANCE, 0},
+{ 185, 1055231263u, 3936262414u, 1103919063u, 3175668759u, 1063928529u, 2035803317u, 0, SQRT_TOLERANCE, 0},
+{ 186, 1060498071u, 1270950554u, 3194616071u, 3680565379u, 1066580441u, 617356847u, 0, SQRT_TOLERANCE, 0},
+{ 187, 1060664575u, 1066985223u, 3221613219u, 4089383168u, 1066649623u, 4128441333u, 0, SQRT_TOLERANCE, 0},
+{ 188, 1069575191u, 4017329311u, 3208334452u, 1667591498u, 1071049869u, 4277286241u, 0, SQRT_TOLERANCE, 0},
+{ 189, 1088164157u, 3154656624u, 1061894279u, 3886344038u, 1080373506u, 3849431628u, 0, SQRT_TOLERANCE, 0},
+{ 190, 1050652945u, 977586119u, 3209762784u, 953839852u, 1061586084u, 4015554101u, 0, SQRT_TOLERANCE, 0},
+{ 191, 1104965247u, 143071571u, 3206165386u, 913097445u, 1088771098u, 1153878443u, 0, SQRT_TOLERANCE, 0},
+{ 192, 1043081808u, 1371169579u, 1057079837u, 2594818628u, 1057883519u, 2861904553u, 0, SQRT_TOLERANCE, 0},
+{ 193, 1104309688u, 2259342224u, 3217432469u, 1824221478u, 1088498657u, 4134322356u, 0, SQRT_TOLERANCE, 0},
+{ 194, 1099351127u, 1576604497u, 1079368611u, 185078728u, 1085996500u, 3741739594u, 0, SQRT_TOLERANCE, 0},
+{ 195, 1074195779u, 444800035u, 3243343143u, 1734989302u, 1073419787u, 3442615331u, 0, SQRT_TOLERANCE, 0},
+{ 196, 1072748883u, 130452005u, 1041548088u, 2158433515u, 1072720706u, 32388127u, 0, SQRT_TOLERANCE, 0},
+{ 197, 1087212320u, 1941318385u, 1045807374u, 792193370u, 1079951177u, 311008137u, 0, SQRT_TOLERANCE, 0},
+{ 198, 1090816018u, 1299392207u, 3212131720u, 3205732280u, 1081713110u, 3921824728u, 0, SQRT_TOLERANCE, 0},
+{ 199, 1098698804u, 3035093505u, 1052187689u, 3287702190u, 1085634721u, 997526658u, 0, SQRT_TOLERANCE, 0},
+{ 200, 1099192612u, 2160225215u, 1102624859u, 836655570u, 1085899898u, 3875891937u, 0, SQRT_TOLERANCE, 0},
+{ 201, 1096723626u, 3360816360u, 3246176356u, 172860634u, 1084630880u, 2920597617u, 0, SQRT_TOLERANCE, 0},
+{ 202, 1070995788u, 146831910u, 1051558014u, 2340722078u, 1071828418u, 2771710464u, 0, SQRT_TOLERANCE, 0},
+{ 203, 1082932703u, 1603798153u, 3207725532u, 1099413093u, 1077809130u, 1620986260u, 0, SQRT_TOLERANCE, 0},
+{ 204, 1099194730u, 2429340443u, 3190303581u, 3223770005u, 1085901226u, 1909350921u, 0, SQRT_TOLERANCE, 0},
+{ 205, 1075882959u, 955542166u, 3230415151u, 275583938u, 1074206939u, 3284390891u, 0, SQRT_TOLERANCE, 0},
+{ 206, 1092971882u, 513397822u, 1090646554u, 2089321329u, 1082797944u, 1848756391u, 0, SQRT_TOLERANCE, 0},
+{ 207, 1045686228u, 2782073372u, 1046063872u, 4023829068u, 1059182757u, 1144494305u, 0, SQRT_TOLERANCE, 0},
+{ 208, 1098564822u, 3242223094u, 3194111199u, 4264674108u, 1085583882u, 1055345467u, 0, SQRT_TOLERANCE, 0},
+{ 209, 1091027173u, 3506346169u, 1047020885u, 1742757458u, 1081840116u, 919870869u, 0, SQRT_TOLERANCE, 0},
+{ 210, 1045180829u, 1265459564u, 3193450280u, 3650514880u, 1058933091u, 2096096260u, 0, SQRT_TOLERANCE, 0},
+{ 211, 1081755890u, 1525260440u, 3235452527u, 2612331392u, 1077182958u, 414505092u, 0, SQRT_TOLERANCE, 0},
+{ 212, 1101185272u, 1263613754u, 3219096387u, 635677201u, 1086881619u, 3327465162u, 0, SQRT_TOLERANCE, 0},
+{ 213, 1058788439u, 4140947288u, 3200792376u, 2013265346u, 1065687545u, 289774073u, 0, SQRT_TOLERANCE, 0},
+{ 214, 1102490744u, 1912759945u, 3237045253u, 1351396825u, 1087572985u, 200814021u, 0, SQRT_TOLERANCE, 0},
+{ 215, 1100721514u, 1001433078u, 3206926643u, 2741676659u, 1086655281u, 2906657682u, 0, SQRT_TOLERANCE, 0},
+{ 216, 1080923606u, 1088945233u, 1085095743u, 3986114865u, 1076806875u, 1398507288u, 0, SQRT_TOLERANCE, 0},
+{ 217, 1068250409u, 831239754u, 1099828675u, 3071308141u, 1070467911u, 215486836u, 0, SQRT_TOLERANCE, 0},
+{ 218, 1078350849u, 3473592372u, 1102759382u, 1309576357u, 1075493611u, 285464971u, 0, SQRT_TOLERANCE, 0},
+{ 219, 1103703058u, 2042340367u, 1091945628u, 2062772374u, 1088184745u, 1642723939u, 0, SQRT_TOLERANCE, 0},
+{ 220, 1047282039u, 1840632537u, 1096533424u, 807510337u, 1059983827u, 4285807355u, 0, SQRT_TOLERANCE, 0},
+{ 221, 1083968074u, 144814872u, 3212698915u, 2282965697u, 1078275682u, 3768954894u, 0, SQRT_TOLERANCE, 0},
+{ 222, 1071236430u, 2552499583u, 3229111426u, 1470130815u, 1071926866u, 3747737272u, 0, SQRT_TOLERANCE, 0},
+{ 223, 1095609417u, 2858583811u, 1089760910u, 6360994u, 1084149893u, 3408093385u, 0, SQRT_TOLERANCE, 0},
+{ 224, 1050781281u, 1614537194u, 1075198900u, 4088705365u, 1061667829u, 3512455994u, 0, SQRT_TOLERANCE, 0},
+{ 225, 1103455422u, 3545570051u, 1065221325u, 1629217700u, 1088039467u, 3634219627u, 0, SQRT_TOLERANCE, 0},
+{ 226, 1072744324u, 1813392963u, 3235313361u, 3772501596u, 1072718482u, 2444193944u, 0, SQRT_TOLERANCE, 0},
+{ 227, 1049319038u, 2406734491u, 1042055360u, 89226663u, 1061000132u, 2269056916u, 0, SQRT_TOLERANCE, 0},
+{ 228, 1048267433u, 1618759139u, 3194723421u, 3888234802u, 1060431237u, 700371869u, 0, SQRT_TOLERANCE, 0},
+{ 229, 1055357248u, 3590035633u, 3212424262u, 2892456615u, 1064003648u, 3031176455u, 0, SQRT_TOLERANCE, 0},
+{ 230, 1042459412u, 2431246964u, 3241512456u, 183850734u, 1057517827u, 2676781323u, 0, SQRT_TOLERANCE, 0},
+{ 231, 1089501101u, 3088319870u, 3211544311u, 862225364u, 1081097064u, 2434610491u, 0, SQRT_TOLERANCE, 0},
+{ 232, 1087811016u, 3495352775u, 1058576726u, 596957268u, 1080233094u, 1373646250u, 0, SQRT_TOLERANCE, 0},
+{ 233, 1046553348u, 1839214511u, 3205004060u, 1923240983u, 1059547870u, 1202011145u, 0, SQRT_TOLERANCE, 0},
+{ 234, 1058073864u, 739619702u, 3223356436u, 2689885273u, 1065383129u, 1746092362u, 0, SQRT_TOLERANCE, 0},
+{ 235, 1052841323u, 2143376228u, 1098306332u, 3760236188u, 1062691218u, 367710346u, 0, SQRT_TOLERANCE, 0},
+{ 236, 1074621795u, 671680995u, 1091262633u, 2315535361u, 1073655755u, 1808066091u, 0, SQRT_TOLERANCE, 0},
+{ 237, 1066682341u, 2493598049u, 3194927008u, 1689107592u, 1069679490u, 594236901u, 0, SQRT_TOLERANCE, 0},
+{ 238, 1042506311u, 1578976988u, 1066368383u, 2117279163u, 1057548240u, 235320603u, 0, SQRT_TOLERANCE, 0},
+{ 239, 1075504463u, 3425290087u, 1098487295u, 1263412017u, 1074052755u, 3957330920u, 0, SQRT_TOLERANCE, 0},
+{ 240, 1060949116u, 3635396812u, 1070999426u, 3965655689u, 1066759998u, 2285325174u, 0, SQRT_TOLERANCE, 0},
+{ 241, 1060196346u, 2183973116u, 1101098363u, 1118613350u, 1066443949u, 3357751942u, 0, SQRT_TOLERANCE, 0},
+{ 242, 1074462441u, 199516350u, 1078368488u, 164621458u, 1073570877u, 1152484011u, 0, SQRT_TOLERANCE, 0},
+{ 243, 1040222370u, 3570940805u, 3230316437u, 3596080877u, 1056374897u, 1158689868u, 0, SQRT_TOLERANCE, 0},
+{ 244, 1060725917u, 980880313u, 1079833442u, 884465057u, 1066674198u, 3065335256u, 0, SQRT_TOLERANCE, 0},
+{ 245, 1099977124u, 2558179220u, 1052873711u, 1233598120u, 1086335134u, 3159565287u, 0, SQRT_TOLERANCE, 0},
+{ 246, 1047115221u, 1909994277u, 1085015978u, 2991527452u, 1059892969u, 3943181295u, 0, SQRT_TOLERANCE, 0},
+{ 247, 1060855260u, 1680290941u, 1074309900u, 2943870846u, 1066724573u, 2262457651u, 0, SQRT_TOLERANCE, 0},
+{ 248, 1059496132u, 1451927357u, 3228615456u, 1502585517u, 1066068150u, 673339016u, 0, SQRT_TOLERANCE, 0},
+{ 249, 1088728303u, 751136990u, 3230392165u, 3493275472u, 1080670415u, 1117083003u, 0, SQRT_TOLERANCE, 0},
+{ 250, 1098365967u, 1209623292u, 3238056647u, 979495322u, 1085504701u, 3401565724u, 0, SQRT_TOLERANCE, 0},
+{ 251, 1102940648u, 1717672108u, 1048120593u, 531240316u, 1087749476u, 157061011u, 0, SQRT_TOLERANCE, 0},
+{ 252, 1054174923u, 3548721654u, 1086112947u, 3391817224u, 1063421098u, 2489387950u, 0, SQRT_TOLERANCE, 0},
+{ 253, 1077836851u, 2758195125u, 1100880260u, 2028440924u, 1075189209u, 1648630422u, 0, SQRT_TOLERANCE, 0},
+{ 254, 1084223893u, 2750123373u, 3232200256u, 1086294931u, 1078369157u, 372399065u, 0, SQRT_TOLERANCE, 0},
+{ 255, 1043958672u, 2986160931u, 1076097908u, 2540046258u, 1058289542u, 1728470133u, 0, SQRT_TOLERANCE, 0},
+{ 256, 1087992954u, 451471221u, 1064816262u, 4187644495u, 1080307297u, 1987628334u, 0, SQRT_TOLERANCE, 0},
+{ 257, 1099460228u, 2439500162u, 1065280276u, 1979490284u, 1086060032u, 3546430530u, 0, SQRT_TOLERANCE, 0},
+{ 258, 1040415832u, 2283342035u, 1078398157u, 1345997553u, 1056503945u, 2002788187u, 0, SQRT_TOLERANCE, 0},
+{ 259, 1065765700u, 179066662u, 1103272172u, 1217337578u, 1069200815u, 354239272u, 0, SQRT_TOLERANCE, 0},
+{ 260, 1064078729u, 3779303391u, 3210023352u, 3115946280u, 1068382771u, 924212543u, 0, SQRT_TOLERANCE, 0},
+{ 261, 1045506226u, 286247089u, 1085153597u, 713645369u, 1059099073u, 630553628u, 0, SQRT_TOLERANCE, 0},
+{ 262, 1093670500u, 1468283899u, 1042831668u, 2022736418u, 1083181870u, 1135653208u, 0, SQRT_TOLERANCE, 0},
+{ 263, 1083139105u, 3305564080u, 1065483445u, 482392433u, 1077916081u, 297621800u, 0, SQRT_TOLERANCE, 0},
+{ 264, 1054212159u, 2256346551u, 3222430705u, 2071674991u, 1063437079u, 1872363528u, 0, SQRT_TOLERANCE, 0},
+{ 265, 1056541047u, 2295269094u, 1084451053u, 2773103941u, 1064580785u, 3548459456u, 0, SQRT_TOLERANCE, 0},
+{ 266, 1078173946u, 1482721827u, 1092243422u, 3125409590u, 1075384311u, 1214242217u, 0, SQRT_TOLERANCE, 0},
+{ 267, 1073582325u, 1381740563u, 1071545057u, 2918235653u, 1073070076u, 310733412u, 0, SQRT_TOLERANCE, 0},
+{ 268, 1091232324u, 1105857967u, 3241990046u, 2703723225u, 1081955489u, 1478059523u, 0, SQRT_TOLERANCE, 0},
+{ 269, 1043015571u, 174689677u, 1079333374u, 3947057014u, 1057847895u, 3807478291u, 0, SQRT_TOLERANCE, 0},
+{ 270, 1090461859u, 2023082423u, 3242081486u, 1169047927u, 1081495834u, 1354217806u, 0, SQRT_TOLERANCE, 0},
+{ 271, 1064525899u, 3742487766u, 1043425732u, 194972788u, 1068604282u, 3534598372u, 0, SQRT_TOLERANCE, 0},
+{ 272, 1066308179u, 2136071361u, 3211529757u, 993675115u, 1069500179u, 1810558929u, 0, SQRT_TOLERANCE, 0},
+{ 273, 1066179733u, 210772141u, 3241441539u, 580731413u, 1069433384u, 2904218754u, 0, SQRT_TOLERANCE, 0},
+{ 274, 1093840413u, 1751560711u, 1074522705u, 180987057u, 1083263432u, 354293330u, 0, SQRT_TOLERANCE, 0},
+{ 275, 1066754591u, 2552236599u, 1088658621u, 2112468655u, 1069711152u, 1027214939u, 0, SQRT_TOLERANCE, 0},
+{ 276, 1041806969u, 1578223762u, 3224596567u, 2456166162u, 1057219201u, 848829082u, 0, SQRT_TOLERANCE, 0},
+{ 277, 1058506965u, 2110924310u, 1086207177u, 3161208323u, 1065576362u, 3721277445u, 0, SQRT_TOLERANCE, 0},
+{ 278, 1084379746u, 2352173188u, 1079361728u, 4070222179u, 1078474414u, 324321316u, 0, SQRT_TOLERANCE, 0},
+{ 279, 1101012904u, 2481562701u, 1090937016u, 3809489716u, 1086764790u, 735952755u, 0, SQRT_TOLERANCE, 0},
+{ 280, 1049519003u, 330905705u, 1086260896u, 90264431u, 1061105443u, 4035135237u, 0, SQRT_TOLERANCE, 0},
+{ 281, 1040729961u, 4162008079u, 3194387916u, 759522153u, 1056694167u, 2202781865u, 0, SQRT_TOLERANCE, 0},
+{ 282, 1081015037u, 1839697482u, 3216442625u, 2211508949u, 1076853872u, 1160522481u, 0, SQRT_TOLERANCE, 0},
+{ 283, 1102323563u, 3736863454u, 1063475914u, 3150741666u, 1087500671u, 1861954786u, 0, SQRT_TOLERANCE, 0},
+{ 284, 1060785883u, 4200269406u, 3236646101u, 1061812176u, 1066697788u, 1854483559u, 0, SQRT_TOLERANCE, 0},
+{ 285, 1080217979u, 106027290u, 3234978297u, 2245237549u, 1076398618u, 65493562u, 0, SQRT_TOLERANCE, 0},
+{ 286, 1099500686u, 2132131375u, 3250483427u, 3449276437u, 1086083039u, 2161288431u, 0, SQRT_TOLERANCE, 0},
+{ 287, 1089388778u, 2334440944u, 1105423490u, 4004336184u, 1081040607u, 2660755785u, 0, SQRT_TOLERANCE, 0},
+{ 288, 1071289056u, 4090088208u, 1042030013u, 3898658299u, 1071947441u, 861742126u, 0, SQRT_TOLERANCE, 0},
+{ 289, 1060424416u, 2272831437u, 3253082595u, 2639188641u, 1066548560u, 2972214225u, 0, SQRT_TOLERANCE, 0},
+{ 290, 1054766684u, 1856594168u, 3189515294u, 4101853676u, 1063654331u, 2881681574u, 0, SQRT_TOLERANCE, 0},
+{ 291, 1076012412u, 2211699255u, 3195060344u, 3865018604u, 1074294105u, 3830274554u, 0, SQRT_TOLERANCE, 0},
+{ 292, 1095283362u, 996259334u, 3241496889u, 3782673116u, 1083972832u, 432134161u, 0, SQRT_TOLERANCE, 0},
+{ 293, 1099130747u, 3840380763u, 1048674041u, 550040067u, 1085860647u, 3790913469u, 0, SQRT_TOLERANCE, 0},
+{ 294, 1103935945u, 95874100u, 3237232828u, 2645647822u, 1088311701u, 3760135837u, 0, SQRT_TOLERANCE, 0},
+{ 295, 1043665640u, 3441419500u, 3252367038u, 876710419u, 1058168013u, 2436673555u, 0, SQRT_TOLERANCE, 0},
+{ 296, 1091109904u, 2560836004u, 3199616543u, 1180840586u, 1081887506u, 2392996462u, 0, SQRT_TOLERANCE, 0},
+{ 297, 1074119318u, 2218230392u, 3227485787u, 3947214579u, 1073374032u, 777552941u, 0, SQRT_TOLERANCE, 0},
+{ 298, 1079539654u, 1447312532u, 1081476588u, 780366847u, 1076087095u, 2168356619u, 0, SQRT_TOLERANCE, 0},
+{ 299, 1072569643u, 2842113832u, 3216156731u, 225159029u, 1072630507u, 1381726609u, 0, SQRT_TOLERANCE, 0},
+{ 300, 1098117193u, 1601981129u, 3234628869u, 2236538344u, 1085398127u, 1081924364u, 0, SQRT_TOLERANCE, 0},
+{ 301, 1085173524u, 2194185737u, 3242362684u, 87913366u, 1078932742u, 2261433011u, 0, SQRT_TOLERANCE, 0},
+{ 302, 1051600232u, 1346862963u, 1077836259u, 3604666660u, 1062145833u, 3747789312u, 0, SQRT_TOLERANCE, 0},
+{ 303, 1064772331u, 3115209742u, 1099332326u, 1325101950u, 1068711289u, 303323817u, 0, SQRT_TOLERANCE, 0},
+{ 304, 1077062394u, 3889223100u, 1053247613u, 3371396923u, 1074874452u, 2874176179u, 0, SQRT_TOLERANCE, 0},
+{ 305, 1072994220u, 4163120793u, 1075022670u, 1387631215u, 1072834253u, 3076989926u, 0, SQRT_TOLERANCE, 0},
+{ 306, 1057998131u, 1532426189u, 1063168268u, 3397022615u, 1065345676u, 534153645u, 0, SQRT_TOLERANCE, 0},
+{ 307, 1053549673u, 89324166u, 1079206060u, 3429424710u, 1063116839u, 459484642u, 0, SQRT_TOLERANCE, 0},
+{ 308, 1044841454u, 747591401u, 1072238381u, 2803213904u, 1058743148u, 1808992640u, 0, SQRT_TOLERANCE, 0},
+{ 309, 1091113780u, 271904221u, 1044258318u, 1858545114u, 1081889696u, 3706055854u, 0, SQRT_TOLERANCE, 0},
+{ 310, 1080585266u, 314958082u, 3249912496u, 2966213175u, 1076622508u, 2613337941u, 0, SQRT_TOLERANCE, 0},
+{ 311, 1049695766u, 3119528953u, 3217179014u, 2908718240u, 1061193922u, 3756406841u, 0, SQRT_TOLERANCE, 0},
+{ 312, 1094983928u, 2018361566u, 1100926600u, 3985805054u, 1083793705u, 3802756938u, 0, SQRT_TOLERANCE, 0},
+{ 313, 1070132580u, 409584884u, 3239758947u, 755795129u, 1071398461u, 718384128u, 0, SQRT_TOLERANCE, 0},
+{ 314, 1075772446u, 1819156379u, 3251342302u, 2982669005u, 1074152447u, 319063087u, 0, SQRT_TOLERANCE, 0},
+{ 315, 1101563433u, 2080534280u, 3188254060u, 449171797u, 1087112069u, 851985999u, 0, SQRT_TOLERANCE, 0},
+{ 316, 1095956900u, 168744837u, 3214950009u, 1322217822u, 1084320920u, 3214835u, 0, SQRT_TOLERANCE, 0},
+{ 317, 1106743252u, 3250487255u, 1062120700u, 1876195180u, 1089694349u, 557439665u, 0, SQRT_TOLERANCE, 0},
+{ 318, 1078859832u, 1336400247u, 1098057903u, 3314079581u, 1075775581u, 4291308730u, 0, SQRT_TOLERANCE, 0},
+{ 319, 1056195172u, 265025555u, 1063854282u, 3779482256u, 1064435983u, 4278076564u, 0, SQRT_TOLERANCE, 0},
+{ 320, 1067300501u, 887044257u, 1054789618u, 2732056261u, 1069927886u, 1943723413u, 0, SQRT_TOLERANCE, 0},
+{ 321, 1050106742u, 4027115185u, 3191764868u, 2940199511u, 1061377261u, 2289907591u, 0, SQRT_TOLERANCE, 0},
+{ 322, 1055016507u, 2875684421u, 3227459837u, 2251967570u, 1063792293u, 507358715u, 0, SQRT_TOLERANCE, 0},
+{ 323, 1063244412u, 284173546u, 3238823679u, 3557800647u, 1067880577u, 350201530u, 0, SQRT_TOLERANCE, 0},
+{ 324, 1101458560u, 3147771266u, 3220110464u, 2933364246u, 1087051160u, 4215200347u, 0, SQRT_TOLERANCE, 0},
+{ 325, 1064853160u, 3366183281u, 3234870843u, 537442654u, 1068744461u, 1102653645u, 0, SQRT_TOLERANCE, 0},
+{ 326, 1096635140u, 2529029548u, 3249882819u, 3781513577u, 1084598567u, 3064069855u, 0, SQRT_TOLERANCE, 0},
+{ 327, 1065952706u, 1080845539u, 3206760016u, 911778687u, 1069309466u, 71830766u, 0, SQRT_TOLERANCE, 0},
+{ 328, 1044467388u, 469586759u, 1091830022u, 3080528840u, 1058506922u, 221987346u, 0, SQRT_TOLERANCE, 0},
+{ 329, 1080249104u, 2863108169u, 3225605506u, 2508274250u, 1076418785u, 3532456349u, 0, SQRT_TOLERANCE, 0},
+{ 330, 1063343336u, 4080017377u, 3206492941u, 1470284690u, 1067945180u, 1918123523u, 0, SQRT_TOLERANCE, 0},
+{ 331, 1059636742u, 3867917386u, 1102054928u, 3504746045u, 1066149863u, 2182974269u, 0, SQRT_TOLERANCE, 0},
+{ 332, 1064522279u, 2962134101u, 3244741577u, 3390537350u, 1068602636u, 3427706147u, 0, SQRT_TOLERANCE, 0},
+{ 333, 1088201813u, 1702237980u, 1071598971u, 1102587474u, 1080387650u, 1268979567u, 0, SQRT_TOLERANCE, 0},
+{ 334, 1055486470u, 2180218657u, 3211592260u, 1206527853u, 1064077565u, 3195037399u, 0, SQRT_TOLERANCE, 0},
+{ 335, 1049601096u, 394130786u, 3242511482u, 2437699868u, 1061147139u, 977955u, 0, SQRT_TOLERANCE, 0},
+{ 336, 1044237059u, 849581558u, 3252006507u, 2008614943u, 1058395468u, 354883305u, 0, SQRT_TOLERANCE, 0},
+{ 337, 1062656366u, 3128971673u, 3249137531u, 2773583059u, 1067654866u, 1096706434u, 0, SQRT_TOLERANCE, 0},
+{ 338, 1085029866u, 590727700u, 3248651761u, 2183878539u, 1078857712u, 456992369u, 0, SQRT_TOLERANCE, 0},
+{ 339, 1101098629u, 820687580u, 3208143496u, 1402434664u, 1086823996u, 1454547448u, 0, SQRT_TOLERANCE, 0},
+{ 340, 1104807187u, 1873709254u, 3245167989u, 44275991u, 1088710498u, 4101993083u, 0, SQRT_TOLERANCE, 0},
+{ 341, 1042185105u, 1174874204u, 3208263730u, 2360372288u, 1057363358u, 2438182099u, 0, SQRT_TOLERANCE, 0},
+{ 342, 1103854676u, 937573440u, 3208953761u, 211240241u, 1088268340u, 4250080331u, 0, SQRT_TOLERANCE, 0},
+{ 343, 1096065286u, 2469774991u, 1043117070u, 3380071805u, 1084369644u, 817174119u, 0, SQRT_TOLERANCE, 0},
+{ 344, 1058121042u, 442507560u, 3254252803u, 3257889649u, 1065405825u, 1251597094u, 0, SQRT_TOLERANCE, 0},
+{ 345, 1068850520u, 1854921625u, 1049810168u, 2729627545u, 1070759199u, 420700552u, 0, SQRT_TOLERANCE, 0},
+{ 346, 1107228981u, 4001809575u, 3240128649u, 278261523u, 1089880819u, 2383679725u, 0, SQRT_TOLERANCE, 0},
+{ 347, 1087224694u, 1793907966u, 3238955714u, 398859249u, 1079957605u, 3813321906u, 0, SQRT_TOLERANCE, 0},
+{ 348, 1053468899u, 2511916952u, 3219195283u, 1697158299u, 1063073091u, 3522118557u, 0, SQRT_TOLERANCE, 0},
+{ 349, 1069985548u, 3230931724u, 3243897690u, 3508781585u, 1071313202u, 3897164374u, 0, SQRT_TOLERANCE, 0},
+{ 350, 1103847606u, 1674254897u, 1046547577u, 217148561u, 1088264523u, 271341403u, 0, SQRT_TOLERANCE, 0},
+{ 351, 1063780306u, 3275604304u, 3194840159u, 2991205850u, 1068217952u, 3391390920u, 0, SQRT_TOLERANCE, 0},
+{ 352, 1047765727u, 3509997278u, 3248888030u, 3897986511u, 1060223393u, 119328239u, 0, SQRT_TOLERANCE, 0},
+{ 353, 1047182435u, 2156824613u, 1042295665u, 1239257646u, 1059930096u, 1766875221u, 0, SQRT_TOLERANCE, 0},
+{ 354, 1065780437u, 1073153314u, 3250031627u, 2567234990u, 1069209621u, 44110028u, 0, SQRT_TOLERANCE, 0},
+{ 355, 1043109764u, 4261696995u, 3197784432u, 323702024u, 1057898363u, 992679925u, 0, SQRT_TOLERANCE, 0},
+{ 356, 1096207349u, 4075177615u, 3202791065u, 1919006082u, 1084430638u, 1930040197u, 0, SQRT_TOLERANCE, 0},
+{ 357, 1091786365u, 386429966u, 1086504491u, 3698826164u, 1082234629u, 2019393592u, 0, SQRT_TOLERANCE, 0},
+{ 358, 1078327190u, 1681986446u, 3194985869u, 3072950140u, 1075479391u, 1795498102u, 0, SQRT_TOLERANCE, 0},
+{ 359, 1069828285u, 3719038997u, 1055433962u, 3331415058u, 1071217200u, 836481681u, 0, SQRT_TOLERANCE, 0},
+{ 360, 1060749713u, 2420250111u, 3238002206u, 1928661079u, 1066683609u, 3327390033u, 0, SQRT_TOLERANCE, 0},
+{ 361, 1081914210u, 3679866727u, 3227386672u, 1273835792u, 1077243361u, 2639059259u, 0, SQRT_TOLERANCE, 0},
+{ 362, 1041622738u, 2682092368u, 3234222284u, 1325425811u, 1057142844u, 4093900513u, 0, SQRT_TOLERANCE, 0},
+{ 363, 1056312613u, 4175172697u, 3208346191u, 2130706153u, 1064487062u, 3296692257u, 0, SQRT_TOLERANCE, 0},
+{ 364, 1092089624u, 1200784450u, 1083605096u, 1248595607u, 1082365163u, 209668871u, 0, SQRT_TOLERANCE, 0},
+{ 365, 1066407215u, 1897285171u, 3251296075u, 944966123u, 1069550228u, 960024037u, 0, SQRT_TOLERANCE, 0},
+{ 366, 1093887602u, 2270747330u, 3230692631u, 422503284u, 1083285062u, 241119116u, 0, SQRT_TOLERANCE, 0},
+{ 367, 1084120037u, 2857564741u, 1075647403u, 3308906709u, 1078331938u, 2725462142u, 0, SQRT_TOLERANCE, 0},
+{ 368, 1055991450u, 1380066948u, 3232612906u, 2613634294u, 1064341694u, 1923848093u, 0, SQRT_TOLERANCE, 0},
+{ 369, 1063890856u, 4022784584u, 1060483857u, 3264056381u, 1068280696u, 332562982u, 0, SQRT_TOLERANCE, 0},
+{ 370, 1044637404u, 1778509100u, 3213146285u, 2665833973u, 1058618476u, 4292915269u, 0, SQRT_TOLERANCE, 0},
+{ 371, 1069243652u, 1859175955u, 1079949560u, 4258450607u, 1070918794u, 4125613799u, 0, SQRT_TOLERANCE, 0},
+{ 372, 1048277388u, 4128020197u, 1076266146u, 4122840980u, 1060435043u, 1077067733u, 0, SQRT_TOLERANCE, 0},
+{ 373, 1045699515u, 2454653987u, 3229487005u, 2977478685u, 1059188698u, 1481259470u, 0, SQRT_TOLERANCE, 0},
+{ 374, 1106072835u, 1355181872u, 1095308770u, 436846481u, 1089381139u, 1464698042u, 0, SQRT_TOLERANCE, 0},
+{ 375, 1099121654u, 2592856453u, 3247825559u, 3195234082u, 1085854798u, 2943936566u, 0, SQRT_TOLERANCE, 0},
+{ 376, 1074634375u, 3554670043u, 1091621009u, 3321236467u, 1073662304u, 1296983174u, 0, SQRT_TOLERANCE, 0},
+{ 377, 1069012833u, 1936670355u, 1095715713u, 2958468553u, 1070827505u, 3644782479u, 0, SQRT_TOLERANCE, 0},
+{ 378, 1044807461u, 2960339502u, 1098808013u, 1044068983u, 1058722993u, 994227485u, 0, SQRT_TOLERANCE, 0},
+{ 379, 1049207537u, 4093388677u, 1095478112u, 1735930261u, 1060938846u, 2843545940u, 0, SQRT_TOLERANCE, 0},
+{ 380, 1091040302u, 1807398746u, 3195743135u, 4261616162u, 1081847719u, 1064219385u, 0, SQRT_TOLERANCE, 0},
+{ 381, 1061810546u, 3250576797u, 1059002384u, 3043079652u, 1067241495u, 3192629548u, 0, SQRT_TOLERANCE, 0},
+{ 382, 1069207109u, 666051428u, 3208765404u, 1912684117u, 1070904751u, 990593857u, 0, SQRT_TOLERANCE, 0},
+{ 383, 1103487420u, 1949030179u, 1096388934u, 896459246u, 1088058924u, 1455051938u, 0, SQRT_TOLERANCE, 0},
+{ 384, 1054300653u, 622499767u, 1066707637u, 1490260486u, 1063474250u, 2407866507u, 0, SQRT_TOLERANCE, 0},
+{ 385, 1106688493u, 1490616165u, 3251242436u, 795675736u, 1089671583u, 568721906u, 0, SQRT_TOLERANCE, 0},
+{ 386, 1080943896u, 3662877092u, 3234317146u, 3200513112u, 1076817399u, 279371340u, 0, SQRT_TOLERANCE, 0},
+{ 387, 1084088786u, 1356101968u, 3236536816u, 3062844611u, 1078320550u, 100375266u, 0, SQRT_TOLERANCE, 0},
+{ 388, 1072438992u, 2284484846u, 3219498359u, 3240896015u, 1072562014u, 617114991u, 0, SQRT_TOLERANCE, 0},
+{ 389, 1088276041u, 494503287u, 1092811254u, 142673998u, 1080415120u, 2671341223u, 0, SQRT_TOLERANCE, 0},
+{ 390, 1104642268u, 3394882641u, 3225306538u, 364852125u, 1088644193u, 1187366670u, 0, SQRT_TOLERANCE, 0},
+{ 391, 1077778115u, 193885269u, 1088149839u, 1359805831u, 1075167774u, 1898916614u, 0, SQRT_TOLERANCE, 0},
+{ 392, 1053001134u, 592580907u, 3199560872u, 3086438952u, 1062796931u, 3797640977u, 0, SQRT_TOLERANCE, 0},
+{ 393, 1059518664u, 1778008540u, 1049064687u, 73581647u, 1066081497u, 559187402u, 0, SQRT_TOLERANCE, 0},
+{ 394, 1099249950u, 233240285u, 1081923320u, 2710903921u, 1085935472u, 1600406137u, 0, SQRT_TOLERANCE, 0},
+{ 395, 1069513767u, 3719878805u, 1079866720u, 3615458228u, 1071018448u, 3499230725u, 0, SQRT_TOLERANCE, 0},
+{ 396, 1073711076u, 3647632375u, 3247225271u, 3839959621u, 1073116671u, 2152208986u, 0, SQRT_TOLERANCE, 0},
+{ 397, 1103401096u, 2232210456u, 3235434773u, 224271737u, 1088005918u, 2383898689u, 0, SQRT_TOLERANCE, 0},
+{ 398, 1045520036u, 2134662911u, 3190390590u, 4239009051u, 1059105720u, 3171883903u, 0, SQRT_TOLERANCE, 0},
+{ 399, 1080526145u, 2305279897u, 1077668039u, 1854523320u, 1076588353u, 2641363539u, 0, SQRT_TOLERANCE, 0},
+{ 400, 1072380611u, 538224650u, 3206153057u, 1379649610u, 1072530624u, 978315840u, 0, SQRT_TOLERANCE, 0},
+{ 401, 1048926859u, 3683897920u, 3244167599u, 3647579469u, 1060774894u, 2013114162u, 0, SQRT_TOLERANCE, 0},
+{ 402, 1090280933u, 2694093608u, 1042775347u, 598406111u, 1081429471u, 2029027480u, 0, SQRT_TOLERANCE, 0},
+{ 403, 1064151744u, 872706833u, 1084802480u, 2200602798u, 1068421049u, 2077007663u, 0, SQRT_TOLERANCE, 0},
+{ 404, 1042339597u, 904146293u, 1060867322u, 1729685598u, 1057437372u, 3967206682u, 0, SQRT_TOLERANCE, 0},
+{ 405, 1048211322u, 1894173462u, 3232800651u, 191960416u, 1060409584u, 2524566565u, 0, SQRT_TOLERANCE, 0},
+{ 406, 1091225343u, 3521028551u, 1054522089u, 3287274359u, 1081951677u, 2993598159u, 0, SQRT_TOLERANCE, 0},
+{ 407, 1095386964u, 959640601u, 3201578263u, 4136915018u, 1084030881u, 963614327u, 0, SQRT_TOLERANCE, 0},
+{ 408, 1064005451u, 1553716379u, 1106027987u, 984725765u, 1068343595u, 3947277126u, 0, SQRT_TOLERANCE, 0},
+{ 409, 1091348993u, 2287646644u, 3240329321u, 2276183378u, 1082018112u, 4217644848u, 0, SQRT_TOLERANCE, 0},
+{ 410, 1068209174u, 3940225170u, 3199544434u, 997572161u, 1070445827u, 3622717486u, 0, SQRT_TOLERANCE, 0},
+{ 411, 1065284713u, 36116288u, 3206886566u, 4196602670u, 1068908857u, 3680300451u, 0, SQRT_TOLERANCE, 0},
+{ 412, 1094212205u, 3550227562u, 3207257983u, 2747744117u, 1083424086u, 1863409761u, 0, SQRT_TOLERANCE, 0},
+{ 413, 1104236126u, 507130047u, 1048359321u, 3229888373u, 1088463847u, 2311468462u, 0, SQRT_TOLERANCE, 0},
+{ 414, 1075513130u, 2210969014u, 1081031001u, 1946786091u, 1074056094u, 441721510u, 0, SQRT_TOLERANCE, 0},
+{ 415, 1088823342u, 4059150589u, 3189759234u, 1177045799u, 1080728531u, 3313459474u, 0, SQRT_TOLERANCE, 0},
+{ 416, 1093103612u, 2664812822u, 1050343198u, 2034180320u, 1082876631u, 1296961602u, 0, SQRT_TOLERANCE, 0},
+{ 417, 1066295469u, 1175750283u, 3235559706u, 1424491340u, 1069493667u, 829969552u, 0, SQRT_TOLERANCE, 0},
+{ 418, 1066420545u, 1630036121u, 3231972785u, 3195479448u, 1069556855u, 583687698u, 0, SQRT_TOLERANCE, 0},
+{ 419, 1090429875u, 2527029044u, 1046927050u, 4000723255u, 1081484323u, 2672232682u, 0, SQRT_TOLERANCE, 0},
+{ 420, 1085208677u, 3335703647u, 3237349676u, 3869440059u, 1078950687u, 3356378u, 0, SQRT_TOLERANCE, 0},
+{ 421, 1091433848u, 3888398377u, 3196041693u, 1290567220u, 1082062446u, 2037713556u, 0, SQRT_TOLERANCE, 0},
+{ 422, 1066679070u, 3242451480u, 3248384948u, 707431021u, 1069678036u, 2788512521u, 0, SQRT_TOLERANCE, 0},
+{ 423, 1083230509u, 2739665123u, 1060777905u, 1733073225u, 1077961570u, 689605687u, 0, SQRT_TOLERANCE, 0},
+{ 424, 1078517061u, 1297274853u, 3208848704u, 3341639139u, 1075590425u, 3525237030u, 0, SQRT_TOLERANCE, 0},
+{ 425, 1046570941u, 2228057309u, 1084318902u, 1317851136u, 1059559844u, 287421473u, 0, SQRT_TOLERANCE, 0},
+{ 426, 1088255327u, 270039934u, 3241414679u, 3063626339u, 1080407508u, 350055924u, 0, SQRT_TOLERANCE, 0},
+{ 427, 1071694702u, 83062251u, 3211262173u, 2659016437u, 1072113970u, 3297599259u, 0, SQRT_TOLERANCE, 0},
+{ 428, 1095743886u, 3833539373u, 3206667189u, 1567476111u, 1084218547u, 4206856861u, 0, SQRT_TOLERANCE, 0},
+{ 429, 1057711424u, 2382776852u, 3249232579u, 1546622468u, 1065196479u, 791105684u, 0, SQRT_TOLERANCE, 0},
+{ 430, 1085536439u, 1714300821u, 1104130938u, 4167591598u, 1079107637u, 1873290283u, 0, SQRT_TOLERANCE, 0},
+{ 431, 1051092760u, 2798720100u, 1086978789u, 449990704u, 1061865045u, 3309079407u, 0, SQRT_TOLERANCE, 0},
+{ 432, 1083714767u, 4039516226u, 3244344107u, 4272932619u, 1078176464u, 4164345184u, 0, SQRT_TOLERANCE, 0},
+{ 433, 1075224793u, 1683007544u, 1091105663u, 3805494321u, 1073940246u, 3618231263u, 0, SQRT_TOLERANCE, 0},
+{ 434, 1073369300u, 2072627412u, 1094383324u, 3394151662u, 1072989441u, 594658976u, 0, SQRT_TOLERANCE, 0},
+{ 435, 1073086376u, 1120106427u, 3223631624u, 3404608264u, 1072874198u, 4021168670u, 0, SQRT_TOLERANCE, 0},
+{ 436, 1097859997u, 559918757u, 3205077053u, 908100198u, 1085276622u, 1989432736u, 0, SQRT_TOLERANCE, 0},
+{ 437, 1042677918u, 2026673913u, 3244833635u, 2844573214u, 1057654994u, 590963432u, 0, SQRT_TOLERANCE, 0},
+{ 438, 1107083611u, 3946837259u, 3234993796u, 3850406820u, 1089827608u, 1615081452u, 0, SQRT_TOLERANCE, 0},
+{ 439, 1057479809u, 3139330994u, 1046133568u, 1539650690u, 1065066997u, 1500675044u, 0, SQRT_TOLERANCE, 0},
+{ 440, 1089221852u, 1554593884u, 3228899878u, 2813752562u, 1080953630u, 571174710u, 0, SQRT_TOLERANCE, 0},
+{ 441, 1056505004u, 3804703138u, 1072931071u, 2053677923u, 1064566443u, 2190929495u, 0, SQRT_TOLERANCE, 0},
+{ 442, 1097380651u, 289355864u, 1078453818u, 2143066338u, 1085021485u, 4195797290u, 0, SQRT_TOLERANCE, 0},
+{ 443, 1056456232u, 2157691971u, 1106629150u, 110806409u, 1064546781u, 4218819400u, 0, SQRT_TOLERANCE, 0},
+{ 444, 1082157019u, 3570399481u, 1085637605u, 180265334u, 1077340569u, 631385589u, 0, SQRT_TOLERANCE, 0},
+{ 445, 1053496534u, 558779875u, 3202046748u, 2338464653u, 1063088170u, 1997804931u, 0, SQRT_TOLERANCE, 0},
+{ 446, 1045705464u, 1703969219u, 3229797258u, 1417521063u, 1059191348u, 2477974706u, 0, SQRT_TOLERANCE, 0},
+{ 447, 1090298613u, 3917440951u, 1051668894u, 3736066983u, 1081436094u, 4028266821u, 0, SQRT_TOLERANCE, 0},
+{ 448, 1064752080u, 3106613409u, 1066627453u, 2735392257u, 1068702840u, 1921860524u, 0, SQRT_TOLERANCE, 0},
+{ 449, 1065665372u, 2229777605u, 1065061963u, 2405869925u, 1069139646u, 3512112585u, 0, SQRT_TOLERANCE, 0},
+{ 450, 1091979581u, 3967957902u, 1057416138u, 3459188071u, 1082319389u, 2225109344u, 0, SQRT_TOLERANCE, 0},
+{ 451, 1068639210u, 3699016825u, 3249713090u, 796144848u, 1070664028u, 3804485728u, 0, SQRT_TOLERANCE, 0},
+{ 452, 1081332748u, 3285165564u, 3211948811u, 401510871u, 1077006277u, 248376739u, 0, SQRT_TOLERANCE, 0},
+{ 453, 1094257658u, 634857910u, 3199607513u, 914218057u, 1083442377u, 3804716202u, 0, SQRT_TOLERANCE, 0},
+{ 454, 1083743336u, 2030735578u, 3233855943u, 965677531u, 1078188033u, 3449775081u, 0, SQRT_TOLERANCE, 0},
+{ 455, 1079556815u, 3957229084u, 1051050470u, 3123776651u, 1076094015u, 3936469720u, 0, SQRT_TOLERANCE, 0},
+{ 456, 1074379685u, 162122081u, 3239376395u, 108064594u, 1073525287u, 2316194265u, 0, SQRT_TOLERANCE, 0},
+{ 457, 1089788138u, 869031839u, 3225020876u, 1344301606u, 1081230199u, 3731176513u, 0, SQRT_TOLERANCE, 0},
+{ 458, 1066949826u, 946696117u, 3231825228u, 1700703647u, 1069792840u, 497364938u, 0, SQRT_TOLERANCE, 0},
+{ 459, 1075492875u, 3394168074u, 1076939786u, 1666995668u, 1074048279u, 2965312037u, 0, SQRT_TOLERANCE, 0},
+{ 460, 1061291147u, 2488789804u, 3238508333u, 1506943664u, 1066926855u, 2269676912u, 0, SQRT_TOLERANCE, 0},
+{ 461, 1072788663u, 3844072288u, 3202592279u, 2630019853u, 1072739917u, 1637771475u, 0, SQRT_TOLERANCE, 0},
+{ 462, 1072450894u, 1244307192u, 3191297711u, 2540916692u, 1072568352u, 232285615u, 0, SQRT_TOLERANCE, 0},
+{ 463, 1052579044u, 2871645739u, 3239081581u, 1440249115u, 1062572585u, 2977319420u, 0, SQRT_TOLERANCE, 0},
+{ 464, 1068350633u, 1231934926u, 3236746788u, 603977748u, 1070520581u, 257695151u, 0, SQRT_TOLERANCE, 0},
+{ 465, 1047966041u, 2386312545u, 1063169277u, 2715234268u, 1060310533u, 2518007380u, 0, SQRT_TOLERANCE, 0},
+{ 466, 1087803418u, 915867083u, 1046790892u, 3347417612u, 1080229899u, 159367245u, 0, SQRT_TOLERANCE, 0},
+{ 467, 1105984188u, 3553288373u, 1065698616u, 2906680663u, 1089334297u, 3615047943u, 0, SQRT_TOLERANCE, 0},
+{ 468, 1045506226u, 2342364630u, 1051356723u, 4019093203u, 1059099073u, 1623286304u, 0, SQRT_TOLERANCE, 0},
+{ 469, 1053685514u, 2911548084u, 1105282515u, 2476735795u, 1063188286u, 346296314u, 0, SQRT_TOLERANCE, 0},
+{ 470, 1050472772u, 1836216409u, 1101062307u, 2519592554u, 1061520623u, 948047430u, 0, SQRT_TOLERANCE, 0},
+{ 471, 1070178161u, 1235369496u, 3222946447u, 668087854u, 1071424105u, 3010765323u, 0, SQRT_TOLERANCE, 0},
+{ 472, 1061070948u, 2981820811u, 1059838516u, 2845580478u, 1066804693u, 2312102465u, 0, SQRT_TOLERANCE, 0},
+{ 473, 1046447766u, 1565550570u, 3217165795u, 4162017137u, 1059485064u, 1552579793u, 0, SQRT_TOLERANCE, 0},
+{ 474, 1089767730u, 2808968027u, 1055630096u, 1782326814u, 1081221227u, 419331521u, 0, SQRT_TOLERANCE, 0},
+{ 475, 1053576974u, 1492622658u, 3216653077u, 3972512122u, 1063131406u, 1097615809u, 0, SQRT_TOLERANCE, 0},
+{ 476, 1074688031u, 2722693603u, 3227814791u, 3169731970u, 1073689999u, 2047948742u, 0, SQRT_TOLERANCE, 0},
+{ 477, 1070422983u, 899763203u, 3207606001u, 2804747833u, 1071556251u, 2614854416u, 0, SQRT_TOLERANCE, 0},
+{ 478, 1083186677u, 3789058912u, 3228095081u, 4135937628u, 1077939955u, 4096966973u, 0, SQRT_TOLERANCE, 0},
+{ 479, 1060199382u, 1682808307u, 3206960335u, 232877759u, 1066445408u, 338680168u, 0, SQRT_TOLERANCE, 0},
+{ 480, 1094607838u, 2851963139u, 3246852961u, 2590862592u, 1083575559u, 1257537605u, 0, SQRT_TOLERANCE, 0},
+{ 481, 1081200406u, 2422232642u, 3234779662u, 290458310u, 1076945240u, 1681558365u, 0, SQRT_TOLERANCE, 0},
+{ 482, 1063187430u, 1082582386u, 1075605675u, 2602133689u, 1067860234u, 3662434387u, 0, SQRT_TOLERANCE, 0},
+{ 483, 1092334963u, 1789635787u, 1059414278u, 1048286093u, 1082461759u, 2214805042u, 0, SQRT_TOLERANCE, 0},
+{ 484, 1098330542u, 231339448u, 1055573265u, 504907415u, 1085490075u, 486303213u, 0, SQRT_TOLERANCE, 0},
+{ 485, 1063211461u, 1153251200u, 3204617090u, 1772013857u, 1067868848u, 870441917u, 0, SQRT_TOLERANCE, 0},
+{ 486, 1099551055u, 1082898276u, 3212089272u, 1449080862u, 1086111289u, 1748979548u, 0, SQRT_TOLERANCE, 0},
+{ 487, 1086008285u, 3177299045u, 1058862813u, 809400815u, 1079302583u, 2892414422u, 0, SQRT_TOLERANCE, 0},
+{ 488, 1083370902u, 1924429710u, 1056464743u, 3349283177u, 1078028046u, 1838721304u, 0, SQRT_TOLERANCE, 0},
+{ 489, 1097989743u, 42238036u, 1042379500u, 2113559863u, 1085339577u, 3245452310u, 0, SQRT_TOLERANCE, 0},
+{ 490, 1064761243u, 3304403230u, 3217556703u, 58952646u, 1068706670u, 1139532016u, 0, SQRT_TOLERANCE, 0},
+{ 491, 1065185882u, 1645486982u, 3224301095u, 3636267471u, 1068872887u, 1412319027u, 0, SQRT_TOLERANCE, 0},
+{ 492, 1062762009u, 619402181u, 3235208235u, 557360557u, 1067698313u, 4120404160u, 0, SQRT_TOLERANCE, 0},
+{ 493, 1090754746u, 110029735u, 1046937383u, 984375729u, 1081674418u, 894441904u, 0, SQRT_TOLERANCE, 0},
+{ 494, 1042013090u, 4063688092u, 3203235744u, 1049950343u, 1057299644u, 2998030758u, 0, SQRT_TOLERANCE, 0},
+{ 495, 1062350619u, 650996069u, 1054971928u, 3953359826u, 1067519645u, 362233961u, 0, SQRT_TOLERANCE, 0},
+{ 496, 1079572157u, 66926332u, 1090561839u, 1379780888u, 1076100171u, 1129023565u, 0, SQRT_TOLERANCE, 0},
+{ 497, 1085969659u, 2803378256u, 1086057989u, 498534626u, 1079287682u, 801921590u, 0, SQRT_TOLERANCE, 0},
+{ 498, 1082618553u, 2846400785u, 1047142525u, 1375153550u, 1077634160u, 3568323078u, 0, SQRT_TOLERANCE, 0},
+{ 499, 1044581201u, 2869128958u, 1070972315u, 4246440273u, 1058582451u, 1318885712u, 0, SQRT_TOLERANCE, 0},
+{ 500, 1051832506u, 3112381207u, 1044430965u, 3981604561u, 1062261486u, 4117994916u, 0, SQRT_TOLERANCE, 0},
+{ 501, 1083771349u, 243303420u, 1093735824u, 1575581926u, 1078199278u, 1873736985u, 0, SQRT_TOLERANCE, 0},
+{ 502, 1091654349u, 3218865041u, 3204803496u, 3840388050u, 1082172937u, 1588899049u, 0, SQRT_TOLERANCE, 0},
+{ 503, 1048415431u, 336846959u, 1052664471u, 3798336786u, 1060486770u, 1564179785u, 0, SQRT_TOLERANCE, 0},
+{ 504, 1055954236u, 3639240976u, 1081202165u, 1844741676u, 1064323571u, 2250502424u, 0, SQRT_TOLERANCE, 0},
+{ 505, 1064421145u, 717293069u, 3211534283u, 582401011u, 1068555662u, 2571126825u, 0, SQRT_TOLERANCE, 0},
+{ 506, 1104478864u, 3766248610u, 3196520332u, 1174437546u, 1088574893u, 1603570037u, 0, SQRT_TOLERANCE, 0},
+{ 507, 1083431226u, 756959182u, 3204099341u, 1581804034u, 1078055448u, 896088740u, 0, SQRT_TOLERANCE, 0},
+{ 508, 1058322796u, 3560686300u, 3220980617u, 4277975772u, 1065498023u, 2204210694u, 0, SQRT_TOLERANCE, 0},
+{ 509, 1062422428u, 2598148853u, 3217622194u, 3460421008u, 1067552832u, 197631934u, 0, SQRT_TOLERANCE, 0},
+{ 510, 1066720824u, 136600515u, 3209934920u, 3340653128u, 1069696458u, 2114931033u, 0, SQRT_TOLERANCE, 0},
+{ 511, 1096820310u, 1045480938u, 3251354609u, 4133432965u, 1084668841u, 4105005870u, 0, SQRT_TOLERANCE, 0},
+{ 512, 1091599431u, 1630207738u, 3239996829u, 2393354808u, 1082146220u, 3524218270u, 0, SQRT_TOLERANCE, 0},
+{ 513, 1043142370u, 3739770117u, 1059520750u, 3959551225u, 1057915536u, 372839383u, 0, SQRT_TOLERANCE, 0},
+{ 514, 1083246857u, 1498861716u, 1091297147u, 847410798u, 1077969520u, 4115883532u, 0, SQRT_TOLERANCE, 0},
+{ 515, 1073516688u, 983275314u, 3232538664u, 2244973629u, 1073045725u, 2729031253u, 0, SQRT_TOLERANCE, 0},
+{ 516, 1054849265u, 2353103845u, 3235718771u, 2978889966u, 1063683953u, 418597223u, 0, SQRT_TOLERANCE, 0},
+{ 517, 1103874344u, 1546972125u, 3249076079u, 1987349196u, 1088278923u, 667617194u, 0, SQRT_TOLERANCE, 0},
+{ 518, 1090735865u, 2769161072u, 1075207126u, 292616282u, 1081662310u, 1119441071u, 0, SQRT_TOLERANCE, 0},
+{ 519, 1052228650u, 36855311u, 1052128202u, 1479039342u, 1062436040u, 3281371343u, 0, SQRT_TOLERANCE, 0},
+{ 520, 1083757053u, 2027463605u, 1066023013u, 3369686340u, 1078193552u, 389181627u, 0, SQRT_TOLERANCE, 0},
+{ 521, 1050369101u, 3808681655u, 1054161346u, 1821773119u, 1061481541u, 707897882u, 0, SQRT_TOLERANCE, 0},
+{ 522, 1040685928u, 3175490326u, 3226879970u, 845687760u, 1056668714u, 230088075u, 0, SQRT_TOLERANCE, 0},
+{ 523, 1042302993u, 3124482451u, 3242748377u, 3259417226u, 1057411931u, 1895289457u, 0, SQRT_TOLERANCE, 0},
+{ 524, 1045245695u, 2751606436u, 3236210939u, 3923142740u, 1058967346u, 2501951112u, 0, SQRT_TOLERANCE, 0},
+{ 525, 1095694737u, 2016872044u, 3228408064u, 4201274408u, 1084193719u, 1341308550u, 0, SQRT_TOLERANCE, 0},
+{ 526, 1051865606u, 1019916843u, 3219974785u, 1977881787u, 1062277115u, 1815423411u, 0, SQRT_TOLERANCE, 0},
+{ 527, 1051995104u, 2060433318u, 1075872515u, 366073725u, 1062336268u, 898590485u, 0, SQRT_TOLERANCE, 0},
+{ 528, 1043696909u, 1098469906u, 1082900695u, 2349346832u, 1058181560u, 247256455u, 0, SQRT_TOLERANCE, 0},
+{ 529, 1062491059u, 3011196295u, 3252479932u, 2459281672u, 1067583679u, 2229559301u, 0, SQRT_TOLERANCE, 0},
+{ 530, 1073850675u, 2843222682u, 1089275809u, 298982001u, 1073202652u, 76908366u, 0, SQRT_TOLERANCE, 0},
+{ 531, 1101737698u, 914741728u, 3203468059u, 2833809843u, 1087209039u, 1088872555u, 0, SQRT_TOLERANCE, 0},
+{ 532, 1089280230u, 1274901962u, 3241535845u, 3759113509u, 1080984478u, 1577473414u, 0, SQRT_TOLERANCE, 0},
+{ 533, 1098432794u, 2134927252u, 3253802671u, 3013731444u, 1085531847u, 2133386593u, 0, SQRT_TOLERANCE, 0},
+{ 534, 1099201341u, 2230655177u, 3254510616u, 1249674366u, 1085905363u, 1067783034u, 0, SQRT_TOLERANCE, 0},
+{ 535, 1062971253u, 717357389u, 1083533731u, 3746683362u, 1067780333u, 3369307810u, 0, SQRT_TOLERANCE, 0},
+{ 536, 1066289466u, 834976849u, 3217357661u, 2465861779u, 1069490584u, 943739656u, 0, SQRT_TOLERANCE, 0},
+{ 537, 1045656117u, 1385714428u, 1053358395u, 3007113740u, 1059169180u, 1599080278u, 0, SQRT_TOLERANCE, 0},
+{ 538, 1050527919u, 599268545u, 3201368210u, 2309854744u, 1061540977u, 2841166373u, 0, SQRT_TOLERANCE, 0},
+{ 539, 1069954454u, 2840234388u, 3232496515u, 333365983u, 1071294639u, 2819921999u, 0, SQRT_TOLERANCE, 0},
+{ 540, 1045922781u, 3136078996u, 3194520860u, 2650572904u, 1059284382u, 1951861770u, 0, SQRT_TOLERANCE, 0},
+{ 541, 1086204043u, 2405805086u, 3251640319u, 324233833u, 1079375734u, 3915012143u, 0, SQRT_TOLERANCE, 0},
+{ 542, 1106699146u, 2589598340u, 3254677807u, 952438812u, 1089676044u, 2397351581u, 0, SQRT_TOLERANCE, 0},
+{ 543, 1041631125u, 1922837702u, 3216892718u, 3535907549u, 1057146423u, 3893510193u, 0, SQRT_TOLERANCE, 0},
+{ 544, 1096132220u, 261447440u, 3209805849u, 1150571079u, 1084398761u, 3527157321u, 0, SQRT_TOLERANCE, 0},
+{ 545, 1095805232u, 4026487528u, 1073152064u, 27340691u, 1084249021u, 1433674918u, 0, SQRT_TOLERANCE, 0},
+{ 546, 1081640044u, 338765118u, 1086225786u, 3207238249u, 1077136979u, 4074518894u, 0, SQRT_TOLERANCE, 0},
+{ 547, 1048699055u, 1085283176u, 3187775111u, 1601194210u, 1060629270u, 1677883377u, 0, SQRT_TOLERANCE, 0},
+{ 548, 1091520173u, 3031712790u, 3252307859u, 170666844u, 1082106575u, 675404539u, 0, SQRT_TOLERANCE, 0},
+{ 549, 1071378583u, 3148395674u, 1041913758u, 3306391490u, 1071981740u, 294778774u, 0, SQRT_TOLERANCE, 0},
+{ 550, 1053793422u, 2205233857u, 3208100078u, 3993195511u, 1063243296u, 1682235421u, 0, SQRT_TOLERANCE, 0},
+{ 551, 1067699608u, 4282766727u, 1072820377u, 1874778218u, 1070148707u, 2024206196u, 0, SQRT_TOLERANCE, 0},
+{ 552, 1063349444u, 2920860798u, 3218070226u, 3104066154u, 1067949324u, 2004493119u, 0, SQRT_TOLERANCE, 0},
+{ 553, 1057466703u, 969991373u, 3250596895u, 1734386152u, 1065059392u, 1651745052u, 0, SQRT_TOLERANCE, 0},
+{ 554, 1091432170u, 1218740205u, 3239802737u, 2610078504u, 1082061578u, 3684061174u, 0, SQRT_TOLERANCE, 0},
+{ 555, 1058547594u, 1485218325u, 3220870240u, 3591664613u, 1065593003u, 3784987544u, 0, SQRT_TOLERANCE, 0},
+{ 556, 1054590495u, 690157417u, 3190850619u, 4192347699u, 1063589012u, 317003585u, 0, SQRT_TOLERANCE, 0},
+{ 557, 1096053810u, 4009839784u, 1079670252u, 394167192u, 1084364580u, 884294277u, 0, SQRT_TOLERANCE, 0},
+{ 558, 1087075589u, 961532417u, 1092588071u, 2923790239u, 1079878723u, 1394752703u, 0, SQRT_TOLERANCE, 0},
+{ 559, 1056395443u, 4174125604u, 1050682630u, 2169701868u, 1064521848u, 4039398156u, 0, SQRT_TOLERANCE, 0},
+{ 560, 1095608827u, 4146748230u, 1087373950u, 2481478351u, 1084149587u, 2478852563u, 0, SQRT_TOLERANCE, 0},
+{ 561, 1076987866u, 3984715440u, 1050421618u, 2446142566u, 1074839412u, 69901431u, 0, SQRT_TOLERANCE, 0},
+{ 562, 1084172406u, 936290150u, 1100614426u, 3625806370u, 1078350824u, 310580915u, 0, SQRT_TOLERANCE, 0},
+{ 563, 1099787952u, 1866615265u, 3215651428u, 2337013350u, 1086238841u, 791343450u, 0, SQRT_TOLERANCE, 0},
+{ 564, 1105714654u, 712227971u, 1106004723u, 973148499u, 1089184447u, 389736924u, 0, SQRT_TOLERANCE, 0},
+{ 565, 1082604551u, 3409813738u, 3244817008u, 1933503498u, 1077625963u, 2393156367u, 0, SQRT_TOLERANCE, 0},
+{ 566, 1079943733u, 3180389060u, 3228735703u, 83422217u, 1076241305u, 2779503497u, 0, SQRT_TOLERANCE, 0},
+{ 567, 1077878724u, 556972671u, 3204582372u, 841555801u, 1075204298u, 1078021586u, 0, SQRT_TOLERANCE, 0},
+{ 568, 1070767721u, 4189151332u, 1080874032u, 706326922u, 1071727234u, 2527824148u, 0, SQRT_TOLERANCE, 0},
+{ 569, 1096151307u, 198291836u, 1057281892u, 2188836928u, 1084406938u, 2543197104u, 0, SQRT_TOLERANCE, 0},
+{ 570, 1078091995u, 1219449298u, 3228734687u, 3504562743u, 1075331132u, 976795682u, 0, SQRT_TOLERANCE, 0},
+{ 571, 1057086816u, 1776099219u, 1094316777u, 4188083896u, 1064823007u, 3438777187u, 0, SQRT_TOLERANCE, 0},
+{ 572, 1046362060u, 2614400266u, 1073750227u, 3003203347u, 1059454212u, 1643979555u, 0, SQRT_TOLERANCE, 0},
+{ 573, 1066499030u, 2959351406u, 1105603716u, 311851587u, 1069595061u, 2558039374u, 0, SQRT_TOLERANCE, 0},
+{ 574, 1084544434u, 865443613u, 1097532516u, 3622237781u, 1078579741u, 3398039023u, 0, SQRT_TOLERANCE, 0},
+{ 575, 1084303018u, 447506102u, 3195759295u, 3603669725u, 1078422876u, 353949276u, 0, SQRT_TOLERANCE, 0},
+{ 576, 1097890173u, 3934398273u, 1040996422u, 2968621268u, 1085291597u, 1385209631u, 0, SQRT_TOLERANCE, 0},
+{ 577, 1049256177u, 784208771u, 1088764788u, 2182296421u, 1060965823u, 2578700877u, 0, SQRT_TOLERANCE, 0},
+{ 578, 1100848643u, 1527590526u, 3206961556u, 2823164069u, 1086702792u, 3436020600u, 0, SQRT_TOLERANCE, 0},
+{ 579, 1089160483u, 3876699591u, 3207481130u, 4028148535u, 1080920671u, 3222192366u, 0, SQRT_TOLERANCE, 0},
+{ 580, 1083576186u, 2164249756u, 1059857743u, 1785169952u, 1078118804u, 3465933800u, 0, SQRT_TOLERANCE, 0},
+{ 581, 1091804009u, 2079273665u, 1080303860u, 625760474u, 1082242626u, 2162485561u, 0, SQRT_TOLERANCE, 0},
+{ 582, 1079002460u, 3636214836u, 1068367620u, 2932621925u, 1075847817u, 648033979u, 0, SQRT_TOLERANCE, 0},
+{ 583, 1043995372u, 4274131512u, 1047707755u, 92550763u, 1058303986u, 1278719811u, 0, SQRT_TOLERANCE, 0},
+{ 584, 1051338473u, 2648933384u, 1084603503u, 3534304873u, 1062006200u, 3973890530u, 0, SQRT_TOLERANCE, 0},
+{ 585, 1064563235u, 3216750767u, 3191088629u, 547482628u, 1068621123u, 3033538209u, 0, SQRT_TOLERANCE, 0},
+{ 586, 1061084774u, 1420360746u, 1080063101u, 1690029499u, 1066809678u, 4006657168u, 0, SQRT_TOLERANCE, 0},
+{ 587, 1082371716u, 1908572179u, 1080112083u, 1228319033u, 1077483674u, 2480094859u, 0, SQRT_TOLERANCE, 0},
+{ 588, 1048158178u, 500312015u, 3212368508u, 3864619086u, 1060388751u, 230035550u, 0, SQRT_TOLERANCE, 0},
+{ 589, 1073851962u, 4211343447u, 1087492676u, 4272583781u, 1073203518u, 808839606u, 0, SQRT_TOLERANCE, 0},
+{ 590, 1099392394u, 2382118000u, 1042665328u, 567154882u, 1086020796u, 1419283481u, 0, SQRT_TOLERANCE, 0},
+{ 591, 1058013442u, 1435344339u, 3216303171u, 2275988178u, 1065353345u, 683507262u, 0, SQRT_TOLERANCE, 0},
+{ 592, 1067054971u, 3403659753u, 3218043030u, 1926480488u, 1069834765u, 4079816734u, 0, SQRT_TOLERANCE, 0},
+{ 593, 1076840383u, 1198845185u, 3225556149u, 1130089684u, 1074766681u, 2204310545u, 0, SQRT_TOLERANCE, 0},
+{ 594, 1075179394u, 2183928090u, 1048403956u, 963834821u, 1073921010u, 4206351748u, 0, SQRT_TOLERANCE, 0},
+{ 595, 1101672960u, 2120625396u, 1041006976u, 2137548527u, 1087173594u, 1796114179u, 0, SQRT_TOLERANCE, 0},
+{ 596, 1099230238u, 586700956u, 1059670521u, 303891699u, 1085923326u, 3641073464u, 0, SQRT_TOLERANCE, 0},
+{ 597, 1071510850u, 2509132460u, 1102827530u, 2205707903u, 1072030913u, 2255776863u, 0, SQRT_TOLERANCE, 0},
+{ 598, 1057376949u, 1229308263u, 3209170414u, 4206576047u, 1065006425u, 2427150864u, 0, SQRT_TOLERANCE, 0},
+{ 599, 1076592641u, 4078010749u, 3199236456u, 733478972u, 1074637360u, 4242033560u, 0, SQRT_TOLERANCE, 0},
+{ 600, 1050228936u, 4277541051u, 3199806921u, 397102023u, 1061426857u, 4110600862u, 0, SQRT_TOLERANCE, 0},
+{ 601, 1048491365u, 900999594u, 3234720188u, 2530214248u, 1060514439u, 1432053169u, 0, SQRT_TOLERANCE, 0},
+{ 602, 1076543548u, 4000609478u, 1096577064u, 4148592328u, 1074610699u, 1624533046u, 0, SQRT_TOLERANCE, 0},
+{ 603, 1048668084u, 2154187873u, 3224392607u, 3957250362u, 1060608413u, 4095657260u, 0, SQRT_TOLERANCE, 0},
+{ 604, 1075929840u, 2867079200u, 1101870326u, 921212001u, 1074239074u, 3129267102u, 0, SQRT_TOLERANCE, 0},
+{ 605, 1085738242u, 674547716u, 1063216239u, 3929755226u, 1079194714u, 1993425296u, 0, SQRT_TOLERANCE, 0},
+{ 606, 1092932203u, 3158182449u, 1043794244u, 3259056345u, 1082773526u, 646662438u, 0, SQRT_TOLERANCE, 0},
+{ 607, 1089293008u, 3002823940u, 1059511739u, 2832435794u, 1080991167u, 2142327428u, 0, SQRT_TOLERANCE, 0},
+{ 608, 1069821174u, 2196511929u, 1049973941u, 3672092877u, 1071212728u, 874634407u, 0, SQRT_TOLERANCE, 0},
+{ 609, 1050438056u, 3655292191u, 1086438127u, 3567072906u, 1061507657u, 3300586087u, 0, SQRT_TOLERANCE, 0},
+{ 610, 1095703300u, 1617573614u, 3201863123u, 3090723732u, 1084198066u, 1965834048u, 0, SQRT_TOLERANCE, 0},
+{ 611, 1085717732u, 679893506u, 3211547753u, 824081024u, 1079186141u, 1881293678u, 0, SQRT_TOLERANCE, 0},
+{ 612, 1089530525u, 2285242807u, 1084999409u, 2221731406u, 1081111468u, 2679879526u, 0, SQRT_TOLERANCE, 0},
+{ 613, 1059250016u, 1935990727u, 1088822246u, 1058156518u, 1065915175u, 3548899673u, 0, SQRT_TOLERANCE, 0},
+{ 614, 1102839166u, 521023584u, 1059186903u, 4245163857u, 1087711629u, 149530312u, 0, SQRT_TOLERANCE, 0},
+{ 615, 1103891140u, 2312887617u, 3191771354u, 1885370807u, 1088287914u, 4066812935u, 0, SQRT_TOLERANCE, 0},
+{ 616, 1105470167u, 1796441468u, 1100030327u, 2772711004u, 1089036887u, 3439783295u, 0, SQRT_TOLERANCE, 0},
+{ 617, 1056793172u, 2095685003u, 1077984448u, 2100773742u, 1064677070u, 3082965484u, 0, SQRT_TOLERANCE, 0},
+{ 618, 1045470972u, 2892538035u, 1042396334u, 4162200338u, 1059081916u, 2590763245u, 0, SQRT_TOLERANCE, 0},
+{ 619, 1095242103u, 2177698116u, 3227557177u, 150832500u, 1083949198u, 3011460131u, 0, SQRT_TOLERANCE, 0},
+{ 620, 1044078568u, 607966734u, 3236250630u, 4164600559u, 1058336165u, 3216008968u, 0, SQRT_TOLERANCE, 0},
+{ 621, 1068906164u, 2830122967u, 1046096700u, 3713346883u, 1070783041u, 2252608121u, 0, SQRT_TOLERANCE, 0},
+{ 622, 1089714315u, 2314640506u, 3203696416u, 3276228872u, 1081197414u, 976021772u, 0, SQRT_TOLERANCE, 0},
+{ 623, 1065428659u, 469331883u, 3249037349u, 2999233437u, 1068985698u, 998895242u, 0, SQRT_TOLERANCE, 0},
+{ 624, 1097382011u, 560886625u, 1091899487u, 748795120u, 1085022259u, 3618303474u, 0, SQRT_TOLERANCE, 0},
+{ 625, 1049886858u, 2958421324u, 1092569414u, 3235243477u, 1061282741u, 2704406419u, 0, SQRT_TOLERANCE, 0},
+{ 626, 1045542849u, 3221475559u, 1043038304u, 915608434u, 1059116614u, 369233074u, 0, SQRT_TOLERANCE, 0},
+{ 627, 1071197530u, 3007808652u, 3216682290u, 2531019474u, 1071911452u, 348324353u, 0, SQRT_TOLERANCE, 0},
+{ 628, 1094545351u, 1767658578u, 3237045269u, 2313128318u, 1083552708u, 1870703893u, 0, SQRT_TOLERANCE, 0},
+{ 629, 1063134244u, 1926845182u, 1066835624u, 1783256828u, 1067840988u, 1598436936u, 0, SQRT_TOLERANCE, 0},
+{ 630, 1040575629u, 90378038u, 1057168870u, 164358218u, 1056603317u, 2337412123u, 0, SQRT_TOLERANCE, 0},
+{ 631, 1106859172u, 1610524680u, 1085283851u, 2903496007u, 1089741246u, 3783034333u, 0, SQRT_TOLERANCE, 0},
+{ 632, 1078635586u, 4274321404u, 3202913591u, 720121831u, 1075656476u, 3146253411u, 0, SQRT_TOLERANCE, 0},
+{ 633, 1051205256u, 2034778236u, 1071133763u, 1413236391u, 1061931030u, 678520773u, 0, SQRT_TOLERANCE, 0},
+{ 634, 1051063028u, 1489112261u, 1076691395u, 348210906u, 1061847187u, 2249806758u, 0, SQRT_TOLERANCE, 0},
+{ 635, 1059260269u, 2797651324u, 3224410527u, 2374818327u, 1065921837u, 2697175535u, 0, SQRT_TOLERANCE, 0},
+{ 636, 1088287256u, 1823161666u, 3197810695u, 3119680047u, 1080419225u, 1971833611u, 0, SQRT_TOLERANCE, 0},
+{ 637, 1065927336u, 3420950657u, 1087084743u, 2136638961u, 1069295101u, 2317625956u, 0, SQRT_TOLERANCE, 0},
+{ 638, 1069902224u, 3554566429u, 1062907717u, 2736702589u, 1071263006u, 1224272277u, 0, SQRT_TOLERANCE, 0},
+{ 639, 1097405019u, 2928437580u, 3187765027u, 1393427873u, 1085035302u, 2741209040u, 0, SQRT_TOLERANCE, 0},
+{ 640, 1061817913u, 189447067u, 1051643315u, 828663513u, 1067245581u, 3767564065u, 0, SQRT_TOLERANCE, 0},
+{ 641, 1052313869u, 2852350928u, 1045683757u, 673354280u, 1062470558u, 3169785241u, 0, SQRT_TOLERANCE, 0},
+{ 642, 1043946301u, 3589563265u, 3248741629u, 812657927u, 1058284638u, 298510060u, 0, SQRT_TOLERANCE, 0},
+{ 643, 1043127178u, 1766416701u, 1100392103u, 2185373290u, 1057907552u, 4082525716u, 0, SQRT_TOLERANCE, 0},
+{ 644, 1072791741u, 3763582673u, 3191965790u, 388374829u, 1072741389u, 3455066464u, 0, SQRT_TOLERANCE, 0},
+{ 645, 1079635136u, 1187403069u, 1075300235u, 336640304u, 1076125143u, 686124104u, 0, SQRT_TOLERANCE, 0},
+{ 646, 1103926251u, 1718795752u, 3243118752u, 683369237u, 1088306579u, 2941490609u, 0, SQRT_TOLERANCE, 0},
+{ 647, 1063308449u, 1863545307u, 1069449477u, 3418627399u, 1067921293u, 260051306u, 0, SQRT_TOLERANCE, 0},
+{ 648, 1069601294u, 3295607249u, 1068878592u, 1633297809u, 1071067979u, 2183136607u, 0, SQRT_TOLERANCE, 0},
+{ 649, 1058947127u, 2585980994u, 3236670483u, 1286750688u, 1065746452u, 939747836u, 0, SQRT_TOLERANCE, 0},
+{ 650, 1046157033u, 15816845u, 3233249283u, 2491924775u, 1059377579u, 3239098358u, 0, SQRT_TOLERANCE, 0},
+{ 651, 1042413021u, 1051983351u, 1049180786u, 1474421917u, 1057487165u, 906255288u, 0, SQRT_TOLERANCE, 0},
+{ 652, 1053765877u, 2003816032u, 1086050104u, 668090487u, 1063229393u, 591937988u, 0, SQRT_TOLERANCE, 0},
+{ 653, 1052556037u, 3671484625u, 1067020039u, 430024694u, 1062564027u, 1153728629u, 0, SQRT_TOLERANCE, 0},
+{ 654, 1067397110u, 3991830201u, 3207808714u, 1021245839u, 1069962904u, 422338124u, 0, SQRT_TOLERANCE, 0},
+{ 655, 1064194391u, 4255801807u, 3207681716u, 1926756877u, 1068443075u, 3568678275u, 0, SQRT_TOLERANCE, 0},
+{ 656, 1052140785u, 4167786896u, 1077097744u, 1775517981u, 1062399446u, 1995915588u, 0, SQRT_TOLERANCE, 0},
+{ 657, 1085601978u, 3187518564u, 1082437406u, 944672491u, 1079136610u, 552437956u, 0, SQRT_TOLERANCE, 0},
+{ 658, 1049366282u, 953085192u, 3227310828u, 3459155777u, 1061025523u, 84882458u, 0, SQRT_TOLERANCE, 0},
+{ 659, 1069502506u, 1908555460u, 1073640207u, 260441967u, 1071014429u, 1620832626u, 0, SQRT_TOLERANCE, 0},
+{ 660, 1067219606u, 250762477u, 1072582645u, 2886742039u, 1069897890u, 2933439031u, 0, SQRT_TOLERANCE, 0},
+{ 661, 1103422358u, 786180031u, 3197734769u, 2788918312u, 1088019127u, 3627648486u, 0, SQRT_TOLERANCE, 0},
+{ 662, 1087028179u, 2055912467u, 3244244909u, 1394142937u, 1079852961u, 2693116503u, 0, SQRT_TOLERANCE, 0},
+{ 663, 1069612985u, 91984146u, 3222252812u, 4126276047u, 1071076020u, 1554092544u, 0, SQRT_TOLERANCE, 0},
+{ 664, 1081340139u, 3942715706u, 3239316352u, 410676547u, 1077009592u, 230971631u, 0, SQRT_TOLERANCE, 0},
+{ 665, 1051074198u, 86296211u, 1085850694u, 649202596u, 1061853917u, 3713575055u, 0, SQRT_TOLERANCE, 0},
+{ 666, 1097882744u, 3069064472u, 3237358008u, 23209276u, 1085287930u, 1272708561u, 0, SQRT_TOLERANCE, 0},
+{ 667, 1081235288u, 1867297860u, 1072956607u, 2513414118u, 1076961650u, 547480898u, 0, SQRT_TOLERANCE, 0},
+{ 668, 1103049699u, 3171788768u, 3235208783u, 162138697u, 1087789055u, 3892822244u, 0, SQRT_TOLERANCE, 0},
+{ 669, 1081728455u, 1245110700u, 1081653954u, 2584994077u, 1077172212u, 3049250374u, 0, SQRT_TOLERANCE, 0},
+{ 670, 1098026472u, 3347226587u, 1058962932u, 2291943376u, 1085356762u, 2114216684u, 0, SQRT_TOLERANCE, 0},
+{ 671, 1058899062u, 966940828u, 1060726420u, 2798041096u, 1065728866u, 3881890662u, 0, SQRT_TOLERANCE, 0},
+{ 672, 1072793759u, 2487340727u, 3223786370u, 4105954991u, 1072742353u, 4068514135u, 0, SQRT_TOLERANCE, 0},
+{ 673, 1100632849u, 1671039260u, 1086395032u, 3745833360u, 1086621152u, 2062363498u, 0, SQRT_TOLERANCE, 0},
+{ 674, 1057078797u, 651714217u, 1047070645u, 2130549237u, 1064817632u, 886839519u, 0, SQRT_TOLERANCE, 0},
+{ 675, 1059632083u, 1423000172u, 3247822717u, 1551488170u, 1066147213u, 3158619639u, 0, SQRT_TOLERANCE, 0},
+{ 676, 1054113659u, 921077236u, 3213332351u, 1431049019u, 1063394336u, 3369552467u, 0, SQRT_TOLERANCE, 0},
+{ 677, 1067510295u, 655715547u, 3190985373u, 1527556471u, 1070023640u, 2410187056u, 0, SQRT_TOLERANCE, 0},
+{ 678, 1080171331u, 4110878657u, 3251297180u, 879739345u, 1076367910u, 1896946077u, 0, SQRT_TOLERANCE, 0},
+{ 679, 1085804762u, 2623955764u, 1093699897u, 1216444475u, 1079222126u, 1307759639u, 0, SQRT_TOLERANCE, 0},
+{ 680, 1091905603u, 107442539u, 3239767031u, 1149813329u, 1082287640u, 2949067075u, 0, SQRT_TOLERANCE, 0},
+{ 681, 1085961592u, 1761361082u, 3226030205u, 1121849716u, 1079284549u, 651985841u, 0, SQRT_TOLERANCE, 0},
+{ 682, 1092603467u, 2534144722u, 1044223733u, 3512285706u, 1082560260u, 3424319355u, 0, SQRT_TOLERANCE, 0},
+{ 683, 1064362429u, 4073670723u, 1050729852u, 3034818849u, 1068527451u, 1977644747u, 0, SQRT_TOLERANCE, 0},
+{ 684, 1101984574u, 1421423503u, 1060278048u, 1397153092u, 1087338624u, 1251505929u, 0, SQRT_TOLERANCE, 0},
+{ 685, 1069938181u, 1649206019u, 1104525577u, 1267104290u, 1071284845u, 1733827628u, 0, SQRT_TOLERANCE, 0},
+{ 686, 1041818449u, 3775270392u, 1040251850u, 68667319u, 1057223811u, 3667903075u, 0, SQRT_TOLERANCE, 0},
+{ 687, 1056847252u, 3099226694u, 3254103006u, 4020102648u, 1064696885u, 3238917322u, 0, SQRT_TOLERANCE, 0},
+{ 688, 1054108064u, 3718441177u, 3215643451u, 4032951536u, 1063391862u, 3926815021u, 0, SQRT_TOLERANCE, 0},
+{ 689, 1044131371u, 508048351u, 3210196713u, 1707937896u, 1058356203u, 3006675795u, 0, SQRT_TOLERANCE, 0},
+{ 690, 1051127979u, 2784738160u, 1073435430u, 1109346010u, 1061885967u, 628693294u, 0, SQRT_TOLERANCE, 0},
+{ 691, 1078241642u, 3331916473u, 3238794568u, 2707019594u, 1075426975u, 364200131u, 0, SQRT_TOLERANCE, 0},
+{ 692, 1093182670u, 3093165197u, 1072894805u, 2853215019u, 1082922240u, 2297662115u, 0, SQRT_TOLERANCE, 0},
+{ 693, 1069098491u, 2135797997u, 1048399559u, 2941926126u, 1070862123u, 2771619189u, 0, SQRT_TOLERANCE, 0},
+{ 694, 1048430980u, 2083412145u, 3249335391u, 507212448u, 1060492479u, 3625946286u, 0, SQRT_TOLERANCE, 0},
+{ 695, 1075363751u, 4270176401u, 3246546709u, 3288753319u, 1073997362u, 2376976277u, 0, SQRT_TOLERANCE, 0},
+{ 696, 1100449215u, 3692175292u, 3197271515u, 3989064196u, 1086547557u, 1230309530u, 0, SQRT_TOLERANCE, 0},
+{ 697, 1104208090u, 3111924274u, 1066772558u, 59281695u, 1088450284u, 3649920643u, 0, SQRT_TOLERANCE, 0},
+{ 698, 1067683911u, 2135245466u, 3208804313u, 3846547392u, 1070138699u, 3938945759u, 0, SQRT_TOLERANCE, 0},
+{ 699, 1094877811u, 972051266u, 3222814246u, 3539700586u, 1083725404u, 467723950u, 0, SQRT_TOLERANCE, 0},
+{ 700, 1055482282u, 330951080u, 1079189813u, 583922384u, 1064075215u, 3272484162u, 0, SQRT_TOLERANCE, 0},
+{ 701, 1089640092u, 1711944085u, 1104170032u, 643991456u, 1081163492u, 1388030746u, 0, SQRT_TOLERANCE, 0},
+{ 702, 1086945901u, 2072550721u, 3250147641u, 4280263530u, 1079807411u, 1863162939u, 0, SQRT_TOLERANCE, 0},
+{ 703, 1045489058u, 1566376352u, 1067251433u, 72984588u, 1059090752u, 1602896158u, 0, SQRT_TOLERANCE, 0},
+{ 704, 1095276569u, 3103043079u, 1045853123u, 410067497u, 1083968962u, 753399636u, 0, SQRT_TOLERANCE, 0},
+{ 705, 1069188845u, 1910366299u, 1081770885u, 634683073u, 1070897677u, 2863774767u, 0, SQRT_TOLERANCE, 0},
+{ 706, 1081530688u, 2226525875u, 3224149290u, 2126302825u, 1077092030u, 3954895560u, 0, SQRT_TOLERANCE, 0},
+{ 707, 1073150247u, 1383818978u, 3193885723u, 1220372650u, 1072901139u, 1413389549u, 0, SQRT_TOLERANCE, 0},
+{ 708, 1066482943u, 1953339096u, 1077176252u, 1476516558u, 1069587339u, 2801007127u, 0, SQRT_TOLERANCE, 0},
+{ 709, 1066092000u, 1306277326u, 1079089150u, 4093716191u, 1069386437u, 3398348402u, 0, SQRT_TOLERANCE, 0},
+{ 710, 1085665139u, 51750045u, 3242913901u, 4256866157u, 1079163884u, 1554573188u, 0, SQRT_TOLERANCE, 0},
+{ 711, 1047601319u, 2163853087u, 3232053146u, 2962422808u, 1060146654u, 3341976993u, 0, SQRT_TOLERANCE, 0},
+{ 712, 1075516945u, 1618388148u, 3233154824u, 3711953164u, 1074057560u, 3839819821u, 0, SQRT_TOLERANCE, 0},
+{ 713, 1099384354u, 357108214u, 3202294604u, 2306775262u, 1086016088u, 2177156905u, 0, SQRT_TOLERANCE, 0},
+{ 714, 1054420438u, 2571356437u, 3249064063u, 2394851808u, 1063522893u, 1996514442u, 0, SQRT_TOLERANCE, 0},
+{ 715, 1083004443u, 4273880094u, 1103698617u, 3578832032u, 1077846949u, 3946749071u, 0, SQRT_TOLERANCE, 0},
+{ 716, 1085943053u, 2091068742u, 3228270226u, 3980489730u, 1079277321u, 2352780649u, 0, SQRT_TOLERANCE, 0},
+{ 717, 1081533104u, 2772307714u, 1051008486u, 32546576u, 1077093041u, 1889194046u, 0, SQRT_TOLERANCE, 0},
+{ 718, 1093745567u, 2143788498u, 3195498043u, 3630119231u, 1083218658u, 426861584u, 0, SQRT_TOLERANCE, 0},
+{ 719, 1051149287u, 2527385594u, 3240503648u, 3482095012u, 1061898506u, 9904143u, 0, SQRT_TOLERANCE, 0},
+{ 720, 1094685151u, 2690097362u, 1068598730u, 2360266862u, 1083603341u, 709843363u, 0, SQRT_TOLERANCE, 0},
+{ 721, 1058857869u, 2673272949u, 1082639557u, 522449749u, 1065713621u, 1890892219u, 0, SQRT_TOLERANCE, 0},
+{ 722, 1104424147u, 3596379400u, 3242016775u, 2002293002u, 1088550776u, 2464066130u, 0, SQRT_TOLERANCE, 0},
+{ 723, 1099439656u, 4113224369u, 3222122439u, 2152316893u, 1086048223u, 633234982u, 0, SQRT_TOLERANCE, 0},
+{ 724, 1073313068u, 31662602u, 1047721249u, 1747087514u, 1072967335u, 4221791633u, 0, SQRT_TOLERANCE, 0},
+{ 725, 1102980109u, 2489659568u, 1097051253u, 277506957u, 1087763924u, 176770536u, 0, SQRT_TOLERANCE, 0},
+{ 726, 1043918186u, 3850162281u, 3213841942u, 438724093u, 1058273423u, 3330050394u, 0, SQRT_TOLERANCE, 0},
+{ 727, 1095392535u, 2431814052u, 1075518084u, 2672434118u, 1084033952u, 3177579787u, 0, SQRT_TOLERANCE, 0},
+{ 728, 1095679087u, 391606792u, 1048184750u, 4168944276u, 1084185750u, 1284715554u, 0, SQRT_TOLERANCE, 0},
+{ 729, 1100308768u, 457529672u, 3201090276u, 72407935u, 1086488257u, 3152601039u, 0, SQRT_TOLERANCE, 0},
+{ 730, 1071237071u, 3954981400u, 1052053242u, 2411049585u, 1071927119u, 2207817645u, 0, SQRT_TOLERANCE, 0},
+{ 731, 1086180091u, 485456950u, 1088415093u, 1655397424u, 1079366985u, 516442262u, 0, SQRT_TOLERANCE, 0},
+{ 732, 1050750780u, 1551748070u, 3236871640u, 1329701152u, 1061647157u, 4111932827u, 0, SQRT_TOLERANCE, 0},
+{ 733, 1077155474u, 3099222537u, 1104984570u, 4293792842u, 1074916749u, 379935345u, 0, SQRT_TOLERANCE, 0},
+{ 734, 1056466057u, 3603065260u, 3197735968u, 2402359253u, 1064550766u, 3737026872u, 0, SQRT_TOLERANCE, 0},
+{ 735, 1051340936u, 3961208159u, 3219057584u, 2340553876u, 1062007562u, 3673974675u, 0, SQRT_TOLERANCE, 0},
+{ 736, 1074881909u, 4014841779u, 3197672877u, 3697233334u, 1073786622u, 88914263u, 0, SQRT_TOLERANCE, 0},
+{ 737, 1065792009u, 1403876392u, 3254028950u, 921363393u, 1069216504u, 3876453874u, 0, SQRT_TOLERANCE, 0},
+{ 738, 1107251806u, 1862576361u, 3194031708u, 2476290925u, 1089888998u, 4032607029u, 0, SQRT_TOLERANCE, 0},
+{ 739, 1049661768u, 1454212851u, 1088378861u, 3400401866u, 1061177346u, 566150313u, 0, SQRT_TOLERANCE, 0},
+{ 740, 1074406809u, 552676385u, 3188635745u, 3778112968u, 1073540350u, 3476035357u, 0, SQRT_TOLERANCE, 0},
+{ 741, 1068925634u, 1199568671u, 3225679997u, 46947405u, 1070791275u, 3995475172u, 0, SQRT_TOLERANCE, 0},
+{ 742, 1077685537u, 2596231448u, 3253943728u, 2219151748u, 1075133319u, 2848850050u, 0, SQRT_TOLERANCE, 0},
+{ 743, 1066527035u, 4119719558u, 3222036299u, 1275474618u, 1069608376u, 145002079u, 0, SQRT_TOLERANCE, 0},
+{ 744, 1092425015u, 3347296825u, 1101507910u, 1254014794u, 1082495560u, 2216586448u, 0, SQRT_TOLERANCE, 0},
+{ 745, 1084119992u, 673775040u, 1070743626u, 244126093u, 1078331922u, 496821601u, 0, SQRT_TOLERANCE, 0},
+{ 746, 1055716202u, 1832066983u, 1051358028u, 3262483417u, 1064202224u, 1950551906u, 0, SQRT_TOLERANCE, 0},
+{ 747, 1077559600u, 3962610501u, 3198598777u, 849269178u, 1075085031u, 1525244356u, 0, SQRT_TOLERANCE, 0},
+{ 748, 1087990252u, 2497516122u, 3254374111u, 2821429629u, 1080306226u, 517527846u, 0, SQRT_TOLERANCE, 0},
+{ 749, 1076236288u, 2805941787u, 3217785843u, 779131141u, 1074434583u, 861836968u, 0, SQRT_TOLERANCE, 0},
+{ 750, 1079425038u, 723423605u, 1084533420u, 627282213u, 1076039894u, 365634408u, 0, SQRT_TOLERANCE, 0},
+{ 751, 1068464032u, 4292778869u, 1078101071u, 1676860147u, 1070578567u, 1047536610u, 0, SQRT_TOLERANCE, 0},
+{ 752, 1076288502u, 3528118587u, 3194648564u, 2363260897u, 1074465746u, 203801155u, 0, SQRT_TOLERANCE, 0},
+{ 753, 1045414231u, 1307010018u, 1061248120u, 1468743108u, 1059053724u, 1102571830u, 0, SQRT_TOLERANCE, 0},
+{ 754, 1099099491u, 107905661u, 3226089788u, 1943427674u, 1085840453u, 1102742192u, 0, SQRT_TOLERANCE, 0},
+{ 755, 1040746893u, 760006940u, 1054265604u, 1749976597u, 1056703860u, 3059823824u, 0, SQRT_TOLERANCE, 0},
+{ 756, 1090289736u, 2787503556u, 1081282610u, 1195841206u, 1081432773u, 932870048u, 0, SQRT_TOLERANCE, 0},
+{ 757, 1044318508u, 545462045u, 3208381743u, 1981311808u, 1058425007u, 1072319699u, 0, SQRT_TOLERANCE, 0},
+{ 758, 1061232136u, 3657978397u, 1104463616u, 3501253426u, 1066887030u, 2118518534u, 0, SQRT_TOLERANCE, 0},
+{ 759, 1049883857u, 1804177501u, 3210693633u, 3606766729u, 1061281398u, 3106920657u, 0, SQRT_TOLERANCE, 0},
+{ 760, 1076856879u, 1336278526u, 1043741618u, 3165279431u, 1074775007u, 707871427u, 0, SQRT_TOLERANCE, 0},
+{ 761, 1055471915u, 1599382075u, 1058018527u, 4212580517u, 1064069386u, 2623791979u, 0, SQRT_TOLERANCE, 0},
+{ 762, 1060018678u, 3007589929u, 3202026547u, 2792028313u, 1066355451u, 1532923830u, 0, SQRT_TOLERANCE, 0},
+{ 763, 1105599122u, 1866066996u, 1060329048u, 3727175322u, 1089116275u, 3321812424u, 0, SQRT_TOLERANCE, 0},
+{ 764, 1050932995u, 150890940u, 1056025306u, 3082724735u, 1061766824u, 1428927829u, 0, SQRT_TOLERANCE, 0},
+{ 765, 1062008939u, 80400395u, 1093584426u, 3478941315u, 1067348625u, 2196153996u, 0, SQRT_TOLERANCE, 0},
+{ 766, 1104156966u, 4050954182u, 3219263194u, 2537475930u, 1088425102u, 2337725373u, 0, SQRT_TOLERANCE, 0},
+{ 767, 1064841871u, 2881752155u, 3212589299u, 2559651278u, 1068739879u, 2073796259u, 0, SQRT_TOLERANCE, 0},
+{ 768, 1101532656u, 440309030u, 3214267461u, 3788040806u, 1087094405u, 3373897749u, 0, SQRT_TOLERANCE, 0},
+{ 769, 1100476615u, 918813144u, 3208535698u, 1607035904u, 1086558806u, 1011245962u, 0, SQRT_TOLERANCE, 0},
+{ 770, 1042137451u, 2497054124u, 1089139147u, 2549609010u, 1057345992u, 111156193u, 0, SQRT_TOLERANCE, 0},
+{ 771, 1047037641u, 790219083u, 1054657139u, 2797979479u, 1059849184u, 1753236757u, 0, SQRT_TOLERANCE, 0},
+{ 772, 1057781400u, 1149462078u, 1095765205u, 3879963182u, 1065233931u, 3174219490u, 0, SQRT_TOLERANCE, 0},
+{ 773, 1055246165u, 2684353926u, 3205212854u, 1732474928u, 1063937584u, 3393361022u, 0, SQRT_TOLERANCE, 0},
+{ 774, 1095236965u, 2742237025u, 1051317716u, 3386396147u, 1083946234u, 613474900u, 0, SQRT_TOLERANCE, 0},
+{ 775, 1063230986u, 3408320912u, 1103071166u, 4233059513u, 1067875809u, 2596828830u, 0, SQRT_TOLERANCE, 0},
+{ 776, 1064863548u, 1077495917u, 1088399968u, 433115118u, 1068748662u, 3465974693u, 0, SQRT_TOLERANCE, 0},
+{ 777, 1057063924u, 841366493u, 1051716814u, 4121125128u, 1064807613u, 159179335u, 0, SQRT_TOLERANCE, 0},
+{ 778, 1064632084u, 321857207u, 1089128010u, 1149988239u, 1068651559u, 3231648951u, 0, SQRT_TOLERANCE, 0},
+{ 779, 1098059015u, 799866606u, 3197637091u, 3924438208u, 1085371772u, 2017401516u, 0, SQRT_TOLERANCE, 0},
+{ 780, 1043579242u, 2002049816u, 1077053447u, 2240354761u, 1058129764u, 2275278518u, 0, SQRT_TOLERANCE, 0},
+{ 781, 1081522635u, 478939968u, 1097035749u, 1066716440u, 1077088656u, 3304548743u, 0, SQRT_TOLERANCE, 0},
+{ 782, 1084989993u, 1653104725u, 1088548129u, 81977716u, 1078836375u, 591268420u, 0, SQRT_TOLERANCE, 0},
+{ 783, 1049377628u, 3899475018u, 3189694084u, 3330093036u, 1061031572u, 1752714901u, 0, SQRT_TOLERANCE, 0},
+{ 784, 1089312583u, 2612450289u, 1079065127u, 603380842u, 1081001371u, 1642998661u, 0, SQRT_TOLERANCE, 0},
+{ 785, 1100636791u, 3962735564u, 1101570429u, 1372490825u, 1086622688u, 1854865064u, 0, SQRT_TOLERANCE, 0},
+{ 786, 1054806016u, 1479841439u, 1059312257u, 541504905u, 1063668514u, 3137717449u, 0, SQRT_TOLERANCE, 0},
+{ 787, 1078662178u, 2626148789u, 1057571099u, 4121656076u, 1075670984u, 3831365719u, 0, SQRT_TOLERANCE, 0},
+{ 788, 1081613389u, 1902560314u, 1043130231u, 3557671562u, 1077126168u, 2660033190u, 0, SQRT_TOLERANCE, 0},
+{ 789, 1046346124u, 41779312u, 1081626342u, 831171823u, 1059448402u, 2030752802u, 0, SQRT_TOLERANCE, 0},
+{ 790, 1058131100u, 1393168821u, 1066457405u, 1381616968u, 1065410603u, 3297354989u, 0, SQRT_TOLERANCE, 0},
+{ 791, 1072338141u, 3756584649u, 3222267229u, 1423157432u, 1072507465u, 3972749633u, 0, SQRT_TOLERANCE, 0},
+{ 792, 1106952026u, 1894912556u, 1042426694u, 155024547u, 1089777643u, 1238149925u, 0, SQRT_TOLERANCE, 0},
+{ 793, 1047969864u, 35164295u, 3203391785u, 1037041084u, 1060312137u, 1648206646u, 0, SQRT_TOLERANCE, 0},
+{ 794, 1084777479u, 3957875950u, 3232195211u, 1590756436u, 1078718463u, 4101912742u, 0, SQRT_TOLERANCE, 0},
+{ 795, 1068844322u, 1447585080u, 1071279485u, 1107922438u, 1070756514u, 1014033437u, 0, SQRT_TOLERANCE, 0},
+{ 796, 1046252518u, 981897615u, 1051856116u, 430357614u, 1059413790u, 3253496655u, 0, SQRT_TOLERANCE, 0},
+{ 797, 1080040567u, 395145384u, 3219821938u, 50586510u, 1076278454u, 993178072u, 0, SQRT_TOLERANCE, 0},
+{ 798, 1069775912u, 750827797u, 1082862669u, 230466783u, 1071183978u, 2068128913u, 0, SQRT_TOLERANCE, 0},
+{ 799, 1086668819u, 1365083575u, 3204848310u, 1700831722u, 1079645109u, 2783782078u, 0, SQRT_TOLERANCE, 0},
+{ 800, 1070606742u, 344241827u, 1071538935u, 2715566077u, 1071649981u, 2564811453u, 0, SQRT_TOLERANCE, 0},
+{ 801, 1100099208u, 4069301823u, 3193208760u, 2949125229u, 1086393944u, 2192827036u, 0, SQRT_TOLERANCE, 0},
+{ 802, 1103231387u, 3585711710u, 1065801594u, 2302229267u, 1087896508u, 3628193145u, 0, SQRT_TOLERANCE, 0},
+{ 803, 1046635308u, 709803845u, 1048741487u, 2296910194u, 1059602883u, 1477120060u, 0, SQRT_TOLERANCE, 0},
+{ 804, 1045797131u, 744421179u, 1069302001u, 2659232829u, 1059231457u, 3965738399u, 0, SQRT_TOLERANCE, 0},
+{ 805, 1092835968u, 1799949903u, 3192522886u, 4212149209u, 1082712784u, 2200512806u, 0, SQRT_TOLERANCE, 0},
+{ 806, 1058624854u, 145234164u, 3250614064u, 912384201u, 1065624069u, 2049313107u, 0, SQRT_TOLERANCE, 0},
+{ 807, 1093027016u, 2784620507u, 1102812948u, 3531481022u, 1082831308u, 3299780961u, 0, SQRT_TOLERANCE, 0},
+{ 808, 1103676015u, 383952592u, 3205659905u, 3633194728u, 1088169436u, 3168320457u, 0, SQRT_TOLERANCE, 0},
+{ 809, 1055992604u, 3792395543u, 1070072378u, 3864816376u, 1064342251u, 3788402700u, 0, SQRT_TOLERANCE, 0},
+{ 810, 1057832625u, 2115553675u, 1066288499u, 3538377867u, 1065260905u, 472205566u, 0, SQRT_TOLERANCE, 0},
+{ 811, 1104591537u, 1230026762u, 1090719723u, 440819880u, 1088623089u, 1428813236u, 0, SQRT_TOLERANCE, 0},
+{ 812, 1047111428u, 2991290482u, 1096886719u, 1097971167u, 1059890853u, 291347617u, 0, SQRT_TOLERANCE, 0},
+{ 813, 1090048600u, 1098035020u, 3230900504u, 1479059095u, 1081339316u, 2296873801u, 0, SQRT_TOLERANCE, 0},
+{ 814, 1103573316u, 1719428427u, 3188631907u, 3707377409u, 1088110106u, 16291827u, 0, SQRT_TOLERANCE, 0},
+{ 815, 1053236165u, 3748932896u, 1084908557u, 1325384361u, 1062941047u, 1513165414u, 0, SQRT_TOLERANCE, 0},
+{ 816, 1084704076u, 3979168763u, 1057455255u, 2454615952u, 1078675931u, 2283497204u, 0, SQRT_TOLERANCE, 0},
+{ 817, 1053106984u, 1449164578u, 1056960316u, 1654931641u, 1062863345u, 1571174098u, 0, SQRT_TOLERANCE, 0},
+{ 818, 1071439010u, 2120487381u, 3226298974u, 2364226633u, 1072004418u, 1037285731u, 0, SQRT_TOLERANCE, 0},
+{ 819, 1075071428u, 1074268944u, 1065730444u, 280016852u, 1073874006u, 3003841767u, 0, SQRT_TOLERANCE, 0},
+{ 820, 1052824608u, 3315127889u, 3236295594u, 2900924954u, 1062679736u, 4204383877u, 0, SQRT_TOLERANCE, 0},
+{ 821, 1048942243u, 2246037502u, 1049691002u, 1496066550u, 1060784284u, 3318248494u, 0, SQRT_TOLERANCE, 0},
+{ 822, 1045523211u, 4191285446u, 3217936236u, 2382392789u, 1059107243u, 2277744408u, 0, SQRT_TOLERANCE, 0},
+{ 823, 1092833308u, 640099844u, 1042152237u, 2064279383u, 1082711073u, 1039517410u, 0, SQRT_TOLERANCE, 0},
+{ 824, 1079913438u, 3468560824u, 1093251038u, 310958750u, 1076230316u, 3833362338u, 0, SQRT_TOLERANCE, 0},
+{ 825, 1096788400u, 1413568905u, 1100941106u, 1627289946u, 1084654085u, 3071012224u, 0, SQRT_TOLERANCE, 0},
+{ 826, 1044065902u, 3797143370u, 3195497539u, 3843275034u, 1058331315u, 3377308626u, 0, SQRT_TOLERANCE, 0},
+{ 827, 1104593745u, 2806642640u, 3201943068u, 2515980718u, 1088624015u, 1764710363u, 0, SQRT_TOLERANCE, 0},
+{ 828, 1086877316u, 632580632u, 1078673506u, 3259601317u, 1079768576u, 2512463005u, 0, SQRT_TOLERANCE, 0},
+{ 829, 1053496927u, 3309678799u, 1049337078u, 3056787074u, 1063088384u, 1725711449u, 0, SQRT_TOLERANCE, 0},
+{ 830, 1074011641u, 2341164249u, 1080834967u, 2810890005u, 1073307462u, 1389366866u, 0, SQRT_TOLERANCE, 0},
+{ 831, 1067019674u, 932124675u, 1093915797u, 662682630u, 1069820839u, 2762305859u, 0, SQRT_TOLERANCE, 0},
+{ 832, 1101746443u, 1367996113u, 3251723684u, 2974064663u, 1087213777u, 2643950195u, 0, SQRT_TOLERANCE, 0},
+{ 833, 1080230731u, 323437999u, 1090499064u, 901457511u, 1076406911u, 478131288u, 0, SQRT_TOLERANCE, 0},
+{ 834, 1088295228u, 4184941840u, 3196770014u, 2458988443u, 1080422136u, 1324379918u, 0, SQRT_TOLERANCE, 0},
+{ 835, 1087618284u, 2023065054u, 3211994098u, 2734612965u, 1080149342u, 4075983968u, 0, SQRT_TOLERANCE, 0},
+{ 836, 1064074694u, 3679267365u, 3237728785u, 1699558211u, 1068380634u, 1012366217u, 0, SQRT_TOLERANCE, 0},
+{ 837, 1088079010u, 1826799031u, 1078709629u, 3986905229u, 1080340982u, 73683265u, 0, SQRT_TOLERANCE, 0},
+{ 838, 1052843785u, 351061688u, 3194386466u, 4105857588u, 1062692901u, 2801211497u, 0, SQRT_TOLERANCE, 0},
+{ 839, 1054128006u, 1365244058u, 1064457319u, 1452191426u, 1063400657u, 3245250245u, 0, SQRT_TOLERANCE, 0},
+{ 840, 1064122385u, 2463030625u, 3215975031u, 3773488326u, 1068405745u, 3911197227u, 0, SQRT_TOLERANCE, 0},
+{ 841, 1103793023u, 752664055u, 1065110394u, 1835931663u, 1088234789u, 2349851322u, 0, SQRT_TOLERANCE, 0},
+{ 842, 1088045088u, 3496172149u, 1089617208u, 109068701u, 1080327805u, 601359943u, 0, SQRT_TOLERANCE, 0},
+{ 843, 1050651439u, 1636966254u, 1086098766u, 2016598298u, 1061585549u, 3681702830u, 0, SQRT_TOLERANCE, 0},
+{ 844, 1050931318u, 3551516956u, 1097969102u, 1317953425u, 1061765762u, 4010345559u, 0, SQRT_TOLERANCE, 0},
+{ 845, 1082348569u, 2977627788u, 1045339018u, 516058480u, 1077468850u, 2502630431u, 0, SQRT_TOLERANCE, 0},
+{ 846, 1089924930u, 3901731263u, 3189566462u, 32272932u, 1081288690u, 774317996u, 0, SQRT_TOLERANCE, 0},
+{ 847, 1077281796u, 1956025297u, 3246628529u, 3840733905u, 1074971826u, 3460167714u, 0, SQRT_TOLERANCE, 0},
+{ 848, 1099818036u, 561057891u, 3198494340u, 4271027193u, 1086254464u, 3189187714u, 0, SQRT_TOLERANCE, 0},
+{ 849, 1103446273u, 692989850u, 3242630588u, 2492225971u, 1088033863u, 2469722507u, 0, SQRT_TOLERANCE, 0},
+{ 850, 1057995749u, 3439913962u, 1067477011u, 2973333638u, 1065344480u, 3040195127u, 0, SQRT_TOLERANCE, 0},
+{ 851, 1066510341u, 877613377u, 1044917899u, 809672798u, 1069600458u, 1220560379u, 0, SQRT_TOLERANCE, 0},
+{ 852, 1074687806u, 905426932u, 1046417457u, 1086320855u, 1073689883u, 3891738956u, 0, SQRT_TOLERANCE, 0},
+{ 853, 1098862981u, 2645567288u, 1051258339u, 557182478u, 1085694617u, 1952982282u, 0, SQRT_TOLERANCE, 0},
+{ 854, 1056574302u, 186287752u, 1061342054u, 4054003419u, 1064593882u, 1277191925u, 0, SQRT_TOLERANCE, 0},
+{ 855, 1097266673u, 3506889716u, 3243866036u, 519056371u, 1084955436u, 1253146977u, 0, SQRT_TOLERANCE, 0},
+{ 856, 1042654053u, 2171898436u, 3246911982u, 1091500784u, 1057640543u, 3319015595u, 0, SQRT_TOLERANCE, 0},
+{ 857, 1096164025u, 368493885u, 3222871893u, 1419055230u, 1084412356u, 3623601574u, 0, SQRT_TOLERANCE, 0},
+{ 858, 1091950572u, 2010971245u, 3188804530u, 1518695799u, 1082307037u, 3692477730u, 0, SQRT_TOLERANCE, 0},
+{ 859, 1057942861u, 1239207795u, 1040192984u, 2199481342u, 1065317754u, 3583138412u, 0, SQRT_TOLERANCE, 0},
+{ 860, 1063494989u, 4264613432u, 3203460972u, 3558930895u, 1068044986u, 1121116424u, 0, SQRT_TOLERANCE, 0},
+{ 861, 1050299283u, 3772748958u, 3227667376u, 309688336u, 1061454580u, 3489910349u, 0, SQRT_TOLERANCE, 0},
+{ 862, 1083259393u, 1077949160u, 1075769893u, 2405271377u, 1077975578u, 2163283318u, 0, SQRT_TOLERANCE, 0},
+{ 863, 1091835152u, 3751608506u, 3232278094u, 930375071u, 1082256608u, 3858841463u, 0, SQRT_TOLERANCE, 0},
+{ 864, 1051133505u, 1518334131u, 3205247482u, 791756713u, 1061889227u, 1233401148u, 0, SQRT_TOLERANCE, 0},
+{ 865, 1047317453u, 2825203170u, 3245054001u, 1822981827u, 1060002582u, 2575170954u, 0, SQRT_TOLERANCE, 0},
+{ 866, 1100016363u, 514474738u, 1089072073u, 3300845441u, 1086354386u, 1510428249u, 0, SQRT_TOLERANCE, 0},
+{ 867, 1068907602u, 247369460u, 3197320093u, 687450958u, 1070783651u, 1407209870u, 0, SQRT_TOLERANCE, 0},
+{ 868, 1104161422u, 2722237629u, 1058272368u, 90602316u, 1088427321u, 1033488541u, 0, SQRT_TOLERANCE, 0},
+{ 869, 1060614787u, 1845900544u, 3231520830u, 3389751458u, 1066629330u, 587670171u, 0, SQRT_TOLERANCE, 0},
+{ 870, 1100051597u, 737689911u, 3195377751u, 3462616966u, 1086371384u, 3993203066u, 0, SQRT_TOLERANCE, 0},
+{ 871, 1076054736u, 3620285831u, 1055501023u, 2708056059u, 1074321592u, 3107724562u, 0, SQRT_TOLERANCE, 0},
+{ 872, 1071981348u, 4073430285u, 1056206159u, 172017902u, 1072300527u, 1206422568u, 0, SQRT_TOLERANCE, 0},
+{ 873, 1065385990u, 2799176222u, 1052706894u, 4083892667u, 1068956275u, 1125625004u, 0, SQRT_TOLERANCE, 0},
+{ 874, 1054795909u, 1562351330u, 1069705601u, 1247765260u, 1063664883u, 1449767613u, 0, SQRT_TOLERANCE, 0},
+{ 875, 1085233651u, 51853475u, 3189080201u, 2783553144u, 1078963340u, 2980621286u, 0, SQRT_TOLERANCE, 0},
+{ 876, 1071970705u, 3851781549u, 3241598113u, 514064046u, 1072293966u, 4246499422u, 0, SQRT_TOLERANCE, 0},
+{ 877, 1100045965u, 934745487u, 3248182437u, 2798581921u, 1086368685u, 2435743120u, 0, SQRT_TOLERANCE, 0},
+{ 878, 1065598845u, 2948648757u, 3232177250u, 4278702895u, 1069097834u, 2375998345u, 0, SQRT_TOLERANCE, 0},
+{ 879, 1072485724u, 4259101461u, 1061606772u, 84229920u, 1072586784u, 545586649u, 0, SQRT_TOLERANCE, 0},
+{ 880, 1050591911u, 3891230598u, 1095924595u, 3049217547u, 1061564240u, 2256144u, 0, SQRT_TOLERANCE, 0},
+{ 881, 1077353053u, 3806018919u, 3243191216u, 280177341u, 1075001834u, 909189286u, 0, SQRT_TOLERANCE, 0},
+{ 882, 1060624530u, 3900344258u, 1063647809u, 4206745890u, 1066633326u, 4119545649u, 0, SQRT_TOLERANCE, 0},
+{ 883, 1080223688u, 2126253040u, 3207248026u, 808507485u, 1076402336u, 1523656667u, 0, SQRT_TOLERANCE, 0},
+{ 884, 1086090317u, 3465685634u, 3230391053u, 3754958214u, 1079333703u, 3201764093u, 0, SQRT_TOLERANCE, 0},
+{ 885, 1102861084u, 461094531u, 1101110393u, 1316091396u, 1087719890u, 431665675u, 0, SQRT_TOLERANCE, 0},
+{ 886, 1064980314u, 4197635149u, 1091873113u, 1240127141u, 1068794989u, 4087232503u, 0, SQRT_TOLERANCE, 0},
+{ 887, 1074333893u, 118603800u, 1105304898u, 4291425557u, 1073499579u, 2341282884u, 0, SQRT_TOLERANCE, 0},
+{ 888, 1065945517u, 3744663425u, 3212482771u, 953662066u, 1069305407u, 716853070u, 0, SQRT_TOLERANCE, 0},
+{ 889, 1085171305u, 3564196690u, 3228101916u, 904305212u, 1078931604u, 2941441890u, 0, SQRT_TOLERANCE, 0},
+{ 890, 1048333111u, 3566257266u, 3235138829u, 2734275140u, 1060456154u, 2961457688u, 0, SQRT_TOLERANCE, 0},
+{ 891, 1096464829u, 606044282u, 3241318094u, 2446416887u, 1084534207u, 1511287830u, 0, SQRT_TOLERANCE, 0},
+{ 892, 1041627284u, 2336116589u, 3197594053u, 2296925138u, 1057144786u, 649471989u, 0, SQRT_TOLERANCE, 0},
+{ 893, 1058567659u, 907670625u, 3240769036u, 1827119006u, 1065601143u, 1652997283u, 0, SQRT_TOLERANCE, 0},
+{ 894, 1044467183u, 2818710946u, 3246059905u, 553394170u, 1058506783u, 186977955u, 0, SQRT_TOLERANCE, 0},
+{ 895, 1042020446u, 4099522736u, 3232742168u, 3718083858u, 1057302429u, 1224234008u, 0, SQRT_TOLERANCE, 0},
+{ 896, 1092371276u, 1059279404u, 1080245336u, 175941677u, 1082475488u, 497911871u, 0, SQRT_TOLERANCE, 0},
+{ 897, 1105189691u, 1650862428u, 1061816101u, 1723201723u, 1088852890u, 3417536716u, 0, SQRT_TOLERANCE, 0},
+{ 898, 1091529166u, 2462163405u, 3218946201u, 3876535372u, 1082111118u, 1513781992u, 0, SQRT_TOLERANCE, 0},
+{ 899, 1084392886u, 495844137u, 1073721460u, 772777946u, 1078483072u, 3832132292u, 0, SQRT_TOLERANCE, 0},
+{ 900, 1052415330u, 458757721u, 3245680321u, 3609892707u, 1062510505u, 3992598146u, 0, SQRT_TOLERANCE, 0},
+{ 901, 1045799308u, 2533012202u, 1079980803u, 3592268374u, 1059232394u, 2668168063u, 0, SQRT_TOLERANCE, 0},
+{ 902, 1055881132u, 4108274117u, 1063045844u, 571992389u, 1064287117u, 1171677987u, 0, SQRT_TOLERANCE, 0},
+{ 903, 1090567271u, 3541110973u, 1096296754u, 3118427427u, 1081549912u, 140601693u, 0, SQRT_TOLERANCE, 0},
+{ 904, 1046496395u, 1213941007u, 1105433735u, 2172963370u, 1059508450u, 3107457966u, 0, SQRT_TOLERANCE, 0},
+{ 905, 1096853359u, 272190288u, 1095452370u, 4026581530u, 1084691923u, 2579691573u, 0, SQRT_TOLERANCE, 0},
+{ 906, 1095583909u, 2843638672u, 1100510986u, 3190536898u, 1084136605u, 1786559035u, 0, SQRT_TOLERANCE, 0},
+{ 907, 1083757094u, 2014317727u, 3247389683u, 2428462015u, 1078193568u, 2356008149u, 0, SQRT_TOLERANCE, 0},
+{ 908, 1093976717u, 688442200u, 1047852515u, 3035186380u, 1083324841u, 2105746957u, 0, SQRT_TOLERANCE, 0},
+{ 909, 1076664212u, 1010095511u, 3221288076u, 405287991u, 1074675587u, 1262826853u, 0, SQRT_TOLERANCE, 0},
+{ 910, 1104810967u, 2983070435u, 1089546472u, 2907918480u, 1088711980u, 1326194828u, 0, SQRT_TOLERANCE, 0},
+{ 911, 1082988121u, 81928569u, 1056007286u, 2740556321u, 1077838407u, 3408513618u, 0, SQRT_TOLERANCE, 0},
+{ 912, 1041110867u, 2076689028u, 1081558619u, 3039159031u, 1056901096u, 66696044u, 0, SQRT_TOLERANCE, 0},
+{ 913, 1047307438u, 1376882094u, 3211003208u, 1296286481u, 1059997296u, 2895252019u, 0, SQRT_TOLERANCE, 0},
+{ 914, 1080114314u, 744133164u, 3200943494u, 955832216u, 1076329543u, 4268918442u, 0, SQRT_TOLERANCE, 0},
+{ 915, 1078806678u, 176522478u, 1069999908u, 2891249491u, 1075747989u, 1079133698u, 0, SQRT_TOLERANCE, 0},
+{ 916, 1043564602u, 3685851715u, 3187829932u, 2363997529u, 1058123158u, 1658549495u, 0, SQRT_TOLERANCE, 0},
+{ 917, 1040244055u, 3974431579u, 1052505165u, 2589067816u, 1056389906u, 2986782993u, 0, SQRT_TOLERANCE, 0},
+{ 918, 1044013141u, 3819109588u, 1048561488u, 969143351u, 1058310923u, 3478948785u, 0, SQRT_TOLERANCE, 0},
+{ 919, 1072639397u, 4246896124u, 1104584799u, 1940097860u, 1072666147u, 3848600418u, 0, SQRT_TOLERANCE, 0},
+{ 920, 1048038468u, 2228686199u, 3220231833u, 777624847u, 1060340580u, 88720588u, 0, SQRT_TOLERANCE, 0},
+{ 921, 1083983658u, 4189906558u, 3203004203u, 854242364u, 1078281556u, 3353832663u, 0, SQRT_TOLERANCE, 0},
+{ 922, 1103910407u, 4089051094u, 3227282692u, 2693170723u, 1088298179u, 1086091072u, 0, SQRT_TOLERANCE, 0},
+{ 923, 1045883607u, 1278581412u, 3239296746u, 1774588717u, 1059268121u, 2167989998u, 0, SQRT_TOLERANCE, 0},
+{ 924, 1074889038u, 1794845306u, 1104879344u, 4135865182u, 1073790034u, 3868303847u, 0, SQRT_TOLERANCE, 0},
+{ 925, 1106449055u, 754938390u, 1061291430u, 2010786993u, 1089566732u, 1912835680u, 0, SQRT_TOLERANCE, 0},
+{ 926, 1073581409u, 2034303731u, 3240176537u, 314147356u, 1073069739u, 721338478u, 0, SQRT_TOLERANCE, 0},
+{ 927, 1083965546u, 567588900u, 3195452230u, 1421366017u, 1078274727u, 3337096634u, 0, SQRT_TOLERANCE, 0},
+{ 928, 1077606107u, 2708717091u, 1071975971u, 1364590470u, 1075103063u, 318110768u, 0, SQRT_TOLERANCE, 0},
+{ 929, 1104653635u, 3461956134u, 3207820115u, 1605709634u, 1088648873u, 4265956437u, 0, SQRT_TOLERANCE, 0},
+{ 930, 1065302996u, 1497124553u, 1051715442u, 916736957u, 1068915415u, 2084577864u, 0, SQRT_TOLERANCE, 0},
+{ 931, 1058468363u, 834914365u, 1064667143u, 2839166298u, 1065560347u, 2628317795u, 0, SQRT_TOLERANCE, 0},
+{ 932, 1057279949u, 2139295776u, 1062816721u, 914592523u, 1064947318u, 2814349975u, 0, SQRT_TOLERANCE, 0},
+{ 933, 1042153283u, 851569132u, 1058503154u, 1399378677u, 1057351784u, 3774620876u, 0, SQRT_TOLERANCE, 0},
+{ 934, 1086054049u, 3897202342u, 3245382590u, 246600375u, 1079320031u, 1244349683u, 0, SQRT_TOLERANCE, 0},
+{ 935, 1077976660u, 3620429520u, 1055627557u, 229305u, 1075253123u, 3013558791u, 0, SQRT_TOLERANCE, 0},
+{ 936, 1083958833u, 3641997865u, 3206673888u, 93720614u, 1078272188u, 2238994166u, 0, SQRT_TOLERANCE, 0},
+{ 937, 1080324787u, 32766320u, 1062084905u, 3668443038u, 1076466812u, 724880903u, 0, SQRT_TOLERANCE, 0},
+{ 938, 1075815348u, 2039713492u, 3248699388u, 1346210821u, 1074167781u, 628737544u, 0, SQRT_TOLERANCE, 0},
+{ 939, 1093050016u, 1335820726u, 3191756860u, 1808427032u, 1082845040u, 1168265261u, 0, SQRT_TOLERANCE, 0},
+{ 940, 1061442763u, 650692001u, 1103515670u, 2253348763u, 1067024832u, 2844487097u, 0, SQRT_TOLERANCE, 0},
+{ 941, 1043911539u, 2372623300u, 3210185343u, 3200572848u, 1058270758u, 1094784534u, 0, SQRT_TOLERANCE, 0},
+{ 942, 1100796069u, 762317532u, 3194595095u, 3192607437u, 1086683339u, 589937548u, 0, SQRT_TOLERANCE, 0},
+{ 943, 1062262701u, 217775356u, 3232827087u, 2969367386u, 1067477620u, 1640907208u, 0, SQRT_TOLERANCE, 0},
+{ 944, 1057172551u, 3621353969u, 1077994795u, 3873976266u, 1064879367u, 624834462u, 0, SQRT_TOLERANCE, 0},
+{ 945, 1091301987u, 268372152u, 3221764390u, 3216978962u, 1081993122u, 1740668065u, 0, SQRT_TOLERANCE, 0},
+{ 946, 1098953963u, 142942404u, 1075322987u, 1746449109u, 1085742890u, 916346833u, 0, SQRT_TOLERANCE, 0},
+{ 947, 1104006296u, 496534875u, 3254522293u, 2532372502u, 1088348487u, 2351791740u, 0, SQRT_TOLERANCE, 0},
+{ 948, 1102741893u, 2999955409u, 3222793392u, 1868977643u, 1087674356u, 982677099u, 0, SQRT_TOLERANCE, 0},
+{ 949, 1074319042u, 3353193428u, 3218469191u, 3326244297u, 1073491165u, 2764397114u, 0, SQRT_TOLERANCE, 0},
+{ 950, 1068218799u, 73646871u, 3231442171u, 3711510104u, 1070451004u, 1822251312u, 0, SQRT_TOLERANCE, 0},
+{ 951, 1090483524u, 218135177u, 3198908856u, 3082199105u, 1081503579u, 4285607432u, 0, SQRT_TOLERANCE, 0},
+{ 952, 1068068480u, 1061628117u, 3248859043u, 86776158u, 1070368515u, 3293074727u, 0, SQRT_TOLERANCE, 0},
+{ 953, 1061001026u, 938869114u, 1087911145u, 2416710759u, 1066779213u, 859029982u, 0, SQRT_TOLERANCE, 0},
+{ 954, 1095576832u, 2970853959u, 3239543429u, 1887505029u, 1084132903u, 200004974u, 0, SQRT_TOLERANCE, 0},
+{ 955, 1090245139u, 1337895935u, 1076463812u, 1172733328u, 1081415964u, 3919088725u, 0, SQRT_TOLERANCE, 0},
+{ 956, 1049139928u, 1469010822u, 3229583535u, 551399515u, 1060900690u, 3691380790u, 0, SQRT_TOLERANCE, 0},
+{ 957, 1074118123u, 1849711538u, 1049053713u, 1744276190u, 1073373307u, 1734194338u, 0, SQRT_TOLERANCE, 0},
+{ 958, 1094655132u, 2976596113u, 3192137295u, 3033242648u, 1083592616u, 3269714685u, 0, SQRT_TOLERANCE, 0},
+{ 959, 1098698481u, 876810930u, 3197470945u, 2571587447u, 1085634600u, 2974954006u, 0, SQRT_TOLERANCE, 0},
+{ 960, 1094287162u, 4007797282u, 3225853845u, 4069319648u, 1083454116u, 1111847775u, 0, SQRT_TOLERANCE, 0},
+{ 961, 1047279982u, 3840538373u, 1043189552u, 3668774580u, 1059982733u, 1785743553u, 0, SQRT_TOLERANCE, 0},
+{ 962, 1070128056u, 200857661u, 3229758439u, 3359367736u, 1071395896u, 2032866210u, 0, SQRT_TOLERANCE, 0},
+{ 963, 1101314221u, 111868139u, 3227902082u, 2366064003u, 1086963739u, 4196686705u, 0, SQRT_TOLERANCE, 0},
+{ 964, 1044195166u, 3510904416u, 3222131653u, 3822770497u, 1058380034u, 3747406404u, 0, SQRT_TOLERANCE, 0},
+{ 965, 1095192067u, 789151814u, 1099269239u, 2958956055u, 1083920118u, 3070815874u, 0, SQRT_TOLERANCE, 0},
+{ 966, 1084679320u, 722163228u, 1105524559u, 1534462169u, 1078661356u, 2462041756u, 0, SQRT_TOLERANCE, 0},
+{ 967, 1046586062u, 2207037106u, 3208952465u, 1231254630u, 1059570061u, 3303006986u, 0, SQRT_TOLERANCE, 0},
+{ 968, 1050400412u, 3838689849u, 3198769679u, 1302617170u, 1061493461u, 1255872586u, 0, SQRT_TOLERANCE, 0},
+{ 969, 1085938906u, 2527556476u, 3240373426u, 124352692u, 1079275699u, 2132957795u, 0, SQRT_TOLERANCE, 0},
+{ 970, 1052057157u, 3502371499u, 1043411944u, 4190072016u, 1062363584u, 1166493977u, 0, SQRT_TOLERANCE, 0},
+{ 971, 1064676142u, 1798470077u, 3200116917u, 3421833729u, 1068670638u, 2243988751u, 0, SQRT_TOLERANCE, 0},
+{ 972, 1046031308u, 3653237931u, 3204255012u, 3683870669u, 1059328381u, 2115495913u, 0, SQRT_TOLERANCE, 0},
+{ 973, 1053588582u, 376530104u, 1073853547u, 565755892u, 1063137567u, 1274861223u, 0, SQRT_TOLERANCE, 0},
+{ 974, 1095020203u, 558292492u, 1051772749u, 4267873474u, 1083816419u, 1693486820u, 0, SQRT_TOLERANCE, 0},
+{ 975, 1077289061u, 509637100u, 3212030069u, 215050379u, 1074974919u, 2045190657u, 0, SQRT_TOLERANCE, 0},
+{ 976, 1092057101u, 3571665665u, 3188628584u, 757824767u, 1082351806u, 2909573129u, 0, SQRT_TOLERANCE, 0},
+{ 977, 1067315689u, 998858159u, 1063077962u, 436029885u, 1069933448u, 907635004u, 0, SQRT_TOLERANCE, 0},
+{ 978, 1058463317u, 996300405u, 3193842624u, 80548098u, 1065558239u, 135023660u, 0, SQRT_TOLERANCE, 0},
+{ 979, 1081365192u, 3876129407u, 3215332180u, 2226970413u, 1077020759u, 1534667039u, 0, SQRT_TOLERANCE, 0},
+{ 980, 1090125305u, 200013509u, 3224552716u, 414878724u, 1081369753u, 3459975001u, 0, SQRT_TOLERANCE, 0},
+{ 981, 1083133445u, 309319541u, 1048979765u, 1261662434u, 1077913221u, 1869288719u, 0, SQRT_TOLERANCE, 0},
+{ 982, 1089252639u, 4062255924u, 3224274128u, 4289485681u, 1080969958u, 3153974956u, 0, SQRT_TOLERANCE, 0},
+{ 983, 1088652436u, 1611969213u, 1053890378u, 3774617276u, 1080622543u, 2166078761u, 0, SQRT_TOLERANCE, 0},
+{ 984, 1080412763u, 1752164782u, 3239587974u, 612223386u, 1076520965u, 3008339372u, 0, SQRT_TOLERANCE, 0},
+{ 985, 1041545782u, 2024044989u, 1074932678u, 3259111307u, 1057109504u, 417464780u, 0, SQRT_TOLERANCE, 0},
+{ 986, 1053207518u, 2564965629u, 1093571065u, 169360454u, 1062924111u, 1475578926u, 0, SQRT_TOLERANCE, 0},
+{ 987, 1089599090u, 1860101737u, 3191222372u, 1676437468u, 1081144309u, 1506943838u, 0, SQRT_TOLERANCE, 0},
+{ 988, 1059802968u, 588387057u, 3192103292u, 2495288012u, 1066242022u, 408509364u, 0, SQRT_TOLERANCE, 0},
+{ 989, 1045672057u, 659070058u, 1073095700u, 1393632068u, 1059176387u, 955643869u, 0, SQRT_TOLERANCE, 0},
+{ 990, 1070199615u, 4276187829u, 3217553330u, 1868253275u, 1071436055u, 3673736417u, 0, SQRT_TOLERANCE, 0},
+{ 991, 1075736624u, 2085481575u, 3215994784u, 800910002u, 1074139519u, 161119849u, 0, SQRT_TOLERANCE, 0},
+{ 992, 1056934836u, 1950570756u, 3200582211u, 941022151u, 1064728410u, 4059681546u, 0, SQRT_TOLERANCE, 0},
+{ 993, 1057530368u, 2075610870u, 3250142022u, 3605152103u, 1065096039u, 1148369410u, 0, SQRT_TOLERANCE, 0},
+{ 994, 1053355602u, 3792931748u, 3204857863u, 804393211u, 1063009988u, 1880669775u, 0, SQRT_TOLERANCE, 0},
+{ 995, 1106162722u, 3430071177u, 3226288311u, 3652522729u, 1089427546u, 1065853679u, 0, SQRT_TOLERANCE, 0},
+{ 996, 1053831054u, 236884699u, 3227874605u, 2193269825u, 1063262133u, 1982882090u, 0, SQRT_TOLERANCE, 0},
+{ 997, 1064936593u, 2744231849u, 1046186036u, 771053722u, 1068777832u, 3842742177u, 0, SQRT_TOLERANCE, 0},
+{ 998, 1083996036u, 3000189819u, 1096500901u, 2057239777u, 1078286204u, 1374590418u, 0, SQRT_TOLERANCE, 0},
+{ 999, 1093835581u, 205759408u, 3244643377u, 2702292618u, 1083261193u, 3135830611u, 0, SQRT_TOLERANCE, 0},
+
+
+// AUTOMATICALLY GENERATED VECTORS STOP
+
+};
+
+#endif // CYGONCE_LIBM_SQRT_H multiple inclusion protection
+
+// EOF sqrt.h
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/sqrtf.c b/ecos/packages/language/c/libm/current/tests/vectors/sqrtf.c
new file mode 100644
index 0000000..ba10fd2
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/sqrtf.c
@@ -0,0 +1,127 @@
+//===========================================================================
+//
+// sqrtf.c
+//
+// Test of sqrtf() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// Declarations for test system:
+//
+// TESTCASE_TYPE=CYG_TEST_MODULE
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include <cyg/infra/testcase.h> // Test infrastructure
+#include <math.h> // Header for this package
+#include <sys/ieeefp.h> // Cyg_libm_ieee_double_shape_type
+#include "vectors/vector_support_float.h"// extra support for math tests
+
+#include "vectors/sqrtf.h"
+
+// FUNCTIONS
+
+#ifdef CYGSEM_LIBM_IEEE_API_INLINE
+float Sqrtf(float x)
+{
+ return sqrtf(x);
+}
+#endif
+
+static void
+test( CYG_ADDRWORD data )
+{
+ cyg_ucount32 vec_size;
+ cyg_bool ret;
+
+ vec_size = sizeof(sqrtf_vec) / sizeof(Cyg_libm_test_float_vec_t);
+ ret = doTestVecFloat(
+#ifndef CYGSEM_LIBM_IEEE_API_INLINE
+ (CYG_ADDRWORD) &sqrtf,
+#else
+ (CYG_ADDRWORD) &Sqrtf,
+#endif
+ CYG_LIBM_TEST_VEC_FLOAT,
+ CYG_LIBM_TEST_VEC_NONE, CYG_LIBM_TEST_VEC_FLOAT,
+ &sqrtf_vec[0], vec_size );
+
+ if (ret==true)
+ {
+ CYG_TEST_PASS("sqrtf() is stable");
+ } // if
+ else
+ {
+ CYG_TEST_FAIL("sqrtf() failed tests");
+ } // else
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for Math "
+ "library sqrtf() function");
+} // test()
+
+
+int
+main(int argc, char *argv[])
+{
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for Math library "
+ "sqrtf() function");
+
+ START_TEST( test );
+
+ CYG_TEST_PASS_FINISH("Testing is not applicable to this configuration");
+
+} // main()
+
+// EOF sqrtf.c
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/sqrtf.h b/ecos/packages/language/c/libm/current/tests/vectors/sqrtf.h
new file mode 100644
index 0000000..224bcd8
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/sqrtf.h
@@ -0,0 +1,362 @@
+#ifndef CYGONCE_LIBM_SQRT_H
+#define CYGONCE_LIBM_SQRT_H
+//===========================================================================
+//
+// sqrtf.h
+//
+// Test vectors for testing of sqrtf() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage: #include "vectors/sqrtf.h"
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include "vectors/vector_support_float.h"// extra support for math tests
+
+#define SQRT_TOLERANCE 1.0E-04
+
+static const Cyg_libm_test_float_vec_t sqrtf_vec[] = {
+
+// AUTOMATICALLY GENERATED VECTORS START
+
+{0, 3214514586u, 1090024059u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{1, 3214430700u, 1051524793u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{2, 3214346813u, 3232101343u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{3, 3214262927u, 3201242716u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{4, 3214179041u, 1100049309u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{5, 3214095155u, 1054478713u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{6, 3214011269u, 3202039382u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{7, 3213927383u, 1046089230u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{8, 3213843497u, 1045840574u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{9, 3213759611u, 1068931671u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{10, 3213675725u, 3222889559u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{11, 3213591839u, 1088899021u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{12, 3213507953u, 1066856791u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{13, 3213424067u, 1080833116u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{14, 3213340180u, 3191644264u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{15, 3213256294u, 3239903247u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{16, 3213172408u, 3198462609u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{17, 3213088522u, 3203741999u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{18, 3213004636u, 3249401130u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{19, 3212920750u, 3197817016u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{20, 3212836864u, 3231746400u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{21, 3212669092u, 1096608669u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{22, 3212501320u, 1045286891u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{23, 3212333548u, 1049342524u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{24, 3212165775u, 1078472138u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{25, 3211998003u, 1099527247u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{26, 3211830231u, 3189610016u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{27, 3211662459u, 1083791358u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{28, 3211494687u, 3214426435u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{29, 3211326915u, 1056316170u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{30, 3211159142u, 3251828686u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{31, 3210991370u, 3240257920u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{32, 3210823598u, 3237899261u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{33, 3210655826u, 3226869477u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{34, 3210488054u, 1106394906u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{35, 3210320282u, 3231581370u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{36, 3210152509u, 1061652681u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{37, 3209984737u, 3215417793u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{38, 3209816965u, 3238067573u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{39, 3209649193u, 1045917232u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{40, 3209481421u, 1066381836u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{41, 3209313649u, 1060345752u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{42, 3209145876u, 1052460275u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{43, 3208978104u, 3196647153u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{44, 3208810332u, 1081948134u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{45, 3208642560u, 3221584595u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{46, 3208474788u, 1086226574u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{47, 3208307016u, 3251401196u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{48, 3208139244u, 1083520023u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{49, 3207971471u, 1050330591u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{50, 3207803699u, 1077406406u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{51, 3207635927u, 3220729740u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{52, 3207468155u, 1046304788u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{53, 3207300383u, 1094907481u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{54, 3207132611u, 1065432625u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{55, 3206964838u, 1082985198u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{56, 3206797066u, 3222902057u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{57, 3206629294u, 3249723525u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{58, 3206461522u, 1067056698u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{59, 3206293750u, 3209056785u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{60, 3206125978u, 1106787580u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{61, 3205958205u, 1104232051u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{62, 3205790433u, 1105467109u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{63, 3205622661u, 3214251949u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{64, 3205454889u, 1103073830u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{65, 3205287117u, 1067009473u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{66, 3205119345u, 1101371955u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{67, 3204951572u, 1099430098u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{68, 3204783800u, 3188865420u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{69, 3204616028u, 1046255144u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{70, 3204448256u, 3231633258u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{71, 3204112712u, 3202219056u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{72, 3203777167u, 1048653554u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{73, 3203441623u, 3221570188u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{74, 3203106079u, 1099107978u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{75, 3202770534u, 1087299442u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{76, 3202434990u, 3197285510u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{77, 3202099446u, 1090971734u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{78, 3201763901u, 3252967851u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{79, 3201428357u, 3206610957u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{80, 3201092813u, 1073415902u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{81, 3200757268u, 3190678390u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{82, 3200421724u, 3205337291u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{83, 3200086180u, 3216653996u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{84, 3199750636u, 3240198679u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{85, 3199415091u, 3251167793u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{86, 3199079547u, 1079286273u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{87, 3198744003u, 3231412671u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{88, 3198408458u, 1048317852u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{89, 3198072914u, 3192982124u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{90, 3197737370u, 1104691287u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{91, 3197401825u, 1082507103u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{92, 3197066281u, 1096584871u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{93, 3196730737u, 1103798670u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{94, 3196395192u, 3240157452u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{95, 3196059648u, 3214382367u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{96, 3195388559u, 3240200923u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{97, 3194717471u, 1103793878u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{98, 3194046382u, 1077424413u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{99, 3193375293u, 3227593179u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{100, 3192704205u, 1076579751u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{101, 3192033116u, 1069112254u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{102, 3191362028u, 3215075200u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{103, 3190690939u, 1060430241u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{104, 3190019850u, 3237198975u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{105, 3189348762u, 3202753937u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{106, 3188677673u, 1062342831u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{107, 3188006584u, 1066474375u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{108, 3186999951u, 3239267288u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{109, 3185657774u, 3210508124u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{110, 3184315597u, 3241241441u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{111, 3182973420u, 3243941101u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{112, 3181631242u, 1074261978u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{113, 3180289065u, 1061635587u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{114, 3178611343u, 1071440059u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{115, 3175926989u, 1072073912u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{116, 3173242634u, 3232757923u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{117, 3170222735u, 1078073146u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{118, 3164854026u, 1081649113u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{119, 3156465418u, 3222407050u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{120, 646742016u, 1105124431u, 856038076u, 0, SQRT_TOLERANCE, 0},
+{121, 1008981770u, 3198136112u, 1036831949u, 0, SQRT_TOLERANCE, 0},
+{122, 1017370378u, 3215264397u, 1041289411u, 0, SQRT_TOLERANCE, 0},
+{123, 1022739087u, 1061072607u, 1043422380u, 0, SQRT_TOLERANCE, 0},
+{124, 1025758986u, 1082896196u, 1045220557u, 0, SQRT_TOLERANCE, 0},
+{125, 1028443341u, 3187675097u, 1046804782u, 0, SQRT_TOLERANCE, 0},
+{126, 1031127695u, 3234748208u, 1048237031u, 0, SQRT_TOLERANCE, 0},
+{127, 1032805417u, 1046724025u, 1049065060u, 0, SQRT_TOLERANCE, 0},
+{128, 1034147594u, 1093012318u, 1049678019u, 0, SQRT_TOLERANCE, 0},
+{129, 1035489772u, 1069733884u, 1050253722u, 0, SQRT_TOLERANCE, 0},
+{130, 1036831949u, 3204997271u, 1050798235u, 0, SQRT_TOLERANCE, 0},
+{131, 1038174126u, 3213604117u, 1051316138u, 0, SQRT_TOLERANCE, 0},
+{132, 1039516303u, 3246333414u, 1051810988u, 0, SQRT_TOLERANCE, 0},
+{133, 1040522936u, 1082858682u, 1052285615u, 0, SQRT_TOLERANCE, 0},
+{134, 1041194025u, 1083603224u, 1052742311u, 0, SQRT_TOLERANCE, 0},
+{135, 1041865114u, 3235600523u, 1053182968u, 0, SQRT_TOLERANCE, 0},
+{136, 1042536202u, 1051824459u, 1053609165u, 0, SQRT_TOLERANCE, 0},
+{137, 1043207291u, 3250673860u, 1054022239u, 0, SQRT_TOLERANCE, 0},
+{138, 1043878380u, 1049514449u, 1054423332u, 0, SQRT_TOLERANCE, 0},
+{139, 1044549468u, 1054539840u, 1054813430u, 0, SQRT_TOLERANCE, 0},
+{140, 1045220557u, 1045993352u, 1055193390u, 0, SQRT_TOLERANCE, 0},
+{141, 1045891645u, 3229182089u, 1055563964u, 0, SQRT_TOLERANCE, 0},
+{142, 1046562734u, 1071630912u, 1055925816u, 0, SQRT_TOLERANCE, 0},
+{143, 1047233823u, 1063422305u, 1056279532u, 0, SQRT_TOLERANCE, 0},
+{144, 1047904911u, 1040201163u, 1056625639u, 0, SQRT_TOLERANCE, 0},
+{145, 1048576000u, 1101553990u, 1056964608u, 0, SQRT_TOLERANCE, 0},
+{146, 1048911544u, 1042678728u, 1057130735u, 0, SQRT_TOLERANCE, 0},
+{147, 1049247089u, 1070002807u, 1057293697u, 0, SQRT_TOLERANCE, 0},
+{148, 1049582633u, 1104170406u, 1057453668u, 0, SQRT_TOLERANCE, 0},
+{149, 1049918177u, 1060859316u, 1057610807u, 0, SQRT_TOLERANCE, 0},
+{150, 1050253722u, 1067940450u, 1057765260u, 0, SQRT_TOLERANCE, 0},
+{151, 1050589266u, 3236511256u, 1057917159u, 0, SQRT_TOLERANCE, 0},
+{152, 1050924810u, 3250520938u, 1058066627u, 0, SQRT_TOLERANCE, 0},
+{153, 1051260355u, 3209806504u, 1058213777u, 0, SQRT_TOLERANCE, 0},
+{154, 1051595899u, 3202890678u, 1058358714u, 0, SQRT_TOLERANCE, 0},
+{155, 1051931443u, 3203138231u, 1058501535u, 0, SQRT_TOLERANCE, 0},
+{156, 1052266988u, 1061134072u, 1058642330u, 0, SQRT_TOLERANCE, 0},
+{157, 1052602532u, 1055663370u, 1058781182u, 0, SQRT_TOLERANCE, 0},
+{158, 1052938076u, 3199478070u, 1058918171u, 0, SQRT_TOLERANCE, 0},
+{159, 1053273620u, 3196654963u, 1059053368u, 0, SQRT_TOLERANCE, 0},
+{160, 1053609165u, 3232578253u, 1059186843u, 0, SQRT_TOLERANCE, 0},
+{161, 1053944709u, 1050082319u, 1059318660u, 0, SQRT_TOLERANCE, 0},
+{162, 1054280253u, 3253385962u, 1059448879u, 0, SQRT_TOLERANCE, 0},
+{163, 1054615798u, 1070166500u, 1059577556u, 0, SQRT_TOLERANCE, 0},
+{164, 1054951342u, 3244621407u, 1059704746u, 0, SQRT_TOLERANCE, 0},
+{165, 1055286886u, 3200798890u, 1059830499u, 0, SQRT_TOLERANCE, 0},
+{166, 1055622431u, 3223590310u, 1059954862u, 0, SQRT_TOLERANCE, 0},
+{167, 1055957975u, 1075961161u, 1060077880u, 0, SQRT_TOLERANCE, 0},
+{168, 1056293519u, 1078123323u, 1060199596u, 0, SQRT_TOLERANCE, 0},
+{169, 1056629064u, 3210844787u, 1060320051u, 0, SQRT_TOLERANCE, 0},
+{170, 1056964608u, 3246307879u, 1060439283u, 0, SQRT_TOLERANCE, 0},
+{171, 1057132380u, 3188814424u, 1060557329u, 0, SQRT_TOLERANCE, 0},
+{172, 1057300152u, 3221436876u, 1060674223u, 0, SQRT_TOLERANCE, 0},
+{173, 1057467924u, 3200554324u, 1060789998u, 0, SQRT_TOLERANCE, 0},
+{174, 1057635697u, 3239246636u, 1060904686u, 0, SQRT_TOLERANCE, 0},
+{175, 1057803469u, 3223587064u, 1061018316u, 0, SQRT_TOLERANCE, 0},
+{176, 1057971241u, 3250158026u, 1061130919u, 0, SQRT_TOLERANCE, 0},
+{177, 1058139013u, 1106085272u, 1061242520u, 0, SQRT_TOLERANCE, 0},
+{178, 1058306785u, 1095245453u, 1061353147u, 0, SQRT_TOLERANCE, 0},
+{179, 1058474557u, 1041444355u, 1061462824u, 0, SQRT_TOLERANCE, 0},
+{180, 1058642330u, 1097465301u, 1061571576u, 0, SQRT_TOLERANCE, 0},
+{181, 1058810102u, 3250239076u, 1061679425u, 0, SQRT_TOLERANCE, 0},
+{182, 1058977874u, 1084039594u, 1061786393u, 0, SQRT_TOLERANCE, 0},
+{183, 1059145646u, 1063771493u, 1061892502u, 0, SQRT_TOLERANCE, 0},
+{184, 1059313418u, 1103919063u, 1061997773u, 0, SQRT_TOLERANCE, 0},
+{185, 1059481190u, 3194616071u, 1062102224u, 0, SQRT_TOLERANCE, 0},
+{186, 1059648963u, 3221613219u, 1062205875u, 0, SQRT_TOLERANCE, 0},
+{187, 1059816735u, 3208334452u, 1062308743u, 0, SQRT_TOLERANCE, 0},
+{188, 1059984507u, 1061894279u, 1062410847u, 0, SQRT_TOLERANCE, 0},
+{189, 1060152279u, 3209762784u, 1062512202u, 0, SQRT_TOLERANCE, 0},
+{190, 1060320051u, 3206165386u, 1062612826u, 0, SQRT_TOLERANCE, 0},
+{191, 1060487823u, 1057079837u, 1062712733u, 0, SQRT_TOLERANCE, 0},
+{192, 1060655596u, 3217432469u, 1062811940u, 0, SQRT_TOLERANCE, 0},
+{193, 1060823368u, 1079368611u, 1062910460u, 0, SQRT_TOLERANCE, 0},
+{194, 1060991140u, 3243343143u, 1063008307u, 0, SQRT_TOLERANCE, 0},
+{195, 1061158912u, 1041548088u, 1063105495u, 0, SQRT_TOLERANCE, 0},
+{196, 1061326684u, 1045807374u, 1063202038u, 0, SQRT_TOLERANCE, 0},
+{197, 1061494456u, 3212131720u, 1063297947u, 0, SQRT_TOLERANCE, 0},
+{198, 1061662228u, 1052187689u, 1063393236u, 0, SQRT_TOLERANCE, 0},
+{199, 1061830001u, 1102624859u, 1063487916u, 0, SQRT_TOLERANCE, 0},
+{200, 1061997773u, 3246176356u, 1063581998u, 0, SQRT_TOLERANCE, 0},
+{201, 1062165545u, 1051558014u, 1063675494u, 0, SQRT_TOLERANCE, 0},
+{202, 1062333317u, 3207725532u, 1063768415u, 0, SQRT_TOLERANCE, 0},
+{203, 1062501089u, 3190303581u, 1063860771u, 0, SQRT_TOLERANCE, 0},
+{204, 1062668861u, 3230415151u, 1063952572u, 0, SQRT_TOLERANCE, 0},
+{205, 1062836634u, 1090646554u, 1064043829u, 0, SQRT_TOLERANCE, 0},
+{206, 1063004406u, 1046063872u, 1064134550u, 0, SQRT_TOLERANCE, 0},
+{207, 1063172178u, 3194111199u, 1064224745u, 0, SQRT_TOLERANCE, 0},
+{208, 1063339950u, 1047020885u, 1064314424u, 0, SQRT_TOLERANCE, 0},
+{209, 1063507722u, 3193450280u, 1064403594u, 0, SQRT_TOLERANCE, 0},
+{210, 1063675494u, 3235452527u, 1064492265u, 0, SQRT_TOLERANCE, 0},
+{211, 1063843267u, 3219096387u, 1064580444u, 0, SQRT_TOLERANCE, 0},
+{212, 1064011039u, 3200792376u, 1064668140u, 0, SQRT_TOLERANCE, 0},
+{213, 1064178811u, 3237045253u, 1064755361u, 0, SQRT_TOLERANCE, 0},
+{214, 1064346583u, 3206926643u, 1064842114u, 0, SQRT_TOLERANCE, 0},
+{215, 1064514355u, 1085095743u, 1064928407u, 0, SQRT_TOLERANCE, 0},
+{216, 1064682127u, 1099828675u, 1065014247u, 0, SQRT_TOLERANCE, 0},
+{217, 1064849900u, 1102759382u, 1065099641u, 0, SQRT_TOLERANCE, 0},
+{218, 1065017672u, 1091945628u, 1065184596u, 0, SQRT_TOLERANCE, 0},
+{219, 1065185444u, 1096533424u, 1065269119u, 0, SQRT_TOLERANCE, 0},
+{220, 1065353216u, 3212698915u, 1065353216u, 0, SQRT_TOLERANCE, 0},
+{221, 1065437102u, 3229111426u, 1065395055u, 0, SQRT_TOLERANCE, 0},
+{222, 1065520988u, 1089760910u, 1065436687u, 0, SQRT_TOLERANCE, 0},
+{223, 1065604874u, 1075198900u, 1065478115u, 0, SQRT_TOLERANCE, 0},
+{224, 1065688760u, 1065221325u, 1065519343u, 0, SQRT_TOLERANCE, 0},
+{225, 1065772646u, 3235313361u, 1065560373u, 0, SQRT_TOLERANCE, 0},
+{226, 1065856532u, 1042055360u, 1065601209u, 0, SQRT_TOLERANCE, 0},
+{227, 1065940419u, 3194723421u, 1065641852u, 0, SQRT_TOLERANCE, 0},
+{228, 1066024305u, 3212424262u, 1065682305u, 0, SQRT_TOLERANCE, 0},
+{229, 1066108191u, 3241512456u, 1065722572u, 0, SQRT_TOLERANCE, 0},
+{230, 1066192077u, 3211544311u, 1065762654u, 0, SQRT_TOLERANCE, 0},
+{231, 1066275963u, 1058576726u, 1065802555u, 0, SQRT_TOLERANCE, 0},
+{232, 1066359849u, 3205004060u, 1065842276u, 0, SQRT_TOLERANCE, 0},
+{233, 1066443735u, 3223356436u, 1065881821u, 0, SQRT_TOLERANCE, 0},
+{234, 1066527621u, 1098306332u, 1065921190u, 0, SQRT_TOLERANCE, 0},
+{235, 1066611507u, 1091262633u, 1065960388u, 0, SQRT_TOLERANCE, 0},
+{236, 1066695393u, 3194927008u, 1065999415u, 0, SQRT_TOLERANCE, 0},
+{237, 1066779279u, 1066368383u, 1066038275u, 0, SQRT_TOLERANCE, 0},
+{238, 1066863165u, 1098487295u, 1066076969u, 0, SQRT_TOLERANCE, 0},
+{239, 1066947052u, 1070999426u, 1066115499u, 0, SQRT_TOLERANCE, 0},
+{240, 3234402267u, 1101098363u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{241, 3231108068u, 1078368488u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{242, 3226013659u, 3230316437u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{243, 3217625051u, 1079833442u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{244, 0u, 1052873711u, 0u, 0, SQRT_TOLERANCE, 0},
+{245, 1070141403u, 1085015978u, 1067478169u, 0, SQRT_TOLERANCE, 0},
+{246, 1078530011u, 1074309900u, 1071833029u, 0, SQRT_TOLERANCE, 0},
+{247, 1083624420u, 3228615456u, 1074458227u, 0, SQRT_TOLERANCE, 0},
+{248, 3253731328u, 3230392165u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{249, 3252840038u, 3238056647u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{250, 3251948749u, 1048120593u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{251, 3251057459u, 1086112947u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{252, 3250166170u, 1100880260u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{253, 3249274880u, 3232200256u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{254, 3248383590u, 1076097908u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{255, 3247492301u, 1064816262u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{256, 3246601011u, 1065280276u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{257, 3245028147u, 1078398157u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{258, 3243245568u, 1103272172u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{259, 3241462989u, 3210023352u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{260, 3239680410u, 1085153597u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{261, 3237792973u, 1042831668u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{262, 3234227814u, 1065483445u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{263, 3230662656u, 3222430705u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{264, 3224580915u, 1084451053u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{265, 3213675725u, 1092243422u, 2143289344u, EDOM, SQRT_TOLERANCE, 0},
+{266, 1058642330u, 1071545057u, 1061571576u, 0, SQRT_TOLERANCE, 0},
+{267, 1075000115u, 3241990046u, 1069686562u, 0, SQRT_TOLERANCE, 0},
+{268, 1082130432u, 1079333374u, 1073741824u, 0, SQRT_TOLERANCE, 0},
+{269, 1085695590u, 3242081486u, 1075366980u, 0, SQRT_TOLERANCE, 0},
+{270, 1089260749u, 1043425732u, 1076762956u, 0, SQRT_TOLERANCE, 0},
+{271, 1091672474u, 3211529757u, 1078005840u, 0, SQRT_TOLERANCE, 0},
+{272, 1093455053u, 3241441539u, 1079137105u, 0, SQRT_TOLERANCE, 0},
+{273, 1095237632u, 1074522705u, 1080182320u, 0, SQRT_TOLERANCE, 0},
+{274, 1097020211u, 1088658621u, 1081158565u, 0, SQRT_TOLERANCE, 0},
+{275, 1098802790u, 3224596567u, 1082077921u, 0, SQRT_TOLERANCE, 0},
+{276, 1099746509u, 1086207177u, 1082539870u, 0, SQRT_TOLERANCE, 0},
+{277, 1100637798u, 1079361728u, 1082954983u, 0, SQRT_TOLERANCE, 0},
+{278, 1101529088u, 1090937016u, 1083352182u, 0, SQRT_TOLERANCE, 0},
+{279, 1102420378u, 1086260896u, 1083733603u, 0, SQRT_TOLERANCE, 0},
+{280, 1103311667u, 3194387916u, 1084100991u, 0, SQRT_TOLERANCE, 0},
+{281, 1104202957u, 3216442625u, 1084455788u, 0, SQRT_TOLERANCE, 0},
+{282, 1105094246u, 1063475914u, 1084799206u, 0, SQRT_TOLERANCE, 0},
+{283, 1105985536u, 3236646101u, 1085132275u, 0, SQRT_TOLERANCE, 0}
+
+// AUTOMATICALLY GENERATED VECTORS STOP
+
+};
+
+#endif // CYGONCE_LIBM_SQRT_H multiple inclusion protection
+
+// EOF sqrtf.h
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/tan.c b/ecos/packages/language/c/libm/current/tests/vectors/tan.c
new file mode 100644
index 0000000..d1700a2
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/tan.c
@@ -0,0 +1,115 @@
+//===========================================================================
+//
+// tan.c
+//
+// Test of tan() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// Declarations for test system:
+//
+// TESTCASE_TYPE=CYG_TEST_MODULE
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include <cyg/infra/testcase.h> // Test infrastructure
+#include <math.h> // Header for this package
+#include <sys/ieeefp.h> // Cyg_libm_ieee_double_shape_type
+#include "vectors/vector_support.h"// extra support for math tests
+
+#include "vectors/tan.h"
+
+// FUNCTIONS
+
+static void
+test( CYG_ADDRWORD data )
+{
+ cyg_ucount32 vec_size;
+ cyg_bool ret;
+
+ vec_size = sizeof(tan_vec) / sizeof(Cyg_libm_test_double_vec_t);
+ ret = doTestVec( (CYG_ADDRWORD) &tan, CYG_LIBM_TEST_VEC_DOUBLE,
+ CYG_LIBM_TEST_VEC_NONE, CYG_LIBM_TEST_VEC_DOUBLE,
+ &tan_vec[0], vec_size );
+
+ if (ret==true)
+ {
+ CYG_TEST_PASS("tan() is stable");
+ } // if
+ else
+ {
+ CYG_TEST_FAIL("tan() failed tests");
+ } // else
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for Math "
+ "library tan() function");
+} // test()
+
+
+int
+main(int argc, char *argv[])
+{
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for Math library "
+ "tan() function");
+
+ START_TEST( test );
+
+ CYG_TEST_PASS_FINISH("Testing is not applicable to this configuration");
+
+} // main()
+
+
+// EOF tan.c
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/tan.h b/ecos/packages/language/c/libm/current/tests/vectors/tan.h
new file mode 100644
index 0000000..a9396b2
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/tan.h
@@ -0,0 +1,1079 @@
+#ifndef CYGONCE_LIBM_TAN_H
+#define CYGONCE_LIBM_TAN_H
+//===========================================================================
+//
+// tan.h
+//
+// Test vectors for testing of tan() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage: #include "vectors/tan.h"
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include "vectors/vector_support.h"// extra support for math tests
+
+#define TAN_TOLERANCE 1.0E-04
+
+static const Cyg_libm_test_double_vec_t tan_vec[] = {
+
+// AUTOMATICALLY GENERATED VECTORS START
+
+{ 1, 1077999148u, 2506787616u, 1090024059u, 3619148316u, 3219622610u, 2608738099u, 0, TAN_TOLERANCE, 0},
+{ 2, 3218153654u, 3176730980u, 1051524793u, 2993920299u, 3218181243u, 1709798879u, 0, TAN_TOLERANCE, 0},
+{ 3, 3239659803u, 2725707538u, 3232101343u, 2346810316u, 3217920385u, 4213448196u, 0, TAN_TOLERANCE, 0},
+{ 4, 1092554362u, 2088062470u, 3201242716u, 420891118u, 3219436383u, 1559440912u, 0, TAN_TOLERANCE, 0},
+{ 5, 3221200677u, 2636405208u, 1100049309u, 471635570u, 1073914339u, 2222366620u, 0, TAN_TOLERANCE, 0},
+{ 6, 1089363191u, 1746012320u, 1054478713u, 3333988501u, 3220605628u, 1031861671u, 0, TAN_TOLERANCE, 0},
+{ 7, 1047953160u, 183014794u, 3202039382u, 2016785810u, 1047953160u, 183014809u, 0, TAN_TOLERANCE, 0},
+{ 8, 3213486034u, 2688957927u, 1046089230u, 2709029994u, 3213486125u, 771400820u, 0, TAN_TOLERANCE, 0},
+{ 9, 1058795730u, 624574473u, 1045840574u, 3473266330u, 1058795730u, 654356267u, 0, TAN_TOLERANCE, 0},
+{ 10, 3204919842u, 1605286142u, 1068931671u, 4233776869u, 3204919842u, 1609546135u, 0, TAN_TOLERANCE, 0},
+{ 11, 1060343410u, 1857607719u, 3222889559u, 3417070006u, 1060343410u, 2020998544u, 0, TAN_TOLERANCE, 0},
+{ 12, 1103599987u, 3981151660u, 1088899021u, 1332651746u, 3221582538u, 16706636u, 0, TAN_TOLERANCE, 0},
+{ 13, 1085298022u, 3824988054u, 1066856791u, 2070129652u, 3215830604u, 3502545545u, 0, TAN_TOLERANCE, 0},
+{ 14, 3207559790u, 1372884064u, 1080833116u, 3229926662u, 3207559790u, 1543229406u, 0, TAN_TOLERANCE, 0},
+{ 15, 1093826501u, 3217805330u, 3191644264u, 2014578707u, 3222635354u, 3054668406u, 0, TAN_TOLERANCE, 0},
+{ 16, 1102287487u, 265058758u, 3239903247u, 1630600647u, 3214602649u, 265563968u, 0, TAN_TOLERANCE, 0},
+{ 17, 1071124229u, 1946677669u, 3198462609u, 926009897u, 1071202952u, 1724614277u, 0, TAN_TOLERANCE, 0},
+{ 18, 1072130299u, 2271884183u, 3203741999u, 2118617783u, 1072478793u, 3812297738u, 0, TAN_TOLERANCE, 0},
+{ 19, 3194849109u, 213658772u, 3249401130u, 314151656u, 3194849109u, 213658780u, 0, TAN_TOLERANCE, 0},
+{ 20, 3254112288u, 1564829925u, 3197817016u, 497230814u, 3219908120u, 4282371679u, 0, TAN_TOLERANCE, 0},
+{ 21, 3216262634u, 2075329122u, 3231746400u, 169900577u, 3216265418u, 3766984913u, 0, TAN_TOLERANCE, 0},
+{ 22, 1049848642u, 541549344u, 1096608669u, 3119070100u, 1049848642u, 541549497u, 0, TAN_TOLERANCE, 0},
+{ 23, 1085427055u, 567496114u, 1045286891u, 1969998540u, 1074735168u, 195000017u, 0, TAN_TOLERANCE, 0},
+{ 24, 1060548195u, 1299369769u, 1049342524u, 4167404066u, 1060548195u, 1554262199u, 0, TAN_TOLERANCE, 0},
+{ 25, 3208865645u, 3348930841u, 1078472138u, 358457347u, 3208865645u, 3987332184u, 0, TAN_TOLERANCE, 0},
+{ 26, 1071069297u, 2192461366u, 1099527247u, 3184735642u, 1071139786u, 997312598u, 0, TAN_TOLERANCE, 0},
+{ 27, 1052861772u, 331696577u, 3189610016u, 793242270u, 1052861772u, 331703596u, 0, TAN_TOLERANCE, 0},
+{ 28, 3252528934u, 2322696981u, 1083791358u, 3020766674u, 1071988465u, 2823307452u, 0, TAN_TOLERANCE, 0},
+{ 29, 1044902177u, 252085215u, 3214426435u, 4139068910u, 1044902177u, 252085215u, 0, TAN_TOLERANCE, 0},
+{ 30, 3222505725u, 105589263u, 1056316170u, 261630827u, 1075256347u, 888317792u, 0, TAN_TOLERANCE, 0},
+{ 31, 1107213408u, 428765703u, 3251828686u, 2009972239u, 1072804855u, 3093920736u, 0, TAN_TOLERANCE, 0},
+{ 32, 1098568019u, 3517376586u, 3240257920u, 3304487302u, 1073171249u, 1991641065u, 0, TAN_TOLERANCE, 0},
+{ 33, 3233537912u, 237004814u, 3237899261u, 3364008659u, 3220482895u, 2812950573u, 0, TAN_TOLERANCE, 0},
+{ 34, 3195247552u, 472004928u, 3226869477u, 1186387580u, 3195247552u, 472004938u, 0, TAN_TOLERANCE, 0},
+{ 35, 1054226850u, 4085763910u, 1106394906u, 2684738273u, 1054226850u, 4085822461u, 0, TAN_TOLERANCE, 0},
+{ 36, 1057053639u, 2055490142u, 3231581370u, 3879040079u, 1057053639u, 2057275463u, 0, TAN_TOLERANCE, 0},
+{ 37, 3188976647u, 3725731239u, 1061652681u, 591292963u, 3188976647u, 3725731239u, 0, TAN_TOLERANCE, 0},
+{ 38, 3225014981u, 1147041027u, 3215417793u, 624695933u, 3219812649u, 3561661677u, 0, TAN_TOLERANCE, 0},
+{ 39, 3206052774u, 705725219u, 3238067573u, 1116238321u, 3206052774u, 725762224u, 0, TAN_TOLERANCE, 0},
+{ 40, 3207367088u, 7287411u, 1045917232u, 116067742u, 3207367088u, 134216766u, 0, TAN_TOLERANCE, 0},
+{ 41, 3240055222u, 3604989074u, 1066381836u, 545298780u, 1076058842u, 2692959828u, 0, TAN_TOLERANCE, 0},
+{ 42, 3219080936u, 1681476121u, 1060345752u, 3553822398u, 3219194848u, 942221257u, 0, TAN_TOLERANCE, 0},
+{ 43, 1102831658u, 3410480388u, 1052460275u, 1660607230u, 3214525015u, 4241725003u, 0, TAN_TOLERANCE, 0},
+{ 44, 1089216869u, 1494984673u, 3196647153u, 287894723u, 1072160929u, 2549431126u, 0, TAN_TOLERANCE, 0},
+{ 45, 1054885127u, 644548665u, 1081948134u, 2442134629u, 1054885127u, 644640539u, 0, TAN_TOLERANCE, 0},
+{ 46, 1087554095u, 2312530895u, 3221584595u, 3379665576u, 1073452942u, 1180851169u, 0, TAN_TOLERANCE, 0},
+{ 47, 1096085375u, 3018463866u, 1086226574u, 404012923u, 1068538907u, 1719554741u, 0, TAN_TOLERANCE, 0},
+{ 48, 1064733299u, 1710279345u, 3251401196u, 3528946000u, 1064733314u, 1334898870u, 0, TAN_TOLERANCE, 0},
+{ 49, 1061536351u, 2164450219u, 1083520023u, 3312018966u, 1061536351u, 3064676513u, 0, TAN_TOLERANCE, 0},
+{ 50, 1057248676u, 2648986431u, 1050330591u, 1474376550u, 1057248676u, 2651856431u, 0, TAN_TOLERANCE, 0},
+{ 51, 3194422028u, 1839068700u, 1077406406u, 3013052171u, 3194422028u, 1839068704u, 0, TAN_TOLERANCE, 0},
+{ 52, 1046493630u, 772102380u, 3220729740u, 4219039958u, 1046493630u, 772102381u, 0, TAN_TOLERANCE, 0},
+{ 53, 3229472221u, 3058618779u, 1046304788u, 3338676024u, 1069813597u, 724043670u, 0, TAN_TOLERANCE, 0},
+{ 54, 1051172137u, 506286854u, 1094907481u, 2217000199u, 1051172137u, 506287951u, 0, TAN_TOLERANCE, 0},
+{ 55, 1082428310u, 1147428263u, 1065432625u, 3034786717u, 1072851643u, 3329730330u, 0, TAN_TOLERANCE, 0},
+{ 56, 1082016752u, 2844125311u, 1082985198u, 2561492677u, 1071527175u, 434342087u, 0, TAN_TOLERANCE, 0},
+{ 57, 3211536916u, 704542600u, 3222902057u, 2762779203u, 3211536923u, 1874722944u, 0, TAN_TOLERANCE, 0},
+{ 58, 3199680614u, 184131949u, 3249723525u, 1667366082u, 3199680614u, 184136139u, 0, TAN_TOLERANCE, 0},
+{ 59, 3223609598u, 3904224140u, 1067056698u, 2942159914u, 3220091696u, 2663063840u, 0, TAN_TOLERANCE, 0},
+{ 60, 1100636863u, 426114282u, 3209056785u, 1083606355u, 3220312233u, 624814402u, 0, TAN_TOLERANCE, 0},
+{ 61, 1106165945u, 3774123863u, 1106787580u, 2722107965u, 1070796578u, 534470147u, 0, TAN_TOLERANCE, 0},
+{ 62, 1088005092u, 1377734762u, 1104232051u, 2377063483u, 1074430559u, 547495352u, 0, TAN_TOLERANCE, 0},
+{ 63, 1069380559u, 1029739074u, 1105467109u, 3062201018u, 1069389120u, 2814662813u, 0, TAN_TOLERANCE, 0},
+{ 64, 3234741597u, 773857656u, 3214251949u, 335833884u, 3220624065u, 680339648u, 0, TAN_TOLERANCE, 0},
+{ 65, 3203224610u, 1473865960u, 1103073830u, 4000427507u, 3203224610u, 1474404149u, 0, TAN_TOLERANCE, 0},
+{ 66, 1103185231u, 4242092620u, 1067009473u, 14539161u, 3220426242u, 3000196541u, 0, TAN_TOLERANCE, 0},
+{ 67, 3192516074u, 1732245037u, 1101371955u, 1533536108u, 3192516074u, 1732245037u, 0, TAN_TOLERANCE, 0},
+{ 68, 3249153995u, 1833841275u, 1099430098u, 4144145552u, 3222141451u, 2395515507u, 0, TAN_TOLERANCE, 0},
+{ 69, 3244270463u, 935007012u, 3188865420u, 604442938u, 1075422778u, 489932060u, 0, TAN_TOLERANCE, 0},
+{ 70, 3206903253u, 2211464602u, 1046255144u, 1635910526u, 3206903253u, 2265441187u, 0, TAN_TOLERANCE, 0},
+{ 71, 1077871417u, 2549219008u, 3231633258u, 3733639385u, 3218820973u, 826451768u, 0, TAN_TOLERANCE, 0},
+{ 72, 1082095089u, 1819374372u, 3202219056u, 2617077637u, 1072422924u, 2528742585u, 0, TAN_TOLERANCE, 0},
+{ 73, 1094345280u, 546465680u, 1048653554u, 532401530u, 3219190284u, 751670473u, 0, TAN_TOLERANCE, 0},
+{ 74, 1044571091u, 2759019783u, 3221570188u, 3554409630u, 1044571091u, 2759019783u, 0, TAN_TOLERANCE, 0},
+{ 75, 3212931282u, 2527221960u, 1099107978u, 2696971136u, 3212931310u, 944427847u, 0, TAN_TOLERANCE, 0},
+{ 76, 1097158000u, 173134582u, 1087299442u, 2877794600u, 3221389719u, 1587380563u, 0, TAN_TOLERANCE, 0},
+{ 77, 1086400474u, 547642046u, 3197285510u, 3521286127u, 3217586653u, 3675080684u, 0, TAN_TOLERANCE, 0},
+{ 78, 1074860702u, 1231582831u, 1090971734u, 1653446832u, 1073794854u, 3729772102u, 0, TAN_TOLERANCE, 0},
+{ 79, 1061342535u, 3762182190u, 3252967851u, 2615360375u, 1061342536u, 48009287u, 0, TAN_TOLERANCE, 0},
+{ 80, 3200834423u, 2588067350u, 3206610957u, 3551059728u, 3200834423u, 2588087829u, 0, TAN_TOLERANCE, 0},
+{ 81, 3206978856u, 845263327u, 1073415902u, 1749010288u, 3206978856u, 908420805u, 0, TAN_TOLERANCE, 0},
+{ 82, 3205576370u, 3092685191u, 3190678390u, 2872219490u, 3205576370u, 3099649190u, 0, TAN_TOLERANCE, 0},
+{ 83, 3218315055u, 4107255722u, 3205337291u, 3069068345u, 3218356717u, 3205080738u, 0, TAN_TOLERANCE, 0},
+{ 84, 3243990857u, 2294867524u, 3216653996u, 2860384670u, 1075937062u, 441605080u, 0, TAN_TOLERANCE, 0},
+{ 85, 3193326350u, 2265437201u, 3240198679u, 1234948614u, 3193326350u, 2265437202u, 0, TAN_TOLERANCE, 0},
+{ 86, 3216359929u, 1186945904u, 3251167793u, 1896750851u, 3216363372u, 2480044998u, 0, TAN_TOLERANCE, 0},
+{ 87, 1081575478u, 3686084548u, 1079286273u, 3309277689u, 3219165487u, 3935712921u, 0, TAN_TOLERANCE, 0},
+{ 88, 3223476240u, 3006860614u, 3231412671u, 2504194724u, 1070630910u, 4230325485u, 0, TAN_TOLERANCE, 0},
+{ 89, 3236149260u, 1948717780u, 1048317852u, 3791803982u, 1072688994u, 3729051438u, 0, TAN_TOLERANCE, 0},
+{ 90, 1064345015u, 4272034420u, 3192982124u, 1526175922u, 1064345021u, 4158169529u, 0, TAN_TOLERANCE, 0},
+{ 91, 3245817826u, 4108948538u, 1104691287u, 640541190u, 1074813212u, 3505437405u, 0, TAN_TOLERANCE, 0},
+{ 92, 3207257417u, 3259274853u, 1082507103u, 3677038020u, 3207257417u, 3365158881u, 0, TAN_TOLERANCE, 0},
+{ 93, 1083132498u, 3781708548u, 1096584871u, 1207386447u, 3220390531u, 2314747582u, 0, TAN_TOLERANCE, 0},
+{ 94, 3188695272u, 3011191657u, 1103798670u, 1096124830u, 3188695272u, 3011191657u, 0, TAN_TOLERANCE, 0},
+{ 95, 1063235023u, 2540404725u, 3240157452u, 4122845725u, 1063235026u, 767486541u, 0, TAN_TOLERANCE, 0},
+{ 96, 1083643710u, 311336721u, 3214382367u, 4212533768u, 1074337179u, 3867090367u, 0, TAN_TOLERANCE, 0},
+{ 97, 1051139427u, 1769686293u, 3240200923u, 3538602249u, 1051139427u, 1769687322u, 0, TAN_TOLERANCE, 0},
+{ 98, 1078227549u, 508056696u, 1103793878u, 776520138u, 1068173843u, 4073142280u, 0, TAN_TOLERANCE, 0},
+{ 99, 1102910577u, 4064962760u, 1077424413u, 819766631u, 1070476795u, 2500532800u, 0, TAN_TOLERANCE, 0},
+{ 100, 1074178362u, 2112385259u, 3227593179u, 1187058516u, 3218369918u, 296208356u, 0, TAN_TOLERANCE, 0},
+{ 101, 1082295059u, 2514398118u, 1076579751u, 870169764u, 3222557284u, 3821041880u, 0, TAN_TOLERANCE, 0},
+{ 102, 3246851392u, 1190259653u, 1069112254u, 3417249840u, 1073944628u, 1508796918u, 0, TAN_TOLERANCE, 0},
+{ 103, 3193663083u, 3467757357u, 3215075200u, 2168175352u, 3193663083u, 3467757359u, 0, TAN_TOLERANCE, 0},
+{ 104, 3239643135u, 1508888184u, 1060430241u, 3524949092u, 1073664477u, 2627356099u, 0, TAN_TOLERANCE, 0},
+{ 105, 3197412883u, 166402802u, 3237198975u, 3572369260u, 3197412883u, 166402985u, 0, TAN_TOLERANCE, 0},
+{ 106, 1081866822u, 2441536203u, 3202753937u, 3658194573u, 1077725529u, 4095469556u, 0, TAN_TOLERANCE, 0},
+{ 107, 1062392908u, 2479742828u, 1062342831u, 4214154303u, 1062392909u, 518131303u, 0, TAN_TOLERANCE, 0},
+{ 108, 1082396794u, 426896765u, 1066474375u, 2201754442u, 1073946989u, 1842153396u, 0, TAN_TOLERANCE, 0},
+{ 109, 3195629021u, 2055773734u, 3239267288u, 291396537u, 3195629021u, 2055773755u, 0, TAN_TOLERANCE, 0},
+{ 110, 3236968033u, 874125203u, 3210508124u, 4091098764u, 1072994339u, 2120920512u, 0, TAN_TOLERANCE, 0},
+{ 111, 1065716026u, 120488169u, 3241241441u, 1985269424u, 1065716078u, 229684732u, 0, TAN_TOLERANCE, 0},
+{ 112, 3206539410u, 2243036871u, 3243941101u, 740033495u, 3206539410u, 2287393372u, 0, TAN_TOLERANCE, 0},
+{ 113, 3209424906u, 1176656356u, 1074261978u, 3588756231u, 3209424906u, 3082067610u, 0, TAN_TOLERANCE, 0},
+{ 114, 3252816791u, 3037249392u, 1061635587u, 1173102190u, 3220656564u, 3604743680u, 0, TAN_TOLERANCE, 0},
+{ 115, 3237209581u, 2882725208u, 1071440059u, 69225090u, 3219270037u, 1144805256u, 0, TAN_TOLERANCE, 0},
+{ 116, 3212663474u, 272319256u, 1072073912u, 2493997123u, 3212663506u, 4289517860u, 0, TAN_TOLERANCE, 0},
+{ 117, 1057720186u, 188610379u, 3232757923u, 2209647371u, 1057720186u, 195731687u, 0, TAN_TOLERANCE, 0},
+{ 118, 3236758517u, 1990439193u, 1078073146u, 622849962u, 3219034996u, 3232269414u, 0, TAN_TOLERANCE, 0},
+{ 119, 1057135741u, 756052458u, 1081649113u, 2247475162u, 1057135741u, 758252889u, 0, TAN_TOLERANCE, 0},
+{ 120, 1061623064u, 3878055211u, 3222407050u, 2979438623u, 1061623065u, 657726119u, 0, TAN_TOLERANCE, 0},
+{ 121, 3195290997u, 2676398686u, 1105124431u, 3631096636u, 3195290997u, 2676398697u, 0, TAN_TOLERANCE, 0},
+{ 122, 1065079390u, 1697791764u, 3198136112u, 2299842819u, 1065079418u, 1875760833u, 0, TAN_TOLERANCE, 0},
+{ 123, 1078084768u, 1931502677u, 3215264397u, 3016456382u, 3221390371u, 1549517714u, 0, TAN_TOLERANCE, 0},
+{ 124, 1072253426u, 343404215u, 1061072607u, 4266232536u, 1072703528u, 4239724827u, 0, TAN_TOLERANCE, 0},
+{ 125, 3241230836u, 4140316002u, 1082896196u, 868256971u, 1077239637u, 3288074299u, 0, TAN_TOLERANCE, 0},
+{ 126, 1075422810u, 1864139509u, 3187675097u, 3084482407u, 1069589412u, 935845071u, 0, TAN_TOLERANCE, 0},
+{ 127, 3220191323u, 2427162817u, 3234748208u, 2715105792u, 3220811887u, 3230843823u, 0, TAN_TOLERANCE, 0},
+{ 128, 1064600512u, 3943389284u, 1046724025u, 3626825684u, 1064600524u, 686990573u, 0, TAN_TOLERANCE, 0},
+{ 129, 1045423002u, 967350972u, 1093012318u, 448002663u, 1045423002u, 967350973u, 0, TAN_TOLERANCE, 0},
+{ 130, 3251845859u, 105058217u, 1069733884u, 171786224u, 3221748718u, 3998156706u, 0, TAN_TOLERANCE, 0},
+{ 131, 3189614508u, 2863482262u, 3204997271u, 877784425u, 3189614508u, 2863482262u, 0, TAN_TOLERANCE, 0},
+{ 132, 3202629313u, 2801782962u, 3213604117u, 762347195u, 3202629313u, 2801959982u, 0, TAN_TOLERANCE, 0},
+{ 133, 3233486727u, 2317950339u, 3246333414u, 2135700283u, 1073741711u, 1100714238u, 0, TAN_TOLERANCE, 0},
+{ 134, 1056516397u, 4171919805u, 1082858682u, 2180920863u, 1056516397u, 4173279042u, 0, TAN_TOLERANCE, 0},
+{ 135, 3220149084u, 1918836931u, 1083603224u, 3137821660u, 3220714707u, 436652046u, 0, TAN_TOLERANCE, 0},
+{ 136, 1103902874u, 3456203663u, 3235600523u, 2335688936u, 1070111728u, 3070150721u, 0, TAN_TOLERANCE, 0},
+{ 137, 1042279322u, 4170235262u, 1051824459u, 521583737u, 1042279322u, 4170235262u, 0, TAN_TOLERANCE, 0},
+{ 138, 1081348303u, 1296623194u, 3250673860u, 2442872540u, 1072056099u, 878147212u, 0, TAN_TOLERANCE, 0},
+{ 139, 1061684277u, 289979405u, 1049514449u, 3865737145u, 1061684277u, 1500422480u, 0, TAN_TOLERANCE, 0},
+{ 140, 1075298944u, 3699090239u, 1054539840u, 3259249360u, 3218530158u, 2204023492u, 0, TAN_TOLERANCE, 0},
+{ 141, 1096418100u, 1619819023u, 1045993352u, 1022642459u, 1072486591u, 200878280u, 0, TAN_TOLERANCE, 0},
+{ 142, 1081433004u, 19455098u, 3229182089u, 2096003654u, 3219860921u, 2802078233u, 0, TAN_TOLERANCE, 0},
+{ 143, 1076297936u, 3803689997u, 1071630912u, 2263729518u, 3221020563u, 3741955633u, 0, TAN_TOLERANCE, 0},
+{ 144, 1101357261u, 2816837387u, 1063422305u, 2597606398u, 3225913854u, 4017082295u, 0, TAN_TOLERANCE, 0},
+{ 145, 1069100169u, 3680967506u, 1040201163u, 179224723u, 1069105508u, 1440893395u, 0, TAN_TOLERANCE, 0},
+{ 146, 3188629767u, 978126928u, 1101553990u, 4047893399u, 3188629767u, 978126928u, 0, TAN_TOLERANCE, 0},
+{ 147, 3222322045u, 4059818629u, 1042678728u, 3640293589u, 3220920863u, 1658556398u, 0, TAN_TOLERANCE, 0},
+{ 148, 3248464040u, 3383497159u, 1070002807u, 1527313008u, 3218096293u, 3040100589u, 0, TAN_TOLERANCE, 0},
+{ 149, 3202707679u, 2599946514u, 1104170406u, 2738675352u, 3202707679u, 2600156789u, 0, TAN_TOLERANCE, 0},
+{ 150, 1105232623u, 3616571377u, 1060859316u, 1130603218u, 1072709115u, 3670033279u, 0, TAN_TOLERANCE, 0},
+{ 151, 1076028796u, 3859211180u, 1067940450u, 1744531824u, 1066926573u, 3567718329u, 0, TAN_TOLERANCE, 0},
+{ 152, 1042831340u, 1958025850u, 3236511256u, 2472176453u, 1042831340u, 1958025850u, 0, TAN_TOLERANCE, 0},
+{ 153, 3233107089u, 182132862u, 3250520938u, 3924356991u, 1074211406u, 1409850566u, 0, TAN_TOLERANCE, 0},
+{ 154, 3230501884u, 35632886u, 3209806504u, 1453402523u, 1069496128u, 1029233379u, 0, TAN_TOLERANCE, 0},
+{ 155, 1083522102u, 743225214u, 3202890678u, 142917400u, 3221790920u, 331029792u, 0, TAN_TOLERANCE, 0},
+{ 156, 1080684976u, 1472665012u, 3203138231u, 256588219u, 1070266411u, 390048846u, 0, TAN_TOLERANCE, 0},
+{ 157, 1094982162u, 1062927000u, 1061134072u, 931677439u, 1072398089u, 826365235u, 0, TAN_TOLERANCE, 0},
+{ 158, 1058377732u, 2320910576u, 1055663370u, 288059864u, 1058377732u, 2334598583u, 0, TAN_TOLERANCE, 0},
+{ 159, 1078958093u, 1448349062u, 3199478070u, 3454027134u, 1071107400u, 206034543u, 0, TAN_TOLERANCE, 0},
+{ 160, 3237458798u, 4215445172u, 3196654963u, 2231888973u, 3219458995u, 3819290632u, 0, TAN_TOLERANCE, 0},
+{ 161, 3246632231u, 40413554u, 3232578253u, 983832844u, 3220432216u, 2842337330u, 0, TAN_TOLERANCE, 0},
+{ 162, 3223721534u, 3995725873u, 1050082319u, 777231627u, 1077206840u, 461276196u, 0, TAN_TOLERANCE, 0},
+{ 163, 1040986626u, 672789828u, 3253385962u, 2982787335u, 1040986626u, 672789828u, 0, TAN_TOLERANCE, 0},
+{ 164, 1068390875u, 2075971825u, 1070166500u, 4034633931u, 1068393208u, 2863853979u, 0, TAN_TOLERANCE, 0},
+{ 165, 3210046177u, 1018222907u, 3244621407u, 3090050495u, 3210046178u, 157136623u, 0, TAN_TOLERANCE, 0},
+{ 166, 1067680885u, 937732557u, 3200798890u, 2557898276u, 1067681505u, 608928501u, 0, TAN_TOLERANCE, 0},
+{ 167, 1078342316u, 130346162u, 3223590310u, 275568693u, 1071388364u, 1761655737u, 0, TAN_TOLERANCE, 0},
+{ 168, 1042898869u, 3807416441u, 1075961161u, 3706820266u, 1042898869u, 3807416441u, 0, TAN_TOLERANCE, 0},
+{ 169, 3216099005u, 1710131411u, 1078123323u, 1900790503u, 3216100881u, 1904744752u, 0, TAN_TOLERANCE, 0},
+{ 170, 3238819361u, 3420420033u, 3210844787u, 588423066u, 1070338117u, 444441192u, 0, TAN_TOLERANCE, 0},
+{ 171, 1049684114u, 1160162008u, 3246307879u, 4265764460u, 1049684114u, 1160162109u, 0, TAN_TOLERANCE, 0},
+{ 172, 1102543434u, 366653268u, 3188814424u, 466059202u, 3219690076u, 1152439596u, 0, TAN_TOLERANCE, 0},
+{ 173, 3226627739u, 1325936170u, 3221436876u, 680097612u, 3223591027u, 807326226u, 0, TAN_TOLERANCE, 0},
+{ 174, 3240391116u, 1827735934u, 3200554324u, 2875599271u, 3218949458u, 1564630365u, 0, TAN_TOLERANCE, 0},
+{ 175, 3191030402u, 3117037091u, 3239246636u, 15838845u, 3191030402u, 3117037091u, 0, TAN_TOLERANCE, 0},
+{ 176, 1051974004u, 749718883u, 3223587064u, 1523766569u, 1051974004u, 749721490u, 0, TAN_TOLERANCE, 0},
+{ 177, 1044833651u, 1966536294u, 3250158026u, 699164258u, 1044833651u, 1966536294u, 0, TAN_TOLERANCE, 0},
+{ 178, 1098048435u, 3759049394u, 1106085272u, 1183789499u, 1067725226u, 3300256125u, 0, TAN_TOLERANCE, 0},
+{ 179, 1081201623u, 1970107747u, 1095245453u, 2308233883u, 3219656964u, 1762316068u, 0, TAN_TOLERANCE, 0},
+{ 180, 1084756444u, 1491017852u, 1041444355u, 1723375725u, 3220665076u, 1131376736u, 0, TAN_TOLERANCE, 0},
+{ 181, 3216630070u, 1141349287u, 1097465301u, 3403438584u, 3216635871u, 3114581228u, 0, TAN_TOLERANCE, 0},
+{ 182, 3230571908u, 1711085243u, 3250239076u, 1377484108u, 1071707322u, 2074334604u, 0, TAN_TOLERANCE, 0},
+{ 183, 1098385019u, 2880275004u, 1084039594u, 1611394950u, 1072183089u, 1081655096u, 0, TAN_TOLERANCE, 0},
+{ 184, 3234221435u, 2626629370u, 1063771493u, 1499080813u, 1072448767u, 2519934791u, 0, TAN_TOLERANCE, 0},
+{ 185, 1055231263u, 3936262414u, 1103919063u, 3175668759u, 1055231263u, 3936475953u, 0, TAN_TOLERANCE, 0},
+{ 186, 3207981719u, 1270950554u, 3194616071u, 3680565379u, 3207981719u, 1500917084u, 0, TAN_TOLERANCE, 0},
+{ 187, 3208148223u, 1066985223u, 3221613219u, 4089383168u, 3208148223u, 1386557653u, 0, TAN_TOLERANCE, 0},
+{ 188, 3217058839u, 4017329311u, 3208334452u, 1667591498u, 3217064784u, 1269168733u, 0, TAN_TOLERANCE, 0},
+{ 189, 1088164157u, 3154656624u, 1061894279u, 3886344038u, 3223527257u, 636902076u, 0, TAN_TOLERANCE, 0},
+{ 190, 1050652945u, 977586119u, 3209762784u, 953839852u, 1050652945u, 977586782u, 0, TAN_TOLERANCE, 0},
+{ 191, 1104965247u, 143071571u, 3206165386u, 913097445u, 1083267508u, 670608201u, 0, TAN_TOLERANCE, 0},
+{ 192, 3190565456u, 1371169579u, 1057079837u, 2594818628u, 3190565456u, 1371169579u, 0, TAN_TOLERANCE, 0},
+{ 193, 3251793336u, 2259342224u, 3217432469u, 1824221478u, 1074871369u, 1846053325u, 0, TAN_TOLERANCE, 0},
+{ 194, 3246834775u, 1576604497u, 1079368611u, 185078728u, 3219323765u, 1214264042u, 0, TAN_TOLERANCE, 0},
+{ 195, 3221679427u, 444800035u, 3243343143u, 1734989302u, 1070734297u, 3140344392u, 0, TAN_TOLERANCE, 0},
+{ 196, 1072748883u, 130452005u, 1041548088u, 2158433515u, 1073485690u, 2052392104u, 0, TAN_TOLERANCE, 0},
+{ 197, 3234695968u, 1941318385u, 1045807374u, 792193370u, 1071783226u, 3456402802u, 0, TAN_TOLERANCE, 0},
+{ 198, 3238299666u, 1299392207u, 3212131720u, 3205732280u, 1070843456u, 2640216013u, 0, TAN_TOLERANCE, 0},
+{ 199, 1098698804u, 3035093505u, 1052187689u, 3287702190u, 1072848938u, 3118895016u, 0, TAN_TOLERANCE, 0},
+{ 200, 3246676260u, 2160225215u, 1102624859u, 836655570u, 3216151840u, 2826603821u, 0, TAN_TOLERANCE, 0},
+{ 201, 1096723626u, 3360816360u, 3246176356u, 172860634u, 3223468834u, 2557955513u, 0, TAN_TOLERANCE, 0},
+{ 202, 1070995788u, 146831910u, 1051558014u, 2340722078u, 1071056230u, 1074959791u, 0, TAN_TOLERANCE, 0},
+{ 203, 3230416351u, 1603798153u, 3207725532u, 1099413093u, 1073450075u, 3789585571u, 0, TAN_TOLERANCE, 0},
+{ 204, 3246678378u, 2429340443u, 3190303581u, 3223770005u, 3222436475u, 2331667549u, 0, TAN_TOLERANCE, 0},
+{ 205, 1075882959u, 955542166u, 3230415151u, 275583938u, 3221134682u, 869863979u, 0, TAN_TOLERANCE, 0},
+{ 206, 1092971882u, 513397822u, 1090646554u, 2089321329u, 3218476915u, 4064660800u, 0, TAN_TOLERANCE, 0},
+{ 207, 3193169876u, 2782073372u, 1046063872u, 4023829068u, 3193169876u, 2782073373u, 0, TAN_TOLERANCE, 0},
+{ 208, 1098564822u, 3242223094u, 3194111199u, 4264674108u, 3219655919u, 2882209966u, 0, TAN_TOLERANCE, 0},
+{ 209, 3238510821u, 3506346169u, 1047020885u, 1742757458u, 1077178631u, 1129955170u, 0, TAN_TOLERANCE, 0},
+{ 210, 3192664477u, 1265459564u, 3193450280u, 3650514880u, 3192664477u, 1265459564u, 0, TAN_TOLERANCE, 0},
+{ 211, 1081755890u, 1525260440u, 3235452527u, 2612331392u, 3218875360u, 584541142u, 0, TAN_TOLERANCE, 0},
+{ 212, 3248668920u, 1263613754u, 3219096387u, 635677201u, 3228095705u, 607239893u, 0, TAN_TOLERANCE, 0},
+{ 213, 3206272087u, 4140947288u, 3200792376u, 2013265346u, 3206272087u, 4170374788u, 0, TAN_TOLERANCE, 0},
+{ 214, 3249974392u, 1912759945u, 3237045253u, 1351396825u, 1073520127u, 4107509282u, 0, TAN_TOLERANCE, 0},
+{ 215, 3248205162u, 1001433078u, 3206926643u, 2741676659u, 3223698549u, 697659170u, 0, TAN_TOLERANCE, 0},
+{ 216, 1080923606u, 1088945233u, 1085095743u, 3986114865u, 1073528810u, 2355327902u, 0, TAN_TOLERANCE, 0},
+{ 217, 3215734057u, 831239754u, 1099828675u, 3071308141u, 3215735929u, 3454732211u, 0, TAN_TOLERANCE, 0},
+{ 218, 3225834497u, 3473592372u, 1102759382u, 1309576357u, 3219754946u, 1779658178u, 0, TAN_TOLERANCE, 0},
+{ 219, 3251186706u, 2042340367u, 1091945628u, 2062772374u, 3221848449u, 173695336u, 0, TAN_TOLERANCE, 0},
+{ 220, 3194765687u, 1840632537u, 1096533424u, 807510337u, 3194765687u, 1840632544u, 0, TAN_TOLERANCE, 0},
+{ 221, 3231451722u, 144814872u, 3212698915u, 2282965697u, 3219929851u, 2085937887u, 0, TAN_TOLERANCE, 0},
+{ 222, 1071236430u, 2552499583u, 3229111426u, 1470130815u, 1071334047u, 1224989201u, 0, TAN_TOLERANCE, 0},
+{ 223, 3243093065u, 2858583811u, 1089760910u, 6360994u, 3222355264u, 4036068405u, 0, TAN_TOLERANCE, 0},
+{ 224, 3198264929u, 1614537194u, 1075198900u, 4088705365u, 3198264929u, 1614537652u, 0, TAN_TOLERANCE, 0},
+{ 225, 3250939070u, 3545570051u, 1065221325u, 1629217700u, 3218583691u, 3771335620u, 0, TAN_TOLERANCE, 0},
+{ 226, 1072744324u, 1813392963u, 3235313361u, 3772501596u, 1073467220u, 1680674110u, 0, TAN_TOLERANCE, 0},
+{ 227, 3196802686u, 2406734491u, 1042055360u, 89226663u, 3196802686u, 2406734597u, 0, TAN_TOLERANCE, 0},
+{ 228, 3195751081u, 1618759139u, 3194723421u, 3888234802u, 3195751081u, 1618759165u, 0, TAN_TOLERANCE, 0},
+{ 229, 1055357248u, 3590035633u, 3212424262u, 2892456615u, 1055357248u, 3590311564u, 0, TAN_TOLERANCE, 0},
+{ 230, 3189943060u, 2431246964u, 3241512456u, 183850734u, 3189943060u, 2431246964u, 0, TAN_TOLERANCE, 0},
+{ 231, 1089501101u, 3088319870u, 3211544311u, 862225364u, 1072870485u, 1064431288u, 0, TAN_TOLERANCE, 0},
+{ 232, 3235294664u, 3495352775u, 1058576726u, 596957268u, 3219184426u, 1290282712u, 0, TAN_TOLERANCE, 0},
+{ 233, 1046553348u, 1839214511u, 3205004060u, 1923240983u, 1046553348u, 1839214513u, 0, TAN_TOLERANCE, 0},
+{ 234, 1058073864u, 739619702u, 3223356436u, 2689885273u, 1058073864u, 746240258u, 0, TAN_TOLERANCE, 0},
+{ 235, 3200324971u, 2143376228u, 1098306332u, 3760236188u, 3200324971u, 2143382876u, 0, TAN_TOLERANCE, 0},
+{ 236, 1074621795u, 671680995u, 1091262633u, 2315535361u, 1071844140u, 2465670249u, 0, TAN_TOLERANCE, 0},
+{ 237, 3214165989u, 2493598049u, 3194927008u, 1689107592u, 3214166163u, 1695445981u, 0, TAN_TOLERANCE, 0},
+{ 238, 3189989959u, 1578976988u, 1066368383u, 2117279163u, 3189989959u, 1578976988u, 0, TAN_TOLERANCE, 0},
+{ 239, 3222988111u, 3425290087u, 1098487295u, 1263412017u, 3219009618u, 3104355163u, 0, TAN_TOLERANCE, 0},
+{ 240, 3208432764u, 3635396812u, 1070999426u, 3965655689u, 3208432764u, 4157169065u, 0, TAN_TOLERANCE, 0},
+{ 241, 1060196346u, 2183973116u, 1101098363u, 1118613350u, 1060196346u, 2297325783u, 0, TAN_TOLERANCE, 0},
+{ 242, 3221946089u, 199516350u, 1078368488u, 164621458u, 3217972188u, 183700192u, 0, TAN_TOLERANCE, 0},
+{ 243, 3187706018u, 3570940805u, 3230316437u, 3596080877u, 3187706018u, 3570940805u, 0, TAN_TOLERANCE, 0},
+{ 244, 3208209565u, 980880313u, 1079833442u, 884465057u, 3208209565u, 1338566342u, 0, TAN_TOLERANCE, 0},
+{ 245, 1099977124u, 2558179220u, 1052873711u, 1233598120u, 1073082635u, 1345485298u, 0, TAN_TOLERANCE, 0},
+{ 246, 1047115221u, 1909994277u, 1085015978u, 2991527452u, 1047115221u, 1909994283u, 0, TAN_TOLERANCE, 0},
+{ 247, 1060855260u, 1680290941u, 1074309900u, 2943870846u, 1060855260u, 2128028309u, 0, TAN_TOLERANCE, 0},
+{ 248, 1059496132u, 1451927357u, 3228615456u, 1502585517u, 1059496132u, 1515203058u, 0, TAN_TOLERANCE, 0},
+{ 249, 3236211951u, 751136990u, 3230392165u, 3493275472u, 3221130863u, 2790236806u, 0, TAN_TOLERANCE, 0},
+{ 250, 1098365967u, 1209623292u, 3238056647u, 979495322u, 1071982382u, 3259751257u, 0, TAN_TOLERANCE, 0},
+{ 251, 3250424296u, 1717672108u, 1048120593u, 531240316u, 3217734469u, 151298977u, 0, TAN_TOLERANCE, 0},
+{ 252, 1054174923u, 3548721654u, 1086112947u, 3391817224u, 1054174923u, 3548774163u, 0, TAN_TOLERANCE, 0},
+{ 253, 1077836851u, 2758195125u, 1100880260u, 2028440924u, 3220536570u, 2251016583u, 0, TAN_TOLERANCE, 0},
+{ 254, 1084223893u, 2750123373u, 3232200256u, 1086294931u, 3220157217u, 2263350424u, 0, TAN_TOLERANCE, 0},
+{ 255, 1043958672u, 2986160931u, 1076097908u, 2540046258u, 1043958672u, 2986160931u, 0, TAN_TOLERANCE, 0},
+{ 256, 3235476602u, 451471221u, 1064816262u, 4187644495u, 3216848923u, 3904061022u, 0, TAN_TOLERANCE, 0},
+{ 257, 1099460228u, 2439500162u, 1065280276u, 1979490284u, 3218731225u, 4259537411u, 0, TAN_TOLERANCE, 0},
+{ 258, 1040415832u, 2283342035u, 1078398157u, 1345997553u, 1040415832u, 2283342035u, 0, TAN_TOLERANCE, 0},
+{ 259, 3213249348u, 179066662u, 1103272172u, 1217337578u, 3213249405u, 3247146264u, 0, TAN_TOLERANCE, 0},
+{ 260, 3211562377u, 3779303391u, 3210023352u, 3115946280u, 3211562385u, 1965050538u, 0, TAN_TOLERANCE, 0},
+{ 261, 3192989874u, 286247089u, 1085153597u, 713645369u, 3192989874u, 286247089u, 0, TAN_TOLERANCE, 0},
+{ 262, 1093670500u, 1468283899u, 1042831668u, 2022736418u, 3219948625u, 3229834879u, 0, TAN_TOLERANCE, 0},
+{ 263, 1083139105u, 3305564080u, 1065483445u, 482392433u, 3220193301u, 2415443999u, 0, TAN_TOLERANCE, 0},
+{ 264, 3201695807u, 2256346551u, 3222430705u, 2071674991u, 3201695807u, 2256403348u, 0, TAN_TOLERANCE, 0},
+{ 265, 3204024695u, 2295269094u, 1084451053u, 2773103941u, 3204024695u, 2296690203u, 0, TAN_TOLERANCE, 0},
+{ 266, 1078173946u, 1482721827u, 1092243422u, 3125409590u, 1079271541u, 3804204308u, 0, TAN_TOLERANCE, 0},
+{ 267, 3221065973u, 1381740563u, 1071545057u, 2918235653u, 1074536667u, 3552963698u, 0, TAN_TOLERANCE, 0},
+{ 268, 3238715972u, 1105857967u, 3241990046u, 2703723225u, 3219526778u, 759389017u, 0, TAN_TOLERANCE, 0},
+{ 269, 1043015571u, 174689677u, 1079333374u, 3947057014u, 1043015571u, 174689677u, 0, TAN_TOLERANCE, 0},
+{ 270, 1090461859u, 2023082423u, 3242081486u, 1169047927u, 3217503114u, 3764937440u, 0, TAN_TOLERANCE, 0},
+{ 271, 1064525899u, 3742487766u, 1043425732u, 194972788u, 1064525909u, 1475115964u, 0, TAN_TOLERANCE, 0},
+{ 272, 3213791827u, 2136071361u, 3211529757u, 993675115u, 3213791976u, 1407302382u, 0, TAN_TOLERANCE, 0},
+{ 273, 3213663381u, 210772141u, 3241441539u, 580731413u, 3213663503u, 212614883u, 0, TAN_TOLERANCE, 0},
+{ 274, 1093840413u, 1751560711u, 1074522705u, 180987057u, 3219848371u, 2705574052u, 0, TAN_TOLERANCE, 0},
+{ 275, 1066754591u, 2552236599u, 1088658621u, 2112468655u, 1066754795u, 1399432567u, 0, TAN_TOLERANCE, 0},
+{ 276, 3189290617u, 1578223762u, 3224596567u, 2456166162u, 3189290617u, 1578223762u, 0, TAN_TOLERANCE, 0},
+{ 277, 1058506965u, 2110924310u, 1086207177u, 3161208323u, 1058506965u, 2128721607u, 0, TAN_TOLERANCE, 0},
+{ 278, 3231863394u, 2352173188u, 1079361728u, 4070222179u, 3227740382u, 336535156u, 0, TAN_TOLERANCE, 0},
+{ 279, 1101012904u, 2481562701u, 1090937016u, 3809489716u, 3217879385u, 3053665789u, 0, TAN_TOLERANCE, 0},
+{ 280, 3197002651u, 330905705u, 1086260896u, 90264431u, 3197002651u, 330905851u, 0, TAN_TOLERANCE, 0},
+{ 281, 1040729961u, 4162008079u, 3194387916u, 759522153u, 1040729961u, 4162008079u, 0, TAN_TOLERANCE, 0},
+{ 282, 1081015037u, 1839697482u, 3216442625u, 2211508949u, 3218526105u, 3638731460u, 0, TAN_TOLERANCE, 0},
+{ 283, 3249807211u, 3736863454u, 1063475914u, 3150741666u, 1072025981u, 971921172u, 0, TAN_TOLERANCE, 0},
+{ 284, 1060785883u, 4200269406u, 3236646101u, 1061812176u, 1060785884u, 303065114u, 0, TAN_TOLERANCE, 0},
+{ 285, 1080217979u, 106027290u, 3234978297u, 2245237549u, 3218102952u, 2504847414u, 0, TAN_TOLERANCE, 0},
+{ 286, 3246984334u, 2132131375u, 3250483427u, 3449276437u, 1069760767u, 1782102314u, 0, TAN_TOLERANCE, 0},
+{ 287, 1089388778u, 2334440944u, 1105423490u, 4004336184u, 1072291864u, 1404277520u, 0, TAN_TOLERANCE, 0},
+{ 288, 3218772704u, 4090088208u, 1042030013u, 3898658299u, 3218880206u, 3413233725u, 0, TAN_TOLERANCE, 0},
+{ 289, 3207908064u, 2272831437u, 3253082595u, 2639188641u, 3207908064u, 2469202778u, 0, TAN_TOLERANCE, 0},
+{ 290, 1054766684u, 1856594168u, 3189515294u, 4101853676u, 1054766684u, 1856744929u, 0, TAN_TOLERANCE, 0},
+{ 291, 1076012412u, 2211699255u, 3195060344u, 3865018604u, 3216643832u, 2588986406u, 0, TAN_TOLERANCE, 0},
+{ 292, 3242767010u, 996259334u, 3241496889u, 3782673116u, 3218271270u, 734706536u, 0, TAN_TOLERANCE, 0},
+{ 293, 1099130747u, 3840380763u, 1048674041u, 550040067u, 1073016227u, 1715888406u, 0, TAN_TOLERANCE, 0},
+{ 294, 3251419593u, 95874100u, 3237232828u, 2645647822u, 1074518514u, 88770385u, 0, TAN_TOLERANCE, 0},
+{ 295, 1043665640u, 3441419500u, 3252367038u, 876710419u, 1043665640u, 3441419500u, 0, TAN_TOLERANCE, 0},
+{ 296, 3238593552u, 2560836004u, 3199616543u, 1180840586u, 3220307943u, 3656831580u, 0, TAN_TOLERANCE, 0},
+{ 297, 3221602966u, 2218230392u, 3227485787u, 3947214579u, 1071428530u, 946243539u, 0, TAN_TOLERANCE, 0},
+{ 298, 1079539654u, 1447312532u, 1081476588u, 780366847u, 1071693521u, 4116479669u, 0, TAN_TOLERANCE, 0},
+{ 299, 1072569643u, 2842113832u, 3216156731u, 225159029u, 1073083620u, 4179140584u, 0, TAN_TOLERANCE, 0},
+{ 300, 1098117193u, 1601981129u, 3234628869u, 2236538344u, 1070461966u, 3658006630u, 0, TAN_TOLERANCE, 0},
+{ 301, 1085173524u, 2194185737u, 3242362684u, 87913366u, 3215054618u, 3308265431u, 0, TAN_TOLERANCE, 0},
+{ 302, 3199083880u, 1346862963u, 1077836259u, 3604666660u, 3199083880u, 1346865246u, 0, TAN_TOLERANCE, 0},
+{ 303, 3212255979u, 3115209742u, 1099332326u, 1325101950u, 3212255995u, 3657260390u, 0, TAN_TOLERANCE, 0},
+{ 304, 3224546042u, 3889223100u, 1053247613u, 3371396923u, 1070039848u, 636984675u, 0, TAN_TOLERANCE, 0},
+{ 305, 3220477868u, 4163120793u, 1075022670u, 1387631215u, 3221974641u, 4043171840u, 0, TAN_TOLERANCE, 0},
+{ 306, 3205481779u, 1532426189u, 1063168268u, 3397022615u, 3205481779u, 1543371882u, 0, TAN_TOLERANCE, 0},
+{ 307, 3201033321u, 89324166u, 1079206060u, 3429424710u, 3201033321u, 89353099u, 0, TAN_TOLERANCE, 0},
+{ 308, 3192325102u, 747591401u, 1072238381u, 2803213904u, 3192325102u, 747591401u, 0, TAN_TOLERANCE, 0},
+{ 309, 1091113780u, 271904221u, 1044258318u, 1858545114u, 1076116261u, 919587220u, 0, TAN_TOLERANCE, 0},
+{ 310, 3228068914u, 314958082u, 3249912496u, 2966213175u, 3219521784u, 4007754846u, 0, TAN_TOLERANCE, 0},
+{ 311, 3197179414u, 3119528953u, 3217179014u, 2908718240u, 3197179414u, 3119529057u, 0, TAN_TOLERANCE, 0},
+{ 312, 3242467576u, 2018361566u, 1100926600u, 3985805054u, 1073825020u, 890088773u, 0, TAN_TOLERANCE, 0},
+{ 313, 1070132580u, 409584884u, 3239758947u, 755795129u, 1070153550u, 1757091400u, 0, TAN_TOLERANCE, 0},
+{ 314, 1075772446u, 1819156379u, 3251342302u, 2982669005u, 1076001886u, 3576153658u, 0, TAN_TOLERANCE, 0},
+{ 315, 1101563433u, 2080534280u, 3188254060u, 449171797u, 3225174135u, 2677838542u, 0, TAN_TOLERANCE, 0},
+{ 316, 1095956900u, 168744837u, 3214950009u, 1322217822u, 3220353572u, 894592656u, 0, TAN_TOLERANCE, 0},
+{ 317, 3254226900u, 3250487255u, 1062120700u, 1876195180u, 3221399760u, 1926104126u, 0, TAN_TOLERANCE, 0},
+{ 318, 3226343480u, 1336400247u, 1098057903u, 3314079581u, 3219222587u, 3150545361u, 0, TAN_TOLERANCE, 0},
+{ 319, 3203678820u, 265025555u, 1063854282u, 3779482256u, 3203678820u, 265735124u, 0, TAN_TOLERANCE, 0},
+{ 320, 1067300501u, 887044257u, 1054789618u, 2732056261u, 1067301047u, 3919915468u, 0, TAN_TOLERANCE, 0},
+{ 321, 1050106742u, 4027115185u, 3191764868u, 2940199511u, 1050106742u, 4027115450u, 0, TAN_TOLERANCE, 0},
+{ 322, 3202500155u, 2875684421u, 3227459837u, 2251967570u, 3202500155u, 2875814613u, 0, TAN_TOLERANCE, 0},
+{ 323, 1063244412u, 284173546u, 3238823679u, 3557800647u, 1063244414u, 2957655509u, 0, TAN_TOLERANCE, 0},
+{ 324, 1101458560u, 3147771266u, 3220110464u, 2933364246u, 1072229904u, 3258427445u, 0, TAN_TOLERANCE, 0},
+{ 325, 1064853160u, 3366183281u, 3234870843u, 537442654u, 1064853179u, 2700966725u, 0, TAN_TOLERANCE, 0},
+{ 326, 3244118788u, 2529029548u, 3249882819u, 3781513577u, 3222066350u, 1805132578u, 0, TAN_TOLERANCE, 0},
+{ 327, 3213436354u, 1080845539u, 3206760016u, 911778687u, 3213436437u, 368321244u, 0, TAN_TOLERANCE, 0},
+{ 328, 3191951036u, 469586759u, 1091830022u, 3080528840u, 3191951036u, 469586759u, 0, TAN_TOLERANCE, 0},
+{ 329, 1080249104u, 2863108169u, 3225605506u, 2508274250u, 1071359258u, 3991537001u, 0, TAN_TOLERANCE, 0},
+{ 330, 3210826984u, 4080017377u, 3206492941u, 1470284690u, 3210826986u, 2768909464u, 0, TAN_TOLERANCE, 0},
+{ 331, 3207120390u, 3867917386u, 1102054928u, 3504746045u, 3207120390u, 3950952741u, 0, TAN_TOLERANCE, 0},
+{ 332, 1064522279u, 2962134101u, 3244741577u, 3390537350u, 1064522289u, 347807104u, 0, TAN_TOLERANCE, 0},
+{ 333, 1088201813u, 1702237980u, 1071598971u, 1102587474u, 3219437889u, 1844190515u, 0, TAN_TOLERANCE, 0},
+{ 334, 3202970118u, 2180218657u, 3211592260u, 1206527853u, 3202970118u, 2180570126u, 0, TAN_TOLERANCE, 0},
+{ 335, 3197084744u, 394130786u, 3242511482u, 2437699868u, 3197084744u, 394130951u, 0, TAN_TOLERANCE, 0},
+{ 336, 1044237059u, 849581558u, 3252006507u, 2008614943u, 1044237059u, 849581558u, 0, TAN_TOLERANCE, 0},
+{ 337, 3210140014u, 3128971673u, 3249137531u, 2773583059u, 3210140015u, 3003661168u, 0, TAN_TOLERANCE, 0},
+{ 338, 1085029866u, 590727700u, 3248651761u, 2183878539u, 3220819737u, 141721044u, 0, TAN_TOLERANCE, 0},
+{ 339, 1101098629u, 820687580u, 3208143496u, 1402434664u, 3218501871u, 3201848623u, 0, TAN_TOLERANCE, 0},
+{ 340, 3252290835u, 1873709254u, 3245167989u, 44275991u, 1072391033u, 398964073u, 0, TAN_TOLERANCE, 0},
+{ 341, 3189668753u, 1174874204u, 3208263730u, 2360372288u, 3189668753u, 1174874204u, 0, TAN_TOLERANCE, 0},
+{ 342, 1103854676u, 937573440u, 3208953761u, 211240241u, 3220217779u, 1087740507u, 0, TAN_TOLERANCE, 0},
+{ 343, 3243548934u, 2469774991u, 1043117070u, 3380071805u, 1072701508u, 2365704893u, 0, TAN_TOLERANCE, 0},
+{ 344, 1058121042u, 442507560u, 3254252803u, 3257889649u, 1058121042u, 450009292u, 0, TAN_TOLERANCE, 0},
+{ 345, 1068850520u, 1854921625u, 1049810168u, 2729627545u, 1068853780u, 531700973u, 0, TAN_TOLERANCE, 0},
+{ 346, 3254712629u, 4001809575u, 3240128649u, 278261523u, 3219319223u, 2548086449u, 0, TAN_TOLERANCE, 0},
+{ 347, 1087224694u, 1793907966u, 3238955714u, 398859249u, 3221668828u, 2845828017u, 0, TAN_TOLERANCE, 0},
+{ 348, 3200952547u, 2511916952u, 3219195283u, 1697158299u, 3200952547u, 2511942216u, 0, TAN_TOLERANCE, 0},
+{ 349, 1069985548u, 3230931724u, 3243897690u, 3508781585u, 1070001309u, 2120433746u, 0, TAN_TOLERANCE, 0},
+{ 350, 1103847606u, 1674254897u, 1046547577u, 217148561u, 3219239077u, 1170656967u, 0, TAN_TOLERANCE, 0},
+{ 351, 3211263954u, 3275604304u, 3194840159u, 2991205850u, 3211263959u, 1126519421u, 0, TAN_TOLERANCE, 0},
+{ 352, 3195249375u, 3509997278u, 3248888030u, 3897986511u, 3195249375u, 3509997288u, 0, TAN_TOLERANCE, 0},
+{ 353, 1047182435u, 2156824613u, 1042295665u, 1239257646u, 1047182435u, 2156824619u, 0, TAN_TOLERANCE, 0},
+{ 354, 3213264085u, 1073153314u, 3250031627u, 2567234990u, 3213264144u, 3128333673u, 0, TAN_TOLERANCE, 0},
+{ 355, 3190593412u, 4261696995u, 3197784432u, 323702024u, 3190593412u, 4261696995u, 0, TAN_TOLERANCE, 0},
+{ 356, 3243690997u, 4075177615u, 3202791065u, 1919006082u, 3223031388u, 2896528219u, 0, TAN_TOLERANCE, 0},
+{ 357, 3239270013u, 386429966u, 1086504491u, 3698826164u, 1076373957u, 4112820482u, 0, TAN_TOLERANCE, 0},
+{ 358, 1078327190u, 1681986446u, 3194985869u, 3072950140u, 3215497965u, 2409206796u, 0, TAN_TOLERANCE, 0},
+{ 359, 3217311933u, 3719038997u, 1055433962u, 3331415058u, 3217323174u, 2513459184u, 0, TAN_TOLERANCE, 0},
+{ 360, 1060749713u, 2420250111u, 3238002206u, 1928661079u, 1060749713u, 2793500608u, 0, TAN_TOLERANCE, 0},
+{ 361, 1081914210u, 3679866727u, 3227386672u, 1273835792u, 1071850648u, 1052972091u, 0, TAN_TOLERANCE, 0},
+{ 362, 1041622738u, 2682092368u, 3234222284u, 1325425811u, 1041622738u, 2682092368u, 0, TAN_TOLERANCE, 0},
+{ 363, 1056312613u, 4175172697u, 3208346191u, 2130706153u, 1056312613u, 4176087705u, 0, TAN_TOLERANCE, 0},
+{ 364, 1092089624u, 1200784450u, 1083605096u, 1248595607u, 1071297510u, 2267447579u, 0, TAN_TOLERANCE, 0},
+{ 365, 3213890863u, 1897285171u, 3251296075u, 944966123u, 3213890950u, 492091915u, 0, TAN_TOLERANCE, 0},
+{ 366, 3241371250u, 2270747330u, 3230692631u, 422503284u, 1075781685u, 3800245394u, 0, TAN_TOLERANCE, 0},
+{ 367, 1084120037u, 2857564741u, 1075647403u, 3308906709u, 1076086650u, 4264754170u, 0, TAN_TOLERANCE, 0},
+{ 368, 3203475098u, 1380066948u, 3232612906u, 2613634294u, 3203475098u, 1380497446u, 0, TAN_TOLERANCE, 0},
+{ 369, 1063890856u, 4022784584u, 1060483857u, 3264056381u, 1063890862u, 1946986717u, 0, TAN_TOLERANCE, 0},
+{ 370, 1044637404u, 1778509100u, 3213146285u, 2665833973u, 1044637404u, 1778509100u, 0, TAN_TOLERANCE, 0},
+{ 371, 3216727300u, 1859175955u, 1079949560u, 4258450607u, 3216734161u, 1076419177u, 0, TAN_TOLERANCE, 0},
+{ 372, 1048277388u, 4128020197u, 1076266146u, 4122840980u, 1048277388u, 4128020224u, 0, TAN_TOLERANCE, 0},
+{ 373, 3193183163u, 2454653987u, 3229487005u, 2977478685u, 3193183163u, 2454653988u, 0, TAN_TOLERANCE, 0},
+{ 374, 3253556483u, 1355181872u, 1095308770u, 436846481u, 1070455744u, 2783739970u, 0, TAN_TOLERANCE, 0},
+{ 375, 3246605302u, 2592856453u, 3247825559u, 3195234082u, 1072158682u, 4191053951u, 0, TAN_TOLERANCE, 0},
+{ 376, 3222118023u, 3554670043u, 1091621009u, 3321236467u, 3219396934u, 1126482929u, 0, TAN_TOLERANCE, 0},
+{ 377, 1069012833u, 1936670355u, 1095715713u, 2958468553u, 1069017366u, 1662345773u, 0, TAN_TOLERANCE, 0},
+{ 378, 3192291109u, 2960339502u, 1098808013u, 1044068983u, 3192291109u, 2960339502u, 0, TAN_TOLERANCE, 0},
+{ 379, 3196691185u, 4093388677u, 1095478112u, 1735930261u, 3196691185u, 4093388765u, 0, TAN_TOLERANCE, 0},
+{ 380, 1091040302u, 1807398746u, 3195743135u, 4261616162u, 3218599037u, 2355104691u, 0, TAN_TOLERANCE, 0},
+{ 381, 3209294194u, 3250576797u, 1059002384u, 3043079652u, 3209294195u, 481373147u, 0, TAN_TOLERANCE, 0},
+{ 382, 1069207109u, 666051428u, 3208765404u, 1912684117u, 1069213557u, 3613017928u, 0, TAN_TOLERANCE, 0},
+{ 383, 1103487420u, 1949030179u, 1096388934u, 896459246u, 3220083347u, 1401180812u, 0, TAN_TOLERANCE, 0},
+{ 384, 1054300653u, 622499767u, 1066707637u, 1490260486u, 1054300653u, 622567676u, 0, TAN_TOLERANCE, 0},
+{ 385, 1106688493u, 1490616165u, 3251242436u, 795675736u, 1071299621u, 1833357839u, 0, TAN_TOLERANCE, 0},
+{ 386, 1080943896u, 3662877092u, 3234317146u, 3200513112u, 1071312158u, 2927807819u, 0, TAN_TOLERANCE, 0},
+{ 387, 1084088786u, 1356101968u, 3236536816u, 3062844611u, 3220131839u, 1020215585u, 0, TAN_TOLERANCE, 0},
+{ 388, 3219922640u, 2284484846u, 3219498359u, 3240896015u, 3220393550u, 2961364171u, 0, TAN_TOLERANCE, 0},
+{ 389, 3235759689u, 494503287u, 1092811254u, 142673998u, 1066221278u, 644259700u, 0, TAN_TOLERANCE, 0},
+{ 390, 3252125916u, 3394882641u, 3225306538u, 364852125u, 1072736225u, 2528701453u, 0, TAN_TOLERANCE, 0},
+{ 391, 3225261763u, 193885269u, 1088149839u, 1359805831u, 3222178190u, 3117314156u, 0, TAN_TOLERANCE, 0},
+{ 392, 3200484782u, 592580907u, 3199560872u, 3086438952u, 3200484782u, 592590827u, 0, TAN_TOLERANCE, 0},
+{ 393, 1059518664u, 1778008540u, 1049064687u, 73581647u, 1059518664u, 1844212540u, 0, TAN_TOLERANCE, 0},
+{ 394, 3246733598u, 233240285u, 1081923320u, 2710903921u, 1076444640u, 2943138915u, 0, TAN_TOLERANCE, 0},
+{ 395, 1069513767u, 3719878805u, 1079866720u, 3615458228u, 1069524234u, 4006435562u, 0, TAN_TOLERANCE, 0},
+{ 396, 3221194724u, 3647632375u, 3247225271u, 3839959621u, 1073933717u, 2553172396u, 0, TAN_TOLERANCE, 0},
+{ 397, 1103401096u, 2232210456u, 3235434773u, 224271737u, 3219565171u, 2155865246u, 0, TAN_TOLERANCE, 0},
+{ 398, 3193003684u, 2134662911u, 3190390590u, 4239009051u, 3193003684u, 2134662911u, 0, TAN_TOLERANCE, 0},
+{ 399, 1080526145u, 2305279897u, 1077668039u, 1854523320u, 3218473959u, 1086770027u, 0, TAN_TOLERANCE, 0},
+{ 400, 3219864259u, 538224650u, 3206153057u, 1379649610u, 3220324172u, 4086099737u, 0, TAN_TOLERANCE, 0},
+{ 401, 3196410507u, 3683897920u, 3244167599u, 3647579469u, 3196410507u, 3683897971u, 0, TAN_TOLERANCE, 0},
+{ 402, 1090280933u, 2694093608u, 1042775347u, 598406111u, 3223377708u, 629310991u, 0, TAN_TOLERANCE, 0},
+{ 403, 3211635392u, 872706833u, 1084802480u, 2200602798u, 3211635400u, 3018747109u, 0, TAN_TOLERANCE, 0},
+{ 404, 1042339597u, 904146293u, 1060867322u, 1729685598u, 1042339597u, 904146293u, 0, TAN_TOLERANCE, 0},
+{ 405, 3195694970u, 1894173462u, 3232800651u, 191960416u, 3195694970u, 1894173486u, 0, TAN_TOLERANCE, 0},
+{ 406, 1091225343u, 3521028551u, 1054522089u, 3287274359u, 1075379070u, 2589593036u, 0, TAN_TOLERANCE, 0},
+{ 407, 1095386964u, 959640601u, 3201578263u, 4136915018u, 1071816287u, 2768052123u, 0, TAN_TOLERANCE, 0},
+{ 408, 1064005451u, 1553716379u, 1106027987u, 984725765u, 1064005458u, 358714987u, 0, TAN_TOLERANCE, 0},
+{ 409, 3238832641u, 2287646644u, 3240329321u, 2276183378u, 3220726984u, 1232223276u, 0, TAN_TOLERANCE, 0},
+{ 410, 1068209174u, 3940225170u, 3199544434u, 997572161u, 1068210924u, 3866659980u, 0, TAN_TOLERANCE, 0},
+{ 411, 3212768361u, 36116288u, 3206886566u, 4196602670u, 3212768399u, 2705633912u, 0, TAN_TOLERANCE, 0},
+{ 412, 3241695853u, 3550227562u, 3207257983u, 2747744117u, 1068532712u, 2849678857u, 0, TAN_TOLERANCE, 0},
+{ 413, 1104236126u, 507130047u, 1048359321u, 3229888373u, 1075934101u, 170837419u, 0, TAN_TOLERANCE, 0},
+{ 414, 3222996778u, 2210969014u, 1081031001u, 1946786091u, 3219155104u, 2257647455u, 0, TAN_TOLERANCE, 0},
+{ 415, 3236306990u, 4059150589u, 3189759234u, 1177045799u, 1072876040u, 2482392566u, 0, TAN_TOLERANCE, 0},
+{ 416, 1093103612u, 2664812822u, 1050343198u, 2034180320u, 1075572080u, 1506141174u, 0, TAN_TOLERANCE, 0},
+{ 417, 3213779117u, 1175750283u, 3235559706u, 1424491340u, 3213779263u, 1242749298u, 0, TAN_TOLERANCE, 0},
+{ 418, 3213904193u, 1630036121u, 3231972785u, 3195479448u, 3213904283u, 1644097468u, 0, TAN_TOLERANCE, 0},
+{ 419, 1090429875u, 2527029044u, 1046927050u, 4000723255u, 3221257439u, 2628398620u, 0, TAN_TOLERANCE, 0},
+{ 420, 1085208677u, 3335703647u, 3237349676u, 3869440059u, 3219201429u, 3510636886u, 0, TAN_TOLERANCE, 0},
+{ 421, 1091433848u, 3888398377u, 3196041693u, 1290567220u, 3221736636u, 3727668451u, 0, TAN_TOLERANCE, 0},
+{ 422, 1066679070u, 3242451480u, 3248384948u, 707431021u, 1066679243u, 1240900922u, 0, TAN_TOLERANCE, 0},
+{ 423, 1083230509u, 2739665123u, 1060777905u, 1733073225u, 3217080313u, 3809469110u, 0, TAN_TOLERANCE, 0},
+{ 424, 1078517061u, 1297274853u, 3208848704u, 3341639139u, 3219327748u, 2265747130u, 0, TAN_TOLERANCE, 0},
+{ 425, 1046570941u, 2228057309u, 1084318902u, 1317851136u, 1046570941u, 2228057311u, 0, TAN_TOLERANCE, 0},
+{ 426, 1088255327u, 270039934u, 3241414679u, 3063626339u, 3216402439u, 1024991753u, 0, TAN_TOLERANCE, 0},
+{ 427, 3219178350u, 83062251u, 3211262173u, 2659016437u, 3219291255u, 480675725u, 0, TAN_TOLERANCE, 0},
+{ 428, 1095743886u, 3833539373u, 3206667189u, 1567476111u, 1072080952u, 3686857265u, 0, TAN_TOLERANCE, 0},
+{ 429, 3205195072u, 2382776852u, 3249232579u, 1546622468u, 3205195072u, 2389794914u, 0, TAN_TOLERANCE, 0},
+{ 430, 1085536439u, 1714300821u, 1104130938u, 4167591598u, 1074883815u, 2402017247u, 0, TAN_TOLERANCE, 0},
+{ 431, 1051092760u, 2798720100u, 1086978789u, 449990704u, 1051092760u, 2798721037u, 0, TAN_TOLERANCE, 0},
+{ 432, 3231198415u, 4039516226u, 3244344107u, 4272932619u, 3225414740u, 1989232767u, 0, TAN_TOLERANCE, 0},
+{ 433, 3222708441u, 1683007544u, 1091105663u, 3805494321u, 1072112688u, 1057460259u, 0, TAN_TOLERANCE, 0},
+{ 434, 3220852948u, 2072627412u, 1094383324u, 3394151662u, 1076559907u, 1870123512u, 0, TAN_TOLERANCE, 0},
+{ 435, 3220570024u, 1120106427u, 3223631624u, 3404608264u, 3222546600u, 2319235113u, 0, TAN_TOLERANCE, 0},
+{ 436, 1097859997u, 559918757u, 3205077053u, 908100198u, 1073861320u, 484074424u, 0, TAN_TOLERANCE, 0},
+{ 437, 1042677918u, 2026673913u, 3244833635u, 2844573214u, 1042677918u, 2026673913u, 0, TAN_TOLERANCE, 0},
+{ 438, 3254567259u, 3946837259u, 3234993796u, 3850406820u, 1071188185u, 191486672u, 0, TAN_TOLERANCE, 0},
+{ 439, 1057479809u, 3139330994u, 1046133568u, 1539650690u, 1057479809u, 3143968281u, 0, TAN_TOLERANCE, 0},
+{ 440, 3236705500u, 1554593884u, 3228899878u, 2813752562u, 1072433226u, 4063726012u, 0, TAN_TOLERANCE, 0},
+{ 441, 1056505004u, 3804703138u, 1072931071u, 2053677923u, 1056505004u, 3806034394u, 0, TAN_TOLERANCE, 0},
+{ 442, 3244864299u, 289355864u, 1078453818u, 2143066338u, 1071978047u, 2504678044u, 0, TAN_TOLERANCE, 0},
+{ 443, 3203939880u, 2157691971u, 1106629150u, 110806409u, 3203939880u, 2158907786u, 0, TAN_TOLERANCE, 0},
+{ 444, 1082157019u, 3570399481u, 1085637605u, 180265334u, 1071014074u, 1108110341u, 0, TAN_TOLERANCE, 0},
+{ 445, 3200980182u, 558779875u, 3202046748u, 2338464653u, 3200980182u, 558806357u, 0, TAN_TOLERANCE, 0},
+{ 446, 1045705464u, 1703969219u, 3229797258u, 1417521063u, 1045705464u, 1703969220u, 0, TAN_TOLERANCE, 0},
+{ 447, 3237782261u, 3917440951u, 1051668894u, 3736066983u, 3220361662u, 3501153891u, 0, TAN_TOLERANCE, 0},
+{ 448, 1064752080u, 3106613409u, 1066627453u, 2735392257u, 1064752096u, 910406802u, 0, TAN_TOLERANCE, 0},
+{ 449, 1065665372u, 2229777605u, 1065061963u, 2405869925u, 1065665419u, 608228727u, 0, TAN_TOLERANCE, 0},
+{ 450, 3239463229u, 3967957902u, 1057416138u, 3459188071u, 3219968678u, 452000557u, 0, TAN_TOLERANCE, 0},
+{ 451, 1068639210u, 3699016825u, 3249713090u, 796144848u, 1068641204u, 2916876063u, 0, TAN_TOLERANCE, 0},
+{ 452, 3228816396u, 3285165564u, 3211948811u, 401510871u, 1068004951u, 4119011697u, 0, TAN_TOLERANCE, 0},
+{ 453, 1094257658u, 634857910u, 3199607513u, 914218057u, 3218354966u, 974404261u, 0, TAN_TOLERANCE, 0},
+{ 454, 1083743336u, 2030735578u, 3233855943u, 965677531u, 1073910531u, 785127245u, 0, TAN_TOLERANCE, 0},
+{ 455, 1079556815u, 3957229084u, 1051050470u, 3123776651u, 1077427671u, 2842011737u, 0, TAN_TOLERANCE, 0},
+{ 456, 3221863333u, 162122081u, 3239376395u, 108064594u, 3216195190u, 870993357u, 0, TAN_TOLERANCE, 0},
+{ 457, 3237271786u, 869031839u, 3225020876u, 1344301606u, 1073250300u, 2630856992u, 0, TAN_TOLERANCE, 0},
+{ 458, 3214433474u, 946696117u, 3231825228u, 1700703647u, 3214433775u, 2279568879u, 0, TAN_TOLERANCE, 0},
+{ 459, 1075492875u, 3394168074u, 1076939786u, 1666995668u, 1071303797u, 542229427u, 0, TAN_TOLERANCE, 0},
+{ 460, 3208774795u, 2488789804u, 3238508333u, 1506943664u, 3208774795u, 2999907289u, 0, TAN_TOLERANCE, 0},
+{ 461, 1072788663u, 3844072288u, 3202592279u, 2630019853u, 1073659779u, 84316650u, 0, TAN_TOLERANCE, 0},
+{ 462, 3219934542u, 1244307192u, 3191297711u, 2540916692u, 3220408266u, 2332373750u, 0, TAN_TOLERANCE, 0},
+{ 463, 3200062692u, 2871645739u, 3239081581u, 1440249115u, 3200062692u, 2871653937u, 0, TAN_TOLERANCE, 0},
+{ 464, 1068350633u, 1231934926u, 3236746788u, 603977748u, 1068352827u, 2493929906u, 0, TAN_TOLERANCE, 0},
+{ 465, 3195449689u, 2386312545u, 1063169277u, 2715234268u, 3195449689u, 2386312560u, 0, TAN_TOLERANCE, 0},
+{ 466, 1087803418u, 915867083u, 1046790892u, 3347417612u, 1073825687u, 4247788838u, 0, TAN_TOLERANCE, 0},
+{ 467, 1105984188u, 3553288373u, 1065698616u, 2906680663u, 1072200540u, 3878244721u, 0, TAN_TOLERANCE, 0},
+{ 468, 1045506226u, 2342364630u, 1051356723u, 4019093203u, 1045506226u, 2342364630u, 0, TAN_TOLERANCE, 0},
+{ 469, 3201169162u, 2911548084u, 1105282515u, 2476735795u, 3201169162u, 2911583958u, 0, TAN_TOLERANCE, 0},
+{ 470, 1050472772u, 1836216409u, 1101062307u, 2519592554u, 1050472772u, 1836216914u, 0, TAN_TOLERANCE, 0},
+{ 471, 1070178161u, 1235369496u, 3222946447u, 668087854u, 1070200956u, 984903311u, 0, TAN_TOLERANCE, 0},
+{ 472, 3208554596u, 2981820811u, 1059838516u, 2845580478u, 3208554596u, 3611299598u, 0, TAN_TOLERANCE, 0},
+{ 473, 3193931414u, 1565550570u, 3217165795u, 4162017137u, 3193931414u, 1565550573u, 0, TAN_TOLERANCE, 0},
+{ 474, 3237251378u, 2808968027u, 1055630096u, 1782326814u, 1073199382u, 3093545191u, 0, TAN_TOLERANCE, 0},
+{ 475, 1053576974u, 1492622658u, 3216653077u, 3972512122u, 1053576974u, 1492652906u, 0, TAN_TOLERANCE, 0},
+{ 476, 3222171679u, 2722693603u, 3227814791u, 3169731970u, 3219717982u, 2347297495u, 0, TAN_TOLERANCE, 0},
+{ 477, 3217906631u, 899763203u, 3207606001u, 2804747833u, 3217941096u, 1292535038u, 0, TAN_TOLERANCE, 0},
+{ 478, 3230670325u, 3789058912u, 3228095081u, 4135937628u, 3220946737u, 3788028633u, 0, TAN_TOLERANCE, 0},
+{ 479, 1060199382u, 1682808307u, 3206960335u, 232877759u, 1060199382u, 1797073325u, 0, TAN_TOLERANCE, 0},
+{ 480, 3242091486u, 2851963139u, 3246852961u, 2590862592u, 1071899939u, 3363220171u, 0, TAN_TOLERANCE, 0},
+{ 481, 1081200406u, 2422232642u, 3234779662u, 290458310u, 3220569877u, 2524572923u, 0, TAN_TOLERANCE, 0},
+{ 482, 3210671078u, 1082582386u, 1075605675u, 2602133689u, 3210671080u, 2857813414u, 0, TAN_TOLERANCE, 0},
+{ 483, 3239818611u, 1789635787u, 1059414278u, 1048286093u, 1074416318u, 2900047215u, 0, TAN_TOLERANCE, 0},
+{ 484, 1098330542u, 231339448u, 1055573265u, 504907415u, 3215743938u, 3288233724u, 0, TAN_TOLERANCE, 0},
+{ 485, 1063211461u, 1153251200u, 3204617090u, 1772013857u, 1063211463u, 3301239304u, 0, TAN_TOLERANCE, 0},
+{ 486, 1099551055u, 1082898276u, 3212089272u, 1449080862u, 3218613781u, 3243588953u, 0, TAN_TOLERANCE, 0},
+{ 487, 1086008285u, 3177299045u, 1058862813u, 809400815u, 1071222953u, 702551442u, 0, TAN_TOLERANCE, 0},
+{ 488, 3230854550u, 1924429710u, 1056464743u, 3349283177u, 1074313482u, 3011874043u, 0, TAN_TOLERANCE, 0},
+{ 489, 3245473391u, 42238036u, 1042379500u, 2113559863u, 1073052939u, 1170520627u, 0, TAN_TOLERANCE, 0},
+{ 490, 1064761243u, 3304403230u, 3217556703u, 58952646u, 1064761259u, 2338066714u, 0, TAN_TOLERANCE, 0},
+{ 491, 3212669530u, 1645486982u, 3224301095u, 3636267471u, 3212669563u, 2707928865u, 0, TAN_TOLERANCE, 0},
+{ 492, 1062762009u, 619402181u, 3235208235u, 557360557u, 1062762010u, 1440296348u, 0, TAN_TOLERANCE, 0},
+{ 493, 3238238394u, 110029735u, 1046937383u, 984375729u, 1069607562u, 1046851138u, 0, TAN_TOLERANCE, 0},
+{ 494, 3189496738u, 4063688092u, 3203235744u, 1049950343u, 3189496738u, 4063688092u, 0, TAN_TOLERANCE, 0},
+{ 495, 1062350619u, 650996069u, 1054971928u, 3953359826u, 1062350619u, 2752584734u, 0, TAN_TOLERANCE, 0},
+{ 496, 3227055805u, 66926332u, 1090561839u, 1379780888u, 1072277043u, 4160526258u, 0, TAN_TOLERANCE, 0},
+{ 497, 3233453307u, 2803378256u, 1086057989u, 498534626u, 3218298031u, 1208122603u, 0, TAN_TOLERANCE, 0},
+{ 498, 1082618553u, 2846400785u, 1047142525u, 1375153550u, 3219225392u, 1107778179u, 0, TAN_TOLERANCE, 0},
+{ 499, 1044581201u, 2869128958u, 1070972315u, 4246440273u, 1044581201u, 2869128958u, 0, TAN_TOLERANCE, 0},
+{ 500, 1051832506u, 3112381207u, 1044430965u, 3981604561u, 1051832506u, 3112383052u, 0, TAN_TOLERANCE, 0},
+{ 501, 3231254997u, 243303420u, 1093735824u, 1575581926u, 3218083448u, 3006576476u, 0, TAN_TOLERANCE, 0},
+{ 502, 3239137997u, 3218865041u, 3204803496u, 3840388050u, 3218098013u, 2658530377u, 0, TAN_TOLERANCE, 0},
+{ 503, 1048415431u, 336846959u, 1052664471u, 3798336786u, 1048415431u, 336846993u, 0, TAN_TOLERANCE, 0},
+{ 504, 1055954236u, 3639240976u, 1081202165u, 1844741676u, 1055954236u, 3639630115u, 0, TAN_TOLERANCE, 0},
+{ 505, 3211904793u, 717293069u, 3211534283u, 582401011u, 3211904800u, 2074293655u, 0, TAN_TOLERANCE, 0},
+{ 506, 3251962512u, 3766248610u, 3196520332u, 1174437546u, 1073325344u, 780358362u, 0, TAN_TOLERANCE, 0},
+{ 507, 1083431226u, 756959182u, 3204099341u, 1581804034u, 1073722216u, 1460652646u, 0, TAN_TOLERANCE, 0},
+{ 508, 3205806444u, 3560686300u, 3220980617u, 4277975772u, 3205806444u, 3572839184u, 0, TAN_TOLERANCE, 0},
+{ 509, 3209906076u, 2598148853u, 3217622194u, 3460421008u, 3209906077u, 808032968u, 0, TAN_TOLERANCE, 0},
+{ 510, 1066720824u, 136600515u, 3209934920u, 3340653128u, 1066721013u, 1659952300u, 0, TAN_TOLERANCE, 0},
+{ 511, 1096820310u, 1045480938u, 3251354609u, 4133432965u, 3221461219u, 2735258820u, 0, TAN_TOLERANCE, 0},
+{ 512, 1091599431u, 1630207738u, 3239996829u, 2393354808u, 3219464252u, 498852281u, 0, TAN_TOLERANCE, 0},
+{ 513, 3190626018u, 3739770117u, 1059520750u, 3959551225u, 3190626018u, 3739770117u, 0, TAN_TOLERANCE, 0},
+{ 514, 3230730505u, 1498861716u, 1091297147u, 847410798u, 3217049269u, 1133813157u, 0, TAN_TOLERANCE, 0},
+{ 515, 1073516688u, 983275314u, 3232538664u, 2244973629u, 3222428802u, 614562084u, 0, TAN_TOLERANCE, 0},
+{ 516, 1054849265u, 2353103845u, 3235718771u, 2978889966u, 1054849265u, 2353274099u, 0, TAN_TOLERANCE, 0},
+{ 517, 3251357992u, 1546972125u, 3249076079u, 1987349196u, 1077259194u, 2242398903u, 0, TAN_TOLERANCE, 0},
+{ 518, 3238219513u, 2769161072u, 1075207126u, 292616282u, 1072821398u, 807086196u, 0, TAN_TOLERANCE, 0},
+{ 519, 3199712298u, 36855311u, 1052128202u, 1479039342u, 3199712298u, 36859768u, 0, TAN_TOLERANCE, 0},
+{ 520, 1083757053u, 2027463605u, 1066023013u, 3369686340u, 3221343255u, 19927100u, 0, TAN_TOLERANCE, 0},
+{ 521, 3197852749u, 3808681655u, 1054161346u, 1821773119u, 3197852749u, 3808682082u, 0, TAN_TOLERANCE, 0},
+{ 522, 1040685928u, 3175490326u, 3226879970u, 845687760u, 1040685928u, 3175490326u, 0, TAN_TOLERANCE, 0},
+{ 523, 1042302993u, 3124482451u, 3242748377u, 3259417226u, 1042302993u, 3124482451u, 0, TAN_TOLERANCE, 0},
+{ 524, 1045245695u, 2751606436u, 3236210939u, 3923142740u, 1045245695u, 2751606437u, 0, TAN_TOLERANCE, 0},
+{ 525, 1095694737u, 2016872044u, 3228408064u, 4201274408u, 3220556003u, 304657644u, 0, TAN_TOLERANCE, 0},
+{ 526, 3199349254u, 1019916843u, 3219974785u, 1977881787u, 3199349254u, 1019918851u, 0, TAN_TOLERANCE, 0},
+{ 527, 3199478752u, 2060433318u, 1075872515u, 366073725u, 3199478752u, 2060436054u, 0, TAN_TOLERANCE, 0},
+{ 528, 3191180557u, 1098469906u, 1082900695u, 2349346832u, 3191180557u, 1098469906u, 0, TAN_TOLERANCE, 0},
+{ 529, 3209974707u, 3011196295u, 3252479932u, 2459281672u, 3209974708u, 1651824903u, 0, TAN_TOLERANCE, 0},
+{ 530, 3221334323u, 2843222682u, 1089275809u, 298982001u, 1073062403u, 2209304510u, 0, TAN_TOLERANCE, 0},
+{ 531, 1101737698u, 914741728u, 3203468059u, 2833809843u, 1073172513u, 3841288246u, 0, TAN_TOLERANCE, 0},
+{ 532, 3236763878u, 1274901962u, 3241535845u, 3759113509u, 3223536244u, 2526279170u, 0, TAN_TOLERANCE, 0},
+{ 533, 3245916442u, 2134927252u, 3253802671u, 3013731444u, 3221779667u, 2145793921u, 0, TAN_TOLERANCE, 0},
+{ 534, 1099201341u, 2230655177u, 3254510616u, 1249674366u, 1069935420u, 2610885886u, 0, TAN_TOLERANCE, 0},
+{ 535, 1062971253u, 717357389u, 1083533731u, 3746683362u, 1062971254u, 3814343624u, 0, TAN_TOLERANCE, 0},
+{ 536, 3213773114u, 834976849u, 3217357661u, 2465861779u, 3213773258u, 3835570390u, 0, TAN_TOLERANCE, 0},
+{ 537, 1045656117u, 1385714428u, 1053358395u, 3007113740u, 1045656117u, 1385714429u, 0, TAN_TOLERANCE, 0},
+{ 538, 1050527919u, 599268545u, 3201368210u, 2309854744u, 1050527919u, 599269095u, 0, TAN_TOLERANCE, 0},
+{ 539, 1069954454u, 2840234388u, 3232496515u, 333365983u, 1069969239u, 824923776u, 0, TAN_TOLERANCE, 0},
+{ 540, 1045922781u, 3136078996u, 3194520860u, 2650572904u, 1045922781u, 3136078997u, 0, TAN_TOLERANCE, 0},
+{ 541, 3233687691u, 2405805086u, 3251640319u, 324233833u, 1076400826u, 1695372281u, 0, TAN_TOLERANCE, 0},
+{ 542, 1106699146u, 2589598340u, 3254677807u, 952438812u, 1073169861u, 1925719938u, 0, TAN_TOLERANCE, 0},
+{ 543, 3189114773u, 1922837702u, 3216892718u, 3535907549u, 3189114773u, 1922837702u, 0, TAN_TOLERANCE, 0},
+{ 544, 3243615868u, 261447440u, 3209805849u, 1150571079u, 3218537959u, 1179754495u, 0, TAN_TOLERANCE, 0},
+{ 545, 1095805232u, 4026487528u, 1073152064u, 27340691u, 1071869216u, 2196895529u, 0, TAN_TOLERANCE, 0},
+{ 546, 3229123692u, 338765118u, 1086225786u, 3207238249u, 1071434156u, 2463812124u, 0, TAN_TOLERANCE, 0},
+{ 547, 3196182703u, 1085283176u, 3187775111u, 1601194210u, 3196182703u, 1085283206u, 0, TAN_TOLERANCE, 0},
+{ 548, 1091520173u, 3031712790u, 3252307859u, 170666844u, 1073788586u, 1490989523u, 0, TAN_TOLERANCE, 0},
+{ 549, 3218862231u, 3148395674u, 1041913758u, 3306391490u, 3218988164u, 3732649501u, 0, TAN_TOLERANCE, 0},
+{ 550, 3201277070u, 2205233857u, 3208100078u, 3993195511u, 3201277070u, 2205275976u, 0, TAN_TOLERANCE, 0},
+{ 551, 1067699608u, 4282766727u, 1072820377u, 1874778218u, 1067700256u, 2388367432u, 0, TAN_TOLERANCE, 0},
+{ 552, 3210833092u, 2920860798u, 3218070226u, 3104066154u, 3210833094u, 1727805504u, 0, TAN_TOLERANCE, 0},
+{ 553, 3204950351u, 969991373u, 3250596895u, 1734386152u, 3204950351u, 974513035u, 0, TAN_TOLERANCE, 0},
+{ 554, 3238915818u, 1218740205u, 3239802737u, 2610078504u, 1071992715u, 2476766203u, 0, TAN_TOLERANCE, 0},
+{ 555, 3206031242u, 1485218325u, 3220870240u, 3591664613u, 3206031242u, 1504459448u, 0, TAN_TOLERANCE, 0},
+{ 556, 3202074143u, 690157417u, 3190850619u, 4192347699u, 3202074143u, 690271681u, 0, TAN_TOLERANCE, 0},
+{ 557, 1096053810u, 4009839784u, 1079670252u, 394167192u, 3225629605u, 4134812175u, 0, TAN_TOLERANCE, 0},
+{ 558, 3234559237u, 961532417u, 1092588071u, 2923790239u, 1071989085u, 3456632070u, 0, TAN_TOLERANCE, 0},
+{ 559, 3203879091u, 4174125604u, 1050682630u, 2169701868u, 3203879091u, 4175207134u, 0, TAN_TOLERANCE, 0},
+{ 560, 3243092475u, 4146748230u, 1087373950u, 2481478351u, 3215224829u, 3105536152u, 0, TAN_TOLERANCE, 0},
+{ 561, 1076987866u, 3984715440u, 1050421618u, 2446142566u, 3222213811u, 498812384u, 0, TAN_TOLERANCE, 0},
+{ 562, 1084172406u, 936290150u, 1100614426u, 3625806370u, 3220199128u, 1358638649u, 0, TAN_TOLERANCE, 0},
+{ 563, 1099787952u, 1866615265u, 3215651428u, 2337013350u, 3219914131u, 2684128678u, 0, TAN_TOLERANCE, 0},
+{ 564, 3253198302u, 712227971u, 1106004723u, 973148499u, 3218269318u, 3721193253u, 0, TAN_TOLERANCE, 0},
+{ 565, 3230088199u, 3409813738u, 3244817008u, 1933503498u, 1073488242u, 3344297858u, 0, TAN_TOLERANCE, 0},
+{ 566, 1079943733u, 3180389060u, 3228735703u, 83422217u, 1065971249u, 1602512451u, 0, TAN_TOLERANCE, 0},
+{ 567, 1077878724u, 556972671u, 3204582372u, 841555801u, 3218291211u, 3107455312u, 0, TAN_TOLERANCE, 0},
+{ 568, 1070767721u, 4189151332u, 1080874032u, 706326922u, 1070803352u, 407939685u, 0, TAN_TOLERANCE, 0},
+{ 569, 1096151307u, 198291836u, 1057281892u, 2188836928u, 1074592119u, 2450977568u, 0, TAN_TOLERANCE, 0},
+{ 570, 1078091995u, 1219449298u, 3228734687u, 3504562743u, 3220571385u, 559673929u, 0, TAN_TOLERANCE, 0},
+{ 571, 3204570464u, 1776099219u, 1094316777u, 4188083896u, 3204570464u, 1778045339u, 0, TAN_TOLERANCE, 0},
+{ 572, 3193845708u, 2614400266u, 1073750227u, 3003203347u, 3193845708u, 2614400268u, 0, TAN_TOLERANCE, 0},
+{ 573, 3213982678u, 2959351406u, 1105603716u, 311851587u, 3213982790u, 192456605u, 0, TAN_TOLERANCE, 0},
+{ 574, 1084544434u, 865443613u, 1097532516u, 3622237781u, 3218629642u, 1586071075u, 0, TAN_TOLERANCE, 0},
+{ 575, 3231786666u, 447506102u, 3195759295u, 3603669725u, 1072160877u, 4222169442u, 0, TAN_TOLERANCE, 0},
+{ 576, 1097890173u, 3934398273u, 1040996422u, 2968621268u, 1076341208u, 2443582384u, 0, TAN_TOLERANCE, 0},
+{ 577, 3196739825u, 784208771u, 1088764788u, 2182296421u, 3196739825u, 784208867u, 0, TAN_TOLERANCE, 0},
+{ 578, 3248332291u, 1527590526u, 3206961556u, 2823164069u, 1073211002u, 2920535413u, 0, TAN_TOLERANCE, 0},
+{ 579, 3236644131u, 3876699591u, 3207481130u, 4028148535u, 3220871901u, 876731950u, 0, TAN_TOLERANCE, 0},
+{ 580, 1083576186u, 2164249756u, 1059857743u, 1785169952u, 1074542491u, 1306706713u, 0, TAN_TOLERANCE, 0},
+{ 581, 1091804009u, 2079273665u, 1080303860u, 625760474u, 3221470601u, 3167060593u, 0, TAN_TOLERANCE, 0},
+{ 582, 3226486108u, 3636214836u, 1068367620u, 2932621925u, 1072938327u, 1971428109u, 0, TAN_TOLERANCE, 0},
+{ 583, 1043995372u, 4274131512u, 1047707755u, 92550763u, 1043995372u, 4274131512u, 0, TAN_TOLERANCE, 0},
+{ 584, 3198822121u, 2648933384u, 1084603503u, 3534304873u, 3198822121u, 2648934875u, 0, TAN_TOLERANCE, 0},
+{ 585, 1064563235u, 3216750767u, 3191088629u, 547482628u, 1064563246u, 349415911u, 0, TAN_TOLERANCE, 0},
+{ 586, 1061084774u, 1420360746u, 1080063101u, 1690029499u, 1061084774u, 2062923873u, 0, TAN_TOLERANCE, 0},
+{ 587, 3229855364u, 1908572179u, 1080112083u, 1228319033u, 3224026442u, 1064578383u, 0, TAN_TOLERANCE, 0},
+{ 588, 1048158178u, 500312015u, 3212368508u, 3864619086u, 1048158178u, 500312037u, 0, TAN_TOLERANCE, 0},
+{ 589, 3221335610u, 4211343447u, 1087492676u, 4272583781u, 1073055146u, 1668809125u, 0, TAN_TOLERANCE, 0},
+{ 590, 1099392394u, 2382118000u, 1042665328u, 567154882u, 1073006307u, 3699440123u, 0, TAN_TOLERANCE, 0},
+{ 591, 1058013442u, 1435344339u, 3216303171u, 2275988178u, 1058013442u, 1440940879u, 0, TAN_TOLERANCE, 0},
+{ 592, 3214538619u, 3403659753u, 3218043030u, 1926480488u, 3214538984u, 2788475836u, 0, TAN_TOLERANCE, 0},
+{ 593, 1076840383u, 1198845185u, 3225556149u, 1130089684u, 3216073797u, 2536472320u, 0, TAN_TOLERANCE, 0},
+{ 594, 3222663042u, 2183928090u, 1048403956u, 963834821u, 1072722791u, 2238943892u, 0, TAN_TOLERANCE, 0},
+{ 595, 1101672960u, 2120625396u, 1041006976u, 2137548527u, 1073487055u, 4205428157u, 0, TAN_TOLERANCE, 0},
+{ 596, 1099230238u, 586700956u, 1059670521u, 303891699u, 3222213898u, 3423099859u, 0, TAN_TOLERANCE, 0},
+{ 597, 3218994498u, 2509132460u, 1102827530u, 2205707903u, 3219140003u, 1207181537u, 0, TAN_TOLERANCE, 0},
+{ 598, 3204860597u, 1229308263u, 3209170414u, 4206576047u, 3204860597u, 1233089342u, 0, TAN_TOLERANCE, 0},
+{ 599, 3224076289u, 4078010749u, 3199236456u, 733478972u, 3221462767u, 2645312571u, 0, TAN_TOLERANCE, 0},
+{ 600, 3197712584u, 4277541051u, 3199806921u, 397102023u, 3197712584u, 4277541385u, 0, TAN_TOLERANCE, 0},
+{ 601, 3195975013u, 900999594u, 3234720188u, 2530214248u, 3195975013u, 900999632u, 0, TAN_TOLERANCE, 0},
+{ 602, 1076543548u, 4000609478u, 1096577064u, 4148592328u, 1072744158u, 901044576u, 0, TAN_TOLERANCE, 0},
+{ 603, 1048668084u, 2154187873u, 3224392607u, 3957250362u, 1048668084u, 2154187900u, 0, TAN_TOLERANCE, 0},
+{ 604, 3223413488u, 2867079200u, 1101870326u, 921212001u, 1072478681u, 1947808256u, 0, TAN_TOLERANCE, 0},
+{ 605, 3233221890u, 674547716u, 1063216239u, 3929755226u, 3221175450u, 1547677557u, 0, TAN_TOLERANCE, 0},
+{ 606, 3240415851u, 3158182449u, 1043794244u, 3259056345u, 1071157174u, 814361401u, 0, TAN_TOLERANCE, 0},
+{ 607, 3236776656u, 3002823940u, 1059511739u, 2832435794u, 1074816146u, 3432733072u, 0, TAN_TOLERANCE, 0},
+{ 608, 3217304822u, 2196511929u, 1049973941u, 3672092877u, 3217315882u, 2570717061u, 0, TAN_TOLERANCE, 0},
+{ 609, 1050438056u, 3655292191u, 1086438127u, 3567072906u, 1050438056u, 3655292669u, 0, TAN_TOLERANCE, 0},
+{ 610, 3243186948u, 1617573614u, 3201863123u, 3090723732u, 3215739265u, 754649775u, 0, TAN_TOLERANCE, 0},
+{ 611, 3233201380u, 679893506u, 3211547753u, 824081024u, 1071687746u, 513845462u, 0, TAN_TOLERANCE, 0},
+{ 612, 1089530525u, 2285242807u, 1084999409u, 2221731406u, 3221265077u, 3133657547u, 0, TAN_TOLERANCE, 0},
+{ 613, 3206733664u, 1935990727u, 1088822246u, 1058156518u, 3206733664u, 1972701329u, 0, TAN_TOLERANCE, 0},
+{ 614, 1102839166u, 521023584u, 1059186903u, 4245163857u, 1069859447u, 743248191u, 0, TAN_TOLERANCE, 0},
+{ 615, 1103891140u, 2312887617u, 3191771354u, 1885370807u, 3213444490u, 1904571603u, 0, TAN_TOLERANCE, 0},
+{ 616, 3252953815u, 1796441468u, 1100030327u, 2772711004u, 3219317557u, 2229597079u, 0, TAN_TOLERANCE, 0},
+{ 617, 3204276820u, 2095685003u, 1077984448u, 2100773742u, 3204276820u, 2097849993u, 0, TAN_TOLERANCE, 0},
+{ 618, 3192954620u, 2892538035u, 1042396334u, 4162200338u, 3192954620u, 2892538035u, 0, TAN_TOLERANCE, 0},
+{ 619, 3242725751u, 2177698116u, 3227557177u, 150832500u, 1068959958u, 4175788793u, 0, TAN_TOLERANCE, 0},
+{ 620, 3191562216u, 607966734u, 3236250630u, 4164600559u, 3191562216u, 607966734u, 0, TAN_TOLERANCE, 0},
+{ 621, 3216389812u, 2830122967u, 1046096700u, 3713346883u, 3216393477u, 2001753140u, 0, TAN_TOLERANCE, 0},
+{ 622, 3237197963u, 2314640506u, 3203696416u, 3276228872u, 3216462828u, 1983951841u, 0, TAN_TOLERANCE, 0},
+{ 623, 3212912307u, 469331883u, 3249037349u, 2999233437u, 3212912333u, 1663316888u, 0, TAN_TOLERANCE, 0},
+{ 624, 1097382011u, 560886625u, 1091899487u, 748795120u, 1071993443u, 2804575561u, 0, TAN_TOLERANCE, 0},
+{ 625, 1049886858u, 2958421324u, 1092569414u, 3235243477u, 1049886858u, 2958421491u, 0, TAN_TOLERANCE, 0},
+{ 626, 3193026497u, 3221475559u, 1043038304u, 915608434u, 3193026497u, 3221475559u, 0, TAN_TOLERANCE, 0},
+{ 627, 1071197530u, 3007808652u, 3216682290u, 2531019474u, 1071288269u, 2003569361u, 0, TAN_TOLERANCE, 0},
+{ 628, 3242028999u, 1767658578u, 3237045269u, 2313128318u, 1077477368u, 1546619350u, 0, TAN_TOLERANCE, 0},
+{ 629, 3210617892u, 1926845182u, 1066835624u, 1783256828u, 3210617894u, 2907970801u, 0, TAN_TOLERANCE, 0},
+{ 630, 1040575629u, 90378038u, 1057168870u, 164358218u, 1040575629u, 90378038u, 0, TAN_TOLERANCE, 0},
+{ 631, 1106859172u, 1610524680u, 1085283851u, 2903496007u, 3219268505u, 3734210885u, 0, TAN_TOLERANCE, 0},
+{ 632, 1078635586u, 4274321404u, 3202913591u, 720121831u, 3215944252u, 3691295869u, 0, TAN_TOLERANCE, 0},
+{ 633, 1051205256u, 2034778236u, 1071133763u, 1413236391u, 1051205256u, 2034779405u, 0, TAN_TOLERANCE, 0},
+{ 634, 1051063028u, 1489112261u, 1076691395u, 348210906u, 1051063028u, 1489113142u, 0, TAN_TOLERANCE, 0},
+{ 635, 3206743917u, 2797651324u, 3224410527u, 2374818327u, 3206743917u, 2835282496u, 0, TAN_TOLERANCE, 0},
+{ 636, 1088287256u, 1823161666u, 3197810695u, 3119680047u, 3219861474u, 2047170095u, 0, TAN_TOLERANCE, 0},
+{ 637, 1065927336u, 3420950657u, 1087084743u, 2136638961u, 1065927415u, 3709689162u, 0, TAN_TOLERANCE, 0},
+{ 638, 1069902224u, 3554566429u, 1062907717u, 2736702589u, 1069915462u, 3518649188u, 0, TAN_TOLERANCE, 0},
+{ 639, 3244888667u, 2928437580u, 3187765027u, 1393427873u, 1068333483u, 1818015207u, 0, TAN_TOLERANCE, 0},
+{ 640, 3209301561u, 189447067u, 1051643315u, 828663513u, 3209301561u, 1735128209u, 0, TAN_TOLERANCE, 0},
+{ 641, 1052313869u, 2852350928u, 1045683757u, 673354280u, 1052313869u, 2852356158u, 0, TAN_TOLERANCE, 0},
+{ 642, 1043946301u, 3589563265u, 3248741629u, 812657927u, 1043946301u, 3589563265u, 0, TAN_TOLERANCE, 0},
+{ 643, 3190610826u, 1766416701u, 1100392103u, 2185373290u, 3190610826u, 1766416701u, 0, TAN_TOLERANCE, 0},
+{ 644, 3220275389u, 3763582673u, 3191965790u, 388374829u, 3221157954u, 1827747543u, 0, TAN_TOLERANCE, 0},
+{ 645, 1079635136u, 1187403069u, 1075300235u, 336640304u, 1067143974u, 3696369881u, 0, TAN_TOLERANCE, 0},
+{ 646, 1103926251u, 1718795752u, 3243118752u, 683369237u, 3219595101u, 1799803345u, 0, TAN_TOLERANCE, 0},
+{ 647, 3210792097u, 1863545307u, 1069449477u, 3418627399u, 3210792098u, 4197087876u, 0, TAN_TOLERANCE, 0},
+{ 648, 1069601294u, 3295607249u, 1068878592u, 1633297809u, 1069607684u, 1276743969u, 0, TAN_TOLERANCE, 0},
+{ 649, 1058947127u, 2585980994u, 3236670483u, 1286750688u, 1058947127u, 2623777476u, 0, TAN_TOLERANCE, 0},
+{ 650, 1046157033u, 15816845u, 3233249283u, 2491924775u, 1046157033u, 15816847u, 0, TAN_TOLERANCE, 0},
+{ 651, 1042413021u, 1051983351u, 1049180786u, 1474421917u, 1042413021u, 1051983351u, 0, TAN_TOLERANCE, 0},
+{ 652, 3201249525u, 2003816032u, 1086050104u, 668090487u, 3201249525u, 2003856493u, 0, TAN_TOLERANCE, 0},
+{ 653, 1052556037u, 3671484625u, 1067020039u, 430024694u, 1052556037u, 3671492530u, 0, TAN_TOLERANCE, 0},
+{ 654, 1067397110u, 3991830201u, 3207808714u, 1021245839u, 1067397743u, 564284082u, 0, TAN_TOLERANCE, 0},
+{ 655, 1064194391u, 4255801807u, 3207681716u, 1926756877u, 1064194401u, 267289285u, 0, TAN_TOLERANCE, 0},
+{ 656, 1052140785u, 4167786896u, 1077097744u, 1775517981u, 1052140785u, 4167790640u, 0, TAN_TOLERANCE, 0},
+{ 657, 1085601978u, 3187518564u, 1082437406u, 944672491u, 3218112804u, 3739410670u, 0, TAN_TOLERANCE, 0},
+{ 658, 1049366282u, 953085192u, 3227310828u, 3459155777u, 1049366282u, 953085307u, 0, TAN_TOLERANCE, 0},
+{ 659, 1069502506u, 1908555460u, 1073640207u, 260441967u, 1069512802u, 1649179346u, 0, TAN_TOLERANCE, 0},
+{ 660, 1067219606u, 250762477u, 1072582645u, 2886742039u, 1067220087u, 1752188499u, 0, TAN_TOLERANCE, 0},
+{ 661, 3250906006u, 786180031u, 3197734769u, 2788918312u, 3219515699u, 2725543956u, 0, TAN_TOLERANCE, 0},
+{ 662, 3234511827u, 2055912467u, 3244244909u, 1394142937u, 1070694857u, 2816615981u, 0, TAN_TOLERANCE, 0},
+{ 663, 1069612985u, 91984146u, 3222252812u, 4126276047u, 1069619580u, 4178832687u, 0, TAN_TOLERANCE, 0},
+{ 664, 1081340139u, 3942715706u, 3239316352u, 410676547u, 3222618996u, 869458806u, 0, TAN_TOLERANCE, 0},
+{ 665, 3198557846u, 86296211u, 1085850694u, 649202596u, 3198557846u, 86297113u, 0, TAN_TOLERANCE, 0},
+{ 666, 3245366392u, 3069064472u, 3237358008u, 23209276u, 1071509322u, 3234392254u, 0, TAN_TOLERANCE, 0},
+{ 667, 1081235288u, 1867297860u, 1072956607u, 2513414118u, 1074517732u, 2357944421u, 0, TAN_TOLERANCE, 0},
+{ 668, 3250533347u, 3171788768u, 3235208783u, 162138697u, 1074879793u, 3994846525u, 0, TAN_TOLERANCE, 0},
+{ 669, 1081728455u, 1245110700u, 1081653954u, 2584994077u, 3220272741u, 1136402195u, 0, TAN_TOLERANCE, 0},
+{ 670, 3245510120u, 3347226587u, 1058962932u, 2291943376u, 1071151630u, 2408276492u, 0, TAN_TOLERANCE, 0},
+{ 671, 1058899062u, 966940828u, 1060726420u, 2798041096u, 1058899062u, 1002054341u, 0, TAN_TOLERANCE, 0},
+{ 672, 1072793759u, 2487340727u, 3223786370u, 4105954991u, 1073683919u, 1905677821u, 0, TAN_TOLERANCE, 0},
+{ 673, 3248116497u, 1671039260u, 1086395032u, 3745833360u, 3218381141u, 2264716022u, 0, TAN_TOLERANCE, 0},
+{ 674, 1057078797u, 651714217u, 1047070645u, 2130549237u, 1057078797u, 653620621u, 0, TAN_TOLERANCE, 0},
+{ 675, 3207115731u, 1423000172u, 3247822717u, 1551488170u, 3207115731u, 1505322649u, 0, TAN_TOLERANCE, 0},
+{ 676, 3201597307u, 921077236u, 3213332351u, 1431049019u, 3201597307u, 921123170u, 0, TAN_TOLERANCE, 0},
+{ 677, 1067510295u, 655715547u, 3190985373u, 1527556471u, 1067510698u, 2547250551u, 0, TAN_TOLERANCE, 0},
+{ 678, 3227654979u, 4110878657u, 3251297180u, 879739345u, 3218509109u, 2423441325u, 0, TAN_TOLERANCE, 0},
+{ 679, 1085804762u, 2623955764u, 1093699897u, 1216444475u, 1070118810u, 3472479979u, 0, TAN_TOLERANCE, 0},
+{ 680, 1091905603u, 107442539u, 3239767031u, 1149813329u, 1071923940u, 457790337u, 0, TAN_TOLERANCE, 0},
+{ 681, 3233445240u, 1761361082u, 3226030205u, 1121849716u, 3217653293u, 4119342134u, 0, TAN_TOLERANCE, 0},
+{ 682, 3240087115u, 2534144722u, 1044223733u, 3512285706u, 3224103620u, 2429523598u, 0, TAN_TOLERANCE, 0},
+{ 683, 3211846077u, 4073670723u, 1050729852u, 3034818849u, 3211846084u, 915461231u, 0, TAN_TOLERANCE, 0},
+{ 684, 1101984574u, 1421423503u, 1060278048u, 1397153092u, 1072776793u, 1253204266u, 0, TAN_TOLERANCE, 0},
+{ 685, 3217421829u, 1649206019u, 1104525577u, 1267104290u, 3217436119u, 2880193675u, 0, TAN_TOLERANCE, 0},
+{ 686, 3189302097u, 3775270392u, 1040251850u, 68667319u, 3189302097u, 3775270392u, 0, TAN_TOLERANCE, 0},
+{ 687, 3204330900u, 3099226694u, 3254103006u, 4020102648u, 3204330900u, 3101579254u, 0, TAN_TOLERANCE, 0},
+{ 688, 3201591712u, 3718441177u, 3215643451u, 4032951536u, 3201591712u, 3718486539u, 0, TAN_TOLERANCE, 0},
+{ 689, 1044131371u, 508048351u, 3210196713u, 1707937896u, 1044131371u, 508048351u, 0, TAN_TOLERANCE, 0},
+{ 690, 3198611627u, 2784738160u, 1073435430u, 1109346010u, 3198611627u, 2784739166u, 0, TAN_TOLERANCE, 0},
+{ 691, 3225725290u, 3331916473u, 3238794568u, 2707019594u, 3219179196u, 1878996346u, 0, TAN_TOLERANCE, 0},
+{ 692, 1093182670u, 3093165197u, 1072894805u, 2853215019u, 3217526033u, 2848721056u, 0, TAN_TOLERANCE, 0},
+{ 693, 3216582139u, 2135797997u, 1048399559u, 2941926126u, 3216587461u, 2824369149u, 0, TAN_TOLERANCE, 0},
+{ 694, 1048430980u, 2083412145u, 3249335391u, 507212448u, 1048430980u, 2083412179u, 0, TAN_TOLERANCE, 0},
+{ 695, 1075363751u, 4270176401u, 3246546709u, 3288753319u, 3216549950u, 3510999752u, 0, TAN_TOLERANCE, 0},
+{ 696, 3247932863u, 3692175292u, 3197271515u, 3989064196u, 1075194806u, 1737451979u, 0, TAN_TOLERANCE, 0},
+{ 697, 3251691738u, 3111924274u, 1066772558u, 59281695u, 1070740573u, 1549531850u, 0, TAN_TOLERANCE, 0},
+{ 698, 1067683911u, 2135245466u, 3208804313u, 3846547392u, 1067684535u, 3577147149u, 0, TAN_TOLERANCE, 0},
+{ 699, 1094877811u, 972051266u, 3222814246u, 3539700586u, 1073113122u, 2031122011u, 0, TAN_TOLERANCE, 0},
+{ 700, 3202965930u, 330951080u, 1079189813u, 583922384u, 3202965930u, 331299907u, 0, TAN_TOLERANCE, 0},
+{ 701, 1089640092u, 1711944085u, 1104170032u, 643991456u, 1074425836u, 759692993u, 0, TAN_TOLERANCE, 0},
+{ 702, 3234429549u, 2072550721u, 3250147641u, 4280263530u, 3220634492u, 1689537566u, 0, TAN_TOLERANCE, 0},
+{ 703, 3192972706u, 1566376352u, 1067251433u, 72984588u, 3192972706u, 1566376352u, 0, TAN_TOLERANCE, 0},
+{ 704, 1095276569u, 3103043079u, 1045853123u, 410067497u, 3219184490u, 2989790297u, 0, TAN_TOLERANCE, 0},
+{ 705, 3216672493u, 1910366299u, 1081770885u, 634683073u, 3216678742u, 2219186766u, 0, TAN_TOLERANCE, 0},
+{ 706, 1081530688u, 2226525875u, 3224149290u, 2126302825u, 1073875863u, 3373110948u, 0, TAN_TOLERANCE, 0},
+{ 707, 1073150247u, 1383818978u, 3193885723u, 1220372650u, 1075672286u, 2180760441u, 0, TAN_TOLERANCE, 0},
+{ 708, 1066482943u, 1953339096u, 1077176252u, 1476516558u, 1066483050u, 796594176u, 0, TAN_TOLERANCE, 0},
+{ 709, 1066092000u, 1306277326u, 1079089150u, 4093716191u, 1066092105u, 4157158941u, 0, TAN_TOLERANCE, 0},
+{ 710, 3233148787u, 51750045u, 3242913901u, 4256866157u, 3222988569u, 439136879u, 0, TAN_TOLERANCE, 0},
+{ 711, 3195084967u, 2163853087u, 3232053146u, 2962422808u, 3195084967u, 2163853094u, 0, TAN_TOLERANCE, 0},
+{ 712, 1075516945u, 1618388148u, 3233154824u, 3711953164u, 1071710292u, 1922481399u, 0, TAN_TOLERANCE, 0},
+{ 713, 3246868002u, 357108214u, 3202294604u, 2306775262u, 1072903322u, 605160679u, 0, TAN_TOLERANCE, 0},
+{ 714, 3201904086u, 2571356437u, 3249064063u, 2394851808u, 3201904086u, 2571441574u, 0, TAN_TOLERANCE, 0},
+{ 715, 3230488091u, 4273880094u, 1103698617u, 3578832032u, 1071947813u, 4287022097u, 0, TAN_TOLERANCE, 0},
+{ 716, 3233426701u, 2091068742u, 3228270226u, 3980489730u, 3215078902u, 1010047045u, 0, TAN_TOLERANCE, 0},
+{ 717, 3229016752u, 2772307714u, 1051008486u, 32546576u, 1075245665u, 462916900u, 0, TAN_TOLERANCE, 0},
+{ 718, 3241229215u, 2143788498u, 3195498043u, 3630119231u, 3221585624u, 179270373u, 0, TAN_TOLERANCE, 0},
+{ 719, 3198632935u, 2527385594u, 3240503648u, 3482095012u, 3198632935u, 2527386643u, 0, TAN_TOLERANCE, 0},
+{ 720, 3242168799u, 2690097362u, 1068598730u, 2360266862u, 3220602288u, 418300175u, 0, TAN_TOLERANCE, 0},
+{ 721, 1058857869u, 2673272949u, 1082639557u, 522449749u, 1058857869u, 2706190749u, 0, TAN_TOLERANCE, 0},
+{ 722, 1104424147u, 3596379400u, 3242016775u, 2002293002u, 3221113564u, 1902628924u, 0, TAN_TOLERANCE, 0},
+{ 723, 1099439656u, 4113224369u, 3222122439u, 2152316893u, 1071885781u, 1950205565u, 0, TAN_TOLERANCE, 0},
+{ 724, 3220796716u, 31662602u, 1047721249u, 1747087514u, 1078500715u, 94481049u, 0, TAN_TOLERANCE, 0},
+{ 725, 3250463757u, 2489659568u, 1097051253u, 277506957u, 3220359518u, 3160316980u, 0, TAN_TOLERANCE, 0},
+{ 726, 3191401834u, 3850162281u, 3213841942u, 438724093u, 3191401834u, 3850162281u, 0, TAN_TOLERANCE, 0},
+{ 727, 1095392535u, 2431814052u, 1075518084u, 2672434118u, 3213954599u, 974405380u, 0, TAN_TOLERANCE, 0},
+{ 728, 3243162735u, 391606792u, 1048184750u, 4168944276u, 3221302992u, 3451129745u, 0, TAN_TOLERANCE, 0},
+{ 729, 3247792416u, 457529672u, 3201090276u, 72407935u, 3222315239u, 1160982851u, 0, TAN_TOLERANCE, 0},
+{ 730, 3218720719u, 3954981400u, 1052053242u, 2411049585u, 3218818453u, 61902234u, 0, TAN_TOLERANCE, 0},
+{ 731, 1086180091u, 485456950u, 1088415093u, 1655397424u, 3220221131u, 2324510511u, 0, TAN_TOLERANCE, 0},
+{ 732, 3198234428u, 1551748070u, 3236871640u, 1329701152u, 3198234428u, 1551748493u, 0, TAN_TOLERANCE, 0},
+{ 733, 3224639122u, 3099222537u, 1104984570u, 4293792842u, 3221696756u, 3006182604u, 0, TAN_TOLERANCE, 0},
+{ 734, 3203949705u, 3603065260u, 3197735968u, 2402359253u, 3203949705u, 3604303771u, 0, TAN_TOLERANCE, 0},
+{ 735, 3198824584u, 3961208159u, 3219057584u, 2340553876u, 3198824584u, 3961209656u, 0, TAN_TOLERANCE, 0},
+{ 736, 1074881909u, 4014841779u, 3197672877u, 3697233334u, 1074072291u, 3216031119u, 0, TAN_TOLERANCE, 0},
+{ 737, 3213275657u, 1403876392u, 3254028950u, 921363393u, 3213275718u, 925891589u, 0, TAN_TOLERANCE, 0},
+{ 738, 1107251806u, 1862576361u, 3194031708u, 2476290925u, 1066826438u, 3927706251u, 0, TAN_TOLERANCE, 0},
+{ 739, 1049661768u, 1454212851u, 1088378861u, 3400401866u, 1049661768u, 1454212946u, 0, TAN_TOLERANCE, 0},
+{ 740, 1074406809u, 552676385u, 3188635745u, 3778112968u, 1069568065u, 3064462875u, 0, TAN_TOLERANCE, 0},
+{ 741, 3216409282u, 1199568671u, 3225679997u, 46947405u, 3216413096u, 1759976264u, 0, TAN_TOLERANCE, 0},
+{ 742, 1077685537u, 2596231448u, 3253943728u, 2219151748u, 3216584142u, 1488430398u, 0, TAN_TOLERANCE, 0},
+{ 743, 1066527035u, 4119719558u, 3222036299u, 1275474618u, 1066527155u, 2928830600u, 0, TAN_TOLERANCE, 0},
+{ 744, 3239908663u, 3347296825u, 1101507910u, 1254014794u, 1072809120u, 869332103u, 0, TAN_TOLERANCE, 0},
+{ 745, 1084119992u, 673775040u, 1070743626u, 244126093u, 1075534323u, 698300927u, 0, TAN_TOLERANCE, 0},
+{ 746, 3203199850u, 1832066983u, 1051358028u, 3262483417u, 3203199850u, 1832584640u, 0, TAN_TOLERANCE, 0},
+{ 747, 1077559600u, 3962610501u, 3198598777u, 849269178u, 1073781704u, 804173689u, 0, TAN_TOLERANCE, 0},
+{ 748, 3235473900u, 2497516122u, 3254374111u, 2821429629u, 1074308595u, 3100151219u, 0, TAN_TOLERANCE, 0},
+{ 749, 1076236288u, 2805941787u, 3217785843u, 779131141u, 3225158579u, 3900803877u, 0, TAN_TOLERANCE, 0},
+{ 750, 3226908686u, 723423605u, 1084533420u, 627282213u, 1070465931u, 3949309375u, 0, TAN_TOLERANCE, 0},
+{ 751, 3215947680u, 4292778869u, 1078101071u, 1676860147u, 3215950281u, 2069249548u, 0, TAN_TOLERANCE, 0},
+{ 752, 1076288502u, 3528118587u, 3194648564u, 2363260897u, 3221307988u, 19736518u, 0, TAN_TOLERANCE, 0},
+{ 753, 3192897879u, 1307010018u, 1061248120u, 1468743108u, 3192897879u, 1307010019u, 0, TAN_TOLERANCE, 0},
+{ 754, 3246583139u, 107905661u, 3226089788u, 1943427674u, 3222568369u, 1322611276u, 0, TAN_TOLERANCE, 0},
+{ 755, 3188230541u, 760006940u, 1054265604u, 1749976597u, 3188230541u, 760006940u, 0, TAN_TOLERANCE, 0},
+{ 756, 3237773384u, 2787503556u, 1081282610u, 1195841206u, 1073441083u, 1059539068u, 0, TAN_TOLERANCE, 0},
+{ 757, 3191802156u, 545462045u, 3208381743u, 1981311808u, 3191802156u, 545462045u, 0, TAN_TOLERANCE, 0},
+{ 758, 1061232136u, 3657978397u, 1104463616u, 3501253426u, 1061232136u, 4096232730u, 0, TAN_TOLERANCE, 0},
+{ 759, 1049883857u, 1804177501u, 3210693633u, 3606766729u, 1049883857u, 1804177667u, 0, TAN_TOLERANCE, 0},
+{ 760, 1076856879u, 1336278526u, 1043741618u, 3165279431u, 1068350898u, 491456471u, 0, TAN_TOLERANCE, 0},
+{ 761, 1055471915u, 1599382075u, 1058018527u, 4212580517u, 1055471915u, 1599724421u, 0, TAN_TOLERANCE, 0},
+{ 762, 3207502326u, 3007589929u, 3202026547u, 2792028313u, 3207502326u, 3164093214u, 0, TAN_TOLERANCE, 0},
+{ 763, 3253082770u, 1866066996u, 1060329048u, 3727175322u, 1072698640u, 3872927457u, 0, TAN_TOLERANCE, 0},
+{ 764, 3198416643u, 150890940u, 1056025306u, 3082724735u, 3198416643u, 150891603u, 0, TAN_TOLERANCE, 0},
+{ 765, 1062008939u, 80400395u, 1093584426u, 3478941315u, 1062008939u, 2205021603u, 0, TAN_TOLERANCE, 0},
+{ 766, 3251640614u, 4050954182u, 3219263194u, 2537475930u, 1069381185u, 3828509291u, 0, TAN_TOLERANCE, 0},
+{ 767, 1064841871u, 2881752155u, 3212589299u, 2559651278u, 1064841890u, 512262744u, 0, TAN_TOLERANCE, 0},
+{ 768, 3249016304u, 440309030u, 3214267461u, 3788040806u, 3219236838u, 312619054u, 0, TAN_TOLERANCE, 0},
+{ 769, 1100476615u, 918813144u, 3208535698u, 1607035904u, 3221517627u, 3644569098u, 0, TAN_TOLERANCE, 0},
+{ 770, 1042137451u, 2497054124u, 1089139147u, 2549609010u, 1042137451u, 2497054124u, 0, TAN_TOLERANCE, 0},
+{ 771, 1047037641u, 790219083u, 1054657139u, 2797979479u, 1047037641u, 790219088u, 0, TAN_TOLERANCE, 0},
+{ 772, 1057781400u, 1149462078u, 1095765205u, 3879963182u, 1057781400u, 1157333128u, 0, TAN_TOLERANCE, 0},
+{ 773, 3202729813u, 2684353926u, 3205212854u, 1732474928u, 3202729813u, 2684574296u, 0, TAN_TOLERANCE, 0},
+{ 774, 1095236965u, 2742237025u, 1051317716u, 3386396147u, 1070950125u, 4063976668u, 0, TAN_TOLERANCE, 0},
+{ 775, 1063230986u, 3408320912u, 1103071166u, 4233059513u, 1063230989u, 1570710087u, 0, TAN_TOLERANCE, 0},
+{ 776, 1064863548u, 1077495917u, 1088399968u, 433115118u, 1064863567u, 2001865724u, 0, TAN_TOLERANCE, 0},
+{ 777, 3204547572u, 841366493u, 1051716814u, 4121125128u, 3204547572u, 843200674u, 0, TAN_TOLERANCE, 0},
+{ 778, 1064632084u, 321857207u, 1089128010u, 1149988239u, 1064632096u, 547429103u, 0, TAN_TOLERANCE, 0},
+{ 779, 3245542663u, 799866606u, 3197637091u, 3924438208u, 3211532957u, 3662721595u, 0, TAN_TOLERANCE, 0},
+{ 780, 3191062890u, 2002049816u, 1077053447u, 2240354761u, 3191062890u, 2002049816u, 0, TAN_TOLERANCE, 0},
+{ 781, 3229006283u, 478939968u, 1097035749u, 1066716440u, 1072752037u, 2531096848u, 0, TAN_TOLERANCE, 0},
+{ 782, 3232473641u, 1653104725u, 1088548129u, 81977716u, 1071090445u, 506086843u, 0, TAN_TOLERANCE, 0},
+{ 783, 3196861276u, 3899475018u, 3189694084u, 3330093036u, 3196861276u, 3899475135u, 0, TAN_TOLERANCE, 0},
+{ 784, 1089312583u, 2612450289u, 1079065127u, 603380842u, 1073008863u, 3887211481u, 0, TAN_TOLERANCE, 0},
+{ 785, 1100636791u, 3962735564u, 1101570429u, 1372490825u, 3220290720u, 1010454053u, 0, TAN_TOLERANCE, 0},
+{ 786, 1054806016u, 1479841439u, 1059312257u, 541504905u, 1054806016u, 1480001287u, 0, TAN_TOLERANCE, 0},
+{ 787, 1078662178u, 2626148789u, 1057571099u, 4121656076u, 1072550701u, 103347377u, 0, TAN_TOLERANCE, 0},
+{ 788, 1081613389u, 1902560314u, 1043130231u, 3557671562u, 3219664068u, 2202748350u, 0, TAN_TOLERANCE, 0},
+{ 789, 3193829772u, 41779312u, 1081626342u, 831171823u, 3193829772u, 41779314u, 0, TAN_TOLERANCE, 0},
+{ 790, 1058131100u, 1393168821u, 1066457405u, 1381616968u, 1058131100u, 1400868003u, 0, TAN_TOLERANCE, 0},
+{ 791, 1072338141u, 3756584649u, 3222267229u, 1423157432u, 1072792768u, 1008405082u, 0, TAN_TOLERANCE, 0},
+{ 792, 3254435674u, 1894912556u, 1042426694u, 155024547u, 3218179819u, 2046959496u, 0, TAN_TOLERANCE, 0},
+{ 793, 3195453512u, 35164295u, 3203391785u, 1037041084u, 3195453512u, 35164310u, 0, TAN_TOLERANCE, 0},
+{ 794, 1084777479u, 3957875950u, 3232195211u, 1590756436u, 3219947575u, 33029473u, 0, TAN_TOLERANCE, 0},
+{ 795, 1068844322u, 1447585080u, 1071279485u, 1107922438u, 1068847538u, 3657603058u, 0, TAN_TOLERANCE, 0},
+{ 796, 1046252518u, 981897615u, 1051856116u, 430357614u, 1046252518u, 981897617u, 0, TAN_TOLERANCE, 0},
+{ 797, 3227524215u, 395145384u, 3219821938u, 50586510u, 3216350661u, 266931658u, 0, TAN_TOLERANCE, 0},
+{ 798, 1069775912u, 750827797u, 1082862669u, 230466783u, 1069785868u, 656722732u, 0, TAN_TOLERANCE, 0},
+{ 799, 1086668819u, 1365083575u, 3204848310u, 1700831722u, 1072758492u, 877880103u, 0, TAN_TOLERANCE, 0},
+{ 800, 3218090390u, 344241827u, 1071538935u, 2715566077u, 3218113497u, 943457430u, 0, TAN_TOLERANCE, 0},
+{ 801, 3247582856u, 4069301823u, 3193208760u, 2949125229u, 3220500077u, 3721096040u, 0, TAN_TOLERANCE, 0},
+{ 802, 1103231387u, 3585711710u, 1065801594u, 2302229267u, 1073052568u, 2823852135u, 0, TAN_TOLERANCE, 0},
+{ 803, 3194118956u, 709803845u, 1048741487u, 2296910194u, 3194118956u, 709803847u, 0, TAN_TOLERANCE, 0},
+{ 804, 3193280779u, 744421179u, 1069302001u, 2659232829u, 3193280779u, 744421180u, 0, TAN_TOLERANCE, 0},
+{ 805, 1092835968u, 1799949903u, 3192522886u, 4212149209u, 3222671637u, 2782741478u, 0, TAN_TOLERANCE, 0},
+{ 806, 3206108502u, 145234164u, 3250614064u, 912384201u, 3206108502u, 167432287u, 0, TAN_TOLERANCE, 0},
+{ 807, 3240510664u, 2784620507u, 1102812948u, 3531481022u, 1071861957u, 1209927963u, 0, TAN_TOLERANCE, 0},
+{ 808, 3251159663u, 383952592u, 3205659905u, 3633194728u, 1073108607u, 1305867219u, 0, TAN_TOLERANCE, 0},
+{ 809, 3203476252u, 3792395543u, 1070072378u, 3864816376u, 3203476252u, 3792827369u, 0, TAN_TOLERANCE, 0},
+{ 810, 3205316273u, 2115553675u, 1066288499u, 3538377867u, 3205316273u, 2124091140u, 0, TAN_TOLERANCE, 0},
+{ 811, 3252075185u, 1230026762u, 1090719723u, 440819880u, 3220809625u, 1855897437u, 0, TAN_TOLERANCE, 0},
+{ 812, 3194595076u, 2991290482u, 1096886719u, 1097971167u, 3194595076u, 2991290487u, 0, TAN_TOLERANCE, 0},
+{ 813, 1090048600u, 1098035020u, 3230900504u, 1479059095u, 1074542433u, 1727465346u, 0, TAN_TOLERANCE, 0},
+{ 814, 3251056964u, 1719428427u, 3188631907u, 3707377409u, 1074529400u, 867101846u, 0, TAN_TOLERANCE, 0},
+{ 815, 1053236165u, 3748932896u, 1084908557u, 1325384361u, 1053236165u, 3748949349u, 0, TAN_TOLERANCE, 0},
+{ 816, 1084704076u, 3979168763u, 1057455255u, 2454615952u, 1071422651u, 515448681u, 0, TAN_TOLERANCE, 0},
+{ 817, 1053106984u, 1449164578u, 1056960316u, 1654931641u, 1053106984u, 1449177170u, 0, TAN_TOLERANCE, 0},
+{ 818, 1071439010u, 2120487381u, 3226298974u, 2364226633u, 1071578601u, 3101860884u, 0, TAN_TOLERANCE, 0},
+{ 819, 1075071428u, 1074268944u, 1065730444u, 280016852u, 3221571272u, 473828447u, 0, TAN_TOLERANCE, 0},
+{ 820, 3200308256u, 3315127889u, 3236295594u, 2900924954u, 3200308256u, 3315134244u, 0, TAN_TOLERANCE, 0},
+{ 821, 3196425891u, 2246037502u, 1049691002u, 1496066550u, 3196425891u, 2246037554u, 0, TAN_TOLERANCE, 0},
+{ 822, 3193006859u, 4191285446u, 3217936236u, 2382392789u, 3193006859u, 4191285446u, 0, TAN_TOLERANCE, 0},
+{ 823, 1092833308u, 640099844u, 1042152237u, 2064279383u, 1071765815u, 106826017u, 0, TAN_TOLERANCE, 0},
+{ 824, 1079913438u, 3468560824u, 1093251038u, 310958750u, 1074618739u, 964701519u, 0, TAN_TOLERANCE, 0},
+{ 825, 1096788400u, 1413568905u, 1100941106u, 1627289946u, 3219861883u, 2605802298u, 0, TAN_TOLERANCE, 0},
+{ 826, 3191549550u, 3797143370u, 3195497539u, 3843275034u, 3191549550u, 3797143370u, 0, TAN_TOLERANCE, 0},
+{ 827, 3252077393u, 2806642640u, 3201943068u, 2515980718u, 3218102760u, 374409247u, 0, TAN_TOLERANCE, 0},
+{ 828, 1086877316u, 632580632u, 1078673506u, 3259601317u, 3220185630u, 3401299183u, 0, TAN_TOLERANCE, 0},
+{ 829, 3200980575u, 3309678799u, 1049337078u, 3056787074u, 3200980575u, 3309705299u, 0, TAN_TOLERANCE, 0},
+{ 830, 3221495289u, 2341164249u, 1080834967u, 2810890005u, 1072115406u, 1493859610u, 0, TAN_TOLERANCE, 0},
+{ 831, 1067019674u, 932124675u, 1093915797u, 662682630u, 1067020016u, 3583760323u, 0, TAN_TOLERANCE, 0},
+{ 832, 3249230091u, 1367996113u, 3251723684u, 2974064663u, 1069437035u, 832804725u, 0, TAN_TOLERANCE, 0},
+{ 833, 1080230731u, 323437999u, 1090499064u, 901457511u, 1074630302u, 1396044198u, 0, TAN_TOLERANCE, 0},
+{ 834, 3235778876u, 4184941840u, 3196770014u, 2458988443u, 3222365184u, 3232213730u, 0, TAN_TOLERANCE, 0},
+{ 835, 1087618284u, 2023065054u, 3211994098u, 2734612965u, 3222159526u, 1007620686u, 0, TAN_TOLERANCE, 0},
+{ 836, 1064074694u, 3679267365u, 3237728785u, 1699558211u, 1064074702u, 1654930644u, 0, TAN_TOLERANCE, 0},
+{ 837, 1088079010u, 1826799031u, 1078709629u, 3986905229u, 1069698140u, 1279549780u, 0, TAN_TOLERANCE, 0},
+{ 838, 1052843785u, 351061688u, 3194386466u, 4105857588u, 1052843785u, 351068380u, 0, TAN_TOLERANCE, 0},
+{ 839, 1054128006u, 1365244058u, 1064457319u, 1452191426u, 1054128006u, 1365291479u, 0, TAN_TOLERANCE, 0},
+{ 840, 1064122385u, 2463030625u, 3215975031u, 3773488326u, 1064122393u, 2980179277u, 0, TAN_TOLERANCE, 0},
+{ 841, 3251276671u, 752664055u, 1065110394u, 1835931663u, 1070794184u, 1849724958u, 0, TAN_TOLERANCE, 0},
+{ 842, 1088045088u, 3496172149u, 1089617208u, 109068701u, 1073455741u, 2200569132u, 0, TAN_TOLERANCE, 0},
+{ 843, 3198135087u, 1636966254u, 1086098766u, 2016598298u, 3198135087u, 1636966916u, 0, TAN_TOLERANCE, 0},
+{ 844, 1050931318u, 3551516956u, 1097969102u, 1317953425u, 1050931318u, 3551517617u, 0, TAN_TOLERANCE, 0},
+{ 845, 3229832217u, 2977627788u, 1045339018u, 516058480u, 1071228652u, 1624784694u, 0, TAN_TOLERANCE, 0},
+{ 846, 3237408578u, 3901731263u, 3189566462u, 32272932u, 3218229315u, 1632924751u, 0, TAN_TOLERANCE, 0},
+{ 847, 1077281796u, 1956025297u, 3246628529u, 3840733905u, 1067000694u, 1129527548u, 0, TAN_TOLERANCE, 0},
+{ 848, 1099818036u, 561057891u, 3198494340u, 4271027193u, 3219784884u, 1730936066u, 0, TAN_TOLERANCE, 0},
+{ 849, 3250929921u, 692989850u, 3242630588u, 2492225971u, 1073186106u, 790327840u, 0, TAN_TOLERANCE, 0},
+{ 850, 3205479397u, 3439913962u, 1067477011u, 2973333638u, 3205479397u, 3450822138u, 0, TAN_TOLERANCE, 0},
+{ 851, 3213993989u, 877613377u, 1044917899u, 809672798u, 3213994103u, 3825407549u, 0, TAN_TOLERANCE, 0},
+{ 852, 3222171454u, 905426932u, 1046417457u, 1086320855u, 3219716531u, 431784327u, 0, TAN_TOLERANCE, 0},
+{ 853, 3246346629u, 2645567288u, 1051258339u, 557182478u, 3221881274u, 64244743u, 0, TAN_TOLERANCE, 0},
+{ 854, 3204057950u, 186287752u, 1061342054u, 4054003419u, 3204057950u, 187795268u, 0, TAN_TOLERANCE, 0},
+{ 855, 1097266673u, 3506889716u, 3243866036u, 519056371u, 1071339869u, 2789308492u, 0, TAN_TOLERANCE, 0},
+{ 856, 1042654053u, 2171898436u, 3246911982u, 1091500784u, 1042654053u, 2171898436u, 0, TAN_TOLERANCE, 0},
+{ 857, 3243647673u, 368493885u, 3222871893u, 1419055230u, 1076440210u, 3154672031u, 0, TAN_TOLERANCE, 0},
+{ 858, 1091950572u, 2010971245u, 3188804530u, 1518695799u, 3220286110u, 4209056249u, 0, TAN_TOLERANCE, 0},
+{ 859, 3205426509u, 1239207795u, 1040192984u, 2199481342u, 3205426509u, 1249304750u, 0, TAN_TOLERANCE, 0},
+{ 860, 3210978637u, 4264613432u, 3203460972u, 3558930895u, 3210978640u, 1980632273u, 0, TAN_TOLERANCE, 0},
+{ 861, 1050299283u, 3772748958u, 3227667376u, 309688336u, 1050299283u, 3772749337u, 0, TAN_TOLERANCE, 0},
+{ 862, 3230743041u, 1077949160u, 1075769893u, 2405271377u, 1070180192u, 446368177u, 0, TAN_TOLERANCE, 0},
+{ 863, 1091835152u, 3751608506u, 3232278094u, 930375071u, 3217726898u, 3481548138u, 0, TAN_TOLERANCE, 0},
+{ 864, 3198617153u, 1518334131u, 3205247482u, 791756713u, 3198617153u, 1518335148u, 0, TAN_TOLERANCE, 0},
+{ 865, 1047317453u, 2825203170u, 3245054001u, 1822981827u, 1047317453u, 2825203178u, 0, TAN_TOLERANCE, 0},
+{ 866, 1100016363u, 514474738u, 1089072073u, 3300845441u, 3217319144u, 2916802364u, 0, TAN_TOLERANCE, 0},
+{ 867, 3216391250u, 247369460u, 3197320093u, 687450958u, 3216394925u, 3233522059u, 0, TAN_TOLERANCE, 0},
+{ 868, 1104161422u, 2722237629u, 1058272368u, 90602316u, 1073200343u, 2302788437u, 0, TAN_TOLERANCE, 0},
+{ 869, 3208098435u, 1845900544u, 3231520830u, 3389751458u, 3208098435u, 2136608077u, 0, TAN_TOLERANCE, 0},
+{ 870, 3247535245u, 737689911u, 3195377751u, 3462616966u, 3219253037u, 3883211308u, 0, TAN_TOLERANCE, 0},
+{ 871, 3223538384u, 3620285831u, 1055501023u, 2708056059u, 3217870312u, 2224856412u, 0, TAN_TOLERANCE, 0},
+{ 872, 3219464996u, 4073430285u, 1056206159u, 172017902u, 3219709169u, 2516376400u, 0, TAN_TOLERANCE, 0},
+{ 873, 3212869638u, 2799176222u, 1052706894u, 4083892667u, 3212869662u, 211559933u, 0, TAN_TOLERANCE, 0},
+{ 874, 3202279557u, 1562351330u, 1069705601u, 1247765260u, 3202279557u, 1562508809u, 0, TAN_TOLERANCE, 0},
+{ 875, 3232717299u, 51853475u, 3189080201u, 2783553144u, 3221383237u, 3613213752u, 0, TAN_TOLERANCE, 0},
+{ 876, 3219454353u, 3851781549u, 3241598113u, 514064046u, 3219692168u, 1685602423u, 0, TAN_TOLERANCE, 0},
+{ 877, 1100045965u, 934745487u, 3248182437u, 2798581921u, 3217714806u, 3046333778u, 0, TAN_TOLERANCE, 0},
+{ 878, 3213082493u, 2948648757u, 3232177250u, 4278702895u, 3213082533u, 3433940202u, 0, TAN_TOLERANCE, 0},
+{ 879, 1072485724u, 4259101461u, 1061606772u, 84229920u, 1072968884u, 431127016u, 0, TAN_TOLERANCE, 0},
+{ 880, 3198075559u, 3891230598u, 1095924595u, 3049217547u, 3198075559u, 3891231204u, 0, TAN_TOLERANCE, 0},
+{ 881, 1077353053u, 3806018919u, 3243191216u, 280177341u, 1073754255u, 3810288957u, 0, TAN_TOLERANCE, 0},
+{ 882, 1060624530u, 3900344258u, 1063647809u, 4206745890u, 1060624530u, 4196557767u, 0, TAN_TOLERANCE, 0},
+{ 883, 3227707336u, 2126253040u, 3207248026u, 808507485u, 3219040601u, 2852753536u, 0, TAN_TOLERANCE, 0},
+{ 884, 1086090317u, 3465685634u, 3230391053u, 3754958214u, 1071200193u, 1669130251u, 0, TAN_TOLERANCE, 0},
+{ 885, 1102861084u, 461094531u, 1101110393u, 1316091396u, 1072468733u, 843744847u, 0, TAN_TOLERANCE, 0},
+{ 886, 1064980314u, 4197635149u, 1091873113u, 1240127141u, 1064980338u, 2969927074u, 0, TAN_TOLERANCE, 0},
+{ 887, 1074333893u, 118603800u, 1105304898u, 4291425557u, 3213440672u, 2883250875u, 0, TAN_TOLERANCE, 0},
+{ 888, 3213429165u, 3744663425u, 3212482771u, 953662066u, 3213429247u, 2691908692u, 0, TAN_TOLERANCE, 0},
+{ 889, 1085171305u, 3564196690u, 3228101916u, 904305212u, 3221639481u, 1195407422u, 0, TAN_TOLERANCE, 0},
+{ 890, 1048333111u, 3566257266u, 3235138829u, 2734275140u, 1048333111u, 3566257295u, 0, TAN_TOLERANCE, 0},
+{ 891, 3243948477u, 606044282u, 3241318094u, 2446416887u, 3219064278u, 3185355282u, 0, TAN_TOLERANCE, 0},
+{ 892, 1041627284u, 2336116589u, 3197594053u, 2296925138u, 1041627284u, 2336116589u, 0, TAN_TOLERANCE, 0},
+{ 893, 1058567659u, 907670625u, 3240769036u, 1827119006u, 1058567659u, 927652723u, 0, TAN_TOLERANCE, 0},
+{ 894, 1044467183u, 2818710946u, 3246059905u, 553394170u, 1044467183u, 2818710946u, 0, TAN_TOLERANCE, 0},
+{ 895, 3189504094u, 4099522736u, 3232742168u, 3718083858u, 3189504094u, 4099522736u, 0, TAN_TOLERANCE, 0},
+{ 896, 1092371276u, 1059279404u, 1080245336u, 175941677u, 1072889821u, 515486077u, 0, TAN_TOLERANCE, 0},
+{ 897, 1105189691u, 1650862428u, 1061816101u, 1723201723u, 3218686305u, 2616609059u, 0, TAN_TOLERANCE, 0},
+{ 898, 3239012814u, 2462163405u, 3218946201u, 3876535372u, 3219344333u, 2502875662u, 0, TAN_TOLERANCE, 0},
+{ 899, 1084392886u, 495844137u, 1073721460u, 772777946u, 3220942669u, 3586727170u, 0, TAN_TOLERANCE, 0},
+{ 900, 1052415330u, 458757721u, 3245680321u, 3609892707u, 1052415330u, 458763983u, 0, TAN_TOLERANCE, 0},
+{ 901, 3193282956u, 2533012202u, 1079980803u, 3592268374u, 3193282956u, 2533012203u, 0, TAN_TOLERANCE, 0},
+{ 902, 3203364780u, 4108274117u, 1063045844u, 571992389u, 3203364780u, 4108938846u, 0, TAN_TOLERANCE, 0},
+{ 903, 1090567271u, 3541110973u, 1096296754u, 3118427427u, 3221848883u, 3041741205u, 0, TAN_TOLERANCE, 0},
+{ 904, 3193980043u, 1213941007u, 1105433735u, 2172963370u, 3193980043u, 1213941008u, 0, TAN_TOLERANCE, 0},
+{ 905, 1096853359u, 272190288u, 1095452370u, 4026581530u, 3220146629u, 3829308268u, 0, TAN_TOLERANCE, 0},
+{ 906, 1095583909u, 2843638672u, 1100510986u, 3190536898u, 3223757143u, 2541776483u, 0, TAN_TOLERANCE, 0},
+{ 907, 1083757094u, 2014317727u, 3247389683u, 2428462015u, 3221228537u, 1632670009u, 0, TAN_TOLERANCE, 0},
+{ 908, 1093976717u, 688442200u, 1047852515u, 3035186380u, 3221648779u, 3546017257u, 0, TAN_TOLERANCE, 0},
+{ 909, 1076664212u, 1010095511u, 3221288076u, 405287991u, 3222861453u, 2232630897u, 0, TAN_TOLERANCE, 0},
+{ 910, 3252294615u, 2983070435u, 1089546472u, 2907918480u, 3221936746u, 378512360u, 0, TAN_TOLERANCE, 0},
+{ 911, 1082988121u, 81928569u, 1056007286u, 2740556321u, 1072918381u, 1311078634u, 0, TAN_TOLERANCE, 0},
+{ 912, 1041110867u, 2076689028u, 1081558619u, 3039159031u, 1041110867u, 2076689028u, 0, TAN_TOLERANCE, 0},
+{ 913, 1047307438u, 1376882094u, 3211003208u, 1296286481u, 1047307438u, 1376882102u, 0, TAN_TOLERANCE, 0},
+{ 914, 1080114314u, 744133164u, 3200943494u, 955832216u, 3218506405u, 2741895831u, 0, TAN_TOLERANCE, 0},
+{ 915, 3226290326u, 176522478u, 1069999908u, 2891249491u, 1073785249u, 968808067u, 0, TAN_TOLERANCE, 0},
+{ 916, 1043564602u, 3685851715u, 3187829932u, 2363997529u, 1043564602u, 3685851715u, 0, TAN_TOLERANCE, 0},
+{ 917, 1040244055u, 3974431579u, 1052505165u, 2589067816u, 1040244055u, 3974431579u, 0, TAN_TOLERANCE, 0},
+{ 918, 3191496789u, 3819109588u, 1048561488u, 969143351u, 3191496789u, 3819109588u, 0, TAN_TOLERANCE, 0},
+{ 919, 1072639397u, 4246896124u, 1104584799u, 1940097860u, 1073189028u, 394587297u, 0, TAN_TOLERANCE, 0},
+{ 920, 1048038468u, 2228686199u, 3220231833u, 777624847u, 1048038468u, 2228686217u, 0, TAN_TOLERANCE, 0},
+{ 921, 3231467306u, 4189906558u, 3203004203u, 854242364u, 3217987474u, 2809199807u, 0, TAN_TOLERANCE, 0},
+{ 922, 1103910407u, 4089051094u, 3227282692u, 2693170723u, 1072129371u, 3206579039u, 0, TAN_TOLERANCE, 0},
+{ 923, 1045883607u, 1278581412u, 3239296746u, 1774588717u, 1045883607u, 1278581413u, 0, TAN_TOLERANCE, 0},
+{ 924, 3222372686u, 1794845306u, 1104879344u, 4135865182u, 3221677563u, 3455106662u, 0, TAN_TOLERANCE, 0},
+{ 925, 1106449055u, 754938390u, 1061291430u, 2010786993u, 1073861270u, 2475943364u, 0, TAN_TOLERANCE, 0},
+{ 926, 1073581409u, 2034303731u, 3240176537u, 314147356u, 3222026453u, 3087782240u, 0, TAN_TOLERANCE, 0},
+{ 927, 3231449194u, 567588900u, 3195452230u, 1421366017u, 3222708424u, 1627728438u, 0, TAN_TOLERANCE, 0},
+{ 928, 3225089755u, 2708717091u, 1071975971u, 1364590470u, 1074658153u, 719778775u, 0, TAN_TOLERANCE, 0},
+{ 929, 3252137283u, 3461956134u, 3207820115u, 1605709634u, 1072185530u, 2879754131u, 0, TAN_TOLERANCE, 0},
+{ 930, 1065302996u, 1497124553u, 1051715442u, 916736957u, 1065303036u, 102289035u, 0, TAN_TOLERANCE, 0},
+{ 931, 1058468363u, 834914365u, 1064667143u, 2839166298u, 1058468363u, 851408530u, 0, TAN_TOLERANCE, 0},
+{ 932, 1057279949u, 2139295776u, 1062816721u, 914592523u, 1057279949u, 2142372604u, 0, TAN_TOLERANCE, 0},
+{ 933, 3189636931u, 851569132u, 1058503154u, 1399378677u, 3189636931u, 851569132u, 0, TAN_TOLERANCE, 0},
+{ 934, 3233537697u, 3897202342u, 3245382590u, 246600375u, 3216203689u, 401387137u, 0, TAN_TOLERANCE, 0},
+{ 935, 3225460308u, 3620429520u, 1055627557u, 229305u, 1074744460u, 4064404770u, 0, TAN_TOLERANCE, 0},
+{ 936, 1083958833u, 3641997865u, 3206673888u, 93720614u, 1073787691u, 215264583u, 0, TAN_TOLERANCE, 0},
+{ 937, 3227808435u, 32766320u, 1062084905u, 3668443038u, 3217871959u, 3354835440u, 0, TAN_TOLERANCE, 0},
+{ 938, 3223298996u, 2039713492u, 3248699388u, 1346210821u, 1077010417u, 482375156u, 0, TAN_TOLERANCE, 0},
+{ 939, 1093050016u, 1335820726u, 3191756860u, 1808427032u, 1073512079u, 967050696u, 0, TAN_TOLERANCE, 0},
+{ 940, 1061442763u, 650692001u, 1103515670u, 2253348763u, 1061442763u, 1385052594u, 0, TAN_TOLERANCE, 0},
+{ 941, 3191395187u, 2372623300u, 3210185343u, 3200572848u, 3191395187u, 2372623300u, 0, TAN_TOLERANCE, 0},
+{ 942, 1100796069u, 762317532u, 3194595095u, 3192607437u, 1073352751u, 3603794870u, 0, TAN_TOLERANCE, 0},
+{ 943, 1062262701u, 217775356u, 3232827087u, 2969367386u, 1062262701u, 1887701620u, 0, TAN_TOLERANCE, 0},
+{ 944, 1057172551u, 3621353969u, 1077994795u, 3873976266u, 1057172551u, 3623759699u, 0, TAN_TOLERANCE, 0},
+{ 945, 1091301987u, 268372152u, 3221764390u, 3216978962u, 3215235964u, 874297491u, 0, TAN_TOLERANCE, 0},
+{ 946, 3246437611u, 142942404u, 1075322987u, 1746449109u, 3224811534u, 2937642332u, 0, TAN_TOLERANCE, 0},
+{ 947, 1104006296u, 496534875u, 3254522293u, 2532372502u, 1072324347u, 3485810959u, 0, TAN_TOLERANCE, 0},
+{ 948, 3250225541u, 2999955409u, 3222793392u, 1868977643u, 1069873914u, 3710748236u, 0, TAN_TOLERANCE, 0},
+{ 949, 1074319042u, 3353193428u, 3218469191u, 3326244297u, 3215249682u, 302869483u, 0, TAN_TOLERANCE, 0},
+{ 950, 1068218799u, 73646871u, 3231442171u, 3711510104u, 1068220577u, 543559658u, 0, TAN_TOLERANCE, 0},
+{ 951, 1090483524u, 218135177u, 3198908856u, 3082199105u, 3217418345u, 3997909065u, 0, TAN_TOLERANCE, 0},
+{ 952, 1068068480u, 1061628117u, 3248859043u, 86776158u, 1068069852u, 1289410425u, 0, TAN_TOLERANCE, 0},
+{ 953, 3208484674u, 938869114u, 1087911145u, 2416710759u, 3208484674u, 1504888383u, 0, TAN_TOLERANCE, 0},
+{ 954, 1095576832u, 2970853959u, 3239543429u, 1887505029u, 1072009655u, 2105862278u, 0, TAN_TOLERANCE, 0},
+{ 955, 3237728787u, 1337895935u, 1076463812u, 1172733328u, 3222440122u, 597922583u, 0, TAN_TOLERANCE, 0},
+{ 956, 1049139928u, 1469010822u, 3229583535u, 551399515u, 1049139928u, 1469010900u, 0, TAN_TOLERANCE, 0},
+{ 957, 1074118123u, 1849711538u, 1049053713u, 1744276190u, 3218923673u, 2384358106u, 0, TAN_TOLERANCE, 0},
+{ 958, 3242138780u, 2976596113u, 3192137295u, 3033242648u, 1068509184u, 1974852383u, 0, TAN_TOLERANCE, 0},
+{ 959, 1098698481u, 876810930u, 3197470945u, 2571587447u, 3220700972u, 2135854542u, 0, TAN_TOLERANCE, 0},
+{ 960, 3241770810u, 4007797282u, 3225853845u, 4069319648u, 1074958621u, 2334482095u, 0, TAN_TOLERANCE, 0},
+{ 961, 1047279982u, 3840538373u, 1043189552u, 3668774580u, 1047279982u, 3840538380u, 0, TAN_TOLERANCE, 0},
+{ 962, 3217611704u, 200857661u, 3229758439u, 3359367736u, 3217632498u, 3651422596u, 0, TAN_TOLERANCE, 0},
+{ 963, 3248797869u, 111868139u, 3227902082u, 2366064003u, 3224837493u, 4262218833u, 0, TAN_TOLERANCE, 0},
+{ 964, 1044195166u, 3510904416u, 3222131653u, 3822770497u, 1044195166u, 3510904416u, 0, TAN_TOLERANCE, 0},
+{ 965, 3242675715u, 789151814u, 1099269239u, 2958956055u, 1071542351u, 2822923563u, 0, TAN_TOLERANCE, 0},
+{ 966, 1084679320u, 722163228u, 1105524559u, 1534462169u, 3220227031u, 3860692921u, 0, TAN_TOLERANCE, 0},
+{ 967, 1046586062u, 2207037106u, 3208952465u, 1231254630u, 1046586062u, 2207037108u, 0, TAN_TOLERANCE, 0},
+{ 968, 3197884060u, 3838689849u, 3198769679u, 1302617170u, 3197884060u, 3838690298u, 0, TAN_TOLERANCE, 0},
+{ 969, 1085938906u, 2527556476u, 3240373426u, 124352692u, 3219084764u, 837253910u, 0, TAN_TOLERANCE, 0},
+{ 970, 3199540805u, 3502371499u, 1043411944u, 4190072016u, 3199540805u, 3502374638u, 0, TAN_TOLERANCE, 0},
+{ 971, 1064676142u, 1798470077u, 3200116917u, 3421833729u, 1064676155u, 2862378974u, 0, TAN_TOLERANCE, 0},
+{ 972, 3193514956u, 3653237931u, 3204255012u, 3683870669u, 3193514956u, 3653237932u, 0, TAN_TOLERANCE, 0},
+{ 973, 1053588582u, 376530104u, 1073853547u, 565755892u, 1053588582u, 376560924u, 0, TAN_TOLERANCE, 0},
+{ 974, 3242503851u, 558292492u, 1051772749u, 4267873474u, 1072080736u, 2047810030u, 0, TAN_TOLERANCE, 0},
+{ 975, 3224772709u, 509637100u, 3212030069u, 215050379u, 3217125353u, 3300016857u, 0, TAN_TOLERANCE, 0},
+{ 976, 1092057101u, 3571665665u, 3188628584u, 757824767u, 1070419438u, 3036822347u, 0, TAN_TOLERANCE, 0},
+{ 977, 3214799337u, 998858159u, 1063077962u, 436029885u, 3214799896u, 3581777165u, 0, TAN_TOLERANCE, 0},
+{ 978, 3205946965u, 996300405u, 3193842624u, 80548098u, 3205946965u, 1012629084u, 0, TAN_TOLERANCE, 0},
+{ 979, 3228848840u, 3876129407u, 3215332180u, 2226970413u, 1078593226u, 76695377u, 0, TAN_TOLERANCE, 0},
+{ 980, 3237608953u, 200013509u, 3224552716u, 414878724u, 3221888552u, 2440171309u, 0, TAN_TOLERANCE, 0},
+{ 981, 3230617093u, 309319541u, 1048979765u, 1261662434u, 1071398388u, 1401776306u, 0, TAN_TOLERANCE, 0},
+{ 982, 1089252639u, 4062255924u, 3224274128u, 4289485681u, 1068546479u, 529156651u, 0, TAN_TOLERANCE, 0},
+{ 983, 3236136084u, 1611969213u, 1053890378u, 3774617276u, 1073236095u, 2860272602u, 0, TAN_TOLERANCE, 0},
+{ 984, 1080412763u, 1752164782u, 3239587974u, 612223386u, 1077725009u, 3506920398u, 0, TAN_TOLERANCE, 0},
+{ 985, 1041545782u, 2024044989u, 1074932678u, 3259111307u, 1041545782u, 2024044989u, 0, TAN_TOLERANCE, 0},
+{ 986, 1053207518u, 2564965629u, 1093571065u, 169360454u, 1053207518u, 2564981166u, 0, TAN_TOLERANCE, 0},
+{ 987, 1089599090u, 1860101737u, 3191222372u, 1676437468u, 3220588076u, 3785071853u, 0, TAN_TOLERANCE, 0},
+{ 988, 1059802968u, 588387057u, 3192103292u, 2495288012u, 1059802968u, 699627027u, 0, TAN_TOLERANCE, 0},
+{ 989, 3193155705u, 659070058u, 1073095700u, 1393632068u, 3193155705u, 659070059u, 0, TAN_TOLERANCE, 0},
+{ 990, 3217683263u, 4276187829u, 3217553330u, 1868253275u, 3217706953u, 3445958854u, 0, TAN_TOLERANCE, 0},
+{ 991, 3223220272u, 2085481575u, 3215994784u, 800910002u, 3222276535u, 3117891452u, 0, TAN_TOLERANCE, 0},
+{ 992, 1056934836u, 1950570756u, 3200582211u, 941022151u, 1056934836u, 1953249555u, 0, TAN_TOLERANCE, 0},
+{ 993, 1057530368u, 2075610870u, 3250142022u, 3605152103u, 1057530368u, 2080712643u, 0, TAN_TOLERANCE, 0},
+{ 994, 3200839250u, 3792931748u, 3204857863u, 804393211u, 3200839250u, 3792952409u, 0, TAN_TOLERANCE, 0},
+{ 995, 3253646370u, 3430071177u, 3226288311u, 3652522729u, 1076083333u, 3008288258u, 0, TAN_TOLERANCE, 0},
+{ 996, 3201314702u, 236884699u, 3227874605u, 2193269825u, 3201314702u, 236907314u, 0, TAN_TOLERANCE, 0},
+{ 997, 1064936593u, 2744231849u, 1046186036u, 771053722u, 1064936615u, 2553321629u, 0, TAN_TOLERANCE, 0},
+{ 998, 1083996036u, 3000189819u, 1096500901u, 2057239777u, 3218072365u, 2964452311u, 0, TAN_TOLERANCE, 0},
+{ 999, 1093835581u, 205759408u, 3244643377u, 2702292618u, 3222001752u, 2794274903u, 0, TAN_TOLERANCE, 0},
+
+
+// AUTOMATICALLY GENERATED VECTORS STOP
+
+};
+
+#endif // CYGONCE_LIBM_TAN_H multiple inclusion protection
+
+// EOF tan.h
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/tanf.c b/ecos/packages/language/c/libm/current/tests/vectors/tanf.c
new file mode 100644
index 0000000..87eb2e6
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/tanf.c
@@ -0,0 +1,115 @@
+//===========================================================================
+//
+// tanf.c
+//
+// Test of tanf() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// Declarations for test system:
+//
+// TESTCASE_TYPE=CYG_TEST_MODULE
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include <cyg/infra/testcase.h> // Test infrastructure
+#include <math.h> // Header for this package
+#include <sys/ieeefp.h> // Cyg_libm_ieee_float_shape_type
+#include "vectors/vector_support_float.h"// extra support for math tests
+
+#include "vectors/tanf.h"
+
+// FUNCTIONS
+
+static void
+test( CYG_ADDRWORD data )
+{
+ cyg_ucount32 vec_size;
+ cyg_bool ret;
+
+ vec_size = sizeof(tanf_vec) / sizeof(Cyg_libm_test_float_vec_t);
+ ret = doTestVecFloat( (CYG_ADDRWORD) &tanf, CYG_LIBM_TEST_VEC_FLOAT,
+ CYG_LIBM_TEST_VEC_NONE, CYG_LIBM_TEST_VEC_FLOAT,
+ &tanf_vec[0], vec_size );
+
+ if (ret==true)
+ {
+ CYG_TEST_PASS("tanf() is stable");
+ } // if
+ else
+ {
+ CYG_TEST_FAIL("tanf() failed tests");
+ } // else
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for Math "
+ "library tanf() function");
+} // test()
+
+
+int
+main(int argc, char *argv[])
+{
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for Math library "
+ "tanf() function");
+
+ START_TEST( test );
+
+ CYG_TEST_PASS_FINISH("Testing is not applicable to this configuration");
+
+} // main()
+
+
+// EOF tanf.c
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/tanf.h b/ecos/packages/language/c/libm/current/tests/vectors/tanf.h
new file mode 100644
index 0000000..5a96ea8
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/tanf.h
@@ -0,0 +1,1232 @@
+#ifndef CYGONCE_LIBM_SCABNF_H
+#define CYGONCE_LIBM_SCABNF_H
+//===========================================================================
+//
+// tanf.h
+//
+// Test vectors for testing of tanf() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage: #include "vectors/tanf.h"
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include "vectors/vector_support_float.h"// extra support for math tests
+
+#define TANF_TOLERANCE 1.0E-04
+
+static const Cyg_libm_test_float_vec_t tanf_vec[] = {
+
+// AUTOMATICALLY GENERATED VECTORS START
+
+{0, 3214514586u, 0u, 3223625251u, 0, TANF_TOLERANCE, 0},
+{1, 3214430700u, 0u, 3223313815u, 0, TANF_TOLERANCE, 0},
+{2, 3214346813u, 0u, 3223017555u, 0, TANF_TOLERANCE, 0},
+{3, 3214262927u, 0u, 3222735341u, 0, TANF_TOLERANCE, 0},
+{4, 3214179041u, 0u, 3222466140u, 0, TANF_TOLERANCE, 0},
+{5, 3214095155u, 0u, 3222209023u, 0, TANF_TOLERANCE, 0},
+{6, 3214011269u, 0u, 3221963145u, 0, TANF_TOLERANCE, 0},
+{7, 3213927383u, 0u, 3221727740u, 0, TANF_TOLERANCE, 0},
+{8, 3213843497u, 0u, 3221502108u, 0, TANF_TOLERANCE, 0},
+{9, 3213759611u, 0u, 3221285611u, 0, TANF_TOLERANCE, 0},
+{10, 3213675725u, 0u, 3220929855u, 0, TANF_TOLERANCE, 0},
+{11, 3213591839u, 0u, 3220529989u, 0, TANF_TOLERANCE, 0},
+{12, 3213507953u, 0u, 3220145165u, 0, TANF_TOLERANCE, 0},
+{13, 3213424067u, 0u, 3219774482u, 0, TANF_TOLERANCE, 0},
+{14, 3213340180u, 0u, 3219417095u, 0, TANF_TOLERANCE, 0},
+{15, 3213256294u, 0u, 3219072244u, 0, TANF_TOLERANCE, 0},
+{16, 3213172408u, 0u, 3218739210u, 0, TANF_TOLERANCE, 0},
+{17, 3213088522u, 0u, 3218417335u, 0, TANF_TOLERANCE, 0},
+{18, 3213004636u, 0u, 3218106004u, 0, TANF_TOLERANCE, 0},
+{19, 3212920750u, 0u, 3217804648u, 0, TANF_TOLERANCE, 0},
+{20, 3212836864u, 0u, 3217512739u, 0, TANF_TOLERANCE, 0},
+{21, 3212669092u, 0u, 3217229784u, 0, TANF_TOLERANCE, 0},
+{22, 3212501320u, 0u, 3216955321u, 0, TANF_TOLERANCE, 0},
+{23, 3212333548u, 0u, 3216688923u, 0, TANF_TOLERANCE, 0},
+{24, 3212165775u, 0u, 3216430186u, 0, TANF_TOLERANCE, 0},
+{25, 3211998003u, 0u, 3216178740u, 0, TANF_TOLERANCE, 0},
+{26, 3211830231u, 0u, 3215934228u, 0, TANF_TOLERANCE, 0},
+{27, 3211662459u, 0u, 3215696321u, 0, TANF_TOLERANCE, 0},
+{28, 3211494687u, 0u, 3215464711u, 0, TANF_TOLERANCE, 0},
+{29, 3211326915u, 0u, 3215239105u, 0, TANF_TOLERANCE, 0},
+{30, 3211159142u, 0u, 3215019230u, 0, TANF_TOLERANCE, 0},
+{31, 3210991370u, 0u, 3214804827u, 0, TANF_TOLERANCE, 0},
+{32, 3210823598u, 0u, 3214595654u, 0, TANF_TOLERANCE, 0},
+{33, 3210655826u, 0u, 3214391483u, 0, TANF_TOLERANCE, 0},
+{34, 3210488054u, 0u, 3214192094u, 0, TANF_TOLERANCE, 0},
+{35, 3210320282u, 0u, 3213997284u, 0, TANF_TOLERANCE, 0},
+{36, 3210152509u, 0u, 3213806858u, 0, TANF_TOLERANCE, 0},
+{37, 3209984737u, 0u, 3213620637u, 0, TANF_TOLERANCE, 0},
+{38, 3209816965u, 0u, 3213438442u, 0, TANF_TOLERANCE, 0},
+{39, 3209649193u, 0u, 3213260113u, 0, TANF_TOLERANCE, 0},
+{40, 3209481421u, 0u, 3213085491u, 0, TANF_TOLERANCE, 0},
+{41, 3209313649u, 0u, 3212914427u, 0, TANF_TOLERANCE, 0},
+{42, 3209145876u, 0u, 3212656702u, 0, TANF_TOLERANCE, 0},
+{43, 3208978104u, 0u, 3212327983u, 0, TANF_TOLERANCE, 0},
+{44, 3208810332u, 0u, 3212005577u, 0, TANF_TOLERANCE, 0},
+{45, 3208642560u, 0u, 3211689243u, 0, TANF_TOLERANCE, 0},
+{46, 3208474788u, 0u, 3211378749u, 0, TANF_TOLERANCE, 0},
+{47, 3208307016u, 0u, 3211073873u, 0, TANF_TOLERANCE, 0},
+{48, 3208139244u, 0u, 3210774407u, 0, TANF_TOLERANCE, 0},
+{49, 3207971471u, 0u, 3210480145u, 0, TANF_TOLERANCE, 0},
+{50, 3207803699u, 0u, 3210190902u, 0, TANF_TOLERANCE, 0},
+{51, 3207635927u, 0u, 3209906490u, 0, TANF_TOLERANCE, 0},
+{52, 3207468155u, 0u, 3209626734u, 0, TANF_TOLERANCE, 0},
+{53, 3207300383u, 0u, 3209351468u, 0, TANF_TOLERANCE, 0},
+{54, 3207132611u, 0u, 3209080528u, 0, TANF_TOLERANCE, 0},
+{55, 3206964838u, 0u, 3208813761u, 0, TANF_TOLERANCE, 0},
+{56, 3206797066u, 0u, 3208551021u, 0, TANF_TOLERANCE, 0},
+{57, 3206629294u, 0u, 3208292164u, 0, TANF_TOLERANCE, 0},
+{58, 3206461522u, 0u, 3208037053u, 0, TANF_TOLERANCE, 0},
+{59, 3206293750u, 0u, 3207785562u, 0, TANF_TOLERANCE, 0},
+{60, 3206125978u, 0u, 3207537560u, 0, TANF_TOLERANCE, 0},
+{61, 3205958205u, 0u, 3207292928u, 0, TANF_TOLERANCE, 0},
+{62, 3205790433u, 0u, 3207051550u, 0, TANF_TOLERANCE, 0},
+{63, 3205622661u, 0u, 3206813316u, 0, TANF_TOLERANCE, 0},
+{64, 3205454889u, 0u, 3206578116u, 0, TANF_TOLERANCE, 0},
+{65, 3205287117u, 0u, 3206345847u, 0, TANF_TOLERANCE, 0},
+{66, 3205119345u, 0u, 3206116409u, 0, TANF_TOLERANCE, 0},
+{67, 3204951572u, 0u, 3205889704u, 0, TANF_TOLERANCE, 0},
+{68, 3204783800u, 0u, 3205665640u, 0, TANF_TOLERANCE, 0},
+{69, 3204616028u, 0u, 3205444129u, 0, TANF_TOLERANCE, 0},
+{70, 3204448256u, 0u, 3205225083u, 0, TANF_TOLERANCE, 0},
+{71, 3204112712u, 0u, 3205008416u, 0, TANF_TOLERANCE, 0},
+{72, 3203777167u, 0u, 3204794048u, 0, TANF_TOLERANCE, 0},
+{73, 3203441623u, 0u, 3204581902u, 0, TANF_TOLERANCE, 0},
+{74, 3203106079u, 0u, 3204295542u, 0, TANF_TOLERANCE, 0},
+{75, 3202770534u, 0u, 3203879679u, 0, TANF_TOLERANCE, 0},
+{76, 3202434990u, 0u, 3203467813u, 0, TANF_TOLERANCE, 0},
+{77, 3202099446u, 0u, 3203059808u, 0, TANF_TOLERANCE, 0},
+{78, 3201763901u, 0u, 3202655528u, 0, TANF_TOLERANCE, 0},
+{79, 3201428357u, 0u, 3202254843u, 0, TANF_TOLERANCE, 0},
+{80, 3201092813u, 0u, 3201857626u, 0, TANF_TOLERANCE, 0},
+{81, 3200757268u, 0u, 3201463754u, 0, TANF_TOLERANCE, 0},
+{82, 3200421724u, 0u, 3201073106u, 0, TANF_TOLERANCE, 0},
+{83, 3200086180u, 0u, 3200685568u, 0, TANF_TOLERANCE, 0},
+{84, 3199750636u, 0u, 3200301024u, 0, TANF_TOLERANCE, 0},
+{85, 3199415091u, 0u, 3199919364u, 0, TANF_TOLERANCE, 0},
+{86, 3199079547u, 0u, 3199540480u, 0, TANF_TOLERANCE, 0},
+{87, 3198744003u, 0u, 3199164268u, 0, TANF_TOLERANCE, 0},
+{88, 3198408458u, 0u, 3198790623u, 0, TANF_TOLERANCE, 0},
+{89, 3198072914u, 0u, 3198419447u, 0, TANF_TOLERANCE, 0},
+{90, 3197737370u, 0u, 3198050643u, 0, TANF_TOLERANCE, 0},
+{91, 3197401825u, 0u, 3197684111u, 0, TANF_TOLERANCE, 0},
+{92, 3197066281u, 0u, 3197319762u, 0, TANF_TOLERANCE, 0},
+{93, 3196730737u, 0u, 3196957502u, 0, TANF_TOLERANCE, 0},
+{94, 3196395192u, 0u, 3196597241u, 0, TANF_TOLERANCE, 0},
+{95, 3196059648u, 0u, 3196238893u, 0, TANF_TOLERANCE, 0},
+{96, 3195388559u, 0u, 3195705092u, 0, TANF_TOLERANCE, 0},
+{97, 3194717471u, 0u, 3194995527u, 0, TANF_TOLERANCE, 0},
+{98, 3194046382u, 0u, 3194289277u, 0, TANF_TOLERANCE, 0},
+{99, 3193375293u, 0u, 3193586179u, 0, TANF_TOLERANCE, 0},
+{100, 3192704205u, 0u, 3192886073u, 0, TANF_TOLERANCE, 0},
+{101, 3192033116u, 0u, 3192188798u, 0, TANF_TOLERANCE, 0},
+{102, 3191362028u, 0u, 3191494201u, 0, TANF_TOLERANCE, 0},
+{103, 3190690939u, 0u, 3190802126u, 0, TANF_TOLERANCE, 0},
+{104, 3190019850u, 0u, 3190112424u, 0, TANF_TOLERANCE, 0},
+{105, 3189348762u, 0u, 3189424945u, 0, TANF_TOLERANCE, 0},
+{106, 3188677673u, 0u, 3188739540u, 0, TANF_TOLERANCE, 0},
+{107, 3188006584u, 0u, 3188056065u, 0, TANF_TOLERANCE, 0},
+{108, 3186999951u, 0u, 3187077709u, 0, TANF_TOLERANCE, 0},
+{109, 3185657774u, 0u, 3185717611u, 0, TANF_TOLERANCE, 0},
+{110, 3184315597u, 0u, 3184360516u, 0, TANF_TOLERANCE, 0},
+{111, 3182973420u, 0u, 3183006141u, 0, TANF_TOLERANCE, 0},
+{112, 3181631242u, 0u, 3181654207u, 0, TANF_TOLERANCE, 0},
+{113, 3180289065u, 0u, 3180304441u, 0, TANF_TOLERANCE, 0},
+{114, 3178611343u, 0u, 3178630698u, 0, TANF_TOLERANCE, 0},
+{115, 3175926989u, 0u, 3175938185u, 0, TANF_TOLERANCE, 0},
+{116, 3173242634u, 0u, 3173248365u, 0, TANF_TOLERANCE, 0},
+{117, 3170222735u, 0u, 3170227569u, 0, TANF_TOLERANCE, 0},
+{118, 3164854026u, 0u, 3164855458u, 0, TANF_TOLERANCE, 0},
+{119, 3156465418u, 0u, 3156465776u, 0, TANF_TOLERANCE, 0},
+{120, 1008981770u, 0u, 1008982128u, 0, TANF_TOLERANCE, 0},
+{121, 1017370378u, 0u, 1017371810u, 0, TANF_TOLERANCE, 0},
+{122, 1022739087u, 0u, 1022743921u, 0, TANF_TOLERANCE, 0},
+{123, 1025758986u, 0u, 1025764717u, 0, TANF_TOLERANCE, 0},
+{124, 1028443341u, 0u, 1028454537u, 0, TANF_TOLERANCE, 0},
+{125, 1031127695u, 0u, 1031147050u, 0, TANF_TOLERANCE, 0},
+{126, 1032805417u, 0u, 1032820793u, 0, TANF_TOLERANCE, 0},
+{127, 1034147594u, 0u, 1034170559u, 0, TANF_TOLERANCE, 0},
+{128, 1035489772u, 0u, 1035522493u, 0, TANF_TOLERANCE, 0},
+{129, 1036831949u, 0u, 1036876868u, 0, TANF_TOLERANCE, 0},
+{130, 1038174126u, 0u, 1038233963u, 0, TANF_TOLERANCE, 0},
+{131, 1039516303u, 0u, 1039594061u, 0, TANF_TOLERANCE, 0},
+{132, 1040522936u, 0u, 1040572417u, 0, TANF_TOLERANCE, 0},
+{133, 1041194025u, 0u, 1041255892u, 0, TANF_TOLERANCE, 0},
+{134, 1041865114u, 0u, 1041941297u, 0, TANF_TOLERANCE, 0},
+{135, 1042536202u, 0u, 1042628776u, 0, TANF_TOLERANCE, 0},
+{136, 1043207291u, 0u, 1043318478u, 0, TANF_TOLERANCE, 0},
+{137, 1043878380u, 0u, 1044010553u, 0, TANF_TOLERANCE, 0},
+{138, 1044549468u, 0u, 1044705150u, 0, TANF_TOLERANCE, 0},
+{139, 1045220557u, 0u, 1045402425u, 0, TANF_TOLERANCE, 0},
+{140, 1045891645u, 0u, 1046102531u, 0, TANF_TOLERANCE, 0},
+{141, 1046562734u, 0u, 1046805629u, 0, TANF_TOLERANCE, 0},
+{142, 1047233823u, 0u, 1047511879u, 0, TANF_TOLERANCE, 0},
+{143, 1047904911u, 0u, 1048221444u, 0, TANF_TOLERANCE, 0},
+{144, 1048576000u, 0u, 1048755245u, 0, TANF_TOLERANCE, 0},
+{145, 1048911544u, 0u, 1049113593u, 0, TANF_TOLERANCE, 0},
+{146, 1049247089u, 0u, 1049473854u, 0, TANF_TOLERANCE, 0},
+{147, 1049582633u, 0u, 1049836114u, 0, TANF_TOLERANCE, 0},
+{148, 1049918177u, 0u, 1050200463u, 0, TANF_TOLERANCE, 0},
+{149, 1050253722u, 0u, 1050566995u, 0, TANF_TOLERANCE, 0},
+{150, 1050589266u, 0u, 1050935799u, 0, TANF_TOLERANCE, 0},
+{151, 1050924810u, 0u, 1051306975u, 0, TANF_TOLERANCE, 0},
+{152, 1051260355u, 0u, 1051680620u, 0, TANF_TOLERANCE, 0},
+{153, 1051595899u, 0u, 1052056832u, 0, TANF_TOLERANCE, 0},
+{154, 1051931443u, 0u, 1052435716u, 0, TANF_TOLERANCE, 0},
+{155, 1052266988u, 0u, 1052817376u, 0, TANF_TOLERANCE, 0},
+{156, 1052602532u, 0u, 1053201920u, 0, TANF_TOLERANCE, 0},
+{157, 1052938076u, 0u, 1053589458u, 0, TANF_TOLERANCE, 0},
+{158, 1053273620u, 0u, 1053980106u, 0, TANF_TOLERANCE, 0},
+{159, 1053609165u, 0u, 1054373978u, 0, TANF_TOLERANCE, 0},
+{160, 1053944709u, 0u, 1054771195u, 0, TANF_TOLERANCE, 0},
+{161, 1054280253u, 0u, 1055171880u, 0, TANF_TOLERANCE, 0},
+{162, 1054615798u, 0u, 1055576160u, 0, TANF_TOLERANCE, 0},
+{163, 1054951342u, 0u, 1055984165u, 0, TANF_TOLERANCE, 0},
+{164, 1055286886u, 0u, 1056396031u, 0, TANF_TOLERANCE, 0},
+{165, 1055622431u, 0u, 1056811894u, 0, TANF_TOLERANCE, 0},
+{166, 1055957975u, 0u, 1057098254u, 0, TANF_TOLERANCE, 0},
+{167, 1056293519u, 0u, 1057310400u, 0, TANF_TOLERANCE, 0},
+{168, 1056629064u, 0u, 1057524768u, 0, TANF_TOLERANCE, 0},
+{169, 1056964608u, 0u, 1057741435u, 0, TANF_TOLERANCE, 0},
+{170, 1057132380u, 0u, 1057960481u, 0, TANF_TOLERANCE, 0},
+{171, 1057300152u, 0u, 1058181992u, 0, TANF_TOLERANCE, 0},
+{172, 1057467924u, 0u, 1058406056u, 0, TANF_TOLERANCE, 0},
+{173, 1057635697u, 0u, 1058632761u, 0, TANF_TOLERANCE, 0},
+{174, 1057803469u, 0u, 1058862199u, 0, TANF_TOLERANCE, 0},
+{175, 1057971241u, 0u, 1059094468u, 0, TANF_TOLERANCE, 0},
+{176, 1058139013u, 0u, 1059329668u, 0, TANF_TOLERANCE, 0},
+{177, 1058306785u, 0u, 1059567902u, 0, TANF_TOLERANCE, 0},
+{178, 1058474557u, 0u, 1059809280u, 0, TANF_TOLERANCE, 0},
+{179, 1058642330u, 0u, 1060053912u, 0, TANF_TOLERANCE, 0},
+{180, 1058810102u, 0u, 1060301914u, 0, TANF_TOLERANCE, 0},
+{181, 1058977874u, 0u, 1060553405u, 0, TANF_TOLERANCE, 0},
+{182, 1059145646u, 0u, 1060808516u, 0, TANF_TOLERANCE, 0},
+{183, 1059313418u, 0u, 1061067373u, 0, TANF_TOLERANCE, 0},
+{184, 1059481190u, 0u, 1061330113u, 0, TANF_TOLERANCE, 0},
+{185, 1059648963u, 0u, 1061596880u, 0, TANF_TOLERANCE, 0},
+{186, 1059816735u, 0u, 1061867820u, 0, TANF_TOLERANCE, 0},
+{187, 1059984507u, 0u, 1062143086u, 0, TANF_TOLERANCE, 0},
+{188, 1060152279u, 0u, 1062422842u, 0, TANF_TOLERANCE, 0},
+{189, 1060320051u, 0u, 1062707254u, 0, TANF_TOLERANCE, 0},
+{190, 1060487823u, 0u, 1062996497u, 0, TANF_TOLERANCE, 0},
+{191, 1060655596u, 0u, 1063290759u, 0, TANF_TOLERANCE, 0},
+{192, 1060823368u, 0u, 1063590225u, 0, TANF_TOLERANCE, 0},
+{193, 1060991140u, 0u, 1063895101u, 0, TANF_TOLERANCE, 0},
+{194, 1061158912u, 0u, 1064205595u, 0, TANF_TOLERANCE, 0},
+{195, 1061326684u, 0u, 1064521929u, 0, TANF_TOLERANCE, 0},
+{196, 1061494456u, 0u, 1064844335u, 0, TANF_TOLERANCE, 0},
+{197, 1061662228u, 0u, 1065173054u, 0, TANF_TOLERANCE, 0},
+{198, 1061830001u, 0u, 1065430779u, 0, TANF_TOLERANCE, 0},
+{199, 1061997773u, 0u, 1065601843u, 0, TANF_TOLERANCE, 0},
+{200, 1062165545u, 0u, 1065776465u, 0, TANF_TOLERANCE, 0},
+{201, 1062333317u, 0u, 1065954794u, 0, TANF_TOLERANCE, 0},
+{202, 1062501089u, 0u, 1066136989u, 0, TANF_TOLERANCE, 0},
+{203, 1062668861u, 0u, 1066323210u, 0, TANF_TOLERANCE, 0},
+{204, 1062836634u, 0u, 1066513636u, 0, TANF_TOLERANCE, 0},
+{205, 1063004406u, 0u, 1066708446u, 0, TANF_TOLERANCE, 0},
+{206, 1063172178u, 0u, 1066907835u, 0, TANF_TOLERANCE, 0},
+{207, 1063339950u, 0u, 1067112006u, 0, TANF_TOLERANCE, 0},
+{208, 1063507722u, 0u, 1067321179u, 0, TANF_TOLERANCE, 0},
+{209, 1063675494u, 0u, 1067535582u, 0, TANF_TOLERANCE, 0},
+{210, 1063843267u, 0u, 1067755457u, 0, TANF_TOLERANCE, 0},
+{211, 1064011039u, 0u, 1067981063u, 0, TANF_TOLERANCE, 0},
+{212, 1064178811u, 0u, 1068212673u, 0, TANF_TOLERANCE, 0},
+{213, 1064346583u, 0u, 1068450580u, 0, TANF_TOLERANCE, 0},
+{214, 1064514355u, 0u, 1068695092u, 0, TANF_TOLERANCE, 0},
+{215, 1064682127u, 0u, 1068946538u, 0, TANF_TOLERANCE, 0},
+{216, 1064849900u, 0u, 1069205275u, 0, TANF_TOLERANCE, 0},
+{217, 1065017672u, 0u, 1069471673u, 0, TANF_TOLERANCE, 0},
+{218, 1065185444u, 0u, 1069746136u, 0, TANF_TOLERANCE, 0},
+{219, 1065353216u, 0u, 1070029091u, 0, TANF_TOLERANCE, 0},
+{220, 1065437102u, 0u, 1070321000u, 0, TANF_TOLERANCE, 0},
+{221, 1065520988u, 0u, 1070622356u, 0, TANF_TOLERANCE, 0},
+{222, 1065604874u, 0u, 1070933687u, 0, TANF_TOLERANCE, 0},
+{223, 1065688760u, 0u, 1071255562u, 0, TANF_TOLERANCE, 0},
+{224, 1065772646u, 0u, 1071588596u, 0, TANF_TOLERANCE, 0},
+{225, 1065856532u, 0u, 1071933447u, 0, TANF_TOLERANCE, 0},
+{226, 1065940419u, 0u, 1072290834u, 0, TANF_TOLERANCE, 0},
+{227, 1066024305u, 0u, 1072661517u, 0, TANF_TOLERANCE, 0},
+{228, 1066108191u, 0u, 1073046341u, 0, TANF_TOLERANCE, 0},
+{229, 1066192077u, 0u, 1073446207u, 0, TANF_TOLERANCE, 0},
+{230, 1066275963u, 0u, 1073801963u, 0, TANF_TOLERANCE, 0},
+{231, 1066359849u, 0u, 1074018460u, 0, TANF_TOLERANCE, 0},
+{232, 1066443735u, 0u, 1074244092u, 0, TANF_TOLERANCE, 0},
+{233, 1066527621u, 0u, 1074479497u, 0, TANF_TOLERANCE, 0},
+{234, 1066611507u, 0u, 1074725375u, 0, TANF_TOLERANCE, 0},
+{235, 1066695393u, 0u, 1074982492u, 0, TANF_TOLERANCE, 0},
+{236, 1066779279u, 0u, 1075251693u, 0, TANF_TOLERANCE, 0},
+{237, 1066863165u, 0u, 1075533907u, 0, TANF_TOLERANCE, 0},
+{238, 1066947052u, 0u, 1075830167u, 0, TANF_TOLERANCE, 0},
+{239, 3234402267u, 0u, 3023813934u, 0, TANF_TOLERANCE, 0},
+{240, 3231108068u, 0u, 1285550701u, 0, TANF_TOLERANCE, 0},
+{241, 3217625051u, 0u, 1269729867u, 0, TANF_TOLERANCE, 0},
+{242, 0u, 0u, 0u, 0, TANF_TOLERANCE, 0},
+{243, 1070141403u, 0u, 3417213515u, 0, TANF_TOLERANCE, 0},
+{244, 1083624420u, 0u, 3433034349u, 0, TANF_TOLERANCE, 0},
+{245, 3253731328u, 0u, 1087174777u, 0, TANF_TOLERANCE, 0},
+{246, 3252840038u, 0u, 3167898616u, 0, TANF_TOLERANCE, 0},
+{247, 3251948749u, 0u, 3239705397u, 0, TANF_TOLERANCE, 0},
+{248, 3251057459u, 0u, 1047706077u, 0, TANF_TOLERANCE, 0},
+{249, 3250166170u, 0u, 3223914617u, 0, TANF_TOLERANCE, 0},
+{250, 3249274880u, 0u, 1057549535u, 0, TANF_TOLERANCE, 0},
+{251, 3248383590u, 0u, 3216189737u, 0, TANF_TOLERANCE, 0},
+{252, 3247492301u, 0u, 1064191672u, 0, TANF_TOLERANCE, 0},
+{253, 3246601011u, 0u, 3209964023u, 0, TANF_TOLERANCE, 0},
+{254, 3245028147u, 0u, 1070260802u, 0, TANF_TOLERANCE, 0},
+{255, 3243245568u, 0u, 3203207451u, 0, TANF_TOLERANCE, 0},
+{256, 3241462989u, 0u, 1078702695u, 0, TANF_TOLERANCE, 0},
+{257, 3239680410u, 0u, 3191163251u, 0, TANF_TOLERANCE, 0},
+{258, 3237792973u, 0u, 1101903989u, 0, TANF_TOLERANCE, 0},
+{259, 3234227814u, 0u, 1034600970u, 0, TANF_TOLERANCE, 0},
+{260, 3230662656u, 0u, 3230950662u, 0, TANF_TOLERANCE, 0},
+{261, 3224580915u, 0u, 1052116995u, 0, TANF_TOLERANCE, 0},
+{262, 3213675725u, 0u, 3220929855u, 0, TANF_TOLERANCE, 0},
+{263, 1058642330u, 0u, 1060053912u, 0, TANF_TOLERANCE, 0},
+{264, 1075000115u, 0u, 3213836902u, 0, TANF_TOLERANCE, 0},
+{265, 1082130432u, 0u, 1066677117u, 0, TANF_TOLERANCE, 0},
+{266, 1085695590u, 0u, 3207128095u, 0, TANF_TOLERANCE, 0},
+{267, 1089260749u, 0u, 1073948539u, 0, TANF_TOLERANCE, 0},
+{268, 1091672474u, 0u, 3198968821u, 0, TANF_TOLERANCE, 0},
+{269, 1093455053u, 0u, 1084327814u, 0, TANF_TOLERANCE, 0},
+{270, 1095237632u, 0u, 3179815041u, 0, TANF_TOLERANCE, 0},
+{271, 1097020211u, 0u, 3246280447u, 0, TANF_TOLERANCE, 0},
+{272, 1098802790u, 0u, 1044846917u, 0, TANF_TOLERANCE, 0},
+{273, 1099746509u, 0u, 3225441190u, 0, TANF_TOLERANCE, 0},
+{274, 1100637798u, 0u, 1056414381u, 0, TANF_TOLERANCE, 0},
+{275, 1101529088u, 0u, 3217261841u, 0, TANF_TOLERANCE, 0},
+{276, 1102420378u, 0u, 1062963047u, 0, TANF_TOLERANCE, 0},
+{277, 1103311667u, 0u, 3211156910u, 0, TANF_TOLERANCE, 0},
+{278, 1104202957u, 0u, 1069133612u, 0, TANF_TOLERANCE, 0},
+{279, 1105094246u, 0u, 3204673592u, 0, TANF_TOLERANCE, 0},
+{280, 1105985536u, 0u, 1077019629u, 0, TANF_TOLERANCE, 0},
+{281, 1107800421u, 100135u, 3208402548u, 0, TANF_TOLERANCE, 0},
+{282, 3196650934u, 0u, 3196871643u, 0, TANF_TOLERANCE, 0},
+{283, 3368700125u, 4294964487u, 3194614723u, 0, TANF_TOLERANCE, 0},
+{284, 1224242132u, 0u, 3206830634u, 0, TANF_TOLERANCE, 0},
+{285, 3221027117u, 73066312u, 1075121948u, 0, TANF_TOLERANCE, 0},
+{286, 1198712763u, 0u, 3216291424u, 0, TANF_TOLERANCE, 0},
+{287, 3159309973u, 0u, 3159310697u, 0, TANF_TOLERANCE, 0},
+{288, 954173073u, 0u, 954173073u, 0, TANF_TOLERANCE, 0},
+{289, 3090780435u, 0u, 3090780435u, 0, TANF_TOLERANCE, 0},
+{290, 966554515u, 4294967290u, 966554515u, 0, TANF_TOLERANCE, 0},
+{291, 1312607135u, 47678u, 1057104214u, 0, TANF_TOLERANCE, 0},
+{292, 1166191415u, 0u, 3178082920u, 0, TANF_TOLERANCE, 0},
+{293, 3111900019u, 225u, 3111900019u, 0, TANF_TOLERANCE, 0},
+{294, 1234419246u, 0u, 3232454771u, 0, TANF_TOLERANCE, 0},
+{295, 1302107128u, 4294492157u, 3186679693u, 0, TANF_TOLERANCE, 0},
+{296, 1052801068u, 0u, 1053430852u, 0, TANF_TOLERANCE, 0},
+{297, 1060849628u, 0u, 1063637583u, 0, TANF_TOLERANCE, 0},
+{298, 3484320003u, 0u, 3201724532u, 0, TANF_TOLERANCE, 0},
+{299, 3181522772u, 4294965180u, 3181545047u, 0, TANF_TOLERANCE, 0},
+{300, 882596369u, 7581303u, 882596369u, 0, TANF_TOLERANCE, 0},
+{301, 1167223673u, 0u, 1081686688u, 0, TANF_TOLERANCE, 0},
+{302, 968192794u, 0u, 968192794u, 0, TANF_TOLERANCE, 0},
+{303, 3122346862u, 48u, 3122346863u, 0, TANF_TOLERANCE, 0},
+{304, 1052361612u, 53381624u, 1052925522u, 0, TANF_TOLERANCE, 0},
+{305, 906701409u, 0u, 906701409u, 0, TANF_TOLERANCE, 0},
+{306, 3471653172u, 1621u, 1100734332u, 0, TANF_TOLERANCE, 0},
+{307, 3231467496u, 0u, 1085858016u, 0, TANF_TOLERANCE, 0},
+{308, 1341514497u, 3022046720u, 1049131149u, 0, TANF_TOLERANCE, 0},
+{309, 1272351391u, 4294363968u, 3226645714u, 0, TANF_TOLERANCE, 0},
+{310, 3319724992u, 4294842689u, 3215280037u, 0, TANF_TOLERANCE, 0},
+{311, 917622040u, 603040256u, 917622040u, 0, TANF_TOLERANCE, 0},
+{312, 940236348u, 4294965375u, 940236348u, 0, TANF_TOLERANCE, 0},
+{313, 3251541546u, 0u, 3209922887u, 0, TANF_TOLERANCE, 0},
+{314, 3099843889u, 4294828114u, 3099843889u, 0, TANF_TOLERANCE, 0},
+{315, 3110358400u, 0u, 3110358400u, 0, TANF_TOLERANCE, 0},
+{316, 3371863479u, 0u, 1091463657u, 0, TANF_TOLERANCE, 0},
+{317, 3204069187u, 0u, 3204980482u, 0, TANF_TOLERANCE, 0},
+{318, 1306460502u, 0u, 1078444858u, 0, TANF_TOLERANCE, 0},
+{319, 1197542187u, 0u, 1061116656u, 0, TANF_TOLERANCE, 0},
+{320, 922888249u, 467u, 922888249u, 0, TANF_TOLERANCE, 0},
+{321, 1184239996u, 4294967294u, 1071410775u, 0, TANF_TOLERANCE, 0},
+{322, 1252490238u, 7808u, 1048885026u, 0, TANF_TOLERANCE, 0},
+{323, 1001673627u, 3340510784u, 1001673746u, 0, TANF_TOLERANCE, 0},
+{324, 976098044u, 1357u, 976098046u, 0, TANF_TOLERANCE, 0},
+{325, 941796645u, 0u, 941796645u, 0, TANF_TOLERANCE, 0},
+{326, 3287199470u, 0u, 1042315374u, 0, TANF_TOLERANCE, 0},
+{327, 893184329u, 2485427u, 893184329u, 0, TANF_TOLERANCE, 0},
+{328, 1143233714u, 0u, 1066620219u, 0, TANF_TOLERANCE, 0},
+{329, 1139941253u, 929u, 1056024260u, 0, TANF_TOLERANCE, 0},
+{330, 3143717025u, 4294967290u, 3143717083u, 0, TANF_TOLERANCE, 0},
+{331, 3048866608u, 3978787488u, 3048866608u, 0, TANF_TOLERANCE, 0},
+{332, 3240298487u, 0u, 3212155261u, 0, TANF_TOLERANCE, 0},
+{333, 1288902137u, 0u, 1065679218u, 0, TANF_TOLERANCE, 0},
+{334, 1333134799u, 2211432960u, 3219769977u, 0, TANF_TOLERANCE, 0},
+{335, 1187847971u, 1157221888u, 1079294396u, 0, TANF_TOLERANCE, 0},
+{336, 1038851706u, 2696359424u, 1038920197u, 0, TANF_TOLERANCE, 0},
+{337, 3329354473u, 0u, 3216403250u, 0, TANF_TOLERANCE, 0},
+{338, 3077218579u, 529671904u, 3077218579u, 0, TANF_TOLERANCE, 0},
+{339, 1309289088u, 0u, 3214417687u, 0, TANF_TOLERANCE, 0},
+{340, 3444653659u, 50272864u, 3215945259u, 0, TANF_TOLERANCE, 0},
+{341, 3405585402u, 0u, 1079727474u, 0, TANF_TOLERANCE, 0},
+{342, 3106647724u, 0u, 3106647724u, 0, TANF_TOLERANCE, 0},
+{343, 1106778573u, 4294965325u, 3201989462u, 0, TANF_TOLERANCE, 0},
+{344, 1140567947u, 0u, 1063190279u, 0, TANF_TOLERANCE, 0},
+{345, 1238569473u, 0u, 3204992016u, 0, TANF_TOLERANCE, 0},
+{346, 3154871957u, 39965012u, 3154872178u, 0, TANF_TOLERANCE, 0},
+{347, 1261071232u, 15806u, 3241842703u, 0, TANF_TOLERANCE, 0},
+{348, 1175011025u, 0u, 3192116290u, 0, TANF_TOLERANCE, 0},
+{349, 1082692850u, 187658u, 1074166068u, 0, TANF_TOLERANCE, 0},
+{350, 974547519u, 1563599616u, 974547520u, 0, TANF_TOLERANCE, 0},
+{351, 3058097085u, 0u, 3058097085u, 0, TANF_TOLERANCE, 0},
+{352, 3107252546u, 1u, 3107252546u, 0, TANF_TOLERANCE, 0},
+{353, 3096032662u, 0u, 3096032662u, 0, TANF_TOLERANCE, 0},
+{354, 3197942144u, 0u, 3198275438u, 0, TANF_TOLERANCE, 0},
+{355, 3403348556u, 0u, 3257568817u, 0, TANF_TOLERANCE, 0},
+{356, 3182301130u, 3460013312u, 3182328676u, 0, TANF_TOLERANCE, 0},
+{357, 1136411063u, 82u, 3204745512u, 0, TANF_TOLERANCE, 0},
+{358, 3239231622u, 4294965540u, 1048854506u, 0, TANF_TOLERANCE, 0},
+{359, 3340615780u, 0u, 1065270832u, 0, TANF_TOLERANCE, 0},
+{360, 998567360u, 0u, 998567408u, 0, TANF_TOLERANCE, 0},
+{361, 3417964312u, 1627479168u, 1061011657u, 0, TANF_TOLERANCE, 0},
+{362, 3109481038u, 695u, 3109481038u, 0, TANF_TOLERANCE, 0},
+{363, 1148867223u, 7486109u, 3214546003u, 0, TANF_TOLERANCE, 0},
+{364, 989687421u, 4294414202u, 989687442u, 0, TANF_TOLERANCE, 0},
+{365, 1152956913u, 0u, 1078507001u, 0, TANF_TOLERANCE, 0},
+{366, 892922651u, 4294392467u, 892922651u, 0, TANF_TOLERANCE, 0},
+{367, 1109627625u, 891137088u, 1029198039u, 0, TANF_TOLERANCE, 0},
+{368, 1307091856u, 24u, 1084288813u, 0, TANF_TOLERANCE, 0},
+{369, 1077234132u, 4294967159u, 3198381040u, 0, TANF_TOLERANCE, 0},
+{370, 1142167709u, 13u, 3231878889u, 0, TANF_TOLERANCE, 0},
+{371, 3426232834u, 0u, 3220906277u, 0, TANF_TOLERANCE, 0},
+{372, 3368566779u, 0u, 1072891723u, 0, TANF_TOLERANCE, 0},
+{373, 3030724760u, 4294886457u, 3030724760u, 0, TANF_TOLERANCE, 0},
+{374, 1138741813u, 0u, 1105617478u, 0, TANF_TOLERANCE, 0},
+{375, 982950501u, 0u, 982950505u, 0, TANF_TOLERANCE, 0},
+{376, 1142981585u, 0u, 1075383500u, 0, TANF_TOLERANCE, 0},
+{377, 3347165962u, 0u, 1067697451u, 0, TANF_TOLERANCE, 0},
+{378, 1009535440u, 4293825695u, 1009535856u, 0, TANF_TOLERANCE, 0},
+{379, 3103736980u, 4287990860u, 3103736980u, 0, TANF_TOLERANCE, 0},
+{380, 3126820946u, 2u, 3126820950u, 0, TANF_TOLERANCE, 0},
+{381, 3473956030u, 0u, 3211118531u, 0, TANF_TOLERANCE, 0},
+{382, 3349098349u, 0u, 3205518067u, 0, TANF_TOLERANCE, 0},
+{383, 3152729489u, 0u, 3152729752u, 0, TANF_TOLERANCE, 0},
+{384, 945568720u, 4294963204u, 945568720u, 0, TANF_TOLERANCE, 0},
+{385, 3345489836u, 36u, 3203748788u, 0, TANF_TOLERANCE, 0},
+{386, 940893161u, 394u, 940893161u, 0, TANF_TOLERANCE, 0},
+{387, 976791751u, 4294967292u, 976791753u, 0, TANF_TOLERANCE, 0},
+{388, 1004442355u, 0u, 1004442579u, 0, TANF_TOLERANCE, 0},
+{389, 1108485380u, 0u, 3222544626u, 0, TANF_TOLERANCE, 0},
+{390, 1061834641u, 0u, 1065435464u, 0, TANF_TOLERANCE, 0},
+{391, 3381268392u, 885u, 1094771149u, 0, TANF_TOLERANCE, 0},
+{392, 1087189715u, 0u, 1040522514u, 0, TANF_TOLERANCE, 0},
+{393, 3212952285u, 4294951762u, 3217916800u, 0, TANF_TOLERANCE, 0},
+{394, 1000611335u, 0u, 1000611425u, 0, TANF_TOLERANCE, 0},
+{395, 3466188568u, 0u, 3229906439u, 0, TANF_TOLERANCE, 0},
+{396, 3072456205u, 0u, 3072456205u, 0, TANF_TOLERANCE, 0},
+{397, 3319315516u, 4262338968u, 1073744625u, 0, TANF_TOLERANCE, 0},
+{398, 935938416u, 867u, 935938416u, 0, TANF_TOLERANCE, 0},
+{399, 3212614372u, 1438u, 3217139354u, 0, TANF_TOLERANCE, 0},
+{400, 1315030230u, 4294939294u, 1056507579u, 0, TANF_TOLERANCE, 0},
+{401, 1134593658u, 3712906944u, 1060255710u, 0, TANF_TOLERANCE, 0},
+{402, 977281449u, 0u, 977281451u, 0, TANF_TOLERANCE, 0},
+{403, 1086198791u, 0u, 3199662962u, 0, TANF_TOLERANCE, 0},
+{404, 1255152035u, 0u, 1063441211u, 0, TANF_TOLERANCE, 0},
+{405, 1135271264u, 4294966890u, 3210309101u, 0, TANF_TOLERANCE, 0},
+{406, 1094190727u, 0u, 3219586210u, 0, TANF_TOLERANCE, 0},
+{407, 1294665325u, 0u, 1065350968u, 0, TANF_TOLERANCE, 0},
+{408, 1036608591u, 0u, 1036651299u, 0, TANF_TOLERANCE, 0},
+{409, 3229998064u, 0u, 3218788610u, 0, TANF_TOLERANCE, 0},
+{410, 3439134022u, 0u, 3216748046u, 0, TANF_TOLERANCE, 0},
+{411, 3073083133u, 1094097536u, 3073083133u, 0, TANF_TOLERANCE, 0},
+{412, 1325668223u, 0u, 3213764573u, 0, TANF_TOLERANCE, 0},
+{413, 1092037607u, 0u, 1019219726u, 0, TANF_TOLERANCE, 0},
+{414, 3316278408u, 3774649632u, 1077505006u, 0, TANF_TOLERANCE, 0},
+{415, 3295436768u, 0u, 1039776810u, 0, TANF_TOLERANCE, 0},
+{416, 1151984049u, 0u, 3225751119u, 0, TANF_TOLERANCE, 0},
+{417, 1129287043u, 0u, 1045938796u, 0, TANF_TOLERANCE, 0},
+{418, 1243664530u, 0u, 1063139457u, 0, TANF_TOLERANCE, 0},
+{419, 950829092u, 0u, 950829092u, 0, TANF_TOLERANCE, 0},
+{420, 1115471979u, 0u, 1052666476u, 0, TANF_TOLERANCE, 0},
+{421, 3351092088u, 0u, 3207121496u, 0, TANF_TOLERANCE, 0},
+{422, 3424479544u, 4294963555u, 3207351422u, 0, TANF_TOLERANCE, 0},
+{423, 3241193975u, 0u, 1101462049u, 0, TANF_TOLERANCE, 0},
+{424, 1030934236u, 0u, 1030952901u, 0, TANF_TOLERANCE, 0},
+{425, 3131791114u, 4283960578u, 3131791120u, 0, TANF_TOLERANCE, 0},
+{426, 1025254314u, 0u, 1025259273u, 0, TANF_TOLERANCE, 0},
+{427, 1110545760u, 4294967286u, 1054914110u, 0, TANF_TOLERANCE, 0},
+{428, 3180213739u, 37u, 3180228747u, 0, TANF_TOLERANCE, 0},
+{429, 3361976590u, 0u, 1046920446u, 0, TANF_TOLERANCE, 0},
+{430, 881280146u, 4262747520u, 881280146u, 0, TANF_TOLERANCE, 0},
+{431, 1304154705u, 0u, 1032301172u, 0, TANF_TOLERANCE, 0},
+{432, 3264443610u, 4294967294u, 3240149530u, 0, TANF_TOLERANCE, 0},
+{433, 3374550627u, 0u, 3202003323u, 0, TANF_TOLERANCE, 0},
+{434, 899599265u, 4294967286u, 899599265u, 0, TANF_TOLERANCE, 0},
+{435, 1268194719u, 3962356224u, 1024654683u, 0, TANF_TOLERANCE, 0},
+{436, 1133420220u, 3161371u, 3208677146u, 0, TANF_TOLERANCE, 0},
+{437, 1161858787u, 0u, 3216740870u, 0, TANF_TOLERANCE, 0},
+{438, 3184462258u, 13627054u, 3184508670u, 0, TANF_TOLERANCE, 0},
+{439, 3295996963u, 3846806432u, 1057466057u, 0, TANF_TOLERANCE, 0},
+{440, 1270887389u, 1864u, 3181932714u, 0, TANF_TOLERANCE, 0},
+{441, 3325193181u, 0u, 1063394237u, 0, TANF_TOLERANCE, 0},
+{442, 925657343u, 955232128u, 925657343u, 0, TANF_TOLERANCE, 0},
+{443, 3115275450u, 0u, 3115275450u, 0, TANF_TOLERANCE, 0},
+{444, 3116607482u, 4294967294u, 3116607483u, 0, TANF_TOLERANCE, 0},
+{445, 3187892415u, 0u, 3187939970u, 0, TANF_TOLERANCE, 0},
+{446, 1189120494u, 0u, 3239616339u, 0, TANF_TOLERANCE, 0},
+{447, 889030794u, 0u, 889030794u, 0, TANF_TOLERANCE, 0},
+{448, 1323529208u, 0u, 3221615964u, 0, TANF_TOLERANCE, 0},
+{449, 3465768388u, 0u, 3196684139u, 0, TANF_TOLERANCE, 0},
+{450, 3426099899u, 87u, 3212893834u, 0, TANF_TOLERANCE, 0},
+{451, 3224857113u, 4290382691u, 1049681612u, 0, TANF_TOLERANCE, 0},
+{452, 1065798296u, 0u, 1071692755u, 0, TANF_TOLERANCE, 0},
+{453, 3328989444u, 0u, 1058064740u, 0, TANF_TOLERANCE, 0},
+{454, 3357819026u, 0u, 1050796778u, 0, TANF_TOLERANCE, 0},
+{455, 1273397670u, 0u, 1110301372u, 0, TANF_TOLERANCE, 0},
+{456, 3424831780u, 414735168u, 1018699100u, 0, TANF_TOLERANCE, 0},
+{457, 1257596246u, 4264851904u, 1111546709u, 0, TANF_TOLERANCE, 0},
+{458, 1051773536u, 0u, 1052257074u, 0, TANF_TOLERANCE, 0},
+{459, 3294752507u, 0u, 1071407813u, 0, TANF_TOLERANCE, 0},
+{460, 3424848725u, 0u, 3186537053u, 0, TANF_TOLERANCE, 0},
+{461, 1090870906u, 4294966393u, 3220499145u, 0, TANF_TOLERANCE, 0},
+{462, 1227582289u, 147011u, 3199134534u, 0, TANF_TOLERANCE, 0},
+{463, 1272325814u, 0u, 3210855731u, 0, TANF_TOLERANCE, 0},
+{464, 3359508271u, 0u, 1099836859u, 0, TANF_TOLERANCE, 0},
+{465, 1137854355u, 4294941607u, 3202424383u, 0, TANF_TOLERANCE, 0},
+{466, 3440773058u, 0u, 1068726618u, 0, TANF_TOLERANCE, 0},
+{467, 3101598400u, 0u, 3101598400u, 0, TANF_TOLERANCE, 0},
+{468, 3451216836u, 4294896064u, 3200426155u, 0, TANF_TOLERANCE, 0},
+{469, 3437062994u, 0u, 1059689791u, 0, TANF_TOLERANCE, 0},
+{470, 1131196082u, 3743u, 1072037701u, 0, TANF_TOLERANCE, 0},
+{471, 3177294154u, 63027320u, 3177309135u, 0, TANF_TOLERANCE, 0},
+{472, 3258097678u, 449173056u, 3209461218u, 0, TANF_TOLERANCE, 0},
+{473, 3460915348u, 356647u, 3224836939u, 0, TANF_TOLERANCE, 0},
+{474, 3303035472u, 0u, 3210859526u, 0, TANF_TOLERANCE, 0},
+{475, 1053698677u, 4294966907u, 1054479611u, 0, TANF_TOLERANCE, 0},
+{476, 3396166221u, 83688u, 3225970172u, 0, TANF_TOLERANCE, 0},
+{477, 3037541131u, 5u, 3037541131u, 0, TANF_TOLERANCE, 0},
+{478, 3458934263u, 0u, 3206505437u, 0, TANF_TOLERANCE, 0},
+{479, 1065761827u, 4294943781u, 1071544994u, 0, TANF_TOLERANCE, 0},
+{480, 3025843188u, 0u, 3025843188u, 0, TANF_TOLERANCE, 0},
+{481, 926665223u, 0u, 926665223u, 0, TANF_TOLERANCE, 0},
+{482, 1199816046u, 0u, 1066809597u, 0, TANF_TOLERANCE, 0},
+{483, 3333779015u, 0u, 3204917603u, 0, TANF_TOLERANCE, 0},
+{484, 948398145u, 4294967288u, 948398145u, 0, TANF_TOLERANCE, 0},
+{485, 3054021468u, 23933390u, 3054021468u, 0, TANF_TOLERANCE, 0},
+{486, 1080781593u, 224021u, 1058560355u, 0, TANF_TOLERANCE, 0},
+{487, 3164749613u, 0u, 3164751004u, 0, TANF_TOLERANCE, 0},
+{488, 3235326590u, 26828788u, 3203498638u, 0, TANF_TOLERANCE, 0},
+{489, 3118883815u, 0u, 3118883816u, 0, TANF_TOLERANCE, 0},
+{490, 965378004u, 146193824u, 965378004u, 0, TANF_TOLERANCE, 0},
+{491, 3226990408u, 45u, 3195199194u, 0, TANF_TOLERANCE, 0},
+{492, 3117098218u, 115u, 3117098219u, 0, TANF_TOLERANCE, 0},
+{493, 1283624229u, 0u, 3198816655u, 0, TANF_TOLERANCE, 0},
+{494, 970649315u, 3u, 970649316u, 0, TANF_TOLERANCE, 0},
+{495, 959776291u, 4294967028u, 959776291u, 0, TANF_TOLERANCE, 0},
+{496, 3341117305u, 4294966405u, 3220408010u, 0, TANF_TOLERANCE, 0},
+{497, 1270734970u, 4294829480u, 1033886173u, 0, TANF_TOLERANCE, 0},
+{498, 3454816067u, 0u, 3185422933u, 0, TANF_TOLERANCE, 0},
+{499, 917206623u, 7364u, 917206623u, 0, TANF_TOLERANCE, 0},
+{500, 1106502045u, 126247200u, 3215714266u, 0, TANF_TOLERANCE, 0},
+{501, 1157598381u, 4294964293u, 3212679933u, 0, TANF_TOLERANCE, 0},
+{502, 3335234513u, 0u, 3186255331u, 0, TANF_TOLERANCE, 0},
+{503, 1279489061u, 0u, 1089588244u, 0, TANF_TOLERANCE, 0},
+{504, 3157416480u, 624023680u, 3157416942u, 0, TANF_TOLERANCE, 0},
+{505, 3143920719u, 0u, 3143920780u, 0, TANF_TOLERANCE, 0},
+{506, 1233171235u, 0u, 3210041471u, 0, TANF_TOLERANCE, 0},
+{507, 1148920078u, 0u, 3212968272u, 0, TANF_TOLERANCE, 0},
+{508, 3064988156u, 4294967292u, 3064988156u, 0, TANF_TOLERANCE, 0},
+{509, 3083619260u, 2484u, 3083619260u, 0, TANF_TOLERANCE, 0},
+{510, 1109198803u, 431095u, 1117980359u, 0, TANF_TOLERANCE, 0},
+{511, 3219949483u, 0u, 1080100572u, 0, TANF_TOLERANCE, 0},
+{512, 3361149474u, 4293077090u, 3207612789u, 0, TANF_TOLERANCE, 0},
+{513, 1207502108u, 4292985650u, 3191321179u, 0, TANF_TOLERANCE, 0},
+{514, 1000014431u, 0u, 1000014507u, 0, TANF_TOLERANCE, 0},
+{515, 3161756316u, 0u, 3161757507u, 0, TANF_TOLERANCE, 0},
+{516, 3160728744u, 4293625597u, 3160729720u, 0, TANF_TOLERANCE, 0},
+{517, 1234530539u, 3u, 3211178013u, 0, TANF_TOLERANCE, 0},
+{518, 1017843965u, 40165u, 1017845595u, 0, TANF_TOLERANCE, 0},
+{519, 951862956u, 7732u, 951862956u, 0, TANF_TOLERANCE, 0},
+{520, 3306328852u, 87u, 3273199760u, 0, TANF_TOLERANCE, 0},
+{521, 1291910469u, 183319u, 3204374719u, 0, TANF_TOLERANCE, 0},
+{522, 3027442905u, 7942u, 3027442905u, 0, TANF_TOLERANCE, 0},
+{523, 1131927531u, 0u, 3199630789u, 0, TANF_TOLERANCE, 0},
+{524, 3449879391u, 0u, 3209274073u, 0, TANF_TOLERANCE, 0},
+{525, 970094304u, 4294911386u, 970094305u, 0, TANF_TOLERANCE, 0},
+{526, 1125551064u, 4294949017u, 3196245424u, 0, TANF_TOLERANCE, 0},
+{527, 3427296372u, 3784252480u, 1024398711u, 0, TANF_TOLERANCE, 0},
+{528, 1198917460u, 2607027968u, 1062104444u, 0, TANF_TOLERANCE, 0},
+{529, 3201603336u, 0u, 3202463351u, 0, TANF_TOLERANCE, 0},
+{530, 3114686212u, 1328603904u, 3114686212u, 0, TANF_TOLERANCE, 0},
+{531, 921940707u, 0u, 921940707u, 0, TANF_TOLERANCE, 0},
+{532, 1091906532u, 0u, 3184572372u, 0, TANF_TOLERANCE, 0},
+{533, 3393557778u, 4293570247u, 3198923133u, 0, TANF_TOLERANCE, 0},
+{534, 1276853215u, 0u, 1050751223u, 0, TANF_TOLERANCE, 0},
+{535, 3462778440u, 4294884341u, 1042202295u, 0, TANF_TOLERANCE, 0},
+{536, 3360170117u, 0u, 3213953845u, 0, TANF_TOLERANCE, 0},
+{537, 3224245428u, 4294967170u, 1055235475u, 0, TANF_TOLERANCE, 0},
+{538, 1120124467u, 352u, 1057355457u, 0, TANF_TOLERANCE, 0},
+{539, 1064364381u, 0u, 1068476199u, 0, TANF_TOLERANCE, 0},
+{540, 1268744779u, 4294952694u, 1049186545u, 0, TANF_TOLERANCE, 0},
+{541, 1165195428u, 4292538760u, 3171864354u, 0, TANF_TOLERANCE, 0},
+{542, 3044092739u, 30u, 3044092739u, 0, TANF_TOLERANCE, 0},
+{543, 3149469534u, 47144136u, 3149469663u, 0, TANF_TOLERANCE, 0},
+{544, 3247790039u, 0u, 1044126050u, 0, TANF_TOLERANCE, 0},
+{545, 3215244648u, 4u, 3227218833u, 0, TANF_TOLERANCE, 0},
+{546, 3095275931u, 0u, 3095275931u, 0, TANF_TOLERANCE, 0},
+{547, 3059688264u, 77u, 3059688264u, 0, TANF_TOLERANCE, 0},
+{548, 1212717473u, 0u, 1093643519u, 0, TANF_TOLERANCE, 0},
+{549, 3275973009u, 3930410816u, 3207596131u, 0, TANF_TOLERANCE, 0},
+{550, 3028857014u, 0u, 3028857014u, 0, TANF_TOLERANCE, 0},
+{551, 3391162308u, 129212984u, 1072543465u, 0, TANF_TOLERANCE, 0},
+{552, 1044867873u, 4294528232u, 1045035636u, 0, TANF_TOLERANCE, 0},
+{553, 1089986803u, 3370664576u, 1091822310u, 0, TANF_TOLERANCE, 0},
+{554, 1296314700u, 0u, 1056804853u, 0, TANF_TOLERANCE, 0},
+{555, 1251462432u, 0u, 3218109010u, 0, TANF_TOLERANCE, 0},
+{556, 3485236902u, 0u, 3252201041u, 0, TANF_TOLERANCE, 0},
+{557, 3262169538u, 19958524u, 3205202357u, 0, TANF_TOLERANCE, 0},
+{558, 3080852256u, 0u, 3080852256u, 0, TANF_TOLERANCE, 0},
+{559, 1022211242u, 0u, 1022215616u, 0, TANF_TOLERANCE, 0},
+{560, 884661176u, 0u, 884661176u, 0, TANF_TOLERANCE, 0},
+{561, 3071422941u, 4294967172u, 3071422941u, 0, TANF_TOLERANCE, 0},
+{562, 989762529u, 4294733601u, 989762550u, 0, TANF_TOLERANCE, 0},
+{563, 1295475718u, 0u, 3197707674u, 0, TANF_TOLERANCE, 0},
+{564, 1002632518u, 4294950696u, 1002632669u, 0, TANF_TOLERANCE, 0},
+{565, 3404372005u, 3938008096u, 3237779534u, 0, TANF_TOLERANCE, 0},
+{566, 3158912530u, 0u, 3158913193u, 0, TANF_TOLERANCE, 0},
+{567, 1125800069u, 4294967259u, 1054681101u, 0, TANF_TOLERANCE, 0},
+{568, 3138037576u, 0u, 3138037590u, 0, TANF_TOLERANCE, 0},
+{569, 3108384823u, 268832992u, 3108384823u, 0, TANF_TOLERANCE, 0},
+{570, 999985470u, 4282999218u, 999985545u, 0, TANF_TOLERANCE, 0},
+{571, 1189421739u, 0u, 3206932751u, 0, TANF_TOLERANCE, 0},
+{572, 3075182644u, 0u, 3075182644u, 0, TANF_TOLERANCE, 0},
+{573, 3028099649u, 4292241163u, 3028099649u, 0, TANF_TOLERANCE, 0},
+{574, 3132541814u, 4077666864u, 3132541822u, 0, TANF_TOLERANCE, 0},
+{575, 1164046161u, 4139845440u, 3217980332u, 0, TANF_TOLERANCE, 0},
+{576, 1292596266u, 0u, 1068007873u, 0, TANF_TOLERANCE, 0},
+{577, 3469748379u, 4279587928u, 1060131664u, 0, TANF_TOLERANCE, 0},
+{578, 1314644642u, 0u, 3197317752u, 0, TANF_TOLERANCE, 0},
+{579, 3399813173u, 0u, 1059796620u, 0, TANF_TOLERANCE, 0},
+{580, 948775569u, 2159002624u, 948775569u, 0, TANF_TOLERANCE, 0},
+{581, 1034611395u, 0u, 1034637473u, 0, TANF_TOLERANCE, 0},
+{582, 3489122735u, 4294428604u, 3207259992u, 0, TANF_TOLERANCE, 0},
+{583, 1181604787u, 4294717096u, 3224785060u, 0, TANF_TOLERANCE, 0},
+{584, 3059042077u, 0u, 3059042077u, 0, TANF_TOLERANCE, 0},
+{585, 1043691622u, 4288164501u, 1043817708u, 0, TANF_TOLERANCE, 0},
+{586, 1314588083u, 0u, 1082395610u, 0, TANF_TOLERANCE, 0},
+{587, 3141533334u, 0u, 3141533370u, 0, TANF_TOLERANCE, 0},
+{588, 3157534378u, 3899913312u, 3157534854u, 0, TANF_TOLERANCE, 0},
+{589, 3400949680u, 0u, 1099168145u, 0, TANF_TOLERANCE, 0},
+{590, 3365581801u, 9596u, 1093578518u, 0, TANF_TOLERANCE, 0},
+{591, 1110424755u, 0u, 3175405557u, 0, TANF_TOLERANCE, 0},
+{592, 3189917167u, 0u, 3190007093u, 0, TANF_TOLERANCE, 0},
+{593, 969804941u, 4294836255u, 969804942u, 0, TANF_TOLERANCE, 0},
+{594, 1139120919u, 4294967176u, 1058612519u, 0, TANF_TOLERANCE, 0},
+{595, 934308144u, 0u, 934308144u, 0, TANF_TOLERANCE, 0},
+{596, 1220524226u, 1440u, 1053896882u, 0, TANF_TOLERANCE, 0},
+{597, 3162548604u, 3394333056u, 3162549297u, 0, TANF_TOLERANCE, 0},
+{598, 3382391700u, 4294966243u, 1092675627u, 0, TANF_TOLERANCE, 0},
+{599, 1156767533u, 7u, 1092496361u, 0, TANF_TOLERANCE, 0},
+{600, 3079222483u, 4294963487u, 3079222483u, 0, TANF_TOLERANCE, 0},
+{601, 994934087u, 0u, 994934131u, 0, TANF_TOLERANCE, 0},
+{602, 3185240099u, 122u, 3185294986u, 0, TANF_TOLERANCE, 0},
+{603, 3479873563u, 3288004u, 1068753718u, 0, TANF_TOLERANCE, 0},
+{604, 3424264117u, 4203174416u, 3173613126u, 0, TANF_TOLERANCE, 0},
+{605, 3228365887u, 275492u, 3206597172u, 0, TANF_TOLERANCE, 0},
+{606, 1035909900u, 4101891u, 1035946163u, 0, TANF_TOLERANCE, 0},
+{607, 3024951184u, 3626688u, 3024951184u, 0, TANF_TOLERANCE, 0},
+{608, 1212129651u, 0u, 3200433496u, 0, TANF_TOLERANCE, 0},
+{609, 3125775254u, 0u, 3125775257u, 0, TANF_TOLERANCE, 0},
+{610, 1037464105u, 0u, 1037515694u, 0, TANF_TOLERANCE, 0},
+{611, 1311706596u, 6702361u, 1067617575u, 0, TANF_TOLERANCE, 0},
+{612, 918212457u, 0u, 918212457u, 0, TANF_TOLERANCE, 0},
+{613, 1337315179u, 3421796288u, 3233803179u, 0, TANF_TOLERANCE, 0},
+{614, 1131358407u, 4294955130u, 1054304608u, 0, TANF_TOLERANCE, 0},
+{615, 1156517523u, 4294914801u, 3212474510u, 0, TANF_TOLERANCE, 0},
+{616, 3210802820u, 0u, 3214570101u, 0, TANF_TOLERANCE, 0},
+{617, 3337499209u, 621819u, 1013411925u, 0, TANF_TOLERANCE, 0},
+{618, 3468429030u, 4294967266u, 1083934034u, 0, TANF_TOLERANCE, 0},
+{619, 3253515800u, 28517u, 3228847177u, 0, TANF_TOLERANCE, 0},
+{620, 3055299953u, 0u, 3055299953u, 0, TANF_TOLERANCE, 0},
+{621, 959956547u, 0u, 959956547u, 0, TANF_TOLERANCE, 0},
+{622, 3425290480u, 461u, 1035239809u, 0, TANF_TOLERANCE, 0},
+{623, 1039917375u, 117u, 1040001112u, 0, TANF_TOLERANCE, 0},
+{624, 3220979495u, 4234725636u, 1075276972u, 0, TANF_TOLERANCE, 0},
+{625, 1311016004u, 4294941884u, 3227474106u, 0, TANF_TOLERANCE, 0},
+{626, 1128016396u, 27u, 3199213538u, 0, TANF_TOLERANCE, 0},
+{627, 3210335769u, 0u, 3214015080u, 0, TANF_TOLERANCE, 0},
+{628, 3022705759u, 4287084865u, 3022705759u, 0, TANF_TOLERANCE, 0},
+{629, 1206054701u, 0u, 3238454059u, 0, TANF_TOLERANCE, 0},
+{630, 3144504834u, 3170u, 3144504902u, 0, TANF_TOLERANCE, 0},
+{631, 1213609983u, 0u, 1087444763u, 0, TANF_TOLERANCE, 0},
+{632, 1246902946u, 0u, 1059569979u, 0, TANF_TOLERANCE, 0},
+{633, 995850843u, 3845036544u, 995850897u, 0, TANF_TOLERANCE, 0},
+{634, 3362082828u, 4294328268u, 3217124513u, 0, TANF_TOLERANCE, 0},
+{635, 1029480631u, 0u, 1029494631u, 0, TANF_TOLERANCE, 0},
+{636, 3153568584u, 0u, 3153568893u, 0, TANF_TOLERANCE, 0},
+{637, 3384988527u, 0u, 1015237194u, 0, TANF_TOLERANCE, 0},
+{638, 1317696241u, 0u, 3214540299u, 0, TANF_TOLERANCE, 0},
+{639, 3235395924u, 249u, 3204662531u, 0, TANF_TOLERANCE, 0},
+{640, 3341877624u, 0u, 1066781384u, 0, TANF_TOLERANCE, 0},
+{641, 1228636133u, 0u, 1088625043u, 0, TANF_TOLERANCE, 0},
+{642, 3161654634u, 4294939932u, 3161655802u, 0, TANF_TOLERANCE, 0},
+{643, 3162655243u, 4294964738u, 3162655963u, 0, TANF_TOLERANCE, 0},
+{644, 1207246237u, 0u, 3221431060u, 0, TANF_TOLERANCE, 0},
+{645, 1165476654u, 4294877038u, 3205034258u, 0, TANF_TOLERANCE, 0},
+{646, 1215278023u, 0u, 3225473261u, 0, TANF_TOLERANCE, 0},
+{647, 1017239798u, 4167373560u, 1017241178u, 0, TANF_TOLERANCE, 0},
+{648, 1149651309u, 0u, 3188065066u, 0, TANF_TOLERANCE, 0},
+{649, 1111943722u, 0u, 3206043720u, 0, TANF_TOLERANCE, 0},
+{650, 1189849849u, 4293652457u, 3182509934u, 0, TANF_TOLERANCE, 0},
+{651, 3204848496u, 0u, 3205751737u, 0, TANF_TOLERANCE, 0},
+{652, 1249758327u, 0u, 1059591112u, 0, TANF_TOLERANCE, 0},
+{653, 3092982276u, 4065500752u, 3092982276u, 0, TANF_TOLERANCE, 0},
+{654, 1168098747u, 1063712256u, 1082873807u, 0, TANF_TOLERANCE, 0},
+{655, 892549317u, 13301u, 892549317u, 0, TANF_TOLERANCE, 0},
+{656, 3301009024u, 4286178976u, 3254770741u, 0, TANF_TOLERANCE, 0},
+{657, 3233089227u, 204399u, 1060708740u, 0, TANF_TOLERANCE, 0},
+{658, 3218245284u, 1767132u, 1096286488u, 0, TANF_TOLERANCE, 0},
+{659, 3215981890u, 4294967286u, 3231794500u, 0, TANF_TOLERANCE, 0},
+{660, 1266687209u, 0u, 1072040735u, 0, TANF_TOLERANCE, 0},
+{661, 3487959775u, 4294948774u, 1080427053u, 0, TANF_TOLERANCE, 0},
+{662, 943645710u, 0u, 943645710u, 0, TANF_TOLERANCE, 0},
+{663, 3345065699u, 4294966959u, 1063260966u, 0, TANF_TOLERANCE, 0},
+{664, 935847271u, 1u, 935847271u, 0, TANF_TOLERANCE, 0},
+{665, 3410336089u, 47u, 1039814645u, 0, TANF_TOLERANCE, 0},
+{666, 3082940740u, 1562501120u, 3082940740u, 0, TANF_TOLERANCE, 0},
+{667, 1141063391u, 5507u, 1051920630u, 0, TANF_TOLERANCE, 0},
+{668, 3059263153u, 0u, 3059263153u, 0, TANF_TOLERANCE, 0},
+{669, 3353679791u, 0u, 3214268763u, 0, TANF_TOLERANCE, 0},
+{670, 1001823878u, 0u, 1001824002u, 0, TANF_TOLERANCE, 0},
+{671, 1009130212u, 0u, 1009130585u, 0, TANF_TOLERANCE, 0},
+{672, 3367127535u, 0u, 3210803933u, 0, TANF_TOLERANCE, 0},
+{673, 1032920919u, 3981458912u, 1032936870u, 0, TANF_TOLERANCE, 0},
+{674, 3281952870u, 0u, 1027847826u, 0, TANF_TOLERANCE, 0},
+{675, 1237868497u, 0u, 3199109460u, 0, TANF_TOLERANCE, 0},
+{676, 1153753924u, 4294958733u, 1075092193u, 0, TANF_TOLERANCE, 0},
+{677, 1120261759u, 0u, 1103227732u, 0, TANF_TOLERANCE, 0},
+{678, 3226328360u, 4294623870u, 3180983208u, 0, TANF_TOLERANCE, 0},
+{679, 3349595986u, 4294967271u, 1069726435u, 0, TANF_TOLERANCE, 0},
+{680, 3166889490u, 4294965026u, 3166891900u, 0, TANF_TOLERANCE, 0},
+{681, 1087750238u, 16u, 1054237603u, 0, TANF_TOLERANCE, 0},
+{682, 3121620061u, 4294773019u, 3121620062u, 0, TANF_TOLERANCE, 0},
+{683, 1066116543u, 0u, 1073085463u, 0, TANF_TOLERANCE, 0},
+{684, 3210898034u, 0u, 3214687828u, 0, TANF_TOLERANCE, 0},
+{685, 3051923237u, 4294697573u, 3051923237u, 0, TANF_TOLERANCE, 0},
+{686, 1030612298u, 4294908239u, 1030629852u, 0, TANF_TOLERANCE, 0},
+{687, 1186234578u, 0u, 1074426401u, 0, TANF_TOLERANCE, 0},
+{688, 1331680743u, 0u, 1068067591u, 0, TANF_TOLERANCE, 0},
+{689, 3060774997u, 2318310656u, 3060774997u, 0, TANF_TOLERANCE, 0},
+{690, 887589411u, 141578704u, 887589411u, 0, TANF_TOLERANCE, 0},
+{691, 1045232522u, 4294967290u, 1045414882u, 0, TANF_TOLERANCE, 0},
+{692, 3119858470u, 0u, 3119858471u, 0, TANF_TOLERANCE, 0},
+{693, 3349432725u, 0u, 1069451077u, 0, TANF_TOLERANCE, 0},
+{694, 912423027u, 0u, 912423027u, 0, TANF_TOLERANCE, 0},
+{695, 3228795133u, 4294967132u, 3209165556u, 0, TANF_TOLERANCE, 0},
+{696, 3194674746u, 0u, 3194950467u, 0, TANF_TOLERANCE, 0},
+{697, 3296784303u, 4294967098u, 3218995362u, 0, TANF_TOLERANCE, 0},
+{698, 965402291u, 0u, 965402291u, 0, TANF_TOLERANCE, 0},
+{699, 3388153589u, 4246639564u, 1059937603u, 0, TANF_TOLERANCE, 0},
+{700, 1133410485u, 4294951516u, 3215980355u, 0, TANF_TOLERANCE, 0},
+{701, 3136790322u, 7u, 3136790341u, 0, TANF_TOLERANCE, 0},
+{702, 3369970587u, 0u, 1079671878u, 0, TANF_TOLERANCE, 0},
+{703, 1270451568u, 0u, 3215399533u, 0, TANF_TOLERANCE, 0},
+{704, 989498922u, 0u, 989498942u, 0, TANF_TOLERANCE, 0},
+{705, 1280215674u, 0u, 3203020348u, 0, TANF_TOLERANCE, 0},
+{706, 1171873518u, 0u, 1053592412u, 0, TANF_TOLERANCE, 0},
+{707, 3298258100u, 0u, 1078312850u, 0, TANF_TOLERANCE, 0},
+{708, 3415208824u, 0u, 1072972802u, 0, TANF_TOLERANCE, 0},
+{709, 1001897182u, 0u, 1001897308u, 0, TANF_TOLERANCE, 0},
+{710, 3152777939u, 4294967281u, 3152778205u, 0, TANF_TOLERANCE, 0},
+{711, 985903305u, 4294945424u, 985903315u, 0, TANF_TOLERANCE, 0},
+{712, 3357328848u, 0u, 1040886478u, 0, TANF_TOLERANCE, 0},
+{713, 982612185u, 0u, 982612189u, 0, TANF_TOLERANCE, 0},
+{714, 3267868136u, 136421u, 1062023610u, 0, TANF_TOLERANCE, 0},
+{715, 3319048157u, 7150u, 3197801983u, 0, TANF_TOLERANCE, 0},
+{716, 1144755661u, 0u, 3205225235u, 0, TANF_TOLERANCE, 0},
+{717, 898467286u, 0u, 898467286u, 0, TANF_TOLERANCE, 0},
+{718, 3301461672u, 1119632u, 3196087313u, 0, TANF_TOLERANCE, 0},
+{719, 3364525678u, 0u, 3196210714u, 0, TANF_TOLERANCE, 0},
+{720, 931441127u, 285u, 931441127u, 0, TANF_TOLERANCE, 0},
+{721, 3146660041u, 0u, 3146660100u, 0, TANF_TOLERANCE, 0},
+{722, 3467121799u, 0u, 3191838679u, 0, TANF_TOLERANCE, 0},
+{723, 1151257041u, 0u, 1073582895u, 0, TANF_TOLERANCE, 0},
+{724, 3097873255u, 4294967295u, 3097873255u, 0, TANF_TOLERANCE, 0},
+{725, 3130670309u, 0u, 3130670314u, 0, TANF_TOLERANCE, 0},
+{726, 1017573824u, 0u, 1017575339u, 0, TANF_TOLERANCE, 0},
+{727, 1258369714u, 3364363264u, 3221741189u, 0, TANF_TOLERANCE, 0},
+{728, 1216602683u, 4294468761u, 3207163210u, 0, TANF_TOLERANCE, 0},
+{729, 3297265739u, 228335u, 3187817583u, 0, TANF_TOLERANCE, 0},
+{730, 1071940738u, 4294963632u, 3230852112u, 0, TANF_TOLERANCE, 0},
+{731, 922601356u, 4294937447u, 922601356u, 0, TANF_TOLERANCE, 0},
+{732, 3462285635u, 4085532736u, 1046898481u, 0, TANF_TOLERANCE, 0},
+{733, 3357177805u, 5u, 1066425327u, 0, TANF_TOLERANCE, 0},
+{734, 3049120080u, 0u, 3049120080u, 0, TANF_TOLERANCE, 0},
+{735, 1153863660u, 0u, 3222167055u, 0, TANF_TOLERANCE, 0},
+{736, 3034243695u, 0u, 3034243695u, 0, TANF_TOLERANCE, 0},
+{737, 1249365132u, 4294967060u, 3214523524u, 0, TANF_TOLERANCE, 0},
+{738, 3046215730u, 0u, 3046215730u, 0, TANF_TOLERANCE, 0},
+{739, 3047251716u, 8u, 3047251716u, 0, TANF_TOLERANCE, 0},
+{740, 3131219358u, 2355170688u, 3131219363u, 0, TANF_TOLERANCE, 0},
+{741, 3222096285u, 59453u, 1068306462u, 0, TANF_TOLERANCE, 0},
+{742, 1297708818u, 0u, 3206939123u, 0, TANF_TOLERANCE, 0},
+{743, 3345532722u, 4293531291u, 3239569797u, 0, TANF_TOLERANCE, 0},
+{744, 3418753236u, 4002743296u, 3228029453u, 0, TANF_TOLERANCE, 0},
+{745, 1277417964u, 1103002624u, 3203882980u, 0, TANF_TOLERANCE, 0},
+{746, 987577257u, 1370u, 987577271u, 0, TANF_TOLERANCE, 0},
+{747, 3161606610u, 0u, 3161607768u, 0, TANF_TOLERANCE, 0},
+{748, 888030585u, 0u, 888030585u, 0, TANF_TOLERANCE, 0},
+{749, 1043442869u, 4294963715u, 1043561145u, 0, TANF_TOLERANCE, 0},
+{750, 3320923228u, 3214934912u, 1095051388u, 0, TANF_TOLERANCE, 0},
+{751, 1337400405u, 418188288u, 1047433444u, 0, TANF_TOLERANCE, 0},
+{752, 3400348640u, 0u, 3184549924u, 0, TANF_TOLERANCE, 0},
+{753, 1250249095u, 1u, 1050407057u, 0, TANF_TOLERANCE, 0},
+{754, 3284411233u, 7805u, 1055280030u, 0, TANF_TOLERANCE, 0},
+{755, 3020883322u, 0u, 3020883322u, 0, TANF_TOLERANCE, 0},
+{756, 1215968622u, 2531374080u, 1074241478u, 0, TANF_TOLERANCE, 0},
+{757, 3202319550u, 0u, 3203327015u, 0, TANF_TOLERANCE, 0},
+{758, 3061638260u, 0u, 3061638260u, 0, TANF_TOLERANCE, 0},
+{759, 1025404104u, 1u, 1025409284u, 0, TANF_TOLERANCE, 0},
+{760, 3138086437u, 0u, 3138086451u, 0, TANF_TOLERANCE, 0},
+{761, 3091024506u, 3752313152u, 3091024506u, 0, TANF_TOLERANCE, 0},
+{762, 3362748242u, 4294517284u, 1059851445u, 0, TANF_TOLERANCE, 0},
+{763, 3099671635u, 4294967295u, 3099671635u, 0, TANF_TOLERANCE, 0},
+{764, 3068014841u, 0u, 3068014841u, 0, TANF_TOLERANCE, 0},
+{765, 1252237719u, 105u, 1083657804u, 0, TANF_TOLERANCE, 0},
+{766, 3327895594u, 517257u, 1059714984u, 0, TANF_TOLERANCE, 0},
+{767, 3082454432u, 0u, 3082454432u, 0, TANF_TOLERANCE, 0},
+{768, 3396161504u, 16393u, 3185570312u, 0, TANF_TOLERANCE, 0},
+{769, 1099710167u, 0u, 3229132239u, 0, TANF_TOLERANCE, 0},
+{770, 1157186482u, 109233848u, 3213014187u, 0, TANF_TOLERANCE, 0},
+{771, 1282110851u, 0u, 1058083394u, 0, TANF_TOLERANCE, 0},
+{772, 3477008113u, 3797391872u, 3243115119u, 0, TANF_TOLERANCE, 0},
+{773, 3292127294u, 4282395772u, 1071713910u, 0, TANF_TOLERANCE, 0},
+{774, 1123357102u, 4294966999u, 1011577850u, 0, TANF_TOLERANCE, 0},
+{775, 1106837025u, 0u, 3197751392u, 0, TANF_TOLERANCE, 0},
+{776, 1049949008u, 230u, 1050234049u, 0, TANF_TOLERANCE, 0},
+{777, 1253017688u, 0u, 1073946677u, 0, TANF_TOLERANCE, 0},
+{778, 1108543194u, 4294966999u, 3215992802u, 0, TANF_TOLERANCE, 0},
+{779, 3087985411u, 1700586u, 3087985411u, 0, TANF_TOLERANCE, 0},
+{780, 3163283126u, 2976129280u, 3163284017u, 0, TANF_TOLERANCE, 0},
+{781, 1160162706u, 14164775u, 3200455195u, 0, TANF_TOLERANCE, 0},
+{782, 3305715025u, 0u, 1061093195u, 0, TANF_TOLERANCE, 0},
+{783, 1266928623u, 0u, 1066131511u, 0, TANF_TOLERANCE, 0},
+{784, 3025340297u, 43483u, 3025340297u, 0, TANF_TOLERANCE, 0},
+{785, 3438080027u, 0u, 3196462866u, 0, TANF_TOLERANCE, 0},
+{786, 3344574751u, 0u, 3218369690u, 0, TANF_TOLERANCE, 0},
+{787, 1152416724u, 0u, 1080146948u, 0, TANF_TOLERANCE, 0},
+{788, 1218239308u, 161u, 3223069606u, 0, TANF_TOLERANCE, 0},
+{789, 3263310567u, 0u, 1067313815u, 0, TANF_TOLERANCE, 0},
+{790, 3041998669u, 2782u, 3041998669u, 0, TANF_TOLERANCE, 0},
+{791, 1000313118u, 0u, 1000313201u, 0, TANF_TOLERANCE, 0},
+{792, 972485427u, 131u, 972485428u, 0, TANF_TOLERANCE, 0},
+{793, 3290264612u, 137u, 3243638355u, 0, TANF_TOLERANCE, 0},
+{794, 3222106584u, 18249u, 1068248402u, 0, TANF_TOLERANCE, 0},
+{795, 1278946388u, 0u, 3213687170u, 0, TANF_TOLERANCE, 0},
+{796, 947914771u, 0u, 947914771u, 0, TANF_TOLERANCE, 0},
+{797, 3167730654u, 0u, 3167733573u, 0, TANF_TOLERANCE, 0},
+{798, 1098530298u, 4294967260u, 3180012107u, 0, TANF_TOLERANCE, 0},
+{799, 3232726036u, 0u, 1065589565u, 0, TANF_TOLERANCE, 0},
+{800, 1297190916u, 0u, 3227258942u, 0, TANF_TOLERANCE, 0},
+{801, 1277649137u, 0u, 1090874516u, 0, TANF_TOLERANCE, 0},
+{802, 3203377685u, 466619008u, 3204541722u, 0, TANF_TOLERANCE, 0},
+{803, 3090306474u, 0u, 3090306474u, 0, TANF_TOLERANCE, 0},
+{804, 3244032016u, 0u, 3223123848u, 0, TANF_TOLERANCE, 0},
+{805, 3033122376u, 0u, 3033122376u, 0, TANF_TOLERANCE, 0},
+{806, 1096155623u, 7454884u, 1065760490u, 0, TANF_TOLERANCE, 0},
+{807, 873151908u, 4294967280u, 873151908u, 0, TANF_TOLERANCE, 0},
+{808, 3238729605u, 245005088u, 1063636693u, 0, TANF_TOLERANCE, 0},
+{809, 3317196817u, 0u, 3220820246u, 0, TANF_TOLERANCE, 0},
+{810, 3374748510u, 0u, 1052782883u, 0, TANF_TOLERANCE, 0},
+{811, 3345634950u, 0u, 1082277486u, 0, TANF_TOLERANCE, 0},
+{812, 3189860276u, 0u, 3189948757u, 0, TANF_TOLERANCE, 0},
+{813, 887311687u, 9077u, 887311687u, 0, TANF_TOLERANCE, 0},
+{814, 3396917283u, 0u, 3176463205u, 0, TANF_TOLERANCE, 0},
+{815, 3317032737u, 0u, 1057311975u, 0, TANF_TOLERANCE, 0},
+{816, 1200051436u, 3555u, 3221587134u, 0, TANF_TOLERANCE, 0},
+{817, 3105291012u, 45279u, 3105291012u, 0, TANF_TOLERANCE, 0},
+{818, 1306520561u, 0u, 1073667024u, 0, TANF_TOLERANCE, 0},
+{819, 1314936356u, 0u, 3214605429u, 0, TANF_TOLERANCE, 0},
+{820, 3475052219u, 71851496u, 1038538546u, 0, TANF_TOLERANCE, 0},
+{821, 3085636260u, 33u, 3085636260u, 0, TANF_TOLERANCE, 0},
+{822, 3393227708u, 4294967164u, 1037393136u, 0, TANF_TOLERANCE, 0},
+{823, 3182540197u, 0u, 3182569515u, 0, TANF_TOLERANCE, 0},
+{824, 3349005404u, 0u, 3182795207u, 0, TANF_TOLERANCE, 0},
+{825, 3154720153u, 4090490144u, 3154720363u, 0, TANF_TOLERANCE, 0},
+{826, 1262863321u, 345111u, 1058701781u, 0, TANF_TOLERANCE, 0},
+{827, 882902102u, 512593u, 882902102u, 0, TANF_TOLERANCE, 0},
+{828, 1053387478u, 0u, 1054113388u, 0, TANF_TOLERANCE, 0},
+{829, 3387653691u, 4294896063u, 1133672154u, 0, TANF_TOLERANCE, 0},
+{830, 3136364836u, 0u, 3136364854u, 0, TANF_TOLERANCE, 0},
+{831, 1338680611u, 4126u, 3203129222u, 0, TANF_TOLERANCE, 0},
+{832, 1112891928u, 0u, 3178975679u, 0, TANF_TOLERANCE, 0},
+{833, 893449284u, 0u, 893449284u, 0, TANF_TOLERANCE, 0},
+{834, 892311459u, 14u, 892311459u, 0, TANF_TOLERANCE, 0},
+{835, 3105373037u, 4294967280u, 3105373037u, 0, TANF_TOLERANCE, 0},
+{836, 1190105283u, 0u, 3210335843u, 0, TANF_TOLERANCE, 0},
+{837, 1011225926u, 14129u, 1011226559u, 0, TANF_TOLERANCE, 0},
+{838, 1043025031u, 0u, 1043130935u, 0, TANF_TOLERANCE, 0},
+{839, 3410531037u, 0u, 1058007796u, 0, TANF_TOLERANCE, 0},
+{840, 3125834184u, 0u, 3125834187u, 0, TANF_TOLERANCE, 0},
+{841, 902318189u, 0u, 902318189u, 0, TANF_TOLERANCE, 0},
+{842, 3213624815u, 0u, 3220685331u, 0, TANF_TOLERANCE, 0},
+{843, 1120888322u, 5u, 1020958163u, 0, TANF_TOLERANCE, 0},
+{844, 1315217243u, 4291026624u, 3216322935u, 0, TANF_TOLERANCE, 0},
+{845, 3137758475u, 0u, 3137758487u, 0, TANF_TOLERANCE, 0},
+{846, 1040617590u, 0u, 1040668706u, 0, TANF_TOLERANCE, 0},
+{847, 955384253u, 4294910624u, 955384253u, 0, TANF_TOLERANCE, 0},
+{848, 3061417900u, 7119u, 3061417900u, 0, TANF_TOLERANCE, 0},
+{849, 904255535u, 0u, 904255535u, 0, TANF_TOLERANCE, 0},
+{850, 1022984119u, 0u, 1022989177u, 0, TANF_TOLERANCE, 0},
+{851, 997362368u, 0u, 997362441u, 0, TANF_TOLERANCE, 0},
+{852, 900933520u, 19u, 900933520u, 0, TANF_TOLERANCE, 0},
+{853, 1168623062u, 661u, 3196323038u, 0, TANF_TOLERANCE, 0},
+{854, 878737490u, 4294967181u, 878737490u, 0, TANF_TOLERANCE, 0},
+{855, 1039827284u, 1u, 1039909652u, 0, TANF_TOLERANCE, 0},
+{856, 1021564080u, 0u, 1021567931u, 0, TANF_TOLERANCE, 0},
+{857, 3458669745u, 0u, 1066422342u, 0, TANF_TOLERANCE, 0},
+{858, 3327516316u, 4286775627u, 1049360086u, 0, TANF_TOLERANCE, 0},
+{859, 1040711112u, 4294967293u, 1040763880u, 0, TANF_TOLERANCE, 0},
+{860, 1134528351u, 4294638880u, 3232374310u, 0, TANF_TOLERANCE, 0},
+{861, 3039884464u, 6340u, 3039884464u, 0, TANF_TOLERANCE, 0},
+{862, 3414352838u, 4294876517u, 3188011275u, 0, TANF_TOLERANCE, 0},
+{863, 1133689539u, 1u, 1079948290u, 0, TANF_TOLERANCE, 0},
+{864, 3455688478u, 4294945415u, 1107170377u, 0, TANF_TOLERANCE, 0},
+{865, 1137634874u, 395u, 3213603805u, 0, TANF_TOLERANCE, 0},
+{866, 3415502662u, 0u, 1066223566u, 0, TANF_TOLERANCE, 0},
+{867, 954999730u, 0u, 954999730u, 0, TANF_TOLERANCE, 0},
+{868, 1066157309u, 4294967285u, 1073278589u, 0, TANF_TOLERANCE, 0},
+{869, 3436353675u, 8741u, 1059785901u, 0, TANF_TOLERANCE, 0},
+{870, 940437609u, 0u, 940437609u, 0, TANF_TOLERANCE, 0},
+{871, 3108347547u, 4203356328u, 3108347547u, 0, TANF_TOLERANCE, 0},
+{872, 3064200154u, 0u, 3064200154u, 0, TANF_TOLERANCE, 0},
+{873, 1023889593u, 0u, 1023892821u, 0, TANF_TOLERANCE, 0},
+{874, 3272661536u, 3393767296u, 3199494770u, 0, TANF_TOLERANCE, 0},
+{875, 1170245333u, 1083705u, 1044761542u, 0, TANF_TOLERANCE, 0},
+{876, 1219052056u, 4294526211u, 1059052342u, 0, TANF_TOLERANCE, 0},
+{877, 3318983619u, 4294967246u, 3192638482u, 0, TANF_TOLERANCE, 0},
+{878, 3372118621u, 0u, 3246295792u, 0, TANF_TOLERANCE, 0},
+{879, 3146190320u, 0u, 3146190370u, 0, TANF_TOLERANCE, 0},
+{880, 1299683827u, 0u, 1043926259u, 0, TANF_TOLERANCE, 0},
+{881, 3190796331u, 1457792256u, 3190910653u, 0, TANF_TOLERANCE, 0},
+{882, 3086068902u, 2772570624u, 3086068902u, 0, TANF_TOLERANCE, 0},
+{883, 3064155399u, 0u, 3064155399u, 0, TANF_TOLERANCE, 0},
+{884, 3040314717u, 1u, 3040314717u, 0, TANF_TOLERANCE, 0},
+{885, 3257224022u, 4294737239u, 3204855251u, 0, TANF_TOLERANCE, 0},
+{886, 1229268598u, 1u, 3190598378u, 0, TANF_TOLERANCE, 0},
+{887, 3184078812u, 0u, 3184121389u, 0, TANF_TOLERANCE, 0},
+{888, 1086717248u, 4256439624u, 3183821300u, 0, TANF_TOLERANCE, 0},
+{889, 3434884607u, 0u, 1054771109u, 0, TANF_TOLERANCE, 0},
+{890, 3464955606u, 0u, 3208802337u, 0, TANF_TOLERANCE, 0},
+{891, 1025278524u, 0u, 1025283519u, 0, TANF_TOLERANCE, 0},
+{892, 1242829722u, 4294967290u, 1069973034u, 0, TANF_TOLERANCE, 0},
+{893, 3075149137u, 76u, 3075149137u, 0, TANF_TOLERANCE, 0},
+{894, 1200927971u, 1093714048u, 1079140552u, 0, TANF_TOLERANCE, 0},
+{895, 3326858092u, 3870213632u, 3216501138u, 0, TANF_TOLERANCE, 0},
+{896, 1246019790u, 0u, 3203052164u, 0, TANF_TOLERANCE, 0},
+{897, 3184801644u, 424u, 3184851637u, 0, TANF_TOLERANCE, 0},
+{898, 1136052740u, 4294967282u, 1074814028u, 0, TANF_TOLERANCE, 0},
+{899, 1069009211u, 0u, 1089185530u, 0, TANF_TOLERANCE, 0},
+{900, 1015670780u, 20u, 1015671634u, 0, TANF_TOLERANCE, 0},
+{901, 1012543234u, 70u, 1012544079u, 0, TANF_TOLERANCE, 0},
+{902, 3316611992u, 4291436324u, 3235325687u, 0, TANF_TOLERANCE, 0},
+{903, 1087942795u, 4294961657u, 1057489571u, 0, TANF_TOLERANCE, 0},
+{904, 3426365713u, 0u, 3204426893u, 0, TANF_TOLERANCE, 0},
+{905, 3066654389u, 4087070784u, 3066654389u, 0, TANF_TOLERANCE, 0},
+{906, 3295326432u, 842363840u, 1059389687u, 0, TANF_TOLERANCE, 0},
+{907, 3318835308u, 4294967077u, 3172066705u, 0, TANF_TOLERANCE, 0},
+{908, 3283555717u, 0u, 1085772908u, 0, TANF_TOLERANCE, 0},
+{909, 3381255420u, 0u, 3224136418u, 0, TANF_TOLERANCE, 0},
+{910, 3040485181u, 4294241104u, 3040485181u, 0, TANF_TOLERANCE, 0},
+{911, 3388772093u, 0u, 3216206684u, 0, TANF_TOLERANCE, 0},
+{912, 954670189u, 760u, 954670189u, 0, TANF_TOLERANCE, 0},
+{913, 1319200415u, 4293050361u, 3194828150u, 0, TANF_TOLERANCE, 0},
+{914, 1279324488u, 4294967293u, 3224898935u, 0, TANF_TOLERANCE, 0},
+{915, 3217795424u, 0u, 1111812957u, 0, TANF_TOLERANCE, 0},
+{916, 3455131757u, 10314665u, 1036377031u, 0, TANF_TOLERANCE, 0},
+{917, 1246947517u, 6u, 1037004901u, 0, TANF_TOLERANCE, 0},
+{918, 3396723577u, 0u, 3223712291u, 0, TANF_TOLERANCE, 0},
+{919, 3433761025u, 0u, 1060669919u, 0, TANF_TOLERANCE, 0},
+{920, 3201187455u, 0u, 3201969320u, 0, TANF_TOLERANCE, 0},
+{921, 1173247961u, 32661u, 3213189930u, 0, TANF_TOLERANCE, 0},
+{922, 3037297123u, 4294904338u, 3037297123u, 0, TANF_TOLERANCE, 0},
+{923, 3248534678u, 1927801856u, 3224995767u, 0, TANF_TOLERANCE, 0},
+{924, 3083019343u, 0u, 3083019343u, 0, TANF_TOLERANCE, 0},
+{925, 3042018375u, 0u, 3042018375u, 0, TANF_TOLERANCE, 0},
+{926, 1082862511u, 0u, 1076385558u, 0, TANF_TOLERANCE, 0},
+{927, 3157626955u, 3075906560u, 3157627442u, 0, TANF_TOLERANCE, 0},
+{928, 1341821683u, 0u, 3246356184u, 0, TANF_TOLERANCE, 0},
+{929, 881101379u, 32095u, 881101379u, 0, TANF_TOLERANCE, 0},
+{930, 1079061705u, 0u, 1040351757u, 0, TANF_TOLERANCE, 0},
+{931, 3182695954u, 4294967257u, 3182726467u, 0, TANF_TOLERANCE, 0},
+{932, 1105291533u, 3424974848u, 3184094792u, 0, TANF_TOLERANCE, 0},
+{933, 1016023520u, 4294967293u, 1016024478u, 0, TANF_TOLERANCE, 0},
+{934, 3370691006u, 198615840u, 1066418799u, 0, TANF_TOLERANCE, 0},
+{935, 1156767169u, 0u, 1088078700u, 0, TANF_TOLERANCE, 0},
+{936, 3077020499u, 0u, 3077020499u, 0, TANF_TOLERANCE, 0},
+{937, 1104284039u, 0u, 1074060849u, 0, TANF_TOLERANCE, 0},
+{938, 3335212901u, 1662125568u, 1078246146u, 0, TANF_TOLERANCE, 0},
+{939, 1093697541u, 0u, 3252690424u, 0, TANF_TOLERANCE, 0},
+{940, 3266691185u, 2645u, 1047534875u, 0, TANF_TOLERANCE, 0},
+{941, 3179003144u, 37u, 3179023948u, 0, TANF_TOLERANCE, 0},
+{942, 1094115255u, 0u, 3221885590u, 0, TANF_TOLERANCE, 0},
+{943, 3424086808u, 4294967244u, 3206909502u, 0, TANF_TOLERANCE, 0},
+{944, 3353608773u, 305u, 1071385573u, 0, TANF_TOLERANCE, 0},
+{945, 973664327u, 1394344832u, 973664328u, 0, TANF_TOLERANCE, 0},
+{946, 882878091u, 0u, 882878091u, 0, TANF_TOLERANCE, 0},
+{947, 1098662266u, 0u, 1030614291u, 0, TANF_TOLERANCE, 0},
+{948, 927582555u, 0u, 927582555u, 0, TANF_TOLERANCE, 0},
+{949, 3111440310u, 0u, 3111440310u, 0, TANF_TOLERANCE, 0},
+{950, 3476083859u, 0u, 1033621363u, 0, TANF_TOLERANCE, 0},
+{951, 3038754840u, 0u, 3038754840u, 0, TANF_TOLERANCE, 0},
+{952, 979878744u, 1008405u, 979878748u, 0, TANF_TOLERANCE, 0},
+{953, 3464546616u, 0u, 3247225494u, 0, TANF_TOLERANCE, 0},
+{954, 1002542205u, 0u, 1002542353u, 0, TANF_TOLERANCE, 0},
+{955, 3443552129u, 0u, 3195730557u, 0, TANF_TOLERANCE, 0},
+{956, 1287620154u, 0u, 1073814380u, 0, TANF_TOLERANCE, 0},
+{957, 946058434u, 4207447u, 946058434u, 0, TANF_TOLERANCE, 0},
+{958, 3073260205u, 0u, 3073260205u, 0, TANF_TOLERANCE, 0},
+{959, 1245702957u, 0u, 1050411430u, 0, TANF_TOLERANCE, 0},
+{960, 989655126u, 528989952u, 989655147u, 0, TANF_TOLERANCE, 0},
+{961, 1002715618u, 32425u, 1002715772u, 0, TANF_TOLERANCE, 0},
+{962, 3087802274u, 0u, 3087802274u, 0, TANF_TOLERANCE, 0},
+{963, 1000863905u, 54834u, 1000864001u, 0, TANF_TOLERANCE, 0},
+{964, 3415763001u, 0u, 1069372312u, 0, TANF_TOLERANCE, 0},
+{965, 3283471961u, 10190634u, 1065823474u, 0, TANF_TOLERANCE, 0},
+{966, 3311210827u, 36713u, 1052531529u, 0, TANF_TOLERANCE, 0},
+{967, 3026311911u, 0u, 3026311911u, 0, TANF_TOLERANCE, 0},
+{968, 1198307901u, 68u, 1067889968u, 0, TANF_TOLERANCE, 0},
+{969, 1288901567u, 206618288u, 3211520956u, 0, TANF_TOLERANCE, 0},
+{970, 922255363u, 0u, 922255363u, 0, TANF_TOLERANCE, 0},
+{971, 1113104661u, 0u, 1064212853u, 0, TANF_TOLERANCE, 0},
+{972, 1136714348u, 0u, 3208733877u, 0, TANF_TOLERANCE, 0},
+{973, 948856035u, 0u, 948856035u, 0, TANF_TOLERANCE, 0},
+{974, 1062512367u, 4294967293u, 1066149378u, 0, TANF_TOLERANCE, 0},
+{975, 3486907092u, 0u, 1064674781u, 0, TANF_TOLERANCE, 0},
+{976, 1162027071u, 4294964303u, 3211005030u, 0, TANF_TOLERANCE, 0},
+{977, 1034561811u, 0u, 1034587543u, 0, TANF_TOLERANCE, 0},
+{978, 3271615417u, 0u, 3182227529u, 0, TANF_TOLERANCE, 0},
+{979, 1042014529u, 869u, 1042094177u, 0, TANF_TOLERANCE, 0},
+{980, 1177157787u, 0u, 1065883147u, 0, TANF_TOLERANCE, 0},
+{981, 3196144817u, 0u, 3196329674u, 0, TANF_TOLERANCE, 0},
+{982, 3432084552u, 0u, 3221944554u, 0, TANF_TOLERANCE, 0},
+{983, 1309658335u, 0u, 3205458472u, 0, TANF_TOLERANCE, 0},
+{984, 1226494979u, 0u, 3234449269u, 0, TANF_TOLERANCE, 0},
+{985, 3100289712u, 3743522688u, 3100289712u, 0, TANF_TOLERANCE, 0},
+{986, 3375507013u, 462886112u, 1058971981u, 0, TANF_TOLERANCE, 0},
+{987, 3460699001u, 0u, 1145143987u, 0, TANF_TOLERANCE, 0},
+{988, 3079231719u, 0u, 3079231719u, 0, TANF_TOLERANCE, 0},
+{989, 3093951884u, 0u, 3093951884u, 0, TANF_TOLERANCE, 0},
+{990, 3468023178u, 156157u, 3238327698u, 0, TANF_TOLERANCE, 0},
+{991, 1204196034u, 4294966040u, 1080126796u, 0, TANF_TOLERANCE, 0},
+{992, 3459877411u, 0u, 3237605854u, 0, TANF_TOLERANCE, 0},
+{993, 909696559u, 3378u, 909696559u, 0, TANF_TOLERANCE, 0},
+{994, 1161439847u, 0u, 1055184394u, 0, TANF_TOLERANCE, 0},
+{995, 908663107u, 0u, 908663107u, 0, TANF_TOLERANCE, 0},
+{996, 1055319316u, 4294967238u, 1056436046u, 0, TANF_TOLERANCE, 0},
+{997, 1084378658u, 0u, 3223991873u, 0, TANF_TOLERANCE, 0},
+{998, 3053887750u, 4294922339u, 3053887750u, 0, TANF_TOLERANCE, 0},
+{999, 3022828828u, 0u, 3022828828u, 0, TANF_TOLERANCE, 0},
+{1000, 1226473697u, 0u, 1057671157u, 0, TANF_TOLERANCE, 0},
+{1001, 1123114742u, 841711u, 1080756932u, 0, TANF_TOLERANCE, 0},
+{1002, 1258114435u, 130141336u, 3205684831u, 0, TANF_TOLERANCE, 0},
+{1003, 3468040845u, 0u, 1060841431u, 0, TANF_TOLERANCE, 0},
+{1004, 1178825761u, 54u, 3212909688u, 0, TANF_TOLERANCE, 0},
+{1005, 3059266302u, 0u, 3059266302u, 0, TANF_TOLERANCE, 0},
+{1006, 3223384012u, 225u, 1060730485u, 0, TANF_TOLERANCE, 0},
+{1007, 1019964626u, 1299605u, 1019967367u, 0, TANF_TOLERANCE, 0},
+{1008, 3445262427u, 3129568512u, 3213611207u, 0, TANF_TOLERANCE, 0},
+{1009, 1125653081u, 129823u, 1080850023u, 0, TANF_TOLERANCE, 0},
+{1010, 3337652712u, 0u, 3230359910u, 0, TANF_TOLERANCE, 0},
+{1011, 1184753508u, 0u, 3228668908u, 0, TANF_TOLERANCE, 0},
+{1012, 996404791u, 4294853343u, 996404851u, 0, TANF_TOLERANCE, 0},
+{1013, 1188439315u, 55u, 1041338502u, 0, TANF_TOLERANCE, 0},
+{1014, 906557513u, 0u, 906557513u, 0, TANF_TOLERANCE, 0},
+{1015, 916831283u, 0u, 916831283u, 0, TANF_TOLERANCE, 0},
+{1016, 996786317u, 0u, 996786382u, 0, TANF_TOLERANCE, 0},
+{1017, 3461635065u, 0u, 1067126850u, 0, TANF_TOLERANCE, 0},
+{1018, 1188167943u, 74707u, 1071485055u, 0, TANF_TOLERANCE, 0},
+{1019, 3036502395u, 7309u, 3036502395u, 0, TANF_TOLERANCE, 0},
+{1020, 891257783u, 18537700u, 891257783u, 0, TANF_TOLERANCE, 0},
+{1021, 3290079438u, 0u, 1053635373u, 0, TANF_TOLERANCE, 0},
+{1022, 3350690327u, 0u, 3197180407u, 0, TANF_TOLERANCE, 0},
+{1023, 1102061604u, 4253821380u, 1019813152u, 0, TANF_TOLERANCE, 0},
+{1024, 1282351521u, 0u, 3214248829u, 0, TANF_TOLERANCE, 0},
+{1025, 3458861065u, 4292002951u, 1063733247u, 0, TANF_TOLERANCE, 0},
+{1026, 3095256878u, 0u, 3095256878u, 0, TANF_TOLERANCE, 0},
+{1027, 3163373610u, 0u, 3163374527u, 0, TANF_TOLERANCE, 0},
+{1028, 3228793330u, 0u, 3209153947u, 0, TANF_TOLERANCE, 0},
+{1029, 3422194733u, 0u, 3234741565u, 0, TANF_TOLERANCE, 0},
+{1030, 3083885296u, 0u, 3083885296u, 0, TANF_TOLERANCE, 0},
+{1031, 1261940623u, 4288291120u, 1066943232u, 0, TANF_TOLERANCE, 0},
+{1032, 3400603081u, 4294967290u, 1082458884u, 0, TANF_TOLERANCE, 0},
+{1033, 1219411812u, 0u, 3213563946u, 0, TANF_TOLERANCE, 0},
+{1034, 3094833770u, 0u, 3094833770u, 0, TANF_TOLERANCE, 0},
+{1035, 3139250800u, 0u, 3139250820u, 0, TANF_TOLERANCE, 0},
+{1036, 886201503u, 4294967150u, 886201503u, 0, TANF_TOLERANCE, 0},
+{1037, 3297366026u, 7u, 1045248836u, 0, TANF_TOLERANCE, 0},
+{1038, 1218488455u, 4294964141u, 3193210449u, 0, TANF_TOLERANCE, 0},
+{1039, 3040358923u, 0u, 3040358923u, 0, TANF_TOLERANCE, 0},
+{1040, 1283938137u, 53086u, 1043714569u, 0, TANF_TOLERANCE, 0},
+{1041, 3182551696u, 0u, 3182581102u, 0, TANF_TOLERANCE, 0},
+{1042, 1317098613u, 0u, 1084069604u, 0, TANF_TOLERANCE, 0},
+{1043, 3116209179u, 4294965434u, 3116209180u, 0, TANF_TOLERANCE, 0},
+{1044, 3431703657u, 0u, 3209060142u, 0, TANF_TOLERANCE, 0},
+{1045, 3239728775u, 0u, 3194384213u, 0, TANF_TOLERANCE, 0},
+{1046, 3207141672u, 0u, 3209095053u, 0, TANF_TOLERANCE, 0},
+{1047, 3154378805u, 0u, 3154378992u, 0, TANF_TOLERANCE, 0},
+{1048, 3069658155u, 0u, 3069658155u, 0, TANF_TOLERANCE, 0},
+{1049, 3313160088u, 0u, 3222486976u, 0, TANF_TOLERANCE, 0},
+{1050, 3207056527u, 4293469023u, 3208959043u, 0, TANF_TOLERANCE, 0},
+{1051, 1284174954u, 4180334232u, 3226552351u, 0, TANF_TOLERANCE, 0},
+{1052, 3156081645u, 4294964338u, 3156081966u, 0, TANF_TOLERANCE, 0},
+{1053, 1063693032u, 0u, 1067558305u, 0, TANF_TOLERANCE, 0},
+{1054, 3036026175u, 4845007u, 3036026175u, 0, TANF_TOLERANCE, 0},
+{1055, 1102631663u, 4290881696u, 1073841275u, 0, TANF_TOLERANCE, 0},
+{1056, 968803479u, 0u, 968803480u, 0, TANF_TOLERANCE, 0},
+{1057, 3273080388u, 0u, 3203746534u, 0, TANF_TOLERANCE, 0},
+{1058, 1172529774u, 4294966405u, 1053400161u, 0, TANF_TOLERANCE, 0},
+{1059, 1306695905u, 147733664u, 3218662868u, 0, TANF_TOLERANCE, 0},
+{1060, 1003649752u, 338518u, 1003649942u, 0, TANF_TOLERANCE, 0},
+{1061, 1078478376u, 2364151808u, 3158947134u, 0, TANF_TOLERANCE, 0},
+{1062, 3158855023u, 0u, 3158855677u, 0, TANF_TOLERANCE, 0},
+{1063, 1165177679u, 4294967097u, 3224534299u, 0, TANF_TOLERANCE, 0},
+{1064, 3403009513u, 4293749042u, 3201343705u, 0, TANF_TOLERANCE, 0},
+{1065, 952348506u, 4294108410u, 952348506u, 0, TANF_TOLERANCE, 0},
+{1066, 1222777442u, 153u, 1066942837u, 0, TANF_TOLERANCE, 0},
+{1067, 1325324763u, 0u, 3206284830u, 0, TANF_TOLERANCE, 0},
+{1068, 3363524213u, 0u, 3206324887u, 0, TANF_TOLERANCE, 0},
+{1069, 1158950321u, 1u, 3218962430u, 0, TANF_TOLERANCE, 0},
+{1070, 903129873u, 4272788450u, 903129873u, 0, TANF_TOLERANCE, 0},
+{1071, 3078339944u, 0u, 3078339944u, 0, TANF_TOLERANCE, 0},
+{1072, 1208345407u, 6333643u, 3225922734u, 0, TANF_TOLERANCE, 0},
+{1073, 1258634105u, 3575206u, 3197506179u, 0, TANF_TOLERANCE, 0},
+{1074, 1248478509u, 102613680u, 3264157759u, 0, TANF_TOLERANCE, 0},
+{1075, 1153863988u, 4229464460u, 3221249357u, 0, TANF_TOLERANCE, 0},
+{1076, 1235620969u, 0u, 3226071801u, 0, TANF_TOLERANCE, 0},
+{1077, 1097120930u, 4294967294u, 3234313315u, 0, TANF_TOLERANCE, 0},
+{1078, 3469778622u, 70286u, 3247090687u, 0, TANF_TOLERANCE, 0},
+{1079, 1147712200u, 0u, 1067154089u, 0, TANF_TOLERANCE, 0},
+{1080, 1124721745u, 0u, 3199473163u, 0, TANF_TOLERANCE, 0},
+{1081, 3261744304u, 0u, 1074089254u, 0, TANF_TOLERANCE, 0},
+{1082, 1064922416u, 1518435840u, 1069319457u, 0, TANF_TOLERANCE, 0},
+{1083, 3303160152u, 0u, 3195323188u, 0, TANF_TOLERANCE, 0},
+{1084, 1315090496u, 4294967183u, 1027295675u, 0, TANF_TOLERANCE, 0},
+{1085, 3230403187u, 1820050432u, 3224842200u, 0, TANF_TOLERANCE, 0},
+{1086, 1335399673u, 0u, 1058375572u, 0, TANF_TOLERANCE, 0},
+{1087, 1072458508u, 4294404660u, 3227633324u, 0, TANF_TOLERANCE, 0},
+{1088, 3303015249u, 0u, 3233088608u, 0, TANF_TOLERANCE, 0},
+{1089, 3252139741u, 0u, 1081072463u, 0, TANF_TOLERANCE, 0},
+{1090, 3468519966u, 0u, 1095853277u, 0, TANF_TOLERANCE, 0},
+{1091, 1006231203u, 0u, 1006231520u, 0, TANF_TOLERANCE, 0},
+{1092, 951554138u, 0u, 951554138u, 0, TANF_TOLERANCE, 0},
+{1093, 942046828u, 0u, 942046828u, 0, TANF_TOLERANCE, 0},
+{1094, 3319723279u, 4277552160u, 3181034131u, 0, TANF_TOLERANCE, 0},
+{1095, 3255104167u, 0u, 1081762853u, 0, TANF_TOLERANCE, 0},
+{1096, 1155477903u, 0u, 1074109354u, 0, TANF_TOLERANCE, 0},
+{1097, 3273889176u, 0u, 3194397309u, 0, TANF_TOLERANCE, 0},
+{1098, 3237813668u, 4133749200u, 1099890553u, 0, TANF_TOLERANCE, 0},
+{1099, 1228207362u, 0u, 1070890926u, 0, TANF_TOLERANCE, 0},
+{1100, 975349337u, 748694784u, 975349338u, 0, TANF_TOLERANCE, 0},
+{1101, 1290175785u, 0u, 1065643442u, 0, TANF_TOLERANCE, 0},
+{1102, 981908840u, 4294962938u, 981908843u, 0, TANF_TOLERANCE, 0},
+{1103, 941187647u, 33u, 941187647u, 0, TANF_TOLERANCE, 0},
+{1104, 1214223128u, 4294967293u, 3175410167u, 0, TANF_TOLERANCE, 0},
+{1105, 3422922584u, 6u, 3204371032u, 0, TANF_TOLERANCE, 0},
+{1106, 1315857601u, 1055172096u, 3212838470u, 0, TANF_TOLERANCE, 0},
+{1107, 3453226030u, 4294967291u, 3204290872u, 0, TANF_TOLERANCE, 0},
+{1108, 1078359574u, 0u, 3173419168u, 0, TANF_TOLERANCE, 0},
+{1109, 1029557624u, 4294965511u, 1029571849u, 0, TANF_TOLERANCE, 0},
+{1110, 1207675424u, 0u, 3190987846u, 0, TANF_TOLERANCE, 0},
+{1111, 1028355074u, 4113313408u, 1028366050u, 0, TANF_TOLERANCE, 0},
+{1112, 3119299090u, 24787u, 3119299091u, 0, TANF_TOLERANCE, 0},
+{1113, 1248421894u, 4294582111u, 1062987066u, 0, TANF_TOLERANCE, 0},
+{1114, 3353251994u, 12u, 3230764707u, 0, TANF_TOLERANCE, 0},
+{1115, 876926659u, 4294966792u, 876926659u, 0, TANF_TOLERANCE, 0},
+{1116, 1076752219u, 0u, 3202811089u, 0, TANF_TOLERANCE, 0},
+{1117, 3388531942u, 0u, 1002890227u, 0, TANF_TOLERANCE, 0},
+{1118, 1273395082u, 0u, 3196206979u, 0, TANF_TOLERANCE, 0},
+{1119, 3385588183u, 4294967251u, 1087246844u, 0, TANF_TOLERANCE, 0},
+{1120, 3192315328u, 4294966714u, 3192481686u, 0, TANF_TOLERANCE, 0},
+{1121, 3441804648u, 4294967121u, 3229962545u, 0, TANF_TOLERANCE, 0},
+{1122, 3392827417u, 45125368u, 1059127667u, 0, TANF_TOLERANCE, 0},
+{1123, 1161241793u, 2814016256u, 3213239434u, 0, TANF_TOLERANCE, 0},
+{1124, 3034494183u, 0u, 3034494183u, 0, TANF_TOLERANCE, 0},
+{1125, 1171318485u, 4294306215u, 3204093878u, 0, TANF_TOLERANCE, 0},
+{1126, 3047748143u, 0u, 3047748143u, 0, TANF_TOLERANCE, 0},
+{1127, 1001216371u, 0u, 1001216477u, 0, TANF_TOLERANCE, 0},
+{1128, 912515889u, 2u, 912515889u, 0, TANF_TOLERANCE, 0},
+{1129, 3391452505u, 0u, 1060706149u, 0, TANF_TOLERANCE, 0},
+{1130, 3249603369u, 0u, 3188424533u, 0, TANF_TOLERANCE, 0},
+{1131, 1220264047u, 0u, 1047931096u, 0, TANF_TOLERANCE, 0},
+{1132, 3169816394u, 0u, 3169820871u, 0, TANF_TOLERANCE, 0},
+{1133, 3098997418u, 0u, 3098997418u, 0, TANF_TOLERANCE, 0},
+{1134, 3282212423u, 0u, 1112557809u, 0, TANF_TOLERANCE, 0},
+{1135, 3352293320u, 4294967278u, 3226389131u, 0, TANF_TOLERANCE, 0},
+{1136, 3296358441u, 0u, 1054993302u, 0, TANF_TOLERANCE, 0},
+{1137, 1197828352u, 4294967281u, 1032407318u, 0, TANF_TOLERANCE, 0},
+{1138, 3340510371u, 0u, 1069696271u, 0, TANF_TOLERANCE, 0},
+{1139, 1127109339u, 4294570975u, 1105605562u, 0, TANF_TOLERANCE, 0},
+{1140, 909467381u, 1001724u, 909467381u, 0, TANF_TOLERANCE, 0},
+{1141, 1200599955u, 0u, 3216216244u, 0, TANF_TOLERANCE, 0},
+{1142, 962230977u, 0u, 962230977u, 0, TANF_TOLERANCE, 0},
+{1143, 3192887808u, 0u, 3193077326u, 0, TANF_TOLERANCE, 0},
+{1144, 3237183876u, 0u, 3229633984u, 0, TANF_TOLERANCE, 0},
+{1145, 939285924u, 0u, 939285924u, 0, TANF_TOLERANCE, 0},
+{1146, 944050180u, 3871652128u, 944050180u, 0, TANF_TOLERANCE, 0},
+{1147, 3058135703u, 0u, 3058135703u, 0, TANF_TOLERANCE, 0},
+{1148, 3480592662u, 4294967238u, 1058275636u, 0, TANF_TOLERANCE, 0},
+{1149, 3061939312u, 4294967125u, 3061939312u, 0, TANF_TOLERANCE, 0},
+{1150, 1003299981u, 0u, 1003300157u, 0, TANF_TOLERANCE, 0},
+{1151, 1155775526u, 7150230u, 3195997040u, 0, TANF_TOLERANCE, 0},
+{1152, 1234491880u, 4283784819u, 3230107658u, 0, TANF_TOLERANCE, 0}
+
+// AUTOMATICALLY GENERATED VECTORS STOP
+
+};
+
+#endif // CYGONCE_LIBM_SCABNF_H multiple inclusion protection
+
+// EOF tanf.h
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/tanh.c b/ecos/packages/language/c/libm/current/tests/vectors/tanh.c
new file mode 100644
index 0000000..f4dd5ec
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/tanh.c
@@ -0,0 +1,115 @@
+//===========================================================================
+//
+// tanh.c
+//
+// Test of tanh() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// Declarations for test system:
+//
+// TESTCASE_TYPE=CYG_TEST_MODULE
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include <cyg/infra/testcase.h> // Test infrastructure
+#include <math.h> // Header for this package
+#include <sys/ieeefp.h> // Cyg_libm_ieee_double_shape_type
+#include "vectors/vector_support.h"// extra support for math tests
+
+#include "vectors/tanh.h"
+
+// FUNCTIONS
+
+static void
+test( CYG_ADDRWORD data )
+{
+ cyg_ucount32 vec_size;
+ cyg_bool ret;
+
+ vec_size = sizeof(tanh_vec) / sizeof(Cyg_libm_test_double_vec_t);
+ ret = doTestVec( (CYG_ADDRWORD) &tanh, CYG_LIBM_TEST_VEC_DOUBLE,
+ CYG_LIBM_TEST_VEC_NONE, CYG_LIBM_TEST_VEC_DOUBLE,
+ &tanh_vec[0], vec_size );
+
+ if (ret==true)
+ {
+ CYG_TEST_PASS("tanh() is stable");
+ } // if
+ else
+ {
+ CYG_TEST_FAIL("tanh() failed tests");
+ } // else
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for Math "
+ "library tanh() function");
+} // test()
+
+
+int
+main(int argc, char *argv[])
+{
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for Math library "
+ "tanh() function");
+
+ START_TEST( test );
+
+ CYG_TEST_PASS_FINISH("Testing is not applicable to this configuration");
+
+} // main()
+
+
+// EOF tanh.c
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/tanh.h b/ecos/packages/language/c/libm/current/tests/vectors/tanh.h
new file mode 100644
index 0000000..87018b0
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/tanh.h
@@ -0,0 +1,1079 @@
+#ifndef CYGONCE_LIBM_TANH_H
+#define CYGONCE_LIBM_TANH_H
+//===========================================================================
+//
+// tanh.h
+//
+// Test vectors for testing of tanh() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage: #include "vectors/tanh.h"
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include "vectors/vector_support.h"// extra support for math tests
+
+#define TANH_TOLERANCE 1.0E-04
+
+static const Cyg_libm_test_double_vec_t tanh_vec[] = {
+
+// AUTOMATICALLY GENERATED VECTORS START
+
+{ 1, 1074853420u, 2506787616u, 1090024059u, 3619148316u, 1072692378u, 1014448409u, 0, TANH_TOLERANCE, 0},
+{ 2, 3220250806u, 3176730980u, 1051524793u, 2993920299u, 3219735748u, 2718182253u, 0, TANH_TOLERANCE, 0},
+{ 3, 3226028315u, 2725707538u, 3232101343u, 2346810316u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 4, 1078922874u, 2088062470u, 3201242716u, 420891118u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 5, 3221200677u, 2636405208u, 1100049309u, 471635570u, 3220097871u, 3599209765u, 0, TANH_TOLERANCE, 0},
+{ 6, 1077828855u, 1746012320u, 1054478713u, 3333988501u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 7, 1066827528u, 183014794u, 3202039382u, 2016785810u, 1066827290u, 3880063380u, 0, TANH_TOLERANCE, 0},
+{ 8, 3219777490u, 2688957927u, 1046089230u, 2709029994u, 3219483454u, 1125363282u, 0, TANH_TOLERANCE, 0},
+{ 9, 1070330066u, 624574473u, 1045840574u, 3473266330u, 1070301526u, 862781689u, 0, TANH_TOLERANCE, 0},
+{ 10, 3217502754u, 1605286142u, 1068931671u, 4233776869u, 3217486329u, 2145582745u, 0, TANH_TOLERANCE, 0},
+{ 11, 1069780594u, 1857607719u, 3222889559u, 3417070006u, 1069770714u, 401076752u, 0, TANH_TOLERANCE, 0},
+{ 12, 1081579891u, 3981151660u, 1088899021u, 1332651746u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 13, 1075860838u, 3824988054u, 1066856791u, 2070129652u, 1072693247u, 2842765918u, 0, TANH_TOLERANCE, 0},
+{ 14, 3218045550u, 1372884064u, 1080833116u, 3229926662u, 3218004944u, 604169930u, 0, TANH_TOLERANCE, 0},
+{ 15, 1078097861u, 3217805330u, 3191644264u, 2014578707u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 16, 1080267391u, 265058758u, 3239903247u, 1630600647u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 17, 1073221381u, 1946677669u, 3198462609u, 926009897u, 1072495714u, 2851802077u, 0, TANH_TOLERANCE, 0},
+{ 18, 1073178875u, 2271884183u, 3203741999u, 2118617783u, 1072479881u, 1907835069u, 0, TANH_TOLERANCE, 0},
+{ 19, 3214772053u, 213658772u, 3249401130u, 314151656u, 3214771516u, 3554579438u, 0, TANH_TOLERANCE, 0},
+{ 20, 3228946464u, 1564829925u, 3197817016u, 497230814u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 21, 3219408362u, 2075329122u, 3231746400u, 169900577u, 3219255158u, 2089286575u, 0, TANH_TOLERANCE, 0},
+{ 22, 1067674434u, 541549344u, 1096608669u, 3119070100u, 1067673824u, 1035028173u, 0, TANH_TOLERANCE, 0},
+{ 23, 1075989871u, 567496114u, 1045286891u, 1969998540u, 1072693247u, 4092220034u, 0, TANH_TOLERANCE, 0},
+{ 24, 1069985379u, 1299369769u, 1049342524u, 4167404066u, 1069970014u, 3629210634u, 0, TANH_TOLERANCE, 0},
+{ 25, 3218302829u, 3348930841u, 1078472138u, 358457347u, 3218265246u, 746156169u, 0, TANH_TOLERANCE, 0},
+{ 26, 1073166449u, 2192461366u, 1099527247u, 3184735642u, 1072475030u, 1439194248u, 0, TANH_TOLERANCE, 0},
+{ 27, 1068590412u, 331696577u, 3189610016u, 793242270u, 1068588660u, 2611487107u, 0, TANH_TOLERANCE, 0},
+{ 28, 3229460262u, 2322696981u, 1083791358u, 3020766674u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 29, 1066922273u, 252085215u, 3214426435u, 4139068910u, 1066921987u, 890588541u, 0, TANH_TOLERANCE, 0},
+{ 30, 3221457149u, 105589263u, 1056316170u, 261630827u, 3220145390u, 1744926257u, 0, TANH_TOLERANCE, 0},
+{ 31, 1082047584u, 428765703u, 3251828686u, 2009972239u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 32, 1079693651u, 3517376586u, 3240257920u, 3304487302u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 33, 3224100728u, 237004814u, 3237899261u, 3364008659u, 3220176895u, 4294953152u, 0, TANH_TOLERANCE, 0},
+{ 34, 3214121920u, 472004928u, 3226869477u, 1186387580u, 3214121763u, 282713899u, 0, TANH_TOLERANCE, 0},
+{ 35, 1068906914u, 4085763910u, 1106394906u, 2684738273u, 1068903266u, 2272328782u, 0, TANH_TOLERANCE, 0},
+{ 36, 1069636551u, 2055490142u, 3231581370u, 3879040079u, 1069629628u, 2119989659u, 0, TANH_TOLERANCE, 0},
+{ 37, 3213093895u, 3725731239u, 1061652681u, 591292963u, 3213093854u, 2954887285u, 0, TANH_TOLERANCE, 0},
+{ 38, 3221869253u, 1147041027u, 3215417793u, 624695933u, 3220170315u, 2960779403u, 0, TANH_TOLERANCE, 0},
+{ 39, 3217587110u, 705725219u, 3238067573u, 1116238321u, 3217567824u, 4085004597u, 0, TANH_TOLERANCE, 0},
+{ 40, 3217852848u, 7287411u, 1045917232u, 116067742u, 3217822463u, 1655616480u, 0, TANH_TOLERANCE, 0},
+{ 41, 3226423734u, 3604989074u, 1066381836u, 545298780u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 42, 3221178088u, 1681476121u, 1060345752u, 3553822398u, 3220094461u, 32790421u, 0, TANH_TOLERANCE, 0},
+{ 43, 1080811562u, 3410480388u, 1052460275u, 1660607230u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 44, 1077682533u, 1494984673u, 3196647153u, 287894723u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 45, 1068516615u, 644548665u, 1081948134u, 2442134629u, 1068515181u, 4013422768u, 0, TANH_TOLERANCE, 0},
+{ 46, 1077068335u, 2312530895u, 3221584595u, 3379665576u, 1072693247u, 4294967295u, 0, TANH_TOLERANCE, 0},
+{ 47, 1079308159u, 3018463866u, 1086226574u, 404012923u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 48, 1071024755u, 1710279345u, 3251401196u, 3528946000u, 1070966559u, 4188915943u, 0, TANH_TOLERANCE, 0},
+{ 49, 1070973535u, 2164450219u, 1083520023u, 3312018966u, 1070921017u, 98347496u, 0, TANH_TOLERANCE, 0},
+{ 50, 1069831588u, 2648986431u, 1050330591u, 1474376550u, 1069820489u, 3042456577u, 0, TANH_TOLERANCE, 0},
+{ 51, 3214344972u, 1839068700u, 1077406406u, 3013052171u, 3214344718u, 2604353982u, 0, TANH_TOLERANCE, 0},
+{ 52, 1066416574u, 772102380u, 3220729740u, 4219039958u, 1066416485u, 838919666u, 0, TANH_TOLERANCE, 0},
+{ 53, 3223180765u, 3058618779u, 1046304788u, 3338676024u, 3220176894u, 2606621599u, 0, TANH_TOLERANCE, 0},
+{ 54, 1067949353u, 506286854u, 1094907481u, 2217000199u, 1067948256u, 3256716313u, 0, TANH_TOLERANCE, 0},
+{ 55, 1076136854u, 1147428263u, 1065432625u, 3034786717u, 1072693247u, 4273443146u, 0, TANH_TOLERANCE, 0},
+{ 56, 1075725296u, 2844125311u, 1082985198u, 2561492677u, 1072693246u, 3764088074u, 0, TANH_TOLERANCE, 0},
+{ 57, 3218876948u, 704542600u, 3222902057u, 2762779203u, 3218766355u, 4000984321u, 0, TANH_TOLERANCE, 0},
+{ 58, 3215409254u, 184131949u, 3249723525u, 1667366082u, 3215408207u, 1529188018u, 0, TANH_TOLERANCE, 0},
+{ 59, 3221512446u, 3904224140u, 1067056698u, 2942159914u, 3220151345u, 2904148002u, 0, TANH_TOLERANCE, 0},
+{ 60, 1080713919u, 426114282u, 3209056785u, 1083606355u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 61, 1082048697u, 3774123863u, 1106787580u, 2722107965u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 62, 1077519332u, 1377734762u, 1104232051u, 2377063483u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 63, 1072526287u, 1029739074u, 1105467109u, 3062201018u, 1072118796u, 4118103516u, 0, TANH_TOLERANCE, 0},
+{ 64, 3225304413u, 773857656u, 3214251949u, 335833884u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 65, 3216856098u, 1473865960u, 1103073830u, 4000427507u, 3216847733u, 232123791u, 0, TANH_TOLERANCE, 0},
+{ 66, 1081165135u, 4242092620u, 1067009473u, 14539161u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 67, 3214536170u, 1732245037u, 1101371955u, 1533536108u, 3214535807u, 1315557254u, 0, TANH_TOLERANCE, 0},
+{ 68, 3228182475u, 1833841275u, 1099430098u, 4144145552u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 69, 3227493247u, 935007012u, 3188865420u, 604442938u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 70, 3217389013u, 2211464602u, 1046255144u, 1635910526u, 3217375982u, 600658720u, 0, TANH_TOLERANCE, 0},
+{ 71, 1074725689u, 2549219008u, 3231633258u, 3733639385u, 1072691447u, 3387741538u, 0, TANH_TOLERANCE, 0},
+{ 72, 1075803633u, 1819374372u, 3202219056u, 2617077637u, 1072693247u, 1640287018u, 0, TANH_TOLERANCE, 0},
+{ 73, 1078616640u, 546465680u, 1048653554u, 532401530u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 74, 1066591187u, 2759019783u, 3221570188u, 3554409630u, 1066591047u, 1006540637u, 0, TANH_TOLERANCE, 0},
+{ 75, 3219222738u, 2527221960u, 1099107978u, 2696971136u, 3219114815u, 1376096383u, 0, TANH_TOLERANCE, 0},
+{ 76, 1079332208u, 173134582u, 1087299442u, 2877794600u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 77, 1076963290u, 547642046u, 3197285510u, 3521286127u, 1072693247u, 4294967273u, 0, TANH_TOLERANCE, 0},
+{ 78, 1073812126u, 1231582831u, 1090971734u, 1653446832u, 1072635309u, 2989295u, 0, TANH_TOLERANCE, 0},
+{ 79, 1070779719u, 3762182190u, 3252967851u, 2615360375u, 1070745453u, 2070604370u, 0, TANH_TOLERANCE, 0},
+{ 80, 3216563063u, 2588067350u, 3206610957u, 3551059728u, 3216557963u, 801826211u, 0, TANH_TOLERANCE, 0},
+{ 81, 3217464616u, 845263327u, 1073415902u, 1749010288u, 3217449387u, 250805u, 0, TANH_TOLERANCE, 0},
+{ 82, 3217110706u, 3092685191u, 3190678390u, 2872219490u, 3217103954u, 3350331893u, 0, TANH_TOLERANCE, 0},
+{ 83, 3220412207u, 4107255722u, 3205337291u, 3069068345u, 3219843345u, 256047763u, 0, TANH_TOLERANCE, 0},
+{ 84, 3227213641u, 2294867524u, 3216653996u, 2860384670u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 85, 3214297870u, 2265437201u, 3240198679u, 1234948614u, 3214297639u, 3221872192u, 0, TANH_TOLERANCE, 0},
+{ 86, 3219505657u, 1186945904u, 3251167793u, 1896750851u, 3219320152u, 2185885166u, 0, TANH_TOLERANCE, 0},
+{ 87, 1075284022u, 3686084548u, 1079286273u, 3309277689u, 1072693215u, 1875502271u, 0, TANH_TOLERANCE, 0},
+{ 88, 3221379088u, 3006860614u, 3231412671u, 2504194724u, 3220134572u, 2680984865u, 0, TANH_TOLERANCE, 0},
+{ 89, 3224614924u, 1948717780u, 1048317852u, 3791803982u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 90, 1070636471u, 4272034420u, 3192982124u, 1526175922u, 1070612646u, 3951514323u, 0, TANH_TOLERANCE, 0},
+{ 91, 3226943458u, 4108948538u, 1104691287u, 640541190u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 92, 3217743177u, 3259274853u, 1082507103u, 3677038020u, 3217717774u, 2850529195u, 0, TANH_TOLERANCE, 0},
+{ 93, 1076841042u, 3781708548u, 1096584871u, 1207386447u, 1072693247u, 4294966832u, 0, TANH_TOLERANCE, 0},
+{ 94, 3213861096u, 3011191657u, 1103798670u, 1096124830u, 3213860931u, 3971208009u, 0, TANH_TOLERANCE, 0},
+{ 95, 1071623631u, 2540404725u, 3240157452u, 4122845725u, 1071469194u, 1505927985u, 0, TANH_TOLERANCE, 0},
+{ 96, 1076303678u, 311336721u, 3214382367u, 4212533768u, 1072693247u, 4293279124u, 0, TANH_TOLERANCE, 0},
+{ 97, 1067916643u, 1769686293u, 3240200923u, 3538602249u, 1067915615u, 325439970u, 0, TANH_TOLERANCE, 0},
+{ 98, 1075081821u, 508056696u, 1103793878u, 776520138u, 1072693095u, 3017783498u, 0, TANH_TOLERANCE, 0},
+{ 99, 1080890481u, 4064962760u, 1077424413u, 819766631u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 100, 1074178362u, 2112385259u, 3227593179u, 1187058516u, 1072678768u, 381693332u, 0, TANH_TOLERANCE, 0},
+{ 101, 1076003603u, 2514398118u, 1076579751u, 870169764u, 1072693247u, 4130548044u, 0, TANH_TOLERANCE, 0},
+{ 102, 3227977024u, 1190259653u, 1069112254u, 3417249840u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 103, 3214634603u, 3467757357u, 3215075200u, 2168175352u, 3214634173u, 3865851572u, 0, TANH_TOLERANCE, 0},
+{ 104, 3226011647u, 1508888184u, 1060430241u, 3524949092u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 105, 3215238675u, 166402802u, 3237198975u, 3572369260u, 3215237941u, 3647655500u, 0, TANH_TOLERANCE, 0},
+{ 106, 1075575366u, 2441536203u, 3202753937u, 3658194573u, 1072693244u, 2031976466u, 0, TANH_TOLERANCE, 0},
+{ 107, 1070781516u, 2479742828u, 1062342831u, 4214154303u, 1070747103u, 1801754207u, 0, TANH_TOLERANCE, 0},
+{ 108, 1076105338u, 426896765u, 1066474375u, 2201754442u, 1072693247u, 4260151399u, 0, TANH_TOLERANCE, 0},
+{ 109, 3214503389u, 2055773734u, 3239267288u, 291396537u, 3214503046u, 4246773790u, 0, TANH_TOLERANCE, 0},
+{ 110, 3224385121u, 874125203u, 3210508124u, 4091098764u, 3220176895u, 4294967147u, 0, TANH_TOLERANCE, 0},
+{ 111, 1072007482u, 120488169u, 3241241441u, 1985269424u, 1071827020u, 3308157325u, 0, TANH_TOLERANCE, 0},
+{ 112, 3218073746u, 2243036871u, 3243941101u, 740033495u, 3218031479u, 4064057836u, 0, TANH_TOLERANCE, 0},
+{ 113, 3218862090u, 1176656356u, 1074261978u, 3588756231u, 3218754022u, 3974936801u, 0, TANH_TOLERANCE, 0},
+{ 114, 3228699543u, 3037249392u, 1061635587u, 1173102190u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 115, 3224626669u, 2882725208u, 1071440059u, 69225090u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 116, 3218954930u, 272319256u, 1072073912u, 2493997123u, 3218830490u, 2787918817u, 0, TANH_TOLERANCE, 0},
+{ 117, 1070303098u, 188610379u, 3232757923u, 2209647371u, 1070275785u, 2868756030u, 0, TANH_TOLERANCE, 0},
+{ 118, 3225224181u, 1990439193u, 1078073146u, 622849962u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 119, 1069718653u, 756052458u, 1081649113u, 2247475162u, 1069710129u, 3490933881u, 0, TANH_TOLERANCE, 0},
+{ 120, 1071060248u, 3878055211u, 3222407050u, 2979438623u, 1070997900u, 1162556570u, 0, TANH_TOLERANCE, 0},
+{ 121, 3214165365u, 2676398686u, 1105124431u, 3631096636u, 3214165192u, 464247846u, 0, TANH_TOLERANCE, 0},
+{ 122, 1071370846u, 1697791764u, 3198136112u, 2299842819u, 1071264055u, 4133345906u, 0, TANH_TOLERANCE, 0},
+{ 123, 1074939040u, 1931502677u, 3215264397u, 3016456382u, 1072692795u, 1553366917u, 0, TANH_TOLERANCE, 0},
+{ 124, 1073302002u, 343404215u, 1061072607u, 4266232536u, 1072522724u, 3704959248u, 0, TANH_TOLERANCE, 0},
+{ 125, 3225502196u, 4140316002u, 1082896196u, 868256971u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 126, 1074374234u, 1864139509u, 3187675097u, 3084482407u, 1072686376u, 1962441622u, 0, TANH_TOLERANCE, 0},
+{ 127, 3220191323u, 2427162817u, 3234748208u, 2715105792u, 3219688914u, 3013850408u, 0, TANH_TOLERANCE, 0},
+{ 128, 1070891968u, 3943389284u, 1046724025u, 3626825684u, 1070847739u, 3439563777u, 0, TANH_TOLERANCE, 0},
+{ 129, 1067443098u, 967350972u, 1093012318u, 448002663u, 1067442422u, 3845472712u, 0, TANH_TOLERANCE, 0},
+{ 130, 3228777187u, 105058217u, 1069733884u, 171786224u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 131, 3213731756u, 2863482262u, 3204997271u, 877784425u, 3213731620u, 3648045742u, 0, TANH_TOLERANCE, 0},
+{ 132, 3216260801u, 2801782962u, 3213604117u, 762347195u, 3216258042u, 2678983680u, 0, TANH_TOLERANCE, 0},
+{ 133, 3224049543u, 2317950339u, 3246333414u, 2135700283u, 3220176895u, 4294936411u, 0, TANH_TOLERANCE, 0},
+{ 134, 1069099309u, 4171919805u, 1082858682u, 2180920863u, 1069094020u, 3820197062u, 0, TANH_TOLERANCE, 0},
+{ 135, 3221197660u, 1918836931u, 1083603224u, 3137821660u, 3220097424u, 1722624890u, 0, TANH_TOLERANCE, 0},
+{ 136, 1081882778u, 3456203663u, 3235600523u, 2335688936u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 137, 1066396570u, 4170235262u, 1051824459u, 521583737u, 1066396401u, 2543673130u, 0, TANH_TOLERANCE, 0},
+{ 138, 1075056847u, 1296623194u, 3250673860u, 2442872540u, 1072693063u, 3166683353u, 0, TANH_TOLERANCE, 0},
+{ 139, 1071121461u, 289979405u, 1049514449u, 3865737145u, 1071051518u, 2290983565u, 0, TANH_TOLERANCE, 0},
+{ 140, 1074250368u, 3699090239u, 1054539840u, 3259249360u, 1072682236u, 3608691743u, 0, TANH_TOLERANCE, 0},
+{ 141, 1079640884u, 1619819023u, 1045993352u, 1022642459u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 142, 1075141548u, 19455098u, 3229182089u, 2096003654u, 1072693151u, 1888247792u, 0, TANH_TOLERANCE, 0},
+{ 143, 1074200784u, 3803689997u, 1071630912u, 2263729518u, 1072679951u, 1586915304u, 0, TANH_TOLERANCE, 0},
+{ 144, 1080385741u, 2816837387u, 1063422305u, 2597606398u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 145, 1072245897u, 3680967506u, 1040201163u, 179224723u, 1071972935u, 363515293u, 0, TANH_TOLERANCE, 0},
+{ 146, 3213795591u, 978126928u, 1101553990u, 4047893399u, 3213795441u, 2507481145u, 0, TANH_TOLERANCE, 0},
+{ 147, 3221273469u, 4059818629u, 1042678728u, 3640293589u, 3220113888u, 3437106909u, 0, TANH_TOLERANCE, 0},
+{ 148, 3228541096u, 3383497159u, 1070002807u, 1527313008u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 149, 3216339167u, 2599946514u, 1104170406u, 2738675352u, 3216335891u, 1051626081u, 0, TANH_TOLERANCE, 0},
+{ 150, 1081115375u, 3616571377u, 1060859316u, 1130603218u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 151, 1073931644u, 3859211180u, 1067940450u, 1744531824u, 1072656336u, 429068867u, 0, TANH_TOLERANCE, 0},
+{ 152, 1065900012u, 1958025850u, 3236511256u, 2472176453u, 1065899937u, 1394244149u, 0, TANH_TOLERANCE, 0},
+{ 153, 3223669905u, 182132862u, 3250520938u, 3924356991u, 3220176895u, 4284838839u, 0, TANH_TOLERANCE, 0},
+{ 154, 3224210428u, 35632886u, 3209806504u, 1453402523u, 3220176895u, 4294964644u, 0, TANH_TOLERANCE, 0},
+{ 155, 1076182070u, 743225214u, 3202890678u, 142917400u, 1072693247u, 4284170650u, 0, TANH_TOLERANCE, 0},
+{ 156, 1075442096u, 1472665012u, 3203138231u, 256588219u, 1072693238u, 1077098108u, 0, TANH_TOLERANCE, 0},
+{ 157, 1079253522u, 1062927000u, 1061134072u, 931677439u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 158, 1069912068u, 2320910576u, 1055663370u, 288059864u, 1069898851u, 1531188271u, 0, TANH_TOLERANCE, 0},
+{ 159, 1075812365u, 1448349062u, 3199478070u, 3454027134u, 1072693247u, 1811377479u, 0, TANH_TOLERANCE, 0},
+{ 160, 3224875886u, 4215445172u, 3196654963u, 2231888973u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 161, 3227757863u, 40413554u, 3232578253u, 983832844u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 162, 3221624382u, 3995725873u, 1050082319u, 777231627u, 3220160190u, 46615835u, 0, TANH_TOLERANCE, 0},
+{ 163, 1066152450u, 672789828u, 3253385962u, 2982787335u, 1066152333u, 1814400134u, 0, TANH_TOLERANCE, 0},
+{ 164, 1072585179u, 2075971825u, 1070166500u, 4034633931u, 1072146078u, 896769727u, 0, TANH_TOLERANCE, 0},
+{ 165, 3218434785u, 1018222907u, 3244621407u, 3090050495u, 3218384633u, 3394350018u, 0, TANH_TOLERANCE, 0},
+{ 166, 1071875189u, 937732557u, 3200798890u, 2557898276u, 1071737093u, 3916098959u, 0, TANH_TOLERANCE, 0},
+{ 167, 1075196588u, 130346162u, 3223590310u, 275568693u, 1072693184u, 2361710702u, 0, TANH_TOLERANCE, 0},
+{ 168, 1065967541u, 3807416441u, 1075961161u, 3706820266u, 1065967456u, 3459855166u, 0, TANH_TOLERANCE, 0},
+{ 169, 3219244733u, 1710131411u, 1078123323u, 1900790503u, 3219138047u, 3814235172u, 0, TANH_TOLERANCE, 0},
+{ 170, 3226236449u, 3420420033u, 3210844787u, 588423066u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 171, 1067509906u, 1160162008u, 3246307879u, 4265764460u, 1067509503u, 2601735024u, 0, TANH_TOLERANCE, 0},
+{ 172, 1080523338u, 366653268u, 3188814424u, 466059202u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 173, 3222433435u, 1325936170u, 3221436876u, 680097612u, 3220176478u, 4252589573u, 0, TANH_TOLERANCE, 0},
+{ 174, 3225711052u, 1827735934u, 3200554324u, 2875599271u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 175, 3213050498u, 3117037091u, 3239246636u, 15838845u, 3213050461u, 2222620939u, 0, TANH_TOLERANCE, 0},
+{ 176, 1067702644u, 749718883u, 3223587064u, 1523766569u, 1067701992u, 3622799087u, 0, TANH_TOLERANCE, 0},
+{ 177, 1066853747u, 1966536294u, 3250158026u, 699164258u, 1066853497u, 1898707226u, 0, TANH_TOLERANCE, 0},
+{ 178, 1079174067u, 3759049394u, 1106085272u, 1183789499u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 179, 1074910167u, 1970107747u, 1095245453u, 2308233883u, 1072692683u, 3577819256u, 0, TANH_TOLERANCE, 0},
+{ 180, 1076367836u, 1491017852u, 1041444355u, 1723375725u, 1072693247u, 4294333058u, 0, TANH_TOLERANCE, 0},
+{ 181, 3219775798u, 1141349287u, 1097465301u, 3403438584u, 3219482519u, 2595676565u, 0, TANH_TOLERANCE, 0},
+{ 182, 3224280452u, 1711085243u, 3250239076u, 1377484108u, 3220176895u, 4294966385u, 0, TANH_TOLERANCE, 0},
+{ 183, 1079510651u, 2880275004u, 1084039594u, 1611394950u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 184, 3224784251u, 2626629370u, 1063771493u, 1499080813u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 185, 1068862751u, 3936262414u, 1103919063u, 3175668759u, 1068859424u, 3440133182u, 0, TANH_TOLERANCE, 0},
+{ 186, 3217418903u, 1270950554u, 3194616071u, 3680565379u, 3217405029u, 3952562788u, 0, TANH_TOLERANCE, 0},
+{ 187, 3217585407u, 1066985223u, 3221613219u, 4089383168u, 3217566182u, 3374525206u, 0, TANH_TOLERANCE, 0},
+{ 188, 3220204567u, 4017329311u, 3208334452u, 1667591498u, 3219699702u, 2508843272u, 0, TANH_TOLERANCE, 0},
+{ 189, 1077678397u, 3154656624u, 1061894279u, 3886344038u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 190, 1068478737u, 977586119u, 3209762784u, 953839852u, 1068476088u, 3411453719u, 0, TANH_TOLERANCE, 0},
+{ 191, 1081896575u, 143071571u, 3206165386u, 913097445u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 192, 3213634128u, 1371169579u, 1057079837u, 2594818628u, 3213634011u, 4114428713u, 0, TANH_TOLERANCE, 0},
+{ 193, 3228724664u, 2259342224u, 3217432469u, 1824221478u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 194, 3227960407u, 1576604497u, 1079368611u, 185078728u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 195, 3221679427u, 444800035u, 3243343143u, 1734989302u, 3220163343u, 3657733008u, 0, TANH_TOLERANCE, 0},
+{ 196, 1072748883u, 130452005u, 1041548088u, 2158433515u, 1072238149u, 3617271211u, 0, TANH_TOLERANCE, 0},
+{ 197, 3225258784u, 1941318385u, 1045807374u, 792193370u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 198, 3225716754u, 1299392207u, 3212131720u, 3205732280u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 199, 1079824436u, 3035093505u, 1052187689u, 3287702190u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 200, 3227801892u, 2160225215u, 1102624859u, 836655570u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 201, 1079946410u, 3360816360u, 3246176356u, 172860634u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 202, 1073092940u, 146831910u, 1051558014u, 2340722078u, 1072444136u, 1759342658u, 0, TANH_TOLERANCE, 0},
+{ 203, 3224124895u, 1603798153u, 3207725532u, 1099413093u, 3220176895u, 4294957514u, 0, TANH_TOLERANCE, 0},
+{ 204, 3227804010u, 2429340443u, 3190303581u, 3223770005u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 205, 1073785807u, 955542166u, 3230415151u, 275583938u, 1072629283u, 1074678205u, 0, TANH_TOLERANCE, 0},
+{ 206, 1078291818u, 513397822u, 1090646554u, 2089321329u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 207, 3214141396u, 2782073372u, 1046063872u, 4023829068u, 3214141232u, 1525062828u, 0, TANH_TOLERANCE, 0},
+{ 208, 1079690454u, 3242223094u, 3194111199u, 4264674108u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 209, 3225927909u, 3506346169u, 1047020885u, 1742757458u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 210, 3214684573u, 1265459564u, 3193450280u, 3650514880u, 3214684106u, 2321174768u, 0, TANH_TOLERANCE, 0},
+{ 211, 1075464434u, 1525260440u, 3235452527u, 2612331392u, 1072693239u, 3343303113u, 0, TANH_TOLERANCE, 0},
+{ 212, 3227697400u, 1263613754u, 3219096387u, 635677201u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 213, 3217806423u, 4140947288u, 3200792376u, 2013265346u, 3217778219u, 1500451800u, 0, TANH_TOLERANCE, 0},
+{ 214, 3227954296u, 1912759945u, 3237045253u, 1351396825u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 215, 3228282218u, 1001433078u, 3206926643u, 2741676659u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 216, 1075680726u, 1088945233u, 1085095743u, 3986114865u, 1072693246u, 1809567207u, 0, TANH_TOLERANCE, 0},
+{ 217, 3219928361u, 831239754u, 1099828675u, 3071308141u, 3219562775u, 3422341860u, 0, TANH_TOLERANCE, 0},
+{ 218, 3222688769u, 3473592372u, 1102759382u, 1309576357u, 3220176836u, 2359199832u, 0, TANH_TOLERANCE, 0},
+{ 219, 3229166610u, 2042340367u, 1091945628u, 2062772374u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 220, 3214688631u, 1840632537u, 1096533424u, 807510337u, 3214688161u, 2546146924u, 0, TANH_TOLERANCE, 0},
+{ 221, 3224111690u, 144814872u, 3212698915u, 2282965697u, 3220176895u, 4294955331u, 0, TANH_TOLERANCE, 0},
+{ 222, 1073333582u, 2552499583u, 3229111426u, 1470130815u, 1072532310u, 2637908577u, 0, TANH_TOLERANCE, 0},
+{ 223, 3227364425u, 2858583811u, 1089760910u, 6360994u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 224, 3215042145u, 1614537194u, 1075198900u, 4088705365u, 3215041687u, 1726146854u, 0, TANH_TOLERANCE, 0},
+{ 225, 3228918974u, 3545570051u, 1065221325u, 1629217700u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 226, 1072744324u, 1813392963u, 3235313361u, 3772501596u, 1072234610u, 661468199u, 0, TANH_TOLERANCE, 0},
+{ 227, 3215677054u, 2406734491u, 1042055360u, 89226663u, 3215675353u, 3862932932u, 0, TANH_TOLERANCE, 0},
+{ 228, 3214625449u, 1618759139u, 3194723421u, 3888234802u, 3214625026u, 10619074u, 0, TANH_TOLERANCE, 0},
+{ 229, 1068988736u, 3590035633u, 3212424262u, 2892456615u, 1068984439u, 3719711940u, 0, TANH_TOLERANCE, 0},
+{ 230, 3213011732u, 2431246964u, 3241512456u, 183850734u, 3213011698u, 2928537796u, 0, TANH_TOLERANCE, 0},
+{ 231, 1076918189u, 3088319870u, 3211544311u, 862225364u, 1072693247u, 4294967206u, 0, TANH_TOLERANCE, 0},
+{ 232, 3224808904u, 3495352775u, 1058576726u, 596957268u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 233, 1066476292u, 1839214511u, 3205004060u, 1923240983u, 1066476187u, 2556221634u, 0, TANH_TOLERANCE, 0},
+{ 234, 1069608200u, 739619702u, 3223356436u, 2689885273u, 1069601779u, 2957113876u, 0, TANH_TOLERANCE, 0},
+{ 235, 3216053611u, 2143376228u, 1098306332u, 3760236188u, 3216051952u, 2092758873u, 0, TANH_TOLERANCE, 0},
+{ 236, 1074621795u, 671680995u, 1091262633u, 2315535361u, 1072690572u, 3470829674u, 0, TANH_TOLERANCE, 0},
+{ 237, 3219408869u, 2493598049u, 3194927008u, 1689107592u, 3219255506u, 1019995372u, 0, TANH_TOLERANCE, 0},
+{ 238, 3213058631u, 1578976988u, 1066368383u, 2117279163u, 3213058593u, 1870641139u, 0, TANH_TOLERANCE, 0},
+{ 239, 3221939535u, 3425290087u, 1098487295u, 1263412017u, 3220171861u, 1494771509u, 0, TANH_TOLERANCE, 0},
+{ 240, 3217869948u, 3635396812u, 1070999426u, 3965655689u, 3217838734u, 1233391676u, 0, TANH_TOLERANCE, 0},
+{ 241, 1069633530u, 2183973116u, 1101098363u, 1118613350u, 1069626662u, 1134433172u, 0, TANH_TOLERANCE, 0},
+{ 242, 3221946089u, 199516350u, 1078368488u, 164621458u, 3220171985u, 2155767731u, 0, TANH_TOLERANCE, 0},
+{ 243, 3212871842u, 3570940805u, 3230316437u, 3596080877u, 3212871819u, 1253083702u, 0, TANH_TOLERANCE, 0},
+{ 244, 3217646749u, 980880313u, 1079833442u, 884465057u, 3217625256u, 410689042u, 0, TANH_TOLERANCE, 0},
+{ 245, 1080054180u, 2558179220u, 1052873711u, 1233598120u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 246, 1067038165u, 1909994277u, 1085015978u, 2991527452u, 1067037811u, 2026092876u, 0, TANH_TOLERANCE, 0},
+{ 247, 1070292444u, 1680290941u, 1074309900u, 2943870846u, 1070265607u, 1158571911u, 0, TANH_TOLERANCE, 0},
+{ 248, 1069981892u, 1451927357u, 3228615456u, 1502585517u, 1069966634u, 3731947704u, 0, TANH_TOLERANCE, 0},
+{ 249, 3224677615u, 751136990u, 3230392165u, 3493275472u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 250, 1079491599u, 1209623292u, 3238056647u, 979495322u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 251, 3228404200u, 1717672108u, 1048120593u, 531240316u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 252, 1068854987u, 3548721654u, 1086112947u, 3391817224u, 1068851715u, 761198005u, 0, TANH_TOLERANCE, 0},
+{ 253, 1074691123u, 2758195125u, 1100880260u, 2028440924u, 1072691194u, 767085901u, 0, TANH_TOLERANCE, 0},
+{ 254, 1076883861u, 2750123373u, 3232200256u, 1086294931u, 1072693247u, 4294967055u, 0, TANH_TOLERANCE, 0},
+{ 255, 1065978768u, 2986160931u, 1076097908u, 2540046258u, 1065978681u, 3777549083u, 0, TANH_TOLERANCE, 0},
+{ 256, 3224990842u, 451471221u, 1064816262u, 4187644495u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 257, 1080585860u, 2439500162u, 1065280276u, 1979490284u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 258, 1065581656u, 2283342035u, 1078398157u, 1345997553u, 1065581617u, 4289095703u, 0, TANH_TOLERANCE, 0},
+{ 259, 3219540804u, 179066662u, 1103272172u, 1217337578u, 3219342777u, 584216337u, 0, TANH_TOLERANCE, 0},
+{ 260, 3218902409u, 3779303391u, 3210023352u, 3115946280u, 3218787406u, 3376448869u, 0, TANH_TOLERANCE, 0},
+{ 261, 3213961394u, 286247089u, 1085153597u, 713645369u, 3213961288u, 3547746481u, 0, TANH_TOLERANCE, 0},
+{ 262, 1077941860u, 1468283899u, 1042831668u, 2022736418u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 263, 1076847649u, 3305564080u, 1065483445u, 482392433u, 1072693247u, 4294966877u, 0, TANH_TOLERANCE, 0},
+{ 264, 3216375871u, 2256346551u, 3222430705u, 2071674991u, 3216372332u, 768731038u, 0, TANH_TOLERANCE, 0},
+{ 265, 3216607607u, 2295269094u, 1084451053u, 2773103941u, 3216602078u, 1439428617u, 0, TANH_TOLERANCE, 0},
+{ 266, 1075028218u, 1482721827u, 1092243422u, 3125409590u, 1072693018u, 3260391029u, 0, TANH_TOLERANCE, 0},
+{ 267, 3221065973u, 1381740563u, 1071545057u, 2918235653u, 3220075282u, 1703589823u, 0, TANH_TOLERANCE, 0},
+{ 268, 3226133060u, 1105857967u, 3241990046u, 2703723225u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 269, 1066084243u, 174689677u, 1079333374u, 3947057014u, 1066084138u, 3270329839u, 0, TANH_TOLERANCE, 0},
+{ 270, 1077878947u, 2023082423u, 3242081486u, 1169047927u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 271, 1070817355u, 3742487766u, 1043425732u, 194972788u, 1070779930u, 515450847u, 0, TANH_TOLERANCE, 0},
+{ 272, 3220083283u, 2136071361u, 3211529757u, 993675115u, 3219636252u, 1007735063u, 0, TANH_TOLERANCE, 0},
+{ 273, 3219954837u, 210772141u, 3241441539u, 580731413u, 3219575893u, 3207362503u, 0, TANH_TOLERANCE, 0},
+{ 274, 1078111773u, 1751560711u, 1074522705u, 180987057u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 275, 1071997471u, 2552236599u, 1088658621u, 2112468655u, 1071820440u, 2818435747u, 0, TANH_TOLERANCE, 0},
+{ 276, 3213407865u, 1578223762u, 3224596567u, 2456166162u, 3213407786u, 3283589150u, 0, TANH_TOLERANCE, 0},
+{ 277, 1070041301u, 2110924310u, 1086207177u, 3161208323u, 1070024153u, 713852193u, 0, TANH_TOLERANCE, 0},
+{ 278, 3223474786u, 2352173188u, 1079361728u, 4070222179u, 3220176895u, 4096103338u, 0, TANH_TOLERANCE, 0},
+{ 279, 1080041384u, 2481562701u, 1090937016u, 3809489716u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 280, 3215877019u, 330905705u, 1086260896u, 90264431u, 3215874683u, 2935392842u, 0, TANH_TOLERANCE, 0},
+{ 281, 1065895785u, 4162008079u, 3194387916u, 759522153u, 1065895711u, 1860972907u, 0, TANH_TOLERANCE, 0},
+{ 282, 1075772157u, 1839697482u, 3216442625u, 2211508949u, 1072693247u, 919725479u, 0, TANH_TOLERANCE, 0},
+{ 283, 3227787115u, 3736863454u, 1063475914u, 3150741666u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 284, 1070223067u, 4200269406u, 3236646101u, 1061812176u, 1070199193u, 3353234231u, 0, TANH_TOLERANCE, 0},
+{ 285, 1074975099u, 106027290u, 3234978297u, 2245237549u, 1072692904u, 926646345u, 0, TANH_TOLERANCE, 0},
+{ 286, 3228109966u, 2132131375u, 3250483427u, 3449276437u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 287, 1077854442u, 2334440944u, 1105423490u, 4004336184u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 288, 3220869856u, 4090088208u, 1042030013u, 3898658299u, 3220030793u, 1280038209u, 0, TANH_TOLERANCE, 0},
+{ 289, 3217345248u, 2272831437u, 3253082595u, 2639188641u, 3217333388u, 615613079u, 0, TANH_TOLERANCE, 0},
+{ 290, 1069446748u, 1856594168u, 3189515294u, 4101853676u, 1069437378u, 4022174950u, 0, TANH_TOLERANCE, 0},
+{ 291, 1073915260u, 2211699255u, 3195060344u, 3865018604u, 1072653977u, 3088241704u, 0, TANH_TOLERANCE, 0},
+{ 292, 3227038370u, 996259334u, 3241496889u, 3782673116u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 293, 1080256379u, 3840380763u, 1048674041u, 550040067u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 294, 3229399497u, 95874100u, 3237232828u, 2645647822u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 295, 1065685736u, 3441419500u, 3252367038u, 876710419u, 1065685688u, 249926735u, 0, TANH_TOLERANCE, 0},
+{ 296, 3226010640u, 2560836004u, 3199616543u, 1180840586u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 297, 3221602966u, 2218230392u, 3227485787u, 3947214579u, 3220158774u, 97536700u, 0, TANH_TOLERANCE, 0},
+{ 298, 1075345350u, 1447312532u, 1081476588u, 780366847u, 1072693227u, 2597730715u, 0, TANH_TOLERANCE, 0},
+{ 299, 1073618219u, 2842113832u, 3216156731u, 225159029u, 1072598206u, 38725043u, 0, TANH_TOLERANCE, 0},
+{ 300, 1079242825u, 1601981129u, 3234628869u, 2236538344u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 301, 1076784916u, 2194185737u, 3242362684u, 87913366u, 1072693247u, 4294966204u, 0, TANH_TOLERANCE, 0},
+{ 302, 3215861096u, 1346862963u, 1077836259u, 3604666660u, 3215858816u, 1876833276u, 0, TANH_TOLERANCE, 0},
+{ 303, 3218547435u, 3115209742u, 1099332326u, 1325101950u, 3218484663u, 109142900u, 0, TANH_TOLERANCE, 0},
+{ 304, 3221400314u, 3889223100u, 1053247613u, 3371396923u, 3220137833u, 3785105086u, 0, TANH_TOLERANCE, 0},
+{ 305, 3220477868u, 4163120793u, 1075022670u, 1387631215u, 3219879827u, 2620319036u, 0, TANH_TOLERANCE, 0},
+{ 306, 3218064691u, 1532426189u, 1063168268u, 3397022615u, 3218022962u, 3163394182u, 0, TANH_TOLERANCE, 0},
+{ 307, 3216761961u, 89324166u, 1079206060u, 3429424710u, 3216754762u, 163055010u, 0, TANH_TOLERANCE, 0},
+{ 308, 3214345198u, 747591401u, 1072238381u, 2803213904u, 3214344944u, 1023319056u, 0, TANH_TOLERANCE, 0},
+{ 309, 1078530868u, 271904221u, 1044258318u, 1858545114u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 310, 3222826034u, 314958082u, 3249912496u, 2966213175u, 3220176875u, 594125926u, 0, TANH_TOLERANCE, 0},
+{ 311, 3215005206u, 3119528953u, 3217179014u, 2908718240u, 3215004791u, 983594337u, 0, TANH_TOLERANCE, 0},
+{ 312, 3226738936u, 2018361566u, 1100926600u, 3985805054u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 313, 1073278308u, 409584884u, 3239758947u, 755795129u, 1072515176u, 1543239858u, 0, TANH_TOLERANCE, 0},
+{ 314, 1074723870u, 1819156379u, 3251342302u, 2982669005u, 1072691435u, 1108211960u, 0, TANH_TOLERANCE, 0},
+{ 315, 1080591913u, 2080534280u, 3188254060u, 449171797u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 316, 1079179684u, 168744837u, 3214950009u, 1322217822u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 317, 3229061076u, 3250487255u, 1062120700u, 1876195180u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 318, 3223197752u, 1336400247u, 1098057903u, 3314079581u, 3220176894u, 3333899270u, 0, TANH_TOLERANCE, 0},
+{ 319, 3216261732u, 265025555u, 1063854282u, 3779482256u, 3216258967u, 1006784628u, 0, TANH_TOLERANCE, 0},
+{ 320, 1072543381u, 887044257u, 1054789618u, 2732056261u, 1072126831u, 1641554481u, 0, TANH_TOLERANCE, 0},
+{ 321, 1067932534u, 4027115185u, 3191764868u, 2940199511u, 1067931473u, 3932768465u, 0, TANH_TOLERANCE, 0},
+{ 322, 3216131643u, 2875684421u, 3227459837u, 2251967570u, 3216129613u, 2392090637u, 0, TANH_TOLERANCE, 0},
+{ 323, 1071633020u, 284173546u, 3238823679u, 3557800647u, 1071476604u, 1926910603u, 0, TANH_TOLERANCE, 0},
+{ 324, 1080487040u, 3147771266u, 3220110464u, 2933364246u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 325, 1071144616u, 3366183281u, 3234870843u, 537442654u, 1071071656u, 3460153791u, 0, TANH_TOLERANCE, 0},
+{ 326, 3227341572u, 2529029548u, 3249882819u, 3781513577u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 327, 3219727810u, 1080845539u, 3206760016u, 911778687u, 3219455595u, 167462708u, 0, TANH_TOLERANCE, 0},
+{ 328, 3213971132u, 469586759u, 1091830022u, 3080528840u, 3213971024u, 477322961u, 0, TANH_TOLERANCE, 0},
+{ 329, 1075006224u, 2863108169u, 3225605506u, 2508274250u, 1072692976u, 3779254893u, 0, TANH_TOLERANCE, 0},
+{ 330, 3218167016u, 4080017377u, 3206492941u, 1470284690u, 3218140041u, 2231611050u, 0, TANH_TOLERANCE, 0},
+{ 331, 3217606150u, 3867917386u, 1102054928u, 3504746045u, 3217586177u, 3491769570u, 0, TANH_TOLERANCE, 0},
+{ 332, 1070813735u, 2962134101u, 3244741577u, 3390537350u, 1070776621u, 2796934313u, 0, TANH_TOLERANCE, 0},
+{ 333, 1077716053u, 1702237980u, 1071598971u, 1102587474u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 334, 3216601606u, 2180218657u, 3211592260u, 1206527853u, 3216596136u, 1797664468u, 0, TANH_TOLERANCE, 0},
+{ 335, 3215959112u, 394130786u, 3242511482u, 2437699868u, 3215956476u, 632716331u, 0, TANH_TOLERANCE, 0},
+{ 336, 1066257155u, 849581558u, 3252006507u, 2008614943u, 1066257017u, 2040632549u, 0, TANH_TOLERANCE, 0},
+{ 337, 3218528622u, 3128971673u, 3249137531u, 2773583059u, 3218468083u, 2682372564u, 0, TANH_TOLERANCE, 0},
+{ 338, 1076641258u, 590727700u, 3248651761u, 2183878539u, 1072693247u, 4294957516u, 0, TANH_TOLERANCE, 0},
+{ 339, 1080127109u, 820687580u, 3208143496u, 1402434664u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 340, 3229222163u, 1873709254u, 3245167989u, 44275991u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 341, 3213786001u, 1174874204u, 3208263730u, 2360372288u, 3213785853u, 3281597952u, 0, TANH_TOLERANCE, 0},
+{ 342, 1081834580u, 937573440u, 3208953761u, 211240241u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 343, 3226771718u, 2469774991u, 1043117070u, 3380071805u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 344, 1069655378u, 442507560u, 3254252803u, 3257889649u, 1069648107u, 1967517320u, 0, TANH_TOLERANCE, 0},
+{ 345, 1071996248u, 1854921625u, 1049810168u, 2729627545u, 1071819634u, 511546235u, 0, TANH_TOLERANCE, 0},
+{ 346, 3229546805u, 4001809575u, 3240128649u, 278261523u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 347, 1077787510u, 1793907966u, 3238955714u, 398859249u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 348, 3216681187u, 2511916952u, 3219195283u, 1697158299u, 3216674898u, 3492920521u, 0, TANH_TOLERANCE, 0},
+{ 349, 1073131276u, 3230931724u, 3243897690u, 3508781585u, 1072460728u, 72385801u, 0, TANH_TOLERANCE, 0},
+{ 350, 1081827510u, 1674254897u, 1046547577u, 217148561u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 351, 3218603986u, 3275604304u, 3194840159u, 2991205850u, 3218534188u, 1895030450u, 0, TANH_TOLERANCE, 0},
+{ 352, 3214123743u, 3509997278u, 3248888030u, 3897986511u, 3214123586u, 445233222u, 0, TANH_TOLERANCE, 0},
+{ 353, 1067105379u, 2156824613u, 1042295665u, 1239257646u, 1067104981u, 1993936574u, 0, TANH_TOLERANCE, 0},
+{ 354, 3219555541u, 1073153314u, 3250031627u, 2567234990u, 3219352129u, 655772150u, 0, TANH_TOLERANCE, 0},
+{ 355, 3213662084u, 4261696995u, 3197784432u, 323702024u, 3213661963u, 1132254523u, 0, TANH_TOLERANCE, 0},
+{ 356, 3226913781u, 4075177615u, 3202791065u, 1919006082u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 357, 3225638525u, 386429966u, 1086504491u, 3698826164u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 358, 1075181462u, 1681986446u, 3194985869u, 3072950140u, 1072693176u, 3387376968u, 0, TANH_TOLERANCE, 0},
+{ 359, 3220457661u, 3719038997u, 1055433962u, 3331415058u, 3219869011u, 1568398620u, 0, TANH_TOLERANCE, 0},
+{ 360, 1070186897u, 2420250111u, 3238002206u, 1928661079u, 1070164479u, 752957556u, 0, TANH_TOLERANCE, 0},
+{ 361, 1075622754u, 3679866727u, 3227386672u, 1273835792u, 1072693245u, 2332877410u, 0, TANH_TOLERANCE, 0},
+{ 362, 1065739986u, 2682092368u, 3234222284u, 1325425811u, 1065739931u, 3904488205u, 0, TANH_TOLERANCE, 0},
+{ 363, 1068895525u, 4175172697u, 3208346191u, 2130706153u, 1068891962u, 1281742233u, 0, TANH_TOLERANCE, 0},
+{ 364, 1078458136u, 1200784450u, 1083605096u, 1248595607u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 365, 3219133743u, 1897285171u, 3251296075u, 944966123u, 3218977948u, 629861953u, 0, TANH_TOLERANCE, 0},
+{ 366, 3225642610u, 2270747330u, 3230692631u, 422503284u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 367, 1076780005u, 2857564741u, 1075647403u, 3308906709u, 1072693247u, 4294966119u, 0, TANH_TOLERANCE, 0},
+{ 368, 3216058010u, 1380066948u, 3232612906u, 2613634294u, 3216056331u, 3013519241u, 0, TANH_TOLERANCE, 0},
+{ 369, 1071230888u, 4022784584u, 1060483857u, 3264056381u, 1071145971u, 252615328u, 0, TANH_TOLERANCE, 0},
+{ 370, 1066657500u, 1778509100u, 3213146285u, 2665833973u, 1066657336u, 924195788u, 0, TANH_TOLERANCE, 0},
+{ 371, 3219873028u, 1859175955u, 1079949560u, 4258450607u, 3219534594u, 2888810065u, 0, TANH_TOLERANCE, 0},
+{ 372, 1067151756u, 4128020197u, 1076266146u, 4122840980u, 1067151326u, 2056919845u, 0, TANH_TOLERANCE, 0},
+{ 373, 3214154683u, 2454653987u, 3229487005u, 2977478685u, 3214154514u, 893387246u, 0, TANH_TOLERANCE, 0},
+{ 374, 3229439235u, 1355181872u, 1095308770u, 436846481u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 375, 3227730934u, 2592856453u, 3247825559u, 3195234082u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 376, 3222118023u, 3554670043u, 1091621009u, 3321236467u, 3220174346u, 370328545u, 0, TANH_TOLERANCE, 0},
+{ 377, 1072158561u, 1936670355u, 1095715713u, 2958468553u, 1071921876u, 3097295899u, 0, TANH_TOLERANCE, 0},
+{ 378, 3214311205u, 2960339502u, 1098808013u, 1044068983u, 3214310968u, 2300984713u, 0, TANH_TOLERANCE, 0},
+{ 379, 3215565553u, 4093388677u, 1095478112u, 1735930261u, 3215564151u, 1155295820u, 0, TANH_TOLERANCE, 0},
+{ 380, 1078457390u, 1807398746u, 3195743135u, 4261616162u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 381, 3218731378u, 3250576797u, 1059002384u, 3043079652u, 3218643992u, 3185278812u, 0, TANH_TOLERANCE, 0},
+{ 382, 1072352837u, 666051428u, 3208765404u, 1912684117u, 1072031760u, 472268081u, 0, TANH_TOLERANCE, 0},
+{ 383, 1081467324u, 1949030179u, 1096388934u, 896459246u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 384, 1068980717u, 622499767u, 1066707637u, 1490260486u, 1068976486u, 3778455976u, 0, TANH_TOLERANCE, 0},
+{ 385, 1081522669u, 1490616165u, 3251242436u, 795675736u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 386, 1075701016u, 3662877092u, 3234317146u, 3200513112u, 1072693246u, 2781992228u, 0, TANH_TOLERANCE, 0},
+{ 387, 1076748754u, 1356101968u, 3236536816u, 3062844611u, 1072693247u, 4294965399u, 0, TANH_TOLERANCE, 0},
+{ 388, 3220971216u, 2284484846u, 3219498359u, 3240896015u, 3220055734u, 2376612227u, 0, TANH_TOLERANCE, 0},
+{ 389, 3225273929u, 494503287u, 1092811254u, 142673998u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 390, 3229057244u, 3394882641u, 3225306538u, 364852125u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 391, 3222116035u, 193885269u, 1088149839u, 1359805831u, 3220174326u, 2917860536u, 0, TANH_TOLERANCE, 0},
+{ 392, 3216213422u, 592580907u, 3199560872u, 3086438952u, 3216210947u, 3529159780u, 0, TANH_TOLERANCE, 0},
+{ 393, 1070004424u, 1778008540u, 1049064687u, 73581647u, 1069988466u, 3796959165u, 0, TANH_TOLERANCE, 0},
+{ 394, 3227859230u, 233240285u, 1081923320u, 2710903921u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 395, 1072659495u, 3719878805u, 1079866720u, 3615458228u, 1072178925u, 119062963u, 0, TANH_TOLERANCE, 0},
+{ 396, 3221194724u, 3647632375u, 3247225271u, 3839959621u, 3220096986u, 2905242185u, 0, TANH_TOLERANCE, 0},
+{ 397, 1081381000u, 2232210456u, 3235434773u, 224271737u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 398, 3213975204u, 2134662911u, 3190390590u, 4239009051u, 3213975095u, 1423693863u, 0, TANH_TOLERANCE, 0},
+{ 399, 1075283265u, 2305279897u, 1077668039u, 1854523320u, 1072693215u, 1065080987u, 0, TANH_TOLERANCE, 0},
+{ 400, 3220912835u, 538224650u, 3206153057u, 1379649610u, 3220041922u, 806488060u, 0, TANH_TOLERANCE, 0},
+{ 401, 3215284875u, 3683897920u, 3244167599u, 3647579469u, 3215284065u, 70286255u, 0, TANH_TOLERANCE, 0},
+{ 402, 1077698021u, 2694093608u, 1042775347u, 598406111u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 403, 3218975424u, 872706833u, 1084802480u, 2200602798u, 3218847178u, 243292267u, 0, TANH_TOLERANCE, 0},
+{ 404, 1065408269u, 904146293u, 1060867322u, 1729685598u, 1065408244u, 1452405291u, 0, TANH_TOLERANCE, 0},
+{ 405, 3214569338u, 1894173462u, 3232800651u, 191960416u, 3214568953u, 2872441934u, 0, TANH_TOLERANCE, 0},
+{ 406, 1078642431u, 3521028551u, 1054522089u, 3287274359u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 407, 1079658324u, 959640601u, 3201578263u, 4136915018u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 408, 1071345483u, 1553716379u, 1106027987u, 984725765u, 1071242888u, 3562407504u, 0, TANH_TOLERANCE, 0},
+{ 409, 3226249729u, 2287646644u, 3240329321u, 2276183378u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 410, 1072403478u, 3940225170u, 3199544434u, 997572161u, 1072058226u, 449217216u, 0, TANH_TOLERANCE, 0},
+{ 411, 3219059817u, 36116288u, 3206886566u, 4196602670u, 3218915148u, 4193878759u, 0, TANH_TOLERANCE, 0},
+{ 412, 3225967213u, 3550227562u, 3207257983u, 2747744117u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 413, 1081167454u, 507130047u, 1048359321u, 3229888373u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 414, 3221948202u, 2210969014u, 1081031001u, 1946786091u, 3220172024u, 3807901675u, 0, TANH_TOLERANCE, 0},
+{ 415, 3224772654u, 4059150589u, 3189759234u, 1177045799u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 416, 1078423548u, 2664812822u, 1050343198u, 2034180320u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 417, 3220070573u, 1175750283u, 3235559706u, 1424491340u, 3219630517u, 3733141581u, 0, TANH_TOLERANCE, 0},
+{ 418, 3219147073u, 1630036121u, 3231972785u, 3195479448u, 3218998802u, 3328603128u, 0, TANH_TOLERANCE, 0},
+{ 419, 1077846963u, 2527029044u, 1046927050u, 4000723255u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 420, 1076820069u, 3335703647u, 3237349676u, 3869440059u, 1072693247u, 4294966657u, 0, TANH_TOLERANCE, 0},
+{ 421, 1078850936u, 3888398377u, 3196041693u, 1290567220u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 422, 1071921950u, 3242451480u, 3248384948u, 707431021u, 1071769613u, 2378538733u, 0, TANH_TOLERANCE, 0},
+{ 423, 1075890477u, 2739665123u, 1060777905u, 1733073225u, 1072693247u, 3371085153u, 0, TANH_TOLERANCE, 0},
+{ 424, 1075371333u, 1297274853u, 3208848704u, 3341639139u, 1072693231u, 1169620284u, 0, TANH_TOLERANCE, 0},
+{ 425, 1066493885u, 2228057309u, 1084318902u, 1317851136u, 1066493775u, 2928536763u, 0, TANH_TOLERANCE, 0},
+{ 426, 1077769567u, 270039934u, 3241414679u, 3063626339u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 427, 3220226926u, 83062251u, 3211262173u, 2659016437u, 3219717442u, 1020636511u, 0, TANH_TOLERANCE, 0},
+{ 428, 1080015246u, 3833539373u, 3206667189u, 1567476111u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 429, 3217777984u, 2382776852u, 3249232579u, 1546622468u, 3217751063u, 1818212801u, 0, TANH_TOLERANCE, 0},
+{ 430, 1076099255u, 1714300821u, 1104130938u, 4167591598u, 1072693247u, 4256765263u, 0, TANH_TOLERANCE, 0},
+{ 431, 1067869976u, 2798720100u, 1086978789u, 449990704u, 1067869040u, 1755411038u, 0, TANH_TOLERANCE, 0},
+{ 432, 3223858383u, 4039516226u, 3244344107u, 4272932619u, 3220176895u, 4294396436u, 0, TANH_TOLERANCE, 0},
+{ 433, 3221659865u, 1683007544u, 1091105663u, 3805494321u, 3220162297u, 2272405765u, 0, TANH_TOLERANCE, 0},
+{ 434, 3220852948u, 2072627412u, 1094383324u, 3394151662u, 3220026176u, 3047210052u, 0, TANH_TOLERANCE, 0},
+{ 435, 3220570024u, 1120106427u, 3223631624u, 3404608264u, 3219924834u, 2913979229u, 0, TANH_TOLERANCE, 0},
+{ 436, 1078985629u, 559918757u, 3205077053u, 908100198u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 437, 1065746590u, 2026673913u, 3244833635u, 2844573214u, 1065746534u, 4285564648u, 0, TANH_TOLERANCE, 0},
+{ 438, 3229401435u, 3946837259u, 3234993796u, 3850406820u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 439, 1070062721u, 3139330994u, 1046133568u, 1539650690u, 1070044855u, 2726435592u, 0, TANH_TOLERANCE, 0},
+{ 440, 3225171164u, 1554593884u, 3228899878u, 2813752562u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 441, 1069087916u, 3804703138u, 1072931071u, 2053677923u, 1069082736u, 1742473058u, 0, TANH_TOLERANCE, 0},
+{ 442, 3227038507u, 289355864u, 1078453818u, 2143066338u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 443, 3216522792u, 2157691971u, 1106629150u, 110806409u, 3216518060u, 864673819u, 0, TANH_TOLERANCE, 0},
+{ 444, 1075865563u, 3570399481u, 1085637605u, 180265334u, 1072693247u, 2943779940u, 0, TANH_TOLERANCE, 0},
+{ 445, 3216708822u, 558779875u, 3202046748u, 2338464653u, 3216702231u, 506759401u, 0, TANH_TOLERANCE, 0},
+{ 446, 1066676984u, 1703969219u, 3229797258u, 1417521063u, 1066676812u, 3133190950u, 0, TANH_TOLERANCE, 0},
+{ 447, 3225199349u, 3917440951u, 1051668894u, 3736066983u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 448, 1071043536u, 3106613409u, 1066627453u, 2735392257u, 1070983166u, 1045266683u, 0, TANH_TOLERANCE, 0},
+{ 449, 1071956828u, 2229777605u, 1065061963u, 2405869925u, 1071793347u, 502078975u, 0, TANH_TOLERANCE, 0},
+{ 450, 3225831741u, 3967957902u, 1057416138u, 3459188071u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 451, 1071784938u, 3699016825u, 3249713090u, 796144848u, 1071672076u, 2579985767u, 0, TANH_TOLERANCE, 0},
+{ 452, 3222524940u, 3285165564u, 3211948811u, 401510871u, 3220176688u, 2239026903u, 0, TANH_TOLERANCE, 0},
+{ 453, 1078529018u, 634857910u, 3199607513u, 914218057u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 454, 1076403304u, 2030735578u, 3233855943u, 965677531u, 1072693247u, 4294598139u, 0, TANH_TOLERANCE, 0},
+{ 455, 1075362511u, 3957229084u, 1051050470u, 3123776651u, 1072693230u, 462899214u, 0, TANH_TOLERANCE, 0},
+{ 456, 3221863333u, 162122081u, 3239376395u, 108064594u, 3220170165u, 2709210009u, 0, TANH_TOLERANCE, 0},
+{ 457, 3224688874u, 869031839u, 3225020876u, 1344301606u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 458, 3219676354u, 946696117u, 3231825228u, 1700703647u, 3219425812u, 3436958511u, 0, TANH_TOLERANCE, 0},
+{ 459, 1074444299u, 3394168074u, 1076939786u, 1666995668u, 1072687986u, 368182188u, 0, TANH_TOLERANCE, 0},
+{ 460, 3218211979u, 2488789804u, 3238508333u, 1506943664u, 3218181741u, 3093576615u, 0, TANH_TOLERANCE, 0},
+{ 461, 1072788663u, 3844072288u, 3202592279u, 2630019853u, 1072268032u, 509834618u, 0, TANH_TOLERANCE, 0},
+{ 462, 3220983118u, 1244307192u, 3191297711u, 2540916692u, 3220058377u, 802394392u, 0, TANH_TOLERANCE, 0},
+{ 463, 3215791332u, 2871645739u, 3239081581u, 1440249115u, 3215789285u, 2945497557u, 0, TANH_TOLERANCE, 0},
+{ 464, 1072544937u, 1231934926u, 3236746788u, 603977748u, 1072127558u, 148852321u, 0, TANH_TOLERANCE, 0},
+{ 465, 3214324057u, 2386312545u, 1063169277u, 2715234268u, 3214323814u, 630831394u, 0, TANH_TOLERANCE, 0},
+{ 466, 1077317658u, 915867083u, 1046790892u, 3347417612u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 467, 1081866940u, 3553288373u, 1065698616u, 2906680663u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 468, 1066477746u, 2342364630u, 1051356723u, 4019093203u, 1066477641u, 1308319496u, 0, TANH_TOLERANCE, 0},
+{ 469, 3216897802u, 2911548084u, 1105282515u, 2476735795u, 3216888883u, 64033488u, 0, TANH_TOLERANCE, 0},
+{ 470, 1068298564u, 1836216409u, 1101062307u, 2519592554u, 1068296546u, 2859116598u, 0, TANH_TOLERANCE, 0},
+{ 471, 1073323889u, 1235369496u, 3222946447u, 668087854u, 1072529424u, 3194090941u, 0, TANH_TOLERANCE, 0},
+{ 472, 3217991780u, 2981820811u, 1059838516u, 2845580478u, 3217954221u, 4200696890u, 0, TANH_TOLERANCE, 0},
+{ 473, 3214902934u, 1565550570u, 3217165795u, 4162017137u, 3214902281u, 3653946900u, 0, TANH_TOLERANCE, 0},
+{ 474, 3224668466u, 2808968027u, 1055630096u, 1782326814u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 475, 1069305614u, 1492622658u, 3216653077u, 3972512122u, 1069298089u, 134736289u, 0, TANH_TOLERANCE, 0},
+{ 476, 3222171679u, 2722693603u, 3227814791u, 3169731970u, 3220174817u, 3531603680u, 0, TANH_TOLERANCE, 0},
+{ 477, 3221052359u, 899763203u, 3207606001u, 2804747833u, 3220072675u, 2906226549u, 0, TANH_TOLERANCE, 0},
+{ 478, 3223330293u, 3789058912u, 3228095081u, 4135937628u, 3220176895u, 2491612513u, 0, TANH_TOLERANCE, 0},
+{ 479, 1069636566u, 1682808307u, 3206960335u, 232877759u, 1069629643u, 583610000u, 0, TANH_TOLERANCE, 0},
+{ 480, 3226362846u, 2851963139u, 3246852961u, 2590862592u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 481, 1074908950u, 2422232642u, 3234779662u, 290458310u, 1072692678u, 2454695928u, 0, TANH_TOLERANCE, 0},
+{ 482, 3219059686u, 1082582386u, 1075605675u, 2602133689u, 3218915044u, 2576723185u, 0, TANH_TOLERANCE, 0},
+{ 483, 3226187123u, 1789635787u, 1059414278u, 1048286093u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 484, 1079456174u, 231339448u, 1055573265u, 504907415u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 485, 1071600069u, 1153251200u, 3204617090u, 1772013857u, 1071450530u, 982900350u, 0, TANH_TOLERANCE, 0},
+{ 486, 1080676687u, 1082898276u, 3212089272u, 1449080862u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 487, 1076571101u, 3177299045u, 1058862813u, 809400815u, 1072693247u, 4294938769u, 0, TANH_TOLERANCE, 0},
+{ 488, 3223514518u, 1924429710u, 1056464743u, 3349283177u, 3220176895u, 4186509591u, 0, TANH_TOLERANCE, 0},
+{ 489, 3226599023u, 42238036u, 1042379500u, 2113559863u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 490, 1071052699u, 3304403230u, 3217556703u, 58952646u, 1070991249u, 3007091220u, 0, TANH_TOLERANCE, 0},
+{ 491, 3218960986u, 1645486982u, 3224301095u, 3636267471u, 3218835429u, 1446891056u, 0, TANH_TOLERANCE, 0},
+{ 492, 1071150617u, 619402181u, 3235208235u, 557360557u, 1071076862u, 548691099u, 0, TANH_TOLERANCE, 0},
+{ 493, 3225655482u, 110029735u, 1046937383u, 984375729u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 494, 3213613986u, 4063688092u, 3203235744u, 1049950343u, 3213613874u, 1513497013u, 0, TANH_TOLERANCE, 0},
+{ 495, 1070739227u, 650996069u, 1054971928u, 3953359826u, 1070708162u, 851578057u, 0, TANH_TOLERANCE, 0},
+{ 496, 3222861501u, 66926332u, 1090561839u, 1379780888u, 3220176880u, 360882482u, 0, TANH_TOLERANCE, 0},
+{ 497, 3224016123u, 2803378256u, 1086057989u, 498534626u, 3220176895u, 4294915866u, 0, TANH_TOLERANCE, 0},
+{ 498, 1076327097u, 2846400785u, 1047142525u, 1375153550u, 1072693247u, 4293786378u, 0, TANH_TOLERANCE, 0},
+{ 499, 1066601297u, 2869128958u, 1070972315u, 4246440273u, 1066601153u, 3402349456u, 0, TANH_TOLERANCE, 0},
+{ 500, 1067561146u, 3112381207u, 1044430965u, 3981604561u, 1067560685u, 2566534493u, 0, TANH_TOLERANCE, 0},
+{ 501, 3223914965u, 243303420u, 1093735824u, 1575581926u, 3220176895u, 4294726540u, 0, TANH_TOLERANCE, 0},
+{ 502, 3225506509u, 3218865041u, 3204803496u, 3840388050u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 503, 1067289799u, 336846959u, 1052664471u, 3798336786u, 1067289261u, 2993180106u, 0, TANH_TOLERANCE, 0},
+{ 504, 1068537148u, 3639240976u, 1081202165u, 1844741676u, 1068535631u, 1373601135u, 0, TANH_TOLERANCE, 0},
+{ 505, 3218196249u, 717293069u, 3211534283u, 582401011u, 3218167180u, 496380559u, 0, TANH_TOLERANCE, 0},
+{ 506, 3228893840u, 3766248610u, 3196520332u, 1174437546u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 507, 1076091194u, 756959182u, 3204099341u, 1581804034u, 1072693247u, 4251765017u, 0, TANH_TOLERANCE, 0},
+{ 508, 3217340780u, 3560686300u, 3220980617u, 4277975772u, 3217329035u, 3938865978u, 0, TANH_TOLERANCE, 0},
+{ 509, 3218294684u, 2598148853u, 3217622194u, 3460421008u, 3218257801u, 3777429081u, 0, TANH_TOLERANCE, 0},
+{ 510, 1071963704u, 136600515u, 3209934920u, 3340653128u, 1071797973u, 383375267u, 0, TANH_TOLERANCE, 0},
+{ 511, 1078994518u, 1045480938u, 3251354609u, 4133432965u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 512, 1077967943u, 1630207738u, 3239996829u, 2393354808u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 513, 3213694690u, 3739770117u, 1059520750u, 3959551225u, 3213694562u, 2906185574u, 0, TANH_TOLERANCE, 0},
+{ 514, 3223390473u, 1498861716u, 1091297147u, 847410798u, 3220176895u, 3575048625u, 0, TANH_TOLERANCE, 0},
+{ 515, 1073516688u, 983275314u, 3232538664u, 2244973629u, 1072578453u, 1729614224u, 0, TANH_TOLERANCE, 0},
+{ 516, 1069529329u, 2353103845u, 3235718771u, 2978889966u, 1069518753u, 2585637409u, 0, TANH_TOLERANCE, 0},
+{ 517, 3229337896u, 1546972125u, 3249076079u, 1987349196u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 518, 3225636601u, 2769161072u, 1075207126u, 292616282u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 519, 3215440938u, 36855311u, 1052128202u, 1479039342u, 3215439824u, 3021602545u, 0, TANH_TOLERANCE, 0},
+{ 520, 1076417021u, 2027463605u, 1066023013u, 3369686340u, 1072693247u, 4294667855u, 0, TANH_TOLERANCE, 0},
+{ 521, 3215678541u, 3808681655u, 1054161346u, 1821773119u, 3215676836u, 4252330285u, 0, TANH_TOLERANCE, 0},
+{ 522, 1065851752u, 3175490326u, 3226879970u, 845687760u, 1065851684u, 952657342u, 0, TANH_TOLERANCE, 0},
+{ 523, 1065371665u, 3124482451u, 3242748377u, 3259417226u, 1065371643u, 1068152155u, 0, TANH_TOLERANCE, 0},
+{ 524, 1067265791u, 2751606436u, 3236210939u, 3923142740u, 1067265273u, 4267448991u, 0, TANH_TOLERANCE, 0},
+{ 525, 1079966097u, 2016872044u, 3228408064u, 4201274408u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 526, 3215077894u, 1019916843u, 3219974785u, 1977881787u, 3215077392u, 2106531914u, 0, TANH_TOLERANCE, 0},
+{ 527, 3215207392u, 2060433318u, 1075872515u, 366073725u, 3215206708u, 4083368175u, 0, TANH_TOLERANCE, 0},
+{ 528, 3213200653u, 1098469906u, 1082900695u, 2349346832u, 3213200601u, 543684019u, 0, TANH_TOLERANCE, 0},
+{ 529, 3218363315u, 3011196295u, 3252479932u, 2459281672u, 3218320258u, 2654661612u, 0, TANH_TOLERANCE, 0},
+{ 530, 3221334323u, 2843222682u, 1089275809u, 298982001u, 3220126785u, 2833806156u, 0, TANH_TOLERANCE, 0},
+{ 531, 1080766178u, 914741728u, 3203468059u, 2833809843u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 532, 3225229542u, 1274901962u, 3241535845u, 3759113509u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 533, 3227042074u, 2134927252u, 3253802671u, 3013731444u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 534, 1080326973u, 2230655177u, 3254510616u, 1249674366u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 535, 1071359861u, 717357389u, 1083533731u, 3746683362u, 1071254900u, 3631908499u, 0, TANH_TOLERANCE, 0},
+{ 536, 3220064570u, 834976849u, 3217357661u, 2465861779u, 3219627791u, 2471657761u, 0, TANH_TOLERANCE, 0},
+{ 537, 1066627637u, 1385714428u, 1053358395u, 3007113740u, 1066627484u, 622695525u, 0, TANH_TOLERANCE, 0},
+{ 538, 1068353711u, 599268545u, 3201368210u, 2309854744u, 1068351512u, 1648394891u, 0, TANH_TOLERANCE, 0},
+{ 539, 1073100182u, 2840234388u, 3232496515u, 333365983u, 1072447353u, 2876664628u, 0, TANH_TOLERANCE, 0},
+{ 540, 1066894301u, 3136078996u, 3194520860u, 2650572904u, 1066894030u, 3836763203u, 0, TANH_TOLERANCE, 0},
+{ 541, 3224250507u, 2405805086u, 3251640319u, 324233833u, 3220176895u, 4294965857u, 0, TANH_TOLERANCE, 0},
+{ 542, 1081533322u, 2589598340u, 3254677807u, 952438812u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 543, 3213232021u, 1922837702u, 3216892718u, 3535907549u, 3213231965u, 3296837648u, 0, TANH_TOLERANCE, 0},
+{ 544, 3226838652u, 261447440u, 3209805849u, 1150571079u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 545, 1079028016u, 4026487528u, 1073152064u, 27340691u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 546, 3222832236u, 338765118u, 1086225786u, 3207238249u, 3220176876u, 440058419u, 0, TANH_TOLERANCE, 0},
+{ 547, 3215057071u, 1085283176u, 3187775111u, 1601194210u, 3215056595u, 1400160228u, 0, TANH_TOLERANCE, 0},
+{ 548, 1078937261u, 3031712790u, 3252307859u, 170666844u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 549, 3220959383u, 3148395674u, 1041913758u, 3306391490u, 3220053050u, 2562078751u, 0, TANH_TOLERANCE, 0},
+{ 550, 3217005710u, 2205233857u, 3208100078u, 3993195511u, 3216995244u, 2747014119u, 0, TANH_TOLERANCE, 0},
+{ 551, 1071893912u, 4282766727u, 1072820377u, 1874778218u, 1071750211u, 660651612u, 0, TANH_TOLERANCE, 0},
+{ 552, 3218173124u, 2920860798u, 3218070226u, 3104066154u, 3218145720u, 693930883u, 0, TANH_TOLERANCE, 0},
+{ 553, 3217533263u, 969991373u, 3250596895u, 1734386152u, 3217515838u, 2631270782u, 0, TANH_TOLERANCE, 0},
+{ 554, 3226332906u, 1218740205u, 3239802737u, 2610078504u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 555, 3217565578u, 1485218325u, 3220870240u, 3591664613u, 3217547052u, 140249651u, 0, TANH_TOLERANCE, 0},
+{ 556, 3216754207u, 690157417u, 3190850619u, 4192347699u, 3216747099u, 499816119u, 0, TANH_TOLERANCE, 0},
+{ 557, 1079276594u, 4009839784u, 1079670252u, 394167192u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 558, 3225122053u, 961532417u, 1092588071u, 2923790239u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 559, 3216462003u, 4174125604u, 1050682630u, 2169701868u, 3216457793u, 919186931u, 0, TANH_TOLERANCE, 0},
+{ 560, 3227363835u, 4146748230u, 1087373950u, 2481478351u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 561, 1073842138u, 3984715440u, 1050421618u, 2446142566u, 1072641499u, 1791854957u, 0, TANH_TOLERANCE, 0},
+{ 562, 1076832374u, 936290150u, 1100614426u, 3625806370u, 1072693247u, 4294966767u, 0, TANH_TOLERANCE, 0},
+{ 563, 1080913584u, 1866615265u, 3215651428u, 2337013350u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 564, 3229081054u, 712227971u, 1106004723u, 973148499u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 565, 3223796743u, 3409813738u, 3244817008u, 1933503498u, 3220176895u, 4293505094u, 0, TANH_TOLERANCE, 0},
+{ 566, 1075749429u, 3180389060u, 3228735703u, 83422217u, 1072693247u, 280657473u, 0, TANH_TOLERANCE, 0},
+{ 567, 1074732996u, 556972671u, 3204582372u, 841555801u, 1072691497u, 1078894527u, 0, TANH_TOLERANCE, 0},
+{ 568, 1072864873u, 4189151332u, 1080874032u, 706326922u, 1072320445u, 3126467056u, 0, TANH_TOLERANCE, 0},
+{ 569, 1079374091u, 198291836u, 1057281892u, 2188836928u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 570, 1074946267u, 1219449298u, 3228734687u, 3504562743u, 1072692819u, 2750855966u, 0, TANH_TOLERANCE, 0},
+{ 571, 3217153376u, 1776099219u, 1094316777u, 4188083896u, 3217145833u, 645707833u, 0, TANH_TOLERANCE, 0},
+{ 572, 3214817228u, 2614400266u, 1073750227u, 3003203347u, 3214816653u, 4118899096u, 0, TANH_TOLERANCE, 0},
+{ 573, 3219225558u, 2959351406u, 1105603716u, 311851587u, 3219119060u, 3153940070u, 0, TANH_TOLERANCE, 0},
+{ 574, 1076155826u, 865443613u, 1097532516u, 3622237781u, 1072693247u, 4278853323u, 0, TANH_TOLERANCE, 0},
+{ 575, 3223398058u, 447506102u, 3195759295u, 3603669725u, 3220176895u, 3653727122u, 0, TANH_TOLERANCE, 0},
+{ 576, 1079015805u, 3934398273u, 1040996422u, 2968621268u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 577, 3215614193u, 784208771u, 1088764788u, 2182296421u, 3215612665u, 879108182u, 0, TANH_TOLERANCE, 0},
+{ 578, 3228409347u, 1527590526u, 3206961556u, 2823164069u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 579, 3225109795u, 3876699591u, 3207481130u, 4028148535u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 580, 1076236154u, 2164249756u, 1059857743u, 1785169952u, 1072693247u, 4290237064u, 0, TANH_TOLERANCE, 0},
+{ 581, 1078172521u, 2079273665u, 1080303860u, 625760474u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 582, 3222291804u, 3636214836u, 1068367620u, 2932621925u, 3220175667u, 2559685817u, 0, TANH_TOLERANCE, 0},
+{ 583, 1066015468u, 4274131512u, 1047707755u, 92550763u, 1066015376u, 1477695260u, 0, TANH_TOLERANCE, 0},
+{ 584, 3215599337u, 2648933384u, 1084603503u, 3534304873u, 3215597848u, 2856479001u, 0, TANH_TOLERANCE, 0},
+{ 585, 1070854691u, 3216750767u, 3191088629u, 547482628u, 1070813952u, 2964537256u, 0, TANH_TOLERANCE, 0},
+{ 586, 1070521958u, 1420360746u, 1080063101u, 1690029499u, 1070483630u, 3376375773u, 0, TANH_TOLERANCE, 0},
+{ 587, 3223563908u, 1908572179u, 1080112083u, 1228319033u, 3220176895u, 4243921216u, 0, TANH_TOLERANCE, 0},
+{ 588, 1067032546u, 500312015u, 3212368508u, 3864619086u, 1067032195u, 2888994469u, 0, TANH_TOLERANCE, 0},
+{ 589, 3221335610u, 4211343447u, 1087492676u, 4272583781u, 3220127028u, 929411503u, 0, TANH_TOLERANCE, 0},
+{ 590, 1080518026u, 2382118000u, 1042665328u, 567154882u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 591, 1069547778u, 1435344339u, 3216303171u, 2275988178u, 1069537173u, 3641349188u, 0, TANH_TOLERANCE, 0},
+{ 592, 3219781499u, 3403659753u, 3218043030u, 1926480488u, 3219485664u, 1805105515u, 0, TANH_TOLERANCE, 0},
+{ 593, 1074743231u, 1198845185u, 3225556149u, 1130089684u, 1072691564u, 1130724028u, 0, TANH_TOLERANCE, 0},
+{ 594, 3221614466u, 2183928090u, 1048403956u, 963834821u, 3220159548u, 2632844817u, 0, TANH_TOLERANCE, 0},
+{ 595, 1080701440u, 2120625396u, 1041006976u, 2137548527u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 596, 1080355870u, 586700956u, 1059670521u, 303891699u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 597, 3221091650u, 2509132460u, 1102827530u, 2205707903u, 3220080026u, 3892042078u, 0, TANH_TOLERANCE, 0},
+{ 598, 3217443509u, 1229308263u, 3209170414u, 4206576047u, 3217428916u, 1972214507u, 0, TANH_TOLERANCE, 0},
+{ 599, 3221979137u, 4078010749u, 3199236456u, 733478972u, 3220172566u, 2325284033u, 0, TANH_TOLERANCE, 0},
+{ 600, 3215538376u, 4277541051u, 3199806921u, 397102023u, 3215537041u, 1038730987u, 0, TANH_TOLERANCE, 0},
+{ 601, 3214849381u, 900999594u, 3234720188u, 2530214248u, 3214848778u, 517726932u, 0, TANH_TOLERANCE, 0},
+{ 602, 1074446396u, 4000609478u, 1096577064u, 4148592328u, 1072688027u, 4126215607u, 0, TANH_TOLERANCE, 0},
+{ 603, 1067542452u, 2154187873u, 3224392607u, 3957250362u, 1067542013u, 1359750955u, 0, TANH_TOLERANCE, 0},
+{ 604, 3221316336u, 2867079200u, 1101870326u, 921212001u, 3220123272u, 596464385u, 0, TANH_TOLERANCE, 0},
+{ 605, 3223784706u, 674547716u, 1063216239u, 3929755226u, 3220176895u, 4293210269u, 0, TANH_TOLERANCE, 0},
+{ 606, 3225735787u, 3158182449u, 1043794244u, 3259056345u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 607, 3225242320u, 3002823940u, 1059511739u, 2832435794u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 608, 3220450550u, 2196511929u, 1049973941u, 3672092877u, 3219865119u, 1534045465u, 0, TANH_TOLERANCE, 0},
+{ 609, 1068263848u, 3655292191u, 1086438127u, 3567072906u, 1068261939u, 3330397833u, 0, TANH_TOLERANCE, 0},
+{ 610, 3227458308u, 1617573614u, 3201863123u, 3090723732u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 611, 3223764196u, 679893506u, 3211547753u, 824081024u, 3220176895u, 4292564626u, 0, TANH_TOLERANCE, 0},
+{ 612, 1076947613u, 2285242807u, 1084999409u, 2221731406u, 1072693247u, 4294967260u, 0, TANH_TOLERANCE, 0},
+{ 613, 3217219424u, 1935990727u, 1088822246u, 1058156518u, 3217210539u, 673583441u, 0, TANH_TOLERANCE, 0},
+{ 614, 1080819070u, 521023584u, 1059186903u, 4245163857u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 615, 1081871044u, 2312887617u, 3191771354u, 1885370807u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 616, 3228836567u, 1796441468u, 1100030327u, 2772711004u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 617, 3216859732u, 2095685003u, 1077984448u, 2100773742u, 3216851319u, 3546547663u, 0, TANH_TOLERANCE, 0},
+{ 618, 3213926140u, 2892538035u, 1042396334u, 4162200338u, 3213926045u, 98121596u, 0, TANH_TOLERANCE, 0},
+{ 619, 3226997111u, 2177698116u, 3227557177u, 150832500u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 620, 3213582312u, 607966734u, 3236250630u, 4164600559u, 3213582205u, 1317441634u, 0, TANH_TOLERANCE, 0},
+{ 621, 3219535540u, 2830122967u, 1046096700u, 3713346883u, 3219339417u, 3473358335u, 0, TANH_TOLERANCE, 0},
+{ 622, 3224615051u, 2314640506u, 3203696416u, 3276228872u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 623, 3219203763u, 469331883u, 3249037349u, 2999233437u, 3219086102u, 85688925u, 0, TANH_TOLERANCE, 0},
+{ 624, 1079556219u, 560886625u, 1091899487u, 748795120u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 625, 1067712650u, 2958421324u, 1092569414u, 3235243477u, 1067711984u, 933574582u, 0, TANH_TOLERANCE, 0},
+{ 626, 3213998017u, 3221475559u, 1043038304u, 915608434u, 3213997901u, 3819757689u, 0, TANH_TOLERANCE, 0},
+{ 627, 1073294682u, 3007808652u, 3216682290u, 2531019474u, 1072520426u, 1456133354u, 0, TANH_TOLERANCE, 0},
+{ 628, 3226300359u, 1767658578u, 3237045269u, 2313128318u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 629, 3219006500u, 1926845182u, 1066835624u, 1783256828u, 3218872347u, 1882092066u, 0, TANH_TOLERANCE, 0},
+{ 630, 1065741453u, 90378038u, 1057168870u, 164358218u, 1065741398u, 591806547u, 0, TANH_TOLERANCE, 0},
+{ 631, 1081693348u, 1610524680u, 1085283851u, 2903496007u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 632, 1075489858u, 4274321404u, 3202913591u, 720121831u, 1072693241u, 979506729u, 0, TANH_TOLERANCE, 0},
+{ 633, 1067982472u, 2034778236u, 1071133763u, 1413236391u, 1067981304u, 1075351172u, 0, TANH_TOLERANCE, 0},
+{ 634, 1067840244u, 1489112261u, 1076691395u, 348210906u, 1067839363u, 3489382366u, 0, TANH_TOLERANCE, 0},
+{ 635, 3217229677u, 2797651324u, 3224410527u, 2374818327u, 3217220570u, 3663838511u, 0, TANH_TOLERANCE, 0},
+{ 636, 1077801496u, 1823161666u, 3197810695u, 3119680047u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 637, 1072218792u, 3420950657u, 1087084743u, 2136638961u, 1071957381u, 4227318367u, 0, TANH_TOLERANCE, 0},
+{ 638, 1073047952u, 3554566429u, 1062907717u, 2736702589u, 1072423253u, 3954224834u, 0, TANH_TOLERANCE, 0},
+{ 639, 3227062875u, 2928437580u, 3187765027u, 1393427873u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 640, 3218738745u, 189447067u, 1051643315u, 828663513u, 3218650265u, 2565529360u, 0, TANH_TOLERANCE, 0},
+{ 641, 1068042509u, 2852350928u, 1045683757u, 673354280u, 1068041203u, 1273807154u, 0, TANH_TOLERANCE, 0},
+{ 642, 1065966397u, 3589563265u, 3248741629u, 812657927u, 1065966312u, 3995661865u, 0, TANH_TOLERANCE, 0},
+{ 643, 3213679498u, 1766416701u, 1100392103u, 2185373290u, 3213679373u, 1105851242u, 0, TANH_TOLERANCE, 0},
+{ 644, 3220275389u, 3763582673u, 3191965790u, 388374829u, 3219753918u, 630121662u, 0, TANH_TOLERANCE, 0},
+{ 645, 1075440832u, 1187403069u, 1075300235u, 336640304u, 1072693238u, 671323862u, 0, TANH_TOLERANCE, 0},
+{ 646, 1081906155u, 1718795752u, 3243118752u, 683369237u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 647, 3218132129u, 1863545307u, 1069449477u, 3418627399u, 3218107521u, 2978760047u, 0, TANH_TOLERANCE, 0},
+{ 648, 1072747022u, 3295607249u, 1068878592u, 1633297809u, 1072236708u, 1219129914u, 0, TANH_TOLERANCE, 0},
+{ 649, 1070481463u, 2585980994u, 3236670483u, 1286750688u, 1070445359u, 1671965836u, 0, TANH_TOLERANCE, 0},
+{ 650, 1067128553u, 15816845u, 3233249283u, 2491924775u, 1067128138u, 4149105436u, 0, TANH_TOLERANCE, 0},
+{ 651, 1065481693u, 1051983351u, 1049180786u, 1474421917u, 1065481663u, 304342688u, 0, TANH_TOLERANCE, 0},
+{ 652, 3216978165u, 2003816032u, 1086050104u, 668090487u, 3216968109u, 3936271285u, 0, TANH_TOLERANCE, 0},
+{ 653, 1068284677u, 3671484625u, 1067020039u, 430024694u, 1068282704u, 213223715u, 0, TANH_TOLERANCE, 0},
+{ 654, 1072639990u, 3991830201u, 3207808714u, 1021245839u, 1072170471u, 4236962281u, 0, TANH_TOLERANCE, 0},
+{ 655, 1071534423u, 4255801807u, 3207681716u, 1926756877u, 1071398029u, 3730360966u, 0, TANH_TOLERANCE, 0},
+{ 656, 1067869425u, 4167786896u, 1077097744u, 1775517981u, 1067868490u, 3350202937u, 0, TANH_TOLERANCE, 0},
+{ 657, 1076164794u, 3187518564u, 1082437406u, 944672491u, 1072693247u, 4280914270u, 0, TANH_TOLERANCE, 0},
+{ 658, 1068240650u, 953085192u, 3227310828u, 3459155777u, 1068238811u, 2397589293u, 0, TANH_TOLERANCE, 0},
+{ 659, 1072648234u, 1908555460u, 1073640207u, 260441967u, 1072174059u, 6166727u, 0, TANH_TOLERANCE, 0},
+{ 660, 1072462486u, 250762477u, 1072582645u, 2886742039u, 1072087959u, 2719323898u, 0, TANH_TOLERANCE, 0},
+{ 661, 3228885910u, 786180031u, 3197734769u, 2788918312u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 662, 3225074643u, 2055912467u, 3244244909u, 1394142937u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 663, 1072758713u, 91984146u, 3222252812u, 4126276047u, 1072245701u, 402520945u, 0, TANH_TOLERANCE, 0},
+{ 664, 1075048683u, 3942715706u, 3239316352u, 410676547u, 1072693051u, 3851512815u, 0, TANH_TOLERANCE, 0},
+{ 665, 3215335062u, 86296211u, 1085850694u, 649202596u, 3215334160u, 3540055039u, 0, TANH_TOLERANCE, 0},
+{ 666, 3226492024u, 3069064472u, 3237358008u, 23209276u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 667, 1074943832u, 1867297860u, 1072956607u, 2513414118u, 1072692811u, 2618045138u, 0, TANH_TOLERANCE, 0},
+{ 668, 3228513251u, 3171788768u, 3235208783u, 162138697u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 669, 1075436999u, 1245110700u, 1081653954u, 2584994077u, 1072693237u, 3711677726u, 0, TANH_TOLERANCE, 0},
+{ 670, 3226635752u, 3347226587u, 1058962932u, 2291943376u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 671, 1070433398u, 966940828u, 1060726420u, 2798041096u, 1070399821u, 3118560199u, 0, TANH_TOLERANCE, 0},
+{ 672, 1072793759u, 2487340727u, 3223786370u, 4105954991u, 1072271731u, 2389258654u, 0, TANH_TOLERANCE, 0},
+{ 673, 3228193553u, 1671039260u, 1086395032u, 3745833360u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 674, 1069661709u, 651714217u, 1047070645u, 2130549237u, 1069654319u, 221802056u, 0, TANH_TOLERANCE, 0},
+{ 675, 3217601491u, 1423000172u, 3247822717u, 1551488170u, 3217581688u, 181509837u, 0, TANH_TOLERANCE, 0},
+{ 676, 3216277371u, 921077236u, 3213332351u, 1431049019u, 3216274507u, 3009781141u, 0, TANH_TOLERANCE, 0},
+{ 677, 1071704599u, 655715547u, 3190985373u, 1527556471u, 1071578785u, 2205486276u, 0, TANH_TOLERANCE, 0},
+{ 678, 3222412099u, 4110878657u, 3251297180u, 879739345u, 3220176405u, 1214346782u, 0, TANH_TOLERANCE, 0},
+{ 679, 1076367578u, 2623955764u, 1093699897u, 1216444475u, 1072693247u, 4294330559u, 0, TANH_TOLERANCE, 0},
+{ 680, 1078274115u, 107442539u, 3239767031u, 1149813329u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 681, 3224008056u, 1761361082u, 3226030205u, 1121849716u, 3220176895u, 4294909129u, 0, TANH_TOLERANCE, 0},
+{ 682, 3226455627u, 2534144722u, 1044223733u, 3512285706u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 683, 3218137533u, 4073670723u, 1050729852u, 3034818849u, 3218112568u, 2667121844u, 0, TANH_TOLERANCE, 0},
+{ 684, 1081013054u, 1421423503u, 1060278048u, 1397153092u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 685, 3220567557u, 1649206019u, 1104525577u, 1267104290u, 3219923717u, 2769521020u, 0, TANH_TOLERANCE, 0},
+{ 686, 3213419345u, 3775270392u, 1040251850u, 68667319u, 3213419265u, 2545621795u, 0, TANH_TOLERANCE, 0},
+{ 687, 3216913812u, 3099226694u, 3254103006u, 4020102648u, 3216904673u, 4012492726u, 0, TANH_TOLERANCE, 0},
+{ 688, 3216271776u, 3718441177u, 3215643451u, 4032951536u, 3216268948u, 3943411919u, 0, TANH_TOLERANCE, 0},
+{ 689, 1066151467u, 508048351u, 3210196713u, 1707937896u, 1066151350u, 2449381217u, 0, TANH_TOLERANCE, 0},
+{ 690, 3215388843u, 2784738160u, 1073435430u, 1109346010u, 3215387838u, 1879123550u, 0, TANH_TOLERANCE, 0},
+{ 691, 3222579562u, 3331916473u, 3238794568u, 2707019594u, 3220176759u, 980840063u, 0, TANH_TOLERANCE, 0},
+{ 692, 1078502606u, 3093165197u, 1072894805u, 2853215019u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 693, 3219727867u, 2135797997u, 1048399559u, 2941926126u, 3219455627u, 2769844582u, 0, TANH_TOLERANCE, 0},
+{ 694, 1067305348u, 2083412145u, 3249335391u, 507212448u, 1067304798u, 248712640u, 0, TANH_TOLERANCE, 0},
+{ 695, 1074315175u, 4270176401u, 3246546709u, 3288753319u, 1072684643u, 2903274486u, 0, TANH_TOLERANCE, 0},
+{ 696, 3228009919u, 3692175292u, 3197271515u, 3989064196u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 697, 3228623066u, 3111924274u, 1066772558u, 59281695u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 698, 1071878215u, 2135245466u, 3208804313u, 3846547392u, 1071739222u, 3014085290u, 0, TANH_TOLERANCE, 0},
+{ 699, 1079149171u, 972051266u, 3222814246u, 3539700586u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 700, 3216597418u, 330951080u, 1079189813u, 583922384u, 3216591988u, 4271149752u, 0, TANH_TOLERANCE, 0},
+{ 701, 1077057180u, 1711944085u, 1104170032u, 643991456u, 1072693247u, 4294967295u, 0, TANH_TOLERANCE, 0},
+{ 702, 3224992365u, 2072550721u, 3250147641u, 4280263530u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 703, 3213944226u, 1566376352u, 1067251433u, 72984588u, 3213944125u, 3738816808u, 0, TANH_TOLERANCE, 0},
+{ 704, 1079547929u, 3103043079u, 1045853123u, 410067497u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 705, 3219818221u, 1910366299u, 1081770885u, 634683073u, 3219505645u, 2911026815u, 0, TANH_TOLERANCE, 0},
+{ 706, 1075239232u, 2226525875u, 3224149290u, 2126302825u, 1072693202u, 736485286u, 0, TANH_TOLERANCE, 0},
+{ 707, 1073150247u, 1383818978u, 3193885723u, 1220372650u, 1072468548u, 1453165635u, 0, TANH_TOLERANCE, 0},
+{ 708, 1071725823u, 1953339096u, 1077176252u, 1476516558u, 1071611118u, 3094019794u, 0, TANH_TOLERANCE, 0},
+{ 709, 1072383456u, 1306277326u, 1079089150u, 4093716191u, 1072047867u, 2345709570u, 0, TANH_TOLERANCE, 0},
+{ 710, 3223711603u, 51750045u, 3242913901u, 4256866157u, 3220176895u, 4289606629u, 0, TANH_TOLERANCE, 0},
+{ 711, 3213959335u, 2163853087u, 3232053146u, 2962422808u, 3213959230u, 3607978116u, 0, TANH_TOLERANCE, 0},
+{ 712, 1074468369u, 1618388148u, 3233154824u, 3711953164u, 1072688447u, 772390444u, 0, TANH_TOLERANCE, 0},
+{ 713, 3227993634u, 357108214u, 3202294604u, 2306775262u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 714, 3216584150u, 2571356437u, 3249064063u, 2394851808u, 3216578850u, 265180082u, 0, TANH_TOLERANCE, 0},
+{ 715, 3224196635u, 4273880094u, 1103698617u, 3578832032u, 3220176895u, 4294964023u, 0, TANH_TOLERANCE, 0},
+{ 716, 3223989517u, 2091068742u, 3228270226u, 3980489730u, 3220176895u, 4294890111u, 0, TANH_TOLERANCE, 0},
+{ 717, 3222725296u, 2772307714u, 1051008486u, 32546576u, 3220176851u, 36562416u, 0, TANH_TOLERANCE, 0},
+{ 718, 3225500575u, 2143788498u, 3195498043u, 3630119231u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 719, 3215410151u, 2527385594u, 3240503648u, 3482095012u, 3215409103u, 223410783u, 0, TANH_TOLERANCE, 0},
+{ 720, 3226440159u, 2690097362u, 1068598730u, 2360266862u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 721, 1070392205u, 2673272949u, 1082639557u, 522449749u, 1070360701u, 382258917u, 0, TANH_TOLERANCE, 0},
+{ 722, 1081355475u, 3596379400u, 3242016775u, 2002293002u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 723, 1080565288u, 4113224369u, 3222122439u, 2152316893u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 724, 3220796716u, 31662602u, 1047721249u, 1747087514u, 3220009792u, 1786415707u, 0, TANH_TOLERANCE, 0},
+{ 725, 3228443661u, 2489659568u, 1097051253u, 277506957u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 726, 3213421930u, 3850162281u, 3213841942u, 438724093u, 3213421850u, 978459012u, 0, TANH_TOLERANCE, 0},
+{ 727, 1079663895u, 2431814052u, 1075518084u, 2672434118u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 728, 3227434095u, 391606792u, 1048184750u, 4168944276u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 729, 3227869472u, 457529672u, 3201090276u, 72407935u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 730, 3220817871u, 3954981400u, 1052053242u, 2411049585u, 3220016147u, 3511268541u, 0, TANH_TOLERANCE, 0},
+{ 731, 1076742907u, 485456950u, 1088415093u, 1655397424u, 1072693247u, 4294965222u, 0, TANH_TOLERANCE, 0},
+{ 732, 3215011644u, 1551748070u, 3236871640u, 1329701152u, 3215011221u, 2829038109u, 0, TANH_TOLERANCE, 0},
+{ 733, 3221493394u, 3099222537u, 1104984570u, 4293792842u, 3220149432u, 808086103u, 0, TANH_TOLERANCE, 0},
+{ 734, 3216532617u, 3603065260u, 3197735968u, 2402359253u, 3216527797u, 1764416133u, 0, TANH_TOLERANCE, 0},
+{ 735, 3215601800u, 3961208159u, 3219057584u, 2340553876u, 3215600305u, 2344462802u, 0, TANH_TOLERANCE, 0},
+{ 736, 1073833333u, 4014841779u, 3197672877u, 3697233334u, 1072639754u, 1246670554u, 0, TANH_TOLERANCE, 0},
+{ 737, 3219567113u, 1403876392u, 3254028950u, 921363393u, 3219359416u, 4132459186u, 0, TANH_TOLERANCE, 0},
+{ 738, 1082085982u, 1862576361u, 3194031708u, 2476290925u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 739, 1067487560u, 1454212851u, 1088378861u, 3400401866u, 1067487181u, 2318239370u, 0, TANH_TOLERANCE, 0},
+{ 740, 1074406809u, 552676385u, 3188635745u, 3778112968u, 1072687178u, 1070255472u, 0, TANH_TOLERANCE, 0},
+{ 741, 3219555010u, 1199568671u, 3225679997u, 46947405u, 3219351793u, 2517024871u, 0, TANH_TOLERANCE, 0},
+{ 742, 1074539809u, 2596231448u, 3253943728u, 2219151748u, 1072689591u, 1666921402u, 0, TANH_TOLERANCE, 0},
+{ 743, 1071769915u, 4119719558u, 3222036299u, 1275474618u, 1071660967u, 2845583729u, 0, TANH_TOLERANCE, 0},
+{ 744, 3226277175u, 3347296825u, 1101507910u, 1254014794u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 745, 1076779960u, 673775040u, 1070743626u, 244126093u, 1072693247u, 4294966118u, 0, TANH_TOLERANCE, 0},
+{ 746, 3216831338u, 1832066983u, 1051358028u, 3262483417u, 3216823291u, 840194706u, 0, TANH_TOLERANCE, 0},
+{ 747, 1074413872u, 3962610501u, 3198598777u, 849269178u, 1072687339u, 1695789171u, 0, TANH_TOLERANCE, 0},
+{ 748, 3224988140u, 2497516122u, 3254374111u, 2821429629u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 749, 1074139136u, 2805941787u, 3217785843u, 779131141u, 1072676440u, 1089483228u, 0, TANH_TOLERANCE, 0},
+{ 750, 3222714382u, 723423605u, 1084533420u, 627282213u, 3220176847u, 436675031u, 0, TANH_TOLERANCE, 0},
+{ 751, 3220141984u, 4292778869u, 1078101071u, 1676860147u, 3219662074u, 436286370u, 0, TANH_TOLERANCE, 0},
+{ 752, 1074191350u, 3528118587u, 3194648564u, 2363260897u, 1072679465u, 3158136682u, 0, TANH_TOLERANCE, 0},
+{ 753, 3214917975u, 1307010018u, 1061248120u, 1468743108u, 3214917308u, 1887206257u, 0, TANH_TOLERANCE, 0},
+{ 754, 3227708771u, 107905661u, 3226089788u, 1943427674u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 755, 3213396365u, 760006940u, 1054265604u, 1749976597u, 3213396288u, 1015782970u, 0, TANH_TOLERANCE, 0},
+{ 756, 3225190472u, 2787503556u, 1081282610u, 1195841206u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 757, 3213822252u, 545462045u, 3208381743u, 1981311808u, 3213822096u, 1895015686u, 0, TANH_TOLERANCE, 0},
+{ 758, 1070669320u, 3657978397u, 1104463616u, 3501253426u, 1070643315u, 3340057444u, 0, TANH_TOLERANCE, 0},
+{ 759, 1067709649u, 1804177501u, 3210693633u, 3606766729u, 1067708987u, 2207822296u, 0, TANH_TOLERANCE, 0},
+{ 760, 1074759727u, 1336278526u, 1043741618u, 3165279431u, 1072691666u, 3920633442u, 0, TANH_TOLERANCE, 0},
+{ 761, 1069103403u, 1599382075u, 1058018527u, 4212580517u, 1069098074u, 3887268780u, 0, TANH_TOLERANCE, 0},
+{ 762, 3217988086u, 3007589929u, 3202026547u, 2792028313u, 3217950731u, 2952417810u, 0, TANH_TOLERANCE, 0},
+{ 763, 3228965522u, 1866066996u, 1060329048u, 3727175322u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 764, 3215193859u, 150890940u, 1056025306u, 3082724735u, 3215193196u, 1187099324u, 0, TANH_TOLERANCE, 0},
+{ 765, 1071446123u, 80400395u, 1093584426u, 3478941315u, 1071326261u, 48805005u, 0, TANH_TOLERANCE, 0},
+{ 766, 3228571942u, 4050954182u, 3219263194u, 2537475930u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 767, 1071133327u, 2881752155u, 3212589299u, 2559651278u, 1071061848u, 3503400932u, 0, TANH_TOLERANCE, 0},
+{ 768, 3228044784u, 440309030u, 3214267461u, 3788040806u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 769, 1080553671u, 918813144u, 3208535698u, 1607035904u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 770, 1066254699u, 2497054124u, 1089139147u, 2549609010u, 1066254562u, 1621993583u, 0, TANH_TOLERANCE, 0},
+{ 771, 1066960585u, 790219083u, 1054657139u, 2797979479u, 1066960277u, 3785521302u, 0, TANH_TOLERANCE, 0},
+{ 772, 1070364312u, 1149462078u, 1095765205u, 3879963182u, 1070334162u, 791933143u, 0, TANH_TOLERANCE, 0},
+{ 773, 3216361301u, 2684353926u, 3205212854u, 1732474928u, 3216357868u, 1244044034u, 0, TANH_TOLERANCE, 0},
+{ 774, 1079508325u, 2742237025u, 1051317716u, 3386396147u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 775, 1071619594u, 3408320912u, 1103071166u, 4233059513u, 1071466003u, 2250109031u, 0, TANH_TOLERANCE, 0},
+{ 776, 1071155004u, 1077495917u, 1088399968u, 433115118u, 1071080664u, 2213941110u, 0, TANH_TOLERANCE, 0},
+{ 777, 3217130484u, 841366493u, 1051716814u, 4121125128u, 3217123372u, 2948102763u, 0, TANH_TOLERANCE, 0},
+{ 778, 1070923540u, 321857207u, 1089128010u, 1149988239u, 1070876210u, 287366057u, 0, TANH_TOLERANCE, 0},
+{ 779, 3226668295u, 799866606u, 3197637091u, 3924438208u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 780, 3213082986u, 2002049816u, 1077053447u, 2240354761u, 3213082946u, 1332721886u, 0, TANH_TOLERANCE, 0},
+{ 781, 3222714827u, 478939968u, 1097035749u, 1066716440u, 3220176847u, 1148390538u, 0, TANH_TOLERANCE, 0},
+{ 782, 3224085033u, 1653104725u, 1088548129u, 81977716u, 3220176895u, 4294949325u, 0, TANH_TOLERANCE, 0},
+{ 783, 3215735644u, 3899475018u, 3189694084u, 3330093036u, 3215733772u, 108014255u, 0, TANH_TOLERANCE, 0},
+{ 784, 1077778247u, 2612450289u, 1079065127u, 603380842u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 785, 1080713847u, 3962735564u, 1101570429u, 1372490825u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 786, 1069486080u, 1479841439u, 1059312257u, 541504905u, 1069476148u, 1330025412u, 0, TANH_TOLERANCE, 0},
+{ 787, 1075516450u, 2626148789u, 1057571099u, 4121656076u, 1072693242u, 2025230023u, 0, TANH_TOLERANCE, 0},
+{ 788, 1075321933u, 1902560314u, 1043130231u, 3557671562u, 1072693223u, 2642910265u, 0, TANH_TOLERANCE, 0},
+{ 789, 3214801292u, 41779312u, 1081626342u, 831171823u, 3214800731u, 509784550u, 0, TANH_TOLERANCE, 0},
+{ 790, 1069665436u, 1393168821u, 1066457405u, 1381616968u, 1069657975u, 1271360986u, 0, TANH_TOLERANCE, 0},
+{ 791, 1073386717u, 3756584649u, 3222267229u, 1423157432u, 1072547282u, 502039030u, 0, TANH_TOLERANCE, 0},
+{ 792, 3229269850u, 1894912556u, 1042426694u, 155024547u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 793, 3214327880u, 35164295u, 3203391785u, 1037041084u, 3214327634u, 3083858517u, 0, TANH_TOLERANCE, 0},
+{ 794, 1076388871u, 3957875950u, 3232195211u, 1590756436u, 1072693247u, 4294507195u, 0, TANH_TOLERANCE, 0},
+{ 795, 1071990050u, 1447585080u, 1071279485u, 1107922438u, 1071815538u, 3161902907u, 0, TANH_TOLERANCE, 0},
+{ 796, 1067224038u, 981897615u, 1051856116u, 430357614u, 1067223553u, 3187978985u, 0, TANH_TOLERANCE, 0},
+{ 797, 3222281335u, 395145384u, 3219821938u, 50586510u, 3220175565u, 2064559548u, 0, TANH_TOLERANCE, 0},
+{ 798, 1072921640u, 750827797u, 1082862669u, 230466783u, 1072355622u, 1074964933u, 0, TANH_TOLERANCE, 0},
+{ 799, 1077231635u, 1365083575u, 3204848310u, 1700831722u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 800, 3220187542u, 344241827u, 1071538935u, 2715566077u, 3219685795u, 4089371904u, 0, TANH_TOLERANCE, 0},
+{ 801, 3227659912u, 4069301823u, 3193208760u, 2949125229u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 802, 1081211291u, 3585711710u, 1065801594u, 2302229267u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 803, 3214041900u, 709803845u, 1048741487u, 2296910194u, 3214041770u, 2865692980u, 0, TANH_TOLERANCE, 0},
+{ 804, 3214252299u, 744421179u, 1069302001u, 2659232829u, 3214252089u, 1383114050u, 0, TANH_TOLERANCE, 0},
+{ 805, 1078155904u, 1799949903u, 3192522886u, 4212149209u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 806, 3217642838u, 145234164u, 3250614064u, 912384201u, 3217621494u, 2301037676u, 0, TANH_TOLERANCE, 0},
+{ 807, 3225830600u, 2784620507u, 1102812948u, 3531481022u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 808, 3229139567u, 383952592u, 3205659905u, 3633194728u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 809, 3216059164u, 3792395543u, 1070072378u, 3864816376u, 3216057481u, 392473577u, 0, TANH_TOLERANCE, 0},
+{ 810, 3217899185u, 2115553675u, 1066288499u, 3538377867u, 3217866517u, 4139851017u, 0, TANH_TOLERANCE, 0},
+{ 811, 3229006513u, 1230026762u, 1090719723u, 440819880u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 812, 3214518020u, 2991290482u, 1096886719u, 1097971167u, 3214517669u, 464087563u, 0, TANH_TOLERANCE, 0},
+{ 813, 1077465688u, 1098035020u, 3230900504u, 1479059095u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 814, 3229036868u, 1719428427u, 3188631907u, 3707377409u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 815, 1068964805u, 3748932896u, 1084908557u, 1325384361u, 1068960705u, 3897061665u, 0, TANH_TOLERANCE, 0},
+{ 816, 1076315468u, 3979168763u, 1057455255u, 2454615952u, 1072693247u, 4293557095u, 0, TANH_TOLERANCE, 0},
+{ 817, 1068835624u, 1449164578u, 1056960316u, 1654931641u, 1068832484u, 4023712312u, 0, TANH_TOLERANCE, 0},
+{ 818, 1073536162u, 2120487381u, 3226298974u, 2364226633u, 1072582528u, 2771358353u, 0, TANH_TOLERANCE, 0},
+{ 819, 1074022852u, 1074268944u, 1065730444u, 280016852u, 1072667115u, 442967526u, 0, TANH_TOLERANCE, 0},
+{ 820, 3216036896u, 3315127889u, 3236295594u, 2900924954u, 3216035310u, 3763110972u, 0, TANH_TOLERANCE, 0},
+{ 821, 3215300259u, 2246037502u, 1049691002u, 1496066550u, 3215299421u, 2831592142u, 0, TANH_TOLERANCE, 0},
+{ 822, 3213978379u, 4191285446u, 3217936236u, 2382392789u, 3213978269u, 3840860417u, 0, TANH_TOLERANCE, 0},
+{ 823, 1078153244u, 640099844u, 1042152237u, 2064279383u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 824, 1075719134u, 3468560824u, 1093251038u, 310958750u, 1072693246u, 3531801958u, 0, TANH_TOLERANCE, 0},
+{ 825, 1080011184u, 1413568905u, 1100941106u, 1627289946u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 826, 3213569646u, 3797143370u, 3195497539u, 3843275034u, 3213569542u, 1270881281u, 0, TANH_TOLERANCE, 0},
+{ 827, 3229008721u, 2806642640u, 3201943068u, 2515980718u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 828, 1077440132u, 632580632u, 1078673506u, 3259601317u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 829, 3216709215u, 3309678799u, 1049337078u, 3056787074u, 3216702620u, 1653632981u, 0, TANH_TOLERANCE, 0},
+{ 830, 3221495289u, 2341164249u, 1080834967u, 2810890005u, 3220149628u, 3005879799u, 0, TANH_TOLERANCE, 0},
+{ 831, 1072262554u, 932124675u, 1093915797u, 662682630u, 1071982362u, 3057316859u, 0, TANH_TOLERANCE, 0},
+{ 832, 3228258571u, 1367996113u, 3251723684u, 2974064663u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 833, 1074987851u, 323437999u, 1090499064u, 901457511u, 1072692936u, 364088582u, 0, TANH_TOLERANCE, 0},
+{ 834, 3225293116u, 4184941840u, 3196770014u, 2458988443u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 835, 1077132524u, 2023065054u, 3211994098u, 2734612965u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 836, 1071414726u, 3679267365u, 3237728785u, 1699558211u, 1071300429u, 3732495732u, 0, TANH_TOLERANCE, 0},
+{ 837, 1077593250u, 1826799031u, 1078709629u, 3986905229u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 838, 1068572425u, 351061688u, 3194386466u, 4105857588u, 1068570755u, 499330562u, 0, TANH_TOLERANCE, 0},
+{ 839, 1068808070u, 1365244058u, 1064457319u, 1452191426u, 1068805114u, 1012629484u, 0, TANH_TOLERANCE, 0},
+{ 840, 1071462417u, 2463030625u, 3215975031u, 3773488326u, 1071339602u, 4185089979u, 0, TANH_TOLERANCE, 0},
+{ 841, 3229256575u, 752664055u, 1065110394u, 1835931663u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 842, 1077559328u, 3496172149u, 1089617208u, 109068701u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 843, 3215960879u, 1636966254u, 1086098766u, 2016598298u, 3215958236u, 2999409352u, 0, TANH_TOLERANCE, 0},
+{ 844, 1067708534u, 3551516956u, 1097969102u, 1317953425u, 1067707874u, 2624410332u, 0, TANH_TOLERANCE, 0},
+{ 845, 3223540761u, 2977627788u, 1045339018u, 516058480u, 3220176895u, 4222297914u, 0, TANH_TOLERANCE, 0},
+{ 846, 3224825666u, 3901731263u, 3189566462u, 32272932u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 847, 1074136068u, 1956025297u, 3246628529u, 3840733905u, 1072676243u, 765228757u, 0, TANH_TOLERANCE, 0},
+{ 848, 1080943668u, 561057891u, 3198494340u, 4271027193u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 849, 3228909825u, 692989850u, 3242630588u, 2492225971u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 850, 3218062309u, 3439913962u, 1067477011u, 2973333638u, 3218020721u, 3960544974u, 0, TANH_TOLERANCE, 0},
+{ 851, 3219236869u, 877613377u, 1044917899u, 809672798u, 3219132175u, 1311516534u, 0, TANH_TOLERANCE, 0},
+{ 852, 3222171454u, 905426932u, 1046417457u, 1086320855u, 3220174816u, 151676798u, 0, TANH_TOLERANCE, 0},
+{ 853, 3227472261u, 2645567288u, 1051258339u, 557182478u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 854, 3216640862u, 186287752u, 1061342054u, 4054003419u, 3216634997u, 2519513944u, 0, TANH_TOLERANCE, 0},
+{ 855, 1079440881u, 3506889716u, 3243866036u, 519056371u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 856, 1065722725u, 2171898436u, 3246911982u, 1091500784u, 1065722672u, 3180746426u, 0, TANH_TOLERANCE, 0},
+{ 857, 3226870457u, 368493885u, 3222871893u, 1419055230u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 858, 1078319084u, 2010971245u, 3188804530u, 1518695799u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 859, 3218009421u, 1239207795u, 1040192984u, 2199481342u, 3217970879u, 3474753941u, 0, TANH_TOLERANCE, 0},
+{ 860, 3218318669u, 4264613432u, 3203460972u, 3558930895u, 3218279698u, 4197303057u, 0, TANH_TOLERANCE, 0},
+{ 861, 1068125075u, 3772748958u, 3227667376u, 309688336u, 1068123562u, 1489711826u, 0, TANH_TOLERANCE, 0},
+{ 862, 3223403009u, 1077949160u, 1075769893u, 2405271377u, 3220176895u, 3700387119u, 0, TANH_TOLERANCE, 0},
+{ 863, 1078203664u, 3751608506u, 3232278094u, 930375071u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 864, 3215394369u, 1518334131u, 3205247482u, 791756713u, 3215393353u, 103206669u, 0, TANH_TOLERANCE, 0},
+{ 865, 1067240397u, 2825203170u, 3245054001u, 1822981827u, 1067239900u, 1515673819u, 0, TANH_TOLERANCE, 0},
+{ 866, 1080093419u, 514474738u, 1089072073u, 3300845441u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 867, 3219536978u, 247369460u, 3197320093u, 687450958u, 3219340336u, 978352660u, 0, TANH_TOLERANCE, 0},
+{ 868, 1081092750u, 2722237629u, 1058272368u, 90602316u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 869, 3217535619u, 1845900544u, 3231520830u, 3389751458u, 3217518115u, 4229139541u, 0, TANH_TOLERANCE, 0},
+{ 870, 3227612301u, 737689911u, 3195377751u, 3462616966u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 871, 3221441232u, 3620285831u, 1055501023u, 2708056059u, 3220143434u, 3921561u, 0, TANH_TOLERANCE, 0},
+{ 872, 3220513572u, 4073430285u, 1056206159u, 172017902u, 3219898084u, 1973970623u, 0, TANH_TOLERANCE, 0},
+{ 873, 3219161094u, 2799176222u, 1052706894u, 4083892667u, 3219020605u, 733511961u, 0, TANH_TOLERANCE, 0},
+{ 874, 3216959621u, 1562351330u, 1069705601u, 1247765260u, 3216949835u, 4127746042u, 0, TANH_TOLERANCE, 0},
+{ 875, 3224328691u, 51853475u, 3189080201u, 2783553144u, 3220176895u, 4294966860u, 0, TANH_TOLERANCE, 0},
+{ 876, 3220502929u, 3851781549u, 3241598113u, 514064046u, 3219892754u, 382488881u, 0, TANH_TOLERANCE, 0},
+{ 877, 1080123021u, 934745487u, 3248182437u, 2798581921u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 878, 3219373949u, 2948648757u, 3232177250u, 4278702895u, 3219231339u, 732036294u, 0, TANH_TOLERANCE, 0},
+{ 879, 1073534300u, 4259101461u, 1061606772u, 84229920u, 1072582145u, 1140039901u, 0, TANH_TOLERANCE, 0},
+{ 880, 3215901351u, 3891230598u, 1095924595u, 3049217547u, 3215898929u, 4061131300u, 0, TANH_TOLERANCE, 0},
+{ 881, 1074207325u, 3806018919u, 3243191216u, 280177341u, 1072680278u, 119798727u, 0, TANH_TOLERANCE, 0},
+{ 882, 1070061714u, 3900344258u, 1063647809u, 4206745890u, 1070043882u, 4225813589u, 0, TANH_TOLERANCE, 0},
+{ 883, 3222464456u, 2126253040u, 3207248026u, 808507485u, 3220176566u, 3729330534u, 0, TANH_TOLERANCE, 0},
+{ 884, 1076653133u, 3465685634u, 3230391053u, 3754958214u, 1072693247u, 4294959137u, 0, TANH_TOLERANCE, 0},
+{ 885, 1080840988u, 461094531u, 1101110393u, 1316091396u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 886, 1071271770u, 4197635149u, 1091873113u, 1240127141u, 1071180785u, 300469245u, 0, TANH_TOLERANCE, 0},
+{ 887, 1074333893u, 118603800u, 1105304898u, 4291425557u, 1072685235u, 2023333141u, 0, TANH_TOLERANCE, 0},
+{ 888, 3219720621u, 3744663425u, 3212482771u, 953662066u, 3219451491u, 1728510743u, 0, TANH_TOLERANCE, 0},
+{ 889, 1076782697u, 3564196690u, 3228101916u, 904305212u, 1072693247u, 4294966166u, 0, TANH_TOLERANCE, 0},
+{ 890, 1067207479u, 3566257266u, 3235138829u, 2734275140u, 1067207008u, 396173854u, 0, TANH_TOLERANCE, 0},
+{ 891, 3227171261u, 606044282u, 3241318094u, 2446416887u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 892, 1065744532u, 2336116589u, 3197594053u, 2296925138u, 1065744477u, 1318672729u, 0, TANH_TOLERANCE, 0},
+{ 893, 1070101995u, 907670625u, 3240769036u, 1827119006u, 1070082762u, 1452920190u, 0, TANH_TOLERANCE, 0},
+{ 894, 1066487279u, 2818710946u, 3246059905u, 553394170u, 1066487171u, 3077210550u, 0, TANH_TOLERANCE, 0},
+{ 895, 3213621342u, 4099522736u, 3232742168u, 3718083858u, 3213621228u, 4270652673u, 0, TANH_TOLERANCE, 0},
+{ 896, 1078739788u, 1059279404u, 1080245336u, 175941677u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 897, 1082121019u, 1650862428u, 1061816101u, 1723201723u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 898, 3226429902u, 2462163405u, 3218946201u, 3876535372u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 899, 1076004278u, 495844137u, 1073721460u, 772777946u, 1072693247u, 4132231651u, 0, TANH_TOLERANCE, 0},
+{ 900, 1068143970u, 458757721u, 3245680321u, 3609892707u, 1068142406u, 1203906592u, 0, TANH_TOLERANCE, 0},
+{ 901, 3214254476u, 2533012202u, 1079980803u, 3592268374u, 3214254265u, 3301236168u, 0, TANH_TOLERANCE, 0},
+{ 902, 3216996268u, 4108274117u, 1063045844u, 571992389u, 3216985944u, 4098370140u, 0, TANH_TOLERANCE, 0},
+{ 903, 1077984359u, 3541110973u, 1096296754u, 3118427427u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 904, 3213902987u, 1213941007u, 1105433735u, 2172963370u, 3213902897u, 2586721683u, 0, TANH_TOLERANCE, 0},
+{ 905, 1079027567u, 272190288u, 1095452370u, 4026581530u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 906, 1079855269u, 2843638672u, 1100510986u, 3190536898u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 907, 1076417062u, 2014317727u, 3247389683u, 2428462015u, 1072693247u, 4294668042u, 0, TANH_TOLERANCE, 0},
+{ 908, 1078248077u, 688442200u, 1047852515u, 3035186380u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 909, 1074567060u, 1010095511u, 3221288076u, 405287991u, 1072689952u, 558226479u, 0, TANH_TOLERANCE, 0},
+{ 910, 3229225943u, 2983070435u, 1089546472u, 2907918480u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 911, 1076696665u, 81928569u, 1056007286u, 2740556321u, 1072693247u, 4294963097u, 0, TANH_TOLERANCE, 0},
+{ 912, 1066276691u, 2076689028u, 1081558619u, 3039159031u, 1066276549u, 2514845407u, 0, TANH_TOLERANCE, 0},
+{ 913, 1067230382u, 1376882094u, 3211003208u, 1296286481u, 1067229892u, 3821406691u, 0, TANH_TOLERANCE, 0},
+{ 914, 1074871434u, 744133164u, 3200943494u, 955832216u, 1072692489u, 3864723433u, 0, TANH_TOLERANCE, 0},
+{ 915, 3223144598u, 176522478u, 1069999908u, 2891249491u, 3220176894u, 705332519u, 0, TANH_TOLERANCE, 0},
+{ 916, 1065584698u, 3685851715u, 3187829932u, 2363997529u, 1065584660u, 211014232u, 0, TANH_TOLERANCE, 0},
+{ 917, 1065409879u, 3974431579u, 1052505165u, 2589067816u, 1065409854u, 4054288065u, 0, TANH_TOLERANCE, 0},
+{ 918, 3213516885u, 3819109588u, 1048561488u, 969143351u, 3213516790u, 1379942954u, 0, TANH_TOLERANCE, 0},
+{ 919, 1073687973u, 4246896124u, 1104584799u, 1940097860u, 1072609810u, 1441804246u, 0, TANH_TOLERANCE, 0},
+{ 920, 1066912836u, 2228686199u, 3220231833u, 777624847u, 1066912555u, 3407343459u, 0, TANH_TOLERANCE, 0},
+{ 921, 3224127274u, 4189906558u, 3203004203u, 854242364u, 3220176895u, 4294957863u, 0, TANH_TOLERANCE, 0},
+{ 922, 1081890311u, 4089051094u, 3227282692u, 2693170723u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 923, 1066855127u, 1278581412u, 3239296746u, 1774588717u, 1066854876u, 2541069805u, 0, TANH_TOLERANCE, 0},
+{ 924, 3221324110u, 1794845306u, 1104879344u, 4135865182u, 3220124819u, 2264282728u, 0, TANH_TOLERANCE, 0},
+{ 925, 1081283231u, 754938390u, 1061291430u, 2010786993u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 926, 1073581409u, 2034303731u, 3240176537u, 314147356u, 1072591461u, 214940394u, 0, TANH_TOLERANCE, 0},
+{ 927, 3224109162u, 567588900u, 3195452230u, 1421366017u, 3220176895u, 4294954860u, 0, TANH_TOLERANCE, 0},
+{ 928, 3221944027u, 2708717091u, 1071975971u, 1364590470u, 3220171946u, 3353839435u, 0, TANH_TOLERANCE, 0},
+{ 929, 3229068611u, 3461956134u, 3207820115u, 1605709634u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 930, 1071594452u, 1497124553u, 1051715442u, 916736957u, 1071446066u, 3751200891u, 0, TANH_TOLERANCE, 0},
+{ 931, 1070002699u, 834914365u, 1064667143u, 2839166298u, 1069986795u, 4288384363u, 0, TANH_TOLERANCE, 0},
+{ 932, 1069862861u, 2139295776u, 1062816721u, 914592523u, 1069850968u, 1656920492u, 0, TANH_TOLERANCE, 0},
+{ 933, 3213754179u, 851569132u, 1058503154u, 1399378677u, 3213754038u, 2687975447u, 0, TANH_TOLERANCE, 0},
+{ 934, 3224100513u, 3897202342u, 3245382590u, 246600375u, 3220176895u, 4294953106u, 0, TANH_TOLERANCE, 0},
+{ 935, 3222314580u, 3620429520u, 1055627557u, 229305u, 3220175863u, 2092509791u, 0, TANH_TOLERANCE, 0},
+{ 936, 1076618801u, 3641997865u, 3206673888u, 93720614u, 1072693247u, 4294953519u, 0, TANH_TOLERANCE, 0},
+{ 937, 3222565555u, 32766320u, 1062084905u, 3668443038u, 3220176743u, 3446256579u, 0, TANH_TOLERANCE, 0},
+{ 938, 3222250420u, 2039713492u, 3248699388u, 1346210821u, 3220175356u, 3537038166u, 0, TANH_TOLERANCE, 0},
+{ 939, 1078369952u, 1335820726u, 3191756860u, 1808427032u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 940, 1070879947u, 650692001u, 1103515670u, 2253348763u, 1070836863u, 2862482944u, 0, TANH_TOLERANCE, 0},
+{ 941, 3213415283u, 2372623300u, 3210185343u, 3200572848u, 3213415203u, 3712949820u, 0, TANH_TOLERANCE, 0},
+{ 942, 1080873125u, 762317532u, 3194595095u, 3192607437u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 943, 1070651309u, 217775356u, 3232827087u, 2969367386u, 1070626514u, 2747666722u, 0, TANH_TOLERANCE, 0},
+{ 944, 1069755463u, 3621353969u, 1077994795u, 3873976266u, 1069746150u, 163612163u, 0, TANH_TOLERANCE, 0},
+{ 945, 1078719075u, 268372152u, 3221764390u, 3216978962u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 946, 3227563243u, 142942404u, 1075322987u, 1746449109u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 947, 1081986200u, 496534875u, 3254522293u, 2532372502u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 948, 3228205445u, 2999955409u, 3222793392u, 1868977643u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 949, 1074319042u, 3353193428u, 3218469191u, 3326244297u, 1072684769u, 1756315237u, 0, TANH_TOLERANCE, 0},
+{ 950, 1072413103u, 73646871u, 3231442171u, 3711510104u, 1072063156u, 1138124218u, 0, TANH_TOLERANCE, 0},
+{ 951, 1077900612u, 218135177u, 3198908856u, 3082199105u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 952, 1072262784u, 1061628117u, 3248859043u, 86776158u, 1071982492u, 946844398u, 0, TANH_TOLERANCE, 0},
+{ 953, 3217921858u, 938869114u, 1087911145u, 2416710759u, 3217888034u, 157440628u, 0, TANH_TOLERANCE, 0},
+{ 954, 1079848192u, 2970853959u, 3239543429u, 1887505029u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 955, 3225145875u, 1337895935u, 1076463812u, 1172733328u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 956, 1068014296u, 1469010822u, 3229583535u, 551399515u, 1068013056u, 745955852u, 0, TANH_TOLERANCE, 0},
+{ 957, 1074118123u, 1849711538u, 1049053713u, 1744276190u, 1072675043u, 2479863773u, 0, TANH_TOLERANCE, 0},
+{ 958, 3226410140u, 2976596113u, 3192137295u, 3033242648u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 959, 1079824113u, 876810930u, 3197470945u, 2571587447u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 960, 3226042170u, 4007797282u, 3225853845u, 4069319648u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 961, 1067202926u, 3840538373u, 1043189552u, 3668774580u, 1067202458u, 2670505126u, 0, TANH_TOLERANCE, 0},
+{ 962, 3220757432u, 200857661u, 3229758439u, 3359367736u, 3219997347u, 873171144u, 0, TANH_TOLERANCE, 0},
+{ 963, 3227826349u, 111868139u, 3227902082u, 2366064003u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 964, 1066215262u, 3510904416u, 3222131653u, 3822770497u, 1066215133u, 3308089664u, 0, TANH_TOLERANCE, 0},
+{ 965, 3226947075u, 789151814u, 1099269239u, 2958956055u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 966, 1076290712u, 722163228u, 1105524559u, 1534462169u, 1072693247u, 4292909799u, 0, TANH_TOLERANCE, 0},
+{ 967, 1066509006u, 2207037106u, 3208952465u, 1231254630u, 1066508892u, 1078364023u, 0, TANH_TOLERANCE, 0},
+{ 968, 3215709852u, 3838689849u, 3198769679u, 1302617170u, 3215708057u, 808607773u, 0, TANH_TOLERANCE, 0},
+{ 969, 1076501722u, 2527556476u, 3240373426u, 124352692u, 1072693247u, 4294885069u, 0, TANH_TOLERANCE, 0},
+{ 970, 3215269445u, 3502371499u, 1043411944u, 4190072016u, 3215268661u, 2097129318u, 0, TANH_TOLERANCE, 0},
+{ 971, 1070967598u, 1798470077u, 3200116917u, 3421833729u, 1070915714u, 623414423u, 0, TANH_TOLERANCE, 0},
+{ 972, 3214486476u, 3653237931u, 3204255012u, 3683870669u, 3214486144u, 2924063688u, 0, TANH_TOLERANCE, 0},
+{ 973, 1069317222u, 376530104u, 1073853547u, 565755892u, 1069309555u, 442847759u, 0, TANH_TOLERANCE, 0},
+{ 974, 3226775211u, 558292492u, 1051772749u, 4267873474u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 975, 3221626981u, 509637100u, 3212030069u, 215050379u, 3220160354u, 521049736u, 0, TANH_TOLERANCE, 0},
+{ 976, 1078425613u, 3571665665u, 3188628584u, 757824767u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 977, 3220042217u, 998858159u, 1063077962u, 436029885u, 3219617538u, 1003022105u, 0, TANH_TOLERANCE, 0},
+{ 978, 3217481301u, 996300405u, 3193842624u, 80548098u, 3217465556u, 1091661181u, 0, TANH_TOLERANCE, 0},
+{ 979, 3222557384u, 3876129407u, 3215332180u, 2226970413u, 3220176734u, 59833828u, 0, TANH_TOLERANCE, 0},
+{ 980, 3225026041u, 200013509u, 3224552716u, 414878724u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 981, 3224325637u, 309319541u, 1048979765u, 1261662434u, 3220176895u, 4294966839u, 0, TANH_TOLERANCE, 0},
+{ 982, 1077718303u, 4062255924u, 3224274128u, 4289485681u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+{ 983, 3224601748u, 1611969213u, 1053890378u, 3774617276u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 984, 1075169883u, 1752164782u, 3239587974u, 612223386u, 1072693170u, 909326654u, 0, TANH_TOLERANCE, 0},
+{ 985, 1065663030u, 2024044989u, 1074932678u, 3259111307u, 1065662984u, 399148943u, 0, TANH_TOLERANCE, 0},
+{ 986, 1068936158u, 2564965629u, 1093571065u, 169360454u, 1068932286u, 1946243873u, 0, TANH_TOLERANCE, 0},
+{ 987, 1077016178u, 1860101737u, 3191222372u, 1676437468u, 1072693247u, 4294967291u, 0, TANH_TOLERANCE, 0},
+{ 988, 1070288728u, 588387057u, 3192103292u, 2495288012u, 1070262055u, 2204208977u, 0, TANH_TOLERANCE, 0},
+{ 989, 3214127225u, 659070058u, 1073095700u, 1393632068u, 3214127066u, 672489002u, 0, TANH_TOLERANCE, 0},
+{ 990, 3220828991u, 4276187829u, 3217553330u, 1868253275u, 3220019394u, 2922613580u, 0, TANH_TOLERANCE, 0},
+{ 991, 3222171696u, 2085481575u, 3215994784u, 800910002u, 3220174817u, 4105080085u, 0, TANH_TOLERANCE, 0},
+{ 992, 1069517748u, 1950570756u, 3200582211u, 941022151u, 1069507347u, 2421477801u, 0, TANH_TOLERANCE, 0},
+{ 993, 1070113280u, 2075610870u, 3250142022u, 3605152103u, 1070093642u, 2347649094u, 0, TANH_TOLERANCE, 0},
+{ 994, 3216567890u, 3792931748u, 3204857863u, 804393211u, 3216562745u, 455243881u, 0, TANH_TOLERANCE, 0},
+{ 995, 3229529122u, 3430071177u, 3226288311u, 3652522729u, 3220176896u, 0u, 0, TANH_TOLERANCE, 0},
+{ 996, 3215994766u, 236884699u, 3227874605u, 2193269825u, 3215993354u, 3732743523u, 0, TANH_TOLERANCE, 0},
+{ 997, 1071228049u, 2744231849u, 1046186036u, 771053722u, 1071143543u, 2181158284u, 0, TANH_TOLERANCE, 0},
+{ 998, 1076656004u, 3000189819u, 1096500901u, 2057239777u, 1072693247u, 4294959487u, 0, TANH_TOLERANCE, 0},
+{ 999, 1078106941u, 205759408u, 3244643377u, 2702292618u, 1072693248u, 0u, 0, TANH_TOLERANCE, 0},
+
+
+// AUTOMATICALLY GENERATED VECTORS STOP
+
+};
+
+#endif // CYGONCE_LIBM_TANH_H multiple inclusion protection
+
+// EOF tanh.h
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/tanhf.c b/ecos/packages/language/c/libm/current/tests/vectors/tanhf.c
new file mode 100644
index 0000000..7ddab4b
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/tanhf.c
@@ -0,0 +1,115 @@
+//===========================================================================
+//
+// tanhf.c
+//
+// Test of tanhf() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage:
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+// Declarations for test system:
+//
+// TESTCASE_TYPE=CYG_TEST_MODULE
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include <cyg/infra/testcase.h> // Test infrastructure
+#include <math.h> // Header for this package
+#include <sys/ieeefp.h> // Cyg_libm_ieee_float_shape_type
+#include "vectors/vector_support_float.h"// extra support for math tests
+
+#include "vectors/tanhf.h"
+
+// FUNCTIONS
+
+static void
+test( CYG_ADDRWORD data )
+{
+ cyg_ucount32 vec_size;
+ cyg_bool ret;
+
+ vec_size = sizeof(tanhf_vec) / sizeof(Cyg_libm_test_float_vec_t);
+ ret = doTestVecFloat( (CYG_ADDRWORD) &tanhf, CYG_LIBM_TEST_VEC_FLOAT,
+ CYG_LIBM_TEST_VEC_NONE, CYG_LIBM_TEST_VEC_FLOAT,
+ &tanhf_vec[0], vec_size );
+
+ if (ret==true)
+ {
+ CYG_TEST_PASS("tanhf() is stable");
+ } // if
+ else
+ {
+ CYG_TEST_FAIL("tanhf() failed tests");
+ } // else
+
+ CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for Math "
+ "library tanhf() function");
+} // test()
+
+
+int
+main(int argc, char *argv[])
+{
+ CYG_TEST_INIT();
+
+ CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for Math library "
+ "tanhf() function");
+
+ START_TEST( test );
+
+ CYG_TEST_PASS_FINISH("Testing is not applicable to this configuration");
+
+} // main()
+
+
+// EOF tanhf.c
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/tanhf.h b/ecos/packages/language/c/libm/current/tests/vectors/tanhf.h
new file mode 100644
index 0000000..2634201
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/tanhf.h
@@ -0,0 +1,1234 @@
+#ifndef CYGONCE_LIBM_SCABNF_H
+#define CYGONCE_LIBM_SCABNF_H
+//===========================================================================
+//
+// tanhf.h
+//
+// Test vectors for testing of tanhf() math library function
+//
+//===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//===========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):
+// Contributors: visar, ilijak
+// Date: 1998-02-13
+// Purpose:
+// Description:
+// Usage: #include "vectors/tanhf.h"
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include "vectors/vector_support_float.h"// extra support for math tests
+
+#define TANHF_TOLERANCE 1.0E-04
+
+static const Cyg_libm_test_float_vec_t tanhf_vec[] = {
+
+// AUTOMATICALLY GENERATED VECTORS START
+
+{0, 3214514586u, 0u, 3210046052u, 0, TANHF_TOLERANCE, 0},
+{1, 3214430700u, 0u, 3209994449u, 0, TANHF_TOLERANCE, 0},
+{2, 3214346813u, 0u, 3209941982u, 0, TANHF_TOLERANCE, 0},
+{3, 3214262927u, 0u, 3209888640u, 0, TANHF_TOLERANCE, 0},
+{4, 3214179041u, 0u, 3209834411u, 0, TANHF_TOLERANCE, 0},
+{5, 3214095155u, 0u, 3209779285u, 0, TANHF_TOLERANCE, 0},
+{6, 3214011269u, 0u, 3209723249u, 0, TANHF_TOLERANCE, 0},
+{7, 3213927383u, 0u, 3209666293u, 0, TANHF_TOLERANCE, 0},
+{8, 3213843497u, 0u, 3209608406u, 0, TANHF_TOLERANCE, 0},
+{9, 3213759611u, 0u, 3209549577u, 0, TANHF_TOLERANCE, 0},
+{10, 3213675725u, 0u, 3209489793u, 0, TANHF_TOLERANCE, 0},
+{11, 3213591839u, 0u, 3209429045u, 0, TANHF_TOLERANCE, 0},
+{12, 3213507953u, 0u, 3209367321u, 0, TANHF_TOLERANCE, 0},
+{13, 3213424067u, 0u, 3209304610u, 0, TANHF_TOLERANCE, 0},
+{14, 3213340180u, 0u, 3209240900u, 0, TANHF_TOLERANCE, 0},
+{15, 3213256294u, 0u, 3209176182u, 0, TANHF_TOLERANCE, 0},
+{16, 3213172408u, 0u, 3209110444u, 0, TANHF_TOLERANCE, 0},
+{17, 3213088522u, 0u, 3209043675u, 0, TANHF_TOLERANCE, 0},
+{18, 3213004636u, 0u, 3208975865u, 0, TANHF_TOLERANCE, 0},
+{19, 3212920750u, 0u, 3208907003u, 0, TANHF_TOLERANCE, 0},
+{20, 3212836864u, 0u, 3208837078u, 0, TANHF_TOLERANCE, 0},
+{21, 3212669092u, 0u, 3208766079u, 0, TANHF_TOLERANCE, 0},
+{22, 3212501320u, 0u, 3208693997u, 0, TANHF_TOLERANCE, 0},
+{23, 3212333548u, 0u, 3208620822u, 0, TANHF_TOLERANCE, 0},
+{24, 3212165775u, 0u, 3208546542u, 0, TANHF_TOLERANCE, 0},
+{25, 3211998003u, 0u, 3208471148u, 0, TANHF_TOLERANCE, 0},
+{26, 3211830231u, 0u, 3208394631u, 0, TANHF_TOLERANCE, 0},
+{27, 3211662459u, 0u, 3208316980u, 0, TANHF_TOLERANCE, 0},
+{28, 3211494687u, 0u, 3208238186u, 0, TANHF_TOLERANCE, 0},
+{29, 3211326915u, 0u, 3208158240u, 0, TANHF_TOLERANCE, 0},
+{30, 3211159142u, 0u, 3208077132u, 0, TANHF_TOLERANCE, 0},
+{31, 3210991370u, 0u, 3207994854u, 0, TANHF_TOLERANCE, 0},
+{32, 3210823598u, 0u, 3207911397u, 0, TANHF_TOLERANCE, 0},
+{33, 3210655826u, 0u, 3207826753u, 0, TANHF_TOLERANCE, 0},
+{34, 3210488054u, 0u, 3207740913u, 0, TANHF_TOLERANCE, 0},
+{35, 3210320282u, 0u, 3207653870u, 0, TANHF_TOLERANCE, 0},
+{36, 3210152509u, 0u, 3207565615u, 0, TANHF_TOLERANCE, 0},
+{37, 3209984737u, 0u, 3207476141u, 0, TANHF_TOLERANCE, 0},
+{38, 3209816965u, 0u, 3207385441u, 0, TANHF_TOLERANCE, 0},
+{39, 3209649193u, 0u, 3207293508u, 0, TANHF_TOLERANCE, 0},
+{40, 3209481421u, 0u, 3207200336u, 0, TANHF_TOLERANCE, 0},
+{41, 3209313649u, 0u, 3207105919u, 0, TANHF_TOLERANCE, 0},
+{42, 3209145876u, 0u, 3207010249u, 0, TANHF_TOLERANCE, 0},
+{43, 3208978104u, 0u, 3206913323u, 0, TANHF_TOLERANCE, 0},
+{44, 3208810332u, 0u, 3206815135u, 0, TANHF_TOLERANCE, 0},
+{45, 3208642560u, 0u, 3206715679u, 0, TANHF_TOLERANCE, 0},
+{46, 3208474788u, 0u, 3206614952u, 0, TANHF_TOLERANCE, 0},
+{47, 3208307016u, 0u, 3206512950u, 0, TANHF_TOLERANCE, 0},
+{48, 3208139244u, 0u, 3206409669u, 0, TANHF_TOLERANCE, 0},
+{49, 3207971471u, 0u, 3206305105u, 0, TANHF_TOLERANCE, 0},
+{50, 3207803699u, 0u, 3206199257u, 0, TANHF_TOLERANCE, 0},
+{51, 3207635927u, 0u, 3206092121u, 0, TANHF_TOLERANCE, 0},
+{52, 3207468155u, 0u, 3205983697u, 0, TANHF_TOLERANCE, 0},
+{53, 3207300383u, 0u, 3205873982u, 0, TANHF_TOLERANCE, 0},
+{54, 3207132611u, 0u, 3205762976u, 0, TANHF_TOLERANCE, 0},
+{55, 3206964838u, 0u, 3205650678u, 0, TANHF_TOLERANCE, 0},
+{56, 3206797066u, 0u, 3205537090u, 0, TANHF_TOLERANCE, 0},
+{57, 3206629294u, 0u, 3205422211u, 0, TANHF_TOLERANCE, 0},
+{58, 3206461522u, 0u, 3205306042u, 0, TANHF_TOLERANCE, 0},
+{59, 3206293750u, 0u, 3205188586u, 0, TANHF_TOLERANCE, 0},
+{60, 3206125978u, 0u, 3205069845u, 0, TANHF_TOLERANCE, 0},
+{61, 3205958205u, 0u, 3204949821u, 0, TANHF_TOLERANCE, 0},
+{62, 3205790433u, 0u, 3204828519u, 0, TANHF_TOLERANCE, 0},
+{63, 3205622661u, 0u, 3204705942u, 0, TANHF_TOLERANCE, 0},
+{64, 3205454889u, 0u, 3204582095u, 0, TANHF_TOLERANCE, 0},
+{65, 3205287117u, 0u, 3204456984u, 0, TANHF_TOLERANCE, 0},
+{66, 3205119345u, 0u, 3204212972u, 0, TANHF_TOLERANCE, 0},
+{67, 3204951572u, 0u, 3203957726u, 0, TANHF_TOLERANCE, 0},
+{68, 3204783800u, 0u, 3203699992u, 0, TANHF_TOLERANCE, 0},
+{69, 3204616028u, 0u, 3203439784u, 0, TANHF_TOLERANCE, 0},
+{70, 3204448256u, 0u, 3203177119u, 0, TANHF_TOLERANCE, 0},
+{71, 3204112712u, 0u, 3202912015u, 0, TANHF_TOLERANCE, 0},
+{72, 3203777167u, 0u, 3202644491u, 0, TANHF_TOLERANCE, 0},
+{73, 3203441623u, 0u, 3202374569u, 0, TANHF_TOLERANCE, 0},
+{74, 3203106079u, 0u, 3202102272u, 0, TANHF_TOLERANCE, 0},
+{75, 3202770534u, 0u, 3201827621u, 0, TANHF_TOLERANCE, 0},
+{76, 3202434990u, 0u, 3201550644u, 0, TANHF_TOLERANCE, 0},
+{77, 3202099446u, 0u, 3201271366u, 0, TANHF_TOLERANCE, 0},
+{78, 3201763901u, 0u, 3200989815u, 0, TANHF_TOLERANCE, 0},
+{79, 3201428357u, 0u, 3200706020u, 0, TANHF_TOLERANCE, 0},
+{80, 3201092813u, 0u, 3200420012u, 0, TANHF_TOLERANCE, 0},
+{81, 3200757268u, 0u, 3200131821u, 0, TANHF_TOLERANCE, 0},
+{82, 3200421724u, 0u, 3199841483u, 0, TANHF_TOLERANCE, 0},
+{83, 3200086180u, 0u, 3199549031u, 0, TANHF_TOLERANCE, 0},
+{84, 3199750636u, 0u, 3199254501u, 0, TANHF_TOLERANCE, 0},
+{85, 3199415091u, 0u, 3198957930u, 0, TANHF_TOLERANCE, 0},
+{86, 3199079547u, 0u, 3198659358u, 0, TANHF_TOLERANCE, 0},
+{87, 3198744003u, 0u, 3198358824u, 0, TANHF_TOLERANCE, 0},
+{88, 3198408458u, 0u, 3198056369u, 0, TANHF_TOLERANCE, 0},
+{89, 3198072914u, 0u, 3197752036u, 0, TANHF_TOLERANCE, 0},
+{90, 3197737370u, 0u, 3197445870u, 0, TANHF_TOLERANCE, 0},
+{91, 3197401825u, 0u, 3197137913u, 0, TANHF_TOLERANCE, 0},
+{92, 3197066281u, 0u, 3196828215u, 0, TANHF_TOLERANCE, 0},
+{93, 3196730737u, 0u, 3196516822u, 0, TANHF_TOLERANCE, 0},
+{94, 3196395192u, 0u, 3196203782u, 0, TANHF_TOLERANCE, 0},
+{95, 3196059648u, 0u, 3195718645u, 0, TANHF_TOLERANCE, 0},
+{96, 3195388559u, 0u, 3195086284u, 0, TANHF_TOLERANCE, 0},
+{97, 3194717471u, 0u, 3194450938u, 0, TANHF_TOLERANCE, 0},
+{98, 3194046382u, 0u, 3193812713u, 0, TANHF_TOLERANCE, 0},
+{99, 3193375293u, 0u, 3193171718u, 0, TANHF_TOLERANCE, 0},
+{100, 3192704205u, 0u, 3192528066u, 0, TANHF_TOLERANCE, 0},
+{101, 3192033116u, 0u, 3191881866u, 0, TANHF_TOLERANCE, 0},
+{102, 3191362028u, 0u, 3191233237u, 0, TANHF_TOLERANCE, 0},
+{103, 3190690939u, 0u, 3190582293u, 0, TANHF_TOLERANCE, 0},
+{104, 3190019850u, 0u, 3189929153u, 0, TANHF_TOLERANCE, 0},
+{105, 3189348762u, 0u, 3189273938u, 0, TANHF_TOLERANCE, 0},
+{106, 3188677673u, 0u, 3188616768u, 0, TANHF_TOLERANCE, 0},
+{107, 3188006584u, 0u, 3187957768u, 0, TANHF_TOLERANCE, 0},
+{108, 3186999951u, 0u, 3186923084u, 0, TANHF_TOLERANCE, 0},
+{109, 3185657774u, 0u, 3185598513u, 0, TANHF_TOLERANCE, 0},
+{110, 3184315597u, 0u, 3184271036u, 0, TANHF_TOLERANCE, 0},
+{111, 3182973420u, 0u, 3182940910u, 0, TANHF_TOLERANCE, 0},
+{112, 3181631242u, 0u, 3181608394u, 0, TANHF_TOLERANCE, 0},
+{113, 3180289065u, 0u, 3180273749u, 0, TANHF_TOLERANCE, 0},
+{114, 3178611343u, 0u, 3178592043u, 0, TANHF_TOLERANCE, 0},
+{115, 3175926989u, 0u, 3175915815u, 0, TANHF_TOLERANCE, 0},
+{116, 3173242634u, 0u, 3173236911u, 0, TANHF_TOLERANCE, 0},
+{117, 3170222735u, 0u, 3170217905u, 0, TANHF_TOLERANCE, 0},
+{118, 3164854026u, 0u, 3164852595u, 0, TANHF_TOLERANCE, 0},
+{119, 3156465418u, 0u, 3156465060u, 0, TANHF_TOLERANCE, 0},
+{120, 1008981770u, 0u, 1008981412u, 0, TANHF_TOLERANCE, 0},
+{121, 1017370378u, 0u, 1017368947u, 0, TANHF_TOLERANCE, 0},
+{122, 1022739087u, 0u, 1022734257u, 0, TANHF_TOLERANCE, 0},
+{123, 1025758986u, 0u, 1025753263u, 0, TANHF_TOLERANCE, 0},
+{124, 1028443341u, 0u, 1028432167u, 0, TANHF_TOLERANCE, 0},
+{125, 1031127695u, 0u, 1031108395u, 0, TANHF_TOLERANCE, 0},
+{126, 1032805417u, 0u, 1032790101u, 0, TANHF_TOLERANCE, 0},
+{127, 1034147594u, 0u, 1034124746u, 0, TANHF_TOLERANCE, 0},
+{128, 1035489772u, 0u, 1035457262u, 0, TANHF_TOLERANCE, 0},
+{129, 1036831949u, 0u, 1036787388u, 0, TANHF_TOLERANCE, 0},
+{130, 1038174126u, 0u, 1038114865u, 0, TANHF_TOLERANCE, 0},
+{131, 1039516303u, 0u, 1039439436u, 0, TANHF_TOLERANCE, 0},
+{132, 1040522936u, 0u, 1040474120u, 0, TANHF_TOLERANCE, 0},
+{133, 1041194025u, 0u, 1041133120u, 0, TANHF_TOLERANCE, 0},
+{134, 1041865114u, 0u, 1041790290u, 0, TANHF_TOLERANCE, 0},
+{135, 1042536202u, 0u, 1042445505u, 0, TANHF_TOLERANCE, 0},
+{136, 1043207291u, 0u, 1043098645u, 0, TANHF_TOLERANCE, 0},
+{137, 1043878380u, 0u, 1043749589u, 0, TANHF_TOLERANCE, 0},
+{138, 1044549468u, 0u, 1044398218u, 0, TANHF_TOLERANCE, 0},
+{139, 1045220557u, 0u, 1045044418u, 0, TANHF_TOLERANCE, 0},
+{140, 1045891645u, 0u, 1045688070u, 0, TANHF_TOLERANCE, 0},
+{141, 1046562734u, 0u, 1046329065u, 0, TANHF_TOLERANCE, 0},
+{142, 1047233823u, 0u, 1046967290u, 0, TANHF_TOLERANCE, 0},
+{143, 1047904911u, 0u, 1047602636u, 0, TANHF_TOLERANCE, 0},
+{144, 1048576000u, 0u, 1048234997u, 0, TANHF_TOLERANCE, 0},
+{145, 1048911544u, 0u, 1048720134u, 0, TANHF_TOLERANCE, 0},
+{146, 1049247089u, 0u, 1049033174u, 0, TANHF_TOLERANCE, 0},
+{147, 1049582633u, 0u, 1049344567u, 0, TANHF_TOLERANCE, 0},
+{148, 1049918177u, 0u, 1049654265u, 0, TANHF_TOLERANCE, 0},
+{149, 1050253722u, 0u, 1049962222u, 0, TANHF_TOLERANCE, 0},
+{150, 1050589266u, 0u, 1050268388u, 0, TANHF_TOLERANCE, 0},
+{151, 1050924810u, 0u, 1050572721u, 0, TANHF_TOLERANCE, 0},
+{152, 1051260355u, 0u, 1050875176u, 0, TANHF_TOLERANCE, 0},
+{153, 1051595899u, 0u, 1051175710u, 0, TANHF_TOLERANCE, 0},
+{154, 1051931443u, 0u, 1051474282u, 0, TANHF_TOLERANCE, 0},
+{155, 1052266988u, 0u, 1051770853u, 0, TANHF_TOLERANCE, 0},
+{156, 1052602532u, 0u, 1052065383u, 0, TANHF_TOLERANCE, 0},
+{157, 1052938076u, 0u, 1052357835u, 0, TANHF_TOLERANCE, 0},
+{158, 1053273620u, 0u, 1052648173u, 0, TANHF_TOLERANCE, 0},
+{159, 1053609165u, 0u, 1052936364u, 0, TANHF_TOLERANCE, 0},
+{160, 1053944709u, 0u, 1053222372u, 0, TANHF_TOLERANCE, 0},
+{161, 1054280253u, 0u, 1053506167u, 0, TANHF_TOLERANCE, 0},
+{162, 1054615798u, 0u, 1053787718u, 0, TANHF_TOLERANCE, 0},
+{163, 1054951342u, 0u, 1054066996u, 0, TANHF_TOLERANCE, 0},
+{164, 1055286886u, 0u, 1054343973u, 0, TANHF_TOLERANCE, 0},
+{165, 1055622431u, 0u, 1054618624u, 0, TANHF_TOLERANCE, 0},
+{166, 1055957975u, 0u, 1054890921u, 0, TANHF_TOLERANCE, 0},
+{167, 1056293519u, 0u, 1055160843u, 0, TANHF_TOLERANCE, 0},
+{168, 1056629064u, 0u, 1055428367u, 0, TANHF_TOLERANCE, 0},
+{169, 1056964608u, 0u, 1055693471u, 0, TANHF_TOLERANCE, 0},
+{170, 1057132380u, 0u, 1055956136u, 0, TANHF_TOLERANCE, 0},
+{171, 1057300152u, 0u, 1056216344u, 0, TANHF_TOLERANCE, 0},
+{172, 1057467924u, 0u, 1056474078u, 0, TANHF_TOLERANCE, 0},
+{173, 1057635697u, 0u, 1056729324u, 0, TANHF_TOLERANCE, 0},
+{174, 1057803469u, 0u, 1056973336u, 0, TANHF_TOLERANCE, 0},
+{175, 1057971241u, 0u, 1057098447u, 0, TANHF_TOLERANCE, 0},
+{176, 1058139013u, 0u, 1057222294u, 0, TANHF_TOLERANCE, 0},
+{177, 1058306785u, 0u, 1057344871u, 0, TANHF_TOLERANCE, 0},
+{178, 1058474557u, 0u, 1057466173u, 0, TANHF_TOLERANCE, 0},
+{179, 1058642330u, 0u, 1057586197u, 0, TANHF_TOLERANCE, 0},
+{180, 1058810102u, 0u, 1057704938u, 0, TANHF_TOLERANCE, 0},
+{181, 1058977874u, 0u, 1057822394u, 0, TANHF_TOLERANCE, 0},
+{182, 1059145646u, 0u, 1057938563u, 0, TANHF_TOLERANCE, 0},
+{183, 1059313418u, 0u, 1058053442u, 0, TANHF_TOLERANCE, 0},
+{184, 1059481190u, 0u, 1058167030u, 0, TANHF_TOLERANCE, 0},
+{185, 1059648963u, 0u, 1058279328u, 0, TANHF_TOLERANCE, 0},
+{186, 1059816735u, 0u, 1058390334u, 0, TANHF_TOLERANCE, 0},
+{187, 1059984507u, 0u, 1058500049u, 0, TANHF_TOLERANCE, 0},
+{188, 1060152279u, 0u, 1058608473u, 0, TANHF_TOLERANCE, 0},
+{189, 1060320051u, 0u, 1058715609u, 0, TANHF_TOLERANCE, 0},
+{190, 1060487823u, 0u, 1058821457u, 0, TANHF_TOLERANCE, 0},
+{191, 1060655596u, 0u, 1058926021u, 0, TANHF_TOLERANCE, 0},
+{192, 1060823368u, 0u, 1059029302u, 0, TANHF_TOLERANCE, 0},
+{193, 1060991140u, 0u, 1059131304u, 0, TANHF_TOLERANCE, 0},
+{194, 1061158912u, 0u, 1059232031u, 0, TANHF_TOLERANCE, 0},
+{195, 1061326684u, 0u, 1059331487u, 0, TANHF_TOLERANCE, 0},
+{196, 1061494456u, 0u, 1059429675u, 0, TANHF_TOLERANCE, 0},
+{197, 1061662228u, 0u, 1059526601u, 0, TANHF_TOLERANCE, 0},
+{198, 1061830001u, 0u, 1059622271u, 0, TANHF_TOLERANCE, 0},
+{199, 1061997773u, 0u, 1059716688u, 0, TANHF_TOLERANCE, 0},
+{200, 1062165545u, 0u, 1059809860u, 0, TANHF_TOLERANCE, 0},
+{201, 1062333317u, 0u, 1059901793u, 0, TANHF_TOLERANCE, 0},
+{202, 1062501089u, 0u, 1059992493u, 0, TANHF_TOLERANCE, 0},
+{203, 1062668861u, 0u, 1060081967u, 0, TANHF_TOLERANCE, 0},
+{204, 1062836634u, 0u, 1060170222u, 0, TANHF_TOLERANCE, 0},
+{205, 1063004406u, 0u, 1060257265u, 0, TANHF_TOLERANCE, 0},
+{206, 1063172178u, 0u, 1060343105u, 0, TANHF_TOLERANCE, 0},
+{207, 1063339950u, 0u, 1060427749u, 0, TANHF_TOLERANCE, 0},
+{208, 1063507722u, 0u, 1060511206u, 0, TANHF_TOLERANCE, 0},
+{209, 1063675494u, 0u, 1060593484u, 0, TANHF_TOLERANCE, 0},
+{210, 1063843267u, 0u, 1060674592u, 0, TANHF_TOLERANCE, 0},
+{211, 1064011039u, 0u, 1060754538u, 0, TANHF_TOLERANCE, 0},
+{212, 1064178811u, 0u, 1060833332u, 0, TANHF_TOLERANCE, 0},
+{213, 1064346583u, 0u, 1060910983u, 0, TANHF_TOLERANCE, 0},
+{214, 1064514355u, 0u, 1060987500u, 0, TANHF_TOLERANCE, 0},
+{215, 1064682127u, 0u, 1061062894u, 0, TANHF_TOLERANCE, 0},
+{216, 1064849900u, 0u, 1061137174u, 0, TANHF_TOLERANCE, 0},
+{217, 1065017672u, 0u, 1061210349u, 0, TANHF_TOLERANCE, 0},
+{218, 1065185444u, 0u, 1061282431u, 0, TANHF_TOLERANCE, 0},
+{219, 1065353216u, 0u, 1061353430u, 0, TANHF_TOLERANCE, 0},
+{220, 1065437102u, 0u, 1061423355u, 0, TANHF_TOLERANCE, 0},
+{221, 1065520988u, 0u, 1061492217u, 0, TANHF_TOLERANCE, 0},
+{222, 1065604874u, 0u, 1061560027u, 0, TANHF_TOLERANCE, 0},
+{223, 1065688760u, 0u, 1061626796u, 0, TANHF_TOLERANCE, 0},
+{224, 1065772646u, 0u, 1061692534u, 0, TANHF_TOLERANCE, 0},
+{225, 1065856532u, 0u, 1061757252u, 0, TANHF_TOLERANCE, 0},
+{226, 1065940419u, 0u, 1061820962u, 0, TANHF_TOLERANCE, 0},
+{227, 1066024305u, 0u, 1061883673u, 0, TANHF_TOLERANCE, 0},
+{228, 1066108191u, 0u, 1061945397u, 0, TANHF_TOLERANCE, 0},
+{229, 1066192077u, 0u, 1062006145u, 0, TANHF_TOLERANCE, 0},
+{230, 1066275963u, 0u, 1062065929u, 0, TANHF_TOLERANCE, 0},
+{231, 1066359849u, 0u, 1062124758u, 0, TANHF_TOLERANCE, 0},
+{232, 1066443735u, 0u, 1062182645u, 0, TANHF_TOLERANCE, 0},
+{233, 1066527621u, 0u, 1062239601u, 0, TANHF_TOLERANCE, 0},
+{234, 1066611507u, 0u, 1062295637u, 0, TANHF_TOLERANCE, 0},
+{235, 1066695393u, 0u, 1062350763u, 0, TANHF_TOLERANCE, 0},
+{236, 1066779279u, 0u, 1062404992u, 0, TANHF_TOLERANCE, 0},
+{237, 1066863165u, 0u, 1062458334u, 0, TANHF_TOLERANCE, 0},
+{238, 1066947052u, 0u, 1062510801u, 0, TANHF_TOLERANCE, 0},
+{239, 3234402267u, 0u, 3212836747u, 0, TANHF_TOLERANCE, 0},
+{240, 3231108068u, 0u, 3212834156u, 0, TANHF_TOLERANCE, 0},
+{241, 3226013659u, 0u, 3212774320u, 0, TANHF_TOLERANCE, 0},
+{242, 3217625051u, 0u, 3211446911u, 0, TANHF_TOLERANCE, 0},
+{243, 0u, 0u, 0u, 0, TANHF_TOLERANCE, 0},
+{244, 1070141403u, 0u, 1063963263u, 0, TANHF_TOLERANCE, 0},
+{245, 1078530011u, 0u, 1065290672u, 0, TANHF_TOLERANCE, 0},
+{246, 1083624420u, 0u, 1065350508u, 0, TANHF_TOLERANCE, 0},
+{247, 3253731328u, 0u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{248, 3252840038u, 0u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{249, 3251948749u, 0u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{250, 3251057459u, 0u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{251, 3250166170u, 0u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{252, 3249274880u, 0u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{253, 3248383590u, 0u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{254, 3247492301u, 0u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{255, 3246601011u, 0u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{256, 3245028147u, 0u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{257, 3243245568u, 0u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{258, 3241462989u, 0u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{259, 3239680410u, 0u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{260, 3237792973u, 0u, 3212836859u, 0, TANHF_TOLERANCE, 0},
+{261, 3234227814u, 0u, 3212836726u, 0, TANHF_TOLERANCE, 0},
+{262, 3230662656u, 0u, 3212832724u, 0, TANHF_TOLERANCE, 0},
+{263, 3224580915u, 0u, 3212713241u, 0, TANHF_TOLERANCE, 0},
+{264, 3213675725u, 0u, 3209489793u, 0, TANHF_TOLERANCE, 0},
+{265, 1058642330u, 0u, 1057586197u, 0, TANHF_TOLERANCE, 0},
+{266, 1075000115u, 0u, 1065019289u, 0, TANHF_TOLERANCE, 0},
+{267, 1082130432u, 0u, 1065341964u, 0, TANHF_TOLERANCE, 0},
+{268, 1085695590u, 0u, 1065352840u, 0, TANHF_TOLERANCE, 0},
+{269, 1089260749u, 0u, 1065353203u, 0, TANHF_TOLERANCE, 0},
+{270, 1091672474u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{271, 1093455053u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{272, 1095237632u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{273, 1097020211u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{274, 1098802790u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{275, 1099746509u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{276, 1100637798u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{277, 1101529088u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{278, 1102420378u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{279, 1103311667u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{280, 1104202957u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{281, 1105094246u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{282, 1105985536u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{283, 1107800421u, 100135u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{284, 3196650934u, 0u, 3196442519u, 0, TANHF_TOLERANCE, 0},
+{285, 3368700125u, 4294964487u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{286, 1224242132u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{287, 3221027117u, 73066312u, 3212204671u, 0, TANHF_TOLERANCE, 0},
+{288, 1198712763u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{289, 3159309973u, 0u, 3159309249u, 0, TANHF_TOLERANCE, 0},
+{290, 954173073u, 0u, 954173073u, 0, TANHF_TOLERANCE, 0},
+{291, 3090780435u, 0u, 3090780435u, 0, TANHF_TOLERANCE, 0},
+{292, 966554515u, 4294967290u, 966554515u, 0, TANHF_TOLERANCE, 0},
+{293, 1312607135u, 47678u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{294, 1166191415u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{295, 3111900019u, 225u, 3111900019u, 0, TANHF_TOLERANCE, 0},
+{296, 1234419246u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{297, 1302107128u, 4294492157u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{298, 1052801068u, 0u, 1052238675u, 0, TANHF_TOLERANCE, 0},
+{299, 1060849628u, 0u, 1059045352u, 0, TANHF_TOLERANCE, 0},
+{300, 3484320003u, 0u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{301, 3181522772u, 4294965180u, 3181500608u, 0, TANHF_TOLERANCE, 0},
+{302, 882596369u, 7581303u, 882596369u, 0, TANHF_TOLERANCE, 0},
+{303, 1167223673u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{304, 968192794u, 0u, 968192794u, 0, TANHF_TOLERANCE, 0},
+{305, 3122346862u, 48u, 3122346861u, 0, TANHF_TOLERANCE, 0},
+{306, 1052361612u, 53381624u, 1051854119u, 0, TANHF_TOLERANCE, 0},
+{307, 906701409u, 0u, 906701409u, 0, TANHF_TOLERANCE, 0},
+{308, 3471653172u, 1621u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{309, 3231467496u, 0u, 3212834942u, 0, TANHF_TOLERANCE, 0},
+{310, 1341514497u, 3022046720u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{311, 1272351391u, 4294363968u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{312, 3319724992u, 4294842689u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{313, 917622040u, 603040256u, 917622040u, 0, TANHF_TOLERANCE, 0},
+{314, 940236348u, 4294965375u, 940236348u, 0, TANHF_TOLERANCE, 0},
+{315, 3251541546u, 0u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{316, 3099843889u, 4294828114u, 3099843889u, 0, TANHF_TOLERANCE, 0},
+{317, 3110358400u, 0u, 3110358400u, 0, TANHF_TOLERANCE, 0},
+{318, 3371863479u, 0u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{319, 3204069187u, 0u, 3202877449u, 0, TANHF_TOLERANCE, 0},
+{320, 1306460502u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{321, 1197542187u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{322, 922888249u, 467u, 922888249u, 0, TANHF_TOLERANCE, 0},
+{323, 1184239996u, 4294967294u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{324, 1252490238u, 7808u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{325, 1001673627u, 3340510784u, 1001673508u, 0, TANHF_TOLERANCE, 0},
+{326, 976098044u, 1357u, 976098042u, 0, TANHF_TOLERANCE, 0},
+{327, 941796645u, 0u, 941796645u, 0, TANHF_TOLERANCE, 0},
+{328, 3287199470u, 0u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{329, 893184329u, 2485427u, 893184329u, 0, TANHF_TOLERANCE, 0},
+{330, 1143233714u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{331, 1139941253u, 929u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{332, 3143717025u, 4294967290u, 3143716967u, 0, TANHF_TOLERANCE, 0},
+{333, 3048866608u, 3978787488u, 3048866608u, 0, TANHF_TOLERANCE, 0},
+{334, 3240298487u, 0u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{335, 1288902137u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{336, 1333134799u, 2211432960u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{337, 1187847971u, 1157221888u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{338, 1038851706u, 2696359424u, 1038783936u, 0, TANHF_TOLERANCE, 0},
+{339, 3329354473u, 0u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{340, 3077218579u, 529671904u, 3077218579u, 0, TANHF_TOLERANCE, 0},
+{341, 1309289088u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{342, 3444653659u, 50272864u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{343, 3405585402u, 0u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{344, 3106647724u, 0u, 3106647724u, 0, TANHF_TOLERANCE, 0},
+{345, 1106778573u, 4294965325u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{346, 1140567947u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{347, 1238569473u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{348, 3154871957u, 39965012u, 3154871736u, 0, TANHF_TOLERANCE, 0},
+{349, 1261071232u, 15806u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{350, 1175011025u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{351, 1082692850u, 187658u, 1065346634u, 0, TANHF_TOLERANCE, 0},
+{352, 974547519u, 1563599616u, 974547518u, 0, TANHF_TOLERANCE, 0},
+{353, 3058097085u, 0u, 3058097085u, 0, TANHF_TOLERANCE, 0},
+{354, 3107252546u, 1u, 3107252546u, 0, TANHF_TOLERANCE, 0},
+{355, 3096032662u, 0u, 3096032662u, 0, TANHF_TOLERANCE, 0},
+{356, 3197942144u, 0u, 3197632931u, 0, TANHF_TOLERANCE, 0},
+{357, 3403348556u, 0u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{358, 3182301130u, 3460013312u, 3182273742u, 0, TANHF_TOLERANCE, 0},
+{359, 1136411063u, 82u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{360, 3239231622u, 4294965540u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{361, 3340615780u, 0u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{362, 998567360u, 0u, 998567312u, 0, TANHF_TOLERANCE, 0},
+{363, 3417964312u, 1627479168u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{364, 3109481038u, 695u, 3109481038u, 0, TANHF_TOLERANCE, 0},
+{365, 1148867223u, 7486109u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{366, 989687421u, 4294414202u, 989687400u, 0, TANHF_TOLERANCE, 0},
+{367, 1152956913u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{368, 892922651u, 4294392467u, 892922651u, 0, TANHF_TOLERANCE, 0},
+{369, 1109627625u, 891137088u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{370, 1307091856u, 24u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{371, 1077234132u, 4294967159u, 1065237377u, 0, TANHF_TOLERANCE, 0},
+{372, 1142167709u, 13u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{373, 3426232834u, 0u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{374, 3368566779u, 0u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{375, 3030724760u, 4294886457u, 3030724760u, 0, TANHF_TOLERANCE, 0},
+{376, 1138741813u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{377, 982950501u, 0u, 982950497u, 0, TANHF_TOLERANCE, 0},
+{378, 1142981585u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{379, 3347165962u, 0u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{380, 1009535440u, 4293825695u, 1009535024u, 0, TANHF_TOLERANCE, 0},
+{381, 3103736980u, 4287990860u, 3103736980u, 0, TANHF_TOLERANCE, 0},
+{382, 3126820946u, 2u, 3126820942u, 0, TANHF_TOLERANCE, 0},
+{383, 3473956030u, 0u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{384, 3349098349u, 0u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{385, 3152729489u, 0u, 3152729226u, 0, TANHF_TOLERANCE, 0},
+{386, 945568720u, 4294963204u, 945568720u, 0, TANHF_TOLERANCE, 0},
+{387, 3345489836u, 36u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{388, 940893161u, 394u, 940893161u, 0, TANHF_TOLERANCE, 0},
+{389, 976791751u, 4294967292u, 976791749u, 0, TANHF_TOLERANCE, 0},
+{390, 1004442355u, 0u, 1004442131u, 0, TANHF_TOLERANCE, 0},
+{391, 1108485380u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{392, 1061834641u, 0u, 1059624899u, 0, TANHF_TOLERANCE, 0},
+{393, 3381268392u, 885u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{394, 1087189715u, 0u, 1065353126u, 0, TANHF_TOLERANCE, 0},
+{395, 3212952285u, 4294951762u, 3208933014u, 0, TANHF_TOLERANCE, 0},
+{396, 1000611335u, 0u, 1000611245u, 0, TANHF_TOLERANCE, 0},
+{397, 3466188568u, 0u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{398, 3072456205u, 0u, 3072456205u, 0, TANHF_TOLERANCE, 0},
+{399, 3319315516u, 4262338968u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{400, 935938416u, 867u, 935938416u, 0, TANHF_TOLERANCE, 0},
+{401, 3212614372u, 1438u, 3208742689u, 0, TANHF_TOLERANCE, 0},
+{402, 1315030230u, 4294939294u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{403, 1134593658u, 3712906944u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{404, 977281449u, 0u, 977281447u, 0, TANHF_TOLERANCE, 0},
+{405, 1086198791u, 0u, 1065352984u, 0, TANHF_TOLERANCE, 0},
+{406, 1255152035u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{407, 1135271264u, 4294966890u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{408, 1094190727u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{409, 1294665325u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{410, 1036608591u, 0u, 1036566212u, 0, TANHF_TOLERANCE, 0},
+{411, 3229998064u, 0u, 3212829061u, 0, TANHF_TOLERANCE, 0},
+{412, 3439134022u, 0u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{413, 3073083133u, 1094097536u, 3073083133u, 0, TANHF_TOLERANCE, 0},
+{414, 1325668223u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{415, 1092037607u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{416, 3316278408u, 3774649632u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{417, 3295436768u, 0u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{418, 1151984049u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{419, 1129287043u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{420, 1243664530u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{421, 950829092u, 0u, 950829092u, 0, TANHF_TOLERANCE, 0},
+{422, 1115471979u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{423, 3351092088u, 0u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{424, 3424479544u, 4294963555u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{425, 3241193975u, 0u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{426, 1030934236u, 0u, 1030915623u, 0, TANHF_TOLERANCE, 0},
+{427, 3131791114u, 4283960578u, 3131791108u, 0, TANHF_TOLERANCE, 0},
+{428, 1025254314u, 0u, 1025249360u, 0, TANHF_TOLERANCE, 0},
+{429, 1110545760u, 4294967286u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{430, 3180213739u, 37u, 3180198788u, 0, TANHF_TOLERANCE, 0},
+{431, 3361976590u, 0u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{432, 881280146u, 4262747520u, 881280146u, 0, TANHF_TOLERANCE, 0},
+{433, 1304154705u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{434, 3264443610u, 4294967294u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{435, 3374550627u, 0u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{436, 899599265u, 4294967286u, 899599265u, 0, TANHF_TOLERANCE, 0},
+{437, 1268194719u, 3962356224u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{438, 1133420220u, 3161371u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{439, 1161858787u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{440, 3184462258u, 13627054u, 3184416224u, 0, TANHF_TOLERANCE, 0},
+{441, 3295996963u, 3846806432u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{442, 1270887389u, 1864u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{443, 3325193181u, 0u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{444, 925657343u, 955232128u, 925657343u, 0, TANHF_TOLERANCE, 0},
+{445, 3115275450u, 0u, 3115275450u, 0, TANHF_TOLERANCE, 0},
+{446, 3116607482u, 4294967294u, 3116607481u, 0, TANHF_TOLERANCE, 0},
+{447, 3187892415u, 0u, 3187845482u, 0, TANHF_TOLERANCE, 0},
+{448, 1189120494u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{449, 889030794u, 0u, 889030794u, 0, TANHF_TOLERANCE, 0},
+{450, 1323529208u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{451, 3465768388u, 0u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{452, 3426099899u, 87u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{453, 3224857113u, 4290382691u, 3212728447u, 0, TANHF_TOLERANCE, 0},
+{454, 1065798296u, 0u, 1061712431u, 0, TANHF_TOLERANCE, 0},
+{455, 3328989444u, 0u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{456, 3357819026u, 0u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{457, 1273397670u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{458, 3424831780u, 414735168u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{459, 1257596246u, 4264851904u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{460, 1051773536u, 0u, 1051334021u, 0, TANHF_TOLERANCE, 0},
+{461, 3294752507u, 0u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{462, 3424848725u, 0u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{463, 1090870906u, 4294966393u, 1065353214u, 0, TANHF_TOLERANCE, 0},
+{464, 1227582289u, 147011u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{465, 1272325814u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{466, 3359508271u, 0u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{467, 1137854355u, 4294941607u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{468, 3440773058u, 0u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{469, 3101598400u, 0u, 3101598400u, 0, TANHF_TOLERANCE, 0},
+{470, 3451216836u, 4294896064u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{471, 3437062994u, 0u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{472, 1131196082u, 3743u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{473, 3177294154u, 63027320u, 3177279209u, 0, TANHF_TOLERANCE, 0},
+{474, 3258097678u, 449173056u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{475, 3460915348u, 356647u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{476, 3303035472u, 0u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{477, 1053698677u, 4294966907u, 1053012876u, 0, TANHF_TOLERANCE, 0},
+{478, 3396166221u, 83688u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{479, 3037541131u, 5u, 3037541131u, 0, TANHF_TOLERANCE, 0},
+{480, 3458934263u, 0u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{481, 1065761827u, 4294943781u, 1061684113u, 0, TANHF_TOLERANCE, 0},
+{482, 3025843188u, 0u, 3025843188u, 0, TANHF_TOLERANCE, 0},
+{483, 926665223u, 0u, 926665223u, 0, TANHF_TOLERANCE, 0},
+{484, 1199816046u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{485, 3333779015u, 0u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{486, 948398145u, 4294967288u, 948398145u, 0, TANHF_TOLERANCE, 0},
+{487, 3054021468u, 23933390u, 3054021468u, 0, TANHF_TOLERANCE, 0},
+{488, 1080781593u, 224021u, 1065331814u, 0, TANHF_TOLERANCE, 0},
+{489, 3164749613u, 0u, 3164748223u, 0, TANHF_TOLERANCE, 0},
+{490, 3235326590u, 26828788u, 3212836816u, 0, TANHF_TOLERANCE, 0},
+{491, 3118883815u, 0u, 3118883814u, 0, TANHF_TOLERANCE, 0},
+{492, 965378004u, 146193824u, 965378004u, 0, TANHF_TOLERANCE, 0},
+{493, 3226990408u, 45u, 3212797580u, 0, TANHF_TOLERANCE, 0},
+{494, 3117098218u, 115u, 3117098217u, 0, TANHF_TOLERANCE, 0},
+{495, 1283624229u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{496, 970649315u, 3u, 970649314u, 0, TANHF_TOLERANCE, 0},
+{497, 959776291u, 4294967028u, 959776291u, 0, TANHF_TOLERANCE, 0},
+{498, 3341117305u, 4294966405u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{499, 1270734970u, 4294829480u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{500, 3454816067u, 0u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{501, 917206623u, 7364u, 917206623u, 0, TANHF_TOLERANCE, 0},
+{502, 1106502045u, 126247200u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{503, 1157598381u, 4294964293u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{504, 3335234513u, 0u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{505, 1279489061u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{506, 3157416480u, 624023680u, 3157416018u, 0, TANHF_TOLERANCE, 0},
+{507, 3143920719u, 0u, 3143920658u, 0, TANHF_TOLERANCE, 0},
+{508, 1233171235u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{509, 1148920078u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{510, 3064988156u, 4294967292u, 3064988156u, 0, TANHF_TOLERANCE, 0},
+{511, 3083619260u, 2484u, 3083619260u, 0, TANHF_TOLERANCE, 0},
+{512, 1109198803u, 431095u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{513, 3219949483u, 0u, 3212023955u, 0, TANHF_TOLERANCE, 0},
+{514, 3361149474u, 4293077090u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{515, 1207502108u, 4292985650u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{516, 1000014431u, 0u, 1000014355u, 0, TANHF_TOLERANCE, 0},
+{517, 3161756316u, 0u, 3161755126u, 0, TANHF_TOLERANCE, 0},
+{518, 3160728744u, 4293625597u, 3160727768u, 0, TANHF_TOLERANCE, 0},
+{519, 1234530539u, 3u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{520, 1017843965u, 40165u, 1017842336u, 0, TANHF_TOLERANCE, 0},
+{521, 951862956u, 7732u, 951862956u, 0, TANHF_TOLERANCE, 0},
+{522, 3306328852u, 87u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{523, 1291910469u, 183319u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{524, 3027442905u, 7942u, 3027442905u, 0, TANHF_TOLERANCE, 0},
+{525, 1131927531u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{526, 3449879391u, 0u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{527, 970094304u, 4294911386u, 970094303u, 0, TANHF_TOLERANCE, 0},
+{528, 1125551064u, 4294949017u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{529, 3427296372u, 3784252480u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{530, 1198917460u, 2607027968u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{531, 3201603336u, 0u, 3200854291u, 0, TANHF_TOLERANCE, 0},
+{532, 3114686212u, 1328603904u, 3114686212u, 0, TANHF_TOLERANCE, 0},
+{533, 921940707u, 0u, 921940707u, 0, TANHF_TOLERANCE, 0},
+{534, 1091906532u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{535, 3393557778u, 4293570247u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{536, 1276853215u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{537, 3462778440u, 4294884341u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{538, 3360170117u, 0u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{539, 3224245428u, 4294967170u, 3212691888u, 0, TANHF_TOLERANCE, 0},
+{540, 1120124467u, 352u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{541, 1064364381u, 0u, 1060919153u, 0, TANHF_TOLERANCE, 0},
+{542, 1268744779u, 4294952694u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{543, 1165195428u, 4292538760u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{544, 3044092739u, 30u, 3044092739u, 0, TANHF_TOLERANCE, 0},
+{545, 3149469534u, 47144136u, 3149469405u, 0, TANHF_TOLERANCE, 0},
+{546, 3247790039u, 0u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{547, 3215244648u, 4u, 3210460317u, 0, TANHF_TOLERANCE, 0},
+{548, 3095275931u, 0u, 3095275931u, 0, TANHF_TOLERANCE, 0},
+{549, 3059688264u, 77u, 3059688264u, 0, TANHF_TOLERANCE, 0},
+{550, 1212717473u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{551, 3275973009u, 3930410816u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{552, 3028857014u, 0u, 3028857014u, 0, TANHF_TOLERANCE, 0},
+{553, 3391162308u, 129212984u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{554, 1044867873u, 4294528232u, 1044705124u, 0, TANHF_TOLERANCE, 0},
+{555, 1089986803u, 3370664576u, 1065353210u, 0, TANHF_TOLERANCE, 0},
+{556, 1296314700u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{557, 1251462432u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{558, 3485236902u, 0u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{559, 3262169538u, 19958524u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{560, 3080852256u, 0u, 3080852256u, 0, TANHF_TOLERANCE, 0},
+{561, 1022211242u, 0u, 1022206871u, 0, TANHF_TOLERANCE, 0},
+{562, 884661176u, 0u, 884661176u, 0, TANHF_TOLERANCE, 0},
+{563, 3071422941u, 4294967172u, 3071422941u, 0, TANHF_TOLERANCE, 0},
+{564, 989762529u, 4294733601u, 989762508u, 0, TANHF_TOLERANCE, 0},
+{565, 1295475718u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{566, 1002632518u, 4294950696u, 1002632367u, 0, TANHF_TOLERANCE, 0},
+{567, 3404372005u, 3938008096u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{568, 3158912530u, 0u, 3158911867u, 0, TANHF_TOLERANCE, 0},
+{569, 1125800069u, 4294967259u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{570, 3138037576u, 0u, 3138037562u, 0, TANHF_TOLERANCE, 0},
+{571, 3108384823u, 268832992u, 3108384823u, 0, TANHF_TOLERANCE, 0},
+{572, 999985470u, 4282999218u, 999985395u, 0, TANHF_TOLERANCE, 0},
+{573, 1189421739u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{574, 3075182644u, 0u, 3075182644u, 0, TANHF_TOLERANCE, 0},
+{575, 3028099649u, 4292241163u, 3028099649u, 0, TANHF_TOLERANCE, 0},
+{576, 3132541814u, 4077666864u, 3132541806u, 0, TANHF_TOLERANCE, 0},
+{577, 1164046161u, 4139845440u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{578, 1292596266u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{579, 3469748379u, 4279587928u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{580, 1314644642u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{581, 3399813173u, 0u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{582, 948775569u, 2159002624u, 948775569u, 0, TANHF_TOLERANCE, 0},
+{583, 1034611395u, 0u, 1034585462u, 0, TANHF_TOLERANCE, 0},
+{584, 3489122735u, 4294428604u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{585, 1181604787u, 4294717096u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{586, 3059042077u, 0u, 3059042077u, 0, TANHF_TOLERANCE, 0},
+{587, 1043691622u, 4288164501u, 1043568665u, 0, TANHF_TOLERANCE, 0},
+{588, 1314588083u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{589, 3141533334u, 0u, 3141533298u, 0, TANHF_TOLERANCE, 0},
+{590, 3157534378u, 3899913312u, 3157533902u, 0, TANHF_TOLERANCE, 0},
+{591, 3400949680u, 0u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{592, 3365581801u, 9596u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{593, 1110424755u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{594, 3189917167u, 0u, 3189829030u, 0, TANHF_TOLERANCE, 0},
+{595, 969804941u, 4294836255u, 969804940u, 0, TANHF_TOLERANCE, 0},
+{596, 1139120919u, 4294967176u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{597, 934308144u, 0u, 934308144u, 0, TANHF_TOLERANCE, 0},
+{598, 1220524226u, 1440u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{599, 3162548604u, 3394333056u, 3162547911u, 0, TANHF_TOLERANCE, 0},
+{600, 3382391700u, 4294966243u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{601, 1156767533u, 7u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{602, 3079222483u, 4294963487u, 3079222483u, 0, TANHF_TOLERANCE, 0},
+{603, 994934087u, 0u, 994934043u, 0, TANHF_TOLERANCE, 0},
+{604, 3185240099u, 122u, 3185185712u, 0, TANHF_TOLERANCE, 0},
+{605, 3479873563u, 3288004u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{606, 3424264117u, 4203174416u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{607, 3228365887u, 275492u, 3212816465u, 0, TANHF_TOLERANCE, 0},
+{608, 1035909900u, 4101891u, 1035873887u, 0, TANHF_TOLERANCE, 0},
+{609, 3024951184u, 3626688u, 3024951184u, 0, TANHF_TOLERANCE, 0},
+{610, 1212129651u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{611, 3125775254u, 0u, 3125775251u, 0, TANHF_TOLERANCE, 0},
+{612, 1037464105u, 0u, 1037412966u, 0, TANHF_TOLERANCE, 0},
+{613, 1311706596u, 6702361u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{614, 918212457u, 0u, 918212457u, 0, TANHF_TOLERANCE, 0},
+{615, 1337315179u, 3421796288u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{616, 1131358407u, 4294955130u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{617, 1156517523u, 4294914801u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{618, 3210802820u, 0u, 3207900979u, 0, TANHF_TOLERANCE, 0},
+{619, 3337499209u, 621819u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{620, 3468429030u, 4294967266u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{621, 3253515800u, 28517u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{622, 3055299953u, 0u, 3055299953u, 0, TANHF_TOLERANCE, 0},
+{623, 959956547u, 0u, 959956547u, 0, TANHF_TOLERANCE, 0},
+{624, 3425290480u, 461u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{625, 1039917375u, 117u, 1039834646u, 0, TANHF_TOLERANCE, 0},
+{626, 3220979495u, 4234725636u, 3212197589u, 0, TANHF_TOLERANCE, 0},
+{627, 1311016004u, 4294941884u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{628, 1128016396u, 27u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{629, 3210335769u, 0u, 3207661956u, 0, TANHF_TOLERANCE, 0},
+{630, 3022705759u, 4287084865u, 3022705759u, 0, TANHF_TOLERANCE, 0},
+{631, 1206054701u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{632, 3144504834u, 3170u, 3144504766u, 0, TANHF_TOLERANCE, 0},
+{633, 1213609983u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{634, 1246902946u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{635, 995850843u, 3845036544u, 995850789u, 0, TANHF_TOLERANCE, 0},
+{636, 3362082828u, 4294328268u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{637, 1029480631u, 0u, 1029466664u, 0, TANHF_TOLERANCE, 0},
+{638, 3153568584u, 0u, 3153568275u, 0, TANHF_TOLERANCE, 0},
+{639, 3384988527u, 0u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{640, 1317696241u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{641, 3235395924u, 249u, 3212836819u, 0, TANHF_TOLERANCE, 0},
+{642, 3341877624u, 0u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{643, 1228636133u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{644, 3161654634u, 4294939932u, 3161653466u, 0, TANHF_TOLERANCE, 0},
+{645, 3162655243u, 4294964738u, 3162654523u, 0, TANHF_TOLERANCE, 0},
+{646, 1207246237u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{647, 1165476654u, 4294877038u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{648, 1215278023u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{649, 1017239798u, 4167373560u, 1017238418u, 0, TANHF_TOLERANCE, 0},
+{650, 1149651309u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{651, 1111943722u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{652, 1189849849u, 4293652457u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{653, 3204848496u, 0u, 3203799673u, 0, TANHF_TOLERANCE, 0},
+{654, 1249758327u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{655, 3092982276u, 4065500752u, 3092982276u, 0, TANHF_TOLERANCE, 0},
+{656, 1168098747u, 1063712256u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{657, 892549317u, 13301u, 892549317u, 0, TANHF_TOLERANCE, 0},
+{658, 3301009024u, 4286178976u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{659, 3233089227u, 204399u, 3212836455u, 0, TANHF_TOLERANCE, 0},
+{660, 3218245284u, 1767132u, 3211631110u, 0, TANHF_TOLERANCE, 0},
+{661, 3215981890u, 4294967286u, 3210820373u, 0, TANHF_TOLERANCE, 0},
+{662, 1266687209u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{663, 3487959775u, 4294948774u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{664, 943645710u, 0u, 943645710u, 0, TANHF_TOLERANCE, 0},
+{665, 3345065699u, 4294966959u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{666, 935847271u, 1u, 935847271u, 0, TANHF_TOLERANCE, 0},
+{667, 3410336089u, 47u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{668, 3082940740u, 1562501120u, 3082940740u, 0, TANHF_TOLERANCE, 0},
+{669, 1141063391u, 5507u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{670, 3059263153u, 0u, 3059263153u, 0, TANHF_TOLERANCE, 0},
+{671, 3353679791u, 0u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{672, 1001823878u, 0u, 1001823754u, 0, TANHF_TOLERANCE, 0},
+{673, 1009130212u, 0u, 1009129839u, 0, TANHF_TOLERANCE, 0},
+{674, 3367127535u, 0u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{675, 1032920919u, 3981458912u, 1032905032u, 0, TANHF_TOLERANCE, 0},
+{676, 3281952870u, 0u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{677, 1237868497u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{678, 1153753924u, 4294958733u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{679, 1120261759u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{680, 3226328360u, 4294623870u, 3212783021u, 0, TANHF_TOLERANCE, 0},
+{681, 3349595986u, 4294967271u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{682, 3166889490u, 4294965026u, 3166887081u, 0, TANHF_TOLERANCE, 0},
+{683, 1087750238u, 16u, 1065353163u, 0, TANHF_TOLERANCE, 0},
+{684, 3121620061u, 4294773019u, 3121620060u, 0, TANHF_TOLERANCE, 0},
+{685, 1066116543u, 0u, 1061951489u, 0, TANHF_TOLERANCE, 0},
+{686, 3210898034u, 0u, 3207948571u, 0, TANHF_TOLERANCE, 0},
+{687, 3051923237u, 4294697573u, 3051923237u, 0, TANHF_TOLERANCE, 0},
+{688, 1030612298u, 4294908239u, 1030594791u, 0, TANHF_TOLERANCE, 0},
+{689, 1186234578u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{690, 1331680743u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{691, 3060774997u, 2318310656u, 3060774997u, 0, TANHF_TOLERANCE, 0},
+{692, 887589411u, 141578704u, 887589411u, 0, TANHF_TOLERANCE, 0},
+{693, 1045232522u, 4294967290u, 1045055916u, 0, TANHF_TOLERANCE, 0},
+{694, 3119858470u, 0u, 3119858469u, 0, TANHF_TOLERANCE, 0},
+{695, 3349432725u, 0u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{696, 912423027u, 0u, 912423027u, 0, TANHF_TOLERANCE, 0},
+{697, 3228795133u, 4294967132u, 3212820239u, 0, TANHF_TOLERANCE, 0},
+{698, 3194674746u, 0u, 3194410390u, 0, TANHF_TOLERANCE, 0},
+{699, 3296784303u, 4294967098u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{700, 965402291u, 0u, 965402291u, 0, TANHF_TOLERANCE, 0},
+{701, 3388153589u, 4246639564u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{702, 1133410485u, 4294951516u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{703, 3136790322u, 7u, 3136790303u, 0, TANHF_TOLERANCE, 0},
+{704, 3369970587u, 0u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{705, 1270451568u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{706, 989498922u, 0u, 989498902u, 0, TANHF_TOLERANCE, 0},
+{707, 1280215674u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{708, 1171873518u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{709, 3298258100u, 0u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{710, 3415208824u, 0u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{711, 1001897182u, 0u, 1001897056u, 0, TANHF_TOLERANCE, 0},
+{712, 3152777939u, 4294967281u, 3152777673u, 0, TANHF_TOLERANCE, 0},
+{713, 985903305u, 4294945424u, 985903295u, 0, TANHF_TOLERANCE, 0},
+{714, 3357328848u, 0u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{715, 982612185u, 0u, 982612181u, 0, TANHF_TOLERANCE, 0},
+{716, 3267868136u, 136421u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{717, 3319048157u, 7150u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{718, 1144755661u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{719, 898467286u, 0u, 898467286u, 0, TANHF_TOLERANCE, 0},
+{720, 3301461672u, 1119632u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{721, 3364525678u, 0u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{722, 931441127u, 285u, 931441127u, 0, TANHF_TOLERANCE, 0},
+{723, 3146660041u, 0u, 3146659982u, 0, TANHF_TOLERANCE, 0},
+{724, 3467121799u, 0u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{725, 1151257041u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{726, 3097873255u, 4294967295u, 3097873255u, 0, TANHF_TOLERANCE, 0},
+{727, 3130670309u, 0u, 3130670304u, 0, TANHF_TOLERANCE, 0},
+{728, 1017573824u, 0u, 1017572310u, 0, TANHF_TOLERANCE, 0},
+{729, 1258369714u, 3364363264u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{730, 1216602683u, 4294468761u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{731, 3297265739u, 228335u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{732, 1071940738u, 4294963632u, 1064434859u, 0, TANHF_TOLERANCE, 0},
+{733, 922601356u, 4294937447u, 922601356u, 0, TANHF_TOLERANCE, 0},
+{734, 3462285635u, 4085532736u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{735, 3357177805u, 5u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{736, 3049120080u, 0u, 3049120080u, 0, TANHF_TOLERANCE, 0},
+{737, 1153863660u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{738, 3034243695u, 0u, 3034243695u, 0, TANHF_TOLERANCE, 0},
+{739, 1249365132u, 4294967060u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{740, 3046215730u, 0u, 3046215730u, 0, TANHF_TOLERANCE, 0},
+{741, 3047251716u, 8u, 3047251716u, 0, TANHF_TOLERANCE, 0},
+{742, 3131219358u, 2355170688u, 3131219353u, 0, TANHF_TOLERANCE, 0},
+{743, 3222096285u, 59453u, 3212435981u, 0, TANHF_TOLERANCE, 0},
+{744, 1297708818u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{745, 3345532722u, 4293531291u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{746, 3418753236u, 4002743296u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{747, 1277417964u, 1103002624u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{748, 987577257u, 1370u, 987577243u, 0, TANHF_TOLERANCE, 0},
+{749, 3161606610u, 0u, 3161605453u, 0, TANHF_TOLERANCE, 0},
+{750, 888030585u, 0u, 888030585u, 0, TANHF_TOLERANCE, 0},
+{751, 1043442869u, 4294963715u, 1043327408u, 0, TANHF_TOLERANCE, 0},
+{752, 3320923228u, 3214934912u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{753, 1337400405u, 418188288u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{754, 3400348640u, 0u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{755, 1250249095u, 1u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{756, 3284411233u, 7805u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{757, 3020883322u, 0u, 3020883322u, 0, TANHF_TOLERANCE, 0},
+{758, 1215968622u, 2531374080u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{759, 3202319550u, 0u, 3201454820u, 0, TANHF_TOLERANCE, 0},
+{760, 3061638260u, 0u, 3061638260u, 0, TANHF_TOLERANCE, 0},
+{761, 1025404104u, 1u, 1025398930u, 0, TANHF_TOLERANCE, 0},
+{762, 3138086437u, 0u, 3138086423u, 0, TANHF_TOLERANCE, 0},
+{763, 3091024506u, 3752313152u, 3091024506u, 0, TANHF_TOLERANCE, 0},
+{764, 3362748242u, 4294517284u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{765, 3099671635u, 4294967295u, 3099671635u, 0, TANHF_TOLERANCE, 0},
+{766, 3068014841u, 0u, 3068014841u, 0, TANHF_TOLERANCE, 0},
+{767, 1252237719u, 105u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{768, 3327895594u, 517257u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{769, 3082454432u, 0u, 3082454432u, 0, TANHF_TOLERANCE, 0},
+{770, 3396161504u, 16393u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{771, 1099710167u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{772, 1157186482u, 109233848u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{773, 1282110851u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{774, 3477008113u, 3797391872u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{775, 3292127294u, 4282395772u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{776, 1123357102u, 4294966999u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{777, 1106837025u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{778, 1049949008u, 230u, 1049682635u, 0, TANHF_TOLERANCE, 0},
+{779, 1253017688u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{780, 1108543194u, 4294966999u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{781, 3087985411u, 1700586u, 3087985411u, 0, TANHF_TOLERANCE, 0},
+{782, 3163283126u, 2976129280u, 3163282235u, 0, TANHF_TOLERANCE, 0},
+{783, 1160162706u, 14164775u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{784, 3305715025u, 0u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{785, 1266928623u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{786, 3025340297u, 43483u, 3025340297u, 0, TANHF_TOLERANCE, 0},
+{787, 3438080027u, 0u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{788, 3344574751u, 0u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{789, 1152416724u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{790, 1218239308u, 161u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{791, 3263310567u, 0u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{792, 3041998669u, 2782u, 3041998669u, 0, TANHF_TOLERANCE, 0},
+{793, 1000313118u, 0u, 1000313035u, 0, TANHF_TOLERANCE, 0},
+{794, 972485427u, 131u, 972485426u, 0, TANHF_TOLERANCE, 0},
+{795, 3290264612u, 137u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{796, 3222106584u, 18249u, 3212437922u, 0, TANHF_TOLERANCE, 0},
+{797, 1278946388u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{798, 947914771u, 0u, 947914771u, 0, TANHF_TOLERANCE, 0},
+{799, 3167730654u, 0u, 3167727737u, 0, TANHF_TOLERANCE, 0},
+{800, 1098530298u, 4294967260u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{801, 3232726036u, 0u, 3212836285u, 0, TANHF_TOLERANCE, 0},
+{802, 1297190916u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{803, 1277649137u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{804, 3203377685u, 466619008u, 3202322865u, 0, TANHF_TOLERANCE, 0},
+{805, 3090306474u, 0u, 3090306474u, 0, TANHF_TOLERANCE, 0},
+{806, 3244032016u, 0u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{807, 3033122376u, 0u, 3033122376u, 0, TANHF_TOLERANCE, 0},
+{808, 1096155623u, 7454884u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{809, 873151908u, 4294967280u, 873151908u, 0, TANHF_TOLERANCE, 0},
+{810, 3238729605u, 245005088u, 3212836863u, 0, TANHF_TOLERANCE, 0},
+{811, 3317196817u, 0u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{812, 3374748510u, 0u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{813, 3345634950u, 0u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{814, 3189860276u, 0u, 3189773537u, 0, TANHF_TOLERANCE, 0},
+{815, 887311687u, 9077u, 887311687u, 0, TANHF_TOLERANCE, 0},
+{816, 3396917283u, 0u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{817, 3317032737u, 0u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{818, 1200051436u, 3555u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{819, 3105291012u, 45279u, 3105291012u, 0, TANHF_TOLERANCE, 0},
+{820, 1306520561u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{821, 1314936356u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{822, 3475052219u, 71851496u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{823, 3085636260u, 33u, 3085636260u, 0, TANHF_TOLERANCE, 0},
+{824, 3393227708u, 4294967164u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{825, 3182540197u, 0u, 3182511055u, 0, TANHF_TOLERANCE, 0},
+{826, 3349005404u, 0u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{827, 3154720153u, 4090490144u, 3154719943u, 0, TANHF_TOLERANCE, 0},
+{828, 1262863321u, 345111u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{829, 882902102u, 512593u, 882902102u, 0, TANHF_TOLERANCE, 0},
+{830, 1053387478u, 0u, 1052746205u, 0, TANHF_TOLERANCE, 0},
+{831, 3387653691u, 4294896063u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{832, 3136364836u, 0u, 3136364818u, 0, TANHF_TOLERANCE, 0},
+{833, 1338680611u, 4126u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{834, 1112891928u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{835, 893449284u, 0u, 893449284u, 0, TANHF_TOLERANCE, 0},
+{836, 892311459u, 14u, 892311459u, 0, TANHF_TOLERANCE, 0},
+{837, 3105373037u, 4294967280u, 3105373037u, 0, TANHF_TOLERANCE, 0},
+{838, 1190105283u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{839, 1011225926u, 14129u, 1011225294u, 0, TANHF_TOLERANCE, 0},
+{840, 1043025031u, 0u, 1042921472u, 0, TANHF_TOLERANCE, 0},
+{841, 3410531037u, 0u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{842, 3125834184u, 0u, 3125834181u, 0, TANHF_TOLERANCE, 0},
+{843, 902318189u, 0u, 902318189u, 0, TANHF_TOLERANCE, 0},
+{844, 3213624815u, 0u, 3209453041u, 0, TANHF_TOLERANCE, 0},
+{845, 1120888322u, 5u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{846, 1315217243u, 4291026624u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{847, 3137758475u, 0u, 3137758463u, 0, TANHF_TOLERANCE, 0},
+{848, 1040617590u, 0u, 1040567175u, 0, TANHF_TOLERANCE, 0},
+{849, 955384253u, 4294910624u, 955384253u, 0, TANHF_TOLERANCE, 0},
+{850, 3061417900u, 7119u, 3061417900u, 0, TANHF_TOLERANCE, 0},
+{851, 904255535u, 0u, 904255535u, 0, TANHF_TOLERANCE, 0},
+{852, 1022984119u, 0u, 1022979065u, 0, TANHF_TOLERANCE, 0},
+{853, 997362368u, 0u, 997362295u, 0, TANHF_TOLERANCE, 0},
+{854, 900933520u, 19u, 900933520u, 0, TANHF_TOLERANCE, 0},
+{855, 1168623062u, 661u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{856, 878737490u, 4294967181u, 878737490u, 0, TANHF_TOLERANCE, 0},
+{857, 1039827284u, 1u, 1039745896u, 0, TANHF_TOLERANCE, 0},
+{858, 1021564080u, 0u, 1021560232u, 0, TANHF_TOLERANCE, 0},
+{859, 3458669745u, 0u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{860, 3327516316u, 4286775627u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{861, 1040711112u, 4294967293u, 1040659084u, 0, TANHF_TOLERANCE, 0},
+{862, 1134528351u, 4294638880u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{863, 3039884464u, 6340u, 3039884464u, 0, TANHF_TOLERANCE, 0},
+{864, 3414352838u, 4294876517u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{865, 1133689539u, 1u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{866, 3455688478u, 4294945415u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{867, 1137634874u, 395u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{868, 3415502662u, 0u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{869, 954999730u, 0u, 954999730u, 0, TANHF_TOLERANCE, 0},
+{870, 1066157309u, 4294967285u, 1061981085u, 0, TANHF_TOLERANCE, 0},
+{871, 3436353675u, 8741u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{872, 940437609u, 0u, 940437609u, 0, TANHF_TOLERANCE, 0},
+{873, 3108347547u, 4203356328u, 3108347547u, 0, TANHF_TOLERANCE, 0},
+{874, 3064200154u, 0u, 3064200154u, 0, TANHF_TOLERANCE, 0},
+{875, 1023889593u, 0u, 1023886368u, 0, TANHF_TOLERANCE, 0},
+{876, 3272661536u, 3393767296u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{877, 1170245333u, 1083705u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{878, 1219052056u, 4294526211u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{879, 3318983619u, 4294967246u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{880, 3372118621u, 0u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{881, 3146190320u, 0u, 3146190270u, 0, TANHF_TOLERANCE, 0},
+{882, 1299683827u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{883, 3190796331u, 1457792256u, 3190684670u, 0, TANHF_TOLERANCE, 0},
+{884, 3086068902u, 2772570624u, 3086068902u, 0, TANHF_TOLERANCE, 0},
+{885, 3064155399u, 0u, 3064155399u, 0, TANHF_TOLERANCE, 0},
+{886, 3040314717u, 1u, 3040314717u, 0, TANHF_TOLERANCE, 0},
+{887, 3257224022u, 4294737239u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{888, 1229268598u, 1u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{889, 3184078812u, 0u, 3184036562u, 0, TANHF_TOLERANCE, 0},
+{890, 1086717248u, 4256439624u, 1065353074u, 0, TANHF_TOLERANCE, 0},
+{891, 3434884607u, 0u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{892, 3464955606u, 0u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{893, 1025278524u, 0u, 1025273535u, 0, TANHF_TOLERANCE, 0},
+{894, 1242829722u, 4294967290u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{895, 3075149137u, 76u, 3075149137u, 0, TANHF_TOLERANCE, 0},
+{896, 1200927971u, 1093714048u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{897, 3326858092u, 3870213632u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{898, 1246019790u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{899, 3184801644u, 424u, 3184752079u, 0, TANHF_TOLERANCE, 0},
+{900, 1136052740u, 4294967282u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{901, 1069009211u, 0u, 1063555619u, 0, TANHF_TOLERANCE, 0},
+{902, 1015670780u, 20u, 1015669926u, 0, TANHF_TOLERANCE, 0},
+{903, 1012543234u, 70u, 1012542389u, 0, TANHF_TOLERANCE, 0},
+{904, 3316611992u, 4291436324u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{905, 1087942795u, 4294961657u, 1065353172u, 0, TANHF_TOLERANCE, 0},
+{906, 3426365713u, 0u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{907, 3066654389u, 4087070784u, 3066654389u, 0, TANHF_TOLERANCE, 0},
+{908, 3295326432u, 842363840u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{909, 3318835308u, 4294967077u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{910, 3283555717u, 0u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{911, 3381255420u, 0u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{912, 3040485181u, 4294241104u, 3040485181u, 0, TANHF_TOLERANCE, 0},
+{913, 3388772093u, 0u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{914, 954670189u, 760u, 954670189u, 0, TANHF_TOLERANCE, 0},
+{915, 1319200415u, 4293050361u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{916, 1279324488u, 4294967293u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{917, 3217795424u, 0u, 3211500035u, 0, TANHF_TOLERANCE, 0},
+{918, 3455131757u, 10314665u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{919, 1246947517u, 6u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{920, 3396723577u, 0u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{921, 3433761025u, 0u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{922, 3201187455u, 0u, 3200500904u, 0, TANHF_TOLERANCE, 0},
+{923, 1173247961u, 32661u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{924, 3037297123u, 4294904338u, 3037297123u, 0, TANHF_TOLERANCE, 0},
+{925, 3248534678u, 1927801856u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{926, 3083019343u, 0u, 3083019343u, 0, TANHF_TOLERANCE, 0},
+{927, 3042018375u, 0u, 3042018375u, 0, TANHF_TOLERANCE, 0},
+{928, 1082862511u, 0u, 1065347617u, 0, TANHF_TOLERANCE, 0},
+{929, 3157626955u, 3075906560u, 3157626468u, 0, TANHF_TOLERANCE, 0},
+{930, 1341821683u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{931, 881101379u, 32095u, 881101379u, 0, TANHF_TOLERANCE, 0},
+{932, 1079061705u, 0u, 1065304658u, 0, TANHF_TOLERANCE, 0},
+{933, 3182695954u, 4294967257u, 3182665629u, 0, TANHF_TOLERANCE, 0},
+{934, 1105291533u, 3424974848u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{935, 1016023520u, 4294967293u, 1016022562u, 0, TANHF_TOLERANCE, 0},
+{936, 3370691006u, 198615840u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{937, 1156767169u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{938, 3077020499u, 0u, 3077020499u, 0, TANHF_TOLERANCE, 0},
+{939, 1104284039u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{940, 3335212901u, 1662125568u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{941, 1093697541u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{942, 3266691185u, 2645u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{943, 3179003144u, 37u, 3178982403u, 0, TANHF_TOLERANCE, 0},
+{944, 1094115255u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{945, 3424086808u, 4294967244u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{946, 3353608773u, 305u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{947, 973664327u, 1394344832u, 973664326u, 0, TANHF_TOLERANCE, 0},
+{948, 882878091u, 0u, 882878091u, 0, TANHF_TOLERANCE, 0},
+{949, 1098662266u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{950, 927582555u, 0u, 927582555u, 0, TANHF_TOLERANCE, 0},
+{951, 3111440310u, 0u, 3111440310u, 0, TANHF_TOLERANCE, 0},
+{952, 3476083859u, 0u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{953, 3038754840u, 0u, 3038754840u, 0, TANHF_TOLERANCE, 0},
+{954, 979878744u, 1008405u, 979878740u, 0, TANHF_TOLERANCE, 0},
+{955, 3464546616u, 0u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{956, 1002542205u, 0u, 1002542057u, 0, TANHF_TOLERANCE, 0},
+{957, 3443552129u, 0u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{958, 1287620154u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{959, 946058434u, 4207447u, 946058434u, 0, TANHF_TOLERANCE, 0},
+{960, 3073260205u, 0u, 3073260205u, 0, TANHF_TOLERANCE, 0},
+{961, 1245702957u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{962, 989655126u, 528989952u, 989655105u, 0, TANHF_TOLERANCE, 0},
+{963, 1002715618u, 32425u, 1002715464u, 0, TANHF_TOLERANCE, 0},
+{964, 3087802274u, 0u, 3087802274u, 0, TANHF_TOLERANCE, 0},
+{965, 1000863905u, 54834u, 1000863809u, 0, TANHF_TOLERANCE, 0},
+{966, 3415763001u, 0u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{967, 3283471961u, 10190634u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{968, 3311210827u, 36713u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{969, 3026311911u, 0u, 3026311911u, 0, TANHF_TOLERANCE, 0},
+{970, 1198307901u, 68u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{971, 1288901567u, 206618288u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{972, 922255363u, 0u, 922255363u, 0, TANHF_TOLERANCE, 0},
+{973, 1113104661u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{974, 1136714348u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{975, 948856035u, 0u, 948856035u, 0, TANHF_TOLERANCE, 0},
+{976, 1062512367u, 4294967293u, 1059998546u, 0, TANHF_TOLERANCE, 0},
+{977, 3486907092u, 0u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{978, 1162027071u, 4294964303u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{979, 1034561811u, 0u, 1034536221u, 0, TANHF_TOLERANCE, 0},
+{980, 3271615417u, 0u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{981, 1042014529u, 869u, 1041936344u, 0, TANHF_TOLERANCE, 0},
+{982, 1177157787u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{983, 3196144817u, 0u, 3195878666u, 0, TANHF_TOLERANCE, 0},
+{984, 3432084552u, 0u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{985, 1309658335u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{986, 1226494979u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{987, 3100289712u, 3743522688u, 3100289712u, 0, TANHF_TOLERANCE, 0},
+{988, 3375507013u, 462886112u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{989, 3460699001u, 0u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{990, 3079231719u, 0u, 3079231719u, 0, TANHF_TOLERANCE, 0},
+{991, 3093951884u, 0u, 3093951884u, 0, TANHF_TOLERANCE, 0},
+{992, 3468023178u, 156157u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{993, 1204196034u, 4294966040u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{994, 3459877411u, 0u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{995, 909696559u, 3378u, 909696559u, 0, TANHF_TOLERANCE, 0},
+{996, 1161439847u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{997, 908663107u, 0u, 908663107u, 0, TANHF_TOLERANCE, 0},
+{998, 1055319316u, 4294967238u, 1054370620u, 0, TANHF_TOLERANCE, 0},
+{999, 1084378658u, 0u, 1065351897u, 0, TANHF_TOLERANCE, 0},
+{1000, 3053887750u, 4294922339u, 3053887750u, 0, TANHF_TOLERANCE, 0},
+{1001, 3022828828u, 0u, 3022828828u, 0, TANHF_TOLERANCE, 0},
+{1002, 1226473697u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{1003, 1123114742u, 841711u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{1004, 1258114435u, 130141336u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{1005, 3468040845u, 0u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{1006, 1178825761u, 54u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{1007, 3059266302u, 0u, 3059266302u, 0, TANHF_TOLERANCE, 0},
+{1008, 3223384012u, 225u, 3212618726u, 0, TANHF_TOLERANCE, 0},
+{1009, 1019964626u, 1299605u, 1019961886u, 0, TANHF_TOLERANCE, 0},
+{1010, 3445262427u, 3129568512u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{1011, 1125653081u, 129823u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{1012, 3337652712u, 0u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{1013, 1184753508u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{1014, 996404791u, 4294853343u, 996404731u, 0, TANHF_TOLERANCE, 0},
+{1015, 1188439315u, 55u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{1016, 906557513u, 0u, 906557513u, 0, TANHF_TOLERANCE, 0},
+{1017, 916831283u, 0u, 916831283u, 0, TANHF_TOLERANCE, 0},
+{1018, 996786317u, 0u, 996786252u, 0, TANHF_TOLERANCE, 0},
+{1019, 3461635065u, 0u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{1020, 1188167943u, 74707u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{1021, 3036502395u, 7309u, 3036502395u, 0, TANHF_TOLERANCE, 0},
+{1022, 891257783u, 18537700u, 891257783u, 0, TANHF_TOLERANCE, 0},
+{1023, 3290079438u, 0u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{1024, 3350690327u, 0u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{1025, 1102061604u, 4253821380u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{1026, 1282351521u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{1027, 3458861065u, 4292002951u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{1028, 3095256878u, 0u, 3095256878u, 0, TANHF_TOLERANCE, 0},
+{1029, 3163373610u, 0u, 3163372693u, 0, TANHF_TOLERANCE, 0},
+{1030, 3228793330u, 0u, 3212820224u, 0, TANHF_TOLERANCE, 0},
+{1031, 3422194733u, 0u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{1032, 3083885296u, 0u, 3083885296u, 0, TANHF_TOLERANCE, 0},
+{1033, 1261940623u, 4288291120u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{1034, 3400603081u, 4294967290u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{1035, 1219411812u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{1036, 3094833770u, 0u, 3094833770u, 0, TANHF_TOLERANCE, 0},
+{1037, 3139250800u, 0u, 3139250780u, 0, TANHF_TOLERANCE, 0},
+{1038, 886201503u, 4294967150u, 886201503u, 0, TANHF_TOLERANCE, 0},
+{1039, 3297366026u, 7u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{1040, 1218488455u, 4294964141u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{1041, 3040358923u, 0u, 3040358923u, 0, TANHF_TOLERANCE, 0},
+{1042, 1283938137u, 53086u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{1043, 3182551696u, 0u, 3182522467u, 0, TANHF_TOLERANCE, 0},
+{1044, 1317098613u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{1045, 3116209179u, 4294965434u, 3116209178u, 0, TANHF_TOLERANCE, 0},
+{1046, 3431703657u, 0u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{1047, 3239728775u, 0u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{1048, 3207141672u, 0u, 3205769004u, 0, TANHF_TOLERANCE, 0},
+{1049, 3154378805u, 0u, 3154378618u, 0, TANHF_TOLERANCE, 0},
+{1050, 3069658155u, 0u, 3069658155u, 0, TANHF_TOLERANCE, 0},
+{1051, 3313160088u, 0u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{1052, 3207056527u, 4293469023u, 3205712210u, 0, TANHF_TOLERANCE, 0},
+{1053, 1284174954u, 4180334232u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{1054, 3156081645u, 4294964338u, 3156081324u, 0, TANHF_TOLERANCE, 0},
+{1055, 1063693032u, 0u, 1060602017u, 0, TANHF_TOLERANCE, 0},
+{1056, 3036026175u, 4845007u, 3036026175u, 0, TANHF_TOLERANCE, 0},
+{1057, 1102631663u, 4290881696u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{1058, 968803479u, 0u, 968803478u, 0, TANHF_TOLERANCE, 0},
+{1059, 3273080388u, 0u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{1060, 1172529774u, 4294966405u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{1061, 1306695905u, 147733664u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{1062, 1003649752u, 338518u, 1003649562u, 0, TANHF_TOLERANCE, 0},
+{1063, 1078478376u, 2364151808u, 1065289116u, 0, TANHF_TOLERANCE, 0},
+{1064, 3158855023u, 0u, 3158854369u, 0, TANHF_TOLERANCE, 0},
+{1065, 1165177679u, 4294967097u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{1066, 3403009513u, 4293749042u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{1067, 952348506u, 4294108410u, 952348506u, 0, TANHF_TOLERANCE, 0},
+{1068, 1222777442u, 153u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{1069, 1325324763u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{1070, 3363524213u, 0u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{1071, 1158950321u, 1u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{1072, 903129873u, 4272788450u, 903129873u, 0, TANHF_TOLERANCE, 0},
+{1073, 3078339944u, 0u, 3078339944u, 0, TANHF_TOLERANCE, 0},
+{1074, 1208345407u, 6333643u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{1075, 1258634105u, 3575206u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{1076, 1248478509u, 102613680u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{1077, 1153863988u, 4229464460u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{1078, 1235620969u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{1079, 1097120930u, 4294967294u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{1080, 3469778622u, 70286u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{1081, 1147712200u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{1082, 1124721745u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{1083, 3261744304u, 0u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{1084, 1064922416u, 1518435840u, 1061168937u, 0, TANHF_TOLERANCE, 0},
+{1085, 3303160152u, 0u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{1086, 1315090496u, 4294967183u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{1087, 3230403187u, 1820050432u, 3212831561u, 0, TANHF_TOLERANCE, 0},
+{1088, 1335399673u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{1089, 1072458508u, 4294404660u, 1064538920u, 0, TANHF_TOLERANCE, 0},
+{1090, 3303015249u, 0u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{1091, 3252139741u, 0u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{1092, 3468519966u, 0u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{1093, 1006231203u, 0u, 1006230886u, 0, TANHF_TOLERANCE, 0},
+{1094, 951554138u, 0u, 951554138u, 0, TANHF_TOLERANCE, 0},
+{1095, 942046828u, 0u, 942046828u, 0, TANHF_TOLERANCE, 0},
+{1096, 3319723279u, 4277552160u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{1097, 3255104167u, 0u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{1098, 1155477903u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{1099, 3273889176u, 0u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{1100, 3237813668u, 4133749200u, 3212836859u, 0, TANHF_TOLERANCE, 0},
+{1101, 1228207362u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{1102, 975349337u, 748694784u, 975349336u, 0, TANHF_TOLERANCE, 0},
+{1103, 1290175785u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{1104, 981908840u, 4294962938u, 981908837u, 0, TANHF_TOLERANCE, 0},
+{1105, 941187647u, 33u, 941187647u, 0, TANHF_TOLERANCE, 0},
+{1106, 1214223128u, 4294967293u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{1107, 3422922584u, 6u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{1108, 1315857601u, 1055172096u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{1109, 3453226030u, 4294967291u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{1110, 1078359574u, 0u, 1065285387u, 0, TANHF_TOLERANCE, 0},
+{1111, 1029557624u, 4294965511u, 1029543432u, 0, TANHF_TOLERANCE, 0},
+{1112, 1207675424u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{1113, 1028355074u, 4113313408u, 1028344119u, 0, TANHF_TOLERANCE, 0},
+{1114, 3119299090u, 24787u, 3119299089u, 0, TANHF_TOLERANCE, 0},
+{1115, 1248421894u, 4294582111u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{1116, 3353251994u, 12u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{1117, 876926659u, 4294966792u, 876926659u, 0, TANHF_TOLERANCE, 0},
+{1118, 1076752219u, 0u, 1065207581u, 0, TANHF_TOLERANCE, 0},
+{1119, 3388531942u, 0u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{1120, 1273395082u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{1121, 3385588183u, 4294967251u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{1122, 3192315328u, 4294966714u, 3192153914u, 0, TANHF_TOLERANCE, 0},
+{1123, 3441804648u, 4294967121u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{1124, 3392827417u, 45125368u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{1125, 1161241793u, 2814016256u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{1126, 3034494183u, 0u, 3034494183u, 0, TANHF_TOLERANCE, 0},
+{1127, 1171318485u, 4294306215u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{1128, 3047748143u, 0u, 3047748143u, 0, TANHF_TOLERANCE, 0},
+{1129, 1001216371u, 0u, 1001216265u, 0, TANHF_TOLERANCE, 0},
+{1130, 912515889u, 2u, 912515889u, 0, TANHF_TOLERANCE, 0},
+{1131, 3391452505u, 0u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{1132, 3249603369u, 0u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{1133, 1220264047u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{1134, 3169816394u, 0u, 3169811920u, 0, TANHF_TOLERANCE, 0},
+{1135, 3098997418u, 0u, 3098997418u, 0, TANHF_TOLERANCE, 0},
+{1136, 3282212423u, 0u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{1137, 3352293320u, 4294967278u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{1138, 3296358441u, 0u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{1139, 1197828352u, 4294967281u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{1140, 3340510371u, 0u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{1141, 1127109339u, 4294570975u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{1142, 909467381u, 1001724u, 909467381u, 0, TANHF_TOLERANCE, 0},
+{1143, 1200599955u, 0u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{1144, 962230977u, 0u, 962230977u, 0, TANHF_TOLERANCE, 0},
+{1145, 3192887808u, 0u, 3192704420u, 0, TANHF_TOLERANCE, 0},
+{1146, 3237183876u, 0u, 3212836856u, 0, TANHF_TOLERANCE, 0},
+{1147, 939285924u, 0u, 939285924u, 0, TANHF_TOLERANCE, 0},
+{1148, 944050180u, 3871652128u, 944050180u, 0, TANHF_TOLERANCE, 0},
+{1149, 3058135703u, 0u, 3058135703u, 0, TANHF_TOLERANCE, 0},
+{1150, 3480592662u, 4294967238u, 3212836864u, 0, TANHF_TOLERANCE, 0},
+{1151, 3061939312u, 4294967125u, 3061939312u, 0, TANHF_TOLERANCE, 0},
+{1152, 1003299981u, 0u, 1003299805u, 0, TANHF_TOLERANCE, 0},
+{1153, 1155775526u, 7150230u, 1065353216u, 0, TANHF_TOLERANCE, 0},
+{1154, 1234491880u, 4283784819u, 1065353216u, 0, TANHF_TOLERANCE, 0}
+
+// AUTOMATICALLY GENERATED VECTORS STOP
+
+};
+
+#endif // CYGONCE_LIBM_SCABNF_H multiple inclusion protection
+
+// EOF tanhf.h
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/vector_support.h b/ecos/packages/language/c/libm/current/tests/vectors/vector_support.h
new file mode 100644
index 0000000..bf00a33
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/vector_support.h
@@ -0,0 +1,499 @@
+#ifndef CYGONCE_LIBM_VECTOR_SUPPORT_H
+#define CYGONCE_LIBM_VECTOR_SUPPORT_H
+//========================================================================
+//
+// vector_support.h
+//
+// Support for testing of the math library using test vectors
+//
+//========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour
+// Date: 1999-01-21
+// Purpose:
+// Description:
+// Usage: #include "vectors/vector_support.h"
+//
+//####DESCRIPTIONEND####
+//
+//========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+#include <pkgconf/isoinfra.h> // CYGINT_ISO_MAIN_STARTUP
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include <cyg/infra/testcase.h> // Test infrastructure
+#include <math.h> // Header for this package
+#include <sys/ieeefp.h> // Cyg_libm_ieee_double_shape_type
+#include <cyg/infra/diag.h>
+
+#ifndef CYGSEM_LIBM_COMPAT_IEEE_ONLY
+# include <errno.h> // For Cyg_ErrNo
+#endif
+
+// CONSTANTS
+
+#define PROBLEM_THRESHOLD 10 // Number of test vectors allowed to fail
+ // before we give up completely
+
+// HOW TO START TESTS
+
+#if CYGINT_ISO_MAIN_STARTUP
+
+# define START_TEST( test ) test(0)
+
+#elif defined(CYGFUN_KERNEL_API_C)
+
+# include <cyg/hal/hal_arch.h>
+# include <cyg/kernel/kapi.h>
+
+# define STACKSIZE CYGNUM_HAL_STACK_SIZE_TYPICAL
+
+static cyg_uint8 stack[STACKSIZE];
+static cyg_handle_t thr_handle;
+static cyg_thread thr;
+
+# define START_TEST( test ) CYG_MACRO_START \
+ cyg_thread_create( 4, &test, (cyg_addrword_t)0, "test", \
+ &stack[0], STACKSIZE, &thr_handle, &thr ); \
+ cyg_thread_resume( thr_handle ); \
+ cyg_scheduler_start(); \
+ CYG_MACRO_END
+
+externC int main( int, char ** );
+
+externC void
+cyg_user_start( void )
+{
+ (void) main(0, NULL);
+} // cyg_user_start()
+
+#else // !defined(CYGFUN_KERNEL_API_C)
+
+externC int main( int, char ** );
+
+externC void
+cyg_user_start( void )
+{
+ (void) main(0, NULL);
+} // cyg_user_start()
+
+# define START_TEST( test ) test(0)
+
+#endif
+
+// TYPE DEFINITIONS
+
+
+typedef enum {
+ CYG_LIBM_TEST_VEC_NONE, // this indicates whether the "double"
+ CYG_LIBM_TEST_VEC_INT, // is being used to store a double, an
+ CYG_LIBM_TEST_VEC_DOUBLE, // int, or its not being used at all!
+ CYG_LIBM_TEST_VEC_INT_P, // int pointer
+ CYG_LIBM_TEST_VEC_DOUBLE_P // double pointer
+} Cyg_libm_test_arg_type;
+
+
+// Define a type for a test vector record
+
+typedef struct {
+ cyg_ucount32 vector_num; // id number of this test vector record
+
+ // if any of the following arguments are ints rather than doubles, then
+ // use the lsw part to store it
+
+ cyg_uint32 arg1_msw; // first argument
+ cyg_uint32 arg1_lsw;
+ cyg_uint32 arg2_msw; // second argument
+ cyg_uint32 arg2_lsw;
+ cyg_uint32 result_msw; // expected return value
+ cyg_uint32 result_lsw;
+
+#ifndef CYGSEM_LIBM_COMPAT_IEEE_ONLY
+ Cyg_ErrNo errno_val; // expected value of errno. 0==unchanged
+#else
+ cyg_uint32 errno_val;
+#endif
+
+ double tolerance; // relative amount that it is allowed
+ // to vary. i.e. the value should be
+ // plus or minus result*tolerance
+
+ int matherr_type; // if testing the matherr() function,
+ // what type should the exception be
+} Cyg_libm_test_double_vec_t;
+
+
+// types to cope with the different forms of function to be called by the
+// test vector
+
+typedef double (*ddfn)( double, double );
+typedef double (*difn)( double, int );
+typedef double (*dfn)( double );
+typedef double (*ddpfn)( double, double *);
+typedef double (*dipfn)( double, int *);
+
+
+// STATIC FUNCTIONS
+
+// equivalent of abs() for doubles. We want to be independent of fabs()
+
+static double
+my_abs_d( double x )
+{
+ Cyg_libm_ieee_double_shape_type t;
+
+ t.value = x;
+
+ t.number.sign = 0;
+
+ return t.value;
+} // my_abs_d()
+
+
+static cyg_bool
+checkErrorAcceptable( Cyg_libm_ieee_double_shape_type is,
+ Cyg_libm_ieee_double_shape_type shouldbe,
+ double tolerance) // _relative_ amount it can vary
+{
+ Cyg_libm_ieee_double_shape_type temp_doub;
+
+ // first do a short-circuit check if its identical
+ if ( (is.parts.lsw == shouldbe.parts.lsw) &&
+ (is.parts.msw == shouldbe.parts.msw) )
+ return false;
+
+ // now check special cases
+
+ // +0 == -0
+ if ( (is.parts.lsw == 0) && (shouldbe.parts.lsw == 0) &&
+ ((is.parts.msw & 0x7fffffff) == 0) &&
+ ((shouldbe.parts.msw & 0x7fffffff) == 0) )
+ return false;
+
+ // +-infinity == +-infinity
+ if ((is.parts.lsw == 0) && (shouldbe.parts.lsw == 0) &&
+ (is.number.fraction0 == 0) && (shouldbe.number.fraction0 == 0) &&
+ (is.number.exponent == 2047) && (shouldbe.number.exponent == 2047))
+ {
+ return (is.number.sign != shouldbe.number.sign);
+ } // if
+
+ // both NaN. Assumes isnan works, but its pretty safe
+ if ( isnan(is.value) && isnan(shouldbe.value) )
+ return false;
+ else if (isnan(is.value) || isnan(shouldbe.value) )
+ return true;
+
+ // check same sign. Even around small values close to 0 we would want
+ // it to be on the right _side_ of 0
+ if ( is.number.sign != shouldbe.number.sign )
+ return true;
+
+ // okay, now work out what tolerance means for us
+
+ // find out what the difference is in the first place
+ temp_doub.value = my_abs_d( shouldbe.value - is.value );
+
+ // Check "both ways round" to deal with both under and overflow cases
+ if ( ((temp_doub.value / tolerance) < my_abs_d(shouldbe.value)) ||
+ (temp_doub.value < (my_abs_d(shouldbe.value) * tolerance)) )
+ return false;
+ else
+ return true; // so its not close enough
+
+} // checkErrorAcceptable()
+
+
+// This allows us to run through any test vectors of form:
+// double = fn(double, double)
+// double = fn(double)
+// double = fn(double, int)
+// double = fn(double, int *)
+// double = fn(double, double *)
+//
+// result type being non-double is left as a future enhancement
+//
+// This returns true if the tests all succeeded and false if any failed
+//
+static cyg_bool
+doTestVec( CYG_ADDRESS func_ptr,
+ Cyg_libm_test_arg_type arg1_type,
+ Cyg_libm_test_arg_type arg2_type,
+ Cyg_libm_test_arg_type result_type,
+ const Cyg_libm_test_double_vec_t *vectors,
+ cyg_ucount32 num_vectors )
+{
+ cyg_ucount32 problems=0;
+ cyg_ucount32 i;
+ Cyg_libm_ieee_double_shape_type arg1, arg2, result_wanted, ret;
+ cyg_ucount32 alive_count = num_vectors / 10;
+
+ if ((arg1_type != CYG_LIBM_TEST_VEC_DOUBLE) ||
+ (result_type != CYG_LIBM_TEST_VEC_DOUBLE) ) {
+ CYG_TEST_FAIL("Test vector arguments are not correct type!");
+ return false;
+ } // if
+
+ switch (arg2_type) {
+ case CYG_LIBM_TEST_VEC_DOUBLE:
+
+ {
+ ddfn fn = (ddfn) func_ptr;
+
+ for (i=0;
+ (i < num_vectors) && (problems < PROBLEM_THRESHOLD);
+ i++) {
+
+ if (0 == i % alive_count)
+ CYG_TEST_STILL_ALIVE(i, "Still crunching, please wait...");
+
+ arg1.parts.msw = vectors[i].arg1_msw;
+ arg1.parts.lsw = vectors[i].arg1_lsw;
+
+ arg2.parts.msw = vectors[i].arg2_msw;
+ arg2.parts.lsw = vectors[i].arg2_lsw;
+
+ result_wanted.parts.msw = vectors[i].result_msw;
+ result_wanted.parts.lsw = vectors[i].result_lsw;
+
+ ret.value = (*fn)( arg1.value, arg2.value );
+
+ if ((vectors[i].errno_val) != 0) {
+
+#ifndef CYGSEM_LIBM_COMPAT_IEEE_ONLY
+ // In IEEE-mode we can't check the answer if this
+ // is an error case
+
+ if ((cyg_libm_get_compat_mode() !=
+ CYGNUM_LIBM_COMPAT_IEEE) &&
+ (errno != vectors[i].errno_val)) {
+
+ ++problems;
+ diag_printf("Vector #%d\n", i+1);
+ CYG_TEST_FAIL( "error not set correctly");
+
+ } // if
+#endif
+
+ continue; // no point checking value in an error case
+ } // if
+ if (checkErrorAcceptable( ret, result_wanted,
+ vectors[i].tolerance) ) {
+ ++problems;
+ diag_printf("Vector #%d\n", i+1);
+ CYG_TEST_FAIL( "Result out of tolerance");
+ } // if
+ } // for
+
+ } // compound
+
+ break;
+
+ case CYG_LIBM_TEST_VEC_INT:
+
+ {
+ difn fn = (difn) func_ptr;
+
+ for (i=0;
+ (i < num_vectors) && (problems < PROBLEM_THRESHOLD);
+ i++) {
+
+ if (0 == i % alive_count)
+ CYG_TEST_STILL_ALIVE(i, "Still crunching, please wait...");
+
+ arg1.parts.msw = vectors[i].arg1_msw;
+ arg1.parts.lsw = vectors[i].arg1_lsw;
+
+ result_wanted.parts.msw = vectors[i].result_msw;
+ result_wanted.parts.lsw = vectors[i].result_lsw;
+
+ ret.value = (*fn)( arg1.value, vectors[i].arg2_lsw );
+ if (checkErrorAcceptable( ret, result_wanted,
+ vectors[i].tolerance) ) {
+ ++problems;
+ diag_printf("Vector #%d\n", i+1);
+ CYG_TEST_FAIL( "Result out of tolerance");
+ } // if
+ } // for
+
+ } // compound
+
+ break;
+
+ case CYG_LIBM_TEST_VEC_INT_P:
+
+ {
+ dipfn fn = (dipfn) func_ptr;
+ int my_int;
+ Cyg_libm_ieee_double_shape_type my_doub1, my_doub2;
+
+ for (i=0;
+ (i < num_vectors) && (problems < PROBLEM_THRESHOLD);
+ i++) {
+
+ if (0 == i % alive_count)
+ CYG_TEST_STILL_ALIVE(i, "Still crunching, please wait...");
+
+ arg1.parts.msw = vectors[i].arg1_msw;
+ arg1.parts.lsw = vectors[i].arg1_lsw;
+
+
+ result_wanted.parts.msw = vectors[i].result_msw;
+ result_wanted.parts.lsw = vectors[i].result_lsw;
+
+ ret.value = (*fn)( arg1.value, &my_int );
+ if (checkErrorAcceptable( ret, result_wanted,
+ vectors[i].tolerance) ) {
+ ++problems;
+ diag_printf("Vector #%d\n", i+1);
+ CYG_TEST_FAIL( "Result out of tolerance");
+ } // if
+
+ my_doub1.value = (double) my_int;
+ my_doub2.value = (double) (signed)vectors[i].arg2_lsw;
+
+ if (checkErrorAcceptable( my_doub1, my_doub2,
+ vectors[i].tolerance) ) {
+ ++problems;
+ diag_printf("Vector #%d\n", i+1);
+ CYG_TEST_FAIL( "Integer result out of tolerance");
+ } // if
+
+
+ } // for
+
+ } // compound
+
+ break;
+
+ case CYG_LIBM_TEST_VEC_DOUBLE_P:
+
+ {
+ ddpfn fn = (ddpfn) func_ptr;
+ Cyg_libm_ieee_double_shape_type my_doub1;
+
+ for (i=0;
+ (i < num_vectors) && (problems < PROBLEM_THRESHOLD);
+ i++) {
+
+ if (0 == i % alive_count)
+ CYG_TEST_STILL_ALIVE(i, "Still crunching, please wait...");
+
+ arg1.parts.msw = vectors[i].arg1_msw;
+ arg1.parts.lsw = vectors[i].arg1_lsw;
+
+ arg2.parts.msw = vectors[i].arg2_msw;
+ arg2.parts.lsw = vectors[i].arg2_lsw;
+
+
+ result_wanted.parts.msw = vectors[i].result_msw;
+ result_wanted.parts.lsw = vectors[i].result_lsw;
+
+ ret.value = (*fn)( arg1.value, &my_doub1.value );
+ if (checkErrorAcceptable( ret, result_wanted,
+ vectors[i].tolerance) ) {
+ ++problems;
+ diag_printf("Vector #%d\n", i+1);
+ CYG_TEST_FAIL( "Result out of tolerance");
+ } // if
+
+ if (checkErrorAcceptable( my_doub1, arg2,
+ vectors[i].tolerance) ) {
+ ++problems;
+ diag_printf("Vector #%d\n", i+1);
+ CYG_TEST_FAIL( "Returned double result out of "
+ "tolerance");
+ } // if
+
+
+ } // for
+
+ } // compound
+
+ break;
+
+ case CYG_LIBM_TEST_VEC_NONE:
+
+ {
+ dfn fn = (dfn) func_ptr;
+
+ for (i=0;
+ (i < num_vectors) && (problems < PROBLEM_THRESHOLD);
+ i++) {
+
+ if (0 == i % alive_count)
+ CYG_TEST_STILL_ALIVE(i, "Still crunching, please wait...");
+
+ arg1.parts.msw = vectors[i].arg1_msw;
+ arg1.parts.lsw = vectors[i].arg1_lsw;
+
+ result_wanted.parts.msw = vectors[i].result_msw;
+ result_wanted.parts.lsw = vectors[i].result_lsw;
+
+ ret.value = (*fn)( arg1.value );
+ if (checkErrorAcceptable( ret, result_wanted,
+ vectors[i].tolerance) ) {
+ ++problems;
+ diag_printf("Vector #%d\n", i+1);
+ CYG_TEST_FAIL( "Result out of tolerance");
+ } // if
+ } // for
+
+ } // compound
+
+ break;
+
+ default:
+ CYG_TEST_FAIL("Second argument of unknown type!");
+ return false;
+ } // switch
+
+ if (problems != 0)
+ return false;
+ else
+ return true;
+
+} // doTestVec()
+
+#endif // CYGONCE_LIBM_VECTOR_SUPPORT_H multiple inclusion protection
+
+// EOF vector_support.h
diff --git a/ecos/packages/language/c/libm/current/tests/vectors/vector_support_float.h b/ecos/packages/language/c/libm/current/tests/vectors/vector_support_float.h
new file mode 100644
index 0000000..02bee93
--- /dev/null
+++ b/ecos/packages/language/c/libm/current/tests/vectors/vector_support_float.h
@@ -0,0 +1,550 @@
+#ifndef CYGONCE_LIBM_VECTOR_SUPPORT_H
+#define CYGONCE_LIBM_VECTOR_SUPPORT_H
+
+//========================================================================
+//
+// vector_support_float.h
+//
+// Support for testing of the math library using test vectors
+//
+//========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002 2012, 2013 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors: jlarmour, visar, ilijak
+// Date: 1999-01-21
+// Purpose:
+// Description:
+// Usage: #include "vectors/vector_support_float.h"
+//
+//####DESCRIPTIONEND####
+//
+//========================================================================
+
+// CONFIGURATION
+
+#include <pkgconf/libm.h> // Configuration header
+#include <pkgconf/isoinfra.h> // CYGINT_ISO_MAIN_STARTUP
+
+// INCLUDES
+
+#include <cyg/infra/cyg_type.h> // Common type definitions and support
+#include <cyg/infra/testcase.h> // Test infrastructure
+#include <math.h> // Header for this package
+#include <sys/ieeefp.h> // Cyg_libm_ieee_double_shape_type
+#include <cyg/infra/diag.h>
+
+#ifndef CYGSEM_LIBM_COMPAT_IEEE_ONLY
+# include <errno.h> // For Cyg_ErrNo
+#else
+# ifndef EDOM
+# define EDOM 33
+# endif
+#endif
+
+// CONSTANTS
+
+#define PROBLEM_THRESHOLD 10 // Number of test vectors allowed to fail
+ // before we give up completely
+
+// HOW TO START TESTS
+
+#if CYGINT_ISO_MAIN_STARTUP
+
+# define START_TEST( test ) test(0)
+
+#elif defined(CYGFUN_KERNEL_API_C)
+
+# include <cyg/hal/hal_arch.h>
+# include <cyg/kernel/kapi.h>
+
+# define STACKSIZE CYGNUM_HAL_STACK_SIZE_TYPICAL
+
+static cyg_uint8 stack[STACKSIZE];
+static cyg_handle_t thr_handle;
+static cyg_thread thr;
+
+# define START_TEST( test ) CYG_MACRO_START \
+ cyg_thread_create( 4, &test, (cyg_addrword_t)0, "test", \
+ &stack[0], STACKSIZE, &thr_handle, &thr ); \
+ cyg_thread_resume( thr_handle ); \
+ cyg_scheduler_start(); \
+ CYG_MACRO_END
+
+externC int main( int, char ** );
+
+externC void
+cyg_user_start( void )
+{
+ (void) main(0, NULL);
+} // cyg_user_start()
+
+#else // !defined(CYGFUN_KERNEL_API_C)
+
+externC int main( int, char ** );
+
+externC void
+cyg_user_start( void )
+{
+ (void) main(0, NULL);
+} // cyg_user_start()
+
+# define START_TEST( test ) test(0)
+
+#endif
+
+// TYPE DEFINITIONS
+
+
+typedef enum {
+ CYG_LIBM_TEST_VEC_NONE, // this indicates whether the "double"
+ CYG_LIBM_TEST_VEC_INT, // is being used to store a double, an
+ CYG_LIBM_TEST_VEC_FLOAT,
+ CYG_LIBM_TEST_VEC_INT_P, // int pointer
+ CYG_LIBM_TEST_VEC_FLOAT_P
+} Cyg_libm_test_arg_type;
+
+
+// Define a type for a test vector record
+// Define a floattype for a test vector record
+
+typedef struct {
+ cyg_ucount32 vector_num; // id number of this test vector record
+
+ // if any of the following arguments are ints rather than doubles, then
+ // use the lsw part to store it
+
+ cyg_uint32 arg1; // first argument
+ cyg_uint32 arg2; // second argument
+ cyg_uint32 result; // expected return value
+
+#ifndef CYGSEM_LIBM_COMPAT_IEEE_ONLY
+ Cyg_ErrNo errno_val; // expected value of errno. 0==unchanged
+#else
+ cyg_uint32 errno_val;
+#endif
+
+ float tolerance; // relative amount that it is allowed
+ // to vary. i.e. the value should be
+ // plus or minus result*tolerance
+
+ int matherr_type; // if testing the matherr() function,
+ // what type should the exception be
+} Cyg_libm_test_float_vec_t;
+
+// types to cope with the different forms of function to be called by the
+// test vector
+
+typedef float (*fffn) ( float, float );
+typedef float (*fifn) ( float, int );
+typedef float (*ffn) ( float );
+typedef float (*ffpfn) ( float, float *);
+typedef float (*fipfn) ( float, int *);
+typedef float (*iffn) ( int, float );
+typedef int (*i_ffn) (float);
+
+// STATIC FUNCTIONS
+
+// equivalent of abs() for doubles. We want to be independent of fabs()
+
+static float
+my_abs_f( float x )
+{
+ Cyg_libm_ieee_float_shape_type t;
+
+ t.value = x;
+
+ t.number.sign = 0;
+
+ return t.value;
+} // my_abs_f()
+
+
+static cyg_bool
+checkErrorAcceptableFloat( Cyg_libm_ieee_float_shape_type is,
+ Cyg_libm_ieee_float_shape_type shouldbe,
+ float tolerance) // _relative_ amount it can vary
+{
+ Cyg_libm_ieee_float_shape_type temp_flt;
+
+ // first do a short-circuit check if its identical
+ if ( (is.asi32 == shouldbe.asi32) )
+ return false;
+
+ // now check special cases
+
+ // +0 == -0
+ if ( ((is.asi32 & 0x7fffffff) == 0) &&
+ ((shouldbe.asi32 & 0x7fffffff) == 0) )
+ return false;
+
+ // +-infinity == +-infinity
+ if ((is.number.fraction0 == 0) && (shouldbe.number.fraction0 == 0) &&
+ (is.number.exponent == 255) && (shouldbe.number.exponent == 255))
+ {
+ return (is.number.sign != shouldbe.number.sign);
+ } // if
+
+ // both NaN. Assumes isnan works, but its pretty safe
+ if ( isnanf(is.value) && isnanf(shouldbe.value) )
+ return false;
+ else if (isnanf(is.value) || isnanf(shouldbe.value) )
+ return true;
+
+ // check same sign. Even around small values close to 0 we would want
+ // it to be on the right _side_ of 0
+ if ( is.number.sign != shouldbe.number.sign )
+ return true;
+
+ // okay, now work out what tolerance means for us
+
+ // find out what the difference is in the first place
+ temp_flt.value = my_abs_f( shouldbe.value - is.value );
+
+ // Check "both ways round" to deal with both under and overflow cases
+ if ( ((temp_flt.value / tolerance) < my_abs_f(shouldbe.value)) ||
+ (temp_flt.value < (my_abs_f(shouldbe.value) * tolerance)) )
+ return false;
+ else
+ return true; // so its not close enough
+
+} // checkErrorAcceptableFloat()
+
+
+static cyg_bool
+doTestVecFloat( CYG_ADDRESS func_ptr,
+ Cyg_libm_test_arg_type arg1_type,
+ Cyg_libm_test_arg_type arg2_type,
+ Cyg_libm_test_arg_type result_type,
+ const Cyg_libm_test_float_vec_t *vectors,
+ cyg_ucount32 num_vectors )
+{
+ cyg_ucount32 problems=0;
+ cyg_ucount32 i;
+ Cyg_libm_ieee_float_shape_type arg1, arg2, result_wanted, ret;
+ cyg_ucount32 alive_count = num_vectors / 10;
+
+ if (arg1_type == CYG_LIBM_TEST_VEC_INT) {
+ iffn fn = (iffn) func_ptr;
+
+ for (i=0;
+ (i < num_vectors) && (problems < PROBLEM_THRESHOLD);
+ i++) {
+
+ if (0 == i % alive_count)
+ CYG_TEST_STILL_ALIVE(i, "Still crunching, please wait...");
+
+ arg1.asi32 = vectors[i].arg1;
+ arg2.asi32 = vectors[i].arg2;
+
+ result_wanted.asi32 = vectors[i].result;
+
+ ret.value = (*fn)( (int)arg1.value, arg2.value );
+
+ if ((vectors[i].errno_val) != 0) {
+
+#ifndef CYGSEM_LIBM_COMPAT_IEEE_ONLY
+ // In IEEE-mode we can't check the answer if this
+ // is an error case
+
+ if ((cyg_libm_get_compat_mode() !=
+ CYGNUM_LIBM_COMPAT_IEEE) &&
+ (errno != vectors[i].errno_val)) {
+
+ ++problems;
+ diag_printf("Vector #%d\n", i+1);
+ CYG_TEST_FAIL( "error not set correctly");
+
+ } // if
+#endif
+
+ continue; // no point checking value in an error case
+ } // if
+ if (checkErrorAcceptableFloat( ret, result_wanted,
+ vectors[i].tolerance) ) {
+ ++problems;
+ diag_printf("Vector #%d\n", i+1);
+ CYG_TEST_FAIL( "Result out of tolerance");
+ } // if
+ } // for
+ if (problems != 0)
+ return false;
+ else
+ return true;
+ }
+ if ((arg1_type != CYG_LIBM_TEST_VEC_FLOAT) ||
+ (result_type != CYG_LIBM_TEST_VEC_FLOAT &&
+ result_type != CYG_LIBM_TEST_VEC_INT)) {
+ CYG_TEST_FAIL("Test vector arguments are not correct type!");
+ return false;
+ } // if
+
+ switch (arg2_type) {
+ case CYG_LIBM_TEST_VEC_FLOAT:
+
+ {
+ fffn fn = (fffn) func_ptr;
+
+ for (i=0;
+ (i < num_vectors) && (problems < PROBLEM_THRESHOLD);
+ i++) {
+
+ if (0 == i % alive_count)
+ CYG_TEST_STILL_ALIVE(i, "Still crunching, please wait...");
+
+ arg1.asi32 = vectors[i].arg1;
+ arg2.asi32 = vectors[i].arg2;
+
+ result_wanted.asi32 = vectors[i].result;
+
+ ret.value = (*fn)( arg1.value, arg2.value );
+
+ if ((vectors[i].errno_val) != 0) {
+
+#ifndef CYGSEM_LIBM_COMPAT_IEEE_ONLY
+ // In IEEE-mode we can't check the answer if this
+ // is an error case
+
+ if ((cyg_libm_get_compat_mode() !=
+ CYGNUM_LIBM_COMPAT_IEEE) &&
+ (errno != vectors[i].errno_val)) {
+
+ ++problems;
+ diag_printf("Vector #%d\n", i+1);
+ CYG_TEST_FAIL( "error not set correctly");
+
+ } // if
+#endif
+
+ continue; // no point checking value in an error case
+ } // if
+ if (checkErrorAcceptableFloat( ret, result_wanted,
+ vectors[i].tolerance) ) {
+ ++problems;
+ diag_printf("Vector #%d\n", i+1);
+ CYG_TEST_FAIL( "Result out of tolerance");
+ } // if
+ } // for
+
+ } // compound
+
+ break;
+
+ case CYG_LIBM_TEST_VEC_INT:
+
+ {
+ fifn fn = (fifn) func_ptr;
+
+ for (i=0;
+ (i < num_vectors) && (problems < PROBLEM_THRESHOLD);
+ i++) {
+
+ if (0 == i % alive_count)
+ CYG_TEST_STILL_ALIVE(i, "Still crunching, please wait...");
+
+ arg1.asi32 = vectors[i].arg1;
+
+ result_wanted.asi32 = vectors[i].result;
+
+ ret.value = (*fn)( arg1.value, vectors[i].arg2 );
+
+ if (checkErrorAcceptableFloat( ret, result_wanted,
+ vectors[i].tolerance) ) {
+ ++problems;
+ diag_printf("Vector #%d\n", i+1);
+ CYG_TEST_FAIL( "Result out of tolerance");
+ } // if
+ } // for
+
+ } // compound
+
+ break;
+
+ case CYG_LIBM_TEST_VEC_INT_P:
+
+ {
+ fipfn fn = (fipfn) func_ptr;
+ int my_int;
+ Cyg_libm_ieee_float_shape_type my_flt1, my_flt2;
+
+ for (i=0;
+ (i < num_vectors) && (problems < PROBLEM_THRESHOLD);
+ i++) {
+
+ if (0 == i % alive_count)
+ CYG_TEST_STILL_ALIVE(i, "Still crunching, please wait...");
+
+ arg1.asi32 = vectors[i].arg1;
+
+ result_wanted.asi32 = vectors[i].result;
+
+ ret.value = (*fn)( arg1.value, &my_int );
+
+ if (checkErrorAcceptableFloat( ret, result_wanted,
+ vectors[i].tolerance) ) {
+ ++problems;
+ diag_printf("Vector #%d\n", i+1);
+ CYG_TEST_FAIL( "Result out of tolerance");
+ } // if
+
+ my_flt1.value = (float) my_int;
+ my_flt2.value = (float) (signed)vectors[i].arg2;
+
+ if (checkErrorAcceptableFloat( my_flt1, my_flt2,
+ vectors[i].tolerance) ) {
+ ++problems;
+ diag_printf("Vector #%d\n", i+1);
+ CYG_TEST_FAIL( "Integer result out of tolerance");
+ } // if
+
+
+ } // for
+
+ } // compound
+
+ break;
+
+ case CYG_LIBM_TEST_VEC_FLOAT_P:
+
+ {
+ ffpfn fn = (ffpfn) func_ptr;
+ Cyg_libm_ieee_float_shape_type my_flt1;
+
+ for (i=0;
+ (i < num_vectors) && (problems < PROBLEM_THRESHOLD);
+ i++) {
+
+ if (0 == i % alive_count)
+ CYG_TEST_STILL_ALIVE(i, "Still crunching, please wait...");
+
+ arg1.asi32 = vectors[i].arg1;
+ arg2.asi32 = vectors[i].arg2;
+
+ result_wanted.asi32 = vectors[i].result;
+
+ ret.value = (*fn)( arg1.value, &my_flt1.value );
+ if (checkErrorAcceptableFloat( ret, result_wanted,
+ vectors[i].tolerance) ) {
+ ++problems;
+ diag_printf("Vector #%d\n", i+1);
+ CYG_TEST_FAIL( "Result out of tolerance");
+ } // if
+
+ if (checkErrorAcceptableFloat( my_flt1, arg2,
+ vectors[i].tolerance) ) {
+ ++problems;
+ diag_printf("Vector #%d\n", i+1);
+ CYG_TEST_FAIL( "Returned float result out of "
+ "tolerance");
+ } // if
+
+
+ } // for
+
+ } // compound
+
+ break;
+
+ case CYG_LIBM_TEST_VEC_NONE:
+
+ {
+ if (result_type == CYG_LIBM_TEST_VEC_INT) {
+ i_ffn fn = (i_ffn) func_ptr;
+
+ for (i=0;
+ (i < num_vectors) && (problems < PROBLEM_THRESHOLD);
+ i++) {
+
+ if (0 == i % alive_count)
+ CYG_TEST_STILL_ALIVE(i, "Still crunching, please wait...");
+
+ arg1.asi32 = vectors[i].arg1;
+
+ result_wanted.asi32 = vectors[i].result;
+ ret.value = (*fn)( arg1.value );
+ /* Get a 32 bit int from a float. */
+
+ if (checkErrorAcceptableFloat( ret, result_wanted,
+ vectors[i].tolerance) ) {
+ ++problems;
+ diag_printf("Vector #%d\n", i+1);
+ CYG_TEST_FAIL( "Result out of tolerance");
+ } // if
+ } // for
+ }
+ else
+ {
+ ffn fn = (ffn) func_ptr;
+
+ for (i=0;
+ (i < num_vectors) && (problems < PROBLEM_THRESHOLD);
+ i++) {
+
+ if (0 == i % alive_count)
+ CYG_TEST_STILL_ALIVE(i, "Still crunching, please wait...");
+
+ arg1.asi32 = vectors[i].arg1;
+
+ result_wanted.asi32 = vectors[i].result;
+ ret.value = (*fn)( arg1.value );
+ /* Get a 32 bit int from a float. */
+
+ if (checkErrorAcceptableFloat( ret, result_wanted,
+ vectors[i].tolerance) ) {
+ ++problems;
+ diag_printf("Vector #%d\n", i+1);
+ CYG_TEST_FAIL( "Result out of tolerance");
+ } // if
+ } // for
+ }
+ } // compound
+
+ break;
+
+ default:
+ CYG_TEST_FAIL("Second argument of unknown type!");
+ return false;
+ } // switch
+
+ if (problems != 0)
+ return false;
+ else
+ return true;
+
+} // doTestVecFloat()
+
+#endif // CYGONCE_LIBM_VECTOR_SUPPORT_H multiple inclusion protection
+
+// EOF vector_support_float.h
diff --git a/ecos/packages/language/cxx/ustl/current/ChangeLog b/ecos/packages/language/cxx/ustl/current/ChangeLog
new file mode 100644
index 0000000..8a0a8a4
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/ChangeLog
@@ -0,0 +1,88 @@
+2013-02-18 John Dallaway <john@dallaway.org.uk>
+
+ * src/fstream.cpp: Fix processing of fstream openmode. Patch
+ from uSTL HEAD.
+ * cdl/ustl.cdl: Build interactive tests under control of a CDL
+ option. Build ROM filesystem for bvt25 test under control of a
+ CDL option.
+ * tests/bvt25.cpp: Use ROM filesystem if available.
+ * tests/bvt05.cpp, tests/bvt16.cpp: Reduce data structure sizes
+ for embedded use.
+
+2012-03-24 Sergei Gavrikov <sergei.gavrikov@gmail.com>
+
+ * include/*:
+ * src/*:
+ * tests/*:
+ * HISTORY:
+ * LICENSE: Updated to uSTL 1.6 sources.
+
+2011-11-21 John Dallaway <john@dallaway.org.uk>
+
+ * include/ustl/ustring.h: Fix incorrect behaviour of iat when passed
+ offset+npos. Reported by Frank Pagliughi. Patch from uSTL HEAD.
+ [ Bugzilla 1001390 ]
+
+2010-06-25 Simon Kallweit <simon.kallweit@intefo.ch>
+
+ * include/*:
+ * tests/*:
+ * HISTORY:
+ * LICENSE: Updated to uSTL 1.4 sources.
+
+2009-10-06 Uwe Kindler <uwe_kindler@web.de>
+
+ * doc/ustl.sgml: Removed cout.flush() from example and from note.
+ Added note about use of compiler flag -Wno-undef.
+
+2009-08-30 John Dallaway <john@dallaway.org.uk>
+
+ * include/*.h: Move all headers to include/ustl/ except ustl.h and
+ stdint.h to avoid pollution of the root include directory in the
+ eCos install tree.
+ * include/ustl.h: Specify ustl/ directory when including header files.
+ * cdl/ustl.h: Add include/ustl/ to the header file directory list
+ using CYGPKG_USTL_CFLAGS_ADD.
+
+2009-08-24 Uwe Kindler <uwe_kindler@web.de>
+
+ * doc/ustl.sgml: Moved documentation from README file into
+ ustl.sgml documentation file.
+ * README: Remove.
+ * cdl/ustl.cdl: Reference per-package documentation.
+ * tests/stdtest.h: Removed unused code.
+
+2009-08-21 Sergei Gavrikov <sergei.gavrikov@gmail.com>
+
+ * src/bktrace.cpp: prevent inclusion of host header <execinfo.h>
+ (eCos builds for Linux synthetic target).
+ * src/uexception.cpp:exception::read(): initialise local
+ variable stmSize.
+
+2009-08-20 Uwe Kindler <uwe_kindler@web.de>
+
+ * Initial contribution of uSTL library
+
+//===========================================================================
+// ####GPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2009, 2010, 2011, 2013 Free Software Foundation, Inc.
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 or (at your option) any
+// later version.
+//
+// This program 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
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the
+// Free Software Foundation, Inc., 51 Franklin Street,
+// Fifth Floor, Boston, MA 02110-1301, USA.
+// -------------------------------------------
+// ####GPLCOPYRIGHTEND####
+//===========================================================================
diff --git a/ecos/packages/language/cxx/ustl/current/HISTORY b/ecos/packages/language/cxx/ustl/current/HISTORY
new file mode 100644
index 0000000..e77daf5
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/HISTORY
@@ -0,0 +1,376 @@
+2012-02-18 Release 1.6
+ * Fixed compilation with c++0x
+ alignof is a keyword in c++0x, so the stream version usually not needed now.
+ On the other hand, alignof can not be overloaded, so stream_align_of is the
+ new name for the old alignof. Most code should not require changes due to this.
+ * Fix iat in string, which did not handle npos argument correctly, sometimes
+ resulting in failures of other functions using it, like substr.
+
+2011-03-16 Release 1.5
+ * Updated set, map, and multimap with full set of insert, erase, and search overloads
+ * Added public lower_bound, upper_bound, and equal_range to map, as per standard
+ * Added comparator parameter to set, multiset, map, and multimap.
+ * Implemented FirstBit, Rol, Ror, and a generic NextPow2
+ * Remove memlink copy because it conflicts with string copy
+ * Operators returning a new value should be const
+ * Added char* + string operator, and a noarg erase
+ * Added --force-inline configure option
+ * Removed all references to stdc++ headers when not using libstdc++
+ * Fixed minor glitches compiling with clang++
+ * Other small fixes
+
+2010-03-21 Release 1.4
+ * Fixed crash in destructor of empty vector, introduced by 1.3
+ * Fixed list merge, which previously did not compile
+ * Some portability changes to configure so it will work with dash
+ when escape char processing bug is fixed (Ubuntu bug #268929)
+
+2009-08-04 Release 1.3
+ * Some API changes to comply with the current C++ standard
+ binary_search algo returns true, not the found iterator
+ stack and queue are now type templates, not container adaptors.
+ Correctly set eof and fail flags in all stream functions
+ This allows the use of the non-exception path in streams
+ verify_remaining will no longer throw unless exceptions are on in the stream
+ verify_remaining will return false if space is insufficient and set flags
+ exceptions are on by default in istream and ostream and off elsewhere
+ Updated return values of stream functions to match the standard
+ what() on message exceptions returns the text passed to the ctor
+ set insert also returns an iterator/bool pair
+ map insert now returns an iterator,bool pair
+ * streamsize and streamoff types defined
+ * Added string resize with a value arg
+ * Added standalone getline
+ * Added numeric_limits digits and digits10
+ * Name demangling is now an option, off by default, removing ~20k
+ * A new and improved nonrecursive make system
+ * Numerous small size and speed optimizations
+ * A few minor bugfixes
+
+2008-02-17 Release 1.2
+ * Fixed ifstream readsome to work correctly on nonblocking fds.
+ * Yet another try at fixing noalias rearrangments.
+ Added a memory clobber and +g to noalias templates.
+ * Added dtors template which will embody range destructors for
+ destroy and vector dtor instead of vector deallocate. It is
+ called by destroy through a selector template, turning it off
+ completely for integral types. This removes empty deallocate
+ instantiations for integral type vectors.
+ * Fixed bitset stream_size (bits-words confusion)
+ * Added workaround for compile error when printing a char array.
+ * Added static_assert from Loki.
+
+2007-09-02 Release 1.1
+ * Due to the demise of SourceForge compile farm, this and subsequent
+ releases are not as well tested the previous ones. So please
+ report compilation problems, if any, on non-x86_64 platforms.
+ * Fixed various aliasing problems complained about by gcc 4.2.
+ * Added noalias_cast<type>(v) to aid in working around the above
+ aliasing problem. The aliased variables also must be
+ explicitly touched by an empty asm statement or something.
+ * Reimplemented stream_size_of as a template stack because the old
+ implmentation is invalid in gcc 4.2+ due to a change in
+ overloaded set lookup scope. vector and tuple now have the
+ standard read/write/stream_size members.
+ * Reimplemented flow operators as templates.
+ * STD_STREAMABLE and TEXT_STREAMABLE are no longer necessary.
+ * Merged some template metaprogramming stuff from Alexandrescu's Loki
+ library, including typelists and type traits.
+ * Implemented generic macro list macros. See metamac.h.
+ * Fixed some bsconf warnings.
+ * memblock is_linked now correctly returns true when linked to NULL.
+ * Added back() to string.
+ * Fixed a memory leak in CBacktrace GetSymbols.
+ * Changed written exception data to look like an IFF chunk.
+ * Removed "memory" from some simd spec clobber lists.
+ * Reduced the amount of code generated by vector stream templates.
+ * talign will no longer generate a temp object when called with
+ non-trivial classes. Uses NullValue template to avoid.
+ * Linking with gcc instead of using -nodefaultlibs is simpler.
+ * Removed link number overloads. Sadly, I don't know what this will
+ break, if anything. On my machine the only case is link(p,0),
+ which generates an ambiguity error and is easily fixed by
+ explicitly casting the zero to a size_t. The benefit is
+ cleaner code and fewer problems for the Symbian port, so the
+ change stays until/unless somebody reports it as a problem.
+ * Added long4grain and ptr4grain wrappers to explicitly write long
+ values on 4-grain, even on 64bit platforms.
+
+2006-10-27 Release 1.0 SVN 428
+ * API CHANGE: ostringstream now works like std::ostringstream, with
+ an internal buffer instead of writing to an external one
+ through a link. Instead of passing the buffer to the ctor,
+ write directly to a default-constructed stream object and
+ assign buf = os.str() when finished.
+ * Format change: containers will now write their size as a uint32_t
+ instead of size_t to allow binary compatibility with 64 bit
+ architectures. On 32 bit machines this makes no difference.
+ * Renamed fdostringstream to ofstream.
+ * Renamed fdistringstream to ifstream.
+ * Renamed iterator_swap to iter_swap, as in the standard.
+ * file.h/cc was removed; fstream replaces its functionality.
+ * Added most remaining i/ostringstream functions that make sense in
+ this implementation: str, put, get, getline, ignore, peek,
+ readsome, putback, unget, tellg, seekg, sync, flush, seekp,
+ tellp, good. The rest will probably not be implemented at
+ all, since they reference streambufs which don't exist in uSTL.
+ * Implemented fstream and used it in ifstream/ofstream.
+ * Added remaining algorithms: find_end, find_first_of, includes,
+ is_sorted, lexicographical_compare, max_element, min_element,
+ partial_sort, partial_sort_copy, partition, next_permutation,
+ prev_permutation, reverse_copy, rotate_copy, search, search_n,
+ set_difference, set_intersection, set_symmetric_difference,
+ set_union, and stable_partition. All the algorithms defined by
+ the C++ standard are now implemented.
+ * Made ios_base and ios classes instead of namespaces and derived
+ all stream objects from ios_base. Pulled up state and all
+ related functions into it. The only problem with this is that
+ end() conflicts with seekdir end, so you'll need to use
+ ios scope when you want the latter.
+ * Align container ends on 4 grain.
+ While this is not very friendly to 64bit architectures, it is
+ the only way to allow writing containers portably. It is
+ better to always align to an arbitrary value than to align to
+ a platform-dependent one.
+ * Removed non-const data pointer from memlink.
+ While enforcing const-correctness is a good thing, the errors
+ this catches are relatively rare and are all programmer errors.
+ I must concede that the benefits of having memblocks, strings,
+ and containers be 16 bytes in size is a great advantage in both
+ speed and codesize. As a result, one needs to be more mindful
+ to not modify memlink-derived objects that are linked to const
+ data; before this change it would have caused a crash, now it
+ might or might not do that, as with regular pointers.
+ * Added CBacktrace class for printing backtrace information.
+ * x86_64 cleanup and improvements, including MMX support.
+ * Micro-optimization pass for size. Saved 24% (32k)!
+ * exception now creates a backtrace when thrown.
+ * Do cout.flush() before read in cin, like std does.
+ * max_size() on linked objects should return size(), because it is.
+ * >=, <=, and compare templates no longer require == (>= is !<)
+ * Pulled rotate code into rotate_fast for memory blocks.
+ * stream_bounds_exception demangles type names.
+ * set,map,multiset,multimap now instantiate less crud.
+ * Abandoned any attempt to use the goddamned byteswap.h.
+ * Implemented bitset any, none, and count.
+ * New popcount algorithms.
+ * Implemented compose1 and compose2 extensions.
+ * Support building as a .dylib on MacOS.
+ * Removed --without-cout configure option.
+
+2005-11-10 Release 0.8
+ * API CHANGE: changed all string's find members to return offsets
+ instead of iterators. That's what the STL standard requires.
+ Also added standard-required replace/inserts with offset
+ arguments. Yes, this is a bit painful. I was using it a lot...
+ But it's all for the better. I promise!
+ * Removed char_at and ichar from string; use utf8_begin/end instead.
+ * Iterator-based string insert now return an iterator, like vector.
+ * Added more wchar_t overloads to string, include append and assign.
+ * Updated bsconf to use malloc instead of static buffers.
+ * construct/destruct will now disappear for integral types.
+ Integral types have no destructors/constructors.
+ * Fixed istream_iterator to read on construction and in operator++
+ as the standard says. Unfortunately, this makes it almost
+ totally useless, since using it as a source for copy will
+ always overread by one because copy will call ++ past the
+ end, which will read one element past the end. This behaviour
+ is understandable when reading to EOF (which is the only
+ example ever shown for using it), but worthless when you
+ have a fixed number of elements you want to read. I'm only
+ using it to implement utf8 from streams, so, having fixed
+ that to not overread, I'll chalk it up to standard
+ compliance.
+ * Made istream_iterator default constructible and implemented the
+ EOF check during reading. This should make read-to-EOF
+ scenario possible.
+ * Made streams runtime bounds checking on by default.
+ * Added operator-- to istream_iterator to do unputs.
+ This works only once for variable-length types because there
+ is no way to know the length to back up to get the element
+ before the currently cached one. Constant-length types can
+ be unput multiple times, and can use -= and - operators.
+ * fdistringstream underflow will no longer erase the entire buffer.
+ This helps to keep ungetc working most of the time.
+ * Similarly fixed utf8in_iterator to read on construction.
+ This fixed the double-advance bug in utf8in_iterator.
+ * Fixed utf8in_iterator to not read ahead (except in constructor)
+ before operator++ is called. This ensures that it does not
+ read past the end of the string if it isn't 0-terminated.
+ (Although it will still do so if you call ++)
+ * Field width should be padded with spaces, not zeroes.
+ * Implemented some heap algorithms.
+ * Added VectorRange macro.
+ * Added relink() call to memlinks for faster resizing.
+ relink does the work of link, but without calling unlink.
+ * Added to string substr and like functions.
+ * Moved simd fill into ualgobase.cc
+ * configure now recompiles bsconf if its sources change.
+ * Fixed a rare off-by-one error in ostringstream vprintf.
+ * Removed fdostringstream printf, since ostringstream has it already.
+ * Fixed bsconf crash when all inline options are enabled.
+ * Fixed crash when NULL filename given to file_exception.
+ * Corrected potential buffer overflow in file_exception and sistream.
+ * Fixed string rfind for strings; was returning a wrong value sometimes.
+ * Added copy_link call to memblock to make a copy of linked data.
+ * Added assert to memlink begin() to warn when writing to a const block.
+ * Makefile now correctly uses ${MAKE} to recurse.
+ * Removed all usage of "y" in SIMD asm blocks; gcc<4-> movd, not movq.
+ This fixes problems with MMX fround on some platforms.
+ * Removed SSE3 detection from bsconf; it just doesn't work!
+ * Added BYTE_ORDER detection in bsconf.
+ * Made BYTE_ORDER and bswap always defined.
+
+2005-06-28 Release 0.7-1
+ * Now compiles with gcc 4.0.0
+ * Standard exception constructors now take const char* instead
+ of string&; this generates much less code.
+ * Fixed reversed conditional ostringstream.format
+ This was causing a seek exception sometimes.
+ * Added ostringstream.vformat
+ * Added FPU registers to reset_mmx modlist; apparently gcc doesn't
+ know that they are shared with MMX registers.
+ * Moved simd copy into ualgobase.cc; they are not inlined anyway.
+ * Added workaround for BSD which has no __va_copy.
+ I wonder why nobody reported this as a bug. Is anyone running
+ BSD out there? Anyone? Anyone at all? Is the damn thing dead?
+ * So it now compiles on BSD again... Whoohoo...
+
+2005-04-16 Release 0.7
+ * Removed vector inheritance from memblock.
+ There are just too many problems with treating a vector
+ this way. You can still do it explicitly by linking a
+ memblock to the vector. Removing the inheritance causes
+ vector to be non-virtual, which drastically reduces
+ instantiation cost.
+ * Removed elementSize, elementBytes member functions from cmemlink.
+ Only vector inheritance needed elementSize.
+ * Restricted vector link calls to T* instead of void*.
+ This way there would be explicit casts to warn of weirdness.
+ * Optimized vector push_back
+ * ostream will now zero bytes skipped by align.
+ * memblock will no longer zero newly allocated storage.
+ * Inlined empty constructors on map,multimap,set,multiset.
+ * NUMERIC_LIMITS macros to facilitate specialization.
+ * Fixed string vformat problem crashing on x86_64
+ Because vsnprintf is called twice, need to copy arglist.
+ * Added an rm before ln in install to avoid "already exists" errors.
+ SunOS still doesn't know about the -f flag...
+ * Split the distribution into ustl and ustl-docs
+ * New SIZE_OF_BOOL system substitution in bsconf
+ Only Alpha and Mac have bool as a long, so a define is better.
+ * Fixed configure being confused with multiple gcc versions.
+ * Reduced Align code for nonstandard values.
+ * Pulled up vector/tuple stream operators into generic container
+ templates in uctrstm.h and made use of resulting macros.
+ * New TEMPLATE_TYPE macros to allow template building with macros.
+ * Fixed SSE3 detection in bsconf; thanks to Aloysius Indrayanto.
+ * Fixed get_temporary_buffer to return size in elements, not in bytes.
+ This is the proper behaviour as specified in the C++ standard.
+ * Now using libc qsort in the sort algorithm.
+ This may give you trouble if you are using a custom comparator
+ that requires initialization outside the constructor. You can
+ write a wrapper class that does the initialization in the
+ constructor. Or, you can use stable_sort.
+ I'm doing this to both speed up the common case and to reuse
+ the functionality already linked to in libc. If you really
+ need to have a sort with a parametrized comparator and don't
+ want to change your code, file a bug report and I'll change
+ it back. I just don't think anyone is using this type of
+ construction.
+ * Finished heap algorithms.
+ * Added priority_queue.
+ * Added deque as a define to list.
+ * Added noalias template to circumvent the type-punned pointer
+ dereference warning given by gcc 4.1.0+
+
+2005-01-17 Release 0.6
+ * The library is relicensed under the MIT License (was LGPL)
+ * Dropped support for locale due to its great complexity and ugliness.
+ You can include <locale> from libstdc++ if you still want it.
+ * ostringstream now uses snprintf for all integer types, so the output
+ will be localized according to libc locale settings. As a side
+ effect of this, you will not be able to print negative hex
+ numbers any more (as in -6AD4), not that it was a good idea...
+ * tuple will no longer align at the end:
+ This affects you if you write tuples with small elements
+ off default grain. For example, writing tuple<2,int16>
+ on grain 2 would have aligned prior to this change, causing
+ sub-optimal packing if you wrote an array of such tuples,
+ since each one only needs grain 2 alignment.
+ * Fixed incorrect use of __alignof__ in pair stream operators.
+ * Added size_t ul-or-ui detection code to bsconf and fixed the
+ size_t/pointer overload in uutility to use it.
+ * Added erase(iterator,const_iterator) overload for string
+ * Added alloca_link macro.
+ * cmemlink will now throw bad_alloc if linking to !p && n.
+ * multiset and multimap will insert equal elements in order.
+ I wasn't able to find any guidance concerning the order of
+ equal elements; it appears to be unspecified. Prior to this
+ change equal elements were inserted in reverse order, which
+ is bad idea because it causes a larger copy to make space.
+ (Note that multimap only compares the key, since the mapped
+ value is not required to have an operator<. If you want them
+ sorted, you can use sort() on it.)
+ * Fixed remove_copy algorithms to not require value operator !=.
+ * bool will now be written as a byte regardless of the type size.
+ * sistream now handles 64bit types correctly.
+
+2004-11-11 Release 0.5
+ * configure will now properly enable mmx compiler flags.
+ * configure has a --with-profile option.
+ * Fixed a bug in ostringstream format inserting extra '\0'
+ * Fixed a bug in string find which sometimes did not match at the
+ beginning of the text.
+ * ostringstream will now use faster paged allocation.
+ * New alignof specializations for cmemlink(size_t) and string(1)
+ * Fixed tuple's value constructors to zero unspecified values.
+ * Added parentheses around ctr argument in foreach for computed vars.
+ * General simd interface for tuple optimization.
+ * Proper link interface in vector, that takes element count.
+ * set_terminate and set_unxpected prototypes are now available.
+ * LOOKUP_TEXT_STREAMABLE macro for printing through name arrays.
+ * Fixed iterator_swap to take iterators by value (reference& swap bad)
+ * Container random_shuffle.
+ * vformat method for string to allow implementation of custom printfs.
+ * TestAndSet inline utility function with the cmpxchg instruction.
+ * Fixed tuple stream_size_of to add up the elements if nonintegral.
+ * Added is_integral member to numeric_limits for specialization aid.
+ * Changed limits is_signed from a function to a bool like SGI does it.
+
+2004-07-28 Release 0.4-3
+ * A ChangeLog! After all these years...
+ * SIMD instruction support for fill and copy
+ * matrix template (on top of tuple)
+ 3dNow! instructions are supported for vector transforms.
+ * New utility templates
+ absv - absolute value.
+ sign - -1 for negative, 0 for 0, 1 for positive
+ abs_distance - returns an absolute value of the difference.
+ distance - now returns ptrdiff_t, as in SGI STL.
+ size_of_elements - useful for working with static arrays in
+ templates; returns sizeof(T) * n.
+ pack_type - useful for unrolling loops, packs a small
+ type into a big one.
+ alignof - recommended alignment for a type (uses GCC
+ __alignof__ extension, if available)
+ eachfor - same as foreach, but for reverse_iterator
+ * get_temporary_buffer implemented using alloca and macros
+ * Updated rotate to use alloca for small moves.
+ This should speed up vector operations, like insert and erase.
+ * Fixed copy_backward to actually copy backward rather than reverse.
+ * Made resize virtual in memblock to properly handle strings.
+ * sostream/sistream will handle wchar_t properly (as utf8 read/write)
+ * ustring.cc: fixed multiple wchar_t insert
+ * ustring.cc: changed allocation strategy to simply reserve the space
+ for the null terminator instead of tweaking size() all the
+ time. It's cleaner and saner this way.
+ * benchmarking tool in bvt
+ * More functions implemented in bitset.
+ * Added --with-static and --without-shared flags to configure.
+
+2004-05-22 Release 0.4-2
+ * ostringstreams will now correctly resize the buffer as needed.
+ * Fixed floating point output
+ (well, not really, just switched to using snprintf)
+
diff --git a/ecos/packages/language/cxx/ustl/current/LICENSE b/ecos/packages/language/cxx/ustl/current/LICENSE
new file mode 100644
index 0000000..f8f111d
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/LICENSE
@@ -0,0 +1,22 @@
+
+ The MIT License
+
+Copyright (c) 2005 by Mike Sharov <msharov@users.sourceforge.net>
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the "Software"),
+to deal in the Software without restriction, including without limitation
+the rights to use, copy, modify, merge, publish, distribute, sublicense,
+and/or sell copies of the Software, and to permit persons to whom the
+Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included
+in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
+OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+OTHER DEALINGS IN THE SOFTWARE.
diff --git a/ecos/packages/language/cxx/ustl/current/cdl/ustl.cdl b/ecos/packages/language/cxx/ustl/current/cdl/ustl.cdl
new file mode 100644
index 0000000..47f3f44
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/cdl/ustl.cdl
@@ -0,0 +1,249 @@
+# ====================================================================
+#
+# ustl.cdl
+#
+# uSTL - "Size-optimized STL" library package configuration data
+#
+# ====================================================================
+## ####ECOSGPLCOPYRIGHTBEGIN####
+## -------------------------------------------
+## This file is part of eCos, the Embedded Configurable Operating System.
+## Copyright (C) 2009, 2013 Free Software Foundation, Inc.
+##
+## eCos is free software; you can redistribute it and/or modify it under
+## the terms of the GNU General Public License as published by the Free
+## Software Foundation; either version 2 or (at your option) any later
+## version.
+##
+## eCos 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 General Public License
+## for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with eCos; if not, write to the Free Software Foundation, Inc.,
+## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+##
+## As a special exception, if other files instantiate templates or use
+## macros or inline functions from this file, or you compile this file
+## and link it with other works to produce a work based on this file,
+## this file does not by itself cause the resulting work to be covered by
+## the GNU General Public License. However the source code for this file
+## must still be made available in accordance with section (3) of the GNU
+## General Public License v2.
+##
+## This exception does not invalidate any other reasons why a work based
+## on this file might be covered by the GNU General Public License.
+## -------------------------------------------
+## ####ECOSGPLCOPYRIGHTEND####
+# ====================================================================
+######DESCRIPTIONBEGIN####
+#
+# Author(s): Uwe Kindler
+# Contributors: jld
+# Date: 2009-07-28
+#
+#####DESCRIPTIONEND####
+#
+# ====================================================================
+
+
+cdl_package CYGPKG_USTL {
+ display "uSTL library"
+ doc ref/ustl.html
+ description "
+ This package provides the uSTL library. uSTL is a
+ partial implementation of the STL specification intended to
+ reduce code size of the derivative programs. This allows the
+ user application to use well known standard C++ STL library
+ containers, streams, iterators, algorithms and functors."
+ requires CYGPKG_IO
+ requires CYGPKG_ERROR
+ requires CYGPKG_ISOINFRA
+ requires CYGPKG_LIBM
+
+ # malloc
+ requires CYGINT_ISO_MALLOC
+
+ # stdio
+ requires CYGINT_ISO_STDIO_FORMATTED_IO
+ requires CYGINT_ISO_STDIO_CHAR_IO
+ requires CYGINT_ISO_STDIO_DIRECT_IO
+ requires CYGINT_ISO_STDIO_ERROR
+
+ # signals
+ requires CYGINT_ISO_SIGNAL_NUMBERS
+ requires CYGINT_ISO_SIGNAL_IMPL
+
+ # time
+ requires CYGINT_ISO_C_TIME_TYPES
+
+ # startup
+ requires CYGINT_ISO_EXIT
+ requires CYGINT_ISO_MAIN_STARTUP
+ requires CYGINT_ISO_ENVIRON
+
+ #string
+ requires CYGINT_ISO_STRTOK_R
+ requires CYGINT_ISO_STRING_LOCALE_FUNCS
+ requires CYGINT_ISO_STRING_MEMFUNCS
+ requires CYGINT_ISO_STRING_STRFUNCS
+
+ # common
+ requires CYGINT_ISO_CTYPE
+ requires CYGINT_ISO_ERRNO_CODES
+ requires CYGINT_ISO_ERRNO
+ requires CYGINT_ISO_LOCALE
+ requires CYGIMP_LIBC_STDIO_C99_SNPRINTF
+
+ compile bktrace.cpp \
+ cmemlink.cpp \
+ memblock.cpp \
+ memlink.cpp \
+ ualgobase.cpp \
+ ubitset.cpp \
+ uexception.cpp \
+ unew.cpp \
+ ustdxept.cpp \
+ ustring.cpp \
+ ustlecos.cpp \
+ mistream.cpp \
+ sistream.cpp \
+ sostream.cpp
+
+ cdl_component CYGCLS_USTL_FSTREAMS {
+ display "File streams support"
+ flavor bool
+ default_value CYGPKG_IO_FILEIO
+ description "
+ This option enables file stream support. For file stream
+ support the File I/O package is required."
+ requires CYGPKG_IO_FILEIO
+ requires CYGINT_ISO_STDIO_FILETYPES
+ requires CYGINT_ISO_STDIO_FILEACCESS
+ requires CYGINT_ISO_STDIO_FILEPOS
+ requires CYGINT_ISO_STDIO_STREAMS
+ compile fstream.cpp \
+ ofstream.cpp
+
+ cdl_option CYGVAR_USTL_CIN_COUT_CERR {
+ display "cin, cout & cerr support"
+ flavor bool
+ default_value 1
+ description "
+ Enable this option if you want the standard streams
+ cin, cout and cerr to be included. You will not be able
+ to run bvt tests if you don't enable this option."
+ }
+ }
+
+ cdl_option CYGSEM_USTL_STREAM_BOUNDS_CHECK {
+ display "Stream bounds checking"
+ flavor bool
+ default_value 0
+ description "
+ Enable this option if you want stream operations to throw
+ exceptions on insufficient data or insufficient space.
+ All these errors should be preventable in output code;
+ the input code should verify the data in a separate step.
+ It slows down stream operations a lot, but it's your call.
+ Debug builds always throws exceptions - this option is
+ only valid for release builds."
+ }
+
+ cdl_component CYGPKG_USTL_OPTIONS {
+ display "uSTL library build options"
+ flavor none
+ no_define
+ description "
+ Package specific build options including control over
+ compiler flags used only in building this package,
+ and details of which tests are built."
+
+
+ cdl_option CYGPKG_USTL_CFLAGS_ADD {
+ display "Additional compiler flags"
+ flavor data
+ no_define
+ default_value { "-I$(PREFIX)/include/ustl" }
+ description "
+ This option modifies the set of compiler flags for
+ building the uSTL library. These flags are used in addition
+ to the set of global flags."
+ }
+
+ cdl_option CYGPKG_USTL_CFLAGS_REMOVE {
+ display "Suppressed compiler flags"
+ flavor data
+ no_define
+ default_value { "-Wundef" }
+ description "
+ This option modifies the set of compiler flags for
+ building the uSTL library. These flags are removed from
+ the set of global flags if present."
+ }
+
+ cdl_option CYGIMP_USTL_TESTS_BVT25_ROMFS {
+ display "Build ROM filesystem for bvt25 test"
+ flavor bool
+ active_if CYGVAR_USTL_CIN_COUT_CERR
+ requires CYGPKG_FS_ROM
+ requires CYGBLD_FS_ROMFS_MK_ROMFS
+ default_value CYGBLD_FS_ROMFS_MK_ROMFS
+ description "
+ Enable this option to build a ROM filesystem for use
+ by the bvt25 test. If you disable this option, you will
+ need to provide an alternative filesystem containing
+ the file \"bvt25.std\"."
+ make {
+ <PREFIX>/include/cyg/ustl/bvt25fs_be.h : <PACKAGE>/tests/bvt25.std
+ @mkdir -p bvt25_be
+ @cp $< bvt25_be/$(<F)
+ @chmod u+w bvt25_be/$(<F)
+ @$(PREFIX)/bin/mk_romfs -b bvt25_be $(@F:.h=.tmp)
+ @mkdir -p "$(@D)"
+ tclsh $(PREFIX)/bin/file2c.tcl $(@F:.h=.tmp) $@
+ @rm -r bvt25_be $(@F:.h=.tmp)
+ }
+ make {
+ <PREFIX>/include/cyg/ustl/bvt25fs_le.h : <PACKAGE>/tests/bvt25.std
+ @mkdir -p bvt25_le
+ @cp $< bvt25_le/$(<F)
+ @chmod u+w bvt25_le/$(<F)
+ @$(PREFIX)/bin/mk_romfs bvt25_le $(@F:.h=.tmp)
+ @mkdir -p "$(@D)"
+ tclsh $(PREFIX)/bin/file2c.tcl $(@F:.h=.tmp) $@
+ @rm -r bvt25_le $(@F:.h=.tmp)
+ }
+ }
+
+ cdl_option CYGBLD_USTL_BUILD_INTERACTIVE_TESTS {
+ display "Build interactive uSTL tests"
+ flavor bool
+ no_define
+ active_if CYGVAR_USTL_CIN_COUT_CERR
+ default_value 0
+ description "
+ This option enables the building of uSTL tests which
+ require user input (bvt13, bvt17). The easiest way to
+ run these tests is to build them for the synthetic
+ (linux) target and redirect standard input from file
+ at a shell prompt. For example: ./bvt13 < bvt13.cpp"
+ }
+
+ cdl_option CYGPKG_USTL_TESTS {
+ display "uSTL tests"
+ flavor data
+ no_define
+ calculated { (CYGVAR_USTL_CIN_COUT_CERR ?
+ (CYGBLD_USTL_BUILD_INTERACTIVE_TESTS ?
+ "tests/bvt00 tests/bvt01 tests/bvt02 tests/bvt03 tests/bvt04 tests/bvt05 tests/bvt06 tests/bvt07 tests/bvt08 tests/bvt09 tests/bvt10 tests/bvt11 tests/bvt12 tests/bvt13 tests/bvt14 tests/bvt15 tests/bvt16 tests/bvt17 tests/bvt18 tests/bvt19 tests/bvt20 tests/bvt21 tests/bvt22 tests/bvt23 tests/bvt24 tests/bvt25 tests/bvt26 tests/bvt27" :
+ "tests/bvt00 tests/bvt01 tests/bvt02 tests/bvt03 tests/bvt04 tests/bvt05 tests/bvt06 tests/bvt07 tests/bvt08 tests/bvt09 tests/bvt10 tests/bvt11 tests/bvt12 tests/bvt14 tests/bvt15 tests/bvt16 tests/bvt18 tests/bvt19 tests/bvt20 tests/bvt21 tests/bvt22 tests/bvt23 tests/bvt24 tests/bvt25 tests/bvt26 tests/bvt27") : "" )}
+ description "
+ This option specifies the set of tests for the uSTL library."
+ }
+ }
+}
+
+# ====================================================================
+# EOF ustl.cdl
diff --git a/ecos/packages/language/cxx/ustl/current/doc/ustl.sgml b/ecos/packages/language/cxx/ustl/current/doc/ustl.sgml
new file mode 100644
index 0000000..6689ace
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/doc/ustl.sgml
@@ -0,0 +1,153 @@
+<!-- {{{ Banner -->
+
+<!-- =============================================================== -->
+<!-- -->
+<!-- ustl.sgml -->
+<!-- -->
+<!-- eCos uSTL library port -->
+<!-- -->
+<!-- =============================================================== -->
+<!-- ####ECOSDOCCOPYRIGHTBEGIN#### -->
+<!-- =============================================================== -->
+<!-- Copyright (C) 2009 Free Software Foundation, Inc. -->
+<!-- This material may be distributed only subject to the terms -->
+<!-- and conditions set forth in the Open Publication License, v1.0 -->
+<!-- or later (the latest version is presently available at -->
+<!-- http://www.opencontent.org/openpub/) -->
+<!-- Distribution of the work or derivative of the work in any -->
+<!-- standard (paper) book form is prohibited unless prior -->
+<!-- permission obtained from the copyright holder -->
+<!-- =============================================================== -->
+<!-- ####ECOSDOCCOPYRIGHTEND#### -->
+<!-- =============================================================== -->
+<!-- #####DESCRIPTIONBEGIN#### -->
+<!-- -->
+<!-- ####DESCRIPTIONEND#### -->
+<!-- =============================================================== -->
+
+<!-- }}} -->
+
+<PART id="ustl">
+<TITLE>The uSTL Library</TITLE>
+<CHAPTER id="ustl-overview">
+<TITLE>uSTL library overview</TITLE>
+<PARA>
+The eCos uSTL library is a port of Mike Sharov's uSTL - a size-optimized
+STL implementation. It has the particular feature of generating small
+object code sizes - an important requirement for embedded eCos-based
+applications. The latest version can be found at
+<ulink url="http://sourceforge.net/projects/ustl">http://sourceforge.net/projects/ustl</ulink>.
+</PARA>
+
+<PARA>
+The library provides a subset of the full C++
+<ulink url="http://en.wikipedia.org/wiki/Standard_Template_Library">
+Standard Template Library</ulink>.
+uSTL is a partial implementation of the STL specification intended to
+reduce code size of the derivative programs. This allows eCos applications
+to use well known standard C++ STL library containers, streams,
+iterators, algorithms and functors.
+</PARA>
+
+<PARA>
+For changes, see the <filename>HISTORY</filename> file. A detailed introduction
+to the uSTL library is available on Mike Sharov's
+<ulink url="http://ustl.sourceforge.net/">uSTL web page</ulink>.
+Additional information on all the classes is available in the header
+files and in the <ulink url="http://ustl.sourceforge.net/html/index.html">
+Doxygen reference</ulink>.
+</PARA>
+<SECT1 id="ustl-ecos-changes">
+<TITLE>eCos specific changes/enhancements</TITLE>
+
+<PARA>
+All features of the uSTL library are available except for memory mapped
+files and memory mapped streams.
+</PARA>
+
+<PARA>
+By default, an eCos image is build without exceptions and without RTTI support
+(compiler switches -fno-exceptions -fno-rtti). Normally the uSTL
+library relies on C++ exceptions to propagate errors and exceptions.
+To build uSTL for eCos, all occurrences of <FUNCTION>try</FUNCTION>,
+<FUNCTION>catch</FUNCTION> and <FUNCTION>throw</FUNCTION>
+are replaced by macros <varname>USTL_TRY</varname>,
+<varname>USTL_CATCH_ALL</varname>, and
+<varname>USTL_THROW</varname>. Thus the eCos uSTL port compiles without
+exceptions and without RTTI support but also works if RTTI and exceptions
+are enabled.
+</PARA>
+
+<PARA>
+To handle and propagate uSTL exceptions when RTTI und C++ exceptions are
+not available, the eCos uSTL port was extended by some simple exception
+handling functions. An application can use the function
+<FUNCTION>ustl::set_app_exception_handler()</FUNCTION> to register an
+exception handler that is called by the <varname>USTL_THROW</varname>
+macro as soon as an exception is thrown by any uSTL function.
+</PARA>
+
+<PROGRAMLISTING>
+void ustl::set_app_exception_handler(app_exception_handler_t func);
+</PROGRAMLISTING>
+
+<PARA>
+If an exception handler is registered by an application then it replaces the
+default eCos uSTL exception handler. The default exception handler simply
+prints the error message of an exception to the diagnostic channel by calling
+<FUNCTION>void ustl::diag_print_exception()</FUNCTION>. This function
+can also be called from an application exception handler as illustrated
+in the test cases.
+</PARA>
+
+<PROGRAMLISTING>
+void ustl::set_app_exception_handler(app_exception_handler_t func);
+</PROGRAMLISTING>
+</SECT1>
+
+<SECT1 id="using-ustl-library">
+<TITLE>Using uSTL in eCos applications</TITLE>
+<PARA>
+To build an eCos library with uSTL support, you can start from the
+<EMPHASIS>default</EMPHASIS> template and then add the uSTL package
+CYGPKG_USTL. If you need file streams support or would like
+to build all uSTL tests, then you must also add the File I/O package
+CYGPKG_IO_FILEIO.
+</PARA>
+
+<PARA>
+To use uSTL in your eCos application, simply include the file
+<filename>&lt;ustl.h&gt;</filename>. All uSTL classes are in the
+<varname>ustl</varname> namespace. To prevent compiler warnings
+when compiling your eCos application with uSTL support, you need to
+add the compiler flag <OPTION>-Wno-undef</OPTION>.
+</PARA>
+
+<PROGRAMLISTING>
+#include &lt;ustl.h&gt;
+using namespace ustl;
+
+int main (int argc, char* argv[])
+{
+ cout &lt;&lt; "Hello world!\n";
+ return EXIT_SUCCESS;
+}
+</PROGRAMLISTING>
+
+<NOTE>
+<PARA>
+If you use <varname>cout</varname> for printing to the console,
+then data will get sent only if you finish the output with
+<varname>endl</varname> or '\n'.
+</PARA>
+</NOTE>
+
+<PARA>
+The uSTL library is subject of copyright under MIT license. For
+the license text see <filename>LICENSE</filename> file.
+</PARA>
+
+</SECT1>
+</CHAPTER>
+</PART>
+
diff --git a/ecos/packages/language/cxx/ustl/current/include/stdint.h b/ecos/packages/language/cxx/ustl/current/include/stdint.h
new file mode 100644
index 0000000..df75b59
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/include/stdint.h
@@ -0,0 +1,569 @@
+#ifndef CYGONCE_STDINT_H
+#define CYGONCE_STDINT_H
+/*============================================================================
+//
+// stdint.h
+//
+// ISO C9x 7.18 Integer types
+//
+// ===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2009 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+// ===========================================================================
+//============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): Uwe Kindler
+// Contributors:
+// Date: 2009-07-22
+// Purpose:
+// Description: eCos stdint.h header file for ISO C9x 7.18 Integer types
+// Usage: #include <stdint.h>
+//
+//####DESCRIPTIONEND####
+//
+//============================================================================
+*/
+
+// use the types defined in cyg_type.h to define the standard data types
+#include <cyg/infra/cyg_type.h>
+
+
+/*
+ * Copyright (c) 2004, 2005 by
+ * Ralf Corsepius, Ulm/Germany. All rights reserved.
+ *
+ * Permission to use, copy, modify, and distribute this software
+ * is freely granted, provided that this notice is preserved.
+ */
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#if defined(__GNUC__) && \
+ ( (__GNUC__ >= 4) || \
+ ( (__GNUC__ >= 3) && defined(__GNUC_MINOR__) && (__GNUC_MINOR__ > 2) ) )
+/* gcc > 3.2 implicitly defines the values we are interested */
+#define __STDINT_EXP(x) __##x##__
+#else
+#define __STDINT_EXP(x) x
+#include <limits.h>
+#endif
+
+/* Check if "long long" is 64bit wide */
+/* Modern GCCs provide __LONG_LONG_MAX__, SUSv3 wants LLONG_MAX */
+#if ( defined(__LONG_LONG_MAX__) && (__LONG_LONG_MAX__ > 0x7fffffff) ) \
+ || ( defined(LLONG_MAX) && (LLONG_MAX > 0x7fffffff) )
+#define __have_longlong64 1
+#endif
+
+/* Check if "long" is 64bit or 32bit wide */
+#if __STDINT_EXP(LONG_MAX) > 0x7fffffff
+#define __have_long64 1
+#elif __STDINT_EXP(LONG_MAX) == 0x7fffffff && !defined(__SPU__)
+#define __have_long32 1
+#endif
+
+#if __STDINT_EXP(SCHAR_MAX) == 0x7f
+typedef signed char int8_t ;
+typedef unsigned char uint8_t ;
+#define __int8_t_defined 1
+#endif
+
+#if __int8_t_defined
+typedef signed char int_least8_t;
+typedef unsigned char uint_least8_t;
+#define __int_least8_t_defined 1
+#endif
+
+#if __STDINT_EXP(SHRT_MAX) == 0x7fff
+typedef signed short int16_t;
+typedef unsigned short uint16_t;
+#define __int16_t_defined 1
+#elif __STDINT_EXP(INT_MAX) == 0x7fff
+typedef signed int int16_t;
+typedef unsigned int uint16_t;
+#define __int16_t_defined 1
+#elif __STDINT_EXP(SCHAR_MAX) == 0x7fff
+typedef signed char int16_t;
+typedef unsigned char uint16_t;
+#define __int16_t_defined 1
+#endif
+
+#if __int16_t_defined
+typedef int16_t int_least16_t;
+typedef uint16_t uint_least16_t;
+#define __int_least16_t_defined 1
+
+#if !__int_least8_t_defined
+typedef int16_t int_least8_t;
+typedef uint16_t uint_least8_t;
+#define __int_least8_t_defined 1
+#endif
+#endif
+
+// if long and int are both 32 bit then we prefer int for int32_t and uint32_t
+// instead of long
+#if __STDINT_EXP(INT_MAX) == 0x7fffffffL
+typedef signed int int32_t;
+typedef unsigned int uint32_t;
+#define __int32_t_defined 1
+#elif __have_long32
+typedef signed long int32_t;
+typedef unsigned long uint32_t;
+#define __int32_t_defined 1
+#elif __STDINT_EXP(SHRT_MAX) == 0x7fffffffL
+typedef signed short int32_t;
+typedef unsigned short uint32_t;
+#define __int32_t_defined 1
+#elif __STDINT_EXP(SCHAR_MAX) == 0x7fffffffL
+typedef signed char int32_t;
+typedef unsigned char uint32_t;
+#define __int32_t_defined 1
+#endif
+
+#if __int32_t_defined
+typedef int32_t int_least32_t;
+typedef uint32_t uint_least32_t;
+#define __int_least32_t_defined 1
+
+#if !__int_least8_t_defined
+typedef int32_t int_least8_t;
+typedef uint32_t uint_least8_t;
+#define __int_least8_t_defined 1
+#endif
+
+#if !__int_least16_t_defined
+typedef int32_t int_least16_t;
+typedef uint32_t uint_least16_t;
+#define __int_least16_t_defined 1
+#endif
+#endif
+
+#if __have_long64
+typedef signed long int64_t;
+typedef unsigned long uint64_t;
+#define __int64_t_defined 1
+#elif __have_longlong64
+typedef signed long long int64_t;
+typedef unsigned long long uint64_t;
+#define __int64_t_defined 1
+#elif __STDINT_EXP(INT_MAX) > 0x7fffffff
+typedef signed int int64_t;
+typedef unsigned int uint64_t;
+#define __int64_t_defined 1
+#endif
+
+#if __int64_t_defined
+typedef int64_t int_least64_t;
+typedef uint64_t uint_least64_t;
+#define __int_least64_t_defined 1
+
+#if !__int_least8_t_defined
+typedef int64_t int_least8_t;
+typedef uint64_t uint_least8_t;
+#define __int_least8_t_defined 1
+#endif
+
+#if !__int_least16_t_defined
+typedef int64_t int_least16_t;
+typedef uint64_t uint_least16_t;
+#define __int_least16_t_defined 1
+#endif
+
+#if !__int_least32_t_defined
+typedef int64_t int_least32_t;
+typedef uint64_t uint_least32_t;
+#define __int_least32_t_defined 1
+#endif
+#endif
+
+/*
+ * Fastest minimum-width integer types
+ *
+ * Assume int to be the fastest type for all types with a width
+ * less than __INT_MAX__ rsp. INT_MAX
+ */
+#if 0 // we use the cyg_halcount types here instead of the newlib implementation
+#if __STDINT_EXP(INT_MAX) >= 0x7f
+ typedef signed int int_fast8_t;
+ typedef unsigned int uint_fast8_t;
+#define __int_fast8_t_defined 1
+#endif
+
+#if __STDINT_EXP(INT_MAX) >= 0x7fff
+ typedef signed int int_fast16_t;
+ typedef unsigned int uint_fast16_t;
+#define __int_fast16_t_defined 1
+#endif
+
+#if __STDINT_EXP(INT_MAX) >= 0x7fffffff
+ typedef signed int int_fast32_t;
+ typedef unsigned int uint_fast32_t;
+#define __int_fast32_t_defined 1
+#endif
+
+#if __STDINT_EXP(INT_MAX) > 0x7fffffff
+ typedef signed int int_fast64_t;
+ typedef unsigned int uint_fast64_t;
+#define __int_fast64_t_defined 1
+#endif
+
+
+/*
+ * Fall back to [u]int_least<N>_t for [u]int_fast<N>_t types
+ * not having been defined, yet.
+ * Leave undefined, if [u]int_least<N>_t should not be available.
+ */
+#if !__int_fast8_t_defined
+#if __int_least8_t_defined
+ typedef int_least8_t int_fast8_t;
+ typedef uint_least8_t uint_fast8_t;
+#define __int_fast8_t_defined 1
+#endif
+#endif
+
+#if !__int_fast16_t_defined
+#if __int_least16_t_defined
+ typedef int_least16_t int_fast16_t;
+ typedef uint_least16_t uint_fast16_t;
+#define __int_fast16_t_defined 1
+#endif
+#endif
+
+#if !__int_fast32_t_defined
+#if __int_least32_t_defined
+ typedef int_least32_t int_fast32_t;
+ typedef uint_least32_t uint_fast32_t;
+#define __int_fast32_t_defined 1
+#endif
+#endif
+
+#if !__int_fast64_t_defined
+#if __int_least64_t_defined
+ typedef int_least64_t int_fast64_t;
+ typedef uint_least64_t uint_fast64_t;
+#define __int_fast64_t_defined 1
+#endif
+#endif
+#endif // 0
+
+/* 7.18.1.3 Fastest minimum-width integer types
+ * Not actually guaranteed to be fastest for all purposes
+ * Here we use the cyg_halcount types from <cyg/infra/cyg_type.h>
+ */
+typedef cyg_halcount8 int_fast8_t;
+typedef unsigned cyg_halcount8 uint_fast8_t;
+typedef cyg_halcount16 int_fast16_t;
+typedef unsigned cyg_halcount16 uint_fast16_t;
+typedef cyg_halcount32 int_fast32_t;
+typedef unsigned cyg_halcount32 uint_fast32_t;
+typedef cyg_halcount64 int_fast64_t;
+typedef unsigned cyg_halcount64 uint_fast64_t;
+
+
+/* Greatest-width integer types */
+/* Modern GCCs provide __INTMAX_TYPE__ */
+#if defined(__INTMAX_TYPE__)
+ typedef __INTMAX_TYPE__ intmax_t;
+#elif __have_longlong64
+ typedef signed long long intmax_t;
+#else
+ typedef signed long intmax_t;
+#endif
+
+/* Modern GCCs provide __UINTMAX_TYPE__ */
+#if defined(__UINTMAX_TYPE__)
+ typedef __UINTMAX_TYPE__ uintmax_t;
+#elif __have_longlong64
+ typedef unsigned long long uintmax_t;
+#else
+ typedef unsigned long uintmax_t;
+#endif
+
+/*
+ * GCC doesn't provide an appropriate macro for [u]intptr_t
+ * For now, use __PTRDIFF_TYPE__
+ */
+#if defined(__PTRDIFF_TYPE__)
+typedef signed __PTRDIFF_TYPE__ intptr_t;
+typedef unsigned __PTRDIFF_TYPE__ uintptr_t;
+#define INTPTR_MAX PTRDIFF_MAX
+#define INTPTR_MIN PTRDIFF_MIN
+#ifdef __UINTPTR_MAX__
+#define UINTPTR_MAX __UINTPTR_MAX__
+#else
+#define UINTPTR_MAX (2UL * PTRDIFF_MAX + 1)
+#endif
+#else
+/*
+ * Fallback to hardcoded values,
+ * should be valid on cpu's with 32bit int/32bit void*
+ */
+typedef signed long intptr_t;
+typedef unsigned long uintptr_t;
+#define INTPTR_MAX __STDINT_EXP(LONG_MAX)
+#define INTPTR_MIN (-__STDINT_EXP(LONG_MAX) - 1)
+#define UINTPTR_MAX (__STDINT_EXP(LONG_MAX) * 2UL + 1)
+#endif
+
+/* Limits of Specified-Width Integer Types */
+
+#if __int8_t_defined
+#define INT8_MIN -128
+#define INT8_MAX 127
+#define UINT8_MAX 255
+#endif
+
+#if __int_least8_t_defined
+#define INT_LEAST8_MIN -128
+#define INT_LEAST8_MAX 127
+#define UINT_LEAST8_MAX 255
+#else
+#error required type int_least8_t missing
+#endif
+
+#if __int16_t_defined
+#define INT16_MIN -32768
+#define INT16_MAX 32767
+#define UINT16_MAX 65535
+#endif
+
+#if __int_least16_t_defined
+#define INT_LEAST16_MIN -32768
+#define INT_LEAST16_MAX 32767
+#define UINT_LEAST16_MAX 65535
+#else
+#error required type int_least16_t missing
+#endif
+
+#if __int32_t_defined
+#if __have_long32
+#define INT32_MIN (-2147483647L-1)
+#define INT32_MAX 2147483647L
+#define UINT32_MAX 4294967295UL
+#else
+#define INT32_MIN (-2147483647-1)
+#define INT32_MAX 2147483647
+#define UINT32_MAX 4294967295U
+#endif
+#endif
+
+#if __int_least32_t_defined
+#if __have_long32
+#define INT_LEAST32_MIN (-2147483647L-1)
+#define INT_LEAST32_MAX 2147483647L
+#define UINT_LEAST32_MAX 4294967295UL
+#else
+#define INT_LEAST32_MIN (-2147483647-1)
+#define INT_LEAST32_MAX 2147483647
+#define UINT_LEAST32_MAX 4294967295U
+#endif
+#else
+#error required type int_least32_t missing
+#endif
+
+#if __int64_t_defined
+#if __have_long64
+#define INT64_MIN (-9223372036854775807L-1L)
+#define INT64_MAX 9223372036854775807L
+#define UINT64_MAX 18446744073709551615U
+#elif __have_longlong64
+#define INT64_MIN (-9223372036854775807LL-1LL)
+#define INT64_MAX 9223372036854775807LL
+#define UINT64_MAX 18446744073709551615ULL
+#endif
+#endif
+
+#if __int_least64_t_defined
+#if __have_long64
+#define INT_LEAST64_MIN (-9223372036854775807L-1L)
+#define INT_LEAST64_MAX 9223372036854775807L
+#define UINT_LEAST64_MAX 18446744073709551615U
+#elif __have_longlong64
+#define INT_LEAST64_MIN (-9223372036854775807LL-1LL)
+#define INT_LEAST64_MAX 9223372036854775807LL
+#define UINT_LEAST64_MAX 18446744073709551615ULL
+#endif
+#endif
+
+#if __int_fast8_t_defined
+#if __STDINT_EXP(INT_MAX) >= 0x7f
+#define INT_FAST8_MIN (-__STDINT_EXP(INT_MAX)-1)
+#define INT_FAST8_MAX __STDINT_EXP(INT_MAX)
+#define UINT_FAST8_MAX (__STDINT_EXP(INT_MAX)*2U+1U)
+#else
+#define INT_FAST8_MIN INT_LEAST8_MIN
+#define INT_FAST8_MAX INT_LEAST8_MAX
+#define UINT_FAST8_MAX UINT_LEAST8_MAX
+#endif
+#endif
+
+#if __int_fast16_t_defined
+#if __STDINT_EXP(INT_MAX) >= 0x7fff
+#define INT_FAST16_MIN (-__STDINT_EXP(INT_MAX)-1)
+#define INT_FAST16_MAX __STDINT_EXP(INT_MAX)
+#define UINT_FAST16_MAX (__STDINT_EXP(INT_MAX)*2U+1U)
+#else
+#define INT_FAST16_MIN INT_LEAST16_MIN
+#define INT_FAST16_MAX INT_LEAST16_MAX
+#define UINT_FAST16_MAX UINT_LEAST16_MAX
+#endif
+#endif
+
+#if __int_fast32_t_defined
+#if __STDINT_EXP(INT_MAX) >= 0x7fffffff
+#define INT_FAST32_MIN (-__STDINT_EXP(INT_MAX)-1)
+#define INT_FAST32_MAX __STDINT_EXP(INT_MAX)
+#define UINT_FAST32_MAX (__STDINT_EXP(INT_MAX)*2U+1U)
+#else
+#define INT_FAST32_MIN INT_LEAST32_MIN
+#define INT_FAST32_MAX INT_LEAST32_MAX
+#define UINT_FAST32_MAX UINT_LEAST32_MAX
+#endif
+#endif
+
+#if __int_fast64_t_defined
+#if __STDINT_EXP(INT_MAX) > 0x7fffffff
+#define INT_FAST64_MIN (-__STDINT_EXP(INT_MAX)-1)
+#define INT_FAST64_MAX __STDINT_EXP(INT_MAX)
+#define UINT_FAST64_MAX (__STDINT_EXP(INT_MAX)*2U+1U)
+#else
+#define INT_FAST64_MIN INT_LEAST64_MIN
+#define INT_FAST64_MAX INT_LEAST64_MAX
+#define UINT_FAST64_MAX UINT_LEAST64_MAX
+#endif
+#endif
+
+#ifdef __INTMAX_MAX__
+#define INTMAX_MAX __INTMAX_MAX__
+#define INTMAX_MIN (-INTMAX_MAX - 1)
+#elif defined(__INTMAX_TYPE__)
+/* All relevant GCC versions prefer long to long long for intmax_t. */
+#define INTMAX_MAX INT64_MAX
+#define INTMAX_MIN INT64_MIN
+#endif
+
+#ifdef __UINTMAX_MAX__
+#define UINTMAX_MAX __UINTMAX_MAX__
+#elif defined(__UINTMAX_TYPE__)
+/* All relevant GCC versions prefer long to long long for intmax_t. */
+#define UINTMAX_MAX UINT64_MAX
+#endif
+
+/* This must match size_t in stddef.h, currently long unsigned int */
+#ifdef __SIZE_MAX__
+#define SIZE_MAX __SIZE_MAX__
+#else
+#define SIZE_MAX (__STDINT_EXP(LONG_MAX) * 2UL + 1)
+#endif
+
+/* This must match sig_atomic_t in <signal.h> (currently int) */
+#define SIG_ATOMIC_MIN (-__STDINT_EXP(INT_MAX) - 1)
+#define SIG_ATOMIC_MAX __STDINT_EXP(INT_MAX)
+
+/* This must match ptrdiff_t in <stddef.h> (currently long int) */
+#ifdef __PTRDIFF_MAX__
+#define PTRDIFF_MAX __PTRDIFF_MAX__
+#else
+#define PTRDIFF_MAX __STDINT_EXP(LONG_MAX)
+#endif
+#define PTRDIFF_MIN (-PTRDIFF_MAX - 1)
+
+#ifdef __WCHAR_MAX__
+#define WCHAR_MAX __WCHAR_MAX__
+#endif
+#ifdef __WCHAR_MIN__
+#define WCHAR_MIN __WCHAR_MIN__
+#endif
+
+/* wint_t is unsigned int on almost all GCC targets. */
+#ifdef __WINT_MAX__
+#define WINT_MAX __WINT_MAX__
+#else
+#define WINT_MAX (__STDINT_EXP(INT_MAX) * 2U + 1U)
+#endif
+#ifdef __WINT_MIN__
+#define WINT_MIN __WINT_MIN__
+#else
+#define WINT_MIN 0U
+#endif
+
+/** Macros for minimum-width integer constant expressions */
+#define INT8_C(x) x
+#if __STDINT_EXP(INT_MAX) > 0x7f
+#define UINT8_C(x) x
+#else
+#define UINT8_C(x) x##U
+#endif
+
+#define INT16_C(x) x
+#if __STDINT_EXP(INT_MAX) > 0x7fff
+#define UINT16_C(x) x
+#else
+#define UINT16_C(x) x##U
+#endif
+
+#if __have_long32
+#define INT32_C(x) x##L
+#define UINT32_C(x) x##UL
+#else
+#define INT32_C(x) x
+#define UINT32_C(x) x##U
+#endif
+
+#if __int64_t_defined
+#if __have_long64
+#define INT64_C(x) x##L
+#define UINT64_C(x) x##UL
+#else
+#define INT64_C(x) x##LL
+#define UINT64_C(x) x##ULL
+#endif
+#endif
+
+/** Macros for greatest-width integer constant expression */
+#if __have_long64
+#define INTMAX_C(x) x##L
+#define UINTMAX_C(x) x##UL
+#else
+#define INTMAX_C(x) x##LL
+#define UINTMAX_C(x) x##ULL
+#endif
+
+
+#ifdef __cplusplus
+}
+#endif
+
+
+#endif // CYGONCE_STDINT_H
diff --git a/ecos/packages/language/cxx/ustl/current/include/ustl.h b/ecos/packages/language/cxx/ustl/current/include/ustl.h
new file mode 100644
index 0000000..ef4a5aa
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/include/ustl.h
@@ -0,0 +1,193 @@
+// This file is part of the uSTL library, an STL implementation.
+//
+// Copyright (c) 2005 by Mike Sharov <msharov@users.sourceforge.net>
+// This file is free software, distributed under the MIT License.
+
+#ifndef USTL_H_6A5A10410D2CD7FC2D78FE470F045EB7
+#define USTL_H_6A5A10410D2CD7FC2D78FE470F045EB7
+
+#include <pkgconf/ustl.h>
+
+#include "ustl/uspecial.h"
+#include "ustl/umap.h"
+#include "ustl/umultimap.h"
+#include "ustl/ustack.h"
+#include "ustl/uqueue.h"
+#ifdef CYGCLS_USTL_FSTREAMS
+#include "ustl/ofstream.h"
+#endif
+#include "ustl/unumeric.h"
+#include "ustl/ulist.h"
+#include "ustl/uheap.h"
+#include "ustl/ustdxept.h"
+#include "ustl/ustlecos.h"
+
+#endif
+
+/// \mainpage
+///
+/// \section intro Introduction
+///
+/// uSTL is a partial implementation of the STL specification intended to
+/// reduce code size of the derivative programs. Usually, the STL containers
+/// manage their own storage with new[] and delete[] operators, which create
+/// strongly typed storage. That is the standard way of allocating C++ object
+/// vectors, allowing appropriate constructors and destructors to be called on
+/// the allocated storage and ensuring that objects are copied via their copy
+/// operators. Although type safety is a good thing, placing memory management
+/// code into a template necessitates its reinstantiation for every template
+/// instance used by the derivative program. This produces substantial code
+/// bloat, that is frequently derided by C developers and used by them as
+/// an argument that C is better than C++. The uSTL implementation solves
+/// this problem by factoring memory management code into a non-template base
+/// class, ustl::memblock, which performs unstructured memory allocation. STL
+/// containers are then implemented as template wrappers for memblock to
+/// provide a measure of type safety. The result is that each template
+/// instantiation contains less code, and although it does not completely
+/// "disappear", due to the requirement for calling placement constructors
+/// on the allocated memory, most of it does, being replaced by calls to
+/// memblock methods. The base classes for unstructured storage management
+/// (cmemlink - link to constant memory, memlink - link to mutable memory,
+/// and memblock - owner of mutable memory) are, of course, also available
+/// for use as data buffers wherever those are needed, and streams that
+/// efficiently read and write binary data into them are also available.
+//
+/// \defgroup Containers Containers
+/// Here you'll find all the containers for your objects and data.
+//
+/// \defgroup MemoryManagement Memory Management
+/// \ingroup Containers
+/// Classes that implement low-level memory management and form the base for
+/// all containers in the library. Almost all functionality in the containers
+/// is reduced to calls to these base classes through a great deal of inline
+/// crunching by the compiler, and thus you end up storing all your data in
+/// ustl::memblock objects with the container templates as mere syntactic sugar.
+//
+/// \defgroup Sequences Sequence Containers
+/// \ingroup Containers
+/// Containers containing sequences of objects.
+//
+/// \defgroup AssociativeContainers Associative Containers
+/// \ingroup Containers
+/// Containers containing associations of objects.
+//
+/// \defgroup Streams Streams
+/// Streams convert objects into flat data.
+//
+/// \defgroup BinaryStreams Binary Streams
+/// \ingroup Streams
+/// Unlike the C++ standard library,
+/// the default behaviour is very strongly biased toward binary streams. I
+/// believe that text formats should be used very sparingly due to numerous
+/// problems they cause, such as total lack of structure, buffer overflows,
+/// the great multitude of formats and encodings for even the most
+/// trivial of things like integers, and the utter lack of readability
+/// despite ardent claims to the contrary. Binary formats are well-structured,
+/// are simpler to define exhaustively, are aggregates of basic types which
+/// are universal to all architectures (with the exception of two types of
+/// byte ordering, which I hope to be an issue that will go away soon), and
+/// are much more readable (through an appropriate formatting tool equipped
+/// to read binary format specifications).
+//
+/// \defgroup BinaryStreamIterators Binary Stream Iterators
+/// \ingroup BinaryStreams
+/// \ingroup Iterators
+/// Iterators for using STL algorithms with binary streams.
+//
+/// \defgroup TextStreams TextStreams
+/// \ingroup Streams
+/// Streams converting objects into streams of text.
+//
+/// \defgroup DeviceStreams Device Streams
+/// \ingroup Streams
+/// Standard cout, cerr, and cin implementations for reading
+/// and writing text through standard file descriptors.
+//
+/// \defgroup Iterators Iterators
+/// Generalizations of the pointer concept, allowing algorithms to treat
+/// all containers in a unified fashion.
+//
+/// \defgroup IteratorAdaptors Iterator Adaptors
+/// \ingroup Iterators
+/// Iterators made out of other iterators.
+//
+/// \defgroup Algorithms Algorithms
+/// STL algorithms are the heart of generic programming. The idea is to
+/// separate algorithms from containers to take advantage of the fact that
+/// there are fewer distinct algorithms than typed containers. This is
+/// diametrically opposed to object oriented programming, where each object
+/// must contain all functionality related to its internal data. You will
+/// find, I think, that in practice, generic programming is not terribly
+/// convenient because it prevents you from encapsulating all your data.
+/// The best approach is to compromise and have raw data classes that will
+/// be manipulated by algorithms and to treat the rest of the objects as
+/// stateful data transformers.
+//
+/// \defgroup MutatingAlgorithms Mutating Algorithms
+/// \ingroup Algorithms
+/// Algorithms for modifying your data in some way.
+//
+/// \defgroup SortingAlgorithms Sorting Algorithms
+/// \ingroup MutatingAlgorithms
+/// Algorithms for sorting containers.
+//
+/// \defgroup GeneratorAlgorithms Generator Algorithms
+/// \ingroup MutatingAlgorithms
+/// Algorithms for generating data.
+//
+/// \defgroup NumericAlgorithms Numeric Algorithms
+/// \ingroup MutatingAlgorithms
+/// Algorithms generalizing mathematical operations.
+//
+/// \defgroup SetAlgorithms Set Algorithms
+/// \ingroup MutatingAlgorithms
+/// Algorithms for working with sorted sets.
+//
+/// \defgroup HeapAlgorithms Heap Algorithms
+/// \ingroup MutatingAlgorithms
+/// Algorithms for generating and manipulating heaps.
+//
+/// \defgroup SwapAlgorithms Swap Algorithms
+/// \ingroup MutatingAlgorithms
+/// Algorithms for swapping elements.
+//
+/// \defgroup RawStorageAlgorithms Raw Storage Algorithms
+/// \ingroup MutatingAlgorithms
+/// Algorithms for manipulating unstructured memory.
+//
+/// \defgroup ConditionAlgorithms Condition Algorithms
+/// \ingroup Algorithms
+/// Algorithms for obtaining information about data.
+//
+/// \defgroup SearchingAlgorithms Searching Algorithms
+/// \ingroup ConditionAlgorithms
+/// Algorithms for searching through containers.
+//
+/// \defgroup PredicateAlgorithms Predicate Algorithms
+/// \ingroup Algorithms
+/// Algorithms that take a functor object. Avoid these if you can,
+/// and carefully check the generated assembly if you can't. These
+/// algorithms can and will generate prodigious amounts of bloat
+/// if you are not very very careful about writing your functors.
+//
+/// \defgroup Functors Functors
+/// Functors are inteded to be passed as arguments to \link PredicateAlgorithms
+/// predicate algorithms\endlink. Ivory tower academics make much of this capability,
+/// no doubt happy that C++ can now be made to look just like their precious lisp.
+/// In practice, however, functors and predicate algorithms are mostly useless.
+/// An iterative solution using \ref foreach is usually far simpler to write
+/// and to maintain. Furthermore, functional programming in C++ often
+/// generates much bloat and slowness, which is difficult to avoid with any
+/// but the most primitive functors. Try them if you wish, now and then, but
+/// compare with an iterative solution to see if the compiler really can see
+/// through all your functional trickery.
+//
+/// \defgroup FunctorObjects Functor Objects
+/// \ingroup Functors
+/// Objects that wrap other functors to provide new functionality.
+//
+/// \defgroup FunctorAccessors Functor Object Accessors
+/// \ingroup Functors
+/// Because C++ is so very unsuited to functional programming, trying
+/// to do so may require a lot of typing. These accessor functions
+/// are somewhat helpful in making functional constructs more readable.
diff --git a/ecos/packages/language/cxx/ustl/current/include/ustl/bktrace.h b/ecos/packages/language/cxx/ustl/current/include/ustl/bktrace.h
new file mode 100644
index 0000000..6af8459
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/include/ustl/bktrace.h
@@ -0,0 +1,50 @@
+// This file is part of the uSTL library, an STL implementation.
+//
+// Copyright (c) 2006 by Mike Sharov <msharov@users.sourceforge.net>
+// This file is free software, distributed under the MIT License.
+
+#ifndef BKTRACE_H_63ABB1E4388CEDD975DBE58B57DE474F
+#define BKTRACE_H_63ABB1E4388CEDD975DBE58B57DE474F
+
+#include "ulimits.h"
+#include <stdlib.h>
+
+namespace ustl {
+
+class ostringstream;
+class istream;
+class ostream;
+
+/// \class CBacktrace bktrace.h ustl.h
+///
+/// \brief Stores the backtrace from the point of construction.
+///
+/// The backtrace, or callstack, is the listing of functions called to
+/// reach the construction of this object. This is useful for debugging,
+/// to print the location of an error. To get meaningful output you'll
+/// need to use a debug build with symbols and with frame pointers. For
+/// GNU ld you will also need to link with the -rdynamic option to see
+/// actual function names instead of __gxx_personality0+0xF4800.
+///
+class CBacktrace {
+public:
+ CBacktrace (void) throw();
+ CBacktrace (const CBacktrace& v) throw();
+ inline ~CBacktrace (void) throw() { if (m_Symbols) free (m_Symbols); }
+ const CBacktrace& operator= (const CBacktrace& v) throw();
+ void text_write (ostringstream& os) const;
+ void read (istream& is);
+ void write (ostream& os) const;
+ size_t stream_size (void) const;
+private:
+ void GetSymbols (void) throw() DLL_LOCAL;
+private:
+ void* m_Addresses [64]; ///< Addresses of each function on the stack.
+ char* m_Symbols; ///< Symbols corresponding to each address.
+ uint32_t m_nFrames; ///< Number of addresses in m_Addresses.
+ uint32_t m_SymbolsSize; ///< Size of m_Symbols.
+};
+
+} // namespace ustl
+
+#endif
diff --git a/ecos/packages/language/cxx/ustl/current/include/ustl/cmemlink.h b/ecos/packages/language/cxx/ustl/current/include/ustl/cmemlink.h
new file mode 100644
index 0000000..5932fce
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/include/ustl/cmemlink.h
@@ -0,0 +1,103 @@
+// This file is part of the uSTL library, an STL implementation.
+//
+// Copyright (c) 2005 by Mike Sharov <msharov@users.sourceforge.net>
+// This file is free software, distributed under the MIT License.
+
+#ifndef CMEMLINK_H_7CFAB32C5C6732ED29B34EF00EA40A12
+#define CMEMLINK_H_7CFAB32C5C6732ED29B34EF00EA40A12
+
+#include "ualgobase.h"
+#include "config.h"
+
+/// The ustl namespace contains all ustl classes and algorithms.
+namespace ustl {
+
+class istream;
+class ostream;
+class ostringstream;
+
+/// \class cmemlink cmemlink.h ustl.h
+/// \ingroup MemoryManagement
+///
+/// \brief A read-only pointer to a sized block of memory.
+///
+/// Use this class the way you would a const pointer to an allocated unstructured block.
+/// The pointer and block size are available through member functions and cast operator.
+///
+/// Example usage:
+///
+/// \code
+/// void* p = malloc (46721);
+/// cmemlink a, b;
+/// a.link (p, 46721);
+/// assert (a.size() == 46721));
+/// b = a;
+/// assert (b.size() == 46721));
+/// assert (b.DataAt(34) == a.DataAt(34));
+/// assert (0 == memcmp (a, b, 12));
+/// \endcode
+///
+class cmemlink {
+public:
+ typedef char value_type;
+ typedef const value_type* pointer;
+ typedef const value_type* const_pointer;
+ typedef value_type reference;
+ typedef value_type const_reference;
+ typedef size_t size_type;
+ typedef uint32_t written_size_type;
+ typedef ptrdiff_t difference_type;
+ typedef const_pointer const_iterator;
+ typedef const_iterator iterator;
+ typedef const cmemlink& rcself_t;
+public:
+ inline cmemlink (void) : m_Data (NULL), m_Size (0) { }
+ inline cmemlink (const void* p, size_type n) : m_Data (const_pointer(p)), m_Size (n) { assert (p || !n); }
+ inline cmemlink (const cmemlink& l) : m_Data (l.m_Data), m_Size (l.m_Size) {}
+ inline virtual ~cmemlink (void) throw() {}
+ void link (const void* p, size_type n);
+ inline void link (const cmemlink& l) { link (l.begin(), l.size()); }
+ inline void link (const void* first, const void* last) { link (first, distance (first, last)); }
+ inline void relink (const void* p, size_type n);
+ virtual void unlink (void) throw();
+ inline rcself_t operator= (const cmemlink& l) { link (l); return (*this); }
+ bool operator== (const cmemlink& l) const;
+ inline void swap (cmemlink& l) { ::ustl::swap (m_Data, l.m_Data); ::ustl::swap (m_Size, l.m_Size); }
+ inline size_type size (void) const { return (m_Size); }
+ inline size_type max_size (void) const { return (size()); }
+ inline size_type readable_size (void) const { return (size()); }
+ inline bool empty (void) const { return (!size()); }
+ inline const_pointer cdata (void) const { return (m_Data); }
+ inline iterator begin (void) const { return (iterator (cdata())); }
+ inline iterator iat (size_type i) const { assert (i <= size()); return (begin() + i); }
+ inline iterator end (void) const { return (iat (size())); }
+ inline void resize (size_type n) { m_Size = n; }
+ inline void read (istream&) { assert (!"ustl::cmemlink is a read-only object."); }
+ void write (ostream& os) const;
+ size_type stream_size (void) const;
+ void text_write (ostringstream& os) const;
+#ifdef CYGCLS_USTL_FSTREAMS
+ void write_file (const char* filename, int mode = 0644) const;
+#endif
+private:
+ const_pointer m_Data; ///< Pointer to the data block (const)
+ size_type m_Size; ///< size of the data block
+};
+
+//----------------------------------------------------------------------
+
+/// A fast alternative to link which can be used when relinking to the same block (i.e. when it is resized)
+inline void cmemlink::relink (const void* p, size_type n)
+{
+ m_Data = reinterpret_cast<const_pointer>(p);
+ m_Size = n;
+}
+
+//----------------------------------------------------------------------
+
+/// Use with cmemlink-derived classes to link to a static array
+#define static_link(v) link (VectorBlock(v))
+
+} // namespace ustl
+
+#endif
diff --git a/ecos/packages/language/cxx/ustl/current/include/ustl/config.h b/ecos/packages/language/cxx/ustl/current/include/ustl/config.h
new file mode 100644
index 0000000..7a9e0d2
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/include/ustl/config.h
@@ -0,0 +1,389 @@
+#ifndef CYGONCE_CONFIG_H
+#define CYGONCE_CONFIG_H
+// ==========================================================================
+//
+// config.h
+//
+// Manually constructed uSTL configuration file for eCos RTOS
+//
+// ===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2009 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+// ===========================================================================
+// ===========================================================================
+// #####DESCRIPTIONBEGIN####
+//
+// Author(s): Uwe Kindler
+// Contributors:
+// Date: 2009-07-28
+// Purpose: eCos specific uSTL configuration
+// Description:
+//
+// ####DESCRIPTIONEND####
+//
+// ========================================================================*/
+#include <stdint.h>
+#include <pkgconf/ustl.h> // ustl package configuration
+
+
+//
+// If there is no RTTI support (normally this is the default eCos setting)
+// C++ typeid keyword is not supported. We hide this by using a macro instead
+// of using typeid keyword directly.
+//
+#ifdef __GXX_RTTI
+ #define USTL_TYPENAME(_t_) typeid(_t_).name()
+#else
+ #define USTL_TYPENAME(_t_) "unknown type (RTTI disabled)"
+#endif
+
+//
+// If there is no exception support (normally this is the default eCos setting)
+// C++ keywords try, catch and throw are not supported. To compile uSTL without
+// exception support we use macros USLT_TRY, USLT_CATCH_ALL and USLT_THROW
+// instead of the real keywords. To handle exceptions in debug builds we define
+// a "lightwight" exception handler. This handler is simply a function that
+// prints exception information do diagnostic channel.
+//
+#ifdef __EXCEPTIONS
+ #define USTL_TRY try
+ #define USTL_CATCH_ALL catch (...) {}
+ #define USTL_THROW(_exception_) throw (_exception_)
+#else
+ namespace ustl
+ {
+ class exception;
+ extern void exception_handler(const exception& ex);
+ }
+ #define USTL_TRY
+ #define USTL_CATCH_ALL
+ #define USTL_THROW(_exception_) ustl::exception_handler(_exception_)
+#endif
+
+//
+// There is no eCos header that exports this function so we do it here
+//
+#ifdef CYGCLS_USTL_FSTREAMS
+__externC int ioctl( int fd, CYG_ADDRWORD com, ... );
+#endif
+
+
+/// Define to 1 if you want stream operations to throw exceptions on
+/// insufficient data or insufficient space. All these errors should
+/// be preventable in output code; the input code should verify the
+/// data in a separate step. It slows down stream operations a lot,
+/// but it's your call. By default only debug builds throw.
+///
+#ifdef CYGSEM_USTL_STREAM_BOUNDS_CHECK
+#define WANT_STREAM_BOUNDS_CHECKING 1
+#else
+#undef WANT_STREAM_BOUNDS_CHECKING
+#endif
+
+#if !defined(WANT_STREAM_BOUNDS_CHECKING) && !defined(NDEBUG)
+ #define WANT_STREAM_BOUNDS_CHECKING 1
+#endif
+
+/// Define to 1 if you want backtrace symbols demangled.
+/// This adds some 15k to the library size, and requires that you link it and
+/// any executables you make with the -rdynamic flag (increasing library size
+/// even more). By default this option is disable. Enabling this option also
+/// pulls in __cxa_demangle from libsupc++
+#undef WANT_NAME_DEMANGLING
+
+/// Define to 1 if you want to build without libstdc++
+#define WITHOUT_LIBSTDCPP 1
+
+/// Define GNU extensions if unavailable.
+#ifndef __GNUC__
+ /// GCC (and some other compilers) define '__attribute__'; ustl is using this
+ /// macro to alert the compiler to flag inconsistencies in printf/scanf-like
+ /// function calls. Just in case '__attribute__' is undefined, make a dummy.
+ ///
+ #ifndef __attribute__
+ #define __attribute__(p)
+ #endif
+#endif
+#if defined(__GNUC__) && __GNUC__ >= 4
+ #define INLINE __attribute__((always_inline))
+#else
+ #define INLINE
+#endif
+#define DLL_EXPORT
+#define DLL_LOCAL
+#if defined(__GNUC__) && __GNUC__ >= 3 && (__i386__ || __x86_64__)
+ /// GCC 3+ supports the prefetch directive, which some CPUs use to improve caching
+ #define prefetch(p,rw,loc) __builtin_prefetch(p,rw,loc)
+#else
+ #define prefetch(p,rw,loc)
+#endif
+#if !defined(__GNUC__) || __GNUC__ < 3
+ /// __alignof__ returns the recommended alignment for the type
+ #define __alignof__(v) min(sizeof(v), sizeof(void*))
+ /// This macro returns 1 if the value of x is known at compile time.
+ #ifndef __builtin_constant_p
+ #define __builtin_constant_p(x) 0
+ #endif
+#endif
+
+// Define to 1 if you have the `atexit' function.
+#define HAVE_ATEXIT 1
+
+// Define to 1 if you have the <assert.h> header file.
+#define HAVE_ASSERT_H 1
+
+// Define to 1 if you have the <ctype.h> header file.
+#define HAVE_CTYPE_H 1
+
+// Define to 1 if you have the <errno.h> header file.
+#define HAVE_ERRNO_H 1
+
+// Define to 1 if you have the <fcntl.h> header file.
+#define HAVE_FCNTL_H 1
+
+// Define to 1 if you have the <float.h> header file.
+#define HAVE_FLOAT_H 1
+
+// Define to 1 if you have the <limits.h> header file.
+#define HAVE_LIMITS_H 1
+
+// Define to 1 if you have the <locale.h> header file.
+#define HAVE_LOCALE_H 1
+
+// Define to 1 if your system has a working `malloc' function.
+#define HAVE_MALLOC 1
+
+// Define to 1 if you have the `memchr' function.
+#define HAVE_MEMCHR 1
+
+// Define to 1 if you have the `memmove' function.
+#define HAVE_MEMMOVE 1
+
+// Define to 1 if you have the `memset' function.
+#define HAVE_MEMSET 1
+
+// Define to 1 if the system has the type `ptrdiff_t'.
+#define HAVE_PTRDIFF_T 1
+
+// Define to 1 if you have the <signal.h> header file.
+#define HAVE_SIGNAL_H 1
+
+// Define to 1 if you have the <stdarg.h> header file.
+#define HAVE_STDARG_H 1
+
+// Define to 1 if you have the <stddef.h> header file.
+#define HAVE_STDDEF_H 1
+
+// Define to 1 if you have the <stdint.h> header file.
+#define HAVE_STDINT_H 1
+
+// Define to 1 if you have the <stdio.h> header file.
+#define HAVE_STDIO_H 1
+
+// Define to 1 if you have the <stdlib.h> header file.
+#define HAVE_STDLIB_H 1
+
+// Define to 1 if you have the `strerror' function.
+#define HAVE_STRERROR 1
+
+// Define to 1 if you have the <string.h> header file.
+#define HAVE_STRING_H 1
+
+// Define to 1 if you have the `strrchr' function.
+#define HAVE_STRRCHR 1
+
+// Define to 1 if you have the `strtol' function.
+#define HAVE_STRTOL 1
+
+// Define to 1 if you have the <sys/stat.h> header file.
+#define HAVE_SYS_STAT_H 1
+
+// Define to 1 if you have the <sys/types.h> header file.
+#define HAVE_SYS_TYPES_H 1
+
+// Define to 1 if you have <sys/wait.h> that is POSIX.1 compatible.
+#define HAVE_SYS_WAIT_H 1
+
+// Define to 1 if you have the <time.h> header file.
+#define HAVE_TIME_H 1
+
+// Define to 1 if you have the <unistd.h> header file.
+#define HAVE_UNISTD_H 1
+
+// Define to 1 if you have the <math.h> header file.
+#define HAVE_MATH_H 1
+
+// Define to 1 if you have the long long type
+#define HAVE_LONG_LONG 1
+
+// Define to 1 if you have 64 bit types available
+#define HAVE_INT64_T 1
+
+// Define to 1 if your compiler treats char as a separate type along with
+// signed char and unsigned char. This will create overloads for char.
+#define HAVE_THREE_CHAR_TYPES 1
+
+// Define to 1 if you have the <cxxabi.h> header file.
+#if __GNUC__ >= 3
+ #define HAVE_CXXABI_H 1
+#endif
+
+// Define to 1 if you have the rintf function. Will use rint otherwise.
+#undef HAVE_RINTF
+
+// Define to 1 if you have the <strings.h> header file.
+#undef HAVE_STRINGS_H
+
+// Define to 1 if you have the `strsignal' function.
+#undef HAVE_STRSIGNAL
+
+// Define to 1 if you have the __va_copy function
+#undef HAVE_VA_COPY
+
+// Define to 1 if you have the <inttypes.h> header file.
+#undef HAVE_INTTYPES_H
+
+// Define to 1 if you have the <malloc.h> header file.
+#undef HAVE_MALLOC_H
+
+// Define to 1 if you have the <memory.h> header file.
+#undef HAVE_MEMORY_H
+
+// Define to 1 if you have the <alloca.h> header file.
+#undef HAVE_ALLOCA_H
+
+// Define to 1 if `stat' has the bug that it succeeds when given the
+// zero-length file name argument.
+#undef HAVE_STAT_EMPTY_STRING_BUG
+
+// STDC_HEADERS is defined to 1 on sane systems.
+#if defined(HAVE_ASSERT_H) && defined(HAVE_CTYPE_H) &&\
+ defined(HAVE_ERRNO_H) && defined(HAVE_FLOAT_H) &&\
+ defined(HAVE_LIMITS_H) && defined(HAVE_LOCALE_H) &&\
+ defined(HAVE_MATH_H) && defined(HAVE_SIGNAL_H) &&\
+ defined(HAVE_STDARG_H) && defined(HAVE_STDDEF_H) &&\
+ defined(HAVE_STDIO_H) && defined(HAVE_STDLIB_H) &&\
+ defined(HAVE_STRING_H) && defined(HAVE_TIME_H)
+#define STDC_HEADERS 1
+#endif
+
+// STDC_HEADERS is defined to 1 on unix systems.
+#if defined(HAVE_FCNTL_H) && defined(HAVE_SYS_STAT_H) && defined(HAVE_UNISTD_H)
+#define STDUNIX_HEADERS 1
+#endif
+
+// Define to 1 if you have the <byteswap.h> header file.
+#if (__GNUC__ >= 3) // gcc 2.95 somehow doesn't recognize 'asm volatile' in libc byteswap.h
+#undef HAVE_BYTESWAP_H
+#endif
+
+// Define to 1 if `lstat' dereferences a symlink specified with a trailing slash.
+#undef LSTAT_FOLLOWS_SLASHED_SYMLINK
+
+// Define as the return type of signal handlers (`int' or `void').
+#undef RETSIGTYPE
+
+// Define to 1 if you want unrolled specializations for fill and copy
+#undef WANT_UNROLLED_COPY
+
+// Define to 1 if you want to use MMX/SSE/3dNow! processor instructions
+#undef WANT_MMX
+
+// Define to byte sizes of types
+#define SIZE_OF_CHAR 1
+#define SIZE_OF_SHORT 2
+#define SIZE_OF_INT 4
+#define SIZE_OF_LONG 4
+#define SIZE_OF_LONG_LONG 8
+#define SIZE_OF_POINTER 4
+#define SIZE_OF_SIZE_T 4
+#define SIZE_OF_BOOL 1
+
+
+// Byte order macros, converted in utypes.h
+#define USTL_LITTLE_ENDIAN 4321
+#define USTL_BIG_ENDIAN 1234
+#if (CYG_BYTEORDER == CYG_LSBFIRST)
+#define USTL_BYTE_ORDER USTL_BIG_ENDIAN
+#else
+#define USTL_BYTE_ORDER USTL_LITTLE_ENDIAN
+#endif
+
+// Extended CPU capabilities
+#undef CPU_HAS_FPU
+#undef CPU_HAS_EXT_DEBUG
+#undef CPU_HAS_TIMESTAMPC
+#undef CPU_HAS_MSR
+#undef CPU_HAS_CMPXCHG8
+#undef CPU_HAS_APIC
+#undef CPU_HAS_SYSCALL
+#undef CPU_HAS_MTRR
+#undef CPU_HAS_CMOV
+#undef CPU_HAS_FCMOV
+#if defined WANT_MMX
+#undef CPU_HAS_MMX
+#undef CPU_HAS_FXSAVE
+#undef CPU_HAS_SSE
+#undef CPU_HAS_SSE2
+#undef CPU_HAS_SSE3
+#undef CPU_HAS_EXT_3DNOW
+#undef CPU_HAS_3DNOW
+#endif
+
+// GCC vector extensions
+#if defined(CPU_HAS_MMX) || defined(CPU_HAS_SSE)
+ #undef HAVE_VECTOR_EXTENSIONS
+#endif
+
+#if defined(CPU_HAS_SSE) && defined(__GNUC__)
+ #define __sse_align __attribute__((aligned(16)))
+#else
+ #define __sse_align
+#endif
+
+
+// Define to empty if `const' does not conform to ANSI C.
+//#undef const
+
+// Define as `__inline' if that's what the C compiler calls it, or to nothing
+// if it is not supported.
+//#undef inline
+
+// Define to `long' if <sys/types.h> does not define.
+//#undef off_t
+
+// Define to `unsigned' if <sys/types.h> does not define.
+//#undef size_t
+
+// ---------------------------------------------------------------------------
+#endif // CYGONCE_CONFIG_H
+
diff --git a/ecos/packages/language/cxx/ustl/current/include/ustl/fstream.h b/ecos/packages/language/cxx/ustl/current/include/ustl/fstream.h
new file mode 100644
index 0000000..632d05e
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/include/ustl/fstream.h
@@ -0,0 +1,77 @@
+// This file is part of the uSTL library, an STL implementation.
+//
+// Copyright (c) 2005 by Mike Sharov <msharov@users.sourceforge.net>
+// This file is free software, distributed under the MIT License.
+
+#ifndef FSTREAM_H_056E10F70EAD416443E3B36A2D6B5FA3
+#define FSTREAM_H_056E10F70EAD416443E3B36A2D6B5FA3
+
+#include "uios.h"
+#include "ustring.h"
+
+struct stat;
+
+namespace ustl {
+
+/// \class fstream fstream.h ustl.h
+/// \ingroup DeviceStreams
+///
+/// \brief Implements file operations.
+///
+/// This is not implemented as a stream, but rather as a base for one. You
+/// should use ifstream or ofstream if you want flow operators. Otherwise
+/// this only implements functions for binary i/o.
+///
+class fstream : public ios_base {
+public:
+ fstream (void);
+ explicit fstream (const char* filename, openmode mode = in | out);
+ explicit fstream (int nfd, const char* filename = "");
+ ~fstream (void) throw();
+ void open (const char* filename, openmode mode, mode_t perms = 0644);
+ void attach (int nfd, const char* filename = "");
+ void detach (void);
+ void close (void);
+ void sync (void);
+ off_t read (void* p, off_t n);
+ off_t readsome (void* p, off_t n);
+ off_t write (const void* p, off_t n);
+ off_t size (void) const;
+ off_t seek (off_t n, seekdir whence = beg);
+ off_t pos (void) const;
+ void stat (struct stat& rs) const;
+ int ioctl (const char* rname, int request, long argument = 0);
+ inline int ioctl (const char* rname, int request, int argument) { return (fstream::ioctl (rname, request, long(argument))); }
+ inline int ioctl (const char* rname, int request, void* argument) { return (fstream::ioctl (rname, request, intptr_t(argument))); }
+ int fcntl (const char* rname, int request, long argument = 0);
+ inline int fcntl (const char* rname, int request, int argument) { return (fstream::fcntl (rname, request, long(argument))); }
+ inline int fcntl (const char* rname, int request, void* argument) { return (fstream::fcntl (rname, request, intptr_t(argument))); }
+#if 0 // memory mapped files are not supported in eCos
+ memlink mmap (off_t n, off_t offset = 0);
+ void munmap (memlink& l);
+ void msync (memlink& l);
+#endif // #if 0
+ void set_nonblock (bool v = true);
+ inline int fd (void) const { return (m_fd); }
+ inline bool is_open (void) const { return (fd() >= 0); }
+ inline off_t tellg (void) const { return (pos()); }
+ inline off_t tellp (void) const { return (pos()); }
+ inline void seekg (off_t n, seekdir whence = beg) { seek (n, whence); }
+ inline void seekp (off_t n, seekdir whence = beg) { seek (n, whence); }
+ inline void flush (void) { sync(); }
+ inline const string& name (void) const { return (m_Filename); }
+private:
+ DLL_LOCAL static int om_to_flags (openmode m);
+ DLL_LOCAL void set_and_throw (iostate s, const char* op);
+private:
+ int m_fd; ///< Currently open file descriptor.
+ string m_Filename; ///< Currently open filename.
+};
+
+/// Argument macro for fstream::ioctl. Use like fs.ioctl (IOCTLID (TCGETS), &ts).
+#define IOCTLID(r) "ioctl("#r")", r
+#define FCNTLID(r) "fcntl("#r")", r
+
+} // namespace ustl
+
+#endif
diff --git a/ecos/packages/language/cxx/ustl/current/include/ustl/memblock.h b/ecos/packages/language/cxx/ustl/current/include/ustl/memblock.h
new file mode 100644
index 0000000..5eec7e7
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/include/ustl/memblock.h
@@ -0,0 +1,64 @@
+// This file is part of the uSTL library, an STL implementation.
+//
+// Copyright (c) 2005 Mike Sharov <msharov@users.sourceforge.net>
+// This file is free software, distributed under the MIT License.
+
+#ifndef MEMBLOCK_H_7ED63A891164CC43578E63664D52A196
+#define MEMBLOCK_H_7ED63A891164CC43578E63664D52A196
+
+#include "memlink.h"
+#include "config.h"
+
+namespace ustl {
+
+/// \class memblock memblock.h ustl.h
+/// \ingroup MemoryManagement
+///
+/// \brief Allocated memory block.
+///
+/// Adds memory management capabilities to memlink. Uses malloc and realloc to
+/// maintain the internal pointer, but only if allocated using members of this class,
+/// or if linked to using the Manage() member function. Managed memory is automatically
+/// freed in the destructor.
+///
+class memblock : public memlink {
+public:
+ memblock (void);
+ memblock (const void* p, size_type n);
+ explicit memblock (size_type n);
+ explicit memblock (const cmemlink& b);
+ explicit memblock (const memlink& b);
+ memblock (const memblock& b);
+ virtual ~memblock (void) throw();
+ virtual void unlink (void) throw();
+ inline void assign (const cmemlink& l) { assign (l.cdata(), l.readable_size()); }
+ inline const memblock& operator= (const cmemlink& l) { assign (l); return (*this); }
+ inline const memblock& operator= (const memlink& l) { assign (l); return (*this); }
+ inline const memblock& operator= (const memblock& l) { assign (l); return (*this); }
+ inline void swap (memblock& l) { memlink::swap (l); ::ustl::swap (m_Capacity, l.m_Capacity); }
+ void assign (const void* p, size_type n);
+ void reserve (size_type newSize, bool bExact = true);
+ void resize (size_type newSize, bool bExact = true);
+ iterator insert (iterator start, size_type size);
+ iterator erase (iterator start, size_type size);
+ inline void clear (void) { resize (0); }
+ inline size_type capacity (void) const { return (m_Capacity); }
+ inline bool is_linked (void) const { return (!capacity()); }
+ inline size_type max_size (void) const { return (is_linked() ? memlink::max_size() : SIZE_MAX); }
+ inline void manage (memlink& l) { manage (l.begin(), l.size()); }
+ void deallocate (void) throw();
+ void manage (void* p, size_type n);
+ void copy_link (void);
+ void read (istream& is);
+#ifdef CYGCLS_USTL_FSTREAMS
+ void read_file (const char* filename);
+#endif
+protected:
+ virtual size_type minimumFreeCapacity (void) const throw() __attribute__((const));
+private:
+ size_type m_Capacity; ///< Number of bytes allocated by Resize.
+};
+
+} // namespace ustl
+
+#endif
diff --git a/ecos/packages/language/cxx/ustl/current/include/ustl/memlink.h b/ecos/packages/language/cxx/ustl/current/include/ustl/memlink.h
new file mode 100644
index 0000000..6db3b58
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/include/ustl/memlink.h
@@ -0,0 +1,99 @@
+// This file is part of the uSTL library, an STL implementation.
+//
+// Copyright (c) 2005 by Mike Sharov <msharov@users.sourceforge.net>
+// This file is free software, distributed under the MIT License.
+
+#ifndef MEMLINK_H_798D25827C8E322D2D7E734B169FF5FC
+#define MEMLINK_H_798D25827C8E322D2D7E734B169FF5FC
+
+#include "cmemlink.h"
+#include "ualgo.h"
+
+namespace ustl {
+
+/// \class memlink memlink.h ustl.h
+/// \ingroup MemoryManagement
+///
+/// \brief Wrapper for pointer to block with size.
+///
+/// Use this class the way you would a pointer to an allocated unstructured block.
+/// The pointer and block size are available through member functions and cast operator.
+///
+/// Example usage:
+/// \code
+/// void* p = malloc (46721);
+/// memlink a, b;
+/// a.link (p, 46721);
+/// assert (a.size() == 46721));
+/// b = a;
+/// assert (b.size() == 46721));
+/// assert (b.begin() + 34 == a.begin + 34);
+/// assert (0 == memcmp (a, b, 12));
+/// a.fill (673, b, 42, 67);
+/// b.erase (87, 12);
+/// \endcode
+///
+class memlink : public cmemlink {
+public:
+ typedef value_type* pointer;
+ typedef cmemlink::pointer const_pointer;
+ typedef cmemlink::const_iterator const_iterator;
+ typedef pointer iterator;
+ typedef const memlink& rcself_t;
+public:
+ inline memlink (void) : cmemlink() {}
+ inline memlink (void* p, size_type n) : cmemlink (p, n) {}
+ inline memlink (const void* p, size_type n) : cmemlink (p, n) {}
+ inline memlink (rcself_t l) : cmemlink (l) {}
+ inline explicit memlink (const cmemlink& l) : cmemlink (l) {}
+ inline pointer data (void) { return (const_cast<pointer>(cdata())); }
+ inline iterator begin (void) { return (iterator (data())); }
+ inline iterator iat (size_type i) { assert (i <= size()); return (begin() + i); }
+ inline iterator end (void) { return (iat (size())); }
+ inline const_iterator begin (void) const { return (cmemlink::begin()); }
+ inline const_iterator end (void) const { return (cmemlink::end()); }
+ inline const_iterator iat (size_type i) const { return (cmemlink::iat (i)); }
+ size_type writable_size (void) const { return (size()); }
+ inline rcself_t operator= (const cmemlink& l) { cmemlink::operator= (l); return (*this); }
+ inline rcself_t operator= (rcself_t l) { cmemlink::operator= (l); return (*this); }
+ inline void link (const void* p, size_type n) { cmemlink::link (p, n); }
+ inline void link (void* p, size_type n) { cmemlink::link (p, n); }
+ inline void link (const cmemlink& l) { cmemlink::link (l); }
+ inline void link (memlink& l) { cmemlink::link (l); }
+ inline void link (const void* first, const void* last) { link (first, distance (first, last)); }
+ inline void link (void* first, void* last) { link (first, distance (first, last)); }
+ inline void relink (const void* p, size_type n) { cmemlink::relink (p, n); }
+ inline void relink (void* p, size_type n) { cmemlink::relink (p, n); }
+ inline void swap (memlink& l) { cmemlink::swap (l); }
+ void fill (iterator start, const void* p, size_type elsize, size_type elCount = 1);
+ inline void insert (iterator start, size_type size);
+ inline void erase (iterator start, size_type size);
+ void read (istream& is);
+};
+
+/// Shifts the data in the linked block from \p start to \p start + \p n.
+/// The contents of the uncovered bytes is undefined.
+inline void memlink::insert (iterator start, size_type n)
+{
+ assert (data() || !n);
+ assert (cmemlink::begin() || !n);
+ assert (start >= begin() && start + n <= end());
+ rotate (start, end() - n, end());
+}
+
+/// Shifts the data in the linked block from \p start + \p n to \p start.
+/// The contents of the uncovered bytes is undefined.
+inline void memlink::erase (iterator start, size_type n)
+{
+ assert (data() || !n);
+ assert (cmemlink::begin() || !n);
+ assert (start >= begin() && start + n <= end());
+ rotate (start, start + n, end());
+}
+
+/// Use with memlink-derived classes to allocate and link to stack space.
+#define alloca_link(m,n) (m).link (alloca (n), (n))
+
+} // namespace ustl
+
+#endif
diff --git a/ecos/packages/language/cxx/ustl/current/include/ustl/metamac.h b/ecos/packages/language/cxx/ustl/current/include/ustl/metamac.h
new file mode 100644
index 0000000..87dde2e
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/include/ustl/metamac.h
@@ -0,0 +1,92 @@
+// This file is part of the uSTL library, an STL implementation.
+//
+// Copyright (c) 2005 by Mike Sharov <msharov@users.sourceforge.net>
+// This file is free software, distributed under the MIT License.
+//
+/// \file metamac.h
+/// \brief Macros for complex metaprogramming involving pseudoiteration.
+
+#ifndef METAMAC_H_7235D14A209C29332F2330EF553B81AF
+#define METAMAC_H_7235D14A209C29332F2330EF553B81AF
+
+//----------------------------------------------------------------------
+// Functors and general utilities.
+//----------------------------------------------------------------------
+
+/// Evaluates to itself
+#define ITSELF(x) x
+
+/// Concatenates \p a and \p b
+#define PASTE(a,b) a##b
+
+//----------------------------------------------------------------------
+// Lists and other iterators
+//----------------------------------------------------------------------
+
+/// The maximum number of elements in REPEAT, LIST, and COMMA_LIST
+#define METAMAC_MAXN 9
+
+/// Simple list with no separators. Repeats x N times.
+/// @{
+#define REPEAT_1(x) x(1)
+#define REPEAT_2(x) REPEAT_1(x) x(2)
+#define REPEAT_3(x) REPEAT_2(x) x(3)
+#define REPEAT_4(x) REPEAT_3(x) x(4)
+#define REPEAT_5(x) REPEAT_4(x) x(5)
+#define REPEAT_6(x) REPEAT_5(x) x(6)
+#define REPEAT_7(x) REPEAT_6(x) x(7)
+#define REPEAT_8(x) REPEAT_7(x) x(8)
+#define REPEAT_9(x) REPEAT_8(x) x(9)
+#define REPEAT(N,x) PASTE(REPEAT_,N)(x)
+/// @}
+
+/// Simple separated list. Repeats x N times with sep in between.
+/// @{
+#define LIST_1(x,sep) x(1)
+#define LIST_2(x,sep) LIST_1(x,sep) sep x(2)
+#define LIST_3(x,sep) LIST_2(x,sep) sep x(3)
+#define LIST_4(x,sep) LIST_3(x,sep) sep x(4)
+#define LIST_5(x,sep) LIST_4(x,sep) sep x(5)
+#define LIST_6(x,sep) LIST_5(x,sep) sep x(6)
+#define LIST_7(x,sep) LIST_6(x,sep) sep x(7)
+#define LIST_8(x,sep) LIST_7(x,sep) sep x(8)
+#define LIST_9(x,sep) LIST_8(x,sep) sep x(9)
+#define LIST(N,x,sep) PASTE(LIST_,N)(x,sep)
+/// @}
+
+/// Comma separated list. A special case of LIST needed because the preprocessor can't substitute commas.
+/// @{
+#define COMMA_LIST_1(x) x(1)
+#define COMMA_LIST_2(x) COMMA_LIST_1(x), x(2)
+#define COMMA_LIST_3(x) COMMA_LIST_2(x), x(3)
+#define COMMA_LIST_4(x) COMMA_LIST_3(x), x(4)
+#define COMMA_LIST_5(x) COMMA_LIST_4(x), x(5)
+#define COMMA_LIST_6(x) COMMA_LIST_5(x), x(6)
+#define COMMA_LIST_7(x) COMMA_LIST_6(x), x(7)
+#define COMMA_LIST_8(x) COMMA_LIST_7(x), x(8)
+#define COMMA_LIST_9(x) COMMA_LIST_8(x), x(9)
+#define COMMA_LIST(N,x) PASTE(COMMA_LIST_,N)(x)
+/// @}
+
+//----------------------------------------------------------------------
+// Macros for defining LIST arguments.
+//----------------------------------------------------------------------
+
+/// Ignores N, producing lists of identically named arguments.
+#define LARG_NONE(name,N) name
+
+/// Appends N to name.
+#define LARG_NUMBER(name,N) name##N
+
+/// name is a reference type.
+#define LARG_REF(name,N) name##N&
+
+/// Sequential parameter passed by value with sequential types.
+#define LARG_MT_PARAM_BY_VALUE(type,name,N) type##N name##N
+
+/// Sequential parameter passed by reference with sequential types.
+#define LARG_MT_PARAM_BY_REF(type,name,N) type##N& name##N
+
+//----------------------------------------------------------------------
+
+#endif
diff --git a/ecos/packages/language/cxx/ustl/current/include/ustl/mistream.h b/ecos/packages/language/cxx/ustl/current/include/ustl/mistream.h
new file mode 100644
index 0000000..aec4c66
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/include/ustl/mistream.h
@@ -0,0 +1,325 @@
+// This file is part of the uSTL library, an STL implementation.
+//
+// Copyright (c) 2005 by Mike Sharov <msharov@users.sourceforge.net>
+// This file is free software, distributed under the MIT License.
+
+#ifndef MISTREAM_H_103AEF1F266C04AA1A817D38705983DA
+#define MISTREAM_H_103AEF1F266C04AA1A817D38705983DA
+
+#include "memlink.h"
+#include "uexception.h"
+#include "strmsize.h"
+#include "utf8.h"
+#include "uios.h"
+#include "config.h"
+#if WANT_STREAM_BOUNDS_CHECKING
+ #include "typeinfo.h"
+#endif
+
+namespace ustl {
+
+class ostream;
+class memlink;
+class string;
+
+/// \class istream mistream.h ustl.h
+/// \ingroup BinaryStreams
+///
+/// \brief Helper class to read packed binary streams.
+///
+/// This class contains a set of functions to read integral types from an
+/// unstructured memory block. Unpacking binary file data can be done this
+/// way, for instance. aligning the data is your responsibility, and can
+/// be accomplished by proper ordering of reads and by calling the align()
+/// function. Unaligned access is usually slower by orders of magnitude and,
+/// on some architectures, such as PowerPC, can cause your program to crash.
+/// Therefore, all read functions have asserts to check alignment.
+/// Overreading the end of the stream will also cause a crash (an assert in
+/// debug builds). Oh, and don't be intimidated by the size of the inlines
+/// here. In the assembly code the compiler will usually chop everything down
+/// to five instructions each.
+///
+/// Alignment rules for your objects:
+/// - Assume your writes start off 4-byte aligned.
+/// - After completion, \ref istream::align the stream to at least 4.
+/// - If data portability between 32bit and 64bit platforms is important
+/// (it often is not, in config files and the like), ensure you are always
+/// using fixed-size types and are aligning to a fixed grain. Avoid writing
+/// 8-byte types, and if you do, manually align before doing so.
+/// - Non-default alignment is allowed if you plan to frequently write this
+/// object in array form and alignment would be costly. For example, an
+/// array of uint16_t-sized objects may leave the stream uint16_t aligned
+/// as long as you know about it and will default-align the stream after
+/// writing the array (note: \ref vector will already do this for you)
+///
+/// Example code:
+/// \code
+/// memblock b;
+/// b.read_file ("test.file");
+/// ostream is (b);
+/// is >> boolVar >> ios::talign<int>();
+/// is >> intVar >> floatVar;
+/// is.read (binaryData, binaryDataSize);
+/// is.align();
+/// \endcode
+///
+class istream : public cmemlink, public ios_base {
+public:
+ inline istream (void);
+ inline istream (const void* p, streamsize n);
+ inline explicit istream (const cmemlink& source);
+ explicit istream (const ostream& source);
+ inline iterator end (void) const { return (cmemlink::end()); }
+ inline void link (const void* p, streamsize n) { cmemlink::link (p, n); }
+ inline void link (const cmemlink& l) { cmemlink::link (l.cdata(), l.readable_size()); }
+ inline void link (const void* f, const void* l) { cmemlink::link (f, l); }
+ inline void relink (const void* p, streamsize n) { cmemlink::relink (p, n); m_Pos = 0; }
+ inline void relink (const cmemlink& l) { relink (l.cdata(), l.readable_size()); }
+ virtual void unlink (void) throw();
+ inline virtual streamsize underflow (streamsize = 1) { return (remaining()); }
+ inline uoff_t pos (void) const { return (m_Pos); }
+ inline const_iterator ipos (void) const { return (begin() + pos()); }
+ inline streamsize remaining (void) const { return (size() - pos()); }
+ inline void seek (uoff_t newPos);
+ inline void iseek (const_iterator newPos);
+ inline void skip (streamsize nBytes);
+ inline bool aligned (streamsize grain = c_DefaultAlignment) const;
+ inline bool verify_remaining (const char* op, const char* type, streamsize n);
+ inline streamsize align_size (streamsize grain = c_DefaultAlignment) const;
+ inline void align (streamsize grain = c_DefaultAlignment);
+ inline void swap (istream& is);
+ inline void read (void* buffer, streamsize size);
+ inline void read (memlink& buf) { read (buf.begin(), buf.writable_size()); }
+ void read_strz (string& str);
+ streamsize readsome (void* s, streamsize n);
+ inline void read (istream&) { }
+ void write (ostream& os) const;
+ void text_write (ostringstream& os) const;
+ inline streamsize stream_size (void) const { return (remaining()); }
+ template <typename T>
+ inline void iread (T& v);
+ inline void ungetc (void) { seek (pos() - 1); }
+ inline off_t tellg (void) const { return (pos()); }
+ inline void seekg (off_t p, seekdir d = beg);
+private:
+ streamoff m_Pos; ///< The current read position.
+};
+
+//----------------------------------------------------------------------
+
+template <typename T, typename Stream>
+inline streamsize required_stream_size (T, const Stream&) { return (1); }
+template <typename T>
+inline streamsize required_stream_size (T v, const istream&) { return (stream_size_of(v)); }
+
+template <typename Stream>
+inline bool stream_at_eof (const Stream& stm) { return (stm.eof()); }
+template <>
+inline bool stream_at_eof (const istream&) { return (false); }
+
+/// \class istream_iterator
+/// \ingroup BinaryStreamIterators
+///
+/// \brief An iterator over an istream to use with uSTL algorithms.
+///
+template <typename T, typename Stream = istream>
+class istream_iterator {
+public:
+ typedef T value_type;
+ typedef ptrdiff_t difference_type;
+ typedef const value_type* pointer;
+ typedef const value_type& reference;
+ typedef typename Stream::size_type size_type;
+public:
+ istream_iterator (void) : m_pis (NULL), m_v() {}
+ explicit istream_iterator (Stream& is) : m_pis (&is), m_v() { Read(); }
+ istream_iterator (const istream_iterator& i) : m_pis (i.m_pis), m_v (i.m_v) {}
+ /// Reads and returns the next value.
+ inline const T& operator* (void) { return (m_v); }
+ inline istream_iterator& operator++ (void) { Read(); return (*this); }
+ inline istream_iterator& operator-- (void) { m_pis->seek (m_pis->pos() - 2 * stream_size_of(m_v)); return (operator++()); }
+ inline istream_iterator operator++ (int) { istream_iterator old (*this); operator++(); return (old); }
+ inline istream_iterator operator-- (int) { istream_iterator old (*this); operator--(); return (old); }
+ inline istream_iterator& operator+= (streamsize n) { while (n--) operator++(); return (*this); }
+ inline istream_iterator& operator-= (streamsize n) { m_pis->seek (m_pis->pos() - (n + 1) * stream_size_of(m_v)); return (operator++()); }
+ inline istream_iterator operator- (streamoff n) const { istream_iterator result (*this); return (result -= n); }
+ inline difference_type operator- (const istream_iterator& i) const { return (distance (i.m_pis->pos(), m_pis->pos()) / stream_size_of(m_v)); }
+ inline bool operator== (const istream_iterator& i) const { return ((!m_pis && !i.m_pis) || (m_pis && i.m_pis && m_pis->pos() == i.m_pis->pos())); }
+ inline bool operator< (const istream_iterator& i) const { return (!i.m_pis || (m_pis && m_pis->pos() < i.m_pis->pos())); }
+private:
+ void Read (void)
+ {
+ if (!m_pis)
+ return;
+ const streamsize rs (required_stream_size (m_v, *m_pis));
+ if (m_pis->remaining() < rs && m_pis->underflow (rs) < rs) {
+ m_pis = NULL;
+ return;
+ }
+ *m_pis >> m_v;
+ if (stream_at_eof (*m_pis))
+ m_pis = NULL;
+ }
+private:
+ Stream* m_pis; ///< The host stream.
+ T m_v; ///< Last read value; cached to be returnable as a const reference.
+};
+
+//----------------------------------------------------------------------
+
+/// \brief Constructs a stream attached to nothing.
+/// A stream attached to nothing is not usable. Call Link() functions
+/// inherited from cmemlink to attach to some memory block.
+///
+inline istream::istream (void)
+: cmemlink (),
+ m_Pos (0)
+{
+}
+
+/// Attaches the stream to a block at \p p of size \p n.
+inline istream::istream (const void* p, streamsize n)
+: cmemlink (p, n),
+ m_Pos (0)
+{
+}
+
+/// Attaches to the block pointed to by \p source.
+inline istream::istream (const cmemlink& source)
+: cmemlink (source),
+ m_Pos (0)
+{
+}
+
+/// Checks that \p n bytes are available in the stream, or else throws.
+inline bool istream::verify_remaining (const char* op, const char* type, streamsize n)
+{
+ const streamsize rem = remaining();
+ bool enough = n <= rem;
+ if (!enough) overrun (op, type, n, pos(), rem);
+ return (enough);
+}
+
+/// Sets the current read position to \p newPos
+inline void istream::seek (uoff_t newPos)
+{
+#if WANT_STREAM_BOUNDS_CHECKING
+ if (newPos > size())
+ USTL_THROW(stream_bounds_exception ("seekg", "byte", pos(), newPos - pos(), size()));
+#else
+ assert (newPos <= size());
+#endif
+ m_Pos = newPos;
+}
+
+/// Sets the current read position to \p newPos
+inline void istream::iseek (const_iterator newPos)
+{
+ seek (distance (begin(), newPos));
+}
+
+/// Sets the current write position to \p p based on \p d.
+inline void istream::seekg (off_t p, seekdir d)
+{
+ switch (d) {
+ case beg: seek (p); break;
+ case cur: seek (pos() + p); break;
+ case ios_base::end: seek (size() - p); break;
+ }
+}
+
+/// Skips \p nBytes without reading them.
+inline void istream::skip (streamsize nBytes)
+{
+ seek (pos() + nBytes);
+}
+
+/// Returns the number of bytes to skip to be aligned on \p grain.
+inline streamsize istream::align_size (streamsize grain) const
+{
+ return (Align (pos(), grain) - pos());
+}
+
+/// Returns \c true if the read position is aligned on \p grain
+inline bool istream::aligned (streamsize grain) const
+{
+ assert (uintptr_t(begin()) % grain == 0 && "Streams should be attached aligned at the maximum element grain to avoid bus errors.");
+ return (pos() % grain == 0);
+}
+
+/// aligns the read position on \p grain
+inline void istream::align (streamsize grain)
+{
+ seek (Align (pos(), grain));
+}
+
+/// Reads type T from the stream via a direct pointer cast.
+template <typename T>
+inline void istream::iread (T& v)
+{
+ assert (aligned (stream_align_of (v)));
+#if WANT_STREAM_BOUNDS_CHECKING
+ if (!verify_remaining ("read", USTL_TYPENAME(v), sizeof(T)))
+ return;
+#else
+ assert (remaining() >= sizeof(T));
+#endif
+ v = *reinterpret_cast<const T*>(ipos());
+ m_Pos += sizeof(T);
+}
+
+/// Swaps contents with \p is
+inline void istream::swap (istream& is)
+{
+ cmemlink::swap (is);
+ ::ustl::swap (m_Pos, is.m_Pos);
+}
+
+/// Reads \p n bytes into \p buffer.
+inline void istream::read (void* buffer, size_type n)
+{
+#if WANT_STREAM_BOUNDS_CHECKING
+ if (!verify_remaining ("read", "binary data", n))
+ return;
+#else
+ assert (remaining() >= n && "Reading past end of buffer. Make sure you are reading the right format.");
+#endif
+ memcpy (reinterpret_cast<value_type*>(buffer), ipos(), n);
+ m_Pos += n;
+}
+
+//----------------------------------------------------------------------
+
+template <typename T> struct object_reader {
+ inline void operator()(istream& is, T& v) const { v.read (is); }
+};
+template <typename T> struct integral_object_reader {
+ inline void operator()(istream& is, T& v) const { is.iread (v); }
+};
+template <typename T>
+inline istream& operator>> (istream& is, T& v) {
+ typedef typename tm::Select <numeric_limits<T>::is_integral,
+ integral_object_reader<T>, object_reader<T> >::Result object_reader_t;
+ object_reader_t()(is, v);
+ return (is);
+}
+template <typename T>
+inline istream& operator>> (istream& is, const T& v) { v.read (is); return (is); }
+
+//----------------------------------------------------------------------
+
+typedef istream_iterator<utf8subchar_t> istream_iterator_for_utf8;
+typedef utf8in_iterator<istream_iterator_for_utf8> utf8istream_iterator;
+
+/// Returns a UTF-8 adaptor reading from \p is.
+inline utf8istream_iterator utf8in (istream& is)
+{
+ istream_iterator_for_utf8 si (is);
+ return (utf8istream_iterator (si));
+}
+
+//----------------------------------------------------------------------
+
+} // namespace ustl
+
+#endif
diff --git a/ecos/packages/language/cxx/ustl/current/include/ustl/mostream.h b/ecos/packages/language/cxx/ustl/current/include/ustl/mostream.h
new file mode 100644
index 0000000..c3c53a9
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/include/ustl/mostream.h
@@ -0,0 +1,294 @@
+// This file is part of the uSTL library, an STL implementation.
+//
+// Copyright (c) 2005 by Mike Sharov <msharov@users.sourceforge.net>
+// This file is free software, distributed under the MIT License.
+
+#ifndef MOSTREAM_H_24A8C5397E0848216573E5670930FC9A
+#define MOSTREAM_H_24A8C5397E0848216573E5670930FC9A
+
+#include "memlink.h"
+#include "uexception.h"
+#include "utf8.h"
+#include "uios.h"
+#include "config.h"
+#if WANT_STREAM_BOUNDS_CHECKING
+ #include "typeinfo.h"
+#endif
+
+namespace ustl {
+
+class istream;
+class string;
+
+/// \class ostream mostream.h ustl.h
+/// \ingroup BinaryStreams
+///
+/// \brief Helper class to write packed binary streams.
+///
+/// This class contains a set of functions to write integral types into an
+/// unstructured memory block. Packing binary file data can be done this
+/// way, for instance. aligning the data is your responsibility, and can
+/// be accomplished by proper ordering of writes and by calling align.
+/// Unaligned access is usually slower by orders of magnitude and,
+/// on some architectures, such as PowerPC, can cause your program to crash.
+/// Therefore, all write functions have asserts to check alignment.
+/// See \ref istream documentation for rules on designing your data format.
+/// Overwriting the end of the stream will also cause a crash (an assert in
+/// debug builds). Oh, and don't be intimidated by the size of the inlines
+/// here. In the assembly code the compiler will usually chop everything down
+/// to five instructions each.
+///
+/// Example code:
+/// \code
+/// memblock b;
+/// ostream os (b);
+/// os << boolVar << ios::talign<int>();
+/// os << intVar << floatVar;
+/// os.write (binaryData, binaryDataSize);
+/// os.align();
+/// b.resize (os.pos());
+/// b.write_file ("test.file");
+/// \endcode
+///
+class ostream : public memlink, public ios_base {
+public:
+ inline ostream (void);
+ inline ostream (void* p, streamsize n);
+ inline explicit ostream (const memlink& source);
+ inline iterator end (void) { return (memlink::end()); }
+ inline const_iterator end (void) const { return (memlink::end()); }
+ inline void seek (uoff_t newPos);
+ inline void iseek (const_iterator newPos);
+ inline void skip (streamsize nBytes);
+ inline uoff_t pos (void) const { return (m_Pos); }
+ inline iterator ipos (void) { return (begin() + pos()); }
+ inline const_iterator ipos (void) const { return (begin() + pos()); }
+ inline streamsize remaining (void) const;
+ inline bool aligned (streamsize grain = c_DefaultAlignment) const;
+ bool verify_remaining (const char* op, const char* type, size_t n);
+ inline streamsize align_size (streamsize grain = c_DefaultAlignment) const;
+ void align (streamsize grain = c_DefaultAlignment);
+ inline void write (const void* buffer, streamsize size);
+ inline void write (const cmemlink& buf);
+ void write_strz (const char* str);
+ void read (istream& is);
+ inline void write (ostream& os) const { os.write (begin(), pos()); }
+ void text_write (ostringstream& os) const;
+ inline size_t stream_size (void) const { return (pos()); }
+ void insert (iterator start, streamsize size);
+ void erase (iterator start, streamsize size);
+ inline void swap (ostream& os);
+ template <typename T>
+ inline void iwrite (const T& v);
+ inline virtual streamsize overflow (streamsize = 1){ return (remaining()); }
+ virtual void unlink (void) throw();
+ inline void link (void* p, streamsize n) { memlink::link (p, n); }
+ inline void link (memlink& l) { memlink::link (l.data(), l.writable_size()); }
+ inline void link (void* f, void* l) { memlink::link (f, l); }
+ inline void relink (void* p, streamsize n) { memlink::relink (p, n); m_Pos = 0; }
+ inline void relink (memlink& l) { relink (l.data(), l.writable_size()); }
+ inline void seekp (off_t p, seekdir d = beg);
+ inline off_t tellp (void) const { return (pos()); }
+protected:
+ inline void SetPos (uoff_t newPos) { m_Pos = newPos; }
+private:
+ streamoff m_Pos; ///< Current write position.
+};
+
+//----------------------------------------------------------------------
+
+/// \class ostream_iterator mostream.h ustl.h
+/// \ingroup BinaryStreamIterators
+///
+/// \brief An iterator over an ostream to use with uSTL algorithms.
+///
+template <typename T, typename Stream = ostream>
+class ostream_iterator {
+public:
+ typedef T value_type;
+ typedef ptrdiff_t difference_type;
+ typedef value_type* pointer;
+ typedef value_type& reference;
+ typedef typename Stream::size_type size_type;
+public:
+ inline explicit ostream_iterator (Stream& os)
+ : m_Os (os) {}
+ inline ostream_iterator (const ostream_iterator& iter)
+ : m_Os (iter.m_Os) {}
+ /// Writes \p v into the stream.
+ inline ostream_iterator& operator= (const T& v)
+ { m_Os << v; return (*this); }
+ inline ostream_iterator& operator* (void) { return (*this); }
+ inline ostream_iterator& operator++ (void) { return (*this); }
+ inline ostream_iterator operator++ (int) { return (*this); }
+ inline ostream_iterator& operator+= (streamsize n) { m_Os.skip (n); return (*this); }
+ inline bool operator== (const ostream_iterator& i) const
+ { return (m_Os.pos() == i.m_Os.pos()); }
+ inline bool operator< (const ostream_iterator& i) const
+ { return (m_Os.pos() < i.m_Os.pos()); }
+private:
+ Stream& m_Os;
+};
+
+//----------------------------------------------------------------------
+
+typedef ostream_iterator<utf8subchar_t> ostream_iterator_for_utf8;
+typedef utf8out_iterator<ostream_iterator_for_utf8> utf8ostream_iterator;
+
+/// Returns a UTF-8 adaptor writing to \p os.
+inline utf8ostream_iterator utf8out (ostream& os)
+{
+ ostream_iterator_for_utf8 si (os);
+ return (utf8ostream_iterator (si));
+}
+
+//----------------------------------------------------------------------
+
+/// \brief Constructs a stream attached to nothing.
+/// A stream attached to nothing is not usable. Call Link() functions
+/// inherited from memlink to attach to some memory block.
+///
+inline ostream::ostream (void)
+: memlink (),
+ m_Pos (0)
+{
+}
+
+/// Attaches the stream to a block at \p p of size \p n.
+inline ostream::ostream (void* p, streamsize n)
+: memlink (p, n),
+ m_Pos (0)
+{
+}
+
+/// Attaches to the block pointed to by \p source.
+inline ostream::ostream (const memlink& source)
+: memlink (source),
+ m_Pos (0)
+{
+}
+
+/// Checks that \p n bytes are available in the stream, or else throws.
+inline bool ostream::verify_remaining (const char* op, const char* type, size_t n)
+{
+ const size_t rem = remaining();
+ bool enough = n <= rem;
+ if (!enough) overrun (op, type, n, pos(), rem);
+ return (enough);
+}
+
+/// Move the write pointer to \p newPos
+inline void ostream::seek (uoff_t newPos)
+{
+#if WANT_STREAM_BOUNDS_CHECKING
+ if (newPos > size())
+ USTL_THROW(stream_bounds_exception ("seekp", "byte", pos(), newPos - pos(), size()));
+#else
+ assert (newPos <= size());
+#endif
+ SetPos (newPos);
+}
+
+/// Sets the current write position to \p newPos
+inline void ostream::iseek (const_iterator newPos)
+{
+ seek (distance (begin(), const_cast<iterator>(newPos)));
+}
+
+/// Sets the current write position to \p p based on \p d.
+inline void ostream::seekp (off_t p, seekdir d)
+{
+ switch (d) {
+ case beg: seek (p); break;
+ case cur: seek (pos() + p); break;
+ case ios_base::end: seek (size() - p); break;
+ }
+}
+
+/// Skips \p nBytes without writing anything.
+inline void ostream::skip (streamsize nBytes)
+{
+ seek (pos() + nBytes);
+}
+
+/// Returns number of bytes remaining in the write buffer.
+inline streamsize ostream::remaining (void) const
+{
+ return (size() - pos());
+}
+
+/// Returns \c true if the write pointer is aligned on \p grain
+inline bool ostream::aligned (streamsize grain) const
+{
+ assert (uintptr_t(begin()) % grain == 0 && "Streams should be attached aligned at the maximum element grain to avoid bus errors.");
+ return (pos() % grain == 0);
+}
+
+/// Returns the number of bytes to skip to be aligned on \p grain.
+inline streamsize ostream::align_size (streamsize grain) const
+{
+ return (Align (pos(), grain) - pos());
+}
+
+/// Writes \p n bytes from \p buffer.
+inline void ostream::write (const void* buffer, size_type n)
+{
+#if WANT_STREAM_BOUNDS_CHECKING
+ if (!verify_remaining ("write", "binary data", n))
+ return;
+#else
+ assert (remaining() >= n && "Buffer overrun. Check your stream size calculations.");
+#endif
+ memcpy (ipos(), const_iterator(buffer), n);
+ m_Pos += n;
+}
+
+/// Writes the contents of \p buf into the stream as a raw dump.
+inline void ostream::write (const cmemlink& buf)
+{
+ write (buf.begin(), buf.size());
+}
+
+/// Writes type T into the stream via a direct pointer cast.
+template <typename T>
+inline void ostream::iwrite (const T& v)
+{
+ assert (aligned (stream_align_of (v)));
+#if WANT_STREAM_BOUNDS_CHECKING
+ if (!verify_remaining ("write", USTL_TYPENAME(v), sizeof(T)))
+ return;
+#else
+ assert (remaining() >= sizeof(T));
+#endif
+ *reinterpret_cast<T*>(ipos()) = v;
+ SetPos (pos() + sizeof(T));
+}
+
+/// Swaps with \p os
+inline void ostream::swap (ostream& os)
+{
+ memlink::swap (os);
+ ::ustl::swap (m_Pos, os.m_Pos);
+}
+
+//----------------------------------------------------------------------
+
+template <typename T> struct object_writer {
+ inline void operator()(ostream& os, const T& v) const { v.write (os); }
+};
+template <typename T> struct integral_object_writer {
+ inline void operator()(ostream& os, const T& v) const { os.iwrite (v); }
+};
+template <typename T>
+inline ostream& operator<< (ostream& os, const T& v) {
+ typedef typename tm::Select <numeric_limits<T>::is_integral,
+ integral_object_writer<T>, object_writer<T> >::Result object_writer_t;
+ object_writer_t()(os, v);
+ return (os);
+}
+
+//----------------------------------------------------------------------
+
+} // namespace ustl
+
+#endif
diff --git a/ecos/packages/language/cxx/ustl/current/include/ustl/ofstream.h b/ecos/packages/language/cxx/ustl/current/include/ustl/ofstream.h
new file mode 100644
index 0000000..2e3aee1
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/include/ustl/ofstream.h
@@ -0,0 +1,81 @@
+// This file is part of the uSTL library, an STL implementation.
+//
+// Copyright (c) 2005 by Mike Sharov <msharov@users.sourceforge.net>
+// This file is free software, distributed under the MIT License.
+
+#ifndef FDOSTREAM_H_5E27FC3D530BF3CA04D6C73F5700EECC
+#define FDOSTREAM_H_5E27FC3D530BF3CA04D6C73F5700EECC
+
+#include "sistream.h"
+#include "sostream.h"
+#include "fstream.h"
+#include "config.h"
+
+namespace ustl {
+
+/// \class ofstream fdostream.h ustl.h
+/// \ingroup DeviceStreams
+/// \brief A string stream that writes to an fd. Implements cout and cerr.
+class ofstream : public ostringstream {
+public:
+ ofstream (void);
+ explicit ofstream (int Fd);
+ explicit ofstream (const char* filename, openmode mode = out);
+ virtual ~ofstream (void) throw();
+ inline void open (const char* filename, openmode mode = out) { m_File.open (filename, mode); clear (m_File.rdstate()); }
+ void close (void);
+ inline bool is_open (void) const { return (m_File.is_open()); }
+ inline iostate exceptions (iostate v) { ostringstream::exceptions(v); return (m_File.exceptions(v)); }
+ inline void setstate (iostate v) { ostringstream::setstate(v); m_File.setstate(v); }
+ inline void clear (iostate v = goodbit) { ostringstream::clear(v); m_File.clear(v); }
+ inline off_t tellp (void) const { return (m_File.tellp() + ostringstream::tellp()); }
+ inline int fd (void) const { return (m_File.fd()); }
+ inline void stat (struct stat& rs) const { m_File.stat (rs); }
+ inline void set_nonblock (bool v = true) { m_File.set_nonblock (v); }
+ inline int ioctl (const char* rname, int request, long argument = 0) { return (m_File.ioctl (rname, request, argument)); }
+ inline int ioctl (const char* rname, int request, int argument) { return (m_File.ioctl (rname, request, argument)); }
+ inline int ioctl (const char* rname, int request, void* argument) { return (m_File.ioctl (rname, request, argument)); }
+ ofstream& seekp (off_t p, seekdir d = beg);
+ ofstream& flush (void);
+ virtual size_type overflow (size_type n = 1);
+private:
+ fstream m_File;
+};
+
+/// \class ifstream fdostream.h ustl.h
+/// \ingroup DeviceStreams
+/// \brief A string stream that reads from an fd. Implements cin.
+class ifstream : public istringstream {
+public:
+ ifstream (void);
+ explicit ifstream (int Fd);
+ explicit ifstream (const char* filename, openmode mode = in);
+ inline void open (const char* filename, openmode mode = in) { m_File.open (filename, mode); clear (m_File.rdstate()); }
+ inline void close (void) { m_File.close(); clear (m_File.rdstate()); }
+ inline bool is_open (void) const { return (m_File.is_open()); }
+ inline iostate exceptions (iostate v) { istringstream::exceptions(v); return (m_File.exceptions(v)); }
+ inline void setstate (iostate v) { istringstream::setstate(v); m_File.setstate(v); }
+ inline void clear (iostate v = goodbit) { istringstream::clear(v); m_File.clear(v); }
+ inline off_t tellg (void) const { return (m_File.tellg() - remaining()); }
+ inline int fd (void) const { return (m_File.fd()); }
+ inline void stat (struct stat& rs) const { m_File.stat (rs); }
+ inline void set_nonblock (bool v = true) { m_File.set_nonblock (v); }
+ inline int ioctl (const char* rname, int request, long argument = 0) { return (m_File.ioctl (rname, request, argument)); }
+ inline int ioctl (const char* rname, int request, int argument) { return (m_File.ioctl (rname, request, argument)); }
+ inline int ioctl (const char* rname, int request, void* argument) { return (m_File.ioctl (rname, request, argument)); }
+ ifstream& seekg (off_t p, seekdir d = beg);
+ int sync (void);
+ virtual size_type underflow (size_type n = 1);
+private:
+ string m_Buffer;
+ fstream m_File;
+};
+
+#ifdef CYGVAR_USTL_CIN_COUT_CERR
+extern ofstream cout, cerr;
+extern ifstream cin;
+#endif
+
+} // namespace ustl
+
+#endif
diff --git a/ecos/packages/language/cxx/ustl/current/include/ustl/simd.h b/ecos/packages/language/cxx/ustl/current/include/ustl/simd.h
new file mode 100644
index 0000000..62fa087
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/include/ustl/simd.h
@@ -0,0 +1,466 @@
+// This file is part of the uSTL library, an STL implementation.
+//
+// Copyright (c) 2005 by Mike Sharov <msharov@users.sourceforge.net>
+// This file is free software, distributed under the MIT License.
+//
+/// \file simd.h
+/// \brief SIMD-type algorithms, with hardware acceleration, if available.
+///
+/// All algorithms are container-based because iterator syntax is just too
+/// damn verbose and because the specializations need to be able to tell
+/// how many elements are in the container in order to choose proper SIMD
+/// instruction set (i.e.: 4 floats select SSE, while 2 floats select 3dNow!)
+/// Specializations are only for the tuple template because the container
+/// must be of a fixed and compile-time-known size for the compiler to be
+/// able to choose the specialization.
+
+#ifndef SIMD_H_39BE2D970DF4BD00508CCFFB482496F9
+#define SIMD_H_39BE2D970DF4BD00508CCFFB482496F9
+
+#include "ulimits.h"
+#if HAVE_MATH_H
+ #include <math.h>
+#endif
+
+namespace ustl {
+namespace simd {
+
+//----------------------------------------------------------------------
+// Generic algorithms
+//----------------------------------------------------------------------
+
+/// Applies \p op to each element in \p op1.
+template <typename Ctr, typename UnaryOperation>
+inline void packop (Ctr& op1, UnaryOperation op)
+{
+ foreach (typename Ctr::iterator, i, op1)
+ op (*i);
+}
+
+/// Applies \p op to each element in \p op1 and \p op2 and stores in \p op2.
+template <typename Ctr, typename BinaryOperation>
+inline void packop (const Ctr& op1, Ctr& op2, BinaryOperation op)
+{
+ assert (op2.size() <= op1.size());
+ typename Ctr::const_iterator i1 (op1.begin());
+ typename Ctr::iterator i2 (op2.begin());
+ for (; i2 != op2.end(); ++i1, ++i2)
+ *i2 = op (*i2, *i1);
+}
+
+/// Applies \p op to corresponding elements in \p op1 and \p op2 and stores in \p result.
+template <typename Ctr, typename BinaryOperation>
+inline void packop (const Ctr& op1, const Ctr& op2, Ctr& result, BinaryOperation op)
+{
+ assert (op1.size() <= op2.size() && op1.size() <= result.size());
+ passign (op1, result);
+ op (op2, result);
+}
+
+/// Copies \p op1 into \p result.
+template <typename Ctr>
+inline void passign (const Ctr& op1, Ctr& result)
+{
+ assert (op1.size() <= result.size());
+ typename Ctr::iterator d (result.begin());
+ foreach (typename Ctr::const_iterator, s, op1)
+ *d++ = *s;
+}
+
+/// Copies \p result.size() elements from \p op1 to \p result.
+template <typename Ctr>
+inline void ipassign (typename Ctr::const_iterator op1, Ctr& result)
+{
+ foreach (typename Ctr::iterator, d, result)
+ *d = *op1++;
+}
+
+template <typename Ctr1, typename Ctr2, typename ConvertFunction>
+inline void pconvert (const Ctr1& op1, Ctr2& op2, ConvertFunction f)
+{
+ assert (op1.size() <= op2.size());
+ typename Ctr1::const_iterator i1 (op1.begin());
+ typename Ctr2::iterator i2 (op2.begin());
+ for (; i1 != op1.end(); ++i1, ++i2)
+ *i2 = f (*i1);
+}
+
+// Functionoids for SIMD operations, like saturation arithmetic, shifts, etc.
+STD_BINARY_FUNCTOR (fpadds, T, ((b > numeric_limits<T>::max() - a) ? numeric_limits<T>::max() : a + b))
+STD_BINARY_FUNCTOR (fpsubs, T, ((a < numeric_limits<T>::min() + b) ? numeric_limits<T>::min() : a - b))
+STD_BINARY_FUNCTOR (fpshl, T, (a << b))
+STD_BINARY_FUNCTOR (fpshr, T, (a >> b))
+STD_BINARY_FUNCTOR (fpmin, T, (min (a, b)))
+STD_BINARY_FUNCTOR (fpmax, T, (max (a, b)))
+STD_BINARY_FUNCTOR (fpavg, T, ((a + b + 1) / 2))
+STD_CONVERSION_FUNCTOR (fcast, (D(a)))
+#if HAVE_MATH_H
+STD_UNARY_FUNCTOR (fpreciprocal,T, (1 / a))
+STD_UNARY_FUNCTOR (fpsqrt, T, (reset_mmx(), T (sqrt (a))))
+STD_UNARY_FUNCTOR (fprecipsqrt, T, (reset_mmx(), 1 / T(sqrt (a))))
+STD_UNARY_FUNCTOR (fsin, T, (reset_mmx(), T (sin (a))))
+STD_UNARY_FUNCTOR (fcos, T, (reset_mmx(), T (cos (a))))
+STD_UNARY_FUNCTOR (ftan, T, (reset_mmx(), T (tan (a))))
+#if HAVE_RINTF
+STD_CONVERSION_FUNCTOR (fround, (reset_mmx(), D(rintf(a))))
+#else
+STD_CONVERSION_FUNCTOR (fround, (reset_mmx(), D(rint(a))))
+#endif
+template <> inline int32_t fround<double,int32_t>::operator()(const double& a) const { reset_mmx(); return (int32_t(rint(a))); }
+#endif
+template <> inline float fpavg<float>::operator()(const float& a, const float& b) const { return ((a + b) / 2); }
+template <> inline double fpavg<double>::operator()(const double& a, const double& b) const { return ((a + b) / 2); }
+
+#define SIMD_PACKEDOP1(name, operation) \
+template <typename Ctr> \
+inline void name (Ctr& op1) \
+{ \
+ typedef typename Ctr::value_type value_t; \
+ packop (op1, operation<value_t>()); \
+}
+#define SIMD_PACKEDOP2(name, operation) \
+template <typename Ctr> \
+inline void name (const Ctr& op1, Ctr& op2) \
+{ \
+ typedef typename Ctr::value_type value_t; \
+ packop (op1, op2, operation<value_t>()); \
+}
+#define SIMD_PACKEDOP3(name, operation) \
+template <typename Ctr> \
+inline void name (const Ctr& op1, const Ctr& op2, Ctr& result) \
+{ \
+ typedef typename Ctr::value_type value_t; \
+ packop (op1, op2, result, operation<value_t>()); \
+}
+#define SIMD_SINGLEOP1(name, operation) \
+template <typename T> \
+inline T name (T op) \
+{ \
+ operation<T> obj; \
+ return (obj(op)); \
+}
+#define SIMD_CONVERTOP(name, operation) \
+template <typename Ctr1, typename Ctr2> \
+inline void name (const Ctr1& op1, Ctr2& op2) \
+{ \
+ typedef typename Ctr1::value_type value1_t; \
+ typedef typename Ctr2::value_type value2_t; \
+ pconvert (op1, op2, operation<value1_t, value2_t>());\
+}
+
+SIMD_PACKEDOP2 (padd, plus)
+SIMD_PACKEDOP2 (psub, minus)
+SIMD_PACKEDOP2 (pmul, multiplies)
+SIMD_PACKEDOP2 (pdiv, divides)
+SIMD_PACKEDOP2 (pand, bitwise_and)
+SIMD_PACKEDOP2 (por, bitwise_or)
+SIMD_PACKEDOP2 (pxor, bitwise_xor)
+SIMD_PACKEDOP2 (pshl, fpshl)
+SIMD_PACKEDOP2 (pshr, fpshr)
+SIMD_PACKEDOP2 (psubs, fpsubs)
+SIMD_PACKEDOP2 (pmin, fpmin)
+SIMD_PACKEDOP2 (pmax, fpmax)
+SIMD_PACKEDOP2 (pavg, fpavg)
+
+SIMD_PACKEDOP3 (padd, plus)
+SIMD_PACKEDOP3 (psub, minus)
+SIMD_PACKEDOP3 (pmul, multiplies)
+SIMD_PACKEDOP3 (pdiv, divides)
+SIMD_PACKEDOP3 (pand, bitwise_and)
+SIMD_PACKEDOP3 (por, bitwise_or)
+SIMD_PACKEDOP3 (pxor, bitwise_xor)
+SIMD_PACKEDOP3 (pshl, fpshl)
+SIMD_PACKEDOP3 (pshr, fpshr)
+SIMD_PACKEDOP3 (padds, fpadds)
+SIMD_PACKEDOP3 (psubs, fpsubs)
+SIMD_PACKEDOP3 (pmin, fpmin)
+SIMD_PACKEDOP3 (pmax, fpmax)
+SIMD_PACKEDOP3 (pavg, fpavg)
+
+#if HAVE_MATH_H
+SIMD_PACKEDOP1 (precip, fpreciprocal)
+SIMD_PACKEDOP1 (psqrt, fpsqrt)
+SIMD_PACKEDOP1 (precipsqrt, fprecipsqrt)
+SIMD_PACKEDOP1 (psin, fsin)
+SIMD_PACKEDOP1 (pcos, fcos)
+SIMD_PACKEDOP1 (ptan, ftan)
+
+SIMD_SINGLEOP1 (srecip, fpreciprocal)
+SIMD_SINGLEOP1 (ssqrt, fpsqrt)
+SIMD_SINGLEOP1 (srecipsqrt, fprecipsqrt)
+SIMD_SINGLEOP1 (ssin, fsin)
+SIMD_SINGLEOP1 (scos, fcos)
+SIMD_SINGLEOP1 (stan, ftan)
+
+SIMD_CONVERTOP (pround, fround)
+
+template <typename T> inline int32_t sround (T op) { fround<T,int32_t> obj; return (obj (op)); }
+#endif
+
+#undef SIMD_SINGLEOP1
+#undef SIMD_PACKEDOP3
+#undef SIMD_PACKEDOP2
+#undef SIMD_PACKEDOP1
+
+//----------------------------------------------------------------------
+// Vector types to cast tuple data to
+//----------------------------------------------------------------------
+
+#if HAVE_VECTOR_EXTENSIONS && __GNUC__ >= 4
+#define VECTOR_ATTRIBUTE(mode,vs) __attribute__((vector_size(vs)))
+#else
+#define VECTOR_ATTRIBUTE(mode,vs)
+#endif
+typedef uint8_t v8qi_t VECTOR_ATTRIBUTE (V8QI,8);
+typedef uint16_t v4hi_t VECTOR_ATTRIBUTE (V4HI,8);
+typedef uint16_t v8hi_t VECTOR_ATTRIBUTE (V8HI,16);
+typedef uint32_t v2si_t VECTOR_ATTRIBUTE (V2SI,8);
+typedef uint32_t v4si_t VECTOR_ATTRIBUTE (V4SI,16);
+#if HAVE_INT64_T
+typedef uint64_t v1di_t VECTOR_ATTRIBUTE (V1DI,8);
+#endif
+typedef float v2sf_t VECTOR_ATTRIBUTE (V2SF,8);
+typedef float v4sf_t VECTOR_ATTRIBUTE (V4SF,16);
+typedef double v2df_t VECTOR_ATTRIBUTE (V2DF,16);
+#undef VECTOR_ATTRIBUTE
+
+#define SIMDA_RI(n) "m"(oin[n])
+#define SIMDA_RO(n) "m"(oout[n])
+#define SIMDA_WI(n) "=m"(oin[n])
+#define SIMDA_WO(n) "=m"(oout[n])
+
+//----------------------------------------------------------------------
+// Hardware accelerated specializations
+//----------------------------------------------------------------------
+
+#define SIMD_PKOP2_SPEC(n, type, optype) \
+template <> \
+inline void packop (const tuple<n,type>& oin, tuple<n,type>& oout, optype<type>)
+#define SIMD_PASSIGN_SPEC(n, type) \
+template <> \
+inline void passign (const tuple<n,type>& oin, tuple<n,type>& oout)
+#define SIMD_IPASSIGN_SPEC(n, type) \
+template <> \
+inline void ipassign (tuple<n,type>::const_iterator oin, tuple<n,type>& oout)
+#define SIMD_CONVERT_SPEC(n, type1, type2, optype) \
+template <> \
+inline void pconvert (const tuple<n,type1>& oin, tuple<n,type2>& oout, optype<type1,type2>)
+
+#if CPU_HAS_MMX
+#define STD_MMX_ARGS : "m"(oout[0]), "m"(oin[0]) : "mm0", "st", "memory"
+#define DBL_MMX_ARGS : "m"(oout[0]), "m"(oout[2]), "m"(oin[0]), "m"(oin[2]) : "mm0", "mm1", "st", "st(1)", "memory"
+#define MMX_PKOP2_SPEC(n,type,optype,instruction) \
+SIMD_PKOP2_SPEC(n,type,optype) \
+{ asm ("movq %0, %%mm0\n\t" #instruction " %1, %%mm0\n\tmovq %%mm0, %0" : STD_MMX_ARGS); reset_mmx(); }
+#define MMX_DBL_PKOP2_SPEC(n,type,optype,instruction) \
+SIMD_PKOP2_SPEC(n,type,optype) \
+{ asm ("movq %0, %%mm0\n\tmovq %1, %%mm1\n\t" #instruction " %2, %%mm0\n\t" #instruction " %3, %%mm1\n\tmovq %%mm0, %0\n\tmovq %%mm1, %1" : DBL_MMX_ARGS); reset_mmx(); }
+#define MMX_PASSIGN_SPEC(n,type) \
+SIMD_PASSIGN_SPEC(n,type) \
+{ asm ("movq %1, %%mm0\n\tmovq %%mm0, %0" : STD_MMX_ARGS); reset_mmx(); }
+#define MMX_DBL_PASSIGN_SPEC(n,type) \
+SIMD_PASSIGN_SPEC(n,type) \
+{ asm ("movq %2, %%mm0\n\tmovq %3, %%mm1\n\tmovq %%mm0, %0\n\tmovq %%mm1, %1" : DBL_MMX_ARGS); reset_mmx(); }
+#define MMX_IPASSIGN_SPEC(n,type) \
+SIMD_IPASSIGN_SPEC(n,type) \
+{ asm ("movq %1, %%mm0\n\tmovq %%mm0, %0" : STD_MMX_ARGS); reset_mmx(); }
+#define MMX_DBL_IPASSIGN_SPEC(n,type) \
+SIMD_IPASSIGN_SPEC(n,type) \
+{ asm ("movq %2, %%mm0\n\tmovq %3, %%mm1\n\tmovq %%mm0, %0\n\tmovq %%mm1, %1" : DBL_MMX_ARGS); reset_mmx(); }
+
+MMX_PASSIGN_SPEC(8,uint8_t)
+MMX_PKOP2_SPEC(8,uint8_t,plus,paddb)
+MMX_PKOP2_SPEC(8,uint8_t,minus,psubb)
+MMX_PKOP2_SPEC(8,uint8_t,bitwise_and,pand)
+MMX_PKOP2_SPEC(8,uint8_t,bitwise_or,por)
+MMX_PKOP2_SPEC(8,uint8_t,bitwise_xor,pxor)
+MMX_PKOP2_SPEC(8,uint8_t,fpadds,paddusb)
+MMX_PKOP2_SPEC(8,uint8_t,fpsubs,psubusb)
+
+MMX_PASSIGN_SPEC(8,int8_t)
+MMX_PKOP2_SPEC(8,int8_t,plus,paddb)
+MMX_PKOP2_SPEC(8,int8_t,minus,psubb)
+MMX_PKOP2_SPEC(8,int8_t,bitwise_and,pand)
+MMX_PKOP2_SPEC(8,int8_t,bitwise_or,por)
+MMX_PKOP2_SPEC(8,int8_t,bitwise_xor,pxor)
+MMX_PKOP2_SPEC(8,int8_t,fpadds,paddsb)
+MMX_PKOP2_SPEC(8,int8_t,fpsubs,psubsb)
+
+MMX_PASSIGN_SPEC(4,uint16_t)
+MMX_PKOP2_SPEC(4,uint16_t,plus,paddw)
+MMX_PKOP2_SPEC(4,uint16_t,minus,psubw)
+MMX_PKOP2_SPEC(4,uint16_t,bitwise_and,pand)
+MMX_PKOP2_SPEC(4,uint16_t,bitwise_or,por)
+MMX_PKOP2_SPEC(4,uint16_t,bitwise_xor,pxor)
+/// \todo psllw does not work like other operations, it uses the first element for shift count.
+//MMX_PKOP2_SPEC(4,uint16_t,fpshl,psllw)
+//MMX_PKOP2_SPEC(4,uint16_t,fpshr,psrlw)
+MMX_PKOP2_SPEC(4,uint16_t,fpadds,paddusw)
+MMX_PKOP2_SPEC(4,uint16_t,fpsubs,psubusw)
+
+MMX_PASSIGN_SPEC(4,int16_t)
+MMX_PKOP2_SPEC(4,int16_t,plus,paddw)
+MMX_PKOP2_SPEC(4,int16_t,minus,psubw)
+MMX_PKOP2_SPEC(4,int16_t,bitwise_and,pand)
+MMX_PKOP2_SPEC(4,int16_t,bitwise_or,por)
+MMX_PKOP2_SPEC(4,int16_t,bitwise_xor,pxor)
+//MMX_PKOP2_SPEC(4,int16_t,fpshl,psllw)
+//MMX_PKOP2_SPEC(4,int16_t,fpshr,psrlw)
+MMX_PKOP2_SPEC(4,int16_t,fpadds,paddsw)
+MMX_PKOP2_SPEC(4,int16_t,fpsubs,psubsw)
+
+MMX_PASSIGN_SPEC(2,uint32_t)
+MMX_PKOP2_SPEC(2,uint32_t,plus,paddd)
+MMX_PKOP2_SPEC(2,uint32_t,minus,psubd)
+MMX_PKOP2_SPEC(2,uint32_t,bitwise_and,pand)
+MMX_PKOP2_SPEC(2,uint32_t,bitwise_or,por)
+MMX_PKOP2_SPEC(2,uint32_t,bitwise_xor,pxor)
+//MMX_PKOP2_SPEC(2,uint32_t,fpshl,pslld)
+//MMX_PKOP2_SPEC(2,uint32_t,fpshr,psrld)
+
+MMX_PASSIGN_SPEC(2,int32_t)
+MMX_PKOP2_SPEC(2,int32_t,plus,paddd)
+MMX_PKOP2_SPEC(2,int32_t,minus,psubd)
+MMX_PKOP2_SPEC(2,int32_t,bitwise_and,pand)
+MMX_PKOP2_SPEC(2,int32_t,bitwise_or,por)
+MMX_PKOP2_SPEC(2,int32_t,bitwise_xor,pxor)
+//MMX_PKOP2_SPEC(2,int32_t,fpshl,pslld)
+//MMX_PKOP2_SPEC(2,int32_t,fpshr,psrld)
+
+MMX_DBL_PKOP2_SPEC(4,uint32_t,plus,paddd)
+MMX_DBL_PKOP2_SPEC(4,uint32_t,minus,psubd)
+MMX_DBL_PKOP2_SPEC(4,uint32_t,bitwise_and,pand)
+MMX_DBL_PKOP2_SPEC(4,uint32_t,bitwise_or,por)
+MMX_DBL_PKOP2_SPEC(4,uint32_t,bitwise_xor,pxor)
+//MMX_DBL_PKOP2_SPEC(2,uint32_t,fpshl,pslld)
+//MMX_DBL_PKOP2_SPEC(2,uint32_t,fpshr,psrld)
+
+MMX_DBL_PKOP2_SPEC(4,int32_t,plus,paddd)
+MMX_DBL_PKOP2_SPEC(4,int32_t,minus,psubd)
+MMX_DBL_PKOP2_SPEC(4,int32_t,bitwise_and,pand)
+MMX_DBL_PKOP2_SPEC(4,int32_t,bitwise_or,por)
+MMX_DBL_PKOP2_SPEC(4,int32_t,bitwise_xor,pxor)
+//MMX_DBL_PKOP2_SPEC(2,int32_t,fpshl,pslld)
+//MMX_DBL_PKOP2_SPEC(2,int32_t,fpshr,psrld)
+
+#if CPU_HAS_SSE || CPU_HAS_3DNOW
+MMX_PKOP2_SPEC(8,uint8_t,fpavg,pavgb)
+MMX_PKOP2_SPEC(8,int8_t,fpavg,pavgb)
+MMX_PKOP2_SPEC(4,uint16_t,fpavg,pavgw)
+MMX_PKOP2_SPEC(4,int16_t,fpavg,pavgw)
+MMX_PKOP2_SPEC(8,uint8_t,fpmin,pminub)
+MMX_PKOP2_SPEC(8,uint8_t,fpmax,pmaxub)
+MMX_PKOP2_SPEC(4,int16_t,fpmax,pmaxsw)
+MMX_PKOP2_SPEC(4,int16_t,fpmin,pminsw)
+#endif // CPU_HAS_SSE || CPU_HAS_3DNOW
+
+#if CPU_HAS_3DNOW
+MMX_PASSIGN_SPEC(2,float)
+MMX_PKOP2_SPEC(2,float,plus,pfadd)
+MMX_PKOP2_SPEC(2,float,minus,pfsub)
+MMX_PKOP2_SPEC(2,float,multiplies,pfmul)
+MMX_PKOP2_SPEC(2,float,fpmin,pfmin)
+MMX_PKOP2_SPEC(2,float,fpmax,pfmax)
+#ifndef CPU_HAS_SSE
+MMX_DBL_PKOP2_SPEC(4,float,plus,pfadd)
+MMX_DBL_PKOP2_SPEC(4,float,minus,pfsub)
+MMX_DBL_PKOP2_SPEC(4,float,multiplies,pfmul)
+MMX_DBL_PKOP2_SPEC(4,float,fpmin,pfmin)
+MMX_DBL_PKOP2_SPEC(4,float,fpmax,pfmax)
+#endif
+#endif // CPU_HAS_3DNOW
+
+MMX_IPASSIGN_SPEC(8,uint8_t)
+MMX_IPASSIGN_SPEC(4,uint16_t)
+MMX_IPASSIGN_SPEC(2,uint32_t)
+MMX_IPASSIGN_SPEC(2,float)
+
+#ifndef CPU_HAS_SSE
+MMX_DBL_PASSIGN_SPEC(4,float)
+MMX_DBL_PASSIGN_SPEC(4,uint32_t)
+MMX_DBL_PASSIGN_SPEC(4,int32_t)
+MMX_DBL_IPASSIGN_SPEC(4,float)
+MMX_DBL_IPASSIGN_SPEC(4,uint32_t)
+MMX_DBL_IPASSIGN_SPEC(4,int32_t)
+#endif
+
+#undef MMX_IPASSIGN_SPEC
+#undef MMX_PASSIGN_SPEC
+#undef MMX_PKOP2_SPEC
+#undef STD_MMX_ARGS
+#endif // CPU_HAS_MMX
+
+#if CPU_HAS_SSE
+#define STD_SSE_ARGS : "m"(oout[0]), "m"(oin[0]) : "xmm0", "memory"
+#define SSE_PKOP2_SPEC(n,type,optype,instruction) \
+SIMD_PKOP2_SPEC(n,type,optype) \
+{ asm ("movups %0, %%xmm0\n\tmovups %1, %%xmm1\n\t" #instruction " %%xmm1, %%xmm0\n\tmovups %%xmm0, %0" : STD_SSE_ARGS);}
+#define SSE_PASSIGN_SPEC(n,type) \
+SIMD_PASSIGN_SPEC(n,type) \
+{ asm ("movups %1, %%xmm0\n\tmovups %%xmm0, %0" : STD_SSE_ARGS);}
+#define SSE_IPASSIGN_SPEC(n,type) \
+SIMD_IPASSIGN_SPEC(n,type) \
+{ asm ("movups %1, %%xmm0\n\tmovups %%xmm0, %0" : STD_SSE_ARGS);}
+SSE_PASSIGN_SPEC(4,float)
+SSE_PASSIGN_SPEC(4,int32_t)
+SSE_PASSIGN_SPEC(4,uint32_t)
+SSE_PKOP2_SPEC(4,float,plus,addps)
+SSE_PKOP2_SPEC(4,float,minus,subps)
+SSE_PKOP2_SPEC(4,float,multiplies,mulps)
+SSE_PKOP2_SPEC(4,float,divides,divps)
+SSE_PKOP2_SPEC(4,float,bitwise_and,andps)
+SSE_PKOP2_SPEC(4,float,bitwise_or,orps)
+SSE_PKOP2_SPEC(4,float,bitwise_xor,xorps)
+SSE_PKOP2_SPEC(4,float,fpmax,maxps)
+SSE_PKOP2_SPEC(4,float,fpmin,minps)
+
+SIMD_CONVERT_SPEC(4,float,int32_t,fround) {
+ asm ("cvtps2pi %2, %%mm0\n\t"
+ "cvtps2pi %3, %%mm1\n\t"
+ "movq %%mm0, %0\n\t"
+ "movq %%mm1, %1"
+ : DBL_MMX_ARGS);
+ reset_mmx();
+}
+SIMD_CONVERT_SPEC(4,int32_t,float,fround) {
+ asm ("cvtpi2ps %2, %%xmm0\n\t"
+ "shufps $0x4E,%%xmm0,%%xmm0\n\t"
+ "cvtpi2ps %1, %%xmm0\n\t"
+ "movups %%xmm0, %0"
+ :: "m"(oout[0]), "m"(oin[0]), "m"(oin[2]) : "xmm0", "memory");
+}
+template <> inline int32_t fround<float,int32_t>::operator()(const float& a) const {
+ register int32_t rv;
+ asm ("movss %1, %%xmm0\n\t"
+ "cvtss2si %%xmm0, %0"
+ : "=r"(rv) : "m"(a) : "xmm0" );
+ return (rv);
+}
+template <> inline uint32_t fround<float,uint32_t>::operator()(const float& a) const {
+ register uint32_t rv;
+ asm ("movss %1, %%xmm0\n\t"
+ "cvtss2si %%xmm0, %0"
+ : "=r"(rv) : "m"(a) : "xmm0" );
+ return (rv);
+}
+
+SSE_IPASSIGN_SPEC(4,float)
+SSE_IPASSIGN_SPEC(4,int32_t)
+SSE_IPASSIGN_SPEC(4,uint32_t)
+
+#undef SSE_IPASSIGN_SPEC
+#undef SSE_PASSIGN_SPEC
+#undef SSE_PKOP2_SPEC
+#undef STD_SSE_ARGS
+#endif // CPU_HAS_SSE
+
+#undef SIMDA_RI
+#undef SIMDA_RO
+#undef SIMDA_WI
+#undef SIMDA_WO
+#undef SIMD_PACKEDOP_SPEC
+
+} // namespace simd
+} // namespace ustl
+
+#endif
diff --git a/ecos/packages/language/cxx/ustl/current/include/ustl/sistream.h b/ecos/packages/language/cxx/ustl/current/include/ustl/sistream.h
new file mode 100644
index 0000000..5feb879
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/include/ustl/sistream.h
@@ -0,0 +1,153 @@
+// This file is part of the uSTL library, an STL implementation.
+//
+// Copyright (c) 2005 by Mike Sharov <msharov@users.sourceforge.net>
+// This file is free software, distributed under the MIT License.
+
+#ifndef SISTREAM_H_0CCA102229A49F5D65EE852E62B27CE2
+#define SISTREAM_H_0CCA102229A49F5D65EE852E62B27CE2
+
+#include "mistream.h"
+#include "ustring.h"
+#ifndef EOF
+#define EOF (-1)
+#endif
+
+namespace ustl {
+
+/// \class istringstream sistream.h ustl.h
+/// \ingroup TextStreams
+///
+/// \brief A stream that reads textual data from a memory block.
+///
+class istringstream : public istream {
+public:
+ static const size_type c_MaxDelimiters = 16; ///< Maximum number of word delimiters.
+public:
+ istringstream (void);
+ istringstream (const void* p, size_type n);
+ explicit istringstream (const cmemlink& source);
+ void iread (int8_t& v) { v = skip_delimiters(); }
+ void iread (int32_t& v);
+ void iread (double& v);
+ void iread (bool& v);
+ void iread (wchar_t& v);
+ void iread (string& v);
+#if HAVE_INT64_T
+ void iread (int64_t& v);
+#endif
+#if HAVE_LONG_LONG && (!HAVE_INT64_T || SIZE_OF_LONG_LONG > 8)
+ void iread (long long& v);
+#endif
+ inline string str (void) const { string s; s.link (*this); return (s); }
+ inline istringstream& str (const string& s) { link (s); return (*this); }
+ inline istringstream& get (char& c) { return (read (&c, sizeof(c))); }
+ inline int get (void) { char c = EOF; get(c); return (c); }
+ istringstream& get (char* p, size_type n, char delim = '\n');
+ istringstream& get (string& s, char delim = '\n');
+ istringstream& getline (char* p, size_type n, char delim = '\n');
+ istringstream& getline (string& s, char delim = '\n');
+ istringstream& ignore (size_type n, char delim = '\0');
+ inline char peek (void) { int8_t v; iread (v); ungetc(); return (v); }
+ inline istringstream& putback (char) { ungetc(); return (*this); }
+ inline istringstream& unget (void) { ungetc(); return (*this); }
+ inline void set_delimiters (const char* delimiters);
+ inline void set_base (short base);
+ inline void set_decimal_separator (char) { }
+ inline void set_thousand_separator (char) { }
+ istringstream& read (void* buffer, size_type size);
+ inline istringstream& read (memlink& buf) { return (read (buf.begin(), buf.size())); }
+ inline istringstream& seekg (off_t p, seekdir d =beg) { istream::seekg(p,d); return (*this); }
+ inline int sync (void) { skip (remaining()); return (0); }
+protected:
+ char skip_delimiters (void);
+private:
+ inline void read_strz (string&) { assert (!"Reading nul characters is not allowed from text streams"); }
+ inline bool is_delimiter (char c) const;
+ template <typename T> void read_number (T& v);
+private:
+ char m_Delimiters [c_MaxDelimiters];
+ uint8_t m_Base;
+};
+
+//----------------------------------------------------------------------
+
+/// Sets the numeric base used to read numbers.
+inline void istringstream::set_base (short base)
+{
+ m_Base = base;
+}
+
+/// Sets delimiters to the contents of \p delimiters.
+inline void istringstream::set_delimiters (const char* delimiters)
+{
+#if (__i386__ || __x86_64__) && CPU_HAS_SSE && HAVE_VECTOR_EXTENSIONS
+ typedef uint32_t v16ud_t __attribute__((vector_size(16)));
+ asm("xorps\t%%xmm0, %%xmm0\n\tmovups\t%%xmm0, %0":"=m"(*noalias_cast<v16ud_t*>(m_Delimiters))::"xmm0");
+#else
+ memset (m_Delimiters, 0, sizeof(m_Delimiters));
+#endif
+ memcpy (m_Delimiters, delimiters, min (strlen(delimiters),sizeof(m_Delimiters)-1));
+}
+
+/// Reads one type as another.
+template <typename RealT, typename CastT>
+inline void _cast_read (istringstream& is, RealT& v)
+{
+ CastT cv;
+ is.iread (cv);
+ v = RealT (cv);
+}
+
+/// Reads a line of text from \p is into \p s
+inline istringstream& getline (istringstream& is, string& s)
+ { return (is.getline (s)); }
+
+//----------------------------------------------------------------------
+
+template <typename T> struct object_text_reader {
+ inline void operator()(istringstream& is, T& v) const { v.text_read (is); }
+};
+template <typename T> struct integral_text_object_reader {
+ inline void operator()(istringstream& is, T& v) const { is.iread (v); }
+};
+template <typename T>
+inline istringstream& operator>> (istringstream& is, T& v) {
+ typedef typename tm::Select <numeric_limits<T>::is_integral,
+ integral_text_object_reader<T>, object_text_reader<T> >::Result object_reader_t;
+ object_reader_t()(is, v);
+ return (is);
+}
+
+//----------------------------------------------------------------------
+
+template <> struct object_text_reader<string> {
+ inline void operator()(istringstream& is, string& v) const { is.iread (v); }
+};
+#define ISTRSTREAM_CAST_OPERATOR(RealT, CastT) \
+template <> struct integral_text_object_reader<RealT> { \
+ inline void operator() (istringstream& is, RealT& v) const \
+ { _cast_read<RealT,CastT>(is, v); } \
+};
+ISTRSTREAM_CAST_OPERATOR (uint8_t, int8_t)
+ISTRSTREAM_CAST_OPERATOR (int16_t, int32_t)
+ISTRSTREAM_CAST_OPERATOR (uint16_t, int32_t)
+ISTRSTREAM_CAST_OPERATOR (uint32_t, int32_t)
+ISTRSTREAM_CAST_OPERATOR (float, double)
+#if HAVE_THREE_CHAR_TYPES
+ISTRSTREAM_CAST_OPERATOR (char, int8_t)
+#endif
+#if HAVE_INT64_T
+ISTRSTREAM_CAST_OPERATOR (uint64_t, int64_t)
+#endif
+#if SIZE_OF_LONG == SIZE_OF_INT
+ISTRSTREAM_CAST_OPERATOR (long, int)
+ISTRSTREAM_CAST_OPERATOR (unsigned long,int)
+#endif
+#if HAVE_LONG_LONG && (!HAVE_INT64_T || SIZE_OF_LONG_LONG > 8)
+ISTRSTREAM_CAST_OPERATOR (unsigned long long, long long)
+#endif
+#undef ISTRSTREAM_CAST_OPERATOR
+
+} // namespace ustl
+
+#endif
diff --git a/ecos/packages/language/cxx/ustl/current/include/ustl/sostream.h b/ecos/packages/language/cxx/ustl/current/include/ustl/sostream.h
new file mode 100644
index 0000000..40358ac
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/include/ustl/sostream.h
@@ -0,0 +1,161 @@
+// This file is part of the uSTL library, an STL implementation.
+//
+// Copyright (c) 2005 by Mike Sharov <msharov@users.sourceforge.net>
+// This file is free software, distributed under the MIT License.
+
+#ifndef SOSTREAM_H_5323DC8C26E181D43278F2F53FDCF19F
+#define SOSTREAM_H_5323DC8C26E181D43278F2F53FDCF19F
+
+#include "ustring.h"
+#include "mostream.h"
+
+namespace ustl {
+
+class string;
+
+/// \class ostringstream sostream.h ustl.h
+/// \ingroup TextStreams
+///
+/// \brief This stream writes textual data into a memory block.
+///
+class ostringstream : public ostream {
+public:
+ ostringstream (const string& v = "");
+ ostringstream (void* p, size_t n);
+ void iwrite (uint8_t v);
+ void iwrite (wchar_t v);
+ inline void iwrite (int v) { iformat (v); }
+ inline void iwrite (unsigned int v) { iformat (v); }
+ inline void iwrite (long int v) { iformat (v); }
+ inline void iwrite (unsigned long int v) { iformat (v); }
+ inline void iwrite (float v) { iformat (v); }
+ inline void iwrite (double v) { iformat (v); }
+ void iwrite (bool v);
+ inline void iwrite (const char* s) { write (s, strlen(s)); }
+ inline void iwrite (const string& v) { write (v.begin(), v.size()); }
+ inline void iwrite (fmtflags f);
+#if HAVE_LONG_LONG
+ inline void iwrite (long long v) { iformat (v); }
+ inline void iwrite (unsigned long long v) { iformat (v); }
+#endif
+ inline size_type max_size (void) const { return (m_Buffer.max_size()); }
+ inline ostringstream& put (char c) { iwrite (uint8_t(c)); return (*this); }
+ int vformat (const char* fmt, va_list args);
+ int format (const char* fmt, ...) __attribute__((__format__(__printf__, 2, 3)));
+ inline void set_base (uint16_t b) { m_Base = b; }
+ inline void set_width (uint16_t w) { m_Width = w; }
+ inline void set_decimal_separator (char) { }
+ inline void set_thousand_separator (char) { }
+ inline void set_precision (uint16_t v) { m_Precision = v; }
+ void link (void* p, size_type n);
+ inline void link (memlink& l) { link (l.data(), l.writable_size()); }
+ inline const string& str (void) { flush(); return (m_Buffer); }
+ void str (const string& s);
+ ostringstream& write (const void* buffer, size_type size);
+ inline ostringstream& write (const cmemlink& buf) { return (write (buf.begin(), buf.size())); }
+ inline ostringstream& seekp (off_t p, seekdir d =beg) { ostream::seekp(p,d); return (*this); }
+ ostringstream& flush (void) { m_Buffer.resize (pos()); return (*this); }
+ virtual size_type overflow (size_type n = 1);
+protected:
+ inline void reserve (size_type n) { m_Buffer.reserve (n, false); }
+ inline size_type capacity (void) const { return (m_Buffer.capacity()); }
+private:
+ inline void write_strz (const char*) { assert (!"Writing nul characters into a text stream is not allowed"); }
+ inline char* encode_dec (char* fmt, uint32_t n) const;
+ void fmtstring (char* fmt, const char* typestr, bool bInteger) const;
+ template <typename T>
+ void iformat (T v);
+private:
+ string m_Buffer; ///< The output buffer.
+ uint32_t m_Flags; ///< See ios_base::fmtflags.
+ uint16_t m_Width; ///< Field width.
+ uint8_t m_Base; ///< Numeric base for writing numbers.
+ uint8_t m_Precision; ///< Number of digits after the decimal separator.
+};
+
+//----------------------------------------------------------------------
+
+template <typename T>
+inline const char* printf_typestring (const T&) { return (""); }
+#define PRINTF_TYPESTRING_SPEC(type,str) \
+template <> inline const char* printf_typestring (const type&) { return (str); }
+PRINTF_TYPESTRING_SPEC (int, "d")
+PRINTF_TYPESTRING_SPEC (unsigned int, "u")
+PRINTF_TYPESTRING_SPEC (long, "ld")
+PRINTF_TYPESTRING_SPEC (unsigned long, "lu")
+PRINTF_TYPESTRING_SPEC (float, "f")
+PRINTF_TYPESTRING_SPEC (double, "lf")
+#if HAVE_LONG_LONG
+PRINTF_TYPESTRING_SPEC (long long, "lld")
+PRINTF_TYPESTRING_SPEC (unsigned long long, "llu")
+#endif
+#undef PRINTF_TYPESTRING_SPEC
+
+template <typename T>
+void ostringstream::iformat (T v)
+{
+ char fmt [16];
+ fmtstring (fmt, printf_typestring(v), numeric_limits<T>::is_integer);
+ format (fmt, v);
+}
+
+/// Sets the flag \p f in the stream.
+inline void ostringstream::iwrite (fmtflags f)
+{
+ switch (f) {
+ case oct: set_base (8); break;
+ case dec: set_base (10); break;
+ case hex: set_base (16); break;
+ case left: m_Flags |= left; m_Flags &= ~right; break;
+ case right: m_Flags |= right; m_Flags &= ~left; break;
+ default: m_Flags |= f; break;
+ }
+}
+
+//----------------------------------------------------------------------
+
+template <typename T> struct object_text_writer {
+ inline void operator()(ostringstream& os, const T& v) const { v.text_write (os); }
+};
+template <typename T> struct integral_text_object_writer {
+ inline void operator()(ostringstream& os, const T& v) const { os.iwrite (v); }
+};
+template <typename T>
+inline ostringstream& operator<< (ostringstream& os, const T& v) {
+ typedef typename tm::Select <numeric_limits<T>::is_integral,
+ integral_text_object_writer<T>, object_text_writer<T> >::Result object_writer_t;
+ object_writer_t()(os, v);
+ return (os);
+}
+// Needed because if called with a char[], numeric_limits will not work. Should be removed if I find out how to partial specialize for arrays...
+inline ostringstream& operator<< (ostringstream& os, const char* v)
+ { os.iwrite (v); return (os); }
+inline ostringstream& operator<< (ostringstream& os, char* v)
+ { os.iwrite (v); return (os); }
+
+//----------------------------------------------------------------------
+
+template <> struct object_text_writer<string> {
+ inline void operator()(ostringstream& os, const string& v) const { os.iwrite (v); }
+};
+template <typename T> struct integral_text_object_writer<T*> {
+ inline void operator() (ostringstream& os, const T* const& v) const
+ { os.iwrite ((uintptr_t)(v)); }
+};
+#define OSTRSTREAM_CAST_OPERATOR(RealT, CastT) \
+template <> inline ostringstream& operator<< (ostringstream& os, const RealT& v) \
+ { os.iwrite ((CastT)(v)); return (os); }
+OSTRSTREAM_CAST_OPERATOR (uint8_t* const, const char*)
+OSTRSTREAM_CAST_OPERATOR (int8_t, uint8_t)
+OSTRSTREAM_CAST_OPERATOR (short int, int)
+OSTRSTREAM_CAST_OPERATOR (unsigned short, unsigned int)
+#if HAVE_THREE_CHAR_TYPES
+OSTRSTREAM_CAST_OPERATOR (char, uint8_t)
+#endif
+#undef OSTRSTREAM_CAST_OPERATOR
+
+//----------------------------------------------------------------------
+
+} // namespace ustl
+
+#endif
diff --git a/ecos/packages/language/cxx/ustl/current/include/ustl/strmsize.h b/ecos/packages/language/cxx/ustl/current/include/ustl/strmsize.h
new file mode 100644
index 0000000..692d2c0
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/include/ustl/strmsize.h
@@ -0,0 +1,96 @@
+// This file is part of the uSTL library, an STL implementation.
+//
+// Copyright (c) 2005 by Mike Sharov <msharov@users.sourceforge.net>
+// This file is free software, distributed under the MIT License.
+//
+/// \file strmsize.h
+/// \brief This file contains stream_size_of functions for basic types and *STREAMABLE macros.
+/// stream_size_of functions return the size of the object's data that is written or
+/// read from a stream.
+
+#ifndef STRMSIZE_H_052FF16B2D8A608761BF10333D065073
+#define STRMSIZE_H_052FF16B2D8A608761BF10333D065073
+
+namespace ustl {
+
+/// For partial specialization of stream_size_of for objects
+template <typename T> struct object_stream_size {
+ inline streamsize operator()(const T& v) const { return (v.stream_size()); }
+};
+template <typename T> struct integral_object_stream_size {
+ inline streamsize operator()(const T& v) const { return (sizeof(v)); }
+};
+/// Returns the size of the given object. Overloads for standard types are available.
+template <typename T>
+inline streamsize stream_size_of (const T& v) {
+ typedef typename tm::Select <numeric_limits<T>::is_integral,
+ integral_object_stream_size<T>, object_stream_size<T> >::Result stream_sizer_t;
+ return (stream_sizer_t()(v));
+}
+
+/// \brief Returns the recommended stream alignment for type \p T. Override with ALIGNOF.
+/// Because this is occasionally called with a null value, do not access the argument!
+template <typename T>
+inline size_t stream_align_of (const T&)
+{
+ if (numeric_limits<T>::is_integral)
+ return (__alignof__(T));
+ return (4);
+}
+
+#define ALIGNOF(type,grain) \
+namespace ustl { \
+ template <> inline size_t stream_align_of (const type&) { return (grain); } }
+
+} // namespace ustl
+
+//
+// Extra overloads in this macro are needed because it is the one used for
+// marshalling pointers. Passing a pointer to stream_size_of creates a
+// conversion ambiguity between converting to const pointer& and converting
+// to bool; the compiler always chooses the bool conversion (because it
+// requires 1 conversion instead of 2 for the other choice). There is little
+// point in adding the overloads to other macros, since they are never used
+// for pointers.
+//
+/// Declares that T is to be written as is into binary streams.
+#define INTEGRAL_STREAMABLE(T) \
+ namespace ustl { \
+ inline istream& operator>> (istream& is, T& v) { is.iread(v); return (is); } \
+ inline ostream& operator<< (ostream& os, const T& v) { os.iwrite(v); return (os); } \
+ inline ostream& operator<< (ostream& os, T& v) { os.iwrite(v); return (os); } \
+ template <> inline streamsize stream_size_of (const T& v) { return (sizeof(v)); } \
+ }
+
+/// Declares that T contains read, write, and stream_size methods. This is no longer needed and is deprecated.
+#define STD_STREAMABLE(T)
+
+/// Declares \p T to be writable to text streams. This is no longer needed and is deprecated.
+#define TEXT_STREAMABLE(T)
+
+/// Declares that T is to be cast into TSUB for streaming.
+#define CAST_STREAMABLE(T,TSUB) \
+ namespace ustl { \
+ inline istream& operator>> (istream& is, T& v) { TSUB sv; is >> sv; v = (T)(sv); return (is); } \
+ inline ostream& operator<< (ostream& os, const T& v) { os << TSUB(v); return (os); } \
+ template <> inline streamsize stream_size_of (const T& v) { return (stream_size_of (TSUB(v))); } \
+ }
+
+/// Placed into a class it declares the methods required by STD_STREAMABLE. Syntactic sugar.
+#define DECLARE_STD_STREAMABLE \
+ public: \
+ void read (istream& is); \
+ void write (ostream& os) const; \
+ streamsize stream_size (void) const
+
+/// Specifies that \p T is printed by using it as an index into \p Names string array.
+#define LOOKUP_TEXT_STREAMABLE(T,Names,nNames) \
+ namespace ustl { \
+ inline ostringstream& operator<< (ostringstream& os, const T& v) \
+ { \
+ os << Names[min(uoff_t(v),uoff_t(nNames-1))]; \
+ return (os); \
+ } \
+ }
+
+#endif
diff --git a/ecos/packages/language/cxx/ustl/current/include/ustl/traits.h b/ecos/packages/language/cxx/ustl/current/include/ustl/traits.h
new file mode 100644
index 0000000..4c598d0
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/include/ustl/traits.h
@@ -0,0 +1,251 @@
+// This file is part of the uSTL library, an STL implementation.
+//
+// Copyright (c) 2007 by Mike Sharov <msharov@users.sourceforge.net>
+//
+// This implementation is adapted from the Loki library, distributed under
+// the MIT license with Copyright (c) 2001 by Andrei Alexandrescu.
+
+#ifndef TRAITS_H_4AA3DDE15E16C947392711ED08FB1FF6
+#define TRAITS_H_4AA3DDE15E16C947392711ED08FB1FF6
+
+#include "typelist.h"
+
+namespace ustl {
+namespace tm {
+namespace {
+
+//----------------------------------------------------------------------
+// Type classes and type modifiers
+//----------------------------------------------------------------------
+
+typedef tl::Seq<unsigned char, unsigned short, unsigned, unsigned long>::Type
+ StdUnsignedInts;
+typedef tl::Seq<signed char, short, int, long>::Type StdSignedInts;
+typedef tl::Seq<bool, char, wchar_t>::Type StdOtherInts;
+typedef tl::Seq<float, double>::Type StdFloats;
+
+template <typename U> struct AddPointer { typedef U* Result; };
+template <typename U> struct AddPointer<U&> { typedef U* Result; };
+template <typename U> struct AddReference { typedef U& Result; };
+template <typename U> struct AddReference<U&> { typedef U& Result; };
+template <> struct AddReference<void> { typedef NullType Result; };
+template <typename U> struct AddParameterType { typedef const U& Result; };
+template <typename U> struct AddParameterType<U&> { typedef U& Result; };
+template <> struct AddParameterType<void> { typedef NullType Result; };
+
+//----------------------------------------------------------------------
+// Function pointer testers
+//----------------------------------------------------------------------
+// Macros expand to numerous parameters
+
+template <typename T>
+struct IsFunctionPointerRaw { enum { result = false}; };
+template <typename T>
+struct IsMemberFunctionPointerRaw { enum { result = false}; };
+
+#define TM_FPR_MAXN 9
+#define TM_FPR_TYPE(n) PASTE(T,n)
+#define TM_FPR_TYPENAME(n) typename TM_FPR_TYPE(n)
+
+// First specialize for regular functions
+template <typename T>
+struct IsFunctionPointerRaw<T(*)(void)>
+{enum {result = true};};
+
+#define TM_FPR_SPEC(n) \
+template <typename T, COMMA_LIST(n, TM_FPR_TYPENAME)> \
+struct IsFunctionPointerRaw<T(*)(COMMA_LIST(n, TM_FPR_TYPE))> \
+{ enum { result = true }; }
+
+LIST (TM_FPR_MAXN, TM_FPR_SPEC, ;);
+
+// Then for those with an ellipsis argument
+template <typename T>
+struct IsFunctionPointerRaw<T(*)(...)>
+{enum {result = true};};
+
+#define TM_FPR_SPEC_ELLIPSIS(n) \
+template <typename T, COMMA_LIST(n, TM_FPR_TYPENAME)> \
+struct IsFunctionPointerRaw<T(*)(COMMA_LIST(n, TM_FPR_TYPE), ...)> \
+{ enum { result = true }; }
+
+LIST (TM_FPR_MAXN, TM_FPR_SPEC_ELLIPSIS, ;);
+
+// Then for member function pointers
+template <typename T, typename S>
+struct IsMemberFunctionPointerRaw<T (S::*)(void)>
+{ enum { result = true }; };
+
+#define TM_MFPR_SPEC(n) \
+template <typename T, typename S, COMMA_LIST(n, TM_FPR_TYPENAME)> \
+struct IsMemberFunctionPointerRaw<T (S::*)(COMMA_LIST(n, TM_FPR_TYPE))> \
+{ enum { result = true };};
+
+LIST (TM_FPR_MAXN, TM_MFPR_SPEC, ;);
+
+// Then for member function pointers with an ellipsis argument
+template <typename T, typename S>
+struct IsMemberFunctionPointerRaw<T (S::*)(...)>
+{ enum { result = true }; };
+
+#define TM_MFPR_SPEC_ELLIPSIS(n) \
+template <typename T, typename S, COMMA_LIST(n, TM_FPR_TYPENAME)> \
+struct IsMemberFunctionPointerRaw<T (S::*)(COMMA_LIST(n, TM_FPR_TYPE), ...)> \
+{ enum { result = true }; };
+
+LIST (TM_FPR_MAXN, TM_MFPR_SPEC_ELLIPSIS, ;);
+
+// Then for const member function pointers (getting tired yet?)
+template <typename T, typename S>
+struct IsMemberFunctionPointerRaw<T (S::*)(void) const>
+{ enum { result = true }; };
+
+#define TM_CMFPR_SPEC(n) \
+template <typename T, typename S, COMMA_LIST(n, TM_FPR_TYPENAME)> \
+struct IsMemberFunctionPointerRaw<T (S::*)(COMMA_LIST(n, TM_FPR_TYPE)) const> \
+{ enum { result = true };};
+
+LIST (TM_FPR_MAXN, TM_CMFPR_SPEC, ;);
+
+// Finally for const member function pointers with an ellipsis argument (whew!)
+template <typename T, typename S>
+struct IsMemberFunctionPointerRaw<T (S::*)(...) const>
+{ enum { result = true }; };
+
+#define TM_CMFPR_SPEC_ELLIPSIS(n) \
+template <typename T, typename S, COMMA_LIST(n, TM_FPR_TYPENAME)> \
+struct IsMemberFunctionPointerRaw<T (S::*)(COMMA_LIST(n, TM_FPR_TYPE), ...) const> \
+{ enum { result = true }; };
+
+LIST (TM_FPR_MAXN, TM_CMFPR_SPEC_ELLIPSIS, ;);
+
+#undef TM_FPR_SPEC
+#undef TM_FPR_SPEC_ELLIPSIS
+#undef TM_MFPR_SPEC
+#undef TM_MFPR_SPEC_ELLIPSIS
+#undef TM_CMFPR_SPEC
+#undef TM_CMFPR_SPEC_ELLIPSIS
+#undef TM_FPR_TYPENAME
+#undef TM_FPR_TYPE
+#undef TM_FPR_MAXN
+
+} // namespace
+
+//----------------------------------------------------------------------
+// Type traits template
+//----------------------------------------------------------------------
+
+/// Figures out at compile time various properties of any given type
+/// Invocations (T is a type, TypeTraits<T>::Propertie):
+///
+/// - isPointer : returns true if T is a pointer type
+/// - PointeeType : returns the type to which T points if T is a pointer
+/// type, NullType otherwise
+/// - isReference : returns true if T is a reference type
+/// - ReferredType : returns the type to which T refers if T is a reference
+/// type, NullType otherwise
+/// - isMemberPointer : returns true if T is a pointer to member type
+/// - isStdUnsignedInt: returns true if T is a standard unsigned integral type
+/// - isStdSignedInt : returns true if T is a standard signed integral type
+/// - isStdIntegral : returns true if T is a standard integral type
+/// - isStdFloat : returns true if T is a standard floating-point type
+/// - isStdArith : returns true if T is a standard arithmetic type
+/// - isStdFundamental: returns true if T is a standard fundamental type
+/// - isUnsignedInt : returns true if T is a unsigned integral type
+/// - isSignedInt : returns true if T is a signed integral type
+/// - isIntegral : returns true if T is a integral type
+/// - isFloat : returns true if T is a floating-point type
+/// - isArith : returns true if T is a arithmetic type
+/// - isFundamental : returns true if T is a fundamental type
+/// - ParameterType : returns the optimal type to be used as a parameter for
+/// functions that take Ts
+/// - isConst : returns true if T is a const-qualified type
+/// - NonConstType : Type with removed 'const' qualifier from T, if any
+/// - isVolatile : returns true if T is a volatile-qualified type
+/// - NonVolatileType : Type with removed 'volatile' qualifier from T, if any
+/// - UnqualifiedType : Type with removed 'const' and 'volatile' qualifiers from
+/// T, if any
+/// - ConstParameterType: returns the optimal type to be used as a parameter
+/// for functions that take 'const T's
+///
+template <typename T>
+class TypeTraits {
+private:
+ #define TMTT1 template <typename U> struct
+ #define TMTT2 template <typename U, typename V> struct
+ TMTT1 ReferenceTraits { enum { result = false }; typedef U ReferredType; };
+ TMTT1 ReferenceTraits<U&> { enum { result = true }; typedef U ReferredType; };
+ TMTT1 PointerTraits { enum { result = false }; typedef NullType PointeeType; };
+ TMTT1 PointerTraits<U*> { enum { result = true }; typedef U PointeeType; };
+ TMTT1 PointerTraits<U*&> { enum { result = true }; typedef U PointeeType; };
+ TMTT1 PToMTraits { enum { result = false }; };
+ TMTT2 PToMTraits<U V::*> { enum { result = true }; };
+ TMTT2 PToMTraits<U V::*&> { enum { result = true }; };
+ TMTT1 FunctionPointerTraits { enum { result = IsFunctionPointerRaw<U>::result }; };
+ TMTT1 PToMFunctionTraits { enum { result = IsMemberFunctionPointerRaw<U>::result }; };
+ TMTT1 UnConst { typedef U Result; enum { isConst = false }; };
+ TMTT1 UnConst<const U> { typedef U Result; enum { isConst = true }; };
+ TMTT1 UnConst<const U&> { typedef U& Result; enum { isConst = true }; };
+ TMTT1 UnVolatile { typedef U Result; enum { isVolatile = false }; };
+ TMTT1 UnVolatile<volatile U>{ typedef U Result; enum { isVolatile = true }; };
+ TMTT1 UnVolatile<volatile U&> {typedef U& Result;enum { isVolatile = true }; };
+ #undef TMTT2
+ #undef TMTT1
+public:
+ typedef typename UnConst<T>::Result
+ NonConstType;
+ typedef typename UnVolatile<T>::Result
+ NonVolatileType;
+ typedef typename UnVolatile<typename UnConst<T>::Result>::Result
+ UnqualifiedType;
+ typedef typename PointerTraits<UnqualifiedType>::PointeeType
+ PointeeType;
+ typedef typename ReferenceTraits<T>::ReferredType
+ ReferredType;
+
+ enum { isConst = UnConst<T>::isConst };
+ enum { isVolatile = UnVolatile<T>::isVolatile };
+ enum { isReference = ReferenceTraits<UnqualifiedType>::result };
+ enum { isFunction = FunctionPointerTraits<typename AddPointer<T>::Result >::result };
+ enum { isFunctionPointer= FunctionPointerTraits<
+ typename ReferenceTraits<UnqualifiedType>::ReferredType >::result };
+ enum { isMemberFunctionPointer= PToMFunctionTraits<
+ typename ReferenceTraits<UnqualifiedType>::ReferredType >::result };
+ enum { isMemberPointer = PToMTraits<
+ typename ReferenceTraits<UnqualifiedType>::ReferredType >::result ||
+ isMemberFunctionPointer };
+ enum { isPointer = PointerTraits<
+ typename ReferenceTraits<UnqualifiedType>::ReferredType >::result ||
+ isFunctionPointer };
+ enum { isStdUnsignedInt = tl::IndexOf<StdUnsignedInts, UnqualifiedType>::value >= 0 ||
+ tl::IndexOf<StdUnsignedInts,
+ typename ReferenceTraits<UnqualifiedType>::ReferredType>::value >= 0};
+ enum { isStdSignedInt = tl::IndexOf<StdSignedInts, UnqualifiedType>::value >= 0 ||
+ tl::IndexOf<StdSignedInts,
+ typename ReferenceTraits<UnqualifiedType>::ReferredType>::value >= 0};
+ enum { isStdIntegral = isStdUnsignedInt || isStdSignedInt ||
+ tl::IndexOf<StdOtherInts, UnqualifiedType>::value >= 0 ||
+ tl::IndexOf<StdOtherInts,
+ typename ReferenceTraits<UnqualifiedType>::ReferredType>::value >= 0};
+ enum { isStdFloat = tl::IndexOf<StdFloats, UnqualifiedType>::value >= 0 ||
+ tl::IndexOf<StdFloats,
+ typename ReferenceTraits<UnqualifiedType>::ReferredType>::value >= 0};
+ enum { isStdArith = isStdIntegral || isStdFloat };
+ enum { isStdFundamental = isStdArith || isStdFloat || Conversion<T, void>::sameType };
+
+ enum { isUnsignedInt = isStdUnsignedInt };
+ enum { isSignedInt = isStdSignedInt };
+ enum { isIntegral = isStdIntegral || isUnsignedInt || isSignedInt };
+ enum { isFloat = isStdFloat };
+ enum { isArith = isIntegral || isFloat };
+ enum { isFundamental = isStdFundamental || isArith };
+
+ typedef typename Select<isStdArith || isPointer || isMemberPointer, T,
+ typename AddParameterType<T>::Result>::Result
+ ParameterType;
+};
+
+} // namespace tm
+} // namespace ustl
+
+#endif
diff --git a/ecos/packages/language/cxx/ustl/current/include/ustl/typeinfo.h b/ecos/packages/language/cxx/ustl/current/include/ustl/typeinfo.h
new file mode 100644
index 0000000..ff86123
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/include/ustl/typeinfo.h
@@ -0,0 +1,40 @@
+// This file is part of the uSTL library, an STL implementation.
+//
+// Copyright (c) 2005 by Mike Sharov <msharov@users.sourceforge.net>
+// This file is free software, distributed under the MIT License.
+//
+#ifndef TYPEINFO_H_E67A267F0BBB5005
+#define TYPEINFO_H_E67A267F0BBB5005
+
+#ifndef WITHOUT_LIBSTDCPP
+ #include <typeinfo>
+#else
+
+#include "uexception.h"
+
+namespace __cxxabiv1 { class __class_type_info; }
+
+namespace std {
+class type_info {
+public:
+ inline virtual ~type_info (void) { }
+ inline const char* name (void) const { return (__name[0] == '*' ? __name + 1 : __name); }
+ inline bool before (const type_info& v) const { return (__name < v.__name); }
+ inline bool operator==(const type_info& v) const { return (__name == v.__name); }
+ inline bool operator!=(const type_info& v) const { return (!operator==(v)); }
+ virtual bool __is_pointer_p (void) const;
+ virtual bool __is_function_p (void) const;
+ virtual bool __do_catch (const type_info* __thr_type, void** __thr_obj, unsigned __outer) const;
+ virtual bool __do_upcast (const __cxxabiv1::__class_type_info* __target, void** __obj_ptr) const;
+ explicit inline type_info (const char* newname) : __name(newname) { }
+private:
+ inline void operator= (const type_info&) { }
+ inline type_info (const type_info&) { }
+protected:
+ const char* __name;
+};
+
+} // namespace std
+
+#endif
+#endif
diff --git a/ecos/packages/language/cxx/ustl/current/include/ustl/typelist.h b/ecos/packages/language/cxx/ustl/current/include/ustl/typelist.h
new file mode 100644
index 0000000..ab767dc
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/include/ustl/typelist.h
@@ -0,0 +1,223 @@
+// This file is part of the uSTL library, an STL implementation.
+//
+// Copyright (c) 2007 by Mike Sharov <msharov@users.sourceforge.net>
+//
+// This implementation is adapted from the Loki library, distributed under
+// the MIT license with Copyright (c) 2001 by Andrei Alexandrescu.
+
+#ifndef TYPELIST_H_2A8F84704780530D531716D41B3EA3FE
+#define TYPELIST_H_2A8F84704780530D531716D41B3EA3FE
+
+#include "metamac.h"
+#include "typet.h"
+
+namespace ustl {
+namespace tm {
+
+/// The building block of typelists. Use it throught the Seq templates.
+template <typename T, typename U>
+struct Typelist {
+ typedef T Head;
+ typedef U Tail;
+};
+
+/// Namespace containing typelist-related functionality.
+namespace tl {
+
+//----------------------------------------------------------------------
+// Seq template definitions. The macros expand to a spec per arg count
+//
+#define TL_MAX_SEQ_TYPES 9
+#define TL_MAX_SEQ_SPECS 8
+#define TL_SEQ_TYPE(n) T##n
+#define TL_SEQ_TYPENAME(n) typename TL_SEQ_TYPE(n)
+#define TL_SEQ_NULLTYPE_DEFAULT(n) TL_SEQ_TYPENAME(n)=NullType
+#define TL_SEQ_TL_END(n) >
+#define TL_SEQ_ONE_TYPELIST(n) Typelist<TL_SEQ_TYPE(n)
+
+/// Creates a typelist from a sequence of types
+template <COMMA_LIST(TL_MAX_SEQ_TYPES,TL_SEQ_NULLTYPE_DEFAULT)>
+struct Seq {
+ typedef COMMA_LIST(TL_MAX_SEQ_TYPES,TL_SEQ_ONE_TYPELIST),
+ NullType REPEAT(TL_MAX_SEQ_TYPES,TL_SEQ_TL_END) Type;
+};
+
+#define TL_SEQ_SPEC(n) \
+template <COMMA_LIST (n, TL_SEQ_TYPENAME)> \
+struct Seq<COMMA_LIST (n, TL_SEQ_TYPE)> { \
+ typedef COMMA_LIST(n,TL_SEQ_ONE_TYPELIST), \
+ NullType REPEAT(n,TL_SEQ_TL_END) Type; \
+}
+LIST(TL_MAX_SEQ_SPECS,TL_SEQ_SPEC, ;);
+
+#undef TL_SEQ_SPEC
+#undef TL_SEQ_TL_END
+#undef TL_SEQ_ONE_TYPELIST
+#undef TL_SEQ_NULLTYPE_DEFAULT
+#undef TL_SEQ_TYPE
+#undef TL_MAX_SEQ_SPECS
+
+//----------------------------------------------------------------------
+// Various utility functions follow.
+
+/// Length<List>::value is the number of types in the typelist.
+template <typename List> struct Length { };
+template <> struct Length<NullType> { enum { value = 0 }; };
+template <typename T, typename U>
+struct Length<Typelist<T, U> > { enum { value = 1 + Length<U>::value }; };
+
+/// TypeAt<List, i>::Result is the ith type in List
+template <typename List, unsigned index> struct TypeAt { };
+template <class Head, class Tail>
+struct TypeAt<Typelist<Head, Tail>, 0> {
+ typedef Head Result;
+};
+template <class Head, class Tail, unsigned index>
+struct TypeAt<Typelist<Head, Tail>, index> {
+ typedef typename TypeAt<Tail, index-1>::Result Result;
+};
+
+/// TypeAtNonStrict<List,i,DefaultType>::Result is List[i] or DefaultType if out of range.
+template <typename List, unsigned index, typename DefaultType = NullType>
+struct TypeAtNonStrict {
+ typedef DefaultType Result;
+};
+template <typename Head, typename Tail, typename DefaultType>
+struct TypeAtNonStrict<Typelist<Head, Tail>, 0, DefaultType> {
+ typedef Head Result;
+};
+template <typename Head, typename Tail, unsigned index, typename DefaultType>
+struct TypeAtNonStrict<Typelist<Head, Tail>, index, DefaultType> {
+ typedef typename TypeAtNonStrict<Tail, index-1, DefaultType>::Result Result;
+};
+
+/// IndexOf<List,T>::value is the position of T in List, or -1 if not found.
+template <typename List, typename T> struct IndexOf;
+template <typename T>
+struct IndexOf<NullType, T> { enum { value = -1 }; };
+template <typename T, typename Tail>
+struct IndexOf<Typelist<T, Tail>, T> { enum { value = 0 }; };
+template <typename Head, typename Tail, typename T>
+struct IndexOf<Typelist<Head, Tail>, T> {
+private:
+ enum { iintail = IndexOf<Tail, T>::value };
+public:
+ enum { value = (iintail == -1 ? -1 : 1+iintail) };
+};
+
+/// Appends a type or a typelist to another in Append<TList, T>::Result
+template <typename List, typename T> struct Append;
+template <> struct Append<NullType, NullType> { typedef NullType Result; };
+template <typename T> struct Append<NullType, T> {
+ typedef Typelist<T,NullType> Result;
+};
+template <typename Head, typename Tail>
+struct Append<NullType, Typelist<Head, Tail> > {
+ typedef Typelist<Head, Tail> Result;
+};
+template <typename Head, typename Tail, typename T>
+struct Append<Typelist<Head, Tail>, T> {
+ typedef Typelist<Head, typename Append<Tail, T>::Result> Result;
+};
+
+// Erase<List, T>::Result contains List without the first T.
+template <typename TList, typename T> struct Erase;
+template <typename T>
+struct Erase<NullType, T> { typedef NullType Result; };
+template <typename T, typename Tail>
+struct Erase<Typelist<T, Tail>, T> { typedef Tail Result; };
+template <typename Head, typename Tail, typename T>
+struct Erase<Typelist<Head, Tail>, T> {
+ typedef Typelist<Head, typename Erase<Tail, T>::Result> Result;
+};
+
+// EraseAll<List, T>::Result contains List without any T.
+template <typename List, typename T> struct EraseAll;
+template <typename T>
+struct EraseAll<NullType, T> { typedef NullType Result; };
+template <typename T, typename Tail>
+struct EraseAll<Typelist<T, Tail>, T> {
+ typedef typename EraseAll<Tail, T>::Result Result;
+};
+template <typename Head, typename Tail, typename T>
+struct EraseAll<Typelist<Head, Tail>, T> {
+ typedef Typelist<Head, typename EraseAll<Tail, T>::Result> Result;
+};
+
+/// Removes all duplicate types in a typelist
+template <typename List> struct NoDuplicates;
+template <> struct NoDuplicates<NullType> { typedef NullType Result; };
+template <typename Head, typename Tail>
+struct NoDuplicates< Typelist<Head, Tail> > {
+private:
+ typedef typename NoDuplicates<Tail>::Result L1;
+ typedef typename Erase<L1, Head>::Result L2;
+public:
+ typedef Typelist<Head, L2> Result;
+};
+
+// Replaces the first occurence of a type in a typelist, with another type
+template <typename List, typename T, typename U> struct Replace;
+template <typename T, typename U>
+struct Replace<NullType, T, U> { typedef NullType Result; };
+template <typename T, typename Tail, typename U>
+struct Replace<Typelist<T, Tail>, T, U> {
+ typedef Typelist<U, Tail> Result;
+};
+template <typename Head, typename Tail, typename T, typename U>
+struct Replace<Typelist<Head, Tail>, T, U> {
+ typedef Typelist<Head, typename Replace<Tail, T, U>::Result> Result;
+};
+
+// Replaces all occurences of a type in a typelist, with another type
+template <typename List, typename T, typename U> struct ReplaceAll;
+template <typename T, typename U>
+struct ReplaceAll<NullType, T, U> { typedef NullType Result; };
+template <typename T, typename Tail, typename U>
+struct ReplaceAll<Typelist<T, Tail>, T, U> {
+ typedef Typelist<U, typename ReplaceAll<Tail, T, U>::Result> Result;
+};
+template <typename Head, typename Tail, typename T, typename U>
+struct ReplaceAll<Typelist<Head, Tail>, T, U> {
+ typedef Typelist<Head, typename ReplaceAll<Tail, T, U>::Result> Result;
+};
+
+// Reverses a typelist
+template <typename List> struct Reverse;
+template <> struct Reverse<NullType> { typedef NullType Result; };
+template <typename Head, typename Tail>
+struct Reverse< Typelist<Head, Tail> > {
+ typedef typename Append<typename Reverse<Tail>::Result, Head>::Result Result;
+};
+
+// Finds the type in a typelist that is the most derived from a given type
+template <typename List, typename T> struct MostDerived;
+template <typename T> struct MostDerived<NullType, T> { typedef T Result; };
+template <typename Head, typename Tail, typename T>
+struct MostDerived<Typelist<Head, Tail>, T> {
+private:
+ typedef typename MostDerived<Tail, T>::Result Candidate;
+public:
+ typedef typename Select<SuperSubclass<Candidate,Head>::value, Head, Candidate>::Result Result;
+};
+
+// Arranges the types in a typelist so that the most derived types appear first
+template <typename List> struct DerivedToFront;
+template <> struct DerivedToFront<NullType> { typedef NullType Result; };
+template <typename Head, typename Tail>
+struct DerivedToFront< Typelist<Head, Tail> > {
+private:
+ typedef typename MostDerived<Tail, Head>::Result TheMostDerived;
+ typedef typename Replace<Tail, TheMostDerived, Head>::Result Temp;
+ typedef typename DerivedToFront<Temp>::Result L;
+public:
+ typedef Typelist<TheMostDerived, L> Result;
+};
+
+//----------------------------------------------------------------------
+
+} // namespace tl
+} // namespace tm
+} // namespace ustl
+
+#endif
diff --git a/ecos/packages/language/cxx/ustl/current/include/ustl/typet.h b/ecos/packages/language/cxx/ustl/current/include/ustl/typet.h
new file mode 100644
index 0000000..0d2fd99
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/include/ustl/typet.h
@@ -0,0 +1,99 @@
+// This file is part of the uSTL library, an STL implementation.
+//
+// Copyright (c) 2007 by Mike Sharov <msharov@users.sourceforge.net>
+//
+// This implementation is adapted from the Loki library, distributed under
+// the MIT license with Copyright (c) 2001 by Andrei Alexandrescu.
+
+#ifndef TYPET_H_70B4C9693A05E0B405B225F356DE5450
+#define TYPET_H_70B4C9693A05E0B405B225F356DE5450
+
+namespace ustl {
+/// Template metaprogramming tools
+namespace tm {
+
+/// An empty type useful as a placeholder.
+class NullType { };
+
+/// Converts an integer to a type.
+template <int v> struct Int2Type { enum { value = v }; };
+
+/// Converts an type to a unique empty type.
+template <typename T> struct Type2Type { typedef T OriginalType; };
+
+/// Selects type Result = flag ? T : U
+template <bool flag, typename T, typename U>
+struct Select { typedef T Result; };
+template <typename T, typename U>
+struct Select<false, T, U> { typedef U Result; };
+
+/// IsSameType<T,U>::value is true when T=U
+template <typename T, typename U>
+struct IsSameType { enum { value = false }; };
+template <typename T>
+struct IsSameType<T,T> { enum { value = true }; };
+
+/// \brief Checks for conversion possibilities between T and U
+/// Conversion<T,U>::exists is true if T is convertible to U
+/// Conversion<T,U>::exists2Way is true if U is also convertible to T
+/// Conversion<T,U>::sameType is true if U is T
+template <typename T, typename U>
+struct Conversion {
+private:
+ typedef char UT;
+ typedef short TT;
+ static UT Test (U);
+ static TT Test (...);
+ static T MakeT (void);
+public:
+ enum {
+ exists = sizeof(UT) == sizeof(Test(MakeT())),
+ exists2Way = exists && Conversion<U,T>::exists,
+ sameType = false
+ };
+};
+template <typename T>
+struct Conversion<T, T> { enum { exists = true, exists2Way = true, sameType = true }; };
+template <typename T>
+struct Conversion<void, T> { enum { exists = false, exists2Way = false, sameType = false }; };
+template <typename T>
+struct Conversion<T, void> { enum { exists = false, exists2Way = false, sameType = false }; };
+template <>
+struct Conversion<void, void> { enum { exists = true, exists2Way = true, sameType = true }; };
+
+/// SuperSubclass<T,U>::value is true when U is derived from T, or when U is T
+template <typename T, typename U>
+struct SuperSubclass {
+ enum { value = (::ustl::tm::Conversion<const volatile U*, const volatile T*>::exists &&
+ !::ustl::tm::Conversion<const volatile T*, const volatile void*>::sameType) };
+ enum { dontUseWithIncompleteTypes = sizeof(T)==sizeof(U) }; // Dummy enum to make sure that both classes are fully defined.
+};
+template <>
+struct SuperSubclass<void, void> { enum { value = false }; };
+template <typename U>
+struct SuperSubclass<void, U> {
+ enum { value = false };
+ enum { dontUseWithIncompleteTypes = 0==sizeof(U) };
+};
+template <typename T>
+struct SuperSubclass<T, void> {
+ enum { value = false };
+ enum { dontUseWithIncompleteTypes = 0==sizeof(T) };
+};
+
+/// SuperSubclassStrict<T,U>::value is true when U is derived from T
+template <typename T, typename U>
+struct SuperSubclassStrict {
+ enum { value = SuperSubclass<T,U>::value &&
+ !::ustl::tm::Conversion<const volatile T*, const volatile U*>::sameType };
+};
+
+// static assert support
+template <bool> struct CompileTimeError;
+template <> struct CompileTimeError<true> {};
+#define static_assert(cond,msg) { ::ustl::tm::CompileTimeError<!!(cond)> ERROR_##msg; (void) ERROR_##msg; }
+
+} // namespace tm
+} // namespace ustl
+
+#endif
diff --git a/ecos/packages/language/cxx/ustl/current/include/ustl/ualgo.h b/ecos/packages/language/cxx/ustl/current/include/ustl/ualgo.h
new file mode 100644
index 0000000..d3f98e3
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/include/ustl/ualgo.h
@@ -0,0 +1,666 @@
+// This file is part of the uSTL library, an STL implementation.
+//
+// Copyright (c) 2005 by Mike Sharov <msharov@users.sourceforge.net>
+// This file is free software, distributed under the MIT License.
+
+#ifndef UALGO_H_711AB4214D417A51166694D47A662D6E
+#define UALGO_H_711AB4214D417A51166694D47A662D6E
+
+#include "upair.h"
+#include "ualgobase.h"
+#include "ufunction.h"
+#include "umemory.h"
+#include <stdlib.h> // for rand()
+
+namespace ustl {
+
+/// Swaps corresponding elements of [first, last) and [result,)
+/// \ingroup SwapAlgorithms
+///
+template <typename ForwardIterator1, typename ForwardIterator2>
+inline ForwardIterator2 swap_ranges (ForwardIterator1 first, ForwardIterator2 last, ForwardIterator2 result)
+{
+ for (; first != last; ++first, ++result)
+ iter_swap (first, result);
+ return (result);
+}
+
+/// Returns the first iterator i in the range [first, last) such that
+/// *i == value. Returns last if no such iterator exists.
+/// \ingroup SearchingAlgorithms
+///
+template <typename InputIterator, typename EqualityComparable>
+inline InputIterator find (InputIterator first, InputIterator last, const EqualityComparable& value)
+{
+ while (first != last && !(*first == value))
+ ++ first;
+ return (first);
+}
+
+/// Returns the first iterator such that *i == *(i + 1)
+/// \ingroup SearchingAlgorithms
+///
+template <typename ForwardIterator>
+ForwardIterator adjacent_find (ForwardIterator first, ForwardIterator last)
+{
+ if (first != last)
+ for (ForwardIterator prev = first; ++first != last; ++ prev)
+ if (*prev == *first)
+ return (prev);
+ return (last);
+}
+
+/// Returns the pointer to the first pair of unequal elements.
+/// \ingroup SearchingAlgorithms
+///
+template <typename InputIterator>
+pair<InputIterator,InputIterator>
+mismatch (InputIterator first1, InputIterator last1, InputIterator first2)
+{
+ while (first1 != last1 && *first1 == *first2)
+ ++ first1, ++ first2;
+ return (make_pair (first1, first2));
+}
+
+/// \brief Returns true if two ranges are equal.
+/// This is an extension, present in uSTL and SGI STL.
+/// \ingroup SearchingAlgorithms
+///
+template <typename InputIterator>
+inline bool equal (InputIterator first1, InputIterator last1, InputIterator first2)
+{
+ return (mismatch (first1, last1, first2).first == last1);
+}
+
+/// Count finds the number of elements in [first, last) that are equal
+/// to value. More precisely, the first version of count returns the
+/// number of iterators i in [first, last) such that *i == value.
+/// \ingroup SearchingAlgorithms
+///
+template <typename InputIterator, typename EqualityComparable>
+inline size_t count (InputIterator first, InputIterator last, const EqualityComparable& value)
+{
+ size_t total = 0;
+ for (; first != last; ++first)
+ if (*first == value)
+ ++ total;
+ return (total);
+}
+
+///
+/// The first version of transform performs the operation op(*i) for each
+/// iterator i in the range [first, last), and assigns the result of that
+/// operation to *o, where o is the corresponding output iterator. That is,
+/// for each n such that 0 <= n < last - first, it performs the assignment
+/// *(result + n) = op(*(first + n)).
+/// The return value is result + (last - first).
+/// \ingroup MutatingAlgorithms
+/// \ingroup PredicateAlgorithms
+///
+template <typename InputIterator, typename OutputIterator, typename UnaryFunction>
+inline OutputIterator transform (InputIterator first, InputIterator last, OutputIterator result, UnaryFunction op)
+{
+ for (; first != last; ++result, ++first)
+ *result = op (*first);
+ return (result);
+}
+
+///
+/// The second version of transform is very similar, except that it uses a
+/// Binary Function instead of a Unary Function: it performs the operation
+/// op(*i1, *i2) for each iterator i1 in the range [first1, last1) and assigns
+/// the result to *o, where i2 is the corresponding iterator in the second
+/// input range and where o is the corresponding output iterator. That is,
+/// for each n such that 0 <= n < last1 - first1, it performs the assignment
+/// *(result + n) = op(*(first1 + n), *(first2 + n).
+/// The return value is result + (last1 - first1).
+/// \ingroup MutatingAlgorithms
+/// \ingroup PredicateAlgorithms
+///
+template <typename InputIterator1, typename InputIterator2, typename OutputIterator, typename BinaryFunction>
+inline OutputIterator transform (InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, OutputIterator result, BinaryFunction op)
+{
+ for (; first1 != last1; ++result, ++first1, ++first2)
+ *result = op (*first1, *first2);
+ return (result);
+}
+
+/// Replace replaces every element in the range [first, last) equal to
+/// old_value with new_value. That is: for every iterator i,
+/// if *i == old_value then it performs the assignment *i = new_value.
+/// \ingroup MutatingAlgorithms
+///
+template <typename ForwardIterator, typename T>
+inline void replace (ForwardIterator first, ForwardIterator last, const T& old_value, const T& new_value)
+{
+ for (; first != last; ++first)
+ if (*first == old_value)
+ *first = new_value;
+}
+
+/// Replace_copy copies elements from the range [first, last) to the range
+/// [result, result + (last-first)), except that any element equal to old_value
+/// is not copied; new_value is copied instead. More precisely, for every
+/// integer n such that 0 <= n < last-first, replace_copy performs the
+/// assignment *(result+n) = new_value if *(first+n) == old_value, and
+/// *(result+n) = *(first+n) otherwise.
+/// \ingroup MutatingAlgorithms
+///
+template <typename InputIterator, typename OutputIterator, typename T>
+inline OutputIterator replace_copy (InputIterator first, InputIterator last, OutputIterator result, const T& old_value, const T& new_value)
+{
+ for (; first != last; ++result, ++first)
+ *result = (*first == old_value) ? new_value : *first;
+}
+
+/// Generate assigns the result of invoking gen, a function object that
+/// takes no arguments, to each element in the range [first, last).
+/// \ingroup GeneratorAlgorithms
+/// \ingroup PredicateAlgorithms
+///
+template <typename ForwardIterator, typename Generator>
+inline void generate (ForwardIterator first, ForwardIterator last, Generator gen)
+{
+ for (; first != last; ++first)
+ *first = gen();
+}
+
+/// Generate_n assigns the result of invoking gen, a function object that
+/// takes no arguments, to each element in the range [first, first+n).
+/// The return value is first + n.
+/// \ingroup GeneratorAlgorithms
+/// \ingroup PredicateAlgorithms
+///
+template <typename OutputIterator, typename Generator>
+inline OutputIterator generate_n (OutputIterator first, size_t n, Generator gen)
+{
+ for (uoff_t i = 0; i != n; ++i, ++first)
+ *first = gen();
+ return (first);
+}
+
+/// \brief Reverse reverses a range.
+/// That is: for every i such that 0 <= i <= (last - first) / 2),
+/// it exchanges *(first + i) and *(last - (i + 1)).
+/// \ingroup MutatingAlgorithms
+///
+template <typename BidirectionalIterator>
+inline void reverse (BidirectionalIterator first, BidirectionalIterator last)
+{
+ for (; distance (first, --last) > 0; ++first)
+ iter_swap (first, last);
+}
+
+/// \brief Reverses [first,last) and writes it to \p output.
+/// \ingroup MutatingAlgorithms
+///
+template <typename BidirectionalIterator, typename OutputIterator>
+inline OutputIterator reverse_copy (BidirectionalIterator first, BidirectionalIterator last, OutputIterator result)
+{
+ for (; first != last; ++result)
+ *result = *--last;
+ return (result);
+}
+
+/// \brief Exchanges ranges [first, middle) and [middle, last)
+/// \ingroup MutatingAlgorithms
+///
+template <typename ForwardIterator>
+ForwardIterator rotate (ForwardIterator first, ForwardIterator middle, ForwardIterator last)
+{
+ if (first == middle || middle == last)
+ return (first);
+ reverse (first, middle);
+ reverse (middle, last);
+ for (;first != middle && middle != last; ++first)
+ iter_swap (first, --last);
+ reverse (first, (first == middle ? last : middle));
+ return (first);
+}
+
+/// Specialization for pointers, which can be treated identically.
+template <typename T>
+inline T* rotate (T* first, T* middle, T* last)
+{
+ rotate_fast (first, middle, last);
+ return (first);
+}
+
+
+/// \brief Exchanges ranges [first, middle) and [middle, last) into \p result.
+/// \ingroup MutatingAlgorithms
+///
+template <typename ForwardIterator, typename OutputIterator>
+inline OutputIterator rotate_copy (ForwardIterator first, ForwardIterator middle, ForwardIterator last, OutputIterator result)
+{
+ return (copy (first, middle, copy (middle, last, result)));
+}
+
+/// \brief Combines two sorted ranges.
+/// \ingroup SortingAlgorithms
+///
+template <typename InputIterator1, typename InputIterator2, typename OutputIterator>
+OutputIterator merge (InputIterator1 first1, InputIterator1 last1,
+ InputIterator2 first2, InputIterator2 last2, OutputIterator result)
+{
+ for (; first1 != last1 && first2 != last2; ++result) {
+ if (*first1 < *first2)
+ *result = *first1++;
+ else
+ *result = *first2++;
+ }
+ if (first1 < last1)
+ return (copy (first1, last1, result));
+ else
+ return (copy (first2, last2, result));
+}
+
+/// Combines two sorted ranges from the same container.
+/// \ingroup SortingAlgorithms
+///
+template <typename InputIterator>
+void inplace_merge (InputIterator first, InputIterator middle, InputIterator last)
+{
+ for (; middle != last; ++first) {
+ while (*first < *middle)
+ ++ first;
+ reverse (first, middle);
+ reverse (first, ++middle);
+ }
+}
+
+/// Remove_copy copies elements that are not equal to value from the range
+/// [first, last) to a range beginning at result. The return value is the
+/// end of the resulting range. This operation is stable, meaning that the
+/// relative order of the elements that are copied is the same as in the
+/// range [first, last).
+/// \ingroup MutatingAlgorithms
+///
+template <typename InputIterator, typename OutputIterator, typename T>
+OutputIterator remove_copy (InputIterator first, InputIterator last, OutputIterator result, const T& value)
+{
+ for (; first != last; ++first) {
+ if (!(*first == value)) {
+ *result = *first;
+ ++ result;
+ }
+ }
+ return (result);
+}
+
+/// Remove_copy copies elements pointed to by iterators in [rfirst, rlast)
+/// from the range [first, last) to a range beginning at result. The return
+/// value is the end of the resulting range. This operation is stable, meaning
+/// that the relative order of the elements that are copied is the same as in the
+/// range [first, last). Range [rfirst, rlast) is assumed to be sorted.
+/// This algorithm is a uSTL extension.
+/// \ingroup MutatingAlgorithms
+///
+template <typename InputIterator, typename OutputIterator, typename RInputIterator>
+OutputIterator remove_copy (InputIterator first, InputIterator last, OutputIterator result, RInputIterator rfirst, RInputIterator rlast)
+{
+ for (; first != last; ++first) {
+ while (rfirst != rlast && *rfirst < first)
+ ++ rfirst;
+ if (rfirst == rlast || first != *rfirst) {
+ *result = *first;
+ ++ result;
+ }
+ }
+ return (result);
+}
+
+/// Remove removes from the range [first, last) all elements that are equal to
+/// value. That is, remove returns an iterator new_last such that the range
+/// [first, new_last) contains no elements equal to value. [1] The iterators
+/// in the range [new_last, last) are all still dereferenceable, but the
+/// elements that they point to are unspecified. Remove is stable, meaning
+/// that the relative order of elements that are not equal to value is
+/// unchanged.
+/// \ingroup MutatingAlgorithms
+///
+template <typename ForwardIterator, typename T>
+inline ForwardIterator remove (ForwardIterator first, ForwardIterator last, const T& value)
+{
+ return (remove_copy (first, last, first, value));
+}
+
+/// Unique_copy copies elements from the range [first, last) to a range
+/// beginning with result, except that in a consecutive group of duplicate
+/// elements only the first one is copied. The return value is the end of
+/// the range to which the elements are copied. This behavior is similar
+/// to the Unix filter uniq.
+/// \ingroup MutatingAlgorithms
+///
+template <typename InputIterator, typename OutputIterator>
+OutputIterator unique_copy (InputIterator first, InputIterator last, OutputIterator result)
+{
+ if (first != last) {
+ *result = *first;
+ while (++first != last)
+ if (!(*first == *result))
+ *++result = *first;
+ ++ result;
+ }
+ return (result);
+}
+
+/// Every time a consecutive group of duplicate elements appears in the range
+/// [first, last), the algorithm unique removes all but the first element.
+/// That is, unique returns an iterator new_last such that the range [first,
+/// new_last) contains no two consecutive elements that are duplicates.
+/// The iterators in the range [new_last, last) are all still dereferenceable,
+/// but the elements that they point to are unspecified. Unique is stable,
+/// meaning that the relative order of elements that are not removed is
+/// unchanged.
+/// \ingroup MutatingAlgorithms
+///
+template <typename ForwardIterator>
+inline ForwardIterator unique (ForwardIterator first, ForwardIterator last)
+{
+ return (unique_copy (first, last, first));
+}
+
+/// Returns the furthermost iterator i in [first, last) such that,
+/// for every iterator j in [first, i), *j < value
+/// Assumes the range is sorted.
+/// \ingroup SearchingAlgorithms
+///
+template <typename ForwardIterator, typename LessThanComparable>
+ForwardIterator lower_bound (ForwardIterator first, ForwardIterator last, const LessThanComparable& value)
+{
+ ForwardIterator mid;
+ while (first != last) {
+ mid = advance (first, distance (first,last) / 2);
+ if (*mid < value)
+ first = mid + 1;
+ else
+ last = mid;
+ }
+ return (first);
+}
+
+/// Performs a binary search inside the sorted range.
+/// \ingroup SearchingAlgorithms
+///
+template <typename ForwardIterator, typename LessThanComparable>
+inline bool binary_search (ForwardIterator first, ForwardIterator last, const LessThanComparable& value)
+{
+ ForwardIterator found = lower_bound (first, last, value);
+ return (found != last && !(value < *found));
+}
+
+/// Returns the furthermost iterator i in [first,last) such that for
+/// every iterator j in [first,i), value < *j is false.
+/// \ingroup SearchingAlgorithms
+///
+template <typename ForwardIterator, typename LessThanComparable>
+ForwardIterator upper_bound (ForwardIterator first, ForwardIterator last, const LessThanComparable& value)
+{
+ ForwardIterator mid;
+ while (first != last) {
+ mid = advance (first, distance (first,last) / 2);
+ if (value < *mid)
+ last = mid;
+ else
+ first = mid + 1;
+ }
+ return (last);
+}
+
+/// Returns pair<lower_bound,upper_bound>
+/// \ingroup SearchingAlgorithms
+///
+template <typename ForwardIterator, typename LessThanComparable>
+inline pair<ForwardIterator,ForwardIterator> equal_range (ForwardIterator first, ForwardIterator last, const LessThanComparable& value)
+{
+ pair<ForwardIterator,ForwardIterator> rv;
+ rv.second = rv.first = lower_bound (first, last, value);
+ while (rv.second != last && !(value < *(rv.second)))
+ ++ rv.second;
+ return (rv);
+}
+
+/// Randomly permute the elements of the container.
+/// \ingroup GeneratorAlgorithms
+///
+template <typename RandomAccessIterator>
+void random_shuffle (RandomAccessIterator first, RandomAccessIterator last)
+{
+ for (; first != last; ++ first)
+ iter_swap (first, first + (rand() % distance (first, last)));
+}
+
+/// \brief Generic compare function adaptor to pass to qsort
+/// \ingroup FunctorObjects
+template <typename ConstPointer, typename Compare>
+int qsort_adapter (const void* p1, const void* p2)
+{
+ ConstPointer i1 = reinterpret_cast<ConstPointer>(p1);
+ ConstPointer i2 = reinterpret_cast<ConstPointer>(p2);
+ Compare comp;
+ return (comp (*i1, *i2) ? -1 : (comp (*i2, *i1) ? 1 : 0));
+}
+
+/// Sorts the container
+/// \ingroup SortingAlgorithms
+/// \ingroup PredicateAlgorithms
+///
+template <typename RandomAccessIterator, typename Compare>
+void sort (RandomAccessIterator first, RandomAccessIterator last, Compare)
+{
+ typedef typename iterator_traits<RandomAccessIterator>::value_type value_type;
+ typedef typename iterator_traits<RandomAccessIterator>::const_pointer const_pointer;
+ qsort (first, distance (first, last), sizeof(value_type),
+ &qsort_adapter<const_pointer, Compare>);
+}
+
+/// Sorts the container
+/// \ingroup SortingAlgorithms
+///
+template <typename RandomAccessIterator>
+inline void sort (RandomAccessIterator first, RandomAccessIterator last)
+{
+ typedef typename iterator_traits<RandomAccessIterator>::value_type value_type;
+ sort (first, last, less<value_type>());
+}
+
+/// Sorts the container preserving order of equal elements.
+/// \ingroup SortingAlgorithms
+/// \ingroup PredicateAlgorithms
+///
+template <typename RandomAccessIterator, typename Compare>
+void stable_sort (RandomAccessIterator first, RandomAccessIterator last, Compare comp)
+{
+ for (RandomAccessIterator j, i = first; ++i < last;) { // Insertion sort
+ for (j = i; j-- > first && comp(*i, *j);) ;
+ if (++j != i) rotate (j, i, i + 1);
+ }
+}
+
+/// Sorts the container
+/// \ingroup SortingAlgorithms
+///
+template <typename RandomAccessIterator>
+inline void stable_sort (RandomAccessIterator first, RandomAccessIterator last)
+{
+ typedef typename iterator_traits<RandomAccessIterator>::value_type value_type;
+ stable_sort (first, last, less<value_type>());
+}
+
+/// \brief Searches for the first subsequence [first2,last2) in [first1,last1)
+/// \ingroup SearchingAlgorithms
+template <typename ForwardIterator1, typename ForwardIterator2>
+inline ForwardIterator1 search (ForwardIterator1 first1, ForwardIterator1 last1, ForwardIterator2 first2, ForwardIterator2 last2)
+{
+ typedef typename iterator_traits<ForwardIterator1>::value_type value_type;
+ return (search (first1, last1, first2, last2, equal_to<value_type>()));
+}
+
+/// \brief Searches for the last subsequence [first2,last2) in [first1,last1)
+/// \ingroup SearchingAlgorithms
+template <typename ForwardIterator1, typename ForwardIterator2>
+inline ForwardIterator1 find_end (ForwardIterator1 first1, ForwardIterator1 last1, ForwardIterator2 first2, ForwardIterator2 last2)
+{
+ typedef typename iterator_traits<ForwardIterator1>::value_type value_type;
+ return (find_end (first1, last1, first2, last2, equal_to<value_type>()));
+}
+
+/// \brief Searches for the first occurence of \p count \p values in [first, last)
+/// \ingroup SearchingAlgorithms
+template <typename Iterator, typename T>
+inline Iterator search_n (Iterator first, Iterator last, size_t count, const T& value)
+{
+ typedef typename iterator_traits<Iterator>::value_type value_type;
+ return (search_n (first, last, count, value, equal_to<value_type>()));
+}
+
+/// \brief Searches [first1,last1) for the first occurrence of an element from [first2,last2)
+/// \ingroup SearchingAlgorithms
+template <typename InputIterator, typename ForwardIterator>
+inline InputIterator find_first_of (InputIterator first1, InputIterator last1, ForwardIterator first2, ForwardIterator last2)
+{
+ typedef typename iterator_traits<InputIterator>::value_type value_type;
+ return (find_first_of (first1, last1, first2, last2, equal_to<value_type>()));
+}
+
+/// \brief Returns true if [first2,last2) is a subset of [first1,last1)
+/// \ingroup ConditionAlgorithms
+/// \ingroup SetAlgorithms
+template <typename InputIterator1, typename InputIterator2>
+inline bool includes (InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, InputIterator2 last2)
+{
+ typedef typename iterator_traits<InputIterator1>::value_type value_type;
+ return (includes (first1, last1, first2, last2, less<value_type>()));
+}
+
+/// \brief Merges [first1,last1) with [first2,last2)
+///
+/// Result will contain every element that is in either set. If duplicate
+/// elements are present, max(n,m) is placed in the result.
+///
+/// \ingroup SetAlgorithms
+template <typename InputIterator1, typename InputIterator2, typename OutputIterator>
+inline OutputIterator set_union (InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, InputIterator2 last2, OutputIterator result)
+{
+ typedef typename iterator_traits<InputIterator1>::value_type value_type;
+ return (set_union (first1, last1, first2, last2, result, less<value_type>()));
+}
+
+/// \brief Creates a set containing elements shared by the given ranges.
+/// \ingroup SetAlgorithms
+template <typename InputIterator1, typename InputIterator2, typename OutputIterator>
+inline OutputIterator set_intersection (InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, InputIterator2 last2, OutputIterator result)
+{
+ typedef typename iterator_traits<InputIterator1>::value_type value_type;
+ return (set_intersection (first1, last1, first2, last2, result, less<value_type>()));
+}
+
+/// \brief Removes from [first1,last1) elements present in [first2,last2)
+/// \ingroup SetAlgorithms
+template <typename InputIterator1, typename InputIterator2, typename OutputIterator>
+inline OutputIterator set_difference (InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, InputIterator2 last2, OutputIterator result)
+{
+ typedef typename iterator_traits<InputIterator1>::value_type value_type;
+ return (set_difference (first1, last1, first2, last2, result, less<value_type>()));
+}
+
+/// \brief Performs union of sets A-B and B-A.
+/// \ingroup SetAlgorithms
+template <typename InputIterator1, typename InputIterator2, typename OutputIterator>
+inline OutputIterator set_symmetric_difference (InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, InputIterator2 last2, OutputIterator result)
+{
+ typedef typename iterator_traits<InputIterator1>::value_type value_type;
+ return (set_symmetric_difference (first1, last1, first2, last2, result, less<value_type>()));
+}
+
+/// \brief Returns true if the given range is sorted.
+/// \ingroup ConditionAlgorithms
+template <typename ForwardIterator>
+inline bool is_sorted (ForwardIterator first, ForwardIterator last)
+{
+ typedef typename iterator_traits<ForwardIterator>::value_type value_type;
+ return (is_sorted (first, last, less<value_type>()));
+}
+
+/// \brief Compares two given containers like strcmp compares strings.
+/// \ingroup ConditionAlgorithms
+template <typename InputIterator1, typename InputIterator2>
+inline bool lexicographical_compare (InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, InputIterator2 last2)
+{
+ typedef typename iterator_traits<InputIterator1>::value_type value_type;
+ return (lexicographical_compare (first1, last1, first2, last2, less<value_type>()));
+}
+
+/// \brief Creates the next lexicographical permutation of [first,last).
+/// Returns false if no further permutations can be created.
+/// \ingroup GeneratorAlgorithms
+template <typename BidirectionalIterator>
+inline bool next_permutation (BidirectionalIterator first, BidirectionalIterator last)
+{
+ typedef typename iterator_traits<BidirectionalIterator>::value_type value_type;
+ return (next_permutation (first, last, less<value_type>()));
+}
+
+/// \brief Creates the previous lexicographical permutation of [first,last).
+/// Returns false if no further permutations can be created.
+/// \ingroup GeneratorAlgorithms
+template <typename BidirectionalIterator>
+inline bool prev_permutation (BidirectionalIterator first, BidirectionalIterator last)
+{
+ typedef typename iterator_traits<BidirectionalIterator>::value_type value_type;
+ return (prev_permutation (first, last, less<value_type>()));
+}
+
+/// \brief Returns iterator to the max element in [first,last)
+/// \ingroup SearchingAlgorithms
+template <typename ForwardIterator>
+inline ForwardIterator max_element (ForwardIterator first, ForwardIterator last)
+{
+ typedef typename iterator_traits<ForwardIterator>::value_type value_type;
+ return (max_element (first, last, less<value_type>()));
+}
+
+/// \brief Returns iterator to the min element in [first,last)
+/// \ingroup SearchingAlgorithms
+template <typename ForwardIterator>
+inline ForwardIterator min_element (ForwardIterator first, ForwardIterator last)
+{
+ typedef typename iterator_traits<ForwardIterator>::value_type value_type;
+ return (min_element (first, last, less<value_type>()));
+}
+
+/// \brief Makes [first,middle) a part of the sorted array.
+/// Contents of [middle,last) is undefined. This implementation just calls stable_sort.
+/// \ingroup SortingAlgorithms
+template <typename RandomAccessIterator>
+inline void partial_sort (RandomAccessIterator first, RandomAccessIterator middle, RandomAccessIterator last)
+{
+ typedef typename iterator_traits<RandomAccessIterator>::value_type value_type;
+ partial_sort (first, middle, last, less<value_type>());
+}
+
+/// \brief Puts \p nth element into its sorted position.
+/// In this implementation, the entire array is sorted. I can't think of any
+/// use for it where the time gained would be useful.
+/// \ingroup SortingAlgorithms
+/// \ingroup SearchingAlgorithms
+///
+template <typename RandomAccessIterator>
+inline void nth_element (RandomAccessIterator first, RandomAccessIterator nth, RandomAccessIterator last)
+{
+ partial_sort (first, nth, last);
+}
+
+/// \brief Like partial_sort, but outputs to [result_first,result_last)
+/// \ingroup SortingAlgorithms
+template <typename InputIterator, typename RandomAccessIterator>
+inline RandomAccessIterator partial_sort_copy (InputIterator first, InputIterator last, RandomAccessIterator result_first, RandomAccessIterator result_last)
+{
+ typedef typename iterator_traits<InputIterator>::value_type value_type;
+ return (partial_sort_copy (first, last, result_first, result_last, less<value_type>()));
+}
+
+} // namespace ustl
+
+#endif
diff --git a/ecos/packages/language/cxx/ustl/current/include/ustl/ualgobase.h b/ecos/packages/language/cxx/ustl/current/include/ustl/ualgobase.h
new file mode 100644
index 0000000..bcad75a
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/include/ustl/ualgobase.h
@@ -0,0 +1,321 @@
+// This file is part of the uSTL library, an STL implementation.
+//
+// Copyright (c) 2005 by Mike Sharov <msharov@users.sourceforge.net>
+// This file is free software, distributed under the MIT License.
+
+#ifndef UALGOBASE_H_683A0BE77546133C4CE0E3622CFAA2EB
+#define UALGOBASE_H_683A0BE77546133C4CE0E3622CFAA2EB
+
+#include "uutility.h"
+#include <string.h>
+
+namespace ustl {
+
+/// Assigns the contents of a to b and the contents of b to a.
+/// This is used as a primitive operation by many other algorithms.
+/// \ingroup SwapAlgorithms
+///
+template <typename Assignable>
+inline void swap (Assignable& a, Assignable& b)
+{
+ Assignable tmp = a;
+ a = b;
+ b = tmp;
+}
+
+/// Equivalent to swap (*a, *b)
+/// \ingroup SwapAlgorithms
+///
+template <typename Iterator>
+inline void iter_swap (Iterator a, Iterator b)
+{
+ swap (*a, *b);
+}
+
+/// Copy copies elements from the range [first, last) to the range
+/// [result, result + (last - first)). That is, it performs the assignments
+/// *result = *first, *(result + 1) = *(first + 1), and so on. [1] Generally,
+/// for every integer n from 0 to last - first, copy performs the assignment
+/// *(result + n) = *(first + n). Assignments are performed in forward order,
+/// i.e. in order of increasing n.
+/// \ingroup MutatingAlgorithms
+///
+template <typename InputIterator, typename OutputIterator>
+inline OutputIterator copy (InputIterator first, InputIterator last, OutputIterator result)
+{
+ for (; first != last; ++result, ++first)
+ *result = *first;
+ return (result);
+}
+
+/// Copy_n copies elements from the range [first, first + n) to the range
+/// [result, result + n). That is, it performs the assignments
+/// *result = *first, *(result + 1) = *(first + 1), and so on. Generally,
+/// for every integer i from 0 up to (but not including) n, copy_n performs
+/// the assignment *(result + i) = *(first + i). Assignments are performed
+/// in forward order, i.e. in order of increasing n.
+/// \ingroup MutatingAlgorithms
+///
+template <typename InputIterator, typename OutputIterator>
+inline OutputIterator copy_n (InputIterator first, size_t count, OutputIterator result)
+{
+ for (; count; --count, ++result, ++first)
+ *result = *first;
+ return (result);
+}
+
+/// \brief Copy copies elements from the range (last, first] to result.
+/// \ingroup MutatingAlgorithms
+/// Copies elements starting at last, decrementing both last and result.
+///
+template <typename InputIterator, typename OutputIterator>
+inline OutputIterator copy_backward (InputIterator first, InputIterator last, OutputIterator result)
+{
+ while (first != last)
+ *--result = *--last;
+ return (result);
+}
+
+/// For_each applies the function object f to each element in the range
+/// [first, last); f's return value, if any, is ignored. Applications are
+/// performed in forward order, i.e. from first to last. For_each returns
+/// the function object after it has been applied to each element.
+/// \ingroup MutatingAlgorithms
+///
+template <typename InputIterator, typename UnaryFunction>
+inline UnaryFunction for_each (InputIterator first, InputIterator last, UnaryFunction f)
+{
+ for (; first != last; ++first)
+ f (*first);
+ return (f);
+}
+
+/// Fill assigns the value value to every element in the range [first, last).
+/// That is, for every iterator i in [first, last),
+/// it performs the assignment *i = value.
+/// \ingroup GeneratorAlgorithms
+///
+template <typename ForwardIterator, typename T>
+inline void fill (ForwardIterator first, ForwardIterator last, const T& value)
+{
+ for (; first != last; ++first)
+ *first = value;
+}
+
+/// Fill_n assigns the value value to every element in the range
+/// [first, first+count). That is, for every iterator i in [first, first+count),
+/// it performs the assignment *i = value. The return value is first + count.
+/// \ingroup GeneratorAlgorithms
+///
+template <typename OutputIterator, typename T>
+inline OutputIterator fill_n (OutputIterator first, size_t count, const T& value)
+{
+ for (; count; --count, ++first)
+ *first = value;
+ return (first);
+}
+
+#if CPU_HAS_MMX
+extern "C" void copy_n_fast (const void* src, size_t count, void* dest) throw();
+#else
+inline void copy_n_fast (const void* src, size_t count, void* dest) throw()
+ { memcpy (dest, src, count); }
+#endif
+#if __i386__ || __x86_64__
+extern "C" void copy_backward_fast (const void* first, const void* last, void* result) throw();
+#else
+inline void copy_backward_fast (const void* first, const void* last, void* result) throw()
+{
+ const size_t nBytes (distance (first, last));
+ memmove (advance (result, -nBytes), first, nBytes);
+}
+#endif
+extern "C" void fill_n8_fast (uint8_t* dest, size_t count, uint8_t v) throw();
+extern "C" void fill_n16_fast (uint16_t* dest, size_t count, uint16_t v) throw();
+extern "C" void fill_n32_fast (uint32_t* dest, size_t count, uint32_t v) throw();
+extern "C" void rotate_fast (void* first, void* middle, void* last) throw();
+
+#if __GNUC__ >= 4
+/// \brief Computes the number of 1 bits in a number.
+/// \ingroup ConditionAlgorithms
+inline size_t popcount (uint32_t v) { return (__builtin_popcount (v)); }
+#if HAVE_INT64_T
+inline size_t popcount (uint64_t v) { return (__builtin_popcountll (v)); }
+#endif
+#else
+size_t popcount (uint32_t v);
+#if HAVE_INT64_T
+size_t popcount (uint64_t v);
+#endif // HAVE_INT64_T
+#endif // __GNUC__
+
+//----------------------------------------------------------------------
+// Optimized versions for standard types
+//----------------------------------------------------------------------
+
+#if WANT_UNROLLED_COPY
+
+template <typename T>
+inline T* unrolled_copy (const T* first, size_t count, T* result)
+{
+ copy_n_fast (first, count * sizeof(T), result);
+ return (advance (result, count));
+}
+
+template <>
+inline uint8_t* copy_backward (const uint8_t* first, const uint8_t* last, uint8_t* result)
+{
+ copy_backward_fast (first, last, result);
+ return (result);
+}
+
+template <typename T>
+inline T* unrolled_fill (T* result, size_t count, T value)
+{
+ for (; count; --count, ++result)
+ *result = value;
+ return (result);
+}
+template <> inline uint8_t* unrolled_fill (uint8_t* result, size_t count, uint8_t value)
+ { fill_n8_fast (result, count, value); return (advance (result, count)); }
+template <> inline uint16_t* unrolled_fill (uint16_t* result, size_t count, uint16_t value)
+ { fill_n16_fast (result, count, value); return (advance (result, count)); }
+template <> inline uint32_t* unrolled_fill (uint32_t* result, size_t count, uint32_t value)
+ { fill_n32_fast (result, count, value); return (advance (result, count)); }
+template <> inline float* unrolled_fill (float* result, size_t count, float value)
+ { fill_n32_fast ((uint32_t*) result, count, *noalias_cast<uint32_t*>(&value)); return (advance (result, count)); }
+
+#if CPU_HAS_MMX
+#define UNROLLED_COPY_SPECIALIZATION(type) \
+template <> inline type* copy (const type* first, const type* last, type* result) \
+{ return (unrolled_copy (first, distance (first, last), result)); } \
+template <> inline type* copy_n (const type* first, size_t count, type* result) \
+{ return (unrolled_copy (first, count, result)); }
+#define UNROLLED_FILL_SPECIALIZATION(type) \
+template <> inline void fill (type* first, type* last, const type& value) \
+{ unrolled_fill (first, distance (first, last), value); } \
+template <> inline type* fill_n (type* first, size_t count, const type& value) \
+{ return (unrolled_fill (first, count, value)); }
+UNROLLED_COPY_SPECIALIZATION(uint8_t)
+UNROLLED_FILL_SPECIALIZATION(uint8_t)
+UNROLLED_COPY_SPECIALIZATION(uint16_t)
+UNROLLED_FILL_SPECIALIZATION(uint16_t)
+UNROLLED_COPY_SPECIALIZATION(uint32_t)
+UNROLLED_FILL_SPECIALIZATION(uint32_t)
+UNROLLED_COPY_SPECIALIZATION(float)
+UNROLLED_FILL_SPECIALIZATION(float)
+#undef UNROLLED_FILL_SPECIALIZATION
+#undef UNROLLED_COPY_SPECIALIZATION
+#endif // WANT_UNROLLED_COPY
+#endif // CPU_HAS_MMX
+
+// Specializations for void* and char*, aliasing the above optimized versions.
+//
+// All these need duplication with const and non-const arguments, since
+// otherwise the compiler will default to the unoptimized version for
+// pointers not const in the caller's context, such as local variables.
+// These are all inline, but they sure slow down compilation... :(
+//
+#define COPY_ALIAS_FUNC(ctype, type, alias_type) \
+template <> inline type* copy (ctype* first, ctype* last, type* result) \
+{ return ((type*) copy ((const alias_type*) first, (const alias_type*) last, (alias_type*) result)); }
+#if WANT_UNROLLED_COPY
+#if HAVE_THREE_CHAR_TYPES
+COPY_ALIAS_FUNC(const char, char, uint8_t)
+COPY_ALIAS_FUNC(char, char, uint8_t)
+#endif
+COPY_ALIAS_FUNC(const int8_t, int8_t, uint8_t)
+COPY_ALIAS_FUNC(int8_t, int8_t, uint8_t)
+COPY_ALIAS_FUNC(uint8_t, uint8_t, uint8_t)
+COPY_ALIAS_FUNC(const int16_t, int16_t, uint16_t)
+COPY_ALIAS_FUNC(int16_t, int16_t, uint16_t)
+COPY_ALIAS_FUNC(uint16_t, uint16_t, uint16_t)
+#if CPU_HAS_MMX || (SIZE_OF_LONG > 4)
+COPY_ALIAS_FUNC(const int32_t, int32_t, uint32_t)
+COPY_ALIAS_FUNC(int32_t, int32_t, uint32_t)
+COPY_ALIAS_FUNC(uint32_t, uint32_t, uint32_t)
+#endif
+#endif
+COPY_ALIAS_FUNC(const void, void, uint8_t)
+COPY_ALIAS_FUNC(void, void, uint8_t)
+#undef COPY_ALIAS_FUNC
+#define COPY_BACKWARD_ALIAS_FUNC(ctype, type, alias_type) \
+template <> inline type* copy_backward (ctype* first, ctype* last, type* result) \
+{ return ((type*) copy_backward ((const alias_type*) first, (const alias_type*) last, (alias_type*) result)); }
+#if WANT_UNROLLED_COPY
+#if HAVE_THREE_CHAR_TYPES
+COPY_BACKWARD_ALIAS_FUNC(char, char, uint8_t)
+#endif
+COPY_BACKWARD_ALIAS_FUNC(uint8_t, uint8_t, uint8_t)
+COPY_BACKWARD_ALIAS_FUNC(int8_t, int8_t, uint8_t)
+COPY_BACKWARD_ALIAS_FUNC(uint16_t, uint16_t, uint8_t)
+COPY_BACKWARD_ALIAS_FUNC(const uint16_t, uint16_t, uint8_t)
+COPY_BACKWARD_ALIAS_FUNC(int16_t, int16_t, uint8_t)
+COPY_BACKWARD_ALIAS_FUNC(const int16_t, int16_t, uint8_t)
+#endif
+COPY_BACKWARD_ALIAS_FUNC(void, void, uint8_t)
+COPY_BACKWARD_ALIAS_FUNC(const void, void, uint8_t)
+#undef COPY_BACKWARD_ALIAS_FUNC
+#define FILL_ALIAS_FUNC(type, alias_type, v_type) \
+template <> inline void fill (type* first, type* last, const v_type& value) \
+{ fill ((alias_type*) first, (alias_type*) last, (const alias_type) value); }
+FILL_ALIAS_FUNC(void, uint8_t, char)
+FILL_ALIAS_FUNC(void, uint8_t, uint8_t)
+#if WANT_UNROLLED_COPY
+#if HAVE_THREE_CHAR_TYPES
+FILL_ALIAS_FUNC(char, uint8_t, char)
+FILL_ALIAS_FUNC(char, uint8_t, uint8_t)
+#endif
+FILL_ALIAS_FUNC(int8_t, uint8_t, int8_t)
+FILL_ALIAS_FUNC(int16_t, uint16_t, int16_t)
+#if CPU_HAS_MMX || (SIZE_OF_LONG > 4)
+FILL_ALIAS_FUNC(int32_t, uint32_t, int32_t)
+#endif
+#endif
+#undef FILL_ALIAS_FUNC
+#define COPY_N_ALIAS_FUNC(ctype, type, alias_type) \
+template <> inline type* copy_n (ctype* first, size_t count, type* result) \
+{ return ((type*) copy_n ((const alias_type*) first, count, (alias_type*) result)); }
+COPY_N_ALIAS_FUNC(const void, void, uint8_t)
+COPY_N_ALIAS_FUNC(void, void, uint8_t)
+#if WANT_UNROLLED_COPY
+#if HAVE_THREE_CHAR_TYPES
+COPY_N_ALIAS_FUNC(const char, char, uint8_t)
+COPY_N_ALIAS_FUNC(char, char, uint8_t)
+#endif
+COPY_N_ALIAS_FUNC(int8_t, int8_t, uint8_t)
+COPY_N_ALIAS_FUNC(uint8_t, uint8_t, uint8_t)
+COPY_N_ALIAS_FUNC(const int8_t, int8_t, uint8_t)
+COPY_N_ALIAS_FUNC(int16_t, int16_t, uint16_t)
+COPY_N_ALIAS_FUNC(uint16_t, uint16_t, uint16_t)
+COPY_N_ALIAS_FUNC(const int16_t, int16_t, uint16_t)
+#if CPU_HAS_MMX || (SIZE_OF_LONG > 4)
+COPY_N_ALIAS_FUNC(int32_t, int32_t, uint32_t)
+COPY_N_ALIAS_FUNC(uint32_t, uint32_t, uint32_t)
+COPY_N_ALIAS_FUNC(const int32_t, int32_t, uint32_t)
+#endif
+#endif
+#undef COPY_N_ALIAS_FUNC
+#define FILL_N_ALIAS_FUNC(type, alias_type, v_type) \
+template <> inline type* fill_n (type* first, size_t n, const v_type& value) \
+{ return ((type*) fill_n ((alias_type*) first, n, (const alias_type) value)); }
+FILL_N_ALIAS_FUNC(void, uint8_t, char)
+FILL_N_ALIAS_FUNC(void, uint8_t, uint8_t)
+#if WANT_UNROLLED_COPY
+#if HAVE_THREE_CHAR_TYPES
+FILL_N_ALIAS_FUNC(char, uint8_t, char)
+FILL_N_ALIAS_FUNC(char, uint8_t, uint8_t)
+#endif
+FILL_N_ALIAS_FUNC(int8_t, uint8_t, int8_t)
+FILL_N_ALIAS_FUNC(int16_t, uint16_t, int16_t)
+#if CPU_HAS_MMX || (SIZE_OF_LONG > 4)
+FILL_N_ALIAS_FUNC(int32_t, uint32_t, int32_t)
+#endif
+#endif
+#undef FILL_N_ALIAS_FUNC
+
+extern const char _FmtPrtChr[2][8];
+
+} // namespace ustl
+
+#endif
diff --git a/ecos/packages/language/cxx/ustl/current/include/ustl/ubitset.h b/ecos/packages/language/cxx/ustl/current/include/ustl/ubitset.h
new file mode 100644
index 0000000..5e96ea1
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/include/ustl/ubitset.h
@@ -0,0 +1,130 @@
+// This file is part of the uSTL library, an STL implementation.
+//
+// Copyright (c) 2005 by Mike Sharov <msharov@users.sourceforge.net>
+// This file is free software, distributed under the MIT License.
+
+#ifndef UBITSET_H_7B6450EC1400CBA45DCE0127739F82EE
+#define UBITSET_H_7B6450EC1400CBA45DCE0127739F82EE
+
+#include "ustring.h"
+#include "ufunction.h"
+
+namespace ustl {
+
+typedef uint32_t bitset_value_type;
+
+void convert_to_bitstring (const bitset_value_type* v, size_t n, string& buf);
+void convert_from_bitstring (const string& buf, bitset_value_type* v, size_t n);
+
+/// \class bitset ubitset.h ustl.h
+/// \ingroup Sequences
+///
+/// \brief bitset is a fixed-size block of memory with addressable bits.
+///
+/// Normally used for state flags; allows setting and unsetting of individual
+/// bits as well as bitwise operations on the entire set. The interface is
+/// most like that of unsigned integers, and is intended to be used as such.
+/// If you were using begin() and end() functions in STL's bitset, you would
+/// not be able to do the same thing here, because those functions return
+/// host type iterators, not bits.
+///
+template <size_t Size>
+class bitset {
+public:
+ typedef bitset_value_type value_type;
+ typedef value_type* pointer;
+ typedef const value_type* const_pointer;
+ typedef pointer iterator;
+ typedef const_pointer const_iterator;
+ typedef size_t difference_type;
+ typedef size_t size_type;
+ typedef const bitset<Size>& rcself_t;
+private:
+ static const size_t s_WordBits = BitsInType (value_type);
+ static const size_t s_nWords = Size / s_WordBits + ((Size % s_WordBits) != 0);
+ static const size_t s_nBits = s_nWords * s_WordBits;
+private:
+ inline value_type& BitRef (uoff_t n) { assert (n < Size); return (m_Bits [n / s_WordBits]); }
+ inline value_type BitRef (uoff_t n) const { assert (n < Size); return (m_Bits [n / s_WordBits]); }
+ inline value_type Mask (uoff_t n) const { assert (n < Size); return (1 << (n % s_WordBits)); }
+public:
+ inline bitset (value_type v = 0) { fill_n (m_Bits, s_nWords, 0); m_Bits[0] = v; }
+ inline bitset (const string& buf) { convert_from_bitstring (buf, m_Bits, s_nWords); }
+ inline void flip (uoff_t n) { BitRef(n) ^= Mask(n); }
+ inline void reset (void) { fill_n (m_Bits, s_nWords, 0); }
+ inline void clear (void) { fill_n (m_Bits, s_nWords, 0); }
+ inline void set (void) { fill_n (m_Bits, s_nWords, -1); }
+ inline bitset operator~ (void) const { bitset rv (*this); rv.flip(); return (rv); }
+ inline size_type size (void) const { return (Size); }
+ inline size_type capacity (void) const { return (s_nBits); }
+ inline bool test (uoff_t n) const { return (BitRef(n) & Mask(n)); }
+ inline bool operator[] (uoff_t n) const { return (test(n)); }
+ inline const_iterator begin (void) const { return (m_Bits); }
+ inline iterator begin (void) { return (m_Bits); }
+ inline const_iterator end (void) const { return (m_Bits + s_nWords); }
+ inline iterator end (void) { return (m_Bits + s_nWords); }
+ /// Returns the value_type with the equivalent bits. If size() > 1, you'll get only the first BitsInType(value_type) bits.
+ inline value_type to_value (void) const { return (m_Bits[0]); }
+ /// Flips all the bits in the set.
+ inline void flip (void) { transform (begin(), end(), begin(), bitwise_not<value_type>()); }
+ /// Sets or clears bit \p n.
+ inline void set (uoff_t n, bool val = true)
+ {
+ value_type& br (BitRef (n));
+ const value_type mask (Mask (n));
+ const value_type bOn (br | mask), bOff (br & ~mask);
+ br = val ? bOn : bOff;
+ }
+ // Sets the value of the bitrange \p first through \p last to the equivalent number of bits from \p v.
+ inline void set (uoff_t first, uoff_t DebugArg(last), value_type v)
+ {
+ assert (size_t (distance (first, last)) <= s_WordBits && "Bit ranges must be 32 bits or smaller");
+ assert (first / s_WordBits == last / s_WordBits && "Bit ranges can not cross dword (4 byte) boundary");
+ assert ((v & BitMask(value_type,distance(first,last))) == v && "The value is too large to fit in the given bit range");
+ BitRef(first) |= v << (first % s_WordBits);
+ }
+ /// Clears the bit \p n.
+ inline void reset (uoff_t n) { set (n, false); }
+ /// Returns a string with bits MSB "001101001..." LSB.
+ inline string to_string (void) const
+ {
+ string rv (Size, '0');
+ convert_to_bitstring (m_Bits, s_nWords, rv);
+ return (rv);
+ }
+ inline value_type at (uoff_t n) const { return (test(n)); }
+ /// Returns the value in bits \p first through \p last.
+ inline value_type at (uoff_t first, uoff_t last) const
+ {
+ assert (size_t (distance (first, last)) <= s_WordBits && "Bit ranges must be 32 bits or smaller");
+ assert (first / s_WordBits == last / s_WordBits && "Bit ranges can not cross dword (4 byte) boundary");
+ return ((BitRef(first) >> (first % s_WordBits)) & BitMask(value_type,distance(first, last)));
+ }
+ inline bool any (void) const { value_type sum = 0; foreach (const_iterator, i, *this) sum |= *i; return (sum); }
+ inline bool none (void) const { return (!any()); }
+ inline size_t count (void) const { size_t sum = 0; foreach (const_iterator, i, *this) sum += popcount(*i); return (sum); }
+ inline bool operator== (rcself_t v) const
+ { return (s_nWords == 1 ? (m_Bits[0] == v.m_Bits[0]) : equal (begin(), end(), v.begin())); }
+ inline bitset operator& (rcself_t v) const
+ { bitset<Size> result; transform (begin(), end(), v.begin(), result.begin(), bitwise_and<value_type>()); return (result); }
+ inline bitset operator| (rcself_t v) const
+ { bitset<Size> result; transform (begin(), end(), v.begin(), result.begin(), bitwise_or<value_type>()); return (result); }
+ inline bitset operator^ (rcself_t v) const
+ { bitset<Size> result; transform (begin(), end(), v.begin(), result.begin(), bitwise_xor<value_type>()); return (result); }
+ inline rcself_t operator&= (rcself_t v)
+ { transform (begin(), end(), v.begin(), begin(), bitwise_and<value_type>()); return (*this); }
+ inline rcself_t operator|= (rcself_t v)
+ { transform (begin(), end(), v.begin(), begin(), bitwise_or<value_type>()); return (*this); }
+ inline rcself_t operator^= (rcself_t v)
+ { transform (begin(), end(), v.begin(), begin(), bitwise_xor<value_type>()); return (*this); }
+ inline void read (istream& is) { nr_container_read (is, *this); }
+ inline void write (ostream& os) const { nr_container_write (os, *this); }
+ inline void text_write (ostringstream& os) const { os << to_string(); }
+ inline size_t stream_size (void) const { return (sizeof(m_Bits)); }
+private:
+ value_type m_Bits [s_nWords];
+};
+
+} // namespace ustl
+
+#endif
diff --git a/ecos/packages/language/cxx/ustl/current/include/ustl/uctralgo.h b/ecos/packages/language/cxx/ustl/current/include/ustl/uctralgo.h
new file mode 100644
index 0000000..ba97a7b
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/include/ustl/uctralgo.h
@@ -0,0 +1,470 @@
+// This file is part of the uSTL library, an STL implementation.
+//
+// Copyright (c) 2005 by Mike Sharov <msharov@users.sourceforge.net>
+// This file is free software, distributed under the MIT License.
+
+#ifndef UCTRALGO_H_0D1AEDFA74B09791489FE25B1EC644B0
+#define UCTRALGO_H_0D1AEDFA74B09791489FE25B1EC644B0
+
+namespace ustl {
+
+/// Copy copies elements from the range [first, last) to the range
+/// [result, result + (last - first)). That is, it performs the assignments
+/// *result = *first, *(result + 1) = *(first + 1), and so on. [1] Generally,
+/// for every integer n from 0 to last - first, copy performs the assignment
+/// *(result + n) = *(first + n). Assignments are performed in forward order,
+/// i.e. in order of increasing n.
+/// \ingroup MutatingAlgorithms
+///
+template <typename Container, typename OutputIterator>
+inline OutputIterator copy (const Container& ctr, OutputIterator result)
+{
+ return (copy (ctr.begin(), ctr.end(), result));
+}
+
+/// Copy_if copies elements from the range [first, last) to the range
+/// [result, result + (last - first)) if pred(*i) returns true.
+/// \ingroup MutatingAlgorithms
+///
+template <typename Container, typename OutputIterator, typename Predicate>
+inline OutputIterator copy_if (Container& ctr, OutputIterator result, Predicate pred)
+{
+ return (copy_if (ctr.begin(), ctr.end(), result, pred));
+}
+
+/// For_each applies the function object f to each element in the range
+/// [first, last); f's return value, if any, is ignored. Applications are
+/// performed in forward order, i.e. from first to last. For_each returns
+/// the function object after it has been applied to each element.
+/// \ingroup MutatingAlgorithms
+///
+template <typename Container, typename UnaryFunction>
+inline UnaryFunction for_each (Container& ctr, UnaryFunction f)
+{
+ return (for_each (ctr.begin(), ctr.end(), f));
+}
+
+/// For_each applies the function object f to each element in the range
+/// [first, last); f's return value, if any, is ignored. Applications are
+/// performed in forward order, i.e. from first to last. For_each returns
+/// the function object after it has been applied to each element.
+/// \ingroup MutatingAlgorithms
+///
+template <typename Container, typename UnaryFunction>
+inline UnaryFunction for_each (const Container& ctr, UnaryFunction f)
+{
+ return (for_each (ctr.begin(), ctr.end(), f));
+}
+
+/// Returns the first iterator i in the range [first, last) such that
+/// *i == value. Returns last if no such iterator exists.
+/// \ingroup SearchingAlgorithms
+///
+template <typename Container, typename EqualityComparable>
+inline typename Container::const_iterator find (const Container& ctr, const EqualityComparable& value)
+{
+ return (find (ctr.begin(), ctr.end(), value));
+}
+template <typename Container, typename EqualityComparable>
+inline typename Container::iterator find (Container& ctr, const EqualityComparable& value)
+{
+ return (find (ctr.begin(), ctr.end(), value));
+}
+
+/// Returns the first iterator i in the range [first, last) such that
+/// pred(*i) is true. Returns last if no such iterator exists.
+/// \ingroup SearchingAlgorithms
+///
+template <typename Container, typename Predicate>
+inline typename Container::const_iterator find_if (const Container& ctr, Predicate pred)
+{
+ return (find_if (ctr.begin(), ctr.end(), pred));
+}
+template <typename Container, typename Predicate>
+inline typename Container::iterator find_if (Container& ctr, Predicate pred)
+{
+ return (find_if (ctr.begin(), ctr.end(), pred));
+}
+
+/// Count finds the number of elements in [first, last) that are equal
+/// to value. More precisely, the first version of count returns the
+/// number of iterators i in [first, last) such that *i == value.
+/// \ingroup ConditionAlgorithms
+///
+template <typename Container, typename EqualityComparable>
+inline size_t count (const Container& ctr, const EqualityComparable& value)
+{
+ return (count (ctr.begin(), ctr.end(), value));
+}
+
+/// Count_if finds the number of elements in [first, last) that satisfy the
+/// predicate pred. More precisely, the first version of count_if returns the
+/// number of iterators i in [first, last) such that pred(*i) is true.
+/// \ingroup ConditionAlgorithms
+///
+template <typename Container, typename Predicate>
+inline size_t count_if (const Container& ctr, Predicate pred)
+{
+ return (count_if (ctr.begin(), ctr.end(), pred));
+}
+
+/// The first version of transform performs the operation op(*i) for each
+/// iterator i in the range [first, last), and assigns the result of that
+/// operation to *o, where o is the corresponding output iterator. That is,
+/// for each n such that 0 <= n < last - first, it performs the assignment
+/// *(result + n) = op(*(first + n)).
+/// The return value is result + (last - first).
+/// \ingroup MutatingAlgorithms
+///
+template <typename Container, typename UnaryFunction>
+inline void transform (Container& ctr, UnaryFunction op)
+{
+ transform (ctr.begin(), ctr.end(), ctr.begin(), op);
+}
+
+/// The first version of transform performs the operation op(*i) for each
+/// iterator i in the range [first, last), and assigns the result of that
+/// operation to *o, where o is the corresponding output iterator. That is,
+/// for each n such that 0 <= n < last - first, it performs the assignment
+/// *(result + n) = op(*(first + n)).
+/// The return value is result + (last - first).
+/// \ingroup MutatingAlgorithms
+///
+template <typename Container, typename OutputIterator, typename UnaryFunction>
+inline OutputIterator transform (Container& ctr, OutputIterator result, UnaryFunction op)
+{
+ return (transform (ctr.begin(), ctr.end(), result, op));
+}
+
+/// The second version of transform is very similar, except that it uses a
+/// Binary Function instead of a Unary Function: it performs the operation
+/// op(*i1, *i2) for each iterator i1 in the range [first1, last1) and assigns
+/// the result to *o, where i2 is the corresponding iterator in the second
+/// input range and where o is the corresponding output iterator. That is,
+/// for each n such that 0 <= n < last1 - first1, it performs the assignment
+/// *(result + n) = op(*(first1 + n), *(first2 + n).
+/// The return value is result + (last1 - first1).
+/// \ingroup MutatingAlgorithms
+///
+template <typename Container, typename InputIterator, typename OutputIterator, typename BinaryFunction>
+inline OutputIterator transform (Container& ctr, InputIterator first, OutputIterator result, BinaryFunction op)
+{
+ return (transform (ctr.begin(), ctr.end(), first, result, op));
+}
+
+/// Replace replaces every element in the range [first, last) equal to
+/// old_value with new_value. That is: for every iterator i,
+/// if *i == old_value then it performs the assignment *i = new_value.
+/// \ingroup MutatingAlgorithms
+///
+template <typename Container, typename T>
+inline void replace (Container& ctr, const T& old_value, const T& new_value)
+{
+ replace (ctr.begin(), ctr.end(), old_value, new_value);
+}
+
+/// Replace_if replaces every element in the range [first, last) for which
+/// pred returns true with new_value. That is: for every iterator i, if
+/// pred(*i) is true then it performs the assignment *i = new_value.
+/// \ingroup MutatingAlgorithms
+///
+template <typename Container, typename Predicate, typename T>
+inline void replace_if (Container& ctr, Predicate pred, const T& new_value)
+{
+ replace_if (ctr.begin(), ctr.end(), pred, new_value);
+}
+
+/// Replace_copy copies elements from the range [first, last) to the range
+/// [result, result + (last-first)), except that any element equal to old_value
+/// is not copied; new_value is copied instead. More precisely, for every
+/// integer n such that 0 <= n < last-first, replace_copy performs the
+/// assignment *(result+n) = new_value if *(first+n) == old_value, and
+/// *(result+n) = *(first+n) otherwise.
+/// \ingroup MutatingAlgorithms
+///
+template <typename Container, typename OutputIterator, typename T>
+inline OutputIterator replace_copy (const Container& ctr, OutputIterator result, const T& old_value, const T& new_value)
+{
+ return (replace_copy (ctr.begin(), ctr.end(), result, old_value, new_value));
+}
+
+/// Replace_copy_if copies elements from the range [first, last) to the range
+/// [result, result + (last-first)), except that any element for which pred is
+/// true is not copied; new_value is copied instead. More precisely, for every
+/// integer n such that 0 <= n < last-first, replace_copy_if performs the
+/// assignment *(result+n) = new_value if pred(*(first+n)),
+/// and *(result+n) = *(first+n) otherwise.
+/// \ingroup MutatingAlgorithms
+///
+template <typename Container, typename OutputIterator, typename Predicate, typename T>
+inline OutputIterator replace_copy_if (const Container& ctr, OutputIterator result, Predicate pred, const T& new_value)
+{
+ return (replace_copy_if (ctr.begin(), ctr.end(), result, pred, new_value));
+}
+
+/// Fill assigns the value value to every element in the range [first, last).
+/// That is, for every iterator i in [first, last),
+/// it performs the assignment *i = value.
+/// \ingroup GeneratorAlgorithms
+///
+template <typename Container, typename T>
+inline void fill (Container& ctr, const T& value)
+{
+ fill (ctr.begin(), ctr.end(), value);
+}
+
+/// Generate assigns the result of invoking gen, a function object that
+/// takes no arguments, to each element in the range [first, last).
+/// \ingroup GeneratorAlgorithms
+///
+template <typename Container, typename Generator>
+inline void generate (Container& ctr, Generator gen)
+{
+ generate (ctr.begin(), ctr.end(), gen);
+}
+
+/// Randomly permute the elements of the container.
+/// \ingroup GeneratorAlgorithms
+///
+template <typename Container>
+inline void random_shuffle (Container& ctr)
+{
+ random_shuffle (ctr.begin(), ctr.end());
+}
+
+/// Remove_copy copies elements that are not equal to value from the range
+/// [first, last) to a range beginning at result. The return value is the
+/// end of the resulting range. This operation is stable, meaning that the
+/// relative order of the elements that are copied is the same as in the
+/// range [first, last).
+/// \ingroup MutatingAlgorithms
+///
+template <typename Container, typename OutputIterator, typename T>
+inline OutputIterator remove_copy (const Container& ctr, OutputIterator result, const T& value)
+{
+ return (remove_copy (ctr.begin(), ctr.end(), result, value));
+}
+
+/// Remove_copy_if copies elements from the range [first, last) to a range
+/// beginning at result, except that elements for which pred is true are not
+/// copied. The return value is the end of the resulting range. This operation
+/// is stable, meaning that the relative order of the elements that are copied
+/// is the same as in the range [first, last).
+/// \ingroup MutatingAlgorithms
+///
+template <typename Container, typename OutputIterator, typename Predicate>
+inline OutputIterator remove_copy_if (const Container& ctr, OutputIterator result, Predicate pred)
+{
+ return (remove_copy_if (ctr.begin(), ctr.end(), result, pred));
+}
+
+/// Remove removes from the range [first, last) all elements that are equal to
+/// value. That is, remove returns an iterator new_last such that the range
+/// [first, new_last) contains no elements equal to value. Remove is stable,
+/// meaning that the relative order of elements that are not equal to value is
+/// unchanged.
+/// \ingroup MutatingAlgorithms
+///
+template <typename Container, typename T>
+inline void remove (Container& ctr, const T& value)
+{
+ ctr.erase (remove_copy (ctr.begin(), ctr.end(), ctr.begin(), value), ctr.end());
+}
+
+/// Remove removes from the range [first, last) all elements that have an iterator
+/// in range [rfirst, rlast). The range is assumed to be sorted. That is, remove
+/// returns an iterator new_last such that the range [first, new_last) contains
+/// no elements whose iterators are in [rfirst, rlast). Remove is stable,
+/// meaning that the relative order of elements that are not equal to value is
+/// unchanged. This version of the algorithm is a uSTL extension.
+/// \ingroup MutatingAlgorithms
+///
+template <typename Container, typename ForwardIterator>
+inline void remove (Container& ctr, ForwardIterator rfirst, ForwardIterator rlast)
+{
+ ctr.erase (remove_copy (ctr.begin(), ctr.end(), ctr.begin(), rfirst, rlast), ctr.end());
+}
+
+/// Remove_if removes from the range [first, last) every element x such that
+/// pred(x) is true. That is, remove_if returns an iterator new_last such that
+/// the range [first, new_last) contains no elements for which pred is true.
+/// The iterators in the range [new_last, last) are all still dereferenceable,
+/// but the elements that they point to are unspecified. Remove_if is stable,
+/// meaning that the relative order of elements that are not removed is
+/// unchanged.
+/// \ingroup MutatingAlgorithms
+///
+template <typename Container, typename Predicate>
+inline void remove_if (Container& ctr, Predicate pred)
+{
+ ctr.erase (remove_copy_if (ctr.begin(), ctr.end(), ctr.begin(), pred), ctr.end());
+}
+
+/// Unique_copy copies elements from the range [first, last) to a range
+/// beginning with result, except that in a consecutive group of duplicate
+/// elements only the first one is copied. The return value is the end of
+/// the range to which the elements are copied. This behavior is similar
+/// to the Unix filter uniq.
+/// \ingroup MutatingAlgorithms
+///
+template <typename Container, typename OutputIterator>
+inline OutputIterator unique_copy (const Container& ctr, OutputIterator result)
+{
+ return (unique_copy (ctr.begin(), ctr.end(), result));
+}
+
+/// Every time a consecutive group of duplicate elements appears in the range
+/// [first, last), the algorithm unique removes all but the first element.
+/// That is, unique returns an iterator new_last such that the range [first,
+/// new_last) contains no two consecutive elements that are duplicates.
+/// The iterators in the range [new_last, last) are all still dereferenceable,
+/// but the elements that they point to are unspecified. Unique is stable,
+/// meaning that the relative order of elements that are not removed is
+/// unchanged.
+/// \ingroup MutatingAlgorithms
+///
+template <typename Container>
+inline void unique (Container& ctr)
+{
+ ctr.erase (unique_copy (ctr.begin(), ctr.end(), ctr.begin()), ctr.end());
+}
+
+/// Every time a consecutive group of duplicate elements appears in the range
+/// [first, last), the algorithm unique removes all but the first element.
+/// That is, unique returns an iterator new_last such that the range [first,
+/// new_last) contains no two consecutive elements that are duplicates.
+/// The iterators in the range [new_last, last) are all still dereferenceable,
+/// but the elements that they point to are unspecified. Unique is stable,
+/// meaning that the relative order of elements that are not removed is
+/// unchanged.
+/// \ingroup MutatingAlgorithms
+///
+template <typename Container, typename BinaryPredicate>
+inline void unique (Container& ctr, BinaryPredicate binary_pred)
+{
+ ctr.erase (unique_copy (ctr.begin(), ctr.end(), ctr.begin(), binary_pred), ctr.end());
+}
+
+/// Reverse reverses a range.
+/// That is: for every i such that 0 <= i <= (last - first) / 2),
+/// it exchanges *(first + i) and *(last - (i + 1)).
+/// \ingroup MutatingAlgorithms
+///
+template <typename Container>
+inline void reverse (Container& ctr)
+{
+ reverse (ctr.begin(), ctr.end());
+}
+
+/// Exchanges ranges [first, middle) and [middle, last)
+/// \ingroup MutatingAlgorithms
+///
+template <typename Container>
+inline void rotate (Container& ctr, off_t offset)
+{
+ assert (size_t(offset > 0 ? offset : -offset) < ctr.size());
+ if (offset > 0)
+ rotate (ctr.begin(), ctr.end() - offset, ctr.end());
+ else
+ rotate (ctr.begin(), ctr.begin() - offset, ctr.end());
+}
+
+/// Returns the furthermost iterator i in [first, last) such that,
+/// for every iterator j in [first, i), *j < value
+/// Assumes the range is sorted.
+/// \ingroup SearchingAlgorithms
+///
+template <typename Container, typename LessThanComparable>
+inline typename Container::const_iterator lower_bound (const Container& ctr, const LessThanComparable& value)
+{
+ return (lower_bound (ctr.begin(), ctr.end(), value));
+}
+template <typename Container, typename LessThanComparable>
+inline typename Container::iterator lower_bound (Container& ctr, const LessThanComparable& value)
+{
+ return (lower_bound (ctr.begin(), ctr.end(), value));
+}
+
+/// Returns the furthermost iterator i in [first,last) such that for
+/// every iterator j in [first,i), value < *j is false.
+/// \ingroup SearchingAlgorithms
+///
+template <typename Container, typename LessThanComparable>
+inline typename Container::const_iterator upper_bound (const Container& ctr, const LessThanComparable& value)
+{
+ return (upper_bound (ctr.begin(), ctr.end(), value));
+}
+template <typename Container, typename LessThanComparable>
+inline typename Container::iterator upper_bound (Container& ctr, const LessThanComparable& value)
+{
+ return (upper_bound (ctr.begin(), ctr.end(), value));
+}
+
+/// Performs a binary search for \p value.
+/// Assumes the range is sorted.
+/// \ingroup SearchingAlgorithms
+///
+template <typename Container>
+inline bool binary_search (const Container& ctr, const typename Container::value_type& value)
+{
+ return (binary_search (ctr.begin(), ctr.end(), value));
+}
+template <typename Container>
+inline bool binary_search (Container& ctr, const typename Container::value_type& value)
+{
+ return (binary_search (ctr.begin(), ctr.end(), value));
+}
+
+/// Returns pair<lower_bound,upper_bound>
+/// \ingroup SearchingAlgorithms
+///
+template <typename Container, typename LessThanComparable>
+inline pair<typename Container::const_iterator,typename Container::const_iterator> equal_range (const Container& ctr, const LessThanComparable& value)
+{
+ return (equal_range (ctr.begin(), ctr.end(), value));
+}
+template <typename Container, typename LessThanComparable>
+inline pair<typename Container::iterator,typename Container::iterator> equal_range (Container& ctr, const LessThanComparable& value)
+{
+ return (equal_range (ctr.begin(), ctr.end(), value));
+}
+
+/// Sorts the container
+/// \ingroup SortingAlgorithms
+///
+template <typename Container>
+inline void sort (Container& ctr)
+{
+ sort (ctr.begin(), ctr.end());
+}
+
+/// Sorts the container
+/// \ingroup SortingAlgorithms
+///
+template <typename Container, typename Compare>
+inline void sort (Container& ctr, Compare comp)
+{
+ sort (ctr.begin(), ctr.end(), comp);
+}
+
+/// Sorts the container
+/// \ingroup SortingAlgorithms
+///
+template <typename Container>
+inline void stable_sort (Container& ctr)
+{
+ stable_sort (ctr.begin(), ctr.end());
+}
+
+/// Sorts the container
+/// \ingroup SortingAlgorithms
+///
+template <typename Container, typename Compare>
+inline void stable_sort (Container& ctr, Compare comp)
+{
+ stable_sort (ctr.begin(), ctr.end(), comp);
+}
+
+} // namespace ustl
+
+#endif
diff --git a/ecos/packages/language/cxx/ustl/current/include/ustl/uctrstrm.h b/ecos/packages/language/cxx/ustl/current/include/ustl/uctrstrm.h
new file mode 100644
index 0000000..a0b67de
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/include/ustl/uctrstrm.h
@@ -0,0 +1,181 @@
+// This file is part of the uSTL library, an STL implementation.
+//
+// Copyright (c) 2005 by Mike Sharov <msharov@users.sourceforge.net>
+// This file is free software, distributed under the MIT License.
+//
+/// \file uctrstrm.h
+///
+/// \brief Serialization templates for standard containers.
+/// Because containers are templates, a single operator>> is impossible.
+/// Making virtual read/write is also impossible because not all containers
+/// contain serializable elements. Therefore, use the macros in this file.
+
+#ifndef UCTRSTRM_H_75B2C3EA4980DDDC6B6DFFF767A3B7AC
+#define UCTRSTRM_H_75B2C3EA4980DDDC6B6DFFF767A3B7AC
+
+#include "mistream.h"
+#include "sostream.h"
+#include "uiosfunc.h"
+#include "typeinfo.h"
+
+namespace ustl {
+
+//----------------------------------------------------------------------
+// Macros for easily declaring a container streamable.
+//----------------------------------------------------------------------
+
+/// \brief Declares container template \p type streamable.
+///
+/// Use TEMPLATE_TYPE and TEMPLATE_DECL macros to pass in templated
+/// type with commas and the template declaration.
+///
+#define STD_TEMPLATE_CTR_STREAMABLE(type, template_decl) \
+ template_decl \
+ inline istream& operator>> (istream& is, type& v) \
+ { return (container_read (is, v)); } \
+ template_decl \
+ inline ostream& operator<< (ostream& os, const type& v) \
+ { return (container_write (os, v)); } \
+ template_decl \
+ inline ostringstream& operator<< (ostringstream& os, const type& v) \
+ { return (container_text_write (os, v)); } \
+ template_decl \
+ struct object_stream_size<type > { \
+ inline size_t operator()(const type& v) const \
+ { return (container_stream_size (v)); } \
+ };
+
+/// \brief Declares non-resizable container template \p type streamable.
+#define STD_TEMPLATE_NR_CTR_STREAMABLE(type, template_decl) \
+ template_decl \
+ inline istream& operator>> (istream& is, type& v) \
+ { return (nr_container_read (is, v)); } \
+ template_decl \
+ inline ostream& operator<< (ostream& os, const type& v) \
+ { return (nr_container_write (os, v)); } \
+ template_decl \
+ inline ostringstream& operator<< (ostringstream& os, const type& v) \
+ { return (container_text_write (os, v)); } \
+ template_decl \
+ struct object_stream_size<type > { \
+ inline size_t operator()(const type& v) const \
+ { return (nr_container_stream_size (v)); } \
+ };
+
+//----------------------------------------------------------------------
+// Fixed size container serialization.
+//----------------------------------------------------------------------
+
+/// Reads fixed size container \p v from stream \p is.
+template <typename Container>
+inline istream& nr_container_read (istream& is, Container& v)
+{
+ foreach (typename Container::iterator, i, v)
+ is >> *i;
+ return (is);
+}
+
+/// Writes fixed size container \p v into stream \p os.
+template <typename Container>
+inline ostream& nr_container_write (ostream& os, const Container& v)
+{
+ foreach (typename Container::const_iterator, i, v)
+ os << *i;
+ return (os);
+}
+
+/// Computes the stream size of a fixed size standard container.
+template <typename Container>
+inline size_t nr_container_stream_size (const Container& v)
+{
+ typedef typename Container::const_iterator vciter_t;
+ typedef typename iterator_traits<vciter_t>::value_type value_type;
+ if (!v.size())
+ return (0);
+ size_t s = 0, dvs;
+ vciter_t i = v.begin();
+ do {
+ dvs = stream_size_of(*i);
+ s += dvs;
+ } while (++i != v.end() && !__builtin_constant_p(dvs));
+ if (__builtin_constant_p(dvs))
+ s *= v.size();
+ return (s);
+}
+
+//----------------------------------------------------------------------
+// Resizable container serialization.
+//----------------------------------------------------------------------
+
+/// Reads container \p v from stream \p is.
+template <typename Container>
+istream& container_read (istream& is, Container& v)
+{
+ typedef typename Container::value_type value_type;
+ typedef typename Container::iterator iterator;
+ typedef typename Container::written_size_type written_size_type;
+ written_size_type n = 0;
+ is >> n;
+ const size_t expectedSize = n * stream_size_of(value_type());
+ if (!is.verify_remaining ("read", USTL_TYPENAME(v), expectedSize))
+ return (is);
+ if (stream_align_of(NullValue<value_type>()) > stream_align_of(n))
+ is >> ios::talign<value_type>();
+ v.resize (n);
+ nr_container_read (is, v);
+ is >> ios::talign<written_size_type>();
+ return (is);
+}
+
+/// Writes the vector to stream \p os.
+template <typename Container>
+ostream& container_write (ostream& os, const Container& v)
+{
+ typedef typename Container::value_type value_type;
+ typedef typename Container::written_size_type written_size_type;
+ const written_size_type sz (v.size());
+ os << sz;
+ if (stream_align_of(NullValue<value_type>()) > stream_align_of(sz))
+ os << ios::talign<value_type>();
+ nr_container_write (os, v);
+ os << ios::talign<written_size_type>();
+ return (os);
+}
+
+/// Computes the stream size of a standard container.
+template <typename Container>
+size_t container_stream_size (const Container& v)
+{
+ typedef typename Container::value_type value_type;
+ typedef typename Container::written_size_type written_size_type;
+ const written_size_type sz (v.size());
+ size_t sizeSize = stream_size_of (sz);
+ if (stream_align_of(NullValue<value_type>()) > stream_align_of(sz))
+ sizeSize = Align (sizeSize, stream_align_of(NullValue<value_type>()));
+ return (Align (sizeSize + nr_container_stream_size (v), stream_align_of(sz)));
+}
+
+/// \brief Writes element \p v into stream \p os as text.
+/// Specialize to custom print elements.
+template <typename T>
+inline ostringstream& container_element_text_write (ostringstream& os, const T& v)
+{ return (os << v); }
+
+/// Writes container \p v into stream \p os as text.
+template <typename Container>
+ostringstream& container_text_write (ostringstream& os, const Container& v)
+{
+ typename Container::const_iterator i = v.begin();
+ os << '(';
+ while (i < v.end()) {
+ container_element_text_write (os, *i);
+ os << ",)"[++i == v.end()];
+ }
+ return (os);
+}
+
+//----------------------------------------------------------------------
+
+} // namespace ustl
+
+#endif
diff --git a/ecos/packages/language/cxx/ustl/current/include/ustl/uexception.h b/ecos/packages/language/cxx/ustl/current/include/ustl/uexception.h
new file mode 100644
index 0000000..04fd99b
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/include/ustl/uexception.h
@@ -0,0 +1,192 @@
+// This file is part of the uSTL library, an STL implementation.
+//
+// Copyright (c) 2005 by Mike Sharov <msharov@users.sourceforge.net>
+// This file is free software, distributed under the MIT License.
+
+#ifndef UEXCEPTION_H_18DE3EF55C4F00673268F0D66546AF5D
+#define UEXCEPTION_H_18DE3EF55C4F00673268F0D66546AF5D
+
+#include "utypes.h"
+#ifndef WITHOUT_LIBSTDCPP
+ #include <exception>
+ #include <new>
+#endif
+#include "bktrace.h"
+
+#if WITHOUT_LIBSTDCPP
+namespace std {
+/// If you write a replacement terminate handler, it must be of this type.
+typedef void (*terminate_handler) (void);
+/// If you write a replacement unexpected handler, it must be of this type.
+typedef void (*unexpected_handler) (void);
+/// Takes a new handler function as an argument, returns the old function.
+terminate_handler set_terminate (terminate_handler pHandler) throw();
+/// The runtime will call this function if exception handling must be
+/// abandoned for any reason. It can also be called by the user.
+void terminate (void) throw() __attribute__ ((__noreturn__));
+/// Takes a new handler function as an argument, returns the old function.
+unexpected_handler set_unexpected (unexpected_handler pHandler) throw();
+/// The runtime will call this function if an exception is thrown which
+/// violates the function's exception specification.
+void unexpected (void) __attribute__ ((__noreturn__));
+/// Returns true when the caught exception violates the throw specification.
+bool uncaught_exception() throw();
+} // namespace std
+#endif
+
+namespace ustl {
+
+class string;
+
+typedef uint32_t xfmt_t;
+
+enum {
+ xfmt_Exception,
+ xfmt_BadAlloc,
+ xfmt_LibcException = 12,
+ xfmt_FileException = 13,
+ xfmt_StreamBoundsException = 14
+};
+
+/// \class exception uexception.h ustl.h
+/// \ingroup Exceptions
+///
+/// \brief Base class for exceptions, equivalent to std::exception.
+///
+#if WITHOUT_LIBSTDCPP
+class exception {
+#else
+class exception : public std::exception {
+#endif
+public:
+ typedef const CBacktrace& rcbktrace_t;
+public:
+ inline exception (void) throw() : m_Format (xfmt_Exception) {}
+ inline virtual ~exception (void) throw() {}
+ inline virtual const char* what (void) const throw() { return ("error"); }
+ virtual void info (string& msgbuf, const char* fmt = NULL) const throw();
+ virtual void read (istream& is);
+ virtual void write (ostream& os) const;
+ void text_write (ostringstream& os) const;
+ inline virtual size_t stream_size (void) const { return (sizeof(m_Format) + sizeof(uint32_t) + m_Backtrace.stream_size()); }
+ /// Format of the exception is used to lookup exception::info format string.
+ /// Another common use is the instantiation of serialized exceptions, used
+ /// by the error handler node chain to troubleshoot specific errors.
+ inline xfmt_t format (void) const { return (m_Format); }
+ inline rcbktrace_t backtrace (void) const { return (m_Backtrace); }
+protected:
+ inline void set_format (xfmt_t fmt) { m_Format = fmt; }
+private:
+ CBacktrace m_Backtrace; ///< Backtrace of the throw point.
+ xfmt_t m_Format; ///< Format of the exception's data.
+};
+
+/// \class bad_cast uexception.h ustl.h
+/// \ingroup Exceptions
+///
+/// \brief Thrown to indicate a bad dynamic_cast usage.
+///
+class bad_cast : public exception {
+public:
+ inline bad_cast (void) throw() : exception() {}
+ inline virtual const char* what (void) const throw() { return ("bad cast"); }
+};
+
+class bad_typeid : public exception {
+public:
+ inline bad_typeid (void) throw() { }
+ inline virtual const char* what (void) const throw() { return ("bad typeid"); }
+};
+
+//----------------------------------------------------------------------
+
+/// \class bad_alloc uexception.h ustl.h
+/// \ingroup Exceptions
+///
+/// \brief Exception thrown on memory allocation failure by memblock::reserve.
+///
+#if WITHOUT_LIBSTDCPP
+class bad_alloc : public exception {
+#else
+class bad_alloc : public std::bad_alloc, public exception {
+#endif
+public:
+ explicit bad_alloc (size_t nBytes = 0) throw();
+ inline virtual const char* what (void) const throw() { return ("memory allocation failed"); }
+ virtual void info (string& msgbuf, const char* fmt = NULL) const throw();
+ virtual void read (istream& is);
+ virtual void write (ostream& os) const;
+ virtual size_t stream_size (void) const;
+protected:
+ size_t m_nBytesRequested; ///< Number of bytes requested by the failed allocation.
+};
+
+/// \class libc_exception uexception.h ustl.h
+/// \ingroup Exceptions
+///
+/// \brief Thrown when a libc function returns an error.
+///
+/// Contains an errno and description. This is a uSTL extension.
+///
+class libc_exception : public exception {
+public:
+ explicit libc_exception (const char* operation) throw();
+ libc_exception (const libc_exception& v) throw();
+ const libc_exception& operator= (const libc_exception& v);
+ inline virtual const char* what (void) const throw() { return ("libc function failed"); }
+ virtual void info (string& msgbuf, const char* fmt = NULL) const throw();
+ virtual void read (istream& is);
+ virtual void write (ostream& os) const;
+ virtual size_t stream_size (void) const;
+protected:
+ intptr_t m_Errno; ///< Error code returned by the failed operation.
+ const char* m_Operation; ///< Name of the failed operation.
+};
+
+/// \class file_exception uexception.h ustl.h
+/// \ingroup Exceptions
+///
+/// \brief File-related exceptions.
+///
+/// Contains the file name. This is a uSTL extension.
+///
+class file_exception : public libc_exception {
+public:
+ file_exception (const char* operation, const char* filename) throw();
+ inline virtual const char* what (void) const throw() { return ("file error"); }
+ virtual void info (string& msgbuf, const char* fmt = NULL) const throw();
+ virtual void read (istream& is);
+ virtual void write (ostream& os) const;
+ virtual size_t stream_size (void) const;
+protected:
+ char m_Filename [PATH_MAX]; ///< Name of the file causing the error.
+};
+
+/// \class stream_bounds_exception uexception.h ustl.h
+/// \ingroup Exceptions
+///
+/// \brief Stream bounds checking.
+///
+/// Only thrown in debug builds unless you say otherwise in config.h
+/// This is a uSTL extension.
+///
+class stream_bounds_exception : public libc_exception {
+public:
+ stream_bounds_exception (const char* operation, const char* type, uoff_t offset, size_t expected, size_t remaining) throw();
+ inline virtual const char* what (void) const throw() { return ("stream bounds exception"); }
+ virtual void info (string& msgbuf, const char* fmt = NULL) const throw();
+ virtual void read (istream& is);
+ virtual void write (ostream& os) const;
+ virtual size_t stream_size (void) const;
+protected:
+ const char* m_TypeName;
+ uoff_t m_Offset;
+ size_t m_Expected;
+ size_t m_Remaining;
+};
+
+const char* demangle_type_name (char* buf, size_t bufSize, size_t* pdmSize = NULL);
+
+} // namespace ustl
+
+#endif
diff --git a/ecos/packages/language/cxx/ustl/current/include/ustl/ufunction.h b/ecos/packages/language/cxx/ustl/current/include/ustl/ufunction.h
new file mode 100644
index 0000000..af928fa
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/include/ustl/ufunction.h
@@ -0,0 +1,465 @@
+// This file is part of the uSTL library, an STL implementation.
+//
+// Copyright (c) 2005 by Mike Sharov <msharov@users.sourceforge.net>
+// This file is free software, distributed under the MIT License.
+
+#ifndef UFUNCTION_H_221ABA8551801799263C927234C085F3
+#define UFUNCTION_H_221ABA8551801799263C927234C085F3
+
+namespace ustl {
+
+//----------------------------------------------------------------------
+// Standard functors
+//----------------------------------------------------------------------
+
+/// \brief void-returning function abstract interface.
+/// \ingroup FunctorObjects
+template <typename Result>
+struct void_function {
+ typedef Result result_type;
+};
+
+/// \brief \p Result f (\p Arg) function abstract interface.
+/// \ingroup FunctorObjects
+template <typename Arg, typename Result>
+struct unary_function {
+ typedef Arg argument_type;
+ typedef Result result_type;
+};
+
+/// \brief \p Result f (\p Arg1, \p Arg2) function abstract interface.
+/// \ingroup FunctorObjects
+template <typename Arg1, typename Arg2, typename Result>
+struct binary_function {
+ typedef Arg1 first_argument_type;
+ typedef Arg2 second_argument_type;
+ typedef Result result_type;
+};
+
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+
+#define STD_BINARY_FUNCTOR(name, rv, func) \
+template <class T> struct name : public binary_function<T,T,rv> \
+{ inline rv operator()(const T& a, const T& b) const { return func; } };
+#define STD_UNARY_FUNCTOR(name, rv, func) \
+template <class T> struct name : public unary_function<T,rv> \
+{ inline rv operator()(const T& a) const { return func; } };
+#define STD_CONVERSION_FUNCTOR(name, func) \
+template <class S, class D> struct name : public unary_function<S,D> \
+{ inline D operator()(const S& a) const { return func; } };
+
+STD_BINARY_FUNCTOR (plus, T, (a + b))
+STD_BINARY_FUNCTOR (minus, T, (a - b))
+STD_BINARY_FUNCTOR (divides, T, (a / b))
+STD_BINARY_FUNCTOR (modulus, T, (a % b))
+STD_BINARY_FUNCTOR (multiplies, T, (a * b))
+STD_BINARY_FUNCTOR (logical_and, T, (a && b))
+STD_BINARY_FUNCTOR (logical_or, T, (a || b))
+STD_UNARY_FUNCTOR (logical_not, T, (!a))
+STD_BINARY_FUNCTOR (bitwise_or, T, (a | b))
+STD_BINARY_FUNCTOR (bitwise_and, T, (a & b))
+STD_BINARY_FUNCTOR (bitwise_xor, T, (a ^ b))
+STD_UNARY_FUNCTOR (bitwise_not, T, (~a))
+STD_UNARY_FUNCTOR (negate, T, (-a))
+STD_BINARY_FUNCTOR (equal_to, bool, (a == b))
+STD_BINARY_FUNCTOR (not_equal_to, bool, (!(a == b)))
+STD_BINARY_FUNCTOR (greater, bool, (b < a))
+STD_BINARY_FUNCTOR (less, bool, (a < b))
+STD_BINARY_FUNCTOR (greater_equal, bool, (!(a < b)))
+STD_BINARY_FUNCTOR (less_equal, bool, (!(b < a)))
+STD_BINARY_FUNCTOR (compare, int, (a < b ? -1 : (b < a)))
+STD_UNARY_FUNCTOR (identity, T, (a))
+
+#endif // DOXYGEN_SHOULD_SKIP_THIS
+
+/// \brief Selects and returns the first argument.
+/// \ingroup FunctorObjects
+template <class T1, class T2> struct project1st : public binary_function<T1,T2,T1> { inline const T1& operator()(const T1& a, const T2&) const { return (a); } };
+/// \brief Selects and returns the second argument.
+/// \ingroup FunctorObjects
+template <class T1, class T2> struct project2nd : public binary_function<T1,T2,T2> { inline const T2& operator()(const T1&, const T2& a) const { return (a); } };
+
+//----------------------------------------------------------------------
+// Generic function to functor converters.
+//----------------------------------------------------------------------
+
+/// \brief Wrapper object for unary function pointers.
+/// Use the ptr_fun accessor to create this object.
+/// \ingroup FunctorObjects
+template <typename Arg, typename Result>
+class pointer_to_unary_function : public unary_function<Arg,Result> {
+public:
+ typedef Arg argument_type;
+ typedef Result result_type;
+ typedef Result (*pfunc_t)(Arg);
+public:
+ explicit inline pointer_to_unary_function (pfunc_t pfn) : m_pfn (pfn) {}
+ inline result_type operator() (argument_type v) const { return (m_pfn(v)); }
+private:
+ pfunc_t m_pfn; ///< Pointer to the wrapped function.
+};
+
+/// \brief Wrapper object for binary function pointers.
+/// Use the ptr_fun accessor to create this object.
+/// \ingroup FunctorObjects
+template <typename Arg1, typename Arg2, typename Result>
+class pointer_to_binary_function : public binary_function<Arg1,Arg2,Result> {
+public:
+ typedef Arg1 first_argument_type;
+ typedef Arg2 second_argument_type;
+ typedef Result result_type;
+ typedef Result (*pfunc_t)(Arg1, Arg2);
+public:
+ explicit inline pointer_to_binary_function (pfunc_t pfn) : m_pfn (pfn) {}
+ inline result_type operator() (first_argument_type v1, second_argument_type v2) const { return (m_pfn(v1, v2)); }
+private:
+ pfunc_t m_pfn; ///< Pointer to the wrapped function.
+};
+
+/// ptr_fun(pfn) wraps function pointer pfn into a functor class that calls it.
+/// \ingroup FunctorAccessors
+template <typename Arg, typename Result>
+inline pointer_to_unary_function<Arg,Result> ptr_fun (Result (*pfn)(Arg))
+{
+ return (pointer_to_unary_function<Arg,Result> (pfn));
+}
+
+/// ptr_fun(pfn) wraps function pointer pfn into a functor class that calls it.
+/// \ingroup FunctorAccessors
+template <typename Arg1, typename Arg2, typename Result>
+inline pointer_to_binary_function<Arg1,Arg2,Result> ptr_fun (Result (*pfn)(Arg1,Arg2))
+{
+ return (pointer_to_binary_function<Arg1,Arg2,Result> (pfn));
+}
+
+//----------------------------------------------------------------------
+// Negators.
+//----------------------------------------------------------------------
+
+/// \brief Wraps a unary function to return its logical negative.
+/// Use the unary_negator accessor to create this object.
+/// \ingroup FunctorObjects
+template <class UnaryFunction>
+class unary_negate : public unary_function<typename UnaryFunction::argument_type,
+ typename UnaryFunction::result_type> {
+public:
+ typedef typename UnaryFunction::argument_type argument_type;
+ typedef typename UnaryFunction::result_type result_type;
+public:
+ explicit inline unary_negate (UnaryFunction pfn) : m_pfn (pfn) {}
+ inline result_type operator() (argument_type v) const { return (!m_pfn(v)); }
+private:
+ UnaryFunction m_pfn;
+};
+
+/// Returns the functor that negates the result of *pfn().
+/// \ingroup FunctorAccessors
+template <class UnaryFunction>
+inline unary_negate<UnaryFunction> unary_negator (UnaryFunction pfn)
+{
+ return (unary_negate<UnaryFunction>(pfn));
+}
+
+//----------------------------------------------------------------------
+// Argument binders
+//----------------------------------------------------------------------
+
+/// \brief Converts a binary function to a unary function
+/// by binding a constant value to the first argument.
+/// Use the bind1st accessor to create this object.
+/// \ingroup FunctorObjects
+template <class BinaryFunction>
+class binder1st : public unary_function<typename BinaryFunction::second_argument_type,
+ typename BinaryFunction::result_type> {
+public:
+ typedef typename BinaryFunction::first_argument_type arg1_t;
+ typedef typename BinaryFunction::second_argument_type arg2_t;
+ typedef typename BinaryFunction::result_type result_t;
+public:
+ inline binder1st (const BinaryFunction& pfn, const arg1_t& v) : m_pfn (pfn), m_Value(v) {}
+ inline result_t operator()(arg2_t v2) const { return (m_pfn (m_Value, v2)); }
+protected:
+ BinaryFunction m_pfn;
+ arg1_t m_Value;
+};
+
+/// \brief Converts a binary function to a unary function
+/// by binding a constant value to the second argument.
+/// Use the bind2nd accessor to create this object.
+/// \ingroup FunctorObjects
+template <class BinaryFunction>
+class binder2nd : public unary_function<typename BinaryFunction::first_argument_type,
+ typename BinaryFunction::result_type> {
+public:
+ typedef typename BinaryFunction::first_argument_type arg1_t;
+ typedef typename BinaryFunction::second_argument_type arg2_t;
+ typedef typename BinaryFunction::result_type result_t;
+public:
+ inline binder2nd (const BinaryFunction& pfn, const arg2_t& v) : m_pfn (pfn), m_Value(v) {}
+ inline result_t operator()(arg1_t v1) const { return (m_pfn (v1, m_Value)); }
+protected:
+ BinaryFunction m_pfn;
+ arg2_t m_Value;
+};
+
+/// Converts \p pfn into a unary function by binding the first argument to \p v.
+/// \ingroup FunctorAccessors
+template <typename BinaryFunction>
+inline binder1st<BinaryFunction>
+bind1st (BinaryFunction pfn, typename BinaryFunction::first_argument_type v)
+{
+ return (binder1st<BinaryFunction> (pfn, v));
+}
+
+/// Converts \p pfn into a unary function by binding the second argument to \p v.
+/// \ingroup FunctorAccessors
+template <typename BinaryFunction>
+inline binder2nd<BinaryFunction>
+bind2nd (BinaryFunction pfn, typename BinaryFunction::second_argument_type v)
+{
+ return (binder2nd<BinaryFunction> (pfn, v));
+}
+
+//----------------------------------------------------------------------
+// Composition adapters
+//----------------------------------------------------------------------
+
+/// \brief Chains two unary functions together.
+///
+/// When f(x) and g(x) are composed, the result is function c(x)=f(g(x)).
+/// Use the \ref compose1 accessor to create this object.
+/// This template is an extension, implemented by SGI STL and uSTL.
+/// \ingroup FunctorObjects
+///
+template <typename Operation1, typename Operation2>
+class unary_compose : public unary_function<typename Operation2::argument_type,
+ typename Operation1::result_type> {
+public:
+ typedef typename Operation2::argument_type arg_t;
+ typedef const arg_t& rcarg_t;
+ typedef typename Operation1::result_type result_t;
+public:
+ inline unary_compose (const Operation1& f, const Operation2& g) : m_f(f), m_g(g) {}
+ inline result_t operator() (rcarg_t x) const { return m_f(m_g(x)); }
+protected:
+ Operation1 m_f; ///< f(x), if c(x) = f(g(x))
+ Operation2 m_g; ///< g(x), if c(x) = f(g(x))
+};
+
+/// Creates a \ref unary_compose object whose function c(x)=f(g(x))
+/// \ingroup FunctorAccessors
+template <typename Operation1, typename Operation2>
+inline unary_compose<Operation1, Operation2>
+compose1 (const Operation1& f, const Operation2& g)
+{ return unary_compose<Operation1,Operation2>(f, g); }
+
+/// \brief Chains two unary functions through a binary function.
+///
+/// When f(x,y), g(x), and h(x) are composed, the result is function
+/// c(x)=f(g(x),h(x)). Use the \ref compose2 accessor to create this
+/// object. This template is an extension, implemented by SGI STL and uSTL.
+/// \ingroup FunctorObjects
+///
+template <typename Operation1, typename Operation2, typename Operation3>
+class binary_compose : public unary_function<typename Operation2::argument_type,
+ typename Operation1::result_type> {
+public:
+ typedef typename Operation2::argument_type arg_t;
+ typedef const arg_t& rcarg_t;
+ typedef typename Operation1::result_type result_t;
+public:
+ inline binary_compose (const Operation1& f, const Operation2& g, const Operation3& h) : m_f(f), m_g(g), m_h(h) {}
+ inline result_t operator() (rcarg_t x) const { return m_f(m_g(x), m_h(x)); }
+protected:
+ Operation1 m_f; ///< f(x,y), if c(x) = f(g(x),h(x))
+ Operation2 m_g; ///< g(x), if c(x) = f(g(x),h(x))
+ Operation3 m_h; ///< h(x), if c(x) = f(g(x),h(x))
+};
+
+/// Creates a \ref binary_compose object whose function c(x)=f(g(x),h(x))
+/// \ingroup FunctorAccessors
+template <typename Operation1, typename Operation2, typename Operation3>
+inline binary_compose<Operation1, Operation2, Operation3>
+compose2 (const Operation1& f, const Operation2& g, const Operation3& h)
+{ return binary_compose<Operation1, Operation2, Operation3> (f, g, h); }
+
+//----------------------------------------------------------------------
+// Member function adaptors
+//----------------------------------------------------------------------
+
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+
+#define MEM_FUN_T(WrapperName, ClassName, ArgType, FuncType, CallType) \
+ template <typename Ret, class T> \
+ class ClassName : public unary_function<ArgType,Ret> { \
+ public: \
+ typedef Ret (T::*func_t) FuncType; \
+ public: \
+ explicit inline ClassName (func_t pf) : m_pf (pf) {} \
+ inline Ret operator() (ArgType p) const { return ((p CallType m_pf)()); } \
+ private: \
+ func_t m_pf; \
+ }; \
+ \
+ template <class Ret, typename T> \
+ inline ClassName<Ret,T> WrapperName (Ret (T::*pf) FuncType) \
+ { \
+ return (ClassName<Ret,T> (pf)); \
+ }
+
+MEM_FUN_T(mem_fun, mem_fun_t, T*, (void), ->*)
+MEM_FUN_T(mem_fun, const_mem_fun_t, const T*, (void) const, ->*)
+MEM_FUN_T(mem_fun_ref, mem_fun_ref_t, T&, (void), .*)
+MEM_FUN_T(mem_fun_ref, const_mem_fun_ref_t, const T&, (void) const, .*)
+
+#define EXT_MEM_FUN_T(ClassName, HostType, FuncType) \
+ template <class T, typename Ret, typename V> \
+ class ClassName : public unary_function<V,void> { \
+ public: \
+ typedef Ret (T::*func_t)(V) FuncType; \
+ public: \
+ inline ClassName (HostType t, func_t pf) : m_t (t), m_pf (pf) {} \
+ inline Ret operator() (V v) const { return ((m_t->*m_pf)(v)); } \
+ private: \
+ HostType m_t; \
+ func_t m_pf; \
+ }; \
+ \
+ template <class T, typename Ret, typename V> \
+ inline ClassName<T,Ret,V> mem_fun (HostType p, Ret (T::*pf)(V) FuncType) \
+ { \
+ return (ClassName<T,Ret,V> (p, pf)); \
+ }
+
+EXT_MEM_FUN_T(ext_mem_fun_t, T*, )
+EXT_MEM_FUN_T(const_ext_mem_fun_t, const T*, const)
+
+#endif // DOXYGEN_SHOULD_SKIP_THIS
+
+//----------------------------------------------------------------------
+// Member variable adaptors (uSTL extension)
+//----------------------------------------------------------------------
+
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+
+#define MEM_VAR_T(FunctorName, ArgType, VarType, BaseClass, CallImpl) \
+ template <typename Function, class T, typename VT> \
+ class FunctorName##_t : public BaseClass { \
+ public: \
+ typedef ArgType argument_type; \
+ typedef typename Function::result_type result_type; \
+ typedef VarType mem_var_ptr_t; \
+ public: \
+ inline FunctorName##_t (mem_var_ptr_t pv, Function pfn) : m_pv(pv), m_pfn(pfn) {} \
+ inline result_type operator() CallImpl \
+ private: \
+ mem_var_ptr_t m_pv; \
+ Function m_pfn; \
+ }; \
+ \
+ template <typename Function, class T, typename VT> \
+ inline FunctorName##_t<Function, T, VT> \
+ FunctorName (VT T::*mvp, Function pfn) \
+ { \
+ return (FunctorName##_t<Function,T,VT> (mvp, pfn)); \
+ }
+
+#define FUNCTOR_UNARY_BASE(ArgType) unary_function<ArgType, typename Function::result_type>
+#define FUNCTOR_BINARY_BASE(ArgType) binary_function<ArgType, ArgType, typename Function::result_type>
+
+#define MEM_VAR_UNARY_ARGS (argument_type p) const \
+ { return (m_pfn(p.*m_pv)); }
+#define MEM_VAR_BINARY_ARGS (argument_type p1, argument_type p2) const \
+ { return (m_pfn(p1.*m_pv, p2.*m_pv)); }
+
+MEM_VAR_T(mem_var1, T&, VT T::*, FUNCTOR_UNARY_BASE(T&), MEM_VAR_UNARY_ARGS)
+MEM_VAR_T(const_mem_var1, const T&, const VT T::*, FUNCTOR_UNARY_BASE(T&), MEM_VAR_UNARY_ARGS)
+MEM_VAR_T(mem_var2, T&, VT T::*, FUNCTOR_BINARY_BASE(T&), MEM_VAR_BINARY_ARGS)
+MEM_VAR_T(const_mem_var2, const T&, const VT T::*, FUNCTOR_BINARY_BASE(T&), MEM_VAR_BINARY_ARGS)
+
+#undef MEM_VAR_UNARY_ARGS
+#undef MEM_VAR_BINARY_ARGS
+
+#endif // DOXYGEN_SHOULD_SKIP_THIS
+
+/// Returned functor passes member variable \p mvp reference of given object to equal\<VT\>.
+/// \ingroup FunctorAccessors
+template <class T, typename VT>
+inline const_mem_var1_t<binder2nd<equal_to<VT> >, T, VT>
+mem_var_equal_to (const VT T::*mvp, const VT& v)
+{
+ return (const_mem_var1_t<binder2nd<equal_to<VT> >,T,VT> (mvp, bind2nd(equal_to<VT>(), v)));
+}
+
+/// Returned functor passes member variable \p mvp reference of given object to less\<VT\>.
+/// \ingroup FunctorAccessors
+template <class T, typename VT>
+inline const_mem_var1_t<binder2nd<less<VT> >, T, VT>
+mem_var_less (const VT T::*mvp, const VT& v)
+{
+ return (const_mem_var1_t<binder2nd<less<VT> >,T,VT> (mvp, bind2nd(less<VT>(), v)));
+}
+
+/// Returned functor passes member variable \p mvp reference of given object to equal\<VT\>.
+/// \ingroup FunctorAccessors
+template <class T, typename VT>
+inline const_mem_var2_t<equal_to<VT>, T, VT>
+mem_var_equal_to (const VT T::*mvp)
+{
+ return (const_mem_var2_t<equal_to<VT>,T,VT> (mvp, equal_to<VT>()));
+}
+
+/// Returned functor passes member variable \p mvp reference of given object to less\<VT\>.
+/// \ingroup FunctorAccessors
+template <class T, typename VT>
+inline const_mem_var2_t<less<VT>, T, VT>
+mem_var_less (const VT T::*mvp)
+{
+ return (const_mem_var2_t<less<VT>,T,VT> (mvp, less<VT>()));
+}
+
+//----------------------------------------------------------------------
+// Dereference adaptors (uSTL extension)
+//----------------------------------------------------------------------
+
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+
+#define DEREFERENCER_T(ClassName, ArgType, BaseClass, CallImpl, FunctorKey) \
+ template <typename T, typename Function> \
+ class ClassName : public BaseClass { \
+ public: \
+ typedef ArgType* argument_type; \
+ typedef typename Function::result_type result_type; \
+ public: \
+ inline ClassName (Function pfn) : m_pfn (pfn) {} \
+ inline result_type operator() CallImpl \
+ private: \
+ Function m_pfn; \
+ }; \
+ \
+ template <typename T, typename Function> \
+ inline ClassName<T,Function> _dereference (Function pfn, FunctorKey) \
+ { \
+ return (ClassName<T,Function> (pfn)); \
+ }
+
+#define DEREF_UNARY_ARGS (argument_type p) const \
+ { return (m_pfn(*p)); }
+#define DEREF_BINARY_ARGS (argument_type p1, argument_type p2) const \
+ { return (m_pfn(*p1, *p2)); }
+
+DEREFERENCER_T(deref1_t, T, FUNCTOR_UNARY_BASE(T*), DEREF_UNARY_ARGS, FUNCTOR_UNARY_BASE(T))
+DEREFERENCER_T(const_deref1_t, const T, FUNCTOR_UNARY_BASE(const T*), DEREF_UNARY_ARGS, FUNCTOR_UNARY_BASE(const T))
+DEREFERENCER_T(deref2_t, T, FUNCTOR_BINARY_BASE(T*), DEREF_BINARY_ARGS, FUNCTOR_BINARY_BASE(T))
+DEREFERENCER_T(const_deref2_t, const T, FUNCTOR_BINARY_BASE(const T*), DEREF_BINARY_ARGS, FUNCTOR_BINARY_BASE(const T))
+
+#define dereference(f) _dereference(f,f)
+
+#undef DEREF_UNARY_ARGS
+#undef DEREF_BINARY_ARGS
+
+#endif
+
+} // namespace ustl
+
+#endif
diff --git a/ecos/packages/language/cxx/ustl/current/include/ustl/uheap.h b/ecos/packages/language/cxx/ustl/current/include/ustl/uheap.h
new file mode 100644
index 0000000..1913c66
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/include/ustl/uheap.h
@@ -0,0 +1,142 @@
+// This file is part of the uSTL library, an STL implementation.
+//
+// Copyright (c) 2005 by Mike Sharov <msharov@users.sourceforge.net>
+// This file is free software, distributed under the MIT License.
+
+#ifndef UHEAP_H_574B9EAF271A1C107190B4D575A356C5
+#define UHEAP_H_574B9EAF271A1C107190B4D575A356C5
+
+#include "ualgobase.h"
+
+namespace ustl {
+
+/// \brief Returns true if the given range is a heap under \p comp.
+/// A heap is a sequentially encoded binary tree where for every node
+/// comp(node,child1) is false and comp(node,child2) is false.
+/// \ingroup HeapAlgorithms
+/// \ingroup ConditionAlgorithms
+///
+template <typename RandomAccessIterator, typename Compare>
+bool is_heap (RandomAccessIterator first, RandomAccessIterator last, Compare comp)
+{
+ RandomAccessIterator iChild (first);
+ for (; ++iChild < last; ++first)
+ if (comp (*first, *iChild) || (++iChild < last && comp (*first, *iChild)))
+ return (false);
+ return (true);
+}
+
+/// \brief make_heap turns the range [first, last) into a heap
+/// At completion, is_heap (first, last, comp) is true.
+/// The algorithm is adapted from "Classic Data Structures in C++" by Timothy Budd.
+/// \ingroup HeapAlgorithms
+/// \ingroup SortingAlgorithms
+///
+template <typename RandomAccessIterator, typename Compare>
+void make_heap (RandomAccessIterator first, RandomAccessIterator last, Compare comp)
+{
+ typedef typename iterator_traits<RandomAccessIterator>::value_type value_type;
+ const value_type v (*first);
+ uoff_t iChild, iHole = 0, iEnd (distance (first, last));
+ while ((iChild = 2 * iHole + 1) < iEnd) {
+ if (iChild + 1 < iEnd) // Pick the greater child
+ iChild += comp (first[iChild], first[iChild + 1]);
+ if (comp (first[iChild], v))
+ break; // Done when parent is greater than both children.
+ first[iHole] = first[iChild];
+ iHole = iChild;
+ }
+ if (iHole < iEnd)
+ first[iHole] = v;
+}
+
+/// \brief Inserts the *--last into the preceeding range assumed to be a heap.
+/// \ingroup HeapAlgorithms
+/// \ingroup MutatingAlgorithms
+template <typename RandomAccessIterator, typename Compare>
+void push_heap (RandomAccessIterator first, RandomAccessIterator last, Compare comp)
+{
+ if (last <= first)
+ return;
+ typedef typename iterator_traits<RandomAccessIterator>::value_type value_type;
+ const value_type v (*--last);
+ while (first < last) {
+ RandomAccessIterator iParent = first + (distance(first, last) - 1) / 2;
+ if (comp (v, *iParent))
+ break;
+ *last = *iParent;
+ last = iParent;
+ }
+ *last = v;
+}
+
+/// Removes the largest element from the heap (*first) and places it at *(last-1)
+/// [first, last-1) is a heap after this operation.
+/// \ingroup HeapAlgorithms
+/// \ingroup MutatingAlgorithms
+template <typename RandomAccessIterator, typename Compare>
+void pop_heap (RandomAccessIterator first, RandomAccessIterator last, Compare comp)
+{
+ if (--last <= first)
+ return;
+ iter_swap (first, last);
+ make_heap (first, last, comp);
+}
+
+/// Sorts heap [first, last) in descending order according to comp.
+/// \ingroup HeapAlgorithms
+/// \ingroup SortingAlgorithms
+template <typename RandomAccessIterator, typename Compare>
+void sort_heap (RandomAccessIterator first, RandomAccessIterator last, Compare comp)
+{
+ for (; first < last; --last)
+ pop_heap (first, last, comp);
+}
+
+#define HEAP_FN_WITH_LESS(rtype, name) \
+template <typename RandomAccessIterator>\
+inline rtype name (RandomAccessIterator first, RandomAccessIterator last) \
+{ \
+ typedef typename iterator_traits<RandomAccessIterator>::value_type value_type; \
+ return (name (first, last, less<value_type>())); \
+}
+HEAP_FN_WITH_LESS (bool, is_heap)
+HEAP_FN_WITH_LESS (void, make_heap)
+HEAP_FN_WITH_LESS (void, push_heap)
+HEAP_FN_WITH_LESS (void, pop_heap)
+HEAP_FN_WITH_LESS (void, sort_heap)
+#undef HEAP_FN_WITH_LESS
+
+/// \class priority_queue uheap.h ustl.h
+/// \ingroup Sequences
+///
+/// \brief Sorted queue adapter to uSTL containers.
+///
+/// Acts just like the queue adapter, but keeps the elements sorted by priority
+/// specified by the given comparison operator.
+///
+template <typename T, typename Ctr = vector<T>, typename Comp = less<typename Ctr::value_type> >
+class priority_queue {
+public:
+ typedef Ctr base_ctr;
+ typedef typename base_ctr::value_type value_type;
+ typedef typename base_ctr::size_type size_type;
+ typedef typename base_ctr::const_pointer const_pointer;
+ typedef typename base_ctr::const_reference reference;
+public:
+ priority_queue (const Comp& c = Comp()) : m_v(), m_c (c) {}
+ priority_queue (const_pointer f, const_pointer l, const Comp& c = Comp())
+ : m_v (f, l), m_c (c) { make_heap (m_v.begin(), m_v.end(), m_c); }
+ inline size_type size (void) const { return (m_v.size()); }
+ inline bool empty (void) const { return (m_v.empty()); }
+ inline reference top (void) const { return (m_v.at(0)); }
+ inline void push (reference v) { m_v.push_back (v); make_heap (m_v.begin(), m_v.end(), m_c); }
+ inline void pop (void) { pop_heap (m_v.begin(), m_v.end()); m_v.pop_back(); }
+private:
+ base_ctr m_v; ///< Element container.
+ Comp m_c; ///< Comparison functor by value.
+};
+
+} // namespace ustl
+
+#endif
diff --git a/ecos/packages/language/cxx/ustl/current/include/ustl/uios.h b/ecos/packages/language/cxx/ustl/current/include/ustl/uios.h
new file mode 100644
index 0000000..892320b
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/include/ustl/uios.h
@@ -0,0 +1,103 @@
+// This file is part of the uSTL library, an STL implementation.
+//
+// Copyright (c) 2005 by Mike Sharov <msharov@users.sourceforge.net>
+// This file is free software, distributed under the MIT License.
+
+#ifndef UIOS_H_630C16E316F7650E3A02E1C6611B789A
+#define UIOS_H_630C16E316F7650E3A02E1C6611B789A
+
+#include "utypes.h"
+
+namespace ustl {
+
+class file_exception;
+
+const char endl = '\n'; ///< End of line character.
+const char ends = '\0'; ///< End of string character.
+
+/// Defines types and constants used by all stream classes.
+class ios_base {
+public:
+ /// Used to set parameters for stringstreams
+ enum fmtflags {
+ boolalpha = (1 << 0), ///< Boolean values printed as text.
+ dec = (1 << 1), ///< Decimal number output.
+ fixed = (1 << 2), ///< Fixed-point float output.
+ hex = (1 << 3), ///< Hexadecimal number output.
+ internal = (1 << 4),
+ left = (1 << 5), ///< Left alignment.
+ oct = (1 << 6), ///< Octal number output.
+ right = (1 << 7), ///< Right alignment.
+ scientific = (1 << 8), ///< Scientific float format.
+ showbase = (1 << 9), ///< Add 0x or 0 prefixes on hex and octal numbers.
+ showpoint = (1 << 10), ///< Print decimal point.
+ showpos = (1 << 11),
+ skipws = (1 << 12), ///< Skip whitespace when reading.
+ unitbuf = (1 << 13),
+ uppercase = (1 << 14),
+ adjustfield = (1 << 15),
+ basefield = (1 << 16),
+ floatfield = (1 << 17)
+ };
+ /// For file-based streams, specifies fd mode.
+ enum openmode_bits {
+ in = (1 << 0),
+ out = (1 << 1),
+ app = (1 << 2),
+ ate = (1 << 3),
+ binary = (1 << 4),
+ trunc = (1 << 5),
+ #ifndef DOXYGEN_SHOULD_SKIP_THIS
+ nonblock= (1 << 6),
+ nocreate= (1 << 7),
+ noctty = (1 << 8),
+ nombits = 9
+ #endif
+ };
+ /// Seek directions, equivalent to SEEK_SET, SEEK_CUR, and SEEK_END.
+ enum seekdir {
+ beg,
+ cur,
+ end
+ };
+ /// I/O state bitmasks.
+ enum iostate_bits {
+ goodbit = 0,
+ badbit = (1 << 0),
+ eofbit = (1 << 1),
+ failbit = (1 << 2),
+ #ifndef DOXYGEN_SHOULD_SKIP_THIS
+ nbadbits = 3,
+ allbadbits = 0x7
+ #endif
+ };
+
+ typedef uint32_t openmode; ///< Holds openmode_bits.
+ typedef uint32_t iostate; ///< Holds iostate_bits for a file stream.
+ typedef file_exception failure; ///< Thrown by fstream on errors.
+
+ static const char c_DefaultDelimiters [16]; ///< Default word delimiters for stringstreams.
+public:
+ inline ios_base (void) : m_State (goodbit), m_Exceptions (allbadbits) {}
+ inline iostate rdstate (void) const { return (m_State); }
+ inline bool bad (void) const { return (rdstate() & badbit); }
+ inline bool good (void) const { return (rdstate() == goodbit); }
+ inline bool fail (void) const { return (rdstate() & (badbit | failbit)); }
+ inline bool eof (void) const { return (rdstate() & eofbit); }
+ inline bool operator! (void) const { return (fail()); }
+ inline operator void* (void) const { return ((void*)(!fail())); }
+ inline void clear (iostate v = goodbit) { m_State = v; }
+ inline void setstate (iostate v) { m_State |= v; }
+ inline iostate exceptions (void) const { return (m_Exceptions); }
+ inline iostate exceptions (iostate v) { return (m_Exceptions = v); }
+protected:
+ inline bool set_and_throw (iostate v) { setstate(v); return (exceptions() & v); }
+ void overrun (const char* op, const char* type, uint32_t n, uint32_t p, uint32_t rem);
+private:
+ uint16_t m_State; ///< Open state, using ios::iostate_bits.
+ uint16_t m_Exceptions; ///< Exception flags, using ios::iostate_bits.
+};
+
+} // namespace ustl
+
+#endif
diff --git a/ecos/packages/language/cxx/ustl/current/include/ustl/uiosfunc.h b/ecos/packages/language/cxx/ustl/current/include/ustl/uiosfunc.h
new file mode 100644
index 0000000..9cef59a
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/include/ustl/uiosfunc.h
@@ -0,0 +1,96 @@
+// This file is part of the uSTL library, an STL implementation.
+//
+// Copyright (c) 2005 by Mike Sharov <msharov@users.sourceforge.net>
+// This file is free software, distributed under the MIT License.
+
+#ifndef UIOSFUNC_H_730C16E316F7650E3A02E1C6611B789A
+#define UIOSFUNC_H_730C16E316F7650E3A02E1C6611B789A
+
+#include "sostream.h"
+
+namespace ustl {
+
+class ios : public ios_base {
+public:
+ /// \class align uiosfunc.h ustl.h
+ /// \ingroup StreamFunctors
+ /// \brief Stream functor to allow inline align() calls.
+ ///
+ /// Example: os << ios::align(sizeof(uint16_t));
+ ///
+ class align {
+ public:
+ inline explicit align (size_t grain = c_DefaultAlignment) : m_Grain(grain) {}
+ inline istream& apply (istream& is) const { is.align (m_Grain); return (is); }
+ inline ostream& apply (ostream& os) const { os.align (m_Grain); return (os); }
+ inline void read (istream& is) const { apply (is); }
+ inline void write (ostream& os) const { apply (os); }
+ inline size_t stream_size (void) const { return (m_Grain - 1); }
+ private:
+ const size_t m_Grain;
+ };
+
+ /// \class talign uiosfunc.h ustl.h
+ /// \ingroup StreamFunctors
+ /// \brief Stream functor to allow type-based alignment.
+ template <typename T>
+ class talign : public align {
+ public:
+ inline explicit talign (void) : align (stream_align_of (NullValue<T>())) {}
+ };
+
+ /// \class skip uiosfunc.h ustl.h
+ /// \ingroup StreamFunctors
+ /// \brief Stream functor to allow inline skip() calls.
+ ///
+ /// Example: os << ios::skip(sizeof(uint16_t));
+ ///
+ class skip {
+ public:
+ inline explicit skip (size_t nBytes) : m_nBytes(nBytes) {}
+ inline istream& apply (istream& is) const { is.skip (m_nBytes); return (is); }
+ inline ostream& apply (ostream& os) const { os.skip (m_nBytes); return (os); }
+ inline void read (istream& is) const { apply (is); }
+ inline void write (ostream& os) const { apply (os); }
+ inline size_t stream_size (void) const { return (m_nBytes); }
+ private:
+ const size_t m_nBytes;
+ };
+
+ /// \class width uiosfunc.h ustl.h
+ /// \ingroup StreamFunctors
+ /// \brief Stream functor to allow inline set_width() calls.
+ ///
+ /// Example: os << ios::width(15);
+ ///
+ class width {
+ public:
+ inline explicit width (size_t nBytes) : m_nBytes(nBytes) {}
+ inline ostringstream& apply (ostringstream& os) const { os.set_width (m_nBytes); return (os); }
+ inline void text_write (ostringstream& os) const { apply (os); }
+ private:
+ const size_t m_nBytes;
+ };
+
+ /// \class base uiosfunc.h ustl.h
+ /// \ingroup StreamFunctors
+ /// \brief Stream functor to allow inline set_base() calls.
+ ///
+ /// Example: os << ios::base(15);
+ ///
+ class base {
+ public:
+ inline explicit base (size_t n) : m_Base(n) {}
+ inline ostringstream& apply (ostringstream& os) const { os.set_base (m_Base); return (os); }
+ inline void text_write (ostringstream& os) const { apply (os); }
+ private:
+ const size_t m_Base;
+ };
+};
+
+} // namespace ustl
+
+CAST_STREAMABLE(ustl::ios::fmtflags, uint32_t)
+NUMERIC_LIMITS(ustl::ios::fmtflags, ustl::ios::boolalpha, ustl::ios::floatfield, false, true, true)
+
+#endif
diff --git a/ecos/packages/language/cxx/ustl/current/include/ustl/uiterator.h b/ecos/packages/language/cxx/ustl/current/include/ustl/uiterator.h
new file mode 100644
index 0000000..e3a3b29
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/include/ustl/uiterator.h
@@ -0,0 +1,266 @@
+// This file is part of the uSTL library, an STL implementation.
+//
+// Copyright (c) 2005 by Mike Sharov <msharov@users.sourceforge.net>
+// This file is free software, distributed under the MIT License.
+//
+/// \file uiterator.h
+/// \brief Contains various iterator adapters.
+
+#ifndef UITERATOR_H_5BCA176C7214A30F2069E2614D2DC226
+#define UITERATOR_H_5BCA176C7214A30F2069E2614D2DC226
+
+#include "utypes.h"
+
+namespace ustl {
+
+//----------------------------------------------------------------------
+
+/// \struct iterator_traits uiterator.h ustl.h
+/// \brief Contains the type traits of \p Iterator
+///
+template <typename Iterator>
+struct iterator_traits {
+ typedef typename Iterator::value_type value_type;
+ typedef typename Iterator::difference_type difference_type;
+ typedef typename Iterator::pointer pointer;
+ typedef typename Iterator::reference reference;
+};
+
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+
+template <typename T>
+struct iterator_traits<T*> {
+ typedef T value_type;
+ typedef ptrdiff_t difference_type;
+ typedef const T* const_pointer;
+ typedef T* pointer;
+ typedef const T& const_reference;
+ typedef T& reference;
+};
+
+template <typename T>
+struct iterator_traits<const T*> {
+ typedef T value_type;
+ typedef ptrdiff_t difference_type;
+ typedef const T* const_pointer;
+ typedef const T* pointer;
+ typedef const T& const_reference;
+ typedef const T& reference;
+};
+
+template <>
+struct iterator_traits<void*> {
+ typedef uint8_t value_type;
+ typedef ptrdiff_t difference_type;
+ typedef const void* const_pointer;
+ typedef void* pointer;
+ typedef const value_type& const_reference;
+ typedef value_type& reference;
+};
+
+template <>
+struct iterator_traits<const void*> {
+ typedef uint8_t value_type;
+ typedef ptrdiff_t difference_type;
+ typedef const void* const_pointer;
+ typedef const void* pointer;
+ typedef const value_type& const_reference;
+ typedef const value_type& reference;
+};
+
+#endif
+
+//----------------------------------------------------------------------
+
+/// \class reverse_iterator uiterator.h ustl.h
+/// \ingroup IteratorAdaptors
+/// \brief Wraps \p Iterator to behave in an exactly opposite manner.
+///
+template <class Iterator>
+class reverse_iterator {
+public:
+ typedef typename iterator_traits<Iterator>::value_type value_type;
+ typedef typename iterator_traits<Iterator>::difference_type difference_type;
+ typedef typename iterator_traits<Iterator>::pointer pointer;
+ typedef typename iterator_traits<Iterator>::reference reference;
+public:
+ reverse_iterator (void) : m_i() {}
+ explicit reverse_iterator (Iterator iter) : m_i (iter) {}
+ inline bool operator== (const reverse_iterator& iter) const { return (m_i == iter.m_i); }
+ inline bool operator< (const reverse_iterator& iter) const { return (iter.m_i < m_i); }
+ inline Iterator base (void) const { return (m_i); }
+ inline reference operator* (void) const { Iterator prev (m_i); --prev; return (*prev); }
+ inline pointer operator-> (void) const { return (&(operator*())); }
+ inline reverse_iterator& operator++ (void) { -- m_i; return (*this); }
+ inline reverse_iterator& operator-- (void) { ++ m_i; return (*this); }
+ inline reverse_iterator operator++ (int) { reverse_iterator prev (*this); -- m_i; return (prev); }
+ inline reverse_iterator operator-- (int) { reverse_iterator prev (*this); ++ m_i; return (prev); }
+ inline reverse_iterator& operator+= (size_t n) { m_i -= n; return (*this); }
+ inline reverse_iterator& operator-= (size_t n) { m_i += n; return (*this); }
+ inline reverse_iterator operator+ (size_t n) const { return (reverse_iterator (m_i - n)); }
+ inline reverse_iterator operator- (size_t n) const { return (reverse_iterator (m_i + n)); }
+ inline reference operator[] (uoff_t n) const { return (*(*this + n)); }
+ inline difference_type operator- (const reverse_iterator& i) const { return (distance (m_i, i.m_i)); }
+protected:
+ Iterator m_i;
+};
+
+//----------------------------------------------------------------------
+
+/// \class insert_iterator uiterator.h ustl.h
+/// \ingroup IteratorAdaptors
+/// \brief Calls insert on bound container for each assignment.
+///
+template <class Container>
+class insert_iterator {
+public:
+ typedef typename Container::value_type value_type;
+ typedef typename Container::difference_type difference_type;
+ typedef typename Container::pointer pointer;
+ typedef typename Container::reference reference;
+ typedef typename Container::iterator iterator;
+public:
+ explicit insert_iterator (Container& ctr, iterator ip) : m_rCtr (ctr), m_ip (ip) {}
+ inline insert_iterator& operator= (typename Container::const_reference v)
+ { m_ip = m_rCtr.insert (m_ip, v); return (*this); }
+ inline insert_iterator& operator* (void) { return (*this); }
+ inline insert_iterator& operator++ (void) { ++ m_ip; return (*this); }
+ inline insert_iterator operator++ (int) { insert_iterator prev (*this); ++m_ip; return (prev); }
+protected:
+ Container& m_rCtr;
+ iterator m_ip;
+};
+
+/// Returns the insert_iterator for \p ctr.
+template <class Container>
+inline insert_iterator<Container> inserter (Container& ctr, typename Container::iterator ip)
+{
+ return (insert_iterator<Container> (ctr, ip));
+}
+
+//----------------------------------------------------------------------
+
+/// \class back_insert_iterator uiterator.h ustl.h
+/// \ingroup IteratorAdaptors
+/// \brief Calls push_back on bound container for each assignment.
+///
+template <class Container>
+class back_insert_iterator {
+public:
+ typedef typename Container::value_type value_type;
+ typedef typename Container::difference_type difference_type;
+ typedef typename Container::pointer pointer;
+ typedef typename Container::reference reference;
+public:
+ explicit back_insert_iterator (Container& ctr) : m_rCtr (ctr) {}
+ inline back_insert_iterator& operator= (typename Container::const_reference v)
+ { m_rCtr.push_back (v); return (*this); }
+ inline back_insert_iterator& operator* (void) { return (*this); }
+ inline back_insert_iterator& operator++ (void) { return (*this); }
+ inline back_insert_iterator operator++ (int) { return (*this); }
+protected:
+ Container& m_rCtr;
+};
+
+/// Returns the back_insert_iterator for \p ctr.
+template <class Container>
+inline back_insert_iterator<Container> back_inserter (Container& ctr)
+{
+ return (back_insert_iterator<Container> (ctr));
+}
+
+//----------------------------------------------------------------------
+
+/// \class index_iterate uiterator.h ustl.h
+/// \ingroup IteratorAdaptors
+///
+/// \brief Allows iteration through an index container.
+///
+/// Converts an iterator into a container of uoff_t indexes to an
+/// iterator of iterators into another container.
+///
+template <typename RandomAccessIterator, typename IndexIterator>
+class index_iterate {
+public:
+ typedef RandomAccessIterator value_type;
+ typedef ptrdiff_t difference_type;
+ typedef RandomAccessIterator* pointer;
+ typedef RandomAccessIterator reference;
+public:
+ index_iterate (void) : m_Base(), m_i() {}
+ index_iterate (RandomAccessIterator ibase, IndexIterator iindex) : m_Base (ibase), m_i (iindex) {}
+ inline bool operator== (const index_iterate& i) const { return (m_i == i.m_i); }
+ inline bool operator< (const index_iterate& i) const { return (m_i < i.m_i); }
+ inline bool operator== (const RandomAccessIterator& i) const { return (m_Base == i); }
+ inline bool operator< (const RandomAccessIterator& i) const { return (m_Base < i); }
+ inline IndexIterator base (void) const { return (m_i); }
+ inline reference operator* (void) const { return (advance(m_Base, *m_i)); }
+ inline pointer operator-> (void) const { return (&(operator*())); }
+ inline index_iterate& operator++ (void) { ++ m_i; return (*this); }
+ inline index_iterate& operator-- (void) { -- m_i; return (*this); }
+ inline index_iterate operator++ (int) { index_iterate prev (*this); ++ m_i; return (prev); }
+ inline index_iterate operator-- (int) { index_iterate prev (*this); -- m_i; return (prev); }
+ inline index_iterate& operator+= (size_t n) { m_i += n; return (*this); }
+ inline index_iterate& operator-= (size_t n) { m_i -= n; return (*this); }
+ inline index_iterate operator+ (size_t n) const { return (index_iterate (m_Base, m_i + n)); }
+ inline index_iterate operator- (size_t n) const { return (index_iterate (m_Base, m_i - n)); }
+ inline reference operator[] (uoff_t n) const { return (*(*this + n)); }
+ inline difference_type operator- (const index_iterate& i) const { return (distance (m_i, i.m_i)); }
+private:
+ RandomAccessIterator m_Base;
+ IndexIterator m_i;
+};
+
+/// Returns an index_iterate for \p ibase over \p iindex.
+template <typename RandomAccessIterator, typename IndexIterator>
+inline index_iterate<RandomAccessIterator, IndexIterator> index_iterator (RandomAccessIterator ibase, IndexIterator iindex)
+{
+ return (index_iterate<RandomAccessIterator, IndexIterator> (ibase, iindex));
+}
+
+/// Converts the indexes in \p xc to iterators in \p ic of base \p ibase.
+template <typename IndexContainer, typename IteratorContainer>
+inline void indexv_to_iteratorv (typename IteratorContainer::value_type ibase, const IndexContainer& xc, IteratorContainer& ic)
+{
+ ic.resize (xc.size());
+ copy_n (index_iterator (ibase, xc.begin()), xc.size(), ic.begin());
+}
+
+//----------------------------------------------------------------------
+
+/// Converts the given const_iterator into an iterator.
+///
+template <typename Container>
+inline typename Container::iterator unconst (typename Container::const_iterator i, Container&)
+ { return (const_cast<typename Container::iterator>(i)); }
+
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+
+#define IBYI(Iter1, Iter2, Ctr1, Ctr2) \
+template <typename Container1, typename Container2> \
+inline typename Container2::Iter2 ibyi (typename Container1::Iter1 idx, Ctr1& ctr1, Ctr2& ctr2) \
+{ \
+ assert (ctr1.size() == ctr2.size()); \
+ return (ctr2.begin() + (idx - ctr1.begin())); \
+}
+
+IBYI(const_iterator, const_iterator, const Container1, const Container2)
+IBYI(iterator, iterator, Container1, Container2)
+IBYI(const_iterator, iterator, const Container1, Container2)
+IBYI(iterator, const_iterator, Container1, const Container2)
+
+#else // DOXYGEN
+
+#error This declaration is for doxygen only; it is not compiled.
+
+/// Converts a const_iterator in one container into a const_iterator in another container.
+template <typename Container1, typename Container2>
+inline typename Container2::iterator ibyi (typename Container1::iterator idx, Container1& ctr1, Container2& ctr2) {}
+
+#endif // DOXYGEN
+
+//----------------------------------------------------------------------
+
+} // namespace ustl
+
+#endif
diff --git a/ecos/packages/language/cxx/ustl/current/include/ustl/ulaalgo.h b/ecos/packages/language/cxx/ustl/current/include/ustl/ulaalgo.h
new file mode 100644
index 0000000..ff3f89b
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/include/ustl/ulaalgo.h
@@ -0,0 +1,220 @@
+// This file is part of the uSTL library, an STL implementation.
+//
+// Copyright (c) 2005 by Mike Sharov <msharov@users.sourceforge.net>
+// This file is free software, distributed under the MIT License.
+
+#ifndef ULAALGO_H_2E403D182E83FB596AFB800E68B255A1
+#define ULAALGO_H_2E403D182E83FB596AFB800E68B255A1
+
+#include "umatrix.h"
+#include "simd.h"
+
+namespace ustl {
+
+/// \brief Creates an identity matrix in \p m
+/// \ingroup NumericAlgorithms
+template <size_t NX, size_t NY, typename T>
+void load_identity (matrix<NX,NY,T>& m)
+{
+ fill_n (m.begin(), NX * NY, 0);
+ for (typename matrix<NX,NY,T>::iterator i = m.begin(); i < m.end(); i += NX + 1)
+ *i = 1;
+}
+
+/// \brief Multiplies two matrices
+/// \ingroup NumericAlgorithms
+template <size_t NX, size_t NY, typename T>
+matrix<NY,NY,T> operator* (const matrix<NX,NY,T>& m1, const matrix<NY,NX,T>& m2)
+{
+ matrix<NY,NY,T> mr;
+ for (uoff_t ry = 0; ry < NY; ++ ry) {
+ for (uoff_t rx = 0; rx < NY; ++ rx) {
+ T dpv (0);
+ for (uoff_t x = 0; x < NX; ++ x)
+ dpv += m1[ry][x] * m2[x][rx];
+ mr[ry][rx] = dpv;
+ }
+ }
+ return (mr);
+}
+
+/// \brief Transforms vector \p t with matrix \p m
+/// \ingroup NumericAlgorithms
+template <size_t NX, size_t NY, typename T>
+tuple<NX,T> operator* (const tuple<NY,T>& t, const matrix<NX,NY,T>& m)
+{
+ tuple<NX,T> tr;
+ for (uoff_t x = 0; x < NX; ++ x) {
+ T dpv (0);
+ for (uoff_t y = 0; y < NY; ++ y)
+ dpv += t[y] * m[y][x];
+ tr[x] = dpv;
+ }
+ return (tr);
+}
+
+/// \brief Transposes (exchanges rows and columns) matrix \p m.
+/// \ingroup NumericAlgorithms
+template <size_t N, typename T>
+void transpose (matrix<N,N,T>& m)
+{
+ for (uoff_t x = 0; x < N; ++ x)
+ for (uoff_t y = x; y < N; ++ y)
+ swap (m[x][y], m[y][x]);
+}
+
+#if WANT_UNROLLED_COPY
+
+#if CPU_HAS_SSE
+
+#if linux // Non-linux gcc versions (BSD, Solaris) can't handle "x" constraint and provide no alternative.
+template <>
+inline void load_identity (matrix<4,4,float>& m)
+{
+ asm (
+ "movaps %4, %%xmm1 \n\t" // 1 0 0 0
+ "movups %4, %0 \n\t" // 1 0 0 0
+ "shufps $0xB1,%%xmm1,%%xmm1 \n\t" // 0 1 0 0
+ "movups %%xmm1, %1 \n\t" // 0 1 0 0
+ "shufps $0x4F,%4,%%xmm1 \n\t" // 0 0 1 0
+ "shufps $0x1B,%4,%4 \n\t" // 0 0 0 1
+ "movups %%xmm1, %2 \n\t" // 0 0 1 0
+ "movups %4, %3" // 0 0 0 1
+ : "=m"(m[0][0]), "=m"(m[1][0]), "=m"(m[2][0]), "=m"(m[3][0])
+ : "x"(1.0f)
+ : "xmm1", "memory"
+ );
+ asm ("":::"memory");
+}
+#endif
+
+inline void _sse_load_matrix (const float* m)
+{
+ asm (
+ "movups %0, %%xmm4 \n\t" // xmm4 = m[1 2 3 4]
+ "movups %1, %%xmm5 \n\t" // xmm5 = m[1 2 3 4]
+ "movups %2, %%xmm6 \n\t" // xmm6 = m[1 2 3 4]
+ "movups %3, %%xmm7" // xmm7 = m[1 2 3 4]
+ : : "m"(m[0]), "m"(m[4]), "m"(m[8]), "m"(m[12])
+ : "xmm4", "xmm5", "xmm6", "xmm7", "memory"
+ );
+}
+
+inline void _sse_transform_to_vector (float* result)
+{
+ asm (
+ "movaps %%xmm0, %%xmm1 \n\t" // xmm1 = t[0 1 2 3]
+ "movaps %%xmm0, %%xmm2 \n\t" // xmm1 = t[0 1 2 3]
+ "movaps %%xmm0, %%xmm3 \n\t" // xmm1 = t[0 1 2 3]
+ "shufps $0x00, %%xmm0, %%xmm0 \n\t" // xmm0 = t[0 0 0 0]
+ "shufps $0x66, %%xmm1, %%xmm1 \n\t" // xmm1 = t[1 1 1 1]
+ "shufps $0xAA, %%xmm2, %%xmm2 \n\t" // xmm2 = t[2 2 2 2]
+ "shufps $0xFF, %%xmm3, %%xmm3 \n\t" // xmm3 = t[3 3 3 3]
+ "mulps %%xmm4, %%xmm0 \n\t" // xmm0 = t[0 0 0 0] * m[0 1 2 3]
+ "mulps %%xmm5, %%xmm1 \n\t" // xmm1 = t[1 1 1 1] * m[0 1 2 3]
+ "addps %%xmm1, %%xmm0 \n\t" // xmm0 = xmm0 + xmm1
+ "mulps %%xmm6, %%xmm2 \n\t" // xmm2 = t[2 2 2 2] * m[0 1 2 3]
+ "mulps %%xmm7, %%xmm3 \n\t" // xmm3 = t[3 3 3 3] * m[0 1 2 3]
+ "addps %%xmm3, %%xmm2 \n\t" // xmm2 = xmm2 + xmm3
+ "addps %%xmm2, %%xmm0 \n\t" // xmm0 = result
+ "movups %%xmm0, %0"
+ : "=m"(result[0]), "=m"(result[1]), "=m"(result[2]), "=m"(result[3]) :
+ : "xmm0", "xmm1", "xmm2", "xmm3", "xmm4", "xmm5", "xmm6", "xmm7", "memory"
+ );
+}
+
+template <>
+inline tuple<4,float> operator* (const tuple<4,float>& t, const matrix<4,4,float>& m)
+{
+ tuple<4,float> result;
+ _sse_load_matrix (m.begin());
+ asm ("movups %0, %%xmm0" : : "m"(t[0]), "m"(t[1]), "m"(t[2]), "m"(t[3]) : "xmm0", "memory");
+ _sse_transform_to_vector (result.begin());
+ return (result);
+}
+
+template <>
+inline matrix<4,4,float> operator* (const matrix<4,4,float>& m1, const matrix<4,4,float>& m2)
+{
+ matrix<4,4,float> result;
+ _sse_load_matrix (m2.begin());
+ for (uoff_t r = 0; r < 4; ++ r) {
+ asm ("movups %0, %%xmm0" : : "m"(m1[r][0]), "m"(m1[r][1]), "m"(m1[r][2]), "m"(m1[r][3]) : "xmm0", "memory");
+ _sse_transform_to_vector (result[r]);
+ }
+ return (result);
+}
+
+#elif CPU_HAS_3DNOW
+
+/// Specialization for 4-component vector transform, the slow part of 3D graphics.
+template <>
+static tuple<4,float> operator* (const tuple<4,float>& t, const matrix<4,4,float>& m)
+{
+ tuple<4,float> result;
+ // This is taken from "AMD Athlon Code Optimization Guide" from AMD. 18 cycles!
+ // If you are writing a 3D engine, you may want to copy it instead of calling it
+ // because of the femms instruction at the end, which takes 2 cycles.
+ asm (
+ "movq %2, %%mm0 \n\t" // y | x
+ "movq %3, %%mm1 \n\t" // w | z
+ "movq %%mm0, %%mm2 \n\t" // y | x
+ "movq %4, %%mm3 \n\t" // m[0][1] | m[0][0]
+ "punpckldq %%mm0, %%mm0 \n\t" // x | x
+ "movq %6, %%mm4 \n\t" // m[1][1] | m[1][0]
+ "pfmul %%mm0, %%mm3 \n\t" // x*m[0][1] | x*m[0][0]
+ "punpckhdq %%mm2, %%mm2 \n\t" // y | y
+ "pfmul %%mm2, %%mm4 \n\t" // y*m[1][1] | y*m[1][0]
+ "movq %5, %%mm5 \n\t" // m[0][3] | m[0][2]
+ "movq %7, %%mm7 \n\t" // m[1][3] | m[1][2]
+ "movq %%mm1, %%mm6 \n\t" // w | z
+ "pfmul %%mm0, %%mm5 \n\t" // x*m[0][3] | v0>x*m[0][2]
+ "movq %8, %%mm0 \n\t" // m[2][1] | m[2][0]
+ "punpckldq %%mm1, %%mm1 \n\t" // z | z
+ "pfmul %%mm2, %%mm7 \n\t" // y*m[1][3] | y*m[1][2]
+ "movq %9, %%mm2 \n\t" // m[2][3] | m[2][2]
+ "pfmul %%mm1, %%mm0 \n\t" // z*m[2][1] | z*m[2][0]
+ "pfadd %%mm4, %%mm3 \n\t" // x*m[0][1]+y*m[1][1] | x*m[0][0]+y*m[1][0]
+ "movq %10, %%mm4 \n\t" // m[3][1] | m[3][0]
+ "pfmul %%mm1, %%mm2 \n\t" // z*m[2][3] | z*m[2][2]
+ "pfadd %%mm7, %%mm5 \n\t" // x*m[0][3]+y*m[1][3] | x*m[0][2]+y*m[1][2]
+ "movq %11, %%mm1 \n\t" // m[3][3] | m[3][2]
+ "punpckhdq %%mm6, %%mm6 \n\t" // w | w
+ "pfadd %%mm0, %%mm3 \n\t" // x*m[0][1]+y*m[1][1]+z*m[2][1] | x*m[0][0]+y*m[1][0]+z*m[2][0]
+ "pfmul %%mm6, %%mm4 \n\t" // w*m[3][1] | w*m[3][0]
+ "pfmul %%mm6, %%mm1 \n\t" // w*m[3][3] | w*m[3][2]
+ "pfadd %%mm2, %%mm5 \n\t" // x*m[0][3]+y*m[1][3]+z*m[2][3] | x*m[0][2]+y*m[1][2]+z*m[2][2]
+ "pfadd %%mm4, %%mm3 \n\t" // x*m[0][1]+y*m[1][1]+z*m[2][1]+w*m[3][1] | x*m[0][0]+y*m[1][0]+z*m[2][0]+w*m[3][0]
+ "movq %%mm3, %0 \n\t" // store result->y | result->x
+ "pfadd %%mm1, %%mm5 \n\t" // x*m[0][3]+y*m[1][3]+z*m[2][3]+w*m[3][3] | x*m[0][2]+y*m[1][2]+z*m[2][2]+w*m[3][2]
+ "movq %%mm5, %1" // store result->w | result->z
+ : "=m"(result[0]), "=m"(result[2])
+ : "m"(t[0]), "m"(t[2]),
+ "m"(m[0][0]), "m"(m[0][2]),
+ "m"(m[1][0]), "m"(m[1][2]),
+ "m"(m[2][0]), "m"(m[2][2]),
+ "m"(m[3][0]), "m"(m[3][2])
+ : ALL_MMX_REGS_CHANGELIST, "memory"
+ );
+ asm ("":::"memory");
+ simd::reset_mmx();
+ return (result);
+}
+
+#else // If no processor extensions, just unroll the multiplication
+
+/// Specialization for 4-component vector transform, the slow part of 3D graphics.
+template <> inline tuple<4,float> operator* (const tuple<4,float>& t, const matrix<4,4,float>& m)
+{
+ tuple<4,float> tr;
+ for (uoff_t i = 0; i < 4; ++ i)
+ tr[i] = t[0] * m[0][i] + t[1] * m[1][i] + t[2] * m[2][i] + t[3] * m[3][i];
+ return (tr);
+}
+
+#endif // CPU_HAS_3DNOW
+#endif // WANT_UNROLLED_COPY
+
+} // namespace ustl
+
+#endif
diff --git a/ecos/packages/language/cxx/ustl/current/include/ustl/ulimits.h b/ecos/packages/language/cxx/ustl/current/include/ustl/ulimits.h
new file mode 100644
index 0000000..247f3e2
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/include/ustl/ulimits.h
@@ -0,0 +1,90 @@
+// This file is part of the uSTL library, an STL implementation.
+//
+// Copyright (c) 2005 by Mike Sharov <msharov@users.sourceforge.net>
+// This file is free software, distributed under the MIT License.
+
+#ifndef ULIMITS_H_1C2192EA3821E0811BBAF86B0F048364
+#define ULIMITS_H_1C2192EA3821E0811BBAF86B0F048364
+
+#include "utypes.h"
+
+namespace ustl {
+
+#define __limits_digits(T) (sizeof(T)*8)
+#define __limits_digits10(T) (sizeof(T)*8*643/2136+1)
+
+/// \class numeric_limits ulimits.h ustl.h
+/// \brief Defines numeric limits for a type.
+///
+template <typename T>
+struct numeric_limits {
+ /// Returns the minimum value for type T.
+ static inline T min (void) { return (T(0)); }
+ /// Returns the minimum value for type T.
+ static inline T max (void) { return (T(0)); }
+ static const bool is_signed = false; ///< True if the type is signed.
+ static const bool is_integer = false; ///< True if stores an exact value.
+ static const bool is_integral = false; ///< True if fixed size and cast-copyable.
+ static const unsigned digits = __limits_digits(T); ///< Number of bits in T
+ static const unsigned digits10 = __limits_digits10(T); ///< Maximum number of decimal digits in printed version of T
+};
+
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+
+template <typename T>
+struct numeric_limits<T*> {
+ static inline T* min (void) { return (NULL); }
+ static inline T* max (void) { return (reinterpret_cast<T*>(UINTPTR_MAX)); }
+ static const bool is_signed = false;
+ static const bool is_integer = true;
+ static const bool is_integral = true;
+ static const unsigned digits = __limits_digits(T*);
+ static const unsigned digits10 = __limits_digits10(T*);
+};
+
+#define _NUMERIC_LIMITS(type, minVal, maxVal, bSigned, bInteger, bIntegral) \
+template <> \
+struct numeric_limits<type> { \
+ static inline type min (void) { return (minVal); } \
+ static inline type max (void) { return (maxVal); } \
+ static const bool is_signed = bSigned; \
+ static const bool is_integer = bInteger; \
+ static const bool is_integral = bIntegral; \
+ static const unsigned digits = __limits_digits(type); \
+ static const unsigned digits10 = __limits_digits10(type); \
+}
+
+//--------------------------------------------------------------------------------------
+// type min max signed integer integral
+//--------------------------------------------------------------------------------------
+_NUMERIC_LIMITS (bool, false, true, false, true, true);
+_NUMERIC_LIMITS (char, CHAR_MIN, CHAR_MAX, true, true, true);
+_NUMERIC_LIMITS (int, INT_MIN, INT_MAX, true, true, true);
+_NUMERIC_LIMITS (short, SHRT_MIN, SHRT_MAX, true, true, true);
+_NUMERIC_LIMITS (long, LONG_MIN, LONG_MAX, true, true, true);
+#if HAVE_THREE_CHAR_TYPES
+_NUMERIC_LIMITS (signed char, SCHAR_MIN, SCHAR_MAX, true, true, true);
+#endif
+_NUMERIC_LIMITS (unsigned char, 0, UCHAR_MAX, false, true, true);
+_NUMERIC_LIMITS (unsigned int, 0, UINT_MAX, false, true, true);
+_NUMERIC_LIMITS (unsigned short,0, USHRT_MAX, false, true, true);
+_NUMERIC_LIMITS (unsigned long, 0, ULONG_MAX, false, true, true);
+_NUMERIC_LIMITS (wchar_t, 0, WCHAR_MAX, false, true, true);
+_NUMERIC_LIMITS (float, FLT_MIN, FLT_MAX, true, false, true);
+_NUMERIC_LIMITS (double, DBL_MIN, DBL_MAX, true, false, true);
+_NUMERIC_LIMITS (long double, LDBL_MIN, LDBL_MAX, true, false, true);
+#if HAVE_LONG_LONG
+_NUMERIC_LIMITS (long long, LLONG_MIN, LLONG_MAX, true, true, true);
+_NUMERIC_LIMITS (unsigned long long, 0, ULLONG_MAX, false, true, true);
+#endif
+//--------------------------------------------------------------------------------------
+
+#endif // DOXYGEN_SHOULD_SKIP_THIS
+
+/// Macro for defining numeric_limits specializations
+#define NUMERIC_LIMITS(type, minVal, maxVal, bSigned, bInteger, bIntegral) \
+namespace ustl { _NUMERIC_LIMITS (type, minVal, maxVal, bSigned, bInteger, bIntegral); }
+
+} // namespace ustl
+
+#endif
diff --git a/ecos/packages/language/cxx/ustl/current/include/ustl/ulist.h b/ecos/packages/language/cxx/ustl/current/include/ustl/ulist.h
new file mode 100644
index 0000000..5e0ada8
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/include/ustl/ulist.h
@@ -0,0 +1,73 @@
+// This file is part of the uSTL library, an STL implementation.
+//
+// Copyright (c) 2005 by Mike Sharov <msharov@users.sourceforge.net>
+// This file is free software, distributed under the MIT License.
+
+#ifndef ULIST_H_54E3B510498982C87A0A1E1932E6729D
+#define ULIST_H_54E3B510498982C87A0A1E1932E6729D
+
+#include "uvector.h"
+#include "uctralgo.h"
+
+namespace ustl {
+
+/// \class list ulist.h ustl.h
+/// \ingroup Sequences
+///
+/// \brief Linked list, defined as an alias to vector.
+///
+template <typename T>
+class list : public vector<T> {
+public:
+ typedef typename vector<T>::size_type size_type;
+ typedef typename vector<T>::iterator iterator;
+ typedef typename vector<T>::const_iterator const_iterator;
+ typedef typename vector<T>::reference reference;
+ typedef typename vector<T>::const_reference const_reference;
+public:
+ inline list (void) : vector<T> () {}
+ inline explicit list (size_type n) : vector<T> (n) {}
+ inline list (size_type n, const T& v) : vector<T> (n, v) {}
+ inline list (const list<T>& v) : vector<T> (v) {}
+ inline list (const_iterator i1, const_iterator i2) : vector<T> (i1, i2) {}
+ inline size_type size (void) const { return (vector<T>::size()); }
+ inline iterator begin (void) { return (vector<T>::begin()); }
+ inline const_iterator begin (void) const { return (vector<T>::begin()); }
+ inline iterator end (void) { return (vector<T>::end()); }
+ inline const_iterator end (void) const { return (vector<T>::end()); }
+ inline void push_front (const T& v) { insert (begin(), v); }
+ inline void pop_front (void) { erase (begin()); }
+ inline const_reference front (void) const { return (*begin()); }
+ inline reference front (void) { return (*begin()); }
+ inline void remove (const T& v) { ::ustl::remove (*this, v); }
+ inline void unique (void) { ::ustl::unique (*this); }
+ inline void sort (void) { ::ustl::sort (*this); }
+ void merge (list<T>& l);
+ void splice (iterator ip, list<T>& l, iterator first = NULL, iterator last = NULL);
+};
+
+/// Merges the contents with \p l. Assumes both lists are sorted.
+template <typename T>
+void list<T>::merge (list& l)
+{
+ insert_space (begin(), l.size());
+ ::ustl::merge (iat(l.size()), end(), l.begin(), l.end(), begin());
+}
+
+/// Moves the range [first, last) from \p l to this list at \p ip.
+template <typename T>
+void list<T>::splice (iterator ip, list<T>& l, iterator first, iterator last)
+{
+ if (!first)
+ first = l.begin();
+ if (!last)
+ last = l.end();
+ insert (ip, first, last);
+ l.erase (first, last);
+}
+
+#define deque list ///< list has all the functionality provided by deque
+
+} // namespace ustl
+
+#endif
diff --git a/ecos/packages/language/cxx/ustl/current/include/ustl/umap.h b/ecos/packages/language/cxx/ustl/current/include/ustl/umap.h
new file mode 100644
index 0000000..55650e4
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/include/ustl/umap.h
@@ -0,0 +1,181 @@
+// This file is part of the uSTL library, an STL implementation.
+//
+// Copyright (c) 2005 by Mike Sharov <msharov@users.sourceforge.net>
+// This file is free software, distributed under the MIT License.
+
+#ifndef UMAP_H_45643F516E02A87A3DCEA5024052A6F5
+#define UMAP_H_45643F516E02A87A3DCEA5024052A6F5
+
+#include "uvector.h"
+#include "ufunction.h"
+
+namespace ustl {
+
+/// \class map umap.h ustl.h
+/// \ingroup AssociativeContainers
+///
+/// \brief A sorted associative container of pair<K,V>
+///
+template <typename K, typename V, typename Comp = less<K> >
+class map : public vector<pair<K,V> > {
+public:
+ typedef K key_type;
+ typedef V data_type;
+ typedef const K& const_key_ref;
+ typedef const V& const_data_ref;
+ typedef const map<K,V,Comp>& rcself_t;
+ typedef vector<pair<K,V> > base_class;
+ typedef typename base_class::value_type value_type;
+ typedef typename base_class::size_type size_type;
+ typedef typename base_class::pointer pointer;
+ typedef typename base_class::const_pointer const_pointer;
+ typedef typename base_class::reference reference;
+ typedef typename base_class::const_reference const_reference;
+ typedef typename base_class::const_iterator const_iterator;
+ typedef typename base_class::iterator iterator;
+ typedef typename base_class::reverse_iterator reverse_iterator;
+ typedef typename base_class::const_reverse_iterator const_reverse_iterator;
+ typedef pair<const_iterator,const_iterator> const_range_t;
+ typedef pair<iterator,iterator> range_t;
+ typedef pair<iterator,bool> insertrv_t;
+public:
+ inline map (void) : base_class() {}
+ explicit inline map (size_type n) : base_class (n) {}
+ inline map (rcself_t v) : base_class (v) {}
+ inline map (const_iterator i1, const_iterator i2) : base_class() { insert (i1, i2); }
+ inline rcself_t operator= (rcself_t v) { base_class::operator= (v); return (*this); }
+ inline const_data_ref operator[] (const_key_ref i) const;
+ data_type& operator[] (const_key_ref i);
+ inline size_type size (void) const { return (base_class::size()); }
+ inline iterator begin (void) { return (base_class::begin()); }
+ inline const_iterator begin (void) const { return (base_class::begin()); }
+ inline iterator end (void) { return (base_class::end()); }
+ inline const_iterator end (void) const { return (base_class::end()); }
+ inline void assign (const_iterator i1, const_iterator i2) { clear(); insert (i1, i2); }
+ inline void push_back (const_reference v) { insert (v); }
+ inline const_iterator find (const_key_ref k) const;
+ inline iterator find (const_key_ref k) { return (const_cast<iterator> (const_cast<rcself_t>(*this).find (k))); }
+ inline const_iterator find_data (const_data_ref v, const_iterator first = NULL, const_iterator last = NULL) const;
+ inline iterator find_data (const_data_ref v, iterator first = NULL, iterator last = NULL) { return (const_cast<iterator> (find_data (v, const_cast<const_iterator>(first), const_cast<const_iterator>(last)))); }
+ insertrv_t insert (const_reference v);
+ inline iterator insert (iterator, const_reference v) { return (insert(v).first); }
+ void insert (const_iterator i1, const_iterator i2);
+ inline void erase (const_key_ref k);
+ inline iterator erase (iterator ep) { return (base_class::erase (ep)); }
+ inline iterator erase (iterator ep1, iterator ep2) { return (base_class::erase (ep1, ep2)); }
+ inline void clear (void) { base_class::clear(); }
+ const_iterator lower_bound (const_key_ref k) const;
+ inline iterator lower_bound (const_key_ref k) { return (const_cast<iterator>(const_cast<rcself_t>(*this).lower_bound (k))); }
+ const_iterator upper_bound (const_key_ref k) const;
+ inline iterator upper_bound (const_key_ref k) { return (const_cast<iterator>(const_cast<rcself_t>(*this).upper_bound (k))); }
+ const_range_t equal_range (const_key_ref k) const;
+ inline range_t equal_range (const_key_ref k) { return (const_cast<const_range_t>(const_cast<rcself_t>(*this).equal_range (k))); }
+};
+
+template <typename K, typename V, typename Comp>
+typename map<K,V,Comp>::const_iterator map<K,V,Comp>::lower_bound (const_key_ref k) const
+{
+ const_iterator first (begin()), last (end());
+ while (first != last) {
+ const_iterator mid = advance (first, distance (first,last) / 2);
+ if (Comp()(mid->first, k))
+ first = advance (mid, 1);
+ else
+ last = mid;
+ }
+ return (first);
+}
+
+template <typename K, typename V, typename Comp>
+typename map<K,V,Comp>::const_iterator map<K,V,Comp>::upper_bound (const_key_ref k) const
+{
+ const_iterator first (begin()), last (end());
+ while (first != last) {
+ const_iterator mid = advance (first, distance (first,last) / 2);
+ if (Comp()(k, mid->first))
+ last = mid;
+ else
+ first = mid + 1;
+ }
+ return (last);
+}
+
+template <typename K, typename V, typename Comp>
+typename map<K,V,Comp>::const_range_t map<K,V,Comp>::equal_range (const_key_ref k) const
+{
+ const_range_t rv;
+ rv.second = rv.first = lower_bound (k);
+ while (rv.second != end() && !Comp()(k, rv.second->first))
+ ++rv.second;
+ return (rv);
+}
+
+/// Returns the pair<K,V> where K = \p k.
+template <typename K, typename V, typename Comp>
+inline typename map<K,V,Comp>::const_iterator map<K,V,Comp>::find (const_key_ref k) const
+{
+ const_iterator i = lower_bound (k);
+ return ((i < end() && Comp()(k,i->first)) ? end() : i);
+}
+
+/// Returns the pair<K,V> where V = \p v, occuring in range [first,last).
+template <typename K, typename V, typename Comp>
+inline typename map<K,V,Comp>::const_iterator map<K,V,Comp>::find_data (const_data_ref v, const_iterator first, const_iterator last) const
+{
+ if (!first) first = begin();
+ if (!last) last = end();
+ for (; first != last && first->second != v; ++first) ;
+ return (first);
+}
+
+/// Returns data associated with key \p k.
+template <typename K, typename V, typename Comp>
+inline const typename map<K,V,Comp>::data_type& map<K,V,Comp>::operator[] (const_key_ref k) const
+{
+ assert (find(k) != end() && "operator[] const can not insert non-existent keys");
+ return (find(k)->second);
+}
+
+/// Returns data associated with key \p k.
+template <typename K, typename V, typename Comp>
+typename map<K,V,Comp>::data_type& map<K,V,Comp>::operator[] (const_key_ref k)
+{
+ iterator ip = lower_bound (k);
+ if (ip == end() || Comp()(k,ip->first))
+ ip = base_class::insert (ip, make_pair (k, V()));
+ return (ip->second);
+}
+
+/// Inserts the pair into the container.
+template <typename K, typename V, typename Comp>
+typename map<K,V,Comp>::insertrv_t map<K,V,Comp>::insert (const_reference v)
+{
+ iterator ip = lower_bound (v.first);
+ bool bInserted = ip == end() || Comp()(v.first, ip->first);
+ if (bInserted)
+ ip = base_class::insert (ip, v);
+ return (make_pair (ip, bInserted));
+}
+
+/// Inserts elements from range [i1,i2) into the container.
+template <typename K, typename V, typename Comp>
+void map<K,V,Comp>::insert (const_iterator i1, const_iterator i2)
+{
+ assert (i1 <= i2);
+ base_class::reserve (size() + distance (i1, i2));
+ for (; i1 != i2; ++i1)
+ insert (*i1);
+}
+
+/// Erases the element with key value \p k.
+template <typename K, typename V, typename Comp>
+inline void map<K,V,Comp>::erase (const_key_ref k)
+{
+ iterator ip = find (k);
+ if (ip != end())
+ erase (ip);
+}
+
+} // namespace ustl
+
+#endif
diff --git a/ecos/packages/language/cxx/ustl/current/include/ustl/umatrix.h b/ecos/packages/language/cxx/ustl/current/include/ustl/umatrix.h
new file mode 100644
index 0000000..eda808e
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/include/ustl/umatrix.h
@@ -0,0 +1,121 @@
+// This file is part of the uSTL library, an STL implementation.
+//
+// Copyright (c) 2005 by Mike Sharov <msharov@users.sourceforge.net>
+// This file is free software, distributed under the MIT License.
+
+#ifndef UMATRIX_H_740EBFEF554E833645E0FD72419A8185
+#define UMATRIX_H_740EBFEF554E833645E0FD72419A8185
+
+#include "utuple.h"
+
+namespace ustl {
+
+/// \class matrix umatrix.h ustl.h
+/// \ingroup Sequences
+///
+/// \brief A two-dimensional array of NX*NY elements of type T.
+///
+template <size_t NX, size_t NY, typename T>
+class matrix : public tuple<NX*NY,T> {
+public:
+ typedef tuple<NX,T> row_type;
+ typedef tuple<NY,T> column_type;
+ typedef tuple<NX*NY,T> tuple_type;
+ typedef typename tuple_type::value_type value_type;
+ typedef typename tuple_type::size_type size_type;
+ typedef typename tuple_type::pointer pointer;
+ typedef typename tuple_type::const_pointer const_pointer;
+ typedef typename tuple_type::reference reference;
+ typedef typename tuple_type::const_reference const_reference;
+ typedef typename tuple_type::iterator iterator;
+ typedef typename tuple_type::const_iterator const_iterator;
+ typedef typename tuple_type::range_t range_t;
+ typedef typename tuple_type::const_range_t const_range_t;
+ typedef typename tuple_type::reverse_iterator reverse_iterator;
+ typedef typename tuple_type::const_reverse_iterator const_reverse_iterator;
+public:
+ inline matrix (void) { }
+ inline size_type columns (void) const { return (NX); }
+ inline size_type rows (void) const { return (NY); }
+ inline const_iterator at (size_type i) const { return (matrix::begin() + i * NX); }
+ inline iterator at (size_type i) { return (matrix::begin() + i * NX); }
+ inline const_iterator operator[] (size_type i) const { return (at (i)); }
+ inline iterator operator[] (size_type i) { return (at (i)); }
+ inline row_type row (size_type r) const { return (row_type (at (r))); }
+ inline column_type column (size_type c) const;
+ template <typename T2>
+ inline const matrix& operator= (const matrix<NX,NY,T2>& src) { tuple_type::operator= (src); return (*this); }
+ inline const matrix& operator= (const matrix<NX,NY,T>& src) { tuple_type::operator= (src); return (*this); }
+ inline const matrix& operator+= (const_reference v) { tuple_type::operator+= (v); return (*this); }
+ inline const matrix& operator-= (const_reference v) { tuple_type::operator-= (v); return (*this); }
+ inline const matrix& operator*= (const_reference v) { tuple_type::operator*= (v); return (*this); }
+ inline const matrix& operator/= (const_reference v) { tuple_type::operator/= (v); return (*this); }
+ inline const matrix operator+ (const_reference v) const
+ { matrix result (*this); result += v; return (result); }
+ inline const matrix operator- (const_reference v) const
+ { matrix result (*this); result -= v; return (result); }
+ inline const matrix operator* (const_reference v) const
+ { matrix result (*this); result *= v; return (result); }
+ inline const matrix operator/ (const_reference v) const
+ { matrix result (*this); result /= v; return (result); }
+};
+
+template <size_t NX, size_t NY, typename T>
+inline typename matrix<NX,NY,T>::column_type matrix<NX,NY,T>::column (size_type c) const
+{
+ column_type result;
+ const_iterator src (matrix::begin() + c);
+ iterator dest (result.begin());
+ for (uoff_t i = 0; i < NY; ++ i, ++ dest, src += NX)
+ *dest = *src;
+ return (result);
+}
+
+//----------------------------------------------------------------------
+// Define SIMD specializations for member functions.
+
+#if CPU_HAS_SSE
+#define MATRIX_R(v) "m"(v[0]),"m"(v[4]),"m"(v[8]),"m"(v[12])
+#define MATRIX_W(v) "=m"(v[0]),"=m"(v[4]),"=m"(v[8]),"=m"(v[12])
+#define SSE_TUPLE_SPECS(n,type) \
+template <> inline tuple<n,type>::tuple (void) \
+{ asm volatile ("xorps %%xmm0, %%xmm0\n\t" \
+ "movups %%xmm0, %0\n\t" \
+ "movups %%xmm0, %1\n\t" \
+ "movups %%xmm0, %2\n\t" \
+ "movups %%xmm0, %3" \
+ : "=m"(m_v[0]),"=m"(m_v[4]),"=m"(m_v[8]),"=m"(m_v[12]) \
+ ::"xmm0","memory"); \
+} \
+namespace simd { \
+SIMD_PASSIGN_SPEC(n,type) \
+{ \
+ asm volatile ("movups %2, %%xmm0\n\t" \
+ "movups %3, %%xmm1\n\t" \
+ "movups %%xmm0, %0\n\t" \
+ "movups %%xmm1, %1" \
+ : "=m"(oout[0]),"=m"(oout[4]) \
+ : "m"(oin[0]),"m"(oin[4]) \
+ : "xmm0", "xmm1", "memory"); \
+ asm volatile ("movups %2, %%xmm0\n\t" \
+ "movups %3, %%xmm1\n\t" \
+ "movups %%xmm0, %0\n\t" \
+ "movups %%xmm1, %1" \
+ : "=m"(oout[8]),"=m"(oout[12]) \
+ : "m"(oin[8]),"m"(oin[12]) \
+ : "xmm0", "xmm1", "memory"); \
+} \
+}
+SSE_TUPLE_SPECS(16,float)
+SSE_TUPLE_SPECS(16,int32_t)
+SSE_TUPLE_SPECS(16,uint32_t)
+#undef SSE_TUPLE_SPECS
+#undef TOUCH_MATRIX_R
+#undef TOUCH_MATRIX_W
+#undef MATRIX_R
+#undef MATRIX_W
+#endif
+
+} // namespace ustl
+
+#endif
diff --git a/ecos/packages/language/cxx/ustl/current/include/ustl/umemory.h b/ecos/packages/language/cxx/ustl/current/include/ustl/umemory.h
new file mode 100644
index 0000000..cea2cff
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/include/ustl/umemory.h
@@ -0,0 +1,195 @@
+// This file is part of the uSTL library, an STL implementation.
+//
+// Copyright (c) 2005 by Mike Sharov <msharov@users.sourceforge.net>
+// This file is free software, distributed under the MIT License.
+
+#ifndef UMEMORY_H_4AB5B0DB5BF09140541409CC47BCD17A
+#define UMEMORY_H_4AB5B0DB5BF09140541409CC47BCD17A
+
+#include "unew.h"
+#if HAVE_ALLOCA_H
+ #include <alloca.h>
+#else
+ #include <stdlib.h>
+#endif
+#include "upair.h"
+#include "uiterator.h"
+#include "ulimits.h"
+
+namespace ustl {
+
+/// \class auto_ptr umemory.h ustl.h
+/// \ingroup MemoryManagement
+///
+/// \brief A smart pointer.
+///
+/// Calls delete in the destructor; assignment transfers ownership.
+/// This class does not work with void pointers due to the absence
+/// of the required dereference operator.
+///
+template <typename T>
+class auto_ptr {
+public:
+ typedef T value_type;
+ typedef T* pointer;
+ typedef T& reference;
+public:
+ /// Takes ownership of \p p.
+ inline explicit auto_ptr (pointer p = NULL) : m_p (p) {}
+ /// Takes ownership of pointer in \p p. \p p relinquishes ownership.
+ inline auto_ptr (auto_ptr<T>& p) : m_p (p.release()) {}
+ /// Deletes the owned pointer.
+ inline ~auto_ptr (void) { delete m_p; }
+ /// Returns the pointer without relinquishing ownership.
+ inline pointer get (void) const { return (m_p); }
+ /// Returns the pointer and gives up ownership.
+ inline pointer release (void) { pointer rv (m_p); m_p = NULL; return (rv); }
+ /// Deletes the pointer and sets it equal to \p p.
+ inline void reset (pointer p) { if (p != m_p) { delete m_p; m_p = p; } }
+ /// Takes ownership of \p p.
+ inline auto_ptr<T>& operator= (pointer p) { reset (p); return (*this); }
+ /// Takes ownership of pointer in \p p. \p p relinquishes ownership.
+ inline auto_ptr<T>& operator= (auto_ptr<T>& p) { reset (p.release()); return (*this); }
+ inline reference operator* (void) const { return (*m_p); }
+ inline pointer operator-> (void) const { return (m_p); }
+ inline bool operator== (const pointer p) const { return (m_p == p); }
+ inline bool operator== (const auto_ptr<T>& p) const { return (m_p == p.m_p); }
+ inline bool operator< (const auto_ptr<T>& p) const { return (p.m_p < m_p); }
+private:
+ pointer m_p;
+};
+
+/// Calls the placement new on \p p.
+/// \ingroup RawStorageAlgorithms
+///
+template <typename T>
+inline void construct (T* p)
+{
+ new (p) T;
+}
+
+/// Calls the placement new on \p p.
+/// \ingroup RawStorageAlgorithms
+///
+template <typename ForwardIterator>
+inline void construct (ForwardIterator first, ForwardIterator last)
+{
+ typedef typename iterator_traits<ForwardIterator>::value_type value_type;
+ if (numeric_limits<value_type>::is_integral)
+ memset (first, 0, distance(first,last)*sizeof(value_type));
+ else
+ for (--last; intptr_t(first) <= intptr_t(last); ++first)
+ construct (&*first);
+}
+
+/// Calls the placement new on \p p.
+/// \ingroup RawStorageAlgorithms
+///
+template <typename T>
+inline void construct (T* p, const T& value)
+{
+ new (p) T (value);
+}
+
+/// Calls the destructor of \p p without calling delete.
+/// \ingroup RawStorageAlgorithms
+///
+template <typename T>
+inline void destroy (T* p) throw()
+{
+ p->~T();
+}
+
+// Helper templates to not instantiate anything for integral types.
+template <typename T>
+void dtors (T first, T last) throw()
+ { for (--last; intptr_t(first) <= intptr_t(last); ++first) destroy (&*first); }
+template <typename T, bool bIntegral>
+struct Sdtorsr {
+ inline void operator()(T first, T last) throw() { dtors (first, last); }
+};
+template <typename T>
+struct Sdtorsr<T,true> {
+ inline void operator()(T, T) throw() {}
+};
+
+/// Calls the destructor on elements in range [first, last) without calling delete.
+/// \ingroup RawStorageAlgorithms
+///
+template <typename ForwardIterator>
+inline void destroy (ForwardIterator first, ForwardIterator last) throw()
+{
+ typedef typename iterator_traits<ForwardIterator>::value_type value_type;
+ Sdtorsr<ForwardIterator,numeric_limits<value_type>::is_integral>()(first, last);
+}
+
+/// Casts \p p to the type of the second pointer argument.
+template <typename T> inline T* cast_to_type (void* p, const T*) { return ((T*) p); }
+
+/// \brief Creates a temporary buffer pair from \p p and \p n
+/// This is intended to be used with alloca to create temporary buffers.
+/// The size in the returned pair is set to 0 if the allocation is unsuccessful.
+/// \ingroup RawStorageAlgorithms
+///
+template <typename T>
+inline pair<T*, ptrdiff_t> make_temporary_buffer (void* p, size_t n, const T* ptype)
+{
+ return (make_pair (cast_to_type(p,ptype), ptrdiff_t(p ? n : 0)));
+}
+
+#if HAVE_ALLOCA_H
+ /// \brief Allocates a temporary buffer, if possible.
+ /// \ingroup RawStorageAlgorithms
+ #define get_temporary_buffer(size, ptype) make_temporary_buffer (alloca(size_of_elements(size, ptype)), size, ptype)
+ #define return_temporary_buffer(p)
+#else
+ #define get_temporary_buffer(size, ptype) make_temporary_buffer (malloc(size_of_elements(size, ptype)), size, ptype)
+ #define return_temporary_buffer(p) if (p) free (p), p = NULL
+#endif
+
+/// Copies [first, last) into result by calling copy constructors in result.
+/// \ingroup RawStorageAlgorithms
+///
+template <typename InputIterator, typename ForwardIterator>
+ForwardIterator uninitialized_copy (InputIterator first, InputIterator last, ForwardIterator result)
+{
+ for (; first < last; ++result, ++first)
+ construct (&*result, *first);
+ return (result);
+}
+
+/// Copies [first, first + n) into result by calling copy constructors in result.
+/// \ingroup RawStorageAlgorithms
+///
+template <typename InputIterator, typename ForwardIterator>
+ForwardIterator uninitialized_copy_n (InputIterator first, size_t n, ForwardIterator result)
+{
+ for (++n; --n; ++result, ++first)
+ construct (&*result, *first);
+ return (result);
+}
+
+/// Calls construct on all elements in [first, last) with value \p v.
+/// \ingroup RawStorageAlgorithms
+///
+template <typename ForwardIterator, typename T>
+void uninitialized_fill (ForwardIterator first, ForwardIterator last, const T& v)
+{
+ for (; first < last; ++first)
+ construct (&*first, v);
+}
+
+/// Calls construct on all elements in [first, first + n) with value \p v.
+/// \ingroup RawStorageAlgorithms
+///
+template <typename ForwardIterator, typename T>
+ForwardIterator uninitialized_fill_n (ForwardIterator first, size_t n, const T& v)
+{
+ for (++n; --n; ++first)
+ construct (&*first, v);
+ return (first);
+}
+
+} // namespace ustl
+
+#endif
diff --git a/ecos/packages/language/cxx/ustl/current/include/ustl/umultimap.h b/ecos/packages/language/cxx/ustl/current/include/ustl/umultimap.h
new file mode 100644
index 0000000..7067b33
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/include/ustl/umultimap.h
@@ -0,0 +1,120 @@
+// This file is part of the uSTL library, an STL implementation.
+//
+// Copyright (c) 2005 by Mike Sharov <msharov@users.sourceforge.net>
+// This file is free software, distributed under the MIT License.
+
+#ifndef UMULTIMAP_H_45743F516E02A87A3FCEA5024052A6F5
+#define UMULTIMAP_H_45743F516E02A87A3FCEA5024052A6F5
+
+#include "uvector.h"
+#include "ufunction.h"
+
+namespace ustl {
+
+/// \class multimap umultimap.h ustl.h
+/// \ingroup AssociativeContainers
+///
+/// \brief A sorted associative container that may container multiple entries for each key.
+///
+template <typename K, typename V, typename Comp = less<K> >
+class multimap : public vector<pair<K,V> > {
+public:
+ typedef K key_type;
+ typedef V data_type;
+ typedef const K& const_key_ref;
+ typedef const V& const_data_ref;
+ typedef const multimap<K,V,Comp>& rcself_t;
+ typedef vector<pair<K,V> > base_class;
+ typedef typename base_class::value_type value_type;
+ typedef typename base_class::size_type size_type;
+ typedef typename base_class::pointer pointer;
+ typedef typename base_class::const_pointer const_pointer;
+ typedef typename base_class::reference reference;
+ typedef typename base_class::const_reference const_reference;
+ typedef typename base_class::const_iterator const_iterator;
+ typedef typename base_class::iterator iterator;
+ typedef typename base_class::reverse_iterator reverse_iterator;
+ typedef typename base_class::const_reverse_iterator const_reverse_iterator;
+ typedef pair<const_iterator,const_iterator> const_range_t;
+ typedef pair<iterator,iterator> range_t;
+public:
+ inline multimap (void) : base_class() {}
+ explicit inline multimap (size_type n) : base_class (n) {}
+ inline multimap (rcself_t v) : base_class (v) {}
+ inline multimap (const_iterator i1, const_iterator i2) : base_class() { insert (i1, i2); }
+ inline rcself_t operator= (rcself_t v) { base_class::operator= (v); return (*this); }
+ inline size_type size (void) const { return (base_class::size()); }
+ inline iterator begin (void) { return (base_class::begin()); }
+ inline const_iterator begin (void) const { return (base_class::begin()); }
+ inline iterator end (void) { return (base_class::end()); }
+ inline const_iterator end (void) const { return (base_class::end()); }
+ inline void assign (const_iterator i1, const_iterator i2) { clear(); insert (i1, i2); }
+ inline size_type count (const_key_ref k) const { return (upper_bound(k) - lower_bound(k)); }
+ inline void push_back (const_reference v) { insert (v); }
+ inline const_iterator find (const_key_ref k) const;
+ inline iterator find (const_key_ref k) { return (const_cast<iterator> (const_cast<rcself_t>(*this).find (k))); }
+ inline const_range_t equal_range (const_key_ref k) const { return (make_pair (lower_bound(k), upper_bound(k))); }
+ inline range_t equal_range (const_key_ref k) { return (make_pair (const_cast<iterator>(lower_bound(k)), const_cast<iterator>(upper_bound(k)))); }
+ const_iterator lower_bound (const_key_ref k) const;
+ inline iterator lower_bound (const_key_ref k) { return (const_cast<iterator> (const_cast<rcself_t>(*this).lower_bound (k))); }
+ const_iterator upper_bound (const_key_ref k) const;
+ inline iterator upper_bound (const_key_ref k) { return (const_cast<iterator> (const_cast<rcself_t>(*this).upper_bound (k))); }
+ inline iterator insert (const_reference v) { return (base_class::insert (upper_bound (v.first), v)); }
+ void insert (const_iterator i1, const_iterator i2);
+ inline void erase (const_key_ref k) { erase (const_cast<iterator>(lower_bound(k)), const_cast<iterator>(upper_bound(k))); }
+ inline iterator erase (iterator ep) { return (base_class::erase (ep)); }
+ inline iterator erase (iterator ep1, iterator ep2) { return (base_class::erase (ep1, ep2)); }
+ inline void clear (void) { base_class::clear(); }
+};
+
+/// Returns an iterator to the first element with key value \p k.
+template <typename K, typename V, typename Comp>
+typename multimap<K,V,Comp>::const_iterator multimap<K,V,Comp>::lower_bound (const_key_ref k) const
+{
+ const_iterator first (begin()), last (end());
+ while (first != last) {
+ const_iterator mid = advance (first, distance (first,last) / 2);
+ if (Comp()(mid->first, k))
+ first = advance (mid, 1);
+ else
+ last = mid;
+ }
+ return (first);
+}
+
+/// Returns an iterator to the first element with key value \p k.
+template <typename K, typename V, typename Comp>
+typename multimap<K,V,Comp>::const_iterator multimap<K,V,Comp>::upper_bound (const_key_ref k) const
+{
+ const_iterator first (begin()), last (end());
+ while (first != last) {
+ const_iterator mid = advance (first, distance (first,last) / 2);
+ if (Comp()(k, mid->first))
+ last = mid;
+ else
+ first = advance (mid, 1);
+ }
+ return (last);
+}
+
+/// Returns the pair<K,V> where K = \p k.
+template <typename K, typename V, typename Comp>
+inline typename multimap<K,V,Comp>::const_iterator multimap<K,V,Comp>::find (const_key_ref k) const
+{
+ const_iterator i = lower_bound (k);
+ return ((i < end() && Comp()(k, i->first)) ? end() : i);
+}
+
+/// Inserts elements from range [i1,i2) into the container.
+template <typename K, typename V, typename Comp>
+void multimap<K,V,Comp>::insert (const_iterator i1, const_iterator i2)
+{
+ assert (i1 <= i2);
+ base_class::reserve (size() + distance (i1, i2));
+ for (; i1 != i2; ++i1)
+ insert (*i1);
+}
+
+} // namespace ustl
+
+#endif
diff --git a/ecos/packages/language/cxx/ustl/current/include/ustl/umultiset.h b/ecos/packages/language/cxx/ustl/current/include/ustl/umultiset.h
new file mode 100644
index 0000000..eb7c22e
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/include/ustl/umultiset.h
@@ -0,0 +1,93 @@
+// This file is part of the uSTL library, an STL implementation.
+//
+// Copyright (c) 2005 by Mike Sharov <msharov@users.sourceforge.net>
+// This file is free software, distributed under the MIT License.
+
+#ifndef UMULTISET_H_446AEDBB7F61C6994DC228C25D5FA3A1
+#define UMULTISET_H_446AEDBB7F61C6994DC228C25D5FA3A1
+
+#include "uvector.h"
+#include "ualgo.h"
+
+namespace ustl {
+
+/// \class multiset umultiset.h ustl.h
+/// \ingroup AssociativeContainers
+///
+/// \brief Multiple sorted container.
+/// Unlike set, it may contain multiple copies of each element.
+///
+template <typename T, typename Comp = less<T> >
+class multiset : public vector<T> {
+public:
+ typedef const multiset<T,Comp>& rcself_t;
+ typedef vector<T> base_class;
+ typedef typename base_class::value_type value_type;
+ typedef typename base_class::size_type size_type;
+ typedef typename base_class::pointer pointer;
+ typedef typename base_class::const_pointer const_pointer;
+ typedef typename base_class::reference reference;
+ typedef typename base_class::const_reference const_reference;
+ typedef typename base_class::const_iterator const_iterator;
+ typedef typename base_class::iterator iterator;
+ typedef typename base_class::reverse_iterator reverse_iterator;
+ typedef typename base_class::const_reverse_iterator const_reverse_iterator;
+public:
+ inline multiset (void) : base_class() {}
+ explicit inline multiset (size_type n) : base_class (n) {}
+ inline multiset (rcself_t v) : base_class (v) {}
+ inline multiset (const_iterator i1, const_iterator i2) : base_class() { insert (i1, i2); }
+ inline rcself_t operator= (rcself_t v) { base_class::operator= (v); return (*this); }
+ inline size_type size (void) const { return (base_class::size()); }
+ inline iterator begin (void) { return (base_class::begin()); }
+ inline const_iterator begin (void) const { return (base_class::begin()); }
+ inline iterator end (void) { return (base_class::end()); }
+ inline const_iterator end (void) const { return (base_class::end()); }
+ inline void assign (const_iterator i1, const_iterator i2) { clear(); insert (i1, i2); }
+ size_type count (const_reference v) const;
+ inline void push_back (const_reference v) { insert (v); }
+ inline iterator insert (const_reference v);
+ void insert (const_iterator i1, const_iterator i2);
+ void erase (const_reference v);
+ inline iterator erase (iterator ep) { return (base_class::erase (ep)); }
+ inline iterator erase (iterator ep1, iterator ep2) { return (base_class::erase (ep1, ep2)); }
+ inline void clear (void) { base_class::clear(); }
+};
+
+/// Returns the number of elements of value \p v.
+template <typename T, typename Comp>
+typename multiset<T,Comp>::size_type multiset<T,Comp>::count (const_reference v) const
+{
+ const pair<const_iterator,const_iterator> fr = equal_range (begin(), end(), v, Comp());
+ return (distance (fr.first, fr.second));
+}
+
+/// Inserts \p v.
+template <typename T, typename Comp>
+inline typename multiset<T,Comp>::iterator multiset<T,Comp>::insert (const_reference v)
+{
+ iterator ip = upper_bound (begin(), end(), v, Comp());
+ return (base_class::insert (ip, v));
+}
+
+/// Inserts all elements from range [i1,i2).
+template <typename T, typename Comp>
+void multiset<T,Comp>::insert (const_iterator i1, const_iterator i2)
+{
+ assert (i1 <= i2);
+ base_class::reserve (size() + distance (i1, i2));
+ for (; i1 < i2; ++i1)
+ push_back (*i1);
+}
+
+/// Erases all elements with value \p v.
+template <typename T, typename Comp>
+void multiset<T,Comp>::erase (const_reference v)
+{
+ pair<iterator,iterator> epr = equal_range (begin(), end(), v, Comp());
+ erase (epr.first, epr.second);
+}
+
+} // namespace ustl
+
+#endif
diff --git a/ecos/packages/language/cxx/ustl/current/include/ustl/unew.h b/ecos/packages/language/cxx/ustl/current/include/ustl/unew.h
new file mode 100644
index 0000000..20f532e
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/include/ustl/unew.h
@@ -0,0 +1,47 @@
+// This file is part of the uSTL library, an STL implementation.
+//
+// Copyright (c) 2005 by Mike Sharov <msharov@users.sourceforge.net>
+// This file is free software, distributed under the MIT License.
+
+#ifndef UNEW_H_11D237512B324C9C05A55DAF1BF086F1
+#define UNEW_H_11D237512B324C9C05A55DAF1BF086F1
+
+#include "uexception.h"
+#include <stdlib.h>
+
+/// Just like malloc, but throws on failure.
+void* tmalloc (size_t n) throw (ustl::bad_alloc) __attribute__((malloc));
+/// Just like free, but doesn't crash when given a NULL.
+inline void nfree (void* p) throw() { if (p) free (p); }
+
+#if WITHOUT_LIBSTDCPP
+
+//
+// These are replaceable signatures:
+// - normal single new and delete (no arguments, throw @c bad_alloc on error)
+// - normal array new and delete (same)
+// - @c nothrow single new and delete (take a @c nothrow argument, return
+// @c NULL on error)
+// - @c nothrow array new and delete (same)
+//
+// Placement new and delete signatures (take a memory address argument,
+// does nothing) may not be replaced by a user's program.
+//
+inline void* operator new (size_t n) throw (ustl::bad_alloc) { return (tmalloc (n)); }
+inline void* operator new[] (size_t n) throw (ustl::bad_alloc) { return (tmalloc (n)); }
+inline void operator delete (void* p) throw() { nfree (p); }
+inline void operator delete[] (void* p) throw() { nfree (p); }
+
+// Default placement versions of operator new.
+inline void* operator new (size_t, void* p) throw() { return (p); }
+inline void* operator new[] (size_t, void* p) throw() { return (p); }
+
+// Default placement versions of operator delete.
+inline void operator delete (void*, void*) throw() { }
+inline void operator delete[](void*, void*) throw() { }
+
+#else
+#include <new>
+#endif // WITHOUT_LIBSTDCPP
+
+#endif
diff --git a/ecos/packages/language/cxx/ustl/current/include/ustl/unumeric.h b/ecos/packages/language/cxx/ustl/current/include/ustl/unumeric.h
new file mode 100644
index 0000000..e1a1328
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/include/ustl/unumeric.h
@@ -0,0 +1,154 @@
+// This file is part of the uSTL library, an STL implementation.
+//
+// Copyright (c) 2005 by Mike Sharov <msharov@users.sourceforge.net>
+// This file is free software, distributed under the MIT License.
+
+#ifndef UNUMERIC_H_6C99D6F6363832C644A6FFF336E84E18
+#define UNUMERIC_H_6C99D6F6363832C644A6FFF336E84E18
+
+namespace ustl {
+
+/// Returns the sum of all elements in [first, last) added to \p init.
+/// \ingroup NumericAlgorithms
+///
+template <typename InputIterator, typename T>
+inline T accumulate (InputIterator first, InputIterator last, T init)
+{
+ while (first < last)
+ init += *first++;
+ return (init);
+}
+
+/// Returns the sum of all elements in [first, last) via \p op, added to \p init.
+/// \ingroup NumericAlgorithms
+///
+template <typename InputIterator, typename T, typename BinaryFunction>
+inline T accumulate (InputIterator first, InputIterator last, T init, BinaryFunction binary_op)
+{
+ while (first < last)
+ init = binary_op (init, *first++);
+ return (init);
+}
+
+/// Assigns range [value, value + (last - first)) to [first, last)
+/// \ingroup NumericAlgorithms
+///
+template <typename ForwardIterator, typename T>
+inline void iota (ForwardIterator first, ForwardIterator last, T value)
+{
+ while (first < last)
+ *first++ = value++;
+}
+
+/// Returns the sum of products of respective elements in the given ranges.
+/// \ingroup NumericAlgorithms
+///
+template <typename InputIterator1, typename InputIterator2, typename T>
+inline T inner_product (InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, T init)
+{
+ while (first1 < last1)
+ init += *first1++ * *first2++;
+ return (init);
+}
+
+/// Returns the sum of products of respective elements in the given ranges.
+/// \ingroup NumericAlgorithms
+///
+template <typename InputIterator1, typename InputIterator2, typename T,
+ typename BinaryOperation1, typename BinaryOperation2>
+inline T inner_product
+(InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, T init,
+ BinaryOperation1 sumOp, BinaryOperation2 productOp)
+{
+ while (first1 < last1)
+ init = sumOp (init, productOp (*first1++, *first2++));
+ return (init);
+}
+
+/// Writes result such that result[i] = sum (first...first+i)
+/// \ingroup NumericAlgorithms
+///
+template <typename InputIterator, typename OutputIterator>
+inline OutputIterator partial_sum (InputIterator first, InputIterator last, OutputIterator result)
+{
+ if (first < last)
+ *result = *first++;
+ while (first < last)
+ *++result = *first++ + *result;
+ return (result);
+}
+
+/// Writes result such that result[i] = sumOp (first...first+i)
+/// \ingroup NumericAlgorithms
+///
+template <typename InputIterator, typename OutputIterator, typename BinaryOperation>
+inline OutputIterator partial_sum (InputIterator first, InputIterator last, OutputIterator result, BinaryOperation sumOp)
+{
+ if (first < last)
+ *result = *first++;
+ while (first < last)
+ *++result = sumOp (*first++, *result);
+ return (result);
+}
+
+/// Writes result such that result[i] = first[i] - first[i - 1]
+/// \ingroup NumericAlgorithms
+///
+template <typename InputIterator, typename OutputIterator>
+inline OutputIterator adjacent_difference (InputIterator first, InputIterator last, OutputIterator result)
+{
+ if (first < last)
+ *result++ = *first++;
+ while (first < last)
+ *result++ = *first - *(first - 1);
+ return (result);
+}
+
+/// Writes result such that result[i] = differenceOp (first[i], first[i - 1])
+/// \ingroup NumericAlgorithms
+///
+template <typename InputIterator, typename OutputIterator, typename BinaryOperation>
+inline OutputIterator adjacent_difference (InputIterator first, InputIterator last, OutputIterator result, BinaryOperation differenceOp)
+{
+ if (first < last)
+ *result++ = *first++;
+ while (first < last)
+ *result++ = differenceOp (*first, *(first - 1));
+ return (result);
+}
+
+/// \brief Returns x^n.
+/// Donald Knuth's Russian Peasant algorithm.
+/// \ingroup NumericAlgorithms
+///
+template <typename T>
+inline T power (T x, unsigned n)
+{
+ T result (n % 2 ? x : 1);
+ while (n /= 2) {
+ x *= x;
+ if (n % 2)
+ result *= x;
+ }
+ return (result);
+}
+
+/// \brief Returns x^n, using \p op instead of multiplication.
+/// Donald Knuth's Russian Peasant algorithm.
+/// \ingroup NumericAlgorithms
+///
+template <typename T, typename BinaryOperation>
+inline T power (T x, unsigned n, BinaryOperation op)
+{
+ T result (n % 2 ? x : 1);
+ while (n /= 2) {
+ x = op (x, x);
+ if (n % 2)
+ result = op (result, x);
+ }
+ return (result);
+}
+
+} // namespace ustl
+
+#endif
diff --git a/ecos/packages/language/cxx/ustl/current/include/ustl/upair.h b/ecos/packages/language/cxx/ustl/current/include/ustl/upair.h
new file mode 100644
index 0000000..b2638f8
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/include/ustl/upair.h
@@ -0,0 +1,59 @@
+// This file is part of the uSTL library, an STL implementation.
+//
+// Copyright (c) 2005 by Mike Sharov <msharov@users.sourceforge.net>
+// This file is free software, distributed under the MIT License.
+
+#ifndef UPAIR_H_7DC08F1B7FECF8AE6856D84C3B617A75
+#define UPAIR_H_7DC08F1B7FECF8AE6856D84C3B617A75
+
+#include "utypes.h"
+
+namespace ustl {
+
+/// \class pair upair.h ustl.h
+/// \ingroup AssociativeContainers
+///
+/// \brief Container for two values.
+///
+template <typename T1, typename T2>
+class pair {
+public:
+ typedef T1 first_type;
+ typedef T2 second_type;
+public:
+ /// Default constructor.
+ inline pair (void) : first (T1()), second (T2()) {}
+ /// Initializes members with \p a, and \p b.
+ inline pair (const T1& a, const T2& b) : first (a), second (b) {}
+ inline pair& operator= (const pair<T1, T2>& p2) { first = p2.first; second = p2.second; return (*this); }
+ template <typename T3, typename T4>
+ inline pair& operator= (const pair<T3, T4>& p2) { first = p2.first; second = p2.second; return (*this); }
+public:
+ first_type first;
+ second_type second;
+};
+
+/// Compares both values of \p p1 to those of \p p2.
+template <typename T1, typename T2>
+inline bool operator== (const pair<T1,T2>& p1, const pair<T1,T2>& p2)
+{
+ return (p1.first == p2.first && p1.second == p2.second);
+}
+
+/// Compares both values of \p p1 to those of \p p2.
+template <typename T1, typename T2>
+bool operator< (const pair<T1,T2>& p1, const pair<T1,T2>& p2)
+{
+ return (p1.first < p2.first || (p1.first == p2.first && p1.second < p2.second));
+}
+
+/// Returns a pair object with (a,b)
+template <typename T1, typename T2>
+inline pair<T1,T2> make_pair (const T1& a, const T2& b)
+{
+ return (pair<T1,T2> (a, b));
+}
+
+} // namespace ustl
+
+#endif
diff --git a/ecos/packages/language/cxx/ustl/current/include/ustl/upredalgo.h b/ecos/packages/language/cxx/ustl/current/include/ustl/upredalgo.h
new file mode 100644
index 0000000..d0c0727
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/include/ustl/upredalgo.h
@@ -0,0 +1,589 @@
+// This file is part of the uSTL library, an STL implementation.
+//
+// Copyright (c) 2005 by Mike Sharov <msharov@users.sourceforge.net>
+// This file is free software, distributed under the MIT License.
+
+#ifndef UPREDALGO_H_2CB058AE0807A01A2F6A51BA5D5820A5
+#define UPREDALGO_H_2CB058AE0807A01A2F6A51BA5D5820A5
+
+#include "ualgo.h"
+
+namespace ustl {
+
+/// Copy_if copies elements from the range [first, last) to the range
+/// [result, result + (last - first)) if pred(*i) returns true.
+/// \ingroup MutatingAlgorithms
+/// \ingroup PredicateAlgorithms
+///
+template <typename InputIterator, typename OutputIterator, typename Predicate>
+inline OutputIterator copy_if (InputIterator first, InputIterator last, OutputIterator result, Predicate pred)
+{
+ for (; first != last; ++first) {
+ if (pred(*first)) {
+ *result = *first;
+ ++ result;
+ }
+ }
+ return (result);
+}
+
+/// Returns the first iterator i in the range [first, last) such that
+/// pred(*i) is true. Returns last if no such iterator exists.
+/// \ingroup SearchingAlgorithms
+/// \ingroup PredicateAlgorithms
+///
+template <typename InputIterator, typename Predicate>
+inline InputIterator find_if (InputIterator first, InputIterator last, Predicate pred)
+{
+ while (first != last && !pred (*first))
+ ++ first;
+ return (first);
+}
+
+/// Returns the first iterator such that p(*i, *(i + 1)) == true.
+/// \ingroup SearchingAlgorithms
+/// \ingroup PredicateAlgorithms
+///
+template <typename ForwardIterator, typename BinaryPredicate>
+inline ForwardIterator adjacent_find (ForwardIterator first, ForwardIterator last, BinaryPredicate p)
+{
+ if (first != last)
+ for (ForwardIterator prev = first; ++first != last; ++ prev)
+ if (p (*prev, *first))
+ return (prev);
+ return (last);
+}
+
+/// Returns the pointer to the first pair of unequal elements.
+/// \ingroup SearchingAlgorithms
+/// \ingroup PredicateAlgorithms
+///
+template <typename InputIterator, typename BinaryPredicate>
+inline pair<InputIterator,InputIterator>
+mismatch (InputIterator first1, InputIterator last1, InputIterator first2, BinaryPredicate comp)
+{
+ while (first1 != last1 && comp(*first1, *first2))
+ ++ first1, ++ first2;
+ return (make_pair (first1, first2));
+}
+
+/// Returns true if two ranges are equal.
+/// This is an extension, present in uSTL and SGI STL.
+/// \ingroup ConditionAlgorithms
+/// \ingroup PredicateAlgorithms
+///
+template <typename InputIterator, typename BinaryPredicate>
+inline bool equal (InputIterator first1, InputIterator last1, InputIterator first2, BinaryPredicate comp)
+{
+ return (mismatch (first1, last1, first2, comp).first == last1);
+}
+
+/// Count_if finds the number of elements in [first, last) that satisfy the
+/// predicate pred. More precisely, the first version of count_if returns the
+/// number of iterators i in [first, last) such that pred(*i) is true.
+/// \ingroup ConditionAlgorithms
+/// \ingroup PredicateAlgorithms
+///
+template <typename InputIterator, typename Predicate>
+inline size_t count_if (InputIterator first, InputIterator last, Predicate pred)
+{
+ size_t total = 0;
+ for (; first != last; ++first)
+ if (pred (*first))
+ ++ total;
+ return (total);
+}
+
+/// Replace_if replaces every element in the range [first, last) for which
+/// pred returns true with new_value. That is: for every iterator i, if
+/// pred(*i) is true then it performs the assignment *i = new_value.
+/// \ingroup MutatingAlgorithms
+/// \ingroup PredicateAlgorithms
+///
+template <typename ForwardIterator, typename Predicate, typename T>
+inline void replace_if (ForwardIterator first, ForwardIterator last, Predicate pred, const T& new_value)
+{
+ for (; first != last; ++first)
+ if (pred (*first))
+ *first = new_value;
+}
+
+/// Replace_copy_if copies elements from the range [first, last) to the range
+/// [result, result + (last-first)), except that any element for which pred is
+/// true is not copied; new_value is copied instead. More precisely, for every
+/// integer n such that 0 <= n < last-first, replace_copy_if performs the
+/// assignment *(result+n) = new_value if pred(*(first+n)),
+/// and *(result+n) = *(first+n) otherwise.
+/// \ingroup MutatingAlgorithms
+/// \ingroup PredicateAlgorithms
+///
+template <typename InputIterator, typename OutputIterator, typename Predicate, typename T>
+inline OutputIterator replace_copy_if (InputIterator first, InputIterator last, OutputIterator result, Predicate pred, const T& new_value)
+{
+ for (; first != last; ++result, ++first)
+ *result = pred(*first) ? new_value : *first;
+}
+
+/// Remove_copy_if copies elements from the range [first, last) to a range
+/// beginning at result, except that elements for which pred is true are not
+/// copied. The return value is the end of the resulting range. This operation
+/// is stable, meaning that the relative order of the elements that are copied
+/// is the same as in the range [first, last).
+/// \ingroup MutatingAlgorithms
+/// \ingroup PredicateAlgorithms
+///
+template <typename InputIterator, typename OutputIterator, typename Predicate>
+inline OutputIterator remove_copy_if (InputIterator first, InputIterator last, OutputIterator result, Predicate pred)
+{
+ for (; first != last; ++first)
+ if (pred (*first))
+ *result++ = *first;
+ return (result);
+}
+
+/// Remove_if removes from the range [first, last) every element x such that
+/// pred(x) is true. That is, remove_if returns an iterator new_last such that
+/// the range [first, new_last) contains no elements for which pred is true.
+/// The iterators in the range [new_last, last) are all still dereferenceable,
+/// but the elements that they point to are unspecified. Remove_if is stable,
+/// meaning that the relative order of elements that are not removed is
+/// unchanged.
+/// \ingroup MutatingAlgorithms
+/// \ingroup PredicateAlgorithms
+///
+template <typename ForwardIterator, typename Predicate>
+inline ForwardIterator remove_if (ForwardIterator first, ForwardIterator last, Predicate pred)
+{
+ return (remove_copy_if (first, last, first, pred));
+}
+
+/// The reason there are two different versions of unique_copy is that there
+/// are two different definitions of what it means for a consecutive group of
+/// elements to be duplicates. In the first version, the test is simple
+/// equality: the elements in a range [f, l) are duplicates if, for every
+/// iterator i in the range, either i == f or else *i == *(i-1). In the second,
+/// the test is an arbitrary Binary Predicate binary_pred: the elements in
+/// [f, l) are duplicates if, for every iterator i in the range, either
+/// i == f or else binary_pred(*i, *(i-1)) is true.
+/// \ingroup MutatingAlgorithms
+/// \ingroup PredicateAlgorithms
+///
+template <typename InputIterator, typename OutputIterator, typename BinaryPredicate>
+OutputIterator unique_copy (InputIterator first, InputIterator last, OutputIterator result, BinaryPredicate binary_pred)
+{
+ if (first != last) {
+ *result = *first;
+ while (++first != last)
+ if (!binary_pred (*first, *result))
+ *++result = *first;
+ ++ result;
+ }
+ return (result);
+}
+
+/// Every time a consecutive group of duplicate elements appears in the range
+/// [first, last), the algorithm unique removes all but the first element.
+/// That is, unique returns an iterator new_last such that the range [first,
+/// new_last) contains no two consecutive elements that are duplicates.
+/// The iterators in the range [new_last, last) are all still dereferenceable,
+/// but the elements that they point to are unspecified. Unique is stable,
+/// meaning that the relative order of elements that are not removed is
+/// unchanged.
+/// \ingroup MutatingAlgorithms
+/// \ingroup PredicateAlgorithms
+///
+template <typename ForwardIterator, typename BinaryPredicate>
+inline ForwardIterator unique (ForwardIterator first, ForwardIterator last, BinaryPredicate binary_pred)
+{
+ return (unique_copy (first, last, first, binary_pred));
+}
+
+/// Returns the furthermost iterator i in [first, last) such that,
+/// for every iterator j in [first, i), comp(*j, value) is true.
+/// Assumes the range is sorted.
+/// \ingroup SearchingAlgorithms
+/// \ingroup PredicateAlgorithms
+///
+template <typename ForwardIterator, typename T, typename StrictWeakOrdering>
+ForwardIterator lower_bound (ForwardIterator first, ForwardIterator last, const T& value, StrictWeakOrdering comp)
+{
+ ForwardIterator mid;
+ while (first != last) {
+ mid = advance (first, distance (first,last) / 2);
+ if (comp (*mid, value))
+ first = mid + 1;
+ else
+ last = mid;
+ }
+ return (first);
+}
+
+/// Performs a binary search inside the sorted range.
+/// \ingroup SearchingAlgorithms
+/// \ingroup PredicateAlgorithms
+///
+template <typename ForwardIterator, typename T, typename StrictWeakOrdering>
+inline bool binary_search (ForwardIterator first, ForwardIterator last, const T& value, StrictWeakOrdering comp)
+{
+ ForwardIterator found = lower_bound (first, last, value, comp);
+ return (found != last && !comp(*found, value));
+}
+
+/// Returns the furthermost iterator i in [first,last) such that for
+/// every iterator j in [first,i), comp(value,*j) is false.
+/// \ingroup SearchingAlgorithms
+/// \ingroup PredicateAlgorithms
+///
+template <typename ForwardIterator, typename T, typename StrictWeakOrdering>
+ForwardIterator upper_bound (ForwardIterator first, ForwardIterator last, const T& value, StrictWeakOrdering comp)
+{
+ ForwardIterator mid;
+ while (first != last) {
+ mid = advance (first, distance (first,last) / 2);
+ if (comp (value, *mid))
+ last = mid;
+ else
+ first = mid + 1;
+ }
+ return (last);
+}
+
+/// Returns pair<lower_bound,upper_bound>
+/// \ingroup SearchingAlgorithms
+/// \ingroup PredicateAlgorithms
+///
+template <typename ForwardIterator, typename T, typename StrictWeakOrdering>
+inline pair<ForwardIterator,ForwardIterator> equal_range (ForwardIterator first, ForwardIterator last, const T& value, StrictWeakOrdering comp)
+{
+ pair<ForwardIterator,ForwardIterator> rv;
+ rv.second = rv.first = lower_bound (first, last, value, comp);
+ while (rv.second != last && !comp(value, *(rv.second)))
+ ++ rv.second;
+ return (rv);
+}
+
+/// \brief Puts \p nth element into its sorted position.
+/// In this implementation, the entire array is sorted. The performance difference is
+/// so small and the function use is so rare, there is no need to have code for it.
+/// \ingroup SortingAlgorithms
+/// \ingroup SearchingAlgorithms
+/// \ingroup PredicateAlgorithms
+///
+template <typename RandomAccessIterator, typename Compare>
+inline void nth_element (RandomAccessIterator first, RandomAccessIterator, RandomAccessIterator last, Compare comp)
+{
+ sort (first, last, comp);
+}
+
+/// \brief Searches for the first subsequence [first2,last2) in [first1,last1)
+/// \ingroup SearchingAlgorithms
+/// \ingroup PredicateAlgorithms
+template <typename ForwardIterator1, typename ForwardIterator2, typename BinaryPredicate>
+ForwardIterator1 search (ForwardIterator1 first1, ForwardIterator1 last1, ForwardIterator2 first2, ForwardIterator2 last2, BinaryPredicate comp)
+{
+ const ForwardIterator1 slast = last1 - distance(first2, last2) + 1;
+ for (; first1 < slast; ++first1) {
+ ForwardIterator2 i = first2;
+ ForwardIterator1 j = first1;
+ for (; i != last2 && comp(*j, *i); ++i, ++j) ;
+ if (i == last2)
+ return (first1);
+ }
+ return (last1);
+}
+
+/// \brief Searches for the last subsequence [first2,last2) in [first1,last1)
+/// \ingroup SearchingAlgorithms
+/// \ingroup PredicateAlgorithms
+template <typename ForwardIterator1, typename ForwardIterator2, typename BinaryPredicate>
+ForwardIterator1 find_end (ForwardIterator1 first1, ForwardIterator1 last1, ForwardIterator2 first2, ForwardIterator2 last2, BinaryPredicate comp)
+{
+ ForwardIterator1 s = last1 - distance(first2, last2);
+ for (; first1 < s; --s) {
+ ForwardIterator2 i = first2, j = s;
+ for (; i != last2 && comp(*j, *i); ++i, ++j) ;
+ if (i == last2)
+ return (s);
+ }
+ return (last1);
+}
+
+/// \brief Searches for the first occurence of \p count \p values in [first, last)
+/// \ingroup SearchingAlgorithms
+/// \ingroup PredicateAlgorithms
+template <typename Iterator, typename T, typename BinaryPredicate>
+Iterator search_n (Iterator first, Iterator last, size_t count, const T& value, BinaryPredicate comp)
+{
+ size_t n = 0;
+ for (; first != last; ++first) {
+ if (!comp (*first, value))
+ n = 0;
+ else if (++n == count)
+ return (first - --n);
+ }
+ return (last);
+}
+
+/// \brief Searches [first1,last1) for the first occurrence of an element from [first2,last2)
+/// \ingroup SearchingAlgorithms
+/// \ingroup PredicateAlgorithms
+template <typename InputIterator, typename ForwardIterator, typename BinaryPredicate>
+InputIterator find_first_of (InputIterator first1, InputIterator last1, ForwardIterator first2, ForwardIterator last2, BinaryPredicate comp)
+{
+ for (; first1 != last1; ++first1)
+ for (ForwardIterator i = first2; i != last2; ++i)
+ if (comp (*first1, *i))
+ return (first1);
+ return (first1);
+}
+
+/// \brief Returns true if [first2,last2) is a subset of [first1,last1)
+/// \ingroup ConditionAlgorithms
+/// \ingroup SetAlgorithms
+/// \ingroup PredicateAlgorithms
+template <typename InputIterator1, typename InputIterator2, typename StrictWeakOrdering>
+bool includes (InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, InputIterator2 last2, StrictWeakOrdering comp)
+{
+ for (; (first1 != last1) & (first2 != last2); ++first1) {
+ if (comp (*first2, *first1))
+ return (false);
+ first2 += !comp (*first1, *first2);
+ }
+ return (first2 == last2);
+}
+
+/// \brief Merges [first1,last1) with [first2,last2)
+///
+/// Result will contain every element that is in either set. If duplicate
+/// elements are present, max(n,m) is placed in the result.
+///
+/// \ingroup SetAlgorithms
+/// \ingroup PredicateAlgorithms
+template <typename InputIterator1, typename InputIterator2, typename OutputIterator, typename StrictWeakOrdering>
+OutputIterator set_union (InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, InputIterator2 last2, OutputIterator result, StrictWeakOrdering comp)
+{
+ for (; (first1 != last1) & (first2 != last2); ++result) {
+ if (comp (*first2, *first1))
+ *result = *first2++;
+ else {
+ first2 += !comp (*first1, *first2);
+ *result = *first1++;
+ }
+ }
+ return (copy (first2, last2, copy (first1, last1, result)));
+}
+
+/// \brief Creates a set containing elements shared by the given ranges.
+/// \ingroup SetAlgorithms
+/// \ingroup PredicateAlgorithms
+template <typename InputIterator1, typename InputIterator2, typename OutputIterator, typename StrictWeakOrdering>
+OutputIterator set_intersection (InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, InputIterator2 last2, OutputIterator result, StrictWeakOrdering comp)
+{
+ while ((first1 != last1) & (first2 != last2)) {
+ bool b1ge2 = !comp (*first1, *first2), b2ge1 = !comp (*first2, *first1);
+ if (b1ge2 & b2ge1)
+ *result++ = *first1;
+ first1 += b2ge1;
+ first2 += b1ge2;
+ }
+ return (result);
+}
+
+/// \brief Removes from [first1,last1) elements present in [first2,last2)
+/// \ingroup SetAlgorithms
+/// \ingroup PredicateAlgorithms
+template <typename InputIterator1, typename InputIterator2, typename OutputIterator, typename StrictWeakOrdering>
+OutputIterator set_difference (InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, InputIterator2 last2, OutputIterator result, StrictWeakOrdering comp)
+{
+ while ((first1 != last1) & (first2 != last2)) {
+ bool b1ge2 = !comp (*first1, *first2), b2ge1 = !comp (*first2, *first1);
+ if (!b1ge2)
+ *result++ = *first1;
+ first1 += b2ge1;
+ first2 += b1ge2;
+ }
+ return (copy (first1, last1, result));
+}
+
+/// \brief Performs union of sets A-B and B-A.
+/// \ingroup SetAlgorithms
+/// \ingroup PredicateAlgorithms
+template <typename InputIterator1, typename InputIterator2, typename OutputIterator, typename StrictWeakOrdering>
+OutputIterator set_symmetric_difference (InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, InputIterator2 last2, OutputIterator result, StrictWeakOrdering comp)
+{
+ while ((first1 != last1) & (first2 != last2)) {
+ bool b1l2 = comp (*first1, *first2), b2l1 = comp (*first2, *first1);
+ if (b1l2)
+ *result++ = *first1;
+ else if (b2l1)
+ *result++ = *first2;
+ first1 += !b2l1;
+ first2 += !b1l2;
+ }
+ return (copy (first2, last2, copy (first1, last1, result)));
+}
+
+/// \brief Returns true if the given range is sorted.
+/// \ingroup ConditionAlgorithms
+/// \ingroup PredicateAlgorithms
+template <typename ForwardIterator, typename StrictWeakOrdering>
+bool is_sorted (ForwardIterator first, ForwardIterator last, StrictWeakOrdering comp)
+{
+ for (ForwardIterator i = first; ++i < last; ++first)
+ if (comp (*i, *first))
+ return (false);
+ return (true);
+}
+
+/// \brief Compares two given containers like strcmp compares strings.
+/// \ingroup ConditionAlgorithms
+/// \ingroup PredicateAlgorithms
+template <typename InputIterator1, typename InputIterator2, typename BinaryPredicate>
+bool lexicographical_compare (InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, InputIterator2 last2, BinaryPredicate comp)
+{
+ for (; (first1 != last1) & (first2 != last2); ++first1, ++first2) {
+ if (comp (*first1, *first2))
+ return (true);
+ if (comp (*first2, *first1))
+ return (false);
+ }
+ return ((first1 == last1) & (first2 != last2));
+}
+
+/// \brief Creates the next lexicographical permutation of [first,last).
+/// Returns false if no further permutations can be created.
+/// \ingroup GeneratorAlgorithms
+/// \ingroup PredicateAlgorithms
+template <typename BidirectionalIterator, typename StrictWeakOrdering>
+bool next_permutation (BidirectionalIterator first, BidirectionalIterator last, StrictWeakOrdering comp)
+{
+ if (distance (first, last) < 2)
+ return (false);
+ BidirectionalIterator i = last;
+ for (--i; i != first; ) {
+ --i;
+ if (comp (i[0], i[1])) {
+ BidirectionalIterator j = last;
+ while (!comp (*i, *--j)) ;
+ iter_swap (i, j);
+ reverse (i + 1, last);
+ return (true);
+ }
+ }
+ reverse (first, last);
+ return (false);
+}
+
+/// \brief Creates the previous lexicographical permutation of [first,last).
+/// Returns false if no further permutations can be created.
+/// \ingroup GeneratorAlgorithms
+/// \ingroup PredicateAlgorithms
+template <typename BidirectionalIterator, typename StrictWeakOrdering>
+bool prev_permutation (BidirectionalIterator first, BidirectionalIterator last, StrictWeakOrdering comp)
+{
+ if (distance (first, last) < 2)
+ return (false);
+ BidirectionalIterator i = last;
+ for (--i; i != first; ) {
+ --i;
+ if (comp(i[1], i[0])) {
+ BidirectionalIterator j = last;
+ while (!comp (*--j, *i)) ;
+ iter_swap (i, j);
+ reverse (i + 1, last);
+ return (true);
+ }
+ }
+ reverse (first, last);
+ return (false);
+}
+
+/// \brief Returns iterator to the max element in [first,last)
+/// \ingroup SearchingAlgorithms
+/// \ingroup PredicateAlgorithms
+template <typename ForwardIterator, typename BinaryPredicate>
+inline ForwardIterator max_element (ForwardIterator first, ForwardIterator last, BinaryPredicate comp)
+{
+ ForwardIterator result = first;
+ for (; first != last; ++first)
+ if (comp (*result, *first))
+ result = first;
+ return (result);
+}
+
+/// \brief Returns iterator to the min element in [first,last)
+/// \ingroup SearchingAlgorithms
+/// \ingroup PredicateAlgorithms
+template <typename ForwardIterator, typename BinaryPredicate>
+inline ForwardIterator min_element (ForwardIterator first, ForwardIterator last, BinaryPredicate comp)
+{
+ ForwardIterator result = first;
+ for (; first != last; ++first)
+ if (comp (*first, *result))
+ result = first;
+ return (result);
+}
+
+/// \brief Makes [first,middle) a part of the sorted array.
+/// Contents of [middle,last) is undefined. This implementation just calls stable_sort.
+/// \ingroup SortingAlgorithms
+/// \ingroup PredicateAlgorithms
+template <typename RandomAccessIterator, typename StrictWeakOrdering>
+inline void partial_sort (RandomAccessIterator first, RandomAccessIterator, RandomAccessIterator last, StrictWeakOrdering comp)
+{
+ stable_sort (first, last, comp);
+}
+
+/// \brief Like partial_sort, but outputs to [result_first,result_last)
+/// \ingroup SortingAlgorithms
+/// \ingroup PredicateAlgorithms
+template <typename InputIterator, typename RandomAccessIterator, typename StrictWeakOrdering>
+RandomAccessIterator partial_sort_copy (InputIterator first, InputIterator last, RandomAccessIterator result_first, RandomAccessIterator result_last, StrictWeakOrdering comp)
+{
+ RandomAccessIterator rend = result_first;
+ for (; first != last; ++first) {
+ RandomAccessIterator i = result_first;
+ for (; i != rend && comp (*i, *first); ++i) ;
+ if (i == result_last)
+ continue;
+ rend += (rend < result_last);
+ copy_backward (i, rend - 1, rend);
+ *i = *first;
+ }
+ return (rend);
+}
+
+/// \brief Like partition, but preserves equal element order.
+/// \ingroup SortingAlgorithms
+/// \ingroup PredicateAlgorithms
+template <typename ForwardIterator, typename Predicate>
+ForwardIterator stable_partition (ForwardIterator first, ForwardIterator last, Predicate pred)
+{
+ if (first == last)
+ return (first);
+ ForwardIterator l, r, m = advance (first, distance (first, last) / 2);
+ if (first == m)
+ return (pred(*first) ? last : first);
+ l = stable_partition (first, m, pred);
+ r = stable_partition (m, last, pred);
+ rotate (l, m, r);
+ return (advance (l, distance (m, r)));
+}
+
+/// \brief Splits [first,last) in two by \p pred.
+///
+/// Creates two ranges [first,middle) and [middle,last), where every element
+/// in the former is less than every element in the latter.
+/// The return value is middle.
+///
+/// \ingroup SortingAlgorithms
+/// \ingroup PredicateAlgorithms
+template <typename ForwardIterator, typename Predicate>
+inline ForwardIterator partition (ForwardIterator first, ForwardIterator last, Predicate pred)
+{
+ return (stable_partition (first, last, pred));
+}
+
+} // namespace ustl
+
+#endif
diff --git a/ecos/packages/language/cxx/ustl/current/include/ustl/uqueue.h b/ecos/packages/language/cxx/ustl/current/include/ustl/uqueue.h
new file mode 100644
index 0000000..199bdbe
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/include/ustl/uqueue.h
@@ -0,0 +1,69 @@
+// This file is part of the uSTL library, an STL implementation.
+//
+// Copyright (c) 2005 by Mike Sharov <msharov@users.sourceforge.net>
+// This file is free software, distributed under the MIT License.
+
+#ifndef UQUEUE_H_27F01FDB0D59B75277E0E5C41ABC6B5B
+#define UQUEUE_H_27F01FDB0D59B75277E0E5C41ABC6B5B
+
+namespace ustl {
+
+/// \class queue uqueue.h ustl.h
+/// \ingroup Sequences
+///
+/// \brief Queue adapter to uSTL containers.
+///
+/// The most efficient way to use this implementation is to fill the queue
+/// and the completely empty it before filling again.
+///
+template <typename T>
+class queue {
+public:
+ typedef T value_type;
+ typedef size_t size_type;
+ typedef ptrdiff_t difference_type;
+ typedef T& reference;
+ typedef const T& const_reference;
+ typedef T* pointer;
+ typedef const T* const_pointer;
+public:
+ inline queue (void) : m_Storage (), m_Front (0) { }
+ explicit inline queue (const vector<T>& s) : m_Storage (s), m_Front (0) { }
+ explicit inline queue (const queue& s) : m_Storage (s.m_Storage), m_Front (0) { }
+ inline size_type size (void) const { return (m_Storage.size() - m_Front); }
+ inline bool empty (void) const { return (!size()); }
+ inline reference front (void) { return (m_Storage [m_Front]); }
+ inline const_reference front (void) const { return (m_Storage [m_Front]); }
+ inline reference back (void) { return (m_Storage.back()); }
+ inline const_reference back (void) const { return (m_Storage.back()); }
+ inline void push (const value_type& v);
+ inline void pop (void);
+ inline bool operator== (const queue& s) const { return (m_Storage == s.m_Storage && m_Front == s.m_Front); }
+ inline bool operator< (const queue& s) const { return (size() < s.size()); }
+private:
+ vector<T> m_Storage; ///< Where the data actually is.
+ size_type m_Front; ///< Index of the element returned by next pop.
+};
+
+/// Pushes \p v on the queue.
+template <typename T>
+inline void queue<T>::push (const value_type& v)
+{
+ if (m_Front) {
+ m_Storage.erase (m_Storage.begin(), m_Front);
+ m_Front = 0;
+ }
+ m_Storage.push_back (v);
+}
+
+/// Pops the topmost element from the queue.
+template <typename T>
+inline void queue<T>::pop (void)
+{
+ if (++m_Front >= m_Storage.size())
+ m_Storage.resize (m_Front = 0);
+}
+
+} // namespace ustl
+
+#endif
diff --git a/ecos/packages/language/cxx/ustl/current/include/ustl/uset.h b/ecos/packages/language/cxx/ustl/current/include/ustl/uset.h
new file mode 100644
index 0000000..3dbc350
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/include/ustl/uset.h
@@ -0,0 +1,84 @@
+// This file is part of the uSTL library, an STL implementation.
+//
+// Copyright (c) 2005 by Mike Sharov <msharov@users.sourceforge.net>
+// This file is free software, distributed under the MIT License.
+
+#ifndef USET_H_45543F516E02A87A3FCEA5024052A6F5
+#define USET_H_45543F516E02A87A3FCEA5024052A6F5
+
+#include "uvector.h"
+
+namespace ustl {
+
+/// \class set uset.h ustl.h
+/// \ingroup Sequences
+///
+/// \brief Unique sorted container. Sorted vector with all values unique.
+///
+template <typename T, typename Comp = less<T> >
+class set : public vector<T> {
+public:
+ typedef const set<T,Comp>& rcself_t;
+ typedef vector<T> base_class;
+ typedef typename base_class::value_type key_type;
+ typedef typename base_class::value_type data_type;
+ typedef typename base_class::value_type value_type;
+ typedef typename base_class::size_type size_type;
+ typedef typename base_class::pointer pointer;
+ typedef typename base_class::const_pointer const_pointer;
+ typedef typename base_class::reference reference;
+ typedef typename base_class::const_reference const_reference;
+ typedef typename base_class::const_iterator const_iterator;
+ typedef typename base_class::iterator iterator;
+ typedef typename base_class::reverse_iterator reverse_iterator;
+ typedef typename base_class::const_reverse_iterator const_reverse_iterator;
+ typedef pair<iterator,bool> insertrv_t;
+public:
+ inline set (void) : base_class() { }
+ explicit inline set (size_type n) : base_class (n) { }
+ inline set (rcself_t v) : base_class (v) { }
+ inline set (const_iterator i1, const_iterator i2) : base_class() { insert (i1, i2); }
+ inline rcself_t operator= (rcself_t v) { base_class::operator= (v); return (*this); }
+ inline size_type size (void) const { return (base_class::size()); }
+ inline iterator begin (void) { return (base_class::begin()); }
+ inline const_iterator begin (void) const { return (base_class::begin()); }
+ inline iterator end (void) { return (base_class::end()); }
+ inline const_iterator end (void) const { return (base_class::end()); }
+ inline void assign (const_iterator i1, const_iterator i2) { clear(); insert (i1, i2); }
+ inline void push_back (const_reference v) { insert (v); }
+ inline const_iterator find (const_reference v) const { const_iterator i = lower_bound (begin(), end(), v, Comp()); return ((i != end() && *i == v) ? i : end()); }
+ inline iterator find (const_reference v) { return (const_cast<iterator>(const_cast<rcself_t>(*this).find (v))); }
+ insertrv_t insert (const_reference v);
+ inline iterator insert (iterator, const_reference v) { return (insert(v).first); }
+ inline void insert (const_iterator i1, const_iterator i2);
+ inline void erase (const_reference v) { iterator ip = find (v); if (ip != end()) erase (ip); }
+ inline iterator erase (iterator ep) { return (base_class::erase (ep)); }
+ inline iterator erase (iterator ep1, iterator ep2) { return (base_class::erase (ep1, ep2)); }
+ inline void clear (void) { base_class::clear(); }
+};
+
+/// Inserts \p v into the container, maintaining the sort order.
+template <typename T, typename Comp>
+typename set<T,Comp>::insertrv_t set<T,Comp>::insert (const_reference v)
+{
+ Comp f;
+ iterator ip = lower_bound (begin(), end(), v, f);
+ bool bInserted = (ip == end() || f(v,*ip));
+ if (bInserted)
+ ip = base_class::insert (ip, v);
+ return (make_pair (ip, bInserted));
+}
+
+/// Inserts the contents of range [i1,i2)
+template <typename T, typename Comp>
+void set<T,Comp>::insert (const_iterator i1, const_iterator i2)
+{
+ assert (i1 <= i2);
+ base_class::reserve (size() + distance (i1, i2));
+ for (; i1 < i2; ++i1)
+ push_back (*i1);
+}
+
+} // namespace ustl
+
+#endif
diff --git a/ecos/packages/language/cxx/ustl/current/include/ustl/uspecial.h b/ecos/packages/language/cxx/ustl/current/include/ustl/uspecial.h
new file mode 100644
index 0000000..00dae11
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/include/ustl/uspecial.h
@@ -0,0 +1,263 @@
+// This file is part of the uSTL library, an STL implementation.
+//
+// Copyright (c) 2005 by Mike Sharov <msharov@users.sourceforge.net>
+// This file is free software, distributed under the MIT License.
+
+#ifndef USPECIAL_H_947ADYOU0ARE3YOU2REALLY8ARE44CE0
+#define USPECIAL_H_947ADYOU0ARE3YOU2REALLY8ARE44CE0
+
+#include "uvector.h"
+#include "ustring.h"
+#include "uset.h"
+#include "umultiset.h"
+#include "ubitset.h"
+#include "ulaalgo.h"
+#include "uctralgo.h"
+#include "ufunction.h"
+#include "uctrstrm.h"
+#include "sistream.h"
+#include <ctype.h>
+
+namespace ustl {
+
+//----------------------------------------------------------------------
+// Alogrithm specializations not in use by the library code.
+//----------------------------------------------------------------------
+
+template <> inline void swap (cmemlink& a, cmemlink& b) { a.swap (b); }
+template <> inline void swap (memlink& a, memlink& b) { a.swap (b); }
+template <> inline void swap (memblock& a, memblock& b) { a.swap (b); }
+template <> inline void swap (string& a, string& b) { a.swap (b); }
+#define TEMPLATE_SWAP_PSPEC(type, template_decl) \
+template_decl inline void swap (type& a, type& b) { a.swap (b); }
+TEMPLATE_SWAP_PSPEC (TEMPLATE_TYPE1 (vector,T), TEMPLATE_DECL1 (T))
+TEMPLATE_SWAP_PSPEC (TEMPLATE_TYPE1 (set,T), TEMPLATE_DECL1 (T))
+TEMPLATE_SWAP_PSPEC (TEMPLATE_TYPE1 (multiset,T), TEMPLATE_DECL1 (T))
+TEMPLATE_SWAP_PSPEC (TEMPLATE_TYPE2 (tuple,N,T), TEMPLATE_FULL_DECL2 (size_t,N,typename,T))
+
+//----------------------------------------------------------------------
+// Streamable definitions. Not used in the library and require streams.
+//----------------------------------------------------------------------
+
+//----{ pair }----------------------------------------------------------
+
+/// \brief Reads pair \p p from stream \p is.
+template <typename T1, typename T2>
+istream& operator>> (istream& is, pair<T1,T2>& p)
+{
+ is >> p.first;
+ is.align (stream_align_of(p.second));
+ is >> p.second;
+ is.align (stream_align_of(p.first));
+ return (is);
+}
+
+/// Writes pair \p p to stream \p os.
+template <typename T1, typename T2>
+ostream& operator<< (ostream& os, const pair<T1,T2>& p)
+{
+ os << p.first;
+ os.align (stream_align_of(p.second));
+ os << p.second;
+ os.align (stream_align_of(p.first));
+ return (os);
+}
+
+/// Writes pair \p p to stream \p os.
+template <typename T1, typename T2>
+ostringstream& operator<< (ostringstream& os, const pair<T1,T2>& p)
+{
+ os << '(' << p.first << ',' << p.second << ')';
+ return (os);
+}
+
+/// Returns the written size of the object.
+template <typename T1, typename T2>
+struct object_stream_size<pair<T1,T2> > {
+ inline size_t operator()(const pair<T1,T2>& v) const
+ {
+ return (Align (stream_size_of(v.first), stream_align_of(v.second)) +
+ Align (stream_size_of(v.second), stream_align_of(v.first)));
+ }
+};
+
+/// \brief Takes a pair and returns pair.first
+/// This is an extension, available in uSTL and the SGI STL.
+template <typename Pair> struct select1st : public unary_function<Pair,typename Pair::first_type> {
+ typedef typename Pair::first_type result_type;
+ inline const result_type& operator()(const Pair& a) const { return (a.first); }
+ inline result_type& operator()(Pair& a) const { return (a.first); }
+};
+
+/// \brief Takes a pair and returns pair.second
+/// This is an extension, available in uSTL and the SGI STL.
+template <typename Pair> struct select2nd : public unary_function<Pair,typename Pair::second_type> {
+ typedef typename Pair::second_type result_type;
+ inline const result_type& operator()(const Pair& a) const { return (a.second); }
+ inline result_type& operator()(Pair& a) const { return (a.second); }
+};
+
+/// \brief Converts a const_iterator pair into an iterator pair
+/// Useful for converting pair ranges returned by equal_range, for instance.
+/// This is an extension, available in uSTL.
+template <typename Container>
+inline pair<typename Container::iterator, typename Container::iterator>
+unconst (const pair<typename Container::const_iterator, typename Container::const_iterator>& i, Container&)
+{
+ typedef pair<typename Container::iterator, typename Container::iterator> unconst_pair_t;
+ return (*noalias_cast<unconst_pair_t*>(&i));
+}
+
+//----{ vector }--------------------------------------------------------
+
+template <typename T>
+inline size_t stream_align_of (const vector<T>&)
+{
+ typedef typename vector<T>::written_size_type written_size_type;
+ return (stream_align_of (written_size_type()));
+}
+
+//----{ bitset }--------------------------------------------------------
+
+/// Writes bitset \p v into stream \p os.
+template <size_t Size>
+istringstream& operator>> (istringstream& is, bitset<Size>& v)
+{
+ char c;
+ for (int i = Size; --i >= 0 && (is >> c).good();)
+ v.set (i, c == '1');
+ return (is);
+}
+
+//----{ tuple }---------------------------------------------------------
+
+template <size_t N, typename T>
+inline istream& operator>> (istream& is, tuple<N,T>& v)
+ { v.read (is); return (is); }
+template <size_t N, typename T>
+inline ostream& operator<< (ostream& os, const tuple<N,T>& v)
+ { v.write (os); return (os); }
+template <size_t N, typename T>
+inline ostringstream& operator<< (ostringstream& os, const tuple<N,T>& v)
+ { v.text_write (os); return (os); }
+
+template <size_t N, typename T>
+struct numeric_limits<tuple<N,T> > {
+ typedef numeric_limits<T> value_limits;
+ static inline tuple<N,T> min (void) { tuple<N,T> v; fill (v, value_limits::min()); return (v); }
+ static inline tuple<N,T> max (void) { tuple<N,T> v; fill (v, value_limits::max()); return (v); }
+ static const bool is_signed = value_limits::is_signed;
+ static const bool is_integer = value_limits::is_integer;
+ static const bool is_integral = value_limits::is_integral;
+};
+
+template <size_t N, typename T>
+inline size_t stream_align_of (const tuple<N,T>&) { return (stream_align_of (NullValue<T>())); }
+
+template <typename T, typename IntT>
+inline ostringstream& chartype_text_write (ostringstream& os, const T& v)
+{
+ os.format (_FmtPrtChr[!isprint(v)], v);
+ return (os);
+}
+
+template <>
+inline ostringstream& container_element_text_write (ostringstream& os, const uint8_t& v)
+{ return (chartype_text_write<uint8_t, unsigned int> (os, v)); }
+template <>
+inline ostringstream& container_element_text_write (ostringstream& os, const int8_t& v)
+{ return (chartype_text_write<int8_t, int> (os, v)); }
+
+//----{ matrix }--------------------------------------------------------
+
+/// Writes tuple \p v into stream \p os.
+template <size_t NX, size_t NY, typename T>
+ostringstream& operator<< (ostringstream& os, const matrix<NX,NY,T>& v)
+{
+ os << '(';
+ for (uoff_t row = 0; row < NY; ++ row) {
+ os << '(';
+ for (uoff_t column = 0; column < NX; ++column)
+ os << v[row][column] << ",)"[column == NX-1];
+ }
+ os << ')';
+ return (os);
+}
+
+//----{ long4grain }----------------------------------------------------
+
+#if SIZE_OF_LONG == 8 && HAVE_INT64_T
+// Helper class for long4grain and ptr4grain wrappers.
+class _long4grain {
+public:
+ inline _long4grain (uint64_t v) : m_v (v) {}
+#if __x86_64__
+ inline void read (istream& is)
+ {
+ assert (is.aligned(4));
+ #if WANT_STREAM_BOUNDS_CHECKING
+ if (!is.verify_remaining ("read", "long4grain", sizeof(m_v))) return;
+ #else
+ assert (is.remaining() >= sizeof(m_v));
+ #endif
+ m_v = *reinterpret_cast<const uint64_t*>(is.ipos());
+ is.skip (sizeof(m_v));
+ }
+ inline void write (ostream& os) const
+ {
+ assert (os.aligned(4));
+ #if WANT_STREAM_BOUNDS_CHECKING
+ if (!os.verify_remaining ("write", "long4grain", sizeof(m_v))) return;
+ #else
+ assert (os.remaining() >= sizeof(m_v));
+ #endif
+ *reinterpret_cast<uint64_t*>(os.ipos()) = m_v;
+ os.skip (sizeof(m_v));
+ }
+#elif USTL_BYTE_ORDER == USTL_BIG_ENDIAN
+ inline void read (istream& is) { uint32_t vl, vh; is >> vh >> vl; m_v = (uint64_t(vh) << 32) | uint64_t(vl); }
+ inline void write (ostream& os) const { os << uint32_t(m_v >> 32) << uint32_t(m_v); }
+#else
+ inline void read (istream& is) { uint32_t vl, vh; is >> vl >> vh; m_v = (uint64_t(vh) << 32) | uint64_t(vl); }
+ inline void write (ostream& os) const { os << uint32_t(m_v) << uint32_t(m_v >> 32); }
+#endif
+ inline size_t stream_size (void) const { return (stream_size_of(m_v)); }
+private:
+ uint64_t m_v;
+};
+
+/// Wrap long values to allow writing them on 4-grain even on 64bit platforms.
+inline _long4grain& long4grain (unsigned long& v) { asm("":"+m"(v)); return (*noalias_cast<_long4grain*>(&v)); }
+/// Wrap long values to allow writing them on 4-grain even on 64bit platforms.
+inline const _long4grain long4grain (const unsigned long& v) { return (_long4grain(v)); }
+/// Wrap pointer values to allow writing them on 4-grain even on 64bit platforms.
+template <typename T>
+inline _long4grain& ptr4grain (T*& p) { asm("":"+m"(p)); return (*noalias_cast<_long4grain*>(&p)); }
+/// Wrap pointer values to allow writing them on 4-grain even on 64bit platforms.
+template <typename T>
+inline const _long4grain ptr4grain (const T* const& p) { return (_long4grain(uintptr_t(p))); }
+#else // if not SIZE_OF_LONG == 8 && HAVE_INT64_T
+inline unsigned long& long4grain (unsigned long& v) { return (v); }
+inline const unsigned long& long4grain (const unsigned long& v) { return (v); }
+template <typename T> inline T*& ptr4grain (T*& p) { return (p); }
+template <typename T> inline const T* const& ptr4grain (const T* const& p) { return (p); }
+#endif // SIZE_OF_LONG == 8
+
+//----------------------------------------------------------------------
+
+} // namespace ustl
+
+// This is here because there really is no other place to put it.
+#if SIZE_OF_BOOL != SIZE_OF_CHAR
+// bool is a big type on some machines (like DEC Alpha), so it's written as a byte.
+ALIGNOF(bool, sizeof(uint8_t))
+CAST_STREAMABLE(bool, uint8_t)
+#endif
+#if SIZE_OF_LONG == 8 && HAVE_INT64_T
+ALIGNOF (_long4grain, 4)
+#endif
+
+ALIGNOF(ustl::CBacktrace, sizeof(void*))
+ALIGNOF (ustl::string, stream_align_of (string::value_type()))
+
+#endif
diff --git a/ecos/packages/language/cxx/ustl/current/include/ustl/ustack.h b/ecos/packages/language/cxx/ustl/current/include/ustl/ustack.h
new file mode 100644
index 0000000..16bdb06
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/include/ustl/ustack.h
@@ -0,0 +1,44 @@
+// This file is part of the uSTL library, an STL implementation.
+//
+// Copyright (c) 2005 by Mike Sharov <msharov@users.sourceforge.net>
+// This file is free software, distributed under the MIT License.
+
+#ifndef USTACK_H_5242F5635322B2EC44A9AEE73022C6E9
+#define USTACK_H_5242F5635322B2EC44A9AEE73022C6E9
+
+namespace ustl {
+
+/// \class stack ustack.h ustl.h
+/// \ingroup Sequences
+///
+/// \brief Stack adapter to uSTL containers.
+///
+template <typename T>
+class stack {
+public:
+ typedef T value_type;
+ typedef size_t size_type;
+ typedef ptrdiff_t difference_type;
+ typedef T& reference;
+ typedef const T& const_reference;
+ typedef T* pointer;
+ typedef const T* const_pointer;
+public:
+ inline stack (void) : m_Storage () { }
+ explicit inline stack (const vector<T>& s) : m_Storage (s) { }
+ explicit inline stack (const stack& s) : m_Storage (s.m_Storage) { }
+ inline bool empty (void) const { return (m_Storage.empty()); }
+ inline size_type size (void) const { return (m_Storage.size()); }
+ inline reference top (void) { return (m_Storage.back()); }
+ inline const_reference top (void) const { return (m_Storage.back()); }
+ inline void push (const value_type& v) { m_Storage.push_back (v); }
+ inline void pop (void) { m_Storage.pop_back(); }
+ inline bool operator== (const stack& s) const { return (m_Storage == s.m_Storage); }
+ inline bool operator< (const stack& s) const { return (m_Storage.size() < s.m_Storage.size()); }
+private:
+ vector<T> m_Storage; ///< Where the data actually is.
+};
+
+} // namespace ustl
+
+#endif
diff --git a/ecos/packages/language/cxx/ustl/current/include/ustl/ustdxept.h b/ecos/packages/language/cxx/ustl/current/include/ustl/ustdxept.h
new file mode 100644
index 0000000..e31f19f
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/include/ustl/ustdxept.h
@@ -0,0 +1,140 @@
+// This file is part of the uSTL library, an STL implementation.
+//
+// Copyright (c) 2005 by Mike Sharov <msharov@users.sourceforge.net>
+// This file is free software, distributed under the MIT License.
+
+#ifndef USTDXEPT_H_46F7AE967738B588038F95E41158D7FF
+#define USTDXEPT_H_46F7AE967738B588038F95E41158D7FF
+
+#include "uexception.h"
+#include "ustring.h"
+
+namespace ustl {
+
+enum {
+ xfmt_ErrorMessage = 2,
+ xfmt_LogicError = xfmt_ErrorMessage,
+ xfmt_RuntimeError = xfmt_ErrorMessage
+};
+
+/// \class logic_error ustdxept.h ustl.h
+/// \ingroup Exceptions
+///
+/// \brief Logic errors represent problems in the internal logic of the program.
+///
+class error_message : public exception {
+public:
+ explicit error_message (const char* arg) throw();
+ virtual ~error_message (void) throw();
+ inline virtual const char* what (void) const throw() { return (m_Arg.c_str()); }
+ inline virtual const char* name (void) const throw() { return ("error"); }
+ virtual void info (string& msgbuf, const char* fmt = NULL) const throw();
+ virtual void read (istream& is);
+ virtual void write (ostream& os) const;
+ virtual size_t stream_size (void) const;
+protected:
+ string m_Arg;
+};
+
+/// \class logic_error ustdxept.h ustl.h
+/// \ingroup Exceptions
+///
+/// \brief Logic errors represent problems in the internal logic of the program.
+///
+class logic_error : public error_message {
+public:
+ inline explicit logic_error (const char* arg) throw() : error_message (arg) {}
+ inline virtual const char* name (void) const throw() { return ("logic error"); }
+};
+
+/// \class domain_error ustdxept.h ustl.h
+/// \ingroup Exceptions
+///
+/// \brief Reports domain errors ("domain" is in the mathematical sense)
+///
+class domain_error : public logic_error {
+public:
+ inline explicit domain_error (const char* arg) throw() : logic_error (arg) {}
+ inline virtual const char* name (void) const throw() { return ("domain error"); }
+};
+
+/// \class invalid_argument ustdxept.h ustl.h
+/// \ingroup Exceptions
+///
+/// \brief Reports an invalid argument to a function.
+///
+class invalid_argument : public logic_error {
+public:
+ inline explicit invalid_argument (const char* arg) throw() : logic_error (arg) {}
+ inline virtual const char* name (void) const throw() { return ("invalid argument"); }
+};
+
+/// \class length_error ustdxept.h ustl.h
+/// \ingroup Exceptions
+///
+/// \brief Reports when an object exceeds its allowed size.
+///
+class length_error : public logic_error {
+public:
+ inline explicit length_error (const char* arg) throw() : logic_error (arg) {}
+ inline virtual const char* name (void) const throw() { return ("length error"); }
+};
+
+/// \class out_of_range ustdxept.h ustl.h
+/// \ingroup Exceptions
+///
+/// \brief Reports arguments with values out of allowed range.
+///
+class out_of_range : public logic_error {
+public:
+ inline explicit out_of_range (const char* arg) throw() : logic_error (arg) {}
+ inline virtual const char* name (void) const throw() { return ("out of range"); }
+};
+
+/// \class runtime_error ustdxept.h ustl.h
+/// \ingroup Exceptions
+///
+/// \brief Reports errors that are dependent on the data being processed.
+///
+class runtime_error : public error_message {
+public:
+ inline explicit runtime_error (const char* arg) throw() : error_message (arg) {}
+ inline virtual const char* name (void) const throw() { return ("runtime error"); }
+};
+
+/// \class range_error ustdxept.h ustl.h
+/// \ingroup Exceptions
+///
+/// \brief Reports data that does not fall within the permitted range.
+///
+class range_error : public runtime_error {
+public:
+ inline explicit range_error (const char* arg) throw() : runtime_error (arg) {}
+ inline virtual const char* name (void) const throw() { return ("range error"); }
+};
+
+/// \class overflow_error ustdxept.h ustl.h
+/// \ingroup Exceptions
+///
+/// \brief Reports arithmetic overflow.
+///
+class overflow_error : public runtime_error {
+public:
+ inline explicit overflow_error (const char* arg) throw() : runtime_error (arg) {}
+ inline virtual const char* name (void) const throw() { return ("overflow error"); }
+};
+
+/// \class underflow_error ustdxept.h ustl.h
+/// \ingroup Exceptions
+///
+/// \brief Reports arithmetic underflow.
+///
+class underflow_error : public runtime_error {
+public:
+ inline explicit underflow_error (const char* arg) throw() : runtime_error (arg) {}
+ inline virtual const char* name (void) const throw() { return ("underflow error"); }
+};
+
+} // namespace ustl
+
+#endif
diff --git a/ecos/packages/language/cxx/ustl/current/include/ustl/ustlecos.h b/ecos/packages/language/cxx/ustl/current/include/ustl/ustlecos.h
new file mode 100644
index 0000000..64eb5f8
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/include/ustl/ustlecos.h
@@ -0,0 +1,78 @@
+#ifndef CYGONCE_USTLECOS_H
+#define CYGONCE_USTLECOS_H
+// ==========================================================================
+//
+// ustlecos.h
+//
+// eCos specific implementations and additions to uSTL library
+//
+// ===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2009 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+// ===========================================================================
+// ===========================================================================
+// #####DESCRIPTIONBEGIN####
+//
+// Author(s): Uwe Kindler
+// Contributors:
+// Date: 2009-07-28
+// Purpose: eCos specific additions to uSTL library
+// Description:
+// Usage: Do not include directly #include <ustl.h>
+//
+// ####DESCRIPTIONEND####
+//
+// ========================================================================*/
+
+
+//
+// If exception handling is disabled then we provide a low level and
+// lightwight "exeption handler"
+//
+#ifndef __EXCEPTIONS
+namespace ustl
+{
+
+typedef void (*app_exception_handler_t)(const exception& ex);
+
+
+// allow an application to register its own ustl exception handler
+void set_app_exception_handler(app_exception_handler_t func);
+
+// an application exception handler may use this function to print the
+// exception to diagnostic output
+void diag_print_exception(const exception& ex);
+} // namespace ustl
+#endif
+
+// ---------------------------------------------------------------------------
+#endif // CYGONCE_USTLECOS_H
diff --git a/ecos/packages/language/cxx/ustl/current/include/ustl/ustring.h b/ecos/packages/language/cxx/ustl/current/include/ustl/ustring.h
new file mode 100644
index 0000000..67975b9
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/include/ustl/ustring.h
@@ -0,0 +1,267 @@
+// This file is part of the uSTL library, an STL implementation.
+//
+// Copyright (c) 2005 by Mike Sharov <msharov@users.sourceforge.net>
+// This file is free software, distributed under the MIT License.
+
+#ifndef USTRING_H_1249CB7A098A9010763AAC6D37B133CF
+#define USTRING_H_1249CB7A098A9010763AAC6D37B133CF
+
+#include "memblock.h"
+#include "utf8.h"
+#include <stdarg.h> // for va_list, va_start, and va_end (in string::format)
+
+namespace ustl {
+
+/// \class string ustring.h ustl.h
+/// \ingroup Sequences
+///
+/// \brief STL basic_string&lt;char&gt; equivalent.
+///
+/// An STL container for text string manipulation.
+/// Differences from C++ standard:
+/// - string is a class, not a template. Wide characters are assumed to be
+/// encoded with utf8 at all times except when rendering or editing,
+/// where you would use a utf8 iterator.
+/// - format member function - you can, of course use an \ref ostringstream,
+/// which also have format functions, but most of the time this way
+/// is more convenient. Because uSTL does not implement locales,
+/// format is the only way to create localized strings.
+/// - const char* cast operator. It is much clearer to use this than having
+/// to type .c_str() every time.
+/// - length returns the number of _characters_, not bytes.
+/// This function is O(N), so use wisely.
+///
+/// An additional note is in order regarding the use of indexes. All indexes
+/// passed in as arguments or returned by find are byte offsets, not character
+/// offsets. Likewise, sizes are specified in bytes, not characters. The
+/// rationale is that there is no way for you to know what is in the string.
+/// There is no way for you to know how many characters are needed to express
+/// one thing or another. The only thing you can do to a localized string is
+/// search for delimiters and modify text between them as opaque blocks. If you
+/// do anything else, you are hardcoding yourself into a locale! So stop it!
+///
+class string : public memblock {
+public:
+ typedef char value_type;
+ typedef value_type* pointer;
+ typedef const value_type* const_pointer;
+ typedef wchar_t wvalue_type;
+ typedef wvalue_type* wpointer;
+ typedef const wvalue_type* const_wpointer;
+ typedef pointer iterator;
+ typedef const_pointer const_iterator;
+ typedef value_type& reference;
+ typedef value_type const_reference;
+ typedef ::ustl::reverse_iterator<iterator> reverse_iterator;
+ typedef ::ustl::reverse_iterator<const_iterator> const_reverse_iterator;
+ typedef utf8in_iterator<const_iterator> utf8_iterator;
+ static const size_type npos = INT_MAX; ///< Value that means the end of string.
+public:
+ inline string (void) : memblock () { relink ("",0); }
+ string (const string& s);
+ inline string (const string& s, uoff_t o, size_type n);
+ inline explicit string (const cmemlink& l);
+ string (const_pointer s);
+ inline string (const_pointer s, size_type len);
+ inline string (const_pointer s1, const_pointer s2);
+ explicit string (size_type n, value_type c = 0);
+ inline pointer data (void) { return (string::pointer (memblock::data())); }
+ inline const_pointer c_str (void) const { return (string::const_pointer (memblock::cdata())); }
+ inline size_type max_size (void) const { size_type s (memblock::max_size()); return (s - !!s); }
+ inline size_type capacity (void) const { size_type c (memblock::capacity()); return (c - !!c); }
+ void resize (size_type n);
+ inline void resize (size_type n, value_type c);
+ inline void clear (void) { resize (0); }
+ inline const_iterator begin (void) const { return (const_iterator (memblock::begin())); }
+ inline iterator begin (void) { return (iterator (memblock::begin())); }
+ inline const_iterator end (void) const { return (const_iterator (memblock::end())); }
+ inline iterator end (void) { return (iterator (memblock::end())); }
+ inline const_reverse_iterator rbegin (void) const { return (const_reverse_iterator (end())); }
+ inline reverse_iterator rbegin (void) { return (reverse_iterator (end())); }
+ inline const_reverse_iterator rend (void) const { return (const_reverse_iterator (begin())); }
+ inline reverse_iterator rend (void) { return (reverse_iterator (begin())); }
+ inline utf8_iterator utf8_begin (void) const { return (utf8_iterator (begin())); }
+ inline utf8_iterator utf8_end (void) const { return (utf8_iterator (end())); }
+ inline const_reference at (uoff_t pos) const { assert (pos <= size() && begin()); return (begin()[pos]); }
+ inline reference at (uoff_t pos) { assert (pos <= size() && begin()); return (begin()[pos]); }
+ inline const_iterator iat (uoff_t pos) const { return (begin() + (__builtin_constant_p(pos) && pos >= npos ? size() : min(pos,size()))); }
+ inline iterator iat (uoff_t pos) { return (const_cast<iterator>(const_cast<const string*>(this)->iat(pos))); }
+ const_iterator wiat (uoff_t i) const;
+ inline iterator wiat (uoff_t i) { return (const_cast<iterator>(const_cast<const string*>(this)->wiat(i))); }
+ inline const_reference back (void) const { return (at(size()-1)); }
+ inline reference back (void) { return (at(size()-1)); }
+ inline size_type length (void) const { return (distance (utf8_begin(), utf8_end())); }
+ inline void append (const_iterator i1, const_iterator i2) { append (i1, distance (i1, i2)); }
+ void append (const_pointer s, size_type len);
+ void append (const_pointer s);
+ void append (size_type n, const_reference c);
+ inline void append (size_type n, wvalue_type c) { insert (size(), c, n); }
+ inline void append (const_wpointer s1, const_wpointer s2) { insert (size(), s1, s2); }
+ inline void append (const_wpointer s) { const_wpointer se (s); for (;se&&*se;++se) ; append (s, se); }
+ inline void append (const string& s) { append (s.begin(), s.end()); }
+ inline void append (const string& s, uoff_t o, size_type n) { append (s.iat(o), s.iat(o+n)); }
+ inline void assign (const_iterator i1, const_iterator i2) { assign (i1, distance (i1, i2)); }
+ void assign (const_pointer s, size_type len);
+ void assign (const_pointer s);
+ inline void assign (const_wpointer s1, const_wpointer s2) { clear(); append (s1, s2); }
+ inline void assign (const_wpointer s1) { clear(); append (s1); }
+ inline void assign (const string& s) { assign (s.begin(), s.end()); }
+ inline void assign (const string& s, uoff_t o, size_type n) { assign (s.iat(o), s.iat(o+n)); }
+ size_type copyto (pointer p, size_type n, const_iterator start = NULL) const;
+ inline int compare (const string& s) const { return (compare (begin(), end(), s.begin(), s.end())); }
+ inline int compare (const_pointer s) const { return (compare (begin(), end(), s, s + strlen(s))); }
+ static int compare (const_iterator first1, const_iterator last1, const_iterator first2, const_iterator last2);
+ inline operator const value_type* (void) const;
+ inline operator value_type* (void);
+ inline const string& operator= (const string& s) { assign (s.begin(), s.end()); return (*this); }
+ inline const string& operator= (const_reference c) { assign (&c, 1); return (*this); }
+ inline const string& operator= (const_pointer s) { assign (s); return (*this); }
+ inline const string& operator= (const_wpointer s) { assign (s); return (*this); }
+ inline const string& operator+= (const string& s) { append (s.begin(), s.size()); return (*this); }
+ inline const string& operator+= (const_reference c) { append (1, c); return (*this); }
+ inline const string& operator+= (const_pointer s) { append (s); return (*this); }
+ inline const string& operator+= (wvalue_type c) { append (1, c); return (*this); }
+ inline const string& operator+= (const_wpointer s) { append (s); return (*this); }
+ inline string operator+ (const string& s) const;
+ inline bool operator== (const string& s) const { return (memblock::operator== (s)); }
+ bool operator== (const_pointer s) const;
+ inline bool operator== (const_reference c) const { return (size() == 1 && c == at(0)); }
+ inline bool operator!= (const string& s) const { return (!operator== (s)); }
+ inline bool operator!= (const_pointer s) const { return (!operator== (s)); }
+ inline bool operator!= (const_reference c) const { return (!operator== (c)); }
+ inline bool operator< (const string& s) const { return (0 > compare (s)); }
+ inline bool operator< (const_pointer s) const { return (0 > compare (s)); }
+ inline bool operator< (const_reference c) const { return (0 > compare (begin(), end(), &c, &c + 1)); }
+ inline bool operator> (const_pointer s) const { return (0 < compare (s)); }
+ void insert (const uoff_t ip, wvalue_type c, size_type n = 1);
+ void insert (const uoff_t ip, const_wpointer first, const_wpointer last, const size_type n = 1);
+ iterator insert (iterator start, const_reference c, size_type n = 1);
+ iterator insert (iterator start, const_pointer s, size_type n = 1);
+ iterator insert (iterator start, const_pointer first, const_iterator last, size_type n = 1);
+ inline void insert (uoff_t ip, const_pointer s, size_type nlen) { insert (iat(ip), s, s + nlen); }
+ inline void insert (uoff_t ip, size_type n, value_type c) { insert (iat(ip), c, n); }
+ inline void insert (uoff_t ip, const string& s, uoff_t sp, size_type slen) { insert (iat(ip), s.iat(sp), s.iat(sp + slen)); }
+ iterator erase (iterator epo, size_type n = 1);
+ void erase (uoff_t epo = 0, size_type n = 1);
+ inline iterator erase (iterator first, const_iterator last) { return (erase (first, size_type(distance(first,last)))); }
+ inline void eraser (uoff_t first, uoff_t last) { erase (iat(first), iat(last)); }
+ inline void push_back (const_reference c) { append (1, c); }
+ inline void push_back (wvalue_type c) { append (1, c); }
+ inline void pop_back (void) { resize (size() - 1); }
+ void replace (iterator first, iterator last, const_pointer s);
+ void replace (iterator first, iterator last, const_pointer i1, const_pointer i2, size_type n = 1);
+ inline void replace (iterator first, iterator last, const string& s) { replace (first, last, s.begin(), s.end()); }
+ inline void replace (iterator first, iterator last, const_pointer s, size_type slen) { replace (first, last, s, s + slen); }
+ inline void replace (iterator first, iterator last, size_type n, value_type c) { replace (first, last, &c, &c + 1, n); }
+ inline void replace (uoff_t rp, size_type n, const string& s) { replace (iat(rp), iat(rp + n), s); }
+ inline void replace (uoff_t rp, size_type n, const string& s, uoff_t sp, size_type slen) { replace (iat(rp), iat(rp + n), s.iat(sp), s.iat(sp + slen)); }
+ inline void replace (uoff_t rp, size_type n, const_pointer s, size_type slen) { replace (iat(rp), iat(rp + n), s, s + slen); }
+ inline void replace (uoff_t rp, size_type n, const_pointer s) { replace (iat(rp), iat(rp + n), string(s)); }
+ inline void replace (uoff_t rp, size_type n, size_type count, value_type c) { replace (iat(rp), iat(rp + n), count, c); }
+ inline string substr (uoff_t o, size_type n = npos) const { return (string (*this, o, n)); }
+ uoff_t find (const_reference c, uoff_t pos = 0) const;
+ uoff_t find (const string& s, uoff_t pos = 0) const;
+ uoff_t rfind (const_reference c, uoff_t pos = npos) const;
+ uoff_t rfind (const string& s, uoff_t pos = npos) const;
+ uoff_t find_first_of (const string& s, uoff_t pos = 0) const;
+ uoff_t find_first_not_of (const string& s, uoff_t pos = 0) const;
+ uoff_t find_last_of (const string& s, uoff_t pos = npos) const;
+ uoff_t find_last_not_of (const string& s, uoff_t pos = npos) const;
+ int vformat (const char* fmt, va_list args);
+ int format (const char* fmt, ...) __attribute__((__format__(__printf__, 2, 3)));
+ void read (istream&);
+ void write (ostream& os) const;
+ size_t stream_size (void) const;
+ static hashvalue_t hash (const char* f1, const char* l1);
+protected:
+ virtual size_type minimumFreeCapacity (void) const throw() __attribute__((const));
+};
+
+//----------------------------------------------------------------------
+
+/// Assigns itself the value of string \p s
+inline string::string (const cmemlink& s)
+: memblock ()
+{
+ assign (const_iterator (s.begin()), s.size());
+}
+
+/// Assigns itself a [o,o+n) substring of \p s.
+inline string::string (const string& s, uoff_t o, size_type n)
+: memblock()
+{
+ assign (s, o, n);
+}
+
+/// Copies the value of \p s of length \p len into itself.
+inline string::string (const_pointer s, size_type len)
+: memblock ()
+{
+ assign (s, len);
+}
+
+/// Copies into itself the string data between \p s1 and \p s2
+inline string::string (const_pointer s1, const_pointer s2)
+: memblock ()
+{
+ assert (s1 <= s2 && "Negative ranges result in memory allocation errors.");
+ assign (s1, s2);
+}
+
+/// Returns the pointer to the first character.
+inline string::operator const string::value_type* (void) const
+{
+ assert ((!end() || !*end()) && "This string is linked to data that is not 0-terminated. This may cause serious security problems. Please assign the data instead of linking.");
+ return (begin());
+}
+
+/// Returns the pointer to the first character.
+inline string::operator string::value_type* (void)
+{
+ assert ((end() && !*end()) && "This string is linked to data that is not 0-terminated. This may cause serious security problems. Please assign the data instead of linking.");
+ return (begin());
+}
+
+/// Concatenates itself with \p s
+inline string string::operator+ (const string& s) const
+{
+ string result (*this);
+ result += s;
+ return (result);
+}
+
+/// Resize to \p n and fill new entries with \p c
+inline void string::resize (size_type n, value_type c)
+{
+ const size_type oldn = size();
+ resize (n);
+ fill_n (iat(oldn), max(ssize_t(n-oldn),0), c);
+}
+
+//----------------------------------------------------------------------
+// Operators needed to avoid comparing pointer to pointer
+
+#define PTR_STRING_CMP(op, impl) \
+inline bool op (const char* s1, const string& s2) { return impl; }
+PTR_STRING_CMP (operator==, (s2 == s1))
+PTR_STRING_CMP (operator!=, (s2 != s1))
+PTR_STRING_CMP (operator<, (s2 > s1))
+PTR_STRING_CMP (operator<=, (s2 >= s1))
+PTR_STRING_CMP (operator>, (s2 < s1))
+PTR_STRING_CMP (operator>=, (s2 <= s1))
+#undef PTR_STRING_CMP
+
+inline string operator+ (const char* cs, const string& ss) { string r; r.reserve (strlen(cs)+ss.size()); r += cs; r += ss; return (r); }
+
+//----------------------------------------------------------------------
+
+inline hashvalue_t hash_value (const char* first, const char* last)
+{ return (string::hash (first, last)); }
+inline hashvalue_t hash_value (const char* v)
+{ return (hash_value (v, v + strlen(v))); }
+
+//----------------------------------------------------------------------
+
+} // namespace ustl
+
+#endif
diff --git a/ecos/packages/language/cxx/ustl/current/include/ustl/utf8.h b/ecos/packages/language/cxx/ustl/current/include/ustl/utf8.h
new file mode 100644
index 0000000..8dc10f3
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/include/ustl/utf8.h
@@ -0,0 +1,215 @@
+// This file is part of the uSTL library, an STL implementation.
+//
+// Copyright (c) 2005 by Mike Sharov <msharov@users.sourceforge.net>
+// This file is free software, distributed under the MIT License.
+//
+// This file contains stream iterators that read and write UTF-8 encoded
+// characters. The encoding is defined as follows:
+//
+// U-00000000 - U-0000007F: 0xxxxxxx
+// U-00000080 - U-000007FF: 110xxxxx 10xxxxxx
+// U-00000800 - U-0000FFFF: 1110xxxx 10xxxxxx 10xxxxxx
+// U-00010000 - U-001FFFFF: 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
+// U-00200000 - U-03FFFFFF: 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
+// U-04000000 - U-7FFFFFFF: 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
+// U-80000000 - U-FFFFFFFF: 11111110 100000xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
+
+#ifndef UTF8_H_3D7AEEEB3A88928D4D280B785F78B6F4
+#define UTF8_H_3D7AEEEB3A88928D4D280B785F78B6F4
+
+#include "uiterator.h"
+
+namespace ustl {
+
+//----------------------------------------------------------------------
+
+typedef uint8_t utf8subchar_t; ///< Type for the encoding subcharacters.
+
+//----------------------------------------------------------------------
+
+inline size_t Utf8Bytes (wchar_t v) __attribute__((const));
+inline size_t Utf8Bytes (const wchar_t* first, const wchar_t* last) __attribute__((pure));
+inline size_t Utf8SequenceBytes (wchar_t c) __attribute__((const));
+
+//----------------------------------------------------------------------
+
+/// Returns the number of bytes required to UTF-8 encode \p v.
+inline size_t Utf8Bytes (wchar_t v)
+{
+ if ((uint32_t) v < 128)
+ return (1);
+ size_t n;
+ #if __i386__ || __x86_64__
+ uint32_t r = 0;
+ asm ("bsr\t%2, %%eax\n\t"
+ "add\t$4, %0\n\t"
+ "div\t%3":"=a"(n),"+d"(r):"r"(v),"c"(5));
+ #else
+ static const uint32_t c_Bounds[7] = { 0x0000007F, 0x000007FF, 0x0000FFFF, 0x001FFFFF, 0x03FFFFFF, 0x7FFFFFFF, 0xFFFFFFFF };
+ for (n = 0; c_Bounds[n++] < uint32_t(v););
+ #endif
+ return (n);
+}
+
+/// Measures the size of a wchar_t array in UTF-8 encoding.
+inline size_t Utf8Bytes (const wchar_t* first, const wchar_t* last)
+{
+ size_t bc = 0;
+ for (; first < last; ++first)
+ bc += Utf8Bytes(*first);
+ return (bc);
+}
+
+/// Returns the number of bytes in a UTF-8 sequence that starts with \p c.
+inline size_t Utf8SequenceBytes (wchar_t c) // a wchar_t to keep c in a full register
+{
+ // Count the leading bits. Header bits are 1 * nBytes followed by a 0.
+ // 0 - single byte character. Take 7 bits (0xFF >> 1)
+ // 1 - error, in the middle of the character. Take 6 bits (0xFF >> 2)
+ // so you will keep reading invalid entries until you hit the next character.
+ // >2 - multibyte character. Take remaining bits, and get the next bytes.
+ // All errors are ignored, since the user can not correct them.
+ //
+ wchar_t mask = 0x80;
+ size_t nBytes = 0;
+ for (; c & mask; ++nBytes)
+ mask >>= 1;
+ return (nBytes ? nBytes : 1); // A sequence is always at least 1 byte.
+}
+
+//----------------------------------------------------------------------
+
+/// \class utf8in_iterator utf8.h ustl.h
+/// \ingroup IteratorAdaptors
+///
+/// \brief An iterator adaptor to character containers for reading UTF-8 encoded text.
+///
+/// For example, you can copy from ustl::string to ustl::vector<wchar_t> with
+/// copy (utf8in (str.begin()), utf8in (str.end()), back_inserter(wvect));
+/// There is no error handling; if the reading frame slips you'll get extra
+/// characters, one for every misaligned byte. Although it is possible to skip
+/// to the start of the next character, that would result in omitting the
+/// misformatted character and the one after it, making it very difficult to
+/// detect by the user. It is better to write some strange characters and let
+/// the user know his file is corrupted. Another problem is overflow on bad
+/// encodings (like a 0xFF on the end of a string). This is checked through
+/// the end-of-string nul character, which will always be there as long as
+/// you are using the string class.
+///
+template <typename Iterator, typename WChar = wchar_t>
+class utf8in_iterator {
+public:
+ typedef typename iterator_traits<Iterator>::value_type value_type;
+ typedef typename iterator_traits<Iterator>::difference_type difference_type;
+ typedef typename iterator_traits<Iterator>::pointer pointer;
+ typedef typename iterator_traits<Iterator>::reference reference;
+public:
+ explicit utf8in_iterator (const Iterator& is) : m_i (is), m_v (0) { Read(); }
+ utf8in_iterator (const utf8in_iterator& i) : m_i (i.m_i), m_v (i.m_v) {}
+ inline const utf8in_iterator& operator= (const utf8in_iterator& i) { m_i = i.m_i; m_v = i.m_v; return (*this); }
+ inline Iterator base (void) const { return (m_i - (Utf8Bytes(m_v) - 1)); }
+ /// Reads and returns the next value.
+ inline WChar operator* (void) const { return (m_v); }
+ inline utf8in_iterator& operator++ (void) { ++m_i; Read(); return (*this); }
+ inline utf8in_iterator operator++ (int) { utf8in_iterator old (*this); operator++(); return (old); }
+ inline utf8in_iterator& operator+= (uoff_t n) { while (n--) operator++(); return (*this); }
+ inline utf8in_iterator operator+ (uoff_t n) { utf8in_iterator v (*this); return (v += n); }
+ inline bool operator== (const utf8in_iterator& i) const { return (m_i == i.m_i); }
+ inline bool operator< (const utf8in_iterator& i) const { return (m_i < i.m_i); }
+ difference_type operator- (const utf8in_iterator& i) const;
+private:
+ void Read (void);
+private:
+ Iterator m_i;
+ WChar m_v;
+};
+
+/// Steps to the next character and updates current returnable value.
+template <typename Iterator, typename WChar>
+void utf8in_iterator<Iterator,WChar>::Read (void)
+{
+ const utf8subchar_t c = *m_i;
+ size_t nBytes = Utf8SequenceBytes (c);
+ m_v = c & (0xFF >> nBytes); // First byte contains bits after the header.
+ while (--nBytes && *++m_i) // Each subsequent byte has 6 bits.
+ m_v = (m_v << 6) | (*m_i & 0x3F);
+}
+
+/// Returns the distance in characters (as opposed to the distance in bytes).
+template <typename Iterator, typename WChar>
+typename utf8in_iterator<Iterator,WChar>::difference_type
+utf8in_iterator<Iterator,WChar>::operator- (const utf8in_iterator<Iterator,WChar>& last) const
+{
+ difference_type dist = 0;
+ for (Iterator first (last.m_i); first < m_i; ++dist)
+ first = advance (first, Utf8SequenceBytes (*first));
+ return (dist);
+}
+
+//----------------------------------------------------------------------
+
+/// \class utf8out_iterator utf8.h ustl.h
+/// \ingroup IteratorAdaptors
+///
+/// \brief An iterator adaptor to character containers for writing UTF-8 encoded text.
+///
+template <typename Iterator, typename WChar = wchar_t>
+class utf8out_iterator {
+public:
+ typedef typename iterator_traits<Iterator>::value_type value_type;
+ typedef typename iterator_traits<Iterator>::difference_type difference_type;
+ typedef typename iterator_traits<Iterator>::pointer pointer;
+ typedef typename iterator_traits<Iterator>::reference reference;
+public:
+ explicit utf8out_iterator (const Iterator& os) : m_i (os) {}
+ utf8out_iterator (const utf8out_iterator& i) : m_i (i.m_i) {}
+ inline const Iterator& base (void) const { return (m_i); }
+ /// Writes \p v into the stream.
+ utf8out_iterator& operator= (WChar v);
+ inline utf8out_iterator& operator* (void) { return (*this); }
+ inline utf8out_iterator& operator++ (void) { return (*this); }
+ inline utf8out_iterator operator++ (int) { return (*this); }
+ inline bool operator== (const utf8out_iterator& i) const { return (m_i == i.m_i); }
+ inline bool operator< (const utf8out_iterator& i) const { return (m_i < i.m_i); }
+private:
+ Iterator m_i;
+};
+
+/// Writes \p v into the stream.
+template <typename Iterator, typename WChar>
+utf8out_iterator<Iterator,WChar>& utf8out_iterator<Iterator,WChar>::operator= (WChar v)
+{
+ const size_t nBytes = Utf8Bytes (v);
+ if (nBytes > 1) {
+ // Write the bits 6 bits at a time, except for the first one,
+ // which may be less than 6 bits.
+ register wchar_t shift = nBytes * 6;
+ *m_i++ = ((v >> (shift -= 6)) & 0x3F) | (0xFF << (8 - nBytes));
+ while (shift)
+ *m_i++ = ((v >> (shift -= 6)) & 0x3F) | 0x80;
+ } else // If only one byte, there is no header.
+ *m_i++ = v;
+ return (*this);
+}
+
+//----------------------------------------------------------------------
+
+/// Returns a UTF-8 adaptor writing to \p i. Useful in conjuction with back_insert_iterator.
+template <typename Iterator>
+inline utf8out_iterator<Iterator> utf8out (Iterator i)
+{
+ return (utf8out_iterator<Iterator> (i));
+}
+
+/// Returns a UTF-8 adaptor reading from \p i.
+template <typename Iterator>
+inline utf8in_iterator<Iterator> utf8in (Iterator i)
+{
+ return (utf8in_iterator<Iterator> (i));
+}
+
+//----------------------------------------------------------------------
+
+} // namespace ustl
+
+#endif
diff --git a/ecos/packages/language/cxx/ustl/current/include/ustl/utuple.h b/ecos/packages/language/cxx/ustl/current/include/ustl/utuple.h
new file mode 100644
index 0000000..d55d86a
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/include/ustl/utuple.h
@@ -0,0 +1,332 @@
+// This file is part of the uSTL library, an STL implementation.
+//
+// Copyright (c) 2005 by Mike Sharov <msharov@users.sourceforge.net>
+// This file is free software, distributed under the MIT License.
+
+#ifndef UTUPLE_H_7324ADEC49B397CA74A56F6050FD5A6B
+#define UTUPLE_H_7324ADEC49B397CA74A56F6050FD5A6B
+
+#include "ualgo.h"
+#include "metamac.h"
+
+namespace ustl {
+
+/// \class tuple utuple.h ustl.h
+/// \ingroup Sequences
+///
+/// \brief A fixed-size array of \p N \p Ts.
+///
+template <size_t N, typename T>
+class tuple {
+public:
+ typedef T value_type;
+ typedef size_t size_type;
+ typedef value_type* pointer;
+ typedef const value_type* const_pointer;
+ typedef value_type& reference;
+ typedef const value_type& const_reference;
+ typedef pointer iterator;
+ typedef const_pointer const_iterator;
+ typedef ::ustl::reverse_iterator<iterator> reverse_iterator;
+ typedef ::ustl::reverse_iterator<const_iterator> const_reverse_iterator;
+ typedef pair<iterator,iterator> range_t;
+ typedef pair<const_iterator,const_iterator> const_range_t;
+public:
+ template <typename T2>
+ inline tuple (const tuple<N,T2>& t);
+ inline tuple (const tuple<N,T>& t);
+ inline tuple (const_pointer v);
+ inline tuple (void);
+ explicit inline tuple (const_reference v0, const_reference v1 = T(), const_reference v2 = T(), const_reference v3 = T());
+ inline iterator begin (void) { return (m_v); }
+ inline const_iterator begin (void) const { return (m_v); }
+ inline iterator end (void) { return (begin() + N); }
+ inline const_iterator end (void) const { return (begin() + N); }
+ inline size_type size (void) const { return (N); }
+ inline size_type max_size (void) const { return (N); }
+ inline bool empty (void) const { return (N == 0); }
+ inline const_reference at (size_type i) const { return (m_v[i]); }
+ inline reference at (size_type i) { return (m_v[i]); }
+ inline const_reference operator[] (size_type i) const { return (m_v[i]); }
+ inline reference operator[] (size_type i) { return (m_v[i]); }
+ template <typename T2>
+ inline const tuple& operator= (const tuple<N,T2>& src);
+ inline const tuple& operator= (const tuple<N,T>& src);
+ inline const tuple& operator+= (const_reference v)
+ { for (uoff_t i = 0; i < N; ++ i) m_v[i] += v; return (*this); }
+ inline const tuple& operator-= (const_reference v)
+ { for (uoff_t i = 0; i < N; ++ i) m_v[i] -= v; return (*this); }
+ inline const tuple& operator*= (const_reference v)
+ { for (uoff_t i = 0; i < N; ++ i) m_v[i] *= v; return (*this); }
+ inline const tuple& operator/= (const_reference v)
+ { for (uoff_t i = 0; i < N; ++ i) m_v[i] /= v; return (*this); }
+ inline const tuple operator+ (const_reference v) const
+ { tuple result; for (uoff_t i = 0; i < N; ++ i) result[i] = m_v[i] + v; return (result); }
+ inline const tuple operator- (const_reference v) const
+ { tuple result; for (uoff_t i = 0; i < N; ++ i) result[i] = m_v[i] - v; return (result); }
+ inline const tuple operator* (const_reference v) const
+ { tuple result; for (uoff_t i = 0; i < N; ++ i) result[i] = m_v[i] * v; return (result); }
+ inline const tuple operator/ (const_reference v) const
+ { tuple result; for (uoff_t i = 0; i < N; ++ i) result[i] = m_v[i] / v; return (result); }
+ inline void swap (tuple<N,T>& v)
+ { for (uoff_t i = 0; i < N; ++ i) ::ustl::swap (m_v[i], v.m_v[i]); }
+ inline void read (istream& is) { nr_container_read (is, *this); }
+ inline void write (ostream& os) const { nr_container_write (os, *this); }
+ inline void text_write (ostringstream& os) const { container_text_write (os, *this); }
+ inline size_t stream_size (void) const { return (nr_container_stream_size (*this)); }
+private:
+ T m_v [N];
+};
+
+} // namespace ustl
+
+#include "simd.h"
+
+namespace ustl {
+
+template <size_t N, typename T>
+template <typename T2>
+inline tuple<N,T>::tuple (const tuple<N,T2>& t)
+{ simd::pconvert (t, *this, simd::fcast<T2,T>()); }
+
+template <size_t N, typename T>
+inline tuple<N,T>::tuple (const tuple<N,T>& t)
+{ simd::passign (t, *this); }
+
+template <size_t N, typename T>
+inline tuple<N,T>::tuple (const_pointer v)
+{ simd::ipassign (v, *this); }
+
+template <size_t N, typename T>
+inline tuple<N,T>::tuple (void)
+{
+ const T v = T();
+ if (N > 4 || !numeric_limits<T>::is_integral)
+ fill_n (m_v, N, v);
+ else {
+ m_v[0] = v;
+ if (N > 1) m_v[1] = v;
+ if (N > 2) m_v[2] = v;
+ if (N > 3) m_v[3] = v;
+ }
+}
+
+template <size_t N, typename T>
+inline tuple<N,T>::tuple (const_reference v0, const_reference v1, const_reference v2, const_reference v3)
+{
+ m_v[0] = v0;
+ if (N > 1) m_v[1] = v1;
+ if (N > 2) m_v[2] = v2;
+ if (N > 3) m_v[3] = v3;
+ if (N > 4) fill_n (m_v + 4, N - 4, T());
+}
+
+template <size_t N, typename T>
+template <typename T2>
+inline const tuple<N,T>& tuple<N,T>::operator= (const tuple<N,T2>& src)
+{ simd::pconvert (src, *this, simd::fcast<T2,T>()); return (*this); }
+
+template <size_t N, typename T>
+inline const tuple<N,T>& tuple<N,T>::operator= (const tuple<N,T>& src)
+{ simd::passign (src, *this); return (*this); }
+
+template <size_t N, typename T1, typename T2>
+inline bool operator== (const tuple<N,T1>& t1, const tuple<N,T2>& t2)
+{
+ for (uoff_t i = 0; i < N; ++ i)
+ if (t1[i] != t2[i])
+ return (false);
+ return (true);
+}
+
+template <size_t N, typename T1, typename T2>
+inline bool operator< (const tuple<N,T1>& t1, const tuple<N,T2>& t2)
+{
+ for (uoff_t i = 0; i < N && t1[i] <= t2[i]; ++ i)
+ if (t1[i] < t2[i])
+ return (true);
+ return (false);
+}
+
+template <size_t N, typename T1, typename T2>
+inline const tuple<N,T1>& operator+= (tuple<N,T1>& t1, const tuple<N,T2>& t2)
+ { for (uoff_t i = 0; i < N; ++ i) t1[i] = T1(t1[i] + t2[i]); return (t1); }
+
+template <size_t N, typename T1, typename T2>
+inline const tuple<N,T1>& operator-= (tuple<N,T1>& t1, const tuple<N,T2>& t2)
+ { for (uoff_t i = 0; i < N; ++ i) t1[i] = T1(t1[i] - t2[i]); return (t1); }
+
+template <size_t N, typename T1, typename T2>
+inline const tuple<N,T1>& operator*= (tuple<N,T1>& t1, const tuple<N,T2>& t2)
+ { for (uoff_t i = 0; i < N; ++ i) t1[i] = T1(t1[i] * t2[i]); return (t1); }
+
+template <size_t N, typename T1, typename T2>
+inline const tuple<N,T1>& operator/= (tuple<N,T1>& t1, const tuple<N,T2>& t2)
+ { for (uoff_t i = 0; i < N; ++ i) t1[i] = T1(t1[i] / t2[i]); return (t1); }
+
+template <size_t N, typename T1, typename T2>
+inline const tuple<N,T1> operator+ (const tuple<N,T1>& t1, const tuple<N,T2>& t2)
+{
+ tuple<N,T1> result;
+ for (uoff_t i = 0; i < N; ++ i) result[i] = T1(t1[i] + t2[i]);
+ return (result);
+}
+
+template <size_t N, typename T1, typename T2>
+inline const tuple<N,T1> operator- (const tuple<N,T1>& t1, const tuple<N,T2>& t2)
+{
+ tuple<N,T1> result;
+ for (uoff_t i = 0; i < N; ++ i) result[i] = T1(t1[i] - t2[i]);
+ return (result);
+}
+
+template <size_t N, typename T1, typename T2>
+inline const tuple<N,T1> operator* (const tuple<N,T1>& t1, const tuple<N,T2>& t2)
+{
+ tuple<N,T1> result;
+ for (uoff_t i = 0; i < N; ++ i) result[i] = T1(t1[i] * t2[i]);
+ return (result);
+}
+
+template <size_t N, typename T1, typename T2>
+inline const tuple<N,T1> operator/ (const tuple<N,T1>& t1, const tuple<N,T2>& t2)
+{
+ tuple<N,T1> result;
+ for (uoff_t i = 0; i < N; ++ i) result[i] = T1(t1[i] / t2[i]);
+ return (result);
+}
+
+//----------------------------------------------------------------------
+// Define SIMD specializations for member functions.
+
+#if CPU_HAS_SSE
+#define SSE_TUPLE_SPECS(n,type) \
+template <> inline tuple<n,type>::tuple (void) \
+{ asm("xorps %%xmm0, %%xmm0\n\tmovups %%xmm0, %0":"+m"(m_v[0])::"xmm0","memory"); } \
+template<> inline void tuple<n,type>::swap (tuple<n,type>& v) \
+{ \
+ asm ("movups %0,%%xmm0\n\tmovups %1,%%xmm1\n\t" \
+ "movups %%xmm0,%1\n\tmovups %%xmm1,%0" \
+ : "+m"(m_v[0]), "+m"(v.m_v[0]) :: "xmm0","xmm1","memory"); \
+}
+SSE_TUPLE_SPECS(4,float)
+SSE_TUPLE_SPECS(4,int32_t)
+SSE_TUPLE_SPECS(4,uint32_t)
+#undef SSE_TUPLE_SPECS
+#endif
+#if SIZE_OF_LONG == 8 && __GNUC__
+#define LONG_TUPLE_SPECS(n,type) \
+template <> inline tuple<n,type>::tuple (void) \
+{ asm("":"+m"(m_v[0])::"memory"); \
+ *noalias_cast<long*>(m_v) = 0; } \
+template<> inline void tuple<n,type>::swap (tuple<n,type>& v) \
+{ asm("":"+m"(m_v[0]),"+m"(v.m_v[0])::"memory"); \
+ iter_swap (noalias_cast<long*>(m_v), noalias_cast<long*>(v.m_v)); \
+ asm("":"+m"(m_v[0]),"+m"(v.m_v[0])::"memory"); \
+}
+LONG_TUPLE_SPECS(2,float)
+LONG_TUPLE_SPECS(4,int16_t)
+LONG_TUPLE_SPECS(4,uint16_t)
+LONG_TUPLE_SPECS(2,int32_t)
+LONG_TUPLE_SPECS(2,uint32_t)
+LONG_TUPLE_SPECS(8,int8_t)
+LONG_TUPLE_SPECS(8,uint8_t)
+#undef LONG_TUPLE_SPECS
+#elif CPU_HAS_MMX
+#define MMX_TUPLE_SPECS(n,type) \
+template <> inline tuple<n,type>::tuple (void) \
+{ asm ("pxor %%mm0, %%mm0\n\tmovq %%mm0, %0" \
+ :"=m"(m_v[0])::"mm0","st","memory"); simd::reset_mmx(); } \
+template<> inline void tuple<n,type>::swap (tuple<n,type>& v) \
+{ asm ("movq %2,%%mm0\n\tmovq %3,%%mm1\n\t" \
+ "movq %%mm0,%1\n\tmovq %%mm1,%0" \
+ :"=m"(m_v[0]),"=m"(v.m_v[0]):"m"(m_v[0]),"m"(v.m_v[0]):"mm0","mm1","st","st(1)","memory"); \
+ simd::reset_mmx(); \
+}
+MMX_TUPLE_SPECS(2,float)
+MMX_TUPLE_SPECS(4,int16_t)
+MMX_TUPLE_SPECS(4,uint16_t)
+MMX_TUPLE_SPECS(2,int32_t)
+MMX_TUPLE_SPECS(2,uint32_t)
+MMX_TUPLE_SPECS(8,int8_t)
+MMX_TUPLE_SPECS(8,uint8_t)
+#undef MMX_TUPLE_SPECS
+#endif
+
+#if __i386__ || __x86_64__
+#define UINT32_TUPLE_SPECS(type,otype) \
+template <> inline tuple<2,type>::tuple (void) \
+{ asm("":"+m"(m_v[0]),"+m"(m_v[1])::"memory"); \
+ *noalias_cast<uint32_t*>(m_v) = 0; \
+ asm("":"+m"(m_v[0]),"+m"(m_v[1])::"memory"); }\
+template <> inline const tuple<2,type>& tuple<2,type>::operator= (const tuple<2,type>& v)\
+{ asm ("mov %3, %0" \
+ :"=m"(*noalias_cast<uint32_t*>(m_v)),"=m"(m_v[0]),"=m"(m_v[1]) \
+ :"r"(*noalias_cast<const uint32_t*>(v.begin())),"m"(v[0]),"m"(v[1]):"memory"); \
+ return (*this); } \
+template <> template <> \
+inline const tuple<2,type>& tuple<2,type>::operator= (const tuple<2,otype>& v)\
+{ asm ("mov %3, %0" \
+ :"=m"(*noalias_cast<uint32_t*>(m_v)),"=m"(m_v[0]),"=m"(m_v[1]) \
+ :"r"(*noalias_cast<const uint32_t*>(v.begin())),"m"(v[0]),"m"(v[1]):"memory"); \
+ return (*this); } \
+template <> inline tuple<2,type>::tuple (const tuple<2,type>& v) \
+{ operator= (v); } \
+template <> template <> \
+inline tuple<2,type>::tuple (const tuple<2,otype>& v) \
+{ operator= (v); } \
+template<> inline void tuple<2,type>::swap (tuple<2,type>& v) \
+{ asm(""::"m"(m_v[0]),"m"(m_v[1]),"m"(v.m_v[0]),"m"(v.m_v[1]):"memory");\
+ iter_swap (noalias_cast<uint32_t*>(m_v), noalias_cast<uint32_t*>(v.m_v)); \
+ asm("":"=m"(m_v[0]),"=m"(m_v[1]),"=m"(v.m_v[0]),"=m"(v.m_v[1])::"memory"); } \
+template <> inline const tuple<2,type>& operator+= (tuple<2,type>& t1, const tuple<2,type>& t2) \
+ { t1[0] += t2[0]; t1[1] += t2[1]; return (t1); } \
+template <> inline const tuple<2,type>& operator-= (tuple<2,type>& t1, const tuple<2,type>& t2) \
+ { t1[0] -= t2[0]; t1[1] -= t2[1]; return (t1); } \
+template <> inline const tuple<2,type> operator+ (const tuple<2,type>& t1, const tuple<2,type>& t2) \
+ { return (tuple<2,type> (t1[0] + t2[0], t1[1] + t2[1])); } \
+template <> inline const tuple<2,type> operator- (const tuple<2,type>& t1, const tuple<2,type>& t2) \
+ { return (tuple<2,type> (t1[0] - t2[0], t1[1] - t2[1])); }
+UINT32_TUPLE_SPECS(int16_t,uint16_t)
+UINT32_TUPLE_SPECS(uint16_t,int16_t)
+#undef UINT32_TUPLE_SPECS
+#endif
+
+#undef TUPLEV_R1
+#undef TUPLEV_R2
+#undef TUPLEV_W1
+#undef TUPLEV_W2
+
+#define SIMD_TUPLE_PACKOP(N,T) \
+template <> inline const tuple<N,T>& operator+= (tuple<N,T>& t1, const tuple<N,T>& t2) \
+ { simd::padd (t2, t1); return (t1); } \
+template <> inline const tuple<N,T>& operator-= (tuple<N,T>& t1, const tuple<N,T>& t2) \
+ { simd::psub (t2, t1); return (t1); } \
+template <> inline const tuple<N,T>& operator*= (tuple<N,T>& t1, const tuple<N,T>& t2) \
+ { simd::pmul (t2, t1); return (t1); } \
+template <> inline const tuple<N,T>& operator/= (tuple<N,T>& t1, const tuple<N,T>& t2) \
+ { simd::pdiv (t2, t1); return (t1); } \
+template <> inline const tuple<N,T> operator+ (const tuple<N,T>& t1, const tuple<N,T>& t2) \
+ { tuple<N,T> result (t1); simd::padd (t2, result); return (result); } \
+template <> inline const tuple<N,T> operator- (const tuple<N,T>& t1, const tuple<N,T>& t2) \
+ { tuple<N,T> result (t1); simd::psub (t2, result); return (result); } \
+template <> inline const tuple<N,T> operator* (const tuple<N,T>& t1, const tuple<N,T>& t2) \
+ { tuple<N,T> result (t1); simd::pmul (t2, result); return (result); } \
+template <> inline const tuple<N,T> operator/ (const tuple<N,T>& t1, const tuple<N,T>& t2) \
+ { tuple<N,T> result (t1); simd::pdiv (t2, result); return (result); }
+SIMD_TUPLE_PACKOP(4,float)
+SIMD_TUPLE_PACKOP(2,float)
+SIMD_TUPLE_PACKOP(2,double)
+SIMD_TUPLE_PACKOP(4,int32_t)
+SIMD_TUPLE_PACKOP(4,uint32_t)
+SIMD_TUPLE_PACKOP(4,int16_t)
+SIMD_TUPLE_PACKOP(4,uint16_t)
+SIMD_TUPLE_PACKOP(2,int32_t)
+SIMD_TUPLE_PACKOP(2,uint32_t)
+SIMD_TUPLE_PACKOP(8,int8_t)
+SIMD_TUPLE_PACKOP(8,uint8_t)
+#undef SIMD_TUPLE_PACKOP
+
+} // namespace ustl
+
+#endif
diff --git a/ecos/packages/language/cxx/ustl/current/include/ustl/utypes.h b/ecos/packages/language/cxx/ustl/current/include/ustl/utypes.h
new file mode 100644
index 0000000..a7ba729
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/include/ustl/utypes.h
@@ -0,0 +1,67 @@
+// This file is part of the uSTL library, an STL implementation.
+//
+// Copyright (c) 2005 by Mike Sharov <msharov@users.sourceforge.net>
+// This file is free software, distributed under the MIT License.
+
+#ifndef UTYPES_H_118BBB3B50B7DBF22F5460C52E515C83
+#define UTYPES_H_118BBB3B50B7DBF22F5460C52E515C83
+
+#include "config.h"
+#ifndef STDC_HEADERS
+ #error "This library requires standard C and C++ headers to compile."
+#endif
+#ifndef STDUNIX_HEADERS
+ #error "This library compiles only on UNIX systems."
+#endif
+#define __STDC_LIMIT_MACROS // For WCHAR_MIN and WCHAR_MAX in stdint.
+#define __STDC_CONSTANT_MACROS // For UINT??_C macros to avoid using L and UL suffixes on constants.
+#if HAVE_STDINT_H
+ #include <stdint.h>
+#elif HAVE_INTTYPES_H
+ #include <inttypes.h>
+#else
+ #error "Need standard integer types definitions, usually in stdint.h"
+#endif
+#include <stddef.h> // For ptrdiff_t, size_t
+#include <limits.h>
+#include <float.h>
+#if HAVE_SYS_TYPES_H
+ #include <sys/types.h>
+#endif
+#ifndef SIZE_MAX
+ #define SIZE_MAX UINT_MAX
+#endif
+#if sun || __sun // Solaris defines UINTPTR_MAX as empty.
+ #undef UINTPTR_MAX
+ #define UINTPTR_MAX ULONG_MAX
+#endif
+#ifndef WCHAR_MAX
+ #ifdef __WCHAR_MAX__
+ #define WCHAR_MAX __WCHAR_MAX__
+ #else
+ #define WCHAR_MAX CHAR_MAX
+ #endif
+#endif
+#if HAVE_LONG_LONG
+ #ifndef LLONG_MAX
+ #define ULLONG_MAX UINT64_C(0xFFFFFFFFFFFFFFFF)
+ #define LLONG_MAX INT64_C(0x7FFFFFFFFFFFFFFF)
+ #define LLONG_MIN ULLONG_MAX
+ #endif
+#endif
+#ifndef BYTE_ORDER
+ #define LITTLE_ENDIAN USTL_LITTLE_ENDIAN
+ #define BIG_ENDIAN USTL_BIG_ENDIAN
+ #define BYTE_ORDER USTL_BYTE_ORDER
+#endif
+
+typedef size_t uoff_t; ///< A type for storing offsets into blocks measured by size_t.
+typedef uint32_t hashvalue_t; ///< Value type returned by the hash functions.
+typedef size_t streamsize; ///< Size of stream data
+typedef uoff_t streamoff; ///< Offset into a stream
+
+
+#if !defined(UINTPTR_MAX) || !defined(UINT32_C)
+ #error "If you include stdint.h before ustl.h, define __STDC_LIMIT_MACROS and __STDC_CONSTANT_MACROS first"
+#endif
+#endif
diff --git a/ecos/packages/language/cxx/ustl/current/include/ustl/uutility.h b/ecos/packages/language/cxx/ustl/current/include/ustl/uutility.h
new file mode 100644
index 0000000..801fb48
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/include/ustl/uutility.h
@@ -0,0 +1,444 @@
+// This file is part of the uSTL library, an STL implementation.
+//
+// Copyright (c) 2005 by Mike Sharov <msharov@users.sourceforge.net>
+// This file is free software, distributed under the MIT License.
+//
+/// \file uutility.h
+/// \brief Utility templates.
+
+#ifndef UUTILITY_H_6A58BD296269A82A4AAAA4FD19FDB3AC
+#define UUTILITY_H_6A58BD296269A82A4AAAA4FD19FDB3AC
+
+#include "utypes.h"
+#include "traits.h"
+#include "ulimits.h"
+#include <assert.h>
+
+namespace ustl {
+
+#ifdef __GNUC__
+ /// Returns the number of elements in a static vector
+ #define VectorSize(v) (sizeof(v) / sizeof(*v))
+#else
+ // Old compilers will not be able to evaluate *v on an empty vector.
+ // The tradeoff here is that VectorSize will not be able to measure arrays of local structs.
+ #define VectorSize(v) (sizeof(v) / ustl::size_of_elements(1, v))
+#endif
+
+/// Expands into a ptr,size expression for the given static vector; useful as link arguments.
+#define VectorBlock(v) (v)+0, VectorSize(v) // +0 makes it work under gcc 2.95
+/// Expands into a begin,end expression for the given static vector; useful for algorithm arguments.
+#define VectorRange(v) VectorBlock(v)+(v)
+
+/// Indexes into a static array with bounds limit
+#define VectorElement(v,i) v[min(uoff_t(i),uoff_t(VectorSize(v)-1))]
+
+/// Returns the number of bits in the given type
+#define BitsInType(t) (sizeof(t) * CHAR_BIT)
+
+/// Returns the mask of type \p t with the lowest \p n bits set.
+#define BitMask(t,n) (t(~t(0)) >> ((sizeof(t) * CHAR_BIT) - (n)))
+
+/// Argument that is used only in debug builds (as in an assert)
+#ifndef NDEBUG
+ #define DebugArg(x) x
+#else
+ #define DebugArg(x)
+#endif
+
+/// Shorthand for container iteration.
+#define foreach(type,i,ctr) for (type i = (ctr).begin(); i != (ctr).end(); ++ i)
+/// Shorthand for container reverse iteration.
+#define eachfor(type,i,ctr) for (type i = (ctr).rbegin(); i != (ctr).rend(); ++ i)
+
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+// Macro for passing template types as macro arguments.
+// These are deprecated. Use metamac macros instead. Will remove by next release.
+#define TEMPLATE_FULL_DECL1(d1,t1) template <d1 t1>
+#define TEMPLATE_FULL_DECL2(d1,t1,d2,t2) template <d1 t1, d2 t2>
+#define TEMPLATE_FULL_DECL3(d1,t1,d2,t2,d3,t3) template <d1 t1, d2 t2, d3 t3>
+#define TEMPLATE_DECL1(t1) TEMPLATE_FULL_DECL1(typename,t1)
+#define TEMPLATE_DECL2(t1,t2) TEMPLATE_FULL_DECL2(typename,t1,typename,t2)
+#define TEMPLATE_DECL3(t1,t2,t3) TEMPLATE_FULL_DECL3(typename,t1,typename,t2,typename,t3)
+#define TEMPLATE_TYPE1(type,a1) type<a1>
+#define TEMPLATE_TYPE2(type,a1,a2) type<a1,a2>
+#define TEMPLATE_TYPE3(type,a1,a2,a3) type<a1,a2,a3>
+#endif
+
+/// Returns the minimum of \p a and \p b
+template <typename T1, typename T2>
+inline T1 min (const T1& a, const T2& b)
+{
+ return (a < b ? a : b);
+}
+
+/// Returns the maximum of \p a and \p b
+template <typename T1, typename T2>
+inline T1 max (const T1& a, const T2& b)
+{
+ return (b < a ? a : b);
+}
+
+/// The alignment performed by default.
+const size_t c_DefaultAlignment = __alignof__(void*);
+
+/// \brief Rounds \p n up to be divisible by \p grain
+template <typename T>
+inline T Align (T n, size_t grain = c_DefaultAlignment)
+{
+ n += grain - 1;
+ return (n - n % grain);
+}
+
+/// Returns a NULL pointer cast to T.
+template <typename T>
+inline T* NullPointer (void)
+ { return ((T*) NULL); }
+
+/// \brief Returns a non-dereferentiable value reference.
+/// This is useful for passing to stream_align_of or the like which need a value but
+/// don't need to actually use it.
+template <typename T>
+inline T& NullValue (void)
+ { return (*NullPointer<T>()); }
+
+/// Offsets an iterator
+template <typename T>
+inline T advance (T i, ssize_t offset)
+{
+ return (i + offset);
+}
+
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+/// Offsets a void pointer
+template <>
+inline const void* advance (const void* p, ssize_t offset)
+{
+ assert (p || !offset);
+ return (reinterpret_cast<const uint8_t*>(p) + offset);
+}
+
+/// Offsets a void pointer
+template <>
+inline void* advance (void* p, ssize_t offset)
+{
+ assert (p || !offset);
+ return (reinterpret_cast<uint8_t*>(p) + offset);
+}
+#endif
+
+/// Returns the difference \p p1 - \p p2
+template <typename T1, typename T2>
+inline ptrdiff_t distance (T1 i1, T2 i2)
+{
+ return (i2 - i1);
+}
+
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+#define UNVOID_DISTANCE(T1const,T2const) \
+template <> inline ptrdiff_t distance (T1const void* p1, T2const void* p2) \
+{ return ((T2const uint8_t*)(p2) - (T1const uint8_t*)(p1)); }
+UNVOID_DISTANCE(,)
+UNVOID_DISTANCE(const,const)
+UNVOID_DISTANCE(,const)
+UNVOID_DISTANCE(const,)
+#undef UNVOID_DISTANCE
+#endif
+
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+// The compiler issues a warning if an unsigned type is compared to 0.
+template <typename T, bool IsSigned> struct __is_negative { inline bool operator()(const T& v) { return (v < 0); } };
+template <typename T> struct __is_negative<T,false> { inline bool operator()(const T&) { return (false); } };
+/// Warning-free way to check if \p v is negative, even if for unsigned types.
+template <typename T> inline bool is_negative (const T& v) { return (__is_negative<T,numeric_limits<T>::is_signed>()(v)); }
+#endif
+
+/// \brief Returns the absolute value of \p v
+/// Unlike the stdlib functions, this is inline and works with all types.
+template <typename T>
+inline T absv (T v)
+{
+ return (is_negative(v) ? -v : v);
+}
+
+/// \brief Returns -1 for negative values, 1 for positive, and 0 for 0
+template <typename T>
+inline T sign (T v)
+{
+ return ((0 < v) - is_negative(v));
+}
+
+/// Returns the absolute value of the distance i1 and i2
+template <typename T1, typename T2>
+inline size_t abs_distance (T1 i1, T2 i2)
+{
+ return (absv (distance(i1, i2)));
+}
+
+/// Returns the size of \p n elements of size \p T
+template <typename T>
+inline size_t size_of_elements (size_t n, const T*)
+{
+ return (n * sizeof(T));
+}
+
+// Defined in byteswap.h, which is usually unusable.
+#undef bswap_16
+#undef bswap_32
+#undef bswap_64
+
+inline uint16_t bswap_16 (uint16_t v)
+{
+#if CPU_HAS_CMPXCHG8 // If it has that, it has bswap.
+ if (!__builtin_constant_p(v)) asm ("rorw $8, %0":"+r"(v)); else
+#endif
+ v = v << 8 | v >> 8;
+ return (v);
+}
+inline uint32_t bswap_32 (uint32_t v)
+{
+#if CPU_HAS_CMPXCHG8
+ if (!__builtin_constant_p(v)) asm ("bswap %0":"+r"(v)); else
+#endif
+ v = v << 24 | (v & 0xFF00) << 8 | ((v >> 8) & 0xFF00) | v >> 24;
+ return (v);
+}
+#if HAVE_INT64_T
+inline uint64_t bswap_64 (uint64_t v)
+{
+#if x86_64
+ if (!__builtin_constant_p(v)) asm ("bswap %0":"+r"(v)); else
+#endif
+ v = (uint64_t(bswap_32(v)) << 32) | bswap_32(v >> 32);
+ return (v);
+}
+#endif
+
+/// \brief Swaps the byteorder of \p v.
+template <typename T>
+inline T bswap (const T& v)
+{
+ switch (BitsInType(T)) {
+ default: return (v);
+ case 16: return (T (bswap_16 (uint16_t (v))));
+ case 32: return (T (bswap_32 (uint32_t (v))));
+#if HAVE_INT64_T
+ case 64: return (T (bswap_64 (uint64_t (v))));
+#endif
+ }
+}
+
+#if BYTE_ORDER == BIG_ENDIAN
+template <typename T> inline T le_to_native (const T& v) { return (bswap (v)); }
+template <typename T> inline T be_to_native (const T& v) { return (v); }
+template <typename T> inline T native_to_le (const T& v) { return (bswap (v)); }
+template <typename T> inline T native_to_be (const T& v) { return (v); }
+#elif BYTE_ORDER == LITTLE_ENDIAN
+template <typename T> inline T le_to_native (const T& v) { return (v); }
+template <typename T> inline T be_to_native (const T& v) { return (bswap (v)); }
+template <typename T> inline T native_to_le (const T& v) { return (v); }
+template <typename T> inline T native_to_be (const T& v) { return (bswap (v)); }
+#endif // BYTE_ORDER
+
+/// Deletes \p p and sets it to NULL
+template <typename T>
+inline void Delete (T*& p)
+{
+ delete p;
+ p = NULL;
+}
+
+/// Deletes \p p as an array and sets it to NULL
+template <typename T>
+inline void DeleteVector (T*& p)
+{
+ delete [] p;
+ p = NULL;
+}
+
+/// Template of making != from ! and ==
+template <typename T>
+inline bool operator!= (const T& x, const T& y)
+{
+ return (!(x == y));
+}
+
+/// Template of making > from <
+template <typename T>
+inline bool operator> (const T& x, const T& y)
+{
+ return (y < x);
+}
+
+/// Template of making <= from < and ==
+template <typename T>
+inline bool operator<= (const T& x, const T& y)
+{
+ return (!(y < x));
+}
+
+/// Template of making >= from < and ==
+template <typename T>
+inline bool operator>= (const T& x, const T& y)
+{
+ return (!(x < y));
+}
+
+/// Packs \p s multiple times into \p b. Useful for loop unrolling.
+template <typename TSmall, typename TBig>
+inline void pack_type (TSmall s, TBig& b)
+{
+ const size_t n = sizeof(TBig) / sizeof(TSmall);
+ b = s;
+ // Calls to min are here to avoid warnings for shifts bigger than the type. min will be gone when optimized.
+ if (n < 2) return;
+ b = (b << min (BitsInType(TSmall), BitsInType(TBig))) | b;
+ if (n < 4) return;
+ b = (b << min (BitsInType(TSmall) * 2, BitsInType(TBig))) | b;
+ if (n < 8) return;
+ b = (b << min (BitsInType(TSmall) * 4, BitsInType(TBig))) | b;
+}
+
+/// \brief Divides \p n1 by \p n2 and rounds the result up.
+/// This is in contrast to regular division, which rounds down.
+template <typename T1, typename T2>
+inline T1 DivRU (T1 n1, T2 n2)
+{
+ T2 adj = n2 - 1;
+ if (is_negative (n1))
+ adj = -adj;
+ return ((n1 + adj) / n2);
+}
+
+/// Sets the contents of \p pm to 1 and returns true if the previous value was 0.
+inline bool TestAndSet (int* pm)
+{
+#if CPU_HAS_CMPXCHG8
+ bool rv;
+ int oldVal (1);
+ asm volatile ( // cmpxchg compares to %eax and swaps if equal
+ "cmpxchgl %3, %1\n\t"
+ "sete %0"
+ : "=a" (rv), "=m" (*pm), "=r" (oldVal)
+ : "2" (oldVal), "a" (0)
+ : "memory");
+ return (rv);
+#elif __i386__ || __x86_64__
+ int oldVal (1);
+ asm volatile ("xchgl %0, %1" : "=r"(oldVal), "=m"(*pm) : "0"(oldVal), "m"(*pm) : "memory");
+ return (!oldVal);
+#elif __sparc32__ // This has not been tested
+ int rv;
+ asm volatile ("ldstub %1, %0" : "=r"(rv), "=m"(*pm) : "m"(pm));
+ return (!rv);
+#else
+ const int oldVal (*pm);
+ *pm = 1;
+ return (!oldVal);
+#endif
+}
+
+/// Returns the index of the first set bit in \p v or \p nbv if none.
+inline uoff_t FirstBit (uint32_t v, uoff_t nbv)
+{
+ uoff_t n = nbv;
+#if __i386__ || __x86_64__
+ if (!__builtin_constant_p(v)) asm ("bsr\t%1, %k0":"+r,r"(n):"r,m"(v)); else
+#endif
+#if __GNUC__
+ if (v) n = 31 - __builtin_clz(v);
+#else
+ if (v) for (uint32_t m = uint32_t(1)<<(n=31); !(v & m); m >>= 1) --n;
+#endif
+ return (n);
+}
+/// Returns the index of the first set bit in \p v or \p nbv if none.
+inline uoff_t FirstBit (uint64_t v, uoff_t nbv)
+{
+ uoff_t n = nbv;
+#if __x86_64__
+ if (!__builtin_constant_p(v)) asm ("bsr\t%1, %0":"+r,r"(n):"r,m"(v)); else
+#endif
+#if __GNUC__
+ if (v) n = 63 - __builtin_clzl(v);
+#else
+ if (v) for (uint64_t m = uint64_t(1)<<(n=63); !(v & m); m >>= 1) --n;
+#endif
+ return (n);
+}
+
+/// Returns the next power of 2 >= \p v.
+/// Values larger than UINT32_MAX/2 will return 2^0
+inline uint32_t NextPow2 (uint32_t v)
+{
+ uint32_t r = v-1;
+#if __i386__ || __x86_64__
+ if (!__builtin_constant_p(r)) asm("bsr\t%0, %0":"+r"(r)); else
+#endif
+ { r = FirstBit(r,r); if (r >= BitsInType(r)-1) r = uint32_t(-1); }
+ return (1<<(1+r));
+}
+
+/// Bitwise rotate value left
+template <typename T>
+inline T Rol (T v, size_t n)
+{
+#if __i386__ || __x86_64__
+ if (!(__builtin_constant_p(v) && __builtin_constant_p(n))) asm("rol\t%b1, %0":"+r,r"(v):"i,c"(n)); else
+#endif
+ v = (v << n) | (v >> (BitsInType(T)-n));
+ return (v);
+}
+
+/// Bitwise rotate value right
+template <typename T>
+inline T Ror (T v, size_t n)
+{
+#if __i386__ || __x86_64__
+ if (!(__builtin_constant_p(v) && __builtin_constant_p(n))) asm("ror\t%b1, %0":"+r,r"(v):"i,c"(n)); else
+#endif
+ v = (v >> n) | (v << (BitsInType(T)-n));
+ return (v);
+}
+
+/// \brief This template is to be used for dereferencing a type-punned pointer without a warning.
+///
+/// When casting a local variable to an unrelated type through a pointer (for
+/// example, casting a float to a uint32_t without conversion), the resulting
+/// memory location can be accessed through either pointer, which violates the
+/// strict aliasing rule. While -fno-strict-aliasing option can be given to
+/// the compiler, eliminating this warning, inefficient code may result in
+/// some instances, because aliasing inhibits some optimizations. By using
+/// this template, and by ensuring the memory is accessed in one way only,
+/// efficient code can be produced without the warning. For gcc 4.1.0+.
+///
+template <typename DEST, typename SRC>
+inline DEST noalias (const DEST&, SRC* s)
+{
+ asm("":"+g"(s)::"memory");
+ union UPun { SRC s; DEST d; };
+ return (((UPun*)(s))->d);
+}
+
+template <typename DEST, typename SRC>
+inline DEST noalias_cast (SRC s)
+{
+ asm("":"+g"(s)::"memory");
+ union { SRC s; DEST d; } u = {s};
+ return (u.d);
+}
+
+namespace simd {
+ /// Call after you are done using SIMD algorithms for 64 bit tuples.
+ #define ALL_MMX_REGS_CHANGELIST "mm0","mm1","mm2","mm3","mm4","mm5","mm6","mm7","st","st(1)","st(2)","st(3)","st(4)","st(5)","st(6)","st(7)"
+#if CPU_HAS_3DNOW
+ inline void reset_mmx (void) { asm ("femms":::ALL_MMX_REGS_CHANGELIST); }
+#elif CPU_HAS_MMX
+ inline void reset_mmx (void) { asm ("emms":::ALL_MMX_REGS_CHANGELIST); }
+#else
+ inline void reset_mmx (void) {}
+#endif
+} // namespace simd
+} // namespace ustl
+
+#endif
diff --git a/ecos/packages/language/cxx/ustl/current/include/ustl/uvector.h b/ecos/packages/language/cxx/ustl/current/include/ustl/uvector.h
new file mode 100644
index 0000000..c961927
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/include/ustl/uvector.h
@@ -0,0 +1,273 @@
+// This file is part of the uSTL library, an STL implementation.
+//
+// Copyright (c) 2005 by Mike Sharov <msharov@users.sourceforge.net>
+// This file is free software, distributed under the MIT License.
+
+#ifndef UVECTOR_H_00BB13AF082BEB7829C031B265518169
+#define UVECTOR_H_00BB13AF082BEB7829C031B265518169
+
+#include "memblock.h"
+#include "umemory.h"
+#include "upredalgo.h"
+
+namespace ustl {
+
+/// \class vector uvector.h ustl.h
+/// \ingroup Sequences
+///
+/// \brief STL vector equivalent.
+///
+/// Provides a typed array-like interface to a managed memory block, including
+/// element access, iteration, modification, resizing, and serialization. In
+/// this design elements frequently undergo bitwise move, so don't put it in
+/// here if it doesn't support it. This mostly means having no self-pointers.
+///
+template <typename T>
+class vector {
+public:
+ typedef T value_type;
+ typedef value_type* pointer;
+ typedef const value_type* const_pointer;
+ typedef value_type& reference;
+ typedef const value_type& const_reference;
+ typedef pointer iterator;
+ typedef const_pointer const_iterator;
+ typedef memblock::size_type size_type;
+ typedef memblock::written_size_type written_size_type;
+ typedef memblock::difference_type difference_type;
+ typedef ::ustl::reverse_iterator<iterator> reverse_iterator;
+ typedef ::ustl::reverse_iterator<const_iterator> const_reverse_iterator;
+public:
+ inline vector (void);
+ inline explicit vector (size_type n);
+ vector (size_type n, const T& v);
+ vector (const vector<T>& v);
+ vector (const_iterator i1, const_iterator i2);
+ inline ~vector (void) throw();
+ inline const vector<T>& operator= (const vector<T>& v);
+ inline bool operator== (const vector<T>& v) const { return (m_Data == v.m_Data); }
+ inline operator cmemlink (void) const { return (cmemlink (m_Data)); }
+ inline operator cmemlink (void) { return (cmemlink (m_Data)); }
+ inline operator memlink (void) { return (memlink (m_Data)); }
+ inline void reserve (size_type n, bool bExact = true);
+ inline void resize (size_type n, bool bExact = true);
+ inline size_type capacity (void) const { return (m_Data.capacity() / sizeof(T)); }
+ inline size_type size (void) const { return (m_Data.size() / sizeof(T)); }
+ inline size_type max_size (void) const { return (m_Data.max_size() / sizeof(T)); }
+ inline bool empty (void) const { return (m_Data.empty()); }
+ inline iterator begin (void) { return (iterator (m_Data.begin())); }
+ inline const_iterator begin (void) const { return (const_iterator (m_Data.begin())); }
+ inline iterator end (void) { return (iterator (m_Data.end())); }
+ inline const_iterator end (void) const { return (const_iterator (m_Data.end())); }
+ inline reverse_iterator rbegin (void) { return (reverse_iterator (end())); }
+ inline const_reverse_iterator rbegin (void) const { return (const_reverse_iterator (end())); }
+ inline reverse_iterator rend (void) { return (reverse_iterator (begin())); }
+ inline const_reverse_iterator rend (void) const { return (const_reverse_iterator (begin())); }
+ inline iterator iat (size_type i) { assert (i <= size()); return (begin() + i); }
+ inline const_iterator iat (size_type i) const { assert (i <= size()); return (begin() + i); }
+ inline reference at (size_type i) { assert (i < size()); return (begin()[i]); }
+ inline const_reference at (size_type i) const { assert (i < size()); return (begin()[i]); }
+ inline reference operator[] (size_type i) { return (at (i)); }
+ inline const_reference operator[] (size_type i) const { return (at (i)); }
+ inline reference front (void) { return (at(0)); }
+ inline const_reference front (void) const { return (at(0)); }
+ inline reference back (void) { assert (!empty()); return (end()[-1]); }
+ inline const_reference back (void) const { assert (!empty()); return (end()[-1]); }
+ inline void push_back (const T& v = T());
+ inline void pop_back (void) { m_Data.memlink::resize (m_Data.size() - sizeof(T)); }
+ inline void clear (void) { m_Data.clear(); }
+ inline void deallocate (void) throw();
+ inline void assign (const_iterator i1, const_iterator i2);
+ inline void assign (size_type n, const T& v);
+ inline void swap (vector<T>& v) { m_Data.swap (v.m_Data); }
+ inline iterator insert (iterator ip, const T& v = T());
+ inline iterator insert (iterator ip, size_type n, const T& v);
+ inline iterator insert (iterator ip, const_iterator i1, const_iterator i2);
+ inline iterator erase (iterator ep, size_type n = 1);
+ inline iterator erase (iterator ep1, iterator ep2);
+ inline void manage (pointer p, size_type n) { m_Data.manage (p, n * sizeof(T)); }
+ inline bool is_linked (void) const { return (m_Data.is_linked()); }
+ inline void unlink (void) { m_Data.unlink(); }
+ inline void copy_link (void) { m_Data.copy_link(); }
+ inline void link (const_pointer p, size_type n) { m_Data.link (p, n * sizeof(T)); }
+ inline void link (pointer p, size_type n) { m_Data.link (p, n * sizeof(T)); }
+ inline void link (const vector<T>& v) { m_Data.link (v); }
+ inline void link (vector<T>& v) { m_Data.link (v); }
+ inline void link (const_pointer first, const_pointer last) { m_Data.link (first, last); }
+ inline void link (pointer first, pointer last) { m_Data.link (first, last); }
+ inline void read (istream& is) { container_read (is, *this); }
+ inline void write (ostream& os) const { container_write (os, *this); }
+ inline void text_write (ostringstream& os) const { container_text_write (os, *this); }
+ inline size_t stream_size (void) const { return (container_stream_size (*this)); }
+protected:
+ inline iterator insert_space (iterator ip, size_type n);
+private:
+ memblock m_Data; ///< Raw element data, consecutively stored.
+};
+
+/// Allocates space for at least \p n elements.
+template <typename T>
+inline void vector<T>::reserve (size_type n, bool bExact)
+{
+ const size_type oldCapacity = m_Data.capacity() - m_Data.capacity() % sizeof(T);
+ m_Data.reserve (n * sizeof(T), bExact);
+ construct (iterator (m_Data.begin() + oldCapacity), iterator (m_Data.begin() + m_Data.capacity()));
+}
+
+/// Resizes the vector to contain \p n elements.
+template <typename T>
+inline void vector<T>::resize (size_type n, bool bExact)
+{
+ const size_type nb = n * sizeof(T);
+ if (m_Data.capacity() < nb)
+ reserve (n, bExact);
+ m_Data.memlink::resize (nb);
+}
+
+/// Calls element destructors and frees storage.
+template <typename T>
+inline void vector<T>::deallocate (void) throw()
+{
+ destroy (begin(), iterator (m_Data.begin() + m_Data.capacity()));
+ m_Data.deallocate();
+}
+
+/// Initializes empty vector.
+template <typename T>
+inline vector<T>::vector (void)
+: m_Data ()
+{
+}
+
+/// Initializes a vector of size \p n.
+template <typename T>
+inline vector<T>::vector (size_type n)
+: m_Data ()
+{
+ resize (n);
+}
+
+/// Copies \p n elements from \p v.
+template <typename T>
+vector<T>::vector (size_type n, const T& v)
+: m_Data ()
+{
+ resize (n);
+ ::ustl::fill (begin(), end(), v);
+}
+
+/// Copies \p v.
+template <typename T>
+vector<T>::vector (const vector<T>& v)
+: m_Data ()
+{
+ resize (v.size());
+ ::ustl::copy (v.begin(), v.end(), begin());
+}
+
+/// Copies range [\p i1, \p i2]
+template <typename T>
+vector<T>::vector (const_iterator i1, const_iterator i2)
+: m_Data ()
+{
+ resize (distance (i1, i2));
+ ::ustl::copy (i1, i2, begin());
+}
+
+/// Destructor
+template <typename T>
+inline vector<T>::~vector (void) throw()
+{
+ destroy (begin(), iterator (m_Data.begin() + m_Data.capacity()));
+}
+
+/// Copies the range [\p i1, \p i2]
+template <typename T>
+inline void vector<T>::assign (const_iterator i1, const_iterator i2)
+{
+ assert (i1 <= i2);
+ resize (distance (i1, i2));
+ ::ustl::copy (i1, i2, begin());
+}
+
+/// Copies \p n elements with value \p v.
+template <typename T>
+inline void vector<T>::assign (size_type n, const T& v)
+{
+ resize (n);
+ ::ustl::fill (begin(), end(), v);
+}
+
+/// Copies contents of \p v.
+template <typename T>
+inline const vector<T>& vector<T>::operator= (const vector<T>& v)
+{
+ assign (v.begin(), v.end());
+ return (*this);
+}
+
+/// Inserts \p n uninitialized elements at \p ip.
+template <typename T>
+inline typename vector<T>::iterator vector<T>::insert_space (iterator ip, size_type n)
+{
+ const uoff_t ipmi = distance (m_Data.begin(), memblock::iterator(ip));
+ reserve (size() + n, false);
+ return (iterator (m_Data.insert (m_Data.iat(ipmi), n * sizeof(T))));
+}
+
+/// Inserts \p n elements with value \p v at offsets \p ip.
+template <typename T>
+inline typename vector<T>::iterator vector<T>::insert (iterator ip, size_type n, const T& v)
+{
+ ip = insert_space (ip, n);
+ ::ustl::fill (ip, ip + n, v);
+ return (ip);
+}
+
+/// Inserts value \p v at offset \p ip.
+template <typename T>
+inline typename vector<T>::iterator vector<T>::insert (iterator ip, const T& v)
+{
+ *(ip = insert_space (ip, 1)) = v;
+ return (ip);
+}
+
+/// Inserts range [\p i1, \p i2] at offset \p ip.
+template <typename T>
+inline typename vector<T>::iterator vector<T>::insert (iterator ip, const_iterator i1, const_iterator i2)
+{
+ assert (i1 <= i2);
+ ip = insert_space (ip, distance (i1, i2));
+ ::ustl::copy (i1, i2, ip);
+ return (ip);
+}
+
+/// Removes \p count elements at offset \p ep.
+template <typename T>
+inline typename vector<T>::iterator vector<T>::erase (iterator ep, size_type n)
+{
+ return (iterator (m_Data.erase (memblock::iterator(ep), n * sizeof(T))));
+}
+
+/// Removes elements from \p ep1 to \p ep2.
+template <typename T>
+inline typename vector<T>::iterator vector<T>::erase (iterator ep1, iterator ep2)
+{
+ assert (ep1 <= ep2);
+ return (erase (ep1, distance(ep1, ep2)));
+}
+
+/// Inserts value \p v at the end of the vector.
+template <typename T>
+inline void vector<T>::push_back (const T& v)
+{
+ resize (size() + 1, false);
+ back() = v;
+}
+
+/// Use with vector classes to allocate and link to stack space. \p n is in elements.
+#define typed_alloca_link(m,T,n) (m).link ((T*) alloca ((n) * sizeof(T)), (n))
+
+} // namespace ustl
+
+#endif
diff --git a/ecos/packages/language/cxx/ustl/current/src/bktrace.cpp b/ecos/packages/language/cxx/ustl/current/src/bktrace.cpp
new file mode 100644
index 0000000..2336f9b
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/src/bktrace.cpp
@@ -0,0 +1,141 @@
+// This file is part of the uSTL library, an STL implementation.
+//
+// Copyright (c) 2006 by Mike Sharov <msharov@users.sourceforge.net>
+// This file is free software, distributed under the MIT License.
+
+#include "bktrace.h"
+#include "sostream.h"
+#include "mistream.h"
+#if 0 // linux && __GNUC__
+ #include <execinfo.h>
+#else
+ static inline int backtrace (void**, int) { return (0); }
+ static inline char** backtrace_symbols (void* const*, int) { return (NULL); }
+#endif
+
+namespace ustl {
+
+/// Default constructor. The backtrace is obtained here.
+CBacktrace::CBacktrace (void) throw()
+: m_Symbols (NULL),
+ m_nFrames (0),
+ m_SymbolsSize (0)
+{
+ m_nFrames = backtrace (VectorBlock (m_Addresses));
+ GetSymbols();
+}
+
+/// Copy constructor.
+CBacktrace::CBacktrace (const CBacktrace& v) throw()
+: m_Symbols (NULL),
+ m_nFrames (0),
+ m_SymbolsSize (0)
+{
+ operator= (v);
+}
+
+/// Copy operator.
+const CBacktrace& CBacktrace::operator= (const CBacktrace& v) throw()
+{
+ memcpy (m_Addresses, v.m_Addresses, sizeof(m_Addresses));
+ m_Symbols = strdup (v.m_Symbols);
+ m_nFrames = v.m_nFrames;
+ m_SymbolsSize = v.m_SymbolsSize;
+ return (*this);
+}
+
+/// Converts a string returned by backtrace_symbols into readable form.
+static size_t ExtractAbiName (const char* isym, char* nmbuf) throw()
+{
+ // Prepare the demangled name, if possible
+ size_t nmSize = 0;
+ if (isym) {
+ // Copy out the name; the strings are: "file(function+0x42) [0xAddress]"
+ const char* mnStart = strchr (isym, '(');
+ if (++mnStart == (const char*)(1))
+ mnStart = isym;
+ const char* mnEnd = strchr (isym, '+');
+ const char* isymEnd = isym + strlen (isym);
+ if (!mnEnd)
+ mnEnd = isymEnd;
+ nmSize = min (size_t (distance (mnStart, mnEnd)), 255U);
+ memcpy (nmbuf, mnStart, nmSize);
+ }
+ nmbuf[nmSize] = 0;
+ // Demangle
+ demangle_type_name (nmbuf, 255U, &nmSize);
+ return (nmSize);
+}
+
+/// Tries to get symbol information for the addresses.
+void CBacktrace::GetSymbols (void) throw()
+{
+ char** symbols = backtrace_symbols (m_Addresses, m_nFrames);
+ if (!symbols)
+ return;
+ char nmbuf [256];
+ size_t symSize = 1;
+ for (uoff_t i = 0; i < m_nFrames; ++ i)
+ symSize += ExtractAbiName (symbols[i], nmbuf) + 1;
+ if ((m_Symbols = (char*) calloc (symSize, 1))) {
+ for (uoff_t i = 0; m_SymbolsSize < symSize - 1; ++ i) {
+ size_t sz = ExtractAbiName (symbols[i], nmbuf);
+ memcpy (m_Symbols + m_SymbolsSize, nmbuf, sz);
+ m_SymbolsSize += sz + 1;
+ m_Symbols [m_SymbolsSize - 1] = '\n';
+ }
+ }
+ free (symbols);
+}
+
+#if SIZE_OF_LONG == 8
+ #define ADDRESS_FMT "%16p "
+#else
+ #define ADDRESS_FMT "%8p "
+#endif
+
+/// Prints the backtrace to \p os.
+void CBacktrace::text_write (ostringstream& os) const
+{
+ const char *ss = m_Symbols, *se;
+ for (uoff_t i = 0; i < m_nFrames; ++ i) {
+ os.format (ADDRESS_FMT, m_Addresses[i]);
+ se = strchr (ss, '\n') + 1;
+ os.write (ss, distance (ss, se));
+ ss = se;
+ }
+}
+
+/// Reads the object from stream \p is.
+void CBacktrace::read (istream& is)
+{
+ assert (is.aligned (stream_align_of (m_Addresses[0])) && "Backtrace object contains pointers and must be void* aligned");
+ is >> m_nFrames >> m_SymbolsSize;
+ nfree (m_Symbols);
+ m_Symbols = (char*) malloc (m_SymbolsSize + 1);
+ is.read (m_Symbols, m_SymbolsSize);
+ m_Symbols [m_SymbolsSize] = 0;
+ is.align();
+ is.read (m_Addresses, m_nFrames * sizeof(void*));
+}
+
+/// Writes the object to stream \p os.
+void CBacktrace::write (ostream& os) const
+{
+ assert (os.aligned (stream_align_of (m_Addresses[0])) && "Backtrace object contains pointers and must be void* aligned");
+ os << m_nFrames << m_SymbolsSize;
+ os.write (m_Symbols, m_SymbolsSize);
+ os.align();
+ os.write (m_Addresses, m_nFrames * sizeof(void*));
+}
+
+/// Returns the size of the written object.
+size_t CBacktrace::stream_size (void) const
+{
+ return (Align (stream_size_of (m_nFrames) +
+ stream_size_of (m_SymbolsSize) +
+ m_nFrames * sizeof(void*) +
+ m_SymbolsSize));
+}
+
+} // namespace ustl
diff --git a/ecos/packages/language/cxx/ustl/current/src/cmemlink.cpp b/ecos/packages/language/cxx/ustl/current/src/cmemlink.cpp
new file mode 100644
index 0000000..10b63ba
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/src/cmemlink.cpp
@@ -0,0 +1,78 @@
+// This file is part of the uSTL library, an STL implementation.
+//
+// Copyright (c) 2005 by Mike Sharov <msharov@users.sourceforge.net>
+// This file is free software, distributed under the MIT License.
+
+#include "cmemlink.h"
+#ifdef CYGCLS_USTL_FSTREAMS
+#include "ofstream.h"
+#else
+#include "sostream.h"
+#endif
+#include "strmsize.h"
+#include "ualgo.h"
+#include "config.h"
+
+namespace ustl {
+
+/// \brief Attaches the object to pointer \p p of size \p n.
+///
+/// If \p p is NULL and \p n is non-zero, bad_alloc is thrown and current
+/// state remains unchanged.
+///
+void cmemlink::link (const void* p, size_type n)
+{
+ if (!p && n)
+ USTL_THROW(bad_alloc (n));
+ unlink();
+ relink (p, n);
+}
+
+void cmemlink::unlink (void) throw()
+{
+ m_Data = NULL; m_Size = 0;
+}
+
+/// Writes the object to stream \p os
+void cmemlink::write (ostream& os) const
+{
+ const written_size_type sz (size());
+ assert (sz == size() && "No support for writing memblocks larger than 4G");
+ os << sz;
+ os.write (cdata(), sz);
+ os.align (stream_align_of (sz));
+}
+
+/// Writes the object to stream \p os
+void cmemlink::text_write (ostringstream& os) const
+{
+ os.write (begin(), readable_size());
+}
+
+/// Returns the number of bytes required to write this object to a stream.
+cmemlink::size_type cmemlink::stream_size (void) const
+{
+ const written_size_type sz (size());
+ return (Align (stream_size_of (sz) + sz, stream_align_of(sz)));
+}
+
+#ifdef CYGCLS_USTL_FSTREAMS
+/// Writes the data to file \p "filename".
+void cmemlink::write_file (const char* filename, int mode) const
+{
+ fstream f;
+ f.exceptions (fstream::allbadbits);
+ f.open (filename, fstream::out | fstream::trunc, mode);
+ f.write (cdata(), readable_size());
+ f.close();
+}
+#endif
+
+/// Compares to memory block pointed by l. Size is compared first.
+bool cmemlink::operator== (const cmemlink& l) const
+{
+ return (l.m_Size == m_Size &&
+ (l.m_Data == m_Data || 0 == memcmp (l.m_Data, m_Data, m_Size)));
+}
+
+} // namespace ustl
diff --git a/ecos/packages/language/cxx/ustl/current/src/fstream.cpp b/ecos/packages/language/cxx/ustl/current/src/fstream.cpp
new file mode 100644
index 0000000..3870d4b
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/src/fstream.cpp
@@ -0,0 +1,268 @@
+// This file is part of the uSTL library, an STL implementation.
+//
+// Copyright (c) 2005 by Mike Sharov <msharov@users.sourceforge.net>
+// This file is free software, distributed under the MIT License.
+
+#include "fstream.h"
+#include "uexception.h"
+#include "uutility.h"
+#include <fcntl.h>
+#include <unistd.h>
+#include <errno.h>
+#include <sys/stat.h>
+#if 0 // both header files does not exist in eCos
+#include <sys/mman.h>
+#include <sys/ioctl.h>
+#endif
+#include "config.h"
+
+namespace ustl {
+
+/// Default constructor.
+fstream::fstream (void)
+: ios_base (),
+ m_fd (-1),
+ m_Filename ()
+{
+ exceptions (goodbit);
+}
+
+/// Opens \p filename in \p mode.
+fstream::fstream (const char* filename, openmode mode)
+: ios_base (),
+ m_fd (-1),
+ m_Filename ()
+{
+ exceptions (goodbit);
+ open (filename, mode);
+}
+
+/// Attaches to \p nfd of \p filename.
+fstream::fstream (int nfd, const char* filename)
+: ios_base (),
+ m_fd (-1),
+ m_Filename ()
+{
+ exceptions (goodbit);
+ attach (nfd, filename);
+}
+
+/// Destructor. Closes if still open, but without throwing.
+fstream::~fstream (void) throw()
+{
+ clear (goodbit);
+ exceptions (goodbit);
+ close();
+ assert (!(rdstate() & badbit) && "close failed in the destructor! This may lead to loss of user data. Please call close() manually and either enable exceptions or check the badbit.");
+}
+
+/// Sets state \p s and throws depending on the exception setting.
+void fstream::set_and_throw (iostate s, const char* op)
+{
+ if (ios_base::set_and_throw (s))
+ USTL_THROW(file_exception (op, name()));
+}
+
+/// Attaches to the given \p nfd.
+void fstream::attach (int nfd, const char* filename)
+{
+ assert (filename && "Don't do that");
+ m_Filename = filename;
+ clear (goodbit);
+ if (nfd < 0)
+ set_and_throw (badbit, "open");
+ close();
+ m_fd = nfd;
+}
+
+/// Detaches from the current fd.
+void fstream::detach (void)
+{
+ m_fd = -1;
+ m_Filename.clear();
+}
+
+/// Converts openmode bits into libc open flags.
+/*static*/ int fstream::om_to_flags (openmode m)
+{
+ static const int s_OMFlags [nombits] = {
+ 0, // in
+ O_CREAT, // out
+ O_APPEND, // app
+ O_APPEND, // ate
+ 0, // binary
+ O_TRUNC, // trunc
+ O_NONBLOCK, // nonblock
+ 0, // nocreate
+ O_NOCTTY // noctty
+ };
+ int flags;
+ if (O_RDONLY == in-1 && O_WRONLY == out-1 && O_RDWR == (in|out)-1)
+ flags = (m - 1) & O_ACCMODE;
+ else
+ flags = ((m&(in|out))==(in|out)) ? O_RDWR : ((m&out) ? O_WRONLY : O_RDONLY);
+ for (uoff_t i = 0; i < VectorSize(s_OMFlags); ++ i)
+ flags |= s_OMFlags[i] & (!(m & (1 << i)) - 1);
+ if (m & nocreate)
+ flags &= ~O_CREAT;
+ return (flags);
+}
+
+/// \brief Opens \p filename in the given mode.
+/// \warning The string at \p filename must exist until the object is closed.
+void fstream::open (const char* filename, openmode mode, mode_t perms)
+{
+ int nfd = ::open (filename, om_to_flags(mode), perms);
+ attach (nfd, filename);
+}
+
+/// Closes the file and throws on error.
+void fstream::close (void)
+{
+ if (m_fd < 0)
+ return; // already closed
+ while (::close(m_fd)) {
+ if (errno != EINTR) {
+ set_and_throw (badbit | failbit, "close");
+ break;
+ }
+ }
+ detach();
+}
+
+/// Moves the current file position to \p n.
+off_t fstream::seek (off_t n, seekdir whence)
+{
+ off_t p = lseek (m_fd, n, whence);
+ if (p < 0)
+ set_and_throw (failbit, "seek");
+ return (p);
+}
+
+/// Returns the current file position.
+off_t fstream::pos (void) const
+{
+ return (lseek (m_fd, 0, SEEK_CUR));
+}
+
+/// Reads \p n bytes into \p p.
+off_t fstream::read (void* p, off_t n)
+{
+ off_t br (0);
+ while ((br < n) & good())
+ br += readsome (advance (p, br), n - br);
+ return (br);
+}
+
+/// Reads at most \p n bytes into \p p, stopping when it feels like it.
+off_t fstream::readsome (void* p, off_t n)
+{
+ ssize_t brn;
+ do { brn = ::read (m_fd, p, n); } while ((brn < 0) & (errno == EINTR));
+ if (brn > 0)
+ return (brn);
+ else if ((brn < 0) & (errno != EAGAIN))
+ set_and_throw (failbit, "read");
+ else if (!brn && ios_base::set_and_throw (eofbit | failbit))
+ USTL_THROW(stream_bounds_exception ("read", name(), pos(), n, 0));
+ return (0);
+}
+
+/// Writes \p n bytes from \p p.
+off_t fstream::write (const void* p, off_t n)
+{
+ off_t btw (n);
+ while (btw) {
+ const off_t bw (n - btw);
+ ssize_t bwn = ::write (m_fd, advance(p,bw), btw);
+ if (bwn > 0)
+ btw -= bwn;
+ else if (!bwn) {
+ if (ios_base::set_and_throw (eofbit | failbit))
+ USTL_THROW(stream_bounds_exception ("write", name(), pos() - bw, n, bw));
+ break;
+ } else if (errno != EINTR) {
+ if (errno != EAGAIN)
+ set_and_throw (failbit, "write");
+ break;
+ }
+ }
+ return (n - btw);
+}
+
+/// Returns the file size.
+off_t fstream::size (void) const
+{
+ struct stat st;
+ st.st_size = 0;
+ stat (st);
+ return (st.st_size);
+}
+
+/// Synchronizes the file's data and status with the disk.
+void fstream::sync (void)
+{
+ if (fsync (m_fd))
+ set_and_throw (badbit | failbit, "sync");
+}
+
+/// Get the stat structure.
+void fstream::stat (struct stat& rs) const
+{
+ if (fstat (m_fd, &rs))
+ USTL_THROW(file_exception ("stat", name()));
+}
+
+/// Calls the given ioctl. Use IOCTLID macro to pass in both \p name and \p request.
+int fstream::ioctl (const char* rname, int request, long argument)
+{
+ int rv = ::ioctl (m_fd, request, argument);
+ if (rv < 0)
+ set_and_throw (failbit, rname);
+ return (rv);
+}
+
+/// Calls the given fcntl. Use FCNTLID macro to pass in both \p name and \p request.
+int fstream::fcntl (const char* rname, int request, long argument)
+{
+ int rv = ::fcntl (m_fd, request, argument);
+ if (rv < 0)
+ set_and_throw (failbit, rname);
+ return (rv);
+}
+
+#if 0 // memory mapped files are not supported in eCos
+/// Memory-maps the file and returns a link to it.
+memlink fstream::mmap (off_t n, off_t offset)
+{
+ void* result = ::mmap (NULL, n, PROT_READ | PROT_WRITE, MAP_SHARED, m_fd, offset);
+ if (result == MAP_FAILED)
+ set_and_throw (failbit, "mmap");
+ return (memlink (result, n));
+}
+
+/// Unmaps a memory-mapped area.
+void fstream::munmap (memlink& l)
+{
+ if (::munmap (l.data(), l.size()))
+ set_and_throw (failbit, "munmap");
+ l.unlink();
+}
+
+/// Synchronizes a memory-mapped area.
+void fstream::msync (memlink& l)
+{
+ if (::msync (l.data(), l.size(), MS_ASYNC | MS_INVALIDATE))
+ set_and_throw (failbit, "msync");
+}
+#endif // #if 0
+
+void fstream::set_nonblock (bool v)
+{
+ int curf = max (0, fcntl (FCNTLID (F_GETFL)));
+ if (v) curf |= O_NONBLOCK;
+ else curf &= ~O_NONBLOCK;
+ fcntl (FCNTLID (F_SETFL), curf);
+}
+
+} // namespace ustl
diff --git a/ecos/packages/language/cxx/ustl/current/src/memblock.cpp b/ecos/packages/language/cxx/ustl/current/src/memblock.cpp
new file mode 100644
index 0000000..4783e03
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/src/memblock.cpp
@@ -0,0 +1,155 @@
+// This file is part of the uSTL library, an STL implementation.
+//
+// Copyright (c) 2005 by Mike Sharov <msharov@users.sourceforge.net>
+// This file is free software, distributed under the MIT License.
+
+#include "mistream.h"
+#include "memblock.h"
+#include "ualgo.h"
+#include "umemory.h"
+#ifdef CYGCLS_USTL_FSTREAMS
+#include "fstream.h"
+#endif
+#include <errno.h>
+#include "config.h"
+
+namespace ustl {
+
+memblock::memblock (void) : memlink (), m_Capacity (0) { }
+memblock::memblock (const void* p, size_type n) : memlink (), m_Capacity (0) { assign (p, n); }
+memblock::memblock (size_type n) : memlink (), m_Capacity (0) { resize (n); }
+memblock::memblock (const cmemlink& b) : memlink (), m_Capacity (0) { assign (b); }
+memblock::memblock (const memlink& b) : memlink (), m_Capacity (0) { assign (b); }
+memblock::memblock (const memblock& b) : memlink (), m_Capacity (0) { assign (b); }
+memblock::~memblock (void) throw() { deallocate(); }
+
+void memblock::unlink (void) throw()
+{
+ m_Capacity = 0;
+ memlink::unlink();
+}
+
+/// resizes the block to \p newSize bytes, reallocating if necessary.
+void memblock::resize (size_type newSize, bool bExact)
+{
+ if (m_Capacity < newSize + minimumFreeCapacity())
+ reserve (newSize, bExact);
+ memlink::resize (newSize);
+}
+
+/// Frees internal data.
+void memblock::deallocate (void) throw()
+{
+ if (m_Capacity) {
+ assert (cdata() && "Internal error: space allocated, but the pointer is NULL");
+ assert (data() && "Internal error: read-only block is marked as allocated space");
+ free (data());
+ }
+ unlink();
+}
+
+/// Assumes control of the memory block \p p of size \p n.
+/// The block assigned using this function will be freed in the destructor.
+void memblock::manage (void* p, size_type n)
+{
+ assert (p || !n);
+ assert (!m_Capacity && "Already managing something. deallocate or unlink first.");
+ link (p, n);
+ m_Capacity = n;
+}
+
+/// "Instantiate" a linked block by allocating and copying the linked data.
+void memblock::copy_link (void)
+{
+ const pointer p (begin());
+ const size_t sz (size());
+ if (is_linked())
+ unlink();
+ assign (p, sz);
+}
+
+/// Copies data from \p p, \p n.
+void memblock::assign (const void* p, size_type n)
+{
+ assert ((p != (const void*) cdata() || size() == n) && "Self-assignment can not resize");
+ resize (n);
+ copy_n (pointer(p), n, begin());
+}
+
+/// \brief Reallocates internal block to hold at least \p newSize bytes.
+///
+/// Additional memory may be allocated, but for efficiency it is a very
+/// good idea to call reserve before doing byte-by-byte edit operations.
+/// The block size as returned by size() is not altered. reserve will not
+/// reduce allocated memory. If you think you are wasting space, call
+/// deallocate and start over. To avoid wasting space, use the block for
+/// only one purpose, and try to get that purpose to use similar amounts
+/// of memory on each iteration.
+///
+void memblock::reserve (size_type newSize, bool bExact)
+{
+ if ((newSize += minimumFreeCapacity()) <= m_Capacity)
+ return;
+ pointer oldBlock (is_linked() ? NULL : data());
+ const size_t alignedSize (Align (newSize, 64));
+ if (!bExact)
+ newSize = alignedSize;
+ pointer newBlock = (pointer) realloc (oldBlock, newSize);
+ if (!newBlock)
+ USTL_THROW(bad_alloc (newSize));
+ if (!oldBlock & (cdata() != NULL))
+ copy_n (cdata(), min (size() + 1, newSize), newBlock);
+ link (newBlock, size());
+ m_Capacity = newSize;
+}
+
+/// Shifts the data in the linked block from \p start to \p start + \p n.
+memblock::iterator memblock::insert (iterator start, size_type n)
+{
+ const uoff_t ip = start - begin();
+ assert (ip <= size());
+ resize (size() + n, false);
+ memlink::insert (iat(ip), n);
+ return (iat (ip));
+}
+
+/// Shifts the data in the linked block from \p start + \p n to \p start.
+memblock::iterator memblock::erase (iterator start, size_type n)
+{
+ const uoff_t ep = start - begin();
+ assert (ep + n <= size());
+ memlink::erase (start, n);
+ memlink::resize (size() - n);
+ return (iat (ep));
+}
+
+/// Reads the object from stream \p s
+void memblock::read (istream& is)
+{
+ written_size_type n = 0;
+ is >> n;
+ if (!is.verify_remaining ("read", "ustl::memblock", n))
+ return;
+ resize (n);
+ is.read (data(), writable_size());
+ is.align (stream_align_of (n));
+}
+
+#ifdef CYGCLS_USTL_FSTREAMS
+/// Reads the entire file \p "filename".
+void memblock::read_file (const char* filename)
+{
+ fstream f;
+ f.exceptions (fstream::allbadbits);
+ f.open (filename, fstream::in);
+ const off_t fsize (f.size());
+ reserve (fsize);
+ f.read (data(), fsize);
+ f.close();
+ resize (fsize);
+}
+#endif // CYGCLS_USTL_FSTREAMS
+
+memblock::size_type memblock::minimumFreeCapacity (void) const throw() { return (0); }
+
+} // namespace ustl
diff --git a/ecos/packages/language/cxx/ustl/current/src/memlink.cpp b/ecos/packages/language/cxx/ustl/current/src/memlink.cpp
new file mode 100644
index 0000000..adff38f
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/src/memlink.cpp
@@ -0,0 +1,42 @@
+// This file is part of the uSTL library, an STL implementation.
+//
+// Copyright (c) 2005 by Mike Sharov <msharov@users.sourceforge.net>
+// This file is free software, distributed under the MIT License.
+
+#include "mistream.h"
+#include "ustdxept.h"
+
+namespace ustl {
+
+/// Reads the object from stream \p s
+void memlink::read (istream& is)
+{
+ written_size_type n = 0;
+ is >> n;
+ if (!is.verify_remaining ("read", "ustl::memlink", n))
+ return;
+ if (n > size())
+ USTL_THROW(length_error ("memlink can not increase the size of the linked storage for reading"));
+ resize (n);
+ is.read (data(), n);
+ is.align (stream_align_of (n));
+}
+
+/// Fills the linked block with the given pattern.
+/// \arg start Offset at which to start filling the linked block
+/// \arg p Pointer to the pattern.
+/// \arg elSize Size of the pattern.
+/// \arg elCount Number of times to write the pattern.
+/// Total number of bytes written is \p elSize * \p elCount.
+///
+void memlink::fill (iterator start, const void* p, size_type elSize, size_type elCount)
+{
+ assert (data() || !elCount || !elSize);
+ assert (start >= begin() && start + elSize * elCount <= end());
+ if (elSize == 1)
+ fill_n (start, elCount, *reinterpret_cast<const uint8_t*>(p));
+ else while (elCount--)
+ start = copy_n (const_iterator(p), elSize, start);
+}
+
+} // namespace ustl
diff --git a/ecos/packages/language/cxx/ustl/current/src/mistream.cpp b/ecos/packages/language/cxx/ustl/current/src/mistream.cpp
new file mode 100644
index 0000000..d814c19
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/src/mistream.cpp
@@ -0,0 +1,121 @@
+// This file is part of the uSTL library, an STL implementation.
+//
+// Copyright (c) 2005 by Mike Sharov <msharov@users.sourceforge.net>
+// This file is free software, distributed under the MIT License.
+
+#include "mistream.h"
+#include "sostream.h"
+#include "ustring.h"
+#include "ualgo.h"
+
+namespace ustl {
+
+//--------------------------------------------------------------------
+
+/// Checks that \p n bytes are available in the stream, or else throws.
+void ios_base::overrun (const char* op, const char* type, uint32_t n, uint32_t pos, uint32_t rem)
+{
+ if (set_and_throw (rem ? failbit : (failbit | eofbit)))
+ USTL_THROW(stream_bounds_exception (op, type, pos, n, rem));
+}
+
+//--------------------------------------------------------------------
+
+/// Attaches to the block pointed to by source of size source.pos()
+istream::istream (const ostream& source)
+: cmemlink (source.begin(), source.pos()),
+ m_Pos (0)
+{
+}
+
+void istream::unlink (void) throw() { cmemlink::unlink(); m_Pos = 0; }
+void ostream::unlink (void) throw() { memlink::unlink(); m_Pos = 0; }
+
+/// Writes all unread bytes into \p os.
+void istream::write (ostream& os) const
+{
+ os.write (ipos(), remaining());
+}
+
+/// Writes the object to stream \p os.
+void istream::text_write (ostringstream& os) const
+{
+ os.write (ipos(), remaining());
+}
+
+/// Reads a null-terminated string into \p str.
+void istream::read_strz (string& str)
+{
+ const_iterator zp = find (ipos(), end(), '\0');
+ if (zp == end())
+ zp = ipos();
+ const size_type strl = distance (ipos(), zp);
+ str.assign (ipos(), strl);
+ m_Pos += strl + 1;
+}
+
+/// Reads at most \p n bytes into \p s.
+istream::size_type istream::readsome (void* s, size_type n)
+{
+ if (remaining() < n)
+ underflow (n);
+ const size_type ntr (min (n, remaining()));
+ read (s, ntr);
+ return (ntr);
+}
+
+//--------------------------------------------------------------------
+
+/// Aligns the write pointer on \p grain. The skipped bytes are zeroed.
+void ostream::align (size_type grain)
+{
+ assert (!((grain-1)&grain) && "grain must be a power of 2");
+ iterator ip = ipos();
+ iterator ipa = iterator((uintptr_t(ip) + (grain-1)) & ~(grain-1));
+ size_t nb = distance (ip, ipa);
+#if WANT_STREAM_BOUNDS_CHECKING
+ if (!verify_remaining ("align", "padding", nb))
+ return;
+#else
+ assert (remaining() >= nb && "Buffer overrun. Check your stream size calculations.");
+#endif
+ memset (ip, '\x0', nb);
+ m_Pos += nb;
+}
+
+/// Writes \p str as a null-terminated string.
+void ostream::write_strz (const char* str)
+{
+ write (str, strlen(str)+1);
+}
+
+/// Writes all available data from \p is.
+void ostream::read (istream& is)
+{
+ write (is.ipos(), is.remaining());
+ is.seek (is.size());
+}
+
+/// Writes all written data to \p os.
+void ostream::text_write (ostringstream& os) const
+{
+ os.write (begin(), pos());
+}
+
+/// Inserts an empty area of \p size, at \p start.
+void ostream::insert (iterator start, size_type s)
+{
+ m_Pos += s;
+ memlink::insert (start, s);
+}
+
+/// Erases an area of \p size, at \p start.
+void ostream::erase (iterator start, size_type s)
+{
+ m_Pos -= s;
+ memlink::erase (start, s);
+}
+
+//--------------------------------------------------------------------
+
+} // namespace ustl
diff --git a/ecos/packages/language/cxx/ustl/current/src/ofstream.cpp b/ecos/packages/language/cxx/ustl/current/src/ofstream.cpp
new file mode 100644
index 0000000..9cf16df
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/src/ofstream.cpp
@@ -0,0 +1,169 @@
+// This file is part of the uSTL library, an STL implementation.
+//
+// Copyright (c) 2005 by Mike Sharov <msharov@users.sourceforge.net>
+// This file is free software, distributed under the MIT License.
+
+#include "ofstream.h"
+#include "ustring.h"
+#include "uexception.h"
+#include <unistd.h>
+#include <errno.h>
+#include <stdio.h>
+#include <stdarg.h>
+
+namespace ustl {
+
+//----------------------------------------------------------------------
+#ifdef CYGVAR_USTL_CIN_COUT_CERR
+ifstream cin (STDIN_FILENO);
+ofstream cout (STDOUT_FILENO);
+ofstream cerr (STDERR_FILENO);
+#endif
+//----------------------------------------------------------------------
+
+/// Default constructor.
+ofstream::ofstream (void)
+: ostringstream (),
+ m_File ()
+{
+ reserve (255);
+}
+
+/// Constructs a stream for writing to \p Fd.
+ofstream::ofstream (int Fd)
+: ostringstream (),
+ m_File (Fd)
+{
+ clear (m_File.rdstate());
+ reserve (255);
+}
+
+/// Constructs a stream for writing to \p filename.
+ofstream::ofstream (const char* filename, openmode mode)
+: ostringstream (),
+ m_File (filename, mode)
+{
+ clear (m_File.rdstate());
+}
+
+/// Default destructor.
+ofstream::~ofstream (void) throw()
+{
+ USTL_TRY { flush(); } USTL_CATCH_ALL;
+}
+
+/// Flushes the buffer and closes the file.
+void ofstream::close (void)
+{
+ clear (m_File.rdstate());
+ flush();
+ m_File.close();
+}
+
+/// Flushes the buffer to the file.
+ofstream& ofstream::flush (void)
+{
+ clear();
+ while (good() && pos() && overflow (remaining())) ;
+ m_File.sync();
+ clear (m_File.rdstate());
+ return (*this);
+}
+
+/// Seeks to \p p based on \p d.
+ofstream& ofstream::seekp (off_t p, seekdir d)
+{
+ flush();
+ m_File.seekp (p, d);
+ clear (m_File.rdstate());
+ return (*this);
+}
+
+/// Called when more buffer space (\p n bytes) is needed.
+ofstream::size_type ofstream::overflow (size_type n)
+{
+ if (eof() || (n > remaining() && n < capacity() - pos()))
+ return (ostringstream::overflow (n));
+ size_type bw = m_File.write (cdata(), pos());
+ clear (m_File.rdstate());
+ erase (begin(), bw);
+ if (remaining() < n)
+ ostringstream::overflow (n);
+ return (remaining());
+}
+
+//----------------------------------------------------------------------
+
+/// Constructs a stream to read from \p Fd.
+ifstream::ifstream (int Fd)
+: istringstream (),
+ m_Buffer (255),
+ m_File (Fd)
+{
+ link (m_Buffer.data(), streamsize(0));
+}
+
+/// Constructs a stream to read from \p filename.
+ifstream::ifstream (const char* filename, openmode mode)
+: istringstream (),
+ m_Buffer (255),
+ m_File (filename, mode)
+{
+ clear (m_File.rdstate());
+ link (m_Buffer.data(), streamsize(0));
+}
+
+/// Reads at least \p n more bytes and returns available bytes.
+ifstream::size_type ifstream::underflow (size_type n)
+{
+ if (eof())
+ return (istringstream::underflow (n));
+
+ const ssize_t freeSpace = m_Buffer.size() - pos();
+ const ssize_t neededFreeSpace = max (n, m_Buffer.size() / 2);
+ const size_t oughtToErase = Align (max (0, neededFreeSpace - freeSpace));
+ const size_type nToErase = min (pos(), oughtToErase);
+ m_Buffer.memlink::erase (m_Buffer.begin(), nToErase);
+ const uoff_t oldPos (pos() - nToErase);
+
+ size_type br = oldPos;
+ if (m_Buffer.size() - br < n) {
+ m_Buffer.resize (br + neededFreeSpace);
+ link (m_Buffer.data(), streamsize(0));
+ }
+ cout.flush();
+
+ size_type brn = 1;
+ for (; br < oldPos + n && brn && m_File.good(); br += brn)
+ brn = m_File.readsome (m_Buffer.begin() + br, m_Buffer.size() - br);
+ clear (m_File.rdstate());
+
+ m_Buffer[br] = 0;
+ link (m_Buffer.data(), br);
+ seek (oldPos);
+ return (remaining());
+}
+
+/// Flushes the input.
+int ifstream::sync (void)
+{
+ istringstream::sync();
+ underflow (0U);
+ m_File.sync();
+ clear (m_File.rdstate());
+ return (-good());
+}
+
+/// Seeks to \p p based on \p d.
+ifstream& ifstream::seekg (off_t p, seekdir d)
+{
+ m_Buffer.clear();
+ link (m_Buffer);
+ m_File.seekg (p, d);
+ clear (m_File.rdstate());
+ return (*this);
+}
+
+//----------------------------------------------------------------------
+
+} // namespace ustl
diff --git a/ecos/packages/language/cxx/ustl/current/src/sistream.cpp b/ecos/packages/language/cxx/ustl/current/src/sistream.cpp
new file mode 100644
index 0000000..25c5ceb
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/src/sistream.cpp
@@ -0,0 +1,216 @@
+// This file is part of the uSTL library, an STL implementation.
+//
+// Copyright (c) 2005 by Mike Sharov <msharov@users.sourceforge.net>
+// This file is free software, distributed under the MIT License.
+
+#include "sistream.h"
+#include "sostream.h"
+#include "ustring.h"
+
+namespace ustl {
+
+#define DEFAULT_DELIMITERS " \t\n\r;:,.?"
+const char ios_base::c_DefaultDelimiters [istringstream::c_MaxDelimiters] = DEFAULT_DELIMITERS;
+
+/// Default constructor.
+istringstream::istringstream (void)
+: istream (),
+ m_Base (0)
+{
+ exceptions (goodbit);
+ set_delimiters (DEFAULT_DELIMITERS);
+}
+
+istringstream::istringstream (const void* p, size_type n)
+: istream (),
+ m_Base (0)
+{
+ exceptions (goodbit);
+ relink (p, n);
+ set_delimiters (DEFAULT_DELIMITERS);
+}
+
+istringstream::istringstream (const cmemlink& source)
+: istream (),
+ m_Base (0)
+{
+ exceptions (goodbit);
+ relink (source);
+ set_delimiters (DEFAULT_DELIMITERS);
+}
+
+inline bool istringstream::is_delimiter (char c) const
+{
+ return (memchr (m_Delimiters, c, VectorSize(m_Delimiters)-1));
+}
+
+char istringstream::skip_delimiters (void)
+{
+ char c = m_Delimiters[0];
+ while (is_delimiter(c)) {
+ if (!remaining() && !underflow()) {
+ verify_remaining ("read", "", 1);
+ return (0);
+ }
+ istream::iread (c);
+ }
+ return (c);
+}
+
+typedef istringstream::iterator issiter_t;
+template <typename T>
+inline void str_to_num (issiter_t i, issiter_t* iend, uint8_t base, T& v)
+ { v = strtol (i, const_cast<char**>(iend), base); }
+template <> inline void str_to_num (issiter_t i, issiter_t* iend, uint8_t, double& v)
+ { v = strtod (i, const_cast<char**>(iend)); }
+#if HAVE_LONG_LONG
+template <> inline void str_to_num (issiter_t i, issiter_t* iend, uint8_t base, long long& v)
+ { v = strtoll (i, const_cast<char**>(iend), base); }
+#endif
+
+template <typename T>
+inline void istringstream::read_number (T& v)
+{
+ v = 0;
+ if (!skip_delimiters())
+ return;
+ ungetc();
+ iterator ilast;
+ do {
+ str_to_num<T> (ipos(), &ilast, m_Base, v);
+ } while (ilast == end() && underflow());
+ skip (distance (ipos(), ilast));
+}
+
+void istringstream::iread (int32_t& v) { read_number (v); }
+void istringstream::iread (double& v) { read_number (v); }
+#if HAVE_INT64_T
+void istringstream::iread (int64_t& v) { read_number (v); }
+#endif
+#if HAVE_LONG_LONG && (!HAVE_INT64_T || SIZE_OF_LONG_LONG > 8)
+void istringstream::iread (long long& v) { read_number (v); }
+#endif
+
+void istringstream::iread (wchar_t& v)
+{
+ if (!(v = skip_delimiters()))
+ return;
+ ungetc();
+ size_t cs = Utf8SequenceBytes (v);
+ if (remaining() < cs && underflow(cs) < cs)
+ verify_remaining ("read", "wchar_t", cs);
+ else {
+ v = *utf8in (ipos());
+ skip (cs);
+ }
+}
+
+void istringstream::iread (bool& v)
+{
+ static const char tf[2][8] = { "false", "true" };
+ char c = skip_delimiters();
+ v = (c == 't' || c == '1');
+ if (c != tf[v][0])
+ return;
+ for (const char* tv = tf[v]; c == *tv && (remaining() || underflow()); ++tv)
+ istream::iread (c);
+ ungetc();
+}
+
+void istringstream::iread (string& v)
+{
+ v.clear();
+ char prevc, quoteChar = 0, c = skip_delimiters();
+ if (!c)
+ return;
+ if (c == '\"' || c == '\'')
+ quoteChar = c;
+ else
+ v += c;
+ while (remaining() || underflow()) {
+ prevc = c;
+ istream::iread (c);
+ if (!quoteChar && is_delimiter(c))
+ break;
+ if (prevc == '\\') {
+ switch (c) {
+ case 't': c = '\t'; break;
+ case 'n': c = '\n'; break;
+ case 'r': c = '\r'; break;
+ case 'b': c = '\b'; break;
+ case 'E': c = 27; break; // ESC sequence
+ case '\"': c = '\"'; break;
+ case '\'': c = '\''; break;
+ case '\\': c = '\\'; break;
+ };
+ v.end()[-1] = c;
+ } else {
+ if (c == quoteChar)
+ break;
+ v += c;
+ }
+ }
+}
+
+istringstream& istringstream::read (void* buffer, size_type sz)
+{
+ if (remaining() < sz && underflow(sz) < sz)
+ verify_remaining ("read", "", sz);
+ else
+ istream::read (buffer, sz);
+ return (*this);
+}
+
+/// Reads characters into \p s until \p delim is found (but not stored or extracted)
+istringstream& istringstream::get (string& s, char delim)
+{
+ getline (s, delim);
+ if (!s.empty() && pos() > 0 && ipos()[-1] == delim)
+ ungetc();
+ return (*this);
+}
+
+/// Reads characters into \p p,n until \p delim is found (but not stored or extracted)
+istringstream& istringstream::get (char* p, size_type n, char delim)
+{
+ assert (p && !n && "A non-empty buffer is required by this implementation");
+ string s;
+ get (s, delim);
+ const size_t ntc (min (n - 1, s.size()));
+ memcpy (p, s.data(), ntc);
+ p[ntc] = 0;
+ return (*this);
+}
+
+/// Reads characters into \p s until \p delim is extracted (but not stored)
+istringstream& istringstream::getline (string& s, char delim)
+{
+ char oldDelim [VectorSize(m_Delimiters)];
+ copy (VectorRange (m_Delimiters), oldDelim);
+ fill (VectorRange (m_Delimiters), '\0');
+ m_Delimiters[0] = delim;
+ iread (s);
+ copy (VectorRange (oldDelim), m_Delimiters);
+ return (*this);
+}
+
+/// Reads characters into \p p,n until \p delim is extracted (but not stored)
+istringstream& istringstream::getline (char* p, size_type n, char delim)
+{
+ assert (p && !n && "A non-empty buffer is required by this implementation");
+ string s;
+ getline (s, delim);
+ const size_t ntc (min (n - 1, s.size()));
+ memcpy (p, s.data(), ntc);
+ p[ntc] = 0;
+ return (*this);
+}
+
+/// Extract until \p delim or \p n chars have been read.
+istringstream& istringstream::ignore (size_type n, char delim)
+{
+ while (n-- && (remaining() || underflow()) && get() != delim) ;
+ return (*this);
+}
+
+} // namespace ustl
diff --git a/ecos/packages/language/cxx/ustl/current/src/sostream.cpp b/ecos/packages/language/cxx/ustl/current/src/sostream.cpp
new file mode 100644
index 0000000..4da43dd
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/src/sostream.cpp
@@ -0,0 +1,168 @@
+// This file is part of the uSTL library, an STL implementation.
+//
+// Copyright (c) 2005 by Mike Sharov <msharov@users.sourceforge.net>
+// This file is free software, distributed under the MIT License.
+
+#include "mistream.h" // for istream_iterator, referenced in utf8.h
+#include "sostream.h"
+#include "ustring.h"
+#include "ulimits.h"
+#include <stdio.h>
+
+namespace ustl {
+
+/// Creates an output string stream linked to the given memory area.
+ostringstream::ostringstream (void* p, size_t n)
+: ostream (),
+ m_Buffer (),
+ m_Flags (0),
+ m_Width (0),
+ m_Base (10),
+ m_Precision (2)
+{
+ exceptions (goodbit);
+ link (p, n);
+}
+
+/// Creates an output string stream, initializing the buffer with v.
+ostringstream::ostringstream (const string& v)
+: ostream (),
+ m_Buffer (v),
+ m_Flags (0),
+ m_Width (0),
+ m_Base (10),
+ m_Precision (2)
+{
+ exceptions (goodbit);
+ ostream::link (m_Buffer);
+}
+
+/// Copies \p s to the internal buffer.
+void ostringstream::str (const string& s)
+{
+ m_Buffer = s;
+ ostream::link (m_Buffer);
+ SetPos (m_Buffer.size());
+}
+
+/// Writes a single character into the stream.
+void ostringstream::iwrite (uint8_t v)
+{
+ if (remaining() >= 1 || overflow() >= 1)
+ ostream::iwrite (v);
+}
+
+/// Writes the contents of \p buffer of \p size into the stream.
+ostringstream& ostringstream::write (const void* buffer, size_type sz)
+{
+ const char* buf = (const char*) buffer;
+ for (size_type bw = 0; (bw = min(sz, remaining() ? remaining() : overflow(sz))); buf += bw, sz -= bw)
+ ostream::write (buf, bw);
+ return (*this);
+}
+
+/// Simple decimal encoding of \p n into \p fmt.
+inline char* ostringstream::encode_dec (char* fmt, uint32_t n) const
+{
+ do {
+ *fmt++ = '0' + n % 10;
+ } while (n /= 10);
+ return (fmt);
+}
+
+/// Generates a sprintf format string for the given type.
+void ostringstream::fmtstring (char* fmt, const char* typestr, bool bInteger) const
+{
+ *fmt++ = '%';
+ if (m_Width)
+ fmt = encode_dec (fmt, m_Width);
+ if (m_Flags & left)
+ *fmt++ = '-';
+ if (!bInteger) {
+ *fmt++ = '.';
+ fmt = encode_dec (fmt, m_Precision);
+ }
+ while (*typestr)
+ *fmt++ = *typestr++;
+ if (bInteger) {
+ if (m_Base == 16)
+ fmt[-1] = 'X';
+ else if (m_Base == 8)
+ fmt[-1] = 'o';
+ } else {
+ if (m_Flags & scientific)
+ fmt[-1] = 'E';
+ }
+ *fmt = 0;
+}
+
+/// Writes \p v into the stream as utf8
+void ostringstream::iwrite (wchar_t v)
+{
+ char buffer [8];
+ *utf8out(buffer) = v;
+ write (buffer, Utf8Bytes(v));
+}
+
+/// Writes value \p v into the stream as text.
+void ostringstream::iwrite (bool v)
+{
+ static const char tf[2][8] = { "false", "true" };
+ write (tf[v], 5 - v);
+}
+
+/// Equivalent to a vsprintf on the string.
+int ostringstream::vformat (const char* fmt, va_list args)
+{
+#if HAVE_VA_COPY
+ va_list args2;
+#else
+ #define args2 args
+ #undef __va_copy
+ #define __va_copy(x,y)
+#endif
+ size_t rv, space;
+ do {
+ space = remaining();
+ __va_copy (args2, args);
+ rv = vsnprintf (ipos(), space, fmt, args2);
+ if (ssize_t(rv) < 0)
+ rv = space;
+ } while (rv >= space && rv < overflow(rv + 1));
+ SetPos (pos() + min (rv, space));
+ return (rv);
+}
+
+/// Equivalent to a sprintf on the string.
+int ostringstream::format (const char* fmt, ...)
+{
+ va_list args;
+ va_start (args, fmt);
+ const int rv = vformat (fmt, args);
+ va_end (args);
+ return (rv);
+}
+
+/// Links to string \p l as resizable.
+void ostringstream::link (void* p, size_type n)
+{
+ assert ((p || !n) && "The output string buffer must not be read-only");
+ ostream::link (p, n);
+ m_Buffer.link (p, n);
+}
+
+/// Attempts to create more output space. Returns remaining().
+ostringstream::size_type ostringstream::overflow (size_type n)
+{
+ if (n > remaining()) {
+ const uoff_t oldPos (pos());
+ m_Buffer.reserve (oldPos + n, false);
+ m_Buffer.resize (oldPos + n);
+ ostream::link (m_Buffer);
+ SetPos (oldPos);
+ }
+ verify_remaining ("write", "text", n);
+ return (remaining());
+}
+
+} // namespace ustl
diff --git a/ecos/packages/language/cxx/ustl/current/src/ualgobase.cpp b/ecos/packages/language/cxx/ustl/current/src/ualgobase.cpp
new file mode 100644
index 0000000..d853304
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/src/ualgobase.cpp
@@ -0,0 +1,284 @@
+// This file is part of the uSTL library, an STL implementation.
+//
+// Copyright (c) 2005 by Mike Sharov <msharov@users.sourceforge.net>
+// This file is free software, distributed under the MIT License.
+
+#ifndef NDEBUG // Optimized code here. asserts slow it down, and are checked elsewhere.
+#define NDEBUG
+#endif
+
+#include "ualgo.h"
+
+namespace ustl {
+
+// Generic version for implementing fill_nX_fast on non-i386 architectures.
+template <typename T> static inline void stosv (T*& p, size_t n, T v)
+ { while (n--) *p++ = v; }
+
+#if defined(__i386__) || defined(__x86_64__)
+
+//----------------------------------------------------------------------
+// Copy functions
+//----------------------------------------------------------------------
+
+static inline void movsb_dir_up (void) { asm volatile ("cld"); }
+static inline void movsb_dir_down (void) { asm volatile ("std"); }
+
+static inline void movsb (const void*& src, size_t nBytes, void*& dest)
+{
+ asm volatile ("rep;\n\tmovsb"
+ : "=&S"(src), "=&D"(dest), "=&c"(nBytes)
+ : "0"(src), "1"(dest), "2"(nBytes)
+ : "memory");
+}
+
+static inline void movsd (const void*& src, size_t nWords, void*& dest)
+{
+ asm volatile ("rep;\n\tmovsl"
+ : "=&S"(src), "=&D"(dest), "=&c"(nWords)
+ : "0"(src), "1"(dest), "2"(nWords)
+ : "memory");
+}
+
+template <> inline void stosv (uint8_t*& p, size_t n, uint8_t v)
+{ asm volatile ("rep;\n\tstosb" : "=&D"(p), "=c"(n) : "0"(p), "1"(n), "a"(v) : "memory"); }
+template <> inline void stosv (uint16_t*& p, size_t n, uint16_t v)
+{ asm volatile ("rep;\n\tstosw" : "=&D"(p), "=c"(n) : "0"(p), "1"(n), "a"(v) : "memory"); }
+template <> inline void stosv (uint32_t*& p, size_t n, uint32_t v)
+{ asm volatile ("rep;\n\tstosl" : "=&D"(p), "=c"(n) : "0"(p), "1"(n), "a"(v) : "memory"); }
+
+#if CPU_HAS_MMX
+#define MMX_ALIGN 16U // Data must be aligned on this grain
+#define MMX_BS 32U // Assembly routines copy data this many bytes at a time.
+
+static inline void simd_block_copy (const void* src, void* dest)
+{
+ const char* csrc ((const char*) src);
+ char* cdest ((char*) dest);
+ #if CPU_HAS_SSE
+ asm (
+ "movaps\t%2, %%xmm0 \n\t"
+ "movaps\t%3, %%xmm1 \n\t"
+ "movntps\t%%xmm0, %0 \n\t"
+ "movntps\t%%xmm1, %1"
+ : "=m"(cdest[0]), "=m"(cdest[16])
+ : "m"(csrc[0]), "m"(csrc[16])
+ : "xmm0", "xmm1", "memory");
+ #else
+ asm (
+ "movq %4, %%mm0 \n\t"
+ "movq %5, %%mm1 \n\t"
+ "movq %6, %%mm2 \n\t"
+ "movq %7, %%mm3 \n\t"
+ "movq %%mm0, %0 \n\t"
+ "movq %%mm1, %1 \n\t"
+ "movq %%mm2, %2 \n\t"
+ "movq %%mm3, %3"
+ : "=m"(cdest[0]), "=m"(cdest[8]), "=m"(cdest[16]), "=m"(cdest[24])
+ : "m"(csrc[0]), "m"(csrc[8]), "m"(csrc[16]), "m"(csrc[24])
+ : "mm0", "mm1", "mm2", "mm3", "st", "st(1)", "st(2)", "st(3)", "memory");
+ #endif
+}
+
+static inline void simd_block_store (uint8_t* dest)
+{
+ #if CPU_HAS_SSE
+ asm volatile (
+ "movntq %%mm0, %0\n\t"
+ "movntq %%mm0, %1\n\t"
+ "movntq %%mm0, %2\n\t"
+ "movntq %%mm0, %3"
+ : "=m"(dest[0]), "=m"(dest[8]), "=m"(dest[16]), "=m"(dest[24])
+ :: "memory");
+ #else
+ asm volatile (
+ "movq %%mm0, %0 \n\t"
+ "movq %%mm0, %1 \n\t"
+ "movq %%mm0, %2 \n\t"
+ "movq %%mm0, %3"
+ : "=m"(dest[0]), "=m"(dest[8]), "=m"(dest[16]), "=m"(dest[24])
+ :: "memory");
+ #endif
+}
+
+static inline void simd_block_cleanup (void)
+{
+ #if !CPU_HAS_SSE
+ simd::reset_mmx();
+ #endif
+ asm volatile ("sfence");
+}
+
+/// The fastest optimized raw memory copy.
+void copy_n_fast (const void* src, size_t nBytes, void* dest) throw()
+{
+ movsb_dir_up();
+ size_t nHeadBytes = Align(uintptr_t(src), MMX_ALIGN) - uintptr_t(src);
+ nHeadBytes = min (nHeadBytes, nBytes);
+ movsb (src, nHeadBytes, dest);
+ nBytes -= nHeadBytes;
+ if (!(uintptr_t(dest) % MMX_ALIGN)) {
+ const size_t nMiddleBlocks = nBytes / MMX_BS;
+ for (uoff_t i = 0; i < nMiddleBlocks; ++ i) {
+ prefetch (advance (src, 512), 0, 0);
+ simd_block_copy (src, dest);
+ src = advance (src, MMX_BS);
+ dest = advance (dest, MMX_BS);
+ }
+ simd_block_cleanup();
+ nBytes %= MMX_BS;
+ }
+ movsb (src, nBytes, dest);
+}
+#endif // CPU_HAS_MMX
+
+/// The fastest optimized backwards raw memory copy.
+void copy_backward_fast (const void* first, const void* last, void* result) throw()
+{
+ prefetch (first, 0, 0);
+ prefetch (result, 1, 0);
+ size_t nBytes (distance (first, last));
+ movsb_dir_down();
+ size_t nHeadBytes = uintptr_t(last) % 4;
+ last = advance (last, -1);
+ result = advance (result, -1);
+ movsb (last, nHeadBytes, result);
+ nBytes -= nHeadBytes;
+ if (uintptr_t(result) % 4 == 3) {
+ const size_t nMiddleBlocks = nBytes / 4;
+ last = advance (last, -3);
+ result = advance (result, -3);
+ movsd (last, nMiddleBlocks, result);
+ nBytes %= 4;
+ }
+ movsb (last, nBytes, result);
+ movsb_dir_up();
+}
+#endif // __i386__
+
+//----------------------------------------------------------------------
+// Fill functions
+//----------------------------------------------------------------------
+
+#if CPU_HAS_MMX
+template <typename T> static inline void build_block (T) {}
+template <> inline void build_block (uint8_t v)
+{
+ asm volatile (
+ "movd %0, %%mm0\n\tpunpcklbw %%mm0, %%mm0\n\tpshufw $0, %%mm0, %%mm0"
+ : : "g"(uint32_t(v)) : "mm0");
+}
+template <> inline void build_block (uint16_t v)
+{
+ asm volatile (
+ "movd %0, %%mm0\n\tpshufw $0, %%mm0, %%mm0"
+ : : "g"(uint32_t(v)) : "mm0");
+}
+template <> inline void build_block (uint32_t v)
+{
+ asm volatile (
+ "movd %0, %%mm0\n\tpunpckldq %%mm0, %%mm0"
+ : : "g"(uint32_t(v)) : "mm0");
+}
+
+static inline void simd_block_fill_loop (uint8_t*& dest, size_t count)
+{
+ prefetch (advance (dest, 512), 1, 0);
+ for (const uint8_t* destEnd = dest + count * MMX_BS; dest < destEnd; dest += MMX_BS)
+ simd_block_store (dest);
+ simd_block_cleanup();
+ simd::reset_mmx();
+}
+
+template <typename T>
+static inline void fill_n_fast (T* dest, size_t count, T v)
+{
+ size_t nHead = Align(uintptr_t(dest), MMX_ALIGN) - uintptr_t(dest) / sizeof(T);
+ nHead = min (nHead, count);
+ stosv (dest, nHead, v);
+ count -= nHead;
+ build_block (v);
+ uint8_t* bdest = (uint8_t*) dest;
+ simd_block_fill_loop (bdest, count * sizeof(T) / MMX_BS);
+ count %= MMX_BS;
+ dest = (T*) bdest;
+ stosv (dest, count, v);
+}
+
+void fill_n8_fast (uint8_t* dest, size_t count, uint8_t v) throw()
+ { fill_n_fast (dest, count, v); }
+void fill_n16_fast (uint16_t* dest, size_t count, uint16_t v) throw()
+ { fill_n_fast (dest, count, v); }
+void fill_n32_fast (uint32_t* dest, size_t count, uint32_t v) throw()
+ { fill_n_fast (dest, count, v); }
+#else
+void fill_n8_fast (uint8_t* dest, size_t count, uint8_t v) throw() { memset (dest, v, count); }
+void fill_n16_fast (uint16_t* dest, size_t count, uint16_t v) throw() { stosv (dest, count, v); }
+void fill_n32_fast (uint32_t* dest, size_t count, uint32_t v) throw() { stosv (dest, count, v); }
+#endif // CPU_HAS_MMX
+
+/// Exchanges ranges [first, middle) and [middle, last)
+void rotate_fast (void* first, void* middle, void* last) throw()
+{
+#if HAVE_ALLOCA_H
+ const size_t half1 (distance (first, middle)), half2 (distance (middle, last));
+ const size_t hmin (min (half1, half2));
+ if (!hmin)
+ return;
+ void* buf = alloca (hmin);
+ if (buf) {
+ if (half2 < half1) {
+ copy_n_fast (middle, half2, buf);
+ copy_backward_fast (first, middle, last);
+ copy_n_fast (buf, half2, first);
+ } else {
+ copy_n_fast (first, half1, buf);
+ copy_n_fast (middle, half2, first);
+ copy_n_fast (buf, half1, advance (first, half2));
+ }
+ } else
+#else
+ if (first == middle || middle == last)
+ return;
+#endif
+ {
+ char* f = (char*) first;
+ char* m = (char*) middle;
+ char* l = (char*) last;
+ reverse (f, m);
+ reverse (m, l);
+ while (f != m && m != l)
+ iter_swap (f++, --l);
+ reverse (f, (f == m ? l : m));
+ }
+}
+
+#if __GNUC__ < 4
+size_t popcount (uint32_t v)
+{
+ const uint32_t w = v - ((v >> 1) & 0x55555555); // Algorithm from AMD optimization guide
+ const uint32_t x = (w & 0x33333333) + ((w >> 2) & 0x33333333);
+ return (((x + (x >> 4) & 0x0F0F0F0F) * 0x01010101) >> 24);
+}
+
+#if HAVE_INT64_T
+/// \brief Returns the number of 1s in \p v in binary.
+size_t popcount (uint64_t v)
+{
+ v -= (v >> 1) & UINT64_C(0x5555555555555555); // Algorithm from Wikipedia
+ v = (v & UINT64_C(0x3333333333333333)) + ((v >> 2) & UINT64_C(0x3333333333333333));
+ v = (v + (v >> 4)) & UINT64_C(0x0F0F0F0F0F0F0F0F);
+ return ((v * UINT64_C(0x0101010101010101)) >> 56);
+}
+#endif // HAVE_INT64_T
+#endif // !__GNUC__
+
+//----------------------------------------------------------------------
+// Miscellaneous instantiated stuff from headers which don't have enough
+// to warrant creation of a separate file.cc
+//----------------------------------------------------------------------
+
+// Used in uspecial to print printable characters
+const char _FmtPrtChr[2][8]={"'%c'","%d"};
+
+} // namespace ustl
diff --git a/ecos/packages/language/cxx/ustl/current/src/ubitset.cpp b/ecos/packages/language/cxx/ustl/current/src/ubitset.cpp
new file mode 100644
index 0000000..66457bc
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/src/ubitset.cpp
@@ -0,0 +1,34 @@
+// This file is part of the uSTL library, an STL implementation.
+//
+// Copyright (c) 2005 by Mike Sharov <msharov@users.sourceforge.net>
+// This file is free software, distributed under the MIT License.
+
+#include "ubitset.h"
+
+namespace ustl {
+
+/// Copies bits from \p v of size \p n into \p buf as MSB "1011001..." LSB
+/// If \p buf is too small, MSB bits will be truncated.
+void convert_to_bitstring (const bitset_value_type* v, size_t n, string& buf)
+{
+ string::iterator stri = buf.end();
+ for (size_t i = 0; i < n && stri > buf.begin(); ++ i)
+ for (bitset_value_type b = 1; b && stri > buf.begin(); b <<= 1)
+ *--stri = (v[i] & b) ? '1' : '0';
+}
+
+/// Copies bits from \p buf as MSB "1011001..." LSB into \p v of size \p n.
+void convert_from_bitstring (const string& buf, bitset_value_type* v, size_t n)
+{
+ string::const_iterator stri = buf.end();
+ for (size_t i = 0; i < n; ++ i) {
+ for (bitset_value_type b = 1; b; b <<= 1) {
+ if (stri == buf.begin() || *--stri == '0')
+ v[i] &= ~b;
+ else
+ v[i] |= b;
+ }
+ }
+}
+
+} // namespace ustl
diff --git a/ecos/packages/language/cxx/ustl/current/src/uexception.cpp b/ecos/packages/language/cxx/ustl/current/src/uexception.cpp
new file mode 100644
index 0000000..72e4026
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/src/uexception.cpp
@@ -0,0 +1,277 @@
+// This file is part of the uSTL library, an STL implementation.
+//
+// Copyright (c) 2005 by Mike Sharov <msharov@users.sourceforge.net>
+// This file is free software, distributed under the MIT License.
+
+#include "uexception.h"
+#include "ustring.h"
+#include "mistream.h"
+#include "sostream.h"
+#include "strmsize.h"
+#include "uspecial.h"
+#include <errno.h>
+
+#if HAVE_CXXABI_H && WANT_NAME_DEMANGLING
+extern "C" char* __cxa_demangle (const char* mangled_name, char* output_buffer, size_t* length, int* status);
+#endif
+
+namespace ustl {
+
+//----------------------------------------------------------------------
+
+/// \brief Returns a descriptive error message. fmt="%s"
+/// Overloads of this functions must set NULL as the default fmt
+/// argument and handle that case to provide a default format string
+/// in case the user does not have a localized one. The format
+/// string should be shown in the documentation to not require
+/// translators to look through code. Also, this function must
+/// not throw anything, so you must wrap memory allocation routines
+/// (like string::format, for instance) in a try{}catch(...){} block.
+///
+void exception::info (string& msgbuf, const char*) const throw()
+{
+ USTL_TRY { msgbuf.format ("%s", what()); } USTL_CATCH_ALL;
+}
+
+/// Reads the exception from stream \p is.
+void exception::read (istream& is)
+{
+ uint32_t stmSize = 0;
+ xfmt_t fmt = xfmt_Exception;
+ is >> fmt >> stmSize >> m_Backtrace;
+ assert (fmt == m_Format && "The saved exception is of a different type.");
+ assert ((stmSize + 8) - exception::stream_size() <= is.remaining() && "The saved exception data is corrupt.");
+ m_Format = fmt;
+}
+
+/// Writes the exception into stream \p os as an IFF chunk.
+void exception::write (ostream& os) const
+{
+ os << m_Format << uint32_t(stream_size() - 8) << m_Backtrace;
+}
+
+/// Writes the exception as text into stream \p os.
+void exception::text_write (ostringstream& os) const
+{
+ USTL_TRY {
+ string buf;
+ info (buf);
+ os << buf;
+ } USTL_CATCH_ALL
+}
+
+//----------------------------------------------------------------------
+
+/// Initializes the empty object. \p nBytes is the size of the attempted allocation.
+bad_alloc::bad_alloc (size_t nBytes) throw()
+: ustl::exception(),
+ m_nBytesRequested (nBytes)
+{
+ set_format (xfmt_BadAlloc);
+}
+
+/// Returns a descriptive error message. fmt="failed to allocate %d bytes"
+void bad_alloc::info (string& msgbuf, const char* fmt) const throw()
+{
+ if (!fmt) fmt = "failed to allocate %d bytes";
+ USTL_TRY { msgbuf.format (fmt, m_nBytesRequested); } USTL_CATCH_ALL
+}
+
+/// Reads the exception from stream \p is.
+void bad_alloc::read (istream& is)
+{
+ ustl::exception::read (is);
+ is >> m_nBytesRequested;
+}
+
+/// Writes the exception into stream \p os.
+void bad_alloc::write (ostream& os) const
+{
+ ustl::exception::write (os);
+ os << m_nBytesRequested;
+}
+
+/// Returns the size of the written exception.
+size_t bad_alloc::stream_size (void) const
+{
+ return (ustl::exception::stream_size() + stream_size_of(m_nBytesRequested));
+}
+
+//----------------------------------------------------------------------
+
+/// Initializes the empty object. \p operation is the function that returned the error code.
+libc_exception::libc_exception (const char* operation) throw()
+: exception(),
+ m_Errno (errno),
+ m_Operation (operation)
+{
+ set_format (xfmt_LibcException);
+}
+
+/// Copies object \p v.
+libc_exception::libc_exception (const libc_exception& v) throw()
+: exception (v),
+ m_Errno (v.m_Errno),
+ m_Operation (v.m_Operation)
+{
+}
+
+/// Copies object \p v.
+const libc_exception& libc_exception::operator= (const libc_exception& v)
+{
+ m_Errno = v.m_Errno;
+ m_Operation = v.m_Operation;
+ return (*this);
+}
+
+/// Returns a descriptive error message. fmt="%s: %m"
+void libc_exception::info (string& msgbuf, const char* fmt) const throw()
+{
+ if (!fmt) fmt = "%s: %d %s";
+ USTL_TRY { msgbuf.format (fmt, m_Operation, m_Errno, strerror(m_Errno)); } USTL_CATCH_ALL
+}
+
+/// Reads the exception from stream \p is.
+void libc_exception::read (istream& is)
+{
+ exception::read (is);
+ is >> m_Errno >> m_Operation;
+}
+
+/// Writes the exception into stream \p os.
+void libc_exception::write (ostream& os) const
+{
+ exception::write (os);
+ os << m_Errno << m_Operation;
+}
+
+/// Returns the size of the written exception.
+size_t libc_exception::stream_size (void) const
+{
+ return (exception::stream_size() +
+ stream_size_of(m_Errno) +
+ stream_size_of(m_Operation));
+}
+
+//----------------------------------------------------------------------
+
+/// Initializes the empty object. \p operation is the function that returned the error code.
+file_exception::file_exception (const char* operation, const char* filename) throw()
+: libc_exception (operation)
+{
+ memset (m_Filename, 0, VectorSize(m_Filename));
+ set_format (xfmt_FileException);
+ if (filename) {
+ strncpy (m_Filename, filename, VectorSize(m_Filename));
+ m_Filename [VectorSize(m_Filename) - 1] = 0;
+ }
+}
+
+/// Returns a descriptive error message. fmt="%s %s: %m"
+void file_exception::info (string& msgbuf, const char* fmt) const throw()
+{
+ if (!fmt) fmt = "%s %s: %d %s";
+ USTL_TRY { msgbuf.format (fmt, m_Operation, m_Filename, m_Errno, strerror(m_Errno)); } USTL_CATCH_ALL
+}
+
+/// Reads the exception from stream \p is.
+void file_exception::read (istream& is)
+{
+ libc_exception::read (is);
+ string filename;
+ is >> filename;
+ is.align (8);
+ filename.copyto (filename, VectorSize(m_Filename));
+}
+
+/// Writes the exception into stream \p os.
+void file_exception::write (ostream& os) const
+{
+ libc_exception::write (os);
+ os << string (m_Filename);
+ os.align (8);
+}
+
+/// Returns the size of the written exception.
+size_t file_exception::stream_size (void) const
+{
+ return (libc_exception::stream_size() +
+ Align (stream_size_of (string (m_Filename)), 8));
+}
+
+//----------------------------------------------------------------------
+
+/// \brief Uses C++ ABI call, if available to demangle the contents of \p buf.
+///
+/// The result is written to \p buf, with the maximum size of \p bufSize, and
+/// is zero-terminated. The return value is \p buf.
+///
+const char* demangle_type_name (char* buf, size_t bufSize, size_t* pdmSize)
+{
+ size_t bl = strlen (buf);
+#if HAVE_CXXABI_H && WANT_NAME_DEMANGLING
+ char dmname [256];
+ size_t sz = VectorSize(dmname);
+ int bFailed;
+ __cxa_demangle (buf, dmname, &sz, &bFailed);
+ if (!bFailed) {
+ bl = min (strlen (dmname), bufSize - 1);
+ memcpy (buf, dmname, bl);
+ buf[bl] = 0;
+ }
+#else
+ bl = min (bl, bufSize);
+#endif
+ if (pdmSize)
+ *pdmSize = bl;
+ return (buf);
+}
+
+//----------------------------------------------------------------------
+
+/// Initializes the empty object. \p operation is the function that returned the error code.
+stream_bounds_exception::stream_bounds_exception (const char* operation, const char* type, uoff_t offset, size_t expected, size_t remaining) throw()
+: libc_exception (operation),
+ m_TypeName (type),
+ m_Offset (offset),
+ m_Expected (expected),
+ m_Remaining (remaining)
+{
+ set_format (xfmt_StreamBoundsException);
+}
+
+/// Returns a descriptive error message. fmt="%s stream %s: @%u: expected %u, available %u";
+void stream_bounds_exception::info (string& msgbuf, const char* fmt) const throw()
+{
+ char typeName [256];
+ strncpy (typeName, m_TypeName, VectorSize(typeName));
+ typeName[VectorSize(typeName)-1] = 0;
+ if (!fmt) fmt = "%s stream %s: @0x%X: need %u bytes, have %u";
+ USTL_TRY { msgbuf.format (fmt, demangle_type_name (VectorBlock(typeName)), m_Operation, m_Offset, m_Expected, m_Remaining); } USTL_CATCH_ALL
+}
+
+/// Reads the exception from stream \p is.
+void stream_bounds_exception::read (istream& is)
+{
+ libc_exception::read (is);
+ is >> m_TypeName >> m_Offset >> m_Expected >> m_Remaining;
+}
+
+/// Writes the exception into stream \p os.
+void stream_bounds_exception::write (ostream& os) const
+{
+ libc_exception::write (os);
+ os << m_TypeName << m_Offset << m_Expected << m_Remaining;
+}
+
+/// Returns the size of the written exception.
+size_t stream_bounds_exception::stream_size (void) const
+{
+ return (libc_exception::stream_size() +
+ stream_size_of(m_TypeName) +
+ stream_size_of(m_Offset) +
+ stream_size_of(m_Expected) +
+ stream_size_of(m_Remaining));
+}
+
+} // namespace ustl
diff --git a/ecos/packages/language/cxx/ustl/current/src/unew.cpp b/ecos/packages/language/cxx/ustl/current/src/unew.cpp
new file mode 100644
index 0000000..139371d
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/src/unew.cpp
@@ -0,0 +1,14 @@
+// This file is part of the uSTL library, an STL implementation.
+//
+// Copyright (c) 2005 by Mike Sharov <msharov@users.sourceforge.net>
+// This file is free software, distributed under the MIT License.
+
+#include "unew.h"
+
+void* tmalloc (size_t n) throw (ustl::bad_alloc)
+{
+ void* p = malloc (n);
+ if (!p)
+ USTL_THROW(ustl::bad_alloc (n));
+ return (p);
+}
diff --git a/ecos/packages/language/cxx/ustl/current/src/ustdxept.cpp b/ecos/packages/language/cxx/ustl/current/src/ustdxept.cpp
new file mode 100644
index 0000000..457dcee
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/src/ustdxept.cpp
@@ -0,0 +1,57 @@
+// This file is part of the uSTL library, an STL implementation.
+//
+// Copyright (c) 2005 by Mike Sharov <msharov@users.sourceforge.net>
+// This file is free software, distributed under the MIT License.
+
+#include "ustdxept.h"
+#include "mistream.h"
+#include "mostream.h"
+#include "strmsize.h"
+#include "uiosfunc.h"
+#include "uspecial.h"
+
+namespace ustl {
+
+//----------------------------------------------------------------------
+
+/// \p arg contains a description of the error.
+error_message::error_message (const char* arg) throw()
+: m_Arg ()
+{
+ USTL_TRY { m_Arg = arg; } USTL_CATCH_ALL
+ set_format (xfmt_ErrorMessage);
+}
+
+/// Virtual destructor
+error_message::~error_message (void) throw()
+{
+}
+
+/// Returns a descriptive error message. fmt="%s: %s"
+void error_message::info (string& msgbuf, const char* fmt) const throw()
+{
+ if (!fmt) fmt = "%s: %s";
+ USTL_TRY { msgbuf.format (fmt, name(), m_Arg.cdata()); } USTL_CATCH_ALL
+}
+
+/// Reads the object from stream \p is.
+void error_message::read (istream& is)
+{
+ exception::read (is);
+ is >> m_Arg >> ios::align();
+}
+
+/// Writes the object to stream \p os.
+void error_message::write (ostream& os) const
+{
+ exception::write (os);
+ os << m_Arg << ios::align();
+}
+
+/// Returns the size of the written object.
+size_t error_message::stream_size (void) const
+{
+ return (exception::stream_size() + Align (stream_size_of (m_Arg)));
+}
+
+} // namespace ustl
diff --git a/ecos/packages/language/cxx/ustl/current/src/ustlecos.cpp b/ecos/packages/language/cxx/ustl/current/src/ustlecos.cpp
new file mode 100644
index 0000000..9f711fa
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/src/ustlecos.cpp
@@ -0,0 +1,115 @@
+// ==========================================================================
+//
+// ustlecos.cpp
+//
+// eCos specific implementations and additions to uSTL library
+//
+// ===========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2009 Free Software Foundation, Inc.
+//
+// eCos is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 or (at your option) any later
+// version.
+//
+// eCos 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 General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with eCos; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+// As a special exception, if other files instantiate templates or use
+// macros or inline functions from this file, or you compile this file
+// and link it with other works to produce a work based on this file,
+// this file does not by itself cause the resulting work to be covered by
+// the GNU General Public License. However the source code for this file
+// must still be made available in accordance with section (3) of the GNU
+// General Public License v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+// ===========================================================================
+// ===========================================================================
+// #####DESCRIPTIONBEGIN####
+//
+// Author(s): Uwe Kindler
+// Contributors:
+// Date: 2009-07-28
+// Purpose: eCos specific additions to uSTL library
+// Description:
+//
+// ####DESCRIPTIONEND####
+//
+// ========================================================================*/
+#include <cyg/infra/diag.h>
+#include <cyg/infra/cyg_trac.h>
+#include <ustl.h>
+#include <config.h>
+#include <ustlecos.h>
+
+// if exceptions are disabled provide a low level and lightweight
+// "exception handler"
+#ifndef __EXCEPTIONS
+namespace ustl
+{
+
+// global application specific exception handler
+static app_exception_handler_t app_exception_handler = 0;
+
+
+// allow an eCos application to register its own ustl exception handler
+void set_app_exception_handler(app_exception_handler_t func)
+{
+ //app_exception_handler = func;
+}
+
+
+// print ustl exception to diagnostic output channel
+void diag_print_exception(const exception& ex)
+{
+ string exstr(64);
+ ex.info(exstr);
+
+ string failstr = "Exception: ";
+ failstr += ex.what();
+ failstr += "\n";
+ failstr += exstr;
+ failstr += "\n";
+
+ diag_printf(failstr.c_str());
+}
+
+
+// normally eCos is build with -fno-rtti and -fno-exceptions and does not
+// provide C++ exception handling. To detect exceptions in debug builds this
+// exception handler prints all exception information to diagnostic channel
+// If application registerd an exception handler then exception handling will
+// be passed to application exception handler
+void exception_handler(const exception& ex)
+{
+ if (app_exception_handler)
+ {
+ app_exception_handler(ex);
+ }
+ else
+ {
+ diag_print_exception(ex);
+#ifdef CYGDBG_USE_ASSERTS
+ CYG_FAIL("uSTL exception occured");
+#endif
+ }
+}
+
+} // namespace ustl
+#endif // #ifndef __EXCEPTIONS
+// ---------------------------------------------------------------------------
+// EOF ustlecos.cpp
+
diff --git a/ecos/packages/language/cxx/ustl/current/src/ustring.cpp b/ecos/packages/language/cxx/ustl/current/src/ustring.cpp
new file mode 100644
index 0000000..fcfaea8
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/src/ustring.cpp
@@ -0,0 +1,395 @@
+// This file is part of the uSTL library, an STL implementation.
+//
+// Copyright (c) 2005 by Mike Sharov <msharov@users.sourceforge.net>
+// This file is free software, distributed under the MIT License.
+
+#include "ustring.h"
+#include "mistream.h"
+#include "mostream.h"
+#include "ualgo.h"
+#include <stdio.h> // for vsnprintf (in string::format)
+
+namespace ustl {
+
+//----------------------------------------------------------------------
+
+const uoff_t string::npos;
+
+//----------------------------------------------------------------------
+
+/// Assigns itself the value of string \p s
+string::string (const string& s)
+: memblock ((s.size()+1) & (s.is_linked()-1)) // Allocate with terminator if not linked (can't call virtuals from base ctor)
+{
+ if (s.is_linked())
+ relink (s.c_str(), s.size());
+ else {
+ copy_n (s.begin(), size(), begin());
+ relink (begin(), size()-1); // --m_Size
+ }
+}
+
+/// Links to \p s
+string::string (const_pointer s)
+: memblock ()
+{
+ if (!s) s = "";
+ relink (s, strlen(s));
+}
+
+/// Creates a string of length \p n filled with character \p c.
+string::string (size_type n, value_type c)
+: memblock (n+1) // because base ctor can't call virtuals of this class
+{
+ relink (begin(), size()-1); // --m_Size
+ fill_n (begin(), n, c);
+ at(n) = 0;
+}
+
+/// Resize the string to \p n characters. New space contents is undefined.
+void string::resize (size_type n)
+{
+ if (!(n | memblock::capacity()))
+ return (relink ("",0));
+ memblock::resize (n);
+ at(n) = 0;
+}
+
+/// Assigns itself the value of string \p s
+void string::assign (const_pointer s)
+{
+ if (!s) s = "";
+ assign (s, strlen (s));
+}
+
+/// Assigns itself the value of string \p s of length \p len.
+void string::assign (const_pointer s, size_type len)
+{
+ while (len && s[len - 1] == 0)
+ -- len;
+ resize (len);
+ copy_n (s, len, begin());
+}
+
+/// Appends to itself the value of string \p s of length \p len.
+void string::append (const_pointer s)
+{
+ if (!s) s = "";
+ append (s, strlen (s));
+}
+
+/// Appends to itself the value of string \p s of length \p len.
+void string::append (const_pointer s, size_type len)
+{
+ while (len && s[len - 1] == 0)
+ -- len;
+ resize (size() + len);
+ copy_n (s, len, end() - len);
+}
+
+/// Appends to itself \p n characters of value \p c.
+void string::append (size_type n, value_type c)
+{
+ resize (size() + n);
+ fill_n (end() - n, n, c);
+}
+
+/// Copies into itself at offset \p start, the value of string \p p of length \p n.
+string::size_type string::copyto (pointer p, size_type n, const_iterator start) const
+{
+ assert (p && n);
+ if (!start)
+ start = begin();
+ const size_type btc = min(n-1, size());
+ copy_n (start, btc, p);
+ p[btc] = 0;
+ return (btc+1);
+}
+
+/// Returns comparison value regarding string \p s.
+/// The return value is:
+/// \li 1 if this string is greater (by value, not length) than string \p s
+/// \li 0 if this string is equal to string \p s
+/// \li -1 if this string is less than string \p s
+///
+/*static*/ int string::compare (const_iterator first1, const_iterator last1, const_iterator first2, const_iterator last2)
+{
+ assert (first1 <= last1 && (first2 <= last2 || !last2) && "Negative ranges result in memory allocation errors.");
+ const size_type len1 = distance (first1, last1), len2 = distance (first2, last2);
+ const int rvbylen = sign (int(len1 - len2));
+ int rv = memcmp (first1, first2, min (len1, len2));
+ return (rv ? rv : rvbylen);
+}
+
+/// Returns true if this string is equal to string \p s.
+bool string::operator== (const_pointer s) const
+{
+ if (!s) s = "";
+ return (size() == strlen(s) && 0 == memcmp (c_str(), s, size()));
+}
+
+/// Returns the beginning of character \p i.
+string::const_iterator string::wiat (uoff_t i) const
+{
+ utf8in_iterator<string::const_iterator> cfinder (begin());
+ cfinder += i;
+ return (cfinder.base());
+}
+
+/// Inserts wide character \p c at \p ipo \p n times as a UTF-8 string.
+///
+/// \p ipo is a byte position, not a character position, and is intended
+/// to be obtained from one of the find functions. Generally you are not
+/// able to know the character position in a localized string; different
+/// languages will have different character counts, so use find instead.
+///
+void string::insert (const uoff_t ipo, wchar_t c, size_type n)
+{
+ iterator ip (iat(ipo));
+ ip = iterator (memblock::insert (memblock::iterator(ip), n * Utf8Bytes(c)));
+ fill_n (utf8out (ip), n, c);
+ *end() = 0;
+}
+
+/// Inserts sequence of wide characters at \p ipo (byte position from a find call)
+void string::insert (const uoff_t ipo, const wchar_t* first, const wchar_t* last, const size_type n)
+{
+ iterator ip (iat(ipo));
+ size_type nti = distance (first, last), bti = 0;
+ for (uoff_t i = 0; i < nti; ++ i)
+ bti += Utf8Bytes(first[i]);
+ ip = iterator (memblock::insert (memblock::iterator(ip), n * bti));
+ utf8out_iterator<string::iterator> uout (utf8out (ip));
+ for (uoff_t j = 0; j < n; ++ j)
+ for (uoff_t k = 0; k < nti; ++ k, ++ uout)
+ *uout = first[k];
+ *end() = 0;
+}
+
+/// Inserts character \p c into this string at \p start.
+string::iterator string::insert (iterator start, const_reference c, size_type n)
+{
+ start = iterator (memblock::insert (memblock::iterator(start), n));
+ fill_n (start, n, c);
+ *end() = 0;
+ return (start);
+}
+
+/// Inserts \p count instances of string \p s at offset \p start.
+string::iterator string::insert (iterator start, const_pointer s, size_type n)
+{
+ if (!s) s = "";
+ return (insert (start, s, s + strlen(s), n));
+}
+
+/// Inserts [first,last] \p n times.
+string::iterator string::insert (iterator start, const_pointer first, const_pointer last, size_type n)
+{
+ assert (first <= last);
+ assert (begin() <= start && end() >= start);
+ assert ((first < begin() || first >= end() || size() + abs_distance(first,last) < capacity()) && "Insertion of self with autoresize is not supported");
+ start = iterator (memblock::insert (memblock::iterator(start), distance(first, last) * n));
+ fill (memblock::iterator(start), first, distance(first, last), n);
+ *end() = 0;
+ return (start);
+}
+
+/// Erases \p size bytes at \p ep.
+string::iterator string::erase (iterator ep, size_type n)
+{
+ string::iterator rv = memblock::erase (memblock::iterator(ep), n);
+ *end() = 0;
+ return (rv);
+}
+
+/// Erases \p n bytes at byte offset \p epo.
+void string::erase (uoff_t epo, size_type n)
+{
+ erase (iat(epo), n);
+}
+
+/// Replaces range [\p start, \p start + \p len] with string \p s.
+void string::replace (iterator first, iterator last, const_pointer s)
+{
+ if (!s) s = "";
+ replace (first, last, s, s + strlen(s));
+}
+
+/// Replaces range [\p start, \p start + \p len] with \p count instances of string \p s.
+void string::replace (iterator first, iterator last, const_pointer i1, const_pointer i2, size_type n)
+{
+ assert (first <= last);
+ assert (n || distance(first, last));
+ assert (first >= begin() && first <= end() && last >= first && last <= end());
+ assert ((i1 < begin() || i1 >= end() || abs_distance(i1,i2) * n + size() < capacity()) && "Replacement by self can not autoresize");
+ const size_type bte = distance(first, last), bti = distance(i1, i2) * n;
+ if (bti < bte)
+ first = iterator (memblock::erase (memblock::iterator(first), bte - bti));
+ else if (bte < bti)
+ first = iterator (memblock::insert (memblock::iterator(first), bti - bte));
+ fill (memblock::iterator(first), i1, distance(i1, i2), n);
+ *end() = 0;
+}
+
+/// Returns the offset of the first occurence of \p c after \p pos.
+uoff_t string::find (const_reference c, uoff_t pos) const
+{
+ const_iterator found = ::ustl::find (iat(pos), end(), c);
+ return (found < end() ? (uoff_t) distance(begin(),found) : npos);
+}
+
+/// Returns the offset of the first occurence of substring \p s of length \p n after \p pos.
+uoff_t string::find (const string& s, uoff_t pos) const
+{
+ if (s.empty() || s.size() > size() - pos)
+ return (npos);
+ const uoff_t endi = s.size() - 1;
+ const_reference endchar = s[endi];
+ uoff_t lastPos = endi;
+ while (lastPos-- && s[lastPos] != endchar) ;
+ const size_type skip = endi - lastPos;
+ const_iterator i = iat(pos) + endi;
+ for (; i < end() && (i = ::ustl::find (i, end(), endchar)) < end(); i += skip)
+ if (memcmp (i - endi, s.c_str(), s.size()) == 0)
+ return (distance (begin(), i) - endi);
+ return (npos);
+}
+
+/// Returns the offset of the last occurence of character \p c before \p pos.
+uoff_t string::rfind (const_reference c, uoff_t pos) const
+{
+ for (int i = min(pos,size()-1); i >= 0; --i)
+ if (at(i) == c)
+ return (i);
+ return (npos);
+}
+
+/// Returns the offset of the last occurence of substring \p s of size \p n before \p pos.
+uoff_t string::rfind (const string& s, uoff_t pos) const
+{
+ const_iterator d = iat(pos) - 1;
+ const_iterator sp = begin() + s.size() - 1;
+ const_iterator m = s.end() - 1;
+ for (long int i = 0; d > sp && size_type(i) < s.size(); -- d)
+ for (i = 0; size_type(i) < s.size(); ++ i)
+ if (m[-i] != d[-i])
+ break;
+ return (d > sp ? (uoff_t) distance (begin(), d + 2 - s.size()) : npos);
+}
+
+/// Returns the offset of the first occurence of one of characters in \p s of size \p n after \p pos.
+uoff_t string::find_first_of (const string& s, uoff_t pos) const
+{
+ for (uoff_t i = min(pos,size()); i < size(); ++ i)
+ if (s.find (at(i)) != npos)
+ return (i);
+ return (npos);
+}
+
+/// Returns the offset of the first occurence of one of characters not in \p s of size \p n after \p pos.
+uoff_t string::find_first_not_of (const string& s, uoff_t pos) const
+{
+ for (uoff_t i = min(pos,size()); i < size(); ++ i)
+ if (s.find (at(i)) == npos)
+ return (i);
+ return (npos);
+}
+
+/// Returns the offset of the last occurence of one of characters in \p s of size \p n before \p pos.
+uoff_t string::find_last_of (const string& s, uoff_t pos) const
+{
+ for (int i = min(pos,size()-1); i >= 0; -- i)
+ if (s.find (at(i)) != npos)
+ return (i);
+ return (npos);
+}
+
+/// Returns the offset of the last occurence of one of characters not in \p s of size \p n before \p pos.
+uoff_t string::find_last_not_of (const string& s, uoff_t pos) const
+{
+ for (int i = min(pos,size()-1); i >= 0; -- i)
+ if (s.find (at(i)) == npos)
+ return (i);
+ return (npos);
+}
+
+/// Equivalent to a vsprintf on the string.
+int string::vformat (const char* fmt, va_list args)
+{
+#if HAVE_VA_COPY
+ va_list args2;
+#else
+ #define args2 args
+ #undef __va_copy
+ #define __va_copy(x,y)
+#endif
+ size_t rv = size();
+ do {
+ reserve (rv);
+ __va_copy (args2, args);
+ rv = vsnprintf (data(), memblock::capacity(), fmt, args2);
+ rv = min (rv, memblock::capacity());
+ } while (rv > capacity());
+ resize (min (rv, capacity()));
+ return (rv);
+}
+
+/// Equivalent to a sprintf on the string.
+int string::format (const char* fmt, ...)
+{
+ va_list args;
+ va_start (args, fmt);
+ const int rv = vformat (fmt, args);
+ va_end (args);
+ return (rv);
+}
+
+/// Returns the number of bytes required to write this object to a stream.
+size_t string::stream_size (void) const
+{
+ return (Utf8Bytes(size()) + size());
+}
+
+/// Reads the object from stream \p os
+void string::read (istream& is)
+{
+ char szbuf [8];
+ is >> szbuf[0];
+ size_t szsz (Utf8SequenceBytes (szbuf[0]) - 1), n = 0;
+ if (!is.verify_remaining ("read", "ustl::string", szsz)) return;
+ is.read (szbuf + 1, szsz);
+ n = *utf8in(szbuf);
+ if (!is.verify_remaining ("read", "ustl::string", n)) return;
+ resize (n);
+ is.read (data(), size());
+}
+
+/// Writes the object to stream \p os
+void string::write (ostream& os) const
+{
+ const written_size_type sz (size());
+ assert (sz == size() && "No support for writing strings larger than 4G");
+
+ char szbuf [8];
+ utf8out_iterator<char*> szout (szbuf);
+ *szout = sz;
+ size_t szsz = distance (szbuf, szout.base());
+
+ if (!os.verify_remaining ("write", "ustl::string", szsz + sz)) return;
+ os.write (szbuf, szsz);
+ os.write (cdata(), sz);
+}
+
+/// Returns a hash value for [first, last)
+/*static*/ hashvalue_t string::hash (const char* first, const char* last)
+{
+ hashvalue_t h = 0;
+ // This has the bits flowing into each other from both sides of the number
+ for (; first < last; ++ first)
+ h = *first + ((h << 7) | (h >> (BitsInType(hashvalue_t) - 7)));
+ return (h);
+}
+
+string::size_type string::minimumFreeCapacity (void) const throw() { return (1); }
+
+} // namespace ustl
diff --git a/ecos/packages/language/cxx/ustl/current/tests/README b/ecos/packages/language/cxx/ustl/current/tests/README
new file mode 100644
index 0000000..6053c15
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/tests/README
@@ -0,0 +1 @@
+The *.std files contain the output that should be generated by each test. \ No newline at end of file
diff --git a/ecos/packages/language/cxx/ustl/current/tests/bvt00.cpp b/ecos/packages/language/cxx/ustl/current/tests/bvt00.cpp
new file mode 100644
index 0000000..97421d6
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/tests/bvt00.cpp
@@ -0,0 +1,46 @@
+// This file is part of the uSTL library, an STL implementation.
+//
+// Copyright (c) 2005 by Mike Sharov <msharov@users.sourceforge.net>
+// This file is free software, distributed under the MIT License.
+
+#include "stdtest.h"
+
+void WriteCML (const cmemlink& l)
+{
+ cout.format ("cmemlink{%zu}: ", l.size());
+ const void* pv = l.cdata();
+ const char* pc = reinterpret_cast<const char*>(pv);
+ size_t nc = l.size();
+ if (pc[nc - 1] == 0)
+ -- nc;
+ cout.write (l.begin(), nc);
+ cout << endl;
+}
+
+void TestCML (void)
+{
+ const char hello[] = "Hello world!";
+ const char* phello = hello; // const storage is sometimes copied on pointing
+
+ cmemlink a, b;
+ a.link (phello, VectorSize(hello));
+ if (a.begin() != phello)
+ cout.format ("a.begin() failed: %p != %p\n", a.begin(), phello);
+ a.link (VectorRange (hello));
+ if (*(const char*)(a.begin() + 5) != hello[5])
+ cout.format ("begin()[5] failed: %c != %c\n", *(const char*)(a.begin() + 5), VectorElement(hello,5));
+ if (a.size() != VectorSize(hello))
+ cout << "link to VectorRange doesn't work\n";
+ if (0 != memcmp (a.begin(), hello, VectorSize(hello)))
+ cout << "memcmp failed on cmemlink\n";
+ b.static_link (hello);
+ WriteCML (a);
+ WriteCML (b);
+ if (!(a == b))
+ cout << "operator== failed on cmemlink\n";
+ b.resize (VectorSize(hello) - 5);
+ a = b;
+ WriteCML (a);
+}
+
+StdBvtMain (TestCML)
diff --git a/ecos/packages/language/cxx/ustl/current/tests/bvt00.std b/ecos/packages/language/cxx/ustl/current/tests/bvt00.std
new file mode 100644
index 0000000..79bc80b
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/tests/bvt00.std
@@ -0,0 +1,3 @@
+cmemlink{13}: Hello world!
+cmemlink{13}: Hello world!
+cmemlink{8}: Hello wo
diff --git a/ecos/packages/language/cxx/ustl/current/tests/bvt01.cpp b/ecos/packages/language/cxx/ustl/current/tests/bvt01.cpp
new file mode 100644
index 0000000..beeef97
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/tests/bvt01.cpp
@@ -0,0 +1,60 @@
+// This file is part of the uSTL library, an STL implementation.
+//
+// Copyright (c) 2005 by Mike Sharov <msharov@users.sourceforge.net>
+// This file is free software, distributed under the MIT License.
+
+#include "stdtest.h"
+
+void WriteCML (const cmemlink& l)
+{
+ cout.format ("memlink{%zu}: ", l.size());
+ const char* pc = reinterpret_cast<const char*>(l.cdata());
+ size_t nc = l.size();
+ if (pc[nc - 1] == 0)
+ -- nc;
+ cout.write (l.cdata(), nc);
+ cout << endl;
+}
+
+void TestML (void)
+{
+ char str[] = "abcdefghijklmnopqrstuvwzyz";
+ memlink::const_pointer cstr = str;
+
+ memlink a, b;
+ a.static_link (str);
+ if (a.begin() != str)
+ cout << "begin() failed on memlink\n";
+ a.link (VectorRange(str));
+ if (a.begin() + 5 != &str[5])
+ cout << "begin() + 5 failed on memlink\n";
+ if (0 != memcmp (a.begin(), str, VectorSize(str)))
+ cout << "memcmp failed on memlink\n";
+ WriteCML (a);
+ b.link (cstr, VectorSize(str));
+ if (b.data() != cstr)
+ cout << "begin() of const failed on cmemlink\n";
+ if (b.cmemlink::begin() != cstr)
+ cout << "begin() failed on cmemlink\n";
+ WriteCML (b);
+ if (!(a == b))
+ cout << "operator== failed on cmemlink\n";
+ b.resize (VectorSize(str) - 2);
+ a = b;
+ if (a.data() != b.data())
+ cout << "begin() after assignment failed on cmemlink\n";
+ a.relink (str, VectorSize(str) - 1);
+ WriteCML (a);
+ a.insert (a.begin() + 5, 9);
+ a.fill (a.begin() + 5, "-", 1, 9);
+ WriteCML (a);
+ a.erase (a.begin() + 9, 7);
+ a.fill (a.end() - 7, "=", 1, 7);
+ WriteCML (a);
+ a.fill (a.begin() + 5, "TEST", 4, 3);
+ WriteCML (a);
+ copy_n (cstr, VectorSize(str) - 1, a.begin());
+ WriteCML (a);
+}
+
+StdBvtMain (TestML)
diff --git a/ecos/packages/language/cxx/ustl/current/tests/bvt01.std b/ecos/packages/language/cxx/ustl/current/tests/bvt01.std
new file mode 100644
index 0000000..f764082
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/tests/bvt01.std
@@ -0,0 +1,7 @@
+memlink{27}: abcdefghijklmnopqrstuvwzyz
+memlink{27}: abcdefghijklmnopqrstuvwzyz
+memlink{26}: abcdefghijklmnopqrstuvwzyz
+memlink{26}: abcde---------fghijklmnopq
+memlink{26}: abcde----hijklmnopq=======
+memlink{26}: abcdeTESTTESTTESTpq=======
+memlink{26}: abcdeTESTTESTTESTpq=======
diff --git a/ecos/packages/language/cxx/ustl/current/tests/bvt02.cpp b/ecos/packages/language/cxx/ustl/current/tests/bvt02.cpp
new file mode 100644
index 0000000..fe7cf0e
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/tests/bvt02.cpp
@@ -0,0 +1,72 @@
+// This file is part of the uSTL library, an STL implementation.
+//
+// Copyright (c) 2005 by Mike Sharov <msharov@users.sourceforge.net>
+// This file is free software, distributed under the MIT License.
+
+#include "stdtest.h"
+
+void WriteCML (const memblock& l)
+{
+ cout.format ("memblock{%zu}: ", l.size());
+ const char* pc = reinterpret_cast<const char*>(l.cdata());
+ size_t nc = l.size();
+ while (nc && pc[nc - 1] == 0)
+ -- nc;
+ cout.write (l.cdata(), nc);
+ cout << endl;
+}
+
+void TestMB (void)
+{
+ char strTest[] = "abcdefghijklmnopqrstuvwxyz";
+ const size_t strTestLen = strlen(strTest);
+ const char* cstrTest = strTest;
+
+ memblock a, b;
+ a.link (strTest, strTestLen);
+ if (a.begin() != strTest)
+ cout << "begin() failed on memblock\n";
+ if (a.begin() + 5 != &strTest[5])
+ cout << "begin() + 5 failed on memblock\n";
+ if (0 != memcmp (a.begin(), strTest, strTestLen))
+ cout << "memcmp failed on memblock\n";
+ WriteCML (a);
+ b.link (cstrTest, strTestLen);
+ if (b.data() != cstrTest)
+ cout << "begin() of const failed on memblock\n";
+ if (b.cmemlink::begin() != cstrTest)
+ cout << "cmemlink::begin() failed on memblock\n";
+ WriteCML (b);
+ if (!(a == b))
+ cout << "operator== failed on memblock\n";
+ b.copy_link();
+ if (b.data() == NULL || b.cdata() == cstrTest)
+ cout << "copy_link failed on memblock\n";
+ if (!(a == b))
+ cout << "copy_link didn't copy\n";
+ b.resize (strTestLen - 2);
+ a = b;
+ if (a.begin() == b.begin())
+ cout << "Assignment does not copy a link\n";
+ a.deallocate();
+ a.assign (strTest, strTestLen);
+ WriteCML (a);
+ a.insert (a.begin() + 5, 9);
+ a.fill (a.begin() + 5, "-", 1, 9);
+ WriteCML (a);
+ a.erase (a.begin() + 2, 7);
+ a.fill (a.end() - 7, "=", 1, 7);
+ WriteCML (a);
+ a.fill (a.begin() + 5, "TEST", 4, 3);
+ WriteCML (a);
+
+ a.resize (26 + 24);
+ a.fill (a.begin() + 26, "-+=", 3, 24 / 3);
+ WriteCML (a);
+ a.resize (0);
+ WriteCML (a);
+ a.resize (strTestLen + strTestLen / 2);
+ WriteCML (a);
+}
+
+StdBvtMain (TestMB)
diff --git a/ecos/packages/language/cxx/ustl/current/tests/bvt02.std b/ecos/packages/language/cxx/ustl/current/tests/bvt02.std
new file mode 100644
index 0000000..0e5ce73
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/tests/bvt02.std
@@ -0,0 +1,9 @@
+memblock{26}: abcdefghijklmnopqrstuvwxyz
+memblock{26}: abcdefghijklmnopqrstuvwxyz
+memblock{26}: abcdefghijklmnopqrstuvwxyz
+memblock{35}: abcde---------fghijklmnopqrstuvwxyz
+memblock{28}: ab-----fghijklmnopqrs=======
+memblock{28}: ab---TESTTESTTESTpqrs=======
+memblock{50}: ab---TESTTESTTESTpqrs=====-+=-+=-+=-+=-+=-+=-+=-+=
+memblock{0}:
+memblock{39}: ab---TESTTESTTESTpqrs=====-+=-+=-+=-+=-
diff --git a/ecos/packages/language/cxx/ustl/current/tests/bvt03.cpp b/ecos/packages/language/cxx/ustl/current/tests/bvt03.cpp
new file mode 100644
index 0000000..3e60c7b
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/tests/bvt03.cpp
@@ -0,0 +1,117 @@
+// This file is part of the uSTL library, an STL implementation.
+//
+// Copyright (c) 2005 by Mike Sharov <msharov@users.sourceforge.net>
+// This file is free software, distributed under the MIT License.
+
+#include "stdtest.h"
+#include <unistd.h>
+
+void TestStreams (void)
+{
+ const uint8_t magic_Char = 0x12;
+ const uint16_t magic_Short = 0x1234;
+ const uint32_t magic_Int = 0x12345678;
+ const float magic_Float = 0.12345678;
+ const double magic_Double = 0.123456789123456789;
+ const bool magic_Bool = true;
+
+ char c = magic_Char;
+ unsigned char uc = magic_Char;
+ int i = magic_Int;
+ short si = magic_Short;
+ long li = magic_Int;
+ unsigned int ui = magic_Int;
+ unsigned short usi = magic_Short;
+ unsigned long uli = magic_Int;
+ float f = magic_Float;
+ double d = magic_Double;
+ bool bv = magic_Bool;
+
+ size_t totalSize = stream_size_of(c);
+ totalSize += stream_size_of(uc);
+ totalSize = Align (totalSize, stream_align_of(bv));
+ totalSize += stream_size_of(bv);
+ totalSize = Align (totalSize, stream_align_of(i));
+ totalSize += stream_size_of(i);
+ totalSize += stream_size_of(ui);
+ totalSize = Align (totalSize);
+ totalSize += stream_size_of(li);
+ totalSize += stream_size_of(uli);
+ totalSize = Align (totalSize, stream_align_of(f));
+ totalSize += stream_size_of(f);
+ totalSize = Align (totalSize, stream_align_of(d));
+ totalSize += stream_size_of(d);
+ totalSize += stream_size_of(si);
+ totalSize += stream_size_of(usi);
+
+ memblock b;
+ b.resize (totalSize);
+ b.fill (b.begin(), "\xCD", 1, b.size());
+ ostream os (b);
+
+ os << c;
+ os << uc;
+ os << ios::talign<bool>() << bv;
+ os << ios::talign<int>() << i;
+ os << ui;
+ os << ios::align() << li;
+ os << uli;
+ os << ios::talign<float>() << f;
+ os << ios::talign<double>() << d;
+ os << si;
+ os << usi;
+ if (b.size() == os.pos())
+ cout << "Correct number of bytes written\n";
+ else
+ cout.format ("Incorrect (%zu of %zu) number of bytes written\n", os.pos(), b.size());
+ cout.flush();
+
+ c = 0;
+ uc = 0;
+ bv = false;
+ i = ui = li = uli = 0;
+ f = 0; d = 0;
+ si = usi = 0;
+
+ istream is (b);
+ is >> c;
+ is >> uc;
+ is >> ios::talign<bool>() >> bv;
+ is >> ios::talign<int>() >> i;
+ is >> ui;
+ is >> ios::align() >> li;
+ is >> uli;
+ is >> ios::talign<float>() >> f;
+ is >> ios::talign<double>() >> d;
+ is >> si;
+ is >> usi;
+ if (is.pos() != b.size())
+ cout << "Positional error\n";
+
+ cout.format ("Values:\n"
+ "char: 0x%02X\n"
+ "u_char: 0x%02X\n"
+ "bool: %d\n"
+ "int: 0x%08X\n"
+ "u_int: 0x%08X\n"
+ "long: 0x%08lX\n"
+ "u_long: 0x%08lX\n"
+ "float: %.8f\n"
+ "double: %.16f\n"
+ "short: 0x%04X\n"
+ "u_short: 0x%04X\n",
+ static_cast<int>(c), static_cast<int>(uc), static_cast<int>(bv),
+ i, ui, li, uli, f, d, static_cast<int>(si), static_cast<int>(usi));
+
+ if (isatty (STDIN_FILENO)) {
+ cout << "\nBinary dump:\n";
+ foreach (memblock::const_iterator, pc, b) {
+ if (pc > b.begin() && !(distance(b.begin(), pc) % 8))
+ cout << endl;
+ cout.format ("%02X ", uint8_t(*pc));
+ }
+ cout << endl;
+ }
+}
+
+StdBvtMain (TestStreams)
diff --git a/ecos/packages/language/cxx/ustl/current/tests/bvt03.std b/ecos/packages/language/cxx/ustl/current/tests/bvt03.std
new file mode 100644
index 0000000..dced2ca
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/tests/bvt03.std
@@ -0,0 +1,13 @@
+Correct number of bytes written
+Values:
+char: 0x12
+u_char: 0x12
+bool: 1
+int: 0x12345678
+u_int: 0x12345678
+long: 0x12345678
+u_long: 0x12345678
+float: 0.12345678
+double: 0.1234567891234568
+short: 0x1234
+u_short: 0x1234
diff --git a/ecos/packages/language/cxx/ustl/current/tests/bvt04.cpp b/ecos/packages/language/cxx/ustl/current/tests/bvt04.cpp
new file mode 100644
index 0000000..f64ca70
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/tests/bvt04.cpp
@@ -0,0 +1,68 @@
+// This file is part of the uSTL library, an STL implementation.
+//
+// Copyright (c) 2005 by Mike Sharov <msharov@users.sourceforge.net>
+// This file is free software, distributed under the MIT License.
+
+#include "stdtest.h"
+
+class A {
+public:
+ A (void)
+ { cout << "A::A\n"; }
+ A (const A&)
+ { cout << "Copy A::A\n"; }
+ const A& operator= (const A&)
+ { cout << "A::operator=\n"; return (*this); }
+ ~A (void)
+ { cout << "A::~A\n"; }
+};
+
+void TestVector (void)
+{
+ static const int c_TestNumbers[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 13, 14, 15, 16, 17, 18 };
+ vector<int> v;
+ v.push_back (1);
+ cout << v << endl;
+ v.reserve (20);
+ cout.format ("Reserved to capacity() == %zu (%zu used, ", v.capacity(), v.size());
+ if (v.max_size() == SIZE_MAX / sizeof(int))
+ cout << "SIZE_MAX/elsize";
+ else
+ cout << v.max_size();
+ cout << " max)\n";
+ v.insert (v.begin() + 1, 1 + VectorRange(c_TestNumbers));
+ cout << v << endl;
+ cout.format ("front() = %d, back() = %d\n", v.front(), v.back());
+ v.erase (v.begin());
+ v.pop_back();
+ cout << v << endl;
+ v.insert (v.begin() + 10, 3, 666);
+ v.at(5) = 777;
+ cout << v << endl;
+ v.resize (v.size() - 5);
+ if (v.empty())
+ cout << "v is now empty\n";
+ cout << v << endl;
+ cout.format ("v[5] == %d\n", v[5]);
+ v.clear();
+ if (v.empty())
+ cout << "v is now empty\n";
+ vector<int> v2 (20, 66);
+ cout << v2 << endl;
+ v2.assign (20, 33);
+ cout << v2 << endl;
+ v.assign (VectorRange (c_TestNumbers));
+ cout << v << endl;
+ if (v == v2)
+ cout << "v == v2\n";
+ v2 = v;
+ if (v == v2)
+ cout << "v == v2\n";
+ vector<A> ctv;
+ A a;
+ ctv.assign (3, a);
+ ctv.pop_back();
+ cout << "Class insertion testing successful\n";
+}
+
+StdBvtMain (TestVector)
diff --git a/ecos/packages/language/cxx/ustl/current/tests/bvt04.std b/ecos/packages/language/cxx/ustl/current/tests/bvt04.std
new file mode 100644
index 0000000..ee3293f
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/tests/bvt04.std
@@ -0,0 +1,25 @@
+(1)
+Reserved to capacity() == 20 (1 used, SIZE_MAX/elsize max)
+(1,2,3,4,5,6,7,8,9,10,11,12,13,13,14,15,16,17,18)
+front() = 1, back() = 18
+(2,3,4,5,6,7,8,9,10,11,12,13,13,14,15,16,17)
+(2,3,4,5,6,777,8,9,10,11,666,666,666,12,13,13,14,15,16,17)
+(2,3,4,5,6,777,8,9,10,11,666,666,666,12,13)
+v[5] == 777
+v is now empty
+(66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66)
+(33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33)
+(1,2,3,4,5,6,7,8,9,10,11,12,13,13,14,15,16,17,18)
+v == v2
+A::A
+A::A
+A::A
+A::A
+A::operator=
+A::operator=
+A::operator=
+Class insertion testing successful
+A::~A
+A::~A
+A::~A
+A::~A
diff --git a/ecos/packages/language/cxx/ustl/current/tests/bvt05.cpp b/ecos/packages/language/cxx/ustl/current/tests/bvt05.cpp
new file mode 100644
index 0000000..e56192e
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/tests/bvt05.cpp
@@ -0,0 +1,399 @@
+// This file is part of the uSTL library, an STL implementation.
+//
+// Copyright (c) 2005 by Mike Sharov <msharov@users.sourceforge.net>
+// This file is free software, distributed under the MIT License.
+
+#include "stdtest.h"
+
+typedef vector<int> intvec_t;
+typedef const intvec_t& rcintvec_t;
+typedef intvec_t::const_iterator intiter_t;
+
+static void printint (int i)
+{
+ cout.format ("%d ", i);
+}
+
+static void PrintVector (rcintvec_t v)
+{
+ cout << "{ ";
+ foreach (intiter_t, i, v)
+ printint (*i);
+ cout << "}\n";
+}
+
+static bool is_even (int i)
+{
+ return (i % 2 == 0);
+}
+
+static int sqr (int i)
+{
+ return (i * i);
+}
+
+static int genint (void)
+{
+ static int counter = 0;
+ return (counter++);
+}
+
+// In its own function because compilers differ in selecting const/nonconst
+// members where no choice is needed.
+//
+static void TestEqualRange (rcintvec_t v)
+{
+ pair<intiter_t,intiter_t> rv;
+ rv = equal_range (v, 10);
+ cout.format ("Range of 10 is { %2zd, %2zd }\n", abs_distance (v.begin(), rv.first), abs_distance (v.begin(), rv.second));
+ rv = equal_range (v, 0);
+ cout.format ("Range of 0 is { %2zd, %2zd }\n", abs_distance (v.begin(), rv.first), abs_distance (v.begin(), rv.second));
+ rv = equal_range (v, 100);
+ cout.format ("Range of 100 is { %2zd, %2zd }\n", abs_distance (v.begin(), rv.first), abs_distance (v.begin(), rv.second));
+}
+
+template <typename T>
+void TestBigFill (const size_t size, const T magic)
+{
+ vector<T> vbig (size);
+ fill (vbig.begin() + 1, vbig.end(), magic); // offset to test prealignment loop
+ typename vector<T>::const_iterator iMismatch;
+ iMismatch = find_if (vbig.begin() + 1, vbig.end(), bind1st (not_equal_to<T>(), magic));
+ if (iMismatch == vbig.end())
+ cout << "works\n";
+ else
+ cout.format ("does not work: mismatch at %zd, =0x%lX\n", abs_distance (vbig.begin(), iMismatch), (unsigned long)(*iMismatch));
+}
+
+template <typename T>
+void TestBigCopy (const size_t size, const T magic)
+{
+ vector<T> vbig1 (size), vbig2 (size);
+ fill (vbig1, magic);
+ copy (vbig1.begin() + 1, vbig1.end(), vbig2.begin() + 1); // offset to test prealignment loop
+ typedef typename vector<T>::const_iterator iter_t;
+ pair<iter_t, iter_t> iMismatch;
+ iMismatch = mismatch (vbig1.begin() + 1, vbig1.end(), vbig2.begin() + 1);
+ assert (iMismatch.second <= vbig2.end());
+ if (iMismatch.first == vbig1.end())
+ cout << "works\n";
+ else
+ cout.format ("does not work: mismatch at %zd, 0x%lX != 0x%lX\n", abs_distance(vbig1.begin(), iMismatch.first), (unsigned long)(*iMismatch.first), (unsigned long)(*iMismatch.second));
+}
+
+static void TestAlgorithms (void)
+{
+ static const int c_TestNumbers[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 10, 11, 12, 13, 13, 14, 15, 16, 17, 18 };
+ const int* first = c_TestNumbers;
+ const int* last = first + VectorSize(c_TestNumbers);
+ intvec_t v, buf;
+ v.assign (first, last);
+ PrintVector (v);
+
+ cout << "swap(1,2)\n";
+ swap (v[0], v[1]);
+ PrintVector (v);
+ v.assign (first, last);
+
+ cout << "copy(0,8,9)\n";
+ copy (v.begin(), v.begin() + 8, v.begin() + 9);
+ PrintVector (v);
+ v.assign (first, last);
+
+ cout << "copy with back_inserter\n";
+ v.clear();
+ copy (first, last, back_inserter(v));
+ PrintVector (v);
+ v.assign (first, last);
+
+ cout << "copy with inserter\n";
+ v.clear();
+ copy (first, first + 5, inserter(v, v.begin()));
+ copy (first, first + 5, inserter(v, v.begin() + 3));
+ PrintVector (v);
+ v.assign (first, last);
+
+ cout << "copy_n(0,8,9)\n";
+ copy_n (v.begin(), 8, v.begin() + 9);
+ PrintVector (v);
+ v.assign (first, last);
+
+ cout << "copy_if(is_even)\n";
+ intvec_t v_even;
+ copy_if (v, back_inserter(v_even), &is_even);
+ PrintVector (v_even);
+ v.assign (first, last);
+
+ cout << "for_each(printint)\n{ ";
+ for_each (v, &printint);
+ cout << "}\n";
+
+ cout << "for_each(reverse_iterator, printint)\n{ ";
+ for_each (v.rbegin(), v.rend(), &printint);
+ cout << "}\n";
+
+ cout << "find(10)\n";
+ cout.format ("10 found at offset %zd\n", abs_distance (v.begin(), find (v, 10)));
+
+ cout << "count(13)\n";
+ cout.format ("%zu values of 13, %zu values of 18\n", count(v,13), count(v,18));
+
+ cout << "transform(sqr)\n";
+ transform (v, &sqr);
+ PrintVector (v);
+ v.assign (first, last);
+
+ cout << "replace(13,666)\n";
+ replace (v, 13, 666);
+ PrintVector (v);
+ v.assign (first, last);
+
+ cout << "fill(13)\n";
+ fill (v, 13);
+ PrintVector (v);
+ v.assign (first, last);
+
+ cout << "fill_n(5, 13)\n";
+ fill_n (v.begin(), 5, 13);
+ PrintVector (v);
+ v.assign (first, last);
+
+ cout << "fill 3207 uint8_t(0x41) ";
+ TestBigFill<uint8_t> (3207, 0x41);
+ cout << "fill 3207 uint16_t(0x4142) ";
+ TestBigFill<uint16_t> (3207, 0x4142);
+ cout << "fill 3207 uint32_t(0x41424344) ";
+ TestBigFill<uint32_t> (3207, 0x41424344);
+ cout << "fill 3207 float(0.4242) ";
+ TestBigFill<float> (3207, 0x4242f);
+#if HAVE_INT64_T
+ cout << "fill 3207 uint64_t(0x4142434445464748) ";
+ TestBigFill<uint64_t> (3207, UINT64_C(0x4142434445464748));
+#else
+ cout << "No 64bit types available on this platform\n";
+#endif
+
+ cout << "copy 3207 uint8_t(0x41) ";
+ TestBigCopy<uint8_t> (3207, 0x41);
+ cout << "copy 3207 uint16_t(0x4142) ";
+ TestBigCopy<uint16_t> (3207, 0x4142);
+ cout << "copy 3207 uint32_t(0x41424344) ";
+ TestBigCopy<uint32_t> (3207, 0x41424344);
+ cout << "copy 3207 float(0.4242) ";
+ TestBigCopy<float> (3207, 0.4242f);
+#if HAVE_INT64_T
+ cout << "copy 3207 uint64_t(0x4142434445464748) ";
+ TestBigCopy<uint64_t> (3207, UINT64_C(0x4142434445464748));
+#else
+ cout << "No 64bit types available on this platform\n";
+#endif
+
+ cout << "generate(genint)\n";
+ generate (v, &genint);
+ PrintVector (v);
+ v.assign (first, last);
+
+ cout << "rotate(4)\n";
+ rotate (v, 7);
+ rotate (v, -3);
+ PrintVector (v);
+ v.assign (first, last);
+
+ cout << "merge with (3,5,10,11,11,14)\n";
+ const int c_MergeWith[] = { 3,5,10,11,11,14 };
+ intvec_t vmerged;
+ merge (v.begin(), v.end(), VectorRange(c_MergeWith), back_inserter(vmerged));
+ PrintVector (vmerged);
+ v.assign (first, last);
+
+ cout << "inplace_merge with (3,5,10,11,11,14)\n";
+ v.insert (v.end(), VectorRange(c_MergeWith));
+ inplace_merge (v.begin(), v.end() - VectorSize(c_MergeWith), v.end());
+ PrintVector (v);
+ v.assign (first, last);
+
+ cout << "remove(13)\n";
+ remove (v, 13);
+ PrintVector (v);
+ v.assign (first, last);
+
+ cout << "remove (elements 3, 4, 6, 15, and 45)\n";
+ vector<uoff_t> toRemove;
+ toRemove.push_back (3);
+ toRemove.push_back (4);
+ toRemove.push_back (6);
+ toRemove.push_back (15);
+ toRemove.push_back (45);
+ typedef index_iterate<intvec_t::iterator, vector<uoff_t>::iterator> riiter_t;
+ riiter_t rfirst = index_iterator (v.begin(), toRemove.begin());
+ riiter_t rlast = index_iterator (v.begin(), toRemove.end());
+ remove (v, rfirst, rlast);
+ PrintVector (v);
+ v.assign (first, last);
+
+ cout << "unique\n";
+ unique (v);
+ PrintVector (v);
+ v.assign (first, last);
+
+ cout << "reverse\n";
+ reverse (v);
+ PrintVector (v);
+ v.assign (first, last);
+
+ cout << "lower_bound(10)\n";
+ PrintVector (v);
+ cout.format ("10 begins at position %zd\n", abs_distance (v.begin(), lower_bound (v, 10)));
+ v.assign (first, last);
+
+ cout << "upper_bound(10)\n";
+ PrintVector (v);
+ cout.format ("10 ends at position %zd\n", abs_distance (v.begin(), upper_bound (v, 10)));
+ v.assign (first, last);
+
+ cout << "equal_range(10)\n";
+ PrintVector (v);
+ TestEqualRange (v);
+ v.assign (first, last);
+
+ cout << "sort\n";
+ reverse (v);
+ PrintVector (v);
+ random_shuffle (v);
+ sort (v);
+ PrintVector (v);
+ v.assign (first, last);
+
+ cout << "stable_sort\n";
+ reverse (v);
+ PrintVector (v);
+ random_shuffle (v);
+ stable_sort (v);
+ PrintVector (v);
+ v.assign (first, last);
+
+ cout << "is_sorted\n";
+ random_shuffle (v);
+ const bool bNotSorted = is_sorted (v.begin(), v.end());
+ sort (v);
+ const bool bSorted = is_sorted (v.begin(), v.end());
+ cout << "unsorted=" << bNotSorted << ", sorted=" << bSorted << endl;
+ v.assign (first, last);
+
+ cout << "find_first_of\n";
+ static const int c_FFO[] = { 10000, -34, 14, 27 };
+ cout.format ("found 14 at position %zd\n", abs_distance (v.begin(), find_first_of (v.begin(), v.end(), VectorRange(c_FFO))));
+ v.assign (first, last);
+
+ static const int LC1[] = { 3, 1, 4, 1, 5, 9, 3 };
+ static const int LC2[] = { 3, 1, 4, 2, 8, 5, 7 };
+ static const int LC3[] = { 1, 2, 3, 4 };
+ static const int LC4[] = { 1, 2, 3, 4, 5 };
+ cout << "lexicographical_compare";
+ cout << "\nLC1 < LC2 == " << lexicographical_compare (VectorRange(LC1), VectorRange(LC2));
+ cout << "\nLC2 < LC2 == " << lexicographical_compare (VectorRange(LC2), VectorRange(LC2));
+ cout << "\nLC3 < LC4 == " << lexicographical_compare (VectorRange(LC3), VectorRange(LC4));
+ cout << "\nLC4 < LC1 == " << lexicographical_compare (VectorRange(LC4), VectorRange(LC1));
+ cout << "\nLC1 < LC4 == " << lexicographical_compare (VectorRange(LC1), VectorRange(LC4));
+
+ cout << "\nmax_element\n";
+ cout.format ("max element is %d\n", *max_element (v.begin(), v.end()));
+ v.assign (first, last);
+
+ cout << "min_element\n";
+ cout.format ("min element is %d\n", *min_element (v.begin(), v.end()));
+ v.assign (first, last);
+
+ cout << "partial_sort\n";
+ reverse (v);
+ partial_sort (v.begin(), v.iat(v.size() / 2), v.end());
+ PrintVector (v);
+ v.assign (first, last);
+
+ cout << "partial_sort_copy\n";
+ reverse (v);
+ buf.resize (v.size());
+ partial_sort_copy (v.begin(), v.end(), buf.begin(), buf.end());
+ PrintVector (buf);
+ v.assign (first, last);
+
+ cout << "partition\n";
+ partition (v.begin(), v.end(), &is_even);
+ PrintVector (v);
+ v.assign (first, last);
+
+ cout << "stable_partition\n";
+ stable_partition (v.begin(), v.end(), &is_even);
+ PrintVector (v);
+ v.assign (first, last);
+
+ cout << "next_permutation\n";
+ buf.resize (3);
+ iota (buf.begin(), buf.end(), 1);
+ PrintVector (buf);
+ while (next_permutation (buf.begin(), buf.end()))
+ PrintVector (buf);
+ cout << "prev_permutation\n";
+ reverse (buf);
+ PrintVector (buf);
+ while (prev_permutation (buf.begin(), buf.end()))
+ PrintVector (buf);
+ v.assign (first, last);
+
+ cout << "reverse_copy\n";
+ buf.resize (v.size());
+ reverse_copy (v.begin(), v.end(), buf.begin());
+ PrintVector (buf);
+ v.assign (first, last);
+
+ cout << "rotate_copy\n";
+ buf.resize (v.size());
+ rotate_copy (v.begin(), v.iat (v.size() / 3), v.end(), buf.begin());
+ PrintVector (buf);
+ v.assign (first, last);
+
+ static const int c_Search1[] = { 5, 6, 7, 8, 9 }, c_Search2[] = { 10, 10, 11, 14 };
+ cout << "search\n";
+ cout.format ("{5,6,7,8,9} at %zd\n", abs_distance (v.begin(), search (v.begin(), v.end(), VectorRange(c_Search1))));
+ cout.format ("{10,10,11,14} at %zd\n", abs_distance (v.begin(), search (v.begin(), v.end(), VectorRange(c_Search2))));
+ cout << "find_end\n";
+ cout.format ("{5,6,7,8,9} at %zd\n", abs_distance (v.begin(), find_end (v.begin(), v.end(), VectorRange(c_Search1))));
+ cout.format ("{10,10,11,14} at %zd\n", abs_distance (v.begin(), find_end (v.begin(), v.end(), VectorRange(c_Search2))));
+ cout << "search_n\n";
+ cout.format ("{14} at %zd\n", abs_distance (v.begin(), search_n (v.begin(), v.end(), 1, 14)));
+ cout.format ("{13,13} at %zd\n", abs_distance (v.begin(), search_n (v.begin(), v.end(), 2, 13)));
+ cout.format ("{10,10,10} at %zd\n", abs_distance (v.begin(), search_n (v.begin(), v.end(), 3, 10)));
+ v.assign (first, last);
+
+ cout << "includes\n";
+ static const int c_Includes[] = { 5, 14, 15, 18, 20 };
+ cout << "includes=" << includes (v.begin(), v.end(), VectorRange(c_Includes)-1);
+ cout << ", not includes=" << includes (v.begin(), v.end(), VectorRange(c_Includes));
+ cout << endl;
+
+ static const int c_Set1[] = { 1, 2, 3, 4, 5, 6 }, c_Set2[] = { 4, 4, 6, 7, 8 };
+ intvec_t::iterator setEnd;
+ cout << "set_difference\n";
+ v.resize (4);
+ setEnd = set_difference (VectorRange(c_Set1), VectorRange(c_Set2), v.begin());
+ PrintVector (v);
+ if (setEnd != v.end()) cout << "incorrect range\n";
+ cout << "set_symmetric_difference\n";
+ v.resize (7);
+ setEnd = set_symmetric_difference (VectorRange(c_Set1), VectorRange(c_Set2), v.begin());
+ PrintVector (v);
+ if (setEnd != v.end()) cout << "incorrect range\n";
+ cout << "set_intersection\n";
+ v.resize (2);
+ setEnd = set_intersection (VectorRange(c_Set1), VectorRange(c_Set2), v.begin());
+ PrintVector (v);
+ if (setEnd != v.end()) cout << "incorrect range\n";
+ cout << "set_union\n";
+ v.resize (9);
+ setEnd = set_union (VectorRange(c_Set1), VectorRange(c_Set2), v.begin());
+ PrintVector (v);
+ if (setEnd != v.end()) cout << "incorrect range\n";
+ v.assign (first, last);
+}
+
+StdBvtMain (TestAlgorithms)
diff --git a/ecos/packages/language/cxx/ustl/current/tests/bvt05.std b/ecos/packages/language/cxx/ustl/current/tests/bvt05.std
new file mode 100644
index 0000000..c86659f
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/tests/bvt05.std
@@ -0,0 +1,132 @@
+{ 1 2 3 4 5 6 7 8 9 10 10 11 12 13 13 14 15 16 17 18 }
+swap(1,2)
+{ 2 1 3 4 5 6 7 8 9 10 10 11 12 13 13 14 15 16 17 18 }
+copy(0,8,9)
+{ 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 16 17 18 }
+copy with back_inserter
+{ 1 2 3 4 5 6 7 8 9 10 10 11 12 13 13 14 15 16 17 18 }
+copy with inserter
+{ 1 2 3 1 2 3 4 5 4 5 }
+copy_n(0,8,9)
+{ 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 16 17 18 }
+copy_if(is_even)
+{ 2 4 6 8 10 10 12 14 16 18 }
+for_each(printint)
+{ 1 2 3 4 5 6 7 8 9 10 10 11 12 13 13 14 15 16 17 18 }
+for_each(reverse_iterator, printint)
+{ 18 17 16 15 14 13 13 12 11 10 10 9 8 7 6 5 4 3 2 1 }
+find(10)
+10 found at offset 9
+count(13)
+2 values of 13, 1 values of 18
+transform(sqr)
+{ 1 4 9 16 25 36 49 64 81 100 100 121 144 169 169 196 225 256 289 324 }
+replace(13,666)
+{ 1 2 3 4 5 6 7 8 9 10 10 11 12 666 666 14 15 16 17 18 }
+fill(13)
+{ 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 }
+fill_n(5, 13)
+{ 13 13 13 13 13 6 7 8 9 10 10 11 12 13 13 14 15 16 17 18 }
+fill 64083 uint8_t(0x41) works
+fill 64083 uint16_t(0x4142) works
+fill 64083 uint32_t(0x41424344) works
+fill 64083 float(0.4242) works
+fill 64083 uint64_t(0x4142434445464748) works
+copy 64083 uint8_t(0x41) works
+copy 64083 uint16_t(0x4142) works
+copy 64083 uint32_t(0x41424344) works
+copy 64083 float(0.4242) works
+copy 64083 uint64_t(0x4142434445464748) works
+generate(genint)
+{ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 }
+rotate(4)
+{ 15 16 17 18 1 2 3 4 5 6 7 8 9 10 10 11 12 13 13 14 }
+merge with (3,5,10,11,11,14)
+{ 1 2 3 3 4 5 5 6 7 8 9 10 10 10 11 11 11 12 13 13 14 14 15 16 17 18 }
+inplace_merge with (3,5,10,11,11,14)
+{ 1 2 3 3 4 5 5 6 7 8 9 10 10 10 11 11 11 12 13 13 14 14 15 16 17 18 }
+remove(13)
+{ 1 2 3 4 5 6 7 8 9 10 10 11 12 14 15 16 17 18 }
+remove (elements 3, 4, 6, 15, and 45)
+{ 1 2 3 6 8 9 10 10 11 12 13 13 15 16 17 18 }
+unique
+{ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 }
+reverse
+{ 18 17 16 15 14 13 13 12 11 10 10 9 8 7 6 5 4 3 2 1 }
+lower_bound(10)
+{ 1 2 3 4 5 6 7 8 9 10 10 11 12 13 13 14 15 16 17 18 }
+10 begins at position 9
+upper_bound(10)
+{ 1 2 3 4 5 6 7 8 9 10 10 11 12 13 13 14 15 16 17 18 }
+10 ends at position 11
+equal_range(10)
+{ 1 2 3 4 5 6 7 8 9 10 10 11 12 13 13 14 15 16 17 18 }
+Range of 10 is { 9, 11 }
+Range of 0 is { 0, 0 }
+Range of 100 is { 20, 20 }
+sort
+{ 18 17 16 15 14 13 13 12 11 10 10 9 8 7 6 5 4 3 2 1 }
+{ 1 2 3 4 5 6 7 8 9 10 10 11 12 13 13 14 15 16 17 18 }
+stable_sort
+{ 18 17 16 15 14 13 13 12 11 10 10 9 8 7 6 5 4 3 2 1 }
+{ 1 2 3 4 5 6 7 8 9 10 10 11 12 13 13 14 15 16 17 18 }
+is_sorted
+unsorted=false, sorted=true
+find_first_of
+found 14 at position 15
+lexicographical_compare
+LC1 < LC2 == true
+LC2 < LC2 == false
+LC3 < LC4 == true
+LC4 < LC1 == true
+LC1 < LC4 == false
+max_element
+max element is 18
+min_element
+min element is 1
+partial_sort
+{ 1 2 3 4 5 6 7 8 9 10 10 11 12 13 13 14 15 16 17 18 }
+partial_sort_copy
+{ 1 2 3 4 5 6 7 8 9 10 10 11 12 13 13 14 15 16 17 18 }
+partition
+{ 2 4 6 8 10 10 12 14 16 18 1 3 5 7 9 11 13 13 15 17 }
+stable_partition
+{ 2 4 6 8 10 10 12 14 16 18 1 3 5 7 9 11 13 13 15 17 }
+next_permutation
+{ 1 2 3 }
+{ 1 3 2 }
+{ 2 1 3 }
+{ 2 3 1 }
+{ 3 1 2 }
+{ 3 2 1 }
+prev_permutation
+{ 3 2 1 }
+{ 3 1 2 }
+{ 2 3 1 }
+{ 2 1 3 }
+{ 1 3 2 }
+{ 1 2 3 }
+reverse_copy
+{ 18 17 16 15 14 13 13 12 11 10 10 9 8 7 6 5 4 3 2 1 }
+rotate_copy
+{ 7 8 9 10 10 11 12 13 13 14 15 16 17 18 1 2 3 4 5 6 }
+search
+{5,6,7,8,9} at 4
+{10,10,11,14} at 20
+find_end
+{5,6,7,8,9} at 4
+{10,10,11,14} at 20
+search_n
+{14} at 15
+{13,13} at 13
+{10,10,10} at 20
+includes
+includes=true, not includes=false
+set_difference
+{ 1 2 3 5 }
+set_symmetric_difference
+{ 1 2 3 4 5 7 8 }
+set_intersection
+{ 4 6 }
+set_union
+{ 1 2 3 4 4 5 6 7 8 }
diff --git a/ecos/packages/language/cxx/ustl/current/tests/bvt06.cpp b/ecos/packages/language/cxx/ustl/current/tests/bvt06.cpp
new file mode 100644
index 0000000..a97b7ab
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/tests/bvt06.cpp
@@ -0,0 +1,59 @@
+// This file is part of the uSTL library, an STL implementation.
+//
+// Copyright (c) 2005 by Mike Sharov <msharov@users.sourceforge.net>
+// This file is free software, distributed under the MIT License.
+
+#include "stdtest.h"
+
+void PrintBlock (const cmemlink& l)
+{
+ const int* numbers = reinterpret_cast<const int*>(l.begin());
+ const size_t nNumbers = l.size() / sizeof(int);
+ for (size_t i = 0; i < nNumbers; ++ i)
+ cout << numbers[i] << ' ';
+ cout << endl;
+}
+
+void TestObjectVector (void)
+{
+ vector<memblock> v;
+ const size_t nNumbers = 1000;
+ int numbers [nNumbers];
+ const size_t nLinks = 10;
+ cmemlink links [nLinks];
+ for (size_t i = 0; i < nNumbers; ++ i)
+ numbers[i] = i;
+ uoff_t offset = 0;
+ for (size_t l = 0; l < nLinks; ++ l) {
+ links[l].link (numbers + offset, l * sizeof(int));
+ offset += l;
+ v.push_back (memblock(links[l]));
+ }
+ cout.format ("---\nvector<memblock> of %zu elements:\n---\n", v.size());
+ for_each (v.begin(), v.end(), &PrintBlock);
+ cout.format ("---\nsize() = %zu, max_size() = ", v.size());
+ if (v.max_size() == SIZE_MAX / sizeof(memblock))
+ cout << "SIZE_MAX/elsize";
+ else
+ cout << v.max_size();
+ static const char tf[2][6]={"false","true"};
+ cout.format (", empty() = %s\n", tf[v.empty()]);
+ v.push_back (memblock(5));
+ cout.format ("back()->size() = %zu\n", v.back().size());
+ v.back().resize (40);
+ cout.format ("back()->size() = %zu\n", v.back().size());
+ v.pop_back();
+ PrintBlock (v.back());
+ vector<memblock> cache;
+ cache.assign (v.begin(), v.end());
+ v.clear();
+ v.assign (cache.begin(), cache.end());
+ v.erase (v.begin() + 5, 2);
+ v.erase (v.end() - 1, 1);
+ v.erase (v.end(), streamsize(0));
+ cout.format ("---\nvector of %zu elements backwards:\n---\n", v.size());
+ for_each (v.rbegin(), v.rend(), &PrintBlock);
+ cout << "---\n";
+}
+
+StdBvtMain (TestObjectVector)
diff --git a/ecos/packages/language/cxx/ustl/current/tests/bvt06.std b/ecos/packages/language/cxx/ustl/current/tests/bvt06.std
new file mode 100644
index 0000000..0819805
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/tests/bvt06.std
@@ -0,0 +1,29 @@
+---
+vector<memblock> of 10 elements:
+---
+
+0
+1 2
+3 4 5
+6 7 8 9
+10 11 12 13 14
+15 16 17 18 19 20
+21 22 23 24 25 26 27
+28 29 30 31 32 33 34 35
+36 37 38 39 40 41 42 43 44
+---
+size() = 10, max_size() = SIZE_MAX/elsize, empty() = false
+back()->size() = 5
+back()->size() = 40
+36 37 38 39 40 41 42 43 44
+---
+vector of 7 elements backwards:
+---
+28 29 30 31 32 33 34 35
+21 22 23 24 25 26 27
+6 7 8 9
+3 4 5
+1 2
+0
+
+---
diff --git a/ecos/packages/language/cxx/ustl/current/tests/bvt07.cpp b/ecos/packages/language/cxx/ustl/current/tests/bvt07.cpp
new file mode 100644
index 0000000..91d99d0
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/tests/bvt07.cpp
@@ -0,0 +1,135 @@
+// This file is part of the uSTL library, an STL implementation.
+//
+// Copyright (c) 2005 by Mike Sharov <msharov@users.sourceforge.net>
+// This file is free software, distributed under the MIT License.
+
+#include "stdtest.h"
+
+void MyFormat (const char* fmt, ...) __attribute__((__format__(__printf__,1,2)));
+
+void TestString (void)
+{
+ static const char c_TestString1[] = "123456789012345678901234567890";
+ static const char c_TestString2[] = "abcdefghijklmnopqrstuvwxyz";
+ static const char c_TestString3[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
+ string s1 (c_TestString1);
+ string s2 (VectorRange (c_TestString2));
+ string s3 (s1);
+
+ cout << s1 << endl;
+ cout << s2 << endl;
+ cout << s3 << endl;
+ s3.reserve (48);
+ s3.resize (20);
+
+ uoff_t i;
+ for (i = 0; i < s3.length(); ++ i)
+ s3.at(i) = s3.at(i);
+ for (i = 0; i < s3.length(); ++ i)
+ s3[i] = s3[i];
+ cout.format ("%s\ns3.size() = %zu, max_size() = ", s3.c_str(), s3.size());
+ if (s3.max_size() == SIZE_MAX - 1)
+ cout << "(SIZE_MAX/elsize)-1";
+ else
+ cout << s3.max_size();
+ cout.format (", capacity() = %zu\n", s3.capacity());
+
+ s1.unlink();
+ s1 = c_TestString2;
+ s1 += c_TestString3;
+ s1 += '$';
+ cout << s1 << endl;
+
+ s1 = "Hello";
+ s2.unlink();
+ s2 = "World";
+ s3 = s1 + s2;
+ cout << s3 << endl;
+ s3 = "Concatenated " + s1 + s2 + " string.";
+ cout << s3 << endl;
+
+ if (s1 < s2)
+ cout << "s1 < s2\n";
+ if (s1 == s1)
+ cout << "s1 == s1\n";
+ if (s1[0] != s1[0])
+ cout << "s1[0] != s1[0]\n";
+
+ string s4;
+ s4.link (s1);
+ if (s1 == s4)
+ cout << "s1 == s4\n";
+
+ s1 = c_TestString1;
+ string s5 (s1.begin() + 4, s1.begin() + 4 + 5);
+ string s6 (s1.begin() + 4, s1.begin() + 4 + 5);
+ if (s5 == s6)
+ cout.format ("%s == %s\n", s5.c_str(), s6.c_str());
+ string tail (s1.begin() + 7, s1.end());
+ cout.format ("&s1[7] = %s\n", tail.c_str());
+
+ cout.format ("initial:\t\t%s\n", s1.c_str());
+ cout << "erase(5,find(9)-5)\t";
+ s1.erase (5, s1.find ('9')-5);
+ cout << s1 << endl;
+ cout << "erase(5,5)\t\t";
+ s1.erase (s1.begin() + 5, 2U);
+ s1.erase (5, 3);
+ assert (!*s1.end());
+ cout << s1 << endl;
+ cout << "push_back('x')\t\t";
+ s1.push_back ('x');
+ assert (!*s1.end());
+ cout << s1 << endl;
+ cout << "pop_back()\n";
+ s1.pop_back();
+ assert (!*s1.end());
+ cout << "insert(10,#)\t\t";
+ s1.insert (s1.begin() + 10, '#');
+ assert (!*s1.end());
+ cout << s1 << endl;
+ cout << "replace(0,5,@)\t\t";
+ s1.replace (s1.begin(), s1.begin() + 5, 1, '@');
+ assert (!*s1.end());
+ cout << s1 << endl;
+
+ s1 = c_TestString1;
+ cout.format ("8 found at %zu\n", s1.find ('8'));
+ cout.format ("9 found at %zu\n", s1.find ("9"));
+ cout.format ("7 rfound at %zu\n", s1.rfind ('7'));
+ cout.format ("7 rfound again at %zu\n", s1.rfind ('7', s1.rfind ('7') - 1));
+ cout.format ("67 rfound at %zu\n", s1.rfind ("67"));
+ if (s1.rfind("X") == string::npos)
+ cout << "X was not rfound\n";
+ else
+ cout.format ("X rfound at %zu\n", s1.rfind ("X"));
+ uoff_t poundfound = s1.find ("#");
+ if (poundfound != string::npos)
+ cout.format ("# found at %zu\n", poundfound);
+ cout.format ("[456] found at %zu\n", s1.find_first_of ("456"));
+ cout.format ("[456] last found at %zu\n", s1.find_last_of ("456"));
+
+ s2.clear();
+ assert (!*s2.end());
+ if (s2.empty())
+ cout.format ("s2 is empty [%s], capacity %zu bytes\n", s2.c_str(), s2.capacity());
+
+ s2.format ("<const] %d, %s, 0x%08X", 42, "[rfile>", 0xDEADBEEF);
+ cout.format ("<%zu bytes of %zu> Format '%s'\n", s2.length(), s2.capacity(), s2.c_str());
+ MyFormat ("'<const] %d, %s, 0x%08X'", 42, "[rfile>", 0xDEADBEEF);
+
+ cout.format ("hash_value(s2) = %08X, string::hash(s2) = %08X\n", hash_value (s2.begin()), string::hash (s2.begin(), s2.end()));
+}
+
+void MyFormat (const char* fmt, ...)
+{
+ string buf;
+ simd::reset_mmx();
+ va_list args;
+ va_start (args, fmt);
+ buf.vformat (fmt, args);
+ cout.format ("Custom vararg MyFormat: %s\n", buf.c_str());
+ va_end (args);
+}
+
+StdBvtMain (TestString)
diff --git a/ecos/packages/language/cxx/ustl/current/tests/bvt07.std b/ecos/packages/language/cxx/ustl/current/tests/bvt07.std
new file mode 100644
index 0000000..4644373
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/tests/bvt07.std
@@ -0,0 +1,32 @@
+123456789012345678901234567890
+abcdefghijklmnopqrstuvwxyz
+123456789012345678901234567890
+12345678901234567890
+s3.size() = 20, max_size() = (SIZE_MAX/elsize)-1, capacity() = 48
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ$
+HelloWorld
+Concatenated HelloWorld string.
+s1 < s2
+s1 == s1
+s1 == s4
+56789 == 56789
+&s1[7] = 89012345678901234567890
+initial: 123456789012345678901234567890
+erase(5,find(9)-5) 123459012345678901234567890
+erase(5,5) 1234545678901234567890
+push_back('x') 1234545678901234567890x
+pop_back()
+insert(10,#) 1234545678#901234567890
+replace(0,5,@) @45678#901234567890
+8 found at 7
+9 found at 8
+7 rfound at 26
+7 rfound again at 16
+67 rfound at 25
+X was not rfound
+[456] found at 3
+[456] last found at 25
+s2 is empty [], capacity 5 bytes
+<31 bytes of 31> Format '<const] 42, [rfile>, 0xDEADBEEF'
+Custom vararg MyFormat: '<const] 42, [rfile>, 0xDEADBEEF'
+hash_value(s2) = 95A714F3, string::hash(s2) = 95A714F3
diff --git a/ecos/packages/language/cxx/ustl/current/tests/bvt08.cpp b/ecos/packages/language/cxx/ustl/current/tests/bvt08.cpp
new file mode 100644
index 0000000..056c8a6
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/tests/bvt08.cpp
@@ -0,0 +1,57 @@
+// This file is part of the uSTL library, an STL implementation.
+//
+// Copyright (c) 2005 by Mike Sharov <msharov@users.sourceforge.net>
+// This file is free software, distributed under the MIT License.
+
+#include "stdtest.h"
+
+inline void PrintString (const string& str)
+{
+ cout << str << endl;
+}
+
+void TestStringVector (void)
+{
+ vector<string> v;
+
+ vector<string>::iterator bogusi = find (v, string("bogus"));
+ if (bogusi != v.end())
+ cout << "bogus found at position " << bogusi - v.begin() << endl;
+
+ v.push_back (string("Hello world!"));
+ v.push_back (string("Hello again!"));
+ v.push_back (string("element3"));
+ v.push_back (string("element4"));
+ v.push_back (string("element5_long_element5"));
+ for_each (v, &PrintString);
+
+ if (!(v[2] == string("element3")))
+ cout << "operator== failed" << endl;
+ vector<string>::iterator el3i = find (v, string("element3"));
+ if (el3i != v.end())
+ cout << *el3i << " found at position " << el3i - v.begin() << endl;
+ bogusi = find (v, string("bogus"));
+ if (bogusi != v.end())
+ cout << *bogusi << " found at position " << bogusi - v.begin()<< endl;
+
+ vector<string> v2;
+ v2 = v;
+ v = v2;
+ v.erase (v.end(), v.end());
+ cout << "After erase (end,end):" << endl;
+ for_each (v, &PrintString);
+ v = v2;
+ v.erase (v.begin() + 2, 2);
+ cout << "After erase (2,2):" << endl;
+ for_each (v, &PrintString);
+ v = v2;
+ v.pop_back();
+ cout << "After pop_back():" << endl;
+ for_each (v, &PrintString);
+ v = v2;
+ v.insert (v.begin() + 1, v2.begin() + 1, v2.begin() + 1 + 3);
+ cout << "After insert(1,1,3):" << endl;
+ for_each (v, &PrintString);
+}
+
+StdBvtMain (TestStringVector)
diff --git a/ecos/packages/language/cxx/ustl/current/tests/bvt08.std b/ecos/packages/language/cxx/ustl/current/tests/bvt08.std
new file mode 100644
index 0000000..b4b1800
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/tests/bvt08.std
@@ -0,0 +1,30 @@
+Hello world!
+Hello again!
+element3
+element4
+element5_long_element5
+element3 found at position 2
+After erase (end,end):
+Hello world!
+Hello again!
+element3
+element4
+element5_long_element5
+After erase (2,2):
+Hello world!
+Hello again!
+element5_long_element5
+After pop_back():
+Hello world!
+Hello again!
+element3
+element4
+After insert(1,1,3):
+Hello world!
+Hello again!
+element3
+element4
+Hello again!
+element3
+element4
+element5_long_element5
diff --git a/ecos/packages/language/cxx/ustl/current/tests/bvt09.cpp b/ecos/packages/language/cxx/ustl/current/tests/bvt09.cpp
new file mode 100644
index 0000000..0dcf1c3
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/tests/bvt09.cpp
@@ -0,0 +1,84 @@
+// This file is part of the uSTL library, an STL implementation.
+//
+// Copyright (c) 2005 by Mike Sharov <msharov@users.sourceforge.net>
+// This file is free software, distributed under the MIT License.
+
+#include "stdtest.h"
+
+void TestStringStreams (void)
+{
+ const unsigned char magic_Char = 'c';
+ const unsigned short magic_Short = 1234;
+ const long magic_Int = -12345678;
+ const unsigned long magic_UInt = 12345678;
+ const float magic_Float = 123.45678;
+ const double magic_Double = 123456789123456.789;
+ const bool magic_Bool = true;
+
+ char c = magic_Char;
+ unsigned char uc = magic_Char;
+ int i = magic_Int;
+ short si = magic_Short;
+ long li = magic_Int;
+ unsigned int ui = magic_UInt;
+ unsigned short usi = magic_Short;
+ unsigned long uli = magic_UInt;
+ float f = magic_Float;
+ double d = magic_Double;
+ bool bv = magic_Bool;
+
+ ostringstream os;
+ os << c << endl;
+ os << uc << endl;
+ os << bv << endl;
+ os << i << endl;
+ os << ui << endl;
+ os << li << endl;
+ os << uli << endl;
+ os << f << endl;
+ os << d << endl;
+ os << si << endl;
+ os << usi << endl << ends;
+ os.flush();
+ cout << os.pos() << " bytes written" << endl;
+
+ c = 0;
+ uc = 0;
+ bv = false;
+ i = ui = li = uli = 0;
+ f = 0; d = 0;
+ si = usi = 0;
+
+ istringstream is (os.str());
+ is >> c;
+ is >> uc;
+ is >> bv;
+ is >> i;
+ is >> ui;
+ is >> li;
+ is >> uli;
+ is >> f;
+ is >> d;
+ is >> si;
+ is >> usi;
+
+ cout << "Values:" << endl;
+ cout.format ("char: '%c'\n", static_cast<int>(c));
+ cout.format ("u_char: '%c'\n", static_cast<int>(uc));
+ cout.format ("bool: %d\n", static_cast<int>(bv));
+ cout.format ("int: %d\n", i);
+ cout.format ("u_int: %d\n", ui);
+ cout.format ("long: %ld\n", li);
+ cout.format ("u_long: %ld\n", uli);
+ cout.format ("float: %.2f\n", f);
+ cout.format ("double: %.2f\n", d);
+ cout.format ("short: %d\n", static_cast<int>(si));
+ cout.format ("u_short: %d\n", static_cast<int>(usi));
+ cout << endl;
+
+ cout << "Dump:" << endl;
+ cout << os.str().cdata() << endl;
+ cout << endl;
+}
+
+StdBvtMain (TestStringStreams)
diff --git a/ecos/packages/language/cxx/ustl/current/tests/bvt09.std b/ecos/packages/language/cxx/ustl/current/tests/bvt09.std
new file mode 100644
index 0000000..54199c2
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/tests/bvt09.std
@@ -0,0 +1,28 @@
+84 bytes written
+Values:
+char: 'c'
+u_char: 'c'
+bool: 1
+int: -12345678
+u_int: 12345678
+long: -12345678
+u_long: 12345678
+float: 123.46
+double: 123456789123456.78
+short: 1234
+u_short: 1234
+
+Dump:
+c
+c
+true
+-12345678
+12345678
+-12345678
+12345678
+123.46
+123456789123456.78
+1234
+1234
+
+
diff --git a/ecos/packages/language/cxx/ustl/current/tests/bvt10.cpp b/ecos/packages/language/cxx/ustl/current/tests/bvt10.cpp
new file mode 100644
index 0000000..206b961
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/tests/bvt10.cpp
@@ -0,0 +1,171 @@
+// This file is part of the uSTL library, an STL implementation.
+//
+// Copyright (c) 2005 by Mike Sharov <msharov@users.sourceforge.net>
+// This file is free software, distributed under the MIT License.
+
+#include "stdtest.h"
+
+template <typename Container>
+void PrintVector (const Container& ctr)
+{
+ cout << "{";
+ foreach (typename Container::const_iterator, i, ctr)
+ cout << ' ' << *i;
+ cout << " }\n";
+}
+
+class A {
+public:
+ A (int dv = 6) : m_v1 (0), m_v (dv) {}
+ int addsix (int i) { return (i + m_v); }
+ void addsix (int& i) const { i += m_v; }
+ void addtosix (int i) { m_v += i; }
+ inline void text_write (ostringstream& os) const { os << m_v; }
+public:
+ int m_v1;
+ int m_v;
+};
+
+INTEGRAL_STREAMABLE(A)
+TEXT_STREAMABLE(A)
+
+void TestFunctors (void)
+{
+ vector<int> v;
+ v.resize (20);
+ fill (v, 2);
+ foreach (vector<int>::iterator, i, v)
+ *i -= distance(v.begin(), i) & 1;
+ vector<int> v1 (v);
+
+ cout << "start:\t\t\t";
+ PrintVector (v);
+
+ v = v1;
+ cout << "plus:\t\t\t";
+ transform (v, v.begin(), v.begin(), plus<int>());
+ PrintVector (v);
+
+ v = v1;
+ cout << "minus:\t\t\t";
+ transform (v, v.begin(), v.begin(), minus<int>());
+ PrintVector (v);
+
+ v = v1;
+ cout << "divides:\t\t";
+ transform (v, v.begin(), v.begin(), divides<int>());
+ PrintVector (v);
+
+ v = v1;
+ cout << "multiplies:\t\t";
+ transform (v, v.begin(), v.begin(), multiplies<int>());
+ PrintVector (v);
+
+ v = v1;
+ cout << "modulus:\t\t";
+ transform (v, v.begin(), v.begin(), modulus<int>());
+ PrintVector (v);
+
+ v = v1;
+ cout << "logical_and:\t\t";
+ transform (v, v.begin(), v.begin(), logical_and<int>());
+ PrintVector (v);
+
+ v = v1;
+ cout << "logical_or:\t\t";
+ transform (v, v.begin(), v.begin(), logical_or<int>());
+ PrintVector (v);
+
+ v = v1;
+ cout << "equal_to:\t\t";
+ transform (v, v.begin(), v.begin(), equal_to<int>());
+ PrintVector (v);
+
+ v = v1;
+ cout << "not_equal_to:\t\t";
+ transform (v, v.begin(), v.begin(), not_equal_to<int>());
+ PrintVector (v);
+
+ v = v1;
+ cout << "greater:\t\t";
+ transform (v, v.begin(), v.begin(), greater<int>());
+ PrintVector (v);
+
+ v = v1;
+ cout << "less:\t\t\t";
+ transform (v, v.begin(), v.begin(), less<int>());
+ PrintVector (v);
+
+ v = v1;
+ cout << "greater_equal:\t\t";
+ transform (v, v.begin(), v.begin(), greater_equal<int>());
+ PrintVector (v);
+
+ v = v1;
+ cout << "less_equal:\t\t";
+ transform (v, v.begin(), v.begin(), less_equal<int>());
+ PrintVector (v);
+
+ v = v1;
+ cout << "compare:\t\t";
+ transform (v, v.begin(), v.begin(), compare<int>());
+ PrintVector (v);
+
+ v = v1;
+ cout << "negate:\t\t\t";
+ transform (v, negate<int>());
+ PrintVector (v);
+
+ v = v1;
+ cout << "logical_not:\t\t";
+ transform (v, logical_not<int>());
+ PrintVector (v);
+
+ v = v1;
+ cout << "unary_neg(negate):\t";
+ transform (v, unary_negator(negate<int>()));
+ PrintVector (v);
+
+ v = v1;
+ cout << "binder1st(plus,5):\t";
+ transform (v, bind1st(plus<int>(), 5));
+ PrintVector (v);
+
+ v = v1;
+ cout << "binder2nd(minus,1):\t";
+ transform (v, bind2nd(minus<int>(), 1));
+ PrintVector (v);
+
+ v = v1;
+ cout << "compose1(-,+5):\t\t";
+ transform (v, compose1 (negate<int>(), bind2nd(plus<int>(), 5)));
+ PrintVector (v);
+
+ v = v1;
+ cout << "compose1(-,-4):\t\t";
+ transform (v, compose1 (negate<int>(), bind2nd(minus<int>(), 4)));
+ PrintVector (v);
+
+ v = v1;
+ cout << "compose2(/,+6,-4):\t";
+ transform (v, compose2 (divides<int>(), bind2nd(plus<int>(), 6), bind2nd(minus<int>(), 4)));
+ PrintVector (v);
+
+ cout << "mem_var(plus,6):\t";
+ vector<A> av;
+ for (uoff_t i = 0; i < 20; ++ i)
+ av.push_back (A(i));
+ transform (av, mem_var1(&A::m_v, bind2nd(plus<int>(), 6)));
+ PrintVector (av);
+
+ vector<A>::iterator found = find_if (av, mem_var_equal_to(&A::m_v, 14));
+ cout << "14 found at position " << found - av.begin() << endl;
+ found = lower_bound (av.begin(), av.end(), 18, mem_var_less(&A::m_v));
+ cout << "18 found at position " << found - av.begin() << endl;
+
+ cout << "add next:\t\t";
+ transform (av.begin(), av.end() - 1, av.begin() + 1, av.begin(), mem_var2(&A::m_v, plus<int>()));
+ PrintVector (av);
+}
+
+StdBvtMain (TestFunctors)
diff --git a/ecos/packages/language/cxx/ustl/current/tests/bvt10.std b/ecos/packages/language/cxx/ustl/current/tests/bvt10.std
new file mode 100644
index 0000000..a8c21ca
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/tests/bvt10.std
@@ -0,0 +1,27 @@
+start: { 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 }
+plus: { 4 2 4 2 4 2 4 2 4 2 4 2 4 2 4 2 4 2 4 2 }
+minus: { 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 }
+divides: { 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 }
+multiplies: { 4 1 4 1 4 1 4 1 4 1 4 1 4 1 4 1 4 1 4 1 }
+modulus: { 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 }
+logical_and: { 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 }
+logical_or: { 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 }
+equal_to: { 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 }
+not_equal_to: { 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 }
+greater: { 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 }
+less: { 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 }
+greater_equal: { 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 }
+less_equal: { 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 }
+compare: { 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 }
+negate: { -2 -1 -2 -1 -2 -1 -2 -1 -2 -1 -2 -1 -2 -1 -2 -1 -2 -1 -2 -1 }
+logical_not: { 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 }
+unary_neg(negate): { 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 }
+binder1st(plus,5): { 7 6 7 6 7 6 7 6 7 6 7 6 7 6 7 6 7 6 7 6 }
+binder2nd(minus,1): { 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 }
+compose1(-,+5): { -7 -6 -7 -6 -7 -6 -7 -6 -7 -6 -7 -6 -7 -6 -7 -6 -7 -6 -7 -6 }
+compose1(-,-4): { 2 3 2 3 2 3 2 3 2 3 2 3 2 3 2 3 2 3 2 3 }
+compose2(/,+6,-4): { -4 -2 -4 -2 -4 -2 -4 -2 -4 -2 -4 -2 -4 -2 -4 -2 -4 -2 -4 -2 }
+mem_var(plus,6): { 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 }
+14 found at position 8
+18 found at position 12
+add next: { 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 25 }
diff --git a/ecos/packages/language/cxx/ustl/current/tests/bvt11.cpp b/ecos/packages/language/cxx/ustl/current/tests/bvt11.cpp
new file mode 100644
index 0000000..df6eb12
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/tests/bvt11.cpp
@@ -0,0 +1,36 @@
+// This file is part of the uSTL library, an STL implementation.
+//
+// Copyright (c) 2005 by Mike Sharov <msharov@users.sourceforge.net>
+// This file is free software, distributed under the MIT License.
+
+#include "stdtest.h"
+
+void PrintVector (const int* first, const int* last)
+{
+ cout << "{";
+ while (first < last)
+ cout << ' ' << *first++;
+ cout << " }" << endl;
+}
+
+void TestSetAndMultiset (void)
+{
+ const int vv[] = { 1, 8, 9, 2, 3, 1, 1, 4, 6, 1, 3, 4 };
+ set<int> v (VectorRange (vv));
+ multiset<int> mv (VectorRange (vv));
+ cout << "set:\t\t";
+ PrintVector (v.begin(), v.end());
+ cout << "erase(3):\t";
+ v.erase (3);
+ PrintVector (v.begin(), v.end());
+ cout << "multiset:\t";
+ PrintVector (mv.begin(), mv.end());
+ cout << "count(1) = " << mv.count(1) << endl;
+ cout << "find(4) = " << lower_bound (mv, 4) - mv.begin() << endl;
+ cout << "find(5) = " << binary_search (mv, 5) << endl;
+ cout << "erase(3):\t";
+ mv.erase (3);
+ PrintVector (mv.begin(), mv.end());
+}
+
+StdBvtMain (TestSetAndMultiset)
diff --git a/ecos/packages/language/cxx/ustl/current/tests/bvt11.std b/ecos/packages/language/cxx/ustl/current/tests/bvt11.std
new file mode 100644
index 0000000..7e4edce
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/tests/bvt11.std
@@ -0,0 +1,7 @@
+set: { 1 2 3 4 6 8 9 }
+erase(3): { 1 2 4 6 8 9 }
+multiset: { 1 1 1 1 2 3 3 4 4 6 8 9 }
+count(1) = 4
+find(4) = 7
+find(5) = false
+erase(3): { 1 1 1 1 2 4 4 6 8 9 }
diff --git a/ecos/packages/language/cxx/ustl/current/tests/bvt12.cpp b/ecos/packages/language/cxx/ustl/current/tests/bvt12.cpp
new file mode 100644
index 0000000..c2b68df
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/tests/bvt12.cpp
@@ -0,0 +1,81 @@
+// This file is part of the uSTL library, an STL implementation.
+//
+// Copyright (c) 2005 by Mike Sharov <msharov@users.sourceforge.net>
+// This file is free software, distributed under the MIT License.
+
+#include "stdtest.h"
+
+void ObjectSerialization (void)
+{
+ #define RW(stream) rws[stream.pos() == expect]
+ const void* pBufC = NULL;
+ void* pBuf = NULL;
+ memblock buffer;
+ string testString ("TestString");
+ const string* pStrC = NULL;
+ string* pStr = NULL;
+ vector<uint16_t> tv (7);
+ static const char* rws[2] = { "wrong", "right" };
+
+ const size_t bufSize = stream_size_of(pBufC) +
+ stream_size_of(pBuf) +
+ Align(stream_size_of(testString)) +
+ stream_size_of(pStrC) +
+ stream_size_of(pStr) +
+ stream_size_of(tv);
+ buffer.resize (bufSize);
+ pBufC = buffer.cdata();
+ pBuf = buffer.data();
+
+ uoff_t expect = 0;
+ ostream os (buffer);
+ os << pBufC; expect += stream_size_of(pBufC);
+ cout << "Write const void*, pos is " << RW(os) << endl;
+ os << pBuf; expect += stream_size_of(pBuf);
+ cout << "Write void*, pos is " << RW(os) << endl;
+ os << testString; expect += stream_size_of(testString);
+ cout << "Write string, pos is " << RW(os) << endl;
+ os.align(); expect = Align (expect);
+ os << const_cast<const string*>(&testString); expect += stream_size_of(&testString);
+ cout << "Write const string*, pos is " << RW(os) << endl;
+ os << &testString; expect += stream_size_of(&testString);
+ cout << "Write string*, pos is " << RW(os) << endl;
+ os << tv; expect += stream_size_of(tv);
+ cout << "Write vector<uint16_t>(7), pos is " << RW(os) << endl;
+ if (os.pos() != bufSize)
+ cout << "Incorrect number of bytes written: " << os.pos() << " of " << bufSize << endl;
+
+ istream is (buffer);
+ expect = 0;
+ is >> pBufC;
+ expect += stream_size_of(pBufC);
+ cout << "Read const void*, pos is " << RW(is);
+ cout << ", value is " << rws[pBufC == buffer.cdata()] << endl;
+ is >> pBuf;
+ expect += stream_size_of(pBuf);
+ cout << "Read void*, pos is " << RW(is);
+ cout << ", value is " << rws[pBuf == buffer.cdata()] << endl;
+ testString.clear();
+ is >> testString;
+ expect += stream_size_of(testString);
+ cout << "Read string, pos is " << RW(is) << ", value is " << testString << endl;
+ is.align();
+ expect = Align (expect);
+ is >> pStrC;
+ expect += stream_size_of(pStrC);
+ cout << "Read const string*, pos is " << RW(is);
+ cout << ", value is " << rws[pStrC == &testString] << endl;
+ is >> pStr;
+ expect += stream_size_of(pStr);
+ cout << "Read string*, pos is " << RW(is);
+ cout << ", value is " << rws[pStr == &testString] << endl;
+ vector<uint16_t> rv;
+ is >> rv;
+ expect += stream_size_of(rv);
+ cout << "Read vector<uint16_t>(" << rv.size() << "), pos is " << RW(is);
+ cout << ", value is " << rws[rv == tv] << endl;
+ if (is.pos() != bufSize)
+ cout << "Incorrect number of bytes read: " << is.pos() << " of " << bufSize << endl;
+}
+
+StdBvtMain (ObjectSerialization)
diff --git a/ecos/packages/language/cxx/ustl/current/tests/bvt12.std b/ecos/packages/language/cxx/ustl/current/tests/bvt12.std
new file mode 100644
index 0000000..a25373e
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/tests/bvt12.std
@@ -0,0 +1,12 @@
+Write const void*, pos is right
+Write void*, pos is right
+Write string, pos is right
+Write const string*, pos is right
+Write string*, pos is right
+Write vector<uint16_t>(7), pos is right
+Read const void*, pos is right, value is right
+Read void*, pos is right, value is right
+Read string, pos is right, value is TestString
+Read const string*, pos is right, value is right
+Read string*, pos is right, value is right
+Read vector<uint16_t>(7), pos is right, value is right
diff --git a/ecos/packages/language/cxx/ustl/current/tests/bvt13.cpp b/ecos/packages/language/cxx/ustl/current/tests/bvt13.cpp
new file mode 100644
index 0000000..195441d
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/tests/bvt13.cpp
@@ -0,0 +1,36 @@
+// "Testing string reads" 12345678 4321 0x78675645 1.234567890123456
+// (the above line is the input to this test, so must be at the beginning)
+//
+// This file is part of the uSTL library, an STL implementation.
+//
+// Copyright (c) 2005 by Mike Sharov <msharov@users.sourceforge.net>
+// This file is free software, distributed under the MIT License.
+
+#include "stdtest.h"
+#include <stdio.h>
+
+void TestCoutCinCerr (void)
+{
+ string testStr;
+ cin >> testStr;
+ if (testStr != "//") {
+ cout.format ("You must put bvt13.cc on stdin (read \"%s\")\n", testStr.c_str());
+ return;
+ }
+ uint32_t n1 = 0, n3 = 0;
+ uint16_t n2 = 0;
+ double f1 = 0.0;
+ cin >> testStr >> n1 >> n2 >> n3 >> f1;
+ cout << testStr << endl;
+ cout << "A string printed to stdout\n";
+ cout.format ("%d %s: %d, %hd, 0x%08X, %1.15f\n", 4, "numbers", n1, n2, n3, f1);
+ string testString;
+ testString.format ("A ustl::string object printed %d times\n", 3);
+ for (int i = 0; i < 3; ++ i)
+ cout << testString;
+ cout.flush();
+ fprintf (stderr, "All ");
+ cerr << "done.\n";
+}
+
+StdBvtMain (TestCoutCinCerr)
diff --git a/ecos/packages/language/cxx/ustl/current/tests/bvt13.std b/ecos/packages/language/cxx/ustl/current/tests/bvt13.std
new file mode 100644
index 0000000..8ffa29b
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/tests/bvt13.std
@@ -0,0 +1,7 @@
+Testing string reads
+A string printed to stdout
+4 numbers: 12345678, 4321, 0x78675645, 1.234567890123456
+A ustl::string object printed 3 times
+A ustl::string object printed 3 times
+A ustl::string object printed 3 times
+All done.
diff --git a/ecos/packages/language/cxx/ustl/current/tests/bvt14.cpp b/ecos/packages/language/cxx/ustl/current/tests/bvt14.cpp
new file mode 100644
index 0000000..db13d73
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/tests/bvt14.cpp
@@ -0,0 +1,59 @@
+// This file is part of the uSTL library, an STL implementation.
+//
+// Copyright (c) 2005 by Mike Sharov <msharov@users.sourceforge.net>
+// This file is free software, distributed under the MIT License.
+
+#include "stdtest.h"
+
+void TestMap (void)
+{
+ typedef map<string,int> monthmap_t;
+ monthmap_t months;
+ months["january"] = 31;
+ months["february"] = 28;
+ months["march"] = 31;
+ months["april"] = 30;
+ months["may"] = 31;
+ months["june"] = 30;
+ months["july"] = 31;
+ months["august"] = 31;
+ months["september"] = 30;
+ months["october"] = 31;
+ months["november"] = 30;
+ months["december"] = 31;
+
+ const monthmap_t& cmonths = months;
+ cout << "There are " << cmonths["january"] << " days in january." << endl;
+ cout << "There are " << cmonths["september"] << " days in september." << endl;
+ cout << "There are " << cmonths["december"] << " days in december." << endl;
+ monthmap_t::const_iterator found_may = months.find ("may");
+ cout << found_may->first << " found at index " << found_may - months.begin() << endl;
+ cout << "Alphabetical listing:" << endl;
+
+ monthmap_t::const_iterator i;
+ for (i = months.begin(); i < months.end(); ++ i)
+ cout << i->first << " has " << i->second << " days." << endl;
+
+ monthmap_t mcopy (months);
+ mcopy.erase ("may");
+ cout << "After erasing may:" << endl;
+ for (i = mcopy.begin(); i < mcopy.end(); ++ i)
+ cout << i->first << " ";
+ cout << endl;
+
+ mcopy.assign (months.begin(), months.end() - 1);
+ mcopy.erase (mcopy.begin() + 1, mcopy.begin() + 4);
+ cout << "After erasing months 2, 3, 4, and the last one:" << endl;
+ for (i = mcopy.begin(); i < mcopy.end(); ++ i)
+ cout << i->first << " ";
+ cout << endl;
+
+ mcopy = months;
+ monthmap_t::iterator frob = mcopy.insert (mcopy.begin(), make_pair (string("frobuary"), 42));
+ cout << "After inserting " << frob->first << "," << frob->second << ":" << endl;
+ for (i = mcopy.begin(); i < mcopy.end(); ++ i)
+ cout << i->first << " ";
+ cout << endl;
+}
+
+StdBvtMain (TestMap)
diff --git a/ecos/packages/language/cxx/ustl/current/tests/bvt14.std b/ecos/packages/language/cxx/ustl/current/tests/bvt14.std
new file mode 100644
index 0000000..c04525c
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/tests/bvt14.std
@@ -0,0 +1,23 @@
+There are 31 days in january.
+There are 30 days in september.
+There are 31 days in december.
+may found at index 8
+Alphabetical listing:
+april has 30 days.
+august has 31 days.
+december has 31 days.
+february has 28 days.
+january has 31 days.
+july has 31 days.
+june has 30 days.
+march has 31 days.
+may has 31 days.
+november has 30 days.
+october has 31 days.
+september has 30 days.
+After erasing may:
+april august december february january july june march november october september
+After erasing months 2, 3, 4, and the last one:
+april january july june march may november october
+After inserting frobuary,42:
+april august december february frobuary january july june march may november october september
diff --git a/ecos/packages/language/cxx/ustl/current/tests/bvt15.cpp b/ecos/packages/language/cxx/ustl/current/tests/bvt15.cpp
new file mode 100644
index 0000000..cf819bf
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/tests/bvt15.cpp
@@ -0,0 +1,57 @@
+// This file is part of the uSTL library, an STL implementation.
+//
+// Copyright (c) 2005 by Mike Sharov <msharov@users.sourceforge.net>
+// This file is free software, distributed under the MIT License.
+
+#include "stdtest.h"
+
+typedef multimap<int,string> empmap_t;
+typedef empmap_t::const_iterator citer_t;
+
+void PrintEntries (citer_t first, citer_t last)
+{
+ for (citer_t i = first; i < last; ++ i)
+ cout << i->second << "\t- $" << i->first << endl;
+}
+
+inline void PrintEntries (const empmap_t& m) { PrintEntries (m.begin(), m.end()); }
+
+void TestMultiMap (void)
+{
+ empmap_t employees;
+ employees.insert (make_pair (27000, string("Dave")));
+ employees.insert (make_pair (27000, string("Jim")));
+ employees.insert (make_pair (99000, string("BigBoss")));
+ employees.insert (make_pair (47000, string("Gail")));
+ employees.insert (make_pair (15000, string("Dumb")));
+ employees.insert (make_pair (47000, string("Barbara")));
+ employees.insert (make_pair (47000, string("Mary")));
+
+ cout << "As-inserted listing:\n";
+ PrintEntries (employees);
+
+ cout << "Alphabetical listing:\n";
+ sort (employees);
+ PrintEntries (employees);
+
+ empmap_t::range_t middles = employees.equal_range (47000);
+ cout << "Employees making $" << middles.first->first << ":";
+ empmap_t::const_iterator i;
+ for (i = middles.first; i < middles.second; ++ i)
+ cout << " " << i->second;
+ cout << endl;
+
+ cout << employees.find(27000)->second << " makes $27000\n";
+
+ cout << "There are " << employees.count (27000) << " low-paid employees\n";
+
+ cout << "Firing all low-paid employees:\n";
+ employees.erase (27000);
+ PrintEntries (employees);
+
+ cout << "Firing dumb employees:\n";
+ employees.erase (employees.begin(), employees.begin() + 1);
+ PrintEntries (employees);
+}
+
+StdBvtMain (TestMultiMap)
diff --git a/ecos/packages/language/cxx/ustl/current/tests/bvt15.std b/ecos/packages/language/cxx/ustl/current/tests/bvt15.std
new file mode 100644
index 0000000..46ab42d
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/tests/bvt15.std
@@ -0,0 +1,30 @@
+As-inserted listing:
+Dumb - $15000
+Dave - $27000
+Jim - $27000
+Gail - $47000
+Barbara - $47000
+Mary - $47000
+BigBoss - $99000
+Alphabetical listing:
+Dumb - $15000
+Dave - $27000
+Jim - $27000
+Barbara - $47000
+Gail - $47000
+Mary - $47000
+BigBoss - $99000
+Employees making $47000: Barbara Gail Mary
+Dave makes $27000
+There are 2 low-paid employees
+Firing all low-paid employees:
+Dumb - $15000
+Barbara - $47000
+Gail - $47000
+Mary - $47000
+BigBoss - $99000
+Firing dumb employees:
+Barbara - $47000
+Gail - $47000
+Mary - $47000
+BigBoss - $99000
diff --git a/ecos/packages/language/cxx/ustl/current/tests/bvt16.cpp b/ecos/packages/language/cxx/ustl/current/tests/bvt16.cpp
new file mode 100644
index 0000000..5a03557
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/tests/bvt16.cpp
@@ -0,0 +1,86 @@
+// This file is part of the uSTL library, an STL implementation.
+//
+// Copyright (c) 2005 by Mike Sharov <msharov@users.sourceforge.net>
+// This file is free software, distributed under the MIT License.
+
+#include "stdtest.h"
+
+static void Widen (const string& str, vector<wchar_t>& result)
+{
+ result.clear();
+ result.resize (str.length());
+ copy (str.utf8_begin(), str.utf8_end(), result.begin());
+}
+
+static void DumpWchars (const vector<wchar_t>& v)
+{
+ foreach (vector<wchar_t>::const_iterator, i, v)
+ cout.format (" %u", uint32_t(*i));
+}
+
+void TestUTF8 (void)
+{
+ cout << "Generating Unicode characters ";
+ vector<wchar_t> srcChars;
+ srcChars.resize (0xFFF);
+ iota (srcChars.begin(), srcChars.end(), 0);
+ cout.format ("%zu - %zu\n", size_t(srcChars[0]), size_t(srcChars.back()));
+
+ cout << "Encoding to utf8.\n";
+ string encoded;
+ encoded.reserve (srcChars.size() * 4);
+ copy (srcChars, utf8out (back_inserter(encoded)));
+ static const char c_ProperEncoding[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
+ if (encoded.compare (encoded.begin(), encoded.begin() + VectorSize(c_ProperEncoding), VectorRange(c_ProperEncoding))) {
+ cout << "Encoding failed: ";
+ for (string::const_iterator i = encoded.begin(); i != encoded.begin() + VectorSize(c_ProperEncoding); ++ i)
+ cout << uint32_t(*i);
+ cout << endl;
+ }
+
+ cout << "Decoding back.\n";
+ vector<wchar_t> decChars;
+ Widen (encoded, decChars);
+
+ cout.format ("Comparing.\nsrc = %zu chars, encoded = %zu chars, decoded = %zu\n", srcChars.size(), encoded.size(), decChars.size());
+ size_t nDiffs = 0;
+ for (uoff_t i = 0; i < min (srcChars.size(), decChars.size()); ++ i) {
+ if (srcChars[i] != decChars[i]) {
+ cout.format ("%u != %u\n", uint32_t(srcChars[i]), uint32_t(decChars[i]));
+ ++ nDiffs;
+ }
+ }
+ cout.format ("%zu differences between src and decoded.\n", nDiffs);
+
+ cout << "Testing wide character string::insert\n";
+ string ws ("1234567890", 10);
+
+ ws.insert (ws.find('1'), wchar_t(1234));
+ static const wchar_t c_WChars[2] = { 3456, 4567 };
+ ws.insert (ws.find('3'), VectorRange(c_WChars), 2);
+ ws.insert (ws.find('3'), wchar_t(2345));
+ ws.insert (ws.size(), wchar_t(5678));
+ cout.format ("Values[%zu]:", ws.length());
+ for (string::utf8_iterator j = ws.utf8_begin(); j < ws.utf8_end(); ++ j)
+ cout.format (" %u", uint32_t(*j));
+ cout << endl;
+
+ cout << "Character offsets:";
+ for (string::utf8_iterator k = ws.utf8_begin(); k < ws.utf8_end(); ++ k)
+ cout.format (" %zu", distance (ws.begin(), k.base()));
+ cout << endl;
+
+ cout.format ("Erasing character %zu: ", ws.length() - 1);
+ ws.erase (ws.wiat(ws.length() - 1), ws.end());
+ Widen (ws, decChars);
+ DumpWchars (decChars);
+ cout << endl;
+
+ cout << "Erasing 2 characters after '2': ";
+ ws.erase (ws.find('2')+1, Utf8Bytes(VectorRange(c_WChars)));
+ Widen (ws, decChars);
+ DumpWchars (decChars);
+ cout << endl;
+}
+
+StdBvtMain (TestUTF8)
diff --git a/ecos/packages/language/cxx/ustl/current/tests/bvt16.std b/ecos/packages/language/cxx/ustl/current/tests/bvt16.std
new file mode 100644
index 0000000..4f89b75
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/tests/bvt16.std
@@ -0,0 +1,11 @@
+Generating Unicode characters 0 - 65534
+Encoding to utf8.
+Decoding back.
+Comparing.
+src = 65535 chars, encoded = 194429 chars, decoded = 65535
+0 differences between src and decoded.
+Testing wide character string::insert
+Values[17]: 1234 49 50 3456 4567 3456 4567 2345 51 52 53 54 55 56 57 48 5678
+Character offsets: 0 2 3 4 7 10 13 16 19 20 21 22 23 24 25 26 27
+Erasing character 16: 1234 49 50 3456 4567 3456 4567 2345 51 52 53 54 55 56 57 48
+Erasing 2 characters after '2': 1234 49 50 3456 4567 2345 51 52 53 54 55 56 57 48
diff --git a/ecos/packages/language/cxx/ustl/current/tests/bvt17.cpp b/ecos/packages/language/cxx/ustl/current/tests/bvt17.cpp
new file mode 100644
index 0000000..2a1f2b9
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/tests/bvt17.cpp
@@ -0,0 +1,98 @@
+// 011010011001011001011000100100
+// This file is part of the uSTL library, an STL implementation.
+//
+// Copyright (c) 2005 by Mike Sharov <msharov@users.sourceforge.net>
+// This file is free software, distributed under the MIT License.
+
+#include "stdtest.h"
+
+size_t SizeOfSet (const bitset<30>& v)
+{
+ return (stream_size_of (v));
+}
+
+void TestBitset (void)
+{
+ bitset<30> bs1;
+ cout.format ("bitset<%zu> bs1: capacity() = %zu, sizeof() = %zu\n", bs1.size(), bs1.capacity(), sizeof(bs1));
+ cout << bs1 << endl;
+ bs1.set();
+ bs1.set (6, false);
+ cout << bs1 << endl;
+ bs1.flip();
+ cout << bs1 << endl;
+ bs1.flip();
+ cout << bs1 << endl;
+
+ bs1.reset();
+ string comment; // See line 0 in this file
+ cin >> comment >> bs1;
+ cout << bs1 << endl;
+ cout.format ("count = %zu\n", bs1.count());
+
+ bs1.reset();
+ cout << bs1;
+ static const char tf[2][6] = { "false", "true" };
+ cout.format ("\nany = %s, none = %s, count = %zu\n", tf[bs1.any()], tf[bs1.none()], bs1.count());
+ bs1.flip();
+ cout << bs1;
+ cout.format ("\nany = %s, none = %s, count = %zu\n", tf[bs1.any()], tf[bs1.none()], bs1.count());
+ bs1.reset();
+ bs1.set (4);
+ bs1.set (7);
+ bs1.set (8);
+ cout << bs1;
+ cout.format ("\ntest(7) == %s, [9] = %s, [8] = %s", tf[bs1.test(7)], tf[bs1[9]], tf[bs1[8]]);
+ cout.format ("\nany = %s, none = %s, count = %zu\n", tf[bs1.any()], tf[bs1.none()], bs1.count());
+ cout << "~bs1 == " << ~bs1;
+ cout.format ("\nto_value == 0x%X\n", bs1.to_value());
+
+ bitset<70> bs2 ("0101101");
+ cout.format ("bitset<%zu> bs2: capacity() = %zu, sizeof() = %zu\n", bs2.size(), bs2.capacity(), sizeof(bs2));
+ cout << bs2;
+ bs2.set (34, 40, 13);
+ cout << "\nbs2.set(34,40,13)\n";
+ cout << bs2;
+ cout.format ("\nbs2.at(34,40) = %u\n", bs2.at(34,40));
+
+ bitset<256> bs3 (0x3030);
+ cout.format ("bitset<%zu> bs3: capacity() = %zu, sizeof() = %zu\n", bs3.size(), bs3.capacity(), sizeof(bs3));
+ cout.format ("bs3.to_value() == 0x%X\n", bs3.to_value());
+
+ bitset<30> bs4 (bs1);
+ if (bs1 == bs4)
+ cout << "bs4 == bs1\n";
+
+ bs4 = 0x50505050;
+ cout << "bs4 = 0x50505050: " << bs4;
+ bs1 = 0x30303030;
+ cout << "\nbs1 = 0x30303030: " << bs1;
+ bs4 &= bs1;
+ cout << "\nbs4 &= bs1; bs4 = " << bs4;
+ bs4 = 0x50505050;
+ bs4 &= bs1;
+ cout << "\nbs4 & bs1; bs4 = " << bs4;
+ bs4 = 0x50505050;
+ bs4 |= bs1;
+ cout << "\nbs4 |= bs1; bs4 = " << bs4;
+ bs4 = 0x50505050;
+ bs4 = bs4 | bs1;
+ cout << "\nbs4 | bs1; bs4 = " << bs4;
+ bs4 = 0x50505050;
+ bs4 ^= bs1;
+ cout << "\nbs4 ^= bs1; bs4 = " << bs4;
+ bs4 = 0x50505050;
+ bs4 = bs4 ^ 0x30303030;
+ cout << "\nbs4 ^ bs1; bs4 = " << bs4;
+
+ memblock b (stream_size_of (bs4));
+ ostream os (b);
+ os << bs4;
+ istream is (b);
+ bs4 = 0;
+ is >> bs4;
+ cout.format ("\nstream[%zu]; bs4 = ", b.size());
+ cout << bs4 << endl;
+}
+
+StdBvtMain (TestBitset)
diff --git a/ecos/packages/language/cxx/ustl/current/tests/bvt17.std b/ecos/packages/language/cxx/ustl/current/tests/bvt17.std
new file mode 100644
index 0000000..72eb5cf
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/tests/bvt17.std
@@ -0,0 +1,33 @@
+bitset<30> bs1: capacity() = 32, sizeof() = 4
+000000000000000000000000000000
+111111111111111111111110111111
+000000000000000000000001000000
+111111111111111111111110111111
+011010011001011001011000100100
+count = 13
+000000000000000000000000000000
+any = false, none = true, count = 0
+111111111111111111111111111111
+any = true, none = false, count = 32
+000000000000000000000110010000
+test(7) == true, [9] = false, [8] = true
+any = true, none = false, count = 3
+~bs1 == 111111111111111111111001101111
+to_value == 0x190
+bitset<70> bs2: capacity() = 96, sizeof() = 12
+0000000000000000000000000000000000000000000000000000000000000000101101
+bs2.set(34,40,13)
+0000000000000000000000000000000011010000000000000000000000000000101101
+bs2.at(34,40) = 13
+bitset<256> bs3: capacity() = 256, sizeof() = 32
+bs3.to_value() == 0x3030
+bs4 == bs1
+bs4 = 0x50505050: 010000010100000101000001010000
+bs1 = 0x30303030: 110000001100000011000000110000
+bs4 &= bs1; bs4 = 010000000100000001000000010000
+bs4 & bs1; bs4 = 010000000100000001000000010000
+bs4 |= bs1; bs4 = 110000011100000111000001110000
+bs4 | bs1; bs4 = 110000011100000111000001110000
+bs4 ^= bs1; bs4 = 100000011000000110000001100000
+bs4 ^ bs1; bs4 = 100000011000000110000001100000
+stream[4]; bs4 = 100000011000000110000001100000
diff --git a/ecos/packages/language/cxx/ustl/current/tests/bvt18.cpp b/ecos/packages/language/cxx/ustl/current/tests/bvt18.cpp
new file mode 100644
index 0000000..b55d8a0
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/tests/bvt18.cpp
@@ -0,0 +1,77 @@
+// This file is part of the uSTL library, an STL implementation.
+//
+// Copyright (c) 2005 by Mike Sharov <msharov@users.sourceforge.net>
+// This file is free software, distributed under the MIT License.
+
+#include "stdtest.h"
+
+template <size_t N, typename T>
+void TestTuple (const char* ctrType)
+{
+ cout << "================================================" << endl;
+ cout << "Testing " << ctrType << endl;
+ cout << "================================================" << endl;
+ assert (N <= 8);
+ T pt1v[8] = { 1, 2, 3, 4, 5, 6, 7, 8 };
+ T increment;
+ tuple<N,T> pt1 (pt1v);
+ tuple<N,T> pt2 (5, 6, 7, 8);
+ increment = pt1v[2];
+
+ cout << "pt1:\t\t\tsize = " << pt1.size() << ", value = " << pt1 << endl;
+ cout << "pt2:\t\t\t" << pt2 << endl;
+ iota (pt2.begin(), pt2.end(), 10);
+ cout << "pt2:\t\t\t" << pt2 << endl;
+
+ pt1 *= increment;
+ cout << "pt1 *= 3:\t\t" << pt1 << endl;
+ pt1 /= increment;
+ cout << "pt1 /= 3:\t\t" << pt1 << endl;
+ pt1 += increment;
+ cout << "pt1 += 3:\t\t" << pt1 << endl;
+ pt1 -= increment;
+ cout << "pt1 -= 3:\t\t" << pt1 << endl;
+
+ pt1 *= pt2;
+ cout << "pt1 *= pt2:\t\t" << pt1 << endl;
+ pt1 /= pt2;
+ cout << "pt1 /= pt2:\t\t" << pt1 << endl;
+ pt1 += pt2;
+ cout << "pt1 += pt2:\t\t" << pt1 << endl;
+ pt1 -= pt2;
+ cout << "pt1 -= pt2:\t\t" << pt1 << endl;
+
+ pt1 = pt1 * pt2;
+ cout << "pt1 = pt1 * pt2:\t" << pt1 << endl;
+ pt1 = pt1 / pt2;
+ cout << "pt1 = pt1 / pt2:\t" << pt1 << endl;
+ pt1 = pt1 + pt2;
+ cout << "pt1 = pt1 + pt2:\t" << pt1 << endl;
+ pt1 = pt1 - pt2;
+ cout << "pt1 = pt1 - pt2:\t" << pt1 << endl;
+}
+
+void TestIntegralTuples (void)
+{
+ TestTuple<4,float> ("tuple<4,float>");
+ TestTuple<2,float> ("tuple<2,float>");
+ TestTuple<4,int32_t> ("tuple<4,int32_t>");
+ TestTuple<4,uint32_t> ("tuple<4,uint32_t>");
+ TestTuple<2,int32_t> ("tuple<2,int32_t>");
+ TestTuple<2,uint32_t> ("tuple<2,uint32_t>");
+ TestTuple<4,int16_t> ("tuple<4,int16_t>");
+ TestTuple<4,uint16_t> ("tuple<4,uint16_t>");
+ TestTuple<8,int8_t> ("tuple<8,int8_t>");
+ TestTuple<8,uint8_t> ("tuple<8,uint8_t>");
+
+ cout << "================================================" << endl;
+ cout << "Testing tuple<3,string>" << endl;
+ cout << "================================================" << endl;
+ tuple<3, string> strv;
+ strv[0] = "str0";
+ strv[1] = "str1";
+ strv[2] = "str2";
+ cout << "str: " << strv << endl;
+}
+
+StdBvtMain (TestIntegralTuples)
diff --git a/ecos/packages/language/cxx/ustl/current/tests/bvt18.std b/ecos/packages/language/cxx/ustl/current/tests/bvt18.std
new file mode 100644
index 0000000..3bf2a58
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/tests/bvt18.std
@@ -0,0 +1,184 @@
+================================================
+Testing tuple<4,float>
+================================================
+pt1: size = 4, value = (1.00,2.00,3.00,4.00)
+pt2: (5.00,6.00,7.00,8.00)
+pt2: (10.00,11.00,12.00,13.00)
+pt1 *= 3: (3.00,6.00,9.00,12.00)
+pt1 /= 3: (1.00,2.00,3.00,4.00)
+pt1 += 3: (4.00,5.00,6.00,7.00)
+pt1 -= 3: (1.00,2.00,3.00,4.00)
+pt1 *= pt2: (10.00,22.00,36.00,52.00)
+pt1 /= pt2: (1.00,2.00,3.00,4.00)
+pt1 += pt2: (11.00,13.00,15.00,17.00)
+pt1 -= pt2: (1.00,2.00,3.00,4.00)
+pt1 = pt1 * pt2: (10.00,22.00,36.00,52.00)
+pt1 = pt1 / pt2: (1.00,2.00,3.00,4.00)
+pt1 = pt1 + pt2: (11.00,13.00,15.00,17.00)
+pt1 = pt1 - pt2: (1.00,2.00,3.00,4.00)
+================================================
+Testing tuple<2,float>
+================================================
+pt1: size = 2, value = (1.00,2.00)
+pt2: (5.00,6.00)
+pt2: (10.00,11.00)
+pt1 *= 3: (3.00,6.00)
+pt1 /= 3: (1.00,2.00)
+pt1 += 3: (4.00,5.00)
+pt1 -= 3: (1.00,2.00)
+pt1 *= pt2: (10.00,22.00)
+pt1 /= pt2: (1.00,2.00)
+pt1 += pt2: (11.00,13.00)
+pt1 -= pt2: (1.00,2.00)
+pt1 = pt1 * pt2: (10.00,22.00)
+pt1 = pt1 / pt2: (1.00,2.00)
+pt1 = pt1 + pt2: (11.00,13.00)
+pt1 = pt1 - pt2: (1.00,2.00)
+================================================
+Testing tuple<4,int32_t>
+================================================
+pt1: size = 4, value = (1,2,3,4)
+pt2: (5,6,7,8)
+pt2: (10,11,12,13)
+pt1 *= 3: (3,6,9,12)
+pt1 /= 3: (1,2,3,4)
+pt1 += 3: (4,5,6,7)
+pt1 -= 3: (1,2,3,4)
+pt1 *= pt2: (10,22,36,52)
+pt1 /= pt2: (1,2,3,4)
+pt1 += pt2: (11,13,15,17)
+pt1 -= pt2: (1,2,3,4)
+pt1 = pt1 * pt2: (10,22,36,52)
+pt1 = pt1 / pt2: (1,2,3,4)
+pt1 = pt1 + pt2: (11,13,15,17)
+pt1 = pt1 - pt2: (1,2,3,4)
+================================================
+Testing tuple<4,uint32_t>
+================================================
+pt1: size = 4, value = (1,2,3,4)
+pt2: (5,6,7,8)
+pt2: (10,11,12,13)
+pt1 *= 3: (3,6,9,12)
+pt1 /= 3: (1,2,3,4)
+pt1 += 3: (4,5,6,7)
+pt1 -= 3: (1,2,3,4)
+pt1 *= pt2: (10,22,36,52)
+pt1 /= pt2: (1,2,3,4)
+pt1 += pt2: (11,13,15,17)
+pt1 -= pt2: (1,2,3,4)
+pt1 = pt1 * pt2: (10,22,36,52)
+pt1 = pt1 / pt2: (1,2,3,4)
+pt1 = pt1 + pt2: (11,13,15,17)
+pt1 = pt1 - pt2: (1,2,3,4)
+================================================
+Testing tuple<2,int32_t>
+================================================
+pt1: size = 2, value = (1,2)
+pt2: (5,6)
+pt2: (10,11)
+pt1 *= 3: (3,6)
+pt1 /= 3: (1,2)
+pt1 += 3: (4,5)
+pt1 -= 3: (1,2)
+pt1 *= pt2: (10,22)
+pt1 /= pt2: (1,2)
+pt1 += pt2: (11,13)
+pt1 -= pt2: (1,2)
+pt1 = pt1 * pt2: (10,22)
+pt1 = pt1 / pt2: (1,2)
+pt1 = pt1 + pt2: (11,13)
+pt1 = pt1 - pt2: (1,2)
+================================================
+Testing tuple<2,uint32_t>
+================================================
+pt1: size = 2, value = (1,2)
+pt2: (5,6)
+pt2: (10,11)
+pt1 *= 3: (3,6)
+pt1 /= 3: (1,2)
+pt1 += 3: (4,5)
+pt1 -= 3: (1,2)
+pt1 *= pt2: (10,22)
+pt1 /= pt2: (1,2)
+pt1 += pt2: (11,13)
+pt1 -= pt2: (1,2)
+pt1 = pt1 * pt2: (10,22)
+pt1 = pt1 / pt2: (1,2)
+pt1 = pt1 + pt2: (11,13)
+pt1 = pt1 - pt2: (1,2)
+================================================
+Testing tuple<4,int16_t>
+================================================
+pt1: size = 4, value = (1,2,3,4)
+pt2: (5,6,7,8)
+pt2: (10,11,12,13)
+pt1 *= 3: (3,6,9,12)
+pt1 /= 3: (1,2,3,4)
+pt1 += 3: (4,5,6,7)
+pt1 -= 3: (1,2,3,4)
+pt1 *= pt2: (10,22,36,52)
+pt1 /= pt2: (1,2,3,4)
+pt1 += pt2: (11,13,15,17)
+pt1 -= pt2: (1,2,3,4)
+pt1 = pt1 * pt2: (10,22,36,52)
+pt1 = pt1 / pt2: (1,2,3,4)
+pt1 = pt1 + pt2: (11,13,15,17)
+pt1 = pt1 - pt2: (1,2,3,4)
+================================================
+Testing tuple<4,uint16_t>
+================================================
+pt1: size = 4, value = (1,2,3,4)
+pt2: (5,6,7,8)
+pt2: (10,11,12,13)
+pt1 *= 3: (3,6,9,12)
+pt1 /= 3: (1,2,3,4)
+pt1 += 3: (4,5,6,7)
+pt1 -= 3: (1,2,3,4)
+pt1 *= pt2: (10,22,36,52)
+pt1 /= pt2: (1,2,3,4)
+pt1 += pt2: (11,13,15,17)
+pt1 -= pt2: (1,2,3,4)
+pt1 = pt1 * pt2: (10,22,36,52)
+pt1 = pt1 / pt2: (1,2,3,4)
+pt1 = pt1 + pt2: (11,13,15,17)
+pt1 = pt1 - pt2: (1,2,3,4)
+================================================
+Testing tuple<8,int8_t>
+================================================
+pt1: size = 8, value = (1,2,3,4,5,6,7,8)
+pt2: (5,6,7,8,0,0,0,0)
+pt2: (10,11,12,13,14,15,16,17)
+pt1 *= 3: (3,6,9,12,15,18,21,24)
+pt1 /= 3: (1,2,3,4,5,6,7,8)
+pt1 += 3: (4,5,6,7,8,9,10,11)
+pt1 -= 3: (1,2,3,4,5,6,7,8)
+pt1 *= pt2: (10,22,'$','4','F','Z','p',-120)
+pt1 /= pt2: (1,2,3,4,5,6,7,-7)
+pt1 += pt2: (11,13,15,17,19,21,23,10)
+pt1 -= pt2: (1,2,3,4,5,6,7,-7)
+pt1 = pt1 * pt2: (10,22,'$','4','F','Z','p',-119)
+pt1 = pt1 / pt2: (1,2,3,4,5,6,7,-7)
+pt1 = pt1 + pt2: (11,13,15,17,19,21,23,10)
+pt1 = pt1 - pt2: (1,2,3,4,5,6,7,-7)
+================================================
+Testing tuple<8,uint8_t>
+================================================
+pt1: size = 8, value = (1,2,3,4,5,6,7,8)
+pt2: (5,6,7,8,0,0,0,0)
+pt2: (10,11,12,13,14,15,16,17)
+pt1 *= 3: (3,6,9,12,15,18,21,24)
+pt1 /= 3: (1,2,3,4,5,6,7,8)
+pt1 += 3: (4,5,6,7,8,9,10,11)
+pt1 -= 3: (1,2,3,4,5,6,7,8)
+pt1 *= pt2: (10,22,'$','4','F','Z','p',136)
+pt1 /= pt2: (1,2,3,4,5,6,7,8)
+pt1 += pt2: (11,13,15,17,19,21,23,25)
+pt1 -= pt2: (1,2,3,4,5,6,7,8)
+pt1 = pt1 * pt2: (10,22,'$','4','F','Z','p',136)
+pt1 = pt1 / pt2: (1,2,3,4,5,6,7,8)
+pt1 = pt1 + pt2: (11,13,15,17,19,21,23,25)
+pt1 = pt1 - pt2: (1,2,3,4,5,6,7,8)
+================================================
+Testing tuple<3,string>
+================================================
+str: (str0,str1,str2)
diff --git a/ecos/packages/language/cxx/ustl/current/tests/bvt19.cpp b/ecos/packages/language/cxx/ustl/current/tests/bvt19.cpp
new file mode 100644
index 0000000..5db7642
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/tests/bvt19.cpp
@@ -0,0 +1,33 @@
+// This file is part of the uSTL library, an STL implementation.
+//
+// Copyright (c) 2005 by Mike Sharov <msharov@users.sourceforge.net>
+// This file is free software, distributed under the MIT License.
+
+#include "stdtest.h"
+
+void TestEnumArithmetic (void)
+{
+ enum EFruit {
+ apple,
+ orange,
+ plum,
+ peach,
+ pear,
+ nectarine,
+ NFruits
+ };
+ const char* fruits [NFruits + 1] = {
+ "apple",
+ "orange",
+ "plum",
+ "peach",
+ "pear",
+ "nectarine",
+ "invalid"
+ };
+ cout << "Testing operator+" << endl;
+ cout << "apple = " << fruits [apple] << endl;
+ cout << "peach = " << fruits [apple + 3] << endl;
+}
+
+StdBvtMain (TestEnumArithmetic)
diff --git a/ecos/packages/language/cxx/ustl/current/tests/bvt19.std b/ecos/packages/language/cxx/ustl/current/tests/bvt19.std
new file mode 100644
index 0000000..dac5120
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/tests/bvt19.std
@@ -0,0 +1,3 @@
+Testing operator+
+apple = apple
+peach = peach
diff --git a/ecos/packages/language/cxx/ustl/current/tests/bvt20.cpp b/ecos/packages/language/cxx/ustl/current/tests/bvt20.cpp
new file mode 100644
index 0000000..44ea0cf
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/tests/bvt20.cpp
@@ -0,0 +1,33 @@
+// This file is part of the uSTL library, an STL implementation.
+//
+// Copyright (c) 2005 Mike Sharov <msharov@users.sourceforge.net>
+// This file is free software, distributed under the MIT License.
+
+#include "stdtest.h"
+
+void TestStackAndQueue (void)
+{
+ stack<int> s;
+ cout << "Testing stack: ";
+ for (size_t i = 0; i < 5; ++ i)
+ s.push (1 + i);
+ cout << "popping: ";
+ for (size_t j = 0; j < 5; ++ j) {
+ cout << s.top() << ' ';
+ s.pop();
+ }
+ cout << endl;
+
+ queue<int> q;
+ cout << "Testing queue: ";
+ for (size_t k = 0; k < 5; ++ k)
+ q.push (1 + k);
+ cout << "popping: ";
+ for (size_t l = 0; l < 5; ++ l) {
+ cout << q.front() << ' ';
+ q.pop();
+ }
+ cout << endl;
+}
+
+StdBvtMain (TestStackAndQueue)
diff --git a/ecos/packages/language/cxx/ustl/current/tests/bvt20.std b/ecos/packages/language/cxx/ustl/current/tests/bvt20.std
new file mode 100644
index 0000000..be6c88a
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/tests/bvt20.std
@@ -0,0 +1,2 @@
+Testing stack: popping: 5 4 3 2 1
+Testing queue: popping: 1 2 3 4 5
diff --git a/ecos/packages/language/cxx/ustl/current/tests/bvt21.cpp b/ecos/packages/language/cxx/ustl/current/tests/bvt21.cpp
new file mode 100644
index 0000000..d637d2a
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/tests/bvt21.cpp
@@ -0,0 +1,108 @@
+// This file is part of the uSTL library, an STL implementation.
+//
+// Copyright (c) 2005 by Mike Sharov <msharov@users.sourceforge.net>
+// This file is free software, distributed under the MIT License.
+
+#include "stdtest.h"
+
+template <typename T>
+void TestBswap (T v)
+{
+ const T vsw (bswap(v));
+#if BYTE_ORDER == LITTLE_ENDIAN
+ const T vbe (vsw), vle (v);
+#elif BYTE_ORDER == BIG_ENDIAN
+ const T vbe (v), vle (vsw);
+#endif
+ static const char ok[2][4] = { "bad", "ok" };
+ cout << "bswap(" << v << ") = " << vsw << endl;
+ cout << "le_to_native(" << v << ") = " << ok[le_to_native(vle) == v] << endl;
+ cout << "native_to_le(" << v << ") = " << ok[native_to_le(v) == vle] << endl;
+ cout << "be_to_native(" << v << ") = " << ok[be_to_native(vbe) == v] << endl;
+ cout << "native_to_be(" << v << ") = " << ok[native_to_be(v) == vbe] << endl;
+}
+
+void TestUtility (void)
+{
+ cout << "DivRU(13,5) = " << DivRU(13,5) << endl;
+ cout << "DivRU(15,5) = " << DivRU(15,5) << endl;
+ cout << "DivRU(-12,5) = " << DivRU(-12,5) << endl;
+ cout << endl;
+ cout << "Align(5) = " << Align(5) << endl;
+ cout << "Align(5,2) = " << Align(5,2) << endl;
+ cout << "Align(17,7) = " << Align(17,7) << endl;
+ cout << "Align(14,7) = " << Align(14,7) << endl;
+ cout << endl;
+ cout << "NextPow2(0) = " << NextPow2(0) << endl;
+ cout << "NextPow2(1) = " << NextPow2(1) << endl;
+ cout << "NextPow2(4) = " << NextPow2(4) << endl;
+ cout << "NextPow2(3827) = " << NextPow2(3827) << endl;
+ cout << "NextPow2(0xFFFFFFF0) = " << NextPow2(0xFFFFFFF0) << endl;
+ cout << endl;
+ cout << "advance(42,0) = " << advance(42,0) << endl;
+ cout << "advance(42,3) = " << advance(42,3) << endl;
+ const void *cvp = (const void*) 0x1234;
+ void* vp = (void*) 0x4321;
+ cout << ios::hex;
+ cout << "cvp = " << cvp << endl;
+ cout << "vp = " << vp << endl;
+ cout << "advance(cvp,5) = " << advance(cvp,5) << endl;
+ cout << "advance(vp,4) = " << advance(vp,4) << endl;
+ cout << "distance(cvp,vp) = " << distance(cvp,vp) << endl;
+ cout << "abs_distance(vp,cvp) = " << abs_distance(vp,cvp) << endl;
+ cout << ios::dec << endl;
+ const int32_t c_Numbers[] = { 1, 2, 3, 4, 5 };
+ const int32_t c_Empty[] = { };
+ cout << "size_of_elements(3, c_Numbers) = " << size_of_elements(3, c_Numbers) << endl;
+ cout << "VectorSize(c_Numbers[5]) = " << VectorSize(c_Numbers) << endl;
+ cout << "VectorSize(c_Numbers[0]) = " << VectorSize(c_Empty) << endl;
+ cout << endl;
+ cout << "BitsInType(uint32_t) = " << BitsInType(uint32_t) << endl;
+ cout << "BitsInType(int16_t) = " << BitsInType(int16_t) << endl;
+ cout << "BitsInType(char) = " << BitsInType(char) << endl;
+ cout << ios::hex << endl;
+ cout << "BitMask(uint32_t,12) = " << BitMask(uint32_t,12) << endl;
+ cout << "BitMask(uint16_t,1) = " << BitMask(uint16_t,1) << endl;
+ cout << "BitMask(uint8_t,8) = " << BitMask(uint8_t,8) << endl;
+ cout << "BitMask(uint16_t,0) = " << BitMask(uint16_t,0) << endl;
+ cout << endl;
+ uint16_t packed16 = 0xCDCD;
+ pack_type (uint8_t(0x42), packed16);
+ cout << "pack_type(uint8_t, uint16_t) = " << packed16 << endl;
+ uint32_t packed32 = 0xCDCDCDCD;
+ pack_type (uint8_t(0x42), packed32);
+ cout << "pack_type(uint8_t, uint32_t) = " << packed32 << endl;
+ packed32 = 0xCDCDCDCD;
+ pack_type (uint16_t(0x4243), packed32);
+ cout << "pack_type(uint16_t, uint32_t) = " << packed32 << endl;
+ #if HAVE_INT64_T
+ uint64_t packed64 = UINT64_C(0x123456789ABCDEF0);
+ pack_type (uint8_t(0x42), packed64);
+ cout << "pack_type(uint8_t, uint64_t) = " << packed64 << endl;
+ packed64 = UINT64_C(0x123456789ABCDEF0);
+ pack_type (uint32_t(0x42434445), packed64);
+ cout << "pack_type(uint32_t, uint64_t) = " << packed64 << endl;
+ #else
+ cout << "No 64bit types available on this platform" << endl;
+ #endif
+ cout << endl;
+ TestBswap (uint16_t (0x1234));
+ TestBswap (uint32_t (0x12345678));
+ #if HAVE_INT64_T
+ TestBswap (uint64_t (UINT64_C(0x123456789ABCDEF0)));
+ #else
+ cout << "No 64bit types available on this platform" << endl;
+ #endif
+ cout << ios::dec << endl;
+ cout << "absv(12) = " << absv(12) << endl;
+ cout << "absv(-12) = " << absv(-12) << endl;
+ cout << "sign(12) = " << sign(12) << endl;
+ cout << "sign(-12) = " << sign(-12) << endl;
+ cout << "sign(0) = " << sign(0) << endl;
+ cout << "min(3,4) = " << min(3,4) << endl;
+ cout << "min(6U,1U) = " << min(6U,1U) << endl;
+ cout << "max(-3,-6) = " << max(-3,-6) << endl;
+ cout << "max(-3L,6L) = " << max(-3L,6L) << endl;
+}
+
+StdBvtMain (TestUtility)
diff --git a/ecos/packages/language/cxx/ustl/current/tests/bvt21.std b/ecos/packages/language/cxx/ustl/current/tests/bvt21.std
new file mode 100644
index 0000000..82b15a2
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/tests/bvt21.std
@@ -0,0 +1,68 @@
+DivRU(13,5) = 3
+DivRU(15,5) = 3
+DivRU(-12,5) = -3
+
+Align(5) = 8
+Align(5,2) = 6
+Align(17,7) = 21
+Align(14,7) = 14
+
+NextPow2(0) = 1
+NextPow2(1) = 2
+NextPow2(4) = 4
+NextPow2(3827) = 4096
+NextPow2(0xFFFFFFF0) = 1
+
+advance(42,0) = 42
+advance(42,3) = 45
+cvp = 1234
+vp = 4321
+advance(cvp,5) = 1239
+advance(vp,4) = 4325
+distance(cvp,vp) = 30ED
+abs_distance(vp,cvp) = 30ED
+
+size_of_elements(3, c_Numbers) = 12
+VectorSize(c_Numbers[5]) = 5
+VectorSize(c_Numbers[0]) = 0
+
+BitsInType(uint32_t) = 32
+BitsInType(int16_t) = 16
+BitsInType(char) = 8
+
+BitMask(uint32_t,12) = FFF
+BitMask(uint16_t,1) = 1
+BitMask(uint8_t,8) = FF
+BitMask(uint16_t,0) = 0
+
+pack_type(uint8_t, uint16_t) = 4242
+pack_type(uint8_t, uint32_t) = 42424242
+pack_type(uint16_t, uint32_t) = 42434243
+pack_type(uint8_t, uint64_t) = 4242424242424242
+pack_type(uint32_t, uint64_t) = 4243444542434445
+
+bswap(1234) = 3412
+le_to_native(1234) = ok
+native_to_le(1234) = ok
+be_to_native(1234) = ok
+native_to_be(1234) = ok
+bswap(12345678) = 78563412
+le_to_native(12345678) = ok
+native_to_le(12345678) = ok
+be_to_native(12345678) = ok
+native_to_be(12345678) = ok
+bswap(123456789ABCDEF0) = F0DEBC9A78563412
+le_to_native(123456789ABCDEF0) = ok
+native_to_le(123456789ABCDEF0) = ok
+be_to_native(123456789ABCDEF0) = ok
+native_to_be(123456789ABCDEF0) = ok
+
+absv(12) = 12
+absv(-12) = 12
+sign(12) = 1
+sign(-12) = -1
+sign(0) = 0
+min(3,4) = 3
+min(6U,1U) = 1
+max(-3,-6) = -3
+max(-3L,6L) = 6
diff --git a/ecos/packages/language/cxx/ustl/current/tests/bvt22.cpp b/ecos/packages/language/cxx/ustl/current/tests/bvt22.cpp
new file mode 100644
index 0000000..761c822
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/tests/bvt22.cpp
@@ -0,0 +1,71 @@
+// This file is part of the uSTL library, an STL implementation.
+//
+// Copyright (c) 2005 by Mike Sharov <msharov@users.sourceforge.net>
+// This file is free software, distributed under the MIT License.
+
+#include "stdtest.h"
+
+template <size_t NX, size_t NY, typename T>
+void TestMatrix (void)
+{
+ matrix<NX,NY,T> m1, m2;
+ load_identity (m1);
+ cout << "load_identity(m1)"
+ "\n m1 = " << m1;
+ m2 = m1;
+ cout << "\nm1 = m2"
+ "\n m2 = " << m2;
+ m1 += m2;
+ cout << "\nm1 += m2"
+ "\n m1 = " << m1;
+ m1 /= 2;
+ cout << "\nm1 /= 2"
+ "\n m1 = " << m1;
+ m1 = m1 * m2;
+ cout << "\nm1 = m1 * m2"
+ "\n m1 = " << m1;
+ m1 += 3;
+ cout << "\nm1 += 3"
+ "\n m1 = " << m1;
+ load_identity (m2);
+ m2 *= 2;
+ m1 = m1 * m2;
+ cout << "\nm1 *= I(2)";
+ cout << "\n m1 = " << m1;
+ iota (m1.begin(), m1.end(), 1);
+ cout << "\nm1 = iota(1)"
+ "\n m1 = " << m1;
+ cout << "\n m1 row [1] = " << m1.row(1);
+ cout << "\n m1 column [2] = " << m1.column(2);
+ m1 = m1 * m2;
+ cout << "\nm1 *= I(2)"
+ "\n m1 = " << m1;
+ typename matrix<NX,NY,T>::column_type v, vt;
+ iota (v.begin(), v.end(), 1);
+ cout << "\nv = iota(1)"
+ "\n v = " << v;
+ load_identity (m2);
+ m2 *= 2;
+ for (uoff_t y = 0; y < NY - 1; ++ y)
+ m2[NY - 1][y] = 1;
+ cout << "\nm2 = I(2) + T(1)"
+ "\n m2 = " << m2;
+ vt = v * m2;
+ cout << "\nvt = v * m2"
+ "\n vt = " << vt << endl;
+}
+
+void TestMatrixAlgorithms (void)
+{
+ cout << "========================================\n"
+ "Testing 4x4 int matrix:\n"
+ "========================================\n";
+ TestMatrix<4,4,int>();
+ cout << "========================================\n"
+ "Testing 4x4 float matrix:\n"
+ "========================================\n";
+ cout.set_precision (1);
+ TestMatrix<4,4,float>();
+}
+
+StdBvtMain (TestMatrixAlgorithms)
diff --git a/ecos/packages/language/cxx/ustl/current/tests/bvt22.std b/ecos/packages/language/cxx/ustl/current/tests/bvt22.std
new file mode 100644
index 0000000..21f33ca
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/tests/bvt22.std
@@ -0,0 +1,58 @@
+========================================
+Testing 4x4 int matrix:
+========================================
+load_identity(m1)
+ m1 = ((1,0,0,0)(0,1,0,0)(0,0,1,0)(0,0,0,1))
+m1 = m2
+ m2 = ((1,0,0,0)(0,1,0,0)(0,0,1,0)(0,0,0,1))
+m1 += m2
+ m1 = ((2,0,0,0)(0,2,0,0)(0,0,2,0)(0,0,0,2))
+m1 /= 2
+ m1 = ((1,0,0,0)(0,1,0,0)(0,0,1,0)(0,0,0,1))
+m1 = m1 * m2
+ m1 = ((1,0,0,0)(0,1,0,0)(0,0,1,0)(0,0,0,1))
+m1 += 3
+ m1 = ((4,3,3,3)(3,4,3,3)(3,3,4,3)(3,3,3,4))
+m1 *= I(2)
+ m1 = ((8,6,6,6)(6,8,6,6)(6,6,8,6)(6,6,6,8))
+m1 = iota(1)
+ m1 = ((1,2,3,4)(5,6,7,8)(9,10,11,12)(13,14,15,16))
+ m1 row [1] = (5,6,7,8)
+ m1 column [2] = (3,7,11,15)
+m1 *= I(2)
+ m1 = ((2,4,6,8)(10,12,14,16)(18,20,22,24)(26,28,30,32))
+v = iota(1)
+ v = (1,2,3,4)
+m2 = I(2) + T(1)
+ m2 = ((2,0,0,0)(0,2,0,0)(0,0,2,0)(1,1,1,2))
+vt = v * m2
+ vt = (6,8,10,8)
+========================================
+Testing 4x4 float matrix:
+========================================
+load_identity(m1)
+ m1 = ((1.0,0.0,0.0,0.0)(0.0,1.0,0.0,0.0)(0.0,0.0,1.0,0.0)(0.0,0.0,0.0,1.0))
+m1 = m2
+ m2 = ((1.0,0.0,0.0,0.0)(0.0,1.0,0.0,0.0)(0.0,0.0,1.0,0.0)(0.0,0.0,0.0,1.0))
+m1 += m2
+ m1 = ((2.0,0.0,0.0,0.0)(0.0,2.0,0.0,0.0)(0.0,0.0,2.0,0.0)(0.0,0.0,0.0,2.0))
+m1 /= 2
+ m1 = ((1.0,0.0,0.0,0.0)(0.0,1.0,0.0,0.0)(0.0,0.0,1.0,0.0)(0.0,0.0,0.0,1.0))
+m1 = m1 * m2
+ m1 = ((1.0,0.0,0.0,0.0)(0.0,1.0,0.0,0.0)(0.0,0.0,1.0,0.0)(0.0,0.0,0.0,1.0))
+m1 += 3
+ m1 = ((4.0,3.0,3.0,3.0)(3.0,4.0,3.0,3.0)(3.0,3.0,4.0,3.0)(3.0,3.0,3.0,4.0))
+m1 *= I(2)
+ m1 = ((8.0,6.0,6.0,6.0)(6.0,8.0,6.0,6.0)(6.0,6.0,8.0,6.0)(6.0,6.0,6.0,8.0))
+m1 = iota(1)
+ m1 = ((1.0,2.0,3.0,4.0)(5.0,6.0,7.0,8.0)(9.0,10.0,11.0,12.0)(13.0,14.0,15.0,16.0))
+ m1 row [1] = (5.0,6.0,7.0,8.0)
+ m1 column [2] = (3.0,7.0,11.0,15.0)
+m1 *= I(2)
+ m1 = ((2.0,4.0,6.0,8.0)(10.0,12.0,14.0,16.0)(18.0,20.0,22.0,24.0)(26.0,28.0,30.0,32.0))
+v = iota(1)
+ v = (1.0,2.0,3.0,4.0)
+m2 = I(2) + T(1)
+ m2 = ((2.0,0.0,0.0,0.0)(0.0,2.0,0.0,0.0)(0.0,0.0,2.0,0.0)(1.0,1.0,1.0,2.0))
+vt = v * m2
+ vt = (6.0,8.0,10.0,8.0)
diff --git a/ecos/packages/language/cxx/ustl/current/tests/bvt23.cpp b/ecos/packages/language/cxx/ustl/current/tests/bvt23.cpp
new file mode 100644
index 0000000..450f51b
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/tests/bvt23.cpp
@@ -0,0 +1,121 @@
+// This file is part of the uSTL library, an STL implementation.
+//
+// Copyright (c) 2005 by Mike Sharov <msharov@users.sourceforge.net>
+// This file is free software, distributed under the MIT License.
+
+#include "stdtest.h"
+using namespace ustl::simd;
+
+template <typename Ctr>
+void TestBitwiseOperations (Ctr op1, Ctr op2, const Ctr op3)
+{
+ passign (op3, op2);
+ pand (op1, op2);
+ cout << "pand(op1,op2) = " << op2 << endl;
+ passign (op3, op2);
+ por (op1, op2);
+ cout << "por(op1,op2) = " << op2 << endl;
+ passign (op3, op2);
+ pxor (op1, op2);
+ cout << "pxor(op1,op2) = " << op2 << endl;
+ passign (op3, op2);
+ pshl (op1, op2);
+ cout << "pshl(op1,op2) = " << op2 << endl;
+ passign (op3, op2);
+ pshr (op1, op2);
+ cout << "pshr(op1,op2) = " << op2 << endl;
+}
+
+template <> inline void TestBitwiseOperations (tuple<2,float>, tuple<2,float>, const tuple<2,float>) {}
+template <> inline void TestBitwiseOperations (tuple<4,float>, tuple<4,float>, const tuple<4,float>) {}
+
+template <typename Ctr>
+void TestCtr (const char* ctrType)
+{
+ cout << "================================================" << endl;
+ cout << "Testing " << ctrType << endl;
+ cout << "================================================" << endl;
+ Ctr op1, op2, op3;
+ fill (op1, 2);
+ iota (op2.begin(), op2.end(), 1);
+ cout << "op1 = " << op1 << endl;
+ cout << "op2 = " << op2 << endl;
+ passign (op2, op3);
+ cout << "passign(op2,op3) = " << op3 << endl;
+ padd (op1, op2);
+ cout << "padd(op1,op2) = " << op2 << endl;
+ psub (op1, op2);
+ cout << "psub(op1,op2) = " << op2 << endl;
+ pmul (op1, op2);
+ cout << "pmul(op1,op2) = " << op2 << endl;
+ pdiv (op1, op2);
+ cout << "pdiv(op1,op2) = " << op2 << endl;
+ TestBitwiseOperations (op1, op2, op3);
+ passign (op3, op2);
+ reverse (op2);
+ pmin (op3, op2);
+ cout << "pmin(op3,op2) = " << op2 << endl;
+ passign (op3, op2);
+ reverse (op2);
+ pmax (op3, op2);
+ cout << "pmax(op3,op2) = " << op2 << endl;
+ passign (op3, op2);
+ reverse (op2);
+ reset_mmx();
+ pavg (op3, op2);
+ cout << "pavg(op3,op2) = " << op2 << endl;
+ reset_mmx();
+}
+
+template <typename SrcCtr, typename DstCtr, typename Operation>
+void TestConversion (const char* ctrType)
+{
+ cout << "================================================" << endl;
+ cout << "Testing " << ctrType << endl;
+ cout << "================================================" << endl;
+ SrcCtr src;
+ DstCtr dst;
+ typedef typename SrcCtr::value_type srcval_t;
+ iota (src.begin(), src.end(), srcval_t(-1.4));
+ pconvert (src, dst, Operation());
+ cout << src << " -> " << dst << endl;
+ iota (src.begin(), src.end(), srcval_t(-1.5));
+ pconvert (src, dst, Operation());
+ cout << src << " -> " << dst << endl;
+ iota (src.begin(), src.end(), srcval_t(-1.7));
+ pconvert (src, dst, Operation());
+ cout << src << " -> " << dst << endl;
+}
+
+void TestSimdAlgorithms (void)
+{
+ TestCtr<tuple<8,uint8_t> >("uint8_t[8]");
+ TestCtr<tuple<8,int8_t> >("int8_t[8]");
+ TestCtr<tuple<4,uint16_t> >("uint16_t[4]");
+ TestCtr<tuple<4,int16_t> >("int16_t[4]");
+ TestCtr<tuple<2,uint32_t> >("uint32_t[2]");
+ TestCtr<tuple<2,int32_t> >("int32_t[2]");
+ #if HAVE_INT64_T
+ TestCtr<tuple<1,uint64_t> >("uint64_t[1]");
+ TestCtr<tuple<1,int64_t> >("int64_t[1]");
+ #else
+ cout << "No 64bit types available on this platform" << endl;
+ #endif
+ TestCtr<tuple<2,float> >("float[2]");
+ TestCtr<tuple<4,float> >("float[4]");
+ TestCtr<tuple<7,uint32_t> >("uint32_t[7]");
+
+ #if HAVE_MATH_H
+ #define CVT_TEST(size,src,dest,op) \
+ TestConversion<tuple<size,src>, tuple<size,dest>, op<src,dest> > (#op " " #src " -> " #dest)
+ CVT_TEST(4,int32_t,float,fround);
+ CVT_TEST(4,int32_t,double,fround);
+ CVT_TEST(4,float,int32_t,fround);
+ CVT_TEST(4,double,int32_t,fround);
+ CVT_TEST(4,float,int32_t,fcast);
+ #else
+ cout << "CAN'T TEST: math.h functions are not available on this platform." << endl;
+ #endif
+}
+
+StdBvtMain (TestSimdAlgorithms)
diff --git a/ecos/packages/language/cxx/ustl/current/tests/bvt23.std b/ecos/packages/language/cxx/ustl/current/tests/bvt23.std
new file mode 100644
index 0000000..2b8947b
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/tests/bvt23.std
@@ -0,0 +1,218 @@
+================================================
+Testing uint8_t[8]
+================================================
+op1 = (2,2,2,2,2,2,2,2)
+op2 = (1,2,3,4,5,6,7,8)
+passign(op2,op3) = (1,2,3,4,5,6,7,8)
+padd(op1,op2) = (3,4,5,6,7,8,9,10)
+psub(op1,op2) = (1,2,3,4,5,6,7,8)
+pmul(op1,op2) = (2,4,6,8,10,12,14,16)
+pdiv(op1,op2) = (1,2,3,4,5,6,7,8)
+pand(op1,op2) = (0,2,2,0,0,2,2,0)
+por(op1,op2) = (3,2,3,6,7,6,7,10)
+pxor(op1,op2) = (3,0,1,6,7,4,5,10)
+pshl(op1,op2) = (4,8,12,16,20,24,28,' ')
+pshr(op1,op2) = (0,0,0,1,1,1,1,2)
+pmin(op3,op2) = (1,2,3,4,4,3,2,1)
+pmax(op3,op2) = (8,7,6,5,5,6,7,8)
+pavg(op3,op2) = (5,5,5,5,5,5,5,5)
+================================================
+Testing int8_t[8]
+================================================
+op1 = (2,2,2,2,2,2,2,2)
+op2 = (1,2,3,4,5,6,7,8)
+passign(op2,op3) = (1,2,3,4,5,6,7,8)
+padd(op1,op2) = (3,4,5,6,7,8,9,10)
+psub(op1,op2) = (1,2,3,4,5,6,7,8)
+pmul(op1,op2) = (2,4,6,8,10,12,14,16)
+pdiv(op1,op2) = (1,2,3,4,5,6,7,8)
+pand(op1,op2) = (0,2,2,0,0,2,2,0)
+por(op1,op2) = (3,2,3,6,7,6,7,10)
+pxor(op1,op2) = (3,0,1,6,7,4,5,10)
+pshl(op1,op2) = (4,8,12,16,20,24,28,' ')
+pshr(op1,op2) = (0,0,0,1,1,1,1,2)
+pmin(op3,op2) = (1,2,3,4,4,3,2,1)
+pmax(op3,op2) = (8,7,6,5,5,6,7,8)
+pavg(op3,op2) = (5,5,5,5,5,5,5,5)
+================================================
+Testing uint16_t[4]
+================================================
+op1 = (2,2,2,2)
+op2 = (1,2,3,4)
+passign(op2,op3) = (1,2,3,4)
+padd(op1,op2) = (3,4,5,6)
+psub(op1,op2) = (1,2,3,4)
+pmul(op1,op2) = (2,4,6,8)
+pdiv(op1,op2) = (1,2,3,4)
+pand(op1,op2) = (0,2,2,0)
+por(op1,op2) = (3,2,3,6)
+pxor(op1,op2) = (3,0,1,6)
+pshl(op1,op2) = (4,8,12,16)
+pshr(op1,op2) = (0,0,0,1)
+pmin(op3,op2) = (1,2,2,1)
+pmax(op3,op2) = (4,3,3,4)
+pavg(op3,op2) = (3,3,3,3)
+================================================
+Testing int16_t[4]
+================================================
+op1 = (2,2,2,2)
+op2 = (1,2,3,4)
+passign(op2,op3) = (1,2,3,4)
+padd(op1,op2) = (3,4,5,6)
+psub(op1,op2) = (1,2,3,4)
+pmul(op1,op2) = (2,4,6,8)
+pdiv(op1,op2) = (1,2,3,4)
+pand(op1,op2) = (0,2,2,0)
+por(op1,op2) = (3,2,3,6)
+pxor(op1,op2) = (3,0,1,6)
+pshl(op1,op2) = (4,8,12,16)
+pshr(op1,op2) = (0,0,0,1)
+pmin(op3,op2) = (1,2,2,1)
+pmax(op3,op2) = (4,3,3,4)
+pavg(op3,op2) = (3,3,3,3)
+================================================
+Testing uint32_t[2]
+================================================
+op1 = (2,2)
+op2 = (1,2)
+passign(op2,op3) = (1,2)
+padd(op1,op2) = (3,4)
+psub(op1,op2) = (1,2)
+pmul(op1,op2) = (2,4)
+pdiv(op1,op2) = (1,2)
+pand(op1,op2) = (0,2)
+por(op1,op2) = (3,2)
+pxor(op1,op2) = (3,0)
+pshl(op1,op2) = (4,8)
+pshr(op1,op2) = (0,0)
+pmin(op3,op2) = (1,1)
+pmax(op3,op2) = (2,2)
+pavg(op3,op2) = (2,2)
+================================================
+Testing int32_t[2]
+================================================
+op1 = (2,2)
+op2 = (1,2)
+passign(op2,op3) = (1,2)
+padd(op1,op2) = (3,4)
+psub(op1,op2) = (1,2)
+pmul(op1,op2) = (2,4)
+pdiv(op1,op2) = (1,2)
+pand(op1,op2) = (0,2)
+por(op1,op2) = (3,2)
+pxor(op1,op2) = (3,0)
+pshl(op1,op2) = (4,8)
+pshr(op1,op2) = (0,0)
+pmin(op3,op2) = (1,1)
+pmax(op3,op2) = (2,2)
+pavg(op3,op2) = (2,2)
+================================================
+Testing uint64_t[1]
+================================================
+op1 = (2)
+op2 = (1)
+passign(op2,op3) = (1)
+padd(op1,op2) = (3)
+psub(op1,op2) = (1)
+pmul(op1,op2) = (2)
+pdiv(op1,op2) = (1)
+pand(op1,op2) = (0)
+por(op1,op2) = (3)
+pxor(op1,op2) = (3)
+pshl(op1,op2) = (4)
+pshr(op1,op2) = (0)
+pmin(op3,op2) = (1)
+pmax(op3,op2) = (1)
+pavg(op3,op2) = (1)
+================================================
+Testing int64_t[1]
+================================================
+op1 = (2)
+op2 = (1)
+passign(op2,op3) = (1)
+padd(op1,op2) = (3)
+psub(op1,op2) = (1)
+pmul(op1,op2) = (2)
+pdiv(op1,op2) = (1)
+pand(op1,op2) = (0)
+por(op1,op2) = (3)
+pxor(op1,op2) = (3)
+pshl(op1,op2) = (4)
+pshr(op1,op2) = (0)
+pmin(op3,op2) = (1)
+pmax(op3,op2) = (1)
+pavg(op3,op2) = (1)
+================================================
+Testing float[2]
+================================================
+op1 = (2.00,2.00)
+op2 = (1.00,2.00)
+passign(op2,op3) = (1.00,2.00)
+padd(op1,op2) = (3.00,4.00)
+psub(op1,op2) = (1.00,2.00)
+pmul(op1,op2) = (2.00,4.00)
+pdiv(op1,op2) = (1.00,2.00)
+pmin(op3,op2) = (1.00,1.00)
+pmax(op3,op2) = (2.00,2.00)
+pavg(op3,op2) = (1.50,1.50)
+================================================
+Testing float[4]
+================================================
+op1 = (2.00,2.00,2.00,2.00)
+op2 = (1.00,2.00,3.00,4.00)
+passign(op2,op3) = (1.00,2.00,3.00,4.00)
+padd(op1,op2) = (3.00,4.00,5.00,6.00)
+psub(op1,op2) = (1.00,2.00,3.00,4.00)
+pmul(op1,op2) = (2.00,4.00,6.00,8.00)
+pdiv(op1,op2) = (1.00,2.00,3.00,4.00)
+pmin(op3,op2) = (1.00,2.00,2.00,1.00)
+pmax(op3,op2) = (4.00,3.00,3.00,4.00)
+pavg(op3,op2) = (2.50,2.50,2.50,2.50)
+================================================
+Testing uint32_t[7]
+================================================
+op1 = (2,2,2,2,2,2,2)
+op2 = (1,2,3,4,5,6,7)
+passign(op2,op3) = (1,2,3,4,5,6,7)
+padd(op1,op2) = (3,4,5,6,7,8,9)
+psub(op1,op2) = (1,2,3,4,5,6,7)
+pmul(op1,op2) = (2,4,6,8,10,12,14)
+pdiv(op1,op2) = (1,2,3,4,5,6,7)
+pand(op1,op2) = (0,2,2,0,0,2,2)
+por(op1,op2) = (3,2,3,6,7,6,7)
+pxor(op1,op2) = (3,0,1,6,7,4,5)
+pshl(op1,op2) = (4,8,12,16,20,24,28)
+pshr(op1,op2) = (0,0,0,1,1,1,1)
+pmin(op3,op2) = (1,2,3,4,3,2,1)
+pmax(op3,op2) = (7,6,5,4,5,6,7)
+pavg(op3,op2) = (4,4,4,4,4,4,4)
+================================================
+Testing fround int32_t -> float
+================================================
+(-1,0,1,2) -> (-1.00,0.00,1.00,2.00)
+(-1,0,1,2) -> (-1.00,0.00,1.00,2.00)
+(-1,0,1,2) -> (-1.00,0.00,1.00,2.00)
+================================================
+Testing fround int32_t -> double
+================================================
+(-1,0,1,2) -> (-1.00,0.00,1.00,2.00)
+(-1,0,1,2) -> (-1.00,0.00,1.00,2.00)
+(-1,0,1,2) -> (-1.00,0.00,1.00,2.00)
+================================================
+Testing fround float -> int32_t
+================================================
+(-1.40,-0.40,0.60,1.60) -> (-1,0,1,2)
+(-1.50,-0.50,0.50,1.50) -> (-2,0,0,2)
+(-1.70,-0.70,0.30,1.30) -> (-2,-1,0,1)
+================================================
+Testing fround double -> int32_t
+================================================
+(-1.40,-0.40,0.60,1.60) -> (-1,0,1,2)
+(-1.50,-0.50,0.50,1.50) -> (-2,0,0,2)
+(-1.70,-0.70,0.30,1.30) -> (-2,-1,0,1)
+================================================
+Testing fcast float -> int32_t
+================================================
+(-1.40,-0.40,0.60,1.60) -> (-1,0,0,1)
+(-1.50,-0.50,0.50,1.50) -> (-1,0,0,1)
+(-1.70,-0.70,0.30,1.30) -> (-1,0,0,1)
diff --git a/ecos/packages/language/cxx/ustl/current/tests/bvt24.cpp b/ecos/packages/language/cxx/ustl/current/tests/bvt24.cpp
new file mode 100644
index 0000000..1ba6cee
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/tests/bvt24.cpp
@@ -0,0 +1,100 @@
+// This file is part of the uSTL library, an STL implementation.
+//
+// Copyright (c) 2005 by Mike Sharov <msharov@users.sourceforge.net>
+// This file is free software, distributed under the MIT License.
+
+#include "stdtest.h"
+
+static void HeapSize (size_t nElements, size_t& layerWidth, size_t& nLayers)
+{
+ layerWidth = 0;
+ nLayers = 0;
+ for (size_t fts = 0; nElements > fts; fts += layerWidth) {
+ layerWidth *= 2;
+ if (!layerWidth)
+ ++ layerWidth;
+ ++ nLayers;
+ }
+}
+
+static void PrintSpace (size_t n)
+{
+ for (uoff_t s = 0; s < n; ++ s)
+ cout << ' ';
+}
+
+static void PrintHeap (const vector<int>& v)
+{
+ size_t maxWidth, nLayers;
+ HeapSize (v.size(), maxWidth, nLayers);
+ vector<int>::const_iterator src (v.begin());
+ cout << ios::width(3);
+ maxWidth *= 3;
+ for (uoff_t i = 0; i < nLayers; ++ i) {
+ const size_t w = 1 << i;
+ const size_t spacing = max (0, int(maxWidth / w) - 3);
+ PrintSpace (spacing / 2);
+ for (uoff_t j = 0; j < w && src != v.end(); ++ j) {
+ cout << *src++;
+ if (j < w - 1 && src != v.end() - 1)
+ PrintSpace (spacing);
+ }
+ cout << endl;
+ }
+}
+
+void TestHeapOperations (void)
+{
+ static const int c_Values [31] = { // 31 values make a full 4-layer tree
+ 93, 92, 90, 86, 83, 86, 77, 40, 72, 36, 68, 82, 62, 67, 63, 15,
+ 26, 26, 49, 21, 11, 62, 67, 27, 29, 30, 35, 23, 59, 35, 29
+ };
+ vector<int> v;
+ v.reserve (VectorSize(c_Values));
+ for (uoff_t i = 0; i < VectorSize(c_Values); ++ i) {
+ v.push_back (c_Values[i]);
+ push_heap (v.begin(), v.end());
+ cout << "------------------------------------------------\n";
+ if (!is_heap (v.begin(), v.end()))
+ cout << "Is NOT a heap\n";
+ PrintHeap (v);
+ }
+ cout << "------------------------------------------------\n";
+ cout << "make_heap on the full range:\n";
+ v.resize (VectorSize (c_Values));
+ copy (VectorRange(c_Values), v.begin());
+ make_heap (v.begin(), v.end());
+ PrintHeap (v);
+ if (!is_heap (v.begin(), v.end()))
+ cout << "Is NOT a heap\n";
+ cout << "------------------------------------------------\n";
+ cout << "pop_heap:\n";
+ pop_heap (v.begin(), v.end());
+ v.pop_back();
+ PrintHeap (v);
+ if (!is_heap (v.begin(), v.end()))
+ cout << "Is NOT a heap\n";
+
+ cout << "------------------------------------------------\n";
+ cout << "sort_heap:\n";
+ v.resize (VectorSize (c_Values));
+ copy (VectorRange(c_Values), v.begin());
+ make_heap (v.begin(), v.end());
+ sort_heap (v.begin(), v.end());
+ foreach (vector<int>::const_iterator, i, v)
+ cout << *i;
+ cout << endl;
+
+ cout << "------------------------------------------------\n";
+ cout << "priority_queue push and pop:\n";
+ priority_queue<int> q;
+ for (uoff_t i = 0; i < VectorSize(c_Values); ++ i)
+ q.push (c_Values[i]);
+ while (!q.empty()) {
+ cout << q.top();
+ q.pop();
+ }
+ cout << endl;
+}
+
+StdBvtMain (TestHeapOperations)
diff --git a/ecos/packages/language/cxx/ustl/current/tests/bvt24.std b/ecos/packages/language/cxx/ustl/current/tests/bvt24.std
new file mode 100644
index 0000000..ff09fcf
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/tests/bvt24.std
@@ -0,0 +1,180 @@
+------------------------------------------------
+ 93
+------------------------------------------------
+ 93
+ 92
+------------------------------------------------
+ 93
+ 92 90
+------------------------------------------------
+ 93
+ 92 90
+ 86
+------------------------------------------------
+ 93
+ 92 90
+ 86 83
+------------------------------------------------
+ 93
+ 92 90
+ 86 83 86
+------------------------------------------------
+ 93
+ 92 90
+ 86 83 86 77
+------------------------------------------------
+ 93
+ 92 90
+ 86 83 86 77
+ 40
+------------------------------------------------
+ 93
+ 92 90
+ 86 83 86 77
+ 40 72
+------------------------------------------------
+ 93
+ 92 90
+ 86 83 86 77
+ 40 72 36
+------------------------------------------------
+ 93
+ 92 90
+ 86 83 86 77
+ 40 72 36 68
+------------------------------------------------
+ 93
+ 92 90
+ 86 83 86 77
+ 40 72 36 68 82
+------------------------------------------------
+ 93
+ 92 90
+ 86 83 86 77
+ 40 72 36 68 82 62
+------------------------------------------------
+ 93
+ 92 90
+ 86 83 86 77
+ 40 72 36 68 82 62 67
+------------------------------------------------
+ 93
+ 92 90
+ 86 83 86 77
+ 40 72 36 68 82 62 67 63
+------------------------------------------------
+ 93
+ 92 90
+ 86 83 86 77
+ 40 72 36 68 82 62 67 63
+ 15
+------------------------------------------------
+ 93
+ 92 90
+ 86 83 86 77
+ 40 72 36 68 82 62 67 63
+ 15 26
+------------------------------------------------
+ 93
+ 92 90
+ 86 83 86 77
+ 40 72 36 68 82 62 67 63
+ 15 26 26
+------------------------------------------------
+ 93
+ 92 90
+ 86 83 86 77
+ 40 72 36 68 82 62 67 63
+ 15 26 26 49
+------------------------------------------------
+ 93
+ 92 90
+ 86 83 86 77
+ 40 72 36 68 82 62 67 63
+ 15 26 26 49 21
+------------------------------------------------
+ 93
+ 92 90
+ 86 83 86 77
+ 40 72 36 68 82 62 67 63
+ 15 26 26 49 21 11
+------------------------------------------------
+ 93
+ 92 90
+ 86 83 86 77
+ 40 72 36 68 82 62 67 63
+ 15 26 26 49 21 11 62
+------------------------------------------------
+ 93
+ 92 90
+ 86 83 86 77
+ 40 72 36 68 82 62 67 63
+ 15 26 26 49 21 11 62 67
+------------------------------------------------
+ 93
+ 92 90
+ 86 83 86 77
+ 40 72 36 68 82 62 67 63
+ 15 26 26 49 21 11 62 67 27
+------------------------------------------------
+ 93
+ 92 90
+ 86 83 86 77
+ 40 72 36 68 82 62 67 63
+ 15 26 26 49 21 11 62 67 27 29
+------------------------------------------------
+ 93
+ 92 90
+ 86 83 86 77
+ 40 72 36 68 82 62 67 63
+ 15 26 26 49 21 11 62 67 27 29 30
+------------------------------------------------
+ 93
+ 92 90
+ 86 83 86 77
+ 40 72 36 68 82 62 67 63
+ 15 26 26 49 21 11 62 67 27 29 30 35
+------------------------------------------------
+ 93
+ 92 90
+ 86 83 86 77
+ 40 72 36 68 82 62 67 63
+ 15 26 26 49 21 11 62 67 27 29 30 35 23
+------------------------------------------------
+ 93
+ 92 90
+ 86 83 86 77
+ 40 72 36 68 82 62 67 63
+ 15 26 26 49 21 11 62 67 27 29 30 35 23 59
+------------------------------------------------
+ 93
+ 92 90
+ 86 83 86 77
+ 40 72 36 68 82 62 67 63
+ 15 26 26 49 21 11 62 67 27 29 30 35 23 59 35
+------------------------------------------------
+ 93
+ 92 90
+ 86 83 86 77
+ 40 72 36 68 82 62 67 63
+ 15 26 26 49 21 11 62 67 27 29 30 35 23 59 35 29
+------------------------------------------------
+make_heap on the full range:
+ 93
+ 92 90
+ 86 83 86 77
+ 40 72 36 68 82 62 67 63
+ 15 26 26 49 21 11 62 67 27 29 30 35 23 59 35 29
+------------------------------------------------
+pop_heap:
+ 92
+ 86 90
+ 72 83 86 77
+ 40 49 36 68 82 62 67 63
+ 15 26 26 29 21 11 62 67 27 29 30 35 23 59 35
+------------------------------------------------
+sort_heap:
+ 11 15 21 23 26 26 27 29 29 30 35 35 36 40 49 59 62 62 63 67 67 68 72 77 82 83 86 86 90 92 93
+------------------------------------------------
+priority_queue push and pop:
+ 93 92 90 86 86 83 82 77 72 68 67 67 63 62 62 59 49 40 36 35 35 30 29 29 27 26 26 23 21 15 11
diff --git a/ecos/packages/language/cxx/ustl/current/tests/bvt25.cpp b/ecos/packages/language/cxx/ustl/current/tests/bvt25.cpp
new file mode 100644
index 0000000..34648eb
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/tests/bvt25.cpp
@@ -0,0 +1,32 @@
+// This file is part of the uSTL library, an STL implementation.
+//
+// Copyright (c) 2005 by Mike Sharov <msharov@users.sourceforge.net>
+// This file is free software, distributed under the MIT License.
+
+#include "stdtest.h"
+
+#ifdef CYGIMP_USTL_TESTS_BVT25_ROMFS
+# include <cyg/fileio/fileio.h>
+# if (CYG_BYTEORDER == CYG_LSBFIRST)
+# include <cyg/ustl/bvt25fs_le.h>
+# else
+# include <cyg/ustl/bvt25fs_be.h>
+# endif
+MTAB_ENTRY(romfs_mte1, "/", "romfs", "", (CYG_ADDRWORD) &filedata[0]);
+#endif
+
+void TestFStream (void)
+{
+ fstream fs ("bvt/bvt25.std", ios::in | ios::nocreate);
+ if (!fs && !(fs.open("bvt25.std", ios::in | ios::nocreate),fs))
+ cout << "Failed to open bvt25.std" << endl;
+ string buf;
+ buf.resize (fs.size());
+ if (buf.size() != 71)
+ cout << "fstream.size() returned " << buf.size() << endl;
+ fs.read (buf.begin(), buf.size());
+ cout << buf;
+ fs.close();
+}
+
+StdBvtMain (TestFStream)
diff --git a/ecos/packages/language/cxx/ustl/current/tests/bvt25.std b/ecos/packages/language/cxx/ustl/current/tests/bvt25.std
new file mode 100644
index 0000000..93068f0
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/tests/bvt25.std
@@ -0,0 +1,5 @@
+Hello world!
+123 456 789
+two words
+and three words
+and even four words
diff --git a/ecos/packages/language/cxx/ustl/current/tests/bvt26.cpp b/ecos/packages/language/cxx/ustl/current/tests/bvt26.cpp
new file mode 100644
index 0000000..d01eb5e
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/tests/bvt26.cpp
@@ -0,0 +1,19 @@
+// This file is part of the uSTL library, an STL implementation.
+//
+// Copyright (c) 2005 by Mike Sharov <msharov@users.sourceforge.net>
+// This file is free software, distributed under the MIT License.
+
+#include "stdtest.h"
+
+void TestMacros (void)
+{
+ #define VARNAME(n) LARG_NUMBER(v,n)
+ #define VARDECL(n) VARNAME(n) = n
+ int COMMA_LIST (9, VARDECL);
+ cout << LIST(9, VARNAME, <<) << endl;
+ #define TO_STRING(n) #n
+ #define PRINT_N(n) REPEAT(n, TO_STRING) "\n"
+ cout << LIST(9, PRINT_N, <<);
+}
+
+StdBvtMain (TestMacros)
diff --git a/ecos/packages/language/cxx/ustl/current/tests/bvt26.std b/ecos/packages/language/cxx/ustl/current/tests/bvt26.std
new file mode 100644
index 0000000..8c633bc
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/tests/bvt26.std
@@ -0,0 +1,10 @@
+123456789
+1
+12
+123
+1234
+12345
+123456
+1234567
+12345678
+123456789
diff --git a/ecos/packages/language/cxx/ustl/current/tests/bvt27.cpp b/ecos/packages/language/cxx/ustl/current/tests/bvt27.cpp
new file mode 100644
index 0000000..6a91145
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/tests/bvt27.cpp
@@ -0,0 +1,57 @@
+// This file is part of the uSTL library, an STL implementation.
+//
+// Copyright (c) 2005 by Mike Sharov <msharov@users.sourceforge.net>
+// This file is free software, distributed under the MIT License.
+
+#include "stdtest.h"
+using namespace tm;
+
+void Print (int v)
+ { cout.format ("PrintInt %d\n", v); }
+void Print (short v)
+ { cout.format ("PrintShort %d\n", v); }
+void Print (float v)
+ { cout.format ("PrintFloat %.2f\n", v); }
+
+class Base { };
+class Derived : public Base { };
+
+void TestTypelists (void)
+{
+ cout << "----------------------------------------------------------------------\n"
+ " Testing functionality from typet.h\n"
+ "----------------------------------------------------------------------\n";
+ NullType nullType;
+ cout.format ("sizeof(NullType) = %zu\n", sizeof(nullType));
+ cout.format ("Int2Type(42)::value = %d\n", Int2Type<42>::value);
+ Type2Type<int>::OriginalType t2tiv = 56;
+ cout.format ("Type2Type type value = %d\n", t2tiv);
+
+ cout << "int == int is " << bool(IsSameType<int, int>::value) << endl;
+ cout << "float == int is " << bool(IsSameType<float, int>::value) << endl;
+
+ Print (Select<Conversion<long,int>::exists2Way, int, float>::Result(567));
+ cout << "Base is SuperSubclass from Derived is " << bool(SuperSubclass<Base,Derived>::value) << endl;
+ cout << "Base is SuperSubclass from Base is " << bool(SuperSubclass<Base,Base>::value) << endl;
+ cout << "Base is SuperSubclassStrict from Derived is " << bool(SuperSubclassStrict<Base,Derived>::value) << endl;
+ cout << "Base is SuperSubclassStrict from Base is " << bool(SuperSubclassStrict<Base,Base>::value) << endl;
+
+ cout << "\n----------------------------------------------------------------------\n"
+ " Testing functionality from typelist.h\n"
+ "----------------------------------------------------------------------\n";
+ typedef tl::Seq<char, int, short, long>::Type IntTypesList;
+ typedef tl::Seq<float, double>::Type FloatTypesList;
+ cout.format ("Length of IntTypesList is %d\n", tl::Length<IntTypesList>::value);
+ Print (tl::TypeAt<IntTypesList, 2>::Result(1234));
+ Print (tl::TypeAtNonStrict<FloatTypesList, 0, int>::Result(1235));
+ Print (tl::TypeAtNonStrict<FloatTypesList, 2, short>::Result(1236));
+ typedef tl::Append<IntTypesList, FloatTypesList>::Result AllTypesList;
+ cout.format ("Index of double in AllTypesList is %d\n", tl::IndexOf<AllTypesList,double>::value);
+ typedef tl::Erase<AllTypesList, float>::Result NoFloatList;
+ cout.format ("Index of float in NoFloatList is %d\n", tl::IndexOf<NoFloatList,float>::value);
+ cout.format ("Index of double in NoFloatList is %d\n", tl::IndexOf<NoFloatList,double>::value);
+ typedef tl::Reverse<AllTypesList>::Result ReversedList;
+ cout.format ("Index of double in ReversedList is %d\n", tl::IndexOf<ReversedList,double>::value);
+}
+
+StdBvtMain (TestTypelists)
diff --git a/ecos/packages/language/cxx/ustl/current/tests/bvt27.std b/ecos/packages/language/cxx/ustl/current/tests/bvt27.std
new file mode 100644
index 0000000..9b193aa
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/tests/bvt27.std
@@ -0,0 +1,25 @@
+----------------------------------------------------------------------
+ Testing functionality from typet.h
+----------------------------------------------------------------------
+sizeof(NullType) = 1
+Int2Type(42)::value = 42
+Type2Type type value = 56
+int == int is true
+float == int is false
+PrintInt 567
+Base is SuperSubclass from Derived is true
+Base is SuperSubclass from Base is true
+Base is SuperSubclassStrict from Derived is true
+Base is SuperSubclassStrict from Base is false
+
+----------------------------------------------------------------------
+ Testing functionality from typelist.h
+----------------------------------------------------------------------
+Length of IntTypesList is 4
+PrintShort 1234
+PrintFloat 1235.00
+PrintShort 1236
+Index of double in AllTypesList is 5
+Index of float in NoFloatList is -1
+Index of double in NoFloatList is 4
+Index of double in ReversedList is 0
diff --git a/ecos/packages/language/cxx/ustl/current/tests/stdtest.h b/ecos/packages/language/cxx/ustl/current/tests/stdtest.h
new file mode 100644
index 0000000..221689e
--- /dev/null
+++ b/ecos/packages/language/cxx/ustl/current/tests/stdtest.h
@@ -0,0 +1,106 @@
+// This file is part of the ustl library, an STL implementation.
+//
+// Copyright (C) 2005 by Mike Sharov <msharov@users.sourceforge.net>
+// This file is free software, distributed under the MIT License.
+//
+// \file stdtest.h
+// \brief Standard BVT harness.
+//
+#ifndef CYGONCE_STDTEST_H
+#define CYGONCE_STDTEST_H
+
+#include <ustl.h>
+#include <signal.h>
+#include <cyg/infra/testcase.h>
+using namespace ustl;
+
+typedef void (*stdtestfunc_t)(void);
+
+#ifdef CYGVAR_USTL_CIN_COUT_CERR
+/// Called when a signal is received.
+static void OnSignal (int sig)
+{
+ cout.flush();
+#ifdef HAVE_STRSIGNAL
+ cerr.format ("Fatal error: %s received.\n", strsignal(sig));
+#else
+ cerr.format ("Fatal error: system signal %d received.\n", sig);
+#endif
+ cerr.flush();
+ CYG_TEST_FAIL("Test failed");
+ exit (sig);
+}
+
+/// Installs OnSignal as handler for signals.
+static void InstallCleanupHandlers (void)
+{
+ static const uint8_t c_Signals[] = {
+ SIGINT, SIGQUIT, SIGILL, SIGTRAP, SIGABRT,
+ SIGIOT, SIGBUS, SIGFPE, SIGSEGV, SIGTERM};
+ for (uoff_t i = 0; i < VectorSize(c_Signals); ++i)
+ {
+ signal (c_Signals[i], OnSignal);
+ }
+}
+
+/// executes the test function
+#ifndef __EXCEPTIONS
+// if eCos is compiled without exceptions support then we implement and install
+// our own low level exception handler
+void app_exception_handler(const ustl::exception& ex)
+{
+ ustl::diag_print_exception(ex);
+ CYG_TEST_FAIL("Test failed because of an uSTL exception");
+}
+
+int StdTestHarness (stdtestfunc_t testFunction)
+{
+ InstallCleanupHandlers();
+ ustl::set_app_exception_handler(app_exception_handler);
+ (*testFunction)();
+ cout << endl;
+ cout.flush(); // if there is anything left to print then print it now
+ return (EXIT_SUCCESS);
+}
+#else
+// if eCos is compiled with exceptions support the we use the default
+// StdTestHarness implementation from uSTL library
+int StdTestHarness (stdtestfunc_t testFunction)
+{
+ InstallCleanupHandlers();
+ int rv = EXIT_FAILURE;
+ try {
+ (*testFunction)();
+ rv = EXIT_SUCCESS;
+ } catch (ustl::exception& e) {
+ cout.flush();
+ cerr << "Error: " << e << endl;
+ } catch (...) {
+ cout.flush();
+ cerr << "Unexpected error." << endl;
+ }
+ cout << endl;
+ cout.flush(); // if there is anything left to print then print it now
+ return (rv);
+}
+#endif
+
+
+#define StdBvtMain(function) int main(int argc, char *argv[]) \
+{ \
+ CYG_TEST_INIT(); \
+ CYG_TEST_INFO("Starting tests from uSTL testcase " #function); \
+ StdTestHarness(&function); \
+ CYG_TEST_PASS_FINISH(#function " finished successfully"); \
+ return EXIT_SUCCESS; \
+}
+#else
+#define StdBvtMain(function) int main(int argc, char *argv[]) \
+{ \
+ CYG_TEST_INIT(); \
+ CYG_TEST_NA("cin, cout & cerr support disabled"); \
+}
+#endif
+
+//---------------------------------------------------------------------------
+#endif // CYGONCE_STDTEST_H